diff --git a/gdb-helper b/gdb-helper new file mode 100644 index 00000000..9f786113 --- /dev/null +++ b/gdb-helper @@ -0,0 +1,24 @@ +define scilla_print + + # Prepare a string of the value's type. '*' must be ommitted. + shell echo -n 'set $vt = "' > /tmp/gdb_scilla_value_type_nostar.tmp + pipe ptype *&$arg0 | cut -d '=' -f 2 | tr -d '\n' | tr -d '*' >> /tmp/gdb_scilla_value_type_nostar.tmp + shell echo -n '"' >> /tmp/gdb_scilla_value_type_nostar.tmp + source /tmp/gdb_scilla_value_type_nostar.tmp + + # Check if the type contains a '*', indicating boxed type. + pipe ptype *&$arg0 | tee /tmp/gdb_scilla_value_type.tmp > /dev/null + shell fgrep -q '*' /tmp/gdb_scilla_value_type.tmp + set $isboxed = !$_shell_exitcode + + # Print. Non-boxed values need their address taken. + if $isboxed + call (('ScillaRTL::ScillaExecImpl' *)_execptr)->gdbPrintValue($vt, (void *) $arg0) + else + call (('ScillaRTL::ScillaExecImpl' *)_execptr)->gdbPrintValue($vt, (void *) &$arg0) + end +end + +document scilla_print + Print the Scilla value whose name is provided as the argument. +end diff --git a/libScillaRTL/ScillaExecImpl.cpp b/libScillaRTL/ScillaExecImpl.cpp index 0b3c990b..6565a3bd 100644 --- a/libScillaRTL/ScillaExecImpl.cpp +++ b/libScillaRTL/ScillaExecImpl.cpp @@ -28,6 +28,7 @@ #include "ScillaBuiltins.h" #include "ScillaExecImpl.h" #include "ScillaTypes.h" +#include "ScillaValue.h" #include "SharedObject.h" namespace ScillaRTL { @@ -221,6 +222,16 @@ ScillaExecImpl::parseTypeString(const std::string &TStr) const { TyDescrs.second, TStr); } +const std::string ScillaExecImpl::gdbPrintValue(const char *Type, + const void *Value) const { + try { + auto T = parseTypeString(Type); + return ScillaValues::toString(false, T, Value); + } catch (...) { + return "Type or value error"; + } +} + void ScillaExecImpl::outOfGasException(void) { SCILLA_EXCEPTION("Ran out of gas"); } diff --git a/libScillaRTL/ScillaExecImpl.h b/libScillaRTL/ScillaExecImpl.h index a8e1f6c6..8ea5b652 100644 --- a/libScillaRTL/ScillaExecImpl.h +++ b/libScillaRTL/ScillaExecImpl.h @@ -62,6 +62,9 @@ class ScillaExecImpl { uint64_t getGasRem() const; // Parse a string into a Scilla type. Raises error on failure. const ScillaTypes::Typ *parseTypeString(const std::string &) const; + // A function that can be conveniently called from GDB to print runtime + // values. + const std::string gdbPrintValue(const char *Type, const void *Value) const; // Raise an out-of-gas exception. static void outOfGasException(void); // Consume N units of gas. Raise an error if we're out of gas. diff --git a/testsuite/contr/accept.dbg.ll b/testsuite/contr/accept.dbg.ll index 35deb31e..e1e65e76 100644 --- a/testsuite/contr/accept.dbg.ll +++ b/testsuite/contr/accept.dbg.ll @@ -4,7 +4,7 @@ ; 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-pc-linux-gnu" +target triple = "x86_64-unknown-linux-gnu" %"$TyDescrTy_PrimTyp_5" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } @@ -19,9 +19,9 @@ target triple = "x86_64-pc-linux-gnu" %CName_Cons_Message = type <{ i8, i8*, %TName_List_Message* }> %CName_Nil_Message = type <{ i8 }> %Uint32 = type { i32 } -%"$ParamDescr_277" = type { %ParamDescrString, %_TyDescrTy_Typ* } +%"$ParamDescr_287" = type { %ParamDescrString, %_TyDescrTy_Typ* } %ParamDescrString = type { i8*, i32 } -%"$TransDescr_278" = type { %ParamDescrString, i32, %"$ParamDescr_277"* } +%"$TransDescr_288" = type { %ParamDescrString, i32, %"$ParamDescr_287"* } %"$$fundef_3_env_59" = type {} %Uint128 = type { i128 } %String = type { i8*, i32 } @@ -80,42 +80,46 @@ target triple = "x86_64-pc-linux-gnu" @_cparam__scilla_version = global %Uint32 zeroinitializer @_cparam__this_address = global [20 x i8] zeroinitializer @_cparam__creation_block = global i8* null -@"$stringlit_145" = unnamed_addr constant [4 x i8] c"_tag" -@"$stringlit_150" = unnamed_addr constant [0 x i8] zeroinitializer -@"$stringlit_153" = unnamed_addr constant [10 x i8] c"_recipient" -@"$stringlit_160" = unnamed_addr constant [7 x i8] c"_amount" -@"$stringlit_221" = unnamed_addr constant [4 x i8] c"_tag" -@"$stringlit_226" = unnamed_addr constant [0 x i8] zeroinitializer -@"$stringlit_229" = unnamed_addr constant [10 x i8] c"_recipient" -@"$stringlit_236" = unnamed_addr constant [7 x i8] c"_amount" +@"$stringlit_149" = unnamed_addr constant [4 x i8] c"_tag" +@"$stringlit_154" = unnamed_addr constant [0 x i8] zeroinitializer +@"$stringlit_157" = unnamed_addr constant [10 x i8] c"_recipient" +@"$stringlit_164" = unnamed_addr constant [7 x i8] c"_amount" +@"$stringlit_228" = unnamed_addr constant [4 x i8] c"_tag" +@"$stringlit_233" = unnamed_addr constant [0 x i8] zeroinitializer +@"$stringlit_236" = unnamed_addr constant [10 x i8] c"_recipient" +@"$stringlit_243" = unnamed_addr constant [7 x i8] c"_amount" @_tydescr_table = constant [18 x %_TyDescrTy_Typ*] [%_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_41", %_TyDescrTy_Typ* @"$TyDescr_Event_29", %_TyDescrTy_Typ* @"$TyDescr_Int64_11", %_TyDescrTy_Typ* @"$TyDescr_Addr_45", %_TyDescrTy_Typ* @"$TyDescr_Bystr20_37", %_TyDescrTy_Typ* @"$TyDescr_Uint256_21", %_TyDescrTy_Typ* @"$TyDescr_Uint32_9", %_TyDescrTy_Typ* @"$TyDescr_Uint64_13", %_TyDescrTy_Typ* @"$TyDescr_Bnum_25", %_TyDescrTy_Typ* @"$TyDescr_Uint128_17", %_TyDescrTy_Typ* @"$TyDescr_Exception_31", %_TyDescrTy_Typ* @"$TyDescr_String_23", %_TyDescrTy_Typ* @"$TyDescr_Int256_19", %_TyDescrTy_Typ* @"$TyDescr_Int128_15", %_TyDescrTy_Typ* @"$TyDescr_Bystr_35", %_TyDescrTy_Typ* @"$TyDescr_ReplicateContr_33", %_TyDescrTy_Typ* @"$TyDescr_Message_27", %_TyDescrTy_Typ* @"$TyDescr_Int32_7"] @_tydescr_table_length = constant i32 18 -@"$pname__scilla_version_279" = unnamed_addr constant [15 x i8] c"_scilla_version" -@"$pname__this_address_280" = unnamed_addr constant [13 x i8] c"_this_address" -@"$pname__creation_block_281" = unnamed_addr constant [15 x i8] c"_creation_block" -@_contract_parameters = constant [3 x %"$ParamDescr_277"] [%"$ParamDescr_277" { %ParamDescrString { i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$pname__scilla_version_279", i32 0, i32 0), i32 15 }, %_TyDescrTy_Typ* @"$TyDescr_Uint32_9" }, %"$ParamDescr_277" { %ParamDescrString { i8* getelementptr inbounds ([13 x i8], [13 x i8]* @"$pname__this_address_280", i32 0, i32 0), i32 13 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr20_37" }, %"$ParamDescr_277" { %ParamDescrString { i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$pname__creation_block_281", i32 0, i32 0), i32 15 }, %_TyDescrTy_Typ* @"$TyDescr_Bnum_25" }] +@"$pname__scilla_version_289" = unnamed_addr constant [15 x i8] c"_scilla_version" +@"$pname__this_address_290" = unnamed_addr constant [13 x i8] c"_this_address" +@"$pname__creation_block_291" = unnamed_addr constant [15 x i8] c"_creation_block" +@_contract_parameters = constant [3 x %"$ParamDescr_287"] [%"$ParamDescr_287" { %ParamDescrString { i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$pname__scilla_version_289", i32 0, i32 0), i32 15 }, %_TyDescrTy_Typ* @"$TyDescr_Uint32_9" }, %"$ParamDescr_287" { %ParamDescrString { i8* getelementptr inbounds ([13 x i8], [13 x i8]* @"$pname__this_address_290", i32 0, i32 0), i32 13 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr20_37" }, %"$ParamDescr_287" { %ParamDescrString { i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$pname__creation_block_291", i32 0, i32 0), i32 15 }, %_TyDescrTy_Typ* @"$TyDescr_Bnum_25" }] @_contract_parameters_length = constant i32 3 -@"$tpname__amount_282" = unnamed_addr constant [7 x i8] c"_amount" -@"$tpname__origin_283" = unnamed_addr constant [7 x i8] c"_origin" -@"$tpname__sender_284" = unnamed_addr constant [7 x i8] c"_sender" -@"$tparams_Accept1_285" = unnamed_addr constant [3 x %"$ParamDescr_277"] [%"$ParamDescr_277" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_282", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_17" }, %"$ParamDescr_277" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_283", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_45" }, %"$ParamDescr_277" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_284", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_45" }] -@"$tname_Accept1_286" = unnamed_addr constant [7 x i8] c"Accept1" -@"$tpname__amount_287" = unnamed_addr constant [7 x i8] c"_amount" -@"$tpname__origin_288" = unnamed_addr constant [7 x i8] c"_origin" -@"$tpname__sender_289" = unnamed_addr constant [7 x i8] c"_sender" -@"$tparams_Accept2_290" = unnamed_addr constant [3 x %"$ParamDescr_277"] [%"$ParamDescr_277" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_287", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_17" }, %"$ParamDescr_277" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_288", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_45" }, %"$ParamDescr_277" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_289", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_45" }] -@"$tname_Accept2_291" = unnamed_addr constant [7 x i8] c"Accept2" @"$tpname__amount_292" = unnamed_addr constant [7 x i8] c"_amount" @"$tpname__origin_293" = unnamed_addr constant [7 x i8] c"_origin" @"$tpname__sender_294" = unnamed_addr constant [7 x i8] c"_sender" -@"$tparams_Accept3_295" = unnamed_addr constant [3 x %"$ParamDescr_277"] [%"$ParamDescr_277" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_292", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_17" }, %"$ParamDescr_277" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_293", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_45" }, %"$ParamDescr_277" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_294", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_45" }] -@"$tname_Accept3_296" = unnamed_addr constant [7 x i8] c"Accept3" -@_transition_parameters = constant [3 x %"$TransDescr_278"] [%"$TransDescr_278" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tname_Accept1_286", i32 0, i32 0), i32 7 }, i32 3, %"$ParamDescr_277"* getelementptr inbounds ([3 x %"$ParamDescr_277"], [3 x %"$ParamDescr_277"]* @"$tparams_Accept1_285", i32 0, i32 0) }, %"$TransDescr_278" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tname_Accept2_291", i32 0, i32 0), i32 7 }, i32 3, %"$ParamDescr_277"* getelementptr inbounds ([3 x %"$ParamDescr_277"], [3 x %"$ParamDescr_277"]* @"$tparams_Accept2_290", i32 0, i32 0) }, %"$TransDescr_278" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tname_Accept3_296", i32 0, i32 0), i32 7 }, i32 3, %"$ParamDescr_277"* getelementptr inbounds ([3 x %"$ParamDescr_277"], [3 x %"$ParamDescr_277"]* @"$tparams_Accept3_295", i32 0, i32 0) }] +@"$tparams_Accept1_295" = unnamed_addr constant [3 x %"$ParamDescr_287"] [%"$ParamDescr_287" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_292", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_17" }, %"$ParamDescr_287" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_293", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_45" }, %"$ParamDescr_287" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_294", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_45" }] +@"$tname_Accept1_296" = unnamed_addr constant [7 x i8] c"Accept1" +@"$tpname__amount_297" = unnamed_addr constant [7 x i8] c"_amount" +@"$tpname__origin_298" = unnamed_addr constant [7 x i8] c"_origin" +@"$tpname__sender_299" = unnamed_addr constant [7 x i8] c"_sender" +@"$tparams_Accept2_300" = unnamed_addr constant [3 x %"$ParamDescr_287"] [%"$ParamDescr_287" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_297", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_17" }, %"$ParamDescr_287" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_298", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_45" }, %"$ParamDescr_287" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_299", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_45" }] +@"$tname_Accept2_301" = unnamed_addr constant [7 x i8] c"Accept2" +@"$tpname__amount_302" = unnamed_addr constant [7 x i8] c"_amount" +@"$tpname__origin_303" = unnamed_addr constant [7 x i8] c"_origin" +@"$tpname__sender_304" = unnamed_addr constant [7 x i8] c"_sender" +@"$tparams_Accept3_305" = unnamed_addr constant [3 x %"$ParamDescr_287"] [%"$ParamDescr_287" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_302", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_17" }, %"$ParamDescr_287" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_303", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_45" }, %"$ParamDescr_287" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_304", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_45" }] +@"$tname_Accept3_306" = unnamed_addr constant [7 x i8] c"Accept3" +@_transition_parameters = constant [3 x %"$TransDescr_288"] [%"$TransDescr_288" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tname_Accept1_296", i32 0, i32 0), i32 7 }, i32 3, %"$ParamDescr_287"* getelementptr inbounds ([3 x %"$ParamDescr_287"], [3 x %"$ParamDescr_287"]* @"$tparams_Accept1_295", i32 0, i32 0) }, %"$TransDescr_288" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tname_Accept2_301", i32 0, i32 0), i32 7 }, i32 3, %"$ParamDescr_287"* getelementptr inbounds ([3 x %"$ParamDescr_287"], [3 x %"$ParamDescr_287"]* @"$tparams_Accept2_300", i32 0, i32 0) }, %"$TransDescr_288" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tname_Accept3_306", i32 0, i32 0), i32 7 }, i32 3, %"$ParamDescr_287"* getelementptr inbounds ([3 x %"$ParamDescr_287"], [3 x %"$ParamDescr_287"]* @"$tparams_Accept3_305", i32 0, i32 0) }] @_transition_parameters_length = constant i32 3 -define internal %TName_List_Message* @"$fundef_3"(%"$$fundef_3_env_59"* %0, i8* %1) !dbg !4 { +define internal %TName_List_Message* @"$fundef_3"(%"$$fundef_3_env_59"* %0, i8* %1) !dbg !3 { entry: + %"$msg_85" = alloca i8*, align 8 + store i8* %1, i8** %"$msg_85", align 8 + call void @llvm.dbg.declare(metadata i8** %"$msg_85", metadata !8, metadata !DIExpression()), !dbg !11 %"$retval_4" = alloca %TName_List_Message*, align 8 + call void @llvm.dbg.declare(metadata %TName_List_Message** %"$retval_4", metadata !12, metadata !DIExpression()), !dbg !15 %"$gasrem_60" = load i64, i64* @_gasrem, align 8 %"$gascmp_61" = icmp ugt i64 1, %"$gasrem_60" br i1 %"$gascmp_61", label %"$out_of_gas_62", label %"$have_gas_63" @@ -128,6 +132,7 @@ entry: %"$consume_64" = sub i64 %"$gasrem_60", 1 store i64 %"$consume_64", i64* @_gasrem, align 8 %nil_msg = alloca %TName_List_Message*, align 8 + call void @llvm.dbg.declare(metadata %TName_List_Message** %nil_msg, metadata !16, metadata !DIExpression()), !dbg !17 %"$gasrem_65" = load i64, i64* @_gasrem, align 8 %"$gascmp_66" = icmp ugt i64 1, %"$gasrem_65" br i1 %"$gascmp_66", label %"$out_of_gas_67", label %"$have_gas_68" @@ -145,7 +150,7 @@ entry: %"$adtgep_71" = getelementptr inbounds %CName_Nil_Message, %CName_Nil_Message* %"$adtval_70", i32 0, i32 0 store i8 1, i8* %"$adtgep_71", align 1 %"$adtptr_72" = bitcast %CName_Nil_Message* %"$adtval_70" to %TName_List_Message* - store %TName_List_Message* %"$adtptr_72", %TName_List_Message** %nil_msg, align 8, !dbg !8 + store %TName_List_Message* %"$adtptr_72", %TName_List_Message** %nil_msg, align 8, !dbg !18 %"$gasrem_73" = load i64, i64* @_gasrem, align 8 %"$gascmp_74" = icmp ugt i64 1, %"$gasrem_73" br i1 %"$gascmp_74", label %"$out_of_gas_75", label %"$have_gas_76" @@ -168,230 +173,254 @@ entry: %"$adtgep_82" = getelementptr inbounds %CName_Cons_Message, %CName_Cons_Message* %"$adtval_79", i32 0, i32 2 store %TName_List_Message* %"$nil_msg_78", %TName_List_Message** %"$adtgep_82", align 8 %"$adtptr_83" = bitcast %CName_Cons_Message* %"$adtval_79" to %TName_List_Message* - store %TName_List_Message* %"$adtptr_83", %TName_List_Message** %"$retval_4", align 8, !dbg !9 + store %TName_List_Message* %"$adtptr_83", %TName_List_Message** %"$retval_4", align 8, !dbg !19 %"$$retval_4_84" = load %TName_List_Message*, %TName_List_Message** %"$retval_4", align 8 ret %TName_List_Message* %"$$retval_4_84" } +; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn +declare void @llvm.dbg.declare(metadata, metadata, metadata) #0 + declare void @_out_of_gas() declare i8* @_salloc(i8*, i64) -define void @_init_libs() !dbg !10 { +define void @_init_libs() !dbg !20 { entry: - %"$gasrem_85" = load i64, i64* @_gasrem, align 8 - %"$gascmp_86" = icmp ugt i64 5, %"$gasrem_85" - br i1 %"$gascmp_86", label %"$out_of_gas_87", label %"$have_gas_88" + %"$gasrem_86" = load i64, i64* @_gasrem, align 8 + %"$gascmp_87" = icmp ugt i64 5, %"$gasrem_86" + br i1 %"$gascmp_87", label %"$out_of_gas_88", label %"$have_gas_89" -"$out_of_gas_87": ; preds = %entry +"$out_of_gas_88": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_88" + br label %"$have_gas_89" -"$have_gas_88": ; preds = %"$out_of_gas_87", %entry - %"$consume_89" = sub i64 %"$gasrem_85", 5 - store i64 %"$consume_89", i64* @_gasrem, align 8 - store %Int32 { i32 5 }, %Int32* @"$_gas_charge_acc_0", align 4, !dbg !12 - %"$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" +"$have_gas_89": ; preds = %"$out_of_gas_88", %entry + %"$consume_90" = sub i64 %"$gasrem_86", 5 + store i64 %"$consume_90", i64* @_gasrem, align 8 + store %Int32 { i32 5 }, %Int32* @"$_gas_charge_acc_0", align 4, !dbg !22 + %"$gasrem_91" = load i64, i64* @_gasrem, align 8 + %"$gascmp_92" = icmp ugt i64 1, %"$gasrem_91" + br i1 %"$gascmp_92", label %"$out_of_gas_93", label %"$have_gas_94" -"$out_of_gas_92": ; preds = %"$have_gas_88" +"$out_of_gas_93": ; preds = %"$have_gas_89" call void @_out_of_gas() - br label %"$have_gas_93" + br label %"$have_gas_94" -"$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 { %TName_List_Message* (i8*, i8*)*, i8* } { %TName_List_Message* (i8*, i8*)* bitcast (%TName_List_Message* (%"$$fundef_3_env_59"*, i8*)* @"$fundef_3" to %TName_List_Message* (i8*, i8*)*), i8* null }, { %TName_List_Message* (i8*, i8*)*, i8* }* @accept.one_msg, align 8, !dbg !13 +"$have_gas_94": ; preds = %"$out_of_gas_93", %"$have_gas_89" + %"$consume_95" = sub i64 %"$gasrem_91", 1 + store i64 %"$consume_95", i64* @_gasrem, align 8 + store { %TName_List_Message* (i8*, i8*)*, i8* } { %TName_List_Message* (i8*, i8*)* bitcast (%TName_List_Message* (%"$$fundef_3_env_59"*, i8*)* @"$fundef_3" to %TName_List_Message* (i8*, i8*)*), i8* null }, { %TName_List_Message* (i8*, i8*)*, i8* }* @accept.one_msg, align 8, !dbg !23 ret void } -define void @_deploy_ops() !dbg !14 { +define void @_deploy_ops() !dbg !24 { entry: - %"$gasrem_98" = load i64, i64* @_gasrem, align 8 - %"$gascmp_99" = icmp ugt i64 1, %"$gasrem_98" - br i1 %"$gascmp_99", label %"$out_of_gas_100", label %"$have_gas_101" + %"$gasrem_99" = load i64, i64* @_gasrem, align 8 + %"$gascmp_100" = icmp ugt i64 1, %"$gasrem_99" + br i1 %"$gascmp_100", label %"$out_of_gas_101", label %"$have_gas_102" -"$out_of_gas_100": ; preds = %entry +"$out_of_gas_101": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_101" + br label %"$have_gas_102" -"$have_gas_101": ; preds = %"$out_of_gas_100", %entry - %"$consume_102" = sub i64 %"$gasrem_98", 1 - store i64 %"$consume_102", i64* @_gasrem, align 8 +"$have_gas_102": ; preds = %"$out_of_gas_101", %entry + %"$consume_103" = sub i64 %"$gasrem_99", 1 + store i64 %"$consume_103", i64* @_gasrem, align 8 ret void } -define internal void @"$Accept1_103"(%Uint128 %_amount, [20 x i8]* %"$_origin_104", [20 x i8]* %"$_sender_105") !dbg !15 { +define internal void @"$Accept1_104"(%Uint128 %_amount, [20 x i8]* %"$_origin_105", [20 x i8]* %"$_sender_106") !dbg !25 { entry: - %_origin = load [20 x i8], [20 x i8]* %"$_origin_104", align 1 - %_sender = load [20 x i8], [20 x i8]* %"$_sender_105", align 1 - %"$gasrem_106" = load i64, i64* @_gasrem, align 8 - %"$gascmp_107" = icmp ugt i64 1, %"$gasrem_106" - br i1 %"$gascmp_107", label %"$out_of_gas_108", label %"$have_gas_109" - -"$out_of_gas_108": ; preds = %entry + %"$_sender_121" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_sender_106", [20 x i8]** %"$_sender_121", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_sender_121", metadata !26, metadata !DIExpression()), !dbg !28 + %"$_origin_120" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_origin_105", [20 x i8]** %"$_origin_120", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_origin_120", metadata !29, metadata !DIExpression()), !dbg !28 + %"$_amount_119" = alloca %Uint128, align 8 + store %Uint128 %_amount, %Uint128* %"$_amount_119", align 8 + call void @llvm.dbg.declare(metadata %Uint128* %"$_amount_119", metadata !30, metadata !DIExpression()), !dbg !28 + %_origin = load [20 x i8], [20 x i8]* %"$_origin_105", align 1 + %_sender = load [20 x i8], [20 x i8]* %"$_sender_106", align 1 + %"$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_109" - -"$have_gas_109": ; preds = %"$out_of_gas_108", %entry - %"$consume_110" = sub i64 %"$gasrem_106", 1 - store i64 %"$consume_110", i64* @_gasrem, align 8 - %"$execptr_load_111" = load i8*, i8** @_execptr, align 8 - call void @_accept(i8* %"$execptr_load_111"), !dbg !16 - %"$gasrem_112" = load i64, i64* @_gasrem, align 8 - %"$gascmp_113" = icmp ugt i64 1, %"$gasrem_112" - br i1 %"$gascmp_113", label %"$out_of_gas_114", label %"$have_gas_115" - -"$out_of_gas_114": ; preds = %"$have_gas_109" + 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 + %"$execptr_load_112" = load i8*, i8** @_execptr, align 8 + call void @_accept(i8* %"$execptr_load_112"), !dbg !32 + %"$gasrem_113" = load i64, i64* @_gasrem, align 8 + %"$gascmp_114" = icmp ugt i64 1, %"$gasrem_113" + br i1 %"$gascmp_114", label %"$out_of_gas_115", label %"$have_gas_116" + +"$out_of_gas_115": ; preds = %"$have_gas_110" call void @_out_of_gas() - br label %"$have_gas_115" + br label %"$have_gas_116" -"$have_gas_115": ; preds = %"$out_of_gas_114", %"$have_gas_109" - %"$consume_116" = sub i64 %"$gasrem_112", 1 - store i64 %"$consume_116", i64* @_gasrem, align 8 - %"$execptr_load_117" = load i8*, i8** @_execptr, align 8 - call void @_accept(i8* %"$execptr_load_117"), !dbg !17 +"$have_gas_116": ; preds = %"$out_of_gas_115", %"$have_gas_110" + %"$consume_117" = sub i64 %"$gasrem_113", 1 + store i64 %"$consume_117", i64* @_gasrem, align 8 + %"$execptr_load_118" = load i8*, i8** @_execptr, align 8 + call void @_accept(i8* %"$execptr_load_118"), !dbg !33 ret void } declare void @_accept(i8*) -define void @Accept1(i8* %0) !dbg !18 { +define void @Accept1(i8* %0) !dbg !34 { entry: - %"$_amount_119" = getelementptr i8, i8* %0, i32 0 - %"$_amount_120" = bitcast i8* %"$_amount_119" to %Uint128* - %_amount = load %Uint128, %Uint128* %"$_amount_120", align 8 - %"$_origin_121" = getelementptr i8, i8* %0, i32 16 - %"$_origin_122" = bitcast i8* %"$_origin_121" to [20 x i8]* - %"$_sender_123" = getelementptr i8, i8* %0, i32 36 - %"$_sender_124" = bitcast i8* %"$_sender_123" to [20 x i8]* - call void @"$Accept1_103"(%Uint128 %_amount, [20 x i8]* %"$_origin_122", [20 x i8]* %"$_sender_124"), !dbg !19 + %"$_amount_123" = getelementptr i8, i8* %0, i32 0 + %"$_amount_124" = bitcast i8* %"$_amount_123" to %Uint128* + %_amount = load %Uint128, %Uint128* %"$_amount_124", align 8 + %"$_origin_125" = getelementptr i8, i8* %0, i32 16 + %"$_origin_126" = bitcast i8* %"$_origin_125" to [20 x i8]* + %"$_sender_127" = getelementptr i8, i8* %0, i32 36 + %"$_sender_128" = bitcast i8* %"$_sender_127" to [20 x i8]* + call void @"$Accept1_104"(%Uint128 %_amount, [20 x i8]* %"$_origin_126", [20 x i8]* %"$_sender_128"), !dbg !35 ret void } -define internal void @"$Accept2_125"(%Uint128 %_amount, [20 x i8]* %"$_origin_126", [20 x i8]* %"$_sender_127") !dbg !20 { +define internal void @"$Accept2_129"(%Uint128 %_amount, [20 x i8]* %"$_origin_130", [20 x i8]* %"$_sender_131") !dbg !36 { entry: - %_origin = load [20 x i8], [20 x i8]* %"$_origin_126", align 1 - %_sender = load [20 x i8], [20 x i8]* %"$_sender_127", align 1 - %"$gasrem_128" = load i64, i64* @_gasrem, align 8 - %"$gascmp_129" = icmp ugt i64 1, %"$gasrem_128" - br i1 %"$gascmp_129", label %"$out_of_gas_130", label %"$have_gas_131" - -"$out_of_gas_130": ; preds = %entry + %"$_sender_200" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_sender_131", [20 x i8]** %"$_sender_200", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_sender_200", metadata !37, metadata !DIExpression()), !dbg !38 + %"$_origin_199" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_origin_130", [20 x i8]** %"$_origin_199", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_origin_199", metadata !39, metadata !DIExpression()), !dbg !38 + %"$_amount_198" = alloca %Uint128, align 8 + store %Uint128 %_amount, %Uint128* %"$_amount_198", align 8 + call void @llvm.dbg.declare(metadata %Uint128* %"$_amount_198", metadata !40, metadata !DIExpression()), !dbg !38 + %_origin = load [20 x i8], [20 x i8]* %"$_origin_130", align 1 + %_sender = load [20 x i8], [20 x i8]* %"$_sender_131", align 1 + %"$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_131" - -"$have_gas_131": ; preds = %"$out_of_gas_130", %entry - %"$consume_132" = sub i64 %"$gasrem_128", 1 - store i64 %"$consume_132", i64* @_gasrem, align 8 - %"$execptr_load_133" = load i8*, i8** @_execptr, align 8 - call void @_accept(i8* %"$execptr_load_133"), !dbg !21 - %"$gasrem_134" = load i64, i64* @_gasrem, align 8 - %"$gascmp_135" = icmp ugt i64 1, %"$gasrem_134" - br i1 %"$gascmp_135", label %"$out_of_gas_136", label %"$have_gas_137" - -"$out_of_gas_136": ; preds = %"$have_gas_131" + 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 + %"$execptr_load_137" = load i8*, i8** @_execptr, align 8 + call void @_accept(i8* %"$execptr_load_137"), !dbg !41 + %"$gasrem_138" = load i64, i64* @_gasrem, align 8 + %"$gascmp_139" = icmp ugt i64 1, %"$gasrem_138" + br i1 %"$gascmp_139", label %"$out_of_gas_140", label %"$have_gas_141" + +"$out_of_gas_140": ; preds = %"$have_gas_135" call void @_out_of_gas() - br label %"$have_gas_137" + br label %"$have_gas_141" -"$have_gas_137": ; preds = %"$out_of_gas_136", %"$have_gas_131" - %"$consume_138" = sub i64 %"$gasrem_134", 1 - store i64 %"$consume_138", i64* @_gasrem, align 8 +"$have_gas_141": ; preds = %"$out_of_gas_140", %"$have_gas_135" + %"$consume_142" = sub i64 %"$gasrem_138", 1 + store i64 %"$consume_142", i64* @_gasrem, align 8 %msg1 = alloca i8*, 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" + call void @llvm.dbg.declare(metadata i8** %msg1, metadata !42, metadata !DIExpression()), !dbg !43 + %"$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_141": ; preds = %"$have_gas_137" +"$out_of_gas_145": ; preds = %"$have_gas_141" call void @_out_of_gas() - br label %"$have_gas_142" - -"$have_gas_142": ; preds = %"$out_of_gas_141", %"$have_gas_137" - %"$consume_143" = sub i64 %"$gasrem_139", 1 - store i64 %"$consume_143", i64* @_gasrem, align 8 - %"$msgobj_144_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$msgobj_144_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_144_salloc_load", i64 125) - %"$msgobj_144_salloc" = bitcast i8* %"$msgobj_144_salloc_salloc" to [125 x i8]* - %"$msgobj_144" = bitcast [125 x i8]* %"$msgobj_144_salloc" to i8* - store i8 3, i8* %"$msgobj_144", align 1 - %"$msgobj_fname_146" = getelementptr i8, i8* %"$msgobj_144", i32 1 - %"$msgobj_fname_147" = bitcast i8* %"$msgobj_fname_146" to %String* - store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_145", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_147", align 8 - %"$msgobj_td_148" = getelementptr i8, i8* %"$msgobj_144", i32 17 - %"$msgobj_td_149" = bitcast i8* %"$msgobj_td_148" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_String_23", %_TyDescrTy_Typ** %"$msgobj_td_149", align 8 - %"$msgobj_v_151" = getelementptr i8, i8* %"$msgobj_144", i32 25 - %"$msgobj_v_152" = bitcast i8* %"$msgobj_v_151" to %String* - store %String { i8* getelementptr inbounds ([0 x i8], [0 x i8]* @"$stringlit_150", i32 0, i32 0), i32 0 }, %String* %"$msgobj_v_152", align 8 - %"$msgobj_fname_154" = getelementptr i8, i8* %"$msgobj_144", i32 41 - %"$msgobj_fname_155" = bitcast i8* %"$msgobj_fname_154" to %String* - store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_153", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_155", align 8 - %"$msgobj_td_156" = getelementptr i8, i8* %"$msgobj_144", i32 57 - %"$msgobj_td_157" = bitcast i8* %"$msgobj_td_156" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_37", %_TyDescrTy_Typ** %"$msgobj_td_157", align 8 - %"$msgobj_v_158" = getelementptr i8, i8* %"$msgobj_144", i32 65 - %"$msgobj_v_159" = bitcast i8* %"$msgobj_v_158" to [20 x i8]* - store [20 x i8] %_sender, [20 x i8]* %"$msgobj_v_159", align 1 - %"$msgobj_fname_161" = getelementptr i8, i8* %"$msgobj_144", i32 85 - %"$msgobj_fname_162" = bitcast i8* %"$msgobj_fname_161" to %String* - store %String { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$stringlit_160", i32 0, i32 0), i32 7 }, %String* %"$msgobj_fname_162", align 8 - %"$msgobj_td_163" = getelementptr i8, i8* %"$msgobj_144", i32 101 - %"$msgobj_td_164" = bitcast i8* %"$msgobj_td_163" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Uint128_17", %_TyDescrTy_Typ** %"$msgobj_td_164", align 8 - %"$msgobj_v_165" = getelementptr i8, i8* %"$msgobj_144", i32 109 - %"$msgobj_v_166" = bitcast i8* %"$msgobj_v_165" to %Uint128* - store %Uint128 %_amount, %Uint128* %"$msgobj_v_166", align 8 - store i8* %"$msgobj_144", i8** %msg1, align 8, !dbg !22 - %"$gasrem_168" = load i64, i64* @_gasrem, align 8 - %"$gascmp_169" = icmp ugt i64 1, %"$gasrem_168" - br i1 %"$gascmp_169", label %"$out_of_gas_170", label %"$have_gas_171" - -"$out_of_gas_170": ; preds = %"$have_gas_142" + br label %"$have_gas_146" + +"$have_gas_146": ; preds = %"$out_of_gas_145", %"$have_gas_141" + %"$consume_147" = sub i64 %"$gasrem_143", 1 + store i64 %"$consume_147", i64* @_gasrem, align 8 + %"$msgobj_148_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$msgobj_148_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_148_salloc_load", i64 125) + %"$msgobj_148_salloc" = bitcast i8* %"$msgobj_148_salloc_salloc" to [125 x i8]* + %"$msgobj_148" = bitcast [125 x i8]* %"$msgobj_148_salloc" to i8* + store i8 3, i8* %"$msgobj_148", align 1 + %"$msgobj_fname_150" = getelementptr i8, i8* %"$msgobj_148", i32 1 + %"$msgobj_fname_151" = bitcast i8* %"$msgobj_fname_150" to %String* + store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_149", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_151", align 8 + %"$msgobj_td_152" = getelementptr i8, i8* %"$msgobj_148", i32 17 + %"$msgobj_td_153" = bitcast i8* %"$msgobj_td_152" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_String_23", %_TyDescrTy_Typ** %"$msgobj_td_153", align 8 + %"$msgobj_v_155" = getelementptr i8, i8* %"$msgobj_148", i32 25 + %"$msgobj_v_156" = bitcast i8* %"$msgobj_v_155" to %String* + store %String { i8* getelementptr inbounds ([0 x i8], [0 x i8]* @"$stringlit_154", i32 0, i32 0), i32 0 }, %String* %"$msgobj_v_156", align 8 + %"$msgobj_fname_158" = getelementptr i8, i8* %"$msgobj_148", i32 41 + %"$msgobj_fname_159" = bitcast i8* %"$msgobj_fname_158" to %String* + store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_157", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_159", align 8 + %"$msgobj_td_160" = getelementptr i8, i8* %"$msgobj_148", i32 57 + %"$msgobj_td_161" = bitcast i8* %"$msgobj_td_160" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_37", %_TyDescrTy_Typ** %"$msgobj_td_161", align 8 + %"$msgobj_v_162" = getelementptr i8, i8* %"$msgobj_148", i32 65 + %"$msgobj_v_163" = bitcast i8* %"$msgobj_v_162" to [20 x i8]* + store [20 x i8] %_sender, [20 x i8]* %"$msgobj_v_163", align 1 + %"$msgobj_fname_165" = getelementptr i8, i8* %"$msgobj_148", i32 85 + %"$msgobj_fname_166" = bitcast i8* %"$msgobj_fname_165" to %String* + store %String { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$stringlit_164", i32 0, i32 0), i32 7 }, %String* %"$msgobj_fname_166", align 8 + %"$msgobj_td_167" = getelementptr i8, i8* %"$msgobj_148", i32 101 + %"$msgobj_td_168" = bitcast i8* %"$msgobj_td_167" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Uint128_17", %_TyDescrTy_Typ** %"$msgobj_td_168", align 8 + %"$msgobj_v_169" = getelementptr i8, i8* %"$msgobj_148", i32 109 + %"$msgobj_v_170" = bitcast i8* %"$msgobj_v_169" to %Uint128* + store %Uint128 %_amount, %Uint128* %"$msgobj_v_170", align 8 + store i8* %"$msgobj_148", i8** %msg1, align 8, !dbg !44 + %"$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_146" call void @_out_of_gas() - br label %"$have_gas_171" + br label %"$have_gas_175" -"$have_gas_171": ; preds = %"$out_of_gas_170", %"$have_gas_142" - %"$consume_172" = sub i64 %"$gasrem_168", 1 - store i64 %"$consume_172", i64* @_gasrem, align 8 +"$have_gas_175": ; preds = %"$out_of_gas_174", %"$have_gas_146" + %"$consume_176" = sub i64 %"$gasrem_172", 1 + store i64 %"$consume_176", i64* @_gasrem, align 8 %msgs = alloca %TName_List_Message*, align 8 - %"$gasrem_173" = load i64, i64* @_gasrem, align 8 - %"$gascmp_174" = icmp ugt i64 1, %"$gasrem_173" - br i1 %"$gascmp_174", label %"$out_of_gas_175", label %"$have_gas_176" + call void @llvm.dbg.declare(metadata %TName_List_Message** %msgs, metadata !45, metadata !DIExpression()), !dbg !46 + %"$gasrem_177" = load i64, i64* @_gasrem, align 8 + %"$gascmp_178" = icmp ugt i64 1, %"$gasrem_177" + br i1 %"$gascmp_178", label %"$out_of_gas_179", label %"$have_gas_180" -"$out_of_gas_175": ; preds = %"$have_gas_171" +"$out_of_gas_179": ; preds = %"$have_gas_175" call void @_out_of_gas() - br label %"$have_gas_176" + br label %"$have_gas_180" -"$have_gas_176": ; preds = %"$out_of_gas_175", %"$have_gas_171" - %"$consume_177" = sub i64 %"$gasrem_173", 1 - store i64 %"$consume_177", i64* @_gasrem, align 8 +"$have_gas_180": ; preds = %"$out_of_gas_179", %"$have_gas_175" + %"$consume_181" = sub i64 %"$gasrem_177", 1 + store i64 %"$consume_181", i64* @_gasrem, align 8 %"$accept.one_msg_1" = alloca %TName_List_Message*, align 8 - %"$accept.one_msg_178" = load { %TName_List_Message* (i8*, i8*)*, i8* }, { %TName_List_Message* (i8*, i8*)*, i8* }* @accept.one_msg, align 8 - %"$accept.one_msg_fptr_179" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$accept.one_msg_178", 0 - %"$accept.one_msg_envptr_180" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$accept.one_msg_178", 1 - %"$msg1_181" = load i8*, i8** %msg1, align 8 - %"$accept.one_msg_call_182" = call %TName_List_Message* %"$accept.one_msg_fptr_179"(i8* %"$accept.one_msg_envptr_180", i8* %"$msg1_181"), !dbg !23 - store %TName_List_Message* %"$accept.one_msg_call_182", %TName_List_Message** %"$accept.one_msg_1", align 8, !dbg !23 - %"$$accept.one_msg_1_183" = load %TName_List_Message*, %TName_List_Message** %"$accept.one_msg_1", align 8 - store %TName_List_Message* %"$$accept.one_msg_1_183", %TName_List_Message** %msgs, align 8, !dbg !23 - %"$msgs_184" = load %TName_List_Message*, %TName_List_Message** %msgs, align 8 - %"$$msgs_184_185" = bitcast %TName_List_Message* %"$msgs_184" to i8* - %"$_literal_cost_call_186" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_41", i8* %"$$msgs_184_185") - %"$gasrem_187" = load i64, i64* @_gasrem, align 8 - %"$gascmp_188" = icmp ugt i64 %"$_literal_cost_call_186", %"$gasrem_187" - br i1 %"$gascmp_188", label %"$out_of_gas_189", label %"$have_gas_190" - -"$out_of_gas_189": ; preds = %"$have_gas_176" + call void @llvm.dbg.declare(metadata %TName_List_Message** %"$accept.one_msg_1", metadata !47, metadata !DIExpression()), !dbg !48 + %"$accept.one_msg_182" = load { %TName_List_Message* (i8*, i8*)*, i8* }, { %TName_List_Message* (i8*, i8*)*, i8* }* @accept.one_msg, align 8 + %"$accept.one_msg_fptr_183" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$accept.one_msg_182", 0 + %"$accept.one_msg_envptr_184" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$accept.one_msg_182", 1 + %"$msg1_185" = load i8*, i8** %msg1, align 8 + %"$accept.one_msg_call_186" = call %TName_List_Message* %"$accept.one_msg_fptr_183"(i8* %"$accept.one_msg_envptr_184", i8* %"$msg1_185"), !dbg !48 + store %TName_List_Message* %"$accept.one_msg_call_186", %TName_List_Message** %"$accept.one_msg_1", align 8, !dbg !48 + %"$$accept.one_msg_1_187" = load %TName_List_Message*, %TName_List_Message** %"$accept.one_msg_1", align 8 + store %TName_List_Message* %"$$accept.one_msg_1_187", %TName_List_Message** %msgs, align 8, !dbg !48 + %"$msgs_188" = load %TName_List_Message*, %TName_List_Message** %msgs, align 8 + %"$$msgs_188_189" = bitcast %TName_List_Message* %"$msgs_188" to i8* + %"$_literal_cost_call_190" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_41", i8* %"$$msgs_188_189") + %"$gasrem_191" = load i64, i64* @_gasrem, align 8 + %"$gascmp_192" = icmp ugt i64 %"$_literal_cost_call_190", %"$gasrem_191" + br i1 %"$gascmp_192", label %"$out_of_gas_193", label %"$have_gas_194" + +"$out_of_gas_193": ; preds = %"$have_gas_180" call void @_out_of_gas() - br label %"$have_gas_190" - -"$have_gas_190": ; preds = %"$out_of_gas_189", %"$have_gas_176" - %"$consume_191" = sub i64 %"$gasrem_187", %"$_literal_cost_call_186" - store i64 %"$consume_191", i64* @_gasrem, align 8 - %"$execptr_load_192" = load i8*, i8** @_execptr, align 8 - %"$msgs_193" = load %TName_List_Message*, %TName_List_Message** %msgs, align 8 - call void @_send(i8* %"$execptr_load_192", %_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_41", %TName_List_Message* %"$msgs_193"), !dbg !24 + br label %"$have_gas_194" + +"$have_gas_194": ; preds = %"$out_of_gas_193", %"$have_gas_180" + %"$consume_195" = sub i64 %"$gasrem_191", %"$_literal_cost_call_190" + store i64 %"$consume_195", i64* @_gasrem, align 8 + %"$execptr_load_196" = load i8*, i8** @_execptr, align 8 + %"$msgs_197" = load %TName_List_Message*, %TName_List_Message** %msgs, align 8 + call void @_send(i8* %"$execptr_load_196", %_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_41", %TName_List_Message* %"$msgs_197"), !dbg !49 ret void } @@ -399,191 +428,239 @@ declare i64 @_literal_cost(%_TyDescrTy_Typ*, i8*) declare void @_send(i8*, %_TyDescrTy_Typ*, %TName_List_Message*) -define void @Accept2(i8* %0) !dbg !25 { +define void @Accept2(i8* %0) !dbg !50 { entry: - %"$_amount_195" = getelementptr i8, i8* %0, i32 0 - %"$_amount_196" = bitcast i8* %"$_amount_195" to %Uint128* - %_amount = load %Uint128, %Uint128* %"$_amount_196", align 8 - %"$_origin_197" = getelementptr i8, i8* %0, i32 16 - %"$_origin_198" = bitcast i8* %"$_origin_197" to [20 x i8]* - %"$_sender_199" = getelementptr i8, i8* %0, i32 36 - %"$_sender_200" = bitcast i8* %"$_sender_199" to [20 x i8]* - call void @"$Accept2_125"(%Uint128 %_amount, [20 x i8]* %"$_origin_198", [20 x i8]* %"$_sender_200"), !dbg !26 + %"$_amount_202" = getelementptr i8, i8* %0, i32 0 + %"$_amount_203" = bitcast i8* %"$_amount_202" to %Uint128* + %_amount = load %Uint128, %Uint128* %"$_amount_203", align 8 + %"$_origin_204" = getelementptr i8, i8* %0, i32 16 + %"$_origin_205" = bitcast i8* %"$_origin_204" to [20 x i8]* + %"$_sender_206" = getelementptr i8, i8* %0, i32 36 + %"$_sender_207" = bitcast i8* %"$_sender_206" to [20 x i8]* + call void @"$Accept2_129"(%Uint128 %_amount, [20 x i8]* %"$_origin_205", [20 x i8]* %"$_sender_207"), !dbg !51 ret void } -define internal void @"$Accept3_201"(%Uint128 %_amount, [20 x i8]* %"$_origin_202", [20 x i8]* %"$_sender_203") !dbg !27 { +define internal void @"$Accept3_208"(%Uint128 %_amount, [20 x i8]* %"$_origin_209", [20 x i8]* %"$_sender_210") !dbg !52 { entry: - %_origin = load [20 x i8], [20 x i8]* %"$_origin_202", align 1 - %_sender = load [20 x i8], [20 x i8]* %"$_sender_203", align 1 - %"$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 = %entry + %"$_sender_279" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_sender_210", [20 x i8]** %"$_sender_279", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_sender_279", metadata !53, metadata !DIExpression()), !dbg !54 + %"$_origin_278" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_origin_209", [20 x i8]** %"$_origin_278", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_origin_278", metadata !55, metadata !DIExpression()), !dbg !54 + %"$_amount_277" = alloca %Uint128, align 8 + store %Uint128 %_amount, %Uint128* %"$_amount_277", align 8 + call void @llvm.dbg.declare(metadata %Uint128* %"$_amount_277", metadata !56, metadata !DIExpression()), !dbg !54 + %_origin = load [20 x i8], [20 x i8]* %"$_origin_209", align 1 + %_sender = load [20 x i8], [20 x i8]* %"$_sender_210", align 1 + %"$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 = %entry call void @_out_of_gas() - br label %"$have_gas_207" - -"$have_gas_207": ; preds = %"$out_of_gas_206", %entry - %"$consume_208" = sub i64 %"$gasrem_204", 1 - store i64 %"$consume_208", i64* @_gasrem, align 8 - %"$execptr_load_209" = load i8*, i8** @_execptr, align 8 - call void @_accept(i8* %"$execptr_load_209"), !dbg !28 - %"$gasrem_210" = load i64, i64* @_gasrem, align 8 - %"$gascmp_211" = icmp ugt i64 1, %"$gasrem_210" - br i1 %"$gascmp_211", label %"$out_of_gas_212", label %"$have_gas_213" - -"$out_of_gas_212": ; preds = %"$have_gas_207" + br label %"$have_gas_214" + +"$have_gas_214": ; preds = %"$out_of_gas_213", %entry + %"$consume_215" = sub i64 %"$gasrem_211", 1 + store i64 %"$consume_215", i64* @_gasrem, align 8 + %"$execptr_load_216" = load i8*, i8** @_execptr, align 8 + call void @_accept(i8* %"$execptr_load_216"), !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_214" call void @_out_of_gas() - br label %"$have_gas_213" + br label %"$have_gas_220" -"$have_gas_213": ; preds = %"$out_of_gas_212", %"$have_gas_207" - %"$consume_214" = sub i64 %"$gasrem_210", 1 - store i64 %"$consume_214", i64* @_gasrem, align 8 +"$have_gas_220": ; preds = %"$out_of_gas_219", %"$have_gas_214" + %"$consume_221" = sub i64 %"$gasrem_217", 1 + store i64 %"$consume_221", i64* @_gasrem, align 8 %msg1 = alloca i8*, align 8 - %"$gasrem_215" = load i64, i64* @_gasrem, align 8 - %"$gascmp_216" = icmp ugt i64 1, %"$gasrem_215" - br i1 %"$gascmp_216", label %"$out_of_gas_217", label %"$have_gas_218" + call void @llvm.dbg.declare(metadata i8** %msg1, metadata !58, metadata !DIExpression()), !dbg !59 + %"$gasrem_222" = load i64, i64* @_gasrem, align 8 + %"$gascmp_223" = icmp ugt i64 1, %"$gasrem_222" + br i1 %"$gascmp_223", label %"$out_of_gas_224", label %"$have_gas_225" -"$out_of_gas_217": ; preds = %"$have_gas_213" +"$out_of_gas_224": ; preds = %"$have_gas_220" call void @_out_of_gas() - br label %"$have_gas_218" - -"$have_gas_218": ; preds = %"$out_of_gas_217", %"$have_gas_213" - %"$consume_219" = sub i64 %"$gasrem_215", 1 - store i64 %"$consume_219", i64* @_gasrem, align 8 - %"$msgobj_220_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$msgobj_220_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_220_salloc_load", i64 125) - %"$msgobj_220_salloc" = bitcast i8* %"$msgobj_220_salloc_salloc" to [125 x i8]* - %"$msgobj_220" = bitcast [125 x i8]* %"$msgobj_220_salloc" to i8* - store i8 3, i8* %"$msgobj_220", align 1 - %"$msgobj_fname_222" = getelementptr i8, i8* %"$msgobj_220", i32 1 - %"$msgobj_fname_223" = bitcast i8* %"$msgobj_fname_222" to %String* - store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_221", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_223", align 8 - %"$msgobj_td_224" = getelementptr i8, i8* %"$msgobj_220", i32 17 - %"$msgobj_td_225" = bitcast i8* %"$msgobj_td_224" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_String_23", %_TyDescrTy_Typ** %"$msgobj_td_225", align 8 - %"$msgobj_v_227" = getelementptr i8, i8* %"$msgobj_220", i32 25 - %"$msgobj_v_228" = bitcast i8* %"$msgobj_v_227" to %String* - store %String { i8* getelementptr inbounds ([0 x i8], [0 x i8]* @"$stringlit_226", i32 0, i32 0), i32 0 }, %String* %"$msgobj_v_228", align 8 - %"$msgobj_fname_230" = getelementptr i8, i8* %"$msgobj_220", i32 41 - %"$msgobj_fname_231" = bitcast i8* %"$msgobj_fname_230" to %String* - store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_229", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_231", align 8 - %"$msgobj_td_232" = getelementptr i8, i8* %"$msgobj_220", i32 57 - %"$msgobj_td_233" = bitcast i8* %"$msgobj_td_232" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_37", %_TyDescrTy_Typ** %"$msgobj_td_233", align 8 - %"$msgobj_v_234" = getelementptr i8, i8* %"$msgobj_220", i32 65 - %"$msgobj_v_235" = bitcast i8* %"$msgobj_v_234" to [20 x i8]* - store [20 x i8] %_sender, [20 x i8]* %"$msgobj_v_235", align 1 - %"$msgobj_fname_237" = getelementptr i8, i8* %"$msgobj_220", i32 85 + br label %"$have_gas_225" + +"$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 + %"$msgobj_227_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$msgobj_227_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_227_salloc_load", i64 125) + %"$msgobj_227_salloc" = bitcast i8* %"$msgobj_227_salloc_salloc" to [125 x i8]* + %"$msgobj_227" = bitcast [125 x i8]* %"$msgobj_227_salloc" to i8* + store i8 3, i8* %"$msgobj_227", align 1 + %"$msgobj_fname_229" = getelementptr i8, i8* %"$msgobj_227", i32 1 + %"$msgobj_fname_230" = bitcast i8* %"$msgobj_fname_229" to %String* + store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_228", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_230", align 8 + %"$msgobj_td_231" = getelementptr i8, i8* %"$msgobj_227", i32 17 + %"$msgobj_td_232" = bitcast i8* %"$msgobj_td_231" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_String_23", %_TyDescrTy_Typ** %"$msgobj_td_232", align 8 + %"$msgobj_v_234" = getelementptr i8, i8* %"$msgobj_227", i32 25 + %"$msgobj_v_235" = bitcast i8* %"$msgobj_v_234" to %String* + store %String { i8* getelementptr inbounds ([0 x i8], [0 x i8]* @"$stringlit_233", i32 0, i32 0), i32 0 }, %String* %"$msgobj_v_235", align 8 + %"$msgobj_fname_237" = getelementptr i8, i8* %"$msgobj_227", i32 41 %"$msgobj_fname_238" = bitcast i8* %"$msgobj_fname_237" to %String* - store %String { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$stringlit_236", i32 0, i32 0), i32 7 }, %String* %"$msgobj_fname_238", align 8 - %"$msgobj_td_239" = getelementptr i8, i8* %"$msgobj_220", i32 101 + store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_236", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_238", align 8 + %"$msgobj_td_239" = getelementptr i8, i8* %"$msgobj_227", i32 57 %"$msgobj_td_240" = bitcast i8* %"$msgobj_td_239" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Uint128_17", %_TyDescrTy_Typ** %"$msgobj_td_240", align 8 - %"$msgobj_v_241" = getelementptr i8, i8* %"$msgobj_220", i32 109 - %"$msgobj_v_242" = bitcast i8* %"$msgobj_v_241" to %Uint128* - store %Uint128 { i128 100 }, %Uint128* %"$msgobj_v_242", align 8 - store i8* %"$msgobj_220", i8** %msg1, align 8, !dbg !29 - %"$gasrem_244" = load i64, i64* @_gasrem, align 8 - %"$gascmp_245" = icmp ugt i64 1, %"$gasrem_244" - br i1 %"$gascmp_245", label %"$out_of_gas_246", label %"$have_gas_247" - -"$out_of_gas_246": ; preds = %"$have_gas_218" + store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_37", %_TyDescrTy_Typ** %"$msgobj_td_240", align 8 + %"$msgobj_v_241" = getelementptr i8, i8* %"$msgobj_227", i32 65 + %"$msgobj_v_242" = bitcast i8* %"$msgobj_v_241" to [20 x i8]* + store [20 x i8] %_sender, [20 x i8]* %"$msgobj_v_242", align 1 + %"$msgobj_fname_244" = getelementptr i8, i8* %"$msgobj_227", i32 85 + %"$msgobj_fname_245" = bitcast i8* %"$msgobj_fname_244" to %String* + store %String { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$stringlit_243", i32 0, i32 0), i32 7 }, %String* %"$msgobj_fname_245", align 8 + %"$msgobj_td_246" = getelementptr i8, i8* %"$msgobj_227", i32 101 + %"$msgobj_td_247" = bitcast i8* %"$msgobj_td_246" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Uint128_17", %_TyDescrTy_Typ** %"$msgobj_td_247", align 8 + %"$msgobj_v_248" = getelementptr i8, i8* %"$msgobj_227", i32 109 + %"$msgobj_v_249" = bitcast i8* %"$msgobj_v_248" to %Uint128* + store %Uint128 { i128 100 }, %Uint128* %"$msgobj_v_249", align 8 + store i8* %"$msgobj_227", i8** %msg1, align 8, !dbg !60 + %"$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_225" call void @_out_of_gas() - br label %"$have_gas_247" + br label %"$have_gas_254" -"$have_gas_247": ; preds = %"$out_of_gas_246", %"$have_gas_218" - %"$consume_248" = sub i64 %"$gasrem_244", 1 - store i64 %"$consume_248", i64* @_gasrem, align 8 +"$have_gas_254": ; preds = %"$out_of_gas_253", %"$have_gas_225" + %"$consume_255" = sub i64 %"$gasrem_251", 1 + store i64 %"$consume_255", i64* @_gasrem, align 8 %msgs = alloca %TName_List_Message*, 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" + call void @llvm.dbg.declare(metadata %TName_List_Message** %msgs, metadata !61, metadata !DIExpression()), !dbg !62 + %"$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_251": ; preds = %"$have_gas_247" +"$out_of_gas_258": ; preds = %"$have_gas_254" call void @_out_of_gas() - br label %"$have_gas_252" + br label %"$have_gas_259" -"$have_gas_252": ; preds = %"$out_of_gas_251", %"$have_gas_247" - %"$consume_253" = sub i64 %"$gasrem_249", 1 - store i64 %"$consume_253", i64* @_gasrem, align 8 +"$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 %"$accept.one_msg_2" = alloca %TName_List_Message*, align 8 - %"$accept.one_msg_254" = load { %TName_List_Message* (i8*, i8*)*, i8* }, { %TName_List_Message* (i8*, i8*)*, i8* }* @accept.one_msg, align 8 - %"$accept.one_msg_fptr_255" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$accept.one_msg_254", 0 - %"$accept.one_msg_envptr_256" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$accept.one_msg_254", 1 - %"$msg1_257" = load i8*, i8** %msg1, align 8 - %"$accept.one_msg_call_258" = call %TName_List_Message* %"$accept.one_msg_fptr_255"(i8* %"$accept.one_msg_envptr_256", i8* %"$msg1_257"), !dbg !30 - store %TName_List_Message* %"$accept.one_msg_call_258", %TName_List_Message** %"$accept.one_msg_2", align 8, !dbg !30 - %"$$accept.one_msg_2_259" = load %TName_List_Message*, %TName_List_Message** %"$accept.one_msg_2", align 8 - store %TName_List_Message* %"$$accept.one_msg_2_259", %TName_List_Message** %msgs, align 8, !dbg !30 - %"$msgs_260" = load %TName_List_Message*, %TName_List_Message** %msgs, align 8 - %"$$msgs_260_261" = bitcast %TName_List_Message* %"$msgs_260" to i8* - %"$_literal_cost_call_262" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_41", i8* %"$$msgs_260_261") - %"$gasrem_263" = load i64, i64* @_gasrem, align 8 - %"$gascmp_264" = icmp ugt i64 %"$_literal_cost_call_262", %"$gasrem_263" - br i1 %"$gascmp_264", label %"$out_of_gas_265", label %"$have_gas_266" - -"$out_of_gas_265": ; preds = %"$have_gas_252" + call void @llvm.dbg.declare(metadata %TName_List_Message** %"$accept.one_msg_2", metadata !63, metadata !DIExpression()), !dbg !64 + %"$accept.one_msg_261" = load { %TName_List_Message* (i8*, i8*)*, i8* }, { %TName_List_Message* (i8*, i8*)*, i8* }* @accept.one_msg, align 8 + %"$accept.one_msg_fptr_262" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$accept.one_msg_261", 0 + %"$accept.one_msg_envptr_263" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$accept.one_msg_261", 1 + %"$msg1_264" = load i8*, i8** %msg1, align 8 + %"$accept.one_msg_call_265" = call %TName_List_Message* %"$accept.one_msg_fptr_262"(i8* %"$accept.one_msg_envptr_263", i8* %"$msg1_264"), !dbg !64 + store %TName_List_Message* %"$accept.one_msg_call_265", %TName_List_Message** %"$accept.one_msg_2", align 8, !dbg !64 + %"$$accept.one_msg_2_266" = load %TName_List_Message*, %TName_List_Message** %"$accept.one_msg_2", align 8 + store %TName_List_Message* %"$$accept.one_msg_2_266", %TName_List_Message** %msgs, align 8, !dbg !64 + %"$msgs_267" = load %TName_List_Message*, %TName_List_Message** %msgs, align 8 + %"$$msgs_267_268" = bitcast %TName_List_Message* %"$msgs_267" to i8* + %"$_literal_cost_call_269" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_41", i8* %"$$msgs_267_268") + %"$gasrem_270" = load i64, i64* @_gasrem, align 8 + %"$gascmp_271" = icmp ugt i64 %"$_literal_cost_call_269", %"$gasrem_270" + br i1 %"$gascmp_271", label %"$out_of_gas_272", label %"$have_gas_273" + +"$out_of_gas_272": ; preds = %"$have_gas_259" call void @_out_of_gas() - br label %"$have_gas_266" - -"$have_gas_266": ; preds = %"$out_of_gas_265", %"$have_gas_252" - %"$consume_267" = sub i64 %"$gasrem_263", %"$_literal_cost_call_262" - store i64 %"$consume_267", i64* @_gasrem, align 8 - %"$execptr_load_268" = load i8*, i8** @_execptr, align 8 - %"$msgs_269" = load %TName_List_Message*, %TName_List_Message** %msgs, align 8 - call void @_send(i8* %"$execptr_load_268", %_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_41", %TName_List_Message* %"$msgs_269"), !dbg !31 + br label %"$have_gas_273" + +"$have_gas_273": ; preds = %"$out_of_gas_272", %"$have_gas_259" + %"$consume_274" = sub i64 %"$gasrem_270", %"$_literal_cost_call_269" + store i64 %"$consume_274", i64* @_gasrem, align 8 + %"$execptr_load_275" = load i8*, i8** @_execptr, align 8 + %"$msgs_276" = load %TName_List_Message*, %TName_List_Message** %msgs, align 8 + call void @_send(i8* %"$execptr_load_275", %_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_41", %TName_List_Message* %"$msgs_276"), !dbg !65 ret void } -define void @Accept3(i8* %0) !dbg !32 { +define void @Accept3(i8* %0) !dbg !66 { 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]* - call void @"$Accept3_201"(%Uint128 %_amount, [20 x i8]* %"$_origin_274", [20 x i8]* %"$_sender_276"), !dbg !33 + %"$_amount_281" = getelementptr i8, i8* %0, i32 0 + %"$_amount_282" = bitcast i8* %"$_amount_281" to %Uint128* + %_amount = load %Uint128, %Uint128* %"$_amount_282", align 8 + %"$_origin_283" = getelementptr i8, i8* %0, i32 16 + %"$_origin_284" = bitcast i8* %"$_origin_283" to [20 x i8]* + %"$_sender_285" = getelementptr i8, i8* %0, i32 36 + %"$_sender_286" = bitcast i8* %"$_sender_285" to [20 x i8]* + call void @"$Accept3_208"(%Uint128 %_amount, [20 x i8]* %"$_origin_284", [20 x i8]* %"$_sender_286"), !dbg !67 ret void } +attributes #0 = { nocallback nofree nosync nounwind readnone speculatable willreturn } + !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) +!1 = distinct !DICompileUnit(language: DW_LANG_C89, file: !2, producer: "Scilla Compiler", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false) !2 = !DIFile(filename: "accept.scilla", directory: "codegen/contr") -!3 = !{} -!4 = distinct !DISubprogram(name: "$fundef_3", linkageName: "$fundef_3", scope: !2, file: !2, line: 7, type: !5, scopeLine: 7, 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: 7, column: 17, scope: !4) -!9 = !DILocation(line: 8, column: 3, scope: !4) -!10 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !11, file: !11, type: !5, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!11 = !DIFile(filename: ".", directory: ".") -!12 = !DILocation(line: 0, scope: !10) -!13 = !DILocation(line: 7, column: 3, scope: !10) -!14 = distinct !DISubprogram(name: "_deploy_ops", linkageName: "_deploy_ops", scope: !11, file: !11, type: !5, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!15 = distinct !DISubprogram(name: "Accept1", linkageName: "Accept1", scope: !2, file: !2, line: 13, type: !5, scopeLine: 13, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!16 = !DILocation(line: 14, column: 3, scope: !15) -!17 = !DILocation(line: 15, column: 3, scope: !15) -!18 = distinct !DISubprogram(name: "Accept1", linkageName: "Accept1", scope: !2, file: !2, line: 13, type: !5, scopeLine: 13, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!19 = !DILocation(line: 13, column: 12, scope: !18) -!20 = distinct !DISubprogram(name: "Accept2", linkageName: "Accept2", scope: !2, file: !2, line: 18, type: !5, scopeLine: 18, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!21 = !DILocation(line: 19, column: 3, scope: !20) -!22 = !DILocation(line: 20, column: 10, scope: !20) -!23 = !DILocation(line: 21, column: 10, scope: !20) -!24 = !DILocation(line: 22, column: 3, scope: !20) -!25 = distinct !DISubprogram(name: "Accept2", linkageName: "Accept2", scope: !2, file: !2, line: 18, type: !5, scopeLine: 18, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!26 = !DILocation(line: 18, column: 12, scope: !25) -!27 = distinct !DISubprogram(name: "Accept3", linkageName: "Accept3", scope: !2, file: !2, line: 25, type: !5, scopeLine: 25, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!28 = !DILocation(line: 26, column: 3, scope: !27) -!29 = !DILocation(line: 27, column: 10, scope: !27) -!30 = !DILocation(line: 28, column: 10, scope: !27) -!31 = !DILocation(line: 29, column: 3, scope: !27) -!32 = distinct !DISubprogram(name: "Accept3", linkageName: "Accept3", scope: !2, file: !2, line: 25, type: !5, scopeLine: 25, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!33 = !DILocation(line: 25, column: 12, scope: !32) +!3 = distinct !DISubprogram(name: "$fundef_3", linkageName: "$fundef_3", scope: !2, file: !2, line: 7, type: !4, scopeLine: 7, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!4 = !DISubroutineType(types: !5) +!5 = !{!6} +!6 = !DIBasicType(tag: DW_TAG_unspecified_type, name: "void") +!7 = !{} +!8 = !DILocalVariable(name: "msg", scope: !3, file: !2, line: 6, type: !9) +!9 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "Message", baseType: !10, size: 8, align: 8, dwarfAddressSpace: 0) +!10 = !DIBasicType(name: "Message", size: 8) +!11 = !DILocation(line: 6, column: 8, scope: !3) +!12 = !DILocalVariable(name: "$retval_4", scope: !3, file: !2, line: 7, type: !13) +!13 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "List (Message)", baseType: !14, size: 8, align: 8, dwarfAddressSpace: 0) +!14 = !DIBasicType(name: "List (Message)", size: 8) +!15 = !DILocation(line: 7, column: 3, scope: !3) +!16 = !DILocalVariable(name: "nil_msg", scope: !3, file: !2, line: 7, type: !13) +!17 = !DILocation(line: 7, column: 7, scope: !3) +!18 = !DILocation(line: 7, column: 17, scope: !3) +!19 = !DILocation(line: 8, column: 3, scope: !3) +!20 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !21, file: !21, type: !4, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!21 = !DIFile(filename: ".", directory: ".") +!22 = !DILocation(line: 0, scope: !20) +!23 = !DILocation(line: 7, column: 3, scope: !20) +!24 = distinct !DISubprogram(name: "_deploy_ops", linkageName: "_deploy_ops", scope: !21, file: !21, type: !4, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!25 = distinct !DISubprogram(name: "Accept1", linkageName: "Accept1", scope: !2, file: !2, line: 13, type: !4, scopeLine: 13, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!26 = !DILocalVariable(name: "_sender", scope: !25, file: !2, line: 13, type: !27) +!27 = !DIBasicType(name: "ByStr20 with end", size: 20) +!28 = !DILocation(line: 13, column: 12, scope: !25) +!29 = !DILocalVariable(name: "_origin", scope: !25, file: !2, line: 13, type: !27) +!30 = !DILocalVariable(name: "_amount", scope: !25, file: !2, line: 13, type: !31) +!31 = !DIBasicType(name: "Uint128", size: 16) +!32 = !DILocation(line: 14, column: 3, scope: !25) +!33 = !DILocation(line: 15, column: 3, scope: !25) +!34 = distinct !DISubprogram(name: "Accept1", linkageName: "Accept1", scope: !2, file: !2, line: 13, type: !4, scopeLine: 13, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!35 = !DILocation(line: 13, column: 12, scope: !34) +!36 = distinct !DISubprogram(name: "Accept2", linkageName: "Accept2", scope: !2, file: !2, line: 18, type: !4, scopeLine: 18, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!37 = !DILocalVariable(name: "_sender", scope: !36, file: !2, line: 18, type: !27) +!38 = !DILocation(line: 18, column: 12, scope: !36) +!39 = !DILocalVariable(name: "_origin", scope: !36, file: !2, line: 18, type: !27) +!40 = !DILocalVariable(name: "_amount", scope: !36, file: !2, line: 18, type: !31) +!41 = !DILocation(line: 19, column: 3, scope: !36) +!42 = !DILocalVariable(name: "msg1", scope: !36, file: !2, line: 20, type: !9) +!43 = !DILocation(line: 20, column: 3, scope: !36) +!44 = !DILocation(line: 20, column: 10, scope: !36) +!45 = !DILocalVariable(name: "msgs", scope: !36, file: !2, line: 21, type: !13) +!46 = !DILocation(line: 21, column: 3, scope: !36) +!47 = !DILocalVariable(name: "$accept.one_msg_1", scope: !36, file: !2, line: 21, type: !13) +!48 = !DILocation(line: 21, column: 10, scope: !36) +!49 = !DILocation(line: 22, column: 3, scope: !36) +!50 = distinct !DISubprogram(name: "Accept2", linkageName: "Accept2", scope: !2, file: !2, line: 18, type: !4, scopeLine: 18, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!51 = !DILocation(line: 18, column: 12, scope: !50) +!52 = distinct !DISubprogram(name: "Accept3", linkageName: "Accept3", scope: !2, file: !2, line: 25, type: !4, scopeLine: 25, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!53 = !DILocalVariable(name: "_sender", scope: !52, file: !2, line: 25, type: !27) +!54 = !DILocation(line: 25, column: 12, scope: !52) +!55 = !DILocalVariable(name: "_origin", scope: !52, file: !2, line: 25, type: !27) +!56 = !DILocalVariable(name: "_amount", scope: !52, file: !2, line: 25, type: !31) +!57 = !DILocation(line: 26, column: 3, scope: !52) +!58 = !DILocalVariable(name: "msg1", scope: !52, file: !2, line: 27, type: !9) +!59 = !DILocation(line: 27, column: 3, scope: !52) +!60 = !DILocation(line: 27, column: 10, scope: !52) +!61 = !DILocalVariable(name: "msgs", scope: !52, file: !2, line: 28, type: !13) +!62 = !DILocation(line: 28, column: 3, scope: !52) +!63 = !DILocalVariable(name: "$accept.one_msg_2", scope: !52, file: !2, line: 28, type: !13) +!64 = !DILocation(line: 28, column: 10, scope: !52) +!65 = !DILocation(line: 29, column: 3, scope: !52) +!66 = distinct !DISubprogram(name: "Accept3", linkageName: "Accept3", scope: !2, file: !2, line: 25, type: !4, scopeLine: 25, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!67 = !DILocation(line: 25, column: 12, scope: !66) diff --git a/testsuite/contr/accept.ll b/testsuite/contr/accept.ll index 1b287de0..e84217f6 100644 --- a/testsuite/contr/accept.ll +++ b/testsuite/contr/accept.ll @@ -4,7 +4,7 @@ ; 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-pc-linux-gnu" +target triple = "x86_64-unknown-linux-gnu" %"$TyDescrTy_PrimTyp_5" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/testsuite/contr/accounting_tests.dbg.ll b/testsuite/contr/accounting_tests.dbg.ll index ed2993d2..7ba2a1b2 100644 --- a/testsuite/contr/accounting_tests.dbg.ll +++ b/testsuite/contr/accounting_tests.dbg.ll @@ -4,7 +4,7 @@ ; 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-pc-linux-gnu" +target triple = "x86_64-unknown-linux-gnu" %"$TyDescrTy_PrimTyp_82" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } @@ -29,9 +29,9 @@ target triple = "x86_64-pc-linux-gnu" %CName_True = type <{ i8 }> %CName_False = type <{ i8 }> %Uint32 = type { i32 } -%"$ParamDescr_4265" = type { %ParamDescrString, %_TyDescrTy_Typ* } +%"$ParamDescr_4359" = type { %ParamDescrString, %_TyDescrTy_Typ* } %ParamDescrString = type { i8*, i32 } -%"$TransDescr_4266" = type { %ParamDescrString, i32, %"$ParamDescr_4265"* } +%"$TransDescr_4360" = type { %ParamDescrString, i32, %"$ParamDescr_4359"* } %"$$fundef_72_env_176" = type { { { %TName_Bool* (i8*, %String)*, i8* } (i8*, %String)*, i8* }, %TName_List_String*, %String, %TName_List_String* } %"$$fundef_70_env_177" = type { { { %TName_Bool* (i8*, %String)*, i8* } (i8*, %String)*, i8* }, %TName_List_String*, %TName_List_String* } %"$$fundef_68_env_178" = type { { { %TName_Bool* (i8*, %String)*, i8* } (i8*, %String)*, i8* }, %TName_List_String* } @@ -147,1296 +147,1343 @@ target triple = "x86_64-pc-linux-gnu" @_cparam__this_address = global [20 x i8] zeroinitializer @_cparam__creation_block = global i8* null @_cparam_support_contract = global [20 x i8] zeroinitializer -@"$stringlit_741" = unnamed_addr constant [5 x i8] c"Hello" -@"$test_string_1_743" = unnamed_addr constant [14 x i8] c"test_string_1\00" -@"$stringlit_752" = unnamed_addr constant [5 x i8] c"World" -@"$test_string_2_754" = unnamed_addr constant [14 x i8] c"test_string_2\00" -@"$outgoing_amount_764" = unnamed_addr constant [16 x i8] c"outgoing_amount\00" -@"$max_outgoing_msgs_774" = unnamed_addr constant [18 x i8] c"max_outgoing_msgs\00" -@"$stringlit_792" = unnamed_addr constant [10 x i8] c"_recipient" -@"$stringlit_800" = unnamed_addr constant [4 x i8] c"_tag" -@"$stringlit_805" = unnamed_addr constant [5 x i8] c"Reset" -@"$stringlit_808" = unnamed_addr constant [7 x i8] c"_amount" -@"$stored_strings_858" = unnamed_addr constant [15 x i8] c"stored_strings\00" -@"$stringlit_916" = unnamed_addr constant [10 x i8] c"_exception" -@"$stringlit_921" = unnamed_addr constant [26 x i8] c"Support contract not reset" -@"$outgoing_amount_935" = unnamed_addr constant [16 x i8] c"outgoing_amount\00" -@"$max_outgoing_msgs_950" = unnamed_addr constant [18 x i8] c"max_outgoing_msgs\00" -@"$_balance_979" = unnamed_addr constant [9 x i8] c"_balance\00" -@"$stringlit_1035" = unnamed_addr constant [10 x i8] c"_exception" -@"$stringlit_1040" = unnamed_addr constant [30 x i8] c"Insufficient balance for tests" -@"$outgoing_amount_1057" = unnamed_addr constant [16 x i8] c"outgoing_amount\00" -@"$stringlit_1083" = unnamed_addr constant [10 x i8] c"_recipient" -@"$stringlit_1091" = unnamed_addr constant [4 x i8] c"_tag" -@"$stringlit_1096" = unnamed_addr constant [9 x i8] c"NonAccept" -@"$stringlit_1099" = unnamed_addr constant [7 x i8] c"_amount" -@"$test_string_1_1151" = unnamed_addr constant [14 x i8] c"test_string_1\00" -@"$stringlit_1177" = unnamed_addr constant [10 x i8] c"_recipient" -@"$stringlit_1185" = unnamed_addr constant [4 x i8] c"_tag" -@"$stringlit_1190" = unnamed_addr constant [11 x i8] c"StoreString" -@"$stringlit_1193" = unnamed_addr constant [7 x i8] c"_amount" -@"$stringlit_1200" = unnamed_addr constant [1 x i8] c"s" -@"$test_string_2_1235" = unnamed_addr constant [14 x i8] c"test_string_2\00" -@"$stringlit_1261" = unnamed_addr constant [10 x i8] c"_recipient" -@"$stringlit_1269" = unnamed_addr constant [4 x i8] c"_tag" -@"$stringlit_1274" = unnamed_addr constant [11 x i8] c"StoreString" -@"$stringlit_1277" = unnamed_addr constant [7 x i8] c"_amount" -@"$stringlit_1284" = unnamed_addr constant [1 x i8] c"s" -@"$stringlit_1330" = unnamed_addr constant [10 x i8] c"_recipient" -@"$stringlit_1338" = unnamed_addr constant [4 x i8] c"_tag" -@"$stringlit_1343" = unnamed_addr constant [20 x i8] c"Finalize_Test_Send_1" -@"$stringlit_1346" = unnamed_addr constant [7 x i8] c"_amount" -@"$test_string_1_1390" = unnamed_addr constant [14 x i8] c"test_string_1\00" -@"$test_string_2_1405" = unnamed_addr constant [14 x i8] c"test_string_2\00" -@"$stored_strings_1467" = unnamed_addr constant [15 x i8] c"stored_strings\00" -@"$stringlit_1528" = unnamed_addr constant [10 x i8] c"_exception" -@"$stringlit_1533" = unnamed_addr constant [16 x i8] c"Test_Send failed" -@"$stringlit_1536" = unnamed_addr constant [7 x i8] c"test_no" -@"$stringlit_1543" = unnamed_addr constant [8 x i8] c"expected" -@"$stringlit_1551" = unnamed_addr constant [6 x i8] c"actual" -@"$test_string_1_1608" = unnamed_addr constant [14 x i8] c"test_string_1\00" -@"$stringlit_1634" = unnamed_addr constant [10 x i8] c"_recipient" -@"$stringlit_1642" = unnamed_addr constant [4 x i8] c"_tag" -@"$stringlit_1647" = unnamed_addr constant [11 x i8] c"StoreString" -@"$stringlit_1650" = unnamed_addr constant [7 x i8] c"_amount" -@"$stringlit_1657" = unnamed_addr constant [1 x i8] c"s" -@"$test_string_2_1666" = unnamed_addr constant [14 x i8] c"test_string_2\00" -@"$stringlit_1692" = unnamed_addr constant [10 x i8] c"_recipient" -@"$stringlit_1700" = unnamed_addr constant [4 x i8] c"_tag" -@"$stringlit_1705" = unnamed_addr constant [11 x i8] c"StoreString" -@"$stringlit_1708" = unnamed_addr constant [7 x i8] c"_amount" -@"$stringlit_1715" = unnamed_addr constant [1 x i8] c"s" -@"$stringlit_1778" = unnamed_addr constant [10 x i8] c"_recipient" -@"$stringlit_1786" = unnamed_addr constant [4 x i8] c"_tag" -@"$stringlit_1791" = unnamed_addr constant [20 x i8] c"Finalize_Test_Send_2" -@"$stringlit_1794" = unnamed_addr constant [7 x i8] c"_amount" -@"$test_string_1_1873" = unnamed_addr constant [14 x i8] c"test_string_1\00" -@"$stringlit_1899" = unnamed_addr constant [10 x i8] c"_recipient" -@"$stringlit_1907" = unnamed_addr constant [4 x i8] c"_tag" -@"$stringlit_1912" = unnamed_addr constant [18 x i8] c"Test_Send_3_Helper" -@"$stringlit_1915" = unnamed_addr constant [7 x i8] c"_amount" -@"$test_string_2_1949" = unnamed_addr constant [14 x i8] c"test_string_2\00" -@"$stringlit_1975" = unnamed_addr constant [10 x i8] c"_recipient" -@"$stringlit_1983" = unnamed_addr constant [4 x i8] c"_tag" -@"$stringlit_1988" = unnamed_addr constant [11 x i8] c"StoreString" -@"$stringlit_1991" = unnamed_addr constant [7 x i8] c"_amount" -@"$stringlit_1998" = unnamed_addr constant [1 x i8] c"s" -@"$stringlit_2044" = unnamed_addr constant [10 x i8] c"_recipient" -@"$stringlit_2052" = unnamed_addr constant [4 x i8] c"_tag" -@"$stringlit_2057" = unnamed_addr constant [20 x i8] c"Finalize_Test_Send_3" -@"$stringlit_2060" = unnamed_addr constant [7 x i8] c"_amount" -@"$test_string_1_2104" = unnamed_addr constant [14 x i8] c"test_string_1\00" -@"$stringlit_2130" = unnamed_addr constant [10 x i8] c"_recipient" -@"$stringlit_2138" = unnamed_addr constant [4 x i8] c"_tag" -@"$stringlit_2143" = unnamed_addr constant [11 x i8] c"StoreString" -@"$stringlit_2146" = unnamed_addr constant [7 x i8] c"_amount" -@"$stringlit_2153" = unnamed_addr constant [1 x i8] c"s" -@"$_balance_2226" = unnamed_addr constant [9 x i8] c"_balance\00" -@"$stringlit_2281" = unnamed_addr constant [10 x i8] c"_exception" -@"$stringlit_2286" = unnamed_addr constant [18 x i8] c"Unexpected balance" -@"$stringlit_2289" = unnamed_addr constant [8 x i8] c"expected" -@"$stringlit_2296" = unnamed_addr constant [6 x i8] c"actual" -@"$_balance_2337" = unnamed_addr constant [9 x i8] c"_balance\00" -@"$stringlit_2394" = unnamed_addr constant [10 x i8] c"_exception" -@"$stringlit_2399" = unnamed_addr constant [54 x i8] c"Main contract read unexpected support contract balance" -@"$stringlit_2402" = unnamed_addr constant [8 x i8] c"expected" -@"$stringlit_2409" = unnamed_addr constant [6 x i8] c"actual" -@"$outgoing_amount_2457" = unnamed_addr constant [16 x i8] c"outgoing_amount\00" -@"$_balance_2472" = unnamed_addr constant [9 x i8] c"_balance\00" -@"$stringlit_2498" = unnamed_addr constant [10 x i8] c"_recipient" -@"$stringlit_2506" = unnamed_addr constant [4 x i8] c"_tag" -@"$stringlit_2511" = unnamed_addr constant [6 x i8] c"Accept" -@"$stringlit_2514" = unnamed_addr constant [7 x i8] c"_amount" -@"$stringlit_2582" = unnamed_addr constant [10 x i8] c"_recipient" -@"$stringlit_2590" = unnamed_addr constant [4 x i8] c"_tag" -@"$stringlit_2595" = unnamed_addr constant [9 x i8] c"NonAccept" -@"$stringlit_2598" = unnamed_addr constant [7 x i8] c"_amount" -@"$outgoing_amount_2672" = unnamed_addr constant [16 x i8] c"outgoing_amount\00" -@"$_balance_2687" = unnamed_addr constant [9 x i8] c"_balance\00" -@"$stringlit_2713" = unnamed_addr constant [10 x i8] c"_recipient" -@"$stringlit_2721" = unnamed_addr constant [4 x i8] c"_tag" -@"$stringlit_2726" = unnamed_addr constant [6 x i8] c"Accept" -@"$stringlit_2729" = unnamed_addr constant [7 x i8] c"_amount" -@"$stringlit_2749" = unnamed_addr constant [10 x i8] c"_recipient" -@"$stringlit_2757" = unnamed_addr constant [4 x i8] c"_tag" -@"$stringlit_2762" = unnamed_addr constant [9 x i8] c"NonAccept" -@"$stringlit_2765" = unnamed_addr constant [7 x i8] c"_amount" -@"$outgoing_amount_2870" = unnamed_addr constant [16 x i8] c"outgoing_amount\00" -@"$_balance_2885" = unnamed_addr constant [9 x i8] c"_balance\00" -@"$stringlit_2911" = unnamed_addr constant [10 x i8] c"_recipient" -@"$stringlit_2919" = unnamed_addr constant [4 x i8] c"_tag" -@"$stringlit_2924" = unnamed_addr constant [6 x i8] c"Accept" -@"$stringlit_2927" = unnamed_addr constant [7 x i8] c"_amount" -@"$stringlit_2987" = unnamed_addr constant [10 x i8] c"_recipient" -@"$stringlit_2995" = unnamed_addr constant [4 x i8] c"_tag" -@"$stringlit_3000" = unnamed_addr constant [18 x i8] c"CheckSenderBalance" -@"$stringlit_3003" = unnamed_addr constant [7 x i8] c"_amount" -@"$stringlit_3010" = unnamed_addr constant [16 x i8] c"expected_balance" -@"$outgoing_amount_3062" = unnamed_addr constant [16 x i8] c"outgoing_amount\00" -@"$_balance_3077" = unnamed_addr constant [9 x i8] c"_balance\00" -@"$stringlit_3103" = unnamed_addr constant [10 x i8] c"_recipient" -@"$stringlit_3111" = unnamed_addr constant [4 x i8] c"_tag" -@"$stringlit_3116" = unnamed_addr constant [9 x i8] c"NonAccept" -@"$stringlit_3119" = unnamed_addr constant [7 x i8] c"_amount" -@"$stringlit_3165" = unnamed_addr constant [10 x i8] c"_recipient" -@"$stringlit_3173" = unnamed_addr constant [4 x i8] c"_tag" -@"$stringlit_3178" = unnamed_addr constant [18 x i8] c"CheckSenderBalance" -@"$stringlit_3181" = unnamed_addr constant [7 x i8] c"_amount" -@"$stringlit_3188" = unnamed_addr constant [16 x i8] c"expected_balance" -@"$outgoing_amount_3240" = unnamed_addr constant [16 x i8] c"outgoing_amount\00" -@"$stringlit_3266" = unnamed_addr constant [10 x i8] c"_recipient" -@"$stringlit_3274" = unnamed_addr constant [4 x i8] c"_tag" -@"$stringlit_3279" = unnamed_addr constant [21 x i8] c"AcceptAndCheckBalance" -@"$stringlit_3282" = unnamed_addr constant [7 x i8] c"_amount" -@"$_balance_3317" = unnamed_addr constant [9 x i8] c"_balance\00" -@"$stringlit_3359" = unnamed_addr constant [10 x i8] c"_recipient" -@"$stringlit_3367" = unnamed_addr constant [4 x i8] c"_tag" -@"$stringlit_3372" = unnamed_addr constant [21 x i8] c"CheckRecipientBalance" -@"$stringlit_3375" = unnamed_addr constant [7 x i8] c"_amount" -@"$stringlit_3382" = unnamed_addr constant [16 x i8] c"expected_balance" -@"$outgoing_amount_3434" = unnamed_addr constant [16 x i8] c"outgoing_amount\00" -@"$stringlit_3460" = unnamed_addr constant [10 x i8] c"_recipient" -@"$stringlit_3468" = unnamed_addr constant [4 x i8] c"_tag" -@"$stringlit_3473" = unnamed_addr constant [9 x i8] c"NonAccept" -@"$stringlit_3476" = unnamed_addr constant [7 x i8] c"_amount" -@"$_balance_3511" = unnamed_addr constant [9 x i8] c"_balance\00" -@"$stringlit_3539" = unnamed_addr constant [10 x i8] c"_recipient" -@"$stringlit_3547" = unnamed_addr constant [4 x i8] c"_tag" -@"$stringlit_3552" = unnamed_addr constant [21 x i8] c"CheckRecipientBalance" -@"$stringlit_3555" = unnamed_addr constant [7 x i8] c"_amount" -@"$stringlit_3562" = unnamed_addr constant [16 x i8] c"expected_balance" -@"$outgoing_amount_3614" = unnamed_addr constant [16 x i8] c"outgoing_amount\00" -@"$stringlit_3640" = unnamed_addr constant [10 x i8] c"_recipient" -@"$stringlit_3648" = unnamed_addr constant [4 x i8] c"_tag" -@"$stringlit_3653" = unnamed_addr constant [27 x i8] c"AcceptAndCheckSenderBalance" -@"$stringlit_3656" = unnamed_addr constant [7 x i8] c"_amount" -@"$outgoing_amount_3708" = unnamed_addr constant [16 x i8] c"outgoing_amount\00" -@"$stringlit_3734" = unnamed_addr constant [10 x i8] c"_recipient" -@"$stringlit_3742" = unnamed_addr constant [4 x i8] c"_tag" -@"$stringlit_3747" = unnamed_addr constant [26 x i8] c"AcceptTwiceAndCheckBalance" -@"$stringlit_3750" = unnamed_addr constant [7 x i8] c"_amount" -@"$outgoing_amount_3795" = unnamed_addr constant [16 x i8] c"outgoing_amount\00" -@"$_balance_3810" = unnamed_addr constant [9 x i8] c"_balance\00" -@"$stringlit_3836" = unnamed_addr constant [10 x i8] c"_recipient" -@"$stringlit_3844" = unnamed_addr constant [4 x i8] c"_tag" -@"$stringlit_3849" = unnamed_addr constant [26 x i8] c"AcceptTwiceAndCheckBalance" -@"$stringlit_3852" = unnamed_addr constant [7 x i8] c"_amount" -@"$stringlit_3912" = unnamed_addr constant [10 x i8] c"_recipient" -@"$stringlit_3920" = unnamed_addr constant [4 x i8] c"_tag" -@"$stringlit_3925" = unnamed_addr constant [18 x i8] c"CheckSenderBalance" -@"$stringlit_3928" = unnamed_addr constant [7 x i8] c"_amount" -@"$stringlit_3935" = unnamed_addr constant [16 x i8] c"expected_balance" -@"$outgoing_amount_3987" = unnamed_addr constant [16 x i8] c"outgoing_amount\00" -@"$stringlit_4013" = unnamed_addr constant [10 x i8] c"_recipient" -@"$stringlit_4021" = unnamed_addr constant [4 x i8] c"_tag" -@"$stringlit_4026" = unnamed_addr constant [26 x i8] c"AcceptTwiceAndCheckBalance" -@"$stringlit_4029" = unnamed_addr constant [7 x i8] c"_amount" -@"$_balance_4064" = unnamed_addr constant [9 x i8] c"_balance\00" -@"$stringlit_4106" = unnamed_addr constant [10 x i8] c"_recipient" -@"$stringlit_4114" = unnamed_addr constant [4 x i8] c"_tag" -@"$stringlit_4119" = unnamed_addr constant [21 x i8] c"CheckRecipientBalance" -@"$stringlit_4122" = unnamed_addr constant [7 x i8] c"_amount" -@"$stringlit_4129" = unnamed_addr constant [16 x i8] c"expected_balance" -@"$_balance_4181" = unnamed_addr constant [9 x i8] c"_balance\00" -@"$stringlit_4207" = unnamed_addr constant [10 x i8] c"_recipient" -@"$stringlit_4215" = unnamed_addr constant [4 x i8] c"_tag" -@"$stringlit_4220" = unnamed_addr constant [6 x i8] c"Accept" -@"$stringlit_4223" = unnamed_addr constant [7 x i8] c"_amount" +@"$stringlit_752" = unnamed_addr constant [5 x i8] c"Hello" +@"$test_string_1_754" = unnamed_addr constant [14 x i8] c"test_string_1\00" +@"$stringlit_763" = unnamed_addr constant [5 x i8] c"World" +@"$test_string_2_765" = unnamed_addr constant [14 x i8] c"test_string_2\00" +@"$outgoing_amount_775" = unnamed_addr constant [16 x i8] c"outgoing_amount\00" +@"$max_outgoing_msgs_785" = unnamed_addr constant [18 x i8] c"max_outgoing_msgs\00" +@"$stringlit_803" = unnamed_addr constant [10 x i8] c"_recipient" +@"$stringlit_811" = unnamed_addr constant [4 x i8] c"_tag" +@"$stringlit_816" = unnamed_addr constant [5 x i8] c"Reset" +@"$stringlit_819" = unnamed_addr constant [7 x i8] c"_amount" +@"$stored_strings_872" = unnamed_addr constant [15 x i8] c"stored_strings\00" +@"$stringlit_930" = unnamed_addr constant [10 x i8] c"_exception" +@"$stringlit_935" = unnamed_addr constant [26 x i8] c"Support contract not reset" +@"$outgoing_amount_949" = unnamed_addr constant [16 x i8] c"outgoing_amount\00" +@"$max_outgoing_msgs_964" = unnamed_addr constant [18 x i8] c"max_outgoing_msgs\00" +@"$_balance_993" = unnamed_addr constant [9 x i8] c"_balance\00" +@"$stringlit_1049" = unnamed_addr constant [10 x i8] c"_exception" +@"$stringlit_1054" = unnamed_addr constant [30 x i8] c"Insufficient balance for tests" +@"$outgoing_amount_1074" = unnamed_addr constant [16 x i8] c"outgoing_amount\00" +@"$stringlit_1100" = unnamed_addr constant [10 x i8] c"_recipient" +@"$stringlit_1108" = unnamed_addr constant [4 x i8] c"_tag" +@"$stringlit_1113" = unnamed_addr constant [9 x i8] c"NonAccept" +@"$stringlit_1116" = unnamed_addr constant [7 x i8] c"_amount" +@"$test_string_1_1171" = unnamed_addr constant [14 x i8] c"test_string_1\00" +@"$stringlit_1197" = unnamed_addr constant [10 x i8] c"_recipient" +@"$stringlit_1205" = unnamed_addr constant [4 x i8] c"_tag" +@"$stringlit_1210" = unnamed_addr constant [11 x i8] c"StoreString" +@"$stringlit_1213" = unnamed_addr constant [7 x i8] c"_amount" +@"$stringlit_1220" = unnamed_addr constant [1 x i8] c"s" +@"$test_string_2_1255" = unnamed_addr constant [14 x i8] c"test_string_2\00" +@"$stringlit_1281" = unnamed_addr constant [10 x i8] c"_recipient" +@"$stringlit_1289" = unnamed_addr constant [4 x i8] c"_tag" +@"$stringlit_1294" = unnamed_addr constant [11 x i8] c"StoreString" +@"$stringlit_1297" = unnamed_addr constant [7 x i8] c"_amount" +@"$stringlit_1304" = unnamed_addr constant [1 x i8] c"s" +@"$stringlit_1350" = unnamed_addr constant [10 x i8] c"_recipient" +@"$stringlit_1358" = unnamed_addr constant [4 x i8] c"_tag" +@"$stringlit_1363" = unnamed_addr constant [20 x i8] c"Finalize_Test_Send_1" +@"$stringlit_1366" = unnamed_addr constant [7 x i8] c"_amount" +@"$test_string_1_1413" = unnamed_addr constant [14 x i8] c"test_string_1\00" +@"$test_string_2_1428" = unnamed_addr constant [14 x i8] c"test_string_2\00" +@"$stored_strings_1490" = unnamed_addr constant [15 x i8] c"stored_strings\00" +@"$stringlit_1551" = unnamed_addr constant [10 x i8] c"_exception" +@"$stringlit_1556" = unnamed_addr constant [16 x i8] c"Test_Send failed" +@"$stringlit_1559" = unnamed_addr constant [7 x i8] c"test_no" +@"$stringlit_1566" = unnamed_addr constant [8 x i8] c"expected" +@"$stringlit_1574" = unnamed_addr constant [6 x i8] c"actual" +@"$test_string_1_1638" = unnamed_addr constant [14 x i8] c"test_string_1\00" +@"$stringlit_1664" = unnamed_addr constant [10 x i8] c"_recipient" +@"$stringlit_1672" = unnamed_addr constant [4 x i8] c"_tag" +@"$stringlit_1677" = unnamed_addr constant [11 x i8] c"StoreString" +@"$stringlit_1680" = unnamed_addr constant [7 x i8] c"_amount" +@"$stringlit_1687" = unnamed_addr constant [1 x i8] c"s" +@"$test_string_2_1696" = unnamed_addr constant [14 x i8] c"test_string_2\00" +@"$stringlit_1722" = unnamed_addr constant [10 x i8] c"_recipient" +@"$stringlit_1730" = unnamed_addr constant [4 x i8] c"_tag" +@"$stringlit_1735" = unnamed_addr constant [11 x i8] c"StoreString" +@"$stringlit_1738" = unnamed_addr constant [7 x i8] c"_amount" +@"$stringlit_1745" = unnamed_addr constant [1 x i8] c"s" +@"$stringlit_1808" = unnamed_addr constant [10 x i8] c"_recipient" +@"$stringlit_1816" = unnamed_addr constant [4 x i8] c"_tag" +@"$stringlit_1821" = unnamed_addr constant [20 x i8] c"Finalize_Test_Send_2" +@"$stringlit_1824" = unnamed_addr constant [7 x i8] c"_amount" +@"$test_string_1_1909" = unnamed_addr constant [14 x i8] c"test_string_1\00" +@"$stringlit_1935" = unnamed_addr constant [10 x i8] c"_recipient" +@"$stringlit_1943" = unnamed_addr constant [4 x i8] c"_tag" +@"$stringlit_1948" = unnamed_addr constant [18 x i8] c"Test_Send_3_Helper" +@"$stringlit_1951" = unnamed_addr constant [7 x i8] c"_amount" +@"$test_string_2_1985" = unnamed_addr constant [14 x i8] c"test_string_2\00" +@"$stringlit_2011" = unnamed_addr constant [10 x i8] c"_recipient" +@"$stringlit_2019" = unnamed_addr constant [4 x i8] c"_tag" +@"$stringlit_2024" = unnamed_addr constant [11 x i8] c"StoreString" +@"$stringlit_2027" = unnamed_addr constant [7 x i8] c"_amount" +@"$stringlit_2034" = unnamed_addr constant [1 x i8] c"s" +@"$stringlit_2080" = unnamed_addr constant [10 x i8] c"_recipient" +@"$stringlit_2088" = unnamed_addr constant [4 x i8] c"_tag" +@"$stringlit_2093" = unnamed_addr constant [20 x i8] c"Finalize_Test_Send_3" +@"$stringlit_2096" = unnamed_addr constant [7 x i8] c"_amount" +@"$test_string_1_2143" = unnamed_addr constant [14 x i8] c"test_string_1\00" +@"$stringlit_2169" = unnamed_addr constant [10 x i8] c"_recipient" +@"$stringlit_2177" = unnamed_addr constant [4 x i8] c"_tag" +@"$stringlit_2182" = unnamed_addr constant [11 x i8] c"StoreString" +@"$stringlit_2185" = unnamed_addr constant [7 x i8] c"_amount" +@"$stringlit_2192" = unnamed_addr constant [1 x i8] c"s" +@"$_balance_2271" = unnamed_addr constant [9 x i8] c"_balance\00" +@"$stringlit_2326" = unnamed_addr constant [10 x i8] c"_exception" +@"$stringlit_2331" = unnamed_addr constant [18 x i8] c"Unexpected balance" +@"$stringlit_2334" = unnamed_addr constant [8 x i8] c"expected" +@"$stringlit_2341" = unnamed_addr constant [6 x i8] c"actual" +@"$_balance_2390" = unnamed_addr constant [9 x i8] c"_balance\00" +@"$stringlit_2447" = unnamed_addr constant [10 x i8] c"_exception" +@"$stringlit_2452" = unnamed_addr constant [54 x i8] c"Main contract read unexpected support contract balance" +@"$stringlit_2455" = unnamed_addr constant [8 x i8] c"expected" +@"$stringlit_2462" = unnamed_addr constant [6 x i8] c"actual" +@"$outgoing_amount_2518" = unnamed_addr constant [16 x i8] c"outgoing_amount\00" +@"$_balance_2533" = unnamed_addr constant [9 x i8] c"_balance\00" +@"$stringlit_2559" = unnamed_addr constant [10 x i8] c"_recipient" +@"$stringlit_2567" = unnamed_addr constant [4 x i8] c"_tag" +@"$stringlit_2572" = unnamed_addr constant [6 x i8] c"Accept" +@"$stringlit_2575" = unnamed_addr constant [7 x i8] c"_amount" +@"$stringlit_2643" = unnamed_addr constant [10 x i8] c"_recipient" +@"$stringlit_2651" = unnamed_addr constant [4 x i8] c"_tag" +@"$stringlit_2656" = unnamed_addr constant [9 x i8] c"NonAccept" +@"$stringlit_2659" = unnamed_addr constant [7 x i8] c"_amount" +@"$outgoing_amount_2736" = unnamed_addr constant [16 x i8] c"outgoing_amount\00" +@"$_balance_2751" = unnamed_addr constant [9 x i8] c"_balance\00" +@"$stringlit_2777" = unnamed_addr constant [10 x i8] c"_recipient" +@"$stringlit_2785" = unnamed_addr constant [4 x i8] c"_tag" +@"$stringlit_2790" = unnamed_addr constant [6 x i8] c"Accept" +@"$stringlit_2793" = unnamed_addr constant [7 x i8] c"_amount" +@"$stringlit_2813" = unnamed_addr constant [10 x i8] c"_recipient" +@"$stringlit_2821" = unnamed_addr constant [4 x i8] c"_tag" +@"$stringlit_2826" = unnamed_addr constant [9 x i8] c"NonAccept" +@"$stringlit_2829" = unnamed_addr constant [7 x i8] c"_amount" +@"$outgoing_amount_2937" = unnamed_addr constant [16 x i8] c"outgoing_amount\00" +@"$_balance_2952" = unnamed_addr constant [9 x i8] c"_balance\00" +@"$stringlit_2978" = unnamed_addr constant [10 x i8] c"_recipient" +@"$stringlit_2986" = unnamed_addr constant [4 x i8] c"_tag" +@"$stringlit_2991" = unnamed_addr constant [6 x i8] c"Accept" +@"$stringlit_2994" = unnamed_addr constant [7 x i8] c"_amount" +@"$stringlit_3054" = unnamed_addr constant [10 x i8] c"_recipient" +@"$stringlit_3062" = unnamed_addr constant [4 x i8] c"_tag" +@"$stringlit_3067" = unnamed_addr constant [18 x i8] c"CheckSenderBalance" +@"$stringlit_3070" = unnamed_addr constant [7 x i8] c"_amount" +@"$stringlit_3077" = unnamed_addr constant [16 x i8] c"expected_balance" +@"$outgoing_amount_3132" = unnamed_addr constant [16 x i8] c"outgoing_amount\00" +@"$_balance_3147" = unnamed_addr constant [9 x i8] c"_balance\00" +@"$stringlit_3173" = unnamed_addr constant [10 x i8] c"_recipient" +@"$stringlit_3181" = unnamed_addr constant [4 x i8] c"_tag" +@"$stringlit_3186" = unnamed_addr constant [9 x i8] c"NonAccept" +@"$stringlit_3189" = unnamed_addr constant [7 x i8] c"_amount" +@"$stringlit_3235" = unnamed_addr constant [10 x i8] c"_recipient" +@"$stringlit_3243" = unnamed_addr constant [4 x i8] c"_tag" +@"$stringlit_3248" = unnamed_addr constant [18 x i8] c"CheckSenderBalance" +@"$stringlit_3251" = unnamed_addr constant [7 x i8] c"_amount" +@"$stringlit_3258" = unnamed_addr constant [16 x i8] c"expected_balance" +@"$outgoing_amount_3313" = unnamed_addr constant [16 x i8] c"outgoing_amount\00" +@"$stringlit_3339" = unnamed_addr constant [10 x i8] c"_recipient" +@"$stringlit_3347" = unnamed_addr constant [4 x i8] c"_tag" +@"$stringlit_3352" = unnamed_addr constant [21 x i8] c"AcceptAndCheckBalance" +@"$stringlit_3355" = unnamed_addr constant [7 x i8] c"_amount" +@"$_balance_3390" = unnamed_addr constant [9 x i8] c"_balance\00" +@"$stringlit_3432" = unnamed_addr constant [10 x i8] c"_recipient" +@"$stringlit_3440" = unnamed_addr constant [4 x i8] c"_tag" +@"$stringlit_3445" = unnamed_addr constant [21 x i8] c"CheckRecipientBalance" +@"$stringlit_3448" = unnamed_addr constant [7 x i8] c"_amount" +@"$stringlit_3455" = unnamed_addr constant [16 x i8] c"expected_balance" +@"$outgoing_amount_3510" = unnamed_addr constant [16 x i8] c"outgoing_amount\00" +@"$stringlit_3536" = unnamed_addr constant [10 x i8] c"_recipient" +@"$stringlit_3544" = unnamed_addr constant [4 x i8] c"_tag" +@"$stringlit_3549" = unnamed_addr constant [9 x i8] c"NonAccept" +@"$stringlit_3552" = unnamed_addr constant [7 x i8] c"_amount" +@"$_balance_3587" = unnamed_addr constant [9 x i8] c"_balance\00" +@"$stringlit_3615" = unnamed_addr constant [10 x i8] c"_recipient" +@"$stringlit_3623" = unnamed_addr constant [4 x i8] c"_tag" +@"$stringlit_3628" = unnamed_addr constant [21 x i8] c"CheckRecipientBalance" +@"$stringlit_3631" = unnamed_addr constant [7 x i8] c"_amount" +@"$stringlit_3638" = unnamed_addr constant [16 x i8] c"expected_balance" +@"$outgoing_amount_3693" = unnamed_addr constant [16 x i8] c"outgoing_amount\00" +@"$stringlit_3719" = unnamed_addr constant [10 x i8] c"_recipient" +@"$stringlit_3727" = unnamed_addr constant [4 x i8] c"_tag" +@"$stringlit_3732" = unnamed_addr constant [27 x i8] c"AcceptAndCheckSenderBalance" +@"$stringlit_3735" = unnamed_addr constant [7 x i8] c"_amount" +@"$outgoing_amount_3790" = unnamed_addr constant [16 x i8] c"outgoing_amount\00" +@"$stringlit_3816" = unnamed_addr constant [10 x i8] c"_recipient" +@"$stringlit_3824" = unnamed_addr constant [4 x i8] c"_tag" +@"$stringlit_3829" = unnamed_addr constant [26 x i8] c"AcceptTwiceAndCheckBalance" +@"$stringlit_3832" = unnamed_addr constant [7 x i8] c"_amount" +@"$outgoing_amount_3880" = unnamed_addr constant [16 x i8] c"outgoing_amount\00" +@"$_balance_3895" = unnamed_addr constant [9 x i8] c"_balance\00" +@"$stringlit_3921" = unnamed_addr constant [10 x i8] c"_recipient" +@"$stringlit_3929" = unnamed_addr constant [4 x i8] c"_tag" +@"$stringlit_3934" = unnamed_addr constant [26 x i8] c"AcceptTwiceAndCheckBalance" +@"$stringlit_3937" = unnamed_addr constant [7 x i8] c"_amount" +@"$stringlit_3997" = unnamed_addr constant [10 x i8] c"_recipient" +@"$stringlit_4005" = unnamed_addr constant [4 x i8] c"_tag" +@"$stringlit_4010" = unnamed_addr constant [18 x i8] c"CheckSenderBalance" +@"$stringlit_4013" = unnamed_addr constant [7 x i8] c"_amount" +@"$stringlit_4020" = unnamed_addr constant [16 x i8] c"expected_balance" +@"$outgoing_amount_4075" = unnamed_addr constant [16 x i8] c"outgoing_amount\00" +@"$stringlit_4101" = unnamed_addr constant [10 x i8] c"_recipient" +@"$stringlit_4109" = unnamed_addr constant [4 x i8] c"_tag" +@"$stringlit_4114" = unnamed_addr constant [26 x i8] c"AcceptTwiceAndCheckBalance" +@"$stringlit_4117" = unnamed_addr constant [7 x i8] c"_amount" +@"$_balance_4152" = unnamed_addr constant [9 x i8] c"_balance\00" +@"$stringlit_4194" = unnamed_addr constant [10 x i8] c"_recipient" +@"$stringlit_4202" = unnamed_addr constant [4 x i8] c"_tag" +@"$stringlit_4207" = unnamed_addr constant [21 x i8] c"CheckRecipientBalance" +@"$stringlit_4210" = unnamed_addr constant [7 x i8] c"_amount" +@"$stringlit_4217" = unnamed_addr constant [16 x i8] c"expected_balance" +@"$_balance_4272" = unnamed_addr constant [9 x i8] c"_balance\00" +@"$stringlit_4298" = unnamed_addr constant [10 x i8] c"_recipient" +@"$stringlit_4306" = unnamed_addr constant [4 x i8] c"_tag" +@"$stringlit_4311" = unnamed_addr constant [6 x i8] c"Accept" +@"$stringlit_4314" = unnamed_addr constant [7 x i8] c"_amount" @_tydescr_table = constant [22 x %_TyDescrTy_Typ*] [%_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_120", %_TyDescrTy_Typ* @"$TyDescr_Event_106", %_TyDescrTy_Typ* @"$TyDescr_Int64_88", %_TyDescrTy_Typ* @"$TyDescr_Addr_125", %_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_118", %_TyDescrTy_Typ* @"$TyDescr_Bystr20_114", %_TyDescrTy_Typ* @"$TyDescr_Uint256_98", %_TyDescrTy_Typ* @"$TyDescr_Uint32_86", %_TyDescrTy_Typ* @"$TyDescr_Uint64_90", %_TyDescrTy_Typ* @"$TyDescr_Bnum_102", %_TyDescrTy_Typ* @"$TyDescr_Uint128_94", %_TyDescrTy_Typ* @"$TyDescr_Addr_126", %_TyDescrTy_Typ* @"$TyDescr_Exception_108", %_TyDescrTy_Typ* @"$TyDescr_String_100", %_TyDescrTy_Typ* @"$TyDescr_ADT_List_String_119", %_TyDescrTy_Typ* @"$TyDescr_ADT_Option_String_121", %_TyDescrTy_Typ* @"$TyDescr_Int256_96", %_TyDescrTy_Typ* @"$TyDescr_Int128_92", %_TyDescrTy_Typ* @"$TyDescr_Bystr_112", %_TyDescrTy_Typ* @"$TyDescr_ReplicateContr_110", %_TyDescrTy_Typ* @"$TyDescr_Message_104", %_TyDescrTy_Typ* @"$TyDescr_Int32_84"] @_tydescr_table_length = constant i32 22 -@"$pname__scilla_version_4267" = unnamed_addr constant [15 x i8] c"_scilla_version" -@"$pname__this_address_4268" = unnamed_addr constant [13 x i8] c"_this_address" -@"$pname__creation_block_4269" = unnamed_addr constant [15 x i8] c"_creation_block" -@"$pname_support_contract_4270" = unnamed_addr constant [16 x i8] c"support_contract" -@_contract_parameters = constant [4 x %"$ParamDescr_4265"] [%"$ParamDescr_4265" { %ParamDescrString { i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$pname__scilla_version_4267", i32 0, i32 0), i32 15 }, %_TyDescrTy_Typ* @"$TyDescr_Uint32_86" }, %"$ParamDescr_4265" { %ParamDescrString { i8* getelementptr inbounds ([13 x i8], [13 x i8]* @"$pname__this_address_4268", i32 0, i32 0), i32 13 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr20_114" }, %"$ParamDescr_4265" { %ParamDescrString { i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$pname__creation_block_4269", i32 0, i32 0), i32 15 }, %_TyDescrTy_Typ* @"$TyDescr_Bnum_102" }, %"$ParamDescr_4265" { %ParamDescrString { i8* getelementptr inbounds ([16 x i8], [16 x i8]* @"$pname_support_contract_4270", i32 0, i32 0), i32 16 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_126" }] +@"$pname__scilla_version_4361" = unnamed_addr constant [15 x i8] c"_scilla_version" +@"$pname__this_address_4362" = unnamed_addr constant [13 x i8] c"_this_address" +@"$pname__creation_block_4363" = unnamed_addr constant [15 x i8] c"_creation_block" +@"$pname_support_contract_4364" = unnamed_addr constant [16 x i8] c"support_contract" +@_contract_parameters = constant [4 x %"$ParamDescr_4359"] [%"$ParamDescr_4359" { %ParamDescrString { i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$pname__scilla_version_4361", i32 0, i32 0), i32 15 }, %_TyDescrTy_Typ* @"$TyDescr_Uint32_86" }, %"$ParamDescr_4359" { %ParamDescrString { i8* getelementptr inbounds ([13 x i8], [13 x i8]* @"$pname__this_address_4362", i32 0, i32 0), i32 13 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr20_114" }, %"$ParamDescr_4359" { %ParamDescrString { i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$pname__creation_block_4363", i32 0, i32 0), i32 15 }, %_TyDescrTy_Typ* @"$TyDescr_Bnum_102" }, %"$ParamDescr_4359" { %ParamDescrString { i8* getelementptr inbounds ([16 x i8], [16 x i8]* @"$pname_support_contract_4364", i32 0, i32 0), i32 16 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_126" }] @_contract_parameters_length = constant i32 4 -@"$tpname__amount_4271" = unnamed_addr constant [7 x i8] c"_amount" -@"$tpname__origin_4272" = unnamed_addr constant [7 x i8] c"_origin" -@"$tpname__sender_4273" = unnamed_addr constant [7 x i8] c"_sender" -@"$tparams_Reset_4274" = unnamed_addr constant [3 x %"$ParamDescr_4265"] [%"$ParamDescr_4265" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_4271", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_94" }, %"$ParamDescr_4265" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_4272", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_125" }, %"$ParamDescr_4265" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_4273", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_125" }] -@"$tname_Reset_4275" = unnamed_addr constant [5 x i8] c"Reset" -@"$tpname__amount_4276" = unnamed_addr constant [7 x i8] c"_amount" -@"$tpname__origin_4277" = unnamed_addr constant [7 x i8] c"_origin" -@"$tpname__sender_4278" = unnamed_addr constant [7 x i8] c"_sender" -@"$tparams_Test_Insufficient_Balance_4279" = unnamed_addr constant [3 x %"$ParamDescr_4265"] [%"$ParamDescr_4265" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_4276", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_94" }, %"$ParamDescr_4265" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_4277", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_125" }, %"$ParamDescr_4265" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_4278", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_125" }] -@"$tname_Test_Insufficient_Balance_4280" = unnamed_addr constant [25 x i8] c"Test_Insufficient_Balance" -@"$tpname__amount_4281" = unnamed_addr constant [7 x i8] c"_amount" -@"$tpname__origin_4282" = unnamed_addr constant [7 x i8] c"_origin" -@"$tpname__sender_4283" = unnamed_addr constant [7 x i8] c"_sender" -@"$tparams_Test_Send_1_4284" = unnamed_addr constant [3 x %"$ParamDescr_4265"] [%"$ParamDescr_4265" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_4281", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_94" }, %"$ParamDescr_4265" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_4282", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_125" }, %"$ParamDescr_4265" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_4283", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_125" }] -@"$tname_Test_Send_1_4285" = unnamed_addr constant [11 x i8] c"Test_Send_1" -@"$tpname__amount_4286" = unnamed_addr constant [7 x i8] c"_amount" -@"$tpname__origin_4287" = unnamed_addr constant [7 x i8] c"_origin" -@"$tpname__sender_4288" = unnamed_addr constant [7 x i8] c"_sender" -@"$tparams_Finalize_Test_Send_1_4289" = unnamed_addr constant [3 x %"$ParamDescr_4265"] [%"$ParamDescr_4265" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_4286", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_94" }, %"$ParamDescr_4265" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_4287", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_125" }, %"$ParamDescr_4265" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_4288", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_125" }] -@"$tname_Finalize_Test_Send_1_4290" = unnamed_addr constant [20 x i8] c"Finalize_Test_Send_1" -@"$tpname__amount_4291" = unnamed_addr constant [7 x i8] c"_amount" -@"$tpname__origin_4292" = unnamed_addr constant [7 x i8] c"_origin" -@"$tpname__sender_4293" = unnamed_addr constant [7 x i8] c"_sender" -@"$tparams_Test_Send_2_4294" = unnamed_addr constant [3 x %"$ParamDescr_4265"] [%"$ParamDescr_4265" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_4291", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_94" }, %"$ParamDescr_4265" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_4292", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_125" }, %"$ParamDescr_4265" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_4293", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_125" }] -@"$tname_Test_Send_2_4295" = unnamed_addr constant [11 x i8] c"Test_Send_2" -@"$tpname__amount_4296" = unnamed_addr constant [7 x i8] c"_amount" -@"$tpname__origin_4297" = unnamed_addr constant [7 x i8] c"_origin" -@"$tpname__sender_4298" = unnamed_addr constant [7 x i8] c"_sender" -@"$tparams_Finalize_Test_Send_2_4299" = unnamed_addr constant [3 x %"$ParamDescr_4265"] [%"$ParamDescr_4265" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_4296", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_94" }, %"$ParamDescr_4265" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_4297", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_125" }, %"$ParamDescr_4265" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_4298", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_125" }] -@"$tname_Finalize_Test_Send_2_4300" = unnamed_addr constant [20 x i8] c"Finalize_Test_Send_2" -@"$tpname__amount_4301" = unnamed_addr constant [7 x i8] c"_amount" -@"$tpname__origin_4302" = unnamed_addr constant [7 x i8] c"_origin" -@"$tpname__sender_4303" = unnamed_addr constant [7 x i8] c"_sender" -@"$tparams_Test_Send_3_4304" = unnamed_addr constant [3 x %"$ParamDescr_4265"] [%"$ParamDescr_4265" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_4301", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_94" }, %"$ParamDescr_4265" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_4302", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_125" }, %"$ParamDescr_4265" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_4303", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_125" }] -@"$tname_Test_Send_3_4305" = unnamed_addr constant [11 x i8] c"Test_Send_3" -@"$tpname__amount_4306" = unnamed_addr constant [7 x i8] c"_amount" -@"$tpname__origin_4307" = unnamed_addr constant [7 x i8] c"_origin" -@"$tpname__sender_4308" = unnamed_addr constant [7 x i8] c"_sender" -@"$tparams_Test_Send_3_Helper_4309" = unnamed_addr constant [3 x %"$ParamDescr_4265"] [%"$ParamDescr_4265" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_4306", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_94" }, %"$ParamDescr_4265" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_4307", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_125" }, %"$ParamDescr_4265" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_4308", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_125" }] -@"$tname_Test_Send_3_Helper_4310" = unnamed_addr constant [18 x i8] c"Test_Send_3_Helper" -@"$tpname__amount_4311" = unnamed_addr constant [7 x i8] c"_amount" -@"$tpname__origin_4312" = unnamed_addr constant [7 x i8] c"_origin" -@"$tpname__sender_4313" = unnamed_addr constant [7 x i8] c"_sender" -@"$tparams_Finalize_Test_Send_3_4314" = unnamed_addr constant [3 x %"$ParamDescr_4265"] [%"$ParamDescr_4265" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_4311", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_94" }, %"$ParamDescr_4265" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_4312", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_125" }, %"$ParamDescr_4265" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_4313", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_125" }] -@"$tname_Finalize_Test_Send_3_4315" = unnamed_addr constant [20 x i8] c"Finalize_Test_Send_3" -@"$tpname__amount_4316" = unnamed_addr constant [7 x i8] c"_amount" -@"$tpname__origin_4317" = unnamed_addr constant [7 x i8] c"_origin" -@"$tpname__sender_4318" = unnamed_addr constant [7 x i8] c"_sender" -@"$tpname_expected_balance_4319" = unnamed_addr constant [16 x i8] c"expected_balance" -@"$tparams_CheckSenderBalance_4320" = unnamed_addr constant [4 x %"$ParamDescr_4265"] [%"$ParamDescr_4265" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_4316", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_94" }, %"$ParamDescr_4265" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_4317", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_125" }, %"$ParamDescr_4265" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_4318", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_125" }, %"$ParamDescr_4265" { %ParamDescrString { i8* getelementptr inbounds ([16 x i8], [16 x i8]* @"$tpname_expected_balance_4319", i32 0, i32 0), i32 16 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_94" }] -@"$tname_CheckSenderBalance_4321" = unnamed_addr constant [18 x i8] c"CheckSenderBalance" -@"$tpname__amount_4322" = unnamed_addr constant [7 x i8] c"_amount" -@"$tpname__origin_4323" = unnamed_addr constant [7 x i8] c"_origin" -@"$tpname__sender_4324" = unnamed_addr constant [7 x i8] c"_sender" -@"$tpname_expected_balance_4325" = unnamed_addr constant [16 x i8] c"expected_balance" -@"$tparams_CheckRecipientBalance_4326" = unnamed_addr constant [4 x %"$ParamDescr_4265"] [%"$ParamDescr_4265" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_4322", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_94" }, %"$ParamDescr_4265" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_4323", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_125" }, %"$ParamDescr_4265" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_4324", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_125" }, %"$ParamDescr_4265" { %ParamDescrString { i8* getelementptr inbounds ([16 x i8], [16 x i8]* @"$tpname_expected_balance_4325", i32 0, i32 0), i32 16 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_94" }] -@"$tname_CheckRecipientBalance_4327" = unnamed_addr constant [21 x i8] c"CheckRecipientBalance" -@"$tpname__amount_4328" = unnamed_addr constant [7 x i8] c"_amount" -@"$tpname__origin_4329" = unnamed_addr constant [7 x i8] c"_origin" -@"$tpname__sender_4330" = unnamed_addr constant [7 x i8] c"_sender" -@"$tparams_Test_Send_4_4331" = unnamed_addr constant [3 x %"$ParamDescr_4265"] [%"$ParamDescr_4265" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_4328", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_94" }, %"$ParamDescr_4265" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_4329", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_125" }, %"$ParamDescr_4265" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_4330", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_125" }] -@"$tname_Test_Send_4_4332" = unnamed_addr constant [11 x i8] c"Test_Send_4" -@"$tpname__amount_4333" = unnamed_addr constant [7 x i8] c"_amount" -@"$tpname__origin_4334" = unnamed_addr constant [7 x i8] c"_origin" -@"$tpname__sender_4335" = unnamed_addr constant [7 x i8] c"_sender" -@"$tparams_Test_Send_5_4336" = unnamed_addr constant [3 x %"$ParamDescr_4265"] [%"$ParamDescr_4265" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_4333", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_94" }, %"$ParamDescr_4265" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_4334", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_125" }, %"$ParamDescr_4265" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_4335", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_125" }] -@"$tname_Test_Send_5_4337" = unnamed_addr constant [11 x i8] c"Test_Send_5" -@"$tpname__amount_4338" = unnamed_addr constant [7 x i8] c"_amount" -@"$tpname__origin_4339" = unnamed_addr constant [7 x i8] c"_origin" -@"$tpname__sender_4340" = unnamed_addr constant [7 x i8] c"_sender" -@"$tparams_Test_Send_6_4341" = unnamed_addr constant [3 x %"$ParamDescr_4265"] [%"$ParamDescr_4265" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_4338", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_94" }, %"$ParamDescr_4265" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_4339", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_125" }, %"$ParamDescr_4265" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_4340", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_125" }] -@"$tname_Test_Send_6_4342" = unnamed_addr constant [11 x i8] c"Test_Send_6" -@"$tpname__amount_4343" = unnamed_addr constant [7 x i8] c"_amount" -@"$tpname__origin_4344" = unnamed_addr constant [7 x i8] c"_origin" -@"$tpname__sender_4345" = unnamed_addr constant [7 x i8] c"_sender" -@"$tparams_Test_Send_7_4346" = unnamed_addr constant [3 x %"$ParamDescr_4265"] [%"$ParamDescr_4265" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_4343", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_94" }, %"$ParamDescr_4265" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_4344", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_125" }, %"$ParamDescr_4265" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_4345", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_125" }] -@"$tname_Test_Send_7_4347" = unnamed_addr constant [11 x i8] c"Test_Send_7" -@"$tpname__amount_4348" = unnamed_addr constant [7 x i8] c"_amount" -@"$tpname__origin_4349" = unnamed_addr constant [7 x i8] c"_origin" -@"$tpname__sender_4350" = unnamed_addr constant [7 x i8] c"_sender" -@"$tparams_Test_Send_8_4351" = unnamed_addr constant [3 x %"$ParamDescr_4265"] [%"$ParamDescr_4265" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_4348", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_94" }, %"$ParamDescr_4265" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_4349", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_125" }, %"$ParamDescr_4265" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_4350", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_125" }] -@"$tname_Test_Send_8_4352" = unnamed_addr constant [11 x i8] c"Test_Send_8" -@"$tpname__amount_4353" = unnamed_addr constant [7 x i8] c"_amount" -@"$tpname__origin_4354" = unnamed_addr constant [7 x i8] c"_origin" -@"$tpname__sender_4355" = unnamed_addr constant [7 x i8] c"_sender" -@"$tparams_Test_Send_9_4356" = unnamed_addr constant [3 x %"$ParamDescr_4265"] [%"$ParamDescr_4265" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_4353", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_94" }, %"$ParamDescr_4265" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_4354", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_125" }, %"$ParamDescr_4265" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_4355", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_125" }] -@"$tname_Test_Send_9_4357" = unnamed_addr constant [11 x i8] c"Test_Send_9" -@"$tpname__amount_4358" = unnamed_addr constant [7 x i8] c"_amount" -@"$tpname__origin_4359" = unnamed_addr constant [7 x i8] c"_origin" -@"$tpname__sender_4360" = unnamed_addr constant [7 x i8] c"_sender" -@"$tparams_Test_Send_10_4361" = unnamed_addr constant [3 x %"$ParamDescr_4265"] [%"$ParamDescr_4265" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_4358", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_94" }, %"$ParamDescr_4265" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_4359", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_125" }, %"$ParamDescr_4265" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_4360", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_125" }] -@"$tname_Test_Send_10_4362" = unnamed_addr constant [12 x i8] c"Test_Send_10" -@"$tpname__amount_4363" = unnamed_addr constant [7 x i8] c"_amount" -@"$tpname__origin_4364" = unnamed_addr constant [7 x i8] c"_origin" -@"$tpname__sender_4365" = unnamed_addr constant [7 x i8] c"_sender" -@"$tparams_Test_Send_11_4366" = unnamed_addr constant [3 x %"$ParamDescr_4265"] [%"$ParamDescr_4265" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_4363", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_94" }, %"$ParamDescr_4265" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_4364", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_125" }, %"$ParamDescr_4265" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_4365", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_125" }] -@"$tname_Test_Send_11_4367" = unnamed_addr constant [12 x i8] c"Test_Send_11" -@"$tpname__amount_4368" = unnamed_addr constant [7 x i8] c"_amount" -@"$tpname__origin_4369" = unnamed_addr constant [7 x i8] c"_origin" -@"$tpname__sender_4370" = unnamed_addr constant [7 x i8] c"_sender" -@"$tparams_Test_Send_12_4371" = unnamed_addr constant [3 x %"$ParamDescr_4265"] [%"$ParamDescr_4265" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_4368", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_94" }, %"$ParamDescr_4265" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_4369", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_125" }, %"$ParamDescr_4265" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_4370", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_125" }] -@"$tname_Test_Send_12_4372" = unnamed_addr constant [12 x i8] c"Test_Send_12" -@"$tpname__amount_4373" = unnamed_addr constant [7 x i8] c"_amount" -@"$tpname__origin_4374" = unnamed_addr constant [7 x i8] c"_origin" -@"$tpname__sender_4375" = unnamed_addr constant [7 x i8] c"_sender" -@"$tparams_Test_Send_13_4376" = unnamed_addr constant [3 x %"$ParamDescr_4265"] [%"$ParamDescr_4265" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_4373", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_94" }, %"$ParamDescr_4265" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_4374", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_125" }, %"$ParamDescr_4265" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_4375", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_125" }] -@"$tname_Test_Send_13_4377" = unnamed_addr constant [12 x i8] c"Test_Send_13" -@"$tpname__amount_4378" = unnamed_addr constant [7 x i8] c"_amount" -@"$tpname__origin_4379" = unnamed_addr constant [7 x i8] c"_origin" -@"$tpname__sender_4380" = unnamed_addr constant [7 x i8] c"_sender" -@"$tparams_Test_Send_14_4381" = unnamed_addr constant [3 x %"$ParamDescr_4265"] [%"$ParamDescr_4265" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_4378", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_94" }, %"$ParamDescr_4265" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_4379", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_125" }, %"$ParamDescr_4265" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_4380", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_125" }] -@"$tname_Test_Send_14_4382" = unnamed_addr constant [12 x i8] c"Test_Send_14" -@_transition_parameters = constant [22 x %"$TransDescr_4266"] [%"$TransDescr_4266" { %ParamDescrString { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$tname_Reset_4275", i32 0, i32 0), i32 5 }, i32 3, %"$ParamDescr_4265"* getelementptr inbounds ([3 x %"$ParamDescr_4265"], [3 x %"$ParamDescr_4265"]* @"$tparams_Reset_4274", i32 0, i32 0) }, %"$TransDescr_4266" { %ParamDescrString { i8* getelementptr inbounds ([25 x i8], [25 x i8]* @"$tname_Test_Insufficient_Balance_4280", i32 0, i32 0), i32 25 }, i32 3, %"$ParamDescr_4265"* getelementptr inbounds ([3 x %"$ParamDescr_4265"], [3 x %"$ParamDescr_4265"]* @"$tparams_Test_Insufficient_Balance_4279", i32 0, i32 0) }, %"$TransDescr_4266" { %ParamDescrString { i8* getelementptr inbounds ([11 x i8], [11 x i8]* @"$tname_Test_Send_1_4285", i32 0, i32 0), i32 11 }, i32 3, %"$ParamDescr_4265"* getelementptr inbounds ([3 x %"$ParamDescr_4265"], [3 x %"$ParamDescr_4265"]* @"$tparams_Test_Send_1_4284", i32 0, i32 0) }, %"$TransDescr_4266" { %ParamDescrString { i8* getelementptr inbounds ([20 x i8], [20 x i8]* @"$tname_Finalize_Test_Send_1_4290", i32 0, i32 0), i32 20 }, i32 3, %"$ParamDescr_4265"* getelementptr inbounds ([3 x %"$ParamDescr_4265"], [3 x %"$ParamDescr_4265"]* @"$tparams_Finalize_Test_Send_1_4289", i32 0, i32 0) }, %"$TransDescr_4266" { %ParamDescrString { i8* getelementptr inbounds ([11 x i8], [11 x i8]* @"$tname_Test_Send_2_4295", i32 0, i32 0), i32 11 }, i32 3, %"$ParamDescr_4265"* getelementptr inbounds ([3 x %"$ParamDescr_4265"], [3 x %"$ParamDescr_4265"]* @"$tparams_Test_Send_2_4294", i32 0, i32 0) }, %"$TransDescr_4266" { %ParamDescrString { i8* getelementptr inbounds ([20 x i8], [20 x i8]* @"$tname_Finalize_Test_Send_2_4300", i32 0, i32 0), i32 20 }, i32 3, %"$ParamDescr_4265"* getelementptr inbounds ([3 x %"$ParamDescr_4265"], [3 x %"$ParamDescr_4265"]* @"$tparams_Finalize_Test_Send_2_4299", i32 0, i32 0) }, %"$TransDescr_4266" { %ParamDescrString { i8* getelementptr inbounds ([11 x i8], [11 x i8]* @"$tname_Test_Send_3_4305", i32 0, i32 0), i32 11 }, i32 3, %"$ParamDescr_4265"* getelementptr inbounds ([3 x %"$ParamDescr_4265"], [3 x %"$ParamDescr_4265"]* @"$tparams_Test_Send_3_4304", i32 0, i32 0) }, %"$TransDescr_4266" { %ParamDescrString { i8* getelementptr inbounds ([18 x i8], [18 x i8]* @"$tname_Test_Send_3_Helper_4310", i32 0, i32 0), i32 18 }, i32 3, %"$ParamDescr_4265"* getelementptr inbounds ([3 x %"$ParamDescr_4265"], [3 x %"$ParamDescr_4265"]* @"$tparams_Test_Send_3_Helper_4309", i32 0, i32 0) }, %"$TransDescr_4266" { %ParamDescrString { i8* getelementptr inbounds ([20 x i8], [20 x i8]* @"$tname_Finalize_Test_Send_3_4315", i32 0, i32 0), i32 20 }, i32 3, %"$ParamDescr_4265"* getelementptr inbounds ([3 x %"$ParamDescr_4265"], [3 x %"$ParamDescr_4265"]* @"$tparams_Finalize_Test_Send_3_4314", i32 0, i32 0) }, %"$TransDescr_4266" { %ParamDescrString { i8* getelementptr inbounds ([18 x i8], [18 x i8]* @"$tname_CheckSenderBalance_4321", i32 0, i32 0), i32 18 }, i32 4, %"$ParamDescr_4265"* getelementptr inbounds ([4 x %"$ParamDescr_4265"], [4 x %"$ParamDescr_4265"]* @"$tparams_CheckSenderBalance_4320", i32 0, i32 0) }, %"$TransDescr_4266" { %ParamDescrString { i8* getelementptr inbounds ([21 x i8], [21 x i8]* @"$tname_CheckRecipientBalance_4327", i32 0, i32 0), i32 21 }, i32 4, %"$ParamDescr_4265"* getelementptr inbounds ([4 x %"$ParamDescr_4265"], [4 x %"$ParamDescr_4265"]* @"$tparams_CheckRecipientBalance_4326", i32 0, i32 0) }, %"$TransDescr_4266" { %ParamDescrString { i8* getelementptr inbounds ([11 x i8], [11 x i8]* @"$tname_Test_Send_4_4332", i32 0, i32 0), i32 11 }, i32 3, %"$ParamDescr_4265"* getelementptr inbounds ([3 x %"$ParamDescr_4265"], [3 x %"$ParamDescr_4265"]* @"$tparams_Test_Send_4_4331", i32 0, i32 0) }, %"$TransDescr_4266" { %ParamDescrString { i8* getelementptr inbounds ([11 x i8], [11 x i8]* @"$tname_Test_Send_5_4337", i32 0, i32 0), i32 11 }, i32 3, %"$ParamDescr_4265"* getelementptr inbounds ([3 x %"$ParamDescr_4265"], [3 x %"$ParamDescr_4265"]* @"$tparams_Test_Send_5_4336", i32 0, i32 0) }, %"$TransDescr_4266" { %ParamDescrString { i8* getelementptr inbounds ([11 x i8], [11 x i8]* @"$tname_Test_Send_6_4342", i32 0, i32 0), i32 11 }, i32 3, %"$ParamDescr_4265"* getelementptr inbounds ([3 x %"$ParamDescr_4265"], [3 x %"$ParamDescr_4265"]* @"$tparams_Test_Send_6_4341", i32 0, i32 0) }, %"$TransDescr_4266" { %ParamDescrString { i8* getelementptr inbounds ([11 x i8], [11 x i8]* @"$tname_Test_Send_7_4347", i32 0, i32 0), i32 11 }, i32 3, %"$ParamDescr_4265"* getelementptr inbounds ([3 x %"$ParamDescr_4265"], [3 x %"$ParamDescr_4265"]* @"$tparams_Test_Send_7_4346", i32 0, i32 0) }, %"$TransDescr_4266" { %ParamDescrString { i8* getelementptr inbounds ([11 x i8], [11 x i8]* @"$tname_Test_Send_8_4352", i32 0, i32 0), i32 11 }, i32 3, %"$ParamDescr_4265"* getelementptr inbounds ([3 x %"$ParamDescr_4265"], [3 x %"$ParamDescr_4265"]* @"$tparams_Test_Send_8_4351", i32 0, i32 0) }, %"$TransDescr_4266" { %ParamDescrString { i8* getelementptr inbounds ([11 x i8], [11 x i8]* @"$tname_Test_Send_9_4357", i32 0, i32 0), i32 11 }, i32 3, %"$ParamDescr_4265"* getelementptr inbounds ([3 x %"$ParamDescr_4265"], [3 x %"$ParamDescr_4265"]* @"$tparams_Test_Send_9_4356", i32 0, i32 0) }, %"$TransDescr_4266" { %ParamDescrString { i8* getelementptr inbounds ([12 x i8], [12 x i8]* @"$tname_Test_Send_10_4362", i32 0, i32 0), i32 12 }, i32 3, %"$ParamDescr_4265"* getelementptr inbounds ([3 x %"$ParamDescr_4265"], [3 x %"$ParamDescr_4265"]* @"$tparams_Test_Send_10_4361", i32 0, i32 0) }, %"$TransDescr_4266" { %ParamDescrString { i8* getelementptr inbounds ([12 x i8], [12 x i8]* @"$tname_Test_Send_11_4367", i32 0, i32 0), i32 12 }, i32 3, %"$ParamDescr_4265"* getelementptr inbounds ([3 x %"$ParamDescr_4265"], [3 x %"$ParamDescr_4265"]* @"$tparams_Test_Send_11_4366", i32 0, i32 0) }, %"$TransDescr_4266" { %ParamDescrString { i8* getelementptr inbounds ([12 x i8], [12 x i8]* @"$tname_Test_Send_12_4372", i32 0, i32 0), i32 12 }, i32 3, %"$ParamDescr_4265"* getelementptr inbounds ([3 x %"$ParamDescr_4265"], [3 x %"$ParamDescr_4265"]* @"$tparams_Test_Send_12_4371", i32 0, i32 0) }, %"$TransDescr_4266" { %ParamDescrString { i8* getelementptr inbounds ([12 x i8], [12 x i8]* @"$tname_Test_Send_13_4377", i32 0, i32 0), i32 12 }, i32 3, %"$ParamDescr_4265"* getelementptr inbounds ([3 x %"$ParamDescr_4265"], [3 x %"$ParamDescr_4265"]* @"$tparams_Test_Send_13_4376", i32 0, i32 0) }, %"$TransDescr_4266" { %ParamDescrString { i8* getelementptr inbounds ([12 x i8], [12 x i8]* @"$tname_Test_Send_14_4382", i32 0, i32 0), i32 12 }, i32 3, %"$ParamDescr_4265"* getelementptr inbounds ([3 x %"$ParamDescr_4265"], [3 x %"$ParamDescr_4265"]* @"$tparams_Test_Send_14_4381", i32 0, i32 0) }] +@"$tpname__amount_4365" = unnamed_addr constant [7 x i8] c"_amount" +@"$tpname__origin_4366" = unnamed_addr constant [7 x i8] c"_origin" +@"$tpname__sender_4367" = unnamed_addr constant [7 x i8] c"_sender" +@"$tparams_Reset_4368" = unnamed_addr constant [3 x %"$ParamDescr_4359"] [%"$ParamDescr_4359" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_4365", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_94" }, %"$ParamDescr_4359" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_4366", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_125" }, %"$ParamDescr_4359" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_4367", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_125" }] +@"$tname_Reset_4369" = unnamed_addr constant [5 x i8] c"Reset" +@"$tpname__amount_4370" = unnamed_addr constant [7 x i8] c"_amount" +@"$tpname__origin_4371" = unnamed_addr constant [7 x i8] c"_origin" +@"$tpname__sender_4372" = unnamed_addr constant [7 x i8] c"_sender" +@"$tparams_Test_Insufficient_Balance_4373" = unnamed_addr constant [3 x %"$ParamDescr_4359"] [%"$ParamDescr_4359" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_4370", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_94" }, %"$ParamDescr_4359" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_4371", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_125" }, %"$ParamDescr_4359" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_4372", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_125" }] +@"$tname_Test_Insufficient_Balance_4374" = unnamed_addr constant [25 x i8] c"Test_Insufficient_Balance" +@"$tpname__amount_4375" = unnamed_addr constant [7 x i8] c"_amount" +@"$tpname__origin_4376" = unnamed_addr constant [7 x i8] c"_origin" +@"$tpname__sender_4377" = unnamed_addr constant [7 x i8] c"_sender" +@"$tparams_Test_Send_1_4378" = unnamed_addr constant [3 x %"$ParamDescr_4359"] [%"$ParamDescr_4359" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_4375", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_94" }, %"$ParamDescr_4359" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_4376", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_125" }, %"$ParamDescr_4359" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_4377", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_125" }] +@"$tname_Test_Send_1_4379" = unnamed_addr constant [11 x i8] c"Test_Send_1" +@"$tpname__amount_4380" = unnamed_addr constant [7 x i8] c"_amount" +@"$tpname__origin_4381" = unnamed_addr constant [7 x i8] c"_origin" +@"$tpname__sender_4382" = unnamed_addr constant [7 x i8] c"_sender" +@"$tparams_Finalize_Test_Send_1_4383" = unnamed_addr constant [3 x %"$ParamDescr_4359"] [%"$ParamDescr_4359" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_4380", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_94" }, %"$ParamDescr_4359" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_4381", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_125" }, %"$ParamDescr_4359" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_4382", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_125" }] +@"$tname_Finalize_Test_Send_1_4384" = unnamed_addr constant [20 x i8] c"Finalize_Test_Send_1" +@"$tpname__amount_4385" = unnamed_addr constant [7 x i8] c"_amount" +@"$tpname__origin_4386" = unnamed_addr constant [7 x i8] c"_origin" +@"$tpname__sender_4387" = unnamed_addr constant [7 x i8] c"_sender" +@"$tparams_Test_Send_2_4388" = unnamed_addr constant [3 x %"$ParamDescr_4359"] [%"$ParamDescr_4359" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_4385", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_94" }, %"$ParamDescr_4359" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_4386", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_125" }, %"$ParamDescr_4359" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_4387", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_125" }] +@"$tname_Test_Send_2_4389" = unnamed_addr constant [11 x i8] c"Test_Send_2" +@"$tpname__amount_4390" = unnamed_addr constant [7 x i8] c"_amount" +@"$tpname__origin_4391" = unnamed_addr constant [7 x i8] c"_origin" +@"$tpname__sender_4392" = unnamed_addr constant [7 x i8] c"_sender" +@"$tparams_Finalize_Test_Send_2_4393" = unnamed_addr constant [3 x %"$ParamDescr_4359"] [%"$ParamDescr_4359" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_4390", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_94" }, %"$ParamDescr_4359" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_4391", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_125" }, %"$ParamDescr_4359" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_4392", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_125" }] +@"$tname_Finalize_Test_Send_2_4394" = unnamed_addr constant [20 x i8] c"Finalize_Test_Send_2" +@"$tpname__amount_4395" = unnamed_addr constant [7 x i8] c"_amount" +@"$tpname__origin_4396" = unnamed_addr constant [7 x i8] c"_origin" +@"$tpname__sender_4397" = unnamed_addr constant [7 x i8] c"_sender" +@"$tparams_Test_Send_3_4398" = unnamed_addr constant [3 x %"$ParamDescr_4359"] [%"$ParamDescr_4359" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_4395", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_94" }, %"$ParamDescr_4359" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_4396", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_125" }, %"$ParamDescr_4359" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_4397", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_125" }] +@"$tname_Test_Send_3_4399" = unnamed_addr constant [11 x i8] c"Test_Send_3" +@"$tpname__amount_4400" = unnamed_addr constant [7 x i8] c"_amount" +@"$tpname__origin_4401" = unnamed_addr constant [7 x i8] c"_origin" +@"$tpname__sender_4402" = unnamed_addr constant [7 x i8] c"_sender" +@"$tparams_Test_Send_3_Helper_4403" = unnamed_addr constant [3 x %"$ParamDescr_4359"] [%"$ParamDescr_4359" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_4400", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_94" }, %"$ParamDescr_4359" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_4401", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_125" }, %"$ParamDescr_4359" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_4402", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_125" }] +@"$tname_Test_Send_3_Helper_4404" = unnamed_addr constant [18 x i8] c"Test_Send_3_Helper" +@"$tpname__amount_4405" = unnamed_addr constant [7 x i8] c"_amount" +@"$tpname__origin_4406" = unnamed_addr constant [7 x i8] c"_origin" +@"$tpname__sender_4407" = unnamed_addr constant [7 x i8] c"_sender" +@"$tparams_Finalize_Test_Send_3_4408" = unnamed_addr constant [3 x %"$ParamDescr_4359"] [%"$ParamDescr_4359" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_4405", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_94" }, %"$ParamDescr_4359" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_4406", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_125" }, %"$ParamDescr_4359" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_4407", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_125" }] +@"$tname_Finalize_Test_Send_3_4409" = unnamed_addr constant [20 x i8] c"Finalize_Test_Send_3" +@"$tpname__amount_4410" = unnamed_addr constant [7 x i8] c"_amount" +@"$tpname__origin_4411" = unnamed_addr constant [7 x i8] c"_origin" +@"$tpname__sender_4412" = unnamed_addr constant [7 x i8] c"_sender" +@"$tpname_expected_balance_4413" = unnamed_addr constant [16 x i8] c"expected_balance" +@"$tparams_CheckSenderBalance_4414" = unnamed_addr constant [4 x %"$ParamDescr_4359"] [%"$ParamDescr_4359" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_4410", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_94" }, %"$ParamDescr_4359" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_4411", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_125" }, %"$ParamDescr_4359" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_4412", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_125" }, %"$ParamDescr_4359" { %ParamDescrString { i8* getelementptr inbounds ([16 x i8], [16 x i8]* @"$tpname_expected_balance_4413", i32 0, i32 0), i32 16 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_94" }] +@"$tname_CheckSenderBalance_4415" = unnamed_addr constant [18 x i8] c"CheckSenderBalance" +@"$tpname__amount_4416" = unnamed_addr constant [7 x i8] c"_amount" +@"$tpname__origin_4417" = unnamed_addr constant [7 x i8] c"_origin" +@"$tpname__sender_4418" = unnamed_addr constant [7 x i8] c"_sender" +@"$tpname_expected_balance_4419" = unnamed_addr constant [16 x i8] c"expected_balance" +@"$tparams_CheckRecipientBalance_4420" = unnamed_addr constant [4 x %"$ParamDescr_4359"] [%"$ParamDescr_4359" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_4416", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_94" }, %"$ParamDescr_4359" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_4417", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_125" }, %"$ParamDescr_4359" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_4418", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_125" }, %"$ParamDescr_4359" { %ParamDescrString { i8* getelementptr inbounds ([16 x i8], [16 x i8]* @"$tpname_expected_balance_4419", i32 0, i32 0), i32 16 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_94" }] +@"$tname_CheckRecipientBalance_4421" = unnamed_addr constant [21 x i8] c"CheckRecipientBalance" +@"$tpname__amount_4422" = unnamed_addr constant [7 x i8] c"_amount" +@"$tpname__origin_4423" = unnamed_addr constant [7 x i8] c"_origin" +@"$tpname__sender_4424" = unnamed_addr constant [7 x i8] c"_sender" +@"$tparams_Test_Send_4_4425" = unnamed_addr constant [3 x %"$ParamDescr_4359"] [%"$ParamDescr_4359" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_4422", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_94" }, %"$ParamDescr_4359" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_4423", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_125" }, %"$ParamDescr_4359" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_4424", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_125" }] +@"$tname_Test_Send_4_4426" = unnamed_addr constant [11 x i8] c"Test_Send_4" +@"$tpname__amount_4427" = unnamed_addr constant [7 x i8] c"_amount" +@"$tpname__origin_4428" = unnamed_addr constant [7 x i8] c"_origin" +@"$tpname__sender_4429" = unnamed_addr constant [7 x i8] c"_sender" +@"$tparams_Test_Send_5_4430" = unnamed_addr constant [3 x %"$ParamDescr_4359"] [%"$ParamDescr_4359" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_4427", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_94" }, %"$ParamDescr_4359" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_4428", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_125" }, %"$ParamDescr_4359" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_4429", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_125" }] +@"$tname_Test_Send_5_4431" = unnamed_addr constant [11 x i8] c"Test_Send_5" +@"$tpname__amount_4432" = unnamed_addr constant [7 x i8] c"_amount" +@"$tpname__origin_4433" = unnamed_addr constant [7 x i8] c"_origin" +@"$tpname__sender_4434" = unnamed_addr constant [7 x i8] c"_sender" +@"$tparams_Test_Send_6_4435" = unnamed_addr constant [3 x %"$ParamDescr_4359"] [%"$ParamDescr_4359" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_4432", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_94" }, %"$ParamDescr_4359" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_4433", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_125" }, %"$ParamDescr_4359" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_4434", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_125" }] +@"$tname_Test_Send_6_4436" = unnamed_addr constant [11 x i8] c"Test_Send_6" +@"$tpname__amount_4437" = unnamed_addr constant [7 x i8] c"_amount" +@"$tpname__origin_4438" = unnamed_addr constant [7 x i8] c"_origin" +@"$tpname__sender_4439" = unnamed_addr constant [7 x i8] c"_sender" +@"$tparams_Test_Send_7_4440" = unnamed_addr constant [3 x %"$ParamDescr_4359"] [%"$ParamDescr_4359" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_4437", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_94" }, %"$ParamDescr_4359" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_4438", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_125" }, %"$ParamDescr_4359" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_4439", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_125" }] +@"$tname_Test_Send_7_4441" = unnamed_addr constant [11 x i8] c"Test_Send_7" +@"$tpname__amount_4442" = unnamed_addr constant [7 x i8] c"_amount" +@"$tpname__origin_4443" = unnamed_addr constant [7 x i8] c"_origin" +@"$tpname__sender_4444" = unnamed_addr constant [7 x i8] c"_sender" +@"$tparams_Test_Send_8_4445" = unnamed_addr constant [3 x %"$ParamDescr_4359"] [%"$ParamDescr_4359" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_4442", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_94" }, %"$ParamDescr_4359" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_4443", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_125" }, %"$ParamDescr_4359" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_4444", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_125" }] +@"$tname_Test_Send_8_4446" = unnamed_addr constant [11 x i8] c"Test_Send_8" +@"$tpname__amount_4447" = unnamed_addr constant [7 x i8] c"_amount" +@"$tpname__origin_4448" = unnamed_addr constant [7 x i8] c"_origin" +@"$tpname__sender_4449" = unnamed_addr constant [7 x i8] c"_sender" +@"$tparams_Test_Send_9_4450" = unnamed_addr constant [3 x %"$ParamDescr_4359"] [%"$ParamDescr_4359" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_4447", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_94" }, %"$ParamDescr_4359" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_4448", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_125" }, %"$ParamDescr_4359" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_4449", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_125" }] +@"$tname_Test_Send_9_4451" = unnamed_addr constant [11 x i8] c"Test_Send_9" +@"$tpname__amount_4452" = unnamed_addr constant [7 x i8] c"_amount" +@"$tpname__origin_4453" = unnamed_addr constant [7 x i8] c"_origin" +@"$tpname__sender_4454" = unnamed_addr constant [7 x i8] c"_sender" +@"$tparams_Test_Send_10_4455" = unnamed_addr constant [3 x %"$ParamDescr_4359"] [%"$ParamDescr_4359" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_4452", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_94" }, %"$ParamDescr_4359" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_4453", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_125" }, %"$ParamDescr_4359" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_4454", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_125" }] +@"$tname_Test_Send_10_4456" = unnamed_addr constant [12 x i8] c"Test_Send_10" +@"$tpname__amount_4457" = unnamed_addr constant [7 x i8] c"_amount" +@"$tpname__origin_4458" = unnamed_addr constant [7 x i8] c"_origin" +@"$tpname__sender_4459" = unnamed_addr constant [7 x i8] c"_sender" +@"$tparams_Test_Send_11_4460" = unnamed_addr constant [3 x %"$ParamDescr_4359"] [%"$ParamDescr_4359" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_4457", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_94" }, %"$ParamDescr_4359" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_4458", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_125" }, %"$ParamDescr_4359" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_4459", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_125" }] +@"$tname_Test_Send_11_4461" = unnamed_addr constant [12 x i8] c"Test_Send_11" +@"$tpname__amount_4462" = unnamed_addr constant [7 x i8] c"_amount" +@"$tpname__origin_4463" = unnamed_addr constant [7 x i8] c"_origin" +@"$tpname__sender_4464" = unnamed_addr constant [7 x i8] c"_sender" +@"$tparams_Test_Send_12_4465" = unnamed_addr constant [3 x %"$ParamDescr_4359"] [%"$ParamDescr_4359" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_4462", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_94" }, %"$ParamDescr_4359" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_4463", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_125" }, %"$ParamDescr_4359" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_4464", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_125" }] +@"$tname_Test_Send_12_4466" = unnamed_addr constant [12 x i8] c"Test_Send_12" +@"$tpname__amount_4467" = unnamed_addr constant [7 x i8] c"_amount" +@"$tpname__origin_4468" = unnamed_addr constant [7 x i8] c"_origin" +@"$tpname__sender_4469" = unnamed_addr constant [7 x i8] c"_sender" +@"$tparams_Test_Send_13_4470" = unnamed_addr constant [3 x %"$ParamDescr_4359"] [%"$ParamDescr_4359" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_4467", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_94" }, %"$ParamDescr_4359" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_4468", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_125" }, %"$ParamDescr_4359" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_4469", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_125" }] +@"$tname_Test_Send_13_4471" = unnamed_addr constant [12 x i8] c"Test_Send_13" +@"$tpname__amount_4472" = unnamed_addr constant [7 x i8] c"_amount" +@"$tpname__origin_4473" = unnamed_addr constant [7 x i8] c"_origin" +@"$tpname__sender_4474" = unnamed_addr constant [7 x i8] c"_sender" +@"$tparams_Test_Send_14_4475" = unnamed_addr constant [3 x %"$ParamDescr_4359"] [%"$ParamDescr_4359" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_4472", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_94" }, %"$ParamDescr_4359" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_4473", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_125" }, %"$ParamDescr_4359" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_4474", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_125" }] +@"$tname_Test_Send_14_4476" = unnamed_addr constant [12 x i8] c"Test_Send_14" +@_transition_parameters = constant [22 x %"$TransDescr_4360"] [%"$TransDescr_4360" { %ParamDescrString { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$tname_Reset_4369", i32 0, i32 0), i32 5 }, i32 3, %"$ParamDescr_4359"* getelementptr inbounds ([3 x %"$ParamDescr_4359"], [3 x %"$ParamDescr_4359"]* @"$tparams_Reset_4368", i32 0, i32 0) }, %"$TransDescr_4360" { %ParamDescrString { i8* getelementptr inbounds ([25 x i8], [25 x i8]* @"$tname_Test_Insufficient_Balance_4374", i32 0, i32 0), i32 25 }, i32 3, %"$ParamDescr_4359"* getelementptr inbounds ([3 x %"$ParamDescr_4359"], [3 x %"$ParamDescr_4359"]* @"$tparams_Test_Insufficient_Balance_4373", i32 0, i32 0) }, %"$TransDescr_4360" { %ParamDescrString { i8* getelementptr inbounds ([11 x i8], [11 x i8]* @"$tname_Test_Send_1_4379", i32 0, i32 0), i32 11 }, i32 3, %"$ParamDescr_4359"* getelementptr inbounds ([3 x %"$ParamDescr_4359"], [3 x %"$ParamDescr_4359"]* @"$tparams_Test_Send_1_4378", i32 0, i32 0) }, %"$TransDescr_4360" { %ParamDescrString { i8* getelementptr inbounds ([20 x i8], [20 x i8]* @"$tname_Finalize_Test_Send_1_4384", i32 0, i32 0), i32 20 }, i32 3, %"$ParamDescr_4359"* getelementptr inbounds ([3 x %"$ParamDescr_4359"], [3 x %"$ParamDescr_4359"]* @"$tparams_Finalize_Test_Send_1_4383", i32 0, i32 0) }, %"$TransDescr_4360" { %ParamDescrString { i8* getelementptr inbounds ([11 x i8], [11 x i8]* @"$tname_Test_Send_2_4389", i32 0, i32 0), i32 11 }, i32 3, %"$ParamDescr_4359"* getelementptr inbounds ([3 x %"$ParamDescr_4359"], [3 x %"$ParamDescr_4359"]* @"$tparams_Test_Send_2_4388", i32 0, i32 0) }, %"$TransDescr_4360" { %ParamDescrString { i8* getelementptr inbounds ([20 x i8], [20 x i8]* @"$tname_Finalize_Test_Send_2_4394", i32 0, i32 0), i32 20 }, i32 3, %"$ParamDescr_4359"* getelementptr inbounds ([3 x %"$ParamDescr_4359"], [3 x %"$ParamDescr_4359"]* @"$tparams_Finalize_Test_Send_2_4393", i32 0, i32 0) }, %"$TransDescr_4360" { %ParamDescrString { i8* getelementptr inbounds ([11 x i8], [11 x i8]* @"$tname_Test_Send_3_4399", i32 0, i32 0), i32 11 }, i32 3, %"$ParamDescr_4359"* getelementptr inbounds ([3 x %"$ParamDescr_4359"], [3 x %"$ParamDescr_4359"]* @"$tparams_Test_Send_3_4398", i32 0, i32 0) }, %"$TransDescr_4360" { %ParamDescrString { i8* getelementptr inbounds ([18 x i8], [18 x i8]* @"$tname_Test_Send_3_Helper_4404", i32 0, i32 0), i32 18 }, i32 3, %"$ParamDescr_4359"* getelementptr inbounds ([3 x %"$ParamDescr_4359"], [3 x %"$ParamDescr_4359"]* @"$tparams_Test_Send_3_Helper_4403", i32 0, i32 0) }, %"$TransDescr_4360" { %ParamDescrString { i8* getelementptr inbounds ([20 x i8], [20 x i8]* @"$tname_Finalize_Test_Send_3_4409", i32 0, i32 0), i32 20 }, i32 3, %"$ParamDescr_4359"* getelementptr inbounds ([3 x %"$ParamDescr_4359"], [3 x %"$ParamDescr_4359"]* @"$tparams_Finalize_Test_Send_3_4408", i32 0, i32 0) }, %"$TransDescr_4360" { %ParamDescrString { i8* getelementptr inbounds ([18 x i8], [18 x i8]* @"$tname_CheckSenderBalance_4415", i32 0, i32 0), i32 18 }, i32 4, %"$ParamDescr_4359"* getelementptr inbounds ([4 x %"$ParamDescr_4359"], [4 x %"$ParamDescr_4359"]* @"$tparams_CheckSenderBalance_4414", i32 0, i32 0) }, %"$TransDescr_4360" { %ParamDescrString { i8* getelementptr inbounds ([21 x i8], [21 x i8]* @"$tname_CheckRecipientBalance_4421", i32 0, i32 0), i32 21 }, i32 4, %"$ParamDescr_4359"* getelementptr inbounds ([4 x %"$ParamDescr_4359"], [4 x %"$ParamDescr_4359"]* @"$tparams_CheckRecipientBalance_4420", i32 0, i32 0) }, %"$TransDescr_4360" { %ParamDescrString { i8* getelementptr inbounds ([11 x i8], [11 x i8]* @"$tname_Test_Send_4_4426", i32 0, i32 0), i32 11 }, i32 3, %"$ParamDescr_4359"* getelementptr inbounds ([3 x %"$ParamDescr_4359"], [3 x %"$ParamDescr_4359"]* @"$tparams_Test_Send_4_4425", i32 0, i32 0) }, %"$TransDescr_4360" { %ParamDescrString { i8* getelementptr inbounds ([11 x i8], [11 x i8]* @"$tname_Test_Send_5_4431", i32 0, i32 0), i32 11 }, i32 3, %"$ParamDescr_4359"* getelementptr inbounds ([3 x %"$ParamDescr_4359"], [3 x %"$ParamDescr_4359"]* @"$tparams_Test_Send_5_4430", i32 0, i32 0) }, %"$TransDescr_4360" { %ParamDescrString { i8* getelementptr inbounds ([11 x i8], [11 x i8]* @"$tname_Test_Send_6_4436", i32 0, i32 0), i32 11 }, i32 3, %"$ParamDescr_4359"* getelementptr inbounds ([3 x %"$ParamDescr_4359"], [3 x %"$ParamDescr_4359"]* @"$tparams_Test_Send_6_4435", i32 0, i32 0) }, %"$TransDescr_4360" { %ParamDescrString { i8* getelementptr inbounds ([11 x i8], [11 x i8]* @"$tname_Test_Send_7_4441", i32 0, i32 0), i32 11 }, i32 3, %"$ParamDescr_4359"* getelementptr inbounds ([3 x %"$ParamDescr_4359"], [3 x %"$ParamDescr_4359"]* @"$tparams_Test_Send_7_4440", i32 0, i32 0) }, %"$TransDescr_4360" { %ParamDescrString { i8* getelementptr inbounds ([11 x i8], [11 x i8]* @"$tname_Test_Send_8_4446", i32 0, i32 0), i32 11 }, i32 3, %"$ParamDescr_4359"* getelementptr inbounds ([3 x %"$ParamDescr_4359"], [3 x %"$ParamDescr_4359"]* @"$tparams_Test_Send_8_4445", i32 0, i32 0) }, %"$TransDescr_4360" { %ParamDescrString { i8* getelementptr inbounds ([11 x i8], [11 x i8]* @"$tname_Test_Send_9_4451", i32 0, i32 0), i32 11 }, i32 3, %"$ParamDescr_4359"* getelementptr inbounds ([3 x %"$ParamDescr_4359"], [3 x %"$ParamDescr_4359"]* @"$tparams_Test_Send_9_4450", i32 0, i32 0) }, %"$TransDescr_4360" { %ParamDescrString { i8* getelementptr inbounds ([12 x i8], [12 x i8]* @"$tname_Test_Send_10_4456", i32 0, i32 0), i32 12 }, i32 3, %"$ParamDescr_4359"* getelementptr inbounds ([3 x %"$ParamDescr_4359"], [3 x %"$ParamDescr_4359"]* @"$tparams_Test_Send_10_4455", i32 0, i32 0) }, %"$TransDescr_4360" { %ParamDescrString { i8* getelementptr inbounds ([12 x i8], [12 x i8]* @"$tname_Test_Send_11_4461", i32 0, i32 0), i32 12 }, i32 3, %"$ParamDescr_4359"* getelementptr inbounds ([3 x %"$ParamDescr_4359"], [3 x %"$ParamDescr_4359"]* @"$tparams_Test_Send_11_4460", i32 0, i32 0) }, %"$TransDescr_4360" { %ParamDescrString { i8* getelementptr inbounds ([12 x i8], [12 x i8]* @"$tname_Test_Send_12_4466", i32 0, i32 0), i32 12 }, i32 3, %"$ParamDescr_4359"* getelementptr inbounds ([3 x %"$ParamDescr_4359"], [3 x %"$ParamDescr_4359"]* @"$tparams_Test_Send_12_4465", i32 0, i32 0) }, %"$TransDescr_4360" { %ParamDescrString { i8* getelementptr inbounds ([12 x i8], [12 x i8]* @"$tname_Test_Send_13_4471", i32 0, i32 0), i32 12 }, i32 3, %"$ParamDescr_4359"* getelementptr inbounds ([3 x %"$ParamDescr_4359"], [3 x %"$ParamDescr_4359"]* @"$tparams_Test_Send_13_4470", i32 0, i32 0) }, %"$TransDescr_4360" { %ParamDescrString { i8* getelementptr inbounds ([12 x i8], [12 x i8]* @"$tname_Test_Send_14_4476", i32 0, i32 0), i32 12 }, i32 3, %"$ParamDescr_4359"* getelementptr inbounds ([3 x %"$ParamDescr_4359"], [3 x %"$ParamDescr_4359"]* @"$tparams_Test_Send_14_4475", i32 0, i32 0) }] @_transition_parameters_length = constant i32 22 -define internal %TName_List_String* @"$fundef_72"(%"$$fundef_72_env_176"* %0, { %TName_List_String* (i8*, %TName_List_String*)*, i8* } %1) !dbg !4 { +define internal %TName_List_String* @"$fundef_72"(%"$$fundef_72_env_176"* %0, { %TName_List_String* (i8*, %TName_List_String*)*, i8* } %1) !dbg !3 { entry: - %"$$fundef_72_env_equal_599" = getelementptr inbounds %"$$fundef_72_env_176", %"$$fundef_72_env_176"* %0, i32 0, i32 0 - %"$equal_envload_600" = load { { %TName_Bool* (i8*, %String)*, i8* } (i8*, %String)*, i8* }, { { %TName_Bool* (i8*, %String)*, i8* } (i8*, %String)*, i8* }* %"$$fundef_72_env_equal_599", align 8 + %"$$fundef_72_env_equal_610" = getelementptr inbounds %"$$fundef_72_env_176", %"$$fundef_72_env_176"* %0, i32 0, i32 0 + %"$equal_envload_611" = load { { %TName_Bool* (i8*, %String)*, i8* } (i8*, %String)*, i8* }, { { %TName_Bool* (i8*, %String)*, i8* } (i8*, %String)*, i8* }* %"$$fundef_72_env_equal_610", align 8 %equal = alloca { { %TName_Bool* (i8*, %String)*, i8* } (i8*, %String)*, i8* }, align 8 - store { { %TName_Bool* (i8*, %String)*, i8* } (i8*, %String)*, i8* } %"$equal_envload_600", { { %TName_Bool* (i8*, %String)*, i8* } (i8*, %String)*, i8* }* %equal, align 8 - %"$$fundef_72_env_l1_601" = getelementptr inbounds %"$$fundef_72_env_176", %"$$fundef_72_env_176"* %0, i32 0, i32 1 - %"$l1_envload_602" = load %TName_List_String*, %TName_List_String** %"$$fundef_72_env_l1_601", align 8 + store { { %TName_Bool* (i8*, %String)*, i8* } (i8*, %String)*, i8* } %"$equal_envload_611", { { %TName_Bool* (i8*, %String)*, i8* } (i8*, %String)*, i8* }* %equal, align 8 + %"$$fundef_72_env_l1_612" = getelementptr inbounds %"$$fundef_72_env_176", %"$$fundef_72_env_176"* %0, i32 0, i32 1 + %"$l1_envload_613" = load %TName_List_String*, %TName_List_String** %"$$fundef_72_env_l1_612", align 8 %l1 = alloca %TName_List_String*, align 8 - store %TName_List_String* %"$l1_envload_602", %TName_List_String** %l1, align 8 - %"$$fundef_72_env_x1_603" = getelementptr inbounds %"$$fundef_72_env_176", %"$$fundef_72_env_176"* %0, i32 0, i32 2 - %"$x1_envload_604" = load %String, %String* %"$$fundef_72_env_x1_603", align 8 + store %TName_List_String* %"$l1_envload_613", %TName_List_String** %l1, align 8 + %"$$fundef_72_env_x1_614" = getelementptr inbounds %"$$fundef_72_env_176", %"$$fundef_72_env_176"* %0, i32 0, i32 2 + %"$x1_envload_615" = load %String, %String* %"$$fundef_72_env_x1_614", align 8 %x1 = alloca %String, align 8 - store %String %"$x1_envload_604", %String* %x1, align 8 - %"$$fundef_72_env_xs2_605" = getelementptr inbounds %"$$fundef_72_env_176", %"$$fundef_72_env_176"* %0, i32 0, i32 3 - %"$xs2_envload_606" = load %TName_List_String*, %TName_List_String** %"$$fundef_72_env_xs2_605", align 8 + store %String %"$x1_envload_615", %String* %x1, align 8 + %"$$fundef_72_env_xs2_616" = getelementptr inbounds %"$$fundef_72_env_176", %"$$fundef_72_env_176"* %0, i32 0, i32 3 + %"$xs2_envload_617" = load %TName_List_String*, %TName_List_String** %"$$fundef_72_env_xs2_616", align 8 %xs2 = alloca %TName_List_String*, align 8 - store %TName_List_String* %"$xs2_envload_606", %TName_List_String** %xs2, align 8 + store %TName_List_String* %"$xs2_envload_617", %TName_List_String** %xs2, align 8 %"$retval_73" = alloca %TName_List_String*, align 8 - %"$gasrem_607" = load i64, i64* @_gasrem, align 8 - %"$gascmp_608" = icmp ugt i64 2, %"$gasrem_607" - br i1 %"$gascmp_608", label %"$out_of_gas_609", label %"$have_gas_610" - -"$out_of_gas_609": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_610" - -"$have_gas_610": ; preds = %"$out_of_gas_609", %entry - %"$consume_611" = sub i64 %"$gasrem_607", 2 - store i64 %"$consume_611", i64* @_gasrem, align 8 - %"$xs2_613" = load %TName_List_String*, %TName_List_String** %xs2, align 8 - %"$xs2_tag_614" = getelementptr inbounds %TName_List_String, %TName_List_String* %"$xs2_613", i32 0, i32 0 - %"$xs2_tag_615" = load i8, i8* %"$xs2_tag_614", align 1 - switch i8 %"$xs2_tag_615", label %"$empty_default_616" [ - i8 0, label %"$Cons_617" - i8 1, label %"$Nil_674" - ], !dbg !9 - -"$Cons_617": ; preds = %"$have_gas_610" - %"$xs2_618" = bitcast %TName_List_String* %"$xs2_613" to %CName_Cons_String* - %"$x2_gep_619" = getelementptr inbounds %CName_Cons_String, %CName_Cons_String* %"$xs2_618", i32 0, i32 1 - %"$x2_load_620" = load %String, %String* %"$x2_gep_619", align 8 + call void @llvm.dbg.declare(metadata %TName_List_String** %"$retval_73", metadata !9, metadata !DIExpression()), !dbg !12 + %"$gasrem_618" = load i64, i64* @_gasrem, align 8 + %"$gascmp_619" = icmp ugt i64 2, %"$gasrem_618" + br i1 %"$gascmp_619", label %"$out_of_gas_620", label %"$have_gas_621" + +"$out_of_gas_620": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_621" + +"$have_gas_621": ; preds = %"$out_of_gas_620", %entry + %"$consume_622" = sub i64 %"$gasrem_618", 2 + store i64 %"$consume_622", i64* @_gasrem, align 8 + %"$xs2_624" = load %TName_List_String*, %TName_List_String** %xs2, align 8 + %"$xs2_tag_625" = getelementptr inbounds %TName_List_String, %TName_List_String* %"$xs2_624", i32 0, i32 0 + %"$xs2_tag_626" = load i8, i8* %"$xs2_tag_625", align 1 + switch i8 %"$xs2_tag_626", label %"$empty_default_627" [ + i8 0, label %"$Cons_628" + i8 1, label %"$Nil_685" + ], !dbg !12 + +"$Cons_628": ; preds = %"$have_gas_621" + %"$xs2_629" = bitcast %TName_List_String* %"$xs2_624" to %CName_Cons_String* + %"$x2_gep_630" = getelementptr inbounds %CName_Cons_String, %CName_Cons_String* %"$xs2_629", i32 0, i32 1 + %"$x2_load_631" = load %String, %String* %"$x2_gep_630", align 8 %x2 = alloca %String, align 8 - store %String %"$x2_load_620", %String* %x2, align 8 - %"$tl2_gep_621" = getelementptr inbounds %CName_Cons_String, %CName_Cons_String* %"$xs2_618", i32 0, i32 2 - %"$tl2_load_622" = load %TName_List_String*, %TName_List_String** %"$tl2_gep_621", align 8 + store %String %"$x2_load_631", %String* %x2, align 8 + %"$tl2_gep_632" = getelementptr inbounds %CName_Cons_String, %CName_Cons_String* %"$xs2_629", i32 0, i32 2 + %"$tl2_load_633" = load %TName_List_String*, %TName_List_String** %"$tl2_gep_632", align 8 %tl2 = alloca %TName_List_String*, align 8 - store %TName_List_String* %"$tl2_load_622", %TName_List_String** %tl2, align 8 - %"$gasrem_623" = load i64, i64* @_gasrem, align 8 - %"$gascmp_624" = icmp ugt i64 1, %"$gasrem_623" - br i1 %"$gascmp_624", label %"$out_of_gas_625", label %"$have_gas_626" + store %TName_List_String* %"$tl2_load_633", %TName_List_String** %tl2, align 8 + %"$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" -"$out_of_gas_625": ; preds = %"$Cons_617" +"$out_of_gas_636": ; preds = %"$Cons_628" call void @_out_of_gas() - br label %"$have_gas_626" + br label %"$have_gas_637" -"$have_gas_626": ; preds = %"$out_of_gas_625", %"$Cons_617" - %"$consume_627" = sub i64 %"$gasrem_623", 1 - store i64 %"$consume_627", i64* @_gasrem, align 8 +"$have_gas_637": ; preds = %"$out_of_gas_636", %"$Cons_628" + %"$consume_638" = sub i64 %"$gasrem_634", 1 + store i64 %"$consume_638", i64* @_gasrem, align 8 %eq_x1_x2 = alloca %TName_Bool*, 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" + call void @llvm.dbg.declare(metadata %TName_Bool** %eq_x1_x2, metadata !13, metadata !DIExpression()), !dbg !18 + %"$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_630": ; preds = %"$have_gas_626" +"$out_of_gas_641": ; preds = %"$have_gas_637" call void @_out_of_gas() - br label %"$have_gas_631" + br label %"$have_gas_642" -"$have_gas_631": ; preds = %"$out_of_gas_630", %"$have_gas_626" - %"$consume_632" = sub i64 %"$gasrem_628", 1 - store i64 %"$consume_632", i64* @_gasrem, align 8 +"$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 %"$equal_10" = alloca { %TName_Bool* (i8*, %String)*, i8* }, align 8 - %"$equal_633" = load { { %TName_Bool* (i8*, %String)*, i8* } (i8*, %String)*, i8* }, { { %TName_Bool* (i8*, %String)*, i8* } (i8*, %String)*, i8* }* %equal, align 8 - %"$equal_fptr_634" = extractvalue { { %TName_Bool* (i8*, %String)*, i8* } (i8*, %String)*, i8* } %"$equal_633", 0 - %"$equal_envptr_635" = extractvalue { { %TName_Bool* (i8*, %String)*, i8* } (i8*, %String)*, i8* } %"$equal_633", 1 - %"$x1_636" = load %String, %String* %x1, align 8 - %"$equal_call_637" = call { %TName_Bool* (i8*, %String)*, i8* } %"$equal_fptr_634"(i8* %"$equal_envptr_635", %String %"$x1_636"), !dbg !10 - store { %TName_Bool* (i8*, %String)*, i8* } %"$equal_call_637", { %TName_Bool* (i8*, %String)*, i8* }* %"$equal_10", align 8, !dbg !10 + %"$equal_644" = load { { %TName_Bool* (i8*, %String)*, i8* } (i8*, %String)*, i8* }, { { %TName_Bool* (i8*, %String)*, i8* } (i8*, %String)*, i8* }* %equal, align 8 + %"$equal_fptr_645" = extractvalue { { %TName_Bool* (i8*, %String)*, i8* } (i8*, %String)*, i8* } %"$equal_644", 0 + %"$equal_envptr_646" = extractvalue { { %TName_Bool* (i8*, %String)*, i8* } (i8*, %String)*, i8* } %"$equal_644", 1 + %"$x1_647" = load %String, %String* %x1, align 8 + %"$equal_call_648" = call { %TName_Bool* (i8*, %String)*, i8* } %"$equal_fptr_645"(i8* %"$equal_envptr_646", %String %"$x1_647"), !dbg !19 + store { %TName_Bool* (i8*, %String)*, i8* } %"$equal_call_648", { %TName_Bool* (i8*, %String)*, i8* }* %"$equal_10", align 8, !dbg !19 %"$equal_11" = alloca %TName_Bool*, align 8 - %"$$equal_10_638" = load { %TName_Bool* (i8*, %String)*, i8* }, { %TName_Bool* (i8*, %String)*, i8* }* %"$equal_10", align 8 - %"$$equal_10_fptr_639" = extractvalue { %TName_Bool* (i8*, %String)*, i8* } %"$$equal_10_638", 0 - %"$$equal_10_envptr_640" = extractvalue { %TName_Bool* (i8*, %String)*, i8* } %"$$equal_10_638", 1 - %"$x2_641" = load %String, %String* %x2, align 8 - %"$$equal_10_call_642" = call %TName_Bool* %"$$equal_10_fptr_639"(i8* %"$$equal_10_envptr_640", %String %"$x2_641"), !dbg !10 - store %TName_Bool* %"$$equal_10_call_642", %TName_Bool** %"$equal_11", align 8, !dbg !10 - %"$$equal_11_643" = load %TName_Bool*, %TName_Bool** %"$equal_11", align 8 - store %TName_Bool* %"$$equal_11_643", %TName_Bool** %eq_x1_x2, align 8, !dbg !10 - %"$gasrem_644" = load i64, i64* @_gasrem, align 8 - %"$gascmp_645" = icmp ugt i64 2, %"$gasrem_644" - br i1 %"$gascmp_645", label %"$out_of_gas_646", label %"$have_gas_647" - -"$out_of_gas_646": ; preds = %"$have_gas_631" - call void @_out_of_gas() - br label %"$have_gas_647" - -"$have_gas_647": ; preds = %"$out_of_gas_646", %"$have_gas_631" - %"$consume_648" = sub i64 %"$gasrem_644", 2 - store i64 %"$consume_648", i64* @_gasrem, align 8 - %"$eq_x1_x2_650" = load %TName_Bool*, %TName_Bool** %eq_x1_x2, align 8 - %"$eq_x1_x2_tag_651" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$eq_x1_x2_650", i32 0, i32 0 - %"$eq_x1_x2_tag_652" = load i8, i8* %"$eq_x1_x2_tag_651", align 1 - switch i8 %"$eq_x1_x2_tag_652", label %"$empty_default_653" [ - i8 0, label %"$True_654" - i8 1, label %"$False_666" - ], !dbg !13 - -"$True_654": ; preds = %"$have_gas_647" - %"$eq_x1_x2_655" = bitcast %TName_Bool* %"$eq_x1_x2_650" to %CName_True* - %"$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 = %"$True_654" - call void @_out_of_gas() - br label %"$have_gas_659" - -"$have_gas_659": ; preds = %"$out_of_gas_658", %"$True_654" - %"$consume_660" = sub i64 %"$gasrem_656", 1 - store i64 %"$consume_660", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$equal_11", metadata !20, metadata !DIExpression()), !dbg !19 + %"$$equal_10_649" = load { %TName_Bool* (i8*, %String)*, i8* }, { %TName_Bool* (i8*, %String)*, i8* }* %"$equal_10", align 8 + %"$$equal_10_fptr_650" = extractvalue { %TName_Bool* (i8*, %String)*, i8* } %"$$equal_10_649", 0 + %"$$equal_10_envptr_651" = extractvalue { %TName_Bool* (i8*, %String)*, i8* } %"$$equal_10_649", 1 + %"$x2_652" = load %String, %String* %x2, align 8 + %"$$equal_10_call_653" = call %TName_Bool* %"$$equal_10_fptr_650"(i8* %"$$equal_10_envptr_651", %String %"$x2_652"), !dbg !19 + store %TName_Bool* %"$$equal_10_call_653", %TName_Bool** %"$equal_11", align 8, !dbg !19 + %"$$equal_11_654" = load %TName_Bool*, %TName_Bool** %"$equal_11", align 8 + store %TName_Bool* %"$$equal_11_654", %TName_Bool** %eq_x1_x2, align 8, !dbg !19 + %"$gasrem_655" = load i64, i64* @_gasrem, align 8 + %"$gascmp_656" = icmp ugt i64 2, %"$gasrem_655" + br i1 %"$gascmp_656", label %"$out_of_gas_657", label %"$have_gas_658" + +"$out_of_gas_657": ; preds = %"$have_gas_642" + call void @_out_of_gas() + br label %"$have_gas_658" + +"$have_gas_658": ; preds = %"$out_of_gas_657", %"$have_gas_642" + %"$consume_659" = sub i64 %"$gasrem_655", 2 + store i64 %"$consume_659", i64* @_gasrem, align 8 + %"$eq_x1_x2_661" = load %TName_Bool*, %TName_Bool** %eq_x1_x2, align 8 + %"$eq_x1_x2_tag_662" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$eq_x1_x2_661", i32 0, i32 0 + %"$eq_x1_x2_tag_663" = load i8, i8* %"$eq_x1_x2_tag_662", align 1 + switch i8 %"$eq_x1_x2_tag_663", label %"$empty_default_664" [ + i8 0, label %"$True_665" + i8 1, label %"$False_677" + ], !dbg !21 + +"$True_665": ; preds = %"$have_gas_658" + %"$eq_x1_x2_666" = bitcast %TName_Bool* %"$eq_x1_x2_661" to %CName_True* + %"$gasrem_667" = load i64, i64* @_gasrem, align 8 + %"$gascmp_668" = icmp ugt i64 1, %"$gasrem_667" + br i1 %"$gascmp_668", label %"$out_of_gas_669", label %"$have_gas_670" + +"$out_of_gas_669": ; preds = %"$True_665" + call void @_out_of_gas() + br label %"$have_gas_670" + +"$have_gas_670": ; preds = %"$out_of_gas_669", %"$True_665" + %"$consume_671" = sub i64 %"$gasrem_667", 1 + store i64 %"$consume_671", i64* @_gasrem, align 8 %"$recurse_12" = alloca %TName_List_String*, align 8 - %"$recurse_fptr_661" = extractvalue { %TName_List_String* (i8*, %TName_List_String*)*, i8* } %1, 0 - %"$recurse_envptr_662" = extractvalue { %TName_List_String* (i8*, %TName_List_String*)*, i8* } %1, 1 - %"$tl2_663" = load %TName_List_String*, %TName_List_String** %tl2, align 8 - %"$recurse_call_664" = call %TName_List_String* %"$recurse_fptr_661"(i8* %"$recurse_envptr_662", %TName_List_String* %"$tl2_663"), !dbg !14 - store %TName_List_String* %"$recurse_call_664", %TName_List_String** %"$recurse_12", align 8, !dbg !14 - %"$$recurse_12_665" = load %TName_List_String*, %TName_List_String** %"$recurse_12", align 8 - store %TName_List_String* %"$$recurse_12_665", %TName_List_String** %"$retval_73", align 8, !dbg !14 - br label %"$matchsucc_649" - -"$False_666": ; preds = %"$have_gas_647" - %"$eq_x1_x2_667" = bitcast %TName_Bool* %"$eq_x1_x2_650" to %CName_False* - %"$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 = %"$False_666" - call void @_out_of_gas() - br label %"$have_gas_671" - -"$have_gas_671": ; preds = %"$out_of_gas_670", %"$False_666" - %"$consume_672" = sub i64 %"$gasrem_668", 1 - store i64 %"$consume_672", i64* @_gasrem, align 8 - %"$l1_673" = load %TName_List_String*, %TName_List_String** %l1, align 8 - store %TName_List_String* %"$l1_673", %TName_List_String** %"$retval_73", align 8, !dbg !17 - br label %"$matchsucc_649" - -"$empty_default_653": ; preds = %"$have_gas_647" - br label %"$matchsucc_649" - -"$matchsucc_649": ; preds = %"$have_gas_671", %"$have_gas_659", %"$empty_default_653" - br label %"$matchsucc_612" - -"$Nil_674": ; preds = %"$have_gas_610" - %"$xs2_675" = bitcast %TName_List_String* %"$xs2_613" to %CName_Nil_String* - %"$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 = %"$Nil_674" - call void @_out_of_gas() - br label %"$have_gas_679" - -"$have_gas_679": ; preds = %"$out_of_gas_678", %"$Nil_674" - %"$consume_680" = sub i64 %"$gasrem_676", 1 - store i64 %"$consume_680", i64* @_gasrem, align 8 - %"$l1_681" = load %TName_List_String*, %TName_List_String** %l1, align 8 - store %TName_List_String* %"$l1_681", %TName_List_String** %"$retval_73", align 8, !dbg !19 - br label %"$matchsucc_612" - -"$empty_default_616": ; preds = %"$have_gas_610" - br label %"$matchsucc_612" - -"$matchsucc_612": ; preds = %"$have_gas_679", %"$matchsucc_649", %"$empty_default_616" - %"$$retval_73_682" = load %TName_List_String*, %TName_List_String** %"$retval_73", align 8 - ret %TName_List_String* %"$$retval_73_682" + call void @llvm.dbg.declare(metadata %TName_List_String** %"$recurse_12", metadata !22, metadata !DIExpression()), !dbg !25 + %"$recurse_fptr_672" = extractvalue { %TName_List_String* (i8*, %TName_List_String*)*, i8* } %1, 0 + %"$recurse_envptr_673" = extractvalue { %TName_List_String* (i8*, %TName_List_String*)*, i8* } %1, 1 + %"$tl2_674" = load %TName_List_String*, %TName_List_String** %tl2, align 8 + %"$recurse_call_675" = call %TName_List_String* %"$recurse_fptr_672"(i8* %"$recurse_envptr_673", %TName_List_String* %"$tl2_674"), !dbg !25 + store %TName_List_String* %"$recurse_call_675", %TName_List_String** %"$recurse_12", align 8, !dbg !25 + %"$$recurse_12_676" = load %TName_List_String*, %TName_List_String** %"$recurse_12", align 8 + store %TName_List_String* %"$$recurse_12_676", %TName_List_String** %"$retval_73", align 8, !dbg !25 + br label %"$matchsucc_660" + +"$False_677": ; preds = %"$have_gas_658" + %"$eq_x1_x2_678" = bitcast %TName_Bool* %"$eq_x1_x2_661" to %CName_False* + %"$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 = %"$False_677" + call void @_out_of_gas() + br label %"$have_gas_682" + +"$have_gas_682": ; preds = %"$out_of_gas_681", %"$False_677" + %"$consume_683" = sub i64 %"$gasrem_679", 1 + store i64 %"$consume_683", i64* @_gasrem, align 8 + %"$l1_684" = load %TName_List_String*, %TName_List_String** %l1, align 8 + store %TName_List_String* %"$l1_684", %TName_List_String** %"$retval_73", align 8, !dbg !26 + br label %"$matchsucc_660" + +"$empty_default_664": ; preds = %"$have_gas_658" + br label %"$matchsucc_660" + +"$matchsucc_660": ; preds = %"$have_gas_682", %"$have_gas_670", %"$empty_default_664" + br label %"$matchsucc_623" + +"$Nil_685": ; preds = %"$have_gas_621" + %"$xs2_686" = bitcast %TName_List_String* %"$xs2_624" to %CName_Nil_String* + %"$gasrem_687" = load i64, i64* @_gasrem, align 8 + %"$gascmp_688" = icmp ugt i64 1, %"$gasrem_687" + br i1 %"$gascmp_688", label %"$out_of_gas_689", label %"$have_gas_690" + +"$out_of_gas_689": ; preds = %"$Nil_685" + call void @_out_of_gas() + br label %"$have_gas_690" + +"$have_gas_690": ; preds = %"$out_of_gas_689", %"$Nil_685" + %"$consume_691" = sub i64 %"$gasrem_687", 1 + store i64 %"$consume_691", i64* @_gasrem, align 8 + %"$l1_692" = load %TName_List_String*, %TName_List_String** %l1, align 8 + store %TName_List_String* %"$l1_692", %TName_List_String** %"$retval_73", align 8, !dbg !28 + br label %"$matchsucc_623" + +"$empty_default_627": ; preds = %"$have_gas_621" + br label %"$matchsucc_623" + +"$matchsucc_623": ; preds = %"$have_gas_690", %"$matchsucc_660", %"$empty_default_627" + %"$$retval_73_693" = load %TName_List_String*, %TName_List_String** %"$retval_73", align 8 + ret %TName_List_String* %"$$retval_73_693" } -define internal { %TName_List_String* (i8*, { %TName_List_String* (i8*, %TName_List_String*)*, i8* })*, i8* } @"$fundef_70"(%"$$fundef_70_env_177"* %0, %String %1) !dbg !21 { +define internal { %TName_List_String* (i8*, { %TName_List_String* (i8*, %TName_List_String*)*, i8* })*, i8* } @"$fundef_70"(%"$$fundef_70_env_177"* %0, %String %1) !dbg !30 { entry: - %"$$fundef_70_env_equal_576" = getelementptr inbounds %"$$fundef_70_env_177", %"$$fundef_70_env_177"* %0, i32 0, i32 0 - %"$equal_envload_577" = load { { %TName_Bool* (i8*, %String)*, i8* } (i8*, %String)*, i8* }, { { %TName_Bool* (i8*, %String)*, i8* } (i8*, %String)*, i8* }* %"$$fundef_70_env_equal_576", align 8 + %"$x1_609" = alloca %String, align 8 + store %String %1, %String* %"$x1_609", align 8 + call void @llvm.dbg.declare(metadata %String* %"$x1_609", metadata !31, metadata !DIExpression()), !dbg !33 + %"$$fundef_70_env_equal_586" = getelementptr inbounds %"$$fundef_70_env_177", %"$$fundef_70_env_177"* %0, i32 0, i32 0 + %"$equal_envload_587" = load { { %TName_Bool* (i8*, %String)*, i8* } (i8*, %String)*, i8* }, { { %TName_Bool* (i8*, %String)*, i8* } (i8*, %String)*, i8* }* %"$$fundef_70_env_equal_586", align 8 %equal = alloca { { %TName_Bool* (i8*, %String)*, i8* } (i8*, %String)*, i8* }, align 8 - store { { %TName_Bool* (i8*, %String)*, i8* } (i8*, %String)*, i8* } %"$equal_envload_577", { { %TName_Bool* (i8*, %String)*, i8* } (i8*, %String)*, i8* }* %equal, align 8 - %"$$fundef_70_env_l1_578" = getelementptr inbounds %"$$fundef_70_env_177", %"$$fundef_70_env_177"* %0, i32 0, i32 1 - %"$l1_envload_579" = load %TName_List_String*, %TName_List_String** %"$$fundef_70_env_l1_578", align 8 + store { { %TName_Bool* (i8*, %String)*, i8* } (i8*, %String)*, i8* } %"$equal_envload_587", { { %TName_Bool* (i8*, %String)*, i8* } (i8*, %String)*, i8* }* %equal, align 8 + %"$$fundef_70_env_l1_588" = getelementptr inbounds %"$$fundef_70_env_177", %"$$fundef_70_env_177"* %0, i32 0, i32 1 + %"$l1_envload_589" = load %TName_List_String*, %TName_List_String** %"$$fundef_70_env_l1_588", align 8 %l1 = alloca %TName_List_String*, align 8 - store %TName_List_String* %"$l1_envload_579", %TName_List_String** %l1, align 8 - %"$$fundef_70_env_xs2_580" = getelementptr inbounds %"$$fundef_70_env_177", %"$$fundef_70_env_177"* %0, i32 0, i32 2 - %"$xs2_envload_581" = load %TName_List_String*, %TName_List_String** %"$$fundef_70_env_xs2_580", align 8 + store %TName_List_String* %"$l1_envload_589", %TName_List_String** %l1, align 8 + %"$$fundef_70_env_xs2_590" = getelementptr inbounds %"$$fundef_70_env_177", %"$$fundef_70_env_177"* %0, i32 0, i32 2 + %"$xs2_envload_591" = load %TName_List_String*, %TName_List_String** %"$$fundef_70_env_xs2_590", align 8 %xs2 = alloca %TName_List_String*, align 8 - store %TName_List_String* %"$xs2_envload_581", %TName_List_String** %xs2, align 8 + store %TName_List_String* %"$xs2_envload_591", %TName_List_String** %xs2, align 8 %"$retval_71" = alloca { %TName_List_String* (i8*, { %TName_List_String* (i8*, %TName_List_String*)*, i8* })*, i8* }, align 8 - %"$gasrem_582" = load i64, i64* @_gasrem, align 8 - %"$gascmp_583" = icmp ugt i64 1, %"$gasrem_582" - br i1 %"$gascmp_583", label %"$out_of_gas_584", label %"$have_gas_585" - -"$out_of_gas_584": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_585" - -"$have_gas_585": ; preds = %"$out_of_gas_584", %entry - %"$consume_586" = sub i64 %"$gasrem_582", 1 - store i64 %"$consume_586", i64* @_gasrem, align 8 - %"$$fundef_72_envp_587_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_72_envp_587_salloc" = call i8* @_salloc(i8* %"$$fundef_72_envp_587_load", i64 48) - %"$$fundef_72_envp_587" = bitcast i8* %"$$fundef_72_envp_587_salloc" to %"$$fundef_72_env_176"* - %"$$fundef_72_env_voidp_589" = bitcast %"$$fundef_72_env_176"* %"$$fundef_72_envp_587" to i8* - %"$$fundef_72_cloval_590" = insertvalue { %TName_List_String* (i8*, { %TName_List_String* (i8*, %TName_List_String*)*, i8* })*, i8* } { %TName_List_String* (i8*, { %TName_List_String* (i8*, %TName_List_String*)*, i8* })* bitcast (%TName_List_String* (%"$$fundef_72_env_176"*, { %TName_List_String* (i8*, %TName_List_String*)*, i8* })* @"$fundef_72" to %TName_List_String* (i8*, { %TName_List_String* (i8*, %TName_List_String*)*, i8* })*), i8* undef }, i8* %"$$fundef_72_env_voidp_589", 1 - %"$$fundef_72_env_equal_591" = getelementptr inbounds %"$$fundef_72_env_176", %"$$fundef_72_env_176"* %"$$fundef_72_envp_587", i32 0, i32 0 - %"$equal_592" = load { { %TName_Bool* (i8*, %String)*, i8* } (i8*, %String)*, i8* }, { { %TName_Bool* (i8*, %String)*, i8* } (i8*, %String)*, i8* }* %equal, align 8 - store { { %TName_Bool* (i8*, %String)*, i8* } (i8*, %String)*, i8* } %"$equal_592", { { %TName_Bool* (i8*, %String)*, i8* } (i8*, %String)*, i8* }* %"$$fundef_72_env_equal_591", align 8 - %"$$fundef_72_env_l1_593" = getelementptr inbounds %"$$fundef_72_env_176", %"$$fundef_72_env_176"* %"$$fundef_72_envp_587", i32 0, i32 1 - %"$l1_594" = load %TName_List_String*, %TName_List_String** %l1, align 8 - store %TName_List_String* %"$l1_594", %TName_List_String** %"$$fundef_72_env_l1_593", align 8 - %"$$fundef_72_env_x1_595" = getelementptr inbounds %"$$fundef_72_env_176", %"$$fundef_72_env_176"* %"$$fundef_72_envp_587", i32 0, i32 2 - store %String %1, %String* %"$$fundef_72_env_x1_595", align 8 - %"$$fundef_72_env_xs2_596" = getelementptr inbounds %"$$fundef_72_env_176", %"$$fundef_72_env_176"* %"$$fundef_72_envp_587", i32 0, i32 3 - %"$xs2_597" = load %TName_List_String*, %TName_List_String** %xs2, align 8 - store %TName_List_String* %"$xs2_597", %TName_List_String** %"$$fundef_72_env_xs2_596", align 8 - store { %TName_List_String* (i8*, { %TName_List_String* (i8*, %TName_List_String*)*, i8* })*, i8* } %"$$fundef_72_cloval_590", { %TName_List_String* (i8*, { %TName_List_String* (i8*, %TName_List_String*)*, i8* })*, i8* }* %"$retval_71", align 8, !dbg !22 - %"$$retval_71_598" = load { %TName_List_String* (i8*, { %TName_List_String* (i8*, %TName_List_String*)*, i8* })*, i8* }, { %TName_List_String* (i8*, { %TName_List_String* (i8*, %TName_List_String*)*, i8* })*, i8* }* %"$retval_71", align 8 - ret { %TName_List_String* (i8*, { %TName_List_String* (i8*, %TName_List_String*)*, i8* })*, i8* } %"$$retval_71_598" + %"$gasrem_592" = load i64, i64* @_gasrem, align 8 + %"$gascmp_593" = icmp ugt i64 1, %"$gasrem_592" + br i1 %"$gascmp_593", label %"$out_of_gas_594", label %"$have_gas_595" + +"$out_of_gas_594": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_595" + +"$have_gas_595": ; preds = %"$out_of_gas_594", %entry + %"$consume_596" = sub i64 %"$gasrem_592", 1 + store i64 %"$consume_596", i64* @_gasrem, align 8 + %"$$fundef_72_envp_597_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_72_envp_597_salloc" = call i8* @_salloc(i8* %"$$fundef_72_envp_597_load", i64 48) + %"$$fundef_72_envp_597" = bitcast i8* %"$$fundef_72_envp_597_salloc" to %"$$fundef_72_env_176"* + %"$$fundef_72_env_voidp_599" = bitcast %"$$fundef_72_env_176"* %"$$fundef_72_envp_597" to i8* + %"$$fundef_72_cloval_600" = insertvalue { %TName_List_String* (i8*, { %TName_List_String* (i8*, %TName_List_String*)*, i8* })*, i8* } { %TName_List_String* (i8*, { %TName_List_String* (i8*, %TName_List_String*)*, i8* })* bitcast (%TName_List_String* (%"$$fundef_72_env_176"*, { %TName_List_String* (i8*, %TName_List_String*)*, i8* })* @"$fundef_72" to %TName_List_String* (i8*, { %TName_List_String* (i8*, %TName_List_String*)*, i8* })*), i8* undef }, i8* %"$$fundef_72_env_voidp_599", 1 + %"$$fundef_72_env_equal_601" = getelementptr inbounds %"$$fundef_72_env_176", %"$$fundef_72_env_176"* %"$$fundef_72_envp_597", i32 0, i32 0 + %"$equal_602" = load { { %TName_Bool* (i8*, %String)*, i8* } (i8*, %String)*, i8* }, { { %TName_Bool* (i8*, %String)*, i8* } (i8*, %String)*, i8* }* %equal, align 8 + store { { %TName_Bool* (i8*, %String)*, i8* } (i8*, %String)*, i8* } %"$equal_602", { { %TName_Bool* (i8*, %String)*, i8* } (i8*, %String)*, i8* }* %"$$fundef_72_env_equal_601", align 8 + %"$$fundef_72_env_l1_603" = getelementptr inbounds %"$$fundef_72_env_176", %"$$fundef_72_env_176"* %"$$fundef_72_envp_597", i32 0, i32 1 + %"$l1_604" = load %TName_List_String*, %TName_List_String** %l1, align 8 + store %TName_List_String* %"$l1_604", %TName_List_String** %"$$fundef_72_env_l1_603", align 8 + %"$$fundef_72_env_x1_605" = getelementptr inbounds %"$$fundef_72_env_176", %"$$fundef_72_env_176"* %"$$fundef_72_envp_597", i32 0, i32 2 + store %String %1, %String* %"$$fundef_72_env_x1_605", align 8 + %"$$fundef_72_env_xs2_606" = getelementptr inbounds %"$$fundef_72_env_176", %"$$fundef_72_env_176"* %"$$fundef_72_envp_597", i32 0, i32 3 + %"$xs2_607" = load %TName_List_String*, %TName_List_String** %xs2, align 8 + store %TName_List_String* %"$xs2_607", %TName_List_String** %"$$fundef_72_env_xs2_606", align 8 + store { %TName_List_String* (i8*, { %TName_List_String* (i8*, %TName_List_String*)*, i8* })*, i8* } %"$$fundef_72_cloval_600", { %TName_List_String* (i8*, { %TName_List_String* (i8*, %TName_List_String*)*, i8* })*, i8* }* %"$retval_71", align 8, !dbg !34 + %"$$retval_71_608" = load { %TName_List_String* (i8*, { %TName_List_String* (i8*, %TName_List_String*)*, i8* })*, i8* }, { %TName_List_String* (i8*, { %TName_List_String* (i8*, %TName_List_String*)*, i8* })*, i8* }* %"$retval_71", align 8 + ret { %TName_List_String* (i8*, { %TName_List_String* (i8*, %TName_List_String*)*, i8* })*, i8* } %"$$retval_71_608" } -define internal { { %TName_List_String* (i8*, { %TName_List_String* (i8*, %TName_List_String*)*, i8* })*, i8* } (i8*, %String)*, i8* } @"$fundef_68"(%"$$fundef_68_env_178"* %0, %TName_List_String* %1) !dbg !23 { +define internal { { %TName_List_String* (i8*, { %TName_List_String* (i8*, %TName_List_String*)*, i8* })*, i8* } (i8*, %String)*, i8* } @"$fundef_68"(%"$$fundef_68_env_178"* %0, %TName_List_String* %1) !dbg !35 { entry: - %"$$fundef_68_env_equal_557" = getelementptr inbounds %"$$fundef_68_env_178", %"$$fundef_68_env_178"* %0, i32 0, i32 0 - %"$equal_envload_558" = load { { %TName_Bool* (i8*, %String)*, i8* } (i8*, %String)*, i8* }, { { %TName_Bool* (i8*, %String)*, i8* } (i8*, %String)*, i8* }* %"$$fundef_68_env_equal_557", align 8 + %"$xs2_585" = alloca %TName_List_String*, align 8 + store %TName_List_String* %1, %TName_List_String** %"$xs2_585", align 8 + call void @llvm.dbg.declare(metadata %TName_List_String** %"$xs2_585", metadata !36, metadata !DIExpression()), !dbg !37 + %"$$fundef_68_env_equal_566" = getelementptr inbounds %"$$fundef_68_env_178", %"$$fundef_68_env_178"* %0, i32 0, i32 0 + %"$equal_envload_567" = load { { %TName_Bool* (i8*, %String)*, i8* } (i8*, %String)*, i8* }, { { %TName_Bool* (i8*, %String)*, i8* } (i8*, %String)*, i8* }* %"$$fundef_68_env_equal_566", align 8 %equal = alloca { { %TName_Bool* (i8*, %String)*, i8* } (i8*, %String)*, i8* }, align 8 - store { { %TName_Bool* (i8*, %String)*, i8* } (i8*, %String)*, i8* } %"$equal_envload_558", { { %TName_Bool* (i8*, %String)*, i8* } (i8*, %String)*, i8* }* %equal, align 8 - %"$$fundef_68_env_l1_559" = getelementptr inbounds %"$$fundef_68_env_178", %"$$fundef_68_env_178"* %0, i32 0, i32 1 - %"$l1_envload_560" = load %TName_List_String*, %TName_List_String** %"$$fundef_68_env_l1_559", align 8 + store { { %TName_Bool* (i8*, %String)*, i8* } (i8*, %String)*, i8* } %"$equal_envload_567", { { %TName_Bool* (i8*, %String)*, i8* } (i8*, %String)*, i8* }* %equal, align 8 + %"$$fundef_68_env_l1_568" = getelementptr inbounds %"$$fundef_68_env_178", %"$$fundef_68_env_178"* %0, i32 0, i32 1 + %"$l1_envload_569" = load %TName_List_String*, %TName_List_String** %"$$fundef_68_env_l1_568", align 8 %l1 = alloca %TName_List_String*, align 8 - store %TName_List_String* %"$l1_envload_560", %TName_List_String** %l1, align 8 + store %TName_List_String* %"$l1_envload_569", %TName_List_String** %l1, align 8 %"$retval_69" = alloca { { %TName_List_String* (i8*, { %TName_List_String* (i8*, %TName_List_String*)*, i8* })*, i8* } (i8*, %String)*, i8* }, align 8 - %"$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_563": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_564" - -"$have_gas_564": ; preds = %"$out_of_gas_563", %entry - %"$consume_565" = sub i64 %"$gasrem_561", 1 - store i64 %"$consume_565", i64* @_gasrem, align 8 - %"$$fundef_70_envp_566_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_70_envp_566_salloc" = call i8* @_salloc(i8* %"$$fundef_70_envp_566_load", i64 32) - %"$$fundef_70_envp_566" = bitcast i8* %"$$fundef_70_envp_566_salloc" to %"$$fundef_70_env_177"* - %"$$fundef_70_env_voidp_568" = bitcast %"$$fundef_70_env_177"* %"$$fundef_70_envp_566" to i8* - %"$$fundef_70_cloval_569" = insertvalue { { %TName_List_String* (i8*, { %TName_List_String* (i8*, %TName_List_String*)*, i8* })*, i8* } (i8*, %String)*, i8* } { { %TName_List_String* (i8*, { %TName_List_String* (i8*, %TName_List_String*)*, i8* })*, i8* } (i8*, %String)* bitcast ({ %TName_List_String* (i8*, { %TName_List_String* (i8*, %TName_List_String*)*, i8* })*, i8* } (%"$$fundef_70_env_177"*, %String)* @"$fundef_70" to { %TName_List_String* (i8*, { %TName_List_String* (i8*, %TName_List_String*)*, i8* })*, i8* } (i8*, %String)*), i8* undef }, i8* %"$$fundef_70_env_voidp_568", 1 - %"$$fundef_70_env_equal_570" = getelementptr inbounds %"$$fundef_70_env_177", %"$$fundef_70_env_177"* %"$$fundef_70_envp_566", i32 0, i32 0 - %"$equal_571" = load { { %TName_Bool* (i8*, %String)*, i8* } (i8*, %String)*, i8* }, { { %TName_Bool* (i8*, %String)*, i8* } (i8*, %String)*, i8* }* %equal, align 8 - store { { %TName_Bool* (i8*, %String)*, i8* } (i8*, %String)*, i8* } %"$equal_571", { { %TName_Bool* (i8*, %String)*, i8* } (i8*, %String)*, i8* }* %"$$fundef_70_env_equal_570", align 8 - %"$$fundef_70_env_l1_572" = getelementptr inbounds %"$$fundef_70_env_177", %"$$fundef_70_env_177"* %"$$fundef_70_envp_566", i32 0, i32 1 - %"$l1_573" = load %TName_List_String*, %TName_List_String** %l1, align 8 - store %TName_List_String* %"$l1_573", %TName_List_String** %"$$fundef_70_env_l1_572", align 8 - %"$$fundef_70_env_xs2_574" = getelementptr inbounds %"$$fundef_70_env_177", %"$$fundef_70_env_177"* %"$$fundef_70_envp_566", i32 0, i32 2 - store %TName_List_String* %1, %TName_List_String** %"$$fundef_70_env_xs2_574", align 8 - store { { %TName_List_String* (i8*, { %TName_List_String* (i8*, %TName_List_String*)*, i8* })*, i8* } (i8*, %String)*, i8* } %"$$fundef_70_cloval_569", { { %TName_List_String* (i8*, { %TName_List_String* (i8*, %TName_List_String*)*, i8* })*, i8* } (i8*, %String)*, i8* }* %"$retval_69", align 8, !dbg !24 - %"$$retval_69_575" = load { { %TName_List_String* (i8*, { %TName_List_String* (i8*, %TName_List_String*)*, i8* })*, i8* } (i8*, %String)*, i8* }, { { %TName_List_String* (i8*, { %TName_List_String* (i8*, %TName_List_String*)*, i8* })*, i8* } (i8*, %String)*, i8* }* %"$retval_69", align 8 - ret { { %TName_List_String* (i8*, { %TName_List_String* (i8*, %TName_List_String*)*, i8* })*, i8* } (i8*, %String)*, i8* } %"$$retval_69_575" + %"$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" + +"$out_of_gas_572": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_573" + +"$have_gas_573": ; preds = %"$out_of_gas_572", %entry + %"$consume_574" = sub i64 %"$gasrem_570", 1 + store i64 %"$consume_574", i64* @_gasrem, align 8 + %"$$fundef_70_envp_575_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_70_envp_575_salloc" = call i8* @_salloc(i8* %"$$fundef_70_envp_575_load", i64 32) + %"$$fundef_70_envp_575" = bitcast i8* %"$$fundef_70_envp_575_salloc" to %"$$fundef_70_env_177"* + %"$$fundef_70_env_voidp_577" = bitcast %"$$fundef_70_env_177"* %"$$fundef_70_envp_575" to i8* + %"$$fundef_70_cloval_578" = insertvalue { { %TName_List_String* (i8*, { %TName_List_String* (i8*, %TName_List_String*)*, i8* })*, i8* } (i8*, %String)*, i8* } { { %TName_List_String* (i8*, { %TName_List_String* (i8*, %TName_List_String*)*, i8* })*, i8* } (i8*, %String)* bitcast ({ %TName_List_String* (i8*, { %TName_List_String* (i8*, %TName_List_String*)*, i8* })*, i8* } (%"$$fundef_70_env_177"*, %String)* @"$fundef_70" to { %TName_List_String* (i8*, { %TName_List_String* (i8*, %TName_List_String*)*, i8* })*, i8* } (i8*, %String)*), i8* undef }, i8* %"$$fundef_70_env_voidp_577", 1 + %"$$fundef_70_env_equal_579" = getelementptr inbounds %"$$fundef_70_env_177", %"$$fundef_70_env_177"* %"$$fundef_70_envp_575", i32 0, i32 0 + %"$equal_580" = load { { %TName_Bool* (i8*, %String)*, i8* } (i8*, %String)*, i8* }, { { %TName_Bool* (i8*, %String)*, i8* } (i8*, %String)*, i8* }* %equal, align 8 + store { { %TName_Bool* (i8*, %String)*, i8* } (i8*, %String)*, i8* } %"$equal_580", { { %TName_Bool* (i8*, %String)*, i8* } (i8*, %String)*, i8* }* %"$$fundef_70_env_equal_579", align 8 + %"$$fundef_70_env_l1_581" = getelementptr inbounds %"$$fundef_70_env_177", %"$$fundef_70_env_177"* %"$$fundef_70_envp_575", i32 0, i32 1 + %"$l1_582" = load %TName_List_String*, %TName_List_String** %l1, align 8 + store %TName_List_String* %"$l1_582", %TName_List_String** %"$$fundef_70_env_l1_581", align 8 + %"$$fundef_70_env_xs2_583" = getelementptr inbounds %"$$fundef_70_env_177", %"$$fundef_70_env_177"* %"$$fundef_70_envp_575", i32 0, i32 2 + store %TName_List_String* %1, %TName_List_String** %"$$fundef_70_env_xs2_583", align 8 + store { { %TName_List_String* (i8*, { %TName_List_String* (i8*, %TName_List_String*)*, i8* })*, i8* } (i8*, %String)*, i8* } %"$$fundef_70_cloval_578", { { %TName_List_String* (i8*, { %TName_List_String* (i8*, %TName_List_String*)*, i8* })*, i8* } (i8*, %String)*, i8* }* %"$retval_69", align 8, !dbg !38 + %"$$retval_69_584" = load { { %TName_List_String* (i8*, { %TName_List_String* (i8*, %TName_List_String*)*, i8* })*, i8* } (i8*, %String)*, i8* }, { { %TName_List_String* (i8*, { %TName_List_String* (i8*, %TName_List_String*)*, i8* })*, i8* } (i8*, %String)*, i8* }* %"$retval_69", align 8 + ret { { %TName_List_String* (i8*, { %TName_List_String* (i8*, %TName_List_String*)*, i8* })*, i8* } (i8*, %String)*, i8* } %"$$retval_69_584" } -define internal %TName_Bool* @"$fundef_66"(%"$$fundef_66_env_179"* %0, %TName_List_String* %1) !dbg !25 { +define internal %TName_Bool* @"$fundef_66"(%"$$fundef_66_env_179"* %0, %TName_List_String* %1) !dbg !39 { entry: - %"$$fundef_66_env_equal_450" = getelementptr inbounds %"$$fundef_66_env_179", %"$$fundef_66_env_179"* %0, i32 0, i32 0 - %"$equal_envload_451" = load { { %TName_Bool* (i8*, %String)*, i8* } (i8*, %String)*, i8* }, { { %TName_Bool* (i8*, %String)*, i8* } (i8*, %String)*, i8* }* %"$$fundef_66_env_equal_450", align 8 + %"$l2_565" = alloca %TName_List_String*, align 8 + store %TName_List_String* %1, %TName_List_String** %"$l2_565", align 8 + call void @llvm.dbg.declare(metadata %TName_List_String** %"$l2_565", metadata !40, metadata !DIExpression()), !dbg !41 + %"$$fundef_66_env_equal_458" = getelementptr inbounds %"$$fundef_66_env_179", %"$$fundef_66_env_179"* %0, i32 0, i32 0 + %"$equal_envload_459" = load { { %TName_Bool* (i8*, %String)*, i8* } (i8*, %String)*, i8* }, { { %TName_Bool* (i8*, %String)*, i8* } (i8*, %String)*, i8* }* %"$$fundef_66_env_equal_458", align 8 %equal = alloca { { %TName_Bool* (i8*, %String)*, i8* } (i8*, %String)*, i8* }, align 8 - store { { %TName_Bool* (i8*, %String)*, i8* } (i8*, %String)*, i8* } %"$equal_envload_451", { { %TName_Bool* (i8*, %String)*, i8* } (i8*, %String)*, i8* }* %equal, align 8 - %"$$fundef_66_env_l1_452" = getelementptr inbounds %"$$fundef_66_env_179", %"$$fundef_66_env_179"* %0, i32 0, i32 1 - %"$l1_envload_453" = load %TName_List_String*, %TName_List_String** %"$$fundef_66_env_l1_452", align 8 + store { { %TName_Bool* (i8*, %String)*, i8* } (i8*, %String)*, i8* } %"$equal_envload_459", { { %TName_Bool* (i8*, %String)*, i8* } (i8*, %String)*, i8* }* %equal, align 8 + %"$$fundef_66_env_l1_460" = getelementptr inbounds %"$$fundef_66_env_179", %"$$fundef_66_env_179"* %0, i32 0, i32 1 + %"$l1_envload_461" = load %TName_List_String*, %TName_List_String** %"$$fundef_66_env_l1_460", align 8 %l1 = alloca %TName_List_String*, align 8 - store %TName_List_String* %"$l1_envload_453", %TName_List_String** %l1, align 8 - %"$$fundef_66_env_list_foldk_454" = getelementptr inbounds %"$$fundef_66_env_179", %"$$fundef_66_env_179"* %0, i32 0, i32 2 - %"$list_foldk_envload_455" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_66_env_list_foldk_454", align 8 + store %TName_List_String* %"$l1_envload_461", %TName_List_String** %l1, align 8 + %"$$fundef_66_env_list_foldk_462" = getelementptr inbounds %"$$fundef_66_env_179", %"$$fundef_66_env_179"* %0, i32 0, i32 2 + %"$list_foldk_envload_463" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_66_env_list_foldk_462", align 8 %list_foldk = alloca { i8*, i8* }*, align 8 - store { i8*, i8* }* %"$list_foldk_envload_455", { i8*, i8* }** %list_foldk, align 8 + store { i8*, i8* }* %"$list_foldk_envload_463", { i8*, i8* }** %list_foldk, align 8 %"$retval_67" = alloca %TName_Bool*, align 8 - %"$gasrem_456" = load i64, i64* @_gasrem, align 8 - %"$gascmp_457" = icmp ugt i64 1, %"$gasrem_456" - br i1 %"$gascmp_457", label %"$out_of_gas_458", label %"$have_gas_459" + call void @llvm.dbg.declare(metadata %TName_Bool** %"$retval_67", metadata !42, metadata !DIExpression()), !dbg !43 + %"$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_458": ; preds = %entry +"$out_of_gas_466": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_459" + br label %"$have_gas_467" -"$have_gas_459": ; preds = %"$out_of_gas_458", %entry - %"$consume_460" = sub i64 %"$gasrem_456", 1 - store i64 %"$consume_460", i64* @_gasrem, align 8 +"$have_gas_467": ; preds = %"$out_of_gas_466", %entry + %"$consume_468" = sub i64 %"$gasrem_464", 1 + store i64 %"$consume_468", i64* @_gasrem, align 8 %foldk = alloca { { { %TName_List_String* (i8*, %TName_List_String*)*, i8* } (i8*, %TName_List_String*)*, i8* } (i8*, { { { %TName_List_String* (i8*, { %TName_List_String* (i8*, %TName_List_String*)*, i8* })*, i8* } (i8*, %String)*, i8* } (i8*, %TName_List_String*)*, i8* })*, i8* }, 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_459" - call void @_out_of_gas() - br label %"$have_gas_464" - -"$have_gas_464": ; preds = %"$out_of_gas_463", %"$have_gas_459" - %"$consume_465" = sub i64 %"$gasrem_461", 1 - store i64 %"$consume_465", i64* @_gasrem, align 8 - %"$list_foldk_466" = load { i8*, i8* }*, { i8*, i8* }** %list_foldk, align 8 - %"$list_foldk_467" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$list_foldk_466", i32 0 - %"$list_foldk_468" = bitcast { i8*, i8* }* %"$list_foldk_467" to { { i8*, i8* }* (i8*)*, i8* }* - %"$list_foldk_469" = load { { i8*, i8* }* (i8*)*, i8* }, { { i8*, i8* }* (i8*)*, i8* }* %"$list_foldk_468", align 8 - %"$list_foldk_fptr_470" = extractvalue { { i8*, i8* }* (i8*)*, i8* } %"$list_foldk_469", 0 - %"$list_foldk_envptr_471" = extractvalue { { i8*, i8* }* (i8*)*, i8* } %"$list_foldk_469", 1 - %"$list_foldk_call_472" = call { i8*, i8* }* %"$list_foldk_fptr_470"(i8* %"$list_foldk_envptr_471"), !dbg !26 - %"$list_foldk_473" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$list_foldk_call_472", i32 1 - %"$list_foldk_474" = bitcast { i8*, i8* }* %"$list_foldk_473" to { { { { %TName_List_String* (i8*, %TName_List_String*)*, i8* } (i8*, %TName_List_String*)*, i8* } (i8*, { { { %TName_List_String* (i8*, { %TName_List_String* (i8*, %TName_List_String*)*, i8* })*, i8* } (i8*, %String)*, i8* } (i8*, %TName_List_String*)*, i8* })*, i8* } (i8*)*, i8* }* - %"$list_foldk_475" = load { { { { %TName_List_String* (i8*, %TName_List_String*)*, i8* } (i8*, %TName_List_String*)*, i8* } (i8*, { { { %TName_List_String* (i8*, { %TName_List_String* (i8*, %TName_List_String*)*, i8* })*, i8* } (i8*, %String)*, i8* } (i8*, %TName_List_String*)*, i8* })*, i8* } (i8*)*, i8* }, { { { { %TName_List_String* (i8*, %TName_List_String*)*, i8* } (i8*, %TName_List_String*)*, i8* } (i8*, { { { %TName_List_String* (i8*, { %TName_List_String* (i8*, %TName_List_String*)*, i8* })*, i8* } (i8*, %String)*, i8* } (i8*, %TName_List_String*)*, i8* })*, i8* } (i8*)*, i8* }* %"$list_foldk_474", align 8 - %"$list_foldk_fptr_476" = extractvalue { { { { %TName_List_String* (i8*, %TName_List_String*)*, i8* } (i8*, %TName_List_String*)*, i8* } (i8*, { { { %TName_List_String* (i8*, { %TName_List_String* (i8*, %TName_List_String*)*, i8* })*, i8* } (i8*, %String)*, i8* } (i8*, %TName_List_String*)*, i8* })*, i8* } (i8*)*, i8* } %"$list_foldk_475", 0 - %"$list_foldk_envptr_477" = extractvalue { { { { %TName_List_String* (i8*, %TName_List_String*)*, i8* } (i8*, %TName_List_String*)*, i8* } (i8*, { { { %TName_List_String* (i8*, { %TName_List_String* (i8*, %TName_List_String*)*, i8* })*, i8* } (i8*, %String)*, i8* } (i8*, %TName_List_String*)*, i8* })*, i8* } (i8*)*, i8* } %"$list_foldk_475", 1 - %"$list_foldk_call_478" = call { { { %TName_List_String* (i8*, %TName_List_String*)*, i8* } (i8*, %TName_List_String*)*, i8* } (i8*, { { { %TName_List_String* (i8*, { %TName_List_String* (i8*, %TName_List_String*)*, i8* })*, i8* } (i8*, %String)*, i8* } (i8*, %TName_List_String*)*, i8* })*, i8* } %"$list_foldk_fptr_476"(i8* %"$list_foldk_envptr_477"), !dbg !26 - store { { { %TName_List_String* (i8*, %TName_List_String*)*, i8* } (i8*, %TName_List_String*)*, i8* } (i8*, { { { %TName_List_String* (i8*, { %TName_List_String* (i8*, %TName_List_String*)*, i8* })*, i8* } (i8*, %String)*, i8* } (i8*, %TName_List_String*)*, i8* })*, i8* } %"$list_foldk_call_478", { { { %TName_List_String* (i8*, %TName_List_String*)*, i8* } (i8*, %TName_List_String*)*, i8* } (i8*, { { { %TName_List_String* (i8*, { %TName_List_String* (i8*, %TName_List_String*)*, i8* })*, i8* } (i8*, %String)*, i8* } (i8*, %TName_List_String*)*, i8* })*, i8* }* %foldk, align 8, !dbg !27 - %"$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 = %"$have_gas_464" - call void @_out_of_gas() - br label %"$have_gas_482" - -"$have_gas_482": ; preds = %"$out_of_gas_481", %"$have_gas_464" - %"$consume_483" = sub i64 %"$gasrem_479", 1 - store i64 %"$consume_483", i64* @_gasrem, 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 + %"$list_foldk_474" = load { i8*, i8* }*, { i8*, i8* }** %list_foldk, align 8 + %"$list_foldk_475" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$list_foldk_474", i32 0 + %"$list_foldk_476" = bitcast { i8*, i8* }* %"$list_foldk_475" to { { i8*, i8* }* (i8*)*, i8* }* + %"$list_foldk_477" = load { { i8*, i8* }* (i8*)*, i8* }, { { i8*, i8* }* (i8*)*, i8* }* %"$list_foldk_476", align 8 + %"$list_foldk_fptr_478" = extractvalue { { i8*, i8* }* (i8*)*, i8* } %"$list_foldk_477", 0 + %"$list_foldk_envptr_479" = extractvalue { { i8*, i8* }* (i8*)*, i8* } %"$list_foldk_477", 1 + %"$list_foldk_call_480" = call { i8*, i8* }* %"$list_foldk_fptr_478"(i8* %"$list_foldk_envptr_479"), !dbg !44 + %"$list_foldk_481" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$list_foldk_call_480", i32 1 + %"$list_foldk_482" = bitcast { i8*, i8* }* %"$list_foldk_481" to { { { { %TName_List_String* (i8*, %TName_List_String*)*, i8* } (i8*, %TName_List_String*)*, i8* } (i8*, { { { %TName_List_String* (i8*, { %TName_List_String* (i8*, %TName_List_String*)*, i8* })*, i8* } (i8*, %String)*, i8* } (i8*, %TName_List_String*)*, i8* })*, i8* } (i8*)*, i8* }* + %"$list_foldk_483" = load { { { { %TName_List_String* (i8*, %TName_List_String*)*, i8* } (i8*, %TName_List_String*)*, i8* } (i8*, { { { %TName_List_String* (i8*, { %TName_List_String* (i8*, %TName_List_String*)*, i8* })*, i8* } (i8*, %String)*, i8* } (i8*, %TName_List_String*)*, i8* })*, i8* } (i8*)*, i8* }, { { { { %TName_List_String* (i8*, %TName_List_String*)*, i8* } (i8*, %TName_List_String*)*, i8* } (i8*, { { { %TName_List_String* (i8*, { %TName_List_String* (i8*, %TName_List_String*)*, i8* })*, i8* } (i8*, %String)*, i8* } (i8*, %TName_List_String*)*, i8* })*, i8* } (i8*)*, i8* }* %"$list_foldk_482", align 8 + %"$list_foldk_fptr_484" = extractvalue { { { { %TName_List_String* (i8*, %TName_List_String*)*, i8* } (i8*, %TName_List_String*)*, i8* } (i8*, { { { %TName_List_String* (i8*, { %TName_List_String* (i8*, %TName_List_String*)*, i8* })*, i8* } (i8*, %String)*, i8* } (i8*, %TName_List_String*)*, i8* })*, i8* } (i8*)*, i8* } %"$list_foldk_483", 0 + %"$list_foldk_envptr_485" = extractvalue { { { { %TName_List_String* (i8*, %TName_List_String*)*, i8* } (i8*, %TName_List_String*)*, i8* } (i8*, { { { %TName_List_String* (i8*, { %TName_List_String* (i8*, %TName_List_String*)*, i8* })*, i8* } (i8*, %String)*, i8* } (i8*, %TName_List_String*)*, i8* })*, i8* } (i8*)*, i8* } %"$list_foldk_483", 1 + %"$list_foldk_call_486" = call { { { %TName_List_String* (i8*, %TName_List_String*)*, i8* } (i8*, %TName_List_String*)*, i8* } (i8*, { { { %TName_List_String* (i8*, { %TName_List_String* (i8*, %TName_List_String*)*, i8* })*, i8* } (i8*, %String)*, i8* } (i8*, %TName_List_String*)*, i8* })*, i8* } %"$list_foldk_fptr_484"(i8* %"$list_foldk_envptr_485"), !dbg !44 + store { { { %TName_List_String* (i8*, %TName_List_String*)*, i8* } (i8*, %TName_List_String*)*, i8* } (i8*, { { { %TName_List_String* (i8*, { %TName_List_String* (i8*, %TName_List_String*)*, i8* })*, i8* } (i8*, %String)*, i8* } (i8*, %TName_List_String*)*, i8* })*, i8* } %"$list_foldk_call_486", { { { %TName_List_String* (i8*, %TName_List_String*)*, i8* } (i8*, %TName_List_String*)*, i8* } (i8*, { { { %TName_List_String* (i8*, { %TName_List_String* (i8*, %TName_List_String*)*, i8* })*, i8* } (i8*, %String)*, i8* } (i8*, %TName_List_String*)*, i8* })*, i8* }* %foldk, align 8, !dbg !45 + %"$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_489": ; preds = %"$have_gas_472" + call void @_out_of_gas() + br label %"$have_gas_490" + +"$have_gas_490": ; preds = %"$out_of_gas_489", %"$have_gas_472" + %"$consume_491" = sub i64 %"$gasrem_487", 1 + store i64 %"$consume_491", i64* @_gasrem, align 8 %iter = alloca { { { %TName_List_String* (i8*, { %TName_List_String* (i8*, %TName_List_String*)*, i8* })*, i8* } (i8*, %String)*, i8* } (i8*, %TName_List_String*)*, i8* }, align 8 - %"$gasrem_484" = load i64, i64* @_gasrem, align 8 - %"$gascmp_485" = icmp ugt i64 1, %"$gasrem_484" - br i1 %"$gascmp_485", label %"$out_of_gas_486", label %"$have_gas_487" - -"$out_of_gas_486": ; preds = %"$have_gas_482" - call void @_out_of_gas() - br label %"$have_gas_487" - -"$have_gas_487": ; preds = %"$out_of_gas_486", %"$have_gas_482" - %"$consume_488" = sub i64 %"$gasrem_484", 1 - store i64 %"$consume_488", i64* @_gasrem, align 8 - %"$$fundef_68_envp_489_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_68_envp_489_salloc" = call i8* @_salloc(i8* %"$$fundef_68_envp_489_load", i64 24) - %"$$fundef_68_envp_489" = bitcast i8* %"$$fundef_68_envp_489_salloc" to %"$$fundef_68_env_178"* - %"$$fundef_68_env_voidp_491" = bitcast %"$$fundef_68_env_178"* %"$$fundef_68_envp_489" to i8* - %"$$fundef_68_cloval_492" = insertvalue { { { %TName_List_String* (i8*, { %TName_List_String* (i8*, %TName_List_String*)*, i8* })*, i8* } (i8*, %String)*, i8* } (i8*, %TName_List_String*)*, i8* } { { { %TName_List_String* (i8*, { %TName_List_String* (i8*, %TName_List_String*)*, i8* })*, i8* } (i8*, %String)*, i8* } (i8*, %TName_List_String*)* bitcast ({ { %TName_List_String* (i8*, { %TName_List_String* (i8*, %TName_List_String*)*, i8* })*, i8* } (i8*, %String)*, i8* } (%"$$fundef_68_env_178"*, %TName_List_String*)* @"$fundef_68" to { { %TName_List_String* (i8*, { %TName_List_String* (i8*, %TName_List_String*)*, i8* })*, i8* } (i8*, %String)*, i8* } (i8*, %TName_List_String*)*), i8* undef }, i8* %"$$fundef_68_env_voidp_491", 1 - %"$$fundef_68_env_equal_493" = getelementptr inbounds %"$$fundef_68_env_178", %"$$fundef_68_env_178"* %"$$fundef_68_envp_489", i32 0, i32 0 - %"$equal_494" = load { { %TName_Bool* (i8*, %String)*, i8* } (i8*, %String)*, i8* }, { { %TName_Bool* (i8*, %String)*, i8* } (i8*, %String)*, i8* }* %equal, align 8 - store { { %TName_Bool* (i8*, %String)*, i8* } (i8*, %String)*, i8* } %"$equal_494", { { %TName_Bool* (i8*, %String)*, i8* } (i8*, %String)*, i8* }* %"$$fundef_68_env_equal_493", align 8 - %"$$fundef_68_env_l1_495" = getelementptr inbounds %"$$fundef_68_env_178", %"$$fundef_68_env_178"* %"$$fundef_68_envp_489", i32 0, i32 1 - %"$l1_496" = load %TName_List_String*, %TName_List_String** %l1, align 8 - store %TName_List_String* %"$l1_496", %TName_List_String** %"$$fundef_68_env_l1_495", align 8 - store { { { %TName_List_String* (i8*, { %TName_List_String* (i8*, %TName_List_String*)*, i8* })*, i8* } (i8*, %String)*, i8* } (i8*, %TName_List_String*)*, i8* } %"$$fundef_68_cloval_492", { { { %TName_List_String* (i8*, { %TName_List_String* (i8*, %TName_List_String*)*, i8* })*, i8* } (i8*, %String)*, i8* } (i8*, %TName_List_String*)*, i8* }* %iter, align 8, !dbg !28 - %"$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_499": ; preds = %"$have_gas_487" - call void @_out_of_gas() - br label %"$have_gas_500" - -"$have_gas_500": ; preds = %"$out_of_gas_499", %"$have_gas_487" - %"$consume_501" = sub i64 %"$gasrem_497", 1 - store i64 %"$consume_501", 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_494": ; preds = %"$have_gas_490" + call void @_out_of_gas() + br label %"$have_gas_495" + +"$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 + %"$$fundef_68_envp_497_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_68_envp_497_salloc" = call i8* @_salloc(i8* %"$$fundef_68_envp_497_load", i64 24) + %"$$fundef_68_envp_497" = bitcast i8* %"$$fundef_68_envp_497_salloc" to %"$$fundef_68_env_178"* + %"$$fundef_68_env_voidp_499" = bitcast %"$$fundef_68_env_178"* %"$$fundef_68_envp_497" to i8* + %"$$fundef_68_cloval_500" = insertvalue { { { %TName_List_String* (i8*, { %TName_List_String* (i8*, %TName_List_String*)*, i8* })*, i8* } (i8*, %String)*, i8* } (i8*, %TName_List_String*)*, i8* } { { { %TName_List_String* (i8*, { %TName_List_String* (i8*, %TName_List_String*)*, i8* })*, i8* } (i8*, %String)*, i8* } (i8*, %TName_List_String*)* bitcast ({ { %TName_List_String* (i8*, { %TName_List_String* (i8*, %TName_List_String*)*, i8* })*, i8* } (i8*, %String)*, i8* } (%"$$fundef_68_env_178"*, %TName_List_String*)* @"$fundef_68" to { { %TName_List_String* (i8*, { %TName_List_String* (i8*, %TName_List_String*)*, i8* })*, i8* } (i8*, %String)*, i8* } (i8*, %TName_List_String*)*), i8* undef }, i8* %"$$fundef_68_env_voidp_499", 1 + %"$$fundef_68_env_equal_501" = getelementptr inbounds %"$$fundef_68_env_178", %"$$fundef_68_env_178"* %"$$fundef_68_envp_497", i32 0, i32 0 + %"$equal_502" = load { { %TName_Bool* (i8*, %String)*, i8* } (i8*, %String)*, i8* }, { { %TName_Bool* (i8*, %String)*, i8* } (i8*, %String)*, i8* }* %equal, align 8 + store { { %TName_Bool* (i8*, %String)*, i8* } (i8*, %String)*, i8* } %"$equal_502", { { %TName_Bool* (i8*, %String)*, i8* } (i8*, %String)*, i8* }* %"$$fundef_68_env_equal_501", align 8 + %"$$fundef_68_env_l1_503" = getelementptr inbounds %"$$fundef_68_env_178", %"$$fundef_68_env_178"* %"$$fundef_68_envp_497", i32 0, i32 1 + %"$l1_504" = load %TName_List_String*, %TName_List_String** %l1, align 8 + store %TName_List_String* %"$l1_504", %TName_List_String** %"$$fundef_68_env_l1_503", align 8 + store { { { %TName_List_String* (i8*, { %TName_List_String* (i8*, %TName_List_String*)*, i8* })*, i8* } (i8*, %String)*, i8* } (i8*, %TName_List_String*)*, i8* } %"$$fundef_68_cloval_500", { { { %TName_List_String* (i8*, { %TName_List_String* (i8*, %TName_List_String*)*, i8* })*, i8* } (i8*, %String)*, i8* } (i8*, %TName_List_String*)*, i8* }* %iter, align 8, !dbg !46 + %"$gasrem_505" = load i64, i64* @_gasrem, align 8 + %"$gascmp_506" = icmp ugt i64 1, %"$gasrem_505" + br i1 %"$gascmp_506", label %"$out_of_gas_507", label %"$have_gas_508" + +"$out_of_gas_507": ; preds = %"$have_gas_495" + call void @_out_of_gas() + br label %"$have_gas_508" + +"$have_gas_508": ; preds = %"$out_of_gas_507", %"$have_gas_495" + %"$consume_509" = sub i64 %"$gasrem_505", 1 + store i64 %"$consume_509", i64* @_gasrem, align 8 %remaining = alloca %TName_List_String*, 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" + call void @llvm.dbg.declare(metadata %TName_List_String** %remaining, metadata !47, metadata !DIExpression()), !dbg !48 + %"$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_504": ; preds = %"$have_gas_500" +"$out_of_gas_512": ; preds = %"$have_gas_508" call void @_out_of_gas() - br label %"$have_gas_505" + br label %"$have_gas_513" -"$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 +"$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 %"$foldk_13" = alloca { { %TName_List_String* (i8*, %TName_List_String*)*, i8* } (i8*, %TName_List_String*)*, i8* }, align 8 - %"$foldk_507" = load { { { %TName_List_String* (i8*, %TName_List_String*)*, i8* } (i8*, %TName_List_String*)*, i8* } (i8*, { { { %TName_List_String* (i8*, { %TName_List_String* (i8*, %TName_List_String*)*, i8* })*, i8* } (i8*, %String)*, i8* } (i8*, %TName_List_String*)*, i8* })*, i8* }, { { { %TName_List_String* (i8*, %TName_List_String*)*, i8* } (i8*, %TName_List_String*)*, i8* } (i8*, { { { %TName_List_String* (i8*, { %TName_List_String* (i8*, %TName_List_String*)*, i8* })*, i8* } (i8*, %String)*, i8* } (i8*, %TName_List_String*)*, i8* })*, i8* }* %foldk, align 8 - %"$foldk_fptr_508" = extractvalue { { { %TName_List_String* (i8*, %TName_List_String*)*, i8* } (i8*, %TName_List_String*)*, i8* } (i8*, { { { %TName_List_String* (i8*, { %TName_List_String* (i8*, %TName_List_String*)*, i8* })*, i8* } (i8*, %String)*, i8* } (i8*, %TName_List_String*)*, i8* })*, i8* } %"$foldk_507", 0 - %"$foldk_envptr_509" = extractvalue { { { %TName_List_String* (i8*, %TName_List_String*)*, i8* } (i8*, %TName_List_String*)*, i8* } (i8*, { { { %TName_List_String* (i8*, { %TName_List_String* (i8*, %TName_List_String*)*, i8* })*, i8* } (i8*, %String)*, i8* } (i8*, %TName_List_String*)*, i8* })*, i8* } %"$foldk_507", 1 - %"$iter_510" = load { { { %TName_List_String* (i8*, { %TName_List_String* (i8*, %TName_List_String*)*, i8* })*, i8* } (i8*, %String)*, i8* } (i8*, %TName_List_String*)*, i8* }, { { { %TName_List_String* (i8*, { %TName_List_String* (i8*, %TName_List_String*)*, i8* })*, i8* } (i8*, %String)*, i8* } (i8*, %TName_List_String*)*, i8* }* %iter, align 8 - %"$foldk_call_511" = call { { %TName_List_String* (i8*, %TName_List_String*)*, i8* } (i8*, %TName_List_String*)*, i8* } %"$foldk_fptr_508"(i8* %"$foldk_envptr_509", { { { %TName_List_String* (i8*, { %TName_List_String* (i8*, %TName_List_String*)*, i8* })*, i8* } (i8*, %String)*, i8* } (i8*, %TName_List_String*)*, i8* } %"$iter_510"), !dbg !29 - store { { %TName_List_String* (i8*, %TName_List_String*)*, i8* } (i8*, %TName_List_String*)*, i8* } %"$foldk_call_511", { { %TName_List_String* (i8*, %TName_List_String*)*, i8* } (i8*, %TName_List_String*)*, i8* }* %"$foldk_13", align 8, !dbg !29 + %"$foldk_515" = load { { { %TName_List_String* (i8*, %TName_List_String*)*, i8* } (i8*, %TName_List_String*)*, i8* } (i8*, { { { %TName_List_String* (i8*, { %TName_List_String* (i8*, %TName_List_String*)*, i8* })*, i8* } (i8*, %String)*, i8* } (i8*, %TName_List_String*)*, i8* })*, i8* }, { { { %TName_List_String* (i8*, %TName_List_String*)*, i8* } (i8*, %TName_List_String*)*, i8* } (i8*, { { { %TName_List_String* (i8*, { %TName_List_String* (i8*, %TName_List_String*)*, i8* })*, i8* } (i8*, %String)*, i8* } (i8*, %TName_List_String*)*, i8* })*, i8* }* %foldk, align 8 + %"$foldk_fptr_516" = extractvalue { { { %TName_List_String* (i8*, %TName_List_String*)*, i8* } (i8*, %TName_List_String*)*, i8* } (i8*, { { { %TName_List_String* (i8*, { %TName_List_String* (i8*, %TName_List_String*)*, i8* })*, i8* } (i8*, %String)*, i8* } (i8*, %TName_List_String*)*, i8* })*, i8* } %"$foldk_515", 0 + %"$foldk_envptr_517" = extractvalue { { { %TName_List_String* (i8*, %TName_List_String*)*, i8* } (i8*, %TName_List_String*)*, i8* } (i8*, { { { %TName_List_String* (i8*, { %TName_List_String* (i8*, %TName_List_String*)*, i8* })*, i8* } (i8*, %String)*, i8* } (i8*, %TName_List_String*)*, i8* })*, i8* } %"$foldk_515", 1 + %"$iter_518" = load { { { %TName_List_String* (i8*, { %TName_List_String* (i8*, %TName_List_String*)*, i8* })*, i8* } (i8*, %String)*, i8* } (i8*, %TName_List_String*)*, i8* }, { { { %TName_List_String* (i8*, { %TName_List_String* (i8*, %TName_List_String*)*, i8* })*, i8* } (i8*, %String)*, i8* } (i8*, %TName_List_String*)*, i8* }* %iter, align 8 + %"$foldk_call_519" = call { { %TName_List_String* (i8*, %TName_List_String*)*, i8* } (i8*, %TName_List_String*)*, i8* } %"$foldk_fptr_516"(i8* %"$foldk_envptr_517", { { { %TName_List_String* (i8*, { %TName_List_String* (i8*, %TName_List_String*)*, i8* })*, i8* } (i8*, %String)*, i8* } (i8*, %TName_List_String*)*, i8* } %"$iter_518"), !dbg !49 + store { { %TName_List_String* (i8*, %TName_List_String*)*, i8* } (i8*, %TName_List_String*)*, i8* } %"$foldk_call_519", { { %TName_List_String* (i8*, %TName_List_String*)*, i8* } (i8*, %TName_List_String*)*, i8* }* %"$foldk_13", align 8, !dbg !49 %"$foldk_14" = alloca { %TName_List_String* (i8*, %TName_List_String*)*, i8* }, align 8 - %"$$foldk_13_512" = load { { %TName_List_String* (i8*, %TName_List_String*)*, i8* } (i8*, %TName_List_String*)*, i8* }, { { %TName_List_String* (i8*, %TName_List_String*)*, i8* } (i8*, %TName_List_String*)*, i8* }* %"$foldk_13", align 8 - %"$$foldk_13_fptr_513" = extractvalue { { %TName_List_String* (i8*, %TName_List_String*)*, i8* } (i8*, %TName_List_String*)*, i8* } %"$$foldk_13_512", 0 - %"$$foldk_13_envptr_514" = extractvalue { { %TName_List_String* (i8*, %TName_List_String*)*, i8* } (i8*, %TName_List_String*)*, i8* } %"$$foldk_13_512", 1 - %"$$foldk_13_call_515" = call { %TName_List_String* (i8*, %TName_List_String*)*, i8* } %"$$foldk_13_fptr_513"(i8* %"$$foldk_13_envptr_514", %TName_List_String* %1), !dbg !29 - store { %TName_List_String* (i8*, %TName_List_String*)*, i8* } %"$$foldk_13_call_515", { %TName_List_String* (i8*, %TName_List_String*)*, i8* }* %"$foldk_14", align 8, !dbg !29 + %"$$foldk_13_520" = load { { %TName_List_String* (i8*, %TName_List_String*)*, i8* } (i8*, %TName_List_String*)*, i8* }, { { %TName_List_String* (i8*, %TName_List_String*)*, i8* } (i8*, %TName_List_String*)*, i8* }* %"$foldk_13", align 8 + %"$$foldk_13_fptr_521" = extractvalue { { %TName_List_String* (i8*, %TName_List_String*)*, i8* } (i8*, %TName_List_String*)*, i8* } %"$$foldk_13_520", 0 + %"$$foldk_13_envptr_522" = extractvalue { { %TName_List_String* (i8*, %TName_List_String*)*, i8* } (i8*, %TName_List_String*)*, i8* } %"$$foldk_13_520", 1 + %"$$foldk_13_call_523" = call { %TName_List_String* (i8*, %TName_List_String*)*, i8* } %"$$foldk_13_fptr_521"(i8* %"$$foldk_13_envptr_522", %TName_List_String* %1), !dbg !49 + store { %TName_List_String* (i8*, %TName_List_String*)*, i8* } %"$$foldk_13_call_523", { %TName_List_String* (i8*, %TName_List_String*)*, i8* }* %"$foldk_14", align 8, !dbg !49 %"$foldk_15" = alloca %TName_List_String*, align 8 - %"$$foldk_14_516" = load { %TName_List_String* (i8*, %TName_List_String*)*, i8* }, { %TName_List_String* (i8*, %TName_List_String*)*, i8* }* %"$foldk_14", align 8 - %"$$foldk_14_fptr_517" = extractvalue { %TName_List_String* (i8*, %TName_List_String*)*, i8* } %"$$foldk_14_516", 0 - %"$$foldk_14_envptr_518" = extractvalue { %TName_List_String* (i8*, %TName_List_String*)*, i8* } %"$$foldk_14_516", 1 - %"$l1_519" = load %TName_List_String*, %TName_List_String** %l1, align 8 - %"$$foldk_14_call_520" = call %TName_List_String* %"$$foldk_14_fptr_517"(i8* %"$$foldk_14_envptr_518", %TName_List_String* %"$l1_519"), !dbg !29 - store %TName_List_String* %"$$foldk_14_call_520", %TName_List_String** %"$foldk_15", align 8, !dbg !29 - %"$$foldk_15_521" = load %TName_List_String*, %TName_List_String** %"$foldk_15", align 8 - store %TName_List_String* %"$$foldk_15_521", %TName_List_String** %remaining, align 8, !dbg !29 - %"$gasrem_522" = load i64, i64* @_gasrem, align 8 - %"$gascmp_523" = icmp ugt i64 2, %"$gasrem_522" - br i1 %"$gascmp_523", label %"$out_of_gas_524", label %"$have_gas_525" - -"$out_of_gas_524": ; preds = %"$have_gas_505" - call void @_out_of_gas() - br label %"$have_gas_525" - -"$have_gas_525": ; preds = %"$out_of_gas_524", %"$have_gas_505" - %"$consume_526" = sub i64 %"$gasrem_522", 2 - store i64 %"$consume_526", i64* @_gasrem, align 8 - %"$remaining_528" = load %TName_List_String*, %TName_List_String** %remaining, align 8 - %"$remaining_tag_529" = getelementptr inbounds %TName_List_String, %TName_List_String* %"$remaining_528", i32 0, i32 0 - %"$remaining_tag_530" = load i8, i8* %"$remaining_tag_529", align 1 - switch i8 %"$remaining_tag_530", label %"$empty_default_531" [ - i8 0, label %"$Cons_532" - i8 1, label %"$Nil_546" - ], !dbg !30 - -"$Cons_532": ; preds = %"$have_gas_525" - %"$remaining_533" = bitcast %TName_List_String* %"$remaining_528" to %CName_Cons_String* - %"$$remaining_2_gep_534" = getelementptr inbounds %CName_Cons_String, %CName_Cons_String* %"$remaining_533", i32 0, i32 1 - %"$$remaining_2_load_535" = load %String, %String* %"$$remaining_2_gep_534", align 8 + call void @llvm.dbg.declare(metadata %TName_List_String** %"$foldk_15", metadata !50, metadata !DIExpression()), !dbg !49 + %"$$foldk_14_524" = load { %TName_List_String* (i8*, %TName_List_String*)*, i8* }, { %TName_List_String* (i8*, %TName_List_String*)*, i8* }* %"$foldk_14", align 8 + %"$$foldk_14_fptr_525" = extractvalue { %TName_List_String* (i8*, %TName_List_String*)*, i8* } %"$$foldk_14_524", 0 + %"$$foldk_14_envptr_526" = extractvalue { %TName_List_String* (i8*, %TName_List_String*)*, i8* } %"$$foldk_14_524", 1 + %"$l1_527" = load %TName_List_String*, %TName_List_String** %l1, align 8 + %"$$foldk_14_call_528" = call %TName_List_String* %"$$foldk_14_fptr_525"(i8* %"$$foldk_14_envptr_526", %TName_List_String* %"$l1_527"), !dbg !49 + store %TName_List_String* %"$$foldk_14_call_528", %TName_List_String** %"$foldk_15", align 8, !dbg !49 + %"$$foldk_15_529" = load %TName_List_String*, %TName_List_String** %"$foldk_15", align 8 + store %TName_List_String* %"$$foldk_15_529", %TName_List_String** %remaining, align 8, !dbg !49 + %"$gasrem_530" = load i64, i64* @_gasrem, align 8 + %"$gascmp_531" = icmp ugt i64 2, %"$gasrem_530" + br i1 %"$gascmp_531", label %"$out_of_gas_532", label %"$have_gas_533" + +"$out_of_gas_532": ; preds = %"$have_gas_513" + call void @_out_of_gas() + br label %"$have_gas_533" + +"$have_gas_533": ; preds = %"$out_of_gas_532", %"$have_gas_513" + %"$consume_534" = sub i64 %"$gasrem_530", 2 + store i64 %"$consume_534", i64* @_gasrem, align 8 + %"$remaining_536" = load %TName_List_String*, %TName_List_String** %remaining, align 8 + %"$remaining_tag_537" = getelementptr inbounds %TName_List_String, %TName_List_String* %"$remaining_536", i32 0, i32 0 + %"$remaining_tag_538" = load i8, i8* %"$remaining_tag_537", align 1 + switch i8 %"$remaining_tag_538", label %"$empty_default_539" [ + i8 0, label %"$Cons_540" + i8 1, label %"$Nil_554" + ], !dbg !51 + +"$Cons_540": ; preds = %"$have_gas_533" + %"$remaining_541" = bitcast %TName_List_String* %"$remaining_536" to %CName_Cons_String* + %"$$remaining_2_gep_542" = getelementptr inbounds %CName_Cons_String, %CName_Cons_String* %"$remaining_541", i32 0, i32 1 + %"$$remaining_2_load_543" = load %String, %String* %"$$remaining_2_gep_542", align 8 %"$remaining_2" = alloca %String, align 8 - store %String %"$$remaining_2_load_535", %String* %"$remaining_2", align 8 - %"$$remaining_3_gep_536" = getelementptr inbounds %CName_Cons_String, %CName_Cons_String* %"$remaining_533", i32 0, i32 2 - %"$$remaining_3_load_537" = load %TName_List_String*, %TName_List_String** %"$$remaining_3_gep_536", align 8 + store %String %"$$remaining_2_load_543", %String* %"$remaining_2", align 8 + %"$$remaining_3_gep_544" = getelementptr inbounds %CName_Cons_String, %CName_Cons_String* %"$remaining_541", i32 0, i32 2 + %"$$remaining_3_load_545" = load %TName_List_String*, %TName_List_String** %"$$remaining_3_gep_544", align 8 %"$remaining_3" = alloca %TName_List_String*, align 8 - store %TName_List_String* %"$$remaining_3_load_537", %TName_List_String** %"$remaining_3", align 8 - %"$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 = %"$Cons_532" - call void @_out_of_gas() - br label %"$have_gas_541" - -"$have_gas_541": ; preds = %"$out_of_gas_540", %"$Cons_532" - %"$consume_542" = sub i64 %"$gasrem_538", 1 - store i64 %"$consume_542", i64* @_gasrem, align 8 - %"$adtval_543_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_543_salloc" = call i8* @_salloc(i8* %"$adtval_543_load", i64 1) - %"$adtval_543" = bitcast i8* %"$adtval_543_salloc" to %CName_False* - %"$adtgep_544" = getelementptr inbounds %CName_False, %CName_False* %"$adtval_543", i32 0, i32 0 - store i8 1, i8* %"$adtgep_544", align 1 - %"$adtptr_545" = bitcast %CName_False* %"$adtval_543" to %TName_Bool* - store %TName_Bool* %"$adtptr_545", %TName_Bool** %"$retval_67", align 8, !dbg !31 - br label %"$matchsucc_527" - -"$Nil_546": ; preds = %"$have_gas_525" - %"$remaining_547" = bitcast %TName_List_String* %"$remaining_528" to %CName_Nil_String* - %"$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 = %"$Nil_546" - call void @_out_of_gas() - br label %"$have_gas_551" - -"$have_gas_551": ; preds = %"$out_of_gas_550", %"$Nil_546" - %"$consume_552" = sub i64 %"$gasrem_548", 1 - store i64 %"$consume_552", i64* @_gasrem, align 8 - %"$adtval_553_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_553_salloc" = call i8* @_salloc(i8* %"$adtval_553_load", i64 1) - %"$adtval_553" = bitcast i8* %"$adtval_553_salloc" to %CName_True* - %"$adtgep_554" = getelementptr inbounds %CName_True, %CName_True* %"$adtval_553", i32 0, i32 0 - store i8 0, i8* %"$adtgep_554", align 1 - %"$adtptr_555" = bitcast %CName_True* %"$adtval_553" to %TName_Bool* - store %TName_Bool* %"$adtptr_555", %TName_Bool** %"$retval_67", align 8, !dbg !34 - br label %"$matchsucc_527" - -"$empty_default_531": ; preds = %"$have_gas_525" - br label %"$matchsucc_527" - -"$matchsucc_527": ; preds = %"$have_gas_551", %"$have_gas_541", %"$empty_default_531" - %"$$retval_67_556" = load %TName_Bool*, %TName_Bool** %"$retval_67", align 8 - ret %TName_Bool* %"$$retval_67_556" + store %TName_List_String* %"$$remaining_3_load_545", %TName_List_String** %"$remaining_3", align 8 + %"$gasrem_546" = load i64, i64* @_gasrem, align 8 + %"$gascmp_547" = icmp ugt i64 1, %"$gasrem_546" + br i1 %"$gascmp_547", label %"$out_of_gas_548", label %"$have_gas_549" + +"$out_of_gas_548": ; preds = %"$Cons_540" + call void @_out_of_gas() + br label %"$have_gas_549" + +"$have_gas_549": ; preds = %"$out_of_gas_548", %"$Cons_540" + %"$consume_550" = sub i64 %"$gasrem_546", 1 + store i64 %"$consume_550", i64* @_gasrem, align 8 + %"$adtval_551_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_551_salloc" = call i8* @_salloc(i8* %"$adtval_551_load", i64 1) + %"$adtval_551" = bitcast i8* %"$adtval_551_salloc" to %CName_False* + %"$adtgep_552" = getelementptr inbounds %CName_False, %CName_False* %"$adtval_551", i32 0, i32 0 + store i8 1, i8* %"$adtgep_552", align 1 + %"$adtptr_553" = bitcast %CName_False* %"$adtval_551" to %TName_Bool* + store %TName_Bool* %"$adtptr_553", %TName_Bool** %"$retval_67", align 8, !dbg !52 + br label %"$matchsucc_535" + +"$Nil_554": ; preds = %"$have_gas_533" + %"$remaining_555" = bitcast %TName_List_String* %"$remaining_536" to %CName_Nil_String* + %"$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 = %"$Nil_554" + call void @_out_of_gas() + br label %"$have_gas_559" + +"$have_gas_559": ; preds = %"$out_of_gas_558", %"$Nil_554" + %"$consume_560" = sub i64 %"$gasrem_556", 1 + store i64 %"$consume_560", i64* @_gasrem, align 8 + %"$adtval_561_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_561_salloc" = call i8* @_salloc(i8* %"$adtval_561_load", i64 1) + %"$adtval_561" = bitcast i8* %"$adtval_561_salloc" to %CName_True* + %"$adtgep_562" = getelementptr inbounds %CName_True, %CName_True* %"$adtval_561", i32 0, i32 0 + store i8 0, i8* %"$adtgep_562", align 1 + %"$adtptr_563" = bitcast %CName_True* %"$adtval_561" to %TName_Bool* + store %TName_Bool* %"$adtptr_563", %TName_Bool** %"$retval_67", align 8, !dbg !55 + br label %"$matchsucc_535" + +"$empty_default_539": ; preds = %"$have_gas_533" + br label %"$matchsucc_535" + +"$matchsucc_535": ; preds = %"$have_gas_559", %"$have_gas_549", %"$empty_default_539" + %"$$retval_67_564" = load %TName_Bool*, %TName_Bool** %"$retval_67", align 8 + ret %TName_Bool* %"$$retval_67_564" } -define internal { %TName_Bool* (i8*, %TName_List_String*)*, i8* } @"$fundef_64"(%"$$fundef_64_env_180"* %0, %TName_List_String* %1) !dbg !36 { +define internal { %TName_Bool* (i8*, %TName_List_String*)*, i8* } @"$fundef_64"(%"$$fundef_64_env_180"* %0, %TName_List_String* %1) !dbg !57 { entry: - %"$$fundef_64_env_equal_431" = getelementptr inbounds %"$$fundef_64_env_180", %"$$fundef_64_env_180"* %0, i32 0, i32 0 - %"$equal_envload_432" = load { { %TName_Bool* (i8*, %String)*, i8* } (i8*, %String)*, i8* }, { { %TName_Bool* (i8*, %String)*, i8* } (i8*, %String)*, i8* }* %"$$fundef_64_env_equal_431", align 8 + %"$l1_457" = alloca %TName_List_String*, align 8 + store %TName_List_String* %1, %TName_List_String** %"$l1_457", align 8 + call void @llvm.dbg.declare(metadata %TName_List_String** %"$l1_457", metadata !58, metadata !DIExpression()), !dbg !59 + %"$$fundef_64_env_equal_438" = getelementptr inbounds %"$$fundef_64_env_180", %"$$fundef_64_env_180"* %0, i32 0, i32 0 + %"$equal_envload_439" = load { { %TName_Bool* (i8*, %String)*, i8* } (i8*, %String)*, i8* }, { { %TName_Bool* (i8*, %String)*, i8* } (i8*, %String)*, i8* }* %"$$fundef_64_env_equal_438", align 8 %equal = alloca { { %TName_Bool* (i8*, %String)*, i8* } (i8*, %String)*, i8* }, align 8 - store { { %TName_Bool* (i8*, %String)*, i8* } (i8*, %String)*, i8* } %"$equal_envload_432", { { %TName_Bool* (i8*, %String)*, i8* } (i8*, %String)*, i8* }* %equal, align 8 - %"$$fundef_64_env_list_foldk_433" = getelementptr inbounds %"$$fundef_64_env_180", %"$$fundef_64_env_180"* %0, i32 0, i32 1 - %"$list_foldk_envload_434" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_64_env_list_foldk_433", align 8 + store { { %TName_Bool* (i8*, %String)*, i8* } (i8*, %String)*, i8* } %"$equal_envload_439", { { %TName_Bool* (i8*, %String)*, i8* } (i8*, %String)*, i8* }* %equal, align 8 + %"$$fundef_64_env_list_foldk_440" = getelementptr inbounds %"$$fundef_64_env_180", %"$$fundef_64_env_180"* %0, i32 0, i32 1 + %"$list_foldk_envload_441" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_64_env_list_foldk_440", align 8 %list_foldk = alloca { i8*, i8* }*, align 8 - store { i8*, i8* }* %"$list_foldk_envload_434", { i8*, i8* }** %list_foldk, align 8 + store { i8*, i8* }* %"$list_foldk_envload_441", { i8*, i8* }** %list_foldk, align 8 %"$retval_65" = alloca { %TName_Bool* (i8*, %TName_List_String*)*, i8* }, 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" - -"$out_of_gas_437": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_438" - -"$have_gas_438": ; preds = %"$out_of_gas_437", %entry - %"$consume_439" = sub i64 %"$gasrem_435", 1 - store i64 %"$consume_439", i64* @_gasrem, align 8 - %"$$fundef_66_envp_440_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_66_envp_440_salloc" = call i8* @_salloc(i8* %"$$fundef_66_envp_440_load", i64 32) - %"$$fundef_66_envp_440" = bitcast i8* %"$$fundef_66_envp_440_salloc" to %"$$fundef_66_env_179"* - %"$$fundef_66_env_voidp_442" = bitcast %"$$fundef_66_env_179"* %"$$fundef_66_envp_440" to i8* - %"$$fundef_66_cloval_443" = insertvalue { %TName_Bool* (i8*, %TName_List_String*)*, i8* } { %TName_Bool* (i8*, %TName_List_String*)* bitcast (%TName_Bool* (%"$$fundef_66_env_179"*, %TName_List_String*)* @"$fundef_66" to %TName_Bool* (i8*, %TName_List_String*)*), i8* undef }, i8* %"$$fundef_66_env_voidp_442", 1 - %"$$fundef_66_env_equal_444" = getelementptr inbounds %"$$fundef_66_env_179", %"$$fundef_66_env_179"* %"$$fundef_66_envp_440", i32 0, i32 0 - %"$equal_445" = load { { %TName_Bool* (i8*, %String)*, i8* } (i8*, %String)*, i8* }, { { %TName_Bool* (i8*, %String)*, i8* } (i8*, %String)*, i8* }* %equal, align 8 - store { { %TName_Bool* (i8*, %String)*, i8* } (i8*, %String)*, i8* } %"$equal_445", { { %TName_Bool* (i8*, %String)*, i8* } (i8*, %String)*, i8* }* %"$$fundef_66_env_equal_444", align 8 - %"$$fundef_66_env_l1_446" = getelementptr inbounds %"$$fundef_66_env_179", %"$$fundef_66_env_179"* %"$$fundef_66_envp_440", i32 0, i32 1 - store %TName_List_String* %1, %TName_List_String** %"$$fundef_66_env_l1_446", align 8 - %"$$fundef_66_env_list_foldk_447" = getelementptr inbounds %"$$fundef_66_env_179", %"$$fundef_66_env_179"* %"$$fundef_66_envp_440", i32 0, i32 2 - %"$list_foldk_448" = load { i8*, i8* }*, { i8*, i8* }** %list_foldk, align 8 - store { i8*, i8* }* %"$list_foldk_448", { i8*, i8* }** %"$$fundef_66_env_list_foldk_447", align 8 - store { %TName_Bool* (i8*, %TName_List_String*)*, i8* } %"$$fundef_66_cloval_443", { %TName_Bool* (i8*, %TName_List_String*)*, i8* }* %"$retval_65", align 8, !dbg !37 - %"$$retval_65_449" = load { %TName_Bool* (i8*, %TName_List_String*)*, i8* }, { %TName_Bool* (i8*, %TName_List_String*)*, i8* }* %"$retval_65", align 8 - ret { %TName_Bool* (i8*, %TName_List_String*)*, i8* } %"$$retval_65_449" + %"$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 = %entry + call void @_out_of_gas() + br label %"$have_gas_445" + +"$have_gas_445": ; preds = %"$out_of_gas_444", %entry + %"$consume_446" = sub i64 %"$gasrem_442", 1 + store i64 %"$consume_446", i64* @_gasrem, align 8 + %"$$fundef_66_envp_447_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_66_envp_447_salloc" = call i8* @_salloc(i8* %"$$fundef_66_envp_447_load", i64 32) + %"$$fundef_66_envp_447" = bitcast i8* %"$$fundef_66_envp_447_salloc" to %"$$fundef_66_env_179"* + %"$$fundef_66_env_voidp_449" = bitcast %"$$fundef_66_env_179"* %"$$fundef_66_envp_447" to i8* + %"$$fundef_66_cloval_450" = insertvalue { %TName_Bool* (i8*, %TName_List_String*)*, i8* } { %TName_Bool* (i8*, %TName_List_String*)* bitcast (%TName_Bool* (%"$$fundef_66_env_179"*, %TName_List_String*)* @"$fundef_66" to %TName_Bool* (i8*, %TName_List_String*)*), i8* undef }, i8* %"$$fundef_66_env_voidp_449", 1 + %"$$fundef_66_env_equal_451" = getelementptr inbounds %"$$fundef_66_env_179", %"$$fundef_66_env_179"* %"$$fundef_66_envp_447", i32 0, i32 0 + %"$equal_452" = load { { %TName_Bool* (i8*, %String)*, i8* } (i8*, %String)*, i8* }, { { %TName_Bool* (i8*, %String)*, i8* } (i8*, %String)*, i8* }* %equal, align 8 + store { { %TName_Bool* (i8*, %String)*, i8* } (i8*, %String)*, i8* } %"$equal_452", { { %TName_Bool* (i8*, %String)*, i8* } (i8*, %String)*, i8* }* %"$$fundef_66_env_equal_451", align 8 + %"$$fundef_66_env_l1_453" = getelementptr inbounds %"$$fundef_66_env_179", %"$$fundef_66_env_179"* %"$$fundef_66_envp_447", i32 0, i32 1 + store %TName_List_String* %1, %TName_List_String** %"$$fundef_66_env_l1_453", align 8 + %"$$fundef_66_env_list_foldk_454" = getelementptr inbounds %"$$fundef_66_env_179", %"$$fundef_66_env_179"* %"$$fundef_66_envp_447", i32 0, i32 2 + %"$list_foldk_455" = load { i8*, i8* }*, { i8*, i8* }** %list_foldk, align 8 + store { i8*, i8* }* %"$list_foldk_455", { i8*, i8* }** %"$$fundef_66_env_list_foldk_454", align 8 + store { %TName_Bool* (i8*, %TName_List_String*)*, i8* } %"$$fundef_66_cloval_450", { %TName_Bool* (i8*, %TName_List_String*)*, i8* }* %"$retval_65", align 8, !dbg !60 + %"$$retval_65_456" = load { %TName_Bool* (i8*, %TName_List_String*)*, i8* }, { %TName_Bool* (i8*, %TName_List_String*)*, i8* }* %"$retval_65", align 8 + ret { %TName_Bool* (i8*, %TName_List_String*)*, i8* } %"$$retval_65_456" } -define internal %TName_Bool* @"$fundef_62"(%"$$fundef_62_env_181"* %0, %String %1) !dbg !38 { +define internal %TName_Bool* @"$fundef_62"(%"$$fundef_62_env_181"* %0, %String %1) !dbg !61 { entry: - %"$$fundef_62_env_x_411" = getelementptr inbounds %"$$fundef_62_env_181", %"$$fundef_62_env_181"* %0, i32 0, i32 0 - %"$x_envload_412" = load %String, %String* %"$$fundef_62_env_x_411", align 8 + %"$y_437" = alloca %String, align 8 + store %String %1, %String* %"$y_437", align 8 + call void @llvm.dbg.declare(metadata %String* %"$y_437", metadata !62, metadata !DIExpression()), !dbg !63 + %"$$fundef_62_env_x_417" = getelementptr inbounds %"$$fundef_62_env_181", %"$$fundef_62_env_181"* %0, i32 0, i32 0 + %"$x_envload_418" = load %String, %String* %"$$fundef_62_env_x_417", align 8 %x = alloca %String, align 8 - store %String %"$x_envload_412", %String* %x, align 8 + store %String %"$x_envload_418", %String* %x, align 8 %"$retval_63" = alloca %TName_Bool*, align 8 - %"$_literal_cost_x_413" = alloca %String, align 8 - %"$x_414" = load %String, %String* %x, align 8 - store %String %"$x_414", %String* %"$_literal_cost_x_413", align 8 - %"$$_literal_cost_x_413_415" = bitcast %String* %"$_literal_cost_x_413" to i8* - %"$_literal_cost_call_416" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_100", i8* %"$$_literal_cost_x_413_415") - %"$_literal_cost_y_417" = alloca %String, align 8 - store %String %1, %String* %"$_literal_cost_y_417", align 8 - %"$$_literal_cost_y_417_418" = bitcast %String* %"$_literal_cost_y_417" to i8* - %"$_literal_cost_call_419" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_100", i8* %"$$_literal_cost_y_417_418") - %"$gasmin_420" = call i64 @llvm.umin.i64(i64 %"$_literal_cost_call_416", i64 %"$_literal_cost_call_419") - %"$gasrem_421" = load i64, i64* @_gasrem, align 8 - %"$gascmp_422" = icmp ugt i64 %"$gasmin_420", %"$gasrem_421" - br i1 %"$gascmp_422", label %"$out_of_gas_423", label %"$have_gas_424" - -"$out_of_gas_423": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_424" - -"$have_gas_424": ; preds = %"$out_of_gas_423", %entry - %"$consume_425" = sub i64 %"$gasrem_421", %"$gasmin_420" - store i64 %"$consume_425", i64* @_gasrem, align 8 - %"$execptr_load_426" = load i8*, i8** @_execptr, align 8 - %"$x_427" = load %String, %String* %x, align 8 - %"$eq_call_428" = call %TName_Bool* @_eq_String(i8* %"$execptr_load_426", %String %"$x_427", %String %1), !dbg !39 - store %TName_Bool* %"$eq_call_428", %TName_Bool** %"$retval_63", align 8, !dbg !39 - %"$$retval_63_430" = load %TName_Bool*, %TName_Bool** %"$retval_63", align 8 - ret %TName_Bool* %"$$retval_63_430" + call void @llvm.dbg.declare(metadata %TName_Bool** %"$retval_63", metadata !64, metadata !DIExpression()), !dbg !65 + %"$_literal_cost_x_419" = alloca %String, align 8 + %"$x_420" = load %String, %String* %x, align 8 + store %String %"$x_420", %String* %"$_literal_cost_x_419", align 8 + %"$$_literal_cost_x_419_421" = bitcast %String* %"$_literal_cost_x_419" to i8* + %"$_literal_cost_call_422" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_100", i8* %"$$_literal_cost_x_419_421") + %"$_literal_cost_y_423" = alloca %String, align 8 + store %String %1, %String* %"$_literal_cost_y_423", align 8 + %"$$_literal_cost_y_423_424" = bitcast %String* %"$_literal_cost_y_423" to i8* + %"$_literal_cost_call_425" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_100", i8* %"$$_literal_cost_y_423_424") + %"$gasmin_426" = call i64 @llvm.umin.i64(i64 %"$_literal_cost_call_422", i64 %"$_literal_cost_call_425") + %"$gasrem_427" = load i64, i64* @_gasrem, align 8 + %"$gascmp_428" = icmp ugt i64 %"$gasmin_426", %"$gasrem_427" + br i1 %"$gascmp_428", label %"$out_of_gas_429", label %"$have_gas_430" + +"$out_of_gas_429": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_430" + +"$have_gas_430": ; preds = %"$out_of_gas_429", %entry + %"$consume_431" = sub i64 %"$gasrem_427", %"$gasmin_426" + store i64 %"$consume_431", i64* @_gasrem, align 8 + %"$execptr_load_432" = load i8*, i8** @_execptr, align 8 + %"$x_433" = load %String, %String* %x, align 8 + %"$eq_call_434" = call %TName_Bool* @_eq_String(i8* %"$execptr_load_432", %String %"$x_433", %String %1), !dbg !65 + store %TName_Bool* %"$eq_call_434", %TName_Bool** %"$retval_63", align 8, !dbg !65 + %"$$retval_63_436" = load %TName_Bool*, %TName_Bool** %"$retval_63", align 8 + ret %TName_Bool* %"$$retval_63_436" } -define internal { %TName_Bool* (i8*, %String)*, i8* } @"$fundef_60"(%"$$fundef_60_env_182"* %0, %String %1) !dbg !40 { +define internal { %TName_Bool* (i8*, %String)*, i8* } @"$fundef_60"(%"$$fundef_60_env_182"* %0, %String %1) !dbg !66 { entry: + %"$x_416" = alloca %String, align 8 + store %String %1, %String* %"$x_416", align 8 + call void @llvm.dbg.declare(metadata %String* %"$x_416", metadata !67, metadata !DIExpression()), !dbg !68 %"$retval_61" = alloca { %TName_Bool* (i8*, %String)*, i8* }, align 8 - %"$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 = %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", 1 - store i64 %"$consume_404", i64* @_gasrem, align 8 - %"$$fundef_62_envp_405_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_62_envp_405_salloc" = call i8* @_salloc(i8* %"$$fundef_62_envp_405_load", i64 16) - %"$$fundef_62_envp_405" = bitcast i8* %"$$fundef_62_envp_405_salloc" to %"$$fundef_62_env_181"* - %"$$fundef_62_env_voidp_407" = bitcast %"$$fundef_62_env_181"* %"$$fundef_62_envp_405" to i8* - %"$$fundef_62_cloval_408" = insertvalue { %TName_Bool* (i8*, %String)*, i8* } { %TName_Bool* (i8*, %String)* bitcast (%TName_Bool* (%"$$fundef_62_env_181"*, %String)* @"$fundef_62" to %TName_Bool* (i8*, %String)*), i8* undef }, i8* %"$$fundef_62_env_voidp_407", 1 - %"$$fundef_62_env_x_409" = getelementptr inbounds %"$$fundef_62_env_181", %"$$fundef_62_env_181"* %"$$fundef_62_envp_405", i32 0, i32 0 - store %String %1, %String* %"$$fundef_62_env_x_409", align 8 - store { %TName_Bool* (i8*, %String)*, i8* } %"$$fundef_62_cloval_408", { %TName_Bool* (i8*, %String)*, i8* }* %"$retval_61", align 8, !dbg !41 - %"$$retval_61_410" = load { %TName_Bool* (i8*, %String)*, i8* }, { %TName_Bool* (i8*, %String)*, i8* }* %"$retval_61", align 8 - ret { %TName_Bool* (i8*, %String)*, i8* } %"$$retval_61_410" + %"$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 = %entry + call void @_out_of_gas() + br label %"$have_gas_408" + +"$have_gas_408": ; preds = %"$out_of_gas_407", %entry + %"$consume_409" = sub i64 %"$gasrem_405", 1 + store i64 %"$consume_409", i64* @_gasrem, align 8 + %"$$fundef_62_envp_410_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_62_envp_410_salloc" = call i8* @_salloc(i8* %"$$fundef_62_envp_410_load", i64 16) + %"$$fundef_62_envp_410" = bitcast i8* %"$$fundef_62_envp_410_salloc" to %"$$fundef_62_env_181"* + %"$$fundef_62_env_voidp_412" = bitcast %"$$fundef_62_env_181"* %"$$fundef_62_envp_410" to i8* + %"$$fundef_62_cloval_413" = insertvalue { %TName_Bool* (i8*, %String)*, i8* } { %TName_Bool* (i8*, %String)* bitcast (%TName_Bool* (%"$$fundef_62_env_181"*, %String)* @"$fundef_62" to %TName_Bool* (i8*, %String)*), i8* undef }, i8* %"$$fundef_62_env_voidp_412", 1 + %"$$fundef_62_env_x_414" = getelementptr inbounds %"$$fundef_62_env_181", %"$$fundef_62_env_181"* %"$$fundef_62_envp_410", i32 0, i32 0 + store %String %1, %String* %"$$fundef_62_env_x_414", align 8 + store { %TName_Bool* (i8*, %String)*, i8* } %"$$fundef_62_cloval_413", { %TName_Bool* (i8*, %String)*, i8* }* %"$retval_61", align 8, !dbg !69 + %"$$retval_61_415" = load { %TName_Bool* (i8*, %String)*, i8* }, { %TName_Bool* (i8*, %String)*, i8* }* %"$retval_61", align 8 + ret { %TName_Bool* (i8*, %String)*, i8* } %"$$retval_61_415" } -define internal %TName_List_String* @"$fundef_58"(%"$$fundef_58_env_183"* %0, %TName_List_String* %1) !dbg !42 { +define internal %TName_List_String* @"$fundef_58"(%"$$fundef_58_env_183"* %0, %TName_List_String* %1) !dbg !70 { entry: - %"$$fundef_58_env_g_380" = getelementptr inbounds %"$$fundef_58_env_183", %"$$fundef_58_env_183"* %0, i32 0, i32 0 - %"$g_envload_381" = load { { %TName_List_String* (i8*, %TName_List_String*)*, i8* } (i8*, %TName_List_String*)*, i8* }, { { %TName_List_String* (i8*, %TName_List_String*)*, i8* } (i8*, %TName_List_String*)*, i8* }* %"$$fundef_58_env_g_380", align 8 + %"$k_404" = alloca %TName_List_String*, align 8 + store %TName_List_String* %1, %TName_List_String** %"$k_404", align 8 + call void @llvm.dbg.declare(metadata %TName_List_String** %"$k_404", metadata !72, metadata !DIExpression()), !dbg !73 + %"$$fundef_58_env_g_384" = getelementptr inbounds %"$$fundef_58_env_183", %"$$fundef_58_env_183"* %0, i32 0, i32 0 + %"$g_envload_385" = load { { %TName_List_String* (i8*, %TName_List_String*)*, i8* } (i8*, %TName_List_String*)*, i8* }, { { %TName_List_String* (i8*, %TName_List_String*)*, i8* } (i8*, %TName_List_String*)*, i8* }* %"$$fundef_58_env_g_384", align 8 %g = alloca { { %TName_List_String* (i8*, %TName_List_String*)*, i8* } (i8*, %TName_List_String*)*, i8* }, align 8 - store { { %TName_List_String* (i8*, %TName_List_String*)*, i8* } (i8*, %TName_List_String*)*, i8* } %"$g_envload_381", { { %TName_List_String* (i8*, %TName_List_String*)*, i8* } (i8*, %TName_List_String*)*, i8* }* %g, align 8 - %"$$fundef_58_env_t_382" = getelementptr inbounds %"$$fundef_58_env_183", %"$$fundef_58_env_183"* %0, i32 0, i32 1 - %"$t_envload_383" = load %TName_List_String*, %TName_List_String** %"$$fundef_58_env_t_382", align 8 + store { { %TName_List_String* (i8*, %TName_List_String*)*, i8* } (i8*, %TName_List_String*)*, i8* } %"$g_envload_385", { { %TName_List_String* (i8*, %TName_List_String*)*, i8* } (i8*, %TName_List_String*)*, i8* }* %g, align 8 + %"$$fundef_58_env_t_386" = getelementptr inbounds %"$$fundef_58_env_183", %"$$fundef_58_env_183"* %0, i32 0, i32 1 + %"$t_envload_387" = load %TName_List_String*, %TName_List_String** %"$$fundef_58_env_t_386", align 8 %t = alloca %TName_List_String*, align 8 - store %TName_List_String* %"$t_envload_383", %TName_List_String** %t, align 8 + store %TName_List_String* %"$t_envload_387", %TName_List_String** %t, align 8 %"$retval_59" = alloca %TName_List_String*, align 8 - %"$gasrem_384" = load i64, i64* @_gasrem, align 8 - %"$gascmp_385" = icmp ugt i64 1, %"$gasrem_384" - br i1 %"$gascmp_385", label %"$out_of_gas_386", label %"$have_gas_387" + call void @llvm.dbg.declare(metadata %TName_List_String** %"$retval_59", metadata !74, metadata !DIExpression()), !dbg !75 + %"$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_386": ; preds = %entry +"$out_of_gas_390": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_387" + br label %"$have_gas_391" -"$have_gas_387": ; preds = %"$out_of_gas_386", %entry - %"$consume_388" = sub i64 %"$gasrem_384", 1 - store i64 %"$consume_388", i64* @_gasrem, align 8 +"$have_gas_391": ; preds = %"$out_of_gas_390", %entry + %"$consume_392" = sub i64 %"$gasrem_388", 1 + store i64 %"$consume_392", i64* @_gasrem, align 8 %"$g_5" = alloca { %TName_List_String* (i8*, %TName_List_String*)*, i8* }, align 8 - %"$g_389" = load { { %TName_List_String* (i8*, %TName_List_String*)*, i8* } (i8*, %TName_List_String*)*, i8* }, { { %TName_List_String* (i8*, %TName_List_String*)*, i8* } (i8*, %TName_List_String*)*, i8* }* %g, align 8 - %"$g_fptr_390" = extractvalue { { %TName_List_String* (i8*, %TName_List_String*)*, i8* } (i8*, %TName_List_String*)*, i8* } %"$g_389", 0 - %"$g_envptr_391" = extractvalue { { %TName_List_String* (i8*, %TName_List_String*)*, i8* } (i8*, %TName_List_String*)*, i8* } %"$g_389", 1 - %"$g_call_392" = call { %TName_List_String* (i8*, %TName_List_String*)*, i8* } %"$g_fptr_390"(i8* %"$g_envptr_391", %TName_List_String* %1), !dbg !44 - store { %TName_List_String* (i8*, %TName_List_String*)*, i8* } %"$g_call_392", { %TName_List_String* (i8*, %TName_List_String*)*, i8* }* %"$g_5", align 8, !dbg !44 + %"$g_393" = load { { %TName_List_String* (i8*, %TName_List_String*)*, i8* } (i8*, %TName_List_String*)*, i8* }, { { %TName_List_String* (i8*, %TName_List_String*)*, i8* } (i8*, %TName_List_String*)*, i8* }* %g, align 8 + %"$g_fptr_394" = extractvalue { { %TName_List_String* (i8*, %TName_List_String*)*, i8* } (i8*, %TName_List_String*)*, i8* } %"$g_393", 0 + %"$g_envptr_395" = extractvalue { { %TName_List_String* (i8*, %TName_List_String*)*, i8* } (i8*, %TName_List_String*)*, i8* } %"$g_393", 1 + %"$g_call_396" = call { %TName_List_String* (i8*, %TName_List_String*)*, i8* } %"$g_fptr_394"(i8* %"$g_envptr_395", %TName_List_String* %1), !dbg !75 + store { %TName_List_String* (i8*, %TName_List_String*)*, i8* } %"$g_call_396", { %TName_List_String* (i8*, %TName_List_String*)*, i8* }* %"$g_5", align 8, !dbg !75 %"$g_6" = alloca %TName_List_String*, align 8 - %"$$g_5_393" = load { %TName_List_String* (i8*, %TName_List_String*)*, i8* }, { %TName_List_String* (i8*, %TName_List_String*)*, i8* }* %"$g_5", align 8 - %"$$g_5_fptr_394" = extractvalue { %TName_List_String* (i8*, %TName_List_String*)*, i8* } %"$$g_5_393", 0 - %"$$g_5_envptr_395" = extractvalue { %TName_List_String* (i8*, %TName_List_String*)*, i8* } %"$$g_5_393", 1 - %"$t_396" = load %TName_List_String*, %TName_List_String** %t, align 8 - %"$$g_5_call_397" = call %TName_List_String* %"$$g_5_fptr_394"(i8* %"$$g_5_envptr_395", %TName_List_String* %"$t_396"), !dbg !44 - store %TName_List_String* %"$$g_5_call_397", %TName_List_String** %"$g_6", align 8, !dbg !44 - %"$$g_6_398" = load %TName_List_String*, %TName_List_String** %"$g_6", align 8 - store %TName_List_String* %"$$g_6_398", %TName_List_String** %"$retval_59", align 8, !dbg !44 - %"$$retval_59_399" = load %TName_List_String*, %TName_List_String** %"$retval_59", align 8 - ret %TName_List_String* %"$$retval_59_399" + call void @llvm.dbg.declare(metadata %TName_List_String** %"$g_6", metadata !76, metadata !DIExpression()), !dbg !75 + %"$$g_5_397" = load { %TName_List_String* (i8*, %TName_List_String*)*, i8* }, { %TName_List_String* (i8*, %TName_List_String*)*, i8* }* %"$g_5", align 8 + %"$$g_5_fptr_398" = extractvalue { %TName_List_String* (i8*, %TName_List_String*)*, i8* } %"$$g_5_397", 0 + %"$$g_5_envptr_399" = extractvalue { %TName_List_String* (i8*, %TName_List_String*)*, i8* } %"$$g_5_397", 1 + %"$t_400" = load %TName_List_String*, %TName_List_String** %t, align 8 + %"$$g_5_call_401" = call %TName_List_String* %"$$g_5_fptr_398"(i8* %"$$g_5_envptr_399", %TName_List_String* %"$t_400"), !dbg !75 + store %TName_List_String* %"$$g_5_call_401", %TName_List_String** %"$g_6", align 8, !dbg !75 + %"$$g_6_402" = load %TName_List_String*, %TName_List_String** %"$g_6", align 8 + store %TName_List_String* %"$$g_6_402", %TName_List_String** %"$retval_59", align 8, !dbg !75 + %"$$retval_59_403" = load %TName_List_String*, %TName_List_String** %"$retval_59", align 8 + ret %TName_List_String* %"$$retval_59_403" } -define internal %TName_List_String* @"$fundef_56"(%"$$fundef_56_env_184"* %0, %TName_List_String* %1) !dbg !45 { +define internal %TName_List_String* @"$fundef_56"(%"$$fundef_56_env_184"* %0, %TName_List_String* %1) !dbg !77 { entry: - %"$$fundef_56_env_f_311" = getelementptr inbounds %"$$fundef_56_env_184", %"$$fundef_56_env_184"* %0, i32 0, i32 0 - %"$f_envload_312" = load { { { %TName_List_String* (i8*, { %TName_List_String* (i8*, %TName_List_String*)*, i8* })*, i8* } (i8*, %String)*, i8* } (i8*, %TName_List_String*)*, i8* }, { { { %TName_List_String* (i8*, { %TName_List_String* (i8*, %TName_List_String*)*, i8* })*, i8* } (i8*, %String)*, i8* } (i8*, %TName_List_String*)*, i8* }* %"$$fundef_56_env_f_311", align 8 + %"$l_383" = alloca %TName_List_String*, align 8 + store %TName_List_String* %1, %TName_List_String** %"$l_383", align 8 + call void @llvm.dbg.declare(metadata %TName_List_String** %"$l_383", metadata !78, metadata !DIExpression()), !dbg !79 + %"$$fundef_56_env_f_314" = getelementptr inbounds %"$$fundef_56_env_184", %"$$fundef_56_env_184"* %0, i32 0, i32 0 + %"$f_envload_315" = load { { { %TName_List_String* (i8*, { %TName_List_String* (i8*, %TName_List_String*)*, i8* })*, i8* } (i8*, %String)*, i8* } (i8*, %TName_List_String*)*, i8* }, { { { %TName_List_String* (i8*, { %TName_List_String* (i8*, %TName_List_String*)*, i8* })*, i8* } (i8*, %String)*, i8* } (i8*, %TName_List_String*)*, i8* }* %"$$fundef_56_env_f_314", align 8 %f = alloca { { { %TName_List_String* (i8*, { %TName_List_String* (i8*, %TName_List_String*)*, i8* })*, i8* } (i8*, %String)*, i8* } (i8*, %TName_List_String*)*, i8* }, align 8 - store { { { %TName_List_String* (i8*, { %TName_List_String* (i8*, %TName_List_String*)*, i8* })*, i8* } (i8*, %String)*, i8* } (i8*, %TName_List_String*)*, i8* } %"$f_envload_312", { { { %TName_List_String* (i8*, { %TName_List_String* (i8*, %TName_List_String*)*, i8* })*, i8* } (i8*, %String)*, i8* } (i8*, %TName_List_String*)*, i8* }* %f, align 8 - %"$$fundef_56_env_g_313" = getelementptr inbounds %"$$fundef_56_env_184", %"$$fundef_56_env_184"* %0, i32 0, i32 1 - %"$g_envload_314" = load { { %TName_List_String* (i8*, %TName_List_String*)*, i8* } (i8*, %TName_List_String*)*, i8* }, { { %TName_List_String* (i8*, %TName_List_String*)*, i8* } (i8*, %TName_List_String*)*, i8* }* %"$$fundef_56_env_g_313", align 8 + store { { { %TName_List_String* (i8*, { %TName_List_String* (i8*, %TName_List_String*)*, i8* })*, i8* } (i8*, %String)*, i8* } (i8*, %TName_List_String*)*, i8* } %"$f_envload_315", { { { %TName_List_String* (i8*, { %TName_List_String* (i8*, %TName_List_String*)*, i8* })*, i8* } (i8*, %String)*, i8* } (i8*, %TName_List_String*)*, i8* }* %f, align 8 + %"$$fundef_56_env_g_316" = getelementptr inbounds %"$$fundef_56_env_184", %"$$fundef_56_env_184"* %0, i32 0, i32 1 + %"$g_envload_317" = load { { %TName_List_String* (i8*, %TName_List_String*)*, i8* } (i8*, %TName_List_String*)*, i8* }, { { %TName_List_String* (i8*, %TName_List_String*)*, i8* } (i8*, %TName_List_String*)*, i8* }* %"$$fundef_56_env_g_316", align 8 %g = alloca { { %TName_List_String* (i8*, %TName_List_String*)*, i8* } (i8*, %TName_List_String*)*, i8* }, align 8 - store { { %TName_List_String* (i8*, %TName_List_String*)*, i8* } (i8*, %TName_List_String*)*, i8* } %"$g_envload_314", { { %TName_List_String* (i8*, %TName_List_String*)*, i8* } (i8*, %TName_List_String*)*, i8* }* %g, align 8 - %"$$fundef_56_env_z_315" = getelementptr inbounds %"$$fundef_56_env_184", %"$$fundef_56_env_184"* %0, i32 0, i32 2 - %"$z_envload_316" = load %TName_List_String*, %TName_List_String** %"$$fundef_56_env_z_315", align 8 + store { { %TName_List_String* (i8*, %TName_List_String*)*, i8* } (i8*, %TName_List_String*)*, i8* } %"$g_envload_317", { { %TName_List_String* (i8*, %TName_List_String*)*, i8* } (i8*, %TName_List_String*)*, i8* }* %g, align 8 + %"$$fundef_56_env_z_318" = getelementptr inbounds %"$$fundef_56_env_184", %"$$fundef_56_env_184"* %0, i32 0, i32 2 + %"$z_envload_319" = load %TName_List_String*, %TName_List_String** %"$$fundef_56_env_z_318", align 8 %z = alloca %TName_List_String*, align 8 - store %TName_List_String* %"$z_envload_316", %TName_List_String** %z, align 8 + store %TName_List_String* %"$z_envload_319", %TName_List_String** %z, align 8 %"$retval_57" = alloca %TName_List_String*, align 8 - %"$gasrem_317" = load i64, i64* @_gasrem, align 8 - %"$gascmp_318" = icmp ugt i64 2, %"$gasrem_317" - br i1 %"$gascmp_318", label %"$out_of_gas_319", label %"$have_gas_320" - -"$out_of_gas_319": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_320" - -"$have_gas_320": ; preds = %"$out_of_gas_319", %entry - %"$consume_321" = sub i64 %"$gasrem_317", 2 - store i64 %"$consume_321", i64* @_gasrem, align 8 - %"$l_tag_323" = getelementptr inbounds %TName_List_String, %TName_List_String* %1, i32 0, i32 0 - %"$l_tag_324" = load i8, i8* %"$l_tag_323", align 1 - switch i8 %"$l_tag_324", label %"$empty_default_325" [ - i8 0, label %"$Cons_326" - i8 1, label %"$Nil_371" - ], !dbg !46 - -"$Cons_326": ; preds = %"$have_gas_320" - %"$l_327" = bitcast %TName_List_String* %1 to %CName_Cons_String* - %"$h_gep_328" = getelementptr inbounds %CName_Cons_String, %CName_Cons_String* %"$l_327", i32 0, i32 1 - %"$h_load_329" = load %String, %String* %"$h_gep_328", align 8 + call void @llvm.dbg.declare(metadata %TName_List_String** %"$retval_57", metadata !80, metadata !DIExpression()), !dbg !81 + %"$gasrem_320" = load i64, i64* @_gasrem, align 8 + %"$gascmp_321" = icmp ugt i64 2, %"$gasrem_320" + br i1 %"$gascmp_321", label %"$out_of_gas_322", label %"$have_gas_323" + +"$out_of_gas_322": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_323" + +"$have_gas_323": ; preds = %"$out_of_gas_322", %entry + %"$consume_324" = sub i64 %"$gasrem_320", 2 + store i64 %"$consume_324", i64* @_gasrem, align 8 + %"$l_tag_326" = getelementptr inbounds %TName_List_String, %TName_List_String* %1, i32 0, i32 0 + %"$l_tag_327" = load i8, i8* %"$l_tag_326", align 1 + switch i8 %"$l_tag_327", label %"$empty_default_328" [ + i8 0, label %"$Cons_329" + i8 1, label %"$Nil_374" + ], !dbg !81 + +"$Cons_329": ; preds = %"$have_gas_323" + %"$l_330" = bitcast %TName_List_String* %1 to %CName_Cons_String* + %"$h_gep_331" = getelementptr inbounds %CName_Cons_String, %CName_Cons_String* %"$l_330", i32 0, i32 1 + %"$h_load_332" = load %String, %String* %"$h_gep_331", align 8 %h = alloca %String, align 8 - store %String %"$h_load_329", %String* %h, align 8 - %"$t_gep_330" = getelementptr inbounds %CName_Cons_String, %CName_Cons_String* %"$l_327", i32 0, i32 2 - %"$t_load_331" = load %TName_List_String*, %TName_List_String** %"$t_gep_330", align 8 + store %String %"$h_load_332", %String* %h, align 8 + %"$t_gep_333" = getelementptr inbounds %CName_Cons_String, %CName_Cons_String* %"$l_330", i32 0, i32 2 + %"$t_load_334" = load %TName_List_String*, %TName_List_String** %"$t_gep_333", align 8 %t = alloca %TName_List_String*, align 8 - store %TName_List_String* %"$t_load_331", %TName_List_String** %t, align 8 - %"$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" + store %TName_List_String* %"$t_load_334", %TName_List_String** %t, 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_334": ; preds = %"$Cons_326" +"$out_of_gas_337": ; preds = %"$Cons_329" call void @_out_of_gas() - br label %"$have_gas_335" + br label %"$have_gas_338" -"$have_gas_335": ; preds = %"$out_of_gas_334", %"$Cons_326" - %"$consume_336" = sub i64 %"$gasrem_332", 1 - store i64 %"$consume_336", i64* @_gasrem, align 8 +"$have_gas_338": ; preds = %"$out_of_gas_337", %"$Cons_329" + %"$consume_339" = sub i64 %"$gasrem_335", 1 + store i64 %"$consume_339", i64* @_gasrem, align 8 %partial = alloca { %TName_List_String* (i8*, %TName_List_String*)*, i8* }, 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_339": ; preds = %"$have_gas_335" - call void @_out_of_gas() - br label %"$have_gas_340" - -"$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 - %"$$fundef_58_envp_342_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_58_envp_342_salloc" = call i8* @_salloc(i8* %"$$fundef_58_envp_342_load", i64 24) - %"$$fundef_58_envp_342" = bitcast i8* %"$$fundef_58_envp_342_salloc" to %"$$fundef_58_env_183"* - %"$$fundef_58_env_voidp_344" = bitcast %"$$fundef_58_env_183"* %"$$fundef_58_envp_342" to i8* - %"$$fundef_58_cloval_345" = insertvalue { %TName_List_String* (i8*, %TName_List_String*)*, i8* } { %TName_List_String* (i8*, %TName_List_String*)* bitcast (%TName_List_String* (%"$$fundef_58_env_183"*, %TName_List_String*)* @"$fundef_58" to %TName_List_String* (i8*, %TName_List_String*)*), i8* undef }, i8* %"$$fundef_58_env_voidp_344", 1 - %"$$fundef_58_env_g_346" = getelementptr inbounds %"$$fundef_58_env_183", %"$$fundef_58_env_183"* %"$$fundef_58_envp_342", i32 0, i32 0 - %"$g_347" = load { { %TName_List_String* (i8*, %TName_List_String*)*, i8* } (i8*, %TName_List_String*)*, i8* }, { { %TName_List_String* (i8*, %TName_List_String*)*, i8* } (i8*, %TName_List_String*)*, i8* }* %g, align 8 - store { { %TName_List_String* (i8*, %TName_List_String*)*, i8* } (i8*, %TName_List_String*)*, i8* } %"$g_347", { { %TName_List_String* (i8*, %TName_List_String*)*, i8* } (i8*, %TName_List_String*)*, i8* }* %"$$fundef_58_env_g_346", align 8 - %"$$fundef_58_env_t_348" = getelementptr inbounds %"$$fundef_58_env_183", %"$$fundef_58_env_183"* %"$$fundef_58_envp_342", i32 0, i32 1 - %"$t_349" = load %TName_List_String*, %TName_List_String** %t, align 8 - store %TName_List_String* %"$t_349", %TName_List_String** %"$$fundef_58_env_t_348", align 8 - store { %TName_List_String* (i8*, %TName_List_String*)*, i8* } %"$$fundef_58_cloval_345", { %TName_List_String* (i8*, %TName_List_String*)*, i8* }* %partial, align 8, !dbg !47 - %"$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_340" - call void @_out_of_gas() - br label %"$have_gas_353" - -"$have_gas_353": ; preds = %"$out_of_gas_352", %"$have_gas_340" - %"$consume_354" = sub i64 %"$gasrem_350", 1 - store i64 %"$consume_354", i64* @_gasrem, align 8 + %"$gasrem_340" = load i64, i64* @_gasrem, align 8 + %"$gascmp_341" = icmp ugt i64 1, %"$gasrem_340" + br i1 %"$gascmp_341", label %"$out_of_gas_342", label %"$have_gas_343" + +"$out_of_gas_342": ; preds = %"$have_gas_338" + call void @_out_of_gas() + br label %"$have_gas_343" + +"$have_gas_343": ; preds = %"$out_of_gas_342", %"$have_gas_338" + %"$consume_344" = sub i64 %"$gasrem_340", 1 + store i64 %"$consume_344", i64* @_gasrem, align 8 + %"$$fundef_58_envp_345_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_58_envp_345_salloc" = call i8* @_salloc(i8* %"$$fundef_58_envp_345_load", i64 24) + %"$$fundef_58_envp_345" = bitcast i8* %"$$fundef_58_envp_345_salloc" to %"$$fundef_58_env_183"* + %"$$fundef_58_env_voidp_347" = bitcast %"$$fundef_58_env_183"* %"$$fundef_58_envp_345" to i8* + %"$$fundef_58_cloval_348" = insertvalue { %TName_List_String* (i8*, %TName_List_String*)*, i8* } { %TName_List_String* (i8*, %TName_List_String*)* bitcast (%TName_List_String* (%"$$fundef_58_env_183"*, %TName_List_String*)* @"$fundef_58" to %TName_List_String* (i8*, %TName_List_String*)*), i8* undef }, i8* %"$$fundef_58_env_voidp_347", 1 + %"$$fundef_58_env_g_349" = getelementptr inbounds %"$$fundef_58_env_183", %"$$fundef_58_env_183"* %"$$fundef_58_envp_345", i32 0, i32 0 + %"$g_350" = load { { %TName_List_String* (i8*, %TName_List_String*)*, i8* } (i8*, %TName_List_String*)*, i8* }, { { %TName_List_String* (i8*, %TName_List_String*)*, i8* } (i8*, %TName_List_String*)*, i8* }* %g, align 8 + store { { %TName_List_String* (i8*, %TName_List_String*)*, i8* } (i8*, %TName_List_String*)*, i8* } %"$g_350", { { %TName_List_String* (i8*, %TName_List_String*)*, i8* } (i8*, %TName_List_String*)*, i8* }* %"$$fundef_58_env_g_349", align 8 + %"$$fundef_58_env_t_351" = getelementptr inbounds %"$$fundef_58_env_183", %"$$fundef_58_env_183"* %"$$fundef_58_envp_345", i32 0, i32 1 + %"$t_352" = load %TName_List_String*, %TName_List_String** %t, align 8 + store %TName_List_String* %"$t_352", %TName_List_String** %"$$fundef_58_env_t_351", align 8 + store { %TName_List_String* (i8*, %TName_List_String*)*, i8* } %"$$fundef_58_cloval_348", { %TName_List_String* (i8*, %TName_List_String*)*, i8* }* %partial, align 8, !dbg !82 + %"$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 = %"$have_gas_343" + call void @_out_of_gas() + br label %"$have_gas_356" + +"$have_gas_356": ; preds = %"$out_of_gas_355", %"$have_gas_343" + %"$consume_357" = sub i64 %"$gasrem_353", 1 + store i64 %"$consume_357", i64* @_gasrem, align 8 %"$f_7" = alloca { { %TName_List_String* (i8*, { %TName_List_String* (i8*, %TName_List_String*)*, i8* })*, i8* } (i8*, %String)*, i8* }, align 8 - %"$f_355" = load { { { %TName_List_String* (i8*, { %TName_List_String* (i8*, %TName_List_String*)*, i8* })*, i8* } (i8*, %String)*, i8* } (i8*, %TName_List_String*)*, i8* }, { { { %TName_List_String* (i8*, { %TName_List_String* (i8*, %TName_List_String*)*, i8* })*, i8* } (i8*, %String)*, i8* } (i8*, %TName_List_String*)*, i8* }* %f, align 8 - %"$f_fptr_356" = extractvalue { { { %TName_List_String* (i8*, { %TName_List_String* (i8*, %TName_List_String*)*, i8* })*, i8* } (i8*, %String)*, i8* } (i8*, %TName_List_String*)*, i8* } %"$f_355", 0 - %"$f_envptr_357" = extractvalue { { { %TName_List_String* (i8*, { %TName_List_String* (i8*, %TName_List_String*)*, i8* })*, i8* } (i8*, %String)*, i8* } (i8*, %TName_List_String*)*, i8* } %"$f_355", 1 - %"$z_358" = load %TName_List_String*, %TName_List_String** %z, align 8 - %"$f_call_359" = call { { %TName_List_String* (i8*, { %TName_List_String* (i8*, %TName_List_String*)*, i8* })*, i8* } (i8*, %String)*, i8* } %"$f_fptr_356"(i8* %"$f_envptr_357", %TName_List_String* %"$z_358"), !dbg !50 - store { { %TName_List_String* (i8*, { %TName_List_String* (i8*, %TName_List_String*)*, i8* })*, i8* } (i8*, %String)*, i8* } %"$f_call_359", { { %TName_List_String* (i8*, { %TName_List_String* (i8*, %TName_List_String*)*, i8* })*, i8* } (i8*, %String)*, i8* }* %"$f_7", align 8, !dbg !50 + %"$f_358" = load { { { %TName_List_String* (i8*, { %TName_List_String* (i8*, %TName_List_String*)*, i8* })*, i8* } (i8*, %String)*, i8* } (i8*, %TName_List_String*)*, i8* }, { { { %TName_List_String* (i8*, { %TName_List_String* (i8*, %TName_List_String*)*, i8* })*, i8* } (i8*, %String)*, i8* } (i8*, %TName_List_String*)*, i8* }* %f, align 8 + %"$f_fptr_359" = extractvalue { { { %TName_List_String* (i8*, { %TName_List_String* (i8*, %TName_List_String*)*, i8* })*, i8* } (i8*, %String)*, i8* } (i8*, %TName_List_String*)*, i8* } %"$f_358", 0 + %"$f_envptr_360" = extractvalue { { { %TName_List_String* (i8*, { %TName_List_String* (i8*, %TName_List_String*)*, i8* })*, i8* } (i8*, %String)*, i8* } (i8*, %TName_List_String*)*, i8* } %"$f_358", 1 + %"$z_361" = load %TName_List_String*, %TName_List_String** %z, align 8 + %"$f_call_362" = call { { %TName_List_String* (i8*, { %TName_List_String* (i8*, %TName_List_String*)*, i8* })*, i8* } (i8*, %String)*, i8* } %"$f_fptr_359"(i8* %"$f_envptr_360", %TName_List_String* %"$z_361"), !dbg !85 + store { { %TName_List_String* (i8*, { %TName_List_String* (i8*, %TName_List_String*)*, i8* })*, i8* } (i8*, %String)*, i8* } %"$f_call_362", { { %TName_List_String* (i8*, { %TName_List_String* (i8*, %TName_List_String*)*, i8* })*, i8* } (i8*, %String)*, i8* }* %"$f_7", align 8, !dbg !85 %"$f_8" = alloca { %TName_List_String* (i8*, { %TName_List_String* (i8*, %TName_List_String*)*, i8* })*, i8* }, align 8 - %"$$f_7_360" = load { { %TName_List_String* (i8*, { %TName_List_String* (i8*, %TName_List_String*)*, i8* })*, i8* } (i8*, %String)*, i8* }, { { %TName_List_String* (i8*, { %TName_List_String* (i8*, %TName_List_String*)*, i8* })*, i8* } (i8*, %String)*, i8* }* %"$f_7", align 8 - %"$$f_7_fptr_361" = extractvalue { { %TName_List_String* (i8*, { %TName_List_String* (i8*, %TName_List_String*)*, i8* })*, i8* } (i8*, %String)*, i8* } %"$$f_7_360", 0 - %"$$f_7_envptr_362" = extractvalue { { %TName_List_String* (i8*, { %TName_List_String* (i8*, %TName_List_String*)*, i8* })*, i8* } (i8*, %String)*, i8* } %"$$f_7_360", 1 - %"$h_363" = load %String, %String* %h, align 8 - %"$$f_7_call_364" = call { %TName_List_String* (i8*, { %TName_List_String* (i8*, %TName_List_String*)*, i8* })*, i8* } %"$$f_7_fptr_361"(i8* %"$$f_7_envptr_362", %String %"$h_363"), !dbg !50 - store { %TName_List_String* (i8*, { %TName_List_String* (i8*, %TName_List_String*)*, i8* })*, i8* } %"$$f_7_call_364", { %TName_List_String* (i8*, { %TName_List_String* (i8*, %TName_List_String*)*, i8* })*, i8* }* %"$f_8", align 8, !dbg !50 + %"$$f_7_363" = load { { %TName_List_String* (i8*, { %TName_List_String* (i8*, %TName_List_String*)*, i8* })*, i8* } (i8*, %String)*, i8* }, { { %TName_List_String* (i8*, { %TName_List_String* (i8*, %TName_List_String*)*, i8* })*, i8* } (i8*, %String)*, i8* }* %"$f_7", align 8 + %"$$f_7_fptr_364" = extractvalue { { %TName_List_String* (i8*, { %TName_List_String* (i8*, %TName_List_String*)*, i8* })*, i8* } (i8*, %String)*, i8* } %"$$f_7_363", 0 + %"$$f_7_envptr_365" = extractvalue { { %TName_List_String* (i8*, { %TName_List_String* (i8*, %TName_List_String*)*, i8* })*, i8* } (i8*, %String)*, i8* } %"$$f_7_363", 1 + %"$h_366" = load %String, %String* %h, align 8 + %"$$f_7_call_367" = call { %TName_List_String* (i8*, { %TName_List_String* (i8*, %TName_List_String*)*, i8* })*, i8* } %"$$f_7_fptr_364"(i8* %"$$f_7_envptr_365", %String %"$h_366"), !dbg !85 + store { %TName_List_String* (i8*, { %TName_List_String* (i8*, %TName_List_String*)*, i8* })*, i8* } %"$$f_7_call_367", { %TName_List_String* (i8*, { %TName_List_String* (i8*, %TName_List_String*)*, i8* })*, i8* }* %"$f_8", align 8, !dbg !85 %"$f_9" = alloca %TName_List_String*, align 8 - %"$$f_8_365" = load { %TName_List_String* (i8*, { %TName_List_String* (i8*, %TName_List_String*)*, i8* })*, i8* }, { %TName_List_String* (i8*, { %TName_List_String* (i8*, %TName_List_String*)*, i8* })*, i8* }* %"$f_8", align 8 - %"$$f_8_fptr_366" = extractvalue { %TName_List_String* (i8*, { %TName_List_String* (i8*, %TName_List_String*)*, i8* })*, i8* } %"$$f_8_365", 0 - %"$$f_8_envptr_367" = extractvalue { %TName_List_String* (i8*, { %TName_List_String* (i8*, %TName_List_String*)*, i8* })*, i8* } %"$$f_8_365", 1 - %"$partial_368" = load { %TName_List_String* (i8*, %TName_List_String*)*, i8* }, { %TName_List_String* (i8*, %TName_List_String*)*, i8* }* %partial, align 8 - %"$$f_8_call_369" = call %TName_List_String* %"$$f_8_fptr_366"(i8* %"$$f_8_envptr_367", { %TName_List_String* (i8*, %TName_List_String*)*, i8* } %"$partial_368"), !dbg !50 - store %TName_List_String* %"$$f_8_call_369", %TName_List_String** %"$f_9", align 8, !dbg !50 - %"$$f_9_370" = load %TName_List_String*, %TName_List_String** %"$f_9", align 8 - store %TName_List_String* %"$$f_9_370", %TName_List_String** %"$retval_57", align 8, !dbg !50 - br label %"$matchsucc_322" - -"$Nil_371": ; preds = %"$have_gas_320" - %"$l_372" = bitcast %TName_List_String* %1 to %CName_Nil_String* - %"$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 = %"$Nil_371" - call void @_out_of_gas() - br label %"$have_gas_376" - -"$have_gas_376": ; preds = %"$out_of_gas_375", %"$Nil_371" - %"$consume_377" = sub i64 %"$gasrem_373", 1 - store i64 %"$consume_377", i64* @_gasrem, align 8 - %"$z_378" = load %TName_List_String*, %TName_List_String** %z, align 8 - store %TName_List_String* %"$z_378", %TName_List_String** %"$retval_57", align 8, !dbg !51 - br label %"$matchsucc_322" - -"$empty_default_325": ; preds = %"$have_gas_320" - br label %"$matchsucc_322" - -"$matchsucc_322": ; preds = %"$have_gas_376", %"$have_gas_353", %"$empty_default_325" - %"$$retval_57_379" = load %TName_List_String*, %TName_List_String** %"$retval_57", align 8 - ret %TName_List_String* %"$$retval_57_379" + call void @llvm.dbg.declare(metadata %TName_List_String** %"$f_9", metadata !86, metadata !DIExpression()), !dbg !85 + %"$$f_8_368" = load { %TName_List_String* (i8*, { %TName_List_String* (i8*, %TName_List_String*)*, i8* })*, i8* }, { %TName_List_String* (i8*, { %TName_List_String* (i8*, %TName_List_String*)*, i8* })*, i8* }* %"$f_8", align 8 + %"$$f_8_fptr_369" = extractvalue { %TName_List_String* (i8*, { %TName_List_String* (i8*, %TName_List_String*)*, i8* })*, i8* } %"$$f_8_368", 0 + %"$$f_8_envptr_370" = extractvalue { %TName_List_String* (i8*, { %TName_List_String* (i8*, %TName_List_String*)*, i8* })*, i8* } %"$$f_8_368", 1 + %"$partial_371" = load { %TName_List_String* (i8*, %TName_List_String*)*, i8* }, { %TName_List_String* (i8*, %TName_List_String*)*, i8* }* %partial, align 8 + %"$$f_8_call_372" = call %TName_List_String* %"$$f_8_fptr_369"(i8* %"$$f_8_envptr_370", { %TName_List_String* (i8*, %TName_List_String*)*, i8* } %"$partial_371"), !dbg !85 + store %TName_List_String* %"$$f_8_call_372", %TName_List_String** %"$f_9", align 8, !dbg !85 + %"$$f_9_373" = load %TName_List_String*, %TName_List_String** %"$f_9", align 8 + store %TName_List_String* %"$$f_9_373", %TName_List_String** %"$retval_57", align 8, !dbg !85 + br label %"$matchsucc_325" + +"$Nil_374": ; preds = %"$have_gas_323" + %"$l_375" = bitcast %TName_List_String* %1 to %CName_Nil_String* + %"$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 = %"$Nil_374" + call void @_out_of_gas() + br label %"$have_gas_379" + +"$have_gas_379": ; preds = %"$out_of_gas_378", %"$Nil_374" + %"$consume_380" = sub i64 %"$gasrem_376", 1 + store i64 %"$consume_380", i64* @_gasrem, align 8 + %"$z_381" = load %TName_List_String*, %TName_List_String** %z, align 8 + store %TName_List_String* %"$z_381", %TName_List_String** %"$retval_57", align 8, !dbg !87 + br label %"$matchsucc_325" + +"$empty_default_328": ; preds = %"$have_gas_323" + br label %"$matchsucc_325" + +"$matchsucc_325": ; preds = %"$have_gas_379", %"$have_gas_356", %"$empty_default_328" + %"$$retval_57_382" = load %TName_List_String*, %TName_List_String** %"$retval_57", align 8 + ret %TName_List_String* %"$$retval_57_382" } -define internal { %TName_List_String* (i8*, %TName_List_String*)*, i8* } @"$fundef_54"(%"$$fundef_54_env_185"* %0, %TName_List_String* %1) !dbg !53 { +define internal { %TName_List_String* (i8*, %TName_List_String*)*, i8* } @"$fundef_54"(%"$$fundef_54_env_185"* %0, %TName_List_String* %1) !dbg !89 { entry: - %"$$fundef_54_env_f_287" = getelementptr inbounds %"$$fundef_54_env_185", %"$$fundef_54_env_185"* %0, i32 0, i32 0 - %"$f_envload_288" = load { { { %TName_List_String* (i8*, { %TName_List_String* (i8*, %TName_List_String*)*, i8* })*, i8* } (i8*, %String)*, i8* } (i8*, %TName_List_String*)*, i8* }, { { { %TName_List_String* (i8*, { %TName_List_String* (i8*, %TName_List_String*)*, i8* })*, i8* } (i8*, %String)*, i8* } (i8*, %TName_List_String*)*, i8* }* %"$$fundef_54_env_f_287", align 8 + %"$z_313" = alloca %TName_List_String*, align 8 + store %TName_List_String* %1, %TName_List_String** %"$z_313", align 8 + call void @llvm.dbg.declare(metadata %TName_List_String** %"$z_313", metadata !90, metadata !DIExpression()), !dbg !91 + %"$$fundef_54_env_f_289" = getelementptr inbounds %"$$fundef_54_env_185", %"$$fundef_54_env_185"* %0, i32 0, i32 0 + %"$f_envload_290" = load { { { %TName_List_String* (i8*, { %TName_List_String* (i8*, %TName_List_String*)*, i8* })*, i8* } (i8*, %String)*, i8* } (i8*, %TName_List_String*)*, i8* }, { { { %TName_List_String* (i8*, { %TName_List_String* (i8*, %TName_List_String*)*, i8* })*, i8* } (i8*, %String)*, i8* } (i8*, %TName_List_String*)*, i8* }* %"$$fundef_54_env_f_289", align 8 %f = alloca { { { %TName_List_String* (i8*, { %TName_List_String* (i8*, %TName_List_String*)*, i8* })*, i8* } (i8*, %String)*, i8* } (i8*, %TName_List_String*)*, i8* }, align 8 - store { { { %TName_List_String* (i8*, { %TName_List_String* (i8*, %TName_List_String*)*, i8* })*, i8* } (i8*, %String)*, i8* } (i8*, %TName_List_String*)*, i8* } %"$f_envload_288", { { { %TName_List_String* (i8*, { %TName_List_String* (i8*, %TName_List_String*)*, i8* })*, i8* } (i8*, %String)*, i8* } (i8*, %TName_List_String*)*, i8* }* %f, align 8 - %"$$fundef_54_env_g_289" = getelementptr inbounds %"$$fundef_54_env_185", %"$$fundef_54_env_185"* %0, i32 0, i32 1 - %"$g_envload_290" = load { { %TName_List_String* (i8*, %TName_List_String*)*, i8* } (i8*, %TName_List_String*)*, i8* }, { { %TName_List_String* (i8*, %TName_List_String*)*, i8* } (i8*, %TName_List_String*)*, i8* }* %"$$fundef_54_env_g_289", align 8 + store { { { %TName_List_String* (i8*, { %TName_List_String* (i8*, %TName_List_String*)*, i8* })*, i8* } (i8*, %String)*, i8* } (i8*, %TName_List_String*)*, i8* } %"$f_envload_290", { { { %TName_List_String* (i8*, { %TName_List_String* (i8*, %TName_List_String*)*, i8* })*, i8* } (i8*, %String)*, i8* } (i8*, %TName_List_String*)*, i8* }* %f, align 8 + %"$$fundef_54_env_g_291" = getelementptr inbounds %"$$fundef_54_env_185", %"$$fundef_54_env_185"* %0, i32 0, i32 1 + %"$g_envload_292" = load { { %TName_List_String* (i8*, %TName_List_String*)*, i8* } (i8*, %TName_List_String*)*, i8* }, { { %TName_List_String* (i8*, %TName_List_String*)*, i8* } (i8*, %TName_List_String*)*, i8* }* %"$$fundef_54_env_g_291", align 8 %g = alloca { { %TName_List_String* (i8*, %TName_List_String*)*, i8* } (i8*, %TName_List_String*)*, i8* }, align 8 - store { { %TName_List_String* (i8*, %TName_List_String*)*, i8* } (i8*, %TName_List_String*)*, i8* } %"$g_envload_290", { { %TName_List_String* (i8*, %TName_List_String*)*, i8* } (i8*, %TName_List_String*)*, i8* }* %g, align 8 + store { { %TName_List_String* (i8*, %TName_List_String*)*, i8* } (i8*, %TName_List_String*)*, i8* } %"$g_envload_292", { { %TName_List_String* (i8*, %TName_List_String*)*, i8* } (i8*, %TName_List_String*)*, i8* }* %g, align 8 %"$retval_55" = alloca { %TName_List_String* (i8*, %TName_List_String*)*, 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 - %"$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_294" - call void @_out_of_gas() - br label %"$have_gas_299" - -"$have_gas_299": ; preds = %"$out_of_gas_298", %"$have_gas_294" - %"$consume_300" = sub i64 %"$gasrem_296", 1 - store i64 %"$consume_300", i64* @_gasrem, align 8 - %"$$fundef_56_envp_301_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_56_envp_301_salloc" = call i8* @_salloc(i8* %"$$fundef_56_envp_301_load", i64 40) - %"$$fundef_56_envp_301" = bitcast i8* %"$$fundef_56_envp_301_salloc" to %"$$fundef_56_env_184"* - %"$$fundef_56_env_voidp_303" = bitcast %"$$fundef_56_env_184"* %"$$fundef_56_envp_301" to i8* - %"$$fundef_56_cloval_304" = insertvalue { %TName_List_String* (i8*, %TName_List_String*)*, i8* } { %TName_List_String* (i8*, %TName_List_String*)* bitcast (%TName_List_String* (%"$$fundef_56_env_184"*, %TName_List_String*)* @"$fundef_56" to %TName_List_String* (i8*, %TName_List_String*)*), i8* undef }, i8* %"$$fundef_56_env_voidp_303", 1 - %"$$fundef_56_env_f_305" = getelementptr inbounds %"$$fundef_56_env_184", %"$$fundef_56_env_184"* %"$$fundef_56_envp_301", i32 0, i32 0 - %"$f_306" = load { { { %TName_List_String* (i8*, { %TName_List_String* (i8*, %TName_List_String*)*, i8* })*, i8* } (i8*, %String)*, i8* } (i8*, %TName_List_String*)*, i8* }, { { { %TName_List_String* (i8*, { %TName_List_String* (i8*, %TName_List_String*)*, i8* })*, i8* } (i8*, %String)*, i8* } (i8*, %TName_List_String*)*, i8* }* %f, align 8 - store { { { %TName_List_String* (i8*, { %TName_List_String* (i8*, %TName_List_String*)*, i8* })*, i8* } (i8*, %String)*, i8* } (i8*, %TName_List_String*)*, i8* } %"$f_306", { { { %TName_List_String* (i8*, { %TName_List_String* (i8*, %TName_List_String*)*, i8* })*, i8* } (i8*, %String)*, i8* } (i8*, %TName_List_String*)*, i8* }* %"$$fundef_56_env_f_305", align 8 - %"$$fundef_56_env_g_307" = getelementptr inbounds %"$$fundef_56_env_184", %"$$fundef_56_env_184"* %"$$fundef_56_envp_301", i32 0, i32 1 - %"$g_308" = load { { %TName_List_String* (i8*, %TName_List_String*)*, i8* } (i8*, %TName_List_String*)*, i8* }, { { %TName_List_String* (i8*, %TName_List_String*)*, i8* } (i8*, %TName_List_String*)*, i8* }* %g, align 8 - store { { %TName_List_String* (i8*, %TName_List_String*)*, i8* } (i8*, %TName_List_String*)*, i8* } %"$g_308", { { %TName_List_String* (i8*, %TName_List_String*)*, i8* } (i8*, %TName_List_String*)*, i8* }* %"$$fundef_56_env_g_307", align 8 - %"$$fundef_56_env_z_309" = getelementptr inbounds %"$$fundef_56_env_184", %"$$fundef_56_env_184"* %"$$fundef_56_envp_301", i32 0, i32 2 - store %TName_List_String* %1, %TName_List_String** %"$$fundef_56_env_z_309", align 8 - store { %TName_List_String* (i8*, %TName_List_String*)*, i8* } %"$$fundef_56_cloval_304", { %TName_List_String* (i8*, %TName_List_String*)*, i8* }* %"$retval_55", align 8, !dbg !54 - %"$$retval_55_310" = load { %TName_List_String* (i8*, %TName_List_String*)*, i8* }, { %TName_List_String* (i8*, %TName_List_String*)*, i8* }* %"$retval_55", align 8 - ret { %TName_List_String* (i8*, %TName_List_String*)*, i8* } %"$$retval_55_310" + %"$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" + +"$out_of_gas_295": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_296" + +"$have_gas_296": ; preds = %"$out_of_gas_295", %entry + %"$consume_297" = sub i64 %"$gasrem_293", 1 + store i64 %"$consume_297", i64* @_gasrem, align 8 + %"$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_56_envp_303_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_56_envp_303_salloc" = call i8* @_salloc(i8* %"$$fundef_56_envp_303_load", i64 40) + %"$$fundef_56_envp_303" = bitcast i8* %"$$fundef_56_envp_303_salloc" to %"$$fundef_56_env_184"* + %"$$fundef_56_env_voidp_305" = bitcast %"$$fundef_56_env_184"* %"$$fundef_56_envp_303" to i8* + %"$$fundef_56_cloval_306" = insertvalue { %TName_List_String* (i8*, %TName_List_String*)*, i8* } { %TName_List_String* (i8*, %TName_List_String*)* bitcast (%TName_List_String* (%"$$fundef_56_env_184"*, %TName_List_String*)* @"$fundef_56" to %TName_List_String* (i8*, %TName_List_String*)*), i8* undef }, i8* %"$$fundef_56_env_voidp_305", 1 + %"$$fundef_56_env_f_307" = getelementptr inbounds %"$$fundef_56_env_184", %"$$fundef_56_env_184"* %"$$fundef_56_envp_303", i32 0, i32 0 + %"$f_308" = load { { { %TName_List_String* (i8*, { %TName_List_String* (i8*, %TName_List_String*)*, i8* })*, i8* } (i8*, %String)*, i8* } (i8*, %TName_List_String*)*, i8* }, { { { %TName_List_String* (i8*, { %TName_List_String* (i8*, %TName_List_String*)*, i8* })*, i8* } (i8*, %String)*, i8* } (i8*, %TName_List_String*)*, i8* }* %f, align 8 + store { { { %TName_List_String* (i8*, { %TName_List_String* (i8*, %TName_List_String*)*, i8* })*, i8* } (i8*, %String)*, i8* } (i8*, %TName_List_String*)*, i8* } %"$f_308", { { { %TName_List_String* (i8*, { %TName_List_String* (i8*, %TName_List_String*)*, i8* })*, i8* } (i8*, %String)*, i8* } (i8*, %TName_List_String*)*, i8* }* %"$$fundef_56_env_f_307", align 8 + %"$$fundef_56_env_g_309" = getelementptr inbounds %"$$fundef_56_env_184", %"$$fundef_56_env_184"* %"$$fundef_56_envp_303", i32 0, i32 1 + %"$g_310" = load { { %TName_List_String* (i8*, %TName_List_String*)*, i8* } (i8*, %TName_List_String*)*, i8* }, { { %TName_List_String* (i8*, %TName_List_String*)*, i8* } (i8*, %TName_List_String*)*, i8* }* %g, align 8 + store { { %TName_List_String* (i8*, %TName_List_String*)*, i8* } (i8*, %TName_List_String*)*, i8* } %"$g_310", { { %TName_List_String* (i8*, %TName_List_String*)*, i8* } (i8*, %TName_List_String*)*, i8* }* %"$$fundef_56_env_g_309", align 8 + %"$$fundef_56_env_z_311" = getelementptr inbounds %"$$fundef_56_env_184", %"$$fundef_56_env_184"* %"$$fundef_56_envp_303", i32 0, i32 2 + store %TName_List_String* %1, %TName_List_String** %"$$fundef_56_env_z_311", align 8 + store { %TName_List_String* (i8*, %TName_List_String*)*, i8* } %"$$fundef_56_cloval_306", { %TName_List_String* (i8*, %TName_List_String*)*, i8* }* %"$retval_55", align 8, !dbg !92 + %"$$retval_55_312" = load { %TName_List_String* (i8*, %TName_List_String*)*, i8* }, { %TName_List_String* (i8*, %TName_List_String*)*, i8* }* %"$retval_55", align 8 + ret { %TName_List_String* (i8*, %TName_List_String*)*, i8* } %"$$retval_55_312" } -define internal { { %TName_List_String* (i8*, %TName_List_String*)*, i8* } (i8*, %TName_List_String*)*, i8* } @"$fundef_52"(%"$$fundef_52_env_186"* %0, { { { %TName_List_String* (i8*, { %TName_List_String* (i8*, %TName_List_String*)*, i8* })*, i8* } (i8*, %String)*, i8* } (i8*, %TName_List_String*)*, i8* } %1) !dbg !55 { +define internal { { %TName_List_String* (i8*, %TName_List_String*)*, i8* } (i8*, %TName_List_String*)*, i8* } @"$fundef_52"(%"$$fundef_52_env_186"* %0, { { { %TName_List_String* (i8*, { %TName_List_String* (i8*, %TName_List_String*)*, i8* })*, i8* } (i8*, %String)*, i8* } (i8*, %TName_List_String*)*, i8* } %1) !dbg !93 { entry: %"$retval_53" = alloca { { %TName_List_String* (i8*, %TName_List_String*)*, i8* } (i8*, %TName_List_String*)*, i8* }, 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 = %entry - call void @_out_of_gas() - br label %"$have_gas_276" - -"$have_gas_276": ; preds = %"$out_of_gas_275", %entry - %"$consume_277" = sub i64 %"$gasrem_273", 1 - store i64 %"$consume_277", i64* @_gasrem, align 8 - %"$$fundef_54_envp_278_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_54_envp_278_salloc" = call i8* @_salloc(i8* %"$$fundef_54_envp_278_load", i64 32) - %"$$fundef_54_envp_278" = bitcast i8* %"$$fundef_54_envp_278_salloc" to %"$$fundef_54_env_185"* - %"$$fundef_54_env_voidp_280" = bitcast %"$$fundef_54_env_185"* %"$$fundef_54_envp_278" to i8* - %"$$fundef_54_cloval_281" = insertvalue { { %TName_List_String* (i8*, %TName_List_String*)*, i8* } (i8*, %TName_List_String*)*, i8* } { { %TName_List_String* (i8*, %TName_List_String*)*, i8* } (i8*, %TName_List_String*)* bitcast ({ %TName_List_String* (i8*, %TName_List_String*)*, i8* } (%"$$fundef_54_env_185"*, %TName_List_String*)* @"$fundef_54" to { %TName_List_String* (i8*, %TName_List_String*)*, i8* } (i8*, %TName_List_String*)*), i8* undef }, i8* %"$$fundef_54_env_voidp_280", 1 + %"$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_54_envp_280_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_54_envp_280_salloc" = call i8* @_salloc(i8* %"$$fundef_54_envp_280_load", i64 32) + %"$$fundef_54_envp_280" = bitcast i8* %"$$fundef_54_envp_280_salloc" to %"$$fundef_54_env_185"* + %"$$fundef_54_env_voidp_282" = bitcast %"$$fundef_54_env_185"* %"$$fundef_54_envp_280" to i8* + %"$$fundef_54_cloval_283" = insertvalue { { %TName_List_String* (i8*, %TName_List_String*)*, i8* } (i8*, %TName_List_String*)*, i8* } { { %TName_List_String* (i8*, %TName_List_String*)*, i8* } (i8*, %TName_List_String*)* bitcast ({ %TName_List_String* (i8*, %TName_List_String*)*, i8* } (%"$$fundef_54_env_185"*, %TName_List_String*)* @"$fundef_54" to { %TName_List_String* (i8*, %TName_List_String*)*, i8* } (i8*, %TName_List_String*)*), i8* undef }, i8* %"$$fundef_54_env_voidp_282", 1 %g = alloca { { %TName_List_String* (i8*, %TName_List_String*)*, i8* } (i8*, %TName_List_String*)*, i8* }, align 8 - store { { %TName_List_String* (i8*, %TName_List_String*)*, i8* } (i8*, %TName_List_String*)*, i8* } %"$$fundef_54_cloval_281", { { %TName_List_String* (i8*, %TName_List_String*)*, i8* } (i8*, %TName_List_String*)*, i8* }* %g, align 8, !dbg !56 - %"$$fundef_54_env_f_282" = getelementptr inbounds %"$$fundef_54_env_185", %"$$fundef_54_env_185"* %"$$fundef_54_envp_278", i32 0, i32 0 - store { { { %TName_List_String* (i8*, { %TName_List_String* (i8*, %TName_List_String*)*, i8* })*, i8* } (i8*, %String)*, i8* } (i8*, %TName_List_String*)*, i8* } %1, { { { %TName_List_String* (i8*, { %TName_List_String* (i8*, %TName_List_String*)*, i8* })*, i8* } (i8*, %String)*, i8* } (i8*, %TName_List_String*)*, i8* }* %"$$fundef_54_env_f_282", align 8 - %"$$fundef_54_env_g_283" = getelementptr inbounds %"$$fundef_54_env_185", %"$$fundef_54_env_185"* %"$$fundef_54_envp_278", i32 0, i32 1 - %"$g_284" = load { { %TName_List_String* (i8*, %TName_List_String*)*, i8* } (i8*, %TName_List_String*)*, i8* }, { { %TName_List_String* (i8*, %TName_List_String*)*, i8* } (i8*, %TName_List_String*)*, i8* }* %g, align 8 - store { { %TName_List_String* (i8*, %TName_List_String*)*, i8* } (i8*, %TName_List_String*)*, i8* } %"$g_284", { { %TName_List_String* (i8*, %TName_List_String*)*, i8* } (i8*, %TName_List_String*)*, i8* }* %"$$fundef_54_env_g_283", align 8 - %"$g_285" = load { { %TName_List_String* (i8*, %TName_List_String*)*, i8* } (i8*, %TName_List_String*)*, i8* }, { { %TName_List_String* (i8*, %TName_List_String*)*, i8* } (i8*, %TName_List_String*)*, i8* }* %g, align 8 - store { { %TName_List_String* (i8*, %TName_List_String*)*, i8* } (i8*, %TName_List_String*)*, i8* } %"$g_285", { { %TName_List_String* (i8*, %TName_List_String*)*, i8* } (i8*, %TName_List_String*)*, i8* }* %"$retval_53", align 8, !dbg !56 - %"$$retval_53_286" = load { { %TName_List_String* (i8*, %TName_List_String*)*, i8* } (i8*, %TName_List_String*)*, i8* }, { { %TName_List_String* (i8*, %TName_List_String*)*, i8* } (i8*, %TName_List_String*)*, i8* }* %"$retval_53", align 8 - ret { { %TName_List_String* (i8*, %TName_List_String*)*, i8* } (i8*, %TName_List_String*)*, i8* } %"$$retval_53_286" + store { { %TName_List_String* (i8*, %TName_List_String*)*, i8* } (i8*, %TName_List_String*)*, i8* } %"$$fundef_54_cloval_283", { { %TName_List_String* (i8*, %TName_List_String*)*, i8* } (i8*, %TName_List_String*)*, i8* }* %g, align 8, !dbg !94 + %"$$fundef_54_env_f_284" = getelementptr inbounds %"$$fundef_54_env_185", %"$$fundef_54_env_185"* %"$$fundef_54_envp_280", i32 0, i32 0 + store { { { %TName_List_String* (i8*, { %TName_List_String* (i8*, %TName_List_String*)*, i8* })*, i8* } (i8*, %String)*, i8* } (i8*, %TName_List_String*)*, i8* } %1, { { { %TName_List_String* (i8*, { %TName_List_String* (i8*, %TName_List_String*)*, i8* })*, i8* } (i8*, %String)*, i8* } (i8*, %TName_List_String*)*, i8* }* %"$$fundef_54_env_f_284", align 8 + %"$$fundef_54_env_g_285" = getelementptr inbounds %"$$fundef_54_env_185", %"$$fundef_54_env_185"* %"$$fundef_54_envp_280", i32 0, i32 1 + %"$g_286" = load { { %TName_List_String* (i8*, %TName_List_String*)*, i8* } (i8*, %TName_List_String*)*, i8* }, { { %TName_List_String* (i8*, %TName_List_String*)*, i8* } (i8*, %TName_List_String*)*, i8* }* %g, align 8 + store { { %TName_List_String* (i8*, %TName_List_String*)*, i8* } (i8*, %TName_List_String*)*, i8* } %"$g_286", { { %TName_List_String* (i8*, %TName_List_String*)*, i8* } (i8*, %TName_List_String*)*, i8* }* %"$$fundef_54_env_g_285", align 8 + %"$g_287" = load { { %TName_List_String* (i8*, %TName_List_String*)*, i8* } (i8*, %TName_List_String*)*, i8* }, { { %TName_List_String* (i8*, %TName_List_String*)*, i8* } (i8*, %TName_List_String*)*, i8* }* %g, align 8 + store { { %TName_List_String* (i8*, %TName_List_String*)*, i8* } (i8*, %TName_List_String*)*, i8* } %"$g_287", { { %TName_List_String* (i8*, %TName_List_String*)*, i8* } (i8*, %TName_List_String*)*, i8* }* %"$retval_53", align 8, !dbg !94 + %"$$retval_53_288" = load { { %TName_List_String* (i8*, %TName_List_String*)*, i8* } (i8*, %TName_List_String*)*, i8* }, { { %TName_List_String* (i8*, %TName_List_String*)*, i8* } (i8*, %TName_List_String*)*, i8* }* %"$retval_53", align 8 + ret { { %TName_List_String* (i8*, %TName_List_String*)*, i8* } (i8*, %TName_List_String*)*, i8* } %"$$retval_53_288" } -define internal { { { %TName_List_String* (i8*, %TName_List_String*)*, i8* } (i8*, %TName_List_String*)*, i8* } (i8*, { { { %TName_List_String* (i8*, { %TName_List_String* (i8*, %TName_List_String*)*, i8* })*, i8* } (i8*, %String)*, i8* } (i8*, %TName_List_String*)*, i8* })*, i8* } @"$fundef_50"(%"$$fundef_50_env_187"* %0) !dbg !57 { +define internal { { { %TName_List_String* (i8*, %TName_List_String*)*, i8* } (i8*, %TName_List_String*)*, i8* } (i8*, { { { %TName_List_String* (i8*, { %TName_List_String* (i8*, %TName_List_String*)*, i8* })*, i8* } (i8*, %String)*, i8* } (i8*, %TName_List_String*)*, i8* })*, i8* } @"$fundef_50"(%"$$fundef_50_env_187"* %0) !dbg !95 { entry: %"$retval_51" = alloca { { { %TName_List_String* (i8*, %TName_List_String*)*, i8* } (i8*, %TName_List_String*)*, i8* } (i8*, { { { %TName_List_String* (i8*, { %TName_List_String* (i8*, %TName_List_String*)*, i8* })*, i8* } (i8*, %String)*, i8* } (i8*, %TName_List_String*)*, i8* })*, i8* }, 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" + %"$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_266": ; preds = %entry +"$out_of_gas_268": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_267" + br label %"$have_gas_269" -"$have_gas_267": ; preds = %"$out_of_gas_266", %entry - %"$consume_268" = sub i64 %"$gasrem_264", 1 - store i64 %"$consume_268", i64* @_gasrem, align 8 - store { { { %TName_List_String* (i8*, %TName_List_String*)*, i8* } (i8*, %TName_List_String*)*, i8* } (i8*, { { { %TName_List_String* (i8*, { %TName_List_String* (i8*, %TName_List_String*)*, i8* })*, i8* } (i8*, %String)*, i8* } (i8*, %TName_List_String*)*, i8* })*, i8* } { { { %TName_List_String* (i8*, %TName_List_String*)*, i8* } (i8*, %TName_List_String*)*, i8* } (i8*, { { { %TName_List_String* (i8*, { %TName_List_String* (i8*, %TName_List_String*)*, i8* })*, i8* } (i8*, %String)*, i8* } (i8*, %TName_List_String*)*, i8* })* bitcast ({ { %TName_List_String* (i8*, %TName_List_String*)*, i8* } (i8*, %TName_List_String*)*, i8* } (%"$$fundef_52_env_186"*, { { { %TName_List_String* (i8*, { %TName_List_String* (i8*, %TName_List_String*)*, i8* })*, i8* } (i8*, %String)*, i8* } (i8*, %TName_List_String*)*, i8* })* @"$fundef_52" to { { %TName_List_String* (i8*, %TName_List_String*)*, i8* } (i8*, %TName_List_String*)*, i8* } (i8*, { { { %TName_List_String* (i8*, { %TName_List_String* (i8*, %TName_List_String*)*, i8* })*, i8* } (i8*, %String)*, i8* } (i8*, %TName_List_String*)*, i8* })*), i8* null }, { { { %TName_List_String* (i8*, %TName_List_String*)*, i8* } (i8*, %TName_List_String*)*, i8* } (i8*, { { { %TName_List_String* (i8*, { %TName_List_String* (i8*, %TName_List_String*)*, i8* })*, i8* } (i8*, %String)*, i8* } (i8*, %TName_List_String*)*, i8* })*, i8* }* %"$retval_51", align 8, !dbg !58 - %"$$retval_51_272" = load { { { %TName_List_String* (i8*, %TName_List_String*)*, i8* } (i8*, %TName_List_String*)*, i8* } (i8*, { { { %TName_List_String* (i8*, { %TName_List_String* (i8*, %TName_List_String*)*, i8* })*, i8* } (i8*, %String)*, i8* } (i8*, %TName_List_String*)*, i8* })*, i8* }, { { { %TName_List_String* (i8*, %TName_List_String*)*, i8* } (i8*, %TName_List_String*)*, i8* } (i8*, { { { %TName_List_String* (i8*, { %TName_List_String* (i8*, %TName_List_String*)*, i8* })*, i8* } (i8*, %String)*, i8* } (i8*, %TName_List_String*)*, i8* })*, i8* }* %"$retval_51", align 8 - ret { { { %TName_List_String* (i8*, %TName_List_String*)*, i8* } (i8*, %TName_List_String*)*, i8* } (i8*, { { { %TName_List_String* (i8*, { %TName_List_String* (i8*, %TName_List_String*)*, i8* })*, i8* } (i8*, %String)*, i8* } (i8*, %TName_List_String*)*, i8* })*, i8* } %"$$retval_51_272" +"$have_gas_269": ; preds = %"$out_of_gas_268", %entry + %"$consume_270" = sub i64 %"$gasrem_266", 1 + store i64 %"$consume_270", i64* @_gasrem, align 8 + store { { { %TName_List_String* (i8*, %TName_List_String*)*, i8* } (i8*, %TName_List_String*)*, i8* } (i8*, { { { %TName_List_String* (i8*, { %TName_List_String* (i8*, %TName_List_String*)*, i8* })*, i8* } (i8*, %String)*, i8* } (i8*, %TName_List_String*)*, i8* })*, i8* } { { { %TName_List_String* (i8*, %TName_List_String*)*, i8* } (i8*, %TName_List_String*)*, i8* } (i8*, { { { %TName_List_String* (i8*, { %TName_List_String* (i8*, %TName_List_String*)*, i8* })*, i8* } (i8*, %String)*, i8* } (i8*, %TName_List_String*)*, i8* })* bitcast ({ { %TName_List_String* (i8*, %TName_List_String*)*, i8* } (i8*, %TName_List_String*)*, i8* } (%"$$fundef_52_env_186"*, { { { %TName_List_String* (i8*, { %TName_List_String* (i8*, %TName_List_String*)*, i8* })*, i8* } (i8*, %String)*, i8* } (i8*, %TName_List_String*)*, i8* })* @"$fundef_52" to { { %TName_List_String* (i8*, %TName_List_String*)*, i8* } (i8*, %TName_List_String*)*, i8* } (i8*, { { { %TName_List_String* (i8*, { %TName_List_String* (i8*, %TName_List_String*)*, i8* })*, i8* } (i8*, %String)*, i8* } (i8*, %TName_List_String*)*, i8* })*), i8* null }, { { { %TName_List_String* (i8*, %TName_List_String*)*, i8* } (i8*, %TName_List_String*)*, i8* } (i8*, { { { %TName_List_String* (i8*, { %TName_List_String* (i8*, %TName_List_String*)*, i8* })*, i8* } (i8*, %String)*, i8* } (i8*, %TName_List_String*)*, i8* })*, i8* }* %"$retval_51", align 8, !dbg !96 + %"$$retval_51_274" = load { { { %TName_List_String* (i8*, %TName_List_String*)*, i8* } (i8*, %TName_List_String*)*, i8* } (i8*, { { { %TName_List_String* (i8*, { %TName_List_String* (i8*, %TName_List_String*)*, i8* })*, i8* } (i8*, %String)*, i8* } (i8*, %TName_List_String*)*, i8* })*, i8* }, { { { %TName_List_String* (i8*, %TName_List_String*)*, i8* } (i8*, %TName_List_String*)*, i8* } (i8*, { { { %TName_List_String* (i8*, { %TName_List_String* (i8*, %TName_List_String*)*, i8* })*, i8* } (i8*, %String)*, i8* } (i8*, %TName_List_String*)*, i8* })*, i8* }* %"$retval_51", align 8 + ret { { { %TName_List_String* (i8*, %TName_List_String*)*, i8* } (i8*, %TName_List_String*)*, i8* } (i8*, { { { %TName_List_String* (i8*, { %TName_List_String* (i8*, %TName_List_String*)*, i8* })*, i8* } (i8*, %String)*, i8* } (i8*, %TName_List_String*)*, i8* })*, i8* } %"$$retval_51_274" } -define internal { i8*, i8* }* @"$fundef_48"(%"$$fundef_48_env_188"* %0) !dbg !59 { +define internal { i8*, i8* }* @"$fundef_48"(%"$$fundef_48_env_188"* %0) !dbg !97 { entry: %"$retval_49" = alloca { i8*, 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 = %entry - call void @_out_of_gas() - br label %"$have_gas_255" - -"$have_gas_255": ; preds = %"$out_of_gas_254", %entry - %"$consume_256" = sub i64 %"$gasrem_252", 1 - store i64 %"$consume_256", i64* @_gasrem, align 8 - %"$dyndisp_table_260_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$dyndisp_table_260_salloc_salloc" = call i8* @_salloc(i8* %"$dyndisp_table_260_salloc_load", i64 32) - %"$dyndisp_table_260_salloc" = bitcast i8* %"$dyndisp_table_260_salloc_salloc" to [2 x { i8*, i8* }]* - %"$dyndisp_table_260" = bitcast [2 x { i8*, i8* }]* %"$dyndisp_table_260_salloc" to { i8*, i8* }* - %"$dyndisp_gep_261" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_260", i32 1 - %"$dyndisp_pcast_262" = bitcast { i8*, i8* }* %"$dyndisp_gep_261" to { { { { %TName_List_String* (i8*, %TName_List_String*)*, i8* } (i8*, %TName_List_String*)*, i8* } (i8*, { { { %TName_List_String* (i8*, { %TName_List_String* (i8*, %TName_List_String*)*, i8* })*, i8* } (i8*, %String)*, i8* } (i8*, %TName_List_String*)*, i8* })*, i8* } (i8*)*, i8* }* - store { { { { %TName_List_String* (i8*, %TName_List_String*)*, i8* } (i8*, %TName_List_String*)*, i8* } (i8*, { { { %TName_List_String* (i8*, { %TName_List_String* (i8*, %TName_List_String*)*, i8* })*, i8* } (i8*, %String)*, i8* } (i8*, %TName_List_String*)*, i8* })*, i8* } (i8*)*, i8* } { { { { %TName_List_String* (i8*, %TName_List_String*)*, i8* } (i8*, %TName_List_String*)*, i8* } (i8*, { { { %TName_List_String* (i8*, { %TName_List_String* (i8*, %TName_List_String*)*, i8* })*, i8* } (i8*, %String)*, i8* } (i8*, %TName_List_String*)*, i8* })*, i8* } (i8*)* bitcast ({ { { %TName_List_String* (i8*, %TName_List_String*)*, i8* } (i8*, %TName_List_String*)*, i8* } (i8*, { { { %TName_List_String* (i8*, { %TName_List_String* (i8*, %TName_List_String*)*, i8* })*, i8* } (i8*, %String)*, i8* } (i8*, %TName_List_String*)*, i8* })*, i8* } (%"$$fundef_50_env_187"*)* @"$fundef_50" to { { { %TName_List_String* (i8*, %TName_List_String*)*, i8* } (i8*, %TName_List_String*)*, i8* } (i8*, { { { %TName_List_String* (i8*, { %TName_List_String* (i8*, %TName_List_String*)*, i8* })*, i8* } (i8*, %String)*, i8* } (i8*, %TName_List_String*)*, i8* })*, i8* } (i8*)*), i8* null }, { { { { %TName_List_String* (i8*, %TName_List_String*)*, i8* } (i8*, %TName_List_String*)*, i8* } (i8*, { { { %TName_List_String* (i8*, { %TName_List_String* (i8*, %TName_List_String*)*, i8* })*, i8* } (i8*, %String)*, i8* } (i8*, %TName_List_String*)*, i8* })*, i8* } (i8*)*, i8* }* %"$dyndisp_pcast_262", align 8 - store { i8*, i8* }* %"$dyndisp_table_260", { i8*, i8* }** %"$retval_49", align 8, !dbg !60 - %"$$retval_49_263" = load { i8*, i8* }*, { i8*, i8* }** %"$retval_49", align 8 - ret { i8*, i8* }* %"$$retval_49_263" + %"$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 = %entry + call void @_out_of_gas() + br label %"$have_gas_257" + +"$have_gas_257": ; preds = %"$out_of_gas_256", %entry + %"$consume_258" = sub i64 %"$gasrem_254", 1 + store i64 %"$consume_258", i64* @_gasrem, align 8 + %"$dyndisp_table_262_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$dyndisp_table_262_salloc_salloc" = call i8* @_salloc(i8* %"$dyndisp_table_262_salloc_load", i64 32) + %"$dyndisp_table_262_salloc" = bitcast i8* %"$dyndisp_table_262_salloc_salloc" to [2 x { i8*, i8* }]* + %"$dyndisp_table_262" = bitcast [2 x { i8*, i8* }]* %"$dyndisp_table_262_salloc" to { i8*, i8* }* + %"$dyndisp_gep_263" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_262", i32 1 + %"$dyndisp_pcast_264" = bitcast { i8*, i8* }* %"$dyndisp_gep_263" to { { { { %TName_List_String* (i8*, %TName_List_String*)*, i8* } (i8*, %TName_List_String*)*, i8* } (i8*, { { { %TName_List_String* (i8*, { %TName_List_String* (i8*, %TName_List_String*)*, i8* })*, i8* } (i8*, %String)*, i8* } (i8*, %TName_List_String*)*, i8* })*, i8* } (i8*)*, i8* }* + store { { { { %TName_List_String* (i8*, %TName_List_String*)*, i8* } (i8*, %TName_List_String*)*, i8* } (i8*, { { { %TName_List_String* (i8*, { %TName_List_String* (i8*, %TName_List_String*)*, i8* })*, i8* } (i8*, %String)*, i8* } (i8*, %TName_List_String*)*, i8* })*, i8* } (i8*)*, i8* } { { { { %TName_List_String* (i8*, %TName_List_String*)*, i8* } (i8*, %TName_List_String*)*, i8* } (i8*, { { { %TName_List_String* (i8*, { %TName_List_String* (i8*, %TName_List_String*)*, i8* })*, i8* } (i8*, %String)*, i8* } (i8*, %TName_List_String*)*, i8* })*, i8* } (i8*)* bitcast ({ { { %TName_List_String* (i8*, %TName_List_String*)*, i8* } (i8*, %TName_List_String*)*, i8* } (i8*, { { { %TName_List_String* (i8*, { %TName_List_String* (i8*, %TName_List_String*)*, i8* })*, i8* } (i8*, %String)*, i8* } (i8*, %TName_List_String*)*, i8* })*, i8* } (%"$$fundef_50_env_187"*)* @"$fundef_50" to { { { %TName_List_String* (i8*, %TName_List_String*)*, i8* } (i8*, %TName_List_String*)*, i8* } (i8*, { { { %TName_List_String* (i8*, { %TName_List_String* (i8*, %TName_List_String*)*, i8* })*, i8* } (i8*, %String)*, i8* } (i8*, %TName_List_String*)*, i8* })*, i8* } (i8*)*), i8* null }, { { { { %TName_List_String* (i8*, %TName_List_String*)*, i8* } (i8*, %TName_List_String*)*, i8* } (i8*, { { { %TName_List_String* (i8*, { %TName_List_String* (i8*, %TName_List_String*)*, i8* })*, i8* } (i8*, %String)*, i8* } (i8*, %TName_List_String*)*, i8* })*, i8* } (i8*)*, i8* }* %"$dyndisp_pcast_264", align 8 + store { i8*, i8* }* %"$dyndisp_table_262", { i8*, i8* }** %"$retval_49", align 8, !dbg !98 + %"$$retval_49_265" = load { i8*, i8* }*, { i8*, i8* }** %"$retval_49", align 8 + ret { i8*, i8* }* %"$$retval_49_265" } -define internal %TName_Option_String* @"$fundef_74"(%"$$fundef_74_env_189"* %0, %TName_List_String* %1) !dbg !61 { +define internal %TName_Option_String* @"$fundef_74"(%"$$fundef_74_env_189"* %0, %TName_List_String* %1) !dbg !99 { entry: + %"$l_253" = alloca %TName_List_String*, align 8 + store %TName_List_String* %1, %TName_List_String** %"$l_253", align 8 + call void @llvm.dbg.declare(metadata %TName_List_String** %"$l_253", metadata !100, metadata !DIExpression()), !dbg !101 %"$retval_75" = alloca %TName_Option_String*, align 8 - %"$gasrem_216" = load i64, i64* @_gasrem, align 8 - %"$gascmp_217" = icmp ugt i64 2, %"$gasrem_216" - br i1 %"$gascmp_217", label %"$out_of_gas_218", label %"$have_gas_219" - -"$out_of_gas_218": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_219" - -"$have_gas_219": ; preds = %"$out_of_gas_218", %entry - %"$consume_220" = sub i64 %"$gasrem_216", 2 - store i64 %"$consume_220", i64* @_gasrem, align 8 - %"$l_tag_222" = getelementptr inbounds %TName_List_String, %TName_List_String* %1, i32 0, i32 0 - %"$l_tag_223" = load i8, i8* %"$l_tag_222", align 1 - switch i8 %"$l_tag_223", label %"$empty_default_224" [ - i8 0, label %"$Cons_225" - i8 1, label %"$Nil_241" - ], !dbg !62 - -"$Cons_225": ; preds = %"$have_gas_219" - %"$l_226" = bitcast %TName_List_String* %1 to %CName_Cons_String* - %"$h_gep_227" = getelementptr inbounds %CName_Cons_String, %CName_Cons_String* %"$l_226", i32 0, i32 1 - %"$h_load_228" = load %String, %String* %"$h_gep_227", align 8 + call void @llvm.dbg.declare(metadata %TName_Option_String** %"$retval_75", metadata !102, metadata !DIExpression()), !dbg !105 + %"$gasrem_217" = load i64, i64* @_gasrem, align 8 + %"$gascmp_218" = icmp ugt i64 2, %"$gasrem_217" + br i1 %"$gascmp_218", label %"$out_of_gas_219", label %"$have_gas_220" + +"$out_of_gas_219": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_220" + +"$have_gas_220": ; preds = %"$out_of_gas_219", %entry + %"$consume_221" = sub i64 %"$gasrem_217", 2 + store i64 %"$consume_221", i64* @_gasrem, align 8 + %"$l_tag_223" = getelementptr inbounds %TName_List_String, %TName_List_String* %1, i32 0, i32 0 + %"$l_tag_224" = load i8, i8* %"$l_tag_223", align 1 + switch i8 %"$l_tag_224", label %"$empty_default_225" [ + i8 0, label %"$Cons_226" + i8 1, label %"$Nil_242" + ], !dbg !106 + +"$Cons_226": ; preds = %"$have_gas_220" + %"$l_227" = bitcast %TName_List_String* %1 to %CName_Cons_String* + %"$h_gep_228" = getelementptr inbounds %CName_Cons_String, %CName_Cons_String* %"$l_227", i32 0, i32 1 + %"$h_load_229" = load %String, %String* %"$h_gep_228", align 8 %h = alloca %String, align 8 - store %String %"$h_load_228", %String* %h, align 8 - %"$t_gep_229" = getelementptr inbounds %CName_Cons_String, %CName_Cons_String* %"$l_226", i32 0, i32 2 - %"$t_load_230" = load %TName_List_String*, %TName_List_String** %"$t_gep_229", align 8 + store %String %"$h_load_229", %String* %h, align 8 + %"$t_gep_230" = getelementptr inbounds %CName_Cons_String, %CName_Cons_String* %"$l_227", i32 0, i32 2 + %"$t_load_231" = load %TName_List_String*, %TName_List_String** %"$t_gep_230", align 8 %t = alloca %TName_List_String*, align 8 - store %TName_List_String* %"$t_load_230", %TName_List_String** %t, 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 = %"$Cons_225" - call void @_out_of_gas() - br label %"$have_gas_234" - -"$have_gas_234": ; preds = %"$out_of_gas_233", %"$Cons_225" - %"$consume_235" = sub i64 %"$gasrem_231", 1 - store i64 %"$consume_235", i64* @_gasrem, align 8 - %"$h_236" = load %String, %String* %h, align 8 - %"$adtval_237_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_237_salloc" = call i8* @_salloc(i8* %"$adtval_237_load", i64 17) - %"$adtval_237" = bitcast i8* %"$adtval_237_salloc" to %CName_Some_String* - %"$adtgep_238" = getelementptr inbounds %CName_Some_String, %CName_Some_String* %"$adtval_237", i32 0, i32 0 - store i8 0, i8* %"$adtgep_238", align 1 - %"$adtgep_239" = getelementptr inbounds %CName_Some_String, %CName_Some_String* %"$adtval_237", i32 0, i32 1 - store %String %"$h_236", %String* %"$adtgep_239", align 8 - %"$adtptr_240" = bitcast %CName_Some_String* %"$adtval_237" to %TName_Option_String* - store %TName_Option_String* %"$adtptr_240", %TName_Option_String** %"$retval_75", align 8, !dbg !63 - br label %"$matchsucc_221" - -"$Nil_241": ; preds = %"$have_gas_219" - %"$l_242" = bitcast %TName_List_String* %1 to %CName_Nil_String* - %"$gasrem_243" = load i64, i64* @_gasrem, align 8 - %"$gascmp_244" = icmp ugt i64 1, %"$gasrem_243" - br i1 %"$gascmp_244", label %"$out_of_gas_245", label %"$have_gas_246" - -"$out_of_gas_245": ; preds = %"$Nil_241" - call void @_out_of_gas() - br label %"$have_gas_246" - -"$have_gas_246": ; preds = %"$out_of_gas_245", %"$Nil_241" - %"$consume_247" = sub i64 %"$gasrem_243", 1 - store i64 %"$consume_247", i64* @_gasrem, align 8 - %"$adtval_248_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_248_salloc" = call i8* @_salloc(i8* %"$adtval_248_load", i64 1) - %"$adtval_248" = bitcast i8* %"$adtval_248_salloc" to %CName_None_String* - %"$adtgep_249" = getelementptr inbounds %CName_None_String, %CName_None_String* %"$adtval_248", i32 0, i32 0 - store i8 1, i8* %"$adtgep_249", align 1 - %"$adtptr_250" = bitcast %CName_None_String* %"$adtval_248" to %TName_Option_String* - store %TName_Option_String* %"$adtptr_250", %TName_Option_String** %"$retval_75", align 8, !dbg !66 - br label %"$matchsucc_221" - -"$empty_default_224": ; preds = %"$have_gas_219" - br label %"$matchsucc_221" - -"$matchsucc_221": ; preds = %"$have_gas_246", %"$have_gas_234", %"$empty_default_224" - %"$$retval_75_251" = load %TName_Option_String*, %TName_Option_String** %"$retval_75", align 8 - ret %TName_Option_String* %"$$retval_75_251" + store %TName_List_String* %"$t_load_231", %TName_List_String** %t, 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 = %"$Cons_226" + call void @_out_of_gas() + br label %"$have_gas_235" + +"$have_gas_235": ; preds = %"$out_of_gas_234", %"$Cons_226" + %"$consume_236" = sub i64 %"$gasrem_232", 1 + store i64 %"$consume_236", i64* @_gasrem, align 8 + %"$h_237" = load %String, %String* %h, align 8 + %"$adtval_238_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_238_salloc" = call i8* @_salloc(i8* %"$adtval_238_load", i64 17) + %"$adtval_238" = bitcast i8* %"$adtval_238_salloc" to %CName_Some_String* + %"$adtgep_239" = getelementptr inbounds %CName_Some_String, %CName_Some_String* %"$adtval_238", i32 0, i32 0 + store i8 0, i8* %"$adtgep_239", align 1 + %"$adtgep_240" = getelementptr inbounds %CName_Some_String, %CName_Some_String* %"$adtval_238", i32 0, i32 1 + store %String %"$h_237", %String* %"$adtgep_240", align 8 + %"$adtptr_241" = bitcast %CName_Some_String* %"$adtval_238" to %TName_Option_String* + store %TName_Option_String* %"$adtptr_241", %TName_Option_String** %"$retval_75", align 8, !dbg !107 + br label %"$matchsucc_222" + +"$Nil_242": ; preds = %"$have_gas_220" + %"$l_243" = bitcast %TName_List_String* %1 to %CName_Nil_String* + %"$gasrem_244" = load i64, i64* @_gasrem, align 8 + %"$gascmp_245" = icmp ugt i64 1, %"$gasrem_244" + br i1 %"$gascmp_245", label %"$out_of_gas_246", label %"$have_gas_247" + +"$out_of_gas_246": ; preds = %"$Nil_242" + call void @_out_of_gas() + br label %"$have_gas_247" + +"$have_gas_247": ; preds = %"$out_of_gas_246", %"$Nil_242" + %"$consume_248" = sub i64 %"$gasrem_244", 1 + store i64 %"$consume_248", i64* @_gasrem, align 8 + %"$adtval_249_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_249_salloc" = call i8* @_salloc(i8* %"$adtval_249_load", i64 1) + %"$adtval_249" = bitcast i8* %"$adtval_249_salloc" to %CName_None_String* + %"$adtgep_250" = getelementptr inbounds %CName_None_String, %CName_None_String* %"$adtval_249", i32 0, i32 0 + store i8 1, i8* %"$adtgep_250", align 1 + %"$adtptr_251" = bitcast %CName_None_String* %"$adtval_249" to %TName_Option_String* + store %TName_Option_String* %"$adtptr_251", %TName_Option_String** %"$retval_75", align 8, !dbg !110 + br label %"$matchsucc_222" + +"$empty_default_225": ; preds = %"$have_gas_220" + br label %"$matchsucc_222" + +"$matchsucc_222": ; preds = %"$have_gas_247", %"$have_gas_235", %"$empty_default_225" + %"$$retval_75_252" = load %TName_Option_String*, %TName_Option_String** %"$retval_75", align 8 + ret %TName_Option_String* %"$$retval_75_252" } -define internal %TName_List_Message* @"$fundef_76"(%"$$fundef_76_env_190"* %0, i8* %1) !dbg !68 { +define internal %TName_List_Message* @"$fundef_76"(%"$$fundef_76_env_190"* %0, i8* %1) !dbg !112 { entry: + %"$m_216" = alloca i8*, align 8 + store i8* %1, i8** %"$m_216", align 8 + call void @llvm.dbg.declare(metadata i8** %"$m_216", metadata !113, metadata !DIExpression()), !dbg !116 %"$retval_77" = alloca %TName_List_Message*, align 8 + call void @llvm.dbg.declare(metadata %TName_List_Message** %"$retval_77", metadata !117, metadata !DIExpression()), !dbg !120 %"$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" @@ -1449,6 +1496,7 @@ entry: %"$consume_195" = sub i64 %"$gasrem_191", 1 store i64 %"$consume_195", i64* @_gasrem, align 8 %mty = alloca %TName_List_Message*, align 8 + call void @llvm.dbg.declare(metadata %TName_List_Message** %mty, metadata !121, metadata !DIExpression()), !dbg !122 %"$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" @@ -1466,7 +1514,7 @@ entry: %"$adtgep_202" = getelementptr inbounds %CName_Nil_Message, %CName_Nil_Message* %"$adtval_201", i32 0, i32 0 store i8 1, i8* %"$adtgep_202", align 1 %"$adtptr_203" = bitcast %CName_Nil_Message* %"$adtval_201" to %TName_List_Message* - store %TName_List_Message* %"$adtptr_203", %TName_List_Message** %mty, align 8, !dbg !69 + store %TName_List_Message* %"$adtptr_203", %TName_List_Message** %mty, align 8, !dbg !123 %"$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" @@ -1489,161 +1537,147 @@ entry: %"$adtgep_213" = getelementptr inbounds %CName_Cons_Message, %CName_Cons_Message* %"$adtval_210", i32 0, i32 2 store %TName_List_Message* %"$mty_209", %TName_List_Message** %"$adtgep_213", align 8 %"$adtptr_214" = bitcast %CName_Cons_Message* %"$adtval_210" to %TName_List_Message* - store %TName_List_Message* %"$adtptr_214", %TName_List_Message** %"$retval_77", align 8, !dbg !70 + store %TName_List_Message* %"$adtptr_214", %TName_List_Message** %"$retval_77", align 8, !dbg !124 %"$$retval_77_215" = load %TName_List_Message*, %TName_List_Message** %"$retval_77", align 8 ret %TName_List_Message* %"$$retval_77_215" } +; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn +declare void @llvm.dbg.declare(metadata, metadata, metadata) #0 + declare void @_out_of_gas() declare i8* @_salloc(i8*, i64) declare i64 @_literal_cost(%_TyDescrTy_Typ*, i8*) -; Function Attrs: nofree nosync nounwind readnone speculatable willreturn +; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn declare i64 @llvm.umin.i64(i64, i64) #0 declare %TName_Bool* @_eq_String(i8*, %String, %String) -define void @_init_libs() !dbg !71 { +define void @_init_libs() !dbg !125 { entry: - %"$gasrem_683" = load i64, i64* @_gasrem, align 8 - %"$gascmp_684" = icmp ugt i64 5, %"$gasrem_683" - br i1 %"$gascmp_684", label %"$out_of_gas_685", label %"$have_gas_686" + %"$gasrem_694" = load i64, i64* @_gasrem, align 8 + %"$gascmp_695" = icmp ugt i64 5, %"$gasrem_694" + br i1 %"$gascmp_695", label %"$out_of_gas_696", label %"$have_gas_697" -"$out_of_gas_685": ; preds = %entry +"$out_of_gas_696": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_686" + br label %"$have_gas_697" -"$have_gas_686": ; preds = %"$out_of_gas_685", %entry - %"$consume_687" = sub i64 %"$gasrem_683", 5 - store i64 %"$consume_687", i64* @_gasrem, align 8 - store %Int32 { i32 5 }, %Int32* @"$_gas_charge_acc_1", align 4, !dbg !73 - %"$gasrem_688" = load i64, i64* @_gasrem, align 8 - %"$gascmp_689" = icmp ugt i64 20, %"$gasrem_688" - br i1 %"$gascmp_689", label %"$out_of_gas_690", label %"$have_gas_691" +"$have_gas_697": ; preds = %"$out_of_gas_696", %entry + %"$consume_698" = sub i64 %"$gasrem_694", 5 + store i64 %"$consume_698", i64* @_gasrem, align 8 + store %Int32 { i32 5 }, %Int32* @"$_gas_charge_acc_1", align 4, !dbg !127 + %"$gasrem_699" = load i64, i64* @_gasrem, align 8 + %"$gascmp_700" = icmp ugt i64 20, %"$gasrem_699" + br i1 %"$gascmp_700", label %"$out_of_gas_701", label %"$have_gas_702" -"$out_of_gas_690": ; preds = %"$have_gas_686" +"$out_of_gas_701": ; preds = %"$have_gas_697" call void @_out_of_gas() - br label %"$have_gas_691" + br label %"$have_gas_702" -"$have_gas_691": ; preds = %"$out_of_gas_690", %"$have_gas_686" - %"$consume_692" = sub i64 %"$gasrem_688", 20 - store i64 %"$consume_692", i64* @_gasrem, align 8 - store %Int32 { i32 20 }, %Int32* @"$_gas_charge_accListUtils_0", align 4, !dbg !73 - %"$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" +"$have_gas_702": ; preds = %"$out_of_gas_701", %"$have_gas_697" + %"$consume_703" = sub i64 %"$gasrem_699", 20 + store i64 %"$consume_703", i64* @_gasrem, align 8 + store %Int32 { i32 20 }, %Int32* @"$_gas_charge_accListUtils_0", align 4, !dbg !127 + %"$gasrem_704" = load i64, i64* @_gasrem, align 8 + %"$gascmp_705" = icmp ugt i64 1, %"$gasrem_704" + br i1 %"$gascmp_705", label %"$out_of_gas_706", label %"$have_gas_707" -"$out_of_gas_695": ; preds = %"$have_gas_691" +"$out_of_gas_706": ; preds = %"$have_gas_702" call void @_out_of_gas() - br label %"$have_gas_696" + br label %"$have_gas_707" -"$have_gas_696": ; preds = %"$out_of_gas_695", %"$have_gas_691" - %"$consume_697" = sub i64 %"$gasrem_693", 1 - store i64 %"$consume_697", i64* @_gasrem, align 8 - store { %TName_List_Message* (i8*, i8*)*, i8* } { %TName_List_Message* (i8*, i8*)* bitcast (%TName_List_Message* (%"$$fundef_76_env_190"*, i8*)* @"$fundef_76" to %TName_List_Message* (i8*, i8*)*), i8* null }, { %TName_List_Message* (i8*, i8*)*, i8* }* @accounting_tests.one_msg, align 8, !dbg !74 - %"$gasrem_701" = load i64, i64* @_gasrem, align 8 - %"$gascmp_702" = icmp ugt i64 2, %"$gasrem_701" - br i1 %"$gascmp_702", label %"$out_of_gas_703", label %"$have_gas_704" +"$have_gas_707": ; preds = %"$out_of_gas_706", %"$have_gas_702" + %"$consume_708" = sub i64 %"$gasrem_704", 1 + store i64 %"$consume_708", i64* @_gasrem, align 8 + store { %TName_List_Message* (i8*, i8*)*, i8* } { %TName_List_Message* (i8*, i8*)* bitcast (%TName_List_Message* (%"$$fundef_76_env_190"*, i8*)* @"$fundef_76" to %TName_List_Message* (i8*, i8*)*), i8* null }, { %TName_List_Message* (i8*, i8*)*, i8* }* @accounting_tests.one_msg, align 8, !dbg !128 + %"$gasrem_712" = load i64, i64* @_gasrem, align 8 + %"$gascmp_713" = icmp ugt i64 2, %"$gasrem_712" + br i1 %"$gascmp_713", label %"$out_of_gas_714", label %"$have_gas_715" -"$out_of_gas_703": ; preds = %"$have_gas_696" +"$out_of_gas_714": ; preds = %"$have_gas_707" call void @_out_of_gas() - br label %"$have_gas_704" + br label %"$have_gas_715" -"$have_gas_704": ; preds = %"$out_of_gas_703", %"$have_gas_696" - %"$consume_705" = sub i64 %"$gasrem_701", 2 - store i64 %"$consume_705", i64* @_gasrem, align 8 - store { %TName_Option_String* (i8*, %TName_List_String*)*, i8* } { %TName_Option_String* (i8*, %TName_List_String*)* bitcast (%TName_Option_String* (%"$$fundef_74_env_189"*, %TName_List_String*)* @"$fundef_74" to %TName_Option_String* (i8*, %TName_List_String*)*), i8* null }, { %TName_Option_String* (i8*, %TName_List_String*)*, i8* }* @accounting_tests.list_head_string, align 8, !dbg !75 - %"$gasrem_709" = load i64, i64* @_gasrem, align 8 - %"$gascmp_710" = icmp ugt i64 7, %"$gasrem_709" - br i1 %"$gascmp_710", label %"$out_of_gas_711", label %"$have_gas_712" +"$have_gas_715": ; preds = %"$out_of_gas_714", %"$have_gas_707" + %"$consume_716" = sub i64 %"$gasrem_712", 2 + store i64 %"$consume_716", i64* @_gasrem, align 8 + store { %TName_Option_String* (i8*, %TName_List_String*)*, i8* } { %TName_Option_String* (i8*, %TName_List_String*)* bitcast (%TName_Option_String* (%"$$fundef_74_env_189"*, %TName_List_String*)* @"$fundef_74" to %TName_Option_String* (i8*, %TName_List_String*)*), i8* null }, { %TName_Option_String* (i8*, %TName_List_String*)*, i8* }* @accounting_tests.list_head_string, align 8, !dbg !129 + %"$gasrem_720" = load i64, i64* @_gasrem, align 8 + %"$gascmp_721" = icmp ugt i64 7, %"$gasrem_720" + br i1 %"$gascmp_721", label %"$out_of_gas_722", label %"$have_gas_723" -"$out_of_gas_711": ; preds = %"$have_gas_704" +"$out_of_gas_722": ; preds = %"$have_gas_715" call void @_out_of_gas() - br label %"$have_gas_712" + br label %"$have_gas_723" -"$have_gas_712": ; preds = %"$out_of_gas_711", %"$have_gas_704" - %"$consume_713" = sub i64 %"$gasrem_709", 7 - store i64 %"$consume_713", i64* @_gasrem, align 8 +"$have_gas_723": ; preds = %"$out_of_gas_722", %"$have_gas_715" + %"$consume_724" = sub i64 %"$gasrem_720", 7 + store i64 %"$consume_724", i64* @_gasrem, align 8 %list_foldk = alloca { i8*, i8* }*, align 8 - %"$dyndisp_table_717_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$dyndisp_table_717_salloc_salloc" = call i8* @_salloc(i8* %"$dyndisp_table_717_salloc_load", i64 32) - %"$dyndisp_table_717_salloc" = bitcast i8* %"$dyndisp_table_717_salloc_salloc" to [2 x { i8*, i8* }]* - %"$dyndisp_table_717" = bitcast [2 x { i8*, i8* }]* %"$dyndisp_table_717_salloc" to { i8*, i8* }* - %"$dyndisp_gep_718" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_717", i32 0 - %"$dyndisp_pcast_719" = bitcast { i8*, i8* }* %"$dyndisp_gep_718" to { { i8*, i8* }* (i8*)*, i8* }* - store { { i8*, i8* }* (i8*)*, i8* } { { i8*, i8* }* (i8*)* bitcast ({ i8*, i8* }* (%"$$fundef_48_env_188"*)* @"$fundef_48" to { i8*, i8* }* (i8*)*), i8* null }, { { i8*, i8* }* (i8*)*, i8* }* %"$dyndisp_pcast_719", align 8 - store { i8*, i8* }* %"$dyndisp_table_717", { i8*, i8* }** %list_foldk, align 8, !dbg !76 + %"$dyndisp_table_728_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$dyndisp_table_728_salloc_salloc" = call i8* @_salloc(i8* %"$dyndisp_table_728_salloc_load", i64 32) + %"$dyndisp_table_728_salloc" = bitcast i8* %"$dyndisp_table_728_salloc_salloc" to [2 x { i8*, i8* }]* + %"$dyndisp_table_728" = bitcast [2 x { i8*, i8* }]* %"$dyndisp_table_728_salloc" to { i8*, i8* }* + %"$dyndisp_gep_729" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_728", i32 0 + %"$dyndisp_pcast_730" = bitcast { i8*, i8* }* %"$dyndisp_gep_729" to { { i8*, i8* }* (i8*)*, i8* }* + store { { i8*, i8* }* (i8*)*, i8* } { { i8*, i8* }* (i8*)* bitcast ({ i8*, i8* }* (%"$$fundef_48_env_188"*)* @"$fundef_48" to { i8*, i8* }* (i8*)*), i8* null }, { { i8*, i8* }* (i8*)*, i8* }* %"$dyndisp_pcast_730", align 8 + store { i8*, i8* }* %"$dyndisp_table_728", { i8*, i8* }** %list_foldk, align 8, !dbg !130 %equal = alloca { { %TName_Bool* (i8*, %String)*, i8* } (i8*, %String)*, i8* }, align 8 - store { { %TName_Bool* (i8*, %String)*, i8* } (i8*, %String)*, i8* } { { %TName_Bool* (i8*, %String)*, i8* } (i8*, %String)* bitcast ({ %TName_Bool* (i8*, %String)*, i8* } (%"$$fundef_60_env_182"*, %String)* @"$fundef_60" to { %TName_Bool* (i8*, %String)*, i8* } (i8*, %String)*), i8* null }, { { %TName_Bool* (i8*, %String)*, i8* } (i8*, %String)*, i8* }* %equal, align 8, !dbg !77 - %"$$fundef_64_envp_723_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_64_envp_723_salloc" = call i8* @_salloc(i8* %"$$fundef_64_envp_723_load", i64 24) - %"$$fundef_64_envp_723" = bitcast i8* %"$$fundef_64_envp_723_salloc" to %"$$fundef_64_env_180"* - %"$$fundef_64_env_voidp_725" = bitcast %"$$fundef_64_env_180"* %"$$fundef_64_envp_723" to i8* - %"$$fundef_64_cloval_726" = insertvalue { { %TName_Bool* (i8*, %TName_List_String*)*, i8* } (i8*, %TName_List_String*)*, i8* } { { %TName_Bool* (i8*, %TName_List_String*)*, i8* } (i8*, %TName_List_String*)* bitcast ({ %TName_Bool* (i8*, %TName_List_String*)*, i8* } (%"$$fundef_64_env_180"*, %TName_List_String*)* @"$fundef_64" to { %TName_Bool* (i8*, %TName_List_String*)*, i8* } (i8*, %TName_List_String*)*), i8* undef }, i8* %"$$fundef_64_env_voidp_725", 1 - %"$$fundef_64_env_equal_727" = getelementptr inbounds %"$$fundef_64_env_180", %"$$fundef_64_env_180"* %"$$fundef_64_envp_723", i32 0, i32 0 - %"$equal_728" = load { { %TName_Bool* (i8*, %String)*, i8* } (i8*, %String)*, i8* }, { { %TName_Bool* (i8*, %String)*, i8* } (i8*, %String)*, i8* }* %equal, align 8 - store { { %TName_Bool* (i8*, %String)*, i8* } (i8*, %String)*, i8* } %"$equal_728", { { %TName_Bool* (i8*, %String)*, i8* } (i8*, %String)*, i8* }* %"$$fundef_64_env_equal_727", align 8 - %"$$fundef_64_env_list_foldk_729" = getelementptr inbounds %"$$fundef_64_env_180", %"$$fundef_64_env_180"* %"$$fundef_64_envp_723", i32 0, i32 1 - %"$list_foldk_730" = load { i8*, i8* }*, { i8*, i8* }** %list_foldk, align 8 - store { i8*, i8* }* %"$list_foldk_730", { i8*, i8* }** %"$$fundef_64_env_list_foldk_729", align 8 - store { { %TName_Bool* (i8*, %TName_List_String*)*, i8* } (i8*, %TName_List_String*)*, i8* } %"$$fundef_64_cloval_726", { { %TName_Bool* (i8*, %TName_List_String*)*, i8* } (i8*, %TName_List_String*)*, i8* }* @accounting_tests.list_eq_string, align 8, !dbg !78 + store { { %TName_Bool* (i8*, %String)*, i8* } (i8*, %String)*, i8* } { { %TName_Bool* (i8*, %String)*, i8* } (i8*, %String)* bitcast ({ %TName_Bool* (i8*, %String)*, i8* } (%"$$fundef_60_env_182"*, %String)* @"$fundef_60" to { %TName_Bool* (i8*, %String)*, i8* } (i8*, %String)*), i8* null }, { { %TName_Bool* (i8*, %String)*, i8* } (i8*, %String)*, i8* }* %equal, align 8, !dbg !131 + %"$$fundef_64_envp_734_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_64_envp_734_salloc" = call i8* @_salloc(i8* %"$$fundef_64_envp_734_load", i64 24) + %"$$fundef_64_envp_734" = bitcast i8* %"$$fundef_64_envp_734_salloc" to %"$$fundef_64_env_180"* + %"$$fundef_64_env_voidp_736" = bitcast %"$$fundef_64_env_180"* %"$$fundef_64_envp_734" to i8* + %"$$fundef_64_cloval_737" = insertvalue { { %TName_Bool* (i8*, %TName_List_String*)*, i8* } (i8*, %TName_List_String*)*, i8* } { { %TName_Bool* (i8*, %TName_List_String*)*, i8* } (i8*, %TName_List_String*)* bitcast ({ %TName_Bool* (i8*, %TName_List_String*)*, i8* } (%"$$fundef_64_env_180"*, %TName_List_String*)* @"$fundef_64" to { %TName_Bool* (i8*, %TName_List_String*)*, i8* } (i8*, %TName_List_String*)*), i8* undef }, i8* %"$$fundef_64_env_voidp_736", 1 + %"$$fundef_64_env_equal_738" = getelementptr inbounds %"$$fundef_64_env_180", %"$$fundef_64_env_180"* %"$$fundef_64_envp_734", i32 0, i32 0 + %"$equal_739" = load { { %TName_Bool* (i8*, %String)*, i8* } (i8*, %String)*, i8* }, { { %TName_Bool* (i8*, %String)*, i8* } (i8*, %String)*, i8* }* %equal, align 8 + store { { %TName_Bool* (i8*, %String)*, i8* } (i8*, %String)*, i8* } %"$equal_739", { { %TName_Bool* (i8*, %String)*, i8* } (i8*, %String)*, i8* }* %"$$fundef_64_env_equal_738", align 8 + %"$$fundef_64_env_list_foldk_740" = getelementptr inbounds %"$$fundef_64_env_180", %"$$fundef_64_env_180"* %"$$fundef_64_envp_734", i32 0, i32 1 + %"$list_foldk_741" = load { i8*, i8* }*, { i8*, i8* }** %list_foldk, align 8 + store { i8*, i8* }* %"$list_foldk_741", { i8*, i8* }** %"$$fundef_64_env_list_foldk_740", align 8 + store { { %TName_Bool* (i8*, %TName_List_String*)*, i8* } (i8*, %TName_List_String*)*, i8* } %"$$fundef_64_cloval_737", { { %TName_Bool* (i8*, %TName_List_String*)*, i8* } (i8*, %TName_List_String*)*, i8* }* @accounting_tests.list_eq_string, align 8, !dbg !132 ret void } -define void @_deploy_ops() !dbg !79 { +define void @_deploy_ops() !dbg !133 { entry: - %"$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" + %"$gasrem_742" = load i64, i64* @_gasrem, align 8 + %"$gascmp_743" = icmp ugt i64 1, %"$gasrem_742" + br i1 %"$gascmp_743", label %"$out_of_gas_744", label %"$have_gas_745" -"$out_of_gas_733": ; preds = %entry +"$out_of_gas_744": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_734" + br label %"$have_gas_745" -"$have_gas_734": ; preds = %"$out_of_gas_733", %entry - %"$consume_735" = sub i64 %"$gasrem_731", 1 - store i64 %"$consume_735", i64* @_gasrem, align 8 +"$have_gas_745": ; preds = %"$out_of_gas_744", %entry + %"$consume_746" = sub i64 %"$gasrem_742", 1 + store i64 %"$consume_746", i64* @_gasrem, align 8 %"$test_string_1_78" = alloca %String, 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_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", 1 - store i64 %"$consume_740", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_741", i32 0, i32 0), i32 5 }, %String* %"$test_string_1_78", align 8, !dbg !80 - %"$execptr_load_742" = load i8*, i8** @_execptr, align 8 - %"$$test_string_1_78_744" = load %String, %String* %"$test_string_1_78", align 8 - %"$update_value_745" = alloca %String, align 8 - store %String %"$$test_string_1_78_744", %String* %"$update_value_745", align 8 - %"$update_value_746" = bitcast %String* %"$update_value_745" to i8* - call void @_update_field(i8* %"$execptr_load_742", i8* getelementptr inbounds ([14 x i8], [14 x i8]* @"$test_string_1_743", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_String_100", i32 0, i8* null, i8* %"$update_value_746"), !dbg !80 - %"$test_string_2_79" = alloca %String, align 8 + call void @llvm.dbg.declare(metadata %String* %"$test_string_1_78", metadata !134, metadata !DIExpression()), !dbg !135 %"$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 = %"$have_gas_739" +"$out_of_gas_749": ; preds = %"$have_gas_745" call void @_out_of_gas() br label %"$have_gas_750" -"$have_gas_750": ; preds = %"$out_of_gas_749", %"$have_gas_739" +"$have_gas_750": ; preds = %"$out_of_gas_749", %"$have_gas_745" %"$consume_751" = sub i64 %"$gasrem_747", 1 store i64 %"$consume_751", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_752", i32 0, i32 0), i32 5 }, %String* %"$test_string_2_79", align 8, !dbg !81 + store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_752", i32 0, i32 0), i32 5 }, %String* %"$test_string_1_78", align 8, !dbg !136 %"$execptr_load_753" = load i8*, i8** @_execptr, align 8 - %"$$test_string_2_79_755" = load %String, %String* %"$test_string_2_79", align 8 + %"$$test_string_1_78_755" = load %String, %String* %"$test_string_1_78", align 8 %"$update_value_756" = alloca %String, align 8 - store %String %"$$test_string_2_79_755", %String* %"$update_value_756", align 8 + store %String %"$$test_string_1_78_755", %String* %"$update_value_756", align 8 %"$update_value_757" = bitcast %String* %"$update_value_756" to i8* - call void @_update_field(i8* %"$execptr_load_753", i8* getelementptr inbounds ([14 x i8], [14 x i8]* @"$test_string_2_754", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_String_100", i32 0, i8* null, i8* %"$update_value_757"), !dbg !81 - %"$outgoing_amount_80" = alloca %Uint128, align 8 + call void @_update_field(i8* %"$execptr_load_753", i8* getelementptr inbounds ([14 x i8], [14 x i8]* @"$test_string_1_754", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_String_100", i32 0, i8* null, i8* %"$update_value_757"), !dbg !136 + %"$test_string_2_79" = alloca %String, align 8 + call void @llvm.dbg.declare(metadata %String* %"$test_string_2_79", metadata !137, metadata !DIExpression()), !dbg !138 %"$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" @@ -1655,160 +1689,193 @@ entry: "$have_gas_761": ; preds = %"$out_of_gas_760", %"$have_gas_750" %"$consume_762" = sub i64 %"$gasrem_758", 1 store i64 %"$consume_762", i64* @_gasrem, align 8 - store %Uint128 { i128 10 }, %Uint128* %"$outgoing_amount_80", align 8, !dbg !82 - %"$execptr_load_763" = load i8*, i8** @_execptr, align 8 - %"$$outgoing_amount_80_765" = load %Uint128, %Uint128* %"$outgoing_amount_80", align 8 - %"$update_value_766" = alloca %Uint128, align 8 - store %Uint128 %"$$outgoing_amount_80_765", %Uint128* %"$update_value_766", align 8 - %"$update_value_767" = bitcast %Uint128* %"$update_value_766" to i8* - call void @_update_field(i8* %"$execptr_load_763", i8* getelementptr inbounds ([16 x i8], [16 x i8]* @"$outgoing_amount_764", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Uint128_94", i32 0, i8* null, i8* %"$update_value_767"), !dbg !82 + store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_763", i32 0, i32 0), i32 5 }, %String* %"$test_string_2_79", align 8, !dbg !139 + %"$execptr_load_764" = load i8*, i8** @_execptr, align 8 + %"$$test_string_2_79_766" = load %String, %String* %"$test_string_2_79", align 8 + %"$update_value_767" = alloca %String, align 8 + store %String %"$$test_string_2_79_766", %String* %"$update_value_767", align 8 + %"$update_value_768" = bitcast %String* %"$update_value_767" to i8* + call void @_update_field(i8* %"$execptr_load_764", i8* getelementptr inbounds ([14 x i8], [14 x i8]* @"$test_string_2_765", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_String_100", i32 0, i8* null, i8* %"$update_value_768"), !dbg !139 + %"$outgoing_amount_80" = alloca %Uint128, align 8 + call void @llvm.dbg.declare(metadata %Uint128* %"$outgoing_amount_80", metadata !140, metadata !DIExpression()), !dbg !142 + %"$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 = %"$have_gas_761" + call void @_out_of_gas() + br label %"$have_gas_772" + +"$have_gas_772": ; preds = %"$out_of_gas_771", %"$have_gas_761" + %"$consume_773" = sub i64 %"$gasrem_769", 1 + store i64 %"$consume_773", i64* @_gasrem, align 8 + store %Uint128 { i128 10 }, %Uint128* %"$outgoing_amount_80", align 8, !dbg !143 + %"$execptr_load_774" = load i8*, i8** @_execptr, align 8 + %"$$outgoing_amount_80_776" = load %Uint128, %Uint128* %"$outgoing_amount_80", align 8 + %"$update_value_777" = alloca %Uint128, align 8 + store %Uint128 %"$$outgoing_amount_80_776", %Uint128* %"$update_value_777", align 8 + %"$update_value_778" = bitcast %Uint128* %"$update_value_777" to i8* + call void @_update_field(i8* %"$execptr_load_774", i8* getelementptr inbounds ([16 x i8], [16 x i8]* @"$outgoing_amount_775", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Uint128_94", i32 0, i8* null, i8* %"$update_value_778"), !dbg !143 %"$max_outgoing_msgs_81" = alloca %Uint128, align 8 - %"$gasrem_768" = load i64, i64* @_gasrem, align 8 - %"$gascmp_769" = icmp ugt i64 1, %"$gasrem_768" - br i1 %"$gascmp_769", label %"$out_of_gas_770", label %"$have_gas_771" - -"$out_of_gas_770": ; preds = %"$have_gas_761" - call void @_out_of_gas() - br label %"$have_gas_771" - -"$have_gas_771": ; preds = %"$out_of_gas_770", %"$have_gas_761" - %"$consume_772" = sub i64 %"$gasrem_768", 1 - store i64 %"$consume_772", i64* @_gasrem, align 8 - store %Uint128 { i128 3 }, %Uint128* %"$max_outgoing_msgs_81", align 8, !dbg !83 - %"$execptr_load_773" = load i8*, i8** @_execptr, align 8 - %"$$max_outgoing_msgs_81_775" = load %Uint128, %Uint128* %"$max_outgoing_msgs_81", align 8 - %"$update_value_776" = alloca %Uint128, align 8 - store %Uint128 %"$$max_outgoing_msgs_81_775", %Uint128* %"$update_value_776", align 8 - %"$update_value_777" = bitcast %Uint128* %"$update_value_776" to i8* - call void @_update_field(i8* %"$execptr_load_773", i8* getelementptr inbounds ([18 x i8], [18 x i8]* @"$max_outgoing_msgs_774", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Uint128_94", i32 0, i8* null, i8* %"$update_value_777"), !dbg !83 + call void @llvm.dbg.declare(metadata %Uint128* %"$max_outgoing_msgs_81", metadata !144, metadata !DIExpression()), !dbg !145 + %"$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 = %"$have_gas_772" + call void @_out_of_gas() + br label %"$have_gas_782" + +"$have_gas_782": ; preds = %"$out_of_gas_781", %"$have_gas_772" + %"$consume_783" = sub i64 %"$gasrem_779", 1 + store i64 %"$consume_783", i64* @_gasrem, align 8 + store %Uint128 { i128 3 }, %Uint128* %"$max_outgoing_msgs_81", align 8, !dbg !146 + %"$execptr_load_784" = load i8*, i8** @_execptr, align 8 + %"$$max_outgoing_msgs_81_786" = load %Uint128, %Uint128* %"$max_outgoing_msgs_81", align 8 + %"$update_value_787" = alloca %Uint128, align 8 + store %Uint128 %"$$max_outgoing_msgs_81_786", %Uint128* %"$update_value_787", align 8 + %"$update_value_788" = bitcast %Uint128* %"$update_value_787" to i8* + call void @_update_field(i8* %"$execptr_load_784", i8* getelementptr inbounds ([18 x i8], [18 x i8]* @"$max_outgoing_msgs_785", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Uint128_94", i32 0, i8* null, i8* %"$update_value_788"), !dbg !146 ret void } declare void @_update_field(i8*, i8*, %_TyDescrTy_Typ*, i32, i8*, i8*) -define internal void @"$Reset_778"(%Uint128 %_amount, [20 x i8]* %"$_origin_779", [20 x i8]* %"$_sender_780") !dbg !84 { +define internal void @"$Reset_789"(%Uint128 %_amount, [20 x i8]* %"$_origin_790", [20 x i8]* %"$_sender_791") !dbg !147 { entry: - %_origin = load [20 x i8], [20 x i8]* %"$_origin_779", align 1 - %_sender = load [20 x i8], [20 x i8]* %"$_sender_780", align 1 - %"$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 + %"$_sender_861" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_sender_791", [20 x i8]** %"$_sender_861", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_sender_861", metadata !148, metadata !DIExpression()), !dbg !150 + %"$_origin_860" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_origin_790", [20 x i8]** %"$_origin_860", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_origin_860", metadata !151, metadata !DIExpression()), !dbg !150 + %"$_amount_859" = alloca %Uint128, align 8 + store %Uint128 %_amount, %Uint128* %"$_amount_859", align 8 + call void @llvm.dbg.declare(metadata %Uint128* %"$_amount_859", metadata !152, metadata !DIExpression()), !dbg !150 + %_origin = load [20 x i8], [20 x i8]* %"$_origin_790", align 1 + %_sender = load [20 x i8], [20 x i8]* %"$_sender_791", align 1 + %"$gasrem_792" = load i64, i64* @_gasrem, align 8 + %"$gascmp_793" = icmp ugt i64 1, %"$gasrem_792" + br i1 %"$gascmp_793", label %"$out_of_gas_794", label %"$have_gas_795" + +"$out_of_gas_794": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_795" + +"$have_gas_795": ; preds = %"$out_of_gas_794", %entry + %"$consume_796" = sub i64 %"$gasrem_792", 1 + store i64 %"$consume_796", i64* @_gasrem, align 8 %msg = alloca i8*, align 8 - %"$gasrem_786" = load i64, i64* @_gasrem, align 8 - %"$gascmp_787" = icmp ugt i64 1, %"$gasrem_786" - br i1 %"$gascmp_787", label %"$out_of_gas_788", label %"$have_gas_789" - -"$out_of_gas_788": ; preds = %"$have_gas_784" - call void @_out_of_gas() - br label %"$have_gas_789" - -"$have_gas_789": ; preds = %"$out_of_gas_788", %"$have_gas_784" - %"$consume_790" = sub i64 %"$gasrem_786", 1 - store i64 %"$consume_790", i64* @_gasrem, align 8 - %"$msgobj_791_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$msgobj_791_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_791_salloc_load", i64 125) - %"$msgobj_791_salloc" = bitcast i8* %"$msgobj_791_salloc_salloc" to [125 x i8]* - %"$msgobj_791" = bitcast [125 x i8]* %"$msgobj_791_salloc" to i8* - store i8 3, i8* %"$msgobj_791", align 1 - %"$msgobj_fname_793" = getelementptr i8, i8* %"$msgobj_791", i32 1 - %"$msgobj_fname_794" = bitcast i8* %"$msgobj_fname_793" to %String* - store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_792", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_794", align 8 - %"$msgobj_td_795" = getelementptr i8, i8* %"$msgobj_791", i32 17 - %"$msgobj_td_796" = bitcast i8* %"$msgobj_td_795" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_114", %_TyDescrTy_Typ** %"$msgobj_td_796", align 8 - %"$support_contract_797" = load [20 x i8], [20 x i8]* @_cparam_support_contract, align 1 - %"$msgobj_v_798" = getelementptr i8, i8* %"$msgobj_791", i32 25 - %"$msgobj_v_799" = bitcast i8* %"$msgobj_v_798" to [20 x i8]* - store [20 x i8] %"$support_contract_797", [20 x i8]* %"$msgobj_v_799", align 1 - %"$msgobj_fname_801" = getelementptr i8, i8* %"$msgobj_791", i32 45 - %"$msgobj_fname_802" = bitcast i8* %"$msgobj_fname_801" to %String* - store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_800", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_802", align 8 - %"$msgobj_td_803" = getelementptr i8, i8* %"$msgobj_791", i32 61 - %"$msgobj_td_804" = bitcast i8* %"$msgobj_td_803" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_String_100", %_TyDescrTy_Typ** %"$msgobj_td_804", align 8 - %"$msgobj_v_806" = getelementptr i8, i8* %"$msgobj_791", i32 69 - %"$msgobj_v_807" = bitcast i8* %"$msgobj_v_806" to %String* - store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_805", i32 0, i32 0), i32 5 }, %String* %"$msgobj_v_807", align 8 - %"$msgobj_fname_809" = getelementptr i8, i8* %"$msgobj_791", i32 85 - %"$msgobj_fname_810" = bitcast i8* %"$msgobj_fname_809" to %String* - store %String { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$stringlit_808", i32 0, i32 0), i32 7 }, %String* %"$msgobj_fname_810", align 8 - %"$msgobj_td_811" = getelementptr i8, i8* %"$msgobj_791", i32 101 - %"$msgobj_td_812" = bitcast i8* %"$msgobj_td_811" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Uint128_94", %_TyDescrTy_Typ** %"$msgobj_td_812", align 8 - %"$msgobj_v_813" = getelementptr i8, i8* %"$msgobj_791", i32 109 - %"$msgobj_v_814" = bitcast i8* %"$msgobj_v_813" to %Uint128* - store %Uint128 zeroinitializer, %Uint128* %"$msgobj_v_814", align 8 - store i8* %"$msgobj_791", i8** %msg, align 8, !dbg !85 - %"$gasrem_816" = load i64, i64* @_gasrem, align 8 - %"$gascmp_817" = icmp ugt i64 1, %"$gasrem_816" - br i1 %"$gascmp_817", label %"$out_of_gas_818", label %"$have_gas_819" - -"$out_of_gas_818": ; preds = %"$have_gas_789" - call void @_out_of_gas() - br label %"$have_gas_819" - -"$have_gas_819": ; preds = %"$out_of_gas_818", %"$have_gas_789" - %"$consume_820" = sub i64 %"$gasrem_816", 1 - store i64 %"$consume_820", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata i8** %msg, metadata !153, metadata !DIExpression()), !dbg !154 + %"$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 = %"$have_gas_795" + call void @_out_of_gas() + br label %"$have_gas_800" + +"$have_gas_800": ; preds = %"$out_of_gas_799", %"$have_gas_795" + %"$consume_801" = sub i64 %"$gasrem_797", 1 + store i64 %"$consume_801", i64* @_gasrem, align 8 + %"$msgobj_802_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$msgobj_802_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_802_salloc_load", i64 125) + %"$msgobj_802_salloc" = bitcast i8* %"$msgobj_802_salloc_salloc" to [125 x i8]* + %"$msgobj_802" = bitcast [125 x i8]* %"$msgobj_802_salloc" to i8* + store i8 3, i8* %"$msgobj_802", align 1 + %"$msgobj_fname_804" = getelementptr i8, i8* %"$msgobj_802", i32 1 + %"$msgobj_fname_805" = bitcast i8* %"$msgobj_fname_804" to %String* + store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_803", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_805", align 8 + %"$msgobj_td_806" = getelementptr i8, i8* %"$msgobj_802", i32 17 + %"$msgobj_td_807" = bitcast i8* %"$msgobj_td_806" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_114", %_TyDescrTy_Typ** %"$msgobj_td_807", align 8 + %"$support_contract_808" = load [20 x i8], [20 x i8]* @_cparam_support_contract, align 1 + %"$msgobj_v_809" = getelementptr i8, i8* %"$msgobj_802", i32 25 + %"$msgobj_v_810" = bitcast i8* %"$msgobj_v_809" to [20 x i8]* + store [20 x i8] %"$support_contract_808", [20 x i8]* %"$msgobj_v_810", align 1 + %"$msgobj_fname_812" = getelementptr i8, i8* %"$msgobj_802", i32 45 + %"$msgobj_fname_813" = bitcast i8* %"$msgobj_fname_812" to %String* + store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_811", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_813", align 8 + %"$msgobj_td_814" = getelementptr i8, i8* %"$msgobj_802", i32 61 + %"$msgobj_td_815" = bitcast i8* %"$msgobj_td_814" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_String_100", %_TyDescrTy_Typ** %"$msgobj_td_815", align 8 + %"$msgobj_v_817" = getelementptr i8, i8* %"$msgobj_802", i32 69 + %"$msgobj_v_818" = bitcast i8* %"$msgobj_v_817" to %String* + store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_816", i32 0, i32 0), i32 5 }, %String* %"$msgobj_v_818", align 8 + %"$msgobj_fname_820" = getelementptr i8, i8* %"$msgobj_802", i32 85 + %"$msgobj_fname_821" = bitcast i8* %"$msgobj_fname_820" to %String* + store %String { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$stringlit_819", i32 0, i32 0), i32 7 }, %String* %"$msgobj_fname_821", align 8 + %"$msgobj_td_822" = getelementptr i8, i8* %"$msgobj_802", i32 101 + %"$msgobj_td_823" = bitcast i8* %"$msgobj_td_822" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Uint128_94", %_TyDescrTy_Typ** %"$msgobj_td_823", align 8 + %"$msgobj_v_824" = getelementptr i8, i8* %"$msgobj_802", i32 109 + %"$msgobj_v_825" = bitcast i8* %"$msgobj_v_824" to %Uint128* + store %Uint128 zeroinitializer, %Uint128* %"$msgobj_v_825", align 8 + store i8* %"$msgobj_802", i8** %msg, align 8, !dbg !155 + %"$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 = %"$have_gas_800" + call void @_out_of_gas() + br label %"$have_gas_830" + +"$have_gas_830": ; preds = %"$out_of_gas_829", %"$have_gas_800" + %"$consume_831" = sub i64 %"$gasrem_827", 1 + store i64 %"$consume_831", i64* @_gasrem, align 8 %msgs = alloca %TName_List_Message*, 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" + call void @llvm.dbg.declare(metadata %TName_List_Message** %msgs, metadata !156, metadata !DIExpression()), !dbg !157 + %"$gasrem_832" = load i64, i64* @_gasrem, align 8 + %"$gascmp_833" = icmp ugt i64 1, %"$gasrem_832" + br i1 %"$gascmp_833", label %"$out_of_gas_834", label %"$have_gas_835" -"$out_of_gas_823": ; preds = %"$have_gas_819" +"$out_of_gas_834": ; preds = %"$have_gas_830" call void @_out_of_gas() - br label %"$have_gas_824" + br label %"$have_gas_835" -"$have_gas_824": ; preds = %"$out_of_gas_823", %"$have_gas_819" - %"$consume_825" = sub i64 %"$gasrem_821", 1 - store i64 %"$consume_825", i64* @_gasrem, align 8 +"$have_gas_835": ; preds = %"$out_of_gas_834", %"$have_gas_830" + %"$consume_836" = sub i64 %"$gasrem_832", 1 + store i64 %"$consume_836", i64* @_gasrem, align 8 %"$accounting_tests.one_msg_16" = alloca %TName_List_Message*, align 8 - %"$accounting_tests.one_msg_826" = load { %TName_List_Message* (i8*, i8*)*, i8* }, { %TName_List_Message* (i8*, i8*)*, i8* }* @accounting_tests.one_msg, align 8 - %"$accounting_tests.one_msg_fptr_827" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$accounting_tests.one_msg_826", 0 - %"$accounting_tests.one_msg_envptr_828" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$accounting_tests.one_msg_826", 1 - %"$msg_829" = load i8*, i8** %msg, align 8 - %"$accounting_tests.one_msg_call_830" = call %TName_List_Message* %"$accounting_tests.one_msg_fptr_827"(i8* %"$accounting_tests.one_msg_envptr_828", i8* %"$msg_829"), !dbg !86 - store %TName_List_Message* %"$accounting_tests.one_msg_call_830", %TName_List_Message** %"$accounting_tests.one_msg_16", align 8, !dbg !86 - %"$$accounting_tests.one_msg_16_831" = load %TName_List_Message*, %TName_List_Message** %"$accounting_tests.one_msg_16", align 8 - store %TName_List_Message* %"$$accounting_tests.one_msg_16_831", %TName_List_Message** %msgs, align 8, !dbg !86 - %"$msgs_832" = load %TName_List_Message*, %TName_List_Message** %msgs, align 8 - %"$$msgs_832_833" = bitcast %TName_List_Message* %"$msgs_832" to i8* - %"$_literal_cost_call_834" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_120", i8* %"$$msgs_832_833") - %"$gasrem_835" = load i64, i64* @_gasrem, align 8 - %"$gascmp_836" = icmp ugt i64 %"$_literal_cost_call_834", %"$gasrem_835" - br i1 %"$gascmp_836", label %"$out_of_gas_837", label %"$have_gas_838" - -"$out_of_gas_837": ; preds = %"$have_gas_824" - call void @_out_of_gas() - br label %"$have_gas_838" - -"$have_gas_838": ; preds = %"$out_of_gas_837", %"$have_gas_824" - %"$consume_839" = sub i64 %"$gasrem_835", %"$_literal_cost_call_834" - store i64 %"$consume_839", i64* @_gasrem, align 8 - %"$execptr_load_840" = load i8*, i8** @_execptr, align 8 - %"$msgs_841" = load %TName_List_Message*, %TName_List_Message** %msgs, align 8 - call void @_send(i8* %"$execptr_load_840", %_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_120", %TName_List_Message* %"$msgs_841"), !dbg !87 - %"$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_844": ; preds = %"$have_gas_838" - call void @_out_of_gas() - br label %"$have_gas_845" - -"$have_gas_845": ; preds = %"$out_of_gas_844", %"$have_gas_838" - %"$consume_846" = sub i64 %"$gasrem_842", 1 - store i64 %"$consume_846", i64* @_gasrem, align 8 - %"$execptr_load_847" = load i8*, i8** @_execptr, align 8 - call void @_accept(i8* %"$execptr_load_847"), !dbg !88 + call void @llvm.dbg.declare(metadata %TName_List_Message** %"$accounting_tests.one_msg_16", metadata !158, metadata !DIExpression()), !dbg !159 + %"$accounting_tests.one_msg_837" = load { %TName_List_Message* (i8*, i8*)*, i8* }, { %TName_List_Message* (i8*, i8*)*, i8* }* @accounting_tests.one_msg, align 8 + %"$accounting_tests.one_msg_fptr_838" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$accounting_tests.one_msg_837", 0 + %"$accounting_tests.one_msg_envptr_839" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$accounting_tests.one_msg_837", 1 + %"$msg_840" = load i8*, i8** %msg, align 8 + %"$accounting_tests.one_msg_call_841" = call %TName_List_Message* %"$accounting_tests.one_msg_fptr_838"(i8* %"$accounting_tests.one_msg_envptr_839", i8* %"$msg_840"), !dbg !159 + store %TName_List_Message* %"$accounting_tests.one_msg_call_841", %TName_List_Message** %"$accounting_tests.one_msg_16", align 8, !dbg !159 + %"$$accounting_tests.one_msg_16_842" = load %TName_List_Message*, %TName_List_Message** %"$accounting_tests.one_msg_16", align 8 + store %TName_List_Message* %"$$accounting_tests.one_msg_16_842", %TName_List_Message** %msgs, align 8, !dbg !159 + %"$msgs_843" = load %TName_List_Message*, %TName_List_Message** %msgs, align 8 + %"$$msgs_843_844" = bitcast %TName_List_Message* %"$msgs_843" to i8* + %"$_literal_cost_call_845" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_120", i8* %"$$msgs_843_844") + %"$gasrem_846" = load i64, i64* @_gasrem, align 8 + %"$gascmp_847" = icmp ugt i64 %"$_literal_cost_call_845", %"$gasrem_846" + br i1 %"$gascmp_847", label %"$out_of_gas_848", label %"$have_gas_849" + +"$out_of_gas_848": ; preds = %"$have_gas_835" + call void @_out_of_gas() + br label %"$have_gas_849" + +"$have_gas_849": ; preds = %"$out_of_gas_848", %"$have_gas_835" + %"$consume_850" = sub i64 %"$gasrem_846", %"$_literal_cost_call_845" + store i64 %"$consume_850", i64* @_gasrem, align 8 + %"$execptr_load_851" = load i8*, i8** @_execptr, align 8 + %"$msgs_852" = load %TName_List_Message*, %TName_List_Message** %msgs, align 8 + call void @_send(i8* %"$execptr_load_851", %_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_120", %TName_List_Message* %"$msgs_852"), !dbg !160 + %"$gasrem_853" = load i64, i64* @_gasrem, align 8 + %"$gascmp_854" = icmp ugt i64 1, %"$gasrem_853" + br i1 %"$gascmp_854", label %"$out_of_gas_855", label %"$have_gas_856" + +"$out_of_gas_855": ; preds = %"$have_gas_849" + call void @_out_of_gas() + br label %"$have_gas_856" + +"$have_gas_856": ; preds = %"$out_of_gas_855", %"$have_gas_849" + %"$consume_857" = sub i64 %"$gasrem_853", 1 + store i64 %"$consume_857", i64* @_gasrem, align 8 + %"$execptr_load_858" = load i8*, i8** @_execptr, align 8 + call void @_accept(i8* %"$execptr_load_858"), !dbg !161 ret void } @@ -1816,376 +1883,395 @@ declare void @_send(i8*, %_TyDescrTy_Typ*, %TName_List_Message*) declare void @_accept(i8*) -define void @Reset(i8* %0) !dbg !89 { +define void @Reset(i8* %0) !dbg !162 { entry: - %"$_amount_849" = getelementptr i8, i8* %0, i32 0 - %"$_amount_850" = bitcast i8* %"$_amount_849" to %Uint128* - %_amount = load %Uint128, %Uint128* %"$_amount_850", align 8 - %"$_origin_851" = getelementptr i8, i8* %0, i32 16 - %"$_origin_852" = bitcast i8* %"$_origin_851" to [20 x i8]* - %"$_sender_853" = getelementptr i8, i8* %0, i32 36 - %"$_sender_854" = bitcast i8* %"$_sender_853" to [20 x i8]* - call void @"$Reset_778"(%Uint128 %_amount, [20 x i8]* %"$_origin_852", [20 x i8]* %"$_sender_854"), !dbg !90 + %"$_amount_863" = getelementptr i8, i8* %0, i32 0 + %"$_amount_864" = bitcast i8* %"$_amount_863" to %Uint128* + %_amount = load %Uint128, %Uint128* %"$_amount_864", align 8 + %"$_origin_865" = getelementptr i8, i8* %0, i32 16 + %"$_origin_866" = bitcast i8* %"$_origin_865" to [20 x i8]* + %"$_sender_867" = getelementptr i8, i8* %0, i32 36 + %"$_sender_868" = bitcast i8* %"$_sender_867" to [20 x i8]* + call void @"$Reset_789"(%Uint128 %_amount, [20 x i8]* %"$_origin_866", [20 x i8]* %"$_sender_868"), !dbg !163 ret void } -define internal void @"$AssertReset_855"(%Uint128 %_amount, [20 x i8]* %"$_origin_856", [20 x i8]* %"$_sender_857") !dbg !91 { +define internal void @"$AssertReset_869"(%Uint128 %_amount, [20 x i8]* %"$_origin_870", [20 x i8]* %"$_sender_871") !dbg !164 { entry: - %_origin = load [20 x i8], [20 x i8]* %"$_origin_856", align 1 - %_sender = load [20 x i8], [20 x i8]* %"$_sender_857", align 1 + %"$_sender_1070" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_sender_871", [20 x i8]** %"$_sender_1070", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_sender_1070", metadata !165, metadata !DIExpression()), !dbg !166 + %"$_origin_1069" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_origin_870", [20 x i8]** %"$_origin_1069", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_origin_1069", metadata !167, metadata !DIExpression()), !dbg !166 + %"$_amount_1068" = alloca %Uint128, align 8 + store %Uint128 %_amount, %Uint128* %"$_amount_1068", align 8 + call void @llvm.dbg.declare(metadata %Uint128* %"$_amount_1068", metadata !168, metadata !DIExpression()), !dbg !166 + %_origin = load [20 x i8], [20 x i8]* %"$_origin_870", align 1 + %_sender = load [20 x i8], [20 x i8]* %"$_sender_871", align 1 %ss = alloca %TName_List_String*, align 8 - %"$execptr_load_859" = load i8*, i8** @_execptr, align 8 - %"$ss_support_contract_860" = alloca [20 x i8], align 1 - %"$support_contract_861" = load [20 x i8], [20 x i8]* @_cparam_support_contract, align 1 - store [20 x i8] %"$support_contract_861", [20 x i8]* %"$ss_support_contract_860", align 1 - %"$ss_call_862" = call i8* @_fetch_remote_field(i8* %"$execptr_load_859", [20 x i8]* %"$ss_support_contract_860", i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$stored_strings_858", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_ADT_List_String_119", i32 0, i8* null, i32 1), !dbg !92 - %"$ss_863" = bitcast i8* %"$ss_call_862" to %TName_List_String* - store %TName_List_String* %"$ss_863", %TName_List_String** %ss, align 8 - %"$ss_864" = load %TName_List_String*, %TName_List_String** %ss, align 8 - %"$$ss_864_865" = bitcast %TName_List_String* %"$ss_864" to i8* - %"$_literal_cost_call_866" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_List_String_119", i8* %"$$ss_864_865") - %"$gasadd_867" = add i64 %"$_literal_cost_call_866", 0 - %"$gasrem_868" = load i64, i64* @_gasrem, align 8 - %"$gascmp_869" = icmp ugt i64 %"$gasadd_867", %"$gasrem_868" - br i1 %"$gascmp_869", label %"$out_of_gas_870", label %"$have_gas_871" - -"$out_of_gas_870": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_871" - -"$have_gas_871": ; preds = %"$out_of_gas_870", %entry - %"$consume_872" = sub i64 %"$gasrem_868", %"$gasadd_867" - store i64 %"$consume_872", i64* @_gasrem, 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 + call void @llvm.dbg.declare(metadata %TName_List_String** %ss, metadata !169, metadata !DIExpression()), !dbg !170 + %"$execptr_load_873" = load i8*, i8** @_execptr, align 8 + %"$ss_support_contract_874" = alloca [20 x i8], align 1 + %"$support_contract_875" = load [20 x i8], [20 x i8]* @_cparam_support_contract, align 1 + store [20 x i8] %"$support_contract_875", [20 x i8]* %"$ss_support_contract_874", align 1 + %"$ss_call_876" = call i8* @_fetch_remote_field(i8* %"$execptr_load_873", [20 x i8]* %"$ss_support_contract_874", i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$stored_strings_872", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_ADT_List_String_119", i32 0, i8* null, i32 1), !dbg !170 + %"$ss_877" = bitcast i8* %"$ss_call_876" to %TName_List_String* + store %TName_List_String* %"$ss_877", %TName_List_String** %ss, align 8 + %"$ss_878" = load %TName_List_String*, %TName_List_String** %ss, align 8 + %"$$ss_878_879" = bitcast %TName_List_String* %"$ss_878" to i8* + %"$_literal_cost_call_880" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_List_String_119", i8* %"$$ss_878_879") + %"$gasadd_881" = add i64 %"$_literal_cost_call_880", 0 + %"$gasrem_882" = load i64, i64* @_gasrem, align 8 + %"$gascmp_883" = icmp ugt i64 %"$gasadd_881", %"$gasrem_882" + br i1 %"$gascmp_883", label %"$out_of_gas_884", label %"$have_gas_885" + +"$out_of_gas_884": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_885" + +"$have_gas_885": ; preds = %"$out_of_gas_884", %entry + %"$consume_886" = sub i64 %"$gasrem_882", %"$gasadd_881" + store i64 %"$consume_886", i64* @_gasrem, 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 %cur_head = alloca %TName_Option_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" + call void @llvm.dbg.declare(metadata %TName_Option_String** %cur_head, metadata !171, metadata !DIExpression()), !dbg !172 + %"$gasrem_892" = load i64, i64* @_gasrem, align 8 + %"$gascmp_893" = icmp ugt i64 1, %"$gasrem_892" + br i1 %"$gascmp_893", label %"$out_of_gas_894", label %"$have_gas_895" -"$out_of_gas_880": ; preds = %"$have_gas_876" +"$out_of_gas_894": ; preds = %"$have_gas_890" call void @_out_of_gas() - br label %"$have_gas_881" + br label %"$have_gas_895" -"$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 +"$have_gas_895": ; preds = %"$out_of_gas_894", %"$have_gas_890" + %"$consume_896" = sub i64 %"$gasrem_892", 1 + store i64 %"$consume_896", i64* @_gasrem, align 8 %"$accounting_tests.list_head_string_17" = alloca %TName_Option_String*, align 8 - %"$accounting_tests.list_head_string_883" = load { %TName_Option_String* (i8*, %TName_List_String*)*, i8* }, { %TName_Option_String* (i8*, %TName_List_String*)*, i8* }* @accounting_tests.list_head_string, align 8 - %"$accounting_tests.list_head_string_fptr_884" = extractvalue { %TName_Option_String* (i8*, %TName_List_String*)*, i8* } %"$accounting_tests.list_head_string_883", 0 - %"$accounting_tests.list_head_string_envptr_885" = extractvalue { %TName_Option_String* (i8*, %TName_List_String*)*, i8* } %"$accounting_tests.list_head_string_883", 1 - %"$ss_886" = load %TName_List_String*, %TName_List_String** %ss, align 8 - %"$accounting_tests.list_head_string_call_887" = call %TName_Option_String* %"$accounting_tests.list_head_string_fptr_884"(i8* %"$accounting_tests.list_head_string_envptr_885", %TName_List_String* %"$ss_886"), !dbg !93 - store %TName_Option_String* %"$accounting_tests.list_head_string_call_887", %TName_Option_String** %"$accounting_tests.list_head_string_17", align 8, !dbg !93 - %"$$accounting_tests.list_head_string_17_888" = load %TName_Option_String*, %TName_Option_String** %"$accounting_tests.list_head_string_17", align 8 - store %TName_Option_String* %"$$accounting_tests.list_head_string_17_888", %TName_Option_String** %cur_head, align 8, !dbg !93 - %"$gasrem_889" = load i64, i64* @_gasrem, align 8 - %"$gascmp_890" = icmp ugt i64 2, %"$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", 2 - store i64 %"$consume_893", i64* @_gasrem, align 8 - %"$cur_head_895" = load %TName_Option_String*, %TName_Option_String** %cur_head, align 8 - %"$cur_head_tag_896" = getelementptr inbounds %TName_Option_String, %TName_Option_String* %"$cur_head_895", i32 0, i32 0 - %"$cur_head_tag_897" = load i8, i8* %"$cur_head_tag_896", align 1 - switch i8 %"$cur_head_tag_897", label %"$empty_default_898" [ - i8 1, label %"$None_899" - i8 0, label %"$Some_901" - ], !dbg !94 - -"$None_899": ; preds = %"$have_gas_892" - %"$cur_head_900" = bitcast %TName_Option_String* %"$cur_head_895" to %CName_None_String* - br label %"$matchsucc_894" - -"$Some_901": ; preds = %"$have_gas_892" - %"$cur_head_902" = bitcast %TName_Option_String* %"$cur_head_895" to %CName_Some_String* - %"$$cur_head_4_gep_903" = getelementptr inbounds %CName_Some_String, %CName_Some_String* %"$cur_head_902", i32 0, i32 1 - %"$$cur_head_4_load_904" = load %String, %String* %"$$cur_head_4_gep_903", align 8 + call void @llvm.dbg.declare(metadata %TName_Option_String** %"$accounting_tests.list_head_string_17", metadata !173, metadata !DIExpression()), !dbg !174 + %"$accounting_tests.list_head_string_897" = load { %TName_Option_String* (i8*, %TName_List_String*)*, i8* }, { %TName_Option_String* (i8*, %TName_List_String*)*, i8* }* @accounting_tests.list_head_string, align 8 + %"$accounting_tests.list_head_string_fptr_898" = extractvalue { %TName_Option_String* (i8*, %TName_List_String*)*, i8* } %"$accounting_tests.list_head_string_897", 0 + %"$accounting_tests.list_head_string_envptr_899" = extractvalue { %TName_Option_String* (i8*, %TName_List_String*)*, i8* } %"$accounting_tests.list_head_string_897", 1 + %"$ss_900" = load %TName_List_String*, %TName_List_String** %ss, align 8 + %"$accounting_tests.list_head_string_call_901" = call %TName_Option_String* %"$accounting_tests.list_head_string_fptr_898"(i8* %"$accounting_tests.list_head_string_envptr_899", %TName_List_String* %"$ss_900"), !dbg !174 + store %TName_Option_String* %"$accounting_tests.list_head_string_call_901", %TName_Option_String** %"$accounting_tests.list_head_string_17", align 8, !dbg !174 + %"$$accounting_tests.list_head_string_17_902" = load %TName_Option_String*, %TName_Option_String** %"$accounting_tests.list_head_string_17", align 8 + store %TName_Option_String* %"$$accounting_tests.list_head_string_17_902", %TName_Option_String** %cur_head, align 8, !dbg !174 + %"$gasrem_903" = load i64, i64* @_gasrem, align 8 + %"$gascmp_904" = icmp ugt i64 2, %"$gasrem_903" + br i1 %"$gascmp_904", label %"$out_of_gas_905", label %"$have_gas_906" + +"$out_of_gas_905": ; preds = %"$have_gas_895" + call void @_out_of_gas() + br label %"$have_gas_906" + +"$have_gas_906": ; preds = %"$out_of_gas_905", %"$have_gas_895" + %"$consume_907" = sub i64 %"$gasrem_903", 2 + store i64 %"$consume_907", i64* @_gasrem, align 8 + %"$cur_head_909" = load %TName_Option_String*, %TName_Option_String** %cur_head, align 8 + %"$cur_head_tag_910" = getelementptr inbounds %TName_Option_String, %TName_Option_String* %"$cur_head_909", i32 0, i32 0 + %"$cur_head_tag_911" = load i8, i8* %"$cur_head_tag_910", align 1 + switch i8 %"$cur_head_tag_911", label %"$empty_default_912" [ + i8 1, label %"$None_913" + i8 0, label %"$Some_915" + ], !dbg !175 + +"$None_913": ; preds = %"$have_gas_906" + %"$cur_head_914" = bitcast %TName_Option_String* %"$cur_head_909" to %CName_None_String* + br label %"$matchsucc_908" + +"$Some_915": ; preds = %"$have_gas_906" + %"$cur_head_916" = bitcast %TName_Option_String* %"$cur_head_909" to %CName_Some_String* + %"$$cur_head_4_gep_917" = getelementptr inbounds %CName_Some_String, %CName_Some_String* %"$cur_head_916", i32 0, i32 1 + %"$$cur_head_4_load_918" = load %String, %String* %"$$cur_head_4_gep_917", align 8 %"$cur_head_4" = alloca %String, align 8 - store %String %"$$cur_head_4_load_904", %String* %"$cur_head_4", 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" + store %String %"$$cur_head_4_load_918", %String* %"$cur_head_4", 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" -"$out_of_gas_907": ; preds = %"$Some_901" +"$out_of_gas_921": ; preds = %"$Some_915" call void @_out_of_gas() - br label %"$have_gas_908" + br label %"$have_gas_922" -"$have_gas_908": ; preds = %"$out_of_gas_907", %"$Some_901" - %"$consume_909" = sub i64 %"$gasrem_905", 1 - store i64 %"$consume_909", i64* @_gasrem, align 8 +"$have_gas_922": ; preds = %"$out_of_gas_921", %"$Some_915" + %"$consume_923" = sub i64 %"$gasrem_919", 1 + store i64 %"$consume_923", i64* @_gasrem, align 8 %e = alloca i8*, 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 - %"$msgobj_915_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$msgobj_915_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_915_salloc_load", i64 41) - %"$msgobj_915_salloc" = bitcast i8* %"$msgobj_915_salloc_salloc" to [41 x i8]* - %"$msgobj_915" = bitcast [41 x i8]* %"$msgobj_915_salloc" to i8* - store i8 1, i8* %"$msgobj_915", align 1 - %"$msgobj_fname_917" = getelementptr i8, i8* %"$msgobj_915", i32 1 - %"$msgobj_fname_918" = bitcast i8* %"$msgobj_fname_917" to %String* - store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_916", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_918", align 8 - %"$msgobj_td_919" = getelementptr i8, i8* %"$msgobj_915", i32 17 - %"$msgobj_td_920" = bitcast i8* %"$msgobj_td_919" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_String_100", %_TyDescrTy_Typ** %"$msgobj_td_920", align 8 - %"$msgobj_v_922" = getelementptr i8, i8* %"$msgobj_915", i32 25 - %"$msgobj_v_923" = bitcast i8* %"$msgobj_v_922" to %String* - store %String { i8* getelementptr inbounds ([26 x i8], [26 x i8]* @"$stringlit_921", i32 0, i32 0), i32 26 }, %String* %"$msgobj_v_923", align 8 - store i8* %"$msgobj_915", i8** %e, align 8, !dbg !95 - %"$e_925" = load i8*, i8** %e, align 8 - %"$_literal_cost_call_927" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Exception_108", i8* %"$e_925") - %"$gasrem_928" = load i64, i64* @_gasrem, align 8 - %"$gascmp_929" = icmp ugt i64 %"$_literal_cost_call_927", %"$gasrem_928" - br i1 %"$gascmp_929", label %"$out_of_gas_930", label %"$have_gas_931" - -"$out_of_gas_930": ; preds = %"$have_gas_913" - call void @_out_of_gas() - br label %"$have_gas_931" - -"$have_gas_931": ; preds = %"$out_of_gas_930", %"$have_gas_913" - %"$consume_932" = sub i64 %"$gasrem_928", %"$_literal_cost_call_927" - store i64 %"$consume_932", i64* @_gasrem, align 8 - %"$execptr_load_933" = load i8*, i8** @_execptr, align 8 - %"$e_934" = load i8*, i8** %e, align 8 - call void @_throw(i8* %"$execptr_load_933", %_TyDescrTy_Typ* @"$TyDescr_Exception_108", i8* %"$e_934"), !dbg !98 - br label %"$matchsucc_894" - -"$empty_default_898": ; preds = %"$have_gas_892" - br label %"$matchsucc_894" - -"$matchsucc_894": ; preds = %"$have_gas_931", %"$None_899", %"$empty_default_898" + call void @llvm.dbg.declare(metadata i8** %e, metadata !176, metadata !DIExpression()), !dbg !181 + %"$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_926": ; preds = %"$have_gas_922" + call void @_out_of_gas() + br label %"$have_gas_927" + +"$have_gas_927": ; preds = %"$out_of_gas_926", %"$have_gas_922" + %"$consume_928" = sub i64 %"$gasrem_924", 1 + store i64 %"$consume_928", i64* @_gasrem, align 8 + %"$msgobj_929_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$msgobj_929_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_929_salloc_load", i64 41) + %"$msgobj_929_salloc" = bitcast i8* %"$msgobj_929_salloc_salloc" to [41 x i8]* + %"$msgobj_929" = bitcast [41 x i8]* %"$msgobj_929_salloc" to i8* + store i8 1, i8* %"$msgobj_929", align 1 + %"$msgobj_fname_931" = getelementptr i8, i8* %"$msgobj_929", i32 1 + %"$msgobj_fname_932" = bitcast i8* %"$msgobj_fname_931" to %String* + store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_930", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_932", align 8 + %"$msgobj_td_933" = getelementptr i8, i8* %"$msgobj_929", i32 17 + %"$msgobj_td_934" = bitcast i8* %"$msgobj_td_933" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_String_100", %_TyDescrTy_Typ** %"$msgobj_td_934", align 8 + %"$msgobj_v_936" = getelementptr i8, i8* %"$msgobj_929", i32 25 + %"$msgobj_v_937" = bitcast i8* %"$msgobj_v_936" to %String* + store %String { i8* getelementptr inbounds ([26 x i8], [26 x i8]* @"$stringlit_935", i32 0, i32 0), i32 26 }, %String* %"$msgobj_v_937", align 8 + store i8* %"$msgobj_929", i8** %e, align 8, !dbg !182 + %"$e_939" = load i8*, i8** %e, align 8 + %"$_literal_cost_call_941" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Exception_108", i8* %"$e_939") + %"$gasrem_942" = load i64, i64* @_gasrem, align 8 + %"$gascmp_943" = icmp ugt i64 %"$_literal_cost_call_941", %"$gasrem_942" + br i1 %"$gascmp_943", label %"$out_of_gas_944", label %"$have_gas_945" + +"$out_of_gas_944": ; preds = %"$have_gas_927" + call void @_out_of_gas() + br label %"$have_gas_945" + +"$have_gas_945": ; preds = %"$out_of_gas_944", %"$have_gas_927" + %"$consume_946" = sub i64 %"$gasrem_942", %"$_literal_cost_call_941" + store i64 %"$consume_946", i64* @_gasrem, align 8 + %"$execptr_load_947" = load i8*, i8** @_execptr, align 8 + %"$e_948" = load i8*, i8** %e, align 8 + call void @_throw(i8* %"$execptr_load_947", %_TyDescrTy_Typ* @"$TyDescr_Exception_108", i8* %"$e_948"), !dbg !183 + br label %"$matchsucc_908" + +"$empty_default_912": ; preds = %"$have_gas_906" + br label %"$matchsucc_908" + +"$matchsucc_908": ; preds = %"$have_gas_945", %"$None_913", %"$empty_default_912" %amount = alloca %Uint128, align 8 - %"$execptr_load_936" = load i8*, i8** @_execptr, align 8 - %"$amount_call_937" = call i8* @_fetch_field(i8* %"$execptr_load_936", i8* getelementptr inbounds ([16 x i8], [16 x i8]* @"$outgoing_amount_935", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Uint128_94", i32 0, i8* null, i32 1), !dbg !99 - %"$amount_938" = bitcast i8* %"$amount_call_937" to %Uint128* - %"$amount_939" = load %Uint128, %Uint128* %"$amount_938", align 8 - store %Uint128 %"$amount_939", %Uint128* %amount, align 8 - %"$_literal_cost_amount_940" = alloca %Uint128, align 8 - %"$amount_941" = load %Uint128, %Uint128* %amount, align 8 - store %Uint128 %"$amount_941", %Uint128* %"$_literal_cost_amount_940", align 8 - %"$$_literal_cost_amount_940_942" = bitcast %Uint128* %"$_literal_cost_amount_940" to i8* - %"$_literal_cost_call_943" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Uint128_94", i8* %"$$_literal_cost_amount_940_942") - %"$gasadd_944" = add i64 %"$_literal_cost_call_943", 0 - %"$gasrem_945" = load i64, i64* @_gasrem, align 8 - %"$gascmp_946" = icmp ugt i64 %"$gasadd_944", %"$gasrem_945" - br i1 %"$gascmp_946", label %"$out_of_gas_947", label %"$have_gas_948" - -"$out_of_gas_947": ; preds = %"$matchsucc_894" - call void @_out_of_gas() - br label %"$have_gas_948" - -"$have_gas_948": ; preds = %"$out_of_gas_947", %"$matchsucc_894" - %"$consume_949" = sub i64 %"$gasrem_945", %"$gasadd_944" - store i64 %"$consume_949", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %Uint128* %amount, metadata !184, metadata !DIExpression()), !dbg !185 + %"$execptr_load_950" = load i8*, i8** @_execptr, align 8 + %"$amount_call_951" = call i8* @_fetch_field(i8* %"$execptr_load_950", i8* getelementptr inbounds ([16 x i8], [16 x i8]* @"$outgoing_amount_949", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Uint128_94", i32 0, i8* null, i32 1), !dbg !185 + %"$amount_952" = bitcast i8* %"$amount_call_951" to %Uint128* + %"$amount_953" = load %Uint128, %Uint128* %"$amount_952", align 8 + store %Uint128 %"$amount_953", %Uint128* %amount, align 8 + %"$_literal_cost_amount_954" = alloca %Uint128, align 8 + %"$amount_955" = load %Uint128, %Uint128* %amount, align 8 + store %Uint128 %"$amount_955", %Uint128* %"$_literal_cost_amount_954", align 8 + %"$$_literal_cost_amount_954_956" = bitcast %Uint128* %"$_literal_cost_amount_954" to i8* + %"$_literal_cost_call_957" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Uint128_94", i8* %"$$_literal_cost_amount_954_956") + %"$gasadd_958" = add i64 %"$_literal_cost_call_957", 0 + %"$gasrem_959" = load i64, i64* @_gasrem, align 8 + %"$gascmp_960" = icmp ugt i64 %"$gasadd_958", %"$gasrem_959" + br i1 %"$gascmp_960", label %"$out_of_gas_961", label %"$have_gas_962" + +"$out_of_gas_961": ; preds = %"$matchsucc_908" + call void @_out_of_gas() + br label %"$have_gas_962" + +"$have_gas_962": ; preds = %"$out_of_gas_961", %"$matchsucc_908" + %"$consume_963" = sub i64 %"$gasrem_959", %"$gasadd_958" + store i64 %"$consume_963", i64* @_gasrem, align 8 %max_msgs = alloca %Uint128, align 8 - %"$execptr_load_951" = load i8*, i8** @_execptr, align 8 - %"$max_msgs_call_952" = call i8* @_fetch_field(i8* %"$execptr_load_951", i8* getelementptr inbounds ([18 x i8], [18 x i8]* @"$max_outgoing_msgs_950", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Uint128_94", i32 0, i8* null, i32 1), !dbg !100 - %"$max_msgs_953" = bitcast i8* %"$max_msgs_call_952" to %Uint128* - %"$max_msgs_954" = load %Uint128, %Uint128* %"$max_msgs_953", align 8 - store %Uint128 %"$max_msgs_954", %Uint128* %max_msgs, align 8 - %"$_literal_cost_max_msgs_955" = alloca %Uint128, align 8 - %"$max_msgs_956" = load %Uint128, %Uint128* %max_msgs, align 8 - store %Uint128 %"$max_msgs_956", %Uint128* %"$_literal_cost_max_msgs_955", align 8 - %"$$_literal_cost_max_msgs_955_957" = bitcast %Uint128* %"$_literal_cost_max_msgs_955" to i8* - %"$_literal_cost_call_958" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Uint128_94", i8* %"$$_literal_cost_max_msgs_955_957") - %"$gasadd_959" = add i64 %"$_literal_cost_call_958", 0 - %"$gasrem_960" = load i64, i64* @_gasrem, align 8 - %"$gascmp_961" = icmp ugt i64 %"$gasadd_959", %"$gasrem_960" - br i1 %"$gascmp_961", label %"$out_of_gas_962", label %"$have_gas_963" - -"$out_of_gas_962": ; preds = %"$have_gas_948" - call void @_out_of_gas() - br label %"$have_gas_963" - -"$have_gas_963": ; preds = %"$out_of_gas_962", %"$have_gas_948" - %"$consume_964" = sub i64 %"$gasrem_960", %"$gasadd_959" - store i64 %"$consume_964", i64* @_gasrem, align 8 - %"$gasrem_965" = load i64, i64* @_gasrem, align 8 - %"$gascmp_966" = icmp ugt i64 1, %"$gasrem_965" - br i1 %"$gascmp_966", label %"$out_of_gas_967", label %"$have_gas_968" - -"$out_of_gas_967": ; preds = %"$have_gas_963" - call void @_out_of_gas() - br label %"$have_gas_968" - -"$have_gas_968": ; preds = %"$out_of_gas_967", %"$have_gas_963" - %"$consume_969" = sub i64 %"$gasrem_965", 1 - store i64 %"$consume_969", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %Uint128* %max_msgs, metadata !186, metadata !DIExpression()), !dbg !187 + %"$execptr_load_965" = load i8*, i8** @_execptr, align 8 + %"$max_msgs_call_966" = call i8* @_fetch_field(i8* %"$execptr_load_965", i8* getelementptr inbounds ([18 x i8], [18 x i8]* @"$max_outgoing_msgs_964", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Uint128_94", i32 0, i8* null, i32 1), !dbg !187 + %"$max_msgs_967" = bitcast i8* %"$max_msgs_call_966" to %Uint128* + %"$max_msgs_968" = load %Uint128, %Uint128* %"$max_msgs_967", align 8 + store %Uint128 %"$max_msgs_968", %Uint128* %max_msgs, align 8 + %"$_literal_cost_max_msgs_969" = alloca %Uint128, align 8 + %"$max_msgs_970" = load %Uint128, %Uint128* %max_msgs, align 8 + store %Uint128 %"$max_msgs_970", %Uint128* %"$_literal_cost_max_msgs_969", align 8 + %"$$_literal_cost_max_msgs_969_971" = bitcast %Uint128* %"$_literal_cost_max_msgs_969" to i8* + %"$_literal_cost_call_972" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Uint128_94", i8* %"$$_literal_cost_max_msgs_969_971") + %"$gasadd_973" = add i64 %"$_literal_cost_call_972", 0 + %"$gasrem_974" = load i64, i64* @_gasrem, align 8 + %"$gascmp_975" = icmp ugt i64 %"$gasadd_973", %"$gasrem_974" + br i1 %"$gascmp_975", label %"$out_of_gas_976", label %"$have_gas_977" + +"$out_of_gas_976": ; preds = %"$have_gas_962" + call void @_out_of_gas() + br label %"$have_gas_977" + +"$have_gas_977": ; preds = %"$out_of_gas_976", %"$have_gas_962" + %"$consume_978" = sub i64 %"$gasrem_974", %"$gasadd_973" + store i64 %"$consume_978", i64* @_gasrem, align 8 + %"$gasrem_979" = load i64, i64* @_gasrem, align 8 + %"$gascmp_980" = icmp ugt i64 1, %"$gasrem_979" + br i1 %"$gascmp_980", label %"$out_of_gas_981", label %"$have_gas_982" + +"$out_of_gas_981": ; preds = %"$have_gas_977" + call void @_out_of_gas() + br label %"$have_gas_982" + +"$have_gas_982": ; preds = %"$out_of_gas_981", %"$have_gas_977" + %"$consume_983" = sub i64 %"$gasrem_979", 1 + store i64 %"$consume_983", i64* @_gasrem, align 8 %minimum = alloca %Uint128, align 8 - %"$gasrem_971" = load i64, i64* @_gasrem, align 8 - %"$gascmp_972" = icmp ugt i64 40, %"$gasrem_971" - br i1 %"$gascmp_972", label %"$out_of_gas_973", label %"$have_gas_974" - -"$out_of_gas_973": ; preds = %"$have_gas_968" - call void @_out_of_gas() - br label %"$have_gas_974" - -"$have_gas_974": ; preds = %"$out_of_gas_973", %"$have_gas_968" - %"$consume_975" = sub i64 %"$gasrem_971", 40 - store i64 %"$consume_975", i64* @_gasrem, align 8 - %"$amount_976" = load %Uint128, %Uint128* %amount, align 8 - %"$max_msgs_977" = load %Uint128, %Uint128* %max_msgs, align 8 - %"$mul_call_978" = call %Uint128 @_mul_Uint128(%Uint128 %"$amount_976", %Uint128 %"$max_msgs_977"), !dbg !101 - store %Uint128 %"$mul_call_978", %Uint128* %minimum, align 8, !dbg !101 + call void @llvm.dbg.declare(metadata %Uint128* %minimum, metadata !188, metadata !DIExpression()), !dbg !189 + %"$gasrem_985" = load i64, i64* @_gasrem, align 8 + %"$gascmp_986" = icmp ugt i64 40, %"$gasrem_985" + br i1 %"$gascmp_986", label %"$out_of_gas_987", label %"$have_gas_988" + +"$out_of_gas_987": ; preds = %"$have_gas_982" + call void @_out_of_gas() + br label %"$have_gas_988" + +"$have_gas_988": ; preds = %"$out_of_gas_987", %"$have_gas_982" + %"$consume_989" = sub i64 %"$gasrem_985", 40 + store i64 %"$consume_989", i64* @_gasrem, align 8 + %"$amount_990" = load %Uint128, %Uint128* %amount, align 8 + %"$max_msgs_991" = load %Uint128, %Uint128* %max_msgs, align 8 + %"$mul_call_992" = call %Uint128 @_mul_Uint128(%Uint128 %"$amount_990", %Uint128 %"$max_msgs_991"), !dbg !190 + store %Uint128 %"$mul_call_992", %Uint128* %minimum, align 8, !dbg !190 %bal = alloca %Uint128, align 8 - %"$execptr_load_980" = load i8*, i8** @_execptr, align 8 - %"$bal_call_981" = call i8* @_fetch_field(i8* %"$execptr_load_980", i8* getelementptr inbounds ([9 x i8], [9 x i8]* @"$_balance_979", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Uint128_94", i32 0, i8* null, i32 1), !dbg !102 - %"$bal_982" = bitcast i8* %"$bal_call_981" to %Uint128* - %"$bal_983" = load %Uint128, %Uint128* %"$bal_982", align 8 - store %Uint128 %"$bal_983", %Uint128* %bal, align 8 - %"$_literal_cost_bal_984" = alloca %Uint128, align 8 - %"$bal_985" = load %Uint128, %Uint128* %bal, align 8 - store %Uint128 %"$bal_985", %Uint128* %"$_literal_cost_bal_984", align 8 - %"$$_literal_cost_bal_984_986" = bitcast %Uint128* %"$_literal_cost_bal_984" to i8* - %"$_literal_cost_call_987" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Uint128_94", i8* %"$$_literal_cost_bal_984_986") - %"$gasadd_988" = add i64 %"$_literal_cost_call_987", 0 - %"$gasrem_989" = load i64, i64* @_gasrem, align 8 - %"$gascmp_990" = icmp ugt i64 %"$gasadd_988", %"$gasrem_989" - br i1 %"$gascmp_990", label %"$out_of_gas_991", label %"$have_gas_992" - -"$out_of_gas_991": ; preds = %"$have_gas_974" - call void @_out_of_gas() - br label %"$have_gas_992" - -"$have_gas_992": ; preds = %"$out_of_gas_991", %"$have_gas_974" - %"$consume_993" = sub i64 %"$gasrem_989", %"$gasadd_988" - store i64 %"$consume_993", i64* @_gasrem, align 8 - %"$gasrem_994" = load i64, i64* @_gasrem, align 8 - %"$gascmp_995" = icmp ugt i64 1, %"$gasrem_994" - br i1 %"$gascmp_995", label %"$out_of_gas_996", label %"$have_gas_997" - -"$out_of_gas_996": ; preds = %"$have_gas_992" - call void @_out_of_gas() - br label %"$have_gas_997" - -"$have_gas_997": ; preds = %"$out_of_gas_996", %"$have_gas_992" - %"$consume_998" = sub i64 %"$gasrem_994", 1 - store i64 %"$consume_998", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %Uint128* %bal, metadata !191, metadata !DIExpression()), !dbg !192 + %"$execptr_load_994" = load i8*, i8** @_execptr, align 8 + %"$bal_call_995" = call i8* @_fetch_field(i8* %"$execptr_load_994", i8* getelementptr inbounds ([9 x i8], [9 x i8]* @"$_balance_993", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Uint128_94", i32 0, i8* null, i32 1), !dbg !192 + %"$bal_996" = bitcast i8* %"$bal_call_995" to %Uint128* + %"$bal_997" = load %Uint128, %Uint128* %"$bal_996", align 8 + store %Uint128 %"$bal_997", %Uint128* %bal, align 8 + %"$_literal_cost_bal_998" = alloca %Uint128, align 8 + %"$bal_999" = load %Uint128, %Uint128* %bal, align 8 + store %Uint128 %"$bal_999", %Uint128* %"$_literal_cost_bal_998", align 8 + %"$$_literal_cost_bal_998_1000" = bitcast %Uint128* %"$_literal_cost_bal_998" to i8* + %"$_literal_cost_call_1001" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Uint128_94", i8* %"$$_literal_cost_bal_998_1000") + %"$gasadd_1002" = add i64 %"$_literal_cost_call_1001", 0 + %"$gasrem_1003" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1004" = icmp ugt i64 %"$gasadd_1002", %"$gasrem_1003" + br i1 %"$gascmp_1004", label %"$out_of_gas_1005", label %"$have_gas_1006" + +"$out_of_gas_1005": ; preds = %"$have_gas_988" + call void @_out_of_gas() + br label %"$have_gas_1006" + +"$have_gas_1006": ; preds = %"$out_of_gas_1005", %"$have_gas_988" + %"$consume_1007" = sub i64 %"$gasrem_1003", %"$gasadd_1002" + store i64 %"$consume_1007", i64* @_gasrem, align 8 + %"$gasrem_1008" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1009" = icmp ugt i64 1, %"$gasrem_1008" + br i1 %"$gascmp_1009", label %"$out_of_gas_1010", label %"$have_gas_1011" + +"$out_of_gas_1010": ; preds = %"$have_gas_1006" + call void @_out_of_gas() + br label %"$have_gas_1011" + +"$have_gas_1011": ; preds = %"$out_of_gas_1010", %"$have_gas_1006" + %"$consume_1012" = sub i64 %"$gasrem_1008", 1 + store i64 %"$consume_1012", i64* @_gasrem, align 8 %insufficient_balance = alloca %TName_Bool*, align 8 - %"$gasrem_1000" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1001" = icmp ugt i64 8, %"$gasrem_1000" - br i1 %"$gascmp_1001", label %"$out_of_gas_1002", label %"$have_gas_1003" - -"$out_of_gas_1002": ; preds = %"$have_gas_997" - call void @_out_of_gas() - br label %"$have_gas_1003" - -"$have_gas_1003": ; preds = %"$out_of_gas_1002", %"$have_gas_997" - %"$consume_1004" = sub i64 %"$gasrem_1000", 8 - store i64 %"$consume_1004", i64* @_gasrem, align 8 - %"$execptr_load_1005" = load i8*, i8** @_execptr, align 8 - %"$bal_1006" = load %Uint128, %Uint128* %bal, align 8 - %"$minimum_1007" = load %Uint128, %Uint128* %minimum, align 8 - %"$lt_call_1008" = call %TName_Bool* @_lt_Uint128(i8* %"$execptr_load_1005", %Uint128 %"$bal_1006", %Uint128 %"$minimum_1007"), !dbg !103 - store %TName_Bool* %"$lt_call_1008", %TName_Bool** %insufficient_balance, align 8, !dbg !103 - %"$gasrem_1010" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1011" = icmp ugt i64 2, %"$gasrem_1010" - br i1 %"$gascmp_1011", label %"$out_of_gas_1012", label %"$have_gas_1013" - -"$out_of_gas_1012": ; preds = %"$have_gas_1003" - call void @_out_of_gas() - br label %"$have_gas_1013" - -"$have_gas_1013": ; preds = %"$out_of_gas_1012", %"$have_gas_1003" - %"$consume_1014" = sub i64 %"$gasrem_1010", 2 - store i64 %"$consume_1014", i64* @_gasrem, align 8 - %"$insufficient_balance_1016" = load %TName_Bool*, %TName_Bool** %insufficient_balance, align 8 - %"$insufficient_balance_tag_1017" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$insufficient_balance_1016", i32 0, i32 0 - %"$insufficient_balance_tag_1018" = load i8, i8* %"$insufficient_balance_tag_1017", align 1 - switch i8 %"$insufficient_balance_tag_1018", label %"$empty_default_1019" [ - i8 1, label %"$False_1020" - i8 0, label %"$True_1022" - ], !dbg !104 - -"$False_1020": ; preds = %"$have_gas_1013" - %"$insufficient_balance_1021" = bitcast %TName_Bool* %"$insufficient_balance_1016" to %CName_False* - br label %"$matchsucc_1015" - -"$True_1022": ; preds = %"$have_gas_1013" - %"$insufficient_balance_1023" = bitcast %TName_Bool* %"$insufficient_balance_1016" to %CName_True* + call void @llvm.dbg.declare(metadata %TName_Bool** %insufficient_balance, metadata !193, metadata !DIExpression()), !dbg !194 + %"$gasrem_1014" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1015" = icmp ugt i64 8, %"$gasrem_1014" + br i1 %"$gascmp_1015", label %"$out_of_gas_1016", label %"$have_gas_1017" + +"$out_of_gas_1016": ; preds = %"$have_gas_1011" + call void @_out_of_gas() + br label %"$have_gas_1017" + +"$have_gas_1017": ; preds = %"$out_of_gas_1016", %"$have_gas_1011" + %"$consume_1018" = sub i64 %"$gasrem_1014", 8 + store i64 %"$consume_1018", i64* @_gasrem, align 8 + %"$execptr_load_1019" = load i8*, i8** @_execptr, align 8 + %"$bal_1020" = load %Uint128, %Uint128* %bal, align 8 + %"$minimum_1021" = load %Uint128, %Uint128* %minimum, align 8 + %"$lt_call_1022" = call %TName_Bool* @_lt_Uint128(i8* %"$execptr_load_1019", %Uint128 %"$bal_1020", %Uint128 %"$minimum_1021"), !dbg !195 + store %TName_Bool* %"$lt_call_1022", %TName_Bool** %insufficient_balance, align 8, !dbg !195 %"$gasrem_1024" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1025" = icmp ugt i64 1, %"$gasrem_1024" + %"$gascmp_1025" = icmp ugt i64 2, %"$gasrem_1024" br i1 %"$gascmp_1025", label %"$out_of_gas_1026", label %"$have_gas_1027" -"$out_of_gas_1026": ; preds = %"$True_1022" +"$out_of_gas_1026": ; preds = %"$have_gas_1017" call void @_out_of_gas() br label %"$have_gas_1027" -"$have_gas_1027": ; preds = %"$out_of_gas_1026", %"$True_1022" - %"$consume_1028" = sub i64 %"$gasrem_1024", 1 +"$have_gas_1027": ; preds = %"$out_of_gas_1026", %"$have_gas_1017" + %"$consume_1028" = sub i64 %"$gasrem_1024", 2 store i64 %"$consume_1028", i64* @_gasrem, align 8 + %"$insufficient_balance_1030" = load %TName_Bool*, %TName_Bool** %insufficient_balance, align 8 + %"$insufficient_balance_tag_1031" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$insufficient_balance_1030", i32 0, i32 0 + %"$insufficient_balance_tag_1032" = load i8, i8* %"$insufficient_balance_tag_1031", align 1 + switch i8 %"$insufficient_balance_tag_1032", label %"$empty_default_1033" [ + i8 1, label %"$False_1034" + i8 0, label %"$True_1036" + ], !dbg !196 + +"$False_1034": ; preds = %"$have_gas_1027" + %"$insufficient_balance_1035" = bitcast %TName_Bool* %"$insufficient_balance_1030" to %CName_False* + br label %"$matchsucc_1029" + +"$True_1036": ; preds = %"$have_gas_1027" + %"$insufficient_balance_1037" = bitcast %TName_Bool* %"$insufficient_balance_1030" to %CName_True* + %"$gasrem_1038" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1039" = icmp ugt i64 1, %"$gasrem_1038" + br i1 %"$gascmp_1039", label %"$out_of_gas_1040", label %"$have_gas_1041" + +"$out_of_gas_1040": ; preds = %"$True_1036" + call void @_out_of_gas() + br label %"$have_gas_1041" + +"$have_gas_1041": ; preds = %"$out_of_gas_1040", %"$True_1036" + %"$consume_1042" = sub i64 %"$gasrem_1038", 1 + store i64 %"$consume_1042", i64* @_gasrem, align 8 %e1 = alloca 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 = %"$have_gas_1027" - call void @_out_of_gas() - br label %"$have_gas_1032" - -"$have_gas_1032": ; preds = %"$out_of_gas_1031", %"$have_gas_1027" - %"$consume_1033" = sub i64 %"$gasrem_1029", 1 - store i64 %"$consume_1033", i64* @_gasrem, align 8 - %"$msgobj_1034_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$msgobj_1034_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_1034_salloc_load", i64 41) - %"$msgobj_1034_salloc" = bitcast i8* %"$msgobj_1034_salloc_salloc" to [41 x i8]* - %"$msgobj_1034" = bitcast [41 x i8]* %"$msgobj_1034_salloc" to i8* - store i8 1, i8* %"$msgobj_1034", align 1 - %"$msgobj_fname_1036" = getelementptr i8, i8* %"$msgobj_1034", i32 1 - %"$msgobj_fname_1037" = bitcast i8* %"$msgobj_fname_1036" to %String* - store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_1035", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_1037", align 8 - %"$msgobj_td_1038" = getelementptr i8, i8* %"$msgobj_1034", i32 17 - %"$msgobj_td_1039" = bitcast i8* %"$msgobj_td_1038" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_String_100", %_TyDescrTy_Typ** %"$msgobj_td_1039", align 8 - %"$msgobj_v_1041" = getelementptr i8, i8* %"$msgobj_1034", i32 25 - %"$msgobj_v_1042" = bitcast i8* %"$msgobj_v_1041" to %String* - store %String { i8* getelementptr inbounds ([30 x i8], [30 x i8]* @"$stringlit_1040", i32 0, i32 0), i32 30 }, %String* %"$msgobj_v_1042", align 8 - store i8* %"$msgobj_1034", i8** %e1, align 8, !dbg !105 - %"$e_1044" = load i8*, i8** %e1, align 8 - %"$_literal_cost_call_1046" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Exception_108", i8* %"$e_1044") - %"$gasrem_1047" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1048" = icmp ugt i64 %"$_literal_cost_call_1046", %"$gasrem_1047" - br i1 %"$gascmp_1048", label %"$out_of_gas_1049", label %"$have_gas_1050" - -"$out_of_gas_1049": ; preds = %"$have_gas_1032" - call void @_out_of_gas() - br label %"$have_gas_1050" - -"$have_gas_1050": ; preds = %"$out_of_gas_1049", %"$have_gas_1032" - %"$consume_1051" = sub i64 %"$gasrem_1047", %"$_literal_cost_call_1046" - store i64 %"$consume_1051", i64* @_gasrem, align 8 - %"$execptr_load_1052" = load i8*, i8** @_execptr, align 8 - %"$e_1053" = load i8*, i8** %e1, align 8 - call void @_throw(i8* %"$execptr_load_1052", %_TyDescrTy_Typ* @"$TyDescr_Exception_108", i8* %"$e_1053"), !dbg !108 - br label %"$matchsucc_1015" - -"$empty_default_1019": ; preds = %"$have_gas_1013" - br label %"$matchsucc_1015" - -"$matchsucc_1015": ; preds = %"$have_gas_1050", %"$False_1020", %"$empty_default_1019" + call void @llvm.dbg.declare(metadata i8** %e1, metadata !197, metadata !DIExpression()), !dbg !200 + %"$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_1041" + call void @_out_of_gas() + br label %"$have_gas_1046" + +"$have_gas_1046": ; preds = %"$out_of_gas_1045", %"$have_gas_1041" + %"$consume_1047" = sub i64 %"$gasrem_1043", 1 + store i64 %"$consume_1047", i64* @_gasrem, align 8 + %"$msgobj_1048_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$msgobj_1048_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_1048_salloc_load", i64 41) + %"$msgobj_1048_salloc" = bitcast i8* %"$msgobj_1048_salloc_salloc" to [41 x i8]* + %"$msgobj_1048" = bitcast [41 x i8]* %"$msgobj_1048_salloc" to i8* + store i8 1, i8* %"$msgobj_1048", align 1 + %"$msgobj_fname_1050" = getelementptr i8, i8* %"$msgobj_1048", i32 1 + %"$msgobj_fname_1051" = bitcast i8* %"$msgobj_fname_1050" to %String* + store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_1049", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_1051", align 8 + %"$msgobj_td_1052" = getelementptr i8, i8* %"$msgobj_1048", i32 17 + %"$msgobj_td_1053" = bitcast i8* %"$msgobj_td_1052" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_String_100", %_TyDescrTy_Typ** %"$msgobj_td_1053", align 8 + %"$msgobj_v_1055" = getelementptr i8, i8* %"$msgobj_1048", i32 25 + %"$msgobj_v_1056" = bitcast i8* %"$msgobj_v_1055" to %String* + store %String { i8* getelementptr inbounds ([30 x i8], [30 x i8]* @"$stringlit_1054", i32 0, i32 0), i32 30 }, %String* %"$msgobj_v_1056", align 8 + store i8* %"$msgobj_1048", i8** %e1, align 8, !dbg !201 + %"$e_1058" = load i8*, i8** %e1, align 8 + %"$_literal_cost_call_1060" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Exception_108", i8* %"$e_1058") + %"$gasrem_1061" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1062" = icmp ugt i64 %"$_literal_cost_call_1060", %"$gasrem_1061" + br i1 %"$gascmp_1062", label %"$out_of_gas_1063", label %"$have_gas_1064" + +"$out_of_gas_1063": ; preds = %"$have_gas_1046" + call void @_out_of_gas() + br label %"$have_gas_1064" + +"$have_gas_1064": ; preds = %"$out_of_gas_1063", %"$have_gas_1046" + %"$consume_1065" = sub i64 %"$gasrem_1061", %"$_literal_cost_call_1060" + store i64 %"$consume_1065", i64* @_gasrem, align 8 + %"$execptr_load_1066" = load i8*, i8** @_execptr, align 8 + %"$e_1067" = load i8*, i8** %e1, align 8 + call void @_throw(i8* %"$execptr_load_1066", %_TyDescrTy_Typ* @"$TyDescr_Exception_108", i8* %"$e_1067"), !dbg !202 + br label %"$matchsucc_1029" + +"$empty_default_1033": ; preds = %"$have_gas_1027" + br label %"$matchsucc_1029" + +"$matchsucc_1029": ; preds = %"$have_gas_1064", %"$False_1034", %"$empty_default_1033" ret void } @@ -2199,680 +2285,673 @@ declare %Uint128 @_mul_Uint128(%Uint128, %Uint128) declare %TName_Bool* @_lt_Uint128(i8*, %Uint128, %Uint128) -define internal void @"$Test_Insufficient_Balance_1054"(%Uint128 %_amount, [20 x i8]* %"$_origin_1055", [20 x i8]* %"$_sender_1056") !dbg !109 { +define internal void @"$Test_Insufficient_Balance_1071"(%Uint128 %_amount, [20 x i8]* %"$_origin_1072", [20 x i8]* %"$_sender_1073") !dbg !203 { entry: - %_origin = load [20 x i8], [20 x i8]* %"$_origin_1055", align 1 - %_sender = load [20 x i8], [20 x i8]* %"$_sender_1056", align 1 + %"$_sender_1153" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_sender_1073", [20 x i8]** %"$_sender_1153", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_sender_1153", metadata !204, metadata !DIExpression()), !dbg !205 + %"$_origin_1152" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_origin_1072", [20 x i8]** %"$_origin_1152", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_origin_1152", metadata !206, metadata !DIExpression()), !dbg !205 + %"$_amount_1151" = alloca %Uint128, align 8 + store %Uint128 %_amount, %Uint128* %"$_amount_1151", align 8 + call void @llvm.dbg.declare(metadata %Uint128* %"$_amount_1151", metadata !207, metadata !DIExpression()), !dbg !205 + %_origin = load [20 x i8], [20 x i8]* %"$_origin_1072", align 1 + %_sender = load [20 x i8], [20 x i8]* %"$_sender_1073", align 1 %amount = alloca %Uint128, align 8 - %"$execptr_load_1058" = load i8*, i8** @_execptr, align 8 - %"$amount_call_1059" = call i8* @_fetch_field(i8* %"$execptr_load_1058", i8* getelementptr inbounds ([16 x i8], [16 x i8]* @"$outgoing_amount_1057", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Uint128_94", i32 0, i8* null, i32 1), !dbg !110 - %"$amount_1060" = bitcast i8* %"$amount_call_1059" to %Uint128* - %"$amount_1061" = load %Uint128, %Uint128* %"$amount_1060", align 8 - store %Uint128 %"$amount_1061", %Uint128* %amount, align 8 - %"$_literal_cost_amount_1062" = alloca %Uint128, align 8 - %"$amount_1063" = load %Uint128, %Uint128* %amount, align 8 - store %Uint128 %"$amount_1063", %Uint128* %"$_literal_cost_amount_1062", align 8 - %"$$_literal_cost_amount_1062_1064" = bitcast %Uint128* %"$_literal_cost_amount_1062" to i8* - %"$_literal_cost_call_1065" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Uint128_94", i8* %"$$_literal_cost_amount_1062_1064") - %"$gasadd_1066" = add i64 %"$_literal_cost_call_1065", 0 - %"$gasrem_1067" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1068" = icmp ugt i64 %"$gasadd_1066", %"$gasrem_1067" - br i1 %"$gascmp_1068", label %"$out_of_gas_1069", label %"$have_gas_1070" - -"$out_of_gas_1069": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_1070" - -"$have_gas_1070": ; preds = %"$out_of_gas_1069", %entry - %"$consume_1071" = sub i64 %"$gasrem_1067", %"$gasadd_1066" - store i64 %"$consume_1071", i64* @_gasrem, align 8 - %"$gasrem_1072" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1073" = icmp ugt i64 1, %"$gasrem_1072" - br i1 %"$gascmp_1073", label %"$out_of_gas_1074", label %"$have_gas_1075" - -"$out_of_gas_1074": ; preds = %"$have_gas_1070" - call void @_out_of_gas() - br label %"$have_gas_1075" - -"$have_gas_1075": ; preds = %"$out_of_gas_1074", %"$have_gas_1070" - %"$consume_1076" = sub i64 %"$gasrem_1072", 1 - store i64 %"$consume_1076", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %Uint128* %amount, metadata !208, metadata !DIExpression()), !dbg !209 + %"$execptr_load_1075" = load i8*, i8** @_execptr, align 8 + %"$amount_call_1076" = call i8* @_fetch_field(i8* %"$execptr_load_1075", i8* getelementptr inbounds ([16 x i8], [16 x i8]* @"$outgoing_amount_1074", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Uint128_94", i32 0, i8* null, i32 1), !dbg !209 + %"$amount_1077" = bitcast i8* %"$amount_call_1076" to %Uint128* + %"$amount_1078" = load %Uint128, %Uint128* %"$amount_1077", align 8 + store %Uint128 %"$amount_1078", %Uint128* %amount, align 8 + %"$_literal_cost_amount_1079" = alloca %Uint128, align 8 + %"$amount_1080" = load %Uint128, %Uint128* %amount, align 8 + store %Uint128 %"$amount_1080", %Uint128* %"$_literal_cost_amount_1079", align 8 + %"$$_literal_cost_amount_1079_1081" = bitcast %Uint128* %"$_literal_cost_amount_1079" to i8* + %"$_literal_cost_call_1082" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Uint128_94", i8* %"$$_literal_cost_amount_1079_1081") + %"$gasadd_1083" = add i64 %"$_literal_cost_call_1082", 0 + %"$gasrem_1084" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1085" = icmp ugt i64 %"$gasadd_1083", %"$gasrem_1084" + br i1 %"$gascmp_1085", label %"$out_of_gas_1086", label %"$have_gas_1087" + +"$out_of_gas_1086": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_1087" + +"$have_gas_1087": ; preds = %"$out_of_gas_1086", %entry + %"$consume_1088" = sub i64 %"$gasrem_1084", %"$gasadd_1083" + store i64 %"$consume_1088", i64* @_gasrem, align 8 + %"$gasrem_1089" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1090" = icmp ugt i64 1, %"$gasrem_1089" + br i1 %"$gascmp_1090", label %"$out_of_gas_1091", label %"$have_gas_1092" + +"$out_of_gas_1091": ; preds = %"$have_gas_1087" + call void @_out_of_gas() + br label %"$have_gas_1092" + +"$have_gas_1092": ; preds = %"$out_of_gas_1091", %"$have_gas_1087" + %"$consume_1093" = sub i64 %"$gasrem_1089", 1 + store i64 %"$consume_1093", i64* @_gasrem, align 8 %msg1 = alloca i8*, 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_1075" - call void @_out_of_gas() - br label %"$have_gas_1080" - -"$have_gas_1080": ; preds = %"$out_of_gas_1079", %"$have_gas_1075" - %"$consume_1081" = sub i64 %"$gasrem_1077", 1 - store i64 %"$consume_1081", i64* @_gasrem, align 8 - %"$msgobj_1082_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$msgobj_1082_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_1082_salloc_load", i64 125) - %"$msgobj_1082_salloc" = bitcast i8* %"$msgobj_1082_salloc_salloc" to [125 x i8]* - %"$msgobj_1082" = bitcast [125 x i8]* %"$msgobj_1082_salloc" to i8* - store i8 3, i8* %"$msgobj_1082", align 1 - %"$msgobj_fname_1084" = getelementptr i8, i8* %"$msgobj_1082", i32 1 - %"$msgobj_fname_1085" = bitcast i8* %"$msgobj_fname_1084" to %String* - store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_1083", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_1085", align 8 - %"$msgobj_td_1086" = getelementptr i8, i8* %"$msgobj_1082", i32 17 - %"$msgobj_td_1087" = bitcast i8* %"$msgobj_td_1086" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_114", %_TyDescrTy_Typ** %"$msgobj_td_1087", align 8 - %"$support_contract_1088" = load [20 x i8], [20 x i8]* @_cparam_support_contract, align 1 - %"$msgobj_v_1089" = getelementptr i8, i8* %"$msgobj_1082", i32 25 - %"$msgobj_v_1090" = bitcast i8* %"$msgobj_v_1089" to [20 x i8]* - store [20 x i8] %"$support_contract_1088", [20 x i8]* %"$msgobj_v_1090", align 1 - %"$msgobj_fname_1092" = getelementptr i8, i8* %"$msgobj_1082", i32 45 - %"$msgobj_fname_1093" = bitcast i8* %"$msgobj_fname_1092" to %String* - store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_1091", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_1093", align 8 - %"$msgobj_td_1094" = getelementptr i8, i8* %"$msgobj_1082", i32 61 - %"$msgobj_td_1095" = bitcast i8* %"$msgobj_td_1094" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_String_100", %_TyDescrTy_Typ** %"$msgobj_td_1095", align 8 - %"$msgobj_v_1097" = getelementptr i8, i8* %"$msgobj_1082", i32 69 - %"$msgobj_v_1098" = bitcast i8* %"$msgobj_v_1097" to %String* - store %String { i8* getelementptr inbounds ([9 x i8], [9 x i8]* @"$stringlit_1096", i32 0, i32 0), i32 9 }, %String* %"$msgobj_v_1098", align 8 - %"$msgobj_fname_1100" = getelementptr i8, i8* %"$msgobj_1082", i32 85 - %"$msgobj_fname_1101" = bitcast i8* %"$msgobj_fname_1100" to %String* - store %String { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$stringlit_1099", i32 0, i32 0), i32 7 }, %String* %"$msgobj_fname_1101", align 8 - %"$msgobj_td_1102" = getelementptr i8, i8* %"$msgobj_1082", i32 101 - %"$msgobj_td_1103" = bitcast i8* %"$msgobj_td_1102" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Uint128_94", %_TyDescrTy_Typ** %"$msgobj_td_1103", align 8 - %"$amount_1104" = load %Uint128, %Uint128* %amount, align 8 - %"$msgobj_v_1105" = getelementptr i8, i8* %"$msgobj_1082", i32 109 - %"$msgobj_v_1106" = bitcast i8* %"$msgobj_v_1105" to %Uint128* - store %Uint128 %"$amount_1104", %Uint128* %"$msgobj_v_1106", align 8 - store i8* %"$msgobj_1082", i8** %msg1, align 8, !dbg !111 - %"$gasrem_1108" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1109" = icmp ugt i64 1, %"$gasrem_1108" - br i1 %"$gascmp_1109", label %"$out_of_gas_1110", label %"$have_gas_1111" - -"$out_of_gas_1110": ; preds = %"$have_gas_1080" - call void @_out_of_gas() - br label %"$have_gas_1111" - -"$have_gas_1111": ; preds = %"$out_of_gas_1110", %"$have_gas_1080" - %"$consume_1112" = sub i64 %"$gasrem_1108", 1 - store i64 %"$consume_1112", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata i8** %msg1, metadata !210, metadata !DIExpression()), !dbg !211 + %"$gasrem_1094" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1095" = icmp ugt i64 1, %"$gasrem_1094" + br i1 %"$gascmp_1095", label %"$out_of_gas_1096", label %"$have_gas_1097" + +"$out_of_gas_1096": ; preds = %"$have_gas_1092" + call void @_out_of_gas() + br label %"$have_gas_1097" + +"$have_gas_1097": ; preds = %"$out_of_gas_1096", %"$have_gas_1092" + %"$consume_1098" = sub i64 %"$gasrem_1094", 1 + store i64 %"$consume_1098", i64* @_gasrem, align 8 + %"$msgobj_1099_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$msgobj_1099_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_1099_salloc_load", i64 125) + %"$msgobj_1099_salloc" = bitcast i8* %"$msgobj_1099_salloc_salloc" to [125 x i8]* + %"$msgobj_1099" = bitcast [125 x i8]* %"$msgobj_1099_salloc" to i8* + store i8 3, i8* %"$msgobj_1099", align 1 + %"$msgobj_fname_1101" = getelementptr i8, i8* %"$msgobj_1099", i32 1 + %"$msgobj_fname_1102" = bitcast i8* %"$msgobj_fname_1101" to %String* + store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_1100", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_1102", align 8 + %"$msgobj_td_1103" = getelementptr i8, i8* %"$msgobj_1099", i32 17 + %"$msgobj_td_1104" = bitcast i8* %"$msgobj_td_1103" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_114", %_TyDescrTy_Typ** %"$msgobj_td_1104", align 8 + %"$support_contract_1105" = load [20 x i8], [20 x i8]* @_cparam_support_contract, align 1 + %"$msgobj_v_1106" = getelementptr i8, i8* %"$msgobj_1099", i32 25 + %"$msgobj_v_1107" = bitcast i8* %"$msgobj_v_1106" to [20 x i8]* + store [20 x i8] %"$support_contract_1105", [20 x i8]* %"$msgobj_v_1107", align 1 + %"$msgobj_fname_1109" = getelementptr i8, i8* %"$msgobj_1099", i32 45 + %"$msgobj_fname_1110" = bitcast i8* %"$msgobj_fname_1109" to %String* + store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_1108", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_1110", align 8 + %"$msgobj_td_1111" = getelementptr i8, i8* %"$msgobj_1099", i32 61 + %"$msgobj_td_1112" = bitcast i8* %"$msgobj_td_1111" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_String_100", %_TyDescrTy_Typ** %"$msgobj_td_1112", align 8 + %"$msgobj_v_1114" = getelementptr i8, i8* %"$msgobj_1099", i32 69 + %"$msgobj_v_1115" = bitcast i8* %"$msgobj_v_1114" to %String* + store %String { i8* getelementptr inbounds ([9 x i8], [9 x i8]* @"$stringlit_1113", i32 0, i32 0), i32 9 }, %String* %"$msgobj_v_1115", align 8 + %"$msgobj_fname_1117" = getelementptr i8, i8* %"$msgobj_1099", i32 85 + %"$msgobj_fname_1118" = bitcast i8* %"$msgobj_fname_1117" to %String* + store %String { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$stringlit_1116", i32 0, i32 0), i32 7 }, %String* %"$msgobj_fname_1118", align 8 + %"$msgobj_td_1119" = getelementptr i8, i8* %"$msgobj_1099", i32 101 + %"$msgobj_td_1120" = bitcast i8* %"$msgobj_td_1119" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Uint128_94", %_TyDescrTy_Typ** %"$msgobj_td_1120", align 8 + %"$amount_1121" = load %Uint128, %Uint128* %amount, align 8 + %"$msgobj_v_1122" = getelementptr i8, i8* %"$msgobj_1099", i32 109 + %"$msgobj_v_1123" = bitcast i8* %"$msgobj_v_1122" to %Uint128* + store %Uint128 %"$amount_1121", %Uint128* %"$msgobj_v_1123", align 8 + store i8* %"$msgobj_1099", i8** %msg1, align 8, !dbg !212 + %"$gasrem_1125" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1126" = icmp ugt i64 1, %"$gasrem_1125" + br i1 %"$gascmp_1126", label %"$out_of_gas_1127", label %"$have_gas_1128" + +"$out_of_gas_1127": ; preds = %"$have_gas_1097" + call void @_out_of_gas() + br label %"$have_gas_1128" + +"$have_gas_1128": ; preds = %"$out_of_gas_1127", %"$have_gas_1097" + %"$consume_1129" = sub i64 %"$gasrem_1125", 1 + store i64 %"$consume_1129", i64* @_gasrem, align 8 %msgs = alloca %TName_List_Message*, align 8 - %"$gasrem_1113" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1114" = icmp ugt i64 1, %"$gasrem_1113" - br i1 %"$gascmp_1114", label %"$out_of_gas_1115", label %"$have_gas_1116" + call void @llvm.dbg.declare(metadata %TName_List_Message** %msgs, metadata !213, metadata !DIExpression()), !dbg !214 + %"$gasrem_1130" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1131" = icmp ugt i64 1, %"$gasrem_1130" + br i1 %"$gascmp_1131", label %"$out_of_gas_1132", label %"$have_gas_1133" -"$out_of_gas_1115": ; preds = %"$have_gas_1111" +"$out_of_gas_1132": ; preds = %"$have_gas_1128" call void @_out_of_gas() - br label %"$have_gas_1116" + br label %"$have_gas_1133" -"$have_gas_1116": ; preds = %"$out_of_gas_1115", %"$have_gas_1111" - %"$consume_1117" = sub i64 %"$gasrem_1113", 1 - store i64 %"$consume_1117", i64* @_gasrem, align 8 +"$have_gas_1133": ; preds = %"$out_of_gas_1132", %"$have_gas_1128" + %"$consume_1134" = sub i64 %"$gasrem_1130", 1 + store i64 %"$consume_1134", i64* @_gasrem, align 8 %"$accounting_tests.one_msg_18" = alloca %TName_List_Message*, align 8 - %"$accounting_tests.one_msg_1118" = load { %TName_List_Message* (i8*, i8*)*, i8* }, { %TName_List_Message* (i8*, i8*)*, i8* }* @accounting_tests.one_msg, align 8 - %"$accounting_tests.one_msg_fptr_1119" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$accounting_tests.one_msg_1118", 0 - %"$accounting_tests.one_msg_envptr_1120" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$accounting_tests.one_msg_1118", 1 - %"$msg1_1121" = load i8*, i8** %msg1, align 8 - %"$accounting_tests.one_msg_call_1122" = call %TName_List_Message* %"$accounting_tests.one_msg_fptr_1119"(i8* %"$accounting_tests.one_msg_envptr_1120", i8* %"$msg1_1121"), !dbg !112 - store %TName_List_Message* %"$accounting_tests.one_msg_call_1122", %TName_List_Message** %"$accounting_tests.one_msg_18", align 8, !dbg !112 - %"$$accounting_tests.one_msg_18_1123" = load %TName_List_Message*, %TName_List_Message** %"$accounting_tests.one_msg_18", align 8 - store %TName_List_Message* %"$$accounting_tests.one_msg_18_1123", %TName_List_Message** %msgs, align 8, !dbg !112 - %"$msgs_1124" = load %TName_List_Message*, %TName_List_Message** %msgs, align 8 - %"$$msgs_1124_1125" = bitcast %TName_List_Message* %"$msgs_1124" to i8* - %"$_literal_cost_call_1126" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_120", i8* %"$$msgs_1124_1125") - %"$gasrem_1127" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1128" = icmp ugt i64 %"$_literal_cost_call_1126", %"$gasrem_1127" - br i1 %"$gascmp_1128", label %"$out_of_gas_1129", label %"$have_gas_1130" - -"$out_of_gas_1129": ; preds = %"$have_gas_1116" - call void @_out_of_gas() - br label %"$have_gas_1130" - -"$have_gas_1130": ; preds = %"$out_of_gas_1129", %"$have_gas_1116" - %"$consume_1131" = sub i64 %"$gasrem_1127", %"$_literal_cost_call_1126" - store i64 %"$consume_1131", i64* @_gasrem, align 8 - %"$execptr_load_1132" = load i8*, i8** @_execptr, align 8 - %"$msgs_1133" = load %TName_List_Message*, %TName_List_Message** %msgs, align 8 - call void @_send(i8* %"$execptr_load_1132", %_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_120", %TName_List_Message* %"$msgs_1133"), !dbg !113 + call void @llvm.dbg.declare(metadata %TName_List_Message** %"$accounting_tests.one_msg_18", metadata !215, metadata !DIExpression()), !dbg !216 + %"$accounting_tests.one_msg_1135" = load { %TName_List_Message* (i8*, i8*)*, i8* }, { %TName_List_Message* (i8*, i8*)*, i8* }* @accounting_tests.one_msg, align 8 + %"$accounting_tests.one_msg_fptr_1136" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$accounting_tests.one_msg_1135", 0 + %"$accounting_tests.one_msg_envptr_1137" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$accounting_tests.one_msg_1135", 1 + %"$msg1_1138" = load i8*, i8** %msg1, align 8 + %"$accounting_tests.one_msg_call_1139" = call %TName_List_Message* %"$accounting_tests.one_msg_fptr_1136"(i8* %"$accounting_tests.one_msg_envptr_1137", i8* %"$msg1_1138"), !dbg !216 + store %TName_List_Message* %"$accounting_tests.one_msg_call_1139", %TName_List_Message** %"$accounting_tests.one_msg_18", align 8, !dbg !216 + %"$$accounting_tests.one_msg_18_1140" = load %TName_List_Message*, %TName_List_Message** %"$accounting_tests.one_msg_18", align 8 + store %TName_List_Message* %"$$accounting_tests.one_msg_18_1140", %TName_List_Message** %msgs, align 8, !dbg !216 + %"$msgs_1141" = load %TName_List_Message*, %TName_List_Message** %msgs, align 8 + %"$$msgs_1141_1142" = bitcast %TName_List_Message* %"$msgs_1141" to i8* + %"$_literal_cost_call_1143" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_120", i8* %"$$msgs_1141_1142") + %"$gasrem_1144" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1145" = icmp ugt i64 %"$_literal_cost_call_1143", %"$gasrem_1144" + br i1 %"$gascmp_1145", label %"$out_of_gas_1146", label %"$have_gas_1147" + +"$out_of_gas_1146": ; preds = %"$have_gas_1133" + call void @_out_of_gas() + br label %"$have_gas_1147" + +"$have_gas_1147": ; preds = %"$out_of_gas_1146", %"$have_gas_1133" + %"$consume_1148" = sub i64 %"$gasrem_1144", %"$_literal_cost_call_1143" + store i64 %"$consume_1148", i64* @_gasrem, align 8 + %"$execptr_load_1149" = load i8*, i8** @_execptr, align 8 + %"$msgs_1150" = load %TName_List_Message*, %TName_List_Message** %msgs, align 8 + call void @_send(i8* %"$execptr_load_1149", %_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_120", %TName_List_Message* %"$msgs_1150"), !dbg !217 ret void } -define void @Test_Insufficient_Balance(i8* %0) !dbg !114 { +define void @Test_Insufficient_Balance(i8* %0) !dbg !218 { entry: - %"$_amount_1135" = getelementptr i8, i8* %0, i32 0 - %"$_amount_1136" = bitcast i8* %"$_amount_1135" to %Uint128* - %_amount = load %Uint128, %Uint128* %"$_amount_1136", align 8 - %"$_origin_1137" = getelementptr i8, i8* %0, i32 16 - %"$_origin_1138" = bitcast i8* %"$_origin_1137" to [20 x i8]* - %"$_sender_1139" = getelementptr i8, i8* %0, i32 36 - %"$_sender_1140" = bitcast i8* %"$_sender_1139" to [20 x i8]* - call void @"$Test_Insufficient_Balance_1054"(%Uint128 %_amount, [20 x i8]* %"$_origin_1138", [20 x i8]* %"$_sender_1140"), !dbg !115 + %"$_amount_1155" = getelementptr i8, i8* %0, i32 0 + %"$_amount_1156" = bitcast i8* %"$_amount_1155" to %Uint128* + %_amount = load %Uint128, %Uint128* %"$_amount_1156", align 8 + %"$_origin_1157" = getelementptr i8, i8* %0, i32 16 + %"$_origin_1158" = bitcast i8* %"$_origin_1157" to [20 x i8]* + %"$_sender_1159" = getelementptr i8, i8* %0, i32 36 + %"$_sender_1160" = bitcast i8* %"$_sender_1159" to [20 x i8]* + call void @"$Test_Insufficient_Balance_1071"(%Uint128 %_amount, [20 x i8]* %"$_origin_1158", [20 x i8]* %"$_sender_1160"), !dbg !219 ret void } -define internal void @"$Test_Send_1_1141"(%Uint128 %_amount, [20 x i8]* %"$_origin_1142", [20 x i8]* %"$_sender_1143") !dbg !116 { +define internal void @"$Test_Send_1_1161"(%Uint128 %_amount, [20 x i8]* %"$_origin_1162", [20 x i8]* %"$_sender_1163") !dbg !220 { entry: - %_origin = load [20 x i8], [20 x i8]* %"$_origin_1142", align 1 - %_sender = load [20 x i8], [20 x i8]* %"$_sender_1143", align 1 - %"$gasrem_1144" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1145" = icmp ugt i64 1, %"$gasrem_1144" - br i1 %"$gascmp_1145", label %"$out_of_gas_1146", label %"$have_gas_1147" - -"$out_of_gas_1146": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_1147" - -"$have_gas_1147": ; preds = %"$out_of_gas_1146", %entry - %"$consume_1148" = sub i64 %"$gasrem_1144", 1 - store i64 %"$consume_1148", i64* @_gasrem, align 8 - %"$AssertReset__origin_1149" = alloca [20 x i8], align 1 - store [20 x i8] %_origin, [20 x i8]* %"$AssertReset__origin_1149", align 1 - %"$AssertReset__sender_1150" = alloca [20 x i8], align 1 - store [20 x i8] %_sender, [20 x i8]* %"$AssertReset__sender_1150", align 1 - call void @"$AssertReset_855"(%Uint128 %_amount, [20 x i8]* %"$AssertReset__origin_1149", [20 x i8]* %"$AssertReset__sender_1150"), !dbg !117 + %"$_sender_1402" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_sender_1163", [20 x i8]** %"$_sender_1402", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_sender_1402", metadata !221, metadata !DIExpression()), !dbg !222 + %"$_origin_1401" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_origin_1162", [20 x i8]** %"$_origin_1401", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_origin_1401", metadata !223, metadata !DIExpression()), !dbg !222 + %"$_amount_1400" = alloca %Uint128, align 8 + store %Uint128 %_amount, %Uint128* %"$_amount_1400", align 8 + call void @llvm.dbg.declare(metadata %Uint128* %"$_amount_1400", metadata !224, metadata !DIExpression()), !dbg !222 + %_origin = load [20 x i8], [20 x i8]* %"$_origin_1162", align 1 + %_sender = load [20 x i8], [20 x i8]* %"$_sender_1163", align 1 + %"$gasrem_1164" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1165" = icmp ugt i64 1, %"$gasrem_1164" + br i1 %"$gascmp_1165", label %"$out_of_gas_1166", label %"$have_gas_1167" + +"$out_of_gas_1166": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_1167" + +"$have_gas_1167": ; preds = %"$out_of_gas_1166", %entry + %"$consume_1168" = sub i64 %"$gasrem_1164", 1 + store i64 %"$consume_1168", i64* @_gasrem, align 8 + %"$AssertReset__origin_1169" = alloca [20 x i8], align 1 + store [20 x i8] %_origin, [20 x i8]* %"$AssertReset__origin_1169", align 1 + %"$AssertReset__sender_1170" = alloca [20 x i8], align 1 + store [20 x i8] %_sender, [20 x i8]* %"$AssertReset__sender_1170", align 1 + call void @"$AssertReset_869"(%Uint128 %_amount, [20 x i8]* %"$AssertReset__origin_1169", [20 x i8]* %"$AssertReset__sender_1170"), !dbg !225 %s1 = alloca %String, align 8 - %"$execptr_load_1152" = load i8*, i8** @_execptr, align 8 - %"$s1_call_1153" = call i8* @_fetch_field(i8* %"$execptr_load_1152", i8* getelementptr inbounds ([14 x i8], [14 x i8]* @"$test_string_1_1151", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_String_100", i32 0, i8* null, i32 1), !dbg !118 - %"$s1_1154" = bitcast i8* %"$s1_call_1153" to %String* - %"$s1_1155" = load %String, %String* %"$s1_1154", align 8 - store %String %"$s1_1155", %String* %s1, align 8 - %"$_literal_cost_s1_1156" = alloca %String, align 8 - %"$s1_1157" = load %String, %String* %s1, align 8 - store %String %"$s1_1157", %String* %"$_literal_cost_s1_1156", align 8 - %"$$_literal_cost_s1_1156_1158" = bitcast %String* %"$_literal_cost_s1_1156" to i8* - %"$_literal_cost_call_1159" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_100", i8* %"$$_literal_cost_s1_1156_1158") - %"$gasadd_1160" = add i64 %"$_literal_cost_call_1159", 0 - %"$gasrem_1161" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1162" = icmp ugt i64 %"$gasadd_1160", %"$gasrem_1161" - br i1 %"$gascmp_1162", label %"$out_of_gas_1163", label %"$have_gas_1164" - -"$out_of_gas_1163": ; preds = %"$have_gas_1147" - call void @_out_of_gas() - br label %"$have_gas_1164" - -"$have_gas_1164": ; preds = %"$out_of_gas_1163", %"$have_gas_1147" - %"$consume_1165" = sub i64 %"$gasrem_1161", %"$gasadd_1160" - store i64 %"$consume_1165", i64* @_gasrem, 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_1164" - call void @_out_of_gas() - br label %"$have_gas_1169" - -"$have_gas_1169": ; preds = %"$out_of_gas_1168", %"$have_gas_1164" - %"$consume_1170" = sub i64 %"$gasrem_1166", 1 - store i64 %"$consume_1170", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %String* %s1, metadata !226, metadata !DIExpression()), !dbg !227 + %"$execptr_load_1172" = load i8*, i8** @_execptr, align 8 + %"$s1_call_1173" = call i8* @_fetch_field(i8* %"$execptr_load_1172", i8* getelementptr inbounds ([14 x i8], [14 x i8]* @"$test_string_1_1171", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_String_100", i32 0, i8* null, i32 1), !dbg !227 + %"$s1_1174" = bitcast i8* %"$s1_call_1173" to %String* + %"$s1_1175" = load %String, %String* %"$s1_1174", align 8 + store %String %"$s1_1175", %String* %s1, align 8 + %"$_literal_cost_s1_1176" = alloca %String, align 8 + %"$s1_1177" = load %String, %String* %s1, align 8 + store %String %"$s1_1177", %String* %"$_literal_cost_s1_1176", align 8 + %"$$_literal_cost_s1_1176_1178" = bitcast %String* %"$_literal_cost_s1_1176" to i8* + %"$_literal_cost_call_1179" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_100", i8* %"$$_literal_cost_s1_1176_1178") + %"$gasadd_1180" = add i64 %"$_literal_cost_call_1179", 0 + %"$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_1167" + call void @_out_of_gas() + br label %"$have_gas_1184" + +"$have_gas_1184": ; preds = %"$out_of_gas_1183", %"$have_gas_1167" + %"$consume_1185" = sub i64 %"$gasrem_1181", %"$gasadd_1180" + store i64 %"$consume_1185", i64* @_gasrem, align 8 + %"$gasrem_1186" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1187" = icmp ugt i64 1, %"$gasrem_1186" + br i1 %"$gascmp_1187", label %"$out_of_gas_1188", label %"$have_gas_1189" + +"$out_of_gas_1188": ; preds = %"$have_gas_1184" + call void @_out_of_gas() + br label %"$have_gas_1189" + +"$have_gas_1189": ; preds = %"$out_of_gas_1188", %"$have_gas_1184" + %"$consume_1190" = sub i64 %"$gasrem_1186", 1 + store i64 %"$consume_1190", i64* @_gasrem, align 8 %msg1 = alloca i8*, 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 - %"$msgobj_1176_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$msgobj_1176_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_1176_salloc_load", i64 165) - %"$msgobj_1176_salloc" = bitcast i8* %"$msgobj_1176_salloc_salloc" to [165 x i8]* - %"$msgobj_1176" = bitcast [165 x i8]* %"$msgobj_1176_salloc" to i8* - store i8 4, i8* %"$msgobj_1176", align 1 - %"$msgobj_fname_1178" = getelementptr i8, i8* %"$msgobj_1176", i32 1 - %"$msgobj_fname_1179" = bitcast i8* %"$msgobj_fname_1178" to %String* - store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_1177", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_1179", align 8 - %"$msgobj_td_1180" = getelementptr i8, i8* %"$msgobj_1176", i32 17 - %"$msgobj_td_1181" = bitcast i8* %"$msgobj_td_1180" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_114", %_TyDescrTy_Typ** %"$msgobj_td_1181", align 8 - %"$support_contract_1182" = load [20 x i8], [20 x i8]* @_cparam_support_contract, align 1 - %"$msgobj_v_1183" = getelementptr i8, i8* %"$msgobj_1176", i32 25 - %"$msgobj_v_1184" = bitcast i8* %"$msgobj_v_1183" to [20 x i8]* - store [20 x i8] %"$support_contract_1182", [20 x i8]* %"$msgobj_v_1184", align 1 - %"$msgobj_fname_1186" = getelementptr i8, i8* %"$msgobj_1176", i32 45 - %"$msgobj_fname_1187" = bitcast i8* %"$msgobj_fname_1186" to %String* - store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_1185", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_1187", align 8 - %"$msgobj_td_1188" = getelementptr i8, i8* %"$msgobj_1176", i32 61 - %"$msgobj_td_1189" = bitcast i8* %"$msgobj_td_1188" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_String_100", %_TyDescrTy_Typ** %"$msgobj_td_1189", align 8 - %"$msgobj_v_1191" = getelementptr i8, i8* %"$msgobj_1176", i32 69 - %"$msgobj_v_1192" = bitcast i8* %"$msgobj_v_1191" to %String* - store %String { i8* getelementptr inbounds ([11 x i8], [11 x i8]* @"$stringlit_1190", i32 0, i32 0), i32 11 }, %String* %"$msgobj_v_1192", align 8 - %"$msgobj_fname_1194" = getelementptr i8, i8* %"$msgobj_1176", i32 85 - %"$msgobj_fname_1195" = bitcast i8* %"$msgobj_fname_1194" to %String* - store %String { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$stringlit_1193", i32 0, i32 0), i32 7 }, %String* %"$msgobj_fname_1195", align 8 - %"$msgobj_td_1196" = getelementptr i8, i8* %"$msgobj_1176", i32 101 - %"$msgobj_td_1197" = bitcast i8* %"$msgobj_td_1196" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Uint128_94", %_TyDescrTy_Typ** %"$msgobj_td_1197", align 8 - %"$msgobj_v_1198" = getelementptr i8, i8* %"$msgobj_1176", i32 109 - %"$msgobj_v_1199" = bitcast i8* %"$msgobj_v_1198" to %Uint128* - store %Uint128 zeroinitializer, %Uint128* %"$msgobj_v_1199", align 8 - %"$msgobj_fname_1201" = getelementptr i8, i8* %"$msgobj_1176", i32 125 - %"$msgobj_fname_1202" = bitcast i8* %"$msgobj_fname_1201" to %String* - store %String { i8* getelementptr inbounds ([1 x i8], [1 x i8]* @"$stringlit_1200", i32 0, i32 0), i32 1 }, %String* %"$msgobj_fname_1202", align 8 - %"$msgobj_td_1203" = getelementptr i8, i8* %"$msgobj_1176", i32 141 - %"$msgobj_td_1204" = bitcast i8* %"$msgobj_td_1203" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_String_100", %_TyDescrTy_Typ** %"$msgobj_td_1204", align 8 - %"$s1_1205" = load %String, %String* %s1, align 8 - %"$msgobj_v_1206" = getelementptr i8, i8* %"$msgobj_1176", i32 149 - %"$msgobj_v_1207" = bitcast i8* %"$msgobj_v_1206" to %String* - store %String %"$s1_1205", %String* %"$msgobj_v_1207", align 8 - store i8* %"$msgobj_1176", i8** %msg1, align 8, !dbg !119 - %"$gasrem_1209" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1210" = icmp ugt i64 1, %"$gasrem_1209" - br i1 %"$gascmp_1210", label %"$out_of_gas_1211", label %"$have_gas_1212" - -"$out_of_gas_1211": ; preds = %"$have_gas_1174" - call void @_out_of_gas() - br label %"$have_gas_1212" - -"$have_gas_1212": ; preds = %"$out_of_gas_1211", %"$have_gas_1174" - %"$consume_1213" = sub i64 %"$gasrem_1209", 1 - store i64 %"$consume_1213", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata i8** %msg1, metadata !228, metadata !DIExpression()), !dbg !229 + %"$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_1193": ; preds = %"$have_gas_1189" + call void @_out_of_gas() + br label %"$have_gas_1194" + +"$have_gas_1194": ; preds = %"$out_of_gas_1193", %"$have_gas_1189" + %"$consume_1195" = sub i64 %"$gasrem_1191", 1 + store i64 %"$consume_1195", i64* @_gasrem, align 8 + %"$msgobj_1196_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$msgobj_1196_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_1196_salloc_load", i64 165) + %"$msgobj_1196_salloc" = bitcast i8* %"$msgobj_1196_salloc_salloc" to [165 x i8]* + %"$msgobj_1196" = bitcast [165 x i8]* %"$msgobj_1196_salloc" to i8* + store i8 4, i8* %"$msgobj_1196", align 1 + %"$msgobj_fname_1198" = getelementptr i8, i8* %"$msgobj_1196", i32 1 + %"$msgobj_fname_1199" = bitcast i8* %"$msgobj_fname_1198" to %String* + store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_1197", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_1199", align 8 + %"$msgobj_td_1200" = getelementptr i8, i8* %"$msgobj_1196", i32 17 + %"$msgobj_td_1201" = bitcast i8* %"$msgobj_td_1200" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_114", %_TyDescrTy_Typ** %"$msgobj_td_1201", align 8 + %"$support_contract_1202" = load [20 x i8], [20 x i8]* @_cparam_support_contract, align 1 + %"$msgobj_v_1203" = getelementptr i8, i8* %"$msgobj_1196", i32 25 + %"$msgobj_v_1204" = bitcast i8* %"$msgobj_v_1203" to [20 x i8]* + store [20 x i8] %"$support_contract_1202", [20 x i8]* %"$msgobj_v_1204", align 1 + %"$msgobj_fname_1206" = getelementptr i8, i8* %"$msgobj_1196", i32 45 + %"$msgobj_fname_1207" = bitcast i8* %"$msgobj_fname_1206" to %String* + store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_1205", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_1207", align 8 + %"$msgobj_td_1208" = getelementptr i8, i8* %"$msgobj_1196", i32 61 + %"$msgobj_td_1209" = bitcast i8* %"$msgobj_td_1208" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_String_100", %_TyDescrTy_Typ** %"$msgobj_td_1209", align 8 + %"$msgobj_v_1211" = getelementptr i8, i8* %"$msgobj_1196", i32 69 + %"$msgobj_v_1212" = bitcast i8* %"$msgobj_v_1211" to %String* + store %String { i8* getelementptr inbounds ([11 x i8], [11 x i8]* @"$stringlit_1210", i32 0, i32 0), i32 11 }, %String* %"$msgobj_v_1212", align 8 + %"$msgobj_fname_1214" = getelementptr i8, i8* %"$msgobj_1196", i32 85 + %"$msgobj_fname_1215" = bitcast i8* %"$msgobj_fname_1214" to %String* + store %String { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$stringlit_1213", i32 0, i32 0), i32 7 }, %String* %"$msgobj_fname_1215", align 8 + %"$msgobj_td_1216" = getelementptr i8, i8* %"$msgobj_1196", i32 101 + %"$msgobj_td_1217" = bitcast i8* %"$msgobj_td_1216" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Uint128_94", %_TyDescrTy_Typ** %"$msgobj_td_1217", align 8 + %"$msgobj_v_1218" = getelementptr i8, i8* %"$msgobj_1196", i32 109 + %"$msgobj_v_1219" = bitcast i8* %"$msgobj_v_1218" to %Uint128* + store %Uint128 zeroinitializer, %Uint128* %"$msgobj_v_1219", align 8 + %"$msgobj_fname_1221" = getelementptr i8, i8* %"$msgobj_1196", i32 125 + %"$msgobj_fname_1222" = bitcast i8* %"$msgobj_fname_1221" to %String* + store %String { i8* getelementptr inbounds ([1 x i8], [1 x i8]* @"$stringlit_1220", i32 0, i32 0), i32 1 }, %String* %"$msgobj_fname_1222", align 8 + %"$msgobj_td_1223" = getelementptr i8, i8* %"$msgobj_1196", i32 141 + %"$msgobj_td_1224" = bitcast i8* %"$msgobj_td_1223" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_String_100", %_TyDescrTy_Typ** %"$msgobj_td_1224", align 8 + %"$s1_1225" = load %String, %String* %s1, align 8 + %"$msgobj_v_1226" = getelementptr i8, i8* %"$msgobj_1196", i32 149 + %"$msgobj_v_1227" = bitcast i8* %"$msgobj_v_1226" to %String* + store %String %"$s1_1225", %String* %"$msgobj_v_1227", align 8 + store i8* %"$msgobj_1196", i8** %msg1, align 8, !dbg !230 + %"$gasrem_1229" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1230" = icmp ugt i64 1, %"$gasrem_1229" + br i1 %"$gascmp_1230", label %"$out_of_gas_1231", label %"$have_gas_1232" + +"$out_of_gas_1231": ; preds = %"$have_gas_1194" + call void @_out_of_gas() + br label %"$have_gas_1232" + +"$have_gas_1232": ; preds = %"$out_of_gas_1231", %"$have_gas_1194" + %"$consume_1233" = sub i64 %"$gasrem_1229", 1 + store i64 %"$consume_1233", i64* @_gasrem, align 8 %msgs1 = alloca %TName_List_Message*, 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" + call void @llvm.dbg.declare(metadata %TName_List_Message** %msgs1, metadata !231, metadata !DIExpression()), !dbg !232 + %"$gasrem_1234" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1235" = icmp ugt i64 1, %"$gasrem_1234" + br i1 %"$gascmp_1235", label %"$out_of_gas_1236", label %"$have_gas_1237" -"$out_of_gas_1216": ; preds = %"$have_gas_1212" +"$out_of_gas_1236": ; preds = %"$have_gas_1232" call void @_out_of_gas() - br label %"$have_gas_1217" + br label %"$have_gas_1237" -"$have_gas_1217": ; preds = %"$out_of_gas_1216", %"$have_gas_1212" - %"$consume_1218" = sub i64 %"$gasrem_1214", 1 - store i64 %"$consume_1218", i64* @_gasrem, align 8 +"$have_gas_1237": ; preds = %"$out_of_gas_1236", %"$have_gas_1232" + %"$consume_1238" = sub i64 %"$gasrem_1234", 1 + store i64 %"$consume_1238", i64* @_gasrem, align 8 %"$accounting_tests.one_msg_21" = alloca %TName_List_Message*, align 8 - %"$accounting_tests.one_msg_1219" = load { %TName_List_Message* (i8*, i8*)*, i8* }, { %TName_List_Message* (i8*, i8*)*, i8* }* @accounting_tests.one_msg, align 8 - %"$accounting_tests.one_msg_fptr_1220" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$accounting_tests.one_msg_1219", 0 - %"$accounting_tests.one_msg_envptr_1221" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$accounting_tests.one_msg_1219", 1 - %"$msg1_1222" = load i8*, i8** %msg1, align 8 - %"$accounting_tests.one_msg_call_1223" = call %TName_List_Message* %"$accounting_tests.one_msg_fptr_1220"(i8* %"$accounting_tests.one_msg_envptr_1221", i8* %"$msg1_1222"), !dbg !120 - store %TName_List_Message* %"$accounting_tests.one_msg_call_1223", %TName_List_Message** %"$accounting_tests.one_msg_21", align 8, !dbg !120 - %"$$accounting_tests.one_msg_21_1224" = load %TName_List_Message*, %TName_List_Message** %"$accounting_tests.one_msg_21", align 8 - store %TName_List_Message* %"$$accounting_tests.one_msg_21_1224", %TName_List_Message** %msgs1, align 8, !dbg !120 - %"$msgs1_1225" = load %TName_List_Message*, %TName_List_Message** %msgs1, align 8 - %"$$msgs1_1225_1226" = bitcast %TName_List_Message* %"$msgs1_1225" to i8* - %"$_literal_cost_call_1227" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_120", i8* %"$$msgs1_1225_1226") - %"$gasrem_1228" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1229" = icmp ugt i64 %"$_literal_cost_call_1227", %"$gasrem_1228" - br i1 %"$gascmp_1229", label %"$out_of_gas_1230", label %"$have_gas_1231" - -"$out_of_gas_1230": ; preds = %"$have_gas_1217" - call void @_out_of_gas() - br label %"$have_gas_1231" - -"$have_gas_1231": ; preds = %"$out_of_gas_1230", %"$have_gas_1217" - %"$consume_1232" = sub i64 %"$gasrem_1228", %"$_literal_cost_call_1227" - store i64 %"$consume_1232", i64* @_gasrem, align 8 - %"$execptr_load_1233" = load i8*, i8** @_execptr, align 8 - %"$msgs1_1234" = load %TName_List_Message*, %TName_List_Message** %msgs1, align 8 - call void @_send(i8* %"$execptr_load_1233", %_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_120", %TName_List_Message* %"$msgs1_1234"), !dbg !121 + call void @llvm.dbg.declare(metadata %TName_List_Message** %"$accounting_tests.one_msg_21", metadata !233, metadata !DIExpression()), !dbg !234 + %"$accounting_tests.one_msg_1239" = load { %TName_List_Message* (i8*, i8*)*, i8* }, { %TName_List_Message* (i8*, i8*)*, i8* }* @accounting_tests.one_msg, align 8 + %"$accounting_tests.one_msg_fptr_1240" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$accounting_tests.one_msg_1239", 0 + %"$accounting_tests.one_msg_envptr_1241" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$accounting_tests.one_msg_1239", 1 + %"$msg1_1242" = load i8*, i8** %msg1, align 8 + %"$accounting_tests.one_msg_call_1243" = call %TName_List_Message* %"$accounting_tests.one_msg_fptr_1240"(i8* %"$accounting_tests.one_msg_envptr_1241", i8* %"$msg1_1242"), !dbg !234 + store %TName_List_Message* %"$accounting_tests.one_msg_call_1243", %TName_List_Message** %"$accounting_tests.one_msg_21", align 8, !dbg !234 + %"$$accounting_tests.one_msg_21_1244" = load %TName_List_Message*, %TName_List_Message** %"$accounting_tests.one_msg_21", align 8 + store %TName_List_Message* %"$$accounting_tests.one_msg_21_1244", %TName_List_Message** %msgs1, align 8, !dbg !234 + %"$msgs1_1245" = load %TName_List_Message*, %TName_List_Message** %msgs1, align 8 + %"$$msgs1_1245_1246" = bitcast %TName_List_Message* %"$msgs1_1245" to i8* + %"$_literal_cost_call_1247" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_120", i8* %"$$msgs1_1245_1246") + %"$gasrem_1248" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1249" = icmp ugt i64 %"$_literal_cost_call_1247", %"$gasrem_1248" + br i1 %"$gascmp_1249", label %"$out_of_gas_1250", label %"$have_gas_1251" + +"$out_of_gas_1250": ; preds = %"$have_gas_1237" + call void @_out_of_gas() + br label %"$have_gas_1251" + +"$have_gas_1251": ; preds = %"$out_of_gas_1250", %"$have_gas_1237" + %"$consume_1252" = sub i64 %"$gasrem_1248", %"$_literal_cost_call_1247" + store i64 %"$consume_1252", i64* @_gasrem, align 8 + %"$execptr_load_1253" = load i8*, i8** @_execptr, align 8 + %"$msgs1_1254" = load %TName_List_Message*, %TName_List_Message** %msgs1, align 8 + call void @_send(i8* %"$execptr_load_1253", %_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_120", %TName_List_Message* %"$msgs1_1254"), !dbg !235 %s2 = alloca %String, align 8 - %"$execptr_load_1236" = load i8*, i8** @_execptr, align 8 - %"$s2_call_1237" = call i8* @_fetch_field(i8* %"$execptr_load_1236", i8* getelementptr inbounds ([14 x i8], [14 x i8]* @"$test_string_2_1235", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_String_100", i32 0, i8* null, i32 1), !dbg !122 - %"$s2_1238" = bitcast i8* %"$s2_call_1237" to %String* - %"$s2_1239" = load %String, %String* %"$s2_1238", align 8 - store %String %"$s2_1239", %String* %s2, align 8 - %"$_literal_cost_s2_1240" = alloca %String, align 8 - %"$s2_1241" = load %String, %String* %s2, align 8 - store %String %"$s2_1241", %String* %"$_literal_cost_s2_1240", align 8 - %"$$_literal_cost_s2_1240_1242" = bitcast %String* %"$_literal_cost_s2_1240" to i8* - %"$_literal_cost_call_1243" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_100", i8* %"$$_literal_cost_s2_1240_1242") - %"$gasadd_1244" = add i64 %"$_literal_cost_call_1243", 0 - %"$gasrem_1245" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1246" = icmp ugt i64 %"$gasadd_1244", %"$gasrem_1245" - br i1 %"$gascmp_1246", label %"$out_of_gas_1247", label %"$have_gas_1248" - -"$out_of_gas_1247": ; preds = %"$have_gas_1231" - call void @_out_of_gas() - br label %"$have_gas_1248" - -"$have_gas_1248": ; preds = %"$out_of_gas_1247", %"$have_gas_1231" - %"$consume_1249" = sub i64 %"$gasrem_1245", %"$gasadd_1244" - store i64 %"$consume_1249", i64* @_gasrem, align 8 - %"$gasrem_1250" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1251" = icmp ugt i64 1, %"$gasrem_1250" - br i1 %"$gascmp_1251", label %"$out_of_gas_1252", label %"$have_gas_1253" - -"$out_of_gas_1252": ; preds = %"$have_gas_1248" - call void @_out_of_gas() - br label %"$have_gas_1253" - -"$have_gas_1253": ; preds = %"$out_of_gas_1252", %"$have_gas_1248" - %"$consume_1254" = sub i64 %"$gasrem_1250", 1 - store i64 %"$consume_1254", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %String* %s2, metadata !236, metadata !DIExpression()), !dbg !237 + %"$execptr_load_1256" = load i8*, i8** @_execptr, align 8 + %"$s2_call_1257" = call i8* @_fetch_field(i8* %"$execptr_load_1256", i8* getelementptr inbounds ([14 x i8], [14 x i8]* @"$test_string_2_1255", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_String_100", i32 0, i8* null, i32 1), !dbg !237 + %"$s2_1258" = bitcast i8* %"$s2_call_1257" to %String* + %"$s2_1259" = load %String, %String* %"$s2_1258", align 8 + store %String %"$s2_1259", %String* %s2, align 8 + %"$_literal_cost_s2_1260" = alloca %String, align 8 + %"$s2_1261" = load %String, %String* %s2, align 8 + store %String %"$s2_1261", %String* %"$_literal_cost_s2_1260", align 8 + %"$$_literal_cost_s2_1260_1262" = bitcast %String* %"$_literal_cost_s2_1260" to i8* + %"$_literal_cost_call_1263" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_100", i8* %"$$_literal_cost_s2_1260_1262") + %"$gasadd_1264" = add i64 %"$_literal_cost_call_1263", 0 + %"$gasrem_1265" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1266" = icmp ugt i64 %"$gasadd_1264", %"$gasrem_1265" + br i1 %"$gascmp_1266", label %"$out_of_gas_1267", label %"$have_gas_1268" + +"$out_of_gas_1267": ; preds = %"$have_gas_1251" + call void @_out_of_gas() + br label %"$have_gas_1268" + +"$have_gas_1268": ; preds = %"$out_of_gas_1267", %"$have_gas_1251" + %"$consume_1269" = sub i64 %"$gasrem_1265", %"$gasadd_1264" + store i64 %"$consume_1269", i64* @_gasrem, 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_1268" + call void @_out_of_gas() + br label %"$have_gas_1273" + +"$have_gas_1273": ; preds = %"$out_of_gas_1272", %"$have_gas_1268" + %"$consume_1274" = sub i64 %"$gasrem_1270", 1 + store i64 %"$consume_1274", i64* @_gasrem, align 8 %msg2 = alloca i8*, align 8 - %"$gasrem_1255" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1256" = icmp ugt i64 1, %"$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", 1 - store i64 %"$consume_1259", i64* @_gasrem, align 8 - %"$msgobj_1260_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$msgobj_1260_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_1260_salloc_load", i64 165) - %"$msgobj_1260_salloc" = bitcast i8* %"$msgobj_1260_salloc_salloc" to [165 x i8]* - %"$msgobj_1260" = bitcast [165 x i8]* %"$msgobj_1260_salloc" to i8* - store i8 4, i8* %"$msgobj_1260", align 1 - %"$msgobj_fname_1262" = getelementptr i8, i8* %"$msgobj_1260", i32 1 - %"$msgobj_fname_1263" = bitcast i8* %"$msgobj_fname_1262" to %String* - store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_1261", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_1263", align 8 - %"$msgobj_td_1264" = getelementptr i8, i8* %"$msgobj_1260", i32 17 - %"$msgobj_td_1265" = bitcast i8* %"$msgobj_td_1264" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_114", %_TyDescrTy_Typ** %"$msgobj_td_1265", align 8 - %"$support_contract_1266" = load [20 x i8], [20 x i8]* @_cparam_support_contract, align 1 - %"$msgobj_v_1267" = getelementptr i8, i8* %"$msgobj_1260", i32 25 - %"$msgobj_v_1268" = bitcast i8* %"$msgobj_v_1267" to [20 x i8]* - store [20 x i8] %"$support_contract_1266", [20 x i8]* %"$msgobj_v_1268", align 1 - %"$msgobj_fname_1270" = getelementptr i8, i8* %"$msgobj_1260", i32 45 - %"$msgobj_fname_1271" = bitcast i8* %"$msgobj_fname_1270" to %String* - store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_1269", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_1271", align 8 - %"$msgobj_td_1272" = getelementptr i8, i8* %"$msgobj_1260", i32 61 - %"$msgobj_td_1273" = bitcast i8* %"$msgobj_td_1272" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_String_100", %_TyDescrTy_Typ** %"$msgobj_td_1273", align 8 - %"$msgobj_v_1275" = getelementptr i8, i8* %"$msgobj_1260", i32 69 - %"$msgobj_v_1276" = bitcast i8* %"$msgobj_v_1275" to %String* - store %String { i8* getelementptr inbounds ([11 x i8], [11 x i8]* @"$stringlit_1274", i32 0, i32 0), i32 11 }, %String* %"$msgobj_v_1276", align 8 - %"$msgobj_fname_1278" = getelementptr i8, i8* %"$msgobj_1260", i32 85 - %"$msgobj_fname_1279" = bitcast i8* %"$msgobj_fname_1278" to %String* - store %String { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$stringlit_1277", i32 0, i32 0), i32 7 }, %String* %"$msgobj_fname_1279", align 8 - %"$msgobj_td_1280" = getelementptr i8, i8* %"$msgobj_1260", i32 101 - %"$msgobj_td_1281" = bitcast i8* %"$msgobj_td_1280" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Uint128_94", %_TyDescrTy_Typ** %"$msgobj_td_1281", align 8 - %"$msgobj_v_1282" = getelementptr i8, i8* %"$msgobj_1260", i32 109 - %"$msgobj_v_1283" = bitcast i8* %"$msgobj_v_1282" to %Uint128* - store %Uint128 zeroinitializer, %Uint128* %"$msgobj_v_1283", align 8 - %"$msgobj_fname_1285" = getelementptr i8, i8* %"$msgobj_1260", i32 125 - %"$msgobj_fname_1286" = bitcast i8* %"$msgobj_fname_1285" to %String* - store %String { i8* getelementptr inbounds ([1 x i8], [1 x i8]* @"$stringlit_1284", i32 0, i32 0), i32 1 }, %String* %"$msgobj_fname_1286", align 8 - %"$msgobj_td_1287" = getelementptr i8, i8* %"$msgobj_1260", i32 141 - %"$msgobj_td_1288" = bitcast i8* %"$msgobj_td_1287" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_String_100", %_TyDescrTy_Typ** %"$msgobj_td_1288", align 8 - %"$s2_1289" = load %String, %String* %s2, align 8 - %"$msgobj_v_1290" = getelementptr i8, i8* %"$msgobj_1260", i32 149 - %"$msgobj_v_1291" = bitcast i8* %"$msgobj_v_1290" to %String* - store %String %"$s2_1289", %String* %"$msgobj_v_1291", align 8 - store i8* %"$msgobj_1260", i8** %msg2, align 8, !dbg !123 - %"$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 = %"$have_gas_1258" - call void @_out_of_gas() - br label %"$have_gas_1296" - -"$have_gas_1296": ; preds = %"$out_of_gas_1295", %"$have_gas_1258" - %"$consume_1297" = sub i64 %"$gasrem_1293", 1 - store i64 %"$consume_1297", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata i8** %msg2, metadata !238, metadata !DIExpression()), !dbg !239 + %"$gasrem_1275" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1276" = icmp ugt i64 1, %"$gasrem_1275" + br i1 %"$gascmp_1276", label %"$out_of_gas_1277", label %"$have_gas_1278" + +"$out_of_gas_1277": ; preds = %"$have_gas_1273" + call void @_out_of_gas() + br label %"$have_gas_1278" + +"$have_gas_1278": ; preds = %"$out_of_gas_1277", %"$have_gas_1273" + %"$consume_1279" = sub i64 %"$gasrem_1275", 1 + store i64 %"$consume_1279", i64* @_gasrem, align 8 + %"$msgobj_1280_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$msgobj_1280_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_1280_salloc_load", i64 165) + %"$msgobj_1280_salloc" = bitcast i8* %"$msgobj_1280_salloc_salloc" to [165 x i8]* + %"$msgobj_1280" = bitcast [165 x i8]* %"$msgobj_1280_salloc" to i8* + store i8 4, i8* %"$msgobj_1280", align 1 + %"$msgobj_fname_1282" = getelementptr i8, i8* %"$msgobj_1280", i32 1 + %"$msgobj_fname_1283" = bitcast i8* %"$msgobj_fname_1282" to %String* + store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_1281", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_1283", align 8 + %"$msgobj_td_1284" = getelementptr i8, i8* %"$msgobj_1280", i32 17 + %"$msgobj_td_1285" = bitcast i8* %"$msgobj_td_1284" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_114", %_TyDescrTy_Typ** %"$msgobj_td_1285", align 8 + %"$support_contract_1286" = load [20 x i8], [20 x i8]* @_cparam_support_contract, align 1 + %"$msgobj_v_1287" = getelementptr i8, i8* %"$msgobj_1280", i32 25 + %"$msgobj_v_1288" = bitcast i8* %"$msgobj_v_1287" to [20 x i8]* + store [20 x i8] %"$support_contract_1286", [20 x i8]* %"$msgobj_v_1288", align 1 + %"$msgobj_fname_1290" = getelementptr i8, i8* %"$msgobj_1280", i32 45 + %"$msgobj_fname_1291" = bitcast i8* %"$msgobj_fname_1290" to %String* + store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_1289", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_1291", align 8 + %"$msgobj_td_1292" = getelementptr i8, i8* %"$msgobj_1280", i32 61 + %"$msgobj_td_1293" = bitcast i8* %"$msgobj_td_1292" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_String_100", %_TyDescrTy_Typ** %"$msgobj_td_1293", align 8 + %"$msgobj_v_1295" = getelementptr i8, i8* %"$msgobj_1280", i32 69 + %"$msgobj_v_1296" = bitcast i8* %"$msgobj_v_1295" to %String* + store %String { i8* getelementptr inbounds ([11 x i8], [11 x i8]* @"$stringlit_1294", i32 0, i32 0), i32 11 }, %String* %"$msgobj_v_1296", align 8 + %"$msgobj_fname_1298" = getelementptr i8, i8* %"$msgobj_1280", i32 85 + %"$msgobj_fname_1299" = bitcast i8* %"$msgobj_fname_1298" to %String* + store %String { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$stringlit_1297", i32 0, i32 0), i32 7 }, %String* %"$msgobj_fname_1299", align 8 + %"$msgobj_td_1300" = getelementptr i8, i8* %"$msgobj_1280", i32 101 + %"$msgobj_td_1301" = bitcast i8* %"$msgobj_td_1300" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Uint128_94", %_TyDescrTy_Typ** %"$msgobj_td_1301", align 8 + %"$msgobj_v_1302" = getelementptr i8, i8* %"$msgobj_1280", i32 109 + %"$msgobj_v_1303" = bitcast i8* %"$msgobj_v_1302" to %Uint128* + store %Uint128 zeroinitializer, %Uint128* %"$msgobj_v_1303", align 8 + %"$msgobj_fname_1305" = getelementptr i8, i8* %"$msgobj_1280", i32 125 + %"$msgobj_fname_1306" = bitcast i8* %"$msgobj_fname_1305" to %String* + store %String { i8* getelementptr inbounds ([1 x i8], [1 x i8]* @"$stringlit_1304", i32 0, i32 0), i32 1 }, %String* %"$msgobj_fname_1306", align 8 + %"$msgobj_td_1307" = getelementptr i8, i8* %"$msgobj_1280", i32 141 + %"$msgobj_td_1308" = bitcast i8* %"$msgobj_td_1307" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_String_100", %_TyDescrTy_Typ** %"$msgobj_td_1308", align 8 + %"$s2_1309" = load %String, %String* %s2, align 8 + %"$msgobj_v_1310" = getelementptr i8, i8* %"$msgobj_1280", i32 149 + %"$msgobj_v_1311" = bitcast i8* %"$msgobj_v_1310" to %String* + store %String %"$s2_1309", %String* %"$msgobj_v_1311", align 8 + store i8* %"$msgobj_1280", i8** %msg2, align 8, !dbg !240 + %"$gasrem_1313" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1314" = icmp ugt i64 1, %"$gasrem_1313" + br i1 %"$gascmp_1314", label %"$out_of_gas_1315", label %"$have_gas_1316" + +"$out_of_gas_1315": ; preds = %"$have_gas_1278" + call void @_out_of_gas() + br label %"$have_gas_1316" + +"$have_gas_1316": ; preds = %"$out_of_gas_1315", %"$have_gas_1278" + %"$consume_1317" = sub i64 %"$gasrem_1313", 1 + store i64 %"$consume_1317", i64* @_gasrem, align 8 %msgs2 = alloca %TName_List_Message*, align 8 - %"$gasrem_1298" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1299" = icmp ugt i64 1, %"$gasrem_1298" - br i1 %"$gascmp_1299", label %"$out_of_gas_1300", label %"$have_gas_1301" + call void @llvm.dbg.declare(metadata %TName_List_Message** %msgs2, metadata !241, metadata !DIExpression()), !dbg !242 + %"$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_1300": ; preds = %"$have_gas_1296" +"$out_of_gas_1320": ; preds = %"$have_gas_1316" call void @_out_of_gas() - br label %"$have_gas_1301" + br label %"$have_gas_1321" -"$have_gas_1301": ; preds = %"$out_of_gas_1300", %"$have_gas_1296" - %"$consume_1302" = sub i64 %"$gasrem_1298", 1 - store i64 %"$consume_1302", i64* @_gasrem, align 8 +"$have_gas_1321": ; preds = %"$out_of_gas_1320", %"$have_gas_1316" + %"$consume_1322" = sub i64 %"$gasrem_1318", 1 + store i64 %"$consume_1322", i64* @_gasrem, align 8 %"$accounting_tests.one_msg_20" = alloca %TName_List_Message*, align 8 - %"$accounting_tests.one_msg_1303" = load { %TName_List_Message* (i8*, i8*)*, i8* }, { %TName_List_Message* (i8*, i8*)*, i8* }* @accounting_tests.one_msg, align 8 - %"$accounting_tests.one_msg_fptr_1304" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$accounting_tests.one_msg_1303", 0 - %"$accounting_tests.one_msg_envptr_1305" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$accounting_tests.one_msg_1303", 1 - %"$msg2_1306" = load i8*, i8** %msg2, align 8 - %"$accounting_tests.one_msg_call_1307" = call %TName_List_Message* %"$accounting_tests.one_msg_fptr_1304"(i8* %"$accounting_tests.one_msg_envptr_1305", i8* %"$msg2_1306"), !dbg !124 - store %TName_List_Message* %"$accounting_tests.one_msg_call_1307", %TName_List_Message** %"$accounting_tests.one_msg_20", align 8, !dbg !124 - %"$$accounting_tests.one_msg_20_1308" = load %TName_List_Message*, %TName_List_Message** %"$accounting_tests.one_msg_20", align 8 - store %TName_List_Message* %"$$accounting_tests.one_msg_20_1308", %TName_List_Message** %msgs2, align 8, !dbg !124 - %"$msgs2_1309" = load %TName_List_Message*, %TName_List_Message** %msgs2, align 8 - %"$$msgs2_1309_1310" = bitcast %TName_List_Message* %"$msgs2_1309" to i8* - %"$_literal_cost_call_1311" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_120", i8* %"$$msgs2_1309_1310") - %"$gasrem_1312" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1313" = icmp ugt i64 %"$_literal_cost_call_1311", %"$gasrem_1312" - br i1 %"$gascmp_1313", label %"$out_of_gas_1314", label %"$have_gas_1315" - -"$out_of_gas_1314": ; preds = %"$have_gas_1301" - call void @_out_of_gas() - br label %"$have_gas_1315" - -"$have_gas_1315": ; preds = %"$out_of_gas_1314", %"$have_gas_1301" - %"$consume_1316" = sub i64 %"$gasrem_1312", %"$_literal_cost_call_1311" - store i64 %"$consume_1316", i64* @_gasrem, align 8 - %"$execptr_load_1317" = load i8*, i8** @_execptr, align 8 - %"$msgs2_1318" = load %TName_List_Message*, %TName_List_Message** %msgs2, align 8 - call void @_send(i8* %"$execptr_load_1317", %_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_120", %TName_List_Message* %"$msgs2_1318"), !dbg !125 - %"$gasrem_1319" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1320" = icmp ugt i64 1, %"$gasrem_1319" - br i1 %"$gascmp_1320", label %"$out_of_gas_1321", label %"$have_gas_1322" - -"$out_of_gas_1321": ; preds = %"$have_gas_1315" - call void @_out_of_gas() - br label %"$have_gas_1322" - -"$have_gas_1322": ; preds = %"$out_of_gas_1321", %"$have_gas_1315" - %"$consume_1323" = sub i64 %"$gasrem_1319", 1 - store i64 %"$consume_1323", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_List_Message** %"$accounting_tests.one_msg_20", metadata !243, metadata !DIExpression()), !dbg !244 + %"$accounting_tests.one_msg_1323" = load { %TName_List_Message* (i8*, i8*)*, i8* }, { %TName_List_Message* (i8*, i8*)*, i8* }* @accounting_tests.one_msg, align 8 + %"$accounting_tests.one_msg_fptr_1324" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$accounting_tests.one_msg_1323", 0 + %"$accounting_tests.one_msg_envptr_1325" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$accounting_tests.one_msg_1323", 1 + %"$msg2_1326" = load i8*, i8** %msg2, align 8 + %"$accounting_tests.one_msg_call_1327" = call %TName_List_Message* %"$accounting_tests.one_msg_fptr_1324"(i8* %"$accounting_tests.one_msg_envptr_1325", i8* %"$msg2_1326"), !dbg !244 + store %TName_List_Message* %"$accounting_tests.one_msg_call_1327", %TName_List_Message** %"$accounting_tests.one_msg_20", align 8, !dbg !244 + %"$$accounting_tests.one_msg_20_1328" = load %TName_List_Message*, %TName_List_Message** %"$accounting_tests.one_msg_20", align 8 + store %TName_List_Message* %"$$accounting_tests.one_msg_20_1328", %TName_List_Message** %msgs2, align 8, !dbg !244 + %"$msgs2_1329" = load %TName_List_Message*, %TName_List_Message** %msgs2, align 8 + %"$$msgs2_1329_1330" = bitcast %TName_List_Message* %"$msgs2_1329" to i8* + %"$_literal_cost_call_1331" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_120", i8* %"$$msgs2_1329_1330") + %"$gasrem_1332" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1333" = icmp ugt i64 %"$_literal_cost_call_1331", %"$gasrem_1332" + br i1 %"$gascmp_1333", label %"$out_of_gas_1334", label %"$have_gas_1335" + +"$out_of_gas_1334": ; preds = %"$have_gas_1321" + call void @_out_of_gas() + br label %"$have_gas_1335" + +"$have_gas_1335": ; preds = %"$out_of_gas_1334", %"$have_gas_1321" + %"$consume_1336" = sub i64 %"$gasrem_1332", %"$_literal_cost_call_1331" + store i64 %"$consume_1336", i64* @_gasrem, align 8 + %"$execptr_load_1337" = load i8*, i8** @_execptr, align 8 + %"$msgs2_1338" = load %TName_List_Message*, %TName_List_Message** %msgs2, align 8 + call void @_send(i8* %"$execptr_load_1337", %_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_120", %TName_List_Message* %"$msgs2_1338"), !dbg !245 + %"$gasrem_1339" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1340" = icmp ugt i64 1, %"$gasrem_1339" + br i1 %"$gascmp_1340", label %"$out_of_gas_1341", label %"$have_gas_1342" + +"$out_of_gas_1341": ; preds = %"$have_gas_1335" + call void @_out_of_gas() + br label %"$have_gas_1342" + +"$have_gas_1342": ; preds = %"$out_of_gas_1341", %"$have_gas_1335" + %"$consume_1343" = sub i64 %"$gasrem_1339", 1 + store i64 %"$consume_1343", i64* @_gasrem, align 8 %msg_final = alloca 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" - -"$out_of_gas_1326": ; preds = %"$have_gas_1322" - call void @_out_of_gas() - br label %"$have_gas_1327" - -"$have_gas_1327": ; preds = %"$out_of_gas_1326", %"$have_gas_1322" - %"$consume_1328" = sub i64 %"$gasrem_1324", 1 - store i64 %"$consume_1328", i64* @_gasrem, align 8 - %"$msgobj_1329_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$msgobj_1329_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_1329_salloc_load", i64 125) - %"$msgobj_1329_salloc" = bitcast i8* %"$msgobj_1329_salloc_salloc" to [125 x i8]* - %"$msgobj_1329" = bitcast [125 x i8]* %"$msgobj_1329_salloc" to i8* - store i8 3, i8* %"$msgobj_1329", align 1 - %"$msgobj_fname_1331" = getelementptr i8, i8* %"$msgobj_1329", i32 1 - %"$msgobj_fname_1332" = bitcast i8* %"$msgobj_fname_1331" to %String* - store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_1330", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_1332", align 8 - %"$msgobj_td_1333" = getelementptr i8, i8* %"$msgobj_1329", i32 17 - %"$msgobj_td_1334" = bitcast i8* %"$msgobj_td_1333" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_114", %_TyDescrTy_Typ** %"$msgobj_td_1334", align 8 - %"$_this_address_1335" = load [20 x i8], [20 x i8]* @_cparam__this_address, align 1 - %"$msgobj_v_1336" = getelementptr i8, i8* %"$msgobj_1329", i32 25 - %"$msgobj_v_1337" = bitcast i8* %"$msgobj_v_1336" to [20 x i8]* - store [20 x i8] %"$_this_address_1335", [20 x i8]* %"$msgobj_v_1337", align 1 - %"$msgobj_fname_1339" = getelementptr i8, i8* %"$msgobj_1329", i32 45 - %"$msgobj_fname_1340" = bitcast i8* %"$msgobj_fname_1339" to %String* - store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_1338", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_1340", align 8 - %"$msgobj_td_1341" = getelementptr i8, i8* %"$msgobj_1329", i32 61 - %"$msgobj_td_1342" = bitcast i8* %"$msgobj_td_1341" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_String_100", %_TyDescrTy_Typ** %"$msgobj_td_1342", align 8 - %"$msgobj_v_1344" = getelementptr i8, i8* %"$msgobj_1329", i32 69 - %"$msgobj_v_1345" = bitcast i8* %"$msgobj_v_1344" to %String* - store %String { i8* getelementptr inbounds ([20 x i8], [20 x i8]* @"$stringlit_1343", i32 0, i32 0), i32 20 }, %String* %"$msgobj_v_1345", align 8 - %"$msgobj_fname_1347" = getelementptr i8, i8* %"$msgobj_1329", i32 85 - %"$msgobj_fname_1348" = bitcast i8* %"$msgobj_fname_1347" to %String* - store %String { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$stringlit_1346", i32 0, i32 0), i32 7 }, %String* %"$msgobj_fname_1348", align 8 - %"$msgobj_td_1349" = getelementptr i8, i8* %"$msgobj_1329", i32 101 - %"$msgobj_td_1350" = bitcast i8* %"$msgobj_td_1349" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Uint128_94", %_TyDescrTy_Typ** %"$msgobj_td_1350", align 8 - %"$msgobj_v_1351" = getelementptr i8, i8* %"$msgobj_1329", i32 109 - %"$msgobj_v_1352" = bitcast i8* %"$msgobj_v_1351" to %Uint128* - store %Uint128 zeroinitializer, %Uint128* %"$msgobj_v_1352", align 8 - store i8* %"$msgobj_1329", i8** %msg_final, align 8, !dbg !126 - %"$gasrem_1354" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1355" = icmp ugt i64 1, %"$gasrem_1354" - br i1 %"$gascmp_1355", label %"$out_of_gas_1356", label %"$have_gas_1357" - -"$out_of_gas_1356": ; preds = %"$have_gas_1327" - call void @_out_of_gas() - br label %"$have_gas_1357" - -"$have_gas_1357": ; preds = %"$out_of_gas_1356", %"$have_gas_1327" - %"$consume_1358" = sub i64 %"$gasrem_1354", 1 - store i64 %"$consume_1358", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata i8** %msg_final, metadata !246, metadata !DIExpression()), !dbg !247 + %"$gasrem_1344" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1345" = icmp ugt i64 1, %"$gasrem_1344" + br i1 %"$gascmp_1345", label %"$out_of_gas_1346", label %"$have_gas_1347" + +"$out_of_gas_1346": ; preds = %"$have_gas_1342" + call void @_out_of_gas() + br label %"$have_gas_1347" + +"$have_gas_1347": ; preds = %"$out_of_gas_1346", %"$have_gas_1342" + %"$consume_1348" = sub i64 %"$gasrem_1344", 1 + store i64 %"$consume_1348", i64* @_gasrem, align 8 + %"$msgobj_1349_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$msgobj_1349_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_1349_salloc_load", i64 125) + %"$msgobj_1349_salloc" = bitcast i8* %"$msgobj_1349_salloc_salloc" to [125 x i8]* + %"$msgobj_1349" = bitcast [125 x i8]* %"$msgobj_1349_salloc" to i8* + store i8 3, i8* %"$msgobj_1349", align 1 + %"$msgobj_fname_1351" = getelementptr i8, i8* %"$msgobj_1349", i32 1 + %"$msgobj_fname_1352" = bitcast i8* %"$msgobj_fname_1351" to %String* + store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_1350", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_1352", align 8 + %"$msgobj_td_1353" = getelementptr i8, i8* %"$msgobj_1349", i32 17 + %"$msgobj_td_1354" = bitcast i8* %"$msgobj_td_1353" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_114", %_TyDescrTy_Typ** %"$msgobj_td_1354", align 8 + %"$_this_address_1355" = load [20 x i8], [20 x i8]* @_cparam__this_address, align 1 + %"$msgobj_v_1356" = getelementptr i8, i8* %"$msgobj_1349", i32 25 + %"$msgobj_v_1357" = bitcast i8* %"$msgobj_v_1356" to [20 x i8]* + store [20 x i8] %"$_this_address_1355", [20 x i8]* %"$msgobj_v_1357", align 1 + %"$msgobj_fname_1359" = getelementptr i8, i8* %"$msgobj_1349", i32 45 + %"$msgobj_fname_1360" = bitcast i8* %"$msgobj_fname_1359" to %String* + store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_1358", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_1360", align 8 + %"$msgobj_td_1361" = getelementptr i8, i8* %"$msgobj_1349", i32 61 + %"$msgobj_td_1362" = bitcast i8* %"$msgobj_td_1361" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_String_100", %_TyDescrTy_Typ** %"$msgobj_td_1362", align 8 + %"$msgobj_v_1364" = getelementptr i8, i8* %"$msgobj_1349", i32 69 + %"$msgobj_v_1365" = bitcast i8* %"$msgobj_v_1364" to %String* + store %String { i8* getelementptr inbounds ([20 x i8], [20 x i8]* @"$stringlit_1363", i32 0, i32 0), i32 20 }, %String* %"$msgobj_v_1365", align 8 + %"$msgobj_fname_1367" = getelementptr i8, i8* %"$msgobj_1349", i32 85 + %"$msgobj_fname_1368" = bitcast i8* %"$msgobj_fname_1367" to %String* + store %String { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$stringlit_1366", i32 0, i32 0), i32 7 }, %String* %"$msgobj_fname_1368", align 8 + %"$msgobj_td_1369" = getelementptr i8, i8* %"$msgobj_1349", i32 101 + %"$msgobj_td_1370" = bitcast i8* %"$msgobj_td_1369" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Uint128_94", %_TyDescrTy_Typ** %"$msgobj_td_1370", align 8 + %"$msgobj_v_1371" = getelementptr i8, i8* %"$msgobj_1349", i32 109 + %"$msgobj_v_1372" = bitcast i8* %"$msgobj_v_1371" to %Uint128* + store %Uint128 zeroinitializer, %Uint128* %"$msgobj_v_1372", align 8 + store i8* %"$msgobj_1349", i8** %msg_final, align 8, !dbg !248 + %"$gasrem_1374" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1375" = icmp ugt i64 1, %"$gasrem_1374" + br i1 %"$gascmp_1375", label %"$out_of_gas_1376", label %"$have_gas_1377" + +"$out_of_gas_1376": ; preds = %"$have_gas_1347" + call void @_out_of_gas() + br label %"$have_gas_1377" + +"$have_gas_1377": ; preds = %"$out_of_gas_1376", %"$have_gas_1347" + %"$consume_1378" = sub i64 %"$gasrem_1374", 1 + store i64 %"$consume_1378", i64* @_gasrem, align 8 %msgs_final = alloca %TName_List_Message*, align 8 - %"$gasrem_1359" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1360" = icmp ugt i64 1, %"$gasrem_1359" - br i1 %"$gascmp_1360", label %"$out_of_gas_1361", label %"$have_gas_1362" + call void @llvm.dbg.declare(metadata %TName_List_Message** %msgs_final, metadata !249, metadata !DIExpression()), !dbg !250 + %"$gasrem_1379" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1380" = icmp ugt i64 1, %"$gasrem_1379" + br i1 %"$gascmp_1380", label %"$out_of_gas_1381", label %"$have_gas_1382" -"$out_of_gas_1361": ; preds = %"$have_gas_1357" +"$out_of_gas_1381": ; preds = %"$have_gas_1377" call void @_out_of_gas() - br label %"$have_gas_1362" + br label %"$have_gas_1382" -"$have_gas_1362": ; preds = %"$out_of_gas_1361", %"$have_gas_1357" - %"$consume_1363" = sub i64 %"$gasrem_1359", 1 - store i64 %"$consume_1363", i64* @_gasrem, align 8 +"$have_gas_1382": ; preds = %"$out_of_gas_1381", %"$have_gas_1377" + %"$consume_1383" = sub i64 %"$gasrem_1379", 1 + store i64 %"$consume_1383", i64* @_gasrem, align 8 %"$accounting_tests.one_msg_19" = alloca %TName_List_Message*, align 8 - %"$accounting_tests.one_msg_1364" = load { %TName_List_Message* (i8*, i8*)*, i8* }, { %TName_List_Message* (i8*, i8*)*, i8* }* @accounting_tests.one_msg, align 8 - %"$accounting_tests.one_msg_fptr_1365" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$accounting_tests.one_msg_1364", 0 - %"$accounting_tests.one_msg_envptr_1366" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$accounting_tests.one_msg_1364", 1 - %"$msg_final_1367" = load i8*, i8** %msg_final, align 8 - %"$accounting_tests.one_msg_call_1368" = call %TName_List_Message* %"$accounting_tests.one_msg_fptr_1365"(i8* %"$accounting_tests.one_msg_envptr_1366", i8* %"$msg_final_1367"), !dbg !127 - store %TName_List_Message* %"$accounting_tests.one_msg_call_1368", %TName_List_Message** %"$accounting_tests.one_msg_19", align 8, !dbg !127 - %"$$accounting_tests.one_msg_19_1369" = load %TName_List_Message*, %TName_List_Message** %"$accounting_tests.one_msg_19", align 8 - store %TName_List_Message* %"$$accounting_tests.one_msg_19_1369", %TName_List_Message** %msgs_final, align 8, !dbg !127 - %"$msgs_final_1370" = load %TName_List_Message*, %TName_List_Message** %msgs_final, align 8 - %"$$msgs_final_1370_1371" = bitcast %TName_List_Message* %"$msgs_final_1370" to i8* - %"$_literal_cost_call_1372" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_120", i8* %"$$msgs_final_1370_1371") - %"$gasrem_1373" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1374" = icmp ugt i64 %"$_literal_cost_call_1372", %"$gasrem_1373" - br i1 %"$gascmp_1374", label %"$out_of_gas_1375", label %"$have_gas_1376" - -"$out_of_gas_1375": ; preds = %"$have_gas_1362" - call void @_out_of_gas() - br label %"$have_gas_1376" - -"$have_gas_1376": ; preds = %"$out_of_gas_1375", %"$have_gas_1362" - %"$consume_1377" = sub i64 %"$gasrem_1373", %"$_literal_cost_call_1372" - store i64 %"$consume_1377", i64* @_gasrem, align 8 - %"$execptr_load_1378" = load i8*, i8** @_execptr, align 8 - %"$msgs_final_1379" = load %TName_List_Message*, %TName_List_Message** %msgs_final, align 8 - call void @_send(i8* %"$execptr_load_1378", %_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_120", %TName_List_Message* %"$msgs_final_1379"), !dbg !128 + call void @llvm.dbg.declare(metadata %TName_List_Message** %"$accounting_tests.one_msg_19", metadata !251, metadata !DIExpression()), !dbg !252 + %"$accounting_tests.one_msg_1384" = load { %TName_List_Message* (i8*, i8*)*, i8* }, { %TName_List_Message* (i8*, i8*)*, i8* }* @accounting_tests.one_msg, align 8 + %"$accounting_tests.one_msg_fptr_1385" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$accounting_tests.one_msg_1384", 0 + %"$accounting_tests.one_msg_envptr_1386" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$accounting_tests.one_msg_1384", 1 + %"$msg_final_1387" = load i8*, i8** %msg_final, align 8 + %"$accounting_tests.one_msg_call_1388" = call %TName_List_Message* %"$accounting_tests.one_msg_fptr_1385"(i8* %"$accounting_tests.one_msg_envptr_1386", i8* %"$msg_final_1387"), !dbg !252 + store %TName_List_Message* %"$accounting_tests.one_msg_call_1388", %TName_List_Message** %"$accounting_tests.one_msg_19", align 8, !dbg !252 + %"$$accounting_tests.one_msg_19_1389" = load %TName_List_Message*, %TName_List_Message** %"$accounting_tests.one_msg_19", align 8 + store %TName_List_Message* %"$$accounting_tests.one_msg_19_1389", %TName_List_Message** %msgs_final, align 8, !dbg !252 + %"$msgs_final_1390" = load %TName_List_Message*, %TName_List_Message** %msgs_final, align 8 + %"$$msgs_final_1390_1391" = bitcast %TName_List_Message* %"$msgs_final_1390" to i8* + %"$_literal_cost_call_1392" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_120", i8* %"$$msgs_final_1390_1391") + %"$gasrem_1393" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1394" = icmp ugt i64 %"$_literal_cost_call_1392", %"$gasrem_1393" + br i1 %"$gascmp_1394", label %"$out_of_gas_1395", label %"$have_gas_1396" + +"$out_of_gas_1395": ; preds = %"$have_gas_1382" + call void @_out_of_gas() + br label %"$have_gas_1396" + +"$have_gas_1396": ; preds = %"$out_of_gas_1395", %"$have_gas_1382" + %"$consume_1397" = sub i64 %"$gasrem_1393", %"$_literal_cost_call_1392" + store i64 %"$consume_1397", i64* @_gasrem, align 8 + %"$execptr_load_1398" = load i8*, i8** @_execptr, align 8 + %"$msgs_final_1399" = load %TName_List_Message*, %TName_List_Message** %msgs_final, align 8 + call void @_send(i8* %"$execptr_load_1398", %_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_120", %TName_List_Message* %"$msgs_final_1399"), !dbg !253 ret void } -define void @Test_Send_1(i8* %0) !dbg !129 { +define void @Test_Send_1(i8* %0) !dbg !254 { entry: - %"$_amount_1381" = getelementptr i8, i8* %0, i32 0 - %"$_amount_1382" = bitcast i8* %"$_amount_1381" to %Uint128* - %_amount = load %Uint128, %Uint128* %"$_amount_1382", align 8 - %"$_origin_1383" = getelementptr i8, i8* %0, i32 16 - %"$_origin_1384" = bitcast i8* %"$_origin_1383" to [20 x i8]* - %"$_sender_1385" = getelementptr i8, i8* %0, i32 36 - %"$_sender_1386" = bitcast i8* %"$_sender_1385" to [20 x i8]* - call void @"$Test_Send_1_1141"(%Uint128 %_amount, [20 x i8]* %"$_origin_1384", [20 x i8]* %"$_sender_1386"), !dbg !130 + %"$_amount_1404" = getelementptr i8, i8* %0, i32 0 + %"$_amount_1405" = bitcast i8* %"$_amount_1404" to %Uint128* + %_amount = load %Uint128, %Uint128* %"$_amount_1405", align 8 + %"$_origin_1406" = getelementptr i8, i8* %0, i32 16 + %"$_origin_1407" = bitcast i8* %"$_origin_1406" to [20 x i8]* + %"$_sender_1408" = getelementptr i8, i8* %0, i32 36 + %"$_sender_1409" = bitcast i8* %"$_sender_1408" to [20 x i8]* + call void @"$Test_Send_1_1161"(%Uint128 %_amount, [20 x i8]* %"$_origin_1407", [20 x i8]* %"$_sender_1409"), !dbg !255 ret void } -define internal void @"$Finalize_Test_Send_Helper_2_Msgs_1387"(%Uint128 %_amount, [20 x i8]* %"$_origin_1388", [20 x i8]* %"$_sender_1389", %Uint128 %test_no) !dbg !131 { +define internal void @"$Finalize_Test_Send_Helper_2_Msgs_1410"(%Uint128 %_amount, [20 x i8]* %"$_origin_1411", [20 x i8]* %"$_sender_1412", %Uint128 %test_no) !dbg !256 { entry: - %_origin = load [20 x i8], [20 x i8]* %"$_origin_1388", align 1 - %_sender = load [20 x i8], [20 x i8]* %"$_sender_1389", align 1 + %"$test_no_1596" = alloca %Uint128, align 8 + store %Uint128 %test_no, %Uint128* %"$test_no_1596", align 8 + call void @llvm.dbg.declare(metadata %Uint128* %"$test_no_1596", metadata !257, metadata !DIExpression()), !dbg !258 + %"$_sender_1595" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_sender_1412", [20 x i8]** %"$_sender_1595", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_sender_1595", metadata !259, metadata !DIExpression()), !dbg !260 + %"$_origin_1594" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_origin_1411", [20 x i8]** %"$_origin_1594", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_origin_1594", metadata !261, metadata !DIExpression()), !dbg !260 + %"$_amount_1593" = alloca %Uint128, align 8 + store %Uint128 %_amount, %Uint128* %"$_amount_1593", align 8 + call void @llvm.dbg.declare(metadata %Uint128* %"$_amount_1593", metadata !262, metadata !DIExpression()), !dbg !260 + %_origin = load [20 x i8], [20 x i8]* %"$_origin_1411", align 1 + %_sender = load [20 x i8], [20 x i8]* %"$_sender_1412", align 1 %s1 = alloca %String, align 8 - %"$execptr_load_1391" = load i8*, i8** @_execptr, align 8 - %"$s1_call_1392" = call i8* @_fetch_field(i8* %"$execptr_load_1391", i8* getelementptr inbounds ([14 x i8], [14 x i8]* @"$test_string_1_1390", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_String_100", i32 0, i8* null, i32 1), !dbg !132 - %"$s1_1393" = bitcast i8* %"$s1_call_1392" to %String* - %"$s1_1394" = load %String, %String* %"$s1_1393", align 8 - store %String %"$s1_1394", %String* %s1, align 8 - %"$_literal_cost_s1_1395" = alloca %String, align 8 - %"$s1_1396" = load %String, %String* %s1, align 8 - store %String %"$s1_1396", %String* %"$_literal_cost_s1_1395", align 8 - %"$$_literal_cost_s1_1395_1397" = bitcast %String* %"$_literal_cost_s1_1395" to i8* - %"$_literal_cost_call_1398" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_100", i8* %"$$_literal_cost_s1_1395_1397") - %"$gasadd_1399" = add i64 %"$_literal_cost_call_1398", 0 - %"$gasrem_1400" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1401" = icmp ugt i64 %"$gasadd_1399", %"$gasrem_1400" - br i1 %"$gascmp_1401", label %"$out_of_gas_1402", label %"$have_gas_1403" - -"$out_of_gas_1402": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_1403" - -"$have_gas_1403": ; preds = %"$out_of_gas_1402", %entry - %"$consume_1404" = sub i64 %"$gasrem_1400", %"$gasadd_1399" - store i64 %"$consume_1404", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %String* %s1, metadata !263, metadata !DIExpression()), !dbg !264 + %"$execptr_load_1414" = load i8*, i8** @_execptr, align 8 + %"$s1_call_1415" = call i8* @_fetch_field(i8* %"$execptr_load_1414", i8* getelementptr inbounds ([14 x i8], [14 x i8]* @"$test_string_1_1413", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_String_100", i32 0, i8* null, i32 1), !dbg !264 + %"$s1_1416" = bitcast i8* %"$s1_call_1415" to %String* + %"$s1_1417" = load %String, %String* %"$s1_1416", align 8 + store %String %"$s1_1417", %String* %s1, align 8 + %"$_literal_cost_s1_1418" = alloca %String, align 8 + %"$s1_1419" = load %String, %String* %s1, align 8 + store %String %"$s1_1419", %String* %"$_literal_cost_s1_1418", align 8 + %"$$_literal_cost_s1_1418_1420" = bitcast %String* %"$_literal_cost_s1_1418" to i8* + %"$_literal_cost_call_1421" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_100", i8* %"$$_literal_cost_s1_1418_1420") + %"$gasadd_1422" = add i64 %"$_literal_cost_call_1421", 0 + %"$gasrem_1423" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1424" = icmp ugt i64 %"$gasadd_1422", %"$gasrem_1423" + br i1 %"$gascmp_1424", label %"$out_of_gas_1425", label %"$have_gas_1426" + +"$out_of_gas_1425": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_1426" + +"$have_gas_1426": ; preds = %"$out_of_gas_1425", %entry + %"$consume_1427" = sub i64 %"$gasrem_1423", %"$gasadd_1422" + store i64 %"$consume_1427", i64* @_gasrem, align 8 %s2 = alloca %String, align 8 - %"$execptr_load_1406" = load i8*, i8** @_execptr, align 8 - %"$s2_call_1407" = call i8* @_fetch_field(i8* %"$execptr_load_1406", i8* getelementptr inbounds ([14 x i8], [14 x i8]* @"$test_string_2_1405", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_String_100", i32 0, i8* null, i32 1), !dbg !133 - %"$s2_1408" = bitcast i8* %"$s2_call_1407" to %String* - %"$s2_1409" = load %String, %String* %"$s2_1408", align 8 - store %String %"$s2_1409", %String* %s2, align 8 - %"$_literal_cost_s2_1410" = alloca %String, align 8 - %"$s2_1411" = load %String, %String* %s2, align 8 - store %String %"$s2_1411", %String* %"$_literal_cost_s2_1410", align 8 - %"$$_literal_cost_s2_1410_1412" = bitcast %String* %"$_literal_cost_s2_1410" to i8* - %"$_literal_cost_call_1413" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_100", i8* %"$$_literal_cost_s2_1410_1412") - %"$gasadd_1414" = add i64 %"$_literal_cost_call_1413", 0 - %"$gasrem_1415" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1416" = icmp ugt i64 %"$gasadd_1414", %"$gasrem_1415" - br i1 %"$gascmp_1416", label %"$out_of_gas_1417", label %"$have_gas_1418" - -"$out_of_gas_1417": ; preds = %"$have_gas_1403" - call void @_out_of_gas() - br label %"$have_gas_1418" - -"$have_gas_1418": ; preds = %"$out_of_gas_1417", %"$have_gas_1403" - %"$consume_1419" = sub i64 %"$gasrem_1415", %"$gasadd_1414" - store i64 %"$consume_1419", i64* @_gasrem, 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" - -"$out_of_gas_1422": ; preds = %"$have_gas_1418" - call void @_out_of_gas() - br label %"$have_gas_1423" - -"$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 - %expected = alloca %TName_List_String*, align 8 - %"$gasrem_1425" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1426" = icmp ugt i64 1, %"$gasrem_1425" - br i1 %"$gascmp_1426", label %"$out_of_gas_1427", label %"$have_gas_1428" - -"$out_of_gas_1427": ; preds = %"$have_gas_1423" - call void @_out_of_gas() - br label %"$have_gas_1428" - -"$have_gas_1428": ; preds = %"$out_of_gas_1427", %"$have_gas_1423" - %"$consume_1429" = sub i64 %"$gasrem_1425", 1 - store i64 %"$consume_1429", i64* @_gasrem, align 8 - %mty = alloca %TName_List_String*, align 8 - %"$gasrem_1430" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1431" = icmp ugt i64 1, %"$gasrem_1430" - br i1 %"$gascmp_1431", label %"$out_of_gas_1432", label %"$have_gas_1433" - -"$out_of_gas_1432": ; preds = %"$have_gas_1428" - call void @_out_of_gas() - br label %"$have_gas_1433" - -"$have_gas_1433": ; preds = %"$out_of_gas_1432", %"$have_gas_1428" - %"$consume_1434" = sub i64 %"$gasrem_1430", 1 - store i64 %"$consume_1434", i64* @_gasrem, align 8 - %"$adtval_1435_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_1435_salloc" = call i8* @_salloc(i8* %"$adtval_1435_load", i64 1) - %"$adtval_1435" = bitcast i8* %"$adtval_1435_salloc" to %CName_Nil_String* - %"$adtgep_1436" = getelementptr inbounds %CName_Nil_String, %CName_Nil_String* %"$adtval_1435", i32 0, i32 0 - store i8 1, i8* %"$adtgep_1436", align 1 - %"$adtptr_1437" = bitcast %CName_Nil_String* %"$adtval_1435" to %TName_List_String* - store %TName_List_String* %"$adtptr_1437", %TName_List_String** %mty, align 8, !dbg !134 + call void @llvm.dbg.declare(metadata %String* %s2, metadata !265, metadata !DIExpression()), !dbg !266 + %"$execptr_load_1429" = load i8*, i8** @_execptr, align 8 + %"$s2_call_1430" = call i8* @_fetch_field(i8* %"$execptr_load_1429", i8* getelementptr inbounds ([14 x i8], [14 x i8]* @"$test_string_2_1428", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_String_100", i32 0, i8* null, i32 1), !dbg !266 + %"$s2_1431" = bitcast i8* %"$s2_call_1430" to %String* + %"$s2_1432" = load %String, %String* %"$s2_1431", align 8 + store %String %"$s2_1432", %String* %s2, align 8 + %"$_literal_cost_s2_1433" = alloca %String, align 8 + %"$s2_1434" = load %String, %String* %s2, align 8 + store %String %"$s2_1434", %String* %"$_literal_cost_s2_1433", align 8 + %"$$_literal_cost_s2_1433_1435" = bitcast %String* %"$_literal_cost_s2_1433" to i8* + %"$_literal_cost_call_1436" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_100", i8* %"$$_literal_cost_s2_1433_1435") + %"$gasadd_1437" = add i64 %"$_literal_cost_call_1436", 0 %"$gasrem_1438" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1439" = icmp ugt i64 1, %"$gasrem_1438" + %"$gascmp_1439" = icmp ugt i64 %"$gasadd_1437", %"$gasrem_1438" br i1 %"$gascmp_1439", label %"$out_of_gas_1440", label %"$have_gas_1441" -"$out_of_gas_1440": ; preds = %"$have_gas_1433" +"$out_of_gas_1440": ; preds = %"$have_gas_1426" call void @_out_of_gas() br label %"$have_gas_1441" -"$have_gas_1441": ; preds = %"$out_of_gas_1440", %"$have_gas_1433" - %"$consume_1442" = sub i64 %"$gasrem_1438", 1 +"$have_gas_1441": ; preds = %"$out_of_gas_1440", %"$have_gas_1426" + %"$consume_1442" = sub i64 %"$gasrem_1438", %"$gasadd_1437" store i64 %"$consume_1442", i64* @_gasrem, align 8 - %fst = alloca %TName_List_String*, align 8 %"$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" @@ -2884,923 +2963,975 @@ entry: "$have_gas_1446": ; preds = %"$out_of_gas_1445", %"$have_gas_1441" %"$consume_1447" = sub i64 %"$gasrem_1443", 1 store i64 %"$consume_1447", i64* @_gasrem, align 8 - %"$s1_1448" = load %String, %String* %s1, align 8 - %"$mty_1449" = load %TName_List_String*, %TName_List_String** %mty, align 8 - %"$adtval_1450_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_1450_salloc" = call i8* @_salloc(i8* %"$adtval_1450_load", i64 25) - %"$adtval_1450" = bitcast i8* %"$adtval_1450_salloc" to %CName_Cons_String* - %"$adtgep_1451" = getelementptr inbounds %CName_Cons_String, %CName_Cons_String* %"$adtval_1450", i32 0, i32 0 - store i8 0, i8* %"$adtgep_1451", align 1 - %"$adtgep_1452" = getelementptr inbounds %CName_Cons_String, %CName_Cons_String* %"$adtval_1450", i32 0, i32 1 - store %String %"$s1_1448", %String* %"$adtgep_1452", align 8 - %"$adtgep_1453" = getelementptr inbounds %CName_Cons_String, %CName_Cons_String* %"$adtval_1450", i32 0, i32 2 - store %TName_List_String* %"$mty_1449", %TName_List_String** %"$adtgep_1453", align 8 - %"$adtptr_1454" = bitcast %CName_Cons_String* %"$adtval_1450" to %TName_List_String* - store %TName_List_String* %"$adtptr_1454", %TName_List_String** %fst, align 8, !dbg !135 - %"$gasrem_1455" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1456" = icmp ugt i64 1, %"$gasrem_1455" - br i1 %"$gascmp_1456", label %"$out_of_gas_1457", label %"$have_gas_1458" - -"$out_of_gas_1457": ; preds = %"$have_gas_1446" - call void @_out_of_gas() - br label %"$have_gas_1458" - -"$have_gas_1458": ; preds = %"$out_of_gas_1457", %"$have_gas_1446" - %"$consume_1459" = sub i64 %"$gasrem_1455", 1 - store i64 %"$consume_1459", i64* @_gasrem, align 8 - %"$s2_1460" = load %String, %String* %s2, align 8 - %"$fst_1461" = load %TName_List_String*, %TName_List_String** %fst, align 8 - %"$adtval_1462_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_1462_salloc" = call i8* @_salloc(i8* %"$adtval_1462_load", i64 25) - %"$adtval_1462" = bitcast i8* %"$adtval_1462_salloc" to %CName_Cons_String* - %"$adtgep_1463" = getelementptr inbounds %CName_Cons_String, %CName_Cons_String* %"$adtval_1462", i32 0, i32 0 - store i8 0, i8* %"$adtgep_1463", align 1 - %"$adtgep_1464" = getelementptr inbounds %CName_Cons_String, %CName_Cons_String* %"$adtval_1462", i32 0, i32 1 - store %String %"$s2_1460", %String* %"$adtgep_1464", align 8 - %"$adtgep_1465" = getelementptr inbounds %CName_Cons_String, %CName_Cons_String* %"$adtval_1462", i32 0, i32 2 - store %TName_List_String* %"$fst_1461", %TName_List_String** %"$adtgep_1465", align 8 - %"$adtptr_1466" = bitcast %CName_Cons_String* %"$adtval_1462" to %TName_List_String* - store %TName_List_String* %"$adtptr_1466", %TName_List_String** %expected, align 8, !dbg !136 + %expected = alloca %TName_List_String*, align 8 + call void @llvm.dbg.declare(metadata %TName_List_String** %expected, metadata !267, metadata !DIExpression()), !dbg !268 + %"$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 + %mty = alloca %TName_List_String*, align 8 + call void @llvm.dbg.declare(metadata %TName_List_String** %mty, metadata !269, metadata !DIExpression()), !dbg !270 + %"$gasrem_1453" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1454" = icmp ugt i64 1, %"$gasrem_1453" + br i1 %"$gascmp_1454", label %"$out_of_gas_1455", label %"$have_gas_1456" + +"$out_of_gas_1455": ; preds = %"$have_gas_1451" + call void @_out_of_gas() + br label %"$have_gas_1456" + +"$have_gas_1456": ; preds = %"$out_of_gas_1455", %"$have_gas_1451" + %"$consume_1457" = sub i64 %"$gasrem_1453", 1 + store i64 %"$consume_1457", i64* @_gasrem, align 8 + %"$adtval_1458_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_1458_salloc" = call i8* @_salloc(i8* %"$adtval_1458_load", i64 1) + %"$adtval_1458" = bitcast i8* %"$adtval_1458_salloc" to %CName_Nil_String* + %"$adtgep_1459" = getelementptr inbounds %CName_Nil_String, %CName_Nil_String* %"$adtval_1458", i32 0, i32 0 + store i8 1, i8* %"$adtgep_1459", align 1 + %"$adtptr_1460" = bitcast %CName_Nil_String* %"$adtval_1458" to %TName_List_String* + store %TName_List_String* %"$adtptr_1460", %TName_List_String** %mty, align 8, !dbg !271 + %"$gasrem_1461" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1462" = icmp ugt i64 1, %"$gasrem_1461" + br i1 %"$gascmp_1462", label %"$out_of_gas_1463", label %"$have_gas_1464" + +"$out_of_gas_1463": ; preds = %"$have_gas_1456" + call void @_out_of_gas() + br label %"$have_gas_1464" + +"$have_gas_1464": ; preds = %"$out_of_gas_1463", %"$have_gas_1456" + %"$consume_1465" = sub i64 %"$gasrem_1461", 1 + store i64 %"$consume_1465", i64* @_gasrem, align 8 + %fst = alloca %TName_List_String*, align 8 + call void @llvm.dbg.declare(metadata %TName_List_String** %fst, metadata !272, metadata !DIExpression()), !dbg !273 + %"$gasrem_1466" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1467" = icmp ugt i64 1, %"$gasrem_1466" + br i1 %"$gascmp_1467", label %"$out_of_gas_1468", label %"$have_gas_1469" + +"$out_of_gas_1468": ; preds = %"$have_gas_1464" + call void @_out_of_gas() + br label %"$have_gas_1469" + +"$have_gas_1469": ; preds = %"$out_of_gas_1468", %"$have_gas_1464" + %"$consume_1470" = sub i64 %"$gasrem_1466", 1 + store i64 %"$consume_1470", i64* @_gasrem, align 8 + %"$s1_1471" = load %String, %String* %s1, align 8 + %"$mty_1472" = load %TName_List_String*, %TName_List_String** %mty, align 8 + %"$adtval_1473_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_1473_salloc" = call i8* @_salloc(i8* %"$adtval_1473_load", i64 25) + %"$adtval_1473" = bitcast i8* %"$adtval_1473_salloc" to %CName_Cons_String* + %"$adtgep_1474" = getelementptr inbounds %CName_Cons_String, %CName_Cons_String* %"$adtval_1473", i32 0, i32 0 + store i8 0, i8* %"$adtgep_1474", align 1 + %"$adtgep_1475" = getelementptr inbounds %CName_Cons_String, %CName_Cons_String* %"$adtval_1473", i32 0, i32 1 + store %String %"$s1_1471", %String* %"$adtgep_1475", align 8 + %"$adtgep_1476" = getelementptr inbounds %CName_Cons_String, %CName_Cons_String* %"$adtval_1473", i32 0, i32 2 + store %TName_List_String* %"$mty_1472", %TName_List_String** %"$adtgep_1476", align 8 + %"$adtptr_1477" = bitcast %CName_Cons_String* %"$adtval_1473" to %TName_List_String* + store %TName_List_String* %"$adtptr_1477", %TName_List_String** %fst, align 8, !dbg !274 + %"$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_1469" + call void @_out_of_gas() + br label %"$have_gas_1481" + +"$have_gas_1481": ; preds = %"$out_of_gas_1480", %"$have_gas_1469" + %"$consume_1482" = sub i64 %"$gasrem_1478", 1 + store i64 %"$consume_1482", i64* @_gasrem, align 8 + %"$s2_1483" = load %String, %String* %s2, align 8 + %"$fst_1484" = load %TName_List_String*, %TName_List_String** %fst, align 8 + %"$adtval_1485_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_1485_salloc" = call i8* @_salloc(i8* %"$adtval_1485_load", i64 25) + %"$adtval_1485" = bitcast i8* %"$adtval_1485_salloc" to %CName_Cons_String* + %"$adtgep_1486" = getelementptr inbounds %CName_Cons_String, %CName_Cons_String* %"$adtval_1485", i32 0, i32 0 + store i8 0, i8* %"$adtgep_1486", align 1 + %"$adtgep_1487" = getelementptr inbounds %CName_Cons_String, %CName_Cons_String* %"$adtval_1485", i32 0, i32 1 + store %String %"$s2_1483", %String* %"$adtgep_1487", align 8 + %"$adtgep_1488" = getelementptr inbounds %CName_Cons_String, %CName_Cons_String* %"$adtval_1485", i32 0, i32 2 + store %TName_List_String* %"$fst_1484", %TName_List_String** %"$adtgep_1488", align 8 + %"$adtptr_1489" = bitcast %CName_Cons_String* %"$adtval_1485" to %TName_List_String* + store %TName_List_String* %"$adtptr_1489", %TName_List_String** %expected, align 8, !dbg !275 %actual = alloca %TName_List_String*, align 8 - %"$execptr_load_1468" = load i8*, i8** @_execptr, align 8 - %"$actual_support_contract_1469" = alloca [20 x i8], align 1 - %"$support_contract_1470" = load [20 x i8], [20 x i8]* @_cparam_support_contract, align 1 - store [20 x i8] %"$support_contract_1470", [20 x i8]* %"$actual_support_contract_1469", align 1 - %"$actual_call_1471" = call i8* @_fetch_remote_field(i8* %"$execptr_load_1468", [20 x i8]* %"$actual_support_contract_1469", i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$stored_strings_1467", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_ADT_List_String_119", i32 0, i8* null, i32 1), !dbg !137 - %"$actual_1472" = bitcast i8* %"$actual_call_1471" to %TName_List_String* - store %TName_List_String* %"$actual_1472", %TName_List_String** %actual, align 8 - %"$actual_1473" = load %TName_List_String*, %TName_List_String** %actual, align 8 - %"$$actual_1473_1474" = bitcast %TName_List_String* %"$actual_1473" to i8* - %"$_literal_cost_call_1475" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_List_String_119", i8* %"$$actual_1473_1474") - %"$gasadd_1476" = add i64 %"$_literal_cost_call_1475", 0 - %"$gasrem_1477" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1478" = icmp ugt i64 %"$gasadd_1476", %"$gasrem_1477" - br i1 %"$gascmp_1478", label %"$out_of_gas_1479", label %"$have_gas_1480" - -"$out_of_gas_1479": ; preds = %"$have_gas_1458" - call void @_out_of_gas() - br label %"$have_gas_1480" - -"$have_gas_1480": ; preds = %"$out_of_gas_1479", %"$have_gas_1458" - %"$consume_1481" = sub i64 %"$gasrem_1477", %"$gasadd_1476" - store i64 %"$consume_1481", i64* @_gasrem, 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 = %"$have_gas_1480" - call void @_out_of_gas() - br label %"$have_gas_1485" - -"$have_gas_1485": ; preds = %"$out_of_gas_1484", %"$have_gas_1480" - %"$consume_1486" = sub i64 %"$gasrem_1482", 1 - store i64 %"$consume_1486", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_List_String** %actual, metadata !276, metadata !DIExpression()), !dbg !277 + %"$execptr_load_1491" = load i8*, i8** @_execptr, align 8 + %"$actual_support_contract_1492" = alloca [20 x i8], align 1 + %"$support_contract_1493" = load [20 x i8], [20 x i8]* @_cparam_support_contract, align 1 + store [20 x i8] %"$support_contract_1493", [20 x i8]* %"$actual_support_contract_1492", align 1 + %"$actual_call_1494" = call i8* @_fetch_remote_field(i8* %"$execptr_load_1491", [20 x i8]* %"$actual_support_contract_1492", i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$stored_strings_1490", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_ADT_List_String_119", i32 0, i8* null, i32 1), !dbg !277 + %"$actual_1495" = bitcast i8* %"$actual_call_1494" to %TName_List_String* + store %TName_List_String* %"$actual_1495", %TName_List_String** %actual, align 8 + %"$actual_1496" = load %TName_List_String*, %TName_List_String** %actual, align 8 + %"$$actual_1496_1497" = bitcast %TName_List_String* %"$actual_1496" to i8* + %"$_literal_cost_call_1498" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_List_String_119", i8* %"$$actual_1496_1497") + %"$gasadd_1499" = add i64 %"$_literal_cost_call_1498", 0 + %"$gasrem_1500" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1501" = icmp ugt i64 %"$gasadd_1499", %"$gasrem_1500" + br i1 %"$gascmp_1501", label %"$out_of_gas_1502", label %"$have_gas_1503" + +"$out_of_gas_1502": ; preds = %"$have_gas_1481" + call void @_out_of_gas() + br label %"$have_gas_1503" + +"$have_gas_1503": ; preds = %"$out_of_gas_1502", %"$have_gas_1481" + %"$consume_1504" = sub i64 %"$gasrem_1500", %"$gasadd_1499" + store i64 %"$consume_1504", i64* @_gasrem, align 8 + %"$gasrem_1505" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1506" = icmp ugt i64 1, %"$gasrem_1505" + br i1 %"$gascmp_1506", label %"$out_of_gas_1507", label %"$have_gas_1508" + +"$out_of_gas_1507": ; preds = %"$have_gas_1503" + call void @_out_of_gas() + br label %"$have_gas_1508" + +"$have_gas_1508": ; preds = %"$out_of_gas_1507", %"$have_gas_1503" + %"$consume_1509" = sub i64 %"$gasrem_1505", 1 + store i64 %"$consume_1509", i64* @_gasrem, align 8 %res = alloca %TName_Bool*, align 8 - %"$gasrem_1487" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1488" = icmp ugt i64 1, %"$gasrem_1487" - br i1 %"$gascmp_1488", label %"$out_of_gas_1489", label %"$have_gas_1490" + call void @llvm.dbg.declare(metadata %TName_Bool** %res, metadata !278, metadata !DIExpression()), !dbg !279 + %"$gasrem_1510" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1511" = icmp ugt i64 1, %"$gasrem_1510" + br i1 %"$gascmp_1511", label %"$out_of_gas_1512", label %"$have_gas_1513" -"$out_of_gas_1489": ; preds = %"$have_gas_1485" +"$out_of_gas_1512": ; preds = %"$have_gas_1508" call void @_out_of_gas() - br label %"$have_gas_1490" + br label %"$have_gas_1513" -"$have_gas_1490": ; preds = %"$out_of_gas_1489", %"$have_gas_1485" - %"$consume_1491" = sub i64 %"$gasrem_1487", 1 - store i64 %"$consume_1491", i64* @_gasrem, align 8 +"$have_gas_1513": ; preds = %"$out_of_gas_1512", %"$have_gas_1508" + %"$consume_1514" = sub i64 %"$gasrem_1510", 1 + store i64 %"$consume_1514", i64* @_gasrem, align 8 %"$accounting_tests.list_eq_string_22" = alloca { %TName_Bool* (i8*, %TName_List_String*)*, i8* }, align 8 - %"$accounting_tests.list_eq_string_1492" = load { { %TName_Bool* (i8*, %TName_List_String*)*, i8* } (i8*, %TName_List_String*)*, i8* }, { { %TName_Bool* (i8*, %TName_List_String*)*, i8* } (i8*, %TName_List_String*)*, i8* }* @accounting_tests.list_eq_string, align 8 - %"$accounting_tests.list_eq_string_fptr_1493" = extractvalue { { %TName_Bool* (i8*, %TName_List_String*)*, i8* } (i8*, %TName_List_String*)*, i8* } %"$accounting_tests.list_eq_string_1492", 0 - %"$accounting_tests.list_eq_string_envptr_1494" = extractvalue { { %TName_Bool* (i8*, %TName_List_String*)*, i8* } (i8*, %TName_List_String*)*, i8* } %"$accounting_tests.list_eq_string_1492", 1 - %"$expected_1495" = load %TName_List_String*, %TName_List_String** %expected, align 8 - %"$accounting_tests.list_eq_string_call_1496" = call { %TName_Bool* (i8*, %TName_List_String*)*, i8* } %"$accounting_tests.list_eq_string_fptr_1493"(i8* %"$accounting_tests.list_eq_string_envptr_1494", %TName_List_String* %"$expected_1495"), !dbg !138 - store { %TName_Bool* (i8*, %TName_List_String*)*, i8* } %"$accounting_tests.list_eq_string_call_1496", { %TName_Bool* (i8*, %TName_List_String*)*, i8* }* %"$accounting_tests.list_eq_string_22", align 8, !dbg !138 + %"$accounting_tests.list_eq_string_1515" = load { { %TName_Bool* (i8*, %TName_List_String*)*, i8* } (i8*, %TName_List_String*)*, i8* }, { { %TName_Bool* (i8*, %TName_List_String*)*, i8* } (i8*, %TName_List_String*)*, i8* }* @accounting_tests.list_eq_string, align 8 + %"$accounting_tests.list_eq_string_fptr_1516" = extractvalue { { %TName_Bool* (i8*, %TName_List_String*)*, i8* } (i8*, %TName_List_String*)*, i8* } %"$accounting_tests.list_eq_string_1515", 0 + %"$accounting_tests.list_eq_string_envptr_1517" = extractvalue { { %TName_Bool* (i8*, %TName_List_String*)*, i8* } (i8*, %TName_List_String*)*, i8* } %"$accounting_tests.list_eq_string_1515", 1 + %"$expected_1518" = load %TName_List_String*, %TName_List_String** %expected, align 8 + %"$accounting_tests.list_eq_string_call_1519" = call { %TName_Bool* (i8*, %TName_List_String*)*, i8* } %"$accounting_tests.list_eq_string_fptr_1516"(i8* %"$accounting_tests.list_eq_string_envptr_1517", %TName_List_String* %"$expected_1518"), !dbg !280 + store { %TName_Bool* (i8*, %TName_List_String*)*, i8* } %"$accounting_tests.list_eq_string_call_1519", { %TName_Bool* (i8*, %TName_List_String*)*, i8* }* %"$accounting_tests.list_eq_string_22", align 8, !dbg !280 %"$accounting_tests.list_eq_string_23" = alloca %TName_Bool*, align 8 - %"$$accounting_tests.list_eq_string_22_1497" = load { %TName_Bool* (i8*, %TName_List_String*)*, i8* }, { %TName_Bool* (i8*, %TName_List_String*)*, i8* }* %"$accounting_tests.list_eq_string_22", align 8 - %"$$accounting_tests.list_eq_string_22_fptr_1498" = extractvalue { %TName_Bool* (i8*, %TName_List_String*)*, i8* } %"$$accounting_tests.list_eq_string_22_1497", 0 - %"$$accounting_tests.list_eq_string_22_envptr_1499" = extractvalue { %TName_Bool* (i8*, %TName_List_String*)*, i8* } %"$$accounting_tests.list_eq_string_22_1497", 1 - %"$actual_1500" = load %TName_List_String*, %TName_List_String** %actual, align 8 - %"$$accounting_tests.list_eq_string_22_call_1501" = call %TName_Bool* %"$$accounting_tests.list_eq_string_22_fptr_1498"(i8* %"$$accounting_tests.list_eq_string_22_envptr_1499", %TName_List_String* %"$actual_1500"), !dbg !138 - store %TName_Bool* %"$$accounting_tests.list_eq_string_22_call_1501", %TName_Bool** %"$accounting_tests.list_eq_string_23", align 8, !dbg !138 - %"$$accounting_tests.list_eq_string_23_1502" = load %TName_Bool*, %TName_Bool** %"$accounting_tests.list_eq_string_23", align 8 - store %TName_Bool* %"$$accounting_tests.list_eq_string_23_1502", %TName_Bool** %res, align 8, !dbg !138 - %"$gasrem_1503" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1504" = icmp ugt i64 2, %"$gasrem_1503" - br i1 %"$gascmp_1504", label %"$out_of_gas_1505", label %"$have_gas_1506" - -"$out_of_gas_1505": ; preds = %"$have_gas_1490" - call void @_out_of_gas() - br label %"$have_gas_1506" - -"$have_gas_1506": ; preds = %"$out_of_gas_1505", %"$have_gas_1490" - %"$consume_1507" = sub i64 %"$gasrem_1503", 2 - store i64 %"$consume_1507", i64* @_gasrem, align 8 - %"$res_1509" = load %TName_Bool*, %TName_Bool** %res, align 8 - %"$res_tag_1510" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$res_1509", i32 0, i32 0 - %"$res_tag_1511" = load i8, i8* %"$res_tag_1510", align 1 - switch i8 %"$res_tag_1511", label %"$empty_default_1512" [ - i8 0, label %"$True_1513" - i8 1, label %"$False_1515" - ], !dbg !139 - -"$True_1513": ; preds = %"$have_gas_1506" - %"$res_1514" = bitcast %TName_Bool* %"$res_1509" to %CName_True* - br label %"$matchsucc_1508" - -"$False_1515": ; preds = %"$have_gas_1506" - %"$res_1516" = bitcast %TName_Bool* %"$res_1509" to %CName_False* - %"$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" - -"$out_of_gas_1519": ; preds = %"$False_1515" - call void @_out_of_gas() - br label %"$have_gas_1520" - -"$have_gas_1520": ; preds = %"$out_of_gas_1519", %"$False_1515" - %"$consume_1521" = sub i64 %"$gasrem_1517", 1 - store i64 %"$consume_1521", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$accounting_tests.list_eq_string_23", metadata !281, metadata !DIExpression()), !dbg !280 + %"$$accounting_tests.list_eq_string_22_1520" = load { %TName_Bool* (i8*, %TName_List_String*)*, i8* }, { %TName_Bool* (i8*, %TName_List_String*)*, i8* }* %"$accounting_tests.list_eq_string_22", align 8 + %"$$accounting_tests.list_eq_string_22_fptr_1521" = extractvalue { %TName_Bool* (i8*, %TName_List_String*)*, i8* } %"$$accounting_tests.list_eq_string_22_1520", 0 + %"$$accounting_tests.list_eq_string_22_envptr_1522" = extractvalue { %TName_Bool* (i8*, %TName_List_String*)*, i8* } %"$$accounting_tests.list_eq_string_22_1520", 1 + %"$actual_1523" = load %TName_List_String*, %TName_List_String** %actual, align 8 + %"$$accounting_tests.list_eq_string_22_call_1524" = call %TName_Bool* %"$$accounting_tests.list_eq_string_22_fptr_1521"(i8* %"$$accounting_tests.list_eq_string_22_envptr_1522", %TName_List_String* %"$actual_1523"), !dbg !280 + store %TName_Bool* %"$$accounting_tests.list_eq_string_22_call_1524", %TName_Bool** %"$accounting_tests.list_eq_string_23", align 8, !dbg !280 + %"$$accounting_tests.list_eq_string_23_1525" = load %TName_Bool*, %TName_Bool** %"$accounting_tests.list_eq_string_23", align 8 + store %TName_Bool* %"$$accounting_tests.list_eq_string_23_1525", %TName_Bool** %res, align 8, !dbg !280 + %"$gasrem_1526" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1527" = icmp ugt i64 2, %"$gasrem_1526" + br i1 %"$gascmp_1527", label %"$out_of_gas_1528", label %"$have_gas_1529" + +"$out_of_gas_1528": ; preds = %"$have_gas_1513" + call void @_out_of_gas() + br label %"$have_gas_1529" + +"$have_gas_1529": ; preds = %"$out_of_gas_1528", %"$have_gas_1513" + %"$consume_1530" = sub i64 %"$gasrem_1526", 2 + store i64 %"$consume_1530", i64* @_gasrem, align 8 + %"$res_1532" = load %TName_Bool*, %TName_Bool** %res, align 8 + %"$res_tag_1533" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$res_1532", i32 0, i32 0 + %"$res_tag_1534" = load i8, i8* %"$res_tag_1533", align 1 + switch i8 %"$res_tag_1534", label %"$empty_default_1535" [ + i8 0, label %"$True_1536" + i8 1, label %"$False_1538" + ], !dbg !282 + +"$True_1536": ; preds = %"$have_gas_1529" + %"$res_1537" = bitcast %TName_Bool* %"$res_1532" to %CName_True* + br label %"$matchsucc_1531" + +"$False_1538": ; preds = %"$have_gas_1529" + %"$res_1539" = bitcast %TName_Bool* %"$res_1532" to %CName_False* + %"$gasrem_1540" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1541" = icmp ugt i64 1, %"$gasrem_1540" + br i1 %"$gascmp_1541", label %"$out_of_gas_1542", label %"$have_gas_1543" + +"$out_of_gas_1542": ; preds = %"$False_1538" + call void @_out_of_gas() + br label %"$have_gas_1543" + +"$have_gas_1543": ; preds = %"$out_of_gas_1542", %"$False_1538" + %"$consume_1544" = sub i64 %"$gasrem_1540", 1 + store i64 %"$consume_1544", i64* @_gasrem, align 8 %e = alloca i8*, 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" - -"$out_of_gas_1524": ; preds = %"$have_gas_1520" - call void @_out_of_gas() - br label %"$have_gas_1525" - -"$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 - %"$msgobj_1527_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$msgobj_1527_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_1527_salloc_load", i64 145) - %"$msgobj_1527_salloc" = bitcast i8* %"$msgobj_1527_salloc_salloc" to [145 x i8]* - %"$msgobj_1527" = bitcast [145 x i8]* %"$msgobj_1527_salloc" to i8* - store i8 4, i8* %"$msgobj_1527", align 1 - %"$msgobj_fname_1529" = getelementptr i8, i8* %"$msgobj_1527", i32 1 - %"$msgobj_fname_1530" = bitcast i8* %"$msgobj_fname_1529" to %String* - store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_1528", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_1530", align 8 - %"$msgobj_td_1531" = getelementptr i8, i8* %"$msgobj_1527", i32 17 - %"$msgobj_td_1532" = bitcast i8* %"$msgobj_td_1531" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_String_100", %_TyDescrTy_Typ** %"$msgobj_td_1532", align 8 - %"$msgobj_v_1534" = getelementptr i8, i8* %"$msgobj_1527", i32 25 - %"$msgobj_v_1535" = bitcast i8* %"$msgobj_v_1534" to %String* - store %String { i8* getelementptr inbounds ([16 x i8], [16 x i8]* @"$stringlit_1533", i32 0, i32 0), i32 16 }, %String* %"$msgobj_v_1535", align 8 - %"$msgobj_fname_1537" = getelementptr i8, i8* %"$msgobj_1527", i32 41 - %"$msgobj_fname_1538" = bitcast i8* %"$msgobj_fname_1537" to %String* - store %String { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$stringlit_1536", i32 0, i32 0), i32 7 }, %String* %"$msgobj_fname_1538", align 8 - %"$msgobj_td_1539" = getelementptr i8, i8* %"$msgobj_1527", i32 57 - %"$msgobj_td_1540" = bitcast i8* %"$msgobj_td_1539" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Uint128_94", %_TyDescrTy_Typ** %"$msgobj_td_1540", align 8 - %"$msgobj_v_1541" = getelementptr i8, i8* %"$msgobj_1527", i32 65 - %"$msgobj_v_1542" = bitcast i8* %"$msgobj_v_1541" to %Uint128* - store %Uint128 %test_no, %Uint128* %"$msgobj_v_1542", align 8 - %"$msgobj_fname_1544" = getelementptr i8, i8* %"$msgobj_1527", i32 81 - %"$msgobj_fname_1545" = bitcast i8* %"$msgobj_fname_1544" to %String* - store %String { i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$stringlit_1543", i32 0, i32 0), i32 8 }, %String* %"$msgobj_fname_1545", align 8 - %"$msgobj_td_1546" = getelementptr i8, i8* %"$msgobj_1527", i32 97 - %"$msgobj_td_1547" = bitcast i8* %"$msgobj_td_1546" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_ADT_List_String_119", %_TyDescrTy_Typ** %"$msgobj_td_1547", align 8 - %"$expected_1548" = load %TName_List_String*, %TName_List_String** %expected, align 8 - %"$msgobj_v_1549" = getelementptr i8, i8* %"$msgobj_1527", i32 105 - %"$msgobj_v_1550" = bitcast i8* %"$msgobj_v_1549" to %TName_List_String** - store %TName_List_String* %"$expected_1548", %TName_List_String** %"$msgobj_v_1550", align 8 - %"$msgobj_fname_1552" = getelementptr i8, i8* %"$msgobj_1527", i32 113 + call void @llvm.dbg.declare(metadata i8** %e, metadata !283, metadata !DIExpression()), !dbg !286 + %"$gasrem_1545" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1546" = icmp ugt i64 1, %"$gasrem_1545" + br i1 %"$gascmp_1546", label %"$out_of_gas_1547", label %"$have_gas_1548" + +"$out_of_gas_1547": ; preds = %"$have_gas_1543" + call void @_out_of_gas() + br label %"$have_gas_1548" + +"$have_gas_1548": ; preds = %"$out_of_gas_1547", %"$have_gas_1543" + %"$consume_1549" = sub i64 %"$gasrem_1545", 1 + store i64 %"$consume_1549", i64* @_gasrem, align 8 + %"$msgobj_1550_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$msgobj_1550_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_1550_salloc_load", i64 145) + %"$msgobj_1550_salloc" = bitcast i8* %"$msgobj_1550_salloc_salloc" to [145 x i8]* + %"$msgobj_1550" = bitcast [145 x i8]* %"$msgobj_1550_salloc" to i8* + store i8 4, i8* %"$msgobj_1550", align 1 + %"$msgobj_fname_1552" = getelementptr i8, i8* %"$msgobj_1550", i32 1 %"$msgobj_fname_1553" = bitcast i8* %"$msgobj_fname_1552" to %String* - store %String { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$stringlit_1551", i32 0, i32 0), i32 6 }, %String* %"$msgobj_fname_1553", align 8 - %"$msgobj_td_1554" = getelementptr i8, i8* %"$msgobj_1527", i32 129 + 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_1550", i32 17 %"$msgobj_td_1555" = bitcast i8* %"$msgobj_td_1554" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_ADT_List_String_119", %_TyDescrTy_Typ** %"$msgobj_td_1555", align 8 - %"$actual_1556" = load %TName_List_String*, %TName_List_String** %actual, align 8 - %"$msgobj_v_1557" = getelementptr i8, i8* %"$msgobj_1527", i32 137 - %"$msgobj_v_1558" = bitcast i8* %"$msgobj_v_1557" to %TName_List_String** - store %TName_List_String* %"$actual_1556", %TName_List_String** %"$msgobj_v_1558", align 8 - store i8* %"$msgobj_1527", i8** %e, align 8, !dbg !140 - %"$e_1560" = load i8*, i8** %e, align 8 - %"$_literal_cost_call_1562" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Exception_108", i8* %"$e_1560") - %"$gasrem_1563" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1564" = icmp ugt i64 %"$_literal_cost_call_1562", %"$gasrem_1563" - br i1 %"$gascmp_1564", label %"$out_of_gas_1565", label %"$have_gas_1566" - -"$out_of_gas_1565": ; preds = %"$have_gas_1525" - call void @_out_of_gas() - br label %"$have_gas_1566" - -"$have_gas_1566": ; preds = %"$out_of_gas_1565", %"$have_gas_1525" - %"$consume_1567" = sub i64 %"$gasrem_1563", %"$_literal_cost_call_1562" - store i64 %"$consume_1567", i64* @_gasrem, align 8 - %"$execptr_load_1568" = load i8*, i8** @_execptr, align 8 - %"$e_1569" = load i8*, i8** %e, align 8 - call void @_throw(i8* %"$execptr_load_1568", %_TyDescrTy_Typ* @"$TyDescr_Exception_108", i8* %"$e_1569"), !dbg !143 - br label %"$matchsucc_1508" - -"$empty_default_1512": ; preds = %"$have_gas_1506" - br label %"$matchsucc_1508" - -"$matchsucc_1508": ; preds = %"$have_gas_1566", %"$True_1513", %"$empty_default_1512" + store %_TyDescrTy_Typ* @"$TyDescr_String_100", %_TyDescrTy_Typ** %"$msgobj_td_1555", align 8 + %"$msgobj_v_1557" = getelementptr i8, i8* %"$msgobj_1550", i32 25 + %"$msgobj_v_1558" = bitcast i8* %"$msgobj_v_1557" to %String* + store %String { i8* getelementptr inbounds ([16 x i8], [16 x i8]* @"$stringlit_1556", i32 0, i32 0), i32 16 }, %String* %"$msgobj_v_1558", align 8 + %"$msgobj_fname_1560" = getelementptr i8, i8* %"$msgobj_1550", i32 41 + %"$msgobj_fname_1561" = bitcast i8* %"$msgobj_fname_1560" to %String* + store %String { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$stringlit_1559", i32 0, i32 0), i32 7 }, %String* %"$msgobj_fname_1561", align 8 + %"$msgobj_td_1562" = getelementptr i8, i8* %"$msgobj_1550", i32 57 + %"$msgobj_td_1563" = bitcast i8* %"$msgobj_td_1562" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Uint128_94", %_TyDescrTy_Typ** %"$msgobj_td_1563", align 8 + %"$msgobj_v_1564" = getelementptr i8, i8* %"$msgobj_1550", i32 65 + %"$msgobj_v_1565" = bitcast i8* %"$msgobj_v_1564" to %Uint128* + store %Uint128 %test_no, %Uint128* %"$msgobj_v_1565", align 8 + %"$msgobj_fname_1567" = getelementptr i8, i8* %"$msgobj_1550", i32 81 + %"$msgobj_fname_1568" = bitcast i8* %"$msgobj_fname_1567" to %String* + store %String { i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$stringlit_1566", i32 0, i32 0), i32 8 }, %String* %"$msgobj_fname_1568", align 8 + %"$msgobj_td_1569" = getelementptr i8, i8* %"$msgobj_1550", i32 97 + %"$msgobj_td_1570" = bitcast i8* %"$msgobj_td_1569" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_ADT_List_String_119", %_TyDescrTy_Typ** %"$msgobj_td_1570", align 8 + %"$expected_1571" = load %TName_List_String*, %TName_List_String** %expected, align 8 + %"$msgobj_v_1572" = getelementptr i8, i8* %"$msgobj_1550", i32 105 + %"$msgobj_v_1573" = bitcast i8* %"$msgobj_v_1572" to %TName_List_String** + store %TName_List_String* %"$expected_1571", %TName_List_String** %"$msgobj_v_1573", align 8 + %"$msgobj_fname_1575" = getelementptr i8, i8* %"$msgobj_1550", i32 113 + %"$msgobj_fname_1576" = bitcast i8* %"$msgobj_fname_1575" to %String* + store %String { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$stringlit_1574", i32 0, i32 0), i32 6 }, %String* %"$msgobj_fname_1576", align 8 + %"$msgobj_td_1577" = getelementptr i8, i8* %"$msgobj_1550", i32 129 + %"$msgobj_td_1578" = bitcast i8* %"$msgobj_td_1577" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_ADT_List_String_119", %_TyDescrTy_Typ** %"$msgobj_td_1578", align 8 + %"$actual_1579" = load %TName_List_String*, %TName_List_String** %actual, align 8 + %"$msgobj_v_1580" = getelementptr i8, i8* %"$msgobj_1550", i32 137 + %"$msgobj_v_1581" = bitcast i8* %"$msgobj_v_1580" to %TName_List_String** + store %TName_List_String* %"$actual_1579", %TName_List_String** %"$msgobj_v_1581", align 8 + store i8* %"$msgobj_1550", i8** %e, align 8, !dbg !287 + %"$e_1583" = load i8*, i8** %e, align 8 + %"$_literal_cost_call_1585" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Exception_108", i8* %"$e_1583") + %"$gasrem_1586" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1587" = icmp ugt i64 %"$_literal_cost_call_1585", %"$gasrem_1586" + br i1 %"$gascmp_1587", label %"$out_of_gas_1588", label %"$have_gas_1589" + +"$out_of_gas_1588": ; preds = %"$have_gas_1548" + call void @_out_of_gas() + br label %"$have_gas_1589" + +"$have_gas_1589": ; preds = %"$out_of_gas_1588", %"$have_gas_1548" + %"$consume_1590" = sub i64 %"$gasrem_1586", %"$_literal_cost_call_1585" + store i64 %"$consume_1590", i64* @_gasrem, align 8 + %"$execptr_load_1591" = load i8*, i8** @_execptr, align 8 + %"$e_1592" = load i8*, i8** %e, align 8 + call void @_throw(i8* %"$execptr_load_1591", %_TyDescrTy_Typ* @"$TyDescr_Exception_108", i8* %"$e_1592"), !dbg !288 + br label %"$matchsucc_1531" + +"$empty_default_1535": ; preds = %"$have_gas_1529" + br label %"$matchsucc_1531" + +"$matchsucc_1531": ; preds = %"$have_gas_1589", %"$True_1536", %"$empty_default_1535" ret void } -define internal void @"$Finalize_Test_Send_1_1570"(%Uint128 %_amount, [20 x i8]* %"$_origin_1571", [20 x i8]* %"$_sender_1572") !dbg !144 { +define internal void @"$Finalize_Test_Send_1_1597"(%Uint128 %_amount, [20 x i8]* %"$_origin_1598", [20 x i8]* %"$_sender_1599") !dbg !289 { entry: - %_origin = load [20 x i8], [20 x i8]* %"$_origin_1571", align 1 - %_sender = load [20 x i8], [20 x i8]* %"$_sender_1572", align 1 - %"$gasrem_1573" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1574" = icmp ugt i64 1, %"$gasrem_1573" - br i1 %"$gascmp_1574", label %"$out_of_gas_1575", label %"$have_gas_1576" - -"$out_of_gas_1575": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_1576" - -"$have_gas_1576": ; preds = %"$out_of_gas_1575", %entry - %"$consume_1577" = sub i64 %"$gasrem_1573", 1 - store i64 %"$consume_1577", i64* @_gasrem, align 8 + %"$_sender_1620" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_sender_1599", [20 x i8]** %"$_sender_1620", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_sender_1620", metadata !290, metadata !DIExpression()), !dbg !291 + %"$_origin_1619" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_origin_1598", [20 x i8]** %"$_origin_1619", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_origin_1619", metadata !292, metadata !DIExpression()), !dbg !291 + %"$_amount_1618" = alloca %Uint128, align 8 + store %Uint128 %_amount, %Uint128* %"$_amount_1618", align 8 + call void @llvm.dbg.declare(metadata %Uint128* %"$_amount_1618", metadata !293, metadata !DIExpression()), !dbg !291 + %_origin = load [20 x i8], [20 x i8]* %"$_origin_1598", align 1 + %_sender = load [20 x i8], [20 x i8]* %"$_sender_1599", align 1 + %"$gasrem_1600" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1601" = icmp ugt i64 1, %"$gasrem_1600" + br i1 %"$gascmp_1601", label %"$out_of_gas_1602", label %"$have_gas_1603" + +"$out_of_gas_1602": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_1603" + +"$have_gas_1603": ; preds = %"$out_of_gas_1602", %entry + %"$consume_1604" = sub i64 %"$gasrem_1600", 1 + store i64 %"$consume_1604", i64* @_gasrem, align 8 %x = alloca %Uint128, align 8 - %"$gasrem_1578" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1579" = icmp ugt i64 1, %"$gasrem_1578" - br i1 %"$gascmp_1579", label %"$out_of_gas_1580", label %"$have_gas_1581" - -"$out_of_gas_1580": ; preds = %"$have_gas_1576" - call void @_out_of_gas() - br label %"$have_gas_1581" - -"$have_gas_1581": ; preds = %"$out_of_gas_1580", %"$have_gas_1576" - %"$consume_1582" = sub i64 %"$gasrem_1578", 1 - store i64 %"$consume_1582", i64* @_gasrem, align 8 - store %Uint128 { i128 1 }, %Uint128* %x, align 8, !dbg !145 - %"$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_1581" - call void @_out_of_gas() - br label %"$have_gas_1586" - -"$have_gas_1586": ; preds = %"$out_of_gas_1585", %"$have_gas_1581" - %"$consume_1587" = sub i64 %"$gasrem_1583", 1 - store i64 %"$consume_1587", i64* @_gasrem, align 8 - %"$Finalize_Test_Send_Helper_2_Msgs__origin_1588" = alloca [20 x i8], align 1 - store [20 x i8] %_origin, [20 x i8]* %"$Finalize_Test_Send_Helper_2_Msgs__origin_1588", align 1 - %"$Finalize_Test_Send_Helper_2_Msgs__sender_1589" = alloca [20 x i8], align 1 - store [20 x i8] %_sender, [20 x i8]* %"$Finalize_Test_Send_Helper_2_Msgs__sender_1589", align 1 - %"$x_1590" = load %Uint128, %Uint128* %x, align 8 - call void @"$Finalize_Test_Send_Helper_2_Msgs_1387"(%Uint128 %_amount, [20 x i8]* %"$Finalize_Test_Send_Helper_2_Msgs__origin_1588", [20 x i8]* %"$Finalize_Test_Send_Helper_2_Msgs__sender_1589", %Uint128 %"$x_1590"), !dbg !146 + call void @llvm.dbg.declare(metadata %Uint128* %x, metadata !294, metadata !DIExpression()), !dbg !295 + %"$gasrem_1605" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1606" = icmp ugt i64 1, %"$gasrem_1605" + br i1 %"$gascmp_1606", label %"$out_of_gas_1607", label %"$have_gas_1608" + +"$out_of_gas_1607": ; preds = %"$have_gas_1603" + call void @_out_of_gas() + br label %"$have_gas_1608" + +"$have_gas_1608": ; preds = %"$out_of_gas_1607", %"$have_gas_1603" + %"$consume_1609" = sub i64 %"$gasrem_1605", 1 + store i64 %"$consume_1609", i64* @_gasrem, align 8 + store %Uint128 { i128 1 }, %Uint128* %x, align 8, !dbg !296 + %"$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 = %"$have_gas_1608" + call void @_out_of_gas() + br label %"$have_gas_1613" + +"$have_gas_1613": ; preds = %"$out_of_gas_1612", %"$have_gas_1608" + %"$consume_1614" = sub i64 %"$gasrem_1610", 1 + store i64 %"$consume_1614", i64* @_gasrem, align 8 + %"$Finalize_Test_Send_Helper_2_Msgs__origin_1615" = alloca [20 x i8], align 1 + store [20 x i8] %_origin, [20 x i8]* %"$Finalize_Test_Send_Helper_2_Msgs__origin_1615", align 1 + %"$Finalize_Test_Send_Helper_2_Msgs__sender_1616" = alloca [20 x i8], align 1 + store [20 x i8] %_sender, [20 x i8]* %"$Finalize_Test_Send_Helper_2_Msgs__sender_1616", align 1 + %"$x_1617" = load %Uint128, %Uint128* %x, align 8 + call void @"$Finalize_Test_Send_Helper_2_Msgs_1410"(%Uint128 %_amount, [20 x i8]* %"$Finalize_Test_Send_Helper_2_Msgs__origin_1615", [20 x i8]* %"$Finalize_Test_Send_Helper_2_Msgs__sender_1616", %Uint128 %"$x_1617"), !dbg !297 ret void } -define void @Finalize_Test_Send_1(i8* %0) !dbg !147 { +define void @Finalize_Test_Send_1(i8* %0) !dbg !298 { entry: - %"$_amount_1592" = getelementptr i8, i8* %0, i32 0 - %"$_amount_1593" = bitcast i8* %"$_amount_1592" to %Uint128* - %_amount = load %Uint128, %Uint128* %"$_amount_1593", align 8 - %"$_origin_1594" = getelementptr i8, i8* %0, i32 16 - %"$_origin_1595" = bitcast i8* %"$_origin_1594" to [20 x i8]* - %"$_sender_1596" = getelementptr i8, i8* %0, i32 36 - %"$_sender_1597" = bitcast i8* %"$_sender_1596" to [20 x i8]* - call void @"$Finalize_Test_Send_1_1570"(%Uint128 %_amount, [20 x i8]* %"$_origin_1595", [20 x i8]* %"$_sender_1597"), !dbg !148 + %"$_amount_1622" = getelementptr i8, i8* %0, i32 0 + %"$_amount_1623" = bitcast i8* %"$_amount_1622" to %Uint128* + %_amount = load %Uint128, %Uint128* %"$_amount_1623", align 8 + %"$_origin_1624" = getelementptr i8, i8* %0, i32 16 + %"$_origin_1625" = bitcast i8* %"$_origin_1624" to [20 x i8]* + %"$_sender_1626" = getelementptr i8, i8* %0, i32 36 + %"$_sender_1627" = bitcast i8* %"$_sender_1626" to [20 x i8]* + call void @"$Finalize_Test_Send_1_1597"(%Uint128 %_amount, [20 x i8]* %"$_origin_1625", [20 x i8]* %"$_sender_1627"), !dbg !299 ret void } -define internal void @"$Test_Send_2_1598"(%Uint128 %_amount, [20 x i8]* %"$_origin_1599", [20 x i8]* %"$_sender_1600") !dbg !149 { +define internal void @"$Test_Send_2_1628"(%Uint128 %_amount, [20 x i8]* %"$_origin_1629", [20 x i8]* %"$_sender_1630") !dbg !300 { entry: - %_origin = load [20 x i8], [20 x i8]* %"$_origin_1599", align 1 - %_sender = load [20 x i8], [20 x i8]* %"$_sender_1600", align 1 - %"$gasrem_1601" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1602" = icmp ugt i64 1, %"$gasrem_1601" - br i1 %"$gascmp_1602", label %"$out_of_gas_1603", label %"$have_gas_1604" - -"$out_of_gas_1603": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_1604" - -"$have_gas_1604": ; preds = %"$out_of_gas_1603", %entry - %"$consume_1605" = sub i64 %"$gasrem_1601", 1 - store i64 %"$consume_1605", i64* @_gasrem, align 8 - %"$AssertReset__origin_1606" = alloca [20 x i8], align 1 - store [20 x i8] %_origin, [20 x i8]* %"$AssertReset__origin_1606", align 1 - %"$AssertReset__sender_1607" = alloca [20 x i8], align 1 - store [20 x i8] %_sender, [20 x i8]* %"$AssertReset__sender_1607", align 1 - call void @"$AssertReset_855"(%Uint128 %_amount, [20 x i8]* %"$AssertReset__origin_1606", [20 x i8]* %"$AssertReset__sender_1607"), !dbg !150 + %"$_sender_1860" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_sender_1630", [20 x i8]** %"$_sender_1860", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_sender_1860", metadata !301, metadata !DIExpression()), !dbg !302 + %"$_origin_1859" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_origin_1629", [20 x i8]** %"$_origin_1859", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_origin_1859", metadata !303, metadata !DIExpression()), !dbg !302 + %"$_amount_1858" = alloca %Uint128, align 8 + store %Uint128 %_amount, %Uint128* %"$_amount_1858", align 8 + call void @llvm.dbg.declare(metadata %Uint128* %"$_amount_1858", metadata !304, metadata !DIExpression()), !dbg !302 + %_origin = load [20 x i8], [20 x i8]* %"$_origin_1629", align 1 + %_sender = load [20 x i8], [20 x i8]* %"$_sender_1630", align 1 + %"$gasrem_1631" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1632" = icmp ugt i64 1, %"$gasrem_1631" + br i1 %"$gascmp_1632", label %"$out_of_gas_1633", label %"$have_gas_1634" + +"$out_of_gas_1633": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_1634" + +"$have_gas_1634": ; preds = %"$out_of_gas_1633", %entry + %"$consume_1635" = sub i64 %"$gasrem_1631", 1 + store i64 %"$consume_1635", i64* @_gasrem, align 8 + %"$AssertReset__origin_1636" = alloca [20 x i8], align 1 + store [20 x i8] %_origin, [20 x i8]* %"$AssertReset__origin_1636", align 1 + %"$AssertReset__sender_1637" = alloca [20 x i8], align 1 + store [20 x i8] %_sender, [20 x i8]* %"$AssertReset__sender_1637", align 1 + call void @"$AssertReset_869"(%Uint128 %_amount, [20 x i8]* %"$AssertReset__origin_1636", [20 x i8]* %"$AssertReset__sender_1637"), !dbg !305 %s1 = alloca %String, align 8 - %"$execptr_load_1609" = load i8*, i8** @_execptr, align 8 - %"$s1_call_1610" = call i8* @_fetch_field(i8* %"$execptr_load_1609", i8* getelementptr inbounds ([14 x i8], [14 x i8]* @"$test_string_1_1608", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_String_100", i32 0, i8* null, i32 1), !dbg !151 - %"$s1_1611" = bitcast i8* %"$s1_call_1610" to %String* - %"$s1_1612" = load %String, %String* %"$s1_1611", align 8 - store %String %"$s1_1612", %String* %s1, align 8 - %"$_literal_cost_s1_1613" = alloca %String, align 8 - %"$s1_1614" = load %String, %String* %s1, align 8 - store %String %"$s1_1614", %String* %"$_literal_cost_s1_1613", align 8 - %"$$_literal_cost_s1_1613_1615" = bitcast %String* %"$_literal_cost_s1_1613" to i8* - %"$_literal_cost_call_1616" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_100", i8* %"$$_literal_cost_s1_1613_1615") - %"$gasadd_1617" = add i64 %"$_literal_cost_call_1616", 0 - %"$gasrem_1618" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1619" = icmp ugt i64 %"$gasadd_1617", %"$gasrem_1618" - br i1 %"$gascmp_1619", label %"$out_of_gas_1620", label %"$have_gas_1621" - -"$out_of_gas_1620": ; preds = %"$have_gas_1604" - call void @_out_of_gas() - br label %"$have_gas_1621" - -"$have_gas_1621": ; preds = %"$out_of_gas_1620", %"$have_gas_1604" - %"$consume_1622" = sub i64 %"$gasrem_1618", %"$gasadd_1617" - store i64 %"$consume_1622", i64* @_gasrem, align 8 - %"$gasrem_1623" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1624" = icmp ugt i64 1, %"$gasrem_1623" - br i1 %"$gascmp_1624", label %"$out_of_gas_1625", label %"$have_gas_1626" - -"$out_of_gas_1625": ; preds = %"$have_gas_1621" - call void @_out_of_gas() - br label %"$have_gas_1626" - -"$have_gas_1626": ; preds = %"$out_of_gas_1625", %"$have_gas_1621" - %"$consume_1627" = sub i64 %"$gasrem_1623", 1 - store i64 %"$consume_1627", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %String* %s1, metadata !306, metadata !DIExpression()), !dbg !307 + %"$execptr_load_1639" = load i8*, i8** @_execptr, align 8 + %"$s1_call_1640" = call i8* @_fetch_field(i8* %"$execptr_load_1639", i8* getelementptr inbounds ([14 x i8], [14 x i8]* @"$test_string_1_1638", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_String_100", i32 0, i8* null, i32 1), !dbg !307 + %"$s1_1641" = bitcast i8* %"$s1_call_1640" to %String* + %"$s1_1642" = load %String, %String* %"$s1_1641", align 8 + store %String %"$s1_1642", %String* %s1, align 8 + %"$_literal_cost_s1_1643" = alloca %String, align 8 + %"$s1_1644" = load %String, %String* %s1, align 8 + store %String %"$s1_1644", %String* %"$_literal_cost_s1_1643", align 8 + %"$$_literal_cost_s1_1643_1645" = bitcast %String* %"$_literal_cost_s1_1643" to i8* + %"$_literal_cost_call_1646" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_100", i8* %"$$_literal_cost_s1_1643_1645") + %"$gasadd_1647" = add i64 %"$_literal_cost_call_1646", 0 + %"$gasrem_1648" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1649" = icmp ugt i64 %"$gasadd_1647", %"$gasrem_1648" + br i1 %"$gascmp_1649", label %"$out_of_gas_1650", label %"$have_gas_1651" + +"$out_of_gas_1650": ; preds = %"$have_gas_1634" + call void @_out_of_gas() + br label %"$have_gas_1651" + +"$have_gas_1651": ; preds = %"$out_of_gas_1650", %"$have_gas_1634" + %"$consume_1652" = sub i64 %"$gasrem_1648", %"$gasadd_1647" + store i64 %"$consume_1652", i64* @_gasrem, align 8 + %"$gasrem_1653" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1654" = icmp ugt i64 1, %"$gasrem_1653" + br i1 %"$gascmp_1654", label %"$out_of_gas_1655", label %"$have_gas_1656" + +"$out_of_gas_1655": ; preds = %"$have_gas_1651" + call void @_out_of_gas() + br label %"$have_gas_1656" + +"$have_gas_1656": ; preds = %"$out_of_gas_1655", %"$have_gas_1651" + %"$consume_1657" = sub i64 %"$gasrem_1653", 1 + store i64 %"$consume_1657", i64* @_gasrem, align 8 %msg1 = alloca i8*, align 8 - %"$gasrem_1628" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1629" = icmp ugt i64 1, %"$gasrem_1628" - br i1 %"$gascmp_1629", label %"$out_of_gas_1630", label %"$have_gas_1631" - -"$out_of_gas_1630": ; preds = %"$have_gas_1626" - call void @_out_of_gas() - br label %"$have_gas_1631" - -"$have_gas_1631": ; preds = %"$out_of_gas_1630", %"$have_gas_1626" - %"$consume_1632" = sub i64 %"$gasrem_1628", 1 - store i64 %"$consume_1632", i64* @_gasrem, align 8 - %"$msgobj_1633_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$msgobj_1633_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_1633_salloc_load", i64 165) - %"$msgobj_1633_salloc" = bitcast i8* %"$msgobj_1633_salloc_salloc" to [165 x i8]* - %"$msgobj_1633" = bitcast [165 x i8]* %"$msgobj_1633_salloc" to i8* - store i8 4, i8* %"$msgobj_1633", align 1 - %"$msgobj_fname_1635" = getelementptr i8, i8* %"$msgobj_1633", i32 1 - %"$msgobj_fname_1636" = bitcast i8* %"$msgobj_fname_1635" to %String* - store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_1634", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_1636", align 8 - %"$msgobj_td_1637" = getelementptr i8, i8* %"$msgobj_1633", i32 17 - %"$msgobj_td_1638" = bitcast i8* %"$msgobj_td_1637" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_114", %_TyDescrTy_Typ** %"$msgobj_td_1638", align 8 - %"$support_contract_1639" = load [20 x i8], [20 x i8]* @_cparam_support_contract, align 1 - %"$msgobj_v_1640" = getelementptr i8, i8* %"$msgobj_1633", i32 25 - %"$msgobj_v_1641" = bitcast i8* %"$msgobj_v_1640" to [20 x i8]* - store [20 x i8] %"$support_contract_1639", [20 x i8]* %"$msgobj_v_1641", align 1 - %"$msgobj_fname_1643" = getelementptr i8, i8* %"$msgobj_1633", i32 45 - %"$msgobj_fname_1644" = bitcast i8* %"$msgobj_fname_1643" to %String* - store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_1642", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_1644", align 8 - %"$msgobj_td_1645" = getelementptr i8, i8* %"$msgobj_1633", i32 61 - %"$msgobj_td_1646" = bitcast i8* %"$msgobj_td_1645" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_String_100", %_TyDescrTy_Typ** %"$msgobj_td_1646", align 8 - %"$msgobj_v_1648" = getelementptr i8, i8* %"$msgobj_1633", i32 69 - %"$msgobj_v_1649" = bitcast i8* %"$msgobj_v_1648" to %String* - store %String { i8* getelementptr inbounds ([11 x i8], [11 x i8]* @"$stringlit_1647", i32 0, i32 0), i32 11 }, %String* %"$msgobj_v_1649", align 8 - %"$msgobj_fname_1651" = getelementptr i8, i8* %"$msgobj_1633", i32 85 - %"$msgobj_fname_1652" = bitcast i8* %"$msgobj_fname_1651" to %String* - store %String { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$stringlit_1650", i32 0, i32 0), i32 7 }, %String* %"$msgobj_fname_1652", align 8 - %"$msgobj_td_1653" = getelementptr i8, i8* %"$msgobj_1633", i32 101 - %"$msgobj_td_1654" = bitcast i8* %"$msgobj_td_1653" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Uint128_94", %_TyDescrTy_Typ** %"$msgobj_td_1654", align 8 - %"$msgobj_v_1655" = getelementptr i8, i8* %"$msgobj_1633", i32 109 - %"$msgobj_v_1656" = bitcast i8* %"$msgobj_v_1655" to %Uint128* - store %Uint128 zeroinitializer, %Uint128* %"$msgobj_v_1656", align 8 - %"$msgobj_fname_1658" = getelementptr i8, i8* %"$msgobj_1633", i32 125 - %"$msgobj_fname_1659" = bitcast i8* %"$msgobj_fname_1658" to %String* - store %String { i8* getelementptr inbounds ([1 x i8], [1 x i8]* @"$stringlit_1657", i32 0, i32 0), i32 1 }, %String* %"$msgobj_fname_1659", align 8 - %"$msgobj_td_1660" = getelementptr i8, i8* %"$msgobj_1633", i32 141 - %"$msgobj_td_1661" = bitcast i8* %"$msgobj_td_1660" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_String_100", %_TyDescrTy_Typ** %"$msgobj_td_1661", align 8 - %"$s1_1662" = load %String, %String* %s1, align 8 - %"$msgobj_v_1663" = getelementptr i8, i8* %"$msgobj_1633", i32 149 - %"$msgobj_v_1664" = bitcast i8* %"$msgobj_v_1663" to %String* - store %String %"$s1_1662", %String* %"$msgobj_v_1664", align 8 - store i8* %"$msgobj_1633", i8** %msg1, align 8, !dbg !152 + call void @llvm.dbg.declare(metadata i8** %msg1, metadata !308, metadata !DIExpression()), !dbg !309 + %"$gasrem_1658" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1659" = icmp ugt i64 1, %"$gasrem_1658" + br i1 %"$gascmp_1659", label %"$out_of_gas_1660", label %"$have_gas_1661" + +"$out_of_gas_1660": ; preds = %"$have_gas_1656" + call void @_out_of_gas() + br label %"$have_gas_1661" + +"$have_gas_1661": ; preds = %"$out_of_gas_1660", %"$have_gas_1656" + %"$consume_1662" = sub i64 %"$gasrem_1658", 1 + store i64 %"$consume_1662", i64* @_gasrem, align 8 + %"$msgobj_1663_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$msgobj_1663_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_1663_salloc_load", i64 165) + %"$msgobj_1663_salloc" = bitcast i8* %"$msgobj_1663_salloc_salloc" to [165 x i8]* + %"$msgobj_1663" = bitcast [165 x i8]* %"$msgobj_1663_salloc" to i8* + store i8 4, i8* %"$msgobj_1663", align 1 + %"$msgobj_fname_1665" = getelementptr i8, i8* %"$msgobj_1663", i32 1 + %"$msgobj_fname_1666" = bitcast i8* %"$msgobj_fname_1665" to %String* + store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_1664", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_1666", align 8 + %"$msgobj_td_1667" = getelementptr i8, i8* %"$msgobj_1663", i32 17 + %"$msgobj_td_1668" = bitcast i8* %"$msgobj_td_1667" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_114", %_TyDescrTy_Typ** %"$msgobj_td_1668", align 8 + %"$support_contract_1669" = load [20 x i8], [20 x i8]* @_cparam_support_contract, align 1 + %"$msgobj_v_1670" = getelementptr i8, i8* %"$msgobj_1663", i32 25 + %"$msgobj_v_1671" = bitcast i8* %"$msgobj_v_1670" to [20 x i8]* + store [20 x i8] %"$support_contract_1669", [20 x i8]* %"$msgobj_v_1671", align 1 + %"$msgobj_fname_1673" = getelementptr i8, i8* %"$msgobj_1663", i32 45 + %"$msgobj_fname_1674" = bitcast i8* %"$msgobj_fname_1673" to %String* + store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_1672", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_1674", align 8 + %"$msgobj_td_1675" = getelementptr i8, i8* %"$msgobj_1663", i32 61 + %"$msgobj_td_1676" = bitcast i8* %"$msgobj_td_1675" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_String_100", %_TyDescrTy_Typ** %"$msgobj_td_1676", align 8 + %"$msgobj_v_1678" = getelementptr i8, i8* %"$msgobj_1663", i32 69 + %"$msgobj_v_1679" = bitcast i8* %"$msgobj_v_1678" to %String* + store %String { i8* getelementptr inbounds ([11 x i8], [11 x i8]* @"$stringlit_1677", i32 0, i32 0), i32 11 }, %String* %"$msgobj_v_1679", align 8 + %"$msgobj_fname_1681" = getelementptr i8, i8* %"$msgobj_1663", i32 85 + %"$msgobj_fname_1682" = bitcast i8* %"$msgobj_fname_1681" to %String* + store %String { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$stringlit_1680", i32 0, i32 0), i32 7 }, %String* %"$msgobj_fname_1682", align 8 + %"$msgobj_td_1683" = getelementptr i8, i8* %"$msgobj_1663", i32 101 + %"$msgobj_td_1684" = bitcast i8* %"$msgobj_td_1683" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Uint128_94", %_TyDescrTy_Typ** %"$msgobj_td_1684", align 8 + %"$msgobj_v_1685" = getelementptr i8, i8* %"$msgobj_1663", i32 109 + %"$msgobj_v_1686" = bitcast i8* %"$msgobj_v_1685" to %Uint128* + store %Uint128 zeroinitializer, %Uint128* %"$msgobj_v_1686", align 8 + %"$msgobj_fname_1688" = getelementptr i8, i8* %"$msgobj_1663", i32 125 + %"$msgobj_fname_1689" = bitcast i8* %"$msgobj_fname_1688" to %String* + store %String { i8* getelementptr inbounds ([1 x i8], [1 x i8]* @"$stringlit_1687", i32 0, i32 0), i32 1 }, %String* %"$msgobj_fname_1689", align 8 + %"$msgobj_td_1690" = getelementptr i8, i8* %"$msgobj_1663", i32 141 + %"$msgobj_td_1691" = bitcast i8* %"$msgobj_td_1690" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_String_100", %_TyDescrTy_Typ** %"$msgobj_td_1691", align 8 + %"$s1_1692" = load %String, %String* %s1, align 8 + %"$msgobj_v_1693" = getelementptr i8, i8* %"$msgobj_1663", i32 149 + %"$msgobj_v_1694" = bitcast i8* %"$msgobj_v_1693" to %String* + store %String %"$s1_1692", %String* %"$msgobj_v_1694", align 8 + store i8* %"$msgobj_1663", i8** %msg1, align 8, !dbg !310 %s2 = alloca %String, align 8 - %"$execptr_load_1667" = load i8*, i8** @_execptr, align 8 - %"$s2_call_1668" = call i8* @_fetch_field(i8* %"$execptr_load_1667", i8* getelementptr inbounds ([14 x i8], [14 x i8]* @"$test_string_2_1666", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_String_100", i32 0, i8* null, i32 1), !dbg !153 - %"$s2_1669" = bitcast i8* %"$s2_call_1668" to %String* - %"$s2_1670" = load %String, %String* %"$s2_1669", align 8 - store %String %"$s2_1670", %String* %s2, align 8 - %"$_literal_cost_s2_1671" = alloca %String, align 8 - %"$s2_1672" = load %String, %String* %s2, align 8 - store %String %"$s2_1672", %String* %"$_literal_cost_s2_1671", align 8 - %"$$_literal_cost_s2_1671_1673" = bitcast %String* %"$_literal_cost_s2_1671" to i8* - %"$_literal_cost_call_1674" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_100", i8* %"$$_literal_cost_s2_1671_1673") - %"$gasadd_1675" = add i64 %"$_literal_cost_call_1674", 0 - %"$gasrem_1676" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1677" = icmp ugt i64 %"$gasadd_1675", %"$gasrem_1676" - br i1 %"$gascmp_1677", label %"$out_of_gas_1678", label %"$have_gas_1679" - -"$out_of_gas_1678": ; preds = %"$have_gas_1631" - call void @_out_of_gas() - br label %"$have_gas_1679" - -"$have_gas_1679": ; preds = %"$out_of_gas_1678", %"$have_gas_1631" - %"$consume_1680" = sub i64 %"$gasrem_1676", %"$gasadd_1675" - store i64 %"$consume_1680", i64* @_gasrem, align 8 - %"$gasrem_1681" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1682" = icmp ugt i64 1, %"$gasrem_1681" - br i1 %"$gascmp_1682", label %"$out_of_gas_1683", label %"$have_gas_1684" - -"$out_of_gas_1683": ; preds = %"$have_gas_1679" - call void @_out_of_gas() - br label %"$have_gas_1684" - -"$have_gas_1684": ; preds = %"$out_of_gas_1683", %"$have_gas_1679" - %"$consume_1685" = sub i64 %"$gasrem_1681", 1 - store i64 %"$consume_1685", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %String* %s2, metadata !311, metadata !DIExpression()), !dbg !312 + %"$execptr_load_1697" = load i8*, i8** @_execptr, align 8 + %"$s2_call_1698" = call i8* @_fetch_field(i8* %"$execptr_load_1697", i8* getelementptr inbounds ([14 x i8], [14 x i8]* @"$test_string_2_1696", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_String_100", i32 0, i8* null, i32 1), !dbg !312 + %"$s2_1699" = bitcast i8* %"$s2_call_1698" to %String* + %"$s2_1700" = load %String, %String* %"$s2_1699", align 8 + store %String %"$s2_1700", %String* %s2, align 8 + %"$_literal_cost_s2_1701" = alloca %String, align 8 + %"$s2_1702" = load %String, %String* %s2, align 8 + store %String %"$s2_1702", %String* %"$_literal_cost_s2_1701", align 8 + %"$$_literal_cost_s2_1701_1703" = bitcast %String* %"$_literal_cost_s2_1701" to i8* + %"$_literal_cost_call_1704" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_100", i8* %"$$_literal_cost_s2_1701_1703") + %"$gasadd_1705" = add i64 %"$_literal_cost_call_1704", 0 + %"$gasrem_1706" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1707" = icmp ugt i64 %"$gasadd_1705", %"$gasrem_1706" + br i1 %"$gascmp_1707", label %"$out_of_gas_1708", label %"$have_gas_1709" + +"$out_of_gas_1708": ; preds = %"$have_gas_1661" + call void @_out_of_gas() + br label %"$have_gas_1709" + +"$have_gas_1709": ; preds = %"$out_of_gas_1708", %"$have_gas_1661" + %"$consume_1710" = sub i64 %"$gasrem_1706", %"$gasadd_1705" + store i64 %"$consume_1710", i64* @_gasrem, align 8 + %"$gasrem_1711" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1712" = icmp ugt i64 1, %"$gasrem_1711" + br i1 %"$gascmp_1712", label %"$out_of_gas_1713", label %"$have_gas_1714" + +"$out_of_gas_1713": ; preds = %"$have_gas_1709" + call void @_out_of_gas() + br label %"$have_gas_1714" + +"$have_gas_1714": ; preds = %"$out_of_gas_1713", %"$have_gas_1709" + %"$consume_1715" = sub i64 %"$gasrem_1711", 1 + store i64 %"$consume_1715", i64* @_gasrem, align 8 %msg2 = alloca i8*, align 8 - %"$gasrem_1686" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1687" = icmp ugt i64 1, %"$gasrem_1686" - br i1 %"$gascmp_1687", label %"$out_of_gas_1688", label %"$have_gas_1689" - -"$out_of_gas_1688": ; preds = %"$have_gas_1684" - call void @_out_of_gas() - br label %"$have_gas_1689" - -"$have_gas_1689": ; preds = %"$out_of_gas_1688", %"$have_gas_1684" - %"$consume_1690" = sub i64 %"$gasrem_1686", 1 - store i64 %"$consume_1690", i64* @_gasrem, align 8 - %"$msgobj_1691_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$msgobj_1691_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_1691_salloc_load", i64 165) - %"$msgobj_1691_salloc" = bitcast i8* %"$msgobj_1691_salloc_salloc" to [165 x i8]* - %"$msgobj_1691" = bitcast [165 x i8]* %"$msgobj_1691_salloc" to i8* - store i8 4, i8* %"$msgobj_1691", align 1 - %"$msgobj_fname_1693" = getelementptr i8, i8* %"$msgobj_1691", i32 1 - %"$msgobj_fname_1694" = bitcast i8* %"$msgobj_fname_1693" to %String* - store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_1692", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_1694", align 8 - %"$msgobj_td_1695" = getelementptr i8, i8* %"$msgobj_1691", i32 17 - %"$msgobj_td_1696" = bitcast i8* %"$msgobj_td_1695" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_114", %_TyDescrTy_Typ** %"$msgobj_td_1696", align 8 - %"$support_contract_1697" = load [20 x i8], [20 x i8]* @_cparam_support_contract, align 1 - %"$msgobj_v_1698" = getelementptr i8, i8* %"$msgobj_1691", i32 25 - %"$msgobj_v_1699" = bitcast i8* %"$msgobj_v_1698" to [20 x i8]* - store [20 x i8] %"$support_contract_1697", [20 x i8]* %"$msgobj_v_1699", align 1 - %"$msgobj_fname_1701" = getelementptr i8, i8* %"$msgobj_1691", i32 45 - %"$msgobj_fname_1702" = bitcast i8* %"$msgobj_fname_1701" to %String* - store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_1700", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_1702", align 8 - %"$msgobj_td_1703" = getelementptr i8, i8* %"$msgobj_1691", i32 61 - %"$msgobj_td_1704" = bitcast i8* %"$msgobj_td_1703" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_String_100", %_TyDescrTy_Typ** %"$msgobj_td_1704", align 8 - %"$msgobj_v_1706" = getelementptr i8, i8* %"$msgobj_1691", i32 69 - %"$msgobj_v_1707" = bitcast i8* %"$msgobj_v_1706" to %String* - store %String { i8* getelementptr inbounds ([11 x i8], [11 x i8]* @"$stringlit_1705", i32 0, i32 0), i32 11 }, %String* %"$msgobj_v_1707", align 8 - %"$msgobj_fname_1709" = getelementptr i8, i8* %"$msgobj_1691", i32 85 - %"$msgobj_fname_1710" = bitcast i8* %"$msgobj_fname_1709" to %String* - store %String { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$stringlit_1708", i32 0, i32 0), i32 7 }, %String* %"$msgobj_fname_1710", align 8 - %"$msgobj_td_1711" = getelementptr i8, i8* %"$msgobj_1691", i32 101 - %"$msgobj_td_1712" = bitcast i8* %"$msgobj_td_1711" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Uint128_94", %_TyDescrTy_Typ** %"$msgobj_td_1712", align 8 - %"$msgobj_v_1713" = getelementptr i8, i8* %"$msgobj_1691", i32 109 - %"$msgobj_v_1714" = bitcast i8* %"$msgobj_v_1713" to %Uint128* - store %Uint128 zeroinitializer, %Uint128* %"$msgobj_v_1714", align 8 - %"$msgobj_fname_1716" = getelementptr i8, i8* %"$msgobj_1691", i32 125 - %"$msgobj_fname_1717" = bitcast i8* %"$msgobj_fname_1716" to %String* - store %String { i8* getelementptr inbounds ([1 x i8], [1 x i8]* @"$stringlit_1715", i32 0, i32 0), i32 1 }, %String* %"$msgobj_fname_1717", align 8 - %"$msgobj_td_1718" = getelementptr i8, i8* %"$msgobj_1691", i32 141 - %"$msgobj_td_1719" = bitcast i8* %"$msgobj_td_1718" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_String_100", %_TyDescrTy_Typ** %"$msgobj_td_1719", align 8 - %"$s2_1720" = load %String, %String* %s2, align 8 - %"$msgobj_v_1721" = getelementptr i8, i8* %"$msgobj_1691", i32 149 - %"$msgobj_v_1722" = bitcast i8* %"$msgobj_v_1721" to %String* - store %String %"$s2_1720", %String* %"$msgobj_v_1722", align 8 - store i8* %"$msgobj_1691", i8** %msg2, align 8, !dbg !154 - %"$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_1726": ; preds = %"$have_gas_1689" - call void @_out_of_gas() - br label %"$have_gas_1727" - -"$have_gas_1727": ; preds = %"$out_of_gas_1726", %"$have_gas_1689" - %"$consume_1728" = sub i64 %"$gasrem_1724", 1 - store i64 %"$consume_1728", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata i8** %msg2, metadata !313, metadata !DIExpression()), !dbg !314 + %"$gasrem_1716" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1717" = icmp ugt i64 1, %"$gasrem_1716" + br i1 %"$gascmp_1717", label %"$out_of_gas_1718", label %"$have_gas_1719" + +"$out_of_gas_1718": ; preds = %"$have_gas_1714" + call void @_out_of_gas() + br label %"$have_gas_1719" + +"$have_gas_1719": ; preds = %"$out_of_gas_1718", %"$have_gas_1714" + %"$consume_1720" = sub i64 %"$gasrem_1716", 1 + store i64 %"$consume_1720", i64* @_gasrem, align 8 + %"$msgobj_1721_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$msgobj_1721_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_1721_salloc_load", i64 165) + %"$msgobj_1721_salloc" = bitcast i8* %"$msgobj_1721_salloc_salloc" to [165 x i8]* + %"$msgobj_1721" = bitcast [165 x i8]* %"$msgobj_1721_salloc" to i8* + store i8 4, i8* %"$msgobj_1721", align 1 + %"$msgobj_fname_1723" = getelementptr i8, i8* %"$msgobj_1721", i32 1 + %"$msgobj_fname_1724" = bitcast i8* %"$msgobj_fname_1723" to %String* + store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_1722", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_1724", align 8 + %"$msgobj_td_1725" = getelementptr i8, i8* %"$msgobj_1721", i32 17 + %"$msgobj_td_1726" = bitcast i8* %"$msgobj_td_1725" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_114", %_TyDescrTy_Typ** %"$msgobj_td_1726", align 8 + %"$support_contract_1727" = load [20 x i8], [20 x i8]* @_cparam_support_contract, align 1 + %"$msgobj_v_1728" = getelementptr i8, i8* %"$msgobj_1721", i32 25 + %"$msgobj_v_1729" = bitcast i8* %"$msgobj_v_1728" to [20 x i8]* + store [20 x i8] %"$support_contract_1727", [20 x i8]* %"$msgobj_v_1729", align 1 + %"$msgobj_fname_1731" = getelementptr i8, i8* %"$msgobj_1721", i32 45 + %"$msgobj_fname_1732" = bitcast i8* %"$msgobj_fname_1731" to %String* + store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_1730", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_1732", align 8 + %"$msgobj_td_1733" = getelementptr i8, i8* %"$msgobj_1721", i32 61 + %"$msgobj_td_1734" = bitcast i8* %"$msgobj_td_1733" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_String_100", %_TyDescrTy_Typ** %"$msgobj_td_1734", align 8 + %"$msgobj_v_1736" = getelementptr i8, i8* %"$msgobj_1721", i32 69 + %"$msgobj_v_1737" = bitcast i8* %"$msgobj_v_1736" to %String* + store %String { i8* getelementptr inbounds ([11 x i8], [11 x i8]* @"$stringlit_1735", i32 0, i32 0), i32 11 }, %String* %"$msgobj_v_1737", align 8 + %"$msgobj_fname_1739" = getelementptr i8, i8* %"$msgobj_1721", i32 85 + %"$msgobj_fname_1740" = bitcast i8* %"$msgobj_fname_1739" to %String* + store %String { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$stringlit_1738", i32 0, i32 0), i32 7 }, %String* %"$msgobj_fname_1740", align 8 + %"$msgobj_td_1741" = getelementptr i8, i8* %"$msgobj_1721", i32 101 + %"$msgobj_td_1742" = bitcast i8* %"$msgobj_td_1741" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Uint128_94", %_TyDescrTy_Typ** %"$msgobj_td_1742", align 8 + %"$msgobj_v_1743" = getelementptr i8, i8* %"$msgobj_1721", i32 109 + %"$msgobj_v_1744" = bitcast i8* %"$msgobj_v_1743" to %Uint128* + store %Uint128 zeroinitializer, %Uint128* %"$msgobj_v_1744", align 8 + %"$msgobj_fname_1746" = getelementptr i8, i8* %"$msgobj_1721", i32 125 + %"$msgobj_fname_1747" = bitcast i8* %"$msgobj_fname_1746" to %String* + store %String { i8* getelementptr inbounds ([1 x i8], [1 x i8]* @"$stringlit_1745", i32 0, i32 0), i32 1 }, %String* %"$msgobj_fname_1747", align 8 + %"$msgobj_td_1748" = getelementptr i8, i8* %"$msgobj_1721", i32 141 + %"$msgobj_td_1749" = bitcast i8* %"$msgobj_td_1748" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_String_100", %_TyDescrTy_Typ** %"$msgobj_td_1749", align 8 + %"$s2_1750" = load %String, %String* %s2, align 8 + %"$msgobj_v_1751" = getelementptr i8, i8* %"$msgobj_1721", i32 149 + %"$msgobj_v_1752" = bitcast i8* %"$msgobj_v_1751" to %String* + store %String %"$s2_1750", %String* %"$msgobj_v_1752", align 8 + store i8* %"$msgobj_1721", i8** %msg2, align 8, !dbg !315 + %"$gasrem_1754" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1755" = icmp ugt i64 1, %"$gasrem_1754" + br i1 %"$gascmp_1755", label %"$out_of_gas_1756", label %"$have_gas_1757" + +"$out_of_gas_1756": ; preds = %"$have_gas_1719" + call void @_out_of_gas() + br label %"$have_gas_1757" + +"$have_gas_1757": ; preds = %"$out_of_gas_1756", %"$have_gas_1719" + %"$consume_1758" = sub i64 %"$gasrem_1754", 1 + store i64 %"$consume_1758", i64* @_gasrem, align 8 %msgs_tmp = alloca %TName_List_Message*, align 8 - %"$gasrem_1729" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1730" = icmp ugt i64 1, %"$gasrem_1729" - br i1 %"$gascmp_1730", label %"$out_of_gas_1731", label %"$have_gas_1732" + call void @llvm.dbg.declare(metadata %TName_List_Message** %msgs_tmp, metadata !316, metadata !DIExpression()), !dbg !317 + %"$gasrem_1759" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1760" = icmp ugt i64 1, %"$gasrem_1759" + br i1 %"$gascmp_1760", label %"$out_of_gas_1761", label %"$have_gas_1762" -"$out_of_gas_1731": ; preds = %"$have_gas_1727" +"$out_of_gas_1761": ; preds = %"$have_gas_1757" call void @_out_of_gas() - br label %"$have_gas_1732" + br label %"$have_gas_1762" -"$have_gas_1732": ; preds = %"$out_of_gas_1731", %"$have_gas_1727" - %"$consume_1733" = sub i64 %"$gasrem_1729", 1 - store i64 %"$consume_1733", i64* @_gasrem, align 8 +"$have_gas_1762": ; preds = %"$out_of_gas_1761", %"$have_gas_1757" + %"$consume_1763" = sub i64 %"$gasrem_1759", 1 + store i64 %"$consume_1763", i64* @_gasrem, align 8 %"$accounting_tests.one_msg_25" = alloca %TName_List_Message*, align 8 - %"$accounting_tests.one_msg_1734" = load { %TName_List_Message* (i8*, i8*)*, i8* }, { %TName_List_Message* (i8*, i8*)*, i8* }* @accounting_tests.one_msg, align 8 - %"$accounting_tests.one_msg_fptr_1735" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$accounting_tests.one_msg_1734", 0 - %"$accounting_tests.one_msg_envptr_1736" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$accounting_tests.one_msg_1734", 1 - %"$msg2_1737" = load i8*, i8** %msg2, align 8 - %"$accounting_tests.one_msg_call_1738" = call %TName_List_Message* %"$accounting_tests.one_msg_fptr_1735"(i8* %"$accounting_tests.one_msg_envptr_1736", i8* %"$msg2_1737"), !dbg !155 - store %TName_List_Message* %"$accounting_tests.one_msg_call_1738", %TName_List_Message** %"$accounting_tests.one_msg_25", align 8, !dbg !155 - %"$$accounting_tests.one_msg_25_1739" = load %TName_List_Message*, %TName_List_Message** %"$accounting_tests.one_msg_25", align 8 - store %TName_List_Message* %"$$accounting_tests.one_msg_25_1739", %TName_List_Message** %msgs_tmp, align 8, !dbg !155 - %"$gasrem_1740" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1741" = icmp ugt i64 1, %"$gasrem_1740" - br i1 %"$gascmp_1741", label %"$out_of_gas_1742", label %"$have_gas_1743" - -"$out_of_gas_1742": ; preds = %"$have_gas_1732" - call void @_out_of_gas() - br label %"$have_gas_1743" - -"$have_gas_1743": ; preds = %"$out_of_gas_1742", %"$have_gas_1732" - %"$consume_1744" = sub i64 %"$gasrem_1740", 1 - store i64 %"$consume_1744", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_List_Message** %"$accounting_tests.one_msg_25", metadata !318, metadata !DIExpression()), !dbg !319 + %"$accounting_tests.one_msg_1764" = load { %TName_List_Message* (i8*, i8*)*, i8* }, { %TName_List_Message* (i8*, i8*)*, i8* }* @accounting_tests.one_msg, align 8 + %"$accounting_tests.one_msg_fptr_1765" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$accounting_tests.one_msg_1764", 0 + %"$accounting_tests.one_msg_envptr_1766" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$accounting_tests.one_msg_1764", 1 + %"$msg2_1767" = load i8*, i8** %msg2, align 8 + %"$accounting_tests.one_msg_call_1768" = call %TName_List_Message* %"$accounting_tests.one_msg_fptr_1765"(i8* %"$accounting_tests.one_msg_envptr_1766", i8* %"$msg2_1767"), !dbg !319 + store %TName_List_Message* %"$accounting_tests.one_msg_call_1768", %TName_List_Message** %"$accounting_tests.one_msg_25", align 8, !dbg !319 + %"$$accounting_tests.one_msg_25_1769" = load %TName_List_Message*, %TName_List_Message** %"$accounting_tests.one_msg_25", align 8 + store %TName_List_Message* %"$$accounting_tests.one_msg_25_1769", %TName_List_Message** %msgs_tmp, align 8, !dbg !319 + %"$gasrem_1770" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1771" = icmp ugt i64 1, %"$gasrem_1770" + br i1 %"$gascmp_1771", label %"$out_of_gas_1772", label %"$have_gas_1773" + +"$out_of_gas_1772": ; preds = %"$have_gas_1762" + call void @_out_of_gas() + br label %"$have_gas_1773" + +"$have_gas_1773": ; preds = %"$out_of_gas_1772", %"$have_gas_1762" + %"$consume_1774" = sub i64 %"$gasrem_1770", 1 + store i64 %"$consume_1774", i64* @_gasrem, align 8 %msgs = alloca %TName_List_Message*, align 8 - %"$gasrem_1745" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1746" = icmp ugt i64 1, %"$gasrem_1745" - br i1 %"$gascmp_1746", label %"$out_of_gas_1747", label %"$have_gas_1748" - -"$out_of_gas_1747": ; preds = %"$have_gas_1743" - call void @_out_of_gas() - br label %"$have_gas_1748" - -"$have_gas_1748": ; preds = %"$out_of_gas_1747", %"$have_gas_1743" - %"$consume_1749" = sub i64 %"$gasrem_1745", 1 - store i64 %"$consume_1749", i64* @_gasrem, align 8 - %"$msg1_1750" = load i8*, i8** %msg1, align 8 - %"$msgs_tmp_1751" = load %TName_List_Message*, %TName_List_Message** %msgs_tmp, align 8 - %"$adtval_1752_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_1752_salloc" = call i8* @_salloc(i8* %"$adtval_1752_load", i64 17) - %"$adtval_1752" = bitcast i8* %"$adtval_1752_salloc" to %CName_Cons_Message* - %"$adtgep_1753" = getelementptr inbounds %CName_Cons_Message, %CName_Cons_Message* %"$adtval_1752", i32 0, i32 0 - store i8 0, i8* %"$adtgep_1753", align 1 - %"$adtgep_1754" = getelementptr inbounds %CName_Cons_Message, %CName_Cons_Message* %"$adtval_1752", i32 0, i32 1 - store i8* %"$msg1_1750", i8** %"$adtgep_1754", align 8 - %"$adtgep_1755" = getelementptr inbounds %CName_Cons_Message, %CName_Cons_Message* %"$adtval_1752", i32 0, i32 2 - store %TName_List_Message* %"$msgs_tmp_1751", %TName_List_Message** %"$adtgep_1755", align 8 - %"$adtptr_1756" = bitcast %CName_Cons_Message* %"$adtval_1752" to %TName_List_Message* - store %TName_List_Message* %"$adtptr_1756", %TName_List_Message** %msgs, align 8, !dbg !156 - %"$msgs_1757" = load %TName_List_Message*, %TName_List_Message** %msgs, align 8 - %"$$msgs_1757_1758" = bitcast %TName_List_Message* %"$msgs_1757" to i8* - %"$_literal_cost_call_1759" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_120", i8* %"$$msgs_1757_1758") - %"$gasrem_1760" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1761" = icmp ugt i64 %"$_literal_cost_call_1759", %"$gasrem_1760" - br i1 %"$gascmp_1761", label %"$out_of_gas_1762", label %"$have_gas_1763" - -"$out_of_gas_1762": ; preds = %"$have_gas_1748" - call void @_out_of_gas() - br label %"$have_gas_1763" - -"$have_gas_1763": ; preds = %"$out_of_gas_1762", %"$have_gas_1748" - %"$consume_1764" = sub i64 %"$gasrem_1760", %"$_literal_cost_call_1759" - store i64 %"$consume_1764", i64* @_gasrem, align 8 - %"$execptr_load_1765" = load i8*, i8** @_execptr, align 8 - %"$msgs_1766" = load %TName_List_Message*, %TName_List_Message** %msgs, align 8 - call void @_send(i8* %"$execptr_load_1765", %_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_120", %TName_List_Message* %"$msgs_1766"), !dbg !157 - %"$gasrem_1767" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1768" = icmp ugt i64 1, %"$gasrem_1767" - br i1 %"$gascmp_1768", label %"$out_of_gas_1769", label %"$have_gas_1770" - -"$out_of_gas_1769": ; preds = %"$have_gas_1763" - call void @_out_of_gas() - br label %"$have_gas_1770" - -"$have_gas_1770": ; preds = %"$out_of_gas_1769", %"$have_gas_1763" - %"$consume_1771" = sub i64 %"$gasrem_1767", 1 - store i64 %"$consume_1771", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_List_Message** %msgs, metadata !320, metadata !DIExpression()), !dbg !321 + %"$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_1777": ; preds = %"$have_gas_1773" + call void @_out_of_gas() + br label %"$have_gas_1778" + +"$have_gas_1778": ; preds = %"$out_of_gas_1777", %"$have_gas_1773" + %"$consume_1779" = sub i64 %"$gasrem_1775", 1 + store i64 %"$consume_1779", i64* @_gasrem, align 8 + %"$msg1_1780" = load i8*, i8** %msg1, align 8 + %"$msgs_tmp_1781" = load %TName_List_Message*, %TName_List_Message** %msgs_tmp, align 8 + %"$adtval_1782_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_1782_salloc" = call i8* @_salloc(i8* %"$adtval_1782_load", i64 17) + %"$adtval_1782" = bitcast i8* %"$adtval_1782_salloc" to %CName_Cons_Message* + %"$adtgep_1783" = getelementptr inbounds %CName_Cons_Message, %CName_Cons_Message* %"$adtval_1782", i32 0, i32 0 + store i8 0, i8* %"$adtgep_1783", align 1 + %"$adtgep_1784" = getelementptr inbounds %CName_Cons_Message, %CName_Cons_Message* %"$adtval_1782", i32 0, i32 1 + store i8* %"$msg1_1780", i8** %"$adtgep_1784", align 8 + %"$adtgep_1785" = getelementptr inbounds %CName_Cons_Message, %CName_Cons_Message* %"$adtval_1782", i32 0, i32 2 + store %TName_List_Message* %"$msgs_tmp_1781", %TName_List_Message** %"$adtgep_1785", align 8 + %"$adtptr_1786" = bitcast %CName_Cons_Message* %"$adtval_1782" to %TName_List_Message* + store %TName_List_Message* %"$adtptr_1786", %TName_List_Message** %msgs, align 8, !dbg !322 + %"$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_120", 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_1778" + call void @_out_of_gas() + br label %"$have_gas_1793" + +"$have_gas_1793": ; preds = %"$out_of_gas_1792", %"$have_gas_1778" + %"$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_120", %TName_List_Message* %"$msgs_1796"), !dbg !323 + %"$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_1793" + call void @_out_of_gas() + br label %"$have_gas_1800" + +"$have_gas_1800": ; preds = %"$out_of_gas_1799", %"$have_gas_1793" + %"$consume_1801" = sub i64 %"$gasrem_1797", 1 + store i64 %"$consume_1801", i64* @_gasrem, align 8 %msg_final = alloca 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 = %"$have_gas_1770" - call void @_out_of_gas() - br label %"$have_gas_1775" - -"$have_gas_1775": ; preds = %"$out_of_gas_1774", %"$have_gas_1770" - %"$consume_1776" = sub i64 %"$gasrem_1772", 1 - store i64 %"$consume_1776", i64* @_gasrem, align 8 - %"$msgobj_1777_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$msgobj_1777_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_1777_salloc_load", i64 125) - %"$msgobj_1777_salloc" = bitcast i8* %"$msgobj_1777_salloc_salloc" to [125 x i8]* - %"$msgobj_1777" = bitcast [125 x i8]* %"$msgobj_1777_salloc" to i8* - store i8 3, i8* %"$msgobj_1777", align 1 - %"$msgobj_fname_1779" = getelementptr i8, i8* %"$msgobj_1777", i32 1 - %"$msgobj_fname_1780" = bitcast i8* %"$msgobj_fname_1779" to %String* - store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_1778", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_1780", align 8 - %"$msgobj_td_1781" = getelementptr i8, i8* %"$msgobj_1777", i32 17 - %"$msgobj_td_1782" = bitcast i8* %"$msgobj_td_1781" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_114", %_TyDescrTy_Typ** %"$msgobj_td_1782", align 8 - %"$_this_address_1783" = load [20 x i8], [20 x i8]* @_cparam__this_address, align 1 - %"$msgobj_v_1784" = getelementptr i8, i8* %"$msgobj_1777", i32 25 - %"$msgobj_v_1785" = bitcast i8* %"$msgobj_v_1784" to [20 x i8]* - store [20 x i8] %"$_this_address_1783", [20 x i8]* %"$msgobj_v_1785", align 1 - %"$msgobj_fname_1787" = getelementptr i8, i8* %"$msgobj_1777", i32 45 - %"$msgobj_fname_1788" = bitcast i8* %"$msgobj_fname_1787" to %String* - store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_1786", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_1788", align 8 - %"$msgobj_td_1789" = getelementptr i8, i8* %"$msgobj_1777", i32 61 - %"$msgobj_td_1790" = bitcast i8* %"$msgobj_td_1789" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_String_100", %_TyDescrTy_Typ** %"$msgobj_td_1790", align 8 - %"$msgobj_v_1792" = getelementptr i8, i8* %"$msgobj_1777", i32 69 - %"$msgobj_v_1793" = bitcast i8* %"$msgobj_v_1792" to %String* - store %String { i8* getelementptr inbounds ([20 x i8], [20 x i8]* @"$stringlit_1791", i32 0, i32 0), i32 20 }, %String* %"$msgobj_v_1793", align 8 - %"$msgobj_fname_1795" = getelementptr i8, i8* %"$msgobj_1777", i32 85 - %"$msgobj_fname_1796" = bitcast i8* %"$msgobj_fname_1795" to %String* - store %String { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$stringlit_1794", i32 0, i32 0), i32 7 }, %String* %"$msgobj_fname_1796", align 8 - %"$msgobj_td_1797" = getelementptr i8, i8* %"$msgobj_1777", i32 101 - %"$msgobj_td_1798" = bitcast i8* %"$msgobj_td_1797" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Uint128_94", %_TyDescrTy_Typ** %"$msgobj_td_1798", align 8 - %"$msgobj_v_1799" = getelementptr i8, i8* %"$msgobj_1777", i32 109 - %"$msgobj_v_1800" = bitcast i8* %"$msgobj_v_1799" to %Uint128* - store %Uint128 zeroinitializer, %Uint128* %"$msgobj_v_1800", align 8 - store i8* %"$msgobj_1777", i8** %msg_final, align 8, !dbg !158 + call void @llvm.dbg.declare(metadata i8** %msg_final, metadata !324, metadata !DIExpression()), !dbg !325 %"$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 = %"$have_gas_1775" +"$out_of_gas_1804": ; preds = %"$have_gas_1800" call void @_out_of_gas() br label %"$have_gas_1805" -"$have_gas_1805": ; preds = %"$out_of_gas_1804", %"$have_gas_1775" +"$have_gas_1805": ; preds = %"$out_of_gas_1804", %"$have_gas_1800" %"$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 125) + %"$msgobj_1807_salloc" = bitcast i8* %"$msgobj_1807_salloc_salloc" to [125 x i8]* + %"$msgobj_1807" = bitcast [125 x i8]* %"$msgobj_1807_salloc" to i8* + store i8 3, 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_Bystr20_114", %_TyDescrTy_Typ** %"$msgobj_td_1812", align 8 + %"$_this_address_1813" = load [20 x i8], [20 x i8]* @_cparam__this_address, align 1 + %"$msgobj_v_1814" = getelementptr i8, i8* %"$msgobj_1807", i32 25 + %"$msgobj_v_1815" = bitcast i8* %"$msgobj_v_1814" to [20 x i8]* + store [20 x i8] %"$_this_address_1813", [20 x i8]* %"$msgobj_v_1815", align 1 + %"$msgobj_fname_1817" = getelementptr i8, i8* %"$msgobj_1807", i32 45 + %"$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 61 + %"$msgobj_td_1820" = bitcast i8* %"$msgobj_td_1819" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_String_100", %_TyDescrTy_Typ** %"$msgobj_td_1820", align 8 + %"$msgobj_v_1822" = getelementptr i8, i8* %"$msgobj_1807", i32 69 + %"$msgobj_v_1823" = bitcast i8* %"$msgobj_v_1822" to %String* + store %String { i8* getelementptr inbounds ([20 x i8], [20 x i8]* @"$stringlit_1821", i32 0, i32 0), i32 20 }, %String* %"$msgobj_v_1823", align 8 + %"$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 ([7 x i8], [7 x i8]* @"$stringlit_1824", i32 0, i32 0), i32 7 }, %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_Uint128_94", %_TyDescrTy_Typ** %"$msgobj_td_1828", align 8 + %"$msgobj_v_1829" = getelementptr i8, i8* %"$msgobj_1807", i32 109 + %"$msgobj_v_1830" = bitcast i8* %"$msgobj_v_1829" to %Uint128* + store %Uint128 zeroinitializer, %Uint128* %"$msgobj_v_1830", align 8 + store i8* %"$msgobj_1807", i8** %msg_final, align 8, !dbg !326 + %"$gasrem_1832" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1833" = icmp ugt i64 1, %"$gasrem_1832" + br i1 %"$gascmp_1833", label %"$out_of_gas_1834", label %"$have_gas_1835" + +"$out_of_gas_1834": ; preds = %"$have_gas_1805" + call void @_out_of_gas() + br label %"$have_gas_1835" + +"$have_gas_1835": ; preds = %"$out_of_gas_1834", %"$have_gas_1805" + %"$consume_1836" = sub i64 %"$gasrem_1832", 1 + store i64 %"$consume_1836", i64* @_gasrem, align 8 %msgs_final = alloca %TName_List_Message*, align 8 - %"$gasrem_1807" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1808" = icmp ugt i64 1, %"$gasrem_1807" - br i1 %"$gascmp_1808", label %"$out_of_gas_1809", label %"$have_gas_1810" + call void @llvm.dbg.declare(metadata %TName_List_Message** %msgs_final, metadata !327, metadata !DIExpression()), !dbg !328 + %"$gasrem_1837" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1838" = icmp ugt i64 1, %"$gasrem_1837" + br i1 %"$gascmp_1838", label %"$out_of_gas_1839", label %"$have_gas_1840" -"$out_of_gas_1809": ; preds = %"$have_gas_1805" +"$out_of_gas_1839": ; preds = %"$have_gas_1835" call void @_out_of_gas() - br label %"$have_gas_1810" + br label %"$have_gas_1840" -"$have_gas_1810": ; preds = %"$out_of_gas_1809", %"$have_gas_1805" - %"$consume_1811" = sub i64 %"$gasrem_1807", 1 - store i64 %"$consume_1811", i64* @_gasrem, align 8 +"$have_gas_1840": ; preds = %"$out_of_gas_1839", %"$have_gas_1835" + %"$consume_1841" = sub i64 %"$gasrem_1837", 1 + store i64 %"$consume_1841", i64* @_gasrem, align 8 %"$accounting_tests.one_msg_24" = alloca %TName_List_Message*, align 8 - %"$accounting_tests.one_msg_1812" = load { %TName_List_Message* (i8*, i8*)*, i8* }, { %TName_List_Message* (i8*, i8*)*, i8* }* @accounting_tests.one_msg, align 8 - %"$accounting_tests.one_msg_fptr_1813" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$accounting_tests.one_msg_1812", 0 - %"$accounting_tests.one_msg_envptr_1814" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$accounting_tests.one_msg_1812", 1 - %"$msg_final_1815" = load i8*, i8** %msg_final, align 8 - %"$accounting_tests.one_msg_call_1816" = call %TName_List_Message* %"$accounting_tests.one_msg_fptr_1813"(i8* %"$accounting_tests.one_msg_envptr_1814", i8* %"$msg_final_1815"), !dbg !159 - store %TName_List_Message* %"$accounting_tests.one_msg_call_1816", %TName_List_Message** %"$accounting_tests.one_msg_24", align 8, !dbg !159 - %"$$accounting_tests.one_msg_24_1817" = load %TName_List_Message*, %TName_List_Message** %"$accounting_tests.one_msg_24", align 8 - store %TName_List_Message* %"$$accounting_tests.one_msg_24_1817", %TName_List_Message** %msgs_final, align 8, !dbg !159 - %"$msgs_final_1818" = load %TName_List_Message*, %TName_List_Message** %msgs_final, align 8 - %"$$msgs_final_1818_1819" = bitcast %TName_List_Message* %"$msgs_final_1818" to i8* - %"$_literal_cost_call_1820" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_120", i8* %"$$msgs_final_1818_1819") - %"$gasrem_1821" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1822" = icmp ugt i64 %"$_literal_cost_call_1820", %"$gasrem_1821" - br i1 %"$gascmp_1822", label %"$out_of_gas_1823", label %"$have_gas_1824" - -"$out_of_gas_1823": ; preds = %"$have_gas_1810" - call void @_out_of_gas() - br label %"$have_gas_1824" - -"$have_gas_1824": ; preds = %"$out_of_gas_1823", %"$have_gas_1810" - %"$consume_1825" = sub i64 %"$gasrem_1821", %"$_literal_cost_call_1820" - store i64 %"$consume_1825", i64* @_gasrem, align 8 - %"$execptr_load_1826" = load i8*, i8** @_execptr, align 8 - %"$msgs_final_1827" = load %TName_List_Message*, %TName_List_Message** %msgs_final, align 8 - call void @_send(i8* %"$execptr_load_1826", %_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_120", %TName_List_Message* %"$msgs_final_1827"), !dbg !160 + call void @llvm.dbg.declare(metadata %TName_List_Message** %"$accounting_tests.one_msg_24", metadata !329, metadata !DIExpression()), !dbg !330 + %"$accounting_tests.one_msg_1842" = load { %TName_List_Message* (i8*, i8*)*, i8* }, { %TName_List_Message* (i8*, i8*)*, i8* }* @accounting_tests.one_msg, align 8 + %"$accounting_tests.one_msg_fptr_1843" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$accounting_tests.one_msg_1842", 0 + %"$accounting_tests.one_msg_envptr_1844" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$accounting_tests.one_msg_1842", 1 + %"$msg_final_1845" = load i8*, i8** %msg_final, align 8 + %"$accounting_tests.one_msg_call_1846" = call %TName_List_Message* %"$accounting_tests.one_msg_fptr_1843"(i8* %"$accounting_tests.one_msg_envptr_1844", i8* %"$msg_final_1845"), !dbg !330 + store %TName_List_Message* %"$accounting_tests.one_msg_call_1846", %TName_List_Message** %"$accounting_tests.one_msg_24", align 8, !dbg !330 + %"$$accounting_tests.one_msg_24_1847" = load %TName_List_Message*, %TName_List_Message** %"$accounting_tests.one_msg_24", align 8 + store %TName_List_Message* %"$$accounting_tests.one_msg_24_1847", %TName_List_Message** %msgs_final, align 8, !dbg !330 + %"$msgs_final_1848" = load %TName_List_Message*, %TName_List_Message** %msgs_final, align 8 + %"$$msgs_final_1848_1849" = bitcast %TName_List_Message* %"$msgs_final_1848" to i8* + %"$_literal_cost_call_1850" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_120", i8* %"$$msgs_final_1848_1849") + %"$gasrem_1851" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1852" = icmp ugt i64 %"$_literal_cost_call_1850", %"$gasrem_1851" + br i1 %"$gascmp_1852", label %"$out_of_gas_1853", label %"$have_gas_1854" + +"$out_of_gas_1853": ; preds = %"$have_gas_1840" + call void @_out_of_gas() + br label %"$have_gas_1854" + +"$have_gas_1854": ; preds = %"$out_of_gas_1853", %"$have_gas_1840" + %"$consume_1855" = sub i64 %"$gasrem_1851", %"$_literal_cost_call_1850" + store i64 %"$consume_1855", i64* @_gasrem, align 8 + %"$execptr_load_1856" = load i8*, i8** @_execptr, align 8 + %"$msgs_final_1857" = load %TName_List_Message*, %TName_List_Message** %msgs_final, align 8 + call void @_send(i8* %"$execptr_load_1856", %_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_120", %TName_List_Message* %"$msgs_final_1857"), !dbg !331 ret void } -define void @Test_Send_2(i8* %0) !dbg !161 { +define void @Test_Send_2(i8* %0) !dbg !332 { entry: - %"$_amount_1829" = getelementptr i8, i8* %0, i32 0 - %"$_amount_1830" = bitcast i8* %"$_amount_1829" to %Uint128* - %_amount = load %Uint128, %Uint128* %"$_amount_1830", align 8 - %"$_origin_1831" = getelementptr i8, i8* %0, i32 16 - %"$_origin_1832" = bitcast i8* %"$_origin_1831" to [20 x i8]* - %"$_sender_1833" = getelementptr i8, i8* %0, i32 36 - %"$_sender_1834" = bitcast i8* %"$_sender_1833" to [20 x i8]* - call void @"$Test_Send_2_1598"(%Uint128 %_amount, [20 x i8]* %"$_origin_1832", [20 x i8]* %"$_sender_1834"), !dbg !162 + %"$_amount_1862" = getelementptr i8, i8* %0, i32 0 + %"$_amount_1863" = bitcast i8* %"$_amount_1862" to %Uint128* + %_amount = load %Uint128, %Uint128* %"$_amount_1863", align 8 + %"$_origin_1864" = getelementptr i8, i8* %0, i32 16 + %"$_origin_1865" = bitcast i8* %"$_origin_1864" to [20 x i8]* + %"$_sender_1866" = getelementptr i8, i8* %0, i32 36 + %"$_sender_1867" = bitcast i8* %"$_sender_1866" to [20 x i8]* + call void @"$Test_Send_2_1628"(%Uint128 %_amount, [20 x i8]* %"$_origin_1865", [20 x i8]* %"$_sender_1867"), !dbg !333 ret void } -define internal void @"$Finalize_Test_Send_2_1835"(%Uint128 %_amount, [20 x i8]* %"$_origin_1836", [20 x i8]* %"$_sender_1837") !dbg !163 { +define internal void @"$Finalize_Test_Send_2_1868"(%Uint128 %_amount, [20 x i8]* %"$_origin_1869", [20 x i8]* %"$_sender_1870") !dbg !334 { entry: - %_origin = load [20 x i8], [20 x i8]* %"$_origin_1836", align 1 - %_sender = load [20 x i8], [20 x i8]* %"$_sender_1837", align 1 - %"$gasrem_1838" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1839" = icmp ugt i64 1, %"$gasrem_1838" - br i1 %"$gascmp_1839", label %"$out_of_gas_1840", label %"$have_gas_1841" - -"$out_of_gas_1840": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_1841" - -"$have_gas_1841": ; preds = %"$out_of_gas_1840", %entry - %"$consume_1842" = sub i64 %"$gasrem_1838", 1 - store i64 %"$consume_1842", i64* @_gasrem, align 8 + %"$_sender_1891" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_sender_1870", [20 x i8]** %"$_sender_1891", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_sender_1891", metadata !335, metadata !DIExpression()), !dbg !336 + %"$_origin_1890" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_origin_1869", [20 x i8]** %"$_origin_1890", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_origin_1890", metadata !337, metadata !DIExpression()), !dbg !336 + %"$_amount_1889" = alloca %Uint128, align 8 + store %Uint128 %_amount, %Uint128* %"$_amount_1889", align 8 + call void @llvm.dbg.declare(metadata %Uint128* %"$_amount_1889", metadata !338, metadata !DIExpression()), !dbg !336 + %_origin = load [20 x i8], [20 x i8]* %"$_origin_1869", align 1 + %_sender = load [20 x i8], [20 x i8]* %"$_sender_1870", align 1 + %"$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" + +"$out_of_gas_1873": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_1874" + +"$have_gas_1874": ; preds = %"$out_of_gas_1873", %entry + %"$consume_1875" = sub i64 %"$gasrem_1871", 1 + store i64 %"$consume_1875", i64* @_gasrem, align 8 %x = alloca %Uint128, align 8 - %"$gasrem_1843" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1844" = icmp ugt i64 1, %"$gasrem_1843" - br i1 %"$gascmp_1844", label %"$out_of_gas_1845", label %"$have_gas_1846" - -"$out_of_gas_1845": ; preds = %"$have_gas_1841" - call void @_out_of_gas() - br label %"$have_gas_1846" - -"$have_gas_1846": ; preds = %"$out_of_gas_1845", %"$have_gas_1841" - %"$consume_1847" = sub i64 %"$gasrem_1843", 1 - store i64 %"$consume_1847", i64* @_gasrem, align 8 - store %Uint128 { i128 2 }, %Uint128* %x, align 8, !dbg !164 - %"$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_1850": ; preds = %"$have_gas_1846" - call void @_out_of_gas() - br label %"$have_gas_1851" - -"$have_gas_1851": ; preds = %"$out_of_gas_1850", %"$have_gas_1846" - %"$consume_1852" = sub i64 %"$gasrem_1848", 1 - store i64 %"$consume_1852", i64* @_gasrem, align 8 - %"$Finalize_Test_Send_Helper_2_Msgs__origin_1853" = alloca [20 x i8], align 1 - store [20 x i8] %_origin, [20 x i8]* %"$Finalize_Test_Send_Helper_2_Msgs__origin_1853", align 1 - %"$Finalize_Test_Send_Helper_2_Msgs__sender_1854" = alloca [20 x i8], align 1 - store [20 x i8] %_sender, [20 x i8]* %"$Finalize_Test_Send_Helper_2_Msgs__sender_1854", align 1 - %"$x_1855" = load %Uint128, %Uint128* %x, align 8 - call void @"$Finalize_Test_Send_Helper_2_Msgs_1387"(%Uint128 %_amount, [20 x i8]* %"$Finalize_Test_Send_Helper_2_Msgs__origin_1853", [20 x i8]* %"$Finalize_Test_Send_Helper_2_Msgs__sender_1854", %Uint128 %"$x_1855"), !dbg !165 + call void @llvm.dbg.declare(metadata %Uint128* %x, metadata !339, metadata !DIExpression()), !dbg !340 + %"$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" + +"$out_of_gas_1878": ; preds = %"$have_gas_1874" + call void @_out_of_gas() + br label %"$have_gas_1879" + +"$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 %Uint128 { i128 2 }, %Uint128* %x, align 8, !dbg !341 + %"$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_1883": ; preds = %"$have_gas_1879" + call void @_out_of_gas() + br label %"$have_gas_1884" + +"$have_gas_1884": ; preds = %"$out_of_gas_1883", %"$have_gas_1879" + %"$consume_1885" = sub i64 %"$gasrem_1881", 1 + store i64 %"$consume_1885", i64* @_gasrem, align 8 + %"$Finalize_Test_Send_Helper_2_Msgs__origin_1886" = alloca [20 x i8], align 1 + store [20 x i8] %_origin, [20 x i8]* %"$Finalize_Test_Send_Helper_2_Msgs__origin_1886", align 1 + %"$Finalize_Test_Send_Helper_2_Msgs__sender_1887" = alloca [20 x i8], align 1 + store [20 x i8] %_sender, [20 x i8]* %"$Finalize_Test_Send_Helper_2_Msgs__sender_1887", align 1 + %"$x_1888" = load %Uint128, %Uint128* %x, align 8 + call void @"$Finalize_Test_Send_Helper_2_Msgs_1410"(%Uint128 %_amount, [20 x i8]* %"$Finalize_Test_Send_Helper_2_Msgs__origin_1886", [20 x i8]* %"$Finalize_Test_Send_Helper_2_Msgs__sender_1887", %Uint128 %"$x_1888"), !dbg !342 ret void } -define void @Finalize_Test_Send_2(i8* %0) !dbg !166 { +define void @Finalize_Test_Send_2(i8* %0) !dbg !343 { entry: - %"$_amount_1857" = getelementptr i8, i8* %0, i32 0 - %"$_amount_1858" = bitcast i8* %"$_amount_1857" to %Uint128* - %_amount = load %Uint128, %Uint128* %"$_amount_1858", align 8 - %"$_origin_1859" = getelementptr i8, i8* %0, i32 16 - %"$_origin_1860" = bitcast i8* %"$_origin_1859" to [20 x i8]* - %"$_sender_1861" = getelementptr i8, i8* %0, i32 36 - %"$_sender_1862" = bitcast i8* %"$_sender_1861" to [20 x i8]* - call void @"$Finalize_Test_Send_2_1835"(%Uint128 %_amount, [20 x i8]* %"$_origin_1860", [20 x i8]* %"$_sender_1862"), !dbg !167 + %"$_amount_1893" = getelementptr i8, i8* %0, i32 0 + %"$_amount_1894" = bitcast i8* %"$_amount_1893" to %Uint128* + %_amount = load %Uint128, %Uint128* %"$_amount_1894", align 8 + %"$_origin_1895" = getelementptr i8, i8* %0, i32 16 + %"$_origin_1896" = bitcast i8* %"$_origin_1895" to [20 x i8]* + %"$_sender_1897" = getelementptr i8, i8* %0, i32 36 + %"$_sender_1898" = bitcast i8* %"$_sender_1897" to [20 x i8]* + call void @"$Finalize_Test_Send_2_1868"(%Uint128 %_amount, [20 x i8]* %"$_origin_1896", [20 x i8]* %"$_sender_1898"), !dbg !344 ret void } -define internal void @"$Test_Send_3_1863"(%Uint128 %_amount, [20 x i8]* %"$_origin_1864", [20 x i8]* %"$_sender_1865") !dbg !168 { +define internal void @"$Test_Send_3_1899"(%Uint128 %_amount, [20 x i8]* %"$_origin_1900", [20 x i8]* %"$_sender_1901") !dbg !345 { entry: - %_origin = load [20 x i8], [20 x i8]* %"$_origin_1864", align 1 - %_sender = load [20 x i8], [20 x i8]* %"$_sender_1865", align 1 - %"$gasrem_1866" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1867" = icmp ugt i64 1, %"$gasrem_1866" - br i1 %"$gascmp_1867", label %"$out_of_gas_1868", label %"$have_gas_1869" - -"$out_of_gas_1868": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_1869" - -"$have_gas_1869": ; preds = %"$out_of_gas_1868", %entry - %"$consume_1870" = sub i64 %"$gasrem_1866", 1 - store i64 %"$consume_1870", i64* @_gasrem, align 8 - %"$AssertReset__origin_1871" = alloca [20 x i8], align 1 - store [20 x i8] %_origin, [20 x i8]* %"$AssertReset__origin_1871", align 1 - %"$AssertReset__sender_1872" = alloca [20 x i8], align 1 - store [20 x i8] %_sender, [20 x i8]* %"$AssertReset__sender_1872", align 1 - call void @"$AssertReset_855"(%Uint128 %_amount, [20 x i8]* %"$AssertReset__origin_1871", [20 x i8]* %"$AssertReset__sender_1872"), !dbg !169 + %"$_sender_2132" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_sender_1901", [20 x i8]** %"$_sender_2132", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_sender_2132", metadata !346, metadata !DIExpression()), !dbg !347 + %"$_origin_2131" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_origin_1900", [20 x i8]** %"$_origin_2131", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_origin_2131", metadata !348, metadata !DIExpression()), !dbg !347 + %"$_amount_2130" = alloca %Uint128, align 8 + store %Uint128 %_amount, %Uint128* %"$_amount_2130", align 8 + call void @llvm.dbg.declare(metadata %Uint128* %"$_amount_2130", metadata !349, metadata !DIExpression()), !dbg !347 + %_origin = load [20 x i8], [20 x i8]* %"$_origin_1900", align 1 + %_sender = load [20 x i8], [20 x i8]* %"$_sender_1901", align 1 + %"$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 = %entry + call void @_out_of_gas() + br label %"$have_gas_1905" + +"$have_gas_1905": ; preds = %"$out_of_gas_1904", %entry + %"$consume_1906" = sub i64 %"$gasrem_1902", 1 + store i64 %"$consume_1906", i64* @_gasrem, align 8 + %"$AssertReset__origin_1907" = alloca [20 x i8], align 1 + store [20 x i8] %_origin, [20 x i8]* %"$AssertReset__origin_1907", align 1 + %"$AssertReset__sender_1908" = alloca [20 x i8], align 1 + store [20 x i8] %_sender, [20 x i8]* %"$AssertReset__sender_1908", align 1 + call void @"$AssertReset_869"(%Uint128 %_amount, [20 x i8]* %"$AssertReset__origin_1907", [20 x i8]* %"$AssertReset__sender_1908"), !dbg !350 %s1 = alloca %String, align 8 - %"$execptr_load_1874" = load i8*, i8** @_execptr, align 8 - %"$s1_call_1875" = call i8* @_fetch_field(i8* %"$execptr_load_1874", i8* getelementptr inbounds ([14 x i8], [14 x i8]* @"$test_string_1_1873", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_String_100", i32 0, i8* null, i32 1), !dbg !170 - %"$s1_1876" = bitcast i8* %"$s1_call_1875" to %String* - %"$s1_1877" = load %String, %String* %"$s1_1876", align 8 - store %String %"$s1_1877", %String* %s1, align 8 - %"$_literal_cost_s1_1878" = alloca %String, align 8 - %"$s1_1879" = load %String, %String* %s1, align 8 - store %String %"$s1_1879", %String* %"$_literal_cost_s1_1878", align 8 - %"$$_literal_cost_s1_1878_1880" = bitcast %String* %"$_literal_cost_s1_1878" to i8* - %"$_literal_cost_call_1881" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_100", i8* %"$$_literal_cost_s1_1878_1880") - %"$gasadd_1882" = add i64 %"$_literal_cost_call_1881", 0 - %"$gasrem_1883" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1884" = icmp ugt i64 %"$gasadd_1882", %"$gasrem_1883" - br i1 %"$gascmp_1884", label %"$out_of_gas_1885", label %"$have_gas_1886" - -"$out_of_gas_1885": ; preds = %"$have_gas_1869" - call void @_out_of_gas() - br label %"$have_gas_1886" - -"$have_gas_1886": ; preds = %"$out_of_gas_1885", %"$have_gas_1869" - %"$consume_1887" = sub i64 %"$gasrem_1883", %"$gasadd_1882" - store i64 %"$consume_1887", i64* @_gasrem, align 8 - %"$gasrem_1888" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1889" = icmp ugt i64 1, %"$gasrem_1888" - br i1 %"$gascmp_1889", label %"$out_of_gas_1890", label %"$have_gas_1891" - -"$out_of_gas_1890": ; preds = %"$have_gas_1886" - call void @_out_of_gas() - br label %"$have_gas_1891" - -"$have_gas_1891": ; preds = %"$out_of_gas_1890", %"$have_gas_1886" - %"$consume_1892" = sub i64 %"$gasrem_1888", 1 - store i64 %"$consume_1892", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %String* %s1, metadata !351, metadata !DIExpression()), !dbg !352 + %"$execptr_load_1910" = load i8*, i8** @_execptr, align 8 + %"$s1_call_1911" = call i8* @_fetch_field(i8* %"$execptr_load_1910", i8* getelementptr inbounds ([14 x i8], [14 x i8]* @"$test_string_1_1909", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_String_100", i32 0, i8* null, i32 1), !dbg !352 + %"$s1_1912" = bitcast i8* %"$s1_call_1911" to %String* + %"$s1_1913" = load %String, %String* %"$s1_1912", align 8 + store %String %"$s1_1913", %String* %s1, align 8 + %"$_literal_cost_s1_1914" = alloca %String, align 8 + %"$s1_1915" = load %String, %String* %s1, align 8 + store %String %"$s1_1915", %String* %"$_literal_cost_s1_1914", align 8 + %"$$_literal_cost_s1_1914_1916" = bitcast %String* %"$_literal_cost_s1_1914" to i8* + %"$_literal_cost_call_1917" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_100", i8* %"$$_literal_cost_s1_1914_1916") + %"$gasadd_1918" = add i64 %"$_literal_cost_call_1917", 0 + %"$gasrem_1919" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1920" = icmp ugt i64 %"$gasadd_1918", %"$gasrem_1919" + br i1 %"$gascmp_1920", label %"$out_of_gas_1921", label %"$have_gas_1922" + +"$out_of_gas_1921": ; preds = %"$have_gas_1905" + call void @_out_of_gas() + br label %"$have_gas_1922" + +"$have_gas_1922": ; preds = %"$out_of_gas_1921", %"$have_gas_1905" + %"$consume_1923" = sub i64 %"$gasrem_1919", %"$gasadd_1918" + store i64 %"$consume_1923", i64* @_gasrem, align 8 + %"$gasrem_1924" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1925" = icmp ugt i64 1, %"$gasrem_1924" + br i1 %"$gascmp_1925", label %"$out_of_gas_1926", label %"$have_gas_1927" + +"$out_of_gas_1926": ; preds = %"$have_gas_1922" + call void @_out_of_gas() + br label %"$have_gas_1927" + +"$have_gas_1927": ; preds = %"$out_of_gas_1926", %"$have_gas_1922" + %"$consume_1928" = sub i64 %"$gasrem_1924", 1 + store i64 %"$consume_1928", i64* @_gasrem, align 8 %msg1 = alloca i8*, align 8 - %"$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" - -"$out_of_gas_1895": ; preds = %"$have_gas_1891" - call void @_out_of_gas() - br label %"$have_gas_1896" - -"$have_gas_1896": ; preds = %"$out_of_gas_1895", %"$have_gas_1891" - %"$consume_1897" = sub i64 %"$gasrem_1893", 1 - store i64 %"$consume_1897", i64* @_gasrem, align 8 - %"$msgobj_1898_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$msgobj_1898_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_1898_salloc_load", i64 125) - %"$msgobj_1898_salloc" = bitcast i8* %"$msgobj_1898_salloc_salloc" to [125 x i8]* - %"$msgobj_1898" = bitcast [125 x i8]* %"$msgobj_1898_salloc" to i8* - store i8 3, i8* %"$msgobj_1898", align 1 - %"$msgobj_fname_1900" = getelementptr i8, i8* %"$msgobj_1898", i32 1 - %"$msgobj_fname_1901" = bitcast i8* %"$msgobj_fname_1900" to %String* - store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_1899", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_1901", align 8 - %"$msgobj_td_1902" = getelementptr i8, i8* %"$msgobj_1898", i32 17 - %"$msgobj_td_1903" = bitcast i8* %"$msgobj_td_1902" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_114", %_TyDescrTy_Typ** %"$msgobj_td_1903", align 8 - %"$_this_address_1904" = load [20 x i8], [20 x i8]* @_cparam__this_address, align 1 - %"$msgobj_v_1905" = getelementptr i8, i8* %"$msgobj_1898", i32 25 - %"$msgobj_v_1906" = bitcast i8* %"$msgobj_v_1905" to [20 x i8]* - store [20 x i8] %"$_this_address_1904", [20 x i8]* %"$msgobj_v_1906", align 1 - %"$msgobj_fname_1908" = getelementptr i8, i8* %"$msgobj_1898", i32 45 - %"$msgobj_fname_1909" = bitcast i8* %"$msgobj_fname_1908" to %String* - store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_1907", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_1909", align 8 - %"$msgobj_td_1910" = getelementptr i8, i8* %"$msgobj_1898", i32 61 - %"$msgobj_td_1911" = bitcast i8* %"$msgobj_td_1910" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_String_100", %_TyDescrTy_Typ** %"$msgobj_td_1911", align 8 - %"$msgobj_v_1913" = getelementptr i8, i8* %"$msgobj_1898", i32 69 - %"$msgobj_v_1914" = bitcast i8* %"$msgobj_v_1913" to %String* - store %String { i8* getelementptr inbounds ([18 x i8], [18 x i8]* @"$stringlit_1912", i32 0, i32 0), i32 18 }, %String* %"$msgobj_v_1914", align 8 - %"$msgobj_fname_1916" = getelementptr i8, i8* %"$msgobj_1898", i32 85 - %"$msgobj_fname_1917" = bitcast i8* %"$msgobj_fname_1916" to %String* - store %String { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$stringlit_1915", i32 0, i32 0), i32 7 }, %String* %"$msgobj_fname_1917", align 8 - %"$msgobj_td_1918" = getelementptr i8, i8* %"$msgobj_1898", i32 101 - %"$msgobj_td_1919" = bitcast i8* %"$msgobj_td_1918" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Uint128_94", %_TyDescrTy_Typ** %"$msgobj_td_1919", align 8 - %"$msgobj_v_1920" = getelementptr i8, i8* %"$msgobj_1898", i32 109 - %"$msgobj_v_1921" = bitcast i8* %"$msgobj_v_1920" to %Uint128* - store %Uint128 zeroinitializer, %Uint128* %"$msgobj_v_1921", align 8 - store i8* %"$msgobj_1898", i8** %msg1, align 8, !dbg !171 - %"$gasrem_1923" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1924" = icmp ugt i64 1, %"$gasrem_1923" - br i1 %"$gascmp_1924", label %"$out_of_gas_1925", label %"$have_gas_1926" - -"$out_of_gas_1925": ; preds = %"$have_gas_1896" - call void @_out_of_gas() - br label %"$have_gas_1926" - -"$have_gas_1926": ; preds = %"$out_of_gas_1925", %"$have_gas_1896" - %"$consume_1927" = sub i64 %"$gasrem_1923", 1 - store i64 %"$consume_1927", i64* @_gasrem, align 8 - %msgs1 = alloca %TName_List_Message*, align 8 - %"$gasrem_1928" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1929" = icmp ugt i64 1, %"$gasrem_1928" - br i1 %"$gascmp_1929", label %"$out_of_gas_1930", label %"$have_gas_1931" - -"$out_of_gas_1930": ; preds = %"$have_gas_1926" - call void @_out_of_gas() - br label %"$have_gas_1931" - -"$have_gas_1931": ; preds = %"$out_of_gas_1930", %"$have_gas_1926" - %"$consume_1932" = sub i64 %"$gasrem_1928", 1 - store i64 %"$consume_1932", i64* @_gasrem, align 8 - %"$accounting_tests.one_msg_28" = alloca %TName_List_Message*, align 8 - %"$accounting_tests.one_msg_1933" = load { %TName_List_Message* (i8*, i8*)*, i8* }, { %TName_List_Message* (i8*, i8*)*, i8* }* @accounting_tests.one_msg, align 8 - %"$accounting_tests.one_msg_fptr_1934" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$accounting_tests.one_msg_1933", 0 - %"$accounting_tests.one_msg_envptr_1935" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$accounting_tests.one_msg_1933", 1 - %"$msg1_1936" = load i8*, i8** %msg1, align 8 - %"$accounting_tests.one_msg_call_1937" = call %TName_List_Message* %"$accounting_tests.one_msg_fptr_1934"(i8* %"$accounting_tests.one_msg_envptr_1935", i8* %"$msg1_1936"), !dbg !172 - store %TName_List_Message* %"$accounting_tests.one_msg_call_1937", %TName_List_Message** %"$accounting_tests.one_msg_28", align 8, !dbg !172 - %"$$accounting_tests.one_msg_28_1938" = load %TName_List_Message*, %TName_List_Message** %"$accounting_tests.one_msg_28", align 8 - store %TName_List_Message* %"$$accounting_tests.one_msg_28_1938", %TName_List_Message** %msgs1, align 8, !dbg !172 - %"$msgs1_1939" = load %TName_List_Message*, %TName_List_Message** %msgs1, align 8 - %"$$msgs1_1939_1940" = bitcast %TName_List_Message* %"$msgs1_1939" to i8* - %"$_literal_cost_call_1941" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_120", i8* %"$$msgs1_1939_1940") - %"$gasrem_1942" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1943" = icmp ugt i64 %"$_literal_cost_call_1941", %"$gasrem_1942" - br i1 %"$gascmp_1943", label %"$out_of_gas_1944", label %"$have_gas_1945" - -"$out_of_gas_1944": ; preds = %"$have_gas_1931" - call void @_out_of_gas() - br label %"$have_gas_1945" - -"$have_gas_1945": ; preds = %"$out_of_gas_1944", %"$have_gas_1931" - %"$consume_1946" = sub i64 %"$gasrem_1942", %"$_literal_cost_call_1941" - store i64 %"$consume_1946", i64* @_gasrem, align 8 - %"$execptr_load_1947" = load i8*, i8** @_execptr, align 8 - %"$msgs1_1948" = load %TName_List_Message*, %TName_List_Message** %msgs1, align 8 - call void @_send(i8* %"$execptr_load_1947", %_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_120", %TName_List_Message* %"$msgs1_1948"), !dbg !173 - %s2 = alloca %String, align 8 - %"$execptr_load_1950" = load i8*, i8** @_execptr, align 8 - %"$s2_call_1951" = call i8* @_fetch_field(i8* %"$execptr_load_1950", i8* getelementptr inbounds ([14 x i8], [14 x i8]* @"$test_string_2_1949", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_String_100", i32 0, i8* null, i32 1), !dbg !174 - %"$s2_1952" = bitcast i8* %"$s2_call_1951" to %String* - %"$s2_1953" = load %String, %String* %"$s2_1952", align 8 - store %String %"$s2_1953", %String* %s2, align 8 - %"$_literal_cost_s2_1954" = alloca %String, align 8 - %"$s2_1955" = load %String, %String* %s2, align 8 - store %String %"$s2_1955", %String* %"$_literal_cost_s2_1954", align 8 - %"$$_literal_cost_s2_1954_1956" = bitcast %String* %"$_literal_cost_s2_1954" to i8* - %"$_literal_cost_call_1957" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_100", i8* %"$$_literal_cost_s2_1954_1956") - %"$gasadd_1958" = add i64 %"$_literal_cost_call_1957", 0 + call void @llvm.dbg.declare(metadata i8** %msg1, metadata !353, metadata !DIExpression()), !dbg !354 + %"$gasrem_1929" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1930" = icmp ugt i64 1, %"$gasrem_1929" + br i1 %"$gascmp_1930", label %"$out_of_gas_1931", label %"$have_gas_1932" + +"$out_of_gas_1931": ; preds = %"$have_gas_1927" + call void @_out_of_gas() + br label %"$have_gas_1932" + +"$have_gas_1932": ; preds = %"$out_of_gas_1931", %"$have_gas_1927" + %"$consume_1933" = sub i64 %"$gasrem_1929", 1 + store i64 %"$consume_1933", i64* @_gasrem, align 8 + %"$msgobj_1934_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$msgobj_1934_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_1934_salloc_load", i64 125) + %"$msgobj_1934_salloc" = bitcast i8* %"$msgobj_1934_salloc_salloc" to [125 x i8]* + %"$msgobj_1934" = bitcast [125 x i8]* %"$msgobj_1934_salloc" to i8* + store i8 3, i8* %"$msgobj_1934", align 1 + %"$msgobj_fname_1936" = getelementptr i8, i8* %"$msgobj_1934", i32 1 + %"$msgobj_fname_1937" = bitcast i8* %"$msgobj_fname_1936" to %String* + store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_1935", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_1937", align 8 + %"$msgobj_td_1938" = getelementptr i8, i8* %"$msgobj_1934", i32 17 + %"$msgobj_td_1939" = bitcast i8* %"$msgobj_td_1938" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_114", %_TyDescrTy_Typ** %"$msgobj_td_1939", align 8 + %"$_this_address_1940" = load [20 x i8], [20 x i8]* @_cparam__this_address, align 1 + %"$msgobj_v_1941" = getelementptr i8, i8* %"$msgobj_1934", i32 25 + %"$msgobj_v_1942" = bitcast i8* %"$msgobj_v_1941" to [20 x i8]* + store [20 x i8] %"$_this_address_1940", [20 x i8]* %"$msgobj_v_1942", align 1 + %"$msgobj_fname_1944" = getelementptr i8, i8* %"$msgobj_1934", i32 45 + %"$msgobj_fname_1945" = bitcast i8* %"$msgobj_fname_1944" to %String* + store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_1943", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_1945", align 8 + %"$msgobj_td_1946" = getelementptr i8, i8* %"$msgobj_1934", i32 61 + %"$msgobj_td_1947" = bitcast i8* %"$msgobj_td_1946" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_String_100", %_TyDescrTy_Typ** %"$msgobj_td_1947", align 8 + %"$msgobj_v_1949" = getelementptr i8, i8* %"$msgobj_1934", i32 69 + %"$msgobj_v_1950" = bitcast i8* %"$msgobj_v_1949" to %String* + store %String { i8* getelementptr inbounds ([18 x i8], [18 x i8]* @"$stringlit_1948", i32 0, i32 0), i32 18 }, %String* %"$msgobj_v_1950", align 8 + %"$msgobj_fname_1952" = getelementptr i8, i8* %"$msgobj_1934", i32 85 + %"$msgobj_fname_1953" = bitcast i8* %"$msgobj_fname_1952" to %String* + store %String { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$stringlit_1951", i32 0, i32 0), i32 7 }, %String* %"$msgobj_fname_1953", align 8 + %"$msgobj_td_1954" = getelementptr i8, i8* %"$msgobj_1934", i32 101 + %"$msgobj_td_1955" = bitcast i8* %"$msgobj_td_1954" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Uint128_94", %_TyDescrTy_Typ** %"$msgobj_td_1955", align 8 + %"$msgobj_v_1956" = getelementptr i8, i8* %"$msgobj_1934", i32 109 + %"$msgobj_v_1957" = bitcast i8* %"$msgobj_v_1956" to %Uint128* + store %Uint128 zeroinitializer, %Uint128* %"$msgobj_v_1957", align 8 + store i8* %"$msgobj_1934", i8** %msg1, align 8, !dbg !355 %"$gasrem_1959" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1960" = icmp ugt i64 %"$gasadd_1958", %"$gasrem_1959" + %"$gascmp_1960" = icmp ugt i64 1, %"$gasrem_1959" br i1 %"$gascmp_1960", label %"$out_of_gas_1961", label %"$have_gas_1962" -"$out_of_gas_1961": ; preds = %"$have_gas_1945" +"$out_of_gas_1961": ; preds = %"$have_gas_1932" call void @_out_of_gas() br label %"$have_gas_1962" -"$have_gas_1962": ; preds = %"$out_of_gas_1961", %"$have_gas_1945" - %"$consume_1963" = sub i64 %"$gasrem_1959", %"$gasadd_1958" +"$have_gas_1962": ; preds = %"$out_of_gas_1961", %"$have_gas_1932" + %"$consume_1963" = sub i64 %"$gasrem_1959", 1 store i64 %"$consume_1963", i64* @_gasrem, align 8 + %msgs1 = alloca %TName_List_Message*, align 8 + call void @llvm.dbg.declare(metadata %TName_List_Message** %msgs1, metadata !356, metadata !DIExpression()), !dbg !357 %"$gasrem_1964" = load i64, i64* @_gasrem, align 8 %"$gascmp_1965" = icmp ugt i64 1, %"$gasrem_1964" br i1 %"$gascmp_1965", label %"$out_of_gas_1966", label %"$have_gas_1967" @@ -3812,4379 +3943,5127 @@ entry: "$have_gas_1967": ; preds = %"$out_of_gas_1966", %"$have_gas_1962" %"$consume_1968" = sub i64 %"$gasrem_1964", 1 store i64 %"$consume_1968", i64* @_gasrem, align 8 + %"$accounting_tests.one_msg_28" = alloca %TName_List_Message*, align 8 + call void @llvm.dbg.declare(metadata %TName_List_Message** %"$accounting_tests.one_msg_28", metadata !358, metadata !DIExpression()), !dbg !359 + %"$accounting_tests.one_msg_1969" = load { %TName_List_Message* (i8*, i8*)*, i8* }, { %TName_List_Message* (i8*, i8*)*, i8* }* @accounting_tests.one_msg, align 8 + %"$accounting_tests.one_msg_fptr_1970" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$accounting_tests.one_msg_1969", 0 + %"$accounting_tests.one_msg_envptr_1971" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$accounting_tests.one_msg_1969", 1 + %"$msg1_1972" = load i8*, i8** %msg1, align 8 + %"$accounting_tests.one_msg_call_1973" = call %TName_List_Message* %"$accounting_tests.one_msg_fptr_1970"(i8* %"$accounting_tests.one_msg_envptr_1971", i8* %"$msg1_1972"), !dbg !359 + store %TName_List_Message* %"$accounting_tests.one_msg_call_1973", %TName_List_Message** %"$accounting_tests.one_msg_28", align 8, !dbg !359 + %"$$accounting_tests.one_msg_28_1974" = load %TName_List_Message*, %TName_List_Message** %"$accounting_tests.one_msg_28", align 8 + store %TName_List_Message* %"$$accounting_tests.one_msg_28_1974", %TName_List_Message** %msgs1, align 8, !dbg !359 + %"$msgs1_1975" = load %TName_List_Message*, %TName_List_Message** %msgs1, align 8 + %"$$msgs1_1975_1976" = bitcast %TName_List_Message* %"$msgs1_1975" to i8* + %"$_literal_cost_call_1977" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_120", i8* %"$$msgs1_1975_1976") + %"$gasrem_1978" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1979" = icmp ugt i64 %"$_literal_cost_call_1977", %"$gasrem_1978" + br i1 %"$gascmp_1979", label %"$out_of_gas_1980", label %"$have_gas_1981" + +"$out_of_gas_1980": ; preds = %"$have_gas_1967" + call void @_out_of_gas() + br label %"$have_gas_1981" + +"$have_gas_1981": ; preds = %"$out_of_gas_1980", %"$have_gas_1967" + %"$consume_1982" = sub i64 %"$gasrem_1978", %"$_literal_cost_call_1977" + store i64 %"$consume_1982", i64* @_gasrem, align 8 + %"$execptr_load_1983" = load i8*, i8** @_execptr, align 8 + %"$msgs1_1984" = load %TName_List_Message*, %TName_List_Message** %msgs1, align 8 + call void @_send(i8* %"$execptr_load_1983", %_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_120", %TName_List_Message* %"$msgs1_1984"), !dbg !360 + %s2 = alloca %String, align 8 + call void @llvm.dbg.declare(metadata %String* %s2, metadata !361, metadata !DIExpression()), !dbg !362 + %"$execptr_load_1986" = load i8*, i8** @_execptr, align 8 + %"$s2_call_1987" = call i8* @_fetch_field(i8* %"$execptr_load_1986", i8* getelementptr inbounds ([14 x i8], [14 x i8]* @"$test_string_2_1985", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_String_100", i32 0, i8* null, i32 1), !dbg !362 + %"$s2_1988" = bitcast i8* %"$s2_call_1987" to %String* + %"$s2_1989" = load %String, %String* %"$s2_1988", align 8 + store %String %"$s2_1989", %String* %s2, align 8 + %"$_literal_cost_s2_1990" = alloca %String, align 8 + %"$s2_1991" = load %String, %String* %s2, align 8 + store %String %"$s2_1991", %String* %"$_literal_cost_s2_1990", align 8 + %"$$_literal_cost_s2_1990_1992" = bitcast %String* %"$_literal_cost_s2_1990" to i8* + %"$_literal_cost_call_1993" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_100", i8* %"$$_literal_cost_s2_1990_1992") + %"$gasadd_1994" = add i64 %"$_literal_cost_call_1993", 0 + %"$gasrem_1995" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1996" = icmp ugt i64 %"$gasadd_1994", %"$gasrem_1995" + br i1 %"$gascmp_1996", label %"$out_of_gas_1997", label %"$have_gas_1998" + +"$out_of_gas_1997": ; preds = %"$have_gas_1981" + call void @_out_of_gas() + br label %"$have_gas_1998" + +"$have_gas_1998": ; preds = %"$out_of_gas_1997", %"$have_gas_1981" + %"$consume_1999" = sub i64 %"$gasrem_1995", %"$gasadd_1994" + store i64 %"$consume_1999", i64* @_gasrem, 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 = %"$have_gas_1998" + call void @_out_of_gas() + br label %"$have_gas_2003" + +"$have_gas_2003": ; preds = %"$out_of_gas_2002", %"$have_gas_1998" + %"$consume_2004" = sub i64 %"$gasrem_2000", 1 + store i64 %"$consume_2004", i64* @_gasrem, align 8 %msg2 = alloca i8*, align 8 - %"$gasrem_1969" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1970" = icmp ugt i64 1, %"$gasrem_1969" - br i1 %"$gascmp_1970", label %"$out_of_gas_1971", label %"$have_gas_1972" - -"$out_of_gas_1971": ; preds = %"$have_gas_1967" - call void @_out_of_gas() - br label %"$have_gas_1972" - -"$have_gas_1972": ; preds = %"$out_of_gas_1971", %"$have_gas_1967" - %"$consume_1973" = sub i64 %"$gasrem_1969", 1 - store i64 %"$consume_1973", i64* @_gasrem, align 8 - %"$msgobj_1974_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$msgobj_1974_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_1974_salloc_load", i64 165) - %"$msgobj_1974_salloc" = bitcast i8* %"$msgobj_1974_salloc_salloc" to [165 x i8]* - %"$msgobj_1974" = bitcast [165 x i8]* %"$msgobj_1974_salloc" to i8* - store i8 4, i8* %"$msgobj_1974", align 1 - %"$msgobj_fname_1976" = getelementptr i8, i8* %"$msgobj_1974", i32 1 - %"$msgobj_fname_1977" = bitcast i8* %"$msgobj_fname_1976" to %String* - store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_1975", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_1977", align 8 - %"$msgobj_td_1978" = getelementptr i8, i8* %"$msgobj_1974", i32 17 - %"$msgobj_td_1979" = bitcast i8* %"$msgobj_td_1978" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_114", %_TyDescrTy_Typ** %"$msgobj_td_1979", align 8 - %"$support_contract_1980" = load [20 x i8], [20 x i8]* @_cparam_support_contract, align 1 - %"$msgobj_v_1981" = getelementptr i8, i8* %"$msgobj_1974", i32 25 - %"$msgobj_v_1982" = bitcast i8* %"$msgobj_v_1981" to [20 x i8]* - store [20 x i8] %"$support_contract_1980", [20 x i8]* %"$msgobj_v_1982", align 1 - %"$msgobj_fname_1984" = getelementptr i8, i8* %"$msgobj_1974", i32 45 - %"$msgobj_fname_1985" = bitcast i8* %"$msgobj_fname_1984" to %String* - store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_1983", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_1985", align 8 - %"$msgobj_td_1986" = getelementptr i8, i8* %"$msgobj_1974", i32 61 - %"$msgobj_td_1987" = bitcast i8* %"$msgobj_td_1986" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_String_100", %_TyDescrTy_Typ** %"$msgobj_td_1987", align 8 - %"$msgobj_v_1989" = getelementptr i8, i8* %"$msgobj_1974", i32 69 - %"$msgobj_v_1990" = bitcast i8* %"$msgobj_v_1989" to %String* - store %String { i8* getelementptr inbounds ([11 x i8], [11 x i8]* @"$stringlit_1988", i32 0, i32 0), i32 11 }, %String* %"$msgobj_v_1990", align 8 - %"$msgobj_fname_1992" = getelementptr i8, i8* %"$msgobj_1974", i32 85 - %"$msgobj_fname_1993" = bitcast i8* %"$msgobj_fname_1992" to %String* - store %String { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$stringlit_1991", i32 0, i32 0), i32 7 }, %String* %"$msgobj_fname_1993", align 8 - %"$msgobj_td_1994" = getelementptr i8, i8* %"$msgobj_1974", i32 101 - %"$msgobj_td_1995" = bitcast i8* %"$msgobj_td_1994" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Uint128_94", %_TyDescrTy_Typ** %"$msgobj_td_1995", align 8 - %"$msgobj_v_1996" = getelementptr i8, i8* %"$msgobj_1974", i32 109 - %"$msgobj_v_1997" = bitcast i8* %"$msgobj_v_1996" to %Uint128* - store %Uint128 zeroinitializer, %Uint128* %"$msgobj_v_1997", align 8 - %"$msgobj_fname_1999" = getelementptr i8, i8* %"$msgobj_1974", i32 125 - %"$msgobj_fname_2000" = bitcast i8* %"$msgobj_fname_1999" to %String* - store %String { i8* getelementptr inbounds ([1 x i8], [1 x i8]* @"$stringlit_1998", i32 0, i32 0), i32 1 }, %String* %"$msgobj_fname_2000", align 8 - %"$msgobj_td_2001" = getelementptr i8, i8* %"$msgobj_1974", i32 141 - %"$msgobj_td_2002" = bitcast i8* %"$msgobj_td_2001" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_String_100", %_TyDescrTy_Typ** %"$msgobj_td_2002", align 8 - %"$s2_2003" = load %String, %String* %s2, align 8 - %"$msgobj_v_2004" = getelementptr i8, i8* %"$msgobj_1974", i32 149 - %"$msgobj_v_2005" = bitcast i8* %"$msgobj_v_2004" to %String* - store %String %"$s2_2003", %String* %"$msgobj_v_2005", align 8 - store i8* %"$msgobj_1974", i8** %msg2, align 8, !dbg !175 - %"$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_2009": ; preds = %"$have_gas_1972" - call void @_out_of_gas() - br label %"$have_gas_2010" - -"$have_gas_2010": ; preds = %"$out_of_gas_2009", %"$have_gas_1972" - %"$consume_2011" = sub i64 %"$gasrem_2007", 1 - store i64 %"$consume_2011", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata i8** %msg2, metadata !363, metadata !DIExpression()), !dbg !364 + %"$gasrem_2005" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2006" = icmp ugt i64 1, %"$gasrem_2005" + br i1 %"$gascmp_2006", label %"$out_of_gas_2007", label %"$have_gas_2008" + +"$out_of_gas_2007": ; preds = %"$have_gas_2003" + call void @_out_of_gas() + br label %"$have_gas_2008" + +"$have_gas_2008": ; preds = %"$out_of_gas_2007", %"$have_gas_2003" + %"$consume_2009" = sub i64 %"$gasrem_2005", 1 + store i64 %"$consume_2009", i64* @_gasrem, align 8 + %"$msgobj_2010_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$msgobj_2010_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_2010_salloc_load", i64 165) + %"$msgobj_2010_salloc" = bitcast i8* %"$msgobj_2010_salloc_salloc" to [165 x i8]* + %"$msgobj_2010" = bitcast [165 x i8]* %"$msgobj_2010_salloc" to i8* + store i8 4, i8* %"$msgobj_2010", align 1 + %"$msgobj_fname_2012" = getelementptr i8, i8* %"$msgobj_2010", i32 1 + %"$msgobj_fname_2013" = bitcast i8* %"$msgobj_fname_2012" to %String* + store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_2011", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_2013", align 8 + %"$msgobj_td_2014" = getelementptr i8, i8* %"$msgobj_2010", i32 17 + %"$msgobj_td_2015" = bitcast i8* %"$msgobj_td_2014" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_114", %_TyDescrTy_Typ** %"$msgobj_td_2015", align 8 + %"$support_contract_2016" = load [20 x i8], [20 x i8]* @_cparam_support_contract, align 1 + %"$msgobj_v_2017" = getelementptr i8, i8* %"$msgobj_2010", i32 25 + %"$msgobj_v_2018" = bitcast i8* %"$msgobj_v_2017" to [20 x i8]* + store [20 x i8] %"$support_contract_2016", [20 x i8]* %"$msgobj_v_2018", align 1 + %"$msgobj_fname_2020" = getelementptr i8, i8* %"$msgobj_2010", i32 45 + %"$msgobj_fname_2021" = bitcast i8* %"$msgobj_fname_2020" to %String* + store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_2019", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_2021", align 8 + %"$msgobj_td_2022" = getelementptr i8, i8* %"$msgobj_2010", i32 61 + %"$msgobj_td_2023" = bitcast i8* %"$msgobj_td_2022" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_String_100", %_TyDescrTy_Typ** %"$msgobj_td_2023", align 8 + %"$msgobj_v_2025" = getelementptr i8, i8* %"$msgobj_2010", i32 69 + %"$msgobj_v_2026" = bitcast i8* %"$msgobj_v_2025" to %String* + store %String { i8* getelementptr inbounds ([11 x i8], [11 x i8]* @"$stringlit_2024", i32 0, i32 0), i32 11 }, %String* %"$msgobj_v_2026", align 8 + %"$msgobj_fname_2028" = getelementptr i8, i8* %"$msgobj_2010", i32 85 + %"$msgobj_fname_2029" = bitcast i8* %"$msgobj_fname_2028" to %String* + store %String { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$stringlit_2027", i32 0, i32 0), i32 7 }, %String* %"$msgobj_fname_2029", align 8 + %"$msgobj_td_2030" = getelementptr i8, i8* %"$msgobj_2010", i32 101 + %"$msgobj_td_2031" = bitcast i8* %"$msgobj_td_2030" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Uint128_94", %_TyDescrTy_Typ** %"$msgobj_td_2031", align 8 + %"$msgobj_v_2032" = getelementptr i8, i8* %"$msgobj_2010", i32 109 + %"$msgobj_v_2033" = bitcast i8* %"$msgobj_v_2032" to %Uint128* + store %Uint128 zeroinitializer, %Uint128* %"$msgobj_v_2033", align 8 + %"$msgobj_fname_2035" = getelementptr i8, i8* %"$msgobj_2010", i32 125 + %"$msgobj_fname_2036" = bitcast i8* %"$msgobj_fname_2035" to %String* + store %String { i8* getelementptr inbounds ([1 x i8], [1 x i8]* @"$stringlit_2034", i32 0, i32 0), i32 1 }, %String* %"$msgobj_fname_2036", align 8 + %"$msgobj_td_2037" = getelementptr i8, i8* %"$msgobj_2010", i32 141 + %"$msgobj_td_2038" = bitcast i8* %"$msgobj_td_2037" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_String_100", %_TyDescrTy_Typ** %"$msgobj_td_2038", align 8 + %"$s2_2039" = load %String, %String* %s2, align 8 + %"$msgobj_v_2040" = getelementptr i8, i8* %"$msgobj_2010", i32 149 + %"$msgobj_v_2041" = bitcast i8* %"$msgobj_v_2040" to %String* + store %String %"$s2_2039", %String* %"$msgobj_v_2041", align 8 + store i8* %"$msgobj_2010", i8** %msg2, align 8, !dbg !365 + %"$gasrem_2043" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2044" = icmp ugt i64 1, %"$gasrem_2043" + br i1 %"$gascmp_2044", label %"$out_of_gas_2045", label %"$have_gas_2046" + +"$out_of_gas_2045": ; preds = %"$have_gas_2008" + call void @_out_of_gas() + br label %"$have_gas_2046" + +"$have_gas_2046": ; preds = %"$out_of_gas_2045", %"$have_gas_2008" + %"$consume_2047" = sub i64 %"$gasrem_2043", 1 + store i64 %"$consume_2047", i64* @_gasrem, align 8 %msgs2 = alloca %TName_List_Message*, align 8 - %"$gasrem_2012" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2013" = icmp ugt i64 1, %"$gasrem_2012" - br i1 %"$gascmp_2013", label %"$out_of_gas_2014", label %"$have_gas_2015" + call void @llvm.dbg.declare(metadata %TName_List_Message** %msgs2, metadata !366, metadata !DIExpression()), !dbg !367 + %"$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_2014": ; preds = %"$have_gas_2010" +"$out_of_gas_2050": ; preds = %"$have_gas_2046" call void @_out_of_gas() - br label %"$have_gas_2015" + br label %"$have_gas_2051" -"$have_gas_2015": ; preds = %"$out_of_gas_2014", %"$have_gas_2010" - %"$consume_2016" = sub i64 %"$gasrem_2012", 1 - store i64 %"$consume_2016", i64* @_gasrem, align 8 +"$have_gas_2051": ; preds = %"$out_of_gas_2050", %"$have_gas_2046" + %"$consume_2052" = sub i64 %"$gasrem_2048", 1 + store i64 %"$consume_2052", i64* @_gasrem, align 8 %"$accounting_tests.one_msg_27" = alloca %TName_List_Message*, align 8 - %"$accounting_tests.one_msg_2017" = load { %TName_List_Message* (i8*, i8*)*, i8* }, { %TName_List_Message* (i8*, i8*)*, i8* }* @accounting_tests.one_msg, align 8 - %"$accounting_tests.one_msg_fptr_2018" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$accounting_tests.one_msg_2017", 0 - %"$accounting_tests.one_msg_envptr_2019" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$accounting_tests.one_msg_2017", 1 - %"$msg2_2020" = load i8*, i8** %msg2, align 8 - %"$accounting_tests.one_msg_call_2021" = call %TName_List_Message* %"$accounting_tests.one_msg_fptr_2018"(i8* %"$accounting_tests.one_msg_envptr_2019", i8* %"$msg2_2020"), !dbg !176 - store %TName_List_Message* %"$accounting_tests.one_msg_call_2021", %TName_List_Message** %"$accounting_tests.one_msg_27", align 8, !dbg !176 - %"$$accounting_tests.one_msg_27_2022" = load %TName_List_Message*, %TName_List_Message** %"$accounting_tests.one_msg_27", align 8 - store %TName_List_Message* %"$$accounting_tests.one_msg_27_2022", %TName_List_Message** %msgs2, align 8, !dbg !176 - %"$msgs2_2023" = load %TName_List_Message*, %TName_List_Message** %msgs2, align 8 - %"$$msgs2_2023_2024" = bitcast %TName_List_Message* %"$msgs2_2023" to i8* - %"$_literal_cost_call_2025" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_120", i8* %"$$msgs2_2023_2024") - %"$gasrem_2026" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2027" = icmp ugt i64 %"$_literal_cost_call_2025", %"$gasrem_2026" - br i1 %"$gascmp_2027", label %"$out_of_gas_2028", label %"$have_gas_2029" - -"$out_of_gas_2028": ; preds = %"$have_gas_2015" - call void @_out_of_gas() - br label %"$have_gas_2029" - -"$have_gas_2029": ; preds = %"$out_of_gas_2028", %"$have_gas_2015" - %"$consume_2030" = sub i64 %"$gasrem_2026", %"$_literal_cost_call_2025" - store i64 %"$consume_2030", i64* @_gasrem, align 8 - %"$execptr_load_2031" = load i8*, i8** @_execptr, align 8 - %"$msgs2_2032" = load %TName_List_Message*, %TName_List_Message** %msgs2, align 8 - call void @_send(i8* %"$execptr_load_2031", %_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_120", %TName_List_Message* %"$msgs2_2032"), !dbg !177 - %"$gasrem_2033" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2034" = icmp ugt i64 1, %"$gasrem_2033" - br i1 %"$gascmp_2034", label %"$out_of_gas_2035", label %"$have_gas_2036" - -"$out_of_gas_2035": ; preds = %"$have_gas_2029" - call void @_out_of_gas() - br label %"$have_gas_2036" - -"$have_gas_2036": ; preds = %"$out_of_gas_2035", %"$have_gas_2029" - %"$consume_2037" = sub i64 %"$gasrem_2033", 1 - store i64 %"$consume_2037", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_List_Message** %"$accounting_tests.one_msg_27", metadata !368, metadata !DIExpression()), !dbg !369 + %"$accounting_tests.one_msg_2053" = load { %TName_List_Message* (i8*, i8*)*, i8* }, { %TName_List_Message* (i8*, i8*)*, i8* }* @accounting_tests.one_msg, align 8 + %"$accounting_tests.one_msg_fptr_2054" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$accounting_tests.one_msg_2053", 0 + %"$accounting_tests.one_msg_envptr_2055" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$accounting_tests.one_msg_2053", 1 + %"$msg2_2056" = load i8*, i8** %msg2, align 8 + %"$accounting_tests.one_msg_call_2057" = call %TName_List_Message* %"$accounting_tests.one_msg_fptr_2054"(i8* %"$accounting_tests.one_msg_envptr_2055", i8* %"$msg2_2056"), !dbg !369 + store %TName_List_Message* %"$accounting_tests.one_msg_call_2057", %TName_List_Message** %"$accounting_tests.one_msg_27", align 8, !dbg !369 + %"$$accounting_tests.one_msg_27_2058" = load %TName_List_Message*, %TName_List_Message** %"$accounting_tests.one_msg_27", align 8 + store %TName_List_Message* %"$$accounting_tests.one_msg_27_2058", %TName_List_Message** %msgs2, align 8, !dbg !369 + %"$msgs2_2059" = load %TName_List_Message*, %TName_List_Message** %msgs2, align 8 + %"$$msgs2_2059_2060" = bitcast %TName_List_Message* %"$msgs2_2059" to i8* + %"$_literal_cost_call_2061" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_120", i8* %"$$msgs2_2059_2060") + %"$gasrem_2062" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2063" = icmp ugt i64 %"$_literal_cost_call_2061", %"$gasrem_2062" + br i1 %"$gascmp_2063", label %"$out_of_gas_2064", label %"$have_gas_2065" + +"$out_of_gas_2064": ; preds = %"$have_gas_2051" + call void @_out_of_gas() + br label %"$have_gas_2065" + +"$have_gas_2065": ; preds = %"$out_of_gas_2064", %"$have_gas_2051" + %"$consume_2066" = sub i64 %"$gasrem_2062", %"$_literal_cost_call_2061" + store i64 %"$consume_2066", i64* @_gasrem, align 8 + %"$execptr_load_2067" = load i8*, i8** @_execptr, align 8 + %"$msgs2_2068" = load %TName_List_Message*, %TName_List_Message** %msgs2, align 8 + call void @_send(i8* %"$execptr_load_2067", %_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_120", %TName_List_Message* %"$msgs2_2068"), !dbg !370 + %"$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 = %"$have_gas_2065" + call void @_out_of_gas() + br label %"$have_gas_2072" + +"$have_gas_2072": ; preds = %"$out_of_gas_2071", %"$have_gas_2065" + %"$consume_2073" = sub i64 %"$gasrem_2069", 1 + store i64 %"$consume_2073", i64* @_gasrem, align 8 %msg_final = alloca i8*, align 8 - %"$gasrem_2038" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2039" = icmp ugt i64 1, %"$gasrem_2038" - br i1 %"$gascmp_2039", label %"$out_of_gas_2040", label %"$have_gas_2041" - -"$out_of_gas_2040": ; preds = %"$have_gas_2036" - call void @_out_of_gas() - br label %"$have_gas_2041" - -"$have_gas_2041": ; preds = %"$out_of_gas_2040", %"$have_gas_2036" - %"$consume_2042" = sub i64 %"$gasrem_2038", 1 - store i64 %"$consume_2042", i64* @_gasrem, align 8 - %"$msgobj_2043_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$msgobj_2043_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_2043_salloc_load", i64 125) - %"$msgobj_2043_salloc" = bitcast i8* %"$msgobj_2043_salloc_salloc" to [125 x i8]* - %"$msgobj_2043" = bitcast [125 x i8]* %"$msgobj_2043_salloc" to i8* - store i8 3, i8* %"$msgobj_2043", align 1 - %"$msgobj_fname_2045" = getelementptr i8, i8* %"$msgobj_2043", i32 1 - %"$msgobj_fname_2046" = bitcast i8* %"$msgobj_fname_2045" to %String* - store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_2044", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_2046", align 8 - %"$msgobj_td_2047" = getelementptr i8, i8* %"$msgobj_2043", i32 17 - %"$msgobj_td_2048" = bitcast i8* %"$msgobj_td_2047" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_114", %_TyDescrTy_Typ** %"$msgobj_td_2048", align 8 - %"$_this_address_2049" = load [20 x i8], [20 x i8]* @_cparam__this_address, align 1 - %"$msgobj_v_2050" = getelementptr i8, i8* %"$msgobj_2043", i32 25 - %"$msgobj_v_2051" = bitcast i8* %"$msgobj_v_2050" to [20 x i8]* - store [20 x i8] %"$_this_address_2049", [20 x i8]* %"$msgobj_v_2051", align 1 - %"$msgobj_fname_2053" = getelementptr i8, i8* %"$msgobj_2043", i32 45 - %"$msgobj_fname_2054" = bitcast i8* %"$msgobj_fname_2053" to %String* - store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_2052", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_2054", align 8 - %"$msgobj_td_2055" = getelementptr i8, i8* %"$msgobj_2043", i32 61 - %"$msgobj_td_2056" = bitcast i8* %"$msgobj_td_2055" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_String_100", %_TyDescrTy_Typ** %"$msgobj_td_2056", align 8 - %"$msgobj_v_2058" = getelementptr i8, i8* %"$msgobj_2043", i32 69 - %"$msgobj_v_2059" = bitcast i8* %"$msgobj_v_2058" to %String* - store %String { i8* getelementptr inbounds ([20 x i8], [20 x i8]* @"$stringlit_2057", i32 0, i32 0), i32 20 }, %String* %"$msgobj_v_2059", align 8 - %"$msgobj_fname_2061" = getelementptr i8, i8* %"$msgobj_2043", i32 85 - %"$msgobj_fname_2062" = bitcast i8* %"$msgobj_fname_2061" to %String* - store %String { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$stringlit_2060", i32 0, i32 0), i32 7 }, %String* %"$msgobj_fname_2062", align 8 - %"$msgobj_td_2063" = getelementptr i8, i8* %"$msgobj_2043", i32 101 - %"$msgobj_td_2064" = bitcast i8* %"$msgobj_td_2063" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Uint128_94", %_TyDescrTy_Typ** %"$msgobj_td_2064", align 8 - %"$msgobj_v_2065" = getelementptr i8, i8* %"$msgobj_2043", i32 109 - %"$msgobj_v_2066" = bitcast i8* %"$msgobj_v_2065" to %Uint128* - store %Uint128 zeroinitializer, %Uint128* %"$msgobj_v_2066", align 8 - store i8* %"$msgobj_2043", i8** %msg_final, align 8, !dbg !178 - %"$gasrem_2068" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2069" = icmp ugt i64 1, %"$gasrem_2068" - br i1 %"$gascmp_2069", label %"$out_of_gas_2070", label %"$have_gas_2071" - -"$out_of_gas_2070": ; preds = %"$have_gas_2041" - call void @_out_of_gas() - br label %"$have_gas_2071" - -"$have_gas_2071": ; preds = %"$out_of_gas_2070", %"$have_gas_2041" - %"$consume_2072" = sub i64 %"$gasrem_2068", 1 - store i64 %"$consume_2072", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata i8** %msg_final, metadata !371, metadata !DIExpression()), !dbg !372 + %"$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 + %"$msgobj_2079_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$msgobj_2079_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_2079_salloc_load", i64 125) + %"$msgobj_2079_salloc" = bitcast i8* %"$msgobj_2079_salloc_salloc" to [125 x i8]* + %"$msgobj_2079" = bitcast [125 x i8]* %"$msgobj_2079_salloc" to i8* + store i8 3, i8* %"$msgobj_2079", align 1 + %"$msgobj_fname_2081" = getelementptr i8, i8* %"$msgobj_2079", i32 1 + %"$msgobj_fname_2082" = bitcast i8* %"$msgobj_fname_2081" to %String* + store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_2080", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_2082", align 8 + %"$msgobj_td_2083" = getelementptr i8, i8* %"$msgobj_2079", i32 17 + %"$msgobj_td_2084" = bitcast i8* %"$msgobj_td_2083" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_114", %_TyDescrTy_Typ** %"$msgobj_td_2084", align 8 + %"$_this_address_2085" = load [20 x i8], [20 x i8]* @_cparam__this_address, align 1 + %"$msgobj_v_2086" = getelementptr i8, i8* %"$msgobj_2079", i32 25 + %"$msgobj_v_2087" = bitcast i8* %"$msgobj_v_2086" to [20 x i8]* + store [20 x i8] %"$_this_address_2085", [20 x i8]* %"$msgobj_v_2087", align 1 + %"$msgobj_fname_2089" = getelementptr i8, i8* %"$msgobj_2079", i32 45 + %"$msgobj_fname_2090" = bitcast i8* %"$msgobj_fname_2089" to %String* + store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_2088", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_2090", align 8 + %"$msgobj_td_2091" = getelementptr i8, i8* %"$msgobj_2079", i32 61 + %"$msgobj_td_2092" = bitcast i8* %"$msgobj_td_2091" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_String_100", %_TyDescrTy_Typ** %"$msgobj_td_2092", align 8 + %"$msgobj_v_2094" = getelementptr i8, i8* %"$msgobj_2079", i32 69 + %"$msgobj_v_2095" = bitcast i8* %"$msgobj_v_2094" to %String* + store %String { i8* getelementptr inbounds ([20 x i8], [20 x i8]* @"$stringlit_2093", i32 0, i32 0), i32 20 }, %String* %"$msgobj_v_2095", align 8 + %"$msgobj_fname_2097" = getelementptr i8, i8* %"$msgobj_2079", i32 85 + %"$msgobj_fname_2098" = bitcast i8* %"$msgobj_fname_2097" to %String* + store %String { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$stringlit_2096", i32 0, i32 0), i32 7 }, %String* %"$msgobj_fname_2098", align 8 + %"$msgobj_td_2099" = getelementptr i8, i8* %"$msgobj_2079", i32 101 + %"$msgobj_td_2100" = bitcast i8* %"$msgobj_td_2099" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Uint128_94", %_TyDescrTy_Typ** %"$msgobj_td_2100", align 8 + %"$msgobj_v_2101" = getelementptr i8, i8* %"$msgobj_2079", i32 109 + %"$msgobj_v_2102" = bitcast i8* %"$msgobj_v_2101" to %Uint128* + store %Uint128 zeroinitializer, %Uint128* %"$msgobj_v_2102", align 8 + store i8* %"$msgobj_2079", i8** %msg_final, align 8, !dbg !373 + %"$gasrem_2104" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2105" = icmp ugt i64 1, %"$gasrem_2104" + br i1 %"$gascmp_2105", label %"$out_of_gas_2106", label %"$have_gas_2107" + +"$out_of_gas_2106": ; preds = %"$have_gas_2077" + call void @_out_of_gas() + br label %"$have_gas_2107" + +"$have_gas_2107": ; preds = %"$out_of_gas_2106", %"$have_gas_2077" + %"$consume_2108" = sub i64 %"$gasrem_2104", 1 + store i64 %"$consume_2108", i64* @_gasrem, align 8 %msgs_final = alloca %TName_List_Message*, align 8 - %"$gasrem_2073" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2074" = icmp ugt i64 1, %"$gasrem_2073" - br i1 %"$gascmp_2074", label %"$out_of_gas_2075", label %"$have_gas_2076" + call void @llvm.dbg.declare(metadata %TName_List_Message** %msgs_final, metadata !374, metadata !DIExpression()), !dbg !375 + %"$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_2075": ; preds = %"$have_gas_2071" +"$out_of_gas_2111": ; preds = %"$have_gas_2107" call void @_out_of_gas() - br label %"$have_gas_2076" + br label %"$have_gas_2112" -"$have_gas_2076": ; preds = %"$out_of_gas_2075", %"$have_gas_2071" - %"$consume_2077" = sub i64 %"$gasrem_2073", 1 - store i64 %"$consume_2077", i64* @_gasrem, align 8 +"$have_gas_2112": ; preds = %"$out_of_gas_2111", %"$have_gas_2107" + %"$consume_2113" = sub i64 %"$gasrem_2109", 1 + store i64 %"$consume_2113", i64* @_gasrem, align 8 %"$accounting_tests.one_msg_26" = alloca %TName_List_Message*, align 8 - %"$accounting_tests.one_msg_2078" = load { %TName_List_Message* (i8*, i8*)*, i8* }, { %TName_List_Message* (i8*, i8*)*, i8* }* @accounting_tests.one_msg, align 8 - %"$accounting_tests.one_msg_fptr_2079" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$accounting_tests.one_msg_2078", 0 - %"$accounting_tests.one_msg_envptr_2080" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$accounting_tests.one_msg_2078", 1 - %"$msg_final_2081" = load i8*, i8** %msg_final, align 8 - %"$accounting_tests.one_msg_call_2082" = call %TName_List_Message* %"$accounting_tests.one_msg_fptr_2079"(i8* %"$accounting_tests.one_msg_envptr_2080", i8* %"$msg_final_2081"), !dbg !179 - store %TName_List_Message* %"$accounting_tests.one_msg_call_2082", %TName_List_Message** %"$accounting_tests.one_msg_26", align 8, !dbg !179 - %"$$accounting_tests.one_msg_26_2083" = load %TName_List_Message*, %TName_List_Message** %"$accounting_tests.one_msg_26", align 8 - store %TName_List_Message* %"$$accounting_tests.one_msg_26_2083", %TName_List_Message** %msgs_final, align 8, !dbg !179 - %"$msgs_final_2084" = load %TName_List_Message*, %TName_List_Message** %msgs_final, align 8 - %"$$msgs_final_2084_2085" = bitcast %TName_List_Message* %"$msgs_final_2084" to i8* - %"$_literal_cost_call_2086" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_120", i8* %"$$msgs_final_2084_2085") - %"$gasrem_2087" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2088" = icmp ugt i64 %"$_literal_cost_call_2086", %"$gasrem_2087" - br i1 %"$gascmp_2088", label %"$out_of_gas_2089", label %"$have_gas_2090" - -"$out_of_gas_2089": ; preds = %"$have_gas_2076" - call void @_out_of_gas() - br label %"$have_gas_2090" - -"$have_gas_2090": ; preds = %"$out_of_gas_2089", %"$have_gas_2076" - %"$consume_2091" = sub i64 %"$gasrem_2087", %"$_literal_cost_call_2086" - store i64 %"$consume_2091", i64* @_gasrem, align 8 - %"$execptr_load_2092" = load i8*, i8** @_execptr, align 8 - %"$msgs_final_2093" = load %TName_List_Message*, %TName_List_Message** %msgs_final, align 8 - call void @_send(i8* %"$execptr_load_2092", %_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_120", %TName_List_Message* %"$msgs_final_2093"), !dbg !180 + call void @llvm.dbg.declare(metadata %TName_List_Message** %"$accounting_tests.one_msg_26", metadata !376, metadata !DIExpression()), !dbg !377 + %"$accounting_tests.one_msg_2114" = load { %TName_List_Message* (i8*, i8*)*, i8* }, { %TName_List_Message* (i8*, i8*)*, i8* }* @accounting_tests.one_msg, align 8 + %"$accounting_tests.one_msg_fptr_2115" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$accounting_tests.one_msg_2114", 0 + %"$accounting_tests.one_msg_envptr_2116" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$accounting_tests.one_msg_2114", 1 + %"$msg_final_2117" = load i8*, i8** %msg_final, align 8 + %"$accounting_tests.one_msg_call_2118" = call %TName_List_Message* %"$accounting_tests.one_msg_fptr_2115"(i8* %"$accounting_tests.one_msg_envptr_2116", i8* %"$msg_final_2117"), !dbg !377 + store %TName_List_Message* %"$accounting_tests.one_msg_call_2118", %TName_List_Message** %"$accounting_tests.one_msg_26", align 8, !dbg !377 + %"$$accounting_tests.one_msg_26_2119" = load %TName_List_Message*, %TName_List_Message** %"$accounting_tests.one_msg_26", align 8 + store %TName_List_Message* %"$$accounting_tests.one_msg_26_2119", %TName_List_Message** %msgs_final, align 8, !dbg !377 + %"$msgs_final_2120" = load %TName_List_Message*, %TName_List_Message** %msgs_final, align 8 + %"$$msgs_final_2120_2121" = bitcast %TName_List_Message* %"$msgs_final_2120" to i8* + %"$_literal_cost_call_2122" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_120", i8* %"$$msgs_final_2120_2121") + %"$gasrem_2123" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2124" = icmp ugt i64 %"$_literal_cost_call_2122", %"$gasrem_2123" + br i1 %"$gascmp_2124", label %"$out_of_gas_2125", label %"$have_gas_2126" + +"$out_of_gas_2125": ; preds = %"$have_gas_2112" + call void @_out_of_gas() + br label %"$have_gas_2126" + +"$have_gas_2126": ; preds = %"$out_of_gas_2125", %"$have_gas_2112" + %"$consume_2127" = sub i64 %"$gasrem_2123", %"$_literal_cost_call_2122" + store i64 %"$consume_2127", i64* @_gasrem, align 8 + %"$execptr_load_2128" = load i8*, i8** @_execptr, align 8 + %"$msgs_final_2129" = load %TName_List_Message*, %TName_List_Message** %msgs_final, align 8 + call void @_send(i8* %"$execptr_load_2128", %_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_120", %TName_List_Message* %"$msgs_final_2129"), !dbg !378 ret void } -define void @Test_Send_3(i8* %0) !dbg !181 { +define void @Test_Send_3(i8* %0) !dbg !379 { entry: - %"$_amount_2095" = getelementptr i8, i8* %0, i32 0 - %"$_amount_2096" = bitcast i8* %"$_amount_2095" to %Uint128* - %_amount = load %Uint128, %Uint128* %"$_amount_2096", align 8 - %"$_origin_2097" = getelementptr i8, i8* %0, i32 16 - %"$_origin_2098" = bitcast i8* %"$_origin_2097" to [20 x i8]* - %"$_sender_2099" = getelementptr i8, i8* %0, i32 36 - %"$_sender_2100" = bitcast i8* %"$_sender_2099" to [20 x i8]* - call void @"$Test_Send_3_1863"(%Uint128 %_amount, [20 x i8]* %"$_origin_2098", [20 x i8]* %"$_sender_2100"), !dbg !182 + %"$_amount_2134" = getelementptr i8, i8* %0, i32 0 + %"$_amount_2135" = bitcast i8* %"$_amount_2134" to %Uint128* + %_amount = load %Uint128, %Uint128* %"$_amount_2135", align 8 + %"$_origin_2136" = getelementptr i8, i8* %0, i32 16 + %"$_origin_2137" = bitcast i8* %"$_origin_2136" to [20 x i8]* + %"$_sender_2138" = getelementptr i8, i8* %0, i32 36 + %"$_sender_2139" = bitcast i8* %"$_sender_2138" to [20 x i8]* + call void @"$Test_Send_3_1899"(%Uint128 %_amount, [20 x i8]* %"$_origin_2137", [20 x i8]* %"$_sender_2139"), !dbg !380 ret void } -define internal void @"$Test_Send_3_Helper_2101"(%Uint128 %_amount, [20 x i8]* %"$_origin_2102", [20 x i8]* %"$_sender_2103") !dbg !183 { +define internal void @"$Test_Send_3_Helper_2140"(%Uint128 %_amount, [20 x i8]* %"$_origin_2141", [20 x i8]* %"$_sender_2142") !dbg !381 { entry: - %_origin = load [20 x i8], [20 x i8]* %"$_origin_2102", align 1 - %_sender = load [20 x i8], [20 x i8]* %"$_sender_2103", align 1 + %"$_sender_2229" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_sender_2142", [20 x i8]** %"$_sender_2229", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_sender_2229", metadata !382, metadata !DIExpression()), !dbg !383 + %"$_origin_2228" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_origin_2141", [20 x i8]** %"$_origin_2228", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_origin_2228", metadata !384, metadata !DIExpression()), !dbg !383 + %"$_amount_2227" = alloca %Uint128, align 8 + store %Uint128 %_amount, %Uint128* %"$_amount_2227", align 8 + call void @llvm.dbg.declare(metadata %Uint128* %"$_amount_2227", metadata !385, metadata !DIExpression()), !dbg !383 + %_origin = load [20 x i8], [20 x i8]* %"$_origin_2141", align 1 + %_sender = load [20 x i8], [20 x i8]* %"$_sender_2142", align 1 %s1 = alloca %String, align 8 - %"$execptr_load_2105" = load i8*, i8** @_execptr, align 8 - %"$s1_call_2106" = call i8* @_fetch_field(i8* %"$execptr_load_2105", i8* getelementptr inbounds ([14 x i8], [14 x i8]* @"$test_string_1_2104", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_String_100", i32 0, i8* null, i32 1), !dbg !184 - %"$s1_2107" = bitcast i8* %"$s1_call_2106" to %String* - %"$s1_2108" = load %String, %String* %"$s1_2107", align 8 - store %String %"$s1_2108", %String* %s1, align 8 - %"$_literal_cost_s1_2109" = alloca %String, align 8 - %"$s1_2110" = load %String, %String* %s1, align 8 - store %String %"$s1_2110", %String* %"$_literal_cost_s1_2109", align 8 - %"$$_literal_cost_s1_2109_2111" = bitcast %String* %"$_literal_cost_s1_2109" to i8* - %"$_literal_cost_call_2112" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_100", i8* %"$$_literal_cost_s1_2109_2111") - %"$gasadd_2113" = add i64 %"$_literal_cost_call_2112", 0 - %"$gasrem_2114" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2115" = icmp ugt i64 %"$gasadd_2113", %"$gasrem_2114" - br i1 %"$gascmp_2115", label %"$out_of_gas_2116", label %"$have_gas_2117" - -"$out_of_gas_2116": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_2117" - -"$have_gas_2117": ; preds = %"$out_of_gas_2116", %entry - %"$consume_2118" = sub i64 %"$gasrem_2114", %"$gasadd_2113" - store i64 %"$consume_2118", i64* @_gasrem, align 8 - %"$gasrem_2119" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2120" = icmp ugt i64 1, %"$gasrem_2119" - br i1 %"$gascmp_2120", label %"$out_of_gas_2121", label %"$have_gas_2122" - -"$out_of_gas_2121": ; preds = %"$have_gas_2117" - call void @_out_of_gas() - br label %"$have_gas_2122" - -"$have_gas_2122": ; preds = %"$out_of_gas_2121", %"$have_gas_2117" - %"$consume_2123" = sub i64 %"$gasrem_2119", 1 - store i64 %"$consume_2123", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %String* %s1, metadata !386, metadata !DIExpression()), !dbg !387 + %"$execptr_load_2144" = load i8*, i8** @_execptr, align 8 + %"$s1_call_2145" = call i8* @_fetch_field(i8* %"$execptr_load_2144", i8* getelementptr inbounds ([14 x i8], [14 x i8]* @"$test_string_1_2143", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_String_100", i32 0, i8* null, i32 1), !dbg !387 + %"$s1_2146" = bitcast i8* %"$s1_call_2145" to %String* + %"$s1_2147" = load %String, %String* %"$s1_2146", align 8 + store %String %"$s1_2147", %String* %s1, align 8 + %"$_literal_cost_s1_2148" = alloca %String, align 8 + %"$s1_2149" = load %String, %String* %s1, align 8 + store %String %"$s1_2149", %String* %"$_literal_cost_s1_2148", align 8 + %"$$_literal_cost_s1_2148_2150" = bitcast %String* %"$_literal_cost_s1_2148" to i8* + %"$_literal_cost_call_2151" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_100", i8* %"$$_literal_cost_s1_2148_2150") + %"$gasadd_2152" = add i64 %"$_literal_cost_call_2151", 0 + %"$gasrem_2153" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2154" = icmp ugt i64 %"$gasadd_2152", %"$gasrem_2153" + br i1 %"$gascmp_2154", label %"$out_of_gas_2155", label %"$have_gas_2156" + +"$out_of_gas_2155": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_2156" + +"$have_gas_2156": ; preds = %"$out_of_gas_2155", %entry + %"$consume_2157" = sub i64 %"$gasrem_2153", %"$gasadd_2152" + store i64 %"$consume_2157", i64* @_gasrem, align 8 + %"$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_2160": ; preds = %"$have_gas_2156" + call void @_out_of_gas() + br label %"$have_gas_2161" + +"$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 %msg1 = alloca i8*, align 8 - %"$gasrem_2124" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2125" = icmp ugt i64 1, %"$gasrem_2124" - br i1 %"$gascmp_2125", label %"$out_of_gas_2126", label %"$have_gas_2127" - -"$out_of_gas_2126": ; preds = %"$have_gas_2122" - call void @_out_of_gas() - br label %"$have_gas_2127" - -"$have_gas_2127": ; preds = %"$out_of_gas_2126", %"$have_gas_2122" - %"$consume_2128" = sub i64 %"$gasrem_2124", 1 - store i64 %"$consume_2128", i64* @_gasrem, align 8 - %"$msgobj_2129_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$msgobj_2129_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_2129_salloc_load", i64 165) - %"$msgobj_2129_salloc" = bitcast i8* %"$msgobj_2129_salloc_salloc" to [165 x i8]* - %"$msgobj_2129" = bitcast [165 x i8]* %"$msgobj_2129_salloc" to i8* - store i8 4, i8* %"$msgobj_2129", align 1 - %"$msgobj_fname_2131" = getelementptr i8, i8* %"$msgobj_2129", i32 1 - %"$msgobj_fname_2132" = bitcast i8* %"$msgobj_fname_2131" to %String* - store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_2130", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_2132", align 8 - %"$msgobj_td_2133" = getelementptr i8, i8* %"$msgobj_2129", i32 17 - %"$msgobj_td_2134" = bitcast i8* %"$msgobj_td_2133" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_114", %_TyDescrTy_Typ** %"$msgobj_td_2134", align 8 - %"$support_contract_2135" = load [20 x i8], [20 x i8]* @_cparam_support_contract, align 1 - %"$msgobj_v_2136" = getelementptr i8, i8* %"$msgobj_2129", i32 25 - %"$msgobj_v_2137" = bitcast i8* %"$msgobj_v_2136" to [20 x i8]* - store [20 x i8] %"$support_contract_2135", [20 x i8]* %"$msgobj_v_2137", align 1 - %"$msgobj_fname_2139" = getelementptr i8, i8* %"$msgobj_2129", i32 45 - %"$msgobj_fname_2140" = bitcast i8* %"$msgobj_fname_2139" to %String* - store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_2138", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_2140", align 8 - %"$msgobj_td_2141" = getelementptr i8, i8* %"$msgobj_2129", i32 61 - %"$msgobj_td_2142" = bitcast i8* %"$msgobj_td_2141" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_String_100", %_TyDescrTy_Typ** %"$msgobj_td_2142", align 8 - %"$msgobj_v_2144" = getelementptr i8, i8* %"$msgobj_2129", i32 69 - %"$msgobj_v_2145" = bitcast i8* %"$msgobj_v_2144" to %String* - store %String { i8* getelementptr inbounds ([11 x i8], [11 x i8]* @"$stringlit_2143", i32 0, i32 0), i32 11 }, %String* %"$msgobj_v_2145", align 8 - %"$msgobj_fname_2147" = getelementptr i8, i8* %"$msgobj_2129", i32 85 - %"$msgobj_fname_2148" = bitcast i8* %"$msgobj_fname_2147" to %String* - store %String { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$stringlit_2146", i32 0, i32 0), i32 7 }, %String* %"$msgobj_fname_2148", align 8 - %"$msgobj_td_2149" = getelementptr i8, i8* %"$msgobj_2129", i32 101 - %"$msgobj_td_2150" = bitcast i8* %"$msgobj_td_2149" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Uint128_94", %_TyDescrTy_Typ** %"$msgobj_td_2150", align 8 - %"$msgobj_v_2151" = getelementptr i8, i8* %"$msgobj_2129", i32 109 - %"$msgobj_v_2152" = bitcast i8* %"$msgobj_v_2151" to %Uint128* - store %Uint128 zeroinitializer, %Uint128* %"$msgobj_v_2152", align 8 - %"$msgobj_fname_2154" = getelementptr i8, i8* %"$msgobj_2129", i32 125 - %"$msgobj_fname_2155" = bitcast i8* %"$msgobj_fname_2154" to %String* - store %String { i8* getelementptr inbounds ([1 x i8], [1 x i8]* @"$stringlit_2153", i32 0, i32 0), i32 1 }, %String* %"$msgobj_fname_2155", align 8 - %"$msgobj_td_2156" = getelementptr i8, i8* %"$msgobj_2129", i32 141 - %"$msgobj_td_2157" = bitcast i8* %"$msgobj_td_2156" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_String_100", %_TyDescrTy_Typ** %"$msgobj_td_2157", align 8 - %"$s1_2158" = load %String, %String* %s1, align 8 - %"$msgobj_v_2159" = getelementptr i8, i8* %"$msgobj_2129", i32 149 - %"$msgobj_v_2160" = bitcast i8* %"$msgobj_v_2159" to %String* - store %String %"$s1_2158", %String* %"$msgobj_v_2160", align 8 - store i8* %"$msgobj_2129", i8** %msg1, align 8, !dbg !185 - %"$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_2127" - call void @_out_of_gas() - br label %"$have_gas_2165" - -"$have_gas_2165": ; preds = %"$out_of_gas_2164", %"$have_gas_2127" - %"$consume_2166" = sub i64 %"$gasrem_2162", 1 - store i64 %"$consume_2166", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata i8** %msg1, metadata !388, metadata !DIExpression()), !dbg !389 + %"$gasrem_2163" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2164" = icmp ugt i64 1, %"$gasrem_2163" + br i1 %"$gascmp_2164", label %"$out_of_gas_2165", label %"$have_gas_2166" + +"$out_of_gas_2165": ; preds = %"$have_gas_2161" + call void @_out_of_gas() + br label %"$have_gas_2166" + +"$have_gas_2166": ; preds = %"$out_of_gas_2165", %"$have_gas_2161" + %"$consume_2167" = sub i64 %"$gasrem_2163", 1 + store i64 %"$consume_2167", i64* @_gasrem, align 8 + %"$msgobj_2168_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$msgobj_2168_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_2168_salloc_load", i64 165) + %"$msgobj_2168_salloc" = bitcast i8* %"$msgobj_2168_salloc_salloc" to [165 x i8]* + %"$msgobj_2168" = bitcast [165 x i8]* %"$msgobj_2168_salloc" to i8* + store i8 4, i8* %"$msgobj_2168", align 1 + %"$msgobj_fname_2170" = getelementptr i8, i8* %"$msgobj_2168", i32 1 + %"$msgobj_fname_2171" = bitcast i8* %"$msgobj_fname_2170" to %String* + store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_2169", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_2171", align 8 + %"$msgobj_td_2172" = getelementptr i8, i8* %"$msgobj_2168", i32 17 + %"$msgobj_td_2173" = bitcast i8* %"$msgobj_td_2172" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_114", %_TyDescrTy_Typ** %"$msgobj_td_2173", align 8 + %"$support_contract_2174" = load [20 x i8], [20 x i8]* @_cparam_support_contract, align 1 + %"$msgobj_v_2175" = getelementptr i8, i8* %"$msgobj_2168", i32 25 + %"$msgobj_v_2176" = bitcast i8* %"$msgobj_v_2175" to [20 x i8]* + store [20 x i8] %"$support_contract_2174", [20 x i8]* %"$msgobj_v_2176", align 1 + %"$msgobj_fname_2178" = getelementptr i8, i8* %"$msgobj_2168", i32 45 + %"$msgobj_fname_2179" = bitcast i8* %"$msgobj_fname_2178" to %String* + store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_2177", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_2179", align 8 + %"$msgobj_td_2180" = getelementptr i8, i8* %"$msgobj_2168", i32 61 + %"$msgobj_td_2181" = bitcast i8* %"$msgobj_td_2180" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_String_100", %_TyDescrTy_Typ** %"$msgobj_td_2181", align 8 + %"$msgobj_v_2183" = getelementptr i8, i8* %"$msgobj_2168", i32 69 + %"$msgobj_v_2184" = bitcast i8* %"$msgobj_v_2183" to %String* + store %String { i8* getelementptr inbounds ([11 x i8], [11 x i8]* @"$stringlit_2182", i32 0, i32 0), i32 11 }, %String* %"$msgobj_v_2184", align 8 + %"$msgobj_fname_2186" = getelementptr i8, i8* %"$msgobj_2168", i32 85 + %"$msgobj_fname_2187" = bitcast i8* %"$msgobj_fname_2186" to %String* + store %String { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$stringlit_2185", i32 0, i32 0), i32 7 }, %String* %"$msgobj_fname_2187", align 8 + %"$msgobj_td_2188" = getelementptr i8, i8* %"$msgobj_2168", i32 101 + %"$msgobj_td_2189" = bitcast i8* %"$msgobj_td_2188" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Uint128_94", %_TyDescrTy_Typ** %"$msgobj_td_2189", align 8 + %"$msgobj_v_2190" = getelementptr i8, i8* %"$msgobj_2168", i32 109 + %"$msgobj_v_2191" = bitcast i8* %"$msgobj_v_2190" to %Uint128* + store %Uint128 zeroinitializer, %Uint128* %"$msgobj_v_2191", align 8 + %"$msgobj_fname_2193" = getelementptr i8, i8* %"$msgobj_2168", i32 125 + %"$msgobj_fname_2194" = bitcast i8* %"$msgobj_fname_2193" to %String* + store %String { i8* getelementptr inbounds ([1 x i8], [1 x i8]* @"$stringlit_2192", i32 0, i32 0), i32 1 }, %String* %"$msgobj_fname_2194", align 8 + %"$msgobj_td_2195" = getelementptr i8, i8* %"$msgobj_2168", i32 141 + %"$msgobj_td_2196" = bitcast i8* %"$msgobj_td_2195" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_String_100", %_TyDescrTy_Typ** %"$msgobj_td_2196", align 8 + %"$s1_2197" = load %String, %String* %s1, align 8 + %"$msgobj_v_2198" = getelementptr i8, i8* %"$msgobj_2168", i32 149 + %"$msgobj_v_2199" = bitcast i8* %"$msgobj_v_2198" to %String* + store %String %"$s1_2197", %String* %"$msgobj_v_2199", align 8 + store i8* %"$msgobj_2168", i8** %msg1, align 8, !dbg !390 + %"$gasrem_2201" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2202" = icmp ugt i64 1, %"$gasrem_2201" + br i1 %"$gascmp_2202", label %"$out_of_gas_2203", label %"$have_gas_2204" + +"$out_of_gas_2203": ; preds = %"$have_gas_2166" + call void @_out_of_gas() + br label %"$have_gas_2204" + +"$have_gas_2204": ; preds = %"$out_of_gas_2203", %"$have_gas_2166" + %"$consume_2205" = sub i64 %"$gasrem_2201", 1 + store i64 %"$consume_2205", i64* @_gasrem, align 8 %msgs1 = alloca %TName_List_Message*, align 8 - %"$gasrem_2167" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2168" = icmp ugt i64 1, %"$gasrem_2167" - br i1 %"$gascmp_2168", label %"$out_of_gas_2169", label %"$have_gas_2170" + call void @llvm.dbg.declare(metadata %TName_List_Message** %msgs1, metadata !391, metadata !DIExpression()), !dbg !392 + %"$gasrem_2206" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2207" = icmp ugt i64 1, %"$gasrem_2206" + br i1 %"$gascmp_2207", label %"$out_of_gas_2208", label %"$have_gas_2209" -"$out_of_gas_2169": ; preds = %"$have_gas_2165" +"$out_of_gas_2208": ; preds = %"$have_gas_2204" call void @_out_of_gas() - br label %"$have_gas_2170" + br label %"$have_gas_2209" -"$have_gas_2170": ; preds = %"$out_of_gas_2169", %"$have_gas_2165" - %"$consume_2171" = sub i64 %"$gasrem_2167", 1 - store i64 %"$consume_2171", i64* @_gasrem, align 8 +"$have_gas_2209": ; preds = %"$out_of_gas_2208", %"$have_gas_2204" + %"$consume_2210" = sub i64 %"$gasrem_2206", 1 + store i64 %"$consume_2210", i64* @_gasrem, align 8 %"$accounting_tests.one_msg_29" = alloca %TName_List_Message*, align 8 - %"$accounting_tests.one_msg_2172" = load { %TName_List_Message* (i8*, i8*)*, i8* }, { %TName_List_Message* (i8*, i8*)*, i8* }* @accounting_tests.one_msg, align 8 - %"$accounting_tests.one_msg_fptr_2173" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$accounting_tests.one_msg_2172", 0 - %"$accounting_tests.one_msg_envptr_2174" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$accounting_tests.one_msg_2172", 1 - %"$msg1_2175" = load i8*, i8** %msg1, align 8 - %"$accounting_tests.one_msg_call_2176" = call %TName_List_Message* %"$accounting_tests.one_msg_fptr_2173"(i8* %"$accounting_tests.one_msg_envptr_2174", i8* %"$msg1_2175"), !dbg !186 - store %TName_List_Message* %"$accounting_tests.one_msg_call_2176", %TName_List_Message** %"$accounting_tests.one_msg_29", align 8, !dbg !186 - %"$$accounting_tests.one_msg_29_2177" = load %TName_List_Message*, %TName_List_Message** %"$accounting_tests.one_msg_29", align 8 - store %TName_List_Message* %"$$accounting_tests.one_msg_29_2177", %TName_List_Message** %msgs1, align 8, !dbg !186 - %"$msgs1_2178" = load %TName_List_Message*, %TName_List_Message** %msgs1, align 8 - %"$$msgs1_2178_2179" = bitcast %TName_List_Message* %"$msgs1_2178" to i8* - %"$_literal_cost_call_2180" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_120", i8* %"$$msgs1_2178_2179") - %"$gasrem_2181" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2182" = icmp ugt i64 %"$_literal_cost_call_2180", %"$gasrem_2181" - br i1 %"$gascmp_2182", label %"$out_of_gas_2183", label %"$have_gas_2184" - -"$out_of_gas_2183": ; preds = %"$have_gas_2170" - call void @_out_of_gas() - br label %"$have_gas_2184" - -"$have_gas_2184": ; preds = %"$out_of_gas_2183", %"$have_gas_2170" - %"$consume_2185" = sub i64 %"$gasrem_2181", %"$_literal_cost_call_2180" - store i64 %"$consume_2185", i64* @_gasrem, align 8 - %"$execptr_load_2186" = load i8*, i8** @_execptr, align 8 - %"$msgs1_2187" = load %TName_List_Message*, %TName_List_Message** %msgs1, align 8 - call void @_send(i8* %"$execptr_load_2186", %_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_120", %TName_List_Message* %"$msgs1_2187"), !dbg !187 + call void @llvm.dbg.declare(metadata %TName_List_Message** %"$accounting_tests.one_msg_29", metadata !393, metadata !DIExpression()), !dbg !394 + %"$accounting_tests.one_msg_2211" = load { %TName_List_Message* (i8*, i8*)*, i8* }, { %TName_List_Message* (i8*, i8*)*, i8* }* @accounting_tests.one_msg, align 8 + %"$accounting_tests.one_msg_fptr_2212" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$accounting_tests.one_msg_2211", 0 + %"$accounting_tests.one_msg_envptr_2213" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$accounting_tests.one_msg_2211", 1 + %"$msg1_2214" = load i8*, i8** %msg1, align 8 + %"$accounting_tests.one_msg_call_2215" = call %TName_List_Message* %"$accounting_tests.one_msg_fptr_2212"(i8* %"$accounting_tests.one_msg_envptr_2213", i8* %"$msg1_2214"), !dbg !394 + store %TName_List_Message* %"$accounting_tests.one_msg_call_2215", %TName_List_Message** %"$accounting_tests.one_msg_29", align 8, !dbg !394 + %"$$accounting_tests.one_msg_29_2216" = load %TName_List_Message*, %TName_List_Message** %"$accounting_tests.one_msg_29", align 8 + store %TName_List_Message* %"$$accounting_tests.one_msg_29_2216", %TName_List_Message** %msgs1, align 8, !dbg !394 + %"$msgs1_2217" = load %TName_List_Message*, %TName_List_Message** %msgs1, align 8 + %"$$msgs1_2217_2218" = bitcast %TName_List_Message* %"$msgs1_2217" to i8* + %"$_literal_cost_call_2219" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_120", i8* %"$$msgs1_2217_2218") + %"$gasrem_2220" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2221" = icmp ugt i64 %"$_literal_cost_call_2219", %"$gasrem_2220" + br i1 %"$gascmp_2221", label %"$out_of_gas_2222", label %"$have_gas_2223" + +"$out_of_gas_2222": ; preds = %"$have_gas_2209" + call void @_out_of_gas() + br label %"$have_gas_2223" + +"$have_gas_2223": ; preds = %"$out_of_gas_2222", %"$have_gas_2209" + %"$consume_2224" = sub i64 %"$gasrem_2220", %"$_literal_cost_call_2219" + store i64 %"$consume_2224", i64* @_gasrem, align 8 + %"$execptr_load_2225" = load i8*, i8** @_execptr, align 8 + %"$msgs1_2226" = load %TName_List_Message*, %TName_List_Message** %msgs1, align 8 + call void @_send(i8* %"$execptr_load_2225", %_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_120", %TName_List_Message* %"$msgs1_2226"), !dbg !395 ret void } -define void @Test_Send_3_Helper(i8* %0) !dbg !188 { +define void @Test_Send_3_Helper(i8* %0) !dbg !396 { entry: - %"$_amount_2189" = getelementptr i8, i8* %0, i32 0 - %"$_amount_2190" = bitcast i8* %"$_amount_2189" to %Uint128* - %_amount = load %Uint128, %Uint128* %"$_amount_2190", align 8 - %"$_origin_2191" = getelementptr i8, i8* %0, i32 16 - %"$_origin_2192" = bitcast i8* %"$_origin_2191" to [20 x i8]* - %"$_sender_2193" = getelementptr i8, i8* %0, i32 36 - %"$_sender_2194" = bitcast i8* %"$_sender_2193" to [20 x i8]* - call void @"$Test_Send_3_Helper_2101"(%Uint128 %_amount, [20 x i8]* %"$_origin_2192", [20 x i8]* %"$_sender_2194"), !dbg !189 + %"$_amount_2231" = getelementptr i8, i8* %0, i32 0 + %"$_amount_2232" = bitcast i8* %"$_amount_2231" to %Uint128* + %_amount = load %Uint128, %Uint128* %"$_amount_2232", align 8 + %"$_origin_2233" = getelementptr i8, i8* %0, i32 16 + %"$_origin_2234" = bitcast i8* %"$_origin_2233" to [20 x i8]* + %"$_sender_2235" = getelementptr i8, i8* %0, i32 36 + %"$_sender_2236" = bitcast i8* %"$_sender_2235" to [20 x i8]* + call void @"$Test_Send_3_Helper_2140"(%Uint128 %_amount, [20 x i8]* %"$_origin_2234", [20 x i8]* %"$_sender_2236"), !dbg !397 ret void } -define internal void @"$Finalize_Test_Send_3_2195"(%Uint128 %_amount, [20 x i8]* %"$_origin_2196", [20 x i8]* %"$_sender_2197") !dbg !190 { +define internal void @"$Finalize_Test_Send_3_2237"(%Uint128 %_amount, [20 x i8]* %"$_origin_2238", [20 x i8]* %"$_sender_2239") !dbg !398 { entry: - %_origin = load [20 x i8], [20 x i8]* %"$_origin_2196", align 1 - %_sender = load [20 x i8], [20 x i8]* %"$_sender_2197", align 1 - %"$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 + %"$_sender_2260" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_sender_2239", [20 x i8]** %"$_sender_2260", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_sender_2260", metadata !399, metadata !DIExpression()), !dbg !400 + %"$_origin_2259" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_origin_2238", [20 x i8]** %"$_origin_2259", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_origin_2259", metadata !401, metadata !DIExpression()), !dbg !400 + %"$_amount_2258" = alloca %Uint128, align 8 + store %Uint128 %_amount, %Uint128* %"$_amount_2258", align 8 + call void @llvm.dbg.declare(metadata %Uint128* %"$_amount_2258", metadata !402, metadata !DIExpression()), !dbg !400 + %_origin = load [20 x i8], [20 x i8]* %"$_origin_2238", align 1 + %_sender = load [20 x i8], [20 x i8]* %"$_sender_2239", align 1 + %"$gasrem_2240" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2241" = icmp ugt i64 1, %"$gasrem_2240" + br i1 %"$gascmp_2241", label %"$out_of_gas_2242", label %"$have_gas_2243" + +"$out_of_gas_2242": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_2243" + +"$have_gas_2243": ; preds = %"$out_of_gas_2242", %entry + %"$consume_2244" = sub i64 %"$gasrem_2240", 1 + store i64 %"$consume_2244", i64* @_gasrem, align 8 %x = alloca %Uint128, align 8 - %"$gasrem_2203" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2204" = icmp ugt i64 1, %"$gasrem_2203" - br i1 %"$gascmp_2204", label %"$out_of_gas_2205", label %"$have_gas_2206" - -"$out_of_gas_2205": ; preds = %"$have_gas_2201" - call void @_out_of_gas() - br label %"$have_gas_2206" - -"$have_gas_2206": ; preds = %"$out_of_gas_2205", %"$have_gas_2201" - %"$consume_2207" = sub i64 %"$gasrem_2203", 1 - store i64 %"$consume_2207", i64* @_gasrem, align 8 - store %Uint128 { i128 3 }, %Uint128* %x, align 8, !dbg !191 - %"$gasrem_2208" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2209" = icmp ugt i64 1, %"$gasrem_2208" - br i1 %"$gascmp_2209", label %"$out_of_gas_2210", label %"$have_gas_2211" - -"$out_of_gas_2210": ; preds = %"$have_gas_2206" - call void @_out_of_gas() - br label %"$have_gas_2211" - -"$have_gas_2211": ; preds = %"$out_of_gas_2210", %"$have_gas_2206" - %"$consume_2212" = sub i64 %"$gasrem_2208", 1 - store i64 %"$consume_2212", i64* @_gasrem, align 8 - %"$Finalize_Test_Send_Helper_2_Msgs__origin_2213" = alloca [20 x i8], align 1 - store [20 x i8] %_origin, [20 x i8]* %"$Finalize_Test_Send_Helper_2_Msgs__origin_2213", align 1 - %"$Finalize_Test_Send_Helper_2_Msgs__sender_2214" = alloca [20 x i8], align 1 - store [20 x i8] %_sender, [20 x i8]* %"$Finalize_Test_Send_Helper_2_Msgs__sender_2214", align 1 - %"$x_2215" = load %Uint128, %Uint128* %x, align 8 - call void @"$Finalize_Test_Send_Helper_2_Msgs_1387"(%Uint128 %_amount, [20 x i8]* %"$Finalize_Test_Send_Helper_2_Msgs__origin_2213", [20 x i8]* %"$Finalize_Test_Send_Helper_2_Msgs__sender_2214", %Uint128 %"$x_2215"), !dbg !192 + call void @llvm.dbg.declare(metadata %Uint128* %x, metadata !403, metadata !DIExpression()), !dbg !404 + %"$gasrem_2245" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2246" = icmp ugt i64 1, %"$gasrem_2245" + br i1 %"$gascmp_2246", label %"$out_of_gas_2247", label %"$have_gas_2248" + +"$out_of_gas_2247": ; preds = %"$have_gas_2243" + call void @_out_of_gas() + br label %"$have_gas_2248" + +"$have_gas_2248": ; preds = %"$out_of_gas_2247", %"$have_gas_2243" + %"$consume_2249" = sub i64 %"$gasrem_2245", 1 + store i64 %"$consume_2249", i64* @_gasrem, align 8 + store %Uint128 { i128 3 }, %Uint128* %x, align 8, !dbg !405 + %"$gasrem_2250" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2251" = icmp ugt i64 1, %"$gasrem_2250" + br i1 %"$gascmp_2251", label %"$out_of_gas_2252", label %"$have_gas_2253" + +"$out_of_gas_2252": ; preds = %"$have_gas_2248" + call void @_out_of_gas() + br label %"$have_gas_2253" + +"$have_gas_2253": ; preds = %"$out_of_gas_2252", %"$have_gas_2248" + %"$consume_2254" = sub i64 %"$gasrem_2250", 1 + store i64 %"$consume_2254", i64* @_gasrem, align 8 + %"$Finalize_Test_Send_Helper_2_Msgs__origin_2255" = alloca [20 x i8], align 1 + store [20 x i8] %_origin, [20 x i8]* %"$Finalize_Test_Send_Helper_2_Msgs__origin_2255", align 1 + %"$Finalize_Test_Send_Helper_2_Msgs__sender_2256" = alloca [20 x i8], align 1 + store [20 x i8] %_sender, [20 x i8]* %"$Finalize_Test_Send_Helper_2_Msgs__sender_2256", align 1 + %"$x_2257" = load %Uint128, %Uint128* %x, align 8 + call void @"$Finalize_Test_Send_Helper_2_Msgs_1410"(%Uint128 %_amount, [20 x i8]* %"$Finalize_Test_Send_Helper_2_Msgs__origin_2255", [20 x i8]* %"$Finalize_Test_Send_Helper_2_Msgs__sender_2256", %Uint128 %"$x_2257"), !dbg !406 ret void } -define void @Finalize_Test_Send_3(i8* %0) !dbg !193 { +define void @Finalize_Test_Send_3(i8* %0) !dbg !407 { entry: - %"$_amount_2217" = getelementptr i8, i8* %0, i32 0 - %"$_amount_2218" = bitcast i8* %"$_amount_2217" to %Uint128* - %_amount = load %Uint128, %Uint128* %"$_amount_2218", align 8 - %"$_origin_2219" = getelementptr i8, i8* %0, i32 16 - %"$_origin_2220" = bitcast i8* %"$_origin_2219" to [20 x i8]* - %"$_sender_2221" = getelementptr i8, i8* %0, i32 36 - %"$_sender_2222" = bitcast i8* %"$_sender_2221" to [20 x i8]* - call void @"$Finalize_Test_Send_3_2195"(%Uint128 %_amount, [20 x i8]* %"$_origin_2220", [20 x i8]* %"$_sender_2222"), !dbg !194 + %"$_amount_2262" = getelementptr i8, i8* %0, i32 0 + %"$_amount_2263" = bitcast i8* %"$_amount_2262" to %Uint128* + %_amount = load %Uint128, %Uint128* %"$_amount_2263", align 8 + %"$_origin_2264" = getelementptr i8, i8* %0, i32 16 + %"$_origin_2265" = bitcast i8* %"$_origin_2264" to [20 x i8]* + %"$_sender_2266" = getelementptr i8, i8* %0, i32 36 + %"$_sender_2267" = bitcast i8* %"$_sender_2266" to [20 x i8]* + call void @"$Finalize_Test_Send_3_2237"(%Uint128 %_amount, [20 x i8]* %"$_origin_2265", [20 x i8]* %"$_sender_2267"), !dbg !408 ret void } -define internal void @"$CheckBalance_2223"(%Uint128 %_amount, [20 x i8]* %"$_origin_2224", [20 x i8]* %"$_sender_2225", %Uint128 %expected_balance) !dbg !195 { +define internal void @"$CheckBalance_2268"(%Uint128 %_amount, [20 x i8]* %"$_origin_2269", [20 x i8]* %"$_sender_2270", %Uint128 %expected_balance) !dbg !409 { entry: - %_origin = load [20 x i8], [20 x i8]* %"$_origin_2224", align 1 - %_sender = load [20 x i8], [20 x i8]* %"$_sender_2225", align 1 + %"$expected_balance_2363" = alloca %Uint128, align 8 + store %Uint128 %expected_balance, %Uint128* %"$expected_balance_2363", align 8 + call void @llvm.dbg.declare(metadata %Uint128* %"$expected_balance_2363", metadata !410, metadata !DIExpression()), !dbg !411 + %"$_sender_2362" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_sender_2270", [20 x i8]** %"$_sender_2362", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_sender_2362", metadata !412, metadata !DIExpression()), !dbg !413 + %"$_origin_2361" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_origin_2269", [20 x i8]** %"$_origin_2361", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_origin_2361", metadata !414, metadata !DIExpression()), !dbg !413 + %"$_amount_2360" = alloca %Uint128, align 8 + store %Uint128 %_amount, %Uint128* %"$_amount_2360", align 8 + call void @llvm.dbg.declare(metadata %Uint128* %"$_amount_2360", metadata !415, metadata !DIExpression()), !dbg !413 + %_origin = load [20 x i8], [20 x i8]* %"$_origin_2269", align 1 + %_sender = load [20 x i8], [20 x i8]* %"$_sender_2270", align 1 %cur_balance = alloca %Uint128, align 8 - %"$execptr_load_2227" = load i8*, i8** @_execptr, align 8 - %"$cur_balance_call_2228" = call i8* @_fetch_field(i8* %"$execptr_load_2227", i8* getelementptr inbounds ([9 x i8], [9 x i8]* @"$_balance_2226", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Uint128_94", i32 0, i8* null, i32 1), !dbg !196 - %"$cur_balance_2229" = bitcast i8* %"$cur_balance_call_2228" to %Uint128* - %"$cur_balance_2230" = load %Uint128, %Uint128* %"$cur_balance_2229", align 8 - store %Uint128 %"$cur_balance_2230", %Uint128* %cur_balance, align 8 - %"$_literal_cost_cur_balance_2231" = alloca %Uint128, align 8 - %"$cur_balance_2232" = load %Uint128, %Uint128* %cur_balance, align 8 - store %Uint128 %"$cur_balance_2232", %Uint128* %"$_literal_cost_cur_balance_2231", align 8 - %"$$_literal_cost_cur_balance_2231_2233" = bitcast %Uint128* %"$_literal_cost_cur_balance_2231" to i8* - %"$_literal_cost_call_2234" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Uint128_94", i8* %"$$_literal_cost_cur_balance_2231_2233") - %"$gasadd_2235" = add i64 %"$_literal_cost_call_2234", 0 - %"$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 = %entry - call void @_out_of_gas() - br label %"$have_gas_2239" - -"$have_gas_2239": ; preds = %"$out_of_gas_2238", %entry - %"$consume_2240" = sub i64 %"$gasrem_2236", %"$gasadd_2235" - store i64 %"$consume_2240", i64* @_gasrem, align 8 - %"$gasrem_2241" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2242" = icmp ugt i64 1, %"$gasrem_2241" - br i1 %"$gascmp_2242", label %"$out_of_gas_2243", label %"$have_gas_2244" - -"$out_of_gas_2243": ; preds = %"$have_gas_2239" - call void @_out_of_gas() - br label %"$have_gas_2244" - -"$have_gas_2244": ; preds = %"$out_of_gas_2243", %"$have_gas_2239" - %"$consume_2245" = sub i64 %"$gasrem_2241", 1 - store i64 %"$consume_2245", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %Uint128* %cur_balance, metadata !416, metadata !DIExpression()), !dbg !417 + %"$execptr_load_2272" = load i8*, i8** @_execptr, align 8 + %"$cur_balance_call_2273" = call i8* @_fetch_field(i8* %"$execptr_load_2272", i8* getelementptr inbounds ([9 x i8], [9 x i8]* @"$_balance_2271", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Uint128_94", i32 0, i8* null, i32 1), !dbg !417 + %"$cur_balance_2274" = bitcast i8* %"$cur_balance_call_2273" to %Uint128* + %"$cur_balance_2275" = load %Uint128, %Uint128* %"$cur_balance_2274", align 8 + store %Uint128 %"$cur_balance_2275", %Uint128* %cur_balance, align 8 + %"$_literal_cost_cur_balance_2276" = alloca %Uint128, align 8 + %"$cur_balance_2277" = load %Uint128, %Uint128* %cur_balance, align 8 + store %Uint128 %"$cur_balance_2277", %Uint128* %"$_literal_cost_cur_balance_2276", align 8 + %"$$_literal_cost_cur_balance_2276_2278" = bitcast %Uint128* %"$_literal_cost_cur_balance_2276" to i8* + %"$_literal_cost_call_2279" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Uint128_94", i8* %"$$_literal_cost_cur_balance_2276_2278") + %"$gasadd_2280" = add i64 %"$_literal_cost_call_2279", 0 + %"$gasrem_2281" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2282" = icmp ugt i64 %"$gasadd_2280", %"$gasrem_2281" + br i1 %"$gascmp_2282", label %"$out_of_gas_2283", label %"$have_gas_2284" + +"$out_of_gas_2283": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_2284" + +"$have_gas_2284": ; preds = %"$out_of_gas_2283", %entry + %"$consume_2285" = sub i64 %"$gasrem_2281", %"$gasadd_2280" + store i64 %"$consume_2285", i64* @_gasrem, align 8 + %"$gasrem_2286" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2287" = icmp ugt i64 1, %"$gasrem_2286" + br i1 %"$gascmp_2287", label %"$out_of_gas_2288", label %"$have_gas_2289" + +"$out_of_gas_2288": ; preds = %"$have_gas_2284" + call void @_out_of_gas() + br label %"$have_gas_2289" + +"$have_gas_2289": ; preds = %"$out_of_gas_2288", %"$have_gas_2284" + %"$consume_2290" = sub i64 %"$gasrem_2286", 1 + store i64 %"$consume_2290", i64* @_gasrem, align 8 %is_expected = alloca %TName_Bool*, align 8 - %"$gasrem_2247" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2248" = icmp ugt i64 8, %"$gasrem_2247" - br i1 %"$gascmp_2248", label %"$out_of_gas_2249", label %"$have_gas_2250" - -"$out_of_gas_2249": ; preds = %"$have_gas_2244" - call void @_out_of_gas() - br label %"$have_gas_2250" - -"$have_gas_2250": ; preds = %"$out_of_gas_2249", %"$have_gas_2244" - %"$consume_2251" = sub i64 %"$gasrem_2247", 8 - store i64 %"$consume_2251", i64* @_gasrem, align 8 - %"$execptr_load_2252" = load i8*, i8** @_execptr, align 8 - %"$cur_balance_2253" = load %Uint128, %Uint128* %cur_balance, align 8 - %"$eq_call_2254" = call %TName_Bool* @_eq_Uint128(i8* %"$execptr_load_2252", %Uint128 %expected_balance, %Uint128 %"$cur_balance_2253"), !dbg !197 - store %TName_Bool* %"$eq_call_2254", %TName_Bool** %is_expected, align 8, !dbg !197 - %"$gasrem_2256" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2257" = icmp ugt i64 2, %"$gasrem_2256" - br i1 %"$gascmp_2257", label %"$out_of_gas_2258", label %"$have_gas_2259" - -"$out_of_gas_2258": ; preds = %"$have_gas_2250" - call void @_out_of_gas() - br label %"$have_gas_2259" - -"$have_gas_2259": ; preds = %"$out_of_gas_2258", %"$have_gas_2250" - %"$consume_2260" = sub i64 %"$gasrem_2256", 2 - store i64 %"$consume_2260", i64* @_gasrem, align 8 - %"$is_expected_2262" = load %TName_Bool*, %TName_Bool** %is_expected, align 8 - %"$is_expected_tag_2263" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$is_expected_2262", i32 0, i32 0 - %"$is_expected_tag_2264" = load i8, i8* %"$is_expected_tag_2263", align 1 - switch i8 %"$is_expected_tag_2264", label %"$empty_default_2265" [ - i8 0, label %"$True_2266" - i8 1, label %"$False_2268" - ], !dbg !198 - -"$True_2266": ; preds = %"$have_gas_2259" - %"$is_expected_2267" = bitcast %TName_Bool* %"$is_expected_2262" to %CName_True* - br label %"$matchsucc_2261" - -"$False_2268": ; preds = %"$have_gas_2259" - %"$is_expected_2269" = bitcast %TName_Bool* %"$is_expected_2262" to %CName_False* - %"$gasrem_2270" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2271" = icmp ugt i64 1, %"$gasrem_2270" - br i1 %"$gascmp_2271", label %"$out_of_gas_2272", label %"$have_gas_2273" - -"$out_of_gas_2272": ; preds = %"$False_2268" - call void @_out_of_gas() - br label %"$have_gas_2273" - -"$have_gas_2273": ; preds = %"$out_of_gas_2272", %"$False_2268" - %"$consume_2274" = sub i64 %"$gasrem_2270", 1 - store i64 %"$consume_2274", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %is_expected, metadata !418, metadata !DIExpression()), !dbg !419 + %"$gasrem_2292" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2293" = icmp ugt i64 8, %"$gasrem_2292" + br i1 %"$gascmp_2293", label %"$out_of_gas_2294", label %"$have_gas_2295" + +"$out_of_gas_2294": ; preds = %"$have_gas_2289" + call void @_out_of_gas() + br label %"$have_gas_2295" + +"$have_gas_2295": ; preds = %"$out_of_gas_2294", %"$have_gas_2289" + %"$consume_2296" = sub i64 %"$gasrem_2292", 8 + store i64 %"$consume_2296", i64* @_gasrem, align 8 + %"$execptr_load_2297" = load i8*, i8** @_execptr, align 8 + %"$cur_balance_2298" = load %Uint128, %Uint128* %cur_balance, align 8 + %"$eq_call_2299" = call %TName_Bool* @_eq_Uint128(i8* %"$execptr_load_2297", %Uint128 %expected_balance, %Uint128 %"$cur_balance_2298"), !dbg !420 + store %TName_Bool* %"$eq_call_2299", %TName_Bool** %is_expected, align 8, !dbg !420 + %"$gasrem_2301" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2302" = icmp ugt i64 2, %"$gasrem_2301" + br i1 %"$gascmp_2302", label %"$out_of_gas_2303", label %"$have_gas_2304" + +"$out_of_gas_2303": ; preds = %"$have_gas_2295" + call void @_out_of_gas() + br label %"$have_gas_2304" + +"$have_gas_2304": ; preds = %"$out_of_gas_2303", %"$have_gas_2295" + %"$consume_2305" = sub i64 %"$gasrem_2301", 2 + store i64 %"$consume_2305", i64* @_gasrem, align 8 + %"$is_expected_2307" = load %TName_Bool*, %TName_Bool** %is_expected, align 8 + %"$is_expected_tag_2308" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$is_expected_2307", i32 0, i32 0 + %"$is_expected_tag_2309" = load i8, i8* %"$is_expected_tag_2308", align 1 + switch i8 %"$is_expected_tag_2309", label %"$empty_default_2310" [ + i8 0, label %"$True_2311" + i8 1, label %"$False_2313" + ], !dbg !421 + +"$True_2311": ; preds = %"$have_gas_2304" + %"$is_expected_2312" = bitcast %TName_Bool* %"$is_expected_2307" to %CName_True* + br label %"$matchsucc_2306" + +"$False_2313": ; preds = %"$have_gas_2304" + %"$is_expected_2314" = bitcast %TName_Bool* %"$is_expected_2307" to %CName_False* + %"$gasrem_2315" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2316" = icmp ugt i64 1, %"$gasrem_2315" + br i1 %"$gascmp_2316", label %"$out_of_gas_2317", label %"$have_gas_2318" + +"$out_of_gas_2317": ; preds = %"$False_2313" + call void @_out_of_gas() + br label %"$have_gas_2318" + +"$have_gas_2318": ; preds = %"$out_of_gas_2317", %"$False_2313" + %"$consume_2319" = sub i64 %"$gasrem_2315", 1 + store i64 %"$consume_2319", i64* @_gasrem, align 8 %e = alloca i8*, align 8 - %"$gasrem_2275" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2276" = icmp ugt i64 1, %"$gasrem_2275" - br i1 %"$gascmp_2276", label %"$out_of_gas_2277", label %"$have_gas_2278" - -"$out_of_gas_2277": ; preds = %"$have_gas_2273" - call void @_out_of_gas() - br label %"$have_gas_2278" - -"$have_gas_2278": ; preds = %"$out_of_gas_2277", %"$have_gas_2273" - %"$consume_2279" = sub i64 %"$gasrem_2275", 1 - store i64 %"$consume_2279", i64* @_gasrem, align 8 - %"$msgobj_2280_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$msgobj_2280_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_2280_salloc_load", i64 121) - %"$msgobj_2280_salloc" = bitcast i8* %"$msgobj_2280_salloc_salloc" to [121 x i8]* - %"$msgobj_2280" = bitcast [121 x i8]* %"$msgobj_2280_salloc" to i8* - store i8 3, i8* %"$msgobj_2280", align 1 - %"$msgobj_fname_2282" = getelementptr i8, i8* %"$msgobj_2280", i32 1 - %"$msgobj_fname_2283" = bitcast i8* %"$msgobj_fname_2282" to %String* - store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_2281", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_2283", align 8 - %"$msgobj_td_2284" = getelementptr i8, i8* %"$msgobj_2280", i32 17 - %"$msgobj_td_2285" = bitcast i8* %"$msgobj_td_2284" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_String_100", %_TyDescrTy_Typ** %"$msgobj_td_2285", align 8 - %"$msgobj_v_2287" = getelementptr i8, i8* %"$msgobj_2280", i32 25 - %"$msgobj_v_2288" = bitcast i8* %"$msgobj_v_2287" to %String* - store %String { i8* getelementptr inbounds ([18 x i8], [18 x i8]* @"$stringlit_2286", i32 0, i32 0), i32 18 }, %String* %"$msgobj_v_2288", align 8 - %"$msgobj_fname_2290" = getelementptr i8, i8* %"$msgobj_2280", i32 41 - %"$msgobj_fname_2291" = bitcast i8* %"$msgobj_fname_2290" to %String* - store %String { i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$stringlit_2289", i32 0, i32 0), i32 8 }, %String* %"$msgobj_fname_2291", align 8 - %"$msgobj_td_2292" = getelementptr i8, i8* %"$msgobj_2280", i32 57 - %"$msgobj_td_2293" = bitcast i8* %"$msgobj_td_2292" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Uint128_94", %_TyDescrTy_Typ** %"$msgobj_td_2293", align 8 - %"$msgobj_v_2294" = getelementptr i8, i8* %"$msgobj_2280", i32 65 - %"$msgobj_v_2295" = bitcast i8* %"$msgobj_v_2294" to %Uint128* - store %Uint128 %expected_balance, %Uint128* %"$msgobj_v_2295", align 8 - %"$msgobj_fname_2297" = getelementptr i8, i8* %"$msgobj_2280", i32 81 - %"$msgobj_fname_2298" = bitcast i8* %"$msgobj_fname_2297" to %String* - store %String { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$stringlit_2296", i32 0, i32 0), i32 6 }, %String* %"$msgobj_fname_2298", align 8 - %"$msgobj_td_2299" = getelementptr i8, i8* %"$msgobj_2280", i32 97 - %"$msgobj_td_2300" = bitcast i8* %"$msgobj_td_2299" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Uint128_94", %_TyDescrTy_Typ** %"$msgobj_td_2300", align 8 - %"$cur_balance_2301" = load %Uint128, %Uint128* %cur_balance, align 8 - %"$msgobj_v_2302" = getelementptr i8, i8* %"$msgobj_2280", i32 105 - %"$msgobj_v_2303" = bitcast i8* %"$msgobj_v_2302" to %Uint128* - store %Uint128 %"$cur_balance_2301", %Uint128* %"$msgobj_v_2303", align 8 - store i8* %"$msgobj_2280", i8** %e, align 8, !dbg !199 - %"$e_2305" = load i8*, i8** %e, align 8 - %"$_literal_cost_call_2307" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Exception_108", i8* %"$e_2305") - %"$gasrem_2308" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2309" = icmp ugt i64 %"$_literal_cost_call_2307", %"$gasrem_2308" - br i1 %"$gascmp_2309", label %"$out_of_gas_2310", label %"$have_gas_2311" - -"$out_of_gas_2310": ; preds = %"$have_gas_2278" - call void @_out_of_gas() - br label %"$have_gas_2311" - -"$have_gas_2311": ; preds = %"$out_of_gas_2310", %"$have_gas_2278" - %"$consume_2312" = sub i64 %"$gasrem_2308", %"$_literal_cost_call_2307" - store i64 %"$consume_2312", i64* @_gasrem, align 8 - %"$execptr_load_2313" = load i8*, i8** @_execptr, align 8 - %"$e_2314" = load i8*, i8** %e, align 8 - call void @_throw(i8* %"$execptr_load_2313", %_TyDescrTy_Typ* @"$TyDescr_Exception_108", i8* %"$e_2314"), !dbg !202 - br label %"$matchsucc_2261" - -"$empty_default_2265": ; preds = %"$have_gas_2259" - br label %"$matchsucc_2261" - -"$matchsucc_2261": ; preds = %"$have_gas_2311", %"$True_2266", %"$empty_default_2265" + call void @llvm.dbg.declare(metadata i8** %e, metadata !422, metadata !DIExpression()), !dbg !425 + %"$gasrem_2320" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2321" = icmp ugt i64 1, %"$gasrem_2320" + br i1 %"$gascmp_2321", label %"$out_of_gas_2322", label %"$have_gas_2323" + +"$out_of_gas_2322": ; preds = %"$have_gas_2318" + call void @_out_of_gas() + br label %"$have_gas_2323" + +"$have_gas_2323": ; preds = %"$out_of_gas_2322", %"$have_gas_2318" + %"$consume_2324" = sub i64 %"$gasrem_2320", 1 + store i64 %"$consume_2324", i64* @_gasrem, align 8 + %"$msgobj_2325_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$msgobj_2325_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_2325_salloc_load", i64 121) + %"$msgobj_2325_salloc" = bitcast i8* %"$msgobj_2325_salloc_salloc" to [121 x i8]* + %"$msgobj_2325" = bitcast [121 x i8]* %"$msgobj_2325_salloc" to i8* + store i8 3, i8* %"$msgobj_2325", align 1 + %"$msgobj_fname_2327" = getelementptr i8, i8* %"$msgobj_2325", i32 1 + %"$msgobj_fname_2328" = bitcast i8* %"$msgobj_fname_2327" to %String* + store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_2326", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_2328", align 8 + %"$msgobj_td_2329" = getelementptr i8, i8* %"$msgobj_2325", i32 17 + %"$msgobj_td_2330" = bitcast i8* %"$msgobj_td_2329" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_String_100", %_TyDescrTy_Typ** %"$msgobj_td_2330", align 8 + %"$msgobj_v_2332" = getelementptr i8, i8* %"$msgobj_2325", i32 25 + %"$msgobj_v_2333" = bitcast i8* %"$msgobj_v_2332" to %String* + store %String { i8* getelementptr inbounds ([18 x i8], [18 x i8]* @"$stringlit_2331", i32 0, i32 0), i32 18 }, %String* %"$msgobj_v_2333", align 8 + %"$msgobj_fname_2335" = getelementptr i8, i8* %"$msgobj_2325", i32 41 + %"$msgobj_fname_2336" = bitcast i8* %"$msgobj_fname_2335" to %String* + store %String { i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$stringlit_2334", i32 0, i32 0), i32 8 }, %String* %"$msgobj_fname_2336", align 8 + %"$msgobj_td_2337" = getelementptr i8, i8* %"$msgobj_2325", i32 57 + %"$msgobj_td_2338" = bitcast i8* %"$msgobj_td_2337" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Uint128_94", %_TyDescrTy_Typ** %"$msgobj_td_2338", align 8 + %"$msgobj_v_2339" = getelementptr i8, i8* %"$msgobj_2325", i32 65 + %"$msgobj_v_2340" = bitcast i8* %"$msgobj_v_2339" to %Uint128* + store %Uint128 %expected_balance, %Uint128* %"$msgobj_v_2340", align 8 + %"$msgobj_fname_2342" = getelementptr i8, i8* %"$msgobj_2325", i32 81 + %"$msgobj_fname_2343" = bitcast i8* %"$msgobj_fname_2342" to %String* + store %String { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$stringlit_2341", i32 0, i32 0), i32 6 }, %String* %"$msgobj_fname_2343", align 8 + %"$msgobj_td_2344" = getelementptr i8, i8* %"$msgobj_2325", i32 97 + %"$msgobj_td_2345" = bitcast i8* %"$msgobj_td_2344" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Uint128_94", %_TyDescrTy_Typ** %"$msgobj_td_2345", align 8 + %"$cur_balance_2346" = load %Uint128, %Uint128* %cur_balance, align 8 + %"$msgobj_v_2347" = getelementptr i8, i8* %"$msgobj_2325", i32 105 + %"$msgobj_v_2348" = bitcast i8* %"$msgobj_v_2347" to %Uint128* + store %Uint128 %"$cur_balance_2346", %Uint128* %"$msgobj_v_2348", align 8 + store i8* %"$msgobj_2325", i8** %e, align 8, !dbg !426 + %"$e_2350" = load i8*, i8** %e, align 8 + %"$_literal_cost_call_2352" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Exception_108", i8* %"$e_2350") + %"$gasrem_2353" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2354" = icmp ugt i64 %"$_literal_cost_call_2352", %"$gasrem_2353" + br i1 %"$gascmp_2354", label %"$out_of_gas_2355", label %"$have_gas_2356" + +"$out_of_gas_2355": ; preds = %"$have_gas_2323" + call void @_out_of_gas() + br label %"$have_gas_2356" + +"$have_gas_2356": ; preds = %"$out_of_gas_2355", %"$have_gas_2323" + %"$consume_2357" = sub i64 %"$gasrem_2353", %"$_literal_cost_call_2352" + store i64 %"$consume_2357", i64* @_gasrem, align 8 + %"$execptr_load_2358" = load i8*, i8** @_execptr, align 8 + %"$e_2359" = load i8*, i8** %e, align 8 + call void @_throw(i8* %"$execptr_load_2358", %_TyDescrTy_Typ* @"$TyDescr_Exception_108", i8* %"$e_2359"), !dbg !427 + br label %"$matchsucc_2306" + +"$empty_default_2310": ; preds = %"$have_gas_2304" + br label %"$matchsucc_2306" + +"$matchsucc_2306": ; preds = %"$have_gas_2356", %"$True_2311", %"$empty_default_2310" ret void } declare %TName_Bool* @_eq_Uint128(i8*, %Uint128, %Uint128) -define internal void @"$CheckSenderBalance_2315"(%Uint128 %_amount, [20 x i8]* %"$_origin_2316", [20 x i8]* %"$_sender_2317", %Uint128 %expected_balance) !dbg !203 { +define internal void @"$CheckSenderBalance_2364"(%Uint128 %_amount, [20 x i8]* %"$_origin_2365", [20 x i8]* %"$_sender_2366", %Uint128 %expected_balance) !dbg !428 { entry: - %_origin = load [20 x i8], [20 x i8]* %"$_origin_2316", align 1 - %_sender = load [20 x i8], [20 x i8]* %"$_sender_2317", align 1 - %"$gasrem_2318" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2319" = icmp ugt i64 1, %"$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", 1 - store i64 %"$consume_2322", i64* @_gasrem, align 8 - %"$CheckBalance__origin_2323" = alloca [20 x i8], align 1 - store [20 x i8] %_origin, [20 x i8]* %"$CheckBalance__origin_2323", align 1 - %"$CheckBalance__sender_2324" = alloca [20 x i8], align 1 - store [20 x i8] %_sender, [20 x i8]* %"$CheckBalance__sender_2324", align 1 - call void @"$CheckBalance_2223"(%Uint128 %_amount, [20 x i8]* %"$CheckBalance__origin_2323", [20 x i8]* %"$CheckBalance__sender_2324", %Uint128 %expected_balance), !dbg !204 + %"$expected_balance_2377" = alloca %Uint128, align 8 + store %Uint128 %expected_balance, %Uint128* %"$expected_balance_2377", align 8 + call void @llvm.dbg.declare(metadata %Uint128* %"$expected_balance_2377", metadata !429, metadata !DIExpression()), !dbg !430 + %"$_sender_2376" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_sender_2366", [20 x i8]** %"$_sender_2376", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_sender_2376", metadata !431, metadata !DIExpression()), !dbg !432 + %"$_origin_2375" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_origin_2365", [20 x i8]** %"$_origin_2375", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_origin_2375", metadata !433, metadata !DIExpression()), !dbg !432 + %"$_amount_2374" = alloca %Uint128, align 8 + store %Uint128 %_amount, %Uint128* %"$_amount_2374", align 8 + call void @llvm.dbg.declare(metadata %Uint128* %"$_amount_2374", metadata !434, metadata !DIExpression()), !dbg !432 + %_origin = load [20 x i8], [20 x i8]* %"$_origin_2365", align 1 + %_sender = load [20 x i8], [20 x i8]* %"$_sender_2366", align 1 + %"$gasrem_2367" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2368" = icmp ugt i64 1, %"$gasrem_2367" + br i1 %"$gascmp_2368", label %"$out_of_gas_2369", label %"$have_gas_2370" + +"$out_of_gas_2369": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_2370" + +"$have_gas_2370": ; preds = %"$out_of_gas_2369", %entry + %"$consume_2371" = sub i64 %"$gasrem_2367", 1 + store i64 %"$consume_2371", i64* @_gasrem, align 8 + %"$CheckBalance__origin_2372" = alloca [20 x i8], align 1 + store [20 x i8] %_origin, [20 x i8]* %"$CheckBalance__origin_2372", align 1 + %"$CheckBalance__sender_2373" = alloca [20 x i8], align 1 + store [20 x i8] %_sender, [20 x i8]* %"$CheckBalance__sender_2373", align 1 + call void @"$CheckBalance_2268"(%Uint128 %_amount, [20 x i8]* %"$CheckBalance__origin_2372", [20 x i8]* %"$CheckBalance__sender_2373", %Uint128 %expected_balance), !dbg !435 ret void } -define void @CheckSenderBalance(i8* %0) !dbg !205 { +define void @CheckSenderBalance(i8* %0) !dbg !436 { entry: - %"$_amount_2326" = getelementptr i8, i8* %0, i32 0 - %"$_amount_2327" = bitcast i8* %"$_amount_2326" to %Uint128* - %_amount = load %Uint128, %Uint128* %"$_amount_2327", align 8 - %"$_origin_2328" = getelementptr i8, i8* %0, i32 16 - %"$_origin_2329" = bitcast i8* %"$_origin_2328" to [20 x i8]* - %"$_sender_2330" = getelementptr i8, i8* %0, i32 36 - %"$_sender_2331" = bitcast i8* %"$_sender_2330" to [20 x i8]* - %"$expected_balance_2332" = getelementptr i8, i8* %0, i32 56 - %"$expected_balance_2333" = bitcast i8* %"$expected_balance_2332" to %Uint128* - %expected_balance = load %Uint128, %Uint128* %"$expected_balance_2333", align 8 - call void @"$CheckSenderBalance_2315"(%Uint128 %_amount, [20 x i8]* %"$_origin_2329", [20 x i8]* %"$_sender_2331", %Uint128 %expected_balance), !dbg !206 + %"$_amount_2379" = getelementptr i8, i8* %0, i32 0 + %"$_amount_2380" = bitcast i8* %"$_amount_2379" to %Uint128* + %_amount = load %Uint128, %Uint128* %"$_amount_2380", align 8 + %"$_origin_2381" = getelementptr i8, i8* %0, i32 16 + %"$_origin_2382" = bitcast i8* %"$_origin_2381" to [20 x i8]* + %"$_sender_2383" = getelementptr i8, i8* %0, i32 36 + %"$_sender_2384" = bitcast i8* %"$_sender_2383" to [20 x i8]* + %"$expected_balance_2385" = getelementptr i8, i8* %0, i32 56 + %"$expected_balance_2386" = bitcast i8* %"$expected_balance_2385" to %Uint128* + %expected_balance = load %Uint128, %Uint128* %"$expected_balance_2386", align 8 + call void @"$CheckSenderBalance_2364"(%Uint128 %_amount, [20 x i8]* %"$_origin_2382", [20 x i8]* %"$_sender_2384", %Uint128 %expected_balance), !dbg !437 ret void } -define internal void @"$CheckSupportBalance_2334"(%Uint128 %_amount, [20 x i8]* %"$_origin_2335", [20 x i8]* %"$_sender_2336", %Uint128 %expected_balance) !dbg !207 { +define internal void @"$CheckSupportBalance_2387"(%Uint128 %_amount, [20 x i8]* %"$_origin_2388", [20 x i8]* %"$_sender_2389", %Uint128 %expected_balance) !dbg !438 { entry: - %_origin = load [20 x i8], [20 x i8]* %"$_origin_2335", align 1 - %_sender = load [20 x i8], [20 x i8]* %"$_sender_2336", align 1 + %"$expected_balance_2484" = alloca %Uint128, align 8 + store %Uint128 %expected_balance, %Uint128* %"$expected_balance_2484", align 8 + call void @llvm.dbg.declare(metadata %Uint128* %"$expected_balance_2484", metadata !439, metadata !DIExpression()), !dbg !440 + %"$_sender_2483" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_sender_2389", [20 x i8]** %"$_sender_2483", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_sender_2483", metadata !441, metadata !DIExpression()), !dbg !442 + %"$_origin_2482" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_origin_2388", [20 x i8]** %"$_origin_2482", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_origin_2482", metadata !443, metadata !DIExpression()), !dbg !442 + %"$_amount_2481" = alloca %Uint128, align 8 + store %Uint128 %_amount, %Uint128* %"$_amount_2481", align 8 + call void @llvm.dbg.declare(metadata %Uint128* %"$_amount_2481", metadata !444, metadata !DIExpression()), !dbg !442 + %_origin = load [20 x i8], [20 x i8]* %"$_origin_2388", align 1 + %_sender = load [20 x i8], [20 x i8]* %"$_sender_2389", align 1 %cur_balance = alloca %Uint128, align 8 - %"$execptr_load_2338" = load i8*, i8** @_execptr, align 8 - %"$cur_balance_support_contract_2339" = alloca [20 x i8], align 1 - %"$support_contract_2340" = load [20 x i8], [20 x i8]* @_cparam_support_contract, align 1 - store [20 x i8] %"$support_contract_2340", [20 x i8]* %"$cur_balance_support_contract_2339", align 1 - %"$cur_balance_call_2341" = call i8* @_fetch_remote_field(i8* %"$execptr_load_2338", [20 x i8]* %"$cur_balance_support_contract_2339", i8* getelementptr inbounds ([9 x i8], [9 x i8]* @"$_balance_2337", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Uint128_94", i32 0, i8* null, i32 1), !dbg !208 - %"$cur_balance_2342" = bitcast i8* %"$cur_balance_call_2341" to %Uint128* - %"$cur_balance_2343" = load %Uint128, %Uint128* %"$cur_balance_2342", align 8 - store %Uint128 %"$cur_balance_2343", %Uint128* %cur_balance, align 8 - %"$_literal_cost_cur_balance_2344" = alloca %Uint128, align 8 - %"$cur_balance_2345" = load %Uint128, %Uint128* %cur_balance, align 8 - store %Uint128 %"$cur_balance_2345", %Uint128* %"$_literal_cost_cur_balance_2344", align 8 - %"$$_literal_cost_cur_balance_2344_2346" = bitcast %Uint128* %"$_literal_cost_cur_balance_2344" to i8* - %"$_literal_cost_call_2347" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Uint128_94", i8* %"$$_literal_cost_cur_balance_2344_2346") - %"$gasadd_2348" = add i64 %"$_literal_cost_call_2347", 0 - %"$gasrem_2349" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2350" = icmp ugt i64 %"$gasadd_2348", %"$gasrem_2349" - br i1 %"$gascmp_2350", label %"$out_of_gas_2351", label %"$have_gas_2352" - -"$out_of_gas_2351": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_2352" - -"$have_gas_2352": ; preds = %"$out_of_gas_2351", %entry - %"$consume_2353" = sub i64 %"$gasrem_2349", %"$gasadd_2348" - store i64 %"$consume_2353", i64* @_gasrem, align 8 - %"$gasrem_2354" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2355" = icmp ugt i64 1, %"$gasrem_2354" - br i1 %"$gascmp_2355", label %"$out_of_gas_2356", label %"$have_gas_2357" - -"$out_of_gas_2356": ; preds = %"$have_gas_2352" - call void @_out_of_gas() - br label %"$have_gas_2357" - -"$have_gas_2357": ; preds = %"$out_of_gas_2356", %"$have_gas_2352" - %"$consume_2358" = sub i64 %"$gasrem_2354", 1 - store i64 %"$consume_2358", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %Uint128* %cur_balance, metadata !445, metadata !DIExpression()), !dbg !446 + %"$execptr_load_2391" = load i8*, i8** @_execptr, align 8 + %"$cur_balance_support_contract_2392" = alloca [20 x i8], align 1 + %"$support_contract_2393" = load [20 x i8], [20 x i8]* @_cparam_support_contract, align 1 + store [20 x i8] %"$support_contract_2393", [20 x i8]* %"$cur_balance_support_contract_2392", align 1 + %"$cur_balance_call_2394" = call i8* @_fetch_remote_field(i8* %"$execptr_load_2391", [20 x i8]* %"$cur_balance_support_contract_2392", i8* getelementptr inbounds ([9 x i8], [9 x i8]* @"$_balance_2390", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Uint128_94", i32 0, i8* null, i32 1), !dbg !446 + %"$cur_balance_2395" = bitcast i8* %"$cur_balance_call_2394" to %Uint128* + %"$cur_balance_2396" = load %Uint128, %Uint128* %"$cur_balance_2395", align 8 + store %Uint128 %"$cur_balance_2396", %Uint128* %cur_balance, align 8 + %"$_literal_cost_cur_balance_2397" = alloca %Uint128, align 8 + %"$cur_balance_2398" = load %Uint128, %Uint128* %cur_balance, align 8 + store %Uint128 %"$cur_balance_2398", %Uint128* %"$_literal_cost_cur_balance_2397", align 8 + %"$$_literal_cost_cur_balance_2397_2399" = bitcast %Uint128* %"$_literal_cost_cur_balance_2397" to i8* + %"$_literal_cost_call_2400" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Uint128_94", i8* %"$$_literal_cost_cur_balance_2397_2399") + %"$gasadd_2401" = add i64 %"$_literal_cost_call_2400", 0 + %"$gasrem_2402" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2403" = icmp ugt i64 %"$gasadd_2401", %"$gasrem_2402" + br i1 %"$gascmp_2403", label %"$out_of_gas_2404", label %"$have_gas_2405" + +"$out_of_gas_2404": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_2405" + +"$have_gas_2405": ; preds = %"$out_of_gas_2404", %entry + %"$consume_2406" = sub i64 %"$gasrem_2402", %"$gasadd_2401" + store i64 %"$consume_2406", i64* @_gasrem, align 8 + %"$gasrem_2407" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2408" = icmp ugt i64 1, %"$gasrem_2407" + br i1 %"$gascmp_2408", label %"$out_of_gas_2409", label %"$have_gas_2410" + +"$out_of_gas_2409": ; preds = %"$have_gas_2405" + call void @_out_of_gas() + br label %"$have_gas_2410" + +"$have_gas_2410": ; preds = %"$out_of_gas_2409", %"$have_gas_2405" + %"$consume_2411" = sub i64 %"$gasrem_2407", 1 + store i64 %"$consume_2411", i64* @_gasrem, align 8 %is_expected = alloca %TName_Bool*, align 8 - %"$gasrem_2360" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2361" = icmp ugt i64 8, %"$gasrem_2360" - br i1 %"$gascmp_2361", label %"$out_of_gas_2362", label %"$have_gas_2363" - -"$out_of_gas_2362": ; preds = %"$have_gas_2357" - call void @_out_of_gas() - br label %"$have_gas_2363" - -"$have_gas_2363": ; preds = %"$out_of_gas_2362", %"$have_gas_2357" - %"$consume_2364" = sub i64 %"$gasrem_2360", 8 - store i64 %"$consume_2364", i64* @_gasrem, align 8 - %"$execptr_load_2365" = load i8*, i8** @_execptr, align 8 - %"$cur_balance_2366" = load %Uint128, %Uint128* %cur_balance, align 8 - %"$eq_call_2367" = call %TName_Bool* @_eq_Uint128(i8* %"$execptr_load_2365", %Uint128 %expected_balance, %Uint128 %"$cur_balance_2366"), !dbg !209 - store %TName_Bool* %"$eq_call_2367", %TName_Bool** %is_expected, align 8, !dbg !209 - %"$gasrem_2369" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2370" = icmp ugt i64 2, %"$gasrem_2369" - br i1 %"$gascmp_2370", label %"$out_of_gas_2371", label %"$have_gas_2372" - -"$out_of_gas_2371": ; preds = %"$have_gas_2363" - call void @_out_of_gas() - br label %"$have_gas_2372" - -"$have_gas_2372": ; preds = %"$out_of_gas_2371", %"$have_gas_2363" - %"$consume_2373" = sub i64 %"$gasrem_2369", 2 - store i64 %"$consume_2373", i64* @_gasrem, align 8 - %"$is_expected_2375" = load %TName_Bool*, %TName_Bool** %is_expected, align 8 - %"$is_expected_tag_2376" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$is_expected_2375", i32 0, i32 0 - %"$is_expected_tag_2377" = load i8, i8* %"$is_expected_tag_2376", align 1 - switch i8 %"$is_expected_tag_2377", label %"$empty_default_2378" [ - i8 0, label %"$True_2379" - i8 1, label %"$False_2381" - ], !dbg !210 - -"$True_2379": ; preds = %"$have_gas_2372" - %"$is_expected_2380" = bitcast %TName_Bool* %"$is_expected_2375" to %CName_True* - br label %"$matchsucc_2374" - -"$False_2381": ; preds = %"$have_gas_2372" - %"$is_expected_2382" = bitcast %TName_Bool* %"$is_expected_2375" to %CName_False* - %"$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 = %"$False_2381" - call void @_out_of_gas() - br label %"$have_gas_2386" - -"$have_gas_2386": ; preds = %"$out_of_gas_2385", %"$False_2381" - %"$consume_2387" = sub i64 %"$gasrem_2383", 1 - store i64 %"$consume_2387", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %is_expected, metadata !447, metadata !DIExpression()), !dbg !448 + %"$gasrem_2413" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2414" = icmp ugt i64 8, %"$gasrem_2413" + br i1 %"$gascmp_2414", label %"$out_of_gas_2415", label %"$have_gas_2416" + +"$out_of_gas_2415": ; preds = %"$have_gas_2410" + call void @_out_of_gas() + br label %"$have_gas_2416" + +"$have_gas_2416": ; preds = %"$out_of_gas_2415", %"$have_gas_2410" + %"$consume_2417" = sub i64 %"$gasrem_2413", 8 + store i64 %"$consume_2417", i64* @_gasrem, align 8 + %"$execptr_load_2418" = load i8*, i8** @_execptr, align 8 + %"$cur_balance_2419" = load %Uint128, %Uint128* %cur_balance, align 8 + %"$eq_call_2420" = call %TName_Bool* @_eq_Uint128(i8* %"$execptr_load_2418", %Uint128 %expected_balance, %Uint128 %"$cur_balance_2419"), !dbg !449 + store %TName_Bool* %"$eq_call_2420", %TName_Bool** %is_expected, align 8, !dbg !449 + %"$gasrem_2422" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2423" = icmp ugt i64 2, %"$gasrem_2422" + br i1 %"$gascmp_2423", label %"$out_of_gas_2424", label %"$have_gas_2425" + +"$out_of_gas_2424": ; preds = %"$have_gas_2416" + call void @_out_of_gas() + br label %"$have_gas_2425" + +"$have_gas_2425": ; preds = %"$out_of_gas_2424", %"$have_gas_2416" + %"$consume_2426" = sub i64 %"$gasrem_2422", 2 + store i64 %"$consume_2426", i64* @_gasrem, align 8 + %"$is_expected_2428" = load %TName_Bool*, %TName_Bool** %is_expected, align 8 + %"$is_expected_tag_2429" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$is_expected_2428", i32 0, i32 0 + %"$is_expected_tag_2430" = load i8, i8* %"$is_expected_tag_2429", align 1 + switch i8 %"$is_expected_tag_2430", label %"$empty_default_2431" [ + i8 0, label %"$True_2432" + i8 1, label %"$False_2434" + ], !dbg !450 + +"$True_2432": ; preds = %"$have_gas_2425" + %"$is_expected_2433" = bitcast %TName_Bool* %"$is_expected_2428" to %CName_True* + br label %"$matchsucc_2427" + +"$False_2434": ; preds = %"$have_gas_2425" + %"$is_expected_2435" = bitcast %TName_Bool* %"$is_expected_2428" to %CName_False* + %"$gasrem_2436" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2437" = icmp ugt i64 1, %"$gasrem_2436" + br i1 %"$gascmp_2437", label %"$out_of_gas_2438", label %"$have_gas_2439" + +"$out_of_gas_2438": ; preds = %"$False_2434" + call void @_out_of_gas() + br label %"$have_gas_2439" + +"$have_gas_2439": ; preds = %"$out_of_gas_2438", %"$False_2434" + %"$consume_2440" = sub i64 %"$gasrem_2436", 1 + store i64 %"$consume_2440", i64* @_gasrem, align 8 %e = alloca i8*, align 8 - %"$gasrem_2388" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2389" = icmp ugt i64 1, %"$gasrem_2388" - br i1 %"$gascmp_2389", label %"$out_of_gas_2390", label %"$have_gas_2391" - -"$out_of_gas_2390": ; preds = %"$have_gas_2386" - call void @_out_of_gas() - br label %"$have_gas_2391" - -"$have_gas_2391": ; preds = %"$out_of_gas_2390", %"$have_gas_2386" - %"$consume_2392" = sub i64 %"$gasrem_2388", 1 - store i64 %"$consume_2392", i64* @_gasrem, align 8 - %"$msgobj_2393_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$msgobj_2393_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_2393_salloc_load", i64 121) - %"$msgobj_2393_salloc" = bitcast i8* %"$msgobj_2393_salloc_salloc" to [121 x i8]* - %"$msgobj_2393" = bitcast [121 x i8]* %"$msgobj_2393_salloc" to i8* - store i8 3, i8* %"$msgobj_2393", align 1 - %"$msgobj_fname_2395" = getelementptr i8, i8* %"$msgobj_2393", i32 1 - %"$msgobj_fname_2396" = bitcast i8* %"$msgobj_fname_2395" to %String* - store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_2394", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_2396", align 8 - %"$msgobj_td_2397" = getelementptr i8, i8* %"$msgobj_2393", i32 17 - %"$msgobj_td_2398" = bitcast i8* %"$msgobj_td_2397" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_String_100", %_TyDescrTy_Typ** %"$msgobj_td_2398", align 8 - %"$msgobj_v_2400" = getelementptr i8, i8* %"$msgobj_2393", i32 25 - %"$msgobj_v_2401" = bitcast i8* %"$msgobj_v_2400" to %String* - store %String { i8* getelementptr inbounds ([54 x i8], [54 x i8]* @"$stringlit_2399", i32 0, i32 0), i32 54 }, %String* %"$msgobj_v_2401", align 8 - %"$msgobj_fname_2403" = getelementptr i8, i8* %"$msgobj_2393", i32 41 - %"$msgobj_fname_2404" = bitcast i8* %"$msgobj_fname_2403" to %String* - store %String { i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$stringlit_2402", i32 0, i32 0), i32 8 }, %String* %"$msgobj_fname_2404", align 8 - %"$msgobj_td_2405" = getelementptr i8, i8* %"$msgobj_2393", i32 57 - %"$msgobj_td_2406" = bitcast i8* %"$msgobj_td_2405" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Uint128_94", %_TyDescrTy_Typ** %"$msgobj_td_2406", align 8 - %"$msgobj_v_2407" = getelementptr i8, i8* %"$msgobj_2393", i32 65 - %"$msgobj_v_2408" = bitcast i8* %"$msgobj_v_2407" to %Uint128* - store %Uint128 %expected_balance, %Uint128* %"$msgobj_v_2408", align 8 - %"$msgobj_fname_2410" = getelementptr i8, i8* %"$msgobj_2393", i32 81 - %"$msgobj_fname_2411" = bitcast i8* %"$msgobj_fname_2410" to %String* - store %String { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$stringlit_2409", i32 0, i32 0), i32 6 }, %String* %"$msgobj_fname_2411", align 8 - %"$msgobj_td_2412" = getelementptr i8, i8* %"$msgobj_2393", i32 97 - %"$msgobj_td_2413" = bitcast i8* %"$msgobj_td_2412" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Uint128_94", %_TyDescrTy_Typ** %"$msgobj_td_2413", align 8 - %"$cur_balance_2414" = load %Uint128, %Uint128* %cur_balance, align 8 - %"$msgobj_v_2415" = getelementptr i8, i8* %"$msgobj_2393", i32 105 - %"$msgobj_v_2416" = bitcast i8* %"$msgobj_v_2415" to %Uint128* - store %Uint128 %"$cur_balance_2414", %Uint128* %"$msgobj_v_2416", align 8 - store i8* %"$msgobj_2393", i8** %e, align 8, !dbg !211 - %"$e_2418" = load i8*, i8** %e, align 8 - %"$_literal_cost_call_2420" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Exception_108", i8* %"$e_2418") - %"$gasrem_2421" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2422" = icmp ugt i64 %"$_literal_cost_call_2420", %"$gasrem_2421" - br i1 %"$gascmp_2422", label %"$out_of_gas_2423", label %"$have_gas_2424" - -"$out_of_gas_2423": ; preds = %"$have_gas_2391" - call void @_out_of_gas() - br label %"$have_gas_2424" - -"$have_gas_2424": ; preds = %"$out_of_gas_2423", %"$have_gas_2391" - %"$consume_2425" = sub i64 %"$gasrem_2421", %"$_literal_cost_call_2420" - store i64 %"$consume_2425", i64* @_gasrem, align 8 - %"$execptr_load_2426" = load i8*, i8** @_execptr, align 8 - %"$e_2427" = load i8*, i8** %e, align 8 - call void @_throw(i8* %"$execptr_load_2426", %_TyDescrTy_Typ* @"$TyDescr_Exception_108", i8* %"$e_2427"), !dbg !214 - br label %"$matchsucc_2374" - -"$empty_default_2378": ; preds = %"$have_gas_2372" - br label %"$matchsucc_2374" - -"$matchsucc_2374": ; preds = %"$have_gas_2424", %"$True_2379", %"$empty_default_2378" + call void @llvm.dbg.declare(metadata i8** %e, metadata !451, metadata !DIExpression()), !dbg !454 + %"$gasrem_2441" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2442" = icmp ugt i64 1, %"$gasrem_2441" + br i1 %"$gascmp_2442", label %"$out_of_gas_2443", label %"$have_gas_2444" + +"$out_of_gas_2443": ; preds = %"$have_gas_2439" + call void @_out_of_gas() + br label %"$have_gas_2444" + +"$have_gas_2444": ; preds = %"$out_of_gas_2443", %"$have_gas_2439" + %"$consume_2445" = sub i64 %"$gasrem_2441", 1 + store i64 %"$consume_2445", i64* @_gasrem, align 8 + %"$msgobj_2446_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$msgobj_2446_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_2446_salloc_load", i64 121) + %"$msgobj_2446_salloc" = bitcast i8* %"$msgobj_2446_salloc_salloc" to [121 x i8]* + %"$msgobj_2446" = bitcast [121 x i8]* %"$msgobj_2446_salloc" to i8* + store i8 3, i8* %"$msgobj_2446", align 1 + %"$msgobj_fname_2448" = getelementptr i8, i8* %"$msgobj_2446", i32 1 + %"$msgobj_fname_2449" = bitcast i8* %"$msgobj_fname_2448" to %String* + store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_2447", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_2449", align 8 + %"$msgobj_td_2450" = getelementptr i8, i8* %"$msgobj_2446", i32 17 + %"$msgobj_td_2451" = bitcast i8* %"$msgobj_td_2450" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_String_100", %_TyDescrTy_Typ** %"$msgobj_td_2451", align 8 + %"$msgobj_v_2453" = getelementptr i8, i8* %"$msgobj_2446", i32 25 + %"$msgobj_v_2454" = bitcast i8* %"$msgobj_v_2453" to %String* + store %String { i8* getelementptr inbounds ([54 x i8], [54 x i8]* @"$stringlit_2452", i32 0, i32 0), i32 54 }, %String* %"$msgobj_v_2454", align 8 + %"$msgobj_fname_2456" = getelementptr i8, i8* %"$msgobj_2446", i32 41 + %"$msgobj_fname_2457" = bitcast i8* %"$msgobj_fname_2456" to %String* + store %String { i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$stringlit_2455", i32 0, i32 0), i32 8 }, %String* %"$msgobj_fname_2457", align 8 + %"$msgobj_td_2458" = getelementptr i8, i8* %"$msgobj_2446", i32 57 + %"$msgobj_td_2459" = bitcast i8* %"$msgobj_td_2458" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Uint128_94", %_TyDescrTy_Typ** %"$msgobj_td_2459", align 8 + %"$msgobj_v_2460" = getelementptr i8, i8* %"$msgobj_2446", i32 65 + %"$msgobj_v_2461" = bitcast i8* %"$msgobj_v_2460" to %Uint128* + store %Uint128 %expected_balance, %Uint128* %"$msgobj_v_2461", align 8 + %"$msgobj_fname_2463" = getelementptr i8, i8* %"$msgobj_2446", i32 81 + %"$msgobj_fname_2464" = bitcast i8* %"$msgobj_fname_2463" to %String* + store %String { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$stringlit_2462", i32 0, i32 0), i32 6 }, %String* %"$msgobj_fname_2464", align 8 + %"$msgobj_td_2465" = getelementptr i8, i8* %"$msgobj_2446", i32 97 + %"$msgobj_td_2466" = bitcast i8* %"$msgobj_td_2465" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Uint128_94", %_TyDescrTy_Typ** %"$msgobj_td_2466", align 8 + %"$cur_balance_2467" = load %Uint128, %Uint128* %cur_balance, align 8 + %"$msgobj_v_2468" = getelementptr i8, i8* %"$msgobj_2446", i32 105 + %"$msgobj_v_2469" = bitcast i8* %"$msgobj_v_2468" to %Uint128* + store %Uint128 %"$cur_balance_2467", %Uint128* %"$msgobj_v_2469", align 8 + store i8* %"$msgobj_2446", i8** %e, align 8, !dbg !455 + %"$e_2471" = load i8*, i8** %e, align 8 + %"$_literal_cost_call_2473" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Exception_108", i8* %"$e_2471") + %"$gasrem_2474" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2475" = icmp ugt i64 %"$_literal_cost_call_2473", %"$gasrem_2474" + br i1 %"$gascmp_2475", label %"$out_of_gas_2476", label %"$have_gas_2477" + +"$out_of_gas_2476": ; preds = %"$have_gas_2444" + call void @_out_of_gas() + br label %"$have_gas_2477" + +"$have_gas_2477": ; preds = %"$out_of_gas_2476", %"$have_gas_2444" + %"$consume_2478" = sub i64 %"$gasrem_2474", %"$_literal_cost_call_2473" + store i64 %"$consume_2478", i64* @_gasrem, align 8 + %"$execptr_load_2479" = load i8*, i8** @_execptr, align 8 + %"$e_2480" = load i8*, i8** %e, align 8 + call void @_throw(i8* %"$execptr_load_2479", %_TyDescrTy_Typ* @"$TyDescr_Exception_108", i8* %"$e_2480"), !dbg !456 + br label %"$matchsucc_2427" + +"$empty_default_2431": ; preds = %"$have_gas_2425" + br label %"$matchsucc_2427" + +"$matchsucc_2427": ; preds = %"$have_gas_2477", %"$True_2432", %"$empty_default_2431" ret void } -define internal void @"$CheckRecipientBalance_2428"(%Uint128 %_amount, [20 x i8]* %"$_origin_2429", [20 x i8]* %"$_sender_2430", %Uint128 %expected_balance) !dbg !215 { +define internal void @"$CheckRecipientBalance_2485"(%Uint128 %_amount, [20 x i8]* %"$_origin_2486", [20 x i8]* %"$_sender_2487", %Uint128 %expected_balance) !dbg !457 { entry: - %_origin = load [20 x i8], [20 x i8]* %"$_origin_2429", align 1 - %_sender = load [20 x i8], [20 x i8]* %"$_sender_2430", align 1 - %"$gasrem_2431" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2432" = icmp ugt i64 1, %"$gasrem_2431" - br i1 %"$gascmp_2432", label %"$out_of_gas_2433", label %"$have_gas_2434" - -"$out_of_gas_2433": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_2434" - -"$have_gas_2434": ; preds = %"$out_of_gas_2433", %entry - %"$consume_2435" = sub i64 %"$gasrem_2431", 1 - store i64 %"$consume_2435", i64* @_gasrem, align 8 - %"$CheckSupportBalance__origin_2436" = alloca [20 x i8], align 1 - store [20 x i8] %_origin, [20 x i8]* %"$CheckSupportBalance__origin_2436", align 1 - %"$CheckSupportBalance__sender_2437" = alloca [20 x i8], align 1 - store [20 x i8] %_sender, [20 x i8]* %"$CheckSupportBalance__sender_2437", align 1 - call void @"$CheckSupportBalance_2334"(%Uint128 %_amount, [20 x i8]* %"$CheckSupportBalance__origin_2436", [20 x i8]* %"$CheckSupportBalance__sender_2437", %Uint128 %expected_balance), !dbg !216 + %"$expected_balance_2498" = alloca %Uint128, align 8 + store %Uint128 %expected_balance, %Uint128* %"$expected_balance_2498", align 8 + call void @llvm.dbg.declare(metadata %Uint128* %"$expected_balance_2498", metadata !458, metadata !DIExpression()), !dbg !459 + %"$_sender_2497" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_sender_2487", [20 x i8]** %"$_sender_2497", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_sender_2497", metadata !460, metadata !DIExpression()), !dbg !461 + %"$_origin_2496" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_origin_2486", [20 x i8]** %"$_origin_2496", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_origin_2496", metadata !462, metadata !DIExpression()), !dbg !461 + %"$_amount_2495" = alloca %Uint128, align 8 + store %Uint128 %_amount, %Uint128* %"$_amount_2495", align 8 + call void @llvm.dbg.declare(metadata %Uint128* %"$_amount_2495", metadata !463, metadata !DIExpression()), !dbg !461 + %_origin = load [20 x i8], [20 x i8]* %"$_origin_2486", align 1 + %_sender = load [20 x i8], [20 x i8]* %"$_sender_2487", align 1 + %"$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 = %entry + call void @_out_of_gas() + br label %"$have_gas_2491" + +"$have_gas_2491": ; preds = %"$out_of_gas_2490", %entry + %"$consume_2492" = sub i64 %"$gasrem_2488", 1 + store i64 %"$consume_2492", i64* @_gasrem, align 8 + %"$CheckSupportBalance__origin_2493" = alloca [20 x i8], align 1 + store [20 x i8] %_origin, [20 x i8]* %"$CheckSupportBalance__origin_2493", align 1 + %"$CheckSupportBalance__sender_2494" = alloca [20 x i8], align 1 + store [20 x i8] %_sender, [20 x i8]* %"$CheckSupportBalance__sender_2494", align 1 + call void @"$CheckSupportBalance_2387"(%Uint128 %_amount, [20 x i8]* %"$CheckSupportBalance__origin_2493", [20 x i8]* %"$CheckSupportBalance__sender_2494", %Uint128 %expected_balance), !dbg !464 ret void } -define void @CheckRecipientBalance(i8* %0) !dbg !217 { +define void @CheckRecipientBalance(i8* %0) !dbg !465 { 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]* - %"$expected_balance_2445" = getelementptr i8, i8* %0, i32 56 - %"$expected_balance_2446" = bitcast i8* %"$expected_balance_2445" to %Uint128* - %expected_balance = load %Uint128, %Uint128* %"$expected_balance_2446", align 8 - call void @"$CheckRecipientBalance_2428"(%Uint128 %_amount, [20 x i8]* %"$_origin_2442", [20 x i8]* %"$_sender_2444", %Uint128 %expected_balance), !dbg !218 + %"$_amount_2500" = getelementptr i8, i8* %0, i32 0 + %"$_amount_2501" = bitcast i8* %"$_amount_2500" to %Uint128* + %_amount = load %Uint128, %Uint128* %"$_amount_2501", align 8 + %"$_origin_2502" = getelementptr i8, i8* %0, i32 16 + %"$_origin_2503" = bitcast i8* %"$_origin_2502" to [20 x i8]* + %"$_sender_2504" = getelementptr i8, i8* %0, i32 36 + %"$_sender_2505" = bitcast i8* %"$_sender_2504" to [20 x i8]* + %"$expected_balance_2506" = getelementptr i8, i8* %0, i32 56 + %"$expected_balance_2507" = bitcast i8* %"$expected_balance_2506" to %Uint128* + %expected_balance = load %Uint128, %Uint128* %"$expected_balance_2507", align 8 + call void @"$CheckRecipientBalance_2485"(%Uint128 %_amount, [20 x i8]* %"$_origin_2503", [20 x i8]* %"$_sender_2505", %Uint128 %expected_balance), !dbg !466 ret void } -define internal void @"$Test_Send_4_2447"(%Uint128 %_amount, [20 x i8]* %"$_origin_2448", [20 x i8]* %"$_sender_2449") !dbg !219 { +define internal void @"$Test_Send_4_2508"(%Uint128 %_amount, [20 x i8]* %"$_origin_2509", [20 x i8]* %"$_sender_2510") !dbg !467 { entry: - %_origin = load [20 x i8], [20 x i8]* %"$_origin_2448", align 1 - %_sender = load [20 x i8], [20 x i8]* %"$_sender_2449", align 1 - %"$gasrem_2450" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2451" = icmp ugt i64 1, %"$gasrem_2450" - br i1 %"$gascmp_2451", label %"$out_of_gas_2452", label %"$have_gas_2453" - -"$out_of_gas_2452": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_2453" - -"$have_gas_2453": ; preds = %"$out_of_gas_2452", %entry - %"$consume_2454" = sub i64 %"$gasrem_2450", 1 - store i64 %"$consume_2454", i64* @_gasrem, align 8 - %"$AssertReset__origin_2455" = alloca [20 x i8], align 1 - store [20 x i8] %_origin, [20 x i8]* %"$AssertReset__origin_2455", align 1 - %"$AssertReset__sender_2456" = alloca [20 x i8], align 1 - store [20 x i8] %_sender, [20 x i8]* %"$AssertReset__sender_2456", align 1 - call void @"$AssertReset_855"(%Uint128 %_amount, [20 x i8]* %"$AssertReset__origin_2455", [20 x i8]* %"$AssertReset__sender_2456"), !dbg !220 + %"$_sender_2718" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_sender_2510", [20 x i8]** %"$_sender_2718", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_sender_2718", metadata !468, metadata !DIExpression()), !dbg !469 + %"$_origin_2717" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_origin_2509", [20 x i8]** %"$_origin_2717", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_origin_2717", metadata !470, metadata !DIExpression()), !dbg !469 + %"$_amount_2716" = alloca %Uint128, align 8 + store %Uint128 %_amount, %Uint128* %"$_amount_2716", align 8 + call void @llvm.dbg.declare(metadata %Uint128* %"$_amount_2716", metadata !471, metadata !DIExpression()), !dbg !469 + %_origin = load [20 x i8], [20 x i8]* %"$_origin_2509", align 1 + %_sender = load [20 x i8], [20 x i8]* %"$_sender_2510", align 1 + %"$gasrem_2511" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2512" = icmp ugt i64 1, %"$gasrem_2511" + br i1 %"$gascmp_2512", label %"$out_of_gas_2513", label %"$have_gas_2514" + +"$out_of_gas_2513": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_2514" + +"$have_gas_2514": ; preds = %"$out_of_gas_2513", %entry + %"$consume_2515" = sub i64 %"$gasrem_2511", 1 + store i64 %"$consume_2515", i64* @_gasrem, align 8 + %"$AssertReset__origin_2516" = alloca [20 x i8], align 1 + store [20 x i8] %_origin, [20 x i8]* %"$AssertReset__origin_2516", align 1 + %"$AssertReset__sender_2517" = alloca [20 x i8], align 1 + store [20 x i8] %_sender, [20 x i8]* %"$AssertReset__sender_2517", align 1 + call void @"$AssertReset_869"(%Uint128 %_amount, [20 x i8]* %"$AssertReset__origin_2516", [20 x i8]* %"$AssertReset__sender_2517"), !dbg !472 %amount = alloca %Uint128, align 8 - %"$execptr_load_2458" = load i8*, i8** @_execptr, align 8 - %"$amount_call_2459" = call i8* @_fetch_field(i8* %"$execptr_load_2458", i8* getelementptr inbounds ([16 x i8], [16 x i8]* @"$outgoing_amount_2457", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Uint128_94", i32 0, i8* null, i32 1), !dbg !221 - %"$amount_2460" = bitcast i8* %"$amount_call_2459" to %Uint128* - %"$amount_2461" = load %Uint128, %Uint128* %"$amount_2460", align 8 - store %Uint128 %"$amount_2461", %Uint128* %amount, align 8 - %"$_literal_cost_amount_2462" = alloca %Uint128, align 8 - %"$amount_2463" = load %Uint128, %Uint128* %amount, align 8 - store %Uint128 %"$amount_2463", %Uint128* %"$_literal_cost_amount_2462", align 8 - %"$$_literal_cost_amount_2462_2464" = bitcast %Uint128* %"$_literal_cost_amount_2462" to i8* - %"$_literal_cost_call_2465" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Uint128_94", i8* %"$$_literal_cost_amount_2462_2464") - %"$gasadd_2466" = add i64 %"$_literal_cost_call_2465", 0 - %"$gasrem_2467" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2468" = icmp ugt i64 %"$gasadd_2466", %"$gasrem_2467" - br i1 %"$gascmp_2468", label %"$out_of_gas_2469", label %"$have_gas_2470" - -"$out_of_gas_2469": ; preds = %"$have_gas_2453" - call void @_out_of_gas() - br label %"$have_gas_2470" - -"$have_gas_2470": ; preds = %"$out_of_gas_2469", %"$have_gas_2453" - %"$consume_2471" = sub i64 %"$gasrem_2467", %"$gasadd_2466" - store i64 %"$consume_2471", i64* @_gasrem, align 8 - %init_bal = alloca %Uint128, align 8 - %"$execptr_load_2473" = load i8*, i8** @_execptr, align 8 - %"$init_bal_call_2474" = call i8* @_fetch_field(i8* %"$execptr_load_2473", i8* getelementptr inbounds ([9 x i8], [9 x i8]* @"$_balance_2472", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Uint128_94", i32 0, i8* null, i32 1), !dbg !222 - %"$init_bal_2475" = bitcast i8* %"$init_bal_call_2474" to %Uint128* - %"$init_bal_2476" = load %Uint128, %Uint128* %"$init_bal_2475", align 8 - store %Uint128 %"$init_bal_2476", %Uint128* %init_bal, align 8 - %"$_literal_cost_init_bal_2477" = alloca %Uint128, align 8 - %"$init_bal_2478" = load %Uint128, %Uint128* %init_bal, align 8 - store %Uint128 %"$init_bal_2478", %Uint128* %"$_literal_cost_init_bal_2477", align 8 - %"$$_literal_cost_init_bal_2477_2479" = bitcast %Uint128* %"$_literal_cost_init_bal_2477" to i8* - %"$_literal_cost_call_2480" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Uint128_94", i8* %"$$_literal_cost_init_bal_2477_2479") - %"$gasadd_2481" = add i64 %"$_literal_cost_call_2480", 0 - %"$gasrem_2482" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2483" = icmp ugt i64 %"$gasadd_2481", %"$gasrem_2482" - br i1 %"$gascmp_2483", label %"$out_of_gas_2484", label %"$have_gas_2485" - -"$out_of_gas_2484": ; preds = %"$have_gas_2470" - call void @_out_of_gas() - br label %"$have_gas_2485" - -"$have_gas_2485": ; preds = %"$out_of_gas_2484", %"$have_gas_2470" - %"$consume_2486" = sub i64 %"$gasrem_2482", %"$gasadd_2481" - store i64 %"$consume_2486", i64* @_gasrem, 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_2485" - call void @_out_of_gas() - br label %"$have_gas_2490" - -"$have_gas_2490": ; preds = %"$out_of_gas_2489", %"$have_gas_2485" - %"$consume_2491" = sub i64 %"$gasrem_2487", 1 - store i64 %"$consume_2491", i64* @_gasrem, align 8 - %msg1 = alloca i8*, align 8 - %"$gasrem_2492" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2493" = icmp ugt i64 1, %"$gasrem_2492" - br i1 %"$gascmp_2493", label %"$out_of_gas_2494", label %"$have_gas_2495" - -"$out_of_gas_2494": ; preds = %"$have_gas_2490" - call void @_out_of_gas() - br label %"$have_gas_2495" - -"$have_gas_2495": ; preds = %"$out_of_gas_2494", %"$have_gas_2490" - %"$consume_2496" = sub i64 %"$gasrem_2492", 1 - store i64 %"$consume_2496", i64* @_gasrem, align 8 - %"$msgobj_2497_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$msgobj_2497_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_2497_salloc_load", i64 125) - %"$msgobj_2497_salloc" = bitcast i8* %"$msgobj_2497_salloc_salloc" to [125 x i8]* - %"$msgobj_2497" = bitcast [125 x i8]* %"$msgobj_2497_salloc" to i8* - store i8 3, i8* %"$msgobj_2497", align 1 - %"$msgobj_fname_2499" = getelementptr i8, i8* %"$msgobj_2497", i32 1 - %"$msgobj_fname_2500" = bitcast i8* %"$msgobj_fname_2499" to %String* - store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_2498", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_2500", align 8 - %"$msgobj_td_2501" = getelementptr i8, i8* %"$msgobj_2497", i32 17 - %"$msgobj_td_2502" = bitcast i8* %"$msgobj_td_2501" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_114", %_TyDescrTy_Typ** %"$msgobj_td_2502", align 8 - %"$support_contract_2503" = load [20 x i8], [20 x i8]* @_cparam_support_contract, align 1 - %"$msgobj_v_2504" = getelementptr i8, i8* %"$msgobj_2497", i32 25 - %"$msgobj_v_2505" = bitcast i8* %"$msgobj_v_2504" to [20 x i8]* - store [20 x i8] %"$support_contract_2503", [20 x i8]* %"$msgobj_v_2505", align 1 - %"$msgobj_fname_2507" = getelementptr i8, i8* %"$msgobj_2497", i32 45 - %"$msgobj_fname_2508" = bitcast i8* %"$msgobj_fname_2507" to %String* - store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_2506", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_2508", align 8 - %"$msgobj_td_2509" = getelementptr i8, i8* %"$msgobj_2497", i32 61 - %"$msgobj_td_2510" = bitcast i8* %"$msgobj_td_2509" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_String_100", %_TyDescrTy_Typ** %"$msgobj_td_2510", align 8 - %"$msgobj_v_2512" = getelementptr i8, i8* %"$msgobj_2497", i32 69 - %"$msgobj_v_2513" = bitcast i8* %"$msgobj_v_2512" to %String* - store %String { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$stringlit_2511", i32 0, i32 0), i32 6 }, %String* %"$msgobj_v_2513", align 8 - %"$msgobj_fname_2515" = getelementptr i8, i8* %"$msgobj_2497", i32 85 - %"$msgobj_fname_2516" = bitcast i8* %"$msgobj_fname_2515" to %String* - store %String { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$stringlit_2514", i32 0, i32 0), i32 7 }, %String* %"$msgobj_fname_2516", align 8 - %"$msgobj_td_2517" = getelementptr i8, i8* %"$msgobj_2497", i32 101 - %"$msgobj_td_2518" = bitcast i8* %"$msgobj_td_2517" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Uint128_94", %_TyDescrTy_Typ** %"$msgobj_td_2518", align 8 - %"$amount_2519" = load %Uint128, %Uint128* %amount, align 8 - %"$msgobj_v_2520" = getelementptr i8, i8* %"$msgobj_2497", i32 109 - %"$msgobj_v_2521" = bitcast i8* %"$msgobj_v_2520" to %Uint128* - store %Uint128 %"$amount_2519", %Uint128* %"$msgobj_v_2521", align 8 - store i8* %"$msgobj_2497", i8** %msg1, align 8, !dbg !223 - %"$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_2525": ; preds = %"$have_gas_2495" - call void @_out_of_gas() - br label %"$have_gas_2526" - -"$have_gas_2526": ; preds = %"$out_of_gas_2525", %"$have_gas_2495" - %"$consume_2527" = sub i64 %"$gasrem_2523", 1 - store i64 %"$consume_2527", i64* @_gasrem, align 8 - %msgs1 = alloca %TName_List_Message*, align 8 + call void @llvm.dbg.declare(metadata %Uint128* %amount, metadata !473, metadata !DIExpression()), !dbg !474 + %"$execptr_load_2519" = load i8*, i8** @_execptr, align 8 + %"$amount_call_2520" = call i8* @_fetch_field(i8* %"$execptr_load_2519", i8* getelementptr inbounds ([16 x i8], [16 x i8]* @"$outgoing_amount_2518", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Uint128_94", i32 0, i8* null, i32 1), !dbg !474 + %"$amount_2521" = bitcast i8* %"$amount_call_2520" to %Uint128* + %"$amount_2522" = load %Uint128, %Uint128* %"$amount_2521", align 8 + store %Uint128 %"$amount_2522", %Uint128* %amount, align 8 + %"$_literal_cost_amount_2523" = alloca %Uint128, align 8 + %"$amount_2524" = load %Uint128, %Uint128* %amount, align 8 + store %Uint128 %"$amount_2524", %Uint128* %"$_literal_cost_amount_2523", align 8 + %"$$_literal_cost_amount_2523_2525" = bitcast %Uint128* %"$_literal_cost_amount_2523" to i8* + %"$_literal_cost_call_2526" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Uint128_94", i8* %"$$_literal_cost_amount_2523_2525") + %"$gasadd_2527" = add i64 %"$_literal_cost_call_2526", 0 %"$gasrem_2528" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2529" = icmp ugt i64 1, %"$gasrem_2528" + %"$gascmp_2529" = icmp ugt i64 %"$gasadd_2527", %"$gasrem_2528" br i1 %"$gascmp_2529", label %"$out_of_gas_2530", label %"$have_gas_2531" -"$out_of_gas_2530": ; preds = %"$have_gas_2526" +"$out_of_gas_2530": ; preds = %"$have_gas_2514" call void @_out_of_gas() br label %"$have_gas_2531" -"$have_gas_2531": ; preds = %"$out_of_gas_2530", %"$have_gas_2526" - %"$consume_2532" = sub i64 %"$gasrem_2528", 1 +"$have_gas_2531": ; preds = %"$out_of_gas_2530", %"$have_gas_2514" + %"$consume_2532" = sub i64 %"$gasrem_2528", %"$gasadd_2527" store i64 %"$consume_2532", i64* @_gasrem, align 8 + %init_bal = alloca %Uint128, align 8 + call void @llvm.dbg.declare(metadata %Uint128* %init_bal, metadata !475, metadata !DIExpression()), !dbg !476 + %"$execptr_load_2534" = load i8*, i8** @_execptr, align 8 + %"$init_bal_call_2535" = call i8* @_fetch_field(i8* %"$execptr_load_2534", i8* getelementptr inbounds ([9 x i8], [9 x i8]* @"$_balance_2533", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Uint128_94", i32 0, i8* null, i32 1), !dbg !476 + %"$init_bal_2536" = bitcast i8* %"$init_bal_call_2535" to %Uint128* + %"$init_bal_2537" = load %Uint128, %Uint128* %"$init_bal_2536", align 8 + store %Uint128 %"$init_bal_2537", %Uint128* %init_bal, align 8 + %"$_literal_cost_init_bal_2538" = alloca %Uint128, align 8 + %"$init_bal_2539" = load %Uint128, %Uint128* %init_bal, align 8 + store %Uint128 %"$init_bal_2539", %Uint128* %"$_literal_cost_init_bal_2538", align 8 + %"$$_literal_cost_init_bal_2538_2540" = bitcast %Uint128* %"$_literal_cost_init_bal_2538" to i8* + %"$_literal_cost_call_2541" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Uint128_94", i8* %"$$_literal_cost_init_bal_2538_2540") + %"$gasadd_2542" = add i64 %"$_literal_cost_call_2541", 0 + %"$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_2531" + call void @_out_of_gas() + br label %"$have_gas_2546" + +"$have_gas_2546": ; preds = %"$out_of_gas_2545", %"$have_gas_2531" + %"$consume_2547" = sub i64 %"$gasrem_2543", %"$gasadd_2542" + store i64 %"$consume_2547", i64* @_gasrem, align 8 + %"$gasrem_2548" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2549" = icmp ugt i64 1, %"$gasrem_2548" + br i1 %"$gascmp_2549", label %"$out_of_gas_2550", label %"$have_gas_2551" + +"$out_of_gas_2550": ; preds = %"$have_gas_2546" + call void @_out_of_gas() + br label %"$have_gas_2551" + +"$have_gas_2551": ; preds = %"$out_of_gas_2550", %"$have_gas_2546" + %"$consume_2552" = sub i64 %"$gasrem_2548", 1 + store i64 %"$consume_2552", i64* @_gasrem, align 8 + %msg1 = alloca i8*, align 8 + call void @llvm.dbg.declare(metadata i8** %msg1, metadata !477, metadata !DIExpression()), !dbg !478 + %"$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_2551" + call void @_out_of_gas() + br label %"$have_gas_2556" + +"$have_gas_2556": ; preds = %"$out_of_gas_2555", %"$have_gas_2551" + %"$consume_2557" = sub i64 %"$gasrem_2553", 1 + store i64 %"$consume_2557", i64* @_gasrem, align 8 + %"$msgobj_2558_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$msgobj_2558_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_2558_salloc_load", i64 125) + %"$msgobj_2558_salloc" = bitcast i8* %"$msgobj_2558_salloc_salloc" to [125 x i8]* + %"$msgobj_2558" = bitcast [125 x i8]* %"$msgobj_2558_salloc" to i8* + store i8 3, i8* %"$msgobj_2558", align 1 + %"$msgobj_fname_2560" = getelementptr i8, i8* %"$msgobj_2558", i32 1 + %"$msgobj_fname_2561" = bitcast i8* %"$msgobj_fname_2560" to %String* + store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_2559", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_2561", align 8 + %"$msgobj_td_2562" = getelementptr i8, i8* %"$msgobj_2558", i32 17 + %"$msgobj_td_2563" = bitcast i8* %"$msgobj_td_2562" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_114", %_TyDescrTy_Typ** %"$msgobj_td_2563", align 8 + %"$support_contract_2564" = load [20 x i8], [20 x i8]* @_cparam_support_contract, align 1 + %"$msgobj_v_2565" = getelementptr i8, i8* %"$msgobj_2558", i32 25 + %"$msgobj_v_2566" = bitcast i8* %"$msgobj_v_2565" to [20 x i8]* + store [20 x i8] %"$support_contract_2564", [20 x i8]* %"$msgobj_v_2566", align 1 + %"$msgobj_fname_2568" = getelementptr i8, i8* %"$msgobj_2558", i32 45 + %"$msgobj_fname_2569" = bitcast i8* %"$msgobj_fname_2568" to %String* + store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_2567", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_2569", align 8 + %"$msgobj_td_2570" = getelementptr i8, i8* %"$msgobj_2558", i32 61 + %"$msgobj_td_2571" = bitcast i8* %"$msgobj_td_2570" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_String_100", %_TyDescrTy_Typ** %"$msgobj_td_2571", align 8 + %"$msgobj_v_2573" = getelementptr i8, i8* %"$msgobj_2558", i32 69 + %"$msgobj_v_2574" = bitcast i8* %"$msgobj_v_2573" to %String* + store %String { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$stringlit_2572", i32 0, i32 0), i32 6 }, %String* %"$msgobj_v_2574", align 8 + %"$msgobj_fname_2576" = getelementptr i8, i8* %"$msgobj_2558", i32 85 + %"$msgobj_fname_2577" = bitcast i8* %"$msgobj_fname_2576" to %String* + store %String { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$stringlit_2575", i32 0, i32 0), i32 7 }, %String* %"$msgobj_fname_2577", align 8 + %"$msgobj_td_2578" = getelementptr i8, i8* %"$msgobj_2558", i32 101 + %"$msgobj_td_2579" = bitcast i8* %"$msgobj_td_2578" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Uint128_94", %_TyDescrTy_Typ** %"$msgobj_td_2579", align 8 + %"$amount_2580" = load %Uint128, %Uint128* %amount, align 8 + %"$msgobj_v_2581" = getelementptr i8, i8* %"$msgobj_2558", i32 109 + %"$msgobj_v_2582" = bitcast i8* %"$msgobj_v_2581" to %Uint128* + store %Uint128 %"$amount_2580", %Uint128* %"$msgobj_v_2582", align 8 + store i8* %"$msgobj_2558", i8** %msg1, align 8, !dbg !479 + %"$gasrem_2584" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2585" = icmp ugt i64 1, %"$gasrem_2584" + br i1 %"$gascmp_2585", label %"$out_of_gas_2586", label %"$have_gas_2587" + +"$out_of_gas_2586": ; preds = %"$have_gas_2556" + call void @_out_of_gas() + br label %"$have_gas_2587" + +"$have_gas_2587": ; preds = %"$out_of_gas_2586", %"$have_gas_2556" + %"$consume_2588" = sub i64 %"$gasrem_2584", 1 + store i64 %"$consume_2588", i64* @_gasrem, align 8 + %msgs1 = alloca %TName_List_Message*, align 8 + call void @llvm.dbg.declare(metadata %TName_List_Message** %msgs1, metadata !480, metadata !DIExpression()), !dbg !481 + %"$gasrem_2589" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2590" = icmp ugt i64 1, %"$gasrem_2589" + br i1 %"$gascmp_2590", label %"$out_of_gas_2591", label %"$have_gas_2592" + +"$out_of_gas_2591": ; preds = %"$have_gas_2587" + call void @_out_of_gas() + br label %"$have_gas_2592" + +"$have_gas_2592": ; preds = %"$out_of_gas_2591", %"$have_gas_2587" + %"$consume_2593" = sub i64 %"$gasrem_2589", 1 + store i64 %"$consume_2593", i64* @_gasrem, align 8 %"$accounting_tests.one_msg_31" = alloca %TName_List_Message*, align 8 - %"$accounting_tests.one_msg_2533" = load { %TName_List_Message* (i8*, i8*)*, i8* }, { %TName_List_Message* (i8*, i8*)*, i8* }* @accounting_tests.one_msg, align 8 - %"$accounting_tests.one_msg_fptr_2534" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$accounting_tests.one_msg_2533", 0 - %"$accounting_tests.one_msg_envptr_2535" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$accounting_tests.one_msg_2533", 1 - %"$msg1_2536" = load i8*, i8** %msg1, align 8 - %"$accounting_tests.one_msg_call_2537" = call %TName_List_Message* %"$accounting_tests.one_msg_fptr_2534"(i8* %"$accounting_tests.one_msg_envptr_2535", i8* %"$msg1_2536"), !dbg !224 - store %TName_List_Message* %"$accounting_tests.one_msg_call_2537", %TName_List_Message** %"$accounting_tests.one_msg_31", align 8, !dbg !224 - %"$$accounting_tests.one_msg_31_2538" = load %TName_List_Message*, %TName_List_Message** %"$accounting_tests.one_msg_31", align 8 - store %TName_List_Message* %"$$accounting_tests.one_msg_31_2538", %TName_List_Message** %msgs1, align 8, !dbg !224 - %"$msgs1_2539" = load %TName_List_Message*, %TName_List_Message** %msgs1, align 8 - %"$$msgs1_2539_2540" = bitcast %TName_List_Message* %"$msgs1_2539" to i8* - %"$_literal_cost_call_2541" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_120", i8* %"$$msgs1_2539_2540") - %"$gasrem_2542" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2543" = icmp ugt i64 %"$_literal_cost_call_2541", %"$gasrem_2542" - br i1 %"$gascmp_2543", label %"$out_of_gas_2544", label %"$have_gas_2545" - -"$out_of_gas_2544": ; preds = %"$have_gas_2531" - call void @_out_of_gas() - br label %"$have_gas_2545" - -"$have_gas_2545": ; preds = %"$out_of_gas_2544", %"$have_gas_2531" - %"$consume_2546" = sub i64 %"$gasrem_2542", %"$_literal_cost_call_2541" - store i64 %"$consume_2546", i64* @_gasrem, align 8 - %"$execptr_load_2547" = load i8*, i8** @_execptr, align 8 - %"$msgs1_2548" = load %TName_List_Message*, %TName_List_Message** %msgs1, align 8 - call void @_send(i8* %"$execptr_load_2547", %_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_120", %TName_List_Message* %"$msgs1_2548"), !dbg !225 - %"$gasrem_2549" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2550" = icmp ugt i64 1, %"$gasrem_2549" - br i1 %"$gascmp_2550", label %"$out_of_gas_2551", label %"$have_gas_2552" - -"$out_of_gas_2551": ; preds = %"$have_gas_2545" - call void @_out_of_gas() - br label %"$have_gas_2552" - -"$have_gas_2552": ; preds = %"$out_of_gas_2551", %"$have_gas_2545" - %"$consume_2553" = sub i64 %"$gasrem_2549", 1 - store i64 %"$consume_2553", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_List_Message** %"$accounting_tests.one_msg_31", metadata !482, metadata !DIExpression()), !dbg !483 + %"$accounting_tests.one_msg_2594" = load { %TName_List_Message* (i8*, i8*)*, i8* }, { %TName_List_Message* (i8*, i8*)*, i8* }* @accounting_tests.one_msg, align 8 + %"$accounting_tests.one_msg_fptr_2595" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$accounting_tests.one_msg_2594", 0 + %"$accounting_tests.one_msg_envptr_2596" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$accounting_tests.one_msg_2594", 1 + %"$msg1_2597" = load i8*, i8** %msg1, align 8 + %"$accounting_tests.one_msg_call_2598" = call %TName_List_Message* %"$accounting_tests.one_msg_fptr_2595"(i8* %"$accounting_tests.one_msg_envptr_2596", i8* %"$msg1_2597"), !dbg !483 + store %TName_List_Message* %"$accounting_tests.one_msg_call_2598", %TName_List_Message** %"$accounting_tests.one_msg_31", align 8, !dbg !483 + %"$$accounting_tests.one_msg_31_2599" = load %TName_List_Message*, %TName_List_Message** %"$accounting_tests.one_msg_31", align 8 + store %TName_List_Message* %"$$accounting_tests.one_msg_31_2599", %TName_List_Message** %msgs1, align 8, !dbg !483 + %"$msgs1_2600" = load %TName_List_Message*, %TName_List_Message** %msgs1, align 8 + %"$$msgs1_2600_2601" = bitcast %TName_List_Message* %"$msgs1_2600" to i8* + %"$_literal_cost_call_2602" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_120", i8* %"$$msgs1_2600_2601") + %"$gasrem_2603" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2604" = icmp ugt i64 %"$_literal_cost_call_2602", %"$gasrem_2603" + br i1 %"$gascmp_2604", label %"$out_of_gas_2605", label %"$have_gas_2606" + +"$out_of_gas_2605": ; preds = %"$have_gas_2592" + call void @_out_of_gas() + br label %"$have_gas_2606" + +"$have_gas_2606": ; preds = %"$out_of_gas_2605", %"$have_gas_2592" + %"$consume_2607" = sub i64 %"$gasrem_2603", %"$_literal_cost_call_2602" + store i64 %"$consume_2607", i64* @_gasrem, align 8 + %"$execptr_load_2608" = load i8*, i8** @_execptr, align 8 + %"$msgs1_2609" = load %TName_List_Message*, %TName_List_Message** %msgs1, align 8 + call void @_send(i8* %"$execptr_load_2608", %_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_120", %TName_List_Message* %"$msgs1_2609"), !dbg !484 + %"$gasrem_2610" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2611" = icmp ugt i64 1, %"$gasrem_2610" + br i1 %"$gascmp_2611", label %"$out_of_gas_2612", label %"$have_gas_2613" + +"$out_of_gas_2612": ; preds = %"$have_gas_2606" + call void @_out_of_gas() + br label %"$have_gas_2613" + +"$have_gas_2613": ; preds = %"$out_of_gas_2612", %"$have_gas_2606" + %"$consume_2614" = sub i64 %"$gasrem_2610", 1 + store i64 %"$consume_2614", i64* @_gasrem, align 8 %expected_intermediate_balance = alloca %Uint128, align 8 - %"$gasrem_2555" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2556" = icmp ugt i64 8, %"$gasrem_2555" - br i1 %"$gascmp_2556", label %"$out_of_gas_2557", label %"$have_gas_2558" - -"$out_of_gas_2557": ; preds = %"$have_gas_2552" - call void @_out_of_gas() - br label %"$have_gas_2558" - -"$have_gas_2558": ; preds = %"$out_of_gas_2557", %"$have_gas_2552" - %"$consume_2559" = sub i64 %"$gasrem_2555", 8 - store i64 %"$consume_2559", i64* @_gasrem, align 8 - %"$init_bal_2560" = load %Uint128, %Uint128* %init_bal, align 8 - %"$amount_2561" = load %Uint128, %Uint128* %amount, align 8 - %"$sub_call_2562" = call %Uint128 @_sub_Uint128(%Uint128 %"$init_bal_2560", %Uint128 %"$amount_2561"), !dbg !226 - store %Uint128 %"$sub_call_2562", %Uint128* %expected_intermediate_balance, align 8, !dbg !226 - %"$gasrem_2563" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2564" = icmp ugt i64 1, %"$gasrem_2563" - br i1 %"$gascmp_2564", label %"$out_of_gas_2565", label %"$have_gas_2566" - -"$out_of_gas_2565": ; preds = %"$have_gas_2558" - call void @_out_of_gas() - br label %"$have_gas_2566" - -"$have_gas_2566": ; preds = %"$out_of_gas_2565", %"$have_gas_2558" - %"$consume_2567" = sub i64 %"$gasrem_2563", 1 - store i64 %"$consume_2567", i64* @_gasrem, align 8 - %"$CheckBalance__origin_2568" = alloca [20 x i8], align 1 - store [20 x i8] %_origin, [20 x i8]* %"$CheckBalance__origin_2568", align 1 - %"$CheckBalance__sender_2569" = alloca [20 x i8], align 1 - store [20 x i8] %_sender, [20 x i8]* %"$CheckBalance__sender_2569", align 1 - %"$expected_intermediate_balance_2570" = load %Uint128, %Uint128* %expected_intermediate_balance, align 8 - call void @"$CheckBalance_2223"(%Uint128 %_amount, [20 x i8]* %"$CheckBalance__origin_2568", [20 x i8]* %"$CheckBalance__sender_2569", %Uint128 %"$expected_intermediate_balance_2570"), !dbg !227 - %"$gasrem_2571" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2572" = icmp ugt i64 1, %"$gasrem_2571" - br i1 %"$gascmp_2572", label %"$out_of_gas_2573", label %"$have_gas_2574" - -"$out_of_gas_2573": ; preds = %"$have_gas_2566" - call void @_out_of_gas() - br label %"$have_gas_2574" - -"$have_gas_2574": ; preds = %"$out_of_gas_2573", %"$have_gas_2566" - %"$consume_2575" = sub i64 %"$gasrem_2571", 1 - store i64 %"$consume_2575", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %Uint128* %expected_intermediate_balance, metadata !485, metadata !DIExpression()), !dbg !486 + %"$gasrem_2616" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2617" = icmp ugt i64 8, %"$gasrem_2616" + br i1 %"$gascmp_2617", label %"$out_of_gas_2618", label %"$have_gas_2619" + +"$out_of_gas_2618": ; preds = %"$have_gas_2613" + call void @_out_of_gas() + br label %"$have_gas_2619" + +"$have_gas_2619": ; preds = %"$out_of_gas_2618", %"$have_gas_2613" + %"$consume_2620" = sub i64 %"$gasrem_2616", 8 + store i64 %"$consume_2620", i64* @_gasrem, align 8 + %"$init_bal_2621" = load %Uint128, %Uint128* %init_bal, align 8 + %"$amount_2622" = load %Uint128, %Uint128* %amount, align 8 + %"$sub_call_2623" = call %Uint128 @_sub_Uint128(%Uint128 %"$init_bal_2621", %Uint128 %"$amount_2622"), !dbg !487 + store %Uint128 %"$sub_call_2623", %Uint128* %expected_intermediate_balance, align 8, !dbg !487 + %"$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_2619" + call void @_out_of_gas() + br label %"$have_gas_2627" + +"$have_gas_2627": ; preds = %"$out_of_gas_2626", %"$have_gas_2619" + %"$consume_2628" = sub i64 %"$gasrem_2624", 1 + store i64 %"$consume_2628", i64* @_gasrem, align 8 + %"$CheckBalance__origin_2629" = alloca [20 x i8], align 1 + store [20 x i8] %_origin, [20 x i8]* %"$CheckBalance__origin_2629", align 1 + %"$CheckBalance__sender_2630" = alloca [20 x i8], align 1 + store [20 x i8] %_sender, [20 x i8]* %"$CheckBalance__sender_2630", align 1 + %"$expected_intermediate_balance_2631" = load %Uint128, %Uint128* %expected_intermediate_balance, align 8 + call void @"$CheckBalance_2268"(%Uint128 %_amount, [20 x i8]* %"$CheckBalance__origin_2629", [20 x i8]* %"$CheckBalance__sender_2630", %Uint128 %"$expected_intermediate_balance_2631"), !dbg !488 + %"$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 = %"$have_gas_2627" + call void @_out_of_gas() + br label %"$have_gas_2635" + +"$have_gas_2635": ; preds = %"$out_of_gas_2634", %"$have_gas_2627" + %"$consume_2636" = sub i64 %"$gasrem_2632", 1 + store i64 %"$consume_2636", i64* @_gasrem, align 8 %msg2 = alloca i8*, align 8 - %"$gasrem_2576" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2577" = icmp ugt i64 1, %"$gasrem_2576" - br i1 %"$gascmp_2577", label %"$out_of_gas_2578", label %"$have_gas_2579" - -"$out_of_gas_2578": ; preds = %"$have_gas_2574" - call void @_out_of_gas() - br label %"$have_gas_2579" - -"$have_gas_2579": ; preds = %"$out_of_gas_2578", %"$have_gas_2574" - %"$consume_2580" = sub i64 %"$gasrem_2576", 1 - store i64 %"$consume_2580", i64* @_gasrem, align 8 - %"$msgobj_2581_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$msgobj_2581_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_2581_salloc_load", i64 125) - %"$msgobj_2581_salloc" = bitcast i8* %"$msgobj_2581_salloc_salloc" to [125 x i8]* - %"$msgobj_2581" = bitcast [125 x i8]* %"$msgobj_2581_salloc" to i8* - store i8 3, i8* %"$msgobj_2581", align 1 - %"$msgobj_fname_2583" = getelementptr i8, i8* %"$msgobj_2581", i32 1 - %"$msgobj_fname_2584" = bitcast i8* %"$msgobj_fname_2583" to %String* - store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_2582", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_2584", align 8 - %"$msgobj_td_2585" = getelementptr i8, i8* %"$msgobj_2581", i32 17 - %"$msgobj_td_2586" = bitcast i8* %"$msgobj_td_2585" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_114", %_TyDescrTy_Typ** %"$msgobj_td_2586", align 8 - %"$support_contract_2587" = load [20 x i8], [20 x i8]* @_cparam_support_contract, align 1 - %"$msgobj_v_2588" = getelementptr i8, i8* %"$msgobj_2581", i32 25 - %"$msgobj_v_2589" = bitcast i8* %"$msgobj_v_2588" to [20 x i8]* - store [20 x i8] %"$support_contract_2587", [20 x i8]* %"$msgobj_v_2589", align 1 - %"$msgobj_fname_2591" = getelementptr i8, i8* %"$msgobj_2581", i32 45 - %"$msgobj_fname_2592" = bitcast i8* %"$msgobj_fname_2591" to %String* - store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_2590", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_2592", align 8 - %"$msgobj_td_2593" = getelementptr i8, i8* %"$msgobj_2581", i32 61 - %"$msgobj_td_2594" = bitcast i8* %"$msgobj_td_2593" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_String_100", %_TyDescrTy_Typ** %"$msgobj_td_2594", align 8 - %"$msgobj_v_2596" = getelementptr i8, i8* %"$msgobj_2581", i32 69 - %"$msgobj_v_2597" = bitcast i8* %"$msgobj_v_2596" to %String* - store %String { i8* getelementptr inbounds ([9 x i8], [9 x i8]* @"$stringlit_2595", i32 0, i32 0), i32 9 }, %String* %"$msgobj_v_2597", align 8 - %"$msgobj_fname_2599" = getelementptr i8, i8* %"$msgobj_2581", i32 85 - %"$msgobj_fname_2600" = bitcast i8* %"$msgobj_fname_2599" to %String* - store %String { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$stringlit_2598", i32 0, i32 0), i32 7 }, %String* %"$msgobj_fname_2600", align 8 - %"$msgobj_td_2601" = getelementptr i8, i8* %"$msgobj_2581", i32 101 - %"$msgobj_td_2602" = bitcast i8* %"$msgobj_td_2601" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Uint128_94", %_TyDescrTy_Typ** %"$msgobj_td_2602", align 8 - %"$amount_2603" = load %Uint128, %Uint128* %amount, align 8 - %"$msgobj_v_2604" = getelementptr i8, i8* %"$msgobj_2581", i32 109 - %"$msgobj_v_2605" = bitcast i8* %"$msgobj_v_2604" to %Uint128* - store %Uint128 %"$amount_2603", %Uint128* %"$msgobj_v_2605", align 8 - store i8* %"$msgobj_2581", i8** %msg2, align 8, !dbg !228 - %"$gasrem_2607" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2608" = icmp ugt i64 1, %"$gasrem_2607" - br i1 %"$gascmp_2608", label %"$out_of_gas_2609", label %"$have_gas_2610" - -"$out_of_gas_2609": ; preds = %"$have_gas_2579" - call void @_out_of_gas() - br label %"$have_gas_2610" - -"$have_gas_2610": ; preds = %"$out_of_gas_2609", %"$have_gas_2579" - %"$consume_2611" = sub i64 %"$gasrem_2607", 1 - store i64 %"$consume_2611", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata i8** %msg2, metadata !489, metadata !DIExpression()), !dbg !490 + %"$gasrem_2637" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2638" = icmp ugt i64 1, %"$gasrem_2637" + br i1 %"$gascmp_2638", label %"$out_of_gas_2639", label %"$have_gas_2640" + +"$out_of_gas_2639": ; preds = %"$have_gas_2635" + call void @_out_of_gas() + br label %"$have_gas_2640" + +"$have_gas_2640": ; preds = %"$out_of_gas_2639", %"$have_gas_2635" + %"$consume_2641" = sub i64 %"$gasrem_2637", 1 + store i64 %"$consume_2641", i64* @_gasrem, align 8 + %"$msgobj_2642_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$msgobj_2642_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_2642_salloc_load", i64 125) + %"$msgobj_2642_salloc" = bitcast i8* %"$msgobj_2642_salloc_salloc" to [125 x i8]* + %"$msgobj_2642" = bitcast [125 x i8]* %"$msgobj_2642_salloc" to i8* + store i8 3, i8* %"$msgobj_2642", align 1 + %"$msgobj_fname_2644" = getelementptr i8, i8* %"$msgobj_2642", i32 1 + %"$msgobj_fname_2645" = bitcast i8* %"$msgobj_fname_2644" to %String* + store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_2643", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_2645", align 8 + %"$msgobj_td_2646" = getelementptr i8, i8* %"$msgobj_2642", i32 17 + %"$msgobj_td_2647" = bitcast i8* %"$msgobj_td_2646" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_114", %_TyDescrTy_Typ** %"$msgobj_td_2647", align 8 + %"$support_contract_2648" = load [20 x i8], [20 x i8]* @_cparam_support_contract, align 1 + %"$msgobj_v_2649" = getelementptr i8, i8* %"$msgobj_2642", i32 25 + %"$msgobj_v_2650" = bitcast i8* %"$msgobj_v_2649" to [20 x i8]* + store [20 x i8] %"$support_contract_2648", [20 x i8]* %"$msgobj_v_2650", align 1 + %"$msgobj_fname_2652" = getelementptr i8, i8* %"$msgobj_2642", i32 45 + %"$msgobj_fname_2653" = bitcast i8* %"$msgobj_fname_2652" to %String* + store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_2651", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_2653", align 8 + %"$msgobj_td_2654" = getelementptr i8, i8* %"$msgobj_2642", i32 61 + %"$msgobj_td_2655" = bitcast i8* %"$msgobj_td_2654" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_String_100", %_TyDescrTy_Typ** %"$msgobj_td_2655", align 8 + %"$msgobj_v_2657" = getelementptr i8, i8* %"$msgobj_2642", i32 69 + %"$msgobj_v_2658" = bitcast i8* %"$msgobj_v_2657" to %String* + store %String { i8* getelementptr inbounds ([9 x i8], [9 x i8]* @"$stringlit_2656", i32 0, i32 0), i32 9 }, %String* %"$msgobj_v_2658", align 8 + %"$msgobj_fname_2660" = getelementptr i8, i8* %"$msgobj_2642", i32 85 + %"$msgobj_fname_2661" = bitcast i8* %"$msgobj_fname_2660" to %String* + store %String { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$stringlit_2659", i32 0, i32 0), i32 7 }, %String* %"$msgobj_fname_2661", align 8 + %"$msgobj_td_2662" = getelementptr i8, i8* %"$msgobj_2642", i32 101 + %"$msgobj_td_2663" = bitcast i8* %"$msgobj_td_2662" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Uint128_94", %_TyDescrTy_Typ** %"$msgobj_td_2663", align 8 + %"$amount_2664" = load %Uint128, %Uint128* %amount, align 8 + %"$msgobj_v_2665" = getelementptr i8, i8* %"$msgobj_2642", i32 109 + %"$msgobj_v_2666" = bitcast i8* %"$msgobj_v_2665" to %Uint128* + store %Uint128 %"$amount_2664", %Uint128* %"$msgobj_v_2666", align 8 + store i8* %"$msgobj_2642", i8** %msg2, align 8, !dbg !491 + %"$gasrem_2668" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2669" = icmp ugt i64 1, %"$gasrem_2668" + br i1 %"$gascmp_2669", label %"$out_of_gas_2670", label %"$have_gas_2671" + +"$out_of_gas_2670": ; preds = %"$have_gas_2640" + call void @_out_of_gas() + br label %"$have_gas_2671" + +"$have_gas_2671": ; preds = %"$out_of_gas_2670", %"$have_gas_2640" + %"$consume_2672" = sub i64 %"$gasrem_2668", 1 + store i64 %"$consume_2672", i64* @_gasrem, align 8 %msgs2 = alloca %TName_List_Message*, align 8 - %"$gasrem_2612" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2613" = icmp ugt i64 1, %"$gasrem_2612" - br i1 %"$gascmp_2613", label %"$out_of_gas_2614", label %"$have_gas_2615" + call void @llvm.dbg.declare(metadata %TName_List_Message** %msgs2, metadata !492, metadata !DIExpression()), !dbg !493 + %"$gasrem_2673" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2674" = icmp ugt i64 1, %"$gasrem_2673" + br i1 %"$gascmp_2674", label %"$out_of_gas_2675", label %"$have_gas_2676" -"$out_of_gas_2614": ; preds = %"$have_gas_2610" +"$out_of_gas_2675": ; preds = %"$have_gas_2671" call void @_out_of_gas() - br label %"$have_gas_2615" + br label %"$have_gas_2676" -"$have_gas_2615": ; preds = %"$out_of_gas_2614", %"$have_gas_2610" - %"$consume_2616" = sub i64 %"$gasrem_2612", 1 - store i64 %"$consume_2616", i64* @_gasrem, align 8 +"$have_gas_2676": ; preds = %"$out_of_gas_2675", %"$have_gas_2671" + %"$consume_2677" = sub i64 %"$gasrem_2673", 1 + store i64 %"$consume_2677", i64* @_gasrem, align 8 %"$accounting_tests.one_msg_30" = alloca %TName_List_Message*, align 8 - %"$accounting_tests.one_msg_2617" = load { %TName_List_Message* (i8*, i8*)*, i8* }, { %TName_List_Message* (i8*, i8*)*, i8* }* @accounting_tests.one_msg, align 8 - %"$accounting_tests.one_msg_fptr_2618" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$accounting_tests.one_msg_2617", 0 - %"$accounting_tests.one_msg_envptr_2619" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$accounting_tests.one_msg_2617", 1 - %"$msg2_2620" = load i8*, i8** %msg2, align 8 - %"$accounting_tests.one_msg_call_2621" = call %TName_List_Message* %"$accounting_tests.one_msg_fptr_2618"(i8* %"$accounting_tests.one_msg_envptr_2619", i8* %"$msg2_2620"), !dbg !229 - store %TName_List_Message* %"$accounting_tests.one_msg_call_2621", %TName_List_Message** %"$accounting_tests.one_msg_30", align 8, !dbg !229 - %"$$accounting_tests.one_msg_30_2622" = load %TName_List_Message*, %TName_List_Message** %"$accounting_tests.one_msg_30", align 8 - store %TName_List_Message* %"$$accounting_tests.one_msg_30_2622", %TName_List_Message** %msgs2, align 8, !dbg !229 - %"$msgs2_2623" = load %TName_List_Message*, %TName_List_Message** %msgs2, align 8 - %"$$msgs2_2623_2624" = bitcast %TName_List_Message* %"$msgs2_2623" to i8* - %"$_literal_cost_call_2625" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_120", i8* %"$$msgs2_2623_2624") - %"$gasrem_2626" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2627" = icmp ugt i64 %"$_literal_cost_call_2625", %"$gasrem_2626" - br i1 %"$gascmp_2627", label %"$out_of_gas_2628", label %"$have_gas_2629" - -"$out_of_gas_2628": ; preds = %"$have_gas_2615" - call void @_out_of_gas() - br label %"$have_gas_2629" - -"$have_gas_2629": ; preds = %"$out_of_gas_2628", %"$have_gas_2615" - %"$consume_2630" = sub i64 %"$gasrem_2626", %"$_literal_cost_call_2625" - store i64 %"$consume_2630", i64* @_gasrem, align 8 - %"$execptr_load_2631" = load i8*, i8** @_execptr, align 8 - %"$msgs2_2632" = load %TName_List_Message*, %TName_List_Message** %msgs2, align 8 - call void @_send(i8* %"$execptr_load_2631", %_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_120", %TName_List_Message* %"$msgs2_2632"), !dbg !230 - %"$gasrem_2633" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2634" = icmp ugt i64 1, %"$gasrem_2633" - br i1 %"$gascmp_2634", label %"$out_of_gas_2635", label %"$have_gas_2636" - -"$out_of_gas_2635": ; preds = %"$have_gas_2629" - call void @_out_of_gas() - br label %"$have_gas_2636" - -"$have_gas_2636": ; preds = %"$out_of_gas_2635", %"$have_gas_2629" - %"$consume_2637" = sub i64 %"$gasrem_2633", 1 - store i64 %"$consume_2637", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_List_Message** %"$accounting_tests.one_msg_30", metadata !494, metadata !DIExpression()), !dbg !495 + %"$accounting_tests.one_msg_2678" = load { %TName_List_Message* (i8*, i8*)*, i8* }, { %TName_List_Message* (i8*, i8*)*, i8* }* @accounting_tests.one_msg, align 8 + %"$accounting_tests.one_msg_fptr_2679" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$accounting_tests.one_msg_2678", 0 + %"$accounting_tests.one_msg_envptr_2680" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$accounting_tests.one_msg_2678", 1 + %"$msg2_2681" = load i8*, i8** %msg2, align 8 + %"$accounting_tests.one_msg_call_2682" = call %TName_List_Message* %"$accounting_tests.one_msg_fptr_2679"(i8* %"$accounting_tests.one_msg_envptr_2680", i8* %"$msg2_2681"), !dbg !495 + store %TName_List_Message* %"$accounting_tests.one_msg_call_2682", %TName_List_Message** %"$accounting_tests.one_msg_30", align 8, !dbg !495 + %"$$accounting_tests.one_msg_30_2683" = load %TName_List_Message*, %TName_List_Message** %"$accounting_tests.one_msg_30", align 8 + store %TName_List_Message* %"$$accounting_tests.one_msg_30_2683", %TName_List_Message** %msgs2, align 8, !dbg !495 + %"$msgs2_2684" = load %TName_List_Message*, %TName_List_Message** %msgs2, align 8 + %"$$msgs2_2684_2685" = bitcast %TName_List_Message* %"$msgs2_2684" to i8* + %"$_literal_cost_call_2686" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_120", i8* %"$$msgs2_2684_2685") + %"$gasrem_2687" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2688" = icmp ugt i64 %"$_literal_cost_call_2686", %"$gasrem_2687" + br i1 %"$gascmp_2688", label %"$out_of_gas_2689", label %"$have_gas_2690" + +"$out_of_gas_2689": ; preds = %"$have_gas_2676" + call void @_out_of_gas() + br label %"$have_gas_2690" + +"$have_gas_2690": ; preds = %"$out_of_gas_2689", %"$have_gas_2676" + %"$consume_2691" = sub i64 %"$gasrem_2687", %"$_literal_cost_call_2686" + store i64 %"$consume_2691", i64* @_gasrem, align 8 + %"$execptr_load_2692" = load i8*, i8** @_execptr, align 8 + %"$msgs2_2693" = load %TName_List_Message*, %TName_List_Message** %msgs2, align 8 + call void @_send(i8* %"$execptr_load_2692", %_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_120", %TName_List_Message* %"$msgs2_2693"), !dbg !496 + %"$gasrem_2694" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2695" = icmp ugt i64 1, %"$gasrem_2694" + br i1 %"$gascmp_2695", label %"$out_of_gas_2696", label %"$have_gas_2697" + +"$out_of_gas_2696": ; preds = %"$have_gas_2690" + call void @_out_of_gas() + br label %"$have_gas_2697" + +"$have_gas_2697": ; preds = %"$out_of_gas_2696", %"$have_gas_2690" + %"$consume_2698" = sub i64 %"$gasrem_2694", 1 + store i64 %"$consume_2698", i64* @_gasrem, align 8 %expected_final_balance = alloca %Uint128, align 8 - %"$gasrem_2639" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2640" = icmp ugt i64 8, %"$gasrem_2639" - br i1 %"$gascmp_2640", label %"$out_of_gas_2641", label %"$have_gas_2642" - -"$out_of_gas_2641": ; preds = %"$have_gas_2636" - call void @_out_of_gas() - br label %"$have_gas_2642" - -"$have_gas_2642": ; preds = %"$out_of_gas_2641", %"$have_gas_2636" - %"$consume_2643" = sub i64 %"$gasrem_2639", 8 - store i64 %"$consume_2643", i64* @_gasrem, align 8 - %"$expected_intermediate_balance_2644" = load %Uint128, %Uint128* %expected_intermediate_balance, align 8 - %"$amount_2645" = load %Uint128, %Uint128* %amount, align 8 - %"$sub_call_2646" = call %Uint128 @_sub_Uint128(%Uint128 %"$expected_intermediate_balance_2644", %Uint128 %"$amount_2645"), !dbg !231 - store %Uint128 %"$sub_call_2646", %Uint128* %expected_final_balance, align 8, !dbg !231 - %"$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_2642" - call void @_out_of_gas() - br label %"$have_gas_2650" - -"$have_gas_2650": ; preds = %"$out_of_gas_2649", %"$have_gas_2642" - %"$consume_2651" = sub i64 %"$gasrem_2647", 1 - store i64 %"$consume_2651", i64* @_gasrem, align 8 - %"$CheckBalance__origin_2652" = alloca [20 x i8], align 1 - store [20 x i8] %_origin, [20 x i8]* %"$CheckBalance__origin_2652", align 1 - %"$CheckBalance__sender_2653" = alloca [20 x i8], align 1 - store [20 x i8] %_sender, [20 x i8]* %"$CheckBalance__sender_2653", align 1 - %"$expected_final_balance_2654" = load %Uint128, %Uint128* %expected_final_balance, align 8 - call void @"$CheckBalance_2223"(%Uint128 %_amount, [20 x i8]* %"$CheckBalance__origin_2652", [20 x i8]* %"$CheckBalance__sender_2653", %Uint128 %"$expected_final_balance_2654"), !dbg !232 + call void @llvm.dbg.declare(metadata %Uint128* %expected_final_balance, metadata !497, metadata !DIExpression()), !dbg !498 + %"$gasrem_2700" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2701" = icmp ugt i64 8, %"$gasrem_2700" + br i1 %"$gascmp_2701", label %"$out_of_gas_2702", label %"$have_gas_2703" + +"$out_of_gas_2702": ; preds = %"$have_gas_2697" + call void @_out_of_gas() + br label %"$have_gas_2703" + +"$have_gas_2703": ; preds = %"$out_of_gas_2702", %"$have_gas_2697" + %"$consume_2704" = sub i64 %"$gasrem_2700", 8 + store i64 %"$consume_2704", i64* @_gasrem, align 8 + %"$expected_intermediate_balance_2705" = load %Uint128, %Uint128* %expected_intermediate_balance, align 8 + %"$amount_2706" = load %Uint128, %Uint128* %amount, align 8 + %"$sub_call_2707" = call %Uint128 @_sub_Uint128(%Uint128 %"$expected_intermediate_balance_2705", %Uint128 %"$amount_2706"), !dbg !499 + store %Uint128 %"$sub_call_2707", %Uint128* %expected_final_balance, align 8, !dbg !499 + %"$gasrem_2708" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2709" = icmp ugt i64 1, %"$gasrem_2708" + br i1 %"$gascmp_2709", label %"$out_of_gas_2710", label %"$have_gas_2711" + +"$out_of_gas_2710": ; preds = %"$have_gas_2703" + call void @_out_of_gas() + br label %"$have_gas_2711" + +"$have_gas_2711": ; preds = %"$out_of_gas_2710", %"$have_gas_2703" + %"$consume_2712" = sub i64 %"$gasrem_2708", 1 + store i64 %"$consume_2712", i64* @_gasrem, align 8 + %"$CheckBalance__origin_2713" = alloca [20 x i8], align 1 + store [20 x i8] %_origin, [20 x i8]* %"$CheckBalance__origin_2713", align 1 + %"$CheckBalance__sender_2714" = alloca [20 x i8], align 1 + store [20 x i8] %_sender, [20 x i8]* %"$CheckBalance__sender_2714", align 1 + %"$expected_final_balance_2715" = load %Uint128, %Uint128* %expected_final_balance, align 8 + call void @"$CheckBalance_2268"(%Uint128 %_amount, [20 x i8]* %"$CheckBalance__origin_2713", [20 x i8]* %"$CheckBalance__sender_2714", %Uint128 %"$expected_final_balance_2715"), !dbg !500 ret void } declare %Uint128 @_sub_Uint128(%Uint128, %Uint128) -define void @Test_Send_4(i8* %0) !dbg !233 { +define void @Test_Send_4(i8* %0) !dbg !501 { entry: - %"$_amount_2656" = getelementptr i8, i8* %0, i32 0 - %"$_amount_2657" = bitcast i8* %"$_amount_2656" to %Uint128* - %_amount = load %Uint128, %Uint128* %"$_amount_2657", align 8 - %"$_origin_2658" = getelementptr i8, i8* %0, i32 16 - %"$_origin_2659" = bitcast i8* %"$_origin_2658" to [20 x i8]* - %"$_sender_2660" = getelementptr i8, i8* %0, i32 36 - %"$_sender_2661" = bitcast i8* %"$_sender_2660" to [20 x i8]* - call void @"$Test_Send_4_2447"(%Uint128 %_amount, [20 x i8]* %"$_origin_2659", [20 x i8]* %"$_sender_2661"), !dbg !234 + %"$_amount_2720" = getelementptr i8, i8* %0, i32 0 + %"$_amount_2721" = bitcast i8* %"$_amount_2720" to %Uint128* + %_amount = load %Uint128, %Uint128* %"$_amount_2721", align 8 + %"$_origin_2722" = getelementptr i8, i8* %0, i32 16 + %"$_origin_2723" = bitcast i8* %"$_origin_2722" to [20 x i8]* + %"$_sender_2724" = getelementptr i8, i8* %0, i32 36 + %"$_sender_2725" = bitcast i8* %"$_sender_2724" to [20 x i8]* + call void @"$Test_Send_4_2508"(%Uint128 %_amount, [20 x i8]* %"$_origin_2723", [20 x i8]* %"$_sender_2725"), !dbg !502 ret void } -define internal void @"$Test_Send_5_2662"(%Uint128 %_amount, [20 x i8]* %"$_origin_2663", [20 x i8]* %"$_sender_2664") !dbg !235 { +define internal void @"$Test_Send_5_2726"(%Uint128 %_amount, [20 x i8]* %"$_origin_2727", [20 x i8]* %"$_sender_2728") !dbg !503 { entry: - %_origin = load [20 x i8], [20 x i8]* %"$_origin_2663", align 1 - %_sender = load [20 x i8], [20 x i8]* %"$_sender_2664", align 1 - %"$gasrem_2665" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2666" = icmp ugt i64 1, %"$gasrem_2665" - br i1 %"$gascmp_2666", label %"$out_of_gas_2667", label %"$have_gas_2668" - -"$out_of_gas_2667": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_2668" - -"$have_gas_2668": ; preds = %"$out_of_gas_2667", %entry - %"$consume_2669" = sub i64 %"$gasrem_2665", 1 - store i64 %"$consume_2669", i64* @_gasrem, align 8 - %"$AssertReset__origin_2670" = alloca [20 x i8], align 1 - store [20 x i8] %_origin, [20 x i8]* %"$AssertReset__origin_2670", align 1 - %"$AssertReset__sender_2671" = alloca [20 x i8], align 1 - store [20 x i8] %_sender, [20 x i8]* %"$AssertReset__sender_2671", align 1 - call void @"$AssertReset_855"(%Uint128 %_amount, [20 x i8]* %"$AssertReset__origin_2670", [20 x i8]* %"$AssertReset__sender_2671"), !dbg !236 + %"$_sender_2919" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_sender_2728", [20 x i8]** %"$_sender_2919", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_sender_2919", metadata !504, metadata !DIExpression()), !dbg !505 + %"$_origin_2918" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_origin_2727", [20 x i8]** %"$_origin_2918", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_origin_2918", metadata !506, metadata !DIExpression()), !dbg !505 + %"$_amount_2917" = alloca %Uint128, align 8 + store %Uint128 %_amount, %Uint128* %"$_amount_2917", align 8 + call void @llvm.dbg.declare(metadata %Uint128* %"$_amount_2917", metadata !507, metadata !DIExpression()), !dbg !505 + %_origin = load [20 x i8], [20 x i8]* %"$_origin_2727", align 1 + %_sender = load [20 x i8], [20 x i8]* %"$_sender_2728", align 1 + %"$gasrem_2729" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2730" = icmp ugt i64 1, %"$gasrem_2729" + br i1 %"$gascmp_2730", label %"$out_of_gas_2731", label %"$have_gas_2732" + +"$out_of_gas_2731": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_2732" + +"$have_gas_2732": ; preds = %"$out_of_gas_2731", %entry + %"$consume_2733" = sub i64 %"$gasrem_2729", 1 + store i64 %"$consume_2733", i64* @_gasrem, align 8 + %"$AssertReset__origin_2734" = alloca [20 x i8], align 1 + store [20 x i8] %_origin, [20 x i8]* %"$AssertReset__origin_2734", align 1 + %"$AssertReset__sender_2735" = alloca [20 x i8], align 1 + store [20 x i8] %_sender, [20 x i8]* %"$AssertReset__sender_2735", align 1 + call void @"$AssertReset_869"(%Uint128 %_amount, [20 x i8]* %"$AssertReset__origin_2734", [20 x i8]* %"$AssertReset__sender_2735"), !dbg !508 %amount = alloca %Uint128, align 8 - %"$execptr_load_2673" = load i8*, i8** @_execptr, align 8 - %"$amount_call_2674" = call i8* @_fetch_field(i8* %"$execptr_load_2673", i8* getelementptr inbounds ([16 x i8], [16 x i8]* @"$outgoing_amount_2672", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Uint128_94", i32 0, i8* null, i32 1), !dbg !237 - %"$amount_2675" = bitcast i8* %"$amount_call_2674" to %Uint128* - %"$amount_2676" = load %Uint128, %Uint128* %"$amount_2675", align 8 - store %Uint128 %"$amount_2676", %Uint128* %amount, align 8 - %"$_literal_cost_amount_2677" = alloca %Uint128, align 8 - %"$amount_2678" = load %Uint128, %Uint128* %amount, align 8 - store %Uint128 %"$amount_2678", %Uint128* %"$_literal_cost_amount_2677", align 8 - %"$$_literal_cost_amount_2677_2679" = bitcast %Uint128* %"$_literal_cost_amount_2677" to i8* - %"$_literal_cost_call_2680" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Uint128_94", i8* %"$$_literal_cost_amount_2677_2679") - %"$gasadd_2681" = add i64 %"$_literal_cost_call_2680", 0 - %"$gasrem_2682" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2683" = icmp ugt i64 %"$gasadd_2681", %"$gasrem_2682" - br i1 %"$gascmp_2683", label %"$out_of_gas_2684", label %"$have_gas_2685" - -"$out_of_gas_2684": ; preds = %"$have_gas_2668" - call void @_out_of_gas() - br label %"$have_gas_2685" - -"$have_gas_2685": ; preds = %"$out_of_gas_2684", %"$have_gas_2668" - %"$consume_2686" = sub i64 %"$gasrem_2682", %"$gasadd_2681" - store i64 %"$consume_2686", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %Uint128* %amount, metadata !509, metadata !DIExpression()), !dbg !510 + %"$execptr_load_2737" = load i8*, i8** @_execptr, align 8 + %"$amount_call_2738" = call i8* @_fetch_field(i8* %"$execptr_load_2737", i8* getelementptr inbounds ([16 x i8], [16 x i8]* @"$outgoing_amount_2736", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Uint128_94", i32 0, i8* null, i32 1), !dbg !510 + %"$amount_2739" = bitcast i8* %"$amount_call_2738" to %Uint128* + %"$amount_2740" = load %Uint128, %Uint128* %"$amount_2739", align 8 + store %Uint128 %"$amount_2740", %Uint128* %amount, align 8 + %"$_literal_cost_amount_2741" = alloca %Uint128, align 8 + %"$amount_2742" = load %Uint128, %Uint128* %amount, align 8 + store %Uint128 %"$amount_2742", %Uint128* %"$_literal_cost_amount_2741", align 8 + %"$$_literal_cost_amount_2741_2743" = bitcast %Uint128* %"$_literal_cost_amount_2741" to i8* + %"$_literal_cost_call_2744" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Uint128_94", i8* %"$$_literal_cost_amount_2741_2743") + %"$gasadd_2745" = add i64 %"$_literal_cost_call_2744", 0 + %"$gasrem_2746" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2747" = icmp ugt i64 %"$gasadd_2745", %"$gasrem_2746" + br i1 %"$gascmp_2747", label %"$out_of_gas_2748", label %"$have_gas_2749" + +"$out_of_gas_2748": ; preds = %"$have_gas_2732" + call void @_out_of_gas() + br label %"$have_gas_2749" + +"$have_gas_2749": ; preds = %"$out_of_gas_2748", %"$have_gas_2732" + %"$consume_2750" = sub i64 %"$gasrem_2746", %"$gasadd_2745" + store i64 %"$consume_2750", i64* @_gasrem, align 8 %init_bal = alloca %Uint128, align 8 - %"$execptr_load_2688" = load i8*, i8** @_execptr, align 8 - %"$init_bal_call_2689" = call i8* @_fetch_field(i8* %"$execptr_load_2688", i8* getelementptr inbounds ([9 x i8], [9 x i8]* @"$_balance_2687", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Uint128_94", i32 0, i8* null, i32 1), !dbg !238 - %"$init_bal_2690" = bitcast i8* %"$init_bal_call_2689" to %Uint128* - %"$init_bal_2691" = load %Uint128, %Uint128* %"$init_bal_2690", align 8 - store %Uint128 %"$init_bal_2691", %Uint128* %init_bal, align 8 - %"$_literal_cost_init_bal_2692" = alloca %Uint128, align 8 - %"$init_bal_2693" = load %Uint128, %Uint128* %init_bal, align 8 - store %Uint128 %"$init_bal_2693", %Uint128* %"$_literal_cost_init_bal_2692", align 8 - %"$$_literal_cost_init_bal_2692_2694" = bitcast %Uint128* %"$_literal_cost_init_bal_2692" to i8* - %"$_literal_cost_call_2695" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Uint128_94", i8* %"$$_literal_cost_init_bal_2692_2694") - %"$gasadd_2696" = add i64 %"$_literal_cost_call_2695", 0 - %"$gasrem_2697" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2698" = icmp ugt i64 %"$gasadd_2696", %"$gasrem_2697" - br i1 %"$gascmp_2698", label %"$out_of_gas_2699", label %"$have_gas_2700" - -"$out_of_gas_2699": ; preds = %"$have_gas_2685" - call void @_out_of_gas() - br label %"$have_gas_2700" - -"$have_gas_2700": ; preds = %"$out_of_gas_2699", %"$have_gas_2685" - %"$consume_2701" = sub i64 %"$gasrem_2697", %"$gasadd_2696" - store i64 %"$consume_2701", i64* @_gasrem, align 8 - %"$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_2700" - call void @_out_of_gas() - br label %"$have_gas_2705" - -"$have_gas_2705": ; preds = %"$out_of_gas_2704", %"$have_gas_2700" - %"$consume_2706" = sub i64 %"$gasrem_2702", 1 - store i64 %"$consume_2706", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %Uint128* %init_bal, metadata !511, metadata !DIExpression()), !dbg !512 + %"$execptr_load_2752" = load i8*, i8** @_execptr, align 8 + %"$init_bal_call_2753" = call i8* @_fetch_field(i8* %"$execptr_load_2752", i8* getelementptr inbounds ([9 x i8], [9 x i8]* @"$_balance_2751", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Uint128_94", i32 0, i8* null, i32 1), !dbg !512 + %"$init_bal_2754" = bitcast i8* %"$init_bal_call_2753" to %Uint128* + %"$init_bal_2755" = load %Uint128, %Uint128* %"$init_bal_2754", align 8 + store %Uint128 %"$init_bal_2755", %Uint128* %init_bal, align 8 + %"$_literal_cost_init_bal_2756" = alloca %Uint128, align 8 + %"$init_bal_2757" = load %Uint128, %Uint128* %init_bal, align 8 + store %Uint128 %"$init_bal_2757", %Uint128* %"$_literal_cost_init_bal_2756", align 8 + %"$$_literal_cost_init_bal_2756_2758" = bitcast %Uint128* %"$_literal_cost_init_bal_2756" to i8* + %"$_literal_cost_call_2759" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Uint128_94", i8* %"$$_literal_cost_init_bal_2756_2758") + %"$gasadd_2760" = add i64 %"$_literal_cost_call_2759", 0 + %"$gasrem_2761" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2762" = icmp ugt i64 %"$gasadd_2760", %"$gasrem_2761" + br i1 %"$gascmp_2762", label %"$out_of_gas_2763", label %"$have_gas_2764" + +"$out_of_gas_2763": ; preds = %"$have_gas_2749" + call void @_out_of_gas() + br label %"$have_gas_2764" + +"$have_gas_2764": ; preds = %"$out_of_gas_2763", %"$have_gas_2749" + %"$consume_2765" = sub i64 %"$gasrem_2761", %"$gasadd_2760" + store i64 %"$consume_2765", i64* @_gasrem, align 8 + %"$gasrem_2766" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2767" = icmp ugt i64 1, %"$gasrem_2766" + br i1 %"$gascmp_2767", label %"$out_of_gas_2768", label %"$have_gas_2769" + +"$out_of_gas_2768": ; preds = %"$have_gas_2764" + call void @_out_of_gas() + br label %"$have_gas_2769" + +"$have_gas_2769": ; preds = %"$out_of_gas_2768", %"$have_gas_2764" + %"$consume_2770" = sub i64 %"$gasrem_2766", 1 + store i64 %"$consume_2770", i64* @_gasrem, align 8 %msg1 = alloca i8*, align 8 - %"$gasrem_2707" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2708" = icmp ugt i64 1, %"$gasrem_2707" - br i1 %"$gascmp_2708", label %"$out_of_gas_2709", label %"$have_gas_2710" - -"$out_of_gas_2709": ; preds = %"$have_gas_2705" - call void @_out_of_gas() - br label %"$have_gas_2710" - -"$have_gas_2710": ; preds = %"$out_of_gas_2709", %"$have_gas_2705" - %"$consume_2711" = sub i64 %"$gasrem_2707", 1 - store i64 %"$consume_2711", i64* @_gasrem, align 8 - %"$msgobj_2712_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$msgobj_2712_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_2712_salloc_load", i64 125) - %"$msgobj_2712_salloc" = bitcast i8* %"$msgobj_2712_salloc_salloc" to [125 x i8]* - %"$msgobj_2712" = bitcast [125 x i8]* %"$msgobj_2712_salloc" to i8* - store i8 3, i8* %"$msgobj_2712", align 1 - %"$msgobj_fname_2714" = getelementptr i8, i8* %"$msgobj_2712", i32 1 - %"$msgobj_fname_2715" = bitcast i8* %"$msgobj_fname_2714" to %String* - store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_2713", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_2715", align 8 - %"$msgobj_td_2716" = getelementptr i8, i8* %"$msgobj_2712", i32 17 - %"$msgobj_td_2717" = bitcast i8* %"$msgobj_td_2716" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_114", %_TyDescrTy_Typ** %"$msgobj_td_2717", align 8 - %"$support_contract_2718" = load [20 x i8], [20 x i8]* @_cparam_support_contract, align 1 - %"$msgobj_v_2719" = getelementptr i8, i8* %"$msgobj_2712", i32 25 - %"$msgobj_v_2720" = bitcast i8* %"$msgobj_v_2719" to [20 x i8]* - store [20 x i8] %"$support_contract_2718", [20 x i8]* %"$msgobj_v_2720", align 1 - %"$msgobj_fname_2722" = getelementptr i8, i8* %"$msgobj_2712", i32 45 - %"$msgobj_fname_2723" = bitcast i8* %"$msgobj_fname_2722" to %String* - store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_2721", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_2723", align 8 - %"$msgobj_td_2724" = getelementptr i8, i8* %"$msgobj_2712", i32 61 - %"$msgobj_td_2725" = bitcast i8* %"$msgobj_td_2724" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_String_100", %_TyDescrTy_Typ** %"$msgobj_td_2725", align 8 - %"$msgobj_v_2727" = getelementptr i8, i8* %"$msgobj_2712", i32 69 - %"$msgobj_v_2728" = bitcast i8* %"$msgobj_v_2727" to %String* - store %String { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$stringlit_2726", i32 0, i32 0), i32 6 }, %String* %"$msgobj_v_2728", align 8 - %"$msgobj_fname_2730" = getelementptr i8, i8* %"$msgobj_2712", i32 85 - %"$msgobj_fname_2731" = bitcast i8* %"$msgobj_fname_2730" to %String* - store %String { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$stringlit_2729", i32 0, i32 0), i32 7 }, %String* %"$msgobj_fname_2731", align 8 - %"$msgobj_td_2732" = getelementptr i8, i8* %"$msgobj_2712", i32 101 - %"$msgobj_td_2733" = bitcast i8* %"$msgobj_td_2732" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Uint128_94", %_TyDescrTy_Typ** %"$msgobj_td_2733", align 8 - %"$amount_2734" = load %Uint128, %Uint128* %amount, align 8 - %"$msgobj_v_2735" = getelementptr i8, i8* %"$msgobj_2712", i32 109 - %"$msgobj_v_2736" = bitcast i8* %"$msgobj_v_2735" to %Uint128* - store %Uint128 %"$amount_2734", %Uint128* %"$msgobj_v_2736", align 8 - store i8* %"$msgobj_2712", i8** %msg1, align 8, !dbg !239 - %"$gasrem_2738" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2739" = icmp ugt i64 1, %"$gasrem_2738" - br i1 %"$gascmp_2739", label %"$out_of_gas_2740", label %"$have_gas_2741" - -"$out_of_gas_2740": ; preds = %"$have_gas_2710" - call void @_out_of_gas() - br label %"$have_gas_2741" - -"$have_gas_2741": ; preds = %"$out_of_gas_2740", %"$have_gas_2710" - %"$consume_2742" = sub i64 %"$gasrem_2738", 1 - store i64 %"$consume_2742", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata i8** %msg1, metadata !513, metadata !DIExpression()), !dbg !514 + %"$gasrem_2771" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2772" = icmp ugt i64 1, %"$gasrem_2771" + br i1 %"$gascmp_2772", label %"$out_of_gas_2773", label %"$have_gas_2774" + +"$out_of_gas_2773": ; preds = %"$have_gas_2769" + call void @_out_of_gas() + br label %"$have_gas_2774" + +"$have_gas_2774": ; preds = %"$out_of_gas_2773", %"$have_gas_2769" + %"$consume_2775" = sub i64 %"$gasrem_2771", 1 + store i64 %"$consume_2775", i64* @_gasrem, align 8 + %"$msgobj_2776_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$msgobj_2776_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_2776_salloc_load", i64 125) + %"$msgobj_2776_salloc" = bitcast i8* %"$msgobj_2776_salloc_salloc" to [125 x i8]* + %"$msgobj_2776" = bitcast [125 x i8]* %"$msgobj_2776_salloc" to i8* + store i8 3, i8* %"$msgobj_2776", align 1 + %"$msgobj_fname_2778" = getelementptr i8, i8* %"$msgobj_2776", i32 1 + %"$msgobj_fname_2779" = bitcast i8* %"$msgobj_fname_2778" to %String* + store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_2777", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_2779", align 8 + %"$msgobj_td_2780" = getelementptr i8, i8* %"$msgobj_2776", i32 17 + %"$msgobj_td_2781" = bitcast i8* %"$msgobj_td_2780" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_114", %_TyDescrTy_Typ** %"$msgobj_td_2781", align 8 + %"$support_contract_2782" = load [20 x i8], [20 x i8]* @_cparam_support_contract, align 1 + %"$msgobj_v_2783" = getelementptr i8, i8* %"$msgobj_2776", i32 25 + %"$msgobj_v_2784" = bitcast i8* %"$msgobj_v_2783" to [20 x i8]* + store [20 x i8] %"$support_contract_2782", [20 x i8]* %"$msgobj_v_2784", align 1 + %"$msgobj_fname_2786" = getelementptr i8, i8* %"$msgobj_2776", i32 45 + %"$msgobj_fname_2787" = bitcast i8* %"$msgobj_fname_2786" to %String* + store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_2785", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_2787", align 8 + %"$msgobj_td_2788" = getelementptr i8, i8* %"$msgobj_2776", i32 61 + %"$msgobj_td_2789" = bitcast i8* %"$msgobj_td_2788" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_String_100", %_TyDescrTy_Typ** %"$msgobj_td_2789", align 8 + %"$msgobj_v_2791" = getelementptr i8, i8* %"$msgobj_2776", i32 69 + %"$msgobj_v_2792" = bitcast i8* %"$msgobj_v_2791" to %String* + store %String { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$stringlit_2790", i32 0, i32 0), i32 6 }, %String* %"$msgobj_v_2792", align 8 + %"$msgobj_fname_2794" = getelementptr i8, i8* %"$msgobj_2776", i32 85 + %"$msgobj_fname_2795" = bitcast i8* %"$msgobj_fname_2794" to %String* + store %String { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$stringlit_2793", i32 0, i32 0), i32 7 }, %String* %"$msgobj_fname_2795", align 8 + %"$msgobj_td_2796" = getelementptr i8, i8* %"$msgobj_2776", i32 101 + %"$msgobj_td_2797" = bitcast i8* %"$msgobj_td_2796" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Uint128_94", %_TyDescrTy_Typ** %"$msgobj_td_2797", align 8 + %"$amount_2798" = load %Uint128, %Uint128* %amount, align 8 + %"$msgobj_v_2799" = getelementptr i8, i8* %"$msgobj_2776", i32 109 + %"$msgobj_v_2800" = bitcast i8* %"$msgobj_v_2799" to %Uint128* + store %Uint128 %"$amount_2798", %Uint128* %"$msgobj_v_2800", align 8 + store i8* %"$msgobj_2776", i8** %msg1, align 8, !dbg !515 + %"$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_2774" + call void @_out_of_gas() + br label %"$have_gas_2805" + +"$have_gas_2805": ; preds = %"$out_of_gas_2804", %"$have_gas_2774" + %"$consume_2806" = sub i64 %"$gasrem_2802", 1 + store i64 %"$consume_2806", i64* @_gasrem, align 8 %msg2 = alloca i8*, 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_2741" - call void @_out_of_gas() - br label %"$have_gas_2746" - -"$have_gas_2746": ; preds = %"$out_of_gas_2745", %"$have_gas_2741" - %"$consume_2747" = sub i64 %"$gasrem_2743", 1 - store i64 %"$consume_2747", i64* @_gasrem, align 8 - %"$msgobj_2748_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$msgobj_2748_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_2748_salloc_load", i64 125) - %"$msgobj_2748_salloc" = bitcast i8* %"$msgobj_2748_salloc_salloc" to [125 x i8]* - %"$msgobj_2748" = bitcast [125 x i8]* %"$msgobj_2748_salloc" to i8* - store i8 3, i8* %"$msgobj_2748", align 1 - %"$msgobj_fname_2750" = getelementptr i8, i8* %"$msgobj_2748", i32 1 - %"$msgobj_fname_2751" = bitcast i8* %"$msgobj_fname_2750" to %String* - store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_2749", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_2751", align 8 - %"$msgobj_td_2752" = getelementptr i8, i8* %"$msgobj_2748", i32 17 - %"$msgobj_td_2753" = bitcast i8* %"$msgobj_td_2752" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_114", %_TyDescrTy_Typ** %"$msgobj_td_2753", align 8 - %"$support_contract_2754" = load [20 x i8], [20 x i8]* @_cparam_support_contract, align 1 - %"$msgobj_v_2755" = getelementptr i8, i8* %"$msgobj_2748", i32 25 - %"$msgobj_v_2756" = bitcast i8* %"$msgobj_v_2755" to [20 x i8]* - store [20 x i8] %"$support_contract_2754", [20 x i8]* %"$msgobj_v_2756", align 1 - %"$msgobj_fname_2758" = getelementptr i8, i8* %"$msgobj_2748", i32 45 - %"$msgobj_fname_2759" = bitcast i8* %"$msgobj_fname_2758" to %String* - store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_2757", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_2759", align 8 - %"$msgobj_td_2760" = getelementptr i8, i8* %"$msgobj_2748", i32 61 - %"$msgobj_td_2761" = bitcast i8* %"$msgobj_td_2760" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_String_100", %_TyDescrTy_Typ** %"$msgobj_td_2761", align 8 - %"$msgobj_v_2763" = getelementptr i8, i8* %"$msgobj_2748", i32 69 - %"$msgobj_v_2764" = bitcast i8* %"$msgobj_v_2763" to %String* - store %String { i8* getelementptr inbounds ([9 x i8], [9 x i8]* @"$stringlit_2762", i32 0, i32 0), i32 9 }, %String* %"$msgobj_v_2764", align 8 - %"$msgobj_fname_2766" = getelementptr i8, i8* %"$msgobj_2748", i32 85 - %"$msgobj_fname_2767" = bitcast i8* %"$msgobj_fname_2766" to %String* - store %String { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$stringlit_2765", i32 0, i32 0), i32 7 }, %String* %"$msgobj_fname_2767", align 8 - %"$msgobj_td_2768" = getelementptr i8, i8* %"$msgobj_2748", i32 101 - %"$msgobj_td_2769" = bitcast i8* %"$msgobj_td_2768" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Uint128_94", %_TyDescrTy_Typ** %"$msgobj_td_2769", align 8 - %"$amount_2770" = load %Uint128, %Uint128* %amount, align 8 - %"$msgobj_v_2771" = getelementptr i8, i8* %"$msgobj_2748", i32 109 - %"$msgobj_v_2772" = bitcast i8* %"$msgobj_v_2771" to %Uint128* - store %Uint128 %"$amount_2770", %Uint128* %"$msgobj_v_2772", align 8 - store i8* %"$msgobj_2748", i8** %msg2, align 8, !dbg !240 - %"$gasrem_2774" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2775" = icmp ugt i64 1, %"$gasrem_2774" - br i1 %"$gascmp_2775", label %"$out_of_gas_2776", label %"$have_gas_2777" - -"$out_of_gas_2776": ; preds = %"$have_gas_2746" - call void @_out_of_gas() - br label %"$have_gas_2777" - -"$have_gas_2777": ; preds = %"$out_of_gas_2776", %"$have_gas_2746" - %"$consume_2778" = sub i64 %"$gasrem_2774", 1 - store i64 %"$consume_2778", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata i8** %msg2, metadata !516, metadata !DIExpression()), !dbg !517 + %"$gasrem_2807" = load i64, i64* @_gasrem, align 8 + %"$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_2805" + call void @_out_of_gas() + br label %"$have_gas_2810" + +"$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 + %"$msgobj_2812_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$msgobj_2812_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_2812_salloc_load", i64 125) + %"$msgobj_2812_salloc" = bitcast i8* %"$msgobj_2812_salloc_salloc" to [125 x i8]* + %"$msgobj_2812" = bitcast [125 x i8]* %"$msgobj_2812_salloc" to i8* + store i8 3, i8* %"$msgobj_2812", align 1 + %"$msgobj_fname_2814" = getelementptr i8, i8* %"$msgobj_2812", i32 1 + %"$msgobj_fname_2815" = bitcast i8* %"$msgobj_fname_2814" to %String* + store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_2813", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_2815", align 8 + %"$msgobj_td_2816" = getelementptr i8, i8* %"$msgobj_2812", i32 17 + %"$msgobj_td_2817" = bitcast i8* %"$msgobj_td_2816" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_114", %_TyDescrTy_Typ** %"$msgobj_td_2817", align 8 + %"$support_contract_2818" = load [20 x i8], [20 x i8]* @_cparam_support_contract, align 1 + %"$msgobj_v_2819" = getelementptr i8, i8* %"$msgobj_2812", i32 25 + %"$msgobj_v_2820" = bitcast i8* %"$msgobj_v_2819" to [20 x i8]* + store [20 x i8] %"$support_contract_2818", [20 x i8]* %"$msgobj_v_2820", align 1 + %"$msgobj_fname_2822" = getelementptr i8, i8* %"$msgobj_2812", i32 45 + %"$msgobj_fname_2823" = bitcast i8* %"$msgobj_fname_2822" to %String* + store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_2821", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_2823", align 8 + %"$msgobj_td_2824" = getelementptr i8, i8* %"$msgobj_2812", i32 61 + %"$msgobj_td_2825" = bitcast i8* %"$msgobj_td_2824" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_String_100", %_TyDescrTy_Typ** %"$msgobj_td_2825", align 8 + %"$msgobj_v_2827" = getelementptr i8, i8* %"$msgobj_2812", i32 69 + %"$msgobj_v_2828" = bitcast i8* %"$msgobj_v_2827" to %String* + store %String { i8* getelementptr inbounds ([9 x i8], [9 x i8]* @"$stringlit_2826", i32 0, i32 0), i32 9 }, %String* %"$msgobj_v_2828", align 8 + %"$msgobj_fname_2830" = getelementptr i8, i8* %"$msgobj_2812", i32 85 + %"$msgobj_fname_2831" = bitcast i8* %"$msgobj_fname_2830" to %String* + store %String { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$stringlit_2829", i32 0, i32 0), i32 7 }, %String* %"$msgobj_fname_2831", align 8 + %"$msgobj_td_2832" = getelementptr i8, i8* %"$msgobj_2812", i32 101 + %"$msgobj_td_2833" = bitcast i8* %"$msgobj_td_2832" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Uint128_94", %_TyDescrTy_Typ** %"$msgobj_td_2833", align 8 + %"$amount_2834" = load %Uint128, %Uint128* %amount, align 8 + %"$msgobj_v_2835" = getelementptr i8, i8* %"$msgobj_2812", i32 109 + %"$msgobj_v_2836" = bitcast i8* %"$msgobj_v_2835" to %Uint128* + store %Uint128 %"$amount_2834", %Uint128* %"$msgobj_v_2836", align 8 + store i8* %"$msgobj_2812", i8** %msg2, align 8, !dbg !518 + %"$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_2810" + call void @_out_of_gas() + br label %"$have_gas_2841" + +"$have_gas_2841": ; preds = %"$out_of_gas_2840", %"$have_gas_2810" + %"$consume_2842" = sub i64 %"$gasrem_2838", 1 + store i64 %"$consume_2842", i64* @_gasrem, align 8 %msgs_tmp = alloca %TName_List_Message*, align 8 - %"$gasrem_2779" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2780" = icmp ugt i64 1, %"$gasrem_2779" - br i1 %"$gascmp_2780", label %"$out_of_gas_2781", label %"$have_gas_2782" + call void @llvm.dbg.declare(metadata %TName_List_Message** %msgs_tmp, metadata !519, metadata !DIExpression()), !dbg !520 + %"$gasrem_2843" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2844" = icmp ugt i64 1, %"$gasrem_2843" + br i1 %"$gascmp_2844", label %"$out_of_gas_2845", label %"$have_gas_2846" -"$out_of_gas_2781": ; preds = %"$have_gas_2777" +"$out_of_gas_2845": ; preds = %"$have_gas_2841" call void @_out_of_gas() - br label %"$have_gas_2782" + br label %"$have_gas_2846" -"$have_gas_2782": ; preds = %"$out_of_gas_2781", %"$have_gas_2777" - %"$consume_2783" = sub i64 %"$gasrem_2779", 1 - store i64 %"$consume_2783", i64* @_gasrem, align 8 +"$have_gas_2846": ; preds = %"$out_of_gas_2845", %"$have_gas_2841" + %"$consume_2847" = sub i64 %"$gasrem_2843", 1 + store i64 %"$consume_2847", i64* @_gasrem, align 8 %"$accounting_tests.one_msg_32" = alloca %TName_List_Message*, align 8 - %"$accounting_tests.one_msg_2784" = load { %TName_List_Message* (i8*, i8*)*, i8* }, { %TName_List_Message* (i8*, i8*)*, i8* }* @accounting_tests.one_msg, align 8 - %"$accounting_tests.one_msg_fptr_2785" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$accounting_tests.one_msg_2784", 0 - %"$accounting_tests.one_msg_envptr_2786" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$accounting_tests.one_msg_2784", 1 - %"$msg2_2787" = load i8*, i8** %msg2, align 8 - %"$accounting_tests.one_msg_call_2788" = call %TName_List_Message* %"$accounting_tests.one_msg_fptr_2785"(i8* %"$accounting_tests.one_msg_envptr_2786", i8* %"$msg2_2787"), !dbg !241 - store %TName_List_Message* %"$accounting_tests.one_msg_call_2788", %TName_List_Message** %"$accounting_tests.one_msg_32", align 8, !dbg !241 - %"$$accounting_tests.one_msg_32_2789" = load %TName_List_Message*, %TName_List_Message** %"$accounting_tests.one_msg_32", align 8 - store %TName_List_Message* %"$$accounting_tests.one_msg_32_2789", %TName_List_Message** %msgs_tmp, align 8, !dbg !241 - %"$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" - -"$out_of_gas_2792": ; preds = %"$have_gas_2782" - call void @_out_of_gas() - br label %"$have_gas_2793" - -"$have_gas_2793": ; preds = %"$out_of_gas_2792", %"$have_gas_2782" - %"$consume_2794" = sub i64 %"$gasrem_2790", 1 - store i64 %"$consume_2794", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_List_Message** %"$accounting_tests.one_msg_32", metadata !521, metadata !DIExpression()), !dbg !522 + %"$accounting_tests.one_msg_2848" = load { %TName_List_Message* (i8*, i8*)*, i8* }, { %TName_List_Message* (i8*, i8*)*, i8* }* @accounting_tests.one_msg, align 8 + %"$accounting_tests.one_msg_fptr_2849" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$accounting_tests.one_msg_2848", 0 + %"$accounting_tests.one_msg_envptr_2850" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$accounting_tests.one_msg_2848", 1 + %"$msg2_2851" = load i8*, i8** %msg2, align 8 + %"$accounting_tests.one_msg_call_2852" = call %TName_List_Message* %"$accounting_tests.one_msg_fptr_2849"(i8* %"$accounting_tests.one_msg_envptr_2850", i8* %"$msg2_2851"), !dbg !522 + store %TName_List_Message* %"$accounting_tests.one_msg_call_2852", %TName_List_Message** %"$accounting_tests.one_msg_32", align 8, !dbg !522 + %"$$accounting_tests.one_msg_32_2853" = load %TName_List_Message*, %TName_List_Message** %"$accounting_tests.one_msg_32", align 8 + store %TName_List_Message* %"$$accounting_tests.one_msg_32_2853", %TName_List_Message** %msgs_tmp, align 8, !dbg !522 + %"$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_2846" + call void @_out_of_gas() + br label %"$have_gas_2857" + +"$have_gas_2857": ; preds = %"$out_of_gas_2856", %"$have_gas_2846" + %"$consume_2858" = sub i64 %"$gasrem_2854", 1 + store i64 %"$consume_2858", i64* @_gasrem, align 8 %msgs = alloca %TName_List_Message*, 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 - %"$msg1_2800" = load i8*, i8** %msg1, align 8 - %"$msgs_tmp_2801" = load %TName_List_Message*, %TName_List_Message** %msgs_tmp, align 8 - %"$adtval_2802_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_2802_salloc" = call i8* @_salloc(i8* %"$adtval_2802_load", i64 17) - %"$adtval_2802" = bitcast i8* %"$adtval_2802_salloc" to %CName_Cons_Message* - %"$adtgep_2803" = getelementptr inbounds %CName_Cons_Message, %CName_Cons_Message* %"$adtval_2802", i32 0, i32 0 - store i8 0, i8* %"$adtgep_2803", align 1 - %"$adtgep_2804" = getelementptr inbounds %CName_Cons_Message, %CName_Cons_Message* %"$adtval_2802", i32 0, i32 1 - store i8* %"$msg1_2800", i8** %"$adtgep_2804", align 8 - %"$adtgep_2805" = getelementptr inbounds %CName_Cons_Message, %CName_Cons_Message* %"$adtval_2802", i32 0, i32 2 - store %TName_List_Message* %"$msgs_tmp_2801", %TName_List_Message** %"$adtgep_2805", align 8 - %"$adtptr_2806" = bitcast %CName_Cons_Message* %"$adtval_2802" to %TName_List_Message* - store %TName_List_Message* %"$adtptr_2806", %TName_List_Message** %msgs, align 8, !dbg !242 - %"$msgs_2807" = load %TName_List_Message*, %TName_List_Message** %msgs, align 8 - %"$$msgs_2807_2808" = bitcast %TName_List_Message* %"$msgs_2807" to i8* - %"$_literal_cost_call_2809" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_120", i8* %"$$msgs_2807_2808") - %"$gasrem_2810" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2811" = icmp ugt i64 %"$_literal_cost_call_2809", %"$gasrem_2810" - br i1 %"$gascmp_2811", label %"$out_of_gas_2812", label %"$have_gas_2813" - -"$out_of_gas_2812": ; preds = %"$have_gas_2798" - call void @_out_of_gas() - br label %"$have_gas_2813" - -"$have_gas_2813": ; preds = %"$out_of_gas_2812", %"$have_gas_2798" - %"$consume_2814" = sub i64 %"$gasrem_2810", %"$_literal_cost_call_2809" - store i64 %"$consume_2814", i64* @_gasrem, align 8 - %"$execptr_load_2815" = load i8*, i8** @_execptr, align 8 - %"$msgs_2816" = load %TName_List_Message*, %TName_List_Message** %msgs, align 8 - call void @_send(i8* %"$execptr_load_2815", %_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_120", %TName_List_Message* %"$msgs_2816"), !dbg !243 - %"$gasrem_2817" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2818" = icmp ugt i64 1, %"$gasrem_2817" - br i1 %"$gascmp_2818", label %"$out_of_gas_2819", label %"$have_gas_2820" - -"$out_of_gas_2819": ; preds = %"$have_gas_2813" - call void @_out_of_gas() - br label %"$have_gas_2820" - -"$have_gas_2820": ; preds = %"$out_of_gas_2819", %"$have_gas_2813" - %"$consume_2821" = sub i64 %"$gasrem_2817", 1 - store i64 %"$consume_2821", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_List_Message** %msgs, metadata !523, metadata !DIExpression()), !dbg !524 + %"$gasrem_2859" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2860" = icmp ugt i64 1, %"$gasrem_2859" + br i1 %"$gascmp_2860", label %"$out_of_gas_2861", label %"$have_gas_2862" + +"$out_of_gas_2861": ; preds = %"$have_gas_2857" + call void @_out_of_gas() + br label %"$have_gas_2862" + +"$have_gas_2862": ; preds = %"$out_of_gas_2861", %"$have_gas_2857" + %"$consume_2863" = sub i64 %"$gasrem_2859", 1 + store i64 %"$consume_2863", i64* @_gasrem, align 8 + %"$msg1_2864" = load i8*, i8** %msg1, align 8 + %"$msgs_tmp_2865" = load %TName_List_Message*, %TName_List_Message** %msgs_tmp, align 8 + %"$adtval_2866_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_2866_salloc" = call i8* @_salloc(i8* %"$adtval_2866_load", i64 17) + %"$adtval_2866" = bitcast i8* %"$adtval_2866_salloc" to %CName_Cons_Message* + %"$adtgep_2867" = getelementptr inbounds %CName_Cons_Message, %CName_Cons_Message* %"$adtval_2866", i32 0, i32 0 + store i8 0, i8* %"$adtgep_2867", align 1 + %"$adtgep_2868" = getelementptr inbounds %CName_Cons_Message, %CName_Cons_Message* %"$adtval_2866", i32 0, i32 1 + store i8* %"$msg1_2864", i8** %"$adtgep_2868", align 8 + %"$adtgep_2869" = getelementptr inbounds %CName_Cons_Message, %CName_Cons_Message* %"$adtval_2866", i32 0, i32 2 + store %TName_List_Message* %"$msgs_tmp_2865", %TName_List_Message** %"$adtgep_2869", align 8 + %"$adtptr_2870" = bitcast %CName_Cons_Message* %"$adtval_2866" to %TName_List_Message* + store %TName_List_Message* %"$adtptr_2870", %TName_List_Message** %msgs, align 8, !dbg !525 + %"$msgs_2871" = load %TName_List_Message*, %TName_List_Message** %msgs, align 8 + %"$$msgs_2871_2872" = bitcast %TName_List_Message* %"$msgs_2871" to i8* + %"$_literal_cost_call_2873" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_120", i8* %"$$msgs_2871_2872") + %"$gasrem_2874" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2875" = icmp ugt i64 %"$_literal_cost_call_2873", %"$gasrem_2874" + br i1 %"$gascmp_2875", label %"$out_of_gas_2876", label %"$have_gas_2877" + +"$out_of_gas_2876": ; preds = %"$have_gas_2862" + call void @_out_of_gas() + br label %"$have_gas_2877" + +"$have_gas_2877": ; preds = %"$out_of_gas_2876", %"$have_gas_2862" + %"$consume_2878" = sub i64 %"$gasrem_2874", %"$_literal_cost_call_2873" + store i64 %"$consume_2878", i64* @_gasrem, align 8 + %"$execptr_load_2879" = load i8*, i8** @_execptr, align 8 + %"$msgs_2880" = load %TName_List_Message*, %TName_List_Message** %msgs, align 8 + call void @_send(i8* %"$execptr_load_2879", %_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_120", %TName_List_Message* %"$msgs_2880"), !dbg !526 + %"$gasrem_2881" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2882" = icmp ugt i64 1, %"$gasrem_2881" + br i1 %"$gascmp_2882", label %"$out_of_gas_2883", label %"$have_gas_2884" + +"$out_of_gas_2883": ; preds = %"$have_gas_2877" + call void @_out_of_gas() + br label %"$have_gas_2884" + +"$have_gas_2884": ; preds = %"$out_of_gas_2883", %"$have_gas_2877" + %"$consume_2885" = sub i64 %"$gasrem_2881", 1 + store i64 %"$consume_2885", i64* @_gasrem, align 8 %expected_intermediate_balance = alloca %Uint128, align 8 - %"$gasrem_2823" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2824" = icmp ugt i64 8, %"$gasrem_2823" - br i1 %"$gascmp_2824", label %"$out_of_gas_2825", label %"$have_gas_2826" - -"$out_of_gas_2825": ; preds = %"$have_gas_2820" - call void @_out_of_gas() - br label %"$have_gas_2826" - -"$have_gas_2826": ; preds = %"$out_of_gas_2825", %"$have_gas_2820" - %"$consume_2827" = sub i64 %"$gasrem_2823", 8 - store i64 %"$consume_2827", i64* @_gasrem, align 8 - %"$init_bal_2828" = load %Uint128, %Uint128* %init_bal, align 8 - %"$amount_2829" = load %Uint128, %Uint128* %amount, align 8 - %"$sub_call_2830" = call %Uint128 @_sub_Uint128(%Uint128 %"$init_bal_2828", %Uint128 %"$amount_2829"), !dbg !244 - store %Uint128 %"$sub_call_2830", %Uint128* %expected_intermediate_balance, align 8, !dbg !244 - %"$gasrem_2831" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2832" = icmp ugt i64 1, %"$gasrem_2831" - br i1 %"$gascmp_2832", label %"$out_of_gas_2833", label %"$have_gas_2834" + call void @llvm.dbg.declare(metadata %Uint128* %expected_intermediate_balance, metadata !527, metadata !DIExpression()), !dbg !528 + %"$gasrem_2887" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2888" = icmp ugt i64 8, %"$gasrem_2887" + br i1 %"$gascmp_2888", label %"$out_of_gas_2889", label %"$have_gas_2890" + +"$out_of_gas_2889": ; preds = %"$have_gas_2884" + call void @_out_of_gas() + br label %"$have_gas_2890" + +"$have_gas_2890": ; preds = %"$out_of_gas_2889", %"$have_gas_2884" + %"$consume_2891" = sub i64 %"$gasrem_2887", 8 + store i64 %"$consume_2891", i64* @_gasrem, align 8 + %"$init_bal_2892" = load %Uint128, %Uint128* %init_bal, align 8 + %"$amount_2893" = load %Uint128, %Uint128* %amount, align 8 + %"$sub_call_2894" = call %Uint128 @_sub_Uint128(%Uint128 %"$init_bal_2892", %Uint128 %"$amount_2893"), !dbg !529 + store %Uint128 %"$sub_call_2894", %Uint128* %expected_intermediate_balance, align 8, !dbg !529 + %"$gasrem_2895" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2896" = icmp ugt i64 1, %"$gasrem_2895" + br i1 %"$gascmp_2896", label %"$out_of_gas_2897", label %"$have_gas_2898" -"$out_of_gas_2833": ; preds = %"$have_gas_2826" +"$out_of_gas_2897": ; preds = %"$have_gas_2890" call void @_out_of_gas() - br label %"$have_gas_2834" + br label %"$have_gas_2898" -"$have_gas_2834": ; preds = %"$out_of_gas_2833", %"$have_gas_2826" - %"$consume_2835" = sub i64 %"$gasrem_2831", 1 - store i64 %"$consume_2835", i64* @_gasrem, align 8 +"$have_gas_2898": ; preds = %"$out_of_gas_2897", %"$have_gas_2890" + %"$consume_2899" = sub i64 %"$gasrem_2895", 1 + store i64 %"$consume_2899", i64* @_gasrem, align 8 %expected_final_balance = alloca %Uint128, align 8 - %"$gasrem_2837" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2838" = icmp ugt i64 8, %"$gasrem_2837" - br i1 %"$gascmp_2838", label %"$out_of_gas_2839", label %"$have_gas_2840" - -"$out_of_gas_2839": ; preds = %"$have_gas_2834" - call void @_out_of_gas() - br label %"$have_gas_2840" - -"$have_gas_2840": ; preds = %"$out_of_gas_2839", %"$have_gas_2834" - %"$consume_2841" = sub i64 %"$gasrem_2837", 8 - store i64 %"$consume_2841", i64* @_gasrem, align 8 - %"$expected_intermediate_balance_2842" = load %Uint128, %Uint128* %expected_intermediate_balance, align 8 - %"$amount_2843" = load %Uint128, %Uint128* %amount, align 8 - %"$sub_call_2844" = call %Uint128 @_sub_Uint128(%Uint128 %"$expected_intermediate_balance_2842", %Uint128 %"$amount_2843"), !dbg !245 - store %Uint128 %"$sub_call_2844", %Uint128* %expected_final_balance, align 8, !dbg !245 - %"$gasrem_2845" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2846" = icmp ugt i64 1, %"$gasrem_2845" - br i1 %"$gascmp_2846", label %"$out_of_gas_2847", label %"$have_gas_2848" - -"$out_of_gas_2847": ; preds = %"$have_gas_2840" - call void @_out_of_gas() - br label %"$have_gas_2848" - -"$have_gas_2848": ; preds = %"$out_of_gas_2847", %"$have_gas_2840" - %"$consume_2849" = sub i64 %"$gasrem_2845", 1 - store i64 %"$consume_2849", i64* @_gasrem, align 8 - %"$CheckBalance__origin_2850" = alloca [20 x i8], align 1 - store [20 x i8] %_origin, [20 x i8]* %"$CheckBalance__origin_2850", align 1 - %"$CheckBalance__sender_2851" = alloca [20 x i8], align 1 - store [20 x i8] %_sender, [20 x i8]* %"$CheckBalance__sender_2851", align 1 - %"$expected_final_balance_2852" = load %Uint128, %Uint128* %expected_final_balance, align 8 - call void @"$CheckBalance_2223"(%Uint128 %_amount, [20 x i8]* %"$CheckBalance__origin_2850", [20 x i8]* %"$CheckBalance__sender_2851", %Uint128 %"$expected_final_balance_2852"), !dbg !246 + call void @llvm.dbg.declare(metadata %Uint128* %expected_final_balance, metadata !530, metadata !DIExpression()), !dbg !531 + %"$gasrem_2901" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2902" = icmp ugt i64 8, %"$gasrem_2901" + br i1 %"$gascmp_2902", label %"$out_of_gas_2903", label %"$have_gas_2904" + +"$out_of_gas_2903": ; preds = %"$have_gas_2898" + call void @_out_of_gas() + br label %"$have_gas_2904" + +"$have_gas_2904": ; preds = %"$out_of_gas_2903", %"$have_gas_2898" + %"$consume_2905" = sub i64 %"$gasrem_2901", 8 + store i64 %"$consume_2905", i64* @_gasrem, align 8 + %"$expected_intermediate_balance_2906" = load %Uint128, %Uint128* %expected_intermediate_balance, align 8 + %"$amount_2907" = load %Uint128, %Uint128* %amount, align 8 + %"$sub_call_2908" = call %Uint128 @_sub_Uint128(%Uint128 %"$expected_intermediate_balance_2906", %Uint128 %"$amount_2907"), !dbg !532 + store %Uint128 %"$sub_call_2908", %Uint128* %expected_final_balance, align 8, !dbg !532 + %"$gasrem_2909" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2910" = icmp ugt i64 1, %"$gasrem_2909" + br i1 %"$gascmp_2910", label %"$out_of_gas_2911", label %"$have_gas_2912" + +"$out_of_gas_2911": ; preds = %"$have_gas_2904" + call void @_out_of_gas() + br label %"$have_gas_2912" + +"$have_gas_2912": ; preds = %"$out_of_gas_2911", %"$have_gas_2904" + %"$consume_2913" = sub i64 %"$gasrem_2909", 1 + store i64 %"$consume_2913", i64* @_gasrem, align 8 + %"$CheckBalance__origin_2914" = alloca [20 x i8], align 1 + store [20 x i8] %_origin, [20 x i8]* %"$CheckBalance__origin_2914", align 1 + %"$CheckBalance__sender_2915" = alloca [20 x i8], align 1 + store [20 x i8] %_sender, [20 x i8]* %"$CheckBalance__sender_2915", align 1 + %"$expected_final_balance_2916" = load %Uint128, %Uint128* %expected_final_balance, align 8 + call void @"$CheckBalance_2268"(%Uint128 %_amount, [20 x i8]* %"$CheckBalance__origin_2914", [20 x i8]* %"$CheckBalance__sender_2915", %Uint128 %"$expected_final_balance_2916"), !dbg !533 ret void } -define void @Test_Send_5(i8* %0) !dbg !247 { +define void @Test_Send_5(i8* %0) !dbg !534 { entry: - %"$_amount_2854" = getelementptr i8, i8* %0, i32 0 - %"$_amount_2855" = bitcast i8* %"$_amount_2854" to %Uint128* - %_amount = load %Uint128, %Uint128* %"$_amount_2855", align 8 - %"$_origin_2856" = getelementptr i8, i8* %0, i32 16 - %"$_origin_2857" = bitcast i8* %"$_origin_2856" to [20 x i8]* - %"$_sender_2858" = getelementptr i8, i8* %0, i32 36 - %"$_sender_2859" = bitcast i8* %"$_sender_2858" to [20 x i8]* - call void @"$Test_Send_5_2662"(%Uint128 %_amount, [20 x i8]* %"$_origin_2857", [20 x i8]* %"$_sender_2859"), !dbg !248 + %"$_amount_2921" = getelementptr i8, i8* %0, i32 0 + %"$_amount_2922" = bitcast i8* %"$_amount_2921" to %Uint128* + %_amount = load %Uint128, %Uint128* %"$_amount_2922", align 8 + %"$_origin_2923" = getelementptr i8, i8* %0, i32 16 + %"$_origin_2924" = bitcast i8* %"$_origin_2923" to [20 x i8]* + %"$_sender_2925" = getelementptr i8, i8* %0, i32 36 + %"$_sender_2926" = bitcast i8* %"$_sender_2925" to [20 x i8]* + call void @"$Test_Send_5_2726"(%Uint128 %_amount, [20 x i8]* %"$_origin_2924", [20 x i8]* %"$_sender_2926"), !dbg !535 ret void } -define internal void @"$Test_Send_6_2860"(%Uint128 %_amount, [20 x i8]* %"$_origin_2861", [20 x i8]* %"$_sender_2862") !dbg !249 { +define internal void @"$Test_Send_6_2927"(%Uint128 %_amount, [20 x i8]* %"$_origin_2928", [20 x i8]* %"$_sender_2929") !dbg !536 { entry: - %_origin = load [20 x i8], [20 x i8]* %"$_origin_2861", align 1 - %_sender = load [20 x i8], [20 x i8]* %"$_sender_2862", align 1 - %"$gasrem_2863" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2864" = icmp ugt i64 1, %"$gasrem_2863" - br i1 %"$gascmp_2864", label %"$out_of_gas_2865", label %"$have_gas_2866" - -"$out_of_gas_2865": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_2866" - -"$have_gas_2866": ; preds = %"$out_of_gas_2865", %entry - %"$consume_2867" = sub i64 %"$gasrem_2863", 1 - store i64 %"$consume_2867", i64* @_gasrem, align 8 - %"$AssertReset__origin_2868" = alloca [20 x i8], align 1 - store [20 x i8] %_origin, [20 x i8]* %"$AssertReset__origin_2868", align 1 - %"$AssertReset__sender_2869" = alloca [20 x i8], align 1 - store [20 x i8] %_sender, [20 x i8]* %"$AssertReset__sender_2869", align 1 - call void @"$AssertReset_855"(%Uint128 %_amount, [20 x i8]* %"$AssertReset__origin_2868", [20 x i8]* %"$AssertReset__sender_2869"), !dbg !250 + %"$_sender_3114" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_sender_2929", [20 x i8]** %"$_sender_3114", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_sender_3114", metadata !537, metadata !DIExpression()), !dbg !538 + %"$_origin_3113" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_origin_2928", [20 x i8]** %"$_origin_3113", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_origin_3113", metadata !539, metadata !DIExpression()), !dbg !538 + %"$_amount_3112" = alloca %Uint128, align 8 + store %Uint128 %_amount, %Uint128* %"$_amount_3112", align 8 + call void @llvm.dbg.declare(metadata %Uint128* %"$_amount_3112", metadata !540, metadata !DIExpression()), !dbg !538 + %_origin = load [20 x i8], [20 x i8]* %"$_origin_2928", align 1 + %_sender = load [20 x i8], [20 x i8]* %"$_sender_2929", align 1 + %"$gasrem_2930" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2931" = icmp ugt i64 1, %"$gasrem_2930" + br i1 %"$gascmp_2931", label %"$out_of_gas_2932", label %"$have_gas_2933" + +"$out_of_gas_2932": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_2933" + +"$have_gas_2933": ; preds = %"$out_of_gas_2932", %entry + %"$consume_2934" = sub i64 %"$gasrem_2930", 1 + store i64 %"$consume_2934", i64* @_gasrem, align 8 + %"$AssertReset__origin_2935" = alloca [20 x i8], align 1 + store [20 x i8] %_origin, [20 x i8]* %"$AssertReset__origin_2935", align 1 + %"$AssertReset__sender_2936" = alloca [20 x i8], align 1 + store [20 x i8] %_sender, [20 x i8]* %"$AssertReset__sender_2936", align 1 + call void @"$AssertReset_869"(%Uint128 %_amount, [20 x i8]* %"$AssertReset__origin_2935", [20 x i8]* %"$AssertReset__sender_2936"), !dbg !541 %amount = alloca %Uint128, align 8 - %"$execptr_load_2871" = load i8*, i8** @_execptr, align 8 - %"$amount_call_2872" = call i8* @_fetch_field(i8* %"$execptr_load_2871", i8* getelementptr inbounds ([16 x i8], [16 x i8]* @"$outgoing_amount_2870", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Uint128_94", i32 0, i8* null, i32 1), !dbg !251 - %"$amount_2873" = bitcast i8* %"$amount_call_2872" to %Uint128* - %"$amount_2874" = load %Uint128, %Uint128* %"$amount_2873", align 8 - store %Uint128 %"$amount_2874", %Uint128* %amount, align 8 - %"$_literal_cost_amount_2875" = alloca %Uint128, align 8 - %"$amount_2876" = load %Uint128, %Uint128* %amount, align 8 - store %Uint128 %"$amount_2876", %Uint128* %"$_literal_cost_amount_2875", align 8 - %"$$_literal_cost_amount_2875_2877" = bitcast %Uint128* %"$_literal_cost_amount_2875" to i8* - %"$_literal_cost_call_2878" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Uint128_94", i8* %"$$_literal_cost_amount_2875_2877") - %"$gasadd_2879" = add i64 %"$_literal_cost_call_2878", 0 - %"$gasrem_2880" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2881" = icmp ugt i64 %"$gasadd_2879", %"$gasrem_2880" - br i1 %"$gascmp_2881", label %"$out_of_gas_2882", label %"$have_gas_2883" - -"$out_of_gas_2882": ; preds = %"$have_gas_2866" - call void @_out_of_gas() - br label %"$have_gas_2883" - -"$have_gas_2883": ; preds = %"$out_of_gas_2882", %"$have_gas_2866" - %"$consume_2884" = sub i64 %"$gasrem_2880", %"$gasadd_2879" - store i64 %"$consume_2884", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %Uint128* %amount, metadata !542, metadata !DIExpression()), !dbg !543 + %"$execptr_load_2938" = load i8*, i8** @_execptr, align 8 + %"$amount_call_2939" = call i8* @_fetch_field(i8* %"$execptr_load_2938", i8* getelementptr inbounds ([16 x i8], [16 x i8]* @"$outgoing_amount_2937", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Uint128_94", i32 0, i8* null, i32 1), !dbg !543 + %"$amount_2940" = bitcast i8* %"$amount_call_2939" to %Uint128* + %"$amount_2941" = load %Uint128, %Uint128* %"$amount_2940", align 8 + store %Uint128 %"$amount_2941", %Uint128* %amount, align 8 + %"$_literal_cost_amount_2942" = alloca %Uint128, align 8 + %"$amount_2943" = load %Uint128, %Uint128* %amount, align 8 + store %Uint128 %"$amount_2943", %Uint128* %"$_literal_cost_amount_2942", align 8 + %"$$_literal_cost_amount_2942_2944" = bitcast %Uint128* %"$_literal_cost_amount_2942" to i8* + %"$_literal_cost_call_2945" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Uint128_94", i8* %"$$_literal_cost_amount_2942_2944") + %"$gasadd_2946" = add i64 %"$_literal_cost_call_2945", 0 + %"$gasrem_2947" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2948" = icmp ugt i64 %"$gasadd_2946", %"$gasrem_2947" + br i1 %"$gascmp_2948", label %"$out_of_gas_2949", label %"$have_gas_2950" + +"$out_of_gas_2949": ; preds = %"$have_gas_2933" + call void @_out_of_gas() + br label %"$have_gas_2950" + +"$have_gas_2950": ; preds = %"$out_of_gas_2949", %"$have_gas_2933" + %"$consume_2951" = sub i64 %"$gasrem_2947", %"$gasadd_2946" + store i64 %"$consume_2951", i64* @_gasrem, align 8 %bal = alloca %Uint128, align 8 - %"$execptr_load_2886" = load i8*, i8** @_execptr, align 8 - %"$bal_call_2887" = call i8* @_fetch_field(i8* %"$execptr_load_2886", i8* getelementptr inbounds ([9 x i8], [9 x i8]* @"$_balance_2885", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Uint128_94", i32 0, i8* null, i32 1), !dbg !252 - %"$bal_2888" = bitcast i8* %"$bal_call_2887" to %Uint128* - %"$bal_2889" = load %Uint128, %Uint128* %"$bal_2888", align 8 - store %Uint128 %"$bal_2889", %Uint128* %bal, align 8 - %"$_literal_cost_bal_2890" = alloca %Uint128, align 8 - %"$bal_2891" = load %Uint128, %Uint128* %bal, align 8 - store %Uint128 %"$bal_2891", %Uint128* %"$_literal_cost_bal_2890", align 8 - %"$$_literal_cost_bal_2890_2892" = bitcast %Uint128* %"$_literal_cost_bal_2890" to i8* - %"$_literal_cost_call_2893" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Uint128_94", i8* %"$$_literal_cost_bal_2890_2892") - %"$gasadd_2894" = add i64 %"$_literal_cost_call_2893", 0 - %"$gasrem_2895" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2896" = icmp ugt i64 %"$gasadd_2894", %"$gasrem_2895" - br i1 %"$gascmp_2896", label %"$out_of_gas_2897", label %"$have_gas_2898" + call void @llvm.dbg.declare(metadata %Uint128* %bal, metadata !544, metadata !DIExpression()), !dbg !545 + %"$execptr_load_2953" = load i8*, i8** @_execptr, align 8 + %"$bal_call_2954" = call i8* @_fetch_field(i8* %"$execptr_load_2953", i8* getelementptr inbounds ([9 x i8], [9 x i8]* @"$_balance_2952", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Uint128_94", i32 0, i8* null, i32 1), !dbg !545 + %"$bal_2955" = bitcast i8* %"$bal_call_2954" to %Uint128* + %"$bal_2956" = load %Uint128, %Uint128* %"$bal_2955", align 8 + store %Uint128 %"$bal_2956", %Uint128* %bal, align 8 + %"$_literal_cost_bal_2957" = alloca %Uint128, align 8 + %"$bal_2958" = load %Uint128, %Uint128* %bal, align 8 + store %Uint128 %"$bal_2958", %Uint128* %"$_literal_cost_bal_2957", align 8 + %"$$_literal_cost_bal_2957_2959" = bitcast %Uint128* %"$_literal_cost_bal_2957" to i8* + %"$_literal_cost_call_2960" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Uint128_94", i8* %"$$_literal_cost_bal_2957_2959") + %"$gasadd_2961" = add i64 %"$_literal_cost_call_2960", 0 + %"$gasrem_2962" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2963" = icmp ugt i64 %"$gasadd_2961", %"$gasrem_2962" + br i1 %"$gascmp_2963", label %"$out_of_gas_2964", label %"$have_gas_2965" -"$out_of_gas_2897": ; preds = %"$have_gas_2883" +"$out_of_gas_2964": ; preds = %"$have_gas_2950" call void @_out_of_gas() - br label %"$have_gas_2898" + br label %"$have_gas_2965" -"$have_gas_2898": ; preds = %"$out_of_gas_2897", %"$have_gas_2883" - %"$consume_2899" = sub i64 %"$gasrem_2895", %"$gasadd_2894" - store i64 %"$consume_2899", i64* @_gasrem, align 8 - %"$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" +"$have_gas_2965": ; preds = %"$out_of_gas_2964", %"$have_gas_2950" + %"$consume_2966" = sub i64 %"$gasrem_2962", %"$gasadd_2961" + store i64 %"$consume_2966", i64* @_gasrem, align 8 + %"$gasrem_2967" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2968" = icmp ugt i64 1, %"$gasrem_2967" + br i1 %"$gascmp_2968", label %"$out_of_gas_2969", label %"$have_gas_2970" -"$out_of_gas_2902": ; preds = %"$have_gas_2898" +"$out_of_gas_2969": ; preds = %"$have_gas_2965" call void @_out_of_gas() - br label %"$have_gas_2903" + br label %"$have_gas_2970" -"$have_gas_2903": ; preds = %"$out_of_gas_2902", %"$have_gas_2898" - %"$consume_2904" = sub i64 %"$gasrem_2900", 1 - store i64 %"$consume_2904", i64* @_gasrem, align 8 +"$have_gas_2970": ; preds = %"$out_of_gas_2969", %"$have_gas_2965" + %"$consume_2971" = sub i64 %"$gasrem_2967", 1 + store i64 %"$consume_2971", i64* @_gasrem, align 8 %msg1 = alloca i8*, align 8 - %"$gasrem_2905" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2906" = icmp ugt i64 1, %"$gasrem_2905" - br i1 %"$gascmp_2906", label %"$out_of_gas_2907", label %"$have_gas_2908" - -"$out_of_gas_2907": ; preds = %"$have_gas_2903" - call void @_out_of_gas() - br label %"$have_gas_2908" - -"$have_gas_2908": ; preds = %"$out_of_gas_2907", %"$have_gas_2903" - %"$consume_2909" = sub i64 %"$gasrem_2905", 1 - store i64 %"$consume_2909", i64* @_gasrem, align 8 - %"$msgobj_2910_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$msgobj_2910_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_2910_salloc_load", i64 125) - %"$msgobj_2910_salloc" = bitcast i8* %"$msgobj_2910_salloc_salloc" to [125 x i8]* - %"$msgobj_2910" = bitcast [125 x i8]* %"$msgobj_2910_salloc" to i8* - store i8 3, i8* %"$msgobj_2910", align 1 - %"$msgobj_fname_2912" = getelementptr i8, i8* %"$msgobj_2910", i32 1 - %"$msgobj_fname_2913" = bitcast i8* %"$msgobj_fname_2912" to %String* - store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_2911", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_2913", align 8 - %"$msgobj_td_2914" = getelementptr i8, i8* %"$msgobj_2910", i32 17 - %"$msgobj_td_2915" = bitcast i8* %"$msgobj_td_2914" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_114", %_TyDescrTy_Typ** %"$msgobj_td_2915", align 8 - %"$support_contract_2916" = load [20 x i8], [20 x i8]* @_cparam_support_contract, align 1 - %"$msgobj_v_2917" = getelementptr i8, i8* %"$msgobj_2910", i32 25 - %"$msgobj_v_2918" = bitcast i8* %"$msgobj_v_2917" to [20 x i8]* - store [20 x i8] %"$support_contract_2916", [20 x i8]* %"$msgobj_v_2918", align 1 - %"$msgobj_fname_2920" = getelementptr i8, i8* %"$msgobj_2910", i32 45 - %"$msgobj_fname_2921" = bitcast i8* %"$msgobj_fname_2920" to %String* - store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_2919", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_2921", align 8 - %"$msgobj_td_2922" = getelementptr i8, i8* %"$msgobj_2910", i32 61 - %"$msgobj_td_2923" = bitcast i8* %"$msgobj_td_2922" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_String_100", %_TyDescrTy_Typ** %"$msgobj_td_2923", align 8 - %"$msgobj_v_2925" = getelementptr i8, i8* %"$msgobj_2910", i32 69 - %"$msgobj_v_2926" = bitcast i8* %"$msgobj_v_2925" to %String* - store %String { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$stringlit_2924", i32 0, i32 0), i32 6 }, %String* %"$msgobj_v_2926", align 8 - %"$msgobj_fname_2928" = getelementptr i8, i8* %"$msgobj_2910", i32 85 - %"$msgobj_fname_2929" = bitcast i8* %"$msgobj_fname_2928" to %String* - store %String { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$stringlit_2927", i32 0, i32 0), i32 7 }, %String* %"$msgobj_fname_2929", align 8 - %"$msgobj_td_2930" = getelementptr i8, i8* %"$msgobj_2910", i32 101 - %"$msgobj_td_2931" = bitcast i8* %"$msgobj_td_2930" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Uint128_94", %_TyDescrTy_Typ** %"$msgobj_td_2931", align 8 - %"$amount_2932" = load %Uint128, %Uint128* %amount, align 8 - %"$msgobj_v_2933" = getelementptr i8, i8* %"$msgobj_2910", i32 109 - %"$msgobj_v_2934" = bitcast i8* %"$msgobj_v_2933" to %Uint128* - store %Uint128 %"$amount_2932", %Uint128* %"$msgobj_v_2934", align 8 - store i8* %"$msgobj_2910", i8** %msg1, align 8, !dbg !253 - %"$gasrem_2936" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2937" = icmp ugt i64 1, %"$gasrem_2936" - br i1 %"$gascmp_2937", label %"$out_of_gas_2938", label %"$have_gas_2939" - -"$out_of_gas_2938": ; preds = %"$have_gas_2908" - call void @_out_of_gas() - br label %"$have_gas_2939" - -"$have_gas_2939": ; preds = %"$out_of_gas_2938", %"$have_gas_2908" - %"$consume_2940" = sub i64 %"$gasrem_2936", 1 - store i64 %"$consume_2940", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata i8** %msg1, metadata !546, metadata !DIExpression()), !dbg !547 + %"$gasrem_2972" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2973" = icmp ugt i64 1, %"$gasrem_2972" + br i1 %"$gascmp_2973", label %"$out_of_gas_2974", label %"$have_gas_2975" + +"$out_of_gas_2974": ; preds = %"$have_gas_2970" + call void @_out_of_gas() + br label %"$have_gas_2975" + +"$have_gas_2975": ; preds = %"$out_of_gas_2974", %"$have_gas_2970" + %"$consume_2976" = sub i64 %"$gasrem_2972", 1 + store i64 %"$consume_2976", i64* @_gasrem, align 8 + %"$msgobj_2977_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$msgobj_2977_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_2977_salloc_load", i64 125) + %"$msgobj_2977_salloc" = bitcast i8* %"$msgobj_2977_salloc_salloc" to [125 x i8]* + %"$msgobj_2977" = bitcast [125 x i8]* %"$msgobj_2977_salloc" to i8* + store i8 3, i8* %"$msgobj_2977", align 1 + %"$msgobj_fname_2979" = getelementptr i8, i8* %"$msgobj_2977", i32 1 + %"$msgobj_fname_2980" = bitcast i8* %"$msgobj_fname_2979" to %String* + store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_2978", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_2980", align 8 + %"$msgobj_td_2981" = getelementptr i8, i8* %"$msgobj_2977", i32 17 + %"$msgobj_td_2982" = bitcast i8* %"$msgobj_td_2981" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_114", %_TyDescrTy_Typ** %"$msgobj_td_2982", align 8 + %"$support_contract_2983" = load [20 x i8], [20 x i8]* @_cparam_support_contract, align 1 + %"$msgobj_v_2984" = getelementptr i8, i8* %"$msgobj_2977", i32 25 + %"$msgobj_v_2985" = bitcast i8* %"$msgobj_v_2984" to [20 x i8]* + store [20 x i8] %"$support_contract_2983", [20 x i8]* %"$msgobj_v_2985", align 1 + %"$msgobj_fname_2987" = getelementptr i8, i8* %"$msgobj_2977", i32 45 + %"$msgobj_fname_2988" = bitcast i8* %"$msgobj_fname_2987" to %String* + store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_2986", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_2988", align 8 + %"$msgobj_td_2989" = getelementptr i8, i8* %"$msgobj_2977", i32 61 + %"$msgobj_td_2990" = bitcast i8* %"$msgobj_td_2989" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_String_100", %_TyDescrTy_Typ** %"$msgobj_td_2990", align 8 + %"$msgobj_v_2992" = getelementptr i8, i8* %"$msgobj_2977", i32 69 + %"$msgobj_v_2993" = bitcast i8* %"$msgobj_v_2992" to %String* + store %String { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$stringlit_2991", i32 0, i32 0), i32 6 }, %String* %"$msgobj_v_2993", align 8 + %"$msgobj_fname_2995" = getelementptr i8, i8* %"$msgobj_2977", i32 85 + %"$msgobj_fname_2996" = bitcast i8* %"$msgobj_fname_2995" to %String* + store %String { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$stringlit_2994", i32 0, i32 0), i32 7 }, %String* %"$msgobj_fname_2996", align 8 + %"$msgobj_td_2997" = getelementptr i8, i8* %"$msgobj_2977", i32 101 + %"$msgobj_td_2998" = bitcast i8* %"$msgobj_td_2997" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Uint128_94", %_TyDescrTy_Typ** %"$msgobj_td_2998", align 8 + %"$amount_2999" = load %Uint128, %Uint128* %amount, align 8 + %"$msgobj_v_3000" = getelementptr i8, i8* %"$msgobj_2977", i32 109 + %"$msgobj_v_3001" = bitcast i8* %"$msgobj_v_3000" to %Uint128* + store %Uint128 %"$amount_2999", %Uint128* %"$msgobj_v_3001", align 8 + store i8* %"$msgobj_2977", i8** %msg1, align 8, !dbg !548 + %"$gasrem_3003" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3004" = icmp ugt i64 1, %"$gasrem_3003" + br i1 %"$gascmp_3004", label %"$out_of_gas_3005", label %"$have_gas_3006" + +"$out_of_gas_3005": ; preds = %"$have_gas_2975" + call void @_out_of_gas() + br label %"$have_gas_3006" + +"$have_gas_3006": ; preds = %"$out_of_gas_3005", %"$have_gas_2975" + %"$consume_3007" = sub i64 %"$gasrem_3003", 1 + store i64 %"$consume_3007", i64* @_gasrem, align 8 %msgs1 = alloca %TName_List_Message*, align 8 - %"$gasrem_2941" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2942" = icmp ugt i64 1, %"$gasrem_2941" - br i1 %"$gascmp_2942", label %"$out_of_gas_2943", label %"$have_gas_2944" + call void @llvm.dbg.declare(metadata %TName_List_Message** %msgs1, metadata !549, metadata !DIExpression()), !dbg !550 + %"$gasrem_3008" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3009" = icmp ugt i64 1, %"$gasrem_3008" + br i1 %"$gascmp_3009", label %"$out_of_gas_3010", label %"$have_gas_3011" -"$out_of_gas_2943": ; preds = %"$have_gas_2939" +"$out_of_gas_3010": ; preds = %"$have_gas_3006" call void @_out_of_gas() - br label %"$have_gas_2944" + br label %"$have_gas_3011" -"$have_gas_2944": ; preds = %"$out_of_gas_2943", %"$have_gas_2939" - %"$consume_2945" = sub i64 %"$gasrem_2941", 1 - store i64 %"$consume_2945", i64* @_gasrem, align 8 +"$have_gas_3011": ; preds = %"$out_of_gas_3010", %"$have_gas_3006" + %"$consume_3012" = sub i64 %"$gasrem_3008", 1 + store i64 %"$consume_3012", i64* @_gasrem, align 8 %"$accounting_tests.one_msg_34" = alloca %TName_List_Message*, align 8 - %"$accounting_tests.one_msg_2946" = load { %TName_List_Message* (i8*, i8*)*, i8* }, { %TName_List_Message* (i8*, i8*)*, i8* }* @accounting_tests.one_msg, align 8 - %"$accounting_tests.one_msg_fptr_2947" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$accounting_tests.one_msg_2946", 0 - %"$accounting_tests.one_msg_envptr_2948" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$accounting_tests.one_msg_2946", 1 - %"$msg1_2949" = load i8*, i8** %msg1, align 8 - %"$accounting_tests.one_msg_call_2950" = call %TName_List_Message* %"$accounting_tests.one_msg_fptr_2947"(i8* %"$accounting_tests.one_msg_envptr_2948", i8* %"$msg1_2949"), !dbg !254 - store %TName_List_Message* %"$accounting_tests.one_msg_call_2950", %TName_List_Message** %"$accounting_tests.one_msg_34", align 8, !dbg !254 - %"$$accounting_tests.one_msg_34_2951" = load %TName_List_Message*, %TName_List_Message** %"$accounting_tests.one_msg_34", align 8 - store %TName_List_Message* %"$$accounting_tests.one_msg_34_2951", %TName_List_Message** %msgs1, align 8, !dbg !254 - %"$msgs1_2952" = load %TName_List_Message*, %TName_List_Message** %msgs1, align 8 - %"$$msgs1_2952_2953" = bitcast %TName_List_Message* %"$msgs1_2952" to i8* - %"$_literal_cost_call_2954" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_120", i8* %"$$msgs1_2952_2953") - %"$gasrem_2955" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2956" = icmp ugt i64 %"$_literal_cost_call_2954", %"$gasrem_2955" - br i1 %"$gascmp_2956", label %"$out_of_gas_2957", label %"$have_gas_2958" - -"$out_of_gas_2957": ; preds = %"$have_gas_2944" - call void @_out_of_gas() - br label %"$have_gas_2958" - -"$have_gas_2958": ; preds = %"$out_of_gas_2957", %"$have_gas_2944" - %"$consume_2959" = sub i64 %"$gasrem_2955", %"$_literal_cost_call_2954" - store i64 %"$consume_2959", i64* @_gasrem, align 8 - %"$execptr_load_2960" = load i8*, i8** @_execptr, align 8 - %"$msgs1_2961" = load %TName_List_Message*, %TName_List_Message** %msgs1, align 8 - call void @_send(i8* %"$execptr_load_2960", %_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_120", %TName_List_Message* %"$msgs1_2961"), !dbg !255 - %"$gasrem_2962" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2963" = icmp ugt i64 1, %"$gasrem_2962" - br i1 %"$gascmp_2963", label %"$out_of_gas_2964", label %"$have_gas_2965" - -"$out_of_gas_2964": ; preds = %"$have_gas_2958" - call void @_out_of_gas() - br label %"$have_gas_2965" - -"$have_gas_2965": ; preds = %"$out_of_gas_2964", %"$have_gas_2958" - %"$consume_2966" = sub i64 %"$gasrem_2962", 1 - store i64 %"$consume_2966", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_List_Message** %"$accounting_tests.one_msg_34", metadata !551, metadata !DIExpression()), !dbg !552 + %"$accounting_tests.one_msg_3013" = load { %TName_List_Message* (i8*, i8*)*, i8* }, { %TName_List_Message* (i8*, i8*)*, i8* }* @accounting_tests.one_msg, align 8 + %"$accounting_tests.one_msg_fptr_3014" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$accounting_tests.one_msg_3013", 0 + %"$accounting_tests.one_msg_envptr_3015" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$accounting_tests.one_msg_3013", 1 + %"$msg1_3016" = load i8*, i8** %msg1, align 8 + %"$accounting_tests.one_msg_call_3017" = call %TName_List_Message* %"$accounting_tests.one_msg_fptr_3014"(i8* %"$accounting_tests.one_msg_envptr_3015", i8* %"$msg1_3016"), !dbg !552 + store %TName_List_Message* %"$accounting_tests.one_msg_call_3017", %TName_List_Message** %"$accounting_tests.one_msg_34", align 8, !dbg !552 + %"$$accounting_tests.one_msg_34_3018" = load %TName_List_Message*, %TName_List_Message** %"$accounting_tests.one_msg_34", align 8 + store %TName_List_Message* %"$$accounting_tests.one_msg_34_3018", %TName_List_Message** %msgs1, align 8, !dbg !552 + %"$msgs1_3019" = load %TName_List_Message*, %TName_List_Message** %msgs1, align 8 + %"$$msgs1_3019_3020" = bitcast %TName_List_Message* %"$msgs1_3019" to i8* + %"$_literal_cost_call_3021" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_120", i8* %"$$msgs1_3019_3020") + %"$gasrem_3022" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3023" = icmp ugt i64 %"$_literal_cost_call_3021", %"$gasrem_3022" + br i1 %"$gascmp_3023", label %"$out_of_gas_3024", label %"$have_gas_3025" + +"$out_of_gas_3024": ; preds = %"$have_gas_3011" + call void @_out_of_gas() + br label %"$have_gas_3025" + +"$have_gas_3025": ; preds = %"$out_of_gas_3024", %"$have_gas_3011" + %"$consume_3026" = sub i64 %"$gasrem_3022", %"$_literal_cost_call_3021" + store i64 %"$consume_3026", i64* @_gasrem, align 8 + %"$execptr_load_3027" = load i8*, i8** @_execptr, align 8 + %"$msgs1_3028" = load %TName_List_Message*, %TName_List_Message** %msgs1, align 8 + call void @_send(i8* %"$execptr_load_3027", %_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_120", %TName_List_Message* %"$msgs1_3028"), !dbg !553 + %"$gasrem_3029" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3030" = icmp ugt i64 1, %"$gasrem_3029" + br i1 %"$gascmp_3030", label %"$out_of_gas_3031", label %"$have_gas_3032" + +"$out_of_gas_3031": ; preds = %"$have_gas_3025" + call void @_out_of_gas() + br label %"$have_gas_3032" + +"$have_gas_3032": ; preds = %"$out_of_gas_3031", %"$have_gas_3025" + %"$consume_3033" = sub i64 %"$gasrem_3029", 1 + store i64 %"$consume_3033", i64* @_gasrem, align 8 %expected_balance = alloca %Uint128, align 8 - %"$gasrem_2968" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2969" = icmp ugt i64 8, %"$gasrem_2968" - br i1 %"$gascmp_2969", label %"$out_of_gas_2970", label %"$have_gas_2971" + call void @llvm.dbg.declare(metadata %Uint128* %expected_balance, metadata !554, metadata !DIExpression()), !dbg !555 + %"$gasrem_3035" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3036" = icmp ugt i64 8, %"$gasrem_3035" + br i1 %"$gascmp_3036", label %"$out_of_gas_3037", label %"$have_gas_3038" -"$out_of_gas_2970": ; preds = %"$have_gas_2965" +"$out_of_gas_3037": ; preds = %"$have_gas_3032" call void @_out_of_gas() - br label %"$have_gas_2971" + br label %"$have_gas_3038" -"$have_gas_2971": ; preds = %"$out_of_gas_2970", %"$have_gas_2965" - %"$consume_2972" = sub i64 %"$gasrem_2968", 8 - store i64 %"$consume_2972", i64* @_gasrem, align 8 - %"$bal_2973" = load %Uint128, %Uint128* %bal, align 8 - %"$amount_2974" = load %Uint128, %Uint128* %amount, align 8 - %"$sub_call_2975" = call %Uint128 @_sub_Uint128(%Uint128 %"$bal_2973", %Uint128 %"$amount_2974"), !dbg !256 - store %Uint128 %"$sub_call_2975", %Uint128* %expected_balance, align 8, !dbg !256 - %"$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" +"$have_gas_3038": ; preds = %"$out_of_gas_3037", %"$have_gas_3032" + %"$consume_3039" = sub i64 %"$gasrem_3035", 8 + store i64 %"$consume_3039", i64* @_gasrem, align 8 + %"$bal_3040" = load %Uint128, %Uint128* %bal, align 8 + %"$amount_3041" = load %Uint128, %Uint128* %amount, align 8 + %"$sub_call_3042" = call %Uint128 @_sub_Uint128(%Uint128 %"$bal_3040", %Uint128 %"$amount_3041"), !dbg !556 + store %Uint128 %"$sub_call_3042", %Uint128* %expected_balance, align 8, !dbg !556 + %"$gasrem_3043" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3044" = icmp ugt i64 1, %"$gasrem_3043" + br i1 %"$gascmp_3044", label %"$out_of_gas_3045", label %"$have_gas_3046" -"$out_of_gas_2978": ; preds = %"$have_gas_2971" +"$out_of_gas_3045": ; preds = %"$have_gas_3038" call void @_out_of_gas() - br label %"$have_gas_2979" + br label %"$have_gas_3046" -"$have_gas_2979": ; preds = %"$out_of_gas_2978", %"$have_gas_2971" - %"$consume_2980" = sub i64 %"$gasrem_2976", 1 - store i64 %"$consume_2980", i64* @_gasrem, align 8 +"$have_gas_3046": ; preds = %"$out_of_gas_3045", %"$have_gas_3038" + %"$consume_3047" = sub i64 %"$gasrem_3043", 1 + store i64 %"$consume_3047", i64* @_gasrem, align 8 %msg2 = alloca i8*, align 8 - %"$gasrem_2981" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2982" = icmp ugt i64 1, %"$gasrem_2981" - br i1 %"$gascmp_2982", label %"$out_of_gas_2983", label %"$have_gas_2984" - -"$out_of_gas_2983": ; preds = %"$have_gas_2979" - call void @_out_of_gas() - br label %"$have_gas_2984" - -"$have_gas_2984": ; preds = %"$out_of_gas_2983", %"$have_gas_2979" - %"$consume_2985" = sub i64 %"$gasrem_2981", 1 - store i64 %"$consume_2985", i64* @_gasrem, align 8 - %"$msgobj_2986_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$msgobj_2986_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_2986_salloc_load", i64 165) - %"$msgobj_2986_salloc" = bitcast i8* %"$msgobj_2986_salloc_salloc" to [165 x i8]* - %"$msgobj_2986" = bitcast [165 x i8]* %"$msgobj_2986_salloc" to i8* - store i8 4, i8* %"$msgobj_2986", align 1 - %"$msgobj_fname_2988" = getelementptr i8, i8* %"$msgobj_2986", i32 1 - %"$msgobj_fname_2989" = bitcast i8* %"$msgobj_fname_2988" to %String* - store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_2987", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_2989", align 8 - %"$msgobj_td_2990" = getelementptr i8, i8* %"$msgobj_2986", i32 17 - %"$msgobj_td_2991" = bitcast i8* %"$msgobj_td_2990" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_114", %_TyDescrTy_Typ** %"$msgobj_td_2991", align 8 - %"$_this_address_2992" = load [20 x i8], [20 x i8]* @_cparam__this_address, align 1 - %"$msgobj_v_2993" = getelementptr i8, i8* %"$msgobj_2986", i32 25 - %"$msgobj_v_2994" = bitcast i8* %"$msgobj_v_2993" to [20 x i8]* - store [20 x i8] %"$_this_address_2992", [20 x i8]* %"$msgobj_v_2994", align 1 - %"$msgobj_fname_2996" = getelementptr i8, i8* %"$msgobj_2986", i32 45 - %"$msgobj_fname_2997" = bitcast i8* %"$msgobj_fname_2996" to %String* - store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_2995", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_2997", align 8 - %"$msgobj_td_2998" = getelementptr i8, i8* %"$msgobj_2986", i32 61 - %"$msgobj_td_2999" = bitcast i8* %"$msgobj_td_2998" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_String_100", %_TyDescrTy_Typ** %"$msgobj_td_2999", align 8 - %"$msgobj_v_3001" = getelementptr i8, i8* %"$msgobj_2986", i32 69 - %"$msgobj_v_3002" = bitcast i8* %"$msgobj_v_3001" to %String* - store %String { i8* getelementptr inbounds ([18 x i8], [18 x i8]* @"$stringlit_3000", i32 0, i32 0), i32 18 }, %String* %"$msgobj_v_3002", align 8 - %"$msgobj_fname_3004" = getelementptr i8, i8* %"$msgobj_2986", i32 85 - %"$msgobj_fname_3005" = bitcast i8* %"$msgobj_fname_3004" to %String* - store %String { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$stringlit_3003", i32 0, i32 0), i32 7 }, %String* %"$msgobj_fname_3005", align 8 - %"$msgobj_td_3006" = getelementptr i8, i8* %"$msgobj_2986", i32 101 - %"$msgobj_td_3007" = bitcast i8* %"$msgobj_td_3006" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Uint128_94", %_TyDescrTy_Typ** %"$msgobj_td_3007", align 8 - %"$msgobj_v_3008" = getelementptr i8, i8* %"$msgobj_2986", i32 109 - %"$msgobj_v_3009" = bitcast i8* %"$msgobj_v_3008" to %Uint128* - store %Uint128 zeroinitializer, %Uint128* %"$msgobj_v_3009", align 8 - %"$msgobj_fname_3011" = getelementptr i8, i8* %"$msgobj_2986", i32 125 - %"$msgobj_fname_3012" = bitcast i8* %"$msgobj_fname_3011" to %String* - store %String { i8* getelementptr inbounds ([16 x i8], [16 x i8]* @"$stringlit_3010", i32 0, i32 0), i32 16 }, %String* %"$msgobj_fname_3012", align 8 - %"$msgobj_td_3013" = getelementptr i8, i8* %"$msgobj_2986", i32 141 - %"$msgobj_td_3014" = bitcast i8* %"$msgobj_td_3013" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Uint128_94", %_TyDescrTy_Typ** %"$msgobj_td_3014", align 8 - %"$expected_balance_3015" = load %Uint128, %Uint128* %expected_balance, align 8 - %"$msgobj_v_3016" = getelementptr i8, i8* %"$msgobj_2986", i32 149 - %"$msgobj_v_3017" = bitcast i8* %"$msgobj_v_3016" to %Uint128* - store %Uint128 %"$expected_balance_3015", %Uint128* %"$msgobj_v_3017", align 8 - store i8* %"$msgobj_2986", i8** %msg2, align 8, !dbg !257 - %"$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_2984" - call void @_out_of_gas() - br label %"$have_gas_3022" - -"$have_gas_3022": ; preds = %"$out_of_gas_3021", %"$have_gas_2984" - %"$consume_3023" = sub i64 %"$gasrem_3019", 1 - store i64 %"$consume_3023", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata i8** %msg2, metadata !557, metadata !DIExpression()), !dbg !558 + %"$gasrem_3048" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3049" = icmp ugt i64 1, %"$gasrem_3048" + br i1 %"$gascmp_3049", label %"$out_of_gas_3050", label %"$have_gas_3051" + +"$out_of_gas_3050": ; preds = %"$have_gas_3046" + call void @_out_of_gas() + br label %"$have_gas_3051" + +"$have_gas_3051": ; preds = %"$out_of_gas_3050", %"$have_gas_3046" + %"$consume_3052" = sub i64 %"$gasrem_3048", 1 + store i64 %"$consume_3052", i64* @_gasrem, align 8 + %"$msgobj_3053_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$msgobj_3053_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_3053_salloc_load", i64 165) + %"$msgobj_3053_salloc" = bitcast i8* %"$msgobj_3053_salloc_salloc" to [165 x i8]* + %"$msgobj_3053" = bitcast [165 x i8]* %"$msgobj_3053_salloc" to i8* + store i8 4, i8* %"$msgobj_3053", align 1 + %"$msgobj_fname_3055" = getelementptr i8, i8* %"$msgobj_3053", i32 1 + %"$msgobj_fname_3056" = bitcast i8* %"$msgobj_fname_3055" to %String* + store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_3054", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_3056", align 8 + %"$msgobj_td_3057" = getelementptr i8, i8* %"$msgobj_3053", i32 17 + %"$msgobj_td_3058" = bitcast i8* %"$msgobj_td_3057" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_114", %_TyDescrTy_Typ** %"$msgobj_td_3058", align 8 + %"$_this_address_3059" = load [20 x i8], [20 x i8]* @_cparam__this_address, align 1 + %"$msgobj_v_3060" = getelementptr i8, i8* %"$msgobj_3053", i32 25 + %"$msgobj_v_3061" = bitcast i8* %"$msgobj_v_3060" to [20 x i8]* + store [20 x i8] %"$_this_address_3059", [20 x i8]* %"$msgobj_v_3061", align 1 + %"$msgobj_fname_3063" = getelementptr i8, i8* %"$msgobj_3053", i32 45 + %"$msgobj_fname_3064" = bitcast i8* %"$msgobj_fname_3063" to %String* + store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_3062", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_3064", align 8 + %"$msgobj_td_3065" = getelementptr i8, i8* %"$msgobj_3053", i32 61 + %"$msgobj_td_3066" = bitcast i8* %"$msgobj_td_3065" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_String_100", %_TyDescrTy_Typ** %"$msgobj_td_3066", align 8 + %"$msgobj_v_3068" = getelementptr i8, i8* %"$msgobj_3053", i32 69 + %"$msgobj_v_3069" = bitcast i8* %"$msgobj_v_3068" to %String* + store %String { i8* getelementptr inbounds ([18 x i8], [18 x i8]* @"$stringlit_3067", i32 0, i32 0), i32 18 }, %String* %"$msgobj_v_3069", align 8 + %"$msgobj_fname_3071" = getelementptr i8, i8* %"$msgobj_3053", i32 85 + %"$msgobj_fname_3072" = bitcast i8* %"$msgobj_fname_3071" to %String* + store %String { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$stringlit_3070", i32 0, i32 0), i32 7 }, %String* %"$msgobj_fname_3072", align 8 + %"$msgobj_td_3073" = getelementptr i8, i8* %"$msgobj_3053", i32 101 + %"$msgobj_td_3074" = bitcast i8* %"$msgobj_td_3073" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Uint128_94", %_TyDescrTy_Typ** %"$msgobj_td_3074", align 8 + %"$msgobj_v_3075" = getelementptr i8, i8* %"$msgobj_3053", i32 109 + %"$msgobj_v_3076" = bitcast i8* %"$msgobj_v_3075" to %Uint128* + store %Uint128 zeroinitializer, %Uint128* %"$msgobj_v_3076", align 8 + %"$msgobj_fname_3078" = getelementptr i8, i8* %"$msgobj_3053", i32 125 + %"$msgobj_fname_3079" = bitcast i8* %"$msgobj_fname_3078" to %String* + store %String { i8* getelementptr inbounds ([16 x i8], [16 x i8]* @"$stringlit_3077", i32 0, i32 0), i32 16 }, %String* %"$msgobj_fname_3079", align 8 + %"$msgobj_td_3080" = getelementptr i8, i8* %"$msgobj_3053", i32 141 + %"$msgobj_td_3081" = bitcast i8* %"$msgobj_td_3080" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Uint128_94", %_TyDescrTy_Typ** %"$msgobj_td_3081", align 8 + %"$expected_balance_3082" = load %Uint128, %Uint128* %expected_balance, align 8 + %"$msgobj_v_3083" = getelementptr i8, i8* %"$msgobj_3053", i32 149 + %"$msgobj_v_3084" = bitcast i8* %"$msgobj_v_3083" to %Uint128* + store %Uint128 %"$expected_balance_3082", %Uint128* %"$msgobj_v_3084", align 8 + store i8* %"$msgobj_3053", i8** %msg2, align 8, !dbg !559 + %"$gasrem_3086" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3087" = icmp ugt i64 1, %"$gasrem_3086" + br i1 %"$gascmp_3087", label %"$out_of_gas_3088", label %"$have_gas_3089" + +"$out_of_gas_3088": ; preds = %"$have_gas_3051" + call void @_out_of_gas() + br label %"$have_gas_3089" + +"$have_gas_3089": ; preds = %"$out_of_gas_3088", %"$have_gas_3051" + %"$consume_3090" = sub i64 %"$gasrem_3086", 1 + store i64 %"$consume_3090", i64* @_gasrem, align 8 %msgs2 = alloca %TName_List_Message*, align 8 - %"$gasrem_3024" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3025" = icmp ugt i64 1, %"$gasrem_3024" - br i1 %"$gascmp_3025", label %"$out_of_gas_3026", label %"$have_gas_3027" + call void @llvm.dbg.declare(metadata %TName_List_Message** %msgs2, metadata !560, metadata !DIExpression()), !dbg !561 + %"$gasrem_3091" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3092" = icmp ugt i64 1, %"$gasrem_3091" + br i1 %"$gascmp_3092", label %"$out_of_gas_3093", label %"$have_gas_3094" -"$out_of_gas_3026": ; preds = %"$have_gas_3022" +"$out_of_gas_3093": ; preds = %"$have_gas_3089" call void @_out_of_gas() - br label %"$have_gas_3027" + br label %"$have_gas_3094" -"$have_gas_3027": ; preds = %"$out_of_gas_3026", %"$have_gas_3022" - %"$consume_3028" = sub i64 %"$gasrem_3024", 1 - store i64 %"$consume_3028", i64* @_gasrem, align 8 +"$have_gas_3094": ; preds = %"$out_of_gas_3093", %"$have_gas_3089" + %"$consume_3095" = sub i64 %"$gasrem_3091", 1 + store i64 %"$consume_3095", i64* @_gasrem, align 8 %"$accounting_tests.one_msg_33" = alloca %TName_List_Message*, align 8 - %"$accounting_tests.one_msg_3029" = load { %TName_List_Message* (i8*, i8*)*, i8* }, { %TName_List_Message* (i8*, i8*)*, i8* }* @accounting_tests.one_msg, align 8 - %"$accounting_tests.one_msg_fptr_3030" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$accounting_tests.one_msg_3029", 0 - %"$accounting_tests.one_msg_envptr_3031" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$accounting_tests.one_msg_3029", 1 - %"$msg2_3032" = load i8*, i8** %msg2, align 8 - %"$accounting_tests.one_msg_call_3033" = call %TName_List_Message* %"$accounting_tests.one_msg_fptr_3030"(i8* %"$accounting_tests.one_msg_envptr_3031", i8* %"$msg2_3032"), !dbg !258 - store %TName_List_Message* %"$accounting_tests.one_msg_call_3033", %TName_List_Message** %"$accounting_tests.one_msg_33", align 8, !dbg !258 - %"$$accounting_tests.one_msg_33_3034" = load %TName_List_Message*, %TName_List_Message** %"$accounting_tests.one_msg_33", align 8 - store %TName_List_Message* %"$$accounting_tests.one_msg_33_3034", %TName_List_Message** %msgs2, align 8, !dbg !258 - %"$msgs2_3035" = load %TName_List_Message*, %TName_List_Message** %msgs2, align 8 - %"$$msgs2_3035_3036" = bitcast %TName_List_Message* %"$msgs2_3035" to i8* - %"$_literal_cost_call_3037" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_120", i8* %"$$msgs2_3035_3036") - %"$gasrem_3038" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3039" = icmp ugt i64 %"$_literal_cost_call_3037", %"$gasrem_3038" - br i1 %"$gascmp_3039", label %"$out_of_gas_3040", label %"$have_gas_3041" - -"$out_of_gas_3040": ; preds = %"$have_gas_3027" - call void @_out_of_gas() - br label %"$have_gas_3041" - -"$have_gas_3041": ; preds = %"$out_of_gas_3040", %"$have_gas_3027" - %"$consume_3042" = sub i64 %"$gasrem_3038", %"$_literal_cost_call_3037" - store i64 %"$consume_3042", i64* @_gasrem, align 8 - %"$execptr_load_3043" = load i8*, i8** @_execptr, align 8 - %"$msgs2_3044" = load %TName_List_Message*, %TName_List_Message** %msgs2, align 8 - call void @_send(i8* %"$execptr_load_3043", %_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_120", %TName_List_Message* %"$msgs2_3044"), !dbg !259 + call void @llvm.dbg.declare(metadata %TName_List_Message** %"$accounting_tests.one_msg_33", metadata !562, metadata !DIExpression()), !dbg !563 + %"$accounting_tests.one_msg_3096" = load { %TName_List_Message* (i8*, i8*)*, i8* }, { %TName_List_Message* (i8*, i8*)*, i8* }* @accounting_tests.one_msg, align 8 + %"$accounting_tests.one_msg_fptr_3097" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$accounting_tests.one_msg_3096", 0 + %"$accounting_tests.one_msg_envptr_3098" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$accounting_tests.one_msg_3096", 1 + %"$msg2_3099" = load i8*, i8** %msg2, align 8 + %"$accounting_tests.one_msg_call_3100" = call %TName_List_Message* %"$accounting_tests.one_msg_fptr_3097"(i8* %"$accounting_tests.one_msg_envptr_3098", i8* %"$msg2_3099"), !dbg !563 + store %TName_List_Message* %"$accounting_tests.one_msg_call_3100", %TName_List_Message** %"$accounting_tests.one_msg_33", align 8, !dbg !563 + %"$$accounting_tests.one_msg_33_3101" = load %TName_List_Message*, %TName_List_Message** %"$accounting_tests.one_msg_33", align 8 + store %TName_List_Message* %"$$accounting_tests.one_msg_33_3101", %TName_List_Message** %msgs2, align 8, !dbg !563 + %"$msgs2_3102" = load %TName_List_Message*, %TName_List_Message** %msgs2, align 8 + %"$$msgs2_3102_3103" = bitcast %TName_List_Message* %"$msgs2_3102" to i8* + %"$_literal_cost_call_3104" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_120", i8* %"$$msgs2_3102_3103") + %"$gasrem_3105" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3106" = icmp ugt i64 %"$_literal_cost_call_3104", %"$gasrem_3105" + br i1 %"$gascmp_3106", label %"$out_of_gas_3107", label %"$have_gas_3108" + +"$out_of_gas_3107": ; preds = %"$have_gas_3094" + call void @_out_of_gas() + br label %"$have_gas_3108" + +"$have_gas_3108": ; preds = %"$out_of_gas_3107", %"$have_gas_3094" + %"$consume_3109" = sub i64 %"$gasrem_3105", %"$_literal_cost_call_3104" + store i64 %"$consume_3109", i64* @_gasrem, align 8 + %"$execptr_load_3110" = load i8*, i8** @_execptr, align 8 + %"$msgs2_3111" = load %TName_List_Message*, %TName_List_Message** %msgs2, align 8 + call void @_send(i8* %"$execptr_load_3110", %_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_120", %TName_List_Message* %"$msgs2_3111"), !dbg !564 ret void } -define void @Test_Send_6(i8* %0) !dbg !260 { +define void @Test_Send_6(i8* %0) !dbg !565 { entry: - %"$_amount_3046" = getelementptr i8, i8* %0, i32 0 - %"$_amount_3047" = bitcast i8* %"$_amount_3046" to %Uint128* - %_amount = load %Uint128, %Uint128* %"$_amount_3047", align 8 - %"$_origin_3048" = getelementptr i8, i8* %0, i32 16 - %"$_origin_3049" = bitcast i8* %"$_origin_3048" to [20 x i8]* - %"$_sender_3050" = getelementptr i8, i8* %0, i32 36 - %"$_sender_3051" = bitcast i8* %"$_sender_3050" to [20 x i8]* - call void @"$Test_Send_6_2860"(%Uint128 %_amount, [20 x i8]* %"$_origin_3049", [20 x i8]* %"$_sender_3051"), !dbg !261 + %"$_amount_3116" = getelementptr i8, i8* %0, i32 0 + %"$_amount_3117" = bitcast i8* %"$_amount_3116" to %Uint128* + %_amount = load %Uint128, %Uint128* %"$_amount_3117", align 8 + %"$_origin_3118" = getelementptr i8, i8* %0, i32 16 + %"$_origin_3119" = bitcast i8* %"$_origin_3118" to [20 x i8]* + %"$_sender_3120" = getelementptr i8, i8* %0, i32 36 + %"$_sender_3121" = bitcast i8* %"$_sender_3120" to [20 x i8]* + call void @"$Test_Send_6_2927"(%Uint128 %_amount, [20 x i8]* %"$_origin_3119", [20 x i8]* %"$_sender_3121"), !dbg !566 ret void } -define internal void @"$Test_Send_7_3052"(%Uint128 %_amount, [20 x i8]* %"$_origin_3053", [20 x i8]* %"$_sender_3054") !dbg !262 { +define internal void @"$Test_Send_7_3122"(%Uint128 %_amount, [20 x i8]* %"$_origin_3123", [20 x i8]* %"$_sender_3124") !dbg !567 { entry: - %_origin = load [20 x i8], [20 x i8]* %"$_origin_3053", align 1 - %_sender = load [20 x i8], [20 x i8]* %"$_sender_3054", align 1 - %"$gasrem_3055" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3056" = icmp ugt i64 1, %"$gasrem_3055" - br i1 %"$gascmp_3056", label %"$out_of_gas_3057", label %"$have_gas_3058" - -"$out_of_gas_3057": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_3058" - -"$have_gas_3058": ; preds = %"$out_of_gas_3057", %entry - %"$consume_3059" = sub i64 %"$gasrem_3055", 1 - store i64 %"$consume_3059", i64* @_gasrem, align 8 - %"$AssertReset__origin_3060" = alloca [20 x i8], align 1 - store [20 x i8] %_origin, [20 x i8]* %"$AssertReset__origin_3060", align 1 - %"$AssertReset__sender_3061" = alloca [20 x i8], align 1 - store [20 x i8] %_sender, [20 x i8]* %"$AssertReset__sender_3061", align 1 - call void @"$AssertReset_855"(%Uint128 %_amount, [20 x i8]* %"$AssertReset__origin_3060", [20 x i8]* %"$AssertReset__sender_3061"), !dbg !263 + %"$_sender_3295" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_sender_3124", [20 x i8]** %"$_sender_3295", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_sender_3295", metadata !568, metadata !DIExpression()), !dbg !569 + %"$_origin_3294" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_origin_3123", [20 x i8]** %"$_origin_3294", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_origin_3294", metadata !570, metadata !DIExpression()), !dbg !569 + %"$_amount_3293" = alloca %Uint128, align 8 + store %Uint128 %_amount, %Uint128* %"$_amount_3293", align 8 + call void @llvm.dbg.declare(metadata %Uint128* %"$_amount_3293", metadata !571, metadata !DIExpression()), !dbg !569 + %_origin = load [20 x i8], [20 x i8]* %"$_origin_3123", align 1 + %_sender = load [20 x i8], [20 x i8]* %"$_sender_3124", align 1 + %"$gasrem_3125" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3126" = icmp ugt i64 1, %"$gasrem_3125" + br i1 %"$gascmp_3126", label %"$out_of_gas_3127", label %"$have_gas_3128" + +"$out_of_gas_3127": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_3128" + +"$have_gas_3128": ; preds = %"$out_of_gas_3127", %entry + %"$consume_3129" = sub i64 %"$gasrem_3125", 1 + store i64 %"$consume_3129", i64* @_gasrem, align 8 + %"$AssertReset__origin_3130" = alloca [20 x i8], align 1 + store [20 x i8] %_origin, [20 x i8]* %"$AssertReset__origin_3130", align 1 + %"$AssertReset__sender_3131" = alloca [20 x i8], align 1 + store [20 x i8] %_sender, [20 x i8]* %"$AssertReset__sender_3131", align 1 + call void @"$AssertReset_869"(%Uint128 %_amount, [20 x i8]* %"$AssertReset__origin_3130", [20 x i8]* %"$AssertReset__sender_3131"), !dbg !572 %amount = alloca %Uint128, align 8 - %"$execptr_load_3063" = load i8*, i8** @_execptr, align 8 - %"$amount_call_3064" = call i8* @_fetch_field(i8* %"$execptr_load_3063", i8* getelementptr inbounds ([16 x i8], [16 x i8]* @"$outgoing_amount_3062", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Uint128_94", i32 0, i8* null, i32 1), !dbg !264 - %"$amount_3065" = bitcast i8* %"$amount_call_3064" to %Uint128* - %"$amount_3066" = load %Uint128, %Uint128* %"$amount_3065", align 8 - store %Uint128 %"$amount_3066", %Uint128* %amount, align 8 - %"$_literal_cost_amount_3067" = alloca %Uint128, align 8 - %"$amount_3068" = load %Uint128, %Uint128* %amount, align 8 - store %Uint128 %"$amount_3068", %Uint128* %"$_literal_cost_amount_3067", align 8 - %"$$_literal_cost_amount_3067_3069" = bitcast %Uint128* %"$_literal_cost_amount_3067" to i8* - %"$_literal_cost_call_3070" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Uint128_94", i8* %"$$_literal_cost_amount_3067_3069") - %"$gasadd_3071" = add i64 %"$_literal_cost_call_3070", 0 - %"$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 = %"$have_gas_3058" - call void @_out_of_gas() - br label %"$have_gas_3075" - -"$have_gas_3075": ; preds = %"$out_of_gas_3074", %"$have_gas_3058" - %"$consume_3076" = sub i64 %"$gasrem_3072", %"$gasadd_3071" - store i64 %"$consume_3076", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %Uint128* %amount, metadata !573, metadata !DIExpression()), !dbg !574 + %"$execptr_load_3133" = load i8*, i8** @_execptr, align 8 + %"$amount_call_3134" = call i8* @_fetch_field(i8* %"$execptr_load_3133", i8* getelementptr inbounds ([16 x i8], [16 x i8]* @"$outgoing_amount_3132", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Uint128_94", i32 0, i8* null, i32 1), !dbg !574 + %"$amount_3135" = bitcast i8* %"$amount_call_3134" to %Uint128* + %"$amount_3136" = load %Uint128, %Uint128* %"$amount_3135", align 8 + store %Uint128 %"$amount_3136", %Uint128* %amount, align 8 + %"$_literal_cost_amount_3137" = alloca %Uint128, align 8 + %"$amount_3138" = load %Uint128, %Uint128* %amount, align 8 + store %Uint128 %"$amount_3138", %Uint128* %"$_literal_cost_amount_3137", align 8 + %"$$_literal_cost_amount_3137_3139" = bitcast %Uint128* %"$_literal_cost_amount_3137" to i8* + %"$_literal_cost_call_3140" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Uint128_94", i8* %"$$_literal_cost_amount_3137_3139") + %"$gasadd_3141" = add i64 %"$_literal_cost_call_3140", 0 + %"$gasrem_3142" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3143" = icmp ugt i64 %"$gasadd_3141", %"$gasrem_3142" + br i1 %"$gascmp_3143", label %"$out_of_gas_3144", label %"$have_gas_3145" + +"$out_of_gas_3144": ; preds = %"$have_gas_3128" + call void @_out_of_gas() + br label %"$have_gas_3145" + +"$have_gas_3145": ; preds = %"$out_of_gas_3144", %"$have_gas_3128" + %"$consume_3146" = sub i64 %"$gasrem_3142", %"$gasadd_3141" + store i64 %"$consume_3146", i64* @_gasrem, align 8 %bal = alloca %Uint128, align 8 - %"$execptr_load_3078" = load i8*, i8** @_execptr, align 8 - %"$bal_call_3079" = call i8* @_fetch_field(i8* %"$execptr_load_3078", i8* getelementptr inbounds ([9 x i8], [9 x i8]* @"$_balance_3077", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Uint128_94", i32 0, i8* null, i32 1), !dbg !265 - %"$bal_3080" = bitcast i8* %"$bal_call_3079" to %Uint128* - %"$bal_3081" = load %Uint128, %Uint128* %"$bal_3080", align 8 - store %Uint128 %"$bal_3081", %Uint128* %bal, align 8 - %"$_literal_cost_bal_3082" = alloca %Uint128, align 8 - %"$bal_3083" = load %Uint128, %Uint128* %bal, align 8 - store %Uint128 %"$bal_3083", %Uint128* %"$_literal_cost_bal_3082", align 8 - %"$$_literal_cost_bal_3082_3084" = bitcast %Uint128* %"$_literal_cost_bal_3082" to i8* - %"$_literal_cost_call_3085" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Uint128_94", i8* %"$$_literal_cost_bal_3082_3084") - %"$gasadd_3086" = add i64 %"$_literal_cost_call_3085", 0 - %"$gasrem_3087" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3088" = icmp ugt i64 %"$gasadd_3086", %"$gasrem_3087" - br i1 %"$gascmp_3088", label %"$out_of_gas_3089", label %"$have_gas_3090" - -"$out_of_gas_3089": ; preds = %"$have_gas_3075" - call void @_out_of_gas() - br label %"$have_gas_3090" - -"$have_gas_3090": ; preds = %"$out_of_gas_3089", %"$have_gas_3075" - %"$consume_3091" = sub i64 %"$gasrem_3087", %"$gasadd_3086" - store i64 %"$consume_3091", i64* @_gasrem, 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 + call void @llvm.dbg.declare(metadata %Uint128* %bal, metadata !575, metadata !DIExpression()), !dbg !576 + %"$execptr_load_3148" = load i8*, i8** @_execptr, align 8 + %"$bal_call_3149" = call i8* @_fetch_field(i8* %"$execptr_load_3148", i8* getelementptr inbounds ([9 x i8], [9 x i8]* @"$_balance_3147", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Uint128_94", i32 0, i8* null, i32 1), !dbg !576 + %"$bal_3150" = bitcast i8* %"$bal_call_3149" to %Uint128* + %"$bal_3151" = load %Uint128, %Uint128* %"$bal_3150", align 8 + store %Uint128 %"$bal_3151", %Uint128* %bal, align 8 + %"$_literal_cost_bal_3152" = alloca %Uint128, align 8 + %"$bal_3153" = load %Uint128, %Uint128* %bal, align 8 + store %Uint128 %"$bal_3153", %Uint128* %"$_literal_cost_bal_3152", align 8 + %"$$_literal_cost_bal_3152_3154" = bitcast %Uint128* %"$_literal_cost_bal_3152" to i8* + %"$_literal_cost_call_3155" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Uint128_94", i8* %"$$_literal_cost_bal_3152_3154") + %"$gasadd_3156" = add i64 %"$_literal_cost_call_3155", 0 + %"$gasrem_3157" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3158" = icmp ugt i64 %"$gasadd_3156", %"$gasrem_3157" + br i1 %"$gascmp_3158", label %"$out_of_gas_3159", label %"$have_gas_3160" + +"$out_of_gas_3159": ; preds = %"$have_gas_3145" + call void @_out_of_gas() + br label %"$have_gas_3160" + +"$have_gas_3160": ; preds = %"$out_of_gas_3159", %"$have_gas_3145" + %"$consume_3161" = sub i64 %"$gasrem_3157", %"$gasadd_3156" + store i64 %"$consume_3161", i64* @_gasrem, align 8 + %"$gasrem_3162" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3163" = icmp ugt i64 1, %"$gasrem_3162" + br i1 %"$gascmp_3163", label %"$out_of_gas_3164", label %"$have_gas_3165" + +"$out_of_gas_3164": ; preds = %"$have_gas_3160" + call void @_out_of_gas() + br label %"$have_gas_3165" + +"$have_gas_3165": ; preds = %"$out_of_gas_3164", %"$have_gas_3160" + %"$consume_3166" = sub i64 %"$gasrem_3162", 1 + store i64 %"$consume_3166", i64* @_gasrem, align 8 %msg1 = alloca i8*, align 8 - %"$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 = %"$have_gas_3095" - call void @_out_of_gas() - br label %"$have_gas_3100" - -"$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 - %"$msgobj_3102_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$msgobj_3102_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_3102_salloc_load", i64 125) - %"$msgobj_3102_salloc" = bitcast i8* %"$msgobj_3102_salloc_salloc" to [125 x i8]* - %"$msgobj_3102" = bitcast [125 x i8]* %"$msgobj_3102_salloc" to i8* - store i8 3, i8* %"$msgobj_3102", align 1 - %"$msgobj_fname_3104" = getelementptr i8, i8* %"$msgobj_3102", i32 1 - %"$msgobj_fname_3105" = bitcast i8* %"$msgobj_fname_3104" to %String* - store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_3103", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_3105", align 8 - %"$msgobj_td_3106" = getelementptr i8, i8* %"$msgobj_3102", i32 17 - %"$msgobj_td_3107" = bitcast i8* %"$msgobj_td_3106" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_114", %_TyDescrTy_Typ** %"$msgobj_td_3107", align 8 - %"$support_contract_3108" = load [20 x i8], [20 x i8]* @_cparam_support_contract, align 1 - %"$msgobj_v_3109" = getelementptr i8, i8* %"$msgobj_3102", i32 25 - %"$msgobj_v_3110" = bitcast i8* %"$msgobj_v_3109" to [20 x i8]* - store [20 x i8] %"$support_contract_3108", [20 x i8]* %"$msgobj_v_3110", align 1 - %"$msgobj_fname_3112" = getelementptr i8, i8* %"$msgobj_3102", i32 45 - %"$msgobj_fname_3113" = bitcast i8* %"$msgobj_fname_3112" to %String* - store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_3111", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_3113", align 8 - %"$msgobj_td_3114" = getelementptr i8, i8* %"$msgobj_3102", i32 61 - %"$msgobj_td_3115" = bitcast i8* %"$msgobj_td_3114" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_String_100", %_TyDescrTy_Typ** %"$msgobj_td_3115", align 8 - %"$msgobj_v_3117" = getelementptr i8, i8* %"$msgobj_3102", i32 69 - %"$msgobj_v_3118" = bitcast i8* %"$msgobj_v_3117" to %String* - store %String { i8* getelementptr inbounds ([9 x i8], [9 x i8]* @"$stringlit_3116", i32 0, i32 0), i32 9 }, %String* %"$msgobj_v_3118", align 8 - %"$msgobj_fname_3120" = getelementptr i8, i8* %"$msgobj_3102", i32 85 - %"$msgobj_fname_3121" = bitcast i8* %"$msgobj_fname_3120" to %String* - store %String { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$stringlit_3119", i32 0, i32 0), i32 7 }, %String* %"$msgobj_fname_3121", align 8 - %"$msgobj_td_3122" = getelementptr i8, i8* %"$msgobj_3102", i32 101 - %"$msgobj_td_3123" = bitcast i8* %"$msgobj_td_3122" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Uint128_94", %_TyDescrTy_Typ** %"$msgobj_td_3123", align 8 - %"$amount_3124" = load %Uint128, %Uint128* %amount, align 8 - %"$msgobj_v_3125" = getelementptr i8, i8* %"$msgobj_3102", i32 109 - %"$msgobj_v_3126" = bitcast i8* %"$msgobj_v_3125" to %Uint128* - store %Uint128 %"$amount_3124", %Uint128* %"$msgobj_v_3126", align 8 - store i8* %"$msgobj_3102", i8** %msg1, align 8, !dbg !266 - %"$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_3130": ; preds = %"$have_gas_3100" - call void @_out_of_gas() - br label %"$have_gas_3131" - -"$have_gas_3131": ; preds = %"$out_of_gas_3130", %"$have_gas_3100" - %"$consume_3132" = sub i64 %"$gasrem_3128", 1 - store i64 %"$consume_3132", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata i8** %msg1, metadata !577, metadata !DIExpression()), !dbg !578 + %"$gasrem_3167" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3168" = icmp ugt i64 1, %"$gasrem_3167" + br i1 %"$gascmp_3168", label %"$out_of_gas_3169", label %"$have_gas_3170" + +"$out_of_gas_3169": ; preds = %"$have_gas_3165" + call void @_out_of_gas() + br label %"$have_gas_3170" + +"$have_gas_3170": ; preds = %"$out_of_gas_3169", %"$have_gas_3165" + %"$consume_3171" = sub i64 %"$gasrem_3167", 1 + store i64 %"$consume_3171", i64* @_gasrem, align 8 + %"$msgobj_3172_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$msgobj_3172_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_3172_salloc_load", i64 125) + %"$msgobj_3172_salloc" = bitcast i8* %"$msgobj_3172_salloc_salloc" to [125 x i8]* + %"$msgobj_3172" = bitcast [125 x i8]* %"$msgobj_3172_salloc" to i8* + store i8 3, i8* %"$msgobj_3172", align 1 + %"$msgobj_fname_3174" = getelementptr i8, i8* %"$msgobj_3172", i32 1 + %"$msgobj_fname_3175" = bitcast i8* %"$msgobj_fname_3174" to %String* + store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_3173", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_3175", align 8 + %"$msgobj_td_3176" = getelementptr i8, i8* %"$msgobj_3172", i32 17 + %"$msgobj_td_3177" = bitcast i8* %"$msgobj_td_3176" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_114", %_TyDescrTy_Typ** %"$msgobj_td_3177", align 8 + %"$support_contract_3178" = load [20 x i8], [20 x i8]* @_cparam_support_contract, align 1 + %"$msgobj_v_3179" = getelementptr i8, i8* %"$msgobj_3172", i32 25 + %"$msgobj_v_3180" = bitcast i8* %"$msgobj_v_3179" to [20 x i8]* + store [20 x i8] %"$support_contract_3178", [20 x i8]* %"$msgobj_v_3180", align 1 + %"$msgobj_fname_3182" = getelementptr i8, i8* %"$msgobj_3172", i32 45 + %"$msgobj_fname_3183" = bitcast i8* %"$msgobj_fname_3182" to %String* + store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_3181", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_3183", align 8 + %"$msgobj_td_3184" = getelementptr i8, i8* %"$msgobj_3172", i32 61 + %"$msgobj_td_3185" = bitcast i8* %"$msgobj_td_3184" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_String_100", %_TyDescrTy_Typ** %"$msgobj_td_3185", align 8 + %"$msgobj_v_3187" = getelementptr i8, i8* %"$msgobj_3172", i32 69 + %"$msgobj_v_3188" = bitcast i8* %"$msgobj_v_3187" to %String* + store %String { i8* getelementptr inbounds ([9 x i8], [9 x i8]* @"$stringlit_3186", i32 0, i32 0), i32 9 }, %String* %"$msgobj_v_3188", align 8 + %"$msgobj_fname_3190" = getelementptr i8, i8* %"$msgobj_3172", i32 85 + %"$msgobj_fname_3191" = bitcast i8* %"$msgobj_fname_3190" to %String* + store %String { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$stringlit_3189", i32 0, i32 0), i32 7 }, %String* %"$msgobj_fname_3191", align 8 + %"$msgobj_td_3192" = getelementptr i8, i8* %"$msgobj_3172", i32 101 + %"$msgobj_td_3193" = bitcast i8* %"$msgobj_td_3192" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Uint128_94", %_TyDescrTy_Typ** %"$msgobj_td_3193", align 8 + %"$amount_3194" = load %Uint128, %Uint128* %amount, align 8 + %"$msgobj_v_3195" = getelementptr i8, i8* %"$msgobj_3172", i32 109 + %"$msgobj_v_3196" = bitcast i8* %"$msgobj_v_3195" to %Uint128* + store %Uint128 %"$amount_3194", %Uint128* %"$msgobj_v_3196", align 8 + store i8* %"$msgobj_3172", i8** %msg1, align 8, !dbg !579 + %"$gasrem_3198" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3199" = icmp ugt i64 1, %"$gasrem_3198" + br i1 %"$gascmp_3199", label %"$out_of_gas_3200", label %"$have_gas_3201" + +"$out_of_gas_3200": ; preds = %"$have_gas_3170" + call void @_out_of_gas() + br label %"$have_gas_3201" + +"$have_gas_3201": ; preds = %"$out_of_gas_3200", %"$have_gas_3170" + %"$consume_3202" = sub i64 %"$gasrem_3198", 1 + store i64 %"$consume_3202", i64* @_gasrem, align 8 %msgs1 = alloca %TName_List_Message*, 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" + call void @llvm.dbg.declare(metadata %TName_List_Message** %msgs1, metadata !580, metadata !DIExpression()), !dbg !581 + %"$gasrem_3203" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3204" = icmp ugt i64 1, %"$gasrem_3203" + br i1 %"$gascmp_3204", label %"$out_of_gas_3205", label %"$have_gas_3206" -"$out_of_gas_3135": ; preds = %"$have_gas_3131" +"$out_of_gas_3205": ; preds = %"$have_gas_3201" call void @_out_of_gas() - br label %"$have_gas_3136" + br label %"$have_gas_3206" -"$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 +"$have_gas_3206": ; preds = %"$out_of_gas_3205", %"$have_gas_3201" + %"$consume_3207" = sub i64 %"$gasrem_3203", 1 + store i64 %"$consume_3207", i64* @_gasrem, align 8 %"$accounting_tests.one_msg_36" = alloca %TName_List_Message*, align 8 - %"$accounting_tests.one_msg_3138" = load { %TName_List_Message* (i8*, i8*)*, i8* }, { %TName_List_Message* (i8*, i8*)*, i8* }* @accounting_tests.one_msg, align 8 - %"$accounting_tests.one_msg_fptr_3139" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$accounting_tests.one_msg_3138", 0 - %"$accounting_tests.one_msg_envptr_3140" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$accounting_tests.one_msg_3138", 1 - %"$msg1_3141" = load i8*, i8** %msg1, align 8 - %"$accounting_tests.one_msg_call_3142" = call %TName_List_Message* %"$accounting_tests.one_msg_fptr_3139"(i8* %"$accounting_tests.one_msg_envptr_3140", i8* %"$msg1_3141"), !dbg !267 - store %TName_List_Message* %"$accounting_tests.one_msg_call_3142", %TName_List_Message** %"$accounting_tests.one_msg_36", align 8, !dbg !267 - %"$$accounting_tests.one_msg_36_3143" = load %TName_List_Message*, %TName_List_Message** %"$accounting_tests.one_msg_36", align 8 - store %TName_List_Message* %"$$accounting_tests.one_msg_36_3143", %TName_List_Message** %msgs1, align 8, !dbg !267 - %"$msgs1_3144" = load %TName_List_Message*, %TName_List_Message** %msgs1, align 8 - %"$$msgs1_3144_3145" = bitcast %TName_List_Message* %"$msgs1_3144" to i8* - %"$_literal_cost_call_3146" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_120", i8* %"$$msgs1_3144_3145") - %"$gasrem_3147" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3148" = icmp ugt i64 %"$_literal_cost_call_3146", %"$gasrem_3147" - br i1 %"$gascmp_3148", label %"$out_of_gas_3149", label %"$have_gas_3150" - -"$out_of_gas_3149": ; preds = %"$have_gas_3136" - call void @_out_of_gas() - br label %"$have_gas_3150" - -"$have_gas_3150": ; preds = %"$out_of_gas_3149", %"$have_gas_3136" - %"$consume_3151" = sub i64 %"$gasrem_3147", %"$_literal_cost_call_3146" - store i64 %"$consume_3151", i64* @_gasrem, align 8 - %"$execptr_load_3152" = load i8*, i8** @_execptr, align 8 - %"$msgs1_3153" = load %TName_List_Message*, %TName_List_Message** %msgs1, align 8 - call void @_send(i8* %"$execptr_load_3152", %_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_120", %TName_List_Message* %"$msgs1_3153"), !dbg !268 - %"$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_3150" - call void @_out_of_gas() - br label %"$have_gas_3157" - -"$have_gas_3157": ; preds = %"$out_of_gas_3156", %"$have_gas_3150" - %"$consume_3158" = sub i64 %"$gasrem_3154", 1 - store i64 %"$consume_3158", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_List_Message** %"$accounting_tests.one_msg_36", metadata !582, metadata !DIExpression()), !dbg !583 + %"$accounting_tests.one_msg_3208" = load { %TName_List_Message* (i8*, i8*)*, i8* }, { %TName_List_Message* (i8*, i8*)*, i8* }* @accounting_tests.one_msg, align 8 + %"$accounting_tests.one_msg_fptr_3209" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$accounting_tests.one_msg_3208", 0 + %"$accounting_tests.one_msg_envptr_3210" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$accounting_tests.one_msg_3208", 1 + %"$msg1_3211" = load i8*, i8** %msg1, align 8 + %"$accounting_tests.one_msg_call_3212" = call %TName_List_Message* %"$accounting_tests.one_msg_fptr_3209"(i8* %"$accounting_tests.one_msg_envptr_3210", i8* %"$msg1_3211"), !dbg !583 + store %TName_List_Message* %"$accounting_tests.one_msg_call_3212", %TName_List_Message** %"$accounting_tests.one_msg_36", align 8, !dbg !583 + %"$$accounting_tests.one_msg_36_3213" = load %TName_List_Message*, %TName_List_Message** %"$accounting_tests.one_msg_36", align 8 + store %TName_List_Message* %"$$accounting_tests.one_msg_36_3213", %TName_List_Message** %msgs1, align 8, !dbg !583 + %"$msgs1_3214" = load %TName_List_Message*, %TName_List_Message** %msgs1, align 8 + %"$$msgs1_3214_3215" = bitcast %TName_List_Message* %"$msgs1_3214" to i8* + %"$_literal_cost_call_3216" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_120", i8* %"$$msgs1_3214_3215") + %"$gasrem_3217" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3218" = icmp ugt i64 %"$_literal_cost_call_3216", %"$gasrem_3217" + br i1 %"$gascmp_3218", label %"$out_of_gas_3219", label %"$have_gas_3220" + +"$out_of_gas_3219": ; preds = %"$have_gas_3206" + call void @_out_of_gas() + br label %"$have_gas_3220" + +"$have_gas_3220": ; preds = %"$out_of_gas_3219", %"$have_gas_3206" + %"$consume_3221" = sub i64 %"$gasrem_3217", %"$_literal_cost_call_3216" + store i64 %"$consume_3221", i64* @_gasrem, align 8 + %"$execptr_load_3222" = load i8*, i8** @_execptr, align 8 + %"$msgs1_3223" = load %TName_List_Message*, %TName_List_Message** %msgs1, align 8 + call void @_send(i8* %"$execptr_load_3222", %_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_120", %TName_List_Message* %"$msgs1_3223"), !dbg !584 + %"$gasrem_3224" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3225" = icmp ugt i64 1, %"$gasrem_3224" + br i1 %"$gascmp_3225", label %"$out_of_gas_3226", label %"$have_gas_3227" + +"$out_of_gas_3226": ; preds = %"$have_gas_3220" + call void @_out_of_gas() + br label %"$have_gas_3227" + +"$have_gas_3227": ; preds = %"$out_of_gas_3226", %"$have_gas_3220" + %"$consume_3228" = sub i64 %"$gasrem_3224", 1 + store i64 %"$consume_3228", i64* @_gasrem, align 8 %msg2 = alloca i8*, align 8 - %"$gasrem_3159" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3160" = icmp ugt i64 1, %"$gasrem_3159" - br i1 %"$gascmp_3160", label %"$out_of_gas_3161", label %"$have_gas_3162" - -"$out_of_gas_3161": ; preds = %"$have_gas_3157" - call void @_out_of_gas() - br label %"$have_gas_3162" - -"$have_gas_3162": ; preds = %"$out_of_gas_3161", %"$have_gas_3157" - %"$consume_3163" = sub i64 %"$gasrem_3159", 1 - store i64 %"$consume_3163", i64* @_gasrem, align 8 - %"$msgobj_3164_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$msgobj_3164_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_3164_salloc_load", i64 165) - %"$msgobj_3164_salloc" = bitcast i8* %"$msgobj_3164_salloc_salloc" to [165 x i8]* - %"$msgobj_3164" = bitcast [165 x i8]* %"$msgobj_3164_salloc" to i8* - store i8 4, i8* %"$msgobj_3164", align 1 - %"$msgobj_fname_3166" = getelementptr i8, i8* %"$msgobj_3164", i32 1 - %"$msgobj_fname_3167" = bitcast i8* %"$msgobj_fname_3166" to %String* - store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_3165", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_3167", align 8 - %"$msgobj_td_3168" = getelementptr i8, i8* %"$msgobj_3164", i32 17 - %"$msgobj_td_3169" = bitcast i8* %"$msgobj_td_3168" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_114", %_TyDescrTy_Typ** %"$msgobj_td_3169", align 8 - %"$_this_address_3170" = load [20 x i8], [20 x i8]* @_cparam__this_address, align 1 - %"$msgobj_v_3171" = getelementptr i8, i8* %"$msgobj_3164", i32 25 - %"$msgobj_v_3172" = bitcast i8* %"$msgobj_v_3171" to [20 x i8]* - store [20 x i8] %"$_this_address_3170", [20 x i8]* %"$msgobj_v_3172", align 1 - %"$msgobj_fname_3174" = getelementptr i8, i8* %"$msgobj_3164", i32 45 - %"$msgobj_fname_3175" = bitcast i8* %"$msgobj_fname_3174" to %String* - store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_3173", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_3175", align 8 - %"$msgobj_td_3176" = getelementptr i8, i8* %"$msgobj_3164", i32 61 - %"$msgobj_td_3177" = bitcast i8* %"$msgobj_td_3176" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_String_100", %_TyDescrTy_Typ** %"$msgobj_td_3177", align 8 - %"$msgobj_v_3179" = getelementptr i8, i8* %"$msgobj_3164", i32 69 - %"$msgobj_v_3180" = bitcast i8* %"$msgobj_v_3179" to %String* - store %String { i8* getelementptr inbounds ([18 x i8], [18 x i8]* @"$stringlit_3178", i32 0, i32 0), i32 18 }, %String* %"$msgobj_v_3180", align 8 - %"$msgobj_fname_3182" = getelementptr i8, i8* %"$msgobj_3164", i32 85 - %"$msgobj_fname_3183" = bitcast i8* %"$msgobj_fname_3182" to %String* - store %String { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$stringlit_3181", i32 0, i32 0), i32 7 }, %String* %"$msgobj_fname_3183", align 8 - %"$msgobj_td_3184" = getelementptr i8, i8* %"$msgobj_3164", i32 101 - %"$msgobj_td_3185" = bitcast i8* %"$msgobj_td_3184" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Uint128_94", %_TyDescrTy_Typ** %"$msgobj_td_3185", align 8 - %"$msgobj_v_3186" = getelementptr i8, i8* %"$msgobj_3164", i32 109 - %"$msgobj_v_3187" = bitcast i8* %"$msgobj_v_3186" to %Uint128* - store %Uint128 zeroinitializer, %Uint128* %"$msgobj_v_3187", align 8 - %"$msgobj_fname_3189" = getelementptr i8, i8* %"$msgobj_3164", i32 125 - %"$msgobj_fname_3190" = bitcast i8* %"$msgobj_fname_3189" to %String* - store %String { i8* getelementptr inbounds ([16 x i8], [16 x i8]* @"$stringlit_3188", i32 0, i32 0), i32 16 }, %String* %"$msgobj_fname_3190", align 8 - %"$msgobj_td_3191" = getelementptr i8, i8* %"$msgobj_3164", i32 141 - %"$msgobj_td_3192" = bitcast i8* %"$msgobj_td_3191" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Uint128_94", %_TyDescrTy_Typ** %"$msgobj_td_3192", align 8 - %"$bal_3193" = load %Uint128, %Uint128* %bal, align 8 - %"$msgobj_v_3194" = getelementptr i8, i8* %"$msgobj_3164", i32 149 - %"$msgobj_v_3195" = bitcast i8* %"$msgobj_v_3194" to %Uint128* - store %Uint128 %"$bal_3193", %Uint128* %"$msgobj_v_3195", align 8 - store i8* %"$msgobj_3164", i8** %msg2, align 8, !dbg !269 - %"$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_3162" - call void @_out_of_gas() - br label %"$have_gas_3200" - -"$have_gas_3200": ; preds = %"$out_of_gas_3199", %"$have_gas_3162" - %"$consume_3201" = sub i64 %"$gasrem_3197", 1 - store i64 %"$consume_3201", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata i8** %msg2, metadata !585, metadata !DIExpression()), !dbg !586 + %"$gasrem_3229" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3230" = icmp ugt i64 1, %"$gasrem_3229" + br i1 %"$gascmp_3230", label %"$out_of_gas_3231", label %"$have_gas_3232" + +"$out_of_gas_3231": ; preds = %"$have_gas_3227" + call void @_out_of_gas() + br label %"$have_gas_3232" + +"$have_gas_3232": ; preds = %"$out_of_gas_3231", %"$have_gas_3227" + %"$consume_3233" = sub i64 %"$gasrem_3229", 1 + store i64 %"$consume_3233", i64* @_gasrem, align 8 + %"$msgobj_3234_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$msgobj_3234_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_3234_salloc_load", i64 165) + %"$msgobj_3234_salloc" = bitcast i8* %"$msgobj_3234_salloc_salloc" to [165 x i8]* + %"$msgobj_3234" = bitcast [165 x i8]* %"$msgobj_3234_salloc" to i8* + store i8 4, i8* %"$msgobj_3234", align 1 + %"$msgobj_fname_3236" = getelementptr i8, i8* %"$msgobj_3234", i32 1 + %"$msgobj_fname_3237" = bitcast i8* %"$msgobj_fname_3236" to %String* + store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_3235", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_3237", align 8 + %"$msgobj_td_3238" = getelementptr i8, i8* %"$msgobj_3234", i32 17 + %"$msgobj_td_3239" = bitcast i8* %"$msgobj_td_3238" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_114", %_TyDescrTy_Typ** %"$msgobj_td_3239", align 8 + %"$_this_address_3240" = load [20 x i8], [20 x i8]* @_cparam__this_address, align 1 + %"$msgobj_v_3241" = getelementptr i8, i8* %"$msgobj_3234", i32 25 + %"$msgobj_v_3242" = bitcast i8* %"$msgobj_v_3241" to [20 x i8]* + store [20 x i8] %"$_this_address_3240", [20 x i8]* %"$msgobj_v_3242", align 1 + %"$msgobj_fname_3244" = getelementptr i8, i8* %"$msgobj_3234", i32 45 + %"$msgobj_fname_3245" = bitcast i8* %"$msgobj_fname_3244" to %String* + store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_3243", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_3245", align 8 + %"$msgobj_td_3246" = getelementptr i8, i8* %"$msgobj_3234", i32 61 + %"$msgobj_td_3247" = bitcast i8* %"$msgobj_td_3246" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_String_100", %_TyDescrTy_Typ** %"$msgobj_td_3247", align 8 + %"$msgobj_v_3249" = getelementptr i8, i8* %"$msgobj_3234", i32 69 + %"$msgobj_v_3250" = bitcast i8* %"$msgobj_v_3249" to %String* + store %String { i8* getelementptr inbounds ([18 x i8], [18 x i8]* @"$stringlit_3248", i32 0, i32 0), i32 18 }, %String* %"$msgobj_v_3250", align 8 + %"$msgobj_fname_3252" = getelementptr i8, i8* %"$msgobj_3234", i32 85 + %"$msgobj_fname_3253" = bitcast i8* %"$msgobj_fname_3252" to %String* + store %String { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$stringlit_3251", i32 0, i32 0), i32 7 }, %String* %"$msgobj_fname_3253", align 8 + %"$msgobj_td_3254" = getelementptr i8, i8* %"$msgobj_3234", i32 101 + %"$msgobj_td_3255" = bitcast i8* %"$msgobj_td_3254" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Uint128_94", %_TyDescrTy_Typ** %"$msgobj_td_3255", align 8 + %"$msgobj_v_3256" = getelementptr i8, i8* %"$msgobj_3234", i32 109 + %"$msgobj_v_3257" = bitcast i8* %"$msgobj_v_3256" to %Uint128* + store %Uint128 zeroinitializer, %Uint128* %"$msgobj_v_3257", align 8 + %"$msgobj_fname_3259" = getelementptr i8, i8* %"$msgobj_3234", i32 125 + %"$msgobj_fname_3260" = bitcast i8* %"$msgobj_fname_3259" to %String* + store %String { i8* getelementptr inbounds ([16 x i8], [16 x i8]* @"$stringlit_3258", i32 0, i32 0), i32 16 }, %String* %"$msgobj_fname_3260", align 8 + %"$msgobj_td_3261" = getelementptr i8, i8* %"$msgobj_3234", i32 141 + %"$msgobj_td_3262" = bitcast i8* %"$msgobj_td_3261" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Uint128_94", %_TyDescrTy_Typ** %"$msgobj_td_3262", align 8 + %"$bal_3263" = load %Uint128, %Uint128* %bal, align 8 + %"$msgobj_v_3264" = getelementptr i8, i8* %"$msgobj_3234", i32 149 + %"$msgobj_v_3265" = bitcast i8* %"$msgobj_v_3264" to %Uint128* + store %Uint128 %"$bal_3263", %Uint128* %"$msgobj_v_3265", align 8 + store i8* %"$msgobj_3234", i8** %msg2, align 8, !dbg !587 + %"$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_3232" + call void @_out_of_gas() + br label %"$have_gas_3270" + +"$have_gas_3270": ; preds = %"$out_of_gas_3269", %"$have_gas_3232" + %"$consume_3271" = sub i64 %"$gasrem_3267", 1 + store i64 %"$consume_3271", i64* @_gasrem, align 8 %msgs2 = alloca %TName_List_Message*, align 8 - %"$gasrem_3202" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3203" = icmp ugt i64 1, %"$gasrem_3202" - br i1 %"$gascmp_3203", label %"$out_of_gas_3204", label %"$have_gas_3205" + call void @llvm.dbg.declare(metadata %TName_List_Message** %msgs2, metadata !588, metadata !DIExpression()), !dbg !589 + %"$gasrem_3272" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3273" = icmp ugt i64 1, %"$gasrem_3272" + br i1 %"$gascmp_3273", label %"$out_of_gas_3274", label %"$have_gas_3275" -"$out_of_gas_3204": ; preds = %"$have_gas_3200" +"$out_of_gas_3274": ; preds = %"$have_gas_3270" call void @_out_of_gas() - br label %"$have_gas_3205" + br label %"$have_gas_3275" -"$have_gas_3205": ; preds = %"$out_of_gas_3204", %"$have_gas_3200" - %"$consume_3206" = sub i64 %"$gasrem_3202", 1 - store i64 %"$consume_3206", i64* @_gasrem, align 8 +"$have_gas_3275": ; preds = %"$out_of_gas_3274", %"$have_gas_3270" + %"$consume_3276" = sub i64 %"$gasrem_3272", 1 + store i64 %"$consume_3276", i64* @_gasrem, align 8 %"$accounting_tests.one_msg_35" = alloca %TName_List_Message*, align 8 - %"$accounting_tests.one_msg_3207" = load { %TName_List_Message* (i8*, i8*)*, i8* }, { %TName_List_Message* (i8*, i8*)*, i8* }* @accounting_tests.one_msg, align 8 - %"$accounting_tests.one_msg_fptr_3208" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$accounting_tests.one_msg_3207", 0 - %"$accounting_tests.one_msg_envptr_3209" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$accounting_tests.one_msg_3207", 1 - %"$msg2_3210" = load i8*, i8** %msg2, align 8 - %"$accounting_tests.one_msg_call_3211" = call %TName_List_Message* %"$accounting_tests.one_msg_fptr_3208"(i8* %"$accounting_tests.one_msg_envptr_3209", i8* %"$msg2_3210"), !dbg !270 - store %TName_List_Message* %"$accounting_tests.one_msg_call_3211", %TName_List_Message** %"$accounting_tests.one_msg_35", align 8, !dbg !270 - %"$$accounting_tests.one_msg_35_3212" = load %TName_List_Message*, %TName_List_Message** %"$accounting_tests.one_msg_35", align 8 - store %TName_List_Message* %"$$accounting_tests.one_msg_35_3212", %TName_List_Message** %msgs2, align 8, !dbg !270 - %"$msgs2_3213" = load %TName_List_Message*, %TName_List_Message** %msgs2, align 8 - %"$$msgs2_3213_3214" = bitcast %TName_List_Message* %"$msgs2_3213" to i8* - %"$_literal_cost_call_3215" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_120", i8* %"$$msgs2_3213_3214") - %"$gasrem_3216" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3217" = icmp ugt i64 %"$_literal_cost_call_3215", %"$gasrem_3216" - br i1 %"$gascmp_3217", label %"$out_of_gas_3218", label %"$have_gas_3219" - -"$out_of_gas_3218": ; preds = %"$have_gas_3205" - call void @_out_of_gas() - br label %"$have_gas_3219" - -"$have_gas_3219": ; preds = %"$out_of_gas_3218", %"$have_gas_3205" - %"$consume_3220" = sub i64 %"$gasrem_3216", %"$_literal_cost_call_3215" - store i64 %"$consume_3220", i64* @_gasrem, align 8 - %"$execptr_load_3221" = load i8*, i8** @_execptr, align 8 - %"$msgs2_3222" = load %TName_List_Message*, %TName_List_Message** %msgs2, align 8 - call void @_send(i8* %"$execptr_load_3221", %_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_120", %TName_List_Message* %"$msgs2_3222"), !dbg !271 + call void @llvm.dbg.declare(metadata %TName_List_Message** %"$accounting_tests.one_msg_35", metadata !590, metadata !DIExpression()), !dbg !591 + %"$accounting_tests.one_msg_3277" = load { %TName_List_Message* (i8*, i8*)*, i8* }, { %TName_List_Message* (i8*, i8*)*, i8* }* @accounting_tests.one_msg, align 8 + %"$accounting_tests.one_msg_fptr_3278" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$accounting_tests.one_msg_3277", 0 + %"$accounting_tests.one_msg_envptr_3279" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$accounting_tests.one_msg_3277", 1 + %"$msg2_3280" = load i8*, i8** %msg2, align 8 + %"$accounting_tests.one_msg_call_3281" = call %TName_List_Message* %"$accounting_tests.one_msg_fptr_3278"(i8* %"$accounting_tests.one_msg_envptr_3279", i8* %"$msg2_3280"), !dbg !591 + store %TName_List_Message* %"$accounting_tests.one_msg_call_3281", %TName_List_Message** %"$accounting_tests.one_msg_35", align 8, !dbg !591 + %"$$accounting_tests.one_msg_35_3282" = load %TName_List_Message*, %TName_List_Message** %"$accounting_tests.one_msg_35", align 8 + store %TName_List_Message* %"$$accounting_tests.one_msg_35_3282", %TName_List_Message** %msgs2, align 8, !dbg !591 + %"$msgs2_3283" = load %TName_List_Message*, %TName_List_Message** %msgs2, align 8 + %"$$msgs2_3283_3284" = bitcast %TName_List_Message* %"$msgs2_3283" to i8* + %"$_literal_cost_call_3285" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_120", i8* %"$$msgs2_3283_3284") + %"$gasrem_3286" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3287" = icmp ugt i64 %"$_literal_cost_call_3285", %"$gasrem_3286" + br i1 %"$gascmp_3287", label %"$out_of_gas_3288", label %"$have_gas_3289" + +"$out_of_gas_3288": ; preds = %"$have_gas_3275" + call void @_out_of_gas() + br label %"$have_gas_3289" + +"$have_gas_3289": ; preds = %"$out_of_gas_3288", %"$have_gas_3275" + %"$consume_3290" = sub i64 %"$gasrem_3286", %"$_literal_cost_call_3285" + store i64 %"$consume_3290", i64* @_gasrem, align 8 + %"$execptr_load_3291" = load i8*, i8** @_execptr, align 8 + %"$msgs2_3292" = load %TName_List_Message*, %TName_List_Message** %msgs2, align 8 + call void @_send(i8* %"$execptr_load_3291", %_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_120", %TName_List_Message* %"$msgs2_3292"), !dbg !592 ret void } -define void @Test_Send_7(i8* %0) !dbg !272 { +define void @Test_Send_7(i8* %0) !dbg !593 { entry: - %"$_amount_3224" = getelementptr i8, i8* %0, i32 0 - %"$_amount_3225" = bitcast i8* %"$_amount_3224" to %Uint128* - %_amount = load %Uint128, %Uint128* %"$_amount_3225", align 8 - %"$_origin_3226" = getelementptr i8, i8* %0, i32 16 - %"$_origin_3227" = bitcast i8* %"$_origin_3226" to [20 x i8]* - %"$_sender_3228" = getelementptr i8, i8* %0, i32 36 - %"$_sender_3229" = bitcast i8* %"$_sender_3228" to [20 x i8]* - call void @"$Test_Send_7_3052"(%Uint128 %_amount, [20 x i8]* %"$_origin_3227", [20 x i8]* %"$_sender_3229"), !dbg !273 + %"$_amount_3297" = getelementptr i8, i8* %0, i32 0 + %"$_amount_3298" = bitcast i8* %"$_amount_3297" to %Uint128* + %_amount = load %Uint128, %Uint128* %"$_amount_3298", align 8 + %"$_origin_3299" = getelementptr i8, i8* %0, i32 16 + %"$_origin_3300" = bitcast i8* %"$_origin_3299" to [20 x i8]* + %"$_sender_3301" = getelementptr i8, i8* %0, i32 36 + %"$_sender_3302" = bitcast i8* %"$_sender_3301" to [20 x i8]* + call void @"$Test_Send_7_3122"(%Uint128 %_amount, [20 x i8]* %"$_origin_3300", [20 x i8]* %"$_sender_3302"), !dbg !594 ret void } -define internal void @"$Test_Send_8_3230"(%Uint128 %_amount, [20 x i8]* %"$_origin_3231", [20 x i8]* %"$_sender_3232") !dbg !274 { +define internal void @"$Test_Send_8_3303"(%Uint128 %_amount, [20 x i8]* %"$_origin_3304", [20 x i8]* %"$_sender_3305") !dbg !595 { entry: - %_origin = load [20 x i8], [20 x i8]* %"$_origin_3231", align 1 - %_sender = load [20 x i8], [20 x i8]* %"$_sender_3232", align 1 - %"$gasrem_3233" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3234" = icmp ugt i64 1, %"$gasrem_3233" - br i1 %"$gascmp_3234", label %"$out_of_gas_3235", label %"$have_gas_3236" - -"$out_of_gas_3235": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_3236" - -"$have_gas_3236": ; preds = %"$out_of_gas_3235", %entry - %"$consume_3237" = sub i64 %"$gasrem_3233", 1 - store i64 %"$consume_3237", i64* @_gasrem, align 8 - %"$AssertReset__origin_3238" = alloca [20 x i8], align 1 - store [20 x i8] %_origin, [20 x i8]* %"$AssertReset__origin_3238", align 1 - %"$AssertReset__sender_3239" = alloca [20 x i8], align 1 - store [20 x i8] %_sender, [20 x i8]* %"$AssertReset__sender_3239", align 1 - call void @"$AssertReset_855"(%Uint128 %_amount, [20 x i8]* %"$AssertReset__origin_3238", [20 x i8]* %"$AssertReset__sender_3239"), !dbg !275 + %"$_sender_3492" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_sender_3305", [20 x i8]** %"$_sender_3492", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_sender_3492", metadata !596, metadata !DIExpression()), !dbg !597 + %"$_origin_3491" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_origin_3304", [20 x i8]** %"$_origin_3491", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_origin_3491", metadata !598, metadata !DIExpression()), !dbg !597 + %"$_amount_3490" = alloca %Uint128, align 8 + store %Uint128 %_amount, %Uint128* %"$_amount_3490", align 8 + call void @llvm.dbg.declare(metadata %Uint128* %"$_amount_3490", metadata !599, metadata !DIExpression()), !dbg !597 + %_origin = load [20 x i8], [20 x i8]* %"$_origin_3304", align 1 + %_sender = load [20 x i8], [20 x i8]* %"$_sender_3305", align 1 + %"$gasrem_3306" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3307" = icmp ugt i64 1, %"$gasrem_3306" + br i1 %"$gascmp_3307", label %"$out_of_gas_3308", label %"$have_gas_3309" + +"$out_of_gas_3308": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_3309" + +"$have_gas_3309": ; preds = %"$out_of_gas_3308", %entry + %"$consume_3310" = sub i64 %"$gasrem_3306", 1 + store i64 %"$consume_3310", i64* @_gasrem, align 8 + %"$AssertReset__origin_3311" = alloca [20 x i8], align 1 + store [20 x i8] %_origin, [20 x i8]* %"$AssertReset__origin_3311", align 1 + %"$AssertReset__sender_3312" = alloca [20 x i8], align 1 + store [20 x i8] %_sender, [20 x i8]* %"$AssertReset__sender_3312", align 1 + call void @"$AssertReset_869"(%Uint128 %_amount, [20 x i8]* %"$AssertReset__origin_3311", [20 x i8]* %"$AssertReset__sender_3312"), !dbg !600 %amount = alloca %Uint128, align 8 - %"$execptr_load_3241" = load i8*, i8** @_execptr, align 8 - %"$amount_call_3242" = call i8* @_fetch_field(i8* %"$execptr_load_3241", i8* getelementptr inbounds ([16 x i8], [16 x i8]* @"$outgoing_amount_3240", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Uint128_94", i32 0, i8* null, i32 1), !dbg !276 - %"$amount_3243" = bitcast i8* %"$amount_call_3242" to %Uint128* - %"$amount_3244" = load %Uint128, %Uint128* %"$amount_3243", align 8 - store %Uint128 %"$amount_3244", %Uint128* %amount, align 8 - %"$_literal_cost_amount_3245" = alloca %Uint128, align 8 - %"$amount_3246" = load %Uint128, %Uint128* %amount, align 8 - store %Uint128 %"$amount_3246", %Uint128* %"$_literal_cost_amount_3245", align 8 - %"$$_literal_cost_amount_3245_3247" = bitcast %Uint128* %"$_literal_cost_amount_3245" to i8* - %"$_literal_cost_call_3248" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Uint128_94", i8* %"$$_literal_cost_amount_3245_3247") - %"$gasadd_3249" = add i64 %"$_literal_cost_call_3248", 0 - %"$gasrem_3250" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3251" = icmp ugt i64 %"$gasadd_3249", %"$gasrem_3250" - br i1 %"$gascmp_3251", label %"$out_of_gas_3252", label %"$have_gas_3253" - -"$out_of_gas_3252": ; preds = %"$have_gas_3236" - call void @_out_of_gas() - br label %"$have_gas_3253" - -"$have_gas_3253": ; preds = %"$out_of_gas_3252", %"$have_gas_3236" - %"$consume_3254" = sub i64 %"$gasrem_3250", %"$gasadd_3249" - store i64 %"$consume_3254", i64* @_gasrem, align 8 - %"$gasrem_3255" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3256" = icmp ugt i64 1, %"$gasrem_3255" - br i1 %"$gascmp_3256", label %"$out_of_gas_3257", label %"$have_gas_3258" - -"$out_of_gas_3257": ; preds = %"$have_gas_3253" - call void @_out_of_gas() - br label %"$have_gas_3258" - -"$have_gas_3258": ; preds = %"$out_of_gas_3257", %"$have_gas_3253" - %"$consume_3259" = sub i64 %"$gasrem_3255", 1 - store i64 %"$consume_3259", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %Uint128* %amount, metadata !601, metadata !DIExpression()), !dbg !602 + %"$execptr_load_3314" = load i8*, i8** @_execptr, align 8 + %"$amount_call_3315" = call i8* @_fetch_field(i8* %"$execptr_load_3314", i8* getelementptr inbounds ([16 x i8], [16 x i8]* @"$outgoing_amount_3313", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Uint128_94", i32 0, i8* null, i32 1), !dbg !602 + %"$amount_3316" = bitcast i8* %"$amount_call_3315" to %Uint128* + %"$amount_3317" = load %Uint128, %Uint128* %"$amount_3316", align 8 + store %Uint128 %"$amount_3317", %Uint128* %amount, align 8 + %"$_literal_cost_amount_3318" = alloca %Uint128, align 8 + %"$amount_3319" = load %Uint128, %Uint128* %amount, align 8 + store %Uint128 %"$amount_3319", %Uint128* %"$_literal_cost_amount_3318", align 8 + %"$$_literal_cost_amount_3318_3320" = bitcast %Uint128* %"$_literal_cost_amount_3318" to i8* + %"$_literal_cost_call_3321" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Uint128_94", i8* %"$$_literal_cost_amount_3318_3320") + %"$gasadd_3322" = add i64 %"$_literal_cost_call_3321", 0 + %"$gasrem_3323" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3324" = icmp ugt i64 %"$gasadd_3322", %"$gasrem_3323" + br i1 %"$gascmp_3324", label %"$out_of_gas_3325", label %"$have_gas_3326" + +"$out_of_gas_3325": ; preds = %"$have_gas_3309" + call void @_out_of_gas() + br label %"$have_gas_3326" + +"$have_gas_3326": ; preds = %"$out_of_gas_3325", %"$have_gas_3309" + %"$consume_3327" = sub i64 %"$gasrem_3323", %"$gasadd_3322" + store i64 %"$consume_3327", i64* @_gasrem, align 8 + %"$gasrem_3328" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3329" = icmp ugt i64 1, %"$gasrem_3328" + br i1 %"$gascmp_3329", label %"$out_of_gas_3330", label %"$have_gas_3331" + +"$out_of_gas_3330": ; preds = %"$have_gas_3326" + call void @_out_of_gas() + br label %"$have_gas_3331" + +"$have_gas_3331": ; preds = %"$out_of_gas_3330", %"$have_gas_3326" + %"$consume_3332" = sub i64 %"$gasrem_3328", 1 + store i64 %"$consume_3332", i64* @_gasrem, align 8 %msg1 = alloca i8*, align 8 - %"$gasrem_3260" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3261" = icmp ugt i64 1, %"$gasrem_3260" - br i1 %"$gascmp_3261", label %"$out_of_gas_3262", label %"$have_gas_3263" - -"$out_of_gas_3262": ; preds = %"$have_gas_3258" - call void @_out_of_gas() - br label %"$have_gas_3263" - -"$have_gas_3263": ; preds = %"$out_of_gas_3262", %"$have_gas_3258" - %"$consume_3264" = sub i64 %"$gasrem_3260", 1 - store i64 %"$consume_3264", i64* @_gasrem, align 8 - %"$msgobj_3265_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$msgobj_3265_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_3265_salloc_load", i64 125) - %"$msgobj_3265_salloc" = bitcast i8* %"$msgobj_3265_salloc_salloc" to [125 x i8]* - %"$msgobj_3265" = bitcast [125 x i8]* %"$msgobj_3265_salloc" to i8* - store i8 3, i8* %"$msgobj_3265", align 1 - %"$msgobj_fname_3267" = getelementptr i8, i8* %"$msgobj_3265", i32 1 - %"$msgobj_fname_3268" = bitcast i8* %"$msgobj_fname_3267" to %String* - store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_3266", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_3268", align 8 - %"$msgobj_td_3269" = getelementptr i8, i8* %"$msgobj_3265", i32 17 - %"$msgobj_td_3270" = bitcast i8* %"$msgobj_td_3269" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_114", %_TyDescrTy_Typ** %"$msgobj_td_3270", align 8 - %"$support_contract_3271" = load [20 x i8], [20 x i8]* @_cparam_support_contract, align 1 - %"$msgobj_v_3272" = getelementptr i8, i8* %"$msgobj_3265", i32 25 - %"$msgobj_v_3273" = bitcast i8* %"$msgobj_v_3272" to [20 x i8]* - store [20 x i8] %"$support_contract_3271", [20 x i8]* %"$msgobj_v_3273", align 1 - %"$msgobj_fname_3275" = getelementptr i8, i8* %"$msgobj_3265", i32 45 - %"$msgobj_fname_3276" = bitcast i8* %"$msgobj_fname_3275" to %String* - store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_3274", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_3276", align 8 - %"$msgobj_td_3277" = getelementptr i8, i8* %"$msgobj_3265", i32 61 - %"$msgobj_td_3278" = bitcast i8* %"$msgobj_td_3277" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_String_100", %_TyDescrTy_Typ** %"$msgobj_td_3278", align 8 - %"$msgobj_v_3280" = getelementptr i8, i8* %"$msgobj_3265", i32 69 - %"$msgobj_v_3281" = bitcast i8* %"$msgobj_v_3280" to %String* - store %String { i8* getelementptr inbounds ([21 x i8], [21 x i8]* @"$stringlit_3279", i32 0, i32 0), i32 21 }, %String* %"$msgobj_v_3281", align 8 - %"$msgobj_fname_3283" = getelementptr i8, i8* %"$msgobj_3265", i32 85 - %"$msgobj_fname_3284" = bitcast i8* %"$msgobj_fname_3283" to %String* - store %String { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$stringlit_3282", i32 0, i32 0), i32 7 }, %String* %"$msgobj_fname_3284", align 8 - %"$msgobj_td_3285" = getelementptr i8, i8* %"$msgobj_3265", i32 101 - %"$msgobj_td_3286" = bitcast i8* %"$msgobj_td_3285" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Uint128_94", %_TyDescrTy_Typ** %"$msgobj_td_3286", align 8 - %"$amount_3287" = load %Uint128, %Uint128* %amount, align 8 - %"$msgobj_v_3288" = getelementptr i8, i8* %"$msgobj_3265", i32 109 - %"$msgobj_v_3289" = bitcast i8* %"$msgobj_v_3288" to %Uint128* - store %Uint128 %"$amount_3287", %Uint128* %"$msgobj_v_3289", align 8 - store i8* %"$msgobj_3265", i8** %msg1, align 8, !dbg !277 - %"$gasrem_3291" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3292" = icmp ugt i64 1, %"$gasrem_3291" - br i1 %"$gascmp_3292", label %"$out_of_gas_3293", label %"$have_gas_3294" - -"$out_of_gas_3293": ; preds = %"$have_gas_3263" - call void @_out_of_gas() - br label %"$have_gas_3294" - -"$have_gas_3294": ; preds = %"$out_of_gas_3293", %"$have_gas_3263" - %"$consume_3295" = sub i64 %"$gasrem_3291", 1 - store i64 %"$consume_3295", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata i8** %msg1, metadata !603, metadata !DIExpression()), !dbg !604 + %"$gasrem_3333" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3334" = icmp ugt i64 1, %"$gasrem_3333" + br i1 %"$gascmp_3334", label %"$out_of_gas_3335", label %"$have_gas_3336" + +"$out_of_gas_3335": ; preds = %"$have_gas_3331" + call void @_out_of_gas() + br label %"$have_gas_3336" + +"$have_gas_3336": ; preds = %"$out_of_gas_3335", %"$have_gas_3331" + %"$consume_3337" = sub i64 %"$gasrem_3333", 1 + store i64 %"$consume_3337", i64* @_gasrem, align 8 + %"$msgobj_3338_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$msgobj_3338_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_3338_salloc_load", i64 125) + %"$msgobj_3338_salloc" = bitcast i8* %"$msgobj_3338_salloc_salloc" to [125 x i8]* + %"$msgobj_3338" = bitcast [125 x i8]* %"$msgobj_3338_salloc" to i8* + store i8 3, i8* %"$msgobj_3338", align 1 + %"$msgobj_fname_3340" = getelementptr i8, i8* %"$msgobj_3338", i32 1 + %"$msgobj_fname_3341" = bitcast i8* %"$msgobj_fname_3340" to %String* + store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_3339", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_3341", align 8 + %"$msgobj_td_3342" = getelementptr i8, i8* %"$msgobj_3338", i32 17 + %"$msgobj_td_3343" = bitcast i8* %"$msgobj_td_3342" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_114", %_TyDescrTy_Typ** %"$msgobj_td_3343", align 8 + %"$support_contract_3344" = load [20 x i8], [20 x i8]* @_cparam_support_contract, align 1 + %"$msgobj_v_3345" = getelementptr i8, i8* %"$msgobj_3338", i32 25 + %"$msgobj_v_3346" = bitcast i8* %"$msgobj_v_3345" to [20 x i8]* + store [20 x i8] %"$support_contract_3344", [20 x i8]* %"$msgobj_v_3346", align 1 + %"$msgobj_fname_3348" = getelementptr i8, i8* %"$msgobj_3338", i32 45 + %"$msgobj_fname_3349" = bitcast i8* %"$msgobj_fname_3348" to %String* + store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_3347", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_3349", align 8 + %"$msgobj_td_3350" = getelementptr i8, i8* %"$msgobj_3338", i32 61 + %"$msgobj_td_3351" = bitcast i8* %"$msgobj_td_3350" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_String_100", %_TyDescrTy_Typ** %"$msgobj_td_3351", align 8 + %"$msgobj_v_3353" = getelementptr i8, i8* %"$msgobj_3338", i32 69 + %"$msgobj_v_3354" = bitcast i8* %"$msgobj_v_3353" to %String* + store %String { i8* getelementptr inbounds ([21 x i8], [21 x i8]* @"$stringlit_3352", i32 0, i32 0), i32 21 }, %String* %"$msgobj_v_3354", align 8 + %"$msgobj_fname_3356" = getelementptr i8, i8* %"$msgobj_3338", i32 85 + %"$msgobj_fname_3357" = bitcast i8* %"$msgobj_fname_3356" to %String* + store %String { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$stringlit_3355", i32 0, i32 0), i32 7 }, %String* %"$msgobj_fname_3357", align 8 + %"$msgobj_td_3358" = getelementptr i8, i8* %"$msgobj_3338", i32 101 + %"$msgobj_td_3359" = bitcast i8* %"$msgobj_td_3358" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Uint128_94", %_TyDescrTy_Typ** %"$msgobj_td_3359", align 8 + %"$amount_3360" = load %Uint128, %Uint128* %amount, align 8 + %"$msgobj_v_3361" = getelementptr i8, i8* %"$msgobj_3338", i32 109 + %"$msgobj_v_3362" = bitcast i8* %"$msgobj_v_3361" to %Uint128* + store %Uint128 %"$amount_3360", %Uint128* %"$msgobj_v_3362", align 8 + store i8* %"$msgobj_3338", i8** %msg1, align 8, !dbg !605 + %"$gasrem_3364" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3365" = icmp ugt i64 1, %"$gasrem_3364" + br i1 %"$gascmp_3365", label %"$out_of_gas_3366", label %"$have_gas_3367" + +"$out_of_gas_3366": ; preds = %"$have_gas_3336" + call void @_out_of_gas() + br label %"$have_gas_3367" + +"$have_gas_3367": ; preds = %"$out_of_gas_3366", %"$have_gas_3336" + %"$consume_3368" = sub i64 %"$gasrem_3364", 1 + store i64 %"$consume_3368", i64* @_gasrem, align 8 %msgs1 = alloca %TName_List_Message*, align 8 - %"$gasrem_3296" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3297" = icmp ugt i64 1, %"$gasrem_3296" - br i1 %"$gascmp_3297", label %"$out_of_gas_3298", label %"$have_gas_3299" + call void @llvm.dbg.declare(metadata %TName_List_Message** %msgs1, metadata !606, metadata !DIExpression()), !dbg !607 + %"$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_3298": ; preds = %"$have_gas_3294" +"$out_of_gas_3371": ; preds = %"$have_gas_3367" call void @_out_of_gas() - br label %"$have_gas_3299" + br label %"$have_gas_3372" -"$have_gas_3299": ; preds = %"$out_of_gas_3298", %"$have_gas_3294" - %"$consume_3300" = sub i64 %"$gasrem_3296", 1 - store i64 %"$consume_3300", i64* @_gasrem, align 8 +"$have_gas_3372": ; preds = %"$out_of_gas_3371", %"$have_gas_3367" + %"$consume_3373" = sub i64 %"$gasrem_3369", 1 + store i64 %"$consume_3373", i64* @_gasrem, align 8 %"$accounting_tests.one_msg_38" = alloca %TName_List_Message*, align 8 - %"$accounting_tests.one_msg_3301" = load { %TName_List_Message* (i8*, i8*)*, i8* }, { %TName_List_Message* (i8*, i8*)*, i8* }* @accounting_tests.one_msg, align 8 - %"$accounting_tests.one_msg_fptr_3302" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$accounting_tests.one_msg_3301", 0 - %"$accounting_tests.one_msg_envptr_3303" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$accounting_tests.one_msg_3301", 1 - %"$msg1_3304" = load i8*, i8** %msg1, align 8 - %"$accounting_tests.one_msg_call_3305" = call %TName_List_Message* %"$accounting_tests.one_msg_fptr_3302"(i8* %"$accounting_tests.one_msg_envptr_3303", i8* %"$msg1_3304"), !dbg !278 - store %TName_List_Message* %"$accounting_tests.one_msg_call_3305", %TName_List_Message** %"$accounting_tests.one_msg_38", align 8, !dbg !278 - %"$$accounting_tests.one_msg_38_3306" = load %TName_List_Message*, %TName_List_Message** %"$accounting_tests.one_msg_38", align 8 - store %TName_List_Message* %"$$accounting_tests.one_msg_38_3306", %TName_List_Message** %msgs1, align 8, !dbg !278 - %"$msgs1_3307" = load %TName_List_Message*, %TName_List_Message** %msgs1, align 8 - %"$$msgs1_3307_3308" = bitcast %TName_List_Message* %"$msgs1_3307" to i8* - %"$_literal_cost_call_3309" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_120", i8* %"$$msgs1_3307_3308") - %"$gasrem_3310" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3311" = icmp ugt i64 %"$_literal_cost_call_3309", %"$gasrem_3310" - br i1 %"$gascmp_3311", label %"$out_of_gas_3312", label %"$have_gas_3313" - -"$out_of_gas_3312": ; preds = %"$have_gas_3299" - call void @_out_of_gas() - br label %"$have_gas_3313" - -"$have_gas_3313": ; preds = %"$out_of_gas_3312", %"$have_gas_3299" - %"$consume_3314" = sub i64 %"$gasrem_3310", %"$_literal_cost_call_3309" - store i64 %"$consume_3314", i64* @_gasrem, align 8 - %"$execptr_load_3315" = load i8*, i8** @_execptr, align 8 - %"$msgs1_3316" = load %TName_List_Message*, %TName_List_Message** %msgs1, align 8 - call void @_send(i8* %"$execptr_load_3315", %_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_120", %TName_List_Message* %"$msgs1_3316"), !dbg !279 + call void @llvm.dbg.declare(metadata %TName_List_Message** %"$accounting_tests.one_msg_38", metadata !608, metadata !DIExpression()), !dbg !609 + %"$accounting_tests.one_msg_3374" = load { %TName_List_Message* (i8*, i8*)*, i8* }, { %TName_List_Message* (i8*, i8*)*, i8* }* @accounting_tests.one_msg, align 8 + %"$accounting_tests.one_msg_fptr_3375" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$accounting_tests.one_msg_3374", 0 + %"$accounting_tests.one_msg_envptr_3376" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$accounting_tests.one_msg_3374", 1 + %"$msg1_3377" = load i8*, i8** %msg1, align 8 + %"$accounting_tests.one_msg_call_3378" = call %TName_List_Message* %"$accounting_tests.one_msg_fptr_3375"(i8* %"$accounting_tests.one_msg_envptr_3376", i8* %"$msg1_3377"), !dbg !609 + store %TName_List_Message* %"$accounting_tests.one_msg_call_3378", %TName_List_Message** %"$accounting_tests.one_msg_38", align 8, !dbg !609 + %"$$accounting_tests.one_msg_38_3379" = load %TName_List_Message*, %TName_List_Message** %"$accounting_tests.one_msg_38", align 8 + store %TName_List_Message* %"$$accounting_tests.one_msg_38_3379", %TName_List_Message** %msgs1, align 8, !dbg !609 + %"$msgs1_3380" = load %TName_List_Message*, %TName_List_Message** %msgs1, align 8 + %"$$msgs1_3380_3381" = bitcast %TName_List_Message* %"$msgs1_3380" to i8* + %"$_literal_cost_call_3382" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_120", i8* %"$$msgs1_3380_3381") + %"$gasrem_3383" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3384" = icmp ugt i64 %"$_literal_cost_call_3382", %"$gasrem_3383" + br i1 %"$gascmp_3384", label %"$out_of_gas_3385", label %"$have_gas_3386" + +"$out_of_gas_3385": ; preds = %"$have_gas_3372" + call void @_out_of_gas() + br label %"$have_gas_3386" + +"$have_gas_3386": ; preds = %"$out_of_gas_3385", %"$have_gas_3372" + %"$consume_3387" = sub i64 %"$gasrem_3383", %"$_literal_cost_call_3382" + store i64 %"$consume_3387", i64* @_gasrem, align 8 + %"$execptr_load_3388" = load i8*, i8** @_execptr, align 8 + %"$msgs1_3389" = load %TName_List_Message*, %TName_List_Message** %msgs1, align 8 + call void @_send(i8* %"$execptr_load_3388", %_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_120", %TName_List_Message* %"$msgs1_3389"), !dbg !610 %support_bal = alloca %Uint128, align 8 - %"$execptr_load_3318" = load i8*, i8** @_execptr, align 8 - %"$support_bal_support_contract_3319" = alloca [20 x i8], align 1 - %"$support_contract_3320" = load [20 x i8], [20 x i8]* @_cparam_support_contract, align 1 - store [20 x i8] %"$support_contract_3320", [20 x i8]* %"$support_bal_support_contract_3319", align 1 - %"$support_bal_call_3321" = call i8* @_fetch_remote_field(i8* %"$execptr_load_3318", [20 x i8]* %"$support_bal_support_contract_3319", i8* getelementptr inbounds ([9 x i8], [9 x i8]* @"$_balance_3317", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Uint128_94", i32 0, i8* null, i32 1), !dbg !280 - %"$support_bal_3322" = bitcast i8* %"$support_bal_call_3321" to %Uint128* - %"$support_bal_3323" = load %Uint128, %Uint128* %"$support_bal_3322", align 8 - store %Uint128 %"$support_bal_3323", %Uint128* %support_bal, align 8 - %"$_literal_cost_support_bal_3324" = alloca %Uint128, align 8 - %"$support_bal_3325" = load %Uint128, %Uint128* %support_bal, align 8 - store %Uint128 %"$support_bal_3325", %Uint128* %"$_literal_cost_support_bal_3324", align 8 - %"$$_literal_cost_support_bal_3324_3326" = bitcast %Uint128* %"$_literal_cost_support_bal_3324" to i8* - %"$_literal_cost_call_3327" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Uint128_94", i8* %"$$_literal_cost_support_bal_3324_3326") - %"$gasadd_3328" = add i64 %"$_literal_cost_call_3327", 0 - %"$gasrem_3329" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3330" = icmp ugt i64 %"$gasadd_3328", %"$gasrem_3329" - br i1 %"$gascmp_3330", label %"$out_of_gas_3331", label %"$have_gas_3332" - -"$out_of_gas_3331": ; preds = %"$have_gas_3313" - call void @_out_of_gas() - br label %"$have_gas_3332" - -"$have_gas_3332": ; preds = %"$out_of_gas_3331", %"$have_gas_3313" - %"$consume_3333" = sub i64 %"$gasrem_3329", %"$gasadd_3328" - store i64 %"$consume_3333", i64* @_gasrem, align 8 - %"$gasrem_3334" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3335" = icmp ugt i64 1, %"$gasrem_3334" - br i1 %"$gascmp_3335", label %"$out_of_gas_3336", label %"$have_gas_3337" - -"$out_of_gas_3336": ; preds = %"$have_gas_3332" - call void @_out_of_gas() - br label %"$have_gas_3337" - -"$have_gas_3337": ; preds = %"$out_of_gas_3336", %"$have_gas_3332" - %"$consume_3338" = sub i64 %"$gasrem_3334", 1 - store i64 %"$consume_3338", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %Uint128* %support_bal, metadata !611, metadata !DIExpression()), !dbg !612 + %"$execptr_load_3391" = load i8*, i8** @_execptr, align 8 + %"$support_bal_support_contract_3392" = alloca [20 x i8], align 1 + %"$support_contract_3393" = load [20 x i8], [20 x i8]* @_cparam_support_contract, align 1 + store [20 x i8] %"$support_contract_3393", [20 x i8]* %"$support_bal_support_contract_3392", align 1 + %"$support_bal_call_3394" = call i8* @_fetch_remote_field(i8* %"$execptr_load_3391", [20 x i8]* %"$support_bal_support_contract_3392", i8* getelementptr inbounds ([9 x i8], [9 x i8]* @"$_balance_3390", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Uint128_94", i32 0, i8* null, i32 1), !dbg !612 + %"$support_bal_3395" = bitcast i8* %"$support_bal_call_3394" to %Uint128* + %"$support_bal_3396" = load %Uint128, %Uint128* %"$support_bal_3395", align 8 + store %Uint128 %"$support_bal_3396", %Uint128* %support_bal, align 8 + %"$_literal_cost_support_bal_3397" = alloca %Uint128, align 8 + %"$support_bal_3398" = load %Uint128, %Uint128* %support_bal, align 8 + store %Uint128 %"$support_bal_3398", %Uint128* %"$_literal_cost_support_bal_3397", align 8 + %"$$_literal_cost_support_bal_3397_3399" = bitcast %Uint128* %"$_literal_cost_support_bal_3397" to i8* + %"$_literal_cost_call_3400" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Uint128_94", i8* %"$$_literal_cost_support_bal_3397_3399") + %"$gasadd_3401" = add i64 %"$_literal_cost_call_3400", 0 + %"$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 = %"$have_gas_3386" + call void @_out_of_gas() + br label %"$have_gas_3405" + +"$have_gas_3405": ; preds = %"$out_of_gas_3404", %"$have_gas_3386" + %"$consume_3406" = sub i64 %"$gasrem_3402", %"$gasadd_3401" + store i64 %"$consume_3406", i64* @_gasrem, align 8 + %"$gasrem_3407" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3408" = icmp ugt i64 1, %"$gasrem_3407" + br i1 %"$gascmp_3408", label %"$out_of_gas_3409", label %"$have_gas_3410" + +"$out_of_gas_3409": ; preds = %"$have_gas_3405" + call void @_out_of_gas() + br label %"$have_gas_3410" + +"$have_gas_3410": ; preds = %"$out_of_gas_3409", %"$have_gas_3405" + %"$consume_3411" = sub i64 %"$gasrem_3407", 1 + store i64 %"$consume_3411", i64* @_gasrem, align 8 %expected_balance = alloca %Uint128, align 8 - %"$gasrem_3340" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3341" = icmp ugt i64 8, %"$gasrem_3340" - br i1 %"$gascmp_3341", label %"$out_of_gas_3342", label %"$have_gas_3343" + call void @llvm.dbg.declare(metadata %Uint128* %expected_balance, metadata !613, metadata !DIExpression()), !dbg !614 + %"$gasrem_3413" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3414" = icmp ugt i64 8, %"$gasrem_3413" + br i1 %"$gascmp_3414", label %"$out_of_gas_3415", label %"$have_gas_3416" -"$out_of_gas_3342": ; preds = %"$have_gas_3337" +"$out_of_gas_3415": ; preds = %"$have_gas_3410" call void @_out_of_gas() - br label %"$have_gas_3343" + br label %"$have_gas_3416" -"$have_gas_3343": ; preds = %"$out_of_gas_3342", %"$have_gas_3337" - %"$consume_3344" = sub i64 %"$gasrem_3340", 8 - store i64 %"$consume_3344", i64* @_gasrem, align 8 - %"$support_bal_3345" = load %Uint128, %Uint128* %support_bal, align 8 - %"$amount_3346" = load %Uint128, %Uint128* %amount, align 8 - %"$add_call_3347" = call %Uint128 @_add_Uint128(%Uint128 %"$support_bal_3345", %Uint128 %"$amount_3346"), !dbg !281 - store %Uint128 %"$add_call_3347", %Uint128* %expected_balance, align 8, !dbg !281 - %"$gasrem_3348" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3349" = icmp ugt i64 1, %"$gasrem_3348" - br i1 %"$gascmp_3349", label %"$out_of_gas_3350", label %"$have_gas_3351" +"$have_gas_3416": ; preds = %"$out_of_gas_3415", %"$have_gas_3410" + %"$consume_3417" = sub i64 %"$gasrem_3413", 8 + store i64 %"$consume_3417", i64* @_gasrem, align 8 + %"$support_bal_3418" = load %Uint128, %Uint128* %support_bal, align 8 + %"$amount_3419" = load %Uint128, %Uint128* %amount, align 8 + %"$add_call_3420" = call %Uint128 @_add_Uint128(%Uint128 %"$support_bal_3418", %Uint128 %"$amount_3419"), !dbg !615 + store %Uint128 %"$add_call_3420", %Uint128* %expected_balance, align 8, !dbg !615 + %"$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" -"$out_of_gas_3350": ; preds = %"$have_gas_3343" +"$out_of_gas_3423": ; preds = %"$have_gas_3416" call void @_out_of_gas() - br label %"$have_gas_3351" + br label %"$have_gas_3424" -"$have_gas_3351": ; preds = %"$out_of_gas_3350", %"$have_gas_3343" - %"$consume_3352" = sub i64 %"$gasrem_3348", 1 - store i64 %"$consume_3352", i64* @_gasrem, align 8 +"$have_gas_3424": ; preds = %"$out_of_gas_3423", %"$have_gas_3416" + %"$consume_3425" = sub i64 %"$gasrem_3421", 1 + store i64 %"$consume_3425", i64* @_gasrem, align 8 %msg2 = alloca i8*, align 8 - %"$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 = %"$have_gas_3351" - call void @_out_of_gas() - br label %"$have_gas_3356" - -"$have_gas_3356": ; preds = %"$out_of_gas_3355", %"$have_gas_3351" - %"$consume_3357" = sub i64 %"$gasrem_3353", 1 - store i64 %"$consume_3357", i64* @_gasrem, align 8 - %"$msgobj_3358_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$msgobj_3358_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_3358_salloc_load", i64 165) - %"$msgobj_3358_salloc" = bitcast i8* %"$msgobj_3358_salloc_salloc" to [165 x i8]* - %"$msgobj_3358" = bitcast [165 x i8]* %"$msgobj_3358_salloc" to i8* - store i8 4, i8* %"$msgobj_3358", align 1 - %"$msgobj_fname_3360" = getelementptr i8, i8* %"$msgobj_3358", i32 1 - %"$msgobj_fname_3361" = bitcast i8* %"$msgobj_fname_3360" to %String* - store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_3359", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_3361", align 8 - %"$msgobj_td_3362" = getelementptr i8, i8* %"$msgobj_3358", i32 17 - %"$msgobj_td_3363" = bitcast i8* %"$msgobj_td_3362" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_114", %_TyDescrTy_Typ** %"$msgobj_td_3363", align 8 - %"$_this_address_3364" = load [20 x i8], [20 x i8]* @_cparam__this_address, align 1 - %"$msgobj_v_3365" = getelementptr i8, i8* %"$msgobj_3358", i32 25 - %"$msgobj_v_3366" = bitcast i8* %"$msgobj_v_3365" to [20 x i8]* - store [20 x i8] %"$_this_address_3364", [20 x i8]* %"$msgobj_v_3366", align 1 - %"$msgobj_fname_3368" = getelementptr i8, i8* %"$msgobj_3358", i32 45 - %"$msgobj_fname_3369" = bitcast i8* %"$msgobj_fname_3368" to %String* - store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_3367", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_3369", align 8 - %"$msgobj_td_3370" = getelementptr i8, i8* %"$msgobj_3358", i32 61 - %"$msgobj_td_3371" = bitcast i8* %"$msgobj_td_3370" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_String_100", %_TyDescrTy_Typ** %"$msgobj_td_3371", align 8 - %"$msgobj_v_3373" = getelementptr i8, i8* %"$msgobj_3358", i32 69 - %"$msgobj_v_3374" = bitcast i8* %"$msgobj_v_3373" to %String* - store %String { i8* getelementptr inbounds ([21 x i8], [21 x i8]* @"$stringlit_3372", i32 0, i32 0), i32 21 }, %String* %"$msgobj_v_3374", align 8 - %"$msgobj_fname_3376" = getelementptr i8, i8* %"$msgobj_3358", i32 85 - %"$msgobj_fname_3377" = bitcast i8* %"$msgobj_fname_3376" to %String* - store %String { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$stringlit_3375", i32 0, i32 0), i32 7 }, %String* %"$msgobj_fname_3377", align 8 - %"$msgobj_td_3378" = getelementptr i8, i8* %"$msgobj_3358", i32 101 - %"$msgobj_td_3379" = bitcast i8* %"$msgobj_td_3378" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Uint128_94", %_TyDescrTy_Typ** %"$msgobj_td_3379", align 8 - %"$msgobj_v_3380" = getelementptr i8, i8* %"$msgobj_3358", i32 109 - %"$msgobj_v_3381" = bitcast i8* %"$msgobj_v_3380" to %Uint128* - store %Uint128 zeroinitializer, %Uint128* %"$msgobj_v_3381", align 8 - %"$msgobj_fname_3383" = getelementptr i8, i8* %"$msgobj_3358", i32 125 - %"$msgobj_fname_3384" = bitcast i8* %"$msgobj_fname_3383" to %String* - store %String { i8* getelementptr inbounds ([16 x i8], [16 x i8]* @"$stringlit_3382", i32 0, i32 0), i32 16 }, %String* %"$msgobj_fname_3384", align 8 - %"$msgobj_td_3385" = getelementptr i8, i8* %"$msgobj_3358", i32 141 - %"$msgobj_td_3386" = bitcast i8* %"$msgobj_td_3385" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Uint128_94", %_TyDescrTy_Typ** %"$msgobj_td_3386", align 8 - %"$expected_balance_3387" = load %Uint128, %Uint128* %expected_balance, align 8 - %"$msgobj_v_3388" = getelementptr i8, i8* %"$msgobj_3358", i32 149 - %"$msgobj_v_3389" = bitcast i8* %"$msgobj_v_3388" to %Uint128* - store %Uint128 %"$expected_balance_3387", %Uint128* %"$msgobj_v_3389", align 8 - store i8* %"$msgobj_3358", i8** %msg2, align 8, !dbg !282 - %"$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_3356" - call void @_out_of_gas() - br label %"$have_gas_3394" - -"$have_gas_3394": ; preds = %"$out_of_gas_3393", %"$have_gas_3356" - %"$consume_3395" = sub i64 %"$gasrem_3391", 1 - store i64 %"$consume_3395", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata i8** %msg2, metadata !616, metadata !DIExpression()), !dbg !617 + %"$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 = %"$have_gas_3424" + call void @_out_of_gas() + br label %"$have_gas_3429" + +"$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 + %"$msgobj_3431_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$msgobj_3431_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_3431_salloc_load", i64 165) + %"$msgobj_3431_salloc" = bitcast i8* %"$msgobj_3431_salloc_salloc" to [165 x i8]* + %"$msgobj_3431" = bitcast [165 x i8]* %"$msgobj_3431_salloc" to i8* + store i8 4, i8* %"$msgobj_3431", align 1 + %"$msgobj_fname_3433" = getelementptr i8, i8* %"$msgobj_3431", i32 1 + %"$msgobj_fname_3434" = bitcast i8* %"$msgobj_fname_3433" to %String* + store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_3432", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_3434", align 8 + %"$msgobj_td_3435" = getelementptr i8, i8* %"$msgobj_3431", i32 17 + %"$msgobj_td_3436" = bitcast i8* %"$msgobj_td_3435" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_114", %_TyDescrTy_Typ** %"$msgobj_td_3436", align 8 + %"$_this_address_3437" = load [20 x i8], [20 x i8]* @_cparam__this_address, align 1 + %"$msgobj_v_3438" = getelementptr i8, i8* %"$msgobj_3431", i32 25 + %"$msgobj_v_3439" = bitcast i8* %"$msgobj_v_3438" to [20 x i8]* + store [20 x i8] %"$_this_address_3437", [20 x i8]* %"$msgobj_v_3439", align 1 + %"$msgobj_fname_3441" = getelementptr i8, i8* %"$msgobj_3431", i32 45 + %"$msgobj_fname_3442" = bitcast i8* %"$msgobj_fname_3441" to %String* + store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_3440", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_3442", align 8 + %"$msgobj_td_3443" = getelementptr i8, i8* %"$msgobj_3431", i32 61 + %"$msgobj_td_3444" = bitcast i8* %"$msgobj_td_3443" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_String_100", %_TyDescrTy_Typ** %"$msgobj_td_3444", align 8 + %"$msgobj_v_3446" = getelementptr i8, i8* %"$msgobj_3431", i32 69 + %"$msgobj_v_3447" = bitcast i8* %"$msgobj_v_3446" to %String* + store %String { i8* getelementptr inbounds ([21 x i8], [21 x i8]* @"$stringlit_3445", i32 0, i32 0), i32 21 }, %String* %"$msgobj_v_3447", align 8 + %"$msgobj_fname_3449" = getelementptr i8, i8* %"$msgobj_3431", i32 85 + %"$msgobj_fname_3450" = bitcast i8* %"$msgobj_fname_3449" to %String* + store %String { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$stringlit_3448", i32 0, i32 0), i32 7 }, %String* %"$msgobj_fname_3450", align 8 + %"$msgobj_td_3451" = getelementptr i8, i8* %"$msgobj_3431", i32 101 + %"$msgobj_td_3452" = bitcast i8* %"$msgobj_td_3451" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Uint128_94", %_TyDescrTy_Typ** %"$msgobj_td_3452", align 8 + %"$msgobj_v_3453" = getelementptr i8, i8* %"$msgobj_3431", i32 109 + %"$msgobj_v_3454" = bitcast i8* %"$msgobj_v_3453" to %Uint128* + store %Uint128 zeroinitializer, %Uint128* %"$msgobj_v_3454", align 8 + %"$msgobj_fname_3456" = getelementptr i8, i8* %"$msgobj_3431", i32 125 + %"$msgobj_fname_3457" = bitcast i8* %"$msgobj_fname_3456" to %String* + store %String { i8* getelementptr inbounds ([16 x i8], [16 x i8]* @"$stringlit_3455", i32 0, i32 0), i32 16 }, %String* %"$msgobj_fname_3457", align 8 + %"$msgobj_td_3458" = getelementptr i8, i8* %"$msgobj_3431", i32 141 + %"$msgobj_td_3459" = bitcast i8* %"$msgobj_td_3458" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Uint128_94", %_TyDescrTy_Typ** %"$msgobj_td_3459", align 8 + %"$expected_balance_3460" = load %Uint128, %Uint128* %expected_balance, align 8 + %"$msgobj_v_3461" = getelementptr i8, i8* %"$msgobj_3431", i32 149 + %"$msgobj_v_3462" = bitcast i8* %"$msgobj_v_3461" to %Uint128* + store %Uint128 %"$expected_balance_3460", %Uint128* %"$msgobj_v_3462", align 8 + store i8* %"$msgobj_3431", i8** %msg2, align 8, !dbg !618 + %"$gasrem_3464" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3465" = icmp ugt i64 1, %"$gasrem_3464" + br i1 %"$gascmp_3465", label %"$out_of_gas_3466", label %"$have_gas_3467" + +"$out_of_gas_3466": ; preds = %"$have_gas_3429" + call void @_out_of_gas() + br label %"$have_gas_3467" + +"$have_gas_3467": ; preds = %"$out_of_gas_3466", %"$have_gas_3429" + %"$consume_3468" = sub i64 %"$gasrem_3464", 1 + store i64 %"$consume_3468", i64* @_gasrem, align 8 %msgs2 = alloca %TName_List_Message*, align 8 - %"$gasrem_3396" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3397" = icmp ugt i64 1, %"$gasrem_3396" - br i1 %"$gascmp_3397", label %"$out_of_gas_3398", label %"$have_gas_3399" + call void @llvm.dbg.declare(metadata %TName_List_Message** %msgs2, metadata !619, metadata !DIExpression()), !dbg !620 + %"$gasrem_3469" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3470" = icmp ugt i64 1, %"$gasrem_3469" + br i1 %"$gascmp_3470", label %"$out_of_gas_3471", label %"$have_gas_3472" -"$out_of_gas_3398": ; preds = %"$have_gas_3394" +"$out_of_gas_3471": ; preds = %"$have_gas_3467" call void @_out_of_gas() - br label %"$have_gas_3399" + br label %"$have_gas_3472" -"$have_gas_3399": ; preds = %"$out_of_gas_3398", %"$have_gas_3394" - %"$consume_3400" = sub i64 %"$gasrem_3396", 1 - store i64 %"$consume_3400", i64* @_gasrem, align 8 +"$have_gas_3472": ; preds = %"$out_of_gas_3471", %"$have_gas_3467" + %"$consume_3473" = sub i64 %"$gasrem_3469", 1 + store i64 %"$consume_3473", i64* @_gasrem, align 8 %"$accounting_tests.one_msg_37" = alloca %TName_List_Message*, align 8 - %"$accounting_tests.one_msg_3401" = load { %TName_List_Message* (i8*, i8*)*, i8* }, { %TName_List_Message* (i8*, i8*)*, i8* }* @accounting_tests.one_msg, align 8 - %"$accounting_tests.one_msg_fptr_3402" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$accounting_tests.one_msg_3401", 0 - %"$accounting_tests.one_msg_envptr_3403" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$accounting_tests.one_msg_3401", 1 - %"$msg2_3404" = load i8*, i8** %msg2, align 8 - %"$accounting_tests.one_msg_call_3405" = call %TName_List_Message* %"$accounting_tests.one_msg_fptr_3402"(i8* %"$accounting_tests.one_msg_envptr_3403", i8* %"$msg2_3404"), !dbg !283 - store %TName_List_Message* %"$accounting_tests.one_msg_call_3405", %TName_List_Message** %"$accounting_tests.one_msg_37", align 8, !dbg !283 - %"$$accounting_tests.one_msg_37_3406" = load %TName_List_Message*, %TName_List_Message** %"$accounting_tests.one_msg_37", align 8 - store %TName_List_Message* %"$$accounting_tests.one_msg_37_3406", %TName_List_Message** %msgs2, align 8, !dbg !283 - %"$msgs2_3407" = load %TName_List_Message*, %TName_List_Message** %msgs2, align 8 - %"$$msgs2_3407_3408" = bitcast %TName_List_Message* %"$msgs2_3407" to i8* - %"$_literal_cost_call_3409" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_120", i8* %"$$msgs2_3407_3408") - %"$gasrem_3410" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3411" = icmp ugt i64 %"$_literal_cost_call_3409", %"$gasrem_3410" - br i1 %"$gascmp_3411", label %"$out_of_gas_3412", label %"$have_gas_3413" - -"$out_of_gas_3412": ; preds = %"$have_gas_3399" - call void @_out_of_gas() - br label %"$have_gas_3413" - -"$have_gas_3413": ; preds = %"$out_of_gas_3412", %"$have_gas_3399" - %"$consume_3414" = sub i64 %"$gasrem_3410", %"$_literal_cost_call_3409" - store i64 %"$consume_3414", i64* @_gasrem, align 8 - %"$execptr_load_3415" = load i8*, i8** @_execptr, align 8 - %"$msgs2_3416" = load %TName_List_Message*, %TName_List_Message** %msgs2, align 8 - call void @_send(i8* %"$execptr_load_3415", %_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_120", %TName_List_Message* %"$msgs2_3416"), !dbg !284 + call void @llvm.dbg.declare(metadata %TName_List_Message** %"$accounting_tests.one_msg_37", metadata !621, metadata !DIExpression()), !dbg !622 + %"$accounting_tests.one_msg_3474" = load { %TName_List_Message* (i8*, i8*)*, i8* }, { %TName_List_Message* (i8*, i8*)*, i8* }* @accounting_tests.one_msg, align 8 + %"$accounting_tests.one_msg_fptr_3475" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$accounting_tests.one_msg_3474", 0 + %"$accounting_tests.one_msg_envptr_3476" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$accounting_tests.one_msg_3474", 1 + %"$msg2_3477" = load i8*, i8** %msg2, align 8 + %"$accounting_tests.one_msg_call_3478" = call %TName_List_Message* %"$accounting_tests.one_msg_fptr_3475"(i8* %"$accounting_tests.one_msg_envptr_3476", i8* %"$msg2_3477"), !dbg !622 + store %TName_List_Message* %"$accounting_tests.one_msg_call_3478", %TName_List_Message** %"$accounting_tests.one_msg_37", align 8, !dbg !622 + %"$$accounting_tests.one_msg_37_3479" = load %TName_List_Message*, %TName_List_Message** %"$accounting_tests.one_msg_37", align 8 + store %TName_List_Message* %"$$accounting_tests.one_msg_37_3479", %TName_List_Message** %msgs2, align 8, !dbg !622 + %"$msgs2_3480" = load %TName_List_Message*, %TName_List_Message** %msgs2, align 8 + %"$$msgs2_3480_3481" = bitcast %TName_List_Message* %"$msgs2_3480" to i8* + %"$_literal_cost_call_3482" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_120", i8* %"$$msgs2_3480_3481") + %"$gasrem_3483" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3484" = icmp ugt i64 %"$_literal_cost_call_3482", %"$gasrem_3483" + br i1 %"$gascmp_3484", label %"$out_of_gas_3485", label %"$have_gas_3486" + +"$out_of_gas_3485": ; preds = %"$have_gas_3472" + call void @_out_of_gas() + br label %"$have_gas_3486" + +"$have_gas_3486": ; preds = %"$out_of_gas_3485", %"$have_gas_3472" + %"$consume_3487" = sub i64 %"$gasrem_3483", %"$_literal_cost_call_3482" + store i64 %"$consume_3487", i64* @_gasrem, align 8 + %"$execptr_load_3488" = load i8*, i8** @_execptr, align 8 + %"$msgs2_3489" = load %TName_List_Message*, %TName_List_Message** %msgs2, align 8 + call void @_send(i8* %"$execptr_load_3488", %_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_120", %TName_List_Message* %"$msgs2_3489"), !dbg !623 ret void } declare %Uint128 @_add_Uint128(%Uint128, %Uint128) -define void @Test_Send_8(i8* %0) !dbg !285 { +define void @Test_Send_8(i8* %0) !dbg !624 { entry: - %"$_amount_3418" = getelementptr i8, i8* %0, i32 0 - %"$_amount_3419" = bitcast i8* %"$_amount_3418" to %Uint128* - %_amount = load %Uint128, %Uint128* %"$_amount_3419", align 8 - %"$_origin_3420" = getelementptr i8, i8* %0, i32 16 - %"$_origin_3421" = bitcast i8* %"$_origin_3420" to [20 x i8]* - %"$_sender_3422" = getelementptr i8, i8* %0, i32 36 - %"$_sender_3423" = bitcast i8* %"$_sender_3422" to [20 x i8]* - call void @"$Test_Send_8_3230"(%Uint128 %_amount, [20 x i8]* %"$_origin_3421", [20 x i8]* %"$_sender_3423"), !dbg !286 + %"$_amount_3494" = getelementptr i8, i8* %0, i32 0 + %"$_amount_3495" = bitcast i8* %"$_amount_3494" to %Uint128* + %_amount = load %Uint128, %Uint128* %"$_amount_3495", align 8 + %"$_origin_3496" = getelementptr i8, i8* %0, i32 16 + %"$_origin_3497" = bitcast i8* %"$_origin_3496" to [20 x i8]* + %"$_sender_3498" = getelementptr i8, i8* %0, i32 36 + %"$_sender_3499" = bitcast i8* %"$_sender_3498" to [20 x i8]* + call void @"$Test_Send_8_3303"(%Uint128 %_amount, [20 x i8]* %"$_origin_3497", [20 x i8]* %"$_sender_3499"), !dbg !625 ret void } -define internal void @"$Test_Send_9_3424"(%Uint128 %_amount, [20 x i8]* %"$_origin_3425", [20 x i8]* %"$_sender_3426") !dbg !287 { +define internal void @"$Test_Send_9_3500"(%Uint128 %_amount, [20 x i8]* %"$_origin_3501", [20 x i8]* %"$_sender_3502") !dbg !626 { entry: - %_origin = load [20 x i8], [20 x i8]* %"$_origin_3425", align 1 - %_sender = load [20 x i8], [20 x i8]* %"$_sender_3426", align 1 - %"$gasrem_3427" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3428" = icmp ugt i64 1, %"$gasrem_3427" - br i1 %"$gascmp_3428", label %"$out_of_gas_3429", label %"$have_gas_3430" - -"$out_of_gas_3429": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_3430" - -"$have_gas_3430": ; preds = %"$out_of_gas_3429", %entry - %"$consume_3431" = sub i64 %"$gasrem_3427", 1 - store i64 %"$consume_3431", i64* @_gasrem, align 8 - %"$AssertReset__origin_3432" = alloca [20 x i8], align 1 - store [20 x i8] %_origin, [20 x i8]* %"$AssertReset__origin_3432", align 1 - %"$AssertReset__sender_3433" = alloca [20 x i8], align 1 - store [20 x i8] %_sender, [20 x i8]* %"$AssertReset__sender_3433", align 1 - call void @"$AssertReset_855"(%Uint128 %_amount, [20 x i8]* %"$AssertReset__origin_3432", [20 x i8]* %"$AssertReset__sender_3433"), !dbg !288 + %"$_sender_3675" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_sender_3502", [20 x i8]** %"$_sender_3675", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_sender_3675", metadata !627, metadata !DIExpression()), !dbg !628 + %"$_origin_3674" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_origin_3501", [20 x i8]** %"$_origin_3674", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_origin_3674", metadata !629, metadata !DIExpression()), !dbg !628 + %"$_amount_3673" = alloca %Uint128, align 8 + store %Uint128 %_amount, %Uint128* %"$_amount_3673", align 8 + call void @llvm.dbg.declare(metadata %Uint128* %"$_amount_3673", metadata !630, metadata !DIExpression()), !dbg !628 + %_origin = load [20 x i8], [20 x i8]* %"$_origin_3501", align 1 + %_sender = load [20 x i8], [20 x i8]* %"$_sender_3502", align 1 + %"$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 = %entry + call void @_out_of_gas() + br label %"$have_gas_3506" + +"$have_gas_3506": ; preds = %"$out_of_gas_3505", %entry + %"$consume_3507" = sub i64 %"$gasrem_3503", 1 + store i64 %"$consume_3507", i64* @_gasrem, align 8 + %"$AssertReset__origin_3508" = alloca [20 x i8], align 1 + store [20 x i8] %_origin, [20 x i8]* %"$AssertReset__origin_3508", align 1 + %"$AssertReset__sender_3509" = alloca [20 x i8], align 1 + store [20 x i8] %_sender, [20 x i8]* %"$AssertReset__sender_3509", align 1 + call void @"$AssertReset_869"(%Uint128 %_amount, [20 x i8]* %"$AssertReset__origin_3508", [20 x i8]* %"$AssertReset__sender_3509"), !dbg !631 %amount = alloca %Uint128, align 8 - %"$execptr_load_3435" = load i8*, i8** @_execptr, align 8 - %"$amount_call_3436" = call i8* @_fetch_field(i8* %"$execptr_load_3435", i8* getelementptr inbounds ([16 x i8], [16 x i8]* @"$outgoing_amount_3434", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Uint128_94", i32 0, i8* null, i32 1), !dbg !289 - %"$amount_3437" = bitcast i8* %"$amount_call_3436" to %Uint128* - %"$amount_3438" = load %Uint128, %Uint128* %"$amount_3437", align 8 - store %Uint128 %"$amount_3438", %Uint128* %amount, align 8 - %"$_literal_cost_amount_3439" = alloca %Uint128, align 8 - %"$amount_3440" = load %Uint128, %Uint128* %amount, align 8 - store %Uint128 %"$amount_3440", %Uint128* %"$_literal_cost_amount_3439", align 8 - %"$$_literal_cost_amount_3439_3441" = bitcast %Uint128* %"$_literal_cost_amount_3439" to i8* - %"$_literal_cost_call_3442" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Uint128_94", i8* %"$$_literal_cost_amount_3439_3441") - %"$gasadd_3443" = add i64 %"$_literal_cost_call_3442", 0 - %"$gasrem_3444" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3445" = icmp ugt i64 %"$gasadd_3443", %"$gasrem_3444" - br i1 %"$gascmp_3445", label %"$out_of_gas_3446", label %"$have_gas_3447" - -"$out_of_gas_3446": ; preds = %"$have_gas_3430" - call void @_out_of_gas() - br label %"$have_gas_3447" - -"$have_gas_3447": ; preds = %"$out_of_gas_3446", %"$have_gas_3430" - %"$consume_3448" = sub i64 %"$gasrem_3444", %"$gasadd_3443" - store i64 %"$consume_3448", i64* @_gasrem, align 8 - %"$gasrem_3449" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3450" = icmp ugt i64 1, %"$gasrem_3449" - br i1 %"$gascmp_3450", label %"$out_of_gas_3451", label %"$have_gas_3452" - -"$out_of_gas_3451": ; preds = %"$have_gas_3447" - call void @_out_of_gas() - br label %"$have_gas_3452" - -"$have_gas_3452": ; preds = %"$out_of_gas_3451", %"$have_gas_3447" - %"$consume_3453" = sub i64 %"$gasrem_3449", 1 - store i64 %"$consume_3453", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %Uint128* %amount, metadata !632, metadata !DIExpression()), !dbg !633 + %"$execptr_load_3511" = load i8*, i8** @_execptr, align 8 + %"$amount_call_3512" = call i8* @_fetch_field(i8* %"$execptr_load_3511", i8* getelementptr inbounds ([16 x i8], [16 x i8]* @"$outgoing_amount_3510", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Uint128_94", i32 0, i8* null, i32 1), !dbg !633 + %"$amount_3513" = bitcast i8* %"$amount_call_3512" to %Uint128* + %"$amount_3514" = load %Uint128, %Uint128* %"$amount_3513", align 8 + store %Uint128 %"$amount_3514", %Uint128* %amount, align 8 + %"$_literal_cost_amount_3515" = alloca %Uint128, align 8 + %"$amount_3516" = load %Uint128, %Uint128* %amount, align 8 + store %Uint128 %"$amount_3516", %Uint128* %"$_literal_cost_amount_3515", align 8 + %"$$_literal_cost_amount_3515_3517" = bitcast %Uint128* %"$_literal_cost_amount_3515" to i8* + %"$_literal_cost_call_3518" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Uint128_94", i8* %"$$_literal_cost_amount_3515_3517") + %"$gasadd_3519" = add i64 %"$_literal_cost_call_3518", 0 + %"$gasrem_3520" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3521" = icmp ugt i64 %"$gasadd_3519", %"$gasrem_3520" + br i1 %"$gascmp_3521", label %"$out_of_gas_3522", label %"$have_gas_3523" + +"$out_of_gas_3522": ; preds = %"$have_gas_3506" + call void @_out_of_gas() + br label %"$have_gas_3523" + +"$have_gas_3523": ; preds = %"$out_of_gas_3522", %"$have_gas_3506" + %"$consume_3524" = sub i64 %"$gasrem_3520", %"$gasadd_3519" + store i64 %"$consume_3524", i64* @_gasrem, 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" + +"$out_of_gas_3527": ; preds = %"$have_gas_3523" + call void @_out_of_gas() + br label %"$have_gas_3528" + +"$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 %msg1 = alloca i8*, align 8 - %"$gasrem_3454" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3455" = icmp ugt i64 1, %"$gasrem_3454" - br i1 %"$gascmp_3455", label %"$out_of_gas_3456", label %"$have_gas_3457" - -"$out_of_gas_3456": ; preds = %"$have_gas_3452" - call void @_out_of_gas() - br label %"$have_gas_3457" - -"$have_gas_3457": ; preds = %"$out_of_gas_3456", %"$have_gas_3452" - %"$consume_3458" = sub i64 %"$gasrem_3454", 1 - store i64 %"$consume_3458", i64* @_gasrem, align 8 - %"$msgobj_3459_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$msgobj_3459_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_3459_salloc_load", i64 125) - %"$msgobj_3459_salloc" = bitcast i8* %"$msgobj_3459_salloc_salloc" to [125 x i8]* - %"$msgobj_3459" = bitcast [125 x i8]* %"$msgobj_3459_salloc" to i8* - store i8 3, i8* %"$msgobj_3459", align 1 - %"$msgobj_fname_3461" = getelementptr i8, i8* %"$msgobj_3459", i32 1 - %"$msgobj_fname_3462" = bitcast i8* %"$msgobj_fname_3461" to %String* - store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_3460", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_3462", align 8 - %"$msgobj_td_3463" = getelementptr i8, i8* %"$msgobj_3459", i32 17 - %"$msgobj_td_3464" = bitcast i8* %"$msgobj_td_3463" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_114", %_TyDescrTy_Typ** %"$msgobj_td_3464", align 8 - %"$support_contract_3465" = load [20 x i8], [20 x i8]* @_cparam_support_contract, align 1 - %"$msgobj_v_3466" = getelementptr i8, i8* %"$msgobj_3459", i32 25 - %"$msgobj_v_3467" = bitcast i8* %"$msgobj_v_3466" to [20 x i8]* - store [20 x i8] %"$support_contract_3465", [20 x i8]* %"$msgobj_v_3467", align 1 - %"$msgobj_fname_3469" = getelementptr i8, i8* %"$msgobj_3459", i32 45 - %"$msgobj_fname_3470" = bitcast i8* %"$msgobj_fname_3469" to %String* - store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_3468", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_3470", align 8 - %"$msgobj_td_3471" = getelementptr i8, i8* %"$msgobj_3459", i32 61 - %"$msgobj_td_3472" = bitcast i8* %"$msgobj_td_3471" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_String_100", %_TyDescrTy_Typ** %"$msgobj_td_3472", align 8 - %"$msgobj_v_3474" = getelementptr i8, i8* %"$msgobj_3459", i32 69 - %"$msgobj_v_3475" = bitcast i8* %"$msgobj_v_3474" to %String* - store %String { i8* getelementptr inbounds ([9 x i8], [9 x i8]* @"$stringlit_3473", i32 0, i32 0), i32 9 }, %String* %"$msgobj_v_3475", align 8 - %"$msgobj_fname_3477" = getelementptr i8, i8* %"$msgobj_3459", i32 85 - %"$msgobj_fname_3478" = bitcast i8* %"$msgobj_fname_3477" to %String* - store %String { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$stringlit_3476", i32 0, i32 0), i32 7 }, %String* %"$msgobj_fname_3478", align 8 - %"$msgobj_td_3479" = getelementptr i8, i8* %"$msgobj_3459", i32 101 - %"$msgobj_td_3480" = bitcast i8* %"$msgobj_td_3479" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Uint128_94", %_TyDescrTy_Typ** %"$msgobj_td_3480", align 8 - %"$amount_3481" = load %Uint128, %Uint128* %amount, align 8 - %"$msgobj_v_3482" = getelementptr i8, i8* %"$msgobj_3459", i32 109 - %"$msgobj_v_3483" = bitcast i8* %"$msgobj_v_3482" to %Uint128* - store %Uint128 %"$amount_3481", %Uint128* %"$msgobj_v_3483", align 8 - store i8* %"$msgobj_3459", i8** %msg1, align 8, !dbg !290 - %"$gasrem_3485" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3486" = icmp ugt i64 1, %"$gasrem_3485" - br i1 %"$gascmp_3486", label %"$out_of_gas_3487", label %"$have_gas_3488" - -"$out_of_gas_3487": ; preds = %"$have_gas_3457" - call void @_out_of_gas() - br label %"$have_gas_3488" - -"$have_gas_3488": ; preds = %"$out_of_gas_3487", %"$have_gas_3457" - %"$consume_3489" = sub i64 %"$gasrem_3485", 1 - store i64 %"$consume_3489", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata i8** %msg1, metadata !634, metadata !DIExpression()), !dbg !635 + %"$gasrem_3530" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3531" = icmp ugt i64 1, %"$gasrem_3530" + br i1 %"$gascmp_3531", label %"$out_of_gas_3532", label %"$have_gas_3533" + +"$out_of_gas_3532": ; preds = %"$have_gas_3528" + call void @_out_of_gas() + br label %"$have_gas_3533" + +"$have_gas_3533": ; preds = %"$out_of_gas_3532", %"$have_gas_3528" + %"$consume_3534" = sub i64 %"$gasrem_3530", 1 + store i64 %"$consume_3534", i64* @_gasrem, align 8 + %"$msgobj_3535_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$msgobj_3535_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_3535_salloc_load", i64 125) + %"$msgobj_3535_salloc" = bitcast i8* %"$msgobj_3535_salloc_salloc" to [125 x i8]* + %"$msgobj_3535" = bitcast [125 x i8]* %"$msgobj_3535_salloc" to i8* + store i8 3, i8* %"$msgobj_3535", align 1 + %"$msgobj_fname_3537" = getelementptr i8, i8* %"$msgobj_3535", i32 1 + %"$msgobj_fname_3538" = bitcast i8* %"$msgobj_fname_3537" to %String* + store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_3536", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_3538", align 8 + %"$msgobj_td_3539" = getelementptr i8, i8* %"$msgobj_3535", i32 17 + %"$msgobj_td_3540" = bitcast i8* %"$msgobj_td_3539" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_114", %_TyDescrTy_Typ** %"$msgobj_td_3540", align 8 + %"$support_contract_3541" = load [20 x i8], [20 x i8]* @_cparam_support_contract, align 1 + %"$msgobj_v_3542" = getelementptr i8, i8* %"$msgobj_3535", i32 25 + %"$msgobj_v_3543" = bitcast i8* %"$msgobj_v_3542" to [20 x i8]* + store [20 x i8] %"$support_contract_3541", [20 x i8]* %"$msgobj_v_3543", align 1 + %"$msgobj_fname_3545" = getelementptr i8, i8* %"$msgobj_3535", i32 45 + %"$msgobj_fname_3546" = bitcast i8* %"$msgobj_fname_3545" to %String* + store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_3544", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_3546", align 8 + %"$msgobj_td_3547" = getelementptr i8, i8* %"$msgobj_3535", i32 61 + %"$msgobj_td_3548" = bitcast i8* %"$msgobj_td_3547" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_String_100", %_TyDescrTy_Typ** %"$msgobj_td_3548", align 8 + %"$msgobj_v_3550" = getelementptr i8, i8* %"$msgobj_3535", i32 69 + %"$msgobj_v_3551" = bitcast i8* %"$msgobj_v_3550" to %String* + store %String { i8* getelementptr inbounds ([9 x i8], [9 x i8]* @"$stringlit_3549", i32 0, i32 0), i32 9 }, %String* %"$msgobj_v_3551", align 8 + %"$msgobj_fname_3553" = getelementptr i8, i8* %"$msgobj_3535", i32 85 + %"$msgobj_fname_3554" = bitcast i8* %"$msgobj_fname_3553" to %String* + store %String { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$stringlit_3552", i32 0, i32 0), i32 7 }, %String* %"$msgobj_fname_3554", align 8 + %"$msgobj_td_3555" = getelementptr i8, i8* %"$msgobj_3535", i32 101 + %"$msgobj_td_3556" = bitcast i8* %"$msgobj_td_3555" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Uint128_94", %_TyDescrTy_Typ** %"$msgobj_td_3556", align 8 + %"$amount_3557" = load %Uint128, %Uint128* %amount, align 8 + %"$msgobj_v_3558" = getelementptr i8, i8* %"$msgobj_3535", i32 109 + %"$msgobj_v_3559" = bitcast i8* %"$msgobj_v_3558" to %Uint128* + store %Uint128 %"$amount_3557", %Uint128* %"$msgobj_v_3559", align 8 + store i8* %"$msgobj_3535", i8** %msg1, align 8, !dbg !636 + %"$gasrem_3561" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3562" = icmp ugt i64 1, %"$gasrem_3561" + br i1 %"$gascmp_3562", label %"$out_of_gas_3563", label %"$have_gas_3564" + +"$out_of_gas_3563": ; preds = %"$have_gas_3533" + call void @_out_of_gas() + br label %"$have_gas_3564" + +"$have_gas_3564": ; preds = %"$out_of_gas_3563", %"$have_gas_3533" + %"$consume_3565" = sub i64 %"$gasrem_3561", 1 + store i64 %"$consume_3565", i64* @_gasrem, align 8 %msgs1 = alloca %TName_List_Message*, align 8 - %"$gasrem_3490" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3491" = icmp ugt i64 1, %"$gasrem_3490" - br i1 %"$gascmp_3491", label %"$out_of_gas_3492", label %"$have_gas_3493" + call void @llvm.dbg.declare(metadata %TName_List_Message** %msgs1, metadata !637, metadata !DIExpression()), !dbg !638 + %"$gasrem_3566" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3567" = icmp ugt i64 1, %"$gasrem_3566" + br i1 %"$gascmp_3567", label %"$out_of_gas_3568", label %"$have_gas_3569" -"$out_of_gas_3492": ; preds = %"$have_gas_3488" +"$out_of_gas_3568": ; preds = %"$have_gas_3564" call void @_out_of_gas() - br label %"$have_gas_3493" + br label %"$have_gas_3569" -"$have_gas_3493": ; preds = %"$out_of_gas_3492", %"$have_gas_3488" - %"$consume_3494" = sub i64 %"$gasrem_3490", 1 - store i64 %"$consume_3494", i64* @_gasrem, align 8 +"$have_gas_3569": ; preds = %"$out_of_gas_3568", %"$have_gas_3564" + %"$consume_3570" = sub i64 %"$gasrem_3566", 1 + store i64 %"$consume_3570", i64* @_gasrem, align 8 %"$accounting_tests.one_msg_40" = alloca %TName_List_Message*, align 8 - %"$accounting_tests.one_msg_3495" = load { %TName_List_Message* (i8*, i8*)*, i8* }, { %TName_List_Message* (i8*, i8*)*, i8* }* @accounting_tests.one_msg, align 8 - %"$accounting_tests.one_msg_fptr_3496" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$accounting_tests.one_msg_3495", 0 - %"$accounting_tests.one_msg_envptr_3497" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$accounting_tests.one_msg_3495", 1 - %"$msg1_3498" = load i8*, i8** %msg1, align 8 - %"$accounting_tests.one_msg_call_3499" = call %TName_List_Message* %"$accounting_tests.one_msg_fptr_3496"(i8* %"$accounting_tests.one_msg_envptr_3497", i8* %"$msg1_3498"), !dbg !291 - store %TName_List_Message* %"$accounting_tests.one_msg_call_3499", %TName_List_Message** %"$accounting_tests.one_msg_40", align 8, !dbg !291 - %"$$accounting_tests.one_msg_40_3500" = load %TName_List_Message*, %TName_List_Message** %"$accounting_tests.one_msg_40", align 8 - store %TName_List_Message* %"$$accounting_tests.one_msg_40_3500", %TName_List_Message** %msgs1, align 8, !dbg !291 - %"$msgs1_3501" = load %TName_List_Message*, %TName_List_Message** %msgs1, align 8 - %"$$msgs1_3501_3502" = bitcast %TName_List_Message* %"$msgs1_3501" to i8* - %"$_literal_cost_call_3503" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_120", i8* %"$$msgs1_3501_3502") - %"$gasrem_3504" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3505" = icmp ugt i64 %"$_literal_cost_call_3503", %"$gasrem_3504" - br i1 %"$gascmp_3505", label %"$out_of_gas_3506", label %"$have_gas_3507" - -"$out_of_gas_3506": ; preds = %"$have_gas_3493" - call void @_out_of_gas() - br label %"$have_gas_3507" - -"$have_gas_3507": ; preds = %"$out_of_gas_3506", %"$have_gas_3493" - %"$consume_3508" = sub i64 %"$gasrem_3504", %"$_literal_cost_call_3503" - store i64 %"$consume_3508", i64* @_gasrem, align 8 - %"$execptr_load_3509" = load i8*, i8** @_execptr, align 8 - %"$msgs1_3510" = load %TName_List_Message*, %TName_List_Message** %msgs1, align 8 - call void @_send(i8* %"$execptr_load_3509", %_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_120", %TName_List_Message* %"$msgs1_3510"), !dbg !292 + call void @llvm.dbg.declare(metadata %TName_List_Message** %"$accounting_tests.one_msg_40", metadata !639, metadata !DIExpression()), !dbg !640 + %"$accounting_tests.one_msg_3571" = load { %TName_List_Message* (i8*, i8*)*, i8* }, { %TName_List_Message* (i8*, i8*)*, i8* }* @accounting_tests.one_msg, align 8 + %"$accounting_tests.one_msg_fptr_3572" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$accounting_tests.one_msg_3571", 0 + %"$accounting_tests.one_msg_envptr_3573" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$accounting_tests.one_msg_3571", 1 + %"$msg1_3574" = load i8*, i8** %msg1, align 8 + %"$accounting_tests.one_msg_call_3575" = call %TName_List_Message* %"$accounting_tests.one_msg_fptr_3572"(i8* %"$accounting_tests.one_msg_envptr_3573", i8* %"$msg1_3574"), !dbg !640 + store %TName_List_Message* %"$accounting_tests.one_msg_call_3575", %TName_List_Message** %"$accounting_tests.one_msg_40", align 8, !dbg !640 + %"$$accounting_tests.one_msg_40_3576" = load %TName_List_Message*, %TName_List_Message** %"$accounting_tests.one_msg_40", align 8 + store %TName_List_Message* %"$$accounting_tests.one_msg_40_3576", %TName_List_Message** %msgs1, align 8, !dbg !640 + %"$msgs1_3577" = load %TName_List_Message*, %TName_List_Message** %msgs1, align 8 + %"$$msgs1_3577_3578" = bitcast %TName_List_Message* %"$msgs1_3577" to i8* + %"$_literal_cost_call_3579" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_120", i8* %"$$msgs1_3577_3578") + %"$gasrem_3580" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3581" = icmp ugt i64 %"$_literal_cost_call_3579", %"$gasrem_3580" + br i1 %"$gascmp_3581", label %"$out_of_gas_3582", label %"$have_gas_3583" + +"$out_of_gas_3582": ; preds = %"$have_gas_3569" + call void @_out_of_gas() + br label %"$have_gas_3583" + +"$have_gas_3583": ; preds = %"$out_of_gas_3582", %"$have_gas_3569" + %"$consume_3584" = sub i64 %"$gasrem_3580", %"$_literal_cost_call_3579" + store i64 %"$consume_3584", i64* @_gasrem, align 8 + %"$execptr_load_3585" = load i8*, i8** @_execptr, align 8 + %"$msgs1_3586" = load %TName_List_Message*, %TName_List_Message** %msgs1, align 8 + call void @_send(i8* %"$execptr_load_3585", %_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_120", %TName_List_Message* %"$msgs1_3586"), !dbg !641 %support_bal = alloca %Uint128, align 8 - %"$execptr_load_3512" = load i8*, i8** @_execptr, align 8 - %"$support_bal_support_contract_3513" = alloca [20 x i8], align 1 - %"$support_contract_3514" = load [20 x i8], [20 x i8]* @_cparam_support_contract, align 1 - store [20 x i8] %"$support_contract_3514", [20 x i8]* %"$support_bal_support_contract_3513", align 1 - %"$support_bal_call_3515" = call i8* @_fetch_remote_field(i8* %"$execptr_load_3512", [20 x i8]* %"$support_bal_support_contract_3513", i8* getelementptr inbounds ([9 x i8], [9 x i8]* @"$_balance_3511", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Uint128_94", i32 0, i8* null, i32 1), !dbg !293 - %"$support_bal_3516" = bitcast i8* %"$support_bal_call_3515" to %Uint128* - %"$support_bal_3517" = load %Uint128, %Uint128* %"$support_bal_3516", align 8 - store %Uint128 %"$support_bal_3517", %Uint128* %support_bal, align 8 - %"$_literal_cost_support_bal_3518" = alloca %Uint128, align 8 - %"$support_bal_3519" = load %Uint128, %Uint128* %support_bal, align 8 - store %Uint128 %"$support_bal_3519", %Uint128* %"$_literal_cost_support_bal_3518", align 8 - %"$$_literal_cost_support_bal_3518_3520" = bitcast %Uint128* %"$_literal_cost_support_bal_3518" to i8* - %"$_literal_cost_call_3521" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Uint128_94", i8* %"$$_literal_cost_support_bal_3518_3520") - %"$gasadd_3522" = add i64 %"$_literal_cost_call_3521", 0 - %"$gasrem_3523" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3524" = icmp ugt i64 %"$gasadd_3522", %"$gasrem_3523" - br i1 %"$gascmp_3524", label %"$out_of_gas_3525", label %"$have_gas_3526" - -"$out_of_gas_3525": ; preds = %"$have_gas_3507" - call void @_out_of_gas() - br label %"$have_gas_3526" - -"$have_gas_3526": ; preds = %"$out_of_gas_3525", %"$have_gas_3507" - %"$consume_3527" = sub i64 %"$gasrem_3523", %"$gasadd_3522" - store i64 %"$consume_3527", i64* @_gasrem, align 8 - %"$gasrem_3528" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3529" = icmp ugt i64 1, %"$gasrem_3528" - br i1 %"$gascmp_3529", label %"$out_of_gas_3530", label %"$have_gas_3531" - -"$out_of_gas_3530": ; preds = %"$have_gas_3526" - call void @_out_of_gas() - br label %"$have_gas_3531" - -"$have_gas_3531": ; preds = %"$out_of_gas_3530", %"$have_gas_3526" - %"$consume_3532" = sub i64 %"$gasrem_3528", 1 - store i64 %"$consume_3532", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %Uint128* %support_bal, metadata !642, metadata !DIExpression()), !dbg !643 + %"$execptr_load_3588" = load i8*, i8** @_execptr, align 8 + %"$support_bal_support_contract_3589" = alloca [20 x i8], align 1 + %"$support_contract_3590" = load [20 x i8], [20 x i8]* @_cparam_support_contract, align 1 + store [20 x i8] %"$support_contract_3590", [20 x i8]* %"$support_bal_support_contract_3589", align 1 + %"$support_bal_call_3591" = call i8* @_fetch_remote_field(i8* %"$execptr_load_3588", [20 x i8]* %"$support_bal_support_contract_3589", i8* getelementptr inbounds ([9 x i8], [9 x i8]* @"$_balance_3587", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Uint128_94", i32 0, i8* null, i32 1), !dbg !643 + %"$support_bal_3592" = bitcast i8* %"$support_bal_call_3591" to %Uint128* + %"$support_bal_3593" = load %Uint128, %Uint128* %"$support_bal_3592", align 8 + store %Uint128 %"$support_bal_3593", %Uint128* %support_bal, align 8 + %"$_literal_cost_support_bal_3594" = alloca %Uint128, align 8 + %"$support_bal_3595" = load %Uint128, %Uint128* %support_bal, align 8 + store %Uint128 %"$support_bal_3595", %Uint128* %"$_literal_cost_support_bal_3594", align 8 + %"$$_literal_cost_support_bal_3594_3596" = bitcast %Uint128* %"$_literal_cost_support_bal_3594" to i8* + %"$_literal_cost_call_3597" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Uint128_94", i8* %"$$_literal_cost_support_bal_3594_3596") + %"$gasadd_3598" = add i64 %"$_literal_cost_call_3597", 0 + %"$gasrem_3599" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3600" = icmp ugt i64 %"$gasadd_3598", %"$gasrem_3599" + br i1 %"$gascmp_3600", label %"$out_of_gas_3601", label %"$have_gas_3602" + +"$out_of_gas_3601": ; preds = %"$have_gas_3583" + call void @_out_of_gas() + br label %"$have_gas_3602" + +"$have_gas_3602": ; preds = %"$out_of_gas_3601", %"$have_gas_3583" + %"$consume_3603" = sub i64 %"$gasrem_3599", %"$gasadd_3598" + store i64 %"$consume_3603", i64* @_gasrem, align 8 + %"$gasrem_3604" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3605" = icmp ugt i64 1, %"$gasrem_3604" + br i1 %"$gascmp_3605", label %"$out_of_gas_3606", label %"$have_gas_3607" + +"$out_of_gas_3606": ; preds = %"$have_gas_3602" + call void @_out_of_gas() + br label %"$have_gas_3607" + +"$have_gas_3607": ; preds = %"$out_of_gas_3606", %"$have_gas_3602" + %"$consume_3608" = sub i64 %"$gasrem_3604", 1 + store i64 %"$consume_3608", i64* @_gasrem, align 8 %msg2 = alloca i8*, align 8 - %"$gasrem_3533" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3534" = icmp ugt i64 1, %"$gasrem_3533" - br i1 %"$gascmp_3534", label %"$out_of_gas_3535", label %"$have_gas_3536" - -"$out_of_gas_3535": ; preds = %"$have_gas_3531" - call void @_out_of_gas() - br label %"$have_gas_3536" - -"$have_gas_3536": ; preds = %"$out_of_gas_3535", %"$have_gas_3531" - %"$consume_3537" = sub i64 %"$gasrem_3533", 1 - store i64 %"$consume_3537", i64* @_gasrem, align 8 - %"$msgobj_3538_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$msgobj_3538_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_3538_salloc_load", i64 165) - %"$msgobj_3538_salloc" = bitcast i8* %"$msgobj_3538_salloc_salloc" to [165 x i8]* - %"$msgobj_3538" = bitcast [165 x i8]* %"$msgobj_3538_salloc" to i8* - store i8 4, i8* %"$msgobj_3538", align 1 - %"$msgobj_fname_3540" = getelementptr i8, i8* %"$msgobj_3538", i32 1 - %"$msgobj_fname_3541" = bitcast i8* %"$msgobj_fname_3540" to %String* - store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_3539", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_3541", align 8 - %"$msgobj_td_3542" = getelementptr i8, i8* %"$msgobj_3538", i32 17 - %"$msgobj_td_3543" = bitcast i8* %"$msgobj_td_3542" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_114", %_TyDescrTy_Typ** %"$msgobj_td_3543", align 8 - %"$_this_address_3544" = load [20 x i8], [20 x i8]* @_cparam__this_address, align 1 - %"$msgobj_v_3545" = getelementptr i8, i8* %"$msgobj_3538", i32 25 - %"$msgobj_v_3546" = bitcast i8* %"$msgobj_v_3545" to [20 x i8]* - store [20 x i8] %"$_this_address_3544", [20 x i8]* %"$msgobj_v_3546", align 1 - %"$msgobj_fname_3548" = getelementptr i8, i8* %"$msgobj_3538", i32 45 - %"$msgobj_fname_3549" = bitcast i8* %"$msgobj_fname_3548" to %String* - store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_3547", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_3549", align 8 - %"$msgobj_td_3550" = getelementptr i8, i8* %"$msgobj_3538", i32 61 - %"$msgobj_td_3551" = bitcast i8* %"$msgobj_td_3550" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_String_100", %_TyDescrTy_Typ** %"$msgobj_td_3551", align 8 - %"$msgobj_v_3553" = getelementptr i8, i8* %"$msgobj_3538", i32 69 - %"$msgobj_v_3554" = bitcast i8* %"$msgobj_v_3553" to %String* - store %String { i8* getelementptr inbounds ([21 x i8], [21 x i8]* @"$stringlit_3552", i32 0, i32 0), i32 21 }, %String* %"$msgobj_v_3554", align 8 - %"$msgobj_fname_3556" = getelementptr i8, i8* %"$msgobj_3538", i32 85 - %"$msgobj_fname_3557" = bitcast i8* %"$msgobj_fname_3556" to %String* - store %String { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$stringlit_3555", i32 0, i32 0), i32 7 }, %String* %"$msgobj_fname_3557", align 8 - %"$msgobj_td_3558" = getelementptr i8, i8* %"$msgobj_3538", i32 101 - %"$msgobj_td_3559" = bitcast i8* %"$msgobj_td_3558" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Uint128_94", %_TyDescrTy_Typ** %"$msgobj_td_3559", align 8 - %"$msgobj_v_3560" = getelementptr i8, i8* %"$msgobj_3538", i32 109 - %"$msgobj_v_3561" = bitcast i8* %"$msgobj_v_3560" to %Uint128* - store %Uint128 zeroinitializer, %Uint128* %"$msgobj_v_3561", align 8 - %"$msgobj_fname_3563" = getelementptr i8, i8* %"$msgobj_3538", i32 125 - %"$msgobj_fname_3564" = bitcast i8* %"$msgobj_fname_3563" to %String* - store %String { i8* getelementptr inbounds ([16 x i8], [16 x i8]* @"$stringlit_3562", i32 0, i32 0), i32 16 }, %String* %"$msgobj_fname_3564", align 8 - %"$msgobj_td_3565" = getelementptr i8, i8* %"$msgobj_3538", i32 141 - %"$msgobj_td_3566" = bitcast i8* %"$msgobj_td_3565" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Uint128_94", %_TyDescrTy_Typ** %"$msgobj_td_3566", align 8 - %"$support_bal_3567" = load %Uint128, %Uint128* %support_bal, align 8 - %"$msgobj_v_3568" = getelementptr i8, i8* %"$msgobj_3538", i32 149 - %"$msgobj_v_3569" = bitcast i8* %"$msgobj_v_3568" to %Uint128* - store %Uint128 %"$support_bal_3567", %Uint128* %"$msgobj_v_3569", align 8 - store i8* %"$msgobj_3538", i8** %msg2, align 8, !dbg !294 - %"$gasrem_3571" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3572" = icmp ugt i64 1, %"$gasrem_3571" - br i1 %"$gascmp_3572", label %"$out_of_gas_3573", label %"$have_gas_3574" - -"$out_of_gas_3573": ; preds = %"$have_gas_3536" - call void @_out_of_gas() - br label %"$have_gas_3574" - -"$have_gas_3574": ; preds = %"$out_of_gas_3573", %"$have_gas_3536" - %"$consume_3575" = sub i64 %"$gasrem_3571", 1 - store i64 %"$consume_3575", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata i8** %msg2, metadata !644, metadata !DIExpression()), !dbg !645 + %"$gasrem_3609" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3610" = icmp ugt i64 1, %"$gasrem_3609" + br i1 %"$gascmp_3610", label %"$out_of_gas_3611", label %"$have_gas_3612" + +"$out_of_gas_3611": ; preds = %"$have_gas_3607" + call void @_out_of_gas() + br label %"$have_gas_3612" + +"$have_gas_3612": ; preds = %"$out_of_gas_3611", %"$have_gas_3607" + %"$consume_3613" = sub i64 %"$gasrem_3609", 1 + store i64 %"$consume_3613", i64* @_gasrem, align 8 + %"$msgobj_3614_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$msgobj_3614_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_3614_salloc_load", i64 165) + %"$msgobj_3614_salloc" = bitcast i8* %"$msgobj_3614_salloc_salloc" to [165 x i8]* + %"$msgobj_3614" = bitcast [165 x i8]* %"$msgobj_3614_salloc" to i8* + store i8 4, i8* %"$msgobj_3614", align 1 + %"$msgobj_fname_3616" = getelementptr i8, i8* %"$msgobj_3614", i32 1 + %"$msgobj_fname_3617" = bitcast i8* %"$msgobj_fname_3616" to %String* + store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_3615", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_3617", align 8 + %"$msgobj_td_3618" = getelementptr i8, i8* %"$msgobj_3614", i32 17 + %"$msgobj_td_3619" = bitcast i8* %"$msgobj_td_3618" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_114", %_TyDescrTy_Typ** %"$msgobj_td_3619", align 8 + %"$_this_address_3620" = load [20 x i8], [20 x i8]* @_cparam__this_address, align 1 + %"$msgobj_v_3621" = getelementptr i8, i8* %"$msgobj_3614", i32 25 + %"$msgobj_v_3622" = bitcast i8* %"$msgobj_v_3621" to [20 x i8]* + store [20 x i8] %"$_this_address_3620", [20 x i8]* %"$msgobj_v_3622", align 1 + %"$msgobj_fname_3624" = getelementptr i8, i8* %"$msgobj_3614", i32 45 + %"$msgobj_fname_3625" = bitcast i8* %"$msgobj_fname_3624" to %String* + store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_3623", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_3625", align 8 + %"$msgobj_td_3626" = getelementptr i8, i8* %"$msgobj_3614", i32 61 + %"$msgobj_td_3627" = bitcast i8* %"$msgobj_td_3626" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_String_100", %_TyDescrTy_Typ** %"$msgobj_td_3627", align 8 + %"$msgobj_v_3629" = getelementptr i8, i8* %"$msgobj_3614", i32 69 + %"$msgobj_v_3630" = bitcast i8* %"$msgobj_v_3629" to %String* + store %String { i8* getelementptr inbounds ([21 x i8], [21 x i8]* @"$stringlit_3628", i32 0, i32 0), i32 21 }, %String* %"$msgobj_v_3630", align 8 + %"$msgobj_fname_3632" = getelementptr i8, i8* %"$msgobj_3614", i32 85 + %"$msgobj_fname_3633" = bitcast i8* %"$msgobj_fname_3632" to %String* + store %String { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$stringlit_3631", i32 0, i32 0), i32 7 }, %String* %"$msgobj_fname_3633", align 8 + %"$msgobj_td_3634" = getelementptr i8, i8* %"$msgobj_3614", i32 101 + %"$msgobj_td_3635" = bitcast i8* %"$msgobj_td_3634" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Uint128_94", %_TyDescrTy_Typ** %"$msgobj_td_3635", align 8 + %"$msgobj_v_3636" = getelementptr i8, i8* %"$msgobj_3614", i32 109 + %"$msgobj_v_3637" = bitcast i8* %"$msgobj_v_3636" to %Uint128* + store %Uint128 zeroinitializer, %Uint128* %"$msgobj_v_3637", align 8 + %"$msgobj_fname_3639" = getelementptr i8, i8* %"$msgobj_3614", i32 125 + %"$msgobj_fname_3640" = bitcast i8* %"$msgobj_fname_3639" to %String* + store %String { i8* getelementptr inbounds ([16 x i8], [16 x i8]* @"$stringlit_3638", i32 0, i32 0), i32 16 }, %String* %"$msgobj_fname_3640", align 8 + %"$msgobj_td_3641" = getelementptr i8, i8* %"$msgobj_3614", i32 141 + %"$msgobj_td_3642" = bitcast i8* %"$msgobj_td_3641" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Uint128_94", %_TyDescrTy_Typ** %"$msgobj_td_3642", align 8 + %"$support_bal_3643" = load %Uint128, %Uint128* %support_bal, align 8 + %"$msgobj_v_3644" = getelementptr i8, i8* %"$msgobj_3614", i32 149 + %"$msgobj_v_3645" = bitcast i8* %"$msgobj_v_3644" to %Uint128* + store %Uint128 %"$support_bal_3643", %Uint128* %"$msgobj_v_3645", align 8 + store i8* %"$msgobj_3614", i8** %msg2, align 8, !dbg !646 + %"$gasrem_3647" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3648" = icmp ugt i64 1, %"$gasrem_3647" + br i1 %"$gascmp_3648", label %"$out_of_gas_3649", label %"$have_gas_3650" + +"$out_of_gas_3649": ; preds = %"$have_gas_3612" + call void @_out_of_gas() + br label %"$have_gas_3650" + +"$have_gas_3650": ; preds = %"$out_of_gas_3649", %"$have_gas_3612" + %"$consume_3651" = sub i64 %"$gasrem_3647", 1 + store i64 %"$consume_3651", i64* @_gasrem, align 8 %msgs2 = alloca %TName_List_Message*, align 8 - %"$gasrem_3576" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3577" = icmp ugt i64 1, %"$gasrem_3576" - br i1 %"$gascmp_3577", label %"$out_of_gas_3578", label %"$have_gas_3579" + call void @llvm.dbg.declare(metadata %TName_List_Message** %msgs2, metadata !647, metadata !DIExpression()), !dbg !648 + %"$gasrem_3652" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3653" = icmp ugt i64 1, %"$gasrem_3652" + br i1 %"$gascmp_3653", label %"$out_of_gas_3654", label %"$have_gas_3655" -"$out_of_gas_3578": ; preds = %"$have_gas_3574" +"$out_of_gas_3654": ; preds = %"$have_gas_3650" call void @_out_of_gas() - br label %"$have_gas_3579" + br label %"$have_gas_3655" -"$have_gas_3579": ; preds = %"$out_of_gas_3578", %"$have_gas_3574" - %"$consume_3580" = sub i64 %"$gasrem_3576", 1 - store i64 %"$consume_3580", i64* @_gasrem, align 8 +"$have_gas_3655": ; preds = %"$out_of_gas_3654", %"$have_gas_3650" + %"$consume_3656" = sub i64 %"$gasrem_3652", 1 + store i64 %"$consume_3656", i64* @_gasrem, align 8 %"$accounting_tests.one_msg_39" = alloca %TName_List_Message*, align 8 - %"$accounting_tests.one_msg_3581" = load { %TName_List_Message* (i8*, i8*)*, i8* }, { %TName_List_Message* (i8*, i8*)*, i8* }* @accounting_tests.one_msg, align 8 - %"$accounting_tests.one_msg_fptr_3582" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$accounting_tests.one_msg_3581", 0 - %"$accounting_tests.one_msg_envptr_3583" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$accounting_tests.one_msg_3581", 1 - %"$msg2_3584" = load i8*, i8** %msg2, align 8 - %"$accounting_tests.one_msg_call_3585" = call %TName_List_Message* %"$accounting_tests.one_msg_fptr_3582"(i8* %"$accounting_tests.one_msg_envptr_3583", i8* %"$msg2_3584"), !dbg !295 - store %TName_List_Message* %"$accounting_tests.one_msg_call_3585", %TName_List_Message** %"$accounting_tests.one_msg_39", align 8, !dbg !295 - %"$$accounting_tests.one_msg_39_3586" = load %TName_List_Message*, %TName_List_Message** %"$accounting_tests.one_msg_39", align 8 - store %TName_List_Message* %"$$accounting_tests.one_msg_39_3586", %TName_List_Message** %msgs2, align 8, !dbg !295 - %"$msgs2_3587" = load %TName_List_Message*, %TName_List_Message** %msgs2, align 8 - %"$$msgs2_3587_3588" = bitcast %TName_List_Message* %"$msgs2_3587" to i8* - %"$_literal_cost_call_3589" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_120", i8* %"$$msgs2_3587_3588") - %"$gasrem_3590" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3591" = icmp ugt i64 %"$_literal_cost_call_3589", %"$gasrem_3590" - br i1 %"$gascmp_3591", label %"$out_of_gas_3592", label %"$have_gas_3593" - -"$out_of_gas_3592": ; preds = %"$have_gas_3579" - call void @_out_of_gas() - br label %"$have_gas_3593" - -"$have_gas_3593": ; preds = %"$out_of_gas_3592", %"$have_gas_3579" - %"$consume_3594" = sub i64 %"$gasrem_3590", %"$_literal_cost_call_3589" - store i64 %"$consume_3594", i64* @_gasrem, align 8 - %"$execptr_load_3595" = load i8*, i8** @_execptr, align 8 - %"$msgs2_3596" = load %TName_List_Message*, %TName_List_Message** %msgs2, align 8 - call void @_send(i8* %"$execptr_load_3595", %_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_120", %TName_List_Message* %"$msgs2_3596"), !dbg !296 + call void @llvm.dbg.declare(metadata %TName_List_Message** %"$accounting_tests.one_msg_39", metadata !649, metadata !DIExpression()), !dbg !650 + %"$accounting_tests.one_msg_3657" = load { %TName_List_Message* (i8*, i8*)*, i8* }, { %TName_List_Message* (i8*, i8*)*, i8* }* @accounting_tests.one_msg, align 8 + %"$accounting_tests.one_msg_fptr_3658" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$accounting_tests.one_msg_3657", 0 + %"$accounting_tests.one_msg_envptr_3659" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$accounting_tests.one_msg_3657", 1 + %"$msg2_3660" = load i8*, i8** %msg2, align 8 + %"$accounting_tests.one_msg_call_3661" = call %TName_List_Message* %"$accounting_tests.one_msg_fptr_3658"(i8* %"$accounting_tests.one_msg_envptr_3659", i8* %"$msg2_3660"), !dbg !650 + store %TName_List_Message* %"$accounting_tests.one_msg_call_3661", %TName_List_Message** %"$accounting_tests.one_msg_39", align 8, !dbg !650 + %"$$accounting_tests.one_msg_39_3662" = load %TName_List_Message*, %TName_List_Message** %"$accounting_tests.one_msg_39", align 8 + store %TName_List_Message* %"$$accounting_tests.one_msg_39_3662", %TName_List_Message** %msgs2, align 8, !dbg !650 + %"$msgs2_3663" = load %TName_List_Message*, %TName_List_Message** %msgs2, align 8 + %"$$msgs2_3663_3664" = bitcast %TName_List_Message* %"$msgs2_3663" to i8* + %"$_literal_cost_call_3665" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_120", i8* %"$$msgs2_3663_3664") + %"$gasrem_3666" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3667" = icmp ugt i64 %"$_literal_cost_call_3665", %"$gasrem_3666" + br i1 %"$gascmp_3667", label %"$out_of_gas_3668", label %"$have_gas_3669" + +"$out_of_gas_3668": ; preds = %"$have_gas_3655" + call void @_out_of_gas() + br label %"$have_gas_3669" + +"$have_gas_3669": ; preds = %"$out_of_gas_3668", %"$have_gas_3655" + %"$consume_3670" = sub i64 %"$gasrem_3666", %"$_literal_cost_call_3665" + store i64 %"$consume_3670", i64* @_gasrem, align 8 + %"$execptr_load_3671" = load i8*, i8** @_execptr, align 8 + %"$msgs2_3672" = load %TName_List_Message*, %TName_List_Message** %msgs2, align 8 + call void @_send(i8* %"$execptr_load_3671", %_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_120", %TName_List_Message* %"$msgs2_3672"), !dbg !651 ret void } -define void @Test_Send_9(i8* %0) !dbg !297 { +define void @Test_Send_9(i8* %0) !dbg !652 { entry: - %"$_amount_3598" = getelementptr i8, i8* %0, i32 0 - %"$_amount_3599" = bitcast i8* %"$_amount_3598" to %Uint128* - %_amount = load %Uint128, %Uint128* %"$_amount_3599", align 8 - %"$_origin_3600" = getelementptr i8, i8* %0, i32 16 - %"$_origin_3601" = bitcast i8* %"$_origin_3600" to [20 x i8]* - %"$_sender_3602" = getelementptr i8, i8* %0, i32 36 - %"$_sender_3603" = bitcast i8* %"$_sender_3602" to [20 x i8]* - call void @"$Test_Send_9_3424"(%Uint128 %_amount, [20 x i8]* %"$_origin_3601", [20 x i8]* %"$_sender_3603"), !dbg !298 + %"$_amount_3677" = getelementptr i8, i8* %0, i32 0 + %"$_amount_3678" = bitcast i8* %"$_amount_3677" to %Uint128* + %_amount = load %Uint128, %Uint128* %"$_amount_3678", align 8 + %"$_origin_3679" = getelementptr i8, i8* %0, i32 16 + %"$_origin_3680" = bitcast i8* %"$_origin_3679" to [20 x i8]* + %"$_sender_3681" = getelementptr i8, i8* %0, i32 36 + %"$_sender_3682" = bitcast i8* %"$_sender_3681" to [20 x i8]* + call void @"$Test_Send_9_3500"(%Uint128 %_amount, [20 x i8]* %"$_origin_3680", [20 x i8]* %"$_sender_3682"), !dbg !653 ret void } -define internal void @"$Test_Send_10_3604"(%Uint128 %_amount, [20 x i8]* %"$_origin_3605", [20 x i8]* %"$_sender_3606") !dbg !299 { +define internal void @"$Test_Send_10_3683"(%Uint128 %_amount, [20 x i8]* %"$_origin_3684", [20 x i8]* %"$_sender_3685") !dbg !654 { entry: - %_origin = load [20 x i8], [20 x i8]* %"$_origin_3605", align 1 - %_sender = load [20 x i8], [20 x i8]* %"$_sender_3606", align 1 - %"$gasrem_3607" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3608" = icmp ugt i64 1, %"$gasrem_3607" - br i1 %"$gascmp_3608", label %"$out_of_gas_3609", label %"$have_gas_3610" - -"$out_of_gas_3609": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_3610" - -"$have_gas_3610": ; preds = %"$out_of_gas_3609", %entry - %"$consume_3611" = sub i64 %"$gasrem_3607", 1 - store i64 %"$consume_3611", i64* @_gasrem, align 8 - %"$AssertReset__origin_3612" = alloca [20 x i8], align 1 - store [20 x i8] %_origin, [20 x i8]* %"$AssertReset__origin_3612", align 1 - %"$AssertReset__sender_3613" = alloca [20 x i8], align 1 - store [20 x i8] %_sender, [20 x i8]* %"$AssertReset__sender_3613", align 1 - call void @"$AssertReset_855"(%Uint128 %_amount, [20 x i8]* %"$AssertReset__origin_3612", [20 x i8]* %"$AssertReset__sender_3613"), !dbg !300 + %"$_sender_3772" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_sender_3685", [20 x i8]** %"$_sender_3772", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_sender_3772", metadata !655, metadata !DIExpression()), !dbg !656 + %"$_origin_3771" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_origin_3684", [20 x i8]** %"$_origin_3771", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_origin_3771", metadata !657, metadata !DIExpression()), !dbg !656 + %"$_amount_3770" = alloca %Uint128, align 8 + store %Uint128 %_amount, %Uint128* %"$_amount_3770", align 8 + call void @llvm.dbg.declare(metadata %Uint128* %"$_amount_3770", metadata !658, metadata !DIExpression()), !dbg !656 + %_origin = load [20 x i8], [20 x i8]* %"$_origin_3684", align 1 + %_sender = load [20 x i8], [20 x i8]* %"$_sender_3685", align 1 + %"$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_3688": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_3689" + +"$have_gas_3689": ; preds = %"$out_of_gas_3688", %entry + %"$consume_3690" = sub i64 %"$gasrem_3686", 1 + store i64 %"$consume_3690", i64* @_gasrem, align 8 + %"$AssertReset__origin_3691" = alloca [20 x i8], align 1 + store [20 x i8] %_origin, [20 x i8]* %"$AssertReset__origin_3691", align 1 + %"$AssertReset__sender_3692" = alloca [20 x i8], align 1 + store [20 x i8] %_sender, [20 x i8]* %"$AssertReset__sender_3692", align 1 + call void @"$AssertReset_869"(%Uint128 %_amount, [20 x i8]* %"$AssertReset__origin_3691", [20 x i8]* %"$AssertReset__sender_3692"), !dbg !659 %amount = alloca %Uint128, align 8 - %"$execptr_load_3615" = load i8*, i8** @_execptr, align 8 - %"$amount_call_3616" = call i8* @_fetch_field(i8* %"$execptr_load_3615", i8* getelementptr inbounds ([16 x i8], [16 x i8]* @"$outgoing_amount_3614", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Uint128_94", i32 0, i8* null, i32 1), !dbg !301 - %"$amount_3617" = bitcast i8* %"$amount_call_3616" to %Uint128* - %"$amount_3618" = load %Uint128, %Uint128* %"$amount_3617", align 8 - store %Uint128 %"$amount_3618", %Uint128* %amount, align 8 - %"$_literal_cost_amount_3619" = alloca %Uint128, align 8 - %"$amount_3620" = load %Uint128, %Uint128* %amount, align 8 - store %Uint128 %"$amount_3620", %Uint128* %"$_literal_cost_amount_3619", align 8 - %"$$_literal_cost_amount_3619_3621" = bitcast %Uint128* %"$_literal_cost_amount_3619" to i8* - %"$_literal_cost_call_3622" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Uint128_94", i8* %"$$_literal_cost_amount_3619_3621") - %"$gasadd_3623" = add i64 %"$_literal_cost_call_3622", 0 - %"$gasrem_3624" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3625" = icmp ugt i64 %"$gasadd_3623", %"$gasrem_3624" - br i1 %"$gascmp_3625", label %"$out_of_gas_3626", label %"$have_gas_3627" - -"$out_of_gas_3626": ; preds = %"$have_gas_3610" - call void @_out_of_gas() - br label %"$have_gas_3627" - -"$have_gas_3627": ; preds = %"$out_of_gas_3626", %"$have_gas_3610" - %"$consume_3628" = sub i64 %"$gasrem_3624", %"$gasadd_3623" - store i64 %"$consume_3628", i64* @_gasrem, align 8 - %"$gasrem_3629" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3630" = icmp ugt i64 1, %"$gasrem_3629" - br i1 %"$gascmp_3630", label %"$out_of_gas_3631", label %"$have_gas_3632" - -"$out_of_gas_3631": ; preds = %"$have_gas_3627" - call void @_out_of_gas() - br label %"$have_gas_3632" - -"$have_gas_3632": ; preds = %"$out_of_gas_3631", %"$have_gas_3627" - %"$consume_3633" = sub i64 %"$gasrem_3629", 1 - store i64 %"$consume_3633", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %Uint128* %amount, metadata !660, metadata !DIExpression()), !dbg !661 + %"$execptr_load_3694" = load i8*, i8** @_execptr, align 8 + %"$amount_call_3695" = call i8* @_fetch_field(i8* %"$execptr_load_3694", i8* getelementptr inbounds ([16 x i8], [16 x i8]* @"$outgoing_amount_3693", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Uint128_94", i32 0, i8* null, i32 1), !dbg !661 + %"$amount_3696" = bitcast i8* %"$amount_call_3695" to %Uint128* + %"$amount_3697" = load %Uint128, %Uint128* %"$amount_3696", align 8 + store %Uint128 %"$amount_3697", %Uint128* %amount, align 8 + %"$_literal_cost_amount_3698" = alloca %Uint128, align 8 + %"$amount_3699" = load %Uint128, %Uint128* %amount, align 8 + store %Uint128 %"$amount_3699", %Uint128* %"$_literal_cost_amount_3698", align 8 + %"$$_literal_cost_amount_3698_3700" = bitcast %Uint128* %"$_literal_cost_amount_3698" to i8* + %"$_literal_cost_call_3701" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Uint128_94", i8* %"$$_literal_cost_amount_3698_3700") + %"$gasadd_3702" = add i64 %"$_literal_cost_call_3701", 0 + %"$gasrem_3703" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3704" = icmp ugt i64 %"$gasadd_3702", %"$gasrem_3703" + br i1 %"$gascmp_3704", label %"$out_of_gas_3705", label %"$have_gas_3706" + +"$out_of_gas_3705": ; preds = %"$have_gas_3689" + call void @_out_of_gas() + br label %"$have_gas_3706" + +"$have_gas_3706": ; preds = %"$out_of_gas_3705", %"$have_gas_3689" + %"$consume_3707" = sub i64 %"$gasrem_3703", %"$gasadd_3702" + store i64 %"$consume_3707", i64* @_gasrem, 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_3710": ; preds = %"$have_gas_3706" + call void @_out_of_gas() + br label %"$have_gas_3711" + +"$have_gas_3711": ; preds = %"$out_of_gas_3710", %"$have_gas_3706" + %"$consume_3712" = sub i64 %"$gasrem_3708", 1 + store i64 %"$consume_3712", i64* @_gasrem, align 8 %msg1 = alloca i8*, align 8 - %"$gasrem_3634" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3635" = icmp ugt i64 1, %"$gasrem_3634" - br i1 %"$gascmp_3635", label %"$out_of_gas_3636", label %"$have_gas_3637" - -"$out_of_gas_3636": ; preds = %"$have_gas_3632" - call void @_out_of_gas() - br label %"$have_gas_3637" - -"$have_gas_3637": ; preds = %"$out_of_gas_3636", %"$have_gas_3632" - %"$consume_3638" = sub i64 %"$gasrem_3634", 1 - store i64 %"$consume_3638", i64* @_gasrem, align 8 - %"$msgobj_3639_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$msgobj_3639_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_3639_salloc_load", i64 125) - %"$msgobj_3639_salloc" = bitcast i8* %"$msgobj_3639_salloc_salloc" to [125 x i8]* - %"$msgobj_3639" = bitcast [125 x i8]* %"$msgobj_3639_salloc" to i8* - store i8 3, i8* %"$msgobj_3639", align 1 - %"$msgobj_fname_3641" = getelementptr i8, i8* %"$msgobj_3639", i32 1 - %"$msgobj_fname_3642" = bitcast i8* %"$msgobj_fname_3641" to %String* - store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_3640", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_3642", align 8 - %"$msgobj_td_3643" = getelementptr i8, i8* %"$msgobj_3639", i32 17 - %"$msgobj_td_3644" = bitcast i8* %"$msgobj_td_3643" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_114", %_TyDescrTy_Typ** %"$msgobj_td_3644", align 8 - %"$support_contract_3645" = load [20 x i8], [20 x i8]* @_cparam_support_contract, align 1 - %"$msgobj_v_3646" = getelementptr i8, i8* %"$msgobj_3639", i32 25 - %"$msgobj_v_3647" = bitcast i8* %"$msgobj_v_3646" to [20 x i8]* - store [20 x i8] %"$support_contract_3645", [20 x i8]* %"$msgobj_v_3647", align 1 - %"$msgobj_fname_3649" = getelementptr i8, i8* %"$msgobj_3639", i32 45 - %"$msgobj_fname_3650" = bitcast i8* %"$msgobj_fname_3649" to %String* - store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_3648", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_3650", align 8 - %"$msgobj_td_3651" = getelementptr i8, i8* %"$msgobj_3639", i32 61 - %"$msgobj_td_3652" = bitcast i8* %"$msgobj_td_3651" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_String_100", %_TyDescrTy_Typ** %"$msgobj_td_3652", align 8 - %"$msgobj_v_3654" = getelementptr i8, i8* %"$msgobj_3639", i32 69 - %"$msgobj_v_3655" = bitcast i8* %"$msgobj_v_3654" to %String* - store %String { i8* getelementptr inbounds ([27 x i8], [27 x i8]* @"$stringlit_3653", i32 0, i32 0), i32 27 }, %String* %"$msgobj_v_3655", align 8 - %"$msgobj_fname_3657" = getelementptr i8, i8* %"$msgobj_3639", i32 85 - %"$msgobj_fname_3658" = bitcast i8* %"$msgobj_fname_3657" to %String* - store %String { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$stringlit_3656", i32 0, i32 0), i32 7 }, %String* %"$msgobj_fname_3658", align 8 - %"$msgobj_td_3659" = getelementptr i8, i8* %"$msgobj_3639", i32 101 - %"$msgobj_td_3660" = bitcast i8* %"$msgobj_td_3659" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Uint128_94", %_TyDescrTy_Typ** %"$msgobj_td_3660", align 8 - %"$amount_3661" = load %Uint128, %Uint128* %amount, align 8 - %"$msgobj_v_3662" = getelementptr i8, i8* %"$msgobj_3639", i32 109 - %"$msgobj_v_3663" = bitcast i8* %"$msgobj_v_3662" to %Uint128* - store %Uint128 %"$amount_3661", %Uint128* %"$msgobj_v_3663", align 8 - store i8* %"$msgobj_3639", i8** %msg1, align 8, !dbg !302 - %"$gasrem_3665" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3666" = icmp ugt i64 1, %"$gasrem_3665" - br i1 %"$gascmp_3666", label %"$out_of_gas_3667", label %"$have_gas_3668" - -"$out_of_gas_3667": ; preds = %"$have_gas_3637" - call void @_out_of_gas() - br label %"$have_gas_3668" - -"$have_gas_3668": ; preds = %"$out_of_gas_3667", %"$have_gas_3637" - %"$consume_3669" = sub i64 %"$gasrem_3665", 1 - store i64 %"$consume_3669", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata i8** %msg1, metadata !662, metadata !DIExpression()), !dbg !663 + %"$gasrem_3713" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3714" = icmp ugt i64 1, %"$gasrem_3713" + br i1 %"$gascmp_3714", label %"$out_of_gas_3715", label %"$have_gas_3716" + +"$out_of_gas_3715": ; preds = %"$have_gas_3711" + call void @_out_of_gas() + br label %"$have_gas_3716" + +"$have_gas_3716": ; preds = %"$out_of_gas_3715", %"$have_gas_3711" + %"$consume_3717" = sub i64 %"$gasrem_3713", 1 + store i64 %"$consume_3717", i64* @_gasrem, align 8 + %"$msgobj_3718_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$msgobj_3718_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_3718_salloc_load", i64 125) + %"$msgobj_3718_salloc" = bitcast i8* %"$msgobj_3718_salloc_salloc" to [125 x i8]* + %"$msgobj_3718" = bitcast [125 x i8]* %"$msgobj_3718_salloc" to i8* + store i8 3, i8* %"$msgobj_3718", align 1 + %"$msgobj_fname_3720" = getelementptr i8, i8* %"$msgobj_3718", i32 1 + %"$msgobj_fname_3721" = bitcast i8* %"$msgobj_fname_3720" to %String* + store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_3719", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_3721", align 8 + %"$msgobj_td_3722" = getelementptr i8, i8* %"$msgobj_3718", i32 17 + %"$msgobj_td_3723" = bitcast i8* %"$msgobj_td_3722" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_114", %_TyDescrTy_Typ** %"$msgobj_td_3723", align 8 + %"$support_contract_3724" = load [20 x i8], [20 x i8]* @_cparam_support_contract, align 1 + %"$msgobj_v_3725" = getelementptr i8, i8* %"$msgobj_3718", i32 25 + %"$msgobj_v_3726" = bitcast i8* %"$msgobj_v_3725" to [20 x i8]* + store [20 x i8] %"$support_contract_3724", [20 x i8]* %"$msgobj_v_3726", align 1 + %"$msgobj_fname_3728" = getelementptr i8, i8* %"$msgobj_3718", i32 45 + %"$msgobj_fname_3729" = bitcast i8* %"$msgobj_fname_3728" to %String* + store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_3727", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_3729", align 8 + %"$msgobj_td_3730" = getelementptr i8, i8* %"$msgobj_3718", i32 61 + %"$msgobj_td_3731" = bitcast i8* %"$msgobj_td_3730" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_String_100", %_TyDescrTy_Typ** %"$msgobj_td_3731", align 8 + %"$msgobj_v_3733" = getelementptr i8, i8* %"$msgobj_3718", i32 69 + %"$msgobj_v_3734" = bitcast i8* %"$msgobj_v_3733" to %String* + store %String { i8* getelementptr inbounds ([27 x i8], [27 x i8]* @"$stringlit_3732", i32 0, i32 0), i32 27 }, %String* %"$msgobj_v_3734", align 8 + %"$msgobj_fname_3736" = getelementptr i8, i8* %"$msgobj_3718", i32 85 + %"$msgobj_fname_3737" = bitcast i8* %"$msgobj_fname_3736" to %String* + store %String { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$stringlit_3735", i32 0, i32 0), i32 7 }, %String* %"$msgobj_fname_3737", align 8 + %"$msgobj_td_3738" = getelementptr i8, i8* %"$msgobj_3718", i32 101 + %"$msgobj_td_3739" = bitcast i8* %"$msgobj_td_3738" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Uint128_94", %_TyDescrTy_Typ** %"$msgobj_td_3739", align 8 + %"$amount_3740" = load %Uint128, %Uint128* %amount, align 8 + %"$msgobj_v_3741" = getelementptr i8, i8* %"$msgobj_3718", i32 109 + %"$msgobj_v_3742" = bitcast i8* %"$msgobj_v_3741" to %Uint128* + store %Uint128 %"$amount_3740", %Uint128* %"$msgobj_v_3742", align 8 + store i8* %"$msgobj_3718", i8** %msg1, align 8, !dbg !664 + %"$gasrem_3744" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3745" = icmp ugt i64 1, %"$gasrem_3744" + br i1 %"$gascmp_3745", label %"$out_of_gas_3746", label %"$have_gas_3747" + +"$out_of_gas_3746": ; preds = %"$have_gas_3716" + call void @_out_of_gas() + br label %"$have_gas_3747" + +"$have_gas_3747": ; preds = %"$out_of_gas_3746", %"$have_gas_3716" + %"$consume_3748" = sub i64 %"$gasrem_3744", 1 + store i64 %"$consume_3748", i64* @_gasrem, align 8 %msgs = alloca %TName_List_Message*, align 8 - %"$gasrem_3670" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3671" = icmp ugt i64 1, %"$gasrem_3670" - br i1 %"$gascmp_3671", label %"$out_of_gas_3672", label %"$have_gas_3673" + call void @llvm.dbg.declare(metadata %TName_List_Message** %msgs, metadata !665, metadata !DIExpression()), !dbg !666 + %"$gasrem_3749" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3750" = icmp ugt i64 1, %"$gasrem_3749" + br i1 %"$gascmp_3750", label %"$out_of_gas_3751", label %"$have_gas_3752" -"$out_of_gas_3672": ; preds = %"$have_gas_3668" +"$out_of_gas_3751": ; preds = %"$have_gas_3747" call void @_out_of_gas() - br label %"$have_gas_3673" + br label %"$have_gas_3752" -"$have_gas_3673": ; preds = %"$out_of_gas_3672", %"$have_gas_3668" - %"$consume_3674" = sub i64 %"$gasrem_3670", 1 - store i64 %"$consume_3674", i64* @_gasrem, align 8 +"$have_gas_3752": ; preds = %"$out_of_gas_3751", %"$have_gas_3747" + %"$consume_3753" = sub i64 %"$gasrem_3749", 1 + store i64 %"$consume_3753", i64* @_gasrem, align 8 %"$accounting_tests.one_msg_41" = alloca %TName_List_Message*, align 8 - %"$accounting_tests.one_msg_3675" = load { %TName_List_Message* (i8*, i8*)*, i8* }, { %TName_List_Message* (i8*, i8*)*, i8* }* @accounting_tests.one_msg, align 8 - %"$accounting_tests.one_msg_fptr_3676" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$accounting_tests.one_msg_3675", 0 - %"$accounting_tests.one_msg_envptr_3677" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$accounting_tests.one_msg_3675", 1 - %"$msg1_3678" = load i8*, i8** %msg1, align 8 - %"$accounting_tests.one_msg_call_3679" = call %TName_List_Message* %"$accounting_tests.one_msg_fptr_3676"(i8* %"$accounting_tests.one_msg_envptr_3677", i8* %"$msg1_3678"), !dbg !303 - store %TName_List_Message* %"$accounting_tests.one_msg_call_3679", %TName_List_Message** %"$accounting_tests.one_msg_41", align 8, !dbg !303 - %"$$accounting_tests.one_msg_41_3680" = load %TName_List_Message*, %TName_List_Message** %"$accounting_tests.one_msg_41", align 8 - store %TName_List_Message* %"$$accounting_tests.one_msg_41_3680", %TName_List_Message** %msgs, align 8, !dbg !303 - %"$msgs_3681" = load %TName_List_Message*, %TName_List_Message** %msgs, align 8 - %"$$msgs_3681_3682" = bitcast %TName_List_Message* %"$msgs_3681" to i8* - %"$_literal_cost_call_3683" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_120", i8* %"$$msgs_3681_3682") - %"$gasrem_3684" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3685" = icmp ugt i64 %"$_literal_cost_call_3683", %"$gasrem_3684" - br i1 %"$gascmp_3685", label %"$out_of_gas_3686", label %"$have_gas_3687" - -"$out_of_gas_3686": ; preds = %"$have_gas_3673" - call void @_out_of_gas() - br label %"$have_gas_3687" - -"$have_gas_3687": ; preds = %"$out_of_gas_3686", %"$have_gas_3673" - %"$consume_3688" = sub i64 %"$gasrem_3684", %"$_literal_cost_call_3683" - store i64 %"$consume_3688", i64* @_gasrem, align 8 - %"$execptr_load_3689" = load i8*, i8** @_execptr, align 8 - %"$msgs_3690" = load %TName_List_Message*, %TName_List_Message** %msgs, align 8 - call void @_send(i8* %"$execptr_load_3689", %_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_120", %TName_List_Message* %"$msgs_3690"), !dbg !304 + call void @llvm.dbg.declare(metadata %TName_List_Message** %"$accounting_tests.one_msg_41", metadata !667, metadata !DIExpression()), !dbg !668 + %"$accounting_tests.one_msg_3754" = load { %TName_List_Message* (i8*, i8*)*, i8* }, { %TName_List_Message* (i8*, i8*)*, i8* }* @accounting_tests.one_msg, align 8 + %"$accounting_tests.one_msg_fptr_3755" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$accounting_tests.one_msg_3754", 0 + %"$accounting_tests.one_msg_envptr_3756" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$accounting_tests.one_msg_3754", 1 + %"$msg1_3757" = load i8*, i8** %msg1, align 8 + %"$accounting_tests.one_msg_call_3758" = call %TName_List_Message* %"$accounting_tests.one_msg_fptr_3755"(i8* %"$accounting_tests.one_msg_envptr_3756", i8* %"$msg1_3757"), !dbg !668 + store %TName_List_Message* %"$accounting_tests.one_msg_call_3758", %TName_List_Message** %"$accounting_tests.one_msg_41", align 8, !dbg !668 + %"$$accounting_tests.one_msg_41_3759" = load %TName_List_Message*, %TName_List_Message** %"$accounting_tests.one_msg_41", align 8 + store %TName_List_Message* %"$$accounting_tests.one_msg_41_3759", %TName_List_Message** %msgs, align 8, !dbg !668 + %"$msgs_3760" = load %TName_List_Message*, %TName_List_Message** %msgs, align 8 + %"$$msgs_3760_3761" = bitcast %TName_List_Message* %"$msgs_3760" to i8* + %"$_literal_cost_call_3762" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_120", i8* %"$$msgs_3760_3761") + %"$gasrem_3763" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3764" = icmp ugt i64 %"$_literal_cost_call_3762", %"$gasrem_3763" + br i1 %"$gascmp_3764", label %"$out_of_gas_3765", label %"$have_gas_3766" + +"$out_of_gas_3765": ; preds = %"$have_gas_3752" + call void @_out_of_gas() + br label %"$have_gas_3766" + +"$have_gas_3766": ; preds = %"$out_of_gas_3765", %"$have_gas_3752" + %"$consume_3767" = sub i64 %"$gasrem_3763", %"$_literal_cost_call_3762" + store i64 %"$consume_3767", i64* @_gasrem, align 8 + %"$execptr_load_3768" = load i8*, i8** @_execptr, align 8 + %"$msgs_3769" = load %TName_List_Message*, %TName_List_Message** %msgs, align 8 + call void @_send(i8* %"$execptr_load_3768", %_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_120", %TName_List_Message* %"$msgs_3769"), !dbg !669 ret void } -define void @Test_Send_10(i8* %0) !dbg !305 { +define void @Test_Send_10(i8* %0) !dbg !670 { entry: - %"$_amount_3692" = getelementptr i8, i8* %0, i32 0 - %"$_amount_3693" = bitcast i8* %"$_amount_3692" to %Uint128* - %_amount = load %Uint128, %Uint128* %"$_amount_3693", align 8 - %"$_origin_3694" = getelementptr i8, i8* %0, i32 16 - %"$_origin_3695" = bitcast i8* %"$_origin_3694" to [20 x i8]* - %"$_sender_3696" = getelementptr i8, i8* %0, i32 36 - %"$_sender_3697" = bitcast i8* %"$_sender_3696" to [20 x i8]* - call void @"$Test_Send_10_3604"(%Uint128 %_amount, [20 x i8]* %"$_origin_3695", [20 x i8]* %"$_sender_3697"), !dbg !306 + %"$_amount_3774" = getelementptr i8, i8* %0, i32 0 + %"$_amount_3775" = bitcast i8* %"$_amount_3774" to %Uint128* + %_amount = load %Uint128, %Uint128* %"$_amount_3775", align 8 + %"$_origin_3776" = getelementptr i8, i8* %0, i32 16 + %"$_origin_3777" = bitcast i8* %"$_origin_3776" to [20 x i8]* + %"$_sender_3778" = getelementptr i8, i8* %0, i32 36 + %"$_sender_3779" = bitcast i8* %"$_sender_3778" to [20 x i8]* + call void @"$Test_Send_10_3683"(%Uint128 %_amount, [20 x i8]* %"$_origin_3777", [20 x i8]* %"$_sender_3779"), !dbg !671 ret void } -define internal void @"$Test_Send_11_3698"(%Uint128 %_amount, [20 x i8]* %"$_origin_3699", [20 x i8]* %"$_sender_3700") !dbg !307 { +define internal void @"$Test_Send_11_3780"(%Uint128 %_amount, [20 x i8]* %"$_origin_3781", [20 x i8]* %"$_sender_3782") !dbg !672 { entry: - %_origin = load [20 x i8], [20 x i8]* %"$_origin_3699", align 1 - %_sender = load [20 x i8], [20 x i8]* %"$_sender_3700", align 1 - %"$gasrem_3701" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3702" = icmp ugt i64 1, %"$gasrem_3701" - br i1 %"$gascmp_3702", label %"$out_of_gas_3703", label %"$have_gas_3704" - -"$out_of_gas_3703": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_3704" - -"$have_gas_3704": ; preds = %"$out_of_gas_3703", %entry - %"$consume_3705" = sub i64 %"$gasrem_3701", 1 - store i64 %"$consume_3705", i64* @_gasrem, align 8 - %"$AssertReset__origin_3706" = alloca [20 x i8], align 1 - store [20 x i8] %_origin, [20 x i8]* %"$AssertReset__origin_3706", align 1 - %"$AssertReset__sender_3707" = alloca [20 x i8], align 1 - store [20 x i8] %_sender, [20 x i8]* %"$AssertReset__sender_3707", align 1 - call void @"$AssertReset_855"(%Uint128 %_amount, [20 x i8]* %"$AssertReset__origin_3706", [20 x i8]* %"$AssertReset__sender_3707"), !dbg !308 + %"$_sender_3869" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_sender_3782", [20 x i8]** %"$_sender_3869", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_sender_3869", metadata !673, metadata !DIExpression()), !dbg !674 + %"$_origin_3868" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_origin_3781", [20 x i8]** %"$_origin_3868", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_origin_3868", metadata !675, metadata !DIExpression()), !dbg !674 + %"$_amount_3867" = alloca %Uint128, align 8 + store %Uint128 %_amount, %Uint128* %"$_amount_3867", align 8 + call void @llvm.dbg.declare(metadata %Uint128* %"$_amount_3867", metadata !676, metadata !DIExpression()), !dbg !674 + %_origin = load [20 x i8], [20 x i8]* %"$_origin_3781", align 1 + %_sender = load [20 x i8], [20 x i8]* %"$_sender_3782", align 1 + %"$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_3785": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_3786" + +"$have_gas_3786": ; preds = %"$out_of_gas_3785", %entry + %"$consume_3787" = sub i64 %"$gasrem_3783", 1 + store i64 %"$consume_3787", i64* @_gasrem, align 8 + %"$AssertReset__origin_3788" = alloca [20 x i8], align 1 + store [20 x i8] %_origin, [20 x i8]* %"$AssertReset__origin_3788", align 1 + %"$AssertReset__sender_3789" = alloca [20 x i8], align 1 + store [20 x i8] %_sender, [20 x i8]* %"$AssertReset__sender_3789", align 1 + call void @"$AssertReset_869"(%Uint128 %_amount, [20 x i8]* %"$AssertReset__origin_3788", [20 x i8]* %"$AssertReset__sender_3789"), !dbg !677 %amount = alloca %Uint128, align 8 - %"$execptr_load_3709" = load i8*, i8** @_execptr, align 8 - %"$amount_call_3710" = call i8* @_fetch_field(i8* %"$execptr_load_3709", i8* getelementptr inbounds ([16 x i8], [16 x i8]* @"$outgoing_amount_3708", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Uint128_94", i32 0, i8* null, i32 1), !dbg !309 - %"$amount_3711" = bitcast i8* %"$amount_call_3710" to %Uint128* - %"$amount_3712" = load %Uint128, %Uint128* %"$amount_3711", align 8 - store %Uint128 %"$amount_3712", %Uint128* %amount, align 8 - %"$_literal_cost_amount_3713" = alloca %Uint128, align 8 - %"$amount_3714" = load %Uint128, %Uint128* %amount, align 8 - store %Uint128 %"$amount_3714", %Uint128* %"$_literal_cost_amount_3713", align 8 - %"$$_literal_cost_amount_3713_3715" = bitcast %Uint128* %"$_literal_cost_amount_3713" to i8* - %"$_literal_cost_call_3716" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Uint128_94", i8* %"$$_literal_cost_amount_3713_3715") - %"$gasadd_3717" = add i64 %"$_literal_cost_call_3716", 0 - %"$gasrem_3718" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3719" = icmp ugt i64 %"$gasadd_3717", %"$gasrem_3718" - br i1 %"$gascmp_3719", label %"$out_of_gas_3720", label %"$have_gas_3721" - -"$out_of_gas_3720": ; preds = %"$have_gas_3704" - call void @_out_of_gas() - br label %"$have_gas_3721" - -"$have_gas_3721": ; preds = %"$out_of_gas_3720", %"$have_gas_3704" - %"$consume_3722" = sub i64 %"$gasrem_3718", %"$gasadd_3717" - store i64 %"$consume_3722", i64* @_gasrem, align 8 - %"$gasrem_3723" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3724" = icmp ugt i64 1, %"$gasrem_3723" - br i1 %"$gascmp_3724", label %"$out_of_gas_3725", label %"$have_gas_3726" - -"$out_of_gas_3725": ; preds = %"$have_gas_3721" - call void @_out_of_gas() - br label %"$have_gas_3726" - -"$have_gas_3726": ; preds = %"$out_of_gas_3725", %"$have_gas_3721" - %"$consume_3727" = sub i64 %"$gasrem_3723", 1 - store i64 %"$consume_3727", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %Uint128* %amount, metadata !678, metadata !DIExpression()), !dbg !679 + %"$execptr_load_3791" = load i8*, i8** @_execptr, align 8 + %"$amount_call_3792" = call i8* @_fetch_field(i8* %"$execptr_load_3791", i8* getelementptr inbounds ([16 x i8], [16 x i8]* @"$outgoing_amount_3790", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Uint128_94", i32 0, i8* null, i32 1), !dbg !679 + %"$amount_3793" = bitcast i8* %"$amount_call_3792" to %Uint128* + %"$amount_3794" = load %Uint128, %Uint128* %"$amount_3793", align 8 + store %Uint128 %"$amount_3794", %Uint128* %amount, align 8 + %"$_literal_cost_amount_3795" = alloca %Uint128, align 8 + %"$amount_3796" = load %Uint128, %Uint128* %amount, align 8 + store %Uint128 %"$amount_3796", %Uint128* %"$_literal_cost_amount_3795", align 8 + %"$$_literal_cost_amount_3795_3797" = bitcast %Uint128* %"$_literal_cost_amount_3795" to i8* + %"$_literal_cost_call_3798" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Uint128_94", i8* %"$$_literal_cost_amount_3795_3797") + %"$gasadd_3799" = add i64 %"$_literal_cost_call_3798", 0 + %"$gasrem_3800" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3801" = icmp ugt i64 %"$gasadd_3799", %"$gasrem_3800" + br i1 %"$gascmp_3801", label %"$out_of_gas_3802", label %"$have_gas_3803" + +"$out_of_gas_3802": ; preds = %"$have_gas_3786" + call void @_out_of_gas() + br label %"$have_gas_3803" + +"$have_gas_3803": ; preds = %"$out_of_gas_3802", %"$have_gas_3786" + %"$consume_3804" = sub i64 %"$gasrem_3800", %"$gasadd_3799" + store i64 %"$consume_3804", i64* @_gasrem, 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_3807": ; preds = %"$have_gas_3803" + call void @_out_of_gas() + br label %"$have_gas_3808" + +"$have_gas_3808": ; preds = %"$out_of_gas_3807", %"$have_gas_3803" + %"$consume_3809" = sub i64 %"$gasrem_3805", 1 + store i64 %"$consume_3809", i64* @_gasrem, align 8 %msg1 = alloca i8*, align 8 - %"$gasrem_3728" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3729" = icmp ugt i64 1, %"$gasrem_3728" - br i1 %"$gascmp_3729", label %"$out_of_gas_3730", label %"$have_gas_3731" - -"$out_of_gas_3730": ; preds = %"$have_gas_3726" - call void @_out_of_gas() - br label %"$have_gas_3731" - -"$have_gas_3731": ; preds = %"$out_of_gas_3730", %"$have_gas_3726" - %"$consume_3732" = sub i64 %"$gasrem_3728", 1 - store i64 %"$consume_3732", i64* @_gasrem, align 8 - %"$msgobj_3733_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$msgobj_3733_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_3733_salloc_load", i64 125) - %"$msgobj_3733_salloc" = bitcast i8* %"$msgobj_3733_salloc_salloc" to [125 x i8]* - %"$msgobj_3733" = bitcast [125 x i8]* %"$msgobj_3733_salloc" to i8* - store i8 3, i8* %"$msgobj_3733", align 1 - %"$msgobj_fname_3735" = getelementptr i8, i8* %"$msgobj_3733", i32 1 - %"$msgobj_fname_3736" = bitcast i8* %"$msgobj_fname_3735" to %String* - store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_3734", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_3736", align 8 - %"$msgobj_td_3737" = getelementptr i8, i8* %"$msgobj_3733", i32 17 - %"$msgobj_td_3738" = bitcast i8* %"$msgobj_td_3737" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_114", %_TyDescrTy_Typ** %"$msgobj_td_3738", align 8 - %"$support_contract_3739" = load [20 x i8], [20 x i8]* @_cparam_support_contract, align 1 - %"$msgobj_v_3740" = getelementptr i8, i8* %"$msgobj_3733", i32 25 - %"$msgobj_v_3741" = bitcast i8* %"$msgobj_v_3740" to [20 x i8]* - store [20 x i8] %"$support_contract_3739", [20 x i8]* %"$msgobj_v_3741", align 1 - %"$msgobj_fname_3743" = getelementptr i8, i8* %"$msgobj_3733", i32 45 - %"$msgobj_fname_3744" = bitcast i8* %"$msgobj_fname_3743" to %String* - store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_3742", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_3744", align 8 - %"$msgobj_td_3745" = getelementptr i8, i8* %"$msgobj_3733", i32 61 - %"$msgobj_td_3746" = bitcast i8* %"$msgobj_td_3745" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_String_100", %_TyDescrTy_Typ** %"$msgobj_td_3746", align 8 - %"$msgobj_v_3748" = getelementptr i8, i8* %"$msgobj_3733", i32 69 - %"$msgobj_v_3749" = bitcast i8* %"$msgobj_v_3748" to %String* - store %String { i8* getelementptr inbounds ([26 x i8], [26 x i8]* @"$stringlit_3747", i32 0, i32 0), i32 26 }, %String* %"$msgobj_v_3749", align 8 - %"$msgobj_fname_3751" = getelementptr i8, i8* %"$msgobj_3733", i32 85 - %"$msgobj_fname_3752" = bitcast i8* %"$msgobj_fname_3751" to %String* - store %String { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$stringlit_3750", i32 0, i32 0), i32 7 }, %String* %"$msgobj_fname_3752", align 8 - %"$msgobj_td_3753" = getelementptr i8, i8* %"$msgobj_3733", i32 101 - %"$msgobj_td_3754" = bitcast i8* %"$msgobj_td_3753" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Uint128_94", %_TyDescrTy_Typ** %"$msgobj_td_3754", align 8 - %"$amount_3755" = load %Uint128, %Uint128* %amount, align 8 - %"$msgobj_v_3756" = getelementptr i8, i8* %"$msgobj_3733", i32 109 - %"$msgobj_v_3757" = bitcast i8* %"$msgobj_v_3756" to %Uint128* - store %Uint128 %"$amount_3755", %Uint128* %"$msgobj_v_3757", align 8 - store i8* %"$msgobj_3733", i8** %msg1, align 8, !dbg !310 - %"$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" - -"$out_of_gas_3761": ; preds = %"$have_gas_3731" - call void @_out_of_gas() - br label %"$have_gas_3762" - -"$have_gas_3762": ; preds = %"$out_of_gas_3761", %"$have_gas_3731" - %"$consume_3763" = sub i64 %"$gasrem_3759", 1 - store i64 %"$consume_3763", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata i8** %msg1, metadata !680, metadata !DIExpression()), !dbg !681 + %"$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_3812": ; preds = %"$have_gas_3808" + call void @_out_of_gas() + br label %"$have_gas_3813" + +"$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 + %"$msgobj_3815_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$msgobj_3815_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_3815_salloc_load", i64 125) + %"$msgobj_3815_salloc" = bitcast i8* %"$msgobj_3815_salloc_salloc" to [125 x i8]* + %"$msgobj_3815" = bitcast [125 x i8]* %"$msgobj_3815_salloc" to i8* + store i8 3, i8* %"$msgobj_3815", align 1 + %"$msgobj_fname_3817" = getelementptr i8, i8* %"$msgobj_3815", i32 1 + %"$msgobj_fname_3818" = bitcast i8* %"$msgobj_fname_3817" to %String* + store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_3816", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_3818", align 8 + %"$msgobj_td_3819" = getelementptr i8, i8* %"$msgobj_3815", i32 17 + %"$msgobj_td_3820" = bitcast i8* %"$msgobj_td_3819" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_114", %_TyDescrTy_Typ** %"$msgobj_td_3820", align 8 + %"$support_contract_3821" = load [20 x i8], [20 x i8]* @_cparam_support_contract, align 1 + %"$msgobj_v_3822" = getelementptr i8, i8* %"$msgobj_3815", i32 25 + %"$msgobj_v_3823" = bitcast i8* %"$msgobj_v_3822" to [20 x i8]* + store [20 x i8] %"$support_contract_3821", [20 x i8]* %"$msgobj_v_3823", align 1 + %"$msgobj_fname_3825" = getelementptr i8, i8* %"$msgobj_3815", i32 45 + %"$msgobj_fname_3826" = bitcast i8* %"$msgobj_fname_3825" to %String* + store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_3824", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_3826", align 8 + %"$msgobj_td_3827" = getelementptr i8, i8* %"$msgobj_3815", i32 61 + %"$msgobj_td_3828" = bitcast i8* %"$msgobj_td_3827" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_String_100", %_TyDescrTy_Typ** %"$msgobj_td_3828", align 8 + %"$msgobj_v_3830" = getelementptr i8, i8* %"$msgobj_3815", i32 69 + %"$msgobj_v_3831" = bitcast i8* %"$msgobj_v_3830" to %String* + store %String { i8* getelementptr inbounds ([26 x i8], [26 x i8]* @"$stringlit_3829", i32 0, i32 0), i32 26 }, %String* %"$msgobj_v_3831", align 8 + %"$msgobj_fname_3833" = getelementptr i8, i8* %"$msgobj_3815", i32 85 + %"$msgobj_fname_3834" = bitcast i8* %"$msgobj_fname_3833" to %String* + store %String { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$stringlit_3832", i32 0, i32 0), i32 7 }, %String* %"$msgobj_fname_3834", align 8 + %"$msgobj_td_3835" = getelementptr i8, i8* %"$msgobj_3815", i32 101 + %"$msgobj_td_3836" = bitcast i8* %"$msgobj_td_3835" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Uint128_94", %_TyDescrTy_Typ** %"$msgobj_td_3836", align 8 + %"$amount_3837" = load %Uint128, %Uint128* %amount, align 8 + %"$msgobj_v_3838" = getelementptr i8, i8* %"$msgobj_3815", i32 109 + %"$msgobj_v_3839" = bitcast i8* %"$msgobj_v_3838" to %Uint128* + store %Uint128 %"$amount_3837", %Uint128* %"$msgobj_v_3839", align 8 + store i8* %"$msgobj_3815", i8** %msg1, align 8, !dbg !682 + %"$gasrem_3841" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3842" = icmp ugt i64 1, %"$gasrem_3841" + br i1 %"$gascmp_3842", label %"$out_of_gas_3843", label %"$have_gas_3844" + +"$out_of_gas_3843": ; preds = %"$have_gas_3813" + call void @_out_of_gas() + br label %"$have_gas_3844" + +"$have_gas_3844": ; preds = %"$out_of_gas_3843", %"$have_gas_3813" + %"$consume_3845" = sub i64 %"$gasrem_3841", 1 + store i64 %"$consume_3845", i64* @_gasrem, align 8 %msgs = alloca %TName_List_Message*, 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" + call void @llvm.dbg.declare(metadata %TName_List_Message** %msgs, metadata !683, metadata !DIExpression()), !dbg !684 + %"$gasrem_3846" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3847" = icmp ugt i64 1, %"$gasrem_3846" + br i1 %"$gascmp_3847", label %"$out_of_gas_3848", label %"$have_gas_3849" -"$out_of_gas_3766": ; preds = %"$have_gas_3762" +"$out_of_gas_3848": ; preds = %"$have_gas_3844" call void @_out_of_gas() - br label %"$have_gas_3767" + br label %"$have_gas_3849" -"$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 +"$have_gas_3849": ; preds = %"$out_of_gas_3848", %"$have_gas_3844" + %"$consume_3850" = sub i64 %"$gasrem_3846", 1 + store i64 %"$consume_3850", i64* @_gasrem, align 8 %"$accounting_tests.one_msg_42" = alloca %TName_List_Message*, align 8 - %"$accounting_tests.one_msg_3769" = load { %TName_List_Message* (i8*, i8*)*, i8* }, { %TName_List_Message* (i8*, i8*)*, i8* }* @accounting_tests.one_msg, align 8 - %"$accounting_tests.one_msg_fptr_3770" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$accounting_tests.one_msg_3769", 0 - %"$accounting_tests.one_msg_envptr_3771" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$accounting_tests.one_msg_3769", 1 - %"$msg1_3772" = load i8*, i8** %msg1, align 8 - %"$accounting_tests.one_msg_call_3773" = call %TName_List_Message* %"$accounting_tests.one_msg_fptr_3770"(i8* %"$accounting_tests.one_msg_envptr_3771", i8* %"$msg1_3772"), !dbg !311 - store %TName_List_Message* %"$accounting_tests.one_msg_call_3773", %TName_List_Message** %"$accounting_tests.one_msg_42", align 8, !dbg !311 - %"$$accounting_tests.one_msg_42_3774" = load %TName_List_Message*, %TName_List_Message** %"$accounting_tests.one_msg_42", align 8 - store %TName_List_Message* %"$$accounting_tests.one_msg_42_3774", %TName_List_Message** %msgs, align 8, !dbg !311 - %"$msgs_3775" = load %TName_List_Message*, %TName_List_Message** %msgs, align 8 - %"$$msgs_3775_3776" = bitcast %TName_List_Message* %"$msgs_3775" to i8* - %"$_literal_cost_call_3777" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_120", i8* %"$$msgs_3775_3776") - %"$gasrem_3778" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3779" = icmp ugt i64 %"$_literal_cost_call_3777", %"$gasrem_3778" - br i1 %"$gascmp_3779", label %"$out_of_gas_3780", label %"$have_gas_3781" - -"$out_of_gas_3780": ; preds = %"$have_gas_3767" - call void @_out_of_gas() - br label %"$have_gas_3781" - -"$have_gas_3781": ; preds = %"$out_of_gas_3780", %"$have_gas_3767" - %"$consume_3782" = sub i64 %"$gasrem_3778", %"$_literal_cost_call_3777" - store i64 %"$consume_3782", i64* @_gasrem, align 8 - %"$execptr_load_3783" = load i8*, i8** @_execptr, align 8 - %"$msgs_3784" = load %TName_List_Message*, %TName_List_Message** %msgs, align 8 - call void @_send(i8* %"$execptr_load_3783", %_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_120", %TName_List_Message* %"$msgs_3784"), !dbg !312 + call void @llvm.dbg.declare(metadata %TName_List_Message** %"$accounting_tests.one_msg_42", metadata !685, metadata !DIExpression()), !dbg !686 + %"$accounting_tests.one_msg_3851" = load { %TName_List_Message* (i8*, i8*)*, i8* }, { %TName_List_Message* (i8*, i8*)*, i8* }* @accounting_tests.one_msg, align 8 + %"$accounting_tests.one_msg_fptr_3852" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$accounting_tests.one_msg_3851", 0 + %"$accounting_tests.one_msg_envptr_3853" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$accounting_tests.one_msg_3851", 1 + %"$msg1_3854" = load i8*, i8** %msg1, align 8 + %"$accounting_tests.one_msg_call_3855" = call %TName_List_Message* %"$accounting_tests.one_msg_fptr_3852"(i8* %"$accounting_tests.one_msg_envptr_3853", i8* %"$msg1_3854"), !dbg !686 + store %TName_List_Message* %"$accounting_tests.one_msg_call_3855", %TName_List_Message** %"$accounting_tests.one_msg_42", align 8, !dbg !686 + %"$$accounting_tests.one_msg_42_3856" = load %TName_List_Message*, %TName_List_Message** %"$accounting_tests.one_msg_42", align 8 + store %TName_List_Message* %"$$accounting_tests.one_msg_42_3856", %TName_List_Message** %msgs, align 8, !dbg !686 + %"$msgs_3857" = load %TName_List_Message*, %TName_List_Message** %msgs, align 8 + %"$$msgs_3857_3858" = bitcast %TName_List_Message* %"$msgs_3857" to i8* + %"$_literal_cost_call_3859" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_120", i8* %"$$msgs_3857_3858") + %"$gasrem_3860" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3861" = icmp ugt i64 %"$_literal_cost_call_3859", %"$gasrem_3860" + br i1 %"$gascmp_3861", label %"$out_of_gas_3862", label %"$have_gas_3863" + +"$out_of_gas_3862": ; preds = %"$have_gas_3849" + call void @_out_of_gas() + br label %"$have_gas_3863" + +"$have_gas_3863": ; preds = %"$out_of_gas_3862", %"$have_gas_3849" + %"$consume_3864" = sub i64 %"$gasrem_3860", %"$_literal_cost_call_3859" + store i64 %"$consume_3864", i64* @_gasrem, align 8 + %"$execptr_load_3865" = load i8*, i8** @_execptr, align 8 + %"$msgs_3866" = load %TName_List_Message*, %TName_List_Message** %msgs, align 8 + call void @_send(i8* %"$execptr_load_3865", %_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_120", %TName_List_Message* %"$msgs_3866"), !dbg !687 ret void } -define void @Test_Send_11(i8* %0) !dbg !313 { +define void @Test_Send_11(i8* %0) !dbg !688 { entry: - %"$_amount_3786" = getelementptr i8, i8* %0, i32 0 - %"$_amount_3787" = bitcast i8* %"$_amount_3786" to %Uint128* - %_amount = load %Uint128, %Uint128* %"$_amount_3787", align 8 - %"$_origin_3788" = getelementptr i8, i8* %0, i32 16 - %"$_origin_3789" = bitcast i8* %"$_origin_3788" to [20 x i8]* - %"$_sender_3790" = getelementptr i8, i8* %0, i32 36 - %"$_sender_3791" = bitcast i8* %"$_sender_3790" to [20 x i8]* - call void @"$Test_Send_11_3698"(%Uint128 %_amount, [20 x i8]* %"$_origin_3789", [20 x i8]* %"$_sender_3791"), !dbg !314 + %"$_amount_3871" = getelementptr i8, i8* %0, i32 0 + %"$_amount_3872" = bitcast i8* %"$_amount_3871" to %Uint128* + %_amount = load %Uint128, %Uint128* %"$_amount_3872", align 8 + %"$_origin_3873" = getelementptr i8, i8* %0, i32 16 + %"$_origin_3874" = bitcast i8* %"$_origin_3873" to [20 x i8]* + %"$_sender_3875" = getelementptr i8, i8* %0, i32 36 + %"$_sender_3876" = bitcast i8* %"$_sender_3875" to [20 x i8]* + call void @"$Test_Send_11_3780"(%Uint128 %_amount, [20 x i8]* %"$_origin_3874", [20 x i8]* %"$_sender_3876"), !dbg !689 ret void } -define internal void @"$Test_Send_12_3792"(%Uint128 %_amount, [20 x i8]* %"$_origin_3793", [20 x i8]* %"$_sender_3794") !dbg !315 { +define internal void @"$Test_Send_12_3877"(%Uint128 %_amount, [20 x i8]* %"$_origin_3878", [20 x i8]* %"$_sender_3879") !dbg !690 { entry: - %_origin = load [20 x i8], [20 x i8]* %"$_origin_3793", align 1 - %_sender = load [20 x i8], [20 x i8]* %"$_sender_3794", align 1 + %"$_sender_4057" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_sender_3879", [20 x i8]** %"$_sender_4057", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_sender_4057", metadata !691, metadata !DIExpression()), !dbg !692 + %"$_origin_4056" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_origin_3878", [20 x i8]** %"$_origin_4056", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_origin_4056", metadata !693, metadata !DIExpression()), !dbg !692 + %"$_amount_4055" = alloca %Uint128, align 8 + store %Uint128 %_amount, %Uint128* %"$_amount_4055", align 8 + call void @llvm.dbg.declare(metadata %Uint128* %"$_amount_4055", metadata !694, metadata !DIExpression()), !dbg !692 + %_origin = load [20 x i8], [20 x i8]* %"$_origin_3878", align 1 + %_sender = load [20 x i8], [20 x i8]* %"$_sender_3879", align 1 %amount = alloca %Uint128, align 8 - %"$execptr_load_3796" = load i8*, i8** @_execptr, align 8 - %"$amount_call_3797" = call i8* @_fetch_field(i8* %"$execptr_load_3796", i8* getelementptr inbounds ([16 x i8], [16 x i8]* @"$outgoing_amount_3795", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Uint128_94", i32 0, i8* null, i32 1), !dbg !316 - %"$amount_3798" = bitcast i8* %"$amount_call_3797" to %Uint128* - %"$amount_3799" = load %Uint128, %Uint128* %"$amount_3798", align 8 - store %Uint128 %"$amount_3799", %Uint128* %amount, align 8 - %"$_literal_cost_amount_3800" = alloca %Uint128, align 8 - %"$amount_3801" = load %Uint128, %Uint128* %amount, align 8 - store %Uint128 %"$amount_3801", %Uint128* %"$_literal_cost_amount_3800", align 8 - %"$$_literal_cost_amount_3800_3802" = bitcast %Uint128* %"$_literal_cost_amount_3800" to i8* - %"$_literal_cost_call_3803" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Uint128_94", i8* %"$$_literal_cost_amount_3800_3802") - %"$gasadd_3804" = add i64 %"$_literal_cost_call_3803", 0 - %"$gasrem_3805" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3806" = icmp ugt i64 %"$gasadd_3804", %"$gasrem_3805" - br i1 %"$gascmp_3806", label %"$out_of_gas_3807", label %"$have_gas_3808" - -"$out_of_gas_3807": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_3808" - -"$have_gas_3808": ; preds = %"$out_of_gas_3807", %entry - %"$consume_3809" = sub i64 %"$gasrem_3805", %"$gasadd_3804" - store i64 %"$consume_3809", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %Uint128* %amount, metadata !695, metadata !DIExpression()), !dbg !696 + %"$execptr_load_3881" = load i8*, i8** @_execptr, align 8 + %"$amount_call_3882" = call i8* @_fetch_field(i8* %"$execptr_load_3881", i8* getelementptr inbounds ([16 x i8], [16 x i8]* @"$outgoing_amount_3880", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Uint128_94", i32 0, i8* null, i32 1), !dbg !696 + %"$amount_3883" = bitcast i8* %"$amount_call_3882" to %Uint128* + %"$amount_3884" = load %Uint128, %Uint128* %"$amount_3883", align 8 + store %Uint128 %"$amount_3884", %Uint128* %amount, align 8 + %"$_literal_cost_amount_3885" = alloca %Uint128, align 8 + %"$amount_3886" = load %Uint128, %Uint128* %amount, align 8 + store %Uint128 %"$amount_3886", %Uint128* %"$_literal_cost_amount_3885", align 8 + %"$$_literal_cost_amount_3885_3887" = bitcast %Uint128* %"$_literal_cost_amount_3885" to i8* + %"$_literal_cost_call_3888" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Uint128_94", i8* %"$$_literal_cost_amount_3885_3887") + %"$gasadd_3889" = add i64 %"$_literal_cost_call_3888", 0 + %"$gasrem_3890" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3891" = icmp ugt i64 %"$gasadd_3889", %"$gasrem_3890" + br i1 %"$gascmp_3891", label %"$out_of_gas_3892", label %"$have_gas_3893" + +"$out_of_gas_3892": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_3893" + +"$have_gas_3893": ; preds = %"$out_of_gas_3892", %entry + %"$consume_3894" = sub i64 %"$gasrem_3890", %"$gasadd_3889" + store i64 %"$consume_3894", i64* @_gasrem, align 8 %bal = alloca %Uint128, align 8 - %"$execptr_load_3811" = load i8*, i8** @_execptr, align 8 - %"$bal_call_3812" = call i8* @_fetch_field(i8* %"$execptr_load_3811", i8* getelementptr inbounds ([9 x i8], [9 x i8]* @"$_balance_3810", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Uint128_94", i32 0, i8* null, i32 1), !dbg !317 - %"$bal_3813" = bitcast i8* %"$bal_call_3812" to %Uint128* - %"$bal_3814" = load %Uint128, %Uint128* %"$bal_3813", align 8 - store %Uint128 %"$bal_3814", %Uint128* %bal, align 8 - %"$_literal_cost_bal_3815" = alloca %Uint128, align 8 - %"$bal_3816" = load %Uint128, %Uint128* %bal, align 8 - store %Uint128 %"$bal_3816", %Uint128* %"$_literal_cost_bal_3815", align 8 - %"$$_literal_cost_bal_3815_3817" = bitcast %Uint128* %"$_literal_cost_bal_3815" to i8* - %"$_literal_cost_call_3818" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Uint128_94", i8* %"$$_literal_cost_bal_3815_3817") - %"$gasadd_3819" = add i64 %"$_literal_cost_call_3818", 0 - %"$gasrem_3820" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3821" = icmp ugt i64 %"$gasadd_3819", %"$gasrem_3820" - br i1 %"$gascmp_3821", label %"$out_of_gas_3822", label %"$have_gas_3823" - -"$out_of_gas_3822": ; preds = %"$have_gas_3808" - call void @_out_of_gas() - br label %"$have_gas_3823" - -"$have_gas_3823": ; preds = %"$out_of_gas_3822", %"$have_gas_3808" - %"$consume_3824" = sub i64 %"$gasrem_3820", %"$gasadd_3819" - store i64 %"$consume_3824", i64* @_gasrem, align 8 - %"$gasrem_3825" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3826" = icmp ugt i64 1, %"$gasrem_3825" - br i1 %"$gascmp_3826", label %"$out_of_gas_3827", label %"$have_gas_3828" - -"$out_of_gas_3827": ; preds = %"$have_gas_3823" - call void @_out_of_gas() - br label %"$have_gas_3828" - -"$have_gas_3828": ; preds = %"$out_of_gas_3827", %"$have_gas_3823" - %"$consume_3829" = sub i64 %"$gasrem_3825", 1 - store i64 %"$consume_3829", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %Uint128* %bal, metadata !697, metadata !DIExpression()), !dbg !698 + %"$execptr_load_3896" = load i8*, i8** @_execptr, align 8 + %"$bal_call_3897" = call i8* @_fetch_field(i8* %"$execptr_load_3896", i8* getelementptr inbounds ([9 x i8], [9 x i8]* @"$_balance_3895", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Uint128_94", i32 0, i8* null, i32 1), !dbg !698 + %"$bal_3898" = bitcast i8* %"$bal_call_3897" to %Uint128* + %"$bal_3899" = load %Uint128, %Uint128* %"$bal_3898", align 8 + store %Uint128 %"$bal_3899", %Uint128* %bal, align 8 + %"$_literal_cost_bal_3900" = alloca %Uint128, align 8 + %"$bal_3901" = load %Uint128, %Uint128* %bal, align 8 + store %Uint128 %"$bal_3901", %Uint128* %"$_literal_cost_bal_3900", align 8 + %"$$_literal_cost_bal_3900_3902" = bitcast %Uint128* %"$_literal_cost_bal_3900" to i8* + %"$_literal_cost_call_3903" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Uint128_94", i8* %"$$_literal_cost_bal_3900_3902") + %"$gasadd_3904" = add i64 %"$_literal_cost_call_3903", 0 + %"$gasrem_3905" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3906" = icmp ugt i64 %"$gasadd_3904", %"$gasrem_3905" + br i1 %"$gascmp_3906", label %"$out_of_gas_3907", label %"$have_gas_3908" + +"$out_of_gas_3907": ; preds = %"$have_gas_3893" + call void @_out_of_gas() + br label %"$have_gas_3908" + +"$have_gas_3908": ; preds = %"$out_of_gas_3907", %"$have_gas_3893" + %"$consume_3909" = sub i64 %"$gasrem_3905", %"$gasadd_3904" + store i64 %"$consume_3909", i64* @_gasrem, align 8 + %"$gasrem_3910" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3911" = icmp ugt i64 1, %"$gasrem_3910" + br i1 %"$gascmp_3911", label %"$out_of_gas_3912", label %"$have_gas_3913" + +"$out_of_gas_3912": ; preds = %"$have_gas_3908" + call void @_out_of_gas() + br label %"$have_gas_3913" + +"$have_gas_3913": ; preds = %"$out_of_gas_3912", %"$have_gas_3908" + %"$consume_3914" = sub i64 %"$gasrem_3910", 1 + store i64 %"$consume_3914", i64* @_gasrem, align 8 %msg1 = alloca i8*, align 8 - %"$gasrem_3830" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3831" = icmp ugt i64 1, %"$gasrem_3830" - br i1 %"$gascmp_3831", label %"$out_of_gas_3832", label %"$have_gas_3833" - -"$out_of_gas_3832": ; preds = %"$have_gas_3828" - call void @_out_of_gas() - br label %"$have_gas_3833" - -"$have_gas_3833": ; preds = %"$out_of_gas_3832", %"$have_gas_3828" - %"$consume_3834" = sub i64 %"$gasrem_3830", 1 - store i64 %"$consume_3834", i64* @_gasrem, align 8 - %"$msgobj_3835_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$msgobj_3835_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_3835_salloc_load", i64 125) - %"$msgobj_3835_salloc" = bitcast i8* %"$msgobj_3835_salloc_salloc" to [125 x i8]* - %"$msgobj_3835" = bitcast [125 x i8]* %"$msgobj_3835_salloc" to i8* - store i8 3, i8* %"$msgobj_3835", align 1 - %"$msgobj_fname_3837" = getelementptr i8, i8* %"$msgobj_3835", i32 1 - %"$msgobj_fname_3838" = bitcast i8* %"$msgobj_fname_3837" to %String* - store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_3836", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_3838", align 8 - %"$msgobj_td_3839" = getelementptr i8, i8* %"$msgobj_3835", i32 17 - %"$msgobj_td_3840" = bitcast i8* %"$msgobj_td_3839" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_114", %_TyDescrTy_Typ** %"$msgobj_td_3840", align 8 - %"$support_contract_3841" = load [20 x i8], [20 x i8]* @_cparam_support_contract, align 1 - %"$msgobj_v_3842" = getelementptr i8, i8* %"$msgobj_3835", i32 25 - %"$msgobj_v_3843" = bitcast i8* %"$msgobj_v_3842" to [20 x i8]* - store [20 x i8] %"$support_contract_3841", [20 x i8]* %"$msgobj_v_3843", align 1 - %"$msgobj_fname_3845" = getelementptr i8, i8* %"$msgobj_3835", i32 45 - %"$msgobj_fname_3846" = bitcast i8* %"$msgobj_fname_3845" to %String* - store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_3844", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_3846", align 8 - %"$msgobj_td_3847" = getelementptr i8, i8* %"$msgobj_3835", i32 61 - %"$msgobj_td_3848" = bitcast i8* %"$msgobj_td_3847" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_String_100", %_TyDescrTy_Typ** %"$msgobj_td_3848", align 8 - %"$msgobj_v_3850" = getelementptr i8, i8* %"$msgobj_3835", i32 69 - %"$msgobj_v_3851" = bitcast i8* %"$msgobj_v_3850" to %String* - store %String { i8* getelementptr inbounds ([26 x i8], [26 x i8]* @"$stringlit_3849", i32 0, i32 0), i32 26 }, %String* %"$msgobj_v_3851", align 8 - %"$msgobj_fname_3853" = getelementptr i8, i8* %"$msgobj_3835", i32 85 - %"$msgobj_fname_3854" = bitcast i8* %"$msgobj_fname_3853" to %String* - store %String { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$stringlit_3852", i32 0, i32 0), i32 7 }, %String* %"$msgobj_fname_3854", align 8 - %"$msgobj_td_3855" = getelementptr i8, i8* %"$msgobj_3835", i32 101 - %"$msgobj_td_3856" = bitcast i8* %"$msgobj_td_3855" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Uint128_94", %_TyDescrTy_Typ** %"$msgobj_td_3856", align 8 - %"$amount_3857" = load %Uint128, %Uint128* %amount, align 8 - %"$msgobj_v_3858" = getelementptr i8, i8* %"$msgobj_3835", i32 109 - %"$msgobj_v_3859" = bitcast i8* %"$msgobj_v_3858" to %Uint128* - store %Uint128 %"$amount_3857", %Uint128* %"$msgobj_v_3859", align 8 - store i8* %"$msgobj_3835", i8** %msg1, align 8, !dbg !318 - %"$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" - -"$out_of_gas_3863": ; preds = %"$have_gas_3833" - call void @_out_of_gas() - br label %"$have_gas_3864" - -"$have_gas_3864": ; preds = %"$out_of_gas_3863", %"$have_gas_3833" - %"$consume_3865" = sub i64 %"$gasrem_3861", 1 - store i64 %"$consume_3865", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata i8** %msg1, metadata !699, metadata !DIExpression()), !dbg !700 + %"$gasrem_3915" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3916" = icmp ugt i64 1, %"$gasrem_3915" + br i1 %"$gascmp_3916", label %"$out_of_gas_3917", label %"$have_gas_3918" + +"$out_of_gas_3917": ; preds = %"$have_gas_3913" + call void @_out_of_gas() + br label %"$have_gas_3918" + +"$have_gas_3918": ; preds = %"$out_of_gas_3917", %"$have_gas_3913" + %"$consume_3919" = sub i64 %"$gasrem_3915", 1 + store i64 %"$consume_3919", i64* @_gasrem, align 8 + %"$msgobj_3920_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$msgobj_3920_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_3920_salloc_load", i64 125) + %"$msgobj_3920_salloc" = bitcast i8* %"$msgobj_3920_salloc_salloc" to [125 x i8]* + %"$msgobj_3920" = bitcast [125 x i8]* %"$msgobj_3920_salloc" to i8* + store i8 3, i8* %"$msgobj_3920", align 1 + %"$msgobj_fname_3922" = getelementptr i8, i8* %"$msgobj_3920", i32 1 + %"$msgobj_fname_3923" = bitcast i8* %"$msgobj_fname_3922" to %String* + store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_3921", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_3923", align 8 + %"$msgobj_td_3924" = getelementptr i8, i8* %"$msgobj_3920", i32 17 + %"$msgobj_td_3925" = bitcast i8* %"$msgobj_td_3924" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_114", %_TyDescrTy_Typ** %"$msgobj_td_3925", align 8 + %"$support_contract_3926" = load [20 x i8], [20 x i8]* @_cparam_support_contract, align 1 + %"$msgobj_v_3927" = getelementptr i8, i8* %"$msgobj_3920", i32 25 + %"$msgobj_v_3928" = bitcast i8* %"$msgobj_v_3927" to [20 x i8]* + store [20 x i8] %"$support_contract_3926", [20 x i8]* %"$msgobj_v_3928", align 1 + %"$msgobj_fname_3930" = getelementptr i8, i8* %"$msgobj_3920", i32 45 + %"$msgobj_fname_3931" = bitcast i8* %"$msgobj_fname_3930" to %String* + store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_3929", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_3931", align 8 + %"$msgobj_td_3932" = getelementptr i8, i8* %"$msgobj_3920", i32 61 + %"$msgobj_td_3933" = bitcast i8* %"$msgobj_td_3932" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_String_100", %_TyDescrTy_Typ** %"$msgobj_td_3933", align 8 + %"$msgobj_v_3935" = getelementptr i8, i8* %"$msgobj_3920", i32 69 + %"$msgobj_v_3936" = bitcast i8* %"$msgobj_v_3935" to %String* + store %String { i8* getelementptr inbounds ([26 x i8], [26 x i8]* @"$stringlit_3934", i32 0, i32 0), i32 26 }, %String* %"$msgobj_v_3936", align 8 + %"$msgobj_fname_3938" = getelementptr i8, i8* %"$msgobj_3920", i32 85 + %"$msgobj_fname_3939" = bitcast i8* %"$msgobj_fname_3938" to %String* + store %String { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$stringlit_3937", i32 0, i32 0), i32 7 }, %String* %"$msgobj_fname_3939", align 8 + %"$msgobj_td_3940" = getelementptr i8, i8* %"$msgobj_3920", i32 101 + %"$msgobj_td_3941" = bitcast i8* %"$msgobj_td_3940" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Uint128_94", %_TyDescrTy_Typ** %"$msgobj_td_3941", align 8 + %"$amount_3942" = load %Uint128, %Uint128* %amount, align 8 + %"$msgobj_v_3943" = getelementptr i8, i8* %"$msgobj_3920", i32 109 + %"$msgobj_v_3944" = bitcast i8* %"$msgobj_v_3943" to %Uint128* + store %Uint128 %"$amount_3942", %Uint128* %"$msgobj_v_3944", align 8 + store i8* %"$msgobj_3920", i8** %msg1, align 8, !dbg !701 + %"$gasrem_3946" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3947" = icmp ugt i64 1, %"$gasrem_3946" + br i1 %"$gascmp_3947", label %"$out_of_gas_3948", label %"$have_gas_3949" + +"$out_of_gas_3948": ; preds = %"$have_gas_3918" + call void @_out_of_gas() + br label %"$have_gas_3949" + +"$have_gas_3949": ; preds = %"$out_of_gas_3948", %"$have_gas_3918" + %"$consume_3950" = sub i64 %"$gasrem_3946", 1 + store i64 %"$consume_3950", i64* @_gasrem, align 8 %msgs1 = alloca %TName_List_Message*, 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" + call void @llvm.dbg.declare(metadata %TName_List_Message** %msgs1, metadata !702, metadata !DIExpression()), !dbg !703 + %"$gasrem_3951" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3952" = icmp ugt i64 1, %"$gasrem_3951" + br i1 %"$gascmp_3952", label %"$out_of_gas_3953", label %"$have_gas_3954" -"$out_of_gas_3868": ; preds = %"$have_gas_3864" +"$out_of_gas_3953": ; preds = %"$have_gas_3949" call void @_out_of_gas() - br label %"$have_gas_3869" + br label %"$have_gas_3954" -"$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 +"$have_gas_3954": ; preds = %"$out_of_gas_3953", %"$have_gas_3949" + %"$consume_3955" = sub i64 %"$gasrem_3951", 1 + store i64 %"$consume_3955", i64* @_gasrem, align 8 %"$accounting_tests.one_msg_44" = alloca %TName_List_Message*, align 8 - %"$accounting_tests.one_msg_3871" = load { %TName_List_Message* (i8*, i8*)*, i8* }, { %TName_List_Message* (i8*, i8*)*, i8* }* @accounting_tests.one_msg, align 8 - %"$accounting_tests.one_msg_fptr_3872" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$accounting_tests.one_msg_3871", 0 - %"$accounting_tests.one_msg_envptr_3873" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$accounting_tests.one_msg_3871", 1 - %"$msg1_3874" = load i8*, i8** %msg1, align 8 - %"$accounting_tests.one_msg_call_3875" = call %TName_List_Message* %"$accounting_tests.one_msg_fptr_3872"(i8* %"$accounting_tests.one_msg_envptr_3873", i8* %"$msg1_3874"), !dbg !319 - store %TName_List_Message* %"$accounting_tests.one_msg_call_3875", %TName_List_Message** %"$accounting_tests.one_msg_44", align 8, !dbg !319 - %"$$accounting_tests.one_msg_44_3876" = load %TName_List_Message*, %TName_List_Message** %"$accounting_tests.one_msg_44", align 8 - store %TName_List_Message* %"$$accounting_tests.one_msg_44_3876", %TName_List_Message** %msgs1, align 8, !dbg !319 - %"$msgs1_3877" = load %TName_List_Message*, %TName_List_Message** %msgs1, align 8 - %"$$msgs1_3877_3878" = bitcast %TName_List_Message* %"$msgs1_3877" to i8* - %"$_literal_cost_call_3879" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_120", i8* %"$$msgs1_3877_3878") - %"$gasrem_3880" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3881" = icmp ugt i64 %"$_literal_cost_call_3879", %"$gasrem_3880" - br i1 %"$gascmp_3881", label %"$out_of_gas_3882", label %"$have_gas_3883" - -"$out_of_gas_3882": ; preds = %"$have_gas_3869" - call void @_out_of_gas() - br label %"$have_gas_3883" - -"$have_gas_3883": ; preds = %"$out_of_gas_3882", %"$have_gas_3869" - %"$consume_3884" = sub i64 %"$gasrem_3880", %"$_literal_cost_call_3879" - store i64 %"$consume_3884", i64* @_gasrem, align 8 - %"$execptr_load_3885" = load i8*, i8** @_execptr, align 8 - %"$msgs1_3886" = load %TName_List_Message*, %TName_List_Message** %msgs1, align 8 - call void @_send(i8* %"$execptr_load_3885", %_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_120", %TName_List_Message* %"$msgs1_3886"), !dbg !320 - %"$gasrem_3887" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3888" = icmp ugt i64 1, %"$gasrem_3887" - br i1 %"$gascmp_3888", label %"$out_of_gas_3889", label %"$have_gas_3890" - -"$out_of_gas_3889": ; preds = %"$have_gas_3883" - call void @_out_of_gas() - br label %"$have_gas_3890" - -"$have_gas_3890": ; preds = %"$out_of_gas_3889", %"$have_gas_3883" - %"$consume_3891" = sub i64 %"$gasrem_3887", 1 - store i64 %"$consume_3891", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_List_Message** %"$accounting_tests.one_msg_44", metadata !704, metadata !DIExpression()), !dbg !705 + %"$accounting_tests.one_msg_3956" = load { %TName_List_Message* (i8*, i8*)*, i8* }, { %TName_List_Message* (i8*, i8*)*, i8* }* @accounting_tests.one_msg, align 8 + %"$accounting_tests.one_msg_fptr_3957" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$accounting_tests.one_msg_3956", 0 + %"$accounting_tests.one_msg_envptr_3958" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$accounting_tests.one_msg_3956", 1 + %"$msg1_3959" = load i8*, i8** %msg1, align 8 + %"$accounting_tests.one_msg_call_3960" = call %TName_List_Message* %"$accounting_tests.one_msg_fptr_3957"(i8* %"$accounting_tests.one_msg_envptr_3958", i8* %"$msg1_3959"), !dbg !705 + store %TName_List_Message* %"$accounting_tests.one_msg_call_3960", %TName_List_Message** %"$accounting_tests.one_msg_44", align 8, !dbg !705 + %"$$accounting_tests.one_msg_44_3961" = load %TName_List_Message*, %TName_List_Message** %"$accounting_tests.one_msg_44", align 8 + store %TName_List_Message* %"$$accounting_tests.one_msg_44_3961", %TName_List_Message** %msgs1, align 8, !dbg !705 + %"$msgs1_3962" = load %TName_List_Message*, %TName_List_Message** %msgs1, align 8 + %"$$msgs1_3962_3963" = bitcast %TName_List_Message* %"$msgs1_3962" to i8* + %"$_literal_cost_call_3964" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_120", i8* %"$$msgs1_3962_3963") + %"$gasrem_3965" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3966" = icmp ugt i64 %"$_literal_cost_call_3964", %"$gasrem_3965" + br i1 %"$gascmp_3966", label %"$out_of_gas_3967", label %"$have_gas_3968" + +"$out_of_gas_3967": ; preds = %"$have_gas_3954" + call void @_out_of_gas() + br label %"$have_gas_3968" + +"$have_gas_3968": ; preds = %"$out_of_gas_3967", %"$have_gas_3954" + %"$consume_3969" = sub i64 %"$gasrem_3965", %"$_literal_cost_call_3964" + store i64 %"$consume_3969", i64* @_gasrem, align 8 + %"$execptr_load_3970" = load i8*, i8** @_execptr, align 8 + %"$msgs1_3971" = load %TName_List_Message*, %TName_List_Message** %msgs1, align 8 + call void @_send(i8* %"$execptr_load_3970", %_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_120", %TName_List_Message* %"$msgs1_3971"), !dbg !706 + %"$gasrem_3972" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3973" = icmp ugt i64 1, %"$gasrem_3972" + br i1 %"$gascmp_3973", label %"$out_of_gas_3974", label %"$have_gas_3975" + +"$out_of_gas_3974": ; preds = %"$have_gas_3968" + call void @_out_of_gas() + br label %"$have_gas_3975" + +"$have_gas_3975": ; preds = %"$out_of_gas_3974", %"$have_gas_3968" + %"$consume_3976" = sub i64 %"$gasrem_3972", 1 + store i64 %"$consume_3976", i64* @_gasrem, align 8 %expected_balance = alloca %Uint128, align 8 - %"$gasrem_3893" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3894" = icmp ugt i64 8, %"$gasrem_3893" - br i1 %"$gascmp_3894", label %"$out_of_gas_3895", label %"$have_gas_3896" + call void @llvm.dbg.declare(metadata %Uint128* %expected_balance, metadata !707, metadata !DIExpression()), !dbg !708 + %"$gasrem_3978" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3979" = icmp ugt i64 8, %"$gasrem_3978" + br i1 %"$gascmp_3979", label %"$out_of_gas_3980", label %"$have_gas_3981" -"$out_of_gas_3895": ; preds = %"$have_gas_3890" +"$out_of_gas_3980": ; preds = %"$have_gas_3975" call void @_out_of_gas() - br label %"$have_gas_3896" + br label %"$have_gas_3981" -"$have_gas_3896": ; preds = %"$out_of_gas_3895", %"$have_gas_3890" - %"$consume_3897" = sub i64 %"$gasrem_3893", 8 - store i64 %"$consume_3897", i64* @_gasrem, align 8 - %"$bal_3898" = load %Uint128, %Uint128* %bal, align 8 - %"$amount_3899" = load %Uint128, %Uint128* %amount, align 8 - %"$sub_call_3900" = call %Uint128 @_sub_Uint128(%Uint128 %"$bal_3898", %Uint128 %"$amount_3899"), !dbg !321 - store %Uint128 %"$sub_call_3900", %Uint128* %expected_balance, align 8, !dbg !321 - %"$gasrem_3901" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3902" = icmp ugt i64 1, %"$gasrem_3901" - br i1 %"$gascmp_3902", label %"$out_of_gas_3903", label %"$have_gas_3904" +"$have_gas_3981": ; preds = %"$out_of_gas_3980", %"$have_gas_3975" + %"$consume_3982" = sub i64 %"$gasrem_3978", 8 + store i64 %"$consume_3982", i64* @_gasrem, align 8 + %"$bal_3983" = load %Uint128, %Uint128* %bal, align 8 + %"$amount_3984" = load %Uint128, %Uint128* %amount, align 8 + %"$sub_call_3985" = call %Uint128 @_sub_Uint128(%Uint128 %"$bal_3983", %Uint128 %"$amount_3984"), !dbg !709 + store %Uint128 %"$sub_call_3985", %Uint128* %expected_balance, align 8, !dbg !709 + %"$gasrem_3986" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3987" = icmp ugt i64 1, %"$gasrem_3986" + br i1 %"$gascmp_3987", label %"$out_of_gas_3988", label %"$have_gas_3989" -"$out_of_gas_3903": ; preds = %"$have_gas_3896" +"$out_of_gas_3988": ; preds = %"$have_gas_3981" call void @_out_of_gas() - br label %"$have_gas_3904" + br label %"$have_gas_3989" -"$have_gas_3904": ; preds = %"$out_of_gas_3903", %"$have_gas_3896" - %"$consume_3905" = sub i64 %"$gasrem_3901", 1 - store i64 %"$consume_3905", i64* @_gasrem, align 8 +"$have_gas_3989": ; preds = %"$out_of_gas_3988", %"$have_gas_3981" + %"$consume_3990" = sub i64 %"$gasrem_3986", 1 + store i64 %"$consume_3990", i64* @_gasrem, align 8 %msg2 = alloca i8*, align 8 - %"$gasrem_3906" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3907" = icmp ugt i64 1, %"$gasrem_3906" - br i1 %"$gascmp_3907", label %"$out_of_gas_3908", label %"$have_gas_3909" - -"$out_of_gas_3908": ; preds = %"$have_gas_3904" - call void @_out_of_gas() - br label %"$have_gas_3909" - -"$have_gas_3909": ; preds = %"$out_of_gas_3908", %"$have_gas_3904" - %"$consume_3910" = sub i64 %"$gasrem_3906", 1 - store i64 %"$consume_3910", i64* @_gasrem, align 8 - %"$msgobj_3911_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$msgobj_3911_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_3911_salloc_load", i64 165) - %"$msgobj_3911_salloc" = bitcast i8* %"$msgobj_3911_salloc_salloc" to [165 x i8]* - %"$msgobj_3911" = bitcast [165 x i8]* %"$msgobj_3911_salloc" to i8* - store i8 4, i8* %"$msgobj_3911", align 1 - %"$msgobj_fname_3913" = getelementptr i8, i8* %"$msgobj_3911", i32 1 - %"$msgobj_fname_3914" = bitcast i8* %"$msgobj_fname_3913" to %String* - store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_3912", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_3914", align 8 - %"$msgobj_td_3915" = getelementptr i8, i8* %"$msgobj_3911", i32 17 - %"$msgobj_td_3916" = bitcast i8* %"$msgobj_td_3915" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_114", %_TyDescrTy_Typ** %"$msgobj_td_3916", align 8 - %"$_this_address_3917" = load [20 x i8], [20 x i8]* @_cparam__this_address, align 1 - %"$msgobj_v_3918" = getelementptr i8, i8* %"$msgobj_3911", i32 25 - %"$msgobj_v_3919" = bitcast i8* %"$msgobj_v_3918" to [20 x i8]* - store [20 x i8] %"$_this_address_3917", [20 x i8]* %"$msgobj_v_3919", align 1 - %"$msgobj_fname_3921" = getelementptr i8, i8* %"$msgobj_3911", i32 45 - %"$msgobj_fname_3922" = bitcast i8* %"$msgobj_fname_3921" to %String* - store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_3920", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_3922", align 8 - %"$msgobj_td_3923" = getelementptr i8, i8* %"$msgobj_3911", i32 61 - %"$msgobj_td_3924" = bitcast i8* %"$msgobj_td_3923" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_String_100", %_TyDescrTy_Typ** %"$msgobj_td_3924", align 8 - %"$msgobj_v_3926" = getelementptr i8, i8* %"$msgobj_3911", i32 69 - %"$msgobj_v_3927" = bitcast i8* %"$msgobj_v_3926" to %String* - store %String { i8* getelementptr inbounds ([18 x i8], [18 x i8]* @"$stringlit_3925", i32 0, i32 0), i32 18 }, %String* %"$msgobj_v_3927", align 8 - %"$msgobj_fname_3929" = getelementptr i8, i8* %"$msgobj_3911", i32 85 - %"$msgobj_fname_3930" = bitcast i8* %"$msgobj_fname_3929" to %String* - store %String { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$stringlit_3928", i32 0, i32 0), i32 7 }, %String* %"$msgobj_fname_3930", align 8 - %"$msgobj_td_3931" = getelementptr i8, i8* %"$msgobj_3911", i32 101 - %"$msgobj_td_3932" = bitcast i8* %"$msgobj_td_3931" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Uint128_94", %_TyDescrTy_Typ** %"$msgobj_td_3932", align 8 - %"$msgobj_v_3933" = getelementptr i8, i8* %"$msgobj_3911", i32 109 - %"$msgobj_v_3934" = bitcast i8* %"$msgobj_v_3933" to %Uint128* - store %Uint128 zeroinitializer, %Uint128* %"$msgobj_v_3934", align 8 - %"$msgobj_fname_3936" = getelementptr i8, i8* %"$msgobj_3911", i32 125 - %"$msgobj_fname_3937" = bitcast i8* %"$msgobj_fname_3936" to %String* - store %String { i8* getelementptr inbounds ([16 x i8], [16 x i8]* @"$stringlit_3935", i32 0, i32 0), i32 16 }, %String* %"$msgobj_fname_3937", align 8 - %"$msgobj_td_3938" = getelementptr i8, i8* %"$msgobj_3911", i32 141 - %"$msgobj_td_3939" = bitcast i8* %"$msgobj_td_3938" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Uint128_94", %_TyDescrTy_Typ** %"$msgobj_td_3939", align 8 - %"$expected_balance_3940" = load %Uint128, %Uint128* %expected_balance, align 8 - %"$msgobj_v_3941" = getelementptr i8, i8* %"$msgobj_3911", i32 149 - %"$msgobj_v_3942" = bitcast i8* %"$msgobj_v_3941" to %Uint128* - store %Uint128 %"$expected_balance_3940", %Uint128* %"$msgobj_v_3942", align 8 - store i8* %"$msgobj_3911", i8** %msg2, align 8, !dbg !322 - %"$gasrem_3944" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3945" = icmp ugt i64 1, %"$gasrem_3944" - br i1 %"$gascmp_3945", label %"$out_of_gas_3946", label %"$have_gas_3947" - -"$out_of_gas_3946": ; preds = %"$have_gas_3909" - call void @_out_of_gas() - br label %"$have_gas_3947" - -"$have_gas_3947": ; preds = %"$out_of_gas_3946", %"$have_gas_3909" - %"$consume_3948" = sub i64 %"$gasrem_3944", 1 - store i64 %"$consume_3948", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata i8** %msg2, metadata !710, metadata !DIExpression()), !dbg !711 + %"$gasrem_3991" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3992" = icmp ugt i64 1, %"$gasrem_3991" + br i1 %"$gascmp_3992", label %"$out_of_gas_3993", label %"$have_gas_3994" + +"$out_of_gas_3993": ; preds = %"$have_gas_3989" + call void @_out_of_gas() + br label %"$have_gas_3994" + +"$have_gas_3994": ; preds = %"$out_of_gas_3993", %"$have_gas_3989" + %"$consume_3995" = sub i64 %"$gasrem_3991", 1 + store i64 %"$consume_3995", i64* @_gasrem, align 8 + %"$msgobj_3996_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$msgobj_3996_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_3996_salloc_load", i64 165) + %"$msgobj_3996_salloc" = bitcast i8* %"$msgobj_3996_salloc_salloc" to [165 x i8]* + %"$msgobj_3996" = bitcast [165 x i8]* %"$msgobj_3996_salloc" to i8* + store i8 4, i8* %"$msgobj_3996", align 1 + %"$msgobj_fname_3998" = getelementptr i8, i8* %"$msgobj_3996", i32 1 + %"$msgobj_fname_3999" = bitcast i8* %"$msgobj_fname_3998" to %String* + store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_3997", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_3999", align 8 + %"$msgobj_td_4000" = getelementptr i8, i8* %"$msgobj_3996", i32 17 + %"$msgobj_td_4001" = bitcast i8* %"$msgobj_td_4000" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_114", %_TyDescrTy_Typ** %"$msgobj_td_4001", align 8 + %"$_this_address_4002" = load [20 x i8], [20 x i8]* @_cparam__this_address, align 1 + %"$msgobj_v_4003" = getelementptr i8, i8* %"$msgobj_3996", i32 25 + %"$msgobj_v_4004" = bitcast i8* %"$msgobj_v_4003" to [20 x i8]* + store [20 x i8] %"$_this_address_4002", [20 x i8]* %"$msgobj_v_4004", align 1 + %"$msgobj_fname_4006" = getelementptr i8, i8* %"$msgobj_3996", i32 45 + %"$msgobj_fname_4007" = bitcast i8* %"$msgobj_fname_4006" to %String* + store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_4005", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_4007", align 8 + %"$msgobj_td_4008" = getelementptr i8, i8* %"$msgobj_3996", i32 61 + %"$msgobj_td_4009" = bitcast i8* %"$msgobj_td_4008" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_String_100", %_TyDescrTy_Typ** %"$msgobj_td_4009", align 8 + %"$msgobj_v_4011" = getelementptr i8, i8* %"$msgobj_3996", i32 69 + %"$msgobj_v_4012" = bitcast i8* %"$msgobj_v_4011" to %String* + store %String { i8* getelementptr inbounds ([18 x i8], [18 x i8]* @"$stringlit_4010", i32 0, i32 0), i32 18 }, %String* %"$msgobj_v_4012", align 8 + %"$msgobj_fname_4014" = getelementptr i8, i8* %"$msgobj_3996", i32 85 + %"$msgobj_fname_4015" = bitcast i8* %"$msgobj_fname_4014" to %String* + store %String { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$stringlit_4013", i32 0, i32 0), i32 7 }, %String* %"$msgobj_fname_4015", align 8 + %"$msgobj_td_4016" = getelementptr i8, i8* %"$msgobj_3996", i32 101 + %"$msgobj_td_4017" = bitcast i8* %"$msgobj_td_4016" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Uint128_94", %_TyDescrTy_Typ** %"$msgobj_td_4017", align 8 + %"$msgobj_v_4018" = getelementptr i8, i8* %"$msgobj_3996", i32 109 + %"$msgobj_v_4019" = bitcast i8* %"$msgobj_v_4018" to %Uint128* + store %Uint128 zeroinitializer, %Uint128* %"$msgobj_v_4019", align 8 + %"$msgobj_fname_4021" = getelementptr i8, i8* %"$msgobj_3996", i32 125 + %"$msgobj_fname_4022" = bitcast i8* %"$msgobj_fname_4021" to %String* + store %String { i8* getelementptr inbounds ([16 x i8], [16 x i8]* @"$stringlit_4020", i32 0, i32 0), i32 16 }, %String* %"$msgobj_fname_4022", align 8 + %"$msgobj_td_4023" = getelementptr i8, i8* %"$msgobj_3996", i32 141 + %"$msgobj_td_4024" = bitcast i8* %"$msgobj_td_4023" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Uint128_94", %_TyDescrTy_Typ** %"$msgobj_td_4024", align 8 + %"$expected_balance_4025" = load %Uint128, %Uint128* %expected_balance, align 8 + %"$msgobj_v_4026" = getelementptr i8, i8* %"$msgobj_3996", i32 149 + %"$msgobj_v_4027" = bitcast i8* %"$msgobj_v_4026" to %Uint128* + store %Uint128 %"$expected_balance_4025", %Uint128* %"$msgobj_v_4027", align 8 + store i8* %"$msgobj_3996", i8** %msg2, align 8, !dbg !712 + %"$gasrem_4029" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4030" = icmp ugt i64 1, %"$gasrem_4029" + br i1 %"$gascmp_4030", label %"$out_of_gas_4031", label %"$have_gas_4032" + +"$out_of_gas_4031": ; preds = %"$have_gas_3994" + call void @_out_of_gas() + br label %"$have_gas_4032" + +"$have_gas_4032": ; preds = %"$out_of_gas_4031", %"$have_gas_3994" + %"$consume_4033" = sub i64 %"$gasrem_4029", 1 + store i64 %"$consume_4033", i64* @_gasrem, align 8 %msgs2 = alloca %TName_List_Message*, align 8 - %"$gasrem_3949" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3950" = icmp ugt i64 1, %"$gasrem_3949" - br i1 %"$gascmp_3950", label %"$out_of_gas_3951", label %"$have_gas_3952" + call void @llvm.dbg.declare(metadata %TName_List_Message** %msgs2, metadata !713, metadata !DIExpression()), !dbg !714 + %"$gasrem_4034" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4035" = icmp ugt i64 1, %"$gasrem_4034" + br i1 %"$gascmp_4035", label %"$out_of_gas_4036", label %"$have_gas_4037" -"$out_of_gas_3951": ; preds = %"$have_gas_3947" +"$out_of_gas_4036": ; preds = %"$have_gas_4032" call void @_out_of_gas() - br label %"$have_gas_3952" + br label %"$have_gas_4037" -"$have_gas_3952": ; preds = %"$out_of_gas_3951", %"$have_gas_3947" - %"$consume_3953" = sub i64 %"$gasrem_3949", 1 - store i64 %"$consume_3953", i64* @_gasrem, align 8 +"$have_gas_4037": ; preds = %"$out_of_gas_4036", %"$have_gas_4032" + %"$consume_4038" = sub i64 %"$gasrem_4034", 1 + store i64 %"$consume_4038", i64* @_gasrem, align 8 %"$accounting_tests.one_msg_43" = alloca %TName_List_Message*, align 8 - %"$accounting_tests.one_msg_3954" = load { %TName_List_Message* (i8*, i8*)*, i8* }, { %TName_List_Message* (i8*, i8*)*, i8* }* @accounting_tests.one_msg, align 8 - %"$accounting_tests.one_msg_fptr_3955" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$accounting_tests.one_msg_3954", 0 - %"$accounting_tests.one_msg_envptr_3956" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$accounting_tests.one_msg_3954", 1 - %"$msg2_3957" = load i8*, i8** %msg2, align 8 - %"$accounting_tests.one_msg_call_3958" = call %TName_List_Message* %"$accounting_tests.one_msg_fptr_3955"(i8* %"$accounting_tests.one_msg_envptr_3956", i8* %"$msg2_3957"), !dbg !323 - store %TName_List_Message* %"$accounting_tests.one_msg_call_3958", %TName_List_Message** %"$accounting_tests.one_msg_43", align 8, !dbg !323 - %"$$accounting_tests.one_msg_43_3959" = load %TName_List_Message*, %TName_List_Message** %"$accounting_tests.one_msg_43", align 8 - store %TName_List_Message* %"$$accounting_tests.one_msg_43_3959", %TName_List_Message** %msgs2, align 8, !dbg !323 - %"$msgs2_3960" = load %TName_List_Message*, %TName_List_Message** %msgs2, align 8 - %"$$msgs2_3960_3961" = bitcast %TName_List_Message* %"$msgs2_3960" to i8* - %"$_literal_cost_call_3962" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_120", i8* %"$$msgs2_3960_3961") - %"$gasrem_3963" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3964" = icmp ugt i64 %"$_literal_cost_call_3962", %"$gasrem_3963" - br i1 %"$gascmp_3964", label %"$out_of_gas_3965", label %"$have_gas_3966" - -"$out_of_gas_3965": ; preds = %"$have_gas_3952" - call void @_out_of_gas() - br label %"$have_gas_3966" - -"$have_gas_3966": ; preds = %"$out_of_gas_3965", %"$have_gas_3952" - %"$consume_3967" = sub i64 %"$gasrem_3963", %"$_literal_cost_call_3962" - store i64 %"$consume_3967", i64* @_gasrem, align 8 - %"$execptr_load_3968" = load i8*, i8** @_execptr, align 8 - %"$msgs2_3969" = load %TName_List_Message*, %TName_List_Message** %msgs2, align 8 - call void @_send(i8* %"$execptr_load_3968", %_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_120", %TName_List_Message* %"$msgs2_3969"), !dbg !324 + call void @llvm.dbg.declare(metadata %TName_List_Message** %"$accounting_tests.one_msg_43", metadata !715, metadata !DIExpression()), !dbg !716 + %"$accounting_tests.one_msg_4039" = load { %TName_List_Message* (i8*, i8*)*, i8* }, { %TName_List_Message* (i8*, i8*)*, i8* }* @accounting_tests.one_msg, align 8 + %"$accounting_tests.one_msg_fptr_4040" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$accounting_tests.one_msg_4039", 0 + %"$accounting_tests.one_msg_envptr_4041" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$accounting_tests.one_msg_4039", 1 + %"$msg2_4042" = load i8*, i8** %msg2, align 8 + %"$accounting_tests.one_msg_call_4043" = call %TName_List_Message* %"$accounting_tests.one_msg_fptr_4040"(i8* %"$accounting_tests.one_msg_envptr_4041", i8* %"$msg2_4042"), !dbg !716 + store %TName_List_Message* %"$accounting_tests.one_msg_call_4043", %TName_List_Message** %"$accounting_tests.one_msg_43", align 8, !dbg !716 + %"$$accounting_tests.one_msg_43_4044" = load %TName_List_Message*, %TName_List_Message** %"$accounting_tests.one_msg_43", align 8 + store %TName_List_Message* %"$$accounting_tests.one_msg_43_4044", %TName_List_Message** %msgs2, align 8, !dbg !716 + %"$msgs2_4045" = load %TName_List_Message*, %TName_List_Message** %msgs2, align 8 + %"$$msgs2_4045_4046" = bitcast %TName_List_Message* %"$msgs2_4045" to i8* + %"$_literal_cost_call_4047" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_120", i8* %"$$msgs2_4045_4046") + %"$gasrem_4048" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4049" = icmp ugt i64 %"$_literal_cost_call_4047", %"$gasrem_4048" + br i1 %"$gascmp_4049", label %"$out_of_gas_4050", label %"$have_gas_4051" + +"$out_of_gas_4050": ; preds = %"$have_gas_4037" + call void @_out_of_gas() + br label %"$have_gas_4051" + +"$have_gas_4051": ; preds = %"$out_of_gas_4050", %"$have_gas_4037" + %"$consume_4052" = sub i64 %"$gasrem_4048", %"$_literal_cost_call_4047" + store i64 %"$consume_4052", i64* @_gasrem, align 8 + %"$execptr_load_4053" = load i8*, i8** @_execptr, align 8 + %"$msgs2_4054" = load %TName_List_Message*, %TName_List_Message** %msgs2, align 8 + call void @_send(i8* %"$execptr_load_4053", %_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_120", %TName_List_Message* %"$msgs2_4054"), !dbg !717 ret void } -define void @Test_Send_12(i8* %0) !dbg !325 { +define void @Test_Send_12(i8* %0) !dbg !718 { entry: - %"$_amount_3971" = getelementptr i8, i8* %0, i32 0 - %"$_amount_3972" = bitcast i8* %"$_amount_3971" to %Uint128* - %_amount = load %Uint128, %Uint128* %"$_amount_3972", align 8 - %"$_origin_3973" = getelementptr i8, i8* %0, i32 16 - %"$_origin_3974" = bitcast i8* %"$_origin_3973" to [20 x i8]* - %"$_sender_3975" = getelementptr i8, i8* %0, i32 36 - %"$_sender_3976" = bitcast i8* %"$_sender_3975" to [20 x i8]* - call void @"$Test_Send_12_3792"(%Uint128 %_amount, [20 x i8]* %"$_origin_3974", [20 x i8]* %"$_sender_3976"), !dbg !326 + %"$_amount_4059" = getelementptr i8, i8* %0, i32 0 + %"$_amount_4060" = bitcast i8* %"$_amount_4059" to %Uint128* + %_amount = load %Uint128, %Uint128* %"$_amount_4060", align 8 + %"$_origin_4061" = getelementptr i8, i8* %0, i32 16 + %"$_origin_4062" = bitcast i8* %"$_origin_4061" to [20 x i8]* + %"$_sender_4063" = getelementptr i8, i8* %0, i32 36 + %"$_sender_4064" = bitcast i8* %"$_sender_4063" to [20 x i8]* + call void @"$Test_Send_12_3877"(%Uint128 %_amount, [20 x i8]* %"$_origin_4062", [20 x i8]* %"$_sender_4064"), !dbg !719 ret void } -define internal void @"$Test_Send_13_3977"(%Uint128 %_amount, [20 x i8]* %"$_origin_3978", [20 x i8]* %"$_sender_3979") !dbg !327 { +define internal void @"$Test_Send_13_4065"(%Uint128 %_amount, [20 x i8]* %"$_origin_4066", [20 x i8]* %"$_sender_4067") !dbg !720 { entry: - %_origin = load [20 x i8], [20 x i8]* %"$_origin_3978", align 1 - %_sender = load [20 x i8], [20 x i8]* %"$_sender_3979", align 1 - %"$gasrem_3980" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3981" = icmp ugt i64 1, %"$gasrem_3980" - br i1 %"$gascmp_3981", label %"$out_of_gas_3982", label %"$have_gas_3983" - -"$out_of_gas_3982": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_3983" - -"$have_gas_3983": ; preds = %"$out_of_gas_3982", %entry - %"$consume_3984" = sub i64 %"$gasrem_3980", 1 - store i64 %"$consume_3984", i64* @_gasrem, align 8 - %"$AssertReset__origin_3985" = alloca [20 x i8], align 1 - store [20 x i8] %_origin, [20 x i8]* %"$AssertReset__origin_3985", align 1 - %"$AssertReset__sender_3986" = alloca [20 x i8], align 1 - store [20 x i8] %_sender, [20 x i8]* %"$AssertReset__sender_3986", align 1 - call void @"$AssertReset_855"(%Uint128 %_amount, [20 x i8]* %"$AssertReset__origin_3985", [20 x i8]* %"$AssertReset__sender_3986"), !dbg !328 + %"$_sender_4254" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_sender_4067", [20 x i8]** %"$_sender_4254", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_sender_4254", metadata !721, metadata !DIExpression()), !dbg !722 + %"$_origin_4253" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_origin_4066", [20 x i8]** %"$_origin_4253", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_origin_4253", metadata !723, metadata !DIExpression()), !dbg !722 + %"$_amount_4252" = alloca %Uint128, align 8 + store %Uint128 %_amount, %Uint128* %"$_amount_4252", align 8 + call void @llvm.dbg.declare(metadata %Uint128* %"$_amount_4252", metadata !724, metadata !DIExpression()), !dbg !722 + %_origin = load [20 x i8], [20 x i8]* %"$_origin_4066", align 1 + %_sender = load [20 x i8], [20 x i8]* %"$_sender_4067", align 1 + %"$gasrem_4068" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4069" = icmp ugt i64 1, %"$gasrem_4068" + br i1 %"$gascmp_4069", label %"$out_of_gas_4070", label %"$have_gas_4071" + +"$out_of_gas_4070": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_4071" + +"$have_gas_4071": ; preds = %"$out_of_gas_4070", %entry + %"$consume_4072" = sub i64 %"$gasrem_4068", 1 + store i64 %"$consume_4072", i64* @_gasrem, align 8 + %"$AssertReset__origin_4073" = alloca [20 x i8], align 1 + store [20 x i8] %_origin, [20 x i8]* %"$AssertReset__origin_4073", align 1 + %"$AssertReset__sender_4074" = alloca [20 x i8], align 1 + store [20 x i8] %_sender, [20 x i8]* %"$AssertReset__sender_4074", align 1 + call void @"$AssertReset_869"(%Uint128 %_amount, [20 x i8]* %"$AssertReset__origin_4073", [20 x i8]* %"$AssertReset__sender_4074"), !dbg !725 %amount = alloca %Uint128, align 8 - %"$execptr_load_3988" = load i8*, i8** @_execptr, align 8 - %"$amount_call_3989" = call i8* @_fetch_field(i8* %"$execptr_load_3988", i8* getelementptr inbounds ([16 x i8], [16 x i8]* @"$outgoing_amount_3987", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Uint128_94", i32 0, i8* null, i32 1), !dbg !329 - %"$amount_3990" = bitcast i8* %"$amount_call_3989" to %Uint128* - %"$amount_3991" = load %Uint128, %Uint128* %"$amount_3990", align 8 - store %Uint128 %"$amount_3991", %Uint128* %amount, align 8 - %"$_literal_cost_amount_3992" = alloca %Uint128, align 8 - %"$amount_3993" = load %Uint128, %Uint128* %amount, align 8 - store %Uint128 %"$amount_3993", %Uint128* %"$_literal_cost_amount_3992", align 8 - %"$$_literal_cost_amount_3992_3994" = bitcast %Uint128* %"$_literal_cost_amount_3992" to i8* - %"$_literal_cost_call_3995" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Uint128_94", i8* %"$$_literal_cost_amount_3992_3994") - %"$gasadd_3996" = add i64 %"$_literal_cost_call_3995", 0 - %"$gasrem_3997" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3998" = icmp ugt i64 %"$gasadd_3996", %"$gasrem_3997" - br i1 %"$gascmp_3998", label %"$out_of_gas_3999", label %"$have_gas_4000" - -"$out_of_gas_3999": ; preds = %"$have_gas_3983" - call void @_out_of_gas() - br label %"$have_gas_4000" - -"$have_gas_4000": ; preds = %"$out_of_gas_3999", %"$have_gas_3983" - %"$consume_4001" = sub i64 %"$gasrem_3997", %"$gasadd_3996" - store i64 %"$consume_4001", i64* @_gasrem, 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_4000" - call void @_out_of_gas() - br label %"$have_gas_4005" - -"$have_gas_4005": ; preds = %"$out_of_gas_4004", %"$have_gas_4000" - %"$consume_4006" = sub i64 %"$gasrem_4002", 1 - store i64 %"$consume_4006", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %Uint128* %amount, metadata !726, metadata !DIExpression()), !dbg !727 + %"$execptr_load_4076" = load i8*, i8** @_execptr, align 8 + %"$amount_call_4077" = call i8* @_fetch_field(i8* %"$execptr_load_4076", i8* getelementptr inbounds ([16 x i8], [16 x i8]* @"$outgoing_amount_4075", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Uint128_94", i32 0, i8* null, i32 1), !dbg !727 + %"$amount_4078" = bitcast i8* %"$amount_call_4077" to %Uint128* + %"$amount_4079" = load %Uint128, %Uint128* %"$amount_4078", align 8 + store %Uint128 %"$amount_4079", %Uint128* %amount, align 8 + %"$_literal_cost_amount_4080" = alloca %Uint128, align 8 + %"$amount_4081" = load %Uint128, %Uint128* %amount, align 8 + store %Uint128 %"$amount_4081", %Uint128* %"$_literal_cost_amount_4080", align 8 + %"$$_literal_cost_amount_4080_4082" = bitcast %Uint128* %"$_literal_cost_amount_4080" to i8* + %"$_literal_cost_call_4083" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Uint128_94", i8* %"$$_literal_cost_amount_4080_4082") + %"$gasadd_4084" = add i64 %"$_literal_cost_call_4083", 0 + %"$gasrem_4085" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4086" = icmp ugt i64 %"$gasadd_4084", %"$gasrem_4085" + br i1 %"$gascmp_4086", label %"$out_of_gas_4087", label %"$have_gas_4088" + +"$out_of_gas_4087": ; preds = %"$have_gas_4071" + call void @_out_of_gas() + br label %"$have_gas_4088" + +"$have_gas_4088": ; preds = %"$out_of_gas_4087", %"$have_gas_4071" + %"$consume_4089" = sub i64 %"$gasrem_4085", %"$gasadd_4084" + store i64 %"$consume_4089", i64* @_gasrem, 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 %msg1 = alloca i8*, align 8 - %"$gasrem_4007" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4008" = icmp ugt i64 1, %"$gasrem_4007" - br i1 %"$gascmp_4008", label %"$out_of_gas_4009", label %"$have_gas_4010" - -"$out_of_gas_4009": ; preds = %"$have_gas_4005" - call void @_out_of_gas() - br label %"$have_gas_4010" - -"$have_gas_4010": ; preds = %"$out_of_gas_4009", %"$have_gas_4005" - %"$consume_4011" = sub i64 %"$gasrem_4007", 1 - store i64 %"$consume_4011", i64* @_gasrem, align 8 - %"$msgobj_4012_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$msgobj_4012_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_4012_salloc_load", i64 125) - %"$msgobj_4012_salloc" = bitcast i8* %"$msgobj_4012_salloc_salloc" to [125 x i8]* - %"$msgobj_4012" = bitcast [125 x i8]* %"$msgobj_4012_salloc" to i8* - store i8 3, i8* %"$msgobj_4012", align 1 - %"$msgobj_fname_4014" = getelementptr i8, i8* %"$msgobj_4012", i32 1 - %"$msgobj_fname_4015" = bitcast i8* %"$msgobj_fname_4014" to %String* - store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_4013", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_4015", align 8 - %"$msgobj_td_4016" = getelementptr i8, i8* %"$msgobj_4012", i32 17 - %"$msgobj_td_4017" = bitcast i8* %"$msgobj_td_4016" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_114", %_TyDescrTy_Typ** %"$msgobj_td_4017", align 8 - %"$support_contract_4018" = load [20 x i8], [20 x i8]* @_cparam_support_contract, align 1 - %"$msgobj_v_4019" = getelementptr i8, i8* %"$msgobj_4012", i32 25 - %"$msgobj_v_4020" = bitcast i8* %"$msgobj_v_4019" to [20 x i8]* - store [20 x i8] %"$support_contract_4018", [20 x i8]* %"$msgobj_v_4020", align 1 - %"$msgobj_fname_4022" = getelementptr i8, i8* %"$msgobj_4012", i32 45 - %"$msgobj_fname_4023" = bitcast i8* %"$msgobj_fname_4022" to %String* - store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_4021", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_4023", align 8 - %"$msgobj_td_4024" = getelementptr i8, i8* %"$msgobj_4012", i32 61 - %"$msgobj_td_4025" = bitcast i8* %"$msgobj_td_4024" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_String_100", %_TyDescrTy_Typ** %"$msgobj_td_4025", align 8 - %"$msgobj_v_4027" = getelementptr i8, i8* %"$msgobj_4012", i32 69 - %"$msgobj_v_4028" = bitcast i8* %"$msgobj_v_4027" to %String* - store %String { i8* getelementptr inbounds ([26 x i8], [26 x i8]* @"$stringlit_4026", i32 0, i32 0), i32 26 }, %String* %"$msgobj_v_4028", align 8 - %"$msgobj_fname_4030" = getelementptr i8, i8* %"$msgobj_4012", i32 85 - %"$msgobj_fname_4031" = bitcast i8* %"$msgobj_fname_4030" to %String* - store %String { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$stringlit_4029", i32 0, i32 0), i32 7 }, %String* %"$msgobj_fname_4031", align 8 - %"$msgobj_td_4032" = getelementptr i8, i8* %"$msgobj_4012", i32 101 - %"$msgobj_td_4033" = bitcast i8* %"$msgobj_td_4032" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Uint128_94", %_TyDescrTy_Typ** %"$msgobj_td_4033", align 8 - %"$amount_4034" = load %Uint128, %Uint128* %amount, align 8 - %"$msgobj_v_4035" = getelementptr i8, i8* %"$msgobj_4012", i32 109 - %"$msgobj_v_4036" = bitcast i8* %"$msgobj_v_4035" to %Uint128* - store %Uint128 %"$amount_4034", %Uint128* %"$msgobj_v_4036", align 8 - store i8* %"$msgobj_4012", i8** %msg1, align 8, !dbg !330 - %"$gasrem_4038" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4039" = icmp ugt i64 1, %"$gasrem_4038" - br i1 %"$gascmp_4039", label %"$out_of_gas_4040", label %"$have_gas_4041" - -"$out_of_gas_4040": ; preds = %"$have_gas_4010" - call void @_out_of_gas() - br label %"$have_gas_4041" - -"$have_gas_4041": ; preds = %"$out_of_gas_4040", %"$have_gas_4010" - %"$consume_4042" = sub i64 %"$gasrem_4038", 1 - store i64 %"$consume_4042", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata i8** %msg1, metadata !728, metadata !DIExpression()), !dbg !729 + %"$gasrem_4095" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4096" = icmp ugt i64 1, %"$gasrem_4095" + br i1 %"$gascmp_4096", label %"$out_of_gas_4097", label %"$have_gas_4098" + +"$out_of_gas_4097": ; preds = %"$have_gas_4093" + call void @_out_of_gas() + br label %"$have_gas_4098" + +"$have_gas_4098": ; preds = %"$out_of_gas_4097", %"$have_gas_4093" + %"$consume_4099" = sub i64 %"$gasrem_4095", 1 + store i64 %"$consume_4099", i64* @_gasrem, align 8 + %"$msgobj_4100_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$msgobj_4100_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_4100_salloc_load", i64 125) + %"$msgobj_4100_salloc" = bitcast i8* %"$msgobj_4100_salloc_salloc" to [125 x i8]* + %"$msgobj_4100" = bitcast [125 x i8]* %"$msgobj_4100_salloc" to i8* + store i8 3, i8* %"$msgobj_4100", align 1 + %"$msgobj_fname_4102" = getelementptr i8, i8* %"$msgobj_4100", i32 1 + %"$msgobj_fname_4103" = bitcast i8* %"$msgobj_fname_4102" to %String* + store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_4101", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_4103", align 8 + %"$msgobj_td_4104" = getelementptr i8, i8* %"$msgobj_4100", i32 17 + %"$msgobj_td_4105" = bitcast i8* %"$msgobj_td_4104" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_114", %_TyDescrTy_Typ** %"$msgobj_td_4105", align 8 + %"$support_contract_4106" = load [20 x i8], [20 x i8]* @_cparam_support_contract, align 1 + %"$msgobj_v_4107" = getelementptr i8, i8* %"$msgobj_4100", i32 25 + %"$msgobj_v_4108" = bitcast i8* %"$msgobj_v_4107" to [20 x i8]* + store [20 x i8] %"$support_contract_4106", [20 x i8]* %"$msgobj_v_4108", align 1 + %"$msgobj_fname_4110" = getelementptr i8, i8* %"$msgobj_4100", i32 45 + %"$msgobj_fname_4111" = bitcast i8* %"$msgobj_fname_4110" to %String* + store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_4109", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_4111", align 8 + %"$msgobj_td_4112" = getelementptr i8, i8* %"$msgobj_4100", i32 61 + %"$msgobj_td_4113" = bitcast i8* %"$msgobj_td_4112" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_String_100", %_TyDescrTy_Typ** %"$msgobj_td_4113", align 8 + %"$msgobj_v_4115" = getelementptr i8, i8* %"$msgobj_4100", i32 69 + %"$msgobj_v_4116" = bitcast i8* %"$msgobj_v_4115" to %String* + store %String { i8* getelementptr inbounds ([26 x i8], [26 x i8]* @"$stringlit_4114", i32 0, i32 0), i32 26 }, %String* %"$msgobj_v_4116", align 8 + %"$msgobj_fname_4118" = getelementptr i8, i8* %"$msgobj_4100", i32 85 + %"$msgobj_fname_4119" = bitcast i8* %"$msgobj_fname_4118" to %String* + store %String { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$stringlit_4117", i32 0, i32 0), i32 7 }, %String* %"$msgobj_fname_4119", align 8 + %"$msgobj_td_4120" = getelementptr i8, i8* %"$msgobj_4100", i32 101 + %"$msgobj_td_4121" = bitcast i8* %"$msgobj_td_4120" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Uint128_94", %_TyDescrTy_Typ** %"$msgobj_td_4121", align 8 + %"$amount_4122" = load %Uint128, %Uint128* %amount, align 8 + %"$msgobj_v_4123" = getelementptr i8, i8* %"$msgobj_4100", i32 109 + %"$msgobj_v_4124" = bitcast i8* %"$msgobj_v_4123" to %Uint128* + store %Uint128 %"$amount_4122", %Uint128* %"$msgobj_v_4124", align 8 + store i8* %"$msgobj_4100", i8** %msg1, align 8, !dbg !730 + %"$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_4128": ; preds = %"$have_gas_4098" + call void @_out_of_gas() + br label %"$have_gas_4129" + +"$have_gas_4129": ; preds = %"$out_of_gas_4128", %"$have_gas_4098" + %"$consume_4130" = sub i64 %"$gasrem_4126", 1 + store i64 %"$consume_4130", i64* @_gasrem, align 8 %msgs1 = alloca %TName_List_Message*, 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" + call void @llvm.dbg.declare(metadata %TName_List_Message** %msgs1, metadata !731, metadata !DIExpression()), !dbg !732 + %"$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_4045": ; preds = %"$have_gas_4041" +"$out_of_gas_4133": ; preds = %"$have_gas_4129" call void @_out_of_gas() - br label %"$have_gas_4046" + br label %"$have_gas_4134" -"$have_gas_4046": ; preds = %"$out_of_gas_4045", %"$have_gas_4041" - %"$consume_4047" = sub i64 %"$gasrem_4043", 1 - store i64 %"$consume_4047", i64* @_gasrem, align 8 +"$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 %"$accounting_tests.one_msg_46" = alloca %TName_List_Message*, align 8 - %"$accounting_tests.one_msg_4048" = load { %TName_List_Message* (i8*, i8*)*, i8* }, { %TName_List_Message* (i8*, i8*)*, i8* }* @accounting_tests.one_msg, align 8 - %"$accounting_tests.one_msg_fptr_4049" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$accounting_tests.one_msg_4048", 0 - %"$accounting_tests.one_msg_envptr_4050" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$accounting_tests.one_msg_4048", 1 - %"$msg1_4051" = load i8*, i8** %msg1, align 8 - %"$accounting_tests.one_msg_call_4052" = call %TName_List_Message* %"$accounting_tests.one_msg_fptr_4049"(i8* %"$accounting_tests.one_msg_envptr_4050", i8* %"$msg1_4051"), !dbg !331 - store %TName_List_Message* %"$accounting_tests.one_msg_call_4052", %TName_List_Message** %"$accounting_tests.one_msg_46", align 8, !dbg !331 - %"$$accounting_tests.one_msg_46_4053" = load %TName_List_Message*, %TName_List_Message** %"$accounting_tests.one_msg_46", align 8 - store %TName_List_Message* %"$$accounting_tests.one_msg_46_4053", %TName_List_Message** %msgs1, align 8, !dbg !331 - %"$msgs1_4054" = load %TName_List_Message*, %TName_List_Message** %msgs1, align 8 - %"$$msgs1_4054_4055" = bitcast %TName_List_Message* %"$msgs1_4054" to i8* - %"$_literal_cost_call_4056" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_120", i8* %"$$msgs1_4054_4055") - %"$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 - %"$msgs1_4063" = load %TName_List_Message*, %TName_List_Message** %msgs1, align 8 - call void @_send(i8* %"$execptr_load_4062", %_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_120", %TName_List_Message* %"$msgs1_4063"), !dbg !332 + call void @llvm.dbg.declare(metadata %TName_List_Message** %"$accounting_tests.one_msg_46", metadata !733, metadata !DIExpression()), !dbg !734 + %"$accounting_tests.one_msg_4136" = load { %TName_List_Message* (i8*, i8*)*, i8* }, { %TName_List_Message* (i8*, i8*)*, i8* }* @accounting_tests.one_msg, align 8 + %"$accounting_tests.one_msg_fptr_4137" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$accounting_tests.one_msg_4136", 0 + %"$accounting_tests.one_msg_envptr_4138" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$accounting_tests.one_msg_4136", 1 + %"$msg1_4139" = load i8*, i8** %msg1, align 8 + %"$accounting_tests.one_msg_call_4140" = call %TName_List_Message* %"$accounting_tests.one_msg_fptr_4137"(i8* %"$accounting_tests.one_msg_envptr_4138", i8* %"$msg1_4139"), !dbg !734 + store %TName_List_Message* %"$accounting_tests.one_msg_call_4140", %TName_List_Message** %"$accounting_tests.one_msg_46", align 8, !dbg !734 + %"$$accounting_tests.one_msg_46_4141" = load %TName_List_Message*, %TName_List_Message** %"$accounting_tests.one_msg_46", align 8 + store %TName_List_Message* %"$$accounting_tests.one_msg_46_4141", %TName_List_Message** %msgs1, align 8, !dbg !734 + %"$msgs1_4142" = load %TName_List_Message*, %TName_List_Message** %msgs1, align 8 + %"$$msgs1_4142_4143" = bitcast %TName_List_Message* %"$msgs1_4142" to i8* + %"$_literal_cost_call_4144" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_120", i8* %"$$msgs1_4142_4143") + %"$gasrem_4145" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4146" = icmp ugt i64 %"$_literal_cost_call_4144", %"$gasrem_4145" + br i1 %"$gascmp_4146", label %"$out_of_gas_4147", label %"$have_gas_4148" + +"$out_of_gas_4147": ; preds = %"$have_gas_4134" + call void @_out_of_gas() + br label %"$have_gas_4148" + +"$have_gas_4148": ; preds = %"$out_of_gas_4147", %"$have_gas_4134" + %"$consume_4149" = sub i64 %"$gasrem_4145", %"$_literal_cost_call_4144" + store i64 %"$consume_4149", i64* @_gasrem, align 8 + %"$execptr_load_4150" = load i8*, i8** @_execptr, align 8 + %"$msgs1_4151" = load %TName_List_Message*, %TName_List_Message** %msgs1, align 8 + call void @_send(i8* %"$execptr_load_4150", %_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_120", %TName_List_Message* %"$msgs1_4151"), !dbg !735 %support_bal = alloca %Uint128, align 8 - %"$execptr_load_4065" = load i8*, i8** @_execptr, align 8 - %"$support_bal_support_contract_4066" = alloca [20 x i8], align 1 - %"$support_contract_4067" = load [20 x i8], [20 x i8]* @_cparam_support_contract, align 1 - store [20 x i8] %"$support_contract_4067", [20 x i8]* %"$support_bal_support_contract_4066", align 1 - %"$support_bal_call_4068" = call i8* @_fetch_remote_field(i8* %"$execptr_load_4065", [20 x i8]* %"$support_bal_support_contract_4066", i8* getelementptr inbounds ([9 x i8], [9 x i8]* @"$_balance_4064", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Uint128_94", i32 0, i8* null, i32 1), !dbg !333 - %"$support_bal_4069" = bitcast i8* %"$support_bal_call_4068" to %Uint128* - %"$support_bal_4070" = load %Uint128, %Uint128* %"$support_bal_4069", align 8 - store %Uint128 %"$support_bal_4070", %Uint128* %support_bal, align 8 - %"$_literal_cost_support_bal_4071" = alloca %Uint128, align 8 - %"$support_bal_4072" = load %Uint128, %Uint128* %support_bal, align 8 - store %Uint128 %"$support_bal_4072", %Uint128* %"$_literal_cost_support_bal_4071", align 8 - %"$$_literal_cost_support_bal_4071_4073" = bitcast %Uint128* %"$_literal_cost_support_bal_4071" to i8* - %"$_literal_cost_call_4074" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Uint128_94", i8* %"$$_literal_cost_support_bal_4071_4073") - %"$gasadd_4075" = add i64 %"$_literal_cost_call_4074", 0 - %"$gasrem_4076" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4077" = icmp ugt i64 %"$gasadd_4075", %"$gasrem_4076" - br i1 %"$gascmp_4077", label %"$out_of_gas_4078", label %"$have_gas_4079" - -"$out_of_gas_4078": ; preds = %"$have_gas_4060" - call void @_out_of_gas() - br label %"$have_gas_4079" - -"$have_gas_4079": ; preds = %"$out_of_gas_4078", %"$have_gas_4060" - %"$consume_4080" = sub i64 %"$gasrem_4076", %"$gasadd_4075" - store i64 %"$consume_4080", i64* @_gasrem, align 8 - %"$gasrem_4081" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4082" = icmp ugt i64 1, %"$gasrem_4081" - br i1 %"$gascmp_4082", label %"$out_of_gas_4083", label %"$have_gas_4084" - -"$out_of_gas_4083": ; preds = %"$have_gas_4079" - call void @_out_of_gas() - br label %"$have_gas_4084" - -"$have_gas_4084": ; preds = %"$out_of_gas_4083", %"$have_gas_4079" - %"$consume_4085" = sub i64 %"$gasrem_4081", 1 - store i64 %"$consume_4085", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %Uint128* %support_bal, metadata !736, metadata !DIExpression()), !dbg !737 + %"$execptr_load_4153" = load i8*, i8** @_execptr, align 8 + %"$support_bal_support_contract_4154" = alloca [20 x i8], align 1 + %"$support_contract_4155" = load [20 x i8], [20 x i8]* @_cparam_support_contract, align 1 + store [20 x i8] %"$support_contract_4155", [20 x i8]* %"$support_bal_support_contract_4154", align 1 + %"$support_bal_call_4156" = call i8* @_fetch_remote_field(i8* %"$execptr_load_4153", [20 x i8]* %"$support_bal_support_contract_4154", i8* getelementptr inbounds ([9 x i8], [9 x i8]* @"$_balance_4152", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Uint128_94", i32 0, i8* null, i32 1), !dbg !737 + %"$support_bal_4157" = bitcast i8* %"$support_bal_call_4156" to %Uint128* + %"$support_bal_4158" = load %Uint128, %Uint128* %"$support_bal_4157", align 8 + store %Uint128 %"$support_bal_4158", %Uint128* %support_bal, align 8 + %"$_literal_cost_support_bal_4159" = alloca %Uint128, align 8 + %"$support_bal_4160" = load %Uint128, %Uint128* %support_bal, align 8 + store %Uint128 %"$support_bal_4160", %Uint128* %"$_literal_cost_support_bal_4159", align 8 + %"$$_literal_cost_support_bal_4159_4161" = bitcast %Uint128* %"$_literal_cost_support_bal_4159" to i8* + %"$_literal_cost_call_4162" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Uint128_94", i8* %"$$_literal_cost_support_bal_4159_4161") + %"$gasadd_4163" = add i64 %"$_literal_cost_call_4162", 0 + %"$gasrem_4164" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4165" = icmp ugt i64 %"$gasadd_4163", %"$gasrem_4164" + br i1 %"$gascmp_4165", label %"$out_of_gas_4166", label %"$have_gas_4167" + +"$out_of_gas_4166": ; preds = %"$have_gas_4148" + call void @_out_of_gas() + br label %"$have_gas_4167" + +"$have_gas_4167": ; preds = %"$out_of_gas_4166", %"$have_gas_4148" + %"$consume_4168" = sub i64 %"$gasrem_4164", %"$gasadd_4163" + store i64 %"$consume_4168", i64* @_gasrem, align 8 + %"$gasrem_4169" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4170" = icmp ugt i64 1, %"$gasrem_4169" + br i1 %"$gascmp_4170", label %"$out_of_gas_4171", label %"$have_gas_4172" + +"$out_of_gas_4171": ; preds = %"$have_gas_4167" + call void @_out_of_gas() + br label %"$have_gas_4172" + +"$have_gas_4172": ; preds = %"$out_of_gas_4171", %"$have_gas_4167" + %"$consume_4173" = sub i64 %"$gasrem_4169", 1 + store i64 %"$consume_4173", i64* @_gasrem, align 8 %expected_balance = alloca %Uint128, align 8 - %"$gasrem_4087" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4088" = icmp ugt i64 8, %"$gasrem_4087" - br i1 %"$gascmp_4088", label %"$out_of_gas_4089", label %"$have_gas_4090" + call void @llvm.dbg.declare(metadata %Uint128* %expected_balance, metadata !738, metadata !DIExpression()), !dbg !739 + %"$gasrem_4175" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4176" = icmp ugt i64 8, %"$gasrem_4175" + br i1 %"$gascmp_4176", label %"$out_of_gas_4177", label %"$have_gas_4178" -"$out_of_gas_4089": ; preds = %"$have_gas_4084" +"$out_of_gas_4177": ; preds = %"$have_gas_4172" call void @_out_of_gas() - br label %"$have_gas_4090" + br label %"$have_gas_4178" -"$have_gas_4090": ; preds = %"$out_of_gas_4089", %"$have_gas_4084" - %"$consume_4091" = sub i64 %"$gasrem_4087", 8 - store i64 %"$consume_4091", i64* @_gasrem, align 8 - %"$support_bal_4092" = load %Uint128, %Uint128* %support_bal, align 8 - %"$amount_4093" = load %Uint128, %Uint128* %amount, align 8 - %"$add_call_4094" = call %Uint128 @_add_Uint128(%Uint128 %"$support_bal_4092", %Uint128 %"$amount_4093"), !dbg !334 - store %Uint128 %"$add_call_4094", %Uint128* %expected_balance, align 8, !dbg !334 - %"$gasrem_4095" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4096" = icmp ugt i64 1, %"$gasrem_4095" - br i1 %"$gascmp_4096", label %"$out_of_gas_4097", label %"$have_gas_4098" +"$have_gas_4178": ; preds = %"$out_of_gas_4177", %"$have_gas_4172" + %"$consume_4179" = sub i64 %"$gasrem_4175", 8 + store i64 %"$consume_4179", i64* @_gasrem, align 8 + %"$support_bal_4180" = load %Uint128, %Uint128* %support_bal, align 8 + %"$amount_4181" = load %Uint128, %Uint128* %amount, align 8 + %"$add_call_4182" = call %Uint128 @_add_Uint128(%Uint128 %"$support_bal_4180", %Uint128 %"$amount_4181"), !dbg !740 + store %Uint128 %"$add_call_4182", %Uint128* %expected_balance, align 8, !dbg !740 + %"$gasrem_4183" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4184" = icmp ugt i64 1, %"$gasrem_4183" + br i1 %"$gascmp_4184", label %"$out_of_gas_4185", label %"$have_gas_4186" -"$out_of_gas_4097": ; preds = %"$have_gas_4090" +"$out_of_gas_4185": ; preds = %"$have_gas_4178" call void @_out_of_gas() - br label %"$have_gas_4098" + br label %"$have_gas_4186" -"$have_gas_4098": ; preds = %"$out_of_gas_4097", %"$have_gas_4090" - %"$consume_4099" = sub i64 %"$gasrem_4095", 1 - store i64 %"$consume_4099", i64* @_gasrem, align 8 +"$have_gas_4186": ; preds = %"$out_of_gas_4185", %"$have_gas_4178" + %"$consume_4187" = sub i64 %"$gasrem_4183", 1 + store i64 %"$consume_4187", i64* @_gasrem, align 8 %msg2 = alloca i8*, align 8 - %"$gasrem_4100" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4101" = icmp ugt i64 1, %"$gasrem_4100" - br i1 %"$gascmp_4101", label %"$out_of_gas_4102", label %"$have_gas_4103" - -"$out_of_gas_4102": ; preds = %"$have_gas_4098" - call void @_out_of_gas() - br label %"$have_gas_4103" - -"$have_gas_4103": ; preds = %"$out_of_gas_4102", %"$have_gas_4098" - %"$consume_4104" = sub i64 %"$gasrem_4100", 1 - store i64 %"$consume_4104", i64* @_gasrem, align 8 - %"$msgobj_4105_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$msgobj_4105_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_4105_salloc_load", i64 165) - %"$msgobj_4105_salloc" = bitcast i8* %"$msgobj_4105_salloc_salloc" to [165 x i8]* - %"$msgobj_4105" = bitcast [165 x i8]* %"$msgobj_4105_salloc" to i8* - store i8 4, i8* %"$msgobj_4105", align 1 - %"$msgobj_fname_4107" = getelementptr i8, i8* %"$msgobj_4105", i32 1 - %"$msgobj_fname_4108" = bitcast i8* %"$msgobj_fname_4107" to %String* - store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_4106", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_4108", align 8 - %"$msgobj_td_4109" = getelementptr i8, i8* %"$msgobj_4105", i32 17 - %"$msgobj_td_4110" = bitcast i8* %"$msgobj_td_4109" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_114", %_TyDescrTy_Typ** %"$msgobj_td_4110", align 8 - %"$_this_address_4111" = load [20 x i8], [20 x i8]* @_cparam__this_address, align 1 - %"$msgobj_v_4112" = getelementptr i8, i8* %"$msgobj_4105", i32 25 - %"$msgobj_v_4113" = bitcast i8* %"$msgobj_v_4112" to [20 x i8]* - store [20 x i8] %"$_this_address_4111", [20 x i8]* %"$msgobj_v_4113", align 1 - %"$msgobj_fname_4115" = getelementptr i8, i8* %"$msgobj_4105", i32 45 - %"$msgobj_fname_4116" = bitcast i8* %"$msgobj_fname_4115" to %String* - store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_4114", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_4116", align 8 - %"$msgobj_td_4117" = getelementptr i8, i8* %"$msgobj_4105", i32 61 - %"$msgobj_td_4118" = bitcast i8* %"$msgobj_td_4117" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_String_100", %_TyDescrTy_Typ** %"$msgobj_td_4118", align 8 - %"$msgobj_v_4120" = getelementptr i8, i8* %"$msgobj_4105", i32 69 - %"$msgobj_v_4121" = bitcast i8* %"$msgobj_v_4120" to %String* - store %String { i8* getelementptr inbounds ([21 x i8], [21 x i8]* @"$stringlit_4119", i32 0, i32 0), i32 21 }, %String* %"$msgobj_v_4121", align 8 - %"$msgobj_fname_4123" = getelementptr i8, i8* %"$msgobj_4105", i32 85 - %"$msgobj_fname_4124" = bitcast i8* %"$msgobj_fname_4123" to %String* - store %String { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$stringlit_4122", i32 0, i32 0), i32 7 }, %String* %"$msgobj_fname_4124", align 8 - %"$msgobj_td_4125" = getelementptr i8, i8* %"$msgobj_4105", i32 101 - %"$msgobj_td_4126" = bitcast i8* %"$msgobj_td_4125" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Uint128_94", %_TyDescrTy_Typ** %"$msgobj_td_4126", align 8 - %"$msgobj_v_4127" = getelementptr i8, i8* %"$msgobj_4105", i32 109 - %"$msgobj_v_4128" = bitcast i8* %"$msgobj_v_4127" to %Uint128* - store %Uint128 zeroinitializer, %Uint128* %"$msgobj_v_4128", align 8 - %"$msgobj_fname_4130" = getelementptr i8, i8* %"$msgobj_4105", i32 125 - %"$msgobj_fname_4131" = bitcast i8* %"$msgobj_fname_4130" to %String* - store %String { i8* getelementptr inbounds ([16 x i8], [16 x i8]* @"$stringlit_4129", i32 0, i32 0), i32 16 }, %String* %"$msgobj_fname_4131", align 8 - %"$msgobj_td_4132" = getelementptr i8, i8* %"$msgobj_4105", i32 141 - %"$msgobj_td_4133" = bitcast i8* %"$msgobj_td_4132" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Uint128_94", %_TyDescrTy_Typ** %"$msgobj_td_4133", align 8 - %"$expected_balance_4134" = load %Uint128, %Uint128* %expected_balance, align 8 - %"$msgobj_v_4135" = getelementptr i8, i8* %"$msgobj_4105", i32 149 - %"$msgobj_v_4136" = bitcast i8* %"$msgobj_v_4135" to %Uint128* - store %Uint128 %"$expected_balance_4134", %Uint128* %"$msgobj_v_4136", align 8 - store i8* %"$msgobj_4105", i8** %msg2, align 8, !dbg !335 - %"$gasrem_4138" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4139" = icmp ugt i64 1, %"$gasrem_4138" - br i1 %"$gascmp_4139", label %"$out_of_gas_4140", label %"$have_gas_4141" - -"$out_of_gas_4140": ; preds = %"$have_gas_4103" - call void @_out_of_gas() - br label %"$have_gas_4141" - -"$have_gas_4141": ; preds = %"$out_of_gas_4140", %"$have_gas_4103" - %"$consume_4142" = sub i64 %"$gasrem_4138", 1 - store i64 %"$consume_4142", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata i8** %msg2, metadata !741, metadata !DIExpression()), !dbg !742 + %"$gasrem_4188" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4189" = icmp ugt i64 1, %"$gasrem_4188" + br i1 %"$gascmp_4189", label %"$out_of_gas_4190", label %"$have_gas_4191" + +"$out_of_gas_4190": ; preds = %"$have_gas_4186" + call void @_out_of_gas() + br label %"$have_gas_4191" + +"$have_gas_4191": ; preds = %"$out_of_gas_4190", %"$have_gas_4186" + %"$consume_4192" = sub i64 %"$gasrem_4188", 1 + store i64 %"$consume_4192", i64* @_gasrem, align 8 + %"$msgobj_4193_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$msgobj_4193_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_4193_salloc_load", i64 165) + %"$msgobj_4193_salloc" = bitcast i8* %"$msgobj_4193_salloc_salloc" to [165 x i8]* + %"$msgobj_4193" = bitcast [165 x i8]* %"$msgobj_4193_salloc" to i8* + store i8 4, i8* %"$msgobj_4193", align 1 + %"$msgobj_fname_4195" = getelementptr i8, i8* %"$msgobj_4193", i32 1 + %"$msgobj_fname_4196" = bitcast i8* %"$msgobj_fname_4195" to %String* + store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_4194", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_4196", align 8 + %"$msgobj_td_4197" = getelementptr i8, i8* %"$msgobj_4193", i32 17 + %"$msgobj_td_4198" = bitcast i8* %"$msgobj_td_4197" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_114", %_TyDescrTy_Typ** %"$msgobj_td_4198", align 8 + %"$_this_address_4199" = load [20 x i8], [20 x i8]* @_cparam__this_address, align 1 + %"$msgobj_v_4200" = getelementptr i8, i8* %"$msgobj_4193", i32 25 + %"$msgobj_v_4201" = bitcast i8* %"$msgobj_v_4200" to [20 x i8]* + store [20 x i8] %"$_this_address_4199", [20 x i8]* %"$msgobj_v_4201", align 1 + %"$msgobj_fname_4203" = getelementptr i8, i8* %"$msgobj_4193", i32 45 + %"$msgobj_fname_4204" = bitcast i8* %"$msgobj_fname_4203" to %String* + store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_4202", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_4204", align 8 + %"$msgobj_td_4205" = getelementptr i8, i8* %"$msgobj_4193", i32 61 + %"$msgobj_td_4206" = bitcast i8* %"$msgobj_td_4205" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_String_100", %_TyDescrTy_Typ** %"$msgobj_td_4206", align 8 + %"$msgobj_v_4208" = getelementptr i8, i8* %"$msgobj_4193", i32 69 + %"$msgobj_v_4209" = bitcast i8* %"$msgobj_v_4208" to %String* + store %String { i8* getelementptr inbounds ([21 x i8], [21 x i8]* @"$stringlit_4207", i32 0, i32 0), i32 21 }, %String* %"$msgobj_v_4209", align 8 + %"$msgobj_fname_4211" = getelementptr i8, i8* %"$msgobj_4193", i32 85 + %"$msgobj_fname_4212" = bitcast i8* %"$msgobj_fname_4211" to %String* + store %String { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$stringlit_4210", i32 0, i32 0), i32 7 }, %String* %"$msgobj_fname_4212", align 8 + %"$msgobj_td_4213" = getelementptr i8, i8* %"$msgobj_4193", i32 101 + %"$msgobj_td_4214" = bitcast i8* %"$msgobj_td_4213" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Uint128_94", %_TyDescrTy_Typ** %"$msgobj_td_4214", align 8 + %"$msgobj_v_4215" = getelementptr i8, i8* %"$msgobj_4193", i32 109 + %"$msgobj_v_4216" = bitcast i8* %"$msgobj_v_4215" to %Uint128* + store %Uint128 zeroinitializer, %Uint128* %"$msgobj_v_4216", align 8 + %"$msgobj_fname_4218" = getelementptr i8, i8* %"$msgobj_4193", i32 125 + %"$msgobj_fname_4219" = bitcast i8* %"$msgobj_fname_4218" to %String* + store %String { i8* getelementptr inbounds ([16 x i8], [16 x i8]* @"$stringlit_4217", i32 0, i32 0), i32 16 }, %String* %"$msgobj_fname_4219", align 8 + %"$msgobj_td_4220" = getelementptr i8, i8* %"$msgobj_4193", i32 141 + %"$msgobj_td_4221" = bitcast i8* %"$msgobj_td_4220" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Uint128_94", %_TyDescrTy_Typ** %"$msgobj_td_4221", align 8 + %"$expected_balance_4222" = load %Uint128, %Uint128* %expected_balance, align 8 + %"$msgobj_v_4223" = getelementptr i8, i8* %"$msgobj_4193", i32 149 + %"$msgobj_v_4224" = bitcast i8* %"$msgobj_v_4223" to %Uint128* + store %Uint128 %"$expected_balance_4222", %Uint128* %"$msgobj_v_4224", align 8 + store i8* %"$msgobj_4193", i8** %msg2, align 8, !dbg !743 + %"$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" + +"$out_of_gas_4228": ; preds = %"$have_gas_4191" + call void @_out_of_gas() + br label %"$have_gas_4229" + +"$have_gas_4229": ; preds = %"$out_of_gas_4228", %"$have_gas_4191" + %"$consume_4230" = sub i64 %"$gasrem_4226", 1 + store i64 %"$consume_4230", i64* @_gasrem, align 8 %msgs2 = alloca %TName_List_Message*, align 8 - %"$gasrem_4143" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4144" = icmp ugt i64 1, %"$gasrem_4143" - br i1 %"$gascmp_4144", label %"$out_of_gas_4145", label %"$have_gas_4146" + call void @llvm.dbg.declare(metadata %TName_List_Message** %msgs2, metadata !744, metadata !DIExpression()), !dbg !745 + %"$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" -"$out_of_gas_4145": ; preds = %"$have_gas_4141" +"$out_of_gas_4233": ; preds = %"$have_gas_4229" call void @_out_of_gas() - br label %"$have_gas_4146" + br label %"$have_gas_4234" -"$have_gas_4146": ; preds = %"$out_of_gas_4145", %"$have_gas_4141" - %"$consume_4147" = sub i64 %"$gasrem_4143", 1 - store i64 %"$consume_4147", i64* @_gasrem, align 8 +"$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 %"$accounting_tests.one_msg_45" = alloca %TName_List_Message*, align 8 - %"$accounting_tests.one_msg_4148" = load { %TName_List_Message* (i8*, i8*)*, i8* }, { %TName_List_Message* (i8*, i8*)*, i8* }* @accounting_tests.one_msg, align 8 - %"$accounting_tests.one_msg_fptr_4149" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$accounting_tests.one_msg_4148", 0 - %"$accounting_tests.one_msg_envptr_4150" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$accounting_tests.one_msg_4148", 1 - %"$msg2_4151" = load i8*, i8** %msg2, align 8 - %"$accounting_tests.one_msg_call_4152" = call %TName_List_Message* %"$accounting_tests.one_msg_fptr_4149"(i8* %"$accounting_tests.one_msg_envptr_4150", i8* %"$msg2_4151"), !dbg !336 - store %TName_List_Message* %"$accounting_tests.one_msg_call_4152", %TName_List_Message** %"$accounting_tests.one_msg_45", align 8, !dbg !336 - %"$$accounting_tests.one_msg_45_4153" = load %TName_List_Message*, %TName_List_Message** %"$accounting_tests.one_msg_45", align 8 - store %TName_List_Message* %"$$accounting_tests.one_msg_45_4153", %TName_List_Message** %msgs2, align 8, !dbg !336 - %"$msgs2_4154" = load %TName_List_Message*, %TName_List_Message** %msgs2, align 8 - %"$$msgs2_4154_4155" = bitcast %TName_List_Message* %"$msgs2_4154" to i8* - %"$_literal_cost_call_4156" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_120", i8* %"$$msgs2_4154_4155") - %"$gasrem_4157" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4158" = icmp ugt i64 %"$_literal_cost_call_4156", %"$gasrem_4157" - br i1 %"$gascmp_4158", label %"$out_of_gas_4159", label %"$have_gas_4160" - -"$out_of_gas_4159": ; preds = %"$have_gas_4146" - call void @_out_of_gas() - br label %"$have_gas_4160" - -"$have_gas_4160": ; preds = %"$out_of_gas_4159", %"$have_gas_4146" - %"$consume_4161" = sub i64 %"$gasrem_4157", %"$_literal_cost_call_4156" - store i64 %"$consume_4161", i64* @_gasrem, align 8 - %"$execptr_load_4162" = load i8*, i8** @_execptr, align 8 - %"$msgs2_4163" = load %TName_List_Message*, %TName_List_Message** %msgs2, align 8 - call void @_send(i8* %"$execptr_load_4162", %_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_120", %TName_List_Message* %"$msgs2_4163"), !dbg !337 + call void @llvm.dbg.declare(metadata %TName_List_Message** %"$accounting_tests.one_msg_45", metadata !746, metadata !DIExpression()), !dbg !747 + %"$accounting_tests.one_msg_4236" = load { %TName_List_Message* (i8*, i8*)*, i8* }, { %TName_List_Message* (i8*, i8*)*, i8* }* @accounting_tests.one_msg, align 8 + %"$accounting_tests.one_msg_fptr_4237" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$accounting_tests.one_msg_4236", 0 + %"$accounting_tests.one_msg_envptr_4238" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$accounting_tests.one_msg_4236", 1 + %"$msg2_4239" = load i8*, i8** %msg2, align 8 + %"$accounting_tests.one_msg_call_4240" = call %TName_List_Message* %"$accounting_tests.one_msg_fptr_4237"(i8* %"$accounting_tests.one_msg_envptr_4238", i8* %"$msg2_4239"), !dbg !747 + store %TName_List_Message* %"$accounting_tests.one_msg_call_4240", %TName_List_Message** %"$accounting_tests.one_msg_45", align 8, !dbg !747 + %"$$accounting_tests.one_msg_45_4241" = load %TName_List_Message*, %TName_List_Message** %"$accounting_tests.one_msg_45", align 8 + store %TName_List_Message* %"$$accounting_tests.one_msg_45_4241", %TName_List_Message** %msgs2, align 8, !dbg !747 + %"$msgs2_4242" = load %TName_List_Message*, %TName_List_Message** %msgs2, align 8 + %"$$msgs2_4242_4243" = bitcast %TName_List_Message* %"$msgs2_4242" to i8* + %"$_literal_cost_call_4244" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_120", i8* %"$$msgs2_4242_4243") + %"$gasrem_4245" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4246" = icmp ugt i64 %"$_literal_cost_call_4244", %"$gasrem_4245" + br i1 %"$gascmp_4246", label %"$out_of_gas_4247", label %"$have_gas_4248" + +"$out_of_gas_4247": ; preds = %"$have_gas_4234" + call void @_out_of_gas() + br label %"$have_gas_4248" + +"$have_gas_4248": ; preds = %"$out_of_gas_4247", %"$have_gas_4234" + %"$consume_4249" = sub i64 %"$gasrem_4245", %"$_literal_cost_call_4244" + store i64 %"$consume_4249", i64* @_gasrem, align 8 + %"$execptr_load_4250" = load i8*, i8** @_execptr, align 8 + %"$msgs2_4251" = load %TName_List_Message*, %TName_List_Message** %msgs2, align 8 + call void @_send(i8* %"$execptr_load_4250", %_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_120", %TName_List_Message* %"$msgs2_4251"), !dbg !748 ret void } -define void @Test_Send_13(i8* %0) !dbg !338 { +define void @Test_Send_13(i8* %0) !dbg !749 { entry: - %"$_amount_4165" = getelementptr i8, i8* %0, i32 0 - %"$_amount_4166" = bitcast i8* %"$_amount_4165" to %Uint128* - %_amount = load %Uint128, %Uint128* %"$_amount_4166", align 8 - %"$_origin_4167" = getelementptr i8, i8* %0, i32 16 - %"$_origin_4168" = bitcast i8* %"$_origin_4167" to [20 x i8]* - %"$_sender_4169" = getelementptr i8, i8* %0, i32 36 - %"$_sender_4170" = bitcast i8* %"$_sender_4169" to [20 x i8]* - call void @"$Test_Send_13_3977"(%Uint128 %_amount, [20 x i8]* %"$_origin_4168", [20 x i8]* %"$_sender_4170"), !dbg !339 + %"$_amount_4256" = getelementptr i8, i8* %0, i32 0 + %"$_amount_4257" = bitcast i8* %"$_amount_4256" to %Uint128* + %_amount = load %Uint128, %Uint128* %"$_amount_4257", align 8 + %"$_origin_4258" = getelementptr i8, i8* %0, i32 16 + %"$_origin_4259" = bitcast i8* %"$_origin_4258" to [20 x i8]* + %"$_sender_4260" = getelementptr i8, i8* %0, i32 36 + %"$_sender_4261" = bitcast i8* %"$_sender_4260" to [20 x i8]* + call void @"$Test_Send_13_4065"(%Uint128 %_amount, [20 x i8]* %"$_origin_4259", [20 x i8]* %"$_sender_4261"), !dbg !750 ret void } -define internal void @"$Test_Send_14_4171"(%Uint128 %_amount, [20 x i8]* %"$_origin_4172", [20 x i8]* %"$_sender_4173") !dbg !340 { +define internal void @"$Test_Send_14_4262"(%Uint128 %_amount, [20 x i8]* %"$_origin_4263", [20 x i8]* %"$_sender_4264") !dbg !751 { entry: - %_origin = load [20 x i8], [20 x i8]* %"$_origin_4172", align 1 - %_sender = load [20 x i8], [20 x i8]* %"$_sender_4173", align 1 - %"$gasrem_4174" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4175" = icmp ugt i64 1, %"$gasrem_4174" - br i1 %"$gascmp_4175", label %"$out_of_gas_4176", label %"$have_gas_4177" - -"$out_of_gas_4176": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_4177" - -"$have_gas_4177": ; preds = %"$out_of_gas_4176", %entry - %"$consume_4178" = sub i64 %"$gasrem_4174", 1 - store i64 %"$consume_4178", i64* @_gasrem, align 8 - %"$AssertReset__origin_4179" = alloca [20 x i8], align 1 - store [20 x i8] %_origin, [20 x i8]* %"$AssertReset__origin_4179", align 1 - %"$AssertReset__sender_4180" = alloca [20 x i8], align 1 - store [20 x i8] %_sender, [20 x i8]* %"$AssertReset__sender_4180", align 1 - call void @"$AssertReset_855"(%Uint128 %_amount, [20 x i8]* %"$AssertReset__origin_4179", [20 x i8]* %"$AssertReset__sender_4180"), !dbg !341 + %"$_sender_4351" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_sender_4264", [20 x i8]** %"$_sender_4351", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_sender_4351", metadata !752, metadata !DIExpression()), !dbg !753 + %"$_origin_4350" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_origin_4263", [20 x i8]** %"$_origin_4350", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_origin_4350", metadata !754, metadata !DIExpression()), !dbg !753 + %"$_amount_4349" = alloca %Uint128, align 8 + store %Uint128 %_amount, %Uint128* %"$_amount_4349", align 8 + call void @llvm.dbg.declare(metadata %Uint128* %"$_amount_4349", metadata !755, metadata !DIExpression()), !dbg !753 + %_origin = load [20 x i8], [20 x i8]* %"$_origin_4263", align 1 + %_sender = load [20 x i8], [20 x i8]* %"$_sender_4264", align 1 + %"$gasrem_4265" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4266" = icmp ugt i64 1, %"$gasrem_4265" + br i1 %"$gascmp_4266", label %"$out_of_gas_4267", label %"$have_gas_4268" + +"$out_of_gas_4267": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_4268" + +"$have_gas_4268": ; preds = %"$out_of_gas_4267", %entry + %"$consume_4269" = sub i64 %"$gasrem_4265", 1 + store i64 %"$consume_4269", i64* @_gasrem, align 8 + %"$AssertReset__origin_4270" = alloca [20 x i8], align 1 + store [20 x i8] %_origin, [20 x i8]* %"$AssertReset__origin_4270", align 1 + %"$AssertReset__sender_4271" = alloca [20 x i8], align 1 + store [20 x i8] %_sender, [20 x i8]* %"$AssertReset__sender_4271", align 1 + call void @"$AssertReset_869"(%Uint128 %_amount, [20 x i8]* %"$AssertReset__origin_4270", [20 x i8]* %"$AssertReset__sender_4271"), !dbg !756 %amount = alloca %Uint128, align 8 - %"$execptr_load_4182" = load i8*, i8** @_execptr, align 8 - %"$amount_call_4183" = call i8* @_fetch_field(i8* %"$execptr_load_4182", i8* getelementptr inbounds ([9 x i8], [9 x i8]* @"$_balance_4181", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Uint128_94", i32 0, i8* null, i32 1), !dbg !342 - %"$amount_4184" = bitcast i8* %"$amount_call_4183" to %Uint128* - %"$amount_4185" = load %Uint128, %Uint128* %"$amount_4184", align 8 - store %Uint128 %"$amount_4185", %Uint128* %amount, align 8 - %"$_literal_cost_amount_4186" = alloca %Uint128, align 8 - %"$amount_4187" = load %Uint128, %Uint128* %amount, align 8 - store %Uint128 %"$amount_4187", %Uint128* %"$_literal_cost_amount_4186", align 8 - %"$$_literal_cost_amount_4186_4188" = bitcast %Uint128* %"$_literal_cost_amount_4186" to i8* - %"$_literal_cost_call_4189" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Uint128_94", i8* %"$$_literal_cost_amount_4186_4188") - %"$gasadd_4190" = add i64 %"$_literal_cost_call_4189", 0 - %"$gasrem_4191" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4192" = icmp ugt i64 %"$gasadd_4190", %"$gasrem_4191" - br i1 %"$gascmp_4192", label %"$out_of_gas_4193", label %"$have_gas_4194" - -"$out_of_gas_4193": ; preds = %"$have_gas_4177" - call void @_out_of_gas() - br label %"$have_gas_4194" - -"$have_gas_4194": ; preds = %"$out_of_gas_4193", %"$have_gas_4177" - %"$consume_4195" = sub i64 %"$gasrem_4191", %"$gasadd_4190" - store i64 %"$consume_4195", i64* @_gasrem, align 8 - %"$gasrem_4196" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4197" = icmp ugt i64 1, %"$gasrem_4196" - br i1 %"$gascmp_4197", label %"$out_of_gas_4198", label %"$have_gas_4199" - -"$out_of_gas_4198": ; preds = %"$have_gas_4194" - call void @_out_of_gas() - br label %"$have_gas_4199" - -"$have_gas_4199": ; preds = %"$out_of_gas_4198", %"$have_gas_4194" - %"$consume_4200" = sub i64 %"$gasrem_4196", 1 - store i64 %"$consume_4200", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %Uint128* %amount, metadata !757, metadata !DIExpression()), !dbg !758 + %"$execptr_load_4273" = load i8*, i8** @_execptr, align 8 + %"$amount_call_4274" = call i8* @_fetch_field(i8* %"$execptr_load_4273", i8* getelementptr inbounds ([9 x i8], [9 x i8]* @"$_balance_4272", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Uint128_94", i32 0, i8* null, i32 1), !dbg !758 + %"$amount_4275" = bitcast i8* %"$amount_call_4274" to %Uint128* + %"$amount_4276" = load %Uint128, %Uint128* %"$amount_4275", align 8 + store %Uint128 %"$amount_4276", %Uint128* %amount, align 8 + %"$_literal_cost_amount_4277" = alloca %Uint128, align 8 + %"$amount_4278" = load %Uint128, %Uint128* %amount, align 8 + store %Uint128 %"$amount_4278", %Uint128* %"$_literal_cost_amount_4277", align 8 + %"$$_literal_cost_amount_4277_4279" = bitcast %Uint128* %"$_literal_cost_amount_4277" to i8* + %"$_literal_cost_call_4280" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Uint128_94", i8* %"$$_literal_cost_amount_4277_4279") + %"$gasadd_4281" = add i64 %"$_literal_cost_call_4280", 0 + %"$gasrem_4282" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4283" = icmp ugt i64 %"$gasadd_4281", %"$gasrem_4282" + br i1 %"$gascmp_4283", label %"$out_of_gas_4284", label %"$have_gas_4285" + +"$out_of_gas_4284": ; preds = %"$have_gas_4268" + call void @_out_of_gas() + br label %"$have_gas_4285" + +"$have_gas_4285": ; preds = %"$out_of_gas_4284", %"$have_gas_4268" + %"$consume_4286" = sub i64 %"$gasrem_4282", %"$gasadd_4281" + store i64 %"$consume_4286", i64* @_gasrem, align 8 + %"$gasrem_4287" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4288" = icmp ugt i64 1, %"$gasrem_4287" + br i1 %"$gascmp_4288", label %"$out_of_gas_4289", label %"$have_gas_4290" + +"$out_of_gas_4289": ; preds = %"$have_gas_4285" + call void @_out_of_gas() + br label %"$have_gas_4290" + +"$have_gas_4290": ; preds = %"$out_of_gas_4289", %"$have_gas_4285" + %"$consume_4291" = sub i64 %"$gasrem_4287", 1 + store i64 %"$consume_4291", i64* @_gasrem, align 8 %msg1 = alloca i8*, align 8 - %"$gasrem_4201" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4202" = icmp ugt i64 1, %"$gasrem_4201" - br i1 %"$gascmp_4202", label %"$out_of_gas_4203", label %"$have_gas_4204" - -"$out_of_gas_4203": ; preds = %"$have_gas_4199" - call void @_out_of_gas() - br label %"$have_gas_4204" - -"$have_gas_4204": ; preds = %"$out_of_gas_4203", %"$have_gas_4199" - %"$consume_4205" = sub i64 %"$gasrem_4201", 1 - store i64 %"$consume_4205", i64* @_gasrem, align 8 - %"$msgobj_4206_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$msgobj_4206_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_4206_salloc_load", i64 125) - %"$msgobj_4206_salloc" = bitcast i8* %"$msgobj_4206_salloc_salloc" to [125 x i8]* - %"$msgobj_4206" = bitcast [125 x i8]* %"$msgobj_4206_salloc" to i8* - store i8 3, i8* %"$msgobj_4206", align 1 - %"$msgobj_fname_4208" = getelementptr i8, i8* %"$msgobj_4206", i32 1 - %"$msgobj_fname_4209" = bitcast i8* %"$msgobj_fname_4208" to %String* - store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_4207", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_4209", align 8 - %"$msgobj_td_4210" = getelementptr i8, i8* %"$msgobj_4206", i32 17 - %"$msgobj_td_4211" = bitcast i8* %"$msgobj_td_4210" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_114", %_TyDescrTy_Typ** %"$msgobj_td_4211", align 8 - %"$support_contract_4212" = load [20 x i8], [20 x i8]* @_cparam_support_contract, align 1 - %"$msgobj_v_4213" = getelementptr i8, i8* %"$msgobj_4206", i32 25 - %"$msgobj_v_4214" = bitcast i8* %"$msgobj_v_4213" to [20 x i8]* - store [20 x i8] %"$support_contract_4212", [20 x i8]* %"$msgobj_v_4214", align 1 - %"$msgobj_fname_4216" = getelementptr i8, i8* %"$msgobj_4206", i32 45 - %"$msgobj_fname_4217" = bitcast i8* %"$msgobj_fname_4216" to %String* - store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_4215", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_4217", align 8 - %"$msgobj_td_4218" = getelementptr i8, i8* %"$msgobj_4206", i32 61 - %"$msgobj_td_4219" = bitcast i8* %"$msgobj_td_4218" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_String_100", %_TyDescrTy_Typ** %"$msgobj_td_4219", align 8 - %"$msgobj_v_4221" = getelementptr i8, i8* %"$msgobj_4206", i32 69 - %"$msgobj_v_4222" = bitcast i8* %"$msgobj_v_4221" to %String* - store %String { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$stringlit_4220", i32 0, i32 0), i32 6 }, %String* %"$msgobj_v_4222", align 8 - %"$msgobj_fname_4224" = getelementptr i8, i8* %"$msgobj_4206", i32 85 - %"$msgobj_fname_4225" = bitcast i8* %"$msgobj_fname_4224" to %String* - store %String { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$stringlit_4223", i32 0, i32 0), i32 7 }, %String* %"$msgobj_fname_4225", align 8 - %"$msgobj_td_4226" = getelementptr i8, i8* %"$msgobj_4206", i32 101 - %"$msgobj_td_4227" = bitcast i8* %"$msgobj_td_4226" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Uint128_94", %_TyDescrTy_Typ** %"$msgobj_td_4227", align 8 - %"$amount_4228" = load %Uint128, %Uint128* %amount, align 8 - %"$msgobj_v_4229" = getelementptr i8, i8* %"$msgobj_4206", i32 109 - %"$msgobj_v_4230" = bitcast i8* %"$msgobj_v_4229" to %Uint128* - store %Uint128 %"$amount_4228", %Uint128* %"$msgobj_v_4230", align 8 - store i8* %"$msgobj_4206", i8** %msg1, align 8, !dbg !343 - %"$gasrem_4232" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4233" = icmp ugt i64 1, %"$gasrem_4232" - br i1 %"$gascmp_4233", label %"$out_of_gas_4234", label %"$have_gas_4235" - -"$out_of_gas_4234": ; preds = %"$have_gas_4204" - call void @_out_of_gas() - br label %"$have_gas_4235" - -"$have_gas_4235": ; preds = %"$out_of_gas_4234", %"$have_gas_4204" - %"$consume_4236" = sub i64 %"$gasrem_4232", 1 - store i64 %"$consume_4236", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata i8** %msg1, metadata !759, metadata !DIExpression()), !dbg !760 + %"$gasrem_4292" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4293" = icmp ugt i64 1, %"$gasrem_4292" + br i1 %"$gascmp_4293", label %"$out_of_gas_4294", label %"$have_gas_4295" + +"$out_of_gas_4294": ; preds = %"$have_gas_4290" + call void @_out_of_gas() + br label %"$have_gas_4295" + +"$have_gas_4295": ; preds = %"$out_of_gas_4294", %"$have_gas_4290" + %"$consume_4296" = sub i64 %"$gasrem_4292", 1 + store i64 %"$consume_4296", i64* @_gasrem, align 8 + %"$msgobj_4297_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$msgobj_4297_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_4297_salloc_load", i64 125) + %"$msgobj_4297_salloc" = bitcast i8* %"$msgobj_4297_salloc_salloc" to [125 x i8]* + %"$msgobj_4297" = bitcast [125 x i8]* %"$msgobj_4297_salloc" to i8* + store i8 3, i8* %"$msgobj_4297", align 1 + %"$msgobj_fname_4299" = getelementptr i8, i8* %"$msgobj_4297", i32 1 + %"$msgobj_fname_4300" = bitcast i8* %"$msgobj_fname_4299" to %String* + store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_4298", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_4300", align 8 + %"$msgobj_td_4301" = getelementptr i8, i8* %"$msgobj_4297", i32 17 + %"$msgobj_td_4302" = bitcast i8* %"$msgobj_td_4301" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_114", %_TyDescrTy_Typ** %"$msgobj_td_4302", align 8 + %"$support_contract_4303" = load [20 x i8], [20 x i8]* @_cparam_support_contract, align 1 + %"$msgobj_v_4304" = getelementptr i8, i8* %"$msgobj_4297", i32 25 + %"$msgobj_v_4305" = bitcast i8* %"$msgobj_v_4304" to [20 x i8]* + store [20 x i8] %"$support_contract_4303", [20 x i8]* %"$msgobj_v_4305", align 1 + %"$msgobj_fname_4307" = getelementptr i8, i8* %"$msgobj_4297", i32 45 + %"$msgobj_fname_4308" = bitcast i8* %"$msgobj_fname_4307" to %String* + store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_4306", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_4308", align 8 + %"$msgobj_td_4309" = getelementptr i8, i8* %"$msgobj_4297", i32 61 + %"$msgobj_td_4310" = bitcast i8* %"$msgobj_td_4309" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_String_100", %_TyDescrTy_Typ** %"$msgobj_td_4310", align 8 + %"$msgobj_v_4312" = getelementptr i8, i8* %"$msgobj_4297", i32 69 + %"$msgobj_v_4313" = bitcast i8* %"$msgobj_v_4312" to %String* + store %String { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$stringlit_4311", i32 0, i32 0), i32 6 }, %String* %"$msgobj_v_4313", align 8 + %"$msgobj_fname_4315" = getelementptr i8, i8* %"$msgobj_4297", i32 85 + %"$msgobj_fname_4316" = bitcast i8* %"$msgobj_fname_4315" to %String* + store %String { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$stringlit_4314", i32 0, i32 0), i32 7 }, %String* %"$msgobj_fname_4316", align 8 + %"$msgobj_td_4317" = getelementptr i8, i8* %"$msgobj_4297", i32 101 + %"$msgobj_td_4318" = bitcast i8* %"$msgobj_td_4317" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Uint128_94", %_TyDescrTy_Typ** %"$msgobj_td_4318", align 8 + %"$amount_4319" = load %Uint128, %Uint128* %amount, align 8 + %"$msgobj_v_4320" = getelementptr i8, i8* %"$msgobj_4297", i32 109 + %"$msgobj_v_4321" = bitcast i8* %"$msgobj_v_4320" to %Uint128* + store %Uint128 %"$amount_4319", %Uint128* %"$msgobj_v_4321", align 8 + store i8* %"$msgobj_4297", i8** %msg1, align 8, !dbg !761 + %"$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_4325": ; preds = %"$have_gas_4295" + call void @_out_of_gas() + br label %"$have_gas_4326" + +"$have_gas_4326": ; preds = %"$out_of_gas_4325", %"$have_gas_4295" + %"$consume_4327" = sub i64 %"$gasrem_4323", 1 + store i64 %"$consume_4327", i64* @_gasrem, align 8 %msgs = alloca %TName_List_Message*, 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" + call void @llvm.dbg.declare(metadata %TName_List_Message** %msgs, metadata !762, metadata !DIExpression()), !dbg !763 + %"$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_4239": ; preds = %"$have_gas_4235" +"$out_of_gas_4330": ; preds = %"$have_gas_4326" call void @_out_of_gas() - br label %"$have_gas_4240" + br label %"$have_gas_4331" -"$have_gas_4240": ; preds = %"$out_of_gas_4239", %"$have_gas_4235" - %"$consume_4241" = sub i64 %"$gasrem_4237", 1 - store i64 %"$consume_4241", i64* @_gasrem, align 8 +"$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 %"$accounting_tests.one_msg_47" = alloca %TName_List_Message*, align 8 - %"$accounting_tests.one_msg_4242" = load { %TName_List_Message* (i8*, i8*)*, i8* }, { %TName_List_Message* (i8*, i8*)*, i8* }* @accounting_tests.one_msg, align 8 - %"$accounting_tests.one_msg_fptr_4243" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$accounting_tests.one_msg_4242", 0 - %"$accounting_tests.one_msg_envptr_4244" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$accounting_tests.one_msg_4242", 1 - %"$msg1_4245" = load i8*, i8** %msg1, align 8 - %"$accounting_tests.one_msg_call_4246" = call %TName_List_Message* %"$accounting_tests.one_msg_fptr_4243"(i8* %"$accounting_tests.one_msg_envptr_4244", i8* %"$msg1_4245"), !dbg !344 - store %TName_List_Message* %"$accounting_tests.one_msg_call_4246", %TName_List_Message** %"$accounting_tests.one_msg_47", align 8, !dbg !344 - %"$$accounting_tests.one_msg_47_4247" = load %TName_List_Message*, %TName_List_Message** %"$accounting_tests.one_msg_47", align 8 - store %TName_List_Message* %"$$accounting_tests.one_msg_47_4247", %TName_List_Message** %msgs, align 8, !dbg !344 - %"$msgs_4248" = load %TName_List_Message*, %TName_List_Message** %msgs, align 8 - %"$$msgs_4248_4249" = bitcast %TName_List_Message* %"$msgs_4248" to i8* - %"$_literal_cost_call_4250" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_120", i8* %"$$msgs_4248_4249") - %"$gasrem_4251" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4252" = icmp ugt i64 %"$_literal_cost_call_4250", %"$gasrem_4251" - br i1 %"$gascmp_4252", label %"$out_of_gas_4253", label %"$have_gas_4254" - -"$out_of_gas_4253": ; preds = %"$have_gas_4240" - call void @_out_of_gas() - br label %"$have_gas_4254" - -"$have_gas_4254": ; preds = %"$out_of_gas_4253", %"$have_gas_4240" - %"$consume_4255" = sub i64 %"$gasrem_4251", %"$_literal_cost_call_4250" - store i64 %"$consume_4255", i64* @_gasrem, align 8 - %"$execptr_load_4256" = load i8*, i8** @_execptr, align 8 - %"$msgs_4257" = load %TName_List_Message*, %TName_List_Message** %msgs, align 8 - call void @_send(i8* %"$execptr_load_4256", %_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_120", %TName_List_Message* %"$msgs_4257"), !dbg !345 + call void @llvm.dbg.declare(metadata %TName_List_Message** %"$accounting_tests.one_msg_47", metadata !764, metadata !DIExpression()), !dbg !765 + %"$accounting_tests.one_msg_4333" = load { %TName_List_Message* (i8*, i8*)*, i8* }, { %TName_List_Message* (i8*, i8*)*, i8* }* @accounting_tests.one_msg, align 8 + %"$accounting_tests.one_msg_fptr_4334" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$accounting_tests.one_msg_4333", 0 + %"$accounting_tests.one_msg_envptr_4335" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$accounting_tests.one_msg_4333", 1 + %"$msg1_4336" = load i8*, i8** %msg1, align 8 + %"$accounting_tests.one_msg_call_4337" = call %TName_List_Message* %"$accounting_tests.one_msg_fptr_4334"(i8* %"$accounting_tests.one_msg_envptr_4335", i8* %"$msg1_4336"), !dbg !765 + store %TName_List_Message* %"$accounting_tests.one_msg_call_4337", %TName_List_Message** %"$accounting_tests.one_msg_47", align 8, !dbg !765 + %"$$accounting_tests.one_msg_47_4338" = load %TName_List_Message*, %TName_List_Message** %"$accounting_tests.one_msg_47", align 8 + store %TName_List_Message* %"$$accounting_tests.one_msg_47_4338", %TName_List_Message** %msgs, align 8, !dbg !765 + %"$msgs_4339" = load %TName_List_Message*, %TName_List_Message** %msgs, align 8 + %"$$msgs_4339_4340" = bitcast %TName_List_Message* %"$msgs_4339" to i8* + %"$_literal_cost_call_4341" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_120", i8* %"$$msgs_4339_4340") + %"$gasrem_4342" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4343" = icmp ugt i64 %"$_literal_cost_call_4341", %"$gasrem_4342" + br i1 %"$gascmp_4343", label %"$out_of_gas_4344", label %"$have_gas_4345" + +"$out_of_gas_4344": ; preds = %"$have_gas_4331" + call void @_out_of_gas() + br label %"$have_gas_4345" + +"$have_gas_4345": ; preds = %"$out_of_gas_4344", %"$have_gas_4331" + %"$consume_4346" = sub i64 %"$gasrem_4342", %"$_literal_cost_call_4341" + store i64 %"$consume_4346", i64* @_gasrem, align 8 + %"$execptr_load_4347" = load i8*, i8** @_execptr, align 8 + %"$msgs_4348" = load %TName_List_Message*, %TName_List_Message** %msgs, align 8 + call void @_send(i8* %"$execptr_load_4347", %_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_120", %TName_List_Message* %"$msgs_4348"), !dbg !766 ret void } -define void @Test_Send_14(i8* %0) !dbg !346 { +define void @Test_Send_14(i8* %0) !dbg !767 { entry: - %"$_amount_4259" = getelementptr i8, i8* %0, i32 0 - %"$_amount_4260" = bitcast i8* %"$_amount_4259" to %Uint128* - %_amount = load %Uint128, %Uint128* %"$_amount_4260", align 8 - %"$_origin_4261" = getelementptr i8, i8* %0, i32 16 - %"$_origin_4262" = bitcast i8* %"$_origin_4261" to [20 x i8]* - %"$_sender_4263" = getelementptr i8, i8* %0, i32 36 - %"$_sender_4264" = bitcast i8* %"$_sender_4263" to [20 x i8]* - call void @"$Test_Send_14_4171"(%Uint128 %_amount, [20 x i8]* %"$_origin_4262", [20 x i8]* %"$_sender_4264"), !dbg !347 + %"$_amount_4353" = getelementptr i8, i8* %0, i32 0 + %"$_amount_4354" = bitcast i8* %"$_amount_4353" to %Uint128* + %_amount = load %Uint128, %Uint128* %"$_amount_4354", align 8 + %"$_origin_4355" = getelementptr i8, i8* %0, i32 16 + %"$_origin_4356" = bitcast i8* %"$_origin_4355" to [20 x i8]* + %"$_sender_4357" = getelementptr i8, i8* %0, i32 36 + %"$_sender_4358" = bitcast i8* %"$_sender_4357" to [20 x i8]* + call void @"$Test_Send_14_4262"(%Uint128 %_amount, [20 x i8]* %"$_origin_4356", [20 x i8]* %"$_sender_4358"), !dbg !768 ret void } -attributes #0 = { nofree nosync nounwind readnone speculatable willreturn } +attributes #0 = { nocallback nofree nosync nounwind readnone speculatable willreturn } !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) +!1 = distinct !DICompileUnit(language: DW_LANG_C89, file: !2, producer: "Scilla Compiler", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false) !2 = !DIFile(filename: "accounting_tests.scilla", directory: "codegen/contr") -!3 = !{} -!4 = distinct !DISubprogram(name: "$fundef_72", linkageName: "$fundef_72", scope: !5, file: !5, line: 147, type: !6, scopeLine: 147, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!5 = !DIFile(filename: "ListUtils.scillib", directory: "../src/stdlib") -!6 = !DISubroutineType(types: !7) -!7 = !{!8} -!8 = !DIBasicType(tag: DW_TAG_unspecified_type, name: "void") -!9 = !DILocation(line: 147, column: 9, scope: !4) -!10 = !DILocation(line: 149, column: 26, scope: !11) -!11 = distinct !DILexicalBlock(scope: !12, file: !5, line: 148, column: 11) -!12 = distinct !DILexicalBlock(scope: !4, file: !5, line: 147, column: 9) -!13 = !DILocation(line: 150, column: 11, scope: !11) -!14 = !DILocation(line: 151, column: 21, scope: !15) -!15 = distinct !DILexicalBlock(scope: !16, file: !5, line: 151, column: 13) -!16 = distinct !DILexicalBlock(scope: !11, file: !5, line: 150, column: 11) -!17 = !DILocation(line: 152, column: 22, scope: !18) -!18 = distinct !DILexicalBlock(scope: !16, file: !5, line: 152, column: 13) -!19 = !DILocation(line: 154, column: 18, scope: !20) -!20 = distinct !DILexicalBlock(scope: !12, file: !5, line: 154, column: 11) -!21 = distinct !DISubprogram(name: "$fundef_70", linkageName: "$fundef_70", scope: !5, file: !5, line: 146, type: !6, scopeLine: 146, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!22 = !DILocation(line: 147, column: 9, scope: !21) -!23 = distinct !DISubprogram(name: "$fundef_68", linkageName: "$fundef_68", scope: !5, file: !5, line: 145, type: !6, scopeLine: 145, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!24 = !DILocation(line: 146, column: 7, scope: !23) -!25 = distinct !DISubprogram(name: "$fundef_66", linkageName: "$fundef_66", scope: !5, file: !5, line: 143, type: !6, scopeLine: 143, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!26 = !DILocation(line: 143, column: 18, scope: !25) -!27 = !DILocation(line: 143, column: 17, scope: !25) -!28 = !DILocation(line: 145, column: 30, scope: !25) -!29 = !DILocation(line: 156, column: 21, scope: !25) -!30 = !DILocation(line: 157, column: 5, scope: !25) -!31 = !DILocation(line: 158, column: 19, scope: !32) -!32 = distinct !DILexicalBlock(scope: !33, file: !5, line: 158, column: 7) -!33 = distinct !DILexicalBlock(scope: !25, file: !5, line: 157, column: 5) -!34 = !DILocation(line: 159, column: 14, scope: !35) -!35 = distinct !DILexicalBlock(scope: !33, file: !5, line: 159, column: 7) -!36 = distinct !DISubprogram(name: "$fundef_64", linkageName: "$fundef_64", scope: !5, file: !5, line: 142, type: !6, scopeLine: 142, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!37 = !DILocation(line: 143, column: 5, scope: !36) -!38 = distinct !DISubprogram(name: "$fundef_62", linkageName: "$fundef_62", scope: !2, file: !2, line: 14, type: !6, scopeLine: 14, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!39 = !DILocation(line: 14, column: 59, scope: !38) -!40 = distinct !DISubprogram(name: "$fundef_60", linkageName: "$fundef_60", scope: !2, file: !2, line: 14, type: !6, scopeLine: 14, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!41 = !DILocation(line: 14, column: 59, scope: !40) -!42 = distinct !DISubprogram(name: "$fundef_58", linkageName: "$fundef_58", scope: !43, file: !43, line: 1, type: !6, scopeLine: 1, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!43 = !DIFile(filename: "Prelude", directory: ".") -!44 = !DILocation(line: 1, column: 94, scope: !42) -!45 = distinct !DISubprogram(name: "$fundef_56", linkageName: "$fundef_56", scope: !43, file: !43, line: 1, type: !6, scopeLine: 1, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!46 = !DILocation(line: 1, column: 37, scope: !45) -!47 = !DILocation(line: 1, column: 94, scope: !48) -!48 = distinct !DILexicalBlock(scope: !49, file: !43, line: 1, column: 52) -!49 = distinct !DILexicalBlock(scope: !45, file: !43, line: 1, column: 37) -!50 = !DILocation(line: 1, column: 106, scope: !48) -!51 = !DILocation(line: 1, column: 129, scope: !52) -!52 = distinct !DILexicalBlock(scope: !49, file: !43, line: 1, column: 122) -!53 = distinct !DISubprogram(name: "$fundef_54", linkageName: "$fundef_54", scope: !43, file: !43, line: 1, type: !6, scopeLine: 1, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!54 = !DILocation(line: 1, column: 37, scope: !53) -!55 = distinct !DISubprogram(name: "$fundef_52", linkageName: "$fundef_52", scope: !43, file: !43, line: 1, type: !6, scopeLine: 1, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!56 = !DILocation(line: 1, column: 17, scope: !55) -!57 = distinct !DISubprogram(name: "$fundef_50", linkageName: "$fundef_50", scope: !43, file: !43, line: 1, type: !6, scopeLine: 1, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!58 = !DILocation(line: 1, column: 17, scope: !57) -!59 = distinct !DISubprogram(name: "$fundef_48", linkageName: "$fundef_48", scope: !43, file: !43, line: 1, type: !6, scopeLine: 1, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!60 = !DILocation(line: 1, column: 17, scope: !59) -!61 = distinct !DISubprogram(name: "$fundef_74", linkageName: "$fundef_74", scope: !2, file: !2, line: 12, type: !6, scopeLine: 12, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!62 = !DILocation(line: 52, column: 5, scope: !61) -!63 = !DILocation(line: 53, column: 19, scope: !64) -!64 = distinct !DILexicalBlock(scope: !65, file: !2, line: 53, column: 7) -!65 = distinct !DILexicalBlock(scope: !61, file: !2, line: 52, column: 5) -!66 = !DILocation(line: 54, column: 14, scope: !67) -!67 = distinct !DILexicalBlock(scope: !65, file: !2, line: 54, column: 7) -!68 = distinct !DISubprogram(name: "$fundef_76", linkageName: "$fundef_76", scope: !2, file: !2, line: 9, type: !6, scopeLine: 9, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!69 = !DILocation(line: 9, column: 15, scope: !68) -!70 = !DILocation(line: 10, column: 5, scope: !68) -!71 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !72, file: !72, type: !6, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!72 = !DIFile(filename: ".", directory: ".") -!73 = !DILocation(line: 0, scope: !71) -!74 = !DILocation(line: 9, column: 5, scope: !71) -!75 = !DILocation(line: 12, column: 24, scope: !71) -!76 = !DILocation(line: 1, column: 17, scope: !71) -!77 = !DILocation(line: 14, column: 39, scope: !71) -!78 = !DILocation(line: 142, column: 25, scope: !71) -!79 = distinct !DISubprogram(name: "_deploy_ops", linkageName: "_deploy_ops", scope: !72, file: !72, type: !6, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!80 = !DILocation(line: 20, column: 38, scope: !79) -!81 = !DILocation(line: 21, column: 38, scope: !79) -!82 = !DILocation(line: 23, column: 35, scope: !79) -!83 = !DILocation(line: 24, column: 37, scope: !79) -!84 = distinct !DISubprogram(name: "Reset", linkageName: "Reset", scope: !2, file: !2, line: 26, type: !6, scopeLine: 26, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!85 = !DILocation(line: 27, column: 9, scope: !84) -!86 = !DILocation(line: 30, column: 10, scope: !84) -!87 = !DILocation(line: 31, column: 3, scope: !84) -!88 = !DILocation(line: 32, column: 3, scope: !84) -!89 = distinct !DISubprogram(name: "Reset", linkageName: "Reset", scope: !2, file: !2, line: 26, type: !6, scopeLine: 26, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!90 = !DILocation(line: 26, column: 12, scope: !89) -!91 = distinct !DISubprogram(name: "AssertReset", linkageName: "AssertReset", scope: !2, file: !2, line: 35, type: !6, scopeLine: 35, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!92 = !DILocation(line: 36, column: 3, scope: !91) -!93 = !DILocation(line: 37, column: 14, scope: !91) -!94 = !DILocation(line: 38, column: 3, scope: !91) -!95 = !DILocation(line: 41, column: 9, scope: !96) -!96 = distinct !DILexicalBlock(scope: !97, file: !2, line: 40, column: 5) -!97 = distinct !DILexicalBlock(scope: !91, file: !2, line: 38, column: 3) -!98 = !DILocation(line: 42, column: 5, scope: !96) -!99 = !DILocation(line: 45, column: 3, scope: !91) -!100 = !DILocation(line: 46, column: 3, scope: !91) -!101 = !DILocation(line: 47, column: 13, scope: !91) -!102 = !DILocation(line: 48, column: 3, scope: !91) -!103 = !DILocation(line: 49, column: 26, scope: !91) -!104 = !DILocation(line: 50, column: 3, scope: !91) -!105 = !DILocation(line: 53, column: 9, scope: !106) -!106 = distinct !DILexicalBlock(scope: !107, file: !2, line: 52, column: 5) -!107 = distinct !DILexicalBlock(scope: !91, file: !2, line: 50, column: 3) -!108 = !DILocation(line: 54, column: 5, scope: !106) -!109 = distinct !DISubprogram(name: "Test_Insufficient_Balance", linkageName: "Test_Insufficient_Balance", scope: !2, file: !2, line: 60, type: !6, scopeLine: 60, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!110 = !DILocation(line: 61, column: 3, scope: !109) -!111 = !DILocation(line: 62, column: 10, scope: !109) -!112 = !DILocation(line: 65, column: 10, scope: !109) -!113 = !DILocation(line: 66, column: 3, scope: !109) -!114 = distinct !DISubprogram(name: "Test_Insufficient_Balance", linkageName: "Test_Insufficient_Balance", scope: !2, file: !2, line: 60, type: !6, scopeLine: 60, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!115 = !DILocation(line: 60, column: 12, scope: !114) -!116 = distinct !DISubprogram(name: "Test_Send_1", linkageName: "Test_Send_1", scope: !2, file: !2, line: 74, type: !6, scopeLine: 74, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!117 = !DILocation(line: 75, column: 3, scope: !116) -!118 = !DILocation(line: 76, column: 3, scope: !116) -!119 = !DILocation(line: 77, column: 10, scope: !116) -!120 = !DILocation(line: 81, column: 11, scope: !116) -!121 = !DILocation(line: 82, column: 3, scope: !116) -!122 = !DILocation(line: 83, column: 3, scope: !116) -!123 = !DILocation(line: 84, column: 10, scope: !116) -!124 = !DILocation(line: 88, column: 11, scope: !116) -!125 = !DILocation(line: 89, column: 3, scope: !116) -!126 = !DILocation(line: 90, column: 15, scope: !116) -!127 = !DILocation(line: 93, column: 16, scope: !116) -!128 = !DILocation(line: 94, column: 3, scope: !116) -!129 = distinct !DISubprogram(name: "Test_Send_1", linkageName: "Test_Send_1", scope: !2, file: !2, line: 74, type: !6, scopeLine: 74, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!130 = !DILocation(line: 74, column: 12, scope: !129) -!131 = distinct !DISubprogram(name: "Finalize_Test_Send_Helper_2_Msgs", linkageName: "Finalize_Test_Send_Helper_2_Msgs", scope: !2, file: !2, line: 97, type: !6, scopeLine: 97, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!132 = !DILocation(line: 98, column: 3, scope: !131) -!133 = !DILocation(line: 99, column: 3, scope: !131) -!134 = !DILocation(line: 101, column: 15, scope: !131) -!135 = !DILocation(line: 102, column: 15, scope: !131) -!136 = !DILocation(line: 103, column: 5, scope: !131) -!137 = !DILocation(line: 104, column: 3, scope: !131) -!138 = !DILocation(line: 105, column: 9, scope: !131) -!139 = !DILocation(line: 106, column: 3, scope: !131) -!140 = !DILocation(line: 109, column: 9, scope: !141) -!141 = distinct !DILexicalBlock(scope: !142, file: !2, line: 108, column: 5) -!142 = distinct !DILexicalBlock(scope: !131, file: !2, line: 106, column: 3) -!143 = !DILocation(line: 110, column: 5, scope: !141) -!144 = distinct !DISubprogram(name: "Finalize_Test_Send_1", linkageName: "Finalize_Test_Send_1", scope: !2, file: !2, line: 115, type: !6, scopeLine: 115, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!145 = !DILocation(line: 116, column: 7, scope: !144) -!146 = !DILocation(line: 117, column: 3, scope: !144) -!147 = distinct !DISubprogram(name: "Finalize_Test_Send_1", linkageName: "Finalize_Test_Send_1", scope: !2, file: !2, line: 115, type: !6, scopeLine: 115, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!148 = !DILocation(line: 115, column: 12, scope: !147) -!149 = distinct !DISubprogram(name: "Test_Send_2", linkageName: "Test_Send_2", scope: !2, file: !2, line: 121, type: !6, scopeLine: 121, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!150 = !DILocation(line: 122, column: 3, scope: !149) -!151 = !DILocation(line: 123, column: 3, scope: !149) -!152 = !DILocation(line: 124, column: 10, scope: !149) -!153 = !DILocation(line: 128, column: 3, scope: !149) -!154 = !DILocation(line: 129, column: 10, scope: !149) -!155 = !DILocation(line: 133, column: 14, scope: !149) -!156 = !DILocation(line: 134, column: 10, scope: !149) -!157 = !DILocation(line: 135, column: 3, scope: !149) -!158 = !DILocation(line: 136, column: 15, scope: !149) -!159 = !DILocation(line: 139, column: 16, scope: !149) -!160 = !DILocation(line: 140, column: 3, scope: !149) -!161 = distinct !DISubprogram(name: "Test_Send_2", linkageName: "Test_Send_2", scope: !2, file: !2, line: 121, type: !6, scopeLine: 121, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!162 = !DILocation(line: 121, column: 12, scope: !161) -!163 = distinct !DISubprogram(name: "Finalize_Test_Send_2", linkageName: "Finalize_Test_Send_2", scope: !2, file: !2, line: 144, type: !6, scopeLine: 144, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!164 = !DILocation(line: 145, column: 7, scope: !163) -!165 = !DILocation(line: 146, column: 3, scope: !163) -!166 = distinct !DISubprogram(name: "Finalize_Test_Send_2", linkageName: "Finalize_Test_Send_2", scope: !2, file: !2, line: 144, type: !6, scopeLine: 144, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!167 = !DILocation(line: 144, column: 12, scope: !166) -!168 = distinct !DISubprogram(name: "Test_Send_3", linkageName: "Test_Send_3", scope: !2, file: !2, line: 150, type: !6, scopeLine: 150, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!169 = !DILocation(line: 151, column: 3, scope: !168) -!170 = !DILocation(line: 152, column: 3, scope: !168) -!171 = !DILocation(line: 153, column: 10, scope: !168) -!172 = !DILocation(line: 156, column: 11, scope: !168) -!173 = !DILocation(line: 157, column: 3, scope: !168) -!174 = !DILocation(line: 158, column: 3, scope: !168) -!175 = !DILocation(line: 159, column: 10, scope: !168) -!176 = !DILocation(line: 163, column: 11, scope: !168) -!177 = !DILocation(line: 164, column: 3, scope: !168) -!178 = !DILocation(line: 165, column: 15, scope: !168) -!179 = !DILocation(line: 168, column: 16, scope: !168) -!180 = !DILocation(line: 169, column: 3, scope: !168) -!181 = distinct !DISubprogram(name: "Test_Send_3", linkageName: "Test_Send_3", scope: !2, file: !2, line: 150, type: !6, scopeLine: 150, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!182 = !DILocation(line: 150, column: 12, scope: !181) -!183 = distinct !DISubprogram(name: "Test_Send_3_Helper", linkageName: "Test_Send_3_Helper", scope: !2, file: !2, line: 173, type: !6, scopeLine: 173, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!184 = !DILocation(line: 174, column: 3, scope: !183) -!185 = !DILocation(line: 175, column: 10, scope: !183) -!186 = !DILocation(line: 179, column: 11, scope: !183) -!187 = !DILocation(line: 180, column: 3, scope: !183) -!188 = distinct !DISubprogram(name: "Test_Send_3_Helper", linkageName: "Test_Send_3_Helper", scope: !2, file: !2, line: 173, type: !6, scopeLine: 173, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!189 = !DILocation(line: 173, column: 12, scope: !188) -!190 = distinct !DISubprogram(name: "Finalize_Test_Send_3", linkageName: "Finalize_Test_Send_3", scope: !2, file: !2, line: 184, type: !6, scopeLine: 184, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!191 = !DILocation(line: 185, column: 7, scope: !190) -!192 = !DILocation(line: 186, column: 3, scope: !190) -!193 = distinct !DISubprogram(name: "Finalize_Test_Send_3", linkageName: "Finalize_Test_Send_3", scope: !2, file: !2, line: 184, type: !6, scopeLine: 184, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!194 = !DILocation(line: 184, column: 12, scope: !193) -!195 = distinct !DISubprogram(name: "CheckBalance", linkageName: "CheckBalance", scope: !2, file: !2, line: 199, type: !6, scopeLine: 199, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!196 = !DILocation(line: 200, column: 3, scope: !195) -!197 = !DILocation(line: 201, column: 17, scope: !195) -!198 = !DILocation(line: 202, column: 3, scope: !195) -!199 = !DILocation(line: 205, column: 9, scope: !200) -!200 = distinct !DILexicalBlock(scope: !201, file: !2, line: 204, column: 5) -!201 = distinct !DILexicalBlock(scope: !195, file: !2, line: 202, column: 3) -!202 = !DILocation(line: 208, column: 5, scope: !200) -!203 = distinct !DISubprogram(name: "CheckSenderBalance", linkageName: "CheckSenderBalance", scope: !2, file: !2, line: 212, type: !6, scopeLine: 212, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!204 = !DILocation(line: 213, column: 3, scope: !203) -!205 = distinct !DISubprogram(name: "CheckSenderBalance", linkageName: "CheckSenderBalance", scope: !2, file: !2, line: 212, type: !6, scopeLine: 212, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!206 = !DILocation(line: 212, column: 12, scope: !205) -!207 = distinct !DISubprogram(name: "CheckSupportBalance", linkageName: "CheckSupportBalance", scope: !2, file: !2, line: 216, type: !6, scopeLine: 216, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!208 = !DILocation(line: 217, column: 3, scope: !207) -!209 = !DILocation(line: 218, column: 17, scope: !207) -!210 = !DILocation(line: 219, column: 3, scope: !207) -!211 = !DILocation(line: 222, column: 9, scope: !212) -!212 = distinct !DILexicalBlock(scope: !213, file: !2, line: 221, column: 5) -!213 = distinct !DILexicalBlock(scope: !207, file: !2, line: 219, column: 3) -!214 = !DILocation(line: 225, column: 5, scope: !212) -!215 = distinct !DISubprogram(name: "CheckRecipientBalance", linkageName: "CheckRecipientBalance", scope: !2, file: !2, line: 229, type: !6, scopeLine: 229, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!216 = !DILocation(line: 230, column: 3, scope: !215) -!217 = distinct !DISubprogram(name: "CheckRecipientBalance", linkageName: "CheckRecipientBalance", scope: !2, file: !2, line: 229, type: !6, scopeLine: 229, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!218 = !DILocation(line: 229, column: 12, scope: !217) -!219 = distinct !DISubprogram(name: "Test_Send_4", linkageName: "Test_Send_4", scope: !2, file: !2, line: 234, type: !6, scopeLine: 234, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!220 = !DILocation(line: 235, column: 3, scope: !219) -!221 = !DILocation(line: 236, column: 3, scope: !219) -!222 = !DILocation(line: 237, column: 3, scope: !219) -!223 = !DILocation(line: 238, column: 10, scope: !219) -!224 = !DILocation(line: 241, column: 11, scope: !219) -!225 = !DILocation(line: 242, column: 3, scope: !219) -!226 = !DILocation(line: 243, column: 35, scope: !219) -!227 = !DILocation(line: 244, column: 3, scope: !219) -!228 = !DILocation(line: 245, column: 10, scope: !219) -!229 = !DILocation(line: 248, column: 11, scope: !219) -!230 = !DILocation(line: 249, column: 3, scope: !219) -!231 = !DILocation(line: 250, column: 28, scope: !219) -!232 = !DILocation(line: 251, column: 3, scope: !219) -!233 = distinct !DISubprogram(name: "Test_Send_4", linkageName: "Test_Send_4", scope: !2, file: !2, line: 234, type: !6, scopeLine: 234, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!234 = !DILocation(line: 234, column: 12, scope: !233) -!235 = distinct !DISubprogram(name: "Test_Send_5", linkageName: "Test_Send_5", scope: !2, file: !2, line: 255, type: !6, scopeLine: 255, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!236 = !DILocation(line: 256, column: 3, scope: !235) -!237 = !DILocation(line: 257, column: 3, scope: !235) -!238 = !DILocation(line: 258, column: 3, scope: !235) -!239 = !DILocation(line: 259, column: 10, scope: !235) -!240 = !DILocation(line: 262, column: 10, scope: !235) -!241 = !DILocation(line: 265, column: 14, scope: !235) -!242 = !DILocation(line: 266, column: 10, scope: !235) -!243 = !DILocation(line: 267, column: 3, scope: !235) -!244 = !DILocation(line: 268, column: 35, scope: !235) -!245 = !DILocation(line: 269, column: 28, scope: !235) -!246 = !DILocation(line: 270, column: 3, scope: !235) -!247 = distinct !DISubprogram(name: "Test_Send_5", linkageName: "Test_Send_5", scope: !2, file: !2, line: 255, type: !6, scopeLine: 255, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!248 = !DILocation(line: 255, column: 12, scope: !247) -!249 = distinct !DISubprogram(name: "Test_Send_6", linkageName: "Test_Send_6", scope: !2, file: !2, line: 274, type: !6, scopeLine: 274, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!250 = !DILocation(line: 275, column: 3, scope: !249) -!251 = !DILocation(line: 276, column: 3, scope: !249) -!252 = !DILocation(line: 277, column: 3, scope: !249) -!253 = !DILocation(line: 278, column: 10, scope: !249) -!254 = !DILocation(line: 281, column: 11, scope: !249) -!255 = !DILocation(line: 282, column: 3, scope: !249) -!256 = !DILocation(line: 283, column: 22, scope: !249) -!257 = !DILocation(line: 284, column: 10, scope: !249) -!258 = !DILocation(line: 288, column: 11, scope: !249) -!259 = !DILocation(line: 289, column: 3, scope: !249) -!260 = distinct !DISubprogram(name: "Test_Send_6", linkageName: "Test_Send_6", scope: !2, file: !2, line: 274, type: !6, scopeLine: 274, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!261 = !DILocation(line: 274, column: 12, scope: !260) -!262 = distinct !DISubprogram(name: "Test_Send_7", linkageName: "Test_Send_7", scope: !2, file: !2, line: 293, type: !6, scopeLine: 293, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!263 = !DILocation(line: 294, column: 3, scope: !262) -!264 = !DILocation(line: 295, column: 3, scope: !262) -!265 = !DILocation(line: 296, column: 3, scope: !262) -!266 = !DILocation(line: 297, column: 10, scope: !262) -!267 = !DILocation(line: 300, column: 11, scope: !262) -!268 = !DILocation(line: 301, column: 3, scope: !262) -!269 = !DILocation(line: 302, column: 10, scope: !262) -!270 = !DILocation(line: 306, column: 11, scope: !262) -!271 = !DILocation(line: 307, column: 3, scope: !262) -!272 = distinct !DISubprogram(name: "Test_Send_7", linkageName: "Test_Send_7", scope: !2, file: !2, line: 293, type: !6, scopeLine: 293, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!273 = !DILocation(line: 293, column: 12, scope: !272) -!274 = distinct !DISubprogram(name: "Test_Send_8", linkageName: "Test_Send_8", scope: !2, file: !2, line: 311, type: !6, scopeLine: 311, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!275 = !DILocation(line: 312, column: 3, scope: !274) -!276 = !DILocation(line: 313, column: 3, scope: !274) -!277 = !DILocation(line: 314, column: 10, scope: !274) -!278 = !DILocation(line: 317, column: 11, scope: !274) -!279 = !DILocation(line: 318, column: 3, scope: !274) -!280 = !DILocation(line: 319, column: 3, scope: !274) -!281 = !DILocation(line: 320, column: 22, scope: !274) -!282 = !DILocation(line: 321, column: 10, scope: !274) -!283 = !DILocation(line: 325, column: 11, scope: !274) -!284 = !DILocation(line: 326, column: 3, scope: !274) -!285 = distinct !DISubprogram(name: "Test_Send_8", linkageName: "Test_Send_8", scope: !2, file: !2, line: 311, type: !6, scopeLine: 311, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!286 = !DILocation(line: 311, column: 12, scope: !285) -!287 = distinct !DISubprogram(name: "Test_Send_9", linkageName: "Test_Send_9", scope: !2, file: !2, line: 330, type: !6, scopeLine: 330, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!288 = !DILocation(line: 331, column: 3, scope: !287) -!289 = !DILocation(line: 332, column: 3, scope: !287) -!290 = !DILocation(line: 333, column: 10, scope: !287) -!291 = !DILocation(line: 336, column: 11, scope: !287) -!292 = !DILocation(line: 337, column: 3, scope: !287) -!293 = !DILocation(line: 338, column: 3, scope: !287) -!294 = !DILocation(line: 339, column: 10, scope: !287) -!295 = !DILocation(line: 343, column: 11, scope: !287) -!296 = !DILocation(line: 344, column: 3, scope: !287) -!297 = distinct !DISubprogram(name: "Test_Send_9", linkageName: "Test_Send_9", scope: !2, file: !2, line: 330, type: !6, scopeLine: 330, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!298 = !DILocation(line: 330, column: 12, scope: !297) -!299 = distinct !DISubprogram(name: "Test_Send_10", linkageName: "Test_Send_10", scope: !2, file: !2, line: 348, type: !6, scopeLine: 348, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!300 = !DILocation(line: 349, column: 3, scope: !299) -!301 = !DILocation(line: 350, column: 3, scope: !299) -!302 = !DILocation(line: 351, column: 10, scope: !299) -!303 = !DILocation(line: 354, column: 10, scope: !299) -!304 = !DILocation(line: 355, column: 3, scope: !299) -!305 = distinct !DISubprogram(name: "Test_Send_10", linkageName: "Test_Send_10", scope: !2, file: !2, line: 348, type: !6, scopeLine: 348, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!306 = !DILocation(line: 348, column: 12, scope: !305) -!307 = distinct !DISubprogram(name: "Test_Send_11", linkageName: "Test_Send_11", scope: !2, file: !2, line: 359, type: !6, scopeLine: 359, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!308 = !DILocation(line: 360, column: 3, scope: !307) -!309 = !DILocation(line: 361, column: 3, scope: !307) -!310 = !DILocation(line: 362, column: 10, scope: !307) -!311 = !DILocation(line: 365, column: 10, scope: !307) -!312 = !DILocation(line: 366, column: 3, scope: !307) -!313 = distinct !DISubprogram(name: "Test_Send_11", linkageName: "Test_Send_11", scope: !2, file: !2, line: 359, type: !6, scopeLine: 359, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!314 = !DILocation(line: 359, column: 12, scope: !313) -!315 = distinct !DISubprogram(name: "Test_Send_12", linkageName: "Test_Send_12", scope: !2, file: !2, line: 370, type: !6, scopeLine: 370, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!316 = !DILocation(line: 371, column: 3, scope: !315) -!317 = !DILocation(line: 372, column: 3, scope: !315) -!318 = !DILocation(line: 373, column: 10, scope: !315) -!319 = !DILocation(line: 376, column: 11, scope: !315) -!320 = !DILocation(line: 377, column: 3, scope: !315) -!321 = !DILocation(line: 378, column: 22, scope: !315) -!322 = !DILocation(line: 379, column: 10, scope: !315) -!323 = !DILocation(line: 383, column: 11, scope: !315) -!324 = !DILocation(line: 384, column: 3, scope: !315) -!325 = distinct !DISubprogram(name: "Test_Send_12", linkageName: "Test_Send_12", scope: !2, file: !2, line: 370, type: !6, scopeLine: 370, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!326 = !DILocation(line: 370, column: 12, scope: !325) -!327 = distinct !DISubprogram(name: "Test_Send_13", linkageName: "Test_Send_13", scope: !2, file: !2, line: 388, type: !6, scopeLine: 388, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!328 = !DILocation(line: 390, column: 3, scope: !327) -!329 = !DILocation(line: 391, column: 3, scope: !327) -!330 = !DILocation(line: 392, column: 10, scope: !327) -!331 = !DILocation(line: 395, column: 11, scope: !327) -!332 = !DILocation(line: 396, column: 3, scope: !327) -!333 = !DILocation(line: 397, column: 3, scope: !327) -!334 = !DILocation(line: 398, column: 22, scope: !327) -!335 = !DILocation(line: 399, column: 10, scope: !327) -!336 = !DILocation(line: 403, column: 11, scope: !327) -!337 = !DILocation(line: 404, column: 3, scope: !327) -!338 = distinct !DISubprogram(name: "Test_Send_13", linkageName: "Test_Send_13", scope: !2, file: !2, line: 388, type: !6, scopeLine: 388, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!339 = !DILocation(line: 388, column: 12, scope: !338) -!340 = distinct !DISubprogram(name: "Test_Send_14", linkageName: "Test_Send_14", scope: !2, file: !2, line: 408, type: !6, scopeLine: 408, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!341 = !DILocation(line: 409, column: 3, scope: !340) -!342 = !DILocation(line: 410, column: 3, scope: !340) -!343 = !DILocation(line: 411, column: 10, scope: !340) -!344 = !DILocation(line: 414, column: 10, scope: !340) -!345 = !DILocation(line: 415, column: 3, scope: !340) -!346 = distinct !DISubprogram(name: "Test_Send_14", linkageName: "Test_Send_14", scope: !2, file: !2, line: 408, type: !6, scopeLine: 408, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!347 = !DILocation(line: 408, column: 12, scope: !346) +!3 = distinct !DISubprogram(name: "$fundef_72", linkageName: "$fundef_72", scope: !4, file: !4, line: 147, type: !5, scopeLine: 147, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!4 = !DIFile(filename: "ListUtils.scillib", directory: "../src/stdlib") +!5 = !DISubroutineType(types: !6) +!6 = !{!7} +!7 = !DIBasicType(tag: DW_TAG_unspecified_type, name: "void") +!8 = !{} +!9 = !DILocalVariable(name: "$retval_73", scope: !3, file: !4, line: 147, type: !10) +!10 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "List (String)", baseType: !11, size: 8, align: 8, dwarfAddressSpace: 0) +!11 = !DIBasicType(name: "List (String)", size: 8) +!12 = !DILocation(line: 147, column: 9, scope: !3) +!13 = !DILocalVariable(name: "eq_x1_x2", scope: !14, file: !4, line: 149, type: !16) +!14 = distinct !DILexicalBlock(scope: !15, file: !4, line: 148, column: 11) +!15 = distinct !DILexicalBlock(scope: !3, file: !4, line: 147, column: 9) +!16 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "Bool", baseType: !17, size: 8, align: 8, dwarfAddressSpace: 0) +!17 = !DIBasicType(name: "Bool", size: 8) +!18 = !DILocation(line: 149, column: 15, scope: !14) +!19 = !DILocation(line: 149, column: 26, scope: !14) +!20 = !DILocalVariable(name: "$equal_11", scope: !14, file: !4, line: 149, type: !16) +!21 = !DILocation(line: 150, column: 11, scope: !14) +!22 = !DILocalVariable(name: "$recurse_12", scope: !23, file: !4, line: 151, type: !10) +!23 = distinct !DILexicalBlock(scope: !24, file: !4, line: 151, column: 13) +!24 = distinct !DILexicalBlock(scope: !14, file: !4, line: 150, column: 11) +!25 = !DILocation(line: 151, column: 21, scope: !23) +!26 = !DILocation(line: 152, column: 22, scope: !27) +!27 = distinct !DILexicalBlock(scope: !24, file: !4, line: 152, column: 13) +!28 = !DILocation(line: 154, column: 18, scope: !29) +!29 = distinct !DILexicalBlock(scope: !15, file: !4, line: 154, column: 11) +!30 = distinct !DISubprogram(name: "$fundef_70", linkageName: "$fundef_70", scope: !4, file: !4, line: 146, type: !5, scopeLine: 146, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!31 = !DILocalVariable(name: "x1", scope: !30, file: !4, line: 145, type: !32) +!32 = !DIBasicType(name: "String", size: 16) +!33 = !DILocation(line: 145, column: 35, scope: !30) +!34 = !DILocation(line: 147, column: 9, scope: !30) +!35 = distinct !DISubprogram(name: "$fundef_68", linkageName: "$fundef_68", scope: !4, file: !4, line: 145, type: !5, scopeLine: 145, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!36 = !DILocalVariable(name: "xs2", scope: !35, file: !4, line: 145, type: !10) +!37 = !DILocation(line: 145, column: 12, scope: !35) +!38 = !DILocation(line: 146, column: 7, scope: !35) +!39 = distinct !DISubprogram(name: "$fundef_66", linkageName: "$fundef_66", scope: !4, file: !4, line: 143, type: !5, scopeLine: 143, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!40 = !DILocalVariable(name: "l2", scope: !39, file: !4, line: 142, type: !10) +!41 = !DILocation(line: 142, column: 30, scope: !39) +!42 = !DILocalVariable(name: "$retval_67", scope: !39, file: !4, line: 143, type: !16) +!43 = !DILocation(line: 143, column: 5, scope: !39) +!44 = !DILocation(line: 143, column: 18, scope: !39) +!45 = !DILocation(line: 143, column: 17, scope: !39) +!46 = !DILocation(line: 145, column: 30, scope: !39) +!47 = !DILocalVariable(name: "remaining", scope: !39, file: !4, line: 156, type: !10) +!48 = !DILocation(line: 156, column: 9, scope: !39) +!49 = !DILocation(line: 156, column: 21, scope: !39) +!50 = !DILocalVariable(name: "$foldk_15", scope: !39, file: !4, line: 156, type: !10) +!51 = !DILocation(line: 157, column: 5, scope: !39) +!52 = !DILocation(line: 158, column: 19, scope: !53) +!53 = distinct !DILexicalBlock(scope: !54, file: !4, line: 158, column: 7) +!54 = distinct !DILexicalBlock(scope: !39, file: !4, line: 157, column: 5) +!55 = !DILocation(line: 159, column: 14, scope: !56) +!56 = distinct !DILexicalBlock(scope: !54, file: !4, line: 159, column: 7) +!57 = distinct !DISubprogram(name: "$fundef_64", linkageName: "$fundef_64", scope: !4, file: !4, line: 142, type: !5, scopeLine: 142, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!58 = !DILocalVariable(name: "l1", scope: !57, file: !4, line: 142, type: !10) +!59 = !DILocation(line: 142, column: 8, scope: !57) +!60 = !DILocation(line: 143, column: 5, scope: !57) +!61 = distinct !DISubprogram(name: "$fundef_62", linkageName: "$fundef_62", scope: !2, file: !2, line: 14, type: !5, scopeLine: 14, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!62 = !DILocalVariable(name: "y", scope: !61, file: !2, line: 14, type: !32) +!63 = !DILocation(line: 14, column: 44, scope: !61) +!64 = !DILocalVariable(name: "$retval_63", scope: !61, file: !2, line: 14, type: !16) +!65 = !DILocation(line: 14, column: 59, scope: !61) +!66 = distinct !DISubprogram(name: "$fundef_60", linkageName: "$fundef_60", scope: !2, file: !2, line: 14, type: !5, scopeLine: 14, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!67 = !DILocalVariable(name: "x", scope: !66, file: !2, line: 14, type: !32) +!68 = !DILocation(line: 14, column: 24, scope: !66) +!69 = !DILocation(line: 14, column: 59, scope: !66) +!70 = distinct !DISubprogram(name: "$fundef_58", linkageName: "$fundef_58", scope: !71, file: !71, line: 1, type: !5, scopeLine: 1, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!71 = !DIFile(filename: "Prelude", directory: ".") +!72 = !DILocalVariable(name: "k", scope: !70, file: !71, line: 1, type: !10) +!73 = !DILocation(line: 1, column: 83, scope: !70) +!74 = !DILocalVariable(name: "$retval_59", scope: !70, file: !71, line: 1, type: !10) +!75 = !DILocation(line: 1, column: 94, scope: !70) +!76 = !DILocalVariable(name: "$g_6", scope: !70, file: !71, line: 1, type: !10) +!77 = distinct !DISubprogram(name: "$fundef_56", linkageName: "$fundef_56", scope: !71, file: !71, line: 1, type: !5, scopeLine: 1, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!78 = !DILocalVariable(name: "l", scope: !77, file: !71, line: 1, type: !10) +!79 = !DILocation(line: 1, column: 22, scope: !77) +!80 = !DILocalVariable(name: "$retval_57", scope: !77, file: !71, line: 1, type: !10) +!81 = !DILocation(line: 1, column: 37, scope: !77) +!82 = !DILocation(line: 1, column: 94, scope: !83) +!83 = distinct !DILexicalBlock(scope: !84, file: !71, line: 1, column: 52) +!84 = distinct !DILexicalBlock(scope: !77, file: !71, line: 1, column: 37) +!85 = !DILocation(line: 1, column: 106, scope: !83) +!86 = !DILocalVariable(name: "$f_9", scope: !83, file: !71, line: 1, type: !10) +!87 = !DILocation(line: 1, column: 129, scope: !88) +!88 = distinct !DILexicalBlock(scope: !84, file: !71, line: 1, column: 122) +!89 = distinct !DISubprogram(name: "$fundef_54", linkageName: "$fundef_54", scope: !71, file: !71, line: 1, type: !5, scopeLine: 1, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!90 = !DILocalVariable(name: "z", scope: !89, file: !71, line: 1, type: !10) +!91 = !DILocation(line: 1, column: 6, scope: !89) +!92 = !DILocation(line: 1, column: 37, scope: !89) +!93 = distinct !DISubprogram(name: "$fundef_52", linkageName: "$fundef_52", scope: !71, file: !71, line: 1, type: !5, scopeLine: 1, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!94 = !DILocation(line: 1, column: 17, scope: !93) +!95 = distinct !DISubprogram(name: "$fundef_50", linkageName: "$fundef_50", scope: !71, file: !71, line: 1, type: !5, scopeLine: 1, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!96 = !DILocation(line: 1, column: 17, scope: !95) +!97 = distinct !DISubprogram(name: "$fundef_48", linkageName: "$fundef_48", scope: !71, file: !71, line: 1, type: !5, scopeLine: 1, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!98 = !DILocation(line: 1, column: 17, scope: !97) +!99 = distinct !DISubprogram(name: "$fundef_74", linkageName: "$fundef_74", scope: !2, file: !2, line: 12, type: !5, scopeLine: 12, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!100 = !DILocalVariable(name: "l", scope: !99, file: !4, line: 51, type: !10) +!101 = !DILocation(line: 51, column: 8, scope: !99) +!102 = !DILocalVariable(name: "$retval_75", scope: !99, file: !2, line: 12, type: !103) +!103 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "Option (String)", baseType: !104, size: 8, align: 8, dwarfAddressSpace: 0) +!104 = !DIBasicType(name: "Option (String)", size: 8) +!105 = !DILocation(line: 12, column: 24, scope: !99) +!106 = !DILocation(line: 52, column: 5, scope: !99) +!107 = !DILocation(line: 53, column: 19, scope: !108) +!108 = distinct !DILexicalBlock(scope: !109, file: !2, line: 53, column: 7) +!109 = distinct !DILexicalBlock(scope: !99, file: !2, line: 52, column: 5) +!110 = !DILocation(line: 54, column: 14, scope: !111) +!111 = distinct !DILexicalBlock(scope: !109, file: !2, line: 54, column: 7) +!112 = distinct !DISubprogram(name: "$fundef_76", linkageName: "$fundef_76", scope: !2, file: !2, line: 9, type: !5, scopeLine: 9, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!113 = !DILocalVariable(name: "m", scope: !112, file: !2, line: 8, type: !114) +!114 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "Message", baseType: !115, size: 8, align: 8, dwarfAddressSpace: 0) +!115 = !DIBasicType(name: "Message", size: 8) +!116 = !DILocation(line: 8, column: 8, scope: !112) +!117 = !DILocalVariable(name: "$retval_77", scope: !112, file: !2, line: 9, type: !118) +!118 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "List (Message)", baseType: !119, size: 8, align: 8, dwarfAddressSpace: 0) +!119 = !DIBasicType(name: "List (Message)", size: 8) +!120 = !DILocation(line: 9, column: 5, scope: !112) +!121 = !DILocalVariable(name: "mty", scope: !112, file: !2, line: 9, type: !118) +!122 = !DILocation(line: 9, column: 9, scope: !112) +!123 = !DILocation(line: 9, column: 15, scope: !112) +!124 = !DILocation(line: 10, column: 5, scope: !112) +!125 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !126, file: !126, type: !5, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!126 = !DIFile(filename: ".", directory: ".") +!127 = !DILocation(line: 0, scope: !125) +!128 = !DILocation(line: 9, column: 5, scope: !125) +!129 = !DILocation(line: 12, column: 24, scope: !125) +!130 = !DILocation(line: 1, column: 17, scope: !125) +!131 = !DILocation(line: 14, column: 39, scope: !125) +!132 = !DILocation(line: 142, column: 25, scope: !125) +!133 = distinct !DISubprogram(name: "_deploy_ops", linkageName: "_deploy_ops", scope: !126, file: !126, type: !5, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!134 = !DILocalVariable(name: "$test_string_1_78", scope: !133, file: !2, line: 20, type: !32) +!135 = !DILocation(line: 20, column: 7, scope: !133) +!136 = !DILocation(line: 20, column: 38, scope: !133) +!137 = !DILocalVariable(name: "$test_string_2_79", scope: !133, file: !2, line: 21, type: !32) +!138 = !DILocation(line: 21, column: 7, scope: !133) +!139 = !DILocation(line: 21, column: 38, scope: !133) +!140 = !DILocalVariable(name: "$outgoing_amount_80", scope: !133, file: !2, line: 23, type: !141) +!141 = !DIBasicType(name: "Uint128", size: 16) +!142 = !DILocation(line: 23, column: 7, scope: !133) +!143 = !DILocation(line: 23, column: 35, scope: !133) +!144 = !DILocalVariable(name: "$max_outgoing_msgs_81", scope: !133, file: !2, line: 24, type: !141) +!145 = !DILocation(line: 24, column: 7, scope: !133) +!146 = !DILocation(line: 24, column: 37, scope: !133) +!147 = distinct !DISubprogram(name: "Reset", linkageName: "Reset", scope: !2, file: !2, line: 26, type: !5, scopeLine: 26, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!148 = !DILocalVariable(name: "_sender", scope: !147, file: !2, line: 26, type: !149) +!149 = !DIBasicType(name: "ByStr20 with end", size: 20) +!150 = !DILocation(line: 26, column: 12, scope: !147) +!151 = !DILocalVariable(name: "_origin", scope: !147, file: !2, line: 26, type: !149) +!152 = !DILocalVariable(name: "_amount", scope: !147, file: !2, line: 26, type: !141) +!153 = !DILocalVariable(name: "msg", scope: !147, file: !2, line: 27, type: !114) +!154 = !DILocation(line: 27, column: 3, scope: !147) +!155 = !DILocation(line: 27, column: 9, scope: !147) +!156 = !DILocalVariable(name: "msgs", scope: !147, file: !2, line: 30, type: !118) +!157 = !DILocation(line: 30, column: 3, scope: !147) +!158 = !DILocalVariable(name: "$accounting_tests.one_msg_16", scope: !147, file: !2, line: 30, type: !118) +!159 = !DILocation(line: 30, column: 10, scope: !147) +!160 = !DILocation(line: 31, column: 3, scope: !147) +!161 = !DILocation(line: 32, column: 3, scope: !147) +!162 = distinct !DISubprogram(name: "Reset", linkageName: "Reset", scope: !2, file: !2, line: 26, type: !5, scopeLine: 26, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!163 = !DILocation(line: 26, column: 12, scope: !162) +!164 = distinct !DISubprogram(name: "AssertReset", linkageName: "AssertReset", scope: !2, file: !2, line: 35, type: !5, scopeLine: 35, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!165 = !DILocalVariable(name: "_sender", scope: !164, file: !2, line: 35, type: !149) +!166 = !DILocation(line: 35, column: 11, scope: !164) +!167 = !DILocalVariable(name: "_origin", scope: !164, file: !2, line: 35, type: !149) +!168 = !DILocalVariable(name: "_amount", scope: !164, file: !2, line: 35, type: !141) +!169 = !DILocalVariable(name: "ss", scope: !164, file: !2, line: 36, type: !10) +!170 = !DILocation(line: 36, column: 3, scope: !164) +!171 = !DILocalVariable(name: "cur_head", scope: !164, file: !2, line: 37, type: !103) +!172 = !DILocation(line: 37, column: 3, scope: !164) +!173 = !DILocalVariable(name: "$accounting_tests.list_head_string_17", scope: !164, file: !2, line: 37, type: !103) +!174 = !DILocation(line: 37, column: 14, scope: !164) +!175 = !DILocation(line: 38, column: 3, scope: !164) +!176 = !DILocalVariable(name: "e", scope: !177, file: !2, line: 41, type: !179) +!177 = distinct !DILexicalBlock(scope: !178, file: !2, line: 40, column: 5) +!178 = distinct !DILexicalBlock(scope: !164, file: !2, line: 38, column: 3) +!179 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "Exception", baseType: !180, size: 8, align: 8, dwarfAddressSpace: 0) +!180 = !DIBasicType(name: "Exception", size: 8) +!181 = !DILocation(line: 41, column: 5, scope: !177) +!182 = !DILocation(line: 41, column: 9, scope: !177) +!183 = !DILocation(line: 42, column: 5, scope: !177) +!184 = !DILocalVariable(name: "amount", scope: !164, file: !2, line: 45, type: !141) +!185 = !DILocation(line: 45, column: 3, scope: !164) +!186 = !DILocalVariable(name: "max_msgs", scope: !164, file: !2, line: 46, type: !141) +!187 = !DILocation(line: 46, column: 3, scope: !164) +!188 = !DILocalVariable(name: "minimum", scope: !164, file: !2, line: 47, type: !141) +!189 = !DILocation(line: 47, column: 3, scope: !164) +!190 = !DILocation(line: 47, column: 13, scope: !164) +!191 = !DILocalVariable(name: "bal", scope: !164, file: !2, line: 48, type: !141) +!192 = !DILocation(line: 48, column: 3, scope: !164) +!193 = !DILocalVariable(name: "insufficient_balance", scope: !164, file: !2, line: 49, type: !16) +!194 = !DILocation(line: 49, column: 3, scope: !164) +!195 = !DILocation(line: 49, column: 26, scope: !164) +!196 = !DILocation(line: 50, column: 3, scope: !164) +!197 = !DILocalVariable(name: "e", scope: !198, file: !2, line: 53, type: !179) +!198 = distinct !DILexicalBlock(scope: !199, file: !2, line: 52, column: 5) +!199 = distinct !DILexicalBlock(scope: !164, file: !2, line: 50, column: 3) +!200 = !DILocation(line: 53, column: 5, scope: !198) +!201 = !DILocation(line: 53, column: 9, scope: !198) +!202 = !DILocation(line: 54, column: 5, scope: !198) +!203 = distinct !DISubprogram(name: "Test_Insufficient_Balance", linkageName: "Test_Insufficient_Balance", scope: !2, file: !2, line: 60, type: !5, scopeLine: 60, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!204 = !DILocalVariable(name: "_sender", scope: !203, file: !2, line: 60, type: !149) +!205 = !DILocation(line: 60, column: 12, scope: !203) +!206 = !DILocalVariable(name: "_origin", scope: !203, file: !2, line: 60, type: !149) +!207 = !DILocalVariable(name: "_amount", scope: !203, file: !2, line: 60, type: !141) +!208 = !DILocalVariable(name: "amount", scope: !203, file: !2, line: 61, type: !141) +!209 = !DILocation(line: 61, column: 3, scope: !203) +!210 = !DILocalVariable(name: "msg1", scope: !203, file: !2, line: 62, type: !114) +!211 = !DILocation(line: 62, column: 3, scope: !203) +!212 = !DILocation(line: 62, column: 10, scope: !203) +!213 = !DILocalVariable(name: "msgs", scope: !203, file: !2, line: 65, type: !118) +!214 = !DILocation(line: 65, column: 3, scope: !203) +!215 = !DILocalVariable(name: "$accounting_tests.one_msg_18", scope: !203, file: !2, line: 65, type: !118) +!216 = !DILocation(line: 65, column: 10, scope: !203) +!217 = !DILocation(line: 66, column: 3, scope: !203) +!218 = distinct !DISubprogram(name: "Test_Insufficient_Balance", linkageName: "Test_Insufficient_Balance", scope: !2, file: !2, line: 60, type: !5, scopeLine: 60, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!219 = !DILocation(line: 60, column: 12, scope: !218) +!220 = distinct !DISubprogram(name: "Test_Send_1", linkageName: "Test_Send_1", scope: !2, file: !2, line: 74, type: !5, scopeLine: 74, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!221 = !DILocalVariable(name: "_sender", scope: !220, file: !2, line: 74, type: !149) +!222 = !DILocation(line: 74, column: 12, scope: !220) +!223 = !DILocalVariable(name: "_origin", scope: !220, file: !2, line: 74, type: !149) +!224 = !DILocalVariable(name: "_amount", scope: !220, file: !2, line: 74, type: !141) +!225 = !DILocation(line: 75, column: 3, scope: !220) +!226 = !DILocalVariable(name: "s1", scope: !220, file: !2, line: 76, type: !32) +!227 = !DILocation(line: 76, column: 3, scope: !220) +!228 = !DILocalVariable(name: "msg1", scope: !220, file: !2, line: 77, type: !114) +!229 = !DILocation(line: 77, column: 3, scope: !220) +!230 = !DILocation(line: 77, column: 10, scope: !220) +!231 = !DILocalVariable(name: "msgs1", scope: !220, file: !2, line: 81, type: !118) +!232 = !DILocation(line: 81, column: 3, scope: !220) +!233 = !DILocalVariable(name: "$accounting_tests.one_msg_21", scope: !220, file: !2, line: 81, type: !118) +!234 = !DILocation(line: 81, column: 11, scope: !220) +!235 = !DILocation(line: 82, column: 3, scope: !220) +!236 = !DILocalVariable(name: "s2", scope: !220, file: !2, line: 83, type: !32) +!237 = !DILocation(line: 83, column: 3, scope: !220) +!238 = !DILocalVariable(name: "msg2", scope: !220, file: !2, line: 84, type: !114) +!239 = !DILocation(line: 84, column: 3, scope: !220) +!240 = !DILocation(line: 84, column: 10, scope: !220) +!241 = !DILocalVariable(name: "msgs2", scope: !220, file: !2, line: 88, type: !118) +!242 = !DILocation(line: 88, column: 3, scope: !220) +!243 = !DILocalVariable(name: "$accounting_tests.one_msg_20", scope: !220, file: !2, line: 88, type: !118) +!244 = !DILocation(line: 88, column: 11, scope: !220) +!245 = !DILocation(line: 89, column: 3, scope: !220) +!246 = !DILocalVariable(name: "msg_final", scope: !220, file: !2, line: 90, type: !114) +!247 = !DILocation(line: 90, column: 3, scope: !220) +!248 = !DILocation(line: 90, column: 15, scope: !220) +!249 = !DILocalVariable(name: "msgs_final", scope: !220, file: !2, line: 93, type: !118) +!250 = !DILocation(line: 93, column: 3, scope: !220) +!251 = !DILocalVariable(name: "$accounting_tests.one_msg_19", scope: !220, file: !2, line: 93, type: !118) +!252 = !DILocation(line: 93, column: 16, scope: !220) +!253 = !DILocation(line: 94, column: 3, scope: !220) +!254 = distinct !DISubprogram(name: "Test_Send_1", linkageName: "Test_Send_1", scope: !2, file: !2, line: 74, type: !5, scopeLine: 74, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!255 = !DILocation(line: 74, column: 12, scope: !254) +!256 = distinct !DISubprogram(name: "Finalize_Test_Send_Helper_2_Msgs", linkageName: "Finalize_Test_Send_Helper_2_Msgs", scope: !2, file: !2, line: 97, type: !5, scopeLine: 97, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!257 = !DILocalVariable(name: "test_no", scope: !256, file: !2, line: 97, type: !141) +!258 = !DILocation(line: 97, column: 44, scope: !256) +!259 = !DILocalVariable(name: "_sender", scope: !256, file: !2, line: 97, type: !149) +!260 = !DILocation(line: 97, column: 11, scope: !256) +!261 = !DILocalVariable(name: "_origin", scope: !256, file: !2, line: 97, type: !149) +!262 = !DILocalVariable(name: "_amount", scope: !256, file: !2, line: 97, type: !141) +!263 = !DILocalVariable(name: "s1", scope: !256, file: !2, line: 98, type: !32) +!264 = !DILocation(line: 98, column: 3, scope: !256) +!265 = !DILocalVariable(name: "s2", scope: !256, file: !2, line: 99, type: !32) +!266 = !DILocation(line: 99, column: 3, scope: !256) +!267 = !DILocalVariable(name: "expected", scope: !256, file: !2, line: 100, type: !10) +!268 = !DILocation(line: 100, column: 3, scope: !256) +!269 = !DILocalVariable(name: "mty", scope: !256, file: !2, line: 101, type: !10) +!270 = !DILocation(line: 101, column: 9, scope: !256) +!271 = !DILocation(line: 101, column: 15, scope: !256) +!272 = !DILocalVariable(name: "fst", scope: !256, file: !2, line: 102, type: !10) +!273 = !DILocation(line: 102, column: 9, scope: !256) +!274 = !DILocation(line: 102, column: 15, scope: !256) +!275 = !DILocation(line: 103, column: 5, scope: !256) +!276 = !DILocalVariable(name: "actual", scope: !256, file: !2, line: 104, type: !10) +!277 = !DILocation(line: 104, column: 3, scope: !256) +!278 = !DILocalVariable(name: "res", scope: !256, file: !2, line: 105, type: !16) +!279 = !DILocation(line: 105, column: 3, scope: !256) +!280 = !DILocation(line: 105, column: 9, scope: !256) +!281 = !DILocalVariable(name: "$accounting_tests.list_eq_string_23", scope: !256, file: !2, line: 105, type: !16) +!282 = !DILocation(line: 106, column: 3, scope: !256) +!283 = !DILocalVariable(name: "e", scope: !284, file: !2, line: 109, type: !179) +!284 = distinct !DILexicalBlock(scope: !285, file: !2, line: 108, column: 5) +!285 = distinct !DILexicalBlock(scope: !256, file: !2, line: 106, column: 3) +!286 = !DILocation(line: 109, column: 5, scope: !284) +!287 = !DILocation(line: 109, column: 9, scope: !284) +!288 = !DILocation(line: 110, column: 5, scope: !284) +!289 = distinct !DISubprogram(name: "Finalize_Test_Send_1", linkageName: "Finalize_Test_Send_1", scope: !2, file: !2, line: 115, type: !5, scopeLine: 115, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!290 = !DILocalVariable(name: "_sender", scope: !289, file: !2, line: 115, type: !149) +!291 = !DILocation(line: 115, column: 12, scope: !289) +!292 = !DILocalVariable(name: "_origin", scope: !289, file: !2, line: 115, type: !149) +!293 = !DILocalVariable(name: "_amount", scope: !289, file: !2, line: 115, type: !141) +!294 = !DILocalVariable(name: "x", scope: !289, file: !2, line: 116, type: !141) +!295 = !DILocation(line: 116, column: 3, scope: !289) +!296 = !DILocation(line: 116, column: 7, scope: !289) +!297 = !DILocation(line: 117, column: 3, scope: !289) +!298 = distinct !DISubprogram(name: "Finalize_Test_Send_1", linkageName: "Finalize_Test_Send_1", scope: !2, file: !2, line: 115, type: !5, scopeLine: 115, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!299 = !DILocation(line: 115, column: 12, scope: !298) +!300 = distinct !DISubprogram(name: "Test_Send_2", linkageName: "Test_Send_2", scope: !2, file: !2, line: 121, type: !5, scopeLine: 121, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!301 = !DILocalVariable(name: "_sender", scope: !300, file: !2, line: 121, type: !149) +!302 = !DILocation(line: 121, column: 12, scope: !300) +!303 = !DILocalVariable(name: "_origin", scope: !300, file: !2, line: 121, type: !149) +!304 = !DILocalVariable(name: "_amount", scope: !300, file: !2, line: 121, type: !141) +!305 = !DILocation(line: 122, column: 3, scope: !300) +!306 = !DILocalVariable(name: "s1", scope: !300, file: !2, line: 123, type: !32) +!307 = !DILocation(line: 123, column: 3, scope: !300) +!308 = !DILocalVariable(name: "msg1", scope: !300, file: !2, line: 124, type: !114) +!309 = !DILocation(line: 124, column: 3, scope: !300) +!310 = !DILocation(line: 124, column: 10, scope: !300) +!311 = !DILocalVariable(name: "s2", scope: !300, file: !2, line: 128, type: !32) +!312 = !DILocation(line: 128, column: 3, scope: !300) +!313 = !DILocalVariable(name: "msg2", scope: !300, file: !2, line: 129, type: !114) +!314 = !DILocation(line: 129, column: 3, scope: !300) +!315 = !DILocation(line: 129, column: 10, scope: !300) +!316 = !DILocalVariable(name: "msgs_tmp", scope: !300, file: !2, line: 133, type: !118) +!317 = !DILocation(line: 133, column: 3, scope: !300) +!318 = !DILocalVariable(name: "$accounting_tests.one_msg_25", scope: !300, file: !2, line: 133, type: !118) +!319 = !DILocation(line: 133, column: 14, scope: !300) +!320 = !DILocalVariable(name: "msgs", scope: !300, file: !2, line: 134, type: !118) +!321 = !DILocation(line: 134, column: 3, scope: !300) +!322 = !DILocation(line: 134, column: 10, scope: !300) +!323 = !DILocation(line: 135, column: 3, scope: !300) +!324 = !DILocalVariable(name: "msg_final", scope: !300, file: !2, line: 136, type: !114) +!325 = !DILocation(line: 136, column: 3, scope: !300) +!326 = !DILocation(line: 136, column: 15, scope: !300) +!327 = !DILocalVariable(name: "msgs_final", scope: !300, file: !2, line: 139, type: !118) +!328 = !DILocation(line: 139, column: 3, scope: !300) +!329 = !DILocalVariable(name: "$accounting_tests.one_msg_24", scope: !300, file: !2, line: 139, type: !118) +!330 = !DILocation(line: 139, column: 16, scope: !300) +!331 = !DILocation(line: 140, column: 3, scope: !300) +!332 = distinct !DISubprogram(name: "Test_Send_2", linkageName: "Test_Send_2", scope: !2, file: !2, line: 121, type: !5, scopeLine: 121, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!333 = !DILocation(line: 121, column: 12, scope: !332) +!334 = distinct !DISubprogram(name: "Finalize_Test_Send_2", linkageName: "Finalize_Test_Send_2", scope: !2, file: !2, line: 144, type: !5, scopeLine: 144, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!335 = !DILocalVariable(name: "_sender", scope: !334, file: !2, line: 144, type: !149) +!336 = !DILocation(line: 144, column: 12, scope: !334) +!337 = !DILocalVariable(name: "_origin", scope: !334, file: !2, line: 144, type: !149) +!338 = !DILocalVariable(name: "_amount", scope: !334, file: !2, line: 144, type: !141) +!339 = !DILocalVariable(name: "x", scope: !334, file: !2, line: 145, type: !141) +!340 = !DILocation(line: 145, column: 3, scope: !334) +!341 = !DILocation(line: 145, column: 7, scope: !334) +!342 = !DILocation(line: 146, column: 3, scope: !334) +!343 = distinct !DISubprogram(name: "Finalize_Test_Send_2", linkageName: "Finalize_Test_Send_2", scope: !2, file: !2, line: 144, type: !5, scopeLine: 144, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!344 = !DILocation(line: 144, column: 12, scope: !343) +!345 = distinct !DISubprogram(name: "Test_Send_3", linkageName: "Test_Send_3", scope: !2, file: !2, line: 150, type: !5, scopeLine: 150, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!346 = !DILocalVariable(name: "_sender", scope: !345, file: !2, line: 150, type: !149) +!347 = !DILocation(line: 150, column: 12, scope: !345) +!348 = !DILocalVariable(name: "_origin", scope: !345, file: !2, line: 150, type: !149) +!349 = !DILocalVariable(name: "_amount", scope: !345, file: !2, line: 150, type: !141) +!350 = !DILocation(line: 151, column: 3, scope: !345) +!351 = !DILocalVariable(name: "s1", scope: !345, file: !2, line: 152, type: !32) +!352 = !DILocation(line: 152, column: 3, scope: !345) +!353 = !DILocalVariable(name: "msg1", scope: !345, file: !2, line: 153, type: !114) +!354 = !DILocation(line: 153, column: 3, scope: !345) +!355 = !DILocation(line: 153, column: 10, scope: !345) +!356 = !DILocalVariable(name: "msgs1", scope: !345, file: !2, line: 156, type: !118) +!357 = !DILocation(line: 156, column: 3, scope: !345) +!358 = !DILocalVariable(name: "$accounting_tests.one_msg_28", scope: !345, file: !2, line: 156, type: !118) +!359 = !DILocation(line: 156, column: 11, scope: !345) +!360 = !DILocation(line: 157, column: 3, scope: !345) +!361 = !DILocalVariable(name: "s2", scope: !345, file: !2, line: 158, type: !32) +!362 = !DILocation(line: 158, column: 3, scope: !345) +!363 = !DILocalVariable(name: "msg2", scope: !345, file: !2, line: 159, type: !114) +!364 = !DILocation(line: 159, column: 3, scope: !345) +!365 = !DILocation(line: 159, column: 10, scope: !345) +!366 = !DILocalVariable(name: "msgs2", scope: !345, file: !2, line: 163, type: !118) +!367 = !DILocation(line: 163, column: 3, scope: !345) +!368 = !DILocalVariable(name: "$accounting_tests.one_msg_27", scope: !345, file: !2, line: 163, type: !118) +!369 = !DILocation(line: 163, column: 11, scope: !345) +!370 = !DILocation(line: 164, column: 3, scope: !345) +!371 = !DILocalVariable(name: "msg_final", scope: !345, file: !2, line: 165, type: !114) +!372 = !DILocation(line: 165, column: 3, scope: !345) +!373 = !DILocation(line: 165, column: 15, scope: !345) +!374 = !DILocalVariable(name: "msgs_final", scope: !345, file: !2, line: 168, type: !118) +!375 = !DILocation(line: 168, column: 3, scope: !345) +!376 = !DILocalVariable(name: "$accounting_tests.one_msg_26", scope: !345, file: !2, line: 168, type: !118) +!377 = !DILocation(line: 168, column: 16, scope: !345) +!378 = !DILocation(line: 169, column: 3, scope: !345) +!379 = distinct !DISubprogram(name: "Test_Send_3", linkageName: "Test_Send_3", scope: !2, file: !2, line: 150, type: !5, scopeLine: 150, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!380 = !DILocation(line: 150, column: 12, scope: !379) +!381 = distinct !DISubprogram(name: "Test_Send_3_Helper", linkageName: "Test_Send_3_Helper", scope: !2, file: !2, line: 173, type: !5, scopeLine: 173, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!382 = !DILocalVariable(name: "_sender", scope: !381, file: !2, line: 173, type: !149) +!383 = !DILocation(line: 173, column: 12, scope: !381) +!384 = !DILocalVariable(name: "_origin", scope: !381, file: !2, line: 173, type: !149) +!385 = !DILocalVariable(name: "_amount", scope: !381, file: !2, line: 173, type: !141) +!386 = !DILocalVariable(name: "s1", scope: !381, file: !2, line: 174, type: !32) +!387 = !DILocation(line: 174, column: 3, scope: !381) +!388 = !DILocalVariable(name: "msg1", scope: !381, file: !2, line: 175, type: !114) +!389 = !DILocation(line: 175, column: 3, scope: !381) +!390 = !DILocation(line: 175, column: 10, scope: !381) +!391 = !DILocalVariable(name: "msgs1", scope: !381, file: !2, line: 179, type: !118) +!392 = !DILocation(line: 179, column: 3, scope: !381) +!393 = !DILocalVariable(name: "$accounting_tests.one_msg_29", scope: !381, file: !2, line: 179, type: !118) +!394 = !DILocation(line: 179, column: 11, scope: !381) +!395 = !DILocation(line: 180, column: 3, scope: !381) +!396 = distinct !DISubprogram(name: "Test_Send_3_Helper", linkageName: "Test_Send_3_Helper", scope: !2, file: !2, line: 173, type: !5, scopeLine: 173, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!397 = !DILocation(line: 173, column: 12, scope: !396) +!398 = distinct !DISubprogram(name: "Finalize_Test_Send_3", linkageName: "Finalize_Test_Send_3", scope: !2, file: !2, line: 184, type: !5, scopeLine: 184, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!399 = !DILocalVariable(name: "_sender", scope: !398, file: !2, line: 184, type: !149) +!400 = !DILocation(line: 184, column: 12, scope: !398) +!401 = !DILocalVariable(name: "_origin", scope: !398, file: !2, line: 184, type: !149) +!402 = !DILocalVariable(name: "_amount", scope: !398, file: !2, line: 184, type: !141) +!403 = !DILocalVariable(name: "x", scope: !398, file: !2, line: 185, type: !141) +!404 = !DILocation(line: 185, column: 3, scope: !398) +!405 = !DILocation(line: 185, column: 7, scope: !398) +!406 = !DILocation(line: 186, column: 3, scope: !398) +!407 = distinct !DISubprogram(name: "Finalize_Test_Send_3", linkageName: "Finalize_Test_Send_3", scope: !2, file: !2, line: 184, type: !5, scopeLine: 184, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!408 = !DILocation(line: 184, column: 12, scope: !407) +!409 = distinct !DISubprogram(name: "CheckBalance", linkageName: "CheckBalance", scope: !2, file: !2, line: 199, type: !5, scopeLine: 199, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!410 = !DILocalVariable(name: "expected_balance", scope: !409, file: !2, line: 199, type: !141) +!411 = !DILocation(line: 199, column: 24, scope: !409) +!412 = !DILocalVariable(name: "_sender", scope: !409, file: !2, line: 199, type: !149) +!413 = !DILocation(line: 199, column: 11, scope: !409) +!414 = !DILocalVariable(name: "_origin", scope: !409, file: !2, line: 199, type: !149) +!415 = !DILocalVariable(name: "_amount", scope: !409, file: !2, line: 199, type: !141) +!416 = !DILocalVariable(name: "cur_balance", scope: !409, file: !2, line: 200, type: !141) +!417 = !DILocation(line: 200, column: 3, scope: !409) +!418 = !DILocalVariable(name: "is_expected", scope: !409, file: !2, line: 201, type: !16) +!419 = !DILocation(line: 201, column: 3, scope: !409) +!420 = !DILocation(line: 201, column: 17, scope: !409) +!421 = !DILocation(line: 202, column: 3, scope: !409) +!422 = !DILocalVariable(name: "e", scope: !423, file: !2, line: 205, type: !179) +!423 = distinct !DILexicalBlock(scope: !424, file: !2, line: 204, column: 5) +!424 = distinct !DILexicalBlock(scope: !409, file: !2, line: 202, column: 3) +!425 = !DILocation(line: 205, column: 5, scope: !423) +!426 = !DILocation(line: 205, column: 9, scope: !423) +!427 = !DILocation(line: 208, column: 5, scope: !423) +!428 = distinct !DISubprogram(name: "CheckSenderBalance", linkageName: "CheckSenderBalance", scope: !2, file: !2, line: 212, type: !5, scopeLine: 212, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!429 = !DILocalVariable(name: "expected_balance", scope: !428, file: !2, line: 212, type: !141) +!430 = !DILocation(line: 212, column: 31, scope: !428) +!431 = !DILocalVariable(name: "_sender", scope: !428, file: !2, line: 212, type: !149) +!432 = !DILocation(line: 212, column: 12, scope: !428) +!433 = !DILocalVariable(name: "_origin", scope: !428, file: !2, line: 212, type: !149) +!434 = !DILocalVariable(name: "_amount", scope: !428, file: !2, line: 212, type: !141) +!435 = !DILocation(line: 213, column: 3, scope: !428) +!436 = distinct !DISubprogram(name: "CheckSenderBalance", linkageName: "CheckSenderBalance", scope: !2, file: !2, line: 212, type: !5, scopeLine: 212, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!437 = !DILocation(line: 212, column: 12, scope: !436) +!438 = distinct !DISubprogram(name: "CheckSupportBalance", linkageName: "CheckSupportBalance", scope: !2, file: !2, line: 216, type: !5, scopeLine: 216, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!439 = !DILocalVariable(name: "expected_balance", scope: !438, file: !2, line: 216, type: !141) +!440 = !DILocation(line: 216, column: 31, scope: !438) +!441 = !DILocalVariable(name: "_sender", scope: !438, file: !2, line: 216, type: !149) +!442 = !DILocation(line: 216, column: 11, scope: !438) +!443 = !DILocalVariable(name: "_origin", scope: !438, file: !2, line: 216, type: !149) +!444 = !DILocalVariable(name: "_amount", scope: !438, file: !2, line: 216, type: !141) +!445 = !DILocalVariable(name: "cur_balance", scope: !438, file: !2, line: 217, type: !141) +!446 = !DILocation(line: 217, column: 3, scope: !438) +!447 = !DILocalVariable(name: "is_expected", scope: !438, file: !2, line: 218, type: !16) +!448 = !DILocation(line: 218, column: 3, scope: !438) +!449 = !DILocation(line: 218, column: 17, scope: !438) +!450 = !DILocation(line: 219, column: 3, scope: !438) +!451 = !DILocalVariable(name: "e", scope: !452, file: !2, line: 222, type: !179) +!452 = distinct !DILexicalBlock(scope: !453, file: !2, line: 221, column: 5) +!453 = distinct !DILexicalBlock(scope: !438, file: !2, line: 219, column: 3) +!454 = !DILocation(line: 222, column: 5, scope: !452) +!455 = !DILocation(line: 222, column: 9, scope: !452) +!456 = !DILocation(line: 225, column: 5, scope: !452) +!457 = distinct !DISubprogram(name: "CheckRecipientBalance", linkageName: "CheckRecipientBalance", scope: !2, file: !2, line: 229, type: !5, scopeLine: 229, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!458 = !DILocalVariable(name: "expected_balance", scope: !457, file: !2, line: 229, type: !141) +!459 = !DILocation(line: 229, column: 34, scope: !457) +!460 = !DILocalVariable(name: "_sender", scope: !457, file: !2, line: 229, type: !149) +!461 = !DILocation(line: 229, column: 12, scope: !457) +!462 = !DILocalVariable(name: "_origin", scope: !457, file: !2, line: 229, type: !149) +!463 = !DILocalVariable(name: "_amount", scope: !457, file: !2, line: 229, type: !141) +!464 = !DILocation(line: 230, column: 3, scope: !457) +!465 = distinct !DISubprogram(name: "CheckRecipientBalance", linkageName: "CheckRecipientBalance", scope: !2, file: !2, line: 229, type: !5, scopeLine: 229, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!466 = !DILocation(line: 229, column: 12, scope: !465) +!467 = distinct !DISubprogram(name: "Test_Send_4", linkageName: "Test_Send_4", scope: !2, file: !2, line: 234, type: !5, scopeLine: 234, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!468 = !DILocalVariable(name: "_sender", scope: !467, file: !2, line: 234, type: !149) +!469 = !DILocation(line: 234, column: 12, scope: !467) +!470 = !DILocalVariable(name: "_origin", scope: !467, file: !2, line: 234, type: !149) +!471 = !DILocalVariable(name: "_amount", scope: !467, file: !2, line: 234, type: !141) +!472 = !DILocation(line: 235, column: 3, scope: !467) +!473 = !DILocalVariable(name: "amount", scope: !467, file: !2, line: 236, type: !141) +!474 = !DILocation(line: 236, column: 3, scope: !467) +!475 = !DILocalVariable(name: "init_bal", scope: !467, file: !2, line: 237, type: !141) +!476 = !DILocation(line: 237, column: 3, scope: !467) +!477 = !DILocalVariable(name: "msg1", scope: !467, file: !2, line: 238, type: !114) +!478 = !DILocation(line: 238, column: 3, scope: !467) +!479 = !DILocation(line: 238, column: 10, scope: !467) +!480 = !DILocalVariable(name: "msgs1", scope: !467, file: !2, line: 241, type: !118) +!481 = !DILocation(line: 241, column: 3, scope: !467) +!482 = !DILocalVariable(name: "$accounting_tests.one_msg_31", scope: !467, file: !2, line: 241, type: !118) +!483 = !DILocation(line: 241, column: 11, scope: !467) +!484 = !DILocation(line: 242, column: 3, scope: !467) +!485 = !DILocalVariable(name: "expected_intermediate_balance", scope: !467, file: !2, line: 243, type: !141) +!486 = !DILocation(line: 243, column: 3, scope: !467) +!487 = !DILocation(line: 243, column: 35, scope: !467) +!488 = !DILocation(line: 244, column: 3, scope: !467) +!489 = !DILocalVariable(name: "msg2", scope: !467, file: !2, line: 245, type: !114) +!490 = !DILocation(line: 245, column: 3, scope: !467) +!491 = !DILocation(line: 245, column: 10, scope: !467) +!492 = !DILocalVariable(name: "msgs2", scope: !467, file: !2, line: 248, type: !118) +!493 = !DILocation(line: 248, column: 3, scope: !467) +!494 = !DILocalVariable(name: "$accounting_tests.one_msg_30", scope: !467, file: !2, line: 248, type: !118) +!495 = !DILocation(line: 248, column: 11, scope: !467) +!496 = !DILocation(line: 249, column: 3, scope: !467) +!497 = !DILocalVariable(name: "expected_final_balance", scope: !467, file: !2, line: 250, type: !141) +!498 = !DILocation(line: 250, column: 3, scope: !467) +!499 = !DILocation(line: 250, column: 28, scope: !467) +!500 = !DILocation(line: 251, column: 3, scope: !467) +!501 = distinct !DISubprogram(name: "Test_Send_4", linkageName: "Test_Send_4", scope: !2, file: !2, line: 234, type: !5, scopeLine: 234, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!502 = !DILocation(line: 234, column: 12, scope: !501) +!503 = distinct !DISubprogram(name: "Test_Send_5", linkageName: "Test_Send_5", scope: !2, file: !2, line: 255, type: !5, scopeLine: 255, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!504 = !DILocalVariable(name: "_sender", scope: !503, file: !2, line: 255, type: !149) +!505 = !DILocation(line: 255, column: 12, scope: !503) +!506 = !DILocalVariable(name: "_origin", scope: !503, file: !2, line: 255, type: !149) +!507 = !DILocalVariable(name: "_amount", scope: !503, file: !2, line: 255, type: !141) +!508 = !DILocation(line: 256, column: 3, scope: !503) +!509 = !DILocalVariable(name: "amount", scope: !503, file: !2, line: 257, type: !141) +!510 = !DILocation(line: 257, column: 3, scope: !503) +!511 = !DILocalVariable(name: "init_bal", scope: !503, file: !2, line: 258, type: !141) +!512 = !DILocation(line: 258, column: 3, scope: !503) +!513 = !DILocalVariable(name: "msg1", scope: !503, file: !2, line: 259, type: !114) +!514 = !DILocation(line: 259, column: 3, scope: !503) +!515 = !DILocation(line: 259, column: 10, scope: !503) +!516 = !DILocalVariable(name: "msg2", scope: !503, file: !2, line: 262, type: !114) +!517 = !DILocation(line: 262, column: 3, scope: !503) +!518 = !DILocation(line: 262, column: 10, scope: !503) +!519 = !DILocalVariable(name: "msgs_tmp", scope: !503, file: !2, line: 265, type: !118) +!520 = !DILocation(line: 265, column: 3, scope: !503) +!521 = !DILocalVariable(name: "$accounting_tests.one_msg_32", scope: !503, file: !2, line: 265, type: !118) +!522 = !DILocation(line: 265, column: 14, scope: !503) +!523 = !DILocalVariable(name: "msgs", scope: !503, file: !2, line: 266, type: !118) +!524 = !DILocation(line: 266, column: 3, scope: !503) +!525 = !DILocation(line: 266, column: 10, scope: !503) +!526 = !DILocation(line: 267, column: 3, scope: !503) +!527 = !DILocalVariable(name: "expected_intermediate_balance", scope: !503, file: !2, line: 268, type: !141) +!528 = !DILocation(line: 268, column: 3, scope: !503) +!529 = !DILocation(line: 268, column: 35, scope: !503) +!530 = !DILocalVariable(name: "expected_final_balance", scope: !503, file: !2, line: 269, type: !141) +!531 = !DILocation(line: 269, column: 3, scope: !503) +!532 = !DILocation(line: 269, column: 28, scope: !503) +!533 = !DILocation(line: 270, column: 3, scope: !503) +!534 = distinct !DISubprogram(name: "Test_Send_5", linkageName: "Test_Send_5", scope: !2, file: !2, line: 255, type: !5, scopeLine: 255, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!535 = !DILocation(line: 255, column: 12, scope: !534) +!536 = distinct !DISubprogram(name: "Test_Send_6", linkageName: "Test_Send_6", scope: !2, file: !2, line: 274, type: !5, scopeLine: 274, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!537 = !DILocalVariable(name: "_sender", scope: !536, file: !2, line: 274, type: !149) +!538 = !DILocation(line: 274, column: 12, scope: !536) +!539 = !DILocalVariable(name: "_origin", scope: !536, file: !2, line: 274, type: !149) +!540 = !DILocalVariable(name: "_amount", scope: !536, file: !2, line: 274, type: !141) +!541 = !DILocation(line: 275, column: 3, scope: !536) +!542 = !DILocalVariable(name: "amount", scope: !536, file: !2, line: 276, type: !141) +!543 = !DILocation(line: 276, column: 3, scope: !536) +!544 = !DILocalVariable(name: "bal", scope: !536, file: !2, line: 277, type: !141) +!545 = !DILocation(line: 277, column: 3, scope: !536) +!546 = !DILocalVariable(name: "msg1", scope: !536, file: !2, line: 278, type: !114) +!547 = !DILocation(line: 278, column: 3, scope: !536) +!548 = !DILocation(line: 278, column: 10, scope: !536) +!549 = !DILocalVariable(name: "msgs1", scope: !536, file: !2, line: 281, type: !118) +!550 = !DILocation(line: 281, column: 3, scope: !536) +!551 = !DILocalVariable(name: "$accounting_tests.one_msg_34", scope: !536, file: !2, line: 281, type: !118) +!552 = !DILocation(line: 281, column: 11, scope: !536) +!553 = !DILocation(line: 282, column: 3, scope: !536) +!554 = !DILocalVariable(name: "expected_balance", scope: !536, file: !2, line: 283, type: !141) +!555 = !DILocation(line: 283, column: 3, scope: !536) +!556 = !DILocation(line: 283, column: 22, scope: !536) +!557 = !DILocalVariable(name: "msg2", scope: !536, file: !2, line: 284, type: !114) +!558 = !DILocation(line: 284, column: 3, scope: !536) +!559 = !DILocation(line: 284, column: 10, scope: !536) +!560 = !DILocalVariable(name: "msgs2", scope: !536, file: !2, line: 288, type: !118) +!561 = !DILocation(line: 288, column: 3, scope: !536) +!562 = !DILocalVariable(name: "$accounting_tests.one_msg_33", scope: !536, file: !2, line: 288, type: !118) +!563 = !DILocation(line: 288, column: 11, scope: !536) +!564 = !DILocation(line: 289, column: 3, scope: !536) +!565 = distinct !DISubprogram(name: "Test_Send_6", linkageName: "Test_Send_6", scope: !2, file: !2, line: 274, type: !5, scopeLine: 274, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!566 = !DILocation(line: 274, column: 12, scope: !565) +!567 = distinct !DISubprogram(name: "Test_Send_7", linkageName: "Test_Send_7", scope: !2, file: !2, line: 293, type: !5, scopeLine: 293, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!568 = !DILocalVariable(name: "_sender", scope: !567, file: !2, line: 293, type: !149) +!569 = !DILocation(line: 293, column: 12, scope: !567) +!570 = !DILocalVariable(name: "_origin", scope: !567, file: !2, line: 293, type: !149) +!571 = !DILocalVariable(name: "_amount", scope: !567, file: !2, line: 293, type: !141) +!572 = !DILocation(line: 294, column: 3, scope: !567) +!573 = !DILocalVariable(name: "amount", scope: !567, file: !2, line: 295, type: !141) +!574 = !DILocation(line: 295, column: 3, scope: !567) +!575 = !DILocalVariable(name: "bal", scope: !567, file: !2, line: 296, type: !141) +!576 = !DILocation(line: 296, column: 3, scope: !567) +!577 = !DILocalVariable(name: "msg1", scope: !567, file: !2, line: 297, type: !114) +!578 = !DILocation(line: 297, column: 3, scope: !567) +!579 = !DILocation(line: 297, column: 10, scope: !567) +!580 = !DILocalVariable(name: "msgs1", scope: !567, file: !2, line: 300, type: !118) +!581 = !DILocation(line: 300, column: 3, scope: !567) +!582 = !DILocalVariable(name: "$accounting_tests.one_msg_36", scope: !567, file: !2, line: 300, type: !118) +!583 = !DILocation(line: 300, column: 11, scope: !567) +!584 = !DILocation(line: 301, column: 3, scope: !567) +!585 = !DILocalVariable(name: "msg2", scope: !567, file: !2, line: 302, type: !114) +!586 = !DILocation(line: 302, column: 3, scope: !567) +!587 = !DILocation(line: 302, column: 10, scope: !567) +!588 = !DILocalVariable(name: "msgs2", scope: !567, file: !2, line: 306, type: !118) +!589 = !DILocation(line: 306, column: 3, scope: !567) +!590 = !DILocalVariable(name: "$accounting_tests.one_msg_35", scope: !567, file: !2, line: 306, type: !118) +!591 = !DILocation(line: 306, column: 11, scope: !567) +!592 = !DILocation(line: 307, column: 3, scope: !567) +!593 = distinct !DISubprogram(name: "Test_Send_7", linkageName: "Test_Send_7", scope: !2, file: !2, line: 293, type: !5, scopeLine: 293, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!594 = !DILocation(line: 293, column: 12, scope: !593) +!595 = distinct !DISubprogram(name: "Test_Send_8", linkageName: "Test_Send_8", scope: !2, file: !2, line: 311, type: !5, scopeLine: 311, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!596 = !DILocalVariable(name: "_sender", scope: !595, file: !2, line: 311, type: !149) +!597 = !DILocation(line: 311, column: 12, scope: !595) +!598 = !DILocalVariable(name: "_origin", scope: !595, file: !2, line: 311, type: !149) +!599 = !DILocalVariable(name: "_amount", scope: !595, file: !2, line: 311, type: !141) +!600 = !DILocation(line: 312, column: 3, scope: !595) +!601 = !DILocalVariable(name: "amount", scope: !595, file: !2, line: 313, type: !141) +!602 = !DILocation(line: 313, column: 3, scope: !595) +!603 = !DILocalVariable(name: "msg1", scope: !595, file: !2, line: 314, type: !114) +!604 = !DILocation(line: 314, column: 3, scope: !595) +!605 = !DILocation(line: 314, column: 10, scope: !595) +!606 = !DILocalVariable(name: "msgs1", scope: !595, file: !2, line: 317, type: !118) +!607 = !DILocation(line: 317, column: 3, scope: !595) +!608 = !DILocalVariable(name: "$accounting_tests.one_msg_38", scope: !595, file: !2, line: 317, type: !118) +!609 = !DILocation(line: 317, column: 11, scope: !595) +!610 = !DILocation(line: 318, column: 3, scope: !595) +!611 = !DILocalVariable(name: "support_bal", scope: !595, file: !2, line: 319, type: !141) +!612 = !DILocation(line: 319, column: 3, scope: !595) +!613 = !DILocalVariable(name: "expected_balance", scope: !595, file: !2, line: 320, type: !141) +!614 = !DILocation(line: 320, column: 3, scope: !595) +!615 = !DILocation(line: 320, column: 22, scope: !595) +!616 = !DILocalVariable(name: "msg2", scope: !595, file: !2, line: 321, type: !114) +!617 = !DILocation(line: 321, column: 3, scope: !595) +!618 = !DILocation(line: 321, column: 10, scope: !595) +!619 = !DILocalVariable(name: "msgs2", scope: !595, file: !2, line: 325, type: !118) +!620 = !DILocation(line: 325, column: 3, scope: !595) +!621 = !DILocalVariable(name: "$accounting_tests.one_msg_37", scope: !595, file: !2, line: 325, type: !118) +!622 = !DILocation(line: 325, column: 11, scope: !595) +!623 = !DILocation(line: 326, column: 3, scope: !595) +!624 = distinct !DISubprogram(name: "Test_Send_8", linkageName: "Test_Send_8", scope: !2, file: !2, line: 311, type: !5, scopeLine: 311, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!625 = !DILocation(line: 311, column: 12, scope: !624) +!626 = distinct !DISubprogram(name: "Test_Send_9", linkageName: "Test_Send_9", scope: !2, file: !2, line: 330, type: !5, scopeLine: 330, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!627 = !DILocalVariable(name: "_sender", scope: !626, file: !2, line: 330, type: !149) +!628 = !DILocation(line: 330, column: 12, scope: !626) +!629 = !DILocalVariable(name: "_origin", scope: !626, file: !2, line: 330, type: !149) +!630 = !DILocalVariable(name: "_amount", scope: !626, file: !2, line: 330, type: !141) +!631 = !DILocation(line: 331, column: 3, scope: !626) +!632 = !DILocalVariable(name: "amount", scope: !626, file: !2, line: 332, type: !141) +!633 = !DILocation(line: 332, column: 3, scope: !626) +!634 = !DILocalVariable(name: "msg1", scope: !626, file: !2, line: 333, type: !114) +!635 = !DILocation(line: 333, column: 3, scope: !626) +!636 = !DILocation(line: 333, column: 10, scope: !626) +!637 = !DILocalVariable(name: "msgs1", scope: !626, file: !2, line: 336, type: !118) +!638 = !DILocation(line: 336, column: 3, scope: !626) +!639 = !DILocalVariable(name: "$accounting_tests.one_msg_40", scope: !626, file: !2, line: 336, type: !118) +!640 = !DILocation(line: 336, column: 11, scope: !626) +!641 = !DILocation(line: 337, column: 3, scope: !626) +!642 = !DILocalVariable(name: "support_bal", scope: !626, file: !2, line: 338, type: !141) +!643 = !DILocation(line: 338, column: 3, scope: !626) +!644 = !DILocalVariable(name: "msg2", scope: !626, file: !2, line: 339, type: !114) +!645 = !DILocation(line: 339, column: 3, scope: !626) +!646 = !DILocation(line: 339, column: 10, scope: !626) +!647 = !DILocalVariable(name: "msgs2", scope: !626, file: !2, line: 343, type: !118) +!648 = !DILocation(line: 343, column: 3, scope: !626) +!649 = !DILocalVariable(name: "$accounting_tests.one_msg_39", scope: !626, file: !2, line: 343, type: !118) +!650 = !DILocation(line: 343, column: 11, scope: !626) +!651 = !DILocation(line: 344, column: 3, scope: !626) +!652 = distinct !DISubprogram(name: "Test_Send_9", linkageName: "Test_Send_9", scope: !2, file: !2, line: 330, type: !5, scopeLine: 330, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!653 = !DILocation(line: 330, column: 12, scope: !652) +!654 = distinct !DISubprogram(name: "Test_Send_10", linkageName: "Test_Send_10", scope: !2, file: !2, line: 348, type: !5, scopeLine: 348, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!655 = !DILocalVariable(name: "_sender", scope: !654, file: !2, line: 348, type: !149) +!656 = !DILocation(line: 348, column: 12, scope: !654) +!657 = !DILocalVariable(name: "_origin", scope: !654, file: !2, line: 348, type: !149) +!658 = !DILocalVariable(name: "_amount", scope: !654, file: !2, line: 348, type: !141) +!659 = !DILocation(line: 349, column: 3, scope: !654) +!660 = !DILocalVariable(name: "amount", scope: !654, file: !2, line: 350, type: !141) +!661 = !DILocation(line: 350, column: 3, scope: !654) +!662 = !DILocalVariable(name: "msg1", scope: !654, file: !2, line: 351, type: !114) +!663 = !DILocation(line: 351, column: 3, scope: !654) +!664 = !DILocation(line: 351, column: 10, scope: !654) +!665 = !DILocalVariable(name: "msgs", scope: !654, file: !2, line: 354, type: !118) +!666 = !DILocation(line: 354, column: 3, scope: !654) +!667 = !DILocalVariable(name: "$accounting_tests.one_msg_41", scope: !654, file: !2, line: 354, type: !118) +!668 = !DILocation(line: 354, column: 10, scope: !654) +!669 = !DILocation(line: 355, column: 3, scope: !654) +!670 = distinct !DISubprogram(name: "Test_Send_10", linkageName: "Test_Send_10", scope: !2, file: !2, line: 348, type: !5, scopeLine: 348, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!671 = !DILocation(line: 348, column: 12, scope: !670) +!672 = distinct !DISubprogram(name: "Test_Send_11", linkageName: "Test_Send_11", scope: !2, file: !2, line: 359, type: !5, scopeLine: 359, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!673 = !DILocalVariable(name: "_sender", scope: !672, file: !2, line: 359, type: !149) +!674 = !DILocation(line: 359, column: 12, scope: !672) +!675 = !DILocalVariable(name: "_origin", scope: !672, file: !2, line: 359, type: !149) +!676 = !DILocalVariable(name: "_amount", scope: !672, file: !2, line: 359, type: !141) +!677 = !DILocation(line: 360, column: 3, scope: !672) +!678 = !DILocalVariable(name: "amount", scope: !672, file: !2, line: 361, type: !141) +!679 = !DILocation(line: 361, column: 3, scope: !672) +!680 = !DILocalVariable(name: "msg1", scope: !672, file: !2, line: 362, type: !114) +!681 = !DILocation(line: 362, column: 3, scope: !672) +!682 = !DILocation(line: 362, column: 10, scope: !672) +!683 = !DILocalVariable(name: "msgs", scope: !672, file: !2, line: 365, type: !118) +!684 = !DILocation(line: 365, column: 3, scope: !672) +!685 = !DILocalVariable(name: "$accounting_tests.one_msg_42", scope: !672, file: !2, line: 365, type: !118) +!686 = !DILocation(line: 365, column: 10, scope: !672) +!687 = !DILocation(line: 366, column: 3, scope: !672) +!688 = distinct !DISubprogram(name: "Test_Send_11", linkageName: "Test_Send_11", scope: !2, file: !2, line: 359, type: !5, scopeLine: 359, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!689 = !DILocation(line: 359, column: 12, scope: !688) +!690 = distinct !DISubprogram(name: "Test_Send_12", linkageName: "Test_Send_12", scope: !2, file: !2, line: 370, type: !5, scopeLine: 370, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!691 = !DILocalVariable(name: "_sender", scope: !690, file: !2, line: 370, type: !149) +!692 = !DILocation(line: 370, column: 12, scope: !690) +!693 = !DILocalVariable(name: "_origin", scope: !690, file: !2, line: 370, type: !149) +!694 = !DILocalVariable(name: "_amount", scope: !690, file: !2, line: 370, type: !141) +!695 = !DILocalVariable(name: "amount", scope: !690, file: !2, line: 371, type: !141) +!696 = !DILocation(line: 371, column: 3, scope: !690) +!697 = !DILocalVariable(name: "bal", scope: !690, file: !2, line: 372, type: !141) +!698 = !DILocation(line: 372, column: 3, scope: !690) +!699 = !DILocalVariable(name: "msg1", scope: !690, file: !2, line: 373, type: !114) +!700 = !DILocation(line: 373, column: 3, scope: !690) +!701 = !DILocation(line: 373, column: 10, scope: !690) +!702 = !DILocalVariable(name: "msgs1", scope: !690, file: !2, line: 376, type: !118) +!703 = !DILocation(line: 376, column: 3, scope: !690) +!704 = !DILocalVariable(name: "$accounting_tests.one_msg_44", scope: !690, file: !2, line: 376, type: !118) +!705 = !DILocation(line: 376, column: 11, scope: !690) +!706 = !DILocation(line: 377, column: 3, scope: !690) +!707 = !DILocalVariable(name: "expected_balance", scope: !690, file: !2, line: 378, type: !141) +!708 = !DILocation(line: 378, column: 3, scope: !690) +!709 = !DILocation(line: 378, column: 22, scope: !690) +!710 = !DILocalVariable(name: "msg2", scope: !690, file: !2, line: 379, type: !114) +!711 = !DILocation(line: 379, column: 3, scope: !690) +!712 = !DILocation(line: 379, column: 10, scope: !690) +!713 = !DILocalVariable(name: "msgs2", scope: !690, file: !2, line: 383, type: !118) +!714 = !DILocation(line: 383, column: 3, scope: !690) +!715 = !DILocalVariable(name: "$accounting_tests.one_msg_43", scope: !690, file: !2, line: 383, type: !118) +!716 = !DILocation(line: 383, column: 11, scope: !690) +!717 = !DILocation(line: 384, column: 3, scope: !690) +!718 = distinct !DISubprogram(name: "Test_Send_12", linkageName: "Test_Send_12", scope: !2, file: !2, line: 370, type: !5, scopeLine: 370, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!719 = !DILocation(line: 370, column: 12, scope: !718) +!720 = distinct !DISubprogram(name: "Test_Send_13", linkageName: "Test_Send_13", scope: !2, file: !2, line: 388, type: !5, scopeLine: 388, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!721 = !DILocalVariable(name: "_sender", scope: !720, file: !2, line: 388, type: !149) +!722 = !DILocation(line: 388, column: 12, scope: !720) +!723 = !DILocalVariable(name: "_origin", scope: !720, file: !2, line: 388, type: !149) +!724 = !DILocalVariable(name: "_amount", scope: !720, file: !2, line: 388, type: !141) +!725 = !DILocation(line: 390, column: 3, scope: !720) +!726 = !DILocalVariable(name: "amount", scope: !720, file: !2, line: 391, type: !141) +!727 = !DILocation(line: 391, column: 3, scope: !720) +!728 = !DILocalVariable(name: "msg1", scope: !720, file: !2, line: 392, type: !114) +!729 = !DILocation(line: 392, column: 3, scope: !720) +!730 = !DILocation(line: 392, column: 10, scope: !720) +!731 = !DILocalVariable(name: "msgs1", scope: !720, file: !2, line: 395, type: !118) +!732 = !DILocation(line: 395, column: 3, scope: !720) +!733 = !DILocalVariable(name: "$accounting_tests.one_msg_46", scope: !720, file: !2, line: 395, type: !118) +!734 = !DILocation(line: 395, column: 11, scope: !720) +!735 = !DILocation(line: 396, column: 3, scope: !720) +!736 = !DILocalVariable(name: "support_bal", scope: !720, file: !2, line: 397, type: !141) +!737 = !DILocation(line: 397, column: 3, scope: !720) +!738 = !DILocalVariable(name: "expected_balance", scope: !720, file: !2, line: 398, type: !141) +!739 = !DILocation(line: 398, column: 3, scope: !720) +!740 = !DILocation(line: 398, column: 22, scope: !720) +!741 = !DILocalVariable(name: "msg2", scope: !720, file: !2, line: 399, type: !114) +!742 = !DILocation(line: 399, column: 3, scope: !720) +!743 = !DILocation(line: 399, column: 10, scope: !720) +!744 = !DILocalVariable(name: "msgs2", scope: !720, file: !2, line: 403, type: !118) +!745 = !DILocation(line: 403, column: 3, scope: !720) +!746 = !DILocalVariable(name: "$accounting_tests.one_msg_45", scope: !720, file: !2, line: 403, type: !118) +!747 = !DILocation(line: 403, column: 11, scope: !720) +!748 = !DILocation(line: 404, column: 3, scope: !720) +!749 = distinct !DISubprogram(name: "Test_Send_13", linkageName: "Test_Send_13", scope: !2, file: !2, line: 388, type: !5, scopeLine: 388, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!750 = !DILocation(line: 388, column: 12, scope: !749) +!751 = distinct !DISubprogram(name: "Test_Send_14", linkageName: "Test_Send_14", scope: !2, file: !2, line: 408, type: !5, scopeLine: 408, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!752 = !DILocalVariable(name: "_sender", scope: !751, file: !2, line: 408, type: !149) +!753 = !DILocation(line: 408, column: 12, scope: !751) +!754 = !DILocalVariable(name: "_origin", scope: !751, file: !2, line: 408, type: !149) +!755 = !DILocalVariable(name: "_amount", scope: !751, file: !2, line: 408, type: !141) +!756 = !DILocation(line: 409, column: 3, scope: !751) +!757 = !DILocalVariable(name: "amount", scope: !751, file: !2, line: 410, type: !141) +!758 = !DILocation(line: 410, column: 3, scope: !751) +!759 = !DILocalVariable(name: "msg1", scope: !751, file: !2, line: 411, type: !114) +!760 = !DILocation(line: 411, column: 3, scope: !751) +!761 = !DILocation(line: 411, column: 10, scope: !751) +!762 = !DILocalVariable(name: "msgs", scope: !751, file: !2, line: 414, type: !118) +!763 = !DILocation(line: 414, column: 3, scope: !751) +!764 = !DILocalVariable(name: "$accounting_tests.one_msg_47", scope: !751, file: !2, line: 414, type: !118) +!765 = !DILocation(line: 414, column: 10, scope: !751) +!766 = !DILocation(line: 415, column: 3, scope: !751) +!767 = distinct !DISubprogram(name: "Test_Send_14", linkageName: "Test_Send_14", scope: !2, file: !2, line: 408, type: !5, scopeLine: 408, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!768 = !DILocation(line: 408, column: 12, scope: !767) diff --git a/testsuite/contr/accounting_tests.ll b/testsuite/contr/accounting_tests.ll index fb04b3a3..55d41e3e 100644 --- a/testsuite/contr/accounting_tests.ll +++ b/testsuite/contr/accounting_tests.ll @@ -4,7 +4,7 @@ ; 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-pc-linux-gnu" +target triple = "x86_64-unknown-linux-gnu" %"$TyDescrTy_PrimTyp_82" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } @@ -1500,7 +1500,7 @@ declare i8* @_salloc(i8*, i64) declare i64 @_literal_cost(%_TyDescrTy_Typ*, i8*) -; Function Attrs: nofree nosync nounwind readnone speculatable willreturn +; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn declare i64 @llvm.umin.i64(i64, i64) #0 declare %TName_Bool* @_eq_String(i8*, %String, %String) @@ -7835,4 +7835,4 @@ entry: ret void } -attributes #0 = { nofree nosync nounwind readnone speculatable willreturn } +attributes #0 = { nocallback nofree nosync nounwind readnone speculatable willreturn } diff --git a/testsuite/contr/accounting_tests_support.dbg.ll b/testsuite/contr/accounting_tests_support.dbg.ll index b015229a..cbcca6c4 100644 --- a/testsuite/contr/accounting_tests_support.dbg.ll +++ b/testsuite/contr/accounting_tests_support.dbg.ll @@ -4,7 +4,7 @@ ; 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-pc-linux-gnu" +target triple = "x86_64-unknown-linux-gnu" %"$TyDescrTy_PrimTyp_2" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } @@ -16,9 +16,9 @@ target triple = "x86_64-pc-linux-gnu" %"$TyDescr_AddrFieldTyp_41" = type { %TyDescrString, %_TyDescrTy_Typ* } %Int32 = type { i32 } %Uint32 = type { i32 } -%"$ParamDescr_570" = type { %ParamDescrString, %_TyDescrTy_Typ* } +%"$ParamDescr_603" = type { %ParamDescrString, %_TyDescrTy_Typ* } %ParamDescrString = type { i8*, i32 } -%"$TransDescr_571" = type { %ParamDescrString, i32, %"$ParamDescr_570"* } +%"$TransDescr_604" = type { %ParamDescrString, i32, %"$ParamDescr_603"* } %TName_List_String = type { i8, %CName_Cons_String*, %CName_Nil_String* } %CName_Cons_String = type <{ i8, %String, %TName_List_String* }> %String = type { i8*, i32 } @@ -96,73 +96,73 @@ target triple = "x86_64-pc-linux-gnu" @_cparam__creation_block = global i8* null @"$stored_strings_88" = unnamed_addr constant [15 x i8] c"stored_strings\00" @"$stored_strings_116" = unnamed_addr constant [15 x i8] c"stored_strings\00" -@"$stored_strings_129" = unnamed_addr constant [15 x i8] c"stored_strings\00" -@"$stored_strings_167" = unnamed_addr constant [15 x i8] c"stored_strings\00" -@"$_balance_230" = unnamed_addr constant [9 x i8] c"_balance\00" -@"$stringlit_285" = unnamed_addr constant [10 x i8] c"_exception" -@"$stringlit_290" = unnamed_addr constant [38 x i8] c"Unexpected balance at support contract" -@"$stringlit_293" = unnamed_addr constant [8 x i8] c"expected" -@"$stringlit_300" = unnamed_addr constant [6 x i8] c"actual" -@"$_balance_322" = unnamed_addr constant [9 x i8] c"_balance\00" -@"$stringlit_378" = unnamed_addr constant [10 x i8] c"_exception" -@"$stringlit_383" = unnamed_addr constant [50 x i8] c"Unexpected sender balance read by support contract" -@"$stringlit_386" = unnamed_addr constant [8 x i8] c"expected" -@"$stringlit_393" = unnamed_addr constant [6 x i8] c"actual" -@"$_balance_415" = unnamed_addr constant [9 x i8] c"_balance\00" -@"$_balance_467" = unnamed_addr constant [9 x i8] c"_balance\00" -@"$_balance_533" = unnamed_addr constant [9 x i8] c"_balance\00" +@"$stored_strings_132" = unnamed_addr constant [15 x i8] c"stored_strings\00" +@"$stored_strings_170" = unnamed_addr constant [15 x i8] c"stored_strings\00" +@"$_balance_246" = unnamed_addr constant [9 x i8] c"_balance\00" +@"$stringlit_301" = unnamed_addr constant [10 x i8] c"_exception" +@"$stringlit_306" = unnamed_addr constant [38 x i8] c"Unexpected balance at support contract" +@"$stringlit_309" = unnamed_addr constant [8 x i8] c"expected" +@"$stringlit_316" = unnamed_addr constant [6 x i8] c"actual" +@"$_balance_342" = unnamed_addr constant [9 x i8] c"_balance\00" +@"$stringlit_398" = unnamed_addr constant [10 x i8] c"_exception" +@"$stringlit_403" = unnamed_addr constant [50 x i8] c"Unexpected sender balance read by support contract" +@"$stringlit_406" = unnamed_addr constant [8 x i8] c"expected" +@"$stringlit_413" = unnamed_addr constant [6 x i8] c"actual" +@"$_balance_439" = unnamed_addr constant [9 x i8] c"_balance\00" +@"$_balance_494" = unnamed_addr constant [9 x i8] c"_balance\00" +@"$_balance_563" = unnamed_addr constant [9 x i8] c"_balance\00" @_tydescr_table = constant [19 x %_TyDescrTy_Typ*] [%_TyDescrTy_Typ* @"$TyDescr_Event_26", %_TyDescrTy_Typ* @"$TyDescr_Int64_8", %_TyDescrTy_Typ* @"$TyDescr_Addr_43", %_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_38", %_TyDescrTy_Typ* @"$TyDescr_Bystr20_34", %_TyDescrTy_Typ* @"$TyDescr_Uint256_18", %_TyDescrTy_Typ* @"$TyDescr_Uint32_6", %_TyDescrTy_Typ* @"$TyDescr_Uint64_10", %_TyDescrTy_Typ* @"$TyDescr_Bnum_22", %_TyDescrTy_Typ* @"$TyDescr_Uint128_14", %_TyDescrTy_Typ* @"$TyDescr_Exception_28", %_TyDescrTy_Typ* @"$TyDescr_String_20", %_TyDescrTy_Typ* @"$TyDescr_ADT_List_String_39", %_TyDescrTy_Typ* @"$TyDescr_Int256_16", %_TyDescrTy_Typ* @"$TyDescr_Int128_12", %_TyDescrTy_Typ* @"$TyDescr_Bystr_32", %_TyDescrTy_Typ* @"$TyDescr_ReplicateContr_30", %_TyDescrTy_Typ* @"$TyDescr_Message_24", %_TyDescrTy_Typ* @"$TyDescr_Int32_4"] @_tydescr_table_length = constant i32 19 -@"$pname__scilla_version_572" = unnamed_addr constant [15 x i8] c"_scilla_version" -@"$pname__this_address_573" = unnamed_addr constant [13 x i8] c"_this_address" -@"$pname__creation_block_574" = unnamed_addr constant [15 x i8] c"_creation_block" -@_contract_parameters = constant [3 x %"$ParamDescr_570"] [%"$ParamDescr_570" { %ParamDescrString { i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$pname__scilla_version_572", i32 0, i32 0), i32 15 }, %_TyDescrTy_Typ* @"$TyDescr_Uint32_6" }, %"$ParamDescr_570" { %ParamDescrString { i8* getelementptr inbounds ([13 x i8], [13 x i8]* @"$pname__this_address_573", i32 0, i32 0), i32 13 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr20_34" }, %"$ParamDescr_570" { %ParamDescrString { i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$pname__creation_block_574", i32 0, i32 0), i32 15 }, %_TyDescrTy_Typ* @"$TyDescr_Bnum_22" }] +@"$pname__scilla_version_605" = unnamed_addr constant [15 x i8] c"_scilla_version" +@"$pname__this_address_606" = unnamed_addr constant [13 x i8] c"_this_address" +@"$pname__creation_block_607" = unnamed_addr constant [15 x i8] c"_creation_block" +@_contract_parameters = constant [3 x %"$ParamDescr_603"] [%"$ParamDescr_603" { %ParamDescrString { i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$pname__scilla_version_605", i32 0, i32 0), i32 15 }, %_TyDescrTy_Typ* @"$TyDescr_Uint32_6" }, %"$ParamDescr_603" { %ParamDescrString { i8* getelementptr inbounds ([13 x i8], [13 x i8]* @"$pname__this_address_606", i32 0, i32 0), i32 13 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr20_34" }, %"$ParamDescr_603" { %ParamDescrString { i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$pname__creation_block_607", i32 0, i32 0), i32 15 }, %_TyDescrTy_Typ* @"$TyDescr_Bnum_22" }] @_contract_parameters_length = constant i32 3 -@"$tpname__amount_575" = unnamed_addr constant [7 x i8] c"_amount" -@"$tpname__origin_576" = unnamed_addr constant [7 x i8] c"_origin" -@"$tpname__sender_577" = unnamed_addr constant [7 x i8] c"_sender" -@"$tparams_Reset_578" = unnamed_addr constant [3 x %"$ParamDescr_570"] [%"$ParamDescr_570" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_575", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_14" }, %"$ParamDescr_570" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_576", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_43" }, %"$ParamDescr_570" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_577", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_43" }] -@"$tname_Reset_579" = unnamed_addr constant [5 x i8] c"Reset" -@"$tpname__amount_580" = unnamed_addr constant [7 x i8] c"_amount" -@"$tpname__origin_581" = unnamed_addr constant [7 x i8] c"_origin" -@"$tpname__sender_582" = unnamed_addr constant [7 x i8] c"_sender" -@"$tpname_s_583" = unnamed_addr constant [1 x i8] c"s" -@"$tparams_StoreString_584" = unnamed_addr constant [4 x %"$ParamDescr_570"] [%"$ParamDescr_570" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_580", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_14" }, %"$ParamDescr_570" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_581", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_43" }, %"$ParamDescr_570" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_582", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_43" }, %"$ParamDescr_570" { %ParamDescrString { i8* getelementptr inbounds ([1 x i8], [1 x i8]* @"$tpname_s_583", i32 0, i32 0), i32 1 }, %_TyDescrTy_Typ* @"$TyDescr_String_20" }] -@"$tname_StoreString_585" = unnamed_addr constant [11 x i8] c"StoreString" -@"$tpname__amount_586" = unnamed_addr constant [7 x i8] c"_amount" -@"$tpname__origin_587" = unnamed_addr constant [7 x i8] c"_origin" -@"$tpname__sender_588" = unnamed_addr constant [7 x i8] c"_sender" -@"$tparams_Accept_589" = unnamed_addr constant [3 x %"$ParamDescr_570"] [%"$ParamDescr_570" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_586", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_14" }, %"$ParamDescr_570" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_587", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_43" }, %"$ParamDescr_570" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_588", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_43" }] -@"$tname_Accept_590" = unnamed_addr constant [6 x i8] c"Accept" -@"$tpname__amount_591" = unnamed_addr constant [7 x i8] c"_amount" -@"$tpname__origin_592" = unnamed_addr constant [7 x i8] c"_origin" -@"$tpname__sender_593" = unnamed_addr constant [7 x i8] c"_sender" -@"$tparams_AcceptTwice_594" = unnamed_addr constant [3 x %"$ParamDescr_570"] [%"$ParamDescr_570" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_591", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_14" }, %"$ParamDescr_570" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_592", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_43" }, %"$ParamDescr_570" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_593", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_43" }] -@"$tname_AcceptTwice_595" = unnamed_addr constant [11 x i8] c"AcceptTwice" -@"$tpname__amount_596" = unnamed_addr constant [7 x i8] c"_amount" -@"$tpname__origin_597" = unnamed_addr constant [7 x i8] c"_origin" -@"$tpname__sender_598" = unnamed_addr constant [7 x i8] c"_sender" -@"$tparams_NonAccept_599" = unnamed_addr constant [3 x %"$ParamDescr_570"] [%"$ParamDescr_570" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_596", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_14" }, %"$ParamDescr_570" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_597", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_43" }, %"$ParamDescr_570" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_598", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_43" }] -@"$tname_NonAccept_600" = unnamed_addr constant [9 x i8] c"NonAccept" -@"$tpname__amount_601" = unnamed_addr constant [7 x i8] c"_amount" -@"$tpname__origin_602" = unnamed_addr constant [7 x i8] c"_origin" -@"$tpname__sender_603" = unnamed_addr constant [7 x i8] c"_sender" -@"$tparams_AcceptAndCheckBalance_604" = unnamed_addr constant [3 x %"$ParamDescr_570"] [%"$ParamDescr_570" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_601", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_14" }, %"$ParamDescr_570" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_602", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_43" }, %"$ParamDescr_570" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_603", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_43" }] -@"$tname_AcceptAndCheckBalance_605" = unnamed_addr constant [21 x i8] c"AcceptAndCheckBalance" -@"$tpname__amount_606" = unnamed_addr constant [7 x i8] c"_amount" -@"$tpname__origin_607" = unnamed_addr constant [7 x i8] c"_origin" -@"$tpname__sender_608" = unnamed_addr constant [7 x i8] c"_sender" -@"$tparams_AcceptTwiceAndCheckBalance_609" = unnamed_addr constant [3 x %"$ParamDescr_570"] [%"$ParamDescr_570" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_606", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_14" }, %"$ParamDescr_570" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_607", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_43" }, %"$ParamDescr_570" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_608", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_43" }] -@"$tname_AcceptTwiceAndCheckBalance_610" = unnamed_addr constant [26 x i8] c"AcceptTwiceAndCheckBalance" -@"$tpname__amount_611" = unnamed_addr constant [7 x i8] c"_amount" -@"$tpname__origin_612" = unnamed_addr constant [7 x i8] c"_origin" -@"$tpname__sender_613" = unnamed_addr constant [7 x i8] c"_sender" -@"$tparams_AcceptAndCheckSenderBalance_614" = unnamed_addr constant [3 x %"$ParamDescr_570"] [%"$ParamDescr_570" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_611", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_14" }, %"$ParamDescr_570" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_612", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_43" }, %"$ParamDescr_570" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_613", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_43" }] -@"$tname_AcceptAndCheckSenderBalance_615" = unnamed_addr constant [27 x i8] c"AcceptAndCheckSenderBalance" -@_transition_parameters = constant [8 x %"$TransDescr_571"] [%"$TransDescr_571" { %ParamDescrString { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$tname_Reset_579", i32 0, i32 0), i32 5 }, i32 3, %"$ParamDescr_570"* getelementptr inbounds ([3 x %"$ParamDescr_570"], [3 x %"$ParamDescr_570"]* @"$tparams_Reset_578", i32 0, i32 0) }, %"$TransDescr_571" { %ParamDescrString { i8* getelementptr inbounds ([11 x i8], [11 x i8]* @"$tname_StoreString_585", i32 0, i32 0), i32 11 }, i32 4, %"$ParamDescr_570"* getelementptr inbounds ([4 x %"$ParamDescr_570"], [4 x %"$ParamDescr_570"]* @"$tparams_StoreString_584", i32 0, i32 0) }, %"$TransDescr_571" { %ParamDescrString { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$tname_Accept_590", i32 0, i32 0), i32 6 }, i32 3, %"$ParamDescr_570"* getelementptr inbounds ([3 x %"$ParamDescr_570"], [3 x %"$ParamDescr_570"]* @"$tparams_Accept_589", i32 0, i32 0) }, %"$TransDescr_571" { %ParamDescrString { i8* getelementptr inbounds ([11 x i8], [11 x i8]* @"$tname_AcceptTwice_595", i32 0, i32 0), i32 11 }, i32 3, %"$ParamDescr_570"* getelementptr inbounds ([3 x %"$ParamDescr_570"], [3 x %"$ParamDescr_570"]* @"$tparams_AcceptTwice_594", i32 0, i32 0) }, %"$TransDescr_571" { %ParamDescrString { i8* getelementptr inbounds ([9 x i8], [9 x i8]* @"$tname_NonAccept_600", i32 0, i32 0), i32 9 }, i32 3, %"$ParamDescr_570"* getelementptr inbounds ([3 x %"$ParamDescr_570"], [3 x %"$ParamDescr_570"]* @"$tparams_NonAccept_599", i32 0, i32 0) }, %"$TransDescr_571" { %ParamDescrString { i8* getelementptr inbounds ([21 x i8], [21 x i8]* @"$tname_AcceptAndCheckBalance_605", i32 0, i32 0), i32 21 }, i32 3, %"$ParamDescr_570"* getelementptr inbounds ([3 x %"$ParamDescr_570"], [3 x %"$ParamDescr_570"]* @"$tparams_AcceptAndCheckBalance_604", i32 0, i32 0) }, %"$TransDescr_571" { %ParamDescrString { i8* getelementptr inbounds ([26 x i8], [26 x i8]* @"$tname_AcceptTwiceAndCheckBalance_610", i32 0, i32 0), i32 26 }, i32 3, %"$ParamDescr_570"* getelementptr inbounds ([3 x %"$ParamDescr_570"], [3 x %"$ParamDescr_570"]* @"$tparams_AcceptTwiceAndCheckBalance_609", i32 0, i32 0) }, %"$TransDescr_571" { %ParamDescrString { i8* getelementptr inbounds ([27 x i8], [27 x i8]* @"$tname_AcceptAndCheckSenderBalance_615", i32 0, i32 0), i32 27 }, i32 3, %"$ParamDescr_570"* getelementptr inbounds ([3 x %"$ParamDescr_570"], [3 x %"$ParamDescr_570"]* @"$tparams_AcceptAndCheckSenderBalance_614", i32 0, i32 0) }] +@"$tpname__amount_608" = unnamed_addr constant [7 x i8] c"_amount" +@"$tpname__origin_609" = unnamed_addr constant [7 x i8] c"_origin" +@"$tpname__sender_610" = unnamed_addr constant [7 x i8] c"_sender" +@"$tparams_Reset_611" = unnamed_addr constant [3 x %"$ParamDescr_603"] [%"$ParamDescr_603" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_608", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_14" }, %"$ParamDescr_603" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_609", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_43" }, %"$ParamDescr_603" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_610", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_43" }] +@"$tname_Reset_612" = unnamed_addr constant [5 x i8] c"Reset" +@"$tpname__amount_613" = unnamed_addr constant [7 x i8] c"_amount" +@"$tpname__origin_614" = unnamed_addr constant [7 x i8] c"_origin" +@"$tpname__sender_615" = unnamed_addr constant [7 x i8] c"_sender" +@"$tpname_s_616" = unnamed_addr constant [1 x i8] c"s" +@"$tparams_StoreString_617" = unnamed_addr constant [4 x %"$ParamDescr_603"] [%"$ParamDescr_603" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_613", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_14" }, %"$ParamDescr_603" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_614", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_43" }, %"$ParamDescr_603" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_615", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_43" }, %"$ParamDescr_603" { %ParamDescrString { i8* getelementptr inbounds ([1 x i8], [1 x i8]* @"$tpname_s_616", i32 0, i32 0), i32 1 }, %_TyDescrTy_Typ* @"$TyDescr_String_20" }] +@"$tname_StoreString_618" = unnamed_addr constant [11 x i8] c"StoreString" +@"$tpname__amount_619" = unnamed_addr constant [7 x i8] c"_amount" +@"$tpname__origin_620" = unnamed_addr constant [7 x i8] c"_origin" +@"$tpname__sender_621" = unnamed_addr constant [7 x i8] c"_sender" +@"$tparams_Accept_622" = unnamed_addr constant [3 x %"$ParamDescr_603"] [%"$ParamDescr_603" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_619", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_14" }, %"$ParamDescr_603" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_620", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_43" }, %"$ParamDescr_603" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_621", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_43" }] +@"$tname_Accept_623" = unnamed_addr constant [6 x i8] c"Accept" +@"$tpname__amount_624" = unnamed_addr constant [7 x i8] c"_amount" +@"$tpname__origin_625" = unnamed_addr constant [7 x i8] c"_origin" +@"$tpname__sender_626" = unnamed_addr constant [7 x i8] c"_sender" +@"$tparams_AcceptTwice_627" = unnamed_addr constant [3 x %"$ParamDescr_603"] [%"$ParamDescr_603" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_624", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_14" }, %"$ParamDescr_603" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_625", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_43" }, %"$ParamDescr_603" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_626", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_43" }] +@"$tname_AcceptTwice_628" = unnamed_addr constant [11 x i8] c"AcceptTwice" +@"$tpname__amount_629" = unnamed_addr constant [7 x i8] c"_amount" +@"$tpname__origin_630" = unnamed_addr constant [7 x i8] c"_origin" +@"$tpname__sender_631" = unnamed_addr constant [7 x i8] c"_sender" +@"$tparams_NonAccept_632" = unnamed_addr constant [3 x %"$ParamDescr_603"] [%"$ParamDescr_603" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_629", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_14" }, %"$ParamDescr_603" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_630", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_43" }, %"$ParamDescr_603" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_631", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_43" }] +@"$tname_NonAccept_633" = unnamed_addr constant [9 x i8] c"NonAccept" +@"$tpname__amount_634" = unnamed_addr constant [7 x i8] c"_amount" +@"$tpname__origin_635" = unnamed_addr constant [7 x i8] c"_origin" +@"$tpname__sender_636" = unnamed_addr constant [7 x i8] c"_sender" +@"$tparams_AcceptAndCheckBalance_637" = unnamed_addr constant [3 x %"$ParamDescr_603"] [%"$ParamDescr_603" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_634", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_14" }, %"$ParamDescr_603" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_635", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_43" }, %"$ParamDescr_603" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_636", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_43" }] +@"$tname_AcceptAndCheckBalance_638" = unnamed_addr constant [21 x i8] c"AcceptAndCheckBalance" +@"$tpname__amount_639" = unnamed_addr constant [7 x i8] c"_amount" +@"$tpname__origin_640" = unnamed_addr constant [7 x i8] c"_origin" +@"$tpname__sender_641" = unnamed_addr constant [7 x i8] c"_sender" +@"$tparams_AcceptTwiceAndCheckBalance_642" = unnamed_addr constant [3 x %"$ParamDescr_603"] [%"$ParamDescr_603" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_639", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_14" }, %"$ParamDescr_603" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_640", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_43" }, %"$ParamDescr_603" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_641", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_43" }] +@"$tname_AcceptTwiceAndCheckBalance_643" = unnamed_addr constant [26 x i8] c"AcceptTwiceAndCheckBalance" +@"$tpname__amount_644" = unnamed_addr constant [7 x i8] c"_amount" +@"$tpname__origin_645" = unnamed_addr constant [7 x i8] c"_origin" +@"$tpname__sender_646" = unnamed_addr constant [7 x i8] c"_sender" +@"$tparams_AcceptAndCheckSenderBalance_647" = unnamed_addr constant [3 x %"$ParamDescr_603"] [%"$ParamDescr_603" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_644", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_14" }, %"$ParamDescr_603" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_645", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_43" }, %"$ParamDescr_603" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_646", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_43" }] +@"$tname_AcceptAndCheckSenderBalance_648" = unnamed_addr constant [27 x i8] c"AcceptAndCheckSenderBalance" +@_transition_parameters = constant [8 x %"$TransDescr_604"] [%"$TransDescr_604" { %ParamDescrString { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$tname_Reset_612", i32 0, i32 0), i32 5 }, i32 3, %"$ParamDescr_603"* getelementptr inbounds ([3 x %"$ParamDescr_603"], [3 x %"$ParamDescr_603"]* @"$tparams_Reset_611", i32 0, i32 0) }, %"$TransDescr_604" { %ParamDescrString { i8* getelementptr inbounds ([11 x i8], [11 x i8]* @"$tname_StoreString_618", i32 0, i32 0), i32 11 }, i32 4, %"$ParamDescr_603"* getelementptr inbounds ([4 x %"$ParamDescr_603"], [4 x %"$ParamDescr_603"]* @"$tparams_StoreString_617", i32 0, i32 0) }, %"$TransDescr_604" { %ParamDescrString { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$tname_Accept_623", i32 0, i32 0), i32 6 }, i32 3, %"$ParamDescr_603"* getelementptr inbounds ([3 x %"$ParamDescr_603"], [3 x %"$ParamDescr_603"]* @"$tparams_Accept_622", i32 0, i32 0) }, %"$TransDescr_604" { %ParamDescrString { i8* getelementptr inbounds ([11 x i8], [11 x i8]* @"$tname_AcceptTwice_628", i32 0, i32 0), i32 11 }, i32 3, %"$ParamDescr_603"* getelementptr inbounds ([3 x %"$ParamDescr_603"], [3 x %"$ParamDescr_603"]* @"$tparams_AcceptTwice_627", i32 0, i32 0) }, %"$TransDescr_604" { %ParamDescrString { i8* getelementptr inbounds ([9 x i8], [9 x i8]* @"$tname_NonAccept_633", i32 0, i32 0), i32 9 }, i32 3, %"$ParamDescr_603"* getelementptr inbounds ([3 x %"$ParamDescr_603"], [3 x %"$ParamDescr_603"]* @"$tparams_NonAccept_632", i32 0, i32 0) }, %"$TransDescr_604" { %ParamDescrString { i8* getelementptr inbounds ([21 x i8], [21 x i8]* @"$tname_AcceptAndCheckBalance_638", i32 0, i32 0), i32 21 }, i32 3, %"$ParamDescr_603"* getelementptr inbounds ([3 x %"$ParamDescr_603"], [3 x %"$ParamDescr_603"]* @"$tparams_AcceptAndCheckBalance_637", i32 0, i32 0) }, %"$TransDescr_604" { %ParamDescrString { i8* getelementptr inbounds ([26 x i8], [26 x i8]* @"$tname_AcceptTwiceAndCheckBalance_643", i32 0, i32 0), i32 26 }, i32 3, %"$ParamDescr_603"* getelementptr inbounds ([3 x %"$ParamDescr_603"], [3 x %"$ParamDescr_603"]* @"$tparams_AcceptTwiceAndCheckBalance_642", i32 0, i32 0) }, %"$TransDescr_604" { %ParamDescrString { i8* getelementptr inbounds ([27 x i8], [27 x i8]* @"$tname_AcceptAndCheckSenderBalance_648", i32 0, i32 0), i32 27 }, i32 3, %"$ParamDescr_603"* getelementptr inbounds ([3 x %"$ParamDescr_603"], [3 x %"$ParamDescr_603"]* @"$tparams_AcceptAndCheckSenderBalance_647", i32 0, i32 0) }] @_transition_parameters_length = constant i32 8 -define void @_init_libs() !dbg !4 { +define void @_init_libs() !dbg !3 { entry: %"$gasrem_69" = load i64, i64* @_gasrem, align 8 %"$gascmp_70" = icmp ugt i64 5, %"$gasrem_69" @@ -195,6 +195,7 @@ entry: %"$consume_78" = sub i64 %"$gasrem_74", 1 store i64 %"$consume_78", i64* @_gasrem, align 8 %"$stored_strings_1" = alloca %TName_List_String*, align 8 + call void @llvm.dbg.declare(metadata %TName_List_String** %"$stored_strings_1", metadata !11, metadata !DIExpression()), !dbg !14 %"$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" @@ -212,20 +213,32 @@ entry: %"$adtgep_85" = getelementptr inbounds %CName_Nil_String, %CName_Nil_String* %"$adtval_84", i32 0, i32 0 store i8 1, i8* %"$adtgep_85", align 1 %"$adtptr_86" = bitcast %CName_Nil_String* %"$adtval_84" to %TName_List_String* - store %TName_List_String* %"$adtptr_86", %TName_List_String** %"$stored_strings_1", align 8, !dbg !11 + store %TName_List_String* %"$adtptr_86", %TName_List_String** %"$stored_strings_1", align 8, !dbg !15 %"$execptr_load_87" = load i8*, i8** @_execptr, align 8 %"$$stored_strings_1_89" = load %TName_List_String*, %TName_List_String** %"$stored_strings_1", align 8 %"$update_value_90" = bitcast %TName_List_String* %"$$stored_strings_1_89" to i8* - call void @_update_field(i8* %"$execptr_load_87", i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$stored_strings_88", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_ADT_List_String_39", i32 0, i8* null, i8* %"$update_value_90"), !dbg !11 + call void @_update_field(i8* %"$execptr_load_87", i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$stored_strings_88", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_ADT_List_String_39", i32 0, i8* null, i8* %"$update_value_90"), !dbg !15 ret void } +; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn +declare void @llvm.dbg.declare(metadata, metadata, metadata) #0 + declare i8* @_salloc(i8*, i64) declare void @_update_field(i8*, i8*, %_TyDescrTy_Typ*, i32, i8*, i8*) -define internal void @"$Reset_91"(%Uint128 %_amount, [20 x i8]* %"$_origin_92", [20 x i8]* %"$_sender_93") !dbg !12 { +define internal void @"$Reset_91"(%Uint128 %_amount, [20 x i8]* %"$_origin_92", [20 x i8]* %"$_sender_93") !dbg !16 { entry: + %"$_sender_121" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_sender_93", [20 x i8]** %"$_sender_121", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_sender_121", metadata !17, metadata !DIExpression()), !dbg !19 + %"$_origin_120" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_origin_92", [20 x i8]** %"$_origin_120", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_origin_120", metadata !20, metadata !DIExpression()), !dbg !19 + %"$_amount_119" = alloca %Uint128, align 8 + store %Uint128 %_amount, %Uint128* %"$_amount_119", align 8 + call void @llvm.dbg.declare(metadata %Uint128* %"$_amount_119", metadata !21, metadata !DIExpression()), !dbg !19 %_origin = load [20 x i8], [20 x i8]* %"$_origin_92", align 1 %_sender = load [20 x i8], [20 x i8]* %"$_sender_93", align 1 %"$gasrem_94" = load i64, i64* @_gasrem, align 8 @@ -240,6 +253,7 @@ entry: %"$consume_98" = sub i64 %"$gasrem_94", 1 store i64 %"$consume_98", i64* @_gasrem, align 8 %new_strings = alloca %TName_List_String*, align 8 + call void @llvm.dbg.declare(metadata %TName_List_String** %new_strings, metadata !23, metadata !DIExpression()), !dbg !24 %"$gasrem_99" = load i64, i64* @_gasrem, align 8 %"$gascmp_100" = icmp ugt i64 1, %"$gasrem_99" br i1 %"$gascmp_100", label %"$out_of_gas_101", label %"$have_gas_102" @@ -257,7 +271,7 @@ entry: %"$adtgep_105" = getelementptr inbounds %CName_Nil_String, %CName_Nil_String* %"$adtval_104", i32 0, i32 0 store i8 1, i8* %"$adtgep_105", align 1 %"$adtptr_106" = bitcast %CName_Nil_String* %"$adtval_104" to %TName_List_String* - store %TName_List_String* %"$adtptr_106", %TName_List_String** %new_strings, align 8, !dbg !13 + store %TName_List_String* %"$adtptr_106", %TName_List_String** %new_strings, align 8, !dbg !25 %"$new_strings_107" = load %TName_List_String*, %TName_List_String** %new_strings, align 8 %"$$new_strings_107_108" = bitcast %TName_List_String* %"$new_strings_107" to i8* %"$_literal_cost_call_109" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_List_String_39", i8* %"$$new_strings_107_108") @@ -275,382 +289,438 @@ entry: %"$execptr_load_115" = load i8*, i8** @_execptr, align 8 %"$new_strings_117" = load %TName_List_String*, %TName_List_String** %new_strings, align 8 %"$update_value_118" = bitcast %TName_List_String* %"$new_strings_117" to i8* - call void @_update_field(i8* %"$execptr_load_115", i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$stored_strings_116", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_ADT_List_String_39", i32 0, i8* null, i8* %"$update_value_118"), !dbg !14 + call void @_update_field(i8* %"$execptr_load_115", i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$stored_strings_116", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_ADT_List_String_39", i32 0, i8* null, i8* %"$update_value_118"), !dbg !26 ret void } declare i64 @_literal_cost(%_TyDescrTy_Typ*, i8*) -define void @Reset(i8* %0) !dbg !15 { +define void @Reset(i8* %0) !dbg !27 { entry: - %"$_amount_120" = getelementptr i8, i8* %0, i32 0 - %"$_amount_121" = bitcast i8* %"$_amount_120" to %Uint128* - %_amount = load %Uint128, %Uint128* %"$_amount_121", align 8 - %"$_origin_122" = getelementptr i8, i8* %0, i32 16 - %"$_origin_123" = bitcast i8* %"$_origin_122" to [20 x i8]* - %"$_sender_124" = getelementptr i8, i8* %0, i32 36 - %"$_sender_125" = bitcast i8* %"$_sender_124" to [20 x i8]* - call void @"$Reset_91"(%Uint128 %_amount, [20 x i8]* %"$_origin_123", [20 x i8]* %"$_sender_125"), !dbg !16 + %"$_amount_123" = getelementptr i8, i8* %0, i32 0 + %"$_amount_124" = bitcast i8* %"$_amount_123" to %Uint128* + %_amount = load %Uint128, %Uint128* %"$_amount_124", align 8 + %"$_origin_125" = getelementptr i8, i8* %0, i32 16 + %"$_origin_126" = bitcast i8* %"$_origin_125" to [20 x i8]* + %"$_sender_127" = getelementptr i8, i8* %0, i32 36 + %"$_sender_128" = bitcast i8* %"$_sender_127" to [20 x i8]* + call void @"$Reset_91"(%Uint128 %_amount, [20 x i8]* %"$_origin_126", [20 x i8]* %"$_sender_128"), !dbg !28 ret void } -define internal void @"$StoreString_126"(%Uint128 %_amount, [20 x i8]* %"$_origin_127", [20 x i8]* %"$_sender_128", %String %s) !dbg !17 { +define internal void @"$StoreString_129"(%Uint128 %_amount, [20 x i8]* %"$_origin_130", [20 x i8]* %"$_sender_131", %String %s) !dbg !29 { entry: - %_origin = load [20 x i8], [20 x i8]* %"$_origin_127", align 1 - %_sender = load [20 x i8], [20 x i8]* %"$_sender_128", align 1 + %"$s_176" = alloca %String, align 8 + store %String %s, %String* %"$s_176", align 8 + call void @llvm.dbg.declare(metadata %String* %"$s_176", metadata !30, metadata !DIExpression()), !dbg !32 + %"$_sender_175" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_sender_131", [20 x i8]** %"$_sender_175", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_sender_175", metadata !33, metadata !DIExpression()), !dbg !34 + %"$_origin_174" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_origin_130", [20 x i8]** %"$_origin_174", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_origin_174", metadata !35, metadata !DIExpression()), !dbg !34 + %"$_amount_173" = alloca %Uint128, align 8 + store %Uint128 %_amount, %Uint128* %"$_amount_173", align 8 + call void @llvm.dbg.declare(metadata %Uint128* %"$_amount_173", metadata !36, metadata !DIExpression()), !dbg !34 + %_origin = load [20 x i8], [20 x i8]* %"$_origin_130", align 1 + %_sender = load [20 x i8], [20 x i8]* %"$_sender_131", align 1 %old_strings = alloca %TName_List_String*, align 8 - %"$execptr_load_130" = load i8*, i8** @_execptr, align 8 - %"$old_strings_call_131" = call i8* @_fetch_field(i8* %"$execptr_load_130", i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$stored_strings_129", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_ADT_List_String_39", i32 0, i8* null, i32 1), !dbg !18 - %"$old_strings_132" = bitcast i8* %"$old_strings_call_131" to %TName_List_String* - store %TName_List_String* %"$old_strings_132", %TName_List_String** %old_strings, align 8 - %"$old_strings_133" = load %TName_List_String*, %TName_List_String** %old_strings, align 8 - %"$$old_strings_133_134" = bitcast %TName_List_String* %"$old_strings_133" to i8* - %"$_literal_cost_call_135" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_List_String_39", i8* %"$$old_strings_133_134") - %"$gasadd_136" = add i64 %"$_literal_cost_call_135", 0 - %"$gasrem_137" = load i64, i64* @_gasrem, align 8 - %"$gascmp_138" = icmp ugt i64 %"$gasadd_136", %"$gasrem_137" - br i1 %"$gascmp_138", label %"$out_of_gas_139", label %"$have_gas_140" - -"$out_of_gas_139": ; preds = %entry + call void @llvm.dbg.declare(metadata %TName_List_String** %old_strings, metadata !37, metadata !DIExpression()), !dbg !38 + %"$execptr_load_133" = load i8*, i8** @_execptr, align 8 + %"$old_strings_call_134" = call i8* @_fetch_field(i8* %"$execptr_load_133", i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$stored_strings_132", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_ADT_List_String_39", i32 0, i8* null, i32 1), !dbg !38 + %"$old_strings_135" = bitcast i8* %"$old_strings_call_134" to %TName_List_String* + store %TName_List_String* %"$old_strings_135", %TName_List_String** %old_strings, align 8 + %"$old_strings_136" = load %TName_List_String*, %TName_List_String** %old_strings, align 8 + %"$$old_strings_136_137" = bitcast %TName_List_String* %"$old_strings_136" to i8* + %"$_literal_cost_call_138" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_List_String_39", i8* %"$$old_strings_136_137") + %"$gasadd_139" = add i64 %"$_literal_cost_call_138", 0 + %"$gasrem_140" = load i64, i64* @_gasrem, align 8 + %"$gascmp_141" = icmp ugt i64 %"$gasadd_139", %"$gasrem_140" + br i1 %"$gascmp_141", label %"$out_of_gas_142", label %"$have_gas_143" + +"$out_of_gas_142": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_140" + br label %"$have_gas_143" -"$have_gas_140": ; preds = %"$out_of_gas_139", %entry - %"$consume_141" = sub i64 %"$gasrem_137", %"$gasadd_136" - store i64 %"$consume_141", i64* @_gasrem, align 8 - %"$gasrem_142" = load i64, i64* @_gasrem, align 8 - %"$gascmp_143" = icmp ugt i64 1, %"$gasrem_142" - br i1 %"$gascmp_143", label %"$out_of_gas_144", label %"$have_gas_145" +"$have_gas_143": ; preds = %"$out_of_gas_142", %entry + %"$consume_144" = sub i64 %"$gasrem_140", %"$gasadd_139" + store i64 %"$consume_144", i64* @_gasrem, 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_144": ; preds = %"$have_gas_140" +"$out_of_gas_147": ; preds = %"$have_gas_143" call void @_out_of_gas() - br label %"$have_gas_145" + br label %"$have_gas_148" -"$have_gas_145": ; preds = %"$out_of_gas_144", %"$have_gas_140" - %"$consume_146" = sub i64 %"$gasrem_142", 1 - store i64 %"$consume_146", i64* @_gasrem, align 8 +"$have_gas_148": ; preds = %"$out_of_gas_147", %"$have_gas_143" + %"$consume_149" = sub i64 %"$gasrem_145", 1 + store i64 %"$consume_149", i64* @_gasrem, align 8 %new_strings = alloca %TName_List_String*, align 8 - %"$gasrem_147" = load i64, i64* @_gasrem, align 8 - %"$gascmp_148" = icmp ugt i64 1, %"$gasrem_147" - br i1 %"$gascmp_148", label %"$out_of_gas_149", label %"$have_gas_150" + call void @llvm.dbg.declare(metadata %TName_List_String** %new_strings, metadata !39, metadata !DIExpression()), !dbg !40 + %"$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_149": ; preds = %"$have_gas_145" +"$out_of_gas_152": ; preds = %"$have_gas_148" call void @_out_of_gas() - br label %"$have_gas_150" - -"$have_gas_150": ; preds = %"$out_of_gas_149", %"$have_gas_145" - %"$consume_151" = sub i64 %"$gasrem_147", 1 - store i64 %"$consume_151", i64* @_gasrem, align 8 - %"$old_strings_152" = load %TName_List_String*, %TName_List_String** %old_strings, align 8 - %"$adtval_153_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_153_salloc" = call i8* @_salloc(i8* %"$adtval_153_load", i64 25) - %"$adtval_153" = bitcast i8* %"$adtval_153_salloc" to %CName_Cons_String* - %"$adtgep_154" = getelementptr inbounds %CName_Cons_String, %CName_Cons_String* %"$adtval_153", i32 0, i32 0 - store i8 0, i8* %"$adtgep_154", align 1 - %"$adtgep_155" = getelementptr inbounds %CName_Cons_String, %CName_Cons_String* %"$adtval_153", i32 0, i32 1 - store %String %s, %String* %"$adtgep_155", align 8 - %"$adtgep_156" = getelementptr inbounds %CName_Cons_String, %CName_Cons_String* %"$adtval_153", i32 0, i32 2 - store %TName_List_String* %"$old_strings_152", %TName_List_String** %"$adtgep_156", align 8 - %"$adtptr_157" = bitcast %CName_Cons_String* %"$adtval_153" to %TName_List_String* - store %TName_List_String* %"$adtptr_157", %TName_List_String** %new_strings, align 8, !dbg !19 - %"$new_strings_158" = load %TName_List_String*, %TName_List_String** %new_strings, align 8 - %"$$new_strings_158_159" = bitcast %TName_List_String* %"$new_strings_158" to i8* - %"$_literal_cost_call_160" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_List_String_39", i8* %"$$new_strings_158_159") - %"$gasrem_161" = load i64, i64* @_gasrem, align 8 - %"$gascmp_162" = icmp ugt i64 %"$_literal_cost_call_160", %"$gasrem_161" - br i1 %"$gascmp_162", label %"$out_of_gas_163", label %"$have_gas_164" - -"$out_of_gas_163": ; preds = %"$have_gas_150" + br label %"$have_gas_153" + +"$have_gas_153": ; preds = %"$out_of_gas_152", %"$have_gas_148" + %"$consume_154" = sub i64 %"$gasrem_150", 1 + store i64 %"$consume_154", i64* @_gasrem, align 8 + %"$old_strings_155" = load %TName_List_String*, %TName_List_String** %old_strings, align 8 + %"$adtval_156_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_156_salloc" = call i8* @_salloc(i8* %"$adtval_156_load", i64 25) + %"$adtval_156" = bitcast i8* %"$adtval_156_salloc" to %CName_Cons_String* + %"$adtgep_157" = getelementptr inbounds %CName_Cons_String, %CName_Cons_String* %"$adtval_156", i32 0, i32 0 + store i8 0, i8* %"$adtgep_157", align 1 + %"$adtgep_158" = getelementptr inbounds %CName_Cons_String, %CName_Cons_String* %"$adtval_156", i32 0, i32 1 + store %String %s, %String* %"$adtgep_158", align 8 + %"$adtgep_159" = getelementptr inbounds %CName_Cons_String, %CName_Cons_String* %"$adtval_156", i32 0, i32 2 + store %TName_List_String* %"$old_strings_155", %TName_List_String** %"$adtgep_159", align 8 + %"$adtptr_160" = bitcast %CName_Cons_String* %"$adtval_156" to %TName_List_String* + store %TName_List_String* %"$adtptr_160", %TName_List_String** %new_strings, align 8, !dbg !41 + %"$new_strings_161" = load %TName_List_String*, %TName_List_String** %new_strings, align 8 + %"$$new_strings_161_162" = bitcast %TName_List_String* %"$new_strings_161" to i8* + %"$_literal_cost_call_163" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_List_String_39", i8* %"$$new_strings_161_162") + %"$gasrem_164" = load i64, i64* @_gasrem, align 8 + %"$gascmp_165" = icmp ugt i64 %"$_literal_cost_call_163", %"$gasrem_164" + br i1 %"$gascmp_165", label %"$out_of_gas_166", label %"$have_gas_167" + +"$out_of_gas_166": ; preds = %"$have_gas_153" call void @_out_of_gas() - br label %"$have_gas_164" - -"$have_gas_164": ; preds = %"$out_of_gas_163", %"$have_gas_150" - %"$consume_165" = sub i64 %"$gasrem_161", %"$_literal_cost_call_160" - store i64 %"$consume_165", i64* @_gasrem, align 8 - %"$execptr_load_166" = load i8*, i8** @_execptr, align 8 - %"$new_strings_168" = load %TName_List_String*, %TName_List_String** %new_strings, align 8 - %"$update_value_169" = bitcast %TName_List_String* %"$new_strings_168" to i8* - call void @_update_field(i8* %"$execptr_load_166", i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$stored_strings_167", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_ADT_List_String_39", i32 0, i8* null, i8* %"$update_value_169"), !dbg !20 + br label %"$have_gas_167" + +"$have_gas_167": ; preds = %"$out_of_gas_166", %"$have_gas_153" + %"$consume_168" = sub i64 %"$gasrem_164", %"$_literal_cost_call_163" + store i64 %"$consume_168", i64* @_gasrem, align 8 + %"$execptr_load_169" = load i8*, i8** @_execptr, align 8 + %"$new_strings_171" = load %TName_List_String*, %TName_List_String** %new_strings, align 8 + %"$update_value_172" = bitcast %TName_List_String* %"$new_strings_171" to i8* + call void @_update_field(i8* %"$execptr_load_169", i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$stored_strings_170", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_ADT_List_String_39", i32 0, i8* null, i8* %"$update_value_172"), !dbg !42 ret void } declare i8* @_fetch_field(i8*, i8*, %_TyDescrTy_Typ*, i32, i8*, i32) -define void @StoreString(i8* %0) !dbg !21 { +define void @StoreString(i8* %0) !dbg !43 { entry: - %"$_amount_171" = getelementptr i8, i8* %0, i32 0 - %"$_amount_172" = bitcast i8* %"$_amount_171" to %Uint128* - %_amount = load %Uint128, %Uint128* %"$_amount_172", align 8 - %"$_origin_173" = getelementptr i8, i8* %0, i32 16 - %"$_origin_174" = bitcast i8* %"$_origin_173" to [20 x i8]* - %"$_sender_175" = getelementptr i8, i8* %0, i32 36 - %"$_sender_176" = bitcast i8* %"$_sender_175" to [20 x i8]* - %"$s_177" = getelementptr i8, i8* %0, i32 56 - %"$s_178" = bitcast i8* %"$s_177" to %String* - %s = load %String, %String* %"$s_178", align 8 - call void @"$StoreString_126"(%Uint128 %_amount, [20 x i8]* %"$_origin_174", [20 x i8]* %"$_sender_176", %String %s), !dbg !22 + %"$_amount_178" = getelementptr i8, i8* %0, i32 0 + %"$_amount_179" = bitcast i8* %"$_amount_178" to %Uint128* + %_amount = load %Uint128, %Uint128* %"$_amount_179", align 8 + %"$_origin_180" = getelementptr i8, i8* %0, i32 16 + %"$_origin_181" = bitcast i8* %"$_origin_180" to [20 x i8]* + %"$_sender_182" = getelementptr i8, i8* %0, i32 36 + %"$_sender_183" = bitcast i8* %"$_sender_182" to [20 x i8]* + %"$s_184" = getelementptr i8, i8* %0, i32 56 + %"$s_185" = bitcast i8* %"$s_184" to %String* + %s = load %String, %String* %"$s_185", align 8 + call void @"$StoreString_129"(%Uint128 %_amount, [20 x i8]* %"$_origin_181", [20 x i8]* %"$_sender_183", %String %s), !dbg !44 ret void } -define internal void @"$Accept_179"(%Uint128 %_amount, [20 x i8]* %"$_origin_180", [20 x i8]* %"$_sender_181") !dbg !23 { +define internal void @"$Accept_186"(%Uint128 %_amount, [20 x i8]* %"$_origin_187", [20 x i8]* %"$_sender_188") !dbg !45 { entry: - %_origin = load [20 x i8], [20 x i8]* %"$_origin_180", align 1 - %_sender = load [20 x i8], [20 x i8]* %"$_sender_181", align 1 - %"$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_184": ; preds = %entry + %"$_sender_197" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_sender_188", [20 x i8]** %"$_sender_197", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_sender_197", metadata !46, metadata !DIExpression()), !dbg !47 + %"$_origin_196" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_origin_187", [20 x i8]** %"$_origin_196", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_origin_196", metadata !48, metadata !DIExpression()), !dbg !47 + %"$_amount_195" = alloca %Uint128, align 8 + store %Uint128 %_amount, %Uint128* %"$_amount_195", align 8 + call void @llvm.dbg.declare(metadata %Uint128* %"$_amount_195", metadata !49, metadata !DIExpression()), !dbg !47 + %_origin = load [20 x i8], [20 x i8]* %"$_origin_187", align 1 + %_sender = load [20 x i8], [20 x i8]* %"$_sender_188", align 1 + %"$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_185" + br label %"$have_gas_192" -"$have_gas_185": ; preds = %"$out_of_gas_184", %entry - %"$consume_186" = sub i64 %"$gasrem_182", 1 - store i64 %"$consume_186", i64* @_gasrem, align 8 - %"$execptr_load_187" = load i8*, i8** @_execptr, align 8 - call void @_accept(i8* %"$execptr_load_187"), !dbg !24 +"$have_gas_192": ; preds = %"$out_of_gas_191", %entry + %"$consume_193" = sub i64 %"$gasrem_189", 1 + store i64 %"$consume_193", i64* @_gasrem, align 8 + %"$execptr_load_194" = load i8*, i8** @_execptr, align 8 + call void @_accept(i8* %"$execptr_load_194"), !dbg !50 ret void } declare void @_accept(i8*) -define void @Accept(i8* %0) !dbg !25 { +define void @Accept(i8* %0) !dbg !51 { entry: - %"$_amount_189" = getelementptr i8, i8* %0, i32 0 - %"$_amount_190" = bitcast i8* %"$_amount_189" to %Uint128* - %_amount = load %Uint128, %Uint128* %"$_amount_190", align 8 - %"$_origin_191" = getelementptr i8, i8* %0, i32 16 - %"$_origin_192" = bitcast i8* %"$_origin_191" to [20 x i8]* - %"$_sender_193" = getelementptr i8, i8* %0, i32 36 - %"$_sender_194" = bitcast i8* %"$_sender_193" to [20 x i8]* - call void @"$Accept_179"(%Uint128 %_amount, [20 x i8]* %"$_origin_192", [20 x i8]* %"$_sender_194"), !dbg !26 + %"$_amount_199" = getelementptr i8, i8* %0, i32 0 + %"$_amount_200" = bitcast i8* %"$_amount_199" to %Uint128* + %_amount = load %Uint128, %Uint128* %"$_amount_200", align 8 + %"$_origin_201" = getelementptr i8, i8* %0, i32 16 + %"$_origin_202" = bitcast i8* %"$_origin_201" to [20 x i8]* + %"$_sender_203" = getelementptr i8, i8* %0, i32 36 + %"$_sender_204" = bitcast i8* %"$_sender_203" to [20 x i8]* + call void @"$Accept_186"(%Uint128 %_amount, [20 x i8]* %"$_origin_202", [20 x i8]* %"$_sender_204"), !dbg !52 ret void } -define internal void @"$AcceptTwice_195"(%Uint128 %_amount, [20 x i8]* %"$_origin_196", [20 x i8]* %"$_sender_197") !dbg !27 { +define internal void @"$AcceptTwice_205"(%Uint128 %_amount, [20 x i8]* %"$_origin_206", [20 x i8]* %"$_sender_207") !dbg !53 { entry: - %_origin = load [20 x i8], [20 x i8]* %"$_origin_196", align 1 - %_sender = load [20 x i8], [20 x i8]* %"$_sender_197", align 1 - %"$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 = %entry + %"$_sender_222" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_sender_207", [20 x i8]** %"$_sender_222", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_sender_222", metadata !54, metadata !DIExpression()), !dbg !55 + %"$_origin_221" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_origin_206", [20 x i8]** %"$_origin_221", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_origin_221", metadata !56, metadata !DIExpression()), !dbg !55 + %"$_amount_220" = alloca %Uint128, align 8 + store %Uint128 %_amount, %Uint128* %"$_amount_220", align 8 + call void @llvm.dbg.declare(metadata %Uint128* %"$_amount_220", metadata !57, metadata !DIExpression()), !dbg !55 + %_origin = load [20 x i8], [20 x i8]* %"$_origin_206", align 1 + %_sender = load [20 x i8], [20 x i8]* %"$_sender_207", align 1 + %"$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 = %entry call void @_out_of_gas() - br label %"$have_gas_201" - -"$have_gas_201": ; preds = %"$out_of_gas_200", %entry - %"$consume_202" = sub i64 %"$gasrem_198", 1 - store i64 %"$consume_202", i64* @_gasrem, align 8 - %"$execptr_load_203" = load i8*, i8** @_execptr, align 8 - call void @_accept(i8* %"$execptr_load_203"), !dbg !28 - %"$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_201" + br label %"$have_gas_211" + +"$have_gas_211": ; preds = %"$out_of_gas_210", %entry + %"$consume_212" = sub i64 %"$gasrem_208", 1 + store i64 %"$consume_212", i64* @_gasrem, align 8 + %"$execptr_load_213" = load i8*, i8** @_execptr, align 8 + call void @_accept(i8* %"$execptr_load_213"), !dbg !58 + %"$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 = %"$have_gas_211" call void @_out_of_gas() - br label %"$have_gas_207" + br label %"$have_gas_217" -"$have_gas_207": ; preds = %"$out_of_gas_206", %"$have_gas_201" - %"$consume_208" = sub i64 %"$gasrem_204", 1 - store i64 %"$consume_208", i64* @_gasrem, align 8 - %"$execptr_load_209" = load i8*, i8** @_execptr, align 8 - call void @_accept(i8* %"$execptr_load_209"), !dbg !29 +"$have_gas_217": ; preds = %"$out_of_gas_216", %"$have_gas_211" + %"$consume_218" = sub i64 %"$gasrem_214", 1 + store i64 %"$consume_218", i64* @_gasrem, align 8 + %"$execptr_load_219" = load i8*, i8** @_execptr, align 8 + call void @_accept(i8* %"$execptr_load_219"), !dbg !59 ret void } -define void @AcceptTwice(i8* %0) !dbg !30 { +define void @AcceptTwice(i8* %0) !dbg !60 { entry: - %"$_amount_211" = getelementptr i8, i8* %0, i32 0 - %"$_amount_212" = bitcast i8* %"$_amount_211" to %Uint128* - %_amount = load %Uint128, %Uint128* %"$_amount_212", align 8 - %"$_origin_213" = getelementptr i8, i8* %0, i32 16 - %"$_origin_214" = bitcast i8* %"$_origin_213" to [20 x i8]* - %"$_sender_215" = getelementptr i8, i8* %0, i32 36 - %"$_sender_216" = bitcast i8* %"$_sender_215" to [20 x i8]* - call void @"$AcceptTwice_195"(%Uint128 %_amount, [20 x i8]* %"$_origin_214", [20 x i8]* %"$_sender_216"), !dbg !31 + %"$_amount_224" = getelementptr i8, i8* %0, i32 0 + %"$_amount_225" = bitcast i8* %"$_amount_224" to %Uint128* + %_amount = load %Uint128, %Uint128* %"$_amount_225", align 8 + %"$_origin_226" = getelementptr i8, i8* %0, i32 16 + %"$_origin_227" = bitcast i8* %"$_origin_226" to [20 x i8]* + %"$_sender_228" = getelementptr i8, i8* %0, i32 36 + %"$_sender_229" = bitcast i8* %"$_sender_228" to [20 x i8]* + call void @"$AcceptTwice_205"(%Uint128 %_amount, [20 x i8]* %"$_origin_227", [20 x i8]* %"$_sender_229"), !dbg !61 ret void } -define internal void @"$NonAccept_217"(%Uint128 %_amount, [20 x i8]* %"$_origin_218", [20 x i8]* %"$_sender_219") !dbg !32 { +define internal void @"$NonAccept_230"(%Uint128 %_amount, [20 x i8]* %"$_origin_231", [20 x i8]* %"$_sender_232") !dbg !62 { entry: - %_origin = load [20 x i8], [20 x i8]* %"$_origin_218", align 1 - %_sender = load [20 x i8], [20 x i8]* %"$_sender_219", align 1 + %"$_sender_235" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_sender_232", [20 x i8]** %"$_sender_235", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_sender_235", metadata !63, metadata !DIExpression()), !dbg !64 + %"$_origin_234" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_origin_231", [20 x i8]** %"$_origin_234", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_origin_234", metadata !65, metadata !DIExpression()), !dbg !64 + %"$_amount_233" = alloca %Uint128, align 8 + store %Uint128 %_amount, %Uint128* %"$_amount_233", align 8 + call void @llvm.dbg.declare(metadata %Uint128* %"$_amount_233", metadata !66, metadata !DIExpression()), !dbg !64 + %_origin = load [20 x i8], [20 x i8]* %"$_origin_231", align 1 + %_sender = load [20 x i8], [20 x i8]* %"$_sender_232", align 1 ret void } -define void @NonAccept(i8* %0) !dbg !33 { +define void @NonAccept(i8* %0) !dbg !67 { entry: - %"$_amount_221" = getelementptr i8, i8* %0, i32 0 - %"$_amount_222" = bitcast i8* %"$_amount_221" to %Uint128* - %_amount = load %Uint128, %Uint128* %"$_amount_222", align 8 - %"$_origin_223" = getelementptr i8, i8* %0, i32 16 - %"$_origin_224" = bitcast i8* %"$_origin_223" to [20 x i8]* - %"$_sender_225" = getelementptr i8, i8* %0, i32 36 - %"$_sender_226" = bitcast i8* %"$_sender_225" to [20 x i8]* - call void @"$NonAccept_217"(%Uint128 %_amount, [20 x i8]* %"$_origin_224", [20 x i8]* %"$_sender_226"), !dbg !34 + %"$_amount_237" = getelementptr i8, i8* %0, i32 0 + %"$_amount_238" = bitcast i8* %"$_amount_237" to %Uint128* + %_amount = load %Uint128, %Uint128* %"$_amount_238", align 8 + %"$_origin_239" = getelementptr i8, i8* %0, i32 16 + %"$_origin_240" = bitcast i8* %"$_origin_239" to [20 x i8]* + %"$_sender_241" = getelementptr i8, i8* %0, i32 36 + %"$_sender_242" = bitcast i8* %"$_sender_241" to [20 x i8]* + call void @"$NonAccept_230"(%Uint128 %_amount, [20 x i8]* %"$_origin_240", [20 x i8]* %"$_sender_242"), !dbg !68 ret void } -define internal void @"$CheckBalance_227"(%Uint128 %_amount, [20 x i8]* %"$_origin_228", [20 x i8]* %"$_sender_229", %Uint128 %expected_balance) !dbg !35 { +define internal void @"$CheckBalance_243"(%Uint128 %_amount, [20 x i8]* %"$_origin_244", [20 x i8]* %"$_sender_245", %Uint128 %expected_balance) !dbg !69 { entry: - %_origin = load [20 x i8], [20 x i8]* %"$_origin_228", align 1 - %_sender = load [20 x i8], [20 x i8]* %"$_sender_229", align 1 + %"$expected_balance_338" = alloca %Uint128, align 8 + store %Uint128 %expected_balance, %Uint128* %"$expected_balance_338", align 8 + call void @llvm.dbg.declare(metadata %Uint128* %"$expected_balance_338", metadata !70, metadata !DIExpression()), !dbg !71 + %"$_sender_337" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_sender_245", [20 x i8]** %"$_sender_337", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_sender_337", metadata !72, metadata !DIExpression()), !dbg !73 + %"$_origin_336" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_origin_244", [20 x i8]** %"$_origin_336", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_origin_336", metadata !74, metadata !DIExpression()), !dbg !73 + %"$_amount_335" = alloca %Uint128, align 8 + store %Uint128 %_amount, %Uint128* %"$_amount_335", align 8 + call void @llvm.dbg.declare(metadata %Uint128* %"$_amount_335", metadata !75, metadata !DIExpression()), !dbg !73 + %_origin = load [20 x i8], [20 x i8]* %"$_origin_244", align 1 + %_sender = load [20 x i8], [20 x i8]* %"$_sender_245", align 1 %cur_balance = alloca %Uint128, align 8 - %"$execptr_load_231" = load i8*, i8** @_execptr, align 8 - %"$cur_balance_call_232" = call i8* @_fetch_field(i8* %"$execptr_load_231", i8* getelementptr inbounds ([9 x i8], [9 x i8]* @"$_balance_230", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Uint128_14", i32 0, i8* null, i32 1), !dbg !36 - %"$cur_balance_233" = bitcast i8* %"$cur_balance_call_232" to %Uint128* - %"$cur_balance_234" = load %Uint128, %Uint128* %"$cur_balance_233", align 8 - store %Uint128 %"$cur_balance_234", %Uint128* %cur_balance, align 8 - %"$_literal_cost_cur_balance_235" = alloca %Uint128, align 8 - %"$cur_balance_236" = load %Uint128, %Uint128* %cur_balance, align 8 - store %Uint128 %"$cur_balance_236", %Uint128* %"$_literal_cost_cur_balance_235", align 8 - %"$$_literal_cost_cur_balance_235_237" = bitcast %Uint128* %"$_literal_cost_cur_balance_235" to i8* - %"$_literal_cost_call_238" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Uint128_14", i8* %"$$_literal_cost_cur_balance_235_237") - %"$gasadd_239" = add i64 %"$_literal_cost_call_238", 0 - %"$gasrem_240" = load i64, i64* @_gasrem, align 8 - %"$gascmp_241" = icmp ugt i64 %"$gasadd_239", %"$gasrem_240" - br i1 %"$gascmp_241", label %"$out_of_gas_242", label %"$have_gas_243" - -"$out_of_gas_242": ; preds = %entry + call void @llvm.dbg.declare(metadata %Uint128* %cur_balance, metadata !76, metadata !DIExpression()), !dbg !77 + %"$execptr_load_247" = load i8*, i8** @_execptr, align 8 + %"$cur_balance_call_248" = call i8* @_fetch_field(i8* %"$execptr_load_247", i8* getelementptr inbounds ([9 x i8], [9 x i8]* @"$_balance_246", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Uint128_14", i32 0, i8* null, i32 1), !dbg !77 + %"$cur_balance_249" = bitcast i8* %"$cur_balance_call_248" to %Uint128* + %"$cur_balance_250" = load %Uint128, %Uint128* %"$cur_balance_249", align 8 + store %Uint128 %"$cur_balance_250", %Uint128* %cur_balance, align 8 + %"$_literal_cost_cur_balance_251" = alloca %Uint128, align 8 + %"$cur_balance_252" = load %Uint128, %Uint128* %cur_balance, align 8 + store %Uint128 %"$cur_balance_252", %Uint128* %"$_literal_cost_cur_balance_251", align 8 + %"$$_literal_cost_cur_balance_251_253" = bitcast %Uint128* %"$_literal_cost_cur_balance_251" to i8* + %"$_literal_cost_call_254" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Uint128_14", i8* %"$$_literal_cost_cur_balance_251_253") + %"$gasadd_255" = add i64 %"$_literal_cost_call_254", 0 + %"$gasrem_256" = load i64, i64* @_gasrem, align 8 + %"$gascmp_257" = icmp ugt i64 %"$gasadd_255", %"$gasrem_256" + br i1 %"$gascmp_257", label %"$out_of_gas_258", label %"$have_gas_259" + +"$out_of_gas_258": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_243" + br label %"$have_gas_259" -"$have_gas_243": ; preds = %"$out_of_gas_242", %entry - %"$consume_244" = sub i64 %"$gasrem_240", %"$gasadd_239" - store i64 %"$consume_244", i64* @_gasrem, align 8 - %"$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" +"$have_gas_259": ; preds = %"$out_of_gas_258", %entry + %"$consume_260" = sub i64 %"$gasrem_256", %"$gasadd_255" + store i64 %"$consume_260", i64* @_gasrem, align 8 + %"$gasrem_261" = load i64, i64* @_gasrem, align 8 + %"$gascmp_262" = icmp ugt i64 1, %"$gasrem_261" + br i1 %"$gascmp_262", label %"$out_of_gas_263", label %"$have_gas_264" -"$out_of_gas_247": ; preds = %"$have_gas_243" +"$out_of_gas_263": ; preds = %"$have_gas_259" call void @_out_of_gas() - br label %"$have_gas_248" + br label %"$have_gas_264" -"$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 +"$have_gas_264": ; preds = %"$out_of_gas_263", %"$have_gas_259" + %"$consume_265" = sub i64 %"$gasrem_261", 1 + store i64 %"$consume_265", i64* @_gasrem, align 8 %is_expected = alloca %TName_Bool*, align 8 - %"$gasrem_251" = load i64, i64* @_gasrem, align 8 - %"$gascmp_252" = icmp ugt i64 8, %"$gasrem_251" - br i1 %"$gascmp_252", label %"$out_of_gas_253", label %"$have_gas_254" + call void @llvm.dbg.declare(metadata %TName_Bool** %is_expected, metadata !78, metadata !DIExpression()), !dbg !81 + %"$gasrem_267" = load i64, i64* @_gasrem, align 8 + %"$gascmp_268" = icmp ugt i64 8, %"$gasrem_267" + br i1 %"$gascmp_268", label %"$out_of_gas_269", label %"$have_gas_270" -"$out_of_gas_253": ; preds = %"$have_gas_248" +"$out_of_gas_269": ; preds = %"$have_gas_264" call void @_out_of_gas() - br label %"$have_gas_254" - -"$have_gas_254": ; preds = %"$out_of_gas_253", %"$have_gas_248" - %"$consume_255" = sub i64 %"$gasrem_251", 8 - store i64 %"$consume_255", i64* @_gasrem, align 8 - %"$execptr_load_256" = load i8*, i8** @_execptr, align 8 - %"$cur_balance_257" = load %Uint128, %Uint128* %cur_balance, align 8 - %"$eq_call_258" = call %TName_Bool* @_eq_Uint128(i8* %"$execptr_load_256", %Uint128 %expected_balance, %Uint128 %"$cur_balance_257"), !dbg !37 - store %TName_Bool* %"$eq_call_258", %TName_Bool** %is_expected, align 8, !dbg !37 - %"$gasrem_260" = load i64, i64* @_gasrem, align 8 - %"$gascmp_261" = icmp ugt i64 2, %"$gasrem_260" - br i1 %"$gascmp_261", label %"$out_of_gas_262", label %"$have_gas_263" - -"$out_of_gas_262": ; preds = %"$have_gas_254" + br label %"$have_gas_270" + +"$have_gas_270": ; preds = %"$out_of_gas_269", %"$have_gas_264" + %"$consume_271" = sub i64 %"$gasrem_267", 8 + store i64 %"$consume_271", i64* @_gasrem, align 8 + %"$execptr_load_272" = load i8*, i8** @_execptr, align 8 + %"$cur_balance_273" = load %Uint128, %Uint128* %cur_balance, align 8 + %"$eq_call_274" = call %TName_Bool* @_eq_Uint128(i8* %"$execptr_load_272", %Uint128 %expected_balance, %Uint128 %"$cur_balance_273"), !dbg !82 + store %TName_Bool* %"$eq_call_274", %TName_Bool** %is_expected, align 8, !dbg !82 + %"$gasrem_276" = load i64, i64* @_gasrem, align 8 + %"$gascmp_277" = icmp ugt i64 2, %"$gasrem_276" + br i1 %"$gascmp_277", label %"$out_of_gas_278", label %"$have_gas_279" + +"$out_of_gas_278": ; preds = %"$have_gas_270" call void @_out_of_gas() - br label %"$have_gas_263" - -"$have_gas_263": ; preds = %"$out_of_gas_262", %"$have_gas_254" - %"$consume_264" = sub i64 %"$gasrem_260", 2 - store i64 %"$consume_264", i64* @_gasrem, align 8 - %"$is_expected_266" = load %TName_Bool*, %TName_Bool** %is_expected, align 8 - %"$is_expected_tag_267" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$is_expected_266", i32 0, i32 0 - %"$is_expected_tag_268" = load i8, i8* %"$is_expected_tag_267", align 1 - switch i8 %"$is_expected_tag_268", label %"$empty_default_269" [ - i8 0, label %"$True_270" - i8 1, label %"$False_272" - ], !dbg !38 - -"$True_270": ; preds = %"$have_gas_263" - %"$is_expected_271" = bitcast %TName_Bool* %"$is_expected_266" to %CName_True* - br label %"$matchsucc_265" - -"$False_272": ; preds = %"$have_gas_263" - %"$is_expected_273" = bitcast %TName_Bool* %"$is_expected_266" to %CName_False* - %"$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 = %"$False_272" + br label %"$have_gas_279" + +"$have_gas_279": ; preds = %"$out_of_gas_278", %"$have_gas_270" + %"$consume_280" = sub i64 %"$gasrem_276", 2 + store i64 %"$consume_280", i64* @_gasrem, align 8 + %"$is_expected_282" = load %TName_Bool*, %TName_Bool** %is_expected, align 8 + %"$is_expected_tag_283" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$is_expected_282", i32 0, i32 0 + %"$is_expected_tag_284" = load i8, i8* %"$is_expected_tag_283", align 1 + switch i8 %"$is_expected_tag_284", label %"$empty_default_285" [ + i8 0, label %"$True_286" + i8 1, label %"$False_288" + ], !dbg !83 + +"$True_286": ; preds = %"$have_gas_279" + %"$is_expected_287" = bitcast %TName_Bool* %"$is_expected_282" to %CName_True* + br label %"$matchsucc_281" + +"$False_288": ; preds = %"$have_gas_279" + %"$is_expected_289" = bitcast %TName_Bool* %"$is_expected_282" to %CName_False* + %"$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_292": ; preds = %"$False_288" call void @_out_of_gas() - br label %"$have_gas_277" + br label %"$have_gas_293" -"$have_gas_277": ; preds = %"$out_of_gas_276", %"$False_272" - %"$consume_278" = sub i64 %"$gasrem_274", 1 - store i64 %"$consume_278", i64* @_gasrem, align 8 +"$have_gas_293": ; preds = %"$out_of_gas_292", %"$False_288" + %"$consume_294" = sub i64 %"$gasrem_290", 1 + store i64 %"$consume_294", i64* @_gasrem, align 8 %e = alloca i8*, align 8 - %"$gasrem_279" = load i64, i64* @_gasrem, align 8 - %"$gascmp_280" = icmp ugt i64 1, %"$gasrem_279" - br i1 %"$gascmp_280", label %"$out_of_gas_281", label %"$have_gas_282" + call void @llvm.dbg.declare(metadata i8** %e, metadata !84, metadata !DIExpression()), !dbg !89 + %"$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_281": ; preds = %"$have_gas_277" +"$out_of_gas_297": ; preds = %"$have_gas_293" call void @_out_of_gas() - br label %"$have_gas_282" - -"$have_gas_282": ; preds = %"$out_of_gas_281", %"$have_gas_277" - %"$consume_283" = sub i64 %"$gasrem_279", 1 - store i64 %"$consume_283", i64* @_gasrem, align 8 - %"$msgobj_284_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$msgobj_284_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_284_salloc_load", i64 121) - %"$msgobj_284_salloc" = bitcast i8* %"$msgobj_284_salloc_salloc" to [121 x i8]* - %"$msgobj_284" = bitcast [121 x i8]* %"$msgobj_284_salloc" to i8* - store i8 3, i8* %"$msgobj_284", align 1 - %"$msgobj_fname_286" = getelementptr i8, i8* %"$msgobj_284", i32 1 - %"$msgobj_fname_287" = bitcast i8* %"$msgobj_fname_286" to %String* - store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_285", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_287", align 8 - %"$msgobj_td_288" = getelementptr i8, i8* %"$msgobj_284", i32 17 - %"$msgobj_td_289" = bitcast i8* %"$msgobj_td_288" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_String_20", %_TyDescrTy_Typ** %"$msgobj_td_289", align 8 - %"$msgobj_v_291" = getelementptr i8, i8* %"$msgobj_284", i32 25 - %"$msgobj_v_292" = bitcast i8* %"$msgobj_v_291" to %String* - store %String { i8* getelementptr inbounds ([38 x i8], [38 x i8]* @"$stringlit_290", i32 0, i32 0), i32 38 }, %String* %"$msgobj_v_292", align 8 - %"$msgobj_fname_294" = getelementptr i8, i8* %"$msgobj_284", i32 41 - %"$msgobj_fname_295" = bitcast i8* %"$msgobj_fname_294" to %String* - store %String { i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$stringlit_293", i32 0, i32 0), i32 8 }, %String* %"$msgobj_fname_295", align 8 - %"$msgobj_td_296" = getelementptr i8, i8* %"$msgobj_284", i32 57 - %"$msgobj_td_297" = bitcast i8* %"$msgobj_td_296" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Uint128_14", %_TyDescrTy_Typ** %"$msgobj_td_297", align 8 - %"$msgobj_v_298" = getelementptr i8, i8* %"$msgobj_284", i32 65 - %"$msgobj_v_299" = bitcast i8* %"$msgobj_v_298" to %Uint128* - store %Uint128 %expected_balance, %Uint128* %"$msgobj_v_299", align 8 - %"$msgobj_fname_301" = getelementptr i8, i8* %"$msgobj_284", i32 81 - %"$msgobj_fname_302" = bitcast i8* %"$msgobj_fname_301" to %String* - store %String { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$stringlit_300", i32 0, i32 0), i32 6 }, %String* %"$msgobj_fname_302", align 8 - %"$msgobj_td_303" = getelementptr i8, i8* %"$msgobj_284", i32 97 - %"$msgobj_td_304" = bitcast i8* %"$msgobj_td_303" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Uint128_14", %_TyDescrTy_Typ** %"$msgobj_td_304", align 8 - %"$cur_balance_305" = load %Uint128, %Uint128* %cur_balance, align 8 - %"$msgobj_v_306" = getelementptr i8, i8* %"$msgobj_284", i32 105 - %"$msgobj_v_307" = bitcast i8* %"$msgobj_v_306" to %Uint128* - store %Uint128 %"$cur_balance_305", %Uint128* %"$msgobj_v_307", align 8 - store i8* %"$msgobj_284", i8** %e, align 8, !dbg !39 - %"$e_309" = load i8*, i8** %e, align 8 - %"$_literal_cost_call_311" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Exception_28", i8* %"$e_309") - %"$gasrem_312" = load i64, i64* @_gasrem, align 8 - %"$gascmp_313" = icmp ugt i64 %"$_literal_cost_call_311", %"$gasrem_312" - br i1 %"$gascmp_313", label %"$out_of_gas_314", label %"$have_gas_315" - -"$out_of_gas_314": ; preds = %"$have_gas_282" + br label %"$have_gas_298" + +"$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 + %"$msgobj_300_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$msgobj_300_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_300_salloc_load", i64 121) + %"$msgobj_300_salloc" = bitcast i8* %"$msgobj_300_salloc_salloc" to [121 x i8]* + %"$msgobj_300" = bitcast [121 x i8]* %"$msgobj_300_salloc" to i8* + store i8 3, i8* %"$msgobj_300", align 1 + %"$msgobj_fname_302" = getelementptr i8, i8* %"$msgobj_300", i32 1 + %"$msgobj_fname_303" = bitcast i8* %"$msgobj_fname_302" to %String* + store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_301", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_303", align 8 + %"$msgobj_td_304" = getelementptr i8, i8* %"$msgobj_300", i32 17 + %"$msgobj_td_305" = bitcast i8* %"$msgobj_td_304" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_String_20", %_TyDescrTy_Typ** %"$msgobj_td_305", align 8 + %"$msgobj_v_307" = getelementptr i8, i8* %"$msgobj_300", i32 25 + %"$msgobj_v_308" = bitcast i8* %"$msgobj_v_307" to %String* + store %String { i8* getelementptr inbounds ([38 x i8], [38 x i8]* @"$stringlit_306", i32 0, i32 0), i32 38 }, %String* %"$msgobj_v_308", align 8 + %"$msgobj_fname_310" = getelementptr i8, i8* %"$msgobj_300", i32 41 + %"$msgobj_fname_311" = bitcast i8* %"$msgobj_fname_310" to %String* + store %String { i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$stringlit_309", i32 0, i32 0), i32 8 }, %String* %"$msgobj_fname_311", align 8 + %"$msgobj_td_312" = getelementptr i8, i8* %"$msgobj_300", i32 57 + %"$msgobj_td_313" = bitcast i8* %"$msgobj_td_312" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Uint128_14", %_TyDescrTy_Typ** %"$msgobj_td_313", align 8 + %"$msgobj_v_314" = getelementptr i8, i8* %"$msgobj_300", i32 65 + %"$msgobj_v_315" = bitcast i8* %"$msgobj_v_314" to %Uint128* + store %Uint128 %expected_balance, %Uint128* %"$msgobj_v_315", align 8 + %"$msgobj_fname_317" = getelementptr i8, i8* %"$msgobj_300", i32 81 + %"$msgobj_fname_318" = bitcast i8* %"$msgobj_fname_317" to %String* + store %String { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$stringlit_316", i32 0, i32 0), i32 6 }, %String* %"$msgobj_fname_318", align 8 + %"$msgobj_td_319" = getelementptr i8, i8* %"$msgobj_300", i32 97 + %"$msgobj_td_320" = bitcast i8* %"$msgobj_td_319" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Uint128_14", %_TyDescrTy_Typ** %"$msgobj_td_320", align 8 + %"$cur_balance_321" = load %Uint128, %Uint128* %cur_balance, align 8 + %"$msgobj_v_322" = getelementptr i8, i8* %"$msgobj_300", i32 105 + %"$msgobj_v_323" = bitcast i8* %"$msgobj_v_322" to %Uint128* + store %Uint128 %"$cur_balance_321", %Uint128* %"$msgobj_v_323", align 8 + store i8* %"$msgobj_300", i8** %e, align 8, !dbg !90 + %"$e_325" = load i8*, i8** %e, align 8 + %"$_literal_cost_call_327" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Exception_28", i8* %"$e_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 = %"$have_gas_298" call void @_out_of_gas() - br label %"$have_gas_315" + br label %"$have_gas_331" -"$have_gas_315": ; preds = %"$out_of_gas_314", %"$have_gas_282" - %"$consume_316" = sub i64 %"$gasrem_312", %"$_literal_cost_call_311" - store i64 %"$consume_316", i64* @_gasrem, align 8 - %"$execptr_load_317" = load i8*, i8** @_execptr, align 8 - %"$e_318" = load i8*, i8** %e, align 8 - call void @_throw(i8* %"$execptr_load_317", %_TyDescrTy_Typ* @"$TyDescr_Exception_28", i8* %"$e_318"), !dbg !42 - br label %"$matchsucc_265" +"$have_gas_331": ; preds = %"$out_of_gas_330", %"$have_gas_298" + %"$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 + %"$e_334" = load i8*, i8** %e, align 8 + call void @_throw(i8* %"$execptr_load_333", %_TyDescrTy_Typ* @"$TyDescr_Exception_28", i8* %"$e_334"), !dbg !91 + br label %"$matchsucc_281" -"$empty_default_269": ; preds = %"$have_gas_263" - br label %"$matchsucc_265" +"$empty_default_285": ; preds = %"$have_gas_279" + br label %"$matchsucc_281" -"$matchsucc_265": ; preds = %"$have_gas_315", %"$True_270", %"$empty_default_269" +"$matchsucc_281": ; preds = %"$have_gas_331", %"$True_286", %"$empty_default_285" ret void } @@ -658,368 +728,348 @@ declare %TName_Bool* @_eq_Uint128(i8*, %Uint128, %Uint128) declare void @_throw(i8*, %_TyDescrTy_Typ*, i8*) -define internal void @"$CheckSenderBalance_319"(%Uint128 %_amount, [20 x i8]* %"$_origin_320", [20 x i8]* %"$_sender_321", %Uint128 %expected_balance) !dbg !43 { +define internal void @"$CheckSenderBalance_339"(%Uint128 %_amount, [20 x i8]* %"$_origin_340", [20 x i8]* %"$_sender_341", %Uint128 %expected_balance) !dbg !92 { entry: - %_origin = load [20 x i8], [20 x i8]* %"$_origin_320", align 1 - %_sender = load [20 x i8], [20 x i8]* %"$_sender_321", align 1 + %"$expected_balance_435" = alloca %Uint128, align 8 + store %Uint128 %expected_balance, %Uint128* %"$expected_balance_435", align 8 + call void @llvm.dbg.declare(metadata %Uint128* %"$expected_balance_435", metadata !93, metadata !DIExpression()), !dbg !94 + %"$_sender_434" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_sender_341", [20 x i8]** %"$_sender_434", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_sender_434", metadata !95, metadata !DIExpression()), !dbg !96 + %"$_origin_433" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_origin_340", [20 x i8]** %"$_origin_433", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_origin_433", metadata !97, metadata !DIExpression()), !dbg !96 + %"$_amount_432" = alloca %Uint128, align 8 + store %Uint128 %_amount, %Uint128* %"$_amount_432", align 8 + call void @llvm.dbg.declare(metadata %Uint128* %"$_amount_432", metadata !98, metadata !DIExpression()), !dbg !96 + %_origin = load [20 x i8], [20 x i8]* %"$_origin_340", align 1 + %_sender = load [20 x i8], [20 x i8]* %"$_sender_341", align 1 %cur_balance = alloca %Uint128, align 8 - %"$execptr_load_323" = load i8*, i8** @_execptr, align 8 - %"$cur_balance__sender_324" = alloca [20 x i8], align 1 - store [20 x i8] %_sender, [20 x i8]* %"$cur_balance__sender_324", align 1 - %"$cur_balance_call_325" = call i8* @_fetch_remote_field(i8* %"$execptr_load_323", [20 x i8]* %"$cur_balance__sender_324", i8* getelementptr inbounds ([9 x i8], [9 x i8]* @"$_balance_322", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Uint128_14", i32 0, i8* null, i32 1), !dbg !44 - %"$cur_balance_326" = bitcast i8* %"$cur_balance_call_325" to %Uint128* - %"$cur_balance_327" = load %Uint128, %Uint128* %"$cur_balance_326", align 8 - store %Uint128 %"$cur_balance_327", %Uint128* %cur_balance, align 8 - %"$_literal_cost_cur_balance_328" = alloca %Uint128, align 8 - %"$cur_balance_329" = load %Uint128, %Uint128* %cur_balance, align 8 - store %Uint128 %"$cur_balance_329", %Uint128* %"$_literal_cost_cur_balance_328", align 8 - %"$$_literal_cost_cur_balance_328_330" = bitcast %Uint128* %"$_literal_cost_cur_balance_328" to i8* - %"$_literal_cost_call_331" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Uint128_14", i8* %"$$_literal_cost_cur_balance_328_330") - %"$gasadd_332" = add i64 %"$_literal_cost_call_331", 0 - %"$gasrem_333" = load i64, i64* @_gasrem, align 8 - %"$gascmp_334" = icmp ugt i64 %"$gasadd_332", %"$gasrem_333" - br i1 %"$gascmp_334", label %"$out_of_gas_335", label %"$have_gas_336" - -"$out_of_gas_335": ; preds = %entry + call void @llvm.dbg.declare(metadata %Uint128* %cur_balance, metadata !99, metadata !DIExpression()), !dbg !100 + %"$execptr_load_343" = load i8*, i8** @_execptr, align 8 + %"$cur_balance__sender_344" = alloca [20 x i8], align 1 + store [20 x i8] %_sender, [20 x i8]* %"$cur_balance__sender_344", align 1 + %"$cur_balance_call_345" = call i8* @_fetch_remote_field(i8* %"$execptr_load_343", [20 x i8]* %"$cur_balance__sender_344", i8* getelementptr inbounds ([9 x i8], [9 x i8]* @"$_balance_342", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Uint128_14", i32 0, i8* null, i32 1), !dbg !100 + %"$cur_balance_346" = bitcast i8* %"$cur_balance_call_345" to %Uint128* + %"$cur_balance_347" = load %Uint128, %Uint128* %"$cur_balance_346", align 8 + store %Uint128 %"$cur_balance_347", %Uint128* %cur_balance, align 8 + %"$_literal_cost_cur_balance_348" = alloca %Uint128, align 8 + %"$cur_balance_349" = load %Uint128, %Uint128* %cur_balance, align 8 + store %Uint128 %"$cur_balance_349", %Uint128* %"$_literal_cost_cur_balance_348", align 8 + %"$$_literal_cost_cur_balance_348_350" = bitcast %Uint128* %"$_literal_cost_cur_balance_348" to i8* + %"$_literal_cost_call_351" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Uint128_14", i8* %"$$_literal_cost_cur_balance_348_350") + %"$gasadd_352" = add i64 %"$_literal_cost_call_351", 0 + %"$gasrem_353" = load i64, i64* @_gasrem, align 8 + %"$gascmp_354" = icmp ugt i64 %"$gasadd_352", %"$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_336" + br label %"$have_gas_356" -"$have_gas_336": ; preds = %"$out_of_gas_335", %entry - %"$consume_337" = sub i64 %"$gasrem_333", %"$gasadd_332" - store i64 %"$consume_337", i64* @_gasrem, align 8 - %"$gasrem_338" = load i64, i64* @_gasrem, align 8 - %"$gascmp_339" = icmp ugt i64 1, %"$gasrem_338" - br i1 %"$gascmp_339", label %"$out_of_gas_340", label %"$have_gas_341" +"$have_gas_356": ; preds = %"$out_of_gas_355", %entry + %"$consume_357" = sub i64 %"$gasrem_353", %"$gasadd_352" + store i64 %"$consume_357", i64* @_gasrem, 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_340": ; preds = %"$have_gas_336" +"$out_of_gas_360": ; preds = %"$have_gas_356" call void @_out_of_gas() - br label %"$have_gas_341" + br label %"$have_gas_361" -"$have_gas_341": ; preds = %"$out_of_gas_340", %"$have_gas_336" - %"$consume_342" = sub i64 %"$gasrem_338", 1 - store i64 %"$consume_342", i64* @_gasrem, align 8 +"$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 %is_expected = alloca %TName_Bool*, align 8 - %"$gasrem_344" = load i64, i64* @_gasrem, align 8 - %"$gascmp_345" = icmp ugt i64 8, %"$gasrem_344" - br i1 %"$gascmp_345", label %"$out_of_gas_346", label %"$have_gas_347" + call void @llvm.dbg.declare(metadata %TName_Bool** %is_expected, metadata !101, metadata !DIExpression()), !dbg !102 + %"$gasrem_364" = load i64, i64* @_gasrem, align 8 + %"$gascmp_365" = icmp ugt i64 8, %"$gasrem_364" + br i1 %"$gascmp_365", label %"$out_of_gas_366", label %"$have_gas_367" -"$out_of_gas_346": ; preds = %"$have_gas_341" +"$out_of_gas_366": ; preds = %"$have_gas_361" call void @_out_of_gas() - br label %"$have_gas_347" - -"$have_gas_347": ; preds = %"$out_of_gas_346", %"$have_gas_341" - %"$consume_348" = sub i64 %"$gasrem_344", 8 - store i64 %"$consume_348", i64* @_gasrem, align 8 - %"$execptr_load_349" = load i8*, i8** @_execptr, align 8 - %"$cur_balance_350" = load %Uint128, %Uint128* %cur_balance, align 8 - %"$eq_call_351" = call %TName_Bool* @_eq_Uint128(i8* %"$execptr_load_349", %Uint128 %expected_balance, %Uint128 %"$cur_balance_350"), !dbg !45 - store %TName_Bool* %"$eq_call_351", %TName_Bool** %is_expected, align 8, !dbg !45 - %"$gasrem_353" = load i64, i64* @_gasrem, align 8 - %"$gascmp_354" = icmp ugt i64 2, %"$gasrem_353" - br i1 %"$gascmp_354", label %"$out_of_gas_355", label %"$have_gas_356" - -"$out_of_gas_355": ; preds = %"$have_gas_347" + br label %"$have_gas_367" + +"$have_gas_367": ; preds = %"$out_of_gas_366", %"$have_gas_361" + %"$consume_368" = sub i64 %"$gasrem_364", 8 + store i64 %"$consume_368", i64* @_gasrem, align 8 + %"$execptr_load_369" = load i8*, i8** @_execptr, align 8 + %"$cur_balance_370" = load %Uint128, %Uint128* %cur_balance, align 8 + %"$eq_call_371" = call %TName_Bool* @_eq_Uint128(i8* %"$execptr_load_369", %Uint128 %expected_balance, %Uint128 %"$cur_balance_370"), !dbg !103 + store %TName_Bool* %"$eq_call_371", %TName_Bool** %is_expected, align 8, !dbg !103 + %"$gasrem_373" = load i64, i64* @_gasrem, align 8 + %"$gascmp_374" = icmp ugt i64 2, %"$gasrem_373" + br i1 %"$gascmp_374", label %"$out_of_gas_375", label %"$have_gas_376" + +"$out_of_gas_375": ; preds = %"$have_gas_367" call void @_out_of_gas() - br label %"$have_gas_356" - -"$have_gas_356": ; preds = %"$out_of_gas_355", %"$have_gas_347" - %"$consume_357" = sub i64 %"$gasrem_353", 2 - store i64 %"$consume_357", i64* @_gasrem, align 8 - %"$is_expected_359" = load %TName_Bool*, %TName_Bool** %is_expected, align 8 - %"$is_expected_tag_360" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$is_expected_359", i32 0, i32 0 - %"$is_expected_tag_361" = load i8, i8* %"$is_expected_tag_360", align 1 - switch i8 %"$is_expected_tag_361", label %"$empty_default_362" [ - i8 0, label %"$True_363" - i8 1, label %"$False_365" - ], !dbg !46 - -"$True_363": ; preds = %"$have_gas_356" - %"$is_expected_364" = bitcast %TName_Bool* %"$is_expected_359" to %CName_True* - br label %"$matchsucc_358" - -"$False_365": ; preds = %"$have_gas_356" - %"$is_expected_366" = bitcast %TName_Bool* %"$is_expected_359" to %CName_False* - %"$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 = %"$False_365" + br label %"$have_gas_376" + +"$have_gas_376": ; preds = %"$out_of_gas_375", %"$have_gas_367" + %"$consume_377" = sub i64 %"$gasrem_373", 2 + store i64 %"$consume_377", i64* @_gasrem, align 8 + %"$is_expected_379" = load %TName_Bool*, %TName_Bool** %is_expected, align 8 + %"$is_expected_tag_380" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$is_expected_379", i32 0, i32 0 + %"$is_expected_tag_381" = load i8, i8* %"$is_expected_tag_380", align 1 + switch i8 %"$is_expected_tag_381", label %"$empty_default_382" [ + i8 0, label %"$True_383" + i8 1, label %"$False_385" + ], !dbg !104 + +"$True_383": ; preds = %"$have_gas_376" + %"$is_expected_384" = bitcast %TName_Bool* %"$is_expected_379" to %CName_True* + br label %"$matchsucc_378" + +"$False_385": ; preds = %"$have_gas_376" + %"$is_expected_386" = bitcast %TName_Bool* %"$is_expected_379" to %CName_False* + %"$gasrem_387" = load i64, i64* @_gasrem, align 8 + %"$gascmp_388" = icmp ugt i64 1, %"$gasrem_387" + br i1 %"$gascmp_388", label %"$out_of_gas_389", label %"$have_gas_390" + +"$out_of_gas_389": ; preds = %"$False_385" call void @_out_of_gas() - br label %"$have_gas_370" + br label %"$have_gas_390" -"$have_gas_370": ; preds = %"$out_of_gas_369", %"$False_365" - %"$consume_371" = sub i64 %"$gasrem_367", 1 - store i64 %"$consume_371", i64* @_gasrem, align 8 +"$have_gas_390": ; preds = %"$out_of_gas_389", %"$False_385" + %"$consume_391" = sub i64 %"$gasrem_387", 1 + store i64 %"$consume_391", i64* @_gasrem, align 8 %e = alloca i8*, 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" + call void @llvm.dbg.declare(metadata i8** %e, metadata !105, metadata !DIExpression()), !dbg !108 + %"$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_374": ; preds = %"$have_gas_370" +"$out_of_gas_394": ; preds = %"$have_gas_390" 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", 1 - store i64 %"$consume_376", i64* @_gasrem, align 8 - %"$msgobj_377_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$msgobj_377_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_377_salloc_load", i64 121) - %"$msgobj_377_salloc" = bitcast i8* %"$msgobj_377_salloc_salloc" to [121 x i8]* - %"$msgobj_377" = bitcast [121 x i8]* %"$msgobj_377_salloc" to i8* - store i8 3, i8* %"$msgobj_377", align 1 - %"$msgobj_fname_379" = getelementptr i8, i8* %"$msgobj_377", i32 1 - %"$msgobj_fname_380" = bitcast i8* %"$msgobj_fname_379" to %String* - store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_378", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_380", align 8 - %"$msgobj_td_381" = getelementptr i8, i8* %"$msgobj_377", i32 17 - %"$msgobj_td_382" = bitcast i8* %"$msgobj_td_381" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_String_20", %_TyDescrTy_Typ** %"$msgobj_td_382", align 8 - %"$msgobj_v_384" = getelementptr i8, i8* %"$msgobj_377", i32 25 - %"$msgobj_v_385" = bitcast i8* %"$msgobj_v_384" to %String* - store %String { i8* getelementptr inbounds ([50 x i8], [50 x i8]* @"$stringlit_383", i32 0, i32 0), i32 50 }, %String* %"$msgobj_v_385", align 8 - %"$msgobj_fname_387" = getelementptr i8, i8* %"$msgobj_377", i32 41 - %"$msgobj_fname_388" = bitcast i8* %"$msgobj_fname_387" to %String* - store %String { i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$stringlit_386", i32 0, i32 0), i32 8 }, %String* %"$msgobj_fname_388", align 8 - %"$msgobj_td_389" = getelementptr i8, i8* %"$msgobj_377", i32 57 - %"$msgobj_td_390" = bitcast i8* %"$msgobj_td_389" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Uint128_14", %_TyDescrTy_Typ** %"$msgobj_td_390", align 8 - %"$msgobj_v_391" = getelementptr i8, i8* %"$msgobj_377", i32 65 - %"$msgobj_v_392" = bitcast i8* %"$msgobj_v_391" to %Uint128* - store %Uint128 %expected_balance, %Uint128* %"$msgobj_v_392", align 8 - %"$msgobj_fname_394" = getelementptr i8, i8* %"$msgobj_377", i32 81 - %"$msgobj_fname_395" = bitcast i8* %"$msgobj_fname_394" to %String* - store %String { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$stringlit_393", i32 0, i32 0), i32 6 }, %String* %"$msgobj_fname_395", align 8 - %"$msgobj_td_396" = getelementptr i8, i8* %"$msgobj_377", i32 97 - %"$msgobj_td_397" = bitcast i8* %"$msgobj_td_396" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Uint128_14", %_TyDescrTy_Typ** %"$msgobj_td_397", align 8 - %"$cur_balance_398" = load %Uint128, %Uint128* %cur_balance, align 8 - %"$msgobj_v_399" = getelementptr i8, i8* %"$msgobj_377", i32 105 - %"$msgobj_v_400" = bitcast i8* %"$msgobj_v_399" to %Uint128* - store %Uint128 %"$cur_balance_398", %Uint128* %"$msgobj_v_400", align 8 - store i8* %"$msgobj_377", i8** %e, align 8, !dbg !47 - %"$e_402" = load i8*, i8** %e, align 8 - %"$_literal_cost_call_404" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Exception_28", i8* %"$e_402") - %"$gasrem_405" = load i64, i64* @_gasrem, align 8 - %"$gascmp_406" = icmp ugt i64 %"$_literal_cost_call_404", %"$gasrem_405" - br i1 %"$gascmp_406", label %"$out_of_gas_407", label %"$have_gas_408" - -"$out_of_gas_407": ; preds = %"$have_gas_375" + br label %"$have_gas_395" + +"$have_gas_395": ; preds = %"$out_of_gas_394", %"$have_gas_390" + %"$consume_396" = sub i64 %"$gasrem_392", 1 + store i64 %"$consume_396", i64* @_gasrem, align 8 + %"$msgobj_397_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$msgobj_397_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_397_salloc_load", i64 121) + %"$msgobj_397_salloc" = bitcast i8* %"$msgobj_397_salloc_salloc" to [121 x i8]* + %"$msgobj_397" = bitcast [121 x i8]* %"$msgobj_397_salloc" to i8* + store i8 3, i8* %"$msgobj_397", align 1 + %"$msgobj_fname_399" = getelementptr i8, i8* %"$msgobj_397", i32 1 + %"$msgobj_fname_400" = bitcast i8* %"$msgobj_fname_399" to %String* + store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_398", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_400", align 8 + %"$msgobj_td_401" = getelementptr i8, i8* %"$msgobj_397", i32 17 + %"$msgobj_td_402" = bitcast i8* %"$msgobj_td_401" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_String_20", %_TyDescrTy_Typ** %"$msgobj_td_402", align 8 + %"$msgobj_v_404" = getelementptr i8, i8* %"$msgobj_397", i32 25 + %"$msgobj_v_405" = bitcast i8* %"$msgobj_v_404" to %String* + store %String { i8* getelementptr inbounds ([50 x i8], [50 x i8]* @"$stringlit_403", i32 0, i32 0), i32 50 }, %String* %"$msgobj_v_405", align 8 + %"$msgobj_fname_407" = getelementptr i8, i8* %"$msgobj_397", i32 41 + %"$msgobj_fname_408" = bitcast i8* %"$msgobj_fname_407" to %String* + store %String { i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$stringlit_406", i32 0, i32 0), i32 8 }, %String* %"$msgobj_fname_408", align 8 + %"$msgobj_td_409" = getelementptr i8, i8* %"$msgobj_397", i32 57 + %"$msgobj_td_410" = bitcast i8* %"$msgobj_td_409" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Uint128_14", %_TyDescrTy_Typ** %"$msgobj_td_410", align 8 + %"$msgobj_v_411" = getelementptr i8, i8* %"$msgobj_397", i32 65 + %"$msgobj_v_412" = bitcast i8* %"$msgobj_v_411" to %Uint128* + store %Uint128 %expected_balance, %Uint128* %"$msgobj_v_412", align 8 + %"$msgobj_fname_414" = getelementptr i8, i8* %"$msgobj_397", i32 81 + %"$msgobj_fname_415" = bitcast i8* %"$msgobj_fname_414" to %String* + store %String { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$stringlit_413", i32 0, i32 0), i32 6 }, %String* %"$msgobj_fname_415", align 8 + %"$msgobj_td_416" = getelementptr i8, i8* %"$msgobj_397", i32 97 + %"$msgobj_td_417" = bitcast i8* %"$msgobj_td_416" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Uint128_14", %_TyDescrTy_Typ** %"$msgobj_td_417", align 8 + %"$cur_balance_418" = load %Uint128, %Uint128* %cur_balance, align 8 + %"$msgobj_v_419" = getelementptr i8, i8* %"$msgobj_397", i32 105 + %"$msgobj_v_420" = bitcast i8* %"$msgobj_v_419" to %Uint128* + store %Uint128 %"$cur_balance_418", %Uint128* %"$msgobj_v_420", align 8 + store i8* %"$msgobj_397", i8** %e, align 8, !dbg !109 + %"$e_422" = load i8*, i8** %e, align 8 + %"$_literal_cost_call_424" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Exception_28", i8* %"$e_422") + %"$gasrem_425" = load i64, i64* @_gasrem, align 8 + %"$gascmp_426" = icmp ugt i64 %"$_literal_cost_call_424", %"$gasrem_425" + br i1 %"$gascmp_426", label %"$out_of_gas_427", label %"$have_gas_428" + +"$out_of_gas_427": ; preds = %"$have_gas_395" call void @_out_of_gas() - br label %"$have_gas_408" + br label %"$have_gas_428" -"$have_gas_408": ; preds = %"$out_of_gas_407", %"$have_gas_375" - %"$consume_409" = sub i64 %"$gasrem_405", %"$_literal_cost_call_404" - store i64 %"$consume_409", i64* @_gasrem, align 8 - %"$execptr_load_410" = load i8*, i8** @_execptr, align 8 - %"$e_411" = load i8*, i8** %e, align 8 - call void @_throw(i8* %"$execptr_load_410", %_TyDescrTy_Typ* @"$TyDescr_Exception_28", i8* %"$e_411"), !dbg !50 - br label %"$matchsucc_358" +"$have_gas_428": ; preds = %"$out_of_gas_427", %"$have_gas_395" + %"$consume_429" = sub i64 %"$gasrem_425", %"$_literal_cost_call_424" + store i64 %"$consume_429", i64* @_gasrem, align 8 + %"$execptr_load_430" = load i8*, i8** @_execptr, align 8 + %"$e_431" = load i8*, i8** %e, align 8 + call void @_throw(i8* %"$execptr_load_430", %_TyDescrTy_Typ* @"$TyDescr_Exception_28", i8* %"$e_431"), !dbg !110 + br label %"$matchsucc_378" -"$empty_default_362": ; preds = %"$have_gas_356" - br label %"$matchsucc_358" +"$empty_default_382": ; preds = %"$have_gas_376" + br label %"$matchsucc_378" -"$matchsucc_358": ; preds = %"$have_gas_408", %"$True_363", %"$empty_default_362" +"$matchsucc_378": ; preds = %"$have_gas_428", %"$True_383", %"$empty_default_382" ret void } declare i8* @_fetch_remote_field(i8*, [20 x i8]*, i8*, %_TyDescrTy_Typ*, i32, i8*, i32) -define internal void @"$AcceptAndCheckBalance_412"(%Uint128 %_amount, [20 x i8]* %"$_origin_413", [20 x i8]* %"$_sender_414") !dbg !51 { +define internal void @"$AcceptAndCheckBalance_436"(%Uint128 %_amount, [20 x i8]* %"$_origin_437", [20 x i8]* %"$_sender_438") !dbg !111 { entry: - %_origin = load [20 x i8], [20 x i8]* %"$_origin_413", align 1 - %_sender = load [20 x i8], [20 x i8]* %"$_sender_414", align 1 + %"$_sender_483" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_sender_438", [20 x i8]** %"$_sender_483", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_sender_483", metadata !112, metadata !DIExpression()), !dbg !113 + %"$_origin_482" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_origin_437", [20 x i8]** %"$_origin_482", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_origin_482", metadata !114, metadata !DIExpression()), !dbg !113 + %"$_amount_481" = alloca %Uint128, align 8 + store %Uint128 %_amount, %Uint128* %"$_amount_481", align 8 + call void @llvm.dbg.declare(metadata %Uint128* %"$_amount_481", metadata !115, metadata !DIExpression()), !dbg !113 + %_origin = load [20 x i8], [20 x i8]* %"$_origin_437", align 1 + %_sender = load [20 x i8], [20 x i8]* %"$_sender_438", align 1 %init_bal = alloca %Uint128, align 8 - %"$execptr_load_416" = load i8*, i8** @_execptr, align 8 - %"$init_bal_call_417" = call i8* @_fetch_field(i8* %"$execptr_load_416", i8* getelementptr inbounds ([9 x i8], [9 x i8]* @"$_balance_415", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Uint128_14", i32 0, i8* null, i32 1), !dbg !52 - %"$init_bal_418" = bitcast i8* %"$init_bal_call_417" to %Uint128* - %"$init_bal_419" = load %Uint128, %Uint128* %"$init_bal_418", align 8 - store %Uint128 %"$init_bal_419", %Uint128* %init_bal, align 8 - %"$_literal_cost_init_bal_420" = alloca %Uint128, align 8 - %"$init_bal_421" = load %Uint128, %Uint128* %init_bal, align 8 - store %Uint128 %"$init_bal_421", %Uint128* %"$_literal_cost_init_bal_420", align 8 - %"$$_literal_cost_init_bal_420_422" = bitcast %Uint128* %"$_literal_cost_init_bal_420" to i8* - %"$_literal_cost_call_423" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Uint128_14", i8* %"$$_literal_cost_init_bal_420_422") - %"$gasadd_424" = add i64 %"$_literal_cost_call_423", 0 - %"$gasrem_425" = load i64, i64* @_gasrem, align 8 - %"$gascmp_426" = icmp ugt i64 %"$gasadd_424", %"$gasrem_425" - br i1 %"$gascmp_426", label %"$out_of_gas_427", label %"$have_gas_428" + call void @llvm.dbg.declare(metadata %Uint128* %init_bal, metadata !116, metadata !DIExpression()), !dbg !117 + %"$execptr_load_440" = load i8*, i8** @_execptr, align 8 + %"$init_bal_call_441" = call i8* @_fetch_field(i8* %"$execptr_load_440", i8* getelementptr inbounds ([9 x i8], [9 x i8]* @"$_balance_439", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Uint128_14", i32 0, i8* null, i32 1), !dbg !117 + %"$init_bal_442" = bitcast i8* %"$init_bal_call_441" to %Uint128* + %"$init_bal_443" = load %Uint128, %Uint128* %"$init_bal_442", align 8 + store %Uint128 %"$init_bal_443", %Uint128* %init_bal, align 8 + %"$_literal_cost_init_bal_444" = alloca %Uint128, align 8 + %"$init_bal_445" = load %Uint128, %Uint128* %init_bal, align 8 + store %Uint128 %"$init_bal_445", %Uint128* %"$_literal_cost_init_bal_444", align 8 + %"$$_literal_cost_init_bal_444_446" = bitcast %Uint128* %"$_literal_cost_init_bal_444" to i8* + %"$_literal_cost_call_447" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Uint128_14", i8* %"$$_literal_cost_init_bal_444_446") + %"$gasadd_448" = add i64 %"$_literal_cost_call_447", 0 + %"$gasrem_449" = load i64, i64* @_gasrem, align 8 + %"$gascmp_450" = icmp ugt i64 %"$gasadd_448", %"$gasrem_449" + br i1 %"$gascmp_450", label %"$out_of_gas_451", label %"$have_gas_452" -"$out_of_gas_427": ; preds = %entry +"$out_of_gas_451": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_428" + br label %"$have_gas_452" -"$have_gas_428": ; preds = %"$out_of_gas_427", %entry - %"$consume_429" = sub i64 %"$gasrem_425", %"$gasadd_424" - store i64 %"$consume_429", i64* @_gasrem, 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" +"$have_gas_452": ; preds = %"$out_of_gas_451", %entry + %"$consume_453" = sub i64 %"$gasrem_449", %"$gasadd_448" + store i64 %"$consume_453", i64* @_gasrem, 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_432": ; preds = %"$have_gas_428" +"$out_of_gas_456": ; preds = %"$have_gas_452" call void @_out_of_gas() - br label %"$have_gas_433" - -"$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 - %"$execptr_load_435" = load i8*, i8** @_execptr, align 8 - call void @_accept(i8* %"$execptr_load_435"), !dbg !53 - %"$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_433" + br label %"$have_gas_457" + +"$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 + %"$execptr_load_459" = load i8*, i8** @_execptr, align 8 + call void @_accept(i8* %"$execptr_load_459"), !dbg !118 + %"$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_462": ; preds = %"$have_gas_457" call void @_out_of_gas() - br label %"$have_gas_439" + br label %"$have_gas_463" -"$have_gas_439": ; preds = %"$out_of_gas_438", %"$have_gas_433" - %"$consume_440" = sub i64 %"$gasrem_436", 1 - store i64 %"$consume_440", i64* @_gasrem, align 8 +"$have_gas_463": ; preds = %"$out_of_gas_462", %"$have_gas_457" + %"$consume_464" = sub i64 %"$gasrem_460", 1 + store i64 %"$consume_464", i64* @_gasrem, align 8 %expected_balance = alloca %Uint128, align 8 - %"$gasrem_442" = load i64, i64* @_gasrem, align 8 - %"$gascmp_443" = icmp ugt i64 8, %"$gasrem_442" - br i1 %"$gascmp_443", label %"$out_of_gas_444", label %"$have_gas_445" + call void @llvm.dbg.declare(metadata %Uint128* %expected_balance, metadata !119, metadata !DIExpression()), !dbg !120 + %"$gasrem_466" = load i64, i64* @_gasrem, align 8 + %"$gascmp_467" = icmp ugt i64 8, %"$gasrem_466" + br i1 %"$gascmp_467", label %"$out_of_gas_468", label %"$have_gas_469" -"$out_of_gas_444": ; preds = %"$have_gas_439" +"$out_of_gas_468": ; preds = %"$have_gas_463" call void @_out_of_gas() - br label %"$have_gas_445" - -"$have_gas_445": ; preds = %"$out_of_gas_444", %"$have_gas_439" - %"$consume_446" = sub i64 %"$gasrem_442", 8 - store i64 %"$consume_446", i64* @_gasrem, align 8 - %"$init_bal_447" = load %Uint128, %Uint128* %init_bal, align 8 - %"$add_call_448" = call %Uint128 @_add_Uint128(%Uint128 %"$init_bal_447", %Uint128 %_amount), !dbg !54 - store %Uint128 %"$add_call_448", %Uint128* %expected_balance, align 8, !dbg !54 - %"$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_451": ; preds = %"$have_gas_445" + br label %"$have_gas_469" + +"$have_gas_469": ; preds = %"$out_of_gas_468", %"$have_gas_463" + %"$consume_470" = sub i64 %"$gasrem_466", 8 + store i64 %"$consume_470", i64* @_gasrem, align 8 + %"$init_bal_471" = load %Uint128, %Uint128* %init_bal, align 8 + %"$add_call_472" = call %Uint128 @_add_Uint128(%Uint128 %"$init_bal_471", %Uint128 %_amount), !dbg !121 + store %Uint128 %"$add_call_472", %Uint128* %expected_balance, align 8, !dbg !121 + %"$gasrem_473" = load i64, i64* @_gasrem, align 8 + %"$gascmp_474" = icmp ugt i64 1, %"$gasrem_473" + br i1 %"$gascmp_474", label %"$out_of_gas_475", label %"$have_gas_476" + +"$out_of_gas_475": ; preds = %"$have_gas_469" call void @_out_of_gas() - br label %"$have_gas_452" - -"$have_gas_452": ; preds = %"$out_of_gas_451", %"$have_gas_445" - %"$consume_453" = sub i64 %"$gasrem_449", 1 - store i64 %"$consume_453", i64* @_gasrem, align 8 - %"$CheckBalance__origin_454" = alloca [20 x i8], align 1 - store [20 x i8] %_origin, [20 x i8]* %"$CheckBalance__origin_454", align 1 - %"$CheckBalance__sender_455" = alloca [20 x i8], align 1 - store [20 x i8] %_sender, [20 x i8]* %"$CheckBalance__sender_455", align 1 - %"$expected_balance_456" = load %Uint128, %Uint128* %expected_balance, align 8 - call void @"$CheckBalance_227"(%Uint128 %_amount, [20 x i8]* %"$CheckBalance__origin_454", [20 x i8]* %"$CheckBalance__sender_455", %Uint128 %"$expected_balance_456"), !dbg !55 + br label %"$have_gas_476" + +"$have_gas_476": ; preds = %"$out_of_gas_475", %"$have_gas_469" + %"$consume_477" = sub i64 %"$gasrem_473", 1 + store i64 %"$consume_477", i64* @_gasrem, align 8 + %"$CheckBalance__origin_478" = alloca [20 x i8], align 1 + store [20 x i8] %_origin, [20 x i8]* %"$CheckBalance__origin_478", align 1 + %"$CheckBalance__sender_479" = alloca [20 x i8], align 1 + store [20 x i8] %_sender, [20 x i8]* %"$CheckBalance__sender_479", align 1 + %"$expected_balance_480" = load %Uint128, %Uint128* %expected_balance, align 8 + call void @"$CheckBalance_243"(%Uint128 %_amount, [20 x i8]* %"$CheckBalance__origin_478", [20 x i8]* %"$CheckBalance__sender_479", %Uint128 %"$expected_balance_480"), !dbg !122 ret void } declare %Uint128 @_add_Uint128(%Uint128, %Uint128) -define void @AcceptAndCheckBalance(i8* %0) !dbg !56 { +define void @AcceptAndCheckBalance(i8* %0) !dbg !123 { entry: - %"$_amount_458" = getelementptr i8, i8* %0, i32 0 - %"$_amount_459" = bitcast i8* %"$_amount_458" to %Uint128* - %_amount = load %Uint128, %Uint128* %"$_amount_459", align 8 - %"$_origin_460" = getelementptr i8, i8* %0, i32 16 - %"$_origin_461" = bitcast i8* %"$_origin_460" to [20 x i8]* - %"$_sender_462" = getelementptr i8, i8* %0, i32 36 - %"$_sender_463" = bitcast i8* %"$_sender_462" to [20 x i8]* - call void @"$AcceptAndCheckBalance_412"(%Uint128 %_amount, [20 x i8]* %"$_origin_461", [20 x i8]* %"$_sender_463"), !dbg !57 + %"$_amount_485" = getelementptr i8, i8* %0, i32 0 + %"$_amount_486" = bitcast i8* %"$_amount_485" to %Uint128* + %_amount = load %Uint128, %Uint128* %"$_amount_486", align 8 + %"$_origin_487" = getelementptr i8, i8* %0, i32 16 + %"$_origin_488" = bitcast i8* %"$_origin_487" to [20 x i8]* + %"$_sender_489" = getelementptr i8, i8* %0, i32 36 + %"$_sender_490" = bitcast i8* %"$_sender_489" to [20 x i8]* + call void @"$AcceptAndCheckBalance_436"(%Uint128 %_amount, [20 x i8]* %"$_origin_488", [20 x i8]* %"$_sender_490"), !dbg !124 ret void } -define internal void @"$AcceptTwiceAndCheckBalance_464"(%Uint128 %_amount, [20 x i8]* %"$_origin_465", [20 x i8]* %"$_sender_466") !dbg !58 { +define internal void @"$AcceptTwiceAndCheckBalance_491"(%Uint128 %_amount, [20 x i8]* %"$_origin_492", [20 x i8]* %"$_sender_493") !dbg !125 { entry: - %_origin = load [20 x i8], [20 x i8]* %"$_origin_465", align 1 - %_sender = load [20 x i8], [20 x i8]* %"$_sender_466", align 1 + %"$_sender_552" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_sender_493", [20 x i8]** %"$_sender_552", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_sender_552", metadata !126, metadata !DIExpression()), !dbg !127 + %"$_origin_551" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_origin_492", [20 x i8]** %"$_origin_551", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_origin_551", metadata !128, metadata !DIExpression()), !dbg !127 + %"$_amount_550" = alloca %Uint128, align 8 + store %Uint128 %_amount, %Uint128* %"$_amount_550", align 8 + call void @llvm.dbg.declare(metadata %Uint128* %"$_amount_550", metadata !129, metadata !DIExpression()), !dbg !127 + %_origin = load [20 x i8], [20 x i8]* %"$_origin_492", align 1 + %_sender = load [20 x i8], [20 x i8]* %"$_sender_493", align 1 %init_bal = alloca %Uint128, align 8 - %"$execptr_load_468" = load i8*, i8** @_execptr, align 8 - %"$init_bal_call_469" = call i8* @_fetch_field(i8* %"$execptr_load_468", i8* getelementptr inbounds ([9 x i8], [9 x i8]* @"$_balance_467", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Uint128_14", i32 0, i8* null, i32 1), !dbg !59 - %"$init_bal_470" = bitcast i8* %"$init_bal_call_469" to %Uint128* - %"$init_bal_471" = load %Uint128, %Uint128* %"$init_bal_470", align 8 - store %Uint128 %"$init_bal_471", %Uint128* %init_bal, align 8 - %"$_literal_cost_init_bal_472" = alloca %Uint128, align 8 - %"$init_bal_473" = load %Uint128, %Uint128* %init_bal, align 8 - store %Uint128 %"$init_bal_473", %Uint128* %"$_literal_cost_init_bal_472", align 8 - %"$$_literal_cost_init_bal_472_474" = bitcast %Uint128* %"$_literal_cost_init_bal_472" to i8* - %"$_literal_cost_call_475" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Uint128_14", i8* %"$$_literal_cost_init_bal_472_474") - %"$gasadd_476" = add i64 %"$_literal_cost_call_475", 0 - %"$gasrem_477" = load i64, i64* @_gasrem, align 8 - %"$gascmp_478" = icmp ugt i64 %"$gasadd_476", %"$gasrem_477" - br i1 %"$gascmp_478", label %"$out_of_gas_479", label %"$have_gas_480" - -"$out_of_gas_479": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_480" - -"$have_gas_480": ; preds = %"$out_of_gas_479", %entry - %"$consume_481" = sub i64 %"$gasrem_477", %"$gasadd_476" - store i64 %"$consume_481", i64* @_gasrem, align 8 - %"$gasrem_482" = load i64, i64* @_gasrem, align 8 - %"$gascmp_483" = icmp ugt i64 1, %"$gasrem_482" - br i1 %"$gascmp_483", label %"$out_of_gas_484", label %"$have_gas_485" - -"$out_of_gas_484": ; preds = %"$have_gas_480" + call void @llvm.dbg.declare(metadata %Uint128* %init_bal, metadata !130, metadata !DIExpression()), !dbg !131 + %"$execptr_load_495" = load i8*, i8** @_execptr, align 8 + %"$init_bal_call_496" = call i8* @_fetch_field(i8* %"$execptr_load_495", i8* getelementptr inbounds ([9 x i8], [9 x i8]* @"$_balance_494", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Uint128_14", i32 0, i8* null, i32 1), !dbg !131 + %"$init_bal_497" = bitcast i8* %"$init_bal_call_496" to %Uint128* + %"$init_bal_498" = load %Uint128, %Uint128* %"$init_bal_497", align 8 + store %Uint128 %"$init_bal_498", %Uint128* %init_bal, align 8 + %"$_literal_cost_init_bal_499" = alloca %Uint128, align 8 + %"$init_bal_500" = load %Uint128, %Uint128* %init_bal, align 8 + store %Uint128 %"$init_bal_500", %Uint128* %"$_literal_cost_init_bal_499", align 8 + %"$$_literal_cost_init_bal_499_501" = bitcast %Uint128* %"$_literal_cost_init_bal_499" to i8* + %"$_literal_cost_call_502" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Uint128_14", i8* %"$$_literal_cost_init_bal_499_501") + %"$gasadd_503" = add i64 %"$_literal_cost_call_502", 0 + %"$gasrem_504" = load i64, i64* @_gasrem, align 8 + %"$gascmp_505" = icmp ugt i64 %"$gasadd_503", %"$gasrem_504" + br i1 %"$gascmp_505", label %"$out_of_gas_506", label %"$have_gas_507" + +"$out_of_gas_506": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_485" - -"$have_gas_485": ; preds = %"$out_of_gas_484", %"$have_gas_480" - %"$consume_486" = sub i64 %"$gasrem_482", 1 - store i64 %"$consume_486", i64* @_gasrem, align 8 - %"$execptr_load_487" = load i8*, i8** @_execptr, align 8 - call void @_accept(i8* %"$execptr_load_487"), !dbg !60 - %"$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_485" - call void @_out_of_gas() - br label %"$have_gas_491" - -"$have_gas_491": ; preds = %"$out_of_gas_490", %"$have_gas_485" - %"$consume_492" = sub i64 %"$gasrem_488", 1 - store i64 %"$consume_492", i64* @_gasrem, align 8 - %expected_balance = alloca %Uint128, align 8 - %"$gasrem_494" = load i64, i64* @_gasrem, align 8 - %"$gascmp_495" = icmp ugt i64 8, %"$gasrem_494" - br i1 %"$gascmp_495", label %"$out_of_gas_496", label %"$have_gas_497" + br label %"$have_gas_507" -"$out_of_gas_496": ; preds = %"$have_gas_491" - call void @_out_of_gas() - br label %"$have_gas_497" - -"$have_gas_497": ; preds = %"$out_of_gas_496", %"$have_gas_491" - %"$consume_498" = sub i64 %"$gasrem_494", 8 - store i64 %"$consume_498", i64* @_gasrem, align 8 - %"$init_bal_499" = load %Uint128, %Uint128* %init_bal, align 8 - %"$add_call_500" = call %Uint128 @_add_Uint128(%Uint128 %"$init_bal_499", %Uint128 %_amount), !dbg !61 - store %Uint128 %"$add_call_500", %Uint128* %expected_balance, align 8, !dbg !61 - %"$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 = %"$have_gas_497" - call void @_out_of_gas() - br label %"$have_gas_504" - -"$have_gas_504": ; preds = %"$out_of_gas_503", %"$have_gas_497" - %"$consume_505" = sub i64 %"$gasrem_501", 1 - store i64 %"$consume_505", i64* @_gasrem, align 8 - %"$CheckBalance__origin_506" = alloca [20 x i8], align 1 - store [20 x i8] %_origin, [20 x i8]* %"$CheckBalance__origin_506", align 1 - %"$CheckBalance__sender_507" = alloca [20 x i8], align 1 - store [20 x i8] %_sender, [20 x i8]* %"$CheckBalance__sender_507", align 1 - %"$expected_balance_508" = load %Uint128, %Uint128* %expected_balance, align 8 - call void @"$CheckBalance_227"(%Uint128 %_amount, [20 x i8]* %"$CheckBalance__origin_506", [20 x i8]* %"$CheckBalance__sender_507", %Uint128 %"$expected_balance_508"), !dbg !62 +"$have_gas_507": ; preds = %"$out_of_gas_506", %entry + %"$consume_508" = sub i64 %"$gasrem_504", %"$gasadd_503" + store i64 %"$consume_508", i64* @_gasrem, align 8 %"$gasrem_509" = load i64, i64* @_gasrem, align 8 %"$gascmp_510" = icmp ugt i64 1, %"$gasrem_509" br i1 %"$gascmp_510", label %"$out_of_gas_511", label %"$have_gas_512" -"$out_of_gas_511": ; preds = %"$have_gas_504" +"$out_of_gas_511": ; preds = %"$have_gas_507" call void @_out_of_gas() br label %"$have_gas_512" -"$have_gas_512": ; preds = %"$out_of_gas_511", %"$have_gas_504" +"$have_gas_512": ; preds = %"$out_of_gas_511", %"$have_gas_507" %"$consume_513" = sub i64 %"$gasrem_509", 1 store i64 %"$consume_513", i64* @_gasrem, align 8 %"$execptr_load_514" = load i8*, i8** @_execptr, align 8 - call void @_accept(i8* %"$execptr_load_514"), !dbg !63 + call void @_accept(i8* %"$execptr_load_514"), !dbg !132 %"$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" @@ -1031,176 +1081,324 @@ entry: "$have_gas_518": ; preds = %"$out_of_gas_517", %"$have_gas_512" %"$consume_519" = sub i64 %"$gasrem_515", 1 store i64 %"$consume_519", i64* @_gasrem, align 8 - %"$CheckBalance__origin_520" = alloca [20 x i8], align 1 - store [20 x i8] %_origin, [20 x i8]* %"$CheckBalance__origin_520", align 1 - %"$CheckBalance__sender_521" = alloca [20 x i8], align 1 - store [20 x i8] %_sender, [20 x i8]* %"$CheckBalance__sender_521", align 1 - %"$expected_balance_522" = load %Uint128, %Uint128* %expected_balance, align 8 - call void @"$CheckBalance_227"(%Uint128 %_amount, [20 x i8]* %"$CheckBalance__origin_520", [20 x i8]* %"$CheckBalance__sender_521", %Uint128 %"$expected_balance_522"), !dbg !64 + %expected_balance = alloca %Uint128, align 8 + call void @llvm.dbg.declare(metadata %Uint128* %expected_balance, metadata !133, metadata !DIExpression()), !dbg !134 + %"$gasrem_521" = load i64, i64* @_gasrem, align 8 + %"$gascmp_522" = icmp ugt i64 8, %"$gasrem_521" + br i1 %"$gascmp_522", label %"$out_of_gas_523", label %"$have_gas_524" + +"$out_of_gas_523": ; preds = %"$have_gas_518" + call void @_out_of_gas() + br label %"$have_gas_524" + +"$have_gas_524": ; preds = %"$out_of_gas_523", %"$have_gas_518" + %"$consume_525" = sub i64 %"$gasrem_521", 8 + store i64 %"$consume_525", i64* @_gasrem, align 8 + %"$init_bal_526" = load %Uint128, %Uint128* %init_bal, align 8 + %"$add_call_527" = call %Uint128 @_add_Uint128(%Uint128 %"$init_bal_526", %Uint128 %_amount), !dbg !135 + store %Uint128 %"$add_call_527", %Uint128* %expected_balance, align 8, !dbg !135 + %"$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_530": ; preds = %"$have_gas_524" + call void @_out_of_gas() + br label %"$have_gas_531" + +"$have_gas_531": ; preds = %"$out_of_gas_530", %"$have_gas_524" + %"$consume_532" = sub i64 %"$gasrem_528", 1 + store i64 %"$consume_532", i64* @_gasrem, align 8 + %"$CheckBalance__origin_533" = alloca [20 x i8], align 1 + store [20 x i8] %_origin, [20 x i8]* %"$CheckBalance__origin_533", align 1 + %"$CheckBalance__sender_534" = alloca [20 x i8], align 1 + store [20 x i8] %_sender, [20 x i8]* %"$CheckBalance__sender_534", align 1 + %"$expected_balance_535" = load %Uint128, %Uint128* %expected_balance, align 8 + call void @"$CheckBalance_243"(%Uint128 %_amount, [20 x i8]* %"$CheckBalance__origin_533", [20 x i8]* %"$CheckBalance__sender_534", %Uint128 %"$expected_balance_535"), !dbg !136 + %"$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_538": ; preds = %"$have_gas_531" + call void @_out_of_gas() + br label %"$have_gas_539" + +"$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 + %"$execptr_load_541" = load i8*, i8** @_execptr, align 8 + call void @_accept(i8* %"$execptr_load_541"), !dbg !137 + %"$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_544": ; preds = %"$have_gas_539" + call void @_out_of_gas() + br label %"$have_gas_545" + +"$have_gas_545": ; preds = %"$out_of_gas_544", %"$have_gas_539" + %"$consume_546" = sub i64 %"$gasrem_542", 1 + store i64 %"$consume_546", i64* @_gasrem, align 8 + %"$CheckBalance__origin_547" = alloca [20 x i8], align 1 + store [20 x i8] %_origin, [20 x i8]* %"$CheckBalance__origin_547", align 1 + %"$CheckBalance__sender_548" = alloca [20 x i8], align 1 + store [20 x i8] %_sender, [20 x i8]* %"$CheckBalance__sender_548", align 1 + %"$expected_balance_549" = load %Uint128, %Uint128* %expected_balance, align 8 + call void @"$CheckBalance_243"(%Uint128 %_amount, [20 x i8]* %"$CheckBalance__origin_547", [20 x i8]* %"$CheckBalance__sender_548", %Uint128 %"$expected_balance_549"), !dbg !138 ret void } -define void @AcceptTwiceAndCheckBalance(i8* %0) !dbg !65 { +define void @AcceptTwiceAndCheckBalance(i8* %0) !dbg !139 { entry: - %"$_amount_524" = getelementptr i8, i8* %0, i32 0 - %"$_amount_525" = bitcast i8* %"$_amount_524" to %Uint128* - %_amount = load %Uint128, %Uint128* %"$_amount_525", align 8 - %"$_origin_526" = getelementptr i8, i8* %0, i32 16 - %"$_origin_527" = bitcast i8* %"$_origin_526" to [20 x i8]* - %"$_sender_528" = getelementptr i8, i8* %0, i32 36 - %"$_sender_529" = bitcast i8* %"$_sender_528" to [20 x i8]* - call void @"$AcceptTwiceAndCheckBalance_464"(%Uint128 %_amount, [20 x i8]* %"$_origin_527", [20 x i8]* %"$_sender_529"), !dbg !66 + %"$_amount_554" = getelementptr i8, i8* %0, i32 0 + %"$_amount_555" = bitcast i8* %"$_amount_554" to %Uint128* + %_amount = load %Uint128, %Uint128* %"$_amount_555", align 8 + %"$_origin_556" = getelementptr i8, i8* %0, i32 16 + %"$_origin_557" = bitcast i8* %"$_origin_556" to [20 x i8]* + %"$_sender_558" = getelementptr i8, i8* %0, i32 36 + %"$_sender_559" = bitcast i8* %"$_sender_558" to [20 x i8]* + call void @"$AcceptTwiceAndCheckBalance_491"(%Uint128 %_amount, [20 x i8]* %"$_origin_557", [20 x i8]* %"$_sender_559"), !dbg !140 ret void } -define internal void @"$AcceptAndCheckSenderBalance_530"(%Uint128 %_amount, [20 x i8]* %"$_origin_531", [20 x i8]* %"$_sender_532") !dbg !67 { +define internal void @"$AcceptAndCheckSenderBalance_560"(%Uint128 %_amount, [20 x i8]* %"$_origin_561", [20 x i8]* %"$_sender_562") !dbg !141 { entry: - %_origin = load [20 x i8], [20 x i8]* %"$_origin_531", align 1 - %_sender = load [20 x i8], [20 x i8]* %"$_sender_532", align 1 + %"$_sender_595" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_sender_562", [20 x i8]** %"$_sender_595", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_sender_595", metadata !142, metadata !DIExpression()), !dbg !143 + %"$_origin_594" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_origin_561", [20 x i8]** %"$_origin_594", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_origin_594", metadata !144, metadata !DIExpression()), !dbg !143 + %"$_amount_593" = alloca %Uint128, align 8 + store %Uint128 %_amount, %Uint128* %"$_amount_593", align 8 + call void @llvm.dbg.declare(metadata %Uint128* %"$_amount_593", metadata !145, metadata !DIExpression()), !dbg !143 + %_origin = load [20 x i8], [20 x i8]* %"$_origin_561", align 1 + %_sender = load [20 x i8], [20 x i8]* %"$_sender_562", align 1 %init_bal = alloca %Uint128, align 8 - %"$execptr_load_534" = load i8*, i8** @_execptr, align 8 - %"$init_bal__sender_535" = alloca [20 x i8], align 1 - store [20 x i8] %_sender, [20 x i8]* %"$init_bal__sender_535", align 1 - %"$init_bal_call_536" = call i8* @_fetch_remote_field(i8* %"$execptr_load_534", [20 x i8]* %"$init_bal__sender_535", i8* getelementptr inbounds ([9 x i8], [9 x i8]* @"$_balance_533", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Uint128_14", i32 0, i8* null, i32 1), !dbg !68 - %"$init_bal_537" = bitcast i8* %"$init_bal_call_536" to %Uint128* - %"$init_bal_538" = load %Uint128, %Uint128* %"$init_bal_537", align 8 - store %Uint128 %"$init_bal_538", %Uint128* %init_bal, align 8 - %"$_literal_cost_init_bal_539" = alloca %Uint128, align 8 - %"$init_bal_540" = load %Uint128, %Uint128* %init_bal, align 8 - store %Uint128 %"$init_bal_540", %Uint128* %"$_literal_cost_init_bal_539", align 8 - %"$$_literal_cost_init_bal_539_541" = bitcast %Uint128* %"$_literal_cost_init_bal_539" to i8* - %"$_literal_cost_call_542" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Uint128_14", i8* %"$$_literal_cost_init_bal_539_541") - %"$gasadd_543" = add i64 %"$_literal_cost_call_542", 0 - %"$gasrem_544" = load i64, i64* @_gasrem, align 8 - %"$gascmp_545" = icmp ugt i64 %"$gasadd_543", %"$gasrem_544" - br i1 %"$gascmp_545", label %"$out_of_gas_546", label %"$have_gas_547" - -"$out_of_gas_546": ; preds = %entry + call void @llvm.dbg.declare(metadata %Uint128* %init_bal, metadata !146, metadata !DIExpression()), !dbg !147 + %"$execptr_load_564" = load i8*, i8** @_execptr, align 8 + %"$init_bal__sender_565" = alloca [20 x i8], align 1 + store [20 x i8] %_sender, [20 x i8]* %"$init_bal__sender_565", align 1 + %"$init_bal_call_566" = call i8* @_fetch_remote_field(i8* %"$execptr_load_564", [20 x i8]* %"$init_bal__sender_565", i8* getelementptr inbounds ([9 x i8], [9 x i8]* @"$_balance_563", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Uint128_14", i32 0, i8* null, i32 1), !dbg !147 + %"$init_bal_567" = bitcast i8* %"$init_bal_call_566" to %Uint128* + %"$init_bal_568" = load %Uint128, %Uint128* %"$init_bal_567", align 8 + store %Uint128 %"$init_bal_568", %Uint128* %init_bal, align 8 + %"$_literal_cost_init_bal_569" = alloca %Uint128, align 8 + %"$init_bal_570" = load %Uint128, %Uint128* %init_bal, align 8 + store %Uint128 %"$init_bal_570", %Uint128* %"$_literal_cost_init_bal_569", align 8 + %"$$_literal_cost_init_bal_569_571" = bitcast %Uint128* %"$_literal_cost_init_bal_569" to i8* + %"$_literal_cost_call_572" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Uint128_14", i8* %"$$_literal_cost_init_bal_569_571") + %"$gasadd_573" = add i64 %"$_literal_cost_call_572", 0 + %"$gasrem_574" = load i64, i64* @_gasrem, align 8 + %"$gascmp_575" = icmp ugt i64 %"$gasadd_573", %"$gasrem_574" + br i1 %"$gascmp_575", label %"$out_of_gas_576", label %"$have_gas_577" + +"$out_of_gas_576": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_547" + br label %"$have_gas_577" -"$have_gas_547": ; preds = %"$out_of_gas_546", %entry - %"$consume_548" = sub i64 %"$gasrem_544", %"$gasadd_543" - store i64 %"$consume_548", i64* @_gasrem, 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" +"$have_gas_577": ; preds = %"$out_of_gas_576", %entry + %"$consume_578" = sub i64 %"$gasrem_574", %"$gasadd_573" + store i64 %"$consume_578", i64* @_gasrem, 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" -"$out_of_gas_551": ; preds = %"$have_gas_547" +"$out_of_gas_581": ; preds = %"$have_gas_577" call void @_out_of_gas() - br label %"$have_gas_552" - -"$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 - %"$execptr_load_554" = load i8*, i8** @_execptr, align 8 - call void @_accept(i8* %"$execptr_load_554"), !dbg !69 - %"$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" - -"$out_of_gas_557": ; preds = %"$have_gas_552" + br label %"$have_gas_582" + +"$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 + %"$execptr_load_584" = load i8*, i8** @_execptr, align 8 + call void @_accept(i8* %"$execptr_load_584"), !dbg !148 + %"$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 = %"$have_gas_582" call void @_out_of_gas() - br label %"$have_gas_558" - -"$have_gas_558": ; preds = %"$out_of_gas_557", %"$have_gas_552" - %"$consume_559" = sub i64 %"$gasrem_555", 1 - store i64 %"$consume_559", i64* @_gasrem, align 8 - %"$CheckSenderBalance__origin_560" = alloca [20 x i8], align 1 - store [20 x i8] %_origin, [20 x i8]* %"$CheckSenderBalance__origin_560", align 1 - %"$CheckSenderBalance__sender_561" = alloca [20 x i8], align 1 - store [20 x i8] %_sender, [20 x i8]* %"$CheckSenderBalance__sender_561", align 1 - %"$init_bal_562" = load %Uint128, %Uint128* %init_bal, align 8 - call void @"$CheckSenderBalance_319"(%Uint128 %_amount, [20 x i8]* %"$CheckSenderBalance__origin_560", [20 x i8]* %"$CheckSenderBalance__sender_561", %Uint128 %"$init_bal_562"), !dbg !70 + br label %"$have_gas_588" + +"$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 + %"$CheckSenderBalance__origin_590" = alloca [20 x i8], align 1 + store [20 x i8] %_origin, [20 x i8]* %"$CheckSenderBalance__origin_590", align 1 + %"$CheckSenderBalance__sender_591" = alloca [20 x i8], align 1 + store [20 x i8] %_sender, [20 x i8]* %"$CheckSenderBalance__sender_591", align 1 + %"$init_bal_592" = load %Uint128, %Uint128* %init_bal, align 8 + call void @"$CheckSenderBalance_339"(%Uint128 %_amount, [20 x i8]* %"$CheckSenderBalance__origin_590", [20 x i8]* %"$CheckSenderBalance__sender_591", %Uint128 %"$init_bal_592"), !dbg !149 ret void } -define void @AcceptAndCheckSenderBalance(i8* %0) !dbg !71 { +define void @AcceptAndCheckSenderBalance(i8* %0) !dbg !150 { entry: - %"$_amount_564" = getelementptr i8, i8* %0, i32 0 - %"$_amount_565" = bitcast i8* %"$_amount_564" to %Uint128* - %_amount = load %Uint128, %Uint128* %"$_amount_565", align 8 - %"$_origin_566" = getelementptr i8, i8* %0, i32 16 - %"$_origin_567" = bitcast i8* %"$_origin_566" to [20 x i8]* - %"$_sender_568" = getelementptr i8, i8* %0, i32 36 - %"$_sender_569" = bitcast i8* %"$_sender_568" to [20 x i8]* - call void @"$AcceptAndCheckSenderBalance_530"(%Uint128 %_amount, [20 x i8]* %"$_origin_567", [20 x i8]* %"$_sender_569"), !dbg !72 + %"$_amount_597" = getelementptr i8, i8* %0, i32 0 + %"$_amount_598" = bitcast i8* %"$_amount_597" to %Uint128* + %_amount = load %Uint128, %Uint128* %"$_amount_598", align 8 + %"$_origin_599" = getelementptr i8, i8* %0, i32 16 + %"$_origin_600" = bitcast i8* %"$_origin_599" to [20 x i8]* + %"$_sender_601" = getelementptr i8, i8* %0, i32 36 + %"$_sender_602" = bitcast i8* %"$_sender_601" to [20 x i8]* + call void @"$AcceptAndCheckSenderBalance_560"(%Uint128 %_amount, [20 x i8]* %"$_origin_600", [20 x i8]* %"$_sender_602"), !dbg !151 ret void } +attributes #0 = { nocallback nofree nosync nounwind readnone speculatable willreturn } + !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) +!1 = distinct !DICompileUnit(language: DW_LANG_C89, file: !2, producer: "Scilla Compiler", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false) !2 = !DIFile(filename: "accounting_tests_support.scilla", directory: "codegen/contr") -!3 = !{} -!4 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !5, file: !5, type: !6, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!5 = !DIFile(filename: ".", directory: ".") -!6 = !DISubroutineType(types: !7) -!7 = !{!8} -!8 = !DIBasicType(tag: DW_TAG_unspecified_type, name: "void") -!9 = !DILocation(line: 0, scope: !4) -!10 = distinct !DISubprogram(name: "_deploy_ops", linkageName: "_deploy_ops", scope: !5, file: !5, type: !6, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!11 = !DILocation(line: 5, column: 38, scope: !10) -!12 = distinct !DISubprogram(name: "Reset", linkageName: "Reset", scope: !2, file: !2, line: 7, type: !6, scopeLine: 7, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!13 = !DILocation(line: 8, column: 17, scope: !12) -!14 = !DILocation(line: 9, column: 3, scope: !12) -!15 = distinct !DISubprogram(name: "Reset", linkageName: "Reset", scope: !2, file: !2, line: 7, type: !6, scopeLine: 7, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!16 = !DILocation(line: 7, column: 12, scope: !15) -!17 = distinct !DISubprogram(name: "StoreString", linkageName: "StoreString", scope: !2, file: !2, line: 12, type: !6, scopeLine: 12, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!18 = !DILocation(line: 13, column: 3, scope: !17) -!19 = !DILocation(line: 14, column: 17, scope: !17) -!20 = !DILocation(line: 15, column: 3, scope: !17) -!21 = distinct !DISubprogram(name: "StoreString", linkageName: "StoreString", scope: !2, file: !2, line: 12, type: !6, scopeLine: 12, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!22 = !DILocation(line: 12, column: 12, scope: !21) -!23 = distinct !DISubprogram(name: "Accept", linkageName: "Accept", scope: !2, file: !2, line: 18, type: !6, scopeLine: 18, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!24 = !DILocation(line: 19, column: 3, scope: !23) -!25 = distinct !DISubprogram(name: "Accept", linkageName: "Accept", scope: !2, file: !2, line: 18, type: !6, scopeLine: 18, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!26 = !DILocation(line: 18, column: 12, scope: !25) -!27 = distinct !DISubprogram(name: "AcceptTwice", linkageName: "AcceptTwice", scope: !2, file: !2, line: 22, type: !6, scopeLine: 22, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!28 = !DILocation(line: 23, column: 3, scope: !27) -!29 = !DILocation(line: 24, column: 3, scope: !27) -!30 = distinct !DISubprogram(name: "AcceptTwice", linkageName: "AcceptTwice", scope: !2, file: !2, line: 22, type: !6, scopeLine: 22, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!31 = !DILocation(line: 22, column: 12, scope: !30) -!32 = distinct !DISubprogram(name: "NonAccept", linkageName: "NonAccept", scope: !2, file: !2, line: 27, type: !6, scopeLine: 27, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!33 = distinct !DISubprogram(name: "NonAccept", linkageName: "NonAccept", scope: !2, file: !2, line: 27, type: !6, scopeLine: 27, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!34 = !DILocation(line: 27, column: 12, scope: !33) -!35 = distinct !DISubprogram(name: "CheckBalance", linkageName: "CheckBalance", scope: !2, file: !2, line: 30, type: !6, scopeLine: 30, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!36 = !DILocation(line: 31, column: 3, scope: !35) -!37 = !DILocation(line: 32, column: 17, scope: !35) -!38 = !DILocation(line: 33, column: 3, scope: !35) -!39 = !DILocation(line: 36, column: 9, scope: !40) -!40 = distinct !DILexicalBlock(scope: !41, file: !2, line: 35, column: 5) -!41 = distinct !DILexicalBlock(scope: !35, file: !2, line: 33, column: 3) -!42 = !DILocation(line: 39, column: 5, scope: !40) -!43 = distinct !DISubprogram(name: "CheckSenderBalance", linkageName: "CheckSenderBalance", scope: !2, file: !2, line: 43, type: !6, scopeLine: 43, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!44 = !DILocation(line: 44, column: 3, scope: !43) -!45 = !DILocation(line: 45, column: 17, scope: !43) -!46 = !DILocation(line: 46, column: 3, scope: !43) -!47 = !DILocation(line: 49, column: 9, scope: !48) -!48 = distinct !DILexicalBlock(scope: !49, file: !2, line: 48, column: 5) -!49 = distinct !DILexicalBlock(scope: !43, file: !2, line: 46, column: 3) -!50 = !DILocation(line: 52, column: 5, scope: !48) -!51 = distinct !DISubprogram(name: "AcceptAndCheckBalance", linkageName: "AcceptAndCheckBalance", scope: !2, file: !2, line: 56, type: !6, scopeLine: 56, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!52 = !DILocation(line: 57, column: 3, scope: !51) -!53 = !DILocation(line: 58, column: 3, scope: !51) -!54 = !DILocation(line: 59, column: 22, scope: !51) -!55 = !DILocation(line: 60, column: 3, scope: !51) -!56 = distinct !DISubprogram(name: "AcceptAndCheckBalance", linkageName: "AcceptAndCheckBalance", scope: !2, file: !2, line: 56, type: !6, scopeLine: 56, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!57 = !DILocation(line: 56, column: 12, scope: !56) -!58 = distinct !DISubprogram(name: "AcceptTwiceAndCheckBalance", linkageName: "AcceptTwiceAndCheckBalance", scope: !2, file: !2, line: 63, type: !6, scopeLine: 63, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!59 = !DILocation(line: 64, column: 3, scope: !58) -!60 = !DILocation(line: 65, column: 3, scope: !58) -!61 = !DILocation(line: 66, column: 22, scope: !58) -!62 = !DILocation(line: 67, column: 3, scope: !58) -!63 = !DILocation(line: 68, column: 3, scope: !58) -!64 = !DILocation(line: 69, column: 3, scope: !58) -!65 = distinct !DISubprogram(name: "AcceptTwiceAndCheckBalance", linkageName: "AcceptTwiceAndCheckBalance", scope: !2, file: !2, line: 63, type: !6, scopeLine: 63, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!66 = !DILocation(line: 63, column: 12, scope: !65) -!67 = distinct !DISubprogram(name: "AcceptAndCheckSenderBalance", linkageName: "AcceptAndCheckSenderBalance", scope: !2, file: !2, line: 72, type: !6, scopeLine: 72, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!68 = !DILocation(line: 73, column: 3, scope: !67) -!69 = !DILocation(line: 74, column: 3, scope: !67) -!70 = !DILocation(line: 75, column: 3, scope: !67) -!71 = distinct !DISubprogram(name: "AcceptAndCheckSenderBalance", linkageName: "AcceptAndCheckSenderBalance", scope: !2, file: !2, line: 72, type: !6, scopeLine: 72, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!72 = !DILocation(line: 72, column: 12, scope: !71) +!3 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !4, file: !4, type: !5, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!4 = !DIFile(filename: ".", directory: ".") +!5 = !DISubroutineType(types: !6) +!6 = !{!7} +!7 = !DIBasicType(tag: DW_TAG_unspecified_type, name: "void") +!8 = !{} +!9 = !DILocation(line: 0, scope: !3) +!10 = distinct !DISubprogram(name: "_deploy_ops", linkageName: "_deploy_ops", scope: !4, file: !4, type: !5, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!11 = !DILocalVariable(name: "$stored_strings_1", scope: !10, file: !2, line: 5, type: !12) +!12 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "List (String)", baseType: !13, size: 8, align: 8, dwarfAddressSpace: 0) +!13 = !DIBasicType(name: "List (String)", size: 8) +!14 = !DILocation(line: 5, column: 7, scope: !10) +!15 = !DILocation(line: 5, column: 38, scope: !10) +!16 = distinct !DISubprogram(name: "Reset", linkageName: "Reset", scope: !2, file: !2, line: 7, type: !5, scopeLine: 7, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!17 = !DILocalVariable(name: "_sender", scope: !16, file: !2, line: 7, type: !18) +!18 = !DIBasicType(name: "ByStr20 with end", size: 20) +!19 = !DILocation(line: 7, column: 12, scope: !16) +!20 = !DILocalVariable(name: "_origin", scope: !16, file: !2, line: 7, type: !18) +!21 = !DILocalVariable(name: "_amount", scope: !16, file: !2, line: 7, type: !22) +!22 = !DIBasicType(name: "Uint128", size: 16) +!23 = !DILocalVariable(name: "new_strings", scope: !16, file: !2, line: 8, type: !12) +!24 = !DILocation(line: 8, column: 3, scope: !16) +!25 = !DILocation(line: 8, column: 17, scope: !16) +!26 = !DILocation(line: 9, column: 3, scope: !16) +!27 = distinct !DISubprogram(name: "Reset", linkageName: "Reset", scope: !2, file: !2, line: 7, type: !5, scopeLine: 7, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!28 = !DILocation(line: 7, column: 12, scope: !27) +!29 = distinct !DISubprogram(name: "StoreString", linkageName: "StoreString", scope: !2, file: !2, line: 12, type: !5, scopeLine: 12, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!30 = !DILocalVariable(name: "s", scope: !29, file: !2, line: 12, type: !31) +!31 = !DIBasicType(name: "String", size: 16) +!32 = !DILocation(line: 12, column: 25, scope: !29) +!33 = !DILocalVariable(name: "_sender", scope: !29, file: !2, line: 12, type: !18) +!34 = !DILocation(line: 12, column: 12, scope: !29) +!35 = !DILocalVariable(name: "_origin", scope: !29, file: !2, line: 12, type: !18) +!36 = !DILocalVariable(name: "_amount", scope: !29, file: !2, line: 12, type: !22) +!37 = !DILocalVariable(name: "old_strings", scope: !29, file: !2, line: 13, type: !12) +!38 = !DILocation(line: 13, column: 3, scope: !29) +!39 = !DILocalVariable(name: "new_strings", scope: !29, file: !2, line: 14, type: !12) +!40 = !DILocation(line: 14, column: 3, scope: !29) +!41 = !DILocation(line: 14, column: 17, scope: !29) +!42 = !DILocation(line: 15, column: 3, scope: !29) +!43 = distinct !DISubprogram(name: "StoreString", linkageName: "StoreString", scope: !2, file: !2, line: 12, type: !5, scopeLine: 12, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!44 = !DILocation(line: 12, column: 12, scope: !43) +!45 = distinct !DISubprogram(name: "Accept", linkageName: "Accept", scope: !2, file: !2, line: 18, type: !5, scopeLine: 18, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!46 = !DILocalVariable(name: "_sender", scope: !45, file: !2, line: 18, type: !18) +!47 = !DILocation(line: 18, column: 12, scope: !45) +!48 = !DILocalVariable(name: "_origin", scope: !45, file: !2, line: 18, type: !18) +!49 = !DILocalVariable(name: "_amount", scope: !45, file: !2, line: 18, type: !22) +!50 = !DILocation(line: 19, column: 3, scope: !45) +!51 = distinct !DISubprogram(name: "Accept", linkageName: "Accept", scope: !2, file: !2, line: 18, type: !5, scopeLine: 18, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!52 = !DILocation(line: 18, column: 12, scope: !51) +!53 = distinct !DISubprogram(name: "AcceptTwice", linkageName: "AcceptTwice", scope: !2, file: !2, line: 22, type: !5, scopeLine: 22, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!54 = !DILocalVariable(name: "_sender", scope: !53, file: !2, line: 22, type: !18) +!55 = !DILocation(line: 22, column: 12, scope: !53) +!56 = !DILocalVariable(name: "_origin", scope: !53, file: !2, line: 22, type: !18) +!57 = !DILocalVariable(name: "_amount", scope: !53, file: !2, line: 22, type: !22) +!58 = !DILocation(line: 23, column: 3, scope: !53) +!59 = !DILocation(line: 24, column: 3, scope: !53) +!60 = distinct !DISubprogram(name: "AcceptTwice", linkageName: "AcceptTwice", scope: !2, file: !2, line: 22, type: !5, scopeLine: 22, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!61 = !DILocation(line: 22, column: 12, scope: !60) +!62 = distinct !DISubprogram(name: "NonAccept", linkageName: "NonAccept", scope: !2, file: !2, line: 27, type: !5, scopeLine: 27, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!63 = !DILocalVariable(name: "_sender", scope: !62, file: !2, line: 27, type: !18) +!64 = !DILocation(line: 27, column: 12, scope: !62) +!65 = !DILocalVariable(name: "_origin", scope: !62, file: !2, line: 27, type: !18) +!66 = !DILocalVariable(name: "_amount", scope: !62, file: !2, line: 27, type: !22) +!67 = distinct !DISubprogram(name: "NonAccept", linkageName: "NonAccept", scope: !2, file: !2, line: 27, type: !5, scopeLine: 27, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!68 = !DILocation(line: 27, column: 12, scope: !67) +!69 = distinct !DISubprogram(name: "CheckBalance", linkageName: "CheckBalance", scope: !2, file: !2, line: 30, type: !5, scopeLine: 30, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!70 = !DILocalVariable(name: "expected_balance", scope: !69, file: !2, line: 30, type: !22) +!71 = !DILocation(line: 30, column: 24, scope: !69) +!72 = !DILocalVariable(name: "_sender", scope: !69, file: !2, line: 30, type: !18) +!73 = !DILocation(line: 30, column: 11, scope: !69) +!74 = !DILocalVariable(name: "_origin", scope: !69, file: !2, line: 30, type: !18) +!75 = !DILocalVariable(name: "_amount", scope: !69, file: !2, line: 30, type: !22) +!76 = !DILocalVariable(name: "cur_balance", scope: !69, file: !2, line: 31, type: !22) +!77 = !DILocation(line: 31, column: 3, scope: !69) +!78 = !DILocalVariable(name: "is_expected", scope: !69, file: !2, line: 32, type: !79) +!79 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "Bool", baseType: !80, size: 8, align: 8, dwarfAddressSpace: 0) +!80 = !DIBasicType(name: "Bool", size: 8) +!81 = !DILocation(line: 32, column: 3, scope: !69) +!82 = !DILocation(line: 32, column: 17, scope: !69) +!83 = !DILocation(line: 33, column: 3, scope: !69) +!84 = !DILocalVariable(name: "e", scope: !85, file: !2, line: 36, type: !87) +!85 = distinct !DILexicalBlock(scope: !86, file: !2, line: 35, column: 5) +!86 = distinct !DILexicalBlock(scope: !69, file: !2, line: 33, column: 3) +!87 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "Exception", baseType: !88, size: 8, align: 8, dwarfAddressSpace: 0) +!88 = !DIBasicType(name: "Exception", size: 8) +!89 = !DILocation(line: 36, column: 5, scope: !85) +!90 = !DILocation(line: 36, column: 9, scope: !85) +!91 = !DILocation(line: 39, column: 5, scope: !85) +!92 = distinct !DISubprogram(name: "CheckSenderBalance", linkageName: "CheckSenderBalance", scope: !2, file: !2, line: 43, type: !5, scopeLine: 43, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!93 = !DILocalVariable(name: "expected_balance", scope: !92, file: !2, line: 43, type: !22) +!94 = !DILocation(line: 43, column: 30, scope: !92) +!95 = !DILocalVariable(name: "_sender", scope: !92, file: !2, line: 43, type: !18) +!96 = !DILocation(line: 43, column: 11, scope: !92) +!97 = !DILocalVariable(name: "_origin", scope: !92, file: !2, line: 43, type: !18) +!98 = !DILocalVariable(name: "_amount", scope: !92, file: !2, line: 43, type: !22) +!99 = !DILocalVariable(name: "cur_balance", scope: !92, file: !2, line: 44, type: !22) +!100 = !DILocation(line: 44, column: 3, scope: !92) +!101 = !DILocalVariable(name: "is_expected", scope: !92, file: !2, line: 45, type: !79) +!102 = !DILocation(line: 45, column: 3, scope: !92) +!103 = !DILocation(line: 45, column: 17, scope: !92) +!104 = !DILocation(line: 46, column: 3, scope: !92) +!105 = !DILocalVariable(name: "e", scope: !106, file: !2, line: 49, type: !87) +!106 = distinct !DILexicalBlock(scope: !107, file: !2, line: 48, column: 5) +!107 = distinct !DILexicalBlock(scope: !92, file: !2, line: 46, column: 3) +!108 = !DILocation(line: 49, column: 5, scope: !106) +!109 = !DILocation(line: 49, column: 9, scope: !106) +!110 = !DILocation(line: 52, column: 5, scope: !106) +!111 = distinct !DISubprogram(name: "AcceptAndCheckBalance", linkageName: "AcceptAndCheckBalance", scope: !2, file: !2, line: 56, type: !5, scopeLine: 56, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!112 = !DILocalVariable(name: "_sender", scope: !111, file: !2, line: 56, type: !18) +!113 = !DILocation(line: 56, column: 12, scope: !111) +!114 = !DILocalVariable(name: "_origin", scope: !111, file: !2, line: 56, type: !18) +!115 = !DILocalVariable(name: "_amount", scope: !111, file: !2, line: 56, type: !22) +!116 = !DILocalVariable(name: "init_bal", scope: !111, file: !2, line: 57, type: !22) +!117 = !DILocation(line: 57, column: 3, scope: !111) +!118 = !DILocation(line: 58, column: 3, scope: !111) +!119 = !DILocalVariable(name: "expected_balance", scope: !111, file: !2, line: 59, type: !22) +!120 = !DILocation(line: 59, column: 3, scope: !111) +!121 = !DILocation(line: 59, column: 22, scope: !111) +!122 = !DILocation(line: 60, column: 3, scope: !111) +!123 = distinct !DISubprogram(name: "AcceptAndCheckBalance", linkageName: "AcceptAndCheckBalance", scope: !2, file: !2, line: 56, type: !5, scopeLine: 56, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!124 = !DILocation(line: 56, column: 12, scope: !123) +!125 = distinct !DISubprogram(name: "AcceptTwiceAndCheckBalance", linkageName: "AcceptTwiceAndCheckBalance", scope: !2, file: !2, line: 63, type: !5, scopeLine: 63, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!126 = !DILocalVariable(name: "_sender", scope: !125, file: !2, line: 63, type: !18) +!127 = !DILocation(line: 63, column: 12, scope: !125) +!128 = !DILocalVariable(name: "_origin", scope: !125, file: !2, line: 63, type: !18) +!129 = !DILocalVariable(name: "_amount", scope: !125, file: !2, line: 63, type: !22) +!130 = !DILocalVariable(name: "init_bal", scope: !125, file: !2, line: 64, type: !22) +!131 = !DILocation(line: 64, column: 3, scope: !125) +!132 = !DILocation(line: 65, column: 3, scope: !125) +!133 = !DILocalVariable(name: "expected_balance", scope: !125, file: !2, line: 66, type: !22) +!134 = !DILocation(line: 66, column: 3, scope: !125) +!135 = !DILocation(line: 66, column: 22, scope: !125) +!136 = !DILocation(line: 67, column: 3, scope: !125) +!137 = !DILocation(line: 68, column: 3, scope: !125) +!138 = !DILocation(line: 69, column: 3, scope: !125) +!139 = distinct !DISubprogram(name: "AcceptTwiceAndCheckBalance", linkageName: "AcceptTwiceAndCheckBalance", scope: !2, file: !2, line: 63, type: !5, scopeLine: 63, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!140 = !DILocation(line: 63, column: 12, scope: !139) +!141 = distinct !DISubprogram(name: "AcceptAndCheckSenderBalance", linkageName: "AcceptAndCheckSenderBalance", scope: !2, file: !2, line: 72, type: !5, scopeLine: 72, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!142 = !DILocalVariable(name: "_sender", scope: !141, file: !2, line: 72, type: !18) +!143 = !DILocation(line: 72, column: 12, scope: !141) +!144 = !DILocalVariable(name: "_origin", scope: !141, file: !2, line: 72, type: !18) +!145 = !DILocalVariable(name: "_amount", scope: !141, file: !2, line: 72, type: !22) +!146 = !DILocalVariable(name: "init_bal", scope: !141, file: !2, line: 73, type: !22) +!147 = !DILocation(line: 73, column: 3, scope: !141) +!148 = !DILocation(line: 74, column: 3, scope: !141) +!149 = !DILocation(line: 75, column: 3, scope: !141) +!150 = distinct !DISubprogram(name: "AcceptAndCheckSenderBalance", linkageName: "AcceptAndCheckSenderBalance", scope: !2, file: !2, line: 72, type: !5, scopeLine: 72, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!151 = !DILocation(line: 72, column: 12, scope: !150) diff --git a/testsuite/contr/accounting_tests_support.ll b/testsuite/contr/accounting_tests_support.ll index 06279541..3f06fd05 100644 --- a/testsuite/contr/accounting_tests_support.ll +++ b/testsuite/contr/accounting_tests_support.ll @@ -4,7 +4,7 @@ ; 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-pc-linux-gnu" +target triple = "x86_64-unknown-linux-gnu" %"$TyDescrTy_PrimTyp_2" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/testsuite/contr/cconstraint.dbg.ll b/testsuite/contr/cconstraint.dbg.ll index c2e0b833..1904d055 100644 --- a/testsuite/contr/cconstraint.dbg.ll +++ b/testsuite/contr/cconstraint.dbg.ll @@ -4,7 +4,7 @@ ; ModuleID = 'TestConstraint' source_filename = "TestConstraint" target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-pc-linux-gnu" +target triple = "x86_64-unknown-linux-gnu" %"$TyDescrTy_PrimTyp_3" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } @@ -13,9 +13,9 @@ target triple = "x86_64-pc-linux-gnu" %TyDescrString = type { i8*, i32 } %Int32 = type { i32 } %Uint32 = type { i32 } -%"$ParamDescr_95" = type { %ParamDescrString, %_TyDescrTy_Typ* } +%"$ParamDescr_98" = type { %ParamDescrString, %_TyDescrTy_Typ* } %ParamDescrString = type { i8*, i32 } -%"$TransDescr_96" = type { %ParamDescrString, i32, %"$ParamDescr_95"* } +%"$TransDescr_99" = type { %ParamDescrString, i32, %"$ParamDescr_98"* } %TName_Bool = type { i8, %CName_True*, %CName_False* } %CName_True = type <{ i8 }> %CName_False = type <{ i8 }> @@ -68,21 +68,21 @@ target triple = "x86_64-pc-linux-gnu" @"$stringlit_77" = unnamed_addr constant [38 x i8] c"Contract constraint evaluated to False" @_tydescr_table = constant [17 x %_TyDescrTy_Typ*] [%_TyDescrTy_Typ* @"$TyDescr_Event_27", %_TyDescrTy_Typ* @"$TyDescr_Int64_9", %_TyDescrTy_Typ* @"$TyDescr_Addr_42", %_TyDescrTy_Typ* @"$TyDescr_Bystr20_35", %_TyDescrTy_Typ* @"$TyDescr_Uint256_19", %_TyDescrTy_Typ* @"$TyDescr_Uint32_7", %_TyDescrTy_Typ* @"$TyDescr_Uint64_11", %_TyDescrTy_Typ* @"$TyDescr_Bnum_23", %_TyDescrTy_Typ* @"$TyDescr_Uint128_15", %_TyDescrTy_Typ* @"$TyDescr_Exception_29", %_TyDescrTy_Typ* @"$TyDescr_String_21", %_TyDescrTy_Typ* @"$TyDescr_Int256_17", %_TyDescrTy_Typ* @"$TyDescr_Int128_13", %_TyDescrTy_Typ* @"$TyDescr_Bystr_33", %_TyDescrTy_Typ* @"$TyDescr_ReplicateContr_31", %_TyDescrTy_Typ* @"$TyDescr_Message_25", %_TyDescrTy_Typ* @"$TyDescr_Int32_5"] @_tydescr_table_length = constant i32 17 -@"$pname__scilla_version_97" = unnamed_addr constant [15 x i8] c"_scilla_version" -@"$pname__this_address_98" = unnamed_addr constant [13 x i8] c"_this_address" -@"$pname__creation_block_99" = unnamed_addr constant [15 x i8] c"_creation_block" -@"$pname_ivar_100" = unnamed_addr constant [4 x i8] c"ivar" -@_contract_parameters = constant [4 x %"$ParamDescr_95"] [%"$ParamDescr_95" { %ParamDescrString { i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$pname__scilla_version_97", i32 0, i32 0), i32 15 }, %_TyDescrTy_Typ* @"$TyDescr_Uint32_7" }, %"$ParamDescr_95" { %ParamDescrString { i8* getelementptr inbounds ([13 x i8], [13 x i8]* @"$pname__this_address_98", i32 0, i32 0), i32 13 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr20_35" }, %"$ParamDescr_95" { %ParamDescrString { i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$pname__creation_block_99", i32 0, i32 0), i32 15 }, %_TyDescrTy_Typ* @"$TyDescr_Bnum_23" }, %"$ParamDescr_95" { %ParamDescrString { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$pname_ivar_100", i32 0, i32 0), i32 4 }, %_TyDescrTy_Typ* @"$TyDescr_Int32_5" }] +@"$pname__scilla_version_100" = unnamed_addr constant [15 x i8] c"_scilla_version" +@"$pname__this_address_101" = unnamed_addr constant [13 x i8] c"_this_address" +@"$pname__creation_block_102" = unnamed_addr constant [15 x i8] c"_creation_block" +@"$pname_ivar_103" = unnamed_addr constant [4 x i8] c"ivar" +@_contract_parameters = constant [4 x %"$ParamDescr_98"] [%"$ParamDescr_98" { %ParamDescrString { i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$pname__scilla_version_100", i32 0, i32 0), i32 15 }, %_TyDescrTy_Typ* @"$TyDescr_Uint32_7" }, %"$ParamDescr_98" { %ParamDescrString { i8* getelementptr inbounds ([13 x i8], [13 x i8]* @"$pname__this_address_101", i32 0, i32 0), i32 13 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr20_35" }, %"$ParamDescr_98" { %ParamDescrString { i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$pname__creation_block_102", i32 0, i32 0), i32 15 }, %_TyDescrTy_Typ* @"$TyDescr_Bnum_23" }, %"$ParamDescr_98" { %ParamDescrString { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$pname_ivar_103", i32 0, i32 0), i32 4 }, %_TyDescrTy_Typ* @"$TyDescr_Int32_5" }] @_contract_parameters_length = constant i32 4 -@"$tpname__amount_101" = unnamed_addr constant [7 x i8] c"_amount" -@"$tpname__origin_102" = unnamed_addr constant [7 x i8] c"_origin" -@"$tpname__sender_103" = unnamed_addr constant [7 x i8] c"_sender" -@"$tparams_dummy_104" = unnamed_addr constant [3 x %"$ParamDescr_95"] [%"$ParamDescr_95" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_101", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_15" }, %"$ParamDescr_95" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_102", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_42" }, %"$ParamDescr_95" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_103", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_42" }] -@"$tname_dummy_105" = unnamed_addr constant [5 x i8] c"dummy" -@_transition_parameters = constant [1 x %"$TransDescr_96"] [%"$TransDescr_96" { %ParamDescrString { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$tname_dummy_105", i32 0, i32 0), i32 5 }, i32 3, %"$ParamDescr_95"* getelementptr inbounds ([3 x %"$ParamDescr_95"], [3 x %"$ParamDescr_95"]* @"$tparams_dummy_104", i32 0, i32 0) }] +@"$tpname__amount_104" = unnamed_addr constant [7 x i8] c"_amount" +@"$tpname__origin_105" = unnamed_addr constant [7 x i8] c"_origin" +@"$tpname__sender_106" = unnamed_addr constant [7 x i8] c"_sender" +@"$tparams_dummy_107" = unnamed_addr constant [3 x %"$ParamDescr_98"] [%"$ParamDescr_98" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_104", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_15" }, %"$ParamDescr_98" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_105", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_42" }, %"$ParamDescr_98" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_106", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_42" }] +@"$tname_dummy_108" = unnamed_addr constant [5 x i8] c"dummy" +@_transition_parameters = constant [1 x %"$TransDescr_99"] [%"$TransDescr_99" { %ParamDescrString { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$tname_dummy_108", i32 0, i32 0), i32 5 }, i32 3, %"$ParamDescr_98"* getelementptr inbounds ([3 x %"$ParamDescr_98"], [3 x %"$ParamDescr_98"]* @"$tparams_dummy_107", i32 0, i32 0) }] @_transition_parameters_length = constant i32 1 -define void @_init_libs() !dbg !4 { +define void @_init_libs() !dbg !3 { entry: %"$gasrem_44" = load i64, i64* @_gasrem, align 8 %"$gascmp_45" = icmp ugt i64 5, %"$gasrem_44" @@ -116,6 +116,7 @@ declare void @_out_of_gas() define void @_deploy_ops() !dbg !11 { entry: %"$cconstraint_result_1" = alloca %TName_Bool*, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$cconstraint_result_1", metadata !12, metadata !DIExpression()), !dbg !15 %"$gasrem_54" = load i64, i64* @_gasrem, align 8 %"$gascmp_55" = icmp ugt i64 4, %"$gasrem_54" br i1 %"$gascmp_55", label %"$out_of_gas_56", label %"$have_gas_57" @@ -130,19 +131,20 @@ entry: %"$execptr_load_59" = load i8*, i8** @_execptr, align 8 %"$ivar_60" = load %Int32, %Int32* @_cparam_ivar, align 4 %"$cconstraint.one_61" = load %Int32, %Int32* @cconstraint.one, align 4 - %"$eq_call_62" = call %TName_Bool* @_eq_Int32(i8* %"$execptr_load_59", %Int32 %"$ivar_60", %Int32 %"$cconstraint.one_61"), !dbg !12 - store %TName_Bool* %"$eq_call_62", %TName_Bool** %"$cconstraint_result_1", align 8, !dbg !12 + %"$eq_call_62" = call %TName_Bool* @_eq_Int32(i8* %"$execptr_load_59", %Int32 %"$ivar_60", %Int32 %"$cconstraint.one_61"), !dbg !15 + store %TName_Bool* %"$eq_call_62", %TName_Bool** %"$cconstraint_result_1", align 8, !dbg !15 %"$$cconstraint_result_1_65" = load %TName_Bool*, %TName_Bool** %"$cconstraint_result_1", align 8 %"$$cconstraint_result_1_tag_66" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$$cconstraint_result_1_65", i32 0, i32 0 %"$$cconstraint_result_1_tag_67" = load i8, i8* %"$$cconstraint_result_1_tag_66", align 1 switch i8 %"$$cconstraint_result_1_tag_67", label %"$empty_default_68" [ i8 1, label %"$False_69" i8 0, label %"$True_83" - ], !dbg !12 + ], !dbg !15 "$False_69": ; preds = %"$have_gas_57" %"$$cconstraint_result_1_70" = bitcast %TName_Bool* %"$$cconstraint_result_1_65" to %CName_False* %"$cconstraint_fail_2" = alloca i8*, align 8 + call void @llvm.dbg.declare(metadata i8** %"$cconstraint_fail_2", metadata !16, metadata !DIExpression()), !dbg !21 %"$msgobj_71_salloc_load" = load i8*, i8** @_execptr, align 8 %"$msgobj_71_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_71_salloc_load", i64 41) %"$msgobj_71_salloc" = bitcast i8* %"$msgobj_71_salloc_salloc" to [41 x i8]* @@ -157,10 +159,10 @@ entry: %"$msgobj_v_78" = getelementptr i8, i8* %"$msgobj_71", i32 25 %"$msgobj_v_79" = bitcast i8* %"$msgobj_v_78" to %String* store %String { i8* getelementptr inbounds ([38 x i8], [38 x i8]* @"$stringlit_77", i32 0, i32 0), i32 38 }, %String* %"$msgobj_v_79", align 8 - store i8* %"$msgobj_71", i8** %"$cconstraint_fail_2", align 8, !dbg !13 + store i8* %"$msgobj_71", i8** %"$cconstraint_fail_2", align 8, !dbg !21 %"$execptr_load_81" = load i8*, i8** @_execptr, align 8 %"$$cconstraint_fail_2_82" = load i8*, i8** %"$cconstraint_fail_2", align 8 - call void @_throw(i8* %"$execptr_load_81", %_TyDescrTy_Typ* @"$TyDescr_Exception_29", i8* %"$$cconstraint_fail_2_82"), !dbg !13 + call void @_throw(i8* %"$execptr_load_81", %_TyDescrTy_Typ* @"$TyDescr_Exception_29", i8* %"$$cconstraint_fail_2_82"), !dbg !21 br label %"$matchsucc_64" "$True_83": ; preds = %"$have_gas_57" @@ -174,51 +176,77 @@ entry: ret void } +; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn +declare void @llvm.dbg.declare(metadata, metadata, metadata) #0 + declare %TName_Bool* @_eq_Int32(i8*, %Int32, %Int32) declare i8* @_salloc(i8*, i64) declare void @_throw(i8*, %_TyDescrTy_Typ*, i8*) -define internal void @"$dummy_85"(%Uint128 %_amount, [20 x i8]* %"$_origin_86", [20 x i8]* %"$_sender_87") !dbg !16 { +define internal void @"$dummy_85"(%Uint128 %_amount, [20 x i8]* %"$_origin_86", [20 x i8]* %"$_sender_87") !dbg !22 { entry: + %"$_sender_90" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_sender_87", [20 x i8]** %"$_sender_90", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_sender_90", metadata !23, metadata !DIExpression()), !dbg !25 + %"$_origin_89" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_origin_86", [20 x i8]** %"$_origin_89", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_origin_89", metadata !26, metadata !DIExpression()), !dbg !25 + %"$_amount_88" = alloca %Uint128, align 8 + store %Uint128 %_amount, %Uint128* %"$_amount_88", align 8 + call void @llvm.dbg.declare(metadata %Uint128* %"$_amount_88", metadata !27, metadata !DIExpression()), !dbg !25 %_origin = load [20 x i8], [20 x i8]* %"$_origin_86", align 1 %_sender = load [20 x i8], [20 x i8]* %"$_sender_87", align 1 ret void } -define void @dummy(i8* %0) !dbg !17 { +define void @dummy(i8* %0) !dbg !29 { entry: - %"$_amount_89" = getelementptr i8, i8* %0, i32 0 - %"$_amount_90" = bitcast i8* %"$_amount_89" to %Uint128* - %_amount = load %Uint128, %Uint128* %"$_amount_90", align 8 - %"$_origin_91" = getelementptr i8, i8* %0, i32 16 - %"$_origin_92" = bitcast i8* %"$_origin_91" to [20 x i8]* - %"$_sender_93" = getelementptr i8, i8* %0, i32 36 - %"$_sender_94" = bitcast i8* %"$_sender_93" to [20 x i8]* - call void @"$dummy_85"(%Uint128 %_amount, [20 x i8]* %"$_origin_92", [20 x i8]* %"$_sender_94"), !dbg !18 + %"$_amount_92" = getelementptr i8, i8* %0, i32 0 + %"$_amount_93" = bitcast i8* %"$_amount_92" to %Uint128* + %_amount = load %Uint128, %Uint128* %"$_amount_93", align 8 + %"$_origin_94" = getelementptr i8, i8* %0, i32 16 + %"$_origin_95" = bitcast i8* %"$_origin_94" to [20 x i8]* + %"$_sender_96" = getelementptr i8, i8* %0, i32 36 + %"$_sender_97" = bitcast i8* %"$_sender_96" to [20 x i8]* + call void @"$dummy_85"(%Uint128 %_amount, [20 x i8]* %"$_origin_95", [20 x i8]* %"$_sender_97"), !dbg !30 ret void } +attributes #0 = { nocallback nofree nosync nounwind readnone speculatable willreturn } + !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) +!1 = distinct !DICompileUnit(language: DW_LANG_C89, file: !2, producer: "Scilla Compiler", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false) !2 = !DIFile(filename: "cconstraint.scilla", directory: "codegen/contr") -!3 = !{} -!4 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !5, file: !5, type: !6, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!5 = !DIFile(filename: ".", directory: ".") -!6 = !DISubroutineType(types: !7) -!7 = !{!8} -!8 = !DIBasicType(tag: DW_TAG_unspecified_type, name: "void") -!9 = !DILocation(line: 0, scope: !4) -!10 = !DILocation(line: 5, column: 11, scope: !4) -!11 = distinct !DISubprogram(name: "_deploy_ops", linkageName: "_deploy_ops", scope: !5, file: !5, type: !6, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!12 = !DILocation(line: 10, column: 1, scope: !11) -!13 = !DILocation(line: 10, column: 1, scope: !14) -!14 = distinct !DILexicalBlock(scope: !15, file: !5, line: 10, column: 1) -!15 = distinct !DILexicalBlock(scope: !11, file: !5, line: 10, column: 1) -!16 = distinct !DISubprogram(name: "dummy", linkageName: "dummy", scope: !2, file: !2, line: 13, type: !6, scopeLine: 13, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!17 = distinct !DISubprogram(name: "dummy", linkageName: "dummy", scope: !2, file: !2, line: 13, type: !6, scopeLine: 13, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!18 = !DILocation(line: 13, column: 12, scope: !17) +!3 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !4, file: !4, type: !5, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!4 = !DIFile(filename: ".", directory: ".") +!5 = !DISubroutineType(types: !6) +!6 = !{!7} +!7 = !DIBasicType(tag: DW_TAG_unspecified_type, name: "void") +!8 = !{} +!9 = !DILocation(line: 0, scope: !3) +!10 = !DILocation(line: 5, column: 11, scope: !3) +!11 = distinct !DISubprogram(name: "_deploy_ops", linkageName: "_deploy_ops", scope: !4, file: !4, type: !5, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!12 = !DILocalVariable(name: "$cconstraint_result_1", scope: !11, file: !2, line: 10, type: !13) +!13 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "Bool", baseType: !14, size: 8, align: 8, dwarfAddressSpace: 0) +!14 = !DIBasicType(name: "Bool", size: 8) +!15 = !DILocation(line: 10, column: 1, scope: !11) +!16 = !DILocalVariable(name: "$cconstraint_fail_2", scope: !17, file: !2, line: 10, type: !19) +!17 = distinct !DILexicalBlock(scope: !18, file: !4, line: 10, column: 1) +!18 = distinct !DILexicalBlock(scope: !11, file: !4, line: 10, column: 1) +!19 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "Exception", baseType: !20, size: 8, align: 8, dwarfAddressSpace: 0) +!20 = !DIBasicType(name: "Exception", size: 8) +!21 = !DILocation(line: 10, column: 1, scope: !17) +!22 = distinct !DISubprogram(name: "dummy", linkageName: "dummy", scope: !2, file: !2, line: 13, type: !5, scopeLine: 13, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!23 = !DILocalVariable(name: "_sender", scope: !22, file: !2, line: 13, type: !24) +!24 = !DIBasicType(name: "ByStr20 with end", size: 20) +!25 = !DILocation(line: 13, column: 12, scope: !22) +!26 = !DILocalVariable(name: "_origin", scope: !22, file: !2, line: 13, type: !24) +!27 = !DILocalVariable(name: "_amount", scope: !22, file: !2, line: 13, type: !28) +!28 = !DIBasicType(name: "Uint128", size: 16) +!29 = distinct !DISubprogram(name: "dummy", linkageName: "dummy", scope: !2, file: !2, line: 13, type: !5, scopeLine: 13, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!30 = !DILocation(line: 13, column: 12, scope: !29) diff --git a/testsuite/contr/cconstraint.ll b/testsuite/contr/cconstraint.ll index 405b4fd2..faf47196 100644 --- a/testsuite/contr/cconstraint.ll +++ b/testsuite/contr/cconstraint.ll @@ -4,7 +4,7 @@ ; ModuleID = 'TestConstraint' source_filename = "TestConstraint" target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-pc-linux-gnu" +target triple = "x86_64-unknown-linux-gnu" %"$TyDescrTy_PrimTyp_3" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/testsuite/contr/chainid.dbg.ll b/testsuite/contr/chainid.dbg.ll index 755c3385..f328f0f2 100644 --- a/testsuite/contr/chainid.dbg.ll +++ b/testsuite/contr/chainid.dbg.ll @@ -4,7 +4,7 @@ ; 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-pc-linux-gnu" +target triple = "x86_64-unknown-linux-gnu" %"$TyDescrTy_PrimTyp_1" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } @@ -13,9 +13,9 @@ target triple = "x86_64-pc-linux-gnu" %TyDescrString = type { i8*, i32 } %Int32 = type { i32 } %Uint32 = type { i32 } -%"$ParamDescr_111" = type { %ParamDescrString, %_TyDescrTy_Typ* } +%"$ParamDescr_114" = type { %ParamDescrString, %_TyDescrTy_Typ* } %ParamDescrString = type { i8*, i32 } -%"$TransDescr_112" = type { %ParamDescrString, i32, %"$ParamDescr_111"* } +%"$TransDescr_115" = type { %ParamDescrString, i32, %"$ParamDescr_114"* } %Uint128 = type { i128 } %BCQuery = type { i8*, i32 } %String = type { i8*, i32 } @@ -67,20 +67,20 @@ target triple = "x86_64-pc-linux-gnu" @"$stringlit_85" = unnamed_addr constant [8 x i8] c"chain_id" @_tydescr_table = constant [17 x %_TyDescrTy_Typ*] [%_TyDescrTy_Typ* @"$TyDescr_Event_25", %_TyDescrTy_Typ* @"$TyDescr_Int64_7", %_TyDescrTy_Typ* @"$TyDescr_Addr_40", %_TyDescrTy_Typ* @"$TyDescr_Bystr20_33", %_TyDescrTy_Typ* @"$TyDescr_Uint256_17", %_TyDescrTy_Typ* @"$TyDescr_Uint32_5", %_TyDescrTy_Typ* @"$TyDescr_Uint64_9", %_TyDescrTy_Typ* @"$TyDescr_Bnum_21", %_TyDescrTy_Typ* @"$TyDescr_Uint128_13", %_TyDescrTy_Typ* @"$TyDescr_Exception_27", %_TyDescrTy_Typ* @"$TyDescr_String_19", %_TyDescrTy_Typ* @"$TyDescr_Int256_15", %_TyDescrTy_Typ* @"$TyDescr_Int128_11", %_TyDescrTy_Typ* @"$TyDescr_Bystr_31", %_TyDescrTy_Typ* @"$TyDescr_ReplicateContr_29", %_TyDescrTy_Typ* @"$TyDescr_Message_23", %_TyDescrTy_Typ* @"$TyDescr_Int32_3"] @_tydescr_table_length = constant i32 17 -@"$pname__scilla_version_113" = unnamed_addr constant [15 x i8] c"_scilla_version" -@"$pname__this_address_114" = unnamed_addr constant [13 x i8] c"_this_address" -@"$pname__creation_block_115" = unnamed_addr constant [15 x i8] c"_creation_block" -@_contract_parameters = constant [3 x %"$ParamDescr_111"] [%"$ParamDescr_111" { %ParamDescrString { i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$pname__scilla_version_113", i32 0, i32 0), i32 15 }, %_TyDescrTy_Typ* @"$TyDescr_Uint32_5" }, %"$ParamDescr_111" { %ParamDescrString { i8* getelementptr inbounds ([13 x i8], [13 x i8]* @"$pname__this_address_114", i32 0, i32 0), i32 13 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr20_33" }, %"$ParamDescr_111" { %ParamDescrString { i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$pname__creation_block_115", i32 0, i32 0), i32 15 }, %_TyDescrTy_Typ* @"$TyDescr_Bnum_21" }] +@"$pname__scilla_version_116" = unnamed_addr constant [15 x i8] c"_scilla_version" +@"$pname__this_address_117" = unnamed_addr constant [13 x i8] c"_this_address" +@"$pname__creation_block_118" = unnamed_addr constant [15 x i8] c"_creation_block" +@_contract_parameters = constant [3 x %"$ParamDescr_114"] [%"$ParamDescr_114" { %ParamDescrString { i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$pname__scilla_version_116", i32 0, i32 0), i32 15 }, %_TyDescrTy_Typ* @"$TyDescr_Uint32_5" }, %"$ParamDescr_114" { %ParamDescrString { i8* getelementptr inbounds ([13 x i8], [13 x i8]* @"$pname__this_address_117", i32 0, i32 0), i32 13 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr20_33" }, %"$ParamDescr_114" { %ParamDescrString { i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$pname__creation_block_118", i32 0, i32 0), i32 15 }, %_TyDescrTy_Typ* @"$TyDescr_Bnum_21" }] @_contract_parameters_length = constant i32 3 -@"$tpname__amount_116" = unnamed_addr constant [7 x i8] c"_amount" -@"$tpname__origin_117" = unnamed_addr constant [7 x i8] c"_origin" -@"$tpname__sender_118" = unnamed_addr constant [7 x i8] c"_sender" -@"$tparams_EventChainID_119" = unnamed_addr constant [3 x %"$ParamDescr_111"] [%"$ParamDescr_111" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_116", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_13" }, %"$ParamDescr_111" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_117", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_40" }, %"$ParamDescr_111" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_118", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_40" }] -@"$tname_EventChainID_120" = unnamed_addr constant [12 x i8] c"EventChainID" -@_transition_parameters = constant [1 x %"$TransDescr_112"] [%"$TransDescr_112" { %ParamDescrString { i8* getelementptr inbounds ([12 x i8], [12 x i8]* @"$tname_EventChainID_120", i32 0, i32 0), i32 12 }, i32 3, %"$ParamDescr_111"* getelementptr inbounds ([3 x %"$ParamDescr_111"], [3 x %"$ParamDescr_111"]* @"$tparams_EventChainID_119", i32 0, i32 0) }] +@"$tpname__amount_119" = unnamed_addr constant [7 x i8] c"_amount" +@"$tpname__origin_120" = unnamed_addr constant [7 x i8] c"_origin" +@"$tpname__sender_121" = unnamed_addr constant [7 x i8] c"_sender" +@"$tparams_EventChainID_122" = unnamed_addr constant [3 x %"$ParamDescr_114"] [%"$ParamDescr_114" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_119", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_13" }, %"$ParamDescr_114" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_120", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_40" }, %"$ParamDescr_114" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_121", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_40" }] +@"$tname_EventChainID_123" = unnamed_addr constant [12 x i8] c"EventChainID" +@_transition_parameters = constant [1 x %"$TransDescr_115"] [%"$TransDescr_115" { %ParamDescrString { i8* getelementptr inbounds ([12 x i8], [12 x i8]* @"$tname_EventChainID_123", i32 0, i32 0), i32 12 }, i32 3, %"$ParamDescr_114"* getelementptr inbounds ([3 x %"$ParamDescr_114"], [3 x %"$ParamDescr_114"]* @"$tparams_EventChainID_122", i32 0, i32 0) }] @_transition_parameters_length = constant i32 1 -define void @_init_libs() !dbg !4 { +define void @_init_libs() !dbg !3 { entry: %"$gasrem_42" = load i64, i64* @_gasrem, align 8 %"$gascmp_43" = icmp ugt i64 5, %"$gasrem_42" @@ -117,6 +117,15 @@ entry: define internal void @"$EventChainID_52"(%Uint128 %_amount, [20 x i8]* %"$_origin_53", [20 x i8]* %"$_sender_54") !dbg !11 { entry: + %"$_sender_106" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_sender_54", [20 x i8]** %"$_sender_106", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_sender_106", metadata !12, metadata !DIExpression()), !dbg !14 + %"$_origin_105" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_origin_53", [20 x i8]** %"$_origin_105", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_origin_105", metadata !15, metadata !DIExpression()), !dbg !14 + %"$_amount_104" = alloca %Uint128, align 8 + store %Uint128 %_amount, %Uint128* %"$_amount_104", align 8 + call void @llvm.dbg.declare(metadata %Uint128* %"$_amount_104", metadata !16, metadata !DIExpression()), !dbg !14 %_origin = load [20 x i8], [20 x i8]* %"$_origin_53", align 1 %_sender = load [20 x i8], [20 x i8]* %"$_sender_54", align 1 %"$gasrem_55" = load i64, i64* @_gasrem, align 8 @@ -131,8 +140,9 @@ entry: %"$consume_59" = sub i64 %"$gasrem_55", 1 store i64 %"$consume_59", i64* @_gasrem, align 8 %cid = alloca %Uint32, align 8 + call void @llvm.dbg.declare(metadata %Uint32* %cid, metadata !18, metadata !DIExpression()), !dbg !20 %"$execptr_load_62" = load i8*, i8** @_execptr, align 8 - %"$cid_call_63" = call i8* @_read_blockchain(i8* %"$execptr_load_62", %BCQuery { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$fetchbc_query_name_60", i32 0, i32 0), i32 7 }, %String { i8* getelementptr inbounds ([0 x i8], [0 x i8]* @"$fetchbc_query_arg_61", i32 0, i32 0), i32 0 }), !dbg !12 + %"$cid_call_63" = call i8* @_read_blockchain(i8* %"$execptr_load_62", %BCQuery { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$fetchbc_query_name_60", i32 0, i32 0), i32 7 }, %String { i8* getelementptr inbounds ([0 x i8], [0 x i8]* @"$fetchbc_query_arg_61", i32 0, i32 0), i32 0 }), !dbg !20 %"$cid_64" = bitcast i8* %"$cid_call_63" to %Uint32* %"$cid_65" = load %Uint32, %Uint32* %"$cid_64", align 4 store %Uint32 %"$cid_65", %Uint32* %cid, align 4 @@ -148,6 +158,7 @@ entry: %"$consume_70" = sub i64 %"$gasrem_66", 1 store i64 %"$consume_70", i64* @_gasrem, align 8 %e = alloca i8*, align 8 + call void @llvm.dbg.declare(metadata i8** %e, metadata !21, metadata !DIExpression()), !dbg !24 %"$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" @@ -183,7 +194,7 @@ entry: %"$msgobj_v_91" = getelementptr i8, i8* %"$msgobj_76", i32 65 %"$msgobj_v_92" = bitcast i8* %"$msgobj_v_91" to %Uint32* store %Uint32 %"$cid_90", %Uint32* %"$msgobj_v_92", align 4 - store i8* %"$msgobj_76", i8** %e, align 8, !dbg !13 + store i8* %"$msgobj_76", i8** %e, align 8, !dbg !25 %"$e_94" = load i8*, i8** %e, align 8 %"$_literal_cost_call_96" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Event_25", i8* %"$e_94") %"$gasrem_97" = load i64, i64* @_gasrem, align 8 @@ -199,10 +210,13 @@ entry: store i64 %"$consume_101", i64* @_gasrem, align 8 %"$execptr_load_102" = load i8*, i8** @_execptr, align 8 %"$e_103" = load i8*, i8** %e, align 8 - call void @_event(i8* %"$execptr_load_102", %_TyDescrTy_Typ* @"$TyDescr_Event_25", i8* %"$e_103"), !dbg !14 + call void @_event(i8* %"$execptr_load_102", %_TyDescrTy_Typ* @"$TyDescr_Event_25", i8* %"$e_103"), !dbg !26 ret void } +; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn +declare void @llvm.dbg.declare(metadata, metadata, metadata) #0 + declare i8* @_read_blockchain(i8*, %BCQuery, %String) declare i8* @_salloc(i8*, i64) @@ -211,36 +225,50 @@ declare i64 @_literal_cost(%_TyDescrTy_Typ*, i8*) declare void @_event(i8*, %_TyDescrTy_Typ*, i8*) -define void @EventChainID(i8* %0) !dbg !15 { +define void @EventChainID(i8* %0) !dbg !27 { entry: - %"$_amount_105" = getelementptr i8, i8* %0, i32 0 - %"$_amount_106" = bitcast i8* %"$_amount_105" to %Uint128* - %_amount = load %Uint128, %Uint128* %"$_amount_106", align 8 - %"$_origin_107" = getelementptr i8, i8* %0, i32 16 - %"$_origin_108" = bitcast i8* %"$_origin_107" to [20 x i8]* - %"$_sender_109" = getelementptr i8, i8* %0, i32 36 - %"$_sender_110" = bitcast i8* %"$_sender_109" to [20 x i8]* - call void @"$EventChainID_52"(%Uint128 %_amount, [20 x i8]* %"$_origin_108", [20 x i8]* %"$_sender_110"), !dbg !16 + %"$_amount_108" = getelementptr i8, i8* %0, i32 0 + %"$_amount_109" = bitcast i8* %"$_amount_108" to %Uint128* + %_amount = load %Uint128, %Uint128* %"$_amount_109", align 8 + %"$_origin_110" = getelementptr i8, i8* %0, i32 16 + %"$_origin_111" = bitcast i8* %"$_origin_110" to [20 x i8]* + %"$_sender_112" = getelementptr i8, i8* %0, i32 36 + %"$_sender_113" = bitcast i8* %"$_sender_112" to [20 x i8]* + call void @"$EventChainID_52"(%Uint128 %_amount, [20 x i8]* %"$_origin_111", [20 x i8]* %"$_sender_113"), !dbg !28 ret void } +attributes #0 = { nocallback nofree nosync nounwind readnone speculatable willreturn } + !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) +!1 = distinct !DICompileUnit(language: DW_LANG_C89, file: !2, producer: "Scilla Compiler", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false) !2 = !DIFile(filename: "chainid.scilla", directory: "codegen/contr") -!3 = !{} -!4 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !5, file: !5, type: !6, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!5 = !DIFile(filename: ".", directory: ".") -!6 = !DISubroutineType(types: !7) -!7 = !{!8} -!8 = !DIBasicType(tag: DW_TAG_unspecified_type, name: "void") -!9 = !DILocation(line: 0, scope: !4) -!10 = distinct !DISubprogram(name: "_deploy_ops", linkageName: "_deploy_ops", scope: !5, file: !5, type: !6, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!11 = distinct !DISubprogram(name: "EventChainID", linkageName: "EventChainID", scope: !2, file: !2, line: 9, type: !6, scopeLine: 9, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!12 = !DILocation(line: 10, column: 3, scope: !11) -!13 = !DILocation(line: 11, column: 7, scope: !11) -!14 = !DILocation(line: 12, column: 3, scope: !11) -!15 = distinct !DISubprogram(name: "EventChainID", linkageName: "EventChainID", scope: !2, file: !2, line: 9, type: !6, scopeLine: 9, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!16 = !DILocation(line: 9, column: 12, scope: !15) +!3 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !4, file: !4, type: !5, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!4 = !DIFile(filename: ".", directory: ".") +!5 = !DISubroutineType(types: !6) +!6 = !{!7} +!7 = !DIBasicType(tag: DW_TAG_unspecified_type, name: "void") +!8 = !{} +!9 = !DILocation(line: 0, scope: !3) +!10 = distinct !DISubprogram(name: "_deploy_ops", linkageName: "_deploy_ops", scope: !4, file: !4, type: !5, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!11 = distinct !DISubprogram(name: "EventChainID", linkageName: "EventChainID", scope: !2, file: !2, line: 9, type: !5, scopeLine: 9, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!12 = !DILocalVariable(name: "_sender", scope: !11, file: !2, line: 9, type: !13) +!13 = !DIBasicType(name: "ByStr20 with end", size: 20) +!14 = !DILocation(line: 9, column: 12, scope: !11) +!15 = !DILocalVariable(name: "_origin", scope: !11, file: !2, line: 9, type: !13) +!16 = !DILocalVariable(name: "_amount", scope: !11, file: !2, line: 9, type: !17) +!17 = !DIBasicType(name: "Uint128", size: 16) +!18 = !DILocalVariable(name: "cid", scope: !11, file: !2, line: 10, type: !19) +!19 = !DIBasicType(name: "Uint32", size: 4) +!20 = !DILocation(line: 10, column: 3, scope: !11) +!21 = !DILocalVariable(name: "e", scope: !11, file: !2, line: 11, type: !22) +!22 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "Event", baseType: !23, size: 8, align: 8, dwarfAddressSpace: 0) +!23 = !DIBasicType(name: "Event", size: 8) +!24 = !DILocation(line: 11, column: 3, scope: !11) +!25 = !DILocation(line: 11, column: 7, scope: !11) +!26 = !DILocation(line: 12, column: 3, scope: !11) +!27 = distinct !DISubprogram(name: "EventChainID", linkageName: "EventChainID", scope: !2, file: !2, line: 9, type: !5, scopeLine: 9, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!28 = !DILocation(line: 9, column: 12, scope: !27) diff --git a/testsuite/contr/chainid.ll b/testsuite/contr/chainid.ll index eaf1ee88..aa2cb4e1 100644 --- a/testsuite/contr/chainid.ll +++ b/testsuite/contr/chainid.ll @@ -4,7 +4,7 @@ ; 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-pc-linux-gnu" +target triple = "x86_64-unknown-linux-gnu" %"$TyDescrTy_PrimTyp_1" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/testsuite/contr/codehash.dbg.ll b/testsuite/contr/codehash.dbg.ll index 80099959..2090fb1d 100644 --- a/testsuite/contr/codehash.dbg.ll +++ b/testsuite/contr/codehash.dbg.ll @@ -4,7 +4,7 @@ ; ModuleID = 'Codehash' source_filename = "Codehash" target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-pc-linux-gnu" +target triple = "x86_64-unknown-linux-gnu" %"$TyDescrTy_PrimTyp_1" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } @@ -16,9 +16,9 @@ target triple = "x86_64-pc-linux-gnu" %"$TyDescr_AddrTyp_42" = type { i32, %"$TyDescr_AddrFieldTyp_41"* } %Int32 = type { i32 } %Uint32 = type { i32 } -%"$ParamDescr_398" = type { %ParamDescrString, %_TyDescrTy_Typ* } +%"$ParamDescr_414" = type { %ParamDescrString, %_TyDescrTy_Typ* } %ParamDescrString = type { i8*, i32 } -%"$TransDescr_399" = type { %ParamDescrString, i32, %"$ParamDescr_398"* } +%"$TransDescr_415" = type { %ParamDescrString, i32, %"$ParamDescr_414"* } %Uint128 = type { i128 } %String = type { i8*, i32 } %TName_Option_ByStr20_with__codehash_end = type { i8, %CName_Some_ByStr20_with__codehash_end*, %CName_None_ByStr20_with__codehash_end* } @@ -91,55 +91,55 @@ target triple = "x86_64-pc-linux-gnu" @"$stringlit_105" = unnamed_addr constant [10 x i8] c"_eventname" @"$stringlit_110" = unnamed_addr constant [7 x i8] c"Success" @"$stringlit_113" = unnamed_addr constant [3 x i8] c"bar" -@"$_codehash_168" = unnamed_addr constant [10 x i8] c"_codehash\00" -@"$stringlit_196" = unnamed_addr constant [10 x i8] c"_eventname" -@"$stringlit_201" = unnamed_addr constant [7 x i8] c"Success" -@"$stringlit_204" = unnamed_addr constant [3 x i8] c"bar" -@"$stringlit_236" = unnamed_addr constant [10 x i8] c"_eventname" -@"$stringlit_241" = unnamed_addr constant [7 x i8] c"Failure" -@"$_codehash_268" = unnamed_addr constant [10 x i8] c"_codehash\00" -@"$stringlit_295" = unnamed_addr constant [10 x i8] c"_eventname" -@"$stringlit_300" = unnamed_addr constant [7 x i8] c"Success" -@"$stringlit_303" = unnamed_addr constant [3 x i8] c"bar" -@"$_codehash_335" = unnamed_addr constant [10 x i8] c"_codehash\00" -@"$stringlit_362" = unnamed_addr constant [10 x i8] c"_eventname" -@"$stringlit_367" = unnamed_addr constant [7 x i8] c"Success" -@"$stringlit_370" = unnamed_addr constant [3 x i8] c"bar" +@"$_codehash_172" = unnamed_addr constant [10 x i8] c"_codehash\00" +@"$stringlit_200" = unnamed_addr constant [10 x i8] c"_eventname" +@"$stringlit_205" = unnamed_addr constant [7 x i8] c"Success" +@"$stringlit_208" = unnamed_addr constant [3 x i8] c"bar" +@"$stringlit_240" = unnamed_addr constant [10 x i8] c"_eventname" +@"$stringlit_245" = unnamed_addr constant [7 x i8] c"Failure" +@"$_codehash_276" = unnamed_addr constant [10 x i8] c"_codehash\00" +@"$stringlit_303" = unnamed_addr constant [10 x i8] c"_eventname" +@"$stringlit_308" = unnamed_addr constant [7 x i8] c"Success" +@"$stringlit_311" = unnamed_addr constant [3 x i8] c"bar" +@"$_codehash_347" = unnamed_addr constant [10 x i8] c"_codehash\00" +@"$stringlit_374" = unnamed_addr constant [10 x i8] c"_eventname" +@"$stringlit_379" = unnamed_addr constant [7 x i8] c"Success" +@"$stringlit_382" = unnamed_addr constant [3 x i8] c"bar" @_tydescr_table = constant [22 x %_TyDescrTy_Typ*] [%_TyDescrTy_Typ* @"$TyDescr_Addr_44", %_TyDescrTy_Typ* @"$TyDescr_Event_25", %_TyDescrTy_Typ* @"$TyDescr_Int64_7", %_TyDescrTy_Typ* @"$TyDescr_ADT_Option_ByStr20_with__codehash_end_39", %_TyDescrTy_Typ* @"$TyDescr_Addr_46", %_TyDescrTy_Typ* @"$TyDescr_Bystr20_35", %_TyDescrTy_Typ* @"$TyDescr_Uint256_17", %_TyDescrTy_Typ* @"$TyDescr_Uint32_5", %_TyDescrTy_Typ* @"$TyDescr_Addr_43", %_TyDescrTy_Typ* @"$TyDescr_Uint64_9", %_TyDescrTy_Typ* @"$TyDescr_Bnum_21", %_TyDescrTy_Typ* @"$TyDescr_Uint128_13", %_TyDescrTy_Typ* @"$TyDescr_Exception_27", %_TyDescrTy_Typ* @"$TyDescr_String_19", %_TyDescrTy_Typ* @"$TyDescr_Addr_45", %_TyDescrTy_Typ* @"$TyDescr_Bystr32_33", %_TyDescrTy_Typ* @"$TyDescr_Int256_15", %_TyDescrTy_Typ* @"$TyDescr_Int128_11", %_TyDescrTy_Typ* @"$TyDescr_Bystr_31", %_TyDescrTy_Typ* @"$TyDescr_ReplicateContr_29", %_TyDescrTy_Typ* @"$TyDescr_Message_23", %_TyDescrTy_Typ* @"$TyDescr_Int32_3"] @_tydescr_table_length = constant i32 22 -@"$pname__scilla_version_400" = unnamed_addr constant [15 x i8] c"_scilla_version" -@"$pname__this_address_401" = unnamed_addr constant [13 x i8] c"_this_address" -@"$pname__creation_block_402" = unnamed_addr constant [15 x i8] c"_creation_block" -@_contract_parameters = constant [3 x %"$ParamDescr_398"] [%"$ParamDescr_398" { %ParamDescrString { i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$pname__scilla_version_400", i32 0, i32 0), i32 15 }, %_TyDescrTy_Typ* @"$TyDescr_Uint32_5" }, %"$ParamDescr_398" { %ParamDescrString { i8* getelementptr inbounds ([13 x i8], [13 x i8]* @"$pname__this_address_401", i32 0, i32 0), i32 13 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr20_35" }, %"$ParamDescr_398" { %ParamDescrString { i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$pname__creation_block_402", i32 0, i32 0), i32 15 }, %_TyDescrTy_Typ* @"$TyDescr_Bnum_21" }] +@"$pname__scilla_version_416" = unnamed_addr constant [15 x i8] c"_scilla_version" +@"$pname__this_address_417" = unnamed_addr constant [13 x i8] c"_this_address" +@"$pname__creation_block_418" = unnamed_addr constant [15 x i8] c"_creation_block" +@_contract_parameters = constant [3 x %"$ParamDescr_414"] [%"$ParamDescr_414" { %ParamDescrString { i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$pname__scilla_version_416", i32 0, i32 0), i32 15 }, %_TyDescrTy_Typ* @"$TyDescr_Uint32_5" }, %"$ParamDescr_414" { %ParamDescrString { i8* getelementptr inbounds ([13 x i8], [13 x i8]* @"$pname__this_address_417", i32 0, i32 0), i32 13 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr20_35" }, %"$ParamDescr_414" { %ParamDescrString { i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$pname__creation_block_418", i32 0, i32 0), i32 15 }, %_TyDescrTy_Typ* @"$TyDescr_Bnum_21" }] @_contract_parameters_length = constant i32 3 -@"$tpname__amount_403" = unnamed_addr constant [7 x i8] c"_amount" -@"$tpname__origin_404" = unnamed_addr constant [7 x i8] c"_origin" -@"$tpname__sender_405" = unnamed_addr constant [7 x i8] c"_sender" -@"$tpname_addr_406" = unnamed_addr constant [4 x i8] c"addr" -@"$tparams_foo_407" = unnamed_addr constant [4 x %"$ParamDescr_398"] [%"$ParamDescr_398" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_403", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_13" }, %"$ParamDescr_398" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_404", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_46" }, %"$ParamDescr_398" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_405", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_46" }, %"$ParamDescr_398" { %ParamDescrString { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$tpname_addr_406", i32 0, i32 0), i32 4 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_45" }] -@"$tname_foo_408" = unnamed_addr constant [3 x i8] c"foo" -@"$tpname__amount_409" = unnamed_addr constant [7 x i8] c"_amount" -@"$tpname__origin_410" = unnamed_addr constant [7 x i8] c"_origin" -@"$tpname__sender_411" = unnamed_addr constant [7 x i8] c"_sender" -@"$tpname_addr_412" = unnamed_addr constant [4 x i8] c"addr" -@"$tparams_foo2_413" = unnamed_addr constant [4 x %"$ParamDescr_398"] [%"$ParamDescr_398" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_409", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_13" }, %"$ParamDescr_398" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_410", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_46" }, %"$ParamDescr_398" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_411", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_46" }, %"$ParamDescr_398" { %ParamDescrString { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$tpname_addr_412", i32 0, i32 0), i32 4 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr20_35" }] -@"$tname_foo2_414" = unnamed_addr constant [4 x i8] c"foo2" -@"$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_addr_418" = unnamed_addr constant [4 x i8] c"addr" -@"$tparams_foo3_419" = unnamed_addr constant [4 x %"$ParamDescr_398"] [%"$ParamDescr_398" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_415", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_13" }, %"$ParamDescr_398" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_416", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_46" }, %"$ParamDescr_398" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_417", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_46" }, %"$ParamDescr_398" { %ParamDescrString { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$tpname_addr_418", i32 0, i32 0), i32 4 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_44" }] -@"$tname_foo3_420" = unnamed_addr constant [4 x i8] c"foo3" -@"$tpname__amount_421" = unnamed_addr constant [7 x i8] c"_amount" -@"$tpname__origin_422" = unnamed_addr constant [7 x i8] c"_origin" -@"$tpname__sender_423" = unnamed_addr constant [7 x i8] c"_sender" -@"$tpname_addr_424" = unnamed_addr constant [4 x i8] c"addr" -@"$tparams_foo4_425" = unnamed_addr constant [4 x %"$ParamDescr_398"] [%"$ParamDescr_398" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_421", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_13" }, %"$ParamDescr_398" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_422", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_46" }, %"$ParamDescr_398" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_423", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_46" }, %"$ParamDescr_398" { %ParamDescrString { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$tpname_addr_424", i32 0, i32 0), i32 4 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_43" }] -@"$tname_foo4_426" = unnamed_addr constant [4 x i8] c"foo4" -@_transition_parameters = constant [4 x %"$TransDescr_399"] [%"$TransDescr_399" { %ParamDescrString { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$tname_foo_408", i32 0, i32 0), i32 3 }, i32 4, %"$ParamDescr_398"* getelementptr inbounds ([4 x %"$ParamDescr_398"], [4 x %"$ParamDescr_398"]* @"$tparams_foo_407", i32 0, i32 0) }, %"$TransDescr_399" { %ParamDescrString { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$tname_foo2_414", i32 0, i32 0), i32 4 }, i32 4, %"$ParamDescr_398"* getelementptr inbounds ([4 x %"$ParamDescr_398"], [4 x %"$ParamDescr_398"]* @"$tparams_foo2_413", i32 0, i32 0) }, %"$TransDescr_399" { %ParamDescrString { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$tname_foo3_420", i32 0, i32 0), i32 4 }, i32 4, %"$ParamDescr_398"* getelementptr inbounds ([4 x %"$ParamDescr_398"], [4 x %"$ParamDescr_398"]* @"$tparams_foo3_419", i32 0, i32 0) }, %"$TransDescr_399" { %ParamDescrString { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$tname_foo4_426", i32 0, i32 0), i32 4 }, i32 4, %"$ParamDescr_398"* getelementptr inbounds ([4 x %"$ParamDescr_398"], [4 x %"$ParamDescr_398"]* @"$tparams_foo4_425", i32 0, i32 0) }] +@"$tpname__amount_419" = unnamed_addr constant [7 x i8] c"_amount" +@"$tpname__origin_420" = unnamed_addr constant [7 x i8] c"_origin" +@"$tpname__sender_421" = unnamed_addr constant [7 x i8] c"_sender" +@"$tpname_addr_422" = unnamed_addr constant [4 x i8] c"addr" +@"$tparams_foo_423" = unnamed_addr constant [4 x %"$ParamDescr_414"] [%"$ParamDescr_414" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_419", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_13" }, %"$ParamDescr_414" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_420", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_46" }, %"$ParamDescr_414" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_421", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_46" }, %"$ParamDescr_414" { %ParamDescrString { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$tpname_addr_422", i32 0, i32 0), i32 4 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_45" }] +@"$tname_foo_424" = unnamed_addr constant [3 x i8] c"foo" +@"$tpname__amount_425" = unnamed_addr constant [7 x i8] c"_amount" +@"$tpname__origin_426" = unnamed_addr constant [7 x i8] c"_origin" +@"$tpname__sender_427" = unnamed_addr constant [7 x i8] c"_sender" +@"$tpname_addr_428" = unnamed_addr constant [4 x i8] c"addr" +@"$tparams_foo2_429" = unnamed_addr constant [4 x %"$ParamDescr_414"] [%"$ParamDescr_414" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_425", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_13" }, %"$ParamDescr_414" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_426", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_46" }, %"$ParamDescr_414" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_427", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_46" }, %"$ParamDescr_414" { %ParamDescrString { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$tpname_addr_428", i32 0, i32 0), i32 4 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr20_35" }] +@"$tname_foo2_430" = unnamed_addr constant [4 x i8] c"foo2" +@"$tpname__amount_431" = unnamed_addr constant [7 x i8] c"_amount" +@"$tpname__origin_432" = unnamed_addr constant [7 x i8] c"_origin" +@"$tpname__sender_433" = unnamed_addr constant [7 x i8] c"_sender" +@"$tpname_addr_434" = unnamed_addr constant [4 x i8] c"addr" +@"$tparams_foo3_435" = unnamed_addr constant [4 x %"$ParamDescr_414"] [%"$ParamDescr_414" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_431", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_13" }, %"$ParamDescr_414" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_432", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_46" }, %"$ParamDescr_414" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_433", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_46" }, %"$ParamDescr_414" { %ParamDescrString { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$tpname_addr_434", i32 0, i32 0), i32 4 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_44" }] +@"$tname_foo3_436" = unnamed_addr constant [4 x i8] c"foo3" +@"$tpname__amount_437" = unnamed_addr constant [7 x i8] c"_amount" +@"$tpname__origin_438" = unnamed_addr constant [7 x i8] c"_origin" +@"$tpname__sender_439" = unnamed_addr constant [7 x i8] c"_sender" +@"$tpname_addr_440" = unnamed_addr constant [4 x i8] c"addr" +@"$tparams_foo4_441" = unnamed_addr constant [4 x %"$ParamDescr_414"] [%"$ParamDescr_414" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_437", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_13" }, %"$ParamDescr_414" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_438", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_46" }, %"$ParamDescr_414" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_439", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_46" }, %"$ParamDescr_414" { %ParamDescrString { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$tpname_addr_440", i32 0, i32 0), i32 4 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_43" }] +@"$tname_foo4_442" = unnamed_addr constant [4 x i8] c"foo4" +@_transition_parameters = constant [4 x %"$TransDescr_415"] [%"$TransDescr_415" { %ParamDescrString { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$tname_foo_424", i32 0, i32 0), i32 3 }, i32 4, %"$ParamDescr_414"* getelementptr inbounds ([4 x %"$ParamDescr_414"], [4 x %"$ParamDescr_414"]* @"$tparams_foo_423", i32 0, i32 0) }, %"$TransDescr_415" { %ParamDescrString { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$tname_foo2_430", i32 0, i32 0), i32 4 }, i32 4, %"$ParamDescr_414"* getelementptr inbounds ([4 x %"$ParamDescr_414"], [4 x %"$ParamDescr_414"]* @"$tparams_foo2_429", i32 0, i32 0) }, %"$TransDescr_415" { %ParamDescrString { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$tname_foo3_436", i32 0, i32 0), i32 4 }, i32 4, %"$ParamDescr_414"* getelementptr inbounds ([4 x %"$ParamDescr_414"], [4 x %"$ParamDescr_414"]* @"$tparams_foo3_435", i32 0, i32 0) }, %"$TransDescr_415" { %ParamDescrString { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$tname_foo4_442", i32 0, i32 0), i32 4 }, i32 4, %"$ParamDescr_414"* getelementptr inbounds ([4 x %"$ParamDescr_414"], [4 x %"$ParamDescr_414"]* @"$tparams_foo4_441", i32 0, i32 0) }] @_transition_parameters_length = constant i32 4 -define void @_init_libs() !dbg !4 { +define void @_init_libs() !dbg !3 { entry: %"$gasrem_64" = load i64, i64* @_gasrem, align 8 %"$gascmp_65" = icmp ugt i64 5, %"$gasrem_64" @@ -176,14 +176,27 @@ entry: define internal void @"$foo_74"(%Uint128 %_amount, [20 x i8]* %"$_origin_75", [20 x i8]* %"$_sender_76", [20 x i8]* %"$addr_77") !dbg !11 { entry: + %"$addr_135" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$addr_77", [20 x i8]** %"$addr_135", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$addr_135", metadata !12, metadata !DIExpression()), !dbg !14 + %"$_sender_134" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_sender_76", [20 x i8]** %"$_sender_134", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_sender_134", metadata !15, metadata !DIExpression()), !dbg !17 + %"$_origin_133" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_origin_75", [20 x i8]** %"$_origin_133", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_origin_133", metadata !18, metadata !DIExpression()), !dbg !17 + %"$_amount_132" = alloca %Uint128, align 8 + store %Uint128 %_amount, %Uint128* %"$_amount_132", align 8 + call void @llvm.dbg.declare(metadata %Uint128* %"$_amount_132", metadata !19, metadata !DIExpression()), !dbg !17 %_origin = load [20 x i8], [20 x i8]* %"$_origin_75", align 1 %_sender = load [20 x i8], [20 x i8]* %"$_sender_76", align 1 %addr = load [20 x i8], [20 x i8]* %"$addr_77", align 1 %bar = alloca [32 x i8], align 1 + call void @llvm.dbg.declare(metadata [32 x i8]* %bar, metadata !21, metadata !DIExpression()), !dbg !23 %"$execptr_load_79" = load i8*, i8** @_execptr, align 8 %"$bar_addr_80" = alloca [20 x i8], align 1 store [20 x i8] %addr, [20 x i8]* %"$bar_addr_80", align 1 - %"$bar_call_81" = call i8* @_fetch_remote_field(i8* %"$execptr_load_79", [20 x i8]* %"$bar_addr_80", i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$_codehash_78", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Bystr32_33", i32 0, i8* null, i32 1), !dbg !12 + %"$bar_call_81" = call i8* @_fetch_remote_field(i8* %"$execptr_load_79", [20 x i8]* %"$bar_addr_80", i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$_codehash_78", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Bystr32_33", i32 0, i8* null, i32 1), !dbg !23 %"$bar_82" = bitcast i8* %"$bar_call_81" to [32 x i8]* %"$bar_83" = load [32 x i8], [32 x i8]* %"$bar_82", align 1 store [32 x i8] %"$bar_83", [32 x i8]* %bar, align 1 @@ -216,6 +229,7 @@ entry: %"$consume_98" = sub i64 %"$gasrem_94", 1 store i64 %"$consume_98", i64* @_gasrem, align 8 %e = alloca i8*, align 8 + call void @llvm.dbg.declare(metadata i8** %e, metadata !24, metadata !DIExpression()), !dbg !27 %"$gasrem_99" = load i64, i64* @_gasrem, align 8 %"$gascmp_100" = icmp ugt i64 1, %"$gasrem_99" br i1 %"$gascmp_100", label %"$out_of_gas_101", label %"$have_gas_102" @@ -251,7 +265,7 @@ entry: %"$msgobj_v_119" = getelementptr i8, i8* %"$msgobj_104", i32 65 %"$msgobj_v_120" = bitcast i8* %"$msgobj_v_119" to [32 x i8]* store [32 x i8] %"$bar_118", [32 x i8]* %"$msgobj_v_120", align 1 - store i8* %"$msgobj_104", i8** %e, align 8, !dbg !13 + store i8* %"$msgobj_104", i8** %e, align 8, !dbg !28 %"$e_122" = load i8*, i8** %e, align 8 %"$_literal_cost_call_124" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Event_25", i8* %"$e_122") %"$gasrem_125" = load i64, i64* @_gasrem, align 8 @@ -267,10 +281,13 @@ entry: store i64 %"$consume_129", i64* @_gasrem, align 8 %"$execptr_load_130" = load i8*, i8** @_execptr, align 8 %"$e_131" = load i8*, i8** %e, align 8 - call void @_event(i8* %"$execptr_load_130", %_TyDescrTy_Typ* @"$TyDescr_Event_25", i8* %"$e_131"), !dbg !14 + call void @_event(i8* %"$execptr_load_130", %_TyDescrTy_Typ* @"$TyDescr_Event_25", i8* %"$e_131"), !dbg !29 ret void } +; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn +declare void @llvm.dbg.declare(metadata, metadata, metadata) #0 + declare i8* @_fetch_remote_field(i8*, [20 x i8]*, i8*, %_TyDescrTy_Typ*, i32, i8*, i32) declare i64 @_literal_cost(%_TyDescrTy_Typ*, i8*) @@ -279,509 +296,605 @@ declare i8* @_salloc(i8*, i64) declare void @_event(i8*, %_TyDescrTy_Typ*, i8*) -define void @foo(i8* %0) !dbg !15 { +define void @foo(i8* %0) !dbg !30 { entry: - %"$_amount_133" = getelementptr i8, i8* %0, i32 0 - %"$_amount_134" = bitcast i8* %"$_amount_133" to %Uint128* - %_amount = load %Uint128, %Uint128* %"$_amount_134", align 8 - %"$_origin_135" = getelementptr i8, i8* %0, i32 16 - %"$_origin_136" = bitcast i8* %"$_origin_135" to [20 x i8]* - %"$_sender_137" = getelementptr i8, i8* %0, i32 36 - %"$_sender_138" = bitcast i8* %"$_sender_137" to [20 x i8]* - %"$addr_139" = getelementptr i8, i8* %0, i32 56 - %"$addr_140" = bitcast i8* %"$addr_139" to [20 x i8]* - call void @"$foo_74"(%Uint128 %_amount, [20 x i8]* %"$_origin_136", [20 x i8]* %"$_sender_138", [20 x i8]* %"$addr_140"), !dbg !16 + %"$_amount_137" = getelementptr i8, i8* %0, i32 0 + %"$_amount_138" = bitcast i8* %"$_amount_137" to %Uint128* + %_amount = load %Uint128, %Uint128* %"$_amount_138", align 8 + %"$_origin_139" = getelementptr i8, i8* %0, i32 16 + %"$_origin_140" = bitcast i8* %"$_origin_139" to [20 x i8]* + %"$_sender_141" = getelementptr i8, i8* %0, i32 36 + %"$_sender_142" = bitcast i8* %"$_sender_141" to [20 x i8]* + %"$addr_143" = getelementptr i8, i8* %0, i32 56 + %"$addr_144" = bitcast i8* %"$addr_143" to [20 x i8]* + call void @"$foo_74"(%Uint128 %_amount, [20 x i8]* %"$_origin_140", [20 x i8]* %"$_sender_142", [20 x i8]* %"$addr_144"), !dbg !31 ret void } -define internal void @"$foo2_141"(%Uint128 %_amount, [20 x i8]* %"$_origin_142", [20 x i8]* %"$_sender_143", [20 x i8]* %"$addr_144") !dbg !17 { +define internal void @"$foo2_145"(%Uint128 %_amount, [20 x i8]* %"$_origin_146", [20 x i8]* %"$_sender_147", [20 x i8]* %"$addr_148") !dbg !32 { entry: - %_origin = load [20 x i8], [20 x i8]* %"$_origin_142", align 1 - %_sender = load [20 x i8], [20 x i8]* %"$_sender_143", align 1 - %addr = load [20 x i8], [20 x i8]* %"$addr_144", align 1 - %"$gasrem_145" = load i64, i64* @_gasrem, align 8 - %"$gascmp_146" = icmp ugt i64 2, %"$gasrem_145" - br i1 %"$gascmp_146", label %"$out_of_gas_147", label %"$have_gas_148" - -"$out_of_gas_147": ; preds = %entry + %"$addr_262" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$addr_148", [20 x i8]** %"$addr_262", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$addr_262", metadata !33, metadata !DIExpression()), !dbg !35 + %"$_sender_261" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_sender_147", [20 x i8]** %"$_sender_261", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_sender_261", metadata !36, metadata !DIExpression()), !dbg !37 + %"$_origin_260" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_origin_146", [20 x i8]** %"$_origin_260", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_origin_260", metadata !38, metadata !DIExpression()), !dbg !37 + %"$_amount_259" = alloca %Uint128, align 8 + store %Uint128 %_amount, %Uint128* %"$_amount_259", align 8 + call void @llvm.dbg.declare(metadata %Uint128* %"$_amount_259", metadata !39, metadata !DIExpression()), !dbg !37 + %_origin = load [20 x i8], [20 x i8]* %"$_origin_146", align 1 + %_sender = load [20 x i8], [20 x i8]* %"$_sender_147", align 1 + %addr = load [20 x i8], [20 x i8]* %"$addr_148", align 1 + %"$gasrem_149" = load i64, i64* @_gasrem, align 8 + %"$gascmp_150" = icmp ugt i64 2, %"$gasrem_149" + br i1 %"$gascmp_150", label %"$out_of_gas_151", label %"$have_gas_152" + +"$out_of_gas_151": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_148" + br label %"$have_gas_152" -"$have_gas_148": ; preds = %"$out_of_gas_147", %entry - %"$consume_149" = sub i64 %"$gasrem_145", 2 - store i64 %"$consume_149", i64* @_gasrem, align 8 +"$have_gas_152": ; preds = %"$out_of_gas_151", %entry + %"$consume_153" = sub i64 %"$gasrem_149", 2 + store i64 %"$consume_153", i64* @_gasrem, align 8 %addr_ = alloca %TName_Option_ByStr20_with__codehash_end*, align 8 - %"$execptr_load_150" = load i8*, i8** @_execptr, align 8 - %"$_dynamic_typecast_addr_151" = alloca [20 x i8], align 1 - store [20 x i8] %addr, [20 x i8]* %"$_dynamic_typecast_addr_151", align 1 - %"$_dynamic_typecast_call_152" = call i8* @_dynamic_typecast(i8* %"$execptr_load_150", [20 x i8]* %"$_dynamic_typecast_addr_151", %_TyDescrTy_Typ* @"$TyDescr_Addr_45"), !dbg !18 - %"$_dynamic_typecast_153" = bitcast i8* %"$_dynamic_typecast_call_152" to %TName_Option_ByStr20_with__codehash_end* - store %TName_Option_ByStr20_with__codehash_end* %"$_dynamic_typecast_153", %TName_Option_ByStr20_with__codehash_end** %addr_, align 8, !dbg !18 - %"$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_148" + call void @llvm.dbg.declare(metadata %TName_Option_ByStr20_with__codehash_end** %addr_, metadata !40, metadata !DIExpression()), !dbg !43 + %"$execptr_load_154" = load i8*, i8** @_execptr, align 8 + %"$_dynamic_typecast_addr_155" = alloca [20 x i8], align 1 + store [20 x i8] %addr, [20 x i8]* %"$_dynamic_typecast_addr_155", align 1 + %"$_dynamic_typecast_call_156" = call i8* @_dynamic_typecast(i8* %"$execptr_load_154", [20 x i8]* %"$_dynamic_typecast_addr_155", %_TyDescrTy_Typ* @"$TyDescr_Addr_45"), !dbg !43 + %"$_dynamic_typecast_157" = bitcast i8* %"$_dynamic_typecast_call_156" to %TName_Option_ByStr20_with__codehash_end* + store %TName_Option_ByStr20_with__codehash_end* %"$_dynamic_typecast_157", %TName_Option_ByStr20_with__codehash_end** %addr_, align 8, !dbg !43 + %"$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 = %"$have_gas_152" call void @_out_of_gas() - br label %"$have_gas_157" - -"$have_gas_157": ; preds = %"$out_of_gas_156", %"$have_gas_148" - %"$consume_158" = sub i64 %"$gasrem_154", 2 - store i64 %"$consume_158", i64* @_gasrem, align 8 - %"$addr__160" = load %TName_Option_ByStr20_with__codehash_end*, %TName_Option_ByStr20_with__codehash_end** %addr_, align 8 - %"$addr__tag_161" = getelementptr inbounds %TName_Option_ByStr20_with__codehash_end, %TName_Option_ByStr20_with__codehash_end* %"$addr__160", i32 0, i32 0 - %"$addr__tag_162" = load i8, i8* %"$addr__tag_161", align 1 - switch i8 %"$addr__tag_162", label %"$empty_default_163" [ - i8 0, label %"$Some_164" - i8 1, label %"$None_223" - ], !dbg !19 - -"$Some_164": ; preds = %"$have_gas_157" - %"$addr__165" = bitcast %TName_Option_ByStr20_with__codehash_end* %"$addr__160" to %CName_Some_ByStr20_with__codehash_end* - %"$addr___gep_166" = getelementptr inbounds %CName_Some_ByStr20_with__codehash_end, %CName_Some_ByStr20_with__codehash_end* %"$addr__165", i32 0, i32 1 - %"$addr___load_167" = load [20 x i8], [20 x i8]* %"$addr___gep_166", align 1 + br label %"$have_gas_161" + +"$have_gas_161": ; preds = %"$out_of_gas_160", %"$have_gas_152" + %"$consume_162" = sub i64 %"$gasrem_158", 2 + store i64 %"$consume_162", i64* @_gasrem, align 8 + %"$addr__164" = load %TName_Option_ByStr20_with__codehash_end*, %TName_Option_ByStr20_with__codehash_end** %addr_, align 8 + %"$addr__tag_165" = getelementptr inbounds %TName_Option_ByStr20_with__codehash_end, %TName_Option_ByStr20_with__codehash_end* %"$addr__164", i32 0, i32 0 + %"$addr__tag_166" = load i8, i8* %"$addr__tag_165", align 1 + switch i8 %"$addr__tag_166", label %"$empty_default_167" [ + i8 0, label %"$Some_168" + i8 1, label %"$None_227" + ], !dbg !44 + +"$Some_168": ; preds = %"$have_gas_161" + %"$addr__169" = bitcast %TName_Option_ByStr20_with__codehash_end* %"$addr__164" to %CName_Some_ByStr20_with__codehash_end* + %"$addr___gep_170" = getelementptr inbounds %CName_Some_ByStr20_with__codehash_end, %CName_Some_ByStr20_with__codehash_end* %"$addr__169", i32 0, i32 1 + %"$addr___load_171" = load [20 x i8], [20 x i8]* %"$addr___gep_170", align 1 %addr__ = alloca [20 x i8], align 1 - store [20 x i8] %"$addr___load_167", [20 x i8]* %addr__, align 1 + store [20 x i8] %"$addr___load_171", [20 x i8]* %addr__, align 1 %bar = alloca [32 x i8], align 1 - %"$execptr_load_169" = load i8*, i8** @_execptr, align 8 - %"$bar_addr___170" = alloca [20 x i8], align 1 - %"$addr___171" = load [20 x i8], [20 x i8]* %addr__, align 1 - store [20 x i8] %"$addr___171", [20 x i8]* %"$bar_addr___170", align 1 - %"$bar_call_172" = call i8* @_fetch_remote_field(i8* %"$execptr_load_169", [20 x i8]* %"$bar_addr___170", i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$_codehash_168", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Bystr32_33", i32 0, i8* null, i32 1), !dbg !20 - %"$bar_173" = bitcast i8* %"$bar_call_172" to [32 x i8]* - %"$bar_174" = load [32 x i8], [32 x i8]* %"$bar_173", align 1 - store [32 x i8] %"$bar_174", [32 x i8]* %bar, align 1 - %"$_literal_cost_bar_175" = alloca [32 x i8], align 1 - %"$bar_176" = load [32 x i8], [32 x i8]* %bar, align 1 - store [32 x i8] %"$bar_176", [32 x i8]* %"$_literal_cost_bar_175", align 1 - %"$$_literal_cost_bar_175_177" = bitcast [32 x i8]* %"$_literal_cost_bar_175" to i8* - %"$_literal_cost_call_178" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Bystr32_33", i8* %"$$_literal_cost_bar_175_177") - %"$gasadd_179" = add i64 %"$_literal_cost_call_178", 0 - %"$gasrem_180" = load i64, i64* @_gasrem, align 8 - %"$gascmp_181" = icmp ugt i64 %"$gasadd_179", %"$gasrem_180" - br i1 %"$gascmp_181", label %"$out_of_gas_182", label %"$have_gas_183" - -"$out_of_gas_182": ; preds = %"$Some_164" + call void @llvm.dbg.declare(metadata [32 x i8]* %bar, metadata !45, metadata !DIExpression()), !dbg !48 + %"$execptr_load_173" = load i8*, i8** @_execptr, align 8 + %"$bar_addr___174" = alloca [20 x i8], align 1 + %"$addr___175" = load [20 x i8], [20 x i8]* %addr__, align 1 + store [20 x i8] %"$addr___175", [20 x i8]* %"$bar_addr___174", align 1 + %"$bar_call_176" = call i8* @_fetch_remote_field(i8* %"$execptr_load_173", [20 x i8]* %"$bar_addr___174", i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$_codehash_172", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Bystr32_33", i32 0, i8* null, i32 1), !dbg !48 + %"$bar_177" = bitcast i8* %"$bar_call_176" to [32 x i8]* + %"$bar_178" = load [32 x i8], [32 x i8]* %"$bar_177", align 1 + store [32 x i8] %"$bar_178", [32 x i8]* %bar, align 1 + %"$_literal_cost_bar_179" = alloca [32 x i8], align 1 + %"$bar_180" = load [32 x i8], [32 x i8]* %bar, align 1 + store [32 x i8] %"$bar_180", [32 x i8]* %"$_literal_cost_bar_179", align 1 + %"$$_literal_cost_bar_179_181" = bitcast [32 x i8]* %"$_literal_cost_bar_179" to i8* + %"$_literal_cost_call_182" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Bystr32_33", i8* %"$$_literal_cost_bar_179_181") + %"$gasadd_183" = add i64 %"$_literal_cost_call_182", 0 + %"$gasrem_184" = load i64, i64* @_gasrem, align 8 + %"$gascmp_185" = icmp ugt i64 %"$gasadd_183", %"$gasrem_184" + br i1 %"$gascmp_185", label %"$out_of_gas_186", label %"$have_gas_187" + +"$out_of_gas_186": ; preds = %"$Some_168" call void @_out_of_gas() - br label %"$have_gas_183" + br label %"$have_gas_187" -"$have_gas_183": ; preds = %"$out_of_gas_182", %"$Some_164" - %"$consume_184" = sub i64 %"$gasrem_180", %"$gasadd_179" - store i64 %"$consume_184", i64* @_gasrem, 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" +"$have_gas_187": ; preds = %"$out_of_gas_186", %"$Some_168" + %"$consume_188" = sub i64 %"$gasrem_184", %"$gasadd_183" + store i64 %"$consume_188", i64* @_gasrem, 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_187": ; preds = %"$have_gas_183" +"$out_of_gas_191": ; preds = %"$have_gas_187" call void @_out_of_gas() - br label %"$have_gas_188" + br label %"$have_gas_192" -"$have_gas_188": ; preds = %"$out_of_gas_187", %"$have_gas_183" - %"$consume_189" = sub i64 %"$gasrem_185", 1 - store i64 %"$consume_189", i64* @_gasrem, align 8 +"$have_gas_192": ; preds = %"$out_of_gas_191", %"$have_gas_187" + %"$consume_193" = sub i64 %"$gasrem_189", 1 + store i64 %"$consume_193", i64* @_gasrem, align 8 %e = alloca 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" + call void @llvm.dbg.declare(metadata i8** %e, metadata !49, metadata !DIExpression()), !dbg !50 + %"$gasrem_194" = load i64, i64* @_gasrem, align 8 + %"$gascmp_195" = icmp ugt i64 1, %"$gasrem_194" + br i1 %"$gascmp_195", label %"$out_of_gas_196", label %"$have_gas_197" -"$out_of_gas_192": ; preds = %"$have_gas_188" +"$out_of_gas_196": ; preds = %"$have_gas_192" call void @_out_of_gas() - br label %"$have_gas_193" - -"$have_gas_193": ; preds = %"$out_of_gas_192", %"$have_gas_188" - %"$consume_194" = sub i64 %"$gasrem_190", 1 - store i64 %"$consume_194", i64* @_gasrem, align 8 - %"$msgobj_195_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$msgobj_195_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_195_salloc_load", i64 97) - %"$msgobj_195_salloc" = bitcast i8* %"$msgobj_195_salloc_salloc" to [97 x i8]* - %"$msgobj_195" = bitcast [97 x i8]* %"$msgobj_195_salloc" to i8* - store i8 2, i8* %"$msgobj_195", align 1 - %"$msgobj_fname_197" = getelementptr i8, i8* %"$msgobj_195", i32 1 - %"$msgobj_fname_198" = bitcast i8* %"$msgobj_fname_197" to %String* - store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_196", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_198", align 8 - %"$msgobj_td_199" = getelementptr i8, i8* %"$msgobj_195", i32 17 - %"$msgobj_td_200" = bitcast i8* %"$msgobj_td_199" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_String_19", %_TyDescrTy_Typ** %"$msgobj_td_200", align 8 - %"$msgobj_v_202" = getelementptr i8, i8* %"$msgobj_195", i32 25 - %"$msgobj_v_203" = bitcast i8* %"$msgobj_v_202" to %String* - store %String { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$stringlit_201", i32 0, i32 0), i32 7 }, %String* %"$msgobj_v_203", align 8 - %"$msgobj_fname_205" = getelementptr i8, i8* %"$msgobj_195", i32 41 - %"$msgobj_fname_206" = bitcast i8* %"$msgobj_fname_205" to %String* - store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_204", i32 0, i32 0), i32 3 }, %String* %"$msgobj_fname_206", align 8 - %"$msgobj_td_207" = getelementptr i8, i8* %"$msgobj_195", i32 57 - %"$msgobj_td_208" = bitcast i8* %"$msgobj_td_207" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Bystr32_33", %_TyDescrTy_Typ** %"$msgobj_td_208", align 8 - %"$bar_209" = load [32 x i8], [32 x i8]* %bar, align 1 - %"$msgobj_v_210" = getelementptr i8, i8* %"$msgobj_195", i32 65 - %"$msgobj_v_211" = bitcast i8* %"$msgobj_v_210" to [32 x i8]* - store [32 x i8] %"$bar_209", [32 x i8]* %"$msgobj_v_211", align 1 - store i8* %"$msgobj_195", i8** %e, align 8, !dbg !23 - %"$e_213" = load i8*, i8** %e, align 8 - %"$_literal_cost_call_215" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Event_25", i8* %"$e_213") - %"$gasrem_216" = load i64, i64* @_gasrem, align 8 - %"$gascmp_217" = icmp ugt i64 %"$_literal_cost_call_215", %"$gasrem_216" - br i1 %"$gascmp_217", label %"$out_of_gas_218", label %"$have_gas_219" - -"$out_of_gas_218": ; preds = %"$have_gas_193" + br label %"$have_gas_197" + +"$have_gas_197": ; preds = %"$out_of_gas_196", %"$have_gas_192" + %"$consume_198" = sub i64 %"$gasrem_194", 1 + store i64 %"$consume_198", i64* @_gasrem, align 8 + %"$msgobj_199_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$msgobj_199_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_199_salloc_load", i64 97) + %"$msgobj_199_salloc" = bitcast i8* %"$msgobj_199_salloc_salloc" to [97 x i8]* + %"$msgobj_199" = bitcast [97 x i8]* %"$msgobj_199_salloc" to i8* + store i8 2, i8* %"$msgobj_199", align 1 + %"$msgobj_fname_201" = getelementptr i8, i8* %"$msgobj_199", i32 1 + %"$msgobj_fname_202" = bitcast i8* %"$msgobj_fname_201" to %String* + store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_200", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_202", align 8 + %"$msgobj_td_203" = getelementptr i8, i8* %"$msgobj_199", i32 17 + %"$msgobj_td_204" = bitcast i8* %"$msgobj_td_203" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_String_19", %_TyDescrTy_Typ** %"$msgobj_td_204", align 8 + %"$msgobj_v_206" = getelementptr i8, i8* %"$msgobj_199", i32 25 + %"$msgobj_v_207" = bitcast i8* %"$msgobj_v_206" to %String* + store %String { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$stringlit_205", i32 0, i32 0), i32 7 }, %String* %"$msgobj_v_207", align 8 + %"$msgobj_fname_209" = getelementptr i8, i8* %"$msgobj_199", i32 41 + %"$msgobj_fname_210" = bitcast i8* %"$msgobj_fname_209" to %String* + store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_208", i32 0, i32 0), i32 3 }, %String* %"$msgobj_fname_210", align 8 + %"$msgobj_td_211" = getelementptr i8, i8* %"$msgobj_199", i32 57 + %"$msgobj_td_212" = bitcast i8* %"$msgobj_td_211" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Bystr32_33", %_TyDescrTy_Typ** %"$msgobj_td_212", align 8 + %"$bar_213" = load [32 x i8], [32 x i8]* %bar, align 1 + %"$msgobj_v_214" = getelementptr i8, i8* %"$msgobj_199", i32 65 + %"$msgobj_v_215" = bitcast i8* %"$msgobj_v_214" to [32 x i8]* + store [32 x i8] %"$bar_213", [32 x i8]* %"$msgobj_v_215", align 1 + store i8* %"$msgobj_199", i8** %e, align 8, !dbg !51 + %"$e_217" = load i8*, i8** %e, align 8 + %"$_literal_cost_call_219" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Event_25", i8* %"$e_217") + %"$gasrem_220" = load i64, i64* @_gasrem, align 8 + %"$gascmp_221" = icmp ugt i64 %"$_literal_cost_call_219", %"$gasrem_220" + br i1 %"$gascmp_221", label %"$out_of_gas_222", label %"$have_gas_223" + +"$out_of_gas_222": ; preds = %"$have_gas_197" call void @_out_of_gas() - br label %"$have_gas_219" - -"$have_gas_219": ; preds = %"$out_of_gas_218", %"$have_gas_193" - %"$consume_220" = sub i64 %"$gasrem_216", %"$_literal_cost_call_215" - store i64 %"$consume_220", i64* @_gasrem, align 8 - %"$execptr_load_221" = load i8*, i8** @_execptr, align 8 - %"$e_222" = load i8*, i8** %e, align 8 - call void @_event(i8* %"$execptr_load_221", %_TyDescrTy_Typ* @"$TyDescr_Event_25", i8* %"$e_222"), !dbg !24 - br label %"$matchsucc_159" - -"$None_223": ; preds = %"$have_gas_157" - %"$addr__224" = bitcast %TName_Option_ByStr20_with__codehash_end* %"$addr__160" to %CName_None_ByStr20_with__codehash_end* - %"$gasrem_225" = load i64, i64* @_gasrem, align 8 - %"$gascmp_226" = icmp ugt i64 1, %"$gasrem_225" - br i1 %"$gascmp_226", label %"$out_of_gas_227", label %"$have_gas_228" - -"$out_of_gas_227": ; preds = %"$None_223" + br label %"$have_gas_223" + +"$have_gas_223": ; preds = %"$out_of_gas_222", %"$have_gas_197" + %"$consume_224" = sub i64 %"$gasrem_220", %"$_literal_cost_call_219" + store i64 %"$consume_224", i64* @_gasrem, align 8 + %"$execptr_load_225" = load i8*, i8** @_execptr, align 8 + %"$e_226" = load i8*, i8** %e, align 8 + call void @_event(i8* %"$execptr_load_225", %_TyDescrTy_Typ* @"$TyDescr_Event_25", i8* %"$e_226"), !dbg !52 + br label %"$matchsucc_163" + +"$None_227": ; preds = %"$have_gas_161" + %"$addr__228" = bitcast %TName_Option_ByStr20_with__codehash_end* %"$addr__164" to %CName_None_ByStr20_with__codehash_end* + %"$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 = %"$None_227" call void @_out_of_gas() - br label %"$have_gas_228" + br label %"$have_gas_232" -"$have_gas_228": ; preds = %"$out_of_gas_227", %"$None_223" - %"$consume_229" = sub i64 %"$gasrem_225", 1 - store i64 %"$consume_229", i64* @_gasrem, align 8 +"$have_gas_232": ; preds = %"$out_of_gas_231", %"$None_227" + %"$consume_233" = sub i64 %"$gasrem_229", 1 + store i64 %"$consume_233", i64* @_gasrem, align 8 %e1 = alloca i8*, align 8 - %"$gasrem_230" = load i64, i64* @_gasrem, align 8 - %"$gascmp_231" = icmp ugt i64 1, %"$gasrem_230" - br i1 %"$gascmp_231", label %"$out_of_gas_232", label %"$have_gas_233" + call void @llvm.dbg.declare(metadata i8** %e1, metadata !53, metadata !DIExpression()), !dbg !55 + %"$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_232": ; preds = %"$have_gas_228" +"$out_of_gas_236": ; preds = %"$have_gas_232" call void @_out_of_gas() - br label %"$have_gas_233" - -"$have_gas_233": ; preds = %"$out_of_gas_232", %"$have_gas_228" - %"$consume_234" = sub i64 %"$gasrem_230", 1 - store i64 %"$consume_234", i64* @_gasrem, align 8 - %"$msgobj_235_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$msgobj_235_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_235_salloc_load", i64 41) - %"$msgobj_235_salloc" = bitcast i8* %"$msgobj_235_salloc_salloc" to [41 x i8]* - %"$msgobj_235" = bitcast [41 x i8]* %"$msgobj_235_salloc" to i8* - store i8 1, i8* %"$msgobj_235", align 1 - %"$msgobj_fname_237" = getelementptr i8, i8* %"$msgobj_235", i32 1 - %"$msgobj_fname_238" = bitcast i8* %"$msgobj_fname_237" to %String* - store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_236", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_238", align 8 - %"$msgobj_td_239" = getelementptr i8, i8* %"$msgobj_235", i32 17 - %"$msgobj_td_240" = bitcast i8* %"$msgobj_td_239" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_String_19", %_TyDescrTy_Typ** %"$msgobj_td_240", align 8 - %"$msgobj_v_242" = getelementptr i8, i8* %"$msgobj_235", i32 25 - %"$msgobj_v_243" = bitcast i8* %"$msgobj_v_242" to %String* - store %String { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$stringlit_241", i32 0, i32 0), i32 7 }, %String* %"$msgobj_v_243", align 8 - store i8* %"$msgobj_235", i8** %e1, align 8, !dbg !25 - %"$e_245" = load i8*, i8** %e1, align 8 - %"$_literal_cost_call_247" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Event_25", i8* %"$e_245") - %"$gasrem_248" = load i64, i64* @_gasrem, align 8 - %"$gascmp_249" = icmp ugt i64 %"$_literal_cost_call_247", %"$gasrem_248" - br i1 %"$gascmp_249", label %"$out_of_gas_250", label %"$have_gas_251" - -"$out_of_gas_250": ; preds = %"$have_gas_233" + 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 + %"$msgobj_239_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$msgobj_239_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_239_salloc_load", i64 41) + %"$msgobj_239_salloc" = bitcast i8* %"$msgobj_239_salloc_salloc" to [41 x i8]* + %"$msgobj_239" = bitcast [41 x i8]* %"$msgobj_239_salloc" to i8* + store i8 1, i8* %"$msgobj_239", align 1 + %"$msgobj_fname_241" = getelementptr i8, i8* %"$msgobj_239", i32 1 + %"$msgobj_fname_242" = bitcast i8* %"$msgobj_fname_241" to %String* + store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_240", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_242", align 8 + %"$msgobj_td_243" = getelementptr i8, i8* %"$msgobj_239", i32 17 + %"$msgobj_td_244" = bitcast i8* %"$msgobj_td_243" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_String_19", %_TyDescrTy_Typ** %"$msgobj_td_244", align 8 + %"$msgobj_v_246" = getelementptr i8, i8* %"$msgobj_239", i32 25 + %"$msgobj_v_247" = bitcast i8* %"$msgobj_v_246" to %String* + store %String { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$stringlit_245", i32 0, i32 0), i32 7 }, %String* %"$msgobj_v_247", align 8 + store i8* %"$msgobj_239", i8** %e1, align 8, !dbg !56 + %"$e_249" = load i8*, i8** %e1, align 8 + %"$_literal_cost_call_251" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Event_25", i8* %"$e_249") + %"$gasrem_252" = load i64, i64* @_gasrem, align 8 + %"$gascmp_253" = icmp ugt i64 %"$_literal_cost_call_251", %"$gasrem_252" + br i1 %"$gascmp_253", label %"$out_of_gas_254", label %"$have_gas_255" + +"$out_of_gas_254": ; preds = %"$have_gas_237" call void @_out_of_gas() - br label %"$have_gas_251" + br label %"$have_gas_255" -"$have_gas_251": ; preds = %"$out_of_gas_250", %"$have_gas_233" - %"$consume_252" = sub i64 %"$gasrem_248", %"$_literal_cost_call_247" - store i64 %"$consume_252", i64* @_gasrem, align 8 - %"$execptr_load_253" = load i8*, i8** @_execptr, align 8 - %"$e_254" = load i8*, i8** %e1, align 8 - call void @_event(i8* %"$execptr_load_253", %_TyDescrTy_Typ* @"$TyDescr_Event_25", i8* %"$e_254"), !dbg !27 - br label %"$matchsucc_159" +"$have_gas_255": ; preds = %"$out_of_gas_254", %"$have_gas_237" + %"$consume_256" = sub i64 %"$gasrem_252", %"$_literal_cost_call_251" + store i64 %"$consume_256", i64* @_gasrem, align 8 + %"$execptr_load_257" = load i8*, i8** @_execptr, align 8 + %"$e_258" = load i8*, i8** %e1, align 8 + call void @_event(i8* %"$execptr_load_257", %_TyDescrTy_Typ* @"$TyDescr_Event_25", i8* %"$e_258"), !dbg !57 + br label %"$matchsucc_163" -"$empty_default_163": ; preds = %"$have_gas_157" - br label %"$matchsucc_159" +"$empty_default_167": ; preds = %"$have_gas_161" + br label %"$matchsucc_163" -"$matchsucc_159": ; preds = %"$have_gas_251", %"$have_gas_219", %"$empty_default_163" +"$matchsucc_163": ; preds = %"$have_gas_255", %"$have_gas_223", %"$empty_default_167" ret void } declare i8* @_dynamic_typecast(i8*, [20 x i8]*, %_TyDescrTy_Typ*) -define void @foo2(i8* %0) !dbg !28 { +define void @foo2(i8* %0) !dbg !58 { entry: - %"$_amount_256" = getelementptr i8, i8* %0, i32 0 - %"$_amount_257" = bitcast i8* %"$_amount_256" to %Uint128* - %_amount = load %Uint128, %Uint128* %"$_amount_257", align 8 - %"$_origin_258" = getelementptr i8, i8* %0, i32 16 - %"$_origin_259" = bitcast i8* %"$_origin_258" to [20 x i8]* - %"$_sender_260" = getelementptr i8, i8* %0, i32 36 - %"$_sender_261" = bitcast i8* %"$_sender_260" to [20 x i8]* - %"$addr_262" = getelementptr i8, i8* %0, i32 56 - %"$addr_263" = bitcast i8* %"$addr_262" to [20 x i8]* - call void @"$foo2_141"(%Uint128 %_amount, [20 x i8]* %"$_origin_259", [20 x i8]* %"$_sender_261", [20 x i8]* %"$addr_263"), !dbg !29 + %"$_amount_264" = getelementptr i8, i8* %0, i32 0 + %"$_amount_265" = bitcast i8* %"$_amount_264" to %Uint128* + %_amount = load %Uint128, %Uint128* %"$_amount_265", align 8 + %"$_origin_266" = getelementptr i8, i8* %0, i32 16 + %"$_origin_267" = bitcast i8* %"$_origin_266" to [20 x i8]* + %"$_sender_268" = getelementptr i8, i8* %0, i32 36 + %"$_sender_269" = bitcast i8* %"$_sender_268" to [20 x i8]* + %"$addr_270" = getelementptr i8, i8* %0, i32 56 + %"$addr_271" = bitcast i8* %"$addr_270" to [20 x i8]* + call void @"$foo2_145"(%Uint128 %_amount, [20 x i8]* %"$_origin_267", [20 x i8]* %"$_sender_269", [20 x i8]* %"$addr_271"), !dbg !59 ret void } -define internal void @"$foo3_264"(%Uint128 %_amount, [20 x i8]* %"$_origin_265", [20 x i8]* %"$_sender_266", [20 x i8]* %"$addr_267") !dbg !30 { +define internal void @"$foo3_272"(%Uint128 %_amount, [20 x i8]* %"$_origin_273", [20 x i8]* %"$_sender_274", [20 x i8]* %"$addr_275") !dbg !60 { entry: - %_origin = load [20 x i8], [20 x i8]* %"$_origin_265", align 1 - %_sender = load [20 x i8], [20 x i8]* %"$_sender_266", align 1 - %addr = load [20 x i8], [20 x i8]* %"$addr_267", align 1 + %"$addr_333" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$addr_275", [20 x i8]** %"$addr_333", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$addr_333", metadata !61, metadata !DIExpression()), !dbg !63 + %"$_sender_332" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_sender_274", [20 x i8]** %"$_sender_332", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_sender_332", metadata !64, metadata !DIExpression()), !dbg !65 + %"$_origin_331" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_origin_273", [20 x i8]** %"$_origin_331", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_origin_331", metadata !66, metadata !DIExpression()), !dbg !65 + %"$_amount_330" = alloca %Uint128, align 8 + store %Uint128 %_amount, %Uint128* %"$_amount_330", align 8 + call void @llvm.dbg.declare(metadata %Uint128* %"$_amount_330", metadata !67, metadata !DIExpression()), !dbg !65 + %_origin = load [20 x i8], [20 x i8]* %"$_origin_273", align 1 + %_sender = load [20 x i8], [20 x i8]* %"$_sender_274", align 1 + %addr = load [20 x i8], [20 x i8]* %"$addr_275", align 1 %bar = alloca [32 x i8], align 1 - %"$execptr_load_269" = load i8*, i8** @_execptr, align 8 - %"$bar_addr_270" = alloca [20 x i8], align 1 - store [20 x i8] %addr, [20 x i8]* %"$bar_addr_270", align 1 - %"$bar_call_271" = call i8* @_fetch_remote_field(i8* %"$execptr_load_269", [20 x i8]* %"$bar_addr_270", i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$_codehash_268", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Bystr32_33", i32 0, i8* null, i32 1), !dbg !31 - %"$bar_272" = bitcast i8* %"$bar_call_271" to [32 x i8]* - %"$bar_273" = load [32 x i8], [32 x i8]* %"$bar_272", align 1 - store [32 x i8] %"$bar_273", [32 x i8]* %bar, align 1 - %"$_literal_cost_bar_274" = alloca [32 x i8], align 1 - %"$bar_275" = load [32 x i8], [32 x i8]* %bar, align 1 - store [32 x i8] %"$bar_275", [32 x i8]* %"$_literal_cost_bar_274", align 1 - %"$$_literal_cost_bar_274_276" = bitcast [32 x i8]* %"$_literal_cost_bar_274" to i8* - %"$_literal_cost_call_277" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Bystr32_33", i8* %"$$_literal_cost_bar_274_276") - %"$gasadd_278" = add i64 %"$_literal_cost_call_277", 0 - %"$gasrem_279" = load i64, i64* @_gasrem, align 8 - %"$gascmp_280" = icmp ugt i64 %"$gasadd_278", %"$gasrem_279" - br i1 %"$gascmp_280", label %"$out_of_gas_281", label %"$have_gas_282" - -"$out_of_gas_281": ; preds = %entry + call void @llvm.dbg.declare(metadata [32 x i8]* %bar, metadata !68, metadata !DIExpression()), !dbg !69 + %"$execptr_load_277" = load i8*, i8** @_execptr, align 8 + %"$bar_addr_278" = alloca [20 x i8], align 1 + store [20 x i8] %addr, [20 x i8]* %"$bar_addr_278", align 1 + %"$bar_call_279" = call i8* @_fetch_remote_field(i8* %"$execptr_load_277", [20 x i8]* %"$bar_addr_278", i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$_codehash_276", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Bystr32_33", i32 0, i8* null, i32 1), !dbg !69 + %"$bar_280" = bitcast i8* %"$bar_call_279" to [32 x i8]* + %"$bar_281" = load [32 x i8], [32 x i8]* %"$bar_280", align 1 + store [32 x i8] %"$bar_281", [32 x i8]* %bar, align 1 + %"$_literal_cost_bar_282" = alloca [32 x i8], align 1 + %"$bar_283" = load [32 x i8], [32 x i8]* %bar, align 1 + store [32 x i8] %"$bar_283", [32 x i8]* %"$_literal_cost_bar_282", align 1 + %"$$_literal_cost_bar_282_284" = bitcast [32 x i8]* %"$_literal_cost_bar_282" to i8* + %"$_literal_cost_call_285" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Bystr32_33", i8* %"$$_literal_cost_bar_282_284") + %"$gasadd_286" = add i64 %"$_literal_cost_call_285", 0 + %"$gasrem_287" = load i64, i64* @_gasrem, align 8 + %"$gascmp_288" = icmp ugt i64 %"$gasadd_286", %"$gasrem_287" + br i1 %"$gascmp_288", label %"$out_of_gas_289", label %"$have_gas_290" + +"$out_of_gas_289": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_282" + br label %"$have_gas_290" -"$have_gas_282": ; preds = %"$out_of_gas_281", %entry - %"$consume_283" = sub i64 %"$gasrem_279", %"$gasadd_278" - store i64 %"$consume_283", i64* @_gasrem, 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" +"$have_gas_290": ; preds = %"$out_of_gas_289", %entry + %"$consume_291" = sub i64 %"$gasrem_287", %"$gasadd_286" + store i64 %"$consume_291", i64* @_gasrem, align 8 + %"$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_286": ; preds = %"$have_gas_282" +"$out_of_gas_294": ; preds = %"$have_gas_290" call void @_out_of_gas() - br label %"$have_gas_287" + br label %"$have_gas_295" -"$have_gas_287": ; preds = %"$out_of_gas_286", %"$have_gas_282" - %"$consume_288" = sub i64 %"$gasrem_284", 1 - store i64 %"$consume_288", i64* @_gasrem, align 8 +"$have_gas_295": ; preds = %"$out_of_gas_294", %"$have_gas_290" + %"$consume_296" = sub i64 %"$gasrem_292", 1 + store i64 %"$consume_296", i64* @_gasrem, align 8 %e = alloca i8*, 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" + call void @llvm.dbg.declare(metadata i8** %e, metadata !70, metadata !DIExpression()), !dbg !71 + %"$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_291": ; preds = %"$have_gas_287" +"$out_of_gas_299": ; preds = %"$have_gas_295" 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 - %"$msgobj_294_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$msgobj_294_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_294_salloc_load", i64 97) - %"$msgobj_294_salloc" = bitcast i8* %"$msgobj_294_salloc_salloc" to [97 x i8]* - %"$msgobj_294" = bitcast [97 x i8]* %"$msgobj_294_salloc" to i8* - store i8 2, i8* %"$msgobj_294", align 1 - %"$msgobj_fname_296" = getelementptr i8, i8* %"$msgobj_294", i32 1 - %"$msgobj_fname_297" = bitcast i8* %"$msgobj_fname_296" to %String* - store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_295", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_297", align 8 - %"$msgobj_td_298" = getelementptr i8, i8* %"$msgobj_294", i32 17 - %"$msgobj_td_299" = bitcast i8* %"$msgobj_td_298" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_String_19", %_TyDescrTy_Typ** %"$msgobj_td_299", align 8 - %"$msgobj_v_301" = getelementptr i8, i8* %"$msgobj_294", i32 25 - %"$msgobj_v_302" = bitcast i8* %"$msgobj_v_301" to %String* - store %String { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$stringlit_300", i32 0, i32 0), i32 7 }, %String* %"$msgobj_v_302", align 8 - %"$msgobj_fname_304" = getelementptr i8, i8* %"$msgobj_294", i32 41 + 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 + %"$msgobj_302_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$msgobj_302_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_302_salloc_load", i64 97) + %"$msgobj_302_salloc" = bitcast i8* %"$msgobj_302_salloc_salloc" to [97 x i8]* + %"$msgobj_302" = bitcast [97 x i8]* %"$msgobj_302_salloc" to i8* + store i8 2, i8* %"$msgobj_302", align 1 + %"$msgobj_fname_304" = getelementptr i8, i8* %"$msgobj_302", i32 1 %"$msgobj_fname_305" = bitcast i8* %"$msgobj_fname_304" to %String* - store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_303", i32 0, i32 0), i32 3 }, %String* %"$msgobj_fname_305", align 8 - %"$msgobj_td_306" = getelementptr i8, i8* %"$msgobj_294", i32 57 + store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_303", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_305", align 8 + %"$msgobj_td_306" = getelementptr i8, i8* %"$msgobj_302", i32 17 %"$msgobj_td_307" = bitcast i8* %"$msgobj_td_306" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Bystr32_33", %_TyDescrTy_Typ** %"$msgobj_td_307", align 8 - %"$bar_308" = load [32 x i8], [32 x i8]* %bar, align 1 - %"$msgobj_v_309" = getelementptr i8, i8* %"$msgobj_294", i32 65 - %"$msgobj_v_310" = bitcast i8* %"$msgobj_v_309" to [32 x i8]* - store [32 x i8] %"$bar_308", [32 x i8]* %"$msgobj_v_310", align 1 - store i8* %"$msgobj_294", i8** %e, align 8, !dbg !32 - %"$e_312" = load i8*, i8** %e, align 8 - %"$_literal_cost_call_314" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Event_25", i8* %"$e_312") - %"$gasrem_315" = load i64, i64* @_gasrem, align 8 - %"$gascmp_316" = icmp ugt i64 %"$_literal_cost_call_314", %"$gasrem_315" - br i1 %"$gascmp_316", label %"$out_of_gas_317", label %"$have_gas_318" - -"$out_of_gas_317": ; preds = %"$have_gas_292" + store %_TyDescrTy_Typ* @"$TyDescr_String_19", %_TyDescrTy_Typ** %"$msgobj_td_307", align 8 + %"$msgobj_v_309" = getelementptr i8, i8* %"$msgobj_302", i32 25 + %"$msgobj_v_310" = bitcast i8* %"$msgobj_v_309" to %String* + store %String { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$stringlit_308", i32 0, i32 0), i32 7 }, %String* %"$msgobj_v_310", align 8 + %"$msgobj_fname_312" = getelementptr i8, i8* %"$msgobj_302", i32 41 + %"$msgobj_fname_313" = bitcast i8* %"$msgobj_fname_312" to %String* + store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_311", i32 0, i32 0), i32 3 }, %String* %"$msgobj_fname_313", align 8 + %"$msgobj_td_314" = getelementptr i8, i8* %"$msgobj_302", i32 57 + %"$msgobj_td_315" = bitcast i8* %"$msgobj_td_314" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Bystr32_33", %_TyDescrTy_Typ** %"$msgobj_td_315", align 8 + %"$bar_316" = load [32 x i8], [32 x i8]* %bar, align 1 + %"$msgobj_v_317" = getelementptr i8, i8* %"$msgobj_302", i32 65 + %"$msgobj_v_318" = bitcast i8* %"$msgobj_v_317" to [32 x i8]* + store [32 x i8] %"$bar_316", [32 x i8]* %"$msgobj_v_318", align 1 + store i8* %"$msgobj_302", i8** %e, align 8, !dbg !72 + %"$e_320" = load i8*, i8** %e, align 8 + %"$_literal_cost_call_322" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Event_25", i8* %"$e_320") + %"$gasrem_323" = load i64, i64* @_gasrem, align 8 + %"$gascmp_324" = icmp ugt i64 %"$_literal_cost_call_322", %"$gasrem_323" + br i1 %"$gascmp_324", label %"$out_of_gas_325", label %"$have_gas_326" + +"$out_of_gas_325": ; preds = %"$have_gas_300" call void @_out_of_gas() - br label %"$have_gas_318" - -"$have_gas_318": ; preds = %"$out_of_gas_317", %"$have_gas_292" - %"$consume_319" = sub i64 %"$gasrem_315", %"$_literal_cost_call_314" - store i64 %"$consume_319", i64* @_gasrem, align 8 - %"$execptr_load_320" = load i8*, i8** @_execptr, align 8 - %"$e_321" = load i8*, i8** %e, align 8 - call void @_event(i8* %"$execptr_load_320", %_TyDescrTy_Typ* @"$TyDescr_Event_25", i8* %"$e_321"), !dbg !33 + br label %"$have_gas_326" + +"$have_gas_326": ; preds = %"$out_of_gas_325", %"$have_gas_300" + %"$consume_327" = sub i64 %"$gasrem_323", %"$_literal_cost_call_322" + store i64 %"$consume_327", i64* @_gasrem, align 8 + %"$execptr_load_328" = load i8*, i8** @_execptr, align 8 + %"$e_329" = load i8*, i8** %e, align 8 + call void @_event(i8* %"$execptr_load_328", %_TyDescrTy_Typ* @"$TyDescr_Event_25", i8* %"$e_329"), !dbg !73 ret void } -define void @foo3(i8* %0) !dbg !34 { +define void @foo3(i8* %0) !dbg !74 { entry: - %"$_amount_323" = getelementptr i8, i8* %0, i32 0 - %"$_amount_324" = bitcast i8* %"$_amount_323" to %Uint128* - %_amount = load %Uint128, %Uint128* %"$_amount_324", align 8 - %"$_origin_325" = getelementptr i8, i8* %0, i32 16 - %"$_origin_326" = bitcast i8* %"$_origin_325" to [20 x i8]* - %"$_sender_327" = getelementptr i8, i8* %0, i32 36 - %"$_sender_328" = bitcast i8* %"$_sender_327" to [20 x i8]* - %"$addr_329" = getelementptr i8, i8* %0, i32 56 - %"$addr_330" = bitcast i8* %"$addr_329" to [20 x i8]* - call void @"$foo3_264"(%Uint128 %_amount, [20 x i8]* %"$_origin_326", [20 x i8]* %"$_sender_328", [20 x i8]* %"$addr_330"), !dbg !35 + %"$_amount_335" = getelementptr i8, i8* %0, i32 0 + %"$_amount_336" = bitcast i8* %"$_amount_335" to %Uint128* + %_amount = load %Uint128, %Uint128* %"$_amount_336", align 8 + %"$_origin_337" = getelementptr i8, i8* %0, i32 16 + %"$_origin_338" = bitcast i8* %"$_origin_337" to [20 x i8]* + %"$_sender_339" = getelementptr i8, i8* %0, i32 36 + %"$_sender_340" = bitcast i8* %"$_sender_339" to [20 x i8]* + %"$addr_341" = getelementptr i8, i8* %0, i32 56 + %"$addr_342" = bitcast i8* %"$addr_341" to [20 x i8]* + call void @"$foo3_272"(%Uint128 %_amount, [20 x i8]* %"$_origin_338", [20 x i8]* %"$_sender_340", [20 x i8]* %"$addr_342"), !dbg !75 ret void } -define internal void @"$foo4_331"(%Uint128 %_amount, [20 x i8]* %"$_origin_332", [20 x i8]* %"$_sender_333", [20 x i8]* %"$addr_334") !dbg !36 { +define internal void @"$foo4_343"(%Uint128 %_amount, [20 x i8]* %"$_origin_344", [20 x i8]* %"$_sender_345", [20 x i8]* %"$addr_346") !dbg !76 { entry: - %_origin = load [20 x i8], [20 x i8]* %"$_origin_332", align 1 - %_sender = load [20 x i8], [20 x i8]* %"$_sender_333", align 1 - %addr = load [20 x i8], [20 x i8]* %"$addr_334", align 1 + %"$addr_404" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$addr_346", [20 x i8]** %"$addr_404", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$addr_404", metadata !77, metadata !DIExpression()), !dbg !79 + %"$_sender_403" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_sender_345", [20 x i8]** %"$_sender_403", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_sender_403", metadata !80, metadata !DIExpression()), !dbg !81 + %"$_origin_402" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_origin_344", [20 x i8]** %"$_origin_402", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_origin_402", metadata !82, metadata !DIExpression()), !dbg !81 + %"$_amount_401" = alloca %Uint128, align 8 + store %Uint128 %_amount, %Uint128* %"$_amount_401", align 8 + call void @llvm.dbg.declare(metadata %Uint128* %"$_amount_401", metadata !83, metadata !DIExpression()), !dbg !81 + %_origin = load [20 x i8], [20 x i8]* %"$_origin_344", align 1 + %_sender = load [20 x i8], [20 x i8]* %"$_sender_345", align 1 + %addr = load [20 x i8], [20 x i8]* %"$addr_346", align 1 %bar = alloca [32 x i8], align 1 - %"$execptr_load_336" = load i8*, i8** @_execptr, align 8 - %"$bar_addr_337" = alloca [20 x i8], align 1 - store [20 x i8] %addr, [20 x i8]* %"$bar_addr_337", align 1 - %"$bar_call_338" = call i8* @_fetch_remote_field(i8* %"$execptr_load_336", [20 x i8]* %"$bar_addr_337", i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$_codehash_335", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Bystr32_33", i32 0, i8* null, i32 1), !dbg !37 - %"$bar_339" = bitcast i8* %"$bar_call_338" to [32 x i8]* - %"$bar_340" = load [32 x i8], [32 x i8]* %"$bar_339", align 1 - store [32 x i8] %"$bar_340", [32 x i8]* %bar, align 1 - %"$_literal_cost_bar_341" = alloca [32 x i8], align 1 - %"$bar_342" = load [32 x i8], [32 x i8]* %bar, align 1 - store [32 x i8] %"$bar_342", [32 x i8]* %"$_literal_cost_bar_341", align 1 - %"$$_literal_cost_bar_341_343" = bitcast [32 x i8]* %"$_literal_cost_bar_341" to i8* - %"$_literal_cost_call_344" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Bystr32_33", i8* %"$$_literal_cost_bar_341_343") - %"$gasadd_345" = add i64 %"$_literal_cost_call_344", 0 - %"$gasrem_346" = load i64, i64* @_gasrem, align 8 - %"$gascmp_347" = icmp ugt i64 %"$gasadd_345", %"$gasrem_346" - br i1 %"$gascmp_347", label %"$out_of_gas_348", label %"$have_gas_349" - -"$out_of_gas_348": ; preds = %entry + call void @llvm.dbg.declare(metadata [32 x i8]* %bar, metadata !84, metadata !DIExpression()), !dbg !85 + %"$execptr_load_348" = load i8*, i8** @_execptr, align 8 + %"$bar_addr_349" = alloca [20 x i8], align 1 + store [20 x i8] %addr, [20 x i8]* %"$bar_addr_349", align 1 + %"$bar_call_350" = call i8* @_fetch_remote_field(i8* %"$execptr_load_348", [20 x i8]* %"$bar_addr_349", i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$_codehash_347", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Bystr32_33", i32 0, i8* null, i32 1), !dbg !85 + %"$bar_351" = bitcast i8* %"$bar_call_350" to [32 x i8]* + %"$bar_352" = load [32 x i8], [32 x i8]* %"$bar_351", align 1 + store [32 x i8] %"$bar_352", [32 x i8]* %bar, align 1 + %"$_literal_cost_bar_353" = alloca [32 x i8], align 1 + %"$bar_354" = load [32 x i8], [32 x i8]* %bar, align 1 + store [32 x i8] %"$bar_354", [32 x i8]* %"$_literal_cost_bar_353", align 1 + %"$$_literal_cost_bar_353_355" = bitcast [32 x i8]* %"$_literal_cost_bar_353" to i8* + %"$_literal_cost_call_356" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Bystr32_33", i8* %"$$_literal_cost_bar_353_355") + %"$gasadd_357" = add i64 %"$_literal_cost_call_356", 0 + %"$gasrem_358" = load i64, i64* @_gasrem, align 8 + %"$gascmp_359" = icmp ugt i64 %"$gasadd_357", %"$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_349" + br label %"$have_gas_361" -"$have_gas_349": ; preds = %"$out_of_gas_348", %entry - %"$consume_350" = sub i64 %"$gasrem_346", %"$gasadd_345" - store i64 %"$consume_350", i64* @_gasrem, align 8 - %"$gasrem_351" = load i64, i64* @_gasrem, align 8 - %"$gascmp_352" = icmp ugt i64 1, %"$gasrem_351" - br i1 %"$gascmp_352", label %"$out_of_gas_353", label %"$have_gas_354" +"$have_gas_361": ; preds = %"$out_of_gas_360", %entry + %"$consume_362" = sub i64 %"$gasrem_358", %"$gasadd_357" + store i64 %"$consume_362", i64* @_gasrem, 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_353": ; preds = %"$have_gas_349" +"$out_of_gas_365": ; preds = %"$have_gas_361" call void @_out_of_gas() - br label %"$have_gas_354" + br label %"$have_gas_366" -"$have_gas_354": ; preds = %"$out_of_gas_353", %"$have_gas_349" - %"$consume_355" = sub i64 %"$gasrem_351", 1 - store i64 %"$consume_355", i64* @_gasrem, align 8 +"$have_gas_366": ; preds = %"$out_of_gas_365", %"$have_gas_361" + %"$consume_367" = sub i64 %"$gasrem_363", 1 + store i64 %"$consume_367", i64* @_gasrem, align 8 %e = alloca 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" + call void @llvm.dbg.declare(metadata i8** %e, metadata !86, metadata !DIExpression()), !dbg !87 + %"$gasrem_368" = load i64, i64* @_gasrem, align 8 + %"$gascmp_369" = icmp ugt i64 1, %"$gasrem_368" + br i1 %"$gascmp_369", label %"$out_of_gas_370", label %"$have_gas_371" -"$out_of_gas_358": ; preds = %"$have_gas_354" +"$out_of_gas_370": ; preds = %"$have_gas_366" call void @_out_of_gas() - br label %"$have_gas_359" - -"$have_gas_359": ; preds = %"$out_of_gas_358", %"$have_gas_354" - %"$consume_360" = sub i64 %"$gasrem_356", 1 - store i64 %"$consume_360", i64* @_gasrem, align 8 - %"$msgobj_361_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$msgobj_361_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_361_salloc_load", i64 97) - %"$msgobj_361_salloc" = bitcast i8* %"$msgobj_361_salloc_salloc" to [97 x i8]* - %"$msgobj_361" = bitcast [97 x i8]* %"$msgobj_361_salloc" to i8* - store i8 2, i8* %"$msgobj_361", align 1 - %"$msgobj_fname_363" = getelementptr i8, i8* %"$msgobj_361", i32 1 - %"$msgobj_fname_364" = bitcast i8* %"$msgobj_fname_363" to %String* - store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_362", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_364", align 8 - %"$msgobj_td_365" = getelementptr i8, i8* %"$msgobj_361", i32 17 - %"$msgobj_td_366" = bitcast i8* %"$msgobj_td_365" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_String_19", %_TyDescrTy_Typ** %"$msgobj_td_366", align 8 - %"$msgobj_v_368" = getelementptr i8, i8* %"$msgobj_361", i32 25 - %"$msgobj_v_369" = bitcast i8* %"$msgobj_v_368" to %String* - store %String { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$stringlit_367", i32 0, i32 0), i32 7 }, %String* %"$msgobj_v_369", align 8 - %"$msgobj_fname_371" = getelementptr i8, i8* %"$msgobj_361", i32 41 - %"$msgobj_fname_372" = bitcast i8* %"$msgobj_fname_371" to %String* - store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_370", i32 0, i32 0), i32 3 }, %String* %"$msgobj_fname_372", align 8 - %"$msgobj_td_373" = getelementptr i8, i8* %"$msgobj_361", i32 57 - %"$msgobj_td_374" = bitcast i8* %"$msgobj_td_373" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Bystr32_33", %_TyDescrTy_Typ** %"$msgobj_td_374", align 8 - %"$bar_375" = load [32 x i8], [32 x i8]* %bar, align 1 - %"$msgobj_v_376" = getelementptr i8, i8* %"$msgobj_361", i32 65 - %"$msgobj_v_377" = bitcast i8* %"$msgobj_v_376" to [32 x i8]* - store [32 x i8] %"$bar_375", [32 x i8]* %"$msgobj_v_377", align 1 - store i8* %"$msgobj_361", i8** %e, align 8, !dbg !38 - %"$e_379" = load i8*, i8** %e, align 8 - %"$_literal_cost_call_381" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Event_25", i8* %"$e_379") - %"$gasrem_382" = load i64, i64* @_gasrem, align 8 - %"$gascmp_383" = icmp ugt i64 %"$_literal_cost_call_381", %"$gasrem_382" - br i1 %"$gascmp_383", label %"$out_of_gas_384", label %"$have_gas_385" - -"$out_of_gas_384": ; preds = %"$have_gas_359" + br label %"$have_gas_371" + +"$have_gas_371": ; preds = %"$out_of_gas_370", %"$have_gas_366" + %"$consume_372" = sub i64 %"$gasrem_368", 1 + store i64 %"$consume_372", i64* @_gasrem, align 8 + %"$msgobj_373_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$msgobj_373_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_373_salloc_load", i64 97) + %"$msgobj_373_salloc" = bitcast i8* %"$msgobj_373_salloc_salloc" to [97 x i8]* + %"$msgobj_373" = bitcast [97 x i8]* %"$msgobj_373_salloc" to i8* + store i8 2, i8* %"$msgobj_373", align 1 + %"$msgobj_fname_375" = getelementptr i8, i8* %"$msgobj_373", i32 1 + %"$msgobj_fname_376" = bitcast i8* %"$msgobj_fname_375" to %String* + store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_374", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_376", align 8 + %"$msgobj_td_377" = getelementptr i8, i8* %"$msgobj_373", i32 17 + %"$msgobj_td_378" = bitcast i8* %"$msgobj_td_377" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_String_19", %_TyDescrTy_Typ** %"$msgobj_td_378", align 8 + %"$msgobj_v_380" = getelementptr i8, i8* %"$msgobj_373", i32 25 + %"$msgobj_v_381" = bitcast i8* %"$msgobj_v_380" to %String* + store %String { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$stringlit_379", i32 0, i32 0), i32 7 }, %String* %"$msgobj_v_381", align 8 + %"$msgobj_fname_383" = getelementptr i8, i8* %"$msgobj_373", i32 41 + %"$msgobj_fname_384" = bitcast i8* %"$msgobj_fname_383" to %String* + store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_382", i32 0, i32 0), i32 3 }, %String* %"$msgobj_fname_384", align 8 + %"$msgobj_td_385" = getelementptr i8, i8* %"$msgobj_373", i32 57 + %"$msgobj_td_386" = bitcast i8* %"$msgobj_td_385" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Bystr32_33", %_TyDescrTy_Typ** %"$msgobj_td_386", align 8 + %"$bar_387" = load [32 x i8], [32 x i8]* %bar, align 1 + %"$msgobj_v_388" = getelementptr i8, i8* %"$msgobj_373", i32 65 + %"$msgobj_v_389" = bitcast i8* %"$msgobj_v_388" to [32 x i8]* + store [32 x i8] %"$bar_387", [32 x i8]* %"$msgobj_v_389", align 1 + store i8* %"$msgobj_373", i8** %e, align 8, !dbg !88 + %"$e_391" = load i8*, i8** %e, align 8 + %"$_literal_cost_call_393" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Event_25", i8* %"$e_391") + %"$gasrem_394" = load i64, i64* @_gasrem, align 8 + %"$gascmp_395" = icmp ugt i64 %"$_literal_cost_call_393", %"$gasrem_394" + br i1 %"$gascmp_395", label %"$out_of_gas_396", label %"$have_gas_397" + +"$out_of_gas_396": ; preds = %"$have_gas_371" call void @_out_of_gas() - br label %"$have_gas_385" - -"$have_gas_385": ; preds = %"$out_of_gas_384", %"$have_gas_359" - %"$consume_386" = sub i64 %"$gasrem_382", %"$_literal_cost_call_381" - store i64 %"$consume_386", i64* @_gasrem, align 8 - %"$execptr_load_387" = load i8*, i8** @_execptr, align 8 - %"$e_388" = load i8*, i8** %e, align 8 - call void @_event(i8* %"$execptr_load_387", %_TyDescrTy_Typ* @"$TyDescr_Event_25", i8* %"$e_388"), !dbg !39 + br label %"$have_gas_397" + +"$have_gas_397": ; preds = %"$out_of_gas_396", %"$have_gas_371" + %"$consume_398" = sub i64 %"$gasrem_394", %"$_literal_cost_call_393" + store i64 %"$consume_398", i64* @_gasrem, align 8 + %"$execptr_load_399" = load i8*, i8** @_execptr, align 8 + %"$e_400" = load i8*, i8** %e, align 8 + call void @_event(i8* %"$execptr_load_399", %_TyDescrTy_Typ* @"$TyDescr_Event_25", i8* %"$e_400"), !dbg !89 ret void } -define void @foo4(i8* %0) !dbg !40 { +define void @foo4(i8* %0) !dbg !90 { entry: - %"$_amount_390" = getelementptr i8, i8* %0, i32 0 - %"$_amount_391" = bitcast i8* %"$_amount_390" to %Uint128* - %_amount = load %Uint128, %Uint128* %"$_amount_391", align 8 - %"$_origin_392" = getelementptr i8, i8* %0, i32 16 - %"$_origin_393" = bitcast i8* %"$_origin_392" to [20 x i8]* - %"$_sender_394" = getelementptr i8, i8* %0, i32 36 - %"$_sender_395" = bitcast i8* %"$_sender_394" to [20 x i8]* - %"$addr_396" = getelementptr i8, i8* %0, i32 56 - %"$addr_397" = bitcast i8* %"$addr_396" to [20 x i8]* - call void @"$foo4_331"(%Uint128 %_amount, [20 x i8]* %"$_origin_393", [20 x i8]* %"$_sender_395", [20 x i8]* %"$addr_397"), !dbg !41 + %"$_amount_406" = getelementptr i8, i8* %0, i32 0 + %"$_amount_407" = bitcast i8* %"$_amount_406" to %Uint128* + %_amount = load %Uint128, %Uint128* %"$_amount_407", align 8 + %"$_origin_408" = getelementptr i8, i8* %0, i32 16 + %"$_origin_409" = bitcast i8* %"$_origin_408" to [20 x i8]* + %"$_sender_410" = getelementptr i8, i8* %0, i32 36 + %"$_sender_411" = bitcast i8* %"$_sender_410" to [20 x i8]* + %"$addr_412" = getelementptr i8, i8* %0, i32 56 + %"$addr_413" = bitcast i8* %"$addr_412" to [20 x i8]* + call void @"$foo4_343"(%Uint128 %_amount, [20 x i8]* %"$_origin_409", [20 x i8]* %"$_sender_411", [20 x i8]* %"$addr_413"), !dbg !91 ret void } +attributes #0 = { nocallback nofree nosync nounwind readnone speculatable willreturn } + !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) +!1 = distinct !DICompileUnit(language: DW_LANG_C89, file: !2, producer: "Scilla Compiler", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false) !2 = !DIFile(filename: "codehash.scilla", directory: "codegen/contr") -!3 = !{} -!4 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !5, file: !5, type: !6, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!5 = !DIFile(filename: ".", directory: ".") -!6 = !DISubroutineType(types: !7) -!7 = !{!8} -!8 = !DIBasicType(tag: DW_TAG_unspecified_type, name: "void") -!9 = !DILocation(line: 0, scope: !4) -!10 = distinct !DISubprogram(name: "_deploy_ops", linkageName: "_deploy_ops", scope: !5, file: !5, type: !6, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!11 = distinct !DISubprogram(name: "foo", linkageName: "foo", scope: !2, file: !2, line: 5, type: !6, scopeLine: 5, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!12 = !DILocation(line: 6, column: 3, scope: !11) -!13 = !DILocation(line: 7, column: 7, scope: !11) -!14 = !DILocation(line: 8, column: 3, scope: !11) -!15 = distinct !DISubprogram(name: "foo", linkageName: "foo", scope: !2, file: !2, line: 5, type: !6, scopeLine: 5, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!16 = !DILocation(line: 5, column: 12, scope: !15) -!17 = distinct !DISubprogram(name: "foo2", linkageName: "foo2", scope: !2, file: !2, line: 11, type: !6, scopeLine: 11, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!18 = !DILocation(line: 12, column: 3, scope: !17) -!19 = !DILocation(line: 13, column: 3, scope: !17) -!20 = !DILocation(line: 15, column: 5, scope: !21) -!21 = distinct !DILexicalBlock(scope: !22, file: !2, line: 14, column: 5) -!22 = distinct !DILexicalBlock(scope: !17, file: !2, line: 13, column: 3) -!23 = !DILocation(line: 16, column: 9, scope: !21) -!24 = !DILocation(line: 17, column: 5, scope: !21) -!25 = !DILocation(line: 19, column: 9, scope: !26) -!26 = distinct !DILexicalBlock(scope: !22, file: !2, line: 18, column: 5) -!27 = !DILocation(line: 20, column: 5, scope: !26) -!28 = distinct !DISubprogram(name: "foo2", linkageName: "foo2", scope: !2, file: !2, line: 11, type: !6, scopeLine: 11, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!29 = !DILocation(line: 11, column: 12, scope: !28) -!30 = distinct !DISubprogram(name: "foo3", linkageName: "foo3", scope: !2, file: !2, line: 24, type: !6, scopeLine: 24, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!31 = !DILocation(line: 25, column: 3, scope: !30) -!32 = !DILocation(line: 26, column: 7, scope: !30) -!33 = !DILocation(line: 27, column: 3, scope: !30) -!34 = distinct !DISubprogram(name: "foo3", linkageName: "foo3", scope: !2, file: !2, line: 24, type: !6, scopeLine: 24, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!35 = !DILocation(line: 24, column: 12, scope: !34) -!36 = distinct !DISubprogram(name: "foo4", linkageName: "foo4", scope: !2, file: !2, line: 30, type: !6, scopeLine: 30, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!37 = !DILocation(line: 31, column: 3, scope: !36) -!38 = !DILocation(line: 32, column: 7, scope: !36) -!39 = !DILocation(line: 33, column: 3, scope: !36) -!40 = distinct !DISubprogram(name: "foo4", linkageName: "foo4", scope: !2, file: !2, line: 30, type: !6, scopeLine: 30, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!41 = !DILocation(line: 30, column: 12, scope: !40) +!3 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !4, file: !4, type: !5, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!4 = !DIFile(filename: ".", directory: ".") +!5 = !DISubroutineType(types: !6) +!6 = !{!7} +!7 = !DIBasicType(tag: DW_TAG_unspecified_type, name: "void") +!8 = !{} +!9 = !DILocation(line: 0, scope: !3) +!10 = distinct !DISubprogram(name: "_deploy_ops", linkageName: "_deploy_ops", scope: !4, file: !4, type: !5, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!11 = distinct !DISubprogram(name: "foo", linkageName: "foo", scope: !2, file: !2, line: 5, type: !5, scopeLine: 5, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!12 = !DILocalVariable(name: "addr", scope: !11, file: !2, line: 5, type: !13) +!13 = !DIBasicType(name: "ByStr20 with _codehash end", size: 20) +!14 = !DILocation(line: 5, column: 16, scope: !11) +!15 = !DILocalVariable(name: "_sender", scope: !11, file: !2, line: 5, type: !16) +!16 = !DIBasicType(name: "ByStr20 with end", size: 20) +!17 = !DILocation(line: 5, column: 12, scope: !11) +!18 = !DILocalVariable(name: "_origin", scope: !11, file: !2, line: 5, type: !16) +!19 = !DILocalVariable(name: "_amount", scope: !11, file: !2, line: 5, type: !20) +!20 = !DIBasicType(name: "Uint128", size: 16) +!21 = !DILocalVariable(name: "bar", scope: !11, file: !2, line: 6, type: !22) +!22 = !DIBasicType(name: "ByStr32", size: 32) +!23 = !DILocation(line: 6, column: 3, scope: !11) +!24 = !DILocalVariable(name: "e", scope: !11, file: !2, line: 7, type: !25) +!25 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "Event", baseType: !26, size: 8, align: 8, dwarfAddressSpace: 0) +!26 = !DIBasicType(name: "Event", size: 8) +!27 = !DILocation(line: 7, column: 3, scope: !11) +!28 = !DILocation(line: 7, column: 7, scope: !11) +!29 = !DILocation(line: 8, column: 3, scope: !11) +!30 = distinct !DISubprogram(name: "foo", linkageName: "foo", scope: !2, file: !2, line: 5, type: !5, scopeLine: 5, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!31 = !DILocation(line: 5, column: 12, scope: !30) +!32 = distinct !DISubprogram(name: "foo2", linkageName: "foo2", scope: !2, file: !2, line: 11, type: !5, scopeLine: 11, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!33 = !DILocalVariable(name: "addr", scope: !32, file: !2, line: 11, type: !34) +!34 = !DIBasicType(name: "ByStr20", size: 20) +!35 = !DILocation(line: 11, column: 17, scope: !32) +!36 = !DILocalVariable(name: "_sender", scope: !32, file: !2, line: 11, type: !16) +!37 = !DILocation(line: 11, column: 12, scope: !32) +!38 = !DILocalVariable(name: "_origin", scope: !32, file: !2, line: 11, type: !16) +!39 = !DILocalVariable(name: "_amount", scope: !32, file: !2, line: 11, type: !20) +!40 = !DILocalVariable(name: "addr_", scope: !32, file: !2, line: 12, type: !41) +!41 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "Option (ByStr20 with _codehash end)", baseType: !42, size: 8, align: 8, dwarfAddressSpace: 0) +!42 = !DIBasicType(name: "Option (ByStr20 with _codehash end)", size: 8) +!43 = !DILocation(line: 12, column: 3, scope: !32) +!44 = !DILocation(line: 13, column: 3, scope: !32) +!45 = !DILocalVariable(name: "bar", scope: !46, file: !2, line: 15, type: !22) +!46 = distinct !DILexicalBlock(scope: !47, file: !2, line: 14, column: 5) +!47 = distinct !DILexicalBlock(scope: !32, file: !2, line: 13, column: 3) +!48 = !DILocation(line: 15, column: 5, scope: !46) +!49 = !DILocalVariable(name: "e", scope: !46, file: !2, line: 16, type: !25) +!50 = !DILocation(line: 16, column: 5, scope: !46) +!51 = !DILocation(line: 16, column: 9, scope: !46) +!52 = !DILocation(line: 17, column: 5, scope: !46) +!53 = !DILocalVariable(name: "e", scope: !54, file: !2, line: 19, type: !25) +!54 = distinct !DILexicalBlock(scope: !47, file: !2, line: 18, column: 5) +!55 = !DILocation(line: 19, column: 5, scope: !54) +!56 = !DILocation(line: 19, column: 9, scope: !54) +!57 = !DILocation(line: 20, column: 5, scope: !54) +!58 = distinct !DISubprogram(name: "foo2", linkageName: "foo2", scope: !2, file: !2, line: 11, type: !5, scopeLine: 11, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!59 = !DILocation(line: 11, column: 12, scope: !58) +!60 = distinct !DISubprogram(name: "foo3", linkageName: "foo3", scope: !2, file: !2, line: 24, type: !5, scopeLine: 24, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!61 = !DILocalVariable(name: "addr", scope: !60, file: !2, line: 24, type: !62) +!62 = !DIBasicType(name: "ByStr20 with library end", size: 20) +!63 = !DILocation(line: 24, column: 17, scope: !60) +!64 = !DILocalVariable(name: "_sender", scope: !60, file: !2, line: 24, type: !16) +!65 = !DILocation(line: 24, column: 12, scope: !60) +!66 = !DILocalVariable(name: "_origin", scope: !60, file: !2, line: 24, type: !16) +!67 = !DILocalVariable(name: "_amount", scope: !60, file: !2, line: 24, type: !20) +!68 = !DILocalVariable(name: "bar", scope: !60, file: !2, line: 25, type: !22) +!69 = !DILocation(line: 25, column: 3, scope: !60) +!70 = !DILocalVariable(name: "e", scope: !60, file: !2, line: 26, type: !25) +!71 = !DILocation(line: 26, column: 3, scope: !60) +!72 = !DILocation(line: 26, column: 7, scope: !60) +!73 = !DILocation(line: 27, column: 3, scope: !60) +!74 = distinct !DISubprogram(name: "foo3", linkageName: "foo3", scope: !2, file: !2, line: 24, type: !5, scopeLine: 24, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!75 = !DILocation(line: 24, column: 12, scope: !74) +!76 = distinct !DISubprogram(name: "foo4", linkageName: "foo4", scope: !2, file: !2, line: 30, type: !5, scopeLine: 30, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!77 = !DILocalVariable(name: "addr", scope: !76, file: !2, line: 30, type: !78) +!78 = !DIBasicType(name: "ByStr20 with contract end", size: 20) +!79 = !DILocation(line: 30, column: 17, scope: !76) +!80 = !DILocalVariable(name: "_sender", scope: !76, file: !2, line: 30, type: !16) +!81 = !DILocation(line: 30, column: 12, scope: !76) +!82 = !DILocalVariable(name: "_origin", scope: !76, file: !2, line: 30, type: !16) +!83 = !DILocalVariable(name: "_amount", scope: !76, file: !2, line: 30, type: !20) +!84 = !DILocalVariable(name: "bar", scope: !76, file: !2, line: 31, type: !22) +!85 = !DILocation(line: 31, column: 3, scope: !76) +!86 = !DILocalVariable(name: "e", scope: !76, file: !2, line: 32, type: !25) +!87 = !DILocation(line: 32, column: 3, scope: !76) +!88 = !DILocation(line: 32, column: 7, scope: !76) +!89 = !DILocation(line: 33, column: 3, scope: !76) +!90 = distinct !DISubprogram(name: "foo4", linkageName: "foo4", scope: !2, file: !2, line: 30, type: !5, scopeLine: 30, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!91 = !DILocation(line: 30, column: 12, scope: !90) diff --git a/testsuite/contr/codehash.ll b/testsuite/contr/codehash.ll index 169ed27c..5f274bfe 100644 --- a/testsuite/contr/codehash.ll +++ b/testsuite/contr/codehash.ll @@ -4,7 +4,7 @@ ; ModuleID = 'Codehash' source_filename = "Codehash" target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-pc-linux-gnu" +target triple = "x86_64-unknown-linux-gnu" %"$TyDescrTy_PrimTyp_1" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/testsuite/contr/crowdfunding.dbg.ll b/testsuite/contr/crowdfunding.dbg.ll index 6f235a9d..52209c00 100644 --- a/testsuite/contr/crowdfunding.dbg.ll +++ b/testsuite/contr/crowdfunding.dbg.ll @@ -4,7 +4,7 @@ ; 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-pc-linux-gnu" +target triple = "x86_64-unknown-linux-gnu" %"$TyDescrTy_PrimTyp_46" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } @@ -28,9 +28,9 @@ target triple = "x86_64-pc-linux-gnu" %Uint128 = type { i128 } %Map_ByStr20_Uint128 = type { [20 x i8], %Uint128 } %Uint32 = type { i32 } -%"$ParamDescr_1821" = type { %ParamDescrString, %_TyDescrTy_Typ* } +%"$ParamDescr_1841" = type { %ParamDescrString, %_TyDescrTy_Typ* } %ParamDescrString = type { i8*, i32 } -%"$TransDescr_1822" = type { %ParamDescrString, i32, %"$ParamDescr_1821"* } +%"$TransDescr_1842" = type { %ParamDescrString, i32, %"$ParamDescr_1841"* } %"$$fundef_34_env_138" = type { { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }, i8* } %"$$fundef_32_env_139" = type { { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } } %"$$fundef_30_env_140" = type { %TName_Bool* } @@ -157,759 +157,804 @@ target triple = "x86_64-pc-linux-gnu" @_cparam_owner = global [20 x i8] zeroinitializer @_cparam_max_block = global i8* null @_cparam_goal = global %Uint128 zeroinitializer -@"$backers_570" = unnamed_addr constant [8 x i8] c"backers\00" -@"$funded_582" = unnamed_addr constant [7 x i8] c"funded\00" -@"$fetchbc_query_name_593" = unnamed_addr constant [11 x i8] c"BLOCKNUMBER" -@"$fetchbc_query_arg_594" = unnamed_addr constant [0 x i8] zeroinitializer -@"$backers_631" = unnamed_addr constant [8 x i8] c"backers\00" -@"$stringlit_695" = unnamed_addr constant [10 x i8] c"_eventname" -@"$stringlit_700" = unnamed_addr constant [15 x i8] c"DonationFailure" -@"$stringlit_703" = unnamed_addr constant [5 x i8] c"donor" -@"$stringlit_710" = unnamed_addr constant [6 x i8] c"amount" -@"$stringlit_717" = unnamed_addr constant [4 x i8] c"code" -@"$backers_749" = unnamed_addr constant [8 x i8] c"backers\00" -@"$stringlit_769" = unnamed_addr constant [10 x i8] c"_eventname" -@"$stringlit_774" = unnamed_addr constant [15 x i8] c"DonationSuccess" -@"$stringlit_777" = unnamed_addr constant [5 x i8] c"donor" -@"$stringlit_784" = unnamed_addr constant [6 x i8] c"amount" -@"$stringlit_791" = unnamed_addr constant [4 x i8] c"code" -@"$stringlit_823" = unnamed_addr constant [10 x i8] c"_eventname" -@"$stringlit_828" = unnamed_addr constant [15 x i8] c"DonationFailure" -@"$stringlit_831" = unnamed_addr constant [5 x i8] c"donor" -@"$stringlit_838" = unnamed_addr constant [6 x i8] c"amount" -@"$stringlit_845" = unnamed_addr constant [4 x i8] c"code" -@"$stringlit_915" = unnamed_addr constant [10 x i8] c"_eventname" -@"$stringlit_920" = unnamed_addr constant [15 x i8] c"GetFundsFailure" -@"$stringlit_923" = unnamed_addr constant [6 x i8] c"caller" -@"$stringlit_930" = unnamed_addr constant [6 x i8] c"amount" -@"$stringlit_937" = unnamed_addr constant [4 x i8] c"code" -@"$fetchbc_query_name_963" = unnamed_addr constant [11 x i8] c"BLOCKNUMBER" -@"$fetchbc_query_arg_964" = unnamed_addr constant [0 x i8] zeroinitializer -@"$_balance_1005" = unnamed_addr constant [9 x i8] c"_balance\00" -@"$stringlit_1096" = unnamed_addr constant [10 x i8] c"_eventname" -@"$stringlit_1101" = unnamed_addr constant [15 x i8] c"GetFundsFailure" -@"$stringlit_1104" = unnamed_addr constant [6 x i8] c"caller" -@"$stringlit_1111" = unnamed_addr constant [6 x i8] c"amount" -@"$stringlit_1118" = unnamed_addr constant [4 x i8] c"code" -@"$funded_1161" = unnamed_addr constant [7 x i8] c"funded\00" -@"$stringlit_1175" = unnamed_addr constant [4 x i8] c"_tag" -@"$stringlit_1180" = unnamed_addr constant [0 x i8] zeroinitializer -@"$stringlit_1183" = unnamed_addr constant [10 x i8] c"_recipient" -@"$stringlit_1191" = unnamed_addr constant [7 x i8] c"_amount" -@"$stringlit_1227" = unnamed_addr constant [10 x i8] c"_eventname" -@"$stringlit_1232" = unnamed_addr constant [15 x i8] c"GetFundsSuccess" -@"$stringlit_1235" = unnamed_addr constant [6 x i8] c"caller" -@"$stringlit_1243" = unnamed_addr constant [6 x i8] c"amount" -@"$stringlit_1251" = unnamed_addr constant [4 x i8] c"code" -@"$fetchbc_query_name_1295" = unnamed_addr constant [11 x i8] c"BLOCKNUMBER" -@"$fetchbc_query_arg_1296" = unnamed_addr constant [0 x i8] zeroinitializer -@"$stringlit_1338" = unnamed_addr constant [10 x i8] c"_eventname" -@"$stringlit_1343" = unnamed_addr constant [16 x i8] c"ClaimBackFailure" -@"$stringlit_1346" = unnamed_addr constant [6 x i8] c"caller" -@"$stringlit_1353" = unnamed_addr constant [6 x i8] c"amount" -@"$stringlit_1360" = unnamed_addr constant [4 x i8] c"code" -@"$backers_1381" = unnamed_addr constant [8 x i8] c"backers\00" -@"$_balance_1397" = unnamed_addr constant [9 x i8] c"_balance\00" -@"$funded_1412" = unnamed_addr constant [7 x i8] c"funded\00" -@"$stringlit_1539" = unnamed_addr constant [10 x i8] c"_eventname" -@"$stringlit_1544" = unnamed_addr constant [16 x i8] c"ClaimBackFailure" -@"$stringlit_1547" = unnamed_addr constant [6 x i8] c"caller" -@"$stringlit_1554" = unnamed_addr constant [6 x i8] c"amount" -@"$stringlit_1561" = unnamed_addr constant [4 x i8] c"code" -@"$stringlit_1622" = unnamed_addr constant [10 x i8] c"_eventname" -@"$stringlit_1627" = unnamed_addr constant [16 x i8] c"ClaimBackFailure" -@"$stringlit_1630" = unnamed_addr constant [6 x i8] c"caller" -@"$stringlit_1637" = unnamed_addr constant [6 x i8] c"amount" -@"$stringlit_1644" = unnamed_addr constant [4 x i8] c"code" -@"$backers_1697" = unnamed_addr constant [8 x i8] c"backers\00" -@"$stringlit_1711" = unnamed_addr constant [4 x i8] c"_tag" -@"$stringlit_1716" = unnamed_addr constant [0 x i8] zeroinitializer -@"$stringlit_1719" = unnamed_addr constant [10 x i8] c"_recipient" -@"$stringlit_1726" = unnamed_addr constant [7 x i8] c"_amount" -@"$stringlit_1762" = unnamed_addr constant [10 x i8] c"_eventname" -@"$stringlit_1767" = unnamed_addr constant [16 x i8] c"ClaimBackSuccess" -@"$stringlit_1770" = unnamed_addr constant [6 x i8] c"caller" -@"$stringlit_1777" = unnamed_addr constant [6 x i8] c"amount" -@"$stringlit_1785" = unnamed_addr constant [4 x i8] c"code" +@"$backers_581" = unnamed_addr constant [8 x i8] c"backers\00" +@"$funded_593" = unnamed_addr constant [7 x i8] c"funded\00" +@"$fetchbc_query_name_604" = unnamed_addr constant [11 x i8] c"BLOCKNUMBER" +@"$fetchbc_query_arg_605" = unnamed_addr constant [0 x i8] zeroinitializer +@"$backers_642" = unnamed_addr constant [8 x i8] c"backers\00" +@"$stringlit_706" = unnamed_addr constant [10 x i8] c"_eventname" +@"$stringlit_711" = unnamed_addr constant [15 x i8] c"DonationFailure" +@"$stringlit_714" = unnamed_addr constant [5 x i8] c"donor" +@"$stringlit_721" = unnamed_addr constant [6 x i8] c"amount" +@"$stringlit_728" = unnamed_addr constant [4 x i8] c"code" +@"$backers_760" = unnamed_addr constant [8 x i8] c"backers\00" +@"$stringlit_780" = unnamed_addr constant [10 x i8] c"_eventname" +@"$stringlit_785" = unnamed_addr constant [15 x i8] c"DonationSuccess" +@"$stringlit_788" = unnamed_addr constant [5 x i8] c"donor" +@"$stringlit_795" = unnamed_addr constant [6 x i8] c"amount" +@"$stringlit_802" = unnamed_addr constant [4 x i8] c"code" +@"$stringlit_834" = unnamed_addr constant [10 x i8] c"_eventname" +@"$stringlit_839" = unnamed_addr constant [15 x i8] c"DonationFailure" +@"$stringlit_842" = unnamed_addr constant [5 x i8] c"donor" +@"$stringlit_849" = unnamed_addr constant [6 x i8] c"amount" +@"$stringlit_856" = unnamed_addr constant [4 x i8] c"code" +@"$stringlit_929" = unnamed_addr constant [10 x i8] c"_eventname" +@"$stringlit_934" = unnamed_addr constant [15 x i8] c"GetFundsFailure" +@"$stringlit_937" = unnamed_addr constant [6 x i8] c"caller" +@"$stringlit_944" = unnamed_addr constant [6 x i8] c"amount" +@"$stringlit_951" = unnamed_addr constant [4 x i8] c"code" +@"$fetchbc_query_name_977" = unnamed_addr constant [11 x i8] c"BLOCKNUMBER" +@"$fetchbc_query_arg_978" = unnamed_addr constant [0 x i8] zeroinitializer +@"$_balance_1019" = unnamed_addr constant [9 x i8] c"_balance\00" +@"$stringlit_1110" = unnamed_addr constant [10 x i8] c"_eventname" +@"$stringlit_1115" = unnamed_addr constant [15 x i8] c"GetFundsFailure" +@"$stringlit_1118" = unnamed_addr constant [6 x i8] c"caller" +@"$stringlit_1125" = unnamed_addr constant [6 x i8] c"amount" +@"$stringlit_1132" = unnamed_addr constant [4 x i8] c"code" +@"$funded_1175" = unnamed_addr constant [7 x i8] c"funded\00" +@"$stringlit_1189" = unnamed_addr constant [4 x i8] c"_tag" +@"$stringlit_1194" = unnamed_addr constant [0 x i8] zeroinitializer +@"$stringlit_1197" = unnamed_addr constant [10 x i8] c"_recipient" +@"$stringlit_1205" = unnamed_addr constant [7 x i8] c"_amount" +@"$stringlit_1241" = unnamed_addr constant [10 x i8] c"_eventname" +@"$stringlit_1246" = unnamed_addr constant [15 x i8] c"GetFundsSuccess" +@"$stringlit_1249" = unnamed_addr constant [6 x i8] c"caller" +@"$stringlit_1257" = unnamed_addr constant [6 x i8] c"amount" +@"$stringlit_1265" = unnamed_addr constant [4 x i8] c"code" +@"$fetchbc_query_name_1312" = unnamed_addr constant [11 x i8] c"BLOCKNUMBER" +@"$fetchbc_query_arg_1313" = unnamed_addr constant [0 x i8] zeroinitializer +@"$stringlit_1355" = unnamed_addr constant [10 x i8] c"_eventname" +@"$stringlit_1360" = unnamed_addr constant [16 x i8] c"ClaimBackFailure" +@"$stringlit_1363" = unnamed_addr constant [6 x i8] c"caller" +@"$stringlit_1370" = unnamed_addr constant [6 x i8] c"amount" +@"$stringlit_1377" = unnamed_addr constant [4 x i8] c"code" +@"$backers_1398" = unnamed_addr constant [8 x i8] c"backers\00" +@"$_balance_1414" = unnamed_addr constant [9 x i8] c"_balance\00" +@"$funded_1429" = unnamed_addr constant [7 x i8] c"funded\00" +@"$stringlit_1556" = unnamed_addr constant [10 x i8] c"_eventname" +@"$stringlit_1561" = unnamed_addr constant [16 x i8] c"ClaimBackFailure" +@"$stringlit_1564" = unnamed_addr constant [6 x i8] c"caller" +@"$stringlit_1571" = unnamed_addr constant [6 x i8] c"amount" +@"$stringlit_1578" = unnamed_addr constant [4 x i8] c"code" +@"$stringlit_1639" = unnamed_addr constant [10 x i8] c"_eventname" +@"$stringlit_1644" = unnamed_addr constant [16 x i8] c"ClaimBackFailure" +@"$stringlit_1647" = unnamed_addr constant [6 x i8] c"caller" +@"$stringlit_1654" = unnamed_addr constant [6 x i8] c"amount" +@"$stringlit_1661" = unnamed_addr constant [4 x i8] c"code" +@"$backers_1714" = unnamed_addr constant [8 x i8] c"backers\00" +@"$stringlit_1728" = unnamed_addr constant [4 x i8] c"_tag" +@"$stringlit_1733" = unnamed_addr constant [0 x i8] zeroinitializer +@"$stringlit_1736" = unnamed_addr constant [10 x i8] c"_recipient" +@"$stringlit_1743" = unnamed_addr constant [7 x i8] c"_amount" +@"$stringlit_1779" = unnamed_addr constant [10 x i8] c"_eventname" +@"$stringlit_1784" = unnamed_addr constant [16 x i8] c"ClaimBackSuccess" +@"$stringlit_1787" = unnamed_addr constant [6 x i8] c"caller" +@"$stringlit_1794" = unnamed_addr constant [6 x i8] c"amount" +@"$stringlit_1802" = unnamed_addr constant [4 x i8] c"code" @_tydescr_table = constant [22 x %_TyDescrTy_Typ*] [%_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_84", %_TyDescrTy_Typ* @"$TyDescr_Event_70", %_TyDescrTy_Typ* @"$TyDescr_Int64_52", %_TyDescrTy_Typ* @"$TyDescr_ADT_Option_Map_(ByStr20)_(Uint128)_83", %_TyDescrTy_Typ* @"$TyDescr_Addr_90", %_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_85", %_TyDescrTy_Typ* @"$TyDescr_Bystr20_78", %_TyDescrTy_Typ* @"$TyDescr_Uint256_62", %_TyDescrTy_Typ* @"$TyDescr_Uint32_50", %_TyDescrTy_Typ* @"$TyDescr_Uint64_54", %_TyDescrTy_Typ* @"$TyDescr_Bnum_66", %_TyDescrTy_Typ* @"$TyDescr_Uint128_58", %_TyDescrTy_Typ* @"$TyDescr_Exception_72", %_TyDescrTy_Typ* @"$TyDescr_String_64", %_TyDescrTy_Typ* @"$TyDescr_Int256_60", %_TyDescrTy_Typ* @"$TyDescr_Int128_56", %_TyDescrTy_Typ* @"$TyDescr_Map_87", %_TyDescrTy_Typ* @"$TyDescr_ADT_Option_Uint128_82", %_TyDescrTy_Typ* @"$TyDescr_Bystr_76", %_TyDescrTy_Typ* @"$TyDescr_ReplicateContr_74", %_TyDescrTy_Typ* @"$TyDescr_Message_68", %_TyDescrTy_Typ* @"$TyDescr_Int32_48"] @_tydescr_table_length = constant i32 22 -@"$pname__scilla_version_1823" = unnamed_addr constant [15 x i8] c"_scilla_version" -@"$pname__this_address_1824" = unnamed_addr constant [13 x i8] c"_this_address" -@"$pname__creation_block_1825" = unnamed_addr constant [15 x i8] c"_creation_block" -@"$pname_owner_1826" = unnamed_addr constant [5 x i8] c"owner" -@"$pname_max_block_1827" = unnamed_addr constant [9 x i8] c"max_block" -@"$pname_goal_1828" = unnamed_addr constant [4 x i8] c"goal" -@_contract_parameters = constant [6 x %"$ParamDescr_1821"] [%"$ParamDescr_1821" { %ParamDescrString { i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$pname__scilla_version_1823", i32 0, i32 0), i32 15 }, %_TyDescrTy_Typ* @"$TyDescr_Uint32_50" }, %"$ParamDescr_1821" { %ParamDescrString { i8* getelementptr inbounds ([13 x i8], [13 x i8]* @"$pname__this_address_1824", i32 0, i32 0), i32 13 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr20_78" }, %"$ParamDescr_1821" { %ParamDescrString { i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$pname__creation_block_1825", i32 0, i32 0), i32 15 }, %_TyDescrTy_Typ* @"$TyDescr_Bnum_66" }, %"$ParamDescr_1821" { %ParamDescrString { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$pname_owner_1826", i32 0, i32 0), i32 5 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr20_78" }, %"$ParamDescr_1821" { %ParamDescrString { i8* getelementptr inbounds ([9 x i8], [9 x i8]* @"$pname_max_block_1827", i32 0, i32 0), i32 9 }, %_TyDescrTy_Typ* @"$TyDescr_Bnum_66" }, %"$ParamDescr_1821" { %ParamDescrString { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$pname_goal_1828", i32 0, i32 0), i32 4 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_58" }] +@"$pname__scilla_version_1843" = unnamed_addr constant [15 x i8] c"_scilla_version" +@"$pname__this_address_1844" = unnamed_addr constant [13 x i8] c"_this_address" +@"$pname__creation_block_1845" = unnamed_addr constant [15 x i8] c"_creation_block" +@"$pname_owner_1846" = unnamed_addr constant [5 x i8] c"owner" +@"$pname_max_block_1847" = unnamed_addr constant [9 x i8] c"max_block" +@"$pname_goal_1848" = unnamed_addr constant [4 x i8] c"goal" +@_contract_parameters = constant [6 x %"$ParamDescr_1841"] [%"$ParamDescr_1841" { %ParamDescrString { i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$pname__scilla_version_1843", i32 0, i32 0), i32 15 }, %_TyDescrTy_Typ* @"$TyDescr_Uint32_50" }, %"$ParamDescr_1841" { %ParamDescrString { i8* getelementptr inbounds ([13 x i8], [13 x i8]* @"$pname__this_address_1844", i32 0, i32 0), i32 13 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr20_78" }, %"$ParamDescr_1841" { %ParamDescrString { i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$pname__creation_block_1845", i32 0, i32 0), i32 15 }, %_TyDescrTy_Typ* @"$TyDescr_Bnum_66" }, %"$ParamDescr_1841" { %ParamDescrString { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$pname_owner_1846", i32 0, i32 0), i32 5 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr20_78" }, %"$ParamDescr_1841" { %ParamDescrString { i8* getelementptr inbounds ([9 x i8], [9 x i8]* @"$pname_max_block_1847", i32 0, i32 0), i32 9 }, %_TyDescrTy_Typ* @"$TyDescr_Bnum_66" }, %"$ParamDescr_1841" { %ParamDescrString { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$pname_goal_1848", i32 0, i32 0), i32 4 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_58" }] @_contract_parameters_length = constant i32 6 -@"$tpname__amount_1829" = unnamed_addr constant [7 x i8] c"_amount" -@"$tpname__origin_1830" = unnamed_addr constant [7 x i8] c"_origin" -@"$tpname__sender_1831" = unnamed_addr constant [7 x i8] c"_sender" -@"$tparams_Donate_1832" = unnamed_addr constant [3 x %"$ParamDescr_1821"] [%"$ParamDescr_1821" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_1829", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_58" }, %"$ParamDescr_1821" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_1830", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_90" }, %"$ParamDescr_1821" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_1831", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_90" }] -@"$tname_Donate_1833" = unnamed_addr constant [6 x i8] c"Donate" -@"$tpname__amount_1834" = unnamed_addr constant [7 x i8] c"_amount" -@"$tpname__origin_1835" = unnamed_addr constant [7 x i8] c"_origin" -@"$tpname__sender_1836" = unnamed_addr constant [7 x i8] c"_sender" -@"$tparams_GetFunds_1837" = unnamed_addr constant [3 x %"$ParamDescr_1821"] [%"$ParamDescr_1821" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_1834", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_58" }, %"$ParamDescr_1821" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_1835", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_90" }, %"$ParamDescr_1821" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_1836", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_90" }] -@"$tname_GetFunds_1838" = unnamed_addr constant [8 x i8] c"GetFunds" -@"$tpname__amount_1839" = unnamed_addr constant [7 x i8] c"_amount" -@"$tpname__origin_1840" = unnamed_addr constant [7 x i8] c"_origin" -@"$tpname__sender_1841" = unnamed_addr constant [7 x i8] c"_sender" -@"$tparams_ClaimBack_1842" = unnamed_addr constant [3 x %"$ParamDescr_1821"] [%"$ParamDescr_1821" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_1839", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_58" }, %"$ParamDescr_1821" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_1840", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_90" }, %"$ParamDescr_1821" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_1841", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_90" }] -@"$tname_ClaimBack_1843" = unnamed_addr constant [9 x i8] c"ClaimBack" -@_transition_parameters = constant [3 x %"$TransDescr_1822"] [%"$TransDescr_1822" { %ParamDescrString { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$tname_Donate_1833", i32 0, i32 0), i32 6 }, i32 3, %"$ParamDescr_1821"* getelementptr inbounds ([3 x %"$ParamDescr_1821"], [3 x %"$ParamDescr_1821"]* @"$tparams_Donate_1832", i32 0, i32 0) }, %"$TransDescr_1822" { %ParamDescrString { i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$tname_GetFunds_1838", i32 0, i32 0), i32 8 }, i32 3, %"$ParamDescr_1821"* getelementptr inbounds ([3 x %"$ParamDescr_1821"], [3 x %"$ParamDescr_1821"]* @"$tparams_GetFunds_1837", i32 0, i32 0) }, %"$TransDescr_1822" { %ParamDescrString { i8* getelementptr inbounds ([9 x i8], [9 x i8]* @"$tname_ClaimBack_1843", i32 0, i32 0), i32 9 }, i32 3, %"$ParamDescr_1821"* getelementptr inbounds ([3 x %"$ParamDescr_1821"], [3 x %"$ParamDescr_1821"]* @"$tparams_ClaimBack_1842", i32 0, i32 0) }] +@"$tpname__amount_1849" = unnamed_addr constant [7 x i8] c"_amount" +@"$tpname__origin_1850" = unnamed_addr constant [7 x i8] c"_origin" +@"$tpname__sender_1851" = unnamed_addr constant [7 x i8] c"_sender" +@"$tparams_Donate_1852" = unnamed_addr constant [3 x %"$ParamDescr_1841"] [%"$ParamDescr_1841" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_1849", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_58" }, %"$ParamDescr_1841" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_1850", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_90" }, %"$ParamDescr_1841" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_1851", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_90" }] +@"$tname_Donate_1853" = unnamed_addr constant [6 x i8] c"Donate" +@"$tpname__amount_1854" = unnamed_addr constant [7 x i8] c"_amount" +@"$tpname__origin_1855" = unnamed_addr constant [7 x i8] c"_origin" +@"$tpname__sender_1856" = unnamed_addr constant [7 x i8] c"_sender" +@"$tparams_GetFunds_1857" = unnamed_addr constant [3 x %"$ParamDescr_1841"] [%"$ParamDescr_1841" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_1854", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_58" }, %"$ParamDescr_1841" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_1855", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_90" }, %"$ParamDescr_1841" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_1856", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_90" }] +@"$tname_GetFunds_1858" = unnamed_addr constant [8 x i8] c"GetFunds" +@"$tpname__amount_1859" = unnamed_addr constant [7 x i8] c"_amount" +@"$tpname__origin_1860" = unnamed_addr constant [7 x i8] c"_origin" +@"$tpname__sender_1861" = unnamed_addr constant [7 x i8] c"_sender" +@"$tparams_ClaimBack_1862" = unnamed_addr constant [3 x %"$ParamDescr_1841"] [%"$ParamDescr_1841" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_1859", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_58" }, %"$ParamDescr_1841" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_1860", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_90" }, %"$ParamDescr_1841" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_1861", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_90" }] +@"$tname_ClaimBack_1863" = unnamed_addr constant [9 x i8] c"ClaimBack" +@_transition_parameters = constant [3 x %"$TransDescr_1842"] [%"$TransDescr_1842" { %ParamDescrString { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$tname_Donate_1853", i32 0, i32 0), i32 6 }, i32 3, %"$ParamDescr_1841"* getelementptr inbounds ([3 x %"$ParamDescr_1841"], [3 x %"$ParamDescr_1841"]* @"$tparams_Donate_1852", i32 0, i32 0) }, %"$TransDescr_1842" { %ParamDescrString { i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$tname_GetFunds_1858", i32 0, i32 0), i32 8 }, i32 3, %"$ParamDescr_1841"* getelementptr inbounds ([3 x %"$ParamDescr_1841"], [3 x %"$ParamDescr_1841"]* @"$tparams_GetFunds_1857", i32 0, i32 0) }, %"$TransDescr_1842" { %ParamDescrString { i8* getelementptr inbounds ([9 x i8], [9 x i8]* @"$tname_ClaimBack_1863", i32 0, i32 0), i32 9 }, i32 3, %"$ParamDescr_1841"* getelementptr inbounds ([3 x %"$ParamDescr_1841"], [3 x %"$ParamDescr_1841"]* @"$tparams_ClaimBack_1862", i32 0, i32 0) }] @_transition_parameters_length = constant i32 3 -define internal %TName_Bool* @"$fundef_34"(%"$$fundef_34_env_138"* %0, i8* %1) !dbg !4 { +define internal %TName_Bool* @"$fundef_34"(%"$$fundef_34_env_138"* %0, i8* %1) !dbg !3 { entry: - %"$$fundef_34_env_BoolUtils.orb_406" = getelementptr inbounds %"$$fundef_34_env_138", %"$$fundef_34_env_138"* %0, i32 0, i32 0 - %"$BoolUtils.orb_envload_407" = load { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }, { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }* %"$$fundef_34_env_BoolUtils.orb_406", align 8 + %"$blk2_465" = alloca i8*, align 8 + store i8* %1, i8** %"$blk2_465", align 8 + call void @llvm.dbg.declare(metadata i8** %"$blk2_465", metadata !8, metadata !DIExpression()), !dbg !11 + %"$$fundef_34_env_BoolUtils.orb_416" = getelementptr inbounds %"$$fundef_34_env_138", %"$$fundef_34_env_138"* %0, i32 0, i32 0 + %"$BoolUtils.orb_envload_417" = load { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }, { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }* %"$$fundef_34_env_BoolUtils.orb_416", 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_407", { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }* %BoolUtils.orb, align 8 - %"$$fundef_34_env_blk1_408" = getelementptr inbounds %"$$fundef_34_env_138", %"$$fundef_34_env_138"* %0, i32 0, i32 1 - %"$blk1_envload_409" = load i8*, i8** %"$$fundef_34_env_blk1_408", align 8 + store { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.orb_envload_417", { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }* %BoolUtils.orb, align 8 + %"$$fundef_34_env_blk1_418" = getelementptr inbounds %"$$fundef_34_env_138", %"$$fundef_34_env_138"* %0, i32 0, i32 1 + %"$blk1_envload_419" = load i8*, i8** %"$$fundef_34_env_blk1_418", align 8 %blk1 = alloca i8*, align 8 - store i8* %"$blk1_envload_409", i8** %blk1, align 8 + store i8* %"$blk1_envload_419", i8** %blk1, align 8 %"$retval_35" = alloca %TName_Bool*, 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" + call void @llvm.dbg.declare(metadata %TName_Bool** %"$retval_35", metadata !12, metadata !DIExpression()), !dbg !15 + %"$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_412": ; preds = %entry +"$out_of_gas_422": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_413" + br label %"$have_gas_423" -"$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_423": ; preds = %"$out_of_gas_422", %entry + %"$consume_424" = sub i64 %"$gasrem_420", 1 + store i64 %"$consume_424", i64* @_gasrem, align 8 %bc1 = alloca %TName_Bool*, align 8 - %"$gasrem_415" = load i64, i64* @_gasrem, align 8 - %"$gascmp_416" = icmp ugt i64 32, %"$gasrem_415" - br i1 %"$gascmp_416", label %"$out_of_gas_417", label %"$have_gas_418" + call void @llvm.dbg.declare(metadata %TName_Bool** %bc1, metadata !16, metadata !DIExpression()), !dbg !17 + %"$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_417": ; preds = %"$have_gas_413" +"$out_of_gas_427": ; preds = %"$have_gas_423" call void @_out_of_gas() - br label %"$have_gas_418" + br label %"$have_gas_428" -"$have_gas_418": ; preds = %"$out_of_gas_417", %"$have_gas_413" - %"$consume_419" = sub i64 %"$gasrem_415", 32 - store i64 %"$consume_419", i64* @_gasrem, align 8 - %"$execptr_load_420" = load i8*, i8** @_execptr, align 8 - %"$blk1_421" = load i8*, i8** %blk1, align 8 - %"$blt_call_422" = call %TName_Bool* @_lt_BNum(i8* %"$execptr_load_420", i8* %"$blk1_421", i8* %1), !dbg !8 - store %TName_Bool* %"$blt_call_422", %TName_Bool** %bc1, align 8, !dbg !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" +"$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 + %"$blt_call_432" = call %TName_Bool* @_lt_BNum(i8* %"$execptr_load_430", i8* %"$blk1_431", i8* %1), !dbg !18 + store %TName_Bool* %"$blt_call_432", %TName_Bool** %bc1, align 8, !dbg !18 + %"$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_426": ; preds = %"$have_gas_418" +"$out_of_gas_436": ; preds = %"$have_gas_428" call void @_out_of_gas() - br label %"$have_gas_427" + br label %"$have_gas_437" -"$have_gas_427": ; preds = %"$out_of_gas_426", %"$have_gas_418" - %"$consume_428" = sub i64 %"$gasrem_424", 1 - store i64 %"$consume_428", i64* @_gasrem, align 8 +"$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 %bc2 = alloca %TName_Bool*, align 8 - %"$gasrem_429" = load i64, i64* @_gasrem, align 8 - %"$gascmp_430" = icmp ugt i64 32, %"$gasrem_429" - br i1 %"$gascmp_430", label %"$out_of_gas_431", label %"$have_gas_432" + call void @llvm.dbg.declare(metadata %TName_Bool** %bc2, metadata !19, metadata !DIExpression()), !dbg !20 + %"$gasrem_439" = load i64, i64* @_gasrem, align 8 + %"$gascmp_440" = icmp ugt i64 32, %"$gasrem_439" + br i1 %"$gascmp_440", label %"$out_of_gas_441", label %"$have_gas_442" -"$out_of_gas_431": ; preds = %"$have_gas_427" +"$out_of_gas_441": ; preds = %"$have_gas_437" call void @_out_of_gas() - br label %"$have_gas_432" + br label %"$have_gas_442" -"$have_gas_432": ; preds = %"$out_of_gas_431", %"$have_gas_427" - %"$consume_433" = sub i64 %"$gasrem_429", 32 - store i64 %"$consume_433", i64* @_gasrem, align 8 - %"$execptr_load_434" = load i8*, i8** @_execptr, align 8 - %"$blk1_435" = load i8*, i8** %blk1, align 8 - %"$eq_call_436" = call %TName_Bool* @_eq_BNum(i8* %"$execptr_load_434", i8* %"$blk1_435", i8* %1), !dbg !9 - store %TName_Bool* %"$eq_call_436", %TName_Bool** %bc2, align 8, !dbg !9 - %"$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" +"$have_gas_442": ; preds = %"$out_of_gas_441", %"$have_gas_437" + %"$consume_443" = sub i64 %"$gasrem_439", 32 + store i64 %"$consume_443", i64* @_gasrem, align 8 + %"$execptr_load_444" = load i8*, i8** @_execptr, align 8 + %"$blk1_445" = load i8*, i8** %blk1, align 8 + %"$eq_call_446" = call %TName_Bool* @_eq_BNum(i8* %"$execptr_load_444", i8* %"$blk1_445", i8* %1), !dbg !21 + store %TName_Bool* %"$eq_call_446", %TName_Bool** %bc2, align 8, !dbg !21 + %"$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_440": ; preds = %"$have_gas_432" +"$out_of_gas_450": ; preds = %"$have_gas_442" call void @_out_of_gas() - br label %"$have_gas_441" + br label %"$have_gas_451" -"$have_gas_441": ; preds = %"$out_of_gas_440", %"$have_gas_432" - %"$consume_442" = sub i64 %"$gasrem_438", 1 - store i64 %"$consume_442", i64* @_gasrem, align 8 +"$have_gas_451": ; preds = %"$out_of_gas_450", %"$have_gas_442" + %"$consume_452" = sub i64 %"$gasrem_448", 1 + store i64 %"$consume_452", i64* @_gasrem, align 8 %"$BoolUtils.orb_2" = alloca { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, align 8 - %"$BoolUtils.orb_443" = 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_444" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.orb_443", 0 - %"$BoolUtils.orb_envptr_445" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.orb_443", 1 - %"$bc1_446" = load %TName_Bool*, %TName_Bool** %bc1, align 8 - %"$BoolUtils.orb_call_447" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.orb_fptr_444"(i8* %"$BoolUtils.orb_envptr_445", %TName_Bool* %"$bc1_446"), !dbg !10 - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.orb_call_447", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.orb_2", align 8, !dbg !10 + %"$BoolUtils.orb_453" = 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_454" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.orb_453", 0 + %"$BoolUtils.orb_envptr_455" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.orb_453", 1 + %"$bc1_456" = load %TName_Bool*, %TName_Bool** %bc1, align 8 + %"$BoolUtils.orb_call_457" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.orb_fptr_454"(i8* %"$BoolUtils.orb_envptr_455", %TName_Bool* %"$bc1_456"), !dbg !22 + store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.orb_call_457", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.orb_2", align 8, !dbg !22 %"$BoolUtils.orb_3" = alloca %TName_Bool*, align 8 - %"$$BoolUtils.orb_2_448" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.orb_2", align 8 - %"$$BoolUtils.orb_2_fptr_449" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.orb_2_448", 0 - %"$$BoolUtils.orb_2_envptr_450" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.orb_2_448", 1 - %"$bc2_451" = load %TName_Bool*, %TName_Bool** %bc2, align 8 - %"$$BoolUtils.orb_2_call_452" = call %TName_Bool* %"$$BoolUtils.orb_2_fptr_449"(i8* %"$$BoolUtils.orb_2_envptr_450", %TName_Bool* %"$bc2_451"), !dbg !10 - store %TName_Bool* %"$$BoolUtils.orb_2_call_452", %TName_Bool** %"$BoolUtils.orb_3", align 8, !dbg !10 - %"$$BoolUtils.orb_3_453" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.orb_3", align 8 - store %TName_Bool* %"$$BoolUtils.orb_3_453", %TName_Bool** %"$retval_35", align 8, !dbg !10 - %"$$retval_35_454" = load %TName_Bool*, %TName_Bool** %"$retval_35", align 8 - ret %TName_Bool* %"$$retval_35_454" + call void @llvm.dbg.declare(metadata %TName_Bool** %"$BoolUtils.orb_3", metadata !23, metadata !DIExpression()), !dbg !22 + %"$$BoolUtils.orb_2_458" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.orb_2", align 8 + %"$$BoolUtils.orb_2_fptr_459" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.orb_2_458", 0 + %"$$BoolUtils.orb_2_envptr_460" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.orb_2_458", 1 + %"$bc2_461" = load %TName_Bool*, %TName_Bool** %bc2, align 8 + %"$$BoolUtils.orb_2_call_462" = call %TName_Bool* %"$$BoolUtils.orb_2_fptr_459"(i8* %"$$BoolUtils.orb_2_envptr_460", %TName_Bool* %"$bc2_461"), !dbg !22 + store %TName_Bool* %"$$BoolUtils.orb_2_call_462", %TName_Bool** %"$BoolUtils.orb_3", align 8, !dbg !22 + %"$$BoolUtils.orb_3_463" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.orb_3", align 8 + store %TName_Bool* %"$$BoolUtils.orb_3_463", %TName_Bool** %"$retval_35", align 8, !dbg !22 + %"$$retval_35_464" = load %TName_Bool*, %TName_Bool** %"$retval_35", align 8 + ret %TName_Bool* %"$$retval_35_464" } -define internal { %TName_Bool* (i8*, i8*)*, i8* } @"$fundef_32"(%"$$fundef_32_env_139"* %0, i8* %1) !dbg !11 { +define internal { %TName_Bool* (i8*, i8*)*, i8* } @"$fundef_32"(%"$$fundef_32_env_139"* %0, i8* %1) !dbg !24 { entry: - %"$$fundef_32_env_BoolUtils.orb_391" = getelementptr inbounds %"$$fundef_32_env_139", %"$$fundef_32_env_139"* %0, i32 0, i32 0 - %"$BoolUtils.orb_envload_392" = 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_391", align 8 + %"$blk1_415" = alloca i8*, align 8 + store i8* %1, i8** %"$blk1_415", align 8 + call void @llvm.dbg.declare(metadata i8** %"$blk1_415", metadata !25, metadata !DIExpression()), !dbg !26 + %"$$fundef_32_env_BoolUtils.orb_400" = getelementptr inbounds %"$$fundef_32_env_139", %"$$fundef_32_env_139"* %0, i32 0, i32 0 + %"$BoolUtils.orb_envload_401" = 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_400", 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_392", { { %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_envload_401", { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }* %BoolUtils.orb, align 8 %"$retval_33" = alloca { %TName_Bool* (i8*, i8*)*, 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 = %entry + call void @_out_of_gas() + br label %"$have_gas_405" + +"$have_gas_405": ; preds = %"$out_of_gas_404", %entry + %"$consume_406" = sub i64 %"$gasrem_402", 1 + store i64 %"$consume_406", i64* @_gasrem, align 8 + %"$$fundef_34_envp_407_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_34_envp_407_salloc" = call i8* @_salloc(i8* %"$$fundef_34_envp_407_load", i64 24) + %"$$fundef_34_envp_407" = bitcast i8* %"$$fundef_34_envp_407_salloc" to %"$$fundef_34_env_138"* + %"$$fundef_34_env_voidp_409" = bitcast %"$$fundef_34_env_138"* %"$$fundef_34_envp_407" to i8* + %"$$fundef_34_cloval_410" = insertvalue { %TName_Bool* (i8*, i8*)*, i8* } { %TName_Bool* (i8*, i8*)* bitcast (%TName_Bool* (%"$$fundef_34_env_138"*, i8*)* @"$fundef_34" to %TName_Bool* (i8*, i8*)*), i8* undef }, i8* %"$$fundef_34_env_voidp_409", 1 + %"$$fundef_34_env_BoolUtils.orb_411" = getelementptr inbounds %"$$fundef_34_env_138", %"$$fundef_34_env_138"* %"$$fundef_34_envp_407", i32 0, i32 0 + %"$BoolUtils.orb_412" = 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_412", { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }* %"$$fundef_34_env_BoolUtils.orb_411", align 8 + %"$$fundef_34_env_blk1_413" = getelementptr inbounds %"$$fundef_34_env_138", %"$$fundef_34_env_138"* %"$$fundef_34_envp_407", i32 0, i32 1 + store i8* %1, i8** %"$$fundef_34_env_blk1_413", align 8 + store { %TName_Bool* (i8*, i8*)*, i8* } %"$$fundef_34_cloval_410", { %TName_Bool* (i8*, i8*)*, i8* }* %"$retval_33", align 8, !dbg !27 + %"$$retval_33_414" = load { %TName_Bool* (i8*, i8*)*, i8* }, { %TName_Bool* (i8*, i8*)*, i8* }* %"$retval_33", align 8 + ret { %TName_Bool* (i8*, i8*)*, i8* } %"$$retval_33_414" +} + +define internal %TName_Bool* @"$fundef_30"(%"$$fundef_30_env_140"* %0, %TName_Bool* %1) !dbg !28 { +entry: + %"$c_399" = alloca %TName_Bool*, align 8 + store %TName_Bool* %1, %TName_Bool** %"$c_399", align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$c_399", metadata !30, metadata !DIExpression()), !dbg !31 + %"$$fundef_30_env_b_369" = getelementptr inbounds %"$$fundef_30_env_140", %"$$fundef_30_env_140"* %0, i32 0, i32 0 + %"$b_envload_370" = load %TName_Bool*, %TName_Bool** %"$$fundef_30_env_b_369", align 8 + %b = alloca %TName_Bool*, align 8 + store %TName_Bool* %"$b_envload_370", %TName_Bool** %b, align 8 + %"$retval_31" = alloca %TName_Bool*, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$retval_31", metadata !32, metadata !DIExpression()), !dbg !33 + %"$gasrem_371" = load i64, i64* @_gasrem, align 8 + %"$gascmp_372" = icmp ugt i64 2, %"$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", 2 + store i64 %"$consume_375", i64* @_gasrem, align 8 + %"$b_377" = load %TName_Bool*, %TName_Bool** %b, align 8 + %"$b_tag_378" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$b_377", i32 0, i32 0 + %"$b_tag_379" = load i8, i8* %"$b_tag_378", align 1 + switch i8 %"$b_tag_379", label %"$empty_default_380" [ + i8 0, label %"$True_381" + i8 1, label %"$False_391" + ], !dbg !33 + +"$True_381": ; preds = %"$have_gas_374" + %"$b_382" = bitcast %TName_Bool* %"$b_377" to %CName_True* + %"$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 = %"$True_381" + call void @_out_of_gas() + br label %"$have_gas_386" + +"$have_gas_386": ; preds = %"$out_of_gas_385", %"$True_381" + %"$consume_387" = sub i64 %"$gasrem_383", 1 + store i64 %"$consume_387", i64* @_gasrem, align 8 + %"$adtval_388_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_388_salloc" = call i8* @_salloc(i8* %"$adtval_388_load", i64 1) + %"$adtval_388" = bitcast i8* %"$adtval_388_salloc" to %CName_True* + %"$adtgep_389" = getelementptr inbounds %CName_True, %CName_True* %"$adtval_388", i32 0, i32 0 + store i8 0, i8* %"$adtgep_389", align 1 + %"$adtptr_390" = bitcast %CName_True* %"$adtval_388" to %TName_Bool* + store %TName_Bool* %"$adtptr_390", %TName_Bool** %"$retval_31", align 8, !dbg !34 + br label %"$matchsucc_376" + +"$False_391": ; preds = %"$have_gas_374" + %"$b_392" = bitcast %TName_Bool* %"$b_377" to %CName_False* %"$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 = %"$False_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", %"$False_391" %"$consume_397" = sub i64 %"$gasrem_393", 1 store i64 %"$consume_397", i64* @_gasrem, align 8 - %"$$fundef_34_envp_398_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_34_envp_398_salloc" = call i8* @_salloc(i8* %"$$fundef_34_envp_398_load", i64 24) - %"$$fundef_34_envp_398" = bitcast i8* %"$$fundef_34_envp_398_salloc" to %"$$fundef_34_env_138"* - %"$$fundef_34_env_voidp_400" = bitcast %"$$fundef_34_env_138"* %"$$fundef_34_envp_398" to i8* - %"$$fundef_34_cloval_401" = insertvalue { %TName_Bool* (i8*, i8*)*, i8* } { %TName_Bool* (i8*, i8*)* bitcast (%TName_Bool* (%"$$fundef_34_env_138"*, i8*)* @"$fundef_34" to %TName_Bool* (i8*, i8*)*), i8* undef }, i8* %"$$fundef_34_env_voidp_400", 1 - %"$$fundef_34_env_BoolUtils.orb_402" = getelementptr inbounds %"$$fundef_34_env_138", %"$$fundef_34_env_138"* %"$$fundef_34_envp_398", i32 0, i32 0 - %"$BoolUtils.orb_403" = 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_403", { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }* %"$$fundef_34_env_BoolUtils.orb_402", align 8 - %"$$fundef_34_env_blk1_404" = getelementptr inbounds %"$$fundef_34_env_138", %"$$fundef_34_env_138"* %"$$fundef_34_envp_398", i32 0, i32 1 - store i8* %1, i8** %"$$fundef_34_env_blk1_404", align 8 - store { %TName_Bool* (i8*, i8*)*, i8* } %"$$fundef_34_cloval_401", { %TName_Bool* (i8*, i8*)*, i8* }* %"$retval_33", align 8, !dbg !12 - %"$$retval_33_405" = load { %TName_Bool* (i8*, i8*)*, i8* }, { %TName_Bool* (i8*, i8*)*, i8* }* %"$retval_33", align 8 - ret { %TName_Bool* (i8*, i8*)*, i8* } %"$$retval_33_405" -} + store %TName_Bool* %1, %TName_Bool** %"$retval_31", align 8, !dbg !37 + br label %"$matchsucc_376" -define internal %TName_Bool* @"$fundef_30"(%"$$fundef_30_env_140"* %0, %TName_Bool* %1) !dbg !13 { -entry: - %"$$fundef_30_env_b_361" = getelementptr inbounds %"$$fundef_30_env_140", %"$$fundef_30_env_140"* %0, i32 0, i32 0 - %"$b_envload_362" = load %TName_Bool*, %TName_Bool** %"$$fundef_30_env_b_361", align 8 - %b = alloca %TName_Bool*, align 8 - store %TName_Bool* %"$b_envload_362", %TName_Bool** %b, align 8 - %"$retval_31" = alloca %TName_Bool*, align 8 - %"$gasrem_363" = load i64, i64* @_gasrem, align 8 - %"$gascmp_364" = icmp ugt i64 2, %"$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", 2 - store i64 %"$consume_367", i64* @_gasrem, align 8 - %"$b_369" = load %TName_Bool*, %TName_Bool** %b, align 8 - %"$b_tag_370" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$b_369", i32 0, i32 0 - %"$b_tag_371" = load i8, i8* %"$b_tag_370", align 1 - switch i8 %"$b_tag_371", label %"$empty_default_372" [ - i8 0, label %"$True_373" - i8 1, label %"$False_383" - ], !dbg !15 - -"$True_373": ; preds = %"$have_gas_366" - %"$b_374" = bitcast %TName_Bool* %"$b_369" to %CName_True* - %"$gasrem_375" = load i64, i64* @_gasrem, align 8 - %"$gascmp_376" = icmp ugt i64 1, %"$gasrem_375" - br i1 %"$gascmp_376", label %"$out_of_gas_377", label %"$have_gas_378" - -"$out_of_gas_377": ; preds = %"$True_373" - call void @_out_of_gas() - br label %"$have_gas_378" - -"$have_gas_378": ; preds = %"$out_of_gas_377", %"$True_373" - %"$consume_379" = sub i64 %"$gasrem_375", 1 - store i64 %"$consume_379", i64* @_gasrem, align 8 - %"$adtval_380_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_380_salloc" = call i8* @_salloc(i8* %"$adtval_380_load", i64 1) - %"$adtval_380" = bitcast i8* %"$adtval_380_salloc" to %CName_True* - %"$adtgep_381" = getelementptr inbounds %CName_True, %CName_True* %"$adtval_380", i32 0, i32 0 - store i8 0, i8* %"$adtgep_381", align 1 - %"$adtptr_382" = bitcast %CName_True* %"$adtval_380" to %TName_Bool* - store %TName_Bool* %"$adtptr_382", %TName_Bool** %"$retval_31", align 8, !dbg !16 - br label %"$matchsucc_368" - -"$False_383": ; preds = %"$have_gas_366" - %"$b_384" = bitcast %TName_Bool* %"$b_369" to %CName_False* - %"$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 = %"$False_383" - call void @_out_of_gas() - br label %"$have_gas_388" - -"$have_gas_388": ; preds = %"$out_of_gas_387", %"$False_383" - %"$consume_389" = sub i64 %"$gasrem_385", 1 - store i64 %"$consume_389", i64* @_gasrem, align 8 - store %TName_Bool* %1, %TName_Bool** %"$retval_31", align 8, !dbg !19 - br label %"$matchsucc_368" - -"$empty_default_372": ; preds = %"$have_gas_366" - br label %"$matchsucc_368" - -"$matchsucc_368": ; preds = %"$have_gas_388", %"$have_gas_378", %"$empty_default_372" - %"$$retval_31_390" = load %TName_Bool*, %TName_Bool** %"$retval_31", align 8 - ret %TName_Bool* %"$$retval_31_390" +"$empty_default_380": ; preds = %"$have_gas_374" + br label %"$matchsucc_376" + +"$matchsucc_376": ; preds = %"$have_gas_396", %"$have_gas_386", %"$empty_default_380" + %"$$retval_31_398" = load %TName_Bool*, %TName_Bool** %"$retval_31", align 8 + ret %TName_Bool* %"$$retval_31_398" } -define internal { %TName_Bool* (i8*, %TName_Bool*)*, i8* } @"$fundef_28"(%"$$fundef_28_env_141"* %0, %TName_Bool* %1) !dbg !21 { +define internal { %TName_Bool* (i8*, %TName_Bool*)*, i8* } @"$fundef_28"(%"$$fundef_28_env_141"* %0, %TName_Bool* %1) !dbg !39 { entry: + %"$b_368" = alloca %TName_Bool*, align 8 + store %TName_Bool* %1, %TName_Bool** %"$b_368", align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$b_368", metadata !40, metadata !DIExpression()), !dbg !41 %"$retval_29" = alloca { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, 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 = %entry - call void @_out_of_gas() - br label %"$have_gas_353" - -"$have_gas_353": ; preds = %"$out_of_gas_352", %entry - %"$consume_354" = sub i64 %"$gasrem_350", 1 - store i64 %"$consume_354", i64* @_gasrem, align 8 - %"$$fundef_30_envp_355_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_30_envp_355_salloc" = call i8* @_salloc(i8* %"$$fundef_30_envp_355_load", i64 8) - %"$$fundef_30_envp_355" = bitcast i8* %"$$fundef_30_envp_355_salloc" to %"$$fundef_30_env_140"* - %"$$fundef_30_env_voidp_357" = bitcast %"$$fundef_30_env_140"* %"$$fundef_30_envp_355" to i8* - %"$$fundef_30_cloval_358" = insertvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } { %TName_Bool* (i8*, %TName_Bool*)* bitcast (%TName_Bool* (%"$$fundef_30_env_140"*, %TName_Bool*)* @"$fundef_30" to %TName_Bool* (i8*, %TName_Bool*)*), i8* undef }, i8* %"$$fundef_30_env_voidp_357", 1 - %"$$fundef_30_env_b_359" = getelementptr inbounds %"$$fundef_30_env_140", %"$$fundef_30_env_140"* %"$$fundef_30_envp_355", i32 0, i32 0 - store %TName_Bool* %1, %TName_Bool** %"$$fundef_30_env_b_359", align 8 - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$fundef_30_cloval_358", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$retval_29", align 8, !dbg !22 - %"$$retval_29_360" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$retval_29", align 8 - ret { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$retval_29_360" + %"$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 + %"$$fundef_30_envp_362_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_30_envp_362_salloc" = call i8* @_salloc(i8* %"$$fundef_30_envp_362_load", i64 8) + %"$$fundef_30_envp_362" = bitcast i8* %"$$fundef_30_envp_362_salloc" to %"$$fundef_30_env_140"* + %"$$fundef_30_env_voidp_364" = bitcast %"$$fundef_30_env_140"* %"$$fundef_30_envp_362" to i8* + %"$$fundef_30_cloval_365" = insertvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } { %TName_Bool* (i8*, %TName_Bool*)* bitcast (%TName_Bool* (%"$$fundef_30_env_140"*, %TName_Bool*)* @"$fundef_30" to %TName_Bool* (i8*, %TName_Bool*)*), i8* undef }, i8* %"$$fundef_30_env_voidp_364", 1 + %"$$fundef_30_env_b_366" = getelementptr inbounds %"$$fundef_30_env_140", %"$$fundef_30_env_140"* %"$$fundef_30_envp_362", i32 0, i32 0 + store %TName_Bool* %1, %TName_Bool** %"$$fundef_30_env_b_366", align 8 + store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$fundef_30_cloval_365", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$retval_29", align 8, !dbg !42 + %"$$retval_29_367" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$retval_29", align 8 + ret { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$retval_29_367" } -define internal %"TName_Option_Map_(ByStr20)_(Uint128)"* @"$fundef_40"(%"$$fundef_40_env_142"* %0, %Uint128 %1) !dbg !23 { +define internal %"TName_Option_Map_(ByStr20)_(Uint128)"* @"$fundef_40"(%"$$fundef_40_env_142"* %0, %Uint128 %1) !dbg !43 { entry: - %"$$fundef_40_env_bs_271" = getelementptr inbounds %"$$fundef_40_env_142", %"$$fundef_40_env_142"* %0, i32 0, i32 0 - %"$bs_envload_272" = load %Map_ByStr20_Uint128*, %Map_ByStr20_Uint128** %"$$fundef_40_env_bs_271", align 8 + %"$amount_356" = alloca %Uint128, align 8 + store %Uint128 %1, %Uint128* %"$amount_356", align 8 + call void @llvm.dbg.declare(metadata %Uint128* %"$amount_356", metadata !44, metadata !DIExpression()), !dbg !46 + %"$$fundef_40_env_bs_277" = getelementptr inbounds %"$$fundef_40_env_142", %"$$fundef_40_env_142"* %0, i32 0, i32 0 + %"$bs_envload_278" = load %Map_ByStr20_Uint128*, %Map_ByStr20_Uint128** %"$$fundef_40_env_bs_277", align 8 %bs = alloca %Map_ByStr20_Uint128*, align 8 - store %Map_ByStr20_Uint128* %"$bs_envload_272", %Map_ByStr20_Uint128** %bs, align 8 - %"$$fundef_40_env_sender_273" = getelementptr inbounds %"$$fundef_40_env_142", %"$$fundef_40_env_142"* %0, i32 0, i32 1 - %"$sender_envload_274" = load [20 x i8], [20 x i8]* %"$$fundef_40_env_sender_273", align 1 + store %Map_ByStr20_Uint128* %"$bs_envload_278", %Map_ByStr20_Uint128** %bs, align 8 + %"$$fundef_40_env_sender_279" = getelementptr inbounds %"$$fundef_40_env_142", %"$$fundef_40_env_142"* %0, i32 0, i32 1 + %"$sender_envload_280" = load [20 x i8], [20 x i8]* %"$$fundef_40_env_sender_279", align 1 %sender = alloca [20 x i8], align 1 - store [20 x i8] %"$sender_envload_274", [20 x i8]* %sender, align 1 + store [20 x i8] %"$sender_envload_280", [20 x i8]* %sender, align 1 %"$retval_41" = alloca %"TName_Option_Map_(ByStr20)_(Uint128)"*, 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" + call void @llvm.dbg.declare(metadata %"TName_Option_Map_(ByStr20)_(Uint128)"** %"$retval_41", metadata !47, metadata !DIExpression()), !dbg !50 + %"$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_277": ; preds = %entry +"$out_of_gas_283": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_278" + br label %"$have_gas_284" -"$have_gas_278": ; preds = %"$out_of_gas_277", %entry - %"$consume_279" = sub i64 %"$gasrem_275", 1 - store i64 %"$consume_279", i64* @_gasrem, align 8 +"$have_gas_284": ; preds = %"$out_of_gas_283", %entry + %"$consume_285" = sub i64 %"$gasrem_281", 1 + store i64 %"$consume_285", i64* @_gasrem, align 8 %c = alloca %TName_Bool*, 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 = %"$have_gas_278" - call void @_out_of_gas() - br label %"$have_gas_283" - -"$have_gas_283": ; preds = %"$out_of_gas_282", %"$have_gas_278" - %"$consume_284" = sub i64 %"$gasrem_280", 1 - store i64 %"$consume_284", i64* @_gasrem, align 8 - %"$execptr_load_285" = load i8*, i8** @_execptr, align 8 - %"$bs_286" = load %Map_ByStr20_Uint128*, %Map_ByStr20_Uint128** %bs, align 8 - %"$$bs_286_287" = bitcast %Map_ByStr20_Uint128* %"$bs_286" to i8* - %"$contains_sender_288" = alloca [20 x i8], align 1 - %"$sender_289" = load [20 x i8], [20 x i8]* %sender, align 1 - store [20 x i8] %"$sender_289", [20 x i8]* %"$contains_sender_288", align 1 - %"$$contains_sender_288_290" = bitcast [20 x i8]* %"$contains_sender_288" to i8* - %"$contains_call_291" = call %TName_Bool* @_contains(i8* %"$execptr_load_285", %_TyDescrTy_Typ* @"$TyDescr_Map_87", i8* %"$$bs_286_287", i8* %"$$contains_sender_288_290"), !dbg !24 - store %TName_Bool* %"$contains_call_291", %TName_Bool** %c, align 8, !dbg !24 - %"$gasrem_293" = load i64, i64* @_gasrem, align 8 - %"$gascmp_294" = icmp ugt i64 2, %"$gasrem_293" - br i1 %"$gascmp_294", label %"$out_of_gas_295", label %"$have_gas_296" - -"$out_of_gas_295": ; preds = %"$have_gas_283" - call void @_out_of_gas() - br label %"$have_gas_296" - -"$have_gas_296": ; preds = %"$out_of_gas_295", %"$have_gas_283" - %"$consume_297" = sub i64 %"$gasrem_293", 2 - store i64 %"$consume_297", i64* @_gasrem, align 8 - %"$c_299" = load %TName_Bool*, %TName_Bool** %c, align 8 - %"$c_tag_300" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$c_299", i32 0, i32 0 - %"$c_tag_301" = load i8, i8* %"$c_tag_300", align 1 - switch i8 %"$c_tag_301", label %"$empty_default_302" [ - i8 1, label %"$False_303" - i8 0, label %"$True_339" - ], !dbg !25 - -"$False_303": ; preds = %"$have_gas_296" - %"$c_304" = bitcast %TName_Bool* %"$c_299" to %CName_False* - %"$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 = %"$False_303" - call void @_out_of_gas() - br label %"$have_gas_308" - -"$have_gas_308": ; preds = %"$out_of_gas_307", %"$False_303" - %"$consume_309" = sub i64 %"$gasrem_305", 1 - store i64 %"$consume_309", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %c, metadata !51, metadata !DIExpression()), !dbg !52 + %"$gasrem_286" = load i64, i64* @_gasrem, align 8 + %"$gascmp_287" = icmp ugt i64 1, %"$gasrem_286" + br i1 %"$gascmp_287", label %"$out_of_gas_288", label %"$have_gas_289" + +"$out_of_gas_288": ; preds = %"$have_gas_284" + call void @_out_of_gas() + br label %"$have_gas_289" + +"$have_gas_289": ; preds = %"$out_of_gas_288", %"$have_gas_284" + %"$consume_290" = sub i64 %"$gasrem_286", 1 + store i64 %"$consume_290", i64* @_gasrem, align 8 + %"$execptr_load_291" = load i8*, i8** @_execptr, align 8 + %"$bs_292" = load %Map_ByStr20_Uint128*, %Map_ByStr20_Uint128** %bs, align 8 + %"$$bs_292_293" = bitcast %Map_ByStr20_Uint128* %"$bs_292" to i8* + %"$contains_sender_294" = alloca [20 x i8], align 1 + %"$sender_295" = load [20 x i8], [20 x i8]* %sender, align 1 + store [20 x i8] %"$sender_295", [20 x i8]* %"$contains_sender_294", align 1 + %"$$contains_sender_294_296" = bitcast [20 x i8]* %"$contains_sender_294" to i8* + %"$contains_call_297" = call %TName_Bool* @_contains(i8* %"$execptr_load_291", %_TyDescrTy_Typ* @"$TyDescr_Map_87", i8* %"$$bs_292_293", i8* %"$$contains_sender_294_296"), !dbg !53 + store %TName_Bool* %"$contains_call_297", %TName_Bool** %c, align 8, !dbg !53 + %"$gasrem_299" = load i64, i64* @_gasrem, align 8 + %"$gascmp_300" = icmp ugt i64 2, %"$gasrem_299" + br i1 %"$gascmp_300", label %"$out_of_gas_301", label %"$have_gas_302" + +"$out_of_gas_301": ; preds = %"$have_gas_289" + call void @_out_of_gas() + br label %"$have_gas_302" + +"$have_gas_302": ; preds = %"$out_of_gas_301", %"$have_gas_289" + %"$consume_303" = sub i64 %"$gasrem_299", 2 + store i64 %"$consume_303", i64* @_gasrem, align 8 + %"$c_305" = load %TName_Bool*, %TName_Bool** %c, align 8 + %"$c_tag_306" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$c_305", i32 0, i32 0 + %"$c_tag_307" = load i8, i8* %"$c_tag_306", align 1 + switch i8 %"$c_tag_307", label %"$empty_default_308" [ + i8 1, label %"$False_309" + i8 0, label %"$True_345" + ], !dbg !54 + +"$False_309": ; preds = %"$have_gas_302" + %"$c_310" = bitcast %TName_Bool* %"$c_305" to %CName_False* + %"$gasrem_311" = load i64, i64* @_gasrem, align 8 + %"$gascmp_312" = icmp ugt i64 1, %"$gasrem_311" + br i1 %"$gascmp_312", label %"$out_of_gas_313", label %"$have_gas_314" + +"$out_of_gas_313": ; preds = %"$False_309" + call void @_out_of_gas() + br label %"$have_gas_314" + +"$have_gas_314": ; preds = %"$out_of_gas_313", %"$False_309" + %"$consume_315" = sub i64 %"$gasrem_311", 1 + store i64 %"$consume_315", i64* @_gasrem, align 8 %bs1 = alloca %Map_ByStr20_Uint128*, align 8 - %"$bs_310" = load %Map_ByStr20_Uint128*, %Map_ByStr20_Uint128** %bs, align 8 - %"$$bs_310_311" = bitcast %Map_ByStr20_Uint128* %"$bs_310" to i8* - %"$_lengthof_call_312" = call i64 @_lengthof(%_TyDescrTy_Typ* @"$TyDescr_Map_87", i8* %"$$bs_310_311") - %"$gasadd_313" = add i64 1, %"$_lengthof_call_312" - %"$gasrem_314" = load i64, i64* @_gasrem, align 8 - %"$gascmp_315" = icmp ugt i64 %"$gasadd_313", %"$gasrem_314" - br i1 %"$gascmp_315", label %"$out_of_gas_316", label %"$have_gas_317" - -"$out_of_gas_316": ; preds = %"$have_gas_308" - call void @_out_of_gas() - br label %"$have_gas_317" - -"$have_gas_317": ; preds = %"$out_of_gas_316", %"$have_gas_308" - %"$consume_318" = sub i64 %"$gasrem_314", %"$gasadd_313" - store i64 %"$consume_318", i64* @_gasrem, align 8 - %"$execptr_load_319" = load i8*, i8** @_execptr, align 8 - %"$bs_320" = load %Map_ByStr20_Uint128*, %Map_ByStr20_Uint128** %bs, align 8 - %"$$bs_320_321" = bitcast %Map_ByStr20_Uint128* %"$bs_320" to i8* - %"$put_sender_322" = alloca [20 x i8], align 1 - %"$sender_323" = load [20 x i8], [20 x i8]* %sender, align 1 - store [20 x i8] %"$sender_323", [20 x i8]* %"$put_sender_322", align 1 - %"$$put_sender_322_324" = bitcast [20 x i8]* %"$put_sender_322" to i8* - %"$put_amount_325" = alloca %Uint128, align 8 - store %Uint128 %1, %Uint128* %"$put_amount_325", align 8 - %"$$put_amount_325_326" = bitcast %Uint128* %"$put_amount_325" to i8* - %"$put_call_327" = call i8* @_put(i8* %"$execptr_load_319", %_TyDescrTy_Typ* @"$TyDescr_Map_87", i8* %"$$bs_320_321", i8* %"$$put_sender_322_324", i8* %"$$put_amount_325_326"), !dbg !26 - %"$put_328" = bitcast i8* %"$put_call_327" to %Map_ByStr20_Uint128* - store %Map_ByStr20_Uint128* %"$put_328", %Map_ByStr20_Uint128** %bs1, align 8, !dbg !26 - %"$gasrem_329" = load i64, i64* @_gasrem, align 8 - %"$gascmp_330" = icmp ugt i64 1, %"$gasrem_329" - br i1 %"$gascmp_330", label %"$out_of_gas_331", label %"$have_gas_332" - -"$out_of_gas_331": ; preds = %"$have_gas_317" - call void @_out_of_gas() - br label %"$have_gas_332" - -"$have_gas_332": ; preds = %"$out_of_gas_331", %"$have_gas_317" - %"$consume_333" = sub i64 %"$gasrem_329", 1 - store i64 %"$consume_333", i64* @_gasrem, align 8 - %"$bs1_334" = load %Map_ByStr20_Uint128*, %Map_ByStr20_Uint128** %bs1, align 8 - %"$adtval_335_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_335_salloc" = call i8* @_salloc(i8* %"$adtval_335_load", i64 9) - %"$adtval_335" = bitcast i8* %"$adtval_335_salloc" to %"CName_Some_Map_(ByStr20)_(Uint128)"* - %"$adtgep_336" = getelementptr inbounds %"CName_Some_Map_(ByStr20)_(Uint128)", %"CName_Some_Map_(ByStr20)_(Uint128)"* %"$adtval_335", i32 0, i32 0 - store i8 0, i8* %"$adtgep_336", align 1 - %"$adtgep_337" = getelementptr inbounds %"CName_Some_Map_(ByStr20)_(Uint128)", %"CName_Some_Map_(ByStr20)_(Uint128)"* %"$adtval_335", i32 0, i32 1 - store %Map_ByStr20_Uint128* %"$bs1_334", %Map_ByStr20_Uint128** %"$adtgep_337", align 8 - %"$adtptr_338" = bitcast %"CName_Some_Map_(ByStr20)_(Uint128)"* %"$adtval_335" to %"TName_Option_Map_(ByStr20)_(Uint128)"* - store %"TName_Option_Map_(ByStr20)_(Uint128)"* %"$adtptr_338", %"TName_Option_Map_(ByStr20)_(Uint128)"** %"$retval_41", align 8, !dbg !29 - br label %"$matchsucc_298" - -"$True_339": ; preds = %"$have_gas_296" - %"$c_340" = bitcast %TName_Bool* %"$c_299" to %CName_True* - %"$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 = %"$True_339" - call void @_out_of_gas() - br label %"$have_gas_344" - -"$have_gas_344": ; preds = %"$out_of_gas_343", %"$True_339" - %"$consume_345" = sub i64 %"$gasrem_341", 1 - store i64 %"$consume_345", i64* @_gasrem, align 8 - %"$adtval_346_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_346_salloc" = call i8* @_salloc(i8* %"$adtval_346_load", i64 1) - %"$adtval_346" = bitcast i8* %"$adtval_346_salloc" to %"CName_None_Map_(ByStr20)_(Uint128)"* - %"$adtgep_347" = getelementptr inbounds %"CName_None_Map_(ByStr20)_(Uint128)", %"CName_None_Map_(ByStr20)_(Uint128)"* %"$adtval_346", i32 0, i32 0 - store i8 1, i8* %"$adtgep_347", align 1 - %"$adtptr_348" = bitcast %"CName_None_Map_(ByStr20)_(Uint128)"* %"$adtval_346" to %"TName_Option_Map_(ByStr20)_(Uint128)"* - store %"TName_Option_Map_(ByStr20)_(Uint128)"* %"$adtptr_348", %"TName_Option_Map_(ByStr20)_(Uint128)"** %"$retval_41", align 8, !dbg !30 - br label %"$matchsucc_298" - -"$empty_default_302": ; preds = %"$have_gas_296" - br label %"$matchsucc_298" - -"$matchsucc_298": ; preds = %"$have_gas_344", %"$have_gas_332", %"$empty_default_302" - %"$$retval_41_349" = load %"TName_Option_Map_(ByStr20)_(Uint128)"*, %"TName_Option_Map_(ByStr20)_(Uint128)"** %"$retval_41", align 8 - ret %"TName_Option_Map_(ByStr20)_(Uint128)"* %"$$retval_41_349" + call void @llvm.dbg.declare(metadata %Map_ByStr20_Uint128** %bs1, metadata !55, metadata !DIExpression()), !dbg !60 + %"$bs_316" = load %Map_ByStr20_Uint128*, %Map_ByStr20_Uint128** %bs, align 8 + %"$$bs_316_317" = bitcast %Map_ByStr20_Uint128* %"$bs_316" to i8* + %"$_lengthof_call_318" = call i64 @_lengthof(%_TyDescrTy_Typ* @"$TyDescr_Map_87", i8* %"$$bs_316_317") + %"$gasadd_319" = add i64 1, %"$_lengthof_call_318" + %"$gasrem_320" = load i64, i64* @_gasrem, align 8 + %"$gascmp_321" = icmp ugt i64 %"$gasadd_319", %"$gasrem_320" + br i1 %"$gascmp_321", label %"$out_of_gas_322", label %"$have_gas_323" + +"$out_of_gas_322": ; preds = %"$have_gas_314" + call void @_out_of_gas() + br label %"$have_gas_323" + +"$have_gas_323": ; preds = %"$out_of_gas_322", %"$have_gas_314" + %"$consume_324" = sub i64 %"$gasrem_320", %"$gasadd_319" + store i64 %"$consume_324", i64* @_gasrem, align 8 + %"$execptr_load_325" = load i8*, i8** @_execptr, align 8 + %"$bs_326" = load %Map_ByStr20_Uint128*, %Map_ByStr20_Uint128** %bs, align 8 + %"$$bs_326_327" = bitcast %Map_ByStr20_Uint128* %"$bs_326" to i8* + %"$put_sender_328" = alloca [20 x i8], align 1 + %"$sender_329" = load [20 x i8], [20 x i8]* %sender, align 1 + store [20 x i8] %"$sender_329", [20 x i8]* %"$put_sender_328", align 1 + %"$$put_sender_328_330" = bitcast [20 x i8]* %"$put_sender_328" to i8* + %"$put_amount_331" = alloca %Uint128, align 8 + store %Uint128 %1, %Uint128* %"$put_amount_331", align 8 + %"$$put_amount_331_332" = bitcast %Uint128* %"$put_amount_331" to i8* + %"$put_call_333" = call i8* @_put(i8* %"$execptr_load_325", %_TyDescrTy_Typ* @"$TyDescr_Map_87", i8* %"$$bs_326_327", i8* %"$$put_sender_328_330", i8* %"$$put_amount_331_332"), !dbg !61 + %"$put_334" = bitcast i8* %"$put_call_333" to %Map_ByStr20_Uint128* + store %Map_ByStr20_Uint128* %"$put_334", %Map_ByStr20_Uint128** %bs1, align 8, !dbg !61 + %"$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 = %"$have_gas_323" + call void @_out_of_gas() + br label %"$have_gas_338" + +"$have_gas_338": ; preds = %"$out_of_gas_337", %"$have_gas_323" + %"$consume_339" = sub i64 %"$gasrem_335", 1 + store i64 %"$consume_339", i64* @_gasrem, align 8 + %"$bs1_340" = load %Map_ByStr20_Uint128*, %Map_ByStr20_Uint128** %bs1, align 8 + %"$adtval_341_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_341_salloc" = call i8* @_salloc(i8* %"$adtval_341_load", i64 9) + %"$adtval_341" = bitcast i8* %"$adtval_341_salloc" to %"CName_Some_Map_(ByStr20)_(Uint128)"* + %"$adtgep_342" = getelementptr inbounds %"CName_Some_Map_(ByStr20)_(Uint128)", %"CName_Some_Map_(ByStr20)_(Uint128)"* %"$adtval_341", i32 0, i32 0 + store i8 0, i8* %"$adtgep_342", align 1 + %"$adtgep_343" = getelementptr inbounds %"CName_Some_Map_(ByStr20)_(Uint128)", %"CName_Some_Map_(ByStr20)_(Uint128)"* %"$adtval_341", i32 0, i32 1 + store %Map_ByStr20_Uint128* %"$bs1_340", %Map_ByStr20_Uint128** %"$adtgep_343", align 8 + %"$adtptr_344" = bitcast %"CName_Some_Map_(ByStr20)_(Uint128)"* %"$adtval_341" to %"TName_Option_Map_(ByStr20)_(Uint128)"* + store %"TName_Option_Map_(ByStr20)_(Uint128)"* %"$adtptr_344", %"TName_Option_Map_(ByStr20)_(Uint128)"** %"$retval_41", align 8, !dbg !62 + br label %"$matchsucc_304" + +"$True_345": ; preds = %"$have_gas_302" + %"$c_346" = bitcast %TName_Bool* %"$c_305" to %CName_True* + %"$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_349": ; preds = %"$True_345" + call void @_out_of_gas() + br label %"$have_gas_350" + +"$have_gas_350": ; preds = %"$out_of_gas_349", %"$True_345" + %"$consume_351" = sub i64 %"$gasrem_347", 1 + store i64 %"$consume_351", i64* @_gasrem, align 8 + %"$adtval_352_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_352_salloc" = call i8* @_salloc(i8* %"$adtval_352_load", i64 1) + %"$adtval_352" = bitcast i8* %"$adtval_352_salloc" to %"CName_None_Map_(ByStr20)_(Uint128)"* + %"$adtgep_353" = getelementptr inbounds %"CName_None_Map_(ByStr20)_(Uint128)", %"CName_None_Map_(ByStr20)_(Uint128)"* %"$adtval_352", i32 0, i32 0 + store i8 1, i8* %"$adtgep_353", align 1 + %"$adtptr_354" = bitcast %"CName_None_Map_(ByStr20)_(Uint128)"* %"$adtval_352" to %"TName_Option_Map_(ByStr20)_(Uint128)"* + store %"TName_Option_Map_(ByStr20)_(Uint128)"* %"$adtptr_354", %"TName_Option_Map_(ByStr20)_(Uint128)"** %"$retval_41", align 8, !dbg !63 + br label %"$matchsucc_304" + +"$empty_default_308": ; preds = %"$have_gas_302" + br label %"$matchsucc_304" + +"$matchsucc_304": ; preds = %"$have_gas_350", %"$have_gas_338", %"$empty_default_308" + %"$$retval_41_355" = load %"TName_Option_Map_(ByStr20)_(Uint128)"*, %"TName_Option_Map_(ByStr20)_(Uint128)"** %"$retval_41", align 8 + ret %"TName_Option_Map_(ByStr20)_(Uint128)"* %"$$retval_41_355" } -define internal { %"TName_Option_Map_(ByStr20)_(Uint128)"* (i8*, %Uint128)*, i8* } @"$fundef_38"(%"$$fundef_38_env_143"* %0, [20 x i8]* %1) !dbg !32 { +define internal { %"TName_Option_Map_(ByStr20)_(Uint128)"* (i8*, %Uint128)*, i8* } @"$fundef_38"(%"$$fundef_38_env_143"* %0, [20 x i8]* %1) !dbg !65 { entry: + %"$sender_276" = alloca [20 x i8]*, align 8 + store [20 x i8]* %1, [20 x i8]** %"$sender_276", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$sender_276", metadata !66, metadata !DIExpression()), !dbg !68 %sender = load [20 x i8], [20 x i8]* %1, align 1 - %"$$fundef_38_env_bs_256" = getelementptr inbounds %"$$fundef_38_env_143", %"$$fundef_38_env_143"* %0, i32 0, i32 0 - %"$bs_envload_257" = load %Map_ByStr20_Uint128*, %Map_ByStr20_Uint128** %"$$fundef_38_env_bs_256", align 8 + %"$$fundef_38_env_bs_261" = getelementptr inbounds %"$$fundef_38_env_143", %"$$fundef_38_env_143"* %0, i32 0, i32 0 + %"$bs_envload_262" = load %Map_ByStr20_Uint128*, %Map_ByStr20_Uint128** %"$$fundef_38_env_bs_261", align 8 %bs = alloca %Map_ByStr20_Uint128*, align 8 - store %Map_ByStr20_Uint128* %"$bs_envload_257", %Map_ByStr20_Uint128** %bs, align 8 + store %Map_ByStr20_Uint128* %"$bs_envload_262", %Map_ByStr20_Uint128** %bs, align 8 %"$retval_39" = alloca { %"TName_Option_Map_(ByStr20)_(Uint128)"* (i8*, %Uint128)*, i8* }, 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 = %entry - call void @_out_of_gas() - br label %"$have_gas_261" - -"$have_gas_261": ; preds = %"$out_of_gas_260", %entry - %"$consume_262" = sub i64 %"$gasrem_258", 1 - store i64 %"$consume_262", i64* @_gasrem, align 8 - %"$$fundef_40_envp_263_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_40_envp_263_salloc" = call i8* @_salloc(i8* %"$$fundef_40_envp_263_load", i64 32) - %"$$fundef_40_envp_263" = bitcast i8* %"$$fundef_40_envp_263_salloc" to %"$$fundef_40_env_142"* - %"$$fundef_40_env_voidp_265" = bitcast %"$$fundef_40_env_142"* %"$$fundef_40_envp_263" to i8* - %"$$fundef_40_cloval_266" = insertvalue { %"TName_Option_Map_(ByStr20)_(Uint128)"* (i8*, %Uint128)*, i8* } { %"TName_Option_Map_(ByStr20)_(Uint128)"* (i8*, %Uint128)* bitcast (%"TName_Option_Map_(ByStr20)_(Uint128)"* (%"$$fundef_40_env_142"*, %Uint128)* @"$fundef_40" to %"TName_Option_Map_(ByStr20)_(Uint128)"* (i8*, %Uint128)*), i8* undef }, i8* %"$$fundef_40_env_voidp_265", 1 - %"$$fundef_40_env_bs_267" = getelementptr inbounds %"$$fundef_40_env_142", %"$$fundef_40_env_142"* %"$$fundef_40_envp_263", i32 0, i32 0 - %"$bs_268" = load %Map_ByStr20_Uint128*, %Map_ByStr20_Uint128** %bs, align 8 - store %Map_ByStr20_Uint128* %"$bs_268", %Map_ByStr20_Uint128** %"$$fundef_40_env_bs_267", align 8 - %"$$fundef_40_env_sender_269" = getelementptr inbounds %"$$fundef_40_env_142", %"$$fundef_40_env_142"* %"$$fundef_40_envp_263", i32 0, i32 1 - store [20 x i8] %sender, [20 x i8]* %"$$fundef_40_env_sender_269", align 1 - store { %"TName_Option_Map_(ByStr20)_(Uint128)"* (i8*, %Uint128)*, i8* } %"$$fundef_40_cloval_266", { %"TName_Option_Map_(ByStr20)_(Uint128)"* (i8*, %Uint128)*, i8* }* %"$retval_39", align 8, !dbg !33 - %"$$retval_39_270" = load { %"TName_Option_Map_(ByStr20)_(Uint128)"* (i8*, %Uint128)*, i8* }, { %"TName_Option_Map_(ByStr20)_(Uint128)"* (i8*, %Uint128)*, i8* }* %"$retval_39", align 8 - ret { %"TName_Option_Map_(ByStr20)_(Uint128)"* (i8*, %Uint128)*, i8* } %"$$retval_39_270" + %"$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 = %entry + call void @_out_of_gas() + br label %"$have_gas_266" + +"$have_gas_266": ; preds = %"$out_of_gas_265", %entry + %"$consume_267" = sub i64 %"$gasrem_263", 1 + store i64 %"$consume_267", i64* @_gasrem, align 8 + %"$$fundef_40_envp_268_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_40_envp_268_salloc" = call i8* @_salloc(i8* %"$$fundef_40_envp_268_load", i64 32) + %"$$fundef_40_envp_268" = bitcast i8* %"$$fundef_40_envp_268_salloc" to %"$$fundef_40_env_142"* + %"$$fundef_40_env_voidp_270" = bitcast %"$$fundef_40_env_142"* %"$$fundef_40_envp_268" to i8* + %"$$fundef_40_cloval_271" = insertvalue { %"TName_Option_Map_(ByStr20)_(Uint128)"* (i8*, %Uint128)*, i8* } { %"TName_Option_Map_(ByStr20)_(Uint128)"* (i8*, %Uint128)* bitcast (%"TName_Option_Map_(ByStr20)_(Uint128)"* (%"$$fundef_40_env_142"*, %Uint128)* @"$fundef_40" to %"TName_Option_Map_(ByStr20)_(Uint128)"* (i8*, %Uint128)*), i8* undef }, i8* %"$$fundef_40_env_voidp_270", 1 + %"$$fundef_40_env_bs_272" = getelementptr inbounds %"$$fundef_40_env_142", %"$$fundef_40_env_142"* %"$$fundef_40_envp_268", i32 0, i32 0 + %"$bs_273" = load %Map_ByStr20_Uint128*, %Map_ByStr20_Uint128** %bs, align 8 + store %Map_ByStr20_Uint128* %"$bs_273", %Map_ByStr20_Uint128** %"$$fundef_40_env_bs_272", align 8 + %"$$fundef_40_env_sender_274" = getelementptr inbounds %"$$fundef_40_env_142", %"$$fundef_40_env_142"* %"$$fundef_40_envp_268", i32 0, i32 1 + store [20 x i8] %sender, [20 x i8]* %"$$fundef_40_env_sender_274", align 1 + store { %"TName_Option_Map_(ByStr20)_(Uint128)"* (i8*, %Uint128)*, i8* } %"$$fundef_40_cloval_271", { %"TName_Option_Map_(ByStr20)_(Uint128)"* (i8*, %Uint128)*, i8* }* %"$retval_39", align 8, !dbg !69 + %"$$retval_39_275" = load { %"TName_Option_Map_(ByStr20)_(Uint128)"* (i8*, %Uint128)*, i8* }, { %"TName_Option_Map_(ByStr20)_(Uint128)"* (i8*, %Uint128)*, i8* }* %"$retval_39", align 8 + ret { %"TName_Option_Map_(ByStr20)_(Uint128)"* (i8*, %Uint128)*, i8* } %"$$retval_39_275" } -define internal { { %"TName_Option_Map_(ByStr20)_(Uint128)"* (i8*, %Uint128)*, i8* } (i8*, [20 x i8]*)*, i8* } @"$fundef_36"(%"$$fundef_36_env_144"* %0, %Map_ByStr20_Uint128* %1) !dbg !34 { +define internal { { %"TName_Option_Map_(ByStr20)_(Uint128)"* (i8*, %Uint128)*, i8* } (i8*, [20 x i8]*)*, i8* } @"$fundef_36"(%"$$fundef_36_env_144"* %0, %Map_ByStr20_Uint128* %1) !dbg !70 { entry: + %"$bs_260" = alloca %Map_ByStr20_Uint128*, align 8 + store %Map_ByStr20_Uint128* %1, %Map_ByStr20_Uint128** %"$bs_260", align 8 + call void @llvm.dbg.declare(metadata %Map_ByStr20_Uint128** %"$bs_260", metadata !71, metadata !DIExpression()), !dbg !72 %"$retval_37" = alloca { { %"TName_Option_Map_(ByStr20)_(Uint128)"* (i8*, %Uint128)*, i8* } (i8*, [20 x i8]*)*, i8* }, align 8 - %"$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 = %entry - call void @_out_of_gas() - br label %"$have_gas_248" - -"$have_gas_248": ; preds = %"$out_of_gas_247", %entry - %"$consume_249" = sub i64 %"$gasrem_245", 1 - store i64 %"$consume_249", i64* @_gasrem, align 8 - %"$$fundef_38_envp_250_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_38_envp_250_salloc" = call i8* @_salloc(i8* %"$$fundef_38_envp_250_load", i64 8) - %"$$fundef_38_envp_250" = bitcast i8* %"$$fundef_38_envp_250_salloc" to %"$$fundef_38_env_143"* - %"$$fundef_38_env_voidp_252" = bitcast %"$$fundef_38_env_143"* %"$$fundef_38_envp_250" to i8* - %"$$fundef_38_cloval_253" = 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_38_env_143"*, [20 x i8]*)* @"$fundef_38" to { %"TName_Option_Map_(ByStr20)_(Uint128)"* (i8*, %Uint128)*, i8* } (i8*, [20 x i8]*)*), i8* undef }, i8* %"$$fundef_38_env_voidp_252", 1 - %"$$fundef_38_env_bs_254" = getelementptr inbounds %"$$fundef_38_env_143", %"$$fundef_38_env_143"* %"$$fundef_38_envp_250", i32 0, i32 0 - store %Map_ByStr20_Uint128* %1, %Map_ByStr20_Uint128** %"$$fundef_38_env_bs_254", align 8 - store { { %"TName_Option_Map_(ByStr20)_(Uint128)"* (i8*, %Uint128)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$$fundef_38_cloval_253", { { %"TName_Option_Map_(ByStr20)_(Uint128)"* (i8*, %Uint128)*, i8* } (i8*, [20 x i8]*)*, i8* }* %"$retval_37", align 8, !dbg !35 - %"$$retval_37_255" = 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_37", align 8 - ret { { %"TName_Option_Map_(ByStr20)_(Uint128)"* (i8*, %Uint128)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$$retval_37_255" + %"$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 = %entry + call void @_out_of_gas() + br label %"$have_gas_252" + +"$have_gas_252": ; preds = %"$out_of_gas_251", %entry + %"$consume_253" = sub i64 %"$gasrem_249", 1 + store i64 %"$consume_253", i64* @_gasrem, align 8 + %"$$fundef_38_envp_254_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_38_envp_254_salloc" = call i8* @_salloc(i8* %"$$fundef_38_envp_254_load", i64 8) + %"$$fundef_38_envp_254" = bitcast i8* %"$$fundef_38_envp_254_salloc" to %"$$fundef_38_env_143"* + %"$$fundef_38_env_voidp_256" = bitcast %"$$fundef_38_env_143"* %"$$fundef_38_envp_254" to i8* + %"$$fundef_38_cloval_257" = 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_38_env_143"*, [20 x i8]*)* @"$fundef_38" to { %"TName_Option_Map_(ByStr20)_(Uint128)"* (i8*, %Uint128)*, i8* } (i8*, [20 x i8]*)*), i8* undef }, i8* %"$$fundef_38_env_voidp_256", 1 + %"$$fundef_38_env_bs_258" = getelementptr inbounds %"$$fundef_38_env_143", %"$$fundef_38_env_143"* %"$$fundef_38_envp_254", i32 0, i32 0 + store %Map_ByStr20_Uint128* %1, %Map_ByStr20_Uint128** %"$$fundef_38_env_bs_258", align 8 + store { { %"TName_Option_Map_(ByStr20)_(Uint128)"* (i8*, %Uint128)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$$fundef_38_cloval_257", { { %"TName_Option_Map_(ByStr20)_(Uint128)"* (i8*, %Uint128)*, i8* } (i8*, [20 x i8]*)*, i8* }* %"$retval_37", align 8, !dbg !73 + %"$$retval_37_259" = 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_37", align 8 + ret { { %"TName_Option_Map_(ByStr20)_(Uint128)"* (i8*, %Uint128)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$$retval_37_259" } -define internal %TName_List_Message* @"$fundef_42"(%"$$fundef_42_env_145"* %0, i8* %1) !dbg !36 { +define internal %TName_List_Message* @"$fundef_42"(%"$$fundef_42_env_145"* %0, i8* %1) !dbg !74 { entry: + %"$msg_248" = alloca i8*, align 8 + store i8* %1, i8** %"$msg_248", align 8 + call void @llvm.dbg.declare(metadata i8** %"$msg_248", metadata !75, metadata !DIExpression()), !dbg !78 %"$retval_43" = alloca %TName_List_Message*, align 8 - %"$gasrem_220" = load i64, i64* @_gasrem, align 8 - %"$gascmp_221" = icmp ugt i64 1, %"$gasrem_220" - br i1 %"$gascmp_221", label %"$out_of_gas_222", label %"$have_gas_223" + call void @llvm.dbg.declare(metadata %TName_List_Message** %"$retval_43", metadata !79, metadata !DIExpression()), !dbg !82 + %"$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_222": ; preds = %entry +"$out_of_gas_225": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_223" + br label %"$have_gas_226" -"$have_gas_223": ; preds = %"$out_of_gas_222", %entry - %"$consume_224" = sub i64 %"$gasrem_220", 1 - store i64 %"$consume_224", i64* @_gasrem, align 8 +"$have_gas_226": ; preds = %"$out_of_gas_225", %entry + %"$consume_227" = sub i64 %"$gasrem_223", 1 + store i64 %"$consume_227", i64* @_gasrem, align 8 %nil_msg = alloca %TName_List_Message*, align 8 - %"$gasrem_225" = load i64, i64* @_gasrem, align 8 - %"$gascmp_226" = icmp ugt i64 1, %"$gasrem_225" - br i1 %"$gascmp_226", label %"$out_of_gas_227", label %"$have_gas_228" - -"$out_of_gas_227": ; preds = %"$have_gas_223" - call void @_out_of_gas() - br label %"$have_gas_228" - -"$have_gas_228": ; preds = %"$out_of_gas_227", %"$have_gas_223" - %"$consume_229" = sub i64 %"$gasrem_225", 1 - store i64 %"$consume_229", i64* @_gasrem, align 8 - %"$adtval_230_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_230_salloc" = call i8* @_salloc(i8* %"$adtval_230_load", i64 1) - %"$adtval_230" = bitcast i8* %"$adtval_230_salloc" to %CName_Nil_Message* - %"$adtgep_231" = getelementptr inbounds %CName_Nil_Message, %CName_Nil_Message* %"$adtval_230", i32 0, i32 0 - store i8 1, i8* %"$adtgep_231", align 1 - %"$adtptr_232" = bitcast %CName_Nil_Message* %"$adtval_230" to %TName_List_Message* - store %TName_List_Message* %"$adtptr_232", %TName_List_Message** %nil_msg, align 8, !dbg !37 - %"$gasrem_233" = load i64, i64* @_gasrem, align 8 - %"$gascmp_234" = icmp ugt i64 1, %"$gasrem_233" - br i1 %"$gascmp_234", label %"$out_of_gas_235", label %"$have_gas_236" - -"$out_of_gas_235": ; preds = %"$have_gas_228" - call void @_out_of_gas() - br label %"$have_gas_236" - -"$have_gas_236": ; preds = %"$out_of_gas_235", %"$have_gas_228" - %"$consume_237" = sub i64 %"$gasrem_233", 1 - store i64 %"$consume_237", i64* @_gasrem, align 8 - %"$nil_msg_238" = load %TName_List_Message*, %TName_List_Message** %nil_msg, align 8 - %"$adtval_239_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_239_salloc" = call i8* @_salloc(i8* %"$adtval_239_load", i64 17) - %"$adtval_239" = bitcast i8* %"$adtval_239_salloc" to %CName_Cons_Message* - %"$adtgep_240" = getelementptr inbounds %CName_Cons_Message, %CName_Cons_Message* %"$adtval_239", i32 0, i32 0 - store i8 0, i8* %"$adtgep_240", align 1 - %"$adtgep_241" = getelementptr inbounds %CName_Cons_Message, %CName_Cons_Message* %"$adtval_239", i32 0, i32 1 - store i8* %1, i8** %"$adtgep_241", align 8 - %"$adtgep_242" = getelementptr inbounds %CName_Cons_Message, %CName_Cons_Message* %"$adtval_239", i32 0, i32 2 - store %TName_List_Message* %"$nil_msg_238", %TName_List_Message** %"$adtgep_242", align 8 - %"$adtptr_243" = bitcast %CName_Cons_Message* %"$adtval_239" to %TName_List_Message* - store %TName_List_Message* %"$adtptr_243", %TName_List_Message** %"$retval_43", align 8, !dbg !38 - %"$$retval_43_244" = load %TName_List_Message*, %TName_List_Message** %"$retval_43", align 8 - ret %TName_List_Message* %"$$retval_43_244" + call void @llvm.dbg.declare(metadata %TName_List_Message** %nil_msg, metadata !83, metadata !DIExpression()), !dbg !84 + %"$gasrem_228" = load i64, i64* @_gasrem, align 8 + %"$gascmp_229" = icmp ugt i64 1, %"$gasrem_228" + br i1 %"$gascmp_229", label %"$out_of_gas_230", label %"$have_gas_231" + +"$out_of_gas_230": ; preds = %"$have_gas_226" + call void @_out_of_gas() + br label %"$have_gas_231" + +"$have_gas_231": ; preds = %"$out_of_gas_230", %"$have_gas_226" + %"$consume_232" = sub i64 %"$gasrem_228", 1 + store i64 %"$consume_232", i64* @_gasrem, align 8 + %"$adtval_233_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_233_salloc" = call i8* @_salloc(i8* %"$adtval_233_load", i64 1) + %"$adtval_233" = bitcast i8* %"$adtval_233_salloc" to %CName_Nil_Message* + %"$adtgep_234" = getelementptr inbounds %CName_Nil_Message, %CName_Nil_Message* %"$adtval_233", i32 0, i32 0 + store i8 1, i8* %"$adtgep_234", align 1 + %"$adtptr_235" = bitcast %CName_Nil_Message* %"$adtval_233" to %TName_List_Message* + store %TName_List_Message* %"$adtptr_235", %TName_List_Message** %nil_msg, align 8, !dbg !85 + %"$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_231" + call void @_out_of_gas() + br label %"$have_gas_239" + +"$have_gas_239": ; preds = %"$out_of_gas_238", %"$have_gas_231" + %"$consume_240" = sub i64 %"$gasrem_236", 1 + store i64 %"$consume_240", i64* @_gasrem, align 8 + %"$nil_msg_241" = load %TName_List_Message*, %TName_List_Message** %nil_msg, align 8 + %"$adtval_242_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_242_salloc" = call i8* @_salloc(i8* %"$adtval_242_load", i64 17) + %"$adtval_242" = bitcast i8* %"$adtval_242_salloc" to %CName_Cons_Message* + %"$adtgep_243" = getelementptr inbounds %CName_Cons_Message, %CName_Cons_Message* %"$adtval_242", i32 0, i32 0 + store i8 0, i8* %"$adtgep_243", align 1 + %"$adtgep_244" = getelementptr inbounds %CName_Cons_Message, %CName_Cons_Message* %"$adtval_242", i32 0, i32 1 + store i8* %1, i8** %"$adtgep_244", align 8 + %"$adtgep_245" = getelementptr inbounds %CName_Cons_Message, %CName_Cons_Message* %"$adtval_242", i32 0, i32 2 + store %TName_List_Message* %"$nil_msg_241", %TName_List_Message** %"$adtgep_245", align 8 + %"$adtptr_246" = bitcast %CName_Cons_Message* %"$adtval_242" to %TName_List_Message* + store %TName_List_Message* %"$adtptr_246", %TName_List_Message** %"$retval_43", align 8, !dbg !86 + %"$$retval_43_247" = load %TName_List_Message*, %TName_List_Message** %"$retval_43", align 8 + ret %TName_List_Message* %"$$retval_43_247" } -define internal %TName_Bool* @"$fundef_22"(%"$$fundef_22_env_146"* %0, %TName_Bool* %1) !dbg !39 { +define internal %TName_Bool* @"$fundef_22"(%"$$fundef_22_env_146"* %0, %TName_Bool* %1) !dbg !87 { entry: + %"$b_222" = alloca %TName_Bool*, align 8 + store %TName_Bool* %1, %TName_Bool** %"$b_222", align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$b_222", metadata !88, metadata !DIExpression()), !dbg !89 %"$retval_23" = alloca %TName_Bool*, align 8 - %"$gasrem_190" = load i64, i64* @_gasrem, align 8 - %"$gascmp_191" = icmp ugt i64 2, %"$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", 2 - store i64 %"$consume_194", i64* @_gasrem, align 8 - %"$b_tag_196" = getelementptr inbounds %TName_Bool, %TName_Bool* %1, i32 0, i32 0 - %"$b_tag_197" = load i8, i8* %"$b_tag_196", align 1 - switch i8 %"$b_tag_197", label %"$empty_default_198" [ - i8 0, label %"$True_199" - i8 1, label %"$False_209" - ], !dbg !40 - -"$True_199": ; preds = %"$have_gas_193" - %"$b_200" = bitcast %TName_Bool* %1 to %CName_True* - %"$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" - -"$out_of_gas_203": ; preds = %"$True_199" - call void @_out_of_gas() - br label %"$have_gas_204" - -"$have_gas_204": ; preds = %"$out_of_gas_203", %"$True_199" - %"$consume_205" = sub i64 %"$gasrem_201", 1 - store i64 %"$consume_205", i64* @_gasrem, align 8 - %"$adtval_206_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_206_salloc" = call i8* @_salloc(i8* %"$adtval_206_load", i64 1) - %"$adtval_206" = bitcast i8* %"$adtval_206_salloc" to %CName_False* - %"$adtgep_207" = getelementptr inbounds %CName_False, %CName_False* %"$adtval_206", i32 0, i32 0 - store i8 1, i8* %"$adtgep_207", align 1 - %"$adtptr_208" = bitcast %CName_False* %"$adtval_206" to %TName_Bool* - store %TName_Bool* %"$adtptr_208", %TName_Bool** %"$retval_23", align 8, !dbg !41 - br label %"$matchsucc_195" - -"$False_209": ; preds = %"$have_gas_193" - %"$b_210" = bitcast %TName_Bool* %1 to %CName_False* - %"$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 = %"$False_209" - call void @_out_of_gas() - br label %"$have_gas_214" - -"$have_gas_214": ; preds = %"$out_of_gas_213", %"$False_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_23", align 8, !dbg !44 - br label %"$matchsucc_195" - -"$empty_default_198": ; preds = %"$have_gas_193" - br label %"$matchsucc_195" - -"$matchsucc_195": ; preds = %"$have_gas_214", %"$have_gas_204", %"$empty_default_198" - %"$$retval_23_219" = load %TName_Bool*, %TName_Bool** %"$retval_23", align 8 - ret %TName_Bool* %"$$retval_23_219" + call void @llvm.dbg.declare(metadata %TName_Bool** %"$retval_23", metadata !90, metadata !DIExpression()), !dbg !91 + %"$gasrem_192" = load i64, i64* @_gasrem, align 8 + %"$gascmp_193" = icmp ugt i64 2, %"$gasrem_192" + br i1 %"$gascmp_193", label %"$out_of_gas_194", label %"$have_gas_195" + +"$out_of_gas_194": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_195" + +"$have_gas_195": ; preds = %"$out_of_gas_194", %entry + %"$consume_196" = sub i64 %"$gasrem_192", 2 + store i64 %"$consume_196", i64* @_gasrem, align 8 + %"$b_tag_198" = getelementptr inbounds %TName_Bool, %TName_Bool* %1, i32 0, i32 0 + %"$b_tag_199" = load i8, i8* %"$b_tag_198", align 1 + switch i8 %"$b_tag_199", label %"$empty_default_200" [ + i8 0, label %"$True_201" + i8 1, label %"$False_211" + ], !dbg !91 + +"$True_201": ; preds = %"$have_gas_195" + %"$b_202" = bitcast %TName_Bool* %1 to %CName_True* + %"$gasrem_203" = load i64, i64* @_gasrem, align 8 + %"$gascmp_204" = icmp ugt i64 1, %"$gasrem_203" + br i1 %"$gascmp_204", label %"$out_of_gas_205", label %"$have_gas_206" + +"$out_of_gas_205": ; preds = %"$True_201" + call void @_out_of_gas() + br label %"$have_gas_206" + +"$have_gas_206": ; preds = %"$out_of_gas_205", %"$True_201" + %"$consume_207" = sub i64 %"$gasrem_203", 1 + store i64 %"$consume_207", i64* @_gasrem, align 8 + %"$adtval_208_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_208_salloc" = call i8* @_salloc(i8* %"$adtval_208_load", i64 1) + %"$adtval_208" = bitcast i8* %"$adtval_208_salloc" to %CName_False* + %"$adtgep_209" = getelementptr inbounds %CName_False, %CName_False* %"$adtval_208", i32 0, i32 0 + store i8 1, i8* %"$adtgep_209", align 1 + %"$adtptr_210" = bitcast %CName_False* %"$adtval_208" to %TName_Bool* + store %TName_Bool* %"$adtptr_210", %TName_Bool** %"$retval_23", align 8, !dbg !92 + br label %"$matchsucc_197" + +"$False_211": ; preds = %"$have_gas_195" + %"$b_212" = bitcast %TName_Bool* %1 to %CName_False* + %"$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 = %"$False_211" + call void @_out_of_gas() + br label %"$have_gas_216" + +"$have_gas_216": ; preds = %"$out_of_gas_215", %"$False_211" + %"$consume_217" = sub i64 %"$gasrem_213", 1 + store i64 %"$consume_217", i64* @_gasrem, align 8 + %"$adtval_218_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_218_salloc" = call i8* @_salloc(i8* %"$adtval_218_load", i64 1) + %"$adtval_218" = bitcast i8* %"$adtval_218_salloc" to %CName_True* + %"$adtgep_219" = getelementptr inbounds %CName_True, %CName_True* %"$adtval_218", i32 0, i32 0 + store i8 0, i8* %"$adtgep_219", align 1 + %"$adtptr_220" = bitcast %CName_True* %"$adtval_218" to %TName_Bool* + store %TName_Bool* %"$adtptr_220", %TName_Bool** %"$retval_23", align 8, !dbg !95 + br label %"$matchsucc_197" + +"$empty_default_200": ; preds = %"$have_gas_195" + br label %"$matchsucc_197" + +"$matchsucc_197": ; preds = %"$have_gas_216", %"$have_gas_206", %"$empty_default_200" + %"$$retval_23_221" = load %TName_Bool*, %TName_Bool** %"$retval_23", align 8 + ret %TName_Bool* %"$$retval_23_221" } -define internal %TName_Bool* @"$fundef_26"(%"$$fundef_26_env_147"* %0, %TName_Bool* %1) !dbg !46 { +define internal %TName_Bool* @"$fundef_26"(%"$$fundef_26_env_147"* %0, %TName_Bool* %1) !dbg !97 { entry: - %"$$fundef_26_env_b_160" = getelementptr inbounds %"$$fundef_26_env_147", %"$$fundef_26_env_147"* %0, i32 0, i32 0 - %"$b_envload_161" = load %TName_Bool*, %TName_Bool** %"$$fundef_26_env_b_160", align 8 + %"$c_191" = alloca %TName_Bool*, align 8 + store %TName_Bool* %1, %TName_Bool** %"$c_191", align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$c_191", metadata !98, metadata !DIExpression()), !dbg !99 + %"$$fundef_26_env_b_161" = getelementptr inbounds %"$$fundef_26_env_147", %"$$fundef_26_env_147"* %0, i32 0, i32 0 + %"$b_envload_162" = load %TName_Bool*, %TName_Bool** %"$$fundef_26_env_b_161", align 8 %b = alloca %TName_Bool*, align 8 - store %TName_Bool* %"$b_envload_161", %TName_Bool** %b, align 8 + store %TName_Bool* %"$b_envload_162", %TName_Bool** %b, align 8 %"$retval_27" = alloca %TName_Bool*, align 8 - %"$gasrem_162" = load i64, i64* @_gasrem, align 8 - %"$gascmp_163" = icmp ugt i64 2, %"$gasrem_162" - br i1 %"$gascmp_163", label %"$out_of_gas_164", label %"$have_gas_165" - -"$out_of_gas_164": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_165" - -"$have_gas_165": ; preds = %"$out_of_gas_164", %entry - %"$consume_166" = sub i64 %"$gasrem_162", 2 - store i64 %"$consume_166", i64* @_gasrem, align 8 - %"$b_168" = load %TName_Bool*, %TName_Bool** %b, align 8 - %"$b_tag_169" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$b_168", i32 0, i32 0 - %"$b_tag_170" = load i8, i8* %"$b_tag_169", align 1 - switch i8 %"$b_tag_170", label %"$empty_default_171" [ - i8 1, label %"$False_172" - i8 0, label %"$True_182" - ], !dbg !47 - -"$False_172": ; preds = %"$have_gas_165" - %"$b_173" = bitcast %TName_Bool* %"$b_168" to %CName_False* - %"$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 = %"$False_172" - call void @_out_of_gas() - br label %"$have_gas_177" - -"$have_gas_177": ; preds = %"$out_of_gas_176", %"$False_172" - %"$consume_178" = sub i64 %"$gasrem_174", 1 - store i64 %"$consume_178", i64* @_gasrem, align 8 - %"$adtval_179_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_179_salloc" = call i8* @_salloc(i8* %"$adtval_179_load", i64 1) - %"$adtval_179" = bitcast i8* %"$adtval_179_salloc" to %CName_False* - %"$adtgep_180" = getelementptr inbounds %CName_False, %CName_False* %"$adtval_179", i32 0, i32 0 - store i8 1, i8* %"$adtgep_180", align 1 - %"$adtptr_181" = bitcast %CName_False* %"$adtval_179" to %TName_Bool* - store %TName_Bool* %"$adtptr_181", %TName_Bool** %"$retval_27", align 8, !dbg !48 - br label %"$matchsucc_167" - -"$True_182": ; preds = %"$have_gas_165" - %"$b_183" = bitcast %TName_Bool* %"$b_168" to %CName_True* - %"$gasrem_184" = load i64, i64* @_gasrem, align 8 - %"$gascmp_185" = icmp ugt i64 1, %"$gasrem_184" - br i1 %"$gascmp_185", label %"$out_of_gas_186", label %"$have_gas_187" - -"$out_of_gas_186": ; preds = %"$True_182" - call void @_out_of_gas() - br label %"$have_gas_187" - -"$have_gas_187": ; preds = %"$out_of_gas_186", %"$True_182" - %"$consume_188" = sub i64 %"$gasrem_184", 1 - store i64 %"$consume_188", i64* @_gasrem, align 8 - store %TName_Bool* %1, %TName_Bool** %"$retval_27", align 8, !dbg !51 - br label %"$matchsucc_167" - -"$empty_default_171": ; preds = %"$have_gas_165" - br label %"$matchsucc_167" - -"$matchsucc_167": ; preds = %"$have_gas_187", %"$have_gas_177", %"$empty_default_171" - %"$$retval_27_189" = load %TName_Bool*, %TName_Bool** %"$retval_27", align 8 - ret %TName_Bool* %"$$retval_27_189" + call void @llvm.dbg.declare(metadata %TName_Bool** %"$retval_27", metadata !100, metadata !DIExpression()), !dbg !101 + %"$gasrem_163" = load i64, i64* @_gasrem, align 8 + %"$gascmp_164" = icmp ugt i64 2, %"$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", 2 + store i64 %"$consume_167", i64* @_gasrem, align 8 + %"$b_169" = load %TName_Bool*, %TName_Bool** %b, align 8 + %"$b_tag_170" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$b_169", i32 0, i32 0 + %"$b_tag_171" = load i8, i8* %"$b_tag_170", align 1 + switch i8 %"$b_tag_171", label %"$empty_default_172" [ + i8 1, label %"$False_173" + i8 0, label %"$True_183" + ], !dbg !101 + +"$False_173": ; preds = %"$have_gas_166" + %"$b_174" = bitcast %TName_Bool* %"$b_169" to %CName_False* + %"$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 = %"$False_173" + call void @_out_of_gas() + br label %"$have_gas_178" + +"$have_gas_178": ; preds = %"$out_of_gas_177", %"$False_173" + %"$consume_179" = sub i64 %"$gasrem_175", 1 + store i64 %"$consume_179", i64* @_gasrem, align 8 + %"$adtval_180_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_180_salloc" = call i8* @_salloc(i8* %"$adtval_180_load", i64 1) + %"$adtval_180" = bitcast i8* %"$adtval_180_salloc" to %CName_False* + %"$adtgep_181" = getelementptr inbounds %CName_False, %CName_False* %"$adtval_180", i32 0, i32 0 + store i8 1, i8* %"$adtgep_181", align 1 + %"$adtptr_182" = bitcast %CName_False* %"$adtval_180" to %TName_Bool* + store %TName_Bool* %"$adtptr_182", %TName_Bool** %"$retval_27", align 8, !dbg !102 + br label %"$matchsucc_168" + +"$True_183": ; preds = %"$have_gas_166" + %"$b_184" = bitcast %TName_Bool* %"$b_169" to %CName_True* + %"$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 = %"$True_183" + call void @_out_of_gas() + br label %"$have_gas_188" + +"$have_gas_188": ; preds = %"$out_of_gas_187", %"$True_183" + %"$consume_189" = sub i64 %"$gasrem_185", 1 + store i64 %"$consume_189", i64* @_gasrem, align 8 + store %TName_Bool* %1, %TName_Bool** %"$retval_27", align 8, !dbg !105 + br label %"$matchsucc_168" + +"$empty_default_172": ; preds = %"$have_gas_166" + br label %"$matchsucc_168" + +"$matchsucc_168": ; preds = %"$have_gas_188", %"$have_gas_178", %"$empty_default_172" + %"$$retval_27_190" = load %TName_Bool*, %TName_Bool** %"$retval_27", align 8 + ret %TName_Bool* %"$$retval_27_190" } -define internal { %TName_Bool* (i8*, %TName_Bool*)*, i8* } @"$fundef_24"(%"$$fundef_24_env_148"* %0, %TName_Bool* %1) !dbg !53 { +define internal { %TName_Bool* (i8*, %TName_Bool*)*, i8* } @"$fundef_24"(%"$$fundef_24_env_148"* %0, %TName_Bool* %1) !dbg !107 { entry: + %"$b_160" = alloca %TName_Bool*, align 8 + store %TName_Bool* %1, %TName_Bool** %"$b_160", align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$b_160", metadata !108, metadata !DIExpression()), !dbg !109 %"$retval_25" = alloca { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, align 8 %"$gasrem_149" = load i64, i64* @_gasrem, align 8 %"$gascmp_150" = icmp ugt i64 1, %"$gasrem_149" @@ -929,7 +974,7 @@ entry: %"$$fundef_26_cloval_157" = insertvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } { %TName_Bool* (i8*, %TName_Bool*)* bitcast (%TName_Bool* (%"$$fundef_26_env_147"*, %TName_Bool*)* @"$fundef_26" to %TName_Bool* (i8*, %TName_Bool*)*), i8* undef }, i8* %"$$fundef_26_env_voidp_156", 1 %"$$fundef_26_env_b_158" = getelementptr inbounds %"$$fundef_26_env_147", %"$$fundef_26_env_147"* %"$$fundef_26_envp_154", i32 0, i32 0 store %TName_Bool* %1, %TName_Bool** %"$$fundef_26_env_b_158", align 8 - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$fundef_26_cloval_157", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$retval_25", align 8, !dbg !54 + store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$fundef_26_cloval_157", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$retval_25", align 8, !dbg !110 %"$$retval_25_159" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$retval_25", align 8 ret { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$retval_25_159" } @@ -938,6 +983,9 @@ declare void @_out_of_gas() declare i8* @_salloc(i8*, i64) +; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn +declare void @llvm.dbg.declare(metadata, metadata, metadata) #0 + declare %TName_Bool* @_contains(i8*, %_TyDescrTy_Typ*, i8*, i8*) declare i64 @_lengthof(%_TyDescrTy_Typ*, i8*) @@ -948,269 +996,271 @@ 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 !111 { entry: - %"$gasrem_455" = load i64, i64* @_gasrem, align 8 - %"$gascmp_456" = icmp ugt i64 5, %"$gasrem_455" - br i1 %"$gascmp_456", label %"$out_of_gas_457", label %"$have_gas_458" + %"$gasrem_466" = load i64, i64* @_gasrem, align 8 + %"$gascmp_467" = icmp ugt i64 5, %"$gasrem_466" + br i1 %"$gascmp_467", label %"$out_of_gas_468", label %"$have_gas_469" -"$out_of_gas_457": ; preds = %entry +"$out_of_gas_468": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_458" + br label %"$have_gas_469" -"$have_gas_458": ; preds = %"$out_of_gas_457", %entry - %"$consume_459" = sub i64 %"$gasrem_455", 5 - store i64 %"$consume_459", i64* @_gasrem, align 8 - store %Int32 { i32 5 }, %Int32* @"$_gas_charge_acc_1", align 4, !dbg !57 - %"$gasrem_460" = load i64, i64* @_gasrem, align 8 - %"$gascmp_461" = icmp ugt i64 6, %"$gasrem_460" - br i1 %"$gascmp_461", label %"$out_of_gas_462", label %"$have_gas_463" +"$have_gas_469": ; preds = %"$out_of_gas_468", %entry + %"$consume_470" = sub i64 %"$gasrem_466", 5 + store i64 %"$consume_470", i64* @_gasrem, align 8 + store %Int32 { i32 5 }, %Int32* @"$_gas_charge_acc_1", align 4, !dbg !113 + %"$gasrem_471" = load i64, i64* @_gasrem, align 8 + %"$gascmp_472" = icmp ugt i64 6, %"$gasrem_471" + br i1 %"$gascmp_472", label %"$out_of_gas_473", label %"$have_gas_474" -"$out_of_gas_462": ; preds = %"$have_gas_458" +"$out_of_gas_473": ; preds = %"$have_gas_469" call void @_out_of_gas() - br label %"$have_gas_463" + br label %"$have_gas_474" -"$have_gas_463": ; preds = %"$out_of_gas_462", %"$have_gas_458" - %"$consume_464" = sub i64 %"$gasrem_460", 6 - store i64 %"$consume_464", i64* @_gasrem, align 8 - store %Int32 { i32 6 }, %Int32* @"$_gas_charge_accBoolUtils_0", align 4, !dbg !57 - %"$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_474": ; preds = %"$out_of_gas_473", %"$have_gas_469" + %"$consume_475" = sub i64 %"$gasrem_471", 6 + store i64 %"$consume_475", i64* @_gasrem, align 8 + store %Int32 { i32 6 }, %Int32* @"$_gas_charge_accBoolUtils_0", align 4, !dbg !113 + %"$gasrem_476" = load i64, i64* @_gasrem, align 8 + %"$gascmp_477" = icmp ugt i64 1, %"$gasrem_476" + br i1 %"$gascmp_477", label %"$out_of_gas_478", label %"$have_gas_479" -"$out_of_gas_467": ; preds = %"$have_gas_463" +"$out_of_gas_478": ; preds = %"$have_gas_474" call void @_out_of_gas() - br label %"$have_gas_468" + br label %"$have_gas_479" -"$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 - 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_24_env_148"*, %TName_Bool*)* @"$fundef_24" 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 !58 - %"$gasrem_473" = load i64, i64* @_gasrem, align 8 - %"$gascmp_474" = icmp ugt i64 1, %"$gasrem_473" - br i1 %"$gascmp_474", label %"$out_of_gas_475", label %"$have_gas_476" +"$have_gas_479": ; preds = %"$out_of_gas_478", %"$have_gas_474" + %"$consume_480" = sub i64 %"$gasrem_476", 1 + store i64 %"$consume_480", 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_24_env_148"*, %TName_Bool*)* @"$fundef_24" 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 !114 + %"$gasrem_484" = load i64, i64* @_gasrem, align 8 + %"$gascmp_485" = icmp ugt i64 1, %"$gasrem_484" + br i1 %"$gascmp_485", label %"$out_of_gas_486", label %"$have_gas_487" -"$out_of_gas_475": ; preds = %"$have_gas_468" +"$out_of_gas_486": ; preds = %"$have_gas_479" call void @_out_of_gas() - br label %"$have_gas_476" + br label %"$have_gas_487" -"$have_gas_476": ; preds = %"$out_of_gas_475", %"$have_gas_468" - %"$consume_477" = sub i64 %"$gasrem_473", 1 - store i64 %"$consume_477", i64* @_gasrem, align 8 - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } { %TName_Bool* (i8*, %TName_Bool*)* bitcast (%TName_Bool* (%"$$fundef_22_env_146"*, %TName_Bool*)* @"$fundef_22" to %TName_Bool* (i8*, %TName_Bool*)*), i8* null }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* @BoolUtils.negb, align 8, !dbg !59 - %"$gasrem_481" = load i64, i64* @_gasrem, align 8 - %"$gascmp_482" = icmp ugt i64 1, %"$gasrem_481" - br i1 %"$gascmp_482", label %"$out_of_gas_483", label %"$have_gas_484" +"$have_gas_487": ; preds = %"$out_of_gas_486", %"$have_gas_479" + %"$consume_488" = sub i64 %"$gasrem_484", 1 + store i64 %"$consume_488", i64* @_gasrem, align 8 + store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } { %TName_Bool* (i8*, %TName_Bool*)* bitcast (%TName_Bool* (%"$$fundef_22_env_146"*, %TName_Bool*)* @"$fundef_22" to %TName_Bool* (i8*, %TName_Bool*)*), i8* null }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* @BoolUtils.negb, align 8, !dbg !115 + %"$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_483": ; preds = %"$have_gas_476" +"$out_of_gas_494": ; preds = %"$have_gas_487" call void @_out_of_gas() - br label %"$have_gas_484" + br label %"$have_gas_495" -"$have_gas_484": ; preds = %"$out_of_gas_483", %"$have_gas_476" - %"$consume_485" = sub i64 %"$gasrem_481", 1 - store i64 %"$consume_485", i64* @_gasrem, align 8 - store { %TName_List_Message* (i8*, i8*)*, i8* } { %TName_List_Message* (i8*, i8*)* bitcast (%TName_List_Message* (%"$$fundef_42_env_145"*, i8*)* @"$fundef_42" to %TName_List_Message* (i8*, i8*)*), i8* null }, { %TName_List_Message* (i8*, i8*)*, i8* }* @crowdfunding.one_msg, align 8, !dbg !60 - %"$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" +"$have_gas_495": ; preds = %"$out_of_gas_494", %"$have_gas_487" + %"$consume_496" = sub i64 %"$gasrem_492", 1 + store i64 %"$consume_496", i64* @_gasrem, align 8 + store { %TName_List_Message* (i8*, i8*)*, i8* } { %TName_List_Message* (i8*, i8*)* bitcast (%TName_List_Message* (%"$$fundef_42_env_145"*, i8*)* @"$fundef_42" to %TName_List_Message* (i8*, i8*)*), i8* null }, { %TName_List_Message* (i8*, i8*)*, i8* }* @crowdfunding.one_msg, align 8, !dbg !116 + %"$gasrem_500" = load i64, i64* @_gasrem, align 8 + %"$gascmp_501" = icmp ugt i64 1, %"$gasrem_500" + br i1 %"$gascmp_501", label %"$out_of_gas_502", label %"$have_gas_503" -"$out_of_gas_491": ; preds = %"$have_gas_484" +"$out_of_gas_502": ; preds = %"$have_gas_495" call void @_out_of_gas() - br label %"$have_gas_492" + br label %"$have_gas_503" -"$have_gas_492": ; preds = %"$out_of_gas_491", %"$have_gas_484" - %"$consume_493" = sub i64 %"$gasrem_489", 1 - store i64 %"$consume_493", 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_36_env_144"*, %Map_ByStr20_Uint128*)* @"$fundef_36" 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_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" +"$have_gas_503": ; preds = %"$out_of_gas_502", %"$have_gas_495" + %"$consume_504" = sub i64 %"$gasrem_500", 1 + store i64 %"$consume_504", 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_36_env_144"*, %Map_ByStr20_Uint128*)* @"$fundef_36" 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 !117 + %"$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" -"$out_of_gas_499": ; preds = %"$have_gas_492" +"$out_of_gas_510": ; preds = %"$have_gas_503" call void @_out_of_gas() - br label %"$have_gas_500" + br label %"$have_gas_511" -"$have_gas_500": ; preds = %"$out_of_gas_499", %"$have_gas_492" - %"$consume_501" = sub i64 %"$gasrem_497", 1 - store i64 %"$consume_501", i64* @_gasrem, align 8 +"$have_gas_511": ; preds = %"$out_of_gas_510", %"$have_gas_503" + %"$consume_512" = sub i64 %"$gasrem_508", 1 + store i64 %"$consume_512", i64* @_gasrem, 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* } { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)* bitcast ({ %TName_Bool* (i8*, %TName_Bool*)*, i8* } (%"$$fundef_28_env_141"*, %TName_Bool*)* @"$fundef_28" 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 !62 - %"$$fundef_32_envp_505_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_32_envp_505_salloc" = call i8* @_salloc(i8* %"$$fundef_32_envp_505_load", i64 16) - %"$$fundef_32_envp_505" = bitcast i8* %"$$fundef_32_envp_505_salloc" to %"$$fundef_32_env_139"* - %"$$fundef_32_env_voidp_507" = bitcast %"$$fundef_32_env_139"* %"$$fundef_32_envp_505" to i8* - %"$$fundef_32_cloval_508" = insertvalue { { %TName_Bool* (i8*, i8*)*, i8* } (i8*, i8*)*, i8* } { { %TName_Bool* (i8*, i8*)*, i8* } (i8*, i8*)* bitcast ({ %TName_Bool* (i8*, i8*)*, i8* } (%"$$fundef_32_env_139"*, i8*)* @"$fundef_32" to { %TName_Bool* (i8*, i8*)*, i8* } (i8*, i8*)*), i8* undef }, i8* %"$$fundef_32_env_voidp_507", 1 - %"$$fundef_32_env_BoolUtils.orb_509" = getelementptr inbounds %"$$fundef_32_env_139", %"$$fundef_32_env_139"* %"$$fundef_32_envp_505", i32 0, i32 0 - %"$BoolUtils.orb_510" = 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_510", { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }* %"$$fundef_32_env_BoolUtils.orb_509", align 8 - store { { %TName_Bool* (i8*, i8*)*, i8* } (i8*, i8*)*, i8* } %"$$fundef_32_cloval_508", { { %TName_Bool* (i8*, i8*)*, i8* } (i8*, i8*)*, i8* }* @crowdfunding.blk_leq, align 8, !dbg !63 - %"$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_500" - call void @_out_of_gas() - br label %"$have_gas_514" - -"$have_gas_514": ; preds = %"$out_of_gas_513", %"$have_gas_500" - %"$consume_515" = sub i64 %"$gasrem_511", 1 - store i64 %"$consume_515", i64* @_gasrem, align 8 - store %Int32 { i32 1 }, %Int32* @crowdfunding.accepted_code, align 4, !dbg !64 - %"$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" - -"$out_of_gas_518": ; preds = %"$have_gas_514" - call void @_out_of_gas() - br label %"$have_gas_519" - -"$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 - store %Int32 { i32 2 }, %Int32* @crowdfunding.missed_deadline_code, align 4, !dbg !65 - %"$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 - store %Int32 { i32 3 }, %Int32* @crowdfunding.already_backed_code, align 4, !dbg !66 - %"$gasrem_526" = load i64, i64* @_gasrem, align 8 - %"$gascmp_527" = icmp ugt i64 1, %"$gasrem_526" - br i1 %"$gascmp_527", label %"$out_of_gas_528", label %"$have_gas_529" - -"$out_of_gas_528": ; preds = %"$have_gas_524" - call void @_out_of_gas() - br label %"$have_gas_529" - -"$have_gas_529": ; preds = %"$out_of_gas_528", %"$have_gas_524" - %"$consume_530" = sub i64 %"$gasrem_526", 1 - store i64 %"$consume_530", i64* @_gasrem, align 8 - store %Int32 { i32 4 }, %Int32* @crowdfunding.not_owner_code, align 4, !dbg !67 - %"$gasrem_531" = load i64, i64* @_gasrem, align 8 - %"$gascmp_532" = icmp ugt i64 1, %"$gasrem_531" - br i1 %"$gascmp_532", label %"$out_of_gas_533", label %"$have_gas_534" - -"$out_of_gas_533": ; preds = %"$have_gas_529" - call void @_out_of_gas() - br label %"$have_gas_534" - -"$have_gas_534": ; preds = %"$out_of_gas_533", %"$have_gas_529" - %"$consume_535" = sub i64 %"$gasrem_531", 1 - store i64 %"$consume_535", i64* @_gasrem, align 8 - store %Int32 { i32 5 }, %Int32* @crowdfunding.too_early_code, align 4, !dbg !68 - %"$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_538": ; preds = %"$have_gas_534" - call void @_out_of_gas() - br label %"$have_gas_539" - -"$have_gas_539": ; preds = %"$out_of_gas_538", %"$have_gas_534" - %"$consume_540" = sub i64 %"$gasrem_536", 1 - store i64 %"$consume_540", i64* @_gasrem, align 8 - store %Int32 { i32 6 }, %Int32* @crowdfunding.got_funds_code, align 4, !dbg !69 - %"$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_543": ; preds = %"$have_gas_539" - call void @_out_of_gas() - br label %"$have_gas_544" - -"$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 %Int32 { i32 7 }, %Int32* @crowdfunding.cannot_get_funds, align 4, !dbg !70 - %"$gasrem_546" = load i64, i64* @_gasrem, align 8 - %"$gascmp_547" = icmp ugt i64 1, %"$gasrem_546" - br i1 %"$gascmp_547", label %"$out_of_gas_548", label %"$have_gas_549" - -"$out_of_gas_548": ; preds = %"$have_gas_544" - call void @_out_of_gas() - br label %"$have_gas_549" - -"$have_gas_549": ; preds = %"$out_of_gas_548", %"$have_gas_544" - %"$consume_550" = sub i64 %"$gasrem_546", 1 - store i64 %"$consume_550", i64* @_gasrem, align 8 - store %Int32 { i32 8 }, %Int32* @crowdfunding.cannot_reclaim_code, align 4, !dbg !71 - %"$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" + 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_28_env_141"*, %TName_Bool*)* @"$fundef_28" 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 !118 + %"$$fundef_32_envp_516_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_32_envp_516_salloc" = call i8* @_salloc(i8* %"$$fundef_32_envp_516_load", i64 16) + %"$$fundef_32_envp_516" = bitcast i8* %"$$fundef_32_envp_516_salloc" to %"$$fundef_32_env_139"* + %"$$fundef_32_env_voidp_518" = bitcast %"$$fundef_32_env_139"* %"$$fundef_32_envp_516" to i8* + %"$$fundef_32_cloval_519" = insertvalue { { %TName_Bool* (i8*, i8*)*, i8* } (i8*, i8*)*, i8* } { { %TName_Bool* (i8*, i8*)*, i8* } (i8*, i8*)* bitcast ({ %TName_Bool* (i8*, i8*)*, i8* } (%"$$fundef_32_env_139"*, i8*)* @"$fundef_32" to { %TName_Bool* (i8*, i8*)*, i8* } (i8*, i8*)*), i8* undef }, i8* %"$$fundef_32_env_voidp_518", 1 + %"$$fundef_32_env_BoolUtils.orb_520" = getelementptr inbounds %"$$fundef_32_env_139", %"$$fundef_32_env_139"* %"$$fundef_32_envp_516", i32 0, i32 0 + %"$BoolUtils.orb_521" = 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_521", { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }* %"$$fundef_32_env_BoolUtils.orb_520", align 8 + store { { %TName_Bool* (i8*, i8*)*, i8* } (i8*, i8*)*, i8* } %"$$fundef_32_cloval_519", { { %TName_Bool* (i8*, i8*)*, i8* } (i8*, i8*)*, i8* }* @crowdfunding.blk_leq, align 8, !dbg !119 + %"$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_511" + call void @_out_of_gas() + br label %"$have_gas_525" + +"$have_gas_525": ; preds = %"$out_of_gas_524", %"$have_gas_511" + %"$consume_526" = sub i64 %"$gasrem_522", 1 + store i64 %"$consume_526", i64* @_gasrem, align 8 + store %Int32 { i32 1 }, %Int32* @crowdfunding.accepted_code, align 4, !dbg !120 + %"$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 2 }, %Int32* @crowdfunding.missed_deadline_code, align 4, !dbg !121 + %"$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 3 }, %Int32* @crowdfunding.already_backed_code, align 4, !dbg !122 + %"$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 4 }, %Int32* @crowdfunding.not_owner_code, align 4, !dbg !123 + %"$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_544": ; preds = %"$have_gas_540" + call void @_out_of_gas() + br label %"$have_gas_545" + +"$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 5 }, %Int32* @crowdfunding.too_early_code, align 4, !dbg !124 + %"$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 + store %Int32 { i32 6 }, %Int32* @crowdfunding.got_funds_code, align 4, !dbg !125 + %"$gasrem_552" = load i64, i64* @_gasrem, align 8 + %"$gascmp_553" = icmp ugt i64 1, %"$gasrem_552" + br i1 %"$gascmp_553", label %"$out_of_gas_554", label %"$have_gas_555" + +"$out_of_gas_554": ; preds = %"$have_gas_550" + call void @_out_of_gas() + br label %"$have_gas_555" + +"$have_gas_555": ; preds = %"$out_of_gas_554", %"$have_gas_550" + %"$consume_556" = sub i64 %"$gasrem_552", 1 + store i64 %"$consume_556", i64* @_gasrem, align 8 + store %Int32 { i32 7 }, %Int32* @crowdfunding.cannot_get_funds, align 4, !dbg !126 + %"$gasrem_557" = load i64, i64* @_gasrem, align 8 + %"$gascmp_558" = icmp ugt i64 1, %"$gasrem_557" + br i1 %"$gascmp_558", label %"$out_of_gas_559", label %"$have_gas_560" + +"$out_of_gas_559": ; preds = %"$have_gas_555" + call void @_out_of_gas() + br label %"$have_gas_560" + +"$have_gas_560": ; preds = %"$out_of_gas_559", %"$have_gas_555" + %"$consume_561" = sub i64 %"$gasrem_557", 1 + store i64 %"$consume_561", i64* @_gasrem, align 8 + store %Int32 { i32 8 }, %Int32* @crowdfunding.cannot_reclaim_code, align 4, !dbg !127 + %"$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_553": ; preds = %"$have_gas_549" +"$out_of_gas_564": ; preds = %"$have_gas_560" call void @_out_of_gas() - br label %"$have_gas_554" + br label %"$have_gas_565" -"$have_gas_554": ; preds = %"$out_of_gas_553", %"$have_gas_549" - %"$consume_555" = sub i64 %"$gasrem_551", 1 - store i64 %"$consume_555", i64* @_gasrem, align 8 - store %Int32 { i32 9 }, %Int32* @crowdfunding.reclaimed_code, align 4, !dbg !72 +"$have_gas_565": ; preds = %"$out_of_gas_564", %"$have_gas_560" + %"$consume_566" = sub i64 %"$gasrem_562", 1 + store i64 %"$consume_566", i64* @_gasrem, align 8 + store %Int32 { i32 9 }, %Int32* @crowdfunding.reclaimed_code, align 4, !dbg !128 ret void } -define void @_deploy_ops() !dbg !73 { +define void @_deploy_ops() !dbg !129 { entry: - %"$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" + %"$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_558": ; preds = %entry +"$out_of_gas_569": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_559" + br label %"$have_gas_570" -"$have_gas_559": ; preds = %"$out_of_gas_558", %entry - %"$consume_560" = sub i64 %"$gasrem_556", 1 - store i64 %"$consume_560", i64* @_gasrem, align 8 +"$have_gas_570": ; preds = %"$out_of_gas_569", %entry + %"$consume_571" = sub i64 %"$gasrem_567", 1 + store i64 %"$consume_571", i64* @_gasrem, align 8 %"$backers_44" = alloca %Map_ByStr20_Uint128*, align 8 - %"$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_563": ; preds = %"$have_gas_559" - call void @_out_of_gas() - br label %"$have_gas_564" - -"$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 - %"$execptr_load_566" = load i8*, i8** @_execptr, align 8 - %"$_new_empty_map_call_567" = call i8* @_new_empty_map(i8* %"$execptr_load_566") - %"$_new_empty_map_568" = bitcast i8* %"$_new_empty_map_call_567" to %Map_ByStr20_Uint128* - store %Map_ByStr20_Uint128* %"$_new_empty_map_568", %Map_ByStr20_Uint128** %"$backers_44", align 8, !dbg !74 - %"$execptr_load_569" = load i8*, i8** @_execptr, align 8 - %"$$backers_44_571" = load %Map_ByStr20_Uint128*, %Map_ByStr20_Uint128** %"$backers_44", align 8 - %"$update_value_572" = bitcast %Map_ByStr20_Uint128* %"$$backers_44_571" to i8* - call void @_update_field(i8* %"$execptr_load_569", i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$backers_570", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_87", i32 0, i8* null, i8* %"$update_value_572"), !dbg !74 + call void @llvm.dbg.declare(metadata %Map_ByStr20_Uint128** %"$backers_44", metadata !130, metadata !DIExpression()), !dbg !131 + %"$gasrem_572" = load i64, i64* @_gasrem, align 8 + %"$gascmp_573" = icmp ugt i64 1, %"$gasrem_572" + br i1 %"$gascmp_573", label %"$out_of_gas_574", label %"$have_gas_575" + +"$out_of_gas_574": ; preds = %"$have_gas_570" + call void @_out_of_gas() + br label %"$have_gas_575" + +"$have_gas_575": ; preds = %"$out_of_gas_574", %"$have_gas_570" + %"$consume_576" = sub i64 %"$gasrem_572", 1 + store i64 %"$consume_576", i64* @_gasrem, align 8 + %"$execptr_load_577" = load i8*, i8** @_execptr, align 8 + %"$_new_empty_map_call_578" = call i8* @_new_empty_map(i8* %"$execptr_load_577") + %"$_new_empty_map_579" = bitcast i8* %"$_new_empty_map_call_578" to %Map_ByStr20_Uint128* + store %Map_ByStr20_Uint128* %"$_new_empty_map_579", %Map_ByStr20_Uint128** %"$backers_44", align 8, !dbg !132 + %"$execptr_load_580" = load i8*, i8** @_execptr, align 8 + %"$$backers_44_582" = load %Map_ByStr20_Uint128*, %Map_ByStr20_Uint128** %"$backers_44", align 8 + %"$update_value_583" = bitcast %Map_ByStr20_Uint128* %"$$backers_44_582" to i8* + call void @_update_field(i8* %"$execptr_load_580", i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$backers_581", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_87", i32 0, i8* null, i8* %"$update_value_583"), !dbg !132 %"$funded_45" = alloca %TName_Bool*, 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_575": ; preds = %"$have_gas_564" - call void @_out_of_gas() - br label %"$have_gas_576" - -"$have_gas_576": ; preds = %"$out_of_gas_575", %"$have_gas_564" - %"$consume_577" = sub i64 %"$gasrem_573", 1 - store i64 %"$consume_577", i64* @_gasrem, align 8 - %"$adtval_578_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_578_salloc" = call i8* @_salloc(i8* %"$adtval_578_load", i64 1) - %"$adtval_578" = bitcast i8* %"$adtval_578_salloc" to %CName_False* - %"$adtgep_579" = getelementptr inbounds %CName_False, %CName_False* %"$adtval_578", i32 0, i32 0 - store i8 1, i8* %"$adtgep_579", align 1 - %"$adtptr_580" = bitcast %CName_False* %"$adtval_578" to %TName_Bool* - store %TName_Bool* %"$adtptr_580", %TName_Bool** %"$funded_45", align 8, !dbg !75 - %"$execptr_load_581" = load i8*, i8** @_execptr, align 8 - %"$$funded_45_583" = load %TName_Bool*, %TName_Bool** %"$funded_45", align 8 - %"$update_value_584" = bitcast %TName_Bool* %"$$funded_45_583" to i8* - call void @_update_field(i8* %"$execptr_load_581", i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$funded_582", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_85", i32 0, i8* null, i8* %"$update_value_584"), !dbg !75 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$funded_45", metadata !133, metadata !DIExpression()), !dbg !134 + %"$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 = %"$have_gas_575" + call void @_out_of_gas() + br label %"$have_gas_587" + +"$have_gas_587": ; preds = %"$out_of_gas_586", %"$have_gas_575" + %"$consume_588" = sub i64 %"$gasrem_584", 1 + store i64 %"$consume_588", i64* @_gasrem, align 8 + %"$adtval_589_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_589_salloc" = call i8* @_salloc(i8* %"$adtval_589_load", i64 1) + %"$adtval_589" = bitcast i8* %"$adtval_589_salloc" to %CName_False* + %"$adtgep_590" = getelementptr inbounds %CName_False, %CName_False* %"$adtval_589", i32 0, i32 0 + store i8 1, i8* %"$adtgep_590", align 1 + %"$adtptr_591" = bitcast %CName_False* %"$adtval_589" to %TName_Bool* + store %TName_Bool* %"$adtptr_591", %TName_Bool** %"$funded_45", align 8, !dbg !135 + %"$execptr_load_592" = load i8*, i8** @_execptr, align 8 + %"$$funded_45_594" = load %TName_Bool*, %TName_Bool** %"$funded_45", align 8 + %"$update_value_595" = bitcast %TName_Bool* %"$$funded_45_594" to i8* + call void @_update_field(i8* %"$execptr_load_592", i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$funded_593", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_85", i32 0, i8* null, i8* %"$update_value_595"), !dbg !135 ret void } @@ -1218,476 +1268,494 @@ declare i8* @_new_empty_map(i8*) declare void @_update_field(i8*, i8*, %_TyDescrTy_Typ*, i32, i8*, i8*) -define internal void @"$Donate_585"(%Uint128 %_amount, [20 x i8]* %"$_origin_586", [20 x i8]* %"$_sender_587") !dbg !76 { +define internal void @"$Donate_596"(%Uint128 %_amount, [20 x i8]* %"$_origin_597", [20 x i8]* %"$_sender_598") !dbg !136 { entry: - %_origin = load [20 x i8], [20 x i8]* %"$_origin_586", align 1 - %_sender = load [20 x i8], [20 x i8]* %"$_sender_587", align 1 - %"$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 = %entry - call void @_out_of_gas() - br label %"$have_gas_591" - -"$have_gas_591": ; preds = %"$out_of_gas_590", %entry - %"$consume_592" = sub i64 %"$gasrem_588", 1 - store i64 %"$consume_592", i64* @_gasrem, align 8 + %"$_sender_877" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_sender_598", [20 x i8]** %"$_sender_877", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_sender_877", metadata !137, metadata !DIExpression()), !dbg !139 + %"$_origin_876" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_origin_597", [20 x i8]** %"$_origin_876", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_origin_876", metadata !140, metadata !DIExpression()), !dbg !139 + %"$_amount_875" = alloca %Uint128, align 8 + store %Uint128 %_amount, %Uint128* %"$_amount_875", align 8 + call void @llvm.dbg.declare(metadata %Uint128* %"$_amount_875", metadata !141, metadata !DIExpression()), !dbg !139 + %_origin = load [20 x i8], [20 x i8]* %"$_origin_597", align 1 + %_sender = load [20 x i8], [20 x i8]* %"$_sender_598", align 1 + %"$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" + +"$out_of_gas_601": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_602" + +"$have_gas_602": ; preds = %"$out_of_gas_601", %entry + %"$consume_603" = sub i64 %"$gasrem_599", 1 + store i64 %"$consume_603", i64* @_gasrem, align 8 %blk = alloca i8*, align 8 - %"$execptr_load_595" = load i8*, i8** @_execptr, align 8 - %"$blk_call_596" = call i8* @_read_blockchain(i8* %"$execptr_load_595", %BCQuery { i8* getelementptr inbounds ([11 x i8], [11 x i8]* @"$fetchbc_query_name_593", i32 0, i32 0), i32 11 }, %String { i8* getelementptr inbounds ([0 x i8], [0 x i8]* @"$fetchbc_query_arg_594", i32 0, i32 0), i32 0 }), !dbg !77 - store i8* %"$blk_call_596", i8** %blk, align 8 - %"$gasrem_598" = load i64, i64* @_gasrem, align 8 - %"$gascmp_599" = icmp ugt i64 1, %"$gasrem_598" - br i1 %"$gascmp_599", label %"$out_of_gas_600", label %"$have_gas_601" + call void @llvm.dbg.declare(metadata i8** %blk, metadata !142, metadata !DIExpression()), !dbg !143 + %"$execptr_load_606" = load i8*, i8** @_execptr, align 8 + %"$blk_call_607" = call i8* @_read_blockchain(i8* %"$execptr_load_606", %BCQuery { i8* getelementptr inbounds ([11 x i8], [11 x i8]* @"$fetchbc_query_name_604", i32 0, i32 0), i32 11 }, %String { i8* getelementptr inbounds ([0 x i8], [0 x i8]* @"$fetchbc_query_arg_605", i32 0, i32 0), i32 0 }), !dbg !143 + store i8* %"$blk_call_607", i8** %blk, 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_600": ; preds = %"$have_gas_591" +"$out_of_gas_611": ; preds = %"$have_gas_602" call void @_out_of_gas() - br label %"$have_gas_601" + br label %"$have_gas_612" -"$have_gas_601": ; preds = %"$out_of_gas_600", %"$have_gas_591" - %"$consume_602" = sub i64 %"$gasrem_598", 1 - store i64 %"$consume_602", i64* @_gasrem, align 8 +"$have_gas_612": ; preds = %"$out_of_gas_611", %"$have_gas_602" + %"$consume_613" = sub i64 %"$gasrem_609", 1 + store i64 %"$consume_613", i64* @_gasrem, align 8 %in_time = alloca %TName_Bool*, align 8 - %"$gasrem_603" = load i64, i64* @_gasrem, align 8 - %"$gascmp_604" = icmp ugt i64 1, %"$gasrem_603" - br i1 %"$gascmp_604", label %"$out_of_gas_605", label %"$have_gas_606" + call void @llvm.dbg.declare(metadata %TName_Bool** %in_time, metadata !144, metadata !DIExpression()), !dbg !145 + %"$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_605": ; preds = %"$have_gas_601" +"$out_of_gas_616": ; preds = %"$have_gas_612" call void @_out_of_gas() - br label %"$have_gas_606" + br label %"$have_gas_617" -"$have_gas_606": ; preds = %"$out_of_gas_605", %"$have_gas_601" - %"$consume_607" = sub i64 %"$gasrem_603", 1 - store i64 %"$consume_607", 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 %"$crowdfunding.blk_leq_7" = alloca { %TName_Bool* (i8*, i8*)*, i8* }, align 8 - %"$crowdfunding.blk_leq_608" = 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_609" = extractvalue { { %TName_Bool* (i8*, i8*)*, i8* } (i8*, i8*)*, i8* } %"$crowdfunding.blk_leq_608", 0 - %"$crowdfunding.blk_leq_envptr_610" = extractvalue { { %TName_Bool* (i8*, i8*)*, i8* } (i8*, i8*)*, i8* } %"$crowdfunding.blk_leq_608", 1 - %"$blk_611" = load i8*, i8** %blk, align 8 - %"$crowdfunding.blk_leq_call_612" = call { %TName_Bool* (i8*, i8*)*, i8* } %"$crowdfunding.blk_leq_fptr_609"(i8* %"$crowdfunding.blk_leq_envptr_610", i8* %"$blk_611"), !dbg !78 - store { %TName_Bool* (i8*, i8*)*, i8* } %"$crowdfunding.blk_leq_call_612", { %TName_Bool* (i8*, i8*)*, i8* }* %"$crowdfunding.blk_leq_7", align 8, !dbg !78 + %"$crowdfunding.blk_leq_619" = 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_620" = extractvalue { { %TName_Bool* (i8*, i8*)*, i8* } (i8*, i8*)*, i8* } %"$crowdfunding.blk_leq_619", 0 + %"$crowdfunding.blk_leq_envptr_621" = extractvalue { { %TName_Bool* (i8*, i8*)*, i8* } (i8*, i8*)*, i8* } %"$crowdfunding.blk_leq_619", 1 + %"$blk_622" = load i8*, i8** %blk, align 8 + %"$crowdfunding.blk_leq_call_623" = call { %TName_Bool* (i8*, i8*)*, i8* } %"$crowdfunding.blk_leq_fptr_620"(i8* %"$crowdfunding.blk_leq_envptr_621", i8* %"$blk_622"), !dbg !146 + store { %TName_Bool* (i8*, i8*)*, i8* } %"$crowdfunding.blk_leq_call_623", { %TName_Bool* (i8*, i8*)*, i8* }* %"$crowdfunding.blk_leq_7", align 8, !dbg !146 %"$crowdfunding.blk_leq_8" = alloca %TName_Bool*, align 8 - %"$$crowdfunding.blk_leq_7_613" = load { %TName_Bool* (i8*, i8*)*, i8* }, { %TName_Bool* (i8*, i8*)*, i8* }* %"$crowdfunding.blk_leq_7", align 8 - %"$$crowdfunding.blk_leq_7_fptr_614" = extractvalue { %TName_Bool* (i8*, i8*)*, i8* } %"$$crowdfunding.blk_leq_7_613", 0 - %"$$crowdfunding.blk_leq_7_envptr_615" = extractvalue { %TName_Bool* (i8*, i8*)*, i8* } %"$$crowdfunding.blk_leq_7_613", 1 - %"$max_block_616" = load i8*, i8** @_cparam_max_block, align 8 - %"$$crowdfunding.blk_leq_7_call_617" = call %TName_Bool* %"$$crowdfunding.blk_leq_7_fptr_614"(i8* %"$$crowdfunding.blk_leq_7_envptr_615", i8* %"$max_block_616"), !dbg !78 - store %TName_Bool* %"$$crowdfunding.blk_leq_7_call_617", %TName_Bool** %"$crowdfunding.blk_leq_8", align 8, !dbg !78 - %"$$crowdfunding.blk_leq_8_618" = load %TName_Bool*, %TName_Bool** %"$crowdfunding.blk_leq_8", align 8 - store %TName_Bool* %"$$crowdfunding.blk_leq_8_618", %TName_Bool** %in_time, align 8, !dbg !78 - %"$gasrem_619" = load i64, i64* @_gasrem, align 8 - %"$gascmp_620" = icmp ugt i64 2, %"$gasrem_619" - br i1 %"$gascmp_620", label %"$out_of_gas_621", label %"$have_gas_622" - -"$out_of_gas_621": ; preds = %"$have_gas_606" - call void @_out_of_gas() - br label %"$have_gas_622" - -"$have_gas_622": ; preds = %"$out_of_gas_621", %"$have_gas_606" - %"$consume_623" = sub i64 %"$gasrem_619", 2 - store i64 %"$consume_623", i64* @_gasrem, align 8 - %"$in_time_625" = load %TName_Bool*, %TName_Bool** %in_time, align 8 - %"$in_time_tag_626" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$in_time_625", i32 0, i32 0 - %"$in_time_tag_627" = load i8, i8* %"$in_time_tag_626", align 1 - switch i8 %"$in_time_tag_627", label %"$empty_default_628" [ - i8 0, label %"$True_629" - i8 1, label %"$False_810" - ], !dbg !79 - -"$True_629": ; preds = %"$have_gas_622" - %"$in_time_630" = bitcast %TName_Bool* %"$in_time_625" to %CName_True* + call void @llvm.dbg.declare(metadata %TName_Bool** %"$crowdfunding.blk_leq_8", metadata !147, metadata !DIExpression()), !dbg !146 + %"$$crowdfunding.blk_leq_7_624" = load { %TName_Bool* (i8*, i8*)*, i8* }, { %TName_Bool* (i8*, i8*)*, i8* }* %"$crowdfunding.blk_leq_7", align 8 + %"$$crowdfunding.blk_leq_7_fptr_625" = extractvalue { %TName_Bool* (i8*, i8*)*, i8* } %"$$crowdfunding.blk_leq_7_624", 0 + %"$$crowdfunding.blk_leq_7_envptr_626" = extractvalue { %TName_Bool* (i8*, i8*)*, i8* } %"$$crowdfunding.blk_leq_7_624", 1 + %"$max_block_627" = load i8*, i8** @_cparam_max_block, align 8 + %"$$crowdfunding.blk_leq_7_call_628" = call %TName_Bool* %"$$crowdfunding.blk_leq_7_fptr_625"(i8* %"$$crowdfunding.blk_leq_7_envptr_626", i8* %"$max_block_627"), !dbg !146 + store %TName_Bool* %"$$crowdfunding.blk_leq_7_call_628", %TName_Bool** %"$crowdfunding.blk_leq_8", align 8, !dbg !146 + %"$$crowdfunding.blk_leq_8_629" = load %TName_Bool*, %TName_Bool** %"$crowdfunding.blk_leq_8", align 8 + store %TName_Bool* %"$$crowdfunding.blk_leq_8_629", %TName_Bool** %in_time, align 8, !dbg !146 + %"$gasrem_630" = load i64, i64* @_gasrem, align 8 + %"$gascmp_631" = icmp ugt i64 2, %"$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", 2 + store i64 %"$consume_634", i64* @_gasrem, align 8 + %"$in_time_636" = load %TName_Bool*, %TName_Bool** %in_time, align 8 + %"$in_time_tag_637" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$in_time_636", i32 0, i32 0 + %"$in_time_tag_638" = load i8, i8* %"$in_time_tag_637", align 1 + switch i8 %"$in_time_tag_638", label %"$empty_default_639" [ + i8 0, label %"$True_640" + i8 1, label %"$False_821" + ], !dbg !148 + +"$True_640": ; preds = %"$have_gas_633" + %"$in_time_641" = bitcast %TName_Bool* %"$in_time_636" to %CName_True* %bs = alloca %Map_ByStr20_Uint128*, align 8 - %"$execptr_load_632" = load i8*, i8** @_execptr, align 8 - %"$bs_call_633" = call i8* @_fetch_field(i8* %"$execptr_load_632", i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$backers_631", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_87", i32 0, i8* null, i32 1), !dbg !80 - %"$bs_634" = bitcast i8* %"$bs_call_633" to %Map_ByStr20_Uint128* - store %Map_ByStr20_Uint128* %"$bs_634", %Map_ByStr20_Uint128** %bs, align 8 - %"$bs_635" = load %Map_ByStr20_Uint128*, %Map_ByStr20_Uint128** %bs, align 8 - %"$$bs_635_636" = bitcast %Map_ByStr20_Uint128* %"$bs_635" to i8* - %"$_literal_cost_call_637" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Map_87", i8* %"$$bs_635_636") - %"$bs_638" = load %Map_ByStr20_Uint128*, %Map_ByStr20_Uint128** %bs, align 8 - %"$$bs_638_639" = bitcast %Map_ByStr20_Uint128* %"$bs_638" to i8* - %"$_mapsortcost_call_640" = call i64 @_mapsortcost(%_TyDescrTy_Typ* @"$TyDescr_Map_87", i8* %"$$bs_638_639") - %"$gasadd_641" = add i64 %"$_literal_cost_call_637", %"$_mapsortcost_call_640" - %"$gasrem_642" = load i64, i64* @_gasrem, align 8 - %"$gascmp_643" = icmp ugt i64 %"$gasadd_641", %"$gasrem_642" - br i1 %"$gascmp_643", label %"$out_of_gas_644", label %"$have_gas_645" - -"$out_of_gas_644": ; preds = %"$True_629" - call void @_out_of_gas() - br label %"$have_gas_645" - -"$have_gas_645": ; preds = %"$out_of_gas_644", %"$True_629" - %"$consume_646" = sub i64 %"$gasrem_642", %"$gasadd_641" - store i64 %"$consume_646", i64* @_gasrem, align 8 - %"$gasrem_647" = load i64, i64* @_gasrem, align 8 - %"$gascmp_648" = icmp ugt i64 1, %"$gasrem_647" - br i1 %"$gascmp_648", label %"$out_of_gas_649", label %"$have_gas_650" - -"$out_of_gas_649": ; preds = %"$have_gas_645" - call void @_out_of_gas() - br label %"$have_gas_650" - -"$have_gas_650": ; preds = %"$out_of_gas_649", %"$have_gas_645" - %"$consume_651" = sub i64 %"$gasrem_647", 1 - store i64 %"$consume_651", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %Map_ByStr20_Uint128** %bs, metadata !149, metadata !DIExpression()), !dbg !152 + %"$execptr_load_643" = load i8*, i8** @_execptr, align 8 + %"$bs_call_644" = call i8* @_fetch_field(i8* %"$execptr_load_643", i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$backers_642", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_87", i32 0, i8* null, i32 1), !dbg !152 + %"$bs_645" = bitcast i8* %"$bs_call_644" to %Map_ByStr20_Uint128* + store %Map_ByStr20_Uint128* %"$bs_645", %Map_ByStr20_Uint128** %bs, align 8 + %"$bs_646" = load %Map_ByStr20_Uint128*, %Map_ByStr20_Uint128** %bs, align 8 + %"$$bs_646_647" = bitcast %Map_ByStr20_Uint128* %"$bs_646" to i8* + %"$_literal_cost_call_648" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Map_87", i8* %"$$bs_646_647") + %"$bs_649" = load %Map_ByStr20_Uint128*, %Map_ByStr20_Uint128** %bs, align 8 + %"$$bs_649_650" = bitcast %Map_ByStr20_Uint128* %"$bs_649" to i8* + %"$_mapsortcost_call_651" = call i64 @_mapsortcost(%_TyDescrTy_Typ* @"$TyDescr_Map_87", i8* %"$$bs_649_650") + %"$gasadd_652" = add i64 %"$_literal_cost_call_648", %"$_mapsortcost_call_651" + %"$gasrem_653" = load i64, i64* @_gasrem, align 8 + %"$gascmp_654" = icmp ugt i64 %"$gasadd_652", %"$gasrem_653" + br i1 %"$gascmp_654", label %"$out_of_gas_655", label %"$have_gas_656" + +"$out_of_gas_655": ; preds = %"$True_640" + call void @_out_of_gas() + br label %"$have_gas_656" + +"$have_gas_656": ; preds = %"$out_of_gas_655", %"$True_640" + %"$consume_657" = sub i64 %"$gasrem_653", %"$gasadd_652" + store i64 %"$consume_657", i64* @_gasrem, 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" + +"$out_of_gas_660": ; preds = %"$have_gas_656" + call void @_out_of_gas() + br label %"$have_gas_661" + +"$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 %res = alloca %"TName_Option_Map_(ByStr20)_(Uint128)"*, align 8 - %"$gasrem_652" = load i64, i64* @_gasrem, align 8 - %"$gascmp_653" = icmp ugt i64 1, %"$gasrem_652" - br i1 %"$gascmp_653", label %"$out_of_gas_654", label %"$have_gas_655" + call void @llvm.dbg.declare(metadata %"TName_Option_Map_(ByStr20)_(Uint128)"** %res, metadata !153, metadata !DIExpression()), !dbg !154 + %"$gasrem_663" = load i64, i64* @_gasrem, align 8 + %"$gascmp_664" = icmp ugt i64 1, %"$gasrem_663" + br i1 %"$gascmp_664", label %"$out_of_gas_665", label %"$have_gas_666" -"$out_of_gas_654": ; preds = %"$have_gas_650" +"$out_of_gas_665": ; preds = %"$have_gas_661" call void @_out_of_gas() - br label %"$have_gas_655" + br label %"$have_gas_666" -"$have_gas_655": ; preds = %"$out_of_gas_654", %"$have_gas_650" - %"$consume_656" = sub i64 %"$gasrem_652", 1 - store i64 %"$consume_656", i64* @_gasrem, align 8 +"$have_gas_666": ; preds = %"$out_of_gas_665", %"$have_gas_661" + %"$consume_667" = sub i64 %"$gasrem_663", 1 + store i64 %"$consume_667", i64* @_gasrem, align 8 %"$crowdfunding.check_update_4" = alloca { { %"TName_Option_Map_(ByStr20)_(Uint128)"* (i8*, %Uint128)*, i8* } (i8*, [20 x i8]*)*, i8* }, align 8 - %"$crowdfunding.check_update_657" = 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_658" = extractvalue { { { %"TName_Option_Map_(ByStr20)_(Uint128)"* (i8*, %Uint128)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %Map_ByStr20_Uint128*)*, i8* } %"$crowdfunding.check_update_657", 0 - %"$crowdfunding.check_update_envptr_659" = extractvalue { { { %"TName_Option_Map_(ByStr20)_(Uint128)"* (i8*, %Uint128)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %Map_ByStr20_Uint128*)*, i8* } %"$crowdfunding.check_update_657", 1 - %"$bs_660" = load %Map_ByStr20_Uint128*, %Map_ByStr20_Uint128** %bs, align 8 - %"$crowdfunding.check_update_call_661" = call { { %"TName_Option_Map_(ByStr20)_(Uint128)"* (i8*, %Uint128)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$crowdfunding.check_update_fptr_658"(i8* %"$crowdfunding.check_update_envptr_659", %Map_ByStr20_Uint128* %"$bs_660"), !dbg !83 - store { { %"TName_Option_Map_(ByStr20)_(Uint128)"* (i8*, %Uint128)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$crowdfunding.check_update_call_661", { { %"TName_Option_Map_(ByStr20)_(Uint128)"* (i8*, %Uint128)*, i8* } (i8*, [20 x i8]*)*, i8* }* %"$crowdfunding.check_update_4", align 8, !dbg !83 + %"$crowdfunding.check_update_668" = 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_669" = extractvalue { { { %"TName_Option_Map_(ByStr20)_(Uint128)"* (i8*, %Uint128)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %Map_ByStr20_Uint128*)*, i8* } %"$crowdfunding.check_update_668", 0 + %"$crowdfunding.check_update_envptr_670" = extractvalue { { { %"TName_Option_Map_(ByStr20)_(Uint128)"* (i8*, %Uint128)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %Map_ByStr20_Uint128*)*, i8* } %"$crowdfunding.check_update_668", 1 + %"$bs_671" = load %Map_ByStr20_Uint128*, %Map_ByStr20_Uint128** %bs, align 8 + %"$crowdfunding.check_update_call_672" = call { { %"TName_Option_Map_(ByStr20)_(Uint128)"* (i8*, %Uint128)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$crowdfunding.check_update_fptr_669"(i8* %"$crowdfunding.check_update_envptr_670", %Map_ByStr20_Uint128* %"$bs_671"), !dbg !155 + store { { %"TName_Option_Map_(ByStr20)_(Uint128)"* (i8*, %Uint128)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$crowdfunding.check_update_call_672", { { %"TName_Option_Map_(ByStr20)_(Uint128)"* (i8*, %Uint128)*, i8* } (i8*, [20 x i8]*)*, i8* }* %"$crowdfunding.check_update_4", align 8, !dbg !155 %"$crowdfunding.check_update_5" = alloca { %"TName_Option_Map_(ByStr20)_(Uint128)"* (i8*, %Uint128)*, i8* }, align 8 - %"$$crowdfunding.check_update_4_662" = 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_4", align 8 - %"$$crowdfunding.check_update_4_fptr_663" = extractvalue { { %"TName_Option_Map_(ByStr20)_(Uint128)"* (i8*, %Uint128)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$$crowdfunding.check_update_4_662", 0 - %"$$crowdfunding.check_update_4_envptr_664" = extractvalue { { %"TName_Option_Map_(ByStr20)_(Uint128)"* (i8*, %Uint128)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$$crowdfunding.check_update_4_662", 1 - %"$$crowdfunding.check_update_4__sender_665" = alloca [20 x i8], align 1 - store [20 x i8] %_sender, [20 x i8]* %"$$crowdfunding.check_update_4__sender_665", align 1 - %"$$crowdfunding.check_update_4_call_666" = call { %"TName_Option_Map_(ByStr20)_(Uint128)"* (i8*, %Uint128)*, i8* } %"$$crowdfunding.check_update_4_fptr_663"(i8* %"$$crowdfunding.check_update_4_envptr_664", [20 x i8]* %"$$crowdfunding.check_update_4__sender_665"), !dbg !83 - store { %"TName_Option_Map_(ByStr20)_(Uint128)"* (i8*, %Uint128)*, i8* } %"$$crowdfunding.check_update_4_call_666", { %"TName_Option_Map_(ByStr20)_(Uint128)"* (i8*, %Uint128)*, i8* }* %"$crowdfunding.check_update_5", align 8, !dbg !83 + %"$$crowdfunding.check_update_4_673" = 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_4", align 8 + %"$$crowdfunding.check_update_4_fptr_674" = extractvalue { { %"TName_Option_Map_(ByStr20)_(Uint128)"* (i8*, %Uint128)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$$crowdfunding.check_update_4_673", 0 + %"$$crowdfunding.check_update_4_envptr_675" = extractvalue { { %"TName_Option_Map_(ByStr20)_(Uint128)"* (i8*, %Uint128)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$$crowdfunding.check_update_4_673", 1 + %"$$crowdfunding.check_update_4__sender_676" = alloca [20 x i8], align 1 + store [20 x i8] %_sender, [20 x i8]* %"$$crowdfunding.check_update_4__sender_676", align 1 + %"$$crowdfunding.check_update_4_call_677" = call { %"TName_Option_Map_(ByStr20)_(Uint128)"* (i8*, %Uint128)*, i8* } %"$$crowdfunding.check_update_4_fptr_674"(i8* %"$$crowdfunding.check_update_4_envptr_675", [20 x i8]* %"$$crowdfunding.check_update_4__sender_676"), !dbg !155 + store { %"TName_Option_Map_(ByStr20)_(Uint128)"* (i8*, %Uint128)*, i8* } %"$$crowdfunding.check_update_4_call_677", { %"TName_Option_Map_(ByStr20)_(Uint128)"* (i8*, %Uint128)*, i8* }* %"$crowdfunding.check_update_5", align 8, !dbg !155 %"$crowdfunding.check_update_6" = alloca %"TName_Option_Map_(ByStr20)_(Uint128)"*, align 8 - %"$$crowdfunding.check_update_5_667" = load { %"TName_Option_Map_(ByStr20)_(Uint128)"* (i8*, %Uint128)*, i8* }, { %"TName_Option_Map_(ByStr20)_(Uint128)"* (i8*, %Uint128)*, i8* }* %"$crowdfunding.check_update_5", align 8 - %"$$crowdfunding.check_update_5_fptr_668" = extractvalue { %"TName_Option_Map_(ByStr20)_(Uint128)"* (i8*, %Uint128)*, i8* } %"$$crowdfunding.check_update_5_667", 0 - %"$$crowdfunding.check_update_5_envptr_669" = extractvalue { %"TName_Option_Map_(ByStr20)_(Uint128)"* (i8*, %Uint128)*, i8* } %"$$crowdfunding.check_update_5_667", 1 - %"$$crowdfunding.check_update_5_call_670" = call %"TName_Option_Map_(ByStr20)_(Uint128)"* %"$$crowdfunding.check_update_5_fptr_668"(i8* %"$$crowdfunding.check_update_5_envptr_669", %Uint128 %_amount), !dbg !83 - store %"TName_Option_Map_(ByStr20)_(Uint128)"* %"$$crowdfunding.check_update_5_call_670", %"TName_Option_Map_(ByStr20)_(Uint128)"** %"$crowdfunding.check_update_6", align 8, !dbg !83 - %"$$crowdfunding.check_update_6_671" = load %"TName_Option_Map_(ByStr20)_(Uint128)"*, %"TName_Option_Map_(ByStr20)_(Uint128)"** %"$crowdfunding.check_update_6", align 8 - store %"TName_Option_Map_(ByStr20)_(Uint128)"* %"$$crowdfunding.check_update_6_671", %"TName_Option_Map_(ByStr20)_(Uint128)"** %res, align 8, !dbg !83 - %"$gasrem_672" = load i64, i64* @_gasrem, align 8 - %"$gascmp_673" = icmp ugt i64 2, %"$gasrem_672" - br i1 %"$gascmp_673", label %"$out_of_gas_674", label %"$have_gas_675" - -"$out_of_gas_674": ; preds = %"$have_gas_655" - call void @_out_of_gas() - br label %"$have_gas_675" - -"$have_gas_675": ; preds = %"$out_of_gas_674", %"$have_gas_655" - %"$consume_676" = sub i64 %"$gasrem_672", 2 - store i64 %"$consume_676", i64* @_gasrem, align 8 - %"$res_678" = load %"TName_Option_Map_(ByStr20)_(Uint128)"*, %"TName_Option_Map_(ByStr20)_(Uint128)"** %res, align 8 - %"$res_tag_679" = getelementptr inbounds %"TName_Option_Map_(ByStr20)_(Uint128)", %"TName_Option_Map_(ByStr20)_(Uint128)"* %"$res_678", i32 0, i32 0 - %"$res_tag_680" = load i8, i8* %"$res_tag_679", align 1 - switch i8 %"$res_tag_680", label %"$empty_default_681" [ - i8 1, label %"$None_682" - i8 0, label %"$Some_736" - ], !dbg !84 - -"$None_682": ; preds = %"$have_gas_675" - %"$res_683" = bitcast %"TName_Option_Map_(ByStr20)_(Uint128)"* %"$res_678" to %"CName_None_Map_(ByStr20)_(Uint128)"* - %"$gasrem_684" = load i64, i64* @_gasrem, align 8 - %"$gascmp_685" = icmp ugt i64 1, %"$gasrem_684" - br i1 %"$gascmp_685", label %"$out_of_gas_686", label %"$have_gas_687" - -"$out_of_gas_686": ; preds = %"$None_682" - call void @_out_of_gas() - br label %"$have_gas_687" - -"$have_gas_687": ; preds = %"$out_of_gas_686", %"$None_682" - %"$consume_688" = sub i64 %"$gasrem_684", 1 - store i64 %"$consume_688", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %"TName_Option_Map_(ByStr20)_(Uint128)"** %"$crowdfunding.check_update_6", metadata !156, metadata !DIExpression()), !dbg !155 + %"$$crowdfunding.check_update_5_678" = load { %"TName_Option_Map_(ByStr20)_(Uint128)"* (i8*, %Uint128)*, i8* }, { %"TName_Option_Map_(ByStr20)_(Uint128)"* (i8*, %Uint128)*, i8* }* %"$crowdfunding.check_update_5", align 8 + %"$$crowdfunding.check_update_5_fptr_679" = extractvalue { %"TName_Option_Map_(ByStr20)_(Uint128)"* (i8*, %Uint128)*, i8* } %"$$crowdfunding.check_update_5_678", 0 + %"$$crowdfunding.check_update_5_envptr_680" = extractvalue { %"TName_Option_Map_(ByStr20)_(Uint128)"* (i8*, %Uint128)*, i8* } %"$$crowdfunding.check_update_5_678", 1 + %"$$crowdfunding.check_update_5_call_681" = call %"TName_Option_Map_(ByStr20)_(Uint128)"* %"$$crowdfunding.check_update_5_fptr_679"(i8* %"$$crowdfunding.check_update_5_envptr_680", %Uint128 %_amount), !dbg !155 + store %"TName_Option_Map_(ByStr20)_(Uint128)"* %"$$crowdfunding.check_update_5_call_681", %"TName_Option_Map_(ByStr20)_(Uint128)"** %"$crowdfunding.check_update_6", align 8, !dbg !155 + %"$$crowdfunding.check_update_6_682" = load %"TName_Option_Map_(ByStr20)_(Uint128)"*, %"TName_Option_Map_(ByStr20)_(Uint128)"** %"$crowdfunding.check_update_6", align 8 + store %"TName_Option_Map_(ByStr20)_(Uint128)"* %"$$crowdfunding.check_update_6_682", %"TName_Option_Map_(ByStr20)_(Uint128)"** %res, align 8, !dbg !155 + %"$gasrem_683" = load i64, i64* @_gasrem, align 8 + %"$gascmp_684" = icmp ugt i64 2, %"$gasrem_683" + br i1 %"$gascmp_684", label %"$out_of_gas_685", label %"$have_gas_686" + +"$out_of_gas_685": ; preds = %"$have_gas_666" + call void @_out_of_gas() + br label %"$have_gas_686" + +"$have_gas_686": ; preds = %"$out_of_gas_685", %"$have_gas_666" + %"$consume_687" = sub i64 %"$gasrem_683", 2 + store i64 %"$consume_687", i64* @_gasrem, align 8 + %"$res_689" = load %"TName_Option_Map_(ByStr20)_(Uint128)"*, %"TName_Option_Map_(ByStr20)_(Uint128)"** %res, align 8 + %"$res_tag_690" = getelementptr inbounds %"TName_Option_Map_(ByStr20)_(Uint128)", %"TName_Option_Map_(ByStr20)_(Uint128)"* %"$res_689", i32 0, i32 0 + %"$res_tag_691" = load i8, i8* %"$res_tag_690", align 1 + switch i8 %"$res_tag_691", label %"$empty_default_692" [ + i8 1, label %"$None_693" + i8 0, label %"$Some_747" + ], !dbg !157 + +"$None_693": ; preds = %"$have_gas_686" + %"$res_694" = bitcast %"TName_Option_Map_(ByStr20)_(Uint128)"* %"$res_689" to %"CName_None_Map_(ByStr20)_(Uint128)"* + %"$gasrem_695" = load i64, i64* @_gasrem, align 8 + %"$gascmp_696" = icmp ugt i64 1, %"$gasrem_695" + br i1 %"$gascmp_696", label %"$out_of_gas_697", label %"$have_gas_698" + +"$out_of_gas_697": ; preds = %"$None_693" + call void @_out_of_gas() + br label %"$have_gas_698" + +"$have_gas_698": ; preds = %"$out_of_gas_697", %"$None_693" + %"$consume_699" = sub i64 %"$gasrem_695", 1 + store i64 %"$consume_699", i64* @_gasrem, align 8 %e = alloca 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 = %"$have_gas_687" - call void @_out_of_gas() - br label %"$have_gas_692" - -"$have_gas_692": ; preds = %"$out_of_gas_691", %"$have_gas_687" - %"$consume_693" = sub i64 %"$gasrem_689", 1 - store i64 %"$consume_693", i64* @_gasrem, align 8 - %"$msgobj_694_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$msgobj_694_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_694_salloc_load", i64 153) - %"$msgobj_694_salloc" = bitcast i8* %"$msgobj_694_salloc_salloc" to [153 x i8]* - %"$msgobj_694" = bitcast [153 x i8]* %"$msgobj_694_salloc" to i8* - store i8 4, i8* %"$msgobj_694", align 1 - %"$msgobj_fname_696" = getelementptr i8, i8* %"$msgobj_694", i32 1 - %"$msgobj_fname_697" = bitcast i8* %"$msgobj_fname_696" to %String* - store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_695", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_697", align 8 - %"$msgobj_td_698" = getelementptr i8, i8* %"$msgobj_694", i32 17 - %"$msgobj_td_699" = bitcast i8* %"$msgobj_td_698" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_String_64", %_TyDescrTy_Typ** %"$msgobj_td_699", align 8 - %"$msgobj_v_701" = getelementptr i8, i8* %"$msgobj_694", i32 25 - %"$msgobj_v_702" = bitcast i8* %"$msgobj_v_701" to %String* - store %String { i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$stringlit_700", i32 0, i32 0), i32 15 }, %String* %"$msgobj_v_702", align 8 - %"$msgobj_fname_704" = getelementptr i8, i8* %"$msgobj_694", i32 41 - %"$msgobj_fname_705" = bitcast i8* %"$msgobj_fname_704" to %String* - store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_703", i32 0, i32 0), i32 5 }, %String* %"$msgobj_fname_705", align 8 - %"$msgobj_td_706" = getelementptr i8, i8* %"$msgobj_694", i32 57 - %"$msgobj_td_707" = bitcast i8* %"$msgobj_td_706" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_78", %_TyDescrTy_Typ** %"$msgobj_td_707", align 8 - %"$msgobj_v_708" = getelementptr i8, i8* %"$msgobj_694", i32 65 - %"$msgobj_v_709" = bitcast i8* %"$msgobj_v_708" to [20 x i8]* - store [20 x i8] %_sender, [20 x i8]* %"$msgobj_v_709", align 1 - %"$msgobj_fname_711" = getelementptr i8, i8* %"$msgobj_694", i32 85 - %"$msgobj_fname_712" = bitcast i8* %"$msgobj_fname_711" to %String* - store %String { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$stringlit_710", i32 0, i32 0), i32 6 }, %String* %"$msgobj_fname_712", align 8 - %"$msgobj_td_713" = getelementptr i8, i8* %"$msgobj_694", i32 101 - %"$msgobj_td_714" = bitcast i8* %"$msgobj_td_713" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Uint128_58", %_TyDescrTy_Typ** %"$msgobj_td_714", align 8 - %"$msgobj_v_715" = getelementptr i8, i8* %"$msgobj_694", i32 109 - %"$msgobj_v_716" = bitcast i8* %"$msgobj_v_715" to %Uint128* - store %Uint128 %_amount, %Uint128* %"$msgobj_v_716", align 8 - %"$msgobj_fname_718" = getelementptr i8, i8* %"$msgobj_694", i32 125 - %"$msgobj_fname_719" = bitcast i8* %"$msgobj_fname_718" to %String* - store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_717", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_719", align 8 - %"$msgobj_td_720" = getelementptr i8, i8* %"$msgobj_694", i32 141 - %"$msgobj_td_721" = bitcast i8* %"$msgobj_td_720" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Int32_48", %_TyDescrTy_Typ** %"$msgobj_td_721", align 8 - %"$crowdfunding.already_backed_code_722" = load %Int32, %Int32* @crowdfunding.already_backed_code, align 4 - %"$msgobj_v_723" = getelementptr i8, i8* %"$msgobj_694", i32 149 - %"$msgobj_v_724" = bitcast i8* %"$msgobj_v_723" to %Int32* - store %Int32 %"$crowdfunding.already_backed_code_722", %Int32* %"$msgobj_v_724", align 4 - store i8* %"$msgobj_694", i8** %e, align 8, !dbg !85 - %"$e_726" = load i8*, i8** %e, align 8 - %"$_literal_cost_call_728" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Event_70", i8* %"$e_726") - %"$gasrem_729" = load i64, i64* @_gasrem, align 8 - %"$gascmp_730" = icmp ugt i64 %"$_literal_cost_call_728", %"$gasrem_729" - br i1 %"$gascmp_730", label %"$out_of_gas_731", label %"$have_gas_732" - -"$out_of_gas_731": ; preds = %"$have_gas_692" - call void @_out_of_gas() - br label %"$have_gas_732" - -"$have_gas_732": ; preds = %"$out_of_gas_731", %"$have_gas_692" - %"$consume_733" = sub i64 %"$gasrem_729", %"$_literal_cost_call_728" - store i64 %"$consume_733", i64* @_gasrem, align 8 - %"$execptr_load_734" = load i8*, i8** @_execptr, align 8 - %"$e_735" = load i8*, i8** %e, align 8 - call void @_event(i8* %"$execptr_load_734", %_TyDescrTy_Typ* @"$TyDescr_Event_70", i8* %"$e_735"), !dbg !88 - br label %"$matchsucc_677" - -"$Some_736": ; preds = %"$have_gas_675" - %"$res_737" = bitcast %"TName_Option_Map_(ByStr20)_(Uint128)"* %"$res_678" to %"CName_Some_Map_(ByStr20)_(Uint128)"* - %"$bs1_gep_738" = getelementptr inbounds %"CName_Some_Map_(ByStr20)_(Uint128)", %"CName_Some_Map_(ByStr20)_(Uint128)"* %"$res_737", i32 0, i32 1 - %"$bs1_load_739" = load %Map_ByStr20_Uint128*, %Map_ByStr20_Uint128** %"$bs1_gep_738", align 8 + call void @llvm.dbg.declare(metadata i8** %e, metadata !158, metadata !DIExpression()), !dbg !163 + %"$gasrem_700" = load i64, i64* @_gasrem, align 8 + %"$gascmp_701" = icmp ugt i64 1, %"$gasrem_700" + br i1 %"$gascmp_701", label %"$out_of_gas_702", label %"$have_gas_703" + +"$out_of_gas_702": ; preds = %"$have_gas_698" + call void @_out_of_gas() + br label %"$have_gas_703" + +"$have_gas_703": ; preds = %"$out_of_gas_702", %"$have_gas_698" + %"$consume_704" = sub i64 %"$gasrem_700", 1 + store i64 %"$consume_704", i64* @_gasrem, align 8 + %"$msgobj_705_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$msgobj_705_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_705_salloc_load", i64 153) + %"$msgobj_705_salloc" = bitcast i8* %"$msgobj_705_salloc_salloc" to [153 x i8]* + %"$msgobj_705" = bitcast [153 x i8]* %"$msgobj_705_salloc" to i8* + store i8 4, i8* %"$msgobj_705", align 1 + %"$msgobj_fname_707" = getelementptr i8, i8* %"$msgobj_705", i32 1 + %"$msgobj_fname_708" = bitcast i8* %"$msgobj_fname_707" to %String* + store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_706", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_708", align 8 + %"$msgobj_td_709" = getelementptr i8, i8* %"$msgobj_705", i32 17 + %"$msgobj_td_710" = bitcast i8* %"$msgobj_td_709" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_String_64", %_TyDescrTy_Typ** %"$msgobj_td_710", align 8 + %"$msgobj_v_712" = getelementptr i8, i8* %"$msgobj_705", i32 25 + %"$msgobj_v_713" = bitcast i8* %"$msgobj_v_712" to %String* + store %String { i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$stringlit_711", i32 0, i32 0), i32 15 }, %String* %"$msgobj_v_713", align 8 + %"$msgobj_fname_715" = getelementptr i8, i8* %"$msgobj_705", i32 41 + %"$msgobj_fname_716" = bitcast i8* %"$msgobj_fname_715" to %String* + store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_714", i32 0, i32 0), i32 5 }, %String* %"$msgobj_fname_716", align 8 + %"$msgobj_td_717" = getelementptr i8, i8* %"$msgobj_705", i32 57 + %"$msgobj_td_718" = bitcast i8* %"$msgobj_td_717" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_78", %_TyDescrTy_Typ** %"$msgobj_td_718", align 8 + %"$msgobj_v_719" = getelementptr i8, i8* %"$msgobj_705", i32 65 + %"$msgobj_v_720" = bitcast i8* %"$msgobj_v_719" to [20 x i8]* + store [20 x i8] %_sender, [20 x i8]* %"$msgobj_v_720", align 1 + %"$msgobj_fname_722" = getelementptr i8, i8* %"$msgobj_705", i32 85 + %"$msgobj_fname_723" = bitcast i8* %"$msgobj_fname_722" to %String* + store %String { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$stringlit_721", i32 0, i32 0), i32 6 }, %String* %"$msgobj_fname_723", align 8 + %"$msgobj_td_724" = getelementptr i8, i8* %"$msgobj_705", i32 101 + %"$msgobj_td_725" = bitcast i8* %"$msgobj_td_724" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Uint128_58", %_TyDescrTy_Typ** %"$msgobj_td_725", align 8 + %"$msgobj_v_726" = getelementptr i8, i8* %"$msgobj_705", i32 109 + %"$msgobj_v_727" = bitcast i8* %"$msgobj_v_726" to %Uint128* + store %Uint128 %_amount, %Uint128* %"$msgobj_v_727", align 8 + %"$msgobj_fname_729" = getelementptr i8, i8* %"$msgobj_705", i32 125 + %"$msgobj_fname_730" = bitcast i8* %"$msgobj_fname_729" to %String* + store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_728", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_730", align 8 + %"$msgobj_td_731" = getelementptr i8, i8* %"$msgobj_705", i32 141 + %"$msgobj_td_732" = bitcast i8* %"$msgobj_td_731" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Int32_48", %_TyDescrTy_Typ** %"$msgobj_td_732", align 8 + %"$crowdfunding.already_backed_code_733" = load %Int32, %Int32* @crowdfunding.already_backed_code, align 4 + %"$msgobj_v_734" = getelementptr i8, i8* %"$msgobj_705", i32 149 + %"$msgobj_v_735" = bitcast i8* %"$msgobj_v_734" to %Int32* + store %Int32 %"$crowdfunding.already_backed_code_733", %Int32* %"$msgobj_v_735", align 4 + store i8* %"$msgobj_705", i8** %e, align 8, !dbg !164 + %"$e_737" = load i8*, i8** %e, align 8 + %"$_literal_cost_call_739" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Event_70", i8* %"$e_737") + %"$gasrem_740" = load i64, i64* @_gasrem, align 8 + %"$gascmp_741" = icmp ugt i64 %"$_literal_cost_call_739", %"$gasrem_740" + br i1 %"$gascmp_741", label %"$out_of_gas_742", label %"$have_gas_743" + +"$out_of_gas_742": ; preds = %"$have_gas_703" + call void @_out_of_gas() + br label %"$have_gas_743" + +"$have_gas_743": ; preds = %"$out_of_gas_742", %"$have_gas_703" + %"$consume_744" = sub i64 %"$gasrem_740", %"$_literal_cost_call_739" + store i64 %"$consume_744", i64* @_gasrem, align 8 + %"$execptr_load_745" = load i8*, i8** @_execptr, align 8 + %"$e_746" = load i8*, i8** %e, align 8 + call void @_event(i8* %"$execptr_load_745", %_TyDescrTy_Typ* @"$TyDescr_Event_70", i8* %"$e_746"), !dbg !165 + br label %"$matchsucc_688" + +"$Some_747": ; preds = %"$have_gas_686" + %"$res_748" = bitcast %"TName_Option_Map_(ByStr20)_(Uint128)"* %"$res_689" to %"CName_Some_Map_(ByStr20)_(Uint128)"* + %"$bs1_gep_749" = getelementptr inbounds %"CName_Some_Map_(ByStr20)_(Uint128)", %"CName_Some_Map_(ByStr20)_(Uint128)"* %"$res_748", i32 0, i32 1 + %"$bs1_load_750" = load %Map_ByStr20_Uint128*, %Map_ByStr20_Uint128** %"$bs1_gep_749", align 8 %bs1 = alloca %Map_ByStr20_Uint128*, align 8 - store %Map_ByStr20_Uint128* %"$bs1_load_739", %Map_ByStr20_Uint128** %bs1, align 8 - %"$bs1_740" = load %Map_ByStr20_Uint128*, %Map_ByStr20_Uint128** %bs1, align 8 - %"$$bs1_740_741" = bitcast %Map_ByStr20_Uint128* %"$bs1_740" to i8* - %"$_literal_cost_call_742" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Map_87", i8* %"$$bs1_740_741") - %"$gasrem_743" = load i64, i64* @_gasrem, align 8 - %"$gascmp_744" = icmp ugt i64 %"$_literal_cost_call_742", %"$gasrem_743" - br i1 %"$gascmp_744", label %"$out_of_gas_745", label %"$have_gas_746" - -"$out_of_gas_745": ; preds = %"$Some_736" - call void @_out_of_gas() - br label %"$have_gas_746" - -"$have_gas_746": ; preds = %"$out_of_gas_745", %"$Some_736" - %"$consume_747" = sub i64 %"$gasrem_743", %"$_literal_cost_call_742" - store i64 %"$consume_747", i64* @_gasrem, align 8 - %"$execptr_load_748" = load i8*, i8** @_execptr, align 8 - %"$bs1_750" = load %Map_ByStr20_Uint128*, %Map_ByStr20_Uint128** %bs1, align 8 - %"$update_value_751" = bitcast %Map_ByStr20_Uint128* %"$bs1_750" to i8* - call void @_update_field(i8* %"$execptr_load_748", i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$backers_749", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_87", i32 0, i8* null, i8* %"$update_value_751"), !dbg !89 - %"$gasrem_752" = load i64, i64* @_gasrem, align 8 - %"$gascmp_753" = icmp ugt i64 1, %"$gasrem_752" - br i1 %"$gascmp_753", label %"$out_of_gas_754", label %"$have_gas_755" - -"$out_of_gas_754": ; preds = %"$have_gas_746" - call void @_out_of_gas() - br label %"$have_gas_755" - -"$have_gas_755": ; preds = %"$out_of_gas_754", %"$have_gas_746" - %"$consume_756" = sub i64 %"$gasrem_752", 1 - store i64 %"$consume_756", i64* @_gasrem, align 8 - %"$execptr_load_757" = load i8*, i8** @_execptr, align 8 - call void @_accept(i8* %"$execptr_load_757"), !dbg !91 - %"$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_755" - call void @_out_of_gas() - br label %"$have_gas_761" - -"$have_gas_761": ; preds = %"$out_of_gas_760", %"$have_gas_755" - %"$consume_762" = sub i64 %"$gasrem_758", 1 - store i64 %"$consume_762", i64* @_gasrem, align 8 - %e1 = alloca i8*, align 8 + store %Map_ByStr20_Uint128* %"$bs1_load_750", %Map_ByStr20_Uint128** %bs1, align 8 + %"$bs1_751" = load %Map_ByStr20_Uint128*, %Map_ByStr20_Uint128** %bs1, align 8 + %"$$bs1_751_752" = bitcast %Map_ByStr20_Uint128* %"$bs1_751" to i8* + %"$_literal_cost_call_753" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Map_87", i8* %"$$bs1_751_752") + %"$gasrem_754" = load i64, i64* @_gasrem, align 8 + %"$gascmp_755" = icmp ugt i64 %"$_literal_cost_call_753", %"$gasrem_754" + br i1 %"$gascmp_755", label %"$out_of_gas_756", label %"$have_gas_757" + +"$out_of_gas_756": ; preds = %"$Some_747" + call void @_out_of_gas() + br label %"$have_gas_757" + +"$have_gas_757": ; preds = %"$out_of_gas_756", %"$Some_747" + %"$consume_758" = sub i64 %"$gasrem_754", %"$_literal_cost_call_753" + store i64 %"$consume_758", i64* @_gasrem, align 8 + %"$execptr_load_759" = load i8*, i8** @_execptr, align 8 + %"$bs1_761" = load %Map_ByStr20_Uint128*, %Map_ByStr20_Uint128** %bs1, align 8 + %"$update_value_762" = bitcast %Map_ByStr20_Uint128* %"$bs1_761" to i8* + call void @_update_field(i8* %"$execptr_load_759", i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$backers_760", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_87", i32 0, i8* null, i8* %"$update_value_762"), !dbg !166 %"$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" +"$out_of_gas_765": ; preds = %"$have_gas_757" call void @_out_of_gas() br label %"$have_gas_766" -"$have_gas_766": ; preds = %"$out_of_gas_765", %"$have_gas_761" +"$have_gas_766": ; preds = %"$out_of_gas_765", %"$have_gas_757" %"$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_64", %_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 ([5 x i8], [5 x i8]* @"$stringlit_777", i32 0, i32 0), i32 5 }, %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_78", %_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_58", %_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 %_amount, %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_48", %_TyDescrTy_Typ** %"$msgobj_td_795", align 8 - %"$crowdfunding.accepted_code_796" = load %Int32, %Int32* @crowdfunding.accepted_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.accepted_code_796", %Int32* %"$msgobj_v_798", align 4 - store i8* %"$msgobj_768", i8** %e1, align 8, !dbg !92 - %"$e_800" = load i8*, i8** %e1, align 8 - %"$_literal_cost_call_802" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Event_70", 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** %e1, align 8 - call void @_event(i8* %"$execptr_load_808", %_TyDescrTy_Typ* @"$TyDescr_Event_70", i8* %"$e_809"), !dbg !93 - br label %"$matchsucc_677" - -"$empty_default_681": ; preds = %"$have_gas_675" - br label %"$matchsucc_677" - -"$matchsucc_677": ; preds = %"$have_gas_806", %"$have_gas_732", %"$empty_default_681" - br label %"$matchsucc_624" - -"$False_810": ; preds = %"$have_gas_622" - %"$in_time_811" = bitcast %TName_Bool* %"$in_time_625" to %CName_False* - %"$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 = %"$False_810" - call void @_out_of_gas() - br label %"$have_gas_815" - -"$have_gas_815": ; preds = %"$out_of_gas_814", %"$False_810" - %"$consume_816" = sub i64 %"$gasrem_812", 1 - store i64 %"$consume_816", i64* @_gasrem, align 8 + %"$execptr_load_768" = load i8*, i8** @_execptr, align 8 + call void @_accept(i8* %"$execptr_load_768"), !dbg !168 + %"$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 = %"$have_gas_766" + call void @_out_of_gas() + br label %"$have_gas_772" + +"$have_gas_772": ; preds = %"$out_of_gas_771", %"$have_gas_766" + %"$consume_773" = sub i64 %"$gasrem_769", 1 + store i64 %"$consume_773", i64* @_gasrem, align 8 + %e1 = alloca i8*, align 8 + call void @llvm.dbg.declare(metadata i8** %e1, metadata !169, metadata !DIExpression()), !dbg !170 + %"$gasrem_774" = load i64, i64* @_gasrem, align 8 + %"$gascmp_775" = icmp ugt i64 1, %"$gasrem_774" + br i1 %"$gascmp_775", label %"$out_of_gas_776", label %"$have_gas_777" + +"$out_of_gas_776": ; preds = %"$have_gas_772" + call void @_out_of_gas() + br label %"$have_gas_777" + +"$have_gas_777": ; preds = %"$out_of_gas_776", %"$have_gas_772" + %"$consume_778" = sub i64 %"$gasrem_774", 1 + store i64 %"$consume_778", i64* @_gasrem, align 8 + %"$msgobj_779_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$msgobj_779_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_779_salloc_load", i64 153) + %"$msgobj_779_salloc" = bitcast i8* %"$msgobj_779_salloc_salloc" to [153 x i8]* + %"$msgobj_779" = bitcast [153 x i8]* %"$msgobj_779_salloc" to i8* + store i8 4, i8* %"$msgobj_779", align 1 + %"$msgobj_fname_781" = getelementptr i8, i8* %"$msgobj_779", i32 1 + %"$msgobj_fname_782" = bitcast i8* %"$msgobj_fname_781" to %String* + store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_780", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_782", align 8 + %"$msgobj_td_783" = getelementptr i8, i8* %"$msgobj_779", i32 17 + %"$msgobj_td_784" = bitcast i8* %"$msgobj_td_783" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_String_64", %_TyDescrTy_Typ** %"$msgobj_td_784", align 8 + %"$msgobj_v_786" = getelementptr i8, i8* %"$msgobj_779", i32 25 + %"$msgobj_v_787" = bitcast i8* %"$msgobj_v_786" to %String* + store %String { i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$stringlit_785", i32 0, i32 0), i32 15 }, %String* %"$msgobj_v_787", align 8 + %"$msgobj_fname_789" = getelementptr i8, i8* %"$msgobj_779", i32 41 + %"$msgobj_fname_790" = bitcast i8* %"$msgobj_fname_789" to %String* + store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_788", i32 0, i32 0), i32 5 }, %String* %"$msgobj_fname_790", align 8 + %"$msgobj_td_791" = getelementptr i8, i8* %"$msgobj_779", i32 57 + %"$msgobj_td_792" = bitcast i8* %"$msgobj_td_791" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_78", %_TyDescrTy_Typ** %"$msgobj_td_792", align 8 + %"$msgobj_v_793" = getelementptr i8, i8* %"$msgobj_779", i32 65 + %"$msgobj_v_794" = bitcast i8* %"$msgobj_v_793" to [20 x i8]* + store [20 x i8] %_sender, [20 x i8]* %"$msgobj_v_794", align 1 + %"$msgobj_fname_796" = getelementptr i8, i8* %"$msgobj_779", i32 85 + %"$msgobj_fname_797" = bitcast i8* %"$msgobj_fname_796" to %String* + store %String { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$stringlit_795", i32 0, i32 0), i32 6 }, %String* %"$msgobj_fname_797", align 8 + %"$msgobj_td_798" = getelementptr i8, i8* %"$msgobj_779", i32 101 + %"$msgobj_td_799" = bitcast i8* %"$msgobj_td_798" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Uint128_58", %_TyDescrTy_Typ** %"$msgobj_td_799", align 8 + %"$msgobj_v_800" = getelementptr i8, i8* %"$msgobj_779", i32 109 + %"$msgobj_v_801" = bitcast i8* %"$msgobj_v_800" to %Uint128* + store %Uint128 %_amount, %Uint128* %"$msgobj_v_801", align 8 + %"$msgobj_fname_803" = getelementptr i8, i8* %"$msgobj_779", i32 125 + %"$msgobj_fname_804" = bitcast i8* %"$msgobj_fname_803" to %String* + store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_802", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_804", align 8 + %"$msgobj_td_805" = getelementptr i8, i8* %"$msgobj_779", i32 141 + %"$msgobj_td_806" = bitcast i8* %"$msgobj_td_805" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Int32_48", %_TyDescrTy_Typ** %"$msgobj_td_806", align 8 + %"$crowdfunding.accepted_code_807" = load %Int32, %Int32* @crowdfunding.accepted_code, align 4 + %"$msgobj_v_808" = getelementptr i8, i8* %"$msgobj_779", i32 149 + %"$msgobj_v_809" = bitcast i8* %"$msgobj_v_808" to %Int32* + store %Int32 %"$crowdfunding.accepted_code_807", %Int32* %"$msgobj_v_809", align 4 + store i8* %"$msgobj_779", i8** %e1, align 8, !dbg !171 + %"$e_811" = load i8*, i8** %e1, align 8 + %"$_literal_cost_call_813" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Event_70", i8* %"$e_811") + %"$gasrem_814" = load i64, i64* @_gasrem, align 8 + %"$gascmp_815" = icmp ugt i64 %"$_literal_cost_call_813", %"$gasrem_814" + br i1 %"$gascmp_815", label %"$out_of_gas_816", label %"$have_gas_817" + +"$out_of_gas_816": ; preds = %"$have_gas_777" + call void @_out_of_gas() + br label %"$have_gas_817" + +"$have_gas_817": ; preds = %"$out_of_gas_816", %"$have_gas_777" + %"$consume_818" = sub i64 %"$gasrem_814", %"$_literal_cost_call_813" + store i64 %"$consume_818", i64* @_gasrem, align 8 + %"$execptr_load_819" = load i8*, i8** @_execptr, align 8 + %"$e_820" = load i8*, i8** %e1, align 8 + call void @_event(i8* %"$execptr_load_819", %_TyDescrTy_Typ* @"$TyDescr_Event_70", i8* %"$e_820"), !dbg !172 + br label %"$matchsucc_688" + +"$empty_default_692": ; preds = %"$have_gas_686" + br label %"$matchsucc_688" + +"$matchsucc_688": ; preds = %"$have_gas_817", %"$have_gas_743", %"$empty_default_692" + br label %"$matchsucc_635" + +"$False_821": ; preds = %"$have_gas_633" + %"$in_time_822" = bitcast %TName_Bool* %"$in_time_636" to %CName_False* + %"$gasrem_823" = load i64, i64* @_gasrem, align 8 + %"$gascmp_824" = icmp ugt i64 1, %"$gasrem_823" + br i1 %"$gascmp_824", label %"$out_of_gas_825", label %"$have_gas_826" + +"$out_of_gas_825": ; preds = %"$False_821" + call void @_out_of_gas() + br label %"$have_gas_826" + +"$have_gas_826": ; preds = %"$out_of_gas_825", %"$False_821" + %"$consume_827" = sub i64 %"$gasrem_823", 1 + store i64 %"$consume_827", i64* @_gasrem, align 8 %e2 = alloca i8*, align 8 - %"$gasrem_817" = load i64, i64* @_gasrem, align 8 - %"$gascmp_818" = icmp ugt i64 1, %"$gasrem_817" - br i1 %"$gascmp_818", label %"$out_of_gas_819", label %"$have_gas_820" - -"$out_of_gas_819": ; preds = %"$have_gas_815" - call void @_out_of_gas() - br label %"$have_gas_820" - -"$have_gas_820": ; preds = %"$out_of_gas_819", %"$have_gas_815" - %"$consume_821" = sub i64 %"$gasrem_817", 1 - store i64 %"$consume_821", i64* @_gasrem, align 8 - %"$msgobj_822_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$msgobj_822_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_822_salloc_load", i64 153) - %"$msgobj_822_salloc" = bitcast i8* %"$msgobj_822_salloc_salloc" to [153 x i8]* - %"$msgobj_822" = bitcast [153 x i8]* %"$msgobj_822_salloc" to i8* - store i8 4, i8* %"$msgobj_822", align 1 - %"$msgobj_fname_824" = getelementptr i8, i8* %"$msgobj_822", i32 1 - %"$msgobj_fname_825" = bitcast i8* %"$msgobj_fname_824" to %String* - store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_823", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_825", align 8 - %"$msgobj_td_826" = getelementptr i8, i8* %"$msgobj_822", i32 17 - %"$msgobj_td_827" = bitcast i8* %"$msgobj_td_826" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_String_64", %_TyDescrTy_Typ** %"$msgobj_td_827", align 8 - %"$msgobj_v_829" = getelementptr i8, i8* %"$msgobj_822", i32 25 - %"$msgobj_v_830" = bitcast i8* %"$msgobj_v_829" to %String* - store %String { i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$stringlit_828", i32 0, i32 0), i32 15 }, %String* %"$msgobj_v_830", align 8 - %"$msgobj_fname_832" = getelementptr i8, i8* %"$msgobj_822", i32 41 - %"$msgobj_fname_833" = bitcast i8* %"$msgobj_fname_832" to %String* - store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_831", i32 0, i32 0), i32 5 }, %String* %"$msgobj_fname_833", align 8 - %"$msgobj_td_834" = getelementptr i8, i8* %"$msgobj_822", i32 57 - %"$msgobj_td_835" = bitcast i8* %"$msgobj_td_834" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_78", %_TyDescrTy_Typ** %"$msgobj_td_835", align 8 - %"$msgobj_v_836" = getelementptr i8, i8* %"$msgobj_822", i32 65 - %"$msgobj_v_837" = bitcast i8* %"$msgobj_v_836" to [20 x i8]* - store [20 x i8] %_sender, [20 x i8]* %"$msgobj_v_837", align 1 - %"$msgobj_fname_839" = getelementptr i8, i8* %"$msgobj_822", i32 85 - %"$msgobj_fname_840" = bitcast i8* %"$msgobj_fname_839" to %String* - store %String { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$stringlit_838", i32 0, i32 0), i32 6 }, %String* %"$msgobj_fname_840", align 8 - %"$msgobj_td_841" = getelementptr i8, i8* %"$msgobj_822", i32 101 - %"$msgobj_td_842" = bitcast i8* %"$msgobj_td_841" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Uint128_58", %_TyDescrTy_Typ** %"$msgobj_td_842", align 8 - %"$msgobj_v_843" = getelementptr i8, i8* %"$msgobj_822", i32 109 - %"$msgobj_v_844" = bitcast i8* %"$msgobj_v_843" to %Uint128* - store %Uint128 %_amount, %Uint128* %"$msgobj_v_844", align 8 - %"$msgobj_fname_846" = getelementptr i8, i8* %"$msgobj_822", i32 125 - %"$msgobj_fname_847" = bitcast i8* %"$msgobj_fname_846" to %String* - store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_845", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_847", align 8 - %"$msgobj_td_848" = getelementptr i8, i8* %"$msgobj_822", i32 141 - %"$msgobj_td_849" = bitcast i8* %"$msgobj_td_848" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Int32_48", %_TyDescrTy_Typ** %"$msgobj_td_849", align 8 - %"$crowdfunding.missed_deadline_code_850" = load %Int32, %Int32* @crowdfunding.missed_deadline_code, align 4 - %"$msgobj_v_851" = getelementptr i8, i8* %"$msgobj_822", i32 149 - %"$msgobj_v_852" = bitcast i8* %"$msgobj_v_851" to %Int32* - store %Int32 %"$crowdfunding.missed_deadline_code_850", %Int32* %"$msgobj_v_852", align 4 - store i8* %"$msgobj_822", i8** %e2, align 8, !dbg !94 - %"$e_854" = load i8*, i8** %e2, align 8 - %"$_literal_cost_call_856" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Event_70", i8* %"$e_854") - %"$gasrem_857" = load i64, i64* @_gasrem, align 8 - %"$gascmp_858" = icmp ugt i64 %"$_literal_cost_call_856", %"$gasrem_857" - br i1 %"$gascmp_858", label %"$out_of_gas_859", label %"$have_gas_860" - -"$out_of_gas_859": ; preds = %"$have_gas_820" - call void @_out_of_gas() - br label %"$have_gas_860" - -"$have_gas_860": ; preds = %"$out_of_gas_859", %"$have_gas_820" - %"$consume_861" = sub i64 %"$gasrem_857", %"$_literal_cost_call_856" - store i64 %"$consume_861", i64* @_gasrem, align 8 - %"$execptr_load_862" = load i8*, i8** @_execptr, align 8 - %"$e_863" = load i8*, i8** %e2, align 8 - call void @_event(i8* %"$execptr_load_862", %_TyDescrTy_Typ* @"$TyDescr_Event_70", i8* %"$e_863"), !dbg !96 - br label %"$matchsucc_624" - -"$empty_default_628": ; preds = %"$have_gas_622" - br label %"$matchsucc_624" - -"$matchsucc_624": ; preds = %"$have_gas_860", %"$matchsucc_677", %"$empty_default_628" + call void @llvm.dbg.declare(metadata i8** %e2, metadata !173, metadata !DIExpression()), !dbg !175 + %"$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_826" + call void @_out_of_gas() + br label %"$have_gas_831" + +"$have_gas_831": ; preds = %"$out_of_gas_830", %"$have_gas_826" + %"$consume_832" = sub i64 %"$gasrem_828", 1 + store i64 %"$consume_832", i64* @_gasrem, align 8 + %"$msgobj_833_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$msgobj_833_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_833_salloc_load", i64 153) + %"$msgobj_833_salloc" = bitcast i8* %"$msgobj_833_salloc_salloc" to [153 x i8]* + %"$msgobj_833" = bitcast [153 x i8]* %"$msgobj_833_salloc" to i8* + store i8 4, i8* %"$msgobj_833", align 1 + %"$msgobj_fname_835" = getelementptr i8, i8* %"$msgobj_833", i32 1 + %"$msgobj_fname_836" = bitcast i8* %"$msgobj_fname_835" to %String* + store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_834", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_836", align 8 + %"$msgobj_td_837" = getelementptr i8, i8* %"$msgobj_833", i32 17 + %"$msgobj_td_838" = bitcast i8* %"$msgobj_td_837" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_String_64", %_TyDescrTy_Typ** %"$msgobj_td_838", align 8 + %"$msgobj_v_840" = getelementptr i8, i8* %"$msgobj_833", i32 25 + %"$msgobj_v_841" = bitcast i8* %"$msgobj_v_840" to %String* + store %String { i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$stringlit_839", i32 0, i32 0), i32 15 }, %String* %"$msgobj_v_841", align 8 + %"$msgobj_fname_843" = getelementptr i8, i8* %"$msgobj_833", i32 41 + %"$msgobj_fname_844" = bitcast i8* %"$msgobj_fname_843" to %String* + store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_842", i32 0, i32 0), i32 5 }, %String* %"$msgobj_fname_844", align 8 + %"$msgobj_td_845" = getelementptr i8, i8* %"$msgobj_833", i32 57 + %"$msgobj_td_846" = bitcast i8* %"$msgobj_td_845" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_78", %_TyDescrTy_Typ** %"$msgobj_td_846", align 8 + %"$msgobj_v_847" = getelementptr i8, i8* %"$msgobj_833", i32 65 + %"$msgobj_v_848" = bitcast i8* %"$msgobj_v_847" to [20 x i8]* + store [20 x i8] %_sender, [20 x i8]* %"$msgobj_v_848", align 1 + %"$msgobj_fname_850" = getelementptr i8, i8* %"$msgobj_833", i32 85 + %"$msgobj_fname_851" = bitcast i8* %"$msgobj_fname_850" to %String* + store %String { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$stringlit_849", i32 0, i32 0), i32 6 }, %String* %"$msgobj_fname_851", align 8 + %"$msgobj_td_852" = getelementptr i8, i8* %"$msgobj_833", i32 101 + %"$msgobj_td_853" = bitcast i8* %"$msgobj_td_852" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Uint128_58", %_TyDescrTy_Typ** %"$msgobj_td_853", align 8 + %"$msgobj_v_854" = getelementptr i8, i8* %"$msgobj_833", i32 109 + %"$msgobj_v_855" = bitcast i8* %"$msgobj_v_854" to %Uint128* + store %Uint128 %_amount, %Uint128* %"$msgobj_v_855", align 8 + %"$msgobj_fname_857" = getelementptr i8, i8* %"$msgobj_833", i32 125 + %"$msgobj_fname_858" = bitcast i8* %"$msgobj_fname_857" to %String* + store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_856", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_858", align 8 + %"$msgobj_td_859" = getelementptr i8, i8* %"$msgobj_833", i32 141 + %"$msgobj_td_860" = bitcast i8* %"$msgobj_td_859" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Int32_48", %_TyDescrTy_Typ** %"$msgobj_td_860", align 8 + %"$crowdfunding.missed_deadline_code_861" = load %Int32, %Int32* @crowdfunding.missed_deadline_code, align 4 + %"$msgobj_v_862" = getelementptr i8, i8* %"$msgobj_833", i32 149 + %"$msgobj_v_863" = bitcast i8* %"$msgobj_v_862" to %Int32* + store %Int32 %"$crowdfunding.missed_deadline_code_861", %Int32* %"$msgobj_v_863", align 4 + store i8* %"$msgobj_833", i8** %e2, align 8, !dbg !176 + %"$e_865" = load i8*, i8** %e2, align 8 + %"$_literal_cost_call_867" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Event_70", i8* %"$e_865") + %"$gasrem_868" = load i64, i64* @_gasrem, align 8 + %"$gascmp_869" = icmp ugt i64 %"$_literal_cost_call_867", %"$gasrem_868" + br i1 %"$gascmp_869", label %"$out_of_gas_870", label %"$have_gas_871" + +"$out_of_gas_870": ; preds = %"$have_gas_831" + call void @_out_of_gas() + br label %"$have_gas_871" + +"$have_gas_871": ; preds = %"$out_of_gas_870", %"$have_gas_831" + %"$consume_872" = sub i64 %"$gasrem_868", %"$_literal_cost_call_867" + store i64 %"$consume_872", i64* @_gasrem, align 8 + %"$execptr_load_873" = load i8*, i8** @_execptr, align 8 + %"$e_874" = load i8*, i8** %e2, align 8 + call void @_event(i8* %"$execptr_load_873", %_TyDescrTy_Typ* @"$TyDescr_Event_70", i8* %"$e_874"), !dbg !177 + br label %"$matchsucc_635" + +"$empty_default_639": ; preds = %"$have_gas_633" + br label %"$matchsucc_635" + +"$matchsucc_635": ; preds = %"$have_gas_871", %"$matchsucc_688", %"$empty_default_639" ret void } @@ -1703,729 +1771,757 @@ declare void @_event(i8*, %_TyDescrTy_Typ*, i8*) declare void @_accept(i8*) -define void @Donate(i8* %0) !dbg !97 { +define void @Donate(i8* %0) !dbg !178 { entry: - %"$_amount_865" = getelementptr i8, i8* %0, i32 0 - %"$_amount_866" = bitcast i8* %"$_amount_865" to %Uint128* - %_amount = load %Uint128, %Uint128* %"$_amount_866", align 8 - %"$_origin_867" = getelementptr i8, i8* %0, i32 16 - %"$_origin_868" = bitcast i8* %"$_origin_867" to [20 x i8]* - %"$_sender_869" = getelementptr i8, i8* %0, i32 36 - %"$_sender_870" = bitcast i8* %"$_sender_869" to [20 x i8]* - call void @"$Donate_585"(%Uint128 %_amount, [20 x i8]* %"$_origin_868", [20 x i8]* %"$_sender_870"), !dbg !98 + %"$_amount_879" = getelementptr i8, i8* %0, i32 0 + %"$_amount_880" = bitcast i8* %"$_amount_879" to %Uint128* + %_amount = load %Uint128, %Uint128* %"$_amount_880", align 8 + %"$_origin_881" = getelementptr i8, i8* %0, i32 16 + %"$_origin_882" = bitcast i8* %"$_origin_881" to [20 x i8]* + %"$_sender_883" = getelementptr i8, i8* %0, i32 36 + %"$_sender_884" = bitcast i8* %"$_sender_883" to [20 x i8]* + call void @"$Donate_596"(%Uint128 %_amount, [20 x i8]* %"$_origin_882", [20 x i8]* %"$_sender_884"), !dbg !179 ret void } -define internal void @"$GetFunds_871"(%Uint128 %_amount, [20 x i8]* %"$_origin_872", [20 x i8]* %"$_sender_873") !dbg !99 { +define internal void @"$GetFunds_885"(%Uint128 %_amount, [20 x i8]* %"$_origin_886", [20 x i8]* %"$_sender_887") !dbg !180 { entry: - %_origin = load [20 x i8], [20 x i8]* %"$_origin_872", align 1 - %_sender = load [20 x i8], [20 x i8]* %"$_sender_873", align 1 - %"$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 = %entry - call void @_out_of_gas() - br label %"$have_gas_877" - -"$have_gas_877": ; preds = %"$out_of_gas_876", %entry - %"$consume_878" = sub i64 %"$gasrem_874", 1 - store i64 %"$consume_878", i64* @_gasrem, align 8 + %"$_sender_1296" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_sender_887", [20 x i8]** %"$_sender_1296", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_sender_1296", metadata !181, metadata !DIExpression()), !dbg !182 + %"$_origin_1295" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_origin_886", [20 x i8]** %"$_origin_1295", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_origin_1295", metadata !183, metadata !DIExpression()), !dbg !182 + %"$_amount_1294" = alloca %Uint128, align 8 + store %Uint128 %_amount, %Uint128* %"$_amount_1294", align 8 + call void @llvm.dbg.declare(metadata %Uint128* %"$_amount_1294", metadata !184, metadata !DIExpression()), !dbg !182 + %_origin = load [20 x i8], [20 x i8]* %"$_origin_886", align 1 + %_sender = load [20 x i8], [20 x i8]* %"$_sender_887", align 1 + %"$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 = %entry + call void @_out_of_gas() + br label %"$have_gas_891" + +"$have_gas_891": ; preds = %"$out_of_gas_890", %entry + %"$consume_892" = sub i64 %"$gasrem_888", 1 + store i64 %"$consume_892", i64* @_gasrem, align 8 %is_owner = alloca %TName_Bool*, align 8 - %"$gasrem_879" = load i64, i64* @_gasrem, align 8 - %"$gascmp_880" = icmp ugt i64 20, %"$gasrem_879" - br i1 %"$gascmp_880", label %"$out_of_gas_881", label %"$have_gas_882" - -"$out_of_gas_881": ; preds = %"$have_gas_877" - call void @_out_of_gas() - br label %"$have_gas_882" - -"$have_gas_882": ; preds = %"$out_of_gas_881", %"$have_gas_877" - %"$consume_883" = sub i64 %"$gasrem_879", 20 - store i64 %"$consume_883", i64* @_gasrem, align 8 - %"$execptr_load_884" = load i8*, i8** @_execptr, align 8 - %"$eq_owner_885" = alloca [20 x i8], align 1 - %"$owner_886" = load [20 x i8], [20 x i8]* @_cparam_owner, align 1 - store [20 x i8] %"$owner_886", [20 x i8]* %"$eq_owner_885", align 1 - %"$$eq_owner_885_887" = bitcast [20 x i8]* %"$eq_owner_885" to i8* - %"$eq__sender_888" = alloca [20 x i8], align 1 - store [20 x i8] %_sender, [20 x i8]* %"$eq__sender_888", align 1 - %"$$eq__sender_888_889" = bitcast [20 x i8]* %"$eq__sender_888" to i8* - %"$eq_call_890" = call %TName_Bool* @_eq_ByStrX(i8* %"$execptr_load_884", i32 20, i8* %"$$eq_owner_885_887", i8* %"$$eq__sender_888_889"), !dbg !100 - store %TName_Bool* %"$eq_call_890", %TName_Bool** %is_owner, align 8, !dbg !100 - %"$gasrem_892" = load i64, i64* @_gasrem, align 8 - %"$gascmp_893" = icmp ugt i64 2, %"$gasrem_892" - br i1 %"$gascmp_893", label %"$out_of_gas_894", label %"$have_gas_895" - -"$out_of_gas_894": ; preds = %"$have_gas_882" - call void @_out_of_gas() - br label %"$have_gas_895" - -"$have_gas_895": ; preds = %"$out_of_gas_894", %"$have_gas_882" - %"$consume_896" = sub i64 %"$gasrem_892", 2 - store i64 %"$consume_896", i64* @_gasrem, align 8 - %"$is_owner_898" = load %TName_Bool*, %TName_Bool** %is_owner, align 8 - %"$is_owner_tag_899" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$is_owner_898", i32 0, i32 0 - %"$is_owner_tag_900" = load i8, i8* %"$is_owner_tag_899", align 1 - switch i8 %"$is_owner_tag_900", label %"$empty_default_901" [ - i8 1, label %"$False_902" - i8 0, label %"$True_956" - ], !dbg !101 - -"$False_902": ; preds = %"$have_gas_895" - %"$is_owner_903" = bitcast %TName_Bool* %"$is_owner_898" to %CName_False* - %"$gasrem_904" = load i64, i64* @_gasrem, align 8 - %"$gascmp_905" = icmp ugt i64 1, %"$gasrem_904" - br i1 %"$gascmp_905", label %"$out_of_gas_906", label %"$have_gas_907" - -"$out_of_gas_906": ; preds = %"$False_902" - call void @_out_of_gas() - br label %"$have_gas_907" - -"$have_gas_907": ; preds = %"$out_of_gas_906", %"$False_902" - %"$consume_908" = sub i64 %"$gasrem_904", 1 - store i64 %"$consume_908", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %is_owner, metadata !185, metadata !DIExpression()), !dbg !186 + %"$gasrem_893" = load i64, i64* @_gasrem, align 8 + %"$gascmp_894" = icmp ugt i64 20, %"$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", 20 + store i64 %"$consume_897", i64* @_gasrem, align 8 + %"$execptr_load_898" = load i8*, i8** @_execptr, align 8 + %"$eq_owner_899" = alloca [20 x i8], align 1 + %"$owner_900" = load [20 x i8], [20 x i8]* @_cparam_owner, align 1 + store [20 x i8] %"$owner_900", [20 x i8]* %"$eq_owner_899", align 1 + %"$$eq_owner_899_901" = bitcast [20 x i8]* %"$eq_owner_899" to i8* + %"$eq__sender_902" = alloca [20 x i8], align 1 + store [20 x i8] %_sender, [20 x i8]* %"$eq__sender_902", align 1 + %"$$eq__sender_902_903" = bitcast [20 x i8]* %"$eq__sender_902" to i8* + %"$eq_call_904" = call %TName_Bool* @_eq_ByStrX(i8* %"$execptr_load_898", i32 20, i8* %"$$eq_owner_899_901", i8* %"$$eq__sender_902_903"), !dbg !187 + store %TName_Bool* %"$eq_call_904", %TName_Bool** %is_owner, align 8, !dbg !187 + %"$gasrem_906" = load i64, i64* @_gasrem, align 8 + %"$gascmp_907" = icmp ugt i64 2, %"$gasrem_906" + br i1 %"$gascmp_907", label %"$out_of_gas_908", label %"$have_gas_909" + +"$out_of_gas_908": ; preds = %"$have_gas_896" + call void @_out_of_gas() + br label %"$have_gas_909" + +"$have_gas_909": ; preds = %"$out_of_gas_908", %"$have_gas_896" + %"$consume_910" = sub i64 %"$gasrem_906", 2 + store i64 %"$consume_910", i64* @_gasrem, align 8 + %"$is_owner_912" = load %TName_Bool*, %TName_Bool** %is_owner, align 8 + %"$is_owner_tag_913" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$is_owner_912", i32 0, i32 0 + %"$is_owner_tag_914" = load i8, i8* %"$is_owner_tag_913", align 1 + switch i8 %"$is_owner_tag_914", label %"$empty_default_915" [ + i8 1, label %"$False_916" + i8 0, label %"$True_970" + ], !dbg !188 + +"$False_916": ; preds = %"$have_gas_909" + %"$is_owner_917" = bitcast %TName_Bool* %"$is_owner_912" to %CName_False* + %"$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 = %"$False_916" + call void @_out_of_gas() + br label %"$have_gas_921" + +"$have_gas_921": ; preds = %"$out_of_gas_920", %"$False_916" + %"$consume_922" = sub i64 %"$gasrem_918", 1 + store i64 %"$consume_922", i64* @_gasrem, align 8 %e = alloca i8*, align 8 - %"$gasrem_909" = load i64, i64* @_gasrem, align 8 - %"$gascmp_910" = icmp ugt i64 1, %"$gasrem_909" - br i1 %"$gascmp_910", label %"$out_of_gas_911", label %"$have_gas_912" - -"$out_of_gas_911": ; preds = %"$have_gas_907" - call void @_out_of_gas() - br label %"$have_gas_912" - -"$have_gas_912": ; preds = %"$out_of_gas_911", %"$have_gas_907" - %"$consume_913" = sub i64 %"$gasrem_909", 1 - store i64 %"$consume_913", i64* @_gasrem, align 8 - %"$msgobj_914_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$msgobj_914_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_914_salloc_load", i64 153) - %"$msgobj_914_salloc" = bitcast i8* %"$msgobj_914_salloc_salloc" to [153 x i8]* - %"$msgobj_914" = bitcast [153 x i8]* %"$msgobj_914_salloc" to i8* - store i8 4, i8* %"$msgobj_914", align 1 - %"$msgobj_fname_916" = getelementptr i8, i8* %"$msgobj_914", i32 1 - %"$msgobj_fname_917" = bitcast i8* %"$msgobj_fname_916" to %String* - store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_915", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_917", align 8 - %"$msgobj_td_918" = getelementptr i8, i8* %"$msgobj_914", i32 17 - %"$msgobj_td_919" = bitcast i8* %"$msgobj_td_918" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_String_64", %_TyDescrTy_Typ** %"$msgobj_td_919", align 8 - %"$msgobj_v_921" = getelementptr i8, i8* %"$msgobj_914", i32 25 - %"$msgobj_v_922" = bitcast i8* %"$msgobj_v_921" to %String* - store %String { i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$stringlit_920", i32 0, i32 0), i32 15 }, %String* %"$msgobj_v_922", align 8 - %"$msgobj_fname_924" = getelementptr i8, i8* %"$msgobj_914", i32 41 - %"$msgobj_fname_925" = bitcast i8* %"$msgobj_fname_924" to %String* - store %String { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$stringlit_923", i32 0, i32 0), i32 6 }, %String* %"$msgobj_fname_925", align 8 - %"$msgobj_td_926" = getelementptr i8, i8* %"$msgobj_914", i32 57 - %"$msgobj_td_927" = bitcast i8* %"$msgobj_td_926" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_78", %_TyDescrTy_Typ** %"$msgobj_td_927", align 8 - %"$msgobj_v_928" = getelementptr i8, i8* %"$msgobj_914", i32 65 - %"$msgobj_v_929" = bitcast i8* %"$msgobj_v_928" to [20 x i8]* - store [20 x i8] %_sender, [20 x i8]* %"$msgobj_v_929", align 1 - %"$msgobj_fname_931" = getelementptr i8, i8* %"$msgobj_914", i32 85 - %"$msgobj_fname_932" = bitcast i8* %"$msgobj_fname_931" to %String* - store %String { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$stringlit_930", i32 0, i32 0), i32 6 }, %String* %"$msgobj_fname_932", align 8 - %"$msgobj_td_933" = getelementptr i8, i8* %"$msgobj_914", i32 101 - %"$msgobj_td_934" = bitcast i8* %"$msgobj_td_933" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Uint128_58", %_TyDescrTy_Typ** %"$msgobj_td_934", align 8 - %"$msgobj_v_935" = getelementptr i8, i8* %"$msgobj_914", i32 109 - %"$msgobj_v_936" = bitcast i8* %"$msgobj_v_935" to %Uint128* - store %Uint128 zeroinitializer, %Uint128* %"$msgobj_v_936", align 8 - %"$msgobj_fname_938" = getelementptr i8, i8* %"$msgobj_914", i32 125 + call void @llvm.dbg.declare(metadata i8** %e, metadata !189, metadata !DIExpression()), !dbg !192 + %"$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 + %"$msgobj_928_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$msgobj_928_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_928_salloc_load", i64 153) + %"$msgobj_928_salloc" = bitcast i8* %"$msgobj_928_salloc_salloc" to [153 x i8]* + %"$msgobj_928" = bitcast [153 x i8]* %"$msgobj_928_salloc" to i8* + store i8 4, i8* %"$msgobj_928", align 1 + %"$msgobj_fname_930" = getelementptr i8, i8* %"$msgobj_928", i32 1 + %"$msgobj_fname_931" = bitcast i8* %"$msgobj_fname_930" to %String* + store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_929", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_931", align 8 + %"$msgobj_td_932" = getelementptr i8, i8* %"$msgobj_928", i32 17 + %"$msgobj_td_933" = bitcast i8* %"$msgobj_td_932" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_String_64", %_TyDescrTy_Typ** %"$msgobj_td_933", align 8 + %"$msgobj_v_935" = getelementptr i8, i8* %"$msgobj_928", i32 25 + %"$msgobj_v_936" = bitcast i8* %"$msgobj_v_935" to %String* + store %String { i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$stringlit_934", i32 0, i32 0), i32 15 }, %String* %"$msgobj_v_936", align 8 + %"$msgobj_fname_938" = getelementptr i8, i8* %"$msgobj_928", i32 41 %"$msgobj_fname_939" = bitcast i8* %"$msgobj_fname_938" to %String* - store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_937", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_939", align 8 - %"$msgobj_td_940" = getelementptr i8, i8* %"$msgobj_914", i32 141 + store %String { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$stringlit_937", i32 0, i32 0), i32 6 }, %String* %"$msgobj_fname_939", align 8 + %"$msgobj_td_940" = getelementptr i8, i8* %"$msgobj_928", i32 57 %"$msgobj_td_941" = bitcast i8* %"$msgobj_td_940" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Int32_48", %_TyDescrTy_Typ** %"$msgobj_td_941", align 8 - %"$crowdfunding.not_owner_code_942" = load %Int32, %Int32* @crowdfunding.not_owner_code, align 4 - %"$msgobj_v_943" = getelementptr i8, i8* %"$msgobj_914", i32 149 - %"$msgobj_v_944" = bitcast i8* %"$msgobj_v_943" to %Int32* - store %Int32 %"$crowdfunding.not_owner_code_942", %Int32* %"$msgobj_v_944", align 4 - store i8* %"$msgobj_914", i8** %e, align 8, !dbg !102 - %"$e_946" = load i8*, i8** %e, align 8 - %"$_literal_cost_call_948" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Event_70", i8* %"$e_946") - %"$gasrem_949" = load i64, i64* @_gasrem, align 8 - %"$gascmp_950" = icmp ugt i64 %"$_literal_cost_call_948", %"$gasrem_949" - br i1 %"$gascmp_950", label %"$out_of_gas_951", label %"$have_gas_952" - -"$out_of_gas_951": ; preds = %"$have_gas_912" - call void @_out_of_gas() - br label %"$have_gas_952" - -"$have_gas_952": ; preds = %"$out_of_gas_951", %"$have_gas_912" - %"$consume_953" = sub i64 %"$gasrem_949", %"$_literal_cost_call_948" - store i64 %"$consume_953", i64* @_gasrem, align 8 - %"$execptr_load_954" = load i8*, i8** @_execptr, align 8 - %"$e_955" = load i8*, i8** %e, align 8 - call void @_event(i8* %"$execptr_load_954", %_TyDescrTy_Typ* @"$TyDescr_Event_70", i8* %"$e_955"), !dbg !105 - br label %"$matchsucc_897" - -"$True_956": ; preds = %"$have_gas_895" - %"$is_owner_957" = bitcast %TName_Bool* %"$is_owner_898" to %CName_True* - %"$gasrem_958" = load i64, i64* @_gasrem, align 8 - %"$gascmp_959" = icmp ugt i64 1, %"$gasrem_958" - br i1 %"$gascmp_959", label %"$out_of_gas_960", label %"$have_gas_961" - -"$out_of_gas_960": ; preds = %"$True_956" - call void @_out_of_gas() - br label %"$have_gas_961" - -"$have_gas_961": ; preds = %"$out_of_gas_960", %"$True_956" - %"$consume_962" = sub i64 %"$gasrem_958", 1 - store i64 %"$consume_962", i64* @_gasrem, align 8 + store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_78", %_TyDescrTy_Typ** %"$msgobj_td_941", align 8 + %"$msgobj_v_942" = getelementptr i8, i8* %"$msgobj_928", i32 65 + %"$msgobj_v_943" = bitcast i8* %"$msgobj_v_942" to [20 x i8]* + store [20 x i8] %_sender, [20 x i8]* %"$msgobj_v_943", align 1 + %"$msgobj_fname_945" = getelementptr i8, i8* %"$msgobj_928", i32 85 + %"$msgobj_fname_946" = bitcast i8* %"$msgobj_fname_945" to %String* + store %String { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$stringlit_944", i32 0, i32 0), i32 6 }, %String* %"$msgobj_fname_946", align 8 + %"$msgobj_td_947" = getelementptr i8, i8* %"$msgobj_928", i32 101 + %"$msgobj_td_948" = bitcast i8* %"$msgobj_td_947" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Uint128_58", %_TyDescrTy_Typ** %"$msgobj_td_948", align 8 + %"$msgobj_v_949" = getelementptr i8, i8* %"$msgobj_928", i32 109 + %"$msgobj_v_950" = bitcast i8* %"$msgobj_v_949" to %Uint128* + store %Uint128 zeroinitializer, %Uint128* %"$msgobj_v_950", align 8 + %"$msgobj_fname_952" = getelementptr i8, i8* %"$msgobj_928", i32 125 + %"$msgobj_fname_953" = bitcast i8* %"$msgobj_fname_952" to %String* + store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_951", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_953", align 8 + %"$msgobj_td_954" = getelementptr i8, i8* %"$msgobj_928", i32 141 + %"$msgobj_td_955" = bitcast i8* %"$msgobj_td_954" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Int32_48", %_TyDescrTy_Typ** %"$msgobj_td_955", align 8 + %"$crowdfunding.not_owner_code_956" = load %Int32, %Int32* @crowdfunding.not_owner_code, align 4 + %"$msgobj_v_957" = getelementptr i8, i8* %"$msgobj_928", i32 149 + %"$msgobj_v_958" = bitcast i8* %"$msgobj_v_957" to %Int32* + store %Int32 %"$crowdfunding.not_owner_code_956", %Int32* %"$msgobj_v_958", align 4 + store i8* %"$msgobj_928", i8** %e, align 8, !dbg !193 + %"$e_960" = load i8*, i8** %e, align 8 + %"$_literal_cost_call_962" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Event_70", i8* %"$e_960") + %"$gasrem_963" = load i64, i64* @_gasrem, align 8 + %"$gascmp_964" = icmp ugt i64 %"$_literal_cost_call_962", %"$gasrem_963" + br i1 %"$gascmp_964", label %"$out_of_gas_965", label %"$have_gas_966" + +"$out_of_gas_965": ; preds = %"$have_gas_926" + call void @_out_of_gas() + br label %"$have_gas_966" + +"$have_gas_966": ; preds = %"$out_of_gas_965", %"$have_gas_926" + %"$consume_967" = sub i64 %"$gasrem_963", %"$_literal_cost_call_962" + store i64 %"$consume_967", i64* @_gasrem, align 8 + %"$execptr_load_968" = load i8*, i8** @_execptr, align 8 + %"$e_969" = load i8*, i8** %e, align 8 + call void @_event(i8* %"$execptr_load_968", %_TyDescrTy_Typ* @"$TyDescr_Event_70", i8* %"$e_969"), !dbg !194 + br label %"$matchsucc_911" + +"$True_970": ; preds = %"$have_gas_909" + %"$is_owner_971" = bitcast %TName_Bool* %"$is_owner_912" to %CName_True* + %"$gasrem_972" = load i64, i64* @_gasrem, align 8 + %"$gascmp_973" = icmp ugt i64 1, %"$gasrem_972" + br i1 %"$gascmp_973", label %"$out_of_gas_974", label %"$have_gas_975" + +"$out_of_gas_974": ; preds = %"$True_970" + call void @_out_of_gas() + br label %"$have_gas_975" + +"$have_gas_975": ; preds = %"$out_of_gas_974", %"$True_970" + %"$consume_976" = sub i64 %"$gasrem_972", 1 + store i64 %"$consume_976", i64* @_gasrem, align 8 %blk = alloca i8*, align 8 - %"$execptr_load_965" = load i8*, i8** @_execptr, align 8 - %"$blk_call_966" = call i8* @_read_blockchain(i8* %"$execptr_load_965", %BCQuery { i8* getelementptr inbounds ([11 x i8], [11 x i8]* @"$fetchbc_query_name_963", i32 0, i32 0), i32 11 }, %String { i8* getelementptr inbounds ([0 x i8], [0 x i8]* @"$fetchbc_query_arg_964", i32 0, i32 0), i32 0 }), !dbg !106 - store i8* %"$blk_call_966", i8** %blk, 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" + call void @llvm.dbg.declare(metadata i8** %blk, metadata !195, metadata !DIExpression()), !dbg !197 + %"$execptr_load_979" = load i8*, i8** @_execptr, align 8 + %"$blk_call_980" = call i8* @_read_blockchain(i8* %"$execptr_load_979", %BCQuery { i8* getelementptr inbounds ([11 x i8], [11 x i8]* @"$fetchbc_query_name_977", i32 0, i32 0), i32 11 }, %String { i8* getelementptr inbounds ([0 x i8], [0 x i8]* @"$fetchbc_query_arg_978", i32 0, i32 0), i32 0 }), !dbg !197 + store i8* %"$blk_call_980", i8** %blk, align 8 + %"$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_970": ; preds = %"$have_gas_961" +"$out_of_gas_984": ; preds = %"$have_gas_975" call void @_out_of_gas() - br label %"$have_gas_971" + br label %"$have_gas_985" -"$have_gas_971": ; preds = %"$out_of_gas_970", %"$have_gas_961" - %"$consume_972" = sub i64 %"$gasrem_968", 1 - store i64 %"$consume_972", i64* @_gasrem, align 8 +"$have_gas_985": ; preds = %"$out_of_gas_984", %"$have_gas_975" + %"$consume_986" = sub i64 %"$gasrem_982", 1 + store i64 %"$consume_986", i64* @_gasrem, align 8 %in_time = alloca %TName_Bool*, 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" + call void @llvm.dbg.declare(metadata %TName_Bool** %in_time, metadata !198, metadata !DIExpression()), !dbg !199 + %"$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_975": ; preds = %"$have_gas_971" +"$out_of_gas_989": ; preds = %"$have_gas_985" call void @_out_of_gas() - br label %"$have_gas_976" + br label %"$have_gas_990" -"$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 +"$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 %"$crowdfunding.blk_leq_14" = alloca { %TName_Bool* (i8*, i8*)*, i8* }, align 8 - %"$crowdfunding.blk_leq_978" = 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_979" = extractvalue { { %TName_Bool* (i8*, i8*)*, i8* } (i8*, i8*)*, i8* } %"$crowdfunding.blk_leq_978", 0 - %"$crowdfunding.blk_leq_envptr_980" = extractvalue { { %TName_Bool* (i8*, i8*)*, i8* } (i8*, i8*)*, i8* } %"$crowdfunding.blk_leq_978", 1 - %"$blk_981" = load i8*, i8** %blk, align 8 - %"$crowdfunding.blk_leq_call_982" = call { %TName_Bool* (i8*, i8*)*, i8* } %"$crowdfunding.blk_leq_fptr_979"(i8* %"$crowdfunding.blk_leq_envptr_980", i8* %"$blk_981"), !dbg !108 - store { %TName_Bool* (i8*, i8*)*, i8* } %"$crowdfunding.blk_leq_call_982", { %TName_Bool* (i8*, i8*)*, i8* }* %"$crowdfunding.blk_leq_14", align 8, !dbg !108 + %"$crowdfunding.blk_leq_992" = 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_993" = extractvalue { { %TName_Bool* (i8*, i8*)*, i8* } (i8*, i8*)*, i8* } %"$crowdfunding.blk_leq_992", 0 + %"$crowdfunding.blk_leq_envptr_994" = extractvalue { { %TName_Bool* (i8*, i8*)*, i8* } (i8*, i8*)*, i8* } %"$crowdfunding.blk_leq_992", 1 + %"$blk_995" = load i8*, i8** %blk, align 8 + %"$crowdfunding.blk_leq_call_996" = call { %TName_Bool* (i8*, i8*)*, i8* } %"$crowdfunding.blk_leq_fptr_993"(i8* %"$crowdfunding.blk_leq_envptr_994", i8* %"$blk_995"), !dbg !200 + store { %TName_Bool* (i8*, i8*)*, i8* } %"$crowdfunding.blk_leq_call_996", { %TName_Bool* (i8*, i8*)*, i8* }* %"$crowdfunding.blk_leq_14", align 8, !dbg !200 %"$crowdfunding.blk_leq_15" = alloca %TName_Bool*, align 8 - %"$$crowdfunding.blk_leq_14_983" = load { %TName_Bool* (i8*, i8*)*, i8* }, { %TName_Bool* (i8*, i8*)*, i8* }* %"$crowdfunding.blk_leq_14", align 8 - %"$$crowdfunding.blk_leq_14_fptr_984" = extractvalue { %TName_Bool* (i8*, i8*)*, i8* } %"$$crowdfunding.blk_leq_14_983", 0 - %"$$crowdfunding.blk_leq_14_envptr_985" = extractvalue { %TName_Bool* (i8*, i8*)*, i8* } %"$$crowdfunding.blk_leq_14_983", 1 - %"$max_block_986" = load i8*, i8** @_cparam_max_block, align 8 - %"$$crowdfunding.blk_leq_14_call_987" = call %TName_Bool* %"$$crowdfunding.blk_leq_14_fptr_984"(i8* %"$$crowdfunding.blk_leq_14_envptr_985", i8* %"$max_block_986"), !dbg !108 - store %TName_Bool* %"$$crowdfunding.blk_leq_14_call_987", %TName_Bool** %"$crowdfunding.blk_leq_15", align 8, !dbg !108 - %"$$crowdfunding.blk_leq_15_988" = load %TName_Bool*, %TName_Bool** %"$crowdfunding.blk_leq_15", align 8 - store %TName_Bool* %"$$crowdfunding.blk_leq_15_988", %TName_Bool** %in_time, align 8, !dbg !108 - %"$gasrem_989" = load i64, i64* @_gasrem, align 8 - %"$gascmp_990" = icmp ugt i64 1, %"$gasrem_989" - br i1 %"$gascmp_990", label %"$out_of_gas_991", label %"$have_gas_992" - -"$out_of_gas_991": ; preds = %"$have_gas_976" - call void @_out_of_gas() - br label %"$have_gas_992" - -"$have_gas_992": ; preds = %"$out_of_gas_991", %"$have_gas_976" - %"$consume_993" = sub i64 %"$gasrem_989", 1 - store i64 %"$consume_993", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$crowdfunding.blk_leq_15", metadata !201, metadata !DIExpression()), !dbg !200 + %"$$crowdfunding.blk_leq_14_997" = load { %TName_Bool* (i8*, i8*)*, i8* }, { %TName_Bool* (i8*, i8*)*, i8* }* %"$crowdfunding.blk_leq_14", align 8 + %"$$crowdfunding.blk_leq_14_fptr_998" = extractvalue { %TName_Bool* (i8*, i8*)*, i8* } %"$$crowdfunding.blk_leq_14_997", 0 + %"$$crowdfunding.blk_leq_14_envptr_999" = extractvalue { %TName_Bool* (i8*, i8*)*, i8* } %"$$crowdfunding.blk_leq_14_997", 1 + %"$max_block_1000" = load i8*, i8** @_cparam_max_block, align 8 + %"$$crowdfunding.blk_leq_14_call_1001" = call %TName_Bool* %"$$crowdfunding.blk_leq_14_fptr_998"(i8* %"$$crowdfunding.blk_leq_14_envptr_999", i8* %"$max_block_1000"), !dbg !200 + store %TName_Bool* %"$$crowdfunding.blk_leq_14_call_1001", %TName_Bool** %"$crowdfunding.blk_leq_15", align 8, !dbg !200 + %"$$crowdfunding.blk_leq_15_1002" = load %TName_Bool*, %TName_Bool** %"$crowdfunding.blk_leq_15", align 8 + store %TName_Bool* %"$$crowdfunding.blk_leq_15_1002", %TName_Bool** %in_time, align 8, !dbg !200 + %"$gasrem_1003" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1004" = icmp ugt i64 1, %"$gasrem_1003" + br i1 %"$gascmp_1004", label %"$out_of_gas_1005", label %"$have_gas_1006" + +"$out_of_gas_1005": ; preds = %"$have_gas_990" + call void @_out_of_gas() + br label %"$have_gas_1006" + +"$have_gas_1006": ; preds = %"$out_of_gas_1005", %"$have_gas_990" + %"$consume_1007" = sub i64 %"$gasrem_1003", 1 + store i64 %"$consume_1007", i64* @_gasrem, align 8 %c1 = alloca %TName_Bool*, align 8 - %"$gasrem_994" = load i64, i64* @_gasrem, align 8 - %"$gascmp_995" = icmp ugt i64 1, %"$gasrem_994" - br i1 %"$gascmp_995", label %"$out_of_gas_996", label %"$have_gas_997" + call void @llvm.dbg.declare(metadata %TName_Bool** %c1, metadata !202, metadata !DIExpression()), !dbg !203 + %"$gasrem_1008" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1009" = icmp ugt i64 1, %"$gasrem_1008" + br i1 %"$gascmp_1009", label %"$out_of_gas_1010", label %"$have_gas_1011" -"$out_of_gas_996": ; preds = %"$have_gas_992" +"$out_of_gas_1010": ; preds = %"$have_gas_1006" call void @_out_of_gas() - br label %"$have_gas_997" + br label %"$have_gas_1011" -"$have_gas_997": ; preds = %"$out_of_gas_996", %"$have_gas_992" - %"$consume_998" = sub i64 %"$gasrem_994", 1 - store i64 %"$consume_998", i64* @_gasrem, align 8 +"$have_gas_1011": ; preds = %"$out_of_gas_1010", %"$have_gas_1006" + %"$consume_1012" = sub i64 %"$gasrem_1008", 1 + store i64 %"$consume_1012", i64* @_gasrem, align 8 %"$BoolUtils.negb_13" = alloca %TName_Bool*, align 8 - %"$BoolUtils.negb_999" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* @BoolUtils.negb, align 8 - %"$BoolUtils.negb_fptr_1000" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.negb_999", 0 - %"$BoolUtils.negb_envptr_1001" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.negb_999", 1 - %"$in_time_1002" = load %TName_Bool*, %TName_Bool** %in_time, align 8 - %"$BoolUtils.negb_call_1003" = call %TName_Bool* %"$BoolUtils.negb_fptr_1000"(i8* %"$BoolUtils.negb_envptr_1001", %TName_Bool* %"$in_time_1002"), !dbg !109 - store %TName_Bool* %"$BoolUtils.negb_call_1003", %TName_Bool** %"$BoolUtils.negb_13", align 8, !dbg !109 - %"$$BoolUtils.negb_13_1004" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.negb_13", align 8 - store %TName_Bool* %"$$BoolUtils.negb_13_1004", %TName_Bool** %c1, align 8, !dbg !109 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$BoolUtils.negb_13", metadata !204, metadata !DIExpression()), !dbg !205 + %"$BoolUtils.negb_1013" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* @BoolUtils.negb, align 8 + %"$BoolUtils.negb_fptr_1014" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.negb_1013", 0 + %"$BoolUtils.negb_envptr_1015" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.negb_1013", 1 + %"$in_time_1016" = load %TName_Bool*, %TName_Bool** %in_time, align 8 + %"$BoolUtils.negb_call_1017" = call %TName_Bool* %"$BoolUtils.negb_fptr_1014"(i8* %"$BoolUtils.negb_envptr_1015", %TName_Bool* %"$in_time_1016"), !dbg !205 + store %TName_Bool* %"$BoolUtils.negb_call_1017", %TName_Bool** %"$BoolUtils.negb_13", align 8, !dbg !205 + %"$$BoolUtils.negb_13_1018" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.negb_13", align 8 + store %TName_Bool* %"$$BoolUtils.negb_13_1018", %TName_Bool** %c1, align 8, !dbg !205 %bal = alloca %Uint128, align 8 - %"$execptr_load_1006" = load i8*, i8** @_execptr, align 8 - %"$bal_call_1007" = call i8* @_fetch_field(i8* %"$execptr_load_1006", i8* getelementptr inbounds ([9 x i8], [9 x i8]* @"$_balance_1005", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Uint128_58", i32 0, i8* null, i32 1), !dbg !110 - %"$bal_1008" = bitcast i8* %"$bal_call_1007" to %Uint128* - %"$bal_1009" = load %Uint128, %Uint128* %"$bal_1008", align 8 - store %Uint128 %"$bal_1009", %Uint128* %bal, align 8 - %"$_literal_cost_bal_1010" = alloca %Uint128, align 8 - %"$bal_1011" = load %Uint128, %Uint128* %bal, align 8 - store %Uint128 %"$bal_1011", %Uint128* %"$_literal_cost_bal_1010", align 8 - %"$$_literal_cost_bal_1010_1012" = bitcast %Uint128* %"$_literal_cost_bal_1010" to i8* - %"$_literal_cost_call_1013" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Uint128_58", i8* %"$$_literal_cost_bal_1010_1012") - %"$gasadd_1014" = add i64 %"$_literal_cost_call_1013", 0 - %"$gasrem_1015" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1016" = icmp ugt i64 %"$gasadd_1014", %"$gasrem_1015" - br i1 %"$gascmp_1016", label %"$out_of_gas_1017", label %"$have_gas_1018" - -"$out_of_gas_1017": ; preds = %"$have_gas_997" - call void @_out_of_gas() - br label %"$have_gas_1018" - -"$have_gas_1018": ; preds = %"$out_of_gas_1017", %"$have_gas_997" - %"$consume_1019" = sub i64 %"$gasrem_1015", %"$gasadd_1014" - store i64 %"$consume_1019", i64* @_gasrem, 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" - -"$out_of_gas_1022": ; preds = %"$have_gas_1018" - call void @_out_of_gas() - br label %"$have_gas_1023" - -"$have_gas_1023": ; preds = %"$out_of_gas_1022", %"$have_gas_1018" - %"$consume_1024" = sub i64 %"$gasrem_1020", 1 - store i64 %"$consume_1024", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %Uint128* %bal, metadata !206, metadata !DIExpression()), !dbg !207 + %"$execptr_load_1020" = load i8*, i8** @_execptr, align 8 + %"$bal_call_1021" = call i8* @_fetch_field(i8* %"$execptr_load_1020", i8* getelementptr inbounds ([9 x i8], [9 x i8]* @"$_balance_1019", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Uint128_58", i32 0, i8* null, i32 1), !dbg !207 + %"$bal_1022" = bitcast i8* %"$bal_call_1021" to %Uint128* + %"$bal_1023" = load %Uint128, %Uint128* %"$bal_1022", align 8 + store %Uint128 %"$bal_1023", %Uint128* %bal, align 8 + %"$_literal_cost_bal_1024" = alloca %Uint128, align 8 + %"$bal_1025" = load %Uint128, %Uint128* %bal, align 8 + store %Uint128 %"$bal_1025", %Uint128* %"$_literal_cost_bal_1024", align 8 + %"$$_literal_cost_bal_1024_1026" = bitcast %Uint128* %"$_literal_cost_bal_1024" to i8* + %"$_literal_cost_call_1027" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Uint128_58", i8* %"$$_literal_cost_bal_1024_1026") + %"$gasadd_1028" = add i64 %"$_literal_cost_call_1027", 0 + %"$gasrem_1029" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1030" = icmp ugt i64 %"$gasadd_1028", %"$gasrem_1029" + br i1 %"$gascmp_1030", label %"$out_of_gas_1031", label %"$have_gas_1032" + +"$out_of_gas_1031": ; preds = %"$have_gas_1011" + call void @_out_of_gas() + br label %"$have_gas_1032" + +"$have_gas_1032": ; preds = %"$out_of_gas_1031", %"$have_gas_1011" + %"$consume_1033" = sub i64 %"$gasrem_1029", %"$gasadd_1028" + store i64 %"$consume_1033", i64* @_gasrem, 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 %c2 = alloca %TName_Bool*, align 8 - %"$gasrem_1026" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1027" = icmp ugt i64 8, %"$gasrem_1026" - br i1 %"$gascmp_1027", label %"$out_of_gas_1028", label %"$have_gas_1029" - -"$out_of_gas_1028": ; preds = %"$have_gas_1023" - call void @_out_of_gas() - br label %"$have_gas_1029" - -"$have_gas_1029": ; preds = %"$out_of_gas_1028", %"$have_gas_1023" - %"$consume_1030" = sub i64 %"$gasrem_1026", 8 - store i64 %"$consume_1030", i64* @_gasrem, align 8 - %"$execptr_load_1031" = load i8*, i8** @_execptr, align 8 - %"$bal_1032" = load %Uint128, %Uint128* %bal, align 8 - %"$goal_1033" = load %Uint128, %Uint128* @_cparam_goal, align 8 - %"$lt_call_1034" = call %TName_Bool* @_lt_Uint128(i8* %"$execptr_load_1031", %Uint128 %"$bal_1032", %Uint128 %"$goal_1033"), !dbg !111 - store %TName_Bool* %"$lt_call_1034", %TName_Bool** %c2, 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_1029" - call void @_out_of_gas() - br label %"$have_gas_1039" - -"$have_gas_1039": ; preds = %"$out_of_gas_1038", %"$have_gas_1029" - %"$consume_1040" = sub i64 %"$gasrem_1036", 1 - store i64 %"$consume_1040", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %c2, metadata !208, metadata !DIExpression()), !dbg !209 + %"$gasrem_1040" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1041" = icmp ugt i64 8, %"$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", 8 + store i64 %"$consume_1044", i64* @_gasrem, align 8 + %"$execptr_load_1045" = load i8*, i8** @_execptr, align 8 + %"$bal_1046" = load %Uint128, %Uint128* %bal, align 8 + %"$goal_1047" = load %Uint128, %Uint128* @_cparam_goal, align 8 + %"$lt_call_1048" = call %TName_Bool* @_lt_Uint128(i8* %"$execptr_load_1045", %Uint128 %"$bal_1046", %Uint128 %"$goal_1047"), !dbg !210 + store %TName_Bool* %"$lt_call_1048", %TName_Bool** %c2, align 8, !dbg !210 + %"$gasrem_1050" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1051" = icmp ugt i64 1, %"$gasrem_1050" + br i1 %"$gascmp_1051", label %"$out_of_gas_1052", label %"$have_gas_1053" + +"$out_of_gas_1052": ; preds = %"$have_gas_1043" + call void @_out_of_gas() + br label %"$have_gas_1053" + +"$have_gas_1053": ; preds = %"$out_of_gas_1052", %"$have_gas_1043" + %"$consume_1054" = sub i64 %"$gasrem_1050", 1 + store i64 %"$consume_1054", i64* @_gasrem, align 8 %c3 = 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" + call void @llvm.dbg.declare(metadata %TName_Bool** %c3, metadata !211, metadata !DIExpression()), !dbg !212 + %"$gasrem_1055" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1056" = icmp ugt i64 1, %"$gasrem_1055" + br i1 %"$gascmp_1056", label %"$out_of_gas_1057", label %"$have_gas_1058" -"$out_of_gas_1043": ; preds = %"$have_gas_1039" +"$out_of_gas_1057": ; preds = %"$have_gas_1053" call void @_out_of_gas() - br label %"$have_gas_1044" + br label %"$have_gas_1058" -"$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 +"$have_gas_1058": ; preds = %"$out_of_gas_1057", %"$have_gas_1053" + %"$consume_1059" = sub i64 %"$gasrem_1055", 1 + store i64 %"$consume_1059", i64* @_gasrem, align 8 %"$BoolUtils.negb_12" = alloca %TName_Bool*, align 8 - %"$BoolUtils.negb_1046" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* @BoolUtils.negb, align 8 - %"$BoolUtils.negb_fptr_1047" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.negb_1046", 0 - %"$BoolUtils.negb_envptr_1048" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.negb_1046", 1 - %"$c2_1049" = load %TName_Bool*, %TName_Bool** %c2, align 8 - %"$BoolUtils.negb_call_1050" = call %TName_Bool* %"$BoolUtils.negb_fptr_1047"(i8* %"$BoolUtils.negb_envptr_1048", %TName_Bool* %"$c2_1049"), !dbg !112 - store %TName_Bool* %"$BoolUtils.negb_call_1050", %TName_Bool** %"$BoolUtils.negb_12", align 8, !dbg !112 - %"$$BoolUtils.negb_12_1051" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.negb_12", align 8 - store %TName_Bool* %"$$BoolUtils.negb_12_1051", %TName_Bool** %c3, align 8, !dbg !112 - %"$gasrem_1052" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1053" = icmp ugt i64 1, %"$gasrem_1052" - br i1 %"$gascmp_1053", label %"$out_of_gas_1054", label %"$have_gas_1055" - -"$out_of_gas_1054": ; preds = %"$have_gas_1044" - call void @_out_of_gas() - br label %"$have_gas_1055" - -"$have_gas_1055": ; preds = %"$out_of_gas_1054", %"$have_gas_1044" - %"$consume_1056" = sub i64 %"$gasrem_1052", 1 - store i64 %"$consume_1056", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$BoolUtils.negb_12", metadata !213, metadata !DIExpression()), !dbg !214 + %"$BoolUtils.negb_1060" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* @BoolUtils.negb, align 8 + %"$BoolUtils.negb_fptr_1061" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.negb_1060", 0 + %"$BoolUtils.negb_envptr_1062" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.negb_1060", 1 + %"$c2_1063" = load %TName_Bool*, %TName_Bool** %c2, align 8 + %"$BoolUtils.negb_call_1064" = call %TName_Bool* %"$BoolUtils.negb_fptr_1061"(i8* %"$BoolUtils.negb_envptr_1062", %TName_Bool* %"$c2_1063"), !dbg !214 + store %TName_Bool* %"$BoolUtils.negb_call_1064", %TName_Bool** %"$BoolUtils.negb_12", align 8, !dbg !214 + %"$$BoolUtils.negb_12_1065" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.negb_12", align 8 + store %TName_Bool* %"$$BoolUtils.negb_12_1065", %TName_Bool** %c3, align 8, !dbg !214 + %"$gasrem_1066" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1067" = icmp ugt i64 1, %"$gasrem_1066" + br i1 %"$gascmp_1067", label %"$out_of_gas_1068", label %"$have_gas_1069" + +"$out_of_gas_1068": ; preds = %"$have_gas_1058" + call void @_out_of_gas() + br label %"$have_gas_1069" + +"$have_gas_1069": ; preds = %"$out_of_gas_1068", %"$have_gas_1058" + %"$consume_1070" = sub i64 %"$gasrem_1066", 1 + store i64 %"$consume_1070", i64* @_gasrem, align 8 %c4 = alloca %TName_Bool*, align 8 - %"$gasrem_1057" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1058" = icmp ugt i64 1, %"$gasrem_1057" - br i1 %"$gascmp_1058", label %"$out_of_gas_1059", label %"$have_gas_1060" + call void @llvm.dbg.declare(metadata %TName_Bool** %c4, metadata !215, metadata !DIExpression()), !dbg !216 + %"$gasrem_1071" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1072" = icmp ugt i64 1, %"$gasrem_1071" + br i1 %"$gascmp_1072", label %"$out_of_gas_1073", label %"$have_gas_1074" -"$out_of_gas_1059": ; preds = %"$have_gas_1055" +"$out_of_gas_1073": ; preds = %"$have_gas_1069" call void @_out_of_gas() - br label %"$have_gas_1060" + br label %"$have_gas_1074" -"$have_gas_1060": ; preds = %"$out_of_gas_1059", %"$have_gas_1055" - %"$consume_1061" = sub i64 %"$gasrem_1057", 1 - store i64 %"$consume_1061", i64* @_gasrem, align 8 +"$have_gas_1074": ; preds = %"$out_of_gas_1073", %"$have_gas_1069" + %"$consume_1075" = sub i64 %"$gasrem_1071", 1 + store i64 %"$consume_1075", i64* @_gasrem, align 8 %"$BoolUtils.andb_10" = alloca { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, align 8 - %"$BoolUtils.andb_1062" = 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_1063" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_1062", 0 - %"$BoolUtils.andb_envptr_1064" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_1062", 1 - %"$c1_1065" = load %TName_Bool*, %TName_Bool** %c1, align 8 - %"$BoolUtils.andb_call_1066" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_1063"(i8* %"$BoolUtils.andb_envptr_1064", %TName_Bool* %"$c1_1065"), !dbg !113 - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_1066", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_10", align 8, !dbg !113 + %"$BoolUtils.andb_1076" = 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_1077" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_1076", 0 + %"$BoolUtils.andb_envptr_1078" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_1076", 1 + %"$c1_1079" = load %TName_Bool*, %TName_Bool** %c1, align 8 + %"$BoolUtils.andb_call_1080" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_1077"(i8* %"$BoolUtils.andb_envptr_1078", %TName_Bool* %"$c1_1079"), !dbg !217 + store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_1080", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_10", align 8, !dbg !217 %"$BoolUtils.andb_11" = alloca %TName_Bool*, align 8 - %"$$BoolUtils.andb_10_1067" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_10", align 8 - %"$$BoolUtils.andb_10_fptr_1068" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_10_1067", 0 - %"$$BoolUtils.andb_10_envptr_1069" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_10_1067", 1 - %"$c3_1070" = load %TName_Bool*, %TName_Bool** %c3, align 8 - %"$$BoolUtils.andb_10_call_1071" = call %TName_Bool* %"$$BoolUtils.andb_10_fptr_1068"(i8* %"$$BoolUtils.andb_10_envptr_1069", %TName_Bool* %"$c3_1070"), !dbg !113 - store %TName_Bool* %"$$BoolUtils.andb_10_call_1071", %TName_Bool** %"$BoolUtils.andb_11", align 8, !dbg !113 - %"$$BoolUtils.andb_11_1072" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_11", align 8 - store %TName_Bool* %"$$BoolUtils.andb_11_1072", %TName_Bool** %c4, align 8, !dbg !113 - %"$gasrem_1073" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1074" = icmp ugt i64 2, %"$gasrem_1073" - br i1 %"$gascmp_1074", label %"$out_of_gas_1075", label %"$have_gas_1076" - -"$out_of_gas_1075": ; preds = %"$have_gas_1060" - call void @_out_of_gas() - br label %"$have_gas_1076" - -"$have_gas_1076": ; preds = %"$out_of_gas_1075", %"$have_gas_1060" - %"$consume_1077" = sub i64 %"$gasrem_1073", 2 - store i64 %"$consume_1077", i64* @_gasrem, align 8 - %"$c4_1079" = load %TName_Bool*, %TName_Bool** %c4, align 8 - %"$c4_tag_1080" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$c4_1079", i32 0, i32 0 - %"$c4_tag_1081" = load i8, i8* %"$c4_tag_1080", align 1 - switch i8 %"$c4_tag_1081", label %"$empty_default_1082" [ - i8 1, label %"$False_1083" - i8 0, label %"$True_1137" - ], !dbg !114 - -"$False_1083": ; preds = %"$have_gas_1076" - %"$c4_1084" = bitcast %TName_Bool* %"$c4_1079" to %CName_False* - %"$gasrem_1085" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1086" = icmp ugt i64 1, %"$gasrem_1085" - br i1 %"$gascmp_1086", label %"$out_of_gas_1087", label %"$have_gas_1088" - -"$out_of_gas_1087": ; preds = %"$False_1083" - call void @_out_of_gas() - br label %"$have_gas_1088" - -"$have_gas_1088": ; preds = %"$out_of_gas_1087", %"$False_1083" - %"$consume_1089" = sub i64 %"$gasrem_1085", 1 - store i64 %"$consume_1089", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$BoolUtils.andb_11", metadata !218, metadata !DIExpression()), !dbg !217 + %"$$BoolUtils.andb_10_1081" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_10", align 8 + %"$$BoolUtils.andb_10_fptr_1082" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_10_1081", 0 + %"$$BoolUtils.andb_10_envptr_1083" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_10_1081", 1 + %"$c3_1084" = load %TName_Bool*, %TName_Bool** %c3, align 8 + %"$$BoolUtils.andb_10_call_1085" = call %TName_Bool* %"$$BoolUtils.andb_10_fptr_1082"(i8* %"$$BoolUtils.andb_10_envptr_1083", %TName_Bool* %"$c3_1084"), !dbg !217 + store %TName_Bool* %"$$BoolUtils.andb_10_call_1085", %TName_Bool** %"$BoolUtils.andb_11", align 8, !dbg !217 + %"$$BoolUtils.andb_11_1086" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_11", align 8 + store %TName_Bool* %"$$BoolUtils.andb_11_1086", %TName_Bool** %c4, align 8, !dbg !217 + %"$gasrem_1087" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1088" = icmp ugt i64 2, %"$gasrem_1087" + br i1 %"$gascmp_1088", label %"$out_of_gas_1089", label %"$have_gas_1090" + +"$out_of_gas_1089": ; preds = %"$have_gas_1074" + call void @_out_of_gas() + br label %"$have_gas_1090" + +"$have_gas_1090": ; preds = %"$out_of_gas_1089", %"$have_gas_1074" + %"$consume_1091" = sub i64 %"$gasrem_1087", 2 + store i64 %"$consume_1091", i64* @_gasrem, align 8 + %"$c4_1093" = load %TName_Bool*, %TName_Bool** %c4, align 8 + %"$c4_tag_1094" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$c4_1093", i32 0, i32 0 + %"$c4_tag_1095" = load i8, i8* %"$c4_tag_1094", align 1 + switch i8 %"$c4_tag_1095", label %"$empty_default_1096" [ + i8 1, label %"$False_1097" + i8 0, label %"$True_1151" + ], !dbg !219 + +"$False_1097": ; preds = %"$have_gas_1090" + %"$c4_1098" = bitcast %TName_Bool* %"$c4_1093" to %CName_False* + %"$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" + +"$out_of_gas_1101": ; preds = %"$False_1097" + call void @_out_of_gas() + br label %"$have_gas_1102" + +"$have_gas_1102": ; preds = %"$out_of_gas_1101", %"$False_1097" + %"$consume_1103" = sub i64 %"$gasrem_1099", 1 + store i64 %"$consume_1103", i64* @_gasrem, align 8 %e1 = alloca i8*, align 8 - %"$gasrem_1090" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1091" = icmp ugt i64 1, %"$gasrem_1090" - br i1 %"$gascmp_1091", label %"$out_of_gas_1092", label %"$have_gas_1093" - -"$out_of_gas_1092": ; preds = %"$have_gas_1088" - call void @_out_of_gas() - br label %"$have_gas_1093" - -"$have_gas_1093": ; preds = %"$out_of_gas_1092", %"$have_gas_1088" - %"$consume_1094" = sub i64 %"$gasrem_1090", 1 - store i64 %"$consume_1094", i64* @_gasrem, align 8 - %"$msgobj_1095_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$msgobj_1095_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_1095_salloc_load", i64 153) - %"$msgobj_1095_salloc" = bitcast i8* %"$msgobj_1095_salloc_salloc" to [153 x i8]* - %"$msgobj_1095" = bitcast [153 x i8]* %"$msgobj_1095_salloc" to i8* - store i8 4, i8* %"$msgobj_1095", align 1 - %"$msgobj_fname_1097" = getelementptr i8, i8* %"$msgobj_1095", i32 1 - %"$msgobj_fname_1098" = bitcast i8* %"$msgobj_fname_1097" to %String* - store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_1096", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_1098", align 8 - %"$msgobj_td_1099" = getelementptr i8, i8* %"$msgobj_1095", i32 17 - %"$msgobj_td_1100" = bitcast i8* %"$msgobj_td_1099" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_String_64", %_TyDescrTy_Typ** %"$msgobj_td_1100", align 8 - %"$msgobj_v_1102" = getelementptr i8, i8* %"$msgobj_1095", i32 25 - %"$msgobj_v_1103" = bitcast i8* %"$msgobj_v_1102" to %String* - store %String { i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$stringlit_1101", i32 0, i32 0), i32 15 }, %String* %"$msgobj_v_1103", align 8 - %"$msgobj_fname_1105" = getelementptr i8, i8* %"$msgobj_1095", i32 41 - %"$msgobj_fname_1106" = bitcast i8* %"$msgobj_fname_1105" to %String* - store %String { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$stringlit_1104", i32 0, i32 0), i32 6 }, %String* %"$msgobj_fname_1106", align 8 - %"$msgobj_td_1107" = getelementptr i8, i8* %"$msgobj_1095", i32 57 - %"$msgobj_td_1108" = bitcast i8* %"$msgobj_td_1107" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_78", %_TyDescrTy_Typ** %"$msgobj_td_1108", align 8 - %"$msgobj_v_1109" = getelementptr i8, i8* %"$msgobj_1095", i32 65 - %"$msgobj_v_1110" = bitcast i8* %"$msgobj_v_1109" to [20 x i8]* - store [20 x i8] %_sender, [20 x i8]* %"$msgobj_v_1110", align 1 - %"$msgobj_fname_1112" = getelementptr i8, i8* %"$msgobj_1095", i32 85 - %"$msgobj_fname_1113" = bitcast i8* %"$msgobj_fname_1112" to %String* - store %String { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$stringlit_1111", i32 0, i32 0), i32 6 }, %String* %"$msgobj_fname_1113", align 8 - %"$msgobj_td_1114" = getelementptr i8, i8* %"$msgobj_1095", i32 101 - %"$msgobj_td_1115" = bitcast i8* %"$msgobj_td_1114" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Uint128_58", %_TyDescrTy_Typ** %"$msgobj_td_1115", align 8 - %"$msgobj_v_1116" = getelementptr i8, i8* %"$msgobj_1095", i32 109 - %"$msgobj_v_1117" = bitcast i8* %"$msgobj_v_1116" to %Uint128* - store %Uint128 zeroinitializer, %Uint128* %"$msgobj_v_1117", align 8 - %"$msgobj_fname_1119" = getelementptr i8, i8* %"$msgobj_1095", i32 125 + call void @llvm.dbg.declare(metadata i8** %e1, metadata !220, metadata !DIExpression()), !dbg !223 + %"$gasrem_1104" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1105" = icmp ugt i64 1, %"$gasrem_1104" + br i1 %"$gascmp_1105", label %"$out_of_gas_1106", label %"$have_gas_1107" + +"$out_of_gas_1106": ; preds = %"$have_gas_1102" + call void @_out_of_gas() + br label %"$have_gas_1107" + +"$have_gas_1107": ; preds = %"$out_of_gas_1106", %"$have_gas_1102" + %"$consume_1108" = sub i64 %"$gasrem_1104", 1 + store i64 %"$consume_1108", i64* @_gasrem, align 8 + %"$msgobj_1109_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$msgobj_1109_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_1109_salloc_load", i64 153) + %"$msgobj_1109_salloc" = bitcast i8* %"$msgobj_1109_salloc_salloc" to [153 x i8]* + %"$msgobj_1109" = bitcast [153 x i8]* %"$msgobj_1109_salloc" to i8* + store i8 4, i8* %"$msgobj_1109", align 1 + %"$msgobj_fname_1111" = getelementptr i8, i8* %"$msgobj_1109", i32 1 + %"$msgobj_fname_1112" = bitcast i8* %"$msgobj_fname_1111" to %String* + store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_1110", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_1112", align 8 + %"$msgobj_td_1113" = getelementptr i8, i8* %"$msgobj_1109", i32 17 + %"$msgobj_td_1114" = bitcast i8* %"$msgobj_td_1113" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_String_64", %_TyDescrTy_Typ** %"$msgobj_td_1114", align 8 + %"$msgobj_v_1116" = getelementptr i8, i8* %"$msgobj_1109", i32 25 + %"$msgobj_v_1117" = bitcast i8* %"$msgobj_v_1116" to %String* + store %String { i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$stringlit_1115", i32 0, i32 0), i32 15 }, %String* %"$msgobj_v_1117", align 8 + %"$msgobj_fname_1119" = getelementptr i8, i8* %"$msgobj_1109", i32 41 %"$msgobj_fname_1120" = bitcast i8* %"$msgobj_fname_1119" to %String* - store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_1118", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_1120", align 8 - %"$msgobj_td_1121" = getelementptr i8, i8* %"$msgobj_1095", i32 141 + store %String { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$stringlit_1118", i32 0, i32 0), i32 6 }, %String* %"$msgobj_fname_1120", align 8 + %"$msgobj_td_1121" = getelementptr i8, i8* %"$msgobj_1109", i32 57 %"$msgobj_td_1122" = bitcast i8* %"$msgobj_td_1121" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Int32_48", %_TyDescrTy_Typ** %"$msgobj_td_1122", align 8 - %"$crowdfunding.cannot_get_funds_1123" = load %Int32, %Int32* @crowdfunding.cannot_get_funds, align 4 - %"$msgobj_v_1124" = getelementptr i8, i8* %"$msgobj_1095", i32 149 - %"$msgobj_v_1125" = bitcast i8* %"$msgobj_v_1124" to %Int32* - store %Int32 %"$crowdfunding.cannot_get_funds_1123", %Int32* %"$msgobj_v_1125", align 4 - store i8* %"$msgobj_1095", i8** %e1, align 8, !dbg !115 - %"$e_1127" = load i8*, i8** %e1, align 8 - %"$_literal_cost_call_1129" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Event_70", i8* %"$e_1127") - %"$gasrem_1130" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1131" = icmp ugt i64 %"$_literal_cost_call_1129", %"$gasrem_1130" - br i1 %"$gascmp_1131", label %"$out_of_gas_1132", label %"$have_gas_1133" - -"$out_of_gas_1132": ; preds = %"$have_gas_1093" - call void @_out_of_gas() - br label %"$have_gas_1133" - -"$have_gas_1133": ; preds = %"$out_of_gas_1132", %"$have_gas_1093" - %"$consume_1134" = sub i64 %"$gasrem_1130", %"$_literal_cost_call_1129" - store i64 %"$consume_1134", i64* @_gasrem, align 8 - %"$execptr_load_1135" = load i8*, i8** @_execptr, align 8 - %"$e_1136" = load i8*, i8** %e1, align 8 - call void @_event(i8* %"$execptr_load_1135", %_TyDescrTy_Typ* @"$TyDescr_Event_70", i8* %"$e_1136"), !dbg !118 - br label %"$matchsucc_1078" - -"$True_1137": ; preds = %"$have_gas_1076" - %"$c4_1138" = bitcast %TName_Bool* %"$c4_1079" to %CName_True* - %"$gasrem_1139" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1140" = icmp ugt i64 1, %"$gasrem_1139" - br i1 %"$gascmp_1140", label %"$out_of_gas_1141", label %"$have_gas_1142" - -"$out_of_gas_1141": ; preds = %"$True_1137" - call void @_out_of_gas() - br label %"$have_gas_1142" - -"$have_gas_1142": ; preds = %"$out_of_gas_1141", %"$True_1137" - %"$consume_1143" = sub i64 %"$gasrem_1139", 1 - store i64 %"$consume_1143", i64* @_gasrem, align 8 - %tt = alloca %TName_Bool*, align 8 + store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_78", %_TyDescrTy_Typ** %"$msgobj_td_1122", align 8 + %"$msgobj_v_1123" = getelementptr i8, i8* %"$msgobj_1109", i32 65 + %"$msgobj_v_1124" = bitcast i8* %"$msgobj_v_1123" to [20 x i8]* + store [20 x i8] %_sender, [20 x i8]* %"$msgobj_v_1124", align 1 + %"$msgobj_fname_1126" = getelementptr i8, i8* %"$msgobj_1109", i32 85 + %"$msgobj_fname_1127" = bitcast i8* %"$msgobj_fname_1126" to %String* + store %String { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$stringlit_1125", i32 0, i32 0), i32 6 }, %String* %"$msgobj_fname_1127", align 8 + %"$msgobj_td_1128" = getelementptr i8, i8* %"$msgobj_1109", i32 101 + %"$msgobj_td_1129" = bitcast i8* %"$msgobj_td_1128" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Uint128_58", %_TyDescrTy_Typ** %"$msgobj_td_1129", align 8 + %"$msgobj_v_1130" = getelementptr i8, i8* %"$msgobj_1109", i32 109 + %"$msgobj_v_1131" = bitcast i8* %"$msgobj_v_1130" to %Uint128* + store %Uint128 zeroinitializer, %Uint128* %"$msgobj_v_1131", align 8 + %"$msgobj_fname_1133" = getelementptr i8, i8* %"$msgobj_1109", i32 125 + %"$msgobj_fname_1134" = bitcast i8* %"$msgobj_fname_1133" to %String* + store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_1132", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_1134", align 8 + %"$msgobj_td_1135" = getelementptr i8, i8* %"$msgobj_1109", i32 141 + %"$msgobj_td_1136" = bitcast i8* %"$msgobj_td_1135" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Int32_48", %_TyDescrTy_Typ** %"$msgobj_td_1136", align 8 + %"$crowdfunding.cannot_get_funds_1137" = load %Int32, %Int32* @crowdfunding.cannot_get_funds, align 4 + %"$msgobj_v_1138" = getelementptr i8, i8* %"$msgobj_1109", i32 149 + %"$msgobj_v_1139" = bitcast i8* %"$msgobj_v_1138" to %Int32* + store %Int32 %"$crowdfunding.cannot_get_funds_1137", %Int32* %"$msgobj_v_1139", align 4 + store i8* %"$msgobj_1109", i8** %e1, align 8, !dbg !224 + %"$e_1141" = load i8*, i8** %e1, align 8 + %"$_literal_cost_call_1143" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Event_70", i8* %"$e_1141") %"$gasrem_1144" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1145" = icmp ugt i64 1, %"$gasrem_1144" + %"$gascmp_1145" = icmp ugt i64 %"$_literal_cost_call_1143", %"$gasrem_1144" br i1 %"$gascmp_1145", label %"$out_of_gas_1146", label %"$have_gas_1147" -"$out_of_gas_1146": ; preds = %"$have_gas_1142" +"$out_of_gas_1146": ; preds = %"$have_gas_1107" call void @_out_of_gas() br label %"$have_gas_1147" -"$have_gas_1147": ; preds = %"$out_of_gas_1146", %"$have_gas_1142" - %"$consume_1148" = sub i64 %"$gasrem_1144", 1 +"$have_gas_1147": ; preds = %"$out_of_gas_1146", %"$have_gas_1107" + %"$consume_1148" = sub i64 %"$gasrem_1144", %"$_literal_cost_call_1143" store i64 %"$consume_1148", i64* @_gasrem, align 8 - %"$adtval_1149_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_1149_salloc" = call i8* @_salloc(i8* %"$adtval_1149_load", i64 1) - %"$adtval_1149" = bitcast i8* %"$adtval_1149_salloc" to %CName_True* - %"$adtgep_1150" = getelementptr inbounds %CName_True, %CName_True* %"$adtval_1149", i32 0, i32 0 - store i8 0, i8* %"$adtgep_1150", align 1 - %"$adtptr_1151" = bitcast %CName_True* %"$adtval_1149" to %TName_Bool* - store %TName_Bool* %"$adtptr_1151", %TName_Bool** %tt, align 8, !dbg !119 - %"$tt_1152" = load %TName_Bool*, %TName_Bool** %tt, align 8 - %"$$tt_1152_1153" = bitcast %TName_Bool* %"$tt_1152" to i8* - %"$_literal_cost_call_1154" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_85", i8* %"$$tt_1152_1153") - %"$gasrem_1155" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1156" = icmp ugt i64 %"$_literal_cost_call_1154", %"$gasrem_1155" - br i1 %"$gascmp_1156", label %"$out_of_gas_1157", label %"$have_gas_1158" - -"$out_of_gas_1157": ; preds = %"$have_gas_1147" - call void @_out_of_gas() - br label %"$have_gas_1158" - -"$have_gas_1158": ; preds = %"$out_of_gas_1157", %"$have_gas_1147" - %"$consume_1159" = sub i64 %"$gasrem_1155", %"$_literal_cost_call_1154" - store i64 %"$consume_1159", i64* @_gasrem, align 8 - %"$execptr_load_1160" = load i8*, i8** @_execptr, align 8 - %"$tt_1162" = load %TName_Bool*, %TName_Bool** %tt, align 8 - %"$update_value_1163" = bitcast %TName_Bool* %"$tt_1162" to i8* - call void @_update_field(i8* %"$execptr_load_1160", i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$funded_1161", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_85", i32 0, i8* null, i8* %"$update_value_1163"), !dbg !121 - %"$gasrem_1164" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1165" = icmp ugt i64 1, %"$gasrem_1164" - br i1 %"$gascmp_1165", label %"$out_of_gas_1166", label %"$have_gas_1167" - -"$out_of_gas_1166": ; preds = %"$have_gas_1158" - call void @_out_of_gas() - br label %"$have_gas_1167" - -"$have_gas_1167": ; preds = %"$out_of_gas_1166", %"$have_gas_1158" - %"$consume_1168" = sub i64 %"$gasrem_1164", 1 - store i64 %"$consume_1168", i64* @_gasrem, align 8 - %msg = alloca i8*, align 8 + %"$execptr_load_1149" = load i8*, i8** @_execptr, align 8 + %"$e_1150" = load i8*, i8** %e1, align 8 + call void @_event(i8* %"$execptr_load_1149", %_TyDescrTy_Typ* @"$TyDescr_Event_70", i8* %"$e_1150"), !dbg !225 + br label %"$matchsucc_1092" + +"$True_1151": ; preds = %"$have_gas_1090" + %"$c4_1152" = bitcast %TName_Bool* %"$c4_1093" to %CName_True* + %"$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 = %"$True_1151" + call void @_out_of_gas() + br label %"$have_gas_1156" + +"$have_gas_1156": ; preds = %"$out_of_gas_1155", %"$True_1151" + %"$consume_1157" = sub i64 %"$gasrem_1153", 1 + store i64 %"$consume_1157", i64* @_gasrem, align 8 + %tt = alloca %TName_Bool*, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %tt, metadata !226, metadata !DIExpression()), !dbg !228 + %"$gasrem_1158" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1159" = icmp ugt i64 1, %"$gasrem_1158" + br i1 %"$gascmp_1159", label %"$out_of_gas_1160", label %"$have_gas_1161" + +"$out_of_gas_1160": ; preds = %"$have_gas_1156" + call void @_out_of_gas() + br label %"$have_gas_1161" + +"$have_gas_1161": ; preds = %"$out_of_gas_1160", %"$have_gas_1156" + %"$consume_1162" = sub i64 %"$gasrem_1158", 1 + store i64 %"$consume_1162", i64* @_gasrem, align 8 + %"$adtval_1163_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_1163_salloc" = call i8* @_salloc(i8* %"$adtval_1163_load", i64 1) + %"$adtval_1163" = bitcast i8* %"$adtval_1163_salloc" to %CName_True* + %"$adtgep_1164" = getelementptr inbounds %CName_True, %CName_True* %"$adtval_1163", i32 0, i32 0 + store i8 0, i8* %"$adtgep_1164", align 1 + %"$adtptr_1165" = bitcast %CName_True* %"$adtval_1163" to %TName_Bool* + store %TName_Bool* %"$adtptr_1165", %TName_Bool** %tt, align 8, !dbg !229 + %"$tt_1166" = load %TName_Bool*, %TName_Bool** %tt, align 8 + %"$$tt_1166_1167" = bitcast %TName_Bool* %"$tt_1166" to i8* + %"$_literal_cost_call_1168" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_85", i8* %"$$tt_1166_1167") %"$gasrem_1169" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1170" = icmp ugt i64 1, %"$gasrem_1169" + %"$gascmp_1170" = icmp ugt i64 %"$_literal_cost_call_1168", %"$gasrem_1169" br i1 %"$gascmp_1170", label %"$out_of_gas_1171", label %"$have_gas_1172" -"$out_of_gas_1171": ; preds = %"$have_gas_1167" +"$out_of_gas_1171": ; preds = %"$have_gas_1161" call void @_out_of_gas() br label %"$have_gas_1172" -"$have_gas_1172": ; preds = %"$out_of_gas_1171", %"$have_gas_1167" - %"$consume_1173" = sub i64 %"$gasrem_1169", 1 +"$have_gas_1172": ; preds = %"$out_of_gas_1171", %"$have_gas_1161" + %"$consume_1173" = sub i64 %"$gasrem_1169", %"$_literal_cost_call_1168" store i64 %"$consume_1173", i64* @_gasrem, align 8 - %"$msgobj_1174_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$msgobj_1174_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_1174_salloc_load", i64 125) - %"$msgobj_1174_salloc" = bitcast i8* %"$msgobj_1174_salloc_salloc" to [125 x i8]* - %"$msgobj_1174" = bitcast [125 x i8]* %"$msgobj_1174_salloc" to i8* - store i8 3, i8* %"$msgobj_1174", align 1 - %"$msgobj_fname_1176" = getelementptr i8, i8* %"$msgobj_1174", i32 1 - %"$msgobj_fname_1177" = bitcast i8* %"$msgobj_fname_1176" to %String* - store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_1175", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_1177", align 8 - %"$msgobj_td_1178" = getelementptr i8, i8* %"$msgobj_1174", i32 17 - %"$msgobj_td_1179" = bitcast i8* %"$msgobj_td_1178" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_String_64", %_TyDescrTy_Typ** %"$msgobj_td_1179", align 8 - %"$msgobj_v_1181" = getelementptr i8, i8* %"$msgobj_1174", i32 25 - %"$msgobj_v_1182" = bitcast i8* %"$msgobj_v_1181" to %String* - store %String { i8* getelementptr inbounds ([0 x i8], [0 x i8]* @"$stringlit_1180", i32 0, i32 0), i32 0 }, %String* %"$msgobj_v_1182", align 8 - %"$msgobj_fname_1184" = getelementptr i8, i8* %"$msgobj_1174", i32 41 - %"$msgobj_fname_1185" = bitcast i8* %"$msgobj_fname_1184" to %String* - store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_1183", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_1185", align 8 - %"$msgobj_td_1186" = getelementptr i8, i8* %"$msgobj_1174", i32 57 - %"$msgobj_td_1187" = bitcast i8* %"$msgobj_td_1186" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_78", %_TyDescrTy_Typ** %"$msgobj_td_1187", align 8 - %"$owner_1188" = load [20 x i8], [20 x i8]* @_cparam_owner, align 1 - %"$msgobj_v_1189" = getelementptr i8, i8* %"$msgobj_1174", i32 65 - %"$msgobj_v_1190" = bitcast i8* %"$msgobj_v_1189" to [20 x i8]* - store [20 x i8] %"$owner_1188", [20 x i8]* %"$msgobj_v_1190", align 1 - %"$msgobj_fname_1192" = getelementptr i8, i8* %"$msgobj_1174", i32 85 - %"$msgobj_fname_1193" = bitcast i8* %"$msgobj_fname_1192" to %String* - store %String { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$stringlit_1191", i32 0, i32 0), i32 7 }, %String* %"$msgobj_fname_1193", align 8 - %"$msgobj_td_1194" = getelementptr i8, i8* %"$msgobj_1174", i32 101 - %"$msgobj_td_1195" = bitcast i8* %"$msgobj_td_1194" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Uint128_58", %_TyDescrTy_Typ** %"$msgobj_td_1195", align 8 - %"$bal_1196" = load %Uint128, %Uint128* %bal, align 8 - %"$msgobj_v_1197" = getelementptr i8, i8* %"$msgobj_1174", i32 109 - %"$msgobj_v_1198" = bitcast i8* %"$msgobj_v_1197" to %Uint128* - store %Uint128 %"$bal_1196", %Uint128* %"$msgobj_v_1198", align 8 - store i8* %"$msgobj_1174", i8** %msg, 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_1172" - call void @_out_of_gas() - br label %"$have_gas_1203" - -"$have_gas_1203": ; preds = %"$out_of_gas_1202", %"$have_gas_1172" - %"$consume_1204" = sub i64 %"$gasrem_1200", 1 - store i64 %"$consume_1204", i64* @_gasrem, align 8 + %"$execptr_load_1174" = load i8*, i8** @_execptr, align 8 + %"$tt_1176" = load %TName_Bool*, %TName_Bool** %tt, align 8 + %"$update_value_1177" = bitcast %TName_Bool* %"$tt_1176" to i8* + call void @_update_field(i8* %"$execptr_load_1174", i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$funded_1175", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_85", i32 0, i8* null, i8* %"$update_value_1177"), !dbg !230 + %"$gasrem_1178" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1179" = icmp ugt i64 1, %"$gasrem_1178" + br i1 %"$gascmp_1179", label %"$out_of_gas_1180", label %"$have_gas_1181" + +"$out_of_gas_1180": ; preds = %"$have_gas_1172" + call void @_out_of_gas() + br label %"$have_gas_1181" + +"$have_gas_1181": ; preds = %"$out_of_gas_1180", %"$have_gas_1172" + %"$consume_1182" = sub i64 %"$gasrem_1178", 1 + store i64 %"$consume_1182", i64* @_gasrem, align 8 + %msg = alloca i8*, align 8 + call void @llvm.dbg.declare(metadata i8** %msg, metadata !231, metadata !DIExpression()), !dbg !232 + %"$gasrem_1183" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1184" = icmp ugt i64 1, %"$gasrem_1183" + br i1 %"$gascmp_1184", label %"$out_of_gas_1185", label %"$have_gas_1186" + +"$out_of_gas_1185": ; preds = %"$have_gas_1181" + call void @_out_of_gas() + br label %"$have_gas_1186" + +"$have_gas_1186": ; preds = %"$out_of_gas_1185", %"$have_gas_1181" + %"$consume_1187" = sub i64 %"$gasrem_1183", 1 + store i64 %"$consume_1187", i64* @_gasrem, align 8 + %"$msgobj_1188_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$msgobj_1188_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_1188_salloc_load", i64 125) + %"$msgobj_1188_salloc" = bitcast i8* %"$msgobj_1188_salloc_salloc" to [125 x i8]* + %"$msgobj_1188" = bitcast [125 x i8]* %"$msgobj_1188_salloc" to i8* + store i8 3, i8* %"$msgobj_1188", align 1 + %"$msgobj_fname_1190" = getelementptr i8, i8* %"$msgobj_1188", i32 1 + %"$msgobj_fname_1191" = bitcast i8* %"$msgobj_fname_1190" to %String* + store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_1189", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_1191", align 8 + %"$msgobj_td_1192" = getelementptr i8, i8* %"$msgobj_1188", i32 17 + %"$msgobj_td_1193" = bitcast i8* %"$msgobj_td_1192" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_String_64", %_TyDescrTy_Typ** %"$msgobj_td_1193", align 8 + %"$msgobj_v_1195" = getelementptr i8, i8* %"$msgobj_1188", i32 25 + %"$msgobj_v_1196" = bitcast i8* %"$msgobj_v_1195" to %String* + store %String { i8* getelementptr inbounds ([0 x i8], [0 x i8]* @"$stringlit_1194", i32 0, i32 0), i32 0 }, %String* %"$msgobj_v_1196", align 8 + %"$msgobj_fname_1198" = getelementptr i8, i8* %"$msgobj_1188", i32 41 + %"$msgobj_fname_1199" = bitcast i8* %"$msgobj_fname_1198" to %String* + store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_1197", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_1199", align 8 + %"$msgobj_td_1200" = getelementptr i8, i8* %"$msgobj_1188", i32 57 + %"$msgobj_td_1201" = bitcast i8* %"$msgobj_td_1200" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_78", %_TyDescrTy_Typ** %"$msgobj_td_1201", align 8 + %"$owner_1202" = load [20 x i8], [20 x i8]* @_cparam_owner, align 1 + %"$msgobj_v_1203" = getelementptr i8, i8* %"$msgobj_1188", i32 65 + %"$msgobj_v_1204" = bitcast i8* %"$msgobj_v_1203" to [20 x i8]* + store [20 x i8] %"$owner_1202", [20 x i8]* %"$msgobj_v_1204", align 1 + %"$msgobj_fname_1206" = getelementptr i8, i8* %"$msgobj_1188", i32 85 + %"$msgobj_fname_1207" = bitcast i8* %"$msgobj_fname_1206" to %String* + store %String { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$stringlit_1205", i32 0, i32 0), i32 7 }, %String* %"$msgobj_fname_1207", align 8 + %"$msgobj_td_1208" = getelementptr i8, i8* %"$msgobj_1188", i32 101 + %"$msgobj_td_1209" = bitcast i8* %"$msgobj_td_1208" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Uint128_58", %_TyDescrTy_Typ** %"$msgobj_td_1209", align 8 + %"$bal_1210" = load %Uint128, %Uint128* %bal, align 8 + %"$msgobj_v_1211" = getelementptr i8, i8* %"$msgobj_1188", i32 109 + %"$msgobj_v_1212" = bitcast i8* %"$msgobj_v_1211" to %Uint128* + store %Uint128 %"$bal_1210", %Uint128* %"$msgobj_v_1212", align 8 + store i8* %"$msgobj_1188", i8** %msg, align 8, !dbg !233 + %"$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" + +"$out_of_gas_1216": ; preds = %"$have_gas_1186" + call void @_out_of_gas() + br label %"$have_gas_1217" + +"$have_gas_1217": ; preds = %"$out_of_gas_1216", %"$have_gas_1186" + %"$consume_1218" = sub i64 %"$gasrem_1214", 1 + store i64 %"$consume_1218", i64* @_gasrem, align 8 %msgs = alloca %TName_List_Message*, 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" + call void @llvm.dbg.declare(metadata %TName_List_Message** %msgs, metadata !234, metadata !DIExpression()), !dbg !235 + %"$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" -"$out_of_gas_1207": ; preds = %"$have_gas_1203" +"$out_of_gas_1221": ; preds = %"$have_gas_1217" call void @_out_of_gas() - br label %"$have_gas_1208" + br label %"$have_gas_1222" -"$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 +"$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 %"$crowdfunding.one_msg_9" = alloca %TName_List_Message*, align 8 - %"$crowdfunding.one_msg_1210" = load { %TName_List_Message* (i8*, i8*)*, i8* }, { %TName_List_Message* (i8*, i8*)*, i8* }* @crowdfunding.one_msg, align 8 - %"$crowdfunding.one_msg_fptr_1211" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$crowdfunding.one_msg_1210", 0 - %"$crowdfunding.one_msg_envptr_1212" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$crowdfunding.one_msg_1210", 1 - %"$msg_1213" = load i8*, i8** %msg, align 8 - %"$crowdfunding.one_msg_call_1214" = call %TName_List_Message* %"$crowdfunding.one_msg_fptr_1211"(i8* %"$crowdfunding.one_msg_envptr_1212", i8* %"$msg_1213"), !dbg !123 - store %TName_List_Message* %"$crowdfunding.one_msg_call_1214", %TName_List_Message** %"$crowdfunding.one_msg_9", align 8, !dbg !123 - %"$$crowdfunding.one_msg_9_1215" = load %TName_List_Message*, %TName_List_Message** %"$crowdfunding.one_msg_9", align 8 - store %TName_List_Message* %"$$crowdfunding.one_msg_9_1215", %TName_List_Message** %msgs, align 8, !dbg !123 - %"$gasrem_1216" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1217" = icmp ugt i64 1, %"$gasrem_1216" - br i1 %"$gascmp_1217", label %"$out_of_gas_1218", label %"$have_gas_1219" - -"$out_of_gas_1218": ; preds = %"$have_gas_1208" - call void @_out_of_gas() - br label %"$have_gas_1219" - -"$have_gas_1219": ; preds = %"$out_of_gas_1218", %"$have_gas_1208" - %"$consume_1220" = sub i64 %"$gasrem_1216", 1 - store i64 %"$consume_1220", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_List_Message** %"$crowdfunding.one_msg_9", metadata !236, metadata !DIExpression()), !dbg !237 + %"$crowdfunding.one_msg_1224" = load { %TName_List_Message* (i8*, i8*)*, i8* }, { %TName_List_Message* (i8*, i8*)*, i8* }* @crowdfunding.one_msg, align 8 + %"$crowdfunding.one_msg_fptr_1225" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$crowdfunding.one_msg_1224", 0 + %"$crowdfunding.one_msg_envptr_1226" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$crowdfunding.one_msg_1224", 1 + %"$msg_1227" = load i8*, i8** %msg, align 8 + %"$crowdfunding.one_msg_call_1228" = call %TName_List_Message* %"$crowdfunding.one_msg_fptr_1225"(i8* %"$crowdfunding.one_msg_envptr_1226", i8* %"$msg_1227"), !dbg !237 + store %TName_List_Message* %"$crowdfunding.one_msg_call_1228", %TName_List_Message** %"$crowdfunding.one_msg_9", align 8, !dbg !237 + %"$$crowdfunding.one_msg_9_1229" = load %TName_List_Message*, %TName_List_Message** %"$crowdfunding.one_msg_9", align 8 + store %TName_List_Message* %"$$crowdfunding.one_msg_9_1229", %TName_List_Message** %msgs, align 8, !dbg !237 + %"$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" + +"$out_of_gas_1232": ; preds = %"$have_gas_1222" + call void @_out_of_gas() + br label %"$have_gas_1233" + +"$have_gas_1233": ; preds = %"$out_of_gas_1232", %"$have_gas_1222" + %"$consume_1234" = sub i64 %"$gasrem_1230", 1 + store i64 %"$consume_1234", i64* @_gasrem, align 8 %e2 = alloca i8*, 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" - -"$out_of_gas_1223": ; preds = %"$have_gas_1219" - call void @_out_of_gas() - br label %"$have_gas_1224" - -"$have_gas_1224": ; preds = %"$out_of_gas_1223", %"$have_gas_1219" - %"$consume_1225" = sub i64 %"$gasrem_1221", 1 - store i64 %"$consume_1225", i64* @_gasrem, align 8 - %"$msgobj_1226_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$msgobj_1226_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_1226_salloc_load", i64 153) - %"$msgobj_1226_salloc" = bitcast i8* %"$msgobj_1226_salloc_salloc" to [153 x i8]* - %"$msgobj_1226" = bitcast [153 x i8]* %"$msgobj_1226_salloc" to i8* - store i8 4, i8* %"$msgobj_1226", align 1 - %"$msgobj_fname_1228" = getelementptr i8, i8* %"$msgobj_1226", i32 1 - %"$msgobj_fname_1229" = bitcast i8* %"$msgobj_fname_1228" to %String* - store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_1227", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_1229", align 8 - %"$msgobj_td_1230" = getelementptr i8, i8* %"$msgobj_1226", i32 17 - %"$msgobj_td_1231" = bitcast i8* %"$msgobj_td_1230" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_String_64", %_TyDescrTy_Typ** %"$msgobj_td_1231", align 8 - %"$msgobj_v_1233" = getelementptr i8, i8* %"$msgobj_1226", i32 25 - %"$msgobj_v_1234" = bitcast i8* %"$msgobj_v_1233" to %String* - store %String { i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$stringlit_1232", i32 0, i32 0), i32 15 }, %String* %"$msgobj_v_1234", align 8 - %"$msgobj_fname_1236" = getelementptr i8, i8* %"$msgobj_1226", i32 41 - %"$msgobj_fname_1237" = bitcast i8* %"$msgobj_fname_1236" to %String* - store %String { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$stringlit_1235", i32 0, i32 0), i32 6 }, %String* %"$msgobj_fname_1237", align 8 - %"$msgobj_td_1238" = getelementptr i8, i8* %"$msgobj_1226", i32 57 - %"$msgobj_td_1239" = bitcast i8* %"$msgobj_td_1238" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_78", %_TyDescrTy_Typ** %"$msgobj_td_1239", align 8 - %"$owner_1240" = load [20 x i8], [20 x i8]* @_cparam_owner, align 1 - %"$msgobj_v_1241" = getelementptr i8, i8* %"$msgobj_1226", i32 65 - %"$msgobj_v_1242" = bitcast i8* %"$msgobj_v_1241" to [20 x i8]* - store [20 x i8] %"$owner_1240", [20 x i8]* %"$msgobj_v_1242", align 1 - %"$msgobj_fname_1244" = getelementptr i8, i8* %"$msgobj_1226", i32 85 - %"$msgobj_fname_1245" = bitcast i8* %"$msgobj_fname_1244" to %String* - store %String { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$stringlit_1243", i32 0, i32 0), i32 6 }, %String* %"$msgobj_fname_1245", align 8 - %"$msgobj_td_1246" = getelementptr i8, i8* %"$msgobj_1226", i32 101 - %"$msgobj_td_1247" = bitcast i8* %"$msgobj_td_1246" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Uint128_58", %_TyDescrTy_Typ** %"$msgobj_td_1247", align 8 - %"$bal_1248" = load %Uint128, %Uint128* %bal, align 8 - %"$msgobj_v_1249" = getelementptr i8, i8* %"$msgobj_1226", i32 109 - %"$msgobj_v_1250" = bitcast i8* %"$msgobj_v_1249" to %Uint128* - store %Uint128 %"$bal_1248", %Uint128* %"$msgobj_v_1250", align 8 - %"$msgobj_fname_1252" = getelementptr i8, i8* %"$msgobj_1226", i32 125 - %"$msgobj_fname_1253" = bitcast i8* %"$msgobj_fname_1252" to %String* - store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_1251", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_1253", align 8 - %"$msgobj_td_1254" = getelementptr i8, i8* %"$msgobj_1226", i32 141 - %"$msgobj_td_1255" = bitcast i8* %"$msgobj_td_1254" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Int32_48", %_TyDescrTy_Typ** %"$msgobj_td_1255", align 8 - %"$crowdfunding.got_funds_code_1256" = load %Int32, %Int32* @crowdfunding.got_funds_code, align 4 - %"$msgobj_v_1257" = getelementptr i8, i8* %"$msgobj_1226", i32 149 - %"$msgobj_v_1258" = bitcast i8* %"$msgobj_v_1257" to %Int32* - store %Int32 %"$crowdfunding.got_funds_code_1256", %Int32* %"$msgobj_v_1258", align 4 - store i8* %"$msgobj_1226", i8** %e2, align 8, !dbg !124 - %"$e_1260" = load i8*, i8** %e2, align 8 - %"$_literal_cost_call_1262" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Event_70", i8* %"$e_1260") - %"$gasrem_1263" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1264" = icmp ugt i64 %"$_literal_cost_call_1262", %"$gasrem_1263" - br i1 %"$gascmp_1264", label %"$out_of_gas_1265", label %"$have_gas_1266" - -"$out_of_gas_1265": ; preds = %"$have_gas_1224" - call void @_out_of_gas() - br label %"$have_gas_1266" - -"$have_gas_1266": ; preds = %"$out_of_gas_1265", %"$have_gas_1224" - %"$consume_1267" = sub i64 %"$gasrem_1263", %"$_literal_cost_call_1262" - store i64 %"$consume_1267", i64* @_gasrem, align 8 - %"$execptr_load_1268" = load i8*, i8** @_execptr, align 8 - %"$e_1269" = load i8*, i8** %e2, align 8 - call void @_event(i8* %"$execptr_load_1268", %_TyDescrTy_Typ* @"$TyDescr_Event_70", i8* %"$e_1269"), !dbg !125 - %"$msgs_1270" = load %TName_List_Message*, %TName_List_Message** %msgs, align 8 - %"$$msgs_1270_1271" = bitcast %TName_List_Message* %"$msgs_1270" to i8* - %"$_literal_cost_call_1272" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_84", i8* %"$$msgs_1270_1271") - %"$gasrem_1273" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1274" = icmp ugt i64 %"$_literal_cost_call_1272", %"$gasrem_1273" - br i1 %"$gascmp_1274", label %"$out_of_gas_1275", label %"$have_gas_1276" - -"$out_of_gas_1275": ; preds = %"$have_gas_1266" - call void @_out_of_gas() - br label %"$have_gas_1276" - -"$have_gas_1276": ; preds = %"$out_of_gas_1275", %"$have_gas_1266" - %"$consume_1277" = sub i64 %"$gasrem_1273", %"$_literal_cost_call_1272" - store i64 %"$consume_1277", i64* @_gasrem, align 8 - %"$execptr_load_1278" = load i8*, i8** @_execptr, align 8 - %"$msgs_1279" = load %TName_List_Message*, %TName_List_Message** %msgs, align 8 - call void @_send(i8* %"$execptr_load_1278", %_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_84", %TName_List_Message* %"$msgs_1279"), !dbg !126 - br label %"$matchsucc_1078" - -"$empty_default_1082": ; preds = %"$have_gas_1076" - br label %"$matchsucc_1078" - -"$matchsucc_1078": ; preds = %"$have_gas_1276", %"$have_gas_1133", %"$empty_default_1082" - br label %"$matchsucc_897" - -"$empty_default_901": ; preds = %"$have_gas_895" - br label %"$matchsucc_897" - -"$matchsucc_897": ; preds = %"$matchsucc_1078", %"$have_gas_952", %"$empty_default_901" + call void @llvm.dbg.declare(metadata i8** %e2, metadata !238, metadata !DIExpression()), !dbg !239 + %"$gasrem_1235" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1236" = icmp ugt i64 1, %"$gasrem_1235" + br i1 %"$gascmp_1236", label %"$out_of_gas_1237", label %"$have_gas_1238" + +"$out_of_gas_1237": ; preds = %"$have_gas_1233" + call void @_out_of_gas() + br label %"$have_gas_1238" + +"$have_gas_1238": ; preds = %"$out_of_gas_1237", %"$have_gas_1233" + %"$consume_1239" = sub i64 %"$gasrem_1235", 1 + store i64 %"$consume_1239", i64* @_gasrem, align 8 + %"$msgobj_1240_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$msgobj_1240_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_1240_salloc_load", i64 153) + %"$msgobj_1240_salloc" = bitcast i8* %"$msgobj_1240_salloc_salloc" to [153 x i8]* + %"$msgobj_1240" = bitcast [153 x i8]* %"$msgobj_1240_salloc" to i8* + store i8 4, i8* %"$msgobj_1240", align 1 + %"$msgobj_fname_1242" = getelementptr i8, i8* %"$msgobj_1240", i32 1 + %"$msgobj_fname_1243" = bitcast i8* %"$msgobj_fname_1242" to %String* + store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_1241", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_1243", align 8 + %"$msgobj_td_1244" = getelementptr i8, i8* %"$msgobj_1240", i32 17 + %"$msgobj_td_1245" = bitcast i8* %"$msgobj_td_1244" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_String_64", %_TyDescrTy_Typ** %"$msgobj_td_1245", align 8 + %"$msgobj_v_1247" = getelementptr i8, i8* %"$msgobj_1240", i32 25 + %"$msgobj_v_1248" = bitcast i8* %"$msgobj_v_1247" to %String* + store %String { i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$stringlit_1246", i32 0, i32 0), i32 15 }, %String* %"$msgobj_v_1248", align 8 + %"$msgobj_fname_1250" = getelementptr i8, i8* %"$msgobj_1240", i32 41 + %"$msgobj_fname_1251" = bitcast i8* %"$msgobj_fname_1250" to %String* + store %String { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$stringlit_1249", i32 0, i32 0), i32 6 }, %String* %"$msgobj_fname_1251", align 8 + %"$msgobj_td_1252" = getelementptr i8, i8* %"$msgobj_1240", i32 57 + %"$msgobj_td_1253" = bitcast i8* %"$msgobj_td_1252" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_78", %_TyDescrTy_Typ** %"$msgobj_td_1253", align 8 + %"$owner_1254" = load [20 x i8], [20 x i8]* @_cparam_owner, align 1 + %"$msgobj_v_1255" = getelementptr i8, i8* %"$msgobj_1240", i32 65 + %"$msgobj_v_1256" = bitcast i8* %"$msgobj_v_1255" to [20 x i8]* + store [20 x i8] %"$owner_1254", [20 x i8]* %"$msgobj_v_1256", align 1 + %"$msgobj_fname_1258" = getelementptr i8, i8* %"$msgobj_1240", i32 85 + %"$msgobj_fname_1259" = bitcast i8* %"$msgobj_fname_1258" to %String* + store %String { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$stringlit_1257", i32 0, i32 0), i32 6 }, %String* %"$msgobj_fname_1259", align 8 + %"$msgobj_td_1260" = getelementptr i8, i8* %"$msgobj_1240", i32 101 + %"$msgobj_td_1261" = bitcast i8* %"$msgobj_td_1260" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Uint128_58", %_TyDescrTy_Typ** %"$msgobj_td_1261", align 8 + %"$bal_1262" = load %Uint128, %Uint128* %bal, align 8 + %"$msgobj_v_1263" = getelementptr i8, i8* %"$msgobj_1240", i32 109 + %"$msgobj_v_1264" = bitcast i8* %"$msgobj_v_1263" to %Uint128* + store %Uint128 %"$bal_1262", %Uint128* %"$msgobj_v_1264", align 8 + %"$msgobj_fname_1266" = getelementptr i8, i8* %"$msgobj_1240", i32 125 + %"$msgobj_fname_1267" = bitcast i8* %"$msgobj_fname_1266" to %String* + store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_1265", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_1267", align 8 + %"$msgobj_td_1268" = getelementptr i8, i8* %"$msgobj_1240", i32 141 + %"$msgobj_td_1269" = bitcast i8* %"$msgobj_td_1268" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Int32_48", %_TyDescrTy_Typ** %"$msgobj_td_1269", align 8 + %"$crowdfunding.got_funds_code_1270" = load %Int32, %Int32* @crowdfunding.got_funds_code, align 4 + %"$msgobj_v_1271" = getelementptr i8, i8* %"$msgobj_1240", i32 149 + %"$msgobj_v_1272" = bitcast i8* %"$msgobj_v_1271" to %Int32* + store %Int32 %"$crowdfunding.got_funds_code_1270", %Int32* %"$msgobj_v_1272", align 4 + store i8* %"$msgobj_1240", i8** %e2, align 8, !dbg !240 + %"$e_1274" = load i8*, i8** %e2, align 8 + %"$_literal_cost_call_1276" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Event_70", i8* %"$e_1274") + %"$gasrem_1277" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1278" = icmp ugt i64 %"$_literal_cost_call_1276", %"$gasrem_1277" + br i1 %"$gascmp_1278", label %"$out_of_gas_1279", label %"$have_gas_1280" + +"$out_of_gas_1279": ; preds = %"$have_gas_1238" + call void @_out_of_gas() + br label %"$have_gas_1280" + +"$have_gas_1280": ; preds = %"$out_of_gas_1279", %"$have_gas_1238" + %"$consume_1281" = sub i64 %"$gasrem_1277", %"$_literal_cost_call_1276" + store i64 %"$consume_1281", i64* @_gasrem, align 8 + %"$execptr_load_1282" = load i8*, i8** @_execptr, align 8 + %"$e_1283" = load i8*, i8** %e2, align 8 + call void @_event(i8* %"$execptr_load_1282", %_TyDescrTy_Typ* @"$TyDescr_Event_70", i8* %"$e_1283"), !dbg !241 + %"$msgs_1284" = load %TName_List_Message*, %TName_List_Message** %msgs, align 8 + %"$$msgs_1284_1285" = bitcast %TName_List_Message* %"$msgs_1284" to i8* + %"$_literal_cost_call_1286" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_84", i8* %"$$msgs_1284_1285") + %"$gasrem_1287" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1288" = icmp ugt i64 %"$_literal_cost_call_1286", %"$gasrem_1287" + br i1 %"$gascmp_1288", label %"$out_of_gas_1289", label %"$have_gas_1290" + +"$out_of_gas_1289": ; preds = %"$have_gas_1280" + call void @_out_of_gas() + br label %"$have_gas_1290" + +"$have_gas_1290": ; preds = %"$out_of_gas_1289", %"$have_gas_1280" + %"$consume_1291" = sub i64 %"$gasrem_1287", %"$_literal_cost_call_1286" + store i64 %"$consume_1291", i64* @_gasrem, align 8 + %"$execptr_load_1292" = load i8*, i8** @_execptr, align 8 + %"$msgs_1293" = load %TName_List_Message*, %TName_List_Message** %msgs, align 8 + call void @_send(i8* %"$execptr_load_1292", %_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_84", %TName_List_Message* %"$msgs_1293"), !dbg !242 + br label %"$matchsucc_1092" + +"$empty_default_1096": ; preds = %"$have_gas_1090" + br label %"$matchsucc_1092" + +"$matchsucc_1092": ; preds = %"$have_gas_1290", %"$have_gas_1147", %"$empty_default_1096" + br label %"$matchsucc_911" + +"$empty_default_915": ; preds = %"$have_gas_909" + br label %"$matchsucc_911" + +"$matchsucc_911": ; preds = %"$matchsucc_1092", %"$have_gas_966", %"$empty_default_915" ret void } @@ -2435,310 +2531,296 @@ declare %TName_Bool* @_lt_Uint128(i8*, %Uint128, %Uint128) declare void @_send(i8*, %_TyDescrTy_Typ*, %TName_List_Message*) -define void @GetFunds(i8* %0) !dbg !127 { +define void @GetFunds(i8* %0) !dbg !243 { entry: - %"$_amount_1281" = getelementptr i8, i8* %0, i32 0 - %"$_amount_1282" = bitcast i8* %"$_amount_1281" to %Uint128* - %_amount = load %Uint128, %Uint128* %"$_amount_1282", align 8 - %"$_origin_1283" = getelementptr i8, i8* %0, i32 16 - %"$_origin_1284" = bitcast i8* %"$_origin_1283" to [20 x i8]* - %"$_sender_1285" = getelementptr i8, i8* %0, i32 36 - %"$_sender_1286" = bitcast i8* %"$_sender_1285" to [20 x i8]* - call void @"$GetFunds_871"(%Uint128 %_amount, [20 x i8]* %"$_origin_1284", [20 x i8]* %"$_sender_1286"), !dbg !128 + %"$_amount_1298" = getelementptr i8, i8* %0, i32 0 + %"$_amount_1299" = bitcast i8* %"$_amount_1298" to %Uint128* + %_amount = load %Uint128, %Uint128* %"$_amount_1299", align 8 + %"$_origin_1300" = getelementptr i8, i8* %0, i32 16 + %"$_origin_1301" = bitcast i8* %"$_origin_1300" to [20 x i8]* + %"$_sender_1302" = getelementptr i8, i8* %0, i32 36 + %"$_sender_1303" = bitcast i8* %"$_sender_1302" to [20 x i8]* + call void @"$GetFunds_885"(%Uint128 %_amount, [20 x i8]* %"$_origin_1301", [20 x i8]* %"$_sender_1303"), !dbg !244 ret void } -define internal void @"$ClaimBack_1287"(%Uint128 %_amount, [20 x i8]* %"$_origin_1288", [20 x i8]* %"$_sender_1289") !dbg !129 { +define internal void @"$ClaimBack_1304"(%Uint128 %_amount, [20 x i8]* %"$_origin_1305", [20 x i8]* %"$_sender_1306") !dbg !245 { entry: - %_origin = load [20 x i8], [20 x i8]* %"$_origin_1288", align 1 - %_sender = load [20 x i8], [20 x i8]* %"$_sender_1289", align 1 - %"$gasrem_1290" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1291" = icmp ugt i64 1, %"$gasrem_1290" - br i1 %"$gascmp_1291", label %"$out_of_gas_1292", label %"$have_gas_1293" - -"$out_of_gas_1292": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_1293" - -"$have_gas_1293": ; preds = %"$out_of_gas_1292", %entry - %"$consume_1294" = sub i64 %"$gasrem_1290", 1 - store i64 %"$consume_1294", i64* @_gasrem, align 8 + %"$_sender_1833" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_sender_1306", [20 x i8]** %"$_sender_1833", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_sender_1833", metadata !246, metadata !DIExpression()), !dbg !247 + %"$_origin_1832" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_origin_1305", [20 x i8]** %"$_origin_1832", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_origin_1832", metadata !248, metadata !DIExpression()), !dbg !247 + %"$_amount_1831" = alloca %Uint128, align 8 + store %Uint128 %_amount, %Uint128* %"$_amount_1831", align 8 + call void @llvm.dbg.declare(metadata %Uint128* %"$_amount_1831", metadata !249, metadata !DIExpression()), !dbg !247 + %_origin = load [20 x i8], [20 x i8]* %"$_origin_1305", align 1 + %_sender = load [20 x i8], [20 x i8]* %"$_sender_1306", align 1 + %"$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 %blk = alloca i8*, align 8 - %"$execptr_load_1297" = load i8*, i8** @_execptr, align 8 - %"$blk_call_1298" = call i8* @_read_blockchain(i8* %"$execptr_load_1297", %BCQuery { i8* getelementptr inbounds ([11 x i8], [11 x i8]* @"$fetchbc_query_name_1295", i32 0, i32 0), i32 11 }, %String { i8* getelementptr inbounds ([0 x i8], [0 x i8]* @"$fetchbc_query_arg_1296", i32 0, i32 0), i32 0 }), !dbg !130 - store i8* %"$blk_call_1298", i8** %blk, 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" + call void @llvm.dbg.declare(metadata i8** %blk, metadata !250, metadata !DIExpression()), !dbg !251 + %"$execptr_load_1314" = load i8*, i8** @_execptr, align 8 + %"$blk_call_1315" = call i8* @_read_blockchain(i8* %"$execptr_load_1314", %BCQuery { i8* getelementptr inbounds ([11 x i8], [11 x i8]* @"$fetchbc_query_name_1312", i32 0, i32 0), i32 11 }, %String { i8* getelementptr inbounds ([0 x i8], [0 x i8]* @"$fetchbc_query_arg_1313", i32 0, i32 0), i32 0 }), !dbg !251 + store i8* %"$blk_call_1315", i8** %blk, align 8 + %"$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_1302": ; preds = %"$have_gas_1293" +"$out_of_gas_1319": ; preds = %"$have_gas_1310" call void @_out_of_gas() - br label %"$have_gas_1303" + br label %"$have_gas_1320" -"$have_gas_1303": ; preds = %"$out_of_gas_1302", %"$have_gas_1293" - %"$consume_1304" = sub i64 %"$gasrem_1300", 1 - store i64 %"$consume_1304", i64* @_gasrem, align 8 +"$have_gas_1320": ; preds = %"$out_of_gas_1319", %"$have_gas_1310" + %"$consume_1321" = sub i64 %"$gasrem_1317", 1 + store i64 %"$consume_1321", i64* @_gasrem, align 8 %after_deadline = alloca %TName_Bool*, align 8 - %"$gasrem_1305" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1306" = icmp ugt i64 32, %"$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", 32 - store i64 %"$consume_1309", i64* @_gasrem, align 8 - %"$execptr_load_1310" = load i8*, i8** @_execptr, align 8 - %"$max_block_1311" = load i8*, i8** @_cparam_max_block, align 8 - %"$blk_1312" = load i8*, i8** %blk, align 8 - %"$blt_call_1313" = call %TName_Bool* @_lt_BNum(i8* %"$execptr_load_1310", i8* %"$max_block_1311", i8* %"$blk_1312"), !dbg !131 - store %TName_Bool* %"$blt_call_1313", %TName_Bool** %after_deadline, align 8, !dbg !131 - %"$gasrem_1315" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1316" = icmp ugt i64 2, %"$gasrem_1315" - br i1 %"$gascmp_1316", label %"$out_of_gas_1317", label %"$have_gas_1318" - -"$out_of_gas_1317": ; preds = %"$have_gas_1308" - call void @_out_of_gas() - br label %"$have_gas_1318" - -"$have_gas_1318": ; preds = %"$out_of_gas_1317", %"$have_gas_1308" - %"$consume_1319" = sub i64 %"$gasrem_1315", 2 - store i64 %"$consume_1319", i64* @_gasrem, align 8 - %"$after_deadline_1321" = load %TName_Bool*, %TName_Bool** %after_deadline, align 8 - %"$after_deadline_tag_1322" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$after_deadline_1321", i32 0, i32 0 - %"$after_deadline_tag_1323" = load i8, i8* %"$after_deadline_tag_1322", align 1 - switch i8 %"$after_deadline_tag_1323", label %"$empty_default_1324" [ - i8 1, label %"$False_1325" - i8 0, label %"$True_1379" - ], !dbg !132 - -"$False_1325": ; preds = %"$have_gas_1318" - %"$after_deadline_1326" = bitcast %TName_Bool* %"$after_deadline_1321" to %CName_False* - %"$gasrem_1327" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1328" = icmp ugt i64 1, %"$gasrem_1327" - br i1 %"$gascmp_1328", label %"$out_of_gas_1329", label %"$have_gas_1330" - -"$out_of_gas_1329": ; preds = %"$False_1325" - call void @_out_of_gas() - br label %"$have_gas_1330" - -"$have_gas_1330": ; preds = %"$out_of_gas_1329", %"$False_1325" - %"$consume_1331" = sub i64 %"$gasrem_1327", 1 - store i64 %"$consume_1331", i64* @_gasrem, align 8 - %e = alloca i8*, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %after_deadline, metadata !252, metadata !DIExpression()), !dbg !253 + %"$gasrem_1322" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1323" = icmp ugt i64 32, %"$gasrem_1322" + br i1 %"$gascmp_1323", label %"$out_of_gas_1324", label %"$have_gas_1325" + +"$out_of_gas_1324": ; preds = %"$have_gas_1320" + call void @_out_of_gas() + br label %"$have_gas_1325" + +"$have_gas_1325": ; preds = %"$out_of_gas_1324", %"$have_gas_1320" + %"$consume_1326" = sub i64 %"$gasrem_1322", 32 + store i64 %"$consume_1326", i64* @_gasrem, align 8 + %"$execptr_load_1327" = load i8*, i8** @_execptr, align 8 + %"$max_block_1328" = load i8*, i8** @_cparam_max_block, align 8 + %"$blk_1329" = load i8*, i8** %blk, align 8 + %"$blt_call_1330" = call %TName_Bool* @_lt_BNum(i8* %"$execptr_load_1327", i8* %"$max_block_1328", i8* %"$blk_1329"), !dbg !254 + store %TName_Bool* %"$blt_call_1330", %TName_Bool** %after_deadline, align 8, !dbg !254 %"$gasrem_1332" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1333" = icmp ugt i64 1, %"$gasrem_1332" + %"$gascmp_1333" = icmp ugt i64 2, %"$gasrem_1332" br i1 %"$gascmp_1333", label %"$out_of_gas_1334", label %"$have_gas_1335" -"$out_of_gas_1334": ; preds = %"$have_gas_1330" +"$out_of_gas_1334": ; preds = %"$have_gas_1325" call void @_out_of_gas() br label %"$have_gas_1335" -"$have_gas_1335": ; preds = %"$out_of_gas_1334", %"$have_gas_1330" - %"$consume_1336" = sub i64 %"$gasrem_1332", 1 +"$have_gas_1335": ; preds = %"$out_of_gas_1334", %"$have_gas_1325" + %"$consume_1336" = sub i64 %"$gasrem_1332", 2 store i64 %"$consume_1336", i64* @_gasrem, align 8 - %"$msgobj_1337_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$msgobj_1337_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_1337_salloc_load", i64 153) - %"$msgobj_1337_salloc" = bitcast i8* %"$msgobj_1337_salloc_salloc" to [153 x i8]* - %"$msgobj_1337" = bitcast [153 x i8]* %"$msgobj_1337_salloc" to i8* - store i8 4, i8* %"$msgobj_1337", align 1 - %"$msgobj_fname_1339" = getelementptr i8, i8* %"$msgobj_1337", i32 1 - %"$msgobj_fname_1340" = bitcast i8* %"$msgobj_fname_1339" to %String* - store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_1338", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_1340", align 8 - %"$msgobj_td_1341" = getelementptr i8, i8* %"$msgobj_1337", i32 17 - %"$msgobj_td_1342" = bitcast i8* %"$msgobj_td_1341" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_String_64", %_TyDescrTy_Typ** %"$msgobj_td_1342", align 8 - %"$msgobj_v_1344" = getelementptr i8, i8* %"$msgobj_1337", i32 25 - %"$msgobj_v_1345" = bitcast i8* %"$msgobj_v_1344" to %String* - store %String { i8* getelementptr inbounds ([16 x i8], [16 x i8]* @"$stringlit_1343", i32 0, i32 0), i32 16 }, %String* %"$msgobj_v_1345", align 8 - %"$msgobj_fname_1347" = getelementptr i8, i8* %"$msgobj_1337", i32 41 - %"$msgobj_fname_1348" = bitcast i8* %"$msgobj_fname_1347" to %String* - store %String { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$stringlit_1346", i32 0, i32 0), i32 6 }, %String* %"$msgobj_fname_1348", align 8 - %"$msgobj_td_1349" = getelementptr i8, i8* %"$msgobj_1337", i32 57 - %"$msgobj_td_1350" = bitcast i8* %"$msgobj_td_1349" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_78", %_TyDescrTy_Typ** %"$msgobj_td_1350", align 8 - %"$msgobj_v_1351" = getelementptr i8, i8* %"$msgobj_1337", i32 65 - %"$msgobj_v_1352" = bitcast i8* %"$msgobj_v_1351" to [20 x i8]* - store [20 x i8] %_sender, [20 x i8]* %"$msgobj_v_1352", align 1 - %"$msgobj_fname_1354" = getelementptr i8, i8* %"$msgobj_1337", i32 85 - %"$msgobj_fname_1355" = bitcast i8* %"$msgobj_fname_1354" to %String* - store %String { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$stringlit_1353", i32 0, i32 0), i32 6 }, %String* %"$msgobj_fname_1355", align 8 - %"$msgobj_td_1356" = getelementptr i8, i8* %"$msgobj_1337", i32 101 - %"$msgobj_td_1357" = bitcast i8* %"$msgobj_td_1356" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Uint128_58", %_TyDescrTy_Typ** %"$msgobj_td_1357", align 8 - %"$msgobj_v_1358" = getelementptr i8, i8* %"$msgobj_1337", i32 109 - %"$msgobj_v_1359" = bitcast i8* %"$msgobj_v_1358" to %Uint128* - store %Uint128 zeroinitializer, %Uint128* %"$msgobj_v_1359", align 8 - %"$msgobj_fname_1361" = getelementptr i8, i8* %"$msgobj_1337", i32 125 - %"$msgobj_fname_1362" = bitcast i8* %"$msgobj_fname_1361" to %String* - store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_1360", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_1362", align 8 - %"$msgobj_td_1363" = getelementptr i8, i8* %"$msgobj_1337", i32 141 - %"$msgobj_td_1364" = bitcast i8* %"$msgobj_td_1363" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Int32_48", %_TyDescrTy_Typ** %"$msgobj_td_1364", align 8 - %"$crowdfunding.too_early_code_1365" = load %Int32, %Int32* @crowdfunding.too_early_code, align 4 - %"$msgobj_v_1366" = getelementptr i8, i8* %"$msgobj_1337", i32 149 - %"$msgobj_v_1367" = bitcast i8* %"$msgobj_v_1366" to %Int32* - store %Int32 %"$crowdfunding.too_early_code_1365", %Int32* %"$msgobj_v_1367", align 4 - store i8* %"$msgobj_1337", i8** %e, align 8, !dbg !133 - %"$e_1369" = load i8*, i8** %e, align 8 - %"$_literal_cost_call_1371" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Event_70", i8* %"$e_1369") - %"$gasrem_1372" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1373" = icmp ugt i64 %"$_literal_cost_call_1371", %"$gasrem_1372" - br i1 %"$gascmp_1373", label %"$out_of_gas_1374", label %"$have_gas_1375" - -"$out_of_gas_1374": ; preds = %"$have_gas_1335" - call void @_out_of_gas() - br label %"$have_gas_1375" - -"$have_gas_1375": ; preds = %"$out_of_gas_1374", %"$have_gas_1335" - %"$consume_1376" = sub i64 %"$gasrem_1372", %"$_literal_cost_call_1371" - store i64 %"$consume_1376", i64* @_gasrem, align 8 - %"$execptr_load_1377" = load i8*, i8** @_execptr, align 8 - %"$e_1378" = load i8*, i8** %e, align 8 - call void @_event(i8* %"$execptr_load_1377", %_TyDescrTy_Typ* @"$TyDescr_Event_70", i8* %"$e_1378"), !dbg !136 - br label %"$matchsucc_1320" - -"$True_1379": ; preds = %"$have_gas_1318" - %"$after_deadline_1380" = bitcast %TName_Bool* %"$after_deadline_1321" to %CName_True* + %"$after_deadline_1338" = load %TName_Bool*, %TName_Bool** %after_deadline, align 8 + %"$after_deadline_tag_1339" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$after_deadline_1338", i32 0, i32 0 + %"$after_deadline_tag_1340" = load i8, i8* %"$after_deadline_tag_1339", align 1 + switch i8 %"$after_deadline_tag_1340", label %"$empty_default_1341" [ + i8 1, label %"$False_1342" + i8 0, label %"$True_1396" + ], !dbg !255 + +"$False_1342": ; preds = %"$have_gas_1335" + %"$after_deadline_1343" = bitcast %TName_Bool* %"$after_deadline_1338" to %CName_False* + %"$gasrem_1344" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1345" = icmp ugt i64 1, %"$gasrem_1344" + br i1 %"$gascmp_1345", label %"$out_of_gas_1346", label %"$have_gas_1347" + +"$out_of_gas_1346": ; preds = %"$False_1342" + call void @_out_of_gas() + br label %"$have_gas_1347" + +"$have_gas_1347": ; preds = %"$out_of_gas_1346", %"$False_1342" + %"$consume_1348" = sub i64 %"$gasrem_1344", 1 + store i64 %"$consume_1348", i64* @_gasrem, align 8 + %e = alloca i8*, align 8 + call void @llvm.dbg.declare(metadata i8** %e, metadata !256, metadata !DIExpression()), !dbg !259 + %"$gasrem_1349" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1350" = icmp ugt i64 1, %"$gasrem_1349" + br i1 %"$gascmp_1350", label %"$out_of_gas_1351", label %"$have_gas_1352" + +"$out_of_gas_1351": ; preds = %"$have_gas_1347" + call void @_out_of_gas() + br label %"$have_gas_1352" + +"$have_gas_1352": ; preds = %"$out_of_gas_1351", %"$have_gas_1347" + %"$consume_1353" = sub i64 %"$gasrem_1349", 1 + store i64 %"$consume_1353", i64* @_gasrem, align 8 + %"$msgobj_1354_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$msgobj_1354_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_1354_salloc_load", i64 153) + %"$msgobj_1354_salloc" = bitcast i8* %"$msgobj_1354_salloc_salloc" to [153 x i8]* + %"$msgobj_1354" = bitcast [153 x i8]* %"$msgobj_1354_salloc" to i8* + store i8 4, i8* %"$msgobj_1354", align 1 + %"$msgobj_fname_1356" = getelementptr i8, i8* %"$msgobj_1354", i32 1 + %"$msgobj_fname_1357" = bitcast i8* %"$msgobj_fname_1356" to %String* + store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_1355", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_1357", align 8 + %"$msgobj_td_1358" = getelementptr i8, i8* %"$msgobj_1354", i32 17 + %"$msgobj_td_1359" = bitcast i8* %"$msgobj_td_1358" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_String_64", %_TyDescrTy_Typ** %"$msgobj_td_1359", align 8 + %"$msgobj_v_1361" = getelementptr i8, i8* %"$msgobj_1354", i32 25 + %"$msgobj_v_1362" = bitcast i8* %"$msgobj_v_1361" to %String* + store %String { i8* getelementptr inbounds ([16 x i8], [16 x i8]* @"$stringlit_1360", i32 0, i32 0), i32 16 }, %String* %"$msgobj_v_1362", align 8 + %"$msgobj_fname_1364" = getelementptr i8, i8* %"$msgobj_1354", i32 41 + %"$msgobj_fname_1365" = bitcast i8* %"$msgobj_fname_1364" to %String* + store %String { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$stringlit_1363", i32 0, i32 0), i32 6 }, %String* %"$msgobj_fname_1365", align 8 + %"$msgobj_td_1366" = getelementptr i8, i8* %"$msgobj_1354", i32 57 + %"$msgobj_td_1367" = bitcast i8* %"$msgobj_td_1366" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_78", %_TyDescrTy_Typ** %"$msgobj_td_1367", align 8 + %"$msgobj_v_1368" = getelementptr i8, i8* %"$msgobj_1354", i32 65 + %"$msgobj_v_1369" = bitcast i8* %"$msgobj_v_1368" to [20 x i8]* + store [20 x i8] %_sender, [20 x i8]* %"$msgobj_v_1369", align 1 + %"$msgobj_fname_1371" = getelementptr i8, i8* %"$msgobj_1354", i32 85 + %"$msgobj_fname_1372" = bitcast i8* %"$msgobj_fname_1371" to %String* + store %String { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$stringlit_1370", i32 0, i32 0), i32 6 }, %String* %"$msgobj_fname_1372", align 8 + %"$msgobj_td_1373" = getelementptr i8, i8* %"$msgobj_1354", i32 101 + %"$msgobj_td_1374" = bitcast i8* %"$msgobj_td_1373" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Uint128_58", %_TyDescrTy_Typ** %"$msgobj_td_1374", align 8 + %"$msgobj_v_1375" = getelementptr i8, i8* %"$msgobj_1354", i32 109 + %"$msgobj_v_1376" = bitcast i8* %"$msgobj_v_1375" to %Uint128* + store %Uint128 zeroinitializer, %Uint128* %"$msgobj_v_1376", align 8 + %"$msgobj_fname_1378" = getelementptr i8, i8* %"$msgobj_1354", i32 125 + %"$msgobj_fname_1379" = bitcast i8* %"$msgobj_fname_1378" to %String* + store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_1377", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_1379", align 8 + %"$msgobj_td_1380" = getelementptr i8, i8* %"$msgobj_1354", i32 141 + %"$msgobj_td_1381" = bitcast i8* %"$msgobj_td_1380" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Int32_48", %_TyDescrTy_Typ** %"$msgobj_td_1381", align 8 + %"$crowdfunding.too_early_code_1382" = load %Int32, %Int32* @crowdfunding.too_early_code, align 4 + %"$msgobj_v_1383" = getelementptr i8, i8* %"$msgobj_1354", i32 149 + %"$msgobj_v_1384" = bitcast i8* %"$msgobj_v_1383" to %Int32* + store %Int32 %"$crowdfunding.too_early_code_1382", %Int32* %"$msgobj_v_1384", align 4 + store i8* %"$msgobj_1354", i8** %e, align 8, !dbg !260 + %"$e_1386" = load i8*, i8** %e, align 8 + %"$_literal_cost_call_1388" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Event_70", i8* %"$e_1386") + %"$gasrem_1389" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1390" = icmp ugt i64 %"$_literal_cost_call_1388", %"$gasrem_1389" + br i1 %"$gascmp_1390", label %"$out_of_gas_1391", label %"$have_gas_1392" + +"$out_of_gas_1391": ; preds = %"$have_gas_1352" + call void @_out_of_gas() + br label %"$have_gas_1392" + +"$have_gas_1392": ; preds = %"$out_of_gas_1391", %"$have_gas_1352" + %"$consume_1393" = sub i64 %"$gasrem_1389", %"$_literal_cost_call_1388" + store i64 %"$consume_1393", i64* @_gasrem, align 8 + %"$execptr_load_1394" = load i8*, i8** @_execptr, align 8 + %"$e_1395" = load i8*, i8** %e, align 8 + call void @_event(i8* %"$execptr_load_1394", %_TyDescrTy_Typ* @"$TyDescr_Event_70", i8* %"$e_1395"), !dbg !261 + br label %"$matchsucc_1337" + +"$True_1396": ; preds = %"$have_gas_1335" + %"$after_deadline_1397" = bitcast %TName_Bool* %"$after_deadline_1338" to %CName_True* %bs = alloca %Map_ByStr20_Uint128*, align 8 - %"$execptr_load_1382" = load i8*, i8** @_execptr, align 8 - %"$bs_call_1383" = call i8* @_fetch_field(i8* %"$execptr_load_1382", i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$backers_1381", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_87", i32 0, i8* null, i32 1), !dbg !137 - %"$bs_1384" = bitcast i8* %"$bs_call_1383" to %Map_ByStr20_Uint128* - store %Map_ByStr20_Uint128* %"$bs_1384", %Map_ByStr20_Uint128** %bs, align 8 - %"$bs_1385" = load %Map_ByStr20_Uint128*, %Map_ByStr20_Uint128** %bs, align 8 - %"$$bs_1385_1386" = bitcast %Map_ByStr20_Uint128* %"$bs_1385" to i8* - %"$_literal_cost_call_1387" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Map_87", i8* %"$$bs_1385_1386") - %"$bs_1388" = load %Map_ByStr20_Uint128*, %Map_ByStr20_Uint128** %bs, align 8 - %"$$bs_1388_1389" = bitcast %Map_ByStr20_Uint128* %"$bs_1388" to i8* - %"$_mapsortcost_call_1390" = call i64 @_mapsortcost(%_TyDescrTy_Typ* @"$TyDescr_Map_87", i8* %"$$bs_1388_1389") - %"$gasadd_1391" = add i64 %"$_literal_cost_call_1387", %"$_mapsortcost_call_1390" - %"$gasrem_1392" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1393" = icmp ugt i64 %"$gasadd_1391", %"$gasrem_1392" - br i1 %"$gascmp_1393", label %"$out_of_gas_1394", label %"$have_gas_1395" - -"$out_of_gas_1394": ; preds = %"$True_1379" - call void @_out_of_gas() - br label %"$have_gas_1395" - -"$have_gas_1395": ; preds = %"$out_of_gas_1394", %"$True_1379" - %"$consume_1396" = sub i64 %"$gasrem_1392", %"$gasadd_1391" - store i64 %"$consume_1396", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %Map_ByStr20_Uint128** %bs, metadata !262, metadata !DIExpression()), !dbg !264 + %"$execptr_load_1399" = load i8*, i8** @_execptr, align 8 + %"$bs_call_1400" = call i8* @_fetch_field(i8* %"$execptr_load_1399", i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$backers_1398", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_87", i32 0, i8* null, i32 1), !dbg !264 + %"$bs_1401" = bitcast i8* %"$bs_call_1400" to %Map_ByStr20_Uint128* + store %Map_ByStr20_Uint128* %"$bs_1401", %Map_ByStr20_Uint128** %bs, align 8 + %"$bs_1402" = load %Map_ByStr20_Uint128*, %Map_ByStr20_Uint128** %bs, align 8 + %"$$bs_1402_1403" = bitcast %Map_ByStr20_Uint128* %"$bs_1402" to i8* + %"$_literal_cost_call_1404" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Map_87", i8* %"$$bs_1402_1403") + %"$bs_1405" = load %Map_ByStr20_Uint128*, %Map_ByStr20_Uint128** %bs, align 8 + %"$$bs_1405_1406" = bitcast %Map_ByStr20_Uint128* %"$bs_1405" to i8* + %"$_mapsortcost_call_1407" = call i64 @_mapsortcost(%_TyDescrTy_Typ* @"$TyDescr_Map_87", i8* %"$$bs_1405_1406") + %"$gasadd_1408" = add i64 %"$_literal_cost_call_1404", %"$_mapsortcost_call_1407" + %"$gasrem_1409" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1410" = icmp ugt i64 %"$gasadd_1408", %"$gasrem_1409" + br i1 %"$gascmp_1410", label %"$out_of_gas_1411", label %"$have_gas_1412" + +"$out_of_gas_1411": ; preds = %"$True_1396" + call void @_out_of_gas() + br label %"$have_gas_1412" + +"$have_gas_1412": ; preds = %"$out_of_gas_1411", %"$True_1396" + %"$consume_1413" = sub i64 %"$gasrem_1409", %"$gasadd_1408" + store i64 %"$consume_1413", i64* @_gasrem, align 8 %bal = alloca %Uint128, align 8 - %"$execptr_load_1398" = load i8*, i8** @_execptr, align 8 - %"$bal_call_1399" = call i8* @_fetch_field(i8* %"$execptr_load_1398", i8* getelementptr inbounds ([9 x i8], [9 x i8]* @"$_balance_1397", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Uint128_58", i32 0, i8* null, i32 1), !dbg !139 - %"$bal_1400" = bitcast i8* %"$bal_call_1399" to %Uint128* - %"$bal_1401" = load %Uint128, %Uint128* %"$bal_1400", align 8 - store %Uint128 %"$bal_1401", %Uint128* %bal, align 8 - %"$_literal_cost_bal_1402" = alloca %Uint128, align 8 - %"$bal_1403" = load %Uint128, %Uint128* %bal, align 8 - store %Uint128 %"$bal_1403", %Uint128* %"$_literal_cost_bal_1402", align 8 - %"$$_literal_cost_bal_1402_1404" = bitcast %Uint128* %"$_literal_cost_bal_1402" to i8* - %"$_literal_cost_call_1405" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Uint128_58", i8* %"$$_literal_cost_bal_1402_1404") - %"$gasadd_1406" = add i64 %"$_literal_cost_call_1405", 0 - %"$gasrem_1407" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1408" = icmp ugt i64 %"$gasadd_1406", %"$gasrem_1407" - br i1 %"$gascmp_1408", label %"$out_of_gas_1409", label %"$have_gas_1410" - -"$out_of_gas_1409": ; preds = %"$have_gas_1395" - call void @_out_of_gas() - br label %"$have_gas_1410" - -"$have_gas_1410": ; preds = %"$out_of_gas_1409", %"$have_gas_1395" - %"$consume_1411" = sub i64 %"$gasrem_1407", %"$gasadd_1406" - store i64 %"$consume_1411", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %Uint128* %bal, metadata !265, metadata !DIExpression()), !dbg !266 + %"$execptr_load_1415" = load i8*, i8** @_execptr, align 8 + %"$bal_call_1416" = call i8* @_fetch_field(i8* %"$execptr_load_1415", i8* getelementptr inbounds ([9 x i8], [9 x i8]* @"$_balance_1414", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Uint128_58", i32 0, i8* null, i32 1), !dbg !266 + %"$bal_1417" = bitcast i8* %"$bal_call_1416" to %Uint128* + %"$bal_1418" = load %Uint128, %Uint128* %"$bal_1417", align 8 + store %Uint128 %"$bal_1418", %Uint128* %bal, align 8 + %"$_literal_cost_bal_1419" = alloca %Uint128, align 8 + %"$bal_1420" = load %Uint128, %Uint128* %bal, align 8 + store %Uint128 %"$bal_1420", %Uint128* %"$_literal_cost_bal_1419", align 8 + %"$$_literal_cost_bal_1419_1421" = bitcast %Uint128* %"$_literal_cost_bal_1419" to i8* + %"$_literal_cost_call_1422" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Uint128_58", i8* %"$$_literal_cost_bal_1419_1421") + %"$gasadd_1423" = add i64 %"$_literal_cost_call_1422", 0 + %"$gasrem_1424" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1425" = icmp ugt i64 %"$gasadd_1423", %"$gasrem_1424" + br i1 %"$gascmp_1425", label %"$out_of_gas_1426", label %"$have_gas_1427" + +"$out_of_gas_1426": ; preds = %"$have_gas_1412" + call void @_out_of_gas() + br label %"$have_gas_1427" + +"$have_gas_1427": ; preds = %"$out_of_gas_1426", %"$have_gas_1412" + %"$consume_1428" = sub i64 %"$gasrem_1424", %"$gasadd_1423" + store i64 %"$consume_1428", i64* @_gasrem, align 8 %f = alloca %TName_Bool*, align 8 - %"$execptr_load_1413" = load i8*, i8** @_execptr, align 8 - %"$f_call_1414" = call i8* @_fetch_field(i8* %"$execptr_load_1413", i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$funded_1412", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_85", i32 0, i8* null, i32 1), !dbg !140 - %"$f_1415" = bitcast i8* %"$f_call_1414" to %TName_Bool* - store %TName_Bool* %"$f_1415", %TName_Bool** %f, align 8 - %"$f_1416" = load %TName_Bool*, %TName_Bool** %f, align 8 - %"$$f_1416_1417" = bitcast %TName_Bool* %"$f_1416" to i8* - %"$_literal_cost_call_1418" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_85", i8* %"$$f_1416_1417") - %"$gasadd_1419" = add i64 %"$_literal_cost_call_1418", 0 - %"$gasrem_1420" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1421" = icmp ugt i64 %"$gasadd_1419", %"$gasrem_1420" - br i1 %"$gascmp_1421", label %"$out_of_gas_1422", label %"$have_gas_1423" - -"$out_of_gas_1422": ; preds = %"$have_gas_1410" - call void @_out_of_gas() - br label %"$have_gas_1423" - -"$have_gas_1423": ; preds = %"$out_of_gas_1422", %"$have_gas_1410" - %"$consume_1424" = sub i64 %"$gasrem_1420", %"$gasadd_1419" - store i64 %"$consume_1424", i64* @_gasrem, align 8 - %"$gasrem_1425" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1426" = icmp ugt i64 1, %"$gasrem_1425" - br i1 %"$gascmp_1426", label %"$out_of_gas_1427", label %"$have_gas_1428" - -"$out_of_gas_1427": ; preds = %"$have_gas_1423" - call void @_out_of_gas() - br label %"$have_gas_1428" - -"$have_gas_1428": ; preds = %"$out_of_gas_1427", %"$have_gas_1423" - %"$consume_1429" = sub i64 %"$gasrem_1425", 1 - store i64 %"$consume_1429", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %f, metadata !267, metadata !DIExpression()), !dbg !268 + %"$execptr_load_1430" = load i8*, i8** @_execptr, align 8 + %"$f_call_1431" = call i8* @_fetch_field(i8* %"$execptr_load_1430", i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$funded_1429", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_85", i32 0, i8* null, i32 1), !dbg !268 + %"$f_1432" = bitcast i8* %"$f_call_1431" to %TName_Bool* + store %TName_Bool* %"$f_1432", %TName_Bool** %f, align 8 + %"$f_1433" = load %TName_Bool*, %TName_Bool** %f, align 8 + %"$$f_1433_1434" = bitcast %TName_Bool* %"$f_1433" to i8* + %"$_literal_cost_call_1435" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_85", i8* %"$$f_1433_1434") + %"$gasadd_1436" = add i64 %"$_literal_cost_call_1435", 0 + %"$gasrem_1437" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1438" = icmp ugt i64 %"$gasadd_1436", %"$gasrem_1437" + br i1 %"$gascmp_1438", label %"$out_of_gas_1439", label %"$have_gas_1440" + +"$out_of_gas_1439": ; preds = %"$have_gas_1427" + call void @_out_of_gas() + br label %"$have_gas_1440" + +"$have_gas_1440": ; preds = %"$out_of_gas_1439", %"$have_gas_1427" + %"$consume_1441" = sub i64 %"$gasrem_1437", %"$gasadd_1436" + store i64 %"$consume_1441", i64* @_gasrem, align 8 + %"$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 = %"$have_gas_1440" + call void @_out_of_gas() + br label %"$have_gas_1445" + +"$have_gas_1445": ; preds = %"$out_of_gas_1444", %"$have_gas_1440" + %"$consume_1446" = sub i64 %"$gasrem_1442", 1 + store i64 %"$consume_1446", i64* @_gasrem, align 8 %c1 = alloca %TName_Bool*, align 8 - %"$gasrem_1431" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1432" = icmp ugt i64 8, %"$gasrem_1431" - br i1 %"$gascmp_1432", label %"$out_of_gas_1433", label %"$have_gas_1434" - -"$out_of_gas_1433": ; preds = %"$have_gas_1428" - call void @_out_of_gas() - br label %"$have_gas_1434" - -"$have_gas_1434": ; preds = %"$out_of_gas_1433", %"$have_gas_1428" - %"$consume_1435" = sub i64 %"$gasrem_1431", 8 - store i64 %"$consume_1435", i64* @_gasrem, align 8 - %"$execptr_load_1436" = load i8*, i8** @_execptr, align 8 - %"$bal_1437" = load %Uint128, %Uint128* %bal, align 8 - %"$goal_1438" = load %Uint128, %Uint128* @_cparam_goal, align 8 - %"$lt_call_1439" = call %TName_Bool* @_lt_Uint128(i8* %"$execptr_load_1436", %Uint128 %"$bal_1437", %Uint128 %"$goal_1438"), !dbg !141 - store %TName_Bool* %"$lt_call_1439", %TName_Bool** %c1, 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_1434" - call void @_out_of_gas() - br label %"$have_gas_1444" - -"$have_gas_1444": ; preds = %"$out_of_gas_1443", %"$have_gas_1434" - %"$consume_1445" = sub i64 %"$gasrem_1441", 1 - store i64 %"$consume_1445", i64* @_gasrem, align 8 - %c2 = 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 - %"$execptr_load_1451" = load i8*, i8** @_execptr, align 8 - %"$bs_1452" = load %Map_ByStr20_Uint128*, %Map_ByStr20_Uint128** %bs, align 8 - %"$$bs_1452_1453" = bitcast %Map_ByStr20_Uint128* %"$bs_1452" to i8* - %"$contains__sender_1454" = alloca [20 x i8], align 1 - store [20 x i8] %_sender, [20 x i8]* %"$contains__sender_1454", align 1 - %"$$contains__sender_1454_1455" = bitcast [20 x i8]* %"$contains__sender_1454" to i8* - %"$contains_call_1456" = call %TName_Bool* @_contains(i8* %"$execptr_load_1451", %_TyDescrTy_Typ* @"$TyDescr_Map_87", i8* %"$$bs_1452_1453", i8* %"$$contains__sender_1454_1455"), !dbg !142 - store %TName_Bool* %"$contains_call_1456", %TName_Bool** %c2, align 8, !dbg !142 + call void @llvm.dbg.declare(metadata %TName_Bool** %c1, metadata !269, metadata !DIExpression()), !dbg !270 + %"$gasrem_1448" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1449" = icmp ugt i64 8, %"$gasrem_1448" + br i1 %"$gascmp_1449", label %"$out_of_gas_1450", label %"$have_gas_1451" + +"$out_of_gas_1450": ; preds = %"$have_gas_1445" + call void @_out_of_gas() + br label %"$have_gas_1451" + +"$have_gas_1451": ; preds = %"$out_of_gas_1450", %"$have_gas_1445" + %"$consume_1452" = sub i64 %"$gasrem_1448", 8 + store i64 %"$consume_1452", i64* @_gasrem, align 8 + %"$execptr_load_1453" = load i8*, i8** @_execptr, align 8 + %"$bal_1454" = load %Uint128, %Uint128* %bal, align 8 + %"$goal_1455" = load %Uint128, %Uint128* @_cparam_goal, align 8 + %"$lt_call_1456" = call %TName_Bool* @_lt_Uint128(i8* %"$execptr_load_1453", %Uint128 %"$bal_1454", %Uint128 %"$goal_1455"), !dbg !271 + store %TName_Bool* %"$lt_call_1456", %TName_Bool** %c1, align 8, !dbg !271 %"$gasrem_1458" = load i64, i64* @_gasrem, align 8 %"$gascmp_1459" = icmp ugt i64 1, %"$gasrem_1458" br i1 %"$gascmp_1459", label %"$out_of_gas_1460", label %"$have_gas_1461" -"$out_of_gas_1460": ; preds = %"$have_gas_1449" +"$out_of_gas_1460": ; preds = %"$have_gas_1451" call void @_out_of_gas() br label %"$have_gas_1461" -"$have_gas_1461": ; preds = %"$out_of_gas_1460", %"$have_gas_1449" +"$have_gas_1461": ; preds = %"$out_of_gas_1460", %"$have_gas_1451" %"$consume_1462" = sub i64 %"$gasrem_1458", 1 store i64 %"$consume_1462", i64* @_gasrem, align 8 - %c3 = alloca %TName_Bool*, align 8 + %c2 = alloca %TName_Bool*, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %c2, metadata !272, metadata !DIExpression()), !dbg !273 %"$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" @@ -2750,604 +2832,649 @@ entry: "$have_gas_1466": ; preds = %"$out_of_gas_1465", %"$have_gas_1461" %"$consume_1467" = sub i64 %"$gasrem_1463", 1 store i64 %"$consume_1467", i64* @_gasrem, align 8 + %"$execptr_load_1468" = load i8*, i8** @_execptr, align 8 + %"$bs_1469" = load %Map_ByStr20_Uint128*, %Map_ByStr20_Uint128** %bs, align 8 + %"$$bs_1469_1470" = bitcast %Map_ByStr20_Uint128* %"$bs_1469" to i8* + %"$contains__sender_1471" = alloca [20 x i8], align 1 + store [20 x i8] %_sender, [20 x i8]* %"$contains__sender_1471", align 1 + %"$$contains__sender_1471_1472" = bitcast [20 x i8]* %"$contains__sender_1471" to i8* + %"$contains_call_1473" = call %TName_Bool* @_contains(i8* %"$execptr_load_1468", %_TyDescrTy_Typ* @"$TyDescr_Map_87", i8* %"$$bs_1469_1470", i8* %"$$contains__sender_1471_1472"), !dbg !274 + store %TName_Bool* %"$contains_call_1473", %TName_Bool** %c2, align 8, !dbg !274 + %"$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" + +"$out_of_gas_1477": ; preds = %"$have_gas_1466" + call void @_out_of_gas() + br label %"$have_gas_1478" + +"$have_gas_1478": ; preds = %"$out_of_gas_1477", %"$have_gas_1466" + %"$consume_1479" = sub i64 %"$gasrem_1475", 1 + store i64 %"$consume_1479", i64* @_gasrem, align 8 + %c3 = alloca %TName_Bool*, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %c3, metadata !275, metadata !DIExpression()), !dbg !276 + %"$gasrem_1480" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1481" = icmp ugt i64 1, %"$gasrem_1480" + br i1 %"$gascmp_1481", label %"$out_of_gas_1482", label %"$have_gas_1483" + +"$out_of_gas_1482": ; preds = %"$have_gas_1478" + call void @_out_of_gas() + br label %"$have_gas_1483" + +"$have_gas_1483": ; preds = %"$out_of_gas_1482", %"$have_gas_1478" + %"$consume_1484" = sub i64 %"$gasrem_1480", 1 + store i64 %"$consume_1484", i64* @_gasrem, align 8 %"$BoolUtils.negb_21" = alloca %TName_Bool*, align 8 - %"$BoolUtils.negb_1468" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* @BoolUtils.negb, align 8 - %"$BoolUtils.negb_fptr_1469" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.negb_1468", 0 - %"$BoolUtils.negb_envptr_1470" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.negb_1468", 1 - %"$f_1471" = load %TName_Bool*, %TName_Bool** %f, align 8 - %"$BoolUtils.negb_call_1472" = call %TName_Bool* %"$BoolUtils.negb_fptr_1469"(i8* %"$BoolUtils.negb_envptr_1470", %TName_Bool* %"$f_1471"), !dbg !143 - store %TName_Bool* %"$BoolUtils.negb_call_1472", %TName_Bool** %"$BoolUtils.negb_21", align 8, !dbg !143 - %"$$BoolUtils.negb_21_1473" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.negb_21", align 8 - store %TName_Bool* %"$$BoolUtils.negb_21_1473", %TName_Bool** %c3, align 8, !dbg !143 - %"$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_1476": ; preds = %"$have_gas_1466" - call void @_out_of_gas() - br label %"$have_gas_1477" - -"$have_gas_1477": ; preds = %"$out_of_gas_1476", %"$have_gas_1466" - %"$consume_1478" = sub i64 %"$gasrem_1474", 1 - store i64 %"$consume_1478", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$BoolUtils.negb_21", metadata !277, metadata !DIExpression()), !dbg !278 + %"$BoolUtils.negb_1485" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* @BoolUtils.negb, align 8 + %"$BoolUtils.negb_fptr_1486" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.negb_1485", 0 + %"$BoolUtils.negb_envptr_1487" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.negb_1485", 1 + %"$f_1488" = load %TName_Bool*, %TName_Bool** %f, align 8 + %"$BoolUtils.negb_call_1489" = call %TName_Bool* %"$BoolUtils.negb_fptr_1486"(i8* %"$BoolUtils.negb_envptr_1487", %TName_Bool* %"$f_1488"), !dbg !278 + store %TName_Bool* %"$BoolUtils.negb_call_1489", %TName_Bool** %"$BoolUtils.negb_21", align 8, !dbg !278 + %"$$BoolUtils.negb_21_1490" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.negb_21", align 8 + store %TName_Bool* %"$$BoolUtils.negb_21_1490", %TName_Bool** %c3, align 8, !dbg !278 + %"$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" + +"$out_of_gas_1493": ; preds = %"$have_gas_1483" + call void @_out_of_gas() + br label %"$have_gas_1494" + +"$have_gas_1494": ; preds = %"$out_of_gas_1493", %"$have_gas_1483" + %"$consume_1495" = sub i64 %"$gasrem_1491", 1 + store i64 %"$consume_1495", i64* @_gasrem, align 8 %c4 = alloca %TName_Bool*, align 8 - %"$gasrem_1479" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1480" = icmp ugt i64 1, %"$gasrem_1479" - br i1 %"$gascmp_1480", label %"$out_of_gas_1481", label %"$have_gas_1482" + call void @llvm.dbg.declare(metadata %TName_Bool** %c4, metadata !279, metadata !DIExpression()), !dbg !280 + %"$gasrem_1496" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1497" = icmp ugt i64 1, %"$gasrem_1496" + br i1 %"$gascmp_1497", label %"$out_of_gas_1498", label %"$have_gas_1499" -"$out_of_gas_1481": ; preds = %"$have_gas_1477" +"$out_of_gas_1498": ; preds = %"$have_gas_1494" call void @_out_of_gas() - br label %"$have_gas_1482" + br label %"$have_gas_1499" -"$have_gas_1482": ; preds = %"$out_of_gas_1481", %"$have_gas_1477" - %"$consume_1483" = sub i64 %"$gasrem_1479", 1 - store i64 %"$consume_1483", i64* @_gasrem, align 8 +"$have_gas_1499": ; preds = %"$out_of_gas_1498", %"$have_gas_1494" + %"$consume_1500" = sub i64 %"$gasrem_1496", 1 + store i64 %"$consume_1500", i64* @_gasrem, align 8 %"$BoolUtils.andb_19" = alloca { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, align 8 - %"$BoolUtils.andb_1484" = 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_1485" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_1484", 0 - %"$BoolUtils.andb_envptr_1486" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_1484", 1 - %"$c1_1487" = load %TName_Bool*, %TName_Bool** %c1, align 8 - %"$BoolUtils.andb_call_1488" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_1485"(i8* %"$BoolUtils.andb_envptr_1486", %TName_Bool* %"$c1_1487"), !dbg !144 - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_1488", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_19", align 8, !dbg !144 + %"$BoolUtils.andb_1501" = 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_1502" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_1501", 0 + %"$BoolUtils.andb_envptr_1503" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_1501", 1 + %"$c1_1504" = load %TName_Bool*, %TName_Bool** %c1, align 8 + %"$BoolUtils.andb_call_1505" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_1502"(i8* %"$BoolUtils.andb_envptr_1503", %TName_Bool* %"$c1_1504"), !dbg !281 + store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_1505", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_19", align 8, !dbg !281 %"$BoolUtils.andb_20" = alloca %TName_Bool*, align 8 - %"$$BoolUtils.andb_19_1489" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_19", align 8 - %"$$BoolUtils.andb_19_fptr_1490" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_19_1489", 0 - %"$$BoolUtils.andb_19_envptr_1491" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_19_1489", 1 - %"$c2_1492" = load %TName_Bool*, %TName_Bool** %c2, align 8 - %"$$BoolUtils.andb_19_call_1493" = call %TName_Bool* %"$$BoolUtils.andb_19_fptr_1490"(i8* %"$$BoolUtils.andb_19_envptr_1491", %TName_Bool* %"$c2_1492"), !dbg !144 - store %TName_Bool* %"$$BoolUtils.andb_19_call_1493", %TName_Bool** %"$BoolUtils.andb_20", align 8, !dbg !144 - %"$$BoolUtils.andb_20_1494" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_20", align 8 - store %TName_Bool* %"$$BoolUtils.andb_20_1494", %TName_Bool** %c4, align 8, !dbg !144 - %"$gasrem_1495" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1496" = icmp ugt i64 1, %"$gasrem_1495" - br i1 %"$gascmp_1496", label %"$out_of_gas_1497", label %"$have_gas_1498" - -"$out_of_gas_1497": ; preds = %"$have_gas_1482" - call void @_out_of_gas() - br label %"$have_gas_1498" - -"$have_gas_1498": ; preds = %"$out_of_gas_1497", %"$have_gas_1482" - %"$consume_1499" = sub i64 %"$gasrem_1495", 1 - store i64 %"$consume_1499", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$BoolUtils.andb_20", metadata !282, metadata !DIExpression()), !dbg !281 + %"$$BoolUtils.andb_19_1506" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_19", align 8 + %"$$BoolUtils.andb_19_fptr_1507" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_19_1506", 0 + %"$$BoolUtils.andb_19_envptr_1508" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_19_1506", 1 + %"$c2_1509" = load %TName_Bool*, %TName_Bool** %c2, align 8 + %"$$BoolUtils.andb_19_call_1510" = call %TName_Bool* %"$$BoolUtils.andb_19_fptr_1507"(i8* %"$$BoolUtils.andb_19_envptr_1508", %TName_Bool* %"$c2_1509"), !dbg !281 + store %TName_Bool* %"$$BoolUtils.andb_19_call_1510", %TName_Bool** %"$BoolUtils.andb_20", align 8, !dbg !281 + %"$$BoolUtils.andb_20_1511" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_20", align 8 + store %TName_Bool* %"$$BoolUtils.andb_20_1511", %TName_Bool** %c4, align 8, !dbg !281 + %"$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 = %"$have_gas_1499" + call void @_out_of_gas() + br label %"$have_gas_1515" + +"$have_gas_1515": ; preds = %"$out_of_gas_1514", %"$have_gas_1499" + %"$consume_1516" = sub i64 %"$gasrem_1512", 1 + store i64 %"$consume_1516", i64* @_gasrem, align 8 %c5 = alloca %TName_Bool*, align 8 - %"$gasrem_1500" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1501" = icmp ugt i64 1, %"$gasrem_1500" - br i1 %"$gascmp_1501", label %"$out_of_gas_1502", label %"$have_gas_1503" + call void @llvm.dbg.declare(metadata %TName_Bool** %c5, metadata !283, metadata !DIExpression()), !dbg !284 + %"$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" -"$out_of_gas_1502": ; preds = %"$have_gas_1498" +"$out_of_gas_1519": ; preds = %"$have_gas_1515" call void @_out_of_gas() - br label %"$have_gas_1503" + br label %"$have_gas_1520" -"$have_gas_1503": ; preds = %"$out_of_gas_1502", %"$have_gas_1498" - %"$consume_1504" = sub i64 %"$gasrem_1500", 1 - store i64 %"$consume_1504", i64* @_gasrem, align 8 +"$have_gas_1520": ; preds = %"$out_of_gas_1519", %"$have_gas_1515" + %"$consume_1521" = sub i64 %"$gasrem_1517", 1 + store i64 %"$consume_1521", i64* @_gasrem, align 8 %"$BoolUtils.andb_17" = alloca { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, align 8 - %"$BoolUtils.andb_1505" = 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_1506" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_1505", 0 - %"$BoolUtils.andb_envptr_1507" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_1505", 1 - %"$c3_1508" = load %TName_Bool*, %TName_Bool** %c3, align 8 - %"$BoolUtils.andb_call_1509" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_1506"(i8* %"$BoolUtils.andb_envptr_1507", %TName_Bool* %"$c3_1508"), !dbg !145 - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_1509", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_17", align 8, !dbg !145 + %"$BoolUtils.andb_1522" = 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_1523" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_1522", 0 + %"$BoolUtils.andb_envptr_1524" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_1522", 1 + %"$c3_1525" = load %TName_Bool*, %TName_Bool** %c3, align 8 + %"$BoolUtils.andb_call_1526" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_1523"(i8* %"$BoolUtils.andb_envptr_1524", %TName_Bool* %"$c3_1525"), !dbg !285 + store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_1526", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_17", align 8, !dbg !285 %"$BoolUtils.andb_18" = alloca %TName_Bool*, align 8 - %"$$BoolUtils.andb_17_1510" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_17", align 8 - %"$$BoolUtils.andb_17_fptr_1511" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_17_1510", 0 - %"$$BoolUtils.andb_17_envptr_1512" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_17_1510", 1 - %"$c4_1513" = load %TName_Bool*, %TName_Bool** %c4, align 8 - %"$$BoolUtils.andb_17_call_1514" = call %TName_Bool* %"$$BoolUtils.andb_17_fptr_1511"(i8* %"$$BoolUtils.andb_17_envptr_1512", %TName_Bool* %"$c4_1513"), !dbg !145 - store %TName_Bool* %"$$BoolUtils.andb_17_call_1514", %TName_Bool** %"$BoolUtils.andb_18", align 8, !dbg !145 - %"$$BoolUtils.andb_18_1515" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_18", align 8 - store %TName_Bool* %"$$BoolUtils.andb_18_1515", %TName_Bool** %c5, align 8, !dbg !145 - %"$gasrem_1516" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1517" = icmp ugt i64 2, %"$gasrem_1516" - br i1 %"$gascmp_1517", label %"$out_of_gas_1518", label %"$have_gas_1519" - -"$out_of_gas_1518": ; preds = %"$have_gas_1503" - call void @_out_of_gas() - br label %"$have_gas_1519" - -"$have_gas_1519": ; preds = %"$out_of_gas_1518", %"$have_gas_1503" - %"$consume_1520" = sub i64 %"$gasrem_1516", 2 - store i64 %"$consume_1520", i64* @_gasrem, align 8 - %"$c5_1522" = load %TName_Bool*, %TName_Bool** %c5, align 8 - %"$c5_tag_1523" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$c5_1522", i32 0, i32 0 - %"$c5_tag_1524" = load i8, i8* %"$c5_tag_1523", align 1 - switch i8 %"$c5_tag_1524", label %"$empty_default_1525" [ - i8 1, label %"$False_1526" - i8 0, label %"$True_1580" - ], !dbg !146 - -"$False_1526": ; preds = %"$have_gas_1519" - %"$c5_1527" = bitcast %TName_Bool* %"$c5_1522" to %CName_False* - %"$gasrem_1528" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1529" = icmp ugt i64 1, %"$gasrem_1528" - br i1 %"$gascmp_1529", label %"$out_of_gas_1530", label %"$have_gas_1531" - -"$out_of_gas_1530": ; preds = %"$False_1526" - call void @_out_of_gas() - br label %"$have_gas_1531" - -"$have_gas_1531": ; preds = %"$out_of_gas_1530", %"$False_1526" - %"$consume_1532" = sub i64 %"$gasrem_1528", 1 - store i64 %"$consume_1532", i64* @_gasrem, align 8 - %e1 = alloca i8*, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$BoolUtils.andb_18", metadata !286, metadata !DIExpression()), !dbg !285 + %"$$BoolUtils.andb_17_1527" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_17", align 8 + %"$$BoolUtils.andb_17_fptr_1528" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_17_1527", 0 + %"$$BoolUtils.andb_17_envptr_1529" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_17_1527", 1 + %"$c4_1530" = load %TName_Bool*, %TName_Bool** %c4, align 8 + %"$$BoolUtils.andb_17_call_1531" = call %TName_Bool* %"$$BoolUtils.andb_17_fptr_1528"(i8* %"$$BoolUtils.andb_17_envptr_1529", %TName_Bool* %"$c4_1530"), !dbg !285 + store %TName_Bool* %"$$BoolUtils.andb_17_call_1531", %TName_Bool** %"$BoolUtils.andb_18", align 8, !dbg !285 + %"$$BoolUtils.andb_18_1532" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_18", align 8 + store %TName_Bool* %"$$BoolUtils.andb_18_1532", %TName_Bool** %c5, align 8, !dbg !285 %"$gasrem_1533" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1534" = icmp ugt i64 1, %"$gasrem_1533" + %"$gascmp_1534" = icmp ugt i64 2, %"$gasrem_1533" br i1 %"$gascmp_1534", label %"$out_of_gas_1535", label %"$have_gas_1536" -"$out_of_gas_1535": ; preds = %"$have_gas_1531" +"$out_of_gas_1535": ; preds = %"$have_gas_1520" call void @_out_of_gas() br label %"$have_gas_1536" -"$have_gas_1536": ; preds = %"$out_of_gas_1535", %"$have_gas_1531" - %"$consume_1537" = sub i64 %"$gasrem_1533", 1 +"$have_gas_1536": ; preds = %"$out_of_gas_1535", %"$have_gas_1520" + %"$consume_1537" = sub i64 %"$gasrem_1533", 2 store i64 %"$consume_1537", i64* @_gasrem, align 8 - %"$msgobj_1538_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$msgobj_1538_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_1538_salloc_load", i64 153) - %"$msgobj_1538_salloc" = bitcast i8* %"$msgobj_1538_salloc_salloc" to [153 x i8]* - %"$msgobj_1538" = bitcast [153 x i8]* %"$msgobj_1538_salloc" to i8* - store i8 4, i8* %"$msgobj_1538", align 1 - %"$msgobj_fname_1540" = getelementptr i8, i8* %"$msgobj_1538", i32 1 - %"$msgobj_fname_1541" = bitcast i8* %"$msgobj_fname_1540" to %String* - store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_1539", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_1541", align 8 - %"$msgobj_td_1542" = getelementptr i8, i8* %"$msgobj_1538", i32 17 - %"$msgobj_td_1543" = bitcast i8* %"$msgobj_td_1542" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_String_64", %_TyDescrTy_Typ** %"$msgobj_td_1543", align 8 - %"$msgobj_v_1545" = getelementptr i8, i8* %"$msgobj_1538", i32 25 - %"$msgobj_v_1546" = bitcast i8* %"$msgobj_v_1545" to %String* - store %String { i8* getelementptr inbounds ([16 x i8], [16 x i8]* @"$stringlit_1544", i32 0, i32 0), i32 16 }, %String* %"$msgobj_v_1546", align 8 - %"$msgobj_fname_1548" = getelementptr i8, i8* %"$msgobj_1538", i32 41 - %"$msgobj_fname_1549" = bitcast i8* %"$msgobj_fname_1548" to %String* - store %String { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$stringlit_1547", i32 0, i32 0), i32 6 }, %String* %"$msgobj_fname_1549", align 8 - %"$msgobj_td_1550" = getelementptr i8, i8* %"$msgobj_1538", i32 57 - %"$msgobj_td_1551" = bitcast i8* %"$msgobj_td_1550" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_78", %_TyDescrTy_Typ** %"$msgobj_td_1551", align 8 - %"$msgobj_v_1552" = getelementptr i8, i8* %"$msgobj_1538", i32 65 - %"$msgobj_v_1553" = bitcast i8* %"$msgobj_v_1552" to [20 x i8]* - store [20 x i8] %_sender, [20 x i8]* %"$msgobj_v_1553", align 1 - %"$msgobj_fname_1555" = getelementptr i8, i8* %"$msgobj_1538", i32 85 - %"$msgobj_fname_1556" = bitcast i8* %"$msgobj_fname_1555" to %String* - store %String { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$stringlit_1554", i32 0, i32 0), i32 6 }, %String* %"$msgobj_fname_1556", align 8 - %"$msgobj_td_1557" = getelementptr i8, i8* %"$msgobj_1538", i32 101 - %"$msgobj_td_1558" = bitcast i8* %"$msgobj_td_1557" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Uint128_58", %_TyDescrTy_Typ** %"$msgobj_td_1558", align 8 - %"$msgobj_v_1559" = getelementptr i8, i8* %"$msgobj_1538", i32 109 - %"$msgobj_v_1560" = bitcast i8* %"$msgobj_v_1559" to %Uint128* - store %Uint128 zeroinitializer, %Uint128* %"$msgobj_v_1560", align 8 - %"$msgobj_fname_1562" = getelementptr i8, i8* %"$msgobj_1538", i32 125 - %"$msgobj_fname_1563" = bitcast i8* %"$msgobj_fname_1562" to %String* - store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_1561", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_1563", align 8 - %"$msgobj_td_1564" = getelementptr i8, i8* %"$msgobj_1538", i32 141 - %"$msgobj_td_1565" = bitcast i8* %"$msgobj_td_1564" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Int32_48", %_TyDescrTy_Typ** %"$msgobj_td_1565", align 8 - %"$crowdfunding.cannot_reclaim_code_1566" = load %Int32, %Int32* @crowdfunding.cannot_reclaim_code, align 4 - %"$msgobj_v_1567" = getelementptr i8, i8* %"$msgobj_1538", i32 149 - %"$msgobj_v_1568" = bitcast i8* %"$msgobj_v_1567" to %Int32* - store %Int32 %"$crowdfunding.cannot_reclaim_code_1566", %Int32* %"$msgobj_v_1568", align 4 - store i8* %"$msgobj_1538", i8** %e1, align 8, !dbg !147 - %"$e_1570" = load i8*, i8** %e1, align 8 - %"$_literal_cost_call_1572" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Event_70", i8* %"$e_1570") - %"$gasrem_1573" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1574" = icmp ugt i64 %"$_literal_cost_call_1572", %"$gasrem_1573" - br i1 %"$gascmp_1574", label %"$out_of_gas_1575", label %"$have_gas_1576" - -"$out_of_gas_1575": ; preds = %"$have_gas_1536" - call void @_out_of_gas() - br label %"$have_gas_1576" - -"$have_gas_1576": ; preds = %"$out_of_gas_1575", %"$have_gas_1536" - %"$consume_1577" = sub i64 %"$gasrem_1573", %"$_literal_cost_call_1572" - store i64 %"$consume_1577", i64* @_gasrem, align 8 - %"$execptr_load_1578" = load i8*, i8** @_execptr, align 8 - %"$e_1579" = load i8*, i8** %e1, align 8 - call void @_event(i8* %"$execptr_load_1578", %_TyDescrTy_Typ* @"$TyDescr_Event_70", i8* %"$e_1579"), !dbg !150 - br label %"$matchsucc_1521" - -"$True_1580": ; preds = %"$have_gas_1519" - %"$c5_1581" = bitcast %TName_Bool* %"$c5_1522" to %CName_True* - %"$gasrem_1582" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1583" = icmp ugt i64 1, %"$gasrem_1582" - br i1 %"$gascmp_1583", label %"$out_of_gas_1584", label %"$have_gas_1585" - -"$out_of_gas_1584": ; preds = %"$True_1580" - call void @_out_of_gas() - br label %"$have_gas_1585" - -"$have_gas_1585": ; preds = %"$out_of_gas_1584", %"$True_1580" - %"$consume_1586" = sub i64 %"$gasrem_1582", 1 - store i64 %"$consume_1586", i64* @_gasrem, align 8 - %res = alloca %TName_Option_Uint128*, align 8 - %"$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 = %"$have_gas_1585" - call void @_out_of_gas() - br label %"$have_gas_1590" - -"$have_gas_1590": ; preds = %"$out_of_gas_1589", %"$have_gas_1585" - %"$consume_1591" = sub i64 %"$gasrem_1587", 1 - store i64 %"$consume_1591", i64* @_gasrem, align 8 - %"$execptr_load_1592" = load i8*, i8** @_execptr, align 8 - %"$bs_1593" = load %Map_ByStr20_Uint128*, %Map_ByStr20_Uint128** %bs, align 8 - %"$$bs_1593_1594" = bitcast %Map_ByStr20_Uint128* %"$bs_1593" to i8* - %"$get__sender_1595" = alloca [20 x i8], align 1 - store [20 x i8] %_sender, [20 x i8]* %"$get__sender_1595", align 1 - %"$$get__sender_1595_1596" = bitcast [20 x i8]* %"$get__sender_1595" to i8* - %"$get_call_1597" = call i8* @_get(i8* %"$execptr_load_1592", %_TyDescrTy_Typ* @"$TyDescr_Map_87", i8* %"$$bs_1593_1594", i8* %"$$get__sender_1595_1596"), !dbg !151 - %"$get_1598" = bitcast i8* %"$get_call_1597" to %TName_Option_Uint128* - store %TName_Option_Uint128* %"$get_1598", %TName_Option_Uint128** %res, align 8, !dbg !151 + %"$c5_1539" = load %TName_Bool*, %TName_Bool** %c5, align 8 + %"$c5_tag_1540" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$c5_1539", i32 0, i32 0 + %"$c5_tag_1541" = load i8, i8* %"$c5_tag_1540", align 1 + switch i8 %"$c5_tag_1541", label %"$empty_default_1542" [ + i8 1, label %"$False_1543" + i8 0, label %"$True_1597" + ], !dbg !287 + +"$False_1543": ; preds = %"$have_gas_1536" + %"$c5_1544" = bitcast %TName_Bool* %"$c5_1539" to %CName_False* + %"$gasrem_1545" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1546" = icmp ugt i64 1, %"$gasrem_1545" + br i1 %"$gascmp_1546", label %"$out_of_gas_1547", label %"$have_gas_1548" + +"$out_of_gas_1547": ; preds = %"$False_1543" + call void @_out_of_gas() + br label %"$have_gas_1548" + +"$have_gas_1548": ; preds = %"$out_of_gas_1547", %"$False_1543" + %"$consume_1549" = sub i64 %"$gasrem_1545", 1 + store i64 %"$consume_1549", i64* @_gasrem, align 8 + %e1 = alloca i8*, align 8 + call void @llvm.dbg.declare(metadata i8** %e1, metadata !288, metadata !DIExpression()), !dbg !291 + %"$gasrem_1550" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1551" = icmp ugt i64 1, %"$gasrem_1550" + br i1 %"$gascmp_1551", label %"$out_of_gas_1552", label %"$have_gas_1553" + +"$out_of_gas_1552": ; preds = %"$have_gas_1548" + call void @_out_of_gas() + br label %"$have_gas_1553" + +"$have_gas_1553": ; preds = %"$out_of_gas_1552", %"$have_gas_1548" + %"$consume_1554" = sub i64 %"$gasrem_1550", 1 + store i64 %"$consume_1554", i64* @_gasrem, align 8 + %"$msgobj_1555_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$msgobj_1555_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_1555_salloc_load", i64 153) + %"$msgobj_1555_salloc" = bitcast i8* %"$msgobj_1555_salloc_salloc" to [153 x i8]* + %"$msgobj_1555" = bitcast [153 x i8]* %"$msgobj_1555_salloc" to i8* + store i8 4, i8* %"$msgobj_1555", align 1 + %"$msgobj_fname_1557" = getelementptr i8, i8* %"$msgobj_1555", i32 1 + %"$msgobj_fname_1558" = bitcast i8* %"$msgobj_fname_1557" to %String* + store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_1556", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_1558", align 8 + %"$msgobj_td_1559" = getelementptr i8, i8* %"$msgobj_1555", i32 17 + %"$msgobj_td_1560" = bitcast i8* %"$msgobj_td_1559" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_String_64", %_TyDescrTy_Typ** %"$msgobj_td_1560", align 8 + %"$msgobj_v_1562" = getelementptr i8, i8* %"$msgobj_1555", i32 25 + %"$msgobj_v_1563" = bitcast i8* %"$msgobj_v_1562" to %String* + store %String { i8* getelementptr inbounds ([16 x i8], [16 x i8]* @"$stringlit_1561", i32 0, i32 0), i32 16 }, %String* %"$msgobj_v_1563", align 8 + %"$msgobj_fname_1565" = getelementptr i8, i8* %"$msgobj_1555", i32 41 + %"$msgobj_fname_1566" = bitcast i8* %"$msgobj_fname_1565" to %String* + store %String { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$stringlit_1564", i32 0, i32 0), i32 6 }, %String* %"$msgobj_fname_1566", align 8 + %"$msgobj_td_1567" = getelementptr i8, i8* %"$msgobj_1555", i32 57 + %"$msgobj_td_1568" = bitcast i8* %"$msgobj_td_1567" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_78", %_TyDescrTy_Typ** %"$msgobj_td_1568", align 8 + %"$msgobj_v_1569" = getelementptr i8, i8* %"$msgobj_1555", i32 65 + %"$msgobj_v_1570" = bitcast i8* %"$msgobj_v_1569" to [20 x i8]* + store [20 x i8] %_sender, [20 x i8]* %"$msgobj_v_1570", align 1 + %"$msgobj_fname_1572" = getelementptr i8, i8* %"$msgobj_1555", i32 85 + %"$msgobj_fname_1573" = bitcast i8* %"$msgobj_fname_1572" to %String* + store %String { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$stringlit_1571", i32 0, i32 0), i32 6 }, %String* %"$msgobj_fname_1573", align 8 + %"$msgobj_td_1574" = getelementptr i8, i8* %"$msgobj_1555", i32 101 + %"$msgobj_td_1575" = bitcast i8* %"$msgobj_td_1574" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Uint128_58", %_TyDescrTy_Typ** %"$msgobj_td_1575", align 8 + %"$msgobj_v_1576" = getelementptr i8, i8* %"$msgobj_1555", i32 109 + %"$msgobj_v_1577" = bitcast i8* %"$msgobj_v_1576" to %Uint128* + store %Uint128 zeroinitializer, %Uint128* %"$msgobj_v_1577", align 8 + %"$msgobj_fname_1579" = getelementptr i8, i8* %"$msgobj_1555", i32 125 + %"$msgobj_fname_1580" = bitcast i8* %"$msgobj_fname_1579" to %String* + store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_1578", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_1580", align 8 + %"$msgobj_td_1581" = getelementptr i8, i8* %"$msgobj_1555", i32 141 + %"$msgobj_td_1582" = bitcast i8* %"$msgobj_td_1581" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Int32_48", %_TyDescrTy_Typ** %"$msgobj_td_1582", align 8 + %"$crowdfunding.cannot_reclaim_code_1583" = load %Int32, %Int32* @crowdfunding.cannot_reclaim_code, align 4 + %"$msgobj_v_1584" = getelementptr i8, i8* %"$msgobj_1555", i32 149 + %"$msgobj_v_1585" = bitcast i8* %"$msgobj_v_1584" to %Int32* + store %Int32 %"$crowdfunding.cannot_reclaim_code_1583", %Int32* %"$msgobj_v_1585", align 4 + store i8* %"$msgobj_1555", i8** %e1, align 8, !dbg !292 + %"$e_1587" = load i8*, i8** %e1, align 8 + %"$_literal_cost_call_1589" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Event_70", i8* %"$e_1587") + %"$gasrem_1590" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1591" = icmp ugt i64 %"$_literal_cost_call_1589", %"$gasrem_1590" + br i1 %"$gascmp_1591", label %"$out_of_gas_1592", label %"$have_gas_1593" + +"$out_of_gas_1592": ; preds = %"$have_gas_1553" + call void @_out_of_gas() + br label %"$have_gas_1593" + +"$have_gas_1593": ; preds = %"$out_of_gas_1592", %"$have_gas_1553" + %"$consume_1594" = sub i64 %"$gasrem_1590", %"$_literal_cost_call_1589" + store i64 %"$consume_1594", i64* @_gasrem, align 8 + %"$execptr_load_1595" = load i8*, i8** @_execptr, align 8 + %"$e_1596" = load i8*, i8** %e1, align 8 + call void @_event(i8* %"$execptr_load_1595", %_TyDescrTy_Typ* @"$TyDescr_Event_70", i8* %"$e_1596"), !dbg !293 + br label %"$matchsucc_1538" + +"$True_1597": ; preds = %"$have_gas_1536" + %"$c5_1598" = bitcast %TName_Bool* %"$c5_1539" to %CName_True* %"$gasrem_1599" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1600" = icmp ugt i64 2, %"$gasrem_1599" + %"$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_1590" +"$out_of_gas_1601": ; preds = %"$True_1597" call void @_out_of_gas() br label %"$have_gas_1602" -"$have_gas_1602": ; preds = %"$out_of_gas_1601", %"$have_gas_1590" - %"$consume_1603" = sub i64 %"$gasrem_1599", 2 +"$have_gas_1602": ; preds = %"$out_of_gas_1601", %"$True_1597" + %"$consume_1603" = sub i64 %"$gasrem_1599", 1 store i64 %"$consume_1603", i64* @_gasrem, align 8 - %"$res_1605" = load %TName_Option_Uint128*, %TName_Option_Uint128** %res, align 8 - %"$res_tag_1606" = getelementptr inbounds %TName_Option_Uint128, %TName_Option_Uint128* %"$res_1605", i32 0, i32 0 - %"$res_tag_1607" = load i8, i8* %"$res_tag_1606", align 1 - switch i8 %"$res_tag_1607", label %"$empty_default_1608" [ - i8 1, label %"$None_1609" - i8 0, label %"$Some_1663" - ], !dbg !153 - -"$None_1609": ; preds = %"$have_gas_1602" - %"$res_1610" = bitcast %TName_Option_Uint128* %"$res_1605" to %CName_None_Uint128* - %"$gasrem_1611" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1612" = icmp ugt i64 1, %"$gasrem_1611" - br i1 %"$gascmp_1612", label %"$out_of_gas_1613", label %"$have_gas_1614" - -"$out_of_gas_1613": ; preds = %"$None_1609" - call void @_out_of_gas() - br label %"$have_gas_1614" - -"$have_gas_1614": ; preds = %"$out_of_gas_1613", %"$None_1609" - %"$consume_1615" = sub i64 %"$gasrem_1611", 1 - store i64 %"$consume_1615", i64* @_gasrem, align 8 - %e2 = alloca i8*, align 8 + %res = alloca %TName_Option_Uint128*, align 8 + call void @llvm.dbg.declare(metadata %TName_Option_Uint128** %res, metadata !294, metadata !DIExpression()), !dbg !298 + %"$gasrem_1604" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1605" = icmp ugt i64 1, %"$gasrem_1604" + br i1 %"$gascmp_1605", label %"$out_of_gas_1606", label %"$have_gas_1607" + +"$out_of_gas_1606": ; preds = %"$have_gas_1602" + call void @_out_of_gas() + br label %"$have_gas_1607" + +"$have_gas_1607": ; preds = %"$out_of_gas_1606", %"$have_gas_1602" + %"$consume_1608" = sub i64 %"$gasrem_1604", 1 + store i64 %"$consume_1608", i64* @_gasrem, align 8 + %"$execptr_load_1609" = load i8*, i8** @_execptr, align 8 + %"$bs_1610" = load %Map_ByStr20_Uint128*, %Map_ByStr20_Uint128** %bs, align 8 + %"$$bs_1610_1611" = bitcast %Map_ByStr20_Uint128* %"$bs_1610" to i8* + %"$get__sender_1612" = alloca [20 x i8], align 1 + store [20 x i8] %_sender, [20 x i8]* %"$get__sender_1612", align 1 + %"$$get__sender_1612_1613" = bitcast [20 x i8]* %"$get__sender_1612" to i8* + %"$get_call_1614" = call i8* @_get(i8* %"$execptr_load_1609", %_TyDescrTy_Typ* @"$TyDescr_Map_87", i8* %"$$bs_1610_1611", i8* %"$$get__sender_1612_1613"), !dbg !299 + %"$get_1615" = bitcast i8* %"$get_call_1614" to %TName_Option_Uint128* + store %TName_Option_Uint128* %"$get_1615", %TName_Option_Uint128** %res, align 8, !dbg !299 %"$gasrem_1616" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1617" = icmp ugt i64 1, %"$gasrem_1616" + %"$gascmp_1617" = icmp ugt i64 2, %"$gasrem_1616" br i1 %"$gascmp_1617", label %"$out_of_gas_1618", label %"$have_gas_1619" -"$out_of_gas_1618": ; preds = %"$have_gas_1614" +"$out_of_gas_1618": ; preds = %"$have_gas_1607" call void @_out_of_gas() br label %"$have_gas_1619" -"$have_gas_1619": ; preds = %"$out_of_gas_1618", %"$have_gas_1614" - %"$consume_1620" = sub i64 %"$gasrem_1616", 1 +"$have_gas_1619": ; preds = %"$out_of_gas_1618", %"$have_gas_1607" + %"$consume_1620" = sub i64 %"$gasrem_1616", 2 store i64 %"$consume_1620", i64* @_gasrem, align 8 - %"$msgobj_1621_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$msgobj_1621_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_1621_salloc_load", i64 153) - %"$msgobj_1621_salloc" = bitcast i8* %"$msgobj_1621_salloc_salloc" to [153 x i8]* - %"$msgobj_1621" = bitcast [153 x i8]* %"$msgobj_1621_salloc" to i8* - store i8 4, i8* %"$msgobj_1621", align 1 - %"$msgobj_fname_1623" = getelementptr i8, i8* %"$msgobj_1621", i32 1 - %"$msgobj_fname_1624" = bitcast i8* %"$msgobj_fname_1623" to %String* - store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_1622", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_1624", align 8 - %"$msgobj_td_1625" = getelementptr i8, i8* %"$msgobj_1621", i32 17 - %"$msgobj_td_1626" = bitcast i8* %"$msgobj_td_1625" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_String_64", %_TyDescrTy_Typ** %"$msgobj_td_1626", align 8 - %"$msgobj_v_1628" = getelementptr i8, i8* %"$msgobj_1621", i32 25 - %"$msgobj_v_1629" = bitcast i8* %"$msgobj_v_1628" to %String* - store %String { i8* getelementptr inbounds ([16 x i8], [16 x i8]* @"$stringlit_1627", i32 0, i32 0), i32 16 }, %String* %"$msgobj_v_1629", align 8 - %"$msgobj_fname_1631" = getelementptr i8, i8* %"$msgobj_1621", i32 41 - %"$msgobj_fname_1632" = bitcast i8* %"$msgobj_fname_1631" to %String* - store %String { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$stringlit_1630", i32 0, i32 0), i32 6 }, %String* %"$msgobj_fname_1632", align 8 - %"$msgobj_td_1633" = getelementptr i8, i8* %"$msgobj_1621", i32 57 - %"$msgobj_td_1634" = bitcast i8* %"$msgobj_td_1633" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_78", %_TyDescrTy_Typ** %"$msgobj_td_1634", align 8 - %"$msgobj_v_1635" = getelementptr i8, i8* %"$msgobj_1621", i32 65 - %"$msgobj_v_1636" = bitcast i8* %"$msgobj_v_1635" to [20 x i8]* - store [20 x i8] %_sender, [20 x i8]* %"$msgobj_v_1636", align 1 - %"$msgobj_fname_1638" = getelementptr i8, i8* %"$msgobj_1621", i32 85 - %"$msgobj_fname_1639" = bitcast i8* %"$msgobj_fname_1638" to %String* - store %String { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$stringlit_1637", i32 0, i32 0), i32 6 }, %String* %"$msgobj_fname_1639", align 8 - %"$msgobj_td_1640" = getelementptr i8, i8* %"$msgobj_1621", i32 101 - %"$msgobj_td_1641" = bitcast i8* %"$msgobj_td_1640" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Uint128_58", %_TyDescrTy_Typ** %"$msgobj_td_1641", align 8 - %"$msgobj_v_1642" = getelementptr i8, i8* %"$msgobj_1621", i32 109 - %"$msgobj_v_1643" = bitcast i8* %"$msgobj_v_1642" to %Uint128* - store %Uint128 zeroinitializer, %Uint128* %"$msgobj_v_1643", align 8 - %"$msgobj_fname_1645" = getelementptr i8, i8* %"$msgobj_1621", i32 125 - %"$msgobj_fname_1646" = bitcast i8* %"$msgobj_fname_1645" to %String* - store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_1644", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_1646", align 8 - %"$msgobj_td_1647" = getelementptr i8, i8* %"$msgobj_1621", i32 141 - %"$msgobj_td_1648" = bitcast i8* %"$msgobj_td_1647" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Int32_48", %_TyDescrTy_Typ** %"$msgobj_td_1648", align 8 - %"$crowdfunding.cannot_reclaim_code_1649" = load %Int32, %Int32* @crowdfunding.cannot_reclaim_code, align 4 - %"$msgobj_v_1650" = getelementptr i8, i8* %"$msgobj_1621", i32 149 - %"$msgobj_v_1651" = bitcast i8* %"$msgobj_v_1650" to %Int32* - store %Int32 %"$crowdfunding.cannot_reclaim_code_1649", %Int32* %"$msgobj_v_1651", align 4 - store i8* %"$msgobj_1621", i8** %e2, align 8, !dbg !154 - %"$e_1653" = load i8*, i8** %e2, align 8 - %"$_literal_cost_call_1655" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Event_70", i8* %"$e_1653") - %"$gasrem_1656" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1657" = icmp ugt i64 %"$_literal_cost_call_1655", %"$gasrem_1656" - br i1 %"$gascmp_1657", label %"$out_of_gas_1658", label %"$have_gas_1659" - -"$out_of_gas_1658": ; preds = %"$have_gas_1619" - call void @_out_of_gas() - br label %"$have_gas_1659" - -"$have_gas_1659": ; preds = %"$out_of_gas_1658", %"$have_gas_1619" - %"$consume_1660" = sub i64 %"$gasrem_1656", %"$_literal_cost_call_1655" - store i64 %"$consume_1660", i64* @_gasrem, align 8 - %"$execptr_load_1661" = load i8*, i8** @_execptr, align 8 - %"$e_1662" = load i8*, i8** %e2, align 8 - call void @_event(i8* %"$execptr_load_1661", %_TyDescrTy_Typ* @"$TyDescr_Event_70", i8* %"$e_1662"), !dbg !157 - br label %"$matchsucc_1604" - -"$Some_1663": ; preds = %"$have_gas_1602" - %"$res_1664" = bitcast %TName_Option_Uint128* %"$res_1605" to %CName_Some_Uint128* - %"$v_gep_1665" = getelementptr inbounds %CName_Some_Uint128, %CName_Some_Uint128* %"$res_1664", i32 0, i32 1 - %"$v_load_1666" = load %Uint128, %Uint128* %"$v_gep_1665", align 8 + %"$res_1622" = load %TName_Option_Uint128*, %TName_Option_Uint128** %res, align 8 + %"$res_tag_1623" = getelementptr inbounds %TName_Option_Uint128, %TName_Option_Uint128* %"$res_1622", i32 0, i32 0 + %"$res_tag_1624" = load i8, i8* %"$res_tag_1623", align 1 + switch i8 %"$res_tag_1624", label %"$empty_default_1625" [ + i8 1, label %"$None_1626" + i8 0, label %"$Some_1680" + ], !dbg !300 + +"$None_1626": ; preds = %"$have_gas_1619" + %"$res_1627" = bitcast %TName_Option_Uint128* %"$res_1622" to %CName_None_Uint128* + %"$gasrem_1628" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1629" = icmp ugt i64 1, %"$gasrem_1628" + br i1 %"$gascmp_1629", label %"$out_of_gas_1630", label %"$have_gas_1631" + +"$out_of_gas_1630": ; preds = %"$None_1626" + call void @_out_of_gas() + br label %"$have_gas_1631" + +"$have_gas_1631": ; preds = %"$out_of_gas_1630", %"$None_1626" + %"$consume_1632" = sub i64 %"$gasrem_1628", 1 + store i64 %"$consume_1632", i64* @_gasrem, align 8 + %e2 = alloca i8*, align 8 + call void @llvm.dbg.declare(metadata i8** %e2, metadata !301, metadata !DIExpression()), !dbg !304 + %"$gasrem_1633" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1634" = icmp ugt i64 1, %"$gasrem_1633" + br i1 %"$gascmp_1634", label %"$out_of_gas_1635", label %"$have_gas_1636" + +"$out_of_gas_1635": ; preds = %"$have_gas_1631" + call void @_out_of_gas() + br label %"$have_gas_1636" + +"$have_gas_1636": ; preds = %"$out_of_gas_1635", %"$have_gas_1631" + %"$consume_1637" = sub i64 %"$gasrem_1633", 1 + store i64 %"$consume_1637", i64* @_gasrem, align 8 + %"$msgobj_1638_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$msgobj_1638_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_1638_salloc_load", i64 153) + %"$msgobj_1638_salloc" = bitcast i8* %"$msgobj_1638_salloc_salloc" to [153 x i8]* + %"$msgobj_1638" = bitcast [153 x i8]* %"$msgobj_1638_salloc" to i8* + store i8 4, i8* %"$msgobj_1638", align 1 + %"$msgobj_fname_1640" = getelementptr i8, i8* %"$msgobj_1638", i32 1 + %"$msgobj_fname_1641" = bitcast i8* %"$msgobj_fname_1640" to %String* + store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_1639", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_1641", align 8 + %"$msgobj_td_1642" = getelementptr i8, i8* %"$msgobj_1638", i32 17 + %"$msgobj_td_1643" = bitcast i8* %"$msgobj_td_1642" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_String_64", %_TyDescrTy_Typ** %"$msgobj_td_1643", align 8 + %"$msgobj_v_1645" = getelementptr i8, i8* %"$msgobj_1638", i32 25 + %"$msgobj_v_1646" = bitcast i8* %"$msgobj_v_1645" to %String* + store %String { i8* getelementptr inbounds ([16 x i8], [16 x i8]* @"$stringlit_1644", i32 0, i32 0), i32 16 }, %String* %"$msgobj_v_1646", align 8 + %"$msgobj_fname_1648" = getelementptr i8, i8* %"$msgobj_1638", i32 41 + %"$msgobj_fname_1649" = bitcast i8* %"$msgobj_fname_1648" to %String* + store %String { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$stringlit_1647", i32 0, i32 0), i32 6 }, %String* %"$msgobj_fname_1649", align 8 + %"$msgobj_td_1650" = getelementptr i8, i8* %"$msgobj_1638", i32 57 + %"$msgobj_td_1651" = bitcast i8* %"$msgobj_td_1650" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_78", %_TyDescrTy_Typ** %"$msgobj_td_1651", align 8 + %"$msgobj_v_1652" = getelementptr i8, i8* %"$msgobj_1638", i32 65 + %"$msgobj_v_1653" = bitcast i8* %"$msgobj_v_1652" to [20 x i8]* + store [20 x i8] %_sender, [20 x i8]* %"$msgobj_v_1653", align 1 + %"$msgobj_fname_1655" = getelementptr i8, i8* %"$msgobj_1638", i32 85 + %"$msgobj_fname_1656" = bitcast i8* %"$msgobj_fname_1655" to %String* + store %String { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$stringlit_1654", i32 0, i32 0), i32 6 }, %String* %"$msgobj_fname_1656", align 8 + %"$msgobj_td_1657" = getelementptr i8, i8* %"$msgobj_1638", i32 101 + %"$msgobj_td_1658" = bitcast i8* %"$msgobj_td_1657" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Uint128_58", %_TyDescrTy_Typ** %"$msgobj_td_1658", align 8 + %"$msgobj_v_1659" = getelementptr i8, i8* %"$msgobj_1638", i32 109 + %"$msgobj_v_1660" = bitcast i8* %"$msgobj_v_1659" to %Uint128* + store %Uint128 zeroinitializer, %Uint128* %"$msgobj_v_1660", align 8 + %"$msgobj_fname_1662" = getelementptr i8, i8* %"$msgobj_1638", i32 125 + %"$msgobj_fname_1663" = bitcast i8* %"$msgobj_fname_1662" to %String* + store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_1661", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_1663", align 8 + %"$msgobj_td_1664" = getelementptr i8, i8* %"$msgobj_1638", i32 141 + %"$msgobj_td_1665" = bitcast i8* %"$msgobj_td_1664" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Int32_48", %_TyDescrTy_Typ** %"$msgobj_td_1665", align 8 + %"$crowdfunding.cannot_reclaim_code_1666" = load %Int32, %Int32* @crowdfunding.cannot_reclaim_code, align 4 + %"$msgobj_v_1667" = getelementptr i8, i8* %"$msgobj_1638", i32 149 + %"$msgobj_v_1668" = bitcast i8* %"$msgobj_v_1667" to %Int32* + store %Int32 %"$crowdfunding.cannot_reclaim_code_1666", %Int32* %"$msgobj_v_1668", align 4 + store i8* %"$msgobj_1638", i8** %e2, align 8, !dbg !305 + %"$e_1670" = load i8*, i8** %e2, align 8 + %"$_literal_cost_call_1672" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Event_70", i8* %"$e_1670") + %"$gasrem_1673" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1674" = icmp ugt i64 %"$_literal_cost_call_1672", %"$gasrem_1673" + br i1 %"$gascmp_1674", label %"$out_of_gas_1675", label %"$have_gas_1676" + +"$out_of_gas_1675": ; preds = %"$have_gas_1636" + call void @_out_of_gas() + br label %"$have_gas_1676" + +"$have_gas_1676": ; preds = %"$out_of_gas_1675", %"$have_gas_1636" + %"$consume_1677" = sub i64 %"$gasrem_1673", %"$_literal_cost_call_1672" + store i64 %"$consume_1677", i64* @_gasrem, align 8 + %"$execptr_load_1678" = load i8*, i8** @_execptr, align 8 + %"$e_1679" = load i8*, i8** %e2, align 8 + call void @_event(i8* %"$execptr_load_1678", %_TyDescrTy_Typ* @"$TyDescr_Event_70", i8* %"$e_1679"), !dbg !306 + br label %"$matchsucc_1621" + +"$Some_1680": ; preds = %"$have_gas_1619" + %"$res_1681" = bitcast %TName_Option_Uint128* %"$res_1622" to %CName_Some_Uint128* + %"$v_gep_1682" = getelementptr inbounds %CName_Some_Uint128, %CName_Some_Uint128* %"$res_1681", i32 0, i32 1 + %"$v_load_1683" = load %Uint128, %Uint128* %"$v_gep_1682", align 8 %v = alloca %Uint128, align 8 - store %Uint128 %"$v_load_1666", %Uint128* %v, align 8 - %"$gasrem_1667" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1668" = icmp ugt i64 1, %"$gasrem_1667" - br i1 %"$gascmp_1668", label %"$out_of_gas_1669", label %"$have_gas_1670" + store %Uint128 %"$v_load_1683", %Uint128* %v, align 8 + %"$gasrem_1684" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1685" = icmp ugt i64 1, %"$gasrem_1684" + br i1 %"$gascmp_1685", label %"$out_of_gas_1686", label %"$have_gas_1687" -"$out_of_gas_1669": ; preds = %"$Some_1663" +"$out_of_gas_1686": ; preds = %"$Some_1680" call void @_out_of_gas() - br label %"$have_gas_1670" + br label %"$have_gas_1687" -"$have_gas_1670": ; preds = %"$out_of_gas_1669", %"$Some_1663" - %"$consume_1671" = sub i64 %"$gasrem_1667", 1 - store i64 %"$consume_1671", i64* @_gasrem, align 8 +"$have_gas_1687": ; preds = %"$out_of_gas_1686", %"$Some_1680" + %"$consume_1688" = sub i64 %"$gasrem_1684", 1 + store i64 %"$consume_1688", i64* @_gasrem, align 8 %bs1 = alloca %Map_ByStr20_Uint128*, align 8 - %"$bs_1672" = load %Map_ByStr20_Uint128*, %Map_ByStr20_Uint128** %bs, align 8 - %"$$bs_1672_1673" = bitcast %Map_ByStr20_Uint128* %"$bs_1672" to i8* - %"$_lengthof_call_1674" = call i64 @_lengthof(%_TyDescrTy_Typ* @"$TyDescr_Map_87", i8* %"$$bs_1672_1673") - %"$gasadd_1675" = add i64 1, %"$_lengthof_call_1674" - %"$gasrem_1676" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1677" = icmp ugt i64 %"$gasadd_1675", %"$gasrem_1676" - br i1 %"$gascmp_1677", label %"$out_of_gas_1678", label %"$have_gas_1679" - -"$out_of_gas_1678": ; preds = %"$have_gas_1670" - call void @_out_of_gas() - br label %"$have_gas_1679" - -"$have_gas_1679": ; preds = %"$out_of_gas_1678", %"$have_gas_1670" - %"$consume_1680" = sub i64 %"$gasrem_1676", %"$gasadd_1675" - store i64 %"$consume_1680", i64* @_gasrem, align 8 - %"$execptr_load_1681" = load i8*, i8** @_execptr, align 8 - %"$bs_1682" = load %Map_ByStr20_Uint128*, %Map_ByStr20_Uint128** %bs, align 8 - %"$$bs_1682_1683" = bitcast %Map_ByStr20_Uint128* %"$bs_1682" to i8* - %"$remove__sender_1684" = alloca [20 x i8], align 1 - store [20 x i8] %_sender, [20 x i8]* %"$remove__sender_1684", align 1 - %"$$remove__sender_1684_1685" = bitcast [20 x i8]* %"$remove__sender_1684" to i8* - %"$remove_call_1686" = call i8* @_remove(i8* %"$execptr_load_1681", %_TyDescrTy_Typ* @"$TyDescr_Map_87", i8* %"$$bs_1682_1683", i8* %"$$remove__sender_1684_1685"), !dbg !158 - %"$remove_1687" = bitcast i8* %"$remove_call_1686" to %Map_ByStr20_Uint128* - store %Map_ByStr20_Uint128* %"$remove_1687", %Map_ByStr20_Uint128** %bs1, align 8, !dbg !158 - %"$bs1_1688" = load %Map_ByStr20_Uint128*, %Map_ByStr20_Uint128** %bs1, align 8 - %"$$bs1_1688_1689" = bitcast %Map_ByStr20_Uint128* %"$bs1_1688" to i8* - %"$_literal_cost_call_1690" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Map_87", i8* %"$$bs1_1688_1689") - %"$gasrem_1691" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1692" = icmp ugt i64 %"$_literal_cost_call_1690", %"$gasrem_1691" - br i1 %"$gascmp_1692", label %"$out_of_gas_1693", label %"$have_gas_1694" - -"$out_of_gas_1693": ; preds = %"$have_gas_1679" - call void @_out_of_gas() - br label %"$have_gas_1694" - -"$have_gas_1694": ; preds = %"$out_of_gas_1693", %"$have_gas_1679" - %"$consume_1695" = sub i64 %"$gasrem_1691", %"$_literal_cost_call_1690" - store i64 %"$consume_1695", i64* @_gasrem, align 8 - %"$execptr_load_1696" = load i8*, i8** @_execptr, align 8 - %"$bs1_1698" = load %Map_ByStr20_Uint128*, %Map_ByStr20_Uint128** %bs1, align 8 - %"$update_value_1699" = bitcast %Map_ByStr20_Uint128* %"$bs1_1698" to i8* - call void @_update_field(i8* %"$execptr_load_1696", i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$backers_1697", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_87", i32 0, i8* null, i8* %"$update_value_1699"), !dbg !160 - %"$gasrem_1700" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1701" = icmp ugt i64 1, %"$gasrem_1700" - br i1 %"$gascmp_1701", label %"$out_of_gas_1702", label %"$have_gas_1703" - -"$out_of_gas_1702": ; preds = %"$have_gas_1694" - call void @_out_of_gas() - br label %"$have_gas_1703" - -"$have_gas_1703": ; preds = %"$out_of_gas_1702", %"$have_gas_1694" - %"$consume_1704" = sub i64 %"$gasrem_1700", 1 - store i64 %"$consume_1704", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %Map_ByStr20_Uint128** %bs1, metadata !307, metadata !DIExpression()), !dbg !309 + %"$bs_1689" = load %Map_ByStr20_Uint128*, %Map_ByStr20_Uint128** %bs, align 8 + %"$$bs_1689_1690" = bitcast %Map_ByStr20_Uint128* %"$bs_1689" to i8* + %"$_lengthof_call_1691" = call i64 @_lengthof(%_TyDescrTy_Typ* @"$TyDescr_Map_87", i8* %"$$bs_1689_1690") + %"$gasadd_1692" = add i64 1, %"$_lengthof_call_1691" + %"$gasrem_1693" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1694" = icmp ugt i64 %"$gasadd_1692", %"$gasrem_1693" + br i1 %"$gascmp_1694", label %"$out_of_gas_1695", label %"$have_gas_1696" + +"$out_of_gas_1695": ; preds = %"$have_gas_1687" + call void @_out_of_gas() + br label %"$have_gas_1696" + +"$have_gas_1696": ; preds = %"$out_of_gas_1695", %"$have_gas_1687" + %"$consume_1697" = sub i64 %"$gasrem_1693", %"$gasadd_1692" + store i64 %"$consume_1697", i64* @_gasrem, align 8 + %"$execptr_load_1698" = load i8*, i8** @_execptr, align 8 + %"$bs_1699" = load %Map_ByStr20_Uint128*, %Map_ByStr20_Uint128** %bs, align 8 + %"$$bs_1699_1700" = bitcast %Map_ByStr20_Uint128* %"$bs_1699" to i8* + %"$remove__sender_1701" = alloca [20 x i8], align 1 + store [20 x i8] %_sender, [20 x i8]* %"$remove__sender_1701", align 1 + %"$$remove__sender_1701_1702" = bitcast [20 x i8]* %"$remove__sender_1701" to i8* + %"$remove_call_1703" = call i8* @_remove(i8* %"$execptr_load_1698", %_TyDescrTy_Typ* @"$TyDescr_Map_87", i8* %"$$bs_1699_1700", i8* %"$$remove__sender_1701_1702"), !dbg !310 + %"$remove_1704" = bitcast i8* %"$remove_call_1703" to %Map_ByStr20_Uint128* + store %Map_ByStr20_Uint128* %"$remove_1704", %Map_ByStr20_Uint128** %bs1, align 8, !dbg !310 + %"$bs1_1705" = load %Map_ByStr20_Uint128*, %Map_ByStr20_Uint128** %bs1, align 8 + %"$$bs1_1705_1706" = bitcast %Map_ByStr20_Uint128* %"$bs1_1705" to i8* + %"$_literal_cost_call_1707" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Map_87", i8* %"$$bs1_1705_1706") + %"$gasrem_1708" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1709" = icmp ugt i64 %"$_literal_cost_call_1707", %"$gasrem_1708" + br i1 %"$gascmp_1709", label %"$out_of_gas_1710", label %"$have_gas_1711" + +"$out_of_gas_1710": ; preds = %"$have_gas_1696" + call void @_out_of_gas() + br label %"$have_gas_1711" + +"$have_gas_1711": ; preds = %"$out_of_gas_1710", %"$have_gas_1696" + %"$consume_1712" = sub i64 %"$gasrem_1708", %"$_literal_cost_call_1707" + store i64 %"$consume_1712", i64* @_gasrem, align 8 + %"$execptr_load_1713" = load i8*, i8** @_execptr, align 8 + %"$bs1_1715" = load %Map_ByStr20_Uint128*, %Map_ByStr20_Uint128** %bs1, align 8 + %"$update_value_1716" = bitcast %Map_ByStr20_Uint128* %"$bs1_1715" to i8* + call void @_update_field(i8* %"$execptr_load_1713", i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$backers_1714", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_87", i32 0, i8* null, i8* %"$update_value_1716"), !dbg !311 + %"$gasrem_1717" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1718" = icmp ugt i64 1, %"$gasrem_1717" + br i1 %"$gascmp_1718", label %"$out_of_gas_1719", label %"$have_gas_1720" + +"$out_of_gas_1719": ; preds = %"$have_gas_1711" + call void @_out_of_gas() + br label %"$have_gas_1720" + +"$have_gas_1720": ; preds = %"$out_of_gas_1719", %"$have_gas_1711" + %"$consume_1721" = sub i64 %"$gasrem_1717", 1 + store i64 %"$consume_1721", i64* @_gasrem, align 8 %msg = alloca i8*, align 8 - %"$gasrem_1705" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1706" = icmp ugt i64 1, %"$gasrem_1705" - br i1 %"$gascmp_1706", label %"$out_of_gas_1707", label %"$have_gas_1708" - -"$out_of_gas_1707": ; preds = %"$have_gas_1703" - call void @_out_of_gas() - br label %"$have_gas_1708" - -"$have_gas_1708": ; preds = %"$out_of_gas_1707", %"$have_gas_1703" - %"$consume_1709" = sub i64 %"$gasrem_1705", 1 - store i64 %"$consume_1709", i64* @_gasrem, align 8 - %"$msgobj_1710_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$msgobj_1710_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_1710_salloc_load", i64 125) - %"$msgobj_1710_salloc" = bitcast i8* %"$msgobj_1710_salloc_salloc" to [125 x i8]* - %"$msgobj_1710" = bitcast [125 x i8]* %"$msgobj_1710_salloc" to i8* - store i8 3, i8* %"$msgobj_1710", align 1 - %"$msgobj_fname_1712" = getelementptr i8, i8* %"$msgobj_1710", i32 1 - %"$msgobj_fname_1713" = bitcast i8* %"$msgobj_fname_1712" to %String* - store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_1711", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_1713", align 8 - %"$msgobj_td_1714" = getelementptr i8, i8* %"$msgobj_1710", i32 17 - %"$msgobj_td_1715" = bitcast i8* %"$msgobj_td_1714" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_String_64", %_TyDescrTy_Typ** %"$msgobj_td_1715", align 8 - %"$msgobj_v_1717" = getelementptr i8, i8* %"$msgobj_1710", i32 25 - %"$msgobj_v_1718" = bitcast i8* %"$msgobj_v_1717" to %String* - store %String { i8* getelementptr inbounds ([0 x i8], [0 x i8]* @"$stringlit_1716", i32 0, i32 0), i32 0 }, %String* %"$msgobj_v_1718", align 8 - %"$msgobj_fname_1720" = getelementptr i8, i8* %"$msgobj_1710", i32 41 - %"$msgobj_fname_1721" = bitcast i8* %"$msgobj_fname_1720" to %String* - store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_1719", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_1721", align 8 - %"$msgobj_td_1722" = getelementptr i8, i8* %"$msgobj_1710", i32 57 - %"$msgobj_td_1723" = bitcast i8* %"$msgobj_td_1722" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_78", %_TyDescrTy_Typ** %"$msgobj_td_1723", align 8 - %"$msgobj_v_1724" = getelementptr i8, i8* %"$msgobj_1710", i32 65 - %"$msgobj_v_1725" = bitcast i8* %"$msgobj_v_1724" to [20 x i8]* - store [20 x i8] %_sender, [20 x i8]* %"$msgobj_v_1725", align 1 - %"$msgobj_fname_1727" = getelementptr i8, i8* %"$msgobj_1710", i32 85 - %"$msgobj_fname_1728" = bitcast i8* %"$msgobj_fname_1727" to %String* - store %String { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$stringlit_1726", i32 0, i32 0), i32 7 }, %String* %"$msgobj_fname_1728", align 8 - %"$msgobj_td_1729" = getelementptr i8, i8* %"$msgobj_1710", i32 101 - %"$msgobj_td_1730" = bitcast i8* %"$msgobj_td_1729" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Uint128_58", %_TyDescrTy_Typ** %"$msgobj_td_1730", align 8 - %"$v_1731" = load %Uint128, %Uint128* %v, align 8 - %"$msgobj_v_1732" = getelementptr i8, i8* %"$msgobj_1710", i32 109 - %"$msgobj_v_1733" = bitcast i8* %"$msgobj_v_1732" to %Uint128* - store %Uint128 %"$v_1731", %Uint128* %"$msgobj_v_1733", align 8 - store i8* %"$msgobj_1710", i8** %msg, align 8, !dbg !161 - %"$gasrem_1735" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1736" = icmp ugt i64 1, %"$gasrem_1735" - br i1 %"$gascmp_1736", label %"$out_of_gas_1737", label %"$have_gas_1738" - -"$out_of_gas_1737": ; preds = %"$have_gas_1708" - call void @_out_of_gas() - br label %"$have_gas_1738" - -"$have_gas_1738": ; preds = %"$out_of_gas_1737", %"$have_gas_1708" - %"$consume_1739" = sub i64 %"$gasrem_1735", 1 - store i64 %"$consume_1739", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata i8** %msg, metadata !312, metadata !DIExpression()), !dbg !313 + %"$gasrem_1722" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1723" = icmp ugt i64 1, %"$gasrem_1722" + br i1 %"$gascmp_1723", label %"$out_of_gas_1724", label %"$have_gas_1725" + +"$out_of_gas_1724": ; preds = %"$have_gas_1720" + call void @_out_of_gas() + br label %"$have_gas_1725" + +"$have_gas_1725": ; preds = %"$out_of_gas_1724", %"$have_gas_1720" + %"$consume_1726" = sub i64 %"$gasrem_1722", 1 + store i64 %"$consume_1726", i64* @_gasrem, align 8 + %"$msgobj_1727_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$msgobj_1727_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_1727_salloc_load", i64 125) + %"$msgobj_1727_salloc" = bitcast i8* %"$msgobj_1727_salloc_salloc" to [125 x i8]* + %"$msgobj_1727" = bitcast [125 x i8]* %"$msgobj_1727_salloc" to i8* + store i8 3, i8* %"$msgobj_1727", align 1 + %"$msgobj_fname_1729" = getelementptr i8, i8* %"$msgobj_1727", i32 1 + %"$msgobj_fname_1730" = bitcast i8* %"$msgobj_fname_1729" to %String* + store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_1728", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_1730", align 8 + %"$msgobj_td_1731" = getelementptr i8, i8* %"$msgobj_1727", i32 17 + %"$msgobj_td_1732" = bitcast i8* %"$msgobj_td_1731" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_String_64", %_TyDescrTy_Typ** %"$msgobj_td_1732", align 8 + %"$msgobj_v_1734" = getelementptr i8, i8* %"$msgobj_1727", i32 25 + %"$msgobj_v_1735" = bitcast i8* %"$msgobj_v_1734" to %String* + store %String { i8* getelementptr inbounds ([0 x i8], [0 x i8]* @"$stringlit_1733", i32 0, i32 0), i32 0 }, %String* %"$msgobj_v_1735", align 8 + %"$msgobj_fname_1737" = getelementptr i8, i8* %"$msgobj_1727", i32 41 + %"$msgobj_fname_1738" = bitcast i8* %"$msgobj_fname_1737" to %String* + store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_1736", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_1738", align 8 + %"$msgobj_td_1739" = getelementptr i8, i8* %"$msgobj_1727", i32 57 + %"$msgobj_td_1740" = bitcast i8* %"$msgobj_td_1739" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_78", %_TyDescrTy_Typ** %"$msgobj_td_1740", align 8 + %"$msgobj_v_1741" = getelementptr i8, i8* %"$msgobj_1727", i32 65 + %"$msgobj_v_1742" = bitcast i8* %"$msgobj_v_1741" to [20 x i8]* + store [20 x i8] %_sender, [20 x i8]* %"$msgobj_v_1742", align 1 + %"$msgobj_fname_1744" = getelementptr i8, i8* %"$msgobj_1727", i32 85 + %"$msgobj_fname_1745" = bitcast i8* %"$msgobj_fname_1744" to %String* + store %String { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$stringlit_1743", i32 0, i32 0), i32 7 }, %String* %"$msgobj_fname_1745", align 8 + %"$msgobj_td_1746" = getelementptr i8, i8* %"$msgobj_1727", i32 101 + %"$msgobj_td_1747" = bitcast i8* %"$msgobj_td_1746" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Uint128_58", %_TyDescrTy_Typ** %"$msgobj_td_1747", align 8 + %"$v_1748" = load %Uint128, %Uint128* %v, align 8 + %"$msgobj_v_1749" = getelementptr i8, i8* %"$msgobj_1727", i32 109 + %"$msgobj_v_1750" = bitcast i8* %"$msgobj_v_1749" to %Uint128* + store %Uint128 %"$v_1748", %Uint128* %"$msgobj_v_1750", align 8 + store i8* %"$msgobj_1727", i8** %msg, align 8, !dbg !314 + %"$gasrem_1752" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1753" = icmp ugt i64 1, %"$gasrem_1752" + br i1 %"$gascmp_1753", label %"$out_of_gas_1754", label %"$have_gas_1755" + +"$out_of_gas_1754": ; preds = %"$have_gas_1725" + call void @_out_of_gas() + br label %"$have_gas_1755" + +"$have_gas_1755": ; preds = %"$out_of_gas_1754", %"$have_gas_1725" + %"$consume_1756" = sub i64 %"$gasrem_1752", 1 + store i64 %"$consume_1756", i64* @_gasrem, align 8 %msgs = alloca %TName_List_Message*, align 8 - %"$gasrem_1740" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1741" = icmp ugt i64 1, %"$gasrem_1740" - br i1 %"$gascmp_1741", label %"$out_of_gas_1742", label %"$have_gas_1743" + call void @llvm.dbg.declare(metadata %TName_List_Message** %msgs, metadata !315, metadata !DIExpression()), !dbg !316 + %"$gasrem_1757" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1758" = icmp ugt i64 1, %"$gasrem_1757" + br i1 %"$gascmp_1758", label %"$out_of_gas_1759", label %"$have_gas_1760" -"$out_of_gas_1742": ; preds = %"$have_gas_1738" +"$out_of_gas_1759": ; preds = %"$have_gas_1755" call void @_out_of_gas() - br label %"$have_gas_1743" + br label %"$have_gas_1760" -"$have_gas_1743": ; preds = %"$out_of_gas_1742", %"$have_gas_1738" - %"$consume_1744" = sub i64 %"$gasrem_1740", 1 - store i64 %"$consume_1744", i64* @_gasrem, align 8 +"$have_gas_1760": ; preds = %"$out_of_gas_1759", %"$have_gas_1755" + %"$consume_1761" = sub i64 %"$gasrem_1757", 1 + store i64 %"$consume_1761", i64* @_gasrem, align 8 %"$crowdfunding.one_msg_16" = alloca %TName_List_Message*, align 8 - %"$crowdfunding.one_msg_1745" = load { %TName_List_Message* (i8*, i8*)*, i8* }, { %TName_List_Message* (i8*, i8*)*, i8* }* @crowdfunding.one_msg, align 8 - %"$crowdfunding.one_msg_fptr_1746" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$crowdfunding.one_msg_1745", 0 - %"$crowdfunding.one_msg_envptr_1747" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$crowdfunding.one_msg_1745", 1 - %"$msg_1748" = load i8*, i8** %msg, align 8 - %"$crowdfunding.one_msg_call_1749" = call %TName_List_Message* %"$crowdfunding.one_msg_fptr_1746"(i8* %"$crowdfunding.one_msg_envptr_1747", i8* %"$msg_1748"), !dbg !162 - store %TName_List_Message* %"$crowdfunding.one_msg_call_1749", %TName_List_Message** %"$crowdfunding.one_msg_16", align 8, !dbg !162 - %"$$crowdfunding.one_msg_16_1750" = load %TName_List_Message*, %TName_List_Message** %"$crowdfunding.one_msg_16", align 8 - store %TName_List_Message* %"$$crowdfunding.one_msg_16_1750", %TName_List_Message** %msgs, align 8, !dbg !162 - %"$gasrem_1751" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1752" = icmp ugt i64 1, %"$gasrem_1751" - br i1 %"$gascmp_1752", label %"$out_of_gas_1753", label %"$have_gas_1754" - -"$out_of_gas_1753": ; preds = %"$have_gas_1743" - call void @_out_of_gas() - br label %"$have_gas_1754" - -"$have_gas_1754": ; preds = %"$out_of_gas_1753", %"$have_gas_1743" - %"$consume_1755" = sub i64 %"$gasrem_1751", 1 - store i64 %"$consume_1755", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_List_Message** %"$crowdfunding.one_msg_16", metadata !317, metadata !DIExpression()), !dbg !318 + %"$crowdfunding.one_msg_1762" = load { %TName_List_Message* (i8*, i8*)*, i8* }, { %TName_List_Message* (i8*, i8*)*, i8* }* @crowdfunding.one_msg, align 8 + %"$crowdfunding.one_msg_fptr_1763" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$crowdfunding.one_msg_1762", 0 + %"$crowdfunding.one_msg_envptr_1764" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$crowdfunding.one_msg_1762", 1 + %"$msg_1765" = load i8*, i8** %msg, align 8 + %"$crowdfunding.one_msg_call_1766" = call %TName_List_Message* %"$crowdfunding.one_msg_fptr_1763"(i8* %"$crowdfunding.one_msg_envptr_1764", i8* %"$msg_1765"), !dbg !318 + store %TName_List_Message* %"$crowdfunding.one_msg_call_1766", %TName_List_Message** %"$crowdfunding.one_msg_16", align 8, !dbg !318 + %"$$crowdfunding.one_msg_16_1767" = load %TName_List_Message*, %TName_List_Message** %"$crowdfunding.one_msg_16", align 8 + store %TName_List_Message* %"$$crowdfunding.one_msg_16_1767", %TName_List_Message** %msgs, align 8, !dbg !318 + %"$gasrem_1768" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1769" = icmp ugt i64 1, %"$gasrem_1768" + br i1 %"$gascmp_1769", label %"$out_of_gas_1770", label %"$have_gas_1771" + +"$out_of_gas_1770": ; preds = %"$have_gas_1760" + call void @_out_of_gas() + br label %"$have_gas_1771" + +"$have_gas_1771": ; preds = %"$out_of_gas_1770", %"$have_gas_1760" + %"$consume_1772" = sub i64 %"$gasrem_1768", 1 + store i64 %"$consume_1772", i64* @_gasrem, align 8 %e3 = alloca i8*, align 8 - %"$gasrem_1756" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1757" = icmp ugt i64 1, %"$gasrem_1756" - br i1 %"$gascmp_1757", label %"$out_of_gas_1758", label %"$have_gas_1759" - -"$out_of_gas_1758": ; preds = %"$have_gas_1754" - call void @_out_of_gas() - br label %"$have_gas_1759" - -"$have_gas_1759": ; preds = %"$out_of_gas_1758", %"$have_gas_1754" - %"$consume_1760" = sub i64 %"$gasrem_1756", 1 - store i64 %"$consume_1760", i64* @_gasrem, align 8 - %"$msgobj_1761_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$msgobj_1761_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_1761_salloc_load", i64 153) - %"$msgobj_1761_salloc" = bitcast i8* %"$msgobj_1761_salloc_salloc" to [153 x i8]* - %"$msgobj_1761" = bitcast [153 x i8]* %"$msgobj_1761_salloc" to i8* - store i8 4, i8* %"$msgobj_1761", align 1 - %"$msgobj_fname_1763" = getelementptr i8, i8* %"$msgobj_1761", i32 1 - %"$msgobj_fname_1764" = bitcast i8* %"$msgobj_fname_1763" to %String* - store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_1762", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_1764", align 8 - %"$msgobj_td_1765" = getelementptr i8, i8* %"$msgobj_1761", i32 17 - %"$msgobj_td_1766" = bitcast i8* %"$msgobj_td_1765" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_String_64", %_TyDescrTy_Typ** %"$msgobj_td_1766", align 8 - %"$msgobj_v_1768" = getelementptr i8, i8* %"$msgobj_1761", i32 25 - %"$msgobj_v_1769" = bitcast i8* %"$msgobj_v_1768" to %String* - store %String { i8* getelementptr inbounds ([16 x i8], [16 x i8]* @"$stringlit_1767", i32 0, i32 0), i32 16 }, %String* %"$msgobj_v_1769", align 8 - %"$msgobj_fname_1771" = getelementptr i8, i8* %"$msgobj_1761", i32 41 - %"$msgobj_fname_1772" = bitcast i8* %"$msgobj_fname_1771" to %String* - store %String { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$stringlit_1770", i32 0, i32 0), i32 6 }, %String* %"$msgobj_fname_1772", align 8 - %"$msgobj_td_1773" = getelementptr i8, i8* %"$msgobj_1761", i32 57 - %"$msgobj_td_1774" = bitcast i8* %"$msgobj_td_1773" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_78", %_TyDescrTy_Typ** %"$msgobj_td_1774", align 8 - %"$msgobj_v_1775" = getelementptr i8, i8* %"$msgobj_1761", i32 65 - %"$msgobj_v_1776" = bitcast i8* %"$msgobj_v_1775" to [20 x i8]* - store [20 x i8] %_sender, [20 x i8]* %"$msgobj_v_1776", align 1 - %"$msgobj_fname_1778" = getelementptr i8, i8* %"$msgobj_1761", i32 85 - %"$msgobj_fname_1779" = bitcast i8* %"$msgobj_fname_1778" to %String* - store %String { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$stringlit_1777", i32 0, i32 0), i32 6 }, %String* %"$msgobj_fname_1779", align 8 - %"$msgobj_td_1780" = getelementptr i8, i8* %"$msgobj_1761", i32 101 - %"$msgobj_td_1781" = bitcast i8* %"$msgobj_td_1780" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Uint128_58", %_TyDescrTy_Typ** %"$msgobj_td_1781", align 8 - %"$v_1782" = load %Uint128, %Uint128* %v, align 8 - %"$msgobj_v_1783" = getelementptr i8, i8* %"$msgobj_1761", i32 109 - %"$msgobj_v_1784" = bitcast i8* %"$msgobj_v_1783" to %Uint128* - store %Uint128 %"$v_1782", %Uint128* %"$msgobj_v_1784", align 8 - %"$msgobj_fname_1786" = getelementptr i8, i8* %"$msgobj_1761", i32 125 - %"$msgobj_fname_1787" = bitcast i8* %"$msgobj_fname_1786" to %String* - store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_1785", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_1787", align 8 - %"$msgobj_td_1788" = getelementptr i8, i8* %"$msgobj_1761", i32 141 - %"$msgobj_td_1789" = bitcast i8* %"$msgobj_td_1788" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Int32_48", %_TyDescrTy_Typ** %"$msgobj_td_1789", align 8 - %"$crowdfunding.reclaimed_code_1790" = load %Int32, %Int32* @crowdfunding.reclaimed_code, align 4 - %"$msgobj_v_1791" = getelementptr i8, i8* %"$msgobj_1761", i32 149 - %"$msgobj_v_1792" = bitcast i8* %"$msgobj_v_1791" to %Int32* - store %Int32 %"$crowdfunding.reclaimed_code_1790", %Int32* %"$msgobj_v_1792", align 4 - store i8* %"$msgobj_1761", i8** %e3, align 8, !dbg !163 - %"$e_1794" = load i8*, i8** %e3, align 8 - %"$_literal_cost_call_1796" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Event_70", i8* %"$e_1794") - %"$gasrem_1797" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1798" = icmp ugt i64 %"$_literal_cost_call_1796", %"$gasrem_1797" - br i1 %"$gascmp_1798", label %"$out_of_gas_1799", label %"$have_gas_1800" - -"$out_of_gas_1799": ; preds = %"$have_gas_1759" - call void @_out_of_gas() - br label %"$have_gas_1800" - -"$have_gas_1800": ; preds = %"$out_of_gas_1799", %"$have_gas_1759" - %"$consume_1801" = sub i64 %"$gasrem_1797", %"$_literal_cost_call_1796" - store i64 %"$consume_1801", i64* @_gasrem, align 8 - %"$execptr_load_1802" = load i8*, i8** @_execptr, align 8 - %"$e_1803" = load i8*, i8** %e3, align 8 - call void @_event(i8* %"$execptr_load_1802", %_TyDescrTy_Typ* @"$TyDescr_Event_70", i8* %"$e_1803"), !dbg !164 - %"$msgs_1804" = load %TName_List_Message*, %TName_List_Message** %msgs, align 8 - %"$$msgs_1804_1805" = bitcast %TName_List_Message* %"$msgs_1804" to i8* - %"$_literal_cost_call_1806" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_84", i8* %"$$msgs_1804_1805") - %"$gasrem_1807" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1808" = icmp ugt i64 %"$_literal_cost_call_1806", %"$gasrem_1807" - br i1 %"$gascmp_1808", label %"$out_of_gas_1809", label %"$have_gas_1810" - -"$out_of_gas_1809": ; preds = %"$have_gas_1800" - call void @_out_of_gas() - br label %"$have_gas_1810" - -"$have_gas_1810": ; preds = %"$out_of_gas_1809", %"$have_gas_1800" - %"$consume_1811" = sub i64 %"$gasrem_1807", %"$_literal_cost_call_1806" - store i64 %"$consume_1811", i64* @_gasrem, align 8 - %"$execptr_load_1812" = load i8*, i8** @_execptr, align 8 - %"$msgs_1813" = load %TName_List_Message*, %TName_List_Message** %msgs, align 8 - call void @_send(i8* %"$execptr_load_1812", %_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_84", %TName_List_Message* %"$msgs_1813"), !dbg !165 - br label %"$matchsucc_1604" - -"$empty_default_1608": ; preds = %"$have_gas_1602" - br label %"$matchsucc_1604" - -"$matchsucc_1604": ; preds = %"$have_gas_1810", %"$have_gas_1659", %"$empty_default_1608" - br label %"$matchsucc_1521" - -"$empty_default_1525": ; preds = %"$have_gas_1519" - br label %"$matchsucc_1521" - -"$matchsucc_1521": ; preds = %"$matchsucc_1604", %"$have_gas_1576", %"$empty_default_1525" - br label %"$matchsucc_1320" - -"$empty_default_1324": ; preds = %"$have_gas_1318" - br label %"$matchsucc_1320" - -"$matchsucc_1320": ; preds = %"$matchsucc_1521", %"$have_gas_1375", %"$empty_default_1324" + call void @llvm.dbg.declare(metadata i8** %e3, metadata !319, metadata !DIExpression()), !dbg !320 + %"$gasrem_1773" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1774" = icmp ugt i64 1, %"$gasrem_1773" + br i1 %"$gascmp_1774", label %"$out_of_gas_1775", label %"$have_gas_1776" + +"$out_of_gas_1775": ; preds = %"$have_gas_1771" + call void @_out_of_gas() + br label %"$have_gas_1776" + +"$have_gas_1776": ; preds = %"$out_of_gas_1775", %"$have_gas_1771" + %"$consume_1777" = sub i64 %"$gasrem_1773", 1 + store i64 %"$consume_1777", i64* @_gasrem, align 8 + %"$msgobj_1778_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$msgobj_1778_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_1778_salloc_load", i64 153) + %"$msgobj_1778_salloc" = bitcast i8* %"$msgobj_1778_salloc_salloc" to [153 x i8]* + %"$msgobj_1778" = bitcast [153 x i8]* %"$msgobj_1778_salloc" to i8* + store i8 4, i8* %"$msgobj_1778", align 1 + %"$msgobj_fname_1780" = getelementptr i8, i8* %"$msgobj_1778", i32 1 + %"$msgobj_fname_1781" = bitcast i8* %"$msgobj_fname_1780" to %String* + store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_1779", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_1781", align 8 + %"$msgobj_td_1782" = getelementptr i8, i8* %"$msgobj_1778", i32 17 + %"$msgobj_td_1783" = bitcast i8* %"$msgobj_td_1782" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_String_64", %_TyDescrTy_Typ** %"$msgobj_td_1783", align 8 + %"$msgobj_v_1785" = getelementptr i8, i8* %"$msgobj_1778", i32 25 + %"$msgobj_v_1786" = bitcast i8* %"$msgobj_v_1785" to %String* + store %String { i8* getelementptr inbounds ([16 x i8], [16 x i8]* @"$stringlit_1784", i32 0, i32 0), i32 16 }, %String* %"$msgobj_v_1786", align 8 + %"$msgobj_fname_1788" = getelementptr i8, i8* %"$msgobj_1778", i32 41 + %"$msgobj_fname_1789" = bitcast i8* %"$msgobj_fname_1788" to %String* + store %String { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$stringlit_1787", i32 0, i32 0), i32 6 }, %String* %"$msgobj_fname_1789", align 8 + %"$msgobj_td_1790" = getelementptr i8, i8* %"$msgobj_1778", i32 57 + %"$msgobj_td_1791" = bitcast i8* %"$msgobj_td_1790" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_78", %_TyDescrTy_Typ** %"$msgobj_td_1791", align 8 + %"$msgobj_v_1792" = getelementptr i8, i8* %"$msgobj_1778", i32 65 + %"$msgobj_v_1793" = bitcast i8* %"$msgobj_v_1792" to [20 x i8]* + store [20 x i8] %_sender, [20 x i8]* %"$msgobj_v_1793", align 1 + %"$msgobj_fname_1795" = getelementptr i8, i8* %"$msgobj_1778", i32 85 + %"$msgobj_fname_1796" = bitcast i8* %"$msgobj_fname_1795" to %String* + store %String { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$stringlit_1794", i32 0, i32 0), i32 6 }, %String* %"$msgobj_fname_1796", align 8 + %"$msgobj_td_1797" = getelementptr i8, i8* %"$msgobj_1778", i32 101 + %"$msgobj_td_1798" = bitcast i8* %"$msgobj_td_1797" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Uint128_58", %_TyDescrTy_Typ** %"$msgobj_td_1798", align 8 + %"$v_1799" = load %Uint128, %Uint128* %v, align 8 + %"$msgobj_v_1800" = getelementptr i8, i8* %"$msgobj_1778", i32 109 + %"$msgobj_v_1801" = bitcast i8* %"$msgobj_v_1800" to %Uint128* + store %Uint128 %"$v_1799", %Uint128* %"$msgobj_v_1801", align 8 + %"$msgobj_fname_1803" = getelementptr i8, i8* %"$msgobj_1778", i32 125 + %"$msgobj_fname_1804" = bitcast i8* %"$msgobj_fname_1803" to %String* + store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_1802", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_1804", align 8 + %"$msgobj_td_1805" = getelementptr i8, i8* %"$msgobj_1778", i32 141 + %"$msgobj_td_1806" = bitcast i8* %"$msgobj_td_1805" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Int32_48", %_TyDescrTy_Typ** %"$msgobj_td_1806", align 8 + %"$crowdfunding.reclaimed_code_1807" = load %Int32, %Int32* @crowdfunding.reclaimed_code, align 4 + %"$msgobj_v_1808" = getelementptr i8, i8* %"$msgobj_1778", i32 149 + %"$msgobj_v_1809" = bitcast i8* %"$msgobj_v_1808" to %Int32* + store %Int32 %"$crowdfunding.reclaimed_code_1807", %Int32* %"$msgobj_v_1809", align 4 + store i8* %"$msgobj_1778", i8** %e3, align 8, !dbg !321 + %"$e_1811" = load i8*, i8** %e3, align 8 + %"$_literal_cost_call_1813" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Event_70", i8* %"$e_1811") + %"$gasrem_1814" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1815" = icmp ugt i64 %"$_literal_cost_call_1813", %"$gasrem_1814" + br i1 %"$gascmp_1815", label %"$out_of_gas_1816", label %"$have_gas_1817" + +"$out_of_gas_1816": ; preds = %"$have_gas_1776" + call void @_out_of_gas() + br label %"$have_gas_1817" + +"$have_gas_1817": ; preds = %"$out_of_gas_1816", %"$have_gas_1776" + %"$consume_1818" = sub i64 %"$gasrem_1814", %"$_literal_cost_call_1813" + store i64 %"$consume_1818", i64* @_gasrem, align 8 + %"$execptr_load_1819" = load i8*, i8** @_execptr, align 8 + %"$e_1820" = load i8*, i8** %e3, align 8 + call void @_event(i8* %"$execptr_load_1819", %_TyDescrTy_Typ* @"$TyDescr_Event_70", i8* %"$e_1820"), !dbg !322 + %"$msgs_1821" = load %TName_List_Message*, %TName_List_Message** %msgs, align 8 + %"$$msgs_1821_1822" = bitcast %TName_List_Message* %"$msgs_1821" to i8* + %"$_literal_cost_call_1823" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_84", i8* %"$$msgs_1821_1822") + %"$gasrem_1824" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1825" = icmp ugt i64 %"$_literal_cost_call_1823", %"$gasrem_1824" + br i1 %"$gascmp_1825", label %"$out_of_gas_1826", label %"$have_gas_1827" + +"$out_of_gas_1826": ; preds = %"$have_gas_1817" + call void @_out_of_gas() + br label %"$have_gas_1827" + +"$have_gas_1827": ; preds = %"$out_of_gas_1826", %"$have_gas_1817" + %"$consume_1828" = sub i64 %"$gasrem_1824", %"$_literal_cost_call_1823" + store i64 %"$consume_1828", i64* @_gasrem, align 8 + %"$execptr_load_1829" = load i8*, i8** @_execptr, align 8 + %"$msgs_1830" = load %TName_List_Message*, %TName_List_Message** %msgs, align 8 + call void @_send(i8* %"$execptr_load_1829", %_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_84", %TName_List_Message* %"$msgs_1830"), !dbg !323 + br label %"$matchsucc_1621" + +"$empty_default_1625": ; preds = %"$have_gas_1619" + br label %"$matchsucc_1621" + +"$matchsucc_1621": ; preds = %"$have_gas_1827", %"$have_gas_1676", %"$empty_default_1625" + br label %"$matchsucc_1538" + +"$empty_default_1542": ; preds = %"$have_gas_1536" + br label %"$matchsucc_1538" + +"$matchsucc_1538": ; preds = %"$matchsucc_1621", %"$have_gas_1593", %"$empty_default_1542" + br label %"$matchsucc_1337" + +"$empty_default_1341": ; preds = %"$have_gas_1335" + br label %"$matchsucc_1337" + +"$matchsucc_1337": ; preds = %"$matchsucc_1538", %"$have_gas_1392", %"$empty_default_1341" ret void } @@ -3355,187 +3482,347 @@ declare i8* @_get(i8*, %_TyDescrTy_Typ*, i8*, i8*) declare i8* @_remove(i8*, %_TyDescrTy_Typ*, i8*, i8*) -define void @ClaimBack(i8* %0) !dbg !166 { +define void @ClaimBack(i8* %0) !dbg !324 { entry: - %"$_amount_1815" = getelementptr i8, i8* %0, i32 0 - %"$_amount_1816" = bitcast i8* %"$_amount_1815" to %Uint128* - %_amount = load %Uint128, %Uint128* %"$_amount_1816", align 8 - %"$_origin_1817" = getelementptr i8, i8* %0, i32 16 - %"$_origin_1818" = bitcast i8* %"$_origin_1817" to [20 x i8]* - %"$_sender_1819" = getelementptr i8, i8* %0, i32 36 - %"$_sender_1820" = bitcast i8* %"$_sender_1819" to [20 x i8]* - call void @"$ClaimBack_1287"(%Uint128 %_amount, [20 x i8]* %"$_origin_1818", [20 x i8]* %"$_sender_1820"), !dbg !167 + %"$_amount_1835" = getelementptr i8, i8* %0, i32 0 + %"$_amount_1836" = bitcast i8* %"$_amount_1835" to %Uint128* + %_amount = load %Uint128, %Uint128* %"$_amount_1836", align 8 + %"$_origin_1837" = getelementptr i8, i8* %0, i32 16 + %"$_origin_1838" = bitcast i8* %"$_origin_1837" to [20 x i8]* + %"$_sender_1839" = getelementptr i8, i8* %0, i32 36 + %"$_sender_1840" = bitcast i8* %"$_sender_1839" to [20 x i8]* + call void @"$ClaimBack_1304"(%Uint128 %_amount, [20 x i8]* %"$_origin_1838", [20 x i8]* %"$_sender_1840"), !dbg !325 ret void } +attributes #0 = { nocallback nofree nosync nounwind readnone speculatable willreturn } + !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) +!1 = distinct !DICompileUnit(language: DW_LANG_C89, file: !2, producer: "Scilla Compiler", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false) !2 = !DIFile(filename: "crowdfunding.scilla", directory: "codegen/contr") -!3 = !{} -!4 = distinct !DISubprogram(name: "$fundef_34", linkageName: "$fundef_34", scope: !2, file: !2, line: 32, type: !5, scopeLine: 32, 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_32", linkageName: "$fundef_32", 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_30", linkageName: "$fundef_30", scope: !14, file: !14, line: 15, type: !5, scopeLine: 15, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!14 = !DIFile(filename: "BoolUtils.scillib", directory: "../src/stdlib") -!15 = !DILocation(line: 15, column: 5, scope: !13) -!16 = !DILocation(line: 16, column: 16, scope: !17) -!17 = distinct !DILexicalBlock(scope: !18, file: !14, line: 16, column: 7) -!18 = distinct !DILexicalBlock(scope: !13, file: !14, line: 15, column: 5) -!19 = !DILocation(line: 17, column: 16, scope: !20) -!20 = distinct !DILexicalBlock(scope: !18, file: !14, line: 17, column: 7) -!21 = distinct !DISubprogram(name: "$fundef_28", linkageName: "$fundef_28", scope: !14, file: !14, line: 14, type: !5, scopeLine: 14, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!22 = !DILocation(line: 15, column: 5, scope: !21) -!23 = distinct !DISubprogram(name: "$fundef_40", linkageName: "$fundef_40", scope: !2, file: !2, line: 21, type: !5, scopeLine: 21, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!24 = !DILocation(line: 21, column: 13, scope: !23) -!25 = !DILocation(line: 22, column: 5, scope: !23) -!26 = !DILocation(line: 24, column: 17, scope: !27) -!27 = distinct !DILexicalBlock(scope: !28, file: !2, line: 23, column: 7) -!28 = distinct !DILexicalBlock(scope: !23, file: !2, line: 22, column: 5) -!29 = !DILocation(line: 25, column: 7, scope: !27) -!30 = !DILocation(line: 26, column: 16, scope: !31) -!31 = distinct !DILexicalBlock(scope: !28, file: !2, line: 26, column: 7) -!32 = distinct !DISubprogram(name: "$fundef_38", linkageName: "$fundef_38", scope: !2, file: !2, line: 20, type: !5, scopeLine: 20, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!33 = !DILocation(line: 21, column: 5, scope: !32) -!34 = distinct !DISubprogram(name: "$fundef_36", linkageName: "$fundef_36", scope: !2, file: !2, line: 19, type: !5, scopeLine: 19, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!35 = !DILocation(line: 20, column: 3, scope: !34) -!36 = distinct !DISubprogram(name: "$fundef_42", linkageName: "$fundef_42", scope: !2, file: !2, line: 13, type: !5, scopeLine: 13, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!37 = !DILocation(line: 13, column: 19, scope: !36) -!38 = !DILocation(line: 14, column: 5, scope: !36) -!39 = distinct !DISubprogram(name: "$fundef_22", linkageName: "$fundef_22", scope: !14, file: !14, line: 22, type: !5, scopeLine: 22, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!40 = !DILocation(line: 22, column: 5, scope: !39) -!41 = !DILocation(line: 23, column: 15, scope: !42) -!42 = distinct !DILexicalBlock(scope: !43, file: !14, line: 23, column: 7) -!43 = distinct !DILexicalBlock(scope: !39, file: !14, line: 22, column: 5) -!44 = !DILocation(line: 24, column: 16, scope: !45) -!45 = distinct !DILexicalBlock(scope: !43, file: !14, line: 24, column: 7) -!46 = distinct !DISubprogram(name: "$fundef_26", linkageName: "$fundef_26", scope: !14, file: !14, 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: !14, line: 9, column: 7) -!50 = distinct !DILexicalBlock(scope: !46, file: !14, line: 8, column: 5) -!51 = !DILocation(line: 10, column: 16, scope: !52) -!52 = distinct !DILexicalBlock(scope: !50, file: !14, line: 10, column: 7) -!53 = distinct !DISubprogram(name: "$fundef_24", linkageName: "$fundef_24", scope: !14, file: !14, 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: 0, scope: !55) -!58 = !DILocation(line: 7, column: 3, 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: 14, column: 21, scope: !55) -!63 = !DILocation(line: 31, column: 3, scope: !55) -!64 = !DILocation(line: 36, column: 21, scope: !55) -!65 = !DILocation(line: 37, column: 28, scope: !55) -!66 = !DILocation(line: 38, column: 28, scope: !55) -!67 = !DILocation(line: 39, column: 23, scope: !55) -!68 = !DILocation(line: 40, column: 23, scope: !55) -!69 = !DILocation(line: 41, column: 23, scope: !55) -!70 = !DILocation(line: 42, column: 25, scope: !55) -!71 = !DILocation(line: 43, column: 27, scope: !55) -!72 = !DILocation(line: 44, column: 22, scope: !55) -!73 = distinct !DISubprogram(name: "_deploy_ops", linkageName: "_deploy_ops", scope: !56, file: !56, type: !5, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!74 = !DILocation(line: 57, column: 39, scope: !73) -!75 = !DILocation(line: 58, column: 23, scope: !73) -!76 = distinct !DISubprogram(name: "Donate", linkageName: "Donate", scope: !2, file: !2, line: 60, type: !5, scopeLine: 60, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!77 = !DILocation(line: 61, column: 3, scope: !76) -!78 = !DILocation(line: 62, column: 13, scope: !76) -!79 = !DILocation(line: 63, column: 3, scope: !76) -!80 = !DILocation(line: 65, column: 5, scope: !81) -!81 = distinct !DILexicalBlock(scope: !82, file: !2, line: 64, column: 5) -!82 = distinct !DILexicalBlock(scope: !76, file: !2, line: 63, column: 3) -!83 = !DILocation(line: 66, column: 11, scope: !81) -!84 = !DILocation(line: 67, column: 5, scope: !81) -!85 = !DILocation(line: 69, column: 11, scope: !86) -!86 = distinct !DILexicalBlock(scope: !87, file: !2, line: 68, column: 7) -!87 = distinct !DILexicalBlock(scope: !81, file: !2, line: 67, column: 5) -!88 = !DILocation(line: 70, column: 7, scope: !86) -!89 = !DILocation(line: 72, column: 7, scope: !90) -!90 = distinct !DILexicalBlock(scope: !87, file: !2, line: 71, column: 7) -!91 = !DILocation(line: 73, column: 7, scope: !90) -!92 = !DILocation(line: 74, column: 11, scope: !90) -!93 = !DILocation(line: 75, column: 7, scope: !90) -!94 = !DILocation(line: 78, column: 6, scope: !95) -!95 = distinct !DILexicalBlock(scope: !82, file: !2, line: 77, column: 5) -!96 = !DILocation(line: 79, column: 5, scope: !95) -!97 = distinct !DISubprogram(name: "Donate", linkageName: "Donate", scope: !2, file: !2, line: 60, type: !5, scopeLine: 60, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!98 = !DILocation(line: 60, column: 12, scope: !97) -!99 = distinct !DISubprogram(name: "GetFunds", linkageName: "GetFunds", scope: !2, file: !2, line: 83, type: !5, scopeLine: 83, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!100 = !DILocation(line: 84, column: 14, scope: !99) -!101 = !DILocation(line: 85, column: 3, scope: !99) -!102 = !DILocation(line: 87, column: 6, scope: !103) -!103 = distinct !DILexicalBlock(scope: !104, file: !2, line: 86, column: 5) -!104 = distinct !DILexicalBlock(scope: !99, file: !2, line: 85, column: 3) -!105 = !DILocation(line: 88, column: 5, scope: !103) -!106 = !DILocation(line: 90, column: 5, scope: !107) -!107 = distinct !DILexicalBlock(scope: !104, file: !2, line: 89, column: 5) -!108 = !DILocation(line: 91, column: 15, scope: !107) -!109 = !DILocation(line: 92, column: 10, scope: !107) -!110 = !DILocation(line: 93, column: 5, scope: !107) -!111 = !DILocation(line: 94, column: 10, scope: !107) -!112 = !DILocation(line: 95, column: 10, scope: !107) -!113 = !DILocation(line: 96, column: 10, scope: !107) -!114 = !DILocation(line: 97, column: 5, scope: !107) -!115 = !DILocation(line: 99, column: 8, scope: !116) -!116 = distinct !DILexicalBlock(scope: !117, file: !2, line: 98, column: 7) -!117 = distinct !DILexicalBlock(scope: !107, file: !2, line: 97, column: 5) -!118 = !DILocation(line: 100, column: 7, scope: !116) -!119 = !DILocation(line: 102, column: 12, scope: !120) -!120 = distinct !DILexicalBlock(scope: !117, file: !2, line: 101, column: 7) -!121 = !DILocation(line: 103, column: 7, scope: !120) -!122 = !DILocation(line: 104, column: 13, scope: !120) -!123 = !DILocation(line: 105, column: 11, scope: !120) -!124 = !DILocation(line: 106, column: 8, scope: !120) -!125 = !DILocation(line: 107, column: 7, scope: !120) -!126 = !DILocation(line: 108, column: 4, scope: !120) -!127 = distinct !DISubprogram(name: "GetFunds", linkageName: "GetFunds", scope: !2, file: !2, line: 83, type: !5, scopeLine: 83, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!128 = !DILocation(line: 83, column: 12, scope: !127) -!129 = distinct !DISubprogram(name: "ClaimBack", linkageName: "ClaimBack", scope: !2, file: !2, line: 114, type: !5, scopeLine: 114, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!130 = !DILocation(line: 115, column: 3, scope: !129) -!131 = !DILocation(line: 116, column: 20, scope: !129) -!132 = !DILocation(line: 117, column: 3, scope: !129) -!133 = !DILocation(line: 119, column: 6, scope: !134) -!134 = distinct !DILexicalBlock(scope: !135, file: !2, line: 118, column: 5) -!135 = distinct !DILexicalBlock(scope: !129, file: !2, line: 117, column: 3) -!136 = !DILocation(line: 120, column: 5, scope: !134) -!137 = !DILocation(line: 122, column: 5, scope: !138) -!138 = distinct !DILexicalBlock(scope: !135, file: !2, line: 121, column: 5) -!139 = !DILocation(line: 123, column: 5, scope: !138) -!140 = !DILocation(line: 125, column: 5, scope: !138) -!141 = !DILocation(line: 126, column: 10, scope: !138) -!142 = !DILocation(line: 127, column: 10, scope: !138) -!143 = !DILocation(line: 128, column: 10, scope: !138) -!144 = !DILocation(line: 129, column: 10, scope: !138) -!145 = !DILocation(line: 130, column: 10, scope: !138) -!146 = !DILocation(line: 131, column: 5, scope: !138) -!147 = !DILocation(line: 133, column: 8, scope: !148) -!148 = distinct !DILexicalBlock(scope: !149, file: !2, line: 132, column: 7) -!149 = distinct !DILexicalBlock(scope: !138, file: !2, line: 131, column: 5) -!150 = !DILocation(line: 134, column: 7, scope: !148) -!151 = !DILocation(line: 136, column: 13, scope: !152) -!152 = distinct !DILexicalBlock(scope: !149, file: !2, line: 135, column: 7) -!153 = !DILocation(line: 137, column: 7, scope: !152) -!154 = !DILocation(line: 139, column: 10, scope: !155) -!155 = distinct !DILexicalBlock(scope: !156, file: !2, line: 138, column: 9) -!156 = distinct !DILexicalBlock(scope: !152, file: !2, line: 137, column: 7) -!157 = !DILocation(line: 140, column: 9, scope: !155) -!158 = !DILocation(line: 142, column: 15, scope: !159) -!159 = distinct !DILexicalBlock(scope: !156, file: !2, line: 141, column: 9) -!160 = !DILocation(line: 143, column: 9, scope: !159) -!161 = !DILocation(line: 144, column: 13, scope: !159) -!162 = !DILocation(line: 145, column: 13, scope: !159) -!163 = !DILocation(line: 146, column: 10, scope: !159) -!164 = !DILocation(line: 147, column: 9, scope: !159) -!165 = !DILocation(line: 148, column: 6, scope: !159) -!166 = distinct !DISubprogram(name: "ClaimBack", linkageName: "ClaimBack", scope: !2, file: !2, line: 114, type: !5, scopeLine: 114, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!167 = !DILocation(line: 114, column: 12, scope: !166) +!3 = distinct !DISubprogram(name: "$fundef_34", linkageName: "$fundef_34", scope: !2, file: !2, line: 32, type: !4, scopeLine: 32, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!4 = !DISubroutineType(types: !5) +!5 = !{!6} +!6 = !DIBasicType(tag: DW_TAG_unspecified_type, name: "void") +!7 = !{} +!8 = !DILocalVariable(name: "blk2", scope: !3, file: !2, line: 31, type: !9) +!9 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "BNum", baseType: !10, size: 8, align: 8, dwarfAddressSpace: 0) +!10 = !DIBasicType(name: "BNum", size: 8) +!11 = !DILocation(line: 31, column: 8, scope: !3) +!12 = !DILocalVariable(name: "$retval_35", scope: !3, file: !2, line: 32, type: !13) +!13 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "Bool", baseType: !14, size: 8, align: 8, dwarfAddressSpace: 0) +!14 = !DIBasicType(name: "Bool", size: 8) +!15 = !DILocation(line: 32, column: 5, scope: !3) +!16 = !DILocalVariable(name: "bc1", scope: !3, file: !2, line: 32, type: !13) +!17 = !DILocation(line: 32, column: 9, scope: !3) +!18 = !DILocation(line: 32, column: 15, scope: !3) +!19 = !DILocalVariable(name: "bc2", scope: !3, file: !2, line: 33, type: !13) +!20 = !DILocation(line: 33, column: 9, scope: !3) +!21 = !DILocation(line: 33, column: 15, scope: !3) +!22 = !DILocation(line: 34, column: 5, scope: !3) +!23 = !DILocalVariable(name: "$BoolUtils.orb_3", scope: !3, file: !2, line: 34, type: !13) +!24 = distinct !DISubprogram(name: "$fundef_32", linkageName: "$fundef_32", scope: !2, file: !2, line: 31, type: !4, scopeLine: 31, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!25 = !DILocalVariable(name: "blk1", scope: !24, file: !2, line: 30, type: !9) +!26 = !DILocation(line: 30, column: 8, scope: !24) +!27 = !DILocation(line: 32, column: 5, scope: !24) +!28 = distinct !DISubprogram(name: "$fundef_30", linkageName: "$fundef_30", scope: !29, file: !29, line: 15, type: !4, scopeLine: 15, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!29 = !DIFile(filename: "BoolUtils.scillib", directory: "../src/stdlib") +!30 = !DILocalVariable(name: "c", scope: !28, file: !29, line: 14, type: !13) +!31 = !DILocation(line: 14, column: 26, scope: !28) +!32 = !DILocalVariable(name: "$retval_31", scope: !28, file: !29, line: 15, type: !13) +!33 = !DILocation(line: 15, column: 5, scope: !28) +!34 = !DILocation(line: 16, column: 16, scope: !35) +!35 = distinct !DILexicalBlock(scope: !36, file: !29, line: 16, column: 7) +!36 = distinct !DILexicalBlock(scope: !28, file: !29, line: 15, column: 5) +!37 = !DILocation(line: 17, column: 16, scope: !38) +!38 = distinct !DILexicalBlock(scope: !36, file: !29, line: 17, column: 7) +!39 = distinct !DISubprogram(name: "$fundef_28", linkageName: "$fundef_28", scope: !29, file: !29, line: 14, type: !4, scopeLine: 14, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!40 = !DILocalVariable(name: "b", scope: !39, file: !29, line: 14, type: !13) +!41 = !DILocation(line: 14, column: 8, scope: !39) +!42 = !DILocation(line: 15, column: 5, scope: !39) +!43 = distinct !DISubprogram(name: "$fundef_40", linkageName: "$fundef_40", scope: !2, file: !2, line: 21, type: !4, scopeLine: 21, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!44 = !DILocalVariable(name: "amount", scope: !43, file: !2, line: 20, type: !45) +!45 = !DIBasicType(name: "Uint128", size: 16) +!46 = !DILocation(line: 20, column: 8, scope: !43) +!47 = !DILocalVariable(name: "$retval_41", scope: !43, file: !2, line: 21, type: !48) +!48 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "Option (Map (ByStr20) (Uint128))", baseType: !49, size: 8, align: 8, dwarfAddressSpace: 0) +!49 = !DIBasicType(name: "Option (Map (ByStr20) (Uint128))", size: 8) +!50 = !DILocation(line: 21, column: 5, scope: !43) +!51 = !DILocalVariable(name: "c", scope: !43, file: !2, line: 21, type: !13) +!52 = !DILocation(line: 21, column: 9, scope: !43) +!53 = !DILocation(line: 21, column: 13, scope: !43) +!54 = !DILocation(line: 22, column: 5, scope: !43) +!55 = !DILocalVariable(name: "bs1", scope: !56, file: !2, line: 24, type: !58) +!56 = distinct !DILexicalBlock(scope: !57, file: !2, line: 23, column: 7) +!57 = distinct !DILexicalBlock(scope: !43, file: !2, line: 22, column: 5) +!58 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "Map (ByStr20) (Uint128)", baseType: !59, size: 8, align: 8, dwarfAddressSpace: 0) +!59 = !DIBasicType(name: "Map (ByStr20) (Uint128)", size: 8) +!60 = !DILocation(line: 24, column: 11, scope: !56) +!61 = !DILocation(line: 24, column: 17, scope: !56) +!62 = !DILocation(line: 25, column: 7, scope: !56) +!63 = !DILocation(line: 26, column: 16, scope: !64) +!64 = distinct !DILexicalBlock(scope: !57, file: !2, line: 26, column: 7) +!65 = distinct !DISubprogram(name: "$fundef_38", linkageName: "$fundef_38", scope: !2, file: !2, line: 20, type: !4, scopeLine: 20, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!66 = !DILocalVariable(name: "sender", scope: !65, file: !2, line: 19, type: !67) +!67 = !DIBasicType(name: "ByStr20", size: 20) +!68 = !DILocation(line: 19, column: 8, scope: !65) +!69 = !DILocation(line: 21, column: 5, scope: !65) +!70 = distinct !DISubprogram(name: "$fundef_36", linkageName: "$fundef_36", scope: !2, file: !2, line: 19, type: !4, scopeLine: 19, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!71 = !DILocalVariable(name: "bs", scope: !70, file: !2, line: 18, type: !58) +!72 = !DILocation(line: 18, column: 8, scope: !70) +!73 = !DILocation(line: 20, column: 3, scope: !70) +!74 = distinct !DISubprogram(name: "$fundef_42", linkageName: "$fundef_42", scope: !2, file: !2, line: 13, type: !4, scopeLine: 13, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!75 = !DILocalVariable(name: "msg", scope: !74, file: !2, line: 12, type: !76) +!76 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "Message", baseType: !77, size: 8, align: 8, dwarfAddressSpace: 0) +!77 = !DIBasicType(name: "Message", size: 8) +!78 = !DILocation(line: 12, column: 8, scope: !74) +!79 = !DILocalVariable(name: "$retval_43", scope: !74, file: !2, line: 13, type: !80) +!80 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "List (Message)", baseType: !81, size: 8, align: 8, dwarfAddressSpace: 0) +!81 = !DIBasicType(name: "List (Message)", size: 8) +!82 = !DILocation(line: 13, column: 5, scope: !74) +!83 = !DILocalVariable(name: "nil_msg", scope: !74, file: !2, line: 13, type: !80) +!84 = !DILocation(line: 13, column: 9, scope: !74) +!85 = !DILocation(line: 13, column: 19, scope: !74) +!86 = !DILocation(line: 14, column: 5, scope: !74) +!87 = distinct !DISubprogram(name: "$fundef_22", linkageName: "$fundef_22", scope: !29, file: !29, line: 22, type: !4, scopeLine: 22, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!88 = !DILocalVariable(name: "b", scope: !87, file: !29, line: 21, type: !13) +!89 = !DILocation(line: 21, column: 8, scope: !87) +!90 = !DILocalVariable(name: "$retval_23", scope: !87, file: !29, line: 22, type: !13) +!91 = !DILocation(line: 22, column: 5, scope: !87) +!92 = !DILocation(line: 23, column: 15, scope: !93) +!93 = distinct !DILexicalBlock(scope: !94, file: !29, line: 23, column: 7) +!94 = distinct !DILexicalBlock(scope: !87, file: !29, line: 22, column: 5) +!95 = !DILocation(line: 24, column: 16, scope: !96) +!96 = distinct !DILexicalBlock(scope: !94, file: !29, line: 24, column: 7) +!97 = distinct !DISubprogram(name: "$fundef_26", linkageName: "$fundef_26", scope: !29, file: !29, line: 8, type: !4, scopeLine: 8, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!98 = !DILocalVariable(name: "c", scope: !97, file: !29, line: 7, type: !13) +!99 = !DILocation(line: 7, column: 8, scope: !97) +!100 = !DILocalVariable(name: "$retval_27", scope: !97, file: !29, line: 8, type: !13) +!101 = !DILocation(line: 8, column: 5, scope: !97) +!102 = !DILocation(line: 9, column: 16, scope: !103) +!103 = distinct !DILexicalBlock(scope: !104, file: !29, line: 9, column: 7) +!104 = distinct !DILexicalBlock(scope: !97, file: !29, line: 8, column: 5) +!105 = !DILocation(line: 10, column: 16, scope: !106) +!106 = distinct !DILexicalBlock(scope: !104, file: !29, line: 10, column: 7) +!107 = distinct !DISubprogram(name: "$fundef_24", linkageName: "$fundef_24", scope: !29, file: !29, line: 7, type: !4, scopeLine: 7, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!108 = !DILocalVariable(name: "b", scope: !107, file: !29, line: 6, type: !13) +!109 = !DILocation(line: 6, column: 8, scope: !107) +!110 = !DILocation(line: 8, column: 5, scope: !107) +!111 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !112, file: !112, type: !4, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!112 = !DIFile(filename: ".", directory: ".") +!113 = !DILocation(line: 0, scope: !111) +!114 = !DILocation(line: 7, column: 3, scope: !111) +!115 = !DILocation(line: 22, column: 5, scope: !111) +!116 = !DILocation(line: 13, column: 5, scope: !111) +!117 = !DILocation(line: 19, column: 3, scope: !111) +!118 = !DILocation(line: 14, column: 21, scope: !111) +!119 = !DILocation(line: 31, column: 3, scope: !111) +!120 = !DILocation(line: 36, column: 21, scope: !111) +!121 = !DILocation(line: 37, column: 28, scope: !111) +!122 = !DILocation(line: 38, column: 28, scope: !111) +!123 = !DILocation(line: 39, column: 23, scope: !111) +!124 = !DILocation(line: 40, column: 23, scope: !111) +!125 = !DILocation(line: 41, column: 23, scope: !111) +!126 = !DILocation(line: 42, column: 25, scope: !111) +!127 = !DILocation(line: 43, column: 27, scope: !111) +!128 = !DILocation(line: 44, column: 22, scope: !111) +!129 = distinct !DISubprogram(name: "_deploy_ops", linkageName: "_deploy_ops", scope: !112, file: !112, type: !4, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!130 = !DILocalVariable(name: "$backers_44", scope: !129, file: !2, line: 57, type: !58) +!131 = !DILocation(line: 57, column: 7, scope: !129) +!132 = !DILocation(line: 57, column: 39, scope: !129) +!133 = !DILocalVariable(name: "$funded_45", scope: !129, file: !2, line: 58, type: !13) +!134 = !DILocation(line: 58, column: 7, scope: !129) +!135 = !DILocation(line: 58, column: 23, scope: !129) +!136 = distinct !DISubprogram(name: "Donate", linkageName: "Donate", scope: !2, file: !2, line: 60, type: !4, scopeLine: 60, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!137 = !DILocalVariable(name: "_sender", scope: !136, file: !2, line: 60, type: !138) +!138 = !DIBasicType(name: "ByStr20 with end", size: 20) +!139 = !DILocation(line: 60, column: 12, scope: !136) +!140 = !DILocalVariable(name: "_origin", scope: !136, file: !2, line: 60, type: !138) +!141 = !DILocalVariable(name: "_amount", scope: !136, file: !2, line: 60, type: !45) +!142 = !DILocalVariable(name: "blk", scope: !136, file: !2, line: 61, type: !9) +!143 = !DILocation(line: 61, column: 3, scope: !136) +!144 = !DILocalVariable(name: "in_time", scope: !136, file: !2, line: 62, type: !13) +!145 = !DILocation(line: 62, column: 3, scope: !136) +!146 = !DILocation(line: 62, column: 13, scope: !136) +!147 = !DILocalVariable(name: "$crowdfunding.blk_leq_8", scope: !136, file: !2, line: 62, type: !13) +!148 = !DILocation(line: 63, column: 3, scope: !136) +!149 = !DILocalVariable(name: "bs", scope: !150, file: !2, line: 65, type: !58) +!150 = distinct !DILexicalBlock(scope: !151, file: !2, line: 64, column: 5) +!151 = distinct !DILexicalBlock(scope: !136, file: !2, line: 63, column: 3) +!152 = !DILocation(line: 65, column: 5, scope: !150) +!153 = !DILocalVariable(name: "res", scope: !150, file: !2, line: 66, type: !48) +!154 = !DILocation(line: 66, column: 5, scope: !150) +!155 = !DILocation(line: 66, column: 11, scope: !150) +!156 = !DILocalVariable(name: "$crowdfunding.check_update_6", scope: !150, file: !2, line: 66, type: !48) +!157 = !DILocation(line: 67, column: 5, scope: !150) +!158 = !DILocalVariable(name: "e", scope: !159, file: !2, line: 69, type: !161) +!159 = distinct !DILexicalBlock(scope: !160, file: !2, line: 68, column: 7) +!160 = distinct !DILexicalBlock(scope: !150, file: !2, line: 67, column: 5) +!161 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "Event", baseType: !162, size: 8, align: 8, dwarfAddressSpace: 0) +!162 = !DIBasicType(name: "Event", size: 8) +!163 = !DILocation(line: 69, column: 7, scope: !159) +!164 = !DILocation(line: 69, column: 11, scope: !159) +!165 = !DILocation(line: 70, column: 7, scope: !159) +!166 = !DILocation(line: 72, column: 7, scope: !167) +!167 = distinct !DILexicalBlock(scope: !160, file: !2, line: 71, column: 7) +!168 = !DILocation(line: 73, column: 7, scope: !167) +!169 = !DILocalVariable(name: "e", scope: !167, file: !2, line: 74, type: !161) +!170 = !DILocation(line: 74, column: 7, scope: !167) +!171 = !DILocation(line: 74, column: 11, scope: !167) +!172 = !DILocation(line: 75, column: 7, scope: !167) +!173 = !DILocalVariable(name: "e", scope: !174, file: !2, line: 78, type: !161) +!174 = distinct !DILexicalBlock(scope: !151, file: !2, line: 77, column: 5) +!175 = !DILocation(line: 78, column: 2, scope: !174) +!176 = !DILocation(line: 78, column: 6, scope: !174) +!177 = !DILocation(line: 79, column: 5, scope: !174) +!178 = distinct !DISubprogram(name: "Donate", linkageName: "Donate", scope: !2, file: !2, line: 60, type: !4, scopeLine: 60, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!179 = !DILocation(line: 60, column: 12, scope: !178) +!180 = distinct !DISubprogram(name: "GetFunds", linkageName: "GetFunds", scope: !2, file: !2, line: 83, type: !4, scopeLine: 83, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!181 = !DILocalVariable(name: "_sender", scope: !180, file: !2, line: 83, type: !138) +!182 = !DILocation(line: 83, column: 12, scope: !180) +!183 = !DILocalVariable(name: "_origin", scope: !180, file: !2, line: 83, type: !138) +!184 = !DILocalVariable(name: "_amount", scope: !180, file: !2, line: 83, type: !45) +!185 = !DILocalVariable(name: "is_owner", scope: !180, file: !2, line: 84, type: !13) +!186 = !DILocation(line: 84, column: 3, scope: !180) +!187 = !DILocation(line: 84, column: 14, scope: !180) +!188 = !DILocation(line: 85, column: 3, scope: !180) +!189 = !DILocalVariable(name: "e", scope: !190, file: !2, line: 87, type: !161) +!190 = distinct !DILexicalBlock(scope: !191, file: !2, line: 86, column: 5) +!191 = distinct !DILexicalBlock(scope: !180, file: !2, line: 85, column: 3) +!192 = !DILocation(line: 87, column: 2, scope: !190) +!193 = !DILocation(line: 87, column: 6, scope: !190) +!194 = !DILocation(line: 88, column: 5, scope: !190) +!195 = !DILocalVariable(name: "blk", scope: !196, file: !2, line: 90, type: !9) +!196 = distinct !DILexicalBlock(scope: !191, file: !2, line: 89, column: 5) +!197 = !DILocation(line: 90, column: 5, scope: !196) +!198 = !DILocalVariable(name: "in_time", scope: !196, file: !2, line: 91, type: !13) +!199 = !DILocation(line: 91, column: 5, scope: !196) +!200 = !DILocation(line: 91, column: 15, scope: !196) +!201 = !DILocalVariable(name: "$crowdfunding.blk_leq_15", scope: !196, file: !2, line: 91, type: !13) +!202 = !DILocalVariable(name: "c1", scope: !196, file: !2, line: 92, type: !13) +!203 = !DILocation(line: 92, column: 5, scope: !196) +!204 = !DILocalVariable(name: "$BoolUtils.negb_13", scope: !196, file: !2, line: 92, type: !13) +!205 = !DILocation(line: 92, column: 10, scope: !196) +!206 = !DILocalVariable(name: "bal", scope: !196, file: !2, line: 93, type: !45) +!207 = !DILocation(line: 93, column: 5, scope: !196) +!208 = !DILocalVariable(name: "c2", scope: !196, file: !2, line: 94, type: !13) +!209 = !DILocation(line: 94, column: 5, scope: !196) +!210 = !DILocation(line: 94, column: 10, scope: !196) +!211 = !DILocalVariable(name: "c3", scope: !196, file: !2, line: 95, type: !13) +!212 = !DILocation(line: 95, column: 5, scope: !196) +!213 = !DILocalVariable(name: "$BoolUtils.negb_12", scope: !196, file: !2, line: 95, type: !13) +!214 = !DILocation(line: 95, column: 10, scope: !196) +!215 = !DILocalVariable(name: "c4", scope: !196, file: !2, line: 96, type: !13) +!216 = !DILocation(line: 96, column: 5, scope: !196) +!217 = !DILocation(line: 96, column: 10, scope: !196) +!218 = !DILocalVariable(name: "$BoolUtils.andb_11", scope: !196, file: !2, line: 96, type: !13) +!219 = !DILocation(line: 97, column: 5, scope: !196) +!220 = !DILocalVariable(name: "e", scope: !221, file: !2, line: 99, type: !161) +!221 = distinct !DILexicalBlock(scope: !222, file: !2, line: 98, column: 7) +!222 = distinct !DILexicalBlock(scope: !196, file: !2, line: 97, column: 5) +!223 = !DILocation(line: 99, column: 4, scope: !221) +!224 = !DILocation(line: 99, column: 8, scope: !221) +!225 = !DILocation(line: 100, column: 7, scope: !221) +!226 = !DILocalVariable(name: "tt", scope: !227, file: !2, line: 102, type: !13) +!227 = distinct !DILexicalBlock(scope: !222, file: !2, line: 101, column: 7) +!228 = !DILocation(line: 102, column: 7, scope: !227) +!229 = !DILocation(line: 102, column: 12, scope: !227) +!230 = !DILocation(line: 103, column: 7, scope: !227) +!231 = !DILocalVariable(name: "msg", scope: !227, file: !2, line: 104, type: !76) +!232 = !DILocation(line: 104, column: 6, scope: !227) +!233 = !DILocation(line: 104, column: 13, scope: !227) +!234 = !DILocalVariable(name: "msgs", scope: !227, file: !2, line: 105, type: !80) +!235 = !DILocation(line: 105, column: 4, scope: !227) +!236 = !DILocalVariable(name: "$crowdfunding.one_msg_9", scope: !227, file: !2, line: 105, type: !80) +!237 = !DILocation(line: 105, column: 11, scope: !227) +!238 = !DILocalVariable(name: "e", scope: !227, file: !2, line: 106, type: !161) +!239 = !DILocation(line: 106, column: 4, scope: !227) +!240 = !DILocation(line: 106, column: 8, scope: !227) +!241 = !DILocation(line: 107, column: 7, scope: !227) +!242 = !DILocation(line: 108, column: 4, scope: !227) +!243 = distinct !DISubprogram(name: "GetFunds", linkageName: "GetFunds", scope: !2, file: !2, line: 83, type: !4, scopeLine: 83, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!244 = !DILocation(line: 83, column: 12, scope: !243) +!245 = distinct !DISubprogram(name: "ClaimBack", linkageName: "ClaimBack", scope: !2, file: !2, line: 114, type: !4, scopeLine: 114, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!246 = !DILocalVariable(name: "_sender", scope: !245, file: !2, line: 114, type: !138) +!247 = !DILocation(line: 114, column: 12, scope: !245) +!248 = !DILocalVariable(name: "_origin", scope: !245, file: !2, line: 114, type: !138) +!249 = !DILocalVariable(name: "_amount", scope: !245, file: !2, line: 114, type: !45) +!250 = !DILocalVariable(name: "blk", scope: !245, file: !2, line: 115, type: !9) +!251 = !DILocation(line: 115, column: 3, scope: !245) +!252 = !DILocalVariable(name: "after_deadline", scope: !245, file: !2, line: 116, type: !13) +!253 = !DILocation(line: 116, column: 3, scope: !245) +!254 = !DILocation(line: 116, column: 20, scope: !245) +!255 = !DILocation(line: 117, column: 3, scope: !245) +!256 = !DILocalVariable(name: "e", scope: !257, file: !2, line: 119, type: !161) +!257 = distinct !DILexicalBlock(scope: !258, file: !2, line: 118, column: 5) +!258 = distinct !DILexicalBlock(scope: !245, file: !2, line: 117, column: 3) +!259 = !DILocation(line: 119, column: 2, scope: !257) +!260 = !DILocation(line: 119, column: 6, scope: !257) +!261 = !DILocation(line: 120, column: 5, scope: !257) +!262 = !DILocalVariable(name: "bs", scope: !263, file: !2, line: 122, type: !58) +!263 = distinct !DILexicalBlock(scope: !258, file: !2, line: 121, column: 5) +!264 = !DILocation(line: 122, column: 5, scope: !263) +!265 = !DILocalVariable(name: "bal", scope: !263, file: !2, line: 123, type: !45) +!266 = !DILocation(line: 123, column: 5, scope: !263) +!267 = !DILocalVariable(name: "f", scope: !263, file: !2, line: 125, type: !13) +!268 = !DILocation(line: 125, column: 5, scope: !263) +!269 = !DILocalVariable(name: "c1", scope: !263, file: !2, line: 126, type: !13) +!270 = !DILocation(line: 126, column: 5, scope: !263) +!271 = !DILocation(line: 126, column: 10, scope: !263) +!272 = !DILocalVariable(name: "c2", scope: !263, file: !2, line: 127, type: !13) +!273 = !DILocation(line: 127, column: 5, scope: !263) +!274 = !DILocation(line: 127, column: 10, scope: !263) +!275 = !DILocalVariable(name: "c3", scope: !263, file: !2, line: 128, type: !13) +!276 = !DILocation(line: 128, column: 5, scope: !263) +!277 = !DILocalVariable(name: "$BoolUtils.negb_21", scope: !263, file: !2, line: 128, type: !13) +!278 = !DILocation(line: 128, column: 10, scope: !263) +!279 = !DILocalVariable(name: "c4", scope: !263, file: !2, line: 129, type: !13) +!280 = !DILocation(line: 129, column: 5, scope: !263) +!281 = !DILocation(line: 129, column: 10, scope: !263) +!282 = !DILocalVariable(name: "$BoolUtils.andb_20", scope: !263, file: !2, line: 129, type: !13) +!283 = !DILocalVariable(name: "c5", scope: !263, file: !2, line: 130, type: !13) +!284 = !DILocation(line: 130, column: 5, scope: !263) +!285 = !DILocation(line: 130, column: 10, scope: !263) +!286 = !DILocalVariable(name: "$BoolUtils.andb_18", scope: !263, file: !2, line: 130, type: !13) +!287 = !DILocation(line: 131, column: 5, scope: !263) +!288 = !DILocalVariable(name: "e", scope: !289, file: !2, line: 133, type: !161) +!289 = distinct !DILexicalBlock(scope: !290, file: !2, line: 132, column: 7) +!290 = distinct !DILexicalBlock(scope: !263, file: !2, line: 131, column: 5) +!291 = !DILocation(line: 133, column: 4, scope: !289) +!292 = !DILocation(line: 133, column: 8, scope: !289) +!293 = !DILocation(line: 134, column: 7, scope: !289) +!294 = !DILocalVariable(name: "res", scope: !295, file: !2, line: 136, type: !296) +!295 = distinct !DILexicalBlock(scope: !290, file: !2, line: 135, column: 7) +!296 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "Option (Uint128)", baseType: !297, size: 8, align: 8, dwarfAddressSpace: 0) +!297 = !DIBasicType(name: "Option (Uint128)", size: 8) +!298 = !DILocation(line: 136, column: 7, scope: !295) +!299 = !DILocation(line: 136, column: 13, scope: !295) +!300 = !DILocation(line: 137, column: 7, scope: !295) +!301 = !DILocalVariable(name: "e", scope: !302, file: !2, line: 139, type: !161) +!302 = distinct !DILexicalBlock(scope: !303, file: !2, line: 138, column: 9) +!303 = distinct !DILexicalBlock(scope: !295, file: !2, line: 137, column: 7) +!304 = !DILocation(line: 139, column: 6, scope: !302) +!305 = !DILocation(line: 139, column: 10, scope: !302) +!306 = !DILocation(line: 140, column: 9, scope: !302) +!307 = !DILocalVariable(name: "bs1", scope: !308, file: !2, line: 142, type: !58) +!308 = distinct !DILexicalBlock(scope: !303, file: !2, line: 141, column: 9) +!309 = !DILocation(line: 142, column: 9, scope: !308) +!310 = !DILocation(line: 142, column: 15, scope: !308) +!311 = !DILocation(line: 143, column: 9, scope: !308) +!312 = !DILocalVariable(name: "msg", scope: !308, file: !2, line: 144, type: !76) +!313 = !DILocation(line: 144, column: 6, scope: !308) +!314 = !DILocation(line: 144, column: 13, scope: !308) +!315 = !DILocalVariable(name: "msgs", scope: !308, file: !2, line: 145, type: !80) +!316 = !DILocation(line: 145, column: 6, scope: !308) +!317 = !DILocalVariable(name: "$crowdfunding.one_msg_16", scope: !308, file: !2, line: 145, type: !80) +!318 = !DILocation(line: 145, column: 13, scope: !308) +!319 = !DILocalVariable(name: "e", scope: !308, file: !2, line: 146, type: !161) +!320 = !DILocation(line: 146, column: 6, scope: !308) +!321 = !DILocation(line: 146, column: 10, scope: !308) +!322 = !DILocation(line: 147, column: 9, scope: !308) +!323 = !DILocation(line: 148, column: 6, scope: !308) +!324 = distinct !DISubprogram(name: "ClaimBack", linkageName: "ClaimBack", scope: !2, file: !2, line: 114, type: !4, scopeLine: 114, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!325 = !DILocation(line: 114, column: 12, scope: !324) diff --git a/testsuite/contr/crowdfunding.ll b/testsuite/contr/crowdfunding.ll index b4aea6f4..5b2b82a1 100644 --- a/testsuite/contr/crowdfunding.ll +++ b/testsuite/contr/crowdfunding.ll @@ -4,7 +4,7 @@ ; 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-pc-linux-gnu" +target triple = "x86_64-unknown-linux-gnu" %"$TyDescrTy_PrimTyp_46" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/testsuite/contr/ecdsa.dbg.ll b/testsuite/contr/ecdsa.dbg.ll index c50b8bac..33a4d440 100644 --- a/testsuite/contr/ecdsa.dbg.ll +++ b/testsuite/contr/ecdsa.dbg.ll @@ -4,7 +4,7 @@ ; ModuleID = 'Ecdsa' source_filename = "Ecdsa" target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-pc-linux-gnu" +target triple = "x86_64-unknown-linux-gnu" %"$TyDescrTy_PrimTyp_10" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } @@ -19,9 +19,9 @@ target triple = "x86_64-pc-linux-gnu" %CName_Cons_Message = type <{ i8, i8*, %TName_List_Message* }> %CName_Nil_Message = type <{ i8 }> %Uint32 = type { i32 } -%"$ParamDescr_449" = type { %ParamDescrString, %_TyDescrTy_Typ* } +%"$ParamDescr_455" = type { %ParamDescrString, %_TyDescrTy_Typ* } %ParamDescrString = type { i8*, i32 } -%"$TransDescr_450" = type { %ParamDescrString, i32, %"$ParamDescr_449"* } +%"$TransDescr_456" = type { %ParamDescrString, i32, %"$ParamDescr_455"* } %"$$fundef_7_env_94" = type {} %TName_Option_ByStr33 = type { i8, %CName_Some_ByStr33*, %CName_None_ByStr33* } %CName_Some_ByStr33 = type <{ i8, [33 x i8] }> @@ -119,46 +119,50 @@ target triple = "x86_64-pc-linux-gnu" @_cparam__scilla_version = global %Uint32 zeroinitializer @_cparam__this_address = global [20 x i8] zeroinitializer @_cparam__creation_block = global i8* null -@"$pub_key_157" = unnamed_addr constant [8 x i8] c"pub_key\00" -@"$pub_key_164" = unnamed_addr constant [8 x i8] c"pub_key\00" -@"$stringlit_241" = unnamed_addr constant [4 x i8] c"_tag" -@"$stringlit_246" = unnamed_addr constant [0 x i8] zeroinitializer -@"$stringlit_249" = unnamed_addr constant [10 x i8] c"_recipient" -@"$stringlit_256" = unnamed_addr constant [7 x i8] c"_amount" -@"$stringlit_263" = unnamed_addr constant [6 x i8] c"status" -@"$stringlit_268" = unnamed_addr constant [23 x i8] c"verification successful" -@"$stringlit_311" = unnamed_addr constant [4 x i8] c"_tag" -@"$stringlit_316" = unnamed_addr constant [0 x i8] zeroinitializer -@"$stringlit_319" = unnamed_addr constant [10 x i8] c"_recipient" -@"$stringlit_326" = unnamed_addr constant [7 x i8] c"_amount" -@"$stringlit_333" = unnamed_addr constant [6 x i8] c"status" -@"$stringlit_338" = unnamed_addr constant [19 x i8] c"verification failed" -@"$stringlit_381" = unnamed_addr constant [4 x i8] c"_tag" -@"$stringlit_386" = unnamed_addr constant [0 x i8] zeroinitializer -@"$stringlit_389" = unnamed_addr constant [10 x i8] c"_recipient" -@"$stringlit_396" = unnamed_addr constant [7 x i8] c"_amount" -@"$stringlit_403" = unnamed_addr constant [6 x i8] c"status" -@"$stringlit_408" = unnamed_addr constant [12 x i8] c"no key error" +@"$pub_key_158" = unnamed_addr constant [8 x i8] c"pub_key\00" +@"$pub_key_165" = unnamed_addr constant [8 x i8] c"pub_key\00" +@"$stringlit_242" = unnamed_addr constant [4 x i8] c"_tag" +@"$stringlit_247" = unnamed_addr constant [0 x i8] zeroinitializer +@"$stringlit_250" = unnamed_addr constant [10 x i8] c"_recipient" +@"$stringlit_257" = unnamed_addr constant [7 x i8] c"_amount" +@"$stringlit_264" = unnamed_addr constant [6 x i8] c"status" +@"$stringlit_269" = unnamed_addr constant [23 x i8] c"verification successful" +@"$stringlit_312" = unnamed_addr constant [4 x i8] c"_tag" +@"$stringlit_317" = unnamed_addr constant [0 x i8] zeroinitializer +@"$stringlit_320" = unnamed_addr constant [10 x i8] c"_recipient" +@"$stringlit_327" = unnamed_addr constant [7 x i8] c"_amount" +@"$stringlit_334" = unnamed_addr constant [6 x i8] c"status" +@"$stringlit_339" = unnamed_addr constant [19 x i8] c"verification failed" +@"$stringlit_382" = unnamed_addr constant [4 x i8] c"_tag" +@"$stringlit_387" = unnamed_addr constant [0 x i8] zeroinitializer +@"$stringlit_390" = unnamed_addr constant [10 x i8] c"_recipient" +@"$stringlit_397" = unnamed_addr constant [7 x i8] c"_amount" +@"$stringlit_404" = unnamed_addr constant [6 x i8] c"status" +@"$stringlit_409" = unnamed_addr constant [12 x i8] c"no key error" @_tydescr_table = constant [22 x %_TyDescrTy_Typ*] [%_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_52", %_TyDescrTy_Typ* @"$TyDescr_Event_34", %_TyDescrTy_Typ* @"$TyDescr_Int64_16", %_TyDescrTy_Typ* @"$TyDescr_Addr_56", %_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_50", %_TyDescrTy_Typ* @"$TyDescr_Bystr20_46", %_TyDescrTy_Typ* @"$TyDescr_Bystr33_44", %_TyDescrTy_Typ* @"$TyDescr_Uint256_26", %_TyDescrTy_Typ* @"$TyDescr_Uint32_14", %_TyDescrTy_Typ* @"$TyDescr_ADT_Option_ByStr33_51", %_TyDescrTy_Typ* @"$TyDescr_Bystr64_42", %_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_40", %_TyDescrTy_Typ* @"$TyDescr_ReplicateContr_38", %_TyDescrTy_Typ* @"$TyDescr_Message_32", %_TyDescrTy_Typ* @"$TyDescr_Int32_12"] @_tydescr_table_length = constant i32 22 -@"$pname__scilla_version_451" = unnamed_addr constant [15 x i8] c"_scilla_version" -@"$pname__this_address_452" = unnamed_addr constant [13 x i8] c"_this_address" -@"$pname__creation_block_453" = unnamed_addr constant [15 x i8] c"_creation_block" -@_contract_parameters = constant [3 x %"$ParamDescr_449"] [%"$ParamDescr_449" { %ParamDescrString { i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$pname__scilla_version_451", i32 0, i32 0), i32 15 }, %_TyDescrTy_Typ* @"$TyDescr_Uint32_14" }, %"$ParamDescr_449" { %ParamDescrString { i8* getelementptr inbounds ([13 x i8], [13 x i8]* @"$pname__this_address_452", i32 0, i32 0), i32 13 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr20_46" }, %"$ParamDescr_449" { %ParamDescrString { i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$pname__creation_block_453", i32 0, i32 0), i32 15 }, %_TyDescrTy_Typ* @"$TyDescr_Bnum_30" }] +@"$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_14" }, %"$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_46" }, %"$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_30" }] @_contract_parameters_length = constant i32 3 -@"$tpname__amount_454" = unnamed_addr constant [7 x i8] c"_amount" -@"$tpname__origin_455" = unnamed_addr constant [7 x i8] c"_origin" -@"$tpname__sender_456" = unnamed_addr constant [7 x i8] c"_sender" -@"$tpname_msg_457" = unnamed_addr constant [3 x i8] c"msg" -@"$tpname_sig_458" = unnamed_addr constant [3 x i8] c"sig" -@"$tparams_verify_459" = unnamed_addr constant [5 x %"$ParamDescr_449"] [%"$ParamDescr_449" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_454", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_22" }, %"$ParamDescr_449" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_455", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_56" }, %"$ParamDescr_449" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_456", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_56" }, %"$ParamDescr_449" { %ParamDescrString { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$tpname_msg_457", i32 0, i32 0), i32 3 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr_40" }, %"$ParamDescr_449" { %ParamDescrString { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$tpname_sig_458", i32 0, i32 0), i32 3 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr64_42" }] -@"$tname_verify_460" = unnamed_addr constant [6 x i8] c"verify" -@_transition_parameters = constant [1 x %"$TransDescr_450"] [%"$TransDescr_450" { %ParamDescrString { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$tname_verify_460", i32 0, i32 0), i32 6 }, i32 5, %"$ParamDescr_449"* getelementptr inbounds ([5 x %"$ParamDescr_449"], [5 x %"$ParamDescr_449"]* @"$tparams_verify_459", i32 0, i32 0) }] +@"$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_msg_463" = unnamed_addr constant [3 x i8] c"msg" +@"$tpname_sig_464" = unnamed_addr constant [3 x i8] c"sig" +@"$tparams_verify_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_22" }, %"$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_56" }, %"$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_56" }, %"$ParamDescr_455" { %ParamDescrString { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$tpname_msg_463", i32 0, i32 0), i32 3 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr_40" }, %"$ParamDescr_455" { %ParamDescrString { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$tpname_sig_464", i32 0, i32 0), i32 3 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr64_42" }] +@"$tname_verify_466" = unnamed_addr constant [6 x i8] c"verify" +@_transition_parameters = constant [1 x %"$TransDescr_456"] [%"$TransDescr_456" { %ParamDescrString { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$tname_verify_466", i32 0, i32 0), i32 6 }, i32 5, %"$ParamDescr_455"* getelementptr inbounds ([5 x %"$ParamDescr_455"], [5 x %"$ParamDescr_455"]* @"$tparams_verify_465", i32 0, i32 0) }] @_transition_parameters_length = constant i32 1 -define internal %TName_List_Message* @"$fundef_7"(%"$$fundef_7_env_94"* %0, i8* %1) !dbg !4 { +define internal %TName_List_Message* @"$fundef_7"(%"$$fundef_7_env_94"* %0, i8* %1) !dbg !3 { entry: + %"$msg_120" = alloca i8*, align 8 + store i8* %1, i8** %"$msg_120", align 8 + call void @llvm.dbg.declare(metadata i8** %"$msg_120", metadata !8, metadata !DIExpression()), !dbg !11 %"$retval_8" = alloca %TName_List_Message*, align 8 + call void @llvm.dbg.declare(metadata %TName_List_Message** %"$retval_8", metadata !12, metadata !DIExpression()), !dbg !15 %"$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" @@ -171,6 +175,7 @@ entry: %"$consume_99" = sub i64 %"$gasrem_95", 1 store i64 %"$consume_99", i64* @_gasrem, align 8 %nil_msg = alloca %TName_List_Message*, align 8 + call void @llvm.dbg.declare(metadata %TName_List_Message** %nil_msg, metadata !16, metadata !DIExpression()), !dbg !17 %"$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" @@ -188,7 +193,7 @@ entry: %"$adtgep_106" = getelementptr inbounds %CName_Nil_Message, %CName_Nil_Message* %"$adtval_105", i32 0, i32 0 store i8 1, i8* %"$adtgep_106", align 1 %"$adtptr_107" = bitcast %CName_Nil_Message* %"$adtval_105" to %TName_List_Message* - store %TName_List_Message* %"$adtptr_107", %TName_List_Message** %nil_msg, align 8, !dbg !8 + store %TName_List_Message* %"$adtptr_107", %TName_List_Message** %nil_msg, align 8, !dbg !18 %"$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" @@ -211,585 +216,615 @@ entry: %"$adtgep_117" = getelementptr inbounds %CName_Cons_Message, %CName_Cons_Message* %"$adtval_114", i32 0, i32 2 store %TName_List_Message* %"$nil_msg_113", %TName_List_Message** %"$adtgep_117", align 8 %"$adtptr_118" = bitcast %CName_Cons_Message* %"$adtval_114" to %TName_List_Message* - store %TName_List_Message* %"$adtptr_118", %TName_List_Message** %"$retval_8", align 8, !dbg !9 + store %TName_List_Message* %"$adtptr_118", %TName_List_Message** %"$retval_8", align 8, !dbg !19 %"$$retval_8_119" = load %TName_List_Message*, %TName_List_Message** %"$retval_8", align 8 ret %TName_List_Message* %"$$retval_8_119" } +; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn +declare void @llvm.dbg.declare(metadata, metadata, metadata) #0 + declare void @_out_of_gas() declare i8* @_salloc(i8*, i64) -define void @_init_libs() !dbg !10 { +define void @_init_libs() !dbg !20 { entry: - %"$gasrem_120" = load i64, i64* @_gasrem, align 8 - %"$gascmp_121" = icmp ugt i64 5, %"$gasrem_120" - br i1 %"$gascmp_121", label %"$out_of_gas_122", label %"$have_gas_123" + %"$gasrem_121" = load i64, i64* @_gasrem, align 8 + %"$gascmp_122" = icmp ugt i64 5, %"$gasrem_121" + br i1 %"$gascmp_122", label %"$out_of_gas_123", label %"$have_gas_124" -"$out_of_gas_122": ; preds = %entry +"$out_of_gas_123": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_123" + br label %"$have_gas_124" -"$have_gas_123": ; preds = %"$out_of_gas_122", %entry - %"$consume_124" = sub i64 %"$gasrem_120", 5 - store i64 %"$consume_124", i64* @_gasrem, align 8 - store %Int32 { i32 5 }, %Int32* @"$_gas_charge_acc_2", align 4, !dbg !12 - %"$gasrem_125" = load i64, i64* @_gasrem, align 8 - %"$gascmp_126" = icmp ugt i64 2, %"$gasrem_125" - br i1 %"$gascmp_126", label %"$out_of_gas_127", label %"$have_gas_128" +"$have_gas_124": ; preds = %"$out_of_gas_123", %entry + %"$consume_125" = sub i64 %"$gasrem_121", 5 + store i64 %"$consume_125", i64* @_gasrem, align 8 + store %Int32 { i32 5 }, %Int32* @"$_gas_charge_acc_2", align 4, !dbg !22 + %"$gasrem_126" = load i64, i64* @_gasrem, align 8 + %"$gascmp_127" = icmp ugt i64 2, %"$gasrem_126" + br i1 %"$gascmp_127", label %"$out_of_gas_128", label %"$have_gas_129" -"$out_of_gas_127": ; preds = %"$have_gas_123" +"$out_of_gas_128": ; preds = %"$have_gas_124" call void @_out_of_gas() - br label %"$have_gas_128" + br label %"$have_gas_129" -"$have_gas_128": ; preds = %"$out_of_gas_127", %"$have_gas_123" - %"$consume_129" = sub i64 %"$gasrem_125", 2 - store i64 %"$consume_129", i64* @_gasrem, align 8 - store %Int32 { i32 2 }, %Int32* @"$_gas_charge_accPairUtils_1", align 4, !dbg !12 - %"$gasrem_130" = load i64, i64* @_gasrem, align 8 - %"$gascmp_131" = icmp ugt i64 6, %"$gasrem_130" - br i1 %"$gascmp_131", label %"$out_of_gas_132", label %"$have_gas_133" +"$have_gas_129": ; preds = %"$out_of_gas_128", %"$have_gas_124" + %"$consume_130" = sub i64 %"$gasrem_126", 2 + store i64 %"$consume_130", i64* @_gasrem, align 8 + store %Int32 { i32 2 }, %Int32* @"$_gas_charge_accPairUtils_1", align 4, !dbg !22 + %"$gasrem_131" = load i64, i64* @_gasrem, align 8 + %"$gascmp_132" = icmp ugt i64 6, %"$gasrem_131" + br i1 %"$gascmp_132", label %"$out_of_gas_133", label %"$have_gas_134" -"$out_of_gas_132": ; preds = %"$have_gas_128" +"$out_of_gas_133": ; preds = %"$have_gas_129" call void @_out_of_gas() - br label %"$have_gas_133" + br label %"$have_gas_134" -"$have_gas_133": ; preds = %"$out_of_gas_132", %"$have_gas_128" - %"$consume_134" = sub i64 %"$gasrem_130", 6 - store i64 %"$consume_134", i64* @_gasrem, align 8 - store %Int32 { i32 6 }, %Int32* @"$_gas_charge_accEcdsa_0", align 4, !dbg !12 - %"$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" +"$have_gas_134": ; preds = %"$out_of_gas_133", %"$have_gas_129" + %"$consume_135" = sub i64 %"$gasrem_131", 6 + store i64 %"$consume_135", i64* @_gasrem, align 8 + store %Int32 { i32 6 }, %Int32* @"$_gas_charge_accEcdsa_0", align 4, !dbg !22 + %"$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_137": ; preds = %"$have_gas_133" +"$out_of_gas_138": ; preds = %"$have_gas_134" call void @_out_of_gas() - br label %"$have_gas_138" + br label %"$have_gas_139" -"$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 { %TName_List_Message* (i8*, i8*)*, i8* } { %TName_List_Message* (i8*, i8*)* bitcast (%TName_List_Message* (%"$$fundef_7_env_94"*, i8*)* @"$fundef_7" to %TName_List_Message* (i8*, i8*)*), i8* null }, { %TName_List_Message* (i8*, i8*)*, i8* }* @ecdsa.one_msg, align 8, !dbg !13 +"$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 + store { %TName_List_Message* (i8*, i8*)*, i8* } { %TName_List_Message* (i8*, i8*)* bitcast (%TName_List_Message* (%"$$fundef_7_env_94"*, i8*)* @"$fundef_7" to %TName_List_Message* (i8*, i8*)*), i8* null }, { %TName_List_Message* (i8*, i8*)*, i8* }* @ecdsa.one_msg, align 8, !dbg !23 ret void } -define void @_deploy_ops() !dbg !14 { +define void @_deploy_ops() !dbg !24 { entry: - %"$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" + %"$gasrem_144" = load i64, i64* @_gasrem, align 8 + %"$gascmp_145" = icmp ugt i64 1, %"$gasrem_144" + br i1 %"$gascmp_145", label %"$out_of_gas_146", label %"$have_gas_147" -"$out_of_gas_145": ; preds = %entry +"$out_of_gas_146": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_146" + br label %"$have_gas_147" -"$have_gas_146": ; preds = %"$out_of_gas_145", %entry - %"$consume_147" = sub i64 %"$gasrem_143", 1 - store i64 %"$consume_147", i64* @_gasrem, align 8 +"$have_gas_147": ; preds = %"$out_of_gas_146", %entry + %"$consume_148" = sub i64 %"$gasrem_144", 1 + store i64 %"$consume_148", i64* @_gasrem, align 8 %"$pub_key_9" = alloca %TName_Option_ByStr33*, 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" + call void @llvm.dbg.declare(metadata %TName_Option_ByStr33** %"$pub_key_9", metadata !25, metadata !DIExpression()), !dbg !28 + %"$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_150": ; preds = %"$have_gas_146" +"$out_of_gas_151": ; preds = %"$have_gas_147" 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 - %"$adtval_153_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_153_salloc" = call i8* @_salloc(i8* %"$adtval_153_load", i64 1) - %"$adtval_153" = bitcast i8* %"$adtval_153_salloc" to %CName_None_ByStr33* - %"$adtgep_154" = getelementptr inbounds %CName_None_ByStr33, %CName_None_ByStr33* %"$adtval_153", i32 0, i32 0 - store i8 1, i8* %"$adtgep_154", align 1 - %"$adtptr_155" = bitcast %CName_None_ByStr33* %"$adtval_153" to %TName_Option_ByStr33* - store %TName_Option_ByStr33* %"$adtptr_155", %TName_Option_ByStr33** %"$pub_key_9", align 8, !dbg !15 - %"$execptr_load_156" = load i8*, i8** @_execptr, align 8 - %"$$pub_key_9_158" = load %TName_Option_ByStr33*, %TName_Option_ByStr33** %"$pub_key_9", align 8 - %"$update_value_159" = bitcast %TName_Option_ByStr33* %"$$pub_key_9_158" to i8* - call void @_update_field(i8* %"$execptr_load_156", i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$pub_key_157", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_ADT_Option_ByStr33_51", i32 0, i8* null, i8* %"$update_value_159"), !dbg !15 + br label %"$have_gas_152" + +"$have_gas_152": ; preds = %"$out_of_gas_151", %"$have_gas_147" + %"$consume_153" = sub i64 %"$gasrem_149", 1 + store i64 %"$consume_153", i64* @_gasrem, align 8 + %"$adtval_154_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_154_salloc" = call i8* @_salloc(i8* %"$adtval_154_load", i64 1) + %"$adtval_154" = bitcast i8* %"$adtval_154_salloc" to %CName_None_ByStr33* + %"$adtgep_155" = getelementptr inbounds %CName_None_ByStr33, %CName_None_ByStr33* %"$adtval_154", i32 0, i32 0 + store i8 1, i8* %"$adtgep_155", align 1 + %"$adtptr_156" = bitcast %CName_None_ByStr33* %"$adtval_154" to %TName_Option_ByStr33* + store %TName_Option_ByStr33* %"$adtptr_156", %TName_Option_ByStr33** %"$pub_key_9", align 8, !dbg !29 + %"$execptr_load_157" = load i8*, i8** @_execptr, align 8 + %"$$pub_key_9_159" = load %TName_Option_ByStr33*, %TName_Option_ByStr33** %"$pub_key_9", align 8 + %"$update_value_160" = bitcast %TName_Option_ByStr33* %"$$pub_key_9_159" to i8* + call void @_update_field(i8* %"$execptr_load_157", i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$pub_key_158", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_ADT_Option_ByStr33_51", i32 0, i8* null, i8* %"$update_value_160"), !dbg !29 ret void } declare void @_update_field(i8*, i8*, %_TyDescrTy_Typ*, i32, i8*, i8*) -define internal void @"$verify_160"(%Uint128 %_amount, [20 x i8]* %"$_origin_161", [20 x i8]* %"$_sender_162", %Bystr %msg, [64 x i8]* %"$sig_163") !dbg !16 { +define internal void @"$verify_161"(%Uint128 %_amount, [20 x i8]* %"$_origin_162", [20 x i8]* %"$_sender_163", %Bystr %msg, [64 x i8]* %"$sig_164") !dbg !30 { entry: - %_origin = load [20 x i8], [20 x i8]* %"$_origin_161", align 1 - %_sender = load [20 x i8], [20 x i8]* %"$_sender_162", align 1 - %sig = load [64 x i8], [64 x i8]* %"$sig_163", align 1 + %"$sig_443" = alloca [64 x i8]*, align 8 + store [64 x i8]* %"$sig_164", [64 x i8]** %"$sig_443", align 8 + call void @llvm.dbg.declare(metadata [64 x i8]** %"$sig_443", metadata !31, metadata !DIExpression()), !dbg !33 + %"$msg_442" = alloca %Bystr, align 8 + store %Bystr %msg, %Bystr* %"$msg_442", align 8 + call void @llvm.dbg.declare(metadata %Bystr* %"$msg_442", metadata !34, metadata !DIExpression()), !dbg !36 + %"$_sender_441" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_sender_163", [20 x i8]** %"$_sender_441", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_sender_441", metadata !37, metadata !DIExpression()), !dbg !39 + %"$_origin_440" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_origin_162", [20 x i8]** %"$_origin_440", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_origin_440", metadata !40, metadata !DIExpression()), !dbg !39 + %"$_amount_439" = alloca %Uint128, align 8 + store %Uint128 %_amount, %Uint128* %"$_amount_439", align 8 + call void @llvm.dbg.declare(metadata %Uint128* %"$_amount_439", metadata !41, metadata !DIExpression()), !dbg !39 + %_origin = load [20 x i8], [20 x i8]* %"$_origin_162", align 1 + %_sender = load [20 x i8], [20 x i8]* %"$_sender_163", align 1 + %sig = load [64 x i8], [64 x i8]* %"$sig_164", align 1 %pubk_o = alloca %TName_Option_ByStr33*, align 8 - %"$execptr_load_165" = load i8*, i8** @_execptr, align 8 - %"$pubk_o_call_166" = call i8* @_fetch_field(i8* %"$execptr_load_165", i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$pub_key_164", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_ADT_Option_ByStr33_51", i32 0, i8* null, i32 1), !dbg !17 - %"$pubk_o_167" = bitcast i8* %"$pubk_o_call_166" to %TName_Option_ByStr33* - store %TName_Option_ByStr33* %"$pubk_o_167", %TName_Option_ByStr33** %pubk_o, align 8 - %"$pubk_o_168" = load %TName_Option_ByStr33*, %TName_Option_ByStr33** %pubk_o, align 8 - %"$$pubk_o_168_169" = bitcast %TName_Option_ByStr33* %"$pubk_o_168" to i8* - %"$_literal_cost_call_170" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_ByStr33_51", i8* %"$$pubk_o_168_169") - %"$gasadd_171" = add i64 %"$_literal_cost_call_170", 0 - %"$gasrem_172" = load i64, i64* @_gasrem, align 8 - %"$gascmp_173" = icmp ugt i64 %"$gasadd_171", %"$gasrem_172" - br i1 %"$gascmp_173", label %"$out_of_gas_174", label %"$have_gas_175" - -"$out_of_gas_174": ; preds = %entry + call void @llvm.dbg.declare(metadata %TName_Option_ByStr33** %pubk_o, metadata !43, metadata !DIExpression()), !dbg !44 + %"$execptr_load_166" = load i8*, i8** @_execptr, align 8 + %"$pubk_o_call_167" = call i8* @_fetch_field(i8* %"$execptr_load_166", i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$pub_key_165", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_ADT_Option_ByStr33_51", i32 0, i8* null, i32 1), !dbg !44 + %"$pubk_o_168" = bitcast i8* %"$pubk_o_call_167" to %TName_Option_ByStr33* + store %TName_Option_ByStr33* %"$pubk_o_168", %TName_Option_ByStr33** %pubk_o, align 8 + %"$pubk_o_169" = load %TName_Option_ByStr33*, %TName_Option_ByStr33** %pubk_o, align 8 + %"$$pubk_o_169_170" = bitcast %TName_Option_ByStr33* %"$pubk_o_169" to i8* + %"$_literal_cost_call_171" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_ByStr33_51", i8* %"$$pubk_o_169_170") + %"$gasadd_172" = add i64 %"$_literal_cost_call_171", 0 + %"$gasrem_173" = load i64, i64* @_gasrem, align 8 + %"$gascmp_174" = icmp ugt i64 %"$gasadd_172", %"$gasrem_173" + br i1 %"$gascmp_174", label %"$out_of_gas_175", label %"$have_gas_176" + +"$out_of_gas_175": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_175" + br label %"$have_gas_176" -"$have_gas_175": ; preds = %"$out_of_gas_174", %entry - %"$consume_176" = sub i64 %"$gasrem_172", %"$gasadd_171" - store i64 %"$consume_176", i64* @_gasrem, align 8 - %"$gasrem_177" = load i64, i64* @_gasrem, align 8 - %"$gascmp_178" = icmp ugt i64 2, %"$gasrem_177" - br i1 %"$gascmp_178", label %"$out_of_gas_179", label %"$have_gas_180" +"$have_gas_176": ; preds = %"$out_of_gas_175", %entry + %"$consume_177" = sub i64 %"$gasrem_173", %"$gasadd_172" + store i64 %"$consume_177", i64* @_gasrem, align 8 + %"$gasrem_178" = load i64, i64* @_gasrem, align 8 + %"$gascmp_179" = icmp ugt i64 2, %"$gasrem_178" + br i1 %"$gascmp_179", label %"$out_of_gas_180", label %"$have_gas_181" -"$out_of_gas_179": ; preds = %"$have_gas_175" +"$out_of_gas_180": ; preds = %"$have_gas_176" call void @_out_of_gas() - br label %"$have_gas_180" - -"$have_gas_180": ; preds = %"$out_of_gas_179", %"$have_gas_175" - %"$consume_181" = sub i64 %"$gasrem_177", 2 - store i64 %"$consume_181", i64* @_gasrem, align 8 - %"$pubk_o_183" = load %TName_Option_ByStr33*, %TName_Option_ByStr33** %pubk_o, align 8 - %"$pubk_o_tag_184" = getelementptr inbounds %TName_Option_ByStr33, %TName_Option_ByStr33* %"$pubk_o_183", i32 0, i32 0 - %"$pubk_o_tag_185" = load i8, i8* %"$pubk_o_tag_184", align 1 - switch i8 %"$pubk_o_tag_185", label %"$empty_default_186" [ - i8 0, label %"$Some_187" - i8 1, label %"$None_368" - ], !dbg !18 - -"$Some_187": ; preds = %"$have_gas_180" - %"$pubk_o_188" = bitcast %TName_Option_ByStr33* %"$pubk_o_183" to %CName_Some_ByStr33* - %"$pubk_gep_189" = getelementptr inbounds %CName_Some_ByStr33, %CName_Some_ByStr33* %"$pubk_o_188", i32 0, i32 1 - %"$pubk_load_190" = load [33 x i8], [33 x i8]* %"$pubk_gep_189", align 1 + br label %"$have_gas_181" + +"$have_gas_181": ; preds = %"$out_of_gas_180", %"$have_gas_176" + %"$consume_182" = sub i64 %"$gasrem_178", 2 + store i64 %"$consume_182", i64* @_gasrem, align 8 + %"$pubk_o_184" = load %TName_Option_ByStr33*, %TName_Option_ByStr33** %pubk_o, align 8 + %"$pubk_o_tag_185" = getelementptr inbounds %TName_Option_ByStr33, %TName_Option_ByStr33* %"$pubk_o_184", i32 0, i32 0 + %"$pubk_o_tag_186" = load i8, i8* %"$pubk_o_tag_185", align 1 + switch i8 %"$pubk_o_tag_186", label %"$empty_default_187" [ + i8 0, label %"$Some_188" + i8 1, label %"$None_369" + ], !dbg !45 + +"$Some_188": ; preds = %"$have_gas_181" + %"$pubk_o_189" = bitcast %TName_Option_ByStr33* %"$pubk_o_184" to %CName_Some_ByStr33* + %"$pubk_gep_190" = getelementptr inbounds %CName_Some_ByStr33, %CName_Some_ByStr33* %"$pubk_o_189", i32 0, i32 1 + %"$pubk_load_191" = load [33 x i8], [33 x i8]* %"$pubk_gep_190", align 1 %pubk = alloca [33 x i8], align 1 - store [33 x i8] %"$pubk_load_190", [33 x i8]* %pubk, align 1 - %"$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" + store [33 x i8] %"$pubk_load_191", [33 x i8]* %pubk, 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_193": ; preds = %"$Some_187" +"$out_of_gas_194": ; preds = %"$Some_188" call void @_out_of_gas() - br label %"$have_gas_194" + br label %"$have_gas_195" -"$have_gas_194": ; preds = %"$out_of_gas_193", %"$Some_187" - %"$consume_195" = sub i64 %"$gasrem_191", 1 - store i64 %"$consume_195", i64* @_gasrem, align 8 +"$have_gas_195": ; preds = %"$out_of_gas_194", %"$Some_188" + %"$consume_196" = sub i64 %"$gasrem_192", 1 + store i64 %"$consume_196", i64* @_gasrem, align 8 %"$sig_3" = alloca %TName_Bool*, align 8 - %"$_literal_cost_msg_196" = alloca %Bystr, align 8 - store %Bystr %msg, %Bystr* %"$_literal_cost_msg_196", align 8 - %"$$_literal_cost_msg_196_197" = bitcast %Bystr* %"$_literal_cost_msg_196" to i8* - %"$_literal_cost_call_198" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Bystr_40", i8* %"$$_literal_cost_msg_196_197") - %"$gasadd_199" = add i64 %"$_literal_cost_call_198", 66 - %"$gasdivceil_200" = urem i64 %"$gasadd_199", 64 - %"$gasdivceil_201" = udiv i64 %"$gasadd_199", 64 - %"$gasdivceil_202" = icmp eq i64 %"$gasdivceil_200", 0 - %"$gasdivceil_203" = add i64 %"$gasdivceil_201", 1 - %"$gasdivceil_204" = select i1 %"$gasdivceil_202", i64 %"$gasdivceil_201", i64 %"$gasdivceil_203" - %"$gasmul_205" = mul i64 15, %"$gasdivceil_204" - %"$gasadd_206" = add i64 250, %"$gasmul_205" - %"$gasrem_207" = load i64, i64* @_gasrem, align 8 - %"$gascmp_208" = icmp ugt i64 %"$gasadd_206", %"$gasrem_207" - br i1 %"$gascmp_208", label %"$out_of_gas_209", label %"$have_gas_210" - -"$out_of_gas_209": ; preds = %"$have_gas_194" + call void @llvm.dbg.declare(metadata %TName_Bool** %"$sig_3", metadata !46, metadata !DIExpression()), !dbg !51 + %"$_literal_cost_msg_197" = alloca %Bystr, align 8 + store %Bystr %msg, %Bystr* %"$_literal_cost_msg_197", align 8 + %"$$_literal_cost_msg_197_198" = bitcast %Bystr* %"$_literal_cost_msg_197" to i8* + %"$_literal_cost_call_199" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Bystr_40", i8* %"$$_literal_cost_msg_197_198") + %"$gasadd_200" = add i64 %"$_literal_cost_call_199", 66 + %"$gasdivceil_201" = urem i64 %"$gasadd_200", 64 + %"$gasdivceil_202" = udiv i64 %"$gasadd_200", 64 + %"$gasdivceil_203" = icmp eq i64 %"$gasdivceil_201", 0 + %"$gasdivceil_204" = add i64 %"$gasdivceil_202", 1 + %"$gasdivceil_205" = select i1 %"$gasdivceil_203", i64 %"$gasdivceil_202", i64 %"$gasdivceil_204" + %"$gasmul_206" = mul i64 15, %"$gasdivceil_205" + %"$gasadd_207" = add i64 250, %"$gasmul_206" + %"$gasrem_208" = load i64, i64* @_gasrem, align 8 + %"$gascmp_209" = icmp ugt i64 %"$gasadd_207", %"$gasrem_208" + br i1 %"$gascmp_209", label %"$out_of_gas_210", label %"$have_gas_211" + +"$out_of_gas_210": ; preds = %"$have_gas_195" call void @_out_of_gas() - br label %"$have_gas_210" - -"$have_gas_210": ; preds = %"$out_of_gas_209", %"$have_gas_194" - %"$consume_211" = sub i64 %"$gasrem_207", %"$gasadd_206" - store i64 %"$consume_211", i64* @_gasrem, align 8 - %"$execptr_load_212" = load i8*, i8** @_execptr, align 8 - %"$ecdsa_verify_pubk_213" = alloca [33 x i8], align 1 - %"$pubk_214" = load [33 x i8], [33 x i8]* %pubk, align 1 - store [33 x i8] %"$pubk_214", [33 x i8]* %"$ecdsa_verify_pubk_213", align 1 - %"$ecdsa_verify_sig_215" = alloca [64 x i8], align 1 - store [64 x i8] %sig, [64 x i8]* %"$ecdsa_verify_sig_215", align 1 - %"$ecdsa_verify_call_216" = call %TName_Bool* @_ecdsa_verify(i8* %"$execptr_load_212", [33 x i8]* %"$ecdsa_verify_pubk_213", %Bystr %msg, [64 x i8]* %"$ecdsa_verify_sig_215"), !dbg !19 - store %TName_Bool* %"$ecdsa_verify_call_216", %TName_Bool** %"$sig_3", align 8, !dbg !19 - %"$gasrem_218" = load i64, i64* @_gasrem, align 8 - %"$gascmp_219" = icmp ugt i64 2, %"$gasrem_218" - br i1 %"$gascmp_219", label %"$out_of_gas_220", label %"$have_gas_221" - -"$out_of_gas_220": ; preds = %"$have_gas_210" + br label %"$have_gas_211" + +"$have_gas_211": ; preds = %"$out_of_gas_210", %"$have_gas_195" + %"$consume_212" = sub i64 %"$gasrem_208", %"$gasadd_207" + store i64 %"$consume_212", i64* @_gasrem, align 8 + %"$execptr_load_213" = load i8*, i8** @_execptr, align 8 + %"$ecdsa_verify_pubk_214" = alloca [33 x i8], align 1 + %"$pubk_215" = load [33 x i8], [33 x i8]* %pubk, align 1 + store [33 x i8] %"$pubk_215", [33 x i8]* %"$ecdsa_verify_pubk_214", align 1 + %"$ecdsa_verify_sig_216" = alloca [64 x i8], align 1 + store [64 x i8] %sig, [64 x i8]* %"$ecdsa_verify_sig_216", align 1 + %"$ecdsa_verify_call_217" = call %TName_Bool* @_ecdsa_verify(i8* %"$execptr_load_213", [33 x i8]* %"$ecdsa_verify_pubk_214", %Bystr %msg, [64 x i8]* %"$ecdsa_verify_sig_216"), !dbg !52 + store %TName_Bool* %"$ecdsa_verify_call_217", %TName_Bool** %"$sig_3", align 8, !dbg !52 + %"$gasrem_219" = load i64, i64* @_gasrem, align 8 + %"$gascmp_220" = icmp ugt i64 2, %"$gasrem_219" + br i1 %"$gascmp_220", label %"$out_of_gas_221", label %"$have_gas_222" + +"$out_of_gas_221": ; preds = %"$have_gas_211" call void @_out_of_gas() - br label %"$have_gas_221" - -"$have_gas_221": ; preds = %"$out_of_gas_220", %"$have_gas_210" - %"$consume_222" = sub i64 %"$gasrem_218", 2 - store i64 %"$consume_222", i64* @_gasrem, align 8 - %"$$sig_3_224" = load %TName_Bool*, %TName_Bool** %"$sig_3", align 8 - %"$$sig_3_tag_225" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$$sig_3_224", i32 0, i32 0 - %"$$sig_3_tag_226" = load i8, i8* %"$$sig_3_tag_225", align 1 - switch i8 %"$$sig_3_tag_226", label %"$empty_default_227" [ - i8 0, label %"$True_228" - i8 1, label %"$False_298" - ], !dbg !22 - -"$True_228": ; preds = %"$have_gas_221" - %"$$sig_3_229" = bitcast %TName_Bool* %"$$sig_3_224" to %CName_True* - %"$gasrem_230" = load i64, i64* @_gasrem, align 8 - %"$gascmp_231" = icmp ugt i64 1, %"$gasrem_230" - br i1 %"$gascmp_231", label %"$out_of_gas_232", label %"$have_gas_233" - -"$out_of_gas_232": ; preds = %"$True_228" + br label %"$have_gas_222" + +"$have_gas_222": ; preds = %"$out_of_gas_221", %"$have_gas_211" + %"$consume_223" = sub i64 %"$gasrem_219", 2 + store i64 %"$consume_223", i64* @_gasrem, align 8 + %"$$sig_3_225" = load %TName_Bool*, %TName_Bool** %"$sig_3", align 8 + %"$$sig_3_tag_226" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$$sig_3_225", i32 0, i32 0 + %"$$sig_3_tag_227" = load i8, i8* %"$$sig_3_tag_226", align 1 + switch i8 %"$$sig_3_tag_227", label %"$empty_default_228" [ + i8 0, label %"$True_229" + i8 1, label %"$False_299" + ], !dbg !53 + +"$True_229": ; preds = %"$have_gas_222" + %"$$sig_3_230" = bitcast %TName_Bool* %"$$sig_3_225" to %CName_True* + %"$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 = %"$True_229" call void @_out_of_gas() - br label %"$have_gas_233" + br label %"$have_gas_234" -"$have_gas_233": ; preds = %"$out_of_gas_232", %"$True_228" - %"$consume_234" = sub i64 %"$gasrem_230", 1 - store i64 %"$consume_234", i64* @_gasrem, align 8 +"$have_gas_234": ; preds = %"$out_of_gas_233", %"$True_229" + %"$consume_235" = sub i64 %"$gasrem_231", 1 + store i64 %"$consume_235", i64* @_gasrem, align 8 %m = alloca i8*, 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" + call void @llvm.dbg.declare(metadata i8** %m, metadata !54, metadata !DIExpression()), !dbg !57 + %"$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_237": ; preds = %"$have_gas_233" +"$out_of_gas_238": ; preds = %"$have_gas_234" call void @_out_of_gas() - br label %"$have_gas_238" - -"$have_gas_238": ; preds = %"$out_of_gas_237", %"$have_gas_233" - %"$consume_239" = sub i64 %"$gasrem_235", 1 - store i64 %"$consume_239", i64* @_gasrem, align 8 - %"$msgobj_240_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$msgobj_240_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_240_salloc_load", i64 165) - %"$msgobj_240_salloc" = bitcast i8* %"$msgobj_240_salloc_salloc" to [165 x i8]* - %"$msgobj_240" = bitcast [165 x i8]* %"$msgobj_240_salloc" to i8* - store i8 4, i8* %"$msgobj_240", align 1 - %"$msgobj_fname_242" = getelementptr i8, i8* %"$msgobj_240", i32 1 - %"$msgobj_fname_243" = bitcast i8* %"$msgobj_fname_242" to %String* - store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_241", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_243", align 8 - %"$msgobj_td_244" = getelementptr i8, i8* %"$msgobj_240", i32 17 - %"$msgobj_td_245" = bitcast i8* %"$msgobj_td_244" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_String_28", %_TyDescrTy_Typ** %"$msgobj_td_245", align 8 - %"$msgobj_v_247" = getelementptr i8, i8* %"$msgobj_240", i32 25 - %"$msgobj_v_248" = bitcast i8* %"$msgobj_v_247" to %String* - store %String { i8* getelementptr inbounds ([0 x i8], [0 x i8]* @"$stringlit_246", i32 0, i32 0), i32 0 }, %String* %"$msgobj_v_248", align 8 - %"$msgobj_fname_250" = getelementptr i8, i8* %"$msgobj_240", i32 41 - %"$msgobj_fname_251" = bitcast i8* %"$msgobj_fname_250" to %String* - store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_249", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_251", align 8 - %"$msgobj_td_252" = getelementptr i8, i8* %"$msgobj_240", i32 57 - %"$msgobj_td_253" = bitcast i8* %"$msgobj_td_252" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_46", %_TyDescrTy_Typ** %"$msgobj_td_253", align 8 - %"$msgobj_v_254" = getelementptr i8, i8* %"$msgobj_240", i32 65 - %"$msgobj_v_255" = bitcast i8* %"$msgobj_v_254" to [20 x i8]* - store [20 x i8] %_sender, [20 x i8]* %"$msgobj_v_255", align 1 - %"$msgobj_fname_257" = getelementptr i8, i8* %"$msgobj_240", i32 85 - %"$msgobj_fname_258" = bitcast i8* %"$msgobj_fname_257" to %String* - store %String { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$stringlit_256", i32 0, i32 0), i32 7 }, %String* %"$msgobj_fname_258", align 8 - %"$msgobj_td_259" = getelementptr i8, i8* %"$msgobj_240", i32 101 - %"$msgobj_td_260" = bitcast i8* %"$msgobj_td_259" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Uint128_22", %_TyDescrTy_Typ** %"$msgobj_td_260", align 8 - %"$msgobj_v_261" = getelementptr i8, i8* %"$msgobj_240", i32 109 - %"$msgobj_v_262" = bitcast i8* %"$msgobj_v_261" to %Uint128* - store %Uint128 zeroinitializer, %Uint128* %"$msgobj_v_262", align 8 - %"$msgobj_fname_264" = getelementptr i8, i8* %"$msgobj_240", i32 125 - %"$msgobj_fname_265" = bitcast i8* %"$msgobj_fname_264" to %String* - store %String { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$stringlit_263", i32 0, i32 0), i32 6 }, %String* %"$msgobj_fname_265", align 8 - %"$msgobj_td_266" = getelementptr i8, i8* %"$msgobj_240", i32 141 - %"$msgobj_td_267" = bitcast i8* %"$msgobj_td_266" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_String_28", %_TyDescrTy_Typ** %"$msgobj_td_267", align 8 - %"$msgobj_v_269" = getelementptr i8, i8* %"$msgobj_240", i32 149 - %"$msgobj_v_270" = bitcast i8* %"$msgobj_v_269" to %String* - store %String { i8* getelementptr inbounds ([23 x i8], [23 x i8]* @"$stringlit_268", i32 0, i32 0), i32 23 }, %String* %"$msgobj_v_270", align 8 - store i8* %"$msgobj_240", i8** %m, align 8, !dbg !23 - %"$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 = %"$have_gas_238" + 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 + %"$msgobj_241_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$msgobj_241_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_241_salloc_load", i64 165) + %"$msgobj_241_salloc" = bitcast i8* %"$msgobj_241_salloc_salloc" to [165 x i8]* + %"$msgobj_241" = bitcast [165 x i8]* %"$msgobj_241_salloc" to i8* + store i8 4, i8* %"$msgobj_241", align 1 + %"$msgobj_fname_243" = getelementptr i8, i8* %"$msgobj_241", i32 1 + %"$msgobj_fname_244" = bitcast i8* %"$msgobj_fname_243" to %String* + store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_242", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_244", align 8 + %"$msgobj_td_245" = getelementptr i8, i8* %"$msgobj_241", i32 17 + %"$msgobj_td_246" = bitcast i8* %"$msgobj_td_245" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_String_28", %_TyDescrTy_Typ** %"$msgobj_td_246", align 8 + %"$msgobj_v_248" = getelementptr i8, i8* %"$msgobj_241", i32 25 + %"$msgobj_v_249" = bitcast i8* %"$msgobj_v_248" to %String* + store %String { i8* getelementptr inbounds ([0 x i8], [0 x i8]* @"$stringlit_247", i32 0, i32 0), i32 0 }, %String* %"$msgobj_v_249", align 8 + %"$msgobj_fname_251" = getelementptr i8, i8* %"$msgobj_241", i32 41 + %"$msgobj_fname_252" = bitcast i8* %"$msgobj_fname_251" to %String* + store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_250", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_252", align 8 + %"$msgobj_td_253" = getelementptr i8, i8* %"$msgobj_241", i32 57 + %"$msgobj_td_254" = bitcast i8* %"$msgobj_td_253" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_46", %_TyDescrTy_Typ** %"$msgobj_td_254", align 8 + %"$msgobj_v_255" = getelementptr i8, i8* %"$msgobj_241", i32 65 + %"$msgobj_v_256" = bitcast i8* %"$msgobj_v_255" to [20 x i8]* + store [20 x i8] %_sender, [20 x i8]* %"$msgobj_v_256", align 1 + %"$msgobj_fname_258" = getelementptr i8, i8* %"$msgobj_241", i32 85 + %"$msgobj_fname_259" = bitcast i8* %"$msgobj_fname_258" to %String* + store %String { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$stringlit_257", i32 0, i32 0), i32 7 }, %String* %"$msgobj_fname_259", align 8 + %"$msgobj_td_260" = getelementptr i8, i8* %"$msgobj_241", i32 101 + %"$msgobj_td_261" = bitcast i8* %"$msgobj_td_260" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Uint128_22", %_TyDescrTy_Typ** %"$msgobj_td_261", align 8 + %"$msgobj_v_262" = getelementptr i8, i8* %"$msgobj_241", i32 109 + %"$msgobj_v_263" = bitcast i8* %"$msgobj_v_262" to %Uint128* + store %Uint128 zeroinitializer, %Uint128* %"$msgobj_v_263", align 8 + %"$msgobj_fname_265" = getelementptr i8, i8* %"$msgobj_241", i32 125 + %"$msgobj_fname_266" = bitcast i8* %"$msgobj_fname_265" to %String* + store %String { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$stringlit_264", i32 0, i32 0), i32 6 }, %String* %"$msgobj_fname_266", align 8 + %"$msgobj_td_267" = getelementptr i8, i8* %"$msgobj_241", i32 141 + %"$msgobj_td_268" = bitcast i8* %"$msgobj_td_267" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_String_28", %_TyDescrTy_Typ** %"$msgobj_td_268", align 8 + %"$msgobj_v_270" = getelementptr i8, i8* %"$msgobj_241", i32 149 + %"$msgobj_v_271" = bitcast i8* %"$msgobj_v_270" to %String* + store %String { i8* getelementptr inbounds ([23 x i8], [23 x i8]* @"$stringlit_269", i32 0, i32 0), i32 23 }, %String* %"$msgobj_v_271", align 8 + store i8* %"$msgobj_241", i8** %m, align 8, !dbg !58 + %"$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_239" call void @_out_of_gas() - br label %"$have_gas_275" + br label %"$have_gas_276" -"$have_gas_275": ; preds = %"$out_of_gas_274", %"$have_gas_238" - %"$consume_276" = sub i64 %"$gasrem_272", 1 - store i64 %"$consume_276", i64* @_gasrem, align 8 +"$have_gas_276": ; preds = %"$out_of_gas_275", %"$have_gas_239" + %"$consume_277" = sub i64 %"$gasrem_273", 1 + store i64 %"$consume_277", i64* @_gasrem, align 8 %mone = alloca %TName_List_Message*, align 8 - %"$gasrem_277" = load i64, i64* @_gasrem, align 8 - %"$gascmp_278" = icmp ugt i64 1, %"$gasrem_277" - br i1 %"$gascmp_278", label %"$out_of_gas_279", label %"$have_gas_280" + call void @llvm.dbg.declare(metadata %TName_List_Message** %mone, metadata !59, metadata !DIExpression()), !dbg !60 + %"$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_279": ; preds = %"$have_gas_275" +"$out_of_gas_280": ; preds = %"$have_gas_276" call void @_out_of_gas() - br label %"$have_gas_280" + br label %"$have_gas_281" -"$have_gas_280": ; preds = %"$out_of_gas_279", %"$have_gas_275" - %"$consume_281" = sub i64 %"$gasrem_277", 1 - store i64 %"$consume_281", i64* @_gasrem, align 8 +"$have_gas_281": ; preds = %"$out_of_gas_280", %"$have_gas_276" + %"$consume_282" = sub i64 %"$gasrem_278", 1 + store i64 %"$consume_282", i64* @_gasrem, align 8 %"$ecdsa.one_msg_4" = alloca %TName_List_Message*, align 8 - %"$ecdsa.one_msg_282" = load { %TName_List_Message* (i8*, i8*)*, i8* }, { %TName_List_Message* (i8*, i8*)*, i8* }* @ecdsa.one_msg, align 8 - %"$ecdsa.one_msg_fptr_283" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$ecdsa.one_msg_282", 0 - %"$ecdsa.one_msg_envptr_284" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$ecdsa.one_msg_282", 1 - %"$m_285" = load i8*, i8** %m, align 8 - %"$ecdsa.one_msg_call_286" = call %TName_List_Message* %"$ecdsa.one_msg_fptr_283"(i8* %"$ecdsa.one_msg_envptr_284", i8* %"$m_285"), !dbg !26 - store %TName_List_Message* %"$ecdsa.one_msg_call_286", %TName_List_Message** %"$ecdsa.one_msg_4", align 8, !dbg !26 - %"$$ecdsa.one_msg_4_287" = load %TName_List_Message*, %TName_List_Message** %"$ecdsa.one_msg_4", align 8 - store %TName_List_Message* %"$$ecdsa.one_msg_4_287", %TName_List_Message** %mone, align 8, !dbg !26 - %"$mone_288" = load %TName_List_Message*, %TName_List_Message** %mone, align 8 - %"$$mone_288_289" = bitcast %TName_List_Message* %"$mone_288" to i8* - %"$_literal_cost_call_290" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_52", i8* %"$$mone_288_289") - %"$gasrem_291" = load i64, i64* @_gasrem, align 8 - %"$gascmp_292" = icmp ugt i64 %"$_literal_cost_call_290", %"$gasrem_291" - br i1 %"$gascmp_292", label %"$out_of_gas_293", label %"$have_gas_294" - -"$out_of_gas_293": ; preds = %"$have_gas_280" + call void @llvm.dbg.declare(metadata %TName_List_Message** %"$ecdsa.one_msg_4", metadata !61, metadata !DIExpression()), !dbg !62 + %"$ecdsa.one_msg_283" = load { %TName_List_Message* (i8*, i8*)*, i8* }, { %TName_List_Message* (i8*, i8*)*, i8* }* @ecdsa.one_msg, align 8 + %"$ecdsa.one_msg_fptr_284" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$ecdsa.one_msg_283", 0 + %"$ecdsa.one_msg_envptr_285" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$ecdsa.one_msg_283", 1 + %"$m_286" = load i8*, i8** %m, align 8 + %"$ecdsa.one_msg_call_287" = call %TName_List_Message* %"$ecdsa.one_msg_fptr_284"(i8* %"$ecdsa.one_msg_envptr_285", i8* %"$m_286"), !dbg !62 + store %TName_List_Message* %"$ecdsa.one_msg_call_287", %TName_List_Message** %"$ecdsa.one_msg_4", align 8, !dbg !62 + %"$$ecdsa.one_msg_4_288" = load %TName_List_Message*, %TName_List_Message** %"$ecdsa.one_msg_4", align 8 + store %TName_List_Message* %"$$ecdsa.one_msg_4_288", %TName_List_Message** %mone, align 8, !dbg !62 + %"$mone_289" = load %TName_List_Message*, %TName_List_Message** %mone, align 8 + %"$$mone_289_290" = bitcast %TName_List_Message* %"$mone_289" to i8* + %"$_literal_cost_call_291" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_52", i8* %"$$mone_289_290") + %"$gasrem_292" = load i64, i64* @_gasrem, align 8 + %"$gascmp_293" = icmp ugt i64 %"$_literal_cost_call_291", %"$gasrem_292" + br i1 %"$gascmp_293", label %"$out_of_gas_294", label %"$have_gas_295" + +"$out_of_gas_294": ; preds = %"$have_gas_281" call void @_out_of_gas() - br label %"$have_gas_294" - -"$have_gas_294": ; preds = %"$out_of_gas_293", %"$have_gas_280" - %"$consume_295" = sub i64 %"$gasrem_291", %"$_literal_cost_call_290" - store i64 %"$consume_295", i64* @_gasrem, align 8 - %"$execptr_load_296" = load i8*, i8** @_execptr, align 8 - %"$mone_297" = load %TName_List_Message*, %TName_List_Message** %mone, align 8 - call void @_send(i8* %"$execptr_load_296", %_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_52", %TName_List_Message* %"$mone_297"), !dbg !27 - br label %"$matchsucc_223" - -"$False_298": ; preds = %"$have_gas_221" - %"$$sig_3_299" = bitcast %TName_Bool* %"$$sig_3_224" to %CName_False* - %"$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 = %"$False_298" + br label %"$have_gas_295" + +"$have_gas_295": ; preds = %"$out_of_gas_294", %"$have_gas_281" + %"$consume_296" = sub i64 %"$gasrem_292", %"$_literal_cost_call_291" + store i64 %"$consume_296", i64* @_gasrem, align 8 + %"$execptr_load_297" = load i8*, i8** @_execptr, align 8 + %"$mone_298" = load %TName_List_Message*, %TName_List_Message** %mone, align 8 + call void @_send(i8* %"$execptr_load_297", %_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_52", %TName_List_Message* %"$mone_298"), !dbg !63 + br label %"$matchsucc_224" + +"$False_299": ; preds = %"$have_gas_222" + %"$$sig_3_300" = bitcast %TName_Bool* %"$$sig_3_225" to %CName_False* + %"$gasrem_301" = load i64, i64* @_gasrem, align 8 + %"$gascmp_302" = icmp ugt i64 1, %"$gasrem_301" + br i1 %"$gascmp_302", label %"$out_of_gas_303", label %"$have_gas_304" + +"$out_of_gas_303": ; preds = %"$False_299" call void @_out_of_gas() - br label %"$have_gas_303" + br label %"$have_gas_304" -"$have_gas_303": ; preds = %"$out_of_gas_302", %"$False_298" - %"$consume_304" = sub i64 %"$gasrem_300", 1 - store i64 %"$consume_304", i64* @_gasrem, align 8 +"$have_gas_304": ; preds = %"$out_of_gas_303", %"$False_299" + %"$consume_305" = sub i64 %"$gasrem_301", 1 + store i64 %"$consume_305", i64* @_gasrem, align 8 %m1 = alloca 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" + call void @llvm.dbg.declare(metadata i8** %m1, metadata !64, metadata !DIExpression()), !dbg !66 + %"$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_307": ; preds = %"$have_gas_303" +"$out_of_gas_308": ; preds = %"$have_gas_304" call void @_out_of_gas() - br label %"$have_gas_308" - -"$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 - %"$msgobj_310_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$msgobj_310_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_310_salloc_load", i64 165) - %"$msgobj_310_salloc" = bitcast i8* %"$msgobj_310_salloc_salloc" to [165 x i8]* - %"$msgobj_310" = bitcast [165 x i8]* %"$msgobj_310_salloc" to i8* - store i8 4, i8* %"$msgobj_310", align 1 - %"$msgobj_fname_312" = getelementptr i8, i8* %"$msgobj_310", i32 1 - %"$msgobj_fname_313" = bitcast i8* %"$msgobj_fname_312" to %String* - store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_311", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_313", align 8 - %"$msgobj_td_314" = getelementptr i8, i8* %"$msgobj_310", i32 17 - %"$msgobj_td_315" = bitcast i8* %"$msgobj_td_314" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_String_28", %_TyDescrTy_Typ** %"$msgobj_td_315", align 8 - %"$msgobj_v_317" = getelementptr i8, i8* %"$msgobj_310", i32 25 - %"$msgobj_v_318" = bitcast i8* %"$msgobj_v_317" to %String* - store %String { i8* getelementptr inbounds ([0 x i8], [0 x i8]* @"$stringlit_316", i32 0, i32 0), i32 0 }, %String* %"$msgobj_v_318", align 8 - %"$msgobj_fname_320" = getelementptr i8, i8* %"$msgobj_310", i32 41 - %"$msgobj_fname_321" = bitcast i8* %"$msgobj_fname_320" to %String* - store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_319", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_321", align 8 - %"$msgobj_td_322" = getelementptr i8, i8* %"$msgobj_310", i32 57 - %"$msgobj_td_323" = bitcast i8* %"$msgobj_td_322" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_46", %_TyDescrTy_Typ** %"$msgobj_td_323", align 8 - %"$msgobj_v_324" = getelementptr i8, i8* %"$msgobj_310", i32 65 - %"$msgobj_v_325" = bitcast i8* %"$msgobj_v_324" to [20 x i8]* - store [20 x i8] %_sender, [20 x i8]* %"$msgobj_v_325", align 1 - %"$msgobj_fname_327" = getelementptr i8, i8* %"$msgobj_310", i32 85 - %"$msgobj_fname_328" = bitcast i8* %"$msgobj_fname_327" to %String* - store %String { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$stringlit_326", i32 0, i32 0), i32 7 }, %String* %"$msgobj_fname_328", align 8 - %"$msgobj_td_329" = getelementptr i8, i8* %"$msgobj_310", i32 101 - %"$msgobj_td_330" = bitcast i8* %"$msgobj_td_329" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Uint128_22", %_TyDescrTy_Typ** %"$msgobj_td_330", align 8 - %"$msgobj_v_331" = getelementptr i8, i8* %"$msgobj_310", i32 109 - %"$msgobj_v_332" = bitcast i8* %"$msgobj_v_331" to %Uint128* - store %Uint128 zeroinitializer, %Uint128* %"$msgobj_v_332", align 8 - %"$msgobj_fname_334" = getelementptr i8, i8* %"$msgobj_310", i32 125 - %"$msgobj_fname_335" = bitcast i8* %"$msgobj_fname_334" to %String* - store %String { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$stringlit_333", i32 0, i32 0), i32 6 }, %String* %"$msgobj_fname_335", align 8 - %"$msgobj_td_336" = getelementptr i8, i8* %"$msgobj_310", i32 141 - %"$msgobj_td_337" = bitcast i8* %"$msgobj_td_336" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_String_28", %_TyDescrTy_Typ** %"$msgobj_td_337", align 8 - %"$msgobj_v_339" = getelementptr i8, i8* %"$msgobj_310", i32 149 - %"$msgobj_v_340" = bitcast i8* %"$msgobj_v_339" to %String* - store %String { i8* getelementptr inbounds ([19 x i8], [19 x i8]* @"$stringlit_338", i32 0, i32 0), i32 19 }, %String* %"$msgobj_v_340", align 8 - store i8* %"$msgobj_310", i8** %m1, align 8, !dbg !28 - %"$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" - -"$out_of_gas_344": ; preds = %"$have_gas_308" + br label %"$have_gas_309" + +"$have_gas_309": ; preds = %"$out_of_gas_308", %"$have_gas_304" + %"$consume_310" = sub i64 %"$gasrem_306", 1 + store i64 %"$consume_310", i64* @_gasrem, align 8 + %"$msgobj_311_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$msgobj_311_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_311_salloc_load", i64 165) + %"$msgobj_311_salloc" = bitcast i8* %"$msgobj_311_salloc_salloc" to [165 x i8]* + %"$msgobj_311" = bitcast [165 x i8]* %"$msgobj_311_salloc" to i8* + store i8 4, i8* %"$msgobj_311", align 1 + %"$msgobj_fname_313" = getelementptr i8, i8* %"$msgobj_311", i32 1 + %"$msgobj_fname_314" = bitcast i8* %"$msgobj_fname_313" to %String* + store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_312", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_314", align 8 + %"$msgobj_td_315" = getelementptr i8, i8* %"$msgobj_311", i32 17 + %"$msgobj_td_316" = bitcast i8* %"$msgobj_td_315" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_String_28", %_TyDescrTy_Typ** %"$msgobj_td_316", align 8 + %"$msgobj_v_318" = getelementptr i8, i8* %"$msgobj_311", i32 25 + %"$msgobj_v_319" = bitcast i8* %"$msgobj_v_318" to %String* + store %String { i8* getelementptr inbounds ([0 x i8], [0 x i8]* @"$stringlit_317", i32 0, i32 0), i32 0 }, %String* %"$msgobj_v_319", align 8 + %"$msgobj_fname_321" = getelementptr i8, i8* %"$msgobj_311", i32 41 + %"$msgobj_fname_322" = bitcast i8* %"$msgobj_fname_321" to %String* + store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_320", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_322", align 8 + %"$msgobj_td_323" = getelementptr i8, i8* %"$msgobj_311", i32 57 + %"$msgobj_td_324" = bitcast i8* %"$msgobj_td_323" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_46", %_TyDescrTy_Typ** %"$msgobj_td_324", align 8 + %"$msgobj_v_325" = getelementptr i8, i8* %"$msgobj_311", i32 65 + %"$msgobj_v_326" = bitcast i8* %"$msgobj_v_325" to [20 x i8]* + store [20 x i8] %_sender, [20 x i8]* %"$msgobj_v_326", align 1 + %"$msgobj_fname_328" = getelementptr i8, i8* %"$msgobj_311", i32 85 + %"$msgobj_fname_329" = bitcast i8* %"$msgobj_fname_328" to %String* + store %String { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$stringlit_327", i32 0, i32 0), i32 7 }, %String* %"$msgobj_fname_329", align 8 + %"$msgobj_td_330" = getelementptr i8, i8* %"$msgobj_311", i32 101 + %"$msgobj_td_331" = bitcast i8* %"$msgobj_td_330" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Uint128_22", %_TyDescrTy_Typ** %"$msgobj_td_331", align 8 + %"$msgobj_v_332" = getelementptr i8, i8* %"$msgobj_311", i32 109 + %"$msgobj_v_333" = bitcast i8* %"$msgobj_v_332" to %Uint128* + store %Uint128 zeroinitializer, %Uint128* %"$msgobj_v_333", align 8 + %"$msgobj_fname_335" = getelementptr i8, i8* %"$msgobj_311", i32 125 + %"$msgobj_fname_336" = bitcast i8* %"$msgobj_fname_335" to %String* + store %String { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$stringlit_334", i32 0, i32 0), i32 6 }, %String* %"$msgobj_fname_336", align 8 + %"$msgobj_td_337" = getelementptr i8, i8* %"$msgobj_311", i32 141 + %"$msgobj_td_338" = bitcast i8* %"$msgobj_td_337" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_String_28", %_TyDescrTy_Typ** %"$msgobj_td_338", align 8 + %"$msgobj_v_340" = getelementptr i8, i8* %"$msgobj_311", i32 149 + %"$msgobj_v_341" = bitcast i8* %"$msgobj_v_340" to %String* + store %String { i8* getelementptr inbounds ([19 x i8], [19 x i8]* @"$stringlit_339", i32 0, i32 0), i32 19 }, %String* %"$msgobj_v_341", align 8 + store i8* %"$msgobj_311", i8** %m1, align 8, !dbg !67 + %"$gasrem_343" = load i64, i64* @_gasrem, align 8 + %"$gascmp_344" = icmp ugt i64 1, %"$gasrem_343" + br i1 %"$gascmp_344", label %"$out_of_gas_345", label %"$have_gas_346" + +"$out_of_gas_345": ; preds = %"$have_gas_309" call void @_out_of_gas() - br label %"$have_gas_345" + br label %"$have_gas_346" -"$have_gas_345": ; preds = %"$out_of_gas_344", %"$have_gas_308" - %"$consume_346" = sub i64 %"$gasrem_342", 1 - store i64 %"$consume_346", i64* @_gasrem, align 8 +"$have_gas_346": ; preds = %"$out_of_gas_345", %"$have_gas_309" + %"$consume_347" = sub i64 %"$gasrem_343", 1 + store i64 %"$consume_347", i64* @_gasrem, align 8 %mone2 = alloca %TName_List_Message*, 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" + call void @llvm.dbg.declare(metadata %TName_List_Message** %mone2, metadata !68, metadata !DIExpression()), !dbg !69 + %"$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" -"$out_of_gas_349": ; preds = %"$have_gas_345" +"$out_of_gas_350": ; preds = %"$have_gas_346" call void @_out_of_gas() - br label %"$have_gas_350" + br label %"$have_gas_351" -"$have_gas_350": ; preds = %"$out_of_gas_349", %"$have_gas_345" - %"$consume_351" = sub i64 %"$gasrem_347", 1 - store i64 %"$consume_351", i64* @_gasrem, align 8 +"$have_gas_351": ; preds = %"$out_of_gas_350", %"$have_gas_346" + %"$consume_352" = sub i64 %"$gasrem_348", 1 + store i64 %"$consume_352", i64* @_gasrem, align 8 %"$ecdsa.one_msg_5" = alloca %TName_List_Message*, align 8 - %"$ecdsa.one_msg_352" = load { %TName_List_Message* (i8*, i8*)*, i8* }, { %TName_List_Message* (i8*, i8*)*, i8* }* @ecdsa.one_msg, align 8 - %"$ecdsa.one_msg_fptr_353" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$ecdsa.one_msg_352", 0 - %"$ecdsa.one_msg_envptr_354" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$ecdsa.one_msg_352", 1 - %"$m_355" = load i8*, i8** %m1, align 8 - %"$ecdsa.one_msg_call_356" = call %TName_List_Message* %"$ecdsa.one_msg_fptr_353"(i8* %"$ecdsa.one_msg_envptr_354", i8* %"$m_355"), !dbg !30 - store %TName_List_Message* %"$ecdsa.one_msg_call_356", %TName_List_Message** %"$ecdsa.one_msg_5", align 8, !dbg !30 - %"$$ecdsa.one_msg_5_357" = load %TName_List_Message*, %TName_List_Message** %"$ecdsa.one_msg_5", align 8 - store %TName_List_Message* %"$$ecdsa.one_msg_5_357", %TName_List_Message** %mone2, align 8, !dbg !30 - %"$mone_358" = load %TName_List_Message*, %TName_List_Message** %mone2, align 8 - %"$$mone_358_359" = bitcast %TName_List_Message* %"$mone_358" to i8* - %"$_literal_cost_call_360" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_52", i8* %"$$mone_358_359") - %"$gasrem_361" = load i64, i64* @_gasrem, align 8 - %"$gascmp_362" = icmp ugt i64 %"$_literal_cost_call_360", %"$gasrem_361" - br i1 %"$gascmp_362", label %"$out_of_gas_363", label %"$have_gas_364" - -"$out_of_gas_363": ; preds = %"$have_gas_350" + call void @llvm.dbg.declare(metadata %TName_List_Message** %"$ecdsa.one_msg_5", metadata !70, metadata !DIExpression()), !dbg !71 + %"$ecdsa.one_msg_353" = load { %TName_List_Message* (i8*, i8*)*, i8* }, { %TName_List_Message* (i8*, i8*)*, i8* }* @ecdsa.one_msg, align 8 + %"$ecdsa.one_msg_fptr_354" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$ecdsa.one_msg_353", 0 + %"$ecdsa.one_msg_envptr_355" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$ecdsa.one_msg_353", 1 + %"$m_356" = load i8*, i8** %m1, align 8 + %"$ecdsa.one_msg_call_357" = call %TName_List_Message* %"$ecdsa.one_msg_fptr_354"(i8* %"$ecdsa.one_msg_envptr_355", i8* %"$m_356"), !dbg !71 + store %TName_List_Message* %"$ecdsa.one_msg_call_357", %TName_List_Message** %"$ecdsa.one_msg_5", align 8, !dbg !71 + %"$$ecdsa.one_msg_5_358" = load %TName_List_Message*, %TName_List_Message** %"$ecdsa.one_msg_5", align 8 + store %TName_List_Message* %"$$ecdsa.one_msg_5_358", %TName_List_Message** %mone2, align 8, !dbg !71 + %"$mone_359" = load %TName_List_Message*, %TName_List_Message** %mone2, align 8 + %"$$mone_359_360" = bitcast %TName_List_Message* %"$mone_359" to i8* + %"$_literal_cost_call_361" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_52", i8* %"$$mone_359_360") + %"$gasrem_362" = load i64, i64* @_gasrem, align 8 + %"$gascmp_363" = icmp ugt i64 %"$_literal_cost_call_361", %"$gasrem_362" + br i1 %"$gascmp_363", label %"$out_of_gas_364", label %"$have_gas_365" + +"$out_of_gas_364": ; preds = %"$have_gas_351" call void @_out_of_gas() - br label %"$have_gas_364" + br label %"$have_gas_365" -"$have_gas_364": ; preds = %"$out_of_gas_363", %"$have_gas_350" - %"$consume_365" = sub i64 %"$gasrem_361", %"$_literal_cost_call_360" - store i64 %"$consume_365", i64* @_gasrem, align 8 - %"$execptr_load_366" = load i8*, i8** @_execptr, align 8 - %"$mone_367" = load %TName_List_Message*, %TName_List_Message** %mone2, align 8 - call void @_send(i8* %"$execptr_load_366", %_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_52", %TName_List_Message* %"$mone_367"), !dbg !31 - br label %"$matchsucc_223" +"$have_gas_365": ; preds = %"$out_of_gas_364", %"$have_gas_351" + %"$consume_366" = sub i64 %"$gasrem_362", %"$_literal_cost_call_361" + store i64 %"$consume_366", i64* @_gasrem, align 8 + %"$execptr_load_367" = load i8*, i8** @_execptr, align 8 + %"$mone_368" = load %TName_List_Message*, %TName_List_Message** %mone2, align 8 + call void @_send(i8* %"$execptr_load_367", %_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_52", %TName_List_Message* %"$mone_368"), !dbg !72 + br label %"$matchsucc_224" -"$empty_default_227": ; preds = %"$have_gas_221" - br label %"$matchsucc_223" +"$empty_default_228": ; preds = %"$have_gas_222" + br label %"$matchsucc_224" -"$matchsucc_223": ; preds = %"$have_gas_364", %"$have_gas_294", %"$empty_default_227" - br label %"$matchsucc_182" +"$matchsucc_224": ; preds = %"$have_gas_365", %"$have_gas_295", %"$empty_default_228" + br label %"$matchsucc_183" -"$None_368": ; preds = %"$have_gas_180" - %"$pubk_o_369" = bitcast %TName_Option_ByStr33* %"$pubk_o_183" to %CName_None_ByStr33* - %"$gasrem_370" = load i64, i64* @_gasrem, align 8 - %"$gascmp_371" = icmp ugt i64 1, %"$gasrem_370" - br i1 %"$gascmp_371", label %"$out_of_gas_372", label %"$have_gas_373" +"$None_369": ; preds = %"$have_gas_181" + %"$pubk_o_370" = bitcast %TName_Option_ByStr33* %"$pubk_o_184" to %CName_None_ByStr33* + %"$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_372": ; preds = %"$None_368" +"$out_of_gas_373": ; preds = %"$None_369" call void @_out_of_gas() - br label %"$have_gas_373" + br label %"$have_gas_374" -"$have_gas_373": ; preds = %"$out_of_gas_372", %"$None_368" - %"$consume_374" = sub i64 %"$gasrem_370", 1 - store i64 %"$consume_374", i64* @_gasrem, align 8 +"$have_gas_374": ; preds = %"$out_of_gas_373", %"$None_369" + %"$consume_375" = sub i64 %"$gasrem_371", 1 + store i64 %"$consume_375", i64* @_gasrem, align 8 %m3 = alloca i8*, align 8 - %"$gasrem_375" = load i64, i64* @_gasrem, align 8 - %"$gascmp_376" = icmp ugt i64 1, %"$gasrem_375" - br i1 %"$gascmp_376", label %"$out_of_gas_377", label %"$have_gas_378" + call void @llvm.dbg.declare(metadata i8** %m3, metadata !73, metadata !DIExpression()), !dbg !75 + %"$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_377": ; preds = %"$have_gas_373" +"$out_of_gas_378": ; preds = %"$have_gas_374" call void @_out_of_gas() - br label %"$have_gas_378" - -"$have_gas_378": ; preds = %"$out_of_gas_377", %"$have_gas_373" - %"$consume_379" = sub i64 %"$gasrem_375", 1 - store i64 %"$consume_379", i64* @_gasrem, align 8 - %"$msgobj_380_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$msgobj_380_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_380_salloc_load", i64 165) - %"$msgobj_380_salloc" = bitcast i8* %"$msgobj_380_salloc_salloc" to [165 x i8]* - %"$msgobj_380" = bitcast [165 x i8]* %"$msgobj_380_salloc" to i8* - store i8 4, i8* %"$msgobj_380", align 1 - %"$msgobj_fname_382" = getelementptr i8, i8* %"$msgobj_380", i32 1 - %"$msgobj_fname_383" = bitcast i8* %"$msgobj_fname_382" to %String* - store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_381", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_383", align 8 - %"$msgobj_td_384" = getelementptr i8, i8* %"$msgobj_380", i32 17 - %"$msgobj_td_385" = bitcast i8* %"$msgobj_td_384" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_String_28", %_TyDescrTy_Typ** %"$msgobj_td_385", align 8 - %"$msgobj_v_387" = getelementptr i8, i8* %"$msgobj_380", i32 25 - %"$msgobj_v_388" = bitcast i8* %"$msgobj_v_387" to %String* - store %String { i8* getelementptr inbounds ([0 x i8], [0 x i8]* @"$stringlit_386", i32 0, i32 0), i32 0 }, %String* %"$msgobj_v_388", align 8 - %"$msgobj_fname_390" = getelementptr i8, i8* %"$msgobj_380", i32 41 - %"$msgobj_fname_391" = bitcast i8* %"$msgobj_fname_390" to %String* - store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_389", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_391", align 8 - %"$msgobj_td_392" = getelementptr i8, i8* %"$msgobj_380", i32 57 - %"$msgobj_td_393" = bitcast i8* %"$msgobj_td_392" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_46", %_TyDescrTy_Typ** %"$msgobj_td_393", align 8 - %"$msgobj_v_394" = getelementptr i8, i8* %"$msgobj_380", i32 65 - %"$msgobj_v_395" = bitcast i8* %"$msgobj_v_394" to [20 x i8]* - store [20 x i8] %_sender, [20 x i8]* %"$msgobj_v_395", align 1 - %"$msgobj_fname_397" = getelementptr i8, i8* %"$msgobj_380", i32 85 - %"$msgobj_fname_398" = bitcast i8* %"$msgobj_fname_397" to %String* - store %String { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$stringlit_396", i32 0, i32 0), i32 7 }, %String* %"$msgobj_fname_398", align 8 - %"$msgobj_td_399" = getelementptr i8, i8* %"$msgobj_380", i32 101 - %"$msgobj_td_400" = bitcast i8* %"$msgobj_td_399" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Uint128_22", %_TyDescrTy_Typ** %"$msgobj_td_400", align 8 - %"$msgobj_v_401" = getelementptr i8, i8* %"$msgobj_380", i32 109 - %"$msgobj_v_402" = bitcast i8* %"$msgobj_v_401" to %Uint128* - store %Uint128 zeroinitializer, %Uint128* %"$msgobj_v_402", align 8 - %"$msgobj_fname_404" = getelementptr i8, i8* %"$msgobj_380", i32 125 - %"$msgobj_fname_405" = bitcast i8* %"$msgobj_fname_404" to %String* - store %String { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$stringlit_403", i32 0, i32 0), i32 6 }, %String* %"$msgobj_fname_405", align 8 - %"$msgobj_td_406" = getelementptr i8, i8* %"$msgobj_380", i32 141 - %"$msgobj_td_407" = bitcast i8* %"$msgobj_td_406" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_String_28", %_TyDescrTy_Typ** %"$msgobj_td_407", align 8 - %"$msgobj_v_409" = getelementptr i8, i8* %"$msgobj_380", i32 149 - %"$msgobj_v_410" = bitcast i8* %"$msgobj_v_409" to %String* - store %String { i8* getelementptr inbounds ([12 x i8], [12 x i8]* @"$stringlit_408", i32 0, i32 0), i32 12 }, %String* %"$msgobj_v_410", align 8 - store i8* %"$msgobj_380", i8** %m3, align 8, !dbg !32 - %"$gasrem_412" = load i64, i64* @_gasrem, align 8 - %"$gascmp_413" = icmp ugt i64 1, %"$gasrem_412" - br i1 %"$gascmp_413", label %"$out_of_gas_414", label %"$have_gas_415" - -"$out_of_gas_414": ; preds = %"$have_gas_378" + br label %"$have_gas_379" + +"$have_gas_379": ; preds = %"$out_of_gas_378", %"$have_gas_374" + %"$consume_380" = sub i64 %"$gasrem_376", 1 + store i64 %"$consume_380", i64* @_gasrem, align 8 + %"$msgobj_381_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$msgobj_381_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_381_salloc_load", i64 165) + %"$msgobj_381_salloc" = bitcast i8* %"$msgobj_381_salloc_salloc" to [165 x i8]* + %"$msgobj_381" = bitcast [165 x i8]* %"$msgobj_381_salloc" to i8* + store i8 4, i8* %"$msgobj_381", align 1 + %"$msgobj_fname_383" = getelementptr i8, i8* %"$msgobj_381", i32 1 + %"$msgobj_fname_384" = bitcast i8* %"$msgobj_fname_383" to %String* + store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_382", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_384", align 8 + %"$msgobj_td_385" = getelementptr i8, i8* %"$msgobj_381", i32 17 + %"$msgobj_td_386" = bitcast i8* %"$msgobj_td_385" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_String_28", %_TyDescrTy_Typ** %"$msgobj_td_386", align 8 + %"$msgobj_v_388" = getelementptr i8, i8* %"$msgobj_381", i32 25 + %"$msgobj_v_389" = bitcast i8* %"$msgobj_v_388" to %String* + store %String { i8* getelementptr inbounds ([0 x i8], [0 x i8]* @"$stringlit_387", i32 0, i32 0), i32 0 }, %String* %"$msgobj_v_389", align 8 + %"$msgobj_fname_391" = getelementptr i8, i8* %"$msgobj_381", i32 41 + %"$msgobj_fname_392" = bitcast i8* %"$msgobj_fname_391" to %String* + store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_390", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_392", align 8 + %"$msgobj_td_393" = getelementptr i8, i8* %"$msgobj_381", i32 57 + %"$msgobj_td_394" = bitcast i8* %"$msgobj_td_393" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_46", %_TyDescrTy_Typ** %"$msgobj_td_394", align 8 + %"$msgobj_v_395" = getelementptr i8, i8* %"$msgobj_381", i32 65 + %"$msgobj_v_396" = bitcast i8* %"$msgobj_v_395" to [20 x i8]* + store [20 x i8] %_sender, [20 x i8]* %"$msgobj_v_396", align 1 + %"$msgobj_fname_398" = getelementptr i8, i8* %"$msgobj_381", i32 85 + %"$msgobj_fname_399" = bitcast i8* %"$msgobj_fname_398" to %String* + store %String { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$stringlit_397", i32 0, i32 0), i32 7 }, %String* %"$msgobj_fname_399", align 8 + %"$msgobj_td_400" = getelementptr i8, i8* %"$msgobj_381", i32 101 + %"$msgobj_td_401" = bitcast i8* %"$msgobj_td_400" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Uint128_22", %_TyDescrTy_Typ** %"$msgobj_td_401", align 8 + %"$msgobj_v_402" = getelementptr i8, i8* %"$msgobj_381", i32 109 + %"$msgobj_v_403" = bitcast i8* %"$msgobj_v_402" to %Uint128* + store %Uint128 zeroinitializer, %Uint128* %"$msgobj_v_403", align 8 + %"$msgobj_fname_405" = getelementptr i8, i8* %"$msgobj_381", i32 125 + %"$msgobj_fname_406" = bitcast i8* %"$msgobj_fname_405" to %String* + store %String { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$stringlit_404", i32 0, i32 0), i32 6 }, %String* %"$msgobj_fname_406", align 8 + %"$msgobj_td_407" = getelementptr i8, i8* %"$msgobj_381", i32 141 + %"$msgobj_td_408" = bitcast i8* %"$msgobj_td_407" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_String_28", %_TyDescrTy_Typ** %"$msgobj_td_408", align 8 + %"$msgobj_v_410" = getelementptr i8, i8* %"$msgobj_381", i32 149 + %"$msgobj_v_411" = bitcast i8* %"$msgobj_v_410" to %String* + store %String { i8* getelementptr inbounds ([12 x i8], [12 x i8]* @"$stringlit_409", i32 0, i32 0), i32 12 }, %String* %"$msgobj_v_411", align 8 + store i8* %"$msgobj_381", i8** %m3, align 8, !dbg !76 + %"$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_379" call void @_out_of_gas() - br label %"$have_gas_415" + br label %"$have_gas_416" -"$have_gas_415": ; preds = %"$out_of_gas_414", %"$have_gas_378" - %"$consume_416" = sub i64 %"$gasrem_412", 1 - store i64 %"$consume_416", i64* @_gasrem, align 8 +"$have_gas_416": ; preds = %"$out_of_gas_415", %"$have_gas_379" + %"$consume_417" = sub i64 %"$gasrem_413", 1 + store i64 %"$consume_417", i64* @_gasrem, align 8 %mone4 = alloca %TName_List_Message*, align 8 - %"$gasrem_417" = load i64, i64* @_gasrem, align 8 - %"$gascmp_418" = icmp ugt i64 1, %"$gasrem_417" - br i1 %"$gascmp_418", label %"$out_of_gas_419", label %"$have_gas_420" + call void @llvm.dbg.declare(metadata %TName_List_Message** %mone4, metadata !77, metadata !DIExpression()), !dbg !78 + %"$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_419": ; preds = %"$have_gas_415" +"$out_of_gas_420": ; preds = %"$have_gas_416" call void @_out_of_gas() - br label %"$have_gas_420" + br label %"$have_gas_421" -"$have_gas_420": ; preds = %"$out_of_gas_419", %"$have_gas_415" - %"$consume_421" = sub i64 %"$gasrem_417", 1 - store i64 %"$consume_421", 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 %"$ecdsa.one_msg_6" = alloca %TName_List_Message*, align 8 - %"$ecdsa.one_msg_422" = load { %TName_List_Message* (i8*, i8*)*, i8* }, { %TName_List_Message* (i8*, i8*)*, i8* }* @ecdsa.one_msg, align 8 - %"$ecdsa.one_msg_fptr_423" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$ecdsa.one_msg_422", 0 - %"$ecdsa.one_msg_envptr_424" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$ecdsa.one_msg_422", 1 - %"$m_425" = load i8*, i8** %m3, align 8 - %"$ecdsa.one_msg_call_426" = call %TName_List_Message* %"$ecdsa.one_msg_fptr_423"(i8* %"$ecdsa.one_msg_envptr_424", i8* %"$m_425"), !dbg !34 - store %TName_List_Message* %"$ecdsa.one_msg_call_426", %TName_List_Message** %"$ecdsa.one_msg_6", align 8, !dbg !34 - %"$$ecdsa.one_msg_6_427" = load %TName_List_Message*, %TName_List_Message** %"$ecdsa.one_msg_6", align 8 - store %TName_List_Message* %"$$ecdsa.one_msg_6_427", %TName_List_Message** %mone4, align 8, !dbg !34 - %"$mone_428" = load %TName_List_Message*, %TName_List_Message** %mone4, align 8 - %"$$mone_428_429" = bitcast %TName_List_Message* %"$mone_428" to i8* - %"$_literal_cost_call_430" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_52", i8* %"$$mone_428_429") - %"$gasrem_431" = load i64, i64* @_gasrem, align 8 - %"$gascmp_432" = icmp ugt i64 %"$_literal_cost_call_430", %"$gasrem_431" - br i1 %"$gascmp_432", label %"$out_of_gas_433", label %"$have_gas_434" - -"$out_of_gas_433": ; preds = %"$have_gas_420" + call void @llvm.dbg.declare(metadata %TName_List_Message** %"$ecdsa.one_msg_6", metadata !79, metadata !DIExpression()), !dbg !80 + %"$ecdsa.one_msg_423" = load { %TName_List_Message* (i8*, i8*)*, i8* }, { %TName_List_Message* (i8*, i8*)*, i8* }* @ecdsa.one_msg, align 8 + %"$ecdsa.one_msg_fptr_424" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$ecdsa.one_msg_423", 0 + %"$ecdsa.one_msg_envptr_425" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$ecdsa.one_msg_423", 1 + %"$m_426" = load i8*, i8** %m3, align 8 + %"$ecdsa.one_msg_call_427" = call %TName_List_Message* %"$ecdsa.one_msg_fptr_424"(i8* %"$ecdsa.one_msg_envptr_425", i8* %"$m_426"), !dbg !80 + store %TName_List_Message* %"$ecdsa.one_msg_call_427", %TName_List_Message** %"$ecdsa.one_msg_6", align 8, !dbg !80 + %"$$ecdsa.one_msg_6_428" = load %TName_List_Message*, %TName_List_Message** %"$ecdsa.one_msg_6", align 8 + store %TName_List_Message* %"$$ecdsa.one_msg_6_428", %TName_List_Message** %mone4, align 8, !dbg !80 + %"$mone_429" = load %TName_List_Message*, %TName_List_Message** %mone4, align 8 + %"$$mone_429_430" = bitcast %TName_List_Message* %"$mone_429" to i8* + %"$_literal_cost_call_431" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_52", i8* %"$$mone_429_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_434" + br label %"$have_gas_435" -"$have_gas_434": ; preds = %"$out_of_gas_433", %"$have_gas_420" - %"$consume_435" = sub i64 %"$gasrem_431", %"$_literal_cost_call_430" - store i64 %"$consume_435", i64* @_gasrem, align 8 - %"$execptr_load_436" = load i8*, i8** @_execptr, align 8 - %"$mone_437" = load %TName_List_Message*, %TName_List_Message** %mone4, align 8 - call void @_send(i8* %"$execptr_load_436", %_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_52", %TName_List_Message* %"$mone_437"), !dbg !35 - br label %"$matchsucc_182" +"$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 + %"$mone_438" = load %TName_List_Message*, %TName_List_Message** %mone4, align 8 + call void @_send(i8* %"$execptr_load_437", %_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_52", %TName_List_Message* %"$mone_438"), !dbg !81 + br label %"$matchsucc_183" -"$empty_default_186": ; preds = %"$have_gas_180" - br label %"$matchsucc_182" +"$empty_default_187": ; preds = %"$have_gas_181" + br label %"$matchsucc_183" -"$matchsucc_182": ; preds = %"$have_gas_434", %"$matchsucc_223", %"$empty_default_186" +"$matchsucc_183": ; preds = %"$have_gas_435", %"$matchsucc_224", %"$empty_default_187" ret void } @@ -801,62 +836,110 @@ declare %TName_Bool* @_ecdsa_verify(i8*, [33 x i8]*, %Bystr, [64 x i8]*) declare void @_send(i8*, %_TyDescrTy_Typ*, %TName_List_Message*) -define void @verify(i8* %0) !dbg !36 { +define void @verify(i8* %0) !dbg !82 { entry: - %"$_amount_439" = getelementptr i8, i8* %0, i32 0 - %"$_amount_440" = bitcast i8* %"$_amount_439" to %Uint128* - %_amount = load %Uint128, %Uint128* %"$_amount_440", align 8 - %"$_origin_441" = getelementptr i8, i8* %0, i32 16 - %"$_origin_442" = bitcast i8* %"$_origin_441" to [20 x i8]* - %"$_sender_443" = getelementptr i8, i8* %0, i32 36 - %"$_sender_444" = bitcast i8* %"$_sender_443" to [20 x i8]* - %"$msg_445" = getelementptr i8, i8* %0, i32 56 - %"$msg_446" = bitcast i8* %"$msg_445" to %Bystr* - %msg = load %Bystr, %Bystr* %"$msg_446", align 8 - %"$sig_447" = getelementptr i8, i8* %0, i32 72 - %"$sig_448" = bitcast i8* %"$sig_447" to [64 x i8]* - call void @"$verify_160"(%Uint128 %_amount, [20 x i8]* %"$_origin_442", [20 x i8]* %"$_sender_444", %Bystr %msg, [64 x i8]* %"$sig_448"), !dbg !37 + %"$_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]* + %"$msg_451" = getelementptr i8, i8* %0, i32 56 + %"$msg_452" = bitcast i8* %"$msg_451" to %Bystr* + %msg = load %Bystr, %Bystr* %"$msg_452", align 8 + %"$sig_453" = getelementptr i8, i8* %0, i32 72 + %"$sig_454" = bitcast i8* %"$sig_453" to [64 x i8]* + call void @"$verify_161"(%Uint128 %_amount, [20 x i8]* %"$_origin_448", [20 x i8]* %"$_sender_450", %Bystr %msg, [64 x i8]* %"$sig_454"), !dbg !83 ret void } +attributes #0 = { nocallback nofree nosync nounwind readnone speculatable willreturn } + !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) +!1 = distinct !DICompileUnit(language: DW_LANG_C89, file: !2, producer: "Scilla Compiler", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false) !2 = !DIFile(filename: "ecdsa.scilla", directory: "codegen/contr") -!3 = !{} -!4 = distinct !DISubprogram(name: "$fundef_7", linkageName: "$fundef_7", 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: 19, scope: !4) -!9 = !DILocation(line: 10, column: 5, scope: !4) -!10 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !11, file: !11, type: !5, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!11 = !DIFile(filename: ".", directory: ".") -!12 = !DILocation(line: 0, scope: !10) -!13 = !DILocation(line: 9, column: 5, scope: !10) -!14 = distinct !DISubprogram(name: "_deploy_ops", linkageName: "_deploy_ops", scope: !11, file: !11, type: !5, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!15 = !DILocation(line: 18, column: 36, scope: !14) -!16 = distinct !DISubprogram(name: "verify", linkageName: "verify", scope: !2, file: !2, line: 20, type: !5, scopeLine: 20, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!17 = !DILocation(line: 21, column: 3, scope: !16) -!18 = !DILocation(line: 22, column: 3, scope: !16) -!19 = !DILocation(line: 24, column: 11, scope: !20) -!20 = distinct !DILexicalBlock(scope: !21, file: !2, line: 23, column: 5) -!21 = distinct !DILexicalBlock(scope: !16, file: !2, line: 22, column: 3) -!22 = !DILocation(line: 25, column: 5, scope: !20) -!23 = !DILocation(line: 27, column: 11, scope: !24) -!24 = distinct !DILexicalBlock(scope: !25, file: !2, line: 26, column: 7) -!25 = distinct !DILexicalBlock(scope: !20, file: !2, line: 25, column: 5) -!26 = !DILocation(line: 28, column: 14, scope: !24) -!27 = !DILocation(line: 29, column: 7, scope: !24) -!28 = !DILocation(line: 31, column: 11, scope: !29) -!29 = distinct !DILexicalBlock(scope: !25, file: !2, line: 30, column: 7) -!30 = !DILocation(line: 32, column: 14, scope: !29) -!31 = !DILocation(line: 33, column: 7, scope: !29) -!32 = !DILocation(line: 37, column: 9, scope: !33) -!33 = distinct !DILexicalBlock(scope: !21, file: !2, line: 35, column: 5) -!34 = !DILocation(line: 38, column: 12, scope: !33) -!35 = !DILocation(line: 39, column: 5, scope: !33) -!36 = distinct !DISubprogram(name: "verify", linkageName: "verify", scope: !2, file: !2, line: 20, type: !5, scopeLine: 20, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!37 = !DILocation(line: 20, column: 12, scope: !36) +!3 = distinct !DISubprogram(name: "$fundef_7", linkageName: "$fundef_7", scope: !2, file: !2, line: 9, type: !4, scopeLine: 9, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!4 = !DISubroutineType(types: !5) +!5 = !{!6} +!6 = !DIBasicType(tag: DW_TAG_unspecified_type, name: "void") +!7 = !{} +!8 = !DILocalVariable(name: "msg", scope: !3, file: !2, line: 8, type: !9) +!9 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "Message", baseType: !10, size: 8, align: 8, dwarfAddressSpace: 0) +!10 = !DIBasicType(name: "Message", size: 8) +!11 = !DILocation(line: 8, column: 8, scope: !3) +!12 = !DILocalVariable(name: "$retval_8", scope: !3, file: !2, line: 9, type: !13) +!13 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "List (Message)", baseType: !14, size: 8, align: 8, dwarfAddressSpace: 0) +!14 = !DIBasicType(name: "List (Message)", size: 8) +!15 = !DILocation(line: 9, column: 5, scope: !3) +!16 = !DILocalVariable(name: "nil_msg", scope: !3, file: !2, line: 9, type: !13) +!17 = !DILocation(line: 9, column: 9, scope: !3) +!18 = !DILocation(line: 9, column: 19, scope: !3) +!19 = !DILocation(line: 10, column: 5, scope: !3) +!20 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !21, file: !21, type: !4, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!21 = !DIFile(filename: ".", directory: ".") +!22 = !DILocation(line: 0, scope: !20) +!23 = !DILocation(line: 9, column: 5, scope: !20) +!24 = distinct !DISubprogram(name: "_deploy_ops", linkageName: "_deploy_ops", scope: !21, file: !21, type: !4, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!25 = !DILocalVariable(name: "$pub_key_9", scope: !24, file: !2, line: 18, type: !26) +!26 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "Option (ByStr33)", baseType: !27, size: 8, align: 8, dwarfAddressSpace: 0) +!27 = !DIBasicType(name: "Option (ByStr33)", size: 8) +!28 = !DILocation(line: 18, column: 7, scope: !24) +!29 = !DILocation(line: 18, column: 36, scope: !24) +!30 = distinct !DISubprogram(name: "verify", linkageName: "verify", scope: !2, file: !2, line: 20, type: !4, scopeLine: 20, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!31 = !DILocalVariable(name: "sig", scope: !30, file: !2, line: 20, type: !32) +!32 = !DIBasicType(name: "ByStr64", size: 64) +!33 = !DILocation(line: 20, column: 32, scope: !30) +!34 = !DILocalVariable(name: "msg", scope: !30, file: !2, line: 20, type: !35) +!35 = !DIBasicType(name: "ByStr", size: 16) +!36 = !DILocation(line: 20, column: 19, scope: !30) +!37 = !DILocalVariable(name: "_sender", scope: !30, file: !2, line: 20, type: !38) +!38 = !DIBasicType(name: "ByStr20 with end", size: 20) +!39 = !DILocation(line: 20, column: 12, scope: !30) +!40 = !DILocalVariable(name: "_origin", scope: !30, file: !2, line: 20, type: !38) +!41 = !DILocalVariable(name: "_amount", scope: !30, file: !2, line: 20, type: !42) +!42 = !DIBasicType(name: "Uint128", size: 16) +!43 = !DILocalVariable(name: "pubk_o", scope: !30, file: !2, line: 21, type: !26) +!44 = !DILocation(line: 21, column: 3, scope: !30) +!45 = !DILocation(line: 22, column: 3, scope: !30) +!46 = !DILocalVariable(name: "$sig_3", scope: !47, file: !2, line: 24, type: !49) +!47 = distinct !DILexicalBlock(scope: !48, file: !2, line: 23, column: 5) +!48 = distinct !DILexicalBlock(scope: !30, file: !2, line: 22, column: 3) +!49 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "Bool", baseType: !50, size: 8, align: 8, dwarfAddressSpace: 0) +!50 = !DIBasicType(name: "Bool", size: 8) +!51 = !DILocation(line: 24, column: 5, scope: !47) +!52 = !DILocation(line: 24, column: 11, scope: !47) +!53 = !DILocation(line: 25, column: 5, scope: !47) +!54 = !DILocalVariable(name: "m", scope: !55, file: !2, line: 27, type: !9) +!55 = distinct !DILexicalBlock(scope: !56, file: !2, line: 26, column: 7) +!56 = distinct !DILexicalBlock(scope: !47, file: !2, line: 25, column: 5) +!57 = !DILocation(line: 27, column: 7, scope: !55) +!58 = !DILocation(line: 27, column: 11, scope: !55) +!59 = !DILocalVariable(name: "mone", scope: !55, file: !2, line: 28, type: !13) +!60 = !DILocation(line: 28, column: 7, scope: !55) +!61 = !DILocalVariable(name: "$ecdsa.one_msg_4", scope: !55, file: !2, line: 28, type: !13) +!62 = !DILocation(line: 28, column: 14, scope: !55) +!63 = !DILocation(line: 29, column: 7, scope: !55) +!64 = !DILocalVariable(name: "m", scope: !65, file: !2, line: 31, type: !9) +!65 = distinct !DILexicalBlock(scope: !56, file: !2, line: 30, column: 7) +!66 = !DILocation(line: 31, column: 7, scope: !65) +!67 = !DILocation(line: 31, column: 11, scope: !65) +!68 = !DILocalVariable(name: "mone", scope: !65, file: !2, line: 32, type: !13) +!69 = !DILocation(line: 32, column: 7, scope: !65) +!70 = !DILocalVariable(name: "$ecdsa.one_msg_5", scope: !65, file: !2, line: 32, type: !13) +!71 = !DILocation(line: 32, column: 14, scope: !65) +!72 = !DILocation(line: 33, column: 7, scope: !65) +!73 = !DILocalVariable(name: "m", scope: !74, file: !2, line: 37, type: !9) +!74 = distinct !DILexicalBlock(scope: !48, file: !2, line: 35, column: 5) +!75 = !DILocation(line: 37, column: 5, scope: !74) +!76 = !DILocation(line: 37, column: 9, scope: !74) +!77 = !DILocalVariable(name: "mone", scope: !74, file: !2, line: 38, type: !13) +!78 = !DILocation(line: 38, column: 5, scope: !74) +!79 = !DILocalVariable(name: "$ecdsa.one_msg_6", scope: !74, file: !2, line: 38, type: !13) +!80 = !DILocation(line: 38, column: 12, scope: !74) +!81 = !DILocation(line: 39, column: 5, scope: !74) +!82 = distinct !DISubprogram(name: "verify", linkageName: "verify", scope: !2, file: !2, line: 20, type: !4, scopeLine: 20, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!83 = !DILocation(line: 20, column: 12, scope: !82) diff --git a/testsuite/contr/ecdsa.ll b/testsuite/contr/ecdsa.ll index 51c5ce55..b04e6c86 100644 --- a/testsuite/contr/ecdsa.ll +++ b/testsuite/contr/ecdsa.ll @@ -4,7 +4,7 @@ ; ModuleID = 'Ecdsa' source_filename = "Ecdsa" target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-pc-linux-gnu" +target triple = "x86_64-unknown-linux-gnu" %"$TyDescrTy_PrimTyp_10" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/testsuite/contr/event.dbg.ll b/testsuite/contr/event.dbg.ll index 4791555c..97d67191 100644 --- a/testsuite/contr/event.dbg.ll +++ b/testsuite/contr/event.dbg.ll @@ -4,7 +4,7 @@ ; 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-pc-linux-gnu" +target triple = "x86_64-unknown-linux-gnu" %"$TyDescrTy_PrimTyp_1" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } @@ -13,9 +13,9 @@ target triple = "x86_64-pc-linux-gnu" %TyDescrString = type { i8*, i32 } %Int32 = type { i32 } %Uint32 = type { i32 } -%"$ParamDescr_108" = type { %ParamDescrString, %_TyDescrTy_Typ* } +%"$ParamDescr_111" = type { %ParamDescrString, %_TyDescrTy_Typ* } %ParamDescrString = type { i8*, i32 } -%"$TransDescr_109" = type { %ParamDescrString, i32, %"$ParamDescr_108"* } +%"$TransDescr_112" = type { %ParamDescrString, i32, %"$ParamDescr_111"* } %Uint128 = type { i128 } %String = type { i8*, i32 } @@ -66,20 +66,20 @@ target triple = "x86_64-pc-linux-gnu" @"$stringlit_82" = unnamed_addr constant [8 x i8] c"creation" @_tydescr_table = constant [17 x %_TyDescrTy_Typ*] [%_TyDescrTy_Typ* @"$TyDescr_Event_25", %_TyDescrTy_Typ* @"$TyDescr_Int64_7", %_TyDescrTy_Typ* @"$TyDescr_Addr_40", %_TyDescrTy_Typ* @"$TyDescr_Bystr20_33", %_TyDescrTy_Typ* @"$TyDescr_Uint256_17", %_TyDescrTy_Typ* @"$TyDescr_Uint32_5", %_TyDescrTy_Typ* @"$TyDescr_Uint64_9", %_TyDescrTy_Typ* @"$TyDescr_Bnum_21", %_TyDescrTy_Typ* @"$TyDescr_Uint128_13", %_TyDescrTy_Typ* @"$TyDescr_Exception_27", %_TyDescrTy_Typ* @"$TyDescr_String_19", %_TyDescrTy_Typ* @"$TyDescr_Int256_15", %_TyDescrTy_Typ* @"$TyDescr_Int128_11", %_TyDescrTy_Typ* @"$TyDescr_Bystr_31", %_TyDescrTy_Typ* @"$TyDescr_ReplicateContr_29", %_TyDescrTy_Typ* @"$TyDescr_Message_23", %_TyDescrTy_Typ* @"$TyDescr_Int32_3"] @_tydescr_table_length = constant i32 17 -@"$pname__scilla_version_110" = unnamed_addr constant [15 x i8] c"_scilla_version" -@"$pname__this_address_111" = unnamed_addr constant [13 x i8] c"_this_address" -@"$pname__creation_block_112" = unnamed_addr constant [15 x i8] c"_creation_block" -@_contract_parameters = constant [3 x %"$ParamDescr_108"] [%"$ParamDescr_108" { %ParamDescrString { i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$pname__scilla_version_110", i32 0, i32 0), i32 15 }, %_TyDescrTy_Typ* @"$TyDescr_Uint32_5" }, %"$ParamDescr_108" { %ParamDescrString { i8* getelementptr inbounds ([13 x i8], [13 x i8]* @"$pname__this_address_111", i32 0, i32 0), i32 13 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr20_33" }, %"$ParamDescr_108" { %ParamDescrString { i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$pname__creation_block_112", i32 0, i32 0), i32 15 }, %_TyDescrTy_Typ* @"$TyDescr_Bnum_21" }] +@"$pname__scilla_version_113" = unnamed_addr constant [15 x i8] c"_scilla_version" +@"$pname__this_address_114" = unnamed_addr constant [13 x i8] c"_this_address" +@"$pname__creation_block_115" = unnamed_addr constant [15 x i8] c"_creation_block" +@_contract_parameters = constant [3 x %"$ParamDescr_111"] [%"$ParamDescr_111" { %ParamDescrString { i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$pname__scilla_version_113", i32 0, i32 0), i32 15 }, %_TyDescrTy_Typ* @"$TyDescr_Uint32_5" }, %"$ParamDescr_111" { %ParamDescrString { i8* getelementptr inbounds ([13 x i8], [13 x i8]* @"$pname__this_address_114", i32 0, i32 0), i32 13 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr20_33" }, %"$ParamDescr_111" { %ParamDescrString { i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$pname__creation_block_115", i32 0, i32 0), i32 15 }, %_TyDescrTy_Typ* @"$TyDescr_Bnum_21" }] @_contract_parameters_length = constant i32 3 -@"$tpname__amount_113" = unnamed_addr constant [7 x i8] c"_amount" -@"$tpname__origin_114" = unnamed_addr constant [7 x i8] c"_origin" -@"$tpname__sender_115" = unnamed_addr constant [7 x i8] c"_sender" -@"$tparams_EventCreate_116" = unnamed_addr constant [3 x %"$ParamDescr_108"] [%"$ParamDescr_108" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_113", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_13" }, %"$ParamDescr_108" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_114", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_40" }, %"$ParamDescr_108" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_115", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_40" }] -@"$tname_EventCreate_117" = unnamed_addr constant [11 x i8] c"EventCreate" -@_transition_parameters = constant [1 x %"$TransDescr_109"] [%"$TransDescr_109" { %ParamDescrString { i8* getelementptr inbounds ([11 x i8], [11 x i8]* @"$tname_EventCreate_117", i32 0, i32 0), i32 11 }, i32 3, %"$ParamDescr_108"* getelementptr inbounds ([3 x %"$ParamDescr_108"], [3 x %"$ParamDescr_108"]* @"$tparams_EventCreate_116", i32 0, i32 0) }] +@"$tpname__amount_116" = unnamed_addr constant [7 x i8] c"_amount" +@"$tpname__origin_117" = unnamed_addr constant [7 x i8] c"_origin" +@"$tpname__sender_118" = unnamed_addr constant [7 x i8] c"_sender" +@"$tparams_EventCreate_119" = unnamed_addr constant [3 x %"$ParamDescr_111"] [%"$ParamDescr_111" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_116", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_13" }, %"$ParamDescr_111" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_117", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_40" }, %"$ParamDescr_111" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_118", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_40" }] +@"$tname_EventCreate_120" = unnamed_addr constant [11 x i8] c"EventCreate" +@_transition_parameters = constant [1 x %"$TransDescr_112"] [%"$TransDescr_112" { %ParamDescrString { i8* getelementptr inbounds ([11 x i8], [11 x i8]* @"$tname_EventCreate_120", i32 0, i32 0), i32 11 }, i32 3, %"$ParamDescr_111"* getelementptr inbounds ([3 x %"$ParamDescr_111"], [3 x %"$ParamDescr_111"]* @"$tparams_EventCreate_119", i32 0, i32 0) }] @_transition_parameters_length = constant i32 1 -define void @_init_libs() !dbg !4 { +define void @_init_libs() !dbg !3 { entry: %"$gasrem_42" = load i64, i64* @_gasrem, align 8 %"$gascmp_43" = icmp ugt i64 5, %"$gasrem_42" @@ -116,6 +116,15 @@ entry: define internal void @"$EventCreate_52"(%Uint128 %_amount, [20 x i8]* %"$_origin_53", [20 x i8]* %"$_sender_54") !dbg !11 { entry: + %"$_sender_103" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_sender_54", [20 x i8]** %"$_sender_103", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_sender_103", metadata !12, metadata !DIExpression()), !dbg !14 + %"$_origin_102" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_origin_53", [20 x i8]** %"$_origin_102", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_origin_102", metadata !15, metadata !DIExpression()), !dbg !14 + %"$_amount_101" = alloca %Uint128, align 8 + store %Uint128 %_amount, %Uint128* %"$_amount_101", align 8 + call void @llvm.dbg.declare(metadata %Uint128* %"$_amount_101", metadata !16, metadata !DIExpression()), !dbg !14 %_origin = load [20 x i8], [20 x i8]* %"$_origin_53", align 1 %_sender = load [20 x i8], [20 x i8]* %"$_sender_54", align 1 %"$gasrem_55" = load i64, i64* @_gasrem, align 8 @@ -130,6 +139,7 @@ entry: %"$consume_59" = sub i64 %"$gasrem_55", 1 store i64 %"$consume_59", i64* @_gasrem, align 8 %e = alloca i8*, align 8 + call void @llvm.dbg.declare(metadata i8** %e, metadata !18, metadata !DIExpression()), !dbg !21 %"$gasrem_60" = load i64, i64* @_gasrem, align 8 %"$gascmp_61" = icmp ugt i64 1, %"$gasrem_60" br i1 %"$gascmp_61", label %"$out_of_gas_62", label %"$have_gas_63" @@ -174,7 +184,7 @@ entry: %"$msgobj_v_88" = getelementptr i8, i8* %"$msgobj_65", i32 105 %"$msgobj_v_89" = bitcast i8* %"$msgobj_v_88" to i8** store i8* %"$_creation_block_87", i8** %"$msgobj_v_89", align 8 - store i8* %"$msgobj_65", i8** %e, align 8, !dbg !12 + store i8* %"$msgobj_65", i8** %e, align 8, !dbg !22 %"$e_91" = load i8*, i8** %e, align 8 %"$_literal_cost_call_93" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Event_25", i8* %"$e_91") %"$gasrem_94" = load i64, i64* @_gasrem, align 8 @@ -190,45 +200,60 @@ entry: store i64 %"$consume_98", i64* @_gasrem, align 8 %"$execptr_load_99" = load i8*, i8** @_execptr, align 8 %"$e_100" = load i8*, i8** %e, align 8 - call void @_event(i8* %"$execptr_load_99", %_TyDescrTy_Typ* @"$TyDescr_Event_25", i8* %"$e_100"), !dbg !13 + call void @_event(i8* %"$execptr_load_99", %_TyDescrTy_Typ* @"$TyDescr_Event_25", i8* %"$e_100"), !dbg !23 ret void } +; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn +declare void @llvm.dbg.declare(metadata, metadata, metadata) #0 + declare i8* @_salloc(i8*, i64) declare i64 @_literal_cost(%_TyDescrTy_Typ*, i8*) declare void @_event(i8*, %_TyDescrTy_Typ*, i8*) -define void @EventCreate(i8* %0) !dbg !14 { +define void @EventCreate(i8* %0) !dbg !24 { entry: - %"$_amount_102" = getelementptr i8, i8* %0, i32 0 - %"$_amount_103" = bitcast i8* %"$_amount_102" to %Uint128* - %_amount = load %Uint128, %Uint128* %"$_amount_103", align 8 - %"$_origin_104" = getelementptr i8, i8* %0, i32 16 - %"$_origin_105" = bitcast i8* %"$_origin_104" to [20 x i8]* - %"$_sender_106" = getelementptr i8, i8* %0, i32 36 - %"$_sender_107" = bitcast i8* %"$_sender_106" to [20 x i8]* - call void @"$EventCreate_52"(%Uint128 %_amount, [20 x i8]* %"$_origin_105", [20 x i8]* %"$_sender_107"), !dbg !15 + %"$_amount_105" = getelementptr i8, i8* %0, i32 0 + %"$_amount_106" = bitcast i8* %"$_amount_105" to %Uint128* + %_amount = load %Uint128, %Uint128* %"$_amount_106", align 8 + %"$_origin_107" = getelementptr i8, i8* %0, i32 16 + %"$_origin_108" = bitcast i8* %"$_origin_107" to [20 x i8]* + %"$_sender_109" = getelementptr i8, i8* %0, i32 36 + %"$_sender_110" = bitcast i8* %"$_sender_109" to [20 x i8]* + call void @"$EventCreate_52"(%Uint128 %_amount, [20 x i8]* %"$_origin_108", [20 x i8]* %"$_sender_110"), !dbg !25 ret void } +attributes #0 = { nocallback nofree nosync nounwind readnone speculatable willreturn } + !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) +!1 = distinct !DICompileUnit(language: DW_LANG_C89, file: !2, producer: "Scilla Compiler", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false) !2 = !DIFile(filename: "event.scilla", directory: "codegen/contr") -!3 = !{} -!4 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !5, file: !5, type: !6, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!5 = !DIFile(filename: ".", directory: ".") -!6 = !DISubroutineType(types: !7) -!7 = !{!8} -!8 = !DIBasicType(tag: DW_TAG_unspecified_type, name: "void") -!9 = !DILocation(line: 0, scope: !4) -!10 = distinct !DISubprogram(name: "_deploy_ops", linkageName: "_deploy_ops", scope: !5, file: !5, type: !6, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!11 = distinct !DISubprogram(name: "EventCreate", linkageName: "EventCreate", scope: !2, file: !2, line: 8, type: !6, scopeLine: 8, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!12 = !DILocation(line: 9, column: 9, scope: !11) -!13 = !DILocation(line: 10, column: 5, scope: !11) -!14 = distinct !DISubprogram(name: "EventCreate", linkageName: "EventCreate", scope: !2, file: !2, line: 8, type: !6, scopeLine: 8, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!15 = !DILocation(line: 8, column: 12, scope: !14) +!3 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !4, file: !4, type: !5, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!4 = !DIFile(filename: ".", directory: ".") +!5 = !DISubroutineType(types: !6) +!6 = !{!7} +!7 = !DIBasicType(tag: DW_TAG_unspecified_type, name: "void") +!8 = !{} +!9 = !DILocation(line: 0, scope: !3) +!10 = distinct !DISubprogram(name: "_deploy_ops", linkageName: "_deploy_ops", scope: !4, file: !4, type: !5, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!11 = distinct !DISubprogram(name: "EventCreate", linkageName: "EventCreate", scope: !2, file: !2, line: 8, type: !5, scopeLine: 8, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!12 = !DILocalVariable(name: "_sender", scope: !11, file: !2, line: 8, type: !13) +!13 = !DIBasicType(name: "ByStr20 with end", size: 20) +!14 = !DILocation(line: 8, column: 12, scope: !11) +!15 = !DILocalVariable(name: "_origin", scope: !11, file: !2, line: 8, type: !13) +!16 = !DILocalVariable(name: "_amount", scope: !11, file: !2, line: 8, type: !17) +!17 = !DIBasicType(name: "Uint128", size: 16) +!18 = !DILocalVariable(name: "e", scope: !11, file: !2, line: 9, type: !19) +!19 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "Event", baseType: !20, size: 8, align: 8, dwarfAddressSpace: 0) +!20 = !DIBasicType(name: "Event", size: 8) +!21 = !DILocation(line: 9, column: 5, scope: !11) +!22 = !DILocation(line: 9, column: 9, scope: !11) +!23 = !DILocation(line: 10, column: 5, scope: !11) +!24 = distinct !DISubprogram(name: "EventCreate", linkageName: "EventCreate", scope: !2, file: !2, line: 8, type: !5, scopeLine: 8, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!25 = !DILocation(line: 8, column: 12, scope: !24) diff --git a/testsuite/contr/event.ll b/testsuite/contr/event.ll index 1ec95471..bad706dd 100644 --- a/testsuite/contr/event.ll +++ b/testsuite/contr/event.ll @@ -4,7 +4,7 @@ ; 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-pc-linux-gnu" +target triple = "x86_64-unknown-linux-gnu" %"$TyDescrTy_PrimTyp_1" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/testsuite/contr/helloWorld.dbg.ll b/testsuite/contr/helloWorld.dbg.ll index bcb92b1d..1e9df058 100644 --- a/testsuite/contr/helloWorld.dbg.ll +++ b/testsuite/contr/helloWorld.dbg.ll @@ -4,7 +4,7 @@ ; 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-pc-linux-gnu" +target triple = "x86_64-unknown-linux-gnu" %"$TyDescrTy_PrimTyp_7" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } @@ -28,9 +28,9 @@ target triple = "x86_64-pc-linux-gnu" %TName_Pair_Int128_String = type { i8, %CName_Pair_Int128_String* } %CName_Pair_Int128_String = type <{ i8, %Int128, %String }> %Int128 = type { i128 } -%"$ParamDescr_641" = type { %ParamDescrString, %_TyDescrTy_Typ* } +%"$ParamDescr_658" = type { %ParamDescrString, %_TyDescrTy_Typ* } %ParamDescrString = type { i8*, i32 } -%"$TransDescr_642" = type { %ParamDescrString, i32, %"$ParamDescr_641"* } +%"$TransDescr_659" = type { %ParamDescrString, i32, %"$ParamDescr_658"* } %"$$fundef_3_env_94" = type {} %Uint128 = type { i128 } %TName_Bool = type { i8, %CName_True*, %CName_False* } @@ -125,7 +125,7 @@ target triple = "x86_64-pc-linux-gnu" @helloWorld.not_owner_code = global %Int32 zeroinitializer @helloWorld.set_hello_code = global %Int32 zeroinitializer @helloWorld.smsg = global %String zeroinitializer -@"$stringlit_153" = unnamed_addr constant [8 x i8] c"get lost" +@"$stringlit_154" = unnamed_addr constant [8 x i8] c"get lost" @_cparam__scilla_version = global %Uint32 zeroinitializer @_cparam__this_address = global [20 x i8] zeroinitializer @_cparam__creation_block = global i8* null @@ -136,85 +136,89 @@ target triple = "x86_64-pc-linux-gnu" @_cparam_bstr = global %Bystr zeroinitializer @_cparam_all_names = global %TName_List_String* null @_cparam_pear = global %TName_Pair_Int128_String* null -@"$welcome_msg_166" = unnamed_addr constant [12 x i8] c"welcome_msg\00" -@"$sendoff_msg_177" = unnamed_addr constant [12 x i8] c"sendoff_msg\00" -@"$stringlit_225" = unnamed_addr constant [10 x i8] c"_eventname" -@"$stringlit_230" = unnamed_addr constant [10 x i8] c"setHello()" -@"$stringlit_233" = unnamed_addr constant [4 x i8] c"code" -@"$welcome_msg_263" = unnamed_addr constant [12 x i8] c"welcome_msg\00" -@"$stringlit_277" = unnamed_addr constant [10 x i8] c"_eventname" -@"$stringlit_282" = unnamed_addr constant [10 x i8] c"setHello()" -@"$stringlit_285" = unnamed_addr constant [4 x i8] c"code" -@"$welcome_msg_316" = unnamed_addr constant [12 x i8] c"welcome_msg\00" -@"$stringlit_342" = unnamed_addr constant [10 x i8] c"_eventname" -@"$stringlit_347" = unnamed_addr constant [10 x i8] c"getHello()" -@"$stringlit_350" = unnamed_addr constant [3 x i8] c"msg" -@"$stringlit_390" = unnamed_addr constant [4 x i8] c"_tag" -@"$stringlit_395" = unnamed_addr constant [0 x i8] zeroinitializer -@"$stringlit_398" = unnamed_addr constant [10 x i8] c"_recipient" -@"$stringlit_405" = unnamed_addr constant [7 x i8] c"_amount" -@"$stringlit_424" = unnamed_addr constant [4 x i8] c"_tag" -@"$stringlit_429" = unnamed_addr constant [0 x i8] zeroinitializer -@"$stringlit_432" = unnamed_addr constant [10 x i8] c"_recipient" -@"$stringlit_439" = unnamed_addr constant [7 x i8] c"_amount" -@"$stringlit_511" = unnamed_addr constant [10 x i8] c"_eventname" -@"$stringlit_516" = unnamed_addr constant [15 x i8] c"ContractAddress" -@"$stringlit_519" = unnamed_addr constant [4 x i8] c"addr" -@"$stringlit_559" = unnamed_addr constant [10 x i8] c"_eventname" -@"$stringlit_564" = unnamed_addr constant [14 x i8] c"AllContrparams" -@"$stringlit_567" = unnamed_addr constant [5 x i8] c"owner" -@"$stringlit_575" = unnamed_addr constant [4 x i8] c"name" -@"$stringlit_583" = unnamed_addr constant [7 x i8] c"uint256" -@"$stringlit_591" = unnamed_addr constant [5 x i8] c"int32" -@"$stringlit_599" = unnamed_addr constant [4 x i8] c"bstr" -@"$stringlit_607" = unnamed_addr constant [9 x i8] c"all_names" -@"$stringlit_615" = unnamed_addr constant [4 x i8] c"pear" +@"$welcome_msg_167" = unnamed_addr constant [12 x i8] c"welcome_msg\00" +@"$sendoff_msg_178" = unnamed_addr constant [12 x i8] c"sendoff_msg\00" +@"$stringlit_226" = unnamed_addr constant [10 x i8] c"_eventname" +@"$stringlit_231" = unnamed_addr constant [10 x i8] c"setHello()" +@"$stringlit_234" = unnamed_addr constant [4 x i8] c"code" +@"$welcome_msg_264" = unnamed_addr constant [12 x i8] c"welcome_msg\00" +@"$stringlit_278" = unnamed_addr constant [10 x i8] c"_eventname" +@"$stringlit_283" = unnamed_addr constant [10 x i8] c"setHello()" +@"$stringlit_286" = unnamed_addr constant [4 x i8] c"code" +@"$welcome_msg_321" = unnamed_addr constant [12 x i8] c"welcome_msg\00" +@"$stringlit_347" = unnamed_addr constant [10 x i8] c"_eventname" +@"$stringlit_352" = unnamed_addr constant [10 x i8] c"getHello()" +@"$stringlit_355" = unnamed_addr constant [3 x i8] c"msg" +@"$stringlit_398" = unnamed_addr constant [4 x i8] c"_tag" +@"$stringlit_403" = unnamed_addr constant [0 x i8] zeroinitializer +@"$stringlit_406" = unnamed_addr constant [10 x i8] c"_recipient" +@"$stringlit_413" = unnamed_addr constant [7 x i8] c"_amount" +@"$stringlit_432" = unnamed_addr constant [4 x i8] c"_tag" +@"$stringlit_437" = unnamed_addr constant [0 x i8] zeroinitializer +@"$stringlit_440" = unnamed_addr constant [10 x i8] c"_recipient" +@"$stringlit_447" = unnamed_addr constant [7 x i8] c"_amount" +@"$stringlit_522" = unnamed_addr constant [10 x i8] c"_eventname" +@"$stringlit_527" = unnamed_addr constant [15 x i8] c"ContractAddress" +@"$stringlit_530" = unnamed_addr constant [4 x i8] c"addr" +@"$stringlit_573" = unnamed_addr constant [10 x i8] c"_eventname" +@"$stringlit_578" = unnamed_addr constant [14 x i8] c"AllContrparams" +@"$stringlit_581" = unnamed_addr constant [5 x i8] c"owner" +@"$stringlit_589" = unnamed_addr constant [4 x i8] c"name" +@"$stringlit_597" = unnamed_addr constant [7 x i8] c"uint256" +@"$stringlit_605" = unnamed_addr constant [5 x i8] c"int32" +@"$stringlit_613" = unnamed_addr constant [4 x i8] c"bstr" +@"$stringlit_621" = unnamed_addr constant [9 x i8] c"all_names" +@"$stringlit_629" = unnamed_addr constant [4 x i8] c"pear" @_tydescr_table = constant [21 x %_TyDescrTy_Typ*] [%_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_46", %_TyDescrTy_Typ* @"$TyDescr_Event_31", %_TyDescrTy_Typ* @"$TyDescr_Int64_13", %_TyDescrTy_Typ* @"$TyDescr_Addr_50", %_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_43", %_TyDescrTy_Typ* @"$TyDescr_Bystr20_39", %_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_ADT_Pair_Int128_String_44", %_TyDescrTy_Typ* @"$TyDescr_ADT_List_String_45", %_TyDescrTy_Typ* @"$TyDescr_Int256_21", %_TyDescrTy_Typ* @"$TyDescr_Int128_17", %_TyDescrTy_Typ* @"$TyDescr_Bystr_37", %_TyDescrTy_Typ* @"$TyDescr_ReplicateContr_35", %_TyDescrTy_Typ* @"$TyDescr_Message_29", %_TyDescrTy_Typ* @"$TyDescr_Int32_9"] @_tydescr_table_length = constant i32 21 -@"$pname__scilla_version_643" = unnamed_addr constant [15 x i8] c"_scilla_version" -@"$pname__this_address_644" = unnamed_addr constant [13 x i8] c"_this_address" -@"$pname__creation_block_645" = unnamed_addr constant [15 x i8] c"_creation_block" -@"$pname_owner_646" = unnamed_addr constant [5 x i8] c"owner" -@"$pname_name_647" = unnamed_addr constant [4 x i8] c"name" -@"$pname_uint256_648" = unnamed_addr constant [7 x i8] c"uint256" -@"$pname_int32_649" = unnamed_addr constant [5 x i8] c"int32" -@"$pname_bstr_650" = unnamed_addr constant [4 x i8] c"bstr" -@"$pname_all_names_651" = unnamed_addr constant [9 x i8] c"all_names" -@"$pname_pear_652" = unnamed_addr constant [4 x i8] c"pear" -@_contract_parameters = constant [10 x %"$ParamDescr_641"] [%"$ParamDescr_641" { %ParamDescrString { i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$pname__scilla_version_643", i32 0, i32 0), i32 15 }, %_TyDescrTy_Typ* @"$TyDescr_Uint32_11" }, %"$ParamDescr_641" { %ParamDescrString { i8* getelementptr inbounds ([13 x i8], [13 x i8]* @"$pname__this_address_644", i32 0, i32 0), i32 13 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr20_39" }, %"$ParamDescr_641" { %ParamDescrString { i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$pname__creation_block_645", i32 0, i32 0), i32 15 }, %_TyDescrTy_Typ* @"$TyDescr_Bnum_27" }, %"$ParamDescr_641" { %ParamDescrString { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$pname_owner_646", i32 0, i32 0), i32 5 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr20_39" }, %"$ParamDescr_641" { %ParamDescrString { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$pname_name_647", i32 0, i32 0), i32 4 }, %_TyDescrTy_Typ* @"$TyDescr_String_25" }, %"$ParamDescr_641" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$pname_uint256_648", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint256_23" }, %"$ParamDescr_641" { %ParamDescrString { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$pname_int32_649", i32 0, i32 0), i32 5 }, %_TyDescrTy_Typ* @"$TyDescr_Int32_9" }, %"$ParamDescr_641" { %ParamDescrString { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$pname_bstr_650", i32 0, i32 0), i32 4 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr_37" }, %"$ParamDescr_641" { %ParamDescrString { i8* getelementptr inbounds ([9 x i8], [9 x i8]* @"$pname_all_names_651", i32 0, i32 0), i32 9 }, %_TyDescrTy_Typ* @"$TyDescr_ADT_List_String_45" }, %"$ParamDescr_641" { %ParamDescrString { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$pname_pear_652", i32 0, i32 0), i32 4 }, %_TyDescrTy_Typ* @"$TyDescr_ADT_Pair_Int128_String_44" }] +@"$pname__scilla_version_660" = unnamed_addr constant [15 x i8] c"_scilla_version" +@"$pname__this_address_661" = unnamed_addr constant [13 x i8] c"_this_address" +@"$pname__creation_block_662" = unnamed_addr constant [15 x i8] c"_creation_block" +@"$pname_owner_663" = unnamed_addr constant [5 x i8] c"owner" +@"$pname_name_664" = unnamed_addr constant [4 x i8] c"name" +@"$pname_uint256_665" = unnamed_addr constant [7 x i8] c"uint256" +@"$pname_int32_666" = unnamed_addr constant [5 x i8] c"int32" +@"$pname_bstr_667" = unnamed_addr constant [4 x i8] c"bstr" +@"$pname_all_names_668" = unnamed_addr constant [9 x i8] c"all_names" +@"$pname_pear_669" = unnamed_addr constant [4 x i8] c"pear" +@_contract_parameters = constant [10 x %"$ParamDescr_658"] [%"$ParamDescr_658" { %ParamDescrString { i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$pname__scilla_version_660", i32 0, i32 0), i32 15 }, %_TyDescrTy_Typ* @"$TyDescr_Uint32_11" }, %"$ParamDescr_658" { %ParamDescrString { i8* getelementptr inbounds ([13 x i8], [13 x i8]* @"$pname__this_address_661", i32 0, i32 0), i32 13 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr20_39" }, %"$ParamDescr_658" { %ParamDescrString { i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$pname__creation_block_662", i32 0, i32 0), i32 15 }, %_TyDescrTy_Typ* @"$TyDescr_Bnum_27" }, %"$ParamDescr_658" { %ParamDescrString { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$pname_owner_663", i32 0, i32 0), i32 5 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr20_39" }, %"$ParamDescr_658" { %ParamDescrString { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$pname_name_664", i32 0, i32 0), i32 4 }, %_TyDescrTy_Typ* @"$TyDescr_String_25" }, %"$ParamDescr_658" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$pname_uint256_665", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint256_23" }, %"$ParamDescr_658" { %ParamDescrString { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$pname_int32_666", i32 0, i32 0), i32 5 }, %_TyDescrTy_Typ* @"$TyDescr_Int32_9" }, %"$ParamDescr_658" { %ParamDescrString { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$pname_bstr_667", i32 0, i32 0), i32 4 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr_37" }, %"$ParamDescr_658" { %ParamDescrString { i8* getelementptr inbounds ([9 x i8], [9 x i8]* @"$pname_all_names_668", i32 0, i32 0), i32 9 }, %_TyDescrTy_Typ* @"$TyDescr_ADT_List_String_45" }, %"$ParamDescr_658" { %ParamDescrString { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$pname_pear_669", i32 0, i32 0), i32 4 }, %_TyDescrTy_Typ* @"$TyDescr_ADT_Pair_Int128_String_44" }] @_contract_parameters_length = constant i32 10 -@"$tpname__amount_653" = unnamed_addr constant [7 x i8] c"_amount" -@"$tpname__origin_654" = unnamed_addr constant [7 x i8] c"_origin" -@"$tpname__sender_655" = unnamed_addr constant [7 x i8] c"_sender" -@"$tpname_msg_656" = unnamed_addr constant [3 x i8] c"msg" -@"$tparams_setHello_657" = unnamed_addr constant [4 x %"$ParamDescr_641"] [%"$ParamDescr_641" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_653", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_19" }, %"$ParamDescr_641" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_654", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_50" }, %"$ParamDescr_641" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_655", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_50" }, %"$ParamDescr_641" { %ParamDescrString { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$tpname_msg_656", i32 0, i32 0), i32 3 }, %_TyDescrTy_Typ* @"$TyDescr_String_25" }] -@"$tname_setHello_658" = unnamed_addr constant [8 x i8] c"setHello" -@"$tpname__amount_659" = unnamed_addr constant [7 x i8] c"_amount" -@"$tpname__origin_660" = unnamed_addr constant [7 x i8] c"_origin" -@"$tpname__sender_661" = unnamed_addr constant [7 x i8] c"_sender" -@"$tparams_getHello_662" = unnamed_addr constant [3 x %"$ParamDescr_641"] [%"$ParamDescr_641" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_659", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_19" }, %"$ParamDescr_641" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_660", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_50" }, %"$ParamDescr_641" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_661", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_50" }] -@"$tname_getHello_663" = unnamed_addr constant [8 x i8] c"getHello" -@"$tpname__amount_664" = unnamed_addr constant [7 x i8] c"_amount" -@"$tpname__origin_665" = unnamed_addr constant [7 x i8] c"_origin" -@"$tpname__sender_666" = unnamed_addr constant [7 x i8] c"_sender" -@"$tparams_multipleMsgs_667" = unnamed_addr constant [3 x %"$ParamDescr_641"] [%"$ParamDescr_641" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_664", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_19" }, %"$ParamDescr_641" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_665", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_50" }, %"$ParamDescr_641" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_666", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_50" }] -@"$tname_multipleMsgs_668" = unnamed_addr constant [12 x i8] c"multipleMsgs" -@"$tpname__amount_669" = unnamed_addr constant [7 x i8] c"_amount" -@"$tpname__origin_670" = unnamed_addr constant [7 x i8] c"_origin" -@"$tpname__sender_671" = unnamed_addr constant [7 x i8] c"_sender" -@"$tparams_contrAddr_672" = unnamed_addr constant [3 x %"$ParamDescr_641"] [%"$ParamDescr_641" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_669", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_19" }, %"$ParamDescr_641" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_670", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_50" }, %"$ParamDescr_641" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_671", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_50" }] -@"$tname_contrAddr_673" = unnamed_addr constant [9 x i8] c"contrAddr" -@"$tpname__amount_674" = unnamed_addr constant [7 x i8] c"_amount" -@"$tpname__origin_675" = unnamed_addr constant [7 x i8] c"_origin" -@"$tpname__sender_676" = unnamed_addr constant [7 x i8] c"_sender" -@"$tparams_printContrParams_677" = unnamed_addr constant [3 x %"$ParamDescr_641"] [%"$ParamDescr_641" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_674", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_19" }, %"$ParamDescr_641" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_675", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_50" }, %"$ParamDescr_641" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_676", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_50" }] -@"$tname_printContrParams_678" = unnamed_addr constant [16 x i8] c"printContrParams" -@_transition_parameters = constant [5 x %"$TransDescr_642"] [%"$TransDescr_642" { %ParamDescrString { i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$tname_setHello_658", i32 0, i32 0), i32 8 }, i32 4, %"$ParamDescr_641"* getelementptr inbounds ([4 x %"$ParamDescr_641"], [4 x %"$ParamDescr_641"]* @"$tparams_setHello_657", i32 0, i32 0) }, %"$TransDescr_642" { %ParamDescrString { i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$tname_getHello_663", i32 0, i32 0), i32 8 }, i32 3, %"$ParamDescr_641"* getelementptr inbounds ([3 x %"$ParamDescr_641"], [3 x %"$ParamDescr_641"]* @"$tparams_getHello_662", i32 0, i32 0) }, %"$TransDescr_642" { %ParamDescrString { i8* getelementptr inbounds ([12 x i8], [12 x i8]* @"$tname_multipleMsgs_668", i32 0, i32 0), i32 12 }, i32 3, %"$ParamDescr_641"* getelementptr inbounds ([3 x %"$ParamDescr_641"], [3 x %"$ParamDescr_641"]* @"$tparams_multipleMsgs_667", i32 0, i32 0) }, %"$TransDescr_642" { %ParamDescrString { i8* getelementptr inbounds ([9 x i8], [9 x i8]* @"$tname_contrAddr_673", i32 0, i32 0), i32 9 }, i32 3, %"$ParamDescr_641"* getelementptr inbounds ([3 x %"$ParamDescr_641"], [3 x %"$ParamDescr_641"]* @"$tparams_contrAddr_672", i32 0, i32 0) }, %"$TransDescr_642" { %ParamDescrString { i8* getelementptr inbounds ([16 x i8], [16 x i8]* @"$tname_printContrParams_678", i32 0, i32 0), i32 16 }, i32 3, %"$ParamDescr_641"* getelementptr inbounds ([3 x %"$ParamDescr_641"], [3 x %"$ParamDescr_641"]* @"$tparams_printContrParams_677", i32 0, i32 0) }] +@"$tpname__amount_670" = unnamed_addr constant [7 x i8] c"_amount" +@"$tpname__origin_671" = unnamed_addr constant [7 x i8] c"_origin" +@"$tpname__sender_672" = unnamed_addr constant [7 x i8] c"_sender" +@"$tpname_msg_673" = unnamed_addr constant [3 x i8] c"msg" +@"$tparams_setHello_674" = unnamed_addr constant [4 x %"$ParamDescr_658"] [%"$ParamDescr_658" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_670", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_19" }, %"$ParamDescr_658" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_671", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_50" }, %"$ParamDescr_658" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_672", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_50" }, %"$ParamDescr_658" { %ParamDescrString { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$tpname_msg_673", i32 0, i32 0), i32 3 }, %_TyDescrTy_Typ* @"$TyDescr_String_25" }] +@"$tname_setHello_675" = unnamed_addr constant [8 x i8] c"setHello" +@"$tpname__amount_676" = unnamed_addr constant [7 x i8] c"_amount" +@"$tpname__origin_677" = unnamed_addr constant [7 x i8] c"_origin" +@"$tpname__sender_678" = unnamed_addr constant [7 x i8] c"_sender" +@"$tparams_getHello_679" = unnamed_addr constant [3 x %"$ParamDescr_658"] [%"$ParamDescr_658" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_676", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_19" }, %"$ParamDescr_658" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_677", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_50" }, %"$ParamDescr_658" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_678", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_50" }] +@"$tname_getHello_680" = unnamed_addr constant [8 x i8] c"getHello" +@"$tpname__amount_681" = unnamed_addr constant [7 x i8] c"_amount" +@"$tpname__origin_682" = unnamed_addr constant [7 x i8] c"_origin" +@"$tpname__sender_683" = unnamed_addr constant [7 x i8] c"_sender" +@"$tparams_multipleMsgs_684" = unnamed_addr constant [3 x %"$ParamDescr_658"] [%"$ParamDescr_658" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_681", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_19" }, %"$ParamDescr_658" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_682", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_50" }, %"$ParamDescr_658" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_683", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_50" }] +@"$tname_multipleMsgs_685" = unnamed_addr constant [12 x i8] c"multipleMsgs" +@"$tpname__amount_686" = unnamed_addr constant [7 x i8] c"_amount" +@"$tpname__origin_687" = unnamed_addr constant [7 x i8] c"_origin" +@"$tpname__sender_688" = unnamed_addr constant [7 x i8] c"_sender" +@"$tparams_contrAddr_689" = unnamed_addr constant [3 x %"$ParamDescr_658"] [%"$ParamDescr_658" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_686", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_19" }, %"$ParamDescr_658" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_687", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_50" }, %"$ParamDescr_658" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_688", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_50" }] +@"$tname_contrAddr_690" = unnamed_addr constant [9 x i8] c"contrAddr" +@"$tpname__amount_691" = unnamed_addr constant [7 x i8] c"_amount" +@"$tpname__origin_692" = unnamed_addr constant [7 x i8] c"_origin" +@"$tpname__sender_693" = unnamed_addr constant [7 x i8] c"_sender" +@"$tparams_printContrParams_694" = unnamed_addr constant [3 x %"$ParamDescr_658"] [%"$ParamDescr_658" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_691", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_19" }, %"$ParamDescr_658" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_692", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_50" }, %"$ParamDescr_658" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_693", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_50" }] +@"$tname_printContrParams_695" = unnamed_addr constant [16 x i8] c"printContrParams" +@_transition_parameters = constant [5 x %"$TransDescr_659"] [%"$TransDescr_659" { %ParamDescrString { i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$tname_setHello_675", i32 0, i32 0), i32 8 }, i32 4, %"$ParamDescr_658"* getelementptr inbounds ([4 x %"$ParamDescr_658"], [4 x %"$ParamDescr_658"]* @"$tparams_setHello_674", i32 0, i32 0) }, %"$TransDescr_659" { %ParamDescrString { i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$tname_getHello_680", i32 0, i32 0), i32 8 }, i32 3, %"$ParamDescr_658"* getelementptr inbounds ([3 x %"$ParamDescr_658"], [3 x %"$ParamDescr_658"]* @"$tparams_getHello_679", i32 0, i32 0) }, %"$TransDescr_659" { %ParamDescrString { i8* getelementptr inbounds ([12 x i8], [12 x i8]* @"$tname_multipleMsgs_685", i32 0, i32 0), i32 12 }, i32 3, %"$ParamDescr_658"* getelementptr inbounds ([3 x %"$ParamDescr_658"], [3 x %"$ParamDescr_658"]* @"$tparams_multipleMsgs_684", i32 0, i32 0) }, %"$TransDescr_659" { %ParamDescrString { i8* getelementptr inbounds ([9 x i8], [9 x i8]* @"$tname_contrAddr_690", i32 0, i32 0), i32 9 }, i32 3, %"$ParamDescr_658"* getelementptr inbounds ([3 x %"$ParamDescr_658"], [3 x %"$ParamDescr_658"]* @"$tparams_contrAddr_689", i32 0, i32 0) }, %"$TransDescr_659" { %ParamDescrString { i8* getelementptr inbounds ([16 x i8], [16 x i8]* @"$tname_printContrParams_695", i32 0, i32 0), i32 16 }, i32 3, %"$ParamDescr_658"* getelementptr inbounds ([3 x %"$ParamDescr_658"], [3 x %"$ParamDescr_658"]* @"$tparams_printContrParams_694", i32 0, i32 0) }] @_transition_parameters_length = constant i32 5 -define internal %TName_List_Message* @"$fundef_3"(%"$$fundef_3_env_94"* %0, i8* %1) !dbg !4 { +define internal %TName_List_Message* @"$fundef_3"(%"$$fundef_3_env_94"* %0, i8* %1) !dbg !3 { entry: + %"$msg_120" = alloca i8*, align 8 + store i8* %1, i8** %"$msg_120", align 8 + call void @llvm.dbg.declare(metadata i8** %"$msg_120", metadata !8, metadata !DIExpression()), !dbg !11 %"$retval_4" = alloca %TName_List_Message*, align 8 + call void @llvm.dbg.declare(metadata %TName_List_Message** %"$retval_4", metadata !12, metadata !DIExpression()), !dbg !15 %"$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" @@ -227,6 +231,7 @@ entry: %"$consume_99" = sub i64 %"$gasrem_95", 1 store i64 %"$consume_99", i64* @_gasrem, align 8 %nil_msg = alloca %TName_List_Message*, align 8 + call void @llvm.dbg.declare(metadata %TName_List_Message** %nil_msg, metadata !16, metadata !DIExpression()), !dbg !17 %"$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" @@ -244,7 +249,7 @@ entry: %"$adtgep_106" = getelementptr inbounds %CName_Nil_Message, %CName_Nil_Message* %"$adtval_105", i32 0, i32 0 store i8 1, i8* %"$adtgep_106", align 1 %"$adtptr_107" = bitcast %CName_Nil_Message* %"$adtval_105" to %TName_List_Message* - store %TName_List_Message* %"$adtptr_107", %TName_List_Message** %nil_msg, align 8, !dbg !8 + store %TName_List_Message* %"$adtptr_107", %TName_List_Message** %nil_msg, align 8, !dbg !18 %"$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" @@ -267,366 +272,386 @@ entry: %"$adtgep_117" = getelementptr inbounds %CName_Cons_Message, %CName_Cons_Message* %"$adtval_114", i32 0, i32 2 store %TName_List_Message* %"$nil_msg_113", %TName_List_Message** %"$adtgep_117", align 8 %"$adtptr_118" = bitcast %CName_Cons_Message* %"$adtval_114" to %TName_List_Message* - store %TName_List_Message* %"$adtptr_118", %TName_List_Message** %"$retval_4", align 8, !dbg !9 + store %TName_List_Message* %"$adtptr_118", %TName_List_Message** %"$retval_4", align 8, !dbg !19 %"$$retval_4_119" = load %TName_List_Message*, %TName_List_Message** %"$retval_4", align 8 ret %TName_List_Message* %"$$retval_4_119" } +; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn +declare void @llvm.dbg.declare(metadata, metadata, metadata) #0 + declare void @_out_of_gas() declare i8* @_salloc(i8*, i64) -define void @_init_libs() !dbg !10 { +define void @_init_libs() !dbg !20 { entry: - %"$gasrem_120" = load i64, i64* @_gasrem, align 8 - %"$gascmp_121" = icmp ugt i64 5, %"$gasrem_120" - br i1 %"$gascmp_121", label %"$out_of_gas_122", label %"$have_gas_123" + %"$gasrem_121" = load i64, i64* @_gasrem, align 8 + %"$gascmp_122" = icmp ugt i64 5, %"$gasrem_121" + br i1 %"$gascmp_122", label %"$out_of_gas_123", label %"$have_gas_124" -"$out_of_gas_122": ; preds = %entry +"$out_of_gas_123": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_123" + br label %"$have_gas_124" -"$have_gas_123": ; preds = %"$out_of_gas_122", %entry - %"$consume_124" = sub i64 %"$gasrem_120", 5 - store i64 %"$consume_124", i64* @_gasrem, align 8 - store %Int32 { i32 5 }, %Int32* @"$_gas_charge_acc_1", align 4, !dbg !12 - %"$gasrem_125" = load i64, i64* @_gasrem, align 8 - %"$gascmp_126" = icmp ugt i64 20, %"$gasrem_125" - br i1 %"$gascmp_126", label %"$out_of_gas_127", label %"$have_gas_128" +"$have_gas_124": ; preds = %"$out_of_gas_123", %entry + %"$consume_125" = sub i64 %"$gasrem_121", 5 + store i64 %"$consume_125", i64* @_gasrem, align 8 + store %Int32 { i32 5 }, %Int32* @"$_gas_charge_acc_1", align 4, !dbg !22 + %"$gasrem_126" = load i64, i64* @_gasrem, align 8 + %"$gascmp_127" = icmp ugt i64 20, %"$gasrem_126" + br i1 %"$gascmp_127", label %"$out_of_gas_128", label %"$have_gas_129" -"$out_of_gas_127": ; preds = %"$have_gas_123" +"$out_of_gas_128": ; preds = %"$have_gas_124" call void @_out_of_gas() - br label %"$have_gas_128" + br label %"$have_gas_129" -"$have_gas_128": ; preds = %"$out_of_gas_127", %"$have_gas_123" - %"$consume_129" = sub i64 %"$gasrem_125", 20 - store i64 %"$consume_129", i64* @_gasrem, align 8 - store %Int32 { i32 20 }, %Int32* @"$_gas_charge_accListUtils_0", align 4, !dbg !12 - %"$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" +"$have_gas_129": ; preds = %"$out_of_gas_128", %"$have_gas_124" + %"$consume_130" = sub i64 %"$gasrem_126", 20 + store i64 %"$consume_130", i64* @_gasrem, align 8 + store %Int32 { i32 20 }, %Int32* @"$_gas_charge_accListUtils_0", align 4, !dbg !22 + %"$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_132": ; preds = %"$have_gas_128" +"$out_of_gas_133": ; preds = %"$have_gas_129" call void @_out_of_gas() - br label %"$have_gas_133" + br label %"$have_gas_134" -"$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 { %TName_List_Message* (i8*, i8*)*, i8* } { %TName_List_Message* (i8*, i8*)* bitcast (%TName_List_Message* (%"$$fundef_3_env_94"*, i8*)* @"$fundef_3" to %TName_List_Message* (i8*, i8*)*), i8* null }, { %TName_List_Message* (i8*, i8*)*, i8* }* @helloWorld.one_msg, align 8, !dbg !13 - %"$gasrem_138" = load i64, i64* @_gasrem, align 8 - %"$gascmp_139" = icmp ugt i64 1, %"$gasrem_138" - br i1 %"$gascmp_139", label %"$out_of_gas_140", label %"$have_gas_141" +"$have_gas_134": ; preds = %"$out_of_gas_133", %"$have_gas_129" + %"$consume_135" = sub i64 %"$gasrem_131", 1 + store i64 %"$consume_135", i64* @_gasrem, align 8 + store { %TName_List_Message* (i8*, i8*)*, i8* } { %TName_List_Message* (i8*, i8*)* bitcast (%TName_List_Message* (%"$$fundef_3_env_94"*, i8*)* @"$fundef_3" to %TName_List_Message* (i8*, i8*)*), i8* null }, { %TName_List_Message* (i8*, i8*)*, i8* }* @helloWorld.one_msg, align 8, !dbg !23 + %"$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_140": ; preds = %"$have_gas_133" +"$out_of_gas_141": ; preds = %"$have_gas_134" call void @_out_of_gas() - br label %"$have_gas_141" + br label %"$have_gas_142" -"$have_gas_141": ; preds = %"$out_of_gas_140", %"$have_gas_133" - %"$consume_142" = sub i64 %"$gasrem_138", 1 - store i64 %"$consume_142", i64* @_gasrem, align 8 - store %Int32 { i32 1 }, %Int32* @helloWorld.not_owner_code, align 4, !dbg !14 - %"$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" +"$have_gas_142": ; preds = %"$out_of_gas_141", %"$have_gas_134" + %"$consume_143" = sub i64 %"$gasrem_139", 1 + store i64 %"$consume_143", i64* @_gasrem, align 8 + store %Int32 { i32 1 }, %Int32* @helloWorld.not_owner_code, align 4, !dbg !24 + %"$gasrem_144" = load i64, i64* @_gasrem, align 8 + %"$gascmp_145" = icmp ugt i64 1, %"$gasrem_144" + br i1 %"$gascmp_145", label %"$out_of_gas_146", label %"$have_gas_147" -"$out_of_gas_145": ; preds = %"$have_gas_141" +"$out_of_gas_146": ; preds = %"$have_gas_142" call void @_out_of_gas() - br label %"$have_gas_146" + br label %"$have_gas_147" -"$have_gas_146": ; preds = %"$out_of_gas_145", %"$have_gas_141" - %"$consume_147" = sub i64 %"$gasrem_143", 1 - store i64 %"$consume_147", i64* @_gasrem, align 8 - store %Int32 { i32 2 }, %Int32* @helloWorld.set_hello_code, align 4, !dbg !15 - %"$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" +"$have_gas_147": ; preds = %"$out_of_gas_146", %"$have_gas_142" + %"$consume_148" = sub i64 %"$gasrem_144", 1 + store i64 %"$consume_148", i64* @_gasrem, align 8 + store %Int32 { i32 2 }, %Int32* @helloWorld.set_hello_code, align 4, !dbg !25 + %"$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_150": ; preds = %"$have_gas_146" +"$out_of_gas_151": ; preds = %"$have_gas_147" call void @_out_of_gas() - br label %"$have_gas_151" + br label %"$have_gas_152" -"$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 %String { i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$stringlit_153", i32 0, i32 0), i32 8 }, %String* @helloWorld.smsg, align 8, !dbg !16 +"$have_gas_152": ; preds = %"$out_of_gas_151", %"$have_gas_147" + %"$consume_153" = sub i64 %"$gasrem_149", 1 + store i64 %"$consume_153", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$stringlit_154", i32 0, i32 0), i32 8 }, %String* @helloWorld.smsg, align 8, !dbg !26 ret void } -define void @_deploy_ops() !dbg !17 { +define void @_deploy_ops() !dbg !27 { entry: - %"$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" + %"$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_156": ; preds = %entry +"$out_of_gas_157": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_157" + br label %"$have_gas_158" -"$have_gas_157": ; preds = %"$out_of_gas_156", %entry - %"$consume_158" = sub i64 %"$gasrem_154", 1 - store i64 %"$consume_158", i64* @_gasrem, align 8 +"$have_gas_158": ; preds = %"$out_of_gas_157", %entry + %"$consume_159" = sub i64 %"$gasrem_155", 1 + store i64 %"$consume_159", i64* @_gasrem, align 8 %"$welcome_msg_5" = alloca %String, 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" + call void @llvm.dbg.declare(metadata %String* %"$welcome_msg_5", metadata !28, metadata !DIExpression()), !dbg !30 + %"$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_161": ; preds = %"$have_gas_157" +"$out_of_gas_162": ; preds = %"$have_gas_158" call void @_out_of_gas() - br label %"$have_gas_162" - -"$have_gas_162": ; preds = %"$out_of_gas_161", %"$have_gas_157" - %"$consume_163" = sub i64 %"$gasrem_159", 1 - store i64 %"$consume_163", i64* @_gasrem, align 8 - %"$name_164" = load %String, %String* @_cparam_name, align 8 - store %String %"$name_164", %String* %"$welcome_msg_5", align 8, !dbg !18 - %"$execptr_load_165" = load i8*, i8** @_execptr, align 8 - %"$$welcome_msg_5_167" = load %String, %String* %"$welcome_msg_5", align 8 - %"$update_value_168" = alloca %String, align 8 - store %String %"$$welcome_msg_5_167", %String* %"$update_value_168", align 8 - %"$update_value_169" = bitcast %String* %"$update_value_168" to i8* - call void @_update_field(i8* %"$execptr_load_165", i8* getelementptr inbounds ([12 x i8], [12 x i8]* @"$welcome_msg_166", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_String_25", i32 0, i8* null, i8* %"$update_value_169"), !dbg !18 + br label %"$have_gas_163" + +"$have_gas_163": ; preds = %"$out_of_gas_162", %"$have_gas_158" + %"$consume_164" = sub i64 %"$gasrem_160", 1 + store i64 %"$consume_164", i64* @_gasrem, align 8 + %"$name_165" = load %String, %String* @_cparam_name, align 8 + store %String %"$name_165", %String* %"$welcome_msg_5", align 8, !dbg !31 + %"$execptr_load_166" = load i8*, i8** @_execptr, align 8 + %"$$welcome_msg_5_168" = load %String, %String* %"$welcome_msg_5", align 8 + %"$update_value_169" = alloca %String, align 8 + store %String %"$$welcome_msg_5_168", %String* %"$update_value_169", align 8 + %"$update_value_170" = bitcast %String* %"$update_value_169" to i8* + call void @_update_field(i8* %"$execptr_load_166", i8* getelementptr inbounds ([12 x i8], [12 x i8]* @"$welcome_msg_167", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_String_25", i32 0, i8* null, i8* %"$update_value_170"), !dbg !31 %"$sendoff_msg_6" = alloca %String, align 8 - %"$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" + call void @llvm.dbg.declare(metadata %String* %"$sendoff_msg_6", metadata !32, metadata !DIExpression()), !dbg !33 + %"$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_172": ; preds = %"$have_gas_162" +"$out_of_gas_173": ; preds = %"$have_gas_163" call void @_out_of_gas() - br label %"$have_gas_173" - -"$have_gas_173": ; preds = %"$out_of_gas_172", %"$have_gas_162" - %"$consume_174" = sub i64 %"$gasrem_170", 1 - store i64 %"$consume_174", i64* @_gasrem, align 8 - %"$helloWorld.smsg_175" = load %String, %String* @helloWorld.smsg, align 8 - store %String %"$helloWorld.smsg_175", %String* %"$sendoff_msg_6", align 8, !dbg !19 - %"$execptr_load_176" = load i8*, i8** @_execptr, align 8 - %"$$sendoff_msg_6_178" = load %String, %String* %"$sendoff_msg_6", align 8 - %"$update_value_179" = alloca %String, align 8 - store %String %"$$sendoff_msg_6_178", %String* %"$update_value_179", align 8 - %"$update_value_180" = bitcast %String* %"$update_value_179" to i8* - call void @_update_field(i8* %"$execptr_load_176", i8* getelementptr inbounds ([12 x i8], [12 x i8]* @"$sendoff_msg_177", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_String_25", i32 0, i8* null, i8* %"$update_value_180"), !dbg !19 + br label %"$have_gas_174" + +"$have_gas_174": ; preds = %"$out_of_gas_173", %"$have_gas_163" + %"$consume_175" = sub i64 %"$gasrem_171", 1 + store i64 %"$consume_175", i64* @_gasrem, align 8 + %"$helloWorld.smsg_176" = load %String, %String* @helloWorld.smsg, align 8 + store %String %"$helloWorld.smsg_176", %String* %"$sendoff_msg_6", align 8, !dbg !34 + %"$execptr_load_177" = load i8*, i8** @_execptr, align 8 + %"$$sendoff_msg_6_179" = load %String, %String* %"$sendoff_msg_6", align 8 + %"$update_value_180" = alloca %String, align 8 + store %String %"$$sendoff_msg_6_179", %String* %"$update_value_180", align 8 + %"$update_value_181" = bitcast %String* %"$update_value_180" to i8* + call void @_update_field(i8* %"$execptr_load_177", i8* getelementptr inbounds ([12 x i8], [12 x i8]* @"$sendoff_msg_178", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_String_25", i32 0, i8* null, i8* %"$update_value_181"), !dbg !34 ret void } declare void @_update_field(i8*, i8*, %_TyDescrTy_Typ*, i32, i8*, i8*) -define internal void @"$setHello_181"(%Uint128 %_amount, [20 x i8]* %"$_origin_182", [20 x i8]* %"$_sender_183", %String %msg) !dbg !20 { +define internal void @"$setHello_182"(%Uint128 %_amount, [20 x i8]* %"$_origin_183", [20 x i8]* %"$_sender_184", %String %msg) !dbg !35 { entry: - %_origin = load [20 x i8], [20 x i8]* %"$_origin_182", align 1 - %_sender = load [20 x i8], [20 x i8]* %"$_sender_183", align 1 - %"$gasrem_184" = load i64, i64* @_gasrem, align 8 - %"$gascmp_185" = icmp ugt i64 1, %"$gasrem_184" - br i1 %"$gascmp_185", label %"$out_of_gas_186", label %"$have_gas_187" - -"$out_of_gas_186": ; preds = %entry + %"$msg_308" = alloca %String, align 8 + store %String %msg, %String* %"$msg_308", align 8 + call void @llvm.dbg.declare(metadata %String* %"$msg_308", metadata !36, metadata !DIExpression()), !dbg !37 + %"$_sender_307" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_sender_184", [20 x i8]** %"$_sender_307", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_sender_307", metadata !38, metadata !DIExpression()), !dbg !40 + %"$_origin_306" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_origin_183", [20 x i8]** %"$_origin_306", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_origin_306", metadata !41, metadata !DIExpression()), !dbg !40 + %"$_amount_305" = alloca %Uint128, align 8 + store %Uint128 %_amount, %Uint128* %"$_amount_305", align 8 + call void @llvm.dbg.declare(metadata %Uint128* %"$_amount_305", metadata !42, metadata !DIExpression()), !dbg !40 + %_origin = load [20 x i8], [20 x i8]* %"$_origin_183", align 1 + %_sender = load [20 x i8], [20 x i8]* %"$_sender_184", align 1 + %"$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 = %entry call void @_out_of_gas() - br label %"$have_gas_187" + br label %"$have_gas_188" -"$have_gas_187": ; preds = %"$out_of_gas_186", %entry - %"$consume_188" = sub i64 %"$gasrem_184", 1 - store i64 %"$consume_188", i64* @_gasrem, align 8 +"$have_gas_188": ; preds = %"$out_of_gas_187", %entry + %"$consume_189" = sub i64 %"$gasrem_185", 1 + store i64 %"$consume_189", i64* @_gasrem, align 8 %is_owner = alloca %TName_Bool*, align 8 - %"$gasrem_189" = load i64, i64* @_gasrem, align 8 - %"$gascmp_190" = icmp ugt i64 20, %"$gasrem_189" - br i1 %"$gascmp_190", label %"$out_of_gas_191", label %"$have_gas_192" + call void @llvm.dbg.declare(metadata %TName_Bool** %is_owner, metadata !44, metadata !DIExpression()), !dbg !47 + %"$gasrem_190" = load i64, i64* @_gasrem, align 8 + %"$gascmp_191" = icmp ugt i64 20, %"$gasrem_190" + br i1 %"$gascmp_191", label %"$out_of_gas_192", label %"$have_gas_193" -"$out_of_gas_191": ; preds = %"$have_gas_187" +"$out_of_gas_192": ; preds = %"$have_gas_188" call void @_out_of_gas() - br label %"$have_gas_192" - -"$have_gas_192": ; preds = %"$out_of_gas_191", %"$have_gas_187" - %"$consume_193" = sub i64 %"$gasrem_189", 20 - store i64 %"$consume_193", i64* @_gasrem, align 8 - %"$execptr_load_194" = load i8*, i8** @_execptr, align 8 - %"$eq_owner_195" = alloca [20 x i8], align 1 - %"$owner_196" = load [20 x i8], [20 x i8]* @_cparam_owner, align 1 - store [20 x i8] %"$owner_196", [20 x i8]* %"$eq_owner_195", align 1 - %"$$eq_owner_195_197" = bitcast [20 x i8]* %"$eq_owner_195" to i8* - %"$eq__sender_198" = alloca [20 x i8], align 1 - store [20 x i8] %_sender, [20 x i8]* %"$eq__sender_198", align 1 - %"$$eq__sender_198_199" = bitcast [20 x i8]* %"$eq__sender_198" to i8* - %"$eq_call_200" = call %TName_Bool* @_eq_ByStrX(i8* %"$execptr_load_194", i32 20, i8* %"$$eq_owner_195_197", i8* %"$$eq__sender_198_199"), !dbg !21 - store %TName_Bool* %"$eq_call_200", %TName_Bool** %is_owner, align 8, !dbg !21 - %"$gasrem_202" = load i64, i64* @_gasrem, align 8 - %"$gascmp_203" = icmp ugt i64 2, %"$gasrem_202" - br i1 %"$gascmp_203", label %"$out_of_gas_204", label %"$have_gas_205" - -"$out_of_gas_204": ; preds = %"$have_gas_192" + br label %"$have_gas_193" + +"$have_gas_193": ; preds = %"$out_of_gas_192", %"$have_gas_188" + %"$consume_194" = sub i64 %"$gasrem_190", 20 + store i64 %"$consume_194", i64* @_gasrem, align 8 + %"$execptr_load_195" = load i8*, i8** @_execptr, align 8 + %"$eq_owner_196" = alloca [20 x i8], align 1 + %"$owner_197" = load [20 x i8], [20 x i8]* @_cparam_owner, align 1 + store [20 x i8] %"$owner_197", [20 x i8]* %"$eq_owner_196", align 1 + %"$$eq_owner_196_198" = bitcast [20 x i8]* %"$eq_owner_196" to i8* + %"$eq__sender_199" = alloca [20 x i8], align 1 + store [20 x i8] %_sender, [20 x i8]* %"$eq__sender_199", align 1 + %"$$eq__sender_199_200" = bitcast [20 x i8]* %"$eq__sender_199" to i8* + %"$eq_call_201" = call %TName_Bool* @_eq_ByStrX(i8* %"$execptr_load_195", i32 20, i8* %"$$eq_owner_196_198", i8* %"$$eq__sender_199_200"), !dbg !48 + store %TName_Bool* %"$eq_call_201", %TName_Bool** %is_owner, align 8, !dbg !48 + %"$gasrem_203" = load i64, i64* @_gasrem, align 8 + %"$gascmp_204" = icmp ugt i64 2, %"$gasrem_203" + br i1 %"$gascmp_204", label %"$out_of_gas_205", label %"$have_gas_206" + +"$out_of_gas_205": ; preds = %"$have_gas_193" call void @_out_of_gas() - br label %"$have_gas_205" - -"$have_gas_205": ; preds = %"$out_of_gas_204", %"$have_gas_192" - %"$consume_206" = sub i64 %"$gasrem_202", 2 - store i64 %"$consume_206", i64* @_gasrem, align 8 - %"$is_owner_208" = load %TName_Bool*, %TName_Bool** %is_owner, align 8 - %"$is_owner_tag_209" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$is_owner_208", i32 0, i32 0 - %"$is_owner_tag_210" = load i8, i8* %"$is_owner_tag_209", align 1 - switch i8 %"$is_owner_tag_210", label %"$empty_default_211" [ - i8 1, label %"$False_212" - i8 0, label %"$True_252" - ], !dbg !22 - -"$False_212": ; preds = %"$have_gas_205" - %"$is_owner_213" = bitcast %TName_Bool* %"$is_owner_208" to %CName_False* - %"$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 = %"$False_212" + br label %"$have_gas_206" + +"$have_gas_206": ; preds = %"$out_of_gas_205", %"$have_gas_193" + %"$consume_207" = sub i64 %"$gasrem_203", 2 + store i64 %"$consume_207", i64* @_gasrem, align 8 + %"$is_owner_209" = load %TName_Bool*, %TName_Bool** %is_owner, align 8 + %"$is_owner_tag_210" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$is_owner_209", i32 0, i32 0 + %"$is_owner_tag_211" = load i8, i8* %"$is_owner_tag_210", align 1 + switch i8 %"$is_owner_tag_211", label %"$empty_default_212" [ + i8 1, label %"$False_213" + i8 0, label %"$True_253" + ], !dbg !49 + +"$False_213": ; preds = %"$have_gas_206" + %"$is_owner_214" = bitcast %TName_Bool* %"$is_owner_209" to %CName_False* + %"$gasrem_215" = load i64, i64* @_gasrem, align 8 + %"$gascmp_216" = icmp ugt i64 1, %"$gasrem_215" + br i1 %"$gascmp_216", label %"$out_of_gas_217", label %"$have_gas_218" + +"$out_of_gas_217": ; preds = %"$False_213" call void @_out_of_gas() - br label %"$have_gas_217" + br label %"$have_gas_218" -"$have_gas_217": ; preds = %"$out_of_gas_216", %"$False_212" - %"$consume_218" = sub i64 %"$gasrem_214", 1 - store i64 %"$consume_218", i64* @_gasrem, align 8 +"$have_gas_218": ; preds = %"$out_of_gas_217", %"$False_213" + %"$consume_219" = sub i64 %"$gasrem_215", 1 + store i64 %"$consume_219", i64* @_gasrem, align 8 %e = alloca 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" + call void @llvm.dbg.declare(metadata i8** %e, metadata !50, metadata !DIExpression()), !dbg !55 + %"$gasrem_220" = load i64, i64* @_gasrem, align 8 + %"$gascmp_221" = icmp ugt i64 1, %"$gasrem_220" + br i1 %"$gascmp_221", label %"$out_of_gas_222", label %"$have_gas_223" -"$out_of_gas_221": ; preds = %"$have_gas_217" +"$out_of_gas_222": ; preds = %"$have_gas_218" call void @_out_of_gas() - br label %"$have_gas_222" - -"$have_gas_222": ; preds = %"$out_of_gas_221", %"$have_gas_217" - %"$consume_223" = sub i64 %"$gasrem_219", 1 - store i64 %"$consume_223", i64* @_gasrem, align 8 - %"$msgobj_224_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$msgobj_224_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_224_salloc_load", i64 69) - %"$msgobj_224_salloc" = bitcast i8* %"$msgobj_224_salloc_salloc" to [69 x i8]* - %"$msgobj_224" = bitcast [69 x i8]* %"$msgobj_224_salloc" to i8* - store i8 2, i8* %"$msgobj_224", align 1 - %"$msgobj_fname_226" = getelementptr i8, i8* %"$msgobj_224", i32 1 - %"$msgobj_fname_227" = bitcast i8* %"$msgobj_fname_226" to %String* - store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_225", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_227", align 8 - %"$msgobj_td_228" = getelementptr i8, i8* %"$msgobj_224", i32 17 - %"$msgobj_td_229" = bitcast i8* %"$msgobj_td_228" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_String_25", %_TyDescrTy_Typ** %"$msgobj_td_229", align 8 - %"$msgobj_v_231" = getelementptr i8, i8* %"$msgobj_224", i32 25 - %"$msgobj_v_232" = bitcast i8* %"$msgobj_v_231" to %String* - store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_230", i32 0, i32 0), i32 10 }, %String* %"$msgobj_v_232", align 8 - %"$msgobj_fname_234" = getelementptr i8, i8* %"$msgobj_224", i32 41 - %"$msgobj_fname_235" = bitcast i8* %"$msgobj_fname_234" to %String* - store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_233", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_235", align 8 - %"$msgobj_td_236" = getelementptr i8, i8* %"$msgobj_224", i32 57 - %"$msgobj_td_237" = bitcast i8* %"$msgobj_td_236" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Int32_9", %_TyDescrTy_Typ** %"$msgobj_td_237", align 8 - %"$helloWorld.not_owner_code_238" = load %Int32, %Int32* @helloWorld.not_owner_code, align 4 - %"$msgobj_v_239" = getelementptr i8, i8* %"$msgobj_224", i32 65 - %"$msgobj_v_240" = bitcast i8* %"$msgobj_v_239" to %Int32* - store %Int32 %"$helloWorld.not_owner_code_238", %Int32* %"$msgobj_v_240", align 4 - store i8* %"$msgobj_224", i8** %e, align 8, !dbg !23 - %"$e_242" = load i8*, i8** %e, align 8 - %"$_literal_cost_call_244" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Event_31", i8* %"$e_242") - %"$gasrem_245" = load i64, i64* @_gasrem, align 8 - %"$gascmp_246" = icmp ugt i64 %"$_literal_cost_call_244", %"$gasrem_245" - br i1 %"$gascmp_246", label %"$out_of_gas_247", label %"$have_gas_248" - -"$out_of_gas_247": ; preds = %"$have_gas_222" + br label %"$have_gas_223" + +"$have_gas_223": ; preds = %"$out_of_gas_222", %"$have_gas_218" + %"$consume_224" = sub i64 %"$gasrem_220", 1 + store i64 %"$consume_224", i64* @_gasrem, align 8 + %"$msgobj_225_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$msgobj_225_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_225_salloc_load", i64 69) + %"$msgobj_225_salloc" = bitcast i8* %"$msgobj_225_salloc_salloc" to [69 x i8]* + %"$msgobj_225" = bitcast [69 x i8]* %"$msgobj_225_salloc" to i8* + store i8 2, i8* %"$msgobj_225", align 1 + %"$msgobj_fname_227" = getelementptr i8, i8* %"$msgobj_225", i32 1 + %"$msgobj_fname_228" = bitcast i8* %"$msgobj_fname_227" to %String* + store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_226", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_228", align 8 + %"$msgobj_td_229" = getelementptr i8, i8* %"$msgobj_225", i32 17 + %"$msgobj_td_230" = bitcast i8* %"$msgobj_td_229" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_String_25", %_TyDescrTy_Typ** %"$msgobj_td_230", align 8 + %"$msgobj_v_232" = getelementptr i8, i8* %"$msgobj_225", i32 25 + %"$msgobj_v_233" = bitcast i8* %"$msgobj_v_232" to %String* + store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_231", i32 0, i32 0), i32 10 }, %String* %"$msgobj_v_233", align 8 + %"$msgobj_fname_235" = getelementptr i8, i8* %"$msgobj_225", i32 41 + %"$msgobj_fname_236" = bitcast i8* %"$msgobj_fname_235" to %String* + store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_234", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_236", align 8 + %"$msgobj_td_237" = getelementptr i8, i8* %"$msgobj_225", i32 57 + %"$msgobj_td_238" = bitcast i8* %"$msgobj_td_237" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Int32_9", %_TyDescrTy_Typ** %"$msgobj_td_238", align 8 + %"$helloWorld.not_owner_code_239" = load %Int32, %Int32* @helloWorld.not_owner_code, align 4 + %"$msgobj_v_240" = getelementptr i8, i8* %"$msgobj_225", i32 65 + %"$msgobj_v_241" = bitcast i8* %"$msgobj_v_240" to %Int32* + store %Int32 %"$helloWorld.not_owner_code_239", %Int32* %"$msgobj_v_241", align 4 + store i8* %"$msgobj_225", i8** %e, align 8, !dbg !56 + %"$e_243" = load i8*, i8** %e, align 8 + %"$_literal_cost_call_245" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Event_31", i8* %"$e_243") + %"$gasrem_246" = load i64, i64* @_gasrem, align 8 + %"$gascmp_247" = icmp ugt i64 %"$_literal_cost_call_245", %"$gasrem_246" + br i1 %"$gascmp_247", label %"$out_of_gas_248", label %"$have_gas_249" + +"$out_of_gas_248": ; preds = %"$have_gas_223" call void @_out_of_gas() - br label %"$have_gas_248" - -"$have_gas_248": ; preds = %"$out_of_gas_247", %"$have_gas_222" - %"$consume_249" = sub i64 %"$gasrem_245", %"$_literal_cost_call_244" - store i64 %"$consume_249", i64* @_gasrem, align 8 - %"$execptr_load_250" = load i8*, i8** @_execptr, align 8 - %"$e_251" = load i8*, i8** %e, align 8 - call void @_event(i8* %"$execptr_load_250", %_TyDescrTy_Typ* @"$TyDescr_Event_31", i8* %"$e_251"), !dbg !26 - br label %"$matchsucc_207" - -"$True_252": ; preds = %"$have_gas_205" - %"$is_owner_253" = bitcast %TName_Bool* %"$is_owner_208" to %CName_True* - %"$_literal_cost_msg_254" = alloca %String, align 8 - store %String %msg, %String* %"$_literal_cost_msg_254", align 8 - %"$$_literal_cost_msg_254_255" = bitcast %String* %"$_literal_cost_msg_254" to i8* - %"$_literal_cost_call_256" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_25", i8* %"$$_literal_cost_msg_254_255") - %"$gasrem_257" = load i64, i64* @_gasrem, align 8 - %"$gascmp_258" = icmp ugt i64 %"$_literal_cost_call_256", %"$gasrem_257" - br i1 %"$gascmp_258", label %"$out_of_gas_259", label %"$have_gas_260" - -"$out_of_gas_259": ; preds = %"$True_252" + br label %"$have_gas_249" + +"$have_gas_249": ; preds = %"$out_of_gas_248", %"$have_gas_223" + %"$consume_250" = sub i64 %"$gasrem_246", %"$_literal_cost_call_245" + store i64 %"$consume_250", i64* @_gasrem, align 8 + %"$execptr_load_251" = load i8*, i8** @_execptr, align 8 + %"$e_252" = load i8*, i8** %e, align 8 + call void @_event(i8* %"$execptr_load_251", %_TyDescrTy_Typ* @"$TyDescr_Event_31", i8* %"$e_252"), !dbg !57 + br label %"$matchsucc_208" + +"$True_253": ; preds = %"$have_gas_206" + %"$is_owner_254" = bitcast %TName_Bool* %"$is_owner_209" to %CName_True* + %"$_literal_cost_msg_255" = alloca %String, align 8 + store %String %msg, %String* %"$_literal_cost_msg_255", align 8 + %"$$_literal_cost_msg_255_256" = bitcast %String* %"$_literal_cost_msg_255" to i8* + %"$_literal_cost_call_257" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_25", i8* %"$$_literal_cost_msg_255_256") + %"$gasrem_258" = load i64, i64* @_gasrem, align 8 + %"$gascmp_259" = icmp ugt i64 %"$_literal_cost_call_257", %"$gasrem_258" + br i1 %"$gascmp_259", label %"$out_of_gas_260", label %"$have_gas_261" + +"$out_of_gas_260": ; preds = %"$True_253" call void @_out_of_gas() - br label %"$have_gas_260" - -"$have_gas_260": ; preds = %"$out_of_gas_259", %"$True_252" - %"$consume_261" = sub i64 %"$gasrem_257", %"$_literal_cost_call_256" - store i64 %"$consume_261", i64* @_gasrem, align 8 - %"$execptr_load_262" = load i8*, i8** @_execptr, align 8 - %"$update_value_264" = alloca %String, align 8 - store %String %msg, %String* %"$update_value_264", align 8 - %"$update_value_265" = bitcast %String* %"$update_value_264" to i8* - call void @_update_field(i8* %"$execptr_load_262", i8* getelementptr inbounds ([12 x i8], [12 x i8]* @"$welcome_msg_263", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_String_25", i32 0, i8* null, i8* %"$update_value_265"), !dbg !27 - %"$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_260" + br label %"$have_gas_261" + +"$have_gas_261": ; preds = %"$out_of_gas_260", %"$True_253" + %"$consume_262" = sub i64 %"$gasrem_258", %"$_literal_cost_call_257" + store i64 %"$consume_262", i64* @_gasrem, align 8 + %"$execptr_load_263" = load i8*, i8** @_execptr, align 8 + %"$update_value_265" = alloca %String, align 8 + store %String %msg, %String* %"$update_value_265", align 8 + %"$update_value_266" = bitcast %String* %"$update_value_265" to i8* + call void @_update_field(i8* %"$execptr_load_263", i8* getelementptr inbounds ([12 x i8], [12 x i8]* @"$welcome_msg_264", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_String_25", i32 0, i8* null, i8* %"$update_value_266"), !dbg !58 + %"$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_261" call void @_out_of_gas() - br label %"$have_gas_269" + br label %"$have_gas_270" -"$have_gas_269": ; preds = %"$out_of_gas_268", %"$have_gas_260" - %"$consume_270" = sub i64 %"$gasrem_266", 1 - store i64 %"$consume_270", i64* @_gasrem, align 8 +"$have_gas_270": ; preds = %"$out_of_gas_269", %"$have_gas_261" + %"$consume_271" = sub i64 %"$gasrem_267", 1 + store i64 %"$consume_271", i64* @_gasrem, align 8 %e1 = alloca i8*, 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" + call void @llvm.dbg.declare(metadata i8** %e1, metadata !60, metadata !DIExpression()), !dbg !61 + %"$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_273": ; preds = %"$have_gas_269" +"$out_of_gas_274": ; preds = %"$have_gas_270" 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 - %"$msgobj_276_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$msgobj_276_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_276_salloc_load", i64 69) - %"$msgobj_276_salloc" = bitcast i8* %"$msgobj_276_salloc_salloc" to [69 x i8]* - %"$msgobj_276" = bitcast [69 x i8]* %"$msgobj_276_salloc" to i8* - store i8 2, i8* %"$msgobj_276", align 1 - %"$msgobj_fname_278" = getelementptr i8, i8* %"$msgobj_276", i32 1 - %"$msgobj_fname_279" = bitcast i8* %"$msgobj_fname_278" to %String* - store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_277", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_279", align 8 - %"$msgobj_td_280" = getelementptr i8, i8* %"$msgobj_276", i32 17 - %"$msgobj_td_281" = bitcast i8* %"$msgobj_td_280" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_String_25", %_TyDescrTy_Typ** %"$msgobj_td_281", align 8 - %"$msgobj_v_283" = getelementptr i8, i8* %"$msgobj_276", i32 25 - %"$msgobj_v_284" = bitcast i8* %"$msgobj_v_283" to %String* - store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_282", i32 0, i32 0), i32 10 }, %String* %"$msgobj_v_284", align 8 - %"$msgobj_fname_286" = getelementptr i8, i8* %"$msgobj_276", i32 41 - %"$msgobj_fname_287" = bitcast i8* %"$msgobj_fname_286" to %String* - store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_285", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_287", align 8 - %"$msgobj_td_288" = getelementptr i8, i8* %"$msgobj_276", i32 57 - %"$msgobj_td_289" = bitcast i8* %"$msgobj_td_288" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Int32_9", %_TyDescrTy_Typ** %"$msgobj_td_289", align 8 - %"$helloWorld.set_hello_code_290" = load %Int32, %Int32* @helloWorld.set_hello_code, align 4 - %"$msgobj_v_291" = getelementptr i8, i8* %"$msgobj_276", i32 65 - %"$msgobj_v_292" = bitcast i8* %"$msgobj_v_291" to %Int32* - store %Int32 %"$helloWorld.set_hello_code_290", %Int32* %"$msgobj_v_292", align 4 - store i8* %"$msgobj_276", i8** %e1, align 8, !dbg !29 - %"$e_294" = load i8*, i8** %e1, align 8 - %"$_literal_cost_call_296" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Event_31", i8* %"$e_294") - %"$gasrem_297" = load i64, i64* @_gasrem, align 8 - %"$gascmp_298" = icmp ugt i64 %"$_literal_cost_call_296", %"$gasrem_297" - br i1 %"$gascmp_298", label %"$out_of_gas_299", label %"$have_gas_300" - -"$out_of_gas_299": ; preds = %"$have_gas_274" + br label %"$have_gas_275" + +"$have_gas_275": ; preds = %"$out_of_gas_274", %"$have_gas_270" + %"$consume_276" = sub i64 %"$gasrem_272", 1 + store i64 %"$consume_276", i64* @_gasrem, align 8 + %"$msgobj_277_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$msgobj_277_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_277_salloc_load", i64 69) + %"$msgobj_277_salloc" = bitcast i8* %"$msgobj_277_salloc_salloc" to [69 x i8]* + %"$msgobj_277" = bitcast [69 x i8]* %"$msgobj_277_salloc" to i8* + store i8 2, i8* %"$msgobj_277", align 1 + %"$msgobj_fname_279" = getelementptr i8, i8* %"$msgobj_277", i32 1 + %"$msgobj_fname_280" = bitcast i8* %"$msgobj_fname_279" to %String* + store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_278", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_280", align 8 + %"$msgobj_td_281" = getelementptr i8, i8* %"$msgobj_277", i32 17 + %"$msgobj_td_282" = bitcast i8* %"$msgobj_td_281" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_String_25", %_TyDescrTy_Typ** %"$msgobj_td_282", align 8 + %"$msgobj_v_284" = getelementptr i8, i8* %"$msgobj_277", i32 25 + %"$msgobj_v_285" = bitcast i8* %"$msgobj_v_284" to %String* + store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_283", i32 0, i32 0), i32 10 }, %String* %"$msgobj_v_285", align 8 + %"$msgobj_fname_287" = getelementptr i8, i8* %"$msgobj_277", i32 41 + %"$msgobj_fname_288" = bitcast i8* %"$msgobj_fname_287" to %String* + store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_286", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_288", align 8 + %"$msgobj_td_289" = getelementptr i8, i8* %"$msgobj_277", i32 57 + %"$msgobj_td_290" = bitcast i8* %"$msgobj_td_289" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Int32_9", %_TyDescrTy_Typ** %"$msgobj_td_290", align 8 + %"$helloWorld.set_hello_code_291" = load %Int32, %Int32* @helloWorld.set_hello_code, align 4 + %"$msgobj_v_292" = getelementptr i8, i8* %"$msgobj_277", i32 65 + %"$msgobj_v_293" = bitcast i8* %"$msgobj_v_292" to %Int32* + store %Int32 %"$helloWorld.set_hello_code_291", %Int32* %"$msgobj_v_293", align 4 + store i8* %"$msgobj_277", i8** %e1, align 8, !dbg !62 + %"$e_295" = load i8*, i8** %e1, align 8 + %"$_literal_cost_call_297" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Event_31", i8* %"$e_295") + %"$gasrem_298" = load i64, i64* @_gasrem, align 8 + %"$gascmp_299" = icmp ugt i64 %"$_literal_cost_call_297", %"$gasrem_298" + br i1 %"$gascmp_299", label %"$out_of_gas_300", label %"$have_gas_301" + +"$out_of_gas_300": ; preds = %"$have_gas_275" call void @_out_of_gas() - br label %"$have_gas_300" + br label %"$have_gas_301" -"$have_gas_300": ; preds = %"$out_of_gas_299", %"$have_gas_274" - %"$consume_301" = sub i64 %"$gasrem_297", %"$_literal_cost_call_296" - store i64 %"$consume_301", i64* @_gasrem, align 8 - %"$execptr_load_302" = load i8*, i8** @_execptr, align 8 - %"$e_303" = load i8*, i8** %e1, align 8 - call void @_event(i8* %"$execptr_load_302", %_TyDescrTy_Typ* @"$TyDescr_Event_31", i8* %"$e_303"), !dbg !30 - br label %"$matchsucc_207" +"$have_gas_301": ; preds = %"$out_of_gas_300", %"$have_gas_275" + %"$consume_302" = sub i64 %"$gasrem_298", %"$_literal_cost_call_297" + store i64 %"$consume_302", i64* @_gasrem, align 8 + %"$execptr_load_303" = load i8*, i8** @_execptr, align 8 + %"$e_304" = load i8*, i8** %e1, align 8 + call void @_event(i8* %"$execptr_load_303", %_TyDescrTy_Typ* @"$TyDescr_Event_31", i8* %"$e_304"), !dbg !63 + br label %"$matchsucc_208" -"$empty_default_211": ; preds = %"$have_gas_205" - br label %"$matchsucc_207" +"$empty_default_212": ; preds = %"$have_gas_206" + br label %"$matchsucc_208" -"$matchsucc_207": ; preds = %"$have_gas_300", %"$have_gas_248", %"$empty_default_211" +"$matchsucc_208": ; preds = %"$have_gas_301", %"$have_gas_249", %"$empty_default_212" ret void } @@ -636,61 +661,59 @@ declare i64 @_literal_cost(%_TyDescrTy_Typ*, i8*) declare void @_event(i8*, %_TyDescrTy_Typ*, i8*) -define void @setHello(i8* %0) !dbg !31 { +define void @setHello(i8* %0) !dbg !64 { entry: - %"$_amount_305" = getelementptr i8, i8* %0, i32 0 - %"$_amount_306" = bitcast i8* %"$_amount_305" to %Uint128* - %_amount = load %Uint128, %Uint128* %"$_amount_306", align 8 - %"$_origin_307" = getelementptr i8, i8* %0, i32 16 - %"$_origin_308" = bitcast i8* %"$_origin_307" to [20 x i8]* - %"$_sender_309" = getelementptr i8, i8* %0, i32 36 - %"$_sender_310" = bitcast i8* %"$_sender_309" to [20 x i8]* - %"$msg_311" = getelementptr i8, i8* %0, i32 56 - %"$msg_312" = bitcast i8* %"$msg_311" to %String* - %msg = load %String, %String* %"$msg_312", align 8 - call void @"$setHello_181"(%Uint128 %_amount, [20 x i8]* %"$_origin_308", [20 x i8]* %"$_sender_310", %String %msg), !dbg !32 + %"$_amount_310" = getelementptr i8, i8* %0, i32 0 + %"$_amount_311" = bitcast i8* %"$_amount_310" to %Uint128* + %_amount = load %Uint128, %Uint128* %"$_amount_311", align 8 + %"$_origin_312" = getelementptr i8, i8* %0, i32 16 + %"$_origin_313" = bitcast i8* %"$_origin_312" to [20 x i8]* + %"$_sender_314" = getelementptr i8, i8* %0, i32 36 + %"$_sender_315" = bitcast i8* %"$_sender_314" to [20 x i8]* + %"$msg_316" = getelementptr i8, i8* %0, i32 56 + %"$msg_317" = bitcast i8* %"$msg_316" to %String* + %msg = load %String, %String* %"$msg_317", align 8 + call void @"$setHello_182"(%Uint128 %_amount, [20 x i8]* %"$_origin_313", [20 x i8]* %"$_sender_315", %String %msg), !dbg !65 ret void } -define internal void @"$getHello_313"(%Uint128 %_amount, [20 x i8]* %"$_origin_314", [20 x i8]* %"$_sender_315") !dbg !33 { +define internal void @"$getHello_318"(%Uint128 %_amount, [20 x i8]* %"$_origin_319", [20 x i8]* %"$_sender_320") !dbg !66 { entry: - %_origin = load [20 x i8], [20 x i8]* %"$_origin_314", align 1 - %_sender = load [20 x i8], [20 x i8]* %"$_sender_315", align 1 + %"$_sender_376" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_sender_320", [20 x i8]** %"$_sender_376", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_sender_376", metadata !67, metadata !DIExpression()), !dbg !68 + %"$_origin_375" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_origin_319", [20 x i8]** %"$_origin_375", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_origin_375", metadata !69, metadata !DIExpression()), !dbg !68 + %"$_amount_374" = alloca %Uint128, align 8 + store %Uint128 %_amount, %Uint128* %"$_amount_374", align 8 + call void @llvm.dbg.declare(metadata %Uint128* %"$_amount_374", metadata !70, metadata !DIExpression()), !dbg !68 + %_origin = load [20 x i8], [20 x i8]* %"$_origin_319", align 1 + %_sender = load [20 x i8], [20 x i8]* %"$_sender_320", align 1 %r = alloca %String, align 8 - %"$execptr_load_317" = load i8*, i8** @_execptr, align 8 - %"$r_call_318" = call i8* @_fetch_field(i8* %"$execptr_load_317", i8* getelementptr inbounds ([12 x i8], [12 x i8]* @"$welcome_msg_316", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_String_25", i32 0, i8* null, i32 1), !dbg !34 - %"$r_319" = bitcast i8* %"$r_call_318" to %String* - %"$r_320" = load %String, %String* %"$r_319", align 8 - store %String %"$r_320", %String* %r, align 8 - %"$_literal_cost_r_321" = alloca %String, align 8 - %"$r_322" = load %String, %String* %r, align 8 - store %String %"$r_322", %String* %"$_literal_cost_r_321", align 8 - %"$$_literal_cost_r_321_323" = bitcast %String* %"$_literal_cost_r_321" to i8* - %"$_literal_cost_call_324" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_25", i8* %"$$_literal_cost_r_321_323") - %"$gasadd_325" = add i64 %"$_literal_cost_call_324", 0 - %"$gasrem_326" = load i64, i64* @_gasrem, align 8 - %"$gascmp_327" = icmp ugt i64 %"$gasadd_325", %"$gasrem_326" - br i1 %"$gascmp_327", label %"$out_of_gas_328", label %"$have_gas_329" - -"$out_of_gas_328": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_329" - -"$have_gas_329": ; preds = %"$out_of_gas_328", %entry - %"$consume_330" = sub i64 %"$gasrem_326", %"$gasadd_325" - store i64 %"$consume_330", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %String* %r, metadata !71, metadata !DIExpression()), !dbg !72 + %"$execptr_load_322" = load i8*, i8** @_execptr, align 8 + %"$r_call_323" = call i8* @_fetch_field(i8* %"$execptr_load_322", i8* getelementptr inbounds ([12 x i8], [12 x i8]* @"$welcome_msg_321", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_String_25", i32 0, i8* null, i32 1), !dbg !72 + %"$r_324" = bitcast i8* %"$r_call_323" to %String* + %"$r_325" = load %String, %String* %"$r_324", align 8 + store %String %"$r_325", %String* %r, align 8 + %"$_literal_cost_r_326" = alloca %String, align 8 + %"$r_327" = load %String, %String* %r, align 8 + store %String %"$r_327", %String* %"$_literal_cost_r_326", align 8 + %"$$_literal_cost_r_326_328" = bitcast %String* %"$_literal_cost_r_326" to i8* + %"$_literal_cost_call_329" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_25", i8* %"$$_literal_cost_r_326_328") + %"$gasadd_330" = add i64 %"$_literal_cost_call_329", 0 %"$gasrem_331" = load i64, i64* @_gasrem, align 8 - %"$gascmp_332" = icmp ugt i64 1, %"$gasrem_331" + %"$gascmp_332" = icmp ugt i64 %"$gasadd_330", %"$gasrem_331" br i1 %"$gascmp_332", label %"$out_of_gas_333", label %"$have_gas_334" -"$out_of_gas_333": ; preds = %"$have_gas_329" +"$out_of_gas_333": ; preds = %entry 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 +"$have_gas_334": ; preds = %"$out_of_gas_333", %entry + %"$consume_335" = sub i64 %"$gasrem_331", %"$gasadd_330" store i64 %"$consume_335", i64* @_gasrem, align 8 - %e = alloca i8*, align 8 %"$gasrem_336" = load i64, i64* @_gasrem, align 8 %"$gascmp_337" = icmp ugt i64 1, %"$gasrem_336" br i1 %"$gascmp_337", label %"$out_of_gas_338", label %"$have_gas_339" @@ -702,569 +725,683 @@ entry: "$have_gas_339": ; preds = %"$out_of_gas_338", %"$have_gas_334" %"$consume_340" = sub i64 %"$gasrem_336", 1 store i64 %"$consume_340", i64* @_gasrem, align 8 - %"$msgobj_341_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$msgobj_341_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_341_salloc_load", i64 81) - %"$msgobj_341_salloc" = bitcast i8* %"$msgobj_341_salloc_salloc" to [81 x i8]* - %"$msgobj_341" = bitcast [81 x i8]* %"$msgobj_341_salloc" to i8* - store i8 2, i8* %"$msgobj_341", align 1 - %"$msgobj_fname_343" = getelementptr i8, i8* %"$msgobj_341", i32 1 - %"$msgobj_fname_344" = bitcast i8* %"$msgobj_fname_343" to %String* - store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_342", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_344", align 8 - %"$msgobj_td_345" = getelementptr i8, i8* %"$msgobj_341", i32 17 - %"$msgobj_td_346" = bitcast i8* %"$msgobj_td_345" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_String_25", %_TyDescrTy_Typ** %"$msgobj_td_346", align 8 - %"$msgobj_v_348" = getelementptr i8, i8* %"$msgobj_341", i32 25 - %"$msgobj_v_349" = bitcast i8* %"$msgobj_v_348" to %String* - store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_347", i32 0, i32 0), i32 10 }, %String* %"$msgobj_v_349", align 8 - %"$msgobj_fname_351" = getelementptr i8, i8* %"$msgobj_341", i32 41 - %"$msgobj_fname_352" = bitcast i8* %"$msgobj_fname_351" to %String* - store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_350", i32 0, i32 0), i32 3 }, %String* %"$msgobj_fname_352", align 8 - %"$msgobj_td_353" = getelementptr i8, i8* %"$msgobj_341", i32 57 - %"$msgobj_td_354" = bitcast i8* %"$msgobj_td_353" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_String_25", %_TyDescrTy_Typ** %"$msgobj_td_354", align 8 - %"$r_355" = load %String, %String* %r, align 8 - %"$msgobj_v_356" = getelementptr i8, i8* %"$msgobj_341", i32 65 - %"$msgobj_v_357" = bitcast i8* %"$msgobj_v_356" to %String* - store %String %"$r_355", %String* %"$msgobj_v_357", align 8 - store i8* %"$msgobj_341", i8** %e, align 8, !dbg !35 - %"$e_359" = load i8*, i8** %e, align 8 - %"$_literal_cost_call_361" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Event_31", i8* %"$e_359") - %"$gasrem_362" = load i64, i64* @_gasrem, align 8 - %"$gascmp_363" = icmp ugt i64 %"$_literal_cost_call_361", %"$gasrem_362" - br i1 %"$gascmp_363", label %"$out_of_gas_364", label %"$have_gas_365" - -"$out_of_gas_364": ; preds = %"$have_gas_339" + %e = alloca i8*, align 8 + call void @llvm.dbg.declare(metadata i8** %e, metadata !73, metadata !DIExpression()), !dbg !74 + %"$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_339" + call void @_out_of_gas() + br label %"$have_gas_344" + +"$have_gas_344": ; preds = %"$out_of_gas_343", %"$have_gas_339" + %"$consume_345" = sub i64 %"$gasrem_341", 1 + store i64 %"$consume_345", i64* @_gasrem, align 8 + %"$msgobj_346_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$msgobj_346_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_346_salloc_load", i64 81) + %"$msgobj_346_salloc" = bitcast i8* %"$msgobj_346_salloc_salloc" to [81 x i8]* + %"$msgobj_346" = bitcast [81 x i8]* %"$msgobj_346_salloc" to i8* + store i8 2, i8* %"$msgobj_346", align 1 + %"$msgobj_fname_348" = getelementptr i8, i8* %"$msgobj_346", i32 1 + %"$msgobj_fname_349" = bitcast i8* %"$msgobj_fname_348" to %String* + store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_347", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_349", align 8 + %"$msgobj_td_350" = getelementptr i8, i8* %"$msgobj_346", i32 17 + %"$msgobj_td_351" = bitcast i8* %"$msgobj_td_350" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_String_25", %_TyDescrTy_Typ** %"$msgobj_td_351", align 8 + %"$msgobj_v_353" = getelementptr i8, i8* %"$msgobj_346", i32 25 + %"$msgobj_v_354" = bitcast i8* %"$msgobj_v_353" to %String* + store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_352", i32 0, i32 0), i32 10 }, %String* %"$msgobj_v_354", align 8 + %"$msgobj_fname_356" = getelementptr i8, i8* %"$msgobj_346", i32 41 + %"$msgobj_fname_357" = bitcast i8* %"$msgobj_fname_356" to %String* + store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_355", i32 0, i32 0), i32 3 }, %String* %"$msgobj_fname_357", align 8 + %"$msgobj_td_358" = getelementptr i8, i8* %"$msgobj_346", i32 57 + %"$msgobj_td_359" = bitcast i8* %"$msgobj_td_358" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_String_25", %_TyDescrTy_Typ** %"$msgobj_td_359", align 8 + %"$r_360" = load %String, %String* %r, align 8 + %"$msgobj_v_361" = getelementptr i8, i8* %"$msgobj_346", i32 65 + %"$msgobj_v_362" = bitcast i8* %"$msgobj_v_361" to %String* + store %String %"$r_360", %String* %"$msgobj_v_362", align 8 + store i8* %"$msgobj_346", i8** %e, align 8, !dbg !75 + %"$e_364" = load i8*, i8** %e, align 8 + %"$_literal_cost_call_366" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Event_31", i8* %"$e_364") + %"$gasrem_367" = load i64, i64* @_gasrem, align 8 + %"$gascmp_368" = icmp ugt i64 %"$_literal_cost_call_366", %"$gasrem_367" + br i1 %"$gascmp_368", label %"$out_of_gas_369", label %"$have_gas_370" + +"$out_of_gas_369": ; preds = %"$have_gas_344" call void @_out_of_gas() - br label %"$have_gas_365" - -"$have_gas_365": ; preds = %"$out_of_gas_364", %"$have_gas_339" - %"$consume_366" = sub i64 %"$gasrem_362", %"$_literal_cost_call_361" - store i64 %"$consume_366", i64* @_gasrem, align 8 - %"$execptr_load_367" = load i8*, i8** @_execptr, align 8 - %"$e_368" = load i8*, i8** %e, align 8 - call void @_event(i8* %"$execptr_load_367", %_TyDescrTy_Typ* @"$TyDescr_Event_31", i8* %"$e_368"), !dbg !36 + br label %"$have_gas_370" + +"$have_gas_370": ; preds = %"$out_of_gas_369", %"$have_gas_344" + %"$consume_371" = sub i64 %"$gasrem_367", %"$_literal_cost_call_366" + store i64 %"$consume_371", i64* @_gasrem, align 8 + %"$execptr_load_372" = load i8*, i8** @_execptr, align 8 + %"$e_373" = load i8*, i8** %e, align 8 + call void @_event(i8* %"$execptr_load_372", %_TyDescrTy_Typ* @"$TyDescr_Event_31", i8* %"$e_373"), !dbg !76 ret void } declare i8* @_fetch_field(i8*, i8*, %_TyDescrTy_Typ*, i32, i8*, i32) -define void @getHello(i8* %0) !dbg !37 { +define void @getHello(i8* %0) !dbg !77 { entry: - %"$_amount_370" = getelementptr i8, i8* %0, i32 0 - %"$_amount_371" = bitcast i8* %"$_amount_370" to %Uint128* - %_amount = load %Uint128, %Uint128* %"$_amount_371", align 8 - %"$_origin_372" = getelementptr i8, i8* %0, i32 16 - %"$_origin_373" = bitcast i8* %"$_origin_372" to [20 x i8]* - %"$_sender_374" = getelementptr i8, i8* %0, i32 36 - %"$_sender_375" = bitcast i8* %"$_sender_374" to [20 x i8]* - call void @"$getHello_313"(%Uint128 %_amount, [20 x i8]* %"$_origin_373", [20 x i8]* %"$_sender_375"), !dbg !38 + %"$_amount_378" = getelementptr i8, i8* %0, i32 0 + %"$_amount_379" = bitcast i8* %"$_amount_378" to %Uint128* + %_amount = load %Uint128, %Uint128* %"$_amount_379", align 8 + %"$_origin_380" = getelementptr i8, i8* %0, i32 16 + %"$_origin_381" = bitcast i8* %"$_origin_380" to [20 x i8]* + %"$_sender_382" = getelementptr i8, i8* %0, i32 36 + %"$_sender_383" = bitcast i8* %"$_sender_382" to [20 x i8]* + call void @"$getHello_318"(%Uint128 %_amount, [20 x i8]* %"$_origin_381", [20 x i8]* %"$_sender_383"), !dbg !78 ret void } -define internal void @"$multipleMsgs_376"(%Uint128 %_amount, [20 x i8]* %"$_origin_377", [20 x i8]* %"$_sender_378") !dbg !39 { +define internal void @"$multipleMsgs_384"(%Uint128 %_amount, [20 x i8]* %"$_origin_385", [20 x i8]* %"$_sender_386") !dbg !79 { entry: - %_origin = load [20 x i8], [20 x i8]* %"$_origin_377", align 1 - %_sender = load [20 x i8], [20 x i8]* %"$_sender_378", align 1 - %"$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 + %"$_sender_500" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_sender_386", [20 x i8]** %"$_sender_500", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_sender_500", metadata !80, metadata !DIExpression()), !dbg !81 + %"$_origin_499" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_origin_385", [20 x i8]** %"$_origin_499", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_origin_499", metadata !82, metadata !DIExpression()), !dbg !81 + %"$_amount_498" = alloca %Uint128, align 8 + store %Uint128 %_amount, %Uint128* %"$_amount_498", align 8 + call void @llvm.dbg.declare(metadata %Uint128* %"$_amount_498", metadata !83, metadata !DIExpression()), !dbg !81 + %_origin = load [20 x i8], [20 x i8]* %"$_origin_385", align 1 + %_sender = load [20 x i8], [20 x i8]* %"$_sender_386", align 1 + %"$gasrem_387" = load i64, i64* @_gasrem, align 8 + %"$gascmp_388" = icmp ugt i64 1, %"$gasrem_387" + br i1 %"$gascmp_388", label %"$out_of_gas_389", label %"$have_gas_390" + +"$out_of_gas_389": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_382" + br label %"$have_gas_390" -"$have_gas_382": ; preds = %"$out_of_gas_381", %entry - %"$consume_383" = sub i64 %"$gasrem_379", 1 - store i64 %"$consume_383", i64* @_gasrem, align 8 +"$have_gas_390": ; preds = %"$out_of_gas_389", %entry + %"$consume_391" = sub i64 %"$gasrem_387", 1 + store i64 %"$consume_391", i64* @_gasrem, align 8 %msg1 = alloca i8*, align 8 - %"$gasrem_384" = load i64, i64* @_gasrem, align 8 - %"$gascmp_385" = icmp ugt i64 1, %"$gasrem_384" - br i1 %"$gascmp_385", label %"$out_of_gas_386", label %"$have_gas_387" + call void @llvm.dbg.declare(metadata i8** %msg1, metadata !84, metadata !DIExpression()), !dbg !85 + %"$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_386": ; preds = %"$have_gas_382" +"$out_of_gas_394": ; preds = %"$have_gas_390" call void @_out_of_gas() - br label %"$have_gas_387" - -"$have_gas_387": ; preds = %"$out_of_gas_386", %"$have_gas_382" - %"$consume_388" = sub i64 %"$gasrem_384", 1 - store i64 %"$consume_388", i64* @_gasrem, align 8 - %"$msgobj_389_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$msgobj_389_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_389_salloc_load", i64 125) - %"$msgobj_389_salloc" = bitcast i8* %"$msgobj_389_salloc_salloc" to [125 x i8]* - %"$msgobj_389" = bitcast [125 x i8]* %"$msgobj_389_salloc" to i8* - store i8 3, i8* %"$msgobj_389", align 1 - %"$msgobj_fname_391" = getelementptr i8, i8* %"$msgobj_389", i32 1 - %"$msgobj_fname_392" = bitcast i8* %"$msgobj_fname_391" to %String* - store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_390", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_392", align 8 - %"$msgobj_td_393" = getelementptr i8, i8* %"$msgobj_389", i32 17 - %"$msgobj_td_394" = bitcast i8* %"$msgobj_td_393" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_String_25", %_TyDescrTy_Typ** %"$msgobj_td_394", align 8 - %"$msgobj_v_396" = getelementptr i8, i8* %"$msgobj_389", i32 25 - %"$msgobj_v_397" = bitcast i8* %"$msgobj_v_396" to %String* - store %String { i8* getelementptr inbounds ([0 x i8], [0 x i8]* @"$stringlit_395", i32 0, i32 0), i32 0 }, %String* %"$msgobj_v_397", align 8 - %"$msgobj_fname_399" = getelementptr i8, i8* %"$msgobj_389", i32 41 + br label %"$have_gas_395" + +"$have_gas_395": ; preds = %"$out_of_gas_394", %"$have_gas_390" + %"$consume_396" = sub i64 %"$gasrem_392", 1 + store i64 %"$consume_396", i64* @_gasrem, align 8 + %"$msgobj_397_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$msgobj_397_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_397_salloc_load", i64 125) + %"$msgobj_397_salloc" = bitcast i8* %"$msgobj_397_salloc_salloc" to [125 x i8]* + %"$msgobj_397" = bitcast [125 x i8]* %"$msgobj_397_salloc" to i8* + store i8 3, i8* %"$msgobj_397", align 1 + %"$msgobj_fname_399" = getelementptr i8, i8* %"$msgobj_397", i32 1 %"$msgobj_fname_400" = bitcast i8* %"$msgobj_fname_399" to %String* - store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_398", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_400", align 8 - %"$msgobj_td_401" = getelementptr i8, i8* %"$msgobj_389", i32 57 + store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_398", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_400", align 8 + %"$msgobj_td_401" = getelementptr i8, i8* %"$msgobj_397", i32 17 %"$msgobj_td_402" = bitcast i8* %"$msgobj_td_401" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_39", %_TyDescrTy_Typ** %"$msgobj_td_402", align 8 - %"$msgobj_v_403" = getelementptr i8, i8* %"$msgobj_389", i32 65 - %"$msgobj_v_404" = bitcast i8* %"$msgobj_v_403" to [20 x i8]* - store [20 x i8] %_sender, [20 x i8]* %"$msgobj_v_404", align 1 - %"$msgobj_fname_406" = getelementptr i8, i8* %"$msgobj_389", i32 85 - %"$msgobj_fname_407" = bitcast i8* %"$msgobj_fname_406" to %String* - store %String { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$stringlit_405", i32 0, i32 0), i32 7 }, %String* %"$msgobj_fname_407", align 8 - %"$msgobj_td_408" = getelementptr i8, i8* %"$msgobj_389", i32 101 - %"$msgobj_td_409" = bitcast i8* %"$msgobj_td_408" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Uint128_19", %_TyDescrTy_Typ** %"$msgobj_td_409", align 8 - %"$msgobj_v_410" = getelementptr i8, i8* %"$msgobj_389", i32 109 - %"$msgobj_v_411" = bitcast i8* %"$msgobj_v_410" to %Uint128* - store %Uint128 zeroinitializer, %Uint128* %"$msgobj_v_411", align 8 - store i8* %"$msgobj_389", i8** %msg1, align 8, !dbg !40 - %"$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_387" + store %_TyDescrTy_Typ* @"$TyDescr_String_25", %_TyDescrTy_Typ** %"$msgobj_td_402", align 8 + %"$msgobj_v_404" = getelementptr i8, i8* %"$msgobj_397", i32 25 + %"$msgobj_v_405" = bitcast i8* %"$msgobj_v_404" to %String* + store %String { i8* getelementptr inbounds ([0 x i8], [0 x i8]* @"$stringlit_403", i32 0, i32 0), i32 0 }, %String* %"$msgobj_v_405", align 8 + %"$msgobj_fname_407" = getelementptr i8, i8* %"$msgobj_397", i32 41 + %"$msgobj_fname_408" = bitcast i8* %"$msgobj_fname_407" to %String* + store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_406", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_408", align 8 + %"$msgobj_td_409" = getelementptr i8, i8* %"$msgobj_397", i32 57 + %"$msgobj_td_410" = bitcast i8* %"$msgobj_td_409" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_39", %_TyDescrTy_Typ** %"$msgobj_td_410", align 8 + %"$msgobj_v_411" = getelementptr i8, i8* %"$msgobj_397", i32 65 + %"$msgobj_v_412" = bitcast i8* %"$msgobj_v_411" to [20 x i8]* + store [20 x i8] %_sender, [20 x i8]* %"$msgobj_v_412", align 1 + %"$msgobj_fname_414" = getelementptr i8, i8* %"$msgobj_397", i32 85 + %"$msgobj_fname_415" = bitcast i8* %"$msgobj_fname_414" to %String* + store %String { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$stringlit_413", i32 0, i32 0), i32 7 }, %String* %"$msgobj_fname_415", align 8 + %"$msgobj_td_416" = getelementptr i8, i8* %"$msgobj_397", i32 101 + %"$msgobj_td_417" = bitcast i8* %"$msgobj_td_416" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Uint128_19", %_TyDescrTy_Typ** %"$msgobj_td_417", align 8 + %"$msgobj_v_418" = getelementptr i8, i8* %"$msgobj_397", i32 109 + %"$msgobj_v_419" = bitcast i8* %"$msgobj_v_418" to %Uint128* + store %Uint128 zeroinitializer, %Uint128* %"$msgobj_v_419", align 8 + store i8* %"$msgobj_397", i8** %msg1, align 8, !dbg !86 + %"$gasrem_421" = load i64, i64* @_gasrem, align 8 + %"$gascmp_422" = icmp ugt i64 1, %"$gasrem_421" + br i1 %"$gascmp_422", label %"$out_of_gas_423", label %"$have_gas_424" + +"$out_of_gas_423": ; preds = %"$have_gas_395" call void @_out_of_gas() - br label %"$have_gas_416" + br label %"$have_gas_424" -"$have_gas_416": ; preds = %"$out_of_gas_415", %"$have_gas_387" - %"$consume_417" = sub i64 %"$gasrem_413", 1 - store i64 %"$consume_417", i64* @_gasrem, align 8 +"$have_gas_424": ; preds = %"$out_of_gas_423", %"$have_gas_395" + %"$consume_425" = sub i64 %"$gasrem_421", 1 + store i64 %"$consume_425", i64* @_gasrem, align 8 %msg2 = alloca i8*, 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" + call void @llvm.dbg.declare(metadata i8** %msg2, metadata !87, metadata !DIExpression()), !dbg !88 + %"$gasrem_426" = load i64, i64* @_gasrem, align 8 + %"$gascmp_427" = icmp ugt i64 1, %"$gasrem_426" + br i1 %"$gascmp_427", label %"$out_of_gas_428", label %"$have_gas_429" -"$out_of_gas_420": ; preds = %"$have_gas_416" +"$out_of_gas_428": ; preds = %"$have_gas_424" 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 - %"$msgobj_423_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$msgobj_423_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_423_salloc_load", i64 125) - %"$msgobj_423_salloc" = bitcast i8* %"$msgobj_423_salloc_salloc" to [125 x i8]* - %"$msgobj_423" = bitcast [125 x i8]* %"$msgobj_423_salloc" to i8* - store i8 3, i8* %"$msgobj_423", align 1 - %"$msgobj_fname_425" = getelementptr i8, i8* %"$msgobj_423", i32 1 - %"$msgobj_fname_426" = bitcast i8* %"$msgobj_fname_425" to %String* - store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_424", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_426", align 8 - %"$msgobj_td_427" = getelementptr i8, i8* %"$msgobj_423", i32 17 - %"$msgobj_td_428" = bitcast i8* %"$msgobj_td_427" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_String_25", %_TyDescrTy_Typ** %"$msgobj_td_428", align 8 - %"$msgobj_v_430" = getelementptr i8, i8* %"$msgobj_423", i32 25 - %"$msgobj_v_431" = bitcast i8* %"$msgobj_v_430" to %String* - store %String { i8* getelementptr inbounds ([0 x i8], [0 x i8]* @"$stringlit_429", i32 0, i32 0), i32 0 }, %String* %"$msgobj_v_431", align 8 - %"$msgobj_fname_433" = getelementptr i8, i8* %"$msgobj_423", i32 41 + br label %"$have_gas_429" + +"$have_gas_429": ; preds = %"$out_of_gas_428", %"$have_gas_424" + %"$consume_430" = sub i64 %"$gasrem_426", 1 + store i64 %"$consume_430", i64* @_gasrem, align 8 + %"$msgobj_431_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$msgobj_431_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_431_salloc_load", i64 125) + %"$msgobj_431_salloc" = bitcast i8* %"$msgobj_431_salloc_salloc" to [125 x i8]* + %"$msgobj_431" = bitcast [125 x i8]* %"$msgobj_431_salloc" to i8* + store i8 3, i8* %"$msgobj_431", align 1 + %"$msgobj_fname_433" = getelementptr i8, i8* %"$msgobj_431", i32 1 %"$msgobj_fname_434" = bitcast i8* %"$msgobj_fname_433" to %String* - store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_432", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_434", align 8 - %"$msgobj_td_435" = getelementptr i8, i8* %"$msgobj_423", i32 57 + store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_432", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_434", align 8 + %"$msgobj_td_435" = getelementptr i8, i8* %"$msgobj_431", i32 17 %"$msgobj_td_436" = bitcast i8* %"$msgobj_td_435" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_39", %_TyDescrTy_Typ** %"$msgobj_td_436", align 8 - %"$msgobj_v_437" = getelementptr i8, i8* %"$msgobj_423", i32 65 - %"$msgobj_v_438" = bitcast i8* %"$msgobj_v_437" to [20 x i8]* - store [20 x i8] %_sender, [20 x i8]* %"$msgobj_v_438", align 1 - %"$msgobj_fname_440" = getelementptr i8, i8* %"$msgobj_423", i32 85 - %"$msgobj_fname_441" = bitcast i8* %"$msgobj_fname_440" to %String* - store %String { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$stringlit_439", i32 0, i32 0), i32 7 }, %String* %"$msgobj_fname_441", align 8 - %"$msgobj_td_442" = getelementptr i8, i8* %"$msgobj_423", i32 101 - %"$msgobj_td_443" = bitcast i8* %"$msgobj_td_442" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Uint128_19", %_TyDescrTy_Typ** %"$msgobj_td_443", align 8 - %"$msgobj_v_444" = getelementptr i8, i8* %"$msgobj_423", i32 109 - %"$msgobj_v_445" = bitcast i8* %"$msgobj_v_444" to %Uint128* - store %Uint128 zeroinitializer, %Uint128* %"$msgobj_v_445", align 8 - store i8* %"$msgobj_423", i8** %msg2, align 8, !dbg !41 - %"$gasrem_447" = load i64, i64* @_gasrem, align 8 - %"$gascmp_448" = icmp ugt i64 1, %"$gasrem_447" - br i1 %"$gascmp_448", label %"$out_of_gas_449", label %"$have_gas_450" - -"$out_of_gas_449": ; preds = %"$have_gas_421" + store %_TyDescrTy_Typ* @"$TyDescr_String_25", %_TyDescrTy_Typ** %"$msgobj_td_436", align 8 + %"$msgobj_v_438" = getelementptr i8, i8* %"$msgobj_431", i32 25 + %"$msgobj_v_439" = bitcast i8* %"$msgobj_v_438" to %String* + store %String { i8* getelementptr inbounds ([0 x i8], [0 x i8]* @"$stringlit_437", i32 0, i32 0), i32 0 }, %String* %"$msgobj_v_439", align 8 + %"$msgobj_fname_441" = getelementptr i8, i8* %"$msgobj_431", i32 41 + %"$msgobj_fname_442" = bitcast i8* %"$msgobj_fname_441" to %String* + store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_440", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_442", align 8 + %"$msgobj_td_443" = getelementptr i8, i8* %"$msgobj_431", i32 57 + %"$msgobj_td_444" = bitcast i8* %"$msgobj_td_443" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_39", %_TyDescrTy_Typ** %"$msgobj_td_444", align 8 + %"$msgobj_v_445" = getelementptr i8, i8* %"$msgobj_431", i32 65 + %"$msgobj_v_446" = bitcast i8* %"$msgobj_v_445" to [20 x i8]* + store [20 x i8] %_sender, [20 x i8]* %"$msgobj_v_446", align 1 + %"$msgobj_fname_448" = getelementptr i8, i8* %"$msgobj_431", i32 85 + %"$msgobj_fname_449" = bitcast i8* %"$msgobj_fname_448" to %String* + store %String { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$stringlit_447", i32 0, i32 0), i32 7 }, %String* %"$msgobj_fname_449", align 8 + %"$msgobj_td_450" = getelementptr i8, i8* %"$msgobj_431", i32 101 + %"$msgobj_td_451" = bitcast i8* %"$msgobj_td_450" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Uint128_19", %_TyDescrTy_Typ** %"$msgobj_td_451", align 8 + %"$msgobj_v_452" = getelementptr i8, i8* %"$msgobj_431", i32 109 + %"$msgobj_v_453" = bitcast i8* %"$msgobj_v_452" to %Uint128* + store %Uint128 zeroinitializer, %Uint128* %"$msgobj_v_453", align 8 + store i8* %"$msgobj_431", i8** %msg2, align 8, !dbg !89 + %"$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 = %"$have_gas_429" call void @_out_of_gas() - br label %"$have_gas_450" + br label %"$have_gas_458" -"$have_gas_450": ; preds = %"$out_of_gas_449", %"$have_gas_421" - %"$consume_451" = sub i64 %"$gasrem_447", 1 - store i64 %"$consume_451", i64* @_gasrem, align 8 +"$have_gas_458": ; preds = %"$out_of_gas_457", %"$have_gas_429" + %"$consume_459" = sub i64 %"$gasrem_455", 1 + store i64 %"$consume_459", i64* @_gasrem, align 8 %msgs1 = alloca %TName_List_Message*, align 8 - %"$gasrem_452" = load i64, i64* @_gasrem, align 8 - %"$gascmp_453" = icmp ugt i64 1, %"$gasrem_452" - br i1 %"$gascmp_453", label %"$out_of_gas_454", label %"$have_gas_455" + call void @llvm.dbg.declare(metadata %TName_List_Message** %msgs1, metadata !90, metadata !DIExpression()), !dbg !91 + %"$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_454": ; preds = %"$have_gas_450" +"$out_of_gas_462": ; preds = %"$have_gas_458" call void @_out_of_gas() - br label %"$have_gas_455" + br label %"$have_gas_463" -"$have_gas_455": ; preds = %"$out_of_gas_454", %"$have_gas_450" - %"$consume_456" = sub i64 %"$gasrem_452", 1 - store i64 %"$consume_456", 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 %"$helloWorld.one_msg_2" = alloca %TName_List_Message*, align 8 - %"$helloWorld.one_msg_457" = load { %TName_List_Message* (i8*, i8*)*, i8* }, { %TName_List_Message* (i8*, i8*)*, i8* }* @helloWorld.one_msg, align 8 - %"$helloWorld.one_msg_fptr_458" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$helloWorld.one_msg_457", 0 - %"$helloWorld.one_msg_envptr_459" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$helloWorld.one_msg_457", 1 - %"$msg1_460" = load i8*, i8** %msg1, align 8 - %"$helloWorld.one_msg_call_461" = call %TName_List_Message* %"$helloWorld.one_msg_fptr_458"(i8* %"$helloWorld.one_msg_envptr_459", i8* %"$msg1_460"), !dbg !42 - store %TName_List_Message* %"$helloWorld.one_msg_call_461", %TName_List_Message** %"$helloWorld.one_msg_2", align 8, !dbg !42 - %"$$helloWorld.one_msg_2_462" = load %TName_List_Message*, %TName_List_Message** %"$helloWorld.one_msg_2", align 8 - store %TName_List_Message* %"$$helloWorld.one_msg_2_462", %TName_List_Message** %msgs1, align 8, !dbg !42 - %"$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_455" + call void @llvm.dbg.declare(metadata %TName_List_Message** %"$helloWorld.one_msg_2", metadata !92, metadata !DIExpression()), !dbg !93 + %"$helloWorld.one_msg_465" = load { %TName_List_Message* (i8*, i8*)*, i8* }, { %TName_List_Message* (i8*, i8*)*, i8* }* @helloWorld.one_msg, align 8 + %"$helloWorld.one_msg_fptr_466" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$helloWorld.one_msg_465", 0 + %"$helloWorld.one_msg_envptr_467" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$helloWorld.one_msg_465", 1 + %"$msg1_468" = load i8*, i8** %msg1, align 8 + %"$helloWorld.one_msg_call_469" = call %TName_List_Message* %"$helloWorld.one_msg_fptr_466"(i8* %"$helloWorld.one_msg_envptr_467", i8* %"$msg1_468"), !dbg !93 + store %TName_List_Message* %"$helloWorld.one_msg_call_469", %TName_List_Message** %"$helloWorld.one_msg_2", align 8, !dbg !93 + %"$$helloWorld.one_msg_2_470" = load %TName_List_Message*, %TName_List_Message** %"$helloWorld.one_msg_2", align 8 + store %TName_List_Message* %"$$helloWorld.one_msg_2_470", %TName_List_Message** %msgs1, align 8, !dbg !93 + %"$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_463" call void @_out_of_gas() - br label %"$have_gas_466" + br label %"$have_gas_474" -"$have_gas_466": ; preds = %"$out_of_gas_465", %"$have_gas_455" - %"$consume_467" = sub i64 %"$gasrem_463", 1 - store i64 %"$consume_467", i64* @_gasrem, align 8 +"$have_gas_474": ; preds = %"$out_of_gas_473", %"$have_gas_463" + %"$consume_475" = sub i64 %"$gasrem_471", 1 + store i64 %"$consume_475", i64* @_gasrem, align 8 %msgs2 = alloca %TName_List_Message*, 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" + call void @llvm.dbg.declare(metadata %TName_List_Message** %msgs2, metadata !94, metadata !DIExpression()), !dbg !95 + %"$gasrem_476" = load i64, i64* @_gasrem, align 8 + %"$gascmp_477" = icmp ugt i64 1, %"$gasrem_476" + br i1 %"$gascmp_477", label %"$out_of_gas_478", label %"$have_gas_479" -"$out_of_gas_470": ; preds = %"$have_gas_466" +"$out_of_gas_478": ; preds = %"$have_gas_474" call void @_out_of_gas() - br label %"$have_gas_471" - -"$have_gas_471": ; preds = %"$out_of_gas_470", %"$have_gas_466" - %"$consume_472" = sub i64 %"$gasrem_468", 1 - store i64 %"$consume_472", i64* @_gasrem, align 8 - %"$msg2_473" = load i8*, i8** %msg2, align 8 - %"$msgs1_474" = load %TName_List_Message*, %TName_List_Message** %msgs1, align 8 - %"$adtval_475_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_475_salloc" = call i8* @_salloc(i8* %"$adtval_475_load", i64 17) - %"$adtval_475" = bitcast i8* %"$adtval_475_salloc" to %CName_Cons_Message* - %"$adtgep_476" = getelementptr inbounds %CName_Cons_Message, %CName_Cons_Message* %"$adtval_475", i32 0, i32 0 - store i8 0, i8* %"$adtgep_476", align 1 - %"$adtgep_477" = getelementptr inbounds %CName_Cons_Message, %CName_Cons_Message* %"$adtval_475", i32 0, i32 1 - store i8* %"$msg2_473", i8** %"$adtgep_477", align 8 - %"$adtgep_478" = getelementptr inbounds %CName_Cons_Message, %CName_Cons_Message* %"$adtval_475", i32 0, i32 2 - store %TName_List_Message* %"$msgs1_474", %TName_List_Message** %"$adtgep_478", align 8 - %"$adtptr_479" = bitcast %CName_Cons_Message* %"$adtval_475" to %TName_List_Message* - store %TName_List_Message* %"$adtptr_479", %TName_List_Message** %msgs2, align 8, !dbg !43 - %"$msgs2_480" = load %TName_List_Message*, %TName_List_Message** %msgs2, align 8 - %"$$msgs2_480_481" = bitcast %TName_List_Message* %"$msgs2_480" to i8* - %"$_literal_cost_call_482" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_46", i8* %"$$msgs2_480_481") - %"$gasrem_483" = load i64, i64* @_gasrem, align 8 - %"$gascmp_484" = icmp ugt i64 %"$_literal_cost_call_482", %"$gasrem_483" - br i1 %"$gascmp_484", label %"$out_of_gas_485", label %"$have_gas_486" - -"$out_of_gas_485": ; preds = %"$have_gas_471" + br label %"$have_gas_479" + +"$have_gas_479": ; preds = %"$out_of_gas_478", %"$have_gas_474" + %"$consume_480" = sub i64 %"$gasrem_476", 1 + store i64 %"$consume_480", i64* @_gasrem, align 8 + %"$msg2_481" = load i8*, i8** %msg2, align 8 + %"$msgs1_482" = load %TName_List_Message*, %TName_List_Message** %msgs1, align 8 + %"$adtval_483_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_483_salloc" = call i8* @_salloc(i8* %"$adtval_483_load", i64 17) + %"$adtval_483" = bitcast i8* %"$adtval_483_salloc" to %CName_Cons_Message* + %"$adtgep_484" = getelementptr inbounds %CName_Cons_Message, %CName_Cons_Message* %"$adtval_483", i32 0, i32 0 + store i8 0, i8* %"$adtgep_484", align 1 + %"$adtgep_485" = getelementptr inbounds %CName_Cons_Message, %CName_Cons_Message* %"$adtval_483", i32 0, i32 1 + store i8* %"$msg2_481", i8** %"$adtgep_485", align 8 + %"$adtgep_486" = getelementptr inbounds %CName_Cons_Message, %CName_Cons_Message* %"$adtval_483", i32 0, i32 2 + store %TName_List_Message* %"$msgs1_482", %TName_List_Message** %"$adtgep_486", align 8 + %"$adtptr_487" = bitcast %CName_Cons_Message* %"$adtval_483" to %TName_List_Message* + store %TName_List_Message* %"$adtptr_487", %TName_List_Message** %msgs2, align 8, !dbg !96 + %"$msgs2_488" = load %TName_List_Message*, %TName_List_Message** %msgs2, align 8 + %"$$msgs2_488_489" = bitcast %TName_List_Message* %"$msgs2_488" to i8* + %"$_literal_cost_call_490" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_46", i8* %"$$msgs2_488_489") + %"$gasrem_491" = load i64, i64* @_gasrem, align 8 + %"$gascmp_492" = icmp ugt i64 %"$_literal_cost_call_490", %"$gasrem_491" + br i1 %"$gascmp_492", label %"$out_of_gas_493", label %"$have_gas_494" + +"$out_of_gas_493": ; preds = %"$have_gas_479" call void @_out_of_gas() - br label %"$have_gas_486" - -"$have_gas_486": ; preds = %"$out_of_gas_485", %"$have_gas_471" - %"$consume_487" = sub i64 %"$gasrem_483", %"$_literal_cost_call_482" - store i64 %"$consume_487", i64* @_gasrem, align 8 - %"$execptr_load_488" = load i8*, i8** @_execptr, align 8 - %"$msgs2_489" = load %TName_List_Message*, %TName_List_Message** %msgs2, align 8 - call void @_send(i8* %"$execptr_load_488", %_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_46", %TName_List_Message* %"$msgs2_489"), !dbg !44 + br label %"$have_gas_494" + +"$have_gas_494": ; preds = %"$out_of_gas_493", %"$have_gas_479" + %"$consume_495" = sub i64 %"$gasrem_491", %"$_literal_cost_call_490" + store i64 %"$consume_495", i64* @_gasrem, align 8 + %"$execptr_load_496" = load i8*, i8** @_execptr, align 8 + %"$msgs2_497" = load %TName_List_Message*, %TName_List_Message** %msgs2, align 8 + call void @_send(i8* %"$execptr_load_496", %_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_46", %TName_List_Message* %"$msgs2_497"), !dbg !97 ret void } declare void @_send(i8*, %_TyDescrTy_Typ*, %TName_List_Message*) -define void @multipleMsgs(i8* %0) !dbg !45 { +define void @multipleMsgs(i8* %0) !dbg !98 { entry: - %"$_amount_491" = getelementptr i8, i8* %0, i32 0 - %"$_amount_492" = bitcast i8* %"$_amount_491" to %Uint128* - %_amount = load %Uint128, %Uint128* %"$_amount_492", align 8 - %"$_origin_493" = getelementptr i8, i8* %0, i32 16 - %"$_origin_494" = bitcast i8* %"$_origin_493" to [20 x i8]* - %"$_sender_495" = getelementptr i8, i8* %0, i32 36 - %"$_sender_496" = bitcast i8* %"$_sender_495" to [20 x i8]* - call void @"$multipleMsgs_376"(%Uint128 %_amount, [20 x i8]* %"$_origin_494", [20 x i8]* %"$_sender_496"), !dbg !46 + %"$_amount_502" = getelementptr i8, i8* %0, i32 0 + %"$_amount_503" = bitcast i8* %"$_amount_502" to %Uint128* + %_amount = load %Uint128, %Uint128* %"$_amount_503", align 8 + %"$_origin_504" = getelementptr i8, i8* %0, i32 16 + %"$_origin_505" = bitcast i8* %"$_origin_504" to [20 x i8]* + %"$_sender_506" = getelementptr i8, i8* %0, i32 36 + %"$_sender_507" = bitcast i8* %"$_sender_506" to [20 x i8]* + call void @"$multipleMsgs_384"(%Uint128 %_amount, [20 x i8]* %"$_origin_505", [20 x i8]* %"$_sender_507"), !dbg !99 ret void } -define internal void @"$contrAddr_497"(%Uint128 %_amount, [20 x i8]* %"$_origin_498", [20 x i8]* %"$_sender_499") !dbg !47 { +define internal void @"$contrAddr_508"(%Uint128 %_amount, [20 x i8]* %"$_origin_509", [20 x i8]* %"$_sender_510") !dbg !100 { entry: - %_origin = load [20 x i8], [20 x i8]* %"$_origin_498", align 1 - %_sender = load [20 x i8], [20 x i8]* %"$_sender_499", align 1 - %"$gasrem_500" = load i64, i64* @_gasrem, align 8 - %"$gascmp_501" = icmp ugt i64 1, %"$gasrem_500" - br i1 %"$gascmp_501", label %"$out_of_gas_502", label %"$have_gas_503" - -"$out_of_gas_502": ; preds = %entry + %"$_sender_551" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_sender_510", [20 x i8]** %"$_sender_551", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_sender_551", metadata !101, metadata !DIExpression()), !dbg !102 + %"$_origin_550" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_origin_509", [20 x i8]** %"$_origin_550", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_origin_550", metadata !103, metadata !DIExpression()), !dbg !102 + %"$_amount_549" = alloca %Uint128, align 8 + store %Uint128 %_amount, %Uint128* %"$_amount_549", align 8 + call void @llvm.dbg.declare(metadata %Uint128* %"$_amount_549", metadata !104, metadata !DIExpression()), !dbg !102 + %_origin = load [20 x i8], [20 x i8]* %"$_origin_509", align 1 + %_sender = load [20 x i8], [20 x i8]* %"$_sender_510", 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 = %entry call void @_out_of_gas() - br label %"$have_gas_503" + br label %"$have_gas_514" -"$have_gas_503": ; preds = %"$out_of_gas_502", %entry - %"$consume_504" = sub i64 %"$gasrem_500", 1 - store i64 %"$consume_504", i64* @_gasrem, align 8 +"$have_gas_514": ; preds = %"$out_of_gas_513", %entry + %"$consume_515" = sub i64 %"$gasrem_511", 1 + store i64 %"$consume_515", i64* @_gasrem, align 8 %msg1 = alloca i8*, align 8 - %"$gasrem_505" = load i64, i64* @_gasrem, align 8 - %"$gascmp_506" = icmp ugt i64 1, %"$gasrem_505" - br i1 %"$gascmp_506", label %"$out_of_gas_507", label %"$have_gas_508" + call void @llvm.dbg.declare(metadata i8** %msg1, metadata !105, metadata !DIExpression()), !dbg !106 + %"$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" -"$out_of_gas_507": ; preds = %"$have_gas_503" +"$out_of_gas_518": ; preds = %"$have_gas_514" call void @_out_of_gas() - br label %"$have_gas_508" - -"$have_gas_508": ; preds = %"$out_of_gas_507", %"$have_gas_503" - %"$consume_509" = sub i64 %"$gasrem_505", 1 - store i64 %"$consume_509", i64* @_gasrem, align 8 - %"$msgobj_510_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$msgobj_510_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_510_salloc_load", i64 85) - %"$msgobj_510_salloc" = bitcast i8* %"$msgobj_510_salloc_salloc" to [85 x i8]* - %"$msgobj_510" = bitcast [85 x i8]* %"$msgobj_510_salloc" to i8* - store i8 2, i8* %"$msgobj_510", align 1 - %"$msgobj_fname_512" = getelementptr i8, i8* %"$msgobj_510", i32 1 - %"$msgobj_fname_513" = bitcast i8* %"$msgobj_fname_512" to %String* - store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_511", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_513", align 8 - %"$msgobj_td_514" = getelementptr i8, i8* %"$msgobj_510", i32 17 - %"$msgobj_td_515" = bitcast i8* %"$msgobj_td_514" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_String_25", %_TyDescrTy_Typ** %"$msgobj_td_515", align 8 - %"$msgobj_v_517" = getelementptr i8, i8* %"$msgobj_510", i32 25 - %"$msgobj_v_518" = bitcast i8* %"$msgobj_v_517" to %String* - store %String { i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$stringlit_516", i32 0, i32 0), i32 15 }, %String* %"$msgobj_v_518", align 8 - %"$msgobj_fname_520" = getelementptr i8, i8* %"$msgobj_510", i32 41 - %"$msgobj_fname_521" = bitcast i8* %"$msgobj_fname_520" to %String* - store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_519", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_521", align 8 - %"$msgobj_td_522" = getelementptr i8, i8* %"$msgobj_510", i32 57 - %"$msgobj_td_523" = bitcast i8* %"$msgobj_td_522" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_39", %_TyDescrTy_Typ** %"$msgobj_td_523", align 8 - %"$_this_address_524" = load [20 x i8], [20 x i8]* @_cparam__this_address, align 1 - %"$msgobj_v_525" = getelementptr i8, i8* %"$msgobj_510", i32 65 - %"$msgobj_v_526" = bitcast i8* %"$msgobj_v_525" to [20 x i8]* - store [20 x i8] %"$_this_address_524", [20 x i8]* %"$msgobj_v_526", align 1 - store i8* %"$msgobj_510", i8** %msg1, align 8, !dbg !48 - %"$msg1_528" = load i8*, i8** %msg1, align 8 - %"$_literal_cost_call_530" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Event_31", i8* %"$msg1_528") - %"$gasrem_531" = load i64, i64* @_gasrem, align 8 - %"$gascmp_532" = icmp ugt i64 %"$_literal_cost_call_530", %"$gasrem_531" - br i1 %"$gascmp_532", label %"$out_of_gas_533", label %"$have_gas_534" - -"$out_of_gas_533": ; preds = %"$have_gas_508" + br label %"$have_gas_519" + +"$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 + %"$msgobj_521_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$msgobj_521_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_521_salloc_load", i64 85) + %"$msgobj_521_salloc" = bitcast i8* %"$msgobj_521_salloc_salloc" to [85 x i8]* + %"$msgobj_521" = bitcast [85 x i8]* %"$msgobj_521_salloc" to i8* + store i8 2, i8* %"$msgobj_521", align 1 + %"$msgobj_fname_523" = getelementptr i8, i8* %"$msgobj_521", i32 1 + %"$msgobj_fname_524" = bitcast i8* %"$msgobj_fname_523" to %String* + store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_522", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_524", align 8 + %"$msgobj_td_525" = getelementptr i8, i8* %"$msgobj_521", i32 17 + %"$msgobj_td_526" = bitcast i8* %"$msgobj_td_525" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_String_25", %_TyDescrTy_Typ** %"$msgobj_td_526", align 8 + %"$msgobj_v_528" = getelementptr i8, i8* %"$msgobj_521", i32 25 + %"$msgobj_v_529" = bitcast i8* %"$msgobj_v_528" to %String* + store %String { i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$stringlit_527", i32 0, i32 0), i32 15 }, %String* %"$msgobj_v_529", align 8 + %"$msgobj_fname_531" = getelementptr i8, i8* %"$msgobj_521", i32 41 + %"$msgobj_fname_532" = bitcast i8* %"$msgobj_fname_531" to %String* + store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_530", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_532", align 8 + %"$msgobj_td_533" = getelementptr i8, i8* %"$msgobj_521", i32 57 + %"$msgobj_td_534" = bitcast i8* %"$msgobj_td_533" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_39", %_TyDescrTy_Typ** %"$msgobj_td_534", align 8 + %"$_this_address_535" = load [20 x i8], [20 x i8]* @_cparam__this_address, align 1 + %"$msgobj_v_536" = getelementptr i8, i8* %"$msgobj_521", i32 65 + %"$msgobj_v_537" = bitcast i8* %"$msgobj_v_536" to [20 x i8]* + store [20 x i8] %"$_this_address_535", [20 x i8]* %"$msgobj_v_537", align 1 + store i8* %"$msgobj_521", i8** %msg1, align 8, !dbg !107 + %"$msg1_539" = load i8*, i8** %msg1, align 8 + %"$_literal_cost_call_541" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Event_31", i8* %"$msg1_539") + %"$gasrem_542" = load i64, i64* @_gasrem, align 8 + %"$gascmp_543" = icmp ugt i64 %"$_literal_cost_call_541", %"$gasrem_542" + br i1 %"$gascmp_543", label %"$out_of_gas_544", label %"$have_gas_545" + +"$out_of_gas_544": ; preds = %"$have_gas_519" call void @_out_of_gas() - br label %"$have_gas_534" - -"$have_gas_534": ; preds = %"$out_of_gas_533", %"$have_gas_508" - %"$consume_535" = sub i64 %"$gasrem_531", %"$_literal_cost_call_530" - store i64 %"$consume_535", i64* @_gasrem, align 8 - %"$execptr_load_536" = load i8*, i8** @_execptr, align 8 - %"$msg1_537" = load i8*, i8** %msg1, align 8 - call void @_event(i8* %"$execptr_load_536", %_TyDescrTy_Typ* @"$TyDescr_Event_31", i8* %"$msg1_537"), !dbg !49 + br label %"$have_gas_545" + +"$have_gas_545": ; preds = %"$out_of_gas_544", %"$have_gas_519" + %"$consume_546" = sub i64 %"$gasrem_542", %"$_literal_cost_call_541" + store i64 %"$consume_546", i64* @_gasrem, align 8 + %"$execptr_load_547" = load i8*, i8** @_execptr, align 8 + %"$msg1_548" = load i8*, i8** %msg1, align 8 + call void @_event(i8* %"$execptr_load_547", %_TyDescrTy_Typ* @"$TyDescr_Event_31", i8* %"$msg1_548"), !dbg !108 ret void } -define void @contrAddr(i8* %0) !dbg !50 { +define void @contrAddr(i8* %0) !dbg !109 { entry: - %"$_amount_539" = getelementptr i8, i8* %0, i32 0 - %"$_amount_540" = bitcast i8* %"$_amount_539" to %Uint128* - %_amount = load %Uint128, %Uint128* %"$_amount_540", align 8 - %"$_origin_541" = getelementptr i8, i8* %0, i32 16 - %"$_origin_542" = bitcast i8* %"$_origin_541" to [20 x i8]* - %"$_sender_543" = getelementptr i8, i8* %0, i32 36 - %"$_sender_544" = bitcast i8* %"$_sender_543" to [20 x i8]* - call void @"$contrAddr_497"(%Uint128 %_amount, [20 x i8]* %"$_origin_542", [20 x i8]* %"$_sender_544"), !dbg !51 + %"$_amount_553" = getelementptr i8, i8* %0, i32 0 + %"$_amount_554" = bitcast i8* %"$_amount_553" to %Uint128* + %_amount = load %Uint128, %Uint128* %"$_amount_554", align 8 + %"$_origin_555" = getelementptr i8, i8* %0, i32 16 + %"$_origin_556" = bitcast i8* %"$_origin_555" to [20 x i8]* + %"$_sender_557" = getelementptr i8, i8* %0, i32 36 + %"$_sender_558" = bitcast i8* %"$_sender_557" to [20 x i8]* + call void @"$contrAddr_508"(%Uint128 %_amount, [20 x i8]* %"$_origin_556", [20 x i8]* %"$_sender_558"), !dbg !110 ret void } -define internal void @"$printContrParams_545"(%Uint128 %_amount, [20 x i8]* %"$_origin_546", [20 x i8]* %"$_sender_547") !dbg !52 { +define internal void @"$printContrParams_559"(%Uint128 %_amount, [20 x i8]* %"$_origin_560", [20 x i8]* %"$_sender_561") !dbg !111 { entry: - %_origin = load [20 x i8], [20 x i8]* %"$_origin_546", align 1 - %_sender = load [20 x i8], [20 x i8]* %"$_sender_547", align 1 - %"$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 = %entry + %"$_sender_650" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_sender_561", [20 x i8]** %"$_sender_650", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_sender_650", metadata !112, metadata !DIExpression()), !dbg !113 + %"$_origin_649" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_origin_560", [20 x i8]** %"$_origin_649", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_origin_649", metadata !114, metadata !DIExpression()), !dbg !113 + %"$_amount_648" = alloca %Uint128, align 8 + store %Uint128 %_amount, %Uint128* %"$_amount_648", align 8 + call void @llvm.dbg.declare(metadata %Uint128* %"$_amount_648", metadata !115, metadata !DIExpression()), !dbg !113 + %_origin = load [20 x i8], [20 x i8]* %"$_origin_560", align 1 + %_sender = load [20 x i8], [20 x i8]* %"$_sender_561", align 1 + %"$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_564": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_551" + br label %"$have_gas_565" -"$have_gas_551": ; preds = %"$out_of_gas_550", %entry - %"$consume_552" = sub i64 %"$gasrem_548", 1 - store i64 %"$consume_552", i64* @_gasrem, align 8 +"$have_gas_565": ; preds = %"$out_of_gas_564", %entry + %"$consume_566" = sub i64 %"$gasrem_562", 1 + store i64 %"$consume_566", i64* @_gasrem, align 8 %e = alloca i8*, 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" + call void @llvm.dbg.declare(metadata i8** %e, metadata !116, metadata !DIExpression()), !dbg !117 + %"$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_555": ; preds = %"$have_gas_551" +"$out_of_gas_569": ; preds = %"$have_gas_565" 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 - %"$msgobj_558_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$msgobj_558_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_558_salloc_load", i64 313) - %"$msgobj_558_salloc" = bitcast i8* %"$msgobj_558_salloc_salloc" to [313 x i8]* - %"$msgobj_558" = bitcast [313 x i8]* %"$msgobj_558_salloc" to i8* - store i8 8, i8* %"$msgobj_558", align 1 - %"$msgobj_fname_560" = getelementptr i8, i8* %"$msgobj_558", i32 1 - %"$msgobj_fname_561" = bitcast i8* %"$msgobj_fname_560" to %String* - store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_559", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_561", align 8 - %"$msgobj_td_562" = getelementptr i8, i8* %"$msgobj_558", i32 17 - %"$msgobj_td_563" = bitcast i8* %"$msgobj_td_562" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_String_25", %_TyDescrTy_Typ** %"$msgobj_td_563", align 8 - %"$msgobj_v_565" = getelementptr i8, i8* %"$msgobj_558", i32 25 - %"$msgobj_v_566" = bitcast i8* %"$msgobj_v_565" to %String* - store %String { i8* getelementptr inbounds ([14 x i8], [14 x i8]* @"$stringlit_564", i32 0, i32 0), i32 14 }, %String* %"$msgobj_v_566", align 8 - %"$msgobj_fname_568" = getelementptr i8, i8* %"$msgobj_558", i32 41 - %"$msgobj_fname_569" = bitcast i8* %"$msgobj_fname_568" to %String* - store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_567", i32 0, i32 0), i32 5 }, %String* %"$msgobj_fname_569", align 8 - %"$msgobj_td_570" = getelementptr i8, i8* %"$msgobj_558", i32 57 - %"$msgobj_td_571" = bitcast i8* %"$msgobj_td_570" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_39", %_TyDescrTy_Typ** %"$msgobj_td_571", align 8 - %"$owner_572" = load [20 x i8], [20 x i8]* @_cparam_owner, align 1 - %"$msgobj_v_573" = getelementptr i8, i8* %"$msgobj_558", i32 65 - %"$msgobj_v_574" = bitcast i8* %"$msgobj_v_573" to [20 x i8]* - store [20 x i8] %"$owner_572", [20 x i8]* %"$msgobj_v_574", align 1 - %"$msgobj_fname_576" = getelementptr i8, i8* %"$msgobj_558", i32 85 - %"$msgobj_fname_577" = bitcast i8* %"$msgobj_fname_576" to %String* - store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_575", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_577", align 8 - %"$msgobj_td_578" = getelementptr i8, i8* %"$msgobj_558", i32 101 - %"$msgobj_td_579" = bitcast i8* %"$msgobj_td_578" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_String_25", %_TyDescrTy_Typ** %"$msgobj_td_579", align 8 - %"$name_580" = load %String, %String* @_cparam_name, align 8 - %"$msgobj_v_581" = getelementptr i8, i8* %"$msgobj_558", i32 109 - %"$msgobj_v_582" = bitcast i8* %"$msgobj_v_581" to %String* - store %String %"$name_580", %String* %"$msgobj_v_582", align 8 - %"$msgobj_fname_584" = getelementptr i8, i8* %"$msgobj_558", i32 125 - %"$msgobj_fname_585" = bitcast i8* %"$msgobj_fname_584" to %String* - store %String { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$stringlit_583", i32 0, i32 0), i32 7 }, %String* %"$msgobj_fname_585", align 8 - %"$msgobj_td_586" = getelementptr i8, i8* %"$msgobj_558", i32 141 - %"$msgobj_td_587" = bitcast i8* %"$msgobj_td_586" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Uint256_23", %_TyDescrTy_Typ** %"$msgobj_td_587", align 8 - %"$uint256_588" = load %Uint256, %Uint256* @_cparam_uint256, align 8 - %"$msgobj_v_589" = getelementptr i8, i8* %"$msgobj_558", i32 149 - %"$msgobj_v_590" = bitcast i8* %"$msgobj_v_589" to %Uint256* - store %Uint256 %"$uint256_588", %Uint256* %"$msgobj_v_590", align 8 - %"$msgobj_fname_592" = getelementptr i8, i8* %"$msgobj_558", i32 181 - %"$msgobj_fname_593" = bitcast i8* %"$msgobj_fname_592" to %String* - store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_591", i32 0, i32 0), i32 5 }, %String* %"$msgobj_fname_593", align 8 - %"$msgobj_td_594" = getelementptr i8, i8* %"$msgobj_558", i32 197 - %"$msgobj_td_595" = bitcast i8* %"$msgobj_td_594" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Int32_9", %_TyDescrTy_Typ** %"$msgobj_td_595", align 8 - %"$int32_596" = load %Int32, %Int32* @_cparam_int32, align 4 - %"$msgobj_v_597" = getelementptr i8, i8* %"$msgobj_558", i32 205 - %"$msgobj_v_598" = bitcast i8* %"$msgobj_v_597" to %Int32* - store %Int32 %"$int32_596", %Int32* %"$msgobj_v_598", align 4 - %"$msgobj_fname_600" = getelementptr i8, i8* %"$msgobj_558", i32 209 - %"$msgobj_fname_601" = bitcast i8* %"$msgobj_fname_600" to %String* - store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_599", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_601", align 8 - %"$msgobj_td_602" = getelementptr i8, i8* %"$msgobj_558", i32 225 - %"$msgobj_td_603" = bitcast i8* %"$msgobj_td_602" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Bystr_37", %_TyDescrTy_Typ** %"$msgobj_td_603", align 8 - %"$bstr_604" = load %Bystr, %Bystr* @_cparam_bstr, align 8 - %"$msgobj_v_605" = getelementptr i8, i8* %"$msgobj_558", i32 233 - %"$msgobj_v_606" = bitcast i8* %"$msgobj_v_605" to %Bystr* - store %Bystr %"$bstr_604", %Bystr* %"$msgobj_v_606", align 8 - %"$msgobj_fname_608" = getelementptr i8, i8* %"$msgobj_558", i32 249 - %"$msgobj_fname_609" = bitcast i8* %"$msgobj_fname_608" to %String* - store %String { i8* getelementptr inbounds ([9 x i8], [9 x i8]* @"$stringlit_607", i32 0, i32 0), i32 9 }, %String* %"$msgobj_fname_609", align 8 - %"$msgobj_td_610" = getelementptr i8, i8* %"$msgobj_558", i32 265 - %"$msgobj_td_611" = bitcast i8* %"$msgobj_td_610" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_ADT_List_String_45", %_TyDescrTy_Typ** %"$msgobj_td_611", align 8 - %"$all_names_612" = load %TName_List_String*, %TName_List_String** @_cparam_all_names, align 8 - %"$msgobj_v_613" = getelementptr i8, i8* %"$msgobj_558", i32 273 - %"$msgobj_v_614" = bitcast i8* %"$msgobj_v_613" to %TName_List_String** - store %TName_List_String* %"$all_names_612", %TName_List_String** %"$msgobj_v_614", align 8 - %"$msgobj_fname_616" = getelementptr i8, i8* %"$msgobj_558", i32 281 - %"$msgobj_fname_617" = bitcast i8* %"$msgobj_fname_616" to %String* - store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_615", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_617", align 8 - %"$msgobj_td_618" = getelementptr i8, i8* %"$msgobj_558", i32 297 - %"$msgobj_td_619" = bitcast i8* %"$msgobj_td_618" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_ADT_Pair_Int128_String_44", %_TyDescrTy_Typ** %"$msgobj_td_619", align 8 - %"$pear_620" = load %TName_Pair_Int128_String*, %TName_Pair_Int128_String** @_cparam_pear, align 8 - %"$msgobj_v_621" = getelementptr i8, i8* %"$msgobj_558", i32 305 - %"$msgobj_v_622" = bitcast i8* %"$msgobj_v_621" to %TName_Pair_Int128_String** - store %TName_Pair_Int128_String* %"$pear_620", %TName_Pair_Int128_String** %"$msgobj_v_622", align 8 - store i8* %"$msgobj_558", i8** %e, align 8, !dbg !53 - %"$e_624" = load i8*, i8** %e, align 8 - %"$_literal_cost_call_626" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Event_31", i8* %"$e_624") - %"$gasrem_627" = load i64, i64* @_gasrem, align 8 - %"$gascmp_628" = icmp ugt i64 %"$_literal_cost_call_626", %"$gasrem_627" - br i1 %"$gascmp_628", label %"$out_of_gas_629", label %"$have_gas_630" - -"$out_of_gas_629": ; preds = %"$have_gas_556" + 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 + %"$msgobj_572_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$msgobj_572_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_572_salloc_load", i64 313) + %"$msgobj_572_salloc" = bitcast i8* %"$msgobj_572_salloc_salloc" to [313 x i8]* + %"$msgobj_572" = bitcast [313 x i8]* %"$msgobj_572_salloc" to i8* + store i8 8, i8* %"$msgobj_572", align 1 + %"$msgobj_fname_574" = getelementptr i8, i8* %"$msgobj_572", i32 1 + %"$msgobj_fname_575" = bitcast i8* %"$msgobj_fname_574" to %String* + store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_573", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_575", align 8 + %"$msgobj_td_576" = getelementptr i8, i8* %"$msgobj_572", i32 17 + %"$msgobj_td_577" = bitcast i8* %"$msgobj_td_576" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_String_25", %_TyDescrTy_Typ** %"$msgobj_td_577", align 8 + %"$msgobj_v_579" = getelementptr i8, i8* %"$msgobj_572", i32 25 + %"$msgobj_v_580" = bitcast i8* %"$msgobj_v_579" to %String* + store %String { i8* getelementptr inbounds ([14 x i8], [14 x i8]* @"$stringlit_578", i32 0, i32 0), i32 14 }, %String* %"$msgobj_v_580", align 8 + %"$msgobj_fname_582" = getelementptr i8, i8* %"$msgobj_572", i32 41 + %"$msgobj_fname_583" = bitcast i8* %"$msgobj_fname_582" to %String* + store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_581", i32 0, i32 0), i32 5 }, %String* %"$msgobj_fname_583", align 8 + %"$msgobj_td_584" = getelementptr i8, i8* %"$msgobj_572", i32 57 + %"$msgobj_td_585" = bitcast i8* %"$msgobj_td_584" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_39", %_TyDescrTy_Typ** %"$msgobj_td_585", align 8 + %"$owner_586" = load [20 x i8], [20 x i8]* @_cparam_owner, align 1 + %"$msgobj_v_587" = getelementptr i8, i8* %"$msgobj_572", i32 65 + %"$msgobj_v_588" = bitcast i8* %"$msgobj_v_587" to [20 x i8]* + store [20 x i8] %"$owner_586", [20 x i8]* %"$msgobj_v_588", align 1 + %"$msgobj_fname_590" = getelementptr i8, i8* %"$msgobj_572", i32 85 + %"$msgobj_fname_591" = bitcast i8* %"$msgobj_fname_590" to %String* + store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_589", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_591", align 8 + %"$msgobj_td_592" = getelementptr i8, i8* %"$msgobj_572", i32 101 + %"$msgobj_td_593" = bitcast i8* %"$msgobj_td_592" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_String_25", %_TyDescrTy_Typ** %"$msgobj_td_593", align 8 + %"$name_594" = load %String, %String* @_cparam_name, align 8 + %"$msgobj_v_595" = getelementptr i8, i8* %"$msgobj_572", i32 109 + %"$msgobj_v_596" = bitcast i8* %"$msgobj_v_595" to %String* + store %String %"$name_594", %String* %"$msgobj_v_596", align 8 + %"$msgobj_fname_598" = getelementptr i8, i8* %"$msgobj_572", i32 125 + %"$msgobj_fname_599" = bitcast i8* %"$msgobj_fname_598" to %String* + store %String { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$stringlit_597", i32 0, i32 0), i32 7 }, %String* %"$msgobj_fname_599", align 8 + %"$msgobj_td_600" = getelementptr i8, i8* %"$msgobj_572", i32 141 + %"$msgobj_td_601" = bitcast i8* %"$msgobj_td_600" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Uint256_23", %_TyDescrTy_Typ** %"$msgobj_td_601", align 8 + %"$uint256_602" = load %Uint256, %Uint256* @_cparam_uint256, align 8 + %"$msgobj_v_603" = getelementptr i8, i8* %"$msgobj_572", i32 149 + %"$msgobj_v_604" = bitcast i8* %"$msgobj_v_603" to %Uint256* + store %Uint256 %"$uint256_602", %Uint256* %"$msgobj_v_604", align 8 + %"$msgobj_fname_606" = getelementptr i8, i8* %"$msgobj_572", i32 181 + %"$msgobj_fname_607" = bitcast i8* %"$msgobj_fname_606" to %String* + store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_605", i32 0, i32 0), i32 5 }, %String* %"$msgobj_fname_607", align 8 + %"$msgobj_td_608" = getelementptr i8, i8* %"$msgobj_572", i32 197 + %"$msgobj_td_609" = bitcast i8* %"$msgobj_td_608" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Int32_9", %_TyDescrTy_Typ** %"$msgobj_td_609", align 8 + %"$int32_610" = load %Int32, %Int32* @_cparam_int32, align 4 + %"$msgobj_v_611" = getelementptr i8, i8* %"$msgobj_572", i32 205 + %"$msgobj_v_612" = bitcast i8* %"$msgobj_v_611" to %Int32* + store %Int32 %"$int32_610", %Int32* %"$msgobj_v_612", align 4 + %"$msgobj_fname_614" = getelementptr i8, i8* %"$msgobj_572", i32 209 + %"$msgobj_fname_615" = bitcast i8* %"$msgobj_fname_614" to %String* + store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_613", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_615", align 8 + %"$msgobj_td_616" = getelementptr i8, i8* %"$msgobj_572", i32 225 + %"$msgobj_td_617" = bitcast i8* %"$msgobj_td_616" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Bystr_37", %_TyDescrTy_Typ** %"$msgobj_td_617", align 8 + %"$bstr_618" = load %Bystr, %Bystr* @_cparam_bstr, align 8 + %"$msgobj_v_619" = getelementptr i8, i8* %"$msgobj_572", i32 233 + %"$msgobj_v_620" = bitcast i8* %"$msgobj_v_619" to %Bystr* + store %Bystr %"$bstr_618", %Bystr* %"$msgobj_v_620", align 8 + %"$msgobj_fname_622" = getelementptr i8, i8* %"$msgobj_572", i32 249 + %"$msgobj_fname_623" = bitcast i8* %"$msgobj_fname_622" to %String* + store %String { i8* getelementptr inbounds ([9 x i8], [9 x i8]* @"$stringlit_621", i32 0, i32 0), i32 9 }, %String* %"$msgobj_fname_623", align 8 + %"$msgobj_td_624" = getelementptr i8, i8* %"$msgobj_572", i32 265 + %"$msgobj_td_625" = bitcast i8* %"$msgobj_td_624" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_ADT_List_String_45", %_TyDescrTy_Typ** %"$msgobj_td_625", align 8 + %"$all_names_626" = load %TName_List_String*, %TName_List_String** @_cparam_all_names, align 8 + %"$msgobj_v_627" = getelementptr i8, i8* %"$msgobj_572", i32 273 + %"$msgobj_v_628" = bitcast i8* %"$msgobj_v_627" to %TName_List_String** + store %TName_List_String* %"$all_names_626", %TName_List_String** %"$msgobj_v_628", align 8 + %"$msgobj_fname_630" = getelementptr i8, i8* %"$msgobj_572", i32 281 + %"$msgobj_fname_631" = bitcast i8* %"$msgobj_fname_630" to %String* + store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_629", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_631", align 8 + %"$msgobj_td_632" = getelementptr i8, i8* %"$msgobj_572", i32 297 + %"$msgobj_td_633" = bitcast i8* %"$msgobj_td_632" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_ADT_Pair_Int128_String_44", %_TyDescrTy_Typ** %"$msgobj_td_633", align 8 + %"$pear_634" = load %TName_Pair_Int128_String*, %TName_Pair_Int128_String** @_cparam_pear, align 8 + %"$msgobj_v_635" = getelementptr i8, i8* %"$msgobj_572", i32 305 + %"$msgobj_v_636" = bitcast i8* %"$msgobj_v_635" to %TName_Pair_Int128_String** + store %TName_Pair_Int128_String* %"$pear_634", %TName_Pair_Int128_String** %"$msgobj_v_636", align 8 + store i8* %"$msgobj_572", i8** %e, align 8, !dbg !118 + %"$e_638" = load i8*, i8** %e, align 8 + %"$_literal_cost_call_640" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Event_31", i8* %"$e_638") + %"$gasrem_641" = load i64, i64* @_gasrem, align 8 + %"$gascmp_642" = icmp ugt i64 %"$_literal_cost_call_640", %"$gasrem_641" + br i1 %"$gascmp_642", label %"$out_of_gas_643", label %"$have_gas_644" + +"$out_of_gas_643": ; preds = %"$have_gas_570" call void @_out_of_gas() - br label %"$have_gas_630" - -"$have_gas_630": ; preds = %"$out_of_gas_629", %"$have_gas_556" - %"$consume_631" = sub i64 %"$gasrem_627", %"$_literal_cost_call_626" - store i64 %"$consume_631", i64* @_gasrem, align 8 - %"$execptr_load_632" = load i8*, i8** @_execptr, align 8 - %"$e_633" = load i8*, i8** %e, align 8 - call void @_event(i8* %"$execptr_load_632", %_TyDescrTy_Typ* @"$TyDescr_Event_31", i8* %"$e_633"), !dbg !54 + br label %"$have_gas_644" + +"$have_gas_644": ; preds = %"$out_of_gas_643", %"$have_gas_570" + %"$consume_645" = sub i64 %"$gasrem_641", %"$_literal_cost_call_640" + store i64 %"$consume_645", i64* @_gasrem, align 8 + %"$execptr_load_646" = load i8*, i8** @_execptr, align 8 + %"$e_647" = load i8*, i8** %e, align 8 + call void @_event(i8* %"$execptr_load_646", %_TyDescrTy_Typ* @"$TyDescr_Event_31", i8* %"$e_647"), !dbg !119 ret void } -define void @printContrParams(i8* %0) !dbg !55 { +define void @printContrParams(i8* %0) !dbg !120 { entry: - %"$_amount_635" = getelementptr i8, i8* %0, i32 0 - %"$_amount_636" = bitcast i8* %"$_amount_635" to %Uint128* - %_amount = load %Uint128, %Uint128* %"$_amount_636", align 8 - %"$_origin_637" = getelementptr i8, i8* %0, i32 16 - %"$_origin_638" = bitcast i8* %"$_origin_637" to [20 x i8]* - %"$_sender_639" = getelementptr i8, i8* %0, i32 36 - %"$_sender_640" = bitcast i8* %"$_sender_639" to [20 x i8]* - call void @"$printContrParams_545"(%Uint128 %_amount, [20 x i8]* %"$_origin_638", [20 x i8]* %"$_sender_640"), !dbg !56 + %"$_amount_652" = getelementptr i8, i8* %0, i32 0 + %"$_amount_653" = bitcast i8* %"$_amount_652" to %Uint128* + %_amount = load %Uint128, %Uint128* %"$_amount_653", align 8 + %"$_origin_654" = getelementptr i8, i8* %0, i32 16 + %"$_origin_655" = bitcast i8* %"$_origin_654" to [20 x i8]* + %"$_sender_656" = getelementptr i8, i8* %0, i32 36 + %"$_sender_657" = bitcast i8* %"$_sender_656" to [20 x i8]* + call void @"$printContrParams_559"(%Uint128 %_amount, [20 x i8]* %"$_origin_655", [20 x i8]* %"$_sender_657"), !dbg !121 ret void } +attributes #0 = { nocallback nofree nosync nounwind readnone speculatable willreturn } + !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) +!1 = distinct !DICompileUnit(language: DW_LANG_C89, file: !2, producer: "Scilla Compiler", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false) !2 = !DIFile(filename: "helloWorld.scilla", directory: "codegen/contr") -!3 = !{} -!4 = distinct !DISubprogram(name: "$fundef_3", linkageName: "$fundef_3", scope: !2, file: !2, line: 14, type: !5, scopeLine: 14, 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: 14, column: 17, scope: !4) -!9 = !DILocation(line: 15, column: 3, scope: !4) -!10 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !11, file: !11, type: !5, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!11 = !DIFile(filename: ".", directory: ".") -!12 = !DILocation(line: 0, scope: !10) -!13 = !DILocation(line: 14, column: 3, scope: !10) -!14 = !DILocation(line: 17, column: 22, scope: !10) -!15 = !DILocation(line: 18, column: 22, scope: !10) -!16 = !DILocation(line: 20, column: 21, scope: !10) -!17 = distinct !DISubprogram(name: "_deploy_ops", linkageName: "_deploy_ops", scope: !11, file: !11, type: !5, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!18 = !DILocation(line: 36, column: 30, scope: !17) -!19 = !DILocation(line: 37, column: 30, scope: !17) -!20 = distinct !DISubprogram(name: "setHello", linkageName: "setHello", scope: !2, file: !2, line: 39, type: !5, scopeLine: 39, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!21 = !DILocation(line: 40, column: 14, scope: !20) -!22 = !DILocation(line: 41, column: 3, scope: !20) -!23 = !DILocation(line: 43, column: 9, scope: !24) -!24 = distinct !DILexicalBlock(scope: !25, file: !2, line: 42, column: 5) -!25 = distinct !DILexicalBlock(scope: !20, file: !2, line: 41, column: 3) -!26 = !DILocation(line: 44, column: 5, scope: !24) -!27 = !DILocation(line: 46, column: 5, scope: !28) -!28 = distinct !DILexicalBlock(scope: !25, file: !2, line: 45, column: 5) -!29 = !DILocation(line: 47, column: 9, scope: !28) -!30 = !DILocation(line: 48, column: 5, scope: !28) -!31 = distinct !DISubprogram(name: "setHello", linkageName: "setHello", scope: !2, file: !2, line: 39, type: !5, scopeLine: 39, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!32 = !DILocation(line: 39, column: 12, scope: !31) -!33 = distinct !DISubprogram(name: "getHello", linkageName: "getHello", scope: !2, file: !2, line: 53, type: !5, scopeLine: 53, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!34 = !DILocation(line: 54, column: 5, scope: !33) -!35 = !DILocation(line: 55, column: 9, scope: !33) -!36 = !DILocation(line: 56, column: 5, scope: !33) -!37 = distinct !DISubprogram(name: "getHello", linkageName: "getHello", scope: !2, file: !2, line: 53, type: !5, scopeLine: 53, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!38 = !DILocation(line: 53, column: 12, scope: !37) -!39 = distinct !DISubprogram(name: "multipleMsgs", linkageName: "multipleMsgs", scope: !2, file: !2, line: 59, type: !5, scopeLine: 59, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!40 = !DILocation(line: 60, column: 10, scope: !39) -!41 = !DILocation(line: 61, column: 10, scope: !39) -!42 = !DILocation(line: 62, column: 11, scope: !39) -!43 = !DILocation(line: 63, column: 11, scope: !39) -!44 = !DILocation(line: 64, column: 3, scope: !39) -!45 = distinct !DISubprogram(name: "multipleMsgs", linkageName: "multipleMsgs", scope: !2, file: !2, line: 59, type: !5, scopeLine: 59, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!46 = !DILocation(line: 59, column: 12, scope: !45) -!47 = distinct !DISubprogram(name: "contrAddr", linkageName: "contrAddr", scope: !2, file: !2, line: 67, type: !5, scopeLine: 67, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!48 = !DILocation(line: 68, column: 10, scope: !47) -!49 = !DILocation(line: 69, column: 3, scope: !47) -!50 = distinct !DISubprogram(name: "contrAddr", linkageName: "contrAddr", scope: !2, file: !2, line: 67, type: !5, scopeLine: 67, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!51 = !DILocation(line: 67, column: 12, scope: !50) -!52 = distinct !DISubprogram(name: "printContrParams", linkageName: "printContrParams", scope: !2, file: !2, line: 72, type: !5, scopeLine: 72, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!53 = !DILocation(line: 73, column: 7, scope: !52) -!54 = !DILocation(line: 83, column: 3, scope: !52) -!55 = distinct !DISubprogram(name: "printContrParams", linkageName: "printContrParams", scope: !2, file: !2, line: 72, type: !5, scopeLine: 72, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!56 = !DILocation(line: 72, column: 12, scope: !55) +!3 = distinct !DISubprogram(name: "$fundef_3", linkageName: "$fundef_3", scope: !2, file: !2, line: 14, type: !4, scopeLine: 14, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!4 = !DISubroutineType(types: !5) +!5 = !{!6} +!6 = !DIBasicType(tag: DW_TAG_unspecified_type, name: "void") +!7 = !{} +!8 = !DILocalVariable(name: "msg", scope: !3, file: !2, line: 13, type: !9) +!9 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "Message", baseType: !10, size: 8, align: 8, dwarfAddressSpace: 0) +!10 = !DIBasicType(name: "Message", size: 8) +!11 = !DILocation(line: 13, column: 8, scope: !3) +!12 = !DILocalVariable(name: "$retval_4", scope: !3, file: !2, line: 14, type: !13) +!13 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "List (Message)", baseType: !14, size: 8, align: 8, dwarfAddressSpace: 0) +!14 = !DIBasicType(name: "List (Message)", size: 8) +!15 = !DILocation(line: 14, column: 3, scope: !3) +!16 = !DILocalVariable(name: "nil_msg", scope: !3, file: !2, line: 14, type: !13) +!17 = !DILocation(line: 14, column: 7, scope: !3) +!18 = !DILocation(line: 14, column: 17, scope: !3) +!19 = !DILocation(line: 15, column: 3, scope: !3) +!20 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !21, file: !21, type: !4, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!21 = !DIFile(filename: ".", directory: ".") +!22 = !DILocation(line: 0, scope: !20) +!23 = !DILocation(line: 14, column: 3, scope: !20) +!24 = !DILocation(line: 17, column: 22, scope: !20) +!25 = !DILocation(line: 18, column: 22, scope: !20) +!26 = !DILocation(line: 20, column: 21, scope: !20) +!27 = distinct !DISubprogram(name: "_deploy_ops", linkageName: "_deploy_ops", scope: !21, file: !21, type: !4, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!28 = !DILocalVariable(name: "$welcome_msg_5", scope: !27, file: !2, line: 36, type: !29) +!29 = !DIBasicType(name: "String", size: 16) +!30 = !DILocation(line: 36, column: 7, scope: !27) +!31 = !DILocation(line: 36, column: 30, scope: !27) +!32 = !DILocalVariable(name: "$sendoff_msg_6", scope: !27, file: !2, line: 37, type: !29) +!33 = !DILocation(line: 37, column: 7, scope: !27) +!34 = !DILocation(line: 37, column: 30, scope: !27) +!35 = distinct !DISubprogram(name: "setHello", linkageName: "setHello", scope: !2, file: !2, line: 39, type: !4, scopeLine: 39, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!36 = !DILocalVariable(name: "msg", scope: !35, file: !2, line: 39, type: !29) +!37 = !DILocation(line: 39, column: 22, scope: !35) +!38 = !DILocalVariable(name: "_sender", scope: !35, file: !2, line: 39, type: !39) +!39 = !DIBasicType(name: "ByStr20 with end", size: 20) +!40 = !DILocation(line: 39, column: 12, scope: !35) +!41 = !DILocalVariable(name: "_origin", scope: !35, file: !2, line: 39, type: !39) +!42 = !DILocalVariable(name: "_amount", scope: !35, file: !2, line: 39, type: !43) +!43 = !DIBasicType(name: "Uint128", size: 16) +!44 = !DILocalVariable(name: "is_owner", scope: !35, file: !2, line: 40, type: !45) +!45 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "Bool", baseType: !46, size: 8, align: 8, dwarfAddressSpace: 0) +!46 = !DIBasicType(name: "Bool", size: 8) +!47 = !DILocation(line: 40, column: 3, scope: !35) +!48 = !DILocation(line: 40, column: 14, scope: !35) +!49 = !DILocation(line: 41, column: 3, scope: !35) +!50 = !DILocalVariable(name: "e", scope: !51, file: !2, line: 43, type: !53) +!51 = distinct !DILexicalBlock(scope: !52, file: !2, line: 42, column: 5) +!52 = distinct !DILexicalBlock(scope: !35, file: !2, line: 41, column: 3) +!53 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "Event", baseType: !54, size: 8, align: 8, dwarfAddressSpace: 0) +!54 = !DIBasicType(name: "Event", size: 8) +!55 = !DILocation(line: 43, column: 5, scope: !51) +!56 = !DILocation(line: 43, column: 9, scope: !51) +!57 = !DILocation(line: 44, column: 5, scope: !51) +!58 = !DILocation(line: 46, column: 5, scope: !59) +!59 = distinct !DILexicalBlock(scope: !52, file: !2, line: 45, column: 5) +!60 = !DILocalVariable(name: "e", scope: !59, file: !2, line: 47, type: !53) +!61 = !DILocation(line: 47, column: 5, scope: !59) +!62 = !DILocation(line: 47, column: 9, scope: !59) +!63 = !DILocation(line: 48, column: 5, scope: !59) +!64 = distinct !DISubprogram(name: "setHello", linkageName: "setHello", scope: !2, file: !2, line: 39, type: !4, scopeLine: 39, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!65 = !DILocation(line: 39, column: 12, scope: !64) +!66 = distinct !DISubprogram(name: "getHello", linkageName: "getHello", scope: !2, file: !2, line: 53, type: !4, scopeLine: 53, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!67 = !DILocalVariable(name: "_sender", scope: !66, file: !2, line: 53, type: !39) +!68 = !DILocation(line: 53, column: 12, scope: !66) +!69 = !DILocalVariable(name: "_origin", scope: !66, file: !2, line: 53, type: !39) +!70 = !DILocalVariable(name: "_amount", scope: !66, file: !2, line: 53, type: !43) +!71 = !DILocalVariable(name: "r", scope: !66, file: !2, line: 54, type: !29) +!72 = !DILocation(line: 54, column: 5, scope: !66) +!73 = !DILocalVariable(name: "e", scope: !66, file: !2, line: 55, type: !53) +!74 = !DILocation(line: 55, column: 5, scope: !66) +!75 = !DILocation(line: 55, column: 9, scope: !66) +!76 = !DILocation(line: 56, column: 5, scope: !66) +!77 = distinct !DISubprogram(name: "getHello", linkageName: "getHello", scope: !2, file: !2, line: 53, type: !4, scopeLine: 53, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!78 = !DILocation(line: 53, column: 12, scope: !77) +!79 = distinct !DISubprogram(name: "multipleMsgs", linkageName: "multipleMsgs", scope: !2, file: !2, line: 59, type: !4, scopeLine: 59, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!80 = !DILocalVariable(name: "_sender", scope: !79, file: !2, line: 59, type: !39) +!81 = !DILocation(line: 59, column: 12, scope: !79) +!82 = !DILocalVariable(name: "_origin", scope: !79, file: !2, line: 59, type: !39) +!83 = !DILocalVariable(name: "_amount", scope: !79, file: !2, line: 59, type: !43) +!84 = !DILocalVariable(name: "msg1", scope: !79, file: !2, line: 60, type: !9) +!85 = !DILocation(line: 60, column: 3, scope: !79) +!86 = !DILocation(line: 60, column: 10, scope: !79) +!87 = !DILocalVariable(name: "msg2", scope: !79, file: !2, line: 61, type: !9) +!88 = !DILocation(line: 61, column: 3, scope: !79) +!89 = !DILocation(line: 61, column: 10, scope: !79) +!90 = !DILocalVariable(name: "msgs1", scope: !79, file: !2, line: 62, type: !13) +!91 = !DILocation(line: 62, column: 3, scope: !79) +!92 = !DILocalVariable(name: "$helloWorld.one_msg_2", scope: !79, file: !2, line: 62, type: !13) +!93 = !DILocation(line: 62, column: 11, scope: !79) +!94 = !DILocalVariable(name: "msgs2", scope: !79, file: !2, line: 63, type: !13) +!95 = !DILocation(line: 63, column: 3, scope: !79) +!96 = !DILocation(line: 63, column: 11, scope: !79) +!97 = !DILocation(line: 64, column: 3, scope: !79) +!98 = distinct !DISubprogram(name: "multipleMsgs", linkageName: "multipleMsgs", scope: !2, file: !2, line: 59, type: !4, scopeLine: 59, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!99 = !DILocation(line: 59, column: 12, scope: !98) +!100 = distinct !DISubprogram(name: "contrAddr", linkageName: "contrAddr", scope: !2, file: !2, line: 67, type: !4, scopeLine: 67, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!101 = !DILocalVariable(name: "_sender", scope: !100, file: !2, line: 67, type: !39) +!102 = !DILocation(line: 67, column: 12, scope: !100) +!103 = !DILocalVariable(name: "_origin", scope: !100, file: !2, line: 67, type: !39) +!104 = !DILocalVariable(name: "_amount", scope: !100, file: !2, line: 67, type: !43) +!105 = !DILocalVariable(name: "msg1", scope: !100, file: !2, line: 68, type: !53) +!106 = !DILocation(line: 68, column: 3, scope: !100) +!107 = !DILocation(line: 68, column: 10, scope: !100) +!108 = !DILocation(line: 69, column: 3, scope: !100) +!109 = distinct !DISubprogram(name: "contrAddr", linkageName: "contrAddr", scope: !2, file: !2, line: 67, type: !4, scopeLine: 67, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!110 = !DILocation(line: 67, column: 12, scope: !109) +!111 = distinct !DISubprogram(name: "printContrParams", linkageName: "printContrParams", scope: !2, file: !2, line: 72, type: !4, scopeLine: 72, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!112 = !DILocalVariable(name: "_sender", scope: !111, file: !2, line: 72, type: !39) +!113 = !DILocation(line: 72, column: 12, scope: !111) +!114 = !DILocalVariable(name: "_origin", scope: !111, file: !2, line: 72, type: !39) +!115 = !DILocalVariable(name: "_amount", scope: !111, file: !2, line: 72, type: !43) +!116 = !DILocalVariable(name: "e", scope: !111, file: !2, line: 73, type: !53) +!117 = !DILocation(line: 73, column: 3, scope: !111) +!118 = !DILocation(line: 73, column: 7, scope: !111) +!119 = !DILocation(line: 83, column: 3, scope: !111) +!120 = distinct !DISubprogram(name: "printContrParams", linkageName: "printContrParams", scope: !2, file: !2, line: 72, type: !4, scopeLine: 72, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!121 = !DILocation(line: 72, column: 12, scope: !120) diff --git a/testsuite/contr/helloWorld.ll b/testsuite/contr/helloWorld.ll index 2177d86e..179fd08e 100644 --- a/testsuite/contr/helloWorld.ll +++ b/testsuite/contr/helloWorld.ll @@ -4,7 +4,7 @@ ; 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-pc-linux-gnu" +target triple = "x86_64-unknown-linux-gnu" %"$TyDescrTy_PrimTyp_7" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/testsuite/contr/map_corners_test.dbg.ll b/testsuite/contr/map_corners_test.dbg.ll index fe2cf0ed..07bb005f 100644 --- a/testsuite/contr/map_corners_test.dbg.ll +++ b/testsuite/contr/map_corners_test.dbg.ll @@ -4,7 +4,7 @@ ; 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-pc-linux-gnu" +target triple = "x86_64-unknown-linux-gnu" %"$TyDescrTy_PrimTyp_34" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } @@ -20,9 +20,9 @@ target triple = "x86_64-pc-linux-gnu" %CName_True = type <{ i8 }> %CName_False = type <{ i8 }> %Uint32 = type { i32 } -%"$ParamDescr_4901" = type { %ParamDescrString, %_TyDescrTy_Typ* } +%"$ParamDescr_4966" = type { %ParamDescrString, %_TyDescrTy_Typ* } %ParamDescrString = type { i8*, i32 } -%"$TransDescr_4902" = type { %ParamDescrString, i32, %"$ParamDescr_4901"* } +%"$TransDescr_4967" = type { %ParamDescrString, i32, %"$ParamDescr_4966"* } %"$$fundef_27_env_127" = type { %TName_Bool* } %"$$fundef_25_env_128" = type {} %String = type { i8*, i32 } @@ -134,363 +134,370 @@ target triple = "x86_64-pc-linux-gnu" @_cparam__scilla_version = global %Uint32 zeroinitializer @_cparam__this_address = global [20 x i8] zeroinitializer @_cparam__creation_block = global i8* null -@"$stringlit_198" = unnamed_addr constant [3 x i8] c"420" -@"$f_s1_200" = unnamed_addr constant [5 x i8] c"f_s1\00" -@"$f_m1_213" = unnamed_addr constant [5 x i8] c"f_m1\00" -@"$f_m2_225" = unnamed_addr constant [5 x i8] c"f_m2\00" -@"$f_m3_237" = unnamed_addr constant [5 x i8] c"f_m3\00" -@"$f_m_249" = unnamed_addr constant [4 x i8] c"f_m\00" -@"$stringlit_266" = unnamed_addr constant [10 x i8] c"_exception" -@"$stringlit_271" = unnamed_addr constant [11 x i8] c"Test Failed" -@"$stringlit_274" = unnamed_addr constant [9 x i8] c"test_name" -@"$stringlit_306" = unnamed_addr constant [10 x i8] c"_exception" -@"$stringlit_311" = unnamed_addr constant [11 x i8] c"Test Failed" -@"$stringlit_314" = unnamed_addr constant [9 x i8] c"test_name" -@"$stringlit_321" = unnamed_addr constant [7 x i8] c"message" -@"$stringlit_352" = unnamed_addr constant [2 x i8] c"t1" -@"$f_s1_353" = unnamed_addr constant [5 x i8] c"f_s1\00" -@"$stringlit_378" = unnamed_addr constant [3 x i8] c"420" -@"$stringlit_435" = unnamed_addr constant [3 x i8] c"421" -@"$f_s1_446" = unnamed_addr constant [5 x i8] c"f_s1\00" -@"$stringlit_470" = unnamed_addr constant [2 x i8] c"t2" -@"$f_s1_471" = unnamed_addr constant [5 x i8] c"f_s1\00" -@"$stringlit_496" = unnamed_addr constant [3 x i8] c"421" -@"$stringlit_553" = unnamed_addr constant [4 x i8] c"key1" -@"$stringlit_564" = unnamed_addr constant [3 x i8] c"420" -@"$f_m1_579" = unnamed_addr constant [5 x i8] c"f_m1\00" -@"$stringlit_603" = unnamed_addr constant [2 x i8] c"t3" -@"$stringlit_614" = unnamed_addr constant [3 x i8] c"420" -@"$stringlit_625" = unnamed_addr constant [4 x i8] c"key1" -@"$f_m1_629" = unnamed_addr constant [5 x i8] c"f_m1\00" -@"$stringlit_703" = unnamed_addr constant [23 x i8] c"Incorrect value for key" -@"$stringlit_735" = unnamed_addr constant [4 x i8] c"key2" -@"$f_m1_739" = unnamed_addr constant [5 x i8] c"f_m1\00" -@"$stringlit_777" = unnamed_addr constant [25 x i8] c"Rogue value found for key" -@"$f_m1_798" = unnamed_addr constant [5 x i8] c"f_m1\00" -@"$stringlit_819" = unnamed_addr constant [2 x i8] c"t4" -@"$stringlit_830" = unnamed_addr constant [4 x i8] c"key1" -@"$f_m1_834" = unnamed_addr constant [5 x i8] c"f_m1\00" -@"$stringlit_880" = unnamed_addr constant [5 x i8] c"key1a" -@"$stringlit_891" = unnamed_addr constant [5 x i8] c"key2a" -@"$stringlit_902" = unnamed_addr constant [3 x i8] c"420" -@"$f_m2_919" = unnamed_addr constant [5 x i8] c"f_m2\00" -@"$stringlit_943" = unnamed_addr constant [2 x i8] c"t5" -@"$stringlit_954" = unnamed_addr constant [3 x i8] c"420" -@"$stringlit_965" = unnamed_addr constant [5 x i8] c"key1a" -@"$stringlit_976" = unnamed_addr constant [5 x i8] c"key2a" -@"$f_m2_982" = unnamed_addr constant [5 x i8] c"f_m2\00" -@"$stringlit_1058" = unnamed_addr constant [23 x i8] c"Incorrect value fetched" -@"$stringlit_1106" = unnamed_addr constant [5 x i8] c"key2b" -@"$stringlit_1117" = unnamed_addr constant [3 x i8] c"840" -@"$stringlit_1153" = unnamed_addr constant [5 x i8] c"key2c" -@"$stringlit_1164" = unnamed_addr constant [3 x i8] c"841" -@"$stringlit_1195" = unnamed_addr constant [5 x i8] c"key1b" -@"$f_m2_1209" = unnamed_addr constant [5 x i8] c"f_m2\00" -@"$stringlit_1232" = unnamed_addr constant [2 x i8] c"t6" -@"$stringlit_1243" = unnamed_addr constant [5 x i8] c"key1a" -@"$stringlit_1254" = unnamed_addr constant [5 x i8] c"key2a" -@"$f_m2_1260" = unnamed_addr constant [5 x i8] c"f_m2\00" -@"$stringlit_1298" = unnamed_addr constant [3 x i8] c"420" -@"$stringlit_1347" = unnamed_addr constant [31 x i8] c"Incorrect value for key1a,key2a" -@"$stringlit_1369" = unnamed_addr constant [21 x i8] c"key1a,key2a not found" -@"$stringlit_1389" = unnamed_addr constant [5 x i8] c"key1b" -@"$stringlit_1400" = unnamed_addr constant [5 x i8] c"key2b" -@"$f_m2_1406" = unnamed_addr constant [5 x i8] c"f_m2\00" -@"$stringlit_1444" = unnamed_addr constant [3 x i8] c"840" -@"$stringlit_1493" = unnamed_addr constant [31 x i8] c"Incorrect value for key1b,key2b" -@"$stringlit_1515" = unnamed_addr constant [21 x i8] c"key1b,key2b not found" -@"$stringlit_1535" = unnamed_addr constant [5 x i8] c"key1b" -@"$stringlit_1546" = unnamed_addr constant [5 x i8] c"key2c" -@"$f_m2_1552" = unnamed_addr constant [5 x i8] c"f_m2\00" -@"$stringlit_1590" = unnamed_addr constant [3 x i8] c"841" -@"$stringlit_1639" = unnamed_addr constant [31 x i8] c"Incorrect value for key1b,key2c" -@"$stringlit_1661" = unnamed_addr constant [21 x i8] c"key1b,key2c not found" -@"$f_m2_1680" = unnamed_addr constant [5 x i8] c"f_m2\00" -@"$stringlit_1701" = unnamed_addr constant [2 x i8] c"t7" -@"$stringlit_1712" = unnamed_addr constant [5 x i8] c"key1a" -@"$stringlit_1723" = unnamed_addr constant [5 x i8] c"key2a" -@"$f_m2_1729" = unnamed_addr constant [5 x i8] c"f_m2\00" -@"$stringlit_1767" = unnamed_addr constant [3 x i8] c"420" -@"$stringlit_1816" = unnamed_addr constant [31 x i8] c"Incorrect value for key1a,key2a" -@"$stringlit_1838" = unnamed_addr constant [21 x i8] c"key1a,key2a not found" -@"$stringlit_1858" = unnamed_addr constant [5 x i8] c"key1b" -@"$f_m2_1862" = unnamed_addr constant [5 x i8] c"f_m2\00" -@"$stringlit_1903" = unnamed_addr constant [36 x i8] c"Fail: deleted value for key1b found!" -@"$stringlit_1925" = unnamed_addr constant [5 x i8] c"key1b" -@"$stringlit_1936" = unnamed_addr constant [5 x i8] c"key2b" -@"$f_m2_1942" = unnamed_addr constant [5 x i8] c"f_m2\00" -@"$stringlit_1980" = unnamed_addr constant [42 x i8] c"Fail: deleted value for key1b,key2b found!" -@"$stringlit_2002" = unnamed_addr constant [5 x i8] c"key1b" -@"$stringlit_2013" = unnamed_addr constant [5 x i8] c"key2d" -@"$f_m2_2019" = unnamed_addr constant [5 x i8] c"f_m2\00" -@"$stringlit_2057" = unnamed_addr constant [42 x i8] c"Fail: deleted value for key1b,key2d found!" -@"$stringlit_2079" = unnamed_addr constant [5 x i8] c"key1b" -@"$stringlit_2090" = unnamed_addr constant [5 x i8] c"key2c" -@"$stringlit_2101" = unnamed_addr constant [3 x i8] c"121" -@"$f_m2_2118" = unnamed_addr constant [5 x i8] c"f_m2\00" -@"$stringlit_2142" = unnamed_addr constant [2 x i8] c"t8" -@"$stringlit_2153" = unnamed_addr constant [5 x i8] c"key1a" -@"$stringlit_2164" = unnamed_addr constant [5 x i8] c"key2a" -@"$f_m2_2170" = unnamed_addr constant [5 x i8] c"f_m2\00" -@"$stringlit_2208" = unnamed_addr constant [3 x i8] c"420" -@"$stringlit_2257" = unnamed_addr constant [31 x i8] c"Incorrect value for key1a,key2a" -@"$stringlit_2279" = unnamed_addr constant [21 x i8] c"key1a,key2a not found" -@"$stringlit_2299" = unnamed_addr constant [5 x i8] c"key1b" -@"$stringlit_2310" = unnamed_addr constant [5 x i8] c"key2c" -@"$f_m2_2316" = unnamed_addr constant [5 x i8] c"f_m2\00" -@"$stringlit_2354" = unnamed_addr constant [3 x i8] c"121" -@"$stringlit_2403" = unnamed_addr constant [31 x i8] c"Incorrect value for key1b,key2c" -@"$stringlit_2425" = unnamed_addr constant [21 x i8] c"key1b,key2c not found" -@"$f_m1_2457" = unnamed_addr constant [5 x i8] c"f_m1\00" -@"$stringlit_2480" = unnamed_addr constant [2 x i8] c"t9" -@"$f_m1_2481" = unnamed_addr constant [5 x i8] c"f_m1\00" -@"$stringlit_2567" = unnamed_addr constant [5 x i8] c"key1a" -@"$stringlit_2578" = unnamed_addr constant [3 x i8] c"420" -@"$f_m1_2613" = unnamed_addr constant [5 x i8] c"f_m1\00" -@"$stringlit_2636" = unnamed_addr constant [3 x i8] c"t10" -@"$stringlit_2647" = unnamed_addr constant [5 x i8] c"key1a" +@"$stringlit_200" = unnamed_addr constant [3 x i8] c"420" +@"$f_s1_202" = unnamed_addr constant [5 x i8] c"f_s1\00" +@"$f_m1_215" = unnamed_addr constant [5 x i8] c"f_m1\00" +@"$f_m2_227" = unnamed_addr constant [5 x i8] c"f_m2\00" +@"$f_m3_239" = unnamed_addr constant [5 x i8] c"f_m3\00" +@"$f_m_251" = unnamed_addr constant [4 x i8] c"f_m\00" +@"$stringlit_268" = unnamed_addr constant [10 x i8] c"_exception" +@"$stringlit_273" = unnamed_addr constant [11 x i8] c"Test Failed" +@"$stringlit_276" = unnamed_addr constant [9 x i8] c"test_name" +@"$stringlit_312" = unnamed_addr constant [10 x i8] c"_exception" +@"$stringlit_317" = unnamed_addr constant [11 x i8] c"Test Failed" +@"$stringlit_320" = unnamed_addr constant [9 x i8] c"test_name" +@"$stringlit_327" = unnamed_addr constant [7 x i8] c"message" +@"$stringlit_363" = unnamed_addr constant [2 x i8] c"t1" +@"$f_s1_364" = unnamed_addr constant [5 x i8] c"f_s1\00" +@"$stringlit_389" = unnamed_addr constant [3 x i8] c"420" +@"$stringlit_446" = unnamed_addr constant [3 x i8] c"421" +@"$f_s1_457" = unnamed_addr constant [5 x i8] c"f_s1\00" +@"$stringlit_484" = unnamed_addr constant [2 x i8] c"t2" +@"$f_s1_485" = unnamed_addr constant [5 x i8] c"f_s1\00" +@"$stringlit_510" = unnamed_addr constant [3 x i8] c"421" +@"$stringlit_567" = unnamed_addr constant [4 x i8] c"key1" +@"$stringlit_578" = unnamed_addr constant [3 x i8] c"420" +@"$f_m1_593" = unnamed_addr constant [5 x i8] c"f_m1\00" +@"$stringlit_620" = unnamed_addr constant [2 x i8] c"t3" +@"$stringlit_631" = unnamed_addr constant [3 x i8] c"420" +@"$stringlit_642" = unnamed_addr constant [4 x i8] c"key1" +@"$f_m1_646" = unnamed_addr constant [5 x i8] c"f_m1\00" +@"$stringlit_720" = unnamed_addr constant [23 x i8] c"Incorrect value for key" +@"$stringlit_752" = unnamed_addr constant [4 x i8] c"key2" +@"$f_m1_756" = unnamed_addr constant [5 x i8] c"f_m1\00" +@"$stringlit_794" = unnamed_addr constant [25 x i8] c"Rogue value found for key" +@"$f_m1_815" = unnamed_addr constant [5 x i8] c"f_m1\00" +@"$stringlit_839" = unnamed_addr constant [2 x i8] c"t4" +@"$stringlit_850" = unnamed_addr constant [4 x i8] c"key1" +@"$f_m1_854" = unnamed_addr constant [5 x i8] c"f_m1\00" +@"$stringlit_900" = unnamed_addr constant [5 x i8] c"key1a" +@"$stringlit_911" = unnamed_addr constant [5 x i8] c"key2a" +@"$stringlit_922" = unnamed_addr constant [3 x i8] c"420" +@"$f_m2_939" = unnamed_addr constant [5 x i8] c"f_m2\00" +@"$stringlit_966" = unnamed_addr constant [2 x i8] c"t5" +@"$stringlit_977" = unnamed_addr constant [3 x i8] c"420" +@"$stringlit_988" = unnamed_addr constant [5 x i8] c"key1a" +@"$stringlit_999" = unnamed_addr constant [5 x i8] c"key2a" +@"$f_m2_1005" = unnamed_addr constant [5 x i8] c"f_m2\00" +@"$stringlit_1081" = unnamed_addr constant [23 x i8] c"Incorrect value fetched" +@"$stringlit_1129" = unnamed_addr constant [5 x i8] c"key2b" +@"$stringlit_1140" = unnamed_addr constant [3 x i8] c"840" +@"$stringlit_1176" = unnamed_addr constant [5 x i8] c"key2c" +@"$stringlit_1187" = unnamed_addr constant [3 x i8] c"841" +@"$stringlit_1218" = unnamed_addr constant [5 x i8] c"key1b" +@"$f_m2_1232" = unnamed_addr constant [5 x i8] c"f_m2\00" +@"$stringlit_1258" = unnamed_addr constant [2 x i8] c"t6" +@"$stringlit_1269" = unnamed_addr constant [5 x i8] c"key1a" +@"$stringlit_1280" = unnamed_addr constant [5 x i8] c"key2a" +@"$f_m2_1286" = unnamed_addr constant [5 x i8] c"f_m2\00" +@"$stringlit_1324" = unnamed_addr constant [3 x i8] c"420" +@"$stringlit_1373" = unnamed_addr constant [31 x i8] c"Incorrect value for key1a,key2a" +@"$stringlit_1395" = unnamed_addr constant [21 x i8] c"key1a,key2a not found" +@"$stringlit_1415" = unnamed_addr constant [5 x i8] c"key1b" +@"$stringlit_1426" = unnamed_addr constant [5 x i8] c"key2b" +@"$f_m2_1432" = unnamed_addr constant [5 x i8] c"f_m2\00" +@"$stringlit_1470" = unnamed_addr constant [3 x i8] c"840" +@"$stringlit_1519" = unnamed_addr constant [31 x i8] c"Incorrect value for key1b,key2b" +@"$stringlit_1541" = unnamed_addr constant [21 x i8] c"key1b,key2b not found" +@"$stringlit_1561" = unnamed_addr constant [5 x i8] c"key1b" +@"$stringlit_1572" = unnamed_addr constant [5 x i8] c"key2c" +@"$f_m2_1578" = unnamed_addr constant [5 x i8] c"f_m2\00" +@"$stringlit_1616" = unnamed_addr constant [3 x i8] c"841" +@"$stringlit_1665" = unnamed_addr constant [31 x i8] c"Incorrect value for key1b,key2c" +@"$stringlit_1687" = unnamed_addr constant [21 x i8] c"key1b,key2c not found" +@"$f_m2_1706" = unnamed_addr constant [5 x i8] c"f_m2\00" +@"$stringlit_1730" = unnamed_addr constant [2 x i8] c"t7" +@"$stringlit_1741" = unnamed_addr constant [5 x i8] c"key1a" +@"$stringlit_1752" = unnamed_addr constant [5 x i8] c"key2a" +@"$f_m2_1758" = unnamed_addr constant [5 x i8] c"f_m2\00" +@"$stringlit_1796" = unnamed_addr constant [3 x i8] c"420" +@"$stringlit_1845" = unnamed_addr constant [31 x i8] c"Incorrect value for key1a,key2a" +@"$stringlit_1867" = unnamed_addr constant [21 x i8] c"key1a,key2a not found" +@"$stringlit_1887" = unnamed_addr constant [5 x i8] c"key1b" +@"$f_m2_1891" = unnamed_addr constant [5 x i8] c"f_m2\00" +@"$stringlit_1932" = unnamed_addr constant [36 x i8] c"Fail: deleted value for key1b found!" +@"$stringlit_1954" = unnamed_addr constant [5 x i8] c"key1b" +@"$stringlit_1965" = unnamed_addr constant [5 x i8] c"key2b" +@"$f_m2_1971" = unnamed_addr constant [5 x i8] c"f_m2\00" +@"$stringlit_2009" = unnamed_addr constant [42 x i8] c"Fail: deleted value for key1b,key2b found!" +@"$stringlit_2031" = unnamed_addr constant [5 x i8] c"key1b" +@"$stringlit_2042" = unnamed_addr constant [5 x i8] c"key2d" +@"$f_m2_2048" = unnamed_addr constant [5 x i8] c"f_m2\00" +@"$stringlit_2086" = unnamed_addr constant [42 x i8] c"Fail: deleted value for key1b,key2d found!" +@"$stringlit_2108" = unnamed_addr constant [5 x i8] c"key1b" +@"$stringlit_2119" = unnamed_addr constant [5 x i8] c"key2c" +@"$stringlit_2130" = unnamed_addr constant [3 x i8] c"121" +@"$f_m2_2147" = unnamed_addr constant [5 x i8] c"f_m2\00" +@"$stringlit_2174" = unnamed_addr constant [2 x i8] c"t8" +@"$stringlit_2185" = unnamed_addr constant [5 x i8] c"key1a" +@"$stringlit_2196" = unnamed_addr constant [5 x i8] c"key2a" +@"$f_m2_2202" = unnamed_addr constant [5 x i8] c"f_m2\00" +@"$stringlit_2240" = unnamed_addr constant [3 x i8] c"420" +@"$stringlit_2289" = unnamed_addr constant [31 x i8] c"Incorrect value for key1a,key2a" +@"$stringlit_2311" = unnamed_addr constant [21 x i8] c"key1a,key2a not found" +@"$stringlit_2331" = unnamed_addr constant [5 x i8] c"key1b" +@"$stringlit_2342" = unnamed_addr constant [5 x i8] c"key2c" +@"$f_m2_2348" = unnamed_addr constant [5 x i8] c"f_m2\00" +@"$stringlit_2386" = unnamed_addr constant [3 x i8] c"121" +@"$stringlit_2435" = unnamed_addr constant [31 x i8] c"Incorrect value for key1b,key2c" +@"$stringlit_2457" = unnamed_addr constant [21 x i8] c"key1b,key2c not found" +@"$f_m1_2489" = unnamed_addr constant [5 x i8] c"f_m1\00" +@"$stringlit_2515" = unnamed_addr constant [2 x i8] c"t9" +@"$f_m1_2516" = unnamed_addr constant [5 x i8] c"f_m1\00" +@"$stringlit_2602" = unnamed_addr constant [5 x i8] c"key1a" +@"$stringlit_2613" = unnamed_addr constant [3 x i8] c"420" @"$f_m1_2648" = unnamed_addr constant [5 x i8] c"f_m1\00" -@"$stringlit_2706" = unnamed_addr constant [3 x i8] c"420" -@"$stringlit_2755" = unnamed_addr constant [25 x i8] c"Incorrect value for key1a" -@"$stringlit_2777" = unnamed_addr constant [15 x i8] c"key1a not found" -@"$f_m1_2796" = unnamed_addr constant [5 x i8] c"f_m1\00" -@"$stringlit_2817" = unnamed_addr constant [3 x i8] c"t11" -@"$f_m1_2818" = unnamed_addr constant [5 x i8] c"f_m1\00" -@"$f_m2_2916" = unnamed_addr constant [5 x i8] c"f_m2\00" -@"$stringlit_2939" = unnamed_addr constant [3 x i8] c"t12" -@"$f_m2_2940" = unnamed_addr constant [5 x i8] c"f_m2\00" -@"$stringlit_3039" = unnamed_addr constant [5 x i8] c"key1a" -@"$f_m2_3053" = unnamed_addr constant [5 x i8] c"f_m2\00" -@"$stringlit_3076" = unnamed_addr constant [3 x i8] c"t13" -@"$stringlit_3087" = unnamed_addr constant [5 x i8] c"key1a" -@"$f_m2_3091" = unnamed_addr constant [5 x i8] c"f_m2\00" -@"$stringlit_3184" = unnamed_addr constant [29 x i8] c"Submap should have been empty" -@"$stringlit_3232" = unnamed_addr constant [5 x i8] c"key2a" -@"$f_m3_3311" = unnamed_addr constant [5 x i8] c"f_m3\00" -@"$stringlit_3334" = unnamed_addr constant [3 x i8] c"t14" -@"$f_m3_3335" = unnamed_addr constant [5 x i8] c"f_m3\00" -@"$f_m_3433" = unnamed_addr constant [4 x i8] c"f_m\00" -@"$stringlit_3456" = unnamed_addr constant [3 x i8] c"t15" -@"$f_m3_3457" = unnamed_addr constant [5 x i8] c"f_m3\00" -@"$stringlit_3535" = unnamed_addr constant [22 x i8] c"Incorrect size of f_m3" -@"$stringlit_3555" = unnamed_addr constant [5 x i8] c"key1a" -@"$stringlit_3566" = unnamed_addr constant [5 x i8] c"key2a" -@"$stringlit_3733" = unnamed_addr constant [36 x i8] c"Incorrect size of f_m3[key1a][key2a]" -@"$stringlit_3755" = unnamed_addr constant [19 x i8] c"Unexpected empty m1" -@"$stringlit_3777" = unnamed_addr constant [28 x i8] c"Incorrect size of f_m3[key1]" -@"$stringlit_3799" = unnamed_addr constant [19 x i8] c"Unexpected empty m2" -@"$stringlit_3819" = unnamed_addr constant [5 x i8] c"key1b" -@"$stringlit_3830" = unnamed_addr constant [5 x i8] c"key2b" -@"$stringlit_3841" = unnamed_addr constant [5 x i8] c"key1c" -@"$stringlit_3852" = unnamed_addr constant [5 x i8] c"key2c" -@"$stringlit_3863" = unnamed_addr constant [5 x i8] c"key1d" -@"$stringlit_3874" = unnamed_addr constant [5 x i8] c"key2d" -@"$stringlit_3885" = unnamed_addr constant [3 x i8] c"420" -@"$stringlit_3896" = unnamed_addr constant [3 x i8] c"421" -@"$stringlit_3907" = unnamed_addr constant [3 x i8] c"422" -@"$stringlit_3918" = unnamed_addr constant [3 x i8] c"423" -@"$f_m2_4161" = unnamed_addr constant [5 x i8] c"f_m2\00" -@"$stringlit_4184" = unnamed_addr constant [3 x i8] c"t16" -@"$stringlit_4195" = unnamed_addr constant [5 x i8] c"key1a" -@"$stringlit_4206" = unnamed_addr constant [5 x i8] c"key2a" -@"$stringlit_4217" = unnamed_addr constant [5 x i8] c"key1b" -@"$stringlit_4228" = unnamed_addr constant [5 x i8] c"key2b" -@"$stringlit_4239" = unnamed_addr constant [5 x i8] c"key1c" -@"$stringlit_4250" = unnamed_addr constant [5 x i8] c"key2c" -@"$stringlit_4261" = unnamed_addr constant [5 x i8] c"key1d" -@"$stringlit_4272" = unnamed_addr constant [5 x i8] c"key2d" -@"$f_m2_4278" = unnamed_addr constant [5 x i8] c"f_m2\00" -@"$f_m2_4297" = unnamed_addr constant [5 x i8] c"f_m2\00" -@"$f_m2_4316" = unnamed_addr constant [5 x i8] c"f_m2\00" -@"$f_m2_4335" = unnamed_addr constant [5 x i8] c"f_m2\00" -@"$stringlit_4359" = unnamed_addr constant [3 x i8] c"420" -@"$stringlit_4370" = unnamed_addr constant [3 x i8] c"421" -@"$stringlit_4381" = unnamed_addr constant [3 x i8] c"422" -@"$stringlit_4392" = unnamed_addr constant [3 x i8] c"423" -@"$stringlit_4685" = unnamed_addr constant [0 x i8] zeroinitializer -@"$stringlit_4696" = unnamed_addr constant [3 x i8] c"420" -@"$f_m1_4739" = unnamed_addr constant [5 x i8] c"f_m1\00" -@"$stringlit_4762" = unnamed_addr constant [3 x i8] c"t17" -@"$stringlit_4773" = unnamed_addr constant [0 x i8] zeroinitializer -@"$f_m1_4777" = unnamed_addr constant [5 x i8] c"f_m1\00" -@"$f_m1_4822" = unnamed_addr constant [5 x i8] c"f_m1\00" -@"$stringlit_4843" = unnamed_addr constant [3 x i8] c"t18" -@"$stringlit_4854" = unnamed_addr constant [0 x i8] zeroinitializer -@"$f_m1_4858" = unnamed_addr constant [5 x i8] c"f_m1\00" +@"$stringlit_2674" = unnamed_addr constant [3 x i8] c"t10" +@"$stringlit_2685" = unnamed_addr constant [5 x i8] c"key1a" +@"$f_m1_2686" = unnamed_addr constant [5 x i8] c"f_m1\00" +@"$stringlit_2744" = unnamed_addr constant [3 x i8] c"420" +@"$stringlit_2793" = unnamed_addr constant [25 x i8] c"Incorrect value for key1a" +@"$stringlit_2815" = unnamed_addr constant [15 x i8] c"key1a not found" +@"$f_m1_2834" = unnamed_addr constant [5 x i8] c"f_m1\00" +@"$stringlit_2858" = unnamed_addr constant [3 x i8] c"t11" +@"$f_m1_2859" = unnamed_addr constant [5 x i8] c"f_m1\00" +@"$f_m2_2957" = unnamed_addr constant [5 x i8] c"f_m2\00" +@"$stringlit_2983" = unnamed_addr constant [3 x i8] c"t12" +@"$f_m2_2984" = unnamed_addr constant [5 x i8] c"f_m2\00" +@"$stringlit_3083" = unnamed_addr constant [5 x i8] c"key1a" +@"$f_m2_3097" = unnamed_addr constant [5 x i8] c"f_m2\00" +@"$stringlit_3123" = unnamed_addr constant [3 x i8] c"t13" +@"$stringlit_3134" = unnamed_addr constant [5 x i8] c"key1a" +@"$f_m2_3138" = unnamed_addr constant [5 x i8] c"f_m2\00" +@"$stringlit_3231" = unnamed_addr constant [29 x i8] c"Submap should have been empty" +@"$stringlit_3279" = unnamed_addr constant [5 x i8] c"key2a" +@"$f_m3_3358" = unnamed_addr constant [5 x i8] c"f_m3\00" +@"$stringlit_3384" = unnamed_addr constant [3 x i8] c"t14" +@"$f_m3_3385" = unnamed_addr constant [5 x i8] c"f_m3\00" +@"$f_m_3483" = unnamed_addr constant [4 x i8] c"f_m\00" +@"$stringlit_3509" = unnamed_addr constant [3 x i8] c"t15" +@"$f_m3_3510" = unnamed_addr constant [5 x i8] c"f_m3\00" +@"$stringlit_3588" = unnamed_addr constant [22 x i8] c"Incorrect size of f_m3" +@"$stringlit_3608" = unnamed_addr constant [5 x i8] c"key1a" +@"$stringlit_3619" = unnamed_addr constant [5 x i8] c"key2a" +@"$stringlit_3786" = unnamed_addr constant [36 x i8] c"Incorrect size of f_m3[key1a][key2a]" +@"$stringlit_3808" = unnamed_addr constant [19 x i8] c"Unexpected empty m1" +@"$stringlit_3830" = unnamed_addr constant [28 x i8] c"Incorrect size of f_m3[key1]" +@"$stringlit_3852" = unnamed_addr constant [19 x i8] c"Unexpected empty m2" +@"$stringlit_3872" = unnamed_addr constant [5 x i8] c"key1b" +@"$stringlit_3883" = unnamed_addr constant [5 x i8] c"key2b" +@"$stringlit_3894" = unnamed_addr constant [5 x i8] c"key1c" +@"$stringlit_3905" = unnamed_addr constant [5 x i8] c"key2c" +@"$stringlit_3916" = unnamed_addr constant [5 x i8] c"key1d" +@"$stringlit_3927" = unnamed_addr constant [5 x i8] c"key2d" +@"$stringlit_3938" = unnamed_addr constant [3 x i8] c"420" +@"$stringlit_3949" = unnamed_addr constant [3 x i8] c"421" +@"$stringlit_3960" = unnamed_addr constant [3 x i8] c"422" +@"$stringlit_3971" = unnamed_addr constant [3 x i8] c"423" +@"$f_m2_4214" = unnamed_addr constant [5 x i8] c"f_m2\00" +@"$stringlit_4240" = unnamed_addr constant [3 x i8] c"t16" +@"$stringlit_4251" = unnamed_addr constant [5 x i8] c"key1a" +@"$stringlit_4262" = unnamed_addr constant [5 x i8] c"key2a" +@"$stringlit_4273" = unnamed_addr constant [5 x i8] c"key1b" +@"$stringlit_4284" = unnamed_addr constant [5 x i8] c"key2b" +@"$stringlit_4295" = unnamed_addr constant [5 x i8] c"key1c" +@"$stringlit_4306" = unnamed_addr constant [5 x i8] c"key2c" +@"$stringlit_4317" = unnamed_addr constant [5 x i8] c"key1d" +@"$stringlit_4328" = unnamed_addr constant [5 x i8] c"key2d" +@"$f_m2_4334" = unnamed_addr constant [5 x i8] c"f_m2\00" +@"$f_m2_4353" = unnamed_addr constant [5 x i8] c"f_m2\00" +@"$f_m2_4372" = unnamed_addr constant [5 x i8] c"f_m2\00" +@"$f_m2_4391" = unnamed_addr constant [5 x i8] c"f_m2\00" +@"$stringlit_4415" = unnamed_addr constant [3 x i8] c"420" +@"$stringlit_4426" = unnamed_addr constant [3 x i8] c"421" +@"$stringlit_4437" = unnamed_addr constant [3 x i8] c"422" +@"$stringlit_4448" = unnamed_addr constant [3 x i8] c"423" +@"$stringlit_4741" = unnamed_addr constant [0 x i8] zeroinitializer +@"$stringlit_4752" = unnamed_addr constant [3 x i8] c"420" +@"$f_m1_4795" = unnamed_addr constant [5 x i8] c"f_m1\00" +@"$stringlit_4821" = unnamed_addr constant [3 x i8] c"t17" +@"$stringlit_4832" = unnamed_addr constant [0 x i8] zeroinitializer +@"$f_m1_4836" = unnamed_addr constant [5 x i8] c"f_m1\00" +@"$f_m1_4881" = unnamed_addr constant [5 x i8] c"f_m1\00" +@"$stringlit_4905" = unnamed_addr constant [3 x i8] c"t18" +@"$stringlit_4916" = unnamed_addr constant [0 x i8] zeroinitializer +@"$f_m1_4920" = unnamed_addr constant [5 x i8] c"f_m1\00" @_tydescr_table = constant [24 x %_TyDescrTy_Typ*] [%_TyDescrTy_Typ* @"$TyDescr_Map_77", %_TyDescrTy_Typ* @"$TyDescr_ADT_Option_Map_(String)_(String)_71", %_TyDescrTy_Typ* @"$TyDescr_Event_58", %_TyDescrTy_Typ* @"$TyDescr_Int64_40", %_TyDescrTy_Typ* @"$TyDescr_Addr_80", %_TyDescrTy_Typ* @"$TyDescr_Map_75", %_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_73", %_TyDescrTy_Typ* @"$TyDescr_Bystr20_66", %_TyDescrTy_Typ* @"$TyDescr_Uint256_50", %_TyDescrTy_Typ* @"$TyDescr_Uint32_38", %_TyDescrTy_Typ* @"$TyDescr_Map_76", %_TyDescrTy_Typ* @"$TyDescr_Uint64_42", %_TyDescrTy_Typ* @"$TyDescr_Bnum_54", %_TyDescrTy_Typ* @"$TyDescr_Uint128_46", %_TyDescrTy_Typ* @"$TyDescr_Exception_60", %_TyDescrTy_Typ* @"$TyDescr_String_52", %_TyDescrTy_Typ* @"$TyDescr_ADT_Option_Map_(String)_(Map_(String)_(String))_70", %_TyDescrTy_Typ* @"$TyDescr_ADT_Option_String_72", %_TyDescrTy_Typ* @"$TyDescr_Int256_48", %_TyDescrTy_Typ* @"$TyDescr_Int128_44", %_TyDescrTy_Typ* @"$TyDescr_Bystr_64", %_TyDescrTy_Typ* @"$TyDescr_ReplicateContr_62", %_TyDescrTy_Typ* @"$TyDescr_Message_56", %_TyDescrTy_Typ* @"$TyDescr_Int32_36"] @_tydescr_table_length = constant i32 24 -@"$pname__scilla_version_4903" = unnamed_addr constant [15 x i8] c"_scilla_version" -@"$pname__this_address_4904" = unnamed_addr constant [13 x i8] c"_this_address" -@"$pname__creation_block_4905" = unnamed_addr constant [15 x i8] c"_creation_block" -@_contract_parameters = constant [3 x %"$ParamDescr_4901"] [%"$ParamDescr_4901" { %ParamDescrString { i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$pname__scilla_version_4903", i32 0, i32 0), i32 15 }, %_TyDescrTy_Typ* @"$TyDescr_Uint32_38" }, %"$ParamDescr_4901" { %ParamDescrString { i8* getelementptr inbounds ([13 x i8], [13 x i8]* @"$pname__this_address_4904", i32 0, i32 0), i32 13 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr20_66" }, %"$ParamDescr_4901" { %ParamDescrString { i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$pname__creation_block_4905", i32 0, i32 0), i32 15 }, %_TyDescrTy_Typ* @"$TyDescr_Bnum_54" }] +@"$pname__scilla_version_4968" = unnamed_addr constant [15 x i8] c"_scilla_version" +@"$pname__this_address_4969" = unnamed_addr constant [13 x i8] c"_this_address" +@"$pname__creation_block_4970" = unnamed_addr constant [15 x i8] c"_creation_block" +@_contract_parameters = constant [3 x %"$ParamDescr_4966"] [%"$ParamDescr_4966" { %ParamDescrString { i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$pname__scilla_version_4968", i32 0, i32 0), i32 15 }, %_TyDescrTy_Typ* @"$TyDescr_Uint32_38" }, %"$ParamDescr_4966" { %ParamDescrString { i8* getelementptr inbounds ([13 x i8], [13 x i8]* @"$pname__this_address_4969", i32 0, i32 0), i32 13 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr20_66" }, %"$ParamDescr_4966" { %ParamDescrString { i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$pname__creation_block_4970", i32 0, i32 0), i32 15 }, %_TyDescrTy_Typ* @"$TyDescr_Bnum_54" }] @_contract_parameters_length = constant i32 3 -@"$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_t1_4909" = unnamed_addr constant [3 x %"$ParamDescr_4901"] [%"$ParamDescr_4901" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_4906", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_46" }, %"$ParamDescr_4901" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_4907", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_80" }, %"$ParamDescr_4901" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_4908", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_80" }] -@"$tname_t1_4910" = unnamed_addr constant [2 x i8] c"t1" -@"$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_t2_4914" = unnamed_addr constant [3 x %"$ParamDescr_4901"] [%"$ParamDescr_4901" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_4911", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_46" }, %"$ParamDescr_4901" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_4912", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_80" }, %"$ParamDescr_4901" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_4913", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_80" }] -@"$tname_t2_4915" = unnamed_addr constant [2 x i8] c"t2" -@"$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_t3_4919" = unnamed_addr constant [3 x %"$ParamDescr_4901"] [%"$ParamDescr_4901" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_4916", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_46" }, %"$ParamDescr_4901" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_4917", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_80" }, %"$ParamDescr_4901" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_4918", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_80" }] -@"$tname_t3_4920" = unnamed_addr constant [2 x i8] c"t3" -@"$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_t4_4924" = unnamed_addr constant [3 x %"$ParamDescr_4901"] [%"$ParamDescr_4901" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_4921", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_46" }, %"$ParamDescr_4901" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_4922", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_80" }, %"$ParamDescr_4901" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_4923", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_80" }] -@"$tname_t4_4925" = unnamed_addr constant [2 x i8] c"t4" -@"$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_t5_4929" = unnamed_addr constant [3 x %"$ParamDescr_4901"] [%"$ParamDescr_4901" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_4926", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_46" }, %"$ParamDescr_4901" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_4927", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_80" }, %"$ParamDescr_4901" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_4928", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_80" }] -@"$tname_t5_4930" = unnamed_addr constant [2 x i8] c"t5" -@"$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_t6_4934" = unnamed_addr constant [3 x %"$ParamDescr_4901"] [%"$ParamDescr_4901" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_4931", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_46" }, %"$ParamDescr_4901" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_4932", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_80" }, %"$ParamDescr_4901" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_4933", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_80" }] -@"$tname_t6_4935" = unnamed_addr constant [2 x i8] c"t6" -@"$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_t7_4939" = unnamed_addr constant [3 x %"$ParamDescr_4901"] [%"$ParamDescr_4901" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_4936", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_46" }, %"$ParamDescr_4901" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_4937", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_80" }, %"$ParamDescr_4901" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_4938", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_80" }] -@"$tname_t7_4940" = unnamed_addr constant [2 x i8] c"t7" -@"$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_t8_4944" = unnamed_addr constant [3 x %"$ParamDescr_4901"] [%"$ParamDescr_4901" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_4941", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_46" }, %"$ParamDescr_4901" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_4942", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_80" }, %"$ParamDescr_4901" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_4943", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_80" }] -@"$tname_t8_4945" = unnamed_addr constant [2 x i8] c"t8" -@"$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_t9_4949" = unnamed_addr constant [3 x %"$ParamDescr_4901"] [%"$ParamDescr_4901" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_4946", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_46" }, %"$ParamDescr_4901" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_4947", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_80" }, %"$ParamDescr_4901" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_4948", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_80" }] -@"$tname_t9_4950" = unnamed_addr constant [2 x i8] c"t9" -@"$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_t10_4954" = unnamed_addr constant [3 x %"$ParamDescr_4901"] [%"$ParamDescr_4901" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_4951", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_46" }, %"$ParamDescr_4901" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_4952", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_80" }, %"$ParamDescr_4901" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_4953", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_80" }] -@"$tname_t10_4955" = unnamed_addr constant [3 x i8] c"t10" -@"$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_t11_4959" = unnamed_addr constant [3 x %"$ParamDescr_4901"] [%"$ParamDescr_4901" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_4956", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_46" }, %"$ParamDescr_4901" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_4957", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_80" }, %"$ParamDescr_4901" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_4958", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_80" }] -@"$tname_t11_4960" = unnamed_addr constant [3 x i8] c"t11" -@"$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_t12_4964" = unnamed_addr constant [3 x %"$ParamDescr_4901"] [%"$ParamDescr_4901" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_4961", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_46" }, %"$ParamDescr_4901" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_4962", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_80" }, %"$ParamDescr_4901" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_4963", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_80" }] -@"$tname_t12_4965" = unnamed_addr constant [3 x i8] c"t12" -@"$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_t13_4969" = unnamed_addr constant [3 x %"$ParamDescr_4901"] [%"$ParamDescr_4901" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_4966", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_46" }, %"$ParamDescr_4901" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_4967", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_80" }, %"$ParamDescr_4901" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_4968", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_80" }] -@"$tname_t13_4970" = unnamed_addr constant [3 x i8] c"t13" @"$tpname__amount_4971" = unnamed_addr constant [7 x i8] c"_amount" @"$tpname__origin_4972" = unnamed_addr constant [7 x i8] c"_origin" @"$tpname__sender_4973" = unnamed_addr constant [7 x i8] c"_sender" -@"$tparams_t14_4974" = unnamed_addr constant [3 x %"$ParamDescr_4901"] [%"$ParamDescr_4901" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_4971", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_46" }, %"$ParamDescr_4901" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_4972", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_80" }, %"$ParamDescr_4901" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_4973", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_80" }] -@"$tname_t14_4975" = unnamed_addr constant [3 x i8] c"t14" +@"$tparams_t1_4974" = unnamed_addr constant [3 x %"$ParamDescr_4966"] [%"$ParamDescr_4966" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_4971", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_46" }, %"$ParamDescr_4966" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_4972", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_80" }, %"$ParamDescr_4966" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_4973", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_80" }] +@"$tname_t1_4975" = unnamed_addr constant [2 x i8] c"t1" @"$tpname__amount_4976" = unnamed_addr constant [7 x i8] c"_amount" @"$tpname__origin_4977" = unnamed_addr constant [7 x i8] c"_origin" @"$tpname__sender_4978" = unnamed_addr constant [7 x i8] c"_sender" -@"$tparams_t15_4979" = unnamed_addr constant [3 x %"$ParamDescr_4901"] [%"$ParamDescr_4901" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_4976", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_46" }, %"$ParamDescr_4901" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_4977", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_80" }, %"$ParamDescr_4901" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_4978", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_80" }] -@"$tname_t15_4980" = unnamed_addr constant [3 x i8] c"t15" +@"$tparams_t2_4979" = unnamed_addr constant [3 x %"$ParamDescr_4966"] [%"$ParamDescr_4966" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_4976", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_46" }, %"$ParamDescr_4966" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_4977", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_80" }, %"$ParamDescr_4966" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_4978", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_80" }] +@"$tname_t2_4980" = unnamed_addr constant [2 x i8] c"t2" @"$tpname__amount_4981" = unnamed_addr constant [7 x i8] c"_amount" @"$tpname__origin_4982" = unnamed_addr constant [7 x i8] c"_origin" @"$tpname__sender_4983" = unnamed_addr constant [7 x i8] c"_sender" -@"$tparams_t16_4984" = unnamed_addr constant [3 x %"$ParamDescr_4901"] [%"$ParamDescr_4901" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_4981", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_46" }, %"$ParamDescr_4901" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_4982", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_80" }, %"$ParamDescr_4901" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_4983", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_80" }] -@"$tname_t16_4985" = unnamed_addr constant [3 x i8] c"t16" +@"$tparams_t3_4984" = unnamed_addr constant [3 x %"$ParamDescr_4966"] [%"$ParamDescr_4966" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_4981", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_46" }, %"$ParamDescr_4966" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_4982", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_80" }, %"$ParamDescr_4966" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_4983", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_80" }] +@"$tname_t3_4985" = unnamed_addr constant [2 x i8] c"t3" @"$tpname__amount_4986" = unnamed_addr constant [7 x i8] c"_amount" @"$tpname__origin_4987" = unnamed_addr constant [7 x i8] c"_origin" @"$tpname__sender_4988" = unnamed_addr constant [7 x i8] c"_sender" -@"$tparams_t17_4989" = unnamed_addr constant [3 x %"$ParamDescr_4901"] [%"$ParamDescr_4901" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_4986", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_46" }, %"$ParamDescr_4901" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_4987", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_80" }, %"$ParamDescr_4901" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_4988", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_80" }] -@"$tname_t17_4990" = unnamed_addr constant [3 x i8] c"t17" +@"$tparams_t4_4989" = unnamed_addr constant [3 x %"$ParamDescr_4966"] [%"$ParamDescr_4966" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_4986", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_46" }, %"$ParamDescr_4966" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_4987", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_80" }, %"$ParamDescr_4966" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_4988", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_80" }] +@"$tname_t4_4990" = unnamed_addr constant [2 x i8] c"t4" @"$tpname__amount_4991" = unnamed_addr constant [7 x i8] c"_amount" @"$tpname__origin_4992" = unnamed_addr constant [7 x i8] c"_origin" @"$tpname__sender_4993" = unnamed_addr constant [7 x i8] c"_sender" -@"$tparams_t18_4994" = unnamed_addr constant [3 x %"$ParamDescr_4901"] [%"$ParamDescr_4901" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_4991", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_46" }, %"$ParamDescr_4901" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_4992", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_80" }, %"$ParamDescr_4901" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_4993", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_80" }] -@"$tname_t18_4995" = unnamed_addr constant [3 x i8] c"t18" -@_transition_parameters = constant [18 x %"$TransDescr_4902"] [%"$TransDescr_4902" { %ParamDescrString { i8* getelementptr inbounds ([2 x i8], [2 x i8]* @"$tname_t1_4910", i32 0, i32 0), i32 2 }, i32 3, %"$ParamDescr_4901"* getelementptr inbounds ([3 x %"$ParamDescr_4901"], [3 x %"$ParamDescr_4901"]* @"$tparams_t1_4909", i32 0, i32 0) }, %"$TransDescr_4902" { %ParamDescrString { i8* getelementptr inbounds ([2 x i8], [2 x i8]* @"$tname_t2_4915", i32 0, i32 0), i32 2 }, i32 3, %"$ParamDescr_4901"* getelementptr inbounds ([3 x %"$ParamDescr_4901"], [3 x %"$ParamDescr_4901"]* @"$tparams_t2_4914", i32 0, i32 0) }, %"$TransDescr_4902" { %ParamDescrString { i8* getelementptr inbounds ([2 x i8], [2 x i8]* @"$tname_t3_4920", i32 0, i32 0), i32 2 }, i32 3, %"$ParamDescr_4901"* getelementptr inbounds ([3 x %"$ParamDescr_4901"], [3 x %"$ParamDescr_4901"]* @"$tparams_t3_4919", i32 0, i32 0) }, %"$TransDescr_4902" { %ParamDescrString { i8* getelementptr inbounds ([2 x i8], [2 x i8]* @"$tname_t4_4925", i32 0, i32 0), i32 2 }, i32 3, %"$ParamDescr_4901"* getelementptr inbounds ([3 x %"$ParamDescr_4901"], [3 x %"$ParamDescr_4901"]* @"$tparams_t4_4924", i32 0, i32 0) }, %"$TransDescr_4902" { %ParamDescrString { i8* getelementptr inbounds ([2 x i8], [2 x i8]* @"$tname_t5_4930", i32 0, i32 0), i32 2 }, i32 3, %"$ParamDescr_4901"* getelementptr inbounds ([3 x %"$ParamDescr_4901"], [3 x %"$ParamDescr_4901"]* @"$tparams_t5_4929", i32 0, i32 0) }, %"$TransDescr_4902" { %ParamDescrString { i8* getelementptr inbounds ([2 x i8], [2 x i8]* @"$tname_t6_4935", i32 0, i32 0), i32 2 }, i32 3, %"$ParamDescr_4901"* getelementptr inbounds ([3 x %"$ParamDescr_4901"], [3 x %"$ParamDescr_4901"]* @"$tparams_t6_4934", i32 0, i32 0) }, %"$TransDescr_4902" { %ParamDescrString { i8* getelementptr inbounds ([2 x i8], [2 x i8]* @"$tname_t7_4940", i32 0, i32 0), i32 2 }, i32 3, %"$ParamDescr_4901"* getelementptr inbounds ([3 x %"$ParamDescr_4901"], [3 x %"$ParamDescr_4901"]* @"$tparams_t7_4939", i32 0, i32 0) }, %"$TransDescr_4902" { %ParamDescrString { i8* getelementptr inbounds ([2 x i8], [2 x i8]* @"$tname_t8_4945", i32 0, i32 0), i32 2 }, i32 3, %"$ParamDescr_4901"* getelementptr inbounds ([3 x %"$ParamDescr_4901"], [3 x %"$ParamDescr_4901"]* @"$tparams_t8_4944", i32 0, i32 0) }, %"$TransDescr_4902" { %ParamDescrString { i8* getelementptr inbounds ([2 x i8], [2 x i8]* @"$tname_t9_4950", i32 0, i32 0), i32 2 }, i32 3, %"$ParamDescr_4901"* getelementptr inbounds ([3 x %"$ParamDescr_4901"], [3 x %"$ParamDescr_4901"]* @"$tparams_t9_4949", i32 0, i32 0) }, %"$TransDescr_4902" { %ParamDescrString { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$tname_t10_4955", i32 0, i32 0), i32 3 }, i32 3, %"$ParamDescr_4901"* getelementptr inbounds ([3 x %"$ParamDescr_4901"], [3 x %"$ParamDescr_4901"]* @"$tparams_t10_4954", i32 0, i32 0) }, %"$TransDescr_4902" { %ParamDescrString { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$tname_t11_4960", i32 0, i32 0), i32 3 }, i32 3, %"$ParamDescr_4901"* getelementptr inbounds ([3 x %"$ParamDescr_4901"], [3 x %"$ParamDescr_4901"]* @"$tparams_t11_4959", i32 0, i32 0) }, %"$TransDescr_4902" { %ParamDescrString { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$tname_t12_4965", i32 0, i32 0), i32 3 }, i32 3, %"$ParamDescr_4901"* getelementptr inbounds ([3 x %"$ParamDescr_4901"], [3 x %"$ParamDescr_4901"]* @"$tparams_t12_4964", i32 0, i32 0) }, %"$TransDescr_4902" { %ParamDescrString { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$tname_t13_4970", i32 0, i32 0), i32 3 }, i32 3, %"$ParamDescr_4901"* getelementptr inbounds ([3 x %"$ParamDescr_4901"], [3 x %"$ParamDescr_4901"]* @"$tparams_t13_4969", i32 0, i32 0) }, %"$TransDescr_4902" { %ParamDescrString { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$tname_t14_4975", i32 0, i32 0), i32 3 }, i32 3, %"$ParamDescr_4901"* getelementptr inbounds ([3 x %"$ParamDescr_4901"], [3 x %"$ParamDescr_4901"]* @"$tparams_t14_4974", i32 0, i32 0) }, %"$TransDescr_4902" { %ParamDescrString { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$tname_t15_4980", i32 0, i32 0), i32 3 }, i32 3, %"$ParamDescr_4901"* getelementptr inbounds ([3 x %"$ParamDescr_4901"], [3 x %"$ParamDescr_4901"]* @"$tparams_t15_4979", i32 0, i32 0) }, %"$TransDescr_4902" { %ParamDescrString { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$tname_t16_4985", i32 0, i32 0), i32 3 }, i32 3, %"$ParamDescr_4901"* getelementptr inbounds ([3 x %"$ParamDescr_4901"], [3 x %"$ParamDescr_4901"]* @"$tparams_t16_4984", i32 0, i32 0) }, %"$TransDescr_4902" { %ParamDescrString { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$tname_t17_4990", i32 0, i32 0), i32 3 }, i32 3, %"$ParamDescr_4901"* getelementptr inbounds ([3 x %"$ParamDescr_4901"], [3 x %"$ParamDescr_4901"]* @"$tparams_t17_4989", i32 0, i32 0) }, %"$TransDescr_4902" { %ParamDescrString { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$tname_t18_4995", i32 0, i32 0), i32 3 }, i32 3, %"$ParamDescr_4901"* getelementptr inbounds ([3 x %"$ParamDescr_4901"], [3 x %"$ParamDescr_4901"]* @"$tparams_t18_4994", i32 0, i32 0) }] +@"$tparams_t5_4994" = unnamed_addr constant [3 x %"$ParamDescr_4966"] [%"$ParamDescr_4966" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_4991", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_46" }, %"$ParamDescr_4966" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_4992", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_80" }, %"$ParamDescr_4966" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_4993", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_80" }] +@"$tname_t5_4995" = unnamed_addr constant [2 x i8] c"t5" +@"$tpname__amount_4996" = unnamed_addr constant [7 x i8] c"_amount" +@"$tpname__origin_4997" = unnamed_addr constant [7 x i8] c"_origin" +@"$tpname__sender_4998" = unnamed_addr constant [7 x i8] c"_sender" +@"$tparams_t6_4999" = unnamed_addr constant [3 x %"$ParamDescr_4966"] [%"$ParamDescr_4966" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_4996", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_46" }, %"$ParamDescr_4966" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_4997", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_80" }, %"$ParamDescr_4966" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_4998", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_80" }] +@"$tname_t6_5000" = unnamed_addr constant [2 x i8] c"t6" +@"$tpname__amount_5001" = unnamed_addr constant [7 x i8] c"_amount" +@"$tpname__origin_5002" = unnamed_addr constant [7 x i8] c"_origin" +@"$tpname__sender_5003" = unnamed_addr constant [7 x i8] c"_sender" +@"$tparams_t7_5004" = unnamed_addr constant [3 x %"$ParamDescr_4966"] [%"$ParamDescr_4966" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_5001", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_46" }, %"$ParamDescr_4966" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_5002", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_80" }, %"$ParamDescr_4966" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_5003", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_80" }] +@"$tname_t7_5005" = unnamed_addr constant [2 x i8] c"t7" +@"$tpname__amount_5006" = unnamed_addr constant [7 x i8] c"_amount" +@"$tpname__origin_5007" = unnamed_addr constant [7 x i8] c"_origin" +@"$tpname__sender_5008" = unnamed_addr constant [7 x i8] c"_sender" +@"$tparams_t8_5009" = unnamed_addr constant [3 x %"$ParamDescr_4966"] [%"$ParamDescr_4966" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_5006", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_46" }, %"$ParamDescr_4966" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_5007", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_80" }, %"$ParamDescr_4966" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_5008", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_80" }] +@"$tname_t8_5010" = unnamed_addr constant [2 x i8] c"t8" +@"$tpname__amount_5011" = unnamed_addr constant [7 x i8] c"_amount" +@"$tpname__origin_5012" = unnamed_addr constant [7 x i8] c"_origin" +@"$tpname__sender_5013" = unnamed_addr constant [7 x i8] c"_sender" +@"$tparams_t9_5014" = unnamed_addr constant [3 x %"$ParamDescr_4966"] [%"$ParamDescr_4966" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_5011", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_46" }, %"$ParamDescr_4966" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_5012", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_80" }, %"$ParamDescr_4966" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_5013", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_80" }] +@"$tname_t9_5015" = unnamed_addr constant [2 x i8] c"t9" +@"$tpname__amount_5016" = unnamed_addr constant [7 x i8] c"_amount" +@"$tpname__origin_5017" = unnamed_addr constant [7 x i8] c"_origin" +@"$tpname__sender_5018" = unnamed_addr constant [7 x i8] c"_sender" +@"$tparams_t10_5019" = unnamed_addr constant [3 x %"$ParamDescr_4966"] [%"$ParamDescr_4966" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_5016", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_46" }, %"$ParamDescr_4966" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_5017", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_80" }, %"$ParamDescr_4966" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_5018", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_80" }] +@"$tname_t10_5020" = unnamed_addr constant [3 x i8] c"t10" +@"$tpname__amount_5021" = unnamed_addr constant [7 x i8] c"_amount" +@"$tpname__origin_5022" = unnamed_addr constant [7 x i8] c"_origin" +@"$tpname__sender_5023" = unnamed_addr constant [7 x i8] c"_sender" +@"$tparams_t11_5024" = unnamed_addr constant [3 x %"$ParamDescr_4966"] [%"$ParamDescr_4966" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_5021", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_46" }, %"$ParamDescr_4966" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_5022", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_80" }, %"$ParamDescr_4966" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_5023", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_80" }] +@"$tname_t11_5025" = unnamed_addr constant [3 x i8] c"t11" +@"$tpname__amount_5026" = unnamed_addr constant [7 x i8] c"_amount" +@"$tpname__origin_5027" = unnamed_addr constant [7 x i8] c"_origin" +@"$tpname__sender_5028" = unnamed_addr constant [7 x i8] c"_sender" +@"$tparams_t12_5029" = unnamed_addr constant [3 x %"$ParamDescr_4966"] [%"$ParamDescr_4966" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_5026", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_46" }, %"$ParamDescr_4966" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_5027", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_80" }, %"$ParamDescr_4966" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_5028", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_80" }] +@"$tname_t12_5030" = unnamed_addr constant [3 x i8] c"t12" +@"$tpname__amount_5031" = unnamed_addr constant [7 x i8] c"_amount" +@"$tpname__origin_5032" = unnamed_addr constant [7 x i8] c"_origin" +@"$tpname__sender_5033" = unnamed_addr constant [7 x i8] c"_sender" +@"$tparams_t13_5034" = unnamed_addr constant [3 x %"$ParamDescr_4966"] [%"$ParamDescr_4966" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_5031", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_46" }, %"$ParamDescr_4966" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_5032", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_80" }, %"$ParamDescr_4966" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_5033", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_80" }] +@"$tname_t13_5035" = unnamed_addr constant [3 x i8] c"t13" +@"$tpname__amount_5036" = unnamed_addr constant [7 x i8] c"_amount" +@"$tpname__origin_5037" = unnamed_addr constant [7 x i8] c"_origin" +@"$tpname__sender_5038" = unnamed_addr constant [7 x i8] c"_sender" +@"$tparams_t14_5039" = unnamed_addr constant [3 x %"$ParamDescr_4966"] [%"$ParamDescr_4966" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_5036", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_46" }, %"$ParamDescr_4966" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_5037", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_80" }, %"$ParamDescr_4966" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_5038", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_80" }] +@"$tname_t14_5040" = unnamed_addr constant [3 x i8] c"t14" +@"$tpname__amount_5041" = unnamed_addr constant [7 x i8] c"_amount" +@"$tpname__origin_5042" = unnamed_addr constant [7 x i8] c"_origin" +@"$tpname__sender_5043" = unnamed_addr constant [7 x i8] c"_sender" +@"$tparams_t15_5044" = unnamed_addr constant [3 x %"$ParamDescr_4966"] [%"$ParamDescr_4966" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_5041", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_46" }, %"$ParamDescr_4966" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_5042", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_80" }, %"$ParamDescr_4966" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_5043", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_80" }] +@"$tname_t15_5045" = unnamed_addr constant [3 x i8] c"t15" +@"$tpname__amount_5046" = unnamed_addr constant [7 x i8] c"_amount" +@"$tpname__origin_5047" = unnamed_addr constant [7 x i8] c"_origin" +@"$tpname__sender_5048" = unnamed_addr constant [7 x i8] c"_sender" +@"$tparams_t16_5049" = unnamed_addr constant [3 x %"$ParamDescr_4966"] [%"$ParamDescr_4966" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_5046", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_46" }, %"$ParamDescr_4966" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_5047", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_80" }, %"$ParamDescr_4966" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_5048", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_80" }] +@"$tname_t16_5050" = unnamed_addr constant [3 x i8] c"t16" +@"$tpname__amount_5051" = unnamed_addr constant [7 x i8] c"_amount" +@"$tpname__origin_5052" = unnamed_addr constant [7 x i8] c"_origin" +@"$tpname__sender_5053" = unnamed_addr constant [7 x i8] c"_sender" +@"$tparams_t17_5054" = unnamed_addr constant [3 x %"$ParamDescr_4966"] [%"$ParamDescr_4966" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_5051", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_46" }, %"$ParamDescr_4966" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_5052", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_80" }, %"$ParamDescr_4966" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_5053", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_80" }] +@"$tname_t17_5055" = unnamed_addr constant [3 x i8] c"t17" +@"$tpname__amount_5056" = unnamed_addr constant [7 x i8] c"_amount" +@"$tpname__origin_5057" = unnamed_addr constant [7 x i8] c"_origin" +@"$tpname__sender_5058" = unnamed_addr constant [7 x i8] c"_sender" +@"$tparams_t18_5059" = unnamed_addr constant [3 x %"$ParamDescr_4966"] [%"$ParamDescr_4966" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_5056", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_46" }, %"$ParamDescr_4966" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_5057", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_80" }, %"$ParamDescr_4966" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_5058", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_80" }] +@"$tname_t18_5060" = unnamed_addr constant [3 x i8] c"t18" +@_transition_parameters = constant [18 x %"$TransDescr_4967"] [%"$TransDescr_4967" { %ParamDescrString { i8* getelementptr inbounds ([2 x i8], [2 x i8]* @"$tname_t1_4975", i32 0, i32 0), i32 2 }, i32 3, %"$ParamDescr_4966"* getelementptr inbounds ([3 x %"$ParamDescr_4966"], [3 x %"$ParamDescr_4966"]* @"$tparams_t1_4974", i32 0, i32 0) }, %"$TransDescr_4967" { %ParamDescrString { i8* getelementptr inbounds ([2 x i8], [2 x i8]* @"$tname_t2_4980", i32 0, i32 0), i32 2 }, i32 3, %"$ParamDescr_4966"* getelementptr inbounds ([3 x %"$ParamDescr_4966"], [3 x %"$ParamDescr_4966"]* @"$tparams_t2_4979", i32 0, i32 0) }, %"$TransDescr_4967" { %ParamDescrString { i8* getelementptr inbounds ([2 x i8], [2 x i8]* @"$tname_t3_4985", i32 0, i32 0), i32 2 }, i32 3, %"$ParamDescr_4966"* getelementptr inbounds ([3 x %"$ParamDescr_4966"], [3 x %"$ParamDescr_4966"]* @"$tparams_t3_4984", i32 0, i32 0) }, %"$TransDescr_4967" { %ParamDescrString { i8* getelementptr inbounds ([2 x i8], [2 x i8]* @"$tname_t4_4990", i32 0, i32 0), i32 2 }, i32 3, %"$ParamDescr_4966"* getelementptr inbounds ([3 x %"$ParamDescr_4966"], [3 x %"$ParamDescr_4966"]* @"$tparams_t4_4989", i32 0, i32 0) }, %"$TransDescr_4967" { %ParamDescrString { i8* getelementptr inbounds ([2 x i8], [2 x i8]* @"$tname_t5_4995", i32 0, i32 0), i32 2 }, i32 3, %"$ParamDescr_4966"* getelementptr inbounds ([3 x %"$ParamDescr_4966"], [3 x %"$ParamDescr_4966"]* @"$tparams_t5_4994", i32 0, i32 0) }, %"$TransDescr_4967" { %ParamDescrString { i8* getelementptr inbounds ([2 x i8], [2 x i8]* @"$tname_t6_5000", i32 0, i32 0), i32 2 }, i32 3, %"$ParamDescr_4966"* getelementptr inbounds ([3 x %"$ParamDescr_4966"], [3 x %"$ParamDescr_4966"]* @"$tparams_t6_4999", i32 0, i32 0) }, %"$TransDescr_4967" { %ParamDescrString { i8* getelementptr inbounds ([2 x i8], [2 x i8]* @"$tname_t7_5005", i32 0, i32 0), i32 2 }, i32 3, %"$ParamDescr_4966"* getelementptr inbounds ([3 x %"$ParamDescr_4966"], [3 x %"$ParamDescr_4966"]* @"$tparams_t7_5004", i32 0, i32 0) }, %"$TransDescr_4967" { %ParamDescrString { i8* getelementptr inbounds ([2 x i8], [2 x i8]* @"$tname_t8_5010", i32 0, i32 0), i32 2 }, i32 3, %"$ParamDescr_4966"* getelementptr inbounds ([3 x %"$ParamDescr_4966"], [3 x %"$ParamDescr_4966"]* @"$tparams_t8_5009", i32 0, i32 0) }, %"$TransDescr_4967" { %ParamDescrString { i8* getelementptr inbounds ([2 x i8], [2 x i8]* @"$tname_t9_5015", i32 0, i32 0), i32 2 }, i32 3, %"$ParamDescr_4966"* getelementptr inbounds ([3 x %"$ParamDescr_4966"], [3 x %"$ParamDescr_4966"]* @"$tparams_t9_5014", i32 0, i32 0) }, %"$TransDescr_4967" { %ParamDescrString { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$tname_t10_5020", i32 0, i32 0), i32 3 }, i32 3, %"$ParamDescr_4966"* getelementptr inbounds ([3 x %"$ParamDescr_4966"], [3 x %"$ParamDescr_4966"]* @"$tparams_t10_5019", i32 0, i32 0) }, %"$TransDescr_4967" { %ParamDescrString { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$tname_t11_5025", i32 0, i32 0), i32 3 }, i32 3, %"$ParamDescr_4966"* getelementptr inbounds ([3 x %"$ParamDescr_4966"], [3 x %"$ParamDescr_4966"]* @"$tparams_t11_5024", i32 0, i32 0) }, %"$TransDescr_4967" { %ParamDescrString { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$tname_t12_5030", i32 0, i32 0), i32 3 }, i32 3, %"$ParamDescr_4966"* getelementptr inbounds ([3 x %"$ParamDescr_4966"], [3 x %"$ParamDescr_4966"]* @"$tparams_t12_5029", i32 0, i32 0) }, %"$TransDescr_4967" { %ParamDescrString { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$tname_t13_5035", i32 0, i32 0), i32 3 }, i32 3, %"$ParamDescr_4966"* getelementptr inbounds ([3 x %"$ParamDescr_4966"], [3 x %"$ParamDescr_4966"]* @"$tparams_t13_5034", i32 0, i32 0) }, %"$TransDescr_4967" { %ParamDescrString { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$tname_t14_5040", i32 0, i32 0), i32 3 }, i32 3, %"$ParamDescr_4966"* getelementptr inbounds ([3 x %"$ParamDescr_4966"], [3 x %"$ParamDescr_4966"]* @"$tparams_t14_5039", i32 0, i32 0) }, %"$TransDescr_4967" { %ParamDescrString { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$tname_t15_5045", i32 0, i32 0), i32 3 }, i32 3, %"$ParamDescr_4966"* getelementptr inbounds ([3 x %"$ParamDescr_4966"], [3 x %"$ParamDescr_4966"]* @"$tparams_t15_5044", i32 0, i32 0) }, %"$TransDescr_4967" { %ParamDescrString { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$tname_t16_5050", i32 0, i32 0), i32 3 }, i32 3, %"$ParamDescr_4966"* getelementptr inbounds ([3 x %"$ParamDescr_4966"], [3 x %"$ParamDescr_4966"]* @"$tparams_t16_5049", i32 0, i32 0) }, %"$TransDescr_4967" { %ParamDescrString { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$tname_t17_5055", i32 0, i32 0), i32 3 }, i32 3, %"$ParamDescr_4966"* getelementptr inbounds ([3 x %"$ParamDescr_4966"], [3 x %"$ParamDescr_4966"]* @"$tparams_t17_5054", i32 0, i32 0) }, %"$TransDescr_4967" { %ParamDescrString { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$tname_t18_5060", i32 0, i32 0), i32 3 }, i32 3, %"$ParamDescr_4966"* getelementptr inbounds ([3 x %"$ParamDescr_4966"], [3 x %"$ParamDescr_4966"]* @"$tparams_t18_5059", i32 0, i32 0) }] @_transition_parameters_length = constant i32 18 -define internal %TName_Bool* @"$fundef_27"(%"$$fundef_27_env_127"* %0, %TName_Bool* %1) !dbg !4 { +define internal %TName_Bool* @"$fundef_27"(%"$$fundef_27_env_127"* %0, %TName_Bool* %1) !dbg !3 { entry: - %"$$fundef_27_env_b_140" = getelementptr inbounds %"$$fundef_27_env_127", %"$$fundef_27_env_127"* %0, i32 0, i32 0 - %"$b_envload_141" = load %TName_Bool*, %TName_Bool** %"$$fundef_27_env_b_140", align 8 + %"$c_171" = alloca %TName_Bool*, align 8 + store %TName_Bool* %1, %TName_Bool** %"$c_171", align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$c_171", metadata !9, metadata !DIExpression()), !dbg !12 + %"$$fundef_27_env_b_141" = getelementptr inbounds %"$$fundef_27_env_127", %"$$fundef_27_env_127"* %0, i32 0, i32 0 + %"$b_envload_142" = load %TName_Bool*, %TName_Bool** %"$$fundef_27_env_b_141", align 8 %b = alloca %TName_Bool*, align 8 - store %TName_Bool* %"$b_envload_141", %TName_Bool** %b, align 8 + store %TName_Bool* %"$b_envload_142", %TName_Bool** %b, align 8 %"$retval_28" = 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_148" = load %TName_Bool*, %TName_Bool** %b, align 8 - %"$b_tag_149" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$b_148", i32 0, i32 0 - %"$b_tag_150" = load i8, i8* %"$b_tag_149", align 1 - switch i8 %"$b_tag_150", label %"$empty_default_151" [ - i8 1, label %"$False_152" - i8 0, label %"$True_162" - ], !dbg !9 - -"$False_152": ; preds = %"$have_gas_145" - %"$b_153" = bitcast %TName_Bool* %"$b_148" to %CName_False* - %"$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_156": ; preds = %"$False_152" - call void @_out_of_gas() - br label %"$have_gas_157" - -"$have_gas_157": ; preds = %"$out_of_gas_156", %"$False_152" - %"$consume_158" = sub i64 %"$gasrem_154", 1 - store i64 %"$consume_158", i64* @_gasrem, align 8 - %"$adtval_159_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_159_salloc" = call i8* @_salloc(i8* %"$adtval_159_load", i64 1) - %"$adtval_159" = bitcast i8* %"$adtval_159_salloc" to %CName_False* - %"$adtgep_160" = getelementptr inbounds %CName_False, %CName_False* %"$adtval_159", i32 0, i32 0 - store i8 1, i8* %"$adtgep_160", align 1 - %"$adtptr_161" = bitcast %CName_False* %"$adtval_159" to %TName_Bool* - store %TName_Bool* %"$adtptr_161", %TName_Bool** %"$retval_28", align 8, !dbg !10 - br label %"$matchsucc_147" - -"$True_162": ; preds = %"$have_gas_145" - %"$b_163" = bitcast %TName_Bool* %"$b_148" to %CName_True* - %"$gasrem_164" = load i64, i64* @_gasrem, align 8 - %"$gascmp_165" = icmp ugt i64 1, %"$gasrem_164" - br i1 %"$gascmp_165", label %"$out_of_gas_166", label %"$have_gas_167" - -"$out_of_gas_166": ; preds = %"$True_162" - call void @_out_of_gas() - br label %"$have_gas_167" - -"$have_gas_167": ; preds = %"$out_of_gas_166", %"$True_162" - %"$consume_168" = sub i64 %"$gasrem_164", 1 - store i64 %"$consume_168", i64* @_gasrem, align 8 - store %TName_Bool* %1, %TName_Bool** %"$retval_28", align 8, !dbg !13 - br label %"$matchsucc_147" - -"$empty_default_151": ; preds = %"$have_gas_145" - br label %"$matchsucc_147" - -"$matchsucc_147": ; preds = %"$have_gas_167", %"$have_gas_157", %"$empty_default_151" - %"$$retval_28_169" = load %TName_Bool*, %TName_Bool** %"$retval_28", align 8 - ret %TName_Bool* %"$$retval_28_169" + call void @llvm.dbg.declare(metadata %TName_Bool** %"$retval_28", metadata !13, metadata !DIExpression()), !dbg !14 + %"$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_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", 2 + store i64 %"$consume_147", i64* @_gasrem, align 8 + %"$b_149" = load %TName_Bool*, %TName_Bool** %b, align 8 + %"$b_tag_150" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$b_149", i32 0, i32 0 + %"$b_tag_151" = load i8, i8* %"$b_tag_150", align 1 + switch i8 %"$b_tag_151", label %"$empty_default_152" [ + i8 1, label %"$False_153" + i8 0, label %"$True_163" + ], !dbg !14 + +"$False_153": ; preds = %"$have_gas_146" + %"$b_154" = bitcast %TName_Bool* %"$b_149" to %CName_False* + %"$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 = %"$False_153" + call void @_out_of_gas() + br label %"$have_gas_158" + +"$have_gas_158": ; preds = %"$out_of_gas_157", %"$False_153" + %"$consume_159" = sub i64 %"$gasrem_155", 1 + store i64 %"$consume_159", i64* @_gasrem, align 8 + %"$adtval_160_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_160_salloc" = call i8* @_salloc(i8* %"$adtval_160_load", i64 1) + %"$adtval_160" = bitcast i8* %"$adtval_160_salloc" to %CName_False* + %"$adtgep_161" = getelementptr inbounds %CName_False, %CName_False* %"$adtval_160", i32 0, i32 0 + store i8 1, i8* %"$adtgep_161", align 1 + %"$adtptr_162" = bitcast %CName_False* %"$adtval_160" to %TName_Bool* + store %TName_Bool* %"$adtptr_162", %TName_Bool** %"$retval_28", align 8, !dbg !15 + br label %"$matchsucc_148" + +"$True_163": ; preds = %"$have_gas_146" + %"$b_164" = bitcast %TName_Bool* %"$b_149" to %CName_True* + %"$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" + +"$out_of_gas_167": ; preds = %"$True_163" + call void @_out_of_gas() + br label %"$have_gas_168" + +"$have_gas_168": ; preds = %"$out_of_gas_167", %"$True_163" + %"$consume_169" = sub i64 %"$gasrem_165", 1 + store i64 %"$consume_169", i64* @_gasrem, align 8 + store %TName_Bool* %1, %TName_Bool** %"$retval_28", align 8, !dbg !18 + br label %"$matchsucc_148" + +"$empty_default_152": ; preds = %"$have_gas_146" + br label %"$matchsucc_148" + +"$matchsucc_148": ; preds = %"$have_gas_168", %"$have_gas_158", %"$empty_default_152" + %"$$retval_28_170" = load %TName_Bool*, %TName_Bool** %"$retval_28", align 8 + ret %TName_Bool* %"$$retval_28_170" } -define internal { %TName_Bool* (i8*, %TName_Bool*)*, i8* } @"$fundef_25"(%"$$fundef_25_env_128"* %0, %TName_Bool* %1) !dbg !15 { +define internal { %TName_Bool* (i8*, %TName_Bool*)*, i8* } @"$fundef_25"(%"$$fundef_25_env_128"* %0, %TName_Bool* %1) !dbg !20 { entry: + %"$b_140" = alloca %TName_Bool*, align 8 + store %TName_Bool* %1, %TName_Bool** %"$b_140", align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$b_140", metadata !21, metadata !DIExpression()), !dbg !22 %"$retval_26" = alloca { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, align 8 %"$gasrem_129" = load i64, i64* @_gasrem, align 8 %"$gascmp_130" = icmp ugt i64 1, %"$gasrem_129" @@ -510,7 +517,7 @@ entry: %"$$fundef_27_cloval_137" = insertvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } { %TName_Bool* (i8*, %TName_Bool*)* bitcast (%TName_Bool* (%"$$fundef_27_env_127"*, %TName_Bool*)* @"$fundef_27" to %TName_Bool* (i8*, %TName_Bool*)*), i8* undef }, i8* %"$$fundef_27_env_voidp_136", 1 %"$$fundef_27_env_b_138" = getelementptr inbounds %"$$fundef_27_env_127", %"$$fundef_27_env_127"* %"$$fundef_27_envp_134", i32 0, i32 0 store %TName_Bool* %1, %TName_Bool** %"$$fundef_27_env_b_138", align 8 - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$fundef_27_cloval_137", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$retval_26", align 8, !dbg !16 + store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$fundef_27_cloval_137", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$retval_26", align 8, !dbg !23 %"$$retval_26_139" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$retval_26", align 8 ret { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$retval_26_139" } @@ -519,159 +526,167 @@ declare void @_out_of_gas() declare i8* @_salloc(i8*, i64) -define void @_init_libs() !dbg !17 { +; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn +declare void @llvm.dbg.declare(metadata, metadata, metadata) #0 + +define void @_init_libs() !dbg !24 { entry: - %"$gasrem_170" = load i64, i64* @_gasrem, align 8 - %"$gascmp_171" = icmp ugt i64 5, %"$gasrem_170" - br i1 %"$gascmp_171", label %"$out_of_gas_172", label %"$have_gas_173" + %"$gasrem_172" = load i64, i64* @_gasrem, align 8 + %"$gascmp_173" = icmp ugt i64 5, %"$gasrem_172" + br i1 %"$gascmp_173", label %"$out_of_gas_174", label %"$have_gas_175" -"$out_of_gas_172": ; preds = %entry +"$out_of_gas_174": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_173" + br label %"$have_gas_175" -"$have_gas_173": ; preds = %"$out_of_gas_172", %entry - %"$consume_174" = sub i64 %"$gasrem_170", 5 - store i64 %"$consume_174", i64* @_gasrem, align 8 - store %Int32 { i32 5 }, %Int32* @"$_gas_charge_acc_1", align 4, !dbg !19 - %"$gasrem_175" = load i64, i64* @_gasrem, align 8 - %"$gascmp_176" = icmp ugt i64 7, %"$gasrem_175" - br i1 %"$gascmp_176", label %"$out_of_gas_177", label %"$have_gas_178" +"$have_gas_175": ; preds = %"$out_of_gas_174", %entry + %"$consume_176" = sub i64 %"$gasrem_172", 5 + store i64 %"$consume_176", i64* @_gasrem, align 8 + store %Int32 { i32 5 }, %Int32* @"$_gas_charge_acc_1", align 4, !dbg !26 + %"$gasrem_177" = load i64, i64* @_gasrem, align 8 + %"$gascmp_178" = icmp ugt i64 7, %"$gasrem_177" + br i1 %"$gascmp_178", label %"$out_of_gas_179", label %"$have_gas_180" -"$out_of_gas_177": ; preds = %"$have_gas_173" +"$out_of_gas_179": ; preds = %"$have_gas_175" call void @_out_of_gas() - br label %"$have_gas_178" + br label %"$have_gas_180" -"$have_gas_178": ; preds = %"$out_of_gas_177", %"$have_gas_173" - %"$consume_179" = sub i64 %"$gasrem_175", 7 - store i64 %"$consume_179", i64* @_gasrem, align 8 - store %Int32 { i32 7 }, %Int32* @"$_gas_charge_accBoolUtils_0", align 4, !dbg !19 - %"$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" +"$have_gas_180": ; preds = %"$out_of_gas_179", %"$have_gas_175" + %"$consume_181" = sub i64 %"$gasrem_177", 7 + store i64 %"$consume_181", i64* @_gasrem, align 8 + store %Int32 { i32 7 }, %Int32* @"$_gas_charge_accBoolUtils_0", align 4, !dbg !26 + %"$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_182": ; preds = %"$have_gas_178" +"$out_of_gas_184": ; preds = %"$have_gas_180" call void @_out_of_gas() - br label %"$have_gas_183" + br label %"$have_gas_185" -"$have_gas_183": ; preds = %"$out_of_gas_182", %"$have_gas_178" - %"$consume_184" = sub i64 %"$gasrem_180", 1 - store i64 %"$consume_184", 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_25_env_128"*, %TName_Bool*)* @"$fundef_25" 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 !20 +"$have_gas_185": ; preds = %"$out_of_gas_184", %"$have_gas_180" + %"$consume_186" = sub i64 %"$gasrem_182", 1 + store i64 %"$consume_186", 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_25_env_128"*, %TName_Bool*)* @"$fundef_25" 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 !27 ret void } -define void @_deploy_ops() !dbg !21 { +define void @_deploy_ops() !dbg !28 { entry: - %"$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" + %"$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_190": ; preds = %entry +"$out_of_gas_192": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_191" + br label %"$have_gas_193" -"$have_gas_191": ; preds = %"$out_of_gas_190", %entry - %"$consume_192" = sub i64 %"$gasrem_188", 1 - store i64 %"$consume_192", i64* @_gasrem, align 8 +"$have_gas_193": ; preds = %"$out_of_gas_192", %entry + %"$consume_194" = sub i64 %"$gasrem_190", 1 + store i64 %"$consume_194", i64* @_gasrem, align 8 %"$f_s1_29" = alloca %String, 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 - store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_198", i32 0, i32 0), i32 3 }, %String* %"$f_s1_29", align 8, !dbg !22 - %"$execptr_load_199" = load i8*, i8** @_execptr, align 8 - %"$$f_s1_29_201" = load %String, %String* %"$f_s1_29", align 8 - %"$update_value_202" = alloca %String, align 8 - store %String %"$$f_s1_29_201", %String* %"$update_value_202", align 8 - %"$update_value_203" = bitcast %String* %"$update_value_202" to i8* - call void @_update_field(i8* %"$execptr_load_199", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_s1_200", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_String_52", i32 0, i8* null, i8* %"$update_value_203"), !dbg !22 + call void @llvm.dbg.declare(metadata %String* %"$f_s1_29", metadata !29, metadata !DIExpression()), !dbg !31 + %"$gasrem_195" = load i64, i64* @_gasrem, align 8 + %"$gascmp_196" = icmp ugt i64 1, %"$gasrem_195" + br i1 %"$gascmp_196", label %"$out_of_gas_197", label %"$have_gas_198" + +"$out_of_gas_197": ; preds = %"$have_gas_193" + call void @_out_of_gas() + br label %"$have_gas_198" + +"$have_gas_198": ; preds = %"$out_of_gas_197", %"$have_gas_193" + %"$consume_199" = sub i64 %"$gasrem_195", 1 + store i64 %"$consume_199", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_200", i32 0, i32 0), i32 3 }, %String* %"$f_s1_29", align 8, !dbg !32 + %"$execptr_load_201" = load i8*, i8** @_execptr, align 8 + %"$$f_s1_29_203" = load %String, %String* %"$f_s1_29", align 8 + %"$update_value_204" = alloca %String, align 8 + store %String %"$$f_s1_29_203", %String* %"$update_value_204", align 8 + %"$update_value_205" = bitcast %String* %"$update_value_204" to i8* + call void @_update_field(i8* %"$execptr_load_201", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_s1_202", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_String_52", i32 0, i8* null, i8* %"$update_value_205"), !dbg !32 %"$f_m1_30" = alloca %Map_String_String*, 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_196" - call void @_out_of_gas() - br label %"$have_gas_207" - -"$have_gas_207": ; preds = %"$out_of_gas_206", %"$have_gas_196" - %"$consume_208" = sub i64 %"$gasrem_204", 1 - store i64 %"$consume_208", i64* @_gasrem, align 8 - %"$execptr_load_209" = load i8*, i8** @_execptr, align 8 - %"$_new_empty_map_call_210" = call i8* @_new_empty_map(i8* %"$execptr_load_209") - %"$_new_empty_map_211" = bitcast i8* %"$_new_empty_map_call_210" to %Map_String_String* - store %Map_String_String* %"$_new_empty_map_211", %Map_String_String** %"$f_m1_30", align 8, !dbg !23 - %"$execptr_load_212" = load i8*, i8** @_execptr, align 8 - %"$$f_m1_30_214" = load %Map_String_String*, %Map_String_String** %"$f_m1_30", align 8 - %"$update_value_215" = bitcast %Map_String_String* %"$$f_m1_30_214" to i8* - call void @_update_field(i8* %"$execptr_load_212", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m1_213", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_77", i32 0, i8* null, i8* %"$update_value_215"), !dbg !23 + call void @llvm.dbg.declare(metadata %Map_String_String** %"$f_m1_30", metadata !33, metadata !DIExpression()), !dbg !36 + %"$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_198" + call void @_out_of_gas() + br label %"$have_gas_209" + +"$have_gas_209": ; preds = %"$out_of_gas_208", %"$have_gas_198" + %"$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_String_String* + store %Map_String_String* %"$_new_empty_map_213", %Map_String_String** %"$f_m1_30", align 8, !dbg !37 + %"$execptr_load_214" = load i8*, i8** @_execptr, align 8 + %"$$f_m1_30_216" = load %Map_String_String*, %Map_String_String** %"$f_m1_30", align 8 + %"$update_value_217" = bitcast %Map_String_String* %"$$f_m1_30_216" to i8* + call void @_update_field(i8* %"$execptr_load_214", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m1_215", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_77", i32 0, i8* null, i8* %"$update_value_217"), !dbg !37 %"$f_m2_31" = alloca %"Map_String_Map_(String)_(String)"*, align 8 - %"$gasrem_216" = load i64, i64* @_gasrem, align 8 - %"$gascmp_217" = icmp ugt i64 1, %"$gasrem_216" - br i1 %"$gascmp_217", label %"$out_of_gas_218", label %"$have_gas_219" - -"$out_of_gas_218": ; preds = %"$have_gas_207" - call void @_out_of_gas() - br label %"$have_gas_219" - -"$have_gas_219": ; preds = %"$out_of_gas_218", %"$have_gas_207" - %"$consume_220" = sub i64 %"$gasrem_216", 1 - store i64 %"$consume_220", i64* @_gasrem, align 8 - %"$execptr_load_221" = load i8*, i8** @_execptr, align 8 - %"$_new_empty_map_call_222" = call i8* @_new_empty_map(i8* %"$execptr_load_221") - %"$_new_empty_map_223" = bitcast i8* %"$_new_empty_map_call_222" to %"Map_String_Map_(String)_(String)"* - store %"Map_String_Map_(String)_(String)"* %"$_new_empty_map_223", %"Map_String_Map_(String)_(String)"** %"$f_m2_31", align 8, !dbg !24 - %"$execptr_load_224" = load i8*, i8** @_execptr, align 8 - %"$$f_m2_31_226" = load %"Map_String_Map_(String)_(String)"*, %"Map_String_Map_(String)_(String)"** %"$f_m2_31", align 8 - %"$update_value_227" = bitcast %"Map_String_Map_(String)_(String)"* %"$$f_m2_31_226" to i8* - call void @_update_field(i8* %"$execptr_load_224", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m2_225", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_76", i32 0, i8* null, i8* %"$update_value_227"), !dbg !24 + call void @llvm.dbg.declare(metadata %"Map_String_Map_(String)_(String)"** %"$f_m2_31", metadata !38, metadata !DIExpression()), !dbg !41 + %"$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_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", 1 + store i64 %"$consume_222", i64* @_gasrem, align 8 + %"$execptr_load_223" = load i8*, i8** @_execptr, align 8 + %"$_new_empty_map_call_224" = call i8* @_new_empty_map(i8* %"$execptr_load_223") + %"$_new_empty_map_225" = bitcast i8* %"$_new_empty_map_call_224" to %"Map_String_Map_(String)_(String)"* + store %"Map_String_Map_(String)_(String)"* %"$_new_empty_map_225", %"Map_String_Map_(String)_(String)"** %"$f_m2_31", align 8, !dbg !42 + %"$execptr_load_226" = load i8*, i8** @_execptr, align 8 + %"$$f_m2_31_228" = load %"Map_String_Map_(String)_(String)"*, %"Map_String_Map_(String)_(String)"** %"$f_m2_31", align 8 + %"$update_value_229" = bitcast %"Map_String_Map_(String)_(String)"* %"$$f_m2_31_228" to i8* + call void @_update_field(i8* %"$execptr_load_226", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m2_227", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_76", i32 0, i8* null, i8* %"$update_value_229"), !dbg !42 %"$f_m3_32" = alloca %"Map_String_Map_(String)_(Map_(String)_(String))"*, align 8 - %"$gasrem_228" = load i64, i64* @_gasrem, align 8 - %"$gascmp_229" = icmp ugt i64 1, %"$gasrem_228" - br i1 %"$gascmp_229", label %"$out_of_gas_230", label %"$have_gas_231" - -"$out_of_gas_230": ; preds = %"$have_gas_219" - call void @_out_of_gas() - br label %"$have_gas_231" - -"$have_gas_231": ; preds = %"$out_of_gas_230", %"$have_gas_219" - %"$consume_232" = sub i64 %"$gasrem_228", 1 - store i64 %"$consume_232", i64* @_gasrem, align 8 - %"$execptr_load_233" = load i8*, i8** @_execptr, align 8 - %"$_new_empty_map_call_234" = call i8* @_new_empty_map(i8* %"$execptr_load_233") - %"$_new_empty_map_235" = bitcast i8* %"$_new_empty_map_call_234" to %"Map_String_Map_(String)_(Map_(String)_(String))"* - store %"Map_String_Map_(String)_(Map_(String)_(String))"* %"$_new_empty_map_235", %"Map_String_Map_(String)_(Map_(String)_(String))"** %"$f_m3_32", align 8, !dbg !25 - %"$execptr_load_236" = load i8*, i8** @_execptr, align 8 - %"$$f_m3_32_238" = load %"Map_String_Map_(String)_(Map_(String)_(String))"*, %"Map_String_Map_(String)_(Map_(String)_(String))"** %"$f_m3_32", align 8 - %"$update_value_239" = bitcast %"Map_String_Map_(String)_(Map_(String)_(String))"* %"$$f_m3_32_238" to i8* - call void @_update_field(i8* %"$execptr_load_236", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m3_237", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_75", i32 0, i8* null, i8* %"$update_value_239"), !dbg !25 + call void @llvm.dbg.declare(metadata %"Map_String_Map_(String)_(Map_(String)_(String))"** %"$f_m3_32", metadata !43, metadata !DIExpression()), !dbg !46 + %"$gasrem_230" = load i64, i64* @_gasrem, align 8 + %"$gascmp_231" = icmp ugt i64 1, %"$gasrem_230" + br i1 %"$gascmp_231", label %"$out_of_gas_232", label %"$have_gas_233" + +"$out_of_gas_232": ; preds = %"$have_gas_221" + call void @_out_of_gas() + br label %"$have_gas_233" + +"$have_gas_233": ; preds = %"$out_of_gas_232", %"$have_gas_221" + %"$consume_234" = sub i64 %"$gasrem_230", 1 + store i64 %"$consume_234", i64* @_gasrem, align 8 + %"$execptr_load_235" = load i8*, i8** @_execptr, align 8 + %"$_new_empty_map_call_236" = call i8* @_new_empty_map(i8* %"$execptr_load_235") + %"$_new_empty_map_237" = bitcast i8* %"$_new_empty_map_call_236" to %"Map_String_Map_(String)_(Map_(String)_(String))"* + store %"Map_String_Map_(String)_(Map_(String)_(String))"* %"$_new_empty_map_237", %"Map_String_Map_(String)_(Map_(String)_(String))"** %"$f_m3_32", align 8, !dbg !47 + %"$execptr_load_238" = load i8*, i8** @_execptr, align 8 + %"$$f_m3_32_240" = load %"Map_String_Map_(String)_(Map_(String)_(String))"*, %"Map_String_Map_(String)_(Map_(String)_(String))"** %"$f_m3_32", align 8 + %"$update_value_241" = bitcast %"Map_String_Map_(String)_(Map_(String)_(String))"* %"$$f_m3_32_240" to i8* + call void @_update_field(i8* %"$execptr_load_238", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m3_239", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_75", i32 0, i8* null, i8* %"$update_value_241"), !dbg !47 %"$f_m_33" = alloca %"Map_String_Map_(String)_(String)"*, 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_242": ; preds = %"$have_gas_231" - call void @_out_of_gas() - br label %"$have_gas_243" - -"$have_gas_243": ; preds = %"$out_of_gas_242", %"$have_gas_231" - %"$consume_244" = sub i64 %"$gasrem_240", 1 - store i64 %"$consume_244", i64* @_gasrem, align 8 - %"$execptr_load_245" = load i8*, i8** @_execptr, align 8 - %"$_new_empty_map_call_246" = call i8* @_new_empty_map(i8* %"$execptr_load_245") - %"$_new_empty_map_247" = bitcast i8* %"$_new_empty_map_call_246" to %"Map_String_Map_(String)_(String)"* - store %"Map_String_Map_(String)_(String)"* %"$_new_empty_map_247", %"Map_String_Map_(String)_(String)"** %"$f_m_33", align 8, !dbg !26 - %"$execptr_load_248" = load i8*, i8** @_execptr, align 8 - %"$$f_m_33_250" = load %"Map_String_Map_(String)_(String)"*, %"Map_String_Map_(String)_(String)"** %"$f_m_33", align 8 - %"$update_value_251" = bitcast %"Map_String_Map_(String)_(String)"* %"$$f_m_33_250" to i8* - call void @_update_field(i8* %"$execptr_load_248", i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$f_m_249", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_76", i32 0, i8* null, i8* %"$update_value_251"), !dbg !26 + call void @llvm.dbg.declare(metadata %"Map_String_Map_(String)_(String)"** %"$f_m_33", metadata !48, metadata !DIExpression()), !dbg !49 + %"$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_233" + call void @_out_of_gas() + br label %"$have_gas_245" + +"$have_gas_245": ; preds = %"$out_of_gas_244", %"$have_gas_233" + %"$consume_246" = sub i64 %"$gasrem_242", 1 + store i64 %"$consume_246", i64* @_gasrem, align 8 + %"$execptr_load_247" = load i8*, i8** @_execptr, align 8 + %"$_new_empty_map_call_248" = call i8* @_new_empty_map(i8* %"$execptr_load_247") + %"$_new_empty_map_249" = bitcast i8* %"$_new_empty_map_call_248" to %"Map_String_Map_(String)_(String)"* + store %"Map_String_Map_(String)_(String)"* %"$_new_empty_map_249", %"Map_String_Map_(String)_(String)"** %"$f_m_33", align 8, !dbg !50 + %"$execptr_load_250" = load i8*, i8** @_execptr, align 8 + %"$$f_m_33_252" = load %"Map_String_Map_(String)_(String)"*, %"Map_String_Map_(String)_(String)"** %"$f_m_33", align 8 + %"$update_value_253" = bitcast %"Map_String_Map_(String)_(String)"* %"$$f_m_33_252" to i8* + call void @_update_field(i8* %"$execptr_load_250", i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$f_m_251", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_76", i32 0, i8* null, i8* %"$update_value_253"), !dbg !50 ret void } @@ -679,73 +694,86 @@ declare void @_update_field(i8*, i8*, %_TyDescrTy_Typ*, i32, i8*, i8*) declare i8* @_new_empty_map(i8*) -define internal void @"$fail_252"(%Uint128 %_amount, [20 x i8]* %"$_origin_253", [20 x i8]* %"$_sender_254", %String %tname) !dbg !27 { +define internal void @"$fail_254"(%Uint128 %_amount, [20 x i8]* %"$_origin_255", [20 x i8]* %"$_sender_256", %String %tname) !dbg !51 { entry: - %_origin = load [20 x i8], [20 x i8]* %"$_origin_253", align 1 - %_sender = load [20 x i8], [20 x i8]* %"$_sender_254", align 1 - %"$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 = %entry - call void @_out_of_gas() - br label %"$have_gas_258" - -"$have_gas_258": ; preds = %"$out_of_gas_257", %entry - %"$consume_259" = sub i64 %"$gasrem_255", 1 - store i64 %"$consume_259", i64* @_gasrem, align 8 + %"$tname_297" = alloca %String, align 8 + store %String %tname, %String* %"$tname_297", align 8 + call void @llvm.dbg.declare(metadata %String* %"$tname_297", metadata !52, metadata !DIExpression()), !dbg !53 + %"$_sender_296" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_sender_256", [20 x i8]** %"$_sender_296", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_sender_296", metadata !54, metadata !DIExpression()), !dbg !56 + %"$_origin_295" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_origin_255", [20 x i8]** %"$_origin_295", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_origin_295", metadata !57, metadata !DIExpression()), !dbg !56 + %"$_amount_294" = alloca %Uint128, align 8 + store %Uint128 %_amount, %Uint128* %"$_amount_294", align 8 + call void @llvm.dbg.declare(metadata %Uint128* %"$_amount_294", metadata !58, metadata !DIExpression()), !dbg !56 + %_origin = load [20 x i8], [20 x i8]* %"$_origin_255", align 1 + %_sender = load [20 x i8], [20 x i8]* %"$_sender_256", align 1 + %"$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 %e = alloca i8*, align 8 - %"$gasrem_260" = load i64, i64* @_gasrem, align 8 - %"$gascmp_261" = icmp ugt i64 1, %"$gasrem_260" - br i1 %"$gascmp_261", label %"$out_of_gas_262", label %"$have_gas_263" - -"$out_of_gas_262": ; preds = %"$have_gas_258" - call void @_out_of_gas() - br label %"$have_gas_263" - -"$have_gas_263": ; preds = %"$out_of_gas_262", %"$have_gas_258" - %"$consume_264" = sub i64 %"$gasrem_260", 1 - store i64 %"$consume_264", i64* @_gasrem, align 8 - %"$msgobj_265_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$msgobj_265_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_265_salloc_load", i64 81) - %"$msgobj_265_salloc" = bitcast i8* %"$msgobj_265_salloc_salloc" to [81 x i8]* - %"$msgobj_265" = bitcast [81 x i8]* %"$msgobj_265_salloc" to i8* - store i8 2, i8* %"$msgobj_265", align 1 - %"$msgobj_fname_267" = getelementptr i8, i8* %"$msgobj_265", i32 1 - %"$msgobj_fname_268" = bitcast i8* %"$msgobj_fname_267" to %String* - store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_266", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_268", align 8 - %"$msgobj_td_269" = getelementptr i8, i8* %"$msgobj_265", i32 17 - %"$msgobj_td_270" = bitcast i8* %"$msgobj_td_269" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_String_52", %_TyDescrTy_Typ** %"$msgobj_td_270", align 8 - %"$msgobj_v_272" = getelementptr i8, i8* %"$msgobj_265", i32 25 - %"$msgobj_v_273" = bitcast i8* %"$msgobj_v_272" to %String* - store %String { i8* getelementptr inbounds ([11 x i8], [11 x i8]* @"$stringlit_271", i32 0, i32 0), i32 11 }, %String* %"$msgobj_v_273", align 8 - %"$msgobj_fname_275" = getelementptr i8, i8* %"$msgobj_265", i32 41 - %"$msgobj_fname_276" = bitcast i8* %"$msgobj_fname_275" to %String* - store %String { i8* getelementptr inbounds ([9 x i8], [9 x i8]* @"$stringlit_274", i32 0, i32 0), i32 9 }, %String* %"$msgobj_fname_276", align 8 - %"$msgobj_td_277" = getelementptr i8, i8* %"$msgobj_265", i32 57 - %"$msgobj_td_278" = bitcast i8* %"$msgobj_td_277" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_String_52", %_TyDescrTy_Typ** %"$msgobj_td_278", align 8 - %"$msgobj_v_279" = getelementptr i8, i8* %"$msgobj_265", i32 65 - %"$msgobj_v_280" = bitcast i8* %"$msgobj_v_279" to %String* - store %String %tname, %String* %"$msgobj_v_280", align 8 - store i8* %"$msgobj_265", i8** %e, align 8, !dbg !28 - %"$e_282" = load i8*, i8** %e, align 8 - %"$_literal_cost_call_284" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Exception_60", i8* %"$e_282") - %"$gasrem_285" = load i64, i64* @_gasrem, align 8 - %"$gascmp_286" = icmp ugt i64 %"$_literal_cost_call_284", %"$gasrem_285" - br i1 %"$gascmp_286", label %"$out_of_gas_287", label %"$have_gas_288" - -"$out_of_gas_287": ; preds = %"$have_gas_263" - call void @_out_of_gas() - br label %"$have_gas_288" - -"$have_gas_288": ; preds = %"$out_of_gas_287", %"$have_gas_263" - %"$consume_289" = sub i64 %"$gasrem_285", %"$_literal_cost_call_284" - store i64 %"$consume_289", i64* @_gasrem, align 8 - %"$execptr_load_290" = load i8*, i8** @_execptr, align 8 - %"$e_291" = load i8*, i8** %e, align 8 - call void @_throw(i8* %"$execptr_load_290", %_TyDescrTy_Typ* @"$TyDescr_Exception_60", i8* %"$e_291"), !dbg !29 + call void @llvm.dbg.declare(metadata i8** %e, metadata !60, metadata !DIExpression()), !dbg !63 + %"$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 + %"$msgobj_267_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$msgobj_267_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_267_salloc_load", i64 81) + %"$msgobj_267_salloc" = bitcast i8* %"$msgobj_267_salloc_salloc" to [81 x i8]* + %"$msgobj_267" = bitcast [81 x i8]* %"$msgobj_267_salloc" to i8* + store i8 2, i8* %"$msgobj_267", align 1 + %"$msgobj_fname_269" = getelementptr i8, i8* %"$msgobj_267", i32 1 + %"$msgobj_fname_270" = bitcast i8* %"$msgobj_fname_269" to %String* + store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_268", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_270", align 8 + %"$msgobj_td_271" = getelementptr i8, i8* %"$msgobj_267", i32 17 + %"$msgobj_td_272" = bitcast i8* %"$msgobj_td_271" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_String_52", %_TyDescrTy_Typ** %"$msgobj_td_272", align 8 + %"$msgobj_v_274" = getelementptr i8, i8* %"$msgobj_267", i32 25 + %"$msgobj_v_275" = bitcast i8* %"$msgobj_v_274" to %String* + store %String { i8* getelementptr inbounds ([11 x i8], [11 x i8]* @"$stringlit_273", i32 0, i32 0), i32 11 }, %String* %"$msgobj_v_275", align 8 + %"$msgobj_fname_277" = getelementptr i8, i8* %"$msgobj_267", i32 41 + %"$msgobj_fname_278" = bitcast i8* %"$msgobj_fname_277" to %String* + store %String { i8* getelementptr inbounds ([9 x i8], [9 x i8]* @"$stringlit_276", i32 0, i32 0), i32 9 }, %String* %"$msgobj_fname_278", align 8 + %"$msgobj_td_279" = getelementptr i8, i8* %"$msgobj_267", i32 57 + %"$msgobj_td_280" = bitcast i8* %"$msgobj_td_279" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_String_52", %_TyDescrTy_Typ** %"$msgobj_td_280", align 8 + %"$msgobj_v_281" = getelementptr i8, i8* %"$msgobj_267", i32 65 + %"$msgobj_v_282" = bitcast i8* %"$msgobj_v_281" to %String* + store %String %tname, %String* %"$msgobj_v_282", align 8 + store i8* %"$msgobj_267", i8** %e, align 8, !dbg !64 + %"$e_284" = load i8*, i8** %e, align 8 + %"$_literal_cost_call_286" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Exception_60", i8* %"$e_284") + %"$gasrem_287" = load i64, i64* @_gasrem, align 8 + %"$gascmp_288" = icmp ugt i64 %"$_literal_cost_call_286", %"$gasrem_287" + br i1 %"$gascmp_288", label %"$out_of_gas_289", label %"$have_gas_290" + +"$out_of_gas_289": ; preds = %"$have_gas_265" + call void @_out_of_gas() + br label %"$have_gas_290" + +"$have_gas_290": ; preds = %"$out_of_gas_289", %"$have_gas_265" + %"$consume_291" = sub i64 %"$gasrem_287", %"$_literal_cost_call_286" + store i64 %"$consume_291", i64* @_gasrem, align 8 + %"$execptr_load_292" = load i8*, i8** @_execptr, align 8 + %"$e_293" = load i8*, i8** %e, align 8 + call void @_throw(i8* %"$execptr_load_292", %_TyDescrTy_Typ* @"$TyDescr_Exception_60", i8* %"$e_293"), !dbg !65 ret void } @@ -753,1814 +781,1916 @@ declare i64 @_literal_cost(%_TyDescrTy_Typ*, i8*) declare void @_throw(i8*, %_TyDescrTy_Typ*, i8*) -define internal void @"$fail_msg_292"(%Uint128 %_amount, [20 x i8]* %"$_origin_293", [20 x i8]* %"$_sender_294", %String %tname, %String %msg) !dbg !30 { +define internal void @"$fail_msg_298"(%Uint128 %_amount, [20 x i8]* %"$_origin_299", [20 x i8]* %"$_sender_300", %String %tname, %String %msg) !dbg !66 { entry: - %_origin = load [20 x i8], [20 x i8]* %"$_origin_293", align 1 - %_sender = load [20 x i8], [20 x i8]* %"$_sender_294", align 1 - %"$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 + %"$msg_349" = alloca %String, align 8 + store %String %msg, %String* %"$msg_349", align 8 + call void @llvm.dbg.declare(metadata %String* %"$msg_349", metadata !67, metadata !DIExpression()), !dbg !68 + %"$tname_348" = alloca %String, align 8 + store %String %tname, %String* %"$tname_348", align 8 + call void @llvm.dbg.declare(metadata %String* %"$tname_348", metadata !69, metadata !DIExpression()), !dbg !70 + %"$_sender_347" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_sender_300", [20 x i8]** %"$_sender_347", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_sender_347", metadata !71, metadata !DIExpression()), !dbg !72 + %"$_origin_346" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_origin_299", [20 x i8]** %"$_origin_346", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_origin_346", metadata !73, metadata !DIExpression()), !dbg !72 + %"$_amount_345" = alloca %Uint128, align 8 + store %Uint128 %_amount, %Uint128* %"$_amount_345", align 8 + call void @llvm.dbg.declare(metadata %Uint128* %"$_amount_345", metadata !74, metadata !DIExpression()), !dbg !72 + %_origin = load [20 x i8], [20 x i8]* %"$_origin_299", align 1 + %_sender = load [20 x i8], [20 x i8]* %"$_sender_300", align 1 + %"$gasrem_301" = load i64, i64* @_gasrem, align 8 + %"$gascmp_302" = icmp ugt i64 1, %"$gasrem_301" + br i1 %"$gascmp_302", label %"$out_of_gas_303", label %"$have_gas_304" + +"$out_of_gas_303": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_304" + +"$have_gas_304": ; preds = %"$out_of_gas_303", %entry + %"$consume_305" = sub i64 %"$gasrem_301", 1 + store i64 %"$consume_305", i64* @_gasrem, align 8 %e = alloca 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 = %"$have_gas_298" - call void @_out_of_gas() - br label %"$have_gas_303" - -"$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 - %"$msgobj_305_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$msgobj_305_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_305_salloc_load", i64 121) - %"$msgobj_305_salloc" = bitcast i8* %"$msgobj_305_salloc_salloc" to [121 x i8]* - %"$msgobj_305" = bitcast [121 x i8]* %"$msgobj_305_salloc" to i8* - store i8 3, i8* %"$msgobj_305", align 1 - %"$msgobj_fname_307" = getelementptr i8, i8* %"$msgobj_305", i32 1 - %"$msgobj_fname_308" = bitcast i8* %"$msgobj_fname_307" to %String* - store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_306", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_308", align 8 - %"$msgobj_td_309" = getelementptr i8, i8* %"$msgobj_305", i32 17 - %"$msgobj_td_310" = bitcast i8* %"$msgobj_td_309" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_String_52", %_TyDescrTy_Typ** %"$msgobj_td_310", align 8 - %"$msgobj_v_312" = getelementptr i8, i8* %"$msgobj_305", i32 25 - %"$msgobj_v_313" = bitcast i8* %"$msgobj_v_312" to %String* - store %String { i8* getelementptr inbounds ([11 x i8], [11 x i8]* @"$stringlit_311", i32 0, i32 0), i32 11 }, %String* %"$msgobj_v_313", align 8 - %"$msgobj_fname_315" = getelementptr i8, i8* %"$msgobj_305", i32 41 - %"$msgobj_fname_316" = bitcast i8* %"$msgobj_fname_315" to %String* - store %String { i8* getelementptr inbounds ([9 x i8], [9 x i8]* @"$stringlit_314", i32 0, i32 0), i32 9 }, %String* %"$msgobj_fname_316", align 8 - %"$msgobj_td_317" = getelementptr i8, i8* %"$msgobj_305", i32 57 - %"$msgobj_td_318" = bitcast i8* %"$msgobj_td_317" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_String_52", %_TyDescrTy_Typ** %"$msgobj_td_318", align 8 - %"$msgobj_v_319" = getelementptr i8, i8* %"$msgobj_305", i32 65 - %"$msgobj_v_320" = bitcast i8* %"$msgobj_v_319" to %String* - store %String %tname, %String* %"$msgobj_v_320", align 8 - %"$msgobj_fname_322" = getelementptr i8, i8* %"$msgobj_305", i32 81 - %"$msgobj_fname_323" = bitcast i8* %"$msgobj_fname_322" to %String* - store %String { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$stringlit_321", i32 0, i32 0), i32 7 }, %String* %"$msgobj_fname_323", align 8 - %"$msgobj_td_324" = getelementptr i8, i8* %"$msgobj_305", i32 97 - %"$msgobj_td_325" = bitcast i8* %"$msgobj_td_324" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_String_52", %_TyDescrTy_Typ** %"$msgobj_td_325", align 8 - %"$msgobj_v_326" = getelementptr i8, i8* %"$msgobj_305", i32 105 - %"$msgobj_v_327" = bitcast i8* %"$msgobj_v_326" to %String* - store %String %msg, %String* %"$msgobj_v_327", align 8 - store i8* %"$msgobj_305", i8** %e, align 8, !dbg !31 - %"$e_329" = load i8*, i8** %e, align 8 - %"$_literal_cost_call_331" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Exception_60", i8* %"$e_329") - %"$gasrem_332" = load i64, i64* @_gasrem, align 8 - %"$gascmp_333" = icmp ugt i64 %"$_literal_cost_call_331", %"$gasrem_332" - br i1 %"$gascmp_333", label %"$out_of_gas_334", label %"$have_gas_335" - -"$out_of_gas_334": ; preds = %"$have_gas_303" - call void @_out_of_gas() - br label %"$have_gas_335" - -"$have_gas_335": ; preds = %"$out_of_gas_334", %"$have_gas_303" - %"$consume_336" = sub i64 %"$gasrem_332", %"$_literal_cost_call_331" - store i64 %"$consume_336", i64* @_gasrem, align 8 - %"$execptr_load_337" = load i8*, i8** @_execptr, align 8 - %"$e_338" = load i8*, i8** %e, align 8 - call void @_throw(i8* %"$execptr_load_337", %_TyDescrTy_Typ* @"$TyDescr_Exception_60", i8* %"$e_338"), !dbg !32 + call void @llvm.dbg.declare(metadata i8** %e, metadata !75, metadata !DIExpression()), !dbg !76 + %"$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_308": ; preds = %"$have_gas_304" + call void @_out_of_gas() + br label %"$have_gas_309" + +"$have_gas_309": ; preds = %"$out_of_gas_308", %"$have_gas_304" + %"$consume_310" = sub i64 %"$gasrem_306", 1 + store i64 %"$consume_310", i64* @_gasrem, align 8 + %"$msgobj_311_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$msgobj_311_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_311_salloc_load", i64 121) + %"$msgobj_311_salloc" = bitcast i8* %"$msgobj_311_salloc_salloc" to [121 x i8]* + %"$msgobj_311" = bitcast [121 x i8]* %"$msgobj_311_salloc" to i8* + store i8 3, i8* %"$msgobj_311", align 1 + %"$msgobj_fname_313" = getelementptr i8, i8* %"$msgobj_311", i32 1 + %"$msgobj_fname_314" = bitcast i8* %"$msgobj_fname_313" to %String* + store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_312", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_314", align 8 + %"$msgobj_td_315" = getelementptr i8, i8* %"$msgobj_311", i32 17 + %"$msgobj_td_316" = bitcast i8* %"$msgobj_td_315" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_String_52", %_TyDescrTy_Typ** %"$msgobj_td_316", align 8 + %"$msgobj_v_318" = getelementptr i8, i8* %"$msgobj_311", i32 25 + %"$msgobj_v_319" = bitcast i8* %"$msgobj_v_318" to %String* + store %String { i8* getelementptr inbounds ([11 x i8], [11 x i8]* @"$stringlit_317", i32 0, i32 0), i32 11 }, %String* %"$msgobj_v_319", align 8 + %"$msgobj_fname_321" = getelementptr i8, i8* %"$msgobj_311", i32 41 + %"$msgobj_fname_322" = bitcast i8* %"$msgobj_fname_321" to %String* + store %String { i8* getelementptr inbounds ([9 x i8], [9 x i8]* @"$stringlit_320", i32 0, i32 0), i32 9 }, %String* %"$msgobj_fname_322", align 8 + %"$msgobj_td_323" = getelementptr i8, i8* %"$msgobj_311", i32 57 + %"$msgobj_td_324" = bitcast i8* %"$msgobj_td_323" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_String_52", %_TyDescrTy_Typ** %"$msgobj_td_324", align 8 + %"$msgobj_v_325" = getelementptr i8, i8* %"$msgobj_311", i32 65 + %"$msgobj_v_326" = bitcast i8* %"$msgobj_v_325" to %String* + store %String %tname, %String* %"$msgobj_v_326", align 8 + %"$msgobj_fname_328" = getelementptr i8, i8* %"$msgobj_311", i32 81 + %"$msgobj_fname_329" = bitcast i8* %"$msgobj_fname_328" to %String* + store %String { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$stringlit_327", i32 0, i32 0), i32 7 }, %String* %"$msgobj_fname_329", align 8 + %"$msgobj_td_330" = getelementptr i8, i8* %"$msgobj_311", i32 97 + %"$msgobj_td_331" = bitcast i8* %"$msgobj_td_330" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_String_52", %_TyDescrTy_Typ** %"$msgobj_td_331", align 8 + %"$msgobj_v_332" = getelementptr i8, i8* %"$msgobj_311", i32 105 + %"$msgobj_v_333" = bitcast i8* %"$msgobj_v_332" to %String* + store %String %msg, %String* %"$msgobj_v_333", align 8 + store i8* %"$msgobj_311", i8** %e, align 8, !dbg !77 + %"$e_335" = load i8*, i8** %e, align 8 + %"$_literal_cost_call_337" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Exception_60", i8* %"$e_335") + %"$gasrem_338" = load i64, i64* @_gasrem, align 8 + %"$gascmp_339" = icmp ugt i64 %"$_literal_cost_call_337", %"$gasrem_338" + br i1 %"$gascmp_339", label %"$out_of_gas_340", label %"$have_gas_341" + +"$out_of_gas_340": ; preds = %"$have_gas_309" + call void @_out_of_gas() + br label %"$have_gas_341" + +"$have_gas_341": ; preds = %"$out_of_gas_340", %"$have_gas_309" + %"$consume_342" = sub i64 %"$gasrem_338", %"$_literal_cost_call_337" + store i64 %"$consume_342", i64* @_gasrem, align 8 + %"$execptr_load_343" = load i8*, i8** @_execptr, align 8 + %"$e_344" = load i8*, i8** %e, align 8 + call void @_throw(i8* %"$execptr_load_343", %_TyDescrTy_Typ* @"$TyDescr_Exception_60", i8* %"$e_344"), !dbg !78 ret void } -define internal void @"$t1_339"(%Uint128 %_amount, [20 x i8]* %"$_origin_340", [20 x i8]* %"$_sender_341") !dbg !33 { +define internal void @"$t1_350"(%Uint128 %_amount, [20 x i8]* %"$_origin_351", [20 x i8]* %"$_sender_352") !dbg !79 { entry: - %_origin = load [20 x i8], [20 x i8]* %"$_origin_340", align 1 - %_sender = load [20 x i8], [20 x i8]* %"$_sender_341", align 1 - %"$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" - -"$out_of_gas_344": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_345" - -"$have_gas_345": ; preds = %"$out_of_gas_344", %entry - %"$consume_346" = sub i64 %"$gasrem_342", 1 - store i64 %"$consume_346", i64* @_gasrem, align 8 + %"$_sender_463" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_sender_352", [20 x i8]** %"$_sender_463", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_sender_463", metadata !80, metadata !DIExpression()), !dbg !81 + %"$_origin_462" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_origin_351", [20 x i8]** %"$_origin_462", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_origin_462", metadata !82, metadata !DIExpression()), !dbg !81 + %"$_amount_461" = alloca %Uint128, align 8 + store %Uint128 %_amount, %Uint128* %"$_amount_461", align 8 + call void @llvm.dbg.declare(metadata %Uint128* %"$_amount_461", metadata !83, metadata !DIExpression()), !dbg !81 + %_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 %tname = alloca %String, 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" + call void @llvm.dbg.declare(metadata %String* %tname, metadata !84, metadata !DIExpression()), !dbg !85 + %"$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_349": ; preds = %"$have_gas_345" +"$out_of_gas_360": ; preds = %"$have_gas_356" call void @_out_of_gas() - br label %"$have_gas_350" + br label %"$have_gas_361" -"$have_gas_350": ; preds = %"$out_of_gas_349", %"$have_gas_345" - %"$consume_351" = sub i64 %"$gasrem_347", 1 - store i64 %"$consume_351", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([2 x i8], [2 x i8]* @"$stringlit_352", i32 0, i32 0), i32 2 }, %String* %tname, align 8, !dbg !34 +"$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 + store %String { i8* getelementptr inbounds ([2 x i8], [2 x i8]* @"$stringlit_363", i32 0, i32 0), i32 2 }, %String* %tname, align 8, !dbg !86 %f = alloca %String, align 8 - %"$execptr_load_354" = load i8*, i8** @_execptr, align 8 - %"$f_call_355" = call i8* @_fetch_field(i8* %"$execptr_load_354", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_s1_353", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_String_52", i32 0, i8* null, i32 1), !dbg !35 - %"$f_356" = bitcast i8* %"$f_call_355" to %String* - %"$f_357" = load %String, %String* %"$f_356", align 8 - store %String %"$f_357", %String* %f, align 8 - %"$_literal_cost_f_358" = alloca %String, align 8 - %"$f_359" = load %String, %String* %f, align 8 - store %String %"$f_359", %String* %"$_literal_cost_f_358", align 8 - %"$$_literal_cost_f_358_360" = bitcast %String* %"$_literal_cost_f_358" to i8* - %"$_literal_cost_call_361" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_52", i8* %"$$_literal_cost_f_358_360") - %"$gasadd_362" = add i64 %"$_literal_cost_call_361", 0 - %"$gasrem_363" = load i64, i64* @_gasrem, align 8 - %"$gascmp_364" = icmp ugt i64 %"$gasadd_362", %"$gasrem_363" - br i1 %"$gascmp_364", label %"$out_of_gas_365", label %"$have_gas_366" - -"$out_of_gas_365": ; preds = %"$have_gas_350" - call void @_out_of_gas() - br label %"$have_gas_366" - -"$have_gas_366": ; preds = %"$out_of_gas_365", %"$have_gas_350" - %"$consume_367" = sub i64 %"$gasrem_363", %"$gasadd_362" - store i64 %"$consume_367", i64* @_gasrem, align 8 - %"$gasrem_368" = load i64, i64* @_gasrem, align 8 - %"$gascmp_369" = icmp ugt i64 1, %"$gasrem_368" - br i1 %"$gascmp_369", label %"$out_of_gas_370", label %"$have_gas_371" - -"$out_of_gas_370": ; preds = %"$have_gas_366" - call void @_out_of_gas() - br label %"$have_gas_371" - -"$have_gas_371": ; preds = %"$out_of_gas_370", %"$have_gas_366" - %"$consume_372" = sub i64 %"$gasrem_368", 1 - store i64 %"$consume_372", i64* @_gasrem, align 8 - %s = alloca %String, align 8 - %"$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 = %"$have_gas_371" - call void @_out_of_gas() - br label %"$have_gas_376" - -"$have_gas_376": ; preds = %"$out_of_gas_375", %"$have_gas_371" - %"$consume_377" = sub i64 %"$gasrem_373", 1 - store i64 %"$consume_377", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_378", i32 0, i32 0), i32 3 }, %String* %s, align 8, !dbg !36 + call void @llvm.dbg.declare(metadata %String* %f, metadata !87, metadata !DIExpression()), !dbg !88 + %"$execptr_load_365" = load i8*, i8** @_execptr, align 8 + %"$f_call_366" = call i8* @_fetch_field(i8* %"$execptr_load_365", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_s1_364", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_String_52", i32 0, i8* null, i32 1), !dbg !88 + %"$f_367" = bitcast i8* %"$f_call_366" to %String* + %"$f_368" = load %String, %String* %"$f_367", align 8 + store %String %"$f_368", %String* %f, align 8 + %"$_literal_cost_f_369" = alloca %String, align 8 + %"$f_370" = load %String, %String* %f, align 8 + store %String %"$f_370", %String* %"$_literal_cost_f_369", align 8 + %"$$_literal_cost_f_369_371" = bitcast %String* %"$_literal_cost_f_369" to i8* + %"$_literal_cost_call_372" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_52", i8* %"$$_literal_cost_f_369_371") + %"$gasadd_373" = add i64 %"$_literal_cost_call_372", 0 + %"$gasrem_374" = load i64, i64* @_gasrem, align 8 + %"$gascmp_375" = icmp ugt i64 %"$gasadd_373", %"$gasrem_374" + br i1 %"$gascmp_375", label %"$out_of_gas_376", label %"$have_gas_377" + +"$out_of_gas_376": ; preds = %"$have_gas_361" + call void @_out_of_gas() + br label %"$have_gas_377" + +"$have_gas_377": ; preds = %"$out_of_gas_376", %"$have_gas_361" + %"$consume_378" = sub i64 %"$gasrem_374", %"$gasadd_373" + store i64 %"$consume_378", i64* @_gasrem, 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 = %"$have_gas_376" +"$out_of_gas_381": ; preds = %"$have_gas_377" call void @_out_of_gas() br label %"$have_gas_382" -"$have_gas_382": ; preds = %"$out_of_gas_381", %"$have_gas_376" +"$have_gas_382": ; preds = %"$out_of_gas_381", %"$have_gas_377" %"$consume_383" = sub i64 %"$gasrem_379", 1 store i64 %"$consume_383", i64* @_gasrem, align 8 + %s = alloca %String, align 8 + call void @llvm.dbg.declare(metadata %String* %s, metadata !89, metadata !DIExpression()), !dbg !90 + %"$gasrem_384" = load i64, i64* @_gasrem, align 8 + %"$gascmp_385" = icmp ugt i64 1, %"$gasrem_384" + br i1 %"$gascmp_385", label %"$out_of_gas_386", label %"$have_gas_387" + +"$out_of_gas_386": ; preds = %"$have_gas_382" + call void @_out_of_gas() + br label %"$have_gas_387" + +"$have_gas_387": ; preds = %"$out_of_gas_386", %"$have_gas_382" + %"$consume_388" = sub i64 %"$gasrem_384", 1 + store i64 %"$consume_388", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_389", i32 0, i32 0), i32 3 }, %String* %s, align 8, !dbg !91 + %"$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_387" + call void @_out_of_gas() + br label %"$have_gas_393" + +"$have_gas_393": ; preds = %"$out_of_gas_392", %"$have_gas_387" + %"$consume_394" = sub i64 %"$gasrem_390", 1 + store i64 %"$consume_394", i64* @_gasrem, align 8 %t = alloca %TName_Bool*, align 8 - %"$_literal_cost_f_384" = alloca %String, align 8 - %"$f_385" = load %String, %String* %f, align 8 - store %String %"$f_385", %String* %"$_literal_cost_f_384", align 8 - %"$$_literal_cost_f_384_386" = bitcast %String* %"$_literal_cost_f_384" to i8* - %"$_literal_cost_call_387" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_52", i8* %"$$_literal_cost_f_384_386") - %"$_literal_cost_s_388" = alloca %String, align 8 - %"$s_389" = load %String, %String* %s, align 8 - store %String %"$s_389", %String* %"$_literal_cost_s_388", align 8 - %"$$_literal_cost_s_388_390" = bitcast %String* %"$_literal_cost_s_388" to i8* - %"$_literal_cost_call_391" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_52", i8* %"$$_literal_cost_s_388_390") - %"$gasmin_392" = call i64 @llvm.umin.i64(i64 %"$_literal_cost_call_387", i64 %"$_literal_cost_call_391") - %"$gasrem_393" = load i64, i64* @_gasrem, align 8 - %"$gascmp_394" = icmp ugt i64 %"$gasmin_392", %"$gasrem_393" - br i1 %"$gascmp_394", label %"$out_of_gas_395", label %"$have_gas_396" - -"$out_of_gas_395": ; preds = %"$have_gas_382" - call void @_out_of_gas() - br label %"$have_gas_396" - -"$have_gas_396": ; preds = %"$out_of_gas_395", %"$have_gas_382" - %"$consume_397" = sub i64 %"$gasrem_393", %"$gasmin_392" - store i64 %"$consume_397", i64* @_gasrem, align 8 - %"$execptr_load_398" = load i8*, i8** @_execptr, align 8 - %"$f_399" = load %String, %String* %f, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %t, metadata !92, metadata !DIExpression()), !dbg !93 + %"$_literal_cost_f_395" = alloca %String, align 8 + %"$f_396" = load %String, %String* %f, align 8 + store %String %"$f_396", %String* %"$_literal_cost_f_395", align 8 + %"$$_literal_cost_f_395_397" = bitcast %String* %"$_literal_cost_f_395" to i8* + %"$_literal_cost_call_398" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_52", i8* %"$$_literal_cost_f_395_397") + %"$_literal_cost_s_399" = alloca %String, align 8 %"$s_400" = load %String, %String* %s, align 8 - %"$eq_call_401" = call %TName_Bool* @_eq_String(i8* %"$execptr_load_398", %String %"$f_399", %String %"$s_400"), !dbg !37 - store %TName_Bool* %"$eq_call_401", %TName_Bool** %t, align 8, !dbg !37 - %"$gasrem_403" = load i64, i64* @_gasrem, align 8 - %"$gascmp_404" = icmp ugt i64 2, %"$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", 2 - store i64 %"$consume_407", i64* @_gasrem, align 8 - %"$t_409" = load %TName_Bool*, %TName_Bool** %t, align 8 - %"$t_tag_410" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$t_409", i32 0, i32 0 - %"$t_tag_411" = load i8, i8* %"$t_tag_410", align 1 - switch i8 %"$t_tag_411", label %"$empty_default_412" [ - i8 1, label %"$False_413" - i8 0, label %"$True_423" - ], !dbg !38 - -"$False_413": ; preds = %"$have_gas_406" - %"$t_414" = bitcast %TName_Bool* %"$t_409" to %CName_False* - %"$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 = %"$False_413" - call void @_out_of_gas() - br label %"$have_gas_418" - -"$have_gas_418": ; preds = %"$out_of_gas_417", %"$False_413" - %"$consume_419" = sub i64 %"$gasrem_415", 1 - store i64 %"$consume_419", i64* @_gasrem, align 8 - %"$fail__origin_420" = alloca [20 x i8], align 1 - store [20 x i8] %_origin, [20 x i8]* %"$fail__origin_420", align 1 - %"$fail__sender_421" = alloca [20 x i8], align 1 - store [20 x i8] %_sender, [20 x i8]* %"$fail__sender_421", align 1 - %"$tname_422" = load %String, %String* %tname, align 8 - call void @"$fail_252"(%Uint128 %_amount, [20 x i8]* %"$fail__origin_420", [20 x i8]* %"$fail__sender_421", %String %"$tname_422"), !dbg !39 - br label %"$matchsucc_408" - -"$True_423": ; preds = %"$have_gas_406" - %"$t_424" = bitcast %TName_Bool* %"$t_409" to %CName_True* - br label %"$matchsucc_408" - -"$empty_default_412": ; preds = %"$have_gas_406" - br label %"$matchsucc_408" - -"$matchsucc_408": ; preds = %"$True_423", %"$have_gas_418", %"$empty_default_412" - %"$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 = %"$matchsucc_408" - call void @_out_of_gas() - br label %"$have_gas_428" - -"$have_gas_428": ; preds = %"$out_of_gas_427", %"$matchsucc_408" - %"$consume_429" = sub i64 %"$gasrem_425", 1 - store i64 %"$consume_429", i64* @_gasrem, align 8 + store %String %"$s_400", %String* %"$_literal_cost_s_399", align 8 + %"$$_literal_cost_s_399_401" = bitcast %String* %"$_literal_cost_s_399" to i8* + %"$_literal_cost_call_402" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_52", i8* %"$$_literal_cost_s_399_401") + %"$gasmin_403" = call i64 @llvm.umin.i64(i64 %"$_literal_cost_call_398", i64 %"$_literal_cost_call_402") + %"$gasrem_404" = load i64, i64* @_gasrem, align 8 + %"$gascmp_405" = icmp ugt i64 %"$gasmin_403", %"$gasrem_404" + br i1 %"$gascmp_405", label %"$out_of_gas_406", label %"$have_gas_407" + +"$out_of_gas_406": ; preds = %"$have_gas_393" + call void @_out_of_gas() + br label %"$have_gas_407" + +"$have_gas_407": ; preds = %"$out_of_gas_406", %"$have_gas_393" + %"$consume_408" = sub i64 %"$gasrem_404", %"$gasmin_403" + store i64 %"$consume_408", i64* @_gasrem, align 8 + %"$execptr_load_409" = load i8*, i8** @_execptr, align 8 + %"$f_410" = load %String, %String* %f, align 8 + %"$s_411" = load %String, %String* %s, align 8 + %"$eq_call_412" = call %TName_Bool* @_eq_String(i8* %"$execptr_load_409", %String %"$f_410", %String %"$s_411"), !dbg !94 + store %TName_Bool* %"$eq_call_412", %TName_Bool** %t, align 8, !dbg !94 + %"$gasrem_414" = load i64, i64* @_gasrem, align 8 + %"$gascmp_415" = icmp ugt i64 2, %"$gasrem_414" + br i1 %"$gascmp_415", label %"$out_of_gas_416", label %"$have_gas_417" + +"$out_of_gas_416": ; preds = %"$have_gas_407" + call void @_out_of_gas() + br label %"$have_gas_417" + +"$have_gas_417": ; preds = %"$out_of_gas_416", %"$have_gas_407" + %"$consume_418" = sub i64 %"$gasrem_414", 2 + store i64 %"$consume_418", i64* @_gasrem, align 8 + %"$t_420" = load %TName_Bool*, %TName_Bool** %t, align 8 + %"$t_tag_421" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$t_420", i32 0, i32 0 + %"$t_tag_422" = load i8, i8* %"$t_tag_421", align 1 + switch i8 %"$t_tag_422", label %"$empty_default_423" [ + i8 1, label %"$False_424" + i8 0, label %"$True_434" + ], !dbg !95 + +"$False_424": ; preds = %"$have_gas_417" + %"$t_425" = bitcast %TName_Bool* %"$t_420" to %CName_False* + %"$gasrem_426" = load i64, i64* @_gasrem, align 8 + %"$gascmp_427" = icmp ugt i64 1, %"$gasrem_426" + br i1 %"$gascmp_427", label %"$out_of_gas_428", label %"$have_gas_429" + +"$out_of_gas_428": ; preds = %"$False_424" + call void @_out_of_gas() + br label %"$have_gas_429" + +"$have_gas_429": ; preds = %"$out_of_gas_428", %"$False_424" + %"$consume_430" = sub i64 %"$gasrem_426", 1 + store i64 %"$consume_430", i64* @_gasrem, align 8 + %"$fail__origin_431" = alloca [20 x i8], align 1 + store [20 x i8] %_origin, [20 x i8]* %"$fail__origin_431", align 1 + %"$fail__sender_432" = alloca [20 x i8], align 1 + store [20 x i8] %_sender, [20 x i8]* %"$fail__sender_432", align 1 + %"$tname_433" = load %String, %String* %tname, align 8 + call void @"$fail_254"(%Uint128 %_amount, [20 x i8]* %"$fail__origin_431", [20 x i8]* %"$fail__sender_432", %String %"$tname_433"), !dbg !96 + br label %"$matchsucc_419" + +"$True_434": ; preds = %"$have_gas_417" + %"$t_435" = bitcast %TName_Bool* %"$t_420" to %CName_True* + br label %"$matchsucc_419" + +"$empty_default_423": ; preds = %"$have_gas_417" + br label %"$matchsucc_419" + +"$matchsucc_419": ; preds = %"$True_434", %"$have_gas_429", %"$empty_default_423" + %"$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 = %"$matchsucc_419" + call void @_out_of_gas() + br label %"$have_gas_439" + +"$have_gas_439": ; preds = %"$out_of_gas_438", %"$matchsucc_419" + %"$consume_440" = sub i64 %"$gasrem_436", 1 + store i64 %"$consume_440", i64* @_gasrem, align 8 %s2 = alloca %String, 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 = %"$have_gas_428" - call void @_out_of_gas() - br label %"$have_gas_433" - -"$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 %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_435", i32 0, i32 0), i32 3 }, %String* %s2, align 8, !dbg !42 - %"$_literal_cost_s2_436" = alloca %String, align 8 - %"$s2_437" = load %String, %String* %s2, align 8 - store %String %"$s2_437", %String* %"$_literal_cost_s2_436", align 8 - %"$$_literal_cost_s2_436_438" = bitcast %String* %"$_literal_cost_s2_436" to i8* - %"$_literal_cost_call_439" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_52", i8* %"$$_literal_cost_s2_436_438") - %"$gasrem_440" = load i64, i64* @_gasrem, align 8 - %"$gascmp_441" = icmp ugt i64 %"$_literal_cost_call_439", %"$gasrem_440" - br i1 %"$gascmp_441", label %"$out_of_gas_442", label %"$have_gas_443" - -"$out_of_gas_442": ; preds = %"$have_gas_433" - call void @_out_of_gas() - br label %"$have_gas_443" - -"$have_gas_443": ; preds = %"$out_of_gas_442", %"$have_gas_433" - %"$consume_444" = sub i64 %"$gasrem_440", %"$_literal_cost_call_439" - store i64 %"$consume_444", i64* @_gasrem, align 8 - %"$execptr_load_445" = load i8*, i8** @_execptr, align 8 - %"$s2_447" = load %String, %String* %s2, align 8 - %"$update_value_448" = alloca %String, align 8 - store %String %"$s2_447", %String* %"$update_value_448", align 8 - %"$update_value_449" = bitcast %String* %"$update_value_448" to i8* - call void @_update_field(i8* %"$execptr_load_445", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_s1_446", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_String_52", i32 0, i8* null, i8* %"$update_value_449"), !dbg !43 + call void @llvm.dbg.declare(metadata %String* %s2, metadata !99, metadata !DIExpression()), !dbg !100 + %"$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" + +"$out_of_gas_443": ; preds = %"$have_gas_439" + call void @_out_of_gas() + br label %"$have_gas_444" + +"$have_gas_444": ; preds = %"$out_of_gas_443", %"$have_gas_439" + %"$consume_445" = sub i64 %"$gasrem_441", 1 + store i64 %"$consume_445", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_446", i32 0, i32 0), i32 3 }, %String* %s2, align 8, !dbg !101 + %"$_literal_cost_s2_447" = alloca %String, align 8 + %"$s2_448" = load %String, %String* %s2, align 8 + store %String %"$s2_448", %String* %"$_literal_cost_s2_447", align 8 + %"$$_literal_cost_s2_447_449" = bitcast %String* %"$_literal_cost_s2_447" to i8* + %"$_literal_cost_call_450" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_52", i8* %"$$_literal_cost_s2_447_449") + %"$gasrem_451" = load i64, i64* @_gasrem, align 8 + %"$gascmp_452" = icmp ugt i64 %"$_literal_cost_call_450", %"$gasrem_451" + br i1 %"$gascmp_452", label %"$out_of_gas_453", label %"$have_gas_454" + +"$out_of_gas_453": ; preds = %"$have_gas_444" + call void @_out_of_gas() + br label %"$have_gas_454" + +"$have_gas_454": ; preds = %"$out_of_gas_453", %"$have_gas_444" + %"$consume_455" = sub i64 %"$gasrem_451", %"$_literal_cost_call_450" + store i64 %"$consume_455", i64* @_gasrem, align 8 + %"$execptr_load_456" = load i8*, i8** @_execptr, align 8 + %"$s2_458" = load %String, %String* %s2, align 8 + %"$update_value_459" = alloca %String, align 8 + store %String %"$s2_458", %String* %"$update_value_459", align 8 + %"$update_value_460" = bitcast %String* %"$update_value_459" to i8* + call void @_update_field(i8* %"$execptr_load_456", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_s1_457", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_String_52", i32 0, i8* null, i8* %"$update_value_460"), !dbg !102 ret void } declare i8* @_fetch_field(i8*, i8*, %_TyDescrTy_Typ*, i32, i8*, i32) -; Function Attrs: nofree nosync nounwind readnone speculatable willreturn +; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn declare i64 @llvm.umin.i64(i64, i64) #0 declare %TName_Bool* @_eq_String(i8*, %String, %String) -define void @t1(i8* %0) !dbg !44 { +define void @t1(i8* %0) !dbg !103 { entry: - %"$_amount_451" = getelementptr i8, i8* %0, i32 0 - %"$_amount_452" = bitcast i8* %"$_amount_451" to %Uint128* - %_amount = load %Uint128, %Uint128* %"$_amount_452", align 8 - %"$_origin_453" = getelementptr i8, i8* %0, i32 16 - %"$_origin_454" = bitcast i8* %"$_origin_453" to [20 x i8]* - %"$_sender_455" = getelementptr i8, i8* %0, i32 36 - %"$_sender_456" = bitcast i8* %"$_sender_455" to [20 x i8]* - call void @"$t1_339"(%Uint128 %_amount, [20 x i8]* %"$_origin_454", [20 x i8]* %"$_sender_456"), !dbg !45 + %"$_amount_465" = getelementptr i8, i8* %0, i32 0 + %"$_amount_466" = bitcast i8* %"$_amount_465" to %Uint128* + %_amount = load %Uint128, %Uint128* %"$_amount_466", align 8 + %"$_origin_467" = getelementptr i8, i8* %0, i32 16 + %"$_origin_468" = bitcast i8* %"$_origin_467" to [20 x i8]* + %"$_sender_469" = getelementptr i8, i8* %0, i32 36 + %"$_sender_470" = bitcast i8* %"$_sender_469" to [20 x i8]* + call void @"$t1_350"(%Uint128 %_amount, [20 x i8]* %"$_origin_468", [20 x i8]* %"$_sender_470"), !dbg !104 ret void } -define internal void @"$t2_457"(%Uint128 %_amount, [20 x i8]* %"$_origin_458", [20 x i8]* %"$_sender_459") !dbg !46 { +define internal void @"$t2_471"(%Uint128 %_amount, [20 x i8]* %"$_origin_472", [20 x i8]* %"$_sender_473") !dbg !105 { entry: - %_origin = load [20 x i8], [20 x i8]* %"$_origin_458", align 1 - %_sender = load [20 x i8], [20 x i8]* %"$_sender_459", 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" - -"$out_of_gas_462": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_463" - -"$have_gas_463": ; preds = %"$out_of_gas_462", %entry - %"$consume_464" = sub i64 %"$gasrem_460", 1 - store i64 %"$consume_464", i64* @_gasrem, align 8 + %"$_sender_599" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_sender_473", [20 x i8]** %"$_sender_599", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_sender_599", metadata !106, metadata !DIExpression()), !dbg !107 + %"$_origin_598" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_origin_472", [20 x i8]** %"$_origin_598", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_origin_598", metadata !108, metadata !DIExpression()), !dbg !107 + %"$_amount_597" = alloca %Uint128, align 8 + store %Uint128 %_amount, %Uint128* %"$_amount_597", align 8 + call void @llvm.dbg.declare(metadata %Uint128* %"$_amount_597", metadata !109, metadata !DIExpression()), !dbg !107 + %_origin = load [20 x i8], [20 x i8]* %"$_origin_472", align 1 + %_sender = load [20 x i8], [20 x i8]* %"$_sender_473", align 1 + %"$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 = %entry + call void @_out_of_gas() + br label %"$have_gas_477" + +"$have_gas_477": ; preds = %"$out_of_gas_476", %entry + %"$consume_478" = sub i64 %"$gasrem_474", 1 + store i64 %"$consume_478", i64* @_gasrem, align 8 %tname = alloca %String, align 8 - %"$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" + call void @llvm.dbg.declare(metadata %String* %tname, metadata !110, metadata !DIExpression()), !dbg !111 + %"$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_467": ; preds = %"$have_gas_463" +"$out_of_gas_481": ; preds = %"$have_gas_477" call void @_out_of_gas() - br label %"$have_gas_468" + br label %"$have_gas_482" -"$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 - store %String { i8* getelementptr inbounds ([2 x i8], [2 x i8]* @"$stringlit_470", i32 0, i32 0), i32 2 }, %String* %tname, align 8, !dbg !47 +"$have_gas_482": ; preds = %"$out_of_gas_481", %"$have_gas_477" + %"$consume_483" = sub i64 %"$gasrem_479", 1 + store i64 %"$consume_483", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([2 x i8], [2 x i8]* @"$stringlit_484", i32 0, i32 0), i32 2 }, %String* %tname, align 8, !dbg !112 %f = alloca %String, align 8 - %"$execptr_load_472" = load i8*, i8** @_execptr, align 8 - %"$f_call_473" = call i8* @_fetch_field(i8* %"$execptr_load_472", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_s1_471", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_String_52", i32 0, i8* null, i32 1), !dbg !48 - %"$f_474" = bitcast i8* %"$f_call_473" to %String* - %"$f_475" = load %String, %String* %"$f_474", align 8 - store %String %"$f_475", %String* %f, align 8 - %"$_literal_cost_f_476" = alloca %String, align 8 - %"$f_477" = load %String, %String* %f, align 8 - store %String %"$f_477", %String* %"$_literal_cost_f_476", align 8 - %"$$_literal_cost_f_476_478" = bitcast %String* %"$_literal_cost_f_476" to i8* - %"$_literal_cost_call_479" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_52", i8* %"$$_literal_cost_f_476_478") - %"$gasadd_480" = add i64 %"$_literal_cost_call_479", 0 - %"$gasrem_481" = load i64, i64* @_gasrem, align 8 - %"$gascmp_482" = icmp ugt i64 %"$gasadd_480", %"$gasrem_481" - br i1 %"$gascmp_482", label %"$out_of_gas_483", label %"$have_gas_484" - -"$out_of_gas_483": ; preds = %"$have_gas_468" - call void @_out_of_gas() - br label %"$have_gas_484" - -"$have_gas_484": ; preds = %"$out_of_gas_483", %"$have_gas_468" - %"$consume_485" = sub i64 %"$gasrem_481", %"$gasadd_480" - store i64 %"$consume_485", i64* @_gasrem, 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_484" - call void @_out_of_gas() - br label %"$have_gas_489" - -"$have_gas_489": ; preds = %"$out_of_gas_488", %"$have_gas_484" - %"$consume_490" = sub i64 %"$gasrem_486", 1 - store i64 %"$consume_490", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %String* %f, metadata !113, metadata !DIExpression()), !dbg !114 + %"$execptr_load_486" = load i8*, i8** @_execptr, align 8 + %"$f_call_487" = call i8* @_fetch_field(i8* %"$execptr_load_486", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_s1_485", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_String_52", i32 0, i8* null, i32 1), !dbg !114 + %"$f_488" = bitcast i8* %"$f_call_487" to %String* + %"$f_489" = load %String, %String* %"$f_488", align 8 + store %String %"$f_489", %String* %f, align 8 + %"$_literal_cost_f_490" = alloca %String, align 8 + %"$f_491" = load %String, %String* %f, align 8 + store %String %"$f_491", %String* %"$_literal_cost_f_490", align 8 + %"$$_literal_cost_f_490_492" = bitcast %String* %"$_literal_cost_f_490" to i8* + %"$_literal_cost_call_493" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_52", i8* %"$$_literal_cost_f_490_492") + %"$gasadd_494" = add i64 %"$_literal_cost_call_493", 0 + %"$gasrem_495" = load i64, i64* @_gasrem, align 8 + %"$gascmp_496" = icmp ugt i64 %"$gasadd_494", %"$gasrem_495" + br i1 %"$gascmp_496", label %"$out_of_gas_497", label %"$have_gas_498" + +"$out_of_gas_497": ; preds = %"$have_gas_482" + call void @_out_of_gas() + br label %"$have_gas_498" + +"$have_gas_498": ; preds = %"$out_of_gas_497", %"$have_gas_482" + %"$consume_499" = sub i64 %"$gasrem_495", %"$gasadd_494" + store i64 %"$consume_499", i64* @_gasrem, align 8 + %"$gasrem_500" = load i64, i64* @_gasrem, align 8 + %"$gascmp_501" = icmp ugt i64 1, %"$gasrem_500" + br i1 %"$gascmp_501", label %"$out_of_gas_502", label %"$have_gas_503" + +"$out_of_gas_502": ; preds = %"$have_gas_498" + call void @_out_of_gas() + br label %"$have_gas_503" + +"$have_gas_503": ; preds = %"$out_of_gas_502", %"$have_gas_498" + %"$consume_504" = sub i64 %"$gasrem_500", 1 + store i64 %"$consume_504", i64* @_gasrem, align 8 %s = alloca %String, 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 - store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_496", i32 0, i32 0), i32 3 }, %String* %s, align 8, !dbg !49 - %"$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" + call void @llvm.dbg.declare(metadata %String* %s, metadata !115, metadata !DIExpression()), !dbg !116 + %"$gasrem_505" = load i64, i64* @_gasrem, align 8 + %"$gascmp_506" = icmp ugt i64 1, %"$gasrem_505" + br i1 %"$gascmp_506", label %"$out_of_gas_507", label %"$have_gas_508" -"$out_of_gas_499": ; preds = %"$have_gas_494" +"$out_of_gas_507": ; preds = %"$have_gas_503" call void @_out_of_gas() - br label %"$have_gas_500" + br label %"$have_gas_508" -"$have_gas_500": ; preds = %"$out_of_gas_499", %"$have_gas_494" - %"$consume_501" = sub i64 %"$gasrem_497", 1 - store i64 %"$consume_501", i64* @_gasrem, align 8 - %t = alloca %TName_Bool*, align 8 - %"$_literal_cost_f_502" = alloca %String, align 8 - %"$f_503" = load %String, %String* %f, align 8 - store %String %"$f_503", %String* %"$_literal_cost_f_502", align 8 - %"$$_literal_cost_f_502_504" = bitcast %String* %"$_literal_cost_f_502" to i8* - %"$_literal_cost_call_505" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_52", i8* %"$$_literal_cost_f_502_504") - %"$_literal_cost_s_506" = alloca %String, align 8 - %"$s_507" = load %String, %String* %s, align 8 - store %String %"$s_507", %String* %"$_literal_cost_s_506", align 8 - %"$$_literal_cost_s_506_508" = bitcast %String* %"$_literal_cost_s_506" to i8* - %"$_literal_cost_call_509" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_52", i8* %"$$_literal_cost_s_506_508") - %"$gasmin_510" = call i64 @llvm.umin.i64(i64 %"$_literal_cost_call_505", i64 %"$_literal_cost_call_509") +"$have_gas_508": ; preds = %"$out_of_gas_507", %"$have_gas_503" + %"$consume_509" = sub i64 %"$gasrem_505", 1 + store i64 %"$consume_509", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_510", i32 0, i32 0), i32 3 }, %String* %s, align 8, !dbg !117 %"$gasrem_511" = load i64, i64* @_gasrem, align 8 - %"$gascmp_512" = icmp ugt i64 %"$gasmin_510", %"$gasrem_511" + %"$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_500" +"$out_of_gas_513": ; preds = %"$have_gas_508" call void @_out_of_gas() br label %"$have_gas_514" -"$have_gas_514": ; preds = %"$out_of_gas_513", %"$have_gas_500" - %"$consume_515" = sub i64 %"$gasrem_511", %"$gasmin_510" +"$have_gas_514": ; preds = %"$out_of_gas_513", %"$have_gas_508" + %"$consume_515" = sub i64 %"$gasrem_511", 1 store i64 %"$consume_515", i64* @_gasrem, align 8 - %"$execptr_load_516" = load i8*, i8** @_execptr, align 8 + %t = alloca %TName_Bool*, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %t, metadata !118, metadata !DIExpression()), !dbg !119 + %"$_literal_cost_f_516" = alloca %String, align 8 %"$f_517" = load %String, %String* %f, align 8 - %"$s_518" = load %String, %String* %s, align 8 - %"$eq_call_519" = call %TName_Bool* @_eq_String(i8* %"$execptr_load_516", %String %"$f_517", %String %"$s_518"), !dbg !50 - store %TName_Bool* %"$eq_call_519", %TName_Bool** %t, align 8, !dbg !50 - %"$gasrem_521" = load i64, i64* @_gasrem, align 8 - %"$gascmp_522" = icmp ugt i64 2, %"$gasrem_521" - br i1 %"$gascmp_522", label %"$out_of_gas_523", label %"$have_gas_524" - -"$out_of_gas_523": ; preds = %"$have_gas_514" - call void @_out_of_gas() - br label %"$have_gas_524" - -"$have_gas_524": ; preds = %"$out_of_gas_523", %"$have_gas_514" - %"$consume_525" = sub i64 %"$gasrem_521", 2 - store i64 %"$consume_525", i64* @_gasrem, align 8 - %"$t_527" = load %TName_Bool*, %TName_Bool** %t, align 8 - %"$t_tag_528" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$t_527", i32 0, i32 0 - %"$t_tag_529" = load i8, i8* %"$t_tag_528", align 1 - switch i8 %"$t_tag_529", label %"$empty_default_530" [ - i8 1, label %"$False_531" - i8 0, label %"$True_541" - ], !dbg !51 - -"$False_531": ; preds = %"$have_gas_524" - %"$t_532" = bitcast %TName_Bool* %"$t_527" to %CName_False* - %"$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_535": ; preds = %"$False_531" - call void @_out_of_gas() - br label %"$have_gas_536" - -"$have_gas_536": ; preds = %"$out_of_gas_535", %"$False_531" - %"$consume_537" = sub i64 %"$gasrem_533", 1 - store i64 %"$consume_537", i64* @_gasrem, align 8 - %"$fail__origin_538" = alloca [20 x i8], align 1 - store [20 x i8] %_origin, [20 x i8]* %"$fail__origin_538", align 1 - %"$fail__sender_539" = alloca [20 x i8], align 1 - store [20 x i8] %_sender, [20 x i8]* %"$fail__sender_539", align 1 - %"$tname_540" = load %String, %String* %tname, align 8 - call void @"$fail_252"(%Uint128 %_amount, [20 x i8]* %"$fail__origin_538", [20 x i8]* %"$fail__sender_539", %String %"$tname_540"), !dbg !52 - br label %"$matchsucc_526" - -"$True_541": ; preds = %"$have_gas_524" - %"$t_542" = bitcast %TName_Bool* %"$t_527" to %CName_True* - br label %"$matchsucc_526" - -"$empty_default_530": ; preds = %"$have_gas_524" - br label %"$matchsucc_526" - -"$matchsucc_526": ; preds = %"$True_541", %"$have_gas_536", %"$empty_default_530" - %"$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 = %"$matchsucc_526" - call void @_out_of_gas() - br label %"$have_gas_546" - -"$have_gas_546": ; preds = %"$out_of_gas_545", %"$matchsucc_526" - %"$consume_547" = sub i64 %"$gasrem_543", 1 - store i64 %"$consume_547", i64* @_gasrem, align 8 + store %String %"$f_517", %String* %"$_literal_cost_f_516", align 8 + %"$$_literal_cost_f_516_518" = bitcast %String* %"$_literal_cost_f_516" to i8* + %"$_literal_cost_call_519" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_52", i8* %"$$_literal_cost_f_516_518") + %"$_literal_cost_s_520" = alloca %String, align 8 + %"$s_521" = load %String, %String* %s, align 8 + store %String %"$s_521", %String* %"$_literal_cost_s_520", align 8 + %"$$_literal_cost_s_520_522" = bitcast %String* %"$_literal_cost_s_520" to i8* + %"$_literal_cost_call_523" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_52", i8* %"$$_literal_cost_s_520_522") + %"$gasmin_524" = call i64 @llvm.umin.i64(i64 %"$_literal_cost_call_519", i64 %"$_literal_cost_call_523") + %"$gasrem_525" = load i64, i64* @_gasrem, align 8 + %"$gascmp_526" = icmp ugt i64 %"$gasmin_524", %"$gasrem_525" + br i1 %"$gascmp_526", label %"$out_of_gas_527", label %"$have_gas_528" + +"$out_of_gas_527": ; preds = %"$have_gas_514" + call void @_out_of_gas() + br label %"$have_gas_528" + +"$have_gas_528": ; preds = %"$out_of_gas_527", %"$have_gas_514" + %"$consume_529" = sub i64 %"$gasrem_525", %"$gasmin_524" + store i64 %"$consume_529", i64* @_gasrem, align 8 + %"$execptr_load_530" = load i8*, i8** @_execptr, align 8 + %"$f_531" = load %String, %String* %f, align 8 + %"$s_532" = load %String, %String* %s, align 8 + %"$eq_call_533" = call %TName_Bool* @_eq_String(i8* %"$execptr_load_530", %String %"$f_531", %String %"$s_532"), !dbg !120 + store %TName_Bool* %"$eq_call_533", %TName_Bool** %t, align 8, !dbg !120 + %"$gasrem_535" = load i64, i64* @_gasrem, align 8 + %"$gascmp_536" = icmp ugt i64 2, %"$gasrem_535" + br i1 %"$gascmp_536", label %"$out_of_gas_537", label %"$have_gas_538" + +"$out_of_gas_537": ; preds = %"$have_gas_528" + call void @_out_of_gas() + br label %"$have_gas_538" + +"$have_gas_538": ; preds = %"$out_of_gas_537", %"$have_gas_528" + %"$consume_539" = sub i64 %"$gasrem_535", 2 + store i64 %"$consume_539", i64* @_gasrem, align 8 + %"$t_541" = load %TName_Bool*, %TName_Bool** %t, align 8 + %"$t_tag_542" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$t_541", i32 0, i32 0 + %"$t_tag_543" = load i8, i8* %"$t_tag_542", align 1 + switch i8 %"$t_tag_543", label %"$empty_default_544" [ + i8 1, label %"$False_545" + i8 0, label %"$True_555" + ], !dbg !121 + +"$False_545": ; preds = %"$have_gas_538" + %"$t_546" = bitcast %TName_Bool* %"$t_541" to %CName_False* + %"$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 = %"$False_545" + call void @_out_of_gas() + br label %"$have_gas_550" + +"$have_gas_550": ; preds = %"$out_of_gas_549", %"$False_545" + %"$consume_551" = sub i64 %"$gasrem_547", 1 + store i64 %"$consume_551", i64* @_gasrem, align 8 + %"$fail__origin_552" = alloca [20 x i8], align 1 + store [20 x i8] %_origin, [20 x i8]* %"$fail__origin_552", align 1 + %"$fail__sender_553" = alloca [20 x i8], align 1 + store [20 x i8] %_sender, [20 x i8]* %"$fail__sender_553", align 1 + %"$tname_554" = load %String, %String* %tname, align 8 + call void @"$fail_254"(%Uint128 %_amount, [20 x i8]* %"$fail__origin_552", [20 x i8]* %"$fail__sender_553", %String %"$tname_554"), !dbg !122 + br label %"$matchsucc_540" + +"$True_555": ; preds = %"$have_gas_538" + %"$t_556" = bitcast %TName_Bool* %"$t_541" to %CName_True* + br label %"$matchsucc_540" + +"$empty_default_544": ; preds = %"$have_gas_538" + br label %"$matchsucc_540" + +"$matchsucc_540": ; preds = %"$True_555", %"$have_gas_550", %"$empty_default_544" + %"$gasrem_557" = load i64, i64* @_gasrem, align 8 + %"$gascmp_558" = icmp ugt i64 1, %"$gasrem_557" + br i1 %"$gascmp_558", label %"$out_of_gas_559", label %"$have_gas_560" + +"$out_of_gas_559": ; preds = %"$matchsucc_540" + call void @_out_of_gas() + br label %"$have_gas_560" + +"$have_gas_560": ; preds = %"$out_of_gas_559", %"$matchsucc_540" + %"$consume_561" = sub i64 %"$gasrem_557", 1 + store i64 %"$consume_561", i64* @_gasrem, align 8 %key1 = alloca %String, 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" + call void @llvm.dbg.declare(metadata %String* %key1, metadata !125, metadata !DIExpression()), !dbg !126 + %"$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_550": ; preds = %"$have_gas_546" +"$out_of_gas_564": ; preds = %"$have_gas_560" call void @_out_of_gas() - br label %"$have_gas_551" + br label %"$have_gas_565" -"$have_gas_551": ; preds = %"$out_of_gas_550", %"$have_gas_546" - %"$consume_552" = sub i64 %"$gasrem_548", 1 - store i64 %"$consume_552", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_553", i32 0, i32 0), i32 4 }, %String* %key1, align 8, !dbg !55 - %"$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" +"$have_gas_565": ; preds = %"$out_of_gas_564", %"$have_gas_560" + %"$consume_566" = sub i64 %"$gasrem_562", 1 + store i64 %"$consume_566", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_567", i32 0, i32 0), i32 4 }, %String* %key1, align 8, !dbg !127 + %"$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" -"$out_of_gas_556": ; preds = %"$have_gas_551" +"$out_of_gas_570": ; preds = %"$have_gas_565" call void @_out_of_gas() - br label %"$have_gas_557" + br label %"$have_gas_571" -"$have_gas_557": ; preds = %"$out_of_gas_556", %"$have_gas_551" - %"$consume_558" = sub i64 %"$gasrem_554", 1 - store i64 %"$consume_558", i64* @_gasrem, align 8 +"$have_gas_571": ; preds = %"$out_of_gas_570", %"$have_gas_565" + %"$consume_572" = sub i64 %"$gasrem_568", 1 + store i64 %"$consume_572", i64* @_gasrem, align 8 %val1 = alloca %String, 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_557" - call void @_out_of_gas() - br label %"$have_gas_562" - -"$have_gas_562": ; preds = %"$out_of_gas_561", %"$have_gas_557" - %"$consume_563" = sub i64 %"$gasrem_559", 1 - store i64 %"$consume_563", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_564", i32 0, i32 0), i32 3 }, %String* %val1, align 8, !dbg !56 - %"$_literal_cost_val1_565" = alloca %String, align 8 - %"$val1_566" = load %String, %String* %val1, align 8 - store %String %"$val1_566", %String* %"$_literal_cost_val1_565", align 8 - %"$$_literal_cost_val1_565_567" = bitcast %String* %"$_literal_cost_val1_565" to i8* - %"$_literal_cost_call_568" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_52", i8* %"$$_literal_cost_val1_565_567") - %"$gasadd_569" = add i64 %"$_literal_cost_call_568", 1 - %"$gasrem_570" = load i64, i64* @_gasrem, align 8 - %"$gascmp_571" = icmp ugt i64 %"$gasadd_569", %"$gasrem_570" - br i1 %"$gascmp_571", label %"$out_of_gas_572", label %"$have_gas_573" - -"$out_of_gas_572": ; preds = %"$have_gas_562" - call void @_out_of_gas() - br label %"$have_gas_573" - -"$have_gas_573": ; preds = %"$out_of_gas_572", %"$have_gas_562" - %"$consume_574" = sub i64 %"$gasrem_570", %"$gasadd_569" - store i64 %"$consume_574", i64* @_gasrem, align 8 - %"$indices_buf_575_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$indices_buf_575_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_575_salloc_load", i64 16) - %"$indices_buf_575_salloc" = bitcast i8* %"$indices_buf_575_salloc_salloc" to [16 x i8]* - %"$indices_buf_575" = bitcast [16 x i8]* %"$indices_buf_575_salloc" to i8* - %"$key1_576" = load %String, %String* %key1, align 8 - %"$indices_gep_577" = getelementptr i8, i8* %"$indices_buf_575", i32 0 - %indices_cast = bitcast i8* %"$indices_gep_577" to %String* - store %String %"$key1_576", %String* %indices_cast, align 8 - %"$execptr_load_578" = load i8*, i8** @_execptr, align 8 + call void @llvm.dbg.declare(metadata %String* %val1, metadata !128, metadata !DIExpression()), !dbg !129 + %"$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_571" + call void @_out_of_gas() + br label %"$have_gas_576" + +"$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 %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_578", i32 0, i32 0), i32 3 }, %String* %val1, align 8, !dbg !130 + %"$_literal_cost_val1_579" = alloca %String, align 8 %"$val1_580" = load %String, %String* %val1, align 8 - %"$update_value_581" = alloca %String, align 8 - store %String %"$val1_580", %String* %"$update_value_581", align 8 - %"$update_value_582" = bitcast %String* %"$update_value_581" to i8* - call void @_update_field(i8* %"$execptr_load_578", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m1_579", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_77", i32 1, i8* %"$indices_buf_575", i8* %"$update_value_582"), !dbg !57 + store %String %"$val1_580", %String* %"$_literal_cost_val1_579", align 8 + %"$$_literal_cost_val1_579_581" = bitcast %String* %"$_literal_cost_val1_579" to i8* + %"$_literal_cost_call_582" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_52", i8* %"$$_literal_cost_val1_579_581") + %"$gasadd_583" = add i64 %"$_literal_cost_call_582", 1 + %"$gasrem_584" = load i64, i64* @_gasrem, align 8 + %"$gascmp_585" = icmp ugt i64 %"$gasadd_583", %"$gasrem_584" + br i1 %"$gascmp_585", label %"$out_of_gas_586", label %"$have_gas_587" + +"$out_of_gas_586": ; preds = %"$have_gas_576" + call void @_out_of_gas() + br label %"$have_gas_587" + +"$have_gas_587": ; preds = %"$out_of_gas_586", %"$have_gas_576" + %"$consume_588" = sub i64 %"$gasrem_584", %"$gasadd_583" + store i64 %"$consume_588", i64* @_gasrem, align 8 + %"$indices_buf_589_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$indices_buf_589_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_589_salloc_load", i64 16) + %"$indices_buf_589_salloc" = bitcast i8* %"$indices_buf_589_salloc_salloc" to [16 x i8]* + %"$indices_buf_589" = bitcast [16 x i8]* %"$indices_buf_589_salloc" to i8* + %"$key1_590" = load %String, %String* %key1, align 8 + %"$indices_gep_591" = getelementptr i8, i8* %"$indices_buf_589", i32 0 + %indices_cast = bitcast i8* %"$indices_gep_591" to %String* + store %String %"$key1_590", %String* %indices_cast, align 8 + %"$execptr_load_592" = load i8*, i8** @_execptr, align 8 + %"$val1_594" = load %String, %String* %val1, align 8 + %"$update_value_595" = alloca %String, align 8 + store %String %"$val1_594", %String* %"$update_value_595", align 8 + %"$update_value_596" = bitcast %String* %"$update_value_595" to i8* + call void @_update_field(i8* %"$execptr_load_592", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m1_593", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_77", i32 1, i8* %"$indices_buf_589", i8* %"$update_value_596"), !dbg !131 ret void } -define void @t2(i8* %0) !dbg !58 { +define void @t2(i8* %0) !dbg !132 { entry: - %"$_amount_584" = getelementptr i8, i8* %0, i32 0 - %"$_amount_585" = bitcast i8* %"$_amount_584" to %Uint128* - %_amount = load %Uint128, %Uint128* %"$_amount_585", align 8 - %"$_origin_586" = getelementptr i8, i8* %0, i32 16 - %"$_origin_587" = bitcast i8* %"$_origin_586" to [20 x i8]* - %"$_sender_588" = getelementptr i8, i8* %0, i32 36 - %"$_sender_589" = bitcast i8* %"$_sender_588" to [20 x i8]* - call void @"$t2_457"(%Uint128 %_amount, [20 x i8]* %"$_origin_587", [20 x i8]* %"$_sender_589"), !dbg !59 + %"$_amount_601" = getelementptr i8, i8* %0, i32 0 + %"$_amount_602" = bitcast i8* %"$_amount_601" to %Uint128* + %_amount = load %Uint128, %Uint128* %"$_amount_602", align 8 + %"$_origin_603" = getelementptr i8, i8* %0, i32 16 + %"$_origin_604" = bitcast i8* %"$_origin_603" to [20 x i8]* + %"$_sender_605" = getelementptr i8, i8* %0, i32 36 + %"$_sender_606" = bitcast i8* %"$_sender_605" to [20 x i8]* + call void @"$t2_471"(%Uint128 %_amount, [20 x i8]* %"$_origin_604", [20 x i8]* %"$_sender_606"), !dbg !133 ret void } -define internal void @"$t3_590"(%Uint128 %_amount, [20 x i8]* %"$_origin_591", [20 x i8]* %"$_sender_592") !dbg !60 { +define internal void @"$t3_607"(%Uint128 %_amount, [20 x i8]* %"$_origin_608", [20 x i8]* %"$_sender_609") !dbg !134 { entry: - %_origin = load [20 x i8], [20 x i8]* %"$_origin_591", align 1 - %_sender = load [20 x i8], [20 x i8]* %"$_sender_592", align 1 - %"$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_595": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_596" - -"$have_gas_596": ; preds = %"$out_of_gas_595", %entry - %"$consume_597" = sub i64 %"$gasrem_593", 1 - store i64 %"$consume_597", i64* @_gasrem, align 8 + %"$_sender_818" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_sender_609", [20 x i8]** %"$_sender_818", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_sender_818", metadata !135, metadata !DIExpression()), !dbg !136 + %"$_origin_817" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_origin_608", [20 x i8]** %"$_origin_817", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_origin_817", metadata !137, metadata !DIExpression()), !dbg !136 + %"$_amount_816" = alloca %Uint128, align 8 + store %Uint128 %_amount, %Uint128* %"$_amount_816", align 8 + call void @llvm.dbg.declare(metadata %Uint128* %"$_amount_816", metadata !138, metadata !DIExpression()), !dbg !136 + %_origin = load [20 x i8], [20 x i8]* %"$_origin_608", align 1 + %_sender = load [20 x i8], [20 x i8]* %"$_sender_609", align 1 + %"$gasrem_610" = load i64, i64* @_gasrem, align 8 + %"$gascmp_611" = icmp ugt i64 1, %"$gasrem_610" + br i1 %"$gascmp_611", label %"$out_of_gas_612", label %"$have_gas_613" + +"$out_of_gas_612": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_613" + +"$have_gas_613": ; preds = %"$out_of_gas_612", %entry + %"$consume_614" = sub i64 %"$gasrem_610", 1 + store i64 %"$consume_614", i64* @_gasrem, align 8 %tname = alloca %String, align 8 - %"$gasrem_598" = load i64, i64* @_gasrem, align 8 - %"$gascmp_599" = icmp ugt i64 1, %"$gasrem_598" - br i1 %"$gascmp_599", label %"$out_of_gas_600", label %"$have_gas_601" + call void @llvm.dbg.declare(metadata %String* %tname, metadata !139, metadata !DIExpression()), !dbg !140 + %"$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_600": ; preds = %"$have_gas_596" +"$out_of_gas_617": ; preds = %"$have_gas_613" call void @_out_of_gas() - br label %"$have_gas_601" + br label %"$have_gas_618" -"$have_gas_601": ; preds = %"$out_of_gas_600", %"$have_gas_596" - %"$consume_602" = sub i64 %"$gasrem_598", 1 - store i64 %"$consume_602", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([2 x i8], [2 x i8]* @"$stringlit_603", i32 0, i32 0), i32 2 }, %String* %tname, align 8, !dbg !61 - %"$gasrem_604" = load i64, i64* @_gasrem, align 8 - %"$gascmp_605" = icmp ugt i64 1, %"$gasrem_604" - br i1 %"$gascmp_605", label %"$out_of_gas_606", label %"$have_gas_607" +"$have_gas_618": ; preds = %"$out_of_gas_617", %"$have_gas_613" + %"$consume_619" = sub i64 %"$gasrem_615", 1 + store i64 %"$consume_619", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([2 x i8], [2 x i8]* @"$stringlit_620", i32 0, i32 0), i32 2 }, %String* %tname, align 8, !dbg !141 + %"$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_606": ; preds = %"$have_gas_601" +"$out_of_gas_623": ; preds = %"$have_gas_618" call void @_out_of_gas() - br label %"$have_gas_607" + br label %"$have_gas_624" -"$have_gas_607": ; preds = %"$out_of_gas_606", %"$have_gas_601" - %"$consume_608" = sub i64 %"$gasrem_604", 1 - store i64 %"$consume_608", i64* @_gasrem, align 8 +"$have_gas_624": ; preds = %"$out_of_gas_623", %"$have_gas_618" + %"$consume_625" = sub i64 %"$gasrem_621", 1 + store i64 %"$consume_625", i64* @_gasrem, align 8 %s = alloca %String, 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" + call void @llvm.dbg.declare(metadata %String* %s, metadata !142, metadata !DIExpression()), !dbg !143 + %"$gasrem_626" = load i64, i64* @_gasrem, align 8 + %"$gascmp_627" = icmp ugt i64 1, %"$gasrem_626" + br i1 %"$gascmp_627", label %"$out_of_gas_628", label %"$have_gas_629" -"$out_of_gas_611": ; preds = %"$have_gas_607" +"$out_of_gas_628": ; preds = %"$have_gas_624" call void @_out_of_gas() - br label %"$have_gas_612" + br label %"$have_gas_629" -"$have_gas_612": ; preds = %"$out_of_gas_611", %"$have_gas_607" - %"$consume_613" = sub i64 %"$gasrem_609", 1 - store i64 %"$consume_613", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_614", i32 0, i32 0), i32 3 }, %String* %s, align 8, !dbg !62 - %"$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" +"$have_gas_629": ; preds = %"$out_of_gas_628", %"$have_gas_624" + %"$consume_630" = sub i64 %"$gasrem_626", 1 + store i64 %"$consume_630", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_631", i32 0, i32 0), i32 3 }, %String* %s, align 8, !dbg !144 + %"$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_617": ; preds = %"$have_gas_612" +"$out_of_gas_634": ; preds = %"$have_gas_629" call void @_out_of_gas() - br label %"$have_gas_618" + br label %"$have_gas_635" -"$have_gas_618": ; preds = %"$out_of_gas_617", %"$have_gas_612" - %"$consume_619" = sub i64 %"$gasrem_615", 1 - store i64 %"$consume_619", i64* @_gasrem, align 8 +"$have_gas_635": ; preds = %"$out_of_gas_634", %"$have_gas_629" + %"$consume_636" = sub i64 %"$gasrem_632", 1 + store i64 %"$consume_636", i64* @_gasrem, align 8 %key1 = alloca %String, align 8 - %"$gasrem_620" = load i64, i64* @_gasrem, align 8 - %"$gascmp_621" = icmp ugt i64 1, %"$gasrem_620" - br i1 %"$gascmp_621", label %"$out_of_gas_622", label %"$have_gas_623" + call void @llvm.dbg.declare(metadata %String* %key1, metadata !145, metadata !DIExpression()), !dbg !146 + %"$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_622": ; preds = %"$have_gas_618" +"$out_of_gas_639": ; preds = %"$have_gas_635" call void @_out_of_gas() - br label %"$have_gas_623" + br label %"$have_gas_640" -"$have_gas_623": ; preds = %"$out_of_gas_622", %"$have_gas_618" - %"$consume_624" = sub i64 %"$gasrem_620", 1 - store i64 %"$consume_624", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_625", i32 0, i32 0), i32 4 }, %String* %key1, align 8, !dbg !63 +"$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 + store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_642", i32 0, i32 0), i32 4 }, %String* %key1, align 8, !dbg !147 %val1 = alloca %TName_Option_String*, align 8 - %"$indices_buf_626_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$indices_buf_626_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_626_salloc_load", i64 16) - %"$indices_buf_626_salloc" = bitcast i8* %"$indices_buf_626_salloc_salloc" to [16 x i8]* - %"$indices_buf_626" = bitcast [16 x i8]* %"$indices_buf_626_salloc" to i8* - %"$key1_627" = load %String, %String* %key1, align 8 - %"$indices_gep_628" = getelementptr i8, i8* %"$indices_buf_626", i32 0 - %indices_cast = bitcast i8* %"$indices_gep_628" to %String* - store %String %"$key1_627", %String* %indices_cast, align 8 - %"$execptr_load_630" = load i8*, i8** @_execptr, align 8 - %"$val1_call_631" = call i8* @_fetch_field(i8* %"$execptr_load_630", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m1_629", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_77", i32 1, i8* %"$indices_buf_626", i32 1), !dbg !64 - %"$val1_632" = bitcast i8* %"$val1_call_631" to %TName_Option_String* - store %TName_Option_String* %"$val1_632", %TName_Option_String** %val1, align 8 - %"$val1_633" = load %TName_Option_String*, %TName_Option_String** %val1, align 8 - %"$$val1_633_634" = bitcast %TName_Option_String* %"$val1_633" to i8* - %"$_literal_cost_call_635" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_String_72", i8* %"$$val1_633_634") - %"$gasadd_636" = add i64 %"$_literal_cost_call_635", 0 - %"$gasadd_637" = add i64 %"$gasadd_636", 1 - %"$gasrem_638" = load i64, i64* @_gasrem, align 8 - %"$gascmp_639" = icmp ugt i64 %"$gasadd_637", %"$gasrem_638" - br i1 %"$gascmp_639", label %"$out_of_gas_640", label %"$have_gas_641" - -"$out_of_gas_640": ; preds = %"$have_gas_623" - call void @_out_of_gas() - br label %"$have_gas_641" - -"$have_gas_641": ; preds = %"$out_of_gas_640", %"$have_gas_623" - %"$consume_642" = sub i64 %"$gasrem_638", %"$gasadd_637" - store i64 %"$consume_642", i64* @_gasrem, align 8 - %"$gasrem_643" = load i64, i64* @_gasrem, align 8 - %"$gascmp_644" = icmp ugt i64 2, %"$gasrem_643" - br i1 %"$gascmp_644", label %"$out_of_gas_645", label %"$have_gas_646" - -"$out_of_gas_645": ; preds = %"$have_gas_641" - call void @_out_of_gas() - br label %"$have_gas_646" - -"$have_gas_646": ; preds = %"$out_of_gas_645", %"$have_gas_641" - %"$consume_647" = sub i64 %"$gasrem_643", 2 - store i64 %"$consume_647", i64* @_gasrem, align 8 - %"$val1_649" = load %TName_Option_String*, %TName_Option_String** %val1, align 8 - %"$val1_tag_650" = getelementptr inbounds %TName_Option_String, %TName_Option_String* %"$val1_649", i32 0, i32 0 - %"$val1_tag_651" = load i8, i8* %"$val1_tag_650", align 1 - switch i8 %"$val1_tag_651", label %"$empty_default_652" [ - i8 0, label %"$Some_653" - i8 1, label %"$None_715" - ], !dbg !65 - -"$Some_653": ; preds = %"$have_gas_646" - %"$val1_654" = bitcast %TName_Option_String* %"$val1_649" to %CName_Some_String* - %"$val_gep_655" = getelementptr inbounds %CName_Some_String, %CName_Some_String* %"$val1_654", i32 0, i32 1 - %"$val_load_656" = load %String, %String* %"$val_gep_655", align 8 + call void @llvm.dbg.declare(metadata %TName_Option_String** %val1, metadata !148, metadata !DIExpression()), !dbg !151 + %"$indices_buf_643_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$indices_buf_643_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_643_salloc_load", i64 16) + %"$indices_buf_643_salloc" = bitcast i8* %"$indices_buf_643_salloc_salloc" to [16 x i8]* + %"$indices_buf_643" = bitcast [16 x i8]* %"$indices_buf_643_salloc" to i8* + %"$key1_644" = load %String, %String* %key1, align 8 + %"$indices_gep_645" = getelementptr i8, i8* %"$indices_buf_643", i32 0 + %indices_cast = bitcast i8* %"$indices_gep_645" to %String* + store %String %"$key1_644", %String* %indices_cast, align 8 + %"$execptr_load_647" = load i8*, i8** @_execptr, align 8 + %"$val1_call_648" = call i8* @_fetch_field(i8* %"$execptr_load_647", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m1_646", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_77", i32 1, i8* %"$indices_buf_643", i32 1), !dbg !151 + %"$val1_649" = bitcast i8* %"$val1_call_648" to %TName_Option_String* + store %TName_Option_String* %"$val1_649", %TName_Option_String** %val1, align 8 + %"$val1_650" = load %TName_Option_String*, %TName_Option_String** %val1, align 8 + %"$$val1_650_651" = bitcast %TName_Option_String* %"$val1_650" to i8* + %"$_literal_cost_call_652" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_String_72", i8* %"$$val1_650_651") + %"$gasadd_653" = add i64 %"$_literal_cost_call_652", 0 + %"$gasadd_654" = add i64 %"$gasadd_653", 1 + %"$gasrem_655" = load i64, i64* @_gasrem, align 8 + %"$gascmp_656" = icmp ugt i64 %"$gasadd_654", %"$gasrem_655" + br i1 %"$gascmp_656", label %"$out_of_gas_657", label %"$have_gas_658" + +"$out_of_gas_657": ; preds = %"$have_gas_640" + call void @_out_of_gas() + br label %"$have_gas_658" + +"$have_gas_658": ; preds = %"$out_of_gas_657", %"$have_gas_640" + %"$consume_659" = sub i64 %"$gasrem_655", %"$gasadd_654" + store i64 %"$consume_659", i64* @_gasrem, 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 = %"$have_gas_658" + call void @_out_of_gas() + br label %"$have_gas_663" + +"$have_gas_663": ; preds = %"$out_of_gas_662", %"$have_gas_658" + %"$consume_664" = sub i64 %"$gasrem_660", 2 + store i64 %"$consume_664", i64* @_gasrem, align 8 + %"$val1_666" = load %TName_Option_String*, %TName_Option_String** %val1, align 8 + %"$val1_tag_667" = getelementptr inbounds %TName_Option_String, %TName_Option_String* %"$val1_666", i32 0, i32 0 + %"$val1_tag_668" = load i8, i8* %"$val1_tag_667", align 1 + switch i8 %"$val1_tag_668", label %"$empty_default_669" [ + i8 0, label %"$Some_670" + i8 1, label %"$None_732" + ], !dbg !152 + +"$Some_670": ; preds = %"$have_gas_663" + %"$val1_671" = bitcast %TName_Option_String* %"$val1_666" to %CName_Some_String* + %"$val_gep_672" = getelementptr inbounds %CName_Some_String, %CName_Some_String* %"$val1_671", i32 0, i32 1 + %"$val_load_673" = load %String, %String* %"$val_gep_672", align 8 %val = alloca %String, align 8 - store %String %"$val_load_656", %String* %val, align 8 - %"$gasrem_657" = load i64, i64* @_gasrem, align 8 - %"$gascmp_658" = icmp ugt i64 1, %"$gasrem_657" - br i1 %"$gascmp_658", label %"$out_of_gas_659", label %"$have_gas_660" + store %String %"$val_load_673", %String* %val, 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_659": ; preds = %"$Some_653" +"$out_of_gas_676": ; preds = %"$Some_670" call void @_out_of_gas() - br label %"$have_gas_660" + br label %"$have_gas_677" -"$have_gas_660": ; preds = %"$out_of_gas_659", %"$Some_653" - %"$consume_661" = sub i64 %"$gasrem_657", 1 - store i64 %"$consume_661", i64* @_gasrem, align 8 +"$have_gas_677": ; preds = %"$out_of_gas_676", %"$Some_670" + %"$consume_678" = sub i64 %"$gasrem_674", 1 + store i64 %"$consume_678", i64* @_gasrem, align 8 %t = alloca %TName_Bool*, align 8 - %"$_literal_cost_val_662" = alloca %String, align 8 - %"$val_663" = load %String, %String* %val, align 8 - store %String %"$val_663", %String* %"$_literal_cost_val_662", align 8 - %"$$_literal_cost_val_662_664" = bitcast %String* %"$_literal_cost_val_662" to i8* - %"$_literal_cost_call_665" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_52", i8* %"$$_literal_cost_val_662_664") - %"$_literal_cost_s_666" = alloca %String, align 8 - %"$s_667" = load %String, %String* %s, align 8 - store %String %"$s_667", %String* %"$_literal_cost_s_666", align 8 - %"$$_literal_cost_s_666_668" = bitcast %String* %"$_literal_cost_s_666" to i8* - %"$_literal_cost_call_669" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_52", i8* %"$$_literal_cost_s_666_668") - %"$gasmin_670" = call i64 @llvm.umin.i64(i64 %"$_literal_cost_call_665", i64 %"$_literal_cost_call_669") - %"$gasrem_671" = load i64, i64* @_gasrem, align 8 - %"$gascmp_672" = icmp ugt i64 %"$gasmin_670", %"$gasrem_671" - br i1 %"$gascmp_672", label %"$out_of_gas_673", label %"$have_gas_674" - -"$out_of_gas_673": ; preds = %"$have_gas_660" - call void @_out_of_gas() - br label %"$have_gas_674" - -"$have_gas_674": ; preds = %"$out_of_gas_673", %"$have_gas_660" - %"$consume_675" = sub i64 %"$gasrem_671", %"$gasmin_670" - store i64 %"$consume_675", i64* @_gasrem, align 8 - %"$execptr_load_676" = load i8*, i8** @_execptr, align 8 - %"$val_677" = load %String, %String* %val, align 8 - %"$s_678" = load %String, %String* %s, align 8 - %"$eq_call_679" = call %TName_Bool* @_eq_String(i8* %"$execptr_load_676", %String %"$val_677", %String %"$s_678"), !dbg !66 - store %TName_Bool* %"$eq_call_679", %TName_Bool** %t, align 8, !dbg !66 - %"$gasrem_681" = load i64, i64* @_gasrem, align 8 - %"$gascmp_682" = icmp ugt i64 2, %"$gasrem_681" - br i1 %"$gascmp_682", label %"$out_of_gas_683", label %"$have_gas_684" - -"$out_of_gas_683": ; preds = %"$have_gas_674" - call void @_out_of_gas() - br label %"$have_gas_684" - -"$have_gas_684": ; preds = %"$out_of_gas_683", %"$have_gas_674" - %"$consume_685" = sub i64 %"$gasrem_681", 2 - store i64 %"$consume_685", i64* @_gasrem, align 8 - %"$t_687" = load %TName_Bool*, %TName_Bool** %t, align 8 - %"$t_tag_688" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$t_687", i32 0, i32 0 - %"$t_tag_689" = load i8, i8* %"$t_tag_688", align 1 - switch i8 %"$t_tag_689", label %"$empty_default_690" [ - i8 1, label %"$False_691" - i8 0, label %"$True_713" - ], !dbg !69 - -"$False_691": ; preds = %"$have_gas_684" - %"$t_692" = bitcast %TName_Bool* %"$t_687" to %CName_False* - %"$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 = %"$False_691" - call void @_out_of_gas() - br label %"$have_gas_696" - -"$have_gas_696": ; preds = %"$out_of_gas_695", %"$False_691" - %"$consume_697" = sub i64 %"$gasrem_693", 1 - store i64 %"$consume_697", i64* @_gasrem, align 8 - %m = alloca %String, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %t, metadata !153, metadata !DIExpression()), !dbg !156 + %"$_literal_cost_val_679" = alloca %String, align 8 + %"$val_680" = load %String, %String* %val, align 8 + store %String %"$val_680", %String* %"$_literal_cost_val_679", align 8 + %"$$_literal_cost_val_679_681" = bitcast %String* %"$_literal_cost_val_679" to i8* + %"$_literal_cost_call_682" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_52", i8* %"$$_literal_cost_val_679_681") + %"$_literal_cost_s_683" = alloca %String, align 8 + %"$s_684" = load %String, %String* %s, align 8 + store %String %"$s_684", %String* %"$_literal_cost_s_683", align 8 + %"$$_literal_cost_s_683_685" = bitcast %String* %"$_literal_cost_s_683" to i8* + %"$_literal_cost_call_686" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_52", i8* %"$$_literal_cost_s_683_685") + %"$gasmin_687" = call i64 @llvm.umin.i64(i64 %"$_literal_cost_call_682", i64 %"$_literal_cost_call_686") + %"$gasrem_688" = load i64, i64* @_gasrem, align 8 + %"$gascmp_689" = icmp ugt i64 %"$gasmin_687", %"$gasrem_688" + br i1 %"$gascmp_689", label %"$out_of_gas_690", label %"$have_gas_691" + +"$out_of_gas_690": ; preds = %"$have_gas_677" + call void @_out_of_gas() + br label %"$have_gas_691" + +"$have_gas_691": ; preds = %"$out_of_gas_690", %"$have_gas_677" + %"$consume_692" = sub i64 %"$gasrem_688", %"$gasmin_687" + store i64 %"$consume_692", i64* @_gasrem, align 8 + %"$execptr_load_693" = load i8*, i8** @_execptr, align 8 + %"$val_694" = load %String, %String* %val, align 8 + %"$s_695" = load %String, %String* %s, align 8 + %"$eq_call_696" = call %TName_Bool* @_eq_String(i8* %"$execptr_load_693", %String %"$val_694", %String %"$s_695"), !dbg !157 + store %TName_Bool* %"$eq_call_696", %TName_Bool** %t, align 8, !dbg !157 %"$gasrem_698" = load i64, i64* @_gasrem, align 8 - %"$gascmp_699" = icmp ugt i64 1, %"$gasrem_698" + %"$gascmp_699" = icmp ugt i64 2, %"$gasrem_698" br i1 %"$gascmp_699", label %"$out_of_gas_700", label %"$have_gas_701" -"$out_of_gas_700": ; preds = %"$have_gas_696" +"$out_of_gas_700": ; preds = %"$have_gas_691" 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 +"$have_gas_701": ; preds = %"$out_of_gas_700", %"$have_gas_691" + %"$consume_702" = sub i64 %"$gasrem_698", 2 store i64 %"$consume_702", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([23 x i8], [23 x i8]* @"$stringlit_703", i32 0, i32 0), i32 23 }, %String* %m, align 8, !dbg !70 - %"$gasrem_704" = load i64, i64* @_gasrem, align 8 - %"$gascmp_705" = icmp ugt i64 1, %"$gasrem_704" - br i1 %"$gascmp_705", label %"$out_of_gas_706", label %"$have_gas_707" - -"$out_of_gas_706": ; preds = %"$have_gas_701" - call void @_out_of_gas() - br label %"$have_gas_707" - -"$have_gas_707": ; preds = %"$out_of_gas_706", %"$have_gas_701" - %"$consume_708" = sub i64 %"$gasrem_704", 1 - store i64 %"$consume_708", i64* @_gasrem, align 8 - %"$fail_msg__origin_709" = alloca [20 x i8], align 1 - store [20 x i8] %_origin, [20 x i8]* %"$fail_msg__origin_709", align 1 - %"$fail_msg__sender_710" = alloca [20 x i8], align 1 - store [20 x i8] %_sender, [20 x i8]* %"$fail_msg__sender_710", align 1 - %"$tname_711" = load %String, %String* %tname, align 8 - %"$m_712" = load %String, %String* %m, align 8 - call void @"$fail_msg_292"(%Uint128 %_amount, [20 x i8]* %"$fail_msg__origin_709", [20 x i8]* %"$fail_msg__sender_710", %String %"$tname_711", %String %"$m_712"), !dbg !73 - br label %"$matchsucc_686" - -"$True_713": ; preds = %"$have_gas_684" - %"$t_714" = bitcast %TName_Bool* %"$t_687" to %CName_True* - br label %"$matchsucc_686" - -"$empty_default_690": ; preds = %"$have_gas_684" - br label %"$matchsucc_686" - -"$matchsucc_686": ; preds = %"$True_713", %"$have_gas_707", %"$empty_default_690" - br label %"$matchsucc_648" - -"$None_715": ; preds = %"$have_gas_646" - %"$val1_716" = bitcast %TName_Option_String* %"$val1_649" to %CName_None_String* - %"$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 = %"$None_715" - call void @_out_of_gas() - br label %"$have_gas_720" - -"$have_gas_720": ; preds = %"$out_of_gas_719", %"$None_715" - %"$consume_721" = sub i64 %"$gasrem_717", 1 - store i64 %"$consume_721", i64* @_gasrem, align 8 - %"$fail__origin_722" = alloca [20 x i8], align 1 - store [20 x i8] %_origin, [20 x i8]* %"$fail__origin_722", align 1 - %"$fail__sender_723" = alloca [20 x i8], align 1 - store [20 x i8] %_sender, [20 x i8]* %"$fail__sender_723", align 1 - %"$tname_724" = load %String, %String* %tname, align 8 - call void @"$fail_252"(%Uint128 %_amount, [20 x i8]* %"$fail__origin_722", [20 x i8]* %"$fail__sender_723", %String %"$tname_724"), !dbg !74 - br label %"$matchsucc_648" - -"$empty_default_652": ; preds = %"$have_gas_646" - br label %"$matchsucc_648" - -"$matchsucc_648": ; preds = %"$have_gas_720", %"$matchsucc_686", %"$empty_default_652" - %"$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_727": ; preds = %"$matchsucc_648" - call void @_out_of_gas() - br label %"$have_gas_728" - -"$have_gas_728": ; preds = %"$out_of_gas_727", %"$matchsucc_648" - %"$consume_729" = sub i64 %"$gasrem_725", 1 - store i64 %"$consume_729", i64* @_gasrem, align 8 + %"$t_704" = load %TName_Bool*, %TName_Bool** %t, align 8 + %"$t_tag_705" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$t_704", i32 0, i32 0 + %"$t_tag_706" = load i8, i8* %"$t_tag_705", align 1 + switch i8 %"$t_tag_706", label %"$empty_default_707" [ + i8 1, label %"$False_708" + i8 0, label %"$True_730" + ], !dbg !158 + +"$False_708": ; preds = %"$have_gas_701" + %"$t_709" = bitcast %TName_Bool* %"$t_704" to %CName_False* + %"$gasrem_710" = load i64, i64* @_gasrem, align 8 + %"$gascmp_711" = icmp ugt i64 1, %"$gasrem_710" + br i1 %"$gascmp_711", label %"$out_of_gas_712", label %"$have_gas_713" + +"$out_of_gas_712": ; preds = %"$False_708" + call void @_out_of_gas() + br label %"$have_gas_713" + +"$have_gas_713": ; preds = %"$out_of_gas_712", %"$False_708" + %"$consume_714" = sub i64 %"$gasrem_710", 1 + store i64 %"$consume_714", i64* @_gasrem, align 8 + %m = alloca %String, align 8 + call void @llvm.dbg.declare(metadata %String* %m, metadata !159, metadata !DIExpression()), !dbg !162 + %"$gasrem_715" = load i64, i64* @_gasrem, align 8 + %"$gascmp_716" = icmp ugt i64 1, %"$gasrem_715" + br i1 %"$gascmp_716", label %"$out_of_gas_717", label %"$have_gas_718" + +"$out_of_gas_717": ; preds = %"$have_gas_713" + call void @_out_of_gas() + br label %"$have_gas_718" + +"$have_gas_718": ; preds = %"$out_of_gas_717", %"$have_gas_713" + %"$consume_719" = sub i64 %"$gasrem_715", 1 + store i64 %"$consume_719", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([23 x i8], [23 x i8]* @"$stringlit_720", i32 0, i32 0), i32 23 }, %String* %m, align 8, !dbg !163 + %"$gasrem_721" = load i64, i64* @_gasrem, align 8 + %"$gascmp_722" = icmp ugt i64 1, %"$gasrem_721" + br i1 %"$gascmp_722", label %"$out_of_gas_723", label %"$have_gas_724" + +"$out_of_gas_723": ; preds = %"$have_gas_718" + call void @_out_of_gas() + br label %"$have_gas_724" + +"$have_gas_724": ; preds = %"$out_of_gas_723", %"$have_gas_718" + %"$consume_725" = sub i64 %"$gasrem_721", 1 + store i64 %"$consume_725", i64* @_gasrem, align 8 + %"$fail_msg__origin_726" = alloca [20 x i8], align 1 + store [20 x i8] %_origin, [20 x i8]* %"$fail_msg__origin_726", align 1 + %"$fail_msg__sender_727" = alloca [20 x i8], align 1 + store [20 x i8] %_sender, [20 x i8]* %"$fail_msg__sender_727", align 1 + %"$tname_728" = load %String, %String* %tname, align 8 + %"$m_729" = load %String, %String* %m, align 8 + call void @"$fail_msg_298"(%Uint128 %_amount, [20 x i8]* %"$fail_msg__origin_726", [20 x i8]* %"$fail_msg__sender_727", %String %"$tname_728", %String %"$m_729"), !dbg !164 + br label %"$matchsucc_703" + +"$True_730": ; preds = %"$have_gas_701" + %"$t_731" = bitcast %TName_Bool* %"$t_704" to %CName_True* + br label %"$matchsucc_703" + +"$empty_default_707": ; preds = %"$have_gas_701" + br label %"$matchsucc_703" + +"$matchsucc_703": ; preds = %"$True_730", %"$have_gas_724", %"$empty_default_707" + br label %"$matchsucc_665" + +"$None_732": ; preds = %"$have_gas_663" + %"$val1_733" = bitcast %TName_Option_String* %"$val1_666" to %CName_None_String* + %"$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 = %"$None_732" + call void @_out_of_gas() + br label %"$have_gas_737" + +"$have_gas_737": ; preds = %"$out_of_gas_736", %"$None_732" + %"$consume_738" = sub i64 %"$gasrem_734", 1 + store i64 %"$consume_738", i64* @_gasrem, align 8 + %"$fail__origin_739" = alloca [20 x i8], align 1 + store [20 x i8] %_origin, [20 x i8]* %"$fail__origin_739", align 1 + %"$fail__sender_740" = alloca [20 x i8], align 1 + store [20 x i8] %_sender, [20 x i8]* %"$fail__sender_740", align 1 + %"$tname_741" = load %String, %String* %tname, align 8 + call void @"$fail_254"(%Uint128 %_amount, [20 x i8]* %"$fail__origin_739", [20 x i8]* %"$fail__sender_740", %String %"$tname_741"), !dbg !165 + br label %"$matchsucc_665" + +"$empty_default_669": ; preds = %"$have_gas_663" + br label %"$matchsucc_665" + +"$matchsucc_665": ; preds = %"$have_gas_737", %"$matchsucc_703", %"$empty_default_669" + %"$gasrem_742" = load i64, i64* @_gasrem, align 8 + %"$gascmp_743" = icmp ugt i64 1, %"$gasrem_742" + br i1 %"$gascmp_743", label %"$out_of_gas_744", label %"$have_gas_745" + +"$out_of_gas_744": ; preds = %"$matchsucc_665" + call void @_out_of_gas() + br label %"$have_gas_745" + +"$have_gas_745": ; preds = %"$out_of_gas_744", %"$matchsucc_665" + %"$consume_746" = sub i64 %"$gasrem_742", 1 + store i64 %"$consume_746", i64* @_gasrem, align 8 %key2 = alloca %String, align 8 - %"$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" + call void @llvm.dbg.declare(metadata %String* %key2, metadata !167, metadata !DIExpression()), !dbg !168 + %"$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_732": ; preds = %"$have_gas_728" +"$out_of_gas_749": ; preds = %"$have_gas_745" call void @_out_of_gas() - br label %"$have_gas_733" + br label %"$have_gas_750" -"$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 ([4 x i8], [4 x i8]* @"$stringlit_735", i32 0, i32 0), i32 4 }, %String* %key2, align 8, !dbg !76 +"$have_gas_750": ; preds = %"$out_of_gas_749", %"$have_gas_745" + %"$consume_751" = sub i64 %"$gasrem_747", 1 + store i64 %"$consume_751", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_752", i32 0, i32 0), i32 4 }, %String* %key2, align 8, !dbg !169 %val2 = alloca %TName_Option_String*, align 8 - %"$indices_buf_736_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$indices_buf_736_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_736_salloc_load", i64 16) - %"$indices_buf_736_salloc" = bitcast i8* %"$indices_buf_736_salloc_salloc" to [16 x i8]* - %"$indices_buf_736" = bitcast [16 x i8]* %"$indices_buf_736_salloc" to i8* - %"$key2_737" = load %String, %String* %key2, align 8 - %"$indices_gep_738" = getelementptr i8, i8* %"$indices_buf_736", i32 0 - %indices_cast1 = bitcast i8* %"$indices_gep_738" to %String* - store %String %"$key2_737", %String* %indices_cast1, align 8 - %"$execptr_load_740" = load i8*, i8** @_execptr, align 8 - %"$val2_call_741" = call i8* @_fetch_field(i8* %"$execptr_load_740", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m1_739", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_77", i32 1, i8* %"$indices_buf_736", i32 1), !dbg !77 - %"$val2_742" = bitcast i8* %"$val2_call_741" to %TName_Option_String* - store %TName_Option_String* %"$val2_742", %TName_Option_String** %val2, align 8 - %"$val2_743" = load %TName_Option_String*, %TName_Option_String** %val2, align 8 - %"$$val2_743_744" = bitcast %TName_Option_String* %"$val2_743" to i8* - %"$_literal_cost_call_745" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_String_72", i8* %"$$val2_743_744") - %"$gasadd_746" = add i64 %"$_literal_cost_call_745", 0 - %"$gasadd_747" = add i64 %"$gasadd_746", 1 - %"$gasrem_748" = load i64, i64* @_gasrem, align 8 - %"$gascmp_749" = icmp ugt i64 %"$gasadd_747", %"$gasrem_748" - br i1 %"$gascmp_749", label %"$out_of_gas_750", label %"$have_gas_751" - -"$out_of_gas_750": ; preds = %"$have_gas_733" - call void @_out_of_gas() - br label %"$have_gas_751" - -"$have_gas_751": ; preds = %"$out_of_gas_750", %"$have_gas_733" - %"$consume_752" = sub i64 %"$gasrem_748", %"$gasadd_747" - store i64 %"$consume_752", i64* @_gasrem, align 8 - %"$gasrem_753" = load i64, i64* @_gasrem, align 8 - %"$gascmp_754" = icmp ugt i64 2, %"$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", 2 - store i64 %"$consume_757", i64* @_gasrem, align 8 - %"$val2_759" = load %TName_Option_String*, %TName_Option_String** %val2, align 8 - %"$val2_tag_760" = getelementptr inbounds %TName_Option_String, %TName_Option_String* %"$val2_759", i32 0, i32 0 - %"$val2_tag_761" = load i8, i8* %"$val2_tag_760", align 1 - switch i8 %"$val2_tag_761", label %"$empty_default_762" [ - i8 0, label %"$Some_763" - i8 1, label %"$None_787" - ], !dbg !78 - -"$Some_763": ; preds = %"$have_gas_756" - %"$val2_764" = bitcast %TName_Option_String* %"$val2_759" to %CName_Some_String* - %"$$val2_15_gep_765" = getelementptr inbounds %CName_Some_String, %CName_Some_String* %"$val2_764", i32 0, i32 1 - %"$$val2_15_load_766" = load %String, %String* %"$$val2_15_gep_765", align 8 + call void @llvm.dbg.declare(metadata %TName_Option_String** %val2, metadata !170, metadata !DIExpression()), !dbg !171 + %"$indices_buf_753_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$indices_buf_753_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_753_salloc_load", i64 16) + %"$indices_buf_753_salloc" = bitcast i8* %"$indices_buf_753_salloc_salloc" to [16 x i8]* + %"$indices_buf_753" = bitcast [16 x i8]* %"$indices_buf_753_salloc" to i8* + %"$key2_754" = load %String, %String* %key2, align 8 + %"$indices_gep_755" = getelementptr i8, i8* %"$indices_buf_753", i32 0 + %indices_cast1 = bitcast i8* %"$indices_gep_755" to %String* + store %String %"$key2_754", %String* %indices_cast1, align 8 + %"$execptr_load_757" = load i8*, i8** @_execptr, align 8 + %"$val2_call_758" = call i8* @_fetch_field(i8* %"$execptr_load_757", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m1_756", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_77", i32 1, i8* %"$indices_buf_753", i32 1), !dbg !171 + %"$val2_759" = bitcast i8* %"$val2_call_758" to %TName_Option_String* + store %TName_Option_String* %"$val2_759", %TName_Option_String** %val2, align 8 + %"$val2_760" = load %TName_Option_String*, %TName_Option_String** %val2, align 8 + %"$$val2_760_761" = bitcast %TName_Option_String* %"$val2_760" to i8* + %"$_literal_cost_call_762" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_String_72", i8* %"$$val2_760_761") + %"$gasadd_763" = add i64 %"$_literal_cost_call_762", 0 + %"$gasadd_764" = add i64 %"$gasadd_763", 1 + %"$gasrem_765" = load i64, i64* @_gasrem, align 8 + %"$gascmp_766" = icmp ugt i64 %"$gasadd_764", %"$gasrem_765" + br i1 %"$gascmp_766", label %"$out_of_gas_767", label %"$have_gas_768" + +"$out_of_gas_767": ; preds = %"$have_gas_750" + call void @_out_of_gas() + br label %"$have_gas_768" + +"$have_gas_768": ; preds = %"$out_of_gas_767", %"$have_gas_750" + %"$consume_769" = sub i64 %"$gasrem_765", %"$gasadd_764" + store i64 %"$consume_769", i64* @_gasrem, align 8 + %"$gasrem_770" = load i64, i64* @_gasrem, align 8 + %"$gascmp_771" = icmp ugt i64 2, %"$gasrem_770" + br i1 %"$gascmp_771", label %"$out_of_gas_772", label %"$have_gas_773" + +"$out_of_gas_772": ; preds = %"$have_gas_768" + call void @_out_of_gas() + br label %"$have_gas_773" + +"$have_gas_773": ; preds = %"$out_of_gas_772", %"$have_gas_768" + %"$consume_774" = sub i64 %"$gasrem_770", 2 + store i64 %"$consume_774", i64* @_gasrem, align 8 + %"$val2_776" = load %TName_Option_String*, %TName_Option_String** %val2, align 8 + %"$val2_tag_777" = getelementptr inbounds %TName_Option_String, %TName_Option_String* %"$val2_776", i32 0, i32 0 + %"$val2_tag_778" = load i8, i8* %"$val2_tag_777", align 1 + switch i8 %"$val2_tag_778", label %"$empty_default_779" [ + i8 0, label %"$Some_780" + i8 1, label %"$None_804" + ], !dbg !172 + +"$Some_780": ; preds = %"$have_gas_773" + %"$val2_781" = bitcast %TName_Option_String* %"$val2_776" to %CName_Some_String* + %"$$val2_15_gep_782" = getelementptr inbounds %CName_Some_String, %CName_Some_String* %"$val2_781", i32 0, i32 1 + %"$$val2_15_load_783" = load %String, %String* %"$$val2_15_gep_782", align 8 %"$val2_15" = alloca %String, align 8 - store %String %"$$val2_15_load_766", %String* %"$val2_15", 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" + store %String %"$$val2_15_load_783", %String* %"$val2_15", 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" -"$out_of_gas_769": ; preds = %"$Some_763" +"$out_of_gas_786": ; preds = %"$Some_780" call void @_out_of_gas() - br label %"$have_gas_770" + br label %"$have_gas_787" -"$have_gas_770": ; preds = %"$out_of_gas_769", %"$Some_763" - %"$consume_771" = sub i64 %"$gasrem_767", 1 - store i64 %"$consume_771", i64* @_gasrem, align 8 +"$have_gas_787": ; preds = %"$out_of_gas_786", %"$Some_780" + %"$consume_788" = sub i64 %"$gasrem_784", 1 + store i64 %"$consume_788", i64* @_gasrem, align 8 %m2 = alloca %String, 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 - store %String { i8* getelementptr inbounds ([25 x i8], [25 x i8]* @"$stringlit_777", i32 0, i32 0), i32 25 }, %String* %m2, align 8, !dbg !79 - %"$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 - %"$fail_msg__origin_783" = alloca [20 x i8], align 1 - store [20 x i8] %_origin, [20 x i8]* %"$fail_msg__origin_783", align 1 - %"$fail_msg__sender_784" = alloca [20 x i8], align 1 - store [20 x i8] %_sender, [20 x i8]* %"$fail_msg__sender_784", align 1 - %"$tname_785" = load %String, %String* %tname, align 8 - %"$m_786" = load %String, %String* %m2, align 8 - call void @"$fail_msg_292"(%Uint128 %_amount, [20 x i8]* %"$fail_msg__origin_783", [20 x i8]* %"$fail_msg__sender_784", %String %"$tname_785", %String %"$m_786"), !dbg !82 - br label %"$matchsucc_758" - -"$None_787": ; preds = %"$have_gas_756" - %"$val2_788" = bitcast %TName_Option_String* %"$val2_759" to %CName_None_String* - br label %"$matchsucc_758" - -"$empty_default_762": ; preds = %"$have_gas_756" - br label %"$matchsucc_758" - -"$matchsucc_758": ; preds = %"$None_787", %"$have_gas_781", %"$empty_default_762" + call void @llvm.dbg.declare(metadata %String* %m2, metadata !173, metadata !DIExpression()), !dbg !176 %"$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 = %"$matchsucc_758" +"$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", %"$matchsucc_758" +"$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 - %"$indices_buf_794_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$indices_buf_794_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_794_salloc_load", i64 16) - %"$indices_buf_794_salloc" = bitcast i8* %"$indices_buf_794_salloc_salloc" to [16 x i8]* - %"$indices_buf_794" = bitcast [16 x i8]* %"$indices_buf_794_salloc" to i8* - %"$key1_795" = load %String, %String* %key1, align 8 - %"$indices_gep_796" = getelementptr i8, i8* %"$indices_buf_794", i32 0 - %indices_cast3 = bitcast i8* %"$indices_gep_796" to %String* - store %String %"$key1_795", %String* %indices_cast3, align 8 - %"$execptr_load_797" = load i8*, i8** @_execptr, align 8 - call void @_update_field(i8* %"$execptr_load_797", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m1_798", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_77", i32 1, i8* %"$indices_buf_794", i8* null), !dbg !83 + store %String { i8* getelementptr inbounds ([25 x i8], [25 x i8]* @"$stringlit_794", i32 0, i32 0), i32 25 }, %String* %m2, align 8, !dbg !177 + %"$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" + +"$out_of_gas_797": ; preds = %"$have_gas_792" + call void @_out_of_gas() + br label %"$have_gas_798" + +"$have_gas_798": ; preds = %"$out_of_gas_797", %"$have_gas_792" + %"$consume_799" = sub i64 %"$gasrem_795", 1 + store i64 %"$consume_799", i64* @_gasrem, align 8 + %"$fail_msg__origin_800" = alloca [20 x i8], align 1 + store [20 x i8] %_origin, [20 x i8]* %"$fail_msg__origin_800", align 1 + %"$fail_msg__sender_801" = alloca [20 x i8], align 1 + store [20 x i8] %_sender, [20 x i8]* %"$fail_msg__sender_801", align 1 + %"$tname_802" = load %String, %String* %tname, align 8 + %"$m_803" = load %String, %String* %m2, align 8 + call void @"$fail_msg_298"(%Uint128 %_amount, [20 x i8]* %"$fail_msg__origin_800", [20 x i8]* %"$fail_msg__sender_801", %String %"$tname_802", %String %"$m_803"), !dbg !178 + br label %"$matchsucc_775" + +"$None_804": ; preds = %"$have_gas_773" + %"$val2_805" = bitcast %TName_Option_String* %"$val2_776" to %CName_None_String* + br label %"$matchsucc_775" + +"$empty_default_779": ; preds = %"$have_gas_773" + br label %"$matchsucc_775" + +"$matchsucc_775": ; preds = %"$None_804", %"$have_gas_798", %"$empty_default_779" + %"$gasrem_806" = load i64, i64* @_gasrem, align 8 + %"$gascmp_807" = icmp ugt i64 1, %"$gasrem_806" + br i1 %"$gascmp_807", label %"$out_of_gas_808", label %"$have_gas_809" + +"$out_of_gas_808": ; preds = %"$matchsucc_775" + call void @_out_of_gas() + br label %"$have_gas_809" + +"$have_gas_809": ; preds = %"$out_of_gas_808", %"$matchsucc_775" + %"$consume_810" = sub i64 %"$gasrem_806", 1 + store i64 %"$consume_810", i64* @_gasrem, align 8 + %"$indices_buf_811_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$indices_buf_811_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_811_salloc_load", i64 16) + %"$indices_buf_811_salloc" = bitcast i8* %"$indices_buf_811_salloc_salloc" to [16 x i8]* + %"$indices_buf_811" = bitcast [16 x i8]* %"$indices_buf_811_salloc" to i8* + %"$key1_812" = load %String, %String* %key1, align 8 + %"$indices_gep_813" = getelementptr i8, i8* %"$indices_buf_811", i32 0 + %indices_cast3 = bitcast i8* %"$indices_gep_813" to %String* + store %String %"$key1_812", %String* %indices_cast3, align 8 + %"$execptr_load_814" = load i8*, i8** @_execptr, align 8 + call void @_update_field(i8* %"$execptr_load_814", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m1_815", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_77", i32 1, i8* %"$indices_buf_811", i8* null), !dbg !179 ret void } -define void @t3(i8* %0) !dbg !84 { +define void @t3(i8* %0) !dbg !180 { entry: - %"$_amount_800" = getelementptr i8, i8* %0, i32 0 - %"$_amount_801" = bitcast i8* %"$_amount_800" to %Uint128* - %_amount = load %Uint128, %Uint128* %"$_amount_801", align 8 - %"$_origin_802" = getelementptr i8, i8* %0, i32 16 - %"$_origin_803" = bitcast i8* %"$_origin_802" to [20 x i8]* - %"$_sender_804" = getelementptr i8, i8* %0, i32 36 - %"$_sender_805" = bitcast i8* %"$_sender_804" to [20 x i8]* - call void @"$t3_590"(%Uint128 %_amount, [20 x i8]* %"$_origin_803", [20 x i8]* %"$_sender_805"), !dbg !85 + %"$_amount_820" = getelementptr i8, i8* %0, i32 0 + %"$_amount_821" = bitcast i8* %"$_amount_820" to %Uint128* + %_amount = load %Uint128, %Uint128* %"$_amount_821", align 8 + %"$_origin_822" = getelementptr i8, i8* %0, i32 16 + %"$_origin_823" = bitcast i8* %"$_origin_822" to [20 x i8]* + %"$_sender_824" = getelementptr i8, i8* %0, i32 36 + %"$_sender_825" = bitcast i8* %"$_sender_824" to [20 x i8]* + call void @"$t3_607"(%Uint128 %_amount, [20 x i8]* %"$_origin_823", [20 x i8]* %"$_sender_825"), !dbg !181 ret void } -define internal void @"$t4_806"(%Uint128 %_amount, [20 x i8]* %"$_origin_807", [20 x i8]* %"$_sender_808") !dbg !86 { +define internal void @"$t4_826"(%Uint128 %_amount, [20 x i8]* %"$_origin_827", [20 x i8]* %"$_sender_828") !dbg !182 { entry: - %_origin = load [20 x i8], [20 x i8]* %"$_origin_807", align 1 - %_sender = load [20 x i8], [20 x i8]* %"$_sender_808", align 1 - %"$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 = %entry - call void @_out_of_gas() - br label %"$have_gas_812" - -"$have_gas_812": ; preds = %"$out_of_gas_811", %entry - %"$consume_813" = sub i64 %"$gasrem_809", 1 - store i64 %"$consume_813", i64* @_gasrem, align 8 + %"$_sender_945" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_sender_828", [20 x i8]** %"$_sender_945", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_sender_945", metadata !183, metadata !DIExpression()), !dbg !184 + %"$_origin_944" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_origin_827", [20 x i8]** %"$_origin_944", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_origin_944", metadata !185, metadata !DIExpression()), !dbg !184 + %"$_amount_943" = alloca %Uint128, align 8 + store %Uint128 %_amount, %Uint128* %"$_amount_943", align 8 + call void @llvm.dbg.declare(metadata %Uint128* %"$_amount_943", metadata !186, metadata !DIExpression()), !dbg !184 + %_origin = load [20 x i8], [20 x i8]* %"$_origin_827", align 1 + %_sender = load [20 x i8], [20 x i8]* %"$_sender_828", align 1 + %"$gasrem_829" = load i64, i64* @_gasrem, align 8 + %"$gascmp_830" = icmp ugt i64 1, %"$gasrem_829" + br i1 %"$gascmp_830", label %"$out_of_gas_831", label %"$have_gas_832" + +"$out_of_gas_831": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_832" + +"$have_gas_832": ; preds = %"$out_of_gas_831", %entry + %"$consume_833" = sub i64 %"$gasrem_829", 1 + store i64 %"$consume_833", i64* @_gasrem, align 8 %tname = alloca %String, align 8 - %"$gasrem_814" = load i64, i64* @_gasrem, align 8 - %"$gascmp_815" = icmp ugt i64 1, %"$gasrem_814" - br i1 %"$gascmp_815", label %"$out_of_gas_816", label %"$have_gas_817" + call void @llvm.dbg.declare(metadata %String* %tname, metadata !187, metadata !DIExpression()), !dbg !188 + %"$gasrem_834" = load i64, i64* @_gasrem, align 8 + %"$gascmp_835" = icmp ugt i64 1, %"$gasrem_834" + br i1 %"$gascmp_835", label %"$out_of_gas_836", label %"$have_gas_837" -"$out_of_gas_816": ; preds = %"$have_gas_812" +"$out_of_gas_836": ; preds = %"$have_gas_832" call void @_out_of_gas() - br label %"$have_gas_817" + br label %"$have_gas_837" -"$have_gas_817": ; preds = %"$out_of_gas_816", %"$have_gas_812" - %"$consume_818" = sub i64 %"$gasrem_814", 1 - store i64 %"$consume_818", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([2 x i8], [2 x i8]* @"$stringlit_819", i32 0, i32 0), i32 2 }, %String* %tname, align 8, !dbg !87 - %"$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" +"$have_gas_837": ; preds = %"$out_of_gas_836", %"$have_gas_832" + %"$consume_838" = sub i64 %"$gasrem_834", 1 + store i64 %"$consume_838", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([2 x i8], [2 x i8]* @"$stringlit_839", i32 0, i32 0), i32 2 }, %String* %tname, align 8, !dbg !189 + %"$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_822": ; preds = %"$have_gas_817" +"$out_of_gas_842": ; preds = %"$have_gas_837" call void @_out_of_gas() - br label %"$have_gas_823" + br label %"$have_gas_843" -"$have_gas_823": ; preds = %"$out_of_gas_822", %"$have_gas_817" - %"$consume_824" = sub i64 %"$gasrem_820", 1 - store i64 %"$consume_824", i64* @_gasrem, align 8 +"$have_gas_843": ; preds = %"$out_of_gas_842", %"$have_gas_837" + %"$consume_844" = sub i64 %"$gasrem_840", 1 + store i64 %"$consume_844", i64* @_gasrem, align 8 %key1 = alloca %String, 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" + call void @llvm.dbg.declare(metadata %String* %key1, metadata !190, metadata !DIExpression()), !dbg !191 + %"$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" -"$out_of_gas_827": ; preds = %"$have_gas_823" +"$out_of_gas_847": ; preds = %"$have_gas_843" call void @_out_of_gas() - br label %"$have_gas_828" + br label %"$have_gas_848" -"$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 - store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_830", i32 0, i32 0), i32 4 }, %String* %key1, align 8, !dbg !88 +"$have_gas_848": ; preds = %"$out_of_gas_847", %"$have_gas_843" + %"$consume_849" = sub i64 %"$gasrem_845", 1 + store i64 %"$consume_849", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_850", i32 0, i32 0), i32 4 }, %String* %key1, align 8, !dbg !192 %key1_found = alloca %TName_Bool*, align 8 - %"$indices_buf_831_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$indices_buf_831_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_831_salloc_load", i64 16) - %"$indices_buf_831_salloc" = bitcast i8* %"$indices_buf_831_salloc_salloc" to [16 x i8]* - %"$indices_buf_831" = bitcast [16 x i8]* %"$indices_buf_831_salloc" to i8* - %"$key1_832" = load %String, %String* %key1, align 8 - %"$indices_gep_833" = getelementptr i8, i8* %"$indices_buf_831", i32 0 - %indices_cast = bitcast i8* %"$indices_gep_833" to %String* - store %String %"$key1_832", %String* %indices_cast, align 8 - %"$execptr_load_835" = load i8*, i8** @_execptr, align 8 - %"$key1_found_call_836" = call i8* @_fetch_field(i8* %"$execptr_load_835", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m1_834", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_77", i32 1, i8* %"$indices_buf_831", i32 0), !dbg !89 - %"$key1_found_837" = bitcast i8* %"$key1_found_call_836" to %TName_Bool* - store %TName_Bool* %"$key1_found_837", %TName_Bool** %key1_found, align 8 - %"$key1_found_838" = load %TName_Bool*, %TName_Bool** %key1_found, align 8 - %"$$key1_found_838_839" = bitcast %TName_Bool* %"$key1_found_838" to i8* - %"$_literal_cost_call_840" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_73", i8* %"$$key1_found_838_839") - %"$gasadd_841" = add i64 %"$_literal_cost_call_840", 0 - %"$gasadd_842" = add i64 %"$gasadd_841", 1 - %"$gasrem_843" = load i64, i64* @_gasrem, align 8 - %"$gascmp_844" = icmp ugt i64 %"$gasadd_842", %"$gasrem_843" - br i1 %"$gascmp_844", label %"$out_of_gas_845", label %"$have_gas_846" - -"$out_of_gas_845": ; preds = %"$have_gas_828" - call void @_out_of_gas() - br label %"$have_gas_846" - -"$have_gas_846": ; preds = %"$out_of_gas_845", %"$have_gas_828" - %"$consume_847" = sub i64 %"$gasrem_843", %"$gasadd_842" - store i64 %"$consume_847", i64* @_gasrem, align 8 - %"$gasrem_848" = load i64, i64* @_gasrem, align 8 - %"$gascmp_849" = icmp ugt i64 2, %"$gasrem_848" - br i1 %"$gascmp_849", label %"$out_of_gas_850", label %"$have_gas_851" - -"$out_of_gas_850": ; preds = %"$have_gas_846" - call void @_out_of_gas() - br label %"$have_gas_851" - -"$have_gas_851": ; preds = %"$out_of_gas_850", %"$have_gas_846" - %"$consume_852" = sub i64 %"$gasrem_848", 2 - store i64 %"$consume_852", i64* @_gasrem, align 8 - %"$key1_found_854" = load %TName_Bool*, %TName_Bool** %key1_found, align 8 - %"$key1_found_tag_855" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$key1_found_854", i32 0, i32 0 - %"$key1_found_tag_856" = load i8, i8* %"$key1_found_tag_855", align 1 - switch i8 %"$key1_found_tag_856", label %"$empty_default_857" [ - i8 0, label %"$True_858" - i8 1, label %"$False_868" - ], !dbg !90 - -"$True_858": ; preds = %"$have_gas_851" - %"$key1_found_859" = bitcast %TName_Bool* %"$key1_found_854" to %CName_True* - %"$gasrem_860" = load i64, i64* @_gasrem, align 8 - %"$gascmp_861" = icmp ugt i64 1, %"$gasrem_860" - br i1 %"$gascmp_861", label %"$out_of_gas_862", label %"$have_gas_863" - -"$out_of_gas_862": ; preds = %"$True_858" - call void @_out_of_gas() - br label %"$have_gas_863" - -"$have_gas_863": ; preds = %"$out_of_gas_862", %"$True_858" - %"$consume_864" = sub i64 %"$gasrem_860", 1 - store i64 %"$consume_864", i64* @_gasrem, align 8 - %"$fail__origin_865" = alloca [20 x i8], align 1 - store [20 x i8] %_origin, [20 x i8]* %"$fail__origin_865", align 1 - %"$fail__sender_866" = alloca [20 x i8], align 1 - store [20 x i8] %_sender, [20 x i8]* %"$fail__sender_866", align 1 - %"$tname_867" = load %String, %String* %tname, align 8 - call void @"$fail_252"(%Uint128 %_amount, [20 x i8]* %"$fail__origin_865", [20 x i8]* %"$fail__sender_866", %String %"$tname_867"), !dbg !91 - br label %"$matchsucc_853" - -"$False_868": ; preds = %"$have_gas_851" - %"$key1_found_869" = bitcast %TName_Bool* %"$key1_found_854" to %CName_False* - br label %"$matchsucc_853" - -"$empty_default_857": ; preds = %"$have_gas_851" - br label %"$matchsucc_853" - -"$matchsucc_853": ; preds = %"$False_868", %"$have_gas_863", %"$empty_default_857" - %"$gasrem_870" = load i64, i64* @_gasrem, align 8 - %"$gascmp_871" = icmp ugt i64 1, %"$gasrem_870" - br i1 %"$gascmp_871", label %"$out_of_gas_872", label %"$have_gas_873" - -"$out_of_gas_872": ; preds = %"$matchsucc_853" - call void @_out_of_gas() - br label %"$have_gas_873" - -"$have_gas_873": ; preds = %"$out_of_gas_872", %"$matchsucc_853" - %"$consume_874" = sub i64 %"$gasrem_870", 1 - store i64 %"$consume_874", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %key1_found, metadata !193, metadata !DIExpression()), !dbg !194 + %"$indices_buf_851_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$indices_buf_851_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_851_salloc_load", i64 16) + %"$indices_buf_851_salloc" = bitcast i8* %"$indices_buf_851_salloc_salloc" to [16 x i8]* + %"$indices_buf_851" = bitcast [16 x i8]* %"$indices_buf_851_salloc" to i8* + %"$key1_852" = load %String, %String* %key1, align 8 + %"$indices_gep_853" = getelementptr i8, i8* %"$indices_buf_851", i32 0 + %indices_cast = bitcast i8* %"$indices_gep_853" to %String* + store %String %"$key1_852", %String* %indices_cast, align 8 + %"$execptr_load_855" = load i8*, i8** @_execptr, align 8 + %"$key1_found_call_856" = call i8* @_fetch_field(i8* %"$execptr_load_855", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m1_854", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_77", i32 1, i8* %"$indices_buf_851", i32 0), !dbg !194 + %"$key1_found_857" = bitcast i8* %"$key1_found_call_856" to %TName_Bool* + store %TName_Bool* %"$key1_found_857", %TName_Bool** %key1_found, align 8 + %"$key1_found_858" = load %TName_Bool*, %TName_Bool** %key1_found, align 8 + %"$$key1_found_858_859" = bitcast %TName_Bool* %"$key1_found_858" to i8* + %"$_literal_cost_call_860" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_73", i8* %"$$key1_found_858_859") + %"$gasadd_861" = add i64 %"$_literal_cost_call_860", 0 + %"$gasadd_862" = add i64 %"$gasadd_861", 1 + %"$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_848" + call void @_out_of_gas() + br label %"$have_gas_866" + +"$have_gas_866": ; preds = %"$out_of_gas_865", %"$have_gas_848" + %"$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 2, %"$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", 2 + store i64 %"$consume_872", i64* @_gasrem, align 8 + %"$key1_found_874" = load %TName_Bool*, %TName_Bool** %key1_found, align 8 + %"$key1_found_tag_875" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$key1_found_874", i32 0, i32 0 + %"$key1_found_tag_876" = load i8, i8* %"$key1_found_tag_875", align 1 + switch i8 %"$key1_found_tag_876", label %"$empty_default_877" [ + i8 0, label %"$True_878" + i8 1, label %"$False_888" + ], !dbg !195 + +"$True_878": ; preds = %"$have_gas_871" + %"$key1_found_879" = bitcast %TName_Bool* %"$key1_found_874" to %CName_True* + %"$gasrem_880" = load i64, i64* @_gasrem, align 8 + %"$gascmp_881" = icmp ugt i64 1, %"$gasrem_880" + br i1 %"$gascmp_881", label %"$out_of_gas_882", label %"$have_gas_883" + +"$out_of_gas_882": ; preds = %"$True_878" + call void @_out_of_gas() + br label %"$have_gas_883" + +"$have_gas_883": ; preds = %"$out_of_gas_882", %"$True_878" + %"$consume_884" = sub i64 %"$gasrem_880", 1 + store i64 %"$consume_884", i64* @_gasrem, align 8 + %"$fail__origin_885" = alloca [20 x i8], align 1 + store [20 x i8] %_origin, [20 x i8]* %"$fail__origin_885", align 1 + %"$fail__sender_886" = alloca [20 x i8], align 1 + store [20 x i8] %_sender, [20 x i8]* %"$fail__sender_886", align 1 + %"$tname_887" = load %String, %String* %tname, align 8 + call void @"$fail_254"(%Uint128 %_amount, [20 x i8]* %"$fail__origin_885", [20 x i8]* %"$fail__sender_886", %String %"$tname_887"), !dbg !196 + br label %"$matchsucc_873" + +"$False_888": ; preds = %"$have_gas_871" + %"$key1_found_889" = bitcast %TName_Bool* %"$key1_found_874" to %CName_False* + br label %"$matchsucc_873" + +"$empty_default_877": ; preds = %"$have_gas_871" + br label %"$matchsucc_873" + +"$matchsucc_873": ; preds = %"$False_888", %"$have_gas_883", %"$empty_default_877" + %"$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 = %"$matchsucc_873" + call void @_out_of_gas() + br label %"$have_gas_893" + +"$have_gas_893": ; preds = %"$out_of_gas_892", %"$matchsucc_873" + %"$consume_894" = sub i64 %"$gasrem_890", 1 + store i64 %"$consume_894", i64* @_gasrem, align 8 %key1a = alloca %String, align 8 - %"$gasrem_875" = load i64, i64* @_gasrem, align 8 - %"$gascmp_876" = icmp ugt i64 1, %"$gasrem_875" - br i1 %"$gascmp_876", label %"$out_of_gas_877", label %"$have_gas_878" + call void @llvm.dbg.declare(metadata %String* %key1a, metadata !199, metadata !DIExpression()), !dbg !200 + %"$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_877": ; preds = %"$have_gas_873" +"$out_of_gas_897": ; preds = %"$have_gas_893" call void @_out_of_gas() - br label %"$have_gas_878" + br label %"$have_gas_898" -"$have_gas_878": ; preds = %"$out_of_gas_877", %"$have_gas_873" - %"$consume_879" = sub i64 %"$gasrem_875", 1 - store i64 %"$consume_879", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_880", i32 0, i32 0), i32 5 }, %String* %key1a, align 8, !dbg !94 - %"$gasrem_881" = load i64, i64* @_gasrem, align 8 - %"$gascmp_882" = icmp ugt i64 1, %"$gasrem_881" - br i1 %"$gascmp_882", label %"$out_of_gas_883", label %"$have_gas_884" +"$have_gas_898": ; preds = %"$out_of_gas_897", %"$have_gas_893" + %"$consume_899" = sub i64 %"$gasrem_895", 1 + store i64 %"$consume_899", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_900", i32 0, i32 0), i32 5 }, %String* %key1a, align 8, !dbg !201 + %"$gasrem_901" = load i64, i64* @_gasrem, align 8 + %"$gascmp_902" = icmp ugt i64 1, %"$gasrem_901" + br i1 %"$gascmp_902", label %"$out_of_gas_903", label %"$have_gas_904" -"$out_of_gas_883": ; preds = %"$have_gas_878" +"$out_of_gas_903": ; preds = %"$have_gas_898" call void @_out_of_gas() - br label %"$have_gas_884" + br label %"$have_gas_904" -"$have_gas_884": ; preds = %"$out_of_gas_883", %"$have_gas_878" - %"$consume_885" = sub i64 %"$gasrem_881", 1 - store i64 %"$consume_885", i64* @_gasrem, align 8 +"$have_gas_904": ; preds = %"$out_of_gas_903", %"$have_gas_898" + %"$consume_905" = sub i64 %"$gasrem_901", 1 + store i64 %"$consume_905", i64* @_gasrem, align 8 %key2a = alloca %String, align 8 - %"$gasrem_886" = load i64, i64* @_gasrem, align 8 - %"$gascmp_887" = icmp ugt i64 1, %"$gasrem_886" - br i1 %"$gascmp_887", label %"$out_of_gas_888", label %"$have_gas_889" + call void @llvm.dbg.declare(metadata %String* %key2a, metadata !202, metadata !DIExpression()), !dbg !203 + %"$gasrem_906" = load i64, i64* @_gasrem, align 8 + %"$gascmp_907" = icmp ugt i64 1, %"$gasrem_906" + br i1 %"$gascmp_907", label %"$out_of_gas_908", label %"$have_gas_909" -"$out_of_gas_888": ; preds = %"$have_gas_884" +"$out_of_gas_908": ; preds = %"$have_gas_904" call void @_out_of_gas() - br label %"$have_gas_889" + br label %"$have_gas_909" -"$have_gas_889": ; preds = %"$out_of_gas_888", %"$have_gas_884" - %"$consume_890" = sub i64 %"$gasrem_886", 1 - store i64 %"$consume_890", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_891", i32 0, i32 0), i32 5 }, %String* %key2a, align 8, !dbg !95 - %"$gasrem_892" = load i64, i64* @_gasrem, align 8 - %"$gascmp_893" = icmp ugt i64 1, %"$gasrem_892" - br i1 %"$gascmp_893", label %"$out_of_gas_894", label %"$have_gas_895" +"$have_gas_909": ; preds = %"$out_of_gas_908", %"$have_gas_904" + %"$consume_910" = sub i64 %"$gasrem_906", 1 + store i64 %"$consume_910", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_911", i32 0, i32 0), i32 5 }, %String* %key2a, align 8, !dbg !204 + %"$gasrem_912" = load i64, i64* @_gasrem, align 8 + %"$gascmp_913" = icmp ugt i64 1, %"$gasrem_912" + br i1 %"$gascmp_913", label %"$out_of_gas_914", label %"$have_gas_915" -"$out_of_gas_894": ; preds = %"$have_gas_889" +"$out_of_gas_914": ; preds = %"$have_gas_909" call void @_out_of_gas() - br label %"$have_gas_895" + br label %"$have_gas_915" -"$have_gas_895": ; preds = %"$out_of_gas_894", %"$have_gas_889" - %"$consume_896" = sub i64 %"$gasrem_892", 1 - store i64 %"$consume_896", i64* @_gasrem, align 8 +"$have_gas_915": ; preds = %"$out_of_gas_914", %"$have_gas_909" + %"$consume_916" = sub i64 %"$gasrem_912", 1 + store i64 %"$consume_916", i64* @_gasrem, align 8 %s = alloca %String, align 8 - %"$gasrem_897" = load i64, i64* @_gasrem, align 8 - %"$gascmp_898" = icmp ugt i64 1, %"$gasrem_897" - br i1 %"$gascmp_898", label %"$out_of_gas_899", label %"$have_gas_900" - -"$out_of_gas_899": ; preds = %"$have_gas_895" - call void @_out_of_gas() - br label %"$have_gas_900" - -"$have_gas_900": ; preds = %"$out_of_gas_899", %"$have_gas_895" - %"$consume_901" = sub i64 %"$gasrem_897", 1 - store i64 %"$consume_901", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_902", i32 0, i32 0), i32 3 }, %String* %s, align 8, !dbg !96 - %"$_literal_cost_s_903" = alloca %String, align 8 - %"$s_904" = load %String, %String* %s, align 8 - store %String %"$s_904", %String* %"$_literal_cost_s_903", align 8 - %"$$_literal_cost_s_903_905" = bitcast %String* %"$_literal_cost_s_903" to i8* - %"$_literal_cost_call_906" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_52", i8* %"$$_literal_cost_s_903_905") - %"$gasadd_907" = add i64 %"$_literal_cost_call_906", 2 - %"$gasrem_908" = load i64, i64* @_gasrem, align 8 - %"$gascmp_909" = icmp ugt i64 %"$gasadd_907", %"$gasrem_908" - br i1 %"$gascmp_909", label %"$out_of_gas_910", label %"$have_gas_911" - -"$out_of_gas_910": ; preds = %"$have_gas_900" - call void @_out_of_gas() - br label %"$have_gas_911" - -"$have_gas_911": ; preds = %"$out_of_gas_910", %"$have_gas_900" - %"$consume_912" = sub i64 %"$gasrem_908", %"$gasadd_907" - store i64 %"$consume_912", i64* @_gasrem, align 8 - %"$indices_buf_913_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$indices_buf_913_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_913_salloc_load", i64 32) - %"$indices_buf_913_salloc" = bitcast i8* %"$indices_buf_913_salloc_salloc" to [32 x i8]* - %"$indices_buf_913" = bitcast [32 x i8]* %"$indices_buf_913_salloc" to i8* - %"$key1a_914" = load %String, %String* %key1a, align 8 - %"$indices_gep_915" = getelementptr i8, i8* %"$indices_buf_913", i32 0 - %indices_cast1 = bitcast i8* %"$indices_gep_915" to %String* - store %String %"$key1a_914", %String* %indices_cast1, align 8 - %"$key2a_916" = load %String, %String* %key2a, align 8 - %"$indices_gep_917" = getelementptr i8, i8* %"$indices_buf_913", i32 16 - %indices_cast2 = bitcast i8* %"$indices_gep_917" to %String* - store %String %"$key2a_916", %String* %indices_cast2, align 8 - %"$execptr_load_918" = load i8*, i8** @_execptr, align 8 - %"$s_920" = load %String, %String* %s, align 8 - %"$update_value_921" = alloca %String, align 8 - store %String %"$s_920", %String* %"$update_value_921", align 8 - %"$update_value_922" = bitcast %String* %"$update_value_921" to i8* - call void @_update_field(i8* %"$execptr_load_918", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m2_919", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_76", i32 2, i8* %"$indices_buf_913", i8* %"$update_value_922"), !dbg !97 + call void @llvm.dbg.declare(metadata %String* %s, metadata !205, metadata !DIExpression()), !dbg !206 + %"$gasrem_917" = load i64, i64* @_gasrem, align 8 + %"$gascmp_918" = icmp ugt i64 1, %"$gasrem_917" + br i1 %"$gascmp_918", label %"$out_of_gas_919", label %"$have_gas_920" + +"$out_of_gas_919": ; preds = %"$have_gas_915" + call void @_out_of_gas() + br label %"$have_gas_920" + +"$have_gas_920": ; preds = %"$out_of_gas_919", %"$have_gas_915" + %"$consume_921" = sub i64 %"$gasrem_917", 1 + store i64 %"$consume_921", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_922", i32 0, i32 0), i32 3 }, %String* %s, align 8, !dbg !207 + %"$_literal_cost_s_923" = alloca %String, align 8 + %"$s_924" = load %String, %String* %s, align 8 + store %String %"$s_924", %String* %"$_literal_cost_s_923", align 8 + %"$$_literal_cost_s_923_925" = bitcast %String* %"$_literal_cost_s_923" to i8* + %"$_literal_cost_call_926" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_52", i8* %"$$_literal_cost_s_923_925") + %"$gasadd_927" = add i64 %"$_literal_cost_call_926", 2 + %"$gasrem_928" = load i64, i64* @_gasrem, align 8 + %"$gascmp_929" = icmp ugt i64 %"$gasadd_927", %"$gasrem_928" + br i1 %"$gascmp_929", label %"$out_of_gas_930", label %"$have_gas_931" + +"$out_of_gas_930": ; preds = %"$have_gas_920" + call void @_out_of_gas() + br label %"$have_gas_931" + +"$have_gas_931": ; preds = %"$out_of_gas_930", %"$have_gas_920" + %"$consume_932" = sub i64 %"$gasrem_928", %"$gasadd_927" + store i64 %"$consume_932", i64* @_gasrem, align 8 + %"$indices_buf_933_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$indices_buf_933_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_933_salloc_load", i64 32) + %"$indices_buf_933_salloc" = bitcast i8* %"$indices_buf_933_salloc_salloc" to [32 x i8]* + %"$indices_buf_933" = bitcast [32 x i8]* %"$indices_buf_933_salloc" to i8* + %"$key1a_934" = load %String, %String* %key1a, align 8 + %"$indices_gep_935" = getelementptr i8, i8* %"$indices_buf_933", i32 0 + %indices_cast1 = bitcast i8* %"$indices_gep_935" to %String* + store %String %"$key1a_934", %String* %indices_cast1, align 8 + %"$key2a_936" = load %String, %String* %key2a, align 8 + %"$indices_gep_937" = getelementptr i8, i8* %"$indices_buf_933", i32 16 + %indices_cast2 = bitcast i8* %"$indices_gep_937" to %String* + store %String %"$key2a_936", %String* %indices_cast2, align 8 + %"$execptr_load_938" = load i8*, i8** @_execptr, align 8 + %"$s_940" = load %String, %String* %s, align 8 + %"$update_value_941" = alloca %String, align 8 + store %String %"$s_940", %String* %"$update_value_941", align 8 + %"$update_value_942" = bitcast %String* %"$update_value_941" to i8* + call void @_update_field(i8* %"$execptr_load_938", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m2_939", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_76", i32 2, i8* %"$indices_buf_933", i8* %"$update_value_942"), !dbg !208 ret void } -define void @t4(i8* %0) !dbg !98 { +define void @t4(i8* %0) !dbg !209 { entry: - %"$_amount_924" = getelementptr i8, i8* %0, i32 0 - %"$_amount_925" = bitcast i8* %"$_amount_924" to %Uint128* - %_amount = load %Uint128, %Uint128* %"$_amount_925", align 8 - %"$_origin_926" = getelementptr i8, i8* %0, i32 16 - %"$_origin_927" = bitcast i8* %"$_origin_926" to [20 x i8]* - %"$_sender_928" = getelementptr i8, i8* %0, i32 36 - %"$_sender_929" = bitcast i8* %"$_sender_928" to [20 x i8]* - call void @"$t4_806"(%Uint128 %_amount, [20 x i8]* %"$_origin_927", [20 x i8]* %"$_sender_929"), !dbg !99 + %"$_amount_947" = getelementptr i8, i8* %0, i32 0 + %"$_amount_948" = bitcast i8* %"$_amount_947" to %Uint128* + %_amount = load %Uint128, %Uint128* %"$_amount_948", align 8 + %"$_origin_949" = getelementptr i8, i8* %0, i32 16 + %"$_origin_950" = bitcast i8* %"$_origin_949" to [20 x i8]* + %"$_sender_951" = getelementptr i8, i8* %0, i32 36 + %"$_sender_952" = bitcast i8* %"$_sender_951" to [20 x i8]* + call void @"$t4_826"(%Uint128 %_amount, [20 x i8]* %"$_origin_950", [20 x i8]* %"$_sender_952"), !dbg !210 ret void } -define internal void @"$t5_930"(%Uint128 %_amount, [20 x i8]* %"$_origin_931", [20 x i8]* %"$_sender_932") !dbg !100 { +define internal void @"$t5_953"(%Uint128 %_amount, [20 x i8]* %"$_origin_954", [20 x i8]* %"$_sender_955") !dbg !211 { entry: - %_origin = load [20 x i8], [20 x i8]* %"$_origin_931", align 1 - %_sender = load [20 x i8], [20 x i8]* %"$_sender_932", align 1 - %"$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 = %entry - call void @_out_of_gas() - br label %"$have_gas_936" - -"$have_gas_936": ; preds = %"$out_of_gas_935", %entry - %"$consume_937" = sub i64 %"$gasrem_933", 1 - store i64 %"$consume_937", i64* @_gasrem, align 8 + %"$_sender_1237" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_sender_955", [20 x i8]** %"$_sender_1237", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_sender_1237", metadata !212, metadata !DIExpression()), !dbg !213 + %"$_origin_1236" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_origin_954", [20 x i8]** %"$_origin_1236", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_origin_1236", metadata !214, metadata !DIExpression()), !dbg !213 + %"$_amount_1235" = alloca %Uint128, align 8 + store %Uint128 %_amount, %Uint128* %"$_amount_1235", align 8 + call void @llvm.dbg.declare(metadata %Uint128* %"$_amount_1235", metadata !215, metadata !DIExpression()), !dbg !213 + %_origin = load [20 x i8], [20 x i8]* %"$_origin_954", align 1 + %_sender = load [20 x i8], [20 x i8]* %"$_sender_955", align 1 + %"$gasrem_956" = load i64, i64* @_gasrem, align 8 + %"$gascmp_957" = icmp ugt i64 1, %"$gasrem_956" + br i1 %"$gascmp_957", label %"$out_of_gas_958", label %"$have_gas_959" + +"$out_of_gas_958": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_959" + +"$have_gas_959": ; preds = %"$out_of_gas_958", %entry + %"$consume_960" = sub i64 %"$gasrem_956", 1 + store i64 %"$consume_960", i64* @_gasrem, align 8 %tname = alloca %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" + call void @llvm.dbg.declare(metadata %String* %tname, metadata !216, metadata !DIExpression()), !dbg !217 + %"$gasrem_961" = load i64, i64* @_gasrem, align 8 + %"$gascmp_962" = icmp ugt i64 1, %"$gasrem_961" + br i1 %"$gascmp_962", label %"$out_of_gas_963", label %"$have_gas_964" -"$out_of_gas_940": ; preds = %"$have_gas_936" +"$out_of_gas_963": ; preds = %"$have_gas_959" call void @_out_of_gas() - br label %"$have_gas_941" + br label %"$have_gas_964" -"$have_gas_941": ; preds = %"$out_of_gas_940", %"$have_gas_936" - %"$consume_942" = sub i64 %"$gasrem_938", 1 - store i64 %"$consume_942", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([2 x i8], [2 x i8]* @"$stringlit_943", i32 0, i32 0), i32 2 }, %String* %tname, align 8, !dbg !101 - %"$gasrem_944" = load i64, i64* @_gasrem, align 8 - %"$gascmp_945" = icmp ugt i64 1, %"$gasrem_944" - br i1 %"$gascmp_945", label %"$out_of_gas_946", label %"$have_gas_947" +"$have_gas_964": ; preds = %"$out_of_gas_963", %"$have_gas_959" + %"$consume_965" = sub i64 %"$gasrem_961", 1 + store i64 %"$consume_965", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([2 x i8], [2 x i8]* @"$stringlit_966", i32 0, i32 0), i32 2 }, %String* %tname, align 8, !dbg !218 + %"$gasrem_967" = load i64, i64* @_gasrem, align 8 + %"$gascmp_968" = icmp ugt i64 1, %"$gasrem_967" + br i1 %"$gascmp_968", label %"$out_of_gas_969", label %"$have_gas_970" -"$out_of_gas_946": ; preds = %"$have_gas_941" +"$out_of_gas_969": ; preds = %"$have_gas_964" call void @_out_of_gas() - br label %"$have_gas_947" + br label %"$have_gas_970" -"$have_gas_947": ; preds = %"$out_of_gas_946", %"$have_gas_941" - %"$consume_948" = sub i64 %"$gasrem_944", 1 - store i64 %"$consume_948", i64* @_gasrem, align 8 +"$have_gas_970": ; preds = %"$out_of_gas_969", %"$have_gas_964" + %"$consume_971" = sub i64 %"$gasrem_967", 1 + store i64 %"$consume_971", i64* @_gasrem, align 8 %s = alloca %String, align 8 - %"$gasrem_949" = load i64, i64* @_gasrem, align 8 - %"$gascmp_950" = icmp ugt i64 1, %"$gasrem_949" - br i1 %"$gascmp_950", label %"$out_of_gas_951", label %"$have_gas_952" + call void @llvm.dbg.declare(metadata %String* %s, metadata !219, metadata !DIExpression()), !dbg !220 + %"$gasrem_972" = load i64, i64* @_gasrem, align 8 + %"$gascmp_973" = icmp ugt i64 1, %"$gasrem_972" + br i1 %"$gascmp_973", label %"$out_of_gas_974", label %"$have_gas_975" -"$out_of_gas_951": ; preds = %"$have_gas_947" +"$out_of_gas_974": ; preds = %"$have_gas_970" call void @_out_of_gas() - br label %"$have_gas_952" + br label %"$have_gas_975" -"$have_gas_952": ; preds = %"$out_of_gas_951", %"$have_gas_947" - %"$consume_953" = sub i64 %"$gasrem_949", 1 - store i64 %"$consume_953", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_954", i32 0, i32 0), i32 3 }, %String* %s, 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" +"$have_gas_975": ; preds = %"$out_of_gas_974", %"$have_gas_970" + %"$consume_976" = sub i64 %"$gasrem_972", 1 + store i64 %"$consume_976", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_977", i32 0, i32 0), i32 3 }, %String* %s, align 8, !dbg !221 + %"$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_957": ; preds = %"$have_gas_952" +"$out_of_gas_980": ; preds = %"$have_gas_975" call void @_out_of_gas() - br label %"$have_gas_958" + br label %"$have_gas_981" -"$have_gas_958": ; preds = %"$out_of_gas_957", %"$have_gas_952" - %"$consume_959" = sub i64 %"$gasrem_955", 1 - store i64 %"$consume_959", i64* @_gasrem, align 8 +"$have_gas_981": ; preds = %"$out_of_gas_980", %"$have_gas_975" + %"$consume_982" = sub i64 %"$gasrem_978", 1 + store i64 %"$consume_982", i64* @_gasrem, align 8 %key1a = alloca %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" + call void @llvm.dbg.declare(metadata %String* %key1a, metadata !222, metadata !DIExpression()), !dbg !223 + %"$gasrem_983" = load i64, i64* @_gasrem, align 8 + %"$gascmp_984" = icmp ugt i64 1, %"$gasrem_983" + br i1 %"$gascmp_984", label %"$out_of_gas_985", label %"$have_gas_986" -"$out_of_gas_962": ; preds = %"$have_gas_958" +"$out_of_gas_985": ; preds = %"$have_gas_981" call void @_out_of_gas() - br label %"$have_gas_963" + br label %"$have_gas_986" -"$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 - store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_965", i32 0, i32 0), i32 5 }, %String* %key1a, align 8, !dbg !103 - %"$gasrem_966" = load i64, i64* @_gasrem, align 8 - %"$gascmp_967" = icmp ugt i64 1, %"$gasrem_966" - br i1 %"$gascmp_967", label %"$out_of_gas_968", label %"$have_gas_969" +"$have_gas_986": ; preds = %"$out_of_gas_985", %"$have_gas_981" + %"$consume_987" = sub i64 %"$gasrem_983", 1 + store i64 %"$consume_987", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_988", i32 0, i32 0), i32 5 }, %String* %key1a, align 8, !dbg !224 + %"$gasrem_989" = load i64, i64* @_gasrem, align 8 + %"$gascmp_990" = icmp ugt i64 1, %"$gasrem_989" + br i1 %"$gascmp_990", label %"$out_of_gas_991", label %"$have_gas_992" -"$out_of_gas_968": ; preds = %"$have_gas_963" +"$out_of_gas_991": ; preds = %"$have_gas_986" call void @_out_of_gas() - br label %"$have_gas_969" + br label %"$have_gas_992" -"$have_gas_969": ; preds = %"$out_of_gas_968", %"$have_gas_963" - %"$consume_970" = sub i64 %"$gasrem_966", 1 - store i64 %"$consume_970", i64* @_gasrem, align 8 +"$have_gas_992": ; preds = %"$out_of_gas_991", %"$have_gas_986" + %"$consume_993" = sub i64 %"$gasrem_989", 1 + store i64 %"$consume_993", i64* @_gasrem, align 8 %key2a = alloca %String, align 8 - %"$gasrem_971" = load i64, i64* @_gasrem, align 8 - %"$gascmp_972" = icmp ugt i64 1, %"$gasrem_971" - br i1 %"$gascmp_972", label %"$out_of_gas_973", label %"$have_gas_974" + call void @llvm.dbg.declare(metadata %String* %key2a, metadata !225, metadata !DIExpression()), !dbg !226 + %"$gasrem_994" = load i64, i64* @_gasrem, align 8 + %"$gascmp_995" = icmp ugt i64 1, %"$gasrem_994" + br i1 %"$gascmp_995", label %"$out_of_gas_996", label %"$have_gas_997" -"$out_of_gas_973": ; preds = %"$have_gas_969" +"$out_of_gas_996": ; preds = %"$have_gas_992" call void @_out_of_gas() - br label %"$have_gas_974" + br label %"$have_gas_997" -"$have_gas_974": ; preds = %"$out_of_gas_973", %"$have_gas_969" - %"$consume_975" = sub i64 %"$gasrem_971", 1 - store i64 %"$consume_975", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_976", i32 0, i32 0), i32 5 }, %String* %key2a, align 8, !dbg !104 +"$have_gas_997": ; preds = %"$out_of_gas_996", %"$have_gas_992" + %"$consume_998" = sub i64 %"$gasrem_994", 1 + store i64 %"$consume_998", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_999", i32 0, i32 0), i32 5 }, %String* %key2a, align 8, !dbg !227 %val = alloca %TName_Option_String*, align 8 - %"$indices_buf_977_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$indices_buf_977_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_977_salloc_load", i64 32) - %"$indices_buf_977_salloc" = bitcast i8* %"$indices_buf_977_salloc_salloc" to [32 x i8]* - %"$indices_buf_977" = bitcast [32 x i8]* %"$indices_buf_977_salloc" to i8* - %"$key1a_978" = load %String, %String* %key1a, align 8 - %"$indices_gep_979" = getelementptr i8, i8* %"$indices_buf_977", i32 0 - %indices_cast = bitcast i8* %"$indices_gep_979" to %String* - store %String %"$key1a_978", %String* %indices_cast, align 8 - %"$key2a_980" = load %String, %String* %key2a, align 8 - %"$indices_gep_981" = getelementptr i8, i8* %"$indices_buf_977", i32 16 - %indices_cast1 = bitcast i8* %"$indices_gep_981" to %String* - store %String %"$key2a_980", %String* %indices_cast1, align 8 - %"$execptr_load_983" = load i8*, i8** @_execptr, align 8 - %"$val_call_984" = call i8* @_fetch_field(i8* %"$execptr_load_983", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m2_982", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_76", i32 2, i8* %"$indices_buf_977", i32 1), !dbg !105 - %"$val_985" = bitcast i8* %"$val_call_984" to %TName_Option_String* - store %TName_Option_String* %"$val_985", %TName_Option_String** %val, align 8 - %"$val_986" = load %TName_Option_String*, %TName_Option_String** %val, align 8 - %"$$val_986_987" = bitcast %TName_Option_String* %"$val_986" to i8* - %"$_literal_cost_call_988" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_String_72", i8* %"$$val_986_987") - %"$gasadd_989" = add i64 %"$_literal_cost_call_988", 0 - %"$gasadd_990" = add i64 %"$gasadd_989", 2 - %"$gasrem_991" = load i64, i64* @_gasrem, align 8 - %"$gascmp_992" = icmp ugt i64 %"$gasadd_990", %"$gasrem_991" - br i1 %"$gascmp_992", label %"$out_of_gas_993", label %"$have_gas_994" - -"$out_of_gas_993": ; preds = %"$have_gas_974" - call void @_out_of_gas() - br label %"$have_gas_994" - -"$have_gas_994": ; preds = %"$out_of_gas_993", %"$have_gas_974" - %"$consume_995" = sub i64 %"$gasrem_991", %"$gasadd_990" - store i64 %"$consume_995", i64* @_gasrem, align 8 - %"$gasrem_996" = load i64, i64* @_gasrem, align 8 - %"$gascmp_997" = icmp ugt i64 2, %"$gasrem_996" - br i1 %"$gascmp_997", label %"$out_of_gas_998", label %"$have_gas_999" - -"$out_of_gas_998": ; preds = %"$have_gas_994" - call void @_out_of_gas() - br label %"$have_gas_999" - -"$have_gas_999": ; preds = %"$out_of_gas_998", %"$have_gas_994" - %"$consume_1000" = sub i64 %"$gasrem_996", 2 - store i64 %"$consume_1000", i64* @_gasrem, align 8 - %"$val_1002" = load %TName_Option_String*, %TName_Option_String** %val, align 8 - %"$val_tag_1003" = getelementptr inbounds %TName_Option_String, %TName_Option_String* %"$val_1002", i32 0, i32 0 - %"$val_tag_1004" = load i8, i8* %"$val_tag_1003", align 1 - switch i8 %"$val_tag_1004", label %"$empty_default_1005" [ - i8 0, label %"$Some_1006" - i8 1, label %"$None_1068" - ], !dbg !106 - -"$Some_1006": ; preds = %"$have_gas_999" - %"$val_1007" = bitcast %TName_Option_String* %"$val_1002" to %CName_Some_String* - %"$v_gep_1008" = getelementptr inbounds %CName_Some_String, %CName_Some_String* %"$val_1007", i32 0, i32 1 - %"$v_load_1009" = load %String, %String* %"$v_gep_1008", align 8 + call void @llvm.dbg.declare(metadata %TName_Option_String** %val, metadata !228, metadata !DIExpression()), !dbg !229 + %"$indices_buf_1000_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$indices_buf_1000_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_1000_salloc_load", i64 32) + %"$indices_buf_1000_salloc" = bitcast i8* %"$indices_buf_1000_salloc_salloc" to [32 x i8]* + %"$indices_buf_1000" = bitcast [32 x i8]* %"$indices_buf_1000_salloc" to i8* + %"$key1a_1001" = load %String, %String* %key1a, align 8 + %"$indices_gep_1002" = getelementptr i8, i8* %"$indices_buf_1000", i32 0 + %indices_cast = bitcast i8* %"$indices_gep_1002" to %String* + store %String %"$key1a_1001", %String* %indices_cast, align 8 + %"$key2a_1003" = load %String, %String* %key2a, align 8 + %"$indices_gep_1004" = getelementptr i8, i8* %"$indices_buf_1000", i32 16 + %indices_cast1 = bitcast i8* %"$indices_gep_1004" to %String* + store %String %"$key2a_1003", %String* %indices_cast1, align 8 + %"$execptr_load_1006" = load i8*, i8** @_execptr, align 8 + %"$val_call_1007" = call i8* @_fetch_field(i8* %"$execptr_load_1006", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m2_1005", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_76", i32 2, i8* %"$indices_buf_1000", i32 1), !dbg !229 + %"$val_1008" = bitcast i8* %"$val_call_1007" to %TName_Option_String* + store %TName_Option_String* %"$val_1008", %TName_Option_String** %val, align 8 + %"$val_1009" = load %TName_Option_String*, %TName_Option_String** %val, align 8 + %"$$val_1009_1010" = bitcast %TName_Option_String* %"$val_1009" to i8* + %"$_literal_cost_call_1011" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_String_72", i8* %"$$val_1009_1010") + %"$gasadd_1012" = add i64 %"$_literal_cost_call_1011", 0 + %"$gasadd_1013" = add i64 %"$gasadd_1012", 2 + %"$gasrem_1014" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1015" = icmp ugt i64 %"$gasadd_1013", %"$gasrem_1014" + br i1 %"$gascmp_1015", label %"$out_of_gas_1016", label %"$have_gas_1017" + +"$out_of_gas_1016": ; preds = %"$have_gas_997" + call void @_out_of_gas() + br label %"$have_gas_1017" + +"$have_gas_1017": ; preds = %"$out_of_gas_1016", %"$have_gas_997" + %"$consume_1018" = sub i64 %"$gasrem_1014", %"$gasadd_1013" + store i64 %"$consume_1018", i64* @_gasrem, align 8 + %"$gasrem_1019" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1020" = icmp ugt i64 2, %"$gasrem_1019" + br i1 %"$gascmp_1020", label %"$out_of_gas_1021", label %"$have_gas_1022" + +"$out_of_gas_1021": ; preds = %"$have_gas_1017" + call void @_out_of_gas() + br label %"$have_gas_1022" + +"$have_gas_1022": ; preds = %"$out_of_gas_1021", %"$have_gas_1017" + %"$consume_1023" = sub i64 %"$gasrem_1019", 2 + store i64 %"$consume_1023", i64* @_gasrem, align 8 + %"$val_1025" = load %TName_Option_String*, %TName_Option_String** %val, align 8 + %"$val_tag_1026" = getelementptr inbounds %TName_Option_String, %TName_Option_String* %"$val_1025", i32 0, i32 0 + %"$val_tag_1027" = load i8, i8* %"$val_tag_1026", align 1 + switch i8 %"$val_tag_1027", label %"$empty_default_1028" [ + i8 0, label %"$Some_1029" + i8 1, label %"$None_1091" + ], !dbg !230 + +"$Some_1029": ; preds = %"$have_gas_1022" + %"$val_1030" = bitcast %TName_Option_String* %"$val_1025" to %CName_Some_String* + %"$v_gep_1031" = getelementptr inbounds %CName_Some_String, %CName_Some_String* %"$val_1030", i32 0, i32 1 + %"$v_load_1032" = load %String, %String* %"$v_gep_1031", align 8 %v = alloca %String, align 8 - store %String %"$v_load_1009", %String* %v, align 8 - %"$gasrem_1010" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1011" = icmp ugt i64 1, %"$gasrem_1010" - br i1 %"$gascmp_1011", label %"$out_of_gas_1012", label %"$have_gas_1013" + store %String %"$v_load_1032", %String* %v, align 8 + %"$gasrem_1033" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1034" = icmp ugt i64 1, %"$gasrem_1033" + br i1 %"$gascmp_1034", label %"$out_of_gas_1035", label %"$have_gas_1036" -"$out_of_gas_1012": ; preds = %"$Some_1006" +"$out_of_gas_1035": ; preds = %"$Some_1029" call void @_out_of_gas() - br label %"$have_gas_1013" + br label %"$have_gas_1036" -"$have_gas_1013": ; preds = %"$out_of_gas_1012", %"$Some_1006" - %"$consume_1014" = sub i64 %"$gasrem_1010", 1 - store i64 %"$consume_1014", i64* @_gasrem, align 8 +"$have_gas_1036": ; preds = %"$out_of_gas_1035", %"$Some_1029" + %"$consume_1037" = sub i64 %"$gasrem_1033", 1 + store i64 %"$consume_1037", i64* @_gasrem, align 8 %t = alloca %TName_Bool*, align 8 - %"$_literal_cost_v_1015" = alloca %String, align 8 - %"$v_1016" = load %String, %String* %v, align 8 - store %String %"$v_1016", %String* %"$_literal_cost_v_1015", align 8 - %"$$_literal_cost_v_1015_1017" = bitcast %String* %"$_literal_cost_v_1015" to i8* - %"$_literal_cost_call_1018" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_52", i8* %"$$_literal_cost_v_1015_1017") - %"$_literal_cost_s_1019" = alloca %String, align 8 - %"$s_1020" = load %String, %String* %s, align 8 - store %String %"$s_1020", %String* %"$_literal_cost_s_1019", align 8 - %"$$_literal_cost_s_1019_1021" = bitcast %String* %"$_literal_cost_s_1019" to i8* - %"$_literal_cost_call_1022" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_52", i8* %"$$_literal_cost_s_1019_1021") - %"$gasmin_1023" = call i64 @llvm.umin.i64(i64 %"$_literal_cost_call_1018", i64 %"$_literal_cost_call_1022") - %"$gasrem_1024" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1025" = icmp ugt i64 %"$gasmin_1023", %"$gasrem_1024" - br i1 %"$gascmp_1025", label %"$out_of_gas_1026", label %"$have_gas_1027" - -"$out_of_gas_1026": ; preds = %"$have_gas_1013" - call void @_out_of_gas() - br label %"$have_gas_1027" - -"$have_gas_1027": ; preds = %"$out_of_gas_1026", %"$have_gas_1013" - %"$consume_1028" = sub i64 %"$gasrem_1024", %"$gasmin_1023" - store i64 %"$consume_1028", i64* @_gasrem, align 8 - %"$execptr_load_1029" = load i8*, i8** @_execptr, align 8 - %"$v_1030" = load %String, %String* %v, align 8 - %"$s_1031" = load %String, %String* %s, align 8 - %"$eq_call_1032" = call %TName_Bool* @_eq_String(i8* %"$execptr_load_1029", %String %"$v_1030", %String %"$s_1031"), !dbg !107 - store %TName_Bool* %"$eq_call_1032", %TName_Bool** %t, align 8, !dbg !107 - %"$gasrem_1034" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1035" = icmp ugt i64 2, %"$gasrem_1034" - br i1 %"$gascmp_1035", label %"$out_of_gas_1036", label %"$have_gas_1037" - -"$out_of_gas_1036": ; preds = %"$have_gas_1027" - call void @_out_of_gas() - br label %"$have_gas_1037" - -"$have_gas_1037": ; preds = %"$out_of_gas_1036", %"$have_gas_1027" - %"$consume_1038" = sub i64 %"$gasrem_1034", 2 - store i64 %"$consume_1038", i64* @_gasrem, align 8 - %"$t_1040" = load %TName_Bool*, %TName_Bool** %t, align 8 - %"$t_tag_1041" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$t_1040", i32 0, i32 0 - %"$t_tag_1042" = load i8, i8* %"$t_tag_1041", align 1 - switch i8 %"$t_tag_1042", label %"$empty_default_1043" [ - i8 0, label %"$True_1044" - i8 1, label %"$False_1046" - ], !dbg !110 - -"$True_1044": ; preds = %"$have_gas_1037" - %"$t_1045" = bitcast %TName_Bool* %"$t_1040" to %CName_True* - br label %"$matchsucc_1039" - -"$False_1046": ; preds = %"$have_gas_1037" - %"$t_1047" = bitcast %TName_Bool* %"$t_1040" to %CName_False* - %"$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 = %"$False_1046" - call void @_out_of_gas() - br label %"$have_gas_1051" - -"$have_gas_1051": ; preds = %"$out_of_gas_1050", %"$False_1046" - %"$consume_1052" = sub i64 %"$gasrem_1048", 1 - store i64 %"$consume_1052", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %t, metadata !231, metadata !DIExpression()), !dbg !234 + %"$_literal_cost_v_1038" = alloca %String, align 8 + %"$v_1039" = load %String, %String* %v, align 8 + store %String %"$v_1039", %String* %"$_literal_cost_v_1038", align 8 + %"$$_literal_cost_v_1038_1040" = bitcast %String* %"$_literal_cost_v_1038" to i8* + %"$_literal_cost_call_1041" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_52", i8* %"$$_literal_cost_v_1038_1040") + %"$_literal_cost_s_1042" = alloca %String, align 8 + %"$s_1043" = load %String, %String* %s, align 8 + store %String %"$s_1043", %String* %"$_literal_cost_s_1042", align 8 + %"$$_literal_cost_s_1042_1044" = bitcast %String* %"$_literal_cost_s_1042" to i8* + %"$_literal_cost_call_1045" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_52", i8* %"$$_literal_cost_s_1042_1044") + %"$gasmin_1046" = call i64 @llvm.umin.i64(i64 %"$_literal_cost_call_1041", i64 %"$_literal_cost_call_1045") + %"$gasrem_1047" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1048" = icmp ugt i64 %"$gasmin_1046", %"$gasrem_1047" + br i1 %"$gascmp_1048", label %"$out_of_gas_1049", label %"$have_gas_1050" + +"$out_of_gas_1049": ; preds = %"$have_gas_1036" + call void @_out_of_gas() + br label %"$have_gas_1050" + +"$have_gas_1050": ; preds = %"$out_of_gas_1049", %"$have_gas_1036" + %"$consume_1051" = sub i64 %"$gasrem_1047", %"$gasmin_1046" + store i64 %"$consume_1051", i64* @_gasrem, align 8 + %"$execptr_load_1052" = load i8*, i8** @_execptr, align 8 + %"$v_1053" = load %String, %String* %v, align 8 + %"$s_1054" = load %String, %String* %s, align 8 + %"$eq_call_1055" = call %TName_Bool* @_eq_String(i8* %"$execptr_load_1052", %String %"$v_1053", %String %"$s_1054"), !dbg !235 + store %TName_Bool* %"$eq_call_1055", %TName_Bool** %t, align 8, !dbg !235 + %"$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_1050" + call void @_out_of_gas() + br label %"$have_gas_1060" + +"$have_gas_1060": ; preds = %"$out_of_gas_1059", %"$have_gas_1050" + %"$consume_1061" = sub i64 %"$gasrem_1057", 2 + store i64 %"$consume_1061", i64* @_gasrem, align 8 + %"$t_1063" = load %TName_Bool*, %TName_Bool** %t, align 8 + %"$t_tag_1064" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$t_1063", i32 0, i32 0 + %"$t_tag_1065" = load i8, i8* %"$t_tag_1064", align 1 + switch i8 %"$t_tag_1065", label %"$empty_default_1066" [ + i8 0, label %"$True_1067" + i8 1, label %"$False_1069" + ], !dbg !236 + +"$True_1067": ; preds = %"$have_gas_1060" + %"$t_1068" = bitcast %TName_Bool* %"$t_1063" to %CName_True* + br label %"$matchsucc_1062" + +"$False_1069": ; preds = %"$have_gas_1060" + %"$t_1070" = bitcast %TName_Bool* %"$t_1063" to %CName_False* + %"$gasrem_1071" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1072" = icmp ugt i64 1, %"$gasrem_1071" + br i1 %"$gascmp_1072", label %"$out_of_gas_1073", label %"$have_gas_1074" + +"$out_of_gas_1073": ; preds = %"$False_1069" + call void @_out_of_gas() + br label %"$have_gas_1074" + +"$have_gas_1074": ; preds = %"$out_of_gas_1073", %"$False_1069" + %"$consume_1075" = sub i64 %"$gasrem_1071", 1 + store i64 %"$consume_1075", i64* @_gasrem, align 8 %m = alloca %String, align 8 - %"$gasrem_1053" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1054" = icmp ugt i64 1, %"$gasrem_1053" - br i1 %"$gascmp_1054", label %"$out_of_gas_1055", label %"$have_gas_1056" - -"$out_of_gas_1055": ; preds = %"$have_gas_1051" - call void @_out_of_gas() - br label %"$have_gas_1056" - -"$have_gas_1056": ; preds = %"$out_of_gas_1055", %"$have_gas_1051" - %"$consume_1057" = sub i64 %"$gasrem_1053", 1 - store i64 %"$consume_1057", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([23 x i8], [23 x i8]* @"$stringlit_1058", i32 0, i32 0), i32 23 }, %String* %m, align 8, !dbg !111 - %"$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_1056" - call void @_out_of_gas() - br label %"$have_gas_1062" - -"$have_gas_1062": ; preds = %"$out_of_gas_1061", %"$have_gas_1056" - %"$consume_1063" = sub i64 %"$gasrem_1059", 1 - store i64 %"$consume_1063", i64* @_gasrem, align 8 - %"$fail_msg__origin_1064" = alloca [20 x i8], align 1 - store [20 x i8] %_origin, [20 x i8]* %"$fail_msg__origin_1064", align 1 - %"$fail_msg__sender_1065" = alloca [20 x i8], align 1 - store [20 x i8] %_sender, [20 x i8]* %"$fail_msg__sender_1065", align 1 - %"$tname_1066" = load %String, %String* %tname, align 8 - %"$m_1067" = load %String, %String* %m, align 8 - call void @"$fail_msg_292"(%Uint128 %_amount, [20 x i8]* %"$fail_msg__origin_1064", [20 x i8]* %"$fail_msg__sender_1065", %String %"$tname_1066", %String %"$m_1067"), !dbg !114 - br label %"$matchsucc_1039" - -"$empty_default_1043": ; preds = %"$have_gas_1037" - br label %"$matchsucc_1039" - -"$matchsucc_1039": ; preds = %"$have_gas_1062", %"$True_1044", %"$empty_default_1043" - br label %"$matchsucc_1001" - -"$None_1068": ; preds = %"$have_gas_999" - %"$val_1069" = bitcast %TName_Option_String* %"$val_1002" to %CName_None_String* - %"$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_1072": ; preds = %"$None_1068" - call void @_out_of_gas() - br label %"$have_gas_1073" - -"$have_gas_1073": ; preds = %"$out_of_gas_1072", %"$None_1068" - %"$consume_1074" = sub i64 %"$gasrem_1070", 1 - store i64 %"$consume_1074", i64* @_gasrem, align 8 - %"$fail__origin_1075" = alloca [20 x i8], align 1 - store [20 x i8] %_origin, [20 x i8]* %"$fail__origin_1075", align 1 - %"$fail__sender_1076" = alloca [20 x i8], align 1 - store [20 x i8] %_sender, [20 x i8]* %"$fail__sender_1076", align 1 - %"$tname_1077" = load %String, %String* %tname, align 8 - call void @"$fail_252"(%Uint128 %_amount, [20 x i8]* %"$fail__origin_1075", [20 x i8]* %"$fail__sender_1076", %String %"$tname_1077"), !dbg !115 - br label %"$matchsucc_1001" - -"$empty_default_1005": ; preds = %"$have_gas_999" - br label %"$matchsucc_1001" - -"$matchsucc_1001": ; preds = %"$have_gas_1073", %"$matchsucc_1039", %"$empty_default_1005" - %"$gasrem_1078" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1079" = icmp ugt i64 1, %"$gasrem_1078" - br i1 %"$gascmp_1079", label %"$out_of_gas_1080", label %"$have_gas_1081" - -"$out_of_gas_1080": ; preds = %"$matchsucc_1001" - call void @_out_of_gas() - br label %"$have_gas_1081" - -"$have_gas_1081": ; preds = %"$out_of_gas_1080", %"$matchsucc_1001" - %"$consume_1082" = sub i64 %"$gasrem_1078", 1 - store i64 %"$consume_1082", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %String* %m, metadata !237, metadata !DIExpression()), !dbg !240 + %"$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_1074" + call void @_out_of_gas() + br label %"$have_gas_1079" + +"$have_gas_1079": ; preds = %"$out_of_gas_1078", %"$have_gas_1074" + %"$consume_1080" = sub i64 %"$gasrem_1076", 1 + store i64 %"$consume_1080", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([23 x i8], [23 x i8]* @"$stringlit_1081", i32 0, i32 0), i32 23 }, %String* %m, align 8, !dbg !241 + %"$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_1084": ; preds = %"$have_gas_1079" + call void @_out_of_gas() + br label %"$have_gas_1085" + +"$have_gas_1085": ; preds = %"$out_of_gas_1084", %"$have_gas_1079" + %"$consume_1086" = sub i64 %"$gasrem_1082", 1 + store i64 %"$consume_1086", i64* @_gasrem, align 8 + %"$fail_msg__origin_1087" = alloca [20 x i8], align 1 + store [20 x i8] %_origin, [20 x i8]* %"$fail_msg__origin_1087", align 1 + %"$fail_msg__sender_1088" = alloca [20 x i8], align 1 + store [20 x i8] %_sender, [20 x i8]* %"$fail_msg__sender_1088", align 1 + %"$tname_1089" = load %String, %String* %tname, align 8 + %"$m_1090" = load %String, %String* %m, align 8 + call void @"$fail_msg_298"(%Uint128 %_amount, [20 x i8]* %"$fail_msg__origin_1087", [20 x i8]* %"$fail_msg__sender_1088", %String %"$tname_1089", %String %"$m_1090"), !dbg !242 + br label %"$matchsucc_1062" + +"$empty_default_1066": ; preds = %"$have_gas_1060" + br label %"$matchsucc_1062" + +"$matchsucc_1062": ; preds = %"$have_gas_1085", %"$True_1067", %"$empty_default_1066" + br label %"$matchsucc_1024" + +"$None_1091": ; preds = %"$have_gas_1022" + %"$val_1092" = bitcast %TName_Option_String* %"$val_1025" to %CName_None_String* + %"$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" + +"$out_of_gas_1095": ; preds = %"$None_1091" + call void @_out_of_gas() + br label %"$have_gas_1096" + +"$have_gas_1096": ; preds = %"$out_of_gas_1095", %"$None_1091" + %"$consume_1097" = sub i64 %"$gasrem_1093", 1 + store i64 %"$consume_1097", i64* @_gasrem, align 8 + %"$fail__origin_1098" = alloca [20 x i8], align 1 + store [20 x i8] %_origin, [20 x i8]* %"$fail__origin_1098", align 1 + %"$fail__sender_1099" = alloca [20 x i8], align 1 + store [20 x i8] %_sender, [20 x i8]* %"$fail__sender_1099", align 1 + %"$tname_1100" = load %String, %String* %tname, align 8 + call void @"$fail_254"(%Uint128 %_amount, [20 x i8]* %"$fail__origin_1098", [20 x i8]* %"$fail__sender_1099", %String %"$tname_1100"), !dbg !243 + br label %"$matchsucc_1024" + +"$empty_default_1028": ; preds = %"$have_gas_1022" + br label %"$matchsucc_1024" + +"$matchsucc_1024": ; preds = %"$have_gas_1096", %"$matchsucc_1062", %"$empty_default_1028" + %"$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 = %"$matchsucc_1024" + call void @_out_of_gas() + br label %"$have_gas_1104" + +"$have_gas_1104": ; preds = %"$out_of_gas_1103", %"$matchsucc_1024" + %"$consume_1105" = sub i64 %"$gasrem_1101", 1 + store i64 %"$consume_1105", i64* @_gasrem, align 8 %l_m2 = alloca %Map_String_String*, align 8 - %"$gasrem_1083" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1084" = icmp ugt i64 1, %"$gasrem_1083" - br i1 %"$gascmp_1084", label %"$out_of_gas_1085", label %"$have_gas_1086" + call void @llvm.dbg.declare(metadata %Map_String_String** %l_m2, metadata !245, metadata !DIExpression()), !dbg !246 + %"$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_1085": ; preds = %"$have_gas_1081" +"$out_of_gas_1108": ; preds = %"$have_gas_1104" call void @_out_of_gas() - br label %"$have_gas_1086" + br label %"$have_gas_1109" -"$have_gas_1086": ; preds = %"$out_of_gas_1085", %"$have_gas_1081" - %"$consume_1087" = sub i64 %"$gasrem_1083", 1 - store i64 %"$consume_1087", i64* @_gasrem, align 8 +"$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 %e = alloca %Map_String_String*, 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" + call void @llvm.dbg.declare(metadata %Map_String_String** %e, metadata !247, metadata !DIExpression()), !dbg !248 + %"$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_1090": ; preds = %"$have_gas_1086" +"$out_of_gas_1113": ; preds = %"$have_gas_1109" call void @_out_of_gas() - br label %"$have_gas_1091" + br label %"$have_gas_1114" -"$have_gas_1091": ; preds = %"$out_of_gas_1090", %"$have_gas_1086" - %"$consume_1092" = sub i64 %"$gasrem_1088", 1 - store i64 %"$consume_1092", i64* @_gasrem, align 8 - %"$execptr_load_1093" = load i8*, i8** @_execptr, align 8 - %"$_new_empty_map_call_1094" = call i8* @_new_empty_map(i8* %"$execptr_load_1093") - %"$_new_empty_map_1095" = bitcast i8* %"$_new_empty_map_call_1094" to %Map_String_String* - store %Map_String_String* %"$_new_empty_map_1095", %Map_String_String** %e, align 8, !dbg !117 - %"$gasrem_1096" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1097" = icmp ugt i64 1, %"$gasrem_1096" - br i1 %"$gascmp_1097", label %"$out_of_gas_1098", label %"$have_gas_1099" +"$have_gas_1114": ; preds = %"$out_of_gas_1113", %"$have_gas_1109" + %"$consume_1115" = sub i64 %"$gasrem_1111", 1 + store i64 %"$consume_1115", i64* @_gasrem, align 8 + %"$execptr_load_1116" = load i8*, i8** @_execptr, align 8 + %"$_new_empty_map_call_1117" = call i8* @_new_empty_map(i8* %"$execptr_load_1116") + %"$_new_empty_map_1118" = bitcast i8* %"$_new_empty_map_call_1117" to %Map_String_String* + store %Map_String_String* %"$_new_empty_map_1118", %Map_String_String** %e, align 8, !dbg !249 + %"$gasrem_1119" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1120" = icmp ugt i64 1, %"$gasrem_1119" + br i1 %"$gascmp_1120", label %"$out_of_gas_1121", label %"$have_gas_1122" -"$out_of_gas_1098": ; preds = %"$have_gas_1091" +"$out_of_gas_1121": ; preds = %"$have_gas_1114" call void @_out_of_gas() - br label %"$have_gas_1099" + br label %"$have_gas_1122" -"$have_gas_1099": ; preds = %"$out_of_gas_1098", %"$have_gas_1091" - %"$consume_1100" = sub i64 %"$gasrem_1096", 1 - store i64 %"$consume_1100", i64* @_gasrem, align 8 +"$have_gas_1122": ; preds = %"$out_of_gas_1121", %"$have_gas_1114" + %"$consume_1123" = sub i64 %"$gasrem_1119", 1 + store i64 %"$consume_1123", i64* @_gasrem, align 8 %key2b = alloca %String, 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" + call void @llvm.dbg.declare(metadata %String* %key2b, metadata !250, metadata !DIExpression()), !dbg !251 + %"$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_1103": ; preds = %"$have_gas_1099" +"$out_of_gas_1126": ; preds = %"$have_gas_1122" call void @_out_of_gas() - br label %"$have_gas_1104" + br label %"$have_gas_1127" -"$have_gas_1104": ; preds = %"$out_of_gas_1103", %"$have_gas_1099" - %"$consume_1105" = sub i64 %"$gasrem_1101", 1 - store i64 %"$consume_1105", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_1106", i32 0, i32 0), i32 5 }, %String* %key2b, align 8, !dbg !118 - %"$gasrem_1107" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1108" = icmp ugt i64 1, %"$gasrem_1107" - br i1 %"$gascmp_1108", label %"$out_of_gas_1109", label %"$have_gas_1110" +"$have_gas_1127": ; preds = %"$out_of_gas_1126", %"$have_gas_1122" + %"$consume_1128" = sub i64 %"$gasrem_1124", 1 + store i64 %"$consume_1128", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_1129", i32 0, i32 0), i32 5 }, %String* %key2b, align 8, !dbg !252 + %"$gasrem_1130" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1131" = icmp ugt i64 1, %"$gasrem_1130" + br i1 %"$gascmp_1131", label %"$out_of_gas_1132", label %"$have_gas_1133" -"$out_of_gas_1109": ; preds = %"$have_gas_1104" +"$out_of_gas_1132": ; preds = %"$have_gas_1127" call void @_out_of_gas() - br label %"$have_gas_1110" + br label %"$have_gas_1133" -"$have_gas_1110": ; preds = %"$out_of_gas_1109", %"$have_gas_1104" - %"$consume_1111" = sub i64 %"$gasrem_1107", 1 - store i64 %"$consume_1111", i64* @_gasrem, align 8 +"$have_gas_1133": ; preds = %"$out_of_gas_1132", %"$have_gas_1127" + %"$consume_1134" = sub i64 %"$gasrem_1130", 1 + store i64 %"$consume_1134", i64* @_gasrem, align 8 %s1 = alloca %String, 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" + call void @llvm.dbg.declare(metadata %String* %s1, metadata !253, metadata !DIExpression()), !dbg !254 + %"$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" -"$out_of_gas_1114": ; preds = %"$have_gas_1110" +"$out_of_gas_1137": ; preds = %"$have_gas_1133" call void @_out_of_gas() - br label %"$have_gas_1115" + br label %"$have_gas_1138" -"$have_gas_1115": ; preds = %"$out_of_gas_1114", %"$have_gas_1110" - %"$consume_1116" = sub i64 %"$gasrem_1112", 1 - store i64 %"$consume_1116", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_1117", i32 0, i32 0), i32 3 }, %String* %s1, align 8, !dbg !119 - %"$gasrem_1118" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1119" = icmp ugt i64 1, %"$gasrem_1118" - br i1 %"$gascmp_1119", label %"$out_of_gas_1120", label %"$have_gas_1121" +"$have_gas_1138": ; preds = %"$out_of_gas_1137", %"$have_gas_1133" + %"$consume_1139" = sub i64 %"$gasrem_1135", 1 + store i64 %"$consume_1139", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_1140", i32 0, i32 0), i32 3 }, %String* %s1, align 8, !dbg !255 + %"$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" -"$out_of_gas_1120": ; preds = %"$have_gas_1115" +"$out_of_gas_1143": ; preds = %"$have_gas_1138" call void @_out_of_gas() - br label %"$have_gas_1121" + br label %"$have_gas_1144" -"$have_gas_1121": ; preds = %"$out_of_gas_1120", %"$have_gas_1115" - %"$consume_1122" = sub i64 %"$gasrem_1118", 1 - store i64 %"$consume_1122", i64* @_gasrem, align 8 +"$have_gas_1144": ; preds = %"$out_of_gas_1143", %"$have_gas_1138" + %"$consume_1145" = sub i64 %"$gasrem_1141", 1 + store i64 %"$consume_1145", i64* @_gasrem, align 8 %m1 = alloca %Map_String_String*, align 8 - %"$e_1123" = load %Map_String_String*, %Map_String_String** %e, align 8 - %"$$e_1123_1124" = bitcast %Map_String_String* %"$e_1123" to i8* - %"$_lengthof_call_1125" = call i64 @_lengthof(%_TyDescrTy_Typ* @"$TyDescr_Map_77", i8* %"$$e_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_1121" - call void @_out_of_gas() - br label %"$have_gas_1130" - -"$have_gas_1130": ; preds = %"$out_of_gas_1129", %"$have_gas_1121" - %"$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 - %"$e_1133" = load %Map_String_String*, %Map_String_String** %e, align 8 - %"$$e_1133_1134" = bitcast %Map_String_String* %"$e_1133" to i8* - %"$put_key2b_1135" = alloca %String, align 8 - %"$key2b_1136" = load %String, %String* %key2b, align 8 - store %String %"$key2b_1136", %String* %"$put_key2b_1135", align 8 - %"$$put_key2b_1135_1137" = bitcast %String* %"$put_key2b_1135" to i8* - %"$put_s1_1138" = alloca %String, align 8 - %"$s1_1139" = load %String, %String* %s1, align 8 - store %String %"$s1_1139", %String* %"$put_s1_1138", align 8 - %"$$put_s1_1138_1140" = bitcast %String* %"$put_s1_1138" to i8* - %"$put_call_1141" = call i8* @_put(i8* %"$execptr_load_1132", %_TyDescrTy_Typ* @"$TyDescr_Map_77", i8* %"$$e_1133_1134", i8* %"$$put_key2b_1135_1137", i8* %"$$put_s1_1138_1140"), !dbg !120 - %"$put_1142" = bitcast i8* %"$put_call_1141" to %Map_String_String* - store %Map_String_String* %"$put_1142", %Map_String_String** %m1, 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 + call void @llvm.dbg.declare(metadata %Map_String_String** %m1, metadata !256, metadata !DIExpression()), !dbg !257 + %"$e_1146" = load %Map_String_String*, %Map_String_String** %e, align 8 + %"$$e_1146_1147" = bitcast %Map_String_String* %"$e_1146" to i8* + %"$_lengthof_call_1148" = call i64 @_lengthof(%_TyDescrTy_Typ* @"$TyDescr_Map_77", i8* %"$$e_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_1144" + call void @_out_of_gas() + br label %"$have_gas_1153" + +"$have_gas_1153": ; preds = %"$out_of_gas_1152", %"$have_gas_1144" + %"$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 + %"$e_1156" = load %Map_String_String*, %Map_String_String** %e, align 8 + %"$$e_1156_1157" = bitcast %Map_String_String* %"$e_1156" to i8* + %"$put_key2b_1158" = alloca %String, align 8 + %"$key2b_1159" = load %String, %String* %key2b, align 8 + store %String %"$key2b_1159", %String* %"$put_key2b_1158", align 8 + %"$$put_key2b_1158_1160" = bitcast %String* %"$put_key2b_1158" to i8* + %"$put_s1_1161" = alloca %String, align 8 + %"$s1_1162" = load %String, %String* %s1, align 8 + store %String %"$s1_1162", %String* %"$put_s1_1161", align 8 + %"$$put_s1_1161_1163" = bitcast %String* %"$put_s1_1161" to i8* + %"$put_call_1164" = call i8* @_put(i8* %"$execptr_load_1155", %_TyDescrTy_Typ* @"$TyDescr_Map_77", i8* %"$$e_1156_1157", i8* %"$$put_key2b_1158_1160", i8* %"$$put_s1_1161_1163"), !dbg !258 + %"$put_1165" = bitcast i8* %"$put_call_1164" to %Map_String_String* + store %Map_String_String* %"$put_1165", %Map_String_String** %m1, align 8, !dbg !258 + %"$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 %key2c = alloca %String, align 8 - %"$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" + call void @llvm.dbg.declare(metadata %String* %key2c, metadata !259, metadata !DIExpression()), !dbg !260 + %"$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_1150": ; preds = %"$have_gas_1146" +"$out_of_gas_1173": ; preds = %"$have_gas_1169" call void @_out_of_gas() - br label %"$have_gas_1151" + br label %"$have_gas_1174" -"$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* %key2c, align 8, !dbg !121 - %"$gasrem_1154" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1155" = icmp ugt i64 1, %"$gasrem_1154" - br i1 %"$gascmp_1155", label %"$out_of_gas_1156", label %"$have_gas_1157" +"$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* %key2c, align 8, !dbg !261 + %"$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_1156": ; preds = %"$have_gas_1151" +"$out_of_gas_1179": ; preds = %"$have_gas_1174" call void @_out_of_gas() - br label %"$have_gas_1157" + br label %"$have_gas_1180" -"$have_gas_1157": ; preds = %"$out_of_gas_1156", %"$have_gas_1151" - %"$consume_1158" = sub i64 %"$gasrem_1154", 1 - store i64 %"$consume_1158", i64* @_gasrem, align 8 +"$have_gas_1180": ; preds = %"$out_of_gas_1179", %"$have_gas_1174" + %"$consume_1181" = sub i64 %"$gasrem_1177", 1 + store i64 %"$consume_1181", i64* @_gasrem, align 8 %s2 = alloca %String, align 8 - %"$gasrem_1159" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1160" = icmp ugt i64 1, %"$gasrem_1159" - br i1 %"$gascmp_1160", label %"$out_of_gas_1161", label %"$have_gas_1162" - -"$out_of_gas_1161": ; preds = %"$have_gas_1157" - call void @_out_of_gas() - br label %"$have_gas_1162" - -"$have_gas_1162": ; preds = %"$out_of_gas_1161", %"$have_gas_1157" - %"$consume_1163" = sub i64 %"$gasrem_1159", 1 - store i64 %"$consume_1163", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_1164", i32 0, i32 0), i32 3 }, %String* %s2, align 8, !dbg !122 - %"$m1_1165" = load %Map_String_String*, %Map_String_String** %m1, align 8 - %"$$m1_1165_1166" = bitcast %Map_String_String* %"$m1_1165" to i8* - %"$_lengthof_call_1167" = call i64 @_lengthof(%_TyDescrTy_Typ* @"$TyDescr_Map_77", i8* %"$$m1_1165_1166") - %"$gasadd_1168" = add i64 1, %"$_lengthof_call_1167" - %"$gasrem_1169" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1170" = icmp ugt i64 %"$gasadd_1168", %"$gasrem_1169" - br i1 %"$gascmp_1170", label %"$out_of_gas_1171", label %"$have_gas_1172" - -"$out_of_gas_1171": ; preds = %"$have_gas_1162" - call void @_out_of_gas() - br label %"$have_gas_1172" - -"$have_gas_1172": ; preds = %"$out_of_gas_1171", %"$have_gas_1162" - %"$consume_1173" = sub i64 %"$gasrem_1169", %"$gasadd_1168" - store i64 %"$consume_1173", i64* @_gasrem, align 8 - %"$execptr_load_1174" = load i8*, i8** @_execptr, align 8 - %"$m1_1175" = load %Map_String_String*, %Map_String_String** %m1, align 8 - %"$$m1_1175_1176" = bitcast %Map_String_String* %"$m1_1175" to i8* - %"$put_key2c_1177" = alloca %String, align 8 - %"$key2c_1178" = load %String, %String* %key2c, align 8 - store %String %"$key2c_1178", %String* %"$put_key2c_1177", align 8 - %"$$put_key2c_1177_1179" = bitcast %String* %"$put_key2c_1177" to i8* - %"$put_s2_1180" = alloca %String, align 8 - %"$s2_1181" = load %String, %String* %s2, align 8 - store %String %"$s2_1181", %String* %"$put_s2_1180", align 8 - %"$$put_s2_1180_1182" = bitcast %String* %"$put_s2_1180" to i8* - %"$put_call_1183" = call i8* @_put(i8* %"$execptr_load_1174", %_TyDescrTy_Typ* @"$TyDescr_Map_77", i8* %"$$m1_1175_1176", i8* %"$$put_key2c_1177_1179", i8* %"$$put_s2_1180_1182"), !dbg !123 - %"$put_1184" = bitcast i8* %"$put_call_1183" to %Map_String_String* - store %Map_String_String* %"$put_1184", %Map_String_String** %l_m2, align 8, !dbg !123 - %"$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_1187": ; preds = %"$have_gas_1172" - call void @_out_of_gas() - br label %"$have_gas_1188" - -"$have_gas_1188": ; preds = %"$out_of_gas_1187", %"$have_gas_1172" - %"$consume_1189" = sub i64 %"$gasrem_1185", 1 - store i64 %"$consume_1189", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %String* %s2, metadata !262, metadata !DIExpression()), !dbg !263 + %"$gasrem_1182" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1183" = icmp ugt i64 1, %"$gasrem_1182" + br i1 %"$gascmp_1183", label %"$out_of_gas_1184", label %"$have_gas_1185" + +"$out_of_gas_1184": ; preds = %"$have_gas_1180" + call void @_out_of_gas() + br label %"$have_gas_1185" + +"$have_gas_1185": ; preds = %"$out_of_gas_1184", %"$have_gas_1180" + %"$consume_1186" = sub i64 %"$gasrem_1182", 1 + store i64 %"$consume_1186", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_1187", i32 0, i32 0), i32 3 }, %String* %s2, align 8, !dbg !264 + %"$m1_1188" = load %Map_String_String*, %Map_String_String** %m1, align 8 + %"$$m1_1188_1189" = bitcast %Map_String_String* %"$m1_1188" to i8* + %"$_lengthof_call_1190" = call i64 @_lengthof(%_TyDescrTy_Typ* @"$TyDescr_Map_77", i8* %"$$m1_1188_1189") + %"$gasadd_1191" = add i64 1, %"$_lengthof_call_1190" + %"$gasrem_1192" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1193" = icmp ugt i64 %"$gasadd_1191", %"$gasrem_1192" + br i1 %"$gascmp_1193", label %"$out_of_gas_1194", label %"$have_gas_1195" + +"$out_of_gas_1194": ; preds = %"$have_gas_1185" + call void @_out_of_gas() + br label %"$have_gas_1195" + +"$have_gas_1195": ; preds = %"$out_of_gas_1194", %"$have_gas_1185" + %"$consume_1196" = sub i64 %"$gasrem_1192", %"$gasadd_1191" + store i64 %"$consume_1196", i64* @_gasrem, align 8 + %"$execptr_load_1197" = load i8*, i8** @_execptr, align 8 + %"$m1_1198" = load %Map_String_String*, %Map_String_String** %m1, align 8 + %"$$m1_1198_1199" = bitcast %Map_String_String* %"$m1_1198" to i8* + %"$put_key2c_1200" = alloca %String, align 8 + %"$key2c_1201" = load %String, %String* %key2c, align 8 + store %String %"$key2c_1201", %String* %"$put_key2c_1200", align 8 + %"$$put_key2c_1200_1202" = bitcast %String* %"$put_key2c_1200" to i8* + %"$put_s2_1203" = alloca %String, align 8 + %"$s2_1204" = load %String, %String* %s2, align 8 + store %String %"$s2_1204", %String* %"$put_s2_1203", align 8 + %"$$put_s2_1203_1205" = bitcast %String* %"$put_s2_1203" to i8* + %"$put_call_1206" = call i8* @_put(i8* %"$execptr_load_1197", %_TyDescrTy_Typ* @"$TyDescr_Map_77", i8* %"$$m1_1198_1199", i8* %"$$put_key2c_1200_1202", i8* %"$$put_s2_1203_1205"), !dbg !265 + %"$put_1207" = bitcast i8* %"$put_call_1206" to %Map_String_String* + store %Map_String_String* %"$put_1207", %Map_String_String** %l_m2, align 8, !dbg !265 + %"$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" + +"$out_of_gas_1210": ; preds = %"$have_gas_1195" + call void @_out_of_gas() + br label %"$have_gas_1211" + +"$have_gas_1211": ; preds = %"$out_of_gas_1210", %"$have_gas_1195" + %"$consume_1212" = sub i64 %"$gasrem_1208", 1 + store i64 %"$consume_1212", i64* @_gasrem, align 8 %key1b = alloca %String, 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 = %"$have_gas_1188" - call void @_out_of_gas() - br label %"$have_gas_1193" - -"$have_gas_1193": ; preds = %"$out_of_gas_1192", %"$have_gas_1188" - %"$consume_1194" = sub i64 %"$gasrem_1190", 1 - store i64 %"$consume_1194", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_1195", i32 0, i32 0), i32 5 }, %String* %key1b, align 8, !dbg !124 - %"$l_m2_1196" = load %Map_String_String*, %Map_String_String** %l_m2, align 8 - %"$$l_m2_1196_1197" = bitcast %Map_String_String* %"$l_m2_1196" to i8* - %"$_literal_cost_call_1198" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Map_77", i8* %"$$l_m2_1196_1197") - %"$gasadd_1199" = add i64 %"$_literal_cost_call_1198", 1 - %"$gasrem_1200" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1201" = icmp ugt i64 %"$gasadd_1199", %"$gasrem_1200" - br i1 %"$gascmp_1201", label %"$out_of_gas_1202", label %"$have_gas_1203" - -"$out_of_gas_1202": ; preds = %"$have_gas_1193" - call void @_out_of_gas() - br label %"$have_gas_1203" - -"$have_gas_1203": ; preds = %"$out_of_gas_1202", %"$have_gas_1193" - %"$consume_1204" = sub i64 %"$gasrem_1200", %"$gasadd_1199" - store i64 %"$consume_1204", i64* @_gasrem, align 8 - %"$indices_buf_1205_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$indices_buf_1205_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_1205_salloc_load", i64 16) - %"$indices_buf_1205_salloc" = bitcast i8* %"$indices_buf_1205_salloc_salloc" to [16 x i8]* - %"$indices_buf_1205" = bitcast [16 x i8]* %"$indices_buf_1205_salloc" to i8* - %"$key1b_1206" = load %String, %String* %key1b, align 8 - %"$indices_gep_1207" = getelementptr i8, i8* %"$indices_buf_1205", i32 0 - %indices_cast2 = bitcast i8* %"$indices_gep_1207" to %String* - store %String %"$key1b_1206", %String* %indices_cast2, align 8 - %"$execptr_load_1208" = load i8*, i8** @_execptr, align 8 - %"$l_m2_1210" = load %Map_String_String*, %Map_String_String** %l_m2, align 8 - %"$update_value_1211" = bitcast %Map_String_String* %"$l_m2_1210" to i8* - call void @_update_field(i8* %"$execptr_load_1208", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m2_1209", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_76", i32 1, i8* %"$indices_buf_1205", i8* %"$update_value_1211"), !dbg !125 + call void @llvm.dbg.declare(metadata %String* %key1b, metadata !266, metadata !DIExpression()), !dbg !267 + %"$gasrem_1213" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1214" = icmp ugt i64 1, %"$gasrem_1213" + br i1 %"$gascmp_1214", label %"$out_of_gas_1215", label %"$have_gas_1216" + +"$out_of_gas_1215": ; preds = %"$have_gas_1211" + call void @_out_of_gas() + br label %"$have_gas_1216" + +"$have_gas_1216": ; preds = %"$out_of_gas_1215", %"$have_gas_1211" + %"$consume_1217" = sub i64 %"$gasrem_1213", 1 + store i64 %"$consume_1217", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_1218", i32 0, i32 0), i32 5 }, %String* %key1b, align 8, !dbg !268 + %"$l_m2_1219" = load %Map_String_String*, %Map_String_String** %l_m2, align 8 + %"$$l_m2_1219_1220" = bitcast %Map_String_String* %"$l_m2_1219" to i8* + %"$_literal_cost_call_1221" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Map_77", i8* %"$$l_m2_1219_1220") + %"$gasadd_1222" = add i64 %"$_literal_cost_call_1221", 1 + %"$gasrem_1223" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1224" = icmp ugt i64 %"$gasadd_1222", %"$gasrem_1223" + br i1 %"$gascmp_1224", label %"$out_of_gas_1225", label %"$have_gas_1226" + +"$out_of_gas_1225": ; preds = %"$have_gas_1216" + call void @_out_of_gas() + br label %"$have_gas_1226" + +"$have_gas_1226": ; preds = %"$out_of_gas_1225", %"$have_gas_1216" + %"$consume_1227" = sub i64 %"$gasrem_1223", %"$gasadd_1222" + store i64 %"$consume_1227", i64* @_gasrem, align 8 + %"$indices_buf_1228_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$indices_buf_1228_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_1228_salloc_load", i64 16) + %"$indices_buf_1228_salloc" = bitcast i8* %"$indices_buf_1228_salloc_salloc" to [16 x i8]* + %"$indices_buf_1228" = bitcast [16 x i8]* %"$indices_buf_1228_salloc" to i8* + %"$key1b_1229" = load %String, %String* %key1b, align 8 + %"$indices_gep_1230" = getelementptr i8, i8* %"$indices_buf_1228", i32 0 + %indices_cast2 = bitcast i8* %"$indices_gep_1230" to %String* + store %String %"$key1b_1229", %String* %indices_cast2, align 8 + %"$execptr_load_1231" = load i8*, i8** @_execptr, align 8 + %"$l_m2_1233" = load %Map_String_String*, %Map_String_String** %l_m2, align 8 + %"$update_value_1234" = bitcast %Map_String_String* %"$l_m2_1233" to i8* + call void @_update_field(i8* %"$execptr_load_1231", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m2_1232", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_76", i32 1, i8* %"$indices_buf_1228", i8* %"$update_value_1234"), !dbg !269 ret void } @@ -2568,2824 +2698,2928 @@ declare i64 @_lengthof(%_TyDescrTy_Typ*, i8*) declare i8* @_put(i8*, %_TyDescrTy_Typ*, i8*, i8*, i8*) -define void @t5(i8* %0) !dbg !126 { +define void @t5(i8* %0) !dbg !270 { entry: - %"$_amount_1213" = getelementptr i8, i8* %0, i32 0 - %"$_amount_1214" = bitcast i8* %"$_amount_1213" to %Uint128* - %_amount = load %Uint128, %Uint128* %"$_amount_1214", align 8 - %"$_origin_1215" = getelementptr i8, i8* %0, i32 16 - %"$_origin_1216" = bitcast i8* %"$_origin_1215" to [20 x i8]* - %"$_sender_1217" = getelementptr i8, i8* %0, i32 36 - %"$_sender_1218" = bitcast i8* %"$_sender_1217" to [20 x i8]* - call void @"$t5_930"(%Uint128 %_amount, [20 x i8]* %"$_origin_1216", [20 x i8]* %"$_sender_1218"), !dbg !127 + %"$_amount_1239" = getelementptr i8, i8* %0, i32 0 + %"$_amount_1240" = bitcast i8* %"$_amount_1239" to %Uint128* + %_amount = load %Uint128, %Uint128* %"$_amount_1240", align 8 + %"$_origin_1241" = getelementptr i8, i8* %0, i32 16 + %"$_origin_1242" = bitcast i8* %"$_origin_1241" to [20 x i8]* + %"$_sender_1243" = getelementptr i8, i8* %0, i32 36 + %"$_sender_1244" = bitcast i8* %"$_sender_1243" to [20 x i8]* + call void @"$t5_953"(%Uint128 %_amount, [20 x i8]* %"$_origin_1242", [20 x i8]* %"$_sender_1244"), !dbg !271 ret void } -define internal void @"$t6_1219"(%Uint128 %_amount, [20 x i8]* %"$_origin_1220", [20 x i8]* %"$_sender_1221") !dbg !128 { +define internal void @"$t6_1245"(%Uint128 %_amount, [20 x i8]* %"$_origin_1246", [20 x i8]* %"$_sender_1247") !dbg !272 { entry: - %_origin = load [20 x i8], [20 x i8]* %"$_origin_1220", align 1 - %_sender = load [20 x i8], [20 x i8]* %"$_sender_1221", align 1 - %"$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 + %"$_sender_1709" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_sender_1247", [20 x i8]** %"$_sender_1709", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_sender_1709", metadata !273, metadata !DIExpression()), !dbg !274 + %"$_origin_1708" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_origin_1246", [20 x i8]** %"$_origin_1708", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_origin_1708", metadata !275, metadata !DIExpression()), !dbg !274 + %"$_amount_1707" = alloca %Uint128, align 8 + store %Uint128 %_amount, %Uint128* %"$_amount_1707", align 8 + call void @llvm.dbg.declare(metadata %Uint128* %"$_amount_1707", metadata !276, metadata !DIExpression()), !dbg !274 + %_origin = load [20 x i8], [20 x i8]* %"$_origin_1246", align 1 + %_sender = load [20 x i8], [20 x i8]* %"$_sender_1247", align 1 + %"$gasrem_1248" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1249" = icmp ugt i64 1, %"$gasrem_1248" + br i1 %"$gascmp_1249", label %"$out_of_gas_1250", label %"$have_gas_1251" + +"$out_of_gas_1250": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_1251" + +"$have_gas_1251": ; preds = %"$out_of_gas_1250", %entry + %"$consume_1252" = sub i64 %"$gasrem_1248", 1 + store i64 %"$consume_1252", i64* @_gasrem, align 8 %tname = alloca %String, align 8 - %"$gasrem_1227" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1228" = icmp ugt i64 1, %"$gasrem_1227" - br i1 %"$gascmp_1228", label %"$out_of_gas_1229", label %"$have_gas_1230" + call void @llvm.dbg.declare(metadata %String* %tname, metadata !277, metadata !DIExpression()), !dbg !278 + %"$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_1229": ; preds = %"$have_gas_1225" +"$out_of_gas_1255": ; preds = %"$have_gas_1251" call void @_out_of_gas() - br label %"$have_gas_1230" + br label %"$have_gas_1256" -"$have_gas_1230": ; preds = %"$out_of_gas_1229", %"$have_gas_1225" - %"$consume_1231" = sub i64 %"$gasrem_1227", 1 - store i64 %"$consume_1231", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([2 x i8], [2 x i8]* @"$stringlit_1232", i32 0, i32 0), i32 2 }, %String* %tname, align 8, !dbg !129 - %"$gasrem_1233" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1234" = icmp ugt i64 1, %"$gasrem_1233" - br i1 %"$gascmp_1234", label %"$out_of_gas_1235", label %"$have_gas_1236" +"$have_gas_1256": ; preds = %"$out_of_gas_1255", %"$have_gas_1251" + %"$consume_1257" = sub i64 %"$gasrem_1253", 1 + store i64 %"$consume_1257", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([2 x i8], [2 x i8]* @"$stringlit_1258", i32 0, i32 0), i32 2 }, %String* %tname, align 8, !dbg !279 + %"$gasrem_1259" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1260" = icmp ugt i64 1, %"$gasrem_1259" + br i1 %"$gascmp_1260", label %"$out_of_gas_1261", label %"$have_gas_1262" -"$out_of_gas_1235": ; preds = %"$have_gas_1230" +"$out_of_gas_1261": ; preds = %"$have_gas_1256" call void @_out_of_gas() - br label %"$have_gas_1236" + br label %"$have_gas_1262" -"$have_gas_1236": ; preds = %"$out_of_gas_1235", %"$have_gas_1230" - %"$consume_1237" = sub i64 %"$gasrem_1233", 1 - store i64 %"$consume_1237", i64* @_gasrem, align 8 +"$have_gas_1262": ; preds = %"$out_of_gas_1261", %"$have_gas_1256" + %"$consume_1263" = sub i64 %"$gasrem_1259", 1 + store i64 %"$consume_1263", i64* @_gasrem, align 8 %key1a = alloca %String, 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" + call void @llvm.dbg.declare(metadata %String* %key1a, metadata !280, metadata !DIExpression()), !dbg !281 + %"$gasrem_1264" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1265" = icmp ugt i64 1, %"$gasrem_1264" + br i1 %"$gascmp_1265", label %"$out_of_gas_1266", label %"$have_gas_1267" -"$out_of_gas_1240": ; preds = %"$have_gas_1236" +"$out_of_gas_1266": ; preds = %"$have_gas_1262" call void @_out_of_gas() - br label %"$have_gas_1241" + br label %"$have_gas_1267" -"$have_gas_1241": ; preds = %"$out_of_gas_1240", %"$have_gas_1236" - %"$consume_1242" = sub i64 %"$gasrem_1238", 1 - store i64 %"$consume_1242", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_1243", i32 0, i32 0), i32 5 }, %String* %key1a, align 8, !dbg !130 - %"$gasrem_1244" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1245" = icmp ugt i64 1, %"$gasrem_1244" - br i1 %"$gascmp_1245", label %"$out_of_gas_1246", label %"$have_gas_1247" +"$have_gas_1267": ; preds = %"$out_of_gas_1266", %"$have_gas_1262" + %"$consume_1268" = sub i64 %"$gasrem_1264", 1 + store i64 %"$consume_1268", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_1269", i32 0, i32 0), i32 5 }, %String* %key1a, align 8, !dbg !282 + %"$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_1246": ; preds = %"$have_gas_1241" +"$out_of_gas_1272": ; preds = %"$have_gas_1267" call void @_out_of_gas() - br label %"$have_gas_1247" + br label %"$have_gas_1273" -"$have_gas_1247": ; preds = %"$out_of_gas_1246", %"$have_gas_1241" - %"$consume_1248" = sub i64 %"$gasrem_1244", 1 - store i64 %"$consume_1248", i64* @_gasrem, align 8 +"$have_gas_1273": ; preds = %"$out_of_gas_1272", %"$have_gas_1267" + %"$consume_1274" = sub i64 %"$gasrem_1270", 1 + store i64 %"$consume_1274", i64* @_gasrem, align 8 %key2a = alloca %String, align 8 - %"$gasrem_1249" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1250" = icmp ugt i64 1, %"$gasrem_1249" - br i1 %"$gascmp_1250", label %"$out_of_gas_1251", label %"$have_gas_1252" + call void @llvm.dbg.declare(metadata %String* %key2a, metadata !283, metadata !DIExpression()), !dbg !284 + %"$gasrem_1275" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1276" = icmp ugt i64 1, %"$gasrem_1275" + br i1 %"$gascmp_1276", label %"$out_of_gas_1277", label %"$have_gas_1278" -"$out_of_gas_1251": ; preds = %"$have_gas_1247" +"$out_of_gas_1277": ; preds = %"$have_gas_1273" call void @_out_of_gas() - br label %"$have_gas_1252" + br label %"$have_gas_1278" -"$have_gas_1252": ; preds = %"$out_of_gas_1251", %"$have_gas_1247" - %"$consume_1253" = sub i64 %"$gasrem_1249", 1 - store i64 %"$consume_1253", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_1254", i32 0, i32 0), i32 5 }, %String* %key2a, align 8, !dbg !131 +"$have_gas_1278": ; preds = %"$out_of_gas_1277", %"$have_gas_1273" + %"$consume_1279" = sub i64 %"$gasrem_1275", 1 + store i64 %"$consume_1279", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_1280", i32 0, i32 0), i32 5 }, %String* %key2a, align 8, !dbg !285 %c1 = alloca %TName_Option_String*, align 8 - %"$indices_buf_1255_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$indices_buf_1255_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_1255_salloc_load", i64 32) - %"$indices_buf_1255_salloc" = bitcast i8* %"$indices_buf_1255_salloc_salloc" to [32 x i8]* - %"$indices_buf_1255" = bitcast [32 x i8]* %"$indices_buf_1255_salloc" to i8* - %"$key1a_1256" = load %String, %String* %key1a, align 8 - %"$indices_gep_1257" = getelementptr i8, i8* %"$indices_buf_1255", i32 0 - %indices_cast = bitcast i8* %"$indices_gep_1257" to %String* - store %String %"$key1a_1256", %String* %indices_cast, align 8 - %"$key2a_1258" = load %String, %String* %key2a, align 8 - %"$indices_gep_1259" = getelementptr i8, i8* %"$indices_buf_1255", i32 16 - %indices_cast1 = bitcast i8* %"$indices_gep_1259" to %String* - store %String %"$key2a_1258", %String* %indices_cast1, align 8 - %"$execptr_load_1261" = load i8*, i8** @_execptr, align 8 - %"$c1_call_1262" = call i8* @_fetch_field(i8* %"$execptr_load_1261", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m2_1260", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_76", i32 2, i8* %"$indices_buf_1255", i32 1), !dbg !132 - %"$c1_1263" = bitcast i8* %"$c1_call_1262" to %TName_Option_String* - store %TName_Option_String* %"$c1_1263", %TName_Option_String** %c1, align 8 - %"$c1_1264" = load %TName_Option_String*, %TName_Option_String** %c1, align 8 - %"$$c1_1264_1265" = bitcast %TName_Option_String* %"$c1_1264" to i8* - %"$_literal_cost_call_1266" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_String_72", i8* %"$$c1_1264_1265") - %"$gasadd_1267" = add i64 %"$_literal_cost_call_1266", 0 - %"$gasadd_1268" = add i64 %"$gasadd_1267", 2 - %"$gasrem_1269" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1270" = icmp ugt i64 %"$gasadd_1268", %"$gasrem_1269" - br i1 %"$gascmp_1270", label %"$out_of_gas_1271", label %"$have_gas_1272" - -"$out_of_gas_1271": ; preds = %"$have_gas_1252" - call void @_out_of_gas() - br label %"$have_gas_1272" - -"$have_gas_1272": ; preds = %"$out_of_gas_1271", %"$have_gas_1252" - %"$consume_1273" = sub i64 %"$gasrem_1269", %"$gasadd_1268" - store i64 %"$consume_1273", i64* @_gasrem, align 8 - %"$gasrem_1274" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1275" = icmp ugt i64 2, %"$gasrem_1274" - br i1 %"$gascmp_1275", label %"$out_of_gas_1276", label %"$have_gas_1277" - -"$out_of_gas_1276": ; preds = %"$have_gas_1272" - call void @_out_of_gas() - br label %"$have_gas_1277" - -"$have_gas_1277": ; preds = %"$out_of_gas_1276", %"$have_gas_1272" - %"$consume_1278" = sub i64 %"$gasrem_1274", 2 - store i64 %"$consume_1278", i64* @_gasrem, align 8 - %"$c1_1280" = load %TName_Option_String*, %TName_Option_String** %c1, align 8 - %"$c1_tag_1281" = getelementptr inbounds %TName_Option_String, %TName_Option_String* %"$c1_1280", i32 0, i32 0 - %"$c1_tag_1282" = load i8, i8* %"$c1_tag_1281", align 1 - switch i8 %"$c1_tag_1282", label %"$empty_default_1283" [ - i8 0, label %"$Some_1284" - i8 1, label %"$None_1357" - ], !dbg !133 - -"$Some_1284": ; preds = %"$have_gas_1277" - %"$c1_1285" = bitcast %TName_Option_String* %"$c1_1280" to %CName_Some_String* - %"$c_gep_1286" = getelementptr inbounds %CName_Some_String, %CName_Some_String* %"$c1_1285", i32 0, i32 1 - %"$c_load_1287" = load %String, %String* %"$c_gep_1286", align 8 + call void @llvm.dbg.declare(metadata %TName_Option_String** %c1, metadata !286, metadata !DIExpression()), !dbg !287 + %"$indices_buf_1281_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$indices_buf_1281_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_1281_salloc_load", i64 32) + %"$indices_buf_1281_salloc" = bitcast i8* %"$indices_buf_1281_salloc_salloc" to [32 x i8]* + %"$indices_buf_1281" = bitcast [32 x i8]* %"$indices_buf_1281_salloc" to i8* + %"$key1a_1282" = load %String, %String* %key1a, align 8 + %"$indices_gep_1283" = getelementptr i8, i8* %"$indices_buf_1281", i32 0 + %indices_cast = bitcast i8* %"$indices_gep_1283" to %String* + store %String %"$key1a_1282", %String* %indices_cast, align 8 + %"$key2a_1284" = load %String, %String* %key2a, align 8 + %"$indices_gep_1285" = getelementptr i8, i8* %"$indices_buf_1281", i32 16 + %indices_cast1 = bitcast i8* %"$indices_gep_1285" to %String* + store %String %"$key2a_1284", %String* %indices_cast1, align 8 + %"$execptr_load_1287" = load i8*, i8** @_execptr, align 8 + %"$c1_call_1288" = call i8* @_fetch_field(i8* %"$execptr_load_1287", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m2_1286", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_76", i32 2, i8* %"$indices_buf_1281", i32 1), !dbg !287 + %"$c1_1289" = bitcast i8* %"$c1_call_1288" to %TName_Option_String* + store %TName_Option_String* %"$c1_1289", %TName_Option_String** %c1, align 8 + %"$c1_1290" = load %TName_Option_String*, %TName_Option_String** %c1, align 8 + %"$$c1_1290_1291" = bitcast %TName_Option_String* %"$c1_1290" to i8* + %"$_literal_cost_call_1292" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_String_72", i8* %"$$c1_1290_1291") + %"$gasadd_1293" = add i64 %"$_literal_cost_call_1292", 0 + %"$gasadd_1294" = add i64 %"$gasadd_1293", 2 + %"$gasrem_1295" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1296" = icmp ugt i64 %"$gasadd_1294", %"$gasrem_1295" + br i1 %"$gascmp_1296", label %"$out_of_gas_1297", label %"$have_gas_1298" + +"$out_of_gas_1297": ; preds = %"$have_gas_1278" + call void @_out_of_gas() + br label %"$have_gas_1298" + +"$have_gas_1298": ; preds = %"$out_of_gas_1297", %"$have_gas_1278" + %"$consume_1299" = sub i64 %"$gasrem_1295", %"$gasadd_1294" + store i64 %"$consume_1299", i64* @_gasrem, align 8 + %"$gasrem_1300" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1301" = icmp ugt i64 2, %"$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", 2 + store i64 %"$consume_1304", i64* @_gasrem, align 8 + %"$c1_1306" = load %TName_Option_String*, %TName_Option_String** %c1, align 8 + %"$c1_tag_1307" = getelementptr inbounds %TName_Option_String, %TName_Option_String* %"$c1_1306", i32 0, i32 0 + %"$c1_tag_1308" = load i8, i8* %"$c1_tag_1307", align 1 + switch i8 %"$c1_tag_1308", label %"$empty_default_1309" [ + i8 0, label %"$Some_1310" + i8 1, label %"$None_1383" + ], !dbg !288 + +"$Some_1310": ; preds = %"$have_gas_1303" + %"$c1_1311" = bitcast %TName_Option_String* %"$c1_1306" to %CName_Some_String* + %"$c_gep_1312" = getelementptr inbounds %CName_Some_String, %CName_Some_String* %"$c1_1311", i32 0, i32 1 + %"$c_load_1313" = load %String, %String* %"$c_gep_1312", align 8 %c = alloca %String, align 8 - store %String %"$c_load_1287", %String* %c, align 8 - %"$gasrem_1288" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1289" = icmp ugt i64 1, %"$gasrem_1288" - br i1 %"$gascmp_1289", label %"$out_of_gas_1290", label %"$have_gas_1291" + store %String %"$c_load_1313", %String* %c, align 8 + %"$gasrem_1314" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1315" = icmp ugt i64 1, %"$gasrem_1314" + br i1 %"$gascmp_1315", label %"$out_of_gas_1316", label %"$have_gas_1317" -"$out_of_gas_1290": ; preds = %"$Some_1284" +"$out_of_gas_1316": ; preds = %"$Some_1310" call void @_out_of_gas() - br label %"$have_gas_1291" + br label %"$have_gas_1317" -"$have_gas_1291": ; preds = %"$out_of_gas_1290", %"$Some_1284" - %"$consume_1292" = sub i64 %"$gasrem_1288", 1 - store i64 %"$consume_1292", i64* @_gasrem, align 8 +"$have_gas_1317": ; preds = %"$out_of_gas_1316", %"$Some_1310" + %"$consume_1318" = sub i64 %"$gasrem_1314", 1 + store i64 %"$consume_1318", i64* @_gasrem, align 8 %v = alloca %String, 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" + call void @llvm.dbg.declare(metadata %String* %v, metadata !289, metadata !DIExpression()), !dbg !292 + %"$gasrem_1319" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1320" = icmp ugt i64 1, %"$gasrem_1319" + br i1 %"$gascmp_1320", label %"$out_of_gas_1321", label %"$have_gas_1322" -"$out_of_gas_1295": ; preds = %"$have_gas_1291" +"$out_of_gas_1321": ; preds = %"$have_gas_1317" call void @_out_of_gas() - br label %"$have_gas_1296" + br label %"$have_gas_1322" -"$have_gas_1296": ; preds = %"$out_of_gas_1295", %"$have_gas_1291" - %"$consume_1297" = sub i64 %"$gasrem_1293", 1 - store i64 %"$consume_1297", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_1298", i32 0, i32 0), i32 3 }, %String* %v, align 8, !dbg !134 - %"$gasrem_1299" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1300" = icmp ugt i64 1, %"$gasrem_1299" - br i1 %"$gascmp_1300", label %"$out_of_gas_1301", label %"$have_gas_1302" +"$have_gas_1322": ; preds = %"$out_of_gas_1321", %"$have_gas_1317" + %"$consume_1323" = sub i64 %"$gasrem_1319", 1 + store i64 %"$consume_1323", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_1324", i32 0, i32 0), i32 3 }, %String* %v, align 8, !dbg !293 + %"$gasrem_1325" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1326" = icmp ugt i64 1, %"$gasrem_1325" + br i1 %"$gascmp_1326", label %"$out_of_gas_1327", label %"$have_gas_1328" -"$out_of_gas_1301": ; preds = %"$have_gas_1296" +"$out_of_gas_1327": ; preds = %"$have_gas_1322" call void @_out_of_gas() - br label %"$have_gas_1302" + br label %"$have_gas_1328" -"$have_gas_1302": ; preds = %"$out_of_gas_1301", %"$have_gas_1296" - %"$consume_1303" = sub i64 %"$gasrem_1299", 1 - store i64 %"$consume_1303", i64* @_gasrem, align 8 +"$have_gas_1328": ; preds = %"$out_of_gas_1327", %"$have_gas_1322" + %"$consume_1329" = sub i64 %"$gasrem_1325", 1 + store i64 %"$consume_1329", i64* @_gasrem, align 8 %eq = alloca %TName_Bool*, align 8 - %"$_literal_cost_c_1304" = alloca %String, align 8 - %"$c_1305" = load %String, %String* %c, align 8 - store %String %"$c_1305", %String* %"$_literal_cost_c_1304", align 8 - %"$$_literal_cost_c_1304_1306" = bitcast %String* %"$_literal_cost_c_1304" to i8* - %"$_literal_cost_call_1307" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_52", i8* %"$$_literal_cost_c_1304_1306") - %"$_literal_cost_v_1308" = alloca %String, align 8 - %"$v_1309" = load %String, %String* %v, align 8 - store %String %"$v_1309", %String* %"$_literal_cost_v_1308", align 8 - %"$$_literal_cost_v_1308_1310" = bitcast %String* %"$_literal_cost_v_1308" to i8* - %"$_literal_cost_call_1311" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_52", i8* %"$$_literal_cost_v_1308_1310") - %"$gasmin_1312" = call i64 @llvm.umin.i64(i64 %"$_literal_cost_call_1307", i64 %"$_literal_cost_call_1311") - %"$gasrem_1313" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1314" = icmp ugt i64 %"$gasmin_1312", %"$gasrem_1313" - br i1 %"$gascmp_1314", label %"$out_of_gas_1315", label %"$have_gas_1316" - -"$out_of_gas_1315": ; preds = %"$have_gas_1302" - call void @_out_of_gas() - br label %"$have_gas_1316" - -"$have_gas_1316": ; preds = %"$out_of_gas_1315", %"$have_gas_1302" - %"$consume_1317" = sub i64 %"$gasrem_1313", %"$gasmin_1312" - store i64 %"$consume_1317", i64* @_gasrem, align 8 - %"$execptr_load_1318" = load i8*, i8** @_execptr, align 8 - %"$c_1319" = load %String, %String* %c, align 8 - %"$v_1320" = load %String, %String* %v, align 8 - %"$eq_call_1321" = call %TName_Bool* @_eq_String(i8* %"$execptr_load_1318", %String %"$c_1319", %String %"$v_1320"), !dbg !137 - store %TName_Bool* %"$eq_call_1321", %TName_Bool** %eq, align 8, !dbg !137 - %"$gasrem_1323" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1324" = icmp ugt i64 2, %"$gasrem_1323" - br i1 %"$gascmp_1324", label %"$out_of_gas_1325", label %"$have_gas_1326" - -"$out_of_gas_1325": ; preds = %"$have_gas_1316" - call void @_out_of_gas() - br label %"$have_gas_1326" - -"$have_gas_1326": ; preds = %"$out_of_gas_1325", %"$have_gas_1316" - %"$consume_1327" = sub i64 %"$gasrem_1323", 2 - store i64 %"$consume_1327", i64* @_gasrem, align 8 - %"$eq_1329" = load %TName_Bool*, %TName_Bool** %eq, align 8 - %"$eq_tag_1330" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$eq_1329", i32 0, i32 0 - %"$eq_tag_1331" = load i8, i8* %"$eq_tag_1330", align 1 - switch i8 %"$eq_tag_1331", label %"$empty_default_1332" [ - i8 0, label %"$True_1333" - i8 1, label %"$False_1335" - ], !dbg !138 - -"$True_1333": ; preds = %"$have_gas_1326" - %"$eq_1334" = bitcast %TName_Bool* %"$eq_1329" to %CName_True* - br label %"$matchsucc_1328" - -"$False_1335": ; preds = %"$have_gas_1326" - %"$eq_1336" = bitcast %TName_Bool* %"$eq_1329" to %CName_False* - %"$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 = %"$False_1335" - call void @_out_of_gas() - br label %"$have_gas_1340" - -"$have_gas_1340": ; preds = %"$out_of_gas_1339", %"$False_1335" - %"$consume_1341" = sub i64 %"$gasrem_1337", 1 - store i64 %"$consume_1341", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %eq, metadata !294, metadata !DIExpression()), !dbg !295 + %"$_literal_cost_c_1330" = alloca %String, align 8 + %"$c_1331" = load %String, %String* %c, align 8 + store %String %"$c_1331", %String* %"$_literal_cost_c_1330", align 8 + %"$$_literal_cost_c_1330_1332" = bitcast %String* %"$_literal_cost_c_1330" to i8* + %"$_literal_cost_call_1333" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_52", i8* %"$$_literal_cost_c_1330_1332") + %"$_literal_cost_v_1334" = alloca %String, align 8 + %"$v_1335" = load %String, %String* %v, align 8 + store %String %"$v_1335", %String* %"$_literal_cost_v_1334", align 8 + %"$$_literal_cost_v_1334_1336" = bitcast %String* %"$_literal_cost_v_1334" to i8* + %"$_literal_cost_call_1337" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_52", i8* %"$$_literal_cost_v_1334_1336") + %"$gasmin_1338" = call i64 @llvm.umin.i64(i64 %"$_literal_cost_call_1333", i64 %"$_literal_cost_call_1337") + %"$gasrem_1339" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1340" = icmp ugt i64 %"$gasmin_1338", %"$gasrem_1339" + br i1 %"$gascmp_1340", label %"$out_of_gas_1341", label %"$have_gas_1342" + +"$out_of_gas_1341": ; preds = %"$have_gas_1328" + call void @_out_of_gas() + br label %"$have_gas_1342" + +"$have_gas_1342": ; preds = %"$out_of_gas_1341", %"$have_gas_1328" + %"$consume_1343" = sub i64 %"$gasrem_1339", %"$gasmin_1338" + store i64 %"$consume_1343", i64* @_gasrem, align 8 + %"$execptr_load_1344" = load i8*, i8** @_execptr, align 8 + %"$c_1345" = load %String, %String* %c, align 8 + %"$v_1346" = load %String, %String* %v, align 8 + %"$eq_call_1347" = call %TName_Bool* @_eq_String(i8* %"$execptr_load_1344", %String %"$c_1345", %String %"$v_1346"), !dbg !296 + store %TName_Bool* %"$eq_call_1347", %TName_Bool** %eq, align 8, !dbg !296 + %"$gasrem_1349" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1350" = icmp ugt i64 2, %"$gasrem_1349" + br i1 %"$gascmp_1350", label %"$out_of_gas_1351", label %"$have_gas_1352" + +"$out_of_gas_1351": ; preds = %"$have_gas_1342" + call void @_out_of_gas() + br label %"$have_gas_1352" + +"$have_gas_1352": ; preds = %"$out_of_gas_1351", %"$have_gas_1342" + %"$consume_1353" = sub i64 %"$gasrem_1349", 2 + store i64 %"$consume_1353", i64* @_gasrem, align 8 + %"$eq_1355" = load %TName_Bool*, %TName_Bool** %eq, align 8 + %"$eq_tag_1356" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$eq_1355", i32 0, i32 0 + %"$eq_tag_1357" = load i8, i8* %"$eq_tag_1356", align 1 + switch i8 %"$eq_tag_1357", label %"$empty_default_1358" [ + i8 0, label %"$True_1359" + i8 1, label %"$False_1361" + ], !dbg !297 + +"$True_1359": ; preds = %"$have_gas_1352" + %"$eq_1360" = bitcast %TName_Bool* %"$eq_1355" to %CName_True* + br label %"$matchsucc_1354" + +"$False_1361": ; preds = %"$have_gas_1352" + %"$eq_1362" = bitcast %TName_Bool* %"$eq_1355" to %CName_False* + %"$gasrem_1363" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1364" = icmp ugt i64 1, %"$gasrem_1363" + br i1 %"$gascmp_1364", label %"$out_of_gas_1365", label %"$have_gas_1366" + +"$out_of_gas_1365": ; preds = %"$False_1361" + call void @_out_of_gas() + br label %"$have_gas_1366" + +"$have_gas_1366": ; preds = %"$out_of_gas_1365", %"$False_1361" + %"$consume_1367" = sub i64 %"$gasrem_1363", 1 + store i64 %"$consume_1367", i64* @_gasrem, align 8 %m = alloca %String, align 8 - %"$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_1344": ; preds = %"$have_gas_1340" - call void @_out_of_gas() - br label %"$have_gas_1345" - -"$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 ([31 x i8], [31 x i8]* @"$stringlit_1347", i32 0, i32 0), i32 31 }, %String* %m, align 8, !dbg !139 - %"$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_1345" - call void @_out_of_gas() - br label %"$have_gas_1351" - -"$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 - %"$fail_msg__origin_1353" = alloca [20 x i8], align 1 - store [20 x i8] %_origin, [20 x i8]* %"$fail_msg__origin_1353", align 1 - %"$fail_msg__sender_1354" = alloca [20 x i8], align 1 - store [20 x i8] %_sender, [20 x i8]* %"$fail_msg__sender_1354", align 1 - %"$tname_1355" = load %String, %String* %tname, align 8 - %"$m_1356" = load %String, %String* %m, align 8 - call void @"$fail_msg_292"(%Uint128 %_amount, [20 x i8]* %"$fail_msg__origin_1353", [20 x i8]* %"$fail_msg__sender_1354", %String %"$tname_1355", %String %"$m_1356"), !dbg !142 - br label %"$matchsucc_1328" - -"$empty_default_1332": ; preds = %"$have_gas_1326" - br label %"$matchsucc_1328" - -"$matchsucc_1328": ; preds = %"$have_gas_1351", %"$True_1333", %"$empty_default_1332" - br label %"$matchsucc_1279" - -"$None_1357": ; preds = %"$have_gas_1277" - %"$c1_1358" = bitcast %TName_Option_String* %"$c1_1280" to %CName_None_String* - %"$gasrem_1359" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1360" = icmp ugt i64 1, %"$gasrem_1359" - br i1 %"$gascmp_1360", label %"$out_of_gas_1361", label %"$have_gas_1362" - -"$out_of_gas_1361": ; preds = %"$None_1357" - call void @_out_of_gas() - br label %"$have_gas_1362" - -"$have_gas_1362": ; preds = %"$out_of_gas_1361", %"$None_1357" - %"$consume_1363" = sub i64 %"$gasrem_1359", 1 - store i64 %"$consume_1363", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %String* %m, metadata !298, metadata !DIExpression()), !dbg !301 + %"$gasrem_1368" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1369" = icmp ugt i64 1, %"$gasrem_1368" + br i1 %"$gascmp_1369", label %"$out_of_gas_1370", label %"$have_gas_1371" + +"$out_of_gas_1370": ; preds = %"$have_gas_1366" + call void @_out_of_gas() + br label %"$have_gas_1371" + +"$have_gas_1371": ; preds = %"$out_of_gas_1370", %"$have_gas_1366" + %"$consume_1372" = sub i64 %"$gasrem_1368", 1 + store i64 %"$consume_1372", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([31 x i8], [31 x i8]* @"$stringlit_1373", i32 0, i32 0), i32 31 }, %String* %m, align 8, !dbg !302 + %"$gasrem_1374" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1375" = icmp ugt i64 1, %"$gasrem_1374" + br i1 %"$gascmp_1375", label %"$out_of_gas_1376", label %"$have_gas_1377" + +"$out_of_gas_1376": ; preds = %"$have_gas_1371" + call void @_out_of_gas() + br label %"$have_gas_1377" + +"$have_gas_1377": ; preds = %"$out_of_gas_1376", %"$have_gas_1371" + %"$consume_1378" = sub i64 %"$gasrem_1374", 1 + store i64 %"$consume_1378", i64* @_gasrem, align 8 + %"$fail_msg__origin_1379" = alloca [20 x i8], align 1 + store [20 x i8] %_origin, [20 x i8]* %"$fail_msg__origin_1379", align 1 + %"$fail_msg__sender_1380" = alloca [20 x i8], align 1 + store [20 x i8] %_sender, [20 x i8]* %"$fail_msg__sender_1380", align 1 + %"$tname_1381" = load %String, %String* %tname, align 8 + %"$m_1382" = load %String, %String* %m, align 8 + call void @"$fail_msg_298"(%Uint128 %_amount, [20 x i8]* %"$fail_msg__origin_1379", [20 x i8]* %"$fail_msg__sender_1380", %String %"$tname_1381", %String %"$m_1382"), !dbg !303 + br label %"$matchsucc_1354" + +"$empty_default_1358": ; preds = %"$have_gas_1352" + br label %"$matchsucc_1354" + +"$matchsucc_1354": ; preds = %"$have_gas_1377", %"$True_1359", %"$empty_default_1358" + br label %"$matchsucc_1305" + +"$None_1383": ; preds = %"$have_gas_1303" + %"$c1_1384" = bitcast %TName_Option_String* %"$c1_1306" to %CName_None_String* + %"$gasrem_1385" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1386" = icmp ugt i64 1, %"$gasrem_1385" + br i1 %"$gascmp_1386", label %"$out_of_gas_1387", label %"$have_gas_1388" + +"$out_of_gas_1387": ; preds = %"$None_1383" + call void @_out_of_gas() + br label %"$have_gas_1388" + +"$have_gas_1388": ; preds = %"$out_of_gas_1387", %"$None_1383" + %"$consume_1389" = sub i64 %"$gasrem_1385", 1 + store i64 %"$consume_1389", i64* @_gasrem, align 8 %m2 = alloca %String, align 8 - %"$gasrem_1364" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1365" = icmp ugt i64 1, %"$gasrem_1364" - br i1 %"$gascmp_1365", label %"$out_of_gas_1366", label %"$have_gas_1367" - -"$out_of_gas_1366": ; preds = %"$have_gas_1362" - call void @_out_of_gas() - br label %"$have_gas_1367" - -"$have_gas_1367": ; preds = %"$out_of_gas_1366", %"$have_gas_1362" - %"$consume_1368" = sub i64 %"$gasrem_1364", 1 - store i64 %"$consume_1368", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([21 x i8], [21 x i8]* @"$stringlit_1369", i32 0, i32 0), i32 21 }, %String* %m2, align 8, !dbg !143 - %"$gasrem_1370" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1371" = icmp ugt i64 1, %"$gasrem_1370" - br i1 %"$gascmp_1371", label %"$out_of_gas_1372", label %"$have_gas_1373" - -"$out_of_gas_1372": ; preds = %"$have_gas_1367" - call void @_out_of_gas() - br label %"$have_gas_1373" - -"$have_gas_1373": ; preds = %"$out_of_gas_1372", %"$have_gas_1367" - %"$consume_1374" = sub i64 %"$gasrem_1370", 1 - store i64 %"$consume_1374", i64* @_gasrem, align 8 - %"$fail_msg__origin_1375" = alloca [20 x i8], align 1 - store [20 x i8] %_origin, [20 x i8]* %"$fail_msg__origin_1375", align 1 - %"$fail_msg__sender_1376" = alloca [20 x i8], align 1 - store [20 x i8] %_sender, [20 x i8]* %"$fail_msg__sender_1376", align 1 - %"$tname_1377" = load %String, %String* %tname, align 8 - %"$m_1378" = load %String, %String* %m2, align 8 - call void @"$fail_msg_292"(%Uint128 %_amount, [20 x i8]* %"$fail_msg__origin_1375", [20 x i8]* %"$fail_msg__sender_1376", %String %"$tname_1377", %String %"$m_1378"), !dbg !145 - br label %"$matchsucc_1279" - -"$empty_default_1283": ; preds = %"$have_gas_1277" - br label %"$matchsucc_1279" - -"$matchsucc_1279": ; preds = %"$have_gas_1373", %"$matchsucc_1328", %"$empty_default_1283" - %"$gasrem_1379" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1380" = icmp ugt i64 1, %"$gasrem_1379" - br i1 %"$gascmp_1380", label %"$out_of_gas_1381", label %"$have_gas_1382" + call void @llvm.dbg.declare(metadata %String* %m2, metadata !304, metadata !DIExpression()), !dbg !306 + %"$gasrem_1390" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1391" = icmp ugt i64 1, %"$gasrem_1390" + br i1 %"$gascmp_1391", label %"$out_of_gas_1392", label %"$have_gas_1393" -"$out_of_gas_1381": ; preds = %"$matchsucc_1279" +"$out_of_gas_1392": ; preds = %"$have_gas_1388" call void @_out_of_gas() - br label %"$have_gas_1382" + br label %"$have_gas_1393" -"$have_gas_1382": ; preds = %"$out_of_gas_1381", %"$matchsucc_1279" - %"$consume_1383" = sub i64 %"$gasrem_1379", 1 - store i64 %"$consume_1383", i64* @_gasrem, align 8 +"$have_gas_1393": ; preds = %"$out_of_gas_1392", %"$have_gas_1388" + %"$consume_1394" = sub i64 %"$gasrem_1390", 1 + store i64 %"$consume_1394", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([21 x i8], [21 x i8]* @"$stringlit_1395", i32 0, i32 0), i32 21 }, %String* %m2, align 8, !dbg !307 + %"$gasrem_1396" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1397" = icmp ugt i64 1, %"$gasrem_1396" + br i1 %"$gascmp_1397", label %"$out_of_gas_1398", label %"$have_gas_1399" + +"$out_of_gas_1398": ; preds = %"$have_gas_1393" + call void @_out_of_gas() + br label %"$have_gas_1399" + +"$have_gas_1399": ; preds = %"$out_of_gas_1398", %"$have_gas_1393" + %"$consume_1400" = sub i64 %"$gasrem_1396", 1 + store i64 %"$consume_1400", i64* @_gasrem, align 8 + %"$fail_msg__origin_1401" = alloca [20 x i8], align 1 + store [20 x i8] %_origin, [20 x i8]* %"$fail_msg__origin_1401", align 1 + %"$fail_msg__sender_1402" = alloca [20 x i8], align 1 + store [20 x i8] %_sender, [20 x i8]* %"$fail_msg__sender_1402", align 1 + %"$tname_1403" = load %String, %String* %tname, align 8 + %"$m_1404" = load %String, %String* %m2, align 8 + call void @"$fail_msg_298"(%Uint128 %_amount, [20 x i8]* %"$fail_msg__origin_1401", [20 x i8]* %"$fail_msg__sender_1402", %String %"$tname_1403", %String %"$m_1404"), !dbg !308 + br label %"$matchsucc_1305" + +"$empty_default_1309": ; preds = %"$have_gas_1303" + br label %"$matchsucc_1305" + +"$matchsucc_1305": ; preds = %"$have_gas_1399", %"$matchsucc_1354", %"$empty_default_1309" + %"$gasrem_1405" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1406" = icmp ugt i64 1, %"$gasrem_1405" + br i1 %"$gascmp_1406", label %"$out_of_gas_1407", label %"$have_gas_1408" + +"$out_of_gas_1407": ; preds = %"$matchsucc_1305" + call void @_out_of_gas() + br label %"$have_gas_1408" + +"$have_gas_1408": ; preds = %"$out_of_gas_1407", %"$matchsucc_1305" + %"$consume_1409" = sub i64 %"$gasrem_1405", 1 + store i64 %"$consume_1409", i64* @_gasrem, align 8 %key1b = alloca %String, align 8 - %"$gasrem_1384" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1385" = icmp ugt i64 1, %"$gasrem_1384" - br i1 %"$gascmp_1385", label %"$out_of_gas_1386", label %"$have_gas_1387" + call void @llvm.dbg.declare(metadata %String* %key1b, metadata !309, metadata !DIExpression()), !dbg !310 + %"$gasrem_1410" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1411" = icmp ugt i64 1, %"$gasrem_1410" + br i1 %"$gascmp_1411", label %"$out_of_gas_1412", label %"$have_gas_1413" -"$out_of_gas_1386": ; preds = %"$have_gas_1382" +"$out_of_gas_1412": ; preds = %"$have_gas_1408" call void @_out_of_gas() - br label %"$have_gas_1387" + br label %"$have_gas_1413" -"$have_gas_1387": ; preds = %"$out_of_gas_1386", %"$have_gas_1382" - %"$consume_1388" = sub i64 %"$gasrem_1384", 1 - store i64 %"$consume_1388", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_1389", i32 0, i32 0), i32 5 }, %String* %key1b, align 8, !dbg !146 - %"$gasrem_1390" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1391" = icmp ugt i64 1, %"$gasrem_1390" - br i1 %"$gascmp_1391", label %"$out_of_gas_1392", label %"$have_gas_1393" +"$have_gas_1413": ; preds = %"$out_of_gas_1412", %"$have_gas_1408" + %"$consume_1414" = sub i64 %"$gasrem_1410", 1 + store i64 %"$consume_1414", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_1415", i32 0, i32 0), i32 5 }, %String* %key1b, align 8, !dbg !311 + %"$gasrem_1416" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1417" = icmp ugt i64 1, %"$gasrem_1416" + br i1 %"$gascmp_1417", label %"$out_of_gas_1418", label %"$have_gas_1419" -"$out_of_gas_1392": ; preds = %"$have_gas_1387" +"$out_of_gas_1418": ; preds = %"$have_gas_1413" call void @_out_of_gas() - br label %"$have_gas_1393" + br label %"$have_gas_1419" -"$have_gas_1393": ; preds = %"$out_of_gas_1392", %"$have_gas_1387" - %"$consume_1394" = sub i64 %"$gasrem_1390", 1 - store i64 %"$consume_1394", i64* @_gasrem, align 8 +"$have_gas_1419": ; preds = %"$out_of_gas_1418", %"$have_gas_1413" + %"$consume_1420" = sub i64 %"$gasrem_1416", 1 + store i64 %"$consume_1420", i64* @_gasrem, align 8 %key2b = alloca %String, align 8 - %"$gasrem_1395" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1396" = icmp ugt i64 1, %"$gasrem_1395" - br i1 %"$gascmp_1396", label %"$out_of_gas_1397", label %"$have_gas_1398" + call void @llvm.dbg.declare(metadata %String* %key2b, metadata !312, metadata !DIExpression()), !dbg !313 + %"$gasrem_1421" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1422" = icmp ugt i64 1, %"$gasrem_1421" + br i1 %"$gascmp_1422", label %"$out_of_gas_1423", label %"$have_gas_1424" -"$out_of_gas_1397": ; preds = %"$have_gas_1393" +"$out_of_gas_1423": ; preds = %"$have_gas_1419" call void @_out_of_gas() - br label %"$have_gas_1398" + br label %"$have_gas_1424" -"$have_gas_1398": ; preds = %"$out_of_gas_1397", %"$have_gas_1393" - %"$consume_1399" = sub i64 %"$gasrem_1395", 1 - store i64 %"$consume_1399", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_1400", i32 0, i32 0), i32 5 }, %String* %key2b, align 8, !dbg !147 +"$have_gas_1424": ; preds = %"$out_of_gas_1423", %"$have_gas_1419" + %"$consume_1425" = sub i64 %"$gasrem_1421", 1 + store i64 %"$consume_1425", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_1426", i32 0, i32 0), i32 5 }, %String* %key2b, align 8, !dbg !314 %"$c1_2" = alloca %TName_Option_String*, align 8 - %"$indices_buf_1401_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$indices_buf_1401_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_1401_salloc_load", i64 32) - %"$indices_buf_1401_salloc" = bitcast i8* %"$indices_buf_1401_salloc_salloc" to [32 x i8]* - %"$indices_buf_1401" = bitcast [32 x i8]* %"$indices_buf_1401_salloc" to i8* - %"$key1b_1402" = load %String, %String* %key1b, align 8 - %"$indices_gep_1403" = getelementptr i8, i8* %"$indices_buf_1401", i32 0 - %indices_cast3 = bitcast i8* %"$indices_gep_1403" to %String* - store %String %"$key1b_1402", %String* %indices_cast3, align 8 - %"$key2b_1404" = load %String, %String* %key2b, align 8 - %"$indices_gep_1405" = getelementptr i8, i8* %"$indices_buf_1401", i32 16 - %indices_cast4 = bitcast i8* %"$indices_gep_1405" to %String* - store %String %"$key2b_1404", %String* %indices_cast4, align 8 - %"$execptr_load_1407" = load i8*, i8** @_execptr, align 8 - %"$$c1_2_call_1408" = call i8* @_fetch_field(i8* %"$execptr_load_1407", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m2_1406", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_76", i32 2, i8* %"$indices_buf_1401", i32 1), !dbg !148 - %"$$c1_2_1409" = bitcast i8* %"$$c1_2_call_1408" to %TName_Option_String* - store %TName_Option_String* %"$$c1_2_1409", %TName_Option_String** %"$c1_2", align 8 - %"$$c1_2_1410" = load %TName_Option_String*, %TName_Option_String** %"$c1_2", align 8 - %"$$$c1_2_1410_1411" = bitcast %TName_Option_String* %"$$c1_2_1410" to i8* - %"$_literal_cost_call_1412" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_String_72", i8* %"$$$c1_2_1410_1411") - %"$gasadd_1413" = add i64 %"$_literal_cost_call_1412", 0 - %"$gasadd_1414" = add i64 %"$gasadd_1413", 2 - %"$gasrem_1415" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1416" = icmp ugt i64 %"$gasadd_1414", %"$gasrem_1415" - br i1 %"$gascmp_1416", label %"$out_of_gas_1417", label %"$have_gas_1418" - -"$out_of_gas_1417": ; preds = %"$have_gas_1398" - call void @_out_of_gas() - br label %"$have_gas_1418" - -"$have_gas_1418": ; preds = %"$out_of_gas_1417", %"$have_gas_1398" - %"$consume_1419" = sub i64 %"$gasrem_1415", %"$gasadd_1414" - store i64 %"$consume_1419", i64* @_gasrem, align 8 - %"$gasrem_1420" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1421" = icmp ugt i64 2, %"$gasrem_1420" - br i1 %"$gascmp_1421", label %"$out_of_gas_1422", label %"$have_gas_1423" - -"$out_of_gas_1422": ; preds = %"$have_gas_1418" - call void @_out_of_gas() - br label %"$have_gas_1423" - -"$have_gas_1423": ; preds = %"$out_of_gas_1422", %"$have_gas_1418" - %"$consume_1424" = sub i64 %"$gasrem_1420", 2 - store i64 %"$consume_1424", i64* @_gasrem, align 8 - %"$$c1_2_1426" = load %TName_Option_String*, %TName_Option_String** %"$c1_2", align 8 - %"$$c1_2_tag_1427" = getelementptr inbounds %TName_Option_String, %TName_Option_String* %"$$c1_2_1426", i32 0, i32 0 - %"$$c1_2_tag_1428" = load i8, i8* %"$$c1_2_tag_1427", align 1 - switch i8 %"$$c1_2_tag_1428", label %"$empty_default_1429" [ - i8 0, label %"$Some_1430" - i8 1, label %"$None_1503" - ], !dbg !149 - -"$Some_1430": ; preds = %"$have_gas_1423" - %"$$c1_2_1431" = bitcast %TName_Option_String* %"$$c1_2_1426" to %CName_Some_String* - %"$c_gep_1432" = getelementptr inbounds %CName_Some_String, %CName_Some_String* %"$$c1_2_1431", i32 0, i32 1 - %"$c_load_1433" = load %String, %String* %"$c_gep_1432", align 8 + call void @llvm.dbg.declare(metadata %TName_Option_String** %"$c1_2", metadata !315, metadata !DIExpression()), !dbg !316 + %"$indices_buf_1427_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$indices_buf_1427_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_1427_salloc_load", i64 32) + %"$indices_buf_1427_salloc" = bitcast i8* %"$indices_buf_1427_salloc_salloc" to [32 x i8]* + %"$indices_buf_1427" = bitcast [32 x i8]* %"$indices_buf_1427_salloc" to i8* + %"$key1b_1428" = load %String, %String* %key1b, align 8 + %"$indices_gep_1429" = getelementptr i8, i8* %"$indices_buf_1427", i32 0 + %indices_cast3 = bitcast i8* %"$indices_gep_1429" to %String* + store %String %"$key1b_1428", %String* %indices_cast3, align 8 + %"$key2b_1430" = load %String, %String* %key2b, align 8 + %"$indices_gep_1431" = getelementptr i8, i8* %"$indices_buf_1427", i32 16 + %indices_cast4 = bitcast i8* %"$indices_gep_1431" to %String* + store %String %"$key2b_1430", %String* %indices_cast4, align 8 + %"$execptr_load_1433" = load i8*, i8** @_execptr, align 8 + %"$$c1_2_call_1434" = call i8* @_fetch_field(i8* %"$execptr_load_1433", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m2_1432", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_76", i32 2, i8* %"$indices_buf_1427", i32 1), !dbg !316 + %"$$c1_2_1435" = bitcast i8* %"$$c1_2_call_1434" to %TName_Option_String* + store %TName_Option_String* %"$$c1_2_1435", %TName_Option_String** %"$c1_2", align 8 + %"$$c1_2_1436" = load %TName_Option_String*, %TName_Option_String** %"$c1_2", align 8 + %"$$$c1_2_1436_1437" = bitcast %TName_Option_String* %"$$c1_2_1436" to i8* + %"$_literal_cost_call_1438" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_String_72", i8* %"$$$c1_2_1436_1437") + %"$gasadd_1439" = add i64 %"$_literal_cost_call_1438", 0 + %"$gasadd_1440" = add i64 %"$gasadd_1439", 2 + %"$gasrem_1441" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1442" = icmp ugt i64 %"$gasadd_1440", %"$gasrem_1441" + br i1 %"$gascmp_1442", label %"$out_of_gas_1443", label %"$have_gas_1444" + +"$out_of_gas_1443": ; preds = %"$have_gas_1424" + call void @_out_of_gas() + br label %"$have_gas_1444" + +"$have_gas_1444": ; preds = %"$out_of_gas_1443", %"$have_gas_1424" + %"$consume_1445" = sub i64 %"$gasrem_1441", %"$gasadd_1440" + store i64 %"$consume_1445", i64* @_gasrem, align 8 + %"$gasrem_1446" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1447" = icmp ugt i64 2, %"$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", 2 + store i64 %"$consume_1450", i64* @_gasrem, align 8 + %"$$c1_2_1452" = load %TName_Option_String*, %TName_Option_String** %"$c1_2", align 8 + %"$$c1_2_tag_1453" = getelementptr inbounds %TName_Option_String, %TName_Option_String* %"$$c1_2_1452", i32 0, i32 0 + %"$$c1_2_tag_1454" = load i8, i8* %"$$c1_2_tag_1453", align 1 + switch i8 %"$$c1_2_tag_1454", label %"$empty_default_1455" [ + i8 0, label %"$Some_1456" + i8 1, label %"$None_1529" + ], !dbg !317 + +"$Some_1456": ; preds = %"$have_gas_1449" + %"$$c1_2_1457" = bitcast %TName_Option_String* %"$$c1_2_1452" to %CName_Some_String* + %"$c_gep_1458" = getelementptr inbounds %CName_Some_String, %CName_Some_String* %"$$c1_2_1457", i32 0, i32 1 + %"$c_load_1459" = load %String, %String* %"$c_gep_1458", align 8 %c5 = alloca %String, align 8 - store %String %"$c_load_1433", %String* %c5, align 8 - %"$gasrem_1434" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1435" = icmp ugt i64 1, %"$gasrem_1434" - br i1 %"$gascmp_1435", label %"$out_of_gas_1436", label %"$have_gas_1437" + store %String %"$c_load_1459", %String* %c5, align 8 + %"$gasrem_1460" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1461" = icmp ugt i64 1, %"$gasrem_1460" + br i1 %"$gascmp_1461", label %"$out_of_gas_1462", label %"$have_gas_1463" -"$out_of_gas_1436": ; preds = %"$Some_1430" +"$out_of_gas_1462": ; preds = %"$Some_1456" call void @_out_of_gas() - br label %"$have_gas_1437" + br label %"$have_gas_1463" -"$have_gas_1437": ; preds = %"$out_of_gas_1436", %"$Some_1430" - %"$consume_1438" = sub i64 %"$gasrem_1434", 1 - store i64 %"$consume_1438", i64* @_gasrem, align 8 +"$have_gas_1463": ; preds = %"$out_of_gas_1462", %"$Some_1456" + %"$consume_1464" = sub i64 %"$gasrem_1460", 1 + store i64 %"$consume_1464", i64* @_gasrem, align 8 %v6 = alloca %String, align 8 - %"$gasrem_1439" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1440" = icmp ugt i64 1, %"$gasrem_1439" - br i1 %"$gascmp_1440", label %"$out_of_gas_1441", label %"$have_gas_1442" + call void @llvm.dbg.declare(metadata %String* %v6, metadata !318, metadata !DIExpression()), !dbg !321 + %"$gasrem_1465" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1466" = icmp ugt i64 1, %"$gasrem_1465" + br i1 %"$gascmp_1466", label %"$out_of_gas_1467", label %"$have_gas_1468" -"$out_of_gas_1441": ; preds = %"$have_gas_1437" +"$out_of_gas_1467": ; preds = %"$have_gas_1463" call void @_out_of_gas() - br label %"$have_gas_1442" + br label %"$have_gas_1468" -"$have_gas_1442": ; preds = %"$out_of_gas_1441", %"$have_gas_1437" - %"$consume_1443" = sub i64 %"$gasrem_1439", 1 - store i64 %"$consume_1443", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_1444", i32 0, i32 0), i32 3 }, %String* %v6, align 8, !dbg !150 - %"$gasrem_1445" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1446" = icmp ugt i64 1, %"$gasrem_1445" - br i1 %"$gascmp_1446", label %"$out_of_gas_1447", label %"$have_gas_1448" +"$have_gas_1468": ; preds = %"$out_of_gas_1467", %"$have_gas_1463" + %"$consume_1469" = sub i64 %"$gasrem_1465", 1 + store i64 %"$consume_1469", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_1470", i32 0, i32 0), i32 3 }, %String* %v6, align 8, !dbg !322 + %"$gasrem_1471" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1472" = icmp ugt i64 1, %"$gasrem_1471" + br i1 %"$gascmp_1472", label %"$out_of_gas_1473", label %"$have_gas_1474" -"$out_of_gas_1447": ; preds = %"$have_gas_1442" +"$out_of_gas_1473": ; preds = %"$have_gas_1468" call void @_out_of_gas() - br label %"$have_gas_1448" + br label %"$have_gas_1474" -"$have_gas_1448": ; preds = %"$out_of_gas_1447", %"$have_gas_1442" - %"$consume_1449" = sub i64 %"$gasrem_1445", 1 - store i64 %"$consume_1449", i64* @_gasrem, align 8 +"$have_gas_1474": ; preds = %"$out_of_gas_1473", %"$have_gas_1468" + %"$consume_1475" = sub i64 %"$gasrem_1471", 1 + store i64 %"$consume_1475", i64* @_gasrem, align 8 %eq7 = alloca %TName_Bool*, align 8 - %"$_literal_cost_c_1450" = alloca %String, align 8 - %"$c_1451" = load %String, %String* %c5, align 8 - store %String %"$c_1451", %String* %"$_literal_cost_c_1450", align 8 - %"$$_literal_cost_c_1450_1452" = bitcast %String* %"$_literal_cost_c_1450" to i8* - %"$_literal_cost_call_1453" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_52", i8* %"$$_literal_cost_c_1450_1452") - %"$_literal_cost_v_1454" = alloca %String, align 8 - %"$v_1455" = load %String, %String* %v6, align 8 - store %String %"$v_1455", %String* %"$_literal_cost_v_1454", align 8 - %"$$_literal_cost_v_1454_1456" = bitcast %String* %"$_literal_cost_v_1454" to i8* - %"$_literal_cost_call_1457" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_52", i8* %"$$_literal_cost_v_1454_1456") - %"$gasmin_1458" = call i64 @llvm.umin.i64(i64 %"$_literal_cost_call_1453", i64 %"$_literal_cost_call_1457") - %"$gasrem_1459" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1460" = icmp ugt i64 %"$gasmin_1458", %"$gasrem_1459" - br i1 %"$gascmp_1460", label %"$out_of_gas_1461", label %"$have_gas_1462" - -"$out_of_gas_1461": ; preds = %"$have_gas_1448" - call void @_out_of_gas() - br label %"$have_gas_1462" - -"$have_gas_1462": ; preds = %"$out_of_gas_1461", %"$have_gas_1448" - %"$consume_1463" = sub i64 %"$gasrem_1459", %"$gasmin_1458" - store i64 %"$consume_1463", i64* @_gasrem, align 8 - %"$execptr_load_1464" = load i8*, i8** @_execptr, align 8 - %"$c_1465" = load %String, %String* %c5, align 8 - %"$v_1466" = load %String, %String* %v6, align 8 - %"$eq_call_1467" = call %TName_Bool* @_eq_String(i8* %"$execptr_load_1464", %String %"$c_1465", %String %"$v_1466"), !dbg !153 - store %TName_Bool* %"$eq_call_1467", %TName_Bool** %eq7, align 8, !dbg !153 - %"$gasrem_1469" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1470" = icmp ugt i64 2, %"$gasrem_1469" - br i1 %"$gascmp_1470", label %"$out_of_gas_1471", label %"$have_gas_1472" - -"$out_of_gas_1471": ; preds = %"$have_gas_1462" - call void @_out_of_gas() - br label %"$have_gas_1472" - -"$have_gas_1472": ; preds = %"$out_of_gas_1471", %"$have_gas_1462" - %"$consume_1473" = sub i64 %"$gasrem_1469", 2 - store i64 %"$consume_1473", i64* @_gasrem, align 8 - %"$eq_1475" = load %TName_Bool*, %TName_Bool** %eq7, align 8 - %"$eq_tag_1476" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$eq_1475", i32 0, i32 0 - %"$eq_tag_1477" = load i8, i8* %"$eq_tag_1476", align 1 - switch i8 %"$eq_tag_1477", label %"$empty_default_1478" [ - i8 0, label %"$True_1479" - i8 1, label %"$False_1481" - ], !dbg !154 - -"$True_1479": ; preds = %"$have_gas_1472" - %"$eq_1480" = bitcast %TName_Bool* %"$eq_1475" to %CName_True* - br label %"$matchsucc_1474" - -"$False_1481": ; preds = %"$have_gas_1472" - %"$eq_1482" = bitcast %TName_Bool* %"$eq_1475" to %CName_False* - %"$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 = %"$False_1481" - call void @_out_of_gas() - br label %"$have_gas_1486" - -"$have_gas_1486": ; preds = %"$out_of_gas_1485", %"$False_1481" - %"$consume_1487" = sub i64 %"$gasrem_1483", 1 - store i64 %"$consume_1487", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %eq7, metadata !323, metadata !DIExpression()), !dbg !324 + %"$_literal_cost_c_1476" = alloca %String, align 8 + %"$c_1477" = load %String, %String* %c5, align 8 + store %String %"$c_1477", %String* %"$_literal_cost_c_1476", align 8 + %"$$_literal_cost_c_1476_1478" = bitcast %String* %"$_literal_cost_c_1476" to i8* + %"$_literal_cost_call_1479" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_52", i8* %"$$_literal_cost_c_1476_1478") + %"$_literal_cost_v_1480" = alloca %String, align 8 + %"$v_1481" = load %String, %String* %v6, align 8 + store %String %"$v_1481", %String* %"$_literal_cost_v_1480", align 8 + %"$$_literal_cost_v_1480_1482" = bitcast %String* %"$_literal_cost_v_1480" to i8* + %"$_literal_cost_call_1483" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_52", i8* %"$$_literal_cost_v_1480_1482") + %"$gasmin_1484" = call i64 @llvm.umin.i64(i64 %"$_literal_cost_call_1479", i64 %"$_literal_cost_call_1483") + %"$gasrem_1485" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1486" = icmp ugt i64 %"$gasmin_1484", %"$gasrem_1485" + br i1 %"$gascmp_1486", label %"$out_of_gas_1487", label %"$have_gas_1488" + +"$out_of_gas_1487": ; preds = %"$have_gas_1474" + call void @_out_of_gas() + br label %"$have_gas_1488" + +"$have_gas_1488": ; preds = %"$out_of_gas_1487", %"$have_gas_1474" + %"$consume_1489" = sub i64 %"$gasrem_1485", %"$gasmin_1484" + store i64 %"$consume_1489", i64* @_gasrem, align 8 + %"$execptr_load_1490" = load i8*, i8** @_execptr, align 8 + %"$c_1491" = load %String, %String* %c5, align 8 + %"$v_1492" = load %String, %String* %v6, align 8 + %"$eq_call_1493" = call %TName_Bool* @_eq_String(i8* %"$execptr_load_1490", %String %"$c_1491", %String %"$v_1492"), !dbg !325 + store %TName_Bool* %"$eq_call_1493", %TName_Bool** %eq7, align 8, !dbg !325 + %"$gasrem_1495" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1496" = icmp ugt i64 2, %"$gasrem_1495" + br i1 %"$gascmp_1496", label %"$out_of_gas_1497", label %"$have_gas_1498" + +"$out_of_gas_1497": ; preds = %"$have_gas_1488" + call void @_out_of_gas() + br label %"$have_gas_1498" + +"$have_gas_1498": ; preds = %"$out_of_gas_1497", %"$have_gas_1488" + %"$consume_1499" = sub i64 %"$gasrem_1495", 2 + store i64 %"$consume_1499", i64* @_gasrem, align 8 + %"$eq_1501" = load %TName_Bool*, %TName_Bool** %eq7, align 8 + %"$eq_tag_1502" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$eq_1501", i32 0, i32 0 + %"$eq_tag_1503" = load i8, i8* %"$eq_tag_1502", align 1 + switch i8 %"$eq_tag_1503", label %"$empty_default_1504" [ + i8 0, label %"$True_1505" + i8 1, label %"$False_1507" + ], !dbg !326 + +"$True_1505": ; preds = %"$have_gas_1498" + %"$eq_1506" = bitcast %TName_Bool* %"$eq_1501" to %CName_True* + br label %"$matchsucc_1500" + +"$False_1507": ; preds = %"$have_gas_1498" + %"$eq_1508" = bitcast %TName_Bool* %"$eq_1501" to %CName_False* + %"$gasrem_1509" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1510" = icmp ugt i64 1, %"$gasrem_1509" + br i1 %"$gascmp_1510", label %"$out_of_gas_1511", label %"$have_gas_1512" + +"$out_of_gas_1511": ; preds = %"$False_1507" + call void @_out_of_gas() + br label %"$have_gas_1512" + +"$have_gas_1512": ; preds = %"$out_of_gas_1511", %"$False_1507" + %"$consume_1513" = sub i64 %"$gasrem_1509", 1 + store i64 %"$consume_1513", i64* @_gasrem, align 8 %m8 = alloca %String, align 8 - %"$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_1490": ; preds = %"$have_gas_1486" - call void @_out_of_gas() - br label %"$have_gas_1491" - -"$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 ([31 x i8], [31 x i8]* @"$stringlit_1493", i32 0, i32 0), i32 31 }, %String* %m8, align 8, !dbg !155 - %"$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_1496": ; preds = %"$have_gas_1491" - call void @_out_of_gas() - br label %"$have_gas_1497" - -"$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 - %"$fail_msg__origin_1499" = alloca [20 x i8], align 1 - store [20 x i8] %_origin, [20 x i8]* %"$fail_msg__origin_1499", align 1 - %"$fail_msg__sender_1500" = alloca [20 x i8], align 1 - store [20 x i8] %_sender, [20 x i8]* %"$fail_msg__sender_1500", align 1 - %"$tname_1501" = load %String, %String* %tname, align 8 - %"$m_1502" = load %String, %String* %m8, align 8 - call void @"$fail_msg_292"(%Uint128 %_amount, [20 x i8]* %"$fail_msg__origin_1499", [20 x i8]* %"$fail_msg__sender_1500", %String %"$tname_1501", %String %"$m_1502"), !dbg !158 - br label %"$matchsucc_1474" - -"$empty_default_1478": ; preds = %"$have_gas_1472" - br label %"$matchsucc_1474" - -"$matchsucc_1474": ; preds = %"$have_gas_1497", %"$True_1479", %"$empty_default_1478" - br label %"$matchsucc_1425" - -"$None_1503": ; preds = %"$have_gas_1423" - %"$$c1_2_1504" = bitcast %TName_Option_String* %"$$c1_2_1426" to %CName_None_String* - %"$gasrem_1505" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1506" = icmp ugt i64 1, %"$gasrem_1505" - br i1 %"$gascmp_1506", label %"$out_of_gas_1507", label %"$have_gas_1508" - -"$out_of_gas_1507": ; preds = %"$None_1503" - call void @_out_of_gas() - br label %"$have_gas_1508" - -"$have_gas_1508": ; preds = %"$out_of_gas_1507", %"$None_1503" - %"$consume_1509" = sub i64 %"$gasrem_1505", 1 - store i64 %"$consume_1509", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %String* %m8, metadata !327, metadata !DIExpression()), !dbg !330 + %"$gasrem_1514" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1515" = icmp ugt i64 1, %"$gasrem_1514" + br i1 %"$gascmp_1515", label %"$out_of_gas_1516", label %"$have_gas_1517" + +"$out_of_gas_1516": ; preds = %"$have_gas_1512" + call void @_out_of_gas() + br label %"$have_gas_1517" + +"$have_gas_1517": ; preds = %"$out_of_gas_1516", %"$have_gas_1512" + %"$consume_1518" = sub i64 %"$gasrem_1514", 1 + store i64 %"$consume_1518", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([31 x i8], [31 x i8]* @"$stringlit_1519", i32 0, i32 0), i32 31 }, %String* %m8, align 8, !dbg !331 + %"$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_1517" + call void @_out_of_gas() + br label %"$have_gas_1523" + +"$have_gas_1523": ; preds = %"$out_of_gas_1522", %"$have_gas_1517" + %"$consume_1524" = sub i64 %"$gasrem_1520", 1 + store i64 %"$consume_1524", i64* @_gasrem, align 8 + %"$fail_msg__origin_1525" = alloca [20 x i8], align 1 + store [20 x i8] %_origin, [20 x i8]* %"$fail_msg__origin_1525", align 1 + %"$fail_msg__sender_1526" = alloca [20 x i8], align 1 + store [20 x i8] %_sender, [20 x i8]* %"$fail_msg__sender_1526", align 1 + %"$tname_1527" = load %String, %String* %tname, align 8 + %"$m_1528" = load %String, %String* %m8, align 8 + call void @"$fail_msg_298"(%Uint128 %_amount, [20 x i8]* %"$fail_msg__origin_1525", [20 x i8]* %"$fail_msg__sender_1526", %String %"$tname_1527", %String %"$m_1528"), !dbg !332 + br label %"$matchsucc_1500" + +"$empty_default_1504": ; preds = %"$have_gas_1498" + br label %"$matchsucc_1500" + +"$matchsucc_1500": ; preds = %"$have_gas_1523", %"$True_1505", %"$empty_default_1504" + br label %"$matchsucc_1451" + +"$None_1529": ; preds = %"$have_gas_1449" + %"$$c1_2_1530" = bitcast %TName_Option_String* %"$$c1_2_1452" to %CName_None_String* + %"$gasrem_1531" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1532" = icmp ugt i64 1, %"$gasrem_1531" + br i1 %"$gascmp_1532", label %"$out_of_gas_1533", label %"$have_gas_1534" + +"$out_of_gas_1533": ; preds = %"$None_1529" + call void @_out_of_gas() + br label %"$have_gas_1534" + +"$have_gas_1534": ; preds = %"$out_of_gas_1533", %"$None_1529" + %"$consume_1535" = sub i64 %"$gasrem_1531", 1 + store i64 %"$consume_1535", i64* @_gasrem, align 8 %m9 = alloca %String, align 8 - %"$gasrem_1510" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1511" = icmp ugt i64 1, %"$gasrem_1510" - br i1 %"$gascmp_1511", label %"$out_of_gas_1512", label %"$have_gas_1513" - -"$out_of_gas_1512": ; preds = %"$have_gas_1508" - call void @_out_of_gas() - br label %"$have_gas_1513" - -"$have_gas_1513": ; preds = %"$out_of_gas_1512", %"$have_gas_1508" - %"$consume_1514" = sub i64 %"$gasrem_1510", 1 - store i64 %"$consume_1514", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([21 x i8], [21 x i8]* @"$stringlit_1515", i32 0, i32 0), i32 21 }, %String* %m9, align 8, !dbg !159 - %"$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_1513" - call void @_out_of_gas() - br label %"$have_gas_1519" - -"$have_gas_1519": ; preds = %"$out_of_gas_1518", %"$have_gas_1513" - %"$consume_1520" = sub i64 %"$gasrem_1516", 1 - store i64 %"$consume_1520", i64* @_gasrem, align 8 - %"$fail_msg__origin_1521" = alloca [20 x i8], align 1 - store [20 x i8] %_origin, [20 x i8]* %"$fail_msg__origin_1521", align 1 - %"$fail_msg__sender_1522" = alloca [20 x i8], align 1 - store [20 x i8] %_sender, [20 x i8]* %"$fail_msg__sender_1522", align 1 - %"$tname_1523" = load %String, %String* %tname, align 8 - %"$m_1524" = load %String, %String* %m9, align 8 - call void @"$fail_msg_292"(%Uint128 %_amount, [20 x i8]* %"$fail_msg__origin_1521", [20 x i8]* %"$fail_msg__sender_1522", %String %"$tname_1523", %String %"$m_1524"), !dbg !161 - br label %"$matchsucc_1425" - -"$empty_default_1429": ; preds = %"$have_gas_1423" - br label %"$matchsucc_1425" - -"$matchsucc_1425": ; preds = %"$have_gas_1519", %"$matchsucc_1474", %"$empty_default_1429" - %"$gasrem_1525" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1526" = icmp ugt i64 1, %"$gasrem_1525" - br i1 %"$gascmp_1526", label %"$out_of_gas_1527", label %"$have_gas_1528" + call void @llvm.dbg.declare(metadata %String* %m9, metadata !333, metadata !DIExpression()), !dbg !335 + %"$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_1527": ; preds = %"$matchsucc_1425" +"$out_of_gas_1538": ; preds = %"$have_gas_1534" call void @_out_of_gas() - br label %"$have_gas_1528" + br label %"$have_gas_1539" -"$have_gas_1528": ; preds = %"$out_of_gas_1527", %"$matchsucc_1425" - %"$consume_1529" = sub i64 %"$gasrem_1525", 1 - store i64 %"$consume_1529", i64* @_gasrem, align 8 +"$have_gas_1539": ; preds = %"$out_of_gas_1538", %"$have_gas_1534" + %"$consume_1540" = sub i64 %"$gasrem_1536", 1 + store i64 %"$consume_1540", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([21 x i8], [21 x i8]* @"$stringlit_1541", i32 0, i32 0), i32 21 }, %String* %m9, align 8, !dbg !336 + %"$gasrem_1542" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1543" = icmp ugt i64 1, %"$gasrem_1542" + br i1 %"$gascmp_1543", label %"$out_of_gas_1544", label %"$have_gas_1545" + +"$out_of_gas_1544": ; preds = %"$have_gas_1539" + call void @_out_of_gas() + br label %"$have_gas_1545" + +"$have_gas_1545": ; preds = %"$out_of_gas_1544", %"$have_gas_1539" + %"$consume_1546" = sub i64 %"$gasrem_1542", 1 + store i64 %"$consume_1546", i64* @_gasrem, align 8 + %"$fail_msg__origin_1547" = alloca [20 x i8], align 1 + store [20 x i8] %_origin, [20 x i8]* %"$fail_msg__origin_1547", align 1 + %"$fail_msg__sender_1548" = alloca [20 x i8], align 1 + store [20 x i8] %_sender, [20 x i8]* %"$fail_msg__sender_1548", align 1 + %"$tname_1549" = load %String, %String* %tname, align 8 + %"$m_1550" = load %String, %String* %m9, align 8 + call void @"$fail_msg_298"(%Uint128 %_amount, [20 x i8]* %"$fail_msg__origin_1547", [20 x i8]* %"$fail_msg__sender_1548", %String %"$tname_1549", %String %"$m_1550"), !dbg !337 + br label %"$matchsucc_1451" + +"$empty_default_1455": ; preds = %"$have_gas_1449" + br label %"$matchsucc_1451" + +"$matchsucc_1451": ; preds = %"$have_gas_1545", %"$matchsucc_1500", %"$empty_default_1455" + %"$gasrem_1551" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1552" = icmp ugt i64 1, %"$gasrem_1551" + br i1 %"$gascmp_1552", label %"$out_of_gas_1553", label %"$have_gas_1554" + +"$out_of_gas_1553": ; preds = %"$matchsucc_1451" + call void @_out_of_gas() + br label %"$have_gas_1554" + +"$have_gas_1554": ; preds = %"$out_of_gas_1553", %"$matchsucc_1451" + %"$consume_1555" = sub i64 %"$gasrem_1551", 1 + store i64 %"$consume_1555", i64* @_gasrem, align 8 %"$key1b_3" = alloca %String, align 8 - %"$gasrem_1530" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1531" = icmp ugt i64 1, %"$gasrem_1530" - br i1 %"$gascmp_1531", label %"$out_of_gas_1532", label %"$have_gas_1533" + call void @llvm.dbg.declare(metadata %String* %"$key1b_3", metadata !338, metadata !DIExpression()), !dbg !339 + %"$gasrem_1556" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1557" = icmp ugt i64 1, %"$gasrem_1556" + br i1 %"$gascmp_1557", label %"$out_of_gas_1558", label %"$have_gas_1559" -"$out_of_gas_1532": ; preds = %"$have_gas_1528" +"$out_of_gas_1558": ; preds = %"$have_gas_1554" call void @_out_of_gas() - br label %"$have_gas_1533" + br label %"$have_gas_1559" -"$have_gas_1533": ; preds = %"$out_of_gas_1532", %"$have_gas_1528" - %"$consume_1534" = sub i64 %"$gasrem_1530", 1 - store i64 %"$consume_1534", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_1535", i32 0, i32 0), i32 5 }, %String* %"$key1b_3", align 8, !dbg !162 - %"$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" +"$have_gas_1559": ; preds = %"$out_of_gas_1558", %"$have_gas_1554" + %"$consume_1560" = sub i64 %"$gasrem_1556", 1 + store i64 %"$consume_1560", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_1561", i32 0, i32 0), i32 5 }, %String* %"$key1b_3", align 8, !dbg !340 + %"$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_1538": ; preds = %"$have_gas_1533" +"$out_of_gas_1564": ; preds = %"$have_gas_1559" call void @_out_of_gas() - br label %"$have_gas_1539" + br label %"$have_gas_1565" -"$have_gas_1539": ; preds = %"$out_of_gas_1538", %"$have_gas_1533" - %"$consume_1540" = sub i64 %"$gasrem_1536", 1 - store i64 %"$consume_1540", i64* @_gasrem, align 8 +"$have_gas_1565": ; preds = %"$out_of_gas_1564", %"$have_gas_1559" + %"$consume_1566" = sub i64 %"$gasrem_1562", 1 + store i64 %"$consume_1566", i64* @_gasrem, align 8 %key2c = alloca %String, align 8 - %"$gasrem_1541" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1542" = icmp ugt i64 1, %"$gasrem_1541" - br i1 %"$gascmp_1542", label %"$out_of_gas_1543", label %"$have_gas_1544" + call void @llvm.dbg.declare(metadata %String* %key2c, metadata !341, metadata !DIExpression()), !dbg !342 + %"$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_1543": ; preds = %"$have_gas_1539" +"$out_of_gas_1569": ; preds = %"$have_gas_1565" call void @_out_of_gas() - br label %"$have_gas_1544" + br label %"$have_gas_1570" -"$have_gas_1544": ; preds = %"$out_of_gas_1543", %"$have_gas_1539" - %"$consume_1545" = sub i64 %"$gasrem_1541", 1 - store i64 %"$consume_1545", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_1546", i32 0, i32 0), i32 5 }, %String* %key2c, align 8, !dbg !163 +"$have_gas_1570": ; preds = %"$out_of_gas_1569", %"$have_gas_1565" + %"$consume_1571" = sub i64 %"$gasrem_1567", 1 + store i64 %"$consume_1571", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_1572", i32 0, i32 0), i32 5 }, %String* %key2c, align 8, !dbg !343 %"$c1_4" = alloca %TName_Option_String*, align 8 - %"$indices_buf_1547_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$indices_buf_1547_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_1547_salloc_load", i64 32) - %"$indices_buf_1547_salloc" = bitcast i8* %"$indices_buf_1547_salloc_salloc" to [32 x i8]* - %"$indices_buf_1547" = bitcast [32 x i8]* %"$indices_buf_1547_salloc" to i8* - %"$$key1b_3_1548" = load %String, %String* %"$key1b_3", align 8 - %"$indices_gep_1549" = getelementptr i8, i8* %"$indices_buf_1547", i32 0 - %indices_cast10 = bitcast i8* %"$indices_gep_1549" to %String* - store %String %"$$key1b_3_1548", %String* %indices_cast10, align 8 - %"$key2c_1550" = load %String, %String* %key2c, align 8 - %"$indices_gep_1551" = getelementptr i8, i8* %"$indices_buf_1547", i32 16 - %indices_cast11 = bitcast i8* %"$indices_gep_1551" to %String* - store %String %"$key2c_1550", %String* %indices_cast11, align 8 - %"$execptr_load_1553" = load i8*, i8** @_execptr, align 8 - %"$$c1_4_call_1554" = call i8* @_fetch_field(i8* %"$execptr_load_1553", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m2_1552", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_76", i32 2, i8* %"$indices_buf_1547", i32 1), !dbg !164 - %"$$c1_4_1555" = bitcast i8* %"$$c1_4_call_1554" to %TName_Option_String* - store %TName_Option_String* %"$$c1_4_1555", %TName_Option_String** %"$c1_4", align 8 - %"$$c1_4_1556" = load %TName_Option_String*, %TName_Option_String** %"$c1_4", align 8 - %"$$$c1_4_1556_1557" = bitcast %TName_Option_String* %"$$c1_4_1556" to i8* - %"$_literal_cost_call_1558" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_String_72", i8* %"$$$c1_4_1556_1557") - %"$gasadd_1559" = add i64 %"$_literal_cost_call_1558", 0 - %"$gasadd_1560" = add i64 %"$gasadd_1559", 2 - %"$gasrem_1561" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1562" = icmp ugt i64 %"$gasadd_1560", %"$gasrem_1561" - br i1 %"$gascmp_1562", label %"$out_of_gas_1563", label %"$have_gas_1564" - -"$out_of_gas_1563": ; preds = %"$have_gas_1544" - call void @_out_of_gas() - br label %"$have_gas_1564" - -"$have_gas_1564": ; preds = %"$out_of_gas_1563", %"$have_gas_1544" - %"$consume_1565" = sub i64 %"$gasrem_1561", %"$gasadd_1560" - store i64 %"$consume_1565", i64* @_gasrem, align 8 - %"$gasrem_1566" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1567" = icmp ugt i64 2, %"$gasrem_1566" - br i1 %"$gascmp_1567", label %"$out_of_gas_1568", label %"$have_gas_1569" - -"$out_of_gas_1568": ; preds = %"$have_gas_1564" - call void @_out_of_gas() - br label %"$have_gas_1569" - -"$have_gas_1569": ; preds = %"$out_of_gas_1568", %"$have_gas_1564" - %"$consume_1570" = sub i64 %"$gasrem_1566", 2 - store i64 %"$consume_1570", i64* @_gasrem, align 8 - %"$$c1_4_1572" = load %TName_Option_String*, %TName_Option_String** %"$c1_4", align 8 - %"$$c1_4_tag_1573" = getelementptr inbounds %TName_Option_String, %TName_Option_String* %"$$c1_4_1572", i32 0, i32 0 - %"$$c1_4_tag_1574" = load i8, i8* %"$$c1_4_tag_1573", align 1 - switch i8 %"$$c1_4_tag_1574", label %"$empty_default_1575" [ - i8 0, label %"$Some_1576" - i8 1, label %"$None_1649" - ], !dbg !165 - -"$Some_1576": ; preds = %"$have_gas_1569" - %"$$c1_4_1577" = bitcast %TName_Option_String* %"$$c1_4_1572" to %CName_Some_String* - %"$c_gep_1578" = getelementptr inbounds %CName_Some_String, %CName_Some_String* %"$$c1_4_1577", i32 0, i32 1 - %"$c_load_1579" = load %String, %String* %"$c_gep_1578", align 8 + call void @llvm.dbg.declare(metadata %TName_Option_String** %"$c1_4", metadata !344, metadata !DIExpression()), !dbg !345 + %"$indices_buf_1573_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$indices_buf_1573_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_1573_salloc_load", i64 32) + %"$indices_buf_1573_salloc" = bitcast i8* %"$indices_buf_1573_salloc_salloc" to [32 x i8]* + %"$indices_buf_1573" = bitcast [32 x i8]* %"$indices_buf_1573_salloc" to i8* + %"$$key1b_3_1574" = load %String, %String* %"$key1b_3", align 8 + %"$indices_gep_1575" = getelementptr i8, i8* %"$indices_buf_1573", i32 0 + %indices_cast10 = bitcast i8* %"$indices_gep_1575" to %String* + store %String %"$$key1b_3_1574", %String* %indices_cast10, align 8 + %"$key2c_1576" = load %String, %String* %key2c, align 8 + %"$indices_gep_1577" = getelementptr i8, i8* %"$indices_buf_1573", i32 16 + %indices_cast11 = bitcast i8* %"$indices_gep_1577" to %String* + store %String %"$key2c_1576", %String* %indices_cast11, align 8 + %"$execptr_load_1579" = load i8*, i8** @_execptr, align 8 + %"$$c1_4_call_1580" = call i8* @_fetch_field(i8* %"$execptr_load_1579", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m2_1578", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_76", i32 2, i8* %"$indices_buf_1573", i32 1), !dbg !345 + %"$$c1_4_1581" = bitcast i8* %"$$c1_4_call_1580" to %TName_Option_String* + store %TName_Option_String* %"$$c1_4_1581", %TName_Option_String** %"$c1_4", align 8 + %"$$c1_4_1582" = load %TName_Option_String*, %TName_Option_String** %"$c1_4", align 8 + %"$$$c1_4_1582_1583" = bitcast %TName_Option_String* %"$$c1_4_1582" to i8* + %"$_literal_cost_call_1584" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_String_72", i8* %"$$$c1_4_1582_1583") + %"$gasadd_1585" = add i64 %"$_literal_cost_call_1584", 0 + %"$gasadd_1586" = add i64 %"$gasadd_1585", 2 + %"$gasrem_1587" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1588" = icmp ugt i64 %"$gasadd_1586", %"$gasrem_1587" + br i1 %"$gascmp_1588", label %"$out_of_gas_1589", label %"$have_gas_1590" + +"$out_of_gas_1589": ; preds = %"$have_gas_1570" + call void @_out_of_gas() + br label %"$have_gas_1590" + +"$have_gas_1590": ; preds = %"$out_of_gas_1589", %"$have_gas_1570" + %"$consume_1591" = sub i64 %"$gasrem_1587", %"$gasadd_1586" + store i64 %"$consume_1591", i64* @_gasrem, align 8 + %"$gasrem_1592" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1593" = icmp ugt i64 2, %"$gasrem_1592" + br i1 %"$gascmp_1593", label %"$out_of_gas_1594", label %"$have_gas_1595" + +"$out_of_gas_1594": ; preds = %"$have_gas_1590" + call void @_out_of_gas() + br label %"$have_gas_1595" + +"$have_gas_1595": ; preds = %"$out_of_gas_1594", %"$have_gas_1590" + %"$consume_1596" = sub i64 %"$gasrem_1592", 2 + store i64 %"$consume_1596", i64* @_gasrem, align 8 + %"$$c1_4_1598" = load %TName_Option_String*, %TName_Option_String** %"$c1_4", align 8 + %"$$c1_4_tag_1599" = getelementptr inbounds %TName_Option_String, %TName_Option_String* %"$$c1_4_1598", i32 0, i32 0 + %"$$c1_4_tag_1600" = load i8, i8* %"$$c1_4_tag_1599", align 1 + switch i8 %"$$c1_4_tag_1600", label %"$empty_default_1601" [ + i8 0, label %"$Some_1602" + i8 1, label %"$None_1675" + ], !dbg !346 + +"$Some_1602": ; preds = %"$have_gas_1595" + %"$$c1_4_1603" = bitcast %TName_Option_String* %"$$c1_4_1598" to %CName_Some_String* + %"$c_gep_1604" = getelementptr inbounds %CName_Some_String, %CName_Some_String* %"$$c1_4_1603", i32 0, i32 1 + %"$c_load_1605" = load %String, %String* %"$c_gep_1604", align 8 %c12 = alloca %String, align 8 - store %String %"$c_load_1579", %String* %c12, align 8 - %"$gasrem_1580" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1581" = icmp ugt i64 1, %"$gasrem_1580" - br i1 %"$gascmp_1581", label %"$out_of_gas_1582", label %"$have_gas_1583" + store %String %"$c_load_1605", %String* %c12, align 8 + %"$gasrem_1606" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1607" = icmp ugt i64 1, %"$gasrem_1606" + br i1 %"$gascmp_1607", label %"$out_of_gas_1608", label %"$have_gas_1609" -"$out_of_gas_1582": ; preds = %"$Some_1576" +"$out_of_gas_1608": ; preds = %"$Some_1602" call void @_out_of_gas() - br label %"$have_gas_1583" + br label %"$have_gas_1609" -"$have_gas_1583": ; preds = %"$out_of_gas_1582", %"$Some_1576" - %"$consume_1584" = sub i64 %"$gasrem_1580", 1 - store i64 %"$consume_1584", i64* @_gasrem, align 8 +"$have_gas_1609": ; preds = %"$out_of_gas_1608", %"$Some_1602" + %"$consume_1610" = sub i64 %"$gasrem_1606", 1 + store i64 %"$consume_1610", i64* @_gasrem, align 8 %v13 = alloca %String, align 8 - %"$gasrem_1585" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1586" = icmp ugt i64 1, %"$gasrem_1585" - br i1 %"$gascmp_1586", label %"$out_of_gas_1587", label %"$have_gas_1588" + call void @llvm.dbg.declare(metadata %String* %v13, metadata !347, metadata !DIExpression()), !dbg !350 + %"$gasrem_1611" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1612" = icmp ugt i64 1, %"$gasrem_1611" + br i1 %"$gascmp_1612", label %"$out_of_gas_1613", label %"$have_gas_1614" -"$out_of_gas_1587": ; preds = %"$have_gas_1583" +"$out_of_gas_1613": ; preds = %"$have_gas_1609" call void @_out_of_gas() - br label %"$have_gas_1588" + br label %"$have_gas_1614" -"$have_gas_1588": ; preds = %"$out_of_gas_1587", %"$have_gas_1583" - %"$consume_1589" = sub i64 %"$gasrem_1585", 1 - store i64 %"$consume_1589", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_1590", i32 0, i32 0), i32 3 }, %String* %v13, align 8, !dbg !166 - %"$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" +"$have_gas_1614": ; preds = %"$out_of_gas_1613", %"$have_gas_1609" + %"$consume_1615" = sub i64 %"$gasrem_1611", 1 + store i64 %"$consume_1615", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_1616", i32 0, i32 0), i32 3 }, %String* %v13, align 8, !dbg !351 + %"$gasrem_1617" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1618" = icmp ugt i64 1, %"$gasrem_1617" + br i1 %"$gascmp_1618", label %"$out_of_gas_1619", label %"$have_gas_1620" -"$out_of_gas_1593": ; preds = %"$have_gas_1588" +"$out_of_gas_1619": ; preds = %"$have_gas_1614" call void @_out_of_gas() - br label %"$have_gas_1594" + br label %"$have_gas_1620" -"$have_gas_1594": ; preds = %"$out_of_gas_1593", %"$have_gas_1588" - %"$consume_1595" = sub i64 %"$gasrem_1591", 1 - store i64 %"$consume_1595", i64* @_gasrem, align 8 +"$have_gas_1620": ; preds = %"$out_of_gas_1619", %"$have_gas_1614" + %"$consume_1621" = sub i64 %"$gasrem_1617", 1 + store i64 %"$consume_1621", i64* @_gasrem, align 8 %eq14 = alloca %TName_Bool*, align 8 - %"$_literal_cost_c_1596" = alloca %String, align 8 - %"$c_1597" = load %String, %String* %c12, align 8 - store %String %"$c_1597", %String* %"$_literal_cost_c_1596", align 8 - %"$$_literal_cost_c_1596_1598" = bitcast %String* %"$_literal_cost_c_1596" to i8* - %"$_literal_cost_call_1599" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_52", i8* %"$$_literal_cost_c_1596_1598") - %"$_literal_cost_v_1600" = alloca %String, align 8 - %"$v_1601" = load %String, %String* %v13, align 8 - store %String %"$v_1601", %String* %"$_literal_cost_v_1600", align 8 - %"$$_literal_cost_v_1600_1602" = bitcast %String* %"$_literal_cost_v_1600" to i8* - %"$_literal_cost_call_1603" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_52", i8* %"$$_literal_cost_v_1600_1602") - %"$gasmin_1604" = call i64 @llvm.umin.i64(i64 %"$_literal_cost_call_1599", i64 %"$_literal_cost_call_1603") - %"$gasrem_1605" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1606" = icmp ugt i64 %"$gasmin_1604", %"$gasrem_1605" - br i1 %"$gascmp_1606", label %"$out_of_gas_1607", label %"$have_gas_1608" - -"$out_of_gas_1607": ; preds = %"$have_gas_1594" - call void @_out_of_gas() - br label %"$have_gas_1608" - -"$have_gas_1608": ; preds = %"$out_of_gas_1607", %"$have_gas_1594" - %"$consume_1609" = sub i64 %"$gasrem_1605", %"$gasmin_1604" - store i64 %"$consume_1609", i64* @_gasrem, align 8 - %"$execptr_load_1610" = load i8*, i8** @_execptr, align 8 - %"$c_1611" = load %String, %String* %c12, align 8 - %"$v_1612" = load %String, %String* %v13, align 8 - %"$eq_call_1613" = call %TName_Bool* @_eq_String(i8* %"$execptr_load_1610", %String %"$c_1611", %String %"$v_1612"), !dbg !169 - store %TName_Bool* %"$eq_call_1613", %TName_Bool** %eq14, align 8, !dbg !169 - %"$gasrem_1615" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1616" = icmp ugt i64 2, %"$gasrem_1615" - br i1 %"$gascmp_1616", label %"$out_of_gas_1617", label %"$have_gas_1618" - -"$out_of_gas_1617": ; preds = %"$have_gas_1608" - call void @_out_of_gas() - br label %"$have_gas_1618" - -"$have_gas_1618": ; preds = %"$out_of_gas_1617", %"$have_gas_1608" - %"$consume_1619" = sub i64 %"$gasrem_1615", 2 - store i64 %"$consume_1619", i64* @_gasrem, align 8 - %"$eq_1621" = load %TName_Bool*, %TName_Bool** %eq14, align 8 - %"$eq_tag_1622" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$eq_1621", i32 0, i32 0 - %"$eq_tag_1623" = load i8, i8* %"$eq_tag_1622", align 1 - switch i8 %"$eq_tag_1623", label %"$empty_default_1624" [ - i8 0, label %"$True_1625" - i8 1, label %"$False_1627" - ], !dbg !170 - -"$True_1625": ; preds = %"$have_gas_1618" - %"$eq_1626" = bitcast %TName_Bool* %"$eq_1621" to %CName_True* - br label %"$matchsucc_1620" - -"$False_1627": ; preds = %"$have_gas_1618" - %"$eq_1628" = bitcast %TName_Bool* %"$eq_1621" to %CName_False* - %"$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 = %"$False_1627" - call void @_out_of_gas() - br label %"$have_gas_1632" - -"$have_gas_1632": ; preds = %"$out_of_gas_1631", %"$False_1627" - %"$consume_1633" = sub i64 %"$gasrem_1629", 1 - store i64 %"$consume_1633", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %eq14, metadata !352, metadata !DIExpression()), !dbg !353 + %"$_literal_cost_c_1622" = alloca %String, align 8 + %"$c_1623" = load %String, %String* %c12, align 8 + store %String %"$c_1623", %String* %"$_literal_cost_c_1622", align 8 + %"$$_literal_cost_c_1622_1624" = bitcast %String* %"$_literal_cost_c_1622" to i8* + %"$_literal_cost_call_1625" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_52", i8* %"$$_literal_cost_c_1622_1624") + %"$_literal_cost_v_1626" = alloca %String, align 8 + %"$v_1627" = load %String, %String* %v13, align 8 + store %String %"$v_1627", %String* %"$_literal_cost_v_1626", align 8 + %"$$_literal_cost_v_1626_1628" = bitcast %String* %"$_literal_cost_v_1626" to i8* + %"$_literal_cost_call_1629" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_52", i8* %"$$_literal_cost_v_1626_1628") + %"$gasmin_1630" = call i64 @llvm.umin.i64(i64 %"$_literal_cost_call_1625", i64 %"$_literal_cost_call_1629") + %"$gasrem_1631" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1632" = icmp ugt i64 %"$gasmin_1630", %"$gasrem_1631" + br i1 %"$gascmp_1632", label %"$out_of_gas_1633", label %"$have_gas_1634" + +"$out_of_gas_1633": ; preds = %"$have_gas_1620" + call void @_out_of_gas() + br label %"$have_gas_1634" + +"$have_gas_1634": ; preds = %"$out_of_gas_1633", %"$have_gas_1620" + %"$consume_1635" = sub i64 %"$gasrem_1631", %"$gasmin_1630" + store i64 %"$consume_1635", i64* @_gasrem, align 8 + %"$execptr_load_1636" = load i8*, i8** @_execptr, align 8 + %"$c_1637" = load %String, %String* %c12, align 8 + %"$v_1638" = load %String, %String* %v13, align 8 + %"$eq_call_1639" = call %TName_Bool* @_eq_String(i8* %"$execptr_load_1636", %String %"$c_1637", %String %"$v_1638"), !dbg !354 + store %TName_Bool* %"$eq_call_1639", %TName_Bool** %eq14, align 8, !dbg !354 + %"$gasrem_1641" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1642" = icmp ugt i64 2, %"$gasrem_1641" + br i1 %"$gascmp_1642", label %"$out_of_gas_1643", label %"$have_gas_1644" + +"$out_of_gas_1643": ; preds = %"$have_gas_1634" + call void @_out_of_gas() + br label %"$have_gas_1644" + +"$have_gas_1644": ; preds = %"$out_of_gas_1643", %"$have_gas_1634" + %"$consume_1645" = sub i64 %"$gasrem_1641", 2 + store i64 %"$consume_1645", i64* @_gasrem, align 8 + %"$eq_1647" = load %TName_Bool*, %TName_Bool** %eq14, align 8 + %"$eq_tag_1648" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$eq_1647", i32 0, i32 0 + %"$eq_tag_1649" = load i8, i8* %"$eq_tag_1648", align 1 + switch i8 %"$eq_tag_1649", label %"$empty_default_1650" [ + i8 0, label %"$True_1651" + i8 1, label %"$False_1653" + ], !dbg !355 + +"$True_1651": ; preds = %"$have_gas_1644" + %"$eq_1652" = bitcast %TName_Bool* %"$eq_1647" to %CName_True* + br label %"$matchsucc_1646" + +"$False_1653": ; preds = %"$have_gas_1644" + %"$eq_1654" = bitcast %TName_Bool* %"$eq_1647" to %CName_False* + %"$gasrem_1655" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1656" = icmp ugt i64 1, %"$gasrem_1655" + br i1 %"$gascmp_1656", label %"$out_of_gas_1657", label %"$have_gas_1658" + +"$out_of_gas_1657": ; preds = %"$False_1653" + call void @_out_of_gas() + br label %"$have_gas_1658" + +"$have_gas_1658": ; preds = %"$out_of_gas_1657", %"$False_1653" + %"$consume_1659" = sub i64 %"$gasrem_1655", 1 + store i64 %"$consume_1659", i64* @_gasrem, align 8 %m15 = alloca %String, align 8 - %"$gasrem_1634" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1635" = icmp ugt i64 1, %"$gasrem_1634" - br i1 %"$gascmp_1635", label %"$out_of_gas_1636", label %"$have_gas_1637" - -"$out_of_gas_1636": ; preds = %"$have_gas_1632" - call void @_out_of_gas() - br label %"$have_gas_1637" - -"$have_gas_1637": ; preds = %"$out_of_gas_1636", %"$have_gas_1632" - %"$consume_1638" = sub i64 %"$gasrem_1634", 1 - store i64 %"$consume_1638", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([31 x i8], [31 x i8]* @"$stringlit_1639", i32 0, i32 0), i32 31 }, %String* %m15, align 8, !dbg !171 - %"$gasrem_1640" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1641" = icmp ugt i64 1, %"$gasrem_1640" - br i1 %"$gascmp_1641", label %"$out_of_gas_1642", label %"$have_gas_1643" - -"$out_of_gas_1642": ; preds = %"$have_gas_1637" - call void @_out_of_gas() - br label %"$have_gas_1643" - -"$have_gas_1643": ; preds = %"$out_of_gas_1642", %"$have_gas_1637" - %"$consume_1644" = sub i64 %"$gasrem_1640", 1 - store i64 %"$consume_1644", i64* @_gasrem, align 8 - %"$fail_msg__origin_1645" = alloca [20 x i8], align 1 - store [20 x i8] %_origin, [20 x i8]* %"$fail_msg__origin_1645", align 1 - %"$fail_msg__sender_1646" = alloca [20 x i8], align 1 - store [20 x i8] %_sender, [20 x i8]* %"$fail_msg__sender_1646", align 1 - %"$tname_1647" = load %String, %String* %tname, align 8 - %"$m_1648" = load %String, %String* %m15, align 8 - call void @"$fail_msg_292"(%Uint128 %_amount, [20 x i8]* %"$fail_msg__origin_1645", [20 x i8]* %"$fail_msg__sender_1646", %String %"$tname_1647", %String %"$m_1648"), !dbg !174 - br label %"$matchsucc_1620" - -"$empty_default_1624": ; preds = %"$have_gas_1618" - br label %"$matchsucc_1620" - -"$matchsucc_1620": ; preds = %"$have_gas_1643", %"$True_1625", %"$empty_default_1624" - br label %"$matchsucc_1571" - -"$None_1649": ; preds = %"$have_gas_1569" - %"$$c1_4_1650" = bitcast %TName_Option_String* %"$$c1_4_1572" to %CName_None_String* - %"$gasrem_1651" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1652" = icmp ugt i64 1, %"$gasrem_1651" - br i1 %"$gascmp_1652", label %"$out_of_gas_1653", label %"$have_gas_1654" - -"$out_of_gas_1653": ; preds = %"$None_1649" - call void @_out_of_gas() - br label %"$have_gas_1654" - -"$have_gas_1654": ; preds = %"$out_of_gas_1653", %"$None_1649" - %"$consume_1655" = sub i64 %"$gasrem_1651", 1 - store i64 %"$consume_1655", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %String* %m15, metadata !356, metadata !DIExpression()), !dbg !359 + %"$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_1662": ; preds = %"$have_gas_1658" + call void @_out_of_gas() + br label %"$have_gas_1663" + +"$have_gas_1663": ; preds = %"$out_of_gas_1662", %"$have_gas_1658" + %"$consume_1664" = sub i64 %"$gasrem_1660", 1 + store i64 %"$consume_1664", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([31 x i8], [31 x i8]* @"$stringlit_1665", i32 0, i32 0), i32 31 }, %String* %m15, align 8, !dbg !360 + %"$gasrem_1666" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1667" = icmp ugt i64 1, %"$gasrem_1666" + br i1 %"$gascmp_1667", label %"$out_of_gas_1668", label %"$have_gas_1669" + +"$out_of_gas_1668": ; preds = %"$have_gas_1663" + call void @_out_of_gas() + br label %"$have_gas_1669" + +"$have_gas_1669": ; preds = %"$out_of_gas_1668", %"$have_gas_1663" + %"$consume_1670" = sub i64 %"$gasrem_1666", 1 + store i64 %"$consume_1670", i64* @_gasrem, align 8 + %"$fail_msg__origin_1671" = alloca [20 x i8], align 1 + store [20 x i8] %_origin, [20 x i8]* %"$fail_msg__origin_1671", align 1 + %"$fail_msg__sender_1672" = alloca [20 x i8], align 1 + store [20 x i8] %_sender, [20 x i8]* %"$fail_msg__sender_1672", align 1 + %"$tname_1673" = load %String, %String* %tname, align 8 + %"$m_1674" = load %String, %String* %m15, align 8 + call void @"$fail_msg_298"(%Uint128 %_amount, [20 x i8]* %"$fail_msg__origin_1671", [20 x i8]* %"$fail_msg__sender_1672", %String %"$tname_1673", %String %"$m_1674"), !dbg !361 + br label %"$matchsucc_1646" + +"$empty_default_1650": ; preds = %"$have_gas_1644" + br label %"$matchsucc_1646" + +"$matchsucc_1646": ; preds = %"$have_gas_1669", %"$True_1651", %"$empty_default_1650" + br label %"$matchsucc_1597" + +"$None_1675": ; preds = %"$have_gas_1595" + %"$$c1_4_1676" = bitcast %TName_Option_String* %"$$c1_4_1598" to %CName_None_String* + %"$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" + +"$out_of_gas_1679": ; preds = %"$None_1675" + call void @_out_of_gas() + br label %"$have_gas_1680" + +"$have_gas_1680": ; preds = %"$out_of_gas_1679", %"$None_1675" + %"$consume_1681" = sub i64 %"$gasrem_1677", 1 + store i64 %"$consume_1681", i64* @_gasrem, align 8 %m16 = alloca %String, align 8 - %"$gasrem_1656" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1657" = icmp ugt i64 1, %"$gasrem_1656" - br i1 %"$gascmp_1657", label %"$out_of_gas_1658", label %"$have_gas_1659" - -"$out_of_gas_1658": ; preds = %"$have_gas_1654" - call void @_out_of_gas() - br label %"$have_gas_1659" - -"$have_gas_1659": ; preds = %"$out_of_gas_1658", %"$have_gas_1654" - %"$consume_1660" = sub i64 %"$gasrem_1656", 1 - store i64 %"$consume_1660", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([21 x i8], [21 x i8]* @"$stringlit_1661", i32 0, i32 0), i32 21 }, %String* %m16, align 8, !dbg !175 - %"$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 = %"$have_gas_1659" - call void @_out_of_gas() - br label %"$have_gas_1665" - -"$have_gas_1665": ; preds = %"$out_of_gas_1664", %"$have_gas_1659" - %"$consume_1666" = sub i64 %"$gasrem_1662", 1 - store i64 %"$consume_1666", i64* @_gasrem, align 8 - %"$fail_msg__origin_1667" = alloca [20 x i8], align 1 - store [20 x i8] %_origin, [20 x i8]* %"$fail_msg__origin_1667", align 1 - %"$fail_msg__sender_1668" = alloca [20 x i8], align 1 - store [20 x i8] %_sender, [20 x i8]* %"$fail_msg__sender_1668", align 1 - %"$tname_1669" = load %String, %String* %tname, align 8 - %"$m_1670" = load %String, %String* %m16, align 8 - call void @"$fail_msg_292"(%Uint128 %_amount, [20 x i8]* %"$fail_msg__origin_1667", [20 x i8]* %"$fail_msg__sender_1668", %String %"$tname_1669", %String %"$m_1670"), !dbg !177 - br label %"$matchsucc_1571" - -"$empty_default_1575": ; preds = %"$have_gas_1569" - br label %"$matchsucc_1571" - -"$matchsucc_1571": ; preds = %"$have_gas_1665", %"$matchsucc_1620", %"$empty_default_1575" - %"$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_1673": ; preds = %"$matchsucc_1571" - call void @_out_of_gas() - br label %"$have_gas_1674" - -"$have_gas_1674": ; preds = %"$out_of_gas_1673", %"$matchsucc_1571" - %"$consume_1675" = sub i64 %"$gasrem_1671", 1 - store i64 %"$consume_1675", i64* @_gasrem, align 8 - %"$indices_buf_1676_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$indices_buf_1676_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_1676_salloc_load", i64 16) - %"$indices_buf_1676_salloc" = bitcast i8* %"$indices_buf_1676_salloc_salloc" to [16 x i8]* - %"$indices_buf_1676" = bitcast [16 x i8]* %"$indices_buf_1676_salloc" to i8* - %"$$key1b_3_1677" = load %String, %String* %"$key1b_3", align 8 - %"$indices_gep_1678" = getelementptr i8, i8* %"$indices_buf_1676", i32 0 - %indices_cast17 = bitcast i8* %"$indices_gep_1678" to %String* - store %String %"$$key1b_3_1677", %String* %indices_cast17, align 8 - %"$execptr_load_1679" = load i8*, i8** @_execptr, align 8 - call void @_update_field(i8* %"$execptr_load_1679", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m2_1680", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_76", i32 1, i8* %"$indices_buf_1676", i8* null), !dbg !178 + call void @llvm.dbg.declare(metadata %String* %m16, metadata !362, metadata !DIExpression()), !dbg !364 + %"$gasrem_1682" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1683" = icmp ugt i64 1, %"$gasrem_1682" + br i1 %"$gascmp_1683", label %"$out_of_gas_1684", label %"$have_gas_1685" + +"$out_of_gas_1684": ; preds = %"$have_gas_1680" + call void @_out_of_gas() + br label %"$have_gas_1685" + +"$have_gas_1685": ; preds = %"$out_of_gas_1684", %"$have_gas_1680" + %"$consume_1686" = sub i64 %"$gasrem_1682", 1 + store i64 %"$consume_1686", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([21 x i8], [21 x i8]* @"$stringlit_1687", i32 0, i32 0), i32 21 }, %String* %m16, align 8, !dbg !365 + %"$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_1685" + call void @_out_of_gas() + br label %"$have_gas_1691" + +"$have_gas_1691": ; preds = %"$out_of_gas_1690", %"$have_gas_1685" + %"$consume_1692" = sub i64 %"$gasrem_1688", 1 + store i64 %"$consume_1692", i64* @_gasrem, align 8 + %"$fail_msg__origin_1693" = alloca [20 x i8], align 1 + store [20 x i8] %_origin, [20 x i8]* %"$fail_msg__origin_1693", align 1 + %"$fail_msg__sender_1694" = alloca [20 x i8], align 1 + store [20 x i8] %_sender, [20 x i8]* %"$fail_msg__sender_1694", align 1 + %"$tname_1695" = load %String, %String* %tname, align 8 + %"$m_1696" = load %String, %String* %m16, align 8 + call void @"$fail_msg_298"(%Uint128 %_amount, [20 x i8]* %"$fail_msg__origin_1693", [20 x i8]* %"$fail_msg__sender_1694", %String %"$tname_1695", %String %"$m_1696"), !dbg !366 + br label %"$matchsucc_1597" + +"$empty_default_1601": ; preds = %"$have_gas_1595" + br label %"$matchsucc_1597" + +"$matchsucc_1597": ; preds = %"$have_gas_1691", %"$matchsucc_1646", %"$empty_default_1601" + %"$gasrem_1697" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1698" = icmp ugt i64 1, %"$gasrem_1697" + br i1 %"$gascmp_1698", label %"$out_of_gas_1699", label %"$have_gas_1700" + +"$out_of_gas_1699": ; preds = %"$matchsucc_1597" + call void @_out_of_gas() + br label %"$have_gas_1700" + +"$have_gas_1700": ; preds = %"$out_of_gas_1699", %"$matchsucc_1597" + %"$consume_1701" = sub i64 %"$gasrem_1697", 1 + store i64 %"$consume_1701", i64* @_gasrem, align 8 + %"$indices_buf_1702_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$indices_buf_1702_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_1702_salloc_load", i64 16) + %"$indices_buf_1702_salloc" = bitcast i8* %"$indices_buf_1702_salloc_salloc" to [16 x i8]* + %"$indices_buf_1702" = bitcast [16 x i8]* %"$indices_buf_1702_salloc" to i8* + %"$$key1b_3_1703" = load %String, %String* %"$key1b_3", align 8 + %"$indices_gep_1704" = getelementptr i8, i8* %"$indices_buf_1702", i32 0 + %indices_cast17 = bitcast i8* %"$indices_gep_1704" to %String* + store %String %"$$key1b_3_1703", %String* %indices_cast17, align 8 + %"$execptr_load_1705" = load i8*, i8** @_execptr, align 8 + call void @_update_field(i8* %"$execptr_load_1705", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m2_1706", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_76", i32 1, i8* %"$indices_buf_1702", i8* null), !dbg !367 ret void } -define void @t6(i8* %0) !dbg !179 { +define void @t6(i8* %0) !dbg !368 { entry: - %"$_amount_1682" = getelementptr i8, i8* %0, i32 0 - %"$_amount_1683" = bitcast i8* %"$_amount_1682" to %Uint128* - %_amount = load %Uint128, %Uint128* %"$_amount_1683", align 8 - %"$_origin_1684" = getelementptr i8, i8* %0, i32 16 - %"$_origin_1685" = bitcast i8* %"$_origin_1684" to [20 x i8]* - %"$_sender_1686" = getelementptr i8, i8* %0, i32 36 - %"$_sender_1687" = bitcast i8* %"$_sender_1686" to [20 x i8]* - call void @"$t6_1219"(%Uint128 %_amount, [20 x i8]* %"$_origin_1685", [20 x i8]* %"$_sender_1687"), !dbg !180 + %"$_amount_1711" = getelementptr i8, i8* %0, i32 0 + %"$_amount_1712" = bitcast i8* %"$_amount_1711" to %Uint128* + %_amount = load %Uint128, %Uint128* %"$_amount_1712", align 8 + %"$_origin_1713" = getelementptr i8, i8* %0, i32 16 + %"$_origin_1714" = bitcast i8* %"$_origin_1713" to [20 x i8]* + %"$_sender_1715" = getelementptr i8, i8* %0, i32 36 + %"$_sender_1716" = bitcast i8* %"$_sender_1715" to [20 x i8]* + call void @"$t6_1245"(%Uint128 %_amount, [20 x i8]* %"$_origin_1714", [20 x i8]* %"$_sender_1716"), !dbg !369 ret void } -define internal void @"$t7_1688"(%Uint128 %_amount, [20 x i8]* %"$_origin_1689", [20 x i8]* %"$_sender_1690") !dbg !181 { +define internal void @"$t7_1717"(%Uint128 %_amount, [20 x i8]* %"$_origin_1718", [20 x i8]* %"$_sender_1719") !dbg !370 { entry: - %_origin = load [20 x i8], [20 x i8]* %"$_origin_1689", align 1 - %_sender = load [20 x i8], [20 x i8]* %"$_sender_1690", align 1 - %"$gasrem_1691" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1692" = icmp ugt i64 1, %"$gasrem_1691" - br i1 %"$gascmp_1692", label %"$out_of_gas_1693", label %"$have_gas_1694" - -"$out_of_gas_1693": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_1694" - -"$have_gas_1694": ; preds = %"$out_of_gas_1693", %entry - %"$consume_1695" = sub i64 %"$gasrem_1691", 1 - store i64 %"$consume_1695", i64* @_gasrem, align 8 + %"$_sender_2153" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_sender_1719", [20 x i8]** %"$_sender_2153", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_sender_2153", metadata !371, metadata !DIExpression()), !dbg !372 + %"$_origin_2152" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_origin_1718", [20 x i8]** %"$_origin_2152", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_origin_2152", metadata !373, metadata !DIExpression()), !dbg !372 + %"$_amount_2151" = alloca %Uint128, align 8 + store %Uint128 %_amount, %Uint128* %"$_amount_2151", align 8 + call void @llvm.dbg.declare(metadata %Uint128* %"$_amount_2151", metadata !374, metadata !DIExpression()), !dbg !372 + %_origin = load [20 x i8], [20 x i8]* %"$_origin_1718", align 1 + %_sender = load [20 x i8], [20 x i8]* %"$_sender_1719", align 1 + %"$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_1722": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_1723" + +"$have_gas_1723": ; preds = %"$out_of_gas_1722", %entry + %"$consume_1724" = sub i64 %"$gasrem_1720", 1 + store i64 %"$consume_1724", i64* @_gasrem, align 8 %tname = alloca %String, align 8 - %"$gasrem_1696" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1697" = icmp ugt i64 1, %"$gasrem_1696" - br i1 %"$gascmp_1697", label %"$out_of_gas_1698", label %"$have_gas_1699" + call void @llvm.dbg.declare(metadata %String* %tname, metadata !375, metadata !DIExpression()), !dbg !376 + %"$gasrem_1725" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1726" = icmp ugt i64 1, %"$gasrem_1725" + br i1 %"$gascmp_1726", label %"$out_of_gas_1727", label %"$have_gas_1728" -"$out_of_gas_1698": ; preds = %"$have_gas_1694" +"$out_of_gas_1727": ; preds = %"$have_gas_1723" call void @_out_of_gas() - br label %"$have_gas_1699" + br label %"$have_gas_1728" -"$have_gas_1699": ; preds = %"$out_of_gas_1698", %"$have_gas_1694" - %"$consume_1700" = sub i64 %"$gasrem_1696", 1 - store i64 %"$consume_1700", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([2 x i8], [2 x i8]* @"$stringlit_1701", i32 0, i32 0), i32 2 }, %String* %tname, align 8, !dbg !182 - %"$gasrem_1702" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1703" = icmp ugt i64 1, %"$gasrem_1702" - br i1 %"$gascmp_1703", label %"$out_of_gas_1704", label %"$have_gas_1705" +"$have_gas_1728": ; preds = %"$out_of_gas_1727", %"$have_gas_1723" + %"$consume_1729" = sub i64 %"$gasrem_1725", 1 + store i64 %"$consume_1729", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([2 x i8], [2 x i8]* @"$stringlit_1730", i32 0, i32 0), i32 2 }, %String* %tname, align 8, !dbg !377 + %"$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_1704": ; preds = %"$have_gas_1699" +"$out_of_gas_1733": ; preds = %"$have_gas_1728" call void @_out_of_gas() - br label %"$have_gas_1705" + br label %"$have_gas_1734" -"$have_gas_1705": ; preds = %"$out_of_gas_1704", %"$have_gas_1699" - %"$consume_1706" = sub i64 %"$gasrem_1702", 1 - store i64 %"$consume_1706", i64* @_gasrem, align 8 +"$have_gas_1734": ; preds = %"$out_of_gas_1733", %"$have_gas_1728" + %"$consume_1735" = sub i64 %"$gasrem_1731", 1 + store i64 %"$consume_1735", i64* @_gasrem, align 8 %key1a = alloca %String, align 8 - %"$gasrem_1707" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1708" = icmp ugt i64 1, %"$gasrem_1707" - br i1 %"$gascmp_1708", label %"$out_of_gas_1709", label %"$have_gas_1710" + call void @llvm.dbg.declare(metadata %String* %key1a, metadata !378, metadata !DIExpression()), !dbg !379 + %"$gasrem_1736" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1737" = icmp ugt i64 1, %"$gasrem_1736" + br i1 %"$gascmp_1737", label %"$out_of_gas_1738", label %"$have_gas_1739" -"$out_of_gas_1709": ; preds = %"$have_gas_1705" +"$out_of_gas_1738": ; preds = %"$have_gas_1734" call void @_out_of_gas() - br label %"$have_gas_1710" + br label %"$have_gas_1739" -"$have_gas_1710": ; preds = %"$out_of_gas_1709", %"$have_gas_1705" - %"$consume_1711" = sub i64 %"$gasrem_1707", 1 - store i64 %"$consume_1711", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_1712", i32 0, i32 0), i32 5 }, %String* %key1a, align 8, !dbg !183 - %"$gasrem_1713" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1714" = icmp ugt i64 1, %"$gasrem_1713" - br i1 %"$gascmp_1714", label %"$out_of_gas_1715", label %"$have_gas_1716" +"$have_gas_1739": ; preds = %"$out_of_gas_1738", %"$have_gas_1734" + %"$consume_1740" = sub i64 %"$gasrem_1736", 1 + store i64 %"$consume_1740", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_1741", i32 0, i32 0), i32 5 }, %String* %key1a, align 8, !dbg !380 + %"$gasrem_1742" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1743" = icmp ugt i64 1, %"$gasrem_1742" + br i1 %"$gascmp_1743", label %"$out_of_gas_1744", label %"$have_gas_1745" -"$out_of_gas_1715": ; preds = %"$have_gas_1710" +"$out_of_gas_1744": ; preds = %"$have_gas_1739" call void @_out_of_gas() - br label %"$have_gas_1716" + br label %"$have_gas_1745" -"$have_gas_1716": ; preds = %"$out_of_gas_1715", %"$have_gas_1710" - %"$consume_1717" = sub i64 %"$gasrem_1713", 1 - store i64 %"$consume_1717", i64* @_gasrem, align 8 +"$have_gas_1745": ; preds = %"$out_of_gas_1744", %"$have_gas_1739" + %"$consume_1746" = sub i64 %"$gasrem_1742", 1 + store i64 %"$consume_1746", i64* @_gasrem, align 8 %key2a = alloca %String, 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" + call void @llvm.dbg.declare(metadata %String* %key2a, metadata !381, metadata !DIExpression()), !dbg !382 + %"$gasrem_1747" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1748" = icmp ugt i64 1, %"$gasrem_1747" + br i1 %"$gascmp_1748", label %"$out_of_gas_1749", label %"$have_gas_1750" -"$out_of_gas_1720": ; preds = %"$have_gas_1716" +"$out_of_gas_1749": ; preds = %"$have_gas_1745" call void @_out_of_gas() - br label %"$have_gas_1721" + br label %"$have_gas_1750" -"$have_gas_1721": ; preds = %"$out_of_gas_1720", %"$have_gas_1716" - %"$consume_1722" = sub i64 %"$gasrem_1718", 1 - store i64 %"$consume_1722", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_1723", i32 0, i32 0), i32 5 }, %String* %key2a, align 8, !dbg !184 +"$have_gas_1750": ; preds = %"$out_of_gas_1749", %"$have_gas_1745" + %"$consume_1751" = sub i64 %"$gasrem_1747", 1 + store i64 %"$consume_1751", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_1752", i32 0, i32 0), i32 5 }, %String* %key2a, align 8, !dbg !383 %c1 = alloca %TName_Option_String*, align 8 - %"$indices_buf_1724_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$indices_buf_1724_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_1724_salloc_load", i64 32) - %"$indices_buf_1724_salloc" = bitcast i8* %"$indices_buf_1724_salloc_salloc" to [32 x i8]* - %"$indices_buf_1724" = bitcast [32 x i8]* %"$indices_buf_1724_salloc" to i8* - %"$key1a_1725" = load %String, %String* %key1a, align 8 - %"$indices_gep_1726" = getelementptr i8, i8* %"$indices_buf_1724", i32 0 - %indices_cast = bitcast i8* %"$indices_gep_1726" to %String* - store %String %"$key1a_1725", %String* %indices_cast, align 8 - %"$key2a_1727" = load %String, %String* %key2a, align 8 - %"$indices_gep_1728" = getelementptr i8, i8* %"$indices_buf_1724", i32 16 - %indices_cast1 = bitcast i8* %"$indices_gep_1728" to %String* - store %String %"$key2a_1727", %String* %indices_cast1, align 8 - %"$execptr_load_1730" = load i8*, i8** @_execptr, align 8 - %"$c1_call_1731" = call i8* @_fetch_field(i8* %"$execptr_load_1730", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m2_1729", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_76", i32 2, i8* %"$indices_buf_1724", i32 1), !dbg !185 - %"$c1_1732" = bitcast i8* %"$c1_call_1731" to %TName_Option_String* - store %TName_Option_String* %"$c1_1732", %TName_Option_String** %c1, align 8 - %"$c1_1733" = load %TName_Option_String*, %TName_Option_String** %c1, align 8 - %"$$c1_1733_1734" = bitcast %TName_Option_String* %"$c1_1733" to i8* - %"$_literal_cost_call_1735" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_String_72", i8* %"$$c1_1733_1734") - %"$gasadd_1736" = add i64 %"$_literal_cost_call_1735", 0 - %"$gasadd_1737" = add i64 %"$gasadd_1736", 2 - %"$gasrem_1738" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1739" = icmp ugt i64 %"$gasadd_1737", %"$gasrem_1738" - br i1 %"$gascmp_1739", label %"$out_of_gas_1740", label %"$have_gas_1741" - -"$out_of_gas_1740": ; preds = %"$have_gas_1721" - call void @_out_of_gas() - br label %"$have_gas_1741" - -"$have_gas_1741": ; preds = %"$out_of_gas_1740", %"$have_gas_1721" - %"$consume_1742" = sub i64 %"$gasrem_1738", %"$gasadd_1737" - store i64 %"$consume_1742", i64* @_gasrem, align 8 - %"$gasrem_1743" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1744" = icmp ugt i64 2, %"$gasrem_1743" - br i1 %"$gascmp_1744", label %"$out_of_gas_1745", label %"$have_gas_1746" - -"$out_of_gas_1745": ; preds = %"$have_gas_1741" - call void @_out_of_gas() - br label %"$have_gas_1746" - -"$have_gas_1746": ; preds = %"$out_of_gas_1745", %"$have_gas_1741" - %"$consume_1747" = sub i64 %"$gasrem_1743", 2 - store i64 %"$consume_1747", i64* @_gasrem, align 8 - %"$c1_1749" = load %TName_Option_String*, %TName_Option_String** %c1, align 8 - %"$c1_tag_1750" = getelementptr inbounds %TName_Option_String, %TName_Option_String* %"$c1_1749", i32 0, i32 0 - %"$c1_tag_1751" = load i8, i8* %"$c1_tag_1750", align 1 - switch i8 %"$c1_tag_1751", label %"$empty_default_1752" [ - i8 0, label %"$Some_1753" - i8 1, label %"$None_1826" - ], !dbg !186 - -"$Some_1753": ; preds = %"$have_gas_1746" - %"$c1_1754" = bitcast %TName_Option_String* %"$c1_1749" to %CName_Some_String* - %"$c_gep_1755" = getelementptr inbounds %CName_Some_String, %CName_Some_String* %"$c1_1754", i32 0, i32 1 - %"$c_load_1756" = load %String, %String* %"$c_gep_1755", align 8 + call void @llvm.dbg.declare(metadata %TName_Option_String** %c1, metadata !384, metadata !DIExpression()), !dbg !385 + %"$indices_buf_1753_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$indices_buf_1753_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_1753_salloc_load", i64 32) + %"$indices_buf_1753_salloc" = bitcast i8* %"$indices_buf_1753_salloc_salloc" to [32 x i8]* + %"$indices_buf_1753" = bitcast [32 x i8]* %"$indices_buf_1753_salloc" to i8* + %"$key1a_1754" = load %String, %String* %key1a, align 8 + %"$indices_gep_1755" = getelementptr i8, i8* %"$indices_buf_1753", i32 0 + %indices_cast = bitcast i8* %"$indices_gep_1755" to %String* + store %String %"$key1a_1754", %String* %indices_cast, align 8 + %"$key2a_1756" = load %String, %String* %key2a, align 8 + %"$indices_gep_1757" = getelementptr i8, i8* %"$indices_buf_1753", i32 16 + %indices_cast1 = bitcast i8* %"$indices_gep_1757" to %String* + store %String %"$key2a_1756", %String* %indices_cast1, align 8 + %"$execptr_load_1759" = load i8*, i8** @_execptr, align 8 + %"$c1_call_1760" = call i8* @_fetch_field(i8* %"$execptr_load_1759", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m2_1758", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_76", i32 2, i8* %"$indices_buf_1753", i32 1), !dbg !385 + %"$c1_1761" = bitcast i8* %"$c1_call_1760" to %TName_Option_String* + store %TName_Option_String* %"$c1_1761", %TName_Option_String** %c1, align 8 + %"$c1_1762" = load %TName_Option_String*, %TName_Option_String** %c1, align 8 + %"$$c1_1762_1763" = bitcast %TName_Option_String* %"$c1_1762" to i8* + %"$_literal_cost_call_1764" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_String_72", i8* %"$$c1_1762_1763") + %"$gasadd_1765" = add i64 %"$_literal_cost_call_1764", 0 + %"$gasadd_1766" = add i64 %"$gasadd_1765", 2 + %"$gasrem_1767" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1768" = icmp ugt i64 %"$gasadd_1766", %"$gasrem_1767" + br i1 %"$gascmp_1768", label %"$out_of_gas_1769", label %"$have_gas_1770" + +"$out_of_gas_1769": ; preds = %"$have_gas_1750" + call void @_out_of_gas() + br label %"$have_gas_1770" + +"$have_gas_1770": ; preds = %"$out_of_gas_1769", %"$have_gas_1750" + %"$consume_1771" = sub i64 %"$gasrem_1767", %"$gasadd_1766" + store i64 %"$consume_1771", i64* @_gasrem, align 8 + %"$gasrem_1772" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1773" = icmp ugt i64 2, %"$gasrem_1772" + br i1 %"$gascmp_1773", label %"$out_of_gas_1774", label %"$have_gas_1775" + +"$out_of_gas_1774": ; preds = %"$have_gas_1770" + call void @_out_of_gas() + br label %"$have_gas_1775" + +"$have_gas_1775": ; preds = %"$out_of_gas_1774", %"$have_gas_1770" + %"$consume_1776" = sub i64 %"$gasrem_1772", 2 + store i64 %"$consume_1776", i64* @_gasrem, align 8 + %"$c1_1778" = load %TName_Option_String*, %TName_Option_String** %c1, align 8 + %"$c1_tag_1779" = getelementptr inbounds %TName_Option_String, %TName_Option_String* %"$c1_1778", i32 0, i32 0 + %"$c1_tag_1780" = load i8, i8* %"$c1_tag_1779", align 1 + switch i8 %"$c1_tag_1780", label %"$empty_default_1781" [ + i8 0, label %"$Some_1782" + i8 1, label %"$None_1855" + ], !dbg !386 + +"$Some_1782": ; preds = %"$have_gas_1775" + %"$c1_1783" = bitcast %TName_Option_String* %"$c1_1778" to %CName_Some_String* + %"$c_gep_1784" = getelementptr inbounds %CName_Some_String, %CName_Some_String* %"$c1_1783", i32 0, i32 1 + %"$c_load_1785" = load %String, %String* %"$c_gep_1784", align 8 %c = alloca %String, align 8 - store %String %"$c_load_1756", %String* %c, align 8 - %"$gasrem_1757" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1758" = icmp ugt i64 1, %"$gasrem_1757" - br i1 %"$gascmp_1758", label %"$out_of_gas_1759", label %"$have_gas_1760" + store %String %"$c_load_1785", %String* %c, align 8 + %"$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_1759": ; preds = %"$Some_1753" +"$out_of_gas_1788": ; preds = %"$Some_1782" call void @_out_of_gas() - br label %"$have_gas_1760" + br label %"$have_gas_1789" -"$have_gas_1760": ; preds = %"$out_of_gas_1759", %"$Some_1753" - %"$consume_1761" = sub i64 %"$gasrem_1757", 1 - store i64 %"$consume_1761", i64* @_gasrem, align 8 +"$have_gas_1789": ; preds = %"$out_of_gas_1788", %"$Some_1782" + %"$consume_1790" = sub i64 %"$gasrem_1786", 1 + store i64 %"$consume_1790", i64* @_gasrem, align 8 %v = alloca %String, align 8 - %"$gasrem_1762" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1763" = icmp ugt i64 1, %"$gasrem_1762" - br i1 %"$gascmp_1763", label %"$out_of_gas_1764", label %"$have_gas_1765" + call void @llvm.dbg.declare(metadata %String* %v, metadata !387, metadata !DIExpression()), !dbg !390 + %"$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_1764": ; preds = %"$have_gas_1760" +"$out_of_gas_1793": ; preds = %"$have_gas_1789" call void @_out_of_gas() - br label %"$have_gas_1765" + br label %"$have_gas_1794" -"$have_gas_1765": ; preds = %"$out_of_gas_1764", %"$have_gas_1760" - %"$consume_1766" = sub i64 %"$gasrem_1762", 1 - store i64 %"$consume_1766", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_1767", i32 0, i32 0), i32 3 }, %String* %v, align 8, !dbg !187 - %"$gasrem_1768" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1769" = icmp ugt i64 1, %"$gasrem_1768" - br i1 %"$gascmp_1769", label %"$out_of_gas_1770", label %"$have_gas_1771" +"$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 ([3 x i8], [3 x i8]* @"$stringlit_1796", i32 0, i32 0), i32 3 }, %String* %v, align 8, !dbg !391 + %"$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_1770": ; preds = %"$have_gas_1765" +"$out_of_gas_1799": ; preds = %"$have_gas_1794" call void @_out_of_gas() - br label %"$have_gas_1771" + br label %"$have_gas_1800" -"$have_gas_1771": ; preds = %"$out_of_gas_1770", %"$have_gas_1765" - %"$consume_1772" = sub i64 %"$gasrem_1768", 1 - store i64 %"$consume_1772", i64* @_gasrem, align 8 +"$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 %eq = alloca %TName_Bool*, align 8 - %"$_literal_cost_c_1773" = alloca %String, align 8 - %"$c_1774" = load %String, %String* %c, align 8 - store %String %"$c_1774", %String* %"$_literal_cost_c_1773", align 8 - %"$$_literal_cost_c_1773_1775" = bitcast %String* %"$_literal_cost_c_1773" to i8* - %"$_literal_cost_call_1776" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_52", i8* %"$$_literal_cost_c_1773_1775") - %"$_literal_cost_v_1777" = alloca %String, align 8 - %"$v_1778" = load %String, %String* %v, align 8 - store %String %"$v_1778", %String* %"$_literal_cost_v_1777", align 8 - %"$$_literal_cost_v_1777_1779" = bitcast %String* %"$_literal_cost_v_1777" to i8* - %"$_literal_cost_call_1780" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_52", i8* %"$$_literal_cost_v_1777_1779") - %"$gasmin_1781" = call i64 @llvm.umin.i64(i64 %"$_literal_cost_call_1776", i64 %"$_literal_cost_call_1780") - %"$gasrem_1782" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1783" = icmp ugt i64 %"$gasmin_1781", %"$gasrem_1782" - br i1 %"$gascmp_1783", label %"$out_of_gas_1784", label %"$have_gas_1785" - -"$out_of_gas_1784": ; preds = %"$have_gas_1771" - call void @_out_of_gas() - br label %"$have_gas_1785" - -"$have_gas_1785": ; preds = %"$out_of_gas_1784", %"$have_gas_1771" - %"$consume_1786" = sub i64 %"$gasrem_1782", %"$gasmin_1781" - store i64 %"$consume_1786", i64* @_gasrem, align 8 - %"$execptr_load_1787" = load i8*, i8** @_execptr, align 8 - %"$c_1788" = load %String, %String* %c, align 8 - %"$v_1789" = load %String, %String* %v, align 8 - %"$eq_call_1790" = call %TName_Bool* @_eq_String(i8* %"$execptr_load_1787", %String %"$c_1788", %String %"$v_1789"), !dbg !190 - store %TName_Bool* %"$eq_call_1790", %TName_Bool** %eq, align 8, !dbg !190 - %"$gasrem_1792" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1793" = icmp ugt i64 2, %"$gasrem_1792" - br i1 %"$gascmp_1793", label %"$out_of_gas_1794", label %"$have_gas_1795" - -"$out_of_gas_1794": ; preds = %"$have_gas_1785" - call void @_out_of_gas() - br label %"$have_gas_1795" - -"$have_gas_1795": ; preds = %"$out_of_gas_1794", %"$have_gas_1785" - %"$consume_1796" = sub i64 %"$gasrem_1792", 2 - store i64 %"$consume_1796", i64* @_gasrem, align 8 - %"$eq_1798" = load %TName_Bool*, %TName_Bool** %eq, align 8 - %"$eq_tag_1799" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$eq_1798", i32 0, i32 0 - %"$eq_tag_1800" = load i8, i8* %"$eq_tag_1799", align 1 - switch i8 %"$eq_tag_1800", label %"$empty_default_1801" [ - i8 0, label %"$True_1802" - i8 1, label %"$False_1804" - ], !dbg !191 - -"$True_1802": ; preds = %"$have_gas_1795" - %"$eq_1803" = bitcast %TName_Bool* %"$eq_1798" to %CName_True* - br label %"$matchsucc_1797" - -"$False_1804": ; preds = %"$have_gas_1795" - %"$eq_1805" = bitcast %TName_Bool* %"$eq_1798" to %CName_False* - %"$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 = %"$False_1804" - call void @_out_of_gas() - br label %"$have_gas_1809" - -"$have_gas_1809": ; preds = %"$out_of_gas_1808", %"$False_1804" - %"$consume_1810" = sub i64 %"$gasrem_1806", 1 - store i64 %"$consume_1810", i64* @_gasrem, align 8 - %m = alloca %String, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %eq, metadata !392, metadata !DIExpression()), !dbg !393 + %"$_literal_cost_c_1802" = alloca %String, align 8 + %"$c_1803" = load %String, %String* %c, align 8 + store %String %"$c_1803", %String* %"$_literal_cost_c_1802", align 8 + %"$$_literal_cost_c_1802_1804" = bitcast %String* %"$_literal_cost_c_1802" to i8* + %"$_literal_cost_call_1805" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_52", i8* %"$$_literal_cost_c_1802_1804") + %"$_literal_cost_v_1806" = alloca %String, align 8 + %"$v_1807" = load %String, %String* %v, align 8 + store %String %"$v_1807", %String* %"$_literal_cost_v_1806", align 8 + %"$$_literal_cost_v_1806_1808" = bitcast %String* %"$_literal_cost_v_1806" to i8* + %"$_literal_cost_call_1809" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_52", i8* %"$$_literal_cost_v_1806_1808") + %"$gasmin_1810" = call i64 @llvm.umin.i64(i64 %"$_literal_cost_call_1805", i64 %"$_literal_cost_call_1809") %"$gasrem_1811" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1812" = icmp ugt i64 1, %"$gasrem_1811" + %"$gascmp_1812" = icmp ugt i64 %"$gasmin_1810", %"$gasrem_1811" br i1 %"$gascmp_1812", label %"$out_of_gas_1813", label %"$have_gas_1814" -"$out_of_gas_1813": ; preds = %"$have_gas_1809" +"$out_of_gas_1813": ; preds = %"$have_gas_1800" 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 +"$have_gas_1814": ; preds = %"$out_of_gas_1813", %"$have_gas_1800" + %"$consume_1815" = sub i64 %"$gasrem_1811", %"$gasmin_1810" store i64 %"$consume_1815", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([31 x i8], [31 x i8]* @"$stringlit_1816", i32 0, i32 0), i32 31 }, %String* %m, align 8, !dbg !192 - %"$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_1814" - call void @_out_of_gas() - br label %"$have_gas_1820" - -"$have_gas_1820": ; preds = %"$out_of_gas_1819", %"$have_gas_1814" - %"$consume_1821" = sub i64 %"$gasrem_1817", 1 - store i64 %"$consume_1821", i64* @_gasrem, align 8 - %"$fail_msg__origin_1822" = alloca [20 x i8], align 1 - store [20 x i8] %_origin, [20 x i8]* %"$fail_msg__origin_1822", align 1 - %"$fail_msg__sender_1823" = alloca [20 x i8], align 1 - store [20 x i8] %_sender, [20 x i8]* %"$fail_msg__sender_1823", align 1 - %"$tname_1824" = load %String, %String* %tname, align 8 - %"$m_1825" = load %String, %String* %m, align 8 - call void @"$fail_msg_292"(%Uint128 %_amount, [20 x i8]* %"$fail_msg__origin_1822", [20 x i8]* %"$fail_msg__sender_1823", %String %"$tname_1824", %String %"$m_1825"), !dbg !195 - br label %"$matchsucc_1797" - -"$empty_default_1801": ; preds = %"$have_gas_1795" - br label %"$matchsucc_1797" - -"$matchsucc_1797": ; preds = %"$have_gas_1820", %"$True_1802", %"$empty_default_1801" - br label %"$matchsucc_1748" - -"$None_1826": ; preds = %"$have_gas_1746" - %"$c1_1827" = bitcast %TName_Option_String* %"$c1_1749" to %CName_None_String* - %"$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" - -"$out_of_gas_1830": ; preds = %"$None_1826" - call void @_out_of_gas() - br label %"$have_gas_1831" - -"$have_gas_1831": ; preds = %"$out_of_gas_1830", %"$None_1826" - %"$consume_1832" = sub i64 %"$gasrem_1828", 1 - store i64 %"$consume_1832", i64* @_gasrem, align 8 - %m2 = alloca %String, align 8 - %"$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 = %"$have_gas_1831" - call void @_out_of_gas() - br label %"$have_gas_1836" - -"$have_gas_1836": ; preds = %"$out_of_gas_1835", %"$have_gas_1831" - %"$consume_1837" = sub i64 %"$gasrem_1833", 1 - store i64 %"$consume_1837", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([21 x i8], [21 x i8]* @"$stringlit_1838", i32 0, i32 0), i32 21 }, %String* %m2, align 8, !dbg !196 - %"$gasrem_1839" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1840" = icmp ugt i64 1, %"$gasrem_1839" - br i1 %"$gascmp_1840", label %"$out_of_gas_1841", label %"$have_gas_1842" - -"$out_of_gas_1841": ; preds = %"$have_gas_1836" - call void @_out_of_gas() - br label %"$have_gas_1842" - -"$have_gas_1842": ; preds = %"$out_of_gas_1841", %"$have_gas_1836" - %"$consume_1843" = sub i64 %"$gasrem_1839", 1 - store i64 %"$consume_1843", i64* @_gasrem, align 8 - %"$fail_msg__origin_1844" = alloca [20 x i8], align 1 - store [20 x i8] %_origin, [20 x i8]* %"$fail_msg__origin_1844", align 1 - %"$fail_msg__sender_1845" = alloca [20 x i8], align 1 - store [20 x i8] %_sender, [20 x i8]* %"$fail_msg__sender_1845", align 1 - %"$tname_1846" = load %String, %String* %tname, align 8 - %"$m_1847" = load %String, %String* %m2, align 8 - call void @"$fail_msg_292"(%Uint128 %_amount, [20 x i8]* %"$fail_msg__origin_1844", [20 x i8]* %"$fail_msg__sender_1845", %String %"$tname_1846", %String %"$m_1847"), !dbg !198 - br label %"$matchsucc_1748" + %"$execptr_load_1816" = load i8*, i8** @_execptr, align 8 + %"$c_1817" = load %String, %String* %c, align 8 + %"$v_1818" = load %String, %String* %v, align 8 + %"$eq_call_1819" = call %TName_Bool* @_eq_String(i8* %"$execptr_load_1816", %String %"$c_1817", %String %"$v_1818"), !dbg !394 + store %TName_Bool* %"$eq_call_1819", %TName_Bool** %eq, align 8, !dbg !394 + %"$gasrem_1821" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1822" = icmp ugt i64 2, %"$gasrem_1821" + br i1 %"$gascmp_1822", label %"$out_of_gas_1823", label %"$have_gas_1824" + +"$out_of_gas_1823": ; preds = %"$have_gas_1814" + call void @_out_of_gas() + br label %"$have_gas_1824" + +"$have_gas_1824": ; preds = %"$out_of_gas_1823", %"$have_gas_1814" + %"$consume_1825" = sub i64 %"$gasrem_1821", 2 + store i64 %"$consume_1825", i64* @_gasrem, align 8 + %"$eq_1827" = load %TName_Bool*, %TName_Bool** %eq, align 8 + %"$eq_tag_1828" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$eq_1827", i32 0, i32 0 + %"$eq_tag_1829" = load i8, i8* %"$eq_tag_1828", align 1 + switch i8 %"$eq_tag_1829", label %"$empty_default_1830" [ + i8 0, label %"$True_1831" + i8 1, label %"$False_1833" + ], !dbg !395 -"$empty_default_1752": ; preds = %"$have_gas_1746" - br label %"$matchsucc_1748" +"$True_1831": ; preds = %"$have_gas_1824" + %"$eq_1832" = bitcast %TName_Bool* %"$eq_1827" to %CName_True* + br label %"$matchsucc_1826" -"$matchsucc_1748": ; preds = %"$have_gas_1842", %"$matchsucc_1797", %"$empty_default_1752" - %"$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" +"$False_1833": ; preds = %"$have_gas_1824" + %"$eq_1834" = bitcast %TName_Bool* %"$eq_1827" to %CName_False* + %"$gasrem_1835" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1836" = icmp ugt i64 1, %"$gasrem_1835" + br i1 %"$gascmp_1836", label %"$out_of_gas_1837", label %"$have_gas_1838" -"$out_of_gas_1850": ; preds = %"$matchsucc_1748" +"$out_of_gas_1837": ; preds = %"$False_1833" call void @_out_of_gas() - br label %"$have_gas_1851" + br label %"$have_gas_1838" -"$have_gas_1851": ; preds = %"$out_of_gas_1850", %"$matchsucc_1748" - %"$consume_1852" = sub i64 %"$gasrem_1848", 1 - store i64 %"$consume_1852", i64* @_gasrem, align 8 +"$have_gas_1838": ; preds = %"$out_of_gas_1837", %"$False_1833" + %"$consume_1839" = sub i64 %"$gasrem_1835", 1 + store i64 %"$consume_1839", i64* @_gasrem, align 8 + %m = alloca %String, align 8 + call void @llvm.dbg.declare(metadata %String* %m, metadata !396, metadata !DIExpression()), !dbg !399 + %"$gasrem_1840" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1841" = icmp ugt i64 1, %"$gasrem_1840" + br i1 %"$gascmp_1841", label %"$out_of_gas_1842", label %"$have_gas_1843" + +"$out_of_gas_1842": ; preds = %"$have_gas_1838" + call void @_out_of_gas() + br label %"$have_gas_1843" + +"$have_gas_1843": ; preds = %"$out_of_gas_1842", %"$have_gas_1838" + %"$consume_1844" = sub i64 %"$gasrem_1840", 1 + store i64 %"$consume_1844", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([31 x i8], [31 x i8]* @"$stringlit_1845", i32 0, i32 0), i32 31 }, %String* %m, align 8, !dbg !400 + %"$gasrem_1846" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1847" = icmp ugt i64 1, %"$gasrem_1846" + br i1 %"$gascmp_1847", label %"$out_of_gas_1848", label %"$have_gas_1849" + +"$out_of_gas_1848": ; preds = %"$have_gas_1843" + call void @_out_of_gas() + br label %"$have_gas_1849" + +"$have_gas_1849": ; preds = %"$out_of_gas_1848", %"$have_gas_1843" + %"$consume_1850" = sub i64 %"$gasrem_1846", 1 + store i64 %"$consume_1850", i64* @_gasrem, align 8 + %"$fail_msg__origin_1851" = alloca [20 x i8], align 1 + store [20 x i8] %_origin, [20 x i8]* %"$fail_msg__origin_1851", align 1 + %"$fail_msg__sender_1852" = alloca [20 x i8], align 1 + store [20 x i8] %_sender, [20 x i8]* %"$fail_msg__sender_1852", align 1 + %"$tname_1853" = load %String, %String* %tname, align 8 + %"$m_1854" = load %String, %String* %m, align 8 + call void @"$fail_msg_298"(%Uint128 %_amount, [20 x i8]* %"$fail_msg__origin_1851", [20 x i8]* %"$fail_msg__sender_1852", %String %"$tname_1853", %String %"$m_1854"), !dbg !401 + br label %"$matchsucc_1826" + +"$empty_default_1830": ; preds = %"$have_gas_1824" + br label %"$matchsucc_1826" + +"$matchsucc_1826": ; preds = %"$have_gas_1849", %"$True_1831", %"$empty_default_1830" + br label %"$matchsucc_1777" + +"$None_1855": ; preds = %"$have_gas_1775" + %"$c1_1856" = bitcast %TName_Option_String* %"$c1_1778" to %CName_None_String* + %"$gasrem_1857" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1858" = icmp ugt i64 1, %"$gasrem_1857" + br i1 %"$gascmp_1858", label %"$out_of_gas_1859", label %"$have_gas_1860" + +"$out_of_gas_1859": ; preds = %"$None_1855" + call void @_out_of_gas() + br label %"$have_gas_1860" + +"$have_gas_1860": ; preds = %"$out_of_gas_1859", %"$None_1855" + %"$consume_1861" = sub i64 %"$gasrem_1857", 1 + store i64 %"$consume_1861", i64* @_gasrem, align 8 + %m2 = alloca %String, align 8 + call void @llvm.dbg.declare(metadata %String* %m2, metadata !402, metadata !DIExpression()), !dbg !404 + %"$gasrem_1862" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1863" = icmp ugt i64 1, %"$gasrem_1862" + br i1 %"$gascmp_1863", label %"$out_of_gas_1864", label %"$have_gas_1865" + +"$out_of_gas_1864": ; preds = %"$have_gas_1860" + call void @_out_of_gas() + br label %"$have_gas_1865" + +"$have_gas_1865": ; preds = %"$out_of_gas_1864", %"$have_gas_1860" + %"$consume_1866" = sub i64 %"$gasrem_1862", 1 + store i64 %"$consume_1866", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([21 x i8], [21 x i8]* @"$stringlit_1867", i32 0, i32 0), i32 21 }, %String* %m2, align 8, !dbg !405 + %"$gasrem_1868" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1869" = icmp ugt i64 1, %"$gasrem_1868" + br i1 %"$gascmp_1869", label %"$out_of_gas_1870", label %"$have_gas_1871" + +"$out_of_gas_1870": ; preds = %"$have_gas_1865" + call void @_out_of_gas() + br label %"$have_gas_1871" + +"$have_gas_1871": ; preds = %"$out_of_gas_1870", %"$have_gas_1865" + %"$consume_1872" = sub i64 %"$gasrem_1868", 1 + store i64 %"$consume_1872", i64* @_gasrem, align 8 + %"$fail_msg__origin_1873" = alloca [20 x i8], align 1 + store [20 x i8] %_origin, [20 x i8]* %"$fail_msg__origin_1873", align 1 + %"$fail_msg__sender_1874" = alloca [20 x i8], align 1 + store [20 x i8] %_sender, [20 x i8]* %"$fail_msg__sender_1874", align 1 + %"$tname_1875" = load %String, %String* %tname, align 8 + %"$m_1876" = load %String, %String* %m2, align 8 + call void @"$fail_msg_298"(%Uint128 %_amount, [20 x i8]* %"$fail_msg__origin_1873", [20 x i8]* %"$fail_msg__sender_1874", %String %"$tname_1875", %String %"$m_1876"), !dbg !406 + br label %"$matchsucc_1777" + +"$empty_default_1781": ; preds = %"$have_gas_1775" + br label %"$matchsucc_1777" + +"$matchsucc_1777": ; preds = %"$have_gas_1871", %"$matchsucc_1826", %"$empty_default_1781" + %"$gasrem_1877" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1878" = icmp ugt i64 1, %"$gasrem_1877" + br i1 %"$gascmp_1878", label %"$out_of_gas_1879", label %"$have_gas_1880" + +"$out_of_gas_1879": ; preds = %"$matchsucc_1777" + call void @_out_of_gas() + br label %"$have_gas_1880" + +"$have_gas_1880": ; preds = %"$out_of_gas_1879", %"$matchsucc_1777" + %"$consume_1881" = sub i64 %"$gasrem_1877", 1 + store i64 %"$consume_1881", i64* @_gasrem, align 8 %key1b = alloca %String, align 8 - %"$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" + call void @llvm.dbg.declare(metadata %String* %key1b, metadata !407, metadata !DIExpression()), !dbg !408 + %"$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" -"$out_of_gas_1855": ; preds = %"$have_gas_1851" +"$out_of_gas_1884": ; preds = %"$have_gas_1880" call void @_out_of_gas() - br label %"$have_gas_1856" + br 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 ([5 x i8], [5 x i8]* @"$stringlit_1858", i32 0, i32 0), i32 5 }, %String* %key1b, align 8, !dbg !199 +"$have_gas_1885": ; preds = %"$out_of_gas_1884", %"$have_gas_1880" + %"$consume_1886" = sub i64 %"$gasrem_1882", 1 + store i64 %"$consume_1886", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_1887", i32 0, i32 0), i32 5 }, %String* %key1b, align 8, !dbg !409 %"$c1_5" = alloca %"TName_Option_Map_(String)_(String)"*, align 8 - %"$indices_buf_1859_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$indices_buf_1859_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_1859_salloc_load", i64 16) - %"$indices_buf_1859_salloc" = bitcast i8* %"$indices_buf_1859_salloc_salloc" to [16 x i8]* - %"$indices_buf_1859" = bitcast [16 x i8]* %"$indices_buf_1859_salloc" to i8* - %"$key1b_1860" = load %String, %String* %key1b, align 8 - %"$indices_gep_1861" = getelementptr i8, i8* %"$indices_buf_1859", i32 0 - %indices_cast3 = bitcast i8* %"$indices_gep_1861" to %String* - store %String %"$key1b_1860", %String* %indices_cast3, align 8 - %"$execptr_load_1863" = load i8*, i8** @_execptr, align 8 - %"$$c1_5_call_1864" = call i8* @_fetch_field(i8* %"$execptr_load_1863", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m2_1862", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_76", i32 1, i8* %"$indices_buf_1859", i32 1), !dbg !200 - %"$$c1_5_1865" = bitcast i8* %"$$c1_5_call_1864" to %"TName_Option_Map_(String)_(String)"* - store %"TName_Option_Map_(String)_(String)"* %"$$c1_5_1865", %"TName_Option_Map_(String)_(String)"** %"$c1_5", align 8 - %"$$c1_5_1866" = load %"TName_Option_Map_(String)_(String)"*, %"TName_Option_Map_(String)_(String)"** %"$c1_5", align 8 - %"$$$c1_5_1866_1867" = bitcast %"TName_Option_Map_(String)_(String)"* %"$$c1_5_1866" to i8* - %"$_literal_cost_call_1868" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_Map_(String)_(String)_71", i8* %"$$$c1_5_1866_1867") - %"$$c1_5_1869" = load %"TName_Option_Map_(String)_(String)"*, %"TName_Option_Map_(String)_(String)"** %"$c1_5", align 8 - %"$$$c1_5_1869_1870" = bitcast %"TName_Option_Map_(String)_(String)"* %"$$c1_5_1869" to i8* - %"$_mapsortcost_call_1871" = call i64 @_mapsortcost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_Map_(String)_(String)_71", i8* %"$$$c1_5_1869_1870") - %"$gasadd_1872" = add i64 %"$_literal_cost_call_1868", %"$_mapsortcost_call_1871" - %"$gasadd_1873" = add i64 %"$gasadd_1872", 1 - %"$gasrem_1874" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1875" = icmp ugt i64 %"$gasadd_1873", %"$gasrem_1874" - br i1 %"$gascmp_1875", label %"$out_of_gas_1876", label %"$have_gas_1877" - -"$out_of_gas_1876": ; preds = %"$have_gas_1856" - call void @_out_of_gas() - br label %"$have_gas_1877" - -"$have_gas_1877": ; preds = %"$out_of_gas_1876", %"$have_gas_1856" - %"$consume_1878" = sub i64 %"$gasrem_1874", %"$gasadd_1873" - store i64 %"$consume_1878", i64* @_gasrem, align 8 - %"$gasrem_1879" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1880" = icmp ugt i64 2, %"$gasrem_1879" - br i1 %"$gascmp_1880", label %"$out_of_gas_1881", label %"$have_gas_1882" - -"$out_of_gas_1881": ; preds = %"$have_gas_1877" - call void @_out_of_gas() - br label %"$have_gas_1882" - -"$have_gas_1882": ; preds = %"$out_of_gas_1881", %"$have_gas_1877" - %"$consume_1883" = sub i64 %"$gasrem_1879", 2 - store i64 %"$consume_1883", i64* @_gasrem, align 8 - %"$$c1_5_1885" = load %"TName_Option_Map_(String)_(String)"*, %"TName_Option_Map_(String)_(String)"** %"$c1_5", align 8 - %"$$c1_5_tag_1886" = getelementptr inbounds %"TName_Option_Map_(String)_(String)", %"TName_Option_Map_(String)_(String)"* %"$$c1_5_1885", i32 0, i32 0 - %"$$c1_5_tag_1887" = load i8, i8* %"$$c1_5_tag_1886", align 1 - switch i8 %"$$c1_5_tag_1887", label %"$empty_default_1888" [ - i8 0, label %"$Some_1889" - i8 1, label %"$None_1913" - ], !dbg !201 - -"$Some_1889": ; preds = %"$have_gas_1882" - %"$$c1_5_1890" = bitcast %"TName_Option_Map_(String)_(String)"* %"$$c1_5_1885" to %"CName_Some_Map_(String)_(String)"* - %"$$$c1_5_18_gep_1891" = getelementptr inbounds %"CName_Some_Map_(String)_(String)", %"CName_Some_Map_(String)_(String)"* %"$$c1_5_1890", i32 0, i32 1 - %"$$$c1_5_18_load_1892" = load %Map_String_String*, %Map_String_String** %"$$$c1_5_18_gep_1891", align 8 + call void @llvm.dbg.declare(metadata %"TName_Option_Map_(String)_(String)"** %"$c1_5", metadata !410, metadata !DIExpression()), !dbg !413 + %"$indices_buf_1888_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$indices_buf_1888_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_1888_salloc_load", i64 16) + %"$indices_buf_1888_salloc" = bitcast i8* %"$indices_buf_1888_salloc_salloc" to [16 x i8]* + %"$indices_buf_1888" = bitcast [16 x i8]* %"$indices_buf_1888_salloc" to i8* + %"$key1b_1889" = load %String, %String* %key1b, align 8 + %"$indices_gep_1890" = getelementptr i8, i8* %"$indices_buf_1888", i32 0 + %indices_cast3 = bitcast i8* %"$indices_gep_1890" to %String* + store %String %"$key1b_1889", %String* %indices_cast3, align 8 + %"$execptr_load_1892" = load i8*, i8** @_execptr, align 8 + %"$$c1_5_call_1893" = call i8* @_fetch_field(i8* %"$execptr_load_1892", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m2_1891", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_76", i32 1, i8* %"$indices_buf_1888", i32 1), !dbg !413 + %"$$c1_5_1894" = bitcast i8* %"$$c1_5_call_1893" to %"TName_Option_Map_(String)_(String)"* + store %"TName_Option_Map_(String)_(String)"* %"$$c1_5_1894", %"TName_Option_Map_(String)_(String)"** %"$c1_5", align 8 + %"$$c1_5_1895" = load %"TName_Option_Map_(String)_(String)"*, %"TName_Option_Map_(String)_(String)"** %"$c1_5", align 8 + %"$$$c1_5_1895_1896" = bitcast %"TName_Option_Map_(String)_(String)"* %"$$c1_5_1895" to i8* + %"$_literal_cost_call_1897" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_Map_(String)_(String)_71", i8* %"$$$c1_5_1895_1896") + %"$$c1_5_1898" = load %"TName_Option_Map_(String)_(String)"*, %"TName_Option_Map_(String)_(String)"** %"$c1_5", align 8 + %"$$$c1_5_1898_1899" = bitcast %"TName_Option_Map_(String)_(String)"* %"$$c1_5_1898" to i8* + %"$_mapsortcost_call_1900" = call i64 @_mapsortcost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_Map_(String)_(String)_71", i8* %"$$$c1_5_1898_1899") + %"$gasadd_1901" = add i64 %"$_literal_cost_call_1897", %"$_mapsortcost_call_1900" + %"$gasadd_1902" = add i64 %"$gasadd_1901", 1 + %"$gasrem_1903" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1904" = icmp ugt i64 %"$gasadd_1902", %"$gasrem_1903" + br i1 %"$gascmp_1904", label %"$out_of_gas_1905", label %"$have_gas_1906" + +"$out_of_gas_1905": ; preds = %"$have_gas_1885" + call void @_out_of_gas() + br label %"$have_gas_1906" + +"$have_gas_1906": ; preds = %"$out_of_gas_1905", %"$have_gas_1885" + %"$consume_1907" = sub i64 %"$gasrem_1903", %"$gasadd_1902" + store i64 %"$consume_1907", i64* @_gasrem, align 8 + %"$gasrem_1908" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1909" = icmp ugt i64 2, %"$gasrem_1908" + br i1 %"$gascmp_1909", label %"$out_of_gas_1910", label %"$have_gas_1911" + +"$out_of_gas_1910": ; preds = %"$have_gas_1906" + call void @_out_of_gas() + br label %"$have_gas_1911" + +"$have_gas_1911": ; preds = %"$out_of_gas_1910", %"$have_gas_1906" + %"$consume_1912" = sub i64 %"$gasrem_1908", 2 + store i64 %"$consume_1912", i64* @_gasrem, align 8 + %"$$c1_5_1914" = load %"TName_Option_Map_(String)_(String)"*, %"TName_Option_Map_(String)_(String)"** %"$c1_5", align 8 + %"$$c1_5_tag_1915" = getelementptr inbounds %"TName_Option_Map_(String)_(String)", %"TName_Option_Map_(String)_(String)"* %"$$c1_5_1914", i32 0, i32 0 + %"$$c1_5_tag_1916" = load i8, i8* %"$$c1_5_tag_1915", align 1 + switch i8 %"$$c1_5_tag_1916", label %"$empty_default_1917" [ + i8 0, label %"$Some_1918" + i8 1, label %"$None_1942" + ], !dbg !414 + +"$Some_1918": ; preds = %"$have_gas_1911" + %"$$c1_5_1919" = bitcast %"TName_Option_Map_(String)_(String)"* %"$$c1_5_1914" to %"CName_Some_Map_(String)_(String)"* + %"$$$c1_5_18_gep_1920" = getelementptr inbounds %"CName_Some_Map_(String)_(String)", %"CName_Some_Map_(String)_(String)"* %"$$c1_5_1919", i32 0, i32 1 + %"$$$c1_5_18_load_1921" = load %Map_String_String*, %Map_String_String** %"$$$c1_5_18_gep_1920", align 8 %"$$c1_5_18" = alloca %Map_String_String*, align 8 - store %Map_String_String* %"$$$c1_5_18_load_1892", %Map_String_String** %"$$c1_5_18", align 8 - %"$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" + store %Map_String_String* %"$$$c1_5_18_load_1921", %Map_String_String** %"$$c1_5_18", align 8 + %"$gasrem_1922" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1923" = icmp ugt i64 1, %"$gasrem_1922" + br i1 %"$gascmp_1923", label %"$out_of_gas_1924", label %"$have_gas_1925" -"$out_of_gas_1895": ; preds = %"$Some_1889" +"$out_of_gas_1924": ; preds = %"$Some_1918" call void @_out_of_gas() - br label %"$have_gas_1896" + br label %"$have_gas_1925" -"$have_gas_1896": ; preds = %"$out_of_gas_1895", %"$Some_1889" - %"$consume_1897" = sub i64 %"$gasrem_1893", 1 - store i64 %"$consume_1897", i64* @_gasrem, align 8 +"$have_gas_1925": ; preds = %"$out_of_gas_1924", %"$Some_1918" + %"$consume_1926" = sub i64 %"$gasrem_1922", 1 + store i64 %"$consume_1926", i64* @_gasrem, align 8 %m4 = 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" - -"$out_of_gas_1900": ; preds = %"$have_gas_1896" - call void @_out_of_gas() - br label %"$have_gas_1901" - -"$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 ([36 x i8], [36 x i8]* @"$stringlit_1903", i32 0, i32 0), i32 36 }, %String* %m4, align 8, !dbg !202 - %"$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" - -"$out_of_gas_1906": ; preds = %"$have_gas_1901" - call void @_out_of_gas() - br label %"$have_gas_1907" - -"$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 - %"$fail_msg__origin_1909" = alloca [20 x i8], align 1 - store [20 x i8] %_origin, [20 x i8]* %"$fail_msg__origin_1909", align 1 - %"$fail_msg__sender_1910" = alloca [20 x i8], align 1 - store [20 x i8] %_sender, [20 x i8]* %"$fail_msg__sender_1910", align 1 - %"$tname_1911" = load %String, %String* %tname, align 8 - %"$m_1912" = load %String, %String* %m4, align 8 - call void @"$fail_msg_292"(%Uint128 %_amount, [20 x i8]* %"$fail_msg__origin_1909", [20 x i8]* %"$fail_msg__sender_1910", %String %"$tname_1911", %String %"$m_1912"), !dbg !205 - br label %"$matchsucc_1884" - -"$None_1913": ; preds = %"$have_gas_1882" - %"$$c1_5_1914" = bitcast %"TName_Option_Map_(String)_(String)"* %"$$c1_5_1885" to %"CName_None_Map_(String)_(String)"* - br label %"$matchsucc_1884" - -"$empty_default_1888": ; preds = %"$have_gas_1882" - br label %"$matchsucc_1884" - -"$matchsucc_1884": ; preds = %"$None_1913", %"$have_gas_1907", %"$empty_default_1888" - %"$gasrem_1915" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1916" = icmp ugt i64 1, %"$gasrem_1915" - br i1 %"$gascmp_1916", label %"$out_of_gas_1917", label %"$have_gas_1918" - -"$out_of_gas_1917": ; preds = %"$matchsucc_1884" - call void @_out_of_gas() - br label %"$have_gas_1918" - -"$have_gas_1918": ; preds = %"$out_of_gas_1917", %"$matchsucc_1884" - %"$consume_1919" = sub i64 %"$gasrem_1915", 1 - store i64 %"$consume_1919", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %String* %m4, metadata !415, metadata !DIExpression()), !dbg !418 + %"$gasrem_1927" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1928" = icmp ugt i64 1, %"$gasrem_1927" + br i1 %"$gascmp_1928", label %"$out_of_gas_1929", label %"$have_gas_1930" + +"$out_of_gas_1929": ; preds = %"$have_gas_1925" + call void @_out_of_gas() + br label %"$have_gas_1930" + +"$have_gas_1930": ; preds = %"$out_of_gas_1929", %"$have_gas_1925" + %"$consume_1931" = sub i64 %"$gasrem_1927", 1 + store i64 %"$consume_1931", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([36 x i8], [36 x i8]* @"$stringlit_1932", i32 0, i32 0), i32 36 }, %String* %m4, align 8, !dbg !419 + %"$gasrem_1933" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1934" = icmp ugt i64 1, %"$gasrem_1933" + br i1 %"$gascmp_1934", label %"$out_of_gas_1935", label %"$have_gas_1936" + +"$out_of_gas_1935": ; preds = %"$have_gas_1930" + call void @_out_of_gas() + br label %"$have_gas_1936" + +"$have_gas_1936": ; preds = %"$out_of_gas_1935", %"$have_gas_1930" + %"$consume_1937" = sub i64 %"$gasrem_1933", 1 + store i64 %"$consume_1937", i64* @_gasrem, align 8 + %"$fail_msg__origin_1938" = alloca [20 x i8], align 1 + store [20 x i8] %_origin, [20 x i8]* %"$fail_msg__origin_1938", align 1 + %"$fail_msg__sender_1939" = alloca [20 x i8], align 1 + store [20 x i8] %_sender, [20 x i8]* %"$fail_msg__sender_1939", align 1 + %"$tname_1940" = load %String, %String* %tname, align 8 + %"$m_1941" = load %String, %String* %m4, align 8 + call void @"$fail_msg_298"(%Uint128 %_amount, [20 x i8]* %"$fail_msg__origin_1938", [20 x i8]* %"$fail_msg__sender_1939", %String %"$tname_1940", %String %"$m_1941"), !dbg !420 + br label %"$matchsucc_1913" + +"$None_1942": ; preds = %"$have_gas_1911" + %"$$c1_5_1943" = bitcast %"TName_Option_Map_(String)_(String)"* %"$$c1_5_1914" to %"CName_None_Map_(String)_(String)"* + br label %"$matchsucc_1913" + +"$empty_default_1917": ; preds = %"$have_gas_1911" + br label %"$matchsucc_1913" + +"$matchsucc_1913": ; preds = %"$None_1942", %"$have_gas_1936", %"$empty_default_1917" + %"$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 = %"$matchsucc_1913" + call void @_out_of_gas() + br label %"$have_gas_1947" + +"$have_gas_1947": ; preds = %"$out_of_gas_1946", %"$matchsucc_1913" + %"$consume_1948" = sub i64 %"$gasrem_1944", 1 + store i64 %"$consume_1948", i64* @_gasrem, align 8 %"$key1b_6" = alloca %String, align 8 - %"$gasrem_1920" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1921" = icmp ugt i64 1, %"$gasrem_1920" - br i1 %"$gascmp_1921", label %"$out_of_gas_1922", label %"$have_gas_1923" + call void @llvm.dbg.declare(metadata %String* %"$key1b_6", metadata !421, metadata !DIExpression()), !dbg !422 + %"$gasrem_1949" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1950" = icmp ugt i64 1, %"$gasrem_1949" + br i1 %"$gascmp_1950", label %"$out_of_gas_1951", label %"$have_gas_1952" -"$out_of_gas_1922": ; preds = %"$have_gas_1918" +"$out_of_gas_1951": ; preds = %"$have_gas_1947" call void @_out_of_gas() - br label %"$have_gas_1923" + br label %"$have_gas_1952" -"$have_gas_1923": ; preds = %"$out_of_gas_1922", %"$have_gas_1918" - %"$consume_1924" = sub i64 %"$gasrem_1920", 1 - store i64 %"$consume_1924", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_1925", i32 0, i32 0), i32 5 }, %String* %"$key1b_6", align 8, !dbg !206 - %"$gasrem_1926" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1927" = icmp ugt i64 1, %"$gasrem_1926" - br i1 %"$gascmp_1927", label %"$out_of_gas_1928", label %"$have_gas_1929" +"$have_gas_1952": ; preds = %"$out_of_gas_1951", %"$have_gas_1947" + %"$consume_1953" = sub i64 %"$gasrem_1949", 1 + store i64 %"$consume_1953", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_1954", i32 0, i32 0), i32 5 }, %String* %"$key1b_6", align 8, !dbg !423 + %"$gasrem_1955" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1956" = icmp ugt i64 1, %"$gasrem_1955" + br i1 %"$gascmp_1956", label %"$out_of_gas_1957", label %"$have_gas_1958" -"$out_of_gas_1928": ; preds = %"$have_gas_1923" +"$out_of_gas_1957": ; preds = %"$have_gas_1952" call void @_out_of_gas() - br label %"$have_gas_1929" + br label %"$have_gas_1958" -"$have_gas_1929": ; preds = %"$out_of_gas_1928", %"$have_gas_1923" - %"$consume_1930" = sub i64 %"$gasrem_1926", 1 - store i64 %"$consume_1930", i64* @_gasrem, align 8 +"$have_gas_1958": ; preds = %"$out_of_gas_1957", %"$have_gas_1952" + %"$consume_1959" = sub i64 %"$gasrem_1955", 1 + store i64 %"$consume_1959", i64* @_gasrem, align 8 %key2b = alloca %String, 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" + call void @llvm.dbg.declare(metadata %String* %key2b, metadata !424, metadata !DIExpression()), !dbg !425 + %"$gasrem_1960" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1961" = icmp ugt i64 1, %"$gasrem_1960" + br i1 %"$gascmp_1961", label %"$out_of_gas_1962", label %"$have_gas_1963" -"$out_of_gas_1933": ; preds = %"$have_gas_1929" +"$out_of_gas_1962": ; preds = %"$have_gas_1958" call void @_out_of_gas() - br label %"$have_gas_1934" + br label %"$have_gas_1963" -"$have_gas_1934": ; preds = %"$out_of_gas_1933", %"$have_gas_1929" - %"$consume_1935" = sub i64 %"$gasrem_1931", 1 - store i64 %"$consume_1935", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_1936", i32 0, i32 0), i32 5 }, %String* %key2b, align 8, !dbg !207 +"$have_gas_1963": ; preds = %"$out_of_gas_1962", %"$have_gas_1958" + %"$consume_1964" = sub i64 %"$gasrem_1960", 1 + store i64 %"$consume_1964", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_1965", i32 0, i32 0), i32 5 }, %String* %key2b, align 8, !dbg !426 %"$c1_7" = alloca %TName_Option_String*, align 8 - %"$indices_buf_1937_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$indices_buf_1937_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_1937_salloc_load", i64 32) - %"$indices_buf_1937_salloc" = bitcast i8* %"$indices_buf_1937_salloc_salloc" to [32 x i8]* - %"$indices_buf_1937" = bitcast [32 x i8]* %"$indices_buf_1937_salloc" to i8* - %"$$key1b_6_1938" = load %String, %String* %"$key1b_6", align 8 - %"$indices_gep_1939" = getelementptr i8, i8* %"$indices_buf_1937", i32 0 - %indices_cast5 = bitcast i8* %"$indices_gep_1939" to %String* - store %String %"$$key1b_6_1938", %String* %indices_cast5, align 8 - %"$key2b_1940" = load %String, %String* %key2b, align 8 - %"$indices_gep_1941" = getelementptr i8, i8* %"$indices_buf_1937", i32 16 - %indices_cast6 = bitcast i8* %"$indices_gep_1941" to %String* - store %String %"$key2b_1940", %String* %indices_cast6, align 8 - %"$execptr_load_1943" = load i8*, i8** @_execptr, align 8 - %"$$c1_7_call_1944" = call i8* @_fetch_field(i8* %"$execptr_load_1943", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m2_1942", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_76", i32 2, i8* %"$indices_buf_1937", i32 1), !dbg !208 - %"$$c1_7_1945" = bitcast i8* %"$$c1_7_call_1944" to %TName_Option_String* - store %TName_Option_String* %"$$c1_7_1945", %TName_Option_String** %"$c1_7", align 8 - %"$$c1_7_1946" = load %TName_Option_String*, %TName_Option_String** %"$c1_7", align 8 - %"$$$c1_7_1946_1947" = bitcast %TName_Option_String* %"$$c1_7_1946" to i8* - %"$_literal_cost_call_1948" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_String_72", i8* %"$$$c1_7_1946_1947") - %"$gasadd_1949" = add i64 %"$_literal_cost_call_1948", 0 - %"$gasadd_1950" = add i64 %"$gasadd_1949", 2 - %"$gasrem_1951" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1952" = icmp ugt i64 %"$gasadd_1950", %"$gasrem_1951" - br i1 %"$gascmp_1952", label %"$out_of_gas_1953", label %"$have_gas_1954" - -"$out_of_gas_1953": ; preds = %"$have_gas_1934" - call void @_out_of_gas() - br label %"$have_gas_1954" - -"$have_gas_1954": ; preds = %"$out_of_gas_1953", %"$have_gas_1934" - %"$consume_1955" = sub i64 %"$gasrem_1951", %"$gasadd_1950" - store i64 %"$consume_1955", i64* @_gasrem, align 8 - %"$gasrem_1956" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1957" = icmp ugt i64 2, %"$gasrem_1956" - br i1 %"$gascmp_1957", label %"$out_of_gas_1958", label %"$have_gas_1959" - -"$out_of_gas_1958": ; preds = %"$have_gas_1954" - call void @_out_of_gas() - br label %"$have_gas_1959" - -"$have_gas_1959": ; preds = %"$out_of_gas_1958", %"$have_gas_1954" - %"$consume_1960" = sub i64 %"$gasrem_1956", 2 - store i64 %"$consume_1960", i64* @_gasrem, align 8 - %"$$c1_7_1962" = load %TName_Option_String*, %TName_Option_String** %"$c1_7", align 8 - %"$$c1_7_tag_1963" = getelementptr inbounds %TName_Option_String, %TName_Option_String* %"$$c1_7_1962", i32 0, i32 0 - %"$$c1_7_tag_1964" = load i8, i8* %"$$c1_7_tag_1963", align 1 - switch i8 %"$$c1_7_tag_1964", label %"$empty_default_1965" [ - i8 0, label %"$Some_1966" - i8 1, label %"$None_1990" - ], !dbg !209 - -"$Some_1966": ; preds = %"$have_gas_1959" - %"$$c1_7_1967" = bitcast %TName_Option_String* %"$$c1_7_1962" to %CName_Some_String* - %"$$$c1_7_17_gep_1968" = getelementptr inbounds %CName_Some_String, %CName_Some_String* %"$$c1_7_1967", i32 0, i32 1 - %"$$$c1_7_17_load_1969" = load %String, %String* %"$$$c1_7_17_gep_1968", align 8 + call void @llvm.dbg.declare(metadata %TName_Option_String** %"$c1_7", metadata !427, metadata !DIExpression()), !dbg !428 + %"$indices_buf_1966_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$indices_buf_1966_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_1966_salloc_load", i64 32) + %"$indices_buf_1966_salloc" = bitcast i8* %"$indices_buf_1966_salloc_salloc" to [32 x i8]* + %"$indices_buf_1966" = bitcast [32 x i8]* %"$indices_buf_1966_salloc" to i8* + %"$$key1b_6_1967" = load %String, %String* %"$key1b_6", align 8 + %"$indices_gep_1968" = getelementptr i8, i8* %"$indices_buf_1966", i32 0 + %indices_cast5 = bitcast i8* %"$indices_gep_1968" to %String* + store %String %"$$key1b_6_1967", %String* %indices_cast5, align 8 + %"$key2b_1969" = load %String, %String* %key2b, align 8 + %"$indices_gep_1970" = getelementptr i8, i8* %"$indices_buf_1966", i32 16 + %indices_cast6 = bitcast i8* %"$indices_gep_1970" to %String* + store %String %"$key2b_1969", %String* %indices_cast6, align 8 + %"$execptr_load_1972" = load i8*, i8** @_execptr, align 8 + %"$$c1_7_call_1973" = call i8* @_fetch_field(i8* %"$execptr_load_1972", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m2_1971", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_76", i32 2, i8* %"$indices_buf_1966", i32 1), !dbg !428 + %"$$c1_7_1974" = bitcast i8* %"$$c1_7_call_1973" to %TName_Option_String* + store %TName_Option_String* %"$$c1_7_1974", %TName_Option_String** %"$c1_7", align 8 + %"$$c1_7_1975" = load %TName_Option_String*, %TName_Option_String** %"$c1_7", align 8 + %"$$$c1_7_1975_1976" = bitcast %TName_Option_String* %"$$c1_7_1975" to i8* + %"$_literal_cost_call_1977" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_String_72", i8* %"$$$c1_7_1975_1976") + %"$gasadd_1978" = add i64 %"$_literal_cost_call_1977", 0 + %"$gasadd_1979" = add i64 %"$gasadd_1978", 2 + %"$gasrem_1980" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1981" = icmp ugt i64 %"$gasadd_1979", %"$gasrem_1980" + br i1 %"$gascmp_1981", label %"$out_of_gas_1982", label %"$have_gas_1983" + +"$out_of_gas_1982": ; preds = %"$have_gas_1963" + call void @_out_of_gas() + br label %"$have_gas_1983" + +"$have_gas_1983": ; preds = %"$out_of_gas_1982", %"$have_gas_1963" + %"$consume_1984" = sub i64 %"$gasrem_1980", %"$gasadd_1979" + store i64 %"$consume_1984", i64* @_gasrem, align 8 + %"$gasrem_1985" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1986" = icmp ugt i64 2, %"$gasrem_1985" + br i1 %"$gascmp_1986", label %"$out_of_gas_1987", label %"$have_gas_1988" + +"$out_of_gas_1987": ; preds = %"$have_gas_1983" + call void @_out_of_gas() + br label %"$have_gas_1988" + +"$have_gas_1988": ; preds = %"$out_of_gas_1987", %"$have_gas_1983" + %"$consume_1989" = sub i64 %"$gasrem_1985", 2 + store i64 %"$consume_1989", i64* @_gasrem, align 8 + %"$$c1_7_1991" = load %TName_Option_String*, %TName_Option_String** %"$c1_7", align 8 + %"$$c1_7_tag_1992" = getelementptr inbounds %TName_Option_String, %TName_Option_String* %"$$c1_7_1991", i32 0, i32 0 + %"$$c1_7_tag_1993" = load i8, i8* %"$$c1_7_tag_1992", align 1 + switch i8 %"$$c1_7_tag_1993", label %"$empty_default_1994" [ + i8 0, label %"$Some_1995" + i8 1, label %"$None_2019" + ], !dbg !429 + +"$Some_1995": ; preds = %"$have_gas_1988" + %"$$c1_7_1996" = bitcast %TName_Option_String* %"$$c1_7_1991" to %CName_Some_String* + %"$$$c1_7_17_gep_1997" = getelementptr inbounds %CName_Some_String, %CName_Some_String* %"$$c1_7_1996", i32 0, i32 1 + %"$$$c1_7_17_load_1998" = load %String, %String* %"$$$c1_7_17_gep_1997", align 8 %"$$c1_7_17" = alloca %String, align 8 - store %String %"$$$c1_7_17_load_1969", %String* %"$$c1_7_17", align 8 - %"$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" + store %String %"$$$c1_7_17_load_1998", %String* %"$$c1_7_17", 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_1972": ; preds = %"$Some_1966" +"$out_of_gas_2001": ; preds = %"$Some_1995" call void @_out_of_gas() - br label %"$have_gas_1973" + br label %"$have_gas_2002" -"$have_gas_1973": ; preds = %"$out_of_gas_1972", %"$Some_1966" - %"$consume_1974" = sub i64 %"$gasrem_1970", 1 - store i64 %"$consume_1974", i64* @_gasrem, align 8 +"$have_gas_2002": ; preds = %"$out_of_gas_2001", %"$Some_1995" + %"$consume_2003" = sub i64 %"$gasrem_1999", 1 + store i64 %"$consume_2003", i64* @_gasrem, align 8 %m7 = 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" - -"$out_of_gas_1977": ; preds = %"$have_gas_1973" - call void @_out_of_gas() - br label %"$have_gas_1978" - -"$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 ([42 x i8], [42 x i8]* @"$stringlit_1980", i32 0, i32 0), i32 42 }, %String* %m7, align 8, !dbg !210 - %"$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" - -"$out_of_gas_1983": ; preds = %"$have_gas_1978" - call void @_out_of_gas() - br label %"$have_gas_1984" - -"$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 - %"$fail_msg__origin_1986" = alloca [20 x i8], align 1 - store [20 x i8] %_origin, [20 x i8]* %"$fail_msg__origin_1986", align 1 - %"$fail_msg__sender_1987" = alloca [20 x i8], align 1 - store [20 x i8] %_sender, [20 x i8]* %"$fail_msg__sender_1987", align 1 - %"$tname_1988" = load %String, %String* %tname, align 8 - %"$m_1989" = load %String, %String* %m7, align 8 - call void @"$fail_msg_292"(%Uint128 %_amount, [20 x i8]* %"$fail_msg__origin_1986", [20 x i8]* %"$fail_msg__sender_1987", %String %"$tname_1988", %String %"$m_1989"), !dbg !213 - br label %"$matchsucc_1961" - -"$None_1990": ; preds = %"$have_gas_1959" - %"$$c1_7_1991" = bitcast %TName_Option_String* %"$$c1_7_1962" to %CName_None_String* - br label %"$matchsucc_1961" - -"$empty_default_1965": ; preds = %"$have_gas_1959" - br label %"$matchsucc_1961" - -"$matchsucc_1961": ; preds = %"$None_1990", %"$have_gas_1984", %"$empty_default_1965" - %"$gasrem_1992" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1993" = icmp ugt i64 1, %"$gasrem_1992" - br i1 %"$gascmp_1993", label %"$out_of_gas_1994", label %"$have_gas_1995" - -"$out_of_gas_1994": ; preds = %"$matchsucc_1961" - call void @_out_of_gas() - br label %"$have_gas_1995" - -"$have_gas_1995": ; preds = %"$out_of_gas_1994", %"$matchsucc_1961" - %"$consume_1996" = sub i64 %"$gasrem_1992", 1 - store i64 %"$consume_1996", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %String* %m7, metadata !430, metadata !DIExpression()), !dbg !433 + %"$gasrem_2004" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2005" = icmp ugt i64 1, %"$gasrem_2004" + br i1 %"$gascmp_2005", label %"$out_of_gas_2006", label %"$have_gas_2007" + +"$out_of_gas_2006": ; preds = %"$have_gas_2002" + call void @_out_of_gas() + br label %"$have_gas_2007" + +"$have_gas_2007": ; preds = %"$out_of_gas_2006", %"$have_gas_2002" + %"$consume_2008" = sub i64 %"$gasrem_2004", 1 + store i64 %"$consume_2008", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([42 x i8], [42 x i8]* @"$stringlit_2009", i32 0, i32 0), i32 42 }, %String* %m7, align 8, !dbg !434 + %"$gasrem_2010" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2011" = icmp ugt i64 1, %"$gasrem_2010" + br i1 %"$gascmp_2011", label %"$out_of_gas_2012", label %"$have_gas_2013" + +"$out_of_gas_2012": ; preds = %"$have_gas_2007" + call void @_out_of_gas() + br label %"$have_gas_2013" + +"$have_gas_2013": ; preds = %"$out_of_gas_2012", %"$have_gas_2007" + %"$consume_2014" = sub i64 %"$gasrem_2010", 1 + store i64 %"$consume_2014", i64* @_gasrem, align 8 + %"$fail_msg__origin_2015" = alloca [20 x i8], align 1 + store [20 x i8] %_origin, [20 x i8]* %"$fail_msg__origin_2015", align 1 + %"$fail_msg__sender_2016" = alloca [20 x i8], align 1 + store [20 x i8] %_sender, [20 x i8]* %"$fail_msg__sender_2016", align 1 + %"$tname_2017" = load %String, %String* %tname, align 8 + %"$m_2018" = load %String, %String* %m7, align 8 + call void @"$fail_msg_298"(%Uint128 %_amount, [20 x i8]* %"$fail_msg__origin_2015", [20 x i8]* %"$fail_msg__sender_2016", %String %"$tname_2017", %String %"$m_2018"), !dbg !435 + br label %"$matchsucc_1990" + +"$None_2019": ; preds = %"$have_gas_1988" + %"$$c1_7_2020" = bitcast %TName_Option_String* %"$$c1_7_1991" to %CName_None_String* + br label %"$matchsucc_1990" + +"$empty_default_1994": ; preds = %"$have_gas_1988" + br label %"$matchsucc_1990" + +"$matchsucc_1990": ; preds = %"$None_2019", %"$have_gas_2013", %"$empty_default_1994" + %"$gasrem_2021" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2022" = icmp ugt i64 1, %"$gasrem_2021" + br i1 %"$gascmp_2022", label %"$out_of_gas_2023", label %"$have_gas_2024" + +"$out_of_gas_2023": ; preds = %"$matchsucc_1990" + call void @_out_of_gas() + br label %"$have_gas_2024" + +"$have_gas_2024": ; preds = %"$out_of_gas_2023", %"$matchsucc_1990" + %"$consume_2025" = sub i64 %"$gasrem_2021", 1 + store i64 %"$consume_2025", i64* @_gasrem, align 8 %"$key1b_8" = alloca %String, align 8 - %"$gasrem_1997" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1998" = icmp ugt i64 1, %"$gasrem_1997" - br i1 %"$gascmp_1998", label %"$out_of_gas_1999", label %"$have_gas_2000" + call void @llvm.dbg.declare(metadata %String* %"$key1b_8", metadata !436, metadata !DIExpression()), !dbg !437 + %"$gasrem_2026" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2027" = icmp ugt i64 1, %"$gasrem_2026" + br i1 %"$gascmp_2027", label %"$out_of_gas_2028", label %"$have_gas_2029" -"$out_of_gas_1999": ; preds = %"$have_gas_1995" +"$out_of_gas_2028": ; preds = %"$have_gas_2024" call void @_out_of_gas() - br label %"$have_gas_2000" + br label %"$have_gas_2029" -"$have_gas_2000": ; preds = %"$out_of_gas_1999", %"$have_gas_1995" - %"$consume_2001" = sub i64 %"$gasrem_1997", 1 - store i64 %"$consume_2001", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_2002", i32 0, i32 0), i32 5 }, %String* %"$key1b_8", align 8, !dbg !214 - %"$gasrem_2003" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2004" = icmp ugt i64 1, %"$gasrem_2003" - br i1 %"$gascmp_2004", label %"$out_of_gas_2005", label %"$have_gas_2006" +"$have_gas_2029": ; preds = %"$out_of_gas_2028", %"$have_gas_2024" + %"$consume_2030" = sub i64 %"$gasrem_2026", 1 + store i64 %"$consume_2030", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_2031", i32 0, i32 0), i32 5 }, %String* %"$key1b_8", align 8, !dbg !438 + %"$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_2005": ; preds = %"$have_gas_2000" +"$out_of_gas_2034": ; preds = %"$have_gas_2029" call void @_out_of_gas() - br label %"$have_gas_2006" + br label %"$have_gas_2035" -"$have_gas_2006": ; preds = %"$out_of_gas_2005", %"$have_gas_2000" - %"$consume_2007" = sub i64 %"$gasrem_2003", 1 - store i64 %"$consume_2007", i64* @_gasrem, align 8 +"$have_gas_2035": ; preds = %"$out_of_gas_2034", %"$have_gas_2029" + %"$consume_2036" = sub i64 %"$gasrem_2032", 1 + store i64 %"$consume_2036", i64* @_gasrem, align 8 %key2d = alloca %String, align 8 - %"$gasrem_2008" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2009" = icmp ugt i64 1, %"$gasrem_2008" - br i1 %"$gascmp_2009", label %"$out_of_gas_2010", label %"$have_gas_2011" + call void @llvm.dbg.declare(metadata %String* %key2d, metadata !439, metadata !DIExpression()), !dbg !440 + %"$gasrem_2037" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2038" = icmp ugt i64 1, %"$gasrem_2037" + br i1 %"$gascmp_2038", label %"$out_of_gas_2039", label %"$have_gas_2040" -"$out_of_gas_2010": ; preds = %"$have_gas_2006" +"$out_of_gas_2039": ; preds = %"$have_gas_2035" call void @_out_of_gas() - br label %"$have_gas_2011" + br label %"$have_gas_2040" -"$have_gas_2011": ; preds = %"$out_of_gas_2010", %"$have_gas_2006" - %"$consume_2012" = sub i64 %"$gasrem_2008", 1 - store i64 %"$consume_2012", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_2013", i32 0, i32 0), i32 5 }, %String* %key2d, align 8, !dbg !215 +"$have_gas_2040": ; preds = %"$out_of_gas_2039", %"$have_gas_2035" + %"$consume_2041" = sub i64 %"$gasrem_2037", 1 + store i64 %"$consume_2041", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_2042", i32 0, i32 0), i32 5 }, %String* %key2d, align 8, !dbg !441 %"$c1_9" = alloca %TName_Option_String*, align 8 - %"$indices_buf_2014_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$indices_buf_2014_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_2014_salloc_load", i64 32) - %"$indices_buf_2014_salloc" = bitcast i8* %"$indices_buf_2014_salloc_salloc" to [32 x i8]* - %"$indices_buf_2014" = bitcast [32 x i8]* %"$indices_buf_2014_salloc" to i8* - %"$$key1b_8_2015" = load %String, %String* %"$key1b_8", align 8 - %"$indices_gep_2016" = getelementptr i8, i8* %"$indices_buf_2014", i32 0 - %indices_cast8 = bitcast i8* %"$indices_gep_2016" to %String* - store %String %"$$key1b_8_2015", %String* %indices_cast8, align 8 - %"$key2d_2017" = load %String, %String* %key2d, align 8 - %"$indices_gep_2018" = getelementptr i8, i8* %"$indices_buf_2014", i32 16 - %indices_cast9 = bitcast i8* %"$indices_gep_2018" to %String* - store %String %"$key2d_2017", %String* %indices_cast9, align 8 - %"$execptr_load_2020" = load i8*, i8** @_execptr, align 8 - %"$$c1_9_call_2021" = call i8* @_fetch_field(i8* %"$execptr_load_2020", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m2_2019", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_76", i32 2, i8* %"$indices_buf_2014", i32 1), !dbg !216 - %"$$c1_9_2022" = bitcast i8* %"$$c1_9_call_2021" to %TName_Option_String* - store %TName_Option_String* %"$$c1_9_2022", %TName_Option_String** %"$c1_9", align 8 - %"$$c1_9_2023" = load %TName_Option_String*, %TName_Option_String** %"$c1_9", align 8 - %"$$$c1_9_2023_2024" = bitcast %TName_Option_String* %"$$c1_9_2023" to i8* - %"$_literal_cost_call_2025" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_String_72", i8* %"$$$c1_9_2023_2024") - %"$gasadd_2026" = add i64 %"$_literal_cost_call_2025", 0 - %"$gasadd_2027" = add i64 %"$gasadd_2026", 2 - %"$gasrem_2028" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2029" = icmp ugt i64 %"$gasadd_2027", %"$gasrem_2028" - br i1 %"$gascmp_2029", label %"$out_of_gas_2030", label %"$have_gas_2031" - -"$out_of_gas_2030": ; preds = %"$have_gas_2011" - call void @_out_of_gas() - br label %"$have_gas_2031" - -"$have_gas_2031": ; preds = %"$out_of_gas_2030", %"$have_gas_2011" - %"$consume_2032" = sub i64 %"$gasrem_2028", %"$gasadd_2027" - store i64 %"$consume_2032", i64* @_gasrem, align 8 - %"$gasrem_2033" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2034" = icmp ugt i64 2, %"$gasrem_2033" - br i1 %"$gascmp_2034", label %"$out_of_gas_2035", label %"$have_gas_2036" - -"$out_of_gas_2035": ; preds = %"$have_gas_2031" - call void @_out_of_gas() - br label %"$have_gas_2036" - -"$have_gas_2036": ; preds = %"$out_of_gas_2035", %"$have_gas_2031" - %"$consume_2037" = sub i64 %"$gasrem_2033", 2 - store i64 %"$consume_2037", i64* @_gasrem, align 8 - %"$$c1_9_2039" = load %TName_Option_String*, %TName_Option_String** %"$c1_9", align 8 - %"$$c1_9_tag_2040" = getelementptr inbounds %TName_Option_String, %TName_Option_String* %"$$c1_9_2039", i32 0, i32 0 - %"$$c1_9_tag_2041" = load i8, i8* %"$$c1_9_tag_2040", align 1 - switch i8 %"$$c1_9_tag_2041", label %"$empty_default_2042" [ - i8 0, label %"$Some_2043" - i8 1, label %"$None_2067" - ], !dbg !217 - -"$Some_2043": ; preds = %"$have_gas_2036" - %"$$c1_9_2044" = bitcast %TName_Option_String* %"$$c1_9_2039" to %CName_Some_String* - %"$$$c1_9_16_gep_2045" = getelementptr inbounds %CName_Some_String, %CName_Some_String* %"$$c1_9_2044", i32 0, i32 1 - %"$$$c1_9_16_load_2046" = load %String, %String* %"$$$c1_9_16_gep_2045", align 8 + call void @llvm.dbg.declare(metadata %TName_Option_String** %"$c1_9", metadata !442, metadata !DIExpression()), !dbg !443 + %"$indices_buf_2043_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$indices_buf_2043_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_2043_salloc_load", i64 32) + %"$indices_buf_2043_salloc" = bitcast i8* %"$indices_buf_2043_salloc_salloc" to [32 x i8]* + %"$indices_buf_2043" = bitcast [32 x i8]* %"$indices_buf_2043_salloc" to i8* + %"$$key1b_8_2044" = load %String, %String* %"$key1b_8", align 8 + %"$indices_gep_2045" = getelementptr i8, i8* %"$indices_buf_2043", i32 0 + %indices_cast8 = bitcast i8* %"$indices_gep_2045" to %String* + store %String %"$$key1b_8_2044", %String* %indices_cast8, align 8 + %"$key2d_2046" = load %String, %String* %key2d, align 8 + %"$indices_gep_2047" = getelementptr i8, i8* %"$indices_buf_2043", i32 16 + %indices_cast9 = bitcast i8* %"$indices_gep_2047" to %String* + store %String %"$key2d_2046", %String* %indices_cast9, align 8 + %"$execptr_load_2049" = load i8*, i8** @_execptr, align 8 + %"$$c1_9_call_2050" = call i8* @_fetch_field(i8* %"$execptr_load_2049", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m2_2048", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_76", i32 2, i8* %"$indices_buf_2043", i32 1), !dbg !443 + %"$$c1_9_2051" = bitcast i8* %"$$c1_9_call_2050" to %TName_Option_String* + store %TName_Option_String* %"$$c1_9_2051", %TName_Option_String** %"$c1_9", align 8 + %"$$c1_9_2052" = load %TName_Option_String*, %TName_Option_String** %"$c1_9", align 8 + %"$$$c1_9_2052_2053" = bitcast %TName_Option_String* %"$$c1_9_2052" to i8* + %"$_literal_cost_call_2054" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_String_72", i8* %"$$$c1_9_2052_2053") + %"$gasadd_2055" = add i64 %"$_literal_cost_call_2054", 0 + %"$gasadd_2056" = add i64 %"$gasadd_2055", 2 + %"$gasrem_2057" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2058" = icmp ugt i64 %"$gasadd_2056", %"$gasrem_2057" + br i1 %"$gascmp_2058", label %"$out_of_gas_2059", label %"$have_gas_2060" + +"$out_of_gas_2059": ; preds = %"$have_gas_2040" + call void @_out_of_gas() + br label %"$have_gas_2060" + +"$have_gas_2060": ; preds = %"$out_of_gas_2059", %"$have_gas_2040" + %"$consume_2061" = sub i64 %"$gasrem_2057", %"$gasadd_2056" + store i64 %"$consume_2061", i64* @_gasrem, align 8 + %"$gasrem_2062" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2063" = icmp ugt i64 2, %"$gasrem_2062" + br i1 %"$gascmp_2063", label %"$out_of_gas_2064", label %"$have_gas_2065" + +"$out_of_gas_2064": ; preds = %"$have_gas_2060" + call void @_out_of_gas() + br label %"$have_gas_2065" + +"$have_gas_2065": ; preds = %"$out_of_gas_2064", %"$have_gas_2060" + %"$consume_2066" = sub i64 %"$gasrem_2062", 2 + store i64 %"$consume_2066", i64* @_gasrem, align 8 + %"$$c1_9_2068" = load %TName_Option_String*, %TName_Option_String** %"$c1_9", align 8 + %"$$c1_9_tag_2069" = getelementptr inbounds %TName_Option_String, %TName_Option_String* %"$$c1_9_2068", i32 0, i32 0 + %"$$c1_9_tag_2070" = load i8, i8* %"$$c1_9_tag_2069", align 1 + switch i8 %"$$c1_9_tag_2070", label %"$empty_default_2071" [ + i8 0, label %"$Some_2072" + i8 1, label %"$None_2096" + ], !dbg !444 + +"$Some_2072": ; preds = %"$have_gas_2065" + %"$$c1_9_2073" = bitcast %TName_Option_String* %"$$c1_9_2068" to %CName_Some_String* + %"$$$c1_9_16_gep_2074" = getelementptr inbounds %CName_Some_String, %CName_Some_String* %"$$c1_9_2073", i32 0, i32 1 + %"$$$c1_9_16_load_2075" = load %String, %String* %"$$$c1_9_16_gep_2074", align 8 %"$$c1_9_16" = alloca %String, align 8 - store %String %"$$$c1_9_16_load_2046", %String* %"$$c1_9_16", align 8 - %"$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" + store %String %"$$$c1_9_16_load_2075", %String* %"$$c1_9_16", align 8 + %"$gasrem_2076" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2077" = icmp ugt i64 1, %"$gasrem_2076" + br i1 %"$gascmp_2077", label %"$out_of_gas_2078", label %"$have_gas_2079" -"$out_of_gas_2049": ; preds = %"$Some_2043" +"$out_of_gas_2078": ; preds = %"$Some_2072" call void @_out_of_gas() - br label %"$have_gas_2050" + br label %"$have_gas_2079" -"$have_gas_2050": ; preds = %"$out_of_gas_2049", %"$Some_2043" - %"$consume_2051" = sub i64 %"$gasrem_2047", 1 - store i64 %"$consume_2051", i64* @_gasrem, align 8 +"$have_gas_2079": ; preds = %"$out_of_gas_2078", %"$Some_2072" + %"$consume_2080" = sub i64 %"$gasrem_2076", 1 + store i64 %"$consume_2080", i64* @_gasrem, align 8 %m10 = 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" - -"$out_of_gas_2054": ; preds = %"$have_gas_2050" - call void @_out_of_gas() - br label %"$have_gas_2055" - -"$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 ([42 x i8], [42 x i8]* @"$stringlit_2057", i32 0, i32 0), i32 42 }, %String* %m10, align 8, !dbg !218 - %"$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" - -"$out_of_gas_2060": ; preds = %"$have_gas_2055" - call void @_out_of_gas() - br label %"$have_gas_2061" - -"$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 - %"$fail_msg__origin_2063" = alloca [20 x i8], align 1 - store [20 x i8] %_origin, [20 x i8]* %"$fail_msg__origin_2063", align 1 - %"$fail_msg__sender_2064" = alloca [20 x i8], align 1 - store [20 x i8] %_sender, [20 x i8]* %"$fail_msg__sender_2064", align 1 - %"$tname_2065" = load %String, %String* %tname, align 8 - %"$m_2066" = load %String, %String* %m10, align 8 - call void @"$fail_msg_292"(%Uint128 %_amount, [20 x i8]* %"$fail_msg__origin_2063", [20 x i8]* %"$fail_msg__sender_2064", %String %"$tname_2065", %String %"$m_2066"), !dbg !221 - br label %"$matchsucc_2038" - -"$None_2067": ; preds = %"$have_gas_2036" - %"$$c1_9_2068" = bitcast %TName_Option_String* %"$$c1_9_2039" to %CName_None_String* - br label %"$matchsucc_2038" - -"$empty_default_2042": ; preds = %"$have_gas_2036" - br label %"$matchsucc_2038" - -"$matchsucc_2038": ; preds = %"$None_2067", %"$have_gas_2061", %"$empty_default_2042" - %"$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 = %"$matchsucc_2038" - call void @_out_of_gas() - br label %"$have_gas_2072" - -"$have_gas_2072": ; preds = %"$out_of_gas_2071", %"$matchsucc_2038" - %"$consume_2073" = sub i64 %"$gasrem_2069", 1 - store i64 %"$consume_2073", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %String* %m10, metadata !445, metadata !DIExpression()), !dbg !448 + %"$gasrem_2081" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2082" = icmp ugt i64 1, %"$gasrem_2081" + br i1 %"$gascmp_2082", label %"$out_of_gas_2083", label %"$have_gas_2084" + +"$out_of_gas_2083": ; preds = %"$have_gas_2079" + call void @_out_of_gas() + br label %"$have_gas_2084" + +"$have_gas_2084": ; preds = %"$out_of_gas_2083", %"$have_gas_2079" + %"$consume_2085" = sub i64 %"$gasrem_2081", 1 + store i64 %"$consume_2085", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([42 x i8], [42 x i8]* @"$stringlit_2086", i32 0, i32 0), i32 42 }, %String* %m10, align 8, !dbg !449 + %"$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_2089": ; preds = %"$have_gas_2084" + call void @_out_of_gas() + br label %"$have_gas_2090" + +"$have_gas_2090": ; preds = %"$out_of_gas_2089", %"$have_gas_2084" + %"$consume_2091" = sub i64 %"$gasrem_2087", 1 + store i64 %"$consume_2091", i64* @_gasrem, align 8 + %"$fail_msg__origin_2092" = alloca [20 x i8], align 1 + store [20 x i8] %_origin, [20 x i8]* %"$fail_msg__origin_2092", align 1 + %"$fail_msg__sender_2093" = alloca [20 x i8], align 1 + store [20 x i8] %_sender, [20 x i8]* %"$fail_msg__sender_2093", align 1 + %"$tname_2094" = load %String, %String* %tname, align 8 + %"$m_2095" = load %String, %String* %m10, align 8 + call void @"$fail_msg_298"(%Uint128 %_amount, [20 x i8]* %"$fail_msg__origin_2092", [20 x i8]* %"$fail_msg__sender_2093", %String %"$tname_2094", %String %"$m_2095"), !dbg !450 + br label %"$matchsucc_2067" + +"$None_2096": ; preds = %"$have_gas_2065" + %"$$c1_9_2097" = bitcast %TName_Option_String* %"$$c1_9_2068" to %CName_None_String* + br label %"$matchsucc_2067" + +"$empty_default_2071": ; preds = %"$have_gas_2065" + br label %"$matchsucc_2067" + +"$matchsucc_2067": ; preds = %"$None_2096", %"$have_gas_2090", %"$empty_default_2071" + %"$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_2100": ; preds = %"$matchsucc_2067" + call void @_out_of_gas() + br label %"$have_gas_2101" + +"$have_gas_2101": ; preds = %"$out_of_gas_2100", %"$matchsucc_2067" + %"$consume_2102" = sub i64 %"$gasrem_2098", 1 + store i64 %"$consume_2102", i64* @_gasrem, align 8 %"$key1b_10" = 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" + call void @llvm.dbg.declare(metadata %String* %"$key1b_10", metadata !451, metadata !DIExpression()), !dbg !452 + %"$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_2076": ; preds = %"$have_gas_2072" +"$out_of_gas_2105": ; preds = %"$have_gas_2101" call void @_out_of_gas() - br label %"$have_gas_2077" + br label %"$have_gas_2106" -"$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 ([5 x i8], [5 x i8]* @"$stringlit_2079", i32 0, i32 0), i32 5 }, %String* %"$key1b_10", align 8, !dbg !222 - %"$gasrem_2080" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2081" = icmp ugt i64 1, %"$gasrem_2080" - br i1 %"$gascmp_2081", label %"$out_of_gas_2082", label %"$have_gas_2083" +"$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* %"$key1b_10", align 8, !dbg !453 + %"$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_2082": ; preds = %"$have_gas_2077" +"$out_of_gas_2111": ; preds = %"$have_gas_2106" call void @_out_of_gas() - br label %"$have_gas_2083" + br label %"$have_gas_2112" -"$have_gas_2083": ; preds = %"$out_of_gas_2082", %"$have_gas_2077" - %"$consume_2084" = sub i64 %"$gasrem_2080", 1 - store i64 %"$consume_2084", 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 %key2c = alloca %String, align 8 - %"$gasrem_2085" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2086" = icmp ugt i64 1, %"$gasrem_2085" - br i1 %"$gascmp_2086", label %"$out_of_gas_2087", label %"$have_gas_2088" + call void @llvm.dbg.declare(metadata %String* %key2c, metadata !454, metadata !DIExpression()), !dbg !455 + %"$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_2087": ; preds = %"$have_gas_2083" +"$out_of_gas_2116": ; preds = %"$have_gas_2112" call void @_out_of_gas() - br label %"$have_gas_2088" + br label %"$have_gas_2117" -"$have_gas_2088": ; preds = %"$out_of_gas_2087", %"$have_gas_2083" - %"$consume_2089" = sub i64 %"$gasrem_2085", 1 - store i64 %"$consume_2089", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_2090", i32 0, i32 0), i32 5 }, %String* %key2c, align 8, !dbg !223 - %"$gasrem_2091" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2092" = icmp ugt i64 1, %"$gasrem_2091" - br i1 %"$gascmp_2092", label %"$out_of_gas_2093", label %"$have_gas_2094" +"$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* %key2c, align 8, !dbg !456 + %"$gasrem_2120" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2121" = icmp ugt i64 1, %"$gasrem_2120" + br i1 %"$gascmp_2121", label %"$out_of_gas_2122", label %"$have_gas_2123" -"$out_of_gas_2093": ; preds = %"$have_gas_2088" +"$out_of_gas_2122": ; preds = %"$have_gas_2117" call void @_out_of_gas() - br label %"$have_gas_2094" + br label %"$have_gas_2123" -"$have_gas_2094": ; preds = %"$out_of_gas_2093", %"$have_gas_2088" - %"$consume_2095" = sub i64 %"$gasrem_2091", 1 - store i64 %"$consume_2095", i64* @_gasrem, align 8 +"$have_gas_2123": ; preds = %"$out_of_gas_2122", %"$have_gas_2117" + %"$consume_2124" = sub i64 %"$gasrem_2120", 1 + store i64 %"$consume_2124", i64* @_gasrem, align 8 %s = alloca %String, align 8 - %"$gasrem_2096" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2097" = icmp ugt i64 1, %"$gasrem_2096" - br i1 %"$gascmp_2097", label %"$out_of_gas_2098", label %"$have_gas_2099" - -"$out_of_gas_2098": ; preds = %"$have_gas_2094" - call void @_out_of_gas() - br label %"$have_gas_2099" - -"$have_gas_2099": ; preds = %"$out_of_gas_2098", %"$have_gas_2094" - %"$consume_2100" = sub i64 %"$gasrem_2096", 1 - store i64 %"$consume_2100", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_2101", i32 0, i32 0), i32 3 }, %String* %s, align 8, !dbg !224 - %"$_literal_cost_s_2102" = alloca %String, align 8 - %"$s_2103" = load %String, %String* %s, align 8 - store %String %"$s_2103", %String* %"$_literal_cost_s_2102", align 8 - %"$$_literal_cost_s_2102_2104" = bitcast %String* %"$_literal_cost_s_2102" to i8* - %"$_literal_cost_call_2105" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_52", i8* %"$$_literal_cost_s_2102_2104") - %"$gasadd_2106" = add i64 %"$_literal_cost_call_2105", 2 - %"$gasrem_2107" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2108" = icmp ugt i64 %"$gasadd_2106", %"$gasrem_2107" - br i1 %"$gascmp_2108", label %"$out_of_gas_2109", label %"$have_gas_2110" - -"$out_of_gas_2109": ; preds = %"$have_gas_2099" - call void @_out_of_gas() - br label %"$have_gas_2110" - -"$have_gas_2110": ; preds = %"$out_of_gas_2109", %"$have_gas_2099" - %"$consume_2111" = sub i64 %"$gasrem_2107", %"$gasadd_2106" - store i64 %"$consume_2111", i64* @_gasrem, align 8 - %"$indices_buf_2112_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$indices_buf_2112_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_2112_salloc_load", i64 32) - %"$indices_buf_2112_salloc" = bitcast i8* %"$indices_buf_2112_salloc_salloc" to [32 x i8]* - %"$indices_buf_2112" = bitcast [32 x i8]* %"$indices_buf_2112_salloc" to i8* - %"$$key1b_10_2113" = load %String, %String* %"$key1b_10", align 8 - %"$indices_gep_2114" = getelementptr i8, i8* %"$indices_buf_2112", i32 0 - %indices_cast11 = bitcast i8* %"$indices_gep_2114" to %String* - store %String %"$$key1b_10_2113", %String* %indices_cast11, align 8 - %"$key2c_2115" = load %String, %String* %key2c, align 8 - %"$indices_gep_2116" = getelementptr i8, i8* %"$indices_buf_2112", i32 16 - %indices_cast12 = bitcast i8* %"$indices_gep_2116" to %String* - store %String %"$key2c_2115", %String* %indices_cast12, align 8 - %"$execptr_load_2117" = load i8*, i8** @_execptr, align 8 - %"$s_2119" = load %String, %String* %s, align 8 - %"$update_value_2120" = alloca %String, align 8 - store %String %"$s_2119", %String* %"$update_value_2120", align 8 - %"$update_value_2121" = bitcast %String* %"$update_value_2120" to i8* - call void @_update_field(i8* %"$execptr_load_2117", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m2_2118", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_76", i32 2, i8* %"$indices_buf_2112", i8* %"$update_value_2121"), !dbg !225 + call void @llvm.dbg.declare(metadata %String* %s, metadata !457, metadata !DIExpression()), !dbg !458 + %"$gasrem_2125" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2126" = icmp ugt i64 1, %"$gasrem_2125" + br i1 %"$gascmp_2126", label %"$out_of_gas_2127", label %"$have_gas_2128" + +"$out_of_gas_2127": ; preds = %"$have_gas_2123" + call void @_out_of_gas() + br label %"$have_gas_2128" + +"$have_gas_2128": ; preds = %"$out_of_gas_2127", %"$have_gas_2123" + %"$consume_2129" = sub i64 %"$gasrem_2125", 1 + store i64 %"$consume_2129", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_2130", i32 0, i32 0), i32 3 }, %String* %s, align 8, !dbg !459 + %"$_literal_cost_s_2131" = alloca %String, align 8 + %"$s_2132" = load %String, %String* %s, align 8 + store %String %"$s_2132", %String* %"$_literal_cost_s_2131", align 8 + %"$$_literal_cost_s_2131_2133" = bitcast %String* %"$_literal_cost_s_2131" to i8* + %"$_literal_cost_call_2134" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_52", i8* %"$$_literal_cost_s_2131_2133") + %"$gasadd_2135" = add i64 %"$_literal_cost_call_2134", 2 + %"$gasrem_2136" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2137" = icmp ugt i64 %"$gasadd_2135", %"$gasrem_2136" + br i1 %"$gascmp_2137", label %"$out_of_gas_2138", label %"$have_gas_2139" + +"$out_of_gas_2138": ; preds = %"$have_gas_2128" + call void @_out_of_gas() + br label %"$have_gas_2139" + +"$have_gas_2139": ; preds = %"$out_of_gas_2138", %"$have_gas_2128" + %"$consume_2140" = sub i64 %"$gasrem_2136", %"$gasadd_2135" + store i64 %"$consume_2140", i64* @_gasrem, align 8 + %"$indices_buf_2141_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$indices_buf_2141_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_2141_salloc_load", i64 32) + %"$indices_buf_2141_salloc" = bitcast i8* %"$indices_buf_2141_salloc_salloc" to [32 x i8]* + %"$indices_buf_2141" = bitcast [32 x i8]* %"$indices_buf_2141_salloc" to i8* + %"$$key1b_10_2142" = load %String, %String* %"$key1b_10", align 8 + %"$indices_gep_2143" = getelementptr i8, i8* %"$indices_buf_2141", i32 0 + %indices_cast11 = bitcast i8* %"$indices_gep_2143" to %String* + store %String %"$$key1b_10_2142", %String* %indices_cast11, align 8 + %"$key2c_2144" = load %String, %String* %key2c, align 8 + %"$indices_gep_2145" = getelementptr i8, i8* %"$indices_buf_2141", i32 16 + %indices_cast12 = bitcast i8* %"$indices_gep_2145" to %String* + store %String %"$key2c_2144", %String* %indices_cast12, align 8 + %"$execptr_load_2146" = load i8*, i8** @_execptr, align 8 + %"$s_2148" = load %String, %String* %s, align 8 + %"$update_value_2149" = alloca %String, align 8 + store %String %"$s_2148", %String* %"$update_value_2149", align 8 + %"$update_value_2150" = bitcast %String* %"$update_value_2149" to i8* + call void @_update_field(i8* %"$execptr_load_2146", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m2_2147", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_76", i32 2, i8* %"$indices_buf_2141", i8* %"$update_value_2150"), !dbg !460 ret void } declare i64 @_mapsortcost(%_TyDescrTy_Typ*, i8*) -define void @t7(i8* %0) !dbg !226 { +define void @t7(i8* %0) !dbg !461 { entry: - %"$_amount_2123" = getelementptr i8, i8* %0, i32 0 - %"$_amount_2124" = bitcast i8* %"$_amount_2123" to %Uint128* - %_amount = load %Uint128, %Uint128* %"$_amount_2124", align 8 - %"$_origin_2125" = getelementptr i8, i8* %0, i32 16 - %"$_origin_2126" = bitcast i8* %"$_origin_2125" to [20 x i8]* - %"$_sender_2127" = getelementptr i8, i8* %0, i32 36 - %"$_sender_2128" = bitcast i8* %"$_sender_2127" to [20 x i8]* - call void @"$t7_1688"(%Uint128 %_amount, [20 x i8]* %"$_origin_2126", [20 x i8]* %"$_sender_2128"), !dbg !227 + %"$_amount_2155" = getelementptr i8, i8* %0, i32 0 + %"$_amount_2156" = bitcast i8* %"$_amount_2155" to %Uint128* + %_amount = load %Uint128, %Uint128* %"$_amount_2156", align 8 + %"$_origin_2157" = getelementptr i8, i8* %0, i32 16 + %"$_origin_2158" = bitcast i8* %"$_origin_2157" to [20 x i8]* + %"$_sender_2159" = getelementptr i8, i8* %0, i32 36 + %"$_sender_2160" = bitcast i8* %"$_sender_2159" to [20 x i8]* + call void @"$t7_1717"(%Uint128 %_amount, [20 x i8]* %"$_origin_2158", [20 x i8]* %"$_sender_2160"), !dbg !462 ret void } -define internal void @"$t8_2129"(%Uint128 %_amount, [20 x i8]* %"$_origin_2130", [20 x i8]* %"$_sender_2131") !dbg !228 { +define internal void @"$t8_2161"(%Uint128 %_amount, [20 x i8]* %"$_origin_2162", [20 x i8]* %"$_sender_2163") !dbg !463 { entry: - %_origin = load [20 x i8], [20 x i8]* %"$_origin_2130", align 1 - %_sender = load [20 x i8], [20 x i8]* %"$_sender_2131", align 1 - %"$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" - -"$out_of_gas_2134": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_2135" - -"$have_gas_2135": ; preds = %"$out_of_gas_2134", %entry - %"$consume_2136" = sub i64 %"$gasrem_2132", 1 - store i64 %"$consume_2136", i64* @_gasrem, align 8 + %"$_sender_2494" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_sender_2163", [20 x i8]** %"$_sender_2494", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_sender_2494", metadata !464, metadata !DIExpression()), !dbg !465 + %"$_origin_2493" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_origin_2162", [20 x i8]** %"$_origin_2493", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_origin_2493", metadata !466, metadata !DIExpression()), !dbg !465 + %"$_amount_2492" = alloca %Uint128, align 8 + store %Uint128 %_amount, %Uint128* %"$_amount_2492", align 8 + call void @llvm.dbg.declare(metadata %Uint128* %"$_amount_2492", metadata !467, metadata !DIExpression()), !dbg !465 + %_origin = load [20 x i8], [20 x i8]* %"$_origin_2162", align 1 + %_sender = load [20 x i8], [20 x i8]* %"$_sender_2163", align 1 + %"$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_2166": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_2167" + +"$have_gas_2167": ; preds = %"$out_of_gas_2166", %entry + %"$consume_2168" = sub i64 %"$gasrem_2164", 1 + store i64 %"$consume_2168", i64* @_gasrem, align 8 %tname = 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" + call void @llvm.dbg.declare(metadata %String* %tname, metadata !468, metadata !DIExpression()), !dbg !469 + %"$gasrem_2169" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2170" = icmp ugt i64 1, %"$gasrem_2169" + br i1 %"$gascmp_2170", label %"$out_of_gas_2171", label %"$have_gas_2172" -"$out_of_gas_2139": ; preds = %"$have_gas_2135" +"$out_of_gas_2171": ; preds = %"$have_gas_2167" call void @_out_of_gas() - br label %"$have_gas_2140" + br label %"$have_gas_2172" -"$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 ([2 x i8], [2 x i8]* @"$stringlit_2142", i32 0, i32 0), i32 2 }, %String* %tname, align 8, !dbg !229 - %"$gasrem_2143" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2144" = icmp ugt i64 1, %"$gasrem_2143" - br i1 %"$gascmp_2144", label %"$out_of_gas_2145", label %"$have_gas_2146" +"$have_gas_2172": ; preds = %"$out_of_gas_2171", %"$have_gas_2167" + %"$consume_2173" = sub i64 %"$gasrem_2169", 1 + store i64 %"$consume_2173", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([2 x i8], [2 x i8]* @"$stringlit_2174", i32 0, i32 0), i32 2 }, %String* %tname, align 8, !dbg !470 + %"$gasrem_2175" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2176" = icmp ugt i64 1, %"$gasrem_2175" + br i1 %"$gascmp_2176", label %"$out_of_gas_2177", label %"$have_gas_2178" -"$out_of_gas_2145": ; preds = %"$have_gas_2140" +"$out_of_gas_2177": ; preds = %"$have_gas_2172" call void @_out_of_gas() - br label %"$have_gas_2146" + br label %"$have_gas_2178" -"$have_gas_2146": ; preds = %"$out_of_gas_2145", %"$have_gas_2140" - %"$consume_2147" = sub i64 %"$gasrem_2143", 1 - store i64 %"$consume_2147", i64* @_gasrem, align 8 +"$have_gas_2178": ; preds = %"$out_of_gas_2177", %"$have_gas_2172" + %"$consume_2179" = sub i64 %"$gasrem_2175", 1 + store i64 %"$consume_2179", i64* @_gasrem, align 8 %key1a = alloca %String, align 8 - %"$gasrem_2148" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2149" = icmp ugt i64 1, %"$gasrem_2148" - br i1 %"$gascmp_2149", label %"$out_of_gas_2150", label %"$have_gas_2151" + call void @llvm.dbg.declare(metadata %String* %key1a, metadata !471, metadata !DIExpression()), !dbg !472 + %"$gasrem_2180" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2181" = icmp ugt i64 1, %"$gasrem_2180" + br i1 %"$gascmp_2181", label %"$out_of_gas_2182", label %"$have_gas_2183" -"$out_of_gas_2150": ; preds = %"$have_gas_2146" +"$out_of_gas_2182": ; preds = %"$have_gas_2178" call void @_out_of_gas() - br label %"$have_gas_2151" + br label %"$have_gas_2183" -"$have_gas_2151": ; preds = %"$out_of_gas_2150", %"$have_gas_2146" - %"$consume_2152" = sub i64 %"$gasrem_2148", 1 - store i64 %"$consume_2152", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_2153", i32 0, i32 0), i32 5 }, %String* %key1a, align 8, !dbg !230 - %"$gasrem_2154" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2155" = icmp ugt i64 1, %"$gasrem_2154" - br i1 %"$gascmp_2155", label %"$out_of_gas_2156", label %"$have_gas_2157" +"$have_gas_2183": ; preds = %"$out_of_gas_2182", %"$have_gas_2178" + %"$consume_2184" = sub i64 %"$gasrem_2180", 1 + store i64 %"$consume_2184", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_2185", i32 0, i32 0), i32 5 }, %String* %key1a, align 8, !dbg !473 + %"$gasrem_2186" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2187" = icmp ugt i64 1, %"$gasrem_2186" + br i1 %"$gascmp_2187", label %"$out_of_gas_2188", label %"$have_gas_2189" -"$out_of_gas_2156": ; preds = %"$have_gas_2151" +"$out_of_gas_2188": ; preds = %"$have_gas_2183" call void @_out_of_gas() - br label %"$have_gas_2157" + br label %"$have_gas_2189" -"$have_gas_2157": ; preds = %"$out_of_gas_2156", %"$have_gas_2151" - %"$consume_2158" = sub i64 %"$gasrem_2154", 1 - store i64 %"$consume_2158", i64* @_gasrem, align 8 +"$have_gas_2189": ; preds = %"$out_of_gas_2188", %"$have_gas_2183" + %"$consume_2190" = sub i64 %"$gasrem_2186", 1 + store i64 %"$consume_2190", i64* @_gasrem, align 8 %key2a = alloca %String, align 8 - %"$gasrem_2159" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2160" = icmp ugt i64 1, %"$gasrem_2159" - br i1 %"$gascmp_2160", label %"$out_of_gas_2161", label %"$have_gas_2162" + call void @llvm.dbg.declare(metadata %String* %key2a, metadata !474, metadata !DIExpression()), !dbg !475 + %"$gasrem_2191" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2192" = icmp ugt i64 1, %"$gasrem_2191" + br i1 %"$gascmp_2192", label %"$out_of_gas_2193", label %"$have_gas_2194" -"$out_of_gas_2161": ; preds = %"$have_gas_2157" +"$out_of_gas_2193": ; preds = %"$have_gas_2189" call void @_out_of_gas() - br label %"$have_gas_2162" + br label %"$have_gas_2194" -"$have_gas_2162": ; preds = %"$out_of_gas_2161", %"$have_gas_2157" - %"$consume_2163" = sub i64 %"$gasrem_2159", 1 - store i64 %"$consume_2163", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_2164", i32 0, i32 0), i32 5 }, %String* %key2a, align 8, !dbg !231 +"$have_gas_2194": ; preds = %"$out_of_gas_2193", %"$have_gas_2189" + %"$consume_2195" = sub i64 %"$gasrem_2191", 1 + store i64 %"$consume_2195", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_2196", i32 0, i32 0), i32 5 }, %String* %key2a, align 8, !dbg !476 %c1 = alloca %TName_Option_String*, align 8 - %"$indices_buf_2165_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$indices_buf_2165_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_2165_salloc_load", i64 32) - %"$indices_buf_2165_salloc" = bitcast i8* %"$indices_buf_2165_salloc_salloc" to [32 x i8]* - %"$indices_buf_2165" = bitcast [32 x i8]* %"$indices_buf_2165_salloc" to i8* - %"$key1a_2166" = load %String, %String* %key1a, align 8 - %"$indices_gep_2167" = getelementptr i8, i8* %"$indices_buf_2165", i32 0 - %indices_cast = bitcast i8* %"$indices_gep_2167" to %String* - store %String %"$key1a_2166", %String* %indices_cast, align 8 - %"$key2a_2168" = load %String, %String* %key2a, align 8 - %"$indices_gep_2169" = getelementptr i8, i8* %"$indices_buf_2165", i32 16 - %indices_cast1 = bitcast i8* %"$indices_gep_2169" to %String* - store %String %"$key2a_2168", %String* %indices_cast1, align 8 - %"$execptr_load_2171" = load i8*, i8** @_execptr, align 8 - %"$c1_call_2172" = call i8* @_fetch_field(i8* %"$execptr_load_2171", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m2_2170", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_76", i32 2, i8* %"$indices_buf_2165", i32 1), !dbg !232 - %"$c1_2173" = bitcast i8* %"$c1_call_2172" to %TName_Option_String* - store %TName_Option_String* %"$c1_2173", %TName_Option_String** %c1, align 8 - %"$c1_2174" = load %TName_Option_String*, %TName_Option_String** %c1, align 8 - %"$$c1_2174_2175" = bitcast %TName_Option_String* %"$c1_2174" to i8* - %"$_literal_cost_call_2176" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_String_72", i8* %"$$c1_2174_2175") - %"$gasadd_2177" = add i64 %"$_literal_cost_call_2176", 0 - %"$gasadd_2178" = add i64 %"$gasadd_2177", 2 - %"$gasrem_2179" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2180" = icmp ugt i64 %"$gasadd_2178", %"$gasrem_2179" - br i1 %"$gascmp_2180", label %"$out_of_gas_2181", label %"$have_gas_2182" - -"$out_of_gas_2181": ; preds = %"$have_gas_2162" - call void @_out_of_gas() - br label %"$have_gas_2182" - -"$have_gas_2182": ; preds = %"$out_of_gas_2181", %"$have_gas_2162" - %"$consume_2183" = sub i64 %"$gasrem_2179", %"$gasadd_2178" - store i64 %"$consume_2183", i64* @_gasrem, align 8 - %"$gasrem_2184" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2185" = icmp ugt i64 2, %"$gasrem_2184" - br i1 %"$gascmp_2185", label %"$out_of_gas_2186", label %"$have_gas_2187" - -"$out_of_gas_2186": ; preds = %"$have_gas_2182" - call void @_out_of_gas() - br label %"$have_gas_2187" - -"$have_gas_2187": ; preds = %"$out_of_gas_2186", %"$have_gas_2182" - %"$consume_2188" = sub i64 %"$gasrem_2184", 2 - store i64 %"$consume_2188", i64* @_gasrem, align 8 - %"$c1_2190" = load %TName_Option_String*, %TName_Option_String** %c1, align 8 - %"$c1_tag_2191" = getelementptr inbounds %TName_Option_String, %TName_Option_String* %"$c1_2190", i32 0, i32 0 - %"$c1_tag_2192" = load i8, i8* %"$c1_tag_2191", align 1 - switch i8 %"$c1_tag_2192", label %"$empty_default_2193" [ - i8 0, label %"$Some_2194" - i8 1, label %"$None_2267" - ], !dbg !233 - -"$Some_2194": ; preds = %"$have_gas_2187" - %"$c1_2195" = bitcast %TName_Option_String* %"$c1_2190" to %CName_Some_String* - %"$c_gep_2196" = getelementptr inbounds %CName_Some_String, %CName_Some_String* %"$c1_2195", i32 0, i32 1 - %"$c_load_2197" = load %String, %String* %"$c_gep_2196", align 8 + call void @llvm.dbg.declare(metadata %TName_Option_String** %c1, metadata !477, metadata !DIExpression()), !dbg !478 + %"$indices_buf_2197_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$indices_buf_2197_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_2197_salloc_load", i64 32) + %"$indices_buf_2197_salloc" = bitcast i8* %"$indices_buf_2197_salloc_salloc" to [32 x i8]* + %"$indices_buf_2197" = bitcast [32 x i8]* %"$indices_buf_2197_salloc" to i8* + %"$key1a_2198" = load %String, %String* %key1a, align 8 + %"$indices_gep_2199" = getelementptr i8, i8* %"$indices_buf_2197", i32 0 + %indices_cast = bitcast i8* %"$indices_gep_2199" to %String* + store %String %"$key1a_2198", %String* %indices_cast, align 8 + %"$key2a_2200" = load %String, %String* %key2a, align 8 + %"$indices_gep_2201" = getelementptr i8, i8* %"$indices_buf_2197", i32 16 + %indices_cast1 = bitcast i8* %"$indices_gep_2201" to %String* + store %String %"$key2a_2200", %String* %indices_cast1, align 8 + %"$execptr_load_2203" = load i8*, i8** @_execptr, align 8 + %"$c1_call_2204" = call i8* @_fetch_field(i8* %"$execptr_load_2203", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m2_2202", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_76", i32 2, i8* %"$indices_buf_2197", i32 1), !dbg !478 + %"$c1_2205" = bitcast i8* %"$c1_call_2204" to %TName_Option_String* + store %TName_Option_String* %"$c1_2205", %TName_Option_String** %c1, align 8 + %"$c1_2206" = load %TName_Option_String*, %TName_Option_String** %c1, align 8 + %"$$c1_2206_2207" = bitcast %TName_Option_String* %"$c1_2206" to i8* + %"$_literal_cost_call_2208" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_String_72", i8* %"$$c1_2206_2207") + %"$gasadd_2209" = add i64 %"$_literal_cost_call_2208", 0 + %"$gasadd_2210" = add i64 %"$gasadd_2209", 2 + %"$gasrem_2211" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2212" = icmp ugt i64 %"$gasadd_2210", %"$gasrem_2211" + br i1 %"$gascmp_2212", label %"$out_of_gas_2213", label %"$have_gas_2214" + +"$out_of_gas_2213": ; preds = %"$have_gas_2194" + call void @_out_of_gas() + br label %"$have_gas_2214" + +"$have_gas_2214": ; preds = %"$out_of_gas_2213", %"$have_gas_2194" + %"$consume_2215" = sub i64 %"$gasrem_2211", %"$gasadd_2210" + store i64 %"$consume_2215", i64* @_gasrem, align 8 + %"$gasrem_2216" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2217" = icmp ugt i64 2, %"$gasrem_2216" + br i1 %"$gascmp_2217", label %"$out_of_gas_2218", label %"$have_gas_2219" + +"$out_of_gas_2218": ; preds = %"$have_gas_2214" + call void @_out_of_gas() + br label %"$have_gas_2219" + +"$have_gas_2219": ; preds = %"$out_of_gas_2218", %"$have_gas_2214" + %"$consume_2220" = sub i64 %"$gasrem_2216", 2 + store i64 %"$consume_2220", i64* @_gasrem, align 8 + %"$c1_2222" = load %TName_Option_String*, %TName_Option_String** %c1, align 8 + %"$c1_tag_2223" = getelementptr inbounds %TName_Option_String, %TName_Option_String* %"$c1_2222", i32 0, i32 0 + %"$c1_tag_2224" = load i8, i8* %"$c1_tag_2223", align 1 + switch i8 %"$c1_tag_2224", label %"$empty_default_2225" [ + i8 0, label %"$Some_2226" + i8 1, label %"$None_2299" + ], !dbg !479 + +"$Some_2226": ; preds = %"$have_gas_2219" + %"$c1_2227" = bitcast %TName_Option_String* %"$c1_2222" to %CName_Some_String* + %"$c_gep_2228" = getelementptr inbounds %CName_Some_String, %CName_Some_String* %"$c1_2227", i32 0, i32 1 + %"$c_load_2229" = load %String, %String* %"$c_gep_2228", align 8 %c = alloca %String, align 8 - store %String %"$c_load_2197", %String* %c, 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" + store %String %"$c_load_2229", %String* %c, 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" -"$out_of_gas_2200": ; preds = %"$Some_2194" +"$out_of_gas_2232": ; preds = %"$Some_2226" call void @_out_of_gas() - br label %"$have_gas_2201" + br label %"$have_gas_2233" -"$have_gas_2201": ; preds = %"$out_of_gas_2200", %"$Some_2194" - %"$consume_2202" = sub i64 %"$gasrem_2198", 1 - store i64 %"$consume_2202", i64* @_gasrem, align 8 +"$have_gas_2233": ; preds = %"$out_of_gas_2232", %"$Some_2226" + %"$consume_2234" = sub i64 %"$gasrem_2230", 1 + store i64 %"$consume_2234", i64* @_gasrem, align 8 %v = alloca %String, align 8 - %"$gasrem_2203" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2204" = icmp ugt i64 1, %"$gasrem_2203" - br i1 %"$gascmp_2204", label %"$out_of_gas_2205", label %"$have_gas_2206" + call void @llvm.dbg.declare(metadata %String* %v, metadata !480, metadata !DIExpression()), !dbg !483 + %"$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_2205": ; preds = %"$have_gas_2201" +"$out_of_gas_2237": ; preds = %"$have_gas_2233" call void @_out_of_gas() - br label %"$have_gas_2206" + br label %"$have_gas_2238" -"$have_gas_2206": ; preds = %"$out_of_gas_2205", %"$have_gas_2201" - %"$consume_2207" = sub i64 %"$gasrem_2203", 1 - store i64 %"$consume_2207", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_2208", i32 0, i32 0), i32 3 }, %String* %v, align 8, !dbg !234 - %"$gasrem_2209" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2210" = icmp ugt i64 1, %"$gasrem_2209" - br i1 %"$gascmp_2210", label %"$out_of_gas_2211", label %"$have_gas_2212" +"$have_gas_2238": ; preds = %"$out_of_gas_2237", %"$have_gas_2233" + %"$consume_2239" = sub i64 %"$gasrem_2235", 1 + store i64 %"$consume_2239", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_2240", i32 0, i32 0), i32 3 }, %String* %v, align 8, !dbg !484 + %"$gasrem_2241" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2242" = icmp ugt i64 1, %"$gasrem_2241" + br i1 %"$gascmp_2242", label %"$out_of_gas_2243", label %"$have_gas_2244" -"$out_of_gas_2211": ; preds = %"$have_gas_2206" +"$out_of_gas_2243": ; preds = %"$have_gas_2238" call void @_out_of_gas() - br label %"$have_gas_2212" + br label %"$have_gas_2244" -"$have_gas_2212": ; preds = %"$out_of_gas_2211", %"$have_gas_2206" - %"$consume_2213" = sub i64 %"$gasrem_2209", 1 - store i64 %"$consume_2213", i64* @_gasrem, align 8 +"$have_gas_2244": ; preds = %"$out_of_gas_2243", %"$have_gas_2238" + %"$consume_2245" = sub i64 %"$gasrem_2241", 1 + store i64 %"$consume_2245", i64* @_gasrem, align 8 %eq = alloca %TName_Bool*, align 8 - %"$_literal_cost_c_2214" = alloca %String, align 8 - %"$c_2215" = load %String, %String* %c, align 8 - store %String %"$c_2215", %String* %"$_literal_cost_c_2214", align 8 - %"$$_literal_cost_c_2214_2216" = bitcast %String* %"$_literal_cost_c_2214" to i8* - %"$_literal_cost_call_2217" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_52", i8* %"$$_literal_cost_c_2214_2216") - %"$_literal_cost_v_2218" = alloca %String, align 8 - %"$v_2219" = load %String, %String* %v, align 8 - store %String %"$v_2219", %String* %"$_literal_cost_v_2218", align 8 - %"$$_literal_cost_v_2218_2220" = bitcast %String* %"$_literal_cost_v_2218" to i8* - %"$_literal_cost_call_2221" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_52", i8* %"$$_literal_cost_v_2218_2220") - %"$gasmin_2222" = call i64 @llvm.umin.i64(i64 %"$_literal_cost_call_2217", i64 %"$_literal_cost_call_2221") - %"$gasrem_2223" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2224" = icmp ugt i64 %"$gasmin_2222", %"$gasrem_2223" - br i1 %"$gascmp_2224", label %"$out_of_gas_2225", label %"$have_gas_2226" - -"$out_of_gas_2225": ; preds = %"$have_gas_2212" - call void @_out_of_gas() - br label %"$have_gas_2226" - -"$have_gas_2226": ; preds = %"$out_of_gas_2225", %"$have_gas_2212" - %"$consume_2227" = sub i64 %"$gasrem_2223", %"$gasmin_2222" - store i64 %"$consume_2227", i64* @_gasrem, align 8 - %"$execptr_load_2228" = load i8*, i8** @_execptr, align 8 - %"$c_2229" = load %String, %String* %c, align 8 - %"$v_2230" = load %String, %String* %v, align 8 - %"$eq_call_2231" = call %TName_Bool* @_eq_String(i8* %"$execptr_load_2228", %String %"$c_2229", %String %"$v_2230"), !dbg !237 - store %TName_Bool* %"$eq_call_2231", %TName_Bool** %eq, align 8, !dbg !237 - %"$gasrem_2233" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2234" = icmp ugt i64 2, %"$gasrem_2233" - br i1 %"$gascmp_2234", label %"$out_of_gas_2235", label %"$have_gas_2236" - -"$out_of_gas_2235": ; preds = %"$have_gas_2226" - call void @_out_of_gas() - br label %"$have_gas_2236" - -"$have_gas_2236": ; preds = %"$out_of_gas_2235", %"$have_gas_2226" - %"$consume_2237" = sub i64 %"$gasrem_2233", 2 - store i64 %"$consume_2237", i64* @_gasrem, align 8 - %"$eq_2239" = load %TName_Bool*, %TName_Bool** %eq, align 8 - %"$eq_tag_2240" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$eq_2239", i32 0, i32 0 - %"$eq_tag_2241" = load i8, i8* %"$eq_tag_2240", align 1 - switch i8 %"$eq_tag_2241", label %"$empty_default_2242" [ - i8 0, label %"$True_2243" - i8 1, label %"$False_2245" - ], !dbg !238 - -"$True_2243": ; preds = %"$have_gas_2236" - %"$eq_2244" = bitcast %TName_Bool* %"$eq_2239" to %CName_True* - br label %"$matchsucc_2238" - -"$False_2245": ; preds = %"$have_gas_2236" - %"$eq_2246" = bitcast %TName_Bool* %"$eq_2239" to %CName_False* - %"$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" - -"$out_of_gas_2249": ; preds = %"$False_2245" - call void @_out_of_gas() - br label %"$have_gas_2250" - -"$have_gas_2250": ; preds = %"$out_of_gas_2249", %"$False_2245" - %"$consume_2251" = sub i64 %"$gasrem_2247", 1 - store i64 %"$consume_2251", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %eq, metadata !485, metadata !DIExpression()), !dbg !486 + %"$_literal_cost_c_2246" = alloca %String, align 8 + %"$c_2247" = load %String, %String* %c, align 8 + store %String %"$c_2247", %String* %"$_literal_cost_c_2246", align 8 + %"$$_literal_cost_c_2246_2248" = bitcast %String* %"$_literal_cost_c_2246" to i8* + %"$_literal_cost_call_2249" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_52", i8* %"$$_literal_cost_c_2246_2248") + %"$_literal_cost_v_2250" = alloca %String, align 8 + %"$v_2251" = load %String, %String* %v, align 8 + store %String %"$v_2251", %String* %"$_literal_cost_v_2250", align 8 + %"$$_literal_cost_v_2250_2252" = bitcast %String* %"$_literal_cost_v_2250" to i8* + %"$_literal_cost_call_2253" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_52", i8* %"$$_literal_cost_v_2250_2252") + %"$gasmin_2254" = call i64 @llvm.umin.i64(i64 %"$_literal_cost_call_2249", i64 %"$_literal_cost_call_2253") + %"$gasrem_2255" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2256" = icmp ugt i64 %"$gasmin_2254", %"$gasrem_2255" + br i1 %"$gascmp_2256", label %"$out_of_gas_2257", label %"$have_gas_2258" + +"$out_of_gas_2257": ; preds = %"$have_gas_2244" + call void @_out_of_gas() + br label %"$have_gas_2258" + +"$have_gas_2258": ; preds = %"$out_of_gas_2257", %"$have_gas_2244" + %"$consume_2259" = sub i64 %"$gasrem_2255", %"$gasmin_2254" + store i64 %"$consume_2259", i64* @_gasrem, align 8 + %"$execptr_load_2260" = load i8*, i8** @_execptr, align 8 + %"$c_2261" = load %String, %String* %c, align 8 + %"$v_2262" = load %String, %String* %v, align 8 + %"$eq_call_2263" = call %TName_Bool* @_eq_String(i8* %"$execptr_load_2260", %String %"$c_2261", %String %"$v_2262"), !dbg !487 + store %TName_Bool* %"$eq_call_2263", %TName_Bool** %eq, align 8, !dbg !487 + %"$gasrem_2265" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2266" = icmp ugt i64 2, %"$gasrem_2265" + br i1 %"$gascmp_2266", label %"$out_of_gas_2267", label %"$have_gas_2268" + +"$out_of_gas_2267": ; preds = %"$have_gas_2258" + call void @_out_of_gas() + br label %"$have_gas_2268" + +"$have_gas_2268": ; preds = %"$out_of_gas_2267", %"$have_gas_2258" + %"$consume_2269" = sub i64 %"$gasrem_2265", 2 + store i64 %"$consume_2269", i64* @_gasrem, align 8 + %"$eq_2271" = load %TName_Bool*, %TName_Bool** %eq, align 8 + %"$eq_tag_2272" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$eq_2271", i32 0, i32 0 + %"$eq_tag_2273" = load i8, i8* %"$eq_tag_2272", align 1 + switch i8 %"$eq_tag_2273", label %"$empty_default_2274" [ + i8 0, label %"$True_2275" + i8 1, label %"$False_2277" + ], !dbg !488 + +"$True_2275": ; preds = %"$have_gas_2268" + %"$eq_2276" = bitcast %TName_Bool* %"$eq_2271" to %CName_True* + br label %"$matchsucc_2270" + +"$False_2277": ; preds = %"$have_gas_2268" + %"$eq_2278" = bitcast %TName_Bool* %"$eq_2271" to %CName_False* + %"$gasrem_2279" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2280" = icmp ugt i64 1, %"$gasrem_2279" + br i1 %"$gascmp_2280", label %"$out_of_gas_2281", label %"$have_gas_2282" + +"$out_of_gas_2281": ; preds = %"$False_2277" + call void @_out_of_gas() + br label %"$have_gas_2282" + +"$have_gas_2282": ; preds = %"$out_of_gas_2281", %"$False_2277" + %"$consume_2283" = sub i64 %"$gasrem_2279", 1 + store i64 %"$consume_2283", i64* @_gasrem, align 8 %m = 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" - -"$out_of_gas_2254": ; preds = %"$have_gas_2250" - call void @_out_of_gas() - br label %"$have_gas_2255" - -"$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 ([31 x i8], [31 x i8]* @"$stringlit_2257", i32 0, i32 0), i32 31 }, %String* %m, align 8, !dbg !239 - %"$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" - -"$out_of_gas_2260": ; preds = %"$have_gas_2255" - call void @_out_of_gas() - br label %"$have_gas_2261" - -"$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* %m, align 8 - call void @"$fail_msg_292"(%Uint128 %_amount, [20 x i8]* %"$fail_msg__origin_2263", [20 x i8]* %"$fail_msg__sender_2264", %String %"$tname_2265", %String %"$m_2266"), !dbg !242 - br label %"$matchsucc_2238" - -"$empty_default_2242": ; preds = %"$have_gas_2236" - br label %"$matchsucc_2238" - -"$matchsucc_2238": ; preds = %"$have_gas_2261", %"$True_2243", %"$empty_default_2242" - br label %"$matchsucc_2189" - -"$None_2267": ; preds = %"$have_gas_2187" - %"$c1_2268" = bitcast %TName_Option_String* %"$c1_2190" to %CName_None_String* - %"$gasrem_2269" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2270" = icmp ugt i64 1, %"$gasrem_2269" - br i1 %"$gascmp_2270", label %"$out_of_gas_2271", label %"$have_gas_2272" - -"$out_of_gas_2271": ; preds = %"$None_2267" - call void @_out_of_gas() - br label %"$have_gas_2272" - -"$have_gas_2272": ; preds = %"$out_of_gas_2271", %"$None_2267" - %"$consume_2273" = sub i64 %"$gasrem_2269", 1 - store i64 %"$consume_2273", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %String* %m, metadata !489, metadata !DIExpression()), !dbg !492 + %"$gasrem_2284" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2285" = icmp ugt i64 1, %"$gasrem_2284" + br i1 %"$gascmp_2285", label %"$out_of_gas_2286", label %"$have_gas_2287" + +"$out_of_gas_2286": ; preds = %"$have_gas_2282" + call void @_out_of_gas() + br label %"$have_gas_2287" + +"$have_gas_2287": ; preds = %"$out_of_gas_2286", %"$have_gas_2282" + %"$consume_2288" = sub i64 %"$gasrem_2284", 1 + store i64 %"$consume_2288", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([31 x i8], [31 x i8]* @"$stringlit_2289", i32 0, i32 0), i32 31 }, %String* %m, align 8, !dbg !493 + %"$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_2287" + call void @_out_of_gas() + br label %"$have_gas_2293" + +"$have_gas_2293": ; preds = %"$out_of_gas_2292", %"$have_gas_2287" + %"$consume_2294" = sub i64 %"$gasrem_2290", 1 + store i64 %"$consume_2294", i64* @_gasrem, align 8 + %"$fail_msg__origin_2295" = alloca [20 x i8], align 1 + store [20 x i8] %_origin, [20 x i8]* %"$fail_msg__origin_2295", align 1 + %"$fail_msg__sender_2296" = alloca [20 x i8], align 1 + store [20 x i8] %_sender, [20 x i8]* %"$fail_msg__sender_2296", align 1 + %"$tname_2297" = load %String, %String* %tname, align 8 + %"$m_2298" = load %String, %String* %m, align 8 + call void @"$fail_msg_298"(%Uint128 %_amount, [20 x i8]* %"$fail_msg__origin_2295", [20 x i8]* %"$fail_msg__sender_2296", %String %"$tname_2297", %String %"$m_2298"), !dbg !494 + br label %"$matchsucc_2270" + +"$empty_default_2274": ; preds = %"$have_gas_2268" + br label %"$matchsucc_2270" + +"$matchsucc_2270": ; preds = %"$have_gas_2293", %"$True_2275", %"$empty_default_2274" + br label %"$matchsucc_2221" + +"$None_2299": ; preds = %"$have_gas_2219" + %"$c1_2300" = bitcast %TName_Option_String* %"$c1_2222" to %CName_None_String* + %"$gasrem_2301" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2302" = icmp ugt i64 1, %"$gasrem_2301" + br i1 %"$gascmp_2302", label %"$out_of_gas_2303", label %"$have_gas_2304" + +"$out_of_gas_2303": ; preds = %"$None_2299" + call void @_out_of_gas() + br label %"$have_gas_2304" + +"$have_gas_2304": ; preds = %"$out_of_gas_2303", %"$None_2299" + %"$consume_2305" = sub i64 %"$gasrem_2301", 1 + store i64 %"$consume_2305", i64* @_gasrem, align 8 %m2 = alloca %String, align 8 - %"$gasrem_2274" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2275" = icmp ugt i64 1, %"$gasrem_2274" - br i1 %"$gascmp_2275", label %"$out_of_gas_2276", label %"$have_gas_2277" - -"$out_of_gas_2276": ; preds = %"$have_gas_2272" - call void @_out_of_gas() - br label %"$have_gas_2277" - -"$have_gas_2277": ; preds = %"$out_of_gas_2276", %"$have_gas_2272" - %"$consume_2278" = sub i64 %"$gasrem_2274", 1 - store i64 %"$consume_2278", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([21 x i8], [21 x i8]* @"$stringlit_2279", i32 0, i32 0), i32 21 }, %String* %m2, align 8, !dbg !243 - %"$gasrem_2280" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2281" = icmp ugt i64 1, %"$gasrem_2280" - br i1 %"$gascmp_2281", label %"$out_of_gas_2282", label %"$have_gas_2283" - -"$out_of_gas_2282": ; preds = %"$have_gas_2277" - call void @_out_of_gas() - br label %"$have_gas_2283" - -"$have_gas_2283": ; preds = %"$out_of_gas_2282", %"$have_gas_2277" - %"$consume_2284" = sub i64 %"$gasrem_2280", 1 - store i64 %"$consume_2284", i64* @_gasrem, align 8 - %"$fail_msg__origin_2285" = alloca [20 x i8], align 1 - store [20 x i8] %_origin, [20 x i8]* %"$fail_msg__origin_2285", align 1 - %"$fail_msg__sender_2286" = alloca [20 x i8], align 1 - store [20 x i8] %_sender, [20 x i8]* %"$fail_msg__sender_2286", align 1 - %"$tname_2287" = load %String, %String* %tname, align 8 - %"$m_2288" = load %String, %String* %m2, align 8 - call void @"$fail_msg_292"(%Uint128 %_amount, [20 x i8]* %"$fail_msg__origin_2285", [20 x i8]* %"$fail_msg__sender_2286", %String %"$tname_2287", %String %"$m_2288"), !dbg !245 - br label %"$matchsucc_2189" - -"$empty_default_2193": ; preds = %"$have_gas_2187" - br label %"$matchsucc_2189" - -"$matchsucc_2189": ; preds = %"$have_gas_2283", %"$matchsucc_2238", %"$empty_default_2193" - %"$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_2189" - call void @_out_of_gas() - br label %"$have_gas_2292" - -"$have_gas_2292": ; preds = %"$out_of_gas_2291", %"$matchsucc_2189" - %"$consume_2293" = sub i64 %"$gasrem_2289", 1 - store i64 %"$consume_2293", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %String* %m2, metadata !495, metadata !DIExpression()), !dbg !497 + %"$gasrem_2306" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2307" = icmp ugt i64 1, %"$gasrem_2306" + br i1 %"$gascmp_2307", label %"$out_of_gas_2308", label %"$have_gas_2309" + +"$out_of_gas_2308": ; preds = %"$have_gas_2304" + call void @_out_of_gas() + br label %"$have_gas_2309" + +"$have_gas_2309": ; preds = %"$out_of_gas_2308", %"$have_gas_2304" + %"$consume_2310" = sub i64 %"$gasrem_2306", 1 + store i64 %"$consume_2310", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([21 x i8], [21 x i8]* @"$stringlit_2311", i32 0, i32 0), i32 21 }, %String* %m2, align 8, !dbg !498 + %"$gasrem_2312" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2313" = icmp ugt i64 1, %"$gasrem_2312" + br i1 %"$gascmp_2313", label %"$out_of_gas_2314", label %"$have_gas_2315" + +"$out_of_gas_2314": ; preds = %"$have_gas_2309" + call void @_out_of_gas() + br label %"$have_gas_2315" + +"$have_gas_2315": ; preds = %"$out_of_gas_2314", %"$have_gas_2309" + %"$consume_2316" = sub i64 %"$gasrem_2312", 1 + store i64 %"$consume_2316", i64* @_gasrem, align 8 + %"$fail_msg__origin_2317" = alloca [20 x i8], align 1 + store [20 x i8] %_origin, [20 x i8]* %"$fail_msg__origin_2317", align 1 + %"$fail_msg__sender_2318" = alloca [20 x i8], align 1 + store [20 x i8] %_sender, [20 x i8]* %"$fail_msg__sender_2318", align 1 + %"$tname_2319" = load %String, %String* %tname, align 8 + %"$m_2320" = load %String, %String* %m2, align 8 + call void @"$fail_msg_298"(%Uint128 %_amount, [20 x i8]* %"$fail_msg__origin_2317", [20 x i8]* %"$fail_msg__sender_2318", %String %"$tname_2319", %String %"$m_2320"), !dbg !499 + br label %"$matchsucc_2221" + +"$empty_default_2225": ; preds = %"$have_gas_2219" + br label %"$matchsucc_2221" + +"$matchsucc_2221": ; preds = %"$have_gas_2315", %"$matchsucc_2270", %"$empty_default_2225" + %"$gasrem_2321" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2322" = icmp ugt i64 1, %"$gasrem_2321" + br i1 %"$gascmp_2322", label %"$out_of_gas_2323", label %"$have_gas_2324" + +"$out_of_gas_2323": ; preds = %"$matchsucc_2221" + call void @_out_of_gas() + br label %"$have_gas_2324" + +"$have_gas_2324": ; preds = %"$out_of_gas_2323", %"$matchsucc_2221" + %"$consume_2325" = sub i64 %"$gasrem_2321", 1 + store i64 %"$consume_2325", i64* @_gasrem, align 8 %key1b = alloca %String, align 8 - %"$gasrem_2294" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2295" = icmp ugt i64 1, %"$gasrem_2294" - br i1 %"$gascmp_2295", label %"$out_of_gas_2296", label %"$have_gas_2297" + call void @llvm.dbg.declare(metadata %String* %key1b, metadata !500, metadata !DIExpression()), !dbg !501 + %"$gasrem_2326" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2327" = icmp ugt i64 1, %"$gasrem_2326" + br i1 %"$gascmp_2327", label %"$out_of_gas_2328", label %"$have_gas_2329" -"$out_of_gas_2296": ; preds = %"$have_gas_2292" +"$out_of_gas_2328": ; preds = %"$have_gas_2324" call void @_out_of_gas() - br label %"$have_gas_2297" + br label %"$have_gas_2329" -"$have_gas_2297": ; preds = %"$out_of_gas_2296", %"$have_gas_2292" - %"$consume_2298" = sub i64 %"$gasrem_2294", 1 - store i64 %"$consume_2298", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_2299", i32 0, i32 0), i32 5 }, %String* %key1b, align 8, !dbg !246 - %"$gasrem_2300" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2301" = icmp ugt i64 1, %"$gasrem_2300" - br i1 %"$gascmp_2301", label %"$out_of_gas_2302", label %"$have_gas_2303" +"$have_gas_2329": ; preds = %"$out_of_gas_2328", %"$have_gas_2324" + %"$consume_2330" = sub i64 %"$gasrem_2326", 1 + store i64 %"$consume_2330", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_2331", i32 0, i32 0), i32 5 }, %String* %key1b, align 8, !dbg !502 + %"$gasrem_2332" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2333" = icmp ugt i64 1, %"$gasrem_2332" + br i1 %"$gascmp_2333", label %"$out_of_gas_2334", label %"$have_gas_2335" -"$out_of_gas_2302": ; preds = %"$have_gas_2297" +"$out_of_gas_2334": ; preds = %"$have_gas_2329" call void @_out_of_gas() - br label %"$have_gas_2303" + br label %"$have_gas_2335" -"$have_gas_2303": ; preds = %"$out_of_gas_2302", %"$have_gas_2297" - %"$consume_2304" = sub i64 %"$gasrem_2300", 1 - store i64 %"$consume_2304", i64* @_gasrem, align 8 +"$have_gas_2335": ; preds = %"$out_of_gas_2334", %"$have_gas_2329" + %"$consume_2336" = sub i64 %"$gasrem_2332", 1 + store i64 %"$consume_2336", i64* @_gasrem, align 8 %key2c = alloca %String, align 8 - %"$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" + call void @llvm.dbg.declare(metadata %String* %key2c, metadata !503, metadata !DIExpression()), !dbg !504 + %"$gasrem_2337" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2338" = icmp ugt i64 1, %"$gasrem_2337" + br i1 %"$gascmp_2338", label %"$out_of_gas_2339", label %"$have_gas_2340" -"$out_of_gas_2307": ; preds = %"$have_gas_2303" +"$out_of_gas_2339": ; preds = %"$have_gas_2335" call void @_out_of_gas() - br label %"$have_gas_2308" + br label %"$have_gas_2340" -"$have_gas_2308": ; preds = %"$out_of_gas_2307", %"$have_gas_2303" - %"$consume_2309" = sub i64 %"$gasrem_2305", 1 - store i64 %"$consume_2309", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_2310", i32 0, i32 0), i32 5 }, %String* %key2c, align 8, !dbg !247 +"$have_gas_2340": ; preds = %"$out_of_gas_2339", %"$have_gas_2335" + %"$consume_2341" = sub i64 %"$gasrem_2337", 1 + store i64 %"$consume_2341", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_2342", i32 0, i32 0), i32 5 }, %String* %key2c, align 8, !dbg !505 %"$c1_11" = alloca %TName_Option_String*, align 8 - %"$indices_buf_2311_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$indices_buf_2311_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_2311_salloc_load", i64 32) - %"$indices_buf_2311_salloc" = bitcast i8* %"$indices_buf_2311_salloc_salloc" to [32 x i8]* - %"$indices_buf_2311" = bitcast [32 x i8]* %"$indices_buf_2311_salloc" to i8* - %"$key1b_2312" = load %String, %String* %key1b, align 8 - %"$indices_gep_2313" = getelementptr i8, i8* %"$indices_buf_2311", i32 0 - %indices_cast3 = bitcast i8* %"$indices_gep_2313" to %String* - store %String %"$key1b_2312", %String* %indices_cast3, align 8 - %"$key2c_2314" = load %String, %String* %key2c, align 8 - %"$indices_gep_2315" = getelementptr i8, i8* %"$indices_buf_2311", i32 16 - %indices_cast4 = bitcast i8* %"$indices_gep_2315" to %String* - store %String %"$key2c_2314", %String* %indices_cast4, align 8 - %"$execptr_load_2317" = load i8*, i8** @_execptr, align 8 - %"$$c1_11_call_2318" = call i8* @_fetch_field(i8* %"$execptr_load_2317", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m2_2316", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_76", i32 2, i8* %"$indices_buf_2311", i32 1), !dbg !248 - %"$$c1_11_2319" = bitcast i8* %"$$c1_11_call_2318" to %TName_Option_String* - store %TName_Option_String* %"$$c1_11_2319", %TName_Option_String** %"$c1_11", align 8 - %"$$c1_11_2320" = load %TName_Option_String*, %TName_Option_String** %"$c1_11", align 8 - %"$$$c1_11_2320_2321" = bitcast %TName_Option_String* %"$$c1_11_2320" to i8* - %"$_literal_cost_call_2322" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_String_72", i8* %"$$$c1_11_2320_2321") - %"$gasadd_2323" = add i64 %"$_literal_cost_call_2322", 0 - %"$gasadd_2324" = add i64 %"$gasadd_2323", 2 - %"$gasrem_2325" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2326" = icmp ugt i64 %"$gasadd_2324", %"$gasrem_2325" - br i1 %"$gascmp_2326", label %"$out_of_gas_2327", label %"$have_gas_2328" - -"$out_of_gas_2327": ; preds = %"$have_gas_2308" - call void @_out_of_gas() - br label %"$have_gas_2328" - -"$have_gas_2328": ; preds = %"$out_of_gas_2327", %"$have_gas_2308" - %"$consume_2329" = sub i64 %"$gasrem_2325", %"$gasadd_2324" - store i64 %"$consume_2329", i64* @_gasrem, align 8 - %"$gasrem_2330" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2331" = icmp ugt i64 2, %"$gasrem_2330" - br i1 %"$gascmp_2331", label %"$out_of_gas_2332", label %"$have_gas_2333" - -"$out_of_gas_2332": ; preds = %"$have_gas_2328" - call void @_out_of_gas() - br label %"$have_gas_2333" - -"$have_gas_2333": ; preds = %"$out_of_gas_2332", %"$have_gas_2328" - %"$consume_2334" = sub i64 %"$gasrem_2330", 2 - store i64 %"$consume_2334", i64* @_gasrem, align 8 - %"$$c1_11_2336" = load %TName_Option_String*, %TName_Option_String** %"$c1_11", align 8 - %"$$c1_11_tag_2337" = getelementptr inbounds %TName_Option_String, %TName_Option_String* %"$$c1_11_2336", i32 0, i32 0 - %"$$c1_11_tag_2338" = load i8, i8* %"$$c1_11_tag_2337", align 1 - switch i8 %"$$c1_11_tag_2338", label %"$empty_default_2339" [ - i8 0, label %"$Some_2340" - i8 1, label %"$None_2413" - ], !dbg !249 - -"$Some_2340": ; preds = %"$have_gas_2333" - %"$$c1_11_2341" = bitcast %TName_Option_String* %"$$c1_11_2336" to %CName_Some_String* - %"$c_gep_2342" = getelementptr inbounds %CName_Some_String, %CName_Some_String* %"$$c1_11_2341", i32 0, i32 1 - %"$c_load_2343" = load %String, %String* %"$c_gep_2342", align 8 + call void @llvm.dbg.declare(metadata %TName_Option_String** %"$c1_11", metadata !506, metadata !DIExpression()), !dbg !507 + %"$indices_buf_2343_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$indices_buf_2343_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_2343_salloc_load", i64 32) + %"$indices_buf_2343_salloc" = bitcast i8* %"$indices_buf_2343_salloc_salloc" to [32 x i8]* + %"$indices_buf_2343" = bitcast [32 x i8]* %"$indices_buf_2343_salloc" to i8* + %"$key1b_2344" = load %String, %String* %key1b, align 8 + %"$indices_gep_2345" = getelementptr i8, i8* %"$indices_buf_2343", i32 0 + %indices_cast3 = bitcast i8* %"$indices_gep_2345" to %String* + store %String %"$key1b_2344", %String* %indices_cast3, align 8 + %"$key2c_2346" = load %String, %String* %key2c, align 8 + %"$indices_gep_2347" = getelementptr i8, i8* %"$indices_buf_2343", i32 16 + %indices_cast4 = bitcast i8* %"$indices_gep_2347" to %String* + store %String %"$key2c_2346", %String* %indices_cast4, align 8 + %"$execptr_load_2349" = load i8*, i8** @_execptr, align 8 + %"$$c1_11_call_2350" = call i8* @_fetch_field(i8* %"$execptr_load_2349", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m2_2348", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_76", i32 2, i8* %"$indices_buf_2343", i32 1), !dbg !507 + %"$$c1_11_2351" = bitcast i8* %"$$c1_11_call_2350" to %TName_Option_String* + store %TName_Option_String* %"$$c1_11_2351", %TName_Option_String** %"$c1_11", align 8 + %"$$c1_11_2352" = load %TName_Option_String*, %TName_Option_String** %"$c1_11", align 8 + %"$$$c1_11_2352_2353" = bitcast %TName_Option_String* %"$$c1_11_2352" to i8* + %"$_literal_cost_call_2354" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_String_72", i8* %"$$$c1_11_2352_2353") + %"$gasadd_2355" = add i64 %"$_literal_cost_call_2354", 0 + %"$gasadd_2356" = add i64 %"$gasadd_2355", 2 + %"$gasrem_2357" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2358" = icmp ugt i64 %"$gasadd_2356", %"$gasrem_2357" + br i1 %"$gascmp_2358", label %"$out_of_gas_2359", label %"$have_gas_2360" + +"$out_of_gas_2359": ; preds = %"$have_gas_2340" + call void @_out_of_gas() + br label %"$have_gas_2360" + +"$have_gas_2360": ; preds = %"$out_of_gas_2359", %"$have_gas_2340" + %"$consume_2361" = sub i64 %"$gasrem_2357", %"$gasadd_2356" + store i64 %"$consume_2361", i64* @_gasrem, align 8 + %"$gasrem_2362" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2363" = icmp ugt i64 2, %"$gasrem_2362" + br i1 %"$gascmp_2363", label %"$out_of_gas_2364", label %"$have_gas_2365" + +"$out_of_gas_2364": ; preds = %"$have_gas_2360" + call void @_out_of_gas() + br label %"$have_gas_2365" + +"$have_gas_2365": ; preds = %"$out_of_gas_2364", %"$have_gas_2360" + %"$consume_2366" = sub i64 %"$gasrem_2362", 2 + store i64 %"$consume_2366", i64* @_gasrem, align 8 + %"$$c1_11_2368" = load %TName_Option_String*, %TName_Option_String** %"$c1_11", align 8 + %"$$c1_11_tag_2369" = getelementptr inbounds %TName_Option_String, %TName_Option_String* %"$$c1_11_2368", i32 0, i32 0 + %"$$c1_11_tag_2370" = load i8, i8* %"$$c1_11_tag_2369", align 1 + switch i8 %"$$c1_11_tag_2370", label %"$empty_default_2371" [ + i8 0, label %"$Some_2372" + i8 1, label %"$None_2445" + ], !dbg !508 + +"$Some_2372": ; preds = %"$have_gas_2365" + %"$$c1_11_2373" = bitcast %TName_Option_String* %"$$c1_11_2368" to %CName_Some_String* + %"$c_gep_2374" = getelementptr inbounds %CName_Some_String, %CName_Some_String* %"$$c1_11_2373", i32 0, i32 1 + %"$c_load_2375" = load %String, %String* %"$c_gep_2374", align 8 %c5 = alloca %String, align 8 - store %String %"$c_load_2343", %String* %c5, align 8 - %"$gasrem_2344" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2345" = icmp ugt i64 1, %"$gasrem_2344" - br i1 %"$gascmp_2345", label %"$out_of_gas_2346", label %"$have_gas_2347" + store %String %"$c_load_2375", %String* %c5, 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" -"$out_of_gas_2346": ; preds = %"$Some_2340" +"$out_of_gas_2378": ; preds = %"$Some_2372" call void @_out_of_gas() - br label %"$have_gas_2347" + br label %"$have_gas_2379" -"$have_gas_2347": ; preds = %"$out_of_gas_2346", %"$Some_2340" - %"$consume_2348" = sub i64 %"$gasrem_2344", 1 - store i64 %"$consume_2348", i64* @_gasrem, align 8 +"$have_gas_2379": ; preds = %"$out_of_gas_2378", %"$Some_2372" + %"$consume_2380" = sub i64 %"$gasrem_2376", 1 + store i64 %"$consume_2380", i64* @_gasrem, align 8 %v6 = alloca %String, align 8 - %"$gasrem_2349" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2350" = icmp ugt i64 1, %"$gasrem_2349" - br i1 %"$gascmp_2350", label %"$out_of_gas_2351", label %"$have_gas_2352" + call void @llvm.dbg.declare(metadata %String* %v6, metadata !509, metadata !DIExpression()), !dbg !512 + %"$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_2351": ; preds = %"$have_gas_2347" +"$out_of_gas_2383": ; preds = %"$have_gas_2379" call void @_out_of_gas() - br label %"$have_gas_2352" + br label %"$have_gas_2384" -"$have_gas_2352": ; preds = %"$out_of_gas_2351", %"$have_gas_2347" - %"$consume_2353" = sub i64 %"$gasrem_2349", 1 - store i64 %"$consume_2353", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_2354", i32 0, i32 0), i32 3 }, %String* %v6, align 8, !dbg !250 - %"$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" +"$have_gas_2384": ; preds = %"$out_of_gas_2383", %"$have_gas_2379" + %"$consume_2385" = sub i64 %"$gasrem_2381", 1 + store i64 %"$consume_2385", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_2386", i32 0, i32 0), i32 3 }, %String* %v6, align 8, !dbg !513 + %"$gasrem_2387" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2388" = icmp ugt i64 1, %"$gasrem_2387" + br i1 %"$gascmp_2388", label %"$out_of_gas_2389", label %"$have_gas_2390" -"$out_of_gas_2357": ; preds = %"$have_gas_2352" +"$out_of_gas_2389": ; preds = %"$have_gas_2384" call void @_out_of_gas() - br label %"$have_gas_2358" + br label %"$have_gas_2390" -"$have_gas_2358": ; preds = %"$out_of_gas_2357", %"$have_gas_2352" - %"$consume_2359" = sub i64 %"$gasrem_2355", 1 - store i64 %"$consume_2359", i64* @_gasrem, align 8 +"$have_gas_2390": ; preds = %"$out_of_gas_2389", %"$have_gas_2384" + %"$consume_2391" = sub i64 %"$gasrem_2387", 1 + store i64 %"$consume_2391", i64* @_gasrem, align 8 %eq7 = alloca %TName_Bool*, align 8 - %"$_literal_cost_c_2360" = alloca %String, align 8 - %"$c_2361" = load %String, %String* %c5, align 8 - store %String %"$c_2361", %String* %"$_literal_cost_c_2360", align 8 - %"$$_literal_cost_c_2360_2362" = bitcast %String* %"$_literal_cost_c_2360" to i8* - %"$_literal_cost_call_2363" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_52", i8* %"$$_literal_cost_c_2360_2362") - %"$_literal_cost_v_2364" = alloca %String, align 8 - %"$v_2365" = load %String, %String* %v6, align 8 - store %String %"$v_2365", %String* %"$_literal_cost_v_2364", align 8 - %"$$_literal_cost_v_2364_2366" = bitcast %String* %"$_literal_cost_v_2364" to i8* - %"$_literal_cost_call_2367" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_52", i8* %"$$_literal_cost_v_2364_2366") - %"$gasmin_2368" = call i64 @llvm.umin.i64(i64 %"$_literal_cost_call_2363", i64 %"$_literal_cost_call_2367") - %"$gasrem_2369" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2370" = icmp ugt i64 %"$gasmin_2368", %"$gasrem_2369" - br i1 %"$gascmp_2370", label %"$out_of_gas_2371", label %"$have_gas_2372" - -"$out_of_gas_2371": ; preds = %"$have_gas_2358" - call void @_out_of_gas() - br label %"$have_gas_2372" - -"$have_gas_2372": ; preds = %"$out_of_gas_2371", %"$have_gas_2358" - %"$consume_2373" = sub i64 %"$gasrem_2369", %"$gasmin_2368" - store i64 %"$consume_2373", i64* @_gasrem, align 8 - %"$execptr_load_2374" = load i8*, i8** @_execptr, align 8 - %"$c_2375" = load %String, %String* %c5, align 8 - %"$v_2376" = load %String, %String* %v6, align 8 - %"$eq_call_2377" = call %TName_Bool* @_eq_String(i8* %"$execptr_load_2374", %String %"$c_2375", %String %"$v_2376"), !dbg !253 - store %TName_Bool* %"$eq_call_2377", %TName_Bool** %eq7, align 8, !dbg !253 - %"$gasrem_2379" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2380" = icmp ugt i64 2, %"$gasrem_2379" - br i1 %"$gascmp_2380", label %"$out_of_gas_2381", label %"$have_gas_2382" - -"$out_of_gas_2381": ; preds = %"$have_gas_2372" - call void @_out_of_gas() - br label %"$have_gas_2382" - -"$have_gas_2382": ; preds = %"$out_of_gas_2381", %"$have_gas_2372" - %"$consume_2383" = sub i64 %"$gasrem_2379", 2 - store i64 %"$consume_2383", i64* @_gasrem, align 8 - %"$eq_2385" = load %TName_Bool*, %TName_Bool** %eq7, align 8 - %"$eq_tag_2386" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$eq_2385", i32 0, i32 0 - %"$eq_tag_2387" = load i8, i8* %"$eq_tag_2386", align 1 - switch i8 %"$eq_tag_2387", label %"$empty_default_2388" [ - i8 0, label %"$True_2389" - i8 1, label %"$False_2391" - ], !dbg !254 - -"$True_2389": ; preds = %"$have_gas_2382" - %"$eq_2390" = bitcast %TName_Bool* %"$eq_2385" to %CName_True* - br label %"$matchsucc_2384" - -"$False_2391": ; preds = %"$have_gas_2382" - %"$eq_2392" = bitcast %TName_Bool* %"$eq_2385" to %CName_False* - %"$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" - -"$out_of_gas_2395": ; preds = %"$False_2391" - call void @_out_of_gas() - br label %"$have_gas_2396" - -"$have_gas_2396": ; preds = %"$out_of_gas_2395", %"$False_2391" - %"$consume_2397" = sub i64 %"$gasrem_2393", 1 - store i64 %"$consume_2397", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %eq7, metadata !514, metadata !DIExpression()), !dbg !515 + %"$_literal_cost_c_2392" = alloca %String, align 8 + %"$c_2393" = load %String, %String* %c5, align 8 + store %String %"$c_2393", %String* %"$_literal_cost_c_2392", align 8 + %"$$_literal_cost_c_2392_2394" = bitcast %String* %"$_literal_cost_c_2392" to i8* + %"$_literal_cost_call_2395" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_52", i8* %"$$_literal_cost_c_2392_2394") + %"$_literal_cost_v_2396" = alloca %String, align 8 + %"$v_2397" = load %String, %String* %v6, align 8 + store %String %"$v_2397", %String* %"$_literal_cost_v_2396", align 8 + %"$$_literal_cost_v_2396_2398" = bitcast %String* %"$_literal_cost_v_2396" to i8* + %"$_literal_cost_call_2399" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_52", i8* %"$$_literal_cost_v_2396_2398") + %"$gasmin_2400" = call i64 @llvm.umin.i64(i64 %"$_literal_cost_call_2395", i64 %"$_literal_cost_call_2399") + %"$gasrem_2401" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2402" = icmp ugt i64 %"$gasmin_2400", %"$gasrem_2401" + br i1 %"$gascmp_2402", label %"$out_of_gas_2403", label %"$have_gas_2404" + +"$out_of_gas_2403": ; preds = %"$have_gas_2390" + call void @_out_of_gas() + br label %"$have_gas_2404" + +"$have_gas_2404": ; preds = %"$out_of_gas_2403", %"$have_gas_2390" + %"$consume_2405" = sub i64 %"$gasrem_2401", %"$gasmin_2400" + store i64 %"$consume_2405", i64* @_gasrem, align 8 + %"$execptr_load_2406" = load i8*, i8** @_execptr, align 8 + %"$c_2407" = load %String, %String* %c5, align 8 + %"$v_2408" = load %String, %String* %v6, align 8 + %"$eq_call_2409" = call %TName_Bool* @_eq_String(i8* %"$execptr_load_2406", %String %"$c_2407", %String %"$v_2408"), !dbg !516 + store %TName_Bool* %"$eq_call_2409", %TName_Bool** %eq7, align 8, !dbg !516 + %"$gasrem_2411" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2412" = icmp ugt i64 2, %"$gasrem_2411" + br i1 %"$gascmp_2412", label %"$out_of_gas_2413", label %"$have_gas_2414" + +"$out_of_gas_2413": ; preds = %"$have_gas_2404" + call void @_out_of_gas() + br label %"$have_gas_2414" + +"$have_gas_2414": ; preds = %"$out_of_gas_2413", %"$have_gas_2404" + %"$consume_2415" = sub i64 %"$gasrem_2411", 2 + store i64 %"$consume_2415", i64* @_gasrem, align 8 + %"$eq_2417" = load %TName_Bool*, %TName_Bool** %eq7, align 8 + %"$eq_tag_2418" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$eq_2417", i32 0, i32 0 + %"$eq_tag_2419" = load i8, i8* %"$eq_tag_2418", align 1 + switch i8 %"$eq_tag_2419", label %"$empty_default_2420" [ + i8 0, label %"$True_2421" + i8 1, label %"$False_2423" + ], !dbg !517 + +"$True_2421": ; preds = %"$have_gas_2414" + %"$eq_2422" = bitcast %TName_Bool* %"$eq_2417" to %CName_True* + br label %"$matchsucc_2416" + +"$False_2423": ; preds = %"$have_gas_2414" + %"$eq_2424" = bitcast %TName_Bool* %"$eq_2417" to %CName_False* + %"$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_2427": ; preds = %"$False_2423" + call void @_out_of_gas() + br label %"$have_gas_2428" + +"$have_gas_2428": ; preds = %"$out_of_gas_2427", %"$False_2423" + %"$consume_2429" = sub i64 %"$gasrem_2425", 1 + store i64 %"$consume_2429", i64* @_gasrem, align 8 %m8 = 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" - -"$out_of_gas_2400": ; preds = %"$have_gas_2396" - call void @_out_of_gas() - br label %"$have_gas_2401" - -"$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 ([31 x i8], [31 x i8]* @"$stringlit_2403", i32 0, i32 0), i32 31 }, %String* %m8, align 8, !dbg !255 - %"$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" - -"$out_of_gas_2406": ; preds = %"$have_gas_2401" - call void @_out_of_gas() - br label %"$have_gas_2407" - -"$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* %m8, align 8 - call void @"$fail_msg_292"(%Uint128 %_amount, [20 x i8]* %"$fail_msg__origin_2409", [20 x i8]* %"$fail_msg__sender_2410", %String %"$tname_2411", %String %"$m_2412"), !dbg !258 - br label %"$matchsucc_2384" - -"$empty_default_2388": ; preds = %"$have_gas_2382" - br label %"$matchsucc_2384" - -"$matchsucc_2384": ; preds = %"$have_gas_2407", %"$True_2389", %"$empty_default_2388" - br label %"$matchsucc_2335" - -"$None_2413": ; preds = %"$have_gas_2333" - %"$$c1_11_2414" = bitcast %TName_Option_String* %"$$c1_11_2336" to %CName_None_String* - %"$gasrem_2415" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2416" = icmp ugt i64 1, %"$gasrem_2415" - br i1 %"$gascmp_2416", label %"$out_of_gas_2417", label %"$have_gas_2418" - -"$out_of_gas_2417": ; preds = %"$None_2413" - call void @_out_of_gas() - br label %"$have_gas_2418" - -"$have_gas_2418": ; preds = %"$out_of_gas_2417", %"$None_2413" - %"$consume_2419" = sub i64 %"$gasrem_2415", 1 - store i64 %"$consume_2419", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %String* %m8, metadata !518, metadata !DIExpression()), !dbg !521 + %"$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_2432": ; preds = %"$have_gas_2428" + call void @_out_of_gas() + br label %"$have_gas_2433" + +"$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 ([31 x i8], [31 x i8]* @"$stringlit_2435", i32 0, i32 0), i32 31 }, %String* %m8, align 8, !dbg !522 + %"$gasrem_2436" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2437" = icmp ugt i64 1, %"$gasrem_2436" + br i1 %"$gascmp_2437", label %"$out_of_gas_2438", label %"$have_gas_2439" + +"$out_of_gas_2438": ; preds = %"$have_gas_2433" + call void @_out_of_gas() + br label %"$have_gas_2439" + +"$have_gas_2439": ; preds = %"$out_of_gas_2438", %"$have_gas_2433" + %"$consume_2440" = sub i64 %"$gasrem_2436", 1 + store i64 %"$consume_2440", i64* @_gasrem, align 8 + %"$fail_msg__origin_2441" = alloca [20 x i8], align 1 + store [20 x i8] %_origin, [20 x i8]* %"$fail_msg__origin_2441", align 1 + %"$fail_msg__sender_2442" = alloca [20 x i8], align 1 + store [20 x i8] %_sender, [20 x i8]* %"$fail_msg__sender_2442", align 1 + %"$tname_2443" = load %String, %String* %tname, align 8 + %"$m_2444" = load %String, %String* %m8, align 8 + call void @"$fail_msg_298"(%Uint128 %_amount, [20 x i8]* %"$fail_msg__origin_2441", [20 x i8]* %"$fail_msg__sender_2442", %String %"$tname_2443", %String %"$m_2444"), !dbg !523 + br label %"$matchsucc_2416" + +"$empty_default_2420": ; preds = %"$have_gas_2414" + br label %"$matchsucc_2416" + +"$matchsucc_2416": ; preds = %"$have_gas_2439", %"$True_2421", %"$empty_default_2420" + br label %"$matchsucc_2367" + +"$None_2445": ; preds = %"$have_gas_2365" + %"$$c1_11_2446" = bitcast %TName_Option_String* %"$$c1_11_2368" to %CName_None_String* + %"$gasrem_2447" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2448" = icmp ugt i64 1, %"$gasrem_2447" + br i1 %"$gascmp_2448", label %"$out_of_gas_2449", label %"$have_gas_2450" + +"$out_of_gas_2449": ; preds = %"$None_2445" + call void @_out_of_gas() + br label %"$have_gas_2450" + +"$have_gas_2450": ; preds = %"$out_of_gas_2449", %"$None_2445" + %"$consume_2451" = sub i64 %"$gasrem_2447", 1 + store i64 %"$consume_2451", i64* @_gasrem, align 8 %m9 = alloca %String, align 8 - %"$gasrem_2420" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2421" = icmp ugt i64 1, %"$gasrem_2420" - br i1 %"$gascmp_2421", label %"$out_of_gas_2422", label %"$have_gas_2423" - -"$out_of_gas_2422": ; preds = %"$have_gas_2418" - call void @_out_of_gas() - br label %"$have_gas_2423" - -"$have_gas_2423": ; preds = %"$out_of_gas_2422", %"$have_gas_2418" - %"$consume_2424" = sub i64 %"$gasrem_2420", 1 - store i64 %"$consume_2424", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([21 x i8], [21 x i8]* @"$stringlit_2425", i32 0, i32 0), i32 21 }, %String* %m9, align 8, !dbg !259 - %"$gasrem_2426" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2427" = icmp ugt i64 1, %"$gasrem_2426" - br i1 %"$gascmp_2427", label %"$out_of_gas_2428", label %"$have_gas_2429" - -"$out_of_gas_2428": ; preds = %"$have_gas_2423" - call void @_out_of_gas() - br label %"$have_gas_2429" - -"$have_gas_2429": ; preds = %"$out_of_gas_2428", %"$have_gas_2423" - %"$consume_2430" = sub i64 %"$gasrem_2426", 1 - store i64 %"$consume_2430", i64* @_gasrem, align 8 - %"$fail_msg__origin_2431" = alloca [20 x i8], align 1 - store [20 x i8] %_origin, [20 x i8]* %"$fail_msg__origin_2431", align 1 - %"$fail_msg__sender_2432" = alloca [20 x i8], align 1 - store [20 x i8] %_sender, [20 x i8]* %"$fail_msg__sender_2432", align 1 - %"$tname_2433" = load %String, %String* %tname, align 8 - %"$m_2434" = load %String, %String* %m9, align 8 - call void @"$fail_msg_292"(%Uint128 %_amount, [20 x i8]* %"$fail_msg__origin_2431", [20 x i8]* %"$fail_msg__sender_2432", %String %"$tname_2433", %String %"$m_2434"), !dbg !261 - br label %"$matchsucc_2335" - -"$empty_default_2339": ; preds = %"$have_gas_2333" - br label %"$matchsucc_2335" - -"$matchsucc_2335": ; preds = %"$have_gas_2429", %"$matchsucc_2384", %"$empty_default_2339" - %"$gasrem_2435" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2436" = icmp ugt i64 1, %"$gasrem_2435" - br i1 %"$gascmp_2436", label %"$out_of_gas_2437", label %"$have_gas_2438" - -"$out_of_gas_2437": ; preds = %"$matchsucc_2335" - call void @_out_of_gas() - br label %"$have_gas_2438" - -"$have_gas_2438": ; preds = %"$out_of_gas_2437", %"$matchsucc_2335" - %"$consume_2439" = sub i64 %"$gasrem_2435", 1 - store i64 %"$consume_2439", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %String* %m9, metadata !524, metadata !DIExpression()), !dbg !526 + %"$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 + store %String { i8* getelementptr inbounds ([21 x i8], [21 x i8]* @"$stringlit_2457", i32 0, i32 0), i32 21 }, %String* %m9, align 8, !dbg !527 + %"$gasrem_2458" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2459" = icmp ugt i64 1, %"$gasrem_2458" + br i1 %"$gascmp_2459", label %"$out_of_gas_2460", label %"$have_gas_2461" + +"$out_of_gas_2460": ; preds = %"$have_gas_2455" + call void @_out_of_gas() + br label %"$have_gas_2461" + +"$have_gas_2461": ; preds = %"$out_of_gas_2460", %"$have_gas_2455" + %"$consume_2462" = sub i64 %"$gasrem_2458", 1 + store i64 %"$consume_2462", i64* @_gasrem, align 8 + %"$fail_msg__origin_2463" = alloca [20 x i8], align 1 + store [20 x i8] %_origin, [20 x i8]* %"$fail_msg__origin_2463", align 1 + %"$fail_msg__sender_2464" = alloca [20 x i8], align 1 + store [20 x i8] %_sender, [20 x i8]* %"$fail_msg__sender_2464", align 1 + %"$tname_2465" = load %String, %String* %tname, align 8 + %"$m_2466" = load %String, %String* %m9, align 8 + call void @"$fail_msg_298"(%Uint128 %_amount, [20 x i8]* %"$fail_msg__origin_2463", [20 x i8]* %"$fail_msg__sender_2464", %String %"$tname_2465", %String %"$m_2466"), !dbg !528 + br label %"$matchsucc_2367" + +"$empty_default_2371": ; preds = %"$have_gas_2365" + br label %"$matchsucc_2367" + +"$matchsucc_2367": ; preds = %"$have_gas_2461", %"$matchsucc_2416", %"$empty_default_2371" + %"$gasrem_2467" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2468" = icmp ugt i64 1, %"$gasrem_2467" + br i1 %"$gascmp_2468", label %"$out_of_gas_2469", label %"$have_gas_2470" + +"$out_of_gas_2469": ; preds = %"$matchsucc_2367" + call void @_out_of_gas() + br label %"$have_gas_2470" + +"$have_gas_2470": ; preds = %"$out_of_gas_2469", %"$matchsucc_2367" + %"$consume_2471" = sub i64 %"$gasrem_2467", 1 + store i64 %"$consume_2471", i64* @_gasrem, align 8 %em = alloca %Map_String_String*, align 8 - %"$gasrem_2440" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2441" = icmp ugt i64 1, %"$gasrem_2440" - br i1 %"$gascmp_2441", label %"$out_of_gas_2442", label %"$have_gas_2443" - -"$out_of_gas_2442": ; preds = %"$have_gas_2438" - call void @_out_of_gas() - br label %"$have_gas_2443" - -"$have_gas_2443": ; preds = %"$out_of_gas_2442", %"$have_gas_2438" - %"$consume_2444" = sub i64 %"$gasrem_2440", 1 - store i64 %"$consume_2444", i64* @_gasrem, align 8 - %"$execptr_load_2445" = load i8*, i8** @_execptr, align 8 - %"$_new_empty_map_call_2446" = call i8* @_new_empty_map(i8* %"$execptr_load_2445") - %"$_new_empty_map_2447" = bitcast i8* %"$_new_empty_map_call_2446" to %Map_String_String* - store %Map_String_String* %"$_new_empty_map_2447", %Map_String_String** %em, align 8, !dbg !262 - %"$em_2448" = load %Map_String_String*, %Map_String_String** %em, align 8 - %"$$em_2448_2449" = bitcast %Map_String_String* %"$em_2448" to i8* - %"$_literal_cost_call_2450" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Map_77", i8* %"$$em_2448_2449") - %"$gasrem_2451" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2452" = icmp ugt i64 %"$_literal_cost_call_2450", %"$gasrem_2451" - br i1 %"$gascmp_2452", label %"$out_of_gas_2453", label %"$have_gas_2454" - -"$out_of_gas_2453": ; preds = %"$have_gas_2443" - call void @_out_of_gas() - br label %"$have_gas_2454" - -"$have_gas_2454": ; preds = %"$out_of_gas_2453", %"$have_gas_2443" - %"$consume_2455" = sub i64 %"$gasrem_2451", %"$_literal_cost_call_2450" - store i64 %"$consume_2455", i64* @_gasrem, align 8 - %"$execptr_load_2456" = load i8*, i8** @_execptr, align 8 - %"$em_2458" = load %Map_String_String*, %Map_String_String** %em, align 8 - %"$update_value_2459" = bitcast %Map_String_String* %"$em_2458" to i8* - call void @_update_field(i8* %"$execptr_load_2456", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m1_2457", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_77", i32 0, i8* null, i8* %"$update_value_2459"), !dbg !263 + call void @llvm.dbg.declare(metadata %Map_String_String** %em, metadata !529, metadata !DIExpression()), !dbg !530 + %"$gasrem_2472" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2473" = icmp ugt i64 1, %"$gasrem_2472" + br i1 %"$gascmp_2473", label %"$out_of_gas_2474", label %"$have_gas_2475" + +"$out_of_gas_2474": ; preds = %"$have_gas_2470" + call void @_out_of_gas() + br label %"$have_gas_2475" + +"$have_gas_2475": ; preds = %"$out_of_gas_2474", %"$have_gas_2470" + %"$consume_2476" = sub i64 %"$gasrem_2472", 1 + store i64 %"$consume_2476", i64* @_gasrem, align 8 + %"$execptr_load_2477" = load i8*, i8** @_execptr, align 8 + %"$_new_empty_map_call_2478" = call i8* @_new_empty_map(i8* %"$execptr_load_2477") + %"$_new_empty_map_2479" = bitcast i8* %"$_new_empty_map_call_2478" to %Map_String_String* + store %Map_String_String* %"$_new_empty_map_2479", %Map_String_String** %em, align 8, !dbg !531 + %"$em_2480" = load %Map_String_String*, %Map_String_String** %em, align 8 + %"$$em_2480_2481" = bitcast %Map_String_String* %"$em_2480" to i8* + %"$_literal_cost_call_2482" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Map_77", i8* %"$$em_2480_2481") + %"$gasrem_2483" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2484" = icmp ugt i64 %"$_literal_cost_call_2482", %"$gasrem_2483" + br i1 %"$gascmp_2484", label %"$out_of_gas_2485", label %"$have_gas_2486" + +"$out_of_gas_2485": ; preds = %"$have_gas_2475" + call void @_out_of_gas() + br label %"$have_gas_2486" + +"$have_gas_2486": ; preds = %"$out_of_gas_2485", %"$have_gas_2475" + %"$consume_2487" = sub i64 %"$gasrem_2483", %"$_literal_cost_call_2482" + store i64 %"$consume_2487", i64* @_gasrem, align 8 + %"$execptr_load_2488" = load i8*, i8** @_execptr, align 8 + %"$em_2490" = load %Map_String_String*, %Map_String_String** %em, align 8 + %"$update_value_2491" = bitcast %Map_String_String* %"$em_2490" to i8* + call void @_update_field(i8* %"$execptr_load_2488", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m1_2489", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_77", i32 0, i8* null, i8* %"$update_value_2491"), !dbg !532 ret void } -define void @t8(i8* %0) !dbg !264 { +define void @t8(i8* %0) !dbg !533 { entry: - %"$_amount_2461" = getelementptr i8, i8* %0, i32 0 - %"$_amount_2462" = bitcast i8* %"$_amount_2461" to %Uint128* - %_amount = load %Uint128, %Uint128* %"$_amount_2462", align 8 - %"$_origin_2463" = getelementptr i8, i8* %0, i32 16 - %"$_origin_2464" = bitcast i8* %"$_origin_2463" to [20 x i8]* - %"$_sender_2465" = getelementptr i8, i8* %0, i32 36 - %"$_sender_2466" = bitcast i8* %"$_sender_2465" to [20 x i8]* - call void @"$t8_2129"(%Uint128 %_amount, [20 x i8]* %"$_origin_2464", [20 x i8]* %"$_sender_2466"), !dbg !265 + %"$_amount_2496" = getelementptr i8, i8* %0, i32 0 + %"$_amount_2497" = bitcast i8* %"$_amount_2496" to %Uint128* + %_amount = load %Uint128, %Uint128* %"$_amount_2497", align 8 + %"$_origin_2498" = getelementptr i8, i8* %0, i32 16 + %"$_origin_2499" = bitcast i8* %"$_origin_2498" to [20 x i8]* + %"$_sender_2500" = getelementptr i8, i8* %0, i32 36 + %"$_sender_2501" = bitcast i8* %"$_sender_2500" to [20 x i8]* + call void @"$t8_2161"(%Uint128 %_amount, [20 x i8]* %"$_origin_2499", [20 x i8]* %"$_sender_2501"), !dbg !534 ret void } -define internal void @"$t9_2467"(%Uint128 %_amount, [20 x i8]* %"$_origin_2468", [20 x i8]* %"$_sender_2469") !dbg !266 { +define internal void @"$t9_2502"(%Uint128 %_amount, [20 x i8]* %"$_origin_2503", [20 x i8]* %"$_sender_2504") !dbg !535 { entry: - %_origin = load [20 x i8], [20 x i8]* %"$_origin_2468", align 1 - %_sender = load [20 x i8], [20 x i8]* %"$_sender_2469", align 1 - %"$gasrem_2470" = load i64, i64* @_gasrem, align 8 - %"$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 = %entry - call void @_out_of_gas() - br label %"$have_gas_2473" - -"$have_gas_2473": ; preds = %"$out_of_gas_2472", %entry - %"$consume_2474" = sub i64 %"$gasrem_2470", 1 - store i64 %"$consume_2474", i64* @_gasrem, align 8 + %"$_sender_2653" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_sender_2504", [20 x i8]** %"$_sender_2653", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_sender_2653", metadata !536, metadata !DIExpression()), !dbg !537 + %"$_origin_2652" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_origin_2503", [20 x i8]** %"$_origin_2652", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_origin_2652", metadata !538, metadata !DIExpression()), !dbg !537 + %"$_amount_2651" = alloca %Uint128, align 8 + store %Uint128 %_amount, %Uint128* %"$_amount_2651", align 8 + call void @llvm.dbg.declare(metadata %Uint128* %"$_amount_2651", metadata !539, metadata !DIExpression()), !dbg !537 + %_origin = load [20 x i8], [20 x i8]* %"$_origin_2503", align 1 + %_sender = load [20 x i8], [20 x i8]* %"$_sender_2504", align 1 + %"$gasrem_2505" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2506" = icmp ugt i64 1, %"$gasrem_2505" + br i1 %"$gascmp_2506", label %"$out_of_gas_2507", label %"$have_gas_2508" + +"$out_of_gas_2507": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_2508" + +"$have_gas_2508": ; preds = %"$out_of_gas_2507", %entry + %"$consume_2509" = sub i64 %"$gasrem_2505", 1 + store i64 %"$consume_2509", i64* @_gasrem, align 8 %tname = alloca %String, align 8 - %"$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" + call void @llvm.dbg.declare(metadata %String* %tname, metadata !540, metadata !DIExpression()), !dbg !541 + %"$gasrem_2510" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2511" = icmp ugt i64 1, %"$gasrem_2510" + br i1 %"$gascmp_2511", label %"$out_of_gas_2512", label %"$have_gas_2513" -"$out_of_gas_2477": ; preds = %"$have_gas_2473" +"$out_of_gas_2512": ; preds = %"$have_gas_2508" call void @_out_of_gas() - br label %"$have_gas_2478" + br label %"$have_gas_2513" -"$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 - store %String { i8* getelementptr inbounds ([2 x i8], [2 x i8]* @"$stringlit_2480", i32 0, i32 0), i32 2 }, %String* %tname, align 8, !dbg !267 +"$have_gas_2513": ; preds = %"$out_of_gas_2512", %"$have_gas_2508" + %"$consume_2514" = sub i64 %"$gasrem_2510", 1 + store i64 %"$consume_2514", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([2 x i8], [2 x i8]* @"$stringlit_2515", i32 0, i32 0), i32 2 }, %String* %tname, align 8, !dbg !542 %m1 = alloca %Map_String_String*, align 8 - %"$execptr_load_2482" = load i8*, i8** @_execptr, align 8 - %"$m1_call_2483" = call i8* @_fetch_field(i8* %"$execptr_load_2482", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m1_2481", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_77", i32 0, i8* null, i32 1), !dbg !268 - %"$m1_2484" = bitcast i8* %"$m1_call_2483" to %Map_String_String* - store %Map_String_String* %"$m1_2484", %Map_String_String** %m1, 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* - %"$_literal_cost_call_2487" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Map_77", i8* %"$$m1_2485_2486") - %"$m1_2488" = load %Map_String_String*, %Map_String_String** %m1, align 8 - %"$$m1_2488_2489" = bitcast %Map_String_String* %"$m1_2488" to i8* - %"$_mapsortcost_call_2490" = call i64 @_mapsortcost(%_TyDescrTy_Typ* @"$TyDescr_Map_77", i8* %"$$m1_2488_2489") - %"$gasadd_2491" = add i64 %"$_literal_cost_call_2487", %"$_mapsortcost_call_2490" - %"$gasrem_2492" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2493" = icmp ugt i64 %"$gasadd_2491", %"$gasrem_2492" - br i1 %"$gascmp_2493", label %"$out_of_gas_2494", label %"$have_gas_2495" - -"$out_of_gas_2494": ; preds = %"$have_gas_2478" - call void @_out_of_gas() - br label %"$have_gas_2495" - -"$have_gas_2495": ; preds = %"$out_of_gas_2494", %"$have_gas_2478" - %"$consume_2496" = sub i64 %"$gasrem_2492", %"$gasadd_2491" - store i64 %"$consume_2496", i64* @_gasrem, align 8 - %"$gasrem_2497" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2498" = icmp ugt i64 1, %"$gasrem_2497" - br i1 %"$gascmp_2498", label %"$out_of_gas_2499", label %"$have_gas_2500" - -"$out_of_gas_2499": ; preds = %"$have_gas_2495" - call void @_out_of_gas() - br label %"$have_gas_2500" - -"$have_gas_2500": ; preds = %"$out_of_gas_2499", %"$have_gas_2495" - %"$consume_2501" = sub i64 %"$gasrem_2497", 1 - store i64 %"$consume_2501", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %Map_String_String** %m1, metadata !543, metadata !DIExpression()), !dbg !544 + %"$execptr_load_2517" = load i8*, i8** @_execptr, align 8 + %"$m1_call_2518" = call i8* @_fetch_field(i8* %"$execptr_load_2517", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m1_2516", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_77", i32 0, i8* null, i32 1), !dbg !544 + %"$m1_2519" = bitcast i8* %"$m1_call_2518" to %Map_String_String* + store %Map_String_String* %"$m1_2519", %Map_String_String** %m1, align 8 + %"$m1_2520" = load %Map_String_String*, %Map_String_String** %m1, align 8 + %"$$m1_2520_2521" = bitcast %Map_String_String* %"$m1_2520" to i8* + %"$_literal_cost_call_2522" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Map_77", i8* %"$$m1_2520_2521") + %"$m1_2523" = load %Map_String_String*, %Map_String_String** %m1, align 8 + %"$$m1_2523_2524" = bitcast %Map_String_String* %"$m1_2523" to i8* + %"$_mapsortcost_call_2525" = call i64 @_mapsortcost(%_TyDescrTy_Typ* @"$TyDescr_Map_77", i8* %"$$m1_2523_2524") + %"$gasadd_2526" = add i64 %"$_literal_cost_call_2522", %"$_mapsortcost_call_2525" + %"$gasrem_2527" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2528" = icmp ugt i64 %"$gasadd_2526", %"$gasrem_2527" + br i1 %"$gascmp_2528", label %"$out_of_gas_2529", label %"$have_gas_2530" + +"$out_of_gas_2529": ; preds = %"$have_gas_2513" + call void @_out_of_gas() + br label %"$have_gas_2530" + +"$have_gas_2530": ; preds = %"$out_of_gas_2529", %"$have_gas_2513" + %"$consume_2531" = sub i64 %"$gasrem_2527", %"$gasadd_2526" + store i64 %"$consume_2531", i64* @_gasrem, align 8 + %"$gasrem_2532" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2533" = icmp ugt i64 1, %"$gasrem_2532" + br i1 %"$gascmp_2533", label %"$out_of_gas_2534", label %"$have_gas_2535" + +"$out_of_gas_2534": ; preds = %"$have_gas_2530" + call void @_out_of_gas() + br label %"$have_gas_2535" + +"$have_gas_2535": ; preds = %"$out_of_gas_2534", %"$have_gas_2530" + %"$consume_2536" = sub i64 %"$gasrem_2532", 1 + store i64 %"$consume_2536", i64* @_gasrem, align 8 %m1_size = alloca %Uint32, align 8 - %"$gasrem_2502" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2503" = icmp ugt i64 1, %"$gasrem_2502" - br i1 %"$gascmp_2503", label %"$out_of_gas_2504", label %"$have_gas_2505" + call void @llvm.dbg.declare(metadata %Uint32* %m1_size, metadata !545, metadata !DIExpression()), !dbg !547 + %"$gasrem_2537" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2538" = icmp ugt i64 1, %"$gasrem_2537" + br i1 %"$gascmp_2538", label %"$out_of_gas_2539", label %"$have_gas_2540" -"$out_of_gas_2504": ; preds = %"$have_gas_2500" +"$out_of_gas_2539": ; preds = %"$have_gas_2535" call void @_out_of_gas() - br label %"$have_gas_2505" + br label %"$have_gas_2540" -"$have_gas_2505": ; preds = %"$out_of_gas_2504", %"$have_gas_2500" - %"$consume_2506" = sub i64 %"$gasrem_2502", 1 - store i64 %"$consume_2506", i64* @_gasrem, align 8 - %"$m1_2507" = load %Map_String_String*, %Map_String_String** %m1, align 8 - %"$$m1_2507_2508" = bitcast %Map_String_String* %"$m1_2507" to i8* - %"$size_call_2509" = call %Uint32 @_size(i8* %"$$m1_2507_2508"), !dbg !269 - store %Uint32 %"$size_call_2509", %Uint32* %m1_size, align 4, !dbg !269 - %"$gasrem_2510" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2511" = icmp ugt i64 1, %"$gasrem_2510" - br i1 %"$gascmp_2511", label %"$out_of_gas_2512", label %"$have_gas_2513" +"$have_gas_2540": ; preds = %"$out_of_gas_2539", %"$have_gas_2535" + %"$consume_2541" = sub i64 %"$gasrem_2537", 1 + store i64 %"$consume_2541", i64* @_gasrem, align 8 + %"$m1_2542" = load %Map_String_String*, %Map_String_String** %m1, align 8 + %"$$m1_2542_2543" = bitcast %Map_String_String* %"$m1_2542" to i8* + %"$size_call_2544" = call %Uint32 @_size(i8* %"$$m1_2542_2543"), !dbg !548 + store %Uint32 %"$size_call_2544", %Uint32* %m1_size, align 4, !dbg !548 + %"$gasrem_2545" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2546" = icmp ugt i64 1, %"$gasrem_2545" + br i1 %"$gascmp_2546", label %"$out_of_gas_2547", label %"$have_gas_2548" -"$out_of_gas_2512": ; preds = %"$have_gas_2505" +"$out_of_gas_2547": ; preds = %"$have_gas_2540" call void @_out_of_gas() - br label %"$have_gas_2513" + br label %"$have_gas_2548" -"$have_gas_2513": ; preds = %"$out_of_gas_2512", %"$have_gas_2505" - %"$consume_2514" = sub i64 %"$gasrem_2510", 1 - store i64 %"$consume_2514", i64* @_gasrem, align 8 +"$have_gas_2548": ; preds = %"$out_of_gas_2547", %"$have_gas_2540" + %"$consume_2549" = sub i64 %"$gasrem_2545", 1 + store i64 %"$consume_2549", i64* @_gasrem, align 8 %zero = alloca %Uint32, align 8 - %"$gasrem_2515" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2516" = icmp ugt i64 1, %"$gasrem_2515" - br i1 %"$gascmp_2516", label %"$out_of_gas_2517", label %"$have_gas_2518" + call void @llvm.dbg.declare(metadata %Uint32* %zero, metadata !549, metadata !DIExpression()), !dbg !550 + %"$gasrem_2550" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2551" = icmp ugt i64 1, %"$gasrem_2550" + br i1 %"$gascmp_2551", label %"$out_of_gas_2552", label %"$have_gas_2553" -"$out_of_gas_2517": ; preds = %"$have_gas_2513" +"$out_of_gas_2552": ; preds = %"$have_gas_2548" call void @_out_of_gas() - br label %"$have_gas_2518" + br label %"$have_gas_2553" -"$have_gas_2518": ; preds = %"$out_of_gas_2517", %"$have_gas_2513" - %"$consume_2519" = sub i64 %"$gasrem_2515", 1 - store i64 %"$consume_2519", i64* @_gasrem, align 8 - store %Uint32 zeroinitializer, %Uint32* %zero, align 4, !dbg !270 - %"$gasrem_2520" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2521" = icmp ugt i64 1, %"$gasrem_2520" - br i1 %"$gascmp_2521", label %"$out_of_gas_2522", label %"$have_gas_2523" +"$have_gas_2553": ; preds = %"$out_of_gas_2552", %"$have_gas_2548" + %"$consume_2554" = sub i64 %"$gasrem_2550", 1 + store i64 %"$consume_2554", i64* @_gasrem, align 8 + store %Uint32 zeroinitializer, %Uint32* %zero, align 4, !dbg !551 + %"$gasrem_2555" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2556" = icmp ugt i64 1, %"$gasrem_2555" + br i1 %"$gascmp_2556", label %"$out_of_gas_2557", label %"$have_gas_2558" -"$out_of_gas_2522": ; preds = %"$have_gas_2518" +"$out_of_gas_2557": ; preds = %"$have_gas_2553" call void @_out_of_gas() - br label %"$have_gas_2523" + br label %"$have_gas_2558" -"$have_gas_2523": ; preds = %"$out_of_gas_2522", %"$have_gas_2518" - %"$consume_2524" = sub i64 %"$gasrem_2520", 1 - store i64 %"$consume_2524", i64* @_gasrem, align 8 +"$have_gas_2558": ; preds = %"$out_of_gas_2557", %"$have_gas_2553" + %"$consume_2559" = sub i64 %"$gasrem_2555", 1 + store i64 %"$consume_2559", i64* @_gasrem, align 8 %is_empty = alloca %TName_Bool*, align 8 - %"$gasrem_2525" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2526" = icmp ugt i64 4, %"$gasrem_2525" - br i1 %"$gascmp_2526", label %"$out_of_gas_2527", label %"$have_gas_2528" - -"$out_of_gas_2527": ; preds = %"$have_gas_2523" - call void @_out_of_gas() - br label %"$have_gas_2528" - -"$have_gas_2528": ; preds = %"$out_of_gas_2527", %"$have_gas_2523" - %"$consume_2529" = sub i64 %"$gasrem_2525", 4 - store i64 %"$consume_2529", i64* @_gasrem, align 8 - %"$execptr_load_2530" = load i8*, i8** @_execptr, align 8 - %"$m1_size_2531" = load %Uint32, %Uint32* %m1_size, align 4 - %"$zero_2532" = load %Uint32, %Uint32* %zero, align 4 - %"$eq_call_2533" = call %TName_Bool* @_eq_Uint32(i8* %"$execptr_load_2530", %Uint32 %"$m1_size_2531", %Uint32 %"$zero_2532"), !dbg !271 - store %TName_Bool* %"$eq_call_2533", %TName_Bool** %is_empty, align 8, !dbg !271 - %"$gasrem_2535" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2536" = icmp ugt i64 2, %"$gasrem_2535" - br i1 %"$gascmp_2536", label %"$out_of_gas_2537", label %"$have_gas_2538" - -"$out_of_gas_2537": ; preds = %"$have_gas_2528" - call void @_out_of_gas() - br label %"$have_gas_2538" - -"$have_gas_2538": ; preds = %"$out_of_gas_2537", %"$have_gas_2528" - %"$consume_2539" = sub i64 %"$gasrem_2535", 2 - store i64 %"$consume_2539", i64* @_gasrem, align 8 - %"$is_empty_2541" = load %TName_Bool*, %TName_Bool** %is_empty, align 8 - %"$is_empty_tag_2542" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$is_empty_2541", i32 0, i32 0 - %"$is_empty_tag_2543" = load i8, i8* %"$is_empty_tag_2542", align 1 - switch i8 %"$is_empty_tag_2543", label %"$empty_default_2544" [ - i8 0, label %"$True_2545" - i8 1, label %"$False_2547" - ], !dbg !272 - -"$True_2545": ; preds = %"$have_gas_2538" - %"$is_empty_2546" = bitcast %TName_Bool* %"$is_empty_2541" to %CName_True* - br label %"$matchsucc_2540" - -"$False_2547": ; preds = %"$have_gas_2538" - %"$is_empty_2548" = bitcast %TName_Bool* %"$is_empty_2541" to %CName_False* - %"$gasrem_2549" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2550" = icmp ugt i64 1, %"$gasrem_2549" - br i1 %"$gascmp_2550", label %"$out_of_gas_2551", label %"$have_gas_2552" - -"$out_of_gas_2551": ; preds = %"$False_2547" - call void @_out_of_gas() - br label %"$have_gas_2552" - -"$have_gas_2552": ; preds = %"$out_of_gas_2551", %"$False_2547" - %"$consume_2553" = sub i64 %"$gasrem_2549", 1 - store i64 %"$consume_2553", i64* @_gasrem, align 8 - %"$fail__origin_2554" = alloca [20 x i8], align 1 - store [20 x i8] %_origin, [20 x i8]* %"$fail__origin_2554", align 1 - %"$fail__sender_2555" = alloca [20 x i8], align 1 - store [20 x i8] %_sender, [20 x i8]* %"$fail__sender_2555", align 1 - %"$tname_2556" = load %String, %String* %tname, align 8 - call void @"$fail_252"(%Uint128 %_amount, [20 x i8]* %"$fail__origin_2554", [20 x i8]* %"$fail__sender_2555", %String %"$tname_2556"), !dbg !273 - br label %"$matchsucc_2540" - -"$empty_default_2544": ; preds = %"$have_gas_2538" - br label %"$matchsucc_2540" - -"$matchsucc_2540": ; preds = %"$have_gas_2552", %"$True_2545", %"$empty_default_2544" - %"$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" - -"$out_of_gas_2559": ; preds = %"$matchsucc_2540" - call void @_out_of_gas() - br label %"$have_gas_2560" - -"$have_gas_2560": ; preds = %"$out_of_gas_2559", %"$matchsucc_2540" - %"$consume_2561" = sub i64 %"$gasrem_2557", 1 - store i64 %"$consume_2561", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %is_empty, metadata !552, metadata !DIExpression()), !dbg !553 + %"$gasrem_2560" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2561" = icmp ugt i64 4, %"$gasrem_2560" + br i1 %"$gascmp_2561", label %"$out_of_gas_2562", label %"$have_gas_2563" + +"$out_of_gas_2562": ; preds = %"$have_gas_2558" + call void @_out_of_gas() + br label %"$have_gas_2563" + +"$have_gas_2563": ; preds = %"$out_of_gas_2562", %"$have_gas_2558" + %"$consume_2564" = sub i64 %"$gasrem_2560", 4 + store i64 %"$consume_2564", i64* @_gasrem, align 8 + %"$execptr_load_2565" = load i8*, i8** @_execptr, align 8 + %"$m1_size_2566" = load %Uint32, %Uint32* %m1_size, align 4 + %"$zero_2567" = load %Uint32, %Uint32* %zero, align 4 + %"$eq_call_2568" = call %TName_Bool* @_eq_Uint32(i8* %"$execptr_load_2565", %Uint32 %"$m1_size_2566", %Uint32 %"$zero_2567"), !dbg !554 + store %TName_Bool* %"$eq_call_2568", %TName_Bool** %is_empty, align 8, !dbg !554 + %"$gasrem_2570" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2571" = icmp ugt i64 2, %"$gasrem_2570" + br i1 %"$gascmp_2571", label %"$out_of_gas_2572", label %"$have_gas_2573" + +"$out_of_gas_2572": ; preds = %"$have_gas_2563" + call void @_out_of_gas() + br label %"$have_gas_2573" + +"$have_gas_2573": ; preds = %"$out_of_gas_2572", %"$have_gas_2563" + %"$consume_2574" = sub i64 %"$gasrem_2570", 2 + store i64 %"$consume_2574", i64* @_gasrem, align 8 + %"$is_empty_2576" = load %TName_Bool*, %TName_Bool** %is_empty, align 8 + %"$is_empty_tag_2577" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$is_empty_2576", i32 0, i32 0 + %"$is_empty_tag_2578" = load i8, i8* %"$is_empty_tag_2577", align 1 + switch i8 %"$is_empty_tag_2578", label %"$empty_default_2579" [ + i8 0, label %"$True_2580" + i8 1, label %"$False_2582" + ], !dbg !555 + +"$True_2580": ; preds = %"$have_gas_2573" + %"$is_empty_2581" = bitcast %TName_Bool* %"$is_empty_2576" to %CName_True* + br label %"$matchsucc_2575" + +"$False_2582": ; preds = %"$have_gas_2573" + %"$is_empty_2583" = bitcast %TName_Bool* %"$is_empty_2576" to %CName_False* + %"$gasrem_2584" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2585" = icmp ugt i64 1, %"$gasrem_2584" + br i1 %"$gascmp_2585", label %"$out_of_gas_2586", label %"$have_gas_2587" + +"$out_of_gas_2586": ; preds = %"$False_2582" + call void @_out_of_gas() + br label %"$have_gas_2587" + +"$have_gas_2587": ; preds = %"$out_of_gas_2586", %"$False_2582" + %"$consume_2588" = sub i64 %"$gasrem_2584", 1 + store i64 %"$consume_2588", i64* @_gasrem, align 8 + %"$fail__origin_2589" = alloca [20 x i8], align 1 + store [20 x i8] %_origin, [20 x i8]* %"$fail__origin_2589", align 1 + %"$fail__sender_2590" = alloca [20 x i8], align 1 + store [20 x i8] %_sender, [20 x i8]* %"$fail__sender_2590", align 1 + %"$tname_2591" = load %String, %String* %tname, align 8 + call void @"$fail_254"(%Uint128 %_amount, [20 x i8]* %"$fail__origin_2589", [20 x i8]* %"$fail__sender_2590", %String %"$tname_2591"), !dbg !556 + br label %"$matchsucc_2575" + +"$empty_default_2579": ; preds = %"$have_gas_2573" + br label %"$matchsucc_2575" + +"$matchsucc_2575": ; preds = %"$have_gas_2587", %"$True_2580", %"$empty_default_2579" + %"$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_2594": ; preds = %"$matchsucc_2575" + call void @_out_of_gas() + br label %"$have_gas_2595" + +"$have_gas_2595": ; preds = %"$out_of_gas_2594", %"$matchsucc_2575" + %"$consume_2596" = sub i64 %"$gasrem_2592", 1 + store i64 %"$consume_2596", i64* @_gasrem, align 8 %key1a = alloca %String, align 8 - %"$gasrem_2562" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2563" = icmp ugt i64 1, %"$gasrem_2562" - br i1 %"$gascmp_2563", label %"$out_of_gas_2564", label %"$have_gas_2565" + call void @llvm.dbg.declare(metadata %String* %key1a, metadata !559, metadata !DIExpression()), !dbg !560 + %"$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_2564": ; preds = %"$have_gas_2560" +"$out_of_gas_2599": ; preds = %"$have_gas_2595" call void @_out_of_gas() - br label %"$have_gas_2565" + br label %"$have_gas_2600" -"$have_gas_2565": ; preds = %"$out_of_gas_2564", %"$have_gas_2560" - %"$consume_2566" = sub i64 %"$gasrem_2562", 1 - store i64 %"$consume_2566", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_2567", i32 0, i32 0), i32 5 }, %String* %key1a, align 8, !dbg !276 - %"$gasrem_2568" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2569" = icmp ugt i64 1, %"$gasrem_2568" - br i1 %"$gascmp_2569", label %"$out_of_gas_2570", label %"$have_gas_2571" +"$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 !561 + %"$gasrem_2603" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2604" = icmp ugt i64 1, %"$gasrem_2603" + br i1 %"$gascmp_2604", label %"$out_of_gas_2605", label %"$have_gas_2606" -"$out_of_gas_2570": ; preds = %"$have_gas_2565" +"$out_of_gas_2605": ; preds = %"$have_gas_2600" call void @_out_of_gas() - br label %"$have_gas_2571" + br label %"$have_gas_2606" -"$have_gas_2571": ; preds = %"$out_of_gas_2570", %"$have_gas_2565" - %"$consume_2572" = sub i64 %"$gasrem_2568", 1 - store i64 %"$consume_2572", i64* @_gasrem, align 8 +"$have_gas_2606": ; preds = %"$out_of_gas_2605", %"$have_gas_2600" + %"$consume_2607" = sub i64 %"$gasrem_2603", 1 + store i64 %"$consume_2607", i64* @_gasrem, align 8 %val = alloca %String, align 8 - %"$gasrem_2573" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2574" = icmp ugt i64 1, %"$gasrem_2573" - br i1 %"$gascmp_2574", label %"$out_of_gas_2575", label %"$have_gas_2576" + call void @llvm.dbg.declare(metadata %String* %val, metadata !562, metadata !DIExpression()), !dbg !563 + %"$gasrem_2608" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2609" = icmp ugt i64 1, %"$gasrem_2608" + br i1 %"$gascmp_2609", label %"$out_of_gas_2610", label %"$have_gas_2611" -"$out_of_gas_2575": ; preds = %"$have_gas_2571" +"$out_of_gas_2610": ; preds = %"$have_gas_2606" call void @_out_of_gas() - br label %"$have_gas_2576" + br label %"$have_gas_2611" -"$have_gas_2576": ; preds = %"$out_of_gas_2575", %"$have_gas_2571" - %"$consume_2577" = sub i64 %"$gasrem_2573", 1 - store i64 %"$consume_2577", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_2578", i32 0, i32 0), i32 3 }, %String* %val, align 8, !dbg !277 - %"$gasrem_2579" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2580" = icmp ugt i64 1, %"$gasrem_2579" - br i1 %"$gascmp_2580", label %"$out_of_gas_2581", label %"$have_gas_2582" +"$have_gas_2611": ; preds = %"$out_of_gas_2610", %"$have_gas_2606" + %"$consume_2612" = sub i64 %"$gasrem_2608", 1 + store i64 %"$consume_2612", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_2613", i32 0, i32 0), i32 3 }, %String* %val, align 8, !dbg !564 + %"$gasrem_2614" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2615" = icmp ugt i64 1, %"$gasrem_2614" + br i1 %"$gascmp_2615", label %"$out_of_gas_2616", label %"$have_gas_2617" -"$out_of_gas_2581": ; preds = %"$have_gas_2576" +"$out_of_gas_2616": ; preds = %"$have_gas_2611" call void @_out_of_gas() - br label %"$have_gas_2582" + br label %"$have_gas_2617" -"$have_gas_2582": ; preds = %"$out_of_gas_2581", %"$have_gas_2576" - %"$consume_2583" = sub i64 %"$gasrem_2579", 1 - store i64 %"$consume_2583", i64* @_gasrem, align 8 +"$have_gas_2617": ; preds = %"$out_of_gas_2616", %"$have_gas_2611" + %"$consume_2618" = sub i64 %"$gasrem_2614", 1 + store i64 %"$consume_2618", i64* @_gasrem, align 8 %"$m1_12" = alloca %Map_String_String*, align 8 - %"$m1_2584" = load %Map_String_String*, %Map_String_String** %m1, align 8 - %"$$m1_2584_2585" = bitcast %Map_String_String* %"$m1_2584" to i8* - %"$_lengthof_call_2586" = call i64 @_lengthof(%_TyDescrTy_Typ* @"$TyDescr_Map_77", i8* %"$$m1_2584_2585") - %"$gasadd_2587" = add i64 1, %"$_lengthof_call_2586" - %"$gasrem_2588" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2589" = icmp ugt i64 %"$gasadd_2587", %"$gasrem_2588" - br i1 %"$gascmp_2589", label %"$out_of_gas_2590", label %"$have_gas_2591" - -"$out_of_gas_2590": ; preds = %"$have_gas_2582" - call void @_out_of_gas() - br label %"$have_gas_2591" - -"$have_gas_2591": ; preds = %"$out_of_gas_2590", %"$have_gas_2582" - %"$consume_2592" = sub i64 %"$gasrem_2588", %"$gasadd_2587" - store i64 %"$consume_2592", i64* @_gasrem, align 8 - %"$execptr_load_2593" = load i8*, i8** @_execptr, align 8 - %"$m1_2594" = load %Map_String_String*, %Map_String_String** %m1, align 8 - %"$$m1_2594_2595" = bitcast %Map_String_String* %"$m1_2594" to i8* - %"$put_key1a_2596" = alloca %String, align 8 - %"$key1a_2597" = load %String, %String* %key1a, align 8 - store %String %"$key1a_2597", %String* %"$put_key1a_2596", align 8 - %"$$put_key1a_2596_2598" = bitcast %String* %"$put_key1a_2596" to i8* - %"$put_val_2599" = alloca %String, align 8 - %"$val_2600" = load %String, %String* %val, align 8 - store %String %"$val_2600", %String* %"$put_val_2599", align 8 - %"$$put_val_2599_2601" = bitcast %String* %"$put_val_2599" to i8* - %"$put_call_2602" = call i8* @_put(i8* %"$execptr_load_2593", %_TyDescrTy_Typ* @"$TyDescr_Map_77", i8* %"$$m1_2594_2595", i8* %"$$put_key1a_2596_2598", i8* %"$$put_val_2599_2601"), !dbg !278 - %"$put_2603" = bitcast i8* %"$put_call_2602" to %Map_String_String* - store %Map_String_String* %"$put_2603", %Map_String_String** %"$m1_12", align 8, !dbg !278 - %"$$m1_12_2604" = load %Map_String_String*, %Map_String_String** %"$m1_12", align 8 - %"$$$m1_12_2604_2605" = bitcast %Map_String_String* %"$$m1_12_2604" to i8* - %"$_literal_cost_call_2606" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Map_77", i8* %"$$$m1_12_2604_2605") - %"$gasrem_2607" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2608" = icmp ugt i64 %"$_literal_cost_call_2606", %"$gasrem_2607" - br i1 %"$gascmp_2608", label %"$out_of_gas_2609", label %"$have_gas_2610" - -"$out_of_gas_2609": ; preds = %"$have_gas_2591" - call void @_out_of_gas() - br label %"$have_gas_2610" - -"$have_gas_2610": ; preds = %"$out_of_gas_2609", %"$have_gas_2591" - %"$consume_2611" = sub i64 %"$gasrem_2607", %"$_literal_cost_call_2606" - store i64 %"$consume_2611", i64* @_gasrem, align 8 - %"$execptr_load_2612" = load i8*, i8** @_execptr, align 8 - %"$$m1_12_2614" = load %Map_String_String*, %Map_String_String** %"$m1_12", align 8 - %"$update_value_2615" = bitcast %Map_String_String* %"$$m1_12_2614" to i8* - call void @_update_field(i8* %"$execptr_load_2612", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m1_2613", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_77", i32 0, i8* null, i8* %"$update_value_2615"), !dbg !279 + call void @llvm.dbg.declare(metadata %Map_String_String** %"$m1_12", metadata !565, metadata !DIExpression()), !dbg !566 + %"$m1_2619" = load %Map_String_String*, %Map_String_String** %m1, align 8 + %"$$m1_2619_2620" = bitcast %Map_String_String* %"$m1_2619" to i8* + %"$_lengthof_call_2621" = call i64 @_lengthof(%_TyDescrTy_Typ* @"$TyDescr_Map_77", i8* %"$$m1_2619_2620") + %"$gasadd_2622" = add i64 1, %"$_lengthof_call_2621" + %"$gasrem_2623" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2624" = icmp ugt i64 %"$gasadd_2622", %"$gasrem_2623" + br i1 %"$gascmp_2624", label %"$out_of_gas_2625", label %"$have_gas_2626" + +"$out_of_gas_2625": ; preds = %"$have_gas_2617" + call void @_out_of_gas() + br label %"$have_gas_2626" + +"$have_gas_2626": ; preds = %"$out_of_gas_2625", %"$have_gas_2617" + %"$consume_2627" = sub i64 %"$gasrem_2623", %"$gasadd_2622" + store i64 %"$consume_2627", i64* @_gasrem, align 8 + %"$execptr_load_2628" = load i8*, i8** @_execptr, align 8 + %"$m1_2629" = load %Map_String_String*, %Map_String_String** %m1, align 8 + %"$$m1_2629_2630" = bitcast %Map_String_String* %"$m1_2629" to i8* + %"$put_key1a_2631" = alloca %String, align 8 + %"$key1a_2632" = load %String, %String* %key1a, align 8 + store %String %"$key1a_2632", %String* %"$put_key1a_2631", align 8 + %"$$put_key1a_2631_2633" = bitcast %String* %"$put_key1a_2631" to i8* + %"$put_val_2634" = alloca %String, align 8 + %"$val_2635" = load %String, %String* %val, align 8 + store %String %"$val_2635", %String* %"$put_val_2634", align 8 + %"$$put_val_2634_2636" = bitcast %String* %"$put_val_2634" to i8* + %"$put_call_2637" = call i8* @_put(i8* %"$execptr_load_2628", %_TyDescrTy_Typ* @"$TyDescr_Map_77", i8* %"$$m1_2629_2630", i8* %"$$put_key1a_2631_2633", i8* %"$$put_val_2634_2636"), !dbg !567 + %"$put_2638" = bitcast i8* %"$put_call_2637" to %Map_String_String* + store %Map_String_String* %"$put_2638", %Map_String_String** %"$m1_12", align 8, !dbg !567 + %"$$m1_12_2639" = load %Map_String_String*, %Map_String_String** %"$m1_12", align 8 + %"$$$m1_12_2639_2640" = bitcast %Map_String_String* %"$$m1_12_2639" to i8* + %"$_literal_cost_call_2641" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Map_77", i8* %"$$$m1_12_2639_2640") + %"$gasrem_2642" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2643" = icmp ugt i64 %"$_literal_cost_call_2641", %"$gasrem_2642" + br i1 %"$gascmp_2643", label %"$out_of_gas_2644", label %"$have_gas_2645" + +"$out_of_gas_2644": ; preds = %"$have_gas_2626" + call void @_out_of_gas() + br label %"$have_gas_2645" + +"$have_gas_2645": ; preds = %"$out_of_gas_2644", %"$have_gas_2626" + %"$consume_2646" = sub i64 %"$gasrem_2642", %"$_literal_cost_call_2641" + store i64 %"$consume_2646", i64* @_gasrem, align 8 + %"$execptr_load_2647" = load i8*, i8** @_execptr, align 8 + %"$$m1_12_2649" = load %Map_String_String*, %Map_String_String** %"$m1_12", align 8 + %"$update_value_2650" = bitcast %Map_String_String* %"$$m1_12_2649" to i8* + call void @_update_field(i8* %"$execptr_load_2647", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m1_2648", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_77", i32 0, i8* null, i8* %"$update_value_2650"), !dbg !568 ret void } @@ -5393,106 +5627,45 @@ declare %Uint32 @_size(i8*) declare %TName_Bool* @_eq_Uint32(i8*, %Uint32, %Uint32) -define void @t9(i8* %0) !dbg !280 { +define void @t9(i8* %0) !dbg !569 { entry: - %"$_amount_2617" = getelementptr i8, i8* %0, i32 0 - %"$_amount_2618" = bitcast i8* %"$_amount_2617" to %Uint128* - %_amount = load %Uint128, %Uint128* %"$_amount_2618", align 8 - %"$_origin_2619" = getelementptr i8, i8* %0, i32 16 - %"$_origin_2620" = bitcast i8* %"$_origin_2619" to [20 x i8]* - %"$_sender_2621" = getelementptr i8, i8* %0, i32 36 - %"$_sender_2622" = bitcast i8* %"$_sender_2621" to [20 x i8]* - call void @"$t9_2467"(%Uint128 %_amount, [20 x i8]* %"$_origin_2620", [20 x i8]* %"$_sender_2622"), !dbg !281 + %"$_amount_2655" = getelementptr i8, i8* %0, i32 0 + %"$_amount_2656" = bitcast i8* %"$_amount_2655" to %Uint128* + %_amount = load %Uint128, %Uint128* %"$_amount_2656", align 8 + %"$_origin_2657" = getelementptr i8, i8* %0, i32 16 + %"$_origin_2658" = bitcast i8* %"$_origin_2657" to [20 x i8]* + %"$_sender_2659" = getelementptr i8, i8* %0, i32 36 + %"$_sender_2660" = bitcast i8* %"$_sender_2659" to [20 x i8]* + call void @"$t9_2502"(%Uint128 %_amount, [20 x i8]* %"$_origin_2658", [20 x i8]* %"$_sender_2660"), !dbg !570 ret void } -define internal void @"$t10_2623"(%Uint128 %_amount, [20 x i8]* %"$_origin_2624", [20 x i8]* %"$_sender_2625") !dbg !282 { +define internal void @"$t10_2661"(%Uint128 %_amount, [20 x i8]* %"$_origin_2662", [20 x i8]* %"$_sender_2663") !dbg !571 { entry: - %_origin = load [20 x i8], [20 x i8]* %"$_origin_2624", align 1 - %_sender = load [20 x i8], [20 x i8]* %"$_sender_2625", align 1 - %"$gasrem_2626" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2627" = icmp ugt i64 1, %"$gasrem_2626" - br i1 %"$gascmp_2627", label %"$out_of_gas_2628", label %"$have_gas_2629" - -"$out_of_gas_2628": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_2629" - -"$have_gas_2629": ; preds = %"$out_of_gas_2628", %entry - %"$consume_2630" = sub i64 %"$gasrem_2626", 1 - store i64 %"$consume_2630", i64* @_gasrem, align 8 - %tname = alloca %String, align 8 - %"$gasrem_2631" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2632" = icmp ugt i64 1, %"$gasrem_2631" - br i1 %"$gascmp_2632", label %"$out_of_gas_2633", label %"$have_gas_2634" - -"$out_of_gas_2633": ; preds = %"$have_gas_2629" - call void @_out_of_gas() - br label %"$have_gas_2634" - -"$have_gas_2634": ; preds = %"$out_of_gas_2633", %"$have_gas_2629" - %"$consume_2635" = sub i64 %"$gasrem_2631", 1 - store i64 %"$consume_2635", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_2636", i32 0, i32 0), i32 3 }, %String* %tname, align 8, !dbg !283 - %"$gasrem_2637" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2638" = icmp ugt i64 1, %"$gasrem_2637" - br i1 %"$gascmp_2638", label %"$out_of_gas_2639", label %"$have_gas_2640" - -"$out_of_gas_2639": ; preds = %"$have_gas_2634" - call void @_out_of_gas() - br label %"$have_gas_2640" - -"$have_gas_2640": ; preds = %"$out_of_gas_2639", %"$have_gas_2634" - %"$consume_2641" = sub i64 %"$gasrem_2637", 1 - store i64 %"$consume_2641", i64* @_gasrem, align 8 - %key1a = alloca %String, 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 - store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_2647", i32 0, i32 0), i32 5 }, %String* %key1a, align 8, !dbg !284 - %m1 = alloca %Map_String_String*, align 8 - %"$execptr_load_2649" = load i8*, i8** @_execptr, align 8 - %"$m1_call_2650" = call i8* @_fetch_field(i8* %"$execptr_load_2649", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m1_2648", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_77", i32 0, i8* null, i32 1), !dbg !285 - %"$m1_2651" = bitcast i8* %"$m1_call_2650" to %Map_String_String* - store %Map_String_String* %"$m1_2651", %Map_String_String** %m1, align 8 - %"$m1_2652" = load %Map_String_String*, %Map_String_String** %m1, align 8 - %"$$m1_2652_2653" = bitcast %Map_String_String* %"$m1_2652" to i8* - %"$_literal_cost_call_2654" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Map_77", i8* %"$$m1_2652_2653") - %"$m1_2655" = load %Map_String_String*, %Map_String_String** %m1, align 8 - %"$$m1_2655_2656" = bitcast %Map_String_String* %"$m1_2655" to i8* - %"$_mapsortcost_call_2657" = call i64 @_mapsortcost(%_TyDescrTy_Typ* @"$TyDescr_Map_77", i8* %"$$m1_2655_2656") - %"$gasadd_2658" = add i64 %"$_literal_cost_call_2654", %"$_mapsortcost_call_2657" - %"$gasrem_2659" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2660" = icmp ugt i64 %"$gasadd_2658", %"$gasrem_2659" - br i1 %"$gascmp_2660", label %"$out_of_gas_2661", label %"$have_gas_2662" - -"$out_of_gas_2661": ; preds = %"$have_gas_2645" - call void @_out_of_gas() - br label %"$have_gas_2662" - -"$have_gas_2662": ; preds = %"$out_of_gas_2661", %"$have_gas_2645" - %"$consume_2663" = sub i64 %"$gasrem_2659", %"$gasadd_2658" - store i64 %"$consume_2663", i64* @_gasrem, align 8 + %"$_sender_2837" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_sender_2663", [20 x i8]** %"$_sender_2837", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_sender_2837", metadata !572, metadata !DIExpression()), !dbg !573 + %"$_origin_2836" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_origin_2662", [20 x i8]** %"$_origin_2836", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_origin_2836", metadata !574, metadata !DIExpression()), !dbg !573 + %"$_amount_2835" = alloca %Uint128, align 8 + store %Uint128 %_amount, %Uint128* %"$_amount_2835", align 8 + call void @llvm.dbg.declare(metadata %Uint128* %"$_amount_2835", metadata !575, metadata !DIExpression()), !dbg !573 + %_origin = load [20 x i8], [20 x i8]* %"$_origin_2662", align 1 + %_sender = load [20 x i8], [20 x i8]* %"$_sender_2663", align 1 %"$gasrem_2664" = load i64, i64* @_gasrem, align 8 %"$gascmp_2665" = icmp ugt i64 1, %"$gasrem_2664" br i1 %"$gascmp_2665", label %"$out_of_gas_2666", label %"$have_gas_2667" -"$out_of_gas_2666": ; preds = %"$have_gas_2662" +"$out_of_gas_2666": ; preds = %entry call void @_out_of_gas() br label %"$have_gas_2667" -"$have_gas_2667": ; preds = %"$out_of_gas_2666", %"$have_gas_2662" +"$have_gas_2667": ; preds = %"$out_of_gas_2666", %entry %"$consume_2668" = sub i64 %"$gasrem_2664", 1 store i64 %"$consume_2668", i64* @_gasrem, align 8 - %c1 = alloca %TName_Option_String*, align 8 + %tname = alloca %String, align 8 + call void @llvm.dbg.declare(metadata %String* %tname, metadata !576, metadata !DIExpression()), !dbg !577 %"$gasrem_2669" = load i64, i64* @_gasrem, align 8 %"$gascmp_2670" = icmp ugt i64 1, %"$gasrem_2669" br i1 %"$gascmp_2670", label %"$out_of_gas_2671", label %"$have_gas_2672" @@ -5504,2310 +5677,2359 @@ entry: "$have_gas_2672": ; preds = %"$out_of_gas_2671", %"$have_gas_2667" %"$consume_2673" = sub i64 %"$gasrem_2669", 1 store i64 %"$consume_2673", i64* @_gasrem, align 8 - %"$execptr_load_2674" = load i8*, i8** @_execptr, align 8 - %"$m1_2675" = load %Map_String_String*, %Map_String_String** %m1, align 8 - %"$$m1_2675_2676" = bitcast %Map_String_String* %"$m1_2675" to i8* - %"$get_key1a_2677" = alloca %String, align 8 - %"$key1a_2678" = load %String, %String* %key1a, align 8 - store %String %"$key1a_2678", %String* %"$get_key1a_2677", align 8 - %"$$get_key1a_2677_2679" = bitcast %String* %"$get_key1a_2677" to i8* - %"$get_call_2680" = call i8* @_get(i8* %"$execptr_load_2674", %_TyDescrTy_Typ* @"$TyDescr_Map_77", i8* %"$$m1_2675_2676", i8* %"$$get_key1a_2677_2679"), !dbg !286 - %"$get_2681" = bitcast i8* %"$get_call_2680" to %TName_Option_String* - store %TName_Option_String* %"$get_2681", %TName_Option_String** %c1, align 8, !dbg !286 - %"$gasrem_2682" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2683" = icmp ugt i64 2, %"$gasrem_2682" - br i1 %"$gascmp_2683", label %"$out_of_gas_2684", label %"$have_gas_2685" - -"$out_of_gas_2684": ; preds = %"$have_gas_2672" - call void @_out_of_gas() - br label %"$have_gas_2685" - -"$have_gas_2685": ; preds = %"$out_of_gas_2684", %"$have_gas_2672" - %"$consume_2686" = sub i64 %"$gasrem_2682", 2 - store i64 %"$consume_2686", i64* @_gasrem, align 8 - %"$c1_2688" = load %TName_Option_String*, %TName_Option_String** %c1, align 8 - %"$c1_tag_2689" = getelementptr inbounds %TName_Option_String, %TName_Option_String* %"$c1_2688", i32 0, i32 0 - %"$c1_tag_2690" = load i8, i8* %"$c1_tag_2689", align 1 - switch i8 %"$c1_tag_2690", label %"$empty_default_2691" [ - i8 0, label %"$Some_2692" - i8 1, label %"$None_2765" - ], !dbg !287 - -"$Some_2692": ; preds = %"$have_gas_2685" - %"$c1_2693" = bitcast %TName_Option_String* %"$c1_2688" to %CName_Some_String* - %"$c_gep_2694" = getelementptr inbounds %CName_Some_String, %CName_Some_String* %"$c1_2693", i32 0, i32 1 - %"$c_load_2695" = load %String, %String* %"$c_gep_2694", align 8 - %c = alloca %String, align 8 - store %String %"$c_load_2695", %String* %c, align 8 - %"$gasrem_2696" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2697" = icmp ugt i64 1, %"$gasrem_2696" - br i1 %"$gascmp_2697", label %"$out_of_gas_2698", label %"$have_gas_2699" + store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_2674", i32 0, i32 0), i32 3 }, %String* %tname, align 8, !dbg !578 + %"$gasrem_2675" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2676" = icmp ugt i64 1, %"$gasrem_2675" + br i1 %"$gascmp_2676", label %"$out_of_gas_2677", label %"$have_gas_2678" -"$out_of_gas_2698": ; preds = %"$Some_2692" +"$out_of_gas_2677": ; preds = %"$have_gas_2672" call void @_out_of_gas() - br label %"$have_gas_2699" + br label %"$have_gas_2678" -"$have_gas_2699": ; preds = %"$out_of_gas_2698", %"$Some_2692" - %"$consume_2700" = sub i64 %"$gasrem_2696", 1 - store i64 %"$consume_2700", i64* @_gasrem, align 8 - %v = alloca %String, align 8 - %"$gasrem_2701" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2702" = icmp ugt i64 1, %"$gasrem_2701" - br i1 %"$gascmp_2702", label %"$out_of_gas_2703", label %"$have_gas_2704" +"$have_gas_2678": ; preds = %"$out_of_gas_2677", %"$have_gas_2672" + %"$consume_2679" = sub i64 %"$gasrem_2675", 1 + store i64 %"$consume_2679", i64* @_gasrem, align 8 + %key1a = alloca %String, align 8 + call void @llvm.dbg.declare(metadata %String* %key1a, metadata !579, metadata !DIExpression()), !dbg !580 + %"$gasrem_2680" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2681" = icmp ugt i64 1, %"$gasrem_2680" + br i1 %"$gascmp_2681", label %"$out_of_gas_2682", label %"$have_gas_2683" -"$out_of_gas_2703": ; preds = %"$have_gas_2699" +"$out_of_gas_2682": ; preds = %"$have_gas_2678" call void @_out_of_gas() - br label %"$have_gas_2704" + br label %"$have_gas_2683" -"$have_gas_2704": ; preds = %"$out_of_gas_2703", %"$have_gas_2699" - %"$consume_2705" = sub i64 %"$gasrem_2701", 1 - store i64 %"$consume_2705", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_2706", i32 0, i32 0), i32 3 }, %String* %v, align 8, !dbg !288 +"$have_gas_2683": ; preds = %"$out_of_gas_2682", %"$have_gas_2678" + %"$consume_2684" = sub i64 %"$gasrem_2680", 1 + store i64 %"$consume_2684", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_2685", i32 0, i32 0), i32 5 }, %String* %key1a, align 8, !dbg !581 + %m1 = alloca %Map_String_String*, align 8 + call void @llvm.dbg.declare(metadata %Map_String_String** %m1, metadata !582, metadata !DIExpression()), !dbg !583 + %"$execptr_load_2687" = load i8*, i8** @_execptr, align 8 + %"$m1_call_2688" = call i8* @_fetch_field(i8* %"$execptr_load_2687", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m1_2686", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_77", i32 0, i8* null, i32 1), !dbg !583 + %"$m1_2689" = bitcast i8* %"$m1_call_2688" to %Map_String_String* + store %Map_String_String* %"$m1_2689", %Map_String_String** %m1, align 8 + %"$m1_2690" = load %Map_String_String*, %Map_String_String** %m1, align 8 + %"$$m1_2690_2691" = bitcast %Map_String_String* %"$m1_2690" to i8* + %"$_literal_cost_call_2692" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Map_77", i8* %"$$m1_2690_2691") + %"$m1_2693" = load %Map_String_String*, %Map_String_String** %m1, align 8 + %"$$m1_2693_2694" = bitcast %Map_String_String* %"$m1_2693" to i8* + %"$_mapsortcost_call_2695" = call i64 @_mapsortcost(%_TyDescrTy_Typ* @"$TyDescr_Map_77", i8* %"$$m1_2693_2694") + %"$gasadd_2696" = add i64 %"$_literal_cost_call_2692", %"$_mapsortcost_call_2695" + %"$gasrem_2697" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2698" = icmp ugt i64 %"$gasadd_2696", %"$gasrem_2697" + br i1 %"$gascmp_2698", label %"$out_of_gas_2699", label %"$have_gas_2700" + +"$out_of_gas_2699": ; preds = %"$have_gas_2683" + call void @_out_of_gas() + br label %"$have_gas_2700" + +"$have_gas_2700": ; preds = %"$out_of_gas_2699", %"$have_gas_2683" + %"$consume_2701" = sub i64 %"$gasrem_2697", %"$gasadd_2696" + store i64 %"$consume_2701", i64* @_gasrem, align 8 + %"$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_2700" + call void @_out_of_gas() + br label %"$have_gas_2705" + +"$have_gas_2705": ; preds = %"$out_of_gas_2704", %"$have_gas_2700" + %"$consume_2706" = sub i64 %"$gasrem_2702", 1 + store i64 %"$consume_2706", i64* @_gasrem, align 8 + %c1 = alloca %TName_Option_String*, align 8 + call void @llvm.dbg.declare(metadata %TName_Option_String** %c1, metadata !584, metadata !DIExpression()), !dbg !585 %"$gasrem_2707" = load i64, i64* @_gasrem, align 8 %"$gascmp_2708" = icmp ugt i64 1, %"$gasrem_2707" br i1 %"$gascmp_2708", label %"$out_of_gas_2709", label %"$have_gas_2710" -"$out_of_gas_2709": ; preds = %"$have_gas_2704" +"$out_of_gas_2709": ; preds = %"$have_gas_2705" call void @_out_of_gas() br label %"$have_gas_2710" -"$have_gas_2710": ; preds = %"$out_of_gas_2709", %"$have_gas_2704" +"$have_gas_2710": ; preds = %"$out_of_gas_2709", %"$have_gas_2705" %"$consume_2711" = sub i64 %"$gasrem_2707", 1 store i64 %"$consume_2711", i64* @_gasrem, align 8 - %eq = alloca %TName_Bool*, align 8 - %"$_literal_cost_c_2712" = alloca %String, align 8 - %"$c_2713" = load %String, %String* %c, align 8 - store %String %"$c_2713", %String* %"$_literal_cost_c_2712", align 8 - %"$$_literal_cost_c_2712_2714" = bitcast %String* %"$_literal_cost_c_2712" to i8* - %"$_literal_cost_call_2715" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_52", i8* %"$$_literal_cost_c_2712_2714") - %"$_literal_cost_v_2716" = alloca %String, align 8 - %"$v_2717" = load %String, %String* %v, align 8 - store %String %"$v_2717", %String* %"$_literal_cost_v_2716", align 8 - %"$$_literal_cost_v_2716_2718" = bitcast %String* %"$_literal_cost_v_2716" to i8* - %"$_literal_cost_call_2719" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_52", i8* %"$$_literal_cost_v_2716_2718") - %"$gasmin_2720" = call i64 @llvm.umin.i64(i64 %"$_literal_cost_call_2715", i64 %"$_literal_cost_call_2719") - %"$gasrem_2721" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2722" = icmp ugt i64 %"$gasmin_2720", %"$gasrem_2721" - br i1 %"$gascmp_2722", label %"$out_of_gas_2723", label %"$have_gas_2724" - -"$out_of_gas_2723": ; preds = %"$have_gas_2710" - call void @_out_of_gas() - br label %"$have_gas_2724" - -"$have_gas_2724": ; preds = %"$out_of_gas_2723", %"$have_gas_2710" - %"$consume_2725" = sub i64 %"$gasrem_2721", %"$gasmin_2720" - store i64 %"$consume_2725", i64* @_gasrem, align 8 - %"$execptr_load_2726" = load i8*, i8** @_execptr, align 8 - %"$c_2727" = load %String, %String* %c, align 8 - %"$v_2728" = load %String, %String* %v, align 8 - %"$eq_call_2729" = call %TName_Bool* @_eq_String(i8* %"$execptr_load_2726", %String %"$c_2727", %String %"$v_2728"), !dbg !291 - store %TName_Bool* %"$eq_call_2729", %TName_Bool** %eq, align 8, !dbg !291 - %"$gasrem_2731" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2732" = icmp ugt i64 2, %"$gasrem_2731" - br i1 %"$gascmp_2732", label %"$out_of_gas_2733", label %"$have_gas_2734" - -"$out_of_gas_2733": ; preds = %"$have_gas_2724" - call void @_out_of_gas() - br label %"$have_gas_2734" - -"$have_gas_2734": ; preds = %"$out_of_gas_2733", %"$have_gas_2724" - %"$consume_2735" = sub i64 %"$gasrem_2731", 2 - store i64 %"$consume_2735", i64* @_gasrem, align 8 - %"$eq_2737" = load %TName_Bool*, %TName_Bool** %eq, align 8 - %"$eq_tag_2738" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$eq_2737", i32 0, i32 0 - %"$eq_tag_2739" = load i8, i8* %"$eq_tag_2738", align 1 - switch i8 %"$eq_tag_2739", label %"$empty_default_2740" [ - i8 0, label %"$True_2741" - i8 1, label %"$False_2743" - ], !dbg !292 - -"$True_2741": ; preds = %"$have_gas_2734" - %"$eq_2742" = bitcast %TName_Bool* %"$eq_2737" to %CName_True* - br label %"$matchsucc_2736" - -"$False_2743": ; preds = %"$have_gas_2734" - %"$eq_2744" = bitcast %TName_Bool* %"$eq_2737" to %CName_False* - %"$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" - -"$out_of_gas_2747": ; preds = %"$False_2743" - call void @_out_of_gas() - br label %"$have_gas_2748" - -"$have_gas_2748": ; preds = %"$out_of_gas_2747", %"$False_2743" - %"$consume_2749" = sub i64 %"$gasrem_2745", 1 - store i64 %"$consume_2749", i64* @_gasrem, align 8 - %m = 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" + %"$execptr_load_2712" = load i8*, i8** @_execptr, align 8 + %"$m1_2713" = load %Map_String_String*, %Map_String_String** %m1, align 8 + %"$$m1_2713_2714" = bitcast %Map_String_String* %"$m1_2713" to i8* + %"$get_key1a_2715" = alloca %String, align 8 + %"$key1a_2716" = load %String, %String* %key1a, align 8 + store %String %"$key1a_2716", %String* %"$get_key1a_2715", align 8 + %"$$get_key1a_2715_2717" = bitcast %String* %"$get_key1a_2715" to i8* + %"$get_call_2718" = call i8* @_get(i8* %"$execptr_load_2712", %_TyDescrTy_Typ* @"$TyDescr_Map_77", i8* %"$$m1_2713_2714", i8* %"$$get_key1a_2715_2717"), !dbg !586 + %"$get_2719" = bitcast i8* %"$get_call_2718" to %TName_Option_String* + store %TName_Option_String* %"$get_2719", %TName_Option_String** %c1, align 8, !dbg !586 + %"$gasrem_2720" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2721" = icmp ugt i64 2, %"$gasrem_2720" + br i1 %"$gascmp_2721", label %"$out_of_gas_2722", label %"$have_gas_2723" + +"$out_of_gas_2722": ; preds = %"$have_gas_2710" + call void @_out_of_gas() + br label %"$have_gas_2723" + +"$have_gas_2723": ; preds = %"$out_of_gas_2722", %"$have_gas_2710" + %"$consume_2724" = sub i64 %"$gasrem_2720", 2 + store i64 %"$consume_2724", i64* @_gasrem, align 8 + %"$c1_2726" = load %TName_Option_String*, %TName_Option_String** %c1, align 8 + %"$c1_tag_2727" = getelementptr inbounds %TName_Option_String, %TName_Option_String* %"$c1_2726", i32 0, i32 0 + %"$c1_tag_2728" = load i8, i8* %"$c1_tag_2727", align 1 + switch i8 %"$c1_tag_2728", label %"$empty_default_2729" [ + i8 0, label %"$Some_2730" + i8 1, label %"$None_2803" + ], !dbg !587 + +"$Some_2730": ; preds = %"$have_gas_2723" + %"$c1_2731" = bitcast %TName_Option_String* %"$c1_2726" to %CName_Some_String* + %"$c_gep_2732" = getelementptr inbounds %CName_Some_String, %CName_Some_String* %"$c1_2731", i32 0, i32 1 + %"$c_load_2733" = load %String, %String* %"$c_gep_2732", align 8 + %c = alloca %String, align 8 + store %String %"$c_load_2733", %String* %c, 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" -"$out_of_gas_2752": ; preds = %"$have_gas_2748" +"$out_of_gas_2736": ; preds = %"$Some_2730" call void @_out_of_gas() - br label %"$have_gas_2753" + br label %"$have_gas_2737" -"$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 ([25 x i8], [25 x i8]* @"$stringlit_2755", i32 0, i32 0), i32 25 }, %String* %m, align 8, !dbg !293 - %"$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" +"$have_gas_2737": ; preds = %"$out_of_gas_2736", %"$Some_2730" + %"$consume_2738" = sub i64 %"$gasrem_2734", 1 + store i64 %"$consume_2738", i64* @_gasrem, align 8 + %v = alloca %String, align 8 + call void @llvm.dbg.declare(metadata %String* %v, metadata !588, metadata !DIExpression()), !dbg !591 + %"$gasrem_2739" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2740" = icmp ugt i64 1, %"$gasrem_2739" + br i1 %"$gascmp_2740", label %"$out_of_gas_2741", label %"$have_gas_2742" -"$out_of_gas_2758": ; preds = %"$have_gas_2753" +"$out_of_gas_2741": ; preds = %"$have_gas_2737" 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* %m, align 8 - call void @"$fail_msg_292"(%Uint128 %_amount, [20 x i8]* %"$fail_msg__origin_2761", [20 x i8]* %"$fail_msg__sender_2762", %String %"$tname_2763", %String %"$m_2764"), !dbg !296 - br label %"$matchsucc_2736" - -"$empty_default_2740": ; preds = %"$have_gas_2734" - br label %"$matchsucc_2736" - -"$matchsucc_2736": ; preds = %"$have_gas_2759", %"$True_2741", %"$empty_default_2740" - br label %"$matchsucc_2687" + br label %"$have_gas_2742" -"$None_2765": ; preds = %"$have_gas_2685" - %"$c1_2766" = bitcast %TName_Option_String* %"$c1_2688" to %CName_None_String* - %"$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" +"$have_gas_2742": ; preds = %"$out_of_gas_2741", %"$have_gas_2737" + %"$consume_2743" = sub i64 %"$gasrem_2739", 1 + store i64 %"$consume_2743", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_2744", i32 0, i32 0), i32 3 }, %String* %v, align 8, !dbg !592 + %"$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" -"$out_of_gas_2769": ; preds = %"$None_2765" +"$out_of_gas_2747": ; preds = %"$have_gas_2742" call void @_out_of_gas() - br label %"$have_gas_2770" + br label %"$have_gas_2748" -"$have_gas_2770": ; preds = %"$out_of_gas_2769", %"$None_2765" - %"$consume_2771" = sub i64 %"$gasrem_2767", 1 - store i64 %"$consume_2771", i64* @_gasrem, align 8 +"$have_gas_2748": ; preds = %"$out_of_gas_2747", %"$have_gas_2742" + %"$consume_2749" = sub i64 %"$gasrem_2745", 1 + store i64 %"$consume_2749", i64* @_gasrem, align 8 + %eq = alloca %TName_Bool*, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %eq, metadata !593, metadata !DIExpression()), !dbg !594 + %"$_literal_cost_c_2750" = alloca %String, align 8 + %"$c_2751" = load %String, %String* %c, align 8 + store %String %"$c_2751", %String* %"$_literal_cost_c_2750", align 8 + %"$$_literal_cost_c_2750_2752" = bitcast %String* %"$_literal_cost_c_2750" to i8* + %"$_literal_cost_call_2753" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_52", i8* %"$$_literal_cost_c_2750_2752") + %"$_literal_cost_v_2754" = alloca %String, align 8 + %"$v_2755" = load %String, %String* %v, align 8 + store %String %"$v_2755", %String* %"$_literal_cost_v_2754", align 8 + %"$$_literal_cost_v_2754_2756" = bitcast %String* %"$_literal_cost_v_2754" to i8* + %"$_literal_cost_call_2757" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_52", i8* %"$$_literal_cost_v_2754_2756") + %"$gasmin_2758" = call i64 @llvm.umin.i64(i64 %"$_literal_cost_call_2753", i64 %"$_literal_cost_call_2757") + %"$gasrem_2759" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2760" = icmp ugt i64 %"$gasmin_2758", %"$gasrem_2759" + br i1 %"$gascmp_2760", label %"$out_of_gas_2761", label %"$have_gas_2762" + +"$out_of_gas_2761": ; preds = %"$have_gas_2748" + call void @_out_of_gas() + br label %"$have_gas_2762" + +"$have_gas_2762": ; preds = %"$out_of_gas_2761", %"$have_gas_2748" + %"$consume_2763" = sub i64 %"$gasrem_2759", %"$gasmin_2758" + store i64 %"$consume_2763", i64* @_gasrem, align 8 + %"$execptr_load_2764" = load i8*, i8** @_execptr, align 8 + %"$c_2765" = load %String, %String* %c, align 8 + %"$v_2766" = load %String, %String* %v, align 8 + %"$eq_call_2767" = call %TName_Bool* @_eq_String(i8* %"$execptr_load_2764", %String %"$c_2765", %String %"$v_2766"), !dbg !595 + store %TName_Bool* %"$eq_call_2767", %TName_Bool** %eq, align 8, !dbg !595 + %"$gasrem_2769" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2770" = icmp ugt i64 2, %"$gasrem_2769" + br i1 %"$gascmp_2770", label %"$out_of_gas_2771", label %"$have_gas_2772" + +"$out_of_gas_2771": ; preds = %"$have_gas_2762" + call void @_out_of_gas() + br label %"$have_gas_2772" + +"$have_gas_2772": ; preds = %"$out_of_gas_2771", %"$have_gas_2762" + %"$consume_2773" = sub i64 %"$gasrem_2769", 2 + store i64 %"$consume_2773", i64* @_gasrem, align 8 + %"$eq_2775" = load %TName_Bool*, %TName_Bool** %eq, align 8 + %"$eq_tag_2776" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$eq_2775", i32 0, i32 0 + %"$eq_tag_2777" = load i8, i8* %"$eq_tag_2776", align 1 + switch i8 %"$eq_tag_2777", label %"$empty_default_2778" [ + i8 0, label %"$True_2779" + i8 1, label %"$False_2781" + ], !dbg !596 + +"$True_2779": ; preds = %"$have_gas_2772" + %"$eq_2780" = bitcast %TName_Bool* %"$eq_2775" to %CName_True* + br label %"$matchsucc_2774" + +"$False_2781": ; preds = %"$have_gas_2772" + %"$eq_2782" = bitcast %TName_Bool* %"$eq_2775" to %CName_False* + %"$gasrem_2783" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2784" = icmp ugt i64 1, %"$gasrem_2783" + br i1 %"$gascmp_2784", label %"$out_of_gas_2785", label %"$have_gas_2786" + +"$out_of_gas_2785": ; preds = %"$False_2781" + call void @_out_of_gas() + br label %"$have_gas_2786" + +"$have_gas_2786": ; preds = %"$out_of_gas_2785", %"$False_2781" + %"$consume_2787" = sub i64 %"$gasrem_2783", 1 + store i64 %"$consume_2787", i64* @_gasrem, align 8 + %m = alloca %String, align 8 + call void @llvm.dbg.declare(metadata %String* %m, metadata !597, metadata !DIExpression()), !dbg !600 + %"$gasrem_2788" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2789" = icmp ugt i64 1, %"$gasrem_2788" + br i1 %"$gascmp_2789", label %"$out_of_gas_2790", label %"$have_gas_2791" + +"$out_of_gas_2790": ; preds = %"$have_gas_2786" + call void @_out_of_gas() + br label %"$have_gas_2791" + +"$have_gas_2791": ; preds = %"$out_of_gas_2790", %"$have_gas_2786" + %"$consume_2792" = sub i64 %"$gasrem_2788", 1 + store i64 %"$consume_2792", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([25 x i8], [25 x i8]* @"$stringlit_2793", i32 0, i32 0), i32 25 }, %String* %m, align 8, !dbg !601 + %"$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_2791" + call void @_out_of_gas() + br label %"$have_gas_2797" + +"$have_gas_2797": ; preds = %"$out_of_gas_2796", %"$have_gas_2791" + %"$consume_2798" = sub i64 %"$gasrem_2794", 1 + store i64 %"$consume_2798", i64* @_gasrem, align 8 + %"$fail_msg__origin_2799" = alloca [20 x i8], align 1 + store [20 x i8] %_origin, [20 x i8]* %"$fail_msg__origin_2799", align 1 + %"$fail_msg__sender_2800" = alloca [20 x i8], align 1 + store [20 x i8] %_sender, [20 x i8]* %"$fail_msg__sender_2800", align 1 + %"$tname_2801" = load %String, %String* %tname, align 8 + %"$m_2802" = load %String, %String* %m, align 8 + call void @"$fail_msg_298"(%Uint128 %_amount, [20 x i8]* %"$fail_msg__origin_2799", [20 x i8]* %"$fail_msg__sender_2800", %String %"$tname_2801", %String %"$m_2802"), !dbg !602 + br label %"$matchsucc_2774" + +"$empty_default_2778": ; preds = %"$have_gas_2772" + br label %"$matchsucc_2774" + +"$matchsucc_2774": ; preds = %"$have_gas_2797", %"$True_2779", %"$empty_default_2778" + br label %"$matchsucc_2725" + +"$None_2803": ; preds = %"$have_gas_2723" + %"$c1_2804" = bitcast %TName_Option_String* %"$c1_2726" to %CName_None_String* + %"$gasrem_2805" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2806" = icmp ugt i64 1, %"$gasrem_2805" + br i1 %"$gascmp_2806", label %"$out_of_gas_2807", label %"$have_gas_2808" + +"$out_of_gas_2807": ; preds = %"$None_2803" + call void @_out_of_gas() + br label %"$have_gas_2808" + +"$have_gas_2808": ; preds = %"$out_of_gas_2807", %"$None_2803" + %"$consume_2809" = sub i64 %"$gasrem_2805", 1 + store i64 %"$consume_2809", i64* @_gasrem, align 8 %m2 = alloca %String, align 8 - %"$gasrem_2772" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2773" = icmp ugt i64 1, %"$gasrem_2772" - br i1 %"$gascmp_2773", label %"$out_of_gas_2774", label %"$have_gas_2775" - -"$out_of_gas_2774": ; preds = %"$have_gas_2770" - call void @_out_of_gas() - br label %"$have_gas_2775" - -"$have_gas_2775": ; preds = %"$out_of_gas_2774", %"$have_gas_2770" - %"$consume_2776" = sub i64 %"$gasrem_2772", 1 - store i64 %"$consume_2776", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$stringlit_2777", i32 0, i32 0), i32 15 }, %String* %m2, align 8, !dbg !297 - %"$gasrem_2778" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2779" = icmp ugt i64 1, %"$gasrem_2778" - br i1 %"$gascmp_2779", label %"$out_of_gas_2780", label %"$have_gas_2781" - -"$out_of_gas_2780": ; preds = %"$have_gas_2775" - call void @_out_of_gas() - br label %"$have_gas_2781" - -"$have_gas_2781": ; preds = %"$out_of_gas_2780", %"$have_gas_2775" - %"$consume_2782" = sub i64 %"$gasrem_2778", 1 - store i64 %"$consume_2782", i64* @_gasrem, align 8 - %"$fail_msg__origin_2783" = alloca [20 x i8], align 1 - store [20 x i8] %_origin, [20 x i8]* %"$fail_msg__origin_2783", align 1 - %"$fail_msg__sender_2784" = alloca [20 x i8], align 1 - store [20 x i8] %_sender, [20 x i8]* %"$fail_msg__sender_2784", align 1 - %"$tname_2785" = load %String, %String* %tname, align 8 - %"$m_2786" = load %String, %String* %m2, align 8 - call void @"$fail_msg_292"(%Uint128 %_amount, [20 x i8]* %"$fail_msg__origin_2783", [20 x i8]* %"$fail_msg__sender_2784", %String %"$tname_2785", %String %"$m_2786"), !dbg !299 - br label %"$matchsucc_2687" - -"$empty_default_2691": ; preds = %"$have_gas_2685" - br label %"$matchsucc_2687" - -"$matchsucc_2687": ; preds = %"$have_gas_2781", %"$matchsucc_2736", %"$empty_default_2691" - %"$gasrem_2787" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2788" = icmp ugt i64 1, %"$gasrem_2787" - br i1 %"$gascmp_2788", label %"$out_of_gas_2789", label %"$have_gas_2790" - -"$out_of_gas_2789": ; preds = %"$matchsucc_2687" - call void @_out_of_gas() - br label %"$have_gas_2790" - -"$have_gas_2790": ; preds = %"$out_of_gas_2789", %"$matchsucc_2687" - %"$consume_2791" = sub i64 %"$gasrem_2787", 1 - store i64 %"$consume_2791", i64* @_gasrem, align 8 - %"$indices_buf_2792_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$indices_buf_2792_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_2792_salloc_load", i64 16) - %"$indices_buf_2792_salloc" = bitcast i8* %"$indices_buf_2792_salloc_salloc" to [16 x i8]* - %"$indices_buf_2792" = bitcast [16 x i8]* %"$indices_buf_2792_salloc" to i8* - %"$key1a_2793" = load %String, %String* %key1a, align 8 - %"$indices_gep_2794" = getelementptr i8, i8* %"$indices_buf_2792", i32 0 - %indices_cast = bitcast i8* %"$indices_gep_2794" to %String* - store %String %"$key1a_2793", %String* %indices_cast, align 8 - %"$execptr_load_2795" = load i8*, i8** @_execptr, align 8 - call void @_update_field(i8* %"$execptr_load_2795", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m1_2796", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_77", i32 1, i8* %"$indices_buf_2792", i8* null), !dbg !300 + call void @llvm.dbg.declare(metadata %String* %m2, metadata !603, metadata !DIExpression()), !dbg !605 + %"$gasrem_2810" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2811" = icmp ugt i64 1, %"$gasrem_2810" + br i1 %"$gascmp_2811", label %"$out_of_gas_2812", label %"$have_gas_2813" + +"$out_of_gas_2812": ; preds = %"$have_gas_2808" + call void @_out_of_gas() + br label %"$have_gas_2813" + +"$have_gas_2813": ; preds = %"$out_of_gas_2812", %"$have_gas_2808" + %"$consume_2814" = sub i64 %"$gasrem_2810", 1 + store i64 %"$consume_2814", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$stringlit_2815", i32 0, i32 0), i32 15 }, %String* %m2, align 8, !dbg !606 + %"$gasrem_2816" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2817" = icmp ugt i64 1, %"$gasrem_2816" + br i1 %"$gascmp_2817", label %"$out_of_gas_2818", label %"$have_gas_2819" + +"$out_of_gas_2818": ; preds = %"$have_gas_2813" + call void @_out_of_gas() + br label %"$have_gas_2819" + +"$have_gas_2819": ; preds = %"$out_of_gas_2818", %"$have_gas_2813" + %"$consume_2820" = sub i64 %"$gasrem_2816", 1 + store i64 %"$consume_2820", i64* @_gasrem, align 8 + %"$fail_msg__origin_2821" = alloca [20 x i8], align 1 + store [20 x i8] %_origin, [20 x i8]* %"$fail_msg__origin_2821", align 1 + %"$fail_msg__sender_2822" = alloca [20 x i8], align 1 + store [20 x i8] %_sender, [20 x i8]* %"$fail_msg__sender_2822", align 1 + %"$tname_2823" = load %String, %String* %tname, align 8 + %"$m_2824" = load %String, %String* %m2, align 8 + call void @"$fail_msg_298"(%Uint128 %_amount, [20 x i8]* %"$fail_msg__origin_2821", [20 x i8]* %"$fail_msg__sender_2822", %String %"$tname_2823", %String %"$m_2824"), !dbg !607 + br label %"$matchsucc_2725" + +"$empty_default_2729": ; preds = %"$have_gas_2723" + br label %"$matchsucc_2725" + +"$matchsucc_2725": ; preds = %"$have_gas_2819", %"$matchsucc_2774", %"$empty_default_2729" + %"$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 = %"$matchsucc_2725" + call void @_out_of_gas() + br label %"$have_gas_2828" + +"$have_gas_2828": ; preds = %"$out_of_gas_2827", %"$matchsucc_2725" + %"$consume_2829" = sub i64 %"$gasrem_2825", 1 + store i64 %"$consume_2829", i64* @_gasrem, align 8 + %"$indices_buf_2830_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$indices_buf_2830_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_2830_salloc_load", i64 16) + %"$indices_buf_2830_salloc" = bitcast i8* %"$indices_buf_2830_salloc_salloc" to [16 x i8]* + %"$indices_buf_2830" = bitcast [16 x i8]* %"$indices_buf_2830_salloc" to i8* + %"$key1a_2831" = load %String, %String* %key1a, align 8 + %"$indices_gep_2832" = getelementptr i8, i8* %"$indices_buf_2830", i32 0 + %indices_cast = bitcast i8* %"$indices_gep_2832" to %String* + store %String %"$key1a_2831", %String* %indices_cast, align 8 + %"$execptr_load_2833" = load i8*, i8** @_execptr, align 8 + call void @_update_field(i8* %"$execptr_load_2833", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m1_2834", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_77", i32 1, i8* %"$indices_buf_2830", i8* null), !dbg !608 ret void } declare i8* @_get(i8*, %_TyDescrTy_Typ*, i8*, i8*) -define void @t10(i8* %0) !dbg !301 { +define void @t10(i8* %0) !dbg !609 { entry: - %"$_amount_2798" = getelementptr i8, i8* %0, i32 0 - %"$_amount_2799" = bitcast i8* %"$_amount_2798" to %Uint128* - %_amount = load %Uint128, %Uint128* %"$_amount_2799", align 8 - %"$_origin_2800" = getelementptr i8, i8* %0, i32 16 - %"$_origin_2801" = bitcast i8* %"$_origin_2800" to [20 x i8]* - %"$_sender_2802" = getelementptr i8, i8* %0, i32 36 - %"$_sender_2803" = bitcast i8* %"$_sender_2802" to [20 x i8]* - call void @"$t10_2623"(%Uint128 %_amount, [20 x i8]* %"$_origin_2801", [20 x i8]* %"$_sender_2803"), !dbg !302 + %"$_amount_2839" = getelementptr i8, i8* %0, i32 0 + %"$_amount_2840" = bitcast i8* %"$_amount_2839" to %Uint128* + %_amount = load %Uint128, %Uint128* %"$_amount_2840", align 8 + %"$_origin_2841" = getelementptr i8, i8* %0, i32 16 + %"$_origin_2842" = bitcast i8* %"$_origin_2841" to [20 x i8]* + %"$_sender_2843" = getelementptr i8, i8* %0, i32 36 + %"$_sender_2844" = bitcast i8* %"$_sender_2843" to [20 x i8]* + call void @"$t10_2661"(%Uint128 %_amount, [20 x i8]* %"$_origin_2842", [20 x i8]* %"$_sender_2844"), !dbg !610 ret void } -define internal void @"$t11_2804"(%Uint128 %_amount, [20 x i8]* %"$_origin_2805", [20 x i8]* %"$_sender_2806") !dbg !303 { +define internal void @"$t11_2845"(%Uint128 %_amount, [20 x i8]* %"$_origin_2846", [20 x i8]* %"$_sender_2847") !dbg !611 { entry: - %_origin = load [20 x i8], [20 x i8]* %"$_origin_2805", align 1 - %_sender = load [20 x i8], [20 x i8]* %"$_sender_2806", align 1 - %"$gasrem_2807" = load i64, i64* @_gasrem, align 8 - %"$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 = %entry - call void @_out_of_gas() - br label %"$have_gas_2810" - -"$have_gas_2810": ; preds = %"$out_of_gas_2809", %entry - %"$consume_2811" = sub i64 %"$gasrem_2807", 1 - store i64 %"$consume_2811", i64* @_gasrem, align 8 + %"$_sender_2962" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_sender_2847", [20 x i8]** %"$_sender_2962", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_sender_2962", metadata !612, metadata !DIExpression()), !dbg !613 + %"$_origin_2961" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_origin_2846", [20 x i8]** %"$_origin_2961", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_origin_2961", metadata !614, metadata !DIExpression()), !dbg !613 + %"$_amount_2960" = alloca %Uint128, align 8 + store %Uint128 %_amount, %Uint128* %"$_amount_2960", align 8 + call void @llvm.dbg.declare(metadata %Uint128* %"$_amount_2960", metadata !615, metadata !DIExpression()), !dbg !613 + %_origin = load [20 x i8], [20 x i8]* %"$_origin_2846", align 1 + %_sender = load [20 x i8], [20 x i8]* %"$_sender_2847", align 1 + %"$gasrem_2848" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2849" = icmp ugt i64 1, %"$gasrem_2848" + br i1 %"$gascmp_2849", label %"$out_of_gas_2850", label %"$have_gas_2851" + +"$out_of_gas_2850": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_2851" + +"$have_gas_2851": ; preds = %"$out_of_gas_2850", %entry + %"$consume_2852" = sub i64 %"$gasrem_2848", 1 + store i64 %"$consume_2852", i64* @_gasrem, align 8 %tname = alloca %String, align 8 - %"$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" + call void @llvm.dbg.declare(metadata %String* %tname, metadata !616, metadata !DIExpression()), !dbg !617 + %"$gasrem_2853" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2854" = icmp ugt i64 1, %"$gasrem_2853" + br i1 %"$gascmp_2854", label %"$out_of_gas_2855", label %"$have_gas_2856" -"$out_of_gas_2814": ; preds = %"$have_gas_2810" +"$out_of_gas_2855": ; preds = %"$have_gas_2851" call void @_out_of_gas() - br label %"$have_gas_2815" + br label %"$have_gas_2856" -"$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 - store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_2817", i32 0, i32 0), i32 3 }, %String* %tname, align 8, !dbg !304 +"$have_gas_2856": ; preds = %"$out_of_gas_2855", %"$have_gas_2851" + %"$consume_2857" = sub i64 %"$gasrem_2853", 1 + store i64 %"$consume_2857", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_2858", i32 0, i32 0), i32 3 }, %String* %tname, align 8, !dbg !618 %m1 = alloca %Map_String_String*, align 8 - %"$execptr_load_2819" = load i8*, i8** @_execptr, align 8 - %"$m1_call_2820" = call i8* @_fetch_field(i8* %"$execptr_load_2819", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m1_2818", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_77", i32 0, i8* null, i32 1), !dbg !305 - %"$m1_2821" = bitcast i8* %"$m1_call_2820" to %Map_String_String* - store %Map_String_String* %"$m1_2821", %Map_String_String** %m1, 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* - %"$_literal_cost_call_2824" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Map_77", i8* %"$$m1_2822_2823") - %"$m1_2825" = load %Map_String_String*, %Map_String_String** %m1, align 8 - %"$$m1_2825_2826" = bitcast %Map_String_String* %"$m1_2825" to i8* - %"$_mapsortcost_call_2827" = call i64 @_mapsortcost(%_TyDescrTy_Typ* @"$TyDescr_Map_77", i8* %"$$m1_2825_2826") - %"$gasadd_2828" = add i64 %"$_literal_cost_call_2824", %"$_mapsortcost_call_2827" - %"$gasrem_2829" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2830" = icmp ugt i64 %"$gasadd_2828", %"$gasrem_2829" - br i1 %"$gascmp_2830", label %"$out_of_gas_2831", label %"$have_gas_2832" - -"$out_of_gas_2831": ; preds = %"$have_gas_2815" - call void @_out_of_gas() - br label %"$have_gas_2832" - -"$have_gas_2832": ; preds = %"$out_of_gas_2831", %"$have_gas_2815" - %"$consume_2833" = sub i64 %"$gasrem_2829", %"$gasadd_2828" - store i64 %"$consume_2833", i64* @_gasrem, align 8 - %"$gasrem_2834" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2835" = icmp ugt i64 1, %"$gasrem_2834" - br i1 %"$gascmp_2835", label %"$out_of_gas_2836", label %"$have_gas_2837" - -"$out_of_gas_2836": ; preds = %"$have_gas_2832" - call void @_out_of_gas() - br label %"$have_gas_2837" - -"$have_gas_2837": ; preds = %"$out_of_gas_2836", %"$have_gas_2832" - %"$consume_2838" = sub i64 %"$gasrem_2834", 1 - store i64 %"$consume_2838", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %Map_String_String** %m1, metadata !619, metadata !DIExpression()), !dbg !620 + %"$execptr_load_2860" = load i8*, i8** @_execptr, align 8 + %"$m1_call_2861" = call i8* @_fetch_field(i8* %"$execptr_load_2860", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m1_2859", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_77", i32 0, i8* null, i32 1), !dbg !620 + %"$m1_2862" = bitcast i8* %"$m1_call_2861" to %Map_String_String* + store %Map_String_String* %"$m1_2862", %Map_String_String** %m1, align 8 + %"$m1_2863" = load %Map_String_String*, %Map_String_String** %m1, align 8 + %"$$m1_2863_2864" = bitcast %Map_String_String* %"$m1_2863" to i8* + %"$_literal_cost_call_2865" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Map_77", i8* %"$$m1_2863_2864") + %"$m1_2866" = load %Map_String_String*, %Map_String_String** %m1, align 8 + %"$$m1_2866_2867" = bitcast %Map_String_String* %"$m1_2866" to i8* + %"$_mapsortcost_call_2868" = call i64 @_mapsortcost(%_TyDescrTy_Typ* @"$TyDescr_Map_77", i8* %"$$m1_2866_2867") + %"$gasadd_2869" = add i64 %"$_literal_cost_call_2865", %"$_mapsortcost_call_2868" + %"$gasrem_2870" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2871" = icmp ugt i64 %"$gasadd_2869", %"$gasrem_2870" + br i1 %"$gascmp_2871", label %"$out_of_gas_2872", label %"$have_gas_2873" + +"$out_of_gas_2872": ; preds = %"$have_gas_2856" + call void @_out_of_gas() + br label %"$have_gas_2873" + +"$have_gas_2873": ; preds = %"$out_of_gas_2872", %"$have_gas_2856" + %"$consume_2874" = sub i64 %"$gasrem_2870", %"$gasadd_2869" + store i64 %"$consume_2874", i64* @_gasrem, align 8 + %"$gasrem_2875" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2876" = icmp ugt i64 1, %"$gasrem_2875" + br i1 %"$gascmp_2876", label %"$out_of_gas_2877", label %"$have_gas_2878" + +"$out_of_gas_2877": ; preds = %"$have_gas_2873" + call void @_out_of_gas() + br label %"$have_gas_2878" + +"$have_gas_2878": ; preds = %"$out_of_gas_2877", %"$have_gas_2873" + %"$consume_2879" = sub i64 %"$gasrem_2875", 1 + store i64 %"$consume_2879", i64* @_gasrem, align 8 %m1_size = alloca %Uint32, align 8 - %"$gasrem_2839" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2840" = icmp ugt i64 1, %"$gasrem_2839" - br i1 %"$gascmp_2840", label %"$out_of_gas_2841", label %"$have_gas_2842" + call void @llvm.dbg.declare(metadata %Uint32* %m1_size, metadata !621, metadata !DIExpression()), !dbg !622 + %"$gasrem_2880" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2881" = icmp ugt i64 1, %"$gasrem_2880" + br i1 %"$gascmp_2881", label %"$out_of_gas_2882", label %"$have_gas_2883" -"$out_of_gas_2841": ; preds = %"$have_gas_2837" +"$out_of_gas_2882": ; preds = %"$have_gas_2878" call void @_out_of_gas() - br label %"$have_gas_2842" + br label %"$have_gas_2883" -"$have_gas_2842": ; preds = %"$out_of_gas_2841", %"$have_gas_2837" - %"$consume_2843" = sub i64 %"$gasrem_2839", 1 - store i64 %"$consume_2843", i64* @_gasrem, align 8 - %"$m1_2844" = load %Map_String_String*, %Map_String_String** %m1, align 8 - %"$$m1_2844_2845" = bitcast %Map_String_String* %"$m1_2844" to i8* - %"$size_call_2846" = call %Uint32 @_size(i8* %"$$m1_2844_2845"), !dbg !306 - store %Uint32 %"$size_call_2846", %Uint32* %m1_size, align 4, !dbg !306 - %"$gasrem_2847" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2848" = icmp ugt i64 1, %"$gasrem_2847" - br i1 %"$gascmp_2848", label %"$out_of_gas_2849", label %"$have_gas_2850" +"$have_gas_2883": ; preds = %"$out_of_gas_2882", %"$have_gas_2878" + %"$consume_2884" = sub i64 %"$gasrem_2880", 1 + store i64 %"$consume_2884", i64* @_gasrem, align 8 + %"$m1_2885" = load %Map_String_String*, %Map_String_String** %m1, align 8 + %"$$m1_2885_2886" = bitcast %Map_String_String* %"$m1_2885" to i8* + %"$size_call_2887" = call %Uint32 @_size(i8* %"$$m1_2885_2886"), !dbg !623 + store %Uint32 %"$size_call_2887", %Uint32* %m1_size, align 4, !dbg !623 + %"$gasrem_2888" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2889" = icmp ugt i64 1, %"$gasrem_2888" + br i1 %"$gascmp_2889", label %"$out_of_gas_2890", label %"$have_gas_2891" -"$out_of_gas_2849": ; preds = %"$have_gas_2842" +"$out_of_gas_2890": ; preds = %"$have_gas_2883" call void @_out_of_gas() - br label %"$have_gas_2850" + br label %"$have_gas_2891" -"$have_gas_2850": ; preds = %"$out_of_gas_2849", %"$have_gas_2842" - %"$consume_2851" = sub i64 %"$gasrem_2847", 1 - store i64 %"$consume_2851", i64* @_gasrem, align 8 +"$have_gas_2891": ; preds = %"$out_of_gas_2890", %"$have_gas_2883" + %"$consume_2892" = sub i64 %"$gasrem_2888", 1 + store i64 %"$consume_2892", i64* @_gasrem, align 8 %zero = alloca %Uint32, align 8 - %"$gasrem_2852" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2853" = icmp ugt i64 1, %"$gasrem_2852" - br i1 %"$gascmp_2853", label %"$out_of_gas_2854", label %"$have_gas_2855" + call void @llvm.dbg.declare(metadata %Uint32* %zero, metadata !624, metadata !DIExpression()), !dbg !625 + %"$gasrem_2893" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2894" = icmp ugt i64 1, %"$gasrem_2893" + br i1 %"$gascmp_2894", label %"$out_of_gas_2895", label %"$have_gas_2896" -"$out_of_gas_2854": ; preds = %"$have_gas_2850" +"$out_of_gas_2895": ; preds = %"$have_gas_2891" call void @_out_of_gas() - br label %"$have_gas_2855" + br label %"$have_gas_2896" -"$have_gas_2855": ; preds = %"$out_of_gas_2854", %"$have_gas_2850" - %"$consume_2856" = sub i64 %"$gasrem_2852", 1 - store i64 %"$consume_2856", i64* @_gasrem, align 8 - store %Uint32 zeroinitializer, %Uint32* %zero, align 4, !dbg !307 - %"$gasrem_2857" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2858" = icmp ugt i64 1, %"$gasrem_2857" - br i1 %"$gascmp_2858", label %"$out_of_gas_2859", label %"$have_gas_2860" +"$have_gas_2896": ; preds = %"$out_of_gas_2895", %"$have_gas_2891" + %"$consume_2897" = sub i64 %"$gasrem_2893", 1 + store i64 %"$consume_2897", i64* @_gasrem, align 8 + store %Uint32 zeroinitializer, %Uint32* %zero, align 4, !dbg !626 + %"$gasrem_2898" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2899" = icmp ugt i64 1, %"$gasrem_2898" + br i1 %"$gascmp_2899", label %"$out_of_gas_2900", label %"$have_gas_2901" -"$out_of_gas_2859": ; preds = %"$have_gas_2855" +"$out_of_gas_2900": ; preds = %"$have_gas_2896" call void @_out_of_gas() - br label %"$have_gas_2860" + br label %"$have_gas_2901" -"$have_gas_2860": ; preds = %"$out_of_gas_2859", %"$have_gas_2855" - %"$consume_2861" = sub i64 %"$gasrem_2857", 1 - store i64 %"$consume_2861", i64* @_gasrem, align 8 +"$have_gas_2901": ; preds = %"$out_of_gas_2900", %"$have_gas_2896" + %"$consume_2902" = sub i64 %"$gasrem_2898", 1 + store i64 %"$consume_2902", i64* @_gasrem, align 8 %is_empty = alloca %TName_Bool*, align 8 - %"$gasrem_2862" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2863" = icmp ugt i64 4, %"$gasrem_2862" - br i1 %"$gascmp_2863", label %"$out_of_gas_2864", label %"$have_gas_2865" - -"$out_of_gas_2864": ; preds = %"$have_gas_2860" - call void @_out_of_gas() - br label %"$have_gas_2865" - -"$have_gas_2865": ; preds = %"$out_of_gas_2864", %"$have_gas_2860" - %"$consume_2866" = sub i64 %"$gasrem_2862", 4 - store i64 %"$consume_2866", i64* @_gasrem, align 8 - %"$execptr_load_2867" = load i8*, i8** @_execptr, align 8 - %"$m1_size_2868" = load %Uint32, %Uint32* %m1_size, align 4 - %"$zero_2869" = load %Uint32, %Uint32* %zero, align 4 - %"$eq_call_2870" = call %TName_Bool* @_eq_Uint32(i8* %"$execptr_load_2867", %Uint32 %"$m1_size_2868", %Uint32 %"$zero_2869"), !dbg !308 - store %TName_Bool* %"$eq_call_2870", %TName_Bool** %is_empty, align 8, !dbg !308 - %"$gasrem_2872" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2873" = icmp ugt i64 2, %"$gasrem_2872" - br i1 %"$gascmp_2873", label %"$out_of_gas_2874", label %"$have_gas_2875" - -"$out_of_gas_2874": ; preds = %"$have_gas_2865" - call void @_out_of_gas() - br label %"$have_gas_2875" - -"$have_gas_2875": ; preds = %"$out_of_gas_2874", %"$have_gas_2865" - %"$consume_2876" = sub i64 %"$gasrem_2872", 2 - store i64 %"$consume_2876", i64* @_gasrem, align 8 - %"$is_empty_2878" = load %TName_Bool*, %TName_Bool** %is_empty, align 8 - %"$is_empty_tag_2879" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$is_empty_2878", i32 0, i32 0 - %"$is_empty_tag_2880" = load i8, i8* %"$is_empty_tag_2879", align 1 - switch i8 %"$is_empty_tag_2880", label %"$empty_default_2881" [ - i8 0, label %"$True_2882" - i8 1, label %"$False_2884" - ], !dbg !309 - -"$True_2882": ; preds = %"$have_gas_2875" - %"$is_empty_2883" = bitcast %TName_Bool* %"$is_empty_2878" to %CName_True* - br label %"$matchsucc_2877" - -"$False_2884": ; preds = %"$have_gas_2875" - %"$is_empty_2885" = bitcast %TName_Bool* %"$is_empty_2878" to %CName_False* - %"$gasrem_2886" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2887" = icmp ugt i64 1, %"$gasrem_2886" - br i1 %"$gascmp_2887", label %"$out_of_gas_2888", label %"$have_gas_2889" - -"$out_of_gas_2888": ; preds = %"$False_2884" - call void @_out_of_gas() - br label %"$have_gas_2889" - -"$have_gas_2889": ; preds = %"$out_of_gas_2888", %"$False_2884" - %"$consume_2890" = sub i64 %"$gasrem_2886", 1 - store i64 %"$consume_2890", i64* @_gasrem, align 8 - %"$fail__origin_2891" = alloca [20 x i8], align 1 - store [20 x i8] %_origin, [20 x i8]* %"$fail__origin_2891", align 1 - %"$fail__sender_2892" = alloca [20 x i8], align 1 - store [20 x i8] %_sender, [20 x i8]* %"$fail__sender_2892", align 1 - %"$tname_2893" = load %String, %String* %tname, align 8 - call void @"$fail_252"(%Uint128 %_amount, [20 x i8]* %"$fail__origin_2891", [20 x i8]* %"$fail__sender_2892", %String %"$tname_2893"), !dbg !310 - br label %"$matchsucc_2877" - -"$empty_default_2881": ; preds = %"$have_gas_2875" - br label %"$matchsucc_2877" - -"$matchsucc_2877": ; preds = %"$have_gas_2889", %"$True_2882", %"$empty_default_2881" - %"$gasrem_2894" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2895" = icmp ugt i64 1, %"$gasrem_2894" - br i1 %"$gascmp_2895", label %"$out_of_gas_2896", label %"$have_gas_2897" - -"$out_of_gas_2896": ; preds = %"$matchsucc_2877" - call void @_out_of_gas() - br label %"$have_gas_2897" - -"$have_gas_2897": ; preds = %"$out_of_gas_2896", %"$matchsucc_2877" - %"$consume_2898" = sub i64 %"$gasrem_2894", 1 - store i64 %"$consume_2898", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %is_empty, metadata !627, metadata !DIExpression()), !dbg !628 + %"$gasrem_2903" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2904" = icmp ugt i64 4, %"$gasrem_2903" + br i1 %"$gascmp_2904", label %"$out_of_gas_2905", label %"$have_gas_2906" + +"$out_of_gas_2905": ; preds = %"$have_gas_2901" + call void @_out_of_gas() + br label %"$have_gas_2906" + +"$have_gas_2906": ; preds = %"$out_of_gas_2905", %"$have_gas_2901" + %"$consume_2907" = sub i64 %"$gasrem_2903", 4 + store i64 %"$consume_2907", i64* @_gasrem, align 8 + %"$execptr_load_2908" = load i8*, i8** @_execptr, align 8 + %"$m1_size_2909" = load %Uint32, %Uint32* %m1_size, align 4 + %"$zero_2910" = load %Uint32, %Uint32* %zero, align 4 + %"$eq_call_2911" = call %TName_Bool* @_eq_Uint32(i8* %"$execptr_load_2908", %Uint32 %"$m1_size_2909", %Uint32 %"$zero_2910"), !dbg !629 + store %TName_Bool* %"$eq_call_2911", %TName_Bool** %is_empty, align 8, !dbg !629 + %"$gasrem_2913" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2914" = icmp ugt i64 2, %"$gasrem_2913" + br i1 %"$gascmp_2914", label %"$out_of_gas_2915", label %"$have_gas_2916" + +"$out_of_gas_2915": ; preds = %"$have_gas_2906" + call void @_out_of_gas() + br label %"$have_gas_2916" + +"$have_gas_2916": ; preds = %"$out_of_gas_2915", %"$have_gas_2906" + %"$consume_2917" = sub i64 %"$gasrem_2913", 2 + store i64 %"$consume_2917", i64* @_gasrem, align 8 + %"$is_empty_2919" = load %TName_Bool*, %TName_Bool** %is_empty, align 8 + %"$is_empty_tag_2920" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$is_empty_2919", i32 0, i32 0 + %"$is_empty_tag_2921" = load i8, i8* %"$is_empty_tag_2920", align 1 + switch i8 %"$is_empty_tag_2921", label %"$empty_default_2922" [ + i8 0, label %"$True_2923" + i8 1, label %"$False_2925" + ], !dbg !630 + +"$True_2923": ; preds = %"$have_gas_2916" + %"$is_empty_2924" = bitcast %TName_Bool* %"$is_empty_2919" to %CName_True* + br label %"$matchsucc_2918" + +"$False_2925": ; preds = %"$have_gas_2916" + %"$is_empty_2926" = bitcast %TName_Bool* %"$is_empty_2919" to %CName_False* + %"$gasrem_2927" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2928" = icmp ugt i64 1, %"$gasrem_2927" + br i1 %"$gascmp_2928", label %"$out_of_gas_2929", label %"$have_gas_2930" + +"$out_of_gas_2929": ; preds = %"$False_2925" + call void @_out_of_gas() + br label %"$have_gas_2930" + +"$have_gas_2930": ; preds = %"$out_of_gas_2929", %"$False_2925" + %"$consume_2931" = sub i64 %"$gasrem_2927", 1 + store i64 %"$consume_2931", i64* @_gasrem, align 8 + %"$fail__origin_2932" = alloca [20 x i8], align 1 + store [20 x i8] %_origin, [20 x i8]* %"$fail__origin_2932", align 1 + %"$fail__sender_2933" = alloca [20 x i8], align 1 + store [20 x i8] %_sender, [20 x i8]* %"$fail__sender_2933", align 1 + %"$tname_2934" = load %String, %String* %tname, align 8 + call void @"$fail_254"(%Uint128 %_amount, [20 x i8]* %"$fail__origin_2932", [20 x i8]* %"$fail__sender_2933", %String %"$tname_2934"), !dbg !631 + br label %"$matchsucc_2918" + +"$empty_default_2922": ; preds = %"$have_gas_2916" + br label %"$matchsucc_2918" + +"$matchsucc_2918": ; preds = %"$have_gas_2930", %"$True_2923", %"$empty_default_2922" + %"$gasrem_2935" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2936" = icmp ugt i64 1, %"$gasrem_2935" + br i1 %"$gascmp_2936", label %"$out_of_gas_2937", label %"$have_gas_2938" + +"$out_of_gas_2937": ; preds = %"$matchsucc_2918" + call void @_out_of_gas() + br label %"$have_gas_2938" + +"$have_gas_2938": ; preds = %"$out_of_gas_2937", %"$matchsucc_2918" + %"$consume_2939" = sub i64 %"$gasrem_2935", 1 + store i64 %"$consume_2939", i64* @_gasrem, align 8 %e2 = alloca %"Map_String_Map_(String)_(String)"*, align 8 - %"$gasrem_2899" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2900" = icmp ugt i64 1, %"$gasrem_2899" - br i1 %"$gascmp_2900", label %"$out_of_gas_2901", label %"$have_gas_2902" - -"$out_of_gas_2901": ; preds = %"$have_gas_2897" - call void @_out_of_gas() - br label %"$have_gas_2902" - -"$have_gas_2902": ; preds = %"$out_of_gas_2901", %"$have_gas_2897" - %"$consume_2903" = sub i64 %"$gasrem_2899", 1 - store i64 %"$consume_2903", i64* @_gasrem, align 8 - %"$execptr_load_2904" = load i8*, i8** @_execptr, align 8 - %"$_new_empty_map_call_2905" = call i8* @_new_empty_map(i8* %"$execptr_load_2904") - %"$_new_empty_map_2906" = bitcast i8* %"$_new_empty_map_call_2905" to %"Map_String_Map_(String)_(String)"* - store %"Map_String_Map_(String)_(String)"* %"$_new_empty_map_2906", %"Map_String_Map_(String)_(String)"** %e2, align 8, !dbg !313 - %"$e2_2907" = load %"Map_String_Map_(String)_(String)"*, %"Map_String_Map_(String)_(String)"** %e2, align 8 - %"$$e2_2907_2908" = bitcast %"Map_String_Map_(String)_(String)"* %"$e2_2907" to i8* - %"$_literal_cost_call_2909" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Map_76", i8* %"$$e2_2907_2908") - %"$gasrem_2910" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2911" = icmp ugt i64 %"$_literal_cost_call_2909", %"$gasrem_2910" - br i1 %"$gascmp_2911", label %"$out_of_gas_2912", label %"$have_gas_2913" - -"$out_of_gas_2912": ; preds = %"$have_gas_2902" - call void @_out_of_gas() - br label %"$have_gas_2913" - -"$have_gas_2913": ; preds = %"$out_of_gas_2912", %"$have_gas_2902" - %"$consume_2914" = sub i64 %"$gasrem_2910", %"$_literal_cost_call_2909" - store i64 %"$consume_2914", i64* @_gasrem, align 8 - %"$execptr_load_2915" = load i8*, i8** @_execptr, align 8 - %"$e2_2917" = load %"Map_String_Map_(String)_(String)"*, %"Map_String_Map_(String)_(String)"** %e2, align 8 - %"$update_value_2918" = bitcast %"Map_String_Map_(String)_(String)"* %"$e2_2917" to i8* - call void @_update_field(i8* %"$execptr_load_2915", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m2_2916", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_76", i32 0, i8* null, i8* %"$update_value_2918"), !dbg !314 + call void @llvm.dbg.declare(metadata %"Map_String_Map_(String)_(String)"** %e2, metadata !634, metadata !DIExpression()), !dbg !635 + %"$gasrem_2940" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2941" = icmp ugt i64 1, %"$gasrem_2940" + br i1 %"$gascmp_2941", label %"$out_of_gas_2942", label %"$have_gas_2943" + +"$out_of_gas_2942": ; preds = %"$have_gas_2938" + call void @_out_of_gas() + br label %"$have_gas_2943" + +"$have_gas_2943": ; preds = %"$out_of_gas_2942", %"$have_gas_2938" + %"$consume_2944" = sub i64 %"$gasrem_2940", 1 + store i64 %"$consume_2944", i64* @_gasrem, align 8 + %"$execptr_load_2945" = load i8*, i8** @_execptr, align 8 + %"$_new_empty_map_call_2946" = call i8* @_new_empty_map(i8* %"$execptr_load_2945") + %"$_new_empty_map_2947" = bitcast i8* %"$_new_empty_map_call_2946" to %"Map_String_Map_(String)_(String)"* + store %"Map_String_Map_(String)_(String)"* %"$_new_empty_map_2947", %"Map_String_Map_(String)_(String)"** %e2, align 8, !dbg !636 + %"$e2_2948" = load %"Map_String_Map_(String)_(String)"*, %"Map_String_Map_(String)_(String)"** %e2, align 8 + %"$$e2_2948_2949" = bitcast %"Map_String_Map_(String)_(String)"* %"$e2_2948" to i8* + %"$_literal_cost_call_2950" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Map_76", i8* %"$$e2_2948_2949") + %"$gasrem_2951" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2952" = icmp ugt i64 %"$_literal_cost_call_2950", %"$gasrem_2951" + br i1 %"$gascmp_2952", label %"$out_of_gas_2953", label %"$have_gas_2954" + +"$out_of_gas_2953": ; preds = %"$have_gas_2943" + call void @_out_of_gas() + br label %"$have_gas_2954" + +"$have_gas_2954": ; preds = %"$out_of_gas_2953", %"$have_gas_2943" + %"$consume_2955" = sub i64 %"$gasrem_2951", %"$_literal_cost_call_2950" + store i64 %"$consume_2955", i64* @_gasrem, align 8 + %"$execptr_load_2956" = load i8*, i8** @_execptr, align 8 + %"$e2_2958" = load %"Map_String_Map_(String)_(String)"*, %"Map_String_Map_(String)_(String)"** %e2, align 8 + %"$update_value_2959" = bitcast %"Map_String_Map_(String)_(String)"* %"$e2_2958" to i8* + call void @_update_field(i8* %"$execptr_load_2956", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m2_2957", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_76", i32 0, i8* null, i8* %"$update_value_2959"), !dbg !637 ret void } -define void @t11(i8* %0) !dbg !315 { +define void @t11(i8* %0) !dbg !638 { entry: - %"$_amount_2920" = getelementptr i8, i8* %0, i32 0 - %"$_amount_2921" = bitcast i8* %"$_amount_2920" to %Uint128* - %_amount = load %Uint128, %Uint128* %"$_amount_2921", align 8 - %"$_origin_2922" = getelementptr i8, i8* %0, i32 16 - %"$_origin_2923" = bitcast i8* %"$_origin_2922" to [20 x i8]* - %"$_sender_2924" = getelementptr i8, i8* %0, i32 36 - %"$_sender_2925" = bitcast i8* %"$_sender_2924" to [20 x i8]* - call void @"$t11_2804"(%Uint128 %_amount, [20 x i8]* %"$_origin_2923", [20 x i8]* %"$_sender_2925"), !dbg !316 + %"$_amount_2964" = getelementptr i8, i8* %0, i32 0 + %"$_amount_2965" = bitcast i8* %"$_amount_2964" to %Uint128* + %_amount = load %Uint128, %Uint128* %"$_amount_2965", align 8 + %"$_origin_2966" = getelementptr i8, i8* %0, i32 16 + %"$_origin_2967" = bitcast i8* %"$_origin_2966" to [20 x i8]* + %"$_sender_2968" = getelementptr i8, i8* %0, i32 36 + %"$_sender_2969" = bitcast i8* %"$_sender_2968" to [20 x i8]* + call void @"$t11_2845"(%Uint128 %_amount, [20 x i8]* %"$_origin_2967", [20 x i8]* %"$_sender_2969"), !dbg !639 ret void } -define internal void @"$t12_2926"(%Uint128 %_amount, [20 x i8]* %"$_origin_2927", [20 x i8]* %"$_sender_2928") !dbg !317 { +define internal void @"$t12_2970"(%Uint128 %_amount, [20 x i8]* %"$_origin_2971", [20 x i8]* %"$_sender_2972") !dbg !640 { entry: - %_origin = load [20 x i8], [20 x i8]* %"$_origin_2927", align 1 - %_sender = load [20 x i8], [20 x i8]* %"$_sender_2928", align 1 - %"$gasrem_2929" = load i64, i64* @_gasrem, align 8 - %"$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 = %entry - call void @_out_of_gas() - br label %"$have_gas_2932" - -"$have_gas_2932": ; preds = %"$out_of_gas_2931", %entry - %"$consume_2933" = sub i64 %"$gasrem_2929", 1 - store i64 %"$consume_2933", i64* @_gasrem, align 8 + %"$_sender_3102" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_sender_2972", [20 x i8]** %"$_sender_3102", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_sender_3102", metadata !641, metadata !DIExpression()), !dbg !642 + %"$_origin_3101" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_origin_2971", [20 x i8]** %"$_origin_3101", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_origin_3101", metadata !643, metadata !DIExpression()), !dbg !642 + %"$_amount_3100" = alloca %Uint128, align 8 + store %Uint128 %_amount, %Uint128* %"$_amount_3100", align 8 + call void @llvm.dbg.declare(metadata %Uint128* %"$_amount_3100", metadata !644, metadata !DIExpression()), !dbg !642 + %_origin = load [20 x i8], [20 x i8]* %"$_origin_2971", align 1 + %_sender = load [20 x i8], [20 x i8]* %"$_sender_2972", align 1 + %"$gasrem_2973" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2974" = icmp ugt i64 1, %"$gasrem_2973" + br i1 %"$gascmp_2974", label %"$out_of_gas_2975", label %"$have_gas_2976" + +"$out_of_gas_2975": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_2976" + +"$have_gas_2976": ; preds = %"$out_of_gas_2975", %entry + %"$consume_2977" = sub i64 %"$gasrem_2973", 1 + store i64 %"$consume_2977", i64* @_gasrem, align 8 %tname = alloca %String, align 8 - %"$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" + call void @llvm.dbg.declare(metadata %String* %tname, metadata !645, metadata !DIExpression()), !dbg !646 + %"$gasrem_2978" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2979" = icmp ugt i64 1, %"$gasrem_2978" + br i1 %"$gascmp_2979", label %"$out_of_gas_2980", label %"$have_gas_2981" -"$out_of_gas_2936": ; preds = %"$have_gas_2932" +"$out_of_gas_2980": ; preds = %"$have_gas_2976" call void @_out_of_gas() - br label %"$have_gas_2937" + br label %"$have_gas_2981" -"$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 - store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_2939", i32 0, i32 0), i32 3 }, %String* %tname, align 8, !dbg !318 +"$have_gas_2981": ; preds = %"$out_of_gas_2980", %"$have_gas_2976" + %"$consume_2982" = sub i64 %"$gasrem_2978", 1 + store i64 %"$consume_2982", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_2983", i32 0, i32 0), i32 3 }, %String* %tname, align 8, !dbg !647 %m2 = alloca %"Map_String_Map_(String)_(String)"*, align 8 - %"$execptr_load_2941" = load i8*, i8** @_execptr, align 8 - %"$m2_call_2942" = call i8* @_fetch_field(i8* %"$execptr_load_2941", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m2_2940", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_76", i32 0, i8* null, i32 1), !dbg !319 - %"$m2_2943" = bitcast i8* %"$m2_call_2942" to %"Map_String_Map_(String)_(String)"* - store %"Map_String_Map_(String)_(String)"* %"$m2_2943", %"Map_String_Map_(String)_(String)"** %m2, 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* - %"$_literal_cost_call_2946" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Map_76", i8* %"$$m2_2944_2945") - %"$m2_2947" = load %"Map_String_Map_(String)_(String)"*, %"Map_String_Map_(String)_(String)"** %m2, align 8 - %"$$m2_2947_2948" = bitcast %"Map_String_Map_(String)_(String)"* %"$m2_2947" to i8* - %"$_mapsortcost_call_2949" = call i64 @_mapsortcost(%_TyDescrTy_Typ* @"$TyDescr_Map_76", i8* %"$$m2_2947_2948") - %"$gasadd_2950" = add i64 %"$_literal_cost_call_2946", %"$_mapsortcost_call_2949" - %"$gasrem_2951" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2952" = icmp ugt i64 %"$gasadd_2950", %"$gasrem_2951" - br i1 %"$gascmp_2952", label %"$out_of_gas_2953", label %"$have_gas_2954" - -"$out_of_gas_2953": ; preds = %"$have_gas_2937" - call void @_out_of_gas() - br label %"$have_gas_2954" - -"$have_gas_2954": ; preds = %"$out_of_gas_2953", %"$have_gas_2937" - %"$consume_2955" = sub i64 %"$gasrem_2951", %"$gasadd_2950" - store i64 %"$consume_2955", i64* @_gasrem, align 8 - %"$gasrem_2956" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2957" = icmp ugt i64 1, %"$gasrem_2956" - br i1 %"$gascmp_2957", label %"$out_of_gas_2958", label %"$have_gas_2959" - -"$out_of_gas_2958": ; preds = %"$have_gas_2954" - call void @_out_of_gas() - br label %"$have_gas_2959" - -"$have_gas_2959": ; preds = %"$out_of_gas_2958", %"$have_gas_2954" - %"$consume_2960" = sub i64 %"$gasrem_2956", 1 - store i64 %"$consume_2960", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %"Map_String_Map_(String)_(String)"** %m2, metadata !648, metadata !DIExpression()), !dbg !649 + %"$execptr_load_2985" = load i8*, i8** @_execptr, align 8 + %"$m2_call_2986" = call i8* @_fetch_field(i8* %"$execptr_load_2985", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m2_2984", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_76", i32 0, i8* null, i32 1), !dbg !649 + %"$m2_2987" = bitcast i8* %"$m2_call_2986" to %"Map_String_Map_(String)_(String)"* + store %"Map_String_Map_(String)_(String)"* %"$m2_2987", %"Map_String_Map_(String)_(String)"** %m2, align 8 + %"$m2_2988" = load %"Map_String_Map_(String)_(String)"*, %"Map_String_Map_(String)_(String)"** %m2, align 8 + %"$$m2_2988_2989" = bitcast %"Map_String_Map_(String)_(String)"* %"$m2_2988" to i8* + %"$_literal_cost_call_2990" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Map_76", i8* %"$$m2_2988_2989") + %"$m2_2991" = load %"Map_String_Map_(String)_(String)"*, %"Map_String_Map_(String)_(String)"** %m2, align 8 + %"$$m2_2991_2992" = bitcast %"Map_String_Map_(String)_(String)"* %"$m2_2991" to i8* + %"$_mapsortcost_call_2993" = call i64 @_mapsortcost(%_TyDescrTy_Typ* @"$TyDescr_Map_76", i8* %"$$m2_2991_2992") + %"$gasadd_2994" = add i64 %"$_literal_cost_call_2990", %"$_mapsortcost_call_2993" + %"$gasrem_2995" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2996" = icmp ugt i64 %"$gasadd_2994", %"$gasrem_2995" + br i1 %"$gascmp_2996", label %"$out_of_gas_2997", label %"$have_gas_2998" + +"$out_of_gas_2997": ; preds = %"$have_gas_2981" + call void @_out_of_gas() + br label %"$have_gas_2998" + +"$have_gas_2998": ; preds = %"$out_of_gas_2997", %"$have_gas_2981" + %"$consume_2999" = sub i64 %"$gasrem_2995", %"$gasadd_2994" + store i64 %"$consume_2999", i64* @_gasrem, align 8 + %"$gasrem_3000" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3001" = icmp ugt i64 1, %"$gasrem_3000" + br i1 %"$gascmp_3001", label %"$out_of_gas_3002", label %"$have_gas_3003" + +"$out_of_gas_3002": ; preds = %"$have_gas_2998" + call void @_out_of_gas() + br label %"$have_gas_3003" + +"$have_gas_3003": ; preds = %"$out_of_gas_3002", %"$have_gas_2998" + %"$consume_3004" = sub i64 %"$gasrem_3000", 1 + store i64 %"$consume_3004", i64* @_gasrem, align 8 %m2_size = alloca %Uint32, 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" + call void @llvm.dbg.declare(metadata %Uint32* %m2_size, metadata !650, metadata !DIExpression()), !dbg !651 + %"$gasrem_3005" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3006" = icmp ugt i64 1, %"$gasrem_3005" + br i1 %"$gascmp_3006", label %"$out_of_gas_3007", label %"$have_gas_3008" -"$out_of_gas_2963": ; preds = %"$have_gas_2959" +"$out_of_gas_3007": ; preds = %"$have_gas_3003" call void @_out_of_gas() - br label %"$have_gas_2964" + br label %"$have_gas_3008" -"$have_gas_2964": ; preds = %"$out_of_gas_2963", %"$have_gas_2959" - %"$consume_2965" = sub i64 %"$gasrem_2961", 1 - store i64 %"$consume_2965", i64* @_gasrem, align 8 - %"$m2_2966" = load %"Map_String_Map_(String)_(String)"*, %"Map_String_Map_(String)_(String)"** %m2, align 8 - %"$$m2_2966_2967" = bitcast %"Map_String_Map_(String)_(String)"* %"$m2_2966" to i8* - %"$size_call_2968" = call %Uint32 @_size(i8* %"$$m2_2966_2967"), !dbg !320 - store %Uint32 %"$size_call_2968", %Uint32* %m2_size, align 4, !dbg !320 - %"$gasrem_2969" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2970" = icmp ugt i64 1, %"$gasrem_2969" - br i1 %"$gascmp_2970", label %"$out_of_gas_2971", label %"$have_gas_2972" +"$have_gas_3008": ; preds = %"$out_of_gas_3007", %"$have_gas_3003" + %"$consume_3009" = sub i64 %"$gasrem_3005", 1 + store i64 %"$consume_3009", i64* @_gasrem, align 8 + %"$m2_3010" = load %"Map_String_Map_(String)_(String)"*, %"Map_String_Map_(String)_(String)"** %m2, align 8 + %"$$m2_3010_3011" = bitcast %"Map_String_Map_(String)_(String)"* %"$m2_3010" to i8* + %"$size_call_3012" = call %Uint32 @_size(i8* %"$$m2_3010_3011"), !dbg !652 + store %Uint32 %"$size_call_3012", %Uint32* %m2_size, align 4, !dbg !652 + %"$gasrem_3013" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3014" = icmp ugt i64 1, %"$gasrem_3013" + br i1 %"$gascmp_3014", label %"$out_of_gas_3015", label %"$have_gas_3016" -"$out_of_gas_2971": ; preds = %"$have_gas_2964" +"$out_of_gas_3015": ; preds = %"$have_gas_3008" call void @_out_of_gas() - br label %"$have_gas_2972" + br label %"$have_gas_3016" -"$have_gas_2972": ; preds = %"$out_of_gas_2971", %"$have_gas_2964" - %"$consume_2973" = sub i64 %"$gasrem_2969", 1 - store i64 %"$consume_2973", i64* @_gasrem, align 8 +"$have_gas_3016": ; preds = %"$out_of_gas_3015", %"$have_gas_3008" + %"$consume_3017" = sub i64 %"$gasrem_3013", 1 + store i64 %"$consume_3017", i64* @_gasrem, align 8 %zero = alloca %Uint32, align 8 - %"$gasrem_2974" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2975" = icmp ugt i64 1, %"$gasrem_2974" - br i1 %"$gascmp_2975", label %"$out_of_gas_2976", label %"$have_gas_2977" + call void @llvm.dbg.declare(metadata %Uint32* %zero, metadata !653, metadata !DIExpression()), !dbg !654 + %"$gasrem_3018" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3019" = icmp ugt i64 1, %"$gasrem_3018" + br i1 %"$gascmp_3019", label %"$out_of_gas_3020", label %"$have_gas_3021" -"$out_of_gas_2976": ; preds = %"$have_gas_2972" +"$out_of_gas_3020": ; preds = %"$have_gas_3016" call void @_out_of_gas() - br label %"$have_gas_2977" + br label %"$have_gas_3021" -"$have_gas_2977": ; preds = %"$out_of_gas_2976", %"$have_gas_2972" - %"$consume_2978" = sub i64 %"$gasrem_2974", 1 - store i64 %"$consume_2978", i64* @_gasrem, align 8 - store %Uint32 zeroinitializer, %Uint32* %zero, align 4, !dbg !321 - %"$gasrem_2979" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2980" = icmp ugt i64 1, %"$gasrem_2979" - br i1 %"$gascmp_2980", label %"$out_of_gas_2981", label %"$have_gas_2982" +"$have_gas_3021": ; preds = %"$out_of_gas_3020", %"$have_gas_3016" + %"$consume_3022" = sub i64 %"$gasrem_3018", 1 + store i64 %"$consume_3022", i64* @_gasrem, align 8 + store %Uint32 zeroinitializer, %Uint32* %zero, align 4, !dbg !655 + %"$gasrem_3023" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3024" = icmp ugt i64 1, %"$gasrem_3023" + br i1 %"$gascmp_3024", label %"$out_of_gas_3025", label %"$have_gas_3026" -"$out_of_gas_2981": ; preds = %"$have_gas_2977" +"$out_of_gas_3025": ; preds = %"$have_gas_3021" call void @_out_of_gas() - br label %"$have_gas_2982" + br label %"$have_gas_3026" -"$have_gas_2982": ; preds = %"$out_of_gas_2981", %"$have_gas_2977" - %"$consume_2983" = sub i64 %"$gasrem_2979", 1 - store i64 %"$consume_2983", i64* @_gasrem, align 8 +"$have_gas_3026": ; preds = %"$out_of_gas_3025", %"$have_gas_3021" + %"$consume_3027" = sub i64 %"$gasrem_3023", 1 + store i64 %"$consume_3027", i64* @_gasrem, align 8 %is_empty = alloca %TName_Bool*, align 8 - %"$gasrem_2984" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2985" = icmp ugt i64 4, %"$gasrem_2984" - br i1 %"$gascmp_2985", label %"$out_of_gas_2986", label %"$have_gas_2987" - -"$out_of_gas_2986": ; preds = %"$have_gas_2982" - call void @_out_of_gas() - br label %"$have_gas_2987" - -"$have_gas_2987": ; preds = %"$out_of_gas_2986", %"$have_gas_2982" - %"$consume_2988" = sub i64 %"$gasrem_2984", 4 - store i64 %"$consume_2988", i64* @_gasrem, align 8 - %"$execptr_load_2989" = load i8*, i8** @_execptr, align 8 - %"$m2_size_2990" = load %Uint32, %Uint32* %m2_size, align 4 - %"$zero_2991" = load %Uint32, %Uint32* %zero, align 4 - %"$eq_call_2992" = call %TName_Bool* @_eq_Uint32(i8* %"$execptr_load_2989", %Uint32 %"$m2_size_2990", %Uint32 %"$zero_2991"), !dbg !322 - store %TName_Bool* %"$eq_call_2992", %TName_Bool** %is_empty, align 8, !dbg !322 - %"$gasrem_2994" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2995" = icmp ugt i64 2, %"$gasrem_2994" - br i1 %"$gascmp_2995", label %"$out_of_gas_2996", label %"$have_gas_2997" - -"$out_of_gas_2996": ; preds = %"$have_gas_2987" - call void @_out_of_gas() - br label %"$have_gas_2997" - -"$have_gas_2997": ; preds = %"$out_of_gas_2996", %"$have_gas_2987" - %"$consume_2998" = sub i64 %"$gasrem_2994", 2 - store i64 %"$consume_2998", i64* @_gasrem, align 8 - %"$is_empty_3000" = load %TName_Bool*, %TName_Bool** %is_empty, align 8 - %"$is_empty_tag_3001" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$is_empty_3000", i32 0, i32 0 - %"$is_empty_tag_3002" = load i8, i8* %"$is_empty_tag_3001", align 1 - switch i8 %"$is_empty_tag_3002", label %"$empty_default_3003" [ - i8 0, label %"$True_3004" - i8 1, label %"$False_3006" - ], !dbg !323 - -"$True_3004": ; preds = %"$have_gas_2997" - %"$is_empty_3005" = bitcast %TName_Bool* %"$is_empty_3000" to %CName_True* - br label %"$matchsucc_2999" - -"$False_3006": ; preds = %"$have_gas_2997" - %"$is_empty_3007" = bitcast %TName_Bool* %"$is_empty_3000" to %CName_False* - %"$gasrem_3008" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3009" = icmp ugt i64 1, %"$gasrem_3008" - br i1 %"$gascmp_3009", label %"$out_of_gas_3010", label %"$have_gas_3011" - -"$out_of_gas_3010": ; preds = %"$False_3006" - call void @_out_of_gas() - br label %"$have_gas_3011" - -"$have_gas_3011": ; preds = %"$out_of_gas_3010", %"$False_3006" - %"$consume_3012" = sub i64 %"$gasrem_3008", 1 - store i64 %"$consume_3012", i64* @_gasrem, align 8 - %"$fail__origin_3013" = alloca [20 x i8], align 1 - store [20 x i8] %_origin, [20 x i8]* %"$fail__origin_3013", align 1 - %"$fail__sender_3014" = alloca [20 x i8], align 1 - store [20 x i8] %_sender, [20 x i8]* %"$fail__sender_3014", align 1 - %"$tname_3015" = load %String, %String* %tname, align 8 - call void @"$fail_252"(%Uint128 %_amount, [20 x i8]* %"$fail__origin_3013", [20 x i8]* %"$fail__sender_3014", %String %"$tname_3015"), !dbg !324 - br label %"$matchsucc_2999" - -"$empty_default_3003": ; preds = %"$have_gas_2997" - br label %"$matchsucc_2999" - -"$matchsucc_2999": ; preds = %"$have_gas_3011", %"$True_3004", %"$empty_default_3003" - %"$gasrem_3016" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3017" = icmp ugt i64 1, %"$gasrem_3016" - br i1 %"$gascmp_3017", label %"$out_of_gas_3018", label %"$have_gas_3019" - -"$out_of_gas_3018": ; preds = %"$matchsucc_2999" - call void @_out_of_gas() - br label %"$have_gas_3019" - -"$have_gas_3019": ; preds = %"$out_of_gas_3018", %"$matchsucc_2999" - %"$consume_3020" = sub i64 %"$gasrem_3016", 1 - store i64 %"$consume_3020", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %is_empty, metadata !656, metadata !DIExpression()), !dbg !657 + %"$gasrem_3028" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3029" = icmp ugt i64 4, %"$gasrem_3028" + br i1 %"$gascmp_3029", label %"$out_of_gas_3030", label %"$have_gas_3031" + +"$out_of_gas_3030": ; preds = %"$have_gas_3026" + call void @_out_of_gas() + br label %"$have_gas_3031" + +"$have_gas_3031": ; preds = %"$out_of_gas_3030", %"$have_gas_3026" + %"$consume_3032" = sub i64 %"$gasrem_3028", 4 + store i64 %"$consume_3032", i64* @_gasrem, align 8 + %"$execptr_load_3033" = load i8*, i8** @_execptr, align 8 + %"$m2_size_3034" = load %Uint32, %Uint32* %m2_size, align 4 + %"$zero_3035" = load %Uint32, %Uint32* %zero, align 4 + %"$eq_call_3036" = call %TName_Bool* @_eq_Uint32(i8* %"$execptr_load_3033", %Uint32 %"$m2_size_3034", %Uint32 %"$zero_3035"), !dbg !658 + store %TName_Bool* %"$eq_call_3036", %TName_Bool** %is_empty, align 8, !dbg !658 + %"$gasrem_3038" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3039" = icmp ugt i64 2, %"$gasrem_3038" + br i1 %"$gascmp_3039", label %"$out_of_gas_3040", label %"$have_gas_3041" + +"$out_of_gas_3040": ; preds = %"$have_gas_3031" + call void @_out_of_gas() + br label %"$have_gas_3041" + +"$have_gas_3041": ; preds = %"$out_of_gas_3040", %"$have_gas_3031" + %"$consume_3042" = sub i64 %"$gasrem_3038", 2 + store i64 %"$consume_3042", i64* @_gasrem, align 8 + %"$is_empty_3044" = load %TName_Bool*, %TName_Bool** %is_empty, align 8 + %"$is_empty_tag_3045" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$is_empty_3044", i32 0, i32 0 + %"$is_empty_tag_3046" = load i8, i8* %"$is_empty_tag_3045", align 1 + switch i8 %"$is_empty_tag_3046", label %"$empty_default_3047" [ + i8 0, label %"$True_3048" + i8 1, label %"$False_3050" + ], !dbg !659 + +"$True_3048": ; preds = %"$have_gas_3041" + %"$is_empty_3049" = bitcast %TName_Bool* %"$is_empty_3044" to %CName_True* + br label %"$matchsucc_3043" + +"$False_3050": ; preds = %"$have_gas_3041" + %"$is_empty_3051" = bitcast %TName_Bool* %"$is_empty_3044" to %CName_False* + %"$gasrem_3052" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3053" = icmp ugt i64 1, %"$gasrem_3052" + br i1 %"$gascmp_3053", label %"$out_of_gas_3054", label %"$have_gas_3055" + +"$out_of_gas_3054": ; preds = %"$False_3050" + call void @_out_of_gas() + br label %"$have_gas_3055" + +"$have_gas_3055": ; preds = %"$out_of_gas_3054", %"$False_3050" + %"$consume_3056" = sub i64 %"$gasrem_3052", 1 + store i64 %"$consume_3056", i64* @_gasrem, align 8 + %"$fail__origin_3057" = alloca [20 x i8], align 1 + store [20 x i8] %_origin, [20 x i8]* %"$fail__origin_3057", align 1 + %"$fail__sender_3058" = alloca [20 x i8], align 1 + store [20 x i8] %_sender, [20 x i8]* %"$fail__sender_3058", align 1 + %"$tname_3059" = load %String, %String* %tname, align 8 + call void @"$fail_254"(%Uint128 %_amount, [20 x i8]* %"$fail__origin_3057", [20 x i8]* %"$fail__sender_3058", %String %"$tname_3059"), !dbg !660 + br label %"$matchsucc_3043" + +"$empty_default_3047": ; preds = %"$have_gas_3041" + br label %"$matchsucc_3043" + +"$matchsucc_3043": ; preds = %"$have_gas_3055", %"$True_3048", %"$empty_default_3047" + %"$gasrem_3060" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3061" = icmp ugt i64 1, %"$gasrem_3060" + br i1 %"$gascmp_3061", label %"$out_of_gas_3062", label %"$have_gas_3063" + +"$out_of_gas_3062": ; preds = %"$matchsucc_3043" + call void @_out_of_gas() + br label %"$have_gas_3063" + +"$have_gas_3063": ; preds = %"$out_of_gas_3062", %"$matchsucc_3043" + %"$consume_3064" = sub i64 %"$gasrem_3060", 1 + store i64 %"$consume_3064", i64* @_gasrem, align 8 %e1 = alloca %Map_String_String*, align 8 - %"$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" + call void @llvm.dbg.declare(metadata %Map_String_String** %e1, metadata !663, metadata !DIExpression()), !dbg !664 + %"$gasrem_3065" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3066" = icmp ugt i64 1, %"$gasrem_3065" + br i1 %"$gascmp_3066", label %"$out_of_gas_3067", label %"$have_gas_3068" -"$out_of_gas_3023": ; preds = %"$have_gas_3019" +"$out_of_gas_3067": ; preds = %"$have_gas_3063" call void @_out_of_gas() - br label %"$have_gas_3024" + br label %"$have_gas_3068" -"$have_gas_3024": ; preds = %"$out_of_gas_3023", %"$have_gas_3019" - %"$consume_3025" = sub i64 %"$gasrem_3021", 1 - store i64 %"$consume_3025", i64* @_gasrem, align 8 - %"$execptr_load_3026" = load i8*, i8** @_execptr, align 8 - %"$_new_empty_map_call_3027" = call i8* @_new_empty_map(i8* %"$execptr_load_3026") - %"$_new_empty_map_3028" = bitcast i8* %"$_new_empty_map_call_3027" to %Map_String_String* - store %Map_String_String* %"$_new_empty_map_3028", %Map_String_String** %e1, align 8, !dbg !327 - %"$gasrem_3029" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3030" = icmp ugt i64 1, %"$gasrem_3029" - br i1 %"$gascmp_3030", label %"$out_of_gas_3031", label %"$have_gas_3032" +"$have_gas_3068": ; preds = %"$out_of_gas_3067", %"$have_gas_3063" + %"$consume_3069" = sub i64 %"$gasrem_3065", 1 + store i64 %"$consume_3069", i64* @_gasrem, align 8 + %"$execptr_load_3070" = load i8*, i8** @_execptr, align 8 + %"$_new_empty_map_call_3071" = call i8* @_new_empty_map(i8* %"$execptr_load_3070") + %"$_new_empty_map_3072" = bitcast i8* %"$_new_empty_map_call_3071" to %Map_String_String* + store %Map_String_String* %"$_new_empty_map_3072", %Map_String_String** %e1, align 8, !dbg !665 + %"$gasrem_3073" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3074" = icmp ugt i64 1, %"$gasrem_3073" + br i1 %"$gascmp_3074", label %"$out_of_gas_3075", label %"$have_gas_3076" -"$out_of_gas_3031": ; preds = %"$have_gas_3024" +"$out_of_gas_3075": ; preds = %"$have_gas_3068" call void @_out_of_gas() - br label %"$have_gas_3032" + br label %"$have_gas_3076" -"$have_gas_3032": ; preds = %"$out_of_gas_3031", %"$have_gas_3024" - %"$consume_3033" = sub i64 %"$gasrem_3029", 1 - store i64 %"$consume_3033", i64* @_gasrem, align 8 +"$have_gas_3076": ; preds = %"$out_of_gas_3075", %"$have_gas_3068" + %"$consume_3077" = sub i64 %"$gasrem_3073", 1 + store i64 %"$consume_3077", i64* @_gasrem, align 8 %key1a = alloca %String, align 8 - %"$gasrem_3034" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3035" = icmp ugt i64 1, %"$gasrem_3034" - br i1 %"$gascmp_3035", label %"$out_of_gas_3036", label %"$have_gas_3037" - -"$out_of_gas_3036": ; preds = %"$have_gas_3032" - call void @_out_of_gas() - br label %"$have_gas_3037" - -"$have_gas_3037": ; preds = %"$out_of_gas_3036", %"$have_gas_3032" - %"$consume_3038" = sub i64 %"$gasrem_3034", 1 - store i64 %"$consume_3038", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_3039", i32 0, i32 0), i32 5 }, %String* %key1a, align 8, !dbg !328 - %"$e1_3040" = load %Map_String_String*, %Map_String_String** %e1, align 8 - %"$$e1_3040_3041" = bitcast %Map_String_String* %"$e1_3040" to i8* - %"$_literal_cost_call_3042" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Map_77", i8* %"$$e1_3040_3041") - %"$gasadd_3043" = add i64 %"$_literal_cost_call_3042", 1 - %"$gasrem_3044" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3045" = icmp ugt i64 %"$gasadd_3043", %"$gasrem_3044" - br i1 %"$gascmp_3045", label %"$out_of_gas_3046", label %"$have_gas_3047" - -"$out_of_gas_3046": ; preds = %"$have_gas_3037" - call void @_out_of_gas() - br label %"$have_gas_3047" - -"$have_gas_3047": ; preds = %"$out_of_gas_3046", %"$have_gas_3037" - %"$consume_3048" = sub i64 %"$gasrem_3044", %"$gasadd_3043" - store i64 %"$consume_3048", i64* @_gasrem, align 8 - %"$indices_buf_3049_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$indices_buf_3049_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_3049_salloc_load", i64 16) - %"$indices_buf_3049_salloc" = bitcast i8* %"$indices_buf_3049_salloc_salloc" to [16 x i8]* - %"$indices_buf_3049" = bitcast [16 x i8]* %"$indices_buf_3049_salloc" to i8* - %"$key1a_3050" = load %String, %String* %key1a, align 8 - %"$indices_gep_3051" = getelementptr i8, i8* %"$indices_buf_3049", i32 0 - %indices_cast = bitcast i8* %"$indices_gep_3051" to %String* - store %String %"$key1a_3050", %String* %indices_cast, align 8 - %"$execptr_load_3052" = load i8*, i8** @_execptr, align 8 - %"$e1_3054" = load %Map_String_String*, %Map_String_String** %e1, align 8 - %"$update_value_3055" = bitcast %Map_String_String* %"$e1_3054" to i8* - call void @_update_field(i8* %"$execptr_load_3052", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m2_3053", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_76", i32 1, i8* %"$indices_buf_3049", i8* %"$update_value_3055"), !dbg !329 + call void @llvm.dbg.declare(metadata %String* %key1a, metadata !666, metadata !DIExpression()), !dbg !667 + %"$gasrem_3078" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3079" = icmp ugt i64 1, %"$gasrem_3078" + br i1 %"$gascmp_3079", label %"$out_of_gas_3080", label %"$have_gas_3081" + +"$out_of_gas_3080": ; preds = %"$have_gas_3076" + call void @_out_of_gas() + br label %"$have_gas_3081" + +"$have_gas_3081": ; preds = %"$out_of_gas_3080", %"$have_gas_3076" + %"$consume_3082" = sub i64 %"$gasrem_3078", 1 + store i64 %"$consume_3082", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_3083", i32 0, i32 0), i32 5 }, %String* %key1a, align 8, !dbg !668 + %"$e1_3084" = load %Map_String_String*, %Map_String_String** %e1, align 8 + %"$$e1_3084_3085" = bitcast %Map_String_String* %"$e1_3084" to i8* + %"$_literal_cost_call_3086" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Map_77", i8* %"$$e1_3084_3085") + %"$gasadd_3087" = add i64 %"$_literal_cost_call_3086", 1 + %"$gasrem_3088" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3089" = icmp ugt i64 %"$gasadd_3087", %"$gasrem_3088" + br i1 %"$gascmp_3089", label %"$out_of_gas_3090", label %"$have_gas_3091" + +"$out_of_gas_3090": ; preds = %"$have_gas_3081" + call void @_out_of_gas() + br label %"$have_gas_3091" + +"$have_gas_3091": ; preds = %"$out_of_gas_3090", %"$have_gas_3081" + %"$consume_3092" = sub i64 %"$gasrem_3088", %"$gasadd_3087" + store i64 %"$consume_3092", i64* @_gasrem, align 8 + %"$indices_buf_3093_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$indices_buf_3093_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_3093_salloc_load", i64 16) + %"$indices_buf_3093_salloc" = bitcast i8* %"$indices_buf_3093_salloc_salloc" to [16 x i8]* + %"$indices_buf_3093" = bitcast [16 x i8]* %"$indices_buf_3093_salloc" to i8* + %"$key1a_3094" = load %String, %String* %key1a, align 8 + %"$indices_gep_3095" = getelementptr i8, i8* %"$indices_buf_3093", i32 0 + %indices_cast = bitcast i8* %"$indices_gep_3095" to %String* + store %String %"$key1a_3094", %String* %indices_cast, align 8 + %"$execptr_load_3096" = load i8*, i8** @_execptr, align 8 + %"$e1_3098" = load %Map_String_String*, %Map_String_String** %e1, align 8 + %"$update_value_3099" = bitcast %Map_String_String* %"$e1_3098" to i8* + call void @_update_field(i8* %"$execptr_load_3096", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m2_3097", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_76", i32 1, i8* %"$indices_buf_3093", i8* %"$update_value_3099"), !dbg !669 ret void } -define void @t12(i8* %0) !dbg !330 { +define void @t12(i8* %0) !dbg !670 { entry: - %"$_amount_3057" = getelementptr i8, i8* %0, i32 0 - %"$_amount_3058" = bitcast i8* %"$_amount_3057" to %Uint128* - %_amount = load %Uint128, %Uint128* %"$_amount_3058", align 8 - %"$_origin_3059" = getelementptr i8, i8* %0, i32 16 - %"$_origin_3060" = bitcast i8* %"$_origin_3059" to [20 x i8]* - %"$_sender_3061" = getelementptr i8, i8* %0, i32 36 - %"$_sender_3062" = bitcast i8* %"$_sender_3061" to [20 x i8]* - call void @"$t12_2926"(%Uint128 %_amount, [20 x i8]* %"$_origin_3060", [20 x i8]* %"$_sender_3062"), !dbg !331 + %"$_amount_3104" = getelementptr i8, i8* %0, i32 0 + %"$_amount_3105" = bitcast i8* %"$_amount_3104" to %Uint128* + %_amount = load %Uint128, %Uint128* %"$_amount_3105", align 8 + %"$_origin_3106" = getelementptr i8, i8* %0, i32 16 + %"$_origin_3107" = bitcast i8* %"$_origin_3106" to [20 x i8]* + %"$_sender_3108" = getelementptr i8, i8* %0, i32 36 + %"$_sender_3109" = bitcast i8* %"$_sender_3108" to [20 x i8]* + call void @"$t12_2970"(%Uint128 %_amount, [20 x i8]* %"$_origin_3107", [20 x i8]* %"$_sender_3109"), !dbg !671 ret void } -define internal void @"$t13_3063"(%Uint128 %_amount, [20 x i8]* %"$_origin_3064", [20 x i8]* %"$_sender_3065") !dbg !332 { +define internal void @"$t13_3110"(%Uint128 %_amount, [20 x i8]* %"$_origin_3111", [20 x i8]* %"$_sender_3112") !dbg !672 { entry: - %_origin = load [20 x i8], [20 x i8]* %"$_origin_3064", align 1 - %_sender = load [20 x i8], [20 x i8]* %"$_sender_3065", align 1 - %"$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_3068": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_3069" - -"$have_gas_3069": ; preds = %"$out_of_gas_3068", %entry - %"$consume_3070" = sub i64 %"$gasrem_3066", 1 - store i64 %"$consume_3070", i64* @_gasrem, align 8 + %"$_sender_3363" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_sender_3112", [20 x i8]** %"$_sender_3363", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_sender_3363", metadata !673, metadata !DIExpression()), !dbg !674 + %"$_origin_3362" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_origin_3111", [20 x i8]** %"$_origin_3362", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_origin_3362", metadata !675, metadata !DIExpression()), !dbg !674 + %"$_amount_3361" = alloca %Uint128, align 8 + store %Uint128 %_amount, %Uint128* %"$_amount_3361", align 8 + call void @llvm.dbg.declare(metadata %Uint128* %"$_amount_3361", metadata !676, metadata !DIExpression()), !dbg !674 + %_origin = load [20 x i8], [20 x i8]* %"$_origin_3111", align 1 + %_sender = load [20 x i8], [20 x i8]* %"$_sender_3112", align 1 + %"$gasrem_3113" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3114" = icmp ugt i64 1, %"$gasrem_3113" + br i1 %"$gascmp_3114", label %"$out_of_gas_3115", label %"$have_gas_3116" + +"$out_of_gas_3115": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_3116" + +"$have_gas_3116": ; preds = %"$out_of_gas_3115", %entry + %"$consume_3117" = sub i64 %"$gasrem_3113", 1 + store i64 %"$consume_3117", i64* @_gasrem, align 8 %tname = alloca %String, 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" + call void @llvm.dbg.declare(metadata %String* %tname, metadata !677, metadata !DIExpression()), !dbg !678 + %"$gasrem_3118" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3119" = icmp ugt i64 1, %"$gasrem_3118" + br i1 %"$gascmp_3119", label %"$out_of_gas_3120", label %"$have_gas_3121" -"$out_of_gas_3073": ; preds = %"$have_gas_3069" +"$out_of_gas_3120": ; preds = %"$have_gas_3116" call void @_out_of_gas() - br label %"$have_gas_3074" + br label %"$have_gas_3121" -"$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 - store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_3076", i32 0, i32 0), i32 3 }, %String* %tname, align 8, !dbg !333 - %"$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" +"$have_gas_3121": ; preds = %"$out_of_gas_3120", %"$have_gas_3116" + %"$consume_3122" = sub i64 %"$gasrem_3118", 1 + store i64 %"$consume_3122", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_3123", i32 0, i32 0), i32 3 }, %String* %tname, align 8, !dbg !679 + %"$gasrem_3124" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3125" = icmp ugt i64 1, %"$gasrem_3124" + br i1 %"$gascmp_3125", label %"$out_of_gas_3126", label %"$have_gas_3127" -"$out_of_gas_3079": ; preds = %"$have_gas_3074" +"$out_of_gas_3126": ; preds = %"$have_gas_3121" call void @_out_of_gas() - br label %"$have_gas_3080" + br label %"$have_gas_3127" -"$have_gas_3080": ; preds = %"$out_of_gas_3079", %"$have_gas_3074" - %"$consume_3081" = sub i64 %"$gasrem_3077", 1 - store i64 %"$consume_3081", i64* @_gasrem, align 8 +"$have_gas_3127": ; preds = %"$out_of_gas_3126", %"$have_gas_3121" + %"$consume_3128" = sub i64 %"$gasrem_3124", 1 + store i64 %"$consume_3128", i64* @_gasrem, align 8 %key1a = alloca %String, align 8 - %"$gasrem_3082" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3083" = icmp ugt i64 1, %"$gasrem_3082" - br i1 %"$gascmp_3083", label %"$out_of_gas_3084", label %"$have_gas_3085" + call void @llvm.dbg.declare(metadata %String* %key1a, metadata !680, metadata !DIExpression()), !dbg !681 + %"$gasrem_3129" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3130" = icmp ugt i64 1, %"$gasrem_3129" + br i1 %"$gascmp_3130", label %"$out_of_gas_3131", label %"$have_gas_3132" -"$out_of_gas_3084": ; preds = %"$have_gas_3080" +"$out_of_gas_3131": ; preds = %"$have_gas_3127" call void @_out_of_gas() - br label %"$have_gas_3085" + br label %"$have_gas_3132" -"$have_gas_3085": ; preds = %"$out_of_gas_3084", %"$have_gas_3080" - %"$consume_3086" = sub i64 %"$gasrem_3082", 1 - store i64 %"$consume_3086", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_3087", i32 0, i32 0), i32 5 }, %String* %key1a, align 8, !dbg !334 +"$have_gas_3132": ; preds = %"$out_of_gas_3131", %"$have_gas_3127" + %"$consume_3133" = sub i64 %"$gasrem_3129", 1 + store i64 %"$consume_3133", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_3134", i32 0, i32 0), i32 5 }, %String* %key1a, align 8, !dbg !682 %mo = alloca %"TName_Option_Map_(String)_(String)"*, align 8 - %"$indices_buf_3088_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$indices_buf_3088_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_3088_salloc_load", i64 16) - %"$indices_buf_3088_salloc" = bitcast i8* %"$indices_buf_3088_salloc_salloc" to [16 x i8]* - %"$indices_buf_3088" = bitcast [16 x i8]* %"$indices_buf_3088_salloc" to i8* - %"$key1a_3089" = load %String, %String* %key1a, align 8 - %"$indices_gep_3090" = getelementptr i8, i8* %"$indices_buf_3088", i32 0 - %indices_cast = bitcast i8* %"$indices_gep_3090" to %String* - store %String %"$key1a_3089", %String* %indices_cast, align 8 - %"$execptr_load_3092" = load i8*, i8** @_execptr, align 8 - %"$mo_call_3093" = call i8* @_fetch_field(i8* %"$execptr_load_3092", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m2_3091", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_76", i32 1, i8* %"$indices_buf_3088", i32 1), !dbg !335 - %"$mo_3094" = bitcast i8* %"$mo_call_3093" to %"TName_Option_Map_(String)_(String)"* - store %"TName_Option_Map_(String)_(String)"* %"$mo_3094", %"TName_Option_Map_(String)_(String)"** %mo, align 8 - %"$mo_3095" = load %"TName_Option_Map_(String)_(String)"*, %"TName_Option_Map_(String)_(String)"** %mo, align 8 - %"$$mo_3095_3096" = bitcast %"TName_Option_Map_(String)_(String)"* %"$mo_3095" to i8* - %"$_literal_cost_call_3097" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_Map_(String)_(String)_71", i8* %"$$mo_3095_3096") - %"$mo_3098" = load %"TName_Option_Map_(String)_(String)"*, %"TName_Option_Map_(String)_(String)"** %mo, align 8 - %"$$mo_3098_3099" = bitcast %"TName_Option_Map_(String)_(String)"* %"$mo_3098" to i8* - %"$_mapsortcost_call_3100" = call i64 @_mapsortcost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_Map_(String)_(String)_71", i8* %"$$mo_3098_3099") - %"$gasadd_3101" = add i64 %"$_literal_cost_call_3097", %"$_mapsortcost_call_3100" - %"$gasadd_3102" = add i64 %"$gasadd_3101", 1 - %"$gasrem_3103" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3104" = icmp ugt i64 %"$gasadd_3102", %"$gasrem_3103" - br i1 %"$gascmp_3104", label %"$out_of_gas_3105", label %"$have_gas_3106" - -"$out_of_gas_3105": ; preds = %"$have_gas_3085" - call void @_out_of_gas() - br label %"$have_gas_3106" - -"$have_gas_3106": ; preds = %"$out_of_gas_3105", %"$have_gas_3085" - %"$consume_3107" = sub i64 %"$gasrem_3103", %"$gasadd_3102" - store i64 %"$consume_3107", i64* @_gasrem, align 8 - %"$gasrem_3108" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3109" = icmp ugt i64 2, %"$gasrem_3108" - br i1 %"$gascmp_3109", label %"$out_of_gas_3110", label %"$have_gas_3111" - -"$out_of_gas_3110": ; preds = %"$have_gas_3106" - call void @_out_of_gas() - br label %"$have_gas_3111" - -"$have_gas_3111": ; preds = %"$out_of_gas_3110", %"$have_gas_3106" - %"$consume_3112" = sub i64 %"$gasrem_3108", 2 - store i64 %"$consume_3112", i64* @_gasrem, align 8 - %"$mo_3114" = load %"TName_Option_Map_(String)_(String)"*, %"TName_Option_Map_(String)_(String)"** %mo, align 8 - %"$mo_tag_3115" = getelementptr inbounds %"TName_Option_Map_(String)_(String)", %"TName_Option_Map_(String)_(String)"* %"$mo_3114", i32 0, i32 0 - %"$mo_tag_3116" = load i8, i8* %"$mo_tag_3115", align 1 - switch i8 %"$mo_tag_3116", label %"$empty_default_3117" [ - i8 0, label %"$Some_3118" - i8 1, label %"$None_3194" - ], !dbg !336 - -"$Some_3118": ; preds = %"$have_gas_3111" - %"$mo_3119" = bitcast %"TName_Option_Map_(String)_(String)"* %"$mo_3114" to %"CName_Some_Map_(String)_(String)"* - %"$m_gep_3120" = getelementptr inbounds %"CName_Some_Map_(String)_(String)", %"CName_Some_Map_(String)_(String)"* %"$mo_3119", i32 0, i32 1 - %"$m_load_3121" = load %Map_String_String*, %Map_String_String** %"$m_gep_3120", align 8 + call void @llvm.dbg.declare(metadata %"TName_Option_Map_(String)_(String)"** %mo, metadata !683, metadata !DIExpression()), !dbg !684 + %"$indices_buf_3135_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$indices_buf_3135_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_3135_salloc_load", i64 16) + %"$indices_buf_3135_salloc" = bitcast i8* %"$indices_buf_3135_salloc_salloc" to [16 x i8]* + %"$indices_buf_3135" = bitcast [16 x i8]* %"$indices_buf_3135_salloc" to i8* + %"$key1a_3136" = load %String, %String* %key1a, align 8 + %"$indices_gep_3137" = getelementptr i8, i8* %"$indices_buf_3135", i32 0 + %indices_cast = bitcast i8* %"$indices_gep_3137" to %String* + store %String %"$key1a_3136", %String* %indices_cast, align 8 + %"$execptr_load_3139" = load i8*, i8** @_execptr, align 8 + %"$mo_call_3140" = call i8* @_fetch_field(i8* %"$execptr_load_3139", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m2_3138", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_76", i32 1, i8* %"$indices_buf_3135", i32 1), !dbg !684 + %"$mo_3141" = bitcast i8* %"$mo_call_3140" to %"TName_Option_Map_(String)_(String)"* + store %"TName_Option_Map_(String)_(String)"* %"$mo_3141", %"TName_Option_Map_(String)_(String)"** %mo, align 8 + %"$mo_3142" = load %"TName_Option_Map_(String)_(String)"*, %"TName_Option_Map_(String)_(String)"** %mo, align 8 + %"$$mo_3142_3143" = bitcast %"TName_Option_Map_(String)_(String)"* %"$mo_3142" to i8* + %"$_literal_cost_call_3144" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_Map_(String)_(String)_71", i8* %"$$mo_3142_3143") + %"$mo_3145" = load %"TName_Option_Map_(String)_(String)"*, %"TName_Option_Map_(String)_(String)"** %mo, align 8 + %"$$mo_3145_3146" = bitcast %"TName_Option_Map_(String)_(String)"* %"$mo_3145" to i8* + %"$_mapsortcost_call_3147" = call i64 @_mapsortcost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_Map_(String)_(String)_71", i8* %"$$mo_3145_3146") + %"$gasadd_3148" = add i64 %"$_literal_cost_call_3144", %"$_mapsortcost_call_3147" + %"$gasadd_3149" = add i64 %"$gasadd_3148", 1 + %"$gasrem_3150" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3151" = icmp ugt i64 %"$gasadd_3149", %"$gasrem_3150" + br i1 %"$gascmp_3151", label %"$out_of_gas_3152", label %"$have_gas_3153" + +"$out_of_gas_3152": ; preds = %"$have_gas_3132" + call void @_out_of_gas() + br label %"$have_gas_3153" + +"$have_gas_3153": ; preds = %"$out_of_gas_3152", %"$have_gas_3132" + %"$consume_3154" = sub i64 %"$gasrem_3150", %"$gasadd_3149" + store i64 %"$consume_3154", i64* @_gasrem, align 8 + %"$gasrem_3155" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3156" = icmp ugt i64 2, %"$gasrem_3155" + br i1 %"$gascmp_3156", label %"$out_of_gas_3157", label %"$have_gas_3158" + +"$out_of_gas_3157": ; preds = %"$have_gas_3153" + call void @_out_of_gas() + br label %"$have_gas_3158" + +"$have_gas_3158": ; preds = %"$out_of_gas_3157", %"$have_gas_3153" + %"$consume_3159" = sub i64 %"$gasrem_3155", 2 + store i64 %"$consume_3159", i64* @_gasrem, align 8 + %"$mo_3161" = load %"TName_Option_Map_(String)_(String)"*, %"TName_Option_Map_(String)_(String)"** %mo, align 8 + %"$mo_tag_3162" = getelementptr inbounds %"TName_Option_Map_(String)_(String)", %"TName_Option_Map_(String)_(String)"* %"$mo_3161", i32 0, i32 0 + %"$mo_tag_3163" = load i8, i8* %"$mo_tag_3162", align 1 + switch i8 %"$mo_tag_3163", label %"$empty_default_3164" [ + i8 0, label %"$Some_3165" + i8 1, label %"$None_3241" + ], !dbg !685 + +"$Some_3165": ; preds = %"$have_gas_3158" + %"$mo_3166" = bitcast %"TName_Option_Map_(String)_(String)"* %"$mo_3161" to %"CName_Some_Map_(String)_(String)"* + %"$m_gep_3167" = getelementptr inbounds %"CName_Some_Map_(String)_(String)", %"CName_Some_Map_(String)_(String)"* %"$mo_3166", i32 0, i32 1 + %"$m_load_3168" = load %Map_String_String*, %Map_String_String** %"$m_gep_3167", align 8 %m = alloca %Map_String_String*, align 8 - store %Map_String_String* %"$m_load_3121", %Map_String_String** %m, align 8 - %"$gasrem_3122" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3123" = icmp ugt i64 1, %"$gasrem_3122" - br i1 %"$gascmp_3123", label %"$out_of_gas_3124", label %"$have_gas_3125" + store %Map_String_String* %"$m_load_3168", %Map_String_String** %m, 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" -"$out_of_gas_3124": ; preds = %"$Some_3118" +"$out_of_gas_3171": ; preds = %"$Some_3165" call void @_out_of_gas() - br label %"$have_gas_3125" + br label %"$have_gas_3172" -"$have_gas_3125": ; preds = %"$out_of_gas_3124", %"$Some_3118" - %"$consume_3126" = sub i64 %"$gasrem_3122", 1 - store i64 %"$consume_3126", i64* @_gasrem, align 8 +"$have_gas_3172": ; preds = %"$out_of_gas_3171", %"$Some_3165" + %"$consume_3173" = sub i64 %"$gasrem_3169", 1 + store i64 %"$consume_3173", i64* @_gasrem, align 8 %m_size = alloca %Uint32, align 8 - %"$gasrem_3127" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3128" = icmp ugt i64 1, %"$gasrem_3127" - br i1 %"$gascmp_3128", label %"$out_of_gas_3129", label %"$have_gas_3130" + call void @llvm.dbg.declare(metadata %Uint32* %m_size, metadata !686, metadata !DIExpression()), !dbg !689 + %"$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_3129": ; preds = %"$have_gas_3125" +"$out_of_gas_3176": ; preds = %"$have_gas_3172" call void @_out_of_gas() - br label %"$have_gas_3130" + br label %"$have_gas_3177" -"$have_gas_3130": ; preds = %"$out_of_gas_3129", %"$have_gas_3125" - %"$consume_3131" = sub i64 %"$gasrem_3127", 1 - store i64 %"$consume_3131", i64* @_gasrem, align 8 - %"$m_3132" = load %Map_String_String*, %Map_String_String** %m, align 8 - %"$$m_3132_3133" = bitcast %Map_String_String* %"$m_3132" to i8* - %"$size_call_3134" = call %Uint32 @_size(i8* %"$$m_3132_3133"), !dbg !337 - store %Uint32 %"$size_call_3134", %Uint32* %m_size, align 4, !dbg !337 - %"$gasrem_3135" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3136" = icmp ugt i64 1, %"$gasrem_3135" - br i1 %"$gascmp_3136", label %"$out_of_gas_3137", label %"$have_gas_3138" +"$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 + %"$m_3179" = load %Map_String_String*, %Map_String_String** %m, align 8 + %"$$m_3179_3180" = bitcast %Map_String_String* %"$m_3179" to i8* + %"$size_call_3181" = call %Uint32 @_size(i8* %"$$m_3179_3180"), !dbg !690 + store %Uint32 %"$size_call_3181", %Uint32* %m_size, align 4, !dbg !690 + %"$gasrem_3182" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3183" = icmp ugt i64 1, %"$gasrem_3182" + br i1 %"$gascmp_3183", label %"$out_of_gas_3184", label %"$have_gas_3185" -"$out_of_gas_3137": ; preds = %"$have_gas_3130" +"$out_of_gas_3184": ; preds = %"$have_gas_3177" call void @_out_of_gas() - br label %"$have_gas_3138" + br label %"$have_gas_3185" -"$have_gas_3138": ; preds = %"$out_of_gas_3137", %"$have_gas_3130" - %"$consume_3139" = sub i64 %"$gasrem_3135", 1 - store i64 %"$consume_3139", i64* @_gasrem, align 8 +"$have_gas_3185": ; preds = %"$out_of_gas_3184", %"$have_gas_3177" + %"$consume_3186" = sub i64 %"$gasrem_3182", 1 + store i64 %"$consume_3186", i64* @_gasrem, align 8 %zero = alloca %Uint32, align 8 - %"$gasrem_3140" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3141" = icmp ugt i64 1, %"$gasrem_3140" - br i1 %"$gascmp_3141", label %"$out_of_gas_3142", label %"$have_gas_3143" + call void @llvm.dbg.declare(metadata %Uint32* %zero, metadata !691, metadata !DIExpression()), !dbg !692 + %"$gasrem_3187" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3188" = icmp ugt i64 1, %"$gasrem_3187" + br i1 %"$gascmp_3188", label %"$out_of_gas_3189", label %"$have_gas_3190" -"$out_of_gas_3142": ; preds = %"$have_gas_3138" +"$out_of_gas_3189": ; preds = %"$have_gas_3185" call void @_out_of_gas() - br label %"$have_gas_3143" + br label %"$have_gas_3190" -"$have_gas_3143": ; preds = %"$out_of_gas_3142", %"$have_gas_3138" - %"$consume_3144" = sub i64 %"$gasrem_3140", 1 - store i64 %"$consume_3144", i64* @_gasrem, align 8 - store %Uint32 zeroinitializer, %Uint32* %zero, align 4, !dbg !340 - %"$gasrem_3145" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3146" = icmp ugt i64 1, %"$gasrem_3145" - br i1 %"$gascmp_3146", label %"$out_of_gas_3147", label %"$have_gas_3148" +"$have_gas_3190": ; preds = %"$out_of_gas_3189", %"$have_gas_3185" + %"$consume_3191" = sub i64 %"$gasrem_3187", 1 + store i64 %"$consume_3191", i64* @_gasrem, align 8 + store %Uint32 zeroinitializer, %Uint32* %zero, align 4, !dbg !693 + %"$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" -"$out_of_gas_3147": ; preds = %"$have_gas_3143" +"$out_of_gas_3194": ; preds = %"$have_gas_3190" call void @_out_of_gas() - br label %"$have_gas_3148" + br label %"$have_gas_3195" -"$have_gas_3148": ; preds = %"$out_of_gas_3147", %"$have_gas_3143" - %"$consume_3149" = sub i64 %"$gasrem_3145", 1 - store i64 %"$consume_3149", i64* @_gasrem, align 8 +"$have_gas_3195": ; preds = %"$out_of_gas_3194", %"$have_gas_3190" + %"$consume_3196" = sub i64 %"$gasrem_3192", 1 + store i64 %"$consume_3196", i64* @_gasrem, align 8 %is_empty = alloca %TName_Bool*, align 8 - %"$gasrem_3150" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3151" = icmp ugt i64 4, %"$gasrem_3150" - br i1 %"$gascmp_3151", label %"$out_of_gas_3152", label %"$have_gas_3153" - -"$out_of_gas_3152": ; preds = %"$have_gas_3148" - call void @_out_of_gas() - br label %"$have_gas_3153" - -"$have_gas_3153": ; preds = %"$out_of_gas_3152", %"$have_gas_3148" - %"$consume_3154" = sub i64 %"$gasrem_3150", 4 - store i64 %"$consume_3154", i64* @_gasrem, align 8 - %"$execptr_load_3155" = load i8*, i8** @_execptr, align 8 - %"$m_size_3156" = load %Uint32, %Uint32* %m_size, align 4 - %"$zero_3157" = load %Uint32, %Uint32* %zero, align 4 - %"$eq_call_3158" = call %TName_Bool* @_eq_Uint32(i8* %"$execptr_load_3155", %Uint32 %"$m_size_3156", %Uint32 %"$zero_3157"), !dbg !341 - store %TName_Bool* %"$eq_call_3158", %TName_Bool** %is_empty, align 8, !dbg !341 - %"$gasrem_3160" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3161" = icmp ugt i64 2, %"$gasrem_3160" - br i1 %"$gascmp_3161", label %"$out_of_gas_3162", label %"$have_gas_3163" - -"$out_of_gas_3162": ; preds = %"$have_gas_3153" - call void @_out_of_gas() - br label %"$have_gas_3163" - -"$have_gas_3163": ; preds = %"$out_of_gas_3162", %"$have_gas_3153" - %"$consume_3164" = sub i64 %"$gasrem_3160", 2 - store i64 %"$consume_3164", i64* @_gasrem, align 8 - %"$is_empty_3166" = load %TName_Bool*, %TName_Bool** %is_empty, align 8 - %"$is_empty_tag_3167" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$is_empty_3166", i32 0, i32 0 - %"$is_empty_tag_3168" = load i8, i8* %"$is_empty_tag_3167", align 1 - switch i8 %"$is_empty_tag_3168", label %"$empty_default_3169" [ - i8 0, label %"$True_3170" - i8 1, label %"$False_3172" - ], !dbg !342 - -"$True_3170": ; preds = %"$have_gas_3163" - %"$is_empty_3171" = bitcast %TName_Bool* %"$is_empty_3166" to %CName_True* - br label %"$matchsucc_3165" - -"$False_3172": ; preds = %"$have_gas_3163" - %"$is_empty_3173" = bitcast %TName_Bool* %"$is_empty_3166" to %CName_False* - %"$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_3176": ; preds = %"$False_3172" - call void @_out_of_gas() - br label %"$have_gas_3177" - -"$have_gas_3177": ; preds = %"$out_of_gas_3176", %"$False_3172" - %"$consume_3178" = sub i64 %"$gasrem_3174", 1 - store i64 %"$consume_3178", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %is_empty, metadata !694, metadata !DIExpression()), !dbg !695 + %"$gasrem_3197" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3198" = icmp ugt i64 4, %"$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", 4 + store i64 %"$consume_3201", i64* @_gasrem, align 8 + %"$execptr_load_3202" = load i8*, i8** @_execptr, align 8 + %"$m_size_3203" = load %Uint32, %Uint32* %m_size, align 4 + %"$zero_3204" = load %Uint32, %Uint32* %zero, align 4 + %"$eq_call_3205" = call %TName_Bool* @_eq_Uint32(i8* %"$execptr_load_3202", %Uint32 %"$m_size_3203", %Uint32 %"$zero_3204"), !dbg !696 + store %TName_Bool* %"$eq_call_3205", %TName_Bool** %is_empty, align 8, !dbg !696 + %"$gasrem_3207" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3208" = icmp ugt i64 2, %"$gasrem_3207" + br i1 %"$gascmp_3208", label %"$out_of_gas_3209", label %"$have_gas_3210" + +"$out_of_gas_3209": ; preds = %"$have_gas_3200" + call void @_out_of_gas() + br label %"$have_gas_3210" + +"$have_gas_3210": ; preds = %"$out_of_gas_3209", %"$have_gas_3200" + %"$consume_3211" = sub i64 %"$gasrem_3207", 2 + store i64 %"$consume_3211", i64* @_gasrem, align 8 + %"$is_empty_3213" = load %TName_Bool*, %TName_Bool** %is_empty, align 8 + %"$is_empty_tag_3214" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$is_empty_3213", i32 0, i32 0 + %"$is_empty_tag_3215" = load i8, i8* %"$is_empty_tag_3214", align 1 + switch i8 %"$is_empty_tag_3215", label %"$empty_default_3216" [ + i8 0, label %"$True_3217" + i8 1, label %"$False_3219" + ], !dbg !697 + +"$True_3217": ; preds = %"$have_gas_3210" + %"$is_empty_3218" = bitcast %TName_Bool* %"$is_empty_3213" to %CName_True* + br label %"$matchsucc_3212" + +"$False_3219": ; preds = %"$have_gas_3210" + %"$is_empty_3220" = bitcast %TName_Bool* %"$is_empty_3213" to %CName_False* + %"$gasrem_3221" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3222" = icmp ugt i64 1, %"$gasrem_3221" + br i1 %"$gascmp_3222", label %"$out_of_gas_3223", label %"$have_gas_3224" + +"$out_of_gas_3223": ; preds = %"$False_3219" + call void @_out_of_gas() + br label %"$have_gas_3224" + +"$have_gas_3224": ; preds = %"$out_of_gas_3223", %"$False_3219" + %"$consume_3225" = sub i64 %"$gasrem_3221", 1 + store i64 %"$consume_3225", i64* @_gasrem, align 8 %msg = 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 = %"$have_gas_3177" - call void @_out_of_gas() - br label %"$have_gas_3182" - -"$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 - store %String { i8* getelementptr inbounds ([29 x i8], [29 x i8]* @"$stringlit_3184", i32 0, i32 0), i32 29 }, %String* %msg, align 8, !dbg !343 - %"$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_3187": ; preds = %"$have_gas_3182" - call void @_out_of_gas() - br label %"$have_gas_3188" - -"$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 - %"$fail_msg__origin_3190" = alloca [20 x i8], align 1 - store [20 x i8] %_origin, [20 x i8]* %"$fail_msg__origin_3190", align 1 - %"$fail_msg__sender_3191" = alloca [20 x i8], align 1 - store [20 x i8] %_sender, [20 x i8]* %"$fail_msg__sender_3191", align 1 - %"$tname_3192" = load %String, %String* %tname, align 8 - %"$msg_3193" = load %String, %String* %msg, align 8 - call void @"$fail_msg_292"(%Uint128 %_amount, [20 x i8]* %"$fail_msg__origin_3190", [20 x i8]* %"$fail_msg__sender_3191", %String %"$tname_3192", %String %"$msg_3193"), !dbg !346 - br label %"$matchsucc_3165" - -"$empty_default_3169": ; preds = %"$have_gas_3163" - br label %"$matchsucc_3165" - -"$matchsucc_3165": ; preds = %"$have_gas_3188", %"$True_3170", %"$empty_default_3169" - br label %"$matchsucc_3113" - -"$None_3194": ; preds = %"$have_gas_3111" - %"$mo_3195" = bitcast %"TName_Option_Map_(String)_(String)"* %"$mo_3114" to %"CName_None_Map_(String)_(String)"* - %"$gasrem_3196" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3197" = icmp ugt i64 1, %"$gasrem_3196" - br i1 %"$gascmp_3197", label %"$out_of_gas_3198", label %"$have_gas_3199" - -"$out_of_gas_3198": ; preds = %"$None_3194" - call void @_out_of_gas() - br label %"$have_gas_3199" - -"$have_gas_3199": ; preds = %"$out_of_gas_3198", %"$None_3194" - %"$consume_3200" = sub i64 %"$gasrem_3196", 1 - store i64 %"$consume_3200", i64* @_gasrem, align 8 - %"$fail__origin_3201" = alloca [20 x i8], align 1 - store [20 x i8] %_origin, [20 x i8]* %"$fail__origin_3201", align 1 - %"$fail__sender_3202" = alloca [20 x i8], align 1 - store [20 x i8] %_sender, [20 x i8]* %"$fail__sender_3202", align 1 - %"$tname_3203" = load %String, %String* %tname, align 8 - call void @"$fail_252"(%Uint128 %_amount, [20 x i8]* %"$fail__origin_3201", [20 x i8]* %"$fail__sender_3202", %String %"$tname_3203"), !dbg !347 - br label %"$matchsucc_3113" - -"$empty_default_3117": ; preds = %"$have_gas_3111" - br label %"$matchsucc_3113" - -"$matchsucc_3113": ; preds = %"$have_gas_3199", %"$matchsucc_3165", %"$empty_default_3117" - %"$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_3206": ; preds = %"$matchsucc_3113" - call void @_out_of_gas() - br label %"$have_gas_3207" - -"$have_gas_3207": ; preds = %"$out_of_gas_3206", %"$matchsucc_3113" - %"$consume_3208" = sub i64 %"$gasrem_3204", 1 - store i64 %"$consume_3208", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %String* %msg, metadata !698, metadata !DIExpression()), !dbg !701 + %"$gasrem_3226" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3227" = icmp ugt i64 1, %"$gasrem_3226" + br i1 %"$gascmp_3227", label %"$out_of_gas_3228", label %"$have_gas_3229" + +"$out_of_gas_3228": ; preds = %"$have_gas_3224" + call void @_out_of_gas() + br label %"$have_gas_3229" + +"$have_gas_3229": ; preds = %"$out_of_gas_3228", %"$have_gas_3224" + %"$consume_3230" = sub i64 %"$gasrem_3226", 1 + store i64 %"$consume_3230", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([29 x i8], [29 x i8]* @"$stringlit_3231", i32 0, i32 0), i32 29 }, %String* %msg, align 8, !dbg !702 + %"$gasrem_3232" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3233" = icmp ugt i64 1, %"$gasrem_3232" + br i1 %"$gascmp_3233", label %"$out_of_gas_3234", label %"$have_gas_3235" + +"$out_of_gas_3234": ; preds = %"$have_gas_3229" + call void @_out_of_gas() + br label %"$have_gas_3235" + +"$have_gas_3235": ; preds = %"$out_of_gas_3234", %"$have_gas_3229" + %"$consume_3236" = sub i64 %"$gasrem_3232", 1 + store i64 %"$consume_3236", i64* @_gasrem, align 8 + %"$fail_msg__origin_3237" = alloca [20 x i8], align 1 + store [20 x i8] %_origin, [20 x i8]* %"$fail_msg__origin_3237", align 1 + %"$fail_msg__sender_3238" = alloca [20 x i8], align 1 + store [20 x i8] %_sender, [20 x i8]* %"$fail_msg__sender_3238", align 1 + %"$tname_3239" = load %String, %String* %tname, align 8 + %"$msg_3240" = load %String, %String* %msg, align 8 + call void @"$fail_msg_298"(%Uint128 %_amount, [20 x i8]* %"$fail_msg__origin_3237", [20 x i8]* %"$fail_msg__sender_3238", %String %"$tname_3239", %String %"$msg_3240"), !dbg !703 + br label %"$matchsucc_3212" + +"$empty_default_3216": ; preds = %"$have_gas_3210" + br label %"$matchsucc_3212" + +"$matchsucc_3212": ; preds = %"$have_gas_3235", %"$True_3217", %"$empty_default_3216" + br label %"$matchsucc_3160" + +"$None_3241": ; preds = %"$have_gas_3158" + %"$mo_3242" = bitcast %"TName_Option_Map_(String)_(String)"* %"$mo_3161" to %"CName_None_Map_(String)_(String)"* + %"$gasrem_3243" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3244" = icmp ugt i64 1, %"$gasrem_3243" + br i1 %"$gascmp_3244", label %"$out_of_gas_3245", label %"$have_gas_3246" + +"$out_of_gas_3245": ; preds = %"$None_3241" + call void @_out_of_gas() + br label %"$have_gas_3246" + +"$have_gas_3246": ; preds = %"$out_of_gas_3245", %"$None_3241" + %"$consume_3247" = sub i64 %"$gasrem_3243", 1 + store i64 %"$consume_3247", i64* @_gasrem, align 8 + %"$fail__origin_3248" = alloca [20 x i8], align 1 + store [20 x i8] %_origin, [20 x i8]* %"$fail__origin_3248", align 1 + %"$fail__sender_3249" = alloca [20 x i8], align 1 + store [20 x i8] %_sender, [20 x i8]* %"$fail__sender_3249", align 1 + %"$tname_3250" = load %String, %String* %tname, align 8 + call void @"$fail_254"(%Uint128 %_amount, [20 x i8]* %"$fail__origin_3248", [20 x i8]* %"$fail__sender_3249", %String %"$tname_3250"), !dbg !704 + br label %"$matchsucc_3160" + +"$empty_default_3164": ; preds = %"$have_gas_3158" + br label %"$matchsucc_3160" + +"$matchsucc_3160": ; preds = %"$have_gas_3246", %"$matchsucc_3212", %"$empty_default_3164" + %"$gasrem_3251" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3252" = icmp ugt i64 1, %"$gasrem_3251" + br i1 %"$gascmp_3252", label %"$out_of_gas_3253", label %"$have_gas_3254" + +"$out_of_gas_3253": ; preds = %"$matchsucc_3160" + call void @_out_of_gas() + br label %"$have_gas_3254" + +"$have_gas_3254": ; preds = %"$out_of_gas_3253", %"$matchsucc_3160" + %"$consume_3255" = sub i64 %"$gasrem_3251", 1 + store i64 %"$consume_3255", i64* @_gasrem, align 8 %m3 = alloca %Map_String_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" + call void @llvm.dbg.declare(metadata %Map_String_String** %m3, metadata !706, metadata !DIExpression()), !dbg !707 + %"$gasrem_3256" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3257" = icmp ugt i64 1, %"$gasrem_3256" + br i1 %"$gascmp_3257", label %"$out_of_gas_3258", label %"$have_gas_3259" -"$out_of_gas_3211": ; preds = %"$have_gas_3207" +"$out_of_gas_3258": ; preds = %"$have_gas_3254" call void @_out_of_gas() - br label %"$have_gas_3212" + br label %"$have_gas_3259" -"$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 - %"$execptr_load_3214" = load i8*, i8** @_execptr, align 8 - %"$_new_empty_map_call_3215" = call i8* @_new_empty_map(i8* %"$execptr_load_3214") - %"$_new_empty_map_3216" = bitcast i8* %"$_new_empty_map_call_3215" to %Map_String_String* - store %Map_String_String* %"$_new_empty_map_3216", %Map_String_String** %m3, 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" +"$have_gas_3259": ; preds = %"$out_of_gas_3258", %"$have_gas_3254" + %"$consume_3260" = sub i64 %"$gasrem_3256", 1 + store i64 %"$consume_3260", i64* @_gasrem, align 8 + %"$execptr_load_3261" = load i8*, i8** @_execptr, align 8 + %"$_new_empty_map_call_3262" = call i8* @_new_empty_map(i8* %"$execptr_load_3261") + %"$_new_empty_map_3263" = bitcast i8* %"$_new_empty_map_call_3262" to %Map_String_String* + store %Map_String_String* %"$_new_empty_map_3263", %Map_String_String** %m3, align 8, !dbg !708 + %"$gasrem_3264" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3265" = icmp ugt i64 1, %"$gasrem_3264" + br i1 %"$gascmp_3265", label %"$out_of_gas_3266", label %"$have_gas_3267" -"$out_of_gas_3219": ; preds = %"$have_gas_3212" +"$out_of_gas_3266": ; preds = %"$have_gas_3259" call void @_out_of_gas() - br label %"$have_gas_3220" + br label %"$have_gas_3267" -"$have_gas_3220": ; preds = %"$out_of_gas_3219", %"$have_gas_3212" - %"$consume_3221" = sub i64 %"$gasrem_3217", 1 - store i64 %"$consume_3221", i64* @_gasrem, align 8 +"$have_gas_3267": ; preds = %"$out_of_gas_3266", %"$have_gas_3259" + %"$consume_3268" = sub i64 %"$gasrem_3264", 1 + store i64 %"$consume_3268", i64* @_gasrem, align 8 %m2 = alloca %"Map_String_Map_(String)_(String)"*, align 8 - %"$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" + call void @llvm.dbg.declare(metadata %"Map_String_Map_(String)_(String)"** %m2, metadata !709, metadata !DIExpression()), !dbg !710 + %"$gasrem_3269" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3270" = icmp ugt i64 1, %"$gasrem_3269" + br i1 %"$gascmp_3270", label %"$out_of_gas_3271", label %"$have_gas_3272" -"$out_of_gas_3224": ; preds = %"$have_gas_3220" +"$out_of_gas_3271": ; preds = %"$have_gas_3267" call void @_out_of_gas() - br label %"$have_gas_3225" + br label %"$have_gas_3272" -"$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 +"$have_gas_3272": ; preds = %"$out_of_gas_3271", %"$have_gas_3267" + %"$consume_3273" = sub i64 %"$gasrem_3269", 1 + store i64 %"$consume_3273", i64* @_gasrem, align 8 %key2a = alloca %String, align 8 - %"$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" + call void @llvm.dbg.declare(metadata %String* %key2a, metadata !711, metadata !DIExpression()), !dbg !712 + %"$gasrem_3274" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3275" = icmp ugt i64 1, %"$gasrem_3274" + br i1 %"$gascmp_3275", label %"$out_of_gas_3276", label %"$have_gas_3277" -"$out_of_gas_3229": ; preds = %"$have_gas_3225" +"$out_of_gas_3276": ; preds = %"$have_gas_3272" call void @_out_of_gas() - br label %"$have_gas_3230" + br label %"$have_gas_3277" -"$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 - store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_3232", i32 0, i32 0), i32 5 }, %String* %key2a, align 8, !dbg !350 - %"$gasrem_3233" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3234" = icmp ugt i64 1, %"$gasrem_3233" - br i1 %"$gascmp_3234", label %"$out_of_gas_3235", label %"$have_gas_3236" +"$have_gas_3277": ; preds = %"$out_of_gas_3276", %"$have_gas_3272" + %"$consume_3278" = sub i64 %"$gasrem_3274", 1 + store i64 %"$consume_3278", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_3279", i32 0, i32 0), i32 5 }, %String* %key2a, align 8, !dbg !713 + %"$gasrem_3280" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3281" = icmp ugt i64 1, %"$gasrem_3280" + br i1 %"$gascmp_3281", label %"$out_of_gas_3282", label %"$have_gas_3283" -"$out_of_gas_3235": ; preds = %"$have_gas_3230" +"$out_of_gas_3282": ; preds = %"$have_gas_3277" call void @_out_of_gas() - br label %"$have_gas_3236" + br label %"$have_gas_3283" -"$have_gas_3236": ; preds = %"$out_of_gas_3235", %"$have_gas_3230" - %"$consume_3237" = sub i64 %"$gasrem_3233", 1 - store i64 %"$consume_3237", i64* @_gasrem, align 8 +"$have_gas_3283": ; preds = %"$out_of_gas_3282", %"$have_gas_3277" + %"$consume_3284" = sub i64 %"$gasrem_3280", 1 + store i64 %"$consume_3284", i64* @_gasrem, align 8 %e = alloca %"Map_String_Map_(String)_(String)"*, align 8 - %"$gasrem_3238" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3239" = icmp ugt i64 1, %"$gasrem_3238" - br i1 %"$gascmp_3239", label %"$out_of_gas_3240", label %"$have_gas_3241" - -"$out_of_gas_3240": ; preds = %"$have_gas_3236" - call void @_out_of_gas() - br label %"$have_gas_3241" - -"$have_gas_3241": ; preds = %"$out_of_gas_3240", %"$have_gas_3236" - %"$consume_3242" = sub i64 %"$gasrem_3238", 1 - store i64 %"$consume_3242", i64* @_gasrem, align 8 - %"$execptr_load_3243" = load i8*, i8** @_execptr, align 8 - %"$_new_empty_map_call_3244" = call i8* @_new_empty_map(i8* %"$execptr_load_3243") - %"$_new_empty_map_3245" = bitcast i8* %"$_new_empty_map_call_3244" to %"Map_String_Map_(String)_(String)"* - store %"Map_String_Map_(String)_(String)"* %"$_new_empty_map_3245", %"Map_String_Map_(String)_(String)"** %e, align 8, !dbg !351 - %"$e_3246" = load %"Map_String_Map_(String)_(String)"*, %"Map_String_Map_(String)_(String)"** %e, align 8 - %"$$e_3246_3247" = bitcast %"Map_String_Map_(String)_(String)"* %"$e_3246" to i8* - %"$_lengthof_call_3248" = call i64 @_lengthof(%_TyDescrTy_Typ* @"$TyDescr_Map_76", i8* %"$$e_3246_3247") - %"$gasadd_3249" = add i64 1, %"$_lengthof_call_3248" - %"$gasrem_3250" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3251" = icmp ugt i64 %"$gasadd_3249", %"$gasrem_3250" - br i1 %"$gascmp_3251", label %"$out_of_gas_3252", label %"$have_gas_3253" - -"$out_of_gas_3252": ; preds = %"$have_gas_3241" - call void @_out_of_gas() - br label %"$have_gas_3253" - -"$have_gas_3253": ; preds = %"$out_of_gas_3252", %"$have_gas_3241" - %"$consume_3254" = sub i64 %"$gasrem_3250", %"$gasadd_3249" - store i64 %"$consume_3254", i64* @_gasrem, align 8 - %"$execptr_load_3255" = load i8*, i8** @_execptr, align 8 - %"$e_3256" = load %"Map_String_Map_(String)_(String)"*, %"Map_String_Map_(String)_(String)"** %e, align 8 - %"$$e_3256_3257" = bitcast %"Map_String_Map_(String)_(String)"* %"$e_3256" to i8* - %"$put_key2a_3258" = alloca %String, align 8 - %"$key2a_3259" = load %String, %String* %key2a, align 8 - store %String %"$key2a_3259", %String* %"$put_key2a_3258", align 8 - %"$$put_key2a_3258_3260" = bitcast %String* %"$put_key2a_3258" to i8* - %"$m3_3261" = load %Map_String_String*, %Map_String_String** %m3, align 8 - %"$$m3_3261_3262" = bitcast %Map_String_String* %"$m3_3261" to i8* - %"$put_call_3263" = call i8* @_put(i8* %"$execptr_load_3255", %_TyDescrTy_Typ* @"$TyDescr_Map_76", i8* %"$$e_3256_3257", i8* %"$$put_key2a_3258_3260", i8* %"$$m3_3261_3262"), !dbg !352 - %"$put_3264" = bitcast i8* %"$put_call_3263" to %"Map_String_Map_(String)_(String)"* - store %"Map_String_Map_(String)_(String)"* %"$put_3264", %"Map_String_Map_(String)_(String)"** %m2, align 8, !dbg !352 - %"$gasrem_3265" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3266" = icmp ugt i64 1, %"$gasrem_3265" - br i1 %"$gascmp_3266", label %"$out_of_gas_3267", label %"$have_gas_3268" - -"$out_of_gas_3267": ; preds = %"$have_gas_3253" - call void @_out_of_gas() - br label %"$have_gas_3268" - -"$have_gas_3268": ; preds = %"$out_of_gas_3267", %"$have_gas_3253" - %"$consume_3269" = sub i64 %"$gasrem_3265", 1 - store i64 %"$consume_3269", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %"Map_String_Map_(String)_(String)"** %e, metadata !714, metadata !DIExpression()), !dbg !715 + %"$gasrem_3285" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3286" = icmp ugt i64 1, %"$gasrem_3285" + br i1 %"$gascmp_3286", label %"$out_of_gas_3287", label %"$have_gas_3288" + +"$out_of_gas_3287": ; preds = %"$have_gas_3283" + call void @_out_of_gas() + br label %"$have_gas_3288" + +"$have_gas_3288": ; preds = %"$out_of_gas_3287", %"$have_gas_3283" + %"$consume_3289" = sub i64 %"$gasrem_3285", 1 + store i64 %"$consume_3289", i64* @_gasrem, align 8 + %"$execptr_load_3290" = load i8*, i8** @_execptr, align 8 + %"$_new_empty_map_call_3291" = call i8* @_new_empty_map(i8* %"$execptr_load_3290") + %"$_new_empty_map_3292" = bitcast i8* %"$_new_empty_map_call_3291" to %"Map_String_Map_(String)_(String)"* + store %"Map_String_Map_(String)_(String)"* %"$_new_empty_map_3292", %"Map_String_Map_(String)_(String)"** %e, align 8, !dbg !716 + %"$e_3293" = load %"Map_String_Map_(String)_(String)"*, %"Map_String_Map_(String)_(String)"** %e, align 8 + %"$$e_3293_3294" = bitcast %"Map_String_Map_(String)_(String)"* %"$e_3293" to i8* + %"$_lengthof_call_3295" = call i64 @_lengthof(%_TyDescrTy_Typ* @"$TyDescr_Map_76", i8* %"$$e_3293_3294") + %"$gasadd_3296" = add i64 1, %"$_lengthof_call_3295" + %"$gasrem_3297" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3298" = icmp ugt i64 %"$gasadd_3296", %"$gasrem_3297" + br i1 %"$gascmp_3298", label %"$out_of_gas_3299", label %"$have_gas_3300" + +"$out_of_gas_3299": ; preds = %"$have_gas_3288" + call void @_out_of_gas() + br label %"$have_gas_3300" + +"$have_gas_3300": ; preds = %"$out_of_gas_3299", %"$have_gas_3288" + %"$consume_3301" = sub i64 %"$gasrem_3297", %"$gasadd_3296" + store i64 %"$consume_3301", i64* @_gasrem, align 8 + %"$execptr_load_3302" = load i8*, i8** @_execptr, align 8 + %"$e_3303" = load %"Map_String_Map_(String)_(String)"*, %"Map_String_Map_(String)_(String)"** %e, align 8 + %"$$e_3303_3304" = bitcast %"Map_String_Map_(String)_(String)"* %"$e_3303" to i8* + %"$put_key2a_3305" = alloca %String, align 8 + %"$key2a_3306" = load %String, %String* %key2a, align 8 + store %String %"$key2a_3306", %String* %"$put_key2a_3305", align 8 + %"$$put_key2a_3305_3307" = bitcast %String* %"$put_key2a_3305" to i8* + %"$m3_3308" = load %Map_String_String*, %Map_String_String** %m3, align 8 + %"$$m3_3308_3309" = bitcast %Map_String_String* %"$m3_3308" to i8* + %"$put_call_3310" = call i8* @_put(i8* %"$execptr_load_3302", %_TyDescrTy_Typ* @"$TyDescr_Map_76", i8* %"$$e_3303_3304", i8* %"$$put_key2a_3305_3307", i8* %"$$m3_3308_3309"), !dbg !717 + %"$put_3311" = bitcast i8* %"$put_call_3310" to %"Map_String_Map_(String)_(String)"* + store %"Map_String_Map_(String)_(String)"* %"$put_3311", %"Map_String_Map_(String)_(String)"** %m2, align 8, !dbg !717 + %"$gasrem_3312" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3313" = icmp ugt i64 1, %"$gasrem_3312" + br i1 %"$gascmp_3313", label %"$out_of_gas_3314", label %"$have_gas_3315" + +"$out_of_gas_3314": ; preds = %"$have_gas_3300" + call void @_out_of_gas() + br label %"$have_gas_3315" + +"$have_gas_3315": ; preds = %"$out_of_gas_3314", %"$have_gas_3300" + %"$consume_3316" = sub i64 %"$gasrem_3312", 1 + store i64 %"$consume_3316", i64* @_gasrem, align 8 %"$m3_14" = alloca %"Map_String_Map_(String)_(Map_(String)_(String))"*, align 8 - %"$gasrem_3270" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3271" = icmp ugt i64 1, %"$gasrem_3270" - br i1 %"$gascmp_3271", label %"$out_of_gas_3272", label %"$have_gas_3273" + call void @llvm.dbg.declare(metadata %"Map_String_Map_(String)_(Map_(String)_(String))"** %"$m3_14", metadata !718, metadata !DIExpression()), !dbg !719 + %"$gasrem_3317" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3318" = icmp ugt i64 1, %"$gasrem_3317" + br i1 %"$gascmp_3318", label %"$out_of_gas_3319", label %"$have_gas_3320" -"$out_of_gas_3272": ; preds = %"$have_gas_3268" +"$out_of_gas_3319": ; preds = %"$have_gas_3315" call void @_out_of_gas() - br label %"$have_gas_3273" + br label %"$have_gas_3320" -"$have_gas_3273": ; preds = %"$out_of_gas_3272", %"$have_gas_3268" - %"$consume_3274" = sub i64 %"$gasrem_3270", 1 - store i64 %"$consume_3274", i64* @_gasrem, align 8 +"$have_gas_3320": ; preds = %"$out_of_gas_3319", %"$have_gas_3315" + %"$consume_3321" = sub i64 %"$gasrem_3317", 1 + store i64 %"$consume_3321", i64* @_gasrem, align 8 %"$e_13" = alloca %"Map_String_Map_(String)_(Map_(String)_(String))"*, align 8 - %"$gasrem_3275" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3276" = icmp ugt i64 1, %"$gasrem_3275" - br i1 %"$gascmp_3276", label %"$out_of_gas_3277", label %"$have_gas_3278" - -"$out_of_gas_3277": ; preds = %"$have_gas_3273" - call void @_out_of_gas() - br label %"$have_gas_3278" - -"$have_gas_3278": ; preds = %"$out_of_gas_3277", %"$have_gas_3273" - %"$consume_3279" = sub i64 %"$gasrem_3275", 1 - store i64 %"$consume_3279", i64* @_gasrem, align 8 - %"$execptr_load_3280" = load i8*, i8** @_execptr, align 8 - %"$_new_empty_map_call_3281" = call i8* @_new_empty_map(i8* %"$execptr_load_3280") - %"$_new_empty_map_3282" = bitcast i8* %"$_new_empty_map_call_3281" to %"Map_String_Map_(String)_(Map_(String)_(String))"* - store %"Map_String_Map_(String)_(Map_(String)_(String))"* %"$_new_empty_map_3282", %"Map_String_Map_(String)_(Map_(String)_(String))"** %"$e_13", align 8, !dbg !353 - %"$$e_13_3283" = load %"Map_String_Map_(String)_(Map_(String)_(String))"*, %"Map_String_Map_(String)_(Map_(String)_(String))"** %"$e_13", align 8 - %"$$$e_13_3283_3284" = bitcast %"Map_String_Map_(String)_(Map_(String)_(String))"* %"$$e_13_3283" to i8* - %"$_lengthof_call_3285" = call i64 @_lengthof(%_TyDescrTy_Typ* @"$TyDescr_Map_75", i8* %"$$$e_13_3283_3284") - %"$gasadd_3286" = add i64 1, %"$_lengthof_call_3285" - %"$gasrem_3287" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3288" = icmp ugt i64 %"$gasadd_3286", %"$gasrem_3287" - br i1 %"$gascmp_3288", label %"$out_of_gas_3289", label %"$have_gas_3290" - -"$out_of_gas_3289": ; preds = %"$have_gas_3278" - call void @_out_of_gas() - br label %"$have_gas_3290" - -"$have_gas_3290": ; preds = %"$out_of_gas_3289", %"$have_gas_3278" - %"$consume_3291" = sub i64 %"$gasrem_3287", %"$gasadd_3286" - store i64 %"$consume_3291", i64* @_gasrem, align 8 - %"$execptr_load_3292" = load i8*, i8** @_execptr, align 8 - %"$$e_13_3293" = load %"Map_String_Map_(String)_(Map_(String)_(String))"*, %"Map_String_Map_(String)_(Map_(String)_(String))"** %"$e_13", align 8 - %"$$$e_13_3293_3294" = bitcast %"Map_String_Map_(String)_(Map_(String)_(String))"* %"$$e_13_3293" to i8* - %"$put_key1a_3295" = alloca %String, align 8 - %"$key1a_3296" = load %String, %String* %key1a, align 8 - store %String %"$key1a_3296", %String* %"$put_key1a_3295", align 8 - %"$$put_key1a_3295_3297" = bitcast %String* %"$put_key1a_3295" to i8* - %"$m2_3298" = load %"Map_String_Map_(String)_(String)"*, %"Map_String_Map_(String)_(String)"** %m2, align 8 - %"$$m2_3298_3299" = bitcast %"Map_String_Map_(String)_(String)"* %"$m2_3298" to i8* - %"$put_call_3300" = call i8* @_put(i8* %"$execptr_load_3292", %_TyDescrTy_Typ* @"$TyDescr_Map_75", i8* %"$$$e_13_3293_3294", i8* %"$$put_key1a_3295_3297", i8* %"$$m2_3298_3299"), !dbg !354 - %"$put_3301" = bitcast i8* %"$put_call_3300" to %"Map_String_Map_(String)_(Map_(String)_(String))"* - store %"Map_String_Map_(String)_(Map_(String)_(String))"* %"$put_3301", %"Map_String_Map_(String)_(Map_(String)_(String))"** %"$m3_14", align 8, !dbg !354 - %"$$m3_14_3302" = load %"Map_String_Map_(String)_(Map_(String)_(String))"*, %"Map_String_Map_(String)_(Map_(String)_(String))"** %"$m3_14", align 8 - %"$$$m3_14_3302_3303" = bitcast %"Map_String_Map_(String)_(Map_(String)_(String))"* %"$$m3_14_3302" to i8* - %"$_literal_cost_call_3304" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Map_75", i8* %"$$$m3_14_3302_3303") - %"$gasrem_3305" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3306" = icmp ugt i64 %"$_literal_cost_call_3304", %"$gasrem_3305" - br i1 %"$gascmp_3306", label %"$out_of_gas_3307", label %"$have_gas_3308" - -"$out_of_gas_3307": ; preds = %"$have_gas_3290" - call void @_out_of_gas() - br label %"$have_gas_3308" - -"$have_gas_3308": ; preds = %"$out_of_gas_3307", %"$have_gas_3290" - %"$consume_3309" = sub i64 %"$gasrem_3305", %"$_literal_cost_call_3304" - store i64 %"$consume_3309", i64* @_gasrem, align 8 - %"$execptr_load_3310" = load i8*, i8** @_execptr, align 8 - %"$$m3_14_3312" = load %"Map_String_Map_(String)_(Map_(String)_(String))"*, %"Map_String_Map_(String)_(Map_(String)_(String))"** %"$m3_14", align 8 - %"$update_value_3313" = bitcast %"Map_String_Map_(String)_(Map_(String)_(String))"* %"$$m3_14_3312" to i8* - call void @_update_field(i8* %"$execptr_load_3310", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m3_3311", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_75", i32 0, i8* null, i8* %"$update_value_3313"), !dbg !355 + call void @llvm.dbg.declare(metadata %"Map_String_Map_(String)_(Map_(String)_(String))"** %"$e_13", metadata !720, metadata !DIExpression()), !dbg !721 + %"$gasrem_3322" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3323" = icmp ugt i64 1, %"$gasrem_3322" + br i1 %"$gascmp_3323", label %"$out_of_gas_3324", label %"$have_gas_3325" + +"$out_of_gas_3324": ; preds = %"$have_gas_3320" + call void @_out_of_gas() + br label %"$have_gas_3325" + +"$have_gas_3325": ; preds = %"$out_of_gas_3324", %"$have_gas_3320" + %"$consume_3326" = sub i64 %"$gasrem_3322", 1 + store i64 %"$consume_3326", i64* @_gasrem, align 8 + %"$execptr_load_3327" = load i8*, i8** @_execptr, align 8 + %"$_new_empty_map_call_3328" = call i8* @_new_empty_map(i8* %"$execptr_load_3327") + %"$_new_empty_map_3329" = bitcast i8* %"$_new_empty_map_call_3328" to %"Map_String_Map_(String)_(Map_(String)_(String))"* + store %"Map_String_Map_(String)_(Map_(String)_(String))"* %"$_new_empty_map_3329", %"Map_String_Map_(String)_(Map_(String)_(String))"** %"$e_13", align 8, !dbg !722 + %"$$e_13_3330" = load %"Map_String_Map_(String)_(Map_(String)_(String))"*, %"Map_String_Map_(String)_(Map_(String)_(String))"** %"$e_13", align 8 + %"$$$e_13_3330_3331" = bitcast %"Map_String_Map_(String)_(Map_(String)_(String))"* %"$$e_13_3330" to i8* + %"$_lengthof_call_3332" = call i64 @_lengthof(%_TyDescrTy_Typ* @"$TyDescr_Map_75", i8* %"$$$e_13_3330_3331") + %"$gasadd_3333" = add i64 1, %"$_lengthof_call_3332" + %"$gasrem_3334" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3335" = icmp ugt i64 %"$gasadd_3333", %"$gasrem_3334" + br i1 %"$gascmp_3335", label %"$out_of_gas_3336", label %"$have_gas_3337" + +"$out_of_gas_3336": ; preds = %"$have_gas_3325" + call void @_out_of_gas() + br label %"$have_gas_3337" + +"$have_gas_3337": ; preds = %"$out_of_gas_3336", %"$have_gas_3325" + %"$consume_3338" = sub i64 %"$gasrem_3334", %"$gasadd_3333" + store i64 %"$consume_3338", i64* @_gasrem, align 8 + %"$execptr_load_3339" = load i8*, i8** @_execptr, align 8 + %"$$e_13_3340" = load %"Map_String_Map_(String)_(Map_(String)_(String))"*, %"Map_String_Map_(String)_(Map_(String)_(String))"** %"$e_13", align 8 + %"$$$e_13_3340_3341" = bitcast %"Map_String_Map_(String)_(Map_(String)_(String))"* %"$$e_13_3340" to i8* + %"$put_key1a_3342" = alloca %String, align 8 + %"$key1a_3343" = load %String, %String* %key1a, align 8 + store %String %"$key1a_3343", %String* %"$put_key1a_3342", align 8 + %"$$put_key1a_3342_3344" = bitcast %String* %"$put_key1a_3342" to i8* + %"$m2_3345" = load %"Map_String_Map_(String)_(String)"*, %"Map_String_Map_(String)_(String)"** %m2, align 8 + %"$$m2_3345_3346" = bitcast %"Map_String_Map_(String)_(String)"* %"$m2_3345" to i8* + %"$put_call_3347" = call i8* @_put(i8* %"$execptr_load_3339", %_TyDescrTy_Typ* @"$TyDescr_Map_75", i8* %"$$$e_13_3340_3341", i8* %"$$put_key1a_3342_3344", i8* %"$$m2_3345_3346"), !dbg !723 + %"$put_3348" = bitcast i8* %"$put_call_3347" to %"Map_String_Map_(String)_(Map_(String)_(String))"* + store %"Map_String_Map_(String)_(Map_(String)_(String))"* %"$put_3348", %"Map_String_Map_(String)_(Map_(String)_(String))"** %"$m3_14", align 8, !dbg !723 + %"$$m3_14_3349" = load %"Map_String_Map_(String)_(Map_(String)_(String))"*, %"Map_String_Map_(String)_(Map_(String)_(String))"** %"$m3_14", align 8 + %"$$$m3_14_3349_3350" = bitcast %"Map_String_Map_(String)_(Map_(String)_(String))"* %"$$m3_14_3349" to i8* + %"$_literal_cost_call_3351" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Map_75", i8* %"$$$m3_14_3349_3350") + %"$gasrem_3352" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3353" = icmp ugt i64 %"$_literal_cost_call_3351", %"$gasrem_3352" + br i1 %"$gascmp_3353", label %"$out_of_gas_3354", label %"$have_gas_3355" + +"$out_of_gas_3354": ; preds = %"$have_gas_3337" + call void @_out_of_gas() + br label %"$have_gas_3355" + +"$have_gas_3355": ; preds = %"$out_of_gas_3354", %"$have_gas_3337" + %"$consume_3356" = sub i64 %"$gasrem_3352", %"$_literal_cost_call_3351" + store i64 %"$consume_3356", i64* @_gasrem, align 8 + %"$execptr_load_3357" = load i8*, i8** @_execptr, align 8 + %"$$m3_14_3359" = load %"Map_String_Map_(String)_(Map_(String)_(String))"*, %"Map_String_Map_(String)_(Map_(String)_(String))"** %"$m3_14", align 8 + %"$update_value_3360" = bitcast %"Map_String_Map_(String)_(Map_(String)_(String))"* %"$$m3_14_3359" to i8* + call void @_update_field(i8* %"$execptr_load_3357", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m3_3358", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_75", i32 0, i8* null, i8* %"$update_value_3360"), !dbg !724 ret void } -define void @t13(i8* %0) !dbg !356 { +define void @t13(i8* %0) !dbg !725 { entry: - %"$_amount_3315" = getelementptr i8, i8* %0, i32 0 - %"$_amount_3316" = bitcast i8* %"$_amount_3315" to %Uint128* - %_amount = load %Uint128, %Uint128* %"$_amount_3316", align 8 - %"$_origin_3317" = getelementptr i8, i8* %0, i32 16 - %"$_origin_3318" = bitcast i8* %"$_origin_3317" to [20 x i8]* - %"$_sender_3319" = getelementptr i8, i8* %0, i32 36 - %"$_sender_3320" = bitcast i8* %"$_sender_3319" to [20 x i8]* - call void @"$t13_3063"(%Uint128 %_amount, [20 x i8]* %"$_origin_3318", [20 x i8]* %"$_sender_3320"), !dbg !357 + %"$_amount_3365" = getelementptr i8, i8* %0, i32 0 + %"$_amount_3366" = bitcast i8* %"$_amount_3365" to %Uint128* + %_amount = load %Uint128, %Uint128* %"$_amount_3366", align 8 + %"$_origin_3367" = getelementptr i8, i8* %0, i32 16 + %"$_origin_3368" = bitcast i8* %"$_origin_3367" to [20 x i8]* + %"$_sender_3369" = getelementptr i8, i8* %0, i32 36 + %"$_sender_3370" = bitcast i8* %"$_sender_3369" to [20 x i8]* + call void @"$t13_3110"(%Uint128 %_amount, [20 x i8]* %"$_origin_3368", [20 x i8]* %"$_sender_3370"), !dbg !726 ret void } -define internal void @"$t14_3321"(%Uint128 %_amount, [20 x i8]* %"$_origin_3322", [20 x i8]* %"$_sender_3323") !dbg !358 { +define internal void @"$t14_3371"(%Uint128 %_amount, [20 x i8]* %"$_origin_3372", [20 x i8]* %"$_sender_3373") !dbg !727 { entry: - %_origin = load [20 x i8], [20 x i8]* %"$_origin_3322", align 1 - %_sender = load [20 x i8], [20 x i8]* %"$_sender_3323", align 1 - %"$gasrem_3324" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3325" = icmp ugt i64 1, %"$gasrem_3324" - br i1 %"$gascmp_3325", label %"$out_of_gas_3326", label %"$have_gas_3327" + %"$_sender_3488" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_sender_3373", [20 x i8]** %"$_sender_3488", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_sender_3488", metadata !728, metadata !DIExpression()), !dbg !729 + %"$_origin_3487" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_origin_3372", [20 x i8]** %"$_origin_3487", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_origin_3487", metadata !730, metadata !DIExpression()), !dbg !729 + %"$_amount_3486" = alloca %Uint128, align 8 + store %Uint128 %_amount, %Uint128* %"$_amount_3486", align 8 + call void @llvm.dbg.declare(metadata %Uint128* %"$_amount_3486", metadata !731, metadata !DIExpression()), !dbg !729 + %_origin = load [20 x i8], [20 x i8]* %"$_origin_3372", align 1 + %_sender = load [20 x i8], [20 x i8]* %"$_sender_3373", align 1 + %"$gasrem_3374" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3375" = icmp ugt i64 1, %"$gasrem_3374" + br i1 %"$gascmp_3375", label %"$out_of_gas_3376", label %"$have_gas_3377" -"$out_of_gas_3326": ; preds = %entry +"$out_of_gas_3376": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_3327" + br label %"$have_gas_3377" -"$have_gas_3327": ; preds = %"$out_of_gas_3326", %entry - %"$consume_3328" = sub i64 %"$gasrem_3324", 1 - store i64 %"$consume_3328", i64* @_gasrem, align 8 +"$have_gas_3377": ; preds = %"$out_of_gas_3376", %entry + %"$consume_3378" = sub i64 %"$gasrem_3374", 1 + store i64 %"$consume_3378", i64* @_gasrem, align 8 %tname = alloca %String, align 8 - %"$gasrem_3329" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3330" = icmp ugt i64 1, %"$gasrem_3329" - br i1 %"$gascmp_3330", label %"$out_of_gas_3331", label %"$have_gas_3332" + call void @llvm.dbg.declare(metadata %String* %tname, metadata !732, metadata !DIExpression()), !dbg !733 + %"$gasrem_3379" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3380" = icmp ugt i64 1, %"$gasrem_3379" + br i1 %"$gascmp_3380", label %"$out_of_gas_3381", label %"$have_gas_3382" -"$out_of_gas_3331": ; preds = %"$have_gas_3327" +"$out_of_gas_3381": ; preds = %"$have_gas_3377" call void @_out_of_gas() - br label %"$have_gas_3332" + br label %"$have_gas_3382" -"$have_gas_3332": ; preds = %"$out_of_gas_3331", %"$have_gas_3327" - %"$consume_3333" = sub i64 %"$gasrem_3329", 1 - store i64 %"$consume_3333", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_3334", i32 0, i32 0), i32 3 }, %String* %tname, align 8, !dbg !359 +"$have_gas_3382": ; preds = %"$out_of_gas_3381", %"$have_gas_3377" + %"$consume_3383" = sub i64 %"$gasrem_3379", 1 + store i64 %"$consume_3383", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_3384", i32 0, i32 0), i32 3 }, %String* %tname, align 8, !dbg !734 %m3 = alloca %"Map_String_Map_(String)_(Map_(String)_(String))"*, align 8 - %"$execptr_load_3336" = load i8*, i8** @_execptr, align 8 - %"$m3_call_3337" = call i8* @_fetch_field(i8* %"$execptr_load_3336", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m3_3335", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_75", i32 0, i8* null, i32 1), !dbg !360 - %"$m3_3338" = bitcast i8* %"$m3_call_3337" to %"Map_String_Map_(String)_(Map_(String)_(String))"* - store %"Map_String_Map_(String)_(Map_(String)_(String))"* %"$m3_3338", %"Map_String_Map_(String)_(Map_(String)_(String))"** %m3, align 8 - %"$m3_3339" = load %"Map_String_Map_(String)_(Map_(String)_(String))"*, %"Map_String_Map_(String)_(Map_(String)_(String))"** %m3, align 8 - %"$$m3_3339_3340" = bitcast %"Map_String_Map_(String)_(Map_(String)_(String))"* %"$m3_3339" to i8* - %"$_literal_cost_call_3341" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Map_75", i8* %"$$m3_3339_3340") - %"$m3_3342" = load %"Map_String_Map_(String)_(Map_(String)_(String))"*, %"Map_String_Map_(String)_(Map_(String)_(String))"** %m3, align 8 - %"$$m3_3342_3343" = bitcast %"Map_String_Map_(String)_(Map_(String)_(String))"* %"$m3_3342" to i8* - %"$_mapsortcost_call_3344" = call i64 @_mapsortcost(%_TyDescrTy_Typ* @"$TyDescr_Map_75", i8* %"$$m3_3342_3343") - %"$gasadd_3345" = add i64 %"$_literal_cost_call_3341", %"$_mapsortcost_call_3344" - %"$gasrem_3346" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3347" = icmp ugt i64 %"$gasadd_3345", %"$gasrem_3346" - br i1 %"$gascmp_3347", label %"$out_of_gas_3348", label %"$have_gas_3349" - -"$out_of_gas_3348": ; preds = %"$have_gas_3332" - call void @_out_of_gas() - br label %"$have_gas_3349" - -"$have_gas_3349": ; preds = %"$out_of_gas_3348", %"$have_gas_3332" - %"$consume_3350" = sub i64 %"$gasrem_3346", %"$gasadd_3345" - store i64 %"$consume_3350", i64* @_gasrem, align 8 - %"$gasrem_3351" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3352" = icmp ugt i64 1, %"$gasrem_3351" - br i1 %"$gascmp_3352", label %"$out_of_gas_3353", label %"$have_gas_3354" - -"$out_of_gas_3353": ; preds = %"$have_gas_3349" - call void @_out_of_gas() - br label %"$have_gas_3354" - -"$have_gas_3354": ; preds = %"$out_of_gas_3353", %"$have_gas_3349" - %"$consume_3355" = sub i64 %"$gasrem_3351", 1 - store i64 %"$consume_3355", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %"Map_String_Map_(String)_(Map_(String)_(String))"** %m3, metadata !735, metadata !DIExpression()), !dbg !736 + %"$execptr_load_3386" = load i8*, i8** @_execptr, align 8 + %"$m3_call_3387" = call i8* @_fetch_field(i8* %"$execptr_load_3386", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m3_3385", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_75", i32 0, i8* null, i32 1), !dbg !736 + %"$m3_3388" = bitcast i8* %"$m3_call_3387" to %"Map_String_Map_(String)_(Map_(String)_(String))"* + store %"Map_String_Map_(String)_(Map_(String)_(String))"* %"$m3_3388", %"Map_String_Map_(String)_(Map_(String)_(String))"** %m3, align 8 + %"$m3_3389" = load %"Map_String_Map_(String)_(Map_(String)_(String))"*, %"Map_String_Map_(String)_(Map_(String)_(String))"** %m3, align 8 + %"$$m3_3389_3390" = bitcast %"Map_String_Map_(String)_(Map_(String)_(String))"* %"$m3_3389" to i8* + %"$_literal_cost_call_3391" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Map_75", i8* %"$$m3_3389_3390") + %"$m3_3392" = load %"Map_String_Map_(String)_(Map_(String)_(String))"*, %"Map_String_Map_(String)_(Map_(String)_(String))"** %m3, align 8 + %"$$m3_3392_3393" = bitcast %"Map_String_Map_(String)_(Map_(String)_(String))"* %"$m3_3392" to i8* + %"$_mapsortcost_call_3394" = call i64 @_mapsortcost(%_TyDescrTy_Typ* @"$TyDescr_Map_75", i8* %"$$m3_3392_3393") + %"$gasadd_3395" = add i64 %"$_literal_cost_call_3391", %"$_mapsortcost_call_3394" + %"$gasrem_3396" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3397" = icmp ugt i64 %"$gasadd_3395", %"$gasrem_3396" + br i1 %"$gascmp_3397", label %"$out_of_gas_3398", label %"$have_gas_3399" + +"$out_of_gas_3398": ; preds = %"$have_gas_3382" + call void @_out_of_gas() + br label %"$have_gas_3399" + +"$have_gas_3399": ; preds = %"$out_of_gas_3398", %"$have_gas_3382" + %"$consume_3400" = sub i64 %"$gasrem_3396", %"$gasadd_3395" + store i64 %"$consume_3400", i64* @_gasrem, align 8 + %"$gasrem_3401" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3402" = icmp ugt i64 1, %"$gasrem_3401" + br i1 %"$gascmp_3402", label %"$out_of_gas_3403", label %"$have_gas_3404" + +"$out_of_gas_3403": ; preds = %"$have_gas_3399" + call void @_out_of_gas() + br label %"$have_gas_3404" + +"$have_gas_3404": ; preds = %"$out_of_gas_3403", %"$have_gas_3399" + %"$consume_3405" = sub i64 %"$gasrem_3401", 1 + store i64 %"$consume_3405", i64* @_gasrem, align 8 %m3_size = alloca %Uint32, align 8 - %"$gasrem_3356" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3357" = icmp ugt i64 1, %"$gasrem_3356" - br i1 %"$gascmp_3357", label %"$out_of_gas_3358", label %"$have_gas_3359" + call void @llvm.dbg.declare(metadata %Uint32* %m3_size, metadata !737, metadata !DIExpression()), !dbg !738 + %"$gasrem_3406" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3407" = icmp ugt i64 1, %"$gasrem_3406" + br i1 %"$gascmp_3407", label %"$out_of_gas_3408", label %"$have_gas_3409" -"$out_of_gas_3358": ; preds = %"$have_gas_3354" +"$out_of_gas_3408": ; preds = %"$have_gas_3404" call void @_out_of_gas() - br label %"$have_gas_3359" + br label %"$have_gas_3409" -"$have_gas_3359": ; preds = %"$out_of_gas_3358", %"$have_gas_3354" - %"$consume_3360" = sub i64 %"$gasrem_3356", 1 - store i64 %"$consume_3360", i64* @_gasrem, align 8 - %"$m3_3361" = load %"Map_String_Map_(String)_(Map_(String)_(String))"*, %"Map_String_Map_(String)_(Map_(String)_(String))"** %m3, align 8 - %"$$m3_3361_3362" = bitcast %"Map_String_Map_(String)_(Map_(String)_(String))"* %"$m3_3361" to i8* - %"$size_call_3363" = call %Uint32 @_size(i8* %"$$m3_3361_3362"), !dbg !361 - store %Uint32 %"$size_call_3363", %Uint32* %m3_size, align 4, !dbg !361 - %"$gasrem_3364" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3365" = icmp ugt i64 1, %"$gasrem_3364" - br i1 %"$gascmp_3365", label %"$out_of_gas_3366", label %"$have_gas_3367" +"$have_gas_3409": ; preds = %"$out_of_gas_3408", %"$have_gas_3404" + %"$consume_3410" = sub i64 %"$gasrem_3406", 1 + store i64 %"$consume_3410", i64* @_gasrem, align 8 + %"$m3_3411" = load %"Map_String_Map_(String)_(Map_(String)_(String))"*, %"Map_String_Map_(String)_(Map_(String)_(String))"** %m3, align 8 + %"$$m3_3411_3412" = bitcast %"Map_String_Map_(String)_(Map_(String)_(String))"* %"$m3_3411" to i8* + %"$size_call_3413" = call %Uint32 @_size(i8* %"$$m3_3411_3412"), !dbg !739 + store %Uint32 %"$size_call_3413", %Uint32* %m3_size, align 4, !dbg !739 + %"$gasrem_3414" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3415" = icmp ugt i64 1, %"$gasrem_3414" + br i1 %"$gascmp_3415", label %"$out_of_gas_3416", label %"$have_gas_3417" -"$out_of_gas_3366": ; preds = %"$have_gas_3359" +"$out_of_gas_3416": ; preds = %"$have_gas_3409" call void @_out_of_gas() - br label %"$have_gas_3367" + br label %"$have_gas_3417" -"$have_gas_3367": ; preds = %"$out_of_gas_3366", %"$have_gas_3359" - %"$consume_3368" = sub i64 %"$gasrem_3364", 1 - store i64 %"$consume_3368", i64* @_gasrem, align 8 +"$have_gas_3417": ; preds = %"$out_of_gas_3416", %"$have_gas_3409" + %"$consume_3418" = sub i64 %"$gasrem_3414", 1 + store i64 %"$consume_3418", i64* @_gasrem, align 8 %one = alloca %Uint32, align 8 - %"$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" + call void @llvm.dbg.declare(metadata %Uint32* %one, metadata !740, metadata !DIExpression()), !dbg !741 + %"$gasrem_3419" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3420" = icmp ugt i64 1, %"$gasrem_3419" + br i1 %"$gascmp_3420", label %"$out_of_gas_3421", label %"$have_gas_3422" -"$out_of_gas_3371": ; preds = %"$have_gas_3367" +"$out_of_gas_3421": ; preds = %"$have_gas_3417" call void @_out_of_gas() - br label %"$have_gas_3372" + br label %"$have_gas_3422" -"$have_gas_3372": ; preds = %"$out_of_gas_3371", %"$have_gas_3367" - %"$consume_3373" = sub i64 %"$gasrem_3369", 1 - store i64 %"$consume_3373", i64* @_gasrem, align 8 - store %Uint32 { i32 1 }, %Uint32* %one, align 4, !dbg !362 - %"$gasrem_3374" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3375" = icmp ugt i64 1, %"$gasrem_3374" - br i1 %"$gascmp_3375", label %"$out_of_gas_3376", label %"$have_gas_3377" +"$have_gas_3422": ; preds = %"$out_of_gas_3421", %"$have_gas_3417" + %"$consume_3423" = sub i64 %"$gasrem_3419", 1 + store i64 %"$consume_3423", i64* @_gasrem, align 8 + store %Uint32 { i32 1 }, %Uint32* %one, align 4, !dbg !742 + %"$gasrem_3424" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3425" = icmp ugt i64 1, %"$gasrem_3424" + br i1 %"$gascmp_3425", label %"$out_of_gas_3426", label %"$have_gas_3427" -"$out_of_gas_3376": ; preds = %"$have_gas_3372" +"$out_of_gas_3426": ; preds = %"$have_gas_3422" call void @_out_of_gas() - br label %"$have_gas_3377" + br label %"$have_gas_3427" -"$have_gas_3377": ; preds = %"$out_of_gas_3376", %"$have_gas_3372" - %"$consume_3378" = sub i64 %"$gasrem_3374", 1 - store i64 %"$consume_3378", i64* @_gasrem, align 8 +"$have_gas_3427": ; preds = %"$out_of_gas_3426", %"$have_gas_3422" + %"$consume_3428" = sub i64 %"$gasrem_3424", 1 + store i64 %"$consume_3428", i64* @_gasrem, align 8 %is_empty = alloca %TName_Bool*, align 8 - %"$gasrem_3379" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3380" = icmp ugt i64 4, %"$gasrem_3379" - br i1 %"$gascmp_3380", label %"$out_of_gas_3381", label %"$have_gas_3382" - -"$out_of_gas_3381": ; preds = %"$have_gas_3377" - call void @_out_of_gas() - br label %"$have_gas_3382" - -"$have_gas_3382": ; preds = %"$out_of_gas_3381", %"$have_gas_3377" - %"$consume_3383" = sub i64 %"$gasrem_3379", 4 - store i64 %"$consume_3383", i64* @_gasrem, align 8 - %"$execptr_load_3384" = load i8*, i8** @_execptr, align 8 - %"$m3_size_3385" = load %Uint32, %Uint32* %m3_size, align 4 - %"$one_3386" = load %Uint32, %Uint32* %one, align 4 - %"$eq_call_3387" = call %TName_Bool* @_eq_Uint32(i8* %"$execptr_load_3384", %Uint32 %"$m3_size_3385", %Uint32 %"$one_3386"), !dbg !363 - store %TName_Bool* %"$eq_call_3387", %TName_Bool** %is_empty, align 8, !dbg !363 - %"$gasrem_3389" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3390" = icmp ugt i64 2, %"$gasrem_3389" - br i1 %"$gascmp_3390", label %"$out_of_gas_3391", label %"$have_gas_3392" - -"$out_of_gas_3391": ; preds = %"$have_gas_3382" - call void @_out_of_gas() - br label %"$have_gas_3392" - -"$have_gas_3392": ; preds = %"$out_of_gas_3391", %"$have_gas_3382" - %"$consume_3393" = sub i64 %"$gasrem_3389", 2 - store i64 %"$consume_3393", i64* @_gasrem, align 8 - %"$is_empty_3395" = load %TName_Bool*, %TName_Bool** %is_empty, align 8 - %"$is_empty_tag_3396" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$is_empty_3395", i32 0, i32 0 - %"$is_empty_tag_3397" = load i8, i8* %"$is_empty_tag_3396", align 1 - switch i8 %"$is_empty_tag_3397", label %"$empty_default_3398" [ - i8 0, label %"$True_3399" - i8 1, label %"$False_3401" - ], !dbg !364 - -"$True_3399": ; preds = %"$have_gas_3392" - %"$is_empty_3400" = bitcast %TName_Bool* %"$is_empty_3395" to %CName_True* - br label %"$matchsucc_3394" - -"$False_3401": ; preds = %"$have_gas_3392" - %"$is_empty_3402" = bitcast %TName_Bool* %"$is_empty_3395" to %CName_False* - %"$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_3405": ; preds = %"$False_3401" - call void @_out_of_gas() - br label %"$have_gas_3406" - -"$have_gas_3406": ; preds = %"$out_of_gas_3405", %"$False_3401" - %"$consume_3407" = sub i64 %"$gasrem_3403", 1 - store i64 %"$consume_3407", i64* @_gasrem, align 8 - %"$fail__origin_3408" = alloca [20 x i8], align 1 - store [20 x i8] %_origin, [20 x i8]* %"$fail__origin_3408", align 1 - %"$fail__sender_3409" = alloca [20 x i8], align 1 - store [20 x i8] %_sender, [20 x i8]* %"$fail__sender_3409", align 1 - %"$tname_3410" = load %String, %String* %tname, align 8 - call void @"$fail_252"(%Uint128 %_amount, [20 x i8]* %"$fail__origin_3408", [20 x i8]* %"$fail__sender_3409", %String %"$tname_3410"), !dbg !365 - br label %"$matchsucc_3394" - -"$empty_default_3398": ; preds = %"$have_gas_3392" - br label %"$matchsucc_3394" - -"$matchsucc_3394": ; preds = %"$have_gas_3406", %"$True_3399", %"$empty_default_3398" - %"$gasrem_3411" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3412" = icmp ugt i64 1, %"$gasrem_3411" - br i1 %"$gascmp_3412", label %"$out_of_gas_3413", label %"$have_gas_3414" - -"$out_of_gas_3413": ; preds = %"$matchsucc_3394" - call void @_out_of_gas() - br label %"$have_gas_3414" - -"$have_gas_3414": ; preds = %"$out_of_gas_3413", %"$matchsucc_3394" - %"$consume_3415" = sub i64 %"$gasrem_3411", 1 - store i64 %"$consume_3415", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %is_empty, metadata !743, metadata !DIExpression()), !dbg !744 + %"$gasrem_3429" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3430" = icmp ugt i64 4, %"$gasrem_3429" + br i1 %"$gascmp_3430", label %"$out_of_gas_3431", label %"$have_gas_3432" + +"$out_of_gas_3431": ; preds = %"$have_gas_3427" + call void @_out_of_gas() + br label %"$have_gas_3432" + +"$have_gas_3432": ; preds = %"$out_of_gas_3431", %"$have_gas_3427" + %"$consume_3433" = sub i64 %"$gasrem_3429", 4 + store i64 %"$consume_3433", i64* @_gasrem, align 8 + %"$execptr_load_3434" = load i8*, i8** @_execptr, align 8 + %"$m3_size_3435" = load %Uint32, %Uint32* %m3_size, align 4 + %"$one_3436" = load %Uint32, %Uint32* %one, align 4 + %"$eq_call_3437" = call %TName_Bool* @_eq_Uint32(i8* %"$execptr_load_3434", %Uint32 %"$m3_size_3435", %Uint32 %"$one_3436"), !dbg !745 + store %TName_Bool* %"$eq_call_3437", %TName_Bool** %is_empty, align 8, !dbg !745 + %"$gasrem_3439" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3440" = icmp ugt i64 2, %"$gasrem_3439" + br i1 %"$gascmp_3440", label %"$out_of_gas_3441", label %"$have_gas_3442" + +"$out_of_gas_3441": ; preds = %"$have_gas_3432" + call void @_out_of_gas() + br label %"$have_gas_3442" + +"$have_gas_3442": ; preds = %"$out_of_gas_3441", %"$have_gas_3432" + %"$consume_3443" = sub i64 %"$gasrem_3439", 2 + store i64 %"$consume_3443", i64* @_gasrem, align 8 + %"$is_empty_3445" = load %TName_Bool*, %TName_Bool** %is_empty, align 8 + %"$is_empty_tag_3446" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$is_empty_3445", i32 0, i32 0 + %"$is_empty_tag_3447" = load i8, i8* %"$is_empty_tag_3446", align 1 + switch i8 %"$is_empty_tag_3447", label %"$empty_default_3448" [ + i8 0, label %"$True_3449" + i8 1, label %"$False_3451" + ], !dbg !746 + +"$True_3449": ; preds = %"$have_gas_3442" + %"$is_empty_3450" = bitcast %TName_Bool* %"$is_empty_3445" to %CName_True* + br label %"$matchsucc_3444" + +"$False_3451": ; preds = %"$have_gas_3442" + %"$is_empty_3452" = bitcast %TName_Bool* %"$is_empty_3445" to %CName_False* + %"$gasrem_3453" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3454" = icmp ugt i64 1, %"$gasrem_3453" + br i1 %"$gascmp_3454", label %"$out_of_gas_3455", label %"$have_gas_3456" + +"$out_of_gas_3455": ; preds = %"$False_3451" + call void @_out_of_gas() + br label %"$have_gas_3456" + +"$have_gas_3456": ; preds = %"$out_of_gas_3455", %"$False_3451" + %"$consume_3457" = sub i64 %"$gasrem_3453", 1 + store i64 %"$consume_3457", i64* @_gasrem, align 8 + %"$fail__origin_3458" = alloca [20 x i8], align 1 + store [20 x i8] %_origin, [20 x i8]* %"$fail__origin_3458", align 1 + %"$fail__sender_3459" = alloca [20 x i8], align 1 + store [20 x i8] %_sender, [20 x i8]* %"$fail__sender_3459", align 1 + %"$tname_3460" = load %String, %String* %tname, align 8 + call void @"$fail_254"(%Uint128 %_amount, [20 x i8]* %"$fail__origin_3458", [20 x i8]* %"$fail__sender_3459", %String %"$tname_3460"), !dbg !747 + br label %"$matchsucc_3444" + +"$empty_default_3448": ; preds = %"$have_gas_3442" + br label %"$matchsucc_3444" + +"$matchsucc_3444": ; preds = %"$have_gas_3456", %"$True_3449", %"$empty_default_3448" + %"$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 = %"$matchsucc_3444" + call void @_out_of_gas() + br label %"$have_gas_3464" + +"$have_gas_3464": ; preds = %"$out_of_gas_3463", %"$matchsucc_3444" + %"$consume_3465" = sub i64 %"$gasrem_3461", 1 + store i64 %"$consume_3465", i64* @_gasrem, align 8 %e = alloca %"Map_String_Map_(String)_(String)"*, align 8 - %"$gasrem_3416" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3417" = icmp ugt i64 1, %"$gasrem_3416" - br i1 %"$gascmp_3417", label %"$out_of_gas_3418", label %"$have_gas_3419" - -"$out_of_gas_3418": ; preds = %"$have_gas_3414" - call void @_out_of_gas() - br label %"$have_gas_3419" - -"$have_gas_3419": ; preds = %"$out_of_gas_3418", %"$have_gas_3414" - %"$consume_3420" = sub i64 %"$gasrem_3416", 1 - store i64 %"$consume_3420", i64* @_gasrem, align 8 - %"$execptr_load_3421" = load i8*, i8** @_execptr, align 8 - %"$_new_empty_map_call_3422" = call i8* @_new_empty_map(i8* %"$execptr_load_3421") - %"$_new_empty_map_3423" = bitcast i8* %"$_new_empty_map_call_3422" to %"Map_String_Map_(String)_(String)"* - store %"Map_String_Map_(String)_(String)"* %"$_new_empty_map_3423", %"Map_String_Map_(String)_(String)"** %e, align 8, !dbg !368 - %"$e_3424" = load %"Map_String_Map_(String)_(String)"*, %"Map_String_Map_(String)_(String)"** %e, align 8 - %"$$e_3424_3425" = bitcast %"Map_String_Map_(String)_(String)"* %"$e_3424" to i8* - %"$_literal_cost_call_3426" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Map_76", i8* %"$$e_3424_3425") - %"$gasrem_3427" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3428" = icmp ugt i64 %"$_literal_cost_call_3426", %"$gasrem_3427" - br i1 %"$gascmp_3428", label %"$out_of_gas_3429", label %"$have_gas_3430" - -"$out_of_gas_3429": ; preds = %"$have_gas_3419" - call void @_out_of_gas() - br label %"$have_gas_3430" - -"$have_gas_3430": ; preds = %"$out_of_gas_3429", %"$have_gas_3419" - %"$consume_3431" = sub i64 %"$gasrem_3427", %"$_literal_cost_call_3426" - store i64 %"$consume_3431", i64* @_gasrem, align 8 - %"$execptr_load_3432" = load i8*, i8** @_execptr, align 8 - %"$e_3434" = load %"Map_String_Map_(String)_(String)"*, %"Map_String_Map_(String)_(String)"** %e, align 8 - %"$update_value_3435" = bitcast %"Map_String_Map_(String)_(String)"* %"$e_3434" to i8* - call void @_update_field(i8* %"$execptr_load_3432", i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$f_m_3433", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_76", i32 0, i8* null, i8* %"$update_value_3435"), !dbg !369 + call void @llvm.dbg.declare(metadata %"Map_String_Map_(String)_(String)"** %e, metadata !750, metadata !DIExpression()), !dbg !751 + %"$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 + %"$execptr_load_3471" = load i8*, i8** @_execptr, align 8 + %"$_new_empty_map_call_3472" = call i8* @_new_empty_map(i8* %"$execptr_load_3471") + %"$_new_empty_map_3473" = bitcast i8* %"$_new_empty_map_call_3472" to %"Map_String_Map_(String)_(String)"* + store %"Map_String_Map_(String)_(String)"* %"$_new_empty_map_3473", %"Map_String_Map_(String)_(String)"** %e, align 8, !dbg !752 + %"$e_3474" = load %"Map_String_Map_(String)_(String)"*, %"Map_String_Map_(String)_(String)"** %e, align 8 + %"$$e_3474_3475" = bitcast %"Map_String_Map_(String)_(String)"* %"$e_3474" to i8* + %"$_literal_cost_call_3476" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Map_76", i8* %"$$e_3474_3475") + %"$gasrem_3477" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3478" = icmp ugt i64 %"$_literal_cost_call_3476", %"$gasrem_3477" + br i1 %"$gascmp_3478", label %"$out_of_gas_3479", label %"$have_gas_3480" + +"$out_of_gas_3479": ; preds = %"$have_gas_3469" + call void @_out_of_gas() + br label %"$have_gas_3480" + +"$have_gas_3480": ; preds = %"$out_of_gas_3479", %"$have_gas_3469" + %"$consume_3481" = sub i64 %"$gasrem_3477", %"$_literal_cost_call_3476" + store i64 %"$consume_3481", i64* @_gasrem, align 8 + %"$execptr_load_3482" = load i8*, i8** @_execptr, align 8 + %"$e_3484" = load %"Map_String_Map_(String)_(String)"*, %"Map_String_Map_(String)_(String)"** %e, align 8 + %"$update_value_3485" = bitcast %"Map_String_Map_(String)_(String)"* %"$e_3484" to i8* + call void @_update_field(i8* %"$execptr_load_3482", i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$f_m_3483", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_76", i32 0, i8* null, i8* %"$update_value_3485"), !dbg !753 ret void } -define void @t14(i8* %0) !dbg !370 { +define void @t14(i8* %0) !dbg !754 { entry: - %"$_amount_3437" = getelementptr i8, i8* %0, i32 0 - %"$_amount_3438" = bitcast i8* %"$_amount_3437" to %Uint128* - %_amount = load %Uint128, %Uint128* %"$_amount_3438", align 8 - %"$_origin_3439" = getelementptr i8, i8* %0, i32 16 - %"$_origin_3440" = bitcast i8* %"$_origin_3439" to [20 x i8]* - %"$_sender_3441" = getelementptr i8, i8* %0, i32 36 - %"$_sender_3442" = bitcast i8* %"$_sender_3441" to [20 x i8]* - call void @"$t14_3321"(%Uint128 %_amount, [20 x i8]* %"$_origin_3440", [20 x i8]* %"$_sender_3442"), !dbg !371 + %"$_amount_3490" = getelementptr i8, i8* %0, i32 0 + %"$_amount_3491" = bitcast i8* %"$_amount_3490" to %Uint128* + %_amount = load %Uint128, %Uint128* %"$_amount_3491", align 8 + %"$_origin_3492" = getelementptr i8, i8* %0, i32 16 + %"$_origin_3493" = bitcast i8* %"$_origin_3492" to [20 x i8]* + %"$_sender_3494" = getelementptr i8, i8* %0, i32 36 + %"$_sender_3495" = bitcast i8* %"$_sender_3494" to [20 x i8]* + call void @"$t14_3371"(%Uint128 %_amount, [20 x i8]* %"$_origin_3493", [20 x i8]* %"$_sender_3495"), !dbg !755 ret void } -define internal void @"$t15_3443"(%Uint128 %_amount, [20 x i8]* %"$_origin_3444", [20 x i8]* %"$_sender_3445") !dbg !372 { +define internal void @"$t15_3496"(%Uint128 %_amount, [20 x i8]* %"$_origin_3497", [20 x i8]* %"$_sender_3498") !dbg !756 { entry: - %_origin = load [20 x i8], [20 x i8]* %"$_origin_3444", align 1 - %_sender = load [20 x i8], [20 x i8]* %"$_sender_3445", align 1 - %"$gasrem_3446" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3447" = icmp ugt i64 1, %"$gasrem_3446" - br i1 %"$gascmp_3447", label %"$out_of_gas_3448", label %"$have_gas_3449" - -"$out_of_gas_3448": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_3449" - -"$have_gas_3449": ; preds = %"$out_of_gas_3448", %entry - %"$consume_3450" = sub i64 %"$gasrem_3446", 1 - store i64 %"$consume_3450", i64* @_gasrem, align 8 + %"$_sender_4219" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_sender_3498", [20 x i8]** %"$_sender_4219", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_sender_4219", metadata !757, metadata !DIExpression()), !dbg !758 + %"$_origin_4218" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_origin_3497", [20 x i8]** %"$_origin_4218", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_origin_4218", metadata !759, metadata !DIExpression()), !dbg !758 + %"$_amount_4217" = alloca %Uint128, align 8 + store %Uint128 %_amount, %Uint128* %"$_amount_4217", align 8 + call void @llvm.dbg.declare(metadata %Uint128* %"$_amount_4217", metadata !760, metadata !DIExpression()), !dbg !758 + %_origin = load [20 x i8], [20 x i8]* %"$_origin_3497", align 1 + %_sender = load [20 x i8], [20 x i8]* %"$_sender_3498", align 1 + %"$gasrem_3499" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3500" = icmp ugt i64 1, %"$gasrem_3499" + br i1 %"$gascmp_3500", label %"$out_of_gas_3501", label %"$have_gas_3502" + +"$out_of_gas_3501": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_3502" + +"$have_gas_3502": ; preds = %"$out_of_gas_3501", %entry + %"$consume_3503" = sub i64 %"$gasrem_3499", 1 + store i64 %"$consume_3503", i64* @_gasrem, align 8 %tname = alloca %String, align 8 - %"$gasrem_3451" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3452" = icmp ugt i64 1, %"$gasrem_3451" - br i1 %"$gascmp_3452", label %"$out_of_gas_3453", label %"$have_gas_3454" + call void @llvm.dbg.declare(metadata %String* %tname, metadata !761, metadata !DIExpression()), !dbg !762 + %"$gasrem_3504" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3505" = icmp ugt i64 1, %"$gasrem_3504" + br i1 %"$gascmp_3505", label %"$out_of_gas_3506", label %"$have_gas_3507" -"$out_of_gas_3453": ; preds = %"$have_gas_3449" +"$out_of_gas_3506": ; preds = %"$have_gas_3502" call void @_out_of_gas() - br label %"$have_gas_3454" + br label %"$have_gas_3507" -"$have_gas_3454": ; preds = %"$out_of_gas_3453", %"$have_gas_3449" - %"$consume_3455" = sub i64 %"$gasrem_3451", 1 - store i64 %"$consume_3455", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_3456", i32 0, i32 0), i32 3 }, %String* %tname, align 8, !dbg !373 +"$have_gas_3507": ; preds = %"$out_of_gas_3506", %"$have_gas_3502" + %"$consume_3508" = sub i64 %"$gasrem_3504", 1 + store i64 %"$consume_3508", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_3509", i32 0, i32 0), i32 3 }, %String* %tname, align 8, !dbg !763 %m3 = alloca %"Map_String_Map_(String)_(Map_(String)_(String))"*, align 8 - %"$execptr_load_3458" = load i8*, i8** @_execptr, align 8 - %"$m3_call_3459" = call i8* @_fetch_field(i8* %"$execptr_load_3458", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m3_3457", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_75", i32 0, i8* null, i32 1), !dbg !374 - %"$m3_3460" = bitcast i8* %"$m3_call_3459" to %"Map_String_Map_(String)_(Map_(String)_(String))"* - store %"Map_String_Map_(String)_(Map_(String)_(String))"* %"$m3_3460", %"Map_String_Map_(String)_(Map_(String)_(String))"** %m3, align 8 - %"$m3_3461" = load %"Map_String_Map_(String)_(Map_(String)_(String))"*, %"Map_String_Map_(String)_(Map_(String)_(String))"** %m3, align 8 - %"$$m3_3461_3462" = bitcast %"Map_String_Map_(String)_(Map_(String)_(String))"* %"$m3_3461" to i8* - %"$_literal_cost_call_3463" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Map_75", i8* %"$$m3_3461_3462") - %"$m3_3464" = load %"Map_String_Map_(String)_(Map_(String)_(String))"*, %"Map_String_Map_(String)_(Map_(String)_(String))"** %m3, align 8 - %"$$m3_3464_3465" = bitcast %"Map_String_Map_(String)_(Map_(String)_(String))"* %"$m3_3464" to i8* - %"$_mapsortcost_call_3466" = call i64 @_mapsortcost(%_TyDescrTy_Typ* @"$TyDescr_Map_75", i8* %"$$m3_3464_3465") - %"$gasadd_3467" = add i64 %"$_literal_cost_call_3463", %"$_mapsortcost_call_3466" - %"$gasrem_3468" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3469" = icmp ugt i64 %"$gasadd_3467", %"$gasrem_3468" - br i1 %"$gascmp_3469", label %"$out_of_gas_3470", label %"$have_gas_3471" - -"$out_of_gas_3470": ; preds = %"$have_gas_3454" - call void @_out_of_gas() - br label %"$have_gas_3471" - -"$have_gas_3471": ; preds = %"$out_of_gas_3470", %"$have_gas_3454" - %"$consume_3472" = sub i64 %"$gasrem_3468", %"$gasadd_3467" - store i64 %"$consume_3472", i64* @_gasrem, align 8 - %"$gasrem_3473" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3474" = icmp ugt i64 1, %"$gasrem_3473" - br i1 %"$gascmp_3474", label %"$out_of_gas_3475", label %"$have_gas_3476" - -"$out_of_gas_3475": ; preds = %"$have_gas_3471" - call void @_out_of_gas() - br label %"$have_gas_3476" - -"$have_gas_3476": ; preds = %"$out_of_gas_3475", %"$have_gas_3471" - %"$consume_3477" = sub i64 %"$gasrem_3473", 1 - store i64 %"$consume_3477", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %"Map_String_Map_(String)_(Map_(String)_(String))"** %m3, metadata !764, metadata !DIExpression()), !dbg !765 + %"$execptr_load_3511" = load i8*, i8** @_execptr, align 8 + %"$m3_call_3512" = call i8* @_fetch_field(i8* %"$execptr_load_3511", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m3_3510", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_75", i32 0, i8* null, i32 1), !dbg !765 + %"$m3_3513" = bitcast i8* %"$m3_call_3512" to %"Map_String_Map_(String)_(Map_(String)_(String))"* + store %"Map_String_Map_(String)_(Map_(String)_(String))"* %"$m3_3513", %"Map_String_Map_(String)_(Map_(String)_(String))"** %m3, align 8 + %"$m3_3514" = load %"Map_String_Map_(String)_(Map_(String)_(String))"*, %"Map_String_Map_(String)_(Map_(String)_(String))"** %m3, align 8 + %"$$m3_3514_3515" = bitcast %"Map_String_Map_(String)_(Map_(String)_(String))"* %"$m3_3514" to i8* + %"$_literal_cost_call_3516" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Map_75", i8* %"$$m3_3514_3515") + %"$m3_3517" = load %"Map_String_Map_(String)_(Map_(String)_(String))"*, %"Map_String_Map_(String)_(Map_(String)_(String))"** %m3, align 8 + %"$$m3_3517_3518" = bitcast %"Map_String_Map_(String)_(Map_(String)_(String))"* %"$m3_3517" to i8* + %"$_mapsortcost_call_3519" = call i64 @_mapsortcost(%_TyDescrTy_Typ* @"$TyDescr_Map_75", i8* %"$$m3_3517_3518") + %"$gasadd_3520" = add i64 %"$_literal_cost_call_3516", %"$_mapsortcost_call_3519" + %"$gasrem_3521" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3522" = icmp ugt i64 %"$gasadd_3520", %"$gasrem_3521" + br i1 %"$gascmp_3522", label %"$out_of_gas_3523", label %"$have_gas_3524" + +"$out_of_gas_3523": ; preds = %"$have_gas_3507" + call void @_out_of_gas() + br label %"$have_gas_3524" + +"$have_gas_3524": ; preds = %"$out_of_gas_3523", %"$have_gas_3507" + %"$consume_3525" = sub i64 %"$gasrem_3521", %"$gasadd_3520" + store i64 %"$consume_3525", i64* @_gasrem, align 8 + %"$gasrem_3526" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3527" = icmp ugt i64 1, %"$gasrem_3526" + br i1 %"$gascmp_3527", label %"$out_of_gas_3528", label %"$have_gas_3529" + +"$out_of_gas_3528": ; preds = %"$have_gas_3524" + call void @_out_of_gas() + br label %"$have_gas_3529" + +"$have_gas_3529": ; preds = %"$out_of_gas_3528", %"$have_gas_3524" + %"$consume_3530" = sub i64 %"$gasrem_3526", 1 + store i64 %"$consume_3530", i64* @_gasrem, align 8 %m3_size = alloca %Uint32, align 8 - %"$gasrem_3478" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3479" = icmp ugt i64 1, %"$gasrem_3478" - br i1 %"$gascmp_3479", label %"$out_of_gas_3480", label %"$have_gas_3481" + call void @llvm.dbg.declare(metadata %Uint32* %m3_size, metadata !766, metadata !DIExpression()), !dbg !767 + %"$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_3480": ; preds = %"$have_gas_3476" +"$out_of_gas_3533": ; preds = %"$have_gas_3529" call void @_out_of_gas() - br label %"$have_gas_3481" + br label %"$have_gas_3534" -"$have_gas_3481": ; preds = %"$out_of_gas_3480", %"$have_gas_3476" - %"$consume_3482" = sub i64 %"$gasrem_3478", 1 - store i64 %"$consume_3482", i64* @_gasrem, align 8 - %"$m3_3483" = load %"Map_String_Map_(String)_(Map_(String)_(String))"*, %"Map_String_Map_(String)_(Map_(String)_(String))"** %m3, align 8 - %"$$m3_3483_3484" = bitcast %"Map_String_Map_(String)_(Map_(String)_(String))"* %"$m3_3483" to i8* - %"$size_call_3485" = call %Uint32 @_size(i8* %"$$m3_3483_3484"), !dbg !375 - store %Uint32 %"$size_call_3485", %Uint32* %m3_size, align 4, !dbg !375 - %"$gasrem_3486" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3487" = icmp ugt i64 1, %"$gasrem_3486" - br i1 %"$gascmp_3487", label %"$out_of_gas_3488", label %"$have_gas_3489" +"$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 + %"$m3_3536" = load %"Map_String_Map_(String)_(Map_(String)_(String))"*, %"Map_String_Map_(String)_(Map_(String)_(String))"** %m3, align 8 + %"$$m3_3536_3537" = bitcast %"Map_String_Map_(String)_(Map_(String)_(String))"* %"$m3_3536" to i8* + %"$size_call_3538" = call %Uint32 @_size(i8* %"$$m3_3536_3537"), !dbg !768 + store %Uint32 %"$size_call_3538", %Uint32* %m3_size, align 4, !dbg !768 + %"$gasrem_3539" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3540" = icmp ugt i64 1, %"$gasrem_3539" + br i1 %"$gascmp_3540", label %"$out_of_gas_3541", label %"$have_gas_3542" -"$out_of_gas_3488": ; preds = %"$have_gas_3481" +"$out_of_gas_3541": ; preds = %"$have_gas_3534" call void @_out_of_gas() - br label %"$have_gas_3489" + br label %"$have_gas_3542" -"$have_gas_3489": ; preds = %"$out_of_gas_3488", %"$have_gas_3481" - %"$consume_3490" = sub i64 %"$gasrem_3486", 1 - store i64 %"$consume_3490", i64* @_gasrem, align 8 +"$have_gas_3542": ; preds = %"$out_of_gas_3541", %"$have_gas_3534" + %"$consume_3543" = sub i64 %"$gasrem_3539", 1 + store i64 %"$consume_3543", i64* @_gasrem, align 8 %one = alloca %Uint32, align 8 - %"$gasrem_3491" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3492" = icmp ugt i64 1, %"$gasrem_3491" - br i1 %"$gascmp_3492", label %"$out_of_gas_3493", label %"$have_gas_3494" + call void @llvm.dbg.declare(metadata %Uint32* %one, metadata !769, metadata !DIExpression()), !dbg !770 + %"$gasrem_3544" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3545" = icmp ugt i64 1, %"$gasrem_3544" + br i1 %"$gascmp_3545", label %"$out_of_gas_3546", label %"$have_gas_3547" -"$out_of_gas_3493": ; preds = %"$have_gas_3489" +"$out_of_gas_3546": ; preds = %"$have_gas_3542" call void @_out_of_gas() - br label %"$have_gas_3494" + br label %"$have_gas_3547" -"$have_gas_3494": ; preds = %"$out_of_gas_3493", %"$have_gas_3489" - %"$consume_3495" = sub i64 %"$gasrem_3491", 1 - store i64 %"$consume_3495", i64* @_gasrem, align 8 - store %Uint32 { i32 1 }, %Uint32* %one, align 4, !dbg !376 - %"$gasrem_3496" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3497" = icmp ugt i64 1, %"$gasrem_3496" - br i1 %"$gascmp_3497", label %"$out_of_gas_3498", label %"$have_gas_3499" +"$have_gas_3547": ; preds = %"$out_of_gas_3546", %"$have_gas_3542" + %"$consume_3548" = sub i64 %"$gasrem_3544", 1 + store i64 %"$consume_3548", i64* @_gasrem, align 8 + store %Uint32 { i32 1 }, %Uint32* %one, align 4, !dbg !771 + %"$gasrem_3549" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3550" = icmp ugt i64 1, %"$gasrem_3549" + br i1 %"$gascmp_3550", label %"$out_of_gas_3551", label %"$have_gas_3552" -"$out_of_gas_3498": ; preds = %"$have_gas_3494" +"$out_of_gas_3551": ; preds = %"$have_gas_3547" call void @_out_of_gas() - br label %"$have_gas_3499" + br label %"$have_gas_3552" -"$have_gas_3499": ; preds = %"$out_of_gas_3498", %"$have_gas_3494" - %"$consume_3500" = sub i64 %"$gasrem_3496", 1 - store i64 %"$consume_3500", i64* @_gasrem, align 8 +"$have_gas_3552": ; preds = %"$out_of_gas_3551", %"$have_gas_3547" + %"$consume_3553" = sub i64 %"$gasrem_3549", 1 + store i64 %"$consume_3553", i64* @_gasrem, align 8 %is_one = alloca %TName_Bool*, align 8 - %"$gasrem_3501" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3502" = icmp ugt i64 4, %"$gasrem_3501" - br i1 %"$gascmp_3502", label %"$out_of_gas_3503", label %"$have_gas_3504" - -"$out_of_gas_3503": ; preds = %"$have_gas_3499" - call void @_out_of_gas() - br label %"$have_gas_3504" - -"$have_gas_3504": ; preds = %"$out_of_gas_3503", %"$have_gas_3499" - %"$consume_3505" = sub i64 %"$gasrem_3501", 4 - store i64 %"$consume_3505", i64* @_gasrem, align 8 - %"$execptr_load_3506" = load i8*, i8** @_execptr, align 8 - %"$m3_size_3507" = load %Uint32, %Uint32* %m3_size, align 4 - %"$one_3508" = load %Uint32, %Uint32* %one, align 4 - %"$eq_call_3509" = call %TName_Bool* @_eq_Uint32(i8* %"$execptr_load_3506", %Uint32 %"$m3_size_3507", %Uint32 %"$one_3508"), !dbg !377 - store %TName_Bool* %"$eq_call_3509", %TName_Bool** %is_one, align 8, !dbg !377 - %"$gasrem_3511" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3512" = icmp ugt i64 2, %"$gasrem_3511" - br i1 %"$gascmp_3512", label %"$out_of_gas_3513", label %"$have_gas_3514" - -"$out_of_gas_3513": ; preds = %"$have_gas_3504" - call void @_out_of_gas() - br label %"$have_gas_3514" - -"$have_gas_3514": ; preds = %"$out_of_gas_3513", %"$have_gas_3504" - %"$consume_3515" = sub i64 %"$gasrem_3511", 2 - store i64 %"$consume_3515", i64* @_gasrem, align 8 - %"$is_one_3517" = load %TName_Bool*, %TName_Bool** %is_one, align 8 - %"$is_one_tag_3518" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$is_one_3517", i32 0, i32 0 - %"$is_one_tag_3519" = load i8, i8* %"$is_one_tag_3518", align 1 - switch i8 %"$is_one_tag_3519", label %"$empty_default_3520" [ - i8 0, label %"$True_3521" - i8 1, label %"$False_3523" - ], !dbg !378 - -"$True_3521": ; preds = %"$have_gas_3514" - %"$is_one_3522" = bitcast %TName_Bool* %"$is_one_3517" to %CName_True* - br label %"$matchsucc_3516" - -"$False_3523": ; preds = %"$have_gas_3514" - %"$is_one_3524" = bitcast %TName_Bool* %"$is_one_3517" to %CName_False* - %"$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" - -"$out_of_gas_3527": ; preds = %"$False_3523" - call void @_out_of_gas() - br label %"$have_gas_3528" - -"$have_gas_3528": ; preds = %"$out_of_gas_3527", %"$False_3523" - %"$consume_3529" = sub i64 %"$gasrem_3525", 1 - store i64 %"$consume_3529", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %is_one, metadata !772, metadata !DIExpression()), !dbg !773 + %"$gasrem_3554" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3555" = icmp ugt i64 4, %"$gasrem_3554" + br i1 %"$gascmp_3555", label %"$out_of_gas_3556", label %"$have_gas_3557" + +"$out_of_gas_3556": ; preds = %"$have_gas_3552" + call void @_out_of_gas() + br label %"$have_gas_3557" + +"$have_gas_3557": ; preds = %"$out_of_gas_3556", %"$have_gas_3552" + %"$consume_3558" = sub i64 %"$gasrem_3554", 4 + store i64 %"$consume_3558", i64* @_gasrem, align 8 + %"$execptr_load_3559" = load i8*, i8** @_execptr, align 8 + %"$m3_size_3560" = load %Uint32, %Uint32* %m3_size, align 4 + %"$one_3561" = load %Uint32, %Uint32* %one, align 4 + %"$eq_call_3562" = call %TName_Bool* @_eq_Uint32(i8* %"$execptr_load_3559", %Uint32 %"$m3_size_3560", %Uint32 %"$one_3561"), !dbg !774 + store %TName_Bool* %"$eq_call_3562", %TName_Bool** %is_one, align 8, !dbg !774 + %"$gasrem_3564" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3565" = icmp ugt i64 2, %"$gasrem_3564" + br i1 %"$gascmp_3565", label %"$out_of_gas_3566", label %"$have_gas_3567" + +"$out_of_gas_3566": ; preds = %"$have_gas_3557" + call void @_out_of_gas() + br label %"$have_gas_3567" + +"$have_gas_3567": ; preds = %"$out_of_gas_3566", %"$have_gas_3557" + %"$consume_3568" = sub i64 %"$gasrem_3564", 2 + store i64 %"$consume_3568", i64* @_gasrem, align 8 + %"$is_one_3570" = load %TName_Bool*, %TName_Bool** %is_one, align 8 + %"$is_one_tag_3571" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$is_one_3570", i32 0, i32 0 + %"$is_one_tag_3572" = load i8, i8* %"$is_one_tag_3571", align 1 + switch i8 %"$is_one_tag_3572", label %"$empty_default_3573" [ + i8 0, label %"$True_3574" + i8 1, label %"$False_3576" + ], !dbg !775 + +"$True_3574": ; preds = %"$have_gas_3567" + %"$is_one_3575" = bitcast %TName_Bool* %"$is_one_3570" to %CName_True* + br label %"$matchsucc_3569" + +"$False_3576": ; preds = %"$have_gas_3567" + %"$is_one_3577" = bitcast %TName_Bool* %"$is_one_3570" to %CName_False* + %"$gasrem_3578" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3579" = icmp ugt i64 1, %"$gasrem_3578" + br i1 %"$gascmp_3579", label %"$out_of_gas_3580", label %"$have_gas_3581" + +"$out_of_gas_3580": ; preds = %"$False_3576" + call void @_out_of_gas() + br label %"$have_gas_3581" + +"$have_gas_3581": ; preds = %"$out_of_gas_3580", %"$False_3576" + %"$consume_3582" = sub i64 %"$gasrem_3578", 1 + store i64 %"$consume_3582", i64* @_gasrem, align 8 %err = alloca %String, align 8 - %"$gasrem_3530" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3531" = icmp ugt i64 1, %"$gasrem_3530" - br i1 %"$gascmp_3531", label %"$out_of_gas_3532", label %"$have_gas_3533" - -"$out_of_gas_3532": ; preds = %"$have_gas_3528" - call void @_out_of_gas() - br label %"$have_gas_3533" - -"$have_gas_3533": ; preds = %"$out_of_gas_3532", %"$have_gas_3528" - %"$consume_3534" = sub i64 %"$gasrem_3530", 1 - store i64 %"$consume_3534", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([22 x i8], [22 x i8]* @"$stringlit_3535", i32 0, i32 0), i32 22 }, %String* %err, align 8, !dbg !379 - %"$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_3533" - call void @_out_of_gas() - br label %"$have_gas_3539" - -"$have_gas_3539": ; preds = %"$out_of_gas_3538", %"$have_gas_3533" - %"$consume_3540" = sub i64 %"$gasrem_3536", 1 - store i64 %"$consume_3540", i64* @_gasrem, align 8 - %"$fail_msg__origin_3541" = alloca [20 x i8], align 1 - store [20 x i8] %_origin, [20 x i8]* %"$fail_msg__origin_3541", align 1 - %"$fail_msg__sender_3542" = alloca [20 x i8], align 1 - store [20 x i8] %_sender, [20 x i8]* %"$fail_msg__sender_3542", align 1 - %"$tname_3543" = load %String, %String* %tname, align 8 - %"$err_3544" = load %String, %String* %err, align 8 - call void @"$fail_msg_292"(%Uint128 %_amount, [20 x i8]* %"$fail_msg__origin_3541", [20 x i8]* %"$fail_msg__sender_3542", %String %"$tname_3543", %String %"$err_3544"), !dbg !382 - br label %"$matchsucc_3516" - -"$empty_default_3520": ; preds = %"$have_gas_3514" - br label %"$matchsucc_3516" - -"$matchsucc_3516": ; preds = %"$have_gas_3539", %"$True_3521", %"$empty_default_3520" - %"$gasrem_3545" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3546" = icmp ugt i64 1, %"$gasrem_3545" - br i1 %"$gascmp_3546", label %"$out_of_gas_3547", label %"$have_gas_3548" - -"$out_of_gas_3547": ; preds = %"$matchsucc_3516" - call void @_out_of_gas() - br label %"$have_gas_3548" - -"$have_gas_3548": ; preds = %"$out_of_gas_3547", %"$matchsucc_3516" - %"$consume_3549" = sub i64 %"$gasrem_3545", 1 - store i64 %"$consume_3549", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %String* %err, metadata !776, metadata !DIExpression()), !dbg !779 + %"$gasrem_3583" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3584" = icmp ugt i64 1, %"$gasrem_3583" + br i1 %"$gascmp_3584", label %"$out_of_gas_3585", label %"$have_gas_3586" + +"$out_of_gas_3585": ; preds = %"$have_gas_3581" + call void @_out_of_gas() + br label %"$have_gas_3586" + +"$have_gas_3586": ; preds = %"$out_of_gas_3585", %"$have_gas_3581" + %"$consume_3587" = sub i64 %"$gasrem_3583", 1 + store i64 %"$consume_3587", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([22 x i8], [22 x i8]* @"$stringlit_3588", i32 0, i32 0), i32 22 }, %String* %err, align 8, !dbg !780 + %"$gasrem_3589" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3590" = icmp ugt i64 1, %"$gasrem_3589" + br i1 %"$gascmp_3590", label %"$out_of_gas_3591", label %"$have_gas_3592" + +"$out_of_gas_3591": ; preds = %"$have_gas_3586" + call void @_out_of_gas() + br label %"$have_gas_3592" + +"$have_gas_3592": ; preds = %"$out_of_gas_3591", %"$have_gas_3586" + %"$consume_3593" = sub i64 %"$gasrem_3589", 1 + store i64 %"$consume_3593", i64* @_gasrem, align 8 + %"$fail_msg__origin_3594" = alloca [20 x i8], align 1 + store [20 x i8] %_origin, [20 x i8]* %"$fail_msg__origin_3594", align 1 + %"$fail_msg__sender_3595" = alloca [20 x i8], align 1 + store [20 x i8] %_sender, [20 x i8]* %"$fail_msg__sender_3595", align 1 + %"$tname_3596" = load %String, %String* %tname, align 8 + %"$err_3597" = load %String, %String* %err, align 8 + call void @"$fail_msg_298"(%Uint128 %_amount, [20 x i8]* %"$fail_msg__origin_3594", [20 x i8]* %"$fail_msg__sender_3595", %String %"$tname_3596", %String %"$err_3597"), !dbg !781 + br label %"$matchsucc_3569" + +"$empty_default_3573": ; preds = %"$have_gas_3567" + br label %"$matchsucc_3569" + +"$matchsucc_3569": ; preds = %"$have_gas_3592", %"$True_3574", %"$empty_default_3573" + %"$gasrem_3598" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3599" = icmp ugt i64 1, %"$gasrem_3598" + br i1 %"$gascmp_3599", label %"$out_of_gas_3600", label %"$have_gas_3601" + +"$out_of_gas_3600": ; preds = %"$matchsucc_3569" + call void @_out_of_gas() + br label %"$have_gas_3601" + +"$have_gas_3601": ; preds = %"$out_of_gas_3600", %"$matchsucc_3569" + %"$consume_3602" = sub i64 %"$gasrem_3598", 1 + store i64 %"$consume_3602", i64* @_gasrem, align 8 %key1a = alloca %String, align 8 - %"$gasrem_3550" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3551" = icmp ugt i64 1, %"$gasrem_3550" - br i1 %"$gascmp_3551", label %"$out_of_gas_3552", label %"$have_gas_3553" + call void @llvm.dbg.declare(metadata %String* %key1a, metadata !782, metadata !DIExpression()), !dbg !783 + %"$gasrem_3603" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3604" = icmp ugt i64 1, %"$gasrem_3603" + br i1 %"$gascmp_3604", label %"$out_of_gas_3605", label %"$have_gas_3606" -"$out_of_gas_3552": ; preds = %"$have_gas_3548" +"$out_of_gas_3605": ; preds = %"$have_gas_3601" call void @_out_of_gas() - br label %"$have_gas_3553" + br label %"$have_gas_3606" -"$have_gas_3553": ; preds = %"$out_of_gas_3552", %"$have_gas_3548" - %"$consume_3554" = sub i64 %"$gasrem_3550", 1 - store i64 %"$consume_3554", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_3555", i32 0, i32 0), i32 5 }, %String* %key1a, align 8, !dbg !383 - %"$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" +"$have_gas_3606": ; preds = %"$out_of_gas_3605", %"$have_gas_3601" + %"$consume_3607" = sub i64 %"$gasrem_3603", 1 + store i64 %"$consume_3607", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_3608", i32 0, i32 0), i32 5 }, %String* %key1a, align 8, !dbg !784 + %"$gasrem_3609" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3610" = icmp ugt i64 1, %"$gasrem_3609" + br i1 %"$gascmp_3610", label %"$out_of_gas_3611", label %"$have_gas_3612" -"$out_of_gas_3558": ; preds = %"$have_gas_3553" +"$out_of_gas_3611": ; preds = %"$have_gas_3606" call void @_out_of_gas() - br label %"$have_gas_3559" + br label %"$have_gas_3612" -"$have_gas_3559": ; preds = %"$out_of_gas_3558", %"$have_gas_3553" - %"$consume_3560" = sub i64 %"$gasrem_3556", 1 - store i64 %"$consume_3560", i64* @_gasrem, align 8 +"$have_gas_3612": ; preds = %"$out_of_gas_3611", %"$have_gas_3606" + %"$consume_3613" = sub i64 %"$gasrem_3609", 1 + store i64 %"$consume_3613", i64* @_gasrem, align 8 %key2a = alloca %String, align 8 - %"$gasrem_3561" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3562" = icmp ugt i64 1, %"$gasrem_3561" - br i1 %"$gascmp_3562", label %"$out_of_gas_3563", label %"$have_gas_3564" + call void @llvm.dbg.declare(metadata %String* %key2a, metadata !785, metadata !DIExpression()), !dbg !786 + %"$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_3563": ; preds = %"$have_gas_3559" +"$out_of_gas_3616": ; preds = %"$have_gas_3612" call void @_out_of_gas() - br label %"$have_gas_3564" + br label %"$have_gas_3617" -"$have_gas_3564": ; preds = %"$out_of_gas_3563", %"$have_gas_3559" - %"$consume_3565" = sub i64 %"$gasrem_3561", 1 - store i64 %"$consume_3565", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_3566", i32 0, i32 0), i32 5 }, %String* %key2a, align 8, !dbg !384 - %"$gasrem_3567" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3568" = icmp ugt i64 1, %"$gasrem_3567" - br i1 %"$gascmp_3568", label %"$out_of_gas_3569", label %"$have_gas_3570" +"$have_gas_3617": ; preds = %"$out_of_gas_3616", %"$have_gas_3612" + %"$consume_3618" = sub i64 %"$gasrem_3614", 1 + store i64 %"$consume_3618", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_3619", i32 0, i32 0), i32 5 }, %String* %key2a, align 8, !dbg !787 + %"$gasrem_3620" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3621" = icmp ugt i64 1, %"$gasrem_3620" + br i1 %"$gascmp_3621", label %"$out_of_gas_3622", label %"$have_gas_3623" -"$out_of_gas_3569": ; preds = %"$have_gas_3564" +"$out_of_gas_3622": ; preds = %"$have_gas_3617" call void @_out_of_gas() - br label %"$have_gas_3570" + br label %"$have_gas_3623" -"$have_gas_3570": ; preds = %"$out_of_gas_3569", %"$have_gas_3564" - %"$consume_3571" = sub i64 %"$gasrem_3567", 1 - store i64 %"$consume_3571", i64* @_gasrem, align 8 +"$have_gas_3623": ; preds = %"$out_of_gas_3622", %"$have_gas_3617" + %"$consume_3624" = sub i64 %"$gasrem_3620", 1 + store i64 %"$consume_3624", i64* @_gasrem, align 8 %m2o = alloca %"TName_Option_Map_(String)_(Map_(String)_(String))"*, 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 - %"$execptr_load_3577" = load i8*, i8** @_execptr, align 8 - %"$m3_3578" = load %"Map_String_Map_(String)_(Map_(String)_(String))"*, %"Map_String_Map_(String)_(Map_(String)_(String))"** %m3, align 8 - %"$$m3_3578_3579" = bitcast %"Map_String_Map_(String)_(Map_(String)_(String))"* %"$m3_3578" to i8* - %"$get_key1a_3580" = alloca %String, align 8 - %"$key1a_3581" = load %String, %String* %key1a, align 8 - store %String %"$key1a_3581", %String* %"$get_key1a_3580", align 8 - %"$$get_key1a_3580_3582" = bitcast %String* %"$get_key1a_3580" to i8* - %"$get_call_3583" = call i8* @_get(i8* %"$execptr_load_3577", %_TyDescrTy_Typ* @"$TyDescr_Map_75", i8* %"$$m3_3578_3579", i8* %"$$get_key1a_3580_3582"), !dbg !385 - %"$get_3584" = bitcast i8* %"$get_call_3583" to %"TName_Option_Map_(String)_(Map_(String)_(String))"* - store %"TName_Option_Map_(String)_(Map_(String)_(String))"* %"$get_3584", %"TName_Option_Map_(String)_(Map_(String)_(String))"** %m2o, align 8, !dbg !385 - %"$gasrem_3585" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3586" = icmp ugt i64 2, %"$gasrem_3585" - br i1 %"$gascmp_3586", label %"$out_of_gas_3587", label %"$have_gas_3588" - -"$out_of_gas_3587": ; preds = %"$have_gas_3575" - call void @_out_of_gas() - br label %"$have_gas_3588" - -"$have_gas_3588": ; preds = %"$out_of_gas_3587", %"$have_gas_3575" - %"$consume_3589" = sub i64 %"$gasrem_3585", 2 - store i64 %"$consume_3589", i64* @_gasrem, align 8 - %"$m2o_3591" = load %"TName_Option_Map_(String)_(Map_(String)_(String))"*, %"TName_Option_Map_(String)_(Map_(String)_(String))"** %m2o, align 8 - %"$m2o_tag_3592" = getelementptr inbounds %"TName_Option_Map_(String)_(Map_(String)_(String))", %"TName_Option_Map_(String)_(Map_(String)_(String))"* %"$m2o_3591", i32 0, i32 0 - %"$m2o_tag_3593" = load i8, i8* %"$m2o_tag_3592", align 1 - switch i8 %"$m2o_tag_3593", label %"$empty_default_3594" [ - i8 0, label %"$Some_3595" - i8 1, label %"$None_3787" - ], !dbg !386 - -"$Some_3595": ; preds = %"$have_gas_3588" - %"$m2o_3596" = bitcast %"TName_Option_Map_(String)_(Map_(String)_(String))"* %"$m2o_3591" to %"CName_Some_Map_(String)_(Map_(String)_(String))"* - %"$m2_gep_3597" = getelementptr inbounds %"CName_Some_Map_(String)_(Map_(String)_(String))", %"CName_Some_Map_(String)_(Map_(String)_(String))"* %"$m2o_3596", i32 0, i32 1 - %"$m2_load_3598" = load %"Map_String_Map_(String)_(String)"*, %"Map_String_Map_(String)_(String)"** %"$m2_gep_3597", align 8 + call void @llvm.dbg.declare(metadata %"TName_Option_Map_(String)_(Map_(String)_(String))"** %m2o, metadata !788, metadata !DIExpression()), !dbg !791 + %"$gasrem_3625" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3626" = icmp ugt i64 1, %"$gasrem_3625" + br i1 %"$gascmp_3626", label %"$out_of_gas_3627", label %"$have_gas_3628" + +"$out_of_gas_3627": ; preds = %"$have_gas_3623" + call void @_out_of_gas() + br label %"$have_gas_3628" + +"$have_gas_3628": ; preds = %"$out_of_gas_3627", %"$have_gas_3623" + %"$consume_3629" = sub i64 %"$gasrem_3625", 1 + store i64 %"$consume_3629", i64* @_gasrem, align 8 + %"$execptr_load_3630" = load i8*, i8** @_execptr, align 8 + %"$m3_3631" = load %"Map_String_Map_(String)_(Map_(String)_(String))"*, %"Map_String_Map_(String)_(Map_(String)_(String))"** %m3, align 8 + %"$$m3_3631_3632" = bitcast %"Map_String_Map_(String)_(Map_(String)_(String))"* %"$m3_3631" to i8* + %"$get_key1a_3633" = alloca %String, align 8 + %"$key1a_3634" = load %String, %String* %key1a, align 8 + store %String %"$key1a_3634", %String* %"$get_key1a_3633", align 8 + %"$$get_key1a_3633_3635" = bitcast %String* %"$get_key1a_3633" to i8* + %"$get_call_3636" = call i8* @_get(i8* %"$execptr_load_3630", %_TyDescrTy_Typ* @"$TyDescr_Map_75", i8* %"$$m3_3631_3632", i8* %"$$get_key1a_3633_3635"), !dbg !792 + %"$get_3637" = bitcast i8* %"$get_call_3636" to %"TName_Option_Map_(String)_(Map_(String)_(String))"* + store %"TName_Option_Map_(String)_(Map_(String)_(String))"* %"$get_3637", %"TName_Option_Map_(String)_(Map_(String)_(String))"** %m2o, align 8, !dbg !792 + %"$gasrem_3638" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3639" = icmp ugt i64 2, %"$gasrem_3638" + br i1 %"$gascmp_3639", label %"$out_of_gas_3640", label %"$have_gas_3641" + +"$out_of_gas_3640": ; preds = %"$have_gas_3628" + call void @_out_of_gas() + br label %"$have_gas_3641" + +"$have_gas_3641": ; preds = %"$out_of_gas_3640", %"$have_gas_3628" + %"$consume_3642" = sub i64 %"$gasrem_3638", 2 + store i64 %"$consume_3642", i64* @_gasrem, align 8 + %"$m2o_3644" = load %"TName_Option_Map_(String)_(Map_(String)_(String))"*, %"TName_Option_Map_(String)_(Map_(String)_(String))"** %m2o, align 8 + %"$m2o_tag_3645" = getelementptr inbounds %"TName_Option_Map_(String)_(Map_(String)_(String))", %"TName_Option_Map_(String)_(Map_(String)_(String))"* %"$m2o_3644", i32 0, i32 0 + %"$m2o_tag_3646" = load i8, i8* %"$m2o_tag_3645", align 1 + switch i8 %"$m2o_tag_3646", label %"$empty_default_3647" [ + i8 0, label %"$Some_3648" + i8 1, label %"$None_3840" + ], !dbg !793 + +"$Some_3648": ; preds = %"$have_gas_3641" + %"$m2o_3649" = bitcast %"TName_Option_Map_(String)_(Map_(String)_(String))"* %"$m2o_3644" to %"CName_Some_Map_(String)_(Map_(String)_(String))"* + %"$m2_gep_3650" = getelementptr inbounds %"CName_Some_Map_(String)_(Map_(String)_(String))", %"CName_Some_Map_(String)_(Map_(String)_(String))"* %"$m2o_3649", i32 0, i32 1 + %"$m2_load_3651" = load %"Map_String_Map_(String)_(String)"*, %"Map_String_Map_(String)_(String)"** %"$m2_gep_3650", align 8 %m2 = alloca %"Map_String_Map_(String)_(String)"*, align 8 - store %"Map_String_Map_(String)_(String)"* %"$m2_load_3598", %"Map_String_Map_(String)_(String)"** %m2, align 8 - %"$gasrem_3599" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3600" = icmp ugt i64 1, %"$gasrem_3599" - br i1 %"$gascmp_3600", label %"$out_of_gas_3601", label %"$have_gas_3602" + store %"Map_String_Map_(String)_(String)"* %"$m2_load_3651", %"Map_String_Map_(String)_(String)"** %m2, align 8 + %"$gasrem_3652" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3653" = icmp ugt i64 1, %"$gasrem_3652" + br i1 %"$gascmp_3653", label %"$out_of_gas_3654", label %"$have_gas_3655" -"$out_of_gas_3601": ; preds = %"$Some_3595" +"$out_of_gas_3654": ; preds = %"$Some_3648" call void @_out_of_gas() - br label %"$have_gas_3602" + br label %"$have_gas_3655" -"$have_gas_3602": ; preds = %"$out_of_gas_3601", %"$Some_3595" - %"$consume_3603" = sub i64 %"$gasrem_3599", 1 - store i64 %"$consume_3603", i64* @_gasrem, align 8 +"$have_gas_3655": ; preds = %"$out_of_gas_3654", %"$Some_3648" + %"$consume_3656" = sub i64 %"$gasrem_3652", 1 + store i64 %"$consume_3656", i64* @_gasrem, align 8 %m2_size = alloca %Uint32, align 8 - %"$gasrem_3604" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3605" = icmp ugt i64 1, %"$gasrem_3604" - br i1 %"$gascmp_3605", label %"$out_of_gas_3606", label %"$have_gas_3607" - -"$out_of_gas_3606": ; preds = %"$have_gas_3602" - call void @_out_of_gas() - br label %"$have_gas_3607" - -"$have_gas_3607": ; preds = %"$out_of_gas_3606", %"$have_gas_3602" - %"$consume_3608" = sub i64 %"$gasrem_3604", 1 - store i64 %"$consume_3608", i64* @_gasrem, align 8 - %"$m2_3609" = load %"Map_String_Map_(String)_(String)"*, %"Map_String_Map_(String)_(String)"** %m2, align 8 - %"$$m2_3609_3610" = bitcast %"Map_String_Map_(String)_(String)"* %"$m2_3609" to i8* - %"$size_call_3611" = call %Uint32 @_size(i8* %"$$m2_3609_3610"), !dbg !387 - store %Uint32 %"$size_call_3611", %Uint32* %m2_size, align 4, !dbg !387 - %"$gasrem_3612" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3613" = icmp ugt i64 1, %"$gasrem_3612" - br i1 %"$gascmp_3613", label %"$out_of_gas_3614", label %"$have_gas_3615" - -"$out_of_gas_3614": ; preds = %"$have_gas_3607" - call void @_out_of_gas() - br label %"$have_gas_3615" - -"$have_gas_3615": ; preds = %"$out_of_gas_3614", %"$have_gas_3607" - %"$consume_3616" = sub i64 %"$gasrem_3612", 1 - store i64 %"$consume_3616", i64* @_gasrem, align 8 - %is_one_1 = alloca %TName_Bool*, align 8 - %"$gasrem_3617" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3618" = icmp ugt i64 4, %"$gasrem_3617" - br i1 %"$gascmp_3618", label %"$out_of_gas_3619", label %"$have_gas_3620" - -"$out_of_gas_3619": ; preds = %"$have_gas_3615" - call void @_out_of_gas() - br label %"$have_gas_3620" - -"$have_gas_3620": ; preds = %"$out_of_gas_3619", %"$have_gas_3615" - %"$consume_3621" = sub i64 %"$gasrem_3617", 4 - store i64 %"$consume_3621", i64* @_gasrem, align 8 - %"$execptr_load_3622" = load i8*, i8** @_execptr, align 8 - %"$m2_size_3623" = load %Uint32, %Uint32* %m2_size, align 4 - %"$one_3624" = load %Uint32, %Uint32* %one, align 4 - %"$eq_call_3625" = call %TName_Bool* @_eq_Uint32(i8* %"$execptr_load_3622", %Uint32 %"$m2_size_3623", %Uint32 %"$one_3624"), !dbg !390 - store %TName_Bool* %"$eq_call_3625", %TName_Bool** %is_one_1, align 8, !dbg !390 - %"$gasrem_3627" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3628" = icmp ugt i64 2, %"$gasrem_3627" - br i1 %"$gascmp_3628", label %"$out_of_gas_3629", label %"$have_gas_3630" - -"$out_of_gas_3629": ; preds = %"$have_gas_3620" - call void @_out_of_gas() - br label %"$have_gas_3630" - -"$have_gas_3630": ; preds = %"$out_of_gas_3629", %"$have_gas_3620" - %"$consume_3631" = sub i64 %"$gasrem_3627", 2 - store i64 %"$consume_3631", i64* @_gasrem, align 8 - %"$is_one_1_3633" = load %TName_Bool*, %TName_Bool** %is_one_1, align 8 - %"$is_one_1_tag_3634" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$is_one_1_3633", i32 0, i32 0 - %"$is_one_1_tag_3635" = load i8, i8* %"$is_one_1_tag_3634", align 1 - switch i8 %"$is_one_1_tag_3635", label %"$empty_default_3636" [ - i8 0, label %"$True_3637" - i8 1, label %"$False_3765" - ], !dbg !391 - -"$True_3637": ; preds = %"$have_gas_3630" - %"$is_one_1_3638" = bitcast %TName_Bool* %"$is_one_1_3633" to %CName_True* - %"$gasrem_3639" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3640" = icmp ugt i64 1, %"$gasrem_3639" - br i1 %"$gascmp_3640", label %"$out_of_gas_3641", label %"$have_gas_3642" - -"$out_of_gas_3641": ; preds = %"$True_3637" - call void @_out_of_gas() - br label %"$have_gas_3642" - -"$have_gas_3642": ; preds = %"$out_of_gas_3641", %"$True_3637" - %"$consume_3643" = sub i64 %"$gasrem_3639", 1 - store i64 %"$consume_3643", i64* @_gasrem, align 8 - %m1o = alloca %"TName_Option_Map_(String)_(String)"*, align 8 - %"$gasrem_3644" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3645" = icmp ugt i64 1, %"$gasrem_3644" - br i1 %"$gascmp_3645", label %"$out_of_gas_3646", label %"$have_gas_3647" - -"$out_of_gas_3646": ; preds = %"$have_gas_3642" - call void @_out_of_gas() - br label %"$have_gas_3647" - -"$have_gas_3647": ; preds = %"$out_of_gas_3646", %"$have_gas_3642" - %"$consume_3648" = sub i64 %"$gasrem_3644", 1 - store i64 %"$consume_3648", i64* @_gasrem, align 8 - %"$execptr_load_3649" = load i8*, i8** @_execptr, align 8 - %"$m2_3650" = load %"Map_String_Map_(String)_(String)"*, %"Map_String_Map_(String)_(String)"** %m2, align 8 - %"$$m2_3650_3651" = bitcast %"Map_String_Map_(String)_(String)"* %"$m2_3650" to i8* - %"$get_key2a_3652" = alloca %String, align 8 - %"$key2a_3653" = load %String, %String* %key2a, align 8 - store %String %"$key2a_3653", %String* %"$get_key2a_3652", align 8 - %"$$get_key2a_3652_3654" = bitcast %String* %"$get_key2a_3652" to i8* - %"$get_call_3655" = call i8* @_get(i8* %"$execptr_load_3649", %_TyDescrTy_Typ* @"$TyDescr_Map_76", i8* %"$$m2_3650_3651", i8* %"$$get_key2a_3652_3654"), !dbg !392 - %"$get_3656" = bitcast i8* %"$get_call_3655" to %"TName_Option_Map_(String)_(String)"* - store %"TName_Option_Map_(String)_(String)"* %"$get_3656", %"TName_Option_Map_(String)_(String)"** %m1o, align 8, !dbg !392 + call void @llvm.dbg.declare(metadata %Uint32* %m2_size, metadata !794, metadata !DIExpression()), !dbg !797 %"$gasrem_3657" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3658" = icmp ugt i64 2, %"$gasrem_3657" + %"$gascmp_3658" = icmp ugt i64 1, %"$gasrem_3657" br i1 %"$gascmp_3658", label %"$out_of_gas_3659", label %"$have_gas_3660" -"$out_of_gas_3659": ; preds = %"$have_gas_3647" +"$out_of_gas_3659": ; preds = %"$have_gas_3655" call void @_out_of_gas() br label %"$have_gas_3660" -"$have_gas_3660": ; preds = %"$out_of_gas_3659", %"$have_gas_3647" - %"$consume_3661" = sub i64 %"$gasrem_3657", 2 +"$have_gas_3660": ; preds = %"$out_of_gas_3659", %"$have_gas_3655" + %"$consume_3661" = sub i64 %"$gasrem_3657", 1 store i64 %"$consume_3661", i64* @_gasrem, align 8 - %"$m1o_3663" = load %"TName_Option_Map_(String)_(String)"*, %"TName_Option_Map_(String)_(String)"** %m1o, align 8 - %"$m1o_tag_3664" = getelementptr inbounds %"TName_Option_Map_(String)_(String)", %"TName_Option_Map_(String)_(String)"* %"$m1o_3663", i32 0, i32 0 - %"$m1o_tag_3665" = load i8, i8* %"$m1o_tag_3664", align 1 - switch i8 %"$m1o_tag_3665", label %"$empty_default_3666" [ - i8 0, label %"$Some_3667" - i8 1, label %"$None_3743" - ], !dbg !395 + %"$m2_3662" = load %"Map_String_Map_(String)_(String)"*, %"Map_String_Map_(String)_(String)"** %m2, align 8 + %"$$m2_3662_3663" = bitcast %"Map_String_Map_(String)_(String)"* %"$m2_3662" to i8* + %"$size_call_3664" = call %Uint32 @_size(i8* %"$$m2_3662_3663"), !dbg !798 + store %Uint32 %"$size_call_3664", %Uint32* %m2_size, align 4, !dbg !798 + %"$gasrem_3665" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3666" = icmp ugt i64 1, %"$gasrem_3665" + br i1 %"$gascmp_3666", label %"$out_of_gas_3667", label %"$have_gas_3668" + +"$out_of_gas_3667": ; preds = %"$have_gas_3660" + call void @_out_of_gas() + br label %"$have_gas_3668" -"$Some_3667": ; preds = %"$have_gas_3660" - %"$m1o_3668" = bitcast %"TName_Option_Map_(String)_(String)"* %"$m1o_3663" to %"CName_Some_Map_(String)_(String)"* - %"$m1_gep_3669" = getelementptr inbounds %"CName_Some_Map_(String)_(String)", %"CName_Some_Map_(String)_(String)"* %"$m1o_3668", i32 0, i32 1 - %"$m1_load_3670" = load %Map_String_String*, %Map_String_String** %"$m1_gep_3669", align 8 +"$have_gas_3668": ; preds = %"$out_of_gas_3667", %"$have_gas_3660" + %"$consume_3669" = sub i64 %"$gasrem_3665", 1 + store i64 %"$consume_3669", i64* @_gasrem, align 8 + %is_one_1 = alloca %TName_Bool*, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %is_one_1, metadata !799, metadata !DIExpression()), !dbg !800 + %"$gasrem_3670" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3671" = icmp ugt i64 4, %"$gasrem_3670" + br i1 %"$gascmp_3671", label %"$out_of_gas_3672", label %"$have_gas_3673" + +"$out_of_gas_3672": ; preds = %"$have_gas_3668" + call void @_out_of_gas() + br label %"$have_gas_3673" + +"$have_gas_3673": ; preds = %"$out_of_gas_3672", %"$have_gas_3668" + %"$consume_3674" = sub i64 %"$gasrem_3670", 4 + store i64 %"$consume_3674", i64* @_gasrem, align 8 + %"$execptr_load_3675" = load i8*, i8** @_execptr, align 8 + %"$m2_size_3676" = load %Uint32, %Uint32* %m2_size, align 4 + %"$one_3677" = load %Uint32, %Uint32* %one, align 4 + %"$eq_call_3678" = call %TName_Bool* @_eq_Uint32(i8* %"$execptr_load_3675", %Uint32 %"$m2_size_3676", %Uint32 %"$one_3677"), !dbg !801 + store %TName_Bool* %"$eq_call_3678", %TName_Bool** %is_one_1, align 8, !dbg !801 + %"$gasrem_3680" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3681" = icmp ugt i64 2, %"$gasrem_3680" + br i1 %"$gascmp_3681", label %"$out_of_gas_3682", label %"$have_gas_3683" + +"$out_of_gas_3682": ; preds = %"$have_gas_3673" + call void @_out_of_gas() + br label %"$have_gas_3683" + +"$have_gas_3683": ; preds = %"$out_of_gas_3682", %"$have_gas_3673" + %"$consume_3684" = sub i64 %"$gasrem_3680", 2 + store i64 %"$consume_3684", i64* @_gasrem, align 8 + %"$is_one_1_3686" = load %TName_Bool*, %TName_Bool** %is_one_1, align 8 + %"$is_one_1_tag_3687" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$is_one_1_3686", i32 0, i32 0 + %"$is_one_1_tag_3688" = load i8, i8* %"$is_one_1_tag_3687", align 1 + switch i8 %"$is_one_1_tag_3688", label %"$empty_default_3689" [ + i8 0, label %"$True_3690" + i8 1, label %"$False_3818" + ], !dbg !802 + +"$True_3690": ; preds = %"$have_gas_3683" + %"$is_one_1_3691" = bitcast %TName_Bool* %"$is_one_1_3686" to %CName_True* + %"$gasrem_3692" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3693" = icmp ugt i64 1, %"$gasrem_3692" + br i1 %"$gascmp_3693", label %"$out_of_gas_3694", label %"$have_gas_3695" + +"$out_of_gas_3694": ; preds = %"$True_3690" + call void @_out_of_gas() + br label %"$have_gas_3695" + +"$have_gas_3695": ; preds = %"$out_of_gas_3694", %"$True_3690" + %"$consume_3696" = sub i64 %"$gasrem_3692", 1 + store i64 %"$consume_3696", i64* @_gasrem, align 8 + %m1o = alloca %"TName_Option_Map_(String)_(String)"*, align 8 + call void @llvm.dbg.declare(metadata %"TName_Option_Map_(String)_(String)"** %m1o, metadata !803, metadata !DIExpression()), !dbg !806 + %"$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_3699": ; preds = %"$have_gas_3695" + call void @_out_of_gas() + br label %"$have_gas_3700" + +"$have_gas_3700": ; preds = %"$out_of_gas_3699", %"$have_gas_3695" + %"$consume_3701" = sub i64 %"$gasrem_3697", 1 + store i64 %"$consume_3701", i64* @_gasrem, align 8 + %"$execptr_load_3702" = load i8*, i8** @_execptr, align 8 + %"$m2_3703" = load %"Map_String_Map_(String)_(String)"*, %"Map_String_Map_(String)_(String)"** %m2, align 8 + %"$$m2_3703_3704" = bitcast %"Map_String_Map_(String)_(String)"* %"$m2_3703" to i8* + %"$get_key2a_3705" = alloca %String, align 8 + %"$key2a_3706" = load %String, %String* %key2a, align 8 + store %String %"$key2a_3706", %String* %"$get_key2a_3705", align 8 + %"$$get_key2a_3705_3707" = bitcast %String* %"$get_key2a_3705" to i8* + %"$get_call_3708" = call i8* @_get(i8* %"$execptr_load_3702", %_TyDescrTy_Typ* @"$TyDescr_Map_76", i8* %"$$m2_3703_3704", i8* %"$$get_key2a_3705_3707"), !dbg !807 + %"$get_3709" = bitcast i8* %"$get_call_3708" to %"TName_Option_Map_(String)_(String)"* + store %"TName_Option_Map_(String)_(String)"* %"$get_3709", %"TName_Option_Map_(String)_(String)"** %m1o, align 8, !dbg !807 + %"$gasrem_3710" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3711" = icmp ugt i64 2, %"$gasrem_3710" + br i1 %"$gascmp_3711", label %"$out_of_gas_3712", label %"$have_gas_3713" + +"$out_of_gas_3712": ; preds = %"$have_gas_3700" + call void @_out_of_gas() + br label %"$have_gas_3713" + +"$have_gas_3713": ; preds = %"$out_of_gas_3712", %"$have_gas_3700" + %"$consume_3714" = sub i64 %"$gasrem_3710", 2 + store i64 %"$consume_3714", i64* @_gasrem, align 8 + %"$m1o_3716" = load %"TName_Option_Map_(String)_(String)"*, %"TName_Option_Map_(String)_(String)"** %m1o, align 8 + %"$m1o_tag_3717" = getelementptr inbounds %"TName_Option_Map_(String)_(String)", %"TName_Option_Map_(String)_(String)"* %"$m1o_3716", i32 0, i32 0 + %"$m1o_tag_3718" = load i8, i8* %"$m1o_tag_3717", align 1 + switch i8 %"$m1o_tag_3718", label %"$empty_default_3719" [ + i8 0, label %"$Some_3720" + i8 1, label %"$None_3796" + ], !dbg !808 + +"$Some_3720": ; preds = %"$have_gas_3713" + %"$m1o_3721" = bitcast %"TName_Option_Map_(String)_(String)"* %"$m1o_3716" to %"CName_Some_Map_(String)_(String)"* + %"$m1_gep_3722" = getelementptr inbounds %"CName_Some_Map_(String)_(String)", %"CName_Some_Map_(String)_(String)"* %"$m1o_3721", i32 0, i32 1 + %"$m1_load_3723" = load %Map_String_String*, %Map_String_String** %"$m1_gep_3722", align 8 %m1 = alloca %Map_String_String*, align 8 - store %Map_String_String* %"$m1_load_3670", %Map_String_String** %m1, align 8 - %"$gasrem_3671" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3672" = icmp ugt i64 1, %"$gasrem_3671" - br i1 %"$gascmp_3672", label %"$out_of_gas_3673", label %"$have_gas_3674" + store %Map_String_String* %"$m1_load_3723", %Map_String_String** %m1, align 8 + %"$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_3673": ; preds = %"$Some_3667" +"$out_of_gas_3726": ; preds = %"$Some_3720" call void @_out_of_gas() - br label %"$have_gas_3674" + br label %"$have_gas_3727" -"$have_gas_3674": ; preds = %"$out_of_gas_3673", %"$Some_3667" - %"$consume_3675" = sub i64 %"$gasrem_3671", 1 - store i64 %"$consume_3675", i64* @_gasrem, align 8 +"$have_gas_3727": ; preds = %"$out_of_gas_3726", %"$Some_3720" + %"$consume_3728" = sub i64 %"$gasrem_3724", 1 + store i64 %"$consume_3728", i64* @_gasrem, align 8 %m1_size = alloca %Uint32, align 8 - %"$gasrem_3676" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3677" = icmp ugt i64 1, %"$gasrem_3676" - br i1 %"$gascmp_3677", label %"$out_of_gas_3678", label %"$have_gas_3679" + call void @llvm.dbg.declare(metadata %Uint32* %m1_size, metadata !809, metadata !DIExpression()), !dbg !812 + %"$gasrem_3729" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3730" = icmp ugt i64 1, %"$gasrem_3729" + br i1 %"$gascmp_3730", label %"$out_of_gas_3731", label %"$have_gas_3732" -"$out_of_gas_3678": ; preds = %"$have_gas_3674" +"$out_of_gas_3731": ; preds = %"$have_gas_3727" call void @_out_of_gas() - br label %"$have_gas_3679" + br label %"$have_gas_3732" -"$have_gas_3679": ; preds = %"$out_of_gas_3678", %"$have_gas_3674" - %"$consume_3680" = sub i64 %"$gasrem_3676", 1 - store i64 %"$consume_3680", i64* @_gasrem, align 8 - %"$m1_3681" = load %Map_String_String*, %Map_String_String** %m1, align 8 - %"$$m1_3681_3682" = bitcast %Map_String_String* %"$m1_3681" to i8* - %"$size_call_3683" = call %Uint32 @_size(i8* %"$$m1_3681_3682"), !dbg !396 - store %Uint32 %"$size_call_3683", %Uint32* %m1_size, align 4, !dbg !396 - %"$gasrem_3684" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3685" = icmp ugt i64 1, %"$gasrem_3684" - br i1 %"$gascmp_3685", label %"$out_of_gas_3686", label %"$have_gas_3687" +"$have_gas_3732": ; preds = %"$out_of_gas_3731", %"$have_gas_3727" + %"$consume_3733" = sub i64 %"$gasrem_3729", 1 + store i64 %"$consume_3733", i64* @_gasrem, align 8 + %"$m1_3734" = load %Map_String_String*, %Map_String_String** %m1, align 8 + %"$$m1_3734_3735" = bitcast %Map_String_String* %"$m1_3734" to i8* + %"$size_call_3736" = call %Uint32 @_size(i8* %"$$m1_3734_3735"), !dbg !813 + store %Uint32 %"$size_call_3736", %Uint32* %m1_size, align 4, !dbg !813 + %"$gasrem_3737" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3738" = icmp ugt i64 1, %"$gasrem_3737" + br i1 %"$gascmp_3738", label %"$out_of_gas_3739", label %"$have_gas_3740" -"$out_of_gas_3686": ; preds = %"$have_gas_3679" +"$out_of_gas_3739": ; preds = %"$have_gas_3732" call void @_out_of_gas() - br label %"$have_gas_3687" + br label %"$have_gas_3740" -"$have_gas_3687": ; preds = %"$out_of_gas_3686", %"$have_gas_3679" - %"$consume_3688" = sub i64 %"$gasrem_3684", 1 - store i64 %"$consume_3688", i64* @_gasrem, align 8 +"$have_gas_3740": ; preds = %"$out_of_gas_3739", %"$have_gas_3732" + %"$consume_3741" = sub i64 %"$gasrem_3737", 1 + store i64 %"$consume_3741", i64* @_gasrem, align 8 %zero = alloca %Uint32, align 8 - %"$gasrem_3689" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3690" = icmp ugt i64 1, %"$gasrem_3689" - br i1 %"$gascmp_3690", label %"$out_of_gas_3691", label %"$have_gas_3692" + call void @llvm.dbg.declare(metadata %Uint32* %zero, metadata !814, metadata !DIExpression()), !dbg !815 + %"$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" -"$out_of_gas_3691": ; preds = %"$have_gas_3687" +"$out_of_gas_3744": ; preds = %"$have_gas_3740" call void @_out_of_gas() - br label %"$have_gas_3692" + br label %"$have_gas_3745" -"$have_gas_3692": ; preds = %"$out_of_gas_3691", %"$have_gas_3687" - %"$consume_3693" = sub i64 %"$gasrem_3689", 1 - store i64 %"$consume_3693", i64* @_gasrem, align 8 - store %Uint32 zeroinitializer, %Uint32* %zero, align 4, !dbg !399 - %"$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" +"$have_gas_3745": ; preds = %"$out_of_gas_3744", %"$have_gas_3740" + %"$consume_3746" = sub i64 %"$gasrem_3742", 1 + store i64 %"$consume_3746", i64* @_gasrem, align 8 + store %Uint32 zeroinitializer, %Uint32* %zero, align 4, !dbg !816 + %"$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" -"$out_of_gas_3696": ; preds = %"$have_gas_3692" +"$out_of_gas_3749": ; preds = %"$have_gas_3745" call void @_out_of_gas() - br label %"$have_gas_3697" + br label %"$have_gas_3750" -"$have_gas_3697": ; preds = %"$out_of_gas_3696", %"$have_gas_3692" - %"$consume_3698" = sub i64 %"$gasrem_3694", 1 - store i64 %"$consume_3698", i64* @_gasrem, align 8 +"$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 %is_empty = alloca %TName_Bool*, align 8 - %"$gasrem_3699" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3700" = icmp ugt i64 4, %"$gasrem_3699" - br i1 %"$gascmp_3700", label %"$out_of_gas_3701", label %"$have_gas_3702" - -"$out_of_gas_3701": ; preds = %"$have_gas_3697" - call void @_out_of_gas() - br label %"$have_gas_3702" - -"$have_gas_3702": ; preds = %"$out_of_gas_3701", %"$have_gas_3697" - %"$consume_3703" = sub i64 %"$gasrem_3699", 4 - store i64 %"$consume_3703", i64* @_gasrem, align 8 - %"$execptr_load_3704" = load i8*, i8** @_execptr, align 8 - %"$m1_size_3705" = load %Uint32, %Uint32* %m1_size, align 4 - %"$zero_3706" = load %Uint32, %Uint32* %zero, align 4 - %"$eq_call_3707" = call %TName_Bool* @_eq_Uint32(i8* %"$execptr_load_3704", %Uint32 %"$m1_size_3705", %Uint32 %"$zero_3706"), !dbg !400 - store %TName_Bool* %"$eq_call_3707", %TName_Bool** %is_empty, align 8, !dbg !400 - %"$gasrem_3709" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3710" = icmp ugt i64 2, %"$gasrem_3709" - br i1 %"$gascmp_3710", label %"$out_of_gas_3711", label %"$have_gas_3712" - -"$out_of_gas_3711": ; preds = %"$have_gas_3702" - call void @_out_of_gas() - br label %"$have_gas_3712" - -"$have_gas_3712": ; preds = %"$out_of_gas_3711", %"$have_gas_3702" - %"$consume_3713" = sub i64 %"$gasrem_3709", 2 - store i64 %"$consume_3713", i64* @_gasrem, align 8 - %"$is_empty_3715" = load %TName_Bool*, %TName_Bool** %is_empty, align 8 - %"$is_empty_tag_3716" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$is_empty_3715", i32 0, i32 0 - %"$is_empty_tag_3717" = load i8, i8* %"$is_empty_tag_3716", align 1 - switch i8 %"$is_empty_tag_3717", label %"$empty_default_3718" [ - i8 0, label %"$True_3719" - i8 1, label %"$False_3721" - ], !dbg !401 - -"$True_3719": ; preds = %"$have_gas_3712" - %"$is_empty_3720" = bitcast %TName_Bool* %"$is_empty_3715" to %CName_True* - br label %"$matchsucc_3714" - -"$False_3721": ; preds = %"$have_gas_3712" - %"$is_empty_3722" = bitcast %TName_Bool* %"$is_empty_3715" to %CName_False* - %"$gasrem_3723" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3724" = icmp ugt i64 1, %"$gasrem_3723" - br i1 %"$gascmp_3724", label %"$out_of_gas_3725", label %"$have_gas_3726" - -"$out_of_gas_3725": ; preds = %"$False_3721" - call void @_out_of_gas() - br label %"$have_gas_3726" - -"$have_gas_3726": ; preds = %"$out_of_gas_3725", %"$False_3721" - %"$consume_3727" = sub i64 %"$gasrem_3723", 1 - store i64 %"$consume_3727", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %is_empty, metadata !817, metadata !DIExpression()), !dbg !818 + %"$gasrem_3752" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3753" = icmp ugt i64 4, %"$gasrem_3752" + br i1 %"$gascmp_3753", label %"$out_of_gas_3754", label %"$have_gas_3755" + +"$out_of_gas_3754": ; preds = %"$have_gas_3750" + call void @_out_of_gas() + br label %"$have_gas_3755" + +"$have_gas_3755": ; preds = %"$out_of_gas_3754", %"$have_gas_3750" + %"$consume_3756" = sub i64 %"$gasrem_3752", 4 + store i64 %"$consume_3756", i64* @_gasrem, align 8 + %"$execptr_load_3757" = load i8*, i8** @_execptr, align 8 + %"$m1_size_3758" = load %Uint32, %Uint32* %m1_size, align 4 + %"$zero_3759" = load %Uint32, %Uint32* %zero, align 4 + %"$eq_call_3760" = call %TName_Bool* @_eq_Uint32(i8* %"$execptr_load_3757", %Uint32 %"$m1_size_3758", %Uint32 %"$zero_3759"), !dbg !819 + store %TName_Bool* %"$eq_call_3760", %TName_Bool** %is_empty, align 8, !dbg !819 + %"$gasrem_3762" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3763" = icmp ugt i64 2, %"$gasrem_3762" + br i1 %"$gascmp_3763", label %"$out_of_gas_3764", label %"$have_gas_3765" + +"$out_of_gas_3764": ; preds = %"$have_gas_3755" + call void @_out_of_gas() + br label %"$have_gas_3765" + +"$have_gas_3765": ; preds = %"$out_of_gas_3764", %"$have_gas_3755" + %"$consume_3766" = sub i64 %"$gasrem_3762", 2 + store i64 %"$consume_3766", i64* @_gasrem, align 8 + %"$is_empty_3768" = load %TName_Bool*, %TName_Bool** %is_empty, align 8 + %"$is_empty_tag_3769" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$is_empty_3768", i32 0, i32 0 + %"$is_empty_tag_3770" = load i8, i8* %"$is_empty_tag_3769", align 1 + switch i8 %"$is_empty_tag_3770", label %"$empty_default_3771" [ + i8 0, label %"$True_3772" + i8 1, label %"$False_3774" + ], !dbg !820 + +"$True_3772": ; preds = %"$have_gas_3765" + %"$is_empty_3773" = bitcast %TName_Bool* %"$is_empty_3768" to %CName_True* + br label %"$matchsucc_3767" + +"$False_3774": ; preds = %"$have_gas_3765" + %"$is_empty_3775" = bitcast %TName_Bool* %"$is_empty_3768" to %CName_False* + %"$gasrem_3776" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3777" = icmp ugt i64 1, %"$gasrem_3776" + br i1 %"$gascmp_3777", label %"$out_of_gas_3778", label %"$have_gas_3779" + +"$out_of_gas_3778": ; preds = %"$False_3774" + call void @_out_of_gas() + br label %"$have_gas_3779" + +"$have_gas_3779": ; preds = %"$out_of_gas_3778", %"$False_3774" + %"$consume_3780" = sub i64 %"$gasrem_3776", 1 + store i64 %"$consume_3780", i64* @_gasrem, align 8 %err1 = alloca %String, align 8 - %"$gasrem_3728" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3729" = icmp ugt i64 1, %"$gasrem_3728" - br i1 %"$gascmp_3729", label %"$out_of_gas_3730", label %"$have_gas_3731" - -"$out_of_gas_3730": ; preds = %"$have_gas_3726" - call void @_out_of_gas() - br label %"$have_gas_3731" - -"$have_gas_3731": ; preds = %"$out_of_gas_3730", %"$have_gas_3726" - %"$consume_3732" = sub i64 %"$gasrem_3728", 1 - store i64 %"$consume_3732", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([36 x i8], [36 x i8]* @"$stringlit_3733", i32 0, i32 0), i32 36 }, %String* %err1, align 8, !dbg !402 - %"$gasrem_3734" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3735" = icmp ugt i64 1, %"$gasrem_3734" - br i1 %"$gascmp_3735", label %"$out_of_gas_3736", label %"$have_gas_3737" - -"$out_of_gas_3736": ; preds = %"$have_gas_3731" - call void @_out_of_gas() - br label %"$have_gas_3737" - -"$have_gas_3737": ; preds = %"$out_of_gas_3736", %"$have_gas_3731" - %"$consume_3738" = sub i64 %"$gasrem_3734", 1 - store i64 %"$consume_3738", i64* @_gasrem, align 8 - %"$fail_msg__origin_3739" = alloca [20 x i8], align 1 - store [20 x i8] %_origin, [20 x i8]* %"$fail_msg__origin_3739", align 1 - %"$fail_msg__sender_3740" = alloca [20 x i8], align 1 - store [20 x i8] %_sender, [20 x i8]* %"$fail_msg__sender_3740", align 1 - %"$tname_3741" = load %String, %String* %tname, align 8 - %"$err_3742" = load %String, %String* %err1, align 8 - call void @"$fail_msg_292"(%Uint128 %_amount, [20 x i8]* %"$fail_msg__origin_3739", [20 x i8]* %"$fail_msg__sender_3740", %String %"$tname_3741", %String %"$err_3742"), !dbg !405 - br label %"$matchsucc_3714" - -"$empty_default_3718": ; preds = %"$have_gas_3712" - br label %"$matchsucc_3714" - -"$matchsucc_3714": ; preds = %"$have_gas_3737", %"$True_3719", %"$empty_default_3718" - br label %"$matchsucc_3662" - -"$None_3743": ; preds = %"$have_gas_3660" - %"$m1o_3744" = bitcast %"TName_Option_Map_(String)_(String)"* %"$m1o_3663" to %"CName_None_Map_(String)_(String)"* - %"$gasrem_3745" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3746" = icmp ugt i64 1, %"$gasrem_3745" - br i1 %"$gascmp_3746", label %"$out_of_gas_3747", label %"$have_gas_3748" - -"$out_of_gas_3747": ; preds = %"$None_3743" - call void @_out_of_gas() - br label %"$have_gas_3748" - -"$have_gas_3748": ; preds = %"$out_of_gas_3747", %"$None_3743" - %"$consume_3749" = sub i64 %"$gasrem_3745", 1 - store i64 %"$consume_3749", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %String* %err1, metadata !821, metadata !DIExpression()), !dbg !824 + %"$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 = %"$have_gas_3779" + call void @_out_of_gas() + br label %"$have_gas_3784" + +"$have_gas_3784": ; preds = %"$out_of_gas_3783", %"$have_gas_3779" + %"$consume_3785" = sub i64 %"$gasrem_3781", 1 + store i64 %"$consume_3785", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([36 x i8], [36 x i8]* @"$stringlit_3786", i32 0, i32 0), i32 36 }, %String* %err1, align 8, !dbg !825 + %"$gasrem_3787" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3788" = icmp ugt i64 1, %"$gasrem_3787" + br i1 %"$gascmp_3788", label %"$out_of_gas_3789", label %"$have_gas_3790" + +"$out_of_gas_3789": ; preds = %"$have_gas_3784" + call void @_out_of_gas() + br label %"$have_gas_3790" + +"$have_gas_3790": ; preds = %"$out_of_gas_3789", %"$have_gas_3784" + %"$consume_3791" = sub i64 %"$gasrem_3787", 1 + store i64 %"$consume_3791", i64* @_gasrem, align 8 + %"$fail_msg__origin_3792" = alloca [20 x i8], align 1 + store [20 x i8] %_origin, [20 x i8]* %"$fail_msg__origin_3792", align 1 + %"$fail_msg__sender_3793" = alloca [20 x i8], align 1 + store [20 x i8] %_sender, [20 x i8]* %"$fail_msg__sender_3793", align 1 + %"$tname_3794" = load %String, %String* %tname, align 8 + %"$err_3795" = load %String, %String* %err1, align 8 + call void @"$fail_msg_298"(%Uint128 %_amount, [20 x i8]* %"$fail_msg__origin_3792", [20 x i8]* %"$fail_msg__sender_3793", %String %"$tname_3794", %String %"$err_3795"), !dbg !826 + br label %"$matchsucc_3767" + +"$empty_default_3771": ; preds = %"$have_gas_3765" + br label %"$matchsucc_3767" + +"$matchsucc_3767": ; preds = %"$have_gas_3790", %"$True_3772", %"$empty_default_3771" + br label %"$matchsucc_3715" + +"$None_3796": ; preds = %"$have_gas_3713" + %"$m1o_3797" = bitcast %"TName_Option_Map_(String)_(String)"* %"$m1o_3716" to %"CName_None_Map_(String)_(String)"* + %"$gasrem_3798" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3799" = icmp ugt i64 1, %"$gasrem_3798" + br i1 %"$gascmp_3799", label %"$out_of_gas_3800", label %"$have_gas_3801" + +"$out_of_gas_3800": ; preds = %"$None_3796" + call void @_out_of_gas() + br label %"$have_gas_3801" + +"$have_gas_3801": ; preds = %"$out_of_gas_3800", %"$None_3796" + %"$consume_3802" = sub i64 %"$gasrem_3798", 1 + store i64 %"$consume_3802", i64* @_gasrem, align 8 %err2 = alloca %String, align 8 - %"$gasrem_3750" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3751" = icmp ugt i64 1, %"$gasrem_3750" - br i1 %"$gascmp_3751", label %"$out_of_gas_3752", label %"$have_gas_3753" - -"$out_of_gas_3752": ; preds = %"$have_gas_3748" - call void @_out_of_gas() - br label %"$have_gas_3753" - -"$have_gas_3753": ; preds = %"$out_of_gas_3752", %"$have_gas_3748" - %"$consume_3754" = sub i64 %"$gasrem_3750", 1 - store i64 %"$consume_3754", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([19 x i8], [19 x i8]* @"$stringlit_3755", i32 0, i32 0), i32 19 }, %String* %err2, align 8, !dbg !406 - %"$gasrem_3756" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3757" = icmp ugt i64 1, %"$gasrem_3756" - br i1 %"$gascmp_3757", label %"$out_of_gas_3758", label %"$have_gas_3759" - -"$out_of_gas_3758": ; preds = %"$have_gas_3753" - call void @_out_of_gas() - br label %"$have_gas_3759" - -"$have_gas_3759": ; preds = %"$out_of_gas_3758", %"$have_gas_3753" - %"$consume_3760" = sub i64 %"$gasrem_3756", 1 - store i64 %"$consume_3760", i64* @_gasrem, align 8 - %"$fail_msg__origin_3761" = alloca [20 x i8], align 1 - store [20 x i8] %_origin, [20 x i8]* %"$fail_msg__origin_3761", align 1 - %"$fail_msg__sender_3762" = alloca [20 x i8], align 1 - store [20 x i8] %_sender, [20 x i8]* %"$fail_msg__sender_3762", align 1 - %"$tname_3763" = load %String, %String* %tname, align 8 - %"$err_3764" = load %String, %String* %err2, align 8 - call void @"$fail_msg_292"(%Uint128 %_amount, [20 x i8]* %"$fail_msg__origin_3761", [20 x i8]* %"$fail_msg__sender_3762", %String %"$tname_3763", %String %"$err_3764"), !dbg !408 - br label %"$matchsucc_3662" - -"$empty_default_3666": ; preds = %"$have_gas_3660" - br label %"$matchsucc_3662" - -"$matchsucc_3662": ; preds = %"$have_gas_3759", %"$matchsucc_3714", %"$empty_default_3666" - br label %"$matchsucc_3632" - -"$False_3765": ; preds = %"$have_gas_3630" - %"$is_one_1_3766" = bitcast %TName_Bool* %"$is_one_1_3633" to %CName_False* - %"$gasrem_3767" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3768" = icmp ugt i64 1, %"$gasrem_3767" - br i1 %"$gascmp_3768", label %"$out_of_gas_3769", label %"$have_gas_3770" + call void @llvm.dbg.declare(metadata %String* %err2, metadata !827, metadata !DIExpression()), !dbg !829 + %"$gasrem_3803" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3804" = icmp ugt i64 1, %"$gasrem_3803" + br i1 %"$gascmp_3804", label %"$out_of_gas_3805", label %"$have_gas_3806" -"$out_of_gas_3769": ; preds = %"$False_3765" +"$out_of_gas_3805": ; preds = %"$have_gas_3801" call void @_out_of_gas() - br label %"$have_gas_3770" + br label %"$have_gas_3806" -"$have_gas_3770": ; preds = %"$out_of_gas_3769", %"$False_3765" - %"$consume_3771" = sub i64 %"$gasrem_3767", 1 - store i64 %"$consume_3771", i64* @_gasrem, align 8 - %err3 = alloca %String, 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_3774": ; preds = %"$have_gas_3770" - call void @_out_of_gas() - br label %"$have_gas_3775" - -"$have_gas_3775": ; preds = %"$out_of_gas_3774", %"$have_gas_3770" - %"$consume_3776" = sub i64 %"$gasrem_3772", 1 - store i64 %"$consume_3776", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([28 x i8], [28 x i8]* @"$stringlit_3777", i32 0, i32 0), i32 28 }, %String* %err3, align 8, !dbg !409 - %"$gasrem_3778" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3779" = icmp ugt i64 1, %"$gasrem_3778" - br i1 %"$gascmp_3779", label %"$out_of_gas_3780", label %"$have_gas_3781" - -"$out_of_gas_3780": ; preds = %"$have_gas_3775" - call void @_out_of_gas() - br label %"$have_gas_3781" - -"$have_gas_3781": ; preds = %"$out_of_gas_3780", %"$have_gas_3775" - %"$consume_3782" = sub i64 %"$gasrem_3778", 1 - store i64 %"$consume_3782", i64* @_gasrem, align 8 - %"$fail_msg__origin_3783" = alloca [20 x i8], align 1 - store [20 x i8] %_origin, [20 x i8]* %"$fail_msg__origin_3783", align 1 - %"$fail_msg__sender_3784" = alloca [20 x i8], align 1 - store [20 x i8] %_sender, [20 x i8]* %"$fail_msg__sender_3784", align 1 - %"$tname_3785" = load %String, %String* %tname, align 8 - %"$err_3786" = load %String, %String* %err3, align 8 - call void @"$fail_msg_292"(%Uint128 %_amount, [20 x i8]* %"$fail_msg__origin_3783", [20 x i8]* %"$fail_msg__sender_3784", %String %"$tname_3785", %String %"$err_3786"), !dbg !411 - br label %"$matchsucc_3632" - -"$empty_default_3636": ; preds = %"$have_gas_3630" - br label %"$matchsucc_3632" - -"$matchsucc_3632": ; preds = %"$have_gas_3781", %"$matchsucc_3662", %"$empty_default_3636" - br label %"$matchsucc_3590" - -"$None_3787": ; preds = %"$have_gas_3588" - %"$m2o_3788" = bitcast %"TName_Option_Map_(String)_(Map_(String)_(String))"* %"$m2o_3591" to %"CName_None_Map_(String)_(Map_(String)_(String))"* - %"$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" - -"$out_of_gas_3791": ; preds = %"$None_3787" - call void @_out_of_gas() - br label %"$have_gas_3792" - -"$have_gas_3792": ; preds = %"$out_of_gas_3791", %"$None_3787" - %"$consume_3793" = sub i64 %"$gasrem_3789", 1 - store i64 %"$consume_3793", i64* @_gasrem, align 8 - %err4 = alloca %String, 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_3796": ; preds = %"$have_gas_3792" - call void @_out_of_gas() - br label %"$have_gas_3797" - -"$have_gas_3797": ; preds = %"$out_of_gas_3796", %"$have_gas_3792" - %"$consume_3798" = sub i64 %"$gasrem_3794", 1 - store i64 %"$consume_3798", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([19 x i8], [19 x i8]* @"$stringlit_3799", i32 0, i32 0), i32 19 }, %String* %err4, align 8, !dbg !412 - %"$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" - -"$out_of_gas_3802": ; preds = %"$have_gas_3797" - call void @_out_of_gas() - br label %"$have_gas_3803" - -"$have_gas_3803": ; preds = %"$out_of_gas_3802", %"$have_gas_3797" - %"$consume_3804" = sub i64 %"$gasrem_3800", 1 - store i64 %"$consume_3804", i64* @_gasrem, align 8 - %"$fail_msg__origin_3805" = alloca [20 x i8], align 1 - store [20 x i8] %_origin, [20 x i8]* %"$fail_msg__origin_3805", align 1 - %"$fail_msg__sender_3806" = alloca [20 x i8], align 1 - store [20 x i8] %_sender, [20 x i8]* %"$fail_msg__sender_3806", align 1 - %"$tname_3807" = load %String, %String* %tname, align 8 - %"$err_3808" = load %String, %String* %err4, align 8 - call void @"$fail_msg_292"(%Uint128 %_amount, [20 x i8]* %"$fail_msg__origin_3805", [20 x i8]* %"$fail_msg__sender_3806", %String %"$tname_3807", %String %"$err_3808"), !dbg !414 - br label %"$matchsucc_3590" - -"$empty_default_3594": ; preds = %"$have_gas_3588" - br label %"$matchsucc_3590" - -"$matchsucc_3590": ; preds = %"$have_gas_3803", %"$matchsucc_3632", %"$empty_default_3594" +"$have_gas_3806": ; preds = %"$out_of_gas_3805", %"$have_gas_3801" + %"$consume_3807" = sub i64 %"$gasrem_3803", 1 + store i64 %"$consume_3807", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([19 x i8], [19 x i8]* @"$stringlit_3808", i32 0, i32 0), i32 19 }, %String* %err2, align 8, !dbg !830 %"$gasrem_3809" = load i64, i64* @_gasrem, align 8 %"$gascmp_3810" = icmp ugt i64 1, %"$gasrem_3809" br i1 %"$gascmp_3810", label %"$out_of_gas_3811", label %"$have_gas_3812" -"$out_of_gas_3811": ; preds = %"$matchsucc_3590" +"$out_of_gas_3811": ; preds = %"$have_gas_3806" call void @_out_of_gas() br label %"$have_gas_3812" -"$have_gas_3812": ; preds = %"$out_of_gas_3811", %"$matchsucc_3590" +"$have_gas_3812": ; preds = %"$out_of_gas_3811", %"$have_gas_3806" %"$consume_3813" = sub i64 %"$gasrem_3809", 1 store i64 %"$consume_3813", i64* @_gasrem, align 8 - %key1b = alloca %String, align 8 - %"$gasrem_3814" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3815" = icmp ugt i64 1, %"$gasrem_3814" - br i1 %"$gascmp_3815", label %"$out_of_gas_3816", label %"$have_gas_3817" - -"$out_of_gas_3816": ; preds = %"$have_gas_3812" - call void @_out_of_gas() - br label %"$have_gas_3817" - -"$have_gas_3817": ; preds = %"$out_of_gas_3816", %"$have_gas_3812" - %"$consume_3818" = sub i64 %"$gasrem_3814", 1 - store i64 %"$consume_3818", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_3819", i32 0, i32 0), i32 5 }, %String* %key1b, align 8, !dbg !415 + %"$fail_msg__origin_3814" = alloca [20 x i8], align 1 + store [20 x i8] %_origin, [20 x i8]* %"$fail_msg__origin_3814", align 1 + %"$fail_msg__sender_3815" = alloca [20 x i8], align 1 + store [20 x i8] %_sender, [20 x i8]* %"$fail_msg__sender_3815", align 1 + %"$tname_3816" = load %String, %String* %tname, align 8 + %"$err_3817" = load %String, %String* %err2, align 8 + call void @"$fail_msg_298"(%Uint128 %_amount, [20 x i8]* %"$fail_msg__origin_3814", [20 x i8]* %"$fail_msg__sender_3815", %String %"$tname_3816", %String %"$err_3817"), !dbg !831 + br label %"$matchsucc_3715" + +"$empty_default_3719": ; preds = %"$have_gas_3713" + br label %"$matchsucc_3715" + +"$matchsucc_3715": ; preds = %"$have_gas_3812", %"$matchsucc_3767", %"$empty_default_3719" + br label %"$matchsucc_3685" + +"$False_3818": ; preds = %"$have_gas_3683" + %"$is_one_1_3819" = bitcast %TName_Bool* %"$is_one_1_3686" to %CName_False* %"$gasrem_3820" = load i64, i64* @_gasrem, align 8 %"$gascmp_3821" = icmp ugt i64 1, %"$gasrem_3820" br i1 %"$gascmp_3821", label %"$out_of_gas_3822", label %"$have_gas_3823" -"$out_of_gas_3822": ; preds = %"$have_gas_3817" +"$out_of_gas_3822": ; preds = %"$False_3818" call void @_out_of_gas() br label %"$have_gas_3823" -"$have_gas_3823": ; preds = %"$out_of_gas_3822", %"$have_gas_3817" +"$have_gas_3823": ; preds = %"$out_of_gas_3822", %"$False_3818" %"$consume_3824" = sub i64 %"$gasrem_3820", 1 store i64 %"$consume_3824", i64* @_gasrem, align 8 - %key2b = alloca %String, align 8 + %err3 = alloca %String, align 8 + call void @llvm.dbg.declare(metadata %String* %err3, metadata !832, metadata !DIExpression()), !dbg !834 %"$gasrem_3825" = load i64, i64* @_gasrem, align 8 %"$gascmp_3826" = icmp ugt i64 1, %"$gasrem_3825" br i1 %"$gascmp_3826", label %"$out_of_gas_3827", label %"$have_gas_3828" @@ -7819,7 +8041,7 @@ entry: "$have_gas_3828": ; preds = %"$out_of_gas_3827", %"$have_gas_3823" %"$consume_3829" = sub i64 %"$gasrem_3825", 1 store i64 %"$consume_3829", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_3830", i32 0, i32 0), i32 5 }, %String* %key2b, align 8, !dbg !416 + store %String { i8* getelementptr inbounds ([28 x i8], [28 x i8]* @"$stringlit_3830", i32 0, i32 0), i32 28 }, %String* %err3, align 8, !dbg !835 %"$gasrem_3831" = load i64, i64* @_gasrem, align 8 %"$gascmp_3832" = icmp ugt i64 1, %"$gasrem_3831" br i1 %"$gascmp_3832", label %"$out_of_gas_3833", label %"$have_gas_3834" @@ -7831,31 +8053,36 @@ entry: "$have_gas_3834": ; preds = %"$out_of_gas_3833", %"$have_gas_3828" %"$consume_3835" = sub i64 %"$gasrem_3831", 1 store i64 %"$consume_3835", i64* @_gasrem, align 8 - %key1c = alloca %String, align 8 - %"$gasrem_3836" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3837" = icmp ugt i64 1, %"$gasrem_3836" - br i1 %"$gascmp_3837", label %"$out_of_gas_3838", label %"$have_gas_3839" - -"$out_of_gas_3838": ; preds = %"$have_gas_3834" - call void @_out_of_gas() - br label %"$have_gas_3839" - -"$have_gas_3839": ; preds = %"$out_of_gas_3838", %"$have_gas_3834" - %"$consume_3840" = sub i64 %"$gasrem_3836", 1 - store i64 %"$consume_3840", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_3841", i32 0, i32 0), i32 5 }, %String* %key1c, align 8, !dbg !417 + %"$fail_msg__origin_3836" = alloca [20 x i8], align 1 + store [20 x i8] %_origin, [20 x i8]* %"$fail_msg__origin_3836", align 1 + %"$fail_msg__sender_3837" = alloca [20 x i8], align 1 + store [20 x i8] %_sender, [20 x i8]* %"$fail_msg__sender_3837", align 1 + %"$tname_3838" = load %String, %String* %tname, align 8 + %"$err_3839" = load %String, %String* %err3, align 8 + call void @"$fail_msg_298"(%Uint128 %_amount, [20 x i8]* %"$fail_msg__origin_3836", [20 x i8]* %"$fail_msg__sender_3837", %String %"$tname_3838", %String %"$err_3839"), !dbg !836 + br label %"$matchsucc_3685" + +"$empty_default_3689": ; preds = %"$have_gas_3683" + br label %"$matchsucc_3685" + +"$matchsucc_3685": ; preds = %"$have_gas_3834", %"$matchsucc_3715", %"$empty_default_3689" + br label %"$matchsucc_3643" + +"$None_3840": ; preds = %"$have_gas_3641" + %"$m2o_3841" = bitcast %"TName_Option_Map_(String)_(Map_(String)_(String))"* %"$m2o_3644" to %"CName_None_Map_(String)_(Map_(String)_(String))"* %"$gasrem_3842" = load i64, i64* @_gasrem, align 8 %"$gascmp_3843" = icmp ugt i64 1, %"$gasrem_3842" br i1 %"$gascmp_3843", label %"$out_of_gas_3844", label %"$have_gas_3845" -"$out_of_gas_3844": ; preds = %"$have_gas_3839" +"$out_of_gas_3844": ; preds = %"$None_3840" call void @_out_of_gas() br label %"$have_gas_3845" -"$have_gas_3845": ; preds = %"$out_of_gas_3844", %"$have_gas_3839" +"$have_gas_3845": ; preds = %"$out_of_gas_3844", %"$None_3840" %"$consume_3846" = sub i64 %"$gasrem_3842", 1 store i64 %"$consume_3846", i64* @_gasrem, align 8 - %key2c = alloca %String, align 8 + %err4 = alloca %String, align 8 + call void @llvm.dbg.declare(metadata %String* %err4, metadata !837, metadata !DIExpression()), !dbg !839 %"$gasrem_3847" = load i64, i64* @_gasrem, align 8 %"$gascmp_3848" = icmp ugt i64 1, %"$gasrem_3847" br i1 %"$gascmp_3848", label %"$out_of_gas_3849", label %"$have_gas_3850" @@ -7867,7 +8094,7 @@ entry: "$have_gas_3850": ; preds = %"$out_of_gas_3849", %"$have_gas_3845" %"$consume_3851" = sub i64 %"$gasrem_3847", 1 store i64 %"$consume_3851", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_3852", i32 0, i32 0), i32 5 }, %String* %key2c, align 8, !dbg !418 + store %String { i8* getelementptr inbounds ([19 x i8], [19 x i8]* @"$stringlit_3852", i32 0, i32 0), i32 19 }, %String* %err4, align 8, !dbg !840 %"$gasrem_3853" = load i64, i64* @_gasrem, align 8 %"$gascmp_3854" = icmp ugt i64 1, %"$gasrem_3853" br i1 %"$gascmp_3854", label %"$out_of_gas_3855", label %"$have_gas_3856" @@ -7879,2532 +8106,3283 @@ entry: "$have_gas_3856": ; preds = %"$out_of_gas_3855", %"$have_gas_3850" %"$consume_3857" = sub i64 %"$gasrem_3853", 1 store i64 %"$consume_3857", i64* @_gasrem, align 8 + %"$fail_msg__origin_3858" = alloca [20 x i8], align 1 + store [20 x i8] %_origin, [20 x i8]* %"$fail_msg__origin_3858", align 1 + %"$fail_msg__sender_3859" = alloca [20 x i8], align 1 + store [20 x i8] %_sender, [20 x i8]* %"$fail_msg__sender_3859", align 1 + %"$tname_3860" = load %String, %String* %tname, align 8 + %"$err_3861" = load %String, %String* %err4, align 8 + call void @"$fail_msg_298"(%Uint128 %_amount, [20 x i8]* %"$fail_msg__origin_3858", [20 x i8]* %"$fail_msg__sender_3859", %String %"$tname_3860", %String %"$err_3861"), !dbg !841 + br label %"$matchsucc_3643" + +"$empty_default_3647": ; preds = %"$have_gas_3641" + br label %"$matchsucc_3643" + +"$matchsucc_3643": ; preds = %"$have_gas_3856", %"$matchsucc_3685", %"$empty_default_3647" + %"$gasrem_3862" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3863" = icmp ugt i64 1, %"$gasrem_3862" + br i1 %"$gascmp_3863", label %"$out_of_gas_3864", label %"$have_gas_3865" + +"$out_of_gas_3864": ; preds = %"$matchsucc_3643" + call void @_out_of_gas() + br label %"$have_gas_3865" + +"$have_gas_3865": ; preds = %"$out_of_gas_3864", %"$matchsucc_3643" + %"$consume_3866" = sub i64 %"$gasrem_3862", 1 + store i64 %"$consume_3866", i64* @_gasrem, align 8 + %key1b = alloca %String, align 8 + call void @llvm.dbg.declare(metadata %String* %key1b, metadata !842, metadata !DIExpression()), !dbg !843 + %"$gasrem_3867" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3868" = icmp ugt i64 1, %"$gasrem_3867" + br i1 %"$gascmp_3868", label %"$out_of_gas_3869", label %"$have_gas_3870" + +"$out_of_gas_3869": ; preds = %"$have_gas_3865" + call void @_out_of_gas() + br label %"$have_gas_3870" + +"$have_gas_3870": ; preds = %"$out_of_gas_3869", %"$have_gas_3865" + %"$consume_3871" = sub i64 %"$gasrem_3867", 1 + store i64 %"$consume_3871", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_3872", i32 0, i32 0), i32 5 }, %String* %key1b, align 8, !dbg !844 + %"$gasrem_3873" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3874" = icmp ugt i64 1, %"$gasrem_3873" + br i1 %"$gascmp_3874", label %"$out_of_gas_3875", label %"$have_gas_3876" + +"$out_of_gas_3875": ; preds = %"$have_gas_3870" + call void @_out_of_gas() + br label %"$have_gas_3876" + +"$have_gas_3876": ; preds = %"$out_of_gas_3875", %"$have_gas_3870" + %"$consume_3877" = sub i64 %"$gasrem_3873", 1 + store i64 %"$consume_3877", i64* @_gasrem, align 8 + %key2b = alloca %String, align 8 + call void @llvm.dbg.declare(metadata %String* %key2b, metadata !845, metadata !DIExpression()), !dbg !846 + %"$gasrem_3878" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3879" = icmp ugt i64 1, %"$gasrem_3878" + br i1 %"$gascmp_3879", label %"$out_of_gas_3880", label %"$have_gas_3881" + +"$out_of_gas_3880": ; preds = %"$have_gas_3876" + call void @_out_of_gas() + br label %"$have_gas_3881" + +"$have_gas_3881": ; preds = %"$out_of_gas_3880", %"$have_gas_3876" + %"$consume_3882" = sub i64 %"$gasrem_3878", 1 + store i64 %"$consume_3882", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_3883", i32 0, i32 0), i32 5 }, %String* %key2b, align 8, !dbg !847 + %"$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_3881" + call void @_out_of_gas() + br label %"$have_gas_3887" + +"$have_gas_3887": ; preds = %"$out_of_gas_3886", %"$have_gas_3881" + %"$consume_3888" = sub i64 %"$gasrem_3884", 1 + store i64 %"$consume_3888", i64* @_gasrem, align 8 + %key1c = alloca %String, align 8 + call void @llvm.dbg.declare(metadata %String* %key1c, metadata !848, metadata !DIExpression()), !dbg !849 + %"$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_3891": ; preds = %"$have_gas_3887" + call void @_out_of_gas() + br label %"$have_gas_3892" + +"$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 + store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_3894", i32 0, i32 0), i32 5 }, %String* %key1c, align 8, !dbg !850 + %"$gasrem_3895" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3896" = icmp ugt i64 1, %"$gasrem_3895" + br i1 %"$gascmp_3896", label %"$out_of_gas_3897", label %"$have_gas_3898" + +"$out_of_gas_3897": ; preds = %"$have_gas_3892" + call void @_out_of_gas() + br label %"$have_gas_3898" + +"$have_gas_3898": ; preds = %"$out_of_gas_3897", %"$have_gas_3892" + %"$consume_3899" = sub i64 %"$gasrem_3895", 1 + store i64 %"$consume_3899", i64* @_gasrem, align 8 + %key2c = alloca %String, align 8 + call void @llvm.dbg.declare(metadata %String* %key2c, metadata !851, metadata !DIExpression()), !dbg !852 + %"$gasrem_3900" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3901" = icmp ugt i64 1, %"$gasrem_3900" + br i1 %"$gascmp_3901", label %"$out_of_gas_3902", label %"$have_gas_3903" + +"$out_of_gas_3902": ; preds = %"$have_gas_3898" + call void @_out_of_gas() + br label %"$have_gas_3903" + +"$have_gas_3903": ; preds = %"$out_of_gas_3902", %"$have_gas_3898" + %"$consume_3904" = sub i64 %"$gasrem_3900", 1 + store i64 %"$consume_3904", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_3905", i32 0, i32 0), i32 5 }, %String* %key2c, align 8, !dbg !853 + %"$gasrem_3906" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3907" = icmp ugt i64 1, %"$gasrem_3906" + br i1 %"$gascmp_3907", label %"$out_of_gas_3908", label %"$have_gas_3909" + +"$out_of_gas_3908": ; preds = %"$have_gas_3903" + call void @_out_of_gas() + br label %"$have_gas_3909" + +"$have_gas_3909": ; preds = %"$out_of_gas_3908", %"$have_gas_3903" + %"$consume_3910" = sub i64 %"$gasrem_3906", 1 + store i64 %"$consume_3910", i64* @_gasrem, align 8 %key1d = alloca %String, align 8 - %"$gasrem_3858" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3859" = icmp ugt i64 1, %"$gasrem_3858" - br i1 %"$gascmp_3859", label %"$out_of_gas_3860", label %"$have_gas_3861" + call void @llvm.dbg.declare(metadata %String* %key1d, metadata !854, metadata !DIExpression()), !dbg !855 + %"$gasrem_3911" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3912" = icmp ugt i64 1, %"$gasrem_3911" + br i1 %"$gascmp_3912", label %"$out_of_gas_3913", label %"$have_gas_3914" -"$out_of_gas_3860": ; preds = %"$have_gas_3856" +"$out_of_gas_3913": ; preds = %"$have_gas_3909" call void @_out_of_gas() - br label %"$have_gas_3861" + br label %"$have_gas_3914" -"$have_gas_3861": ; preds = %"$out_of_gas_3860", %"$have_gas_3856" - %"$consume_3862" = sub i64 %"$gasrem_3858", 1 - store i64 %"$consume_3862", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_3863", i32 0, i32 0), i32 5 }, %String* %key1d, align 8, !dbg !419 - %"$gasrem_3864" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3865" = icmp ugt i64 1, %"$gasrem_3864" - br i1 %"$gascmp_3865", label %"$out_of_gas_3866", label %"$have_gas_3867" +"$have_gas_3914": ; preds = %"$out_of_gas_3913", %"$have_gas_3909" + %"$consume_3915" = sub i64 %"$gasrem_3911", 1 + store i64 %"$consume_3915", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_3916", i32 0, i32 0), i32 5 }, %String* %key1d, align 8, !dbg !856 + %"$gasrem_3917" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3918" = icmp ugt i64 1, %"$gasrem_3917" + br i1 %"$gascmp_3918", label %"$out_of_gas_3919", label %"$have_gas_3920" -"$out_of_gas_3866": ; preds = %"$have_gas_3861" +"$out_of_gas_3919": ; preds = %"$have_gas_3914" call void @_out_of_gas() - br label %"$have_gas_3867" + br label %"$have_gas_3920" -"$have_gas_3867": ; preds = %"$out_of_gas_3866", %"$have_gas_3861" - %"$consume_3868" = sub i64 %"$gasrem_3864", 1 - store i64 %"$consume_3868", i64* @_gasrem, align 8 +"$have_gas_3920": ; preds = %"$out_of_gas_3919", %"$have_gas_3914" + %"$consume_3921" = sub i64 %"$gasrem_3917", 1 + store i64 %"$consume_3921", i64* @_gasrem, align 8 %key2d = alloca %String, align 8 - %"$gasrem_3869" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3870" = icmp ugt i64 1, %"$gasrem_3869" - br i1 %"$gascmp_3870", label %"$out_of_gas_3871", label %"$have_gas_3872" + call void @llvm.dbg.declare(metadata %String* %key2d, metadata !857, metadata !DIExpression()), !dbg !858 + %"$gasrem_3922" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3923" = icmp ugt i64 1, %"$gasrem_3922" + br i1 %"$gascmp_3923", label %"$out_of_gas_3924", label %"$have_gas_3925" -"$out_of_gas_3871": ; preds = %"$have_gas_3867" +"$out_of_gas_3924": ; preds = %"$have_gas_3920" call void @_out_of_gas() - br label %"$have_gas_3872" + br label %"$have_gas_3925" -"$have_gas_3872": ; preds = %"$out_of_gas_3871", %"$have_gas_3867" - %"$consume_3873" = sub i64 %"$gasrem_3869", 1 - store i64 %"$consume_3873", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_3874", i32 0, i32 0), i32 5 }, %String* %key2d, align 8, !dbg !420 - %"$gasrem_3875" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3876" = icmp ugt i64 1, %"$gasrem_3875" - br i1 %"$gascmp_3876", label %"$out_of_gas_3877", label %"$have_gas_3878" +"$have_gas_3925": ; preds = %"$out_of_gas_3924", %"$have_gas_3920" + %"$consume_3926" = sub i64 %"$gasrem_3922", 1 + store i64 %"$consume_3926", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_3927", i32 0, i32 0), i32 5 }, %String* %key2d, align 8, !dbg !859 + %"$gasrem_3928" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3929" = icmp ugt i64 1, %"$gasrem_3928" + br i1 %"$gascmp_3929", label %"$out_of_gas_3930", label %"$have_gas_3931" -"$out_of_gas_3877": ; preds = %"$have_gas_3872" +"$out_of_gas_3930": ; preds = %"$have_gas_3925" call void @_out_of_gas() - br label %"$have_gas_3878" + br label %"$have_gas_3931" -"$have_gas_3878": ; preds = %"$out_of_gas_3877", %"$have_gas_3872" - %"$consume_3879" = sub i64 %"$gasrem_3875", 1 - store i64 %"$consume_3879", i64* @_gasrem, align 8 +"$have_gas_3931": ; preds = %"$out_of_gas_3930", %"$have_gas_3925" + %"$consume_3932" = sub i64 %"$gasrem_3928", 1 + store i64 %"$consume_3932", i64* @_gasrem, align 8 %v1 = alloca %String, align 8 - %"$gasrem_3880" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3881" = icmp ugt i64 1, %"$gasrem_3880" - br i1 %"$gascmp_3881", label %"$out_of_gas_3882", label %"$have_gas_3883" + call void @llvm.dbg.declare(metadata %String* %v1, metadata !860, metadata !DIExpression()), !dbg !861 + %"$gasrem_3933" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3934" = icmp ugt i64 1, %"$gasrem_3933" + br i1 %"$gascmp_3934", label %"$out_of_gas_3935", label %"$have_gas_3936" -"$out_of_gas_3882": ; preds = %"$have_gas_3878" +"$out_of_gas_3935": ; preds = %"$have_gas_3931" call void @_out_of_gas() - br label %"$have_gas_3883" + br label %"$have_gas_3936" -"$have_gas_3883": ; preds = %"$out_of_gas_3882", %"$have_gas_3878" - %"$consume_3884" = sub i64 %"$gasrem_3880", 1 - store i64 %"$consume_3884", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_3885", i32 0, i32 0), i32 3 }, %String* %v1, align 8, !dbg !421 - %"$gasrem_3886" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3887" = icmp ugt i64 1, %"$gasrem_3886" - br i1 %"$gascmp_3887", label %"$out_of_gas_3888", label %"$have_gas_3889" +"$have_gas_3936": ; preds = %"$out_of_gas_3935", %"$have_gas_3931" + %"$consume_3937" = sub i64 %"$gasrem_3933", 1 + store i64 %"$consume_3937", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_3938", i32 0, i32 0), i32 3 }, %String* %v1, align 8, !dbg !862 + %"$gasrem_3939" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3940" = icmp ugt i64 1, %"$gasrem_3939" + br i1 %"$gascmp_3940", label %"$out_of_gas_3941", label %"$have_gas_3942" -"$out_of_gas_3888": ; preds = %"$have_gas_3883" +"$out_of_gas_3941": ; preds = %"$have_gas_3936" call void @_out_of_gas() - br label %"$have_gas_3889" + br label %"$have_gas_3942" -"$have_gas_3889": ; preds = %"$out_of_gas_3888", %"$have_gas_3883" - %"$consume_3890" = sub i64 %"$gasrem_3886", 1 - store i64 %"$consume_3890", i64* @_gasrem, align 8 +"$have_gas_3942": ; preds = %"$out_of_gas_3941", %"$have_gas_3936" + %"$consume_3943" = sub i64 %"$gasrem_3939", 1 + store i64 %"$consume_3943", i64* @_gasrem, align 8 %v2 = alloca %String, align 8 - %"$gasrem_3891" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3892" = icmp ugt i64 1, %"$gasrem_3891" - br i1 %"$gascmp_3892", label %"$out_of_gas_3893", label %"$have_gas_3894" + call void @llvm.dbg.declare(metadata %String* %v2, metadata !863, metadata !DIExpression()), !dbg !864 + %"$gasrem_3944" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3945" = icmp ugt i64 1, %"$gasrem_3944" + br i1 %"$gascmp_3945", label %"$out_of_gas_3946", label %"$have_gas_3947" -"$out_of_gas_3893": ; preds = %"$have_gas_3889" +"$out_of_gas_3946": ; preds = %"$have_gas_3942" call void @_out_of_gas() - br label %"$have_gas_3894" + br label %"$have_gas_3947" -"$have_gas_3894": ; preds = %"$out_of_gas_3893", %"$have_gas_3889" - %"$consume_3895" = sub i64 %"$gasrem_3891", 1 - store i64 %"$consume_3895", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_3896", i32 0, i32 0), i32 3 }, %String* %v2, align 8, !dbg !422 - %"$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" +"$have_gas_3947": ; preds = %"$out_of_gas_3946", %"$have_gas_3942" + %"$consume_3948" = sub i64 %"$gasrem_3944", 1 + store i64 %"$consume_3948", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_3949", i32 0, i32 0), i32 3 }, %String* %v2, align 8, !dbg !865 + %"$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_3899": ; preds = %"$have_gas_3894" +"$out_of_gas_3952": ; preds = %"$have_gas_3947" call void @_out_of_gas() - br label %"$have_gas_3900" + br label %"$have_gas_3953" -"$have_gas_3900": ; preds = %"$out_of_gas_3899", %"$have_gas_3894" - %"$consume_3901" = sub i64 %"$gasrem_3897", 1 - store i64 %"$consume_3901", i64* @_gasrem, align 8 +"$have_gas_3953": ; preds = %"$out_of_gas_3952", %"$have_gas_3947" + %"$consume_3954" = sub i64 %"$gasrem_3950", 1 + store i64 %"$consume_3954", i64* @_gasrem, align 8 %v3 = alloca %String, align 8 - %"$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" + call void @llvm.dbg.declare(metadata %String* %v3, metadata !866, metadata !DIExpression()), !dbg !867 + %"$gasrem_3955" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3956" = icmp ugt i64 1, %"$gasrem_3955" + br i1 %"$gascmp_3956", label %"$out_of_gas_3957", label %"$have_gas_3958" -"$out_of_gas_3904": ; preds = %"$have_gas_3900" +"$out_of_gas_3957": ; preds = %"$have_gas_3953" call void @_out_of_gas() - br label %"$have_gas_3905" + br label %"$have_gas_3958" -"$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 - store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_3907", i32 0, i32 0), i32 3 }, %String* %v3, align 8, !dbg !423 - %"$gasrem_3908" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3909" = icmp ugt i64 1, %"$gasrem_3908" - br i1 %"$gascmp_3909", label %"$out_of_gas_3910", label %"$have_gas_3911" +"$have_gas_3958": ; preds = %"$out_of_gas_3957", %"$have_gas_3953" + %"$consume_3959" = sub i64 %"$gasrem_3955", 1 + store i64 %"$consume_3959", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_3960", i32 0, i32 0), i32 3 }, %String* %v3, align 8, !dbg !868 + %"$gasrem_3961" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3962" = icmp ugt i64 1, %"$gasrem_3961" + br i1 %"$gascmp_3962", label %"$out_of_gas_3963", label %"$have_gas_3964" -"$out_of_gas_3910": ; preds = %"$have_gas_3905" +"$out_of_gas_3963": ; preds = %"$have_gas_3958" call void @_out_of_gas() - br label %"$have_gas_3911" + br label %"$have_gas_3964" -"$have_gas_3911": ; preds = %"$out_of_gas_3910", %"$have_gas_3905" - %"$consume_3912" = sub i64 %"$gasrem_3908", 1 - store i64 %"$consume_3912", i64* @_gasrem, align 8 +"$have_gas_3964": ; preds = %"$out_of_gas_3963", %"$have_gas_3958" + %"$consume_3965" = sub i64 %"$gasrem_3961", 1 + store i64 %"$consume_3965", i64* @_gasrem, align 8 %v4 = alloca %String, 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" + call void @llvm.dbg.declare(metadata %String* %v4, metadata !869, metadata !DIExpression()), !dbg !870 + %"$gasrem_3966" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3967" = icmp ugt i64 1, %"$gasrem_3966" + br i1 %"$gascmp_3967", label %"$out_of_gas_3968", label %"$have_gas_3969" -"$out_of_gas_3915": ; preds = %"$have_gas_3911" +"$out_of_gas_3968": ; preds = %"$have_gas_3964" call void @_out_of_gas() - br label %"$have_gas_3916" + br label %"$have_gas_3969" -"$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 - store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_3918", i32 0, i32 0), i32 3 }, %String* %v4, align 8, !dbg !424 - %"$gasrem_3919" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3920" = icmp ugt i64 1, %"$gasrem_3919" - br i1 %"$gascmp_3920", label %"$out_of_gas_3921", label %"$have_gas_3922" +"$have_gas_3969": ; preds = %"$out_of_gas_3968", %"$have_gas_3964" + %"$consume_3970" = sub i64 %"$gasrem_3966", 1 + store i64 %"$consume_3970", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_3971", i32 0, i32 0), i32 3 }, %String* %v4, align 8, !dbg !871 + %"$gasrem_3972" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3973" = icmp ugt i64 1, %"$gasrem_3972" + br i1 %"$gascmp_3973", label %"$out_of_gas_3974", label %"$have_gas_3975" -"$out_of_gas_3921": ; preds = %"$have_gas_3916" +"$out_of_gas_3974": ; preds = %"$have_gas_3969" call void @_out_of_gas() - br label %"$have_gas_3922" + br label %"$have_gas_3975" -"$have_gas_3922": ; preds = %"$out_of_gas_3921", %"$have_gas_3916" - %"$consume_3923" = sub i64 %"$gasrem_3919", 1 - store i64 %"$consume_3923", i64* @_gasrem, align 8 +"$have_gas_3975": ; preds = %"$out_of_gas_3974", %"$have_gas_3969" + %"$consume_3976" = sub i64 %"$gasrem_3972", 1 + store i64 %"$consume_3976", i64* @_gasrem, align 8 %m25 = alloca %"Map_String_Map_(String)_(String)"*, align 8 - %"$gasrem_3924" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3925" = icmp ugt i64 1, %"$gasrem_3924" - br i1 %"$gascmp_3925", label %"$out_of_gas_3926", label %"$have_gas_3927" + call void @llvm.dbg.declare(metadata %"Map_String_Map_(String)_(String)"** %m25, metadata !872, metadata !DIExpression()), !dbg !873 + %"$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_3926": ; preds = %"$have_gas_3922" +"$out_of_gas_3979": ; preds = %"$have_gas_3975" call void @_out_of_gas() - br label %"$have_gas_3927" + br label %"$have_gas_3980" -"$have_gas_3927": ; preds = %"$out_of_gas_3926", %"$have_gas_3922" - %"$consume_3928" = sub i64 %"$gasrem_3924", 1 - store i64 %"$consume_3928", i64* @_gasrem, align 8 - %"$execptr_load_3929" = load i8*, i8** @_execptr, align 8 - %"$_new_empty_map_call_3930" = call i8* @_new_empty_map(i8* %"$execptr_load_3929") - %"$_new_empty_map_3931" = bitcast i8* %"$_new_empty_map_call_3930" to %"Map_String_Map_(String)_(String)"* - store %"Map_String_Map_(String)_(String)"* %"$_new_empty_map_3931", %"Map_String_Map_(String)_(String)"** %m25, align 8, !dbg !425 - %"$gasrem_3932" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3933" = icmp ugt i64 1, %"$gasrem_3932" - br i1 %"$gascmp_3933", label %"$out_of_gas_3934", label %"$have_gas_3935" +"$have_gas_3980": ; preds = %"$out_of_gas_3979", %"$have_gas_3975" + %"$consume_3981" = sub i64 %"$gasrem_3977", 1 + store i64 %"$consume_3981", i64* @_gasrem, align 8 + %"$execptr_load_3982" = load i8*, i8** @_execptr, align 8 + %"$_new_empty_map_call_3983" = call i8* @_new_empty_map(i8* %"$execptr_load_3982") + %"$_new_empty_map_3984" = bitcast i8* %"$_new_empty_map_call_3983" to %"Map_String_Map_(String)_(String)"* + store %"Map_String_Map_(String)_(String)"* %"$_new_empty_map_3984", %"Map_String_Map_(String)_(String)"** %m25, align 8, !dbg !874 + %"$gasrem_3985" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3986" = icmp ugt i64 1, %"$gasrem_3985" + br i1 %"$gascmp_3986", label %"$out_of_gas_3987", label %"$have_gas_3988" -"$out_of_gas_3934": ; preds = %"$have_gas_3927" +"$out_of_gas_3987": ; preds = %"$have_gas_3980" call void @_out_of_gas() - br label %"$have_gas_3935" + br label %"$have_gas_3988" -"$have_gas_3935": ; preds = %"$out_of_gas_3934", %"$have_gas_3927" - %"$consume_3936" = sub i64 %"$gasrem_3932", 1 - store i64 %"$consume_3936", i64* @_gasrem, align 8 +"$have_gas_3988": ; preds = %"$out_of_gas_3987", %"$have_gas_3980" + %"$consume_3989" = sub i64 %"$gasrem_3985", 1 + store i64 %"$consume_3989", i64* @_gasrem, align 8 %m16 = alloca %Map_String_String*, align 8 - %"$gasrem_3937" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3938" = icmp ugt i64 1, %"$gasrem_3937" - br i1 %"$gascmp_3938", label %"$out_of_gas_3939", label %"$have_gas_3940" + call void @llvm.dbg.declare(metadata %Map_String_String** %m16, metadata !875, metadata !DIExpression()), !dbg !876 + %"$gasrem_3990" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3991" = icmp ugt i64 1, %"$gasrem_3990" + br i1 %"$gascmp_3991", label %"$out_of_gas_3992", label %"$have_gas_3993" -"$out_of_gas_3939": ; preds = %"$have_gas_3935" +"$out_of_gas_3992": ; preds = %"$have_gas_3988" call void @_out_of_gas() - br label %"$have_gas_3940" + br label %"$have_gas_3993" -"$have_gas_3940": ; preds = %"$out_of_gas_3939", %"$have_gas_3935" - %"$consume_3941" = sub i64 %"$gasrem_3937", 1 - store i64 %"$consume_3941", i64* @_gasrem, align 8 - %"$execptr_load_3942" = load i8*, i8** @_execptr, align 8 - %"$_new_empty_map_call_3943" = call i8* @_new_empty_map(i8* %"$execptr_load_3942") - %"$_new_empty_map_3944" = bitcast i8* %"$_new_empty_map_call_3943" to %Map_String_String* - store %Map_String_String* %"$_new_empty_map_3944", %Map_String_String** %m16, align 8, !dbg !426 - %"$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" +"$have_gas_3993": ; preds = %"$out_of_gas_3992", %"$have_gas_3988" + %"$consume_3994" = sub i64 %"$gasrem_3990", 1 + store i64 %"$consume_3994", i64* @_gasrem, align 8 + %"$execptr_load_3995" = load i8*, i8** @_execptr, align 8 + %"$_new_empty_map_call_3996" = call i8* @_new_empty_map(i8* %"$execptr_load_3995") + %"$_new_empty_map_3997" = bitcast i8* %"$_new_empty_map_call_3996" to %Map_String_String* + store %Map_String_String* %"$_new_empty_map_3997", %Map_String_String** %m16, align 8, !dbg !877 + %"$gasrem_3998" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3999" = icmp ugt i64 1, %"$gasrem_3998" + br i1 %"$gascmp_3999", label %"$out_of_gas_4000", label %"$have_gas_4001" -"$out_of_gas_3947": ; preds = %"$have_gas_3940" +"$out_of_gas_4000": ; preds = %"$have_gas_3993" call void @_out_of_gas() - br label %"$have_gas_3948" + br label %"$have_gas_4001" -"$have_gas_3948": ; preds = %"$out_of_gas_3947", %"$have_gas_3940" - %"$consume_3949" = sub i64 %"$gasrem_3945", 1 - store i64 %"$consume_3949", i64* @_gasrem, align 8 +"$have_gas_4001": ; preds = %"$out_of_gas_4000", %"$have_gas_3993" + %"$consume_4002" = sub i64 %"$gasrem_3998", 1 + store i64 %"$consume_4002", i64* @_gasrem, align 8 %m2_full = alloca %"Map_String_Map_(String)_(String)"*, 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" + call void @llvm.dbg.declare(metadata %"Map_String_Map_(String)_(String)"** %m2_full, metadata !878, metadata !DIExpression()), !dbg !879 + %"$gasrem_4003" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4004" = icmp ugt i64 1, %"$gasrem_4003" + br i1 %"$gascmp_4004", label %"$out_of_gas_4005", label %"$have_gas_4006" -"$out_of_gas_3952": ; preds = %"$have_gas_3948" +"$out_of_gas_4005": ; preds = %"$have_gas_4001" call void @_out_of_gas() - br label %"$have_gas_3953" + br label %"$have_gas_4006" -"$have_gas_3953": ; preds = %"$out_of_gas_3952", %"$have_gas_3948" - %"$consume_3954" = sub i64 %"$gasrem_3950", 1 - store i64 %"$consume_3954", i64* @_gasrem, align 8 +"$have_gas_4006": ; preds = %"$out_of_gas_4005", %"$have_gas_4001" + %"$consume_4007" = sub i64 %"$gasrem_4003", 1 + store i64 %"$consume_4007", i64* @_gasrem, align 8 %m21 = 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_77", 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_key2a_3967" = alloca %String, align 8 - %"$key2a_3968" = load %String, %String* %key2a, align 8 - store %String %"$key2a_3968", %String* %"$put_key2a_3967", align 8 - %"$$put_key2a_3967_3969" = bitcast %String* %"$put_key2a_3967" to i8* - %"$put_v1_3970" = alloca %String, align 8 - %"$v1_3971" = load %String, %String* %v1, align 8 - store %String %"$v1_3971", %String* %"$put_v1_3970", align 8 - %"$$put_v1_3970_3972" = bitcast %String* %"$put_v1_3970" to i8* - %"$put_call_3973" = call i8* @_put(i8* %"$execptr_load_3964", %_TyDescrTy_Typ* @"$TyDescr_Map_77", i8* %"$$m1_3965_3966", i8* %"$$put_key2a_3967_3969", i8* %"$$put_v1_3970_3972"), !dbg !427 - %"$put_3974" = bitcast i8* %"$put_call_3973" to %Map_String_String* - store %Map_String_String* %"$put_3974", %Map_String_String** %m21, 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 + call void @llvm.dbg.declare(metadata %Map_String_String** %m21, metadata !880, metadata !DIExpression()), !dbg !881 + %"$m1_4008" = load %Map_String_String*, %Map_String_String** %m16, align 8 + %"$$m1_4008_4009" = bitcast %Map_String_String* %"$m1_4008" to i8* + %"$_lengthof_call_4010" = call i64 @_lengthof(%_TyDescrTy_Typ* @"$TyDescr_Map_77", i8* %"$$m1_4008_4009") + %"$gasadd_4011" = add i64 1, %"$_lengthof_call_4010" + %"$gasrem_4012" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4013" = icmp ugt i64 %"$gasadd_4011", %"$gasrem_4012" + br i1 %"$gascmp_4013", label %"$out_of_gas_4014", label %"$have_gas_4015" + +"$out_of_gas_4014": ; preds = %"$have_gas_4006" + call void @_out_of_gas() + br label %"$have_gas_4015" + +"$have_gas_4015": ; preds = %"$out_of_gas_4014", %"$have_gas_4006" + %"$consume_4016" = sub i64 %"$gasrem_4012", %"$gasadd_4011" + store i64 %"$consume_4016", i64* @_gasrem, align 8 + %"$execptr_load_4017" = load i8*, i8** @_execptr, align 8 + %"$m1_4018" = load %Map_String_String*, %Map_String_String** %m16, align 8 + %"$$m1_4018_4019" = bitcast %Map_String_String* %"$m1_4018" to i8* + %"$put_key2a_4020" = alloca %String, align 8 + %"$key2a_4021" = load %String, %String* %key2a, align 8 + store %String %"$key2a_4021", %String* %"$put_key2a_4020", align 8 + %"$$put_key2a_4020_4022" = bitcast %String* %"$put_key2a_4020" to i8* + %"$put_v1_4023" = alloca %String, align 8 + %"$v1_4024" = load %String, %String* %v1, align 8 + store %String %"$v1_4024", %String* %"$put_v1_4023", align 8 + %"$$put_v1_4023_4025" = bitcast %String* %"$put_v1_4023" to i8* + %"$put_call_4026" = call i8* @_put(i8* %"$execptr_load_4017", %_TyDescrTy_Typ* @"$TyDescr_Map_77", i8* %"$$m1_4018_4019", i8* %"$$put_key2a_4020_4022", i8* %"$$put_v1_4023_4025"), !dbg !882 + %"$put_4027" = bitcast i8* %"$put_call_4026" to %Map_String_String* + store %Map_String_String* %"$put_4027", %Map_String_String** %m21, align 8, !dbg !882 + %"$gasrem_4028" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4029" = icmp ugt i64 1, %"$gasrem_4028" + br i1 %"$gascmp_4029", label %"$out_of_gas_4030", label %"$have_gas_4031" + +"$out_of_gas_4030": ; preds = %"$have_gas_4015" + call void @_out_of_gas() + br label %"$have_gas_4031" + +"$have_gas_4031": ; preds = %"$out_of_gas_4030", %"$have_gas_4015" + %"$consume_4032" = sub i64 %"$gasrem_4028", 1 + store i64 %"$consume_4032", i64* @_gasrem, align 8 %m22 = 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_77", 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_key2b_3992" = alloca %String, align 8 - %"$key2b_3993" = load %String, %String* %key2b, align 8 - store %String %"$key2b_3993", %String* %"$put_key2b_3992", align 8 - %"$$put_key2b_3992_3994" = bitcast %String* %"$put_key2b_3992" to i8* - %"$put_v2_3995" = alloca %String, align 8 - %"$v2_3996" = load %String, %String* %v2, align 8 - store %String %"$v2_3996", %String* %"$put_v2_3995", align 8 - %"$$put_v2_3995_3997" = bitcast %String* %"$put_v2_3995" to i8* - %"$put_call_3998" = call i8* @_put(i8* %"$execptr_load_3989", %_TyDescrTy_Typ* @"$TyDescr_Map_77", i8* %"$$m1_3990_3991", i8* %"$$put_key2b_3992_3994", i8* %"$$put_v2_3995_3997"), !dbg !428 - %"$put_3999" = bitcast i8* %"$put_call_3998" to %Map_String_String* - store %Map_String_String* %"$put_3999", %Map_String_String** %m22, 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 + call void @llvm.dbg.declare(metadata %Map_String_String** %m22, metadata !883, metadata !DIExpression()), !dbg !884 + %"$m1_4033" = load %Map_String_String*, %Map_String_String** %m16, align 8 + %"$$m1_4033_4034" = bitcast %Map_String_String* %"$m1_4033" to i8* + %"$_lengthof_call_4035" = call i64 @_lengthof(%_TyDescrTy_Typ* @"$TyDescr_Map_77", i8* %"$$m1_4033_4034") + %"$gasadd_4036" = add i64 1, %"$_lengthof_call_4035" + %"$gasrem_4037" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4038" = icmp ugt i64 %"$gasadd_4036", %"$gasrem_4037" + br i1 %"$gascmp_4038", label %"$out_of_gas_4039", label %"$have_gas_4040" + +"$out_of_gas_4039": ; preds = %"$have_gas_4031" + call void @_out_of_gas() + br label %"$have_gas_4040" + +"$have_gas_4040": ; preds = %"$out_of_gas_4039", %"$have_gas_4031" + %"$consume_4041" = sub i64 %"$gasrem_4037", %"$gasadd_4036" + store i64 %"$consume_4041", i64* @_gasrem, align 8 + %"$execptr_load_4042" = load i8*, i8** @_execptr, align 8 + %"$m1_4043" = load %Map_String_String*, %Map_String_String** %m16, align 8 + %"$$m1_4043_4044" = bitcast %Map_String_String* %"$m1_4043" to i8* + %"$put_key2b_4045" = alloca %String, align 8 + %"$key2b_4046" = load %String, %String* %key2b, align 8 + store %String %"$key2b_4046", %String* %"$put_key2b_4045", align 8 + %"$$put_key2b_4045_4047" = bitcast %String* %"$put_key2b_4045" to i8* + %"$put_v2_4048" = alloca %String, align 8 + %"$v2_4049" = load %String, %String* %v2, align 8 + store %String %"$v2_4049", %String* %"$put_v2_4048", align 8 + %"$$put_v2_4048_4050" = bitcast %String* %"$put_v2_4048" to i8* + %"$put_call_4051" = call i8* @_put(i8* %"$execptr_load_4042", %_TyDescrTy_Typ* @"$TyDescr_Map_77", i8* %"$$m1_4043_4044", i8* %"$$put_key2b_4045_4047", i8* %"$$put_v2_4048_4050"), !dbg !885 + %"$put_4052" = bitcast i8* %"$put_call_4051" to %Map_String_String* + store %Map_String_String* %"$put_4052", %Map_String_String** %m22, align 8, !dbg !885 + %"$gasrem_4053" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4054" = icmp ugt i64 1, %"$gasrem_4053" + br i1 %"$gascmp_4054", label %"$out_of_gas_4055", label %"$have_gas_4056" + +"$out_of_gas_4055": ; preds = %"$have_gas_4040" + call void @_out_of_gas() + br label %"$have_gas_4056" + +"$have_gas_4056": ; preds = %"$out_of_gas_4055", %"$have_gas_4040" + %"$consume_4057" = sub i64 %"$gasrem_4053", 1 + store i64 %"$consume_4057", i64* @_gasrem, align 8 %m23 = 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_77", 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_key2c_4017" = alloca %String, align 8 - %"$key2c_4018" = load %String, %String* %key2c, align 8 - store %String %"$key2c_4018", %String* %"$put_key2c_4017", align 8 - %"$$put_key2c_4017_4019" = bitcast %String* %"$put_key2c_4017" to i8* - %"$put_v3_4020" = alloca %String, align 8 - %"$v3_4021" = load %String, %String* %v3, align 8 - store %String %"$v3_4021", %String* %"$put_v3_4020", align 8 - %"$$put_v3_4020_4022" = bitcast %String* %"$put_v3_4020" to i8* - %"$put_call_4023" = call i8* @_put(i8* %"$execptr_load_4014", %_TyDescrTy_Typ* @"$TyDescr_Map_77", i8* %"$$m1_4015_4016", i8* %"$$put_key2c_4017_4019", i8* %"$$put_v3_4020_4022"), !dbg !429 - %"$put_4024" = bitcast i8* %"$put_call_4023" to %Map_String_String* - store %Map_String_String* %"$put_4024", %Map_String_String** %m23, 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 + call void @llvm.dbg.declare(metadata %Map_String_String** %m23, metadata !886, metadata !DIExpression()), !dbg !887 + %"$m1_4058" = load %Map_String_String*, %Map_String_String** %m16, align 8 + %"$$m1_4058_4059" = bitcast %Map_String_String* %"$m1_4058" to i8* + %"$_lengthof_call_4060" = call i64 @_lengthof(%_TyDescrTy_Typ* @"$TyDescr_Map_77", i8* %"$$m1_4058_4059") + %"$gasadd_4061" = add i64 1, %"$_lengthof_call_4060" + %"$gasrem_4062" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4063" = icmp ugt i64 %"$gasadd_4061", %"$gasrem_4062" + br i1 %"$gascmp_4063", label %"$out_of_gas_4064", label %"$have_gas_4065" + +"$out_of_gas_4064": ; preds = %"$have_gas_4056" + call void @_out_of_gas() + br label %"$have_gas_4065" + +"$have_gas_4065": ; preds = %"$out_of_gas_4064", %"$have_gas_4056" + %"$consume_4066" = sub i64 %"$gasrem_4062", %"$gasadd_4061" + store i64 %"$consume_4066", i64* @_gasrem, align 8 + %"$execptr_load_4067" = load i8*, i8** @_execptr, align 8 + %"$m1_4068" = load %Map_String_String*, %Map_String_String** %m16, align 8 + %"$$m1_4068_4069" = bitcast %Map_String_String* %"$m1_4068" to i8* + %"$put_key2c_4070" = alloca %String, align 8 + %"$key2c_4071" = load %String, %String* %key2c, align 8 + store %String %"$key2c_4071", %String* %"$put_key2c_4070", align 8 + %"$$put_key2c_4070_4072" = bitcast %String* %"$put_key2c_4070" to i8* + %"$put_v3_4073" = alloca %String, align 8 + %"$v3_4074" = load %String, %String* %v3, align 8 + store %String %"$v3_4074", %String* %"$put_v3_4073", align 8 + %"$$put_v3_4073_4075" = bitcast %String* %"$put_v3_4073" to i8* + %"$put_call_4076" = call i8* @_put(i8* %"$execptr_load_4067", %_TyDescrTy_Typ* @"$TyDescr_Map_77", i8* %"$$m1_4068_4069", i8* %"$$put_key2c_4070_4072", i8* %"$$put_v3_4073_4075"), !dbg !888 + %"$put_4077" = bitcast i8* %"$put_call_4076" to %Map_String_String* + store %Map_String_String* %"$put_4077", %Map_String_String** %m23, align 8, !dbg !888 + %"$gasrem_4078" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4079" = icmp ugt i64 1, %"$gasrem_4078" + br i1 %"$gascmp_4079", label %"$out_of_gas_4080", label %"$have_gas_4081" + +"$out_of_gas_4080": ; preds = %"$have_gas_4065" + call void @_out_of_gas() + br label %"$have_gas_4081" + +"$have_gas_4081": ; preds = %"$out_of_gas_4080", %"$have_gas_4065" + %"$consume_4082" = sub i64 %"$gasrem_4078", 1 + store i64 %"$consume_4082", i64* @_gasrem, align 8 %m24 = alloca %Map_String_String*, align 8 - %"$m1_4030" = load %Map_String_String*, %Map_String_String** %m16, align 8 - %"$$m1_4030_4031" = bitcast %Map_String_String* %"$m1_4030" to i8* - %"$_lengthof_call_4032" = call i64 @_lengthof(%_TyDescrTy_Typ* @"$TyDescr_Map_77", i8* %"$$m1_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 - %"$m1_4040" = load %Map_String_String*, %Map_String_String** %m16, align 8 - %"$$m1_4040_4041" = bitcast %Map_String_String* %"$m1_4040" to i8* - %"$put_key2d_4042" = alloca %String, align 8 - %"$key2d_4043" = load %String, %String* %key2d, align 8 - store %String %"$key2d_4043", %String* %"$put_key2d_4042", align 8 - %"$$put_key2d_4042_4044" = bitcast %String* %"$put_key2d_4042" to i8* - %"$put_v4_4045" = alloca %String, align 8 - %"$v4_4046" = load %String, %String* %v4, align 8 - store %String %"$v4_4046", %String* %"$put_v4_4045", align 8 - %"$$put_v4_4045_4047" = bitcast %String* %"$put_v4_4045" to i8* - %"$put_call_4048" = call i8* @_put(i8* %"$execptr_load_4039", %_TyDescrTy_Typ* @"$TyDescr_Map_77", i8* %"$$m1_4040_4041", i8* %"$$put_key2d_4042_4044", i8* %"$$put_v4_4045_4047"), !dbg !430 - %"$put_4049" = bitcast i8* %"$put_call_4048" to %Map_String_String* - store %Map_String_String* %"$put_4049", %Map_String_String** %m24, align 8, !dbg !430 - %"$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_4037" - call void @_out_of_gas() - br label %"$have_gas_4053" - -"$have_gas_4053": ; preds = %"$out_of_gas_4052", %"$have_gas_4037" - %"$consume_4054" = sub i64 %"$gasrem_4050", 1 - store i64 %"$consume_4054", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %Map_String_String** %m24, metadata !889, metadata !DIExpression()), !dbg !890 + %"$m1_4083" = load %Map_String_String*, %Map_String_String** %m16, align 8 + %"$$m1_4083_4084" = bitcast %Map_String_String* %"$m1_4083" to i8* + %"$_lengthof_call_4085" = call i64 @_lengthof(%_TyDescrTy_Typ* @"$TyDescr_Map_77", i8* %"$$m1_4083_4084") + %"$gasadd_4086" = add i64 1, %"$_lengthof_call_4085" + %"$gasrem_4087" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4088" = icmp ugt i64 %"$gasadd_4086", %"$gasrem_4087" + br i1 %"$gascmp_4088", label %"$out_of_gas_4089", label %"$have_gas_4090" + +"$out_of_gas_4089": ; preds = %"$have_gas_4081" + call void @_out_of_gas() + br label %"$have_gas_4090" + +"$have_gas_4090": ; preds = %"$out_of_gas_4089", %"$have_gas_4081" + %"$consume_4091" = sub i64 %"$gasrem_4087", %"$gasadd_4086" + store i64 %"$consume_4091", i64* @_gasrem, align 8 + %"$execptr_load_4092" = load i8*, i8** @_execptr, align 8 + %"$m1_4093" = load %Map_String_String*, %Map_String_String** %m16, align 8 + %"$$m1_4093_4094" = bitcast %Map_String_String* %"$m1_4093" to i8* + %"$put_key2d_4095" = alloca %String, align 8 + %"$key2d_4096" = load %String, %String* %key2d, align 8 + store %String %"$key2d_4096", %String* %"$put_key2d_4095", align 8 + %"$$put_key2d_4095_4097" = bitcast %String* %"$put_key2d_4095" to i8* + %"$put_v4_4098" = alloca %String, align 8 + %"$v4_4099" = load %String, %String* %v4, align 8 + store %String %"$v4_4099", %String* %"$put_v4_4098", align 8 + %"$$put_v4_4098_4100" = bitcast %String* %"$put_v4_4098" to i8* + %"$put_call_4101" = call i8* @_put(i8* %"$execptr_load_4092", %_TyDescrTy_Typ* @"$TyDescr_Map_77", i8* %"$$m1_4093_4094", i8* %"$$put_key2d_4095_4097", i8* %"$$put_v4_4098_4100"), !dbg !891 + %"$put_4102" = bitcast i8* %"$put_call_4101" to %Map_String_String* + store %Map_String_String* %"$put_4102", %Map_String_String** %m24, align 8, !dbg !891 + %"$gasrem_4103" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4104" = icmp ugt i64 1, %"$gasrem_4103" + br i1 %"$gascmp_4104", label %"$out_of_gas_4105", label %"$have_gas_4106" + +"$out_of_gas_4105": ; preds = %"$have_gas_4090" + call void @_out_of_gas() + br label %"$have_gas_4106" + +"$have_gas_4106": ; preds = %"$out_of_gas_4105", %"$have_gas_4090" + %"$consume_4107" = sub i64 %"$gasrem_4103", 1 + store i64 %"$consume_4107", i64* @_gasrem, align 8 %m11 = alloca %"Map_String_Map_(String)_(String)"*, align 8 - %"$m2_4055" = load %"Map_String_Map_(String)_(String)"*, %"Map_String_Map_(String)_(String)"** %m25, align 8 - %"$$m2_4055_4056" = bitcast %"Map_String_Map_(String)_(String)"* %"$m2_4055" to i8* - %"$_lengthof_call_4057" = call i64 @_lengthof(%_TyDescrTy_Typ* @"$TyDescr_Map_76", i8* %"$$m2_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 - %"$m2_4065" = load %"Map_String_Map_(String)_(String)"*, %"Map_String_Map_(String)_(String)"** %m25, align 8 - %"$$m2_4065_4066" = bitcast %"Map_String_Map_(String)_(String)"* %"$m2_4065" to i8* - %"$put_key1a_4067" = alloca %String, align 8 - %"$key1a_4068" = load %String, %String* %key1a, align 8 - store %String %"$key1a_4068", %String* %"$put_key1a_4067", align 8 - %"$$put_key1a_4067_4069" = bitcast %String* %"$put_key1a_4067" to i8* - %"$m21_4070" = load %Map_String_String*, %Map_String_String** %m21, align 8 - %"$$m21_4070_4071" = bitcast %Map_String_String* %"$m21_4070" to i8* - %"$put_call_4072" = call i8* @_put(i8* %"$execptr_load_4064", %_TyDescrTy_Typ* @"$TyDescr_Map_76", i8* %"$$m2_4065_4066", i8* %"$$put_key1a_4067_4069", i8* %"$$m21_4070_4071"), !dbg !431 - %"$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)"** %m11, align 8, !dbg !431 - %"$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 + call void @llvm.dbg.declare(metadata %"Map_String_Map_(String)_(String)"** %m11, metadata !892, metadata !DIExpression()), !dbg !893 + %"$m2_4108" = load %"Map_String_Map_(String)_(String)"*, %"Map_String_Map_(String)_(String)"** %m25, align 8 + %"$$m2_4108_4109" = bitcast %"Map_String_Map_(String)_(String)"* %"$m2_4108" to i8* + %"$_lengthof_call_4110" = call i64 @_lengthof(%_TyDescrTy_Typ* @"$TyDescr_Map_76", i8* %"$$m2_4108_4109") + %"$gasadd_4111" = add i64 1, %"$_lengthof_call_4110" + %"$gasrem_4112" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4113" = icmp ugt i64 %"$gasadd_4111", %"$gasrem_4112" + br i1 %"$gascmp_4113", label %"$out_of_gas_4114", label %"$have_gas_4115" + +"$out_of_gas_4114": ; preds = %"$have_gas_4106" + call void @_out_of_gas() + br label %"$have_gas_4115" + +"$have_gas_4115": ; preds = %"$out_of_gas_4114", %"$have_gas_4106" + %"$consume_4116" = sub i64 %"$gasrem_4112", %"$gasadd_4111" + store i64 %"$consume_4116", i64* @_gasrem, align 8 + %"$execptr_load_4117" = load i8*, i8** @_execptr, align 8 + %"$m2_4118" = load %"Map_String_Map_(String)_(String)"*, %"Map_String_Map_(String)_(String)"** %m25, align 8 + %"$$m2_4118_4119" = bitcast %"Map_String_Map_(String)_(String)"* %"$m2_4118" to i8* + %"$put_key1a_4120" = alloca %String, align 8 + %"$key1a_4121" = load %String, %String* %key1a, align 8 + store %String %"$key1a_4121", %String* %"$put_key1a_4120", align 8 + %"$$put_key1a_4120_4122" = bitcast %String* %"$put_key1a_4120" to i8* + %"$m21_4123" = load %Map_String_String*, %Map_String_String** %m21, align 8 + %"$$m21_4123_4124" = bitcast %Map_String_String* %"$m21_4123" to i8* + %"$put_call_4125" = call i8* @_put(i8* %"$execptr_load_4117", %_TyDescrTy_Typ* @"$TyDescr_Map_76", i8* %"$$m2_4118_4119", i8* %"$$put_key1a_4120_4122", i8* %"$$m21_4123_4124"), !dbg !894 + %"$put_4126" = bitcast i8* %"$put_call_4125" to %"Map_String_Map_(String)_(String)"* + store %"Map_String_Map_(String)_(String)"* %"$put_4126", %"Map_String_Map_(String)_(String)"** %m11, align 8, !dbg !894 + %"$gasrem_4127" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4128" = icmp ugt i64 1, %"$gasrem_4127" + br i1 %"$gascmp_4128", label %"$out_of_gas_4129", label %"$have_gas_4130" + +"$out_of_gas_4129": ; preds = %"$have_gas_4115" + call void @_out_of_gas() + br label %"$have_gas_4130" + +"$have_gas_4130": ; preds = %"$out_of_gas_4129", %"$have_gas_4115" + %"$consume_4131" = sub i64 %"$gasrem_4127", 1 + store i64 %"$consume_4131", i64* @_gasrem, align 8 %m12 = alloca %"Map_String_Map_(String)_(String)"*, align 8 - %"$m11_4079" = load %"Map_String_Map_(String)_(String)"*, %"Map_String_Map_(String)_(String)"** %m11, align 8 - %"$$m11_4079_4080" = bitcast %"Map_String_Map_(String)_(String)"* %"$m11_4079" to i8* - %"$_lengthof_call_4081" = call i64 @_lengthof(%_TyDescrTy_Typ* @"$TyDescr_Map_76", i8* %"$$m11_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 - %"$m11_4089" = load %"Map_String_Map_(String)_(String)"*, %"Map_String_Map_(String)_(String)"** %m11, align 8 - %"$$m11_4089_4090" = bitcast %"Map_String_Map_(String)_(String)"* %"$m11_4089" to i8* - %"$put_key1b_4091" = alloca %String, align 8 - %"$key1b_4092" = load %String, %String* %key1b, align 8 - store %String %"$key1b_4092", %String* %"$put_key1b_4091", align 8 - %"$$put_key1b_4091_4093" = bitcast %String* %"$put_key1b_4091" to i8* - %"$m22_4094" = load %Map_String_String*, %Map_String_String** %m22, align 8 - %"$$m22_4094_4095" = bitcast %Map_String_String* %"$m22_4094" to i8* - %"$put_call_4096" = call i8* @_put(i8* %"$execptr_load_4088", %_TyDescrTy_Typ* @"$TyDescr_Map_76", i8* %"$$m11_4089_4090", i8* %"$$put_key1b_4091_4093", i8* %"$$m22_4094_4095"), !dbg !432 - %"$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)"** %m12, align 8, !dbg !432 - %"$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 + call void @llvm.dbg.declare(metadata %"Map_String_Map_(String)_(String)"** %m12, metadata !895, metadata !DIExpression()), !dbg !896 + %"$m11_4132" = load %"Map_String_Map_(String)_(String)"*, %"Map_String_Map_(String)_(String)"** %m11, align 8 + %"$$m11_4132_4133" = bitcast %"Map_String_Map_(String)_(String)"* %"$m11_4132" to i8* + %"$_lengthof_call_4134" = call i64 @_lengthof(%_TyDescrTy_Typ* @"$TyDescr_Map_76", i8* %"$$m11_4132_4133") + %"$gasadd_4135" = add i64 1, %"$_lengthof_call_4134" + %"$gasrem_4136" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4137" = icmp ugt i64 %"$gasadd_4135", %"$gasrem_4136" + br i1 %"$gascmp_4137", label %"$out_of_gas_4138", label %"$have_gas_4139" + +"$out_of_gas_4138": ; preds = %"$have_gas_4130" + call void @_out_of_gas() + br label %"$have_gas_4139" + +"$have_gas_4139": ; preds = %"$out_of_gas_4138", %"$have_gas_4130" + %"$consume_4140" = sub i64 %"$gasrem_4136", %"$gasadd_4135" + store i64 %"$consume_4140", i64* @_gasrem, align 8 + %"$execptr_load_4141" = load i8*, i8** @_execptr, align 8 + %"$m11_4142" = load %"Map_String_Map_(String)_(String)"*, %"Map_String_Map_(String)_(String)"** %m11, align 8 + %"$$m11_4142_4143" = bitcast %"Map_String_Map_(String)_(String)"* %"$m11_4142" to i8* + %"$put_key1b_4144" = alloca %String, align 8 + %"$key1b_4145" = load %String, %String* %key1b, align 8 + store %String %"$key1b_4145", %String* %"$put_key1b_4144", align 8 + %"$$put_key1b_4144_4146" = bitcast %String* %"$put_key1b_4144" to i8* + %"$m22_4147" = load %Map_String_String*, %Map_String_String** %m22, align 8 + %"$$m22_4147_4148" = bitcast %Map_String_String* %"$m22_4147" to i8* + %"$put_call_4149" = call i8* @_put(i8* %"$execptr_load_4141", %_TyDescrTy_Typ* @"$TyDescr_Map_76", i8* %"$$m11_4142_4143", i8* %"$$put_key1b_4144_4146", i8* %"$$m22_4147_4148"), !dbg !897 + %"$put_4150" = bitcast i8* %"$put_call_4149" to %"Map_String_Map_(String)_(String)"* + store %"Map_String_Map_(String)_(String)"* %"$put_4150", %"Map_String_Map_(String)_(String)"** %m12, align 8, !dbg !897 + %"$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_4139" + call void @_out_of_gas() + br label %"$have_gas_4154" + +"$have_gas_4154": ; preds = %"$out_of_gas_4153", %"$have_gas_4139" + %"$consume_4155" = sub i64 %"$gasrem_4151", 1 + store i64 %"$consume_4155", i64* @_gasrem, align 8 %m13 = alloca %"Map_String_Map_(String)_(String)"*, align 8 - %"$m12_4103" = load %"Map_String_Map_(String)_(String)"*, %"Map_String_Map_(String)_(String)"** %m12, align 8 - %"$$m12_4103_4104" = bitcast %"Map_String_Map_(String)_(String)"* %"$m12_4103" to i8* - %"$_lengthof_call_4105" = call i64 @_lengthof(%_TyDescrTy_Typ* @"$TyDescr_Map_76", i8* %"$$m12_4103_4104") - %"$gasadd_4106" = add i64 1, %"$_lengthof_call_4105" - %"$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_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", %"$gasadd_4106" - store i64 %"$consume_4111", i64* @_gasrem, align 8 - %"$execptr_load_4112" = load i8*, i8** @_execptr, align 8 - %"$m12_4113" = load %"Map_String_Map_(String)_(String)"*, %"Map_String_Map_(String)_(String)"** %m12, align 8 - %"$$m12_4113_4114" = bitcast %"Map_String_Map_(String)_(String)"* %"$m12_4113" to i8* - %"$put_key1c_4115" = alloca %String, align 8 - %"$key1c_4116" = load %String, %String* %key1c, align 8 - store %String %"$key1c_4116", %String* %"$put_key1c_4115", align 8 - %"$$put_key1c_4115_4117" = bitcast %String* %"$put_key1c_4115" to i8* - %"$m23_4118" = load %Map_String_String*, %Map_String_String** %m23, align 8 - %"$$m23_4118_4119" = bitcast %Map_String_String* %"$m23_4118" to i8* - %"$put_call_4120" = call i8* @_put(i8* %"$execptr_load_4112", %_TyDescrTy_Typ* @"$TyDescr_Map_76", i8* %"$$m12_4113_4114", i8* %"$$put_key1c_4115_4117", i8* %"$$m23_4118_4119"), !dbg !433 - %"$put_4121" = bitcast i8* %"$put_call_4120" to %"Map_String_Map_(String)_(String)"* - store %"Map_String_Map_(String)_(String)"* %"$put_4121", %"Map_String_Map_(String)_(String)"** %m13, align 8, !dbg !433 - %"$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_4110" - call void @_out_of_gas() - br label %"$have_gas_4125" - -"$have_gas_4125": ; preds = %"$out_of_gas_4124", %"$have_gas_4110" - %"$consume_4126" = sub i64 %"$gasrem_4122", 1 - store i64 %"$consume_4126", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %"Map_String_Map_(String)_(String)"** %m13, metadata !898, metadata !DIExpression()), !dbg !899 + %"$m12_4156" = load %"Map_String_Map_(String)_(String)"*, %"Map_String_Map_(String)_(String)"** %m12, align 8 + %"$$m12_4156_4157" = bitcast %"Map_String_Map_(String)_(String)"* %"$m12_4156" to i8* + %"$_lengthof_call_4158" = call i64 @_lengthof(%_TyDescrTy_Typ* @"$TyDescr_Map_76", i8* %"$$m12_4156_4157") + %"$gasadd_4159" = add i64 1, %"$_lengthof_call_4158" + %"$gasrem_4160" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4161" = icmp ugt i64 %"$gasadd_4159", %"$gasrem_4160" + br i1 %"$gascmp_4161", label %"$out_of_gas_4162", label %"$have_gas_4163" + +"$out_of_gas_4162": ; preds = %"$have_gas_4154" + call void @_out_of_gas() + br label %"$have_gas_4163" + +"$have_gas_4163": ; preds = %"$out_of_gas_4162", %"$have_gas_4154" + %"$consume_4164" = sub i64 %"$gasrem_4160", %"$gasadd_4159" + store i64 %"$consume_4164", i64* @_gasrem, align 8 + %"$execptr_load_4165" = load i8*, i8** @_execptr, align 8 + %"$m12_4166" = load %"Map_String_Map_(String)_(String)"*, %"Map_String_Map_(String)_(String)"** %m12, align 8 + %"$$m12_4166_4167" = bitcast %"Map_String_Map_(String)_(String)"* %"$m12_4166" to i8* + %"$put_key1c_4168" = alloca %String, align 8 + %"$key1c_4169" = load %String, %String* %key1c, align 8 + store %String %"$key1c_4169", %String* %"$put_key1c_4168", align 8 + %"$$put_key1c_4168_4170" = bitcast %String* %"$put_key1c_4168" to i8* + %"$m23_4171" = load %Map_String_String*, %Map_String_String** %m23, align 8 + %"$$m23_4171_4172" = bitcast %Map_String_String* %"$m23_4171" to i8* + %"$put_call_4173" = call i8* @_put(i8* %"$execptr_load_4165", %_TyDescrTy_Typ* @"$TyDescr_Map_76", i8* %"$$m12_4166_4167", i8* %"$$put_key1c_4168_4170", i8* %"$$m23_4171_4172"), !dbg !900 + %"$put_4174" = bitcast i8* %"$put_call_4173" to %"Map_String_Map_(String)_(String)"* + store %"Map_String_Map_(String)_(String)"* %"$put_4174", %"Map_String_Map_(String)_(String)"** %m13, align 8, !dbg !900 + %"$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_4177": ; preds = %"$have_gas_4163" + call void @_out_of_gas() + br label %"$have_gas_4178" + +"$have_gas_4178": ; preds = %"$out_of_gas_4177", %"$have_gas_4163" + %"$consume_4179" = sub i64 %"$gasrem_4175", 1 + store i64 %"$consume_4179", i64* @_gasrem, align 8 %m14 = alloca %"Map_String_Map_(String)_(String)"*, align 8 - %"$m13_4127" = load %"Map_String_Map_(String)_(String)"*, %"Map_String_Map_(String)_(String)"** %m13, align 8 - %"$$m13_4127_4128" = bitcast %"Map_String_Map_(String)_(String)"* %"$m13_4127" to i8* - %"$_lengthof_call_4129" = call i64 @_lengthof(%_TyDescrTy_Typ* @"$TyDescr_Map_76", i8* %"$$m13_4127_4128") - %"$gasadd_4130" = add i64 1, %"$_lengthof_call_4129" - %"$gasrem_4131" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4132" = icmp ugt i64 %"$gasadd_4130", %"$gasrem_4131" - br i1 %"$gascmp_4132", label %"$out_of_gas_4133", label %"$have_gas_4134" - -"$out_of_gas_4133": ; preds = %"$have_gas_4125" - call void @_out_of_gas() - br label %"$have_gas_4134" - -"$have_gas_4134": ; preds = %"$out_of_gas_4133", %"$have_gas_4125" - %"$consume_4135" = sub i64 %"$gasrem_4131", %"$gasadd_4130" - store i64 %"$consume_4135", i64* @_gasrem, align 8 - %"$execptr_load_4136" = load i8*, i8** @_execptr, align 8 - %"$m13_4137" = load %"Map_String_Map_(String)_(String)"*, %"Map_String_Map_(String)_(String)"** %m13, align 8 - %"$$m13_4137_4138" = bitcast %"Map_String_Map_(String)_(String)"* %"$m13_4137" to i8* - %"$put_key1d_4139" = alloca %String, align 8 - %"$key1d_4140" = load %String, %String* %key1d, align 8 - store %String %"$key1d_4140", %String* %"$put_key1d_4139", align 8 - %"$$put_key1d_4139_4141" = bitcast %String* %"$put_key1d_4139" to i8* - %"$m24_4142" = load %Map_String_String*, %Map_String_String** %m24, align 8 - %"$$m24_4142_4143" = bitcast %Map_String_String* %"$m24_4142" to i8* - %"$put_call_4144" = call i8* @_put(i8* %"$execptr_load_4136", %_TyDescrTy_Typ* @"$TyDescr_Map_76", i8* %"$$m13_4137_4138", i8* %"$$put_key1d_4139_4141", i8* %"$$m24_4142_4143"), !dbg !434 - %"$put_4145" = bitcast i8* %"$put_call_4144" to %"Map_String_Map_(String)_(String)"* - store %"Map_String_Map_(String)_(String)"* %"$put_4145", %"Map_String_Map_(String)_(String)"** %m14, align 8, !dbg !434 - %"$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_4134" - call void @_out_of_gas() - br label %"$have_gas_4149" - -"$have_gas_4149": ; preds = %"$out_of_gas_4148", %"$have_gas_4134" - %"$consume_4150" = sub i64 %"$gasrem_4146", 1 - store i64 %"$consume_4150", i64* @_gasrem, align 8 - %"$m14_4151" = load %"Map_String_Map_(String)_(String)"*, %"Map_String_Map_(String)_(String)"** %m14, align 8 - store %"Map_String_Map_(String)_(String)"* %"$m14_4151", %"Map_String_Map_(String)_(String)"** %m2_full, align 8, !dbg !435 - %"$m2_full_4152" = load %"Map_String_Map_(String)_(String)"*, %"Map_String_Map_(String)_(String)"** %m2_full, align 8 - %"$$m2_full_4152_4153" = bitcast %"Map_String_Map_(String)_(String)"* %"$m2_full_4152" to i8* - %"$_literal_cost_call_4154" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Map_76", i8* %"$$m2_full_4152_4153") - %"$gasrem_4155" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4156" = icmp ugt i64 %"$_literal_cost_call_4154", %"$gasrem_4155" - br i1 %"$gascmp_4156", label %"$out_of_gas_4157", label %"$have_gas_4158" - -"$out_of_gas_4157": ; preds = %"$have_gas_4149" - call void @_out_of_gas() - br label %"$have_gas_4158" - -"$have_gas_4158": ; preds = %"$out_of_gas_4157", %"$have_gas_4149" - %"$consume_4159" = sub i64 %"$gasrem_4155", %"$_literal_cost_call_4154" - store i64 %"$consume_4159", i64* @_gasrem, align 8 - %"$execptr_load_4160" = load i8*, i8** @_execptr, align 8 - %"$m2_full_4162" = load %"Map_String_Map_(String)_(String)"*, %"Map_String_Map_(String)_(String)"** %m2_full, align 8 - %"$update_value_4163" = bitcast %"Map_String_Map_(String)_(String)"* %"$m2_full_4162" to i8* - call void @_update_field(i8* %"$execptr_load_4160", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m2_4161", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_76", i32 0, i8* null, i8* %"$update_value_4163"), !dbg !436 + call void @llvm.dbg.declare(metadata %"Map_String_Map_(String)_(String)"** %m14, metadata !901, metadata !DIExpression()), !dbg !902 + %"$m13_4180" = load %"Map_String_Map_(String)_(String)"*, %"Map_String_Map_(String)_(String)"** %m13, align 8 + %"$$m13_4180_4181" = bitcast %"Map_String_Map_(String)_(String)"* %"$m13_4180" to i8* + %"$_lengthof_call_4182" = call i64 @_lengthof(%_TyDescrTy_Typ* @"$TyDescr_Map_76", i8* %"$$m13_4180_4181") + %"$gasadd_4183" = add i64 1, %"$_lengthof_call_4182" + %"$gasrem_4184" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4185" = icmp ugt i64 %"$gasadd_4183", %"$gasrem_4184" + br i1 %"$gascmp_4185", label %"$out_of_gas_4186", label %"$have_gas_4187" + +"$out_of_gas_4186": ; preds = %"$have_gas_4178" + call void @_out_of_gas() + br label %"$have_gas_4187" + +"$have_gas_4187": ; preds = %"$out_of_gas_4186", %"$have_gas_4178" + %"$consume_4188" = sub i64 %"$gasrem_4184", %"$gasadd_4183" + store i64 %"$consume_4188", i64* @_gasrem, align 8 + %"$execptr_load_4189" = load i8*, i8** @_execptr, align 8 + %"$m13_4190" = load %"Map_String_Map_(String)_(String)"*, %"Map_String_Map_(String)_(String)"** %m13, align 8 + %"$$m13_4190_4191" = bitcast %"Map_String_Map_(String)_(String)"* %"$m13_4190" to i8* + %"$put_key1d_4192" = alloca %String, align 8 + %"$key1d_4193" = load %String, %String* %key1d, align 8 + store %String %"$key1d_4193", %String* %"$put_key1d_4192", align 8 + %"$$put_key1d_4192_4194" = bitcast %String* %"$put_key1d_4192" to i8* + %"$m24_4195" = load %Map_String_String*, %Map_String_String** %m24, align 8 + %"$$m24_4195_4196" = bitcast %Map_String_String* %"$m24_4195" to i8* + %"$put_call_4197" = call i8* @_put(i8* %"$execptr_load_4189", %_TyDescrTy_Typ* @"$TyDescr_Map_76", i8* %"$$m13_4190_4191", i8* %"$$put_key1d_4192_4194", i8* %"$$m24_4195_4196"), !dbg !903 + %"$put_4198" = bitcast i8* %"$put_call_4197" to %"Map_String_Map_(String)_(String)"* + store %"Map_String_Map_(String)_(String)"* %"$put_4198", %"Map_String_Map_(String)_(String)"** %m14, align 8, !dbg !903 + %"$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_4187" + call void @_out_of_gas() + br label %"$have_gas_4202" + +"$have_gas_4202": ; preds = %"$out_of_gas_4201", %"$have_gas_4187" + %"$consume_4203" = sub i64 %"$gasrem_4199", 1 + store i64 %"$consume_4203", i64* @_gasrem, align 8 + %"$m14_4204" = load %"Map_String_Map_(String)_(String)"*, %"Map_String_Map_(String)_(String)"** %m14, align 8 + store %"Map_String_Map_(String)_(String)"* %"$m14_4204", %"Map_String_Map_(String)_(String)"** %m2_full, align 8, !dbg !904 + %"$m2_full_4205" = load %"Map_String_Map_(String)_(String)"*, %"Map_String_Map_(String)_(String)"** %m2_full, align 8 + %"$$m2_full_4205_4206" = bitcast %"Map_String_Map_(String)_(String)"* %"$m2_full_4205" to i8* + %"$_literal_cost_call_4207" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Map_76", i8* %"$$m2_full_4205_4206") + %"$gasrem_4208" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4209" = icmp ugt i64 %"$_literal_cost_call_4207", %"$gasrem_4208" + br i1 %"$gascmp_4209", label %"$out_of_gas_4210", label %"$have_gas_4211" + +"$out_of_gas_4210": ; preds = %"$have_gas_4202" + call void @_out_of_gas() + br label %"$have_gas_4211" + +"$have_gas_4211": ; preds = %"$out_of_gas_4210", %"$have_gas_4202" + %"$consume_4212" = sub i64 %"$gasrem_4208", %"$_literal_cost_call_4207" + store i64 %"$consume_4212", i64* @_gasrem, align 8 + %"$execptr_load_4213" = load i8*, i8** @_execptr, align 8 + %"$m2_full_4215" = load %"Map_String_Map_(String)_(String)"*, %"Map_String_Map_(String)_(String)"** %m2_full, align 8 + %"$update_value_4216" = bitcast %"Map_String_Map_(String)_(String)"* %"$m2_full_4215" to i8* + call void @_update_field(i8* %"$execptr_load_4213", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m2_4214", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_76", i32 0, i8* null, i8* %"$update_value_4216"), !dbg !905 ret void } -define void @t15(i8* %0) !dbg !437 { +define void @t15(i8* %0) !dbg !906 { entry: - %"$_amount_4165" = getelementptr i8, i8* %0, i32 0 - %"$_amount_4166" = bitcast i8* %"$_amount_4165" to %Uint128* - %_amount = load %Uint128, %Uint128* %"$_amount_4166", align 8 - %"$_origin_4167" = getelementptr i8, i8* %0, i32 16 - %"$_origin_4168" = bitcast i8* %"$_origin_4167" to [20 x i8]* - %"$_sender_4169" = getelementptr i8, i8* %0, i32 36 - %"$_sender_4170" = bitcast i8* %"$_sender_4169" to [20 x i8]* - call void @"$t15_3443"(%Uint128 %_amount, [20 x i8]* %"$_origin_4168", [20 x i8]* %"$_sender_4170"), !dbg !438 + %"$_amount_4221" = getelementptr i8, i8* %0, i32 0 + %"$_amount_4222" = bitcast i8* %"$_amount_4221" to %Uint128* + %_amount = load %Uint128, %Uint128* %"$_amount_4222", align 8 + %"$_origin_4223" = getelementptr i8, i8* %0, i32 16 + %"$_origin_4224" = bitcast i8* %"$_origin_4223" to [20 x i8]* + %"$_sender_4225" = getelementptr i8, i8* %0, i32 36 + %"$_sender_4226" = bitcast i8* %"$_sender_4225" to [20 x i8]* + call void @"$t15_3496"(%Uint128 %_amount, [20 x i8]* %"$_origin_4224", [20 x i8]* %"$_sender_4226"), !dbg !907 ret void } -define internal void @"$t16_4171"(%Uint128 %_amount, [20 x i8]* %"$_origin_4172", [20 x i8]* %"$_sender_4173") !dbg !439 { +define internal void @"$t16_4227"(%Uint128 %_amount, [20 x i8]* %"$_origin_4228", [20 x i8]* %"$_sender_4229") !dbg !908 { entry: - %_origin = load [20 x i8], [20 x i8]* %"$_origin_4172", align 1 - %_sender = load [20 x i8], [20 x i8]* %"$_sender_4173", align 1 - %"$gasrem_4174" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4175" = icmp ugt i64 1, %"$gasrem_4174" - br i1 %"$gascmp_4175", label %"$out_of_gas_4176", label %"$have_gas_4177" - -"$out_of_gas_4176": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_4177" - -"$have_gas_4177": ; preds = %"$out_of_gas_4176", %entry - %"$consume_4178" = sub i64 %"$gasrem_4174", 1 - store i64 %"$consume_4178", i64* @_gasrem, align 8 + %"$_sender_4800" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_sender_4229", [20 x i8]** %"$_sender_4800", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_sender_4800", metadata !909, metadata !DIExpression()), !dbg !910 + %"$_origin_4799" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_origin_4228", [20 x i8]** %"$_origin_4799", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_origin_4799", metadata !911, metadata !DIExpression()), !dbg !910 + %"$_amount_4798" = alloca %Uint128, align 8 + store %Uint128 %_amount, %Uint128* %"$_amount_4798", align 8 + call void @llvm.dbg.declare(metadata %Uint128* %"$_amount_4798", metadata !912, metadata !DIExpression()), !dbg !910 + %_origin = load [20 x i8], [20 x i8]* %"$_origin_4228", align 1 + %_sender = load [20 x i8], [20 x i8]* %"$_sender_4229", align 1 + %"$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" + +"$out_of_gas_4232": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_4233" + +"$have_gas_4233": ; preds = %"$out_of_gas_4232", %entry + %"$consume_4234" = sub i64 %"$gasrem_4230", 1 + store i64 %"$consume_4234", i64* @_gasrem, align 8 %tname = alloca %String, align 8 - %"$gasrem_4179" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4180" = icmp ugt i64 1, %"$gasrem_4179" - br i1 %"$gascmp_4180", label %"$out_of_gas_4181", label %"$have_gas_4182" + call void @llvm.dbg.declare(metadata %String* %tname, metadata !913, metadata !DIExpression()), !dbg !914 + %"$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_4181": ; preds = %"$have_gas_4177" +"$out_of_gas_4237": ; preds = %"$have_gas_4233" call void @_out_of_gas() - br label %"$have_gas_4182" + br label %"$have_gas_4238" -"$have_gas_4182": ; preds = %"$out_of_gas_4181", %"$have_gas_4177" - %"$consume_4183" = sub i64 %"$gasrem_4179", 1 - store i64 %"$consume_4183", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_4184", i32 0, i32 0), i32 3 }, %String* %tname, align 8, !dbg !440 - %"$gasrem_4185" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4186" = icmp ugt i64 1, %"$gasrem_4185" - br i1 %"$gascmp_4186", label %"$out_of_gas_4187", label %"$have_gas_4188" +"$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 + store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_4240", i32 0, i32 0), i32 3 }, %String* %tname, align 8, !dbg !915 + %"$gasrem_4241" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4242" = icmp ugt i64 1, %"$gasrem_4241" + br i1 %"$gascmp_4242", label %"$out_of_gas_4243", label %"$have_gas_4244" -"$out_of_gas_4187": ; preds = %"$have_gas_4182" +"$out_of_gas_4243": ; preds = %"$have_gas_4238" call void @_out_of_gas() - br label %"$have_gas_4188" + br label %"$have_gas_4244" -"$have_gas_4188": ; preds = %"$out_of_gas_4187", %"$have_gas_4182" - %"$consume_4189" = sub i64 %"$gasrem_4185", 1 - store i64 %"$consume_4189", i64* @_gasrem, align 8 +"$have_gas_4244": ; preds = %"$out_of_gas_4243", %"$have_gas_4238" + %"$consume_4245" = sub i64 %"$gasrem_4241", 1 + store i64 %"$consume_4245", i64* @_gasrem, align 8 %key1a = alloca %String, align 8 - %"$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" + call void @llvm.dbg.declare(metadata %String* %key1a, metadata !916, metadata !DIExpression()), !dbg !917 + %"$gasrem_4246" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4247" = icmp ugt i64 1, %"$gasrem_4246" + br i1 %"$gascmp_4247", label %"$out_of_gas_4248", label %"$have_gas_4249" -"$out_of_gas_4192": ; preds = %"$have_gas_4188" +"$out_of_gas_4248": ; preds = %"$have_gas_4244" call void @_out_of_gas() - br label %"$have_gas_4193" + br label %"$have_gas_4249" -"$have_gas_4193": ; preds = %"$out_of_gas_4192", %"$have_gas_4188" - %"$consume_4194" = sub i64 %"$gasrem_4190", 1 - store i64 %"$consume_4194", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_4195", i32 0, i32 0), i32 5 }, %String* %key1a, align 8, !dbg !441 - %"$gasrem_4196" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4197" = icmp ugt i64 1, %"$gasrem_4196" - br i1 %"$gascmp_4197", label %"$out_of_gas_4198", label %"$have_gas_4199" +"$have_gas_4249": ; preds = %"$out_of_gas_4248", %"$have_gas_4244" + %"$consume_4250" = sub i64 %"$gasrem_4246", 1 + store i64 %"$consume_4250", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_4251", i32 0, i32 0), i32 5 }, %String* %key1a, align 8, !dbg !918 + %"$gasrem_4252" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4253" = icmp ugt i64 1, %"$gasrem_4252" + br i1 %"$gascmp_4253", label %"$out_of_gas_4254", label %"$have_gas_4255" -"$out_of_gas_4198": ; preds = %"$have_gas_4193" +"$out_of_gas_4254": ; preds = %"$have_gas_4249" call void @_out_of_gas() - br label %"$have_gas_4199" + br label %"$have_gas_4255" -"$have_gas_4199": ; preds = %"$out_of_gas_4198", %"$have_gas_4193" - %"$consume_4200" = sub i64 %"$gasrem_4196", 1 - store i64 %"$consume_4200", i64* @_gasrem, align 8 +"$have_gas_4255": ; preds = %"$out_of_gas_4254", %"$have_gas_4249" + %"$consume_4256" = sub i64 %"$gasrem_4252", 1 + store i64 %"$consume_4256", i64* @_gasrem, align 8 %key2a = alloca %String, align 8 - %"$gasrem_4201" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4202" = icmp ugt i64 1, %"$gasrem_4201" - br i1 %"$gascmp_4202", label %"$out_of_gas_4203", label %"$have_gas_4204" + call void @llvm.dbg.declare(metadata %String* %key2a, metadata !919, metadata !DIExpression()), !dbg !920 + %"$gasrem_4257" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4258" = icmp ugt i64 1, %"$gasrem_4257" + br i1 %"$gascmp_4258", label %"$out_of_gas_4259", label %"$have_gas_4260" -"$out_of_gas_4203": ; preds = %"$have_gas_4199" +"$out_of_gas_4259": ; preds = %"$have_gas_4255" call void @_out_of_gas() - br label %"$have_gas_4204" + br label %"$have_gas_4260" -"$have_gas_4204": ; preds = %"$out_of_gas_4203", %"$have_gas_4199" - %"$consume_4205" = sub i64 %"$gasrem_4201", 1 - store i64 %"$consume_4205", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_4206", i32 0, i32 0), i32 5 }, %String* %key2a, align 8, !dbg !442 - %"$gasrem_4207" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4208" = icmp ugt i64 1, %"$gasrem_4207" - br i1 %"$gascmp_4208", label %"$out_of_gas_4209", label %"$have_gas_4210" +"$have_gas_4260": ; preds = %"$out_of_gas_4259", %"$have_gas_4255" + %"$consume_4261" = sub i64 %"$gasrem_4257", 1 + store i64 %"$consume_4261", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_4262", i32 0, i32 0), i32 5 }, %String* %key2a, align 8, !dbg !921 + %"$gasrem_4263" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4264" = icmp ugt i64 1, %"$gasrem_4263" + br i1 %"$gascmp_4264", label %"$out_of_gas_4265", label %"$have_gas_4266" -"$out_of_gas_4209": ; preds = %"$have_gas_4204" +"$out_of_gas_4265": ; preds = %"$have_gas_4260" call void @_out_of_gas() - br label %"$have_gas_4210" + br label %"$have_gas_4266" -"$have_gas_4210": ; preds = %"$out_of_gas_4209", %"$have_gas_4204" - %"$consume_4211" = sub i64 %"$gasrem_4207", 1 - store i64 %"$consume_4211", i64* @_gasrem, align 8 +"$have_gas_4266": ; preds = %"$out_of_gas_4265", %"$have_gas_4260" + %"$consume_4267" = sub i64 %"$gasrem_4263", 1 + store i64 %"$consume_4267", i64* @_gasrem, align 8 %key1b = alloca %String, align 8 - %"$gasrem_4212" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4213" = icmp ugt i64 1, %"$gasrem_4212" - br i1 %"$gascmp_4213", label %"$out_of_gas_4214", label %"$have_gas_4215" + call void @llvm.dbg.declare(metadata %String* %key1b, metadata !922, metadata !DIExpression()), !dbg !923 + %"$gasrem_4268" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4269" = icmp ugt i64 1, %"$gasrem_4268" + br i1 %"$gascmp_4269", label %"$out_of_gas_4270", label %"$have_gas_4271" -"$out_of_gas_4214": ; preds = %"$have_gas_4210" +"$out_of_gas_4270": ; preds = %"$have_gas_4266" call void @_out_of_gas() - br label %"$have_gas_4215" + br label %"$have_gas_4271" -"$have_gas_4215": ; preds = %"$out_of_gas_4214", %"$have_gas_4210" - %"$consume_4216" = sub i64 %"$gasrem_4212", 1 - store i64 %"$consume_4216", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_4217", i32 0, i32 0), i32 5 }, %String* %key1b, align 8, !dbg !443 - %"$gasrem_4218" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4219" = icmp ugt i64 1, %"$gasrem_4218" - br i1 %"$gascmp_4219", label %"$out_of_gas_4220", label %"$have_gas_4221" +"$have_gas_4271": ; preds = %"$out_of_gas_4270", %"$have_gas_4266" + %"$consume_4272" = sub i64 %"$gasrem_4268", 1 + store i64 %"$consume_4272", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_4273", i32 0, i32 0), i32 5 }, %String* %key1b, align 8, !dbg !924 + %"$gasrem_4274" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4275" = icmp ugt i64 1, %"$gasrem_4274" + br i1 %"$gascmp_4275", label %"$out_of_gas_4276", label %"$have_gas_4277" -"$out_of_gas_4220": ; preds = %"$have_gas_4215" +"$out_of_gas_4276": ; preds = %"$have_gas_4271" call void @_out_of_gas() - br label %"$have_gas_4221" + br label %"$have_gas_4277" -"$have_gas_4221": ; preds = %"$out_of_gas_4220", %"$have_gas_4215" - %"$consume_4222" = sub i64 %"$gasrem_4218", 1 - store i64 %"$consume_4222", i64* @_gasrem, align 8 +"$have_gas_4277": ; preds = %"$out_of_gas_4276", %"$have_gas_4271" + %"$consume_4278" = sub i64 %"$gasrem_4274", 1 + store i64 %"$consume_4278", i64* @_gasrem, align 8 %key2b = alloca %String, align 8 - %"$gasrem_4223" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4224" = icmp ugt i64 1, %"$gasrem_4223" - br i1 %"$gascmp_4224", label %"$out_of_gas_4225", label %"$have_gas_4226" + call void @llvm.dbg.declare(metadata %String* %key2b, metadata !925, metadata !DIExpression()), !dbg !926 + %"$gasrem_4279" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4280" = icmp ugt i64 1, %"$gasrem_4279" + br i1 %"$gascmp_4280", label %"$out_of_gas_4281", label %"$have_gas_4282" -"$out_of_gas_4225": ; preds = %"$have_gas_4221" +"$out_of_gas_4281": ; preds = %"$have_gas_4277" call void @_out_of_gas() - br label %"$have_gas_4226" + br label %"$have_gas_4282" -"$have_gas_4226": ; preds = %"$out_of_gas_4225", %"$have_gas_4221" - %"$consume_4227" = sub i64 %"$gasrem_4223", 1 - store i64 %"$consume_4227", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_4228", i32 0, i32 0), i32 5 }, %String* %key2b, align 8, !dbg !444 - %"$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" +"$have_gas_4282": ; preds = %"$out_of_gas_4281", %"$have_gas_4277" + %"$consume_4283" = sub i64 %"$gasrem_4279", 1 + store i64 %"$consume_4283", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_4284", i32 0, i32 0), i32 5 }, %String* %key2b, align 8, !dbg !927 + %"$gasrem_4285" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4286" = icmp ugt i64 1, %"$gasrem_4285" + br i1 %"$gascmp_4286", label %"$out_of_gas_4287", label %"$have_gas_4288" -"$out_of_gas_4231": ; preds = %"$have_gas_4226" +"$out_of_gas_4287": ; preds = %"$have_gas_4282" call void @_out_of_gas() - br label %"$have_gas_4232" + br label %"$have_gas_4288" -"$have_gas_4232": ; preds = %"$out_of_gas_4231", %"$have_gas_4226" - %"$consume_4233" = sub i64 %"$gasrem_4229", 1 - store i64 %"$consume_4233", i64* @_gasrem, align 8 +"$have_gas_4288": ; preds = %"$out_of_gas_4287", %"$have_gas_4282" + %"$consume_4289" = sub i64 %"$gasrem_4285", 1 + store i64 %"$consume_4289", i64* @_gasrem, align 8 %key1c = alloca %String, 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" + call void @llvm.dbg.declare(metadata %String* %key1c, metadata !928, metadata !DIExpression()), !dbg !929 + %"$gasrem_4290" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4291" = icmp ugt i64 1, %"$gasrem_4290" + br i1 %"$gascmp_4291", label %"$out_of_gas_4292", label %"$have_gas_4293" -"$out_of_gas_4236": ; preds = %"$have_gas_4232" +"$out_of_gas_4292": ; preds = %"$have_gas_4288" call void @_out_of_gas() - br label %"$have_gas_4237" + br label %"$have_gas_4293" -"$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 - store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_4239", i32 0, i32 0), i32 5 }, %String* %key1c, align 8, !dbg !445 - %"$gasrem_4240" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4241" = icmp ugt i64 1, %"$gasrem_4240" - br i1 %"$gascmp_4241", label %"$out_of_gas_4242", label %"$have_gas_4243" +"$have_gas_4293": ; preds = %"$out_of_gas_4292", %"$have_gas_4288" + %"$consume_4294" = sub i64 %"$gasrem_4290", 1 + store i64 %"$consume_4294", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_4295", i32 0, i32 0), i32 5 }, %String* %key1c, align 8, !dbg !930 + %"$gasrem_4296" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4297" = icmp ugt i64 1, %"$gasrem_4296" + br i1 %"$gascmp_4297", label %"$out_of_gas_4298", label %"$have_gas_4299" -"$out_of_gas_4242": ; preds = %"$have_gas_4237" +"$out_of_gas_4298": ; preds = %"$have_gas_4293" call void @_out_of_gas() - br label %"$have_gas_4243" + br label %"$have_gas_4299" -"$have_gas_4243": ; preds = %"$out_of_gas_4242", %"$have_gas_4237" - %"$consume_4244" = sub i64 %"$gasrem_4240", 1 - store i64 %"$consume_4244", i64* @_gasrem, align 8 +"$have_gas_4299": ; preds = %"$out_of_gas_4298", %"$have_gas_4293" + %"$consume_4300" = sub i64 %"$gasrem_4296", 1 + store i64 %"$consume_4300", i64* @_gasrem, align 8 %key2c = alloca %String, 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" + call void @llvm.dbg.declare(metadata %String* %key2c, metadata !931, metadata !DIExpression()), !dbg !932 + %"$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_4247": ; preds = %"$have_gas_4243" +"$out_of_gas_4303": ; preds = %"$have_gas_4299" call void @_out_of_gas() - br label %"$have_gas_4248" + br label %"$have_gas_4304" -"$have_gas_4248": ; preds = %"$out_of_gas_4247", %"$have_gas_4243" - %"$consume_4249" = sub i64 %"$gasrem_4245", 1 - store i64 %"$consume_4249", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_4250", i32 0, i32 0), i32 5 }, %String* %key2c, align 8, !dbg !446 - %"$gasrem_4251" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4252" = icmp ugt i64 1, %"$gasrem_4251" - br i1 %"$gascmp_4252", label %"$out_of_gas_4253", label %"$have_gas_4254" +"$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 + store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_4306", i32 0, i32 0), i32 5 }, %String* %key2c, align 8, !dbg !933 + %"$gasrem_4307" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4308" = icmp ugt i64 1, %"$gasrem_4307" + br i1 %"$gascmp_4308", label %"$out_of_gas_4309", label %"$have_gas_4310" -"$out_of_gas_4253": ; preds = %"$have_gas_4248" +"$out_of_gas_4309": ; preds = %"$have_gas_4304" call void @_out_of_gas() - br label %"$have_gas_4254" + br label %"$have_gas_4310" -"$have_gas_4254": ; preds = %"$out_of_gas_4253", %"$have_gas_4248" - %"$consume_4255" = sub i64 %"$gasrem_4251", 1 - store i64 %"$consume_4255", i64* @_gasrem, align 8 +"$have_gas_4310": ; preds = %"$out_of_gas_4309", %"$have_gas_4304" + %"$consume_4311" = sub i64 %"$gasrem_4307", 1 + store i64 %"$consume_4311", i64* @_gasrem, align 8 %key1d = alloca %String, align 8 - %"$gasrem_4256" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4257" = icmp ugt i64 1, %"$gasrem_4256" - br i1 %"$gascmp_4257", label %"$out_of_gas_4258", label %"$have_gas_4259" + call void @llvm.dbg.declare(metadata %String* %key1d, metadata !934, metadata !DIExpression()), !dbg !935 + %"$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_4258": ; preds = %"$have_gas_4254" +"$out_of_gas_4314": ; preds = %"$have_gas_4310" call void @_out_of_gas() - br label %"$have_gas_4259" + br label %"$have_gas_4315" -"$have_gas_4259": ; preds = %"$out_of_gas_4258", %"$have_gas_4254" - %"$consume_4260" = sub i64 %"$gasrem_4256", 1 - store i64 %"$consume_4260", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_4261", i32 0, i32 0), i32 5 }, %String* %key1d, align 8, !dbg !447 - %"$gasrem_4262" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4263" = icmp ugt i64 1, %"$gasrem_4262" - br i1 %"$gascmp_4263", label %"$out_of_gas_4264", label %"$have_gas_4265" +"$have_gas_4315": ; preds = %"$out_of_gas_4314", %"$have_gas_4310" + %"$consume_4316" = sub i64 %"$gasrem_4312", 1 + store i64 %"$consume_4316", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_4317", i32 0, i32 0), i32 5 }, %String* %key1d, align 8, !dbg !936 + %"$gasrem_4318" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4319" = icmp ugt i64 1, %"$gasrem_4318" + br i1 %"$gascmp_4319", label %"$out_of_gas_4320", label %"$have_gas_4321" -"$out_of_gas_4264": ; preds = %"$have_gas_4259" +"$out_of_gas_4320": ; preds = %"$have_gas_4315" call void @_out_of_gas() - br label %"$have_gas_4265" + br label %"$have_gas_4321" -"$have_gas_4265": ; preds = %"$out_of_gas_4264", %"$have_gas_4259" - %"$consume_4266" = sub i64 %"$gasrem_4262", 1 - store i64 %"$consume_4266", i64* @_gasrem, align 8 +"$have_gas_4321": ; preds = %"$out_of_gas_4320", %"$have_gas_4315" + %"$consume_4322" = sub i64 %"$gasrem_4318", 1 + store i64 %"$consume_4322", i64* @_gasrem, align 8 %key2d = alloca %String, align 8 - %"$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" + call void @llvm.dbg.declare(metadata %String* %key2d, metadata !937, metadata !DIExpression()), !dbg !938 + %"$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_4269": ; preds = %"$have_gas_4265" +"$out_of_gas_4325": ; preds = %"$have_gas_4321" call void @_out_of_gas() - br label %"$have_gas_4270" + br label %"$have_gas_4326" -"$have_gas_4270": ; preds = %"$out_of_gas_4269", %"$have_gas_4265" - %"$consume_4271" = sub i64 %"$gasrem_4267", 1 - store i64 %"$consume_4271", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_4272", i32 0, i32 0), i32 5 }, %String* %key2d, align 8, !dbg !448 +"$have_gas_4326": ; preds = %"$out_of_gas_4325", %"$have_gas_4321" + %"$consume_4327" = sub i64 %"$gasrem_4323", 1 + store i64 %"$consume_4327", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_4328", i32 0, i32 0), i32 5 }, %String* %key2d, align 8, !dbg !939 %t1 = alloca %TName_Option_String*, align 8 - %"$indices_buf_4273_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$indices_buf_4273_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_4273_salloc_load", i64 32) - %"$indices_buf_4273_salloc" = bitcast i8* %"$indices_buf_4273_salloc_salloc" to [32 x i8]* - %"$indices_buf_4273" = bitcast [32 x i8]* %"$indices_buf_4273_salloc" to i8* - %"$key1a_4274" = load %String, %String* %key1a, align 8 - %"$indices_gep_4275" = getelementptr i8, i8* %"$indices_buf_4273", i32 0 - %indices_cast = bitcast i8* %"$indices_gep_4275" to %String* - store %String %"$key1a_4274", %String* %indices_cast, align 8 - %"$key2a_4276" = load %String, %String* %key2a, align 8 - %"$indices_gep_4277" = getelementptr i8, i8* %"$indices_buf_4273", i32 16 - %indices_cast1 = bitcast i8* %"$indices_gep_4277" to %String* - store %String %"$key2a_4276", %String* %indices_cast1, align 8 - %"$execptr_load_4279" = load i8*, i8** @_execptr, align 8 - %"$t1_call_4280" = call i8* @_fetch_field(i8* %"$execptr_load_4279", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m2_4278", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_76", i32 2, i8* %"$indices_buf_4273", i32 1), !dbg !449 - %"$t1_4281" = bitcast i8* %"$t1_call_4280" to %TName_Option_String* - store %TName_Option_String* %"$t1_4281", %TName_Option_String** %t1, align 8 - %"$t1_4282" = load %TName_Option_String*, %TName_Option_String** %t1, align 8 - %"$$t1_4282_4283" = bitcast %TName_Option_String* %"$t1_4282" to i8* - %"$_literal_cost_call_4284" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_String_72", i8* %"$$t1_4282_4283") - %"$gasadd_4285" = add i64 %"$_literal_cost_call_4284", 0 - %"$gasadd_4286" = add i64 %"$gasadd_4285", 2 - %"$gasrem_4287" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4288" = icmp ugt i64 %"$gasadd_4286", %"$gasrem_4287" - br i1 %"$gascmp_4288", label %"$out_of_gas_4289", label %"$have_gas_4290" - -"$out_of_gas_4289": ; preds = %"$have_gas_4270" - call void @_out_of_gas() - br label %"$have_gas_4290" - -"$have_gas_4290": ; preds = %"$out_of_gas_4289", %"$have_gas_4270" - %"$consume_4291" = sub i64 %"$gasrem_4287", %"$gasadd_4286" - store i64 %"$consume_4291", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Option_String** %t1, metadata !940, metadata !DIExpression()), !dbg !941 + %"$indices_buf_4329_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$indices_buf_4329_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_4329_salloc_load", i64 32) + %"$indices_buf_4329_salloc" = bitcast i8* %"$indices_buf_4329_salloc_salloc" to [32 x i8]* + %"$indices_buf_4329" = bitcast [32 x i8]* %"$indices_buf_4329_salloc" to i8* + %"$key1a_4330" = load %String, %String* %key1a, align 8 + %"$indices_gep_4331" = getelementptr i8, i8* %"$indices_buf_4329", i32 0 + %indices_cast = bitcast i8* %"$indices_gep_4331" to %String* + store %String %"$key1a_4330", %String* %indices_cast, align 8 + %"$key2a_4332" = load %String, %String* %key2a, align 8 + %"$indices_gep_4333" = getelementptr i8, i8* %"$indices_buf_4329", i32 16 + %indices_cast1 = bitcast i8* %"$indices_gep_4333" to %String* + store %String %"$key2a_4332", %String* %indices_cast1, align 8 + %"$execptr_load_4335" = load i8*, i8** @_execptr, align 8 + %"$t1_call_4336" = call i8* @_fetch_field(i8* %"$execptr_load_4335", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m2_4334", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_76", i32 2, i8* %"$indices_buf_4329", i32 1), !dbg !941 + %"$t1_4337" = bitcast i8* %"$t1_call_4336" to %TName_Option_String* + store %TName_Option_String* %"$t1_4337", %TName_Option_String** %t1, align 8 + %"$t1_4338" = load %TName_Option_String*, %TName_Option_String** %t1, align 8 + %"$$t1_4338_4339" = bitcast %TName_Option_String* %"$t1_4338" to i8* + %"$_literal_cost_call_4340" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_String_72", i8* %"$$t1_4338_4339") + %"$gasadd_4341" = add i64 %"$_literal_cost_call_4340", 0 + %"$gasadd_4342" = add i64 %"$gasadd_4341", 2 + %"$gasrem_4343" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4344" = icmp ugt i64 %"$gasadd_4342", %"$gasrem_4343" + br i1 %"$gascmp_4344", label %"$out_of_gas_4345", label %"$have_gas_4346" + +"$out_of_gas_4345": ; preds = %"$have_gas_4326" + call void @_out_of_gas() + br label %"$have_gas_4346" + +"$have_gas_4346": ; preds = %"$out_of_gas_4345", %"$have_gas_4326" + %"$consume_4347" = sub i64 %"$gasrem_4343", %"$gasadd_4342" + store i64 %"$consume_4347", i64* @_gasrem, align 8 %t2 = alloca %TName_Option_String*, align 8 - %"$indices_buf_4292_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$indices_buf_4292_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_4292_salloc_load", i64 32) - %"$indices_buf_4292_salloc" = bitcast i8* %"$indices_buf_4292_salloc_salloc" to [32 x i8]* - %"$indices_buf_4292" = bitcast [32 x i8]* %"$indices_buf_4292_salloc" to i8* - %"$key1b_4293" = load %String, %String* %key1b, align 8 - %"$indices_gep_4294" = getelementptr i8, i8* %"$indices_buf_4292", i32 0 - %indices_cast2 = bitcast i8* %"$indices_gep_4294" to %String* - store %String %"$key1b_4293", %String* %indices_cast2, align 8 - %"$key2b_4295" = load %String, %String* %key2b, align 8 - %"$indices_gep_4296" = getelementptr i8, i8* %"$indices_buf_4292", i32 16 - %indices_cast3 = bitcast i8* %"$indices_gep_4296" to %String* - store %String %"$key2b_4295", %String* %indices_cast3, align 8 - %"$execptr_load_4298" = load i8*, i8** @_execptr, align 8 - %"$t2_call_4299" = call i8* @_fetch_field(i8* %"$execptr_load_4298", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m2_4297", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_76", i32 2, i8* %"$indices_buf_4292", i32 1), !dbg !450 - %"$t2_4300" = bitcast i8* %"$t2_call_4299" to %TName_Option_String* - store %TName_Option_String* %"$t2_4300", %TName_Option_String** %t2, align 8 - %"$t2_4301" = load %TName_Option_String*, %TName_Option_String** %t2, align 8 - %"$$t2_4301_4302" = bitcast %TName_Option_String* %"$t2_4301" to i8* - %"$_literal_cost_call_4303" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_String_72", i8* %"$$t2_4301_4302") - %"$gasadd_4304" = add i64 %"$_literal_cost_call_4303", 0 - %"$gasadd_4305" = add i64 %"$gasadd_4304", 2 - %"$gasrem_4306" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4307" = icmp ugt i64 %"$gasadd_4305", %"$gasrem_4306" - br i1 %"$gascmp_4307", label %"$out_of_gas_4308", label %"$have_gas_4309" - -"$out_of_gas_4308": ; preds = %"$have_gas_4290" - call void @_out_of_gas() - br label %"$have_gas_4309" - -"$have_gas_4309": ; preds = %"$out_of_gas_4308", %"$have_gas_4290" - %"$consume_4310" = sub i64 %"$gasrem_4306", %"$gasadd_4305" - store i64 %"$consume_4310", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Option_String** %t2, metadata !942, metadata !DIExpression()), !dbg !943 + %"$indices_buf_4348_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$indices_buf_4348_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_4348_salloc_load", i64 32) + %"$indices_buf_4348_salloc" = bitcast i8* %"$indices_buf_4348_salloc_salloc" to [32 x i8]* + %"$indices_buf_4348" = bitcast [32 x i8]* %"$indices_buf_4348_salloc" to i8* + %"$key1b_4349" = load %String, %String* %key1b, align 8 + %"$indices_gep_4350" = getelementptr i8, i8* %"$indices_buf_4348", i32 0 + %indices_cast2 = bitcast i8* %"$indices_gep_4350" to %String* + store %String %"$key1b_4349", %String* %indices_cast2, align 8 + %"$key2b_4351" = load %String, %String* %key2b, align 8 + %"$indices_gep_4352" = getelementptr i8, i8* %"$indices_buf_4348", i32 16 + %indices_cast3 = bitcast i8* %"$indices_gep_4352" to %String* + store %String %"$key2b_4351", %String* %indices_cast3, align 8 + %"$execptr_load_4354" = load i8*, i8** @_execptr, align 8 + %"$t2_call_4355" = call i8* @_fetch_field(i8* %"$execptr_load_4354", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m2_4353", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_76", i32 2, i8* %"$indices_buf_4348", i32 1), !dbg !943 + %"$t2_4356" = bitcast i8* %"$t2_call_4355" to %TName_Option_String* + store %TName_Option_String* %"$t2_4356", %TName_Option_String** %t2, align 8 + %"$t2_4357" = load %TName_Option_String*, %TName_Option_String** %t2, align 8 + %"$$t2_4357_4358" = bitcast %TName_Option_String* %"$t2_4357" to i8* + %"$_literal_cost_call_4359" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_String_72", i8* %"$$t2_4357_4358") + %"$gasadd_4360" = add i64 %"$_literal_cost_call_4359", 0 + %"$gasadd_4361" = add i64 %"$gasadd_4360", 2 + %"$gasrem_4362" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4363" = icmp ugt i64 %"$gasadd_4361", %"$gasrem_4362" + br i1 %"$gascmp_4363", label %"$out_of_gas_4364", label %"$have_gas_4365" + +"$out_of_gas_4364": ; preds = %"$have_gas_4346" + call void @_out_of_gas() + br label %"$have_gas_4365" + +"$have_gas_4365": ; preds = %"$out_of_gas_4364", %"$have_gas_4346" + %"$consume_4366" = sub i64 %"$gasrem_4362", %"$gasadd_4361" + store i64 %"$consume_4366", i64* @_gasrem, align 8 %t3 = alloca %TName_Option_String*, align 8 - %"$indices_buf_4311_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$indices_buf_4311_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_4311_salloc_load", i64 32) - %"$indices_buf_4311_salloc" = bitcast i8* %"$indices_buf_4311_salloc_salloc" to [32 x i8]* - %"$indices_buf_4311" = bitcast [32 x i8]* %"$indices_buf_4311_salloc" to i8* - %"$key1c_4312" = load %String, %String* %key1c, align 8 - %"$indices_gep_4313" = getelementptr i8, i8* %"$indices_buf_4311", i32 0 - %indices_cast4 = bitcast i8* %"$indices_gep_4313" to %String* - store %String %"$key1c_4312", %String* %indices_cast4, align 8 - %"$key2c_4314" = load %String, %String* %key2c, align 8 - %"$indices_gep_4315" = getelementptr i8, i8* %"$indices_buf_4311", i32 16 - %indices_cast5 = bitcast i8* %"$indices_gep_4315" to %String* - store %String %"$key2c_4314", %String* %indices_cast5, align 8 - %"$execptr_load_4317" = load i8*, i8** @_execptr, align 8 - %"$t3_call_4318" = call i8* @_fetch_field(i8* %"$execptr_load_4317", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m2_4316", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_76", i32 2, i8* %"$indices_buf_4311", i32 1), !dbg !451 - %"$t3_4319" = bitcast i8* %"$t3_call_4318" to %TName_Option_String* - store %TName_Option_String* %"$t3_4319", %TName_Option_String** %t3, align 8 - %"$t3_4320" = load %TName_Option_String*, %TName_Option_String** %t3, align 8 - %"$$t3_4320_4321" = bitcast %TName_Option_String* %"$t3_4320" to i8* - %"$_literal_cost_call_4322" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_String_72", i8* %"$$t3_4320_4321") - %"$gasadd_4323" = add i64 %"$_literal_cost_call_4322", 0 - %"$gasadd_4324" = add i64 %"$gasadd_4323", 2 - %"$gasrem_4325" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4326" = icmp ugt i64 %"$gasadd_4324", %"$gasrem_4325" - br i1 %"$gascmp_4326", label %"$out_of_gas_4327", label %"$have_gas_4328" - -"$out_of_gas_4327": ; preds = %"$have_gas_4309" - call void @_out_of_gas() - br label %"$have_gas_4328" - -"$have_gas_4328": ; preds = %"$out_of_gas_4327", %"$have_gas_4309" - %"$consume_4329" = sub i64 %"$gasrem_4325", %"$gasadd_4324" - store i64 %"$consume_4329", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Option_String** %t3, metadata !944, metadata !DIExpression()), !dbg !945 + %"$indices_buf_4367_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$indices_buf_4367_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_4367_salloc_load", i64 32) + %"$indices_buf_4367_salloc" = bitcast i8* %"$indices_buf_4367_salloc_salloc" to [32 x i8]* + %"$indices_buf_4367" = bitcast [32 x i8]* %"$indices_buf_4367_salloc" to i8* + %"$key1c_4368" = load %String, %String* %key1c, align 8 + %"$indices_gep_4369" = getelementptr i8, i8* %"$indices_buf_4367", i32 0 + %indices_cast4 = bitcast i8* %"$indices_gep_4369" to %String* + store %String %"$key1c_4368", %String* %indices_cast4, align 8 + %"$key2c_4370" = load %String, %String* %key2c, align 8 + %"$indices_gep_4371" = getelementptr i8, i8* %"$indices_buf_4367", i32 16 + %indices_cast5 = bitcast i8* %"$indices_gep_4371" to %String* + store %String %"$key2c_4370", %String* %indices_cast5, align 8 + %"$execptr_load_4373" = load i8*, i8** @_execptr, align 8 + %"$t3_call_4374" = call i8* @_fetch_field(i8* %"$execptr_load_4373", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m2_4372", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_76", i32 2, i8* %"$indices_buf_4367", i32 1), !dbg !945 + %"$t3_4375" = bitcast i8* %"$t3_call_4374" to %TName_Option_String* + store %TName_Option_String* %"$t3_4375", %TName_Option_String** %t3, align 8 + %"$t3_4376" = load %TName_Option_String*, %TName_Option_String** %t3, align 8 + %"$$t3_4376_4377" = bitcast %TName_Option_String* %"$t3_4376" to i8* + %"$_literal_cost_call_4378" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_String_72", i8* %"$$t3_4376_4377") + %"$gasadd_4379" = add i64 %"$_literal_cost_call_4378", 0 + %"$gasadd_4380" = add i64 %"$gasadd_4379", 2 + %"$gasrem_4381" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4382" = icmp ugt i64 %"$gasadd_4380", %"$gasrem_4381" + br i1 %"$gascmp_4382", label %"$out_of_gas_4383", label %"$have_gas_4384" + +"$out_of_gas_4383": ; preds = %"$have_gas_4365" + call void @_out_of_gas() + br label %"$have_gas_4384" + +"$have_gas_4384": ; preds = %"$out_of_gas_4383", %"$have_gas_4365" + %"$consume_4385" = sub i64 %"$gasrem_4381", %"$gasadd_4380" + store i64 %"$consume_4385", i64* @_gasrem, align 8 %t4 = alloca %TName_Option_String*, align 8 - %"$indices_buf_4330_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$indices_buf_4330_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_4330_salloc_load", i64 32) - %"$indices_buf_4330_salloc" = bitcast i8* %"$indices_buf_4330_salloc_salloc" to [32 x i8]* - %"$indices_buf_4330" = bitcast [32 x i8]* %"$indices_buf_4330_salloc" to i8* - %"$key1d_4331" = load %String, %String* %key1d, align 8 - %"$indices_gep_4332" = getelementptr i8, i8* %"$indices_buf_4330", i32 0 - %indices_cast6 = bitcast i8* %"$indices_gep_4332" to %String* - store %String %"$key1d_4331", %String* %indices_cast6, align 8 - %"$key2d_4333" = load %String, %String* %key2d, align 8 - %"$indices_gep_4334" = getelementptr i8, i8* %"$indices_buf_4330", i32 16 - %indices_cast7 = bitcast i8* %"$indices_gep_4334" to %String* - store %String %"$key2d_4333", %String* %indices_cast7, align 8 - %"$execptr_load_4336" = load i8*, i8** @_execptr, align 8 - %"$t4_call_4337" = call i8* @_fetch_field(i8* %"$execptr_load_4336", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m2_4335", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_76", i32 2, i8* %"$indices_buf_4330", i32 1), !dbg !452 - %"$t4_4338" = bitcast i8* %"$t4_call_4337" to %TName_Option_String* - store %TName_Option_String* %"$t4_4338", %TName_Option_String** %t4, align 8 - %"$t4_4339" = load %TName_Option_String*, %TName_Option_String** %t4, align 8 - %"$$t4_4339_4340" = bitcast %TName_Option_String* %"$t4_4339" to i8* - %"$_literal_cost_call_4341" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_String_72", i8* %"$$t4_4339_4340") - %"$gasadd_4342" = add i64 %"$_literal_cost_call_4341", 0 - %"$gasadd_4343" = add i64 %"$gasadd_4342", 2 - %"$gasrem_4344" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4345" = icmp ugt i64 %"$gasadd_4343", %"$gasrem_4344" - br i1 %"$gascmp_4345", label %"$out_of_gas_4346", label %"$have_gas_4347" - -"$out_of_gas_4346": ; preds = %"$have_gas_4328" - call void @_out_of_gas() - br label %"$have_gas_4347" - -"$have_gas_4347": ; preds = %"$out_of_gas_4346", %"$have_gas_4328" - %"$consume_4348" = sub i64 %"$gasrem_4344", %"$gasadd_4343" - store i64 %"$consume_4348", i64* @_gasrem, align 8 - %"$gasrem_4349" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4350" = icmp ugt i64 1, %"$gasrem_4349" - br i1 %"$gascmp_4350", label %"$out_of_gas_4351", label %"$have_gas_4352" - -"$out_of_gas_4351": ; preds = %"$have_gas_4347" - call void @_out_of_gas() - br label %"$have_gas_4352" - -"$have_gas_4352": ; preds = %"$out_of_gas_4351", %"$have_gas_4347" - %"$consume_4353" = sub i64 %"$gasrem_4349", 1 - store i64 %"$consume_4353", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Option_String** %t4, metadata !946, metadata !DIExpression()), !dbg !947 + %"$indices_buf_4386_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$indices_buf_4386_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_4386_salloc_load", i64 32) + %"$indices_buf_4386_salloc" = bitcast i8* %"$indices_buf_4386_salloc_salloc" to [32 x i8]* + %"$indices_buf_4386" = bitcast [32 x i8]* %"$indices_buf_4386_salloc" to i8* + %"$key1d_4387" = load %String, %String* %key1d, align 8 + %"$indices_gep_4388" = getelementptr i8, i8* %"$indices_buf_4386", i32 0 + %indices_cast6 = bitcast i8* %"$indices_gep_4388" to %String* + store %String %"$key1d_4387", %String* %indices_cast6, align 8 + %"$key2d_4389" = load %String, %String* %key2d, align 8 + %"$indices_gep_4390" = getelementptr i8, i8* %"$indices_buf_4386", i32 16 + %indices_cast7 = bitcast i8* %"$indices_gep_4390" to %String* + store %String %"$key2d_4389", %String* %indices_cast7, align 8 + %"$execptr_load_4392" = load i8*, i8** @_execptr, align 8 + %"$t4_call_4393" = call i8* @_fetch_field(i8* %"$execptr_load_4392", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m2_4391", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_76", i32 2, i8* %"$indices_buf_4386", i32 1), !dbg !947 + %"$t4_4394" = bitcast i8* %"$t4_call_4393" to %TName_Option_String* + store %TName_Option_String* %"$t4_4394", %TName_Option_String** %t4, align 8 + %"$t4_4395" = load %TName_Option_String*, %TName_Option_String** %t4, align 8 + %"$$t4_4395_4396" = bitcast %TName_Option_String* %"$t4_4395" to i8* + %"$_literal_cost_call_4397" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_String_72", i8* %"$$t4_4395_4396") + %"$gasadd_4398" = add i64 %"$_literal_cost_call_4397", 0 + %"$gasadd_4399" = add i64 %"$gasadd_4398", 2 + %"$gasrem_4400" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4401" = icmp ugt i64 %"$gasadd_4399", %"$gasrem_4400" + br i1 %"$gascmp_4401", label %"$out_of_gas_4402", label %"$have_gas_4403" + +"$out_of_gas_4402": ; preds = %"$have_gas_4384" + call void @_out_of_gas() + br label %"$have_gas_4403" + +"$have_gas_4403": ; preds = %"$out_of_gas_4402", %"$have_gas_4384" + %"$consume_4404" = sub i64 %"$gasrem_4400", %"$gasadd_4399" + store i64 %"$consume_4404", i64* @_gasrem, align 8 + %"$gasrem_4405" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4406" = icmp ugt i64 1, %"$gasrem_4405" + br i1 %"$gascmp_4406", label %"$out_of_gas_4407", label %"$have_gas_4408" + +"$out_of_gas_4407": ; preds = %"$have_gas_4403" + call void @_out_of_gas() + br label %"$have_gas_4408" + +"$have_gas_4408": ; preds = %"$out_of_gas_4407", %"$have_gas_4403" + %"$consume_4409" = sub i64 %"$gasrem_4405", 1 + store i64 %"$consume_4409", i64* @_gasrem, align 8 %v1 = alloca %String, align 8 - %"$gasrem_4354" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4355" = icmp ugt i64 1, %"$gasrem_4354" - br i1 %"$gascmp_4355", label %"$out_of_gas_4356", label %"$have_gas_4357" + call void @llvm.dbg.declare(metadata %String* %v1, metadata !948, metadata !DIExpression()), !dbg !949 + %"$gasrem_4410" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4411" = icmp ugt i64 1, %"$gasrem_4410" + br i1 %"$gascmp_4411", label %"$out_of_gas_4412", label %"$have_gas_4413" -"$out_of_gas_4356": ; preds = %"$have_gas_4352" +"$out_of_gas_4412": ; preds = %"$have_gas_4408" call void @_out_of_gas() - br label %"$have_gas_4357" + br label %"$have_gas_4413" -"$have_gas_4357": ; preds = %"$out_of_gas_4356", %"$have_gas_4352" - %"$consume_4358" = sub i64 %"$gasrem_4354", 1 - store i64 %"$consume_4358", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_4359", i32 0, i32 0), i32 3 }, %String* %v1, align 8, !dbg !453 - %"$gasrem_4360" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4361" = icmp ugt i64 1, %"$gasrem_4360" - br i1 %"$gascmp_4361", label %"$out_of_gas_4362", label %"$have_gas_4363" +"$have_gas_4413": ; preds = %"$out_of_gas_4412", %"$have_gas_4408" + %"$consume_4414" = sub i64 %"$gasrem_4410", 1 + store i64 %"$consume_4414", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_4415", i32 0, i32 0), i32 3 }, %String* %v1, align 8, !dbg !950 + %"$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_4362": ; preds = %"$have_gas_4357" +"$out_of_gas_4418": ; preds = %"$have_gas_4413" call void @_out_of_gas() - br label %"$have_gas_4363" + br label %"$have_gas_4419" -"$have_gas_4363": ; preds = %"$out_of_gas_4362", %"$have_gas_4357" - %"$consume_4364" = sub i64 %"$gasrem_4360", 1 - store i64 %"$consume_4364", i64* @_gasrem, align 8 +"$have_gas_4419": ; preds = %"$out_of_gas_4418", %"$have_gas_4413" + %"$consume_4420" = sub i64 %"$gasrem_4416", 1 + store i64 %"$consume_4420", i64* @_gasrem, align 8 %v2 = alloca %String, align 8 - %"$gasrem_4365" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4366" = icmp ugt i64 1, %"$gasrem_4365" - br i1 %"$gascmp_4366", label %"$out_of_gas_4367", label %"$have_gas_4368" + call void @llvm.dbg.declare(metadata %String* %v2, metadata !951, metadata !DIExpression()), !dbg !952 + %"$gasrem_4421" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4422" = icmp ugt i64 1, %"$gasrem_4421" + br i1 %"$gascmp_4422", label %"$out_of_gas_4423", label %"$have_gas_4424" -"$out_of_gas_4367": ; preds = %"$have_gas_4363" +"$out_of_gas_4423": ; preds = %"$have_gas_4419" call void @_out_of_gas() - br label %"$have_gas_4368" + br label %"$have_gas_4424" -"$have_gas_4368": ; preds = %"$out_of_gas_4367", %"$have_gas_4363" - %"$consume_4369" = sub i64 %"$gasrem_4365", 1 - store i64 %"$consume_4369", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_4370", i32 0, i32 0), i32 3 }, %String* %v2, align 8, !dbg !454 - %"$gasrem_4371" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4372" = icmp ugt i64 1, %"$gasrem_4371" - br i1 %"$gascmp_4372", label %"$out_of_gas_4373", label %"$have_gas_4374" +"$have_gas_4424": ; preds = %"$out_of_gas_4423", %"$have_gas_4419" + %"$consume_4425" = sub i64 %"$gasrem_4421", 1 + store i64 %"$consume_4425", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_4426", i32 0, i32 0), i32 3 }, %String* %v2, align 8, !dbg !953 + %"$gasrem_4427" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4428" = icmp ugt i64 1, %"$gasrem_4427" + br i1 %"$gascmp_4428", label %"$out_of_gas_4429", label %"$have_gas_4430" -"$out_of_gas_4373": ; preds = %"$have_gas_4368" +"$out_of_gas_4429": ; preds = %"$have_gas_4424" call void @_out_of_gas() - br label %"$have_gas_4374" + br label %"$have_gas_4430" -"$have_gas_4374": ; preds = %"$out_of_gas_4373", %"$have_gas_4368" - %"$consume_4375" = sub i64 %"$gasrem_4371", 1 - store i64 %"$consume_4375", i64* @_gasrem, align 8 +"$have_gas_4430": ; preds = %"$out_of_gas_4429", %"$have_gas_4424" + %"$consume_4431" = sub i64 %"$gasrem_4427", 1 + store i64 %"$consume_4431", i64* @_gasrem, align 8 %v3 = alloca %String, align 8 - %"$gasrem_4376" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4377" = icmp ugt i64 1, %"$gasrem_4376" - br i1 %"$gascmp_4377", label %"$out_of_gas_4378", label %"$have_gas_4379" + call void @llvm.dbg.declare(metadata %String* %v3, metadata !954, metadata !DIExpression()), !dbg !955 + %"$gasrem_4432" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4433" = icmp ugt i64 1, %"$gasrem_4432" + br i1 %"$gascmp_4433", label %"$out_of_gas_4434", label %"$have_gas_4435" -"$out_of_gas_4378": ; preds = %"$have_gas_4374" +"$out_of_gas_4434": ; preds = %"$have_gas_4430" call void @_out_of_gas() - br label %"$have_gas_4379" + br label %"$have_gas_4435" -"$have_gas_4379": ; preds = %"$out_of_gas_4378", %"$have_gas_4374" - %"$consume_4380" = sub i64 %"$gasrem_4376", 1 - store i64 %"$consume_4380", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_4381", i32 0, i32 0), i32 3 }, %String* %v3, align 8, !dbg !455 - %"$gasrem_4382" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4383" = icmp ugt i64 1, %"$gasrem_4382" - br i1 %"$gascmp_4383", label %"$out_of_gas_4384", label %"$have_gas_4385" +"$have_gas_4435": ; preds = %"$out_of_gas_4434", %"$have_gas_4430" + %"$consume_4436" = sub i64 %"$gasrem_4432", 1 + store i64 %"$consume_4436", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_4437", i32 0, i32 0), i32 3 }, %String* %v3, align 8, !dbg !956 + %"$gasrem_4438" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4439" = icmp ugt i64 1, %"$gasrem_4438" + br i1 %"$gascmp_4439", label %"$out_of_gas_4440", label %"$have_gas_4441" -"$out_of_gas_4384": ; preds = %"$have_gas_4379" +"$out_of_gas_4440": ; preds = %"$have_gas_4435" call void @_out_of_gas() - br label %"$have_gas_4385" + br label %"$have_gas_4441" -"$have_gas_4385": ; preds = %"$out_of_gas_4384", %"$have_gas_4379" - %"$consume_4386" = sub i64 %"$gasrem_4382", 1 - store i64 %"$consume_4386", i64* @_gasrem, align 8 +"$have_gas_4441": ; preds = %"$out_of_gas_4440", %"$have_gas_4435" + %"$consume_4442" = sub i64 %"$gasrem_4438", 1 + store i64 %"$consume_4442", i64* @_gasrem, align 8 %v4 = alloca %String, align 8 - %"$gasrem_4387" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4388" = icmp ugt i64 1, %"$gasrem_4387" - br i1 %"$gascmp_4388", label %"$out_of_gas_4389", label %"$have_gas_4390" + call void @llvm.dbg.declare(metadata %String* %v4, metadata !957, metadata !DIExpression()), !dbg !958 + %"$gasrem_4443" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4444" = icmp ugt i64 1, %"$gasrem_4443" + br i1 %"$gascmp_4444", label %"$out_of_gas_4445", label %"$have_gas_4446" -"$out_of_gas_4389": ; preds = %"$have_gas_4385" +"$out_of_gas_4445": ; preds = %"$have_gas_4441" call void @_out_of_gas() - br label %"$have_gas_4390" + br label %"$have_gas_4446" -"$have_gas_4390": ; preds = %"$out_of_gas_4389", %"$have_gas_4385" - %"$consume_4391" = sub i64 %"$gasrem_4387", 1 - store i64 %"$consume_4391", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_4392", i32 0, i32 0), i32 3 }, %String* %v4, align 8, !dbg !456 - %"$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" +"$have_gas_4446": ; preds = %"$out_of_gas_4445", %"$have_gas_4441" + %"$consume_4447" = sub i64 %"$gasrem_4443", 1 + store i64 %"$consume_4447", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_4448", i32 0, i32 0), i32 3 }, %String* %v4, align 8, !dbg !959 + %"$gasrem_4449" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4450" = icmp ugt i64 1, %"$gasrem_4449" + br i1 %"$gascmp_4450", label %"$out_of_gas_4451", label %"$have_gas_4452" -"$out_of_gas_4395": ; preds = %"$have_gas_4390" +"$out_of_gas_4451": ; preds = %"$have_gas_4446" call void @_out_of_gas() - br label %"$have_gas_4396" + br label %"$have_gas_4452" -"$have_gas_4396": ; preds = %"$out_of_gas_4395", %"$have_gas_4390" - %"$consume_4397" = sub i64 %"$gasrem_4393", 1 - store i64 %"$consume_4397", i64* @_gasrem, align 8 +"$have_gas_4452": ; preds = %"$out_of_gas_4451", %"$have_gas_4446" + %"$consume_4453" = sub i64 %"$gasrem_4449", 1 + store i64 %"$consume_4453", i64* @_gasrem, align 8 %b1 = 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 - %"$t1_4404" = load %TName_Option_String*, %TName_Option_String** %t1, align 8 - %"$t1_tag_4405" = getelementptr inbounds %TName_Option_String, %TName_Option_String* %"$t1_4404", i32 0, i32 0 - %"$t1_tag_4406" = load i8, i8* %"$t1_tag_4405", align 1 - switch i8 %"$t1_tag_4406", label %"$empty_default_4407" [ - i8 0, label %"$Some_4408" - i8 1, label %"$None_4431" - ], !dbg !457 - -"$Some_4408": ; preds = %"$have_gas_4401" - %"$t1_4409" = bitcast %TName_Option_String* %"$t1_4404" to %CName_Some_String* - %"$t1v_gep_4410" = getelementptr inbounds %CName_Some_String, %CName_Some_String* %"$t1_4409", i32 0, i32 1 - %"$t1v_load_4411" = load %String, %String* %"$t1v_gep_4410", align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %b1, metadata !960, metadata !DIExpression()), !dbg !961 + %"$gasrem_4454" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4455" = icmp ugt i64 2, %"$gasrem_4454" + br i1 %"$gascmp_4455", label %"$out_of_gas_4456", label %"$have_gas_4457" + +"$out_of_gas_4456": ; preds = %"$have_gas_4452" + call void @_out_of_gas() + br label %"$have_gas_4457" + +"$have_gas_4457": ; preds = %"$out_of_gas_4456", %"$have_gas_4452" + %"$consume_4458" = sub i64 %"$gasrem_4454", 2 + store i64 %"$consume_4458", i64* @_gasrem, align 8 + %"$t1_4460" = load %TName_Option_String*, %TName_Option_String** %t1, align 8 + %"$t1_tag_4461" = getelementptr inbounds %TName_Option_String, %TName_Option_String* %"$t1_4460", i32 0, i32 0 + %"$t1_tag_4462" = load i8, i8* %"$t1_tag_4461", align 1 + switch i8 %"$t1_tag_4462", label %"$empty_default_4463" [ + i8 0, label %"$Some_4464" + i8 1, label %"$None_4487" + ], !dbg !962 + +"$Some_4464": ; preds = %"$have_gas_4457" + %"$t1_4465" = bitcast %TName_Option_String* %"$t1_4460" to %CName_Some_String* + %"$t1v_gep_4466" = getelementptr inbounds %CName_Some_String, %CName_Some_String* %"$t1_4465", i32 0, i32 1 + %"$t1v_load_4467" = load %String, %String* %"$t1v_gep_4466", align 8 %t1v = alloca %String, align 8 - store %String %"$t1v_load_4411", %String* %t1v, align 8 - %"$_literal_cost_t1v_4412" = alloca %String, align 8 - %"$t1v_4413" = load %String, %String* %t1v, align 8 - store %String %"$t1v_4413", %String* %"$_literal_cost_t1v_4412", align 8 - %"$$_literal_cost_t1v_4412_4414" = bitcast %String* %"$_literal_cost_t1v_4412" to i8* - %"$_literal_cost_call_4415" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_52", i8* %"$$_literal_cost_t1v_4412_4414") - %"$_literal_cost_v1_4416" = alloca %String, align 8 - %"$v1_4417" = load %String, %String* %v1, align 8 - store %String %"$v1_4417", %String* %"$_literal_cost_v1_4416", align 8 - %"$$_literal_cost_v1_4416_4418" = bitcast %String* %"$_literal_cost_v1_4416" to i8* - %"$_literal_cost_call_4419" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_52", i8* %"$$_literal_cost_v1_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 %"$gasmin_4420", %"$gasrem_4421" - br i1 %"$gascmp_4422", label %"$out_of_gas_4423", label %"$have_gas_4424" - -"$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", %"$Some_4408" - %"$consume_4425" = sub i64 %"$gasrem_4421", %"$gasmin_4420" - store i64 %"$consume_4425", i64* @_gasrem, align 8 - %"$execptr_load_4426" = load i8*, i8** @_execptr, align 8 - %"$t1v_4427" = load %String, %String* %t1v, align 8 - %"$v1_4428" = load %String, %String* %v1, align 8 - %"$eq_call_4429" = call %TName_Bool* @_eq_String(i8* %"$execptr_load_4426", %String %"$t1v_4427", %String %"$v1_4428"), !dbg !458 - store %TName_Bool* %"$eq_call_4429", %TName_Bool** %b1, align 8, !dbg !458 - br label %"$matchsucc_4403" - -"$None_4431": ; preds = %"$have_gas_4401" - %"$t1_4432" = bitcast %TName_Option_String* %"$t1_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** %b1, align 8, !dbg !461 - 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 - %b2 = 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 - %"$t2_4452" = load %TName_Option_String*, %TName_Option_String** %t2, align 8 - %"$t2_tag_4453" = getelementptr inbounds %TName_Option_String, %TName_Option_String* %"$t2_4452", i32 0, i32 0 - %"$t2_tag_4454" = load i8, i8* %"$t2_tag_4453", align 1 - switch i8 %"$t2_tag_4454", label %"$empty_default_4455" [ - i8 0, label %"$Some_4456" - i8 1, label %"$None_4479" - ], !dbg !463 - -"$Some_4456": ; preds = %"$have_gas_4449" - %"$t2_4457" = bitcast %TName_Option_String* %"$t2_4452" to %CName_Some_String* - %"$t2v_gep_4458" = getelementptr inbounds %CName_Some_String, %CName_Some_String* %"$t2_4457", i32 0, i32 1 - %"$t2v_load_4459" = load %String, %String* %"$t2v_gep_4458", align 8 - %t2v = alloca %String, align 8 - store %String %"$t2v_load_4459", %String* %t2v, align 8 - %"$_literal_cost_t2v_4460" = alloca %String, align 8 - %"$t2v_4461" = load %String, %String* %t2v, align 8 - store %String %"$t2v_4461", %String* %"$_literal_cost_t2v_4460", align 8 - %"$$_literal_cost_t2v_4460_4462" = bitcast %String* %"$_literal_cost_t2v_4460" to i8* - %"$_literal_cost_call_4463" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_52", i8* %"$$_literal_cost_t2v_4460_4462") - %"$_literal_cost_v2_4464" = alloca %String, align 8 - %"$v2_4465" = load %String, %String* %v2, align 8 - store %String %"$v2_4465", %String* %"$_literal_cost_v2_4464", align 8 - %"$$_literal_cost_v2_4464_4466" = bitcast %String* %"$_literal_cost_v2_4464" to i8* - %"$_literal_cost_call_4467" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_52", i8* %"$$_literal_cost_v2_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 %"$gasmin_4468", %"$gasrem_4469" - br i1 %"$gascmp_4470", label %"$out_of_gas_4471", label %"$have_gas_4472" - -"$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", %"$Some_4456" - %"$consume_4473" = sub i64 %"$gasrem_4469", %"$gasmin_4468" - store i64 %"$consume_4473", i64* @_gasrem, align 8 - %"$execptr_load_4474" = load i8*, i8** @_execptr, align 8 - %"$t2v_4475" = load %String, %String* %t2v, align 8 - %"$v2_4476" = load %String, %String* %v2, align 8 - %"$eq_call_4477" = call %TName_Bool* @_eq_String(i8* %"$execptr_load_4474", %String %"$t2v_4475", %String %"$v2_4476"), !dbg !464 - store %TName_Bool* %"$eq_call_4477", %TName_Bool** %b2, align 8, !dbg !464 - br label %"$matchsucc_4451" - -"$None_4479": ; preds = %"$have_gas_4449" - %"$t2_4480" = bitcast %TName_Option_String* %"$t2_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** %b2, align 8, !dbg !467 - 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" + store %String %"$t1v_load_4467", %String* %t1v, align 8 + %"$_literal_cost_t1v_4468" = alloca %String, align 8 + %"$t1v_4469" = load %String, %String* %t1v, align 8 + store %String %"$t1v_4469", %String* %"$_literal_cost_t1v_4468", align 8 + %"$$_literal_cost_t1v_4468_4470" = bitcast %String* %"$_literal_cost_t1v_4468" to i8* + %"$_literal_cost_call_4471" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_52", i8* %"$$_literal_cost_t1v_4468_4470") + %"$_literal_cost_v1_4472" = alloca %String, align 8 + %"$v1_4473" = load %String, %String* %v1, align 8 + store %String %"$v1_4473", %String* %"$_literal_cost_v1_4472", align 8 + %"$$_literal_cost_v1_4472_4474" = bitcast %String* %"$_literal_cost_v1_4472" to i8* + %"$_literal_cost_call_4475" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_52", i8* %"$$_literal_cost_v1_4472_4474") + %"$gasmin_4476" = call i64 @llvm.umin.i64(i64 %"$_literal_cost_call_4471", i64 %"$_literal_cost_call_4475") + %"$gasrem_4477" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4478" = icmp ugt i64 %"$gasmin_4476", %"$gasrem_4477" + br i1 %"$gascmp_4478", label %"$out_of_gas_4479", label %"$have_gas_4480" + +"$out_of_gas_4479": ; preds = %"$Some_4464" + call void @_out_of_gas() + br label %"$have_gas_4480" + +"$have_gas_4480": ; preds = %"$out_of_gas_4479", %"$Some_4464" + %"$consume_4481" = sub i64 %"$gasrem_4477", %"$gasmin_4476" + store i64 %"$consume_4481", i64* @_gasrem, align 8 + %"$execptr_load_4482" = load i8*, i8** @_execptr, align 8 + %"$t1v_4483" = load %String, %String* %t1v, align 8 + %"$v1_4484" = load %String, %String* %v1, align 8 + %"$eq_call_4485" = call %TName_Bool* @_eq_String(i8* %"$execptr_load_4482", %String %"$t1v_4483", %String %"$v1_4484"), !dbg !963 + store %TName_Bool* %"$eq_call_4485", %TName_Bool** %b1, align 8, !dbg !963 + br label %"$matchsucc_4459" + +"$None_4487": ; preds = %"$have_gas_4457" + %"$t1_4488" = bitcast %TName_Option_String* %"$t1_4460" to %CName_None_String* %"$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" +"$out_of_gas_4491": ; preds = %"$None_4487" call void @_out_of_gas() br label %"$have_gas_4492" -"$have_gas_4492": ; preds = %"$out_of_gas_4491", %"$matchsucc_4451" +"$have_gas_4492": ; preds = %"$out_of_gas_4491", %"$None_4487" %"$consume_4493" = sub i64 %"$gasrem_4489", 1 store i64 %"$consume_4493", i64* @_gasrem, align 8 - %b3 = 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 - %"$t3_4500" = load %TName_Option_String*, %TName_Option_String** %t3, align 8 - %"$t3_tag_4501" = getelementptr inbounds %TName_Option_String, %TName_Option_String* %"$t3_4500", i32 0, i32 0 - %"$t3_tag_4502" = load i8, i8* %"$t3_tag_4501", align 1 - switch i8 %"$t3_tag_4502", label %"$empty_default_4503" [ - i8 0, label %"$Some_4504" - i8 1, label %"$None_4527" - ], !dbg !469 - -"$Some_4504": ; preds = %"$have_gas_4497" - %"$t3_4505" = bitcast %TName_Option_String* %"$t3_4500" to %CName_Some_String* - %"$t3v_gep_4506" = getelementptr inbounds %CName_Some_String, %CName_Some_String* %"$t3_4505", i32 0, i32 1 - %"$t3v_load_4507" = load %String, %String* %"$t3v_gep_4506", align 8 - %t3v = alloca %String, align 8 - store %String %"$t3v_load_4507", %String* %t3v, align 8 - %"$_literal_cost_t3v_4508" = alloca %String, align 8 - %"$t3v_4509" = load %String, %String* %t3v, align 8 - store %String %"$t3v_4509", %String* %"$_literal_cost_t3v_4508", align 8 - %"$$_literal_cost_t3v_4508_4510" = bitcast %String* %"$_literal_cost_t3v_4508" to i8* - %"$_literal_cost_call_4511" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_52", i8* %"$$_literal_cost_t3v_4508_4510") - %"$_literal_cost_v3_4512" = alloca %String, align 8 - %"$v3_4513" = load %String, %String* %v3, align 8 - store %String %"$v3_4513", %String* %"$_literal_cost_v3_4512", align 8 - %"$$_literal_cost_v3_4512_4514" = bitcast %String* %"$_literal_cost_v3_4512" to i8* - %"$_literal_cost_call_4515" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_52", i8* %"$$_literal_cost_v3_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 %"$gasmin_4516", %"$gasrem_4517" - br i1 %"$gascmp_4518", label %"$out_of_gas_4519", label %"$have_gas_4520" - -"$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", %"$Some_4504" - %"$consume_4521" = sub i64 %"$gasrem_4517", %"$gasmin_4516" - store i64 %"$consume_4521", i64* @_gasrem, align 8 - %"$execptr_load_4522" = load i8*, i8** @_execptr, align 8 - %"$t3v_4523" = load %String, %String* %t3v, align 8 - %"$v3_4524" = load %String, %String* %v3, align 8 - %"$eq_call_4525" = call %TName_Bool* @_eq_String(i8* %"$execptr_load_4522", %String %"$t3v_4523", %String %"$v3_4524"), !dbg !470 - store %TName_Bool* %"$eq_call_4525", %TName_Bool** %b3, align 8, !dbg !470 - br label %"$matchsucc_4499" - -"$None_4527": ; preds = %"$have_gas_4497" - %"$t3_4528" = bitcast %TName_Option_String* %"$t3_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** %b3, align 8, !dbg !473 - 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" + %"$adtval_4494_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_4494_salloc" = call i8* @_salloc(i8* %"$adtval_4494_load", i64 1) + %"$adtval_4494" = bitcast i8* %"$adtval_4494_salloc" to %CName_False* + %"$adtgep_4495" = getelementptr inbounds %CName_False, %CName_False* %"$adtval_4494", i32 0, i32 0 + store i8 1, i8* %"$adtgep_4495", align 1 + %"$adtptr_4496" = bitcast %CName_False* %"$adtval_4494" to %TName_Bool* + store %TName_Bool* %"$adtptr_4496", %TName_Bool** %b1, align 8, !dbg !966 + br label %"$matchsucc_4459" + +"$empty_default_4463": ; preds = %"$have_gas_4457" + br label %"$matchsucc_4459" + +"$matchsucc_4459": ; preds = %"$have_gas_4492", %"$have_gas_4480", %"$empty_default_4463" + %"$gasrem_4497" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4498" = icmp ugt i64 1, %"$gasrem_4497" + br i1 %"$gascmp_4498", label %"$out_of_gas_4499", label %"$have_gas_4500" + +"$out_of_gas_4499": ; preds = %"$matchsucc_4459" + call void @_out_of_gas() + br label %"$have_gas_4500" + +"$have_gas_4500": ; preds = %"$out_of_gas_4499", %"$matchsucc_4459" + %"$consume_4501" = sub i64 %"$gasrem_4497", 1 + store i64 %"$consume_4501", i64* @_gasrem, align 8 + %b2 = alloca %TName_Bool*, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %b2, metadata !968, metadata !DIExpression()), !dbg !969 + %"$gasrem_4502" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4503" = icmp ugt i64 2, %"$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", 2 + store i64 %"$consume_4506", i64* @_gasrem, align 8 + %"$t2_4508" = load %TName_Option_String*, %TName_Option_String** %t2, align 8 + %"$t2_tag_4509" = getelementptr inbounds %TName_Option_String, %TName_Option_String* %"$t2_4508", i32 0, i32 0 + %"$t2_tag_4510" = load i8, i8* %"$t2_tag_4509", align 1 + switch i8 %"$t2_tag_4510", label %"$empty_default_4511" [ + i8 0, label %"$Some_4512" + i8 1, label %"$None_4535" + ], !dbg !970 + +"$Some_4512": ; preds = %"$have_gas_4505" + %"$t2_4513" = bitcast %TName_Option_String* %"$t2_4508" to %CName_Some_String* + %"$t2v_gep_4514" = getelementptr inbounds %CName_Some_String, %CName_Some_String* %"$t2_4513", i32 0, i32 1 + %"$t2v_load_4515" = load %String, %String* %"$t2v_gep_4514", align 8 + %t2v = alloca %String, align 8 + store %String %"$t2v_load_4515", %String* %t2v, align 8 + %"$_literal_cost_t2v_4516" = alloca %String, align 8 + %"$t2v_4517" = load %String, %String* %t2v, align 8 + store %String %"$t2v_4517", %String* %"$_literal_cost_t2v_4516", align 8 + %"$$_literal_cost_t2v_4516_4518" = bitcast %String* %"$_literal_cost_t2v_4516" to i8* + %"$_literal_cost_call_4519" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_52", i8* %"$$_literal_cost_t2v_4516_4518") + %"$_literal_cost_v2_4520" = alloca %String, align 8 + %"$v2_4521" = load %String, %String* %v2, align 8 + store %String %"$v2_4521", %String* %"$_literal_cost_v2_4520", align 8 + %"$$_literal_cost_v2_4520_4522" = bitcast %String* %"$_literal_cost_v2_4520" to i8* + %"$_literal_cost_call_4523" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_52", i8* %"$$_literal_cost_v2_4520_4522") + %"$gasmin_4524" = call i64 @llvm.umin.i64(i64 %"$_literal_cost_call_4519", i64 %"$_literal_cost_call_4523") + %"$gasrem_4525" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4526" = icmp ugt i64 %"$gasmin_4524", %"$gasrem_4525" + br i1 %"$gascmp_4526", label %"$out_of_gas_4527", label %"$have_gas_4528" + +"$out_of_gas_4527": ; preds = %"$Some_4512" + call void @_out_of_gas() + br label %"$have_gas_4528" + +"$have_gas_4528": ; preds = %"$out_of_gas_4527", %"$Some_4512" + %"$consume_4529" = sub i64 %"$gasrem_4525", %"$gasmin_4524" + store i64 %"$consume_4529", i64* @_gasrem, align 8 + %"$execptr_load_4530" = load i8*, i8** @_execptr, align 8 + %"$t2v_4531" = load %String, %String* %t2v, align 8 + %"$v2_4532" = load %String, %String* %v2, align 8 + %"$eq_call_4533" = call %TName_Bool* @_eq_String(i8* %"$execptr_load_4530", %String %"$t2v_4531", %String %"$v2_4532"), !dbg !971 + store %TName_Bool* %"$eq_call_4533", %TName_Bool** %b2, align 8, !dbg !971 + br label %"$matchsucc_4507" + +"$None_4535": ; preds = %"$have_gas_4505" + %"$t2_4536" = bitcast %TName_Option_String* %"$t2_4508" to %CName_None_String* %"$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" +"$out_of_gas_4539": ; preds = %"$None_4535" call void @_out_of_gas() br label %"$have_gas_4540" -"$have_gas_4540": ; preds = %"$out_of_gas_4539", %"$matchsucc_4499" +"$have_gas_4540": ; preds = %"$out_of_gas_4539", %"$None_4535" %"$consume_4541" = sub i64 %"$gasrem_4537", 1 store i64 %"$consume_4541", i64* @_gasrem, align 8 - %b4 = alloca %TName_Bool*, align 8 - %"$gasrem_4542" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4543" = icmp ugt i64 2, %"$gasrem_4542" - br i1 %"$gascmp_4543", label %"$out_of_gas_4544", label %"$have_gas_4545" - -"$out_of_gas_4544": ; preds = %"$have_gas_4540" - call void @_out_of_gas() - br label %"$have_gas_4545" - -"$have_gas_4545": ; preds = %"$out_of_gas_4544", %"$have_gas_4540" - %"$consume_4546" = sub i64 %"$gasrem_4542", 2 - store i64 %"$consume_4546", i64* @_gasrem, align 8 - %"$t4_4548" = load %TName_Option_String*, %TName_Option_String** %t4, align 8 - %"$t4_tag_4549" = getelementptr inbounds %TName_Option_String, %TName_Option_String* %"$t4_4548", i32 0, i32 0 - %"$t4_tag_4550" = load i8, i8* %"$t4_tag_4549", align 1 - switch i8 %"$t4_tag_4550", label %"$empty_default_4551" [ - i8 0, label %"$Some_4552" - i8 1, label %"$None_4575" - ], !dbg !475 - -"$Some_4552": ; preds = %"$have_gas_4545" - %"$t4_4553" = bitcast %TName_Option_String* %"$t4_4548" to %CName_Some_String* - %"$t4v_gep_4554" = getelementptr inbounds %CName_Some_String, %CName_Some_String* %"$t4_4553", i32 0, i32 1 - %"$t4v_load_4555" = load %String, %String* %"$t4v_gep_4554", align 8 - %t4v = alloca %String, align 8 - store %String %"$t4v_load_4555", %String* %t4v, align 8 - %"$_literal_cost_t4v_4556" = alloca %String, align 8 - %"$t4v_4557" = load %String, %String* %t4v, align 8 - store %String %"$t4v_4557", %String* %"$_literal_cost_t4v_4556", align 8 - %"$$_literal_cost_t4v_4556_4558" = bitcast %String* %"$_literal_cost_t4v_4556" to i8* - %"$_literal_cost_call_4559" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_52", i8* %"$$_literal_cost_t4v_4556_4558") - %"$_literal_cost_v4_4560" = alloca %String, align 8 - %"$v4_4561" = load %String, %String* %v4, align 8 - store %String %"$v4_4561", %String* %"$_literal_cost_v4_4560", align 8 - %"$$_literal_cost_v4_4560_4562" = bitcast %String* %"$_literal_cost_v4_4560" to i8* - %"$_literal_cost_call_4563" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_52", i8* %"$$_literal_cost_v4_4560_4562") - %"$gasmin_4564" = call i64 @llvm.umin.i64(i64 %"$_literal_cost_call_4559", i64 %"$_literal_cost_call_4563") - %"$gasrem_4565" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4566" = icmp ugt i64 %"$gasmin_4564", %"$gasrem_4565" - br i1 %"$gascmp_4566", label %"$out_of_gas_4567", label %"$have_gas_4568" - -"$out_of_gas_4567": ; preds = %"$Some_4552" - call void @_out_of_gas() - br label %"$have_gas_4568" - -"$have_gas_4568": ; preds = %"$out_of_gas_4567", %"$Some_4552" - %"$consume_4569" = sub i64 %"$gasrem_4565", %"$gasmin_4564" - store i64 %"$consume_4569", i64* @_gasrem, align 8 - %"$execptr_load_4570" = load i8*, i8** @_execptr, align 8 - %"$t4v_4571" = load %String, %String* %t4v, align 8 - %"$v4_4572" = load %String, %String* %v4, align 8 - %"$eq_call_4573" = call %TName_Bool* @_eq_String(i8* %"$execptr_load_4570", %String %"$t4v_4571", %String %"$v4_4572"), !dbg !476 - store %TName_Bool* %"$eq_call_4573", %TName_Bool** %b4, align 8, !dbg !476 - br label %"$matchsucc_4547" - -"$None_4575": ; preds = %"$have_gas_4545" - %"$t4_4576" = bitcast %TName_Option_String* %"$t4_4548" to %CName_None_String* - %"$gasrem_4577" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4578" = icmp ugt i64 1, %"$gasrem_4577" - br i1 %"$gascmp_4578", label %"$out_of_gas_4579", label %"$have_gas_4580" - -"$out_of_gas_4579": ; preds = %"$None_4575" - call void @_out_of_gas() - br label %"$have_gas_4580" - -"$have_gas_4580": ; preds = %"$out_of_gas_4579", %"$None_4575" - %"$consume_4581" = sub i64 %"$gasrem_4577", 1 - store i64 %"$consume_4581", i64* @_gasrem, align 8 - %"$adtval_4582_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_4582_salloc" = call i8* @_salloc(i8* %"$adtval_4582_load", i64 1) - %"$adtval_4582" = bitcast i8* %"$adtval_4582_salloc" to %CName_False* - %"$adtgep_4583" = getelementptr inbounds %CName_False, %CName_False* %"$adtval_4582", i32 0, i32 0 - store i8 1, i8* %"$adtgep_4583", align 1 - %"$adtptr_4584" = bitcast %CName_False* %"$adtval_4582" to %TName_Bool* - store %TName_Bool* %"$adtptr_4584", %TName_Bool** %b4, align 8, !dbg !479 - br label %"$matchsucc_4547" - -"$empty_default_4551": ; preds = %"$have_gas_4545" - br label %"$matchsucc_4547" - -"$matchsucc_4547": ; preds = %"$have_gas_4580", %"$have_gas_4568", %"$empty_default_4551" + %"$adtval_4542_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_4542_salloc" = call i8* @_salloc(i8* %"$adtval_4542_load", i64 1) + %"$adtval_4542" = bitcast i8* %"$adtval_4542_salloc" to %CName_False* + %"$adtgep_4543" = getelementptr inbounds %CName_False, %CName_False* %"$adtval_4542", i32 0, i32 0 + store i8 1, i8* %"$adtgep_4543", align 1 + %"$adtptr_4544" = bitcast %CName_False* %"$adtval_4542" to %TName_Bool* + store %TName_Bool* %"$adtptr_4544", %TName_Bool** %b2, align 8, !dbg !974 + br label %"$matchsucc_4507" + +"$empty_default_4511": ; preds = %"$have_gas_4505" + br label %"$matchsucc_4507" + +"$matchsucc_4507": ; preds = %"$have_gas_4540", %"$have_gas_4528", %"$empty_default_4511" + %"$gasrem_4545" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4546" = icmp ugt i64 1, %"$gasrem_4545" + br i1 %"$gascmp_4546", label %"$out_of_gas_4547", label %"$have_gas_4548" + +"$out_of_gas_4547": ; preds = %"$matchsucc_4507" + call void @_out_of_gas() + br label %"$have_gas_4548" + +"$have_gas_4548": ; preds = %"$out_of_gas_4547", %"$matchsucc_4507" + %"$consume_4549" = sub i64 %"$gasrem_4545", 1 + store i64 %"$consume_4549", i64* @_gasrem, align 8 + %b3 = alloca %TName_Bool*, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %b3, metadata !976, metadata !DIExpression()), !dbg !977 + %"$gasrem_4550" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4551" = icmp ugt i64 2, %"$gasrem_4550" + br i1 %"$gascmp_4551", label %"$out_of_gas_4552", label %"$have_gas_4553" + +"$out_of_gas_4552": ; preds = %"$have_gas_4548" + call void @_out_of_gas() + br label %"$have_gas_4553" + +"$have_gas_4553": ; preds = %"$out_of_gas_4552", %"$have_gas_4548" + %"$consume_4554" = sub i64 %"$gasrem_4550", 2 + store i64 %"$consume_4554", i64* @_gasrem, align 8 + %"$t3_4556" = load %TName_Option_String*, %TName_Option_String** %t3, align 8 + %"$t3_tag_4557" = getelementptr inbounds %TName_Option_String, %TName_Option_String* %"$t3_4556", i32 0, i32 0 + %"$t3_tag_4558" = load i8, i8* %"$t3_tag_4557", align 1 + switch i8 %"$t3_tag_4558", label %"$empty_default_4559" [ + i8 0, label %"$Some_4560" + i8 1, label %"$None_4583" + ], !dbg !978 + +"$Some_4560": ; preds = %"$have_gas_4553" + %"$t3_4561" = bitcast %TName_Option_String* %"$t3_4556" to %CName_Some_String* + %"$t3v_gep_4562" = getelementptr inbounds %CName_Some_String, %CName_Some_String* %"$t3_4561", i32 0, i32 1 + %"$t3v_load_4563" = load %String, %String* %"$t3v_gep_4562", align 8 + %t3v = alloca %String, align 8 + store %String %"$t3v_load_4563", %String* %t3v, align 8 + %"$_literal_cost_t3v_4564" = alloca %String, align 8 + %"$t3v_4565" = load %String, %String* %t3v, align 8 + store %String %"$t3v_4565", %String* %"$_literal_cost_t3v_4564", align 8 + %"$$_literal_cost_t3v_4564_4566" = bitcast %String* %"$_literal_cost_t3v_4564" to i8* + %"$_literal_cost_call_4567" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_52", i8* %"$$_literal_cost_t3v_4564_4566") + %"$_literal_cost_v3_4568" = alloca %String, align 8 + %"$v3_4569" = load %String, %String* %v3, align 8 + store %String %"$v3_4569", %String* %"$_literal_cost_v3_4568", align 8 + %"$$_literal_cost_v3_4568_4570" = bitcast %String* %"$_literal_cost_v3_4568" to i8* + %"$_literal_cost_call_4571" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_52", i8* %"$$_literal_cost_v3_4568_4570") + %"$gasmin_4572" = call i64 @llvm.umin.i64(i64 %"$_literal_cost_call_4567", i64 %"$_literal_cost_call_4571") + %"$gasrem_4573" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4574" = icmp ugt i64 %"$gasmin_4572", %"$gasrem_4573" + br i1 %"$gascmp_4574", label %"$out_of_gas_4575", label %"$have_gas_4576" + +"$out_of_gas_4575": ; preds = %"$Some_4560" + call void @_out_of_gas() + br label %"$have_gas_4576" + +"$have_gas_4576": ; preds = %"$out_of_gas_4575", %"$Some_4560" + %"$consume_4577" = sub i64 %"$gasrem_4573", %"$gasmin_4572" + store i64 %"$consume_4577", i64* @_gasrem, align 8 + %"$execptr_load_4578" = load i8*, i8** @_execptr, align 8 + %"$t3v_4579" = load %String, %String* %t3v, align 8 + %"$v3_4580" = load %String, %String* %v3, align 8 + %"$eq_call_4581" = call %TName_Bool* @_eq_String(i8* %"$execptr_load_4578", %String %"$t3v_4579", %String %"$v3_4580"), !dbg !979 + store %TName_Bool* %"$eq_call_4581", %TName_Bool** %b3, align 8, !dbg !979 + br label %"$matchsucc_4555" + +"$None_4583": ; preds = %"$have_gas_4553" + %"$t3_4584" = bitcast %TName_Option_String* %"$t3_4556" to %CName_None_String* %"$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 = %"$matchsucc_4547" +"$out_of_gas_4587": ; preds = %"$None_4583" call void @_out_of_gas() br label %"$have_gas_4588" -"$have_gas_4588": ; preds = %"$out_of_gas_4587", %"$matchsucc_4547" +"$have_gas_4588": ; preds = %"$out_of_gas_4587", %"$None_4583" %"$consume_4589" = sub i64 %"$gasrem_4585", 1 store i64 %"$consume_4589", i64* @_gasrem, align 8 + %"$adtval_4590_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_4590_salloc" = call i8* @_salloc(i8* %"$adtval_4590_load", i64 1) + %"$adtval_4590" = bitcast i8* %"$adtval_4590_salloc" to %CName_False* + %"$adtgep_4591" = getelementptr inbounds %CName_False, %CName_False* %"$adtval_4590", i32 0, i32 0 + store i8 1, i8* %"$adtgep_4591", align 1 + %"$adtptr_4592" = bitcast %CName_False* %"$adtval_4590" to %TName_Bool* + store %TName_Bool* %"$adtptr_4592", %TName_Bool** %b3, align 8, !dbg !982 + br label %"$matchsucc_4555" + +"$empty_default_4559": ; preds = %"$have_gas_4553" + br label %"$matchsucc_4555" + +"$matchsucc_4555": ; preds = %"$have_gas_4588", %"$have_gas_4576", %"$empty_default_4559" + %"$gasrem_4593" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4594" = icmp ugt i64 1, %"$gasrem_4593" + br i1 %"$gascmp_4594", label %"$out_of_gas_4595", label %"$have_gas_4596" + +"$out_of_gas_4595": ; preds = %"$matchsucc_4555" + call void @_out_of_gas() + br label %"$have_gas_4596" + +"$have_gas_4596": ; preds = %"$out_of_gas_4595", %"$matchsucc_4555" + %"$consume_4597" = sub i64 %"$gasrem_4593", 1 + store i64 %"$consume_4597", i64* @_gasrem, align 8 + %b4 = alloca %TName_Bool*, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %b4, metadata !984, metadata !DIExpression()), !dbg !985 + %"$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_4596" + call void @_out_of_gas() + br label %"$have_gas_4601" + +"$have_gas_4601": ; preds = %"$out_of_gas_4600", %"$have_gas_4596" + %"$consume_4602" = sub i64 %"$gasrem_4598", 2 + store i64 %"$consume_4602", i64* @_gasrem, align 8 + %"$t4_4604" = load %TName_Option_String*, %TName_Option_String** %t4, align 8 + %"$t4_tag_4605" = getelementptr inbounds %TName_Option_String, %TName_Option_String* %"$t4_4604", i32 0, i32 0 + %"$t4_tag_4606" = load i8, i8* %"$t4_tag_4605", align 1 + switch i8 %"$t4_tag_4606", label %"$empty_default_4607" [ + i8 0, label %"$Some_4608" + i8 1, label %"$None_4631" + ], !dbg !986 + +"$Some_4608": ; preds = %"$have_gas_4601" + %"$t4_4609" = bitcast %TName_Option_String* %"$t4_4604" to %CName_Some_String* + %"$t4v_gep_4610" = getelementptr inbounds %CName_Some_String, %CName_Some_String* %"$t4_4609", i32 0, i32 1 + %"$t4v_load_4611" = load %String, %String* %"$t4v_gep_4610", align 8 + %t4v = alloca %String, align 8 + store %String %"$t4v_load_4611", %String* %t4v, align 8 + %"$_literal_cost_t4v_4612" = alloca %String, align 8 + %"$t4v_4613" = load %String, %String* %t4v, align 8 + store %String %"$t4v_4613", %String* %"$_literal_cost_t4v_4612", align 8 + %"$$_literal_cost_t4v_4612_4614" = bitcast %String* %"$_literal_cost_t4v_4612" to i8* + %"$_literal_cost_call_4615" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_52", i8* %"$$_literal_cost_t4v_4612_4614") + %"$_literal_cost_v4_4616" = alloca %String, align 8 + %"$v4_4617" = load %String, %String* %v4, align 8 + store %String %"$v4_4617", %String* %"$_literal_cost_v4_4616", align 8 + %"$$_literal_cost_v4_4616_4618" = bitcast %String* %"$_literal_cost_v4_4616" to i8* + %"$_literal_cost_call_4619" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_52", i8* %"$$_literal_cost_v4_4616_4618") + %"$gasmin_4620" = call i64 @llvm.umin.i64(i64 %"$_literal_cost_call_4615", i64 %"$_literal_cost_call_4619") + %"$gasrem_4621" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4622" = icmp ugt i64 %"$gasmin_4620", %"$gasrem_4621" + br i1 %"$gascmp_4622", label %"$out_of_gas_4623", label %"$have_gas_4624" + +"$out_of_gas_4623": ; preds = %"$Some_4608" + call void @_out_of_gas() + br label %"$have_gas_4624" + +"$have_gas_4624": ; preds = %"$out_of_gas_4623", %"$Some_4608" + %"$consume_4625" = sub i64 %"$gasrem_4621", %"$gasmin_4620" + store i64 %"$consume_4625", i64* @_gasrem, align 8 + %"$execptr_load_4626" = load i8*, i8** @_execptr, align 8 + %"$t4v_4627" = load %String, %String* %t4v, align 8 + %"$v4_4628" = load %String, %String* %v4, align 8 + %"$eq_call_4629" = call %TName_Bool* @_eq_String(i8* %"$execptr_load_4626", %String %"$t4v_4627", %String %"$v4_4628"), !dbg !987 + store %TName_Bool* %"$eq_call_4629", %TName_Bool** %b4, align 8, !dbg !987 + br label %"$matchsucc_4603" + +"$None_4631": ; preds = %"$have_gas_4601" + %"$t4_4632" = bitcast %TName_Option_String* %"$t4_4604" to %CName_None_String* + %"$gasrem_4633" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4634" = icmp ugt i64 1, %"$gasrem_4633" + br i1 %"$gascmp_4634", label %"$out_of_gas_4635", label %"$have_gas_4636" + +"$out_of_gas_4635": ; preds = %"$None_4631" + call void @_out_of_gas() + br label %"$have_gas_4636" + +"$have_gas_4636": ; preds = %"$out_of_gas_4635", %"$None_4631" + %"$consume_4637" = sub i64 %"$gasrem_4633", 1 + store i64 %"$consume_4637", i64* @_gasrem, align 8 + %"$adtval_4638_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_4638_salloc" = call i8* @_salloc(i8* %"$adtval_4638_load", i64 1) + %"$adtval_4638" = bitcast i8* %"$adtval_4638_salloc" to %CName_False* + %"$adtgep_4639" = getelementptr inbounds %CName_False, %CName_False* %"$adtval_4638", i32 0, i32 0 + store i8 1, i8* %"$adtgep_4639", align 1 + %"$adtptr_4640" = bitcast %CName_False* %"$adtval_4638" to %TName_Bool* + store %TName_Bool* %"$adtptr_4640", %TName_Bool** %b4, align 8, !dbg !990 + br label %"$matchsucc_4603" + +"$empty_default_4607": ; preds = %"$have_gas_4601" + br label %"$matchsucc_4603" + +"$matchsucc_4603": ; preds = %"$have_gas_4636", %"$have_gas_4624", %"$empty_default_4607" + %"$gasrem_4641" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4642" = icmp ugt i64 1, %"$gasrem_4641" + br i1 %"$gascmp_4642", label %"$out_of_gas_4643", label %"$have_gas_4644" + +"$out_of_gas_4643": ; preds = %"$matchsucc_4603" + call void @_out_of_gas() + br label %"$have_gas_4644" + +"$have_gas_4644": ; preds = %"$out_of_gas_4643", %"$matchsucc_4603" + %"$consume_4645" = sub i64 %"$gasrem_4641", 1 + store i64 %"$consume_4645", i64* @_gasrem, align 8 %b = alloca %TName_Bool*, align 8 - %"$gasrem_4590" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4591" = icmp ugt i64 1, %"$gasrem_4590" - br i1 %"$gascmp_4591", label %"$out_of_gas_4592", label %"$have_gas_4593" + call void @llvm.dbg.declare(metadata %TName_Bool** %b, metadata !992, metadata !DIExpression()), !dbg !993 + %"$gasrem_4646" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4647" = icmp ugt i64 1, %"$gasrem_4646" + br i1 %"$gascmp_4647", label %"$out_of_gas_4648", label %"$have_gas_4649" -"$out_of_gas_4592": ; preds = %"$have_gas_4588" +"$out_of_gas_4648": ; preds = %"$have_gas_4644" call void @_out_of_gas() - br label %"$have_gas_4593" + br label %"$have_gas_4649" -"$have_gas_4593": ; preds = %"$out_of_gas_4592", %"$have_gas_4588" - %"$consume_4594" = sub i64 %"$gasrem_4590", 1 - store i64 %"$consume_4594", i64* @_gasrem, align 8 +"$have_gas_4649": ; preds = %"$out_of_gas_4648", %"$have_gas_4644" + %"$consume_4650" = sub i64 %"$gasrem_4646", 1 + store i64 %"$consume_4650", i64* @_gasrem, align 8 %a1 = alloca %TName_Bool*, align 8 - %"$gasrem_4595" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4596" = icmp ugt i64 1, %"$gasrem_4595" - br i1 %"$gascmp_4596", label %"$out_of_gas_4597", label %"$have_gas_4598" + call void @llvm.dbg.declare(metadata %TName_Bool** %a1, metadata !994, metadata !DIExpression()), !dbg !995 + %"$gasrem_4651" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4652" = icmp ugt i64 1, %"$gasrem_4651" + br i1 %"$gascmp_4652", label %"$out_of_gas_4653", label %"$have_gas_4654" -"$out_of_gas_4597": ; preds = %"$have_gas_4593" +"$out_of_gas_4653": ; preds = %"$have_gas_4649" call void @_out_of_gas() - br label %"$have_gas_4598" + br label %"$have_gas_4654" -"$have_gas_4598": ; preds = %"$out_of_gas_4597", %"$have_gas_4593" - %"$consume_4599" = sub i64 %"$gasrem_4595", 1 - store i64 %"$consume_4599", i64* @_gasrem, align 8 +"$have_gas_4654": ; preds = %"$out_of_gas_4653", %"$have_gas_4649" + %"$consume_4655" = sub i64 %"$gasrem_4651", 1 + store i64 %"$consume_4655", i64* @_gasrem, align 8 %"$BoolUtils.andb_19" = alloca { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, align 8 - %"$BoolUtils.andb_4600" = 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_4601" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_4600", 0 - %"$BoolUtils.andb_envptr_4602" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_4600", 1 - %"$b1_4603" = load %TName_Bool*, %TName_Bool** %b1, align 8 - %"$BoolUtils.andb_call_4604" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_4601"(i8* %"$BoolUtils.andb_envptr_4602", %TName_Bool* %"$b1_4603"), !dbg !481 - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_4604", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_19", align 8, !dbg !481 + %"$BoolUtils.andb_4656" = 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_4657" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_4656", 0 + %"$BoolUtils.andb_envptr_4658" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_4656", 1 + %"$b1_4659" = load %TName_Bool*, %TName_Bool** %b1, align 8 + %"$BoolUtils.andb_call_4660" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_4657"(i8* %"$BoolUtils.andb_envptr_4658", %TName_Bool* %"$b1_4659"), !dbg !996 + store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_4660", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_19", align 8, !dbg !996 %"$BoolUtils.andb_20" = alloca %TName_Bool*, align 8 - %"$$BoolUtils.andb_19_4605" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_19", align 8 - %"$$BoolUtils.andb_19_fptr_4606" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_19_4605", 0 - %"$$BoolUtils.andb_19_envptr_4607" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_19_4605", 1 - %"$b2_4608" = load %TName_Bool*, %TName_Bool** %b2, align 8 - %"$$BoolUtils.andb_19_call_4609" = call %TName_Bool* %"$$BoolUtils.andb_19_fptr_4606"(i8* %"$$BoolUtils.andb_19_envptr_4607", %TName_Bool* %"$b2_4608"), !dbg !481 - store %TName_Bool* %"$$BoolUtils.andb_19_call_4609", %TName_Bool** %"$BoolUtils.andb_20", align 8, !dbg !481 - %"$$BoolUtils.andb_20_4610" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_20", align 8 - store %TName_Bool* %"$$BoolUtils.andb_20_4610", %TName_Bool** %a1, align 8, !dbg !481 - %"$gasrem_4611" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4612" = icmp ugt i64 1, %"$gasrem_4611" - br i1 %"$gascmp_4612", label %"$out_of_gas_4613", label %"$have_gas_4614" - -"$out_of_gas_4613": ; preds = %"$have_gas_4598" - call void @_out_of_gas() - br label %"$have_gas_4614" - -"$have_gas_4614": ; preds = %"$out_of_gas_4613", %"$have_gas_4598" - %"$consume_4615" = sub i64 %"$gasrem_4611", 1 - store i64 %"$consume_4615", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$BoolUtils.andb_20", metadata !997, metadata !DIExpression()), !dbg !996 + %"$$BoolUtils.andb_19_4661" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_19", align 8 + %"$$BoolUtils.andb_19_fptr_4662" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_19_4661", 0 + %"$$BoolUtils.andb_19_envptr_4663" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_19_4661", 1 + %"$b2_4664" = load %TName_Bool*, %TName_Bool** %b2, align 8 + %"$$BoolUtils.andb_19_call_4665" = call %TName_Bool* %"$$BoolUtils.andb_19_fptr_4662"(i8* %"$$BoolUtils.andb_19_envptr_4663", %TName_Bool* %"$b2_4664"), !dbg !996 + store %TName_Bool* %"$$BoolUtils.andb_19_call_4665", %TName_Bool** %"$BoolUtils.andb_20", align 8, !dbg !996 + %"$$BoolUtils.andb_20_4666" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_20", align 8 + store %TName_Bool* %"$$BoolUtils.andb_20_4666", %TName_Bool** %a1, align 8, !dbg !996 + %"$gasrem_4667" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4668" = icmp ugt i64 1, %"$gasrem_4667" + br i1 %"$gascmp_4668", label %"$out_of_gas_4669", label %"$have_gas_4670" + +"$out_of_gas_4669": ; preds = %"$have_gas_4654" + call void @_out_of_gas() + br label %"$have_gas_4670" + +"$have_gas_4670": ; preds = %"$out_of_gas_4669", %"$have_gas_4654" + %"$consume_4671" = sub i64 %"$gasrem_4667", 1 + store i64 %"$consume_4671", i64* @_gasrem, align 8 %a2 = alloca %TName_Bool*, align 8 - %"$gasrem_4616" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4617" = icmp ugt i64 1, %"$gasrem_4616" - br i1 %"$gascmp_4617", label %"$out_of_gas_4618", label %"$have_gas_4619" + call void @llvm.dbg.declare(metadata %TName_Bool** %a2, metadata !998, metadata !DIExpression()), !dbg !999 + %"$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" -"$out_of_gas_4618": ; preds = %"$have_gas_4614" +"$out_of_gas_4674": ; preds = %"$have_gas_4670" call void @_out_of_gas() - br label %"$have_gas_4619" + br label %"$have_gas_4675" -"$have_gas_4619": ; preds = %"$out_of_gas_4618", %"$have_gas_4614" - %"$consume_4620" = sub i64 %"$gasrem_4616", 1 - store i64 %"$consume_4620", i64* @_gasrem, align 8 +"$have_gas_4675": ; preds = %"$out_of_gas_4674", %"$have_gas_4670" + %"$consume_4676" = sub i64 %"$gasrem_4672", 1 + store i64 %"$consume_4676", i64* @_gasrem, align 8 %"$BoolUtils.andb_21" = alloca { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, align 8 - %"$BoolUtils.andb_4621" = 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_4622" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_4621", 0 - %"$BoolUtils.andb_envptr_4623" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_4621", 1 - %"$b3_4624" = load %TName_Bool*, %TName_Bool** %b3, align 8 - %"$BoolUtils.andb_call_4625" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_4622"(i8* %"$BoolUtils.andb_envptr_4623", %TName_Bool* %"$b3_4624"), !dbg !482 - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_4625", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_21", align 8, !dbg !482 + %"$BoolUtils.andb_4677" = 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_4678" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_4677", 0 + %"$BoolUtils.andb_envptr_4679" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_4677", 1 + %"$b3_4680" = load %TName_Bool*, %TName_Bool** %b3, align 8 + %"$BoolUtils.andb_call_4681" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_4678"(i8* %"$BoolUtils.andb_envptr_4679", %TName_Bool* %"$b3_4680"), !dbg !1000 + store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_4681", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_21", align 8, !dbg !1000 %"$BoolUtils.andb_22" = alloca %TName_Bool*, align 8 - %"$$BoolUtils.andb_21_4626" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_21", align 8 - %"$$BoolUtils.andb_21_fptr_4627" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_21_4626", 0 - %"$$BoolUtils.andb_21_envptr_4628" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_21_4626", 1 - %"$b4_4629" = load %TName_Bool*, %TName_Bool** %b4, align 8 - %"$$BoolUtils.andb_21_call_4630" = call %TName_Bool* %"$$BoolUtils.andb_21_fptr_4627"(i8* %"$$BoolUtils.andb_21_envptr_4628", %TName_Bool* %"$b4_4629"), !dbg !482 - store %TName_Bool* %"$$BoolUtils.andb_21_call_4630", %TName_Bool** %"$BoolUtils.andb_22", align 8, !dbg !482 - %"$$BoolUtils.andb_22_4631" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_22", align 8 - store %TName_Bool* %"$$BoolUtils.andb_22_4631", %TName_Bool** %a2, align 8, !dbg !482 - %"$gasrem_4632" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4633" = icmp ugt i64 1, %"$gasrem_4632" - br i1 %"$gascmp_4633", label %"$out_of_gas_4634", label %"$have_gas_4635" - -"$out_of_gas_4634": ; preds = %"$have_gas_4619" - call void @_out_of_gas() - br label %"$have_gas_4635" - -"$have_gas_4635": ; preds = %"$out_of_gas_4634", %"$have_gas_4619" - %"$consume_4636" = sub i64 %"$gasrem_4632", 1 - store i64 %"$consume_4636", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$BoolUtils.andb_22", metadata !1001, metadata !DIExpression()), !dbg !1000 + %"$$BoolUtils.andb_21_4682" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_21", align 8 + %"$$BoolUtils.andb_21_fptr_4683" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_21_4682", 0 + %"$$BoolUtils.andb_21_envptr_4684" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_21_4682", 1 + %"$b4_4685" = load %TName_Bool*, %TName_Bool** %b4, align 8 + %"$$BoolUtils.andb_21_call_4686" = call %TName_Bool* %"$$BoolUtils.andb_21_fptr_4683"(i8* %"$$BoolUtils.andb_21_envptr_4684", %TName_Bool* %"$b4_4685"), !dbg !1000 + store %TName_Bool* %"$$BoolUtils.andb_21_call_4686", %TName_Bool** %"$BoolUtils.andb_22", align 8, !dbg !1000 + %"$$BoolUtils.andb_22_4687" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_22", align 8 + store %TName_Bool* %"$$BoolUtils.andb_22_4687", %TName_Bool** %a2, align 8, !dbg !1000 + %"$gasrem_4688" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4689" = icmp ugt i64 1, %"$gasrem_4688" + br i1 %"$gascmp_4689", label %"$out_of_gas_4690", label %"$have_gas_4691" + +"$out_of_gas_4690": ; preds = %"$have_gas_4675" + call void @_out_of_gas() + br label %"$have_gas_4691" + +"$have_gas_4691": ; preds = %"$out_of_gas_4690", %"$have_gas_4675" + %"$consume_4692" = sub i64 %"$gasrem_4688", 1 + store i64 %"$consume_4692", i64* @_gasrem, align 8 %"$BoolUtils.andb_23" = alloca { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, align 8 - %"$BoolUtils.andb_4637" = 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_4638" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_4637", 0 - %"$BoolUtils.andb_envptr_4639" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_4637", 1 - %"$a1_4640" = load %TName_Bool*, %TName_Bool** %a1, align 8 - %"$BoolUtils.andb_call_4641" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_4638"(i8* %"$BoolUtils.andb_envptr_4639", %TName_Bool* %"$a1_4640"), !dbg !483 - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_4641", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_23", align 8, !dbg !483 + %"$BoolUtils.andb_4693" = 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_4694" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_4693", 0 + %"$BoolUtils.andb_envptr_4695" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_4693", 1 + %"$a1_4696" = load %TName_Bool*, %TName_Bool** %a1, align 8 + %"$BoolUtils.andb_call_4697" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_4694"(i8* %"$BoolUtils.andb_envptr_4695", %TName_Bool* %"$a1_4696"), !dbg !1002 + store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_4697", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_23", align 8, !dbg !1002 %"$BoolUtils.andb_24" = alloca %TName_Bool*, align 8 - %"$$BoolUtils.andb_23_4642" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_23", align 8 - %"$$BoolUtils.andb_23_fptr_4643" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_23_4642", 0 - %"$$BoolUtils.andb_23_envptr_4644" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_23_4642", 1 - %"$a2_4645" = load %TName_Bool*, %TName_Bool** %a2, align 8 - %"$$BoolUtils.andb_23_call_4646" = call %TName_Bool* %"$$BoolUtils.andb_23_fptr_4643"(i8* %"$$BoolUtils.andb_23_envptr_4644", %TName_Bool* %"$a2_4645"), !dbg !483 - store %TName_Bool* %"$$BoolUtils.andb_23_call_4646", %TName_Bool** %"$BoolUtils.andb_24", align 8, !dbg !483 - %"$$BoolUtils.andb_24_4647" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_24", align 8 - store %TName_Bool* %"$$BoolUtils.andb_24_4647", %TName_Bool** %b, align 8, !dbg !483 - %"$gasrem_4648" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4649" = icmp ugt i64 2, %"$gasrem_4648" - br i1 %"$gascmp_4649", label %"$out_of_gas_4650", label %"$have_gas_4651" - -"$out_of_gas_4650": ; preds = %"$have_gas_4635" - call void @_out_of_gas() - br label %"$have_gas_4651" - -"$have_gas_4651": ; preds = %"$out_of_gas_4650", %"$have_gas_4635" - %"$consume_4652" = sub i64 %"$gasrem_4648", 2 - store i64 %"$consume_4652", i64* @_gasrem, align 8 - %"$b_4654" = load %TName_Bool*, %TName_Bool** %b, align 8 - %"$b_tag_4655" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$b_4654", i32 0, i32 0 - %"$b_tag_4656" = load i8, i8* %"$b_tag_4655", align 1 - switch i8 %"$b_tag_4656", label %"$empty_default_4657" [ - i8 0, label %"$True_4658" - i8 1, label %"$False_4660" - ], !dbg !484 - -"$True_4658": ; preds = %"$have_gas_4651" - %"$b_4659" = bitcast %TName_Bool* %"$b_4654" to %CName_True* - br label %"$matchsucc_4653" - -"$False_4660": ; preds = %"$have_gas_4651" - %"$b_4661" = bitcast %TName_Bool* %"$b_4654" to %CName_False* - %"$gasrem_4662" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4663" = icmp ugt i64 1, %"$gasrem_4662" - br i1 %"$gascmp_4663", label %"$out_of_gas_4664", label %"$have_gas_4665" - -"$out_of_gas_4664": ; preds = %"$False_4660" - call void @_out_of_gas() - br label %"$have_gas_4665" - -"$have_gas_4665": ; preds = %"$out_of_gas_4664", %"$False_4660" - %"$consume_4666" = sub i64 %"$gasrem_4662", 1 - store i64 %"$consume_4666", i64* @_gasrem, align 8 - %"$fail__origin_4667" = alloca [20 x i8], align 1 - store [20 x i8] %_origin, [20 x i8]* %"$fail__origin_4667", align 1 - %"$fail__sender_4668" = alloca [20 x i8], align 1 - store [20 x i8] %_sender, [20 x i8]* %"$fail__sender_4668", align 1 - %"$tname_4669" = load %String, %String* %tname, align 8 - call void @"$fail_252"(%Uint128 %_amount, [20 x i8]* %"$fail__origin_4667", [20 x i8]* %"$fail__sender_4668", %String %"$tname_4669"), !dbg !485 - br label %"$matchsucc_4653" - -"$empty_default_4657": ; preds = %"$have_gas_4651" - br label %"$matchsucc_4653" - -"$matchsucc_4653": ; preds = %"$have_gas_4665", %"$True_4658", %"$empty_default_4657" - %"$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 = %"$matchsucc_4653" - call void @_out_of_gas() - br label %"$have_gas_4673" - -"$have_gas_4673": ; preds = %"$out_of_gas_4672", %"$matchsucc_4653" - %"$consume_4674" = sub i64 %"$gasrem_4670", 1 - store i64 %"$consume_4674", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$BoolUtils.andb_24", metadata !1003, metadata !DIExpression()), !dbg !1002 + %"$$BoolUtils.andb_23_4698" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_23", align 8 + %"$$BoolUtils.andb_23_fptr_4699" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_23_4698", 0 + %"$$BoolUtils.andb_23_envptr_4700" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_23_4698", 1 + %"$a2_4701" = load %TName_Bool*, %TName_Bool** %a2, align 8 + %"$$BoolUtils.andb_23_call_4702" = call %TName_Bool* %"$$BoolUtils.andb_23_fptr_4699"(i8* %"$$BoolUtils.andb_23_envptr_4700", %TName_Bool* %"$a2_4701"), !dbg !1002 + store %TName_Bool* %"$$BoolUtils.andb_23_call_4702", %TName_Bool** %"$BoolUtils.andb_24", align 8, !dbg !1002 + %"$$BoolUtils.andb_24_4703" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_24", align 8 + store %TName_Bool* %"$$BoolUtils.andb_24_4703", %TName_Bool** %b, align 8, !dbg !1002 + %"$gasrem_4704" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4705" = icmp ugt i64 2, %"$gasrem_4704" + br i1 %"$gascmp_4705", label %"$out_of_gas_4706", label %"$have_gas_4707" + +"$out_of_gas_4706": ; preds = %"$have_gas_4691" + call void @_out_of_gas() + br label %"$have_gas_4707" + +"$have_gas_4707": ; preds = %"$out_of_gas_4706", %"$have_gas_4691" + %"$consume_4708" = sub i64 %"$gasrem_4704", 2 + store i64 %"$consume_4708", i64* @_gasrem, align 8 + %"$b_4710" = load %TName_Bool*, %TName_Bool** %b, align 8 + %"$b_tag_4711" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$b_4710", i32 0, i32 0 + %"$b_tag_4712" = load i8, i8* %"$b_tag_4711", align 1 + switch i8 %"$b_tag_4712", label %"$empty_default_4713" [ + i8 0, label %"$True_4714" + i8 1, label %"$False_4716" + ], !dbg !1004 + +"$True_4714": ; preds = %"$have_gas_4707" + %"$b_4715" = bitcast %TName_Bool* %"$b_4710" to %CName_True* + br label %"$matchsucc_4709" + +"$False_4716": ; preds = %"$have_gas_4707" + %"$b_4717" = bitcast %TName_Bool* %"$b_4710" to %CName_False* + %"$gasrem_4718" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4719" = icmp ugt i64 1, %"$gasrem_4718" + br i1 %"$gascmp_4719", label %"$out_of_gas_4720", label %"$have_gas_4721" + +"$out_of_gas_4720": ; preds = %"$False_4716" + call void @_out_of_gas() + br label %"$have_gas_4721" + +"$have_gas_4721": ; preds = %"$out_of_gas_4720", %"$False_4716" + %"$consume_4722" = sub i64 %"$gasrem_4718", 1 + store i64 %"$consume_4722", i64* @_gasrem, align 8 + %"$fail__origin_4723" = alloca [20 x i8], align 1 + store [20 x i8] %_origin, [20 x i8]* %"$fail__origin_4723", align 1 + %"$fail__sender_4724" = alloca [20 x i8], align 1 + store [20 x i8] %_sender, [20 x i8]* %"$fail__sender_4724", align 1 + %"$tname_4725" = load %String, %String* %tname, align 8 + call void @"$fail_254"(%Uint128 %_amount, [20 x i8]* %"$fail__origin_4723", [20 x i8]* %"$fail__sender_4724", %String %"$tname_4725"), !dbg !1005 + br label %"$matchsucc_4709" + +"$empty_default_4713": ; preds = %"$have_gas_4707" + br label %"$matchsucc_4709" + +"$matchsucc_4709": ; preds = %"$have_gas_4721", %"$True_4714", %"$empty_default_4713" + %"$gasrem_4726" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4727" = icmp ugt i64 1, %"$gasrem_4726" + br i1 %"$gascmp_4727", label %"$out_of_gas_4728", label %"$have_gas_4729" + +"$out_of_gas_4728": ; preds = %"$matchsucc_4709" + call void @_out_of_gas() + br label %"$have_gas_4729" + +"$have_gas_4729": ; preds = %"$out_of_gas_4728", %"$matchsucc_4709" + %"$consume_4730" = sub i64 %"$gasrem_4726", 1 + store i64 %"$consume_4730", i64* @_gasrem, align 8 %m1 = alloca %Map_String_String*, 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" + call void @llvm.dbg.declare(metadata %Map_String_String** %m1, metadata !1008, metadata !DIExpression()), !dbg !1009 + %"$gasrem_4731" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4732" = icmp ugt i64 1, %"$gasrem_4731" + br i1 %"$gascmp_4732", label %"$out_of_gas_4733", label %"$have_gas_4734" -"$out_of_gas_4677": ; preds = %"$have_gas_4673" +"$out_of_gas_4733": ; preds = %"$have_gas_4729" call void @_out_of_gas() - br label %"$have_gas_4678" + br label %"$have_gas_4734" -"$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 +"$have_gas_4734": ; preds = %"$out_of_gas_4733", %"$have_gas_4729" + %"$consume_4735" = sub i64 %"$gasrem_4731", 1 + store i64 %"$consume_4735", i64* @_gasrem, align 8 %k = alloca %String, align 8 - %"$gasrem_4680" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4681" = icmp ugt i64 1, %"$gasrem_4680" - br i1 %"$gascmp_4681", label %"$out_of_gas_4682", label %"$have_gas_4683" + call void @llvm.dbg.declare(metadata %String* %k, metadata !1010, metadata !DIExpression()), !dbg !1011 + %"$gasrem_4736" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4737" = icmp ugt i64 1, %"$gasrem_4736" + br i1 %"$gascmp_4737", label %"$out_of_gas_4738", label %"$have_gas_4739" -"$out_of_gas_4682": ; preds = %"$have_gas_4678" +"$out_of_gas_4738": ; preds = %"$have_gas_4734" call void @_out_of_gas() - br label %"$have_gas_4683" + br label %"$have_gas_4739" -"$have_gas_4683": ; preds = %"$out_of_gas_4682", %"$have_gas_4678" - %"$consume_4684" = sub i64 %"$gasrem_4680", 1 - store i64 %"$consume_4684", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([0 x i8], [0 x i8]* @"$stringlit_4685", i32 0, i32 0), i32 0 }, %String* %k, align 8, !dbg !488 - %"$gasrem_4686" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4687" = icmp ugt i64 1, %"$gasrem_4686" - br i1 %"$gascmp_4687", label %"$out_of_gas_4688", label %"$have_gas_4689" +"$have_gas_4739": ; preds = %"$out_of_gas_4738", %"$have_gas_4734" + %"$consume_4740" = sub i64 %"$gasrem_4736", 1 + store i64 %"$consume_4740", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([0 x i8], [0 x i8]* @"$stringlit_4741", i32 0, i32 0), i32 0 }, %String* %k, align 8, !dbg !1012 + %"$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_4688": ; preds = %"$have_gas_4683" +"$out_of_gas_4744": ; preds = %"$have_gas_4739" call void @_out_of_gas() - br label %"$have_gas_4689" + br label %"$have_gas_4745" -"$have_gas_4689": ; preds = %"$out_of_gas_4688", %"$have_gas_4683" - %"$consume_4690" = sub i64 %"$gasrem_4686", 1 - store i64 %"$consume_4690", i64* @_gasrem, align 8 +"$have_gas_4745": ; preds = %"$out_of_gas_4744", %"$have_gas_4739" + %"$consume_4746" = sub i64 %"$gasrem_4742", 1 + store i64 %"$consume_4746", i64* @_gasrem, align 8 %v = alloca %String, align 8 - %"$gasrem_4691" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4692" = icmp ugt i64 1, %"$gasrem_4691" - br i1 %"$gascmp_4692", label %"$out_of_gas_4693", label %"$have_gas_4694" + call void @llvm.dbg.declare(metadata %String* %v, metadata !1013, metadata !DIExpression()), !dbg !1014 + %"$gasrem_4747" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4748" = icmp ugt i64 1, %"$gasrem_4747" + br i1 %"$gascmp_4748", label %"$out_of_gas_4749", label %"$have_gas_4750" -"$out_of_gas_4693": ; preds = %"$have_gas_4689" +"$out_of_gas_4749": ; preds = %"$have_gas_4745" call void @_out_of_gas() - br label %"$have_gas_4694" + br label %"$have_gas_4750" -"$have_gas_4694": ; preds = %"$out_of_gas_4693", %"$have_gas_4689" - %"$consume_4695" = sub i64 %"$gasrem_4691", 1 - store i64 %"$consume_4695", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_4696", i32 0, i32 0), i32 3 }, %String* %v, align 8, !dbg !489 - %"$gasrem_4697" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4698" = icmp ugt i64 1, %"$gasrem_4697" - br i1 %"$gascmp_4698", label %"$out_of_gas_4699", label %"$have_gas_4700" +"$have_gas_4750": ; preds = %"$out_of_gas_4749", %"$have_gas_4745" + %"$consume_4751" = sub i64 %"$gasrem_4747", 1 + store i64 %"$consume_4751", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_4752", i32 0, i32 0), i32 3 }, %String* %v, align 8, !dbg !1015 + %"$gasrem_4753" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4754" = icmp ugt i64 1, %"$gasrem_4753" + br i1 %"$gascmp_4754", label %"$out_of_gas_4755", label %"$have_gas_4756" -"$out_of_gas_4699": ; preds = %"$have_gas_4694" +"$out_of_gas_4755": ; preds = %"$have_gas_4750" call void @_out_of_gas() - br label %"$have_gas_4700" + br label %"$have_gas_4756" -"$have_gas_4700": ; preds = %"$out_of_gas_4699", %"$have_gas_4694" - %"$consume_4701" = sub i64 %"$gasrem_4697", 1 - store i64 %"$consume_4701", i64* @_gasrem, align 8 +"$have_gas_4756": ; preds = %"$out_of_gas_4755", %"$have_gas_4750" + %"$consume_4757" = sub i64 %"$gasrem_4753", 1 + store i64 %"$consume_4757", i64* @_gasrem, align 8 %e = alloca %Map_String_String*, align 8 - %"$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_4700" - call void @_out_of_gas() - br label %"$have_gas_4705" - -"$have_gas_4705": ; preds = %"$out_of_gas_4704", %"$have_gas_4700" - %"$consume_4706" = sub i64 %"$gasrem_4702", 1 - store i64 %"$consume_4706", i64* @_gasrem, align 8 - %"$execptr_load_4707" = load i8*, i8** @_execptr, align 8 - %"$_new_empty_map_call_4708" = call i8* @_new_empty_map(i8* %"$execptr_load_4707") - %"$_new_empty_map_4709" = bitcast i8* %"$_new_empty_map_call_4708" to %Map_String_String* - store %Map_String_String* %"$_new_empty_map_4709", %Map_String_String** %e, align 8, !dbg !490 - %"$e_4710" = load %Map_String_String*, %Map_String_String** %e, align 8 - %"$$e_4710_4711" = bitcast %Map_String_String* %"$e_4710" to i8* - %"$_lengthof_call_4712" = call i64 @_lengthof(%_TyDescrTy_Typ* @"$TyDescr_Map_77", i8* %"$$e_4710_4711") - %"$gasadd_4713" = add i64 1, %"$_lengthof_call_4712" - %"$gasrem_4714" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4715" = icmp ugt i64 %"$gasadd_4713", %"$gasrem_4714" - br i1 %"$gascmp_4715", label %"$out_of_gas_4716", label %"$have_gas_4717" - -"$out_of_gas_4716": ; preds = %"$have_gas_4705" - call void @_out_of_gas() - br label %"$have_gas_4717" - -"$have_gas_4717": ; preds = %"$out_of_gas_4716", %"$have_gas_4705" - %"$consume_4718" = sub i64 %"$gasrem_4714", %"$gasadd_4713" - store i64 %"$consume_4718", i64* @_gasrem, align 8 - %"$execptr_load_4719" = load i8*, i8** @_execptr, align 8 - %"$e_4720" = load %Map_String_String*, %Map_String_String** %e, align 8 - %"$$e_4720_4721" = bitcast %Map_String_String* %"$e_4720" to i8* - %"$put_k_4722" = alloca %String, align 8 - %"$k_4723" = load %String, %String* %k, align 8 - store %String %"$k_4723", %String* %"$put_k_4722", align 8 - %"$$put_k_4722_4724" = bitcast %String* %"$put_k_4722" to i8* - %"$put_v_4725" = alloca %String, align 8 - %"$v_4726" = load %String, %String* %v, align 8 - store %String %"$v_4726", %String* %"$put_v_4725", align 8 - %"$$put_v_4725_4727" = bitcast %String* %"$put_v_4725" to i8* - %"$put_call_4728" = call i8* @_put(i8* %"$execptr_load_4719", %_TyDescrTy_Typ* @"$TyDescr_Map_77", i8* %"$$e_4720_4721", i8* %"$$put_k_4722_4724", i8* %"$$put_v_4725_4727"), !dbg !491 - %"$put_4729" = bitcast i8* %"$put_call_4728" to %Map_String_String* - store %Map_String_String* %"$put_4729", %Map_String_String** %m1, align 8, !dbg !491 - %"$m1_4730" = load %Map_String_String*, %Map_String_String** %m1, align 8 - %"$$m1_4730_4731" = bitcast %Map_String_String* %"$m1_4730" to i8* - %"$_literal_cost_call_4732" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Map_77", i8* %"$$m1_4730_4731") - %"$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_4717" - call void @_out_of_gas() - br label %"$have_gas_4736" - -"$have_gas_4736": ; preds = %"$out_of_gas_4735", %"$have_gas_4717" - %"$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 - %"$m1_4740" = load %Map_String_String*, %Map_String_String** %m1, align 8 - %"$update_value_4741" = bitcast %Map_String_String* %"$m1_4740" to i8* - call void @_update_field(i8* %"$execptr_load_4738", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m1_4739", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_77", i32 0, i8* null, i8* %"$update_value_4741"), !dbg !492 + call void @llvm.dbg.declare(metadata %Map_String_String** %e, metadata !1016, metadata !DIExpression()), !dbg !1017 + %"$gasrem_4758" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4759" = icmp ugt i64 1, %"$gasrem_4758" + br i1 %"$gascmp_4759", label %"$out_of_gas_4760", label %"$have_gas_4761" + +"$out_of_gas_4760": ; preds = %"$have_gas_4756" + call void @_out_of_gas() + br label %"$have_gas_4761" + +"$have_gas_4761": ; preds = %"$out_of_gas_4760", %"$have_gas_4756" + %"$consume_4762" = sub i64 %"$gasrem_4758", 1 + store i64 %"$consume_4762", i64* @_gasrem, align 8 + %"$execptr_load_4763" = load i8*, i8** @_execptr, align 8 + %"$_new_empty_map_call_4764" = call i8* @_new_empty_map(i8* %"$execptr_load_4763") + %"$_new_empty_map_4765" = bitcast i8* %"$_new_empty_map_call_4764" to %Map_String_String* + store %Map_String_String* %"$_new_empty_map_4765", %Map_String_String** %e, align 8, !dbg !1018 + %"$e_4766" = load %Map_String_String*, %Map_String_String** %e, align 8 + %"$$e_4766_4767" = bitcast %Map_String_String* %"$e_4766" to i8* + %"$_lengthof_call_4768" = call i64 @_lengthof(%_TyDescrTy_Typ* @"$TyDescr_Map_77", i8* %"$$e_4766_4767") + %"$gasadd_4769" = add i64 1, %"$_lengthof_call_4768" + %"$gasrem_4770" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4771" = icmp ugt i64 %"$gasadd_4769", %"$gasrem_4770" + br i1 %"$gascmp_4771", label %"$out_of_gas_4772", label %"$have_gas_4773" + +"$out_of_gas_4772": ; preds = %"$have_gas_4761" + call void @_out_of_gas() + br label %"$have_gas_4773" + +"$have_gas_4773": ; preds = %"$out_of_gas_4772", %"$have_gas_4761" + %"$consume_4774" = sub i64 %"$gasrem_4770", %"$gasadd_4769" + store i64 %"$consume_4774", i64* @_gasrem, align 8 + %"$execptr_load_4775" = load i8*, i8** @_execptr, align 8 + %"$e_4776" = load %Map_String_String*, %Map_String_String** %e, align 8 + %"$$e_4776_4777" = bitcast %Map_String_String* %"$e_4776" to i8* + %"$put_k_4778" = alloca %String, align 8 + %"$k_4779" = load %String, %String* %k, align 8 + store %String %"$k_4779", %String* %"$put_k_4778", align 8 + %"$$put_k_4778_4780" = bitcast %String* %"$put_k_4778" to i8* + %"$put_v_4781" = alloca %String, align 8 + %"$v_4782" = load %String, %String* %v, align 8 + store %String %"$v_4782", %String* %"$put_v_4781", align 8 + %"$$put_v_4781_4783" = bitcast %String* %"$put_v_4781" to i8* + %"$put_call_4784" = call i8* @_put(i8* %"$execptr_load_4775", %_TyDescrTy_Typ* @"$TyDescr_Map_77", i8* %"$$e_4776_4777", i8* %"$$put_k_4778_4780", i8* %"$$put_v_4781_4783"), !dbg !1019 + %"$put_4785" = bitcast i8* %"$put_call_4784" to %Map_String_String* + store %Map_String_String* %"$put_4785", %Map_String_String** %m1, align 8, !dbg !1019 + %"$m1_4786" = load %Map_String_String*, %Map_String_String** %m1, align 8 + %"$$m1_4786_4787" = bitcast %Map_String_String* %"$m1_4786" to i8* + %"$_literal_cost_call_4788" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Map_77", i8* %"$$m1_4786_4787") + %"$gasrem_4789" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4790" = icmp ugt i64 %"$_literal_cost_call_4788", %"$gasrem_4789" + br i1 %"$gascmp_4790", label %"$out_of_gas_4791", label %"$have_gas_4792" + +"$out_of_gas_4791": ; preds = %"$have_gas_4773" + call void @_out_of_gas() + br label %"$have_gas_4792" + +"$have_gas_4792": ; preds = %"$out_of_gas_4791", %"$have_gas_4773" + %"$consume_4793" = sub i64 %"$gasrem_4789", %"$_literal_cost_call_4788" + store i64 %"$consume_4793", i64* @_gasrem, align 8 + %"$execptr_load_4794" = load i8*, i8** @_execptr, align 8 + %"$m1_4796" = load %Map_String_String*, %Map_String_String** %m1, align 8 + %"$update_value_4797" = bitcast %Map_String_String* %"$m1_4796" to i8* + call void @_update_field(i8* %"$execptr_load_4794", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m1_4795", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_77", i32 0, i8* null, i8* %"$update_value_4797"), !dbg !1020 ret void } -define void @t16(i8* %0) !dbg !493 { +define void @t16(i8* %0) !dbg !1021 { entry: - %"$_amount_4743" = getelementptr i8, i8* %0, i32 0 - %"$_amount_4744" = bitcast i8* %"$_amount_4743" to %Uint128* - %_amount = load %Uint128, %Uint128* %"$_amount_4744", align 8 - %"$_origin_4745" = getelementptr i8, i8* %0, i32 16 - %"$_origin_4746" = bitcast i8* %"$_origin_4745" to [20 x i8]* - %"$_sender_4747" = getelementptr i8, i8* %0, i32 36 - %"$_sender_4748" = bitcast i8* %"$_sender_4747" to [20 x i8]* - call void @"$t16_4171"(%Uint128 %_amount, [20 x i8]* %"$_origin_4746", [20 x i8]* %"$_sender_4748"), !dbg !494 + %"$_amount_4802" = getelementptr i8, i8* %0, i32 0 + %"$_amount_4803" = bitcast i8* %"$_amount_4802" to %Uint128* + %_amount = load %Uint128, %Uint128* %"$_amount_4803", align 8 + %"$_origin_4804" = getelementptr i8, i8* %0, i32 16 + %"$_origin_4805" = bitcast i8* %"$_origin_4804" to [20 x i8]* + %"$_sender_4806" = getelementptr i8, i8* %0, i32 36 + %"$_sender_4807" = bitcast i8* %"$_sender_4806" to [20 x i8]* + call void @"$t16_4227"(%Uint128 %_amount, [20 x i8]* %"$_origin_4805", [20 x i8]* %"$_sender_4807"), !dbg !1022 ret void } -define internal void @"$t17_4749"(%Uint128 %_amount, [20 x i8]* %"$_origin_4750", [20 x i8]* %"$_sender_4751") !dbg !495 { +define internal void @"$t17_4808"(%Uint128 %_amount, [20 x i8]* %"$_origin_4809", [20 x i8]* %"$_sender_4810") !dbg !1023 { entry: - %_origin = load [20 x i8], [20 x i8]* %"$_origin_4750", align 1 - %_sender = load [20 x i8], [20 x i8]* %"$_sender_4751", align 1 - %"$gasrem_4752" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4753" = icmp ugt i64 1, %"$gasrem_4752" - br i1 %"$gascmp_4753", label %"$out_of_gas_4754", label %"$have_gas_4755" - -"$out_of_gas_4754": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_4755" - -"$have_gas_4755": ; preds = %"$out_of_gas_4754", %entry - %"$consume_4756" = sub i64 %"$gasrem_4752", 1 - store i64 %"$consume_4756", i64* @_gasrem, align 8 + %"$_sender_4884" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_sender_4810", [20 x i8]** %"$_sender_4884", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_sender_4884", metadata !1024, metadata !DIExpression()), !dbg !1025 + %"$_origin_4883" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_origin_4809", [20 x i8]** %"$_origin_4883", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_origin_4883", metadata !1026, metadata !DIExpression()), !dbg !1025 + %"$_amount_4882" = alloca %Uint128, align 8 + store %Uint128 %_amount, %Uint128* %"$_amount_4882", align 8 + call void @llvm.dbg.declare(metadata %Uint128* %"$_amount_4882", metadata !1027, metadata !DIExpression()), !dbg !1025 + %_origin = load [20 x i8], [20 x i8]* %"$_origin_4809", align 1 + %_sender = load [20 x i8], [20 x i8]* %"$_sender_4810", align 1 + %"$gasrem_4811" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4812" = icmp ugt i64 1, %"$gasrem_4811" + br i1 %"$gascmp_4812", label %"$out_of_gas_4813", label %"$have_gas_4814" + +"$out_of_gas_4813": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_4814" + +"$have_gas_4814": ; preds = %"$out_of_gas_4813", %entry + %"$consume_4815" = sub i64 %"$gasrem_4811", 1 + store i64 %"$consume_4815", i64* @_gasrem, align 8 %tname = alloca %String, align 8 - %"$gasrem_4757" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4758" = icmp ugt i64 1, %"$gasrem_4757" - br i1 %"$gascmp_4758", label %"$out_of_gas_4759", label %"$have_gas_4760" + call void @llvm.dbg.declare(metadata %String* %tname, metadata !1028, metadata !DIExpression()), !dbg !1029 + %"$gasrem_4816" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4817" = icmp ugt i64 1, %"$gasrem_4816" + br i1 %"$gascmp_4817", label %"$out_of_gas_4818", label %"$have_gas_4819" -"$out_of_gas_4759": ; preds = %"$have_gas_4755" +"$out_of_gas_4818": ; preds = %"$have_gas_4814" call void @_out_of_gas() - br label %"$have_gas_4760" + br label %"$have_gas_4819" -"$have_gas_4760": ; preds = %"$out_of_gas_4759", %"$have_gas_4755" - %"$consume_4761" = sub i64 %"$gasrem_4757", 1 - store i64 %"$consume_4761", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_4762", i32 0, i32 0), i32 3 }, %String* %tname, align 8, !dbg !496 - %"$gasrem_4763" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4764" = icmp ugt i64 1, %"$gasrem_4763" - br i1 %"$gascmp_4764", label %"$out_of_gas_4765", label %"$have_gas_4766" +"$have_gas_4819": ; preds = %"$out_of_gas_4818", %"$have_gas_4814" + %"$consume_4820" = sub i64 %"$gasrem_4816", 1 + store i64 %"$consume_4820", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_4821", i32 0, i32 0), i32 3 }, %String* %tname, align 8, !dbg !1030 + %"$gasrem_4822" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4823" = icmp ugt i64 1, %"$gasrem_4822" + br i1 %"$gascmp_4823", label %"$out_of_gas_4824", label %"$have_gas_4825" -"$out_of_gas_4765": ; preds = %"$have_gas_4760" +"$out_of_gas_4824": ; preds = %"$have_gas_4819" call void @_out_of_gas() - br label %"$have_gas_4766" + br label %"$have_gas_4825" -"$have_gas_4766": ; preds = %"$out_of_gas_4765", %"$have_gas_4760" - %"$consume_4767" = sub i64 %"$gasrem_4763", 1 - store i64 %"$consume_4767", i64* @_gasrem, align 8 +"$have_gas_4825": ; preds = %"$out_of_gas_4824", %"$have_gas_4819" + %"$consume_4826" = sub i64 %"$gasrem_4822", 1 + store i64 %"$consume_4826", i64* @_gasrem, align 8 %key = alloca %String, align 8 - %"$gasrem_4768" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4769" = icmp ugt i64 1, %"$gasrem_4768" - br i1 %"$gascmp_4769", label %"$out_of_gas_4770", label %"$have_gas_4771" + call void @llvm.dbg.declare(metadata %String* %key, metadata !1031, metadata !DIExpression()), !dbg !1032 + %"$gasrem_4827" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4828" = icmp ugt i64 1, %"$gasrem_4827" + br i1 %"$gascmp_4828", label %"$out_of_gas_4829", label %"$have_gas_4830" -"$out_of_gas_4770": ; preds = %"$have_gas_4766" +"$out_of_gas_4829": ; preds = %"$have_gas_4825" call void @_out_of_gas() - br label %"$have_gas_4771" + br label %"$have_gas_4830" -"$have_gas_4771": ; preds = %"$out_of_gas_4770", %"$have_gas_4766" - %"$consume_4772" = sub i64 %"$gasrem_4768", 1 - store i64 %"$consume_4772", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([0 x i8], [0 x i8]* @"$stringlit_4773", i32 0, i32 0), i32 0 }, %String* %key, align 8, !dbg !497 +"$have_gas_4830": ; preds = %"$out_of_gas_4829", %"$have_gas_4825" + %"$consume_4831" = sub i64 %"$gasrem_4827", 1 + store i64 %"$consume_4831", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([0 x i8], [0 x i8]* @"$stringlit_4832", i32 0, i32 0), i32 0 }, %String* %key, align 8, !dbg !1033 %found = alloca %TName_Bool*, align 8 - %"$indices_buf_4774_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$indices_buf_4774_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_4774_salloc_load", i64 16) - %"$indices_buf_4774_salloc" = bitcast i8* %"$indices_buf_4774_salloc_salloc" to [16 x i8]* - %"$indices_buf_4774" = bitcast [16 x i8]* %"$indices_buf_4774_salloc" to i8* - %"$key_4775" = load %String, %String* %key, align 8 - %"$indices_gep_4776" = getelementptr i8, i8* %"$indices_buf_4774", i32 0 - %indices_cast = bitcast i8* %"$indices_gep_4776" to %String* - store %String %"$key_4775", %String* %indices_cast, align 8 - %"$execptr_load_4778" = load i8*, i8** @_execptr, align 8 - %"$found_call_4779" = call i8* @_fetch_field(i8* %"$execptr_load_4778", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m1_4777", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_77", i32 1, i8* %"$indices_buf_4774", i32 0), !dbg !498 - %"$found_4780" = bitcast i8* %"$found_call_4779" to %TName_Bool* - store %TName_Bool* %"$found_4780", %TName_Bool** %found, align 8 - %"$found_4781" = load %TName_Bool*, %TName_Bool** %found, align 8 - %"$$found_4781_4782" = bitcast %TName_Bool* %"$found_4781" to i8* - %"$_literal_cost_call_4783" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_73", i8* %"$$found_4781_4782") - %"$gasadd_4784" = add i64 %"$_literal_cost_call_4783", 0 - %"$gasadd_4785" = add i64 %"$gasadd_4784", 1 - %"$gasrem_4786" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4787" = icmp ugt i64 %"$gasadd_4785", %"$gasrem_4786" - br i1 %"$gascmp_4787", label %"$out_of_gas_4788", label %"$have_gas_4789" - -"$out_of_gas_4788": ; preds = %"$have_gas_4771" - call void @_out_of_gas() - br label %"$have_gas_4789" - -"$have_gas_4789": ; preds = %"$out_of_gas_4788", %"$have_gas_4771" - %"$consume_4790" = sub i64 %"$gasrem_4786", %"$gasadd_4785" - store i64 %"$consume_4790", i64* @_gasrem, align 8 - %"$gasrem_4791" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4792" = icmp ugt i64 2, %"$gasrem_4791" - br i1 %"$gascmp_4792", label %"$out_of_gas_4793", label %"$have_gas_4794" - -"$out_of_gas_4793": ; preds = %"$have_gas_4789" - call void @_out_of_gas() - br label %"$have_gas_4794" - -"$have_gas_4794": ; preds = %"$out_of_gas_4793", %"$have_gas_4789" - %"$consume_4795" = sub i64 %"$gasrem_4791", 2 - store i64 %"$consume_4795", i64* @_gasrem, align 8 - %"$found_4797" = load %TName_Bool*, %TName_Bool** %found, align 8 - %"$found_tag_4798" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$found_4797", i32 0, i32 0 - %"$found_tag_4799" = load i8, i8* %"$found_tag_4798", align 1 - switch i8 %"$found_tag_4799", label %"$empty_default_4800" [ - i8 0, label %"$True_4801" - i8 1, label %"$False_4803" - ], !dbg !499 - -"$True_4801": ; preds = %"$have_gas_4794" - %"$found_4802" = bitcast %TName_Bool* %"$found_4797" to %CName_True* - br label %"$matchsucc_4796" - -"$False_4803": ; preds = %"$have_gas_4794" - %"$found_4804" = bitcast %TName_Bool* %"$found_4797" to %CName_False* - %"$gasrem_4805" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4806" = icmp ugt i64 1, %"$gasrem_4805" - br i1 %"$gascmp_4806", label %"$out_of_gas_4807", label %"$have_gas_4808" - -"$out_of_gas_4807": ; preds = %"$False_4803" - call void @_out_of_gas() - br label %"$have_gas_4808" - -"$have_gas_4808": ; preds = %"$out_of_gas_4807", %"$False_4803" - %"$consume_4809" = sub i64 %"$gasrem_4805", 1 - store i64 %"$consume_4809", i64* @_gasrem, align 8 - %"$fail__origin_4810" = alloca [20 x i8], align 1 - store [20 x i8] %_origin, [20 x i8]* %"$fail__origin_4810", align 1 - %"$fail__sender_4811" = alloca [20 x i8], align 1 - store [20 x i8] %_sender, [20 x i8]* %"$fail__sender_4811", align 1 - %"$tname_4812" = load %String, %String* %tname, align 8 - call void @"$fail_252"(%Uint128 %_amount, [20 x i8]* %"$fail__origin_4810", [20 x i8]* %"$fail__sender_4811", %String %"$tname_4812"), !dbg !500 - br label %"$matchsucc_4796" - -"$empty_default_4800": ; preds = %"$have_gas_4794" - br label %"$matchsucc_4796" - -"$matchsucc_4796": ; preds = %"$have_gas_4808", %"$True_4801", %"$empty_default_4800" - %"$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" - -"$out_of_gas_4815": ; preds = %"$matchsucc_4796" - call void @_out_of_gas() - br label %"$have_gas_4816" - -"$have_gas_4816": ; preds = %"$out_of_gas_4815", %"$matchsucc_4796" - %"$consume_4817" = sub i64 %"$gasrem_4813", 1 - store i64 %"$consume_4817", i64* @_gasrem, align 8 - %"$indices_buf_4818_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$indices_buf_4818_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_4818_salloc_load", i64 16) - %"$indices_buf_4818_salloc" = bitcast i8* %"$indices_buf_4818_salloc_salloc" to [16 x i8]* - %"$indices_buf_4818" = bitcast [16 x i8]* %"$indices_buf_4818_salloc" to i8* - %"$key_4819" = load %String, %String* %key, align 8 - %"$indices_gep_4820" = getelementptr i8, i8* %"$indices_buf_4818", i32 0 - %indices_cast1 = bitcast i8* %"$indices_gep_4820" to %String* - store %String %"$key_4819", %String* %indices_cast1, align 8 - %"$execptr_load_4821" = load i8*, i8** @_execptr, align 8 - call void @_update_field(i8* %"$execptr_load_4821", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m1_4822", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_77", i32 1, i8* %"$indices_buf_4818", i8* null), !dbg !503 + call void @llvm.dbg.declare(metadata %TName_Bool** %found, metadata !1034, metadata !DIExpression()), !dbg !1035 + %"$indices_buf_4833_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$indices_buf_4833_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_4833_salloc_load", i64 16) + %"$indices_buf_4833_salloc" = bitcast i8* %"$indices_buf_4833_salloc_salloc" to [16 x i8]* + %"$indices_buf_4833" = bitcast [16 x i8]* %"$indices_buf_4833_salloc" to i8* + %"$key_4834" = load %String, %String* %key, align 8 + %"$indices_gep_4835" = getelementptr i8, i8* %"$indices_buf_4833", i32 0 + %indices_cast = bitcast i8* %"$indices_gep_4835" to %String* + store %String %"$key_4834", %String* %indices_cast, align 8 + %"$execptr_load_4837" = load i8*, i8** @_execptr, align 8 + %"$found_call_4838" = call i8* @_fetch_field(i8* %"$execptr_load_4837", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m1_4836", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_77", i32 1, i8* %"$indices_buf_4833", i32 0), !dbg !1035 + %"$found_4839" = bitcast i8* %"$found_call_4838" to %TName_Bool* + store %TName_Bool* %"$found_4839", %TName_Bool** %found, align 8 + %"$found_4840" = load %TName_Bool*, %TName_Bool** %found, align 8 + %"$$found_4840_4841" = bitcast %TName_Bool* %"$found_4840" to i8* + %"$_literal_cost_call_4842" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_73", i8* %"$$found_4840_4841") + %"$gasadd_4843" = add i64 %"$_literal_cost_call_4842", 0 + %"$gasadd_4844" = add i64 %"$gasadd_4843", 1 + %"$gasrem_4845" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4846" = icmp ugt i64 %"$gasadd_4844", %"$gasrem_4845" + br i1 %"$gascmp_4846", label %"$out_of_gas_4847", label %"$have_gas_4848" + +"$out_of_gas_4847": ; preds = %"$have_gas_4830" + call void @_out_of_gas() + br label %"$have_gas_4848" + +"$have_gas_4848": ; preds = %"$out_of_gas_4847", %"$have_gas_4830" + %"$consume_4849" = sub i64 %"$gasrem_4845", %"$gasadd_4844" + store i64 %"$consume_4849", i64* @_gasrem, align 8 + %"$gasrem_4850" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4851" = icmp ugt i64 2, %"$gasrem_4850" + br i1 %"$gascmp_4851", label %"$out_of_gas_4852", label %"$have_gas_4853" + +"$out_of_gas_4852": ; preds = %"$have_gas_4848" + call void @_out_of_gas() + br label %"$have_gas_4853" + +"$have_gas_4853": ; preds = %"$out_of_gas_4852", %"$have_gas_4848" + %"$consume_4854" = sub i64 %"$gasrem_4850", 2 + store i64 %"$consume_4854", i64* @_gasrem, align 8 + %"$found_4856" = load %TName_Bool*, %TName_Bool** %found, align 8 + %"$found_tag_4857" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$found_4856", i32 0, i32 0 + %"$found_tag_4858" = load i8, i8* %"$found_tag_4857", align 1 + switch i8 %"$found_tag_4858", label %"$empty_default_4859" [ + i8 0, label %"$True_4860" + i8 1, label %"$False_4862" + ], !dbg !1036 + +"$True_4860": ; preds = %"$have_gas_4853" + %"$found_4861" = bitcast %TName_Bool* %"$found_4856" to %CName_True* + br label %"$matchsucc_4855" + +"$False_4862": ; preds = %"$have_gas_4853" + %"$found_4863" = bitcast %TName_Bool* %"$found_4856" to %CName_False* + %"$gasrem_4864" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4865" = icmp ugt i64 1, %"$gasrem_4864" + br i1 %"$gascmp_4865", label %"$out_of_gas_4866", label %"$have_gas_4867" + +"$out_of_gas_4866": ; preds = %"$False_4862" + call void @_out_of_gas() + br label %"$have_gas_4867" + +"$have_gas_4867": ; preds = %"$out_of_gas_4866", %"$False_4862" + %"$consume_4868" = sub i64 %"$gasrem_4864", 1 + store i64 %"$consume_4868", i64* @_gasrem, align 8 + %"$fail__origin_4869" = alloca [20 x i8], align 1 + store [20 x i8] %_origin, [20 x i8]* %"$fail__origin_4869", align 1 + %"$fail__sender_4870" = alloca [20 x i8], align 1 + store [20 x i8] %_sender, [20 x i8]* %"$fail__sender_4870", align 1 + %"$tname_4871" = load %String, %String* %tname, align 8 + call void @"$fail_254"(%Uint128 %_amount, [20 x i8]* %"$fail__origin_4869", [20 x i8]* %"$fail__sender_4870", %String %"$tname_4871"), !dbg !1037 + br label %"$matchsucc_4855" + +"$empty_default_4859": ; preds = %"$have_gas_4853" + br label %"$matchsucc_4855" + +"$matchsucc_4855": ; preds = %"$have_gas_4867", %"$True_4860", %"$empty_default_4859" + %"$gasrem_4872" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4873" = icmp ugt i64 1, %"$gasrem_4872" + br i1 %"$gascmp_4873", label %"$out_of_gas_4874", label %"$have_gas_4875" + +"$out_of_gas_4874": ; preds = %"$matchsucc_4855" + call void @_out_of_gas() + br label %"$have_gas_4875" + +"$have_gas_4875": ; preds = %"$out_of_gas_4874", %"$matchsucc_4855" + %"$consume_4876" = sub i64 %"$gasrem_4872", 1 + store i64 %"$consume_4876", i64* @_gasrem, align 8 + %"$indices_buf_4877_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$indices_buf_4877_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_4877_salloc_load", i64 16) + %"$indices_buf_4877_salloc" = bitcast i8* %"$indices_buf_4877_salloc_salloc" to [16 x i8]* + %"$indices_buf_4877" = bitcast [16 x i8]* %"$indices_buf_4877_salloc" to i8* + %"$key_4878" = load %String, %String* %key, align 8 + %"$indices_gep_4879" = getelementptr i8, i8* %"$indices_buf_4877", i32 0 + %indices_cast1 = bitcast i8* %"$indices_gep_4879" to %String* + store %String %"$key_4878", %String* %indices_cast1, align 8 + %"$execptr_load_4880" = load i8*, i8** @_execptr, align 8 + call void @_update_field(i8* %"$execptr_load_4880", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m1_4881", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_77", i32 1, i8* %"$indices_buf_4877", i8* null), !dbg !1040 ret void } -define void @t17(i8* %0) !dbg !504 { +define void @t17(i8* %0) !dbg !1041 { entry: - %"$_amount_4824" = getelementptr i8, i8* %0, i32 0 - %"$_amount_4825" = bitcast i8* %"$_amount_4824" to %Uint128* - %_amount = load %Uint128, %Uint128* %"$_amount_4825", align 8 - %"$_origin_4826" = getelementptr i8, i8* %0, i32 16 - %"$_origin_4827" = bitcast i8* %"$_origin_4826" to [20 x i8]* - %"$_sender_4828" = getelementptr i8, i8* %0, i32 36 - %"$_sender_4829" = bitcast i8* %"$_sender_4828" to [20 x i8]* - call void @"$t17_4749"(%Uint128 %_amount, [20 x i8]* %"$_origin_4827", [20 x i8]* %"$_sender_4829"), !dbg !505 + %"$_amount_4886" = getelementptr i8, i8* %0, i32 0 + %"$_amount_4887" = bitcast i8* %"$_amount_4886" to %Uint128* + %_amount = load %Uint128, %Uint128* %"$_amount_4887", align 8 + %"$_origin_4888" = getelementptr i8, i8* %0, i32 16 + %"$_origin_4889" = bitcast i8* %"$_origin_4888" to [20 x i8]* + %"$_sender_4890" = getelementptr i8, i8* %0, i32 36 + %"$_sender_4891" = bitcast i8* %"$_sender_4890" to [20 x i8]* + call void @"$t17_4808"(%Uint128 %_amount, [20 x i8]* %"$_origin_4889", [20 x i8]* %"$_sender_4891"), !dbg !1042 ret void } -define internal void @"$t18_4830"(%Uint128 %_amount, [20 x i8]* %"$_origin_4831", [20 x i8]* %"$_sender_4832") !dbg !506 { +define internal void @"$t18_4892"(%Uint128 %_amount, [20 x i8]* %"$_origin_4893", [20 x i8]* %"$_sender_4894") !dbg !1043 { entry: - %_origin = load [20 x i8], [20 x i8]* %"$_origin_4831", align 1 - %_sender = load [20 x i8], [20 x i8]* %"$_sender_4832", align 1 - %"$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" - -"$out_of_gas_4835": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_4836" - -"$have_gas_4836": ; preds = %"$out_of_gas_4835", %entry - %"$consume_4837" = sub i64 %"$gasrem_4833", 1 - store i64 %"$consume_4837", i64* @_gasrem, align 8 + %"$_sender_4958" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_sender_4894", [20 x i8]** %"$_sender_4958", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_sender_4958", metadata !1044, metadata !DIExpression()), !dbg !1045 + %"$_origin_4957" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_origin_4893", [20 x i8]** %"$_origin_4957", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_origin_4957", metadata !1046, metadata !DIExpression()), !dbg !1045 + %"$_amount_4956" = alloca %Uint128, align 8 + store %Uint128 %_amount, %Uint128* %"$_amount_4956", align 8 + call void @llvm.dbg.declare(metadata %Uint128* %"$_amount_4956", metadata !1047, metadata !DIExpression()), !dbg !1045 + %_origin = load [20 x i8], [20 x i8]* %"$_origin_4893", align 1 + %_sender = load [20 x i8], [20 x i8]* %"$_sender_4894", align 1 + %"$gasrem_4895" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4896" = icmp ugt i64 1, %"$gasrem_4895" + br i1 %"$gascmp_4896", label %"$out_of_gas_4897", label %"$have_gas_4898" + +"$out_of_gas_4897": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_4898" + +"$have_gas_4898": ; preds = %"$out_of_gas_4897", %entry + %"$consume_4899" = sub i64 %"$gasrem_4895", 1 + store i64 %"$consume_4899", i64* @_gasrem, align 8 %tname = alloca %String, align 8 - %"$gasrem_4838" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4839" = icmp ugt i64 1, %"$gasrem_4838" - br i1 %"$gascmp_4839", label %"$out_of_gas_4840", label %"$have_gas_4841" + call void @llvm.dbg.declare(metadata %String* %tname, metadata !1048, metadata !DIExpression()), !dbg !1049 + %"$gasrem_4900" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4901" = icmp ugt i64 1, %"$gasrem_4900" + br i1 %"$gascmp_4901", label %"$out_of_gas_4902", label %"$have_gas_4903" -"$out_of_gas_4840": ; preds = %"$have_gas_4836" +"$out_of_gas_4902": ; preds = %"$have_gas_4898" call void @_out_of_gas() - br label %"$have_gas_4841" + br label %"$have_gas_4903" -"$have_gas_4841": ; preds = %"$out_of_gas_4840", %"$have_gas_4836" - %"$consume_4842" = sub i64 %"$gasrem_4838", 1 - store i64 %"$consume_4842", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_4843", i32 0, i32 0), i32 3 }, %String* %tname, align 8, !dbg !507 - %"$gasrem_4844" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4845" = icmp ugt i64 1, %"$gasrem_4844" - br i1 %"$gascmp_4845", label %"$out_of_gas_4846", label %"$have_gas_4847" +"$have_gas_4903": ; preds = %"$out_of_gas_4902", %"$have_gas_4898" + %"$consume_4904" = sub i64 %"$gasrem_4900", 1 + store i64 %"$consume_4904", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_4905", i32 0, i32 0), i32 3 }, %String* %tname, align 8, !dbg !1050 + %"$gasrem_4906" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4907" = icmp ugt i64 1, %"$gasrem_4906" + br i1 %"$gascmp_4907", label %"$out_of_gas_4908", label %"$have_gas_4909" -"$out_of_gas_4846": ; preds = %"$have_gas_4841" +"$out_of_gas_4908": ; preds = %"$have_gas_4903" call void @_out_of_gas() - br label %"$have_gas_4847" + br label %"$have_gas_4909" -"$have_gas_4847": ; preds = %"$out_of_gas_4846", %"$have_gas_4841" - %"$consume_4848" = sub i64 %"$gasrem_4844", 1 - store i64 %"$consume_4848", i64* @_gasrem, align 8 +"$have_gas_4909": ; preds = %"$out_of_gas_4908", %"$have_gas_4903" + %"$consume_4910" = sub i64 %"$gasrem_4906", 1 + store i64 %"$consume_4910", i64* @_gasrem, align 8 %key = alloca %String, align 8 - %"$gasrem_4849" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4850" = icmp ugt i64 1, %"$gasrem_4849" - br i1 %"$gascmp_4850", label %"$out_of_gas_4851", label %"$have_gas_4852" + call void @llvm.dbg.declare(metadata %String* %key, metadata !1051, metadata !DIExpression()), !dbg !1052 + %"$gasrem_4911" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4912" = icmp ugt i64 1, %"$gasrem_4911" + br i1 %"$gascmp_4912", label %"$out_of_gas_4913", label %"$have_gas_4914" -"$out_of_gas_4851": ; preds = %"$have_gas_4847" +"$out_of_gas_4913": ; preds = %"$have_gas_4909" call void @_out_of_gas() - br label %"$have_gas_4852" + br label %"$have_gas_4914" -"$have_gas_4852": ; preds = %"$out_of_gas_4851", %"$have_gas_4847" - %"$consume_4853" = sub i64 %"$gasrem_4849", 1 - store i64 %"$consume_4853", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([0 x i8], [0 x i8]* @"$stringlit_4854", i32 0, i32 0), i32 0 }, %String* %key, align 8, !dbg !508 +"$have_gas_4914": ; preds = %"$out_of_gas_4913", %"$have_gas_4909" + %"$consume_4915" = sub i64 %"$gasrem_4911", 1 + store i64 %"$consume_4915", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([0 x i8], [0 x i8]* @"$stringlit_4916", i32 0, i32 0), i32 0 }, %String* %key, align 8, !dbg !1053 %found = alloca %TName_Bool*, align 8 - %"$indices_buf_4855_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$indices_buf_4855_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_4855_salloc_load", i64 16) - %"$indices_buf_4855_salloc" = bitcast i8* %"$indices_buf_4855_salloc_salloc" to [16 x i8]* - %"$indices_buf_4855" = bitcast [16 x i8]* %"$indices_buf_4855_salloc" to i8* - %"$key_4856" = load %String, %String* %key, align 8 - %"$indices_gep_4857" = getelementptr i8, i8* %"$indices_buf_4855", i32 0 - %indices_cast = bitcast i8* %"$indices_gep_4857" to %String* - store %String %"$key_4856", %String* %indices_cast, align 8 - %"$execptr_load_4859" = load i8*, i8** @_execptr, align 8 - %"$found_call_4860" = call i8* @_fetch_field(i8* %"$execptr_load_4859", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m1_4858", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_77", i32 1, i8* %"$indices_buf_4855", i32 0), !dbg !509 - %"$found_4861" = bitcast i8* %"$found_call_4860" to %TName_Bool* - store %TName_Bool* %"$found_4861", %TName_Bool** %found, align 8 - %"$found_4862" = load %TName_Bool*, %TName_Bool** %found, align 8 - %"$$found_4862_4863" = bitcast %TName_Bool* %"$found_4862" to i8* - %"$_literal_cost_call_4864" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_73", i8* %"$$found_4862_4863") - %"$gasadd_4865" = add i64 %"$_literal_cost_call_4864", 0 - %"$gasadd_4866" = add i64 %"$gasadd_4865", 1 - %"$gasrem_4867" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4868" = icmp ugt i64 %"$gasadd_4866", %"$gasrem_4867" - br i1 %"$gascmp_4868", label %"$out_of_gas_4869", label %"$have_gas_4870" - -"$out_of_gas_4869": ; preds = %"$have_gas_4852" - call void @_out_of_gas() - br label %"$have_gas_4870" - -"$have_gas_4870": ; preds = %"$out_of_gas_4869", %"$have_gas_4852" - %"$consume_4871" = sub i64 %"$gasrem_4867", %"$gasadd_4866" - store i64 %"$consume_4871", i64* @_gasrem, align 8 - %"$gasrem_4872" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4873" = icmp ugt i64 2, %"$gasrem_4872" - br i1 %"$gascmp_4873", label %"$out_of_gas_4874", label %"$have_gas_4875" - -"$out_of_gas_4874": ; preds = %"$have_gas_4870" - call void @_out_of_gas() - br label %"$have_gas_4875" - -"$have_gas_4875": ; preds = %"$out_of_gas_4874", %"$have_gas_4870" - %"$consume_4876" = sub i64 %"$gasrem_4872", 2 - store i64 %"$consume_4876", i64* @_gasrem, align 8 - %"$found_4878" = load %TName_Bool*, %TName_Bool** %found, align 8 - %"$found_tag_4879" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$found_4878", i32 0, i32 0 - %"$found_tag_4880" = load i8, i8* %"$found_tag_4879", align 1 - switch i8 %"$found_tag_4880", label %"$empty_default_4881" [ - i8 0, label %"$True_4882" - i8 1, label %"$False_4892" - ], !dbg !510 - -"$True_4882": ; preds = %"$have_gas_4875" - %"$found_4883" = bitcast %TName_Bool* %"$found_4878" to %CName_True* - %"$gasrem_4884" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4885" = icmp ugt i64 1, %"$gasrem_4884" - br i1 %"$gascmp_4885", label %"$out_of_gas_4886", label %"$have_gas_4887" - -"$out_of_gas_4886": ; preds = %"$True_4882" - call void @_out_of_gas() - br label %"$have_gas_4887" - -"$have_gas_4887": ; preds = %"$out_of_gas_4886", %"$True_4882" - %"$consume_4888" = sub i64 %"$gasrem_4884", 1 - store i64 %"$consume_4888", i64* @_gasrem, align 8 - %"$fail__origin_4889" = alloca [20 x i8], align 1 - store [20 x i8] %_origin, [20 x i8]* %"$fail__origin_4889", align 1 - %"$fail__sender_4890" = alloca [20 x i8], align 1 - store [20 x i8] %_sender, [20 x i8]* %"$fail__sender_4890", align 1 - %"$tname_4891" = load %String, %String* %tname, align 8 - call void @"$fail_252"(%Uint128 %_amount, [20 x i8]* %"$fail__origin_4889", [20 x i8]* %"$fail__sender_4890", %String %"$tname_4891"), !dbg !511 - br label %"$matchsucc_4877" - -"$False_4892": ; preds = %"$have_gas_4875" - %"$found_4893" = bitcast %TName_Bool* %"$found_4878" to %CName_False* - br label %"$matchsucc_4877" - -"$empty_default_4881": ; preds = %"$have_gas_4875" - br label %"$matchsucc_4877" - -"$matchsucc_4877": ; preds = %"$False_4892", %"$have_gas_4887", %"$empty_default_4881" + call void @llvm.dbg.declare(metadata %TName_Bool** %found, metadata !1054, metadata !DIExpression()), !dbg !1055 + %"$indices_buf_4917_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$indices_buf_4917_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_4917_salloc_load", i64 16) + %"$indices_buf_4917_salloc" = bitcast i8* %"$indices_buf_4917_salloc_salloc" to [16 x i8]* + %"$indices_buf_4917" = bitcast [16 x i8]* %"$indices_buf_4917_salloc" to i8* + %"$key_4918" = load %String, %String* %key, align 8 + %"$indices_gep_4919" = getelementptr i8, i8* %"$indices_buf_4917", i32 0 + %indices_cast = bitcast i8* %"$indices_gep_4919" to %String* + store %String %"$key_4918", %String* %indices_cast, align 8 + %"$execptr_load_4921" = load i8*, i8** @_execptr, align 8 + %"$found_call_4922" = call i8* @_fetch_field(i8* %"$execptr_load_4921", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m1_4920", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_77", i32 1, i8* %"$indices_buf_4917", i32 0), !dbg !1055 + %"$found_4923" = bitcast i8* %"$found_call_4922" to %TName_Bool* + store %TName_Bool* %"$found_4923", %TName_Bool** %found, align 8 + %"$found_4924" = load %TName_Bool*, %TName_Bool** %found, align 8 + %"$$found_4924_4925" = bitcast %TName_Bool* %"$found_4924" to i8* + %"$_literal_cost_call_4926" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_73", i8* %"$$found_4924_4925") + %"$gasadd_4927" = add i64 %"$_literal_cost_call_4926", 0 + %"$gasadd_4928" = add i64 %"$gasadd_4927", 1 + %"$gasrem_4929" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4930" = icmp ugt i64 %"$gasadd_4928", %"$gasrem_4929" + br i1 %"$gascmp_4930", label %"$out_of_gas_4931", label %"$have_gas_4932" + +"$out_of_gas_4931": ; preds = %"$have_gas_4914" + call void @_out_of_gas() + br label %"$have_gas_4932" + +"$have_gas_4932": ; preds = %"$out_of_gas_4931", %"$have_gas_4914" + %"$consume_4933" = sub i64 %"$gasrem_4929", %"$gasadd_4928" + store i64 %"$consume_4933", i64* @_gasrem, align 8 + %"$gasrem_4934" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4935" = icmp ugt i64 2, %"$gasrem_4934" + br i1 %"$gascmp_4935", label %"$out_of_gas_4936", label %"$have_gas_4937" + +"$out_of_gas_4936": ; preds = %"$have_gas_4932" + call void @_out_of_gas() + br label %"$have_gas_4937" + +"$have_gas_4937": ; preds = %"$out_of_gas_4936", %"$have_gas_4932" + %"$consume_4938" = sub i64 %"$gasrem_4934", 2 + store i64 %"$consume_4938", i64* @_gasrem, align 8 + %"$found_4940" = load %TName_Bool*, %TName_Bool** %found, align 8 + %"$found_tag_4941" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$found_4940", i32 0, i32 0 + %"$found_tag_4942" = load i8, i8* %"$found_tag_4941", align 1 + switch i8 %"$found_tag_4942", label %"$empty_default_4943" [ + i8 0, label %"$True_4944" + i8 1, label %"$False_4954" + ], !dbg !1056 + +"$True_4944": ; preds = %"$have_gas_4937" + %"$found_4945" = bitcast %TName_Bool* %"$found_4940" to %CName_True* + %"$gasrem_4946" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4947" = icmp ugt i64 1, %"$gasrem_4946" + br i1 %"$gascmp_4947", label %"$out_of_gas_4948", label %"$have_gas_4949" + +"$out_of_gas_4948": ; preds = %"$True_4944" + call void @_out_of_gas() + br label %"$have_gas_4949" + +"$have_gas_4949": ; preds = %"$out_of_gas_4948", %"$True_4944" + %"$consume_4950" = sub i64 %"$gasrem_4946", 1 + store i64 %"$consume_4950", i64* @_gasrem, align 8 + %"$fail__origin_4951" = alloca [20 x i8], align 1 + store [20 x i8] %_origin, [20 x i8]* %"$fail__origin_4951", align 1 + %"$fail__sender_4952" = alloca [20 x i8], align 1 + store [20 x i8] %_sender, [20 x i8]* %"$fail__sender_4952", align 1 + %"$tname_4953" = load %String, %String* %tname, align 8 + call void @"$fail_254"(%Uint128 %_amount, [20 x i8]* %"$fail__origin_4951", [20 x i8]* %"$fail__sender_4952", %String %"$tname_4953"), !dbg !1057 + br label %"$matchsucc_4939" + +"$False_4954": ; preds = %"$have_gas_4937" + %"$found_4955" = bitcast %TName_Bool* %"$found_4940" to %CName_False* + br label %"$matchsucc_4939" + +"$empty_default_4943": ; preds = %"$have_gas_4937" + br label %"$matchsucc_4939" + +"$matchsucc_4939": ; preds = %"$False_4954", %"$have_gas_4949", %"$empty_default_4943" ret void } -define void @t18(i8* %0) !dbg !514 { +define void @t18(i8* %0) !dbg !1060 { entry: - %"$_amount_4895" = getelementptr i8, i8* %0, i32 0 - %"$_amount_4896" = bitcast i8* %"$_amount_4895" to %Uint128* - %_amount = load %Uint128, %Uint128* %"$_amount_4896", align 8 - %"$_origin_4897" = getelementptr i8, i8* %0, i32 16 - %"$_origin_4898" = bitcast i8* %"$_origin_4897" to [20 x i8]* - %"$_sender_4899" = getelementptr i8, i8* %0, i32 36 - %"$_sender_4900" = bitcast i8* %"$_sender_4899" to [20 x i8]* - call void @"$t18_4830"(%Uint128 %_amount, [20 x i8]* %"$_origin_4898", [20 x i8]* %"$_sender_4900"), !dbg !515 + %"$_amount_4960" = getelementptr i8, i8* %0, i32 0 + %"$_amount_4961" = bitcast i8* %"$_amount_4960" to %Uint128* + %_amount = load %Uint128, %Uint128* %"$_amount_4961", align 8 + %"$_origin_4962" = getelementptr i8, i8* %0, i32 16 + %"$_origin_4963" = bitcast i8* %"$_origin_4962" to [20 x i8]* + %"$_sender_4964" = getelementptr i8, i8* %0, i32 36 + %"$_sender_4965" = bitcast i8* %"$_sender_4964" to [20 x i8]* + call void @"$t18_4892"(%Uint128 %_amount, [20 x i8]* %"$_origin_4963", [20 x i8]* %"$_sender_4965"), !dbg !1061 ret void } -attributes #0 = { nofree nosync nounwind readnone speculatable willreturn } +attributes #0 = { nocallback nofree nosync nounwind readnone speculatable willreturn } !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) +!1 = distinct !DICompileUnit(language: DW_LANG_C89, file: !2, producer: "Scilla Compiler", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false) !2 = !DIFile(filename: "map_corners_test.scilla", directory: "codegen/contr") -!3 = !{} -!4 = distinct !DISubprogram(name: "$fundef_27", linkageName: "$fundef_27", scope: !5, file: !5, line: 8, type: !6, scopeLine: 8, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!5 = !DIFile(filename: "BoolUtils.scillib", directory: "../src/stdlib") -!6 = !DISubroutineType(types: !7) -!7 = !{!8} -!8 = !DIBasicType(tag: DW_TAG_unspecified_type, name: "void") -!9 = !DILocation(line: 8, column: 5, scope: !4) -!10 = !DILocation(line: 9, column: 16, scope: !11) -!11 = distinct !DILexicalBlock(scope: !12, file: !5, line: 9, column: 7) -!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_25", linkageName: "$fundef_25", 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: 0, scope: !17) -!20 = !DILocation(line: 7, column: 3, scope: !17) -!21 = distinct !DISubprogram(name: "_deploy_ops", linkageName: "_deploy_ops", scope: !18, file: !18, type: !6, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!22 = !DILocation(line: 11, column: 27, scope: !21) -!23 = !DILocation(line: 12, column: 34, scope: !21) -!24 = !DILocation(line: 13, column: 47, scope: !21) -!25 = !DILocation(line: 14, column: 60, scope: !21) -!26 = !DILocation(line: 15, column: 46, scope: !21) -!27 = distinct !DISubprogram(name: "fail", linkageName: "fail", scope: !2, file: !2, line: 17, type: !6, scopeLine: 17, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!28 = !DILocation(line: 18, column: 7, scope: !27) -!29 = !DILocation(line: 19, column: 3, scope: !27) -!30 = 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) -!31 = !DILocation(line: 23, column: 7, scope: !30) -!32 = !DILocation(line: 24, column: 3, scope: !30) -!33 = distinct !DISubprogram(name: "t1", linkageName: "t1", scope: !2, file: !2, line: 28, type: !6, scopeLine: 28, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!34 = !DILocation(line: 30, column: 14, scope: !33) -!35 = !DILocation(line: 31, column: 3, scope: !33) -!36 = !DILocation(line: 32, column: 11, scope: !33) -!37 = !DILocation(line: 33, column: 7, scope: !33) -!38 = !DILocation(line: 34, column: 3, scope: !33) -!39 = !DILocation(line: 36, column: 5, scope: !40) -!40 = distinct !DILexicalBlock(scope: !41, file: !2, line: 35, column: 5) -!41 = distinct !DILexicalBlock(scope: !33, file: !2, line: 34, column: 3) -!42 = !DILocation(line: 41, column: 12, scope: !33) -!43 = !DILocation(line: 42, column: 3, scope: !33) -!44 = distinct !DISubprogram(name: "t1", linkageName: "t1", scope: !2, file: !2, line: 28, type: !6, scopeLine: 28, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!45 = !DILocation(line: 28, column: 12, scope: !44) -!46 = distinct !DISubprogram(name: "t2", linkageName: "t2", scope: !2, file: !2, line: 46, type: !6, scopeLine: 46, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!47 = !DILocation(line: 48, column: 14, scope: !46) -!48 = !DILocation(line: 49, column: 3, scope: !46) -!49 = !DILocation(line: 50, column: 11, scope: !46) -!50 = !DILocation(line: 51, column: 7, scope: !46) -!51 = !DILocation(line: 52, column: 3, scope: !46) -!52 = !DILocation(line: 54, column: 5, scope: !53) -!53 = distinct !DILexicalBlock(scope: !54, file: !2, line: 53, column: 5) -!54 = distinct !DILexicalBlock(scope: !46, file: !2, line: 52, column: 3) -!55 = !DILocation(line: 59, column: 15, scope: !46) -!56 = !DILocation(line: 60, column: 14, scope: !46) -!57 = !DILocation(line: 61, column: 3, scope: !46) -!58 = distinct !DISubprogram(name: "t2", linkageName: "t2", scope: !2, file: !2, line: 46, type: !6, scopeLine: 46, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!59 = !DILocation(line: 46, column: 12, scope: !58) -!60 = distinct !DISubprogram(name: "t3", linkageName: "t3", scope: !2, file: !2, line: 65, type: !6, scopeLine: 65, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!61 = !DILocation(line: 66, column: 14, scope: !60) -!62 = !DILocation(line: 67, column: 11, scope: !60) -!63 = !DILocation(line: 69, column: 15, scope: !60) -!64 = !DILocation(line: 70, column: 3, scope: !60) -!65 = !DILocation(line: 71, column: 3, scope: !60) -!66 = !DILocation(line: 73, column: 9, scope: !67) -!67 = distinct !DILexicalBlock(scope: !68, file: !2, line: 72, column: 5) -!68 = distinct !DILexicalBlock(scope: !60, file: !2, line: 71, column: 3) -!69 = !DILocation(line: 74, column: 5, scope: !67) -!70 = !DILocation(line: 76, column: 35, scope: !71) -!71 = distinct !DILexicalBlock(scope: !72, file: !2, line: 75, column: 7) -!72 = distinct !DILexicalBlock(scope: !67, file: !2, line: 74, column: 5) -!73 = !DILocation(line: 77, column: 7, scope: !71) -!74 = !DILocation(line: 81, column: 5, scope: !75) -!75 = distinct !DILexicalBlock(scope: !68, file: !2, line: 80, column: 5) -!76 = !DILocation(line: 85, column: 15, scope: !60) -!77 = !DILocation(line: 86, column: 3, scope: !60) -!78 = !DILocation(line: 87, column: 3, scope: !60) -!79 = !DILocation(line: 89, column: 35, scope: !80) -!80 = distinct !DILexicalBlock(scope: !81, file: !2, line: 88, column: 5) -!81 = distinct !DILexicalBlock(scope: !60, file: !2, line: 87, column: 3) -!82 = !DILocation(line: 90, column: 5, scope: !80) -!83 = !DILocation(line: 95, column: 3, scope: !60) -!84 = distinct !DISubprogram(name: "t3", linkageName: "t3", scope: !2, file: !2, line: 65, type: !6, scopeLine: 65, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!85 = !DILocation(line: 65, column: 12, scope: !84) -!86 = distinct !DISubprogram(name: "t4", linkageName: "t4", scope: !2, file: !2, line: 99, type: !6, scopeLine: 99, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!87 = !DILocation(line: 100, column: 14, scope: !86) -!88 = !DILocation(line: 103, column: 15, scope: !86) -!89 = !DILocation(line: 104, column: 3, scope: !86) -!90 = !DILocation(line: 105, column: 3, scope: !86) -!91 = !DILocation(line: 107, column: 5, scope: !92) -!92 = distinct !DILexicalBlock(scope: !93, file: !2, line: 106, column: 5) -!93 = distinct !DILexicalBlock(scope: !86, file: !2, line: 105, column: 3) -!94 = !DILocation(line: 112, column: 17, scope: !86) -!95 = !DILocation(line: 113, column: 17, scope: !86) -!96 = !DILocation(line: 114, column: 11, scope: !86) -!97 = !DILocation(line: 115, column: 3, scope: !86) -!98 = distinct !DISubprogram(name: "t4", linkageName: "t4", scope: !2, file: !2, line: 99, type: !6, scopeLine: 99, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!99 = !DILocation(line: 99, column: 12, scope: !98) -!100 = distinct !DISubprogram(name: "t5", linkageName: "t5", scope: !2, file: !2, line: 119, type: !6, scopeLine: 119, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!101 = !DILocation(line: 120, column: 14, scope: !100) -!102 = !DILocation(line: 121, column: 11, scope: !100) -!103 = !DILocation(line: 124, column: 17, scope: !100) -!104 = !DILocation(line: 125, column: 17, scope: !100) -!105 = !DILocation(line: 126, column: 3, scope: !100) -!106 = !DILocation(line: 127, column: 3, scope: !100) -!107 = !DILocation(line: 129, column: 9, scope: !108) -!108 = distinct !DILexicalBlock(scope: !109, file: !2, line: 128, column: 5) -!109 = distinct !DILexicalBlock(scope: !100, file: !2, line: 127, column: 3) -!110 = !DILocation(line: 130, column: 5, scope: !108) -!111 = !DILocation(line: 133, column: 35, scope: !112) -!112 = distinct !DILexicalBlock(scope: !113, file: !2, line: 132, column: 7) -!113 = distinct !DILexicalBlock(scope: !108, file: !2, line: 130, column: 5) -!114 = !DILocation(line: 134, column: 7, scope: !112) -!115 = !DILocation(line: 137, column: 5, scope: !116) -!116 = distinct !DILexicalBlock(scope: !109, file: !2, line: 136, column: 5) -!117 = !DILocation(line: 142, column: 13, scope: !100) -!118 = !DILocation(line: 143, column: 23, scope: !100) -!119 = !DILocation(line: 144, column: 18, scope: !100) -!120 = !DILocation(line: 145, column: 14, scope: !100) -!121 = !DILocation(line: 146, column: 23, scope: !100) -!122 = !DILocation(line: 147, column: 18, scope: !100) -!123 = !DILocation(line: 148, column: 5, scope: !100) -!124 = !DILocation(line: 149, column: 17, scope: !100) -!125 = !DILocation(line: 150, column: 3, scope: !100) -!126 = distinct !DISubprogram(name: "t5", linkageName: "t5", scope: !2, file: !2, line: 119, type: !6, scopeLine: 119, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!127 = !DILocation(line: 119, column: 12, scope: !126) -!128 = distinct !DISubprogram(name: "t6", linkageName: "t6", scope: !2, file: !2, line: 155, type: !6, scopeLine: 155, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!129 = !DILocation(line: 156, column: 14, scope: !128) -!130 = !DILocation(line: 162, column: 17, scope: !128) -!131 = !DILocation(line: 162, column: 34, scope: !128) -!132 = !DILocation(line: 163, column: 3, scope: !128) -!133 = !DILocation(line: 164, column: 3, scope: !128) -!134 = !DILocation(line: 166, column: 13, scope: !135) -!135 = distinct !DILexicalBlock(scope: !136, file: !2, line: 165, column: 5) -!136 = distinct !DILexicalBlock(scope: !128, file: !2, line: 164, column: 3) -!137 = !DILocation(line: 167, column: 10, scope: !135) -!138 = !DILocation(line: 168, column: 5, scope: !135) -!139 = !DILocation(line: 171, column: 43, scope: !140) -!140 = distinct !DILexicalBlock(scope: !141, file: !2, line: 170, column: 7) -!141 = distinct !DILexicalBlock(scope: !135, file: !2, line: 168, column: 5) -!142 = !DILocation(line: 172, column: 7, scope: !140) -!143 = !DILocation(line: 175, column: 31, scope: !144) -!144 = distinct !DILexicalBlock(scope: !136, file: !2, line: 174, column: 5) -!145 = !DILocation(line: 176, column: 5, scope: !144) -!146 = !DILocation(line: 179, column: 17, scope: !128) -!147 = !DILocation(line: 179, column: 34, scope: !128) -!148 = !DILocation(line: 180, column: 3, scope: !128) -!149 = !DILocation(line: 181, column: 3, scope: !128) -!150 = !DILocation(line: 183, column: 13, scope: !151) -!151 = distinct !DILexicalBlock(scope: !152, file: !2, line: 182, column: 5) -!152 = distinct !DILexicalBlock(scope: !128, file: !2, line: 181, column: 3) -!153 = !DILocation(line: 184, column: 10, scope: !151) -!154 = !DILocation(line: 185, column: 5, scope: !151) -!155 = !DILocation(line: 188, column: 43, scope: !156) -!156 = distinct !DILexicalBlock(scope: !157, file: !2, line: 187, column: 7) -!157 = distinct !DILexicalBlock(scope: !151, file: !2, line: 185, column: 5) -!158 = !DILocation(line: 189, column: 7, scope: !156) -!159 = !DILocation(line: 192, column: 31, scope: !160) -!160 = distinct !DILexicalBlock(scope: !152, file: !2, line: 191, column: 5) -!161 = !DILocation(line: 193, column: 5, scope: !160) -!162 = !DILocation(line: 196, column: 17, scope: !128) -!163 = !DILocation(line: 196, column: 34, scope: !128) -!164 = !DILocation(line: 197, column: 3, scope: !128) -!165 = !DILocation(line: 198, column: 3, scope: !128) -!166 = !DILocation(line: 200, column: 13, scope: !167) -!167 = distinct !DILexicalBlock(scope: !168, file: !2, line: 199, column: 5) -!168 = distinct !DILexicalBlock(scope: !128, file: !2, line: 198, column: 3) -!169 = !DILocation(line: 201, column: 10, scope: !167) -!170 = !DILocation(line: 202, column: 5, scope: !167) -!171 = !DILocation(line: 205, column: 43, scope: !172) -!172 = distinct !DILexicalBlock(scope: !173, file: !2, line: 204, column: 7) -!173 = distinct !DILexicalBlock(scope: !167, file: !2, line: 202, column: 5) -!174 = !DILocation(line: 206, column: 7, scope: !172) -!175 = !DILocation(line: 209, column: 31, scope: !176) -!176 = distinct !DILexicalBlock(scope: !168, file: !2, line: 208, column: 5) -!177 = !DILocation(line: 210, column: 5, scope: !176) -!178 = !DILocation(line: 214, column: 3, scope: !128) -!179 = distinct !DISubprogram(name: "t6", linkageName: "t6", scope: !2, file: !2, line: 155, type: !6, scopeLine: 155, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!180 = !DILocation(line: 155, column: 12, scope: !179) -!181 = distinct !DISubprogram(name: "t7", linkageName: "t7", scope: !2, file: !2, line: 219, type: !6, scopeLine: 219, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!182 = !DILocation(line: 220, column: 14, scope: !181) -!183 = !DILocation(line: 224, column: 17, scope: !181) -!184 = !DILocation(line: 224, column: 34, scope: !181) -!185 = !DILocation(line: 225, column: 3, scope: !181) -!186 = !DILocation(line: 226, column: 3, scope: !181) -!187 = !DILocation(line: 228, column: 13, scope: !188) -!188 = distinct !DILexicalBlock(scope: !189, file: !2, line: 227, column: 5) -!189 = distinct !DILexicalBlock(scope: !181, file: !2, line: 226, column: 3) -!190 = !DILocation(line: 229, column: 10, scope: !188) -!191 = !DILocation(line: 230, column: 5, scope: !188) -!192 = !DILocation(line: 233, column: 43, scope: !193) -!193 = distinct !DILexicalBlock(scope: !194, file: !2, line: 232, column: 7) -!194 = distinct !DILexicalBlock(scope: !188, file: !2, line: 230, column: 5) -!195 = !DILocation(line: 234, column: 7, scope: !193) -!196 = !DILocation(line: 237, column: 31, scope: !197) -!197 = distinct !DILexicalBlock(scope: !189, file: !2, line: 236, column: 5) -!198 = !DILocation(line: 238, column: 5, scope: !197) -!199 = !DILocation(line: 242, column: 17, scope: !181) -!200 = !DILocation(line: 243, column: 3, scope: !181) -!201 = !DILocation(line: 244, column: 3, scope: !181) -!202 = !DILocation(line: 246, column: 48, scope: !203) -!203 = distinct !DILexicalBlock(scope: !204, file: !2, line: 245, column: 5) -!204 = distinct !DILexicalBlock(scope: !181, file: !2, line: 244, column: 3) -!205 = !DILocation(line: 247, column: 7, scope: !203) -!206 = !DILocation(line: 252, column: 17, scope: !181) -!207 = !DILocation(line: 252, column: 34, scope: !181) -!208 = !DILocation(line: 253, column: 3, scope: !181) -!209 = !DILocation(line: 254, column: 3, scope: !181) -!210 = !DILocation(line: 256, column: 54, scope: !211) -!211 = distinct !DILexicalBlock(scope: !212, file: !2, line: 255, column: 5) -!212 = distinct !DILexicalBlock(scope: !181, file: !2, line: 254, column: 3) -!213 = !DILocation(line: 257, column: 7, scope: !211) -!214 = !DILocation(line: 262, column: 17, scope: !181) -!215 = !DILocation(line: 262, column: 34, scope: !181) -!216 = !DILocation(line: 263, column: 3, scope: !181) -!217 = !DILocation(line: 264, column: 3, scope: !181) -!218 = !DILocation(line: 266, column: 54, scope: !219) -!219 = distinct !DILexicalBlock(scope: !220, file: !2, line: 265, column: 5) -!220 = distinct !DILexicalBlock(scope: !181, file: !2, line: 264, column: 3) -!221 = !DILocation(line: 267, column: 7, scope: !219) -!222 = !DILocation(line: 272, column: 17, scope: !181) -!223 = !DILocation(line: 272, column: 34, scope: !181) -!224 = !DILocation(line: 273, column: 11, scope: !181) -!225 = !DILocation(line: 274, column: 3, scope: !181) -!226 = distinct !DISubprogram(name: "t7", linkageName: "t7", scope: !2, file: !2, line: 219, type: !6, scopeLine: 219, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!227 = !DILocation(line: 219, column: 12, scope: !226) -!228 = distinct !DISubprogram(name: "t8", linkageName: "t8", scope: !2, file: !2, line: 279, type: !6, scopeLine: 279, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!229 = !DILocation(line: 280, column: 14, scope: !228) -!230 = !DILocation(line: 285, column: 17, scope: !228) -!231 = !DILocation(line: 285, column: 34, scope: !228) -!232 = !DILocation(line: 286, column: 3, scope: !228) -!233 = !DILocation(line: 287, column: 3, scope: !228) -!234 = !DILocation(line: 289, column: 13, scope: !235) -!235 = distinct !DILexicalBlock(scope: !236, file: !2, line: 288, column: 5) -!236 = distinct !DILexicalBlock(scope: !228, file: !2, line: 287, column: 3) -!237 = !DILocation(line: 290, column: 10, scope: !235) -!238 = !DILocation(line: 291, column: 5, scope: !235) -!239 = !DILocation(line: 294, column: 43, scope: !240) -!240 = distinct !DILexicalBlock(scope: !241, file: !2, line: 293, column: 7) -!241 = distinct !DILexicalBlock(scope: !235, file: !2, line: 291, column: 5) -!242 = !DILocation(line: 295, column: 7, scope: !240) -!243 = !DILocation(line: 298, column: 31, scope: !244) -!244 = distinct !DILexicalBlock(scope: !236, file: !2, line: 297, column: 5) -!245 = !DILocation(line: 299, column: 5, scope: !244) -!246 = !DILocation(line: 302, column: 17, scope: !228) -!247 = !DILocation(line: 302, column: 34, scope: !228) -!248 = !DILocation(line: 303, column: 3, scope: !228) -!249 = !DILocation(line: 304, column: 3, scope: !228) -!250 = !DILocation(line: 306, column: 13, scope: !251) -!251 = distinct !DILexicalBlock(scope: !252, file: !2, line: 305, column: 5) -!252 = distinct !DILexicalBlock(scope: !228, file: !2, line: 304, column: 3) -!253 = !DILocation(line: 307, column: 10, scope: !251) -!254 = !DILocation(line: 308, column: 5, scope: !251) -!255 = !DILocation(line: 311, column: 43, scope: !256) -!256 = distinct !DILexicalBlock(scope: !257, file: !2, line: 310, column: 7) -!257 = distinct !DILexicalBlock(scope: !251, file: !2, line: 308, column: 5) -!258 = !DILocation(line: 312, column: 7, scope: !256) -!259 = !DILocation(line: 315, column: 31, scope: !260) -!260 = distinct !DILexicalBlock(scope: !252, file: !2, line: 314, column: 5) -!261 = !DILocation(line: 316, column: 5, scope: !260) -!262 = !DILocation(line: 320, column: 8, scope: !228) -!263 = !DILocation(line: 321, column: 3, scope: !228) -!264 = distinct !DISubprogram(name: "t8", linkageName: "t8", scope: !2, file: !2, line: 279, type: !6, scopeLine: 279, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!265 = !DILocation(line: 279, column: 12, scope: !264) -!266 = distinct !DISubprogram(name: "t9", linkageName: "t9", scope: !2, file: !2, line: 326, type: !6, scopeLine: 326, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!267 = !DILocation(line: 327, column: 14, scope: !266) -!268 = !DILocation(line: 330, column: 3, scope: !266) -!269 = !DILocation(line: 331, column: 13, scope: !266) -!270 = !DILocation(line: 332, column: 10, scope: !266) -!271 = !DILocation(line: 333, column: 14, scope: !266) -!272 = !DILocation(line: 334, column: 3, scope: !266) -!273 = !DILocation(line: 337, column: 5, scope: !274) -!274 = distinct !DILexicalBlock(scope: !275, file: !2, line: 336, column: 5) -!275 = distinct !DILexicalBlock(scope: !266, file: !2, line: 334, column: 3) -!276 = !DILocation(line: 341, column: 17, scope: !266) -!277 = !DILocation(line: 342, column: 13, scope: !266) -!278 = !DILocation(line: 343, column: 8, scope: !266) -!279 = !DILocation(line: 344, column: 3, scope: !266) -!280 = distinct !DISubprogram(name: "t9", linkageName: "t9", scope: !2, file: !2, line: 326, type: !6, scopeLine: 326, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!281 = !DILocation(line: 326, column: 12, scope: !280) -!282 = distinct !DISubprogram(name: "t10", linkageName: "t10", scope: !2, file: !2, line: 348, type: !6, scopeLine: 348, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!283 = !DILocation(line: 349, column: 15, scope: !282) -!284 = !DILocation(line: 353, column: 17, scope: !282) -!285 = !DILocation(line: 354, column: 3, scope: !282) -!286 = !DILocation(line: 355, column: 8, scope: !282) -!287 = !DILocation(line: 356, column: 3, scope: !282) -!288 = !DILocation(line: 358, column: 13, scope: !289) -!289 = distinct !DILexicalBlock(scope: !290, file: !2, line: 357, column: 5) -!290 = distinct !DILexicalBlock(scope: !282, file: !2, line: 356, column: 3) -!291 = !DILocation(line: 359, column: 10, scope: !289) -!292 = !DILocation(line: 360, column: 5, scope: !289) -!293 = !DILocation(line: 363, column: 37, scope: !294) -!294 = distinct !DILexicalBlock(scope: !295, file: !2, line: 362, column: 7) -!295 = distinct !DILexicalBlock(scope: !289, file: !2, line: 360, column: 5) -!296 = !DILocation(line: 364, column: 7, scope: !294) -!297 = !DILocation(line: 367, column: 25, scope: !298) -!298 = distinct !DILexicalBlock(scope: !290, file: !2, line: 366, column: 5) -!299 = !DILocation(line: 368, column: 5, scope: !298) -!300 = !DILocation(line: 372, column: 3, scope: !282) -!301 = distinct !DISubprogram(name: "t10", linkageName: "t10", scope: !2, file: !2, line: 348, type: !6, scopeLine: 348, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!302 = !DILocation(line: 348, column: 12, scope: !301) -!303 = distinct !DISubprogram(name: "t11", linkageName: "t11", scope: !2, file: !2, line: 377, type: !6, scopeLine: 377, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!304 = !DILocation(line: 378, column: 15, scope: !303) -!305 = !DILocation(line: 381, column: 3, scope: !303) -!306 = !DILocation(line: 382, column: 13, scope: !303) -!307 = !DILocation(line: 383, column: 10, scope: !303) -!308 = !DILocation(line: 384, column: 14, scope: !303) -!309 = !DILocation(line: 385, column: 3, scope: !303) -!310 = !DILocation(line: 388, column: 5, scope: !311) -!311 = distinct !DILexicalBlock(scope: !312, file: !2, line: 387, column: 5) -!312 = distinct !DILexicalBlock(scope: !303, file: !2, line: 385, column: 3) -!313 = !DILocation(line: 392, column: 8, scope: !303) -!314 = !DILocation(line: 393, column: 3, scope: !303) -!315 = distinct !DISubprogram(name: "t11", linkageName: "t11", scope: !2, file: !2, line: 377, type: !6, scopeLine: 377, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!316 = !DILocation(line: 377, column: 12, scope: !315) -!317 = distinct !DISubprogram(name: "t12", linkageName: "t12", scope: !2, file: !2, line: 397, type: !6, scopeLine: 397, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!318 = !DILocation(line: 398, column: 15, scope: !317) -!319 = !DILocation(line: 401, column: 3, scope: !317) -!320 = !DILocation(line: 402, column: 13, scope: !317) -!321 = !DILocation(line: 403, column: 10, scope: !317) -!322 = !DILocation(line: 404, column: 14, scope: !317) -!323 = !DILocation(line: 405, column: 3, scope: !317) -!324 = !DILocation(line: 408, column: 5, scope: !325) -!325 = distinct !DILexicalBlock(scope: !326, file: !2, line: 407, column: 5) -!326 = distinct !DILexicalBlock(scope: !317, file: !2, line: 405, column: 3) -!327 = !DILocation(line: 412, column: 8, scope: !317) -!328 = !DILocation(line: 413, column: 17, scope: !317) -!329 = !DILocation(line: 414, column: 3, scope: !317) -!330 = distinct !DISubprogram(name: "t12", linkageName: "t12", scope: !2, file: !2, line: 397, type: !6, scopeLine: 397, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!331 = !DILocation(line: 397, column: 12, scope: !330) -!332 = distinct !DISubprogram(name: "t13", linkageName: "t13", scope: !2, file: !2, line: 418, type: !6, scopeLine: 418, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!333 = !DILocation(line: 419, column: 15, scope: !332) -!334 = !DILocation(line: 422, column: 17, scope: !332) -!335 = !DILocation(line: 423, column: 3, scope: !332) -!336 = !DILocation(line: 424, column: 3, scope: !332) -!337 = !DILocation(line: 426, column: 14, scope: !338) -!338 = distinct !DILexicalBlock(scope: !339, file: !2, line: 425, column: 5) -!339 = distinct !DILexicalBlock(scope: !332, file: !2, line: 424, column: 3) -!340 = !DILocation(line: 427, column: 12, scope: !338) -!341 = !DILocation(line: 428, column: 16, scope: !338) -!342 = !DILocation(line: 429, column: 5, scope: !338) -!343 = !DILocation(line: 432, column: 43, scope: !344) -!344 = distinct !DILexicalBlock(scope: !345, file: !2, line: 431, column: 7) -!345 = distinct !DILexicalBlock(scope: !338, file: !2, line: 429, column: 5) -!346 = !DILocation(line: 433, column: 7, scope: !344) -!347 = !DILocation(line: 436, column: 5, scope: !348) -!348 = distinct !DILexicalBlock(scope: !339, file: !2, line: 435, column: 5) -!349 = !DILocation(line: 440, column: 8, scope: !332) -!350 = !DILocation(line: 442, column: 23, scope: !332) -!351 = !DILocation(line: 443, column: 13, scope: !332) -!352 = !DILocation(line: 444, column: 5, scope: !332) -!353 = !DILocation(line: 446, column: 13, scope: !332) -!354 = !DILocation(line: 447, column: 5, scope: !332) -!355 = !DILocation(line: 449, column: 3, scope: !332) -!356 = distinct !DISubprogram(name: "t13", linkageName: "t13", scope: !2, file: !2, line: 418, type: !6, scopeLine: 418, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!357 = !DILocation(line: 418, column: 12, scope: !356) -!358 = distinct !DISubprogram(name: "t14", linkageName: "t14", scope: !2, file: !2, line: 454, type: !6, scopeLine: 454, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!359 = !DILocation(line: 455, column: 15, scope: !358) -!360 = !DILocation(line: 458, column: 3, scope: !358) -!361 = !DILocation(line: 459, column: 13, scope: !358) -!362 = !DILocation(line: 460, column: 9, scope: !358) -!363 = !DILocation(line: 461, column: 14, scope: !358) -!364 = !DILocation(line: 462, column: 3, scope: !358) -!365 = !DILocation(line: 465, column: 5, scope: !366) -!366 = distinct !DILexicalBlock(scope: !367, file: !2, line: 464, column: 5) -!367 = distinct !DILexicalBlock(scope: !358, file: !2, line: 462, column: 3) -!368 = !DILocation(line: 469, column: 6, scope: !358) -!369 = !DILocation(line: 470, column: 2, scope: !358) -!370 = distinct !DISubprogram(name: "t14", linkageName: "t14", scope: !2, file: !2, line: 454, type: !6, scopeLine: 454, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!371 = !DILocation(line: 454, column: 12, scope: !370) -!372 = distinct !DISubprogram(name: "t15", linkageName: "t15", scope: !2, file: !2, line: 475, type: !6, scopeLine: 475, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!373 = !DILocation(line: 476, column: 15, scope: !372) -!374 = !DILocation(line: 479, column: 3, scope: !372) -!375 = !DILocation(line: 480, column: 13, scope: !372) -!376 = !DILocation(line: 481, column: 9, scope: !372) -!377 = !DILocation(line: 482, column: 12, scope: !372) -!378 = !DILocation(line: 483, column: 3, scope: !372) -!379 = !DILocation(line: 486, column: 34, scope: !380) -!380 = distinct !DILexicalBlock(scope: !381, file: !2, line: 485, column: 5) -!381 = distinct !DILexicalBlock(scope: !372, file: !2, line: 483, column: 3) -!382 = !DILocation(line: 487, column: 5, scope: !380) -!383 = !DILocation(line: 490, column: 17, scope: !372) -!384 = !DILocation(line: 491, column: 17, scope: !372) -!385 = !DILocation(line: 492, column: 9, scope: !372) -!386 = !DILocation(line: 493, column: 3, scope: !372) -!387 = !DILocation(line: 495, column: 15, scope: !388) -!388 = distinct !DILexicalBlock(scope: !389, file: !2, line: 494, column: 5) -!389 = distinct !DILexicalBlock(scope: !372, file: !2, line: 493, column: 3) -!390 = !DILocation(line: 496, column: 16, scope: !388) -!391 = !DILocation(line: 497, column: 5, scope: !388) -!392 = !DILocation(line: 499, column: 13, scope: !393) -!393 = distinct !DILexicalBlock(scope: !394, file: !2, line: 498, column: 7) -!394 = distinct !DILexicalBlock(scope: !388, file: !2, line: 497, column: 5) -!395 = !DILocation(line: 500, column: 7, scope: !393) -!396 = !DILocation(line: 502, column: 19, scope: !397) -!397 = distinct !DILexicalBlock(scope: !398, file: !2, line: 501, column: 9) -!398 = distinct !DILexicalBlock(scope: !393, file: !2, line: 500, column: 7) -!399 = !DILocation(line: 503, column: 16, scope: !397) -!400 = !DILocation(line: 504, column: 20, scope: !397) -!401 = !DILocation(line: 505, column: 9, scope: !397) -!402 = !DILocation(line: 508, column: 54, scope: !403) -!403 = distinct !DILexicalBlock(scope: !404, file: !2, line: 507, column: 11) -!404 = distinct !DILexicalBlock(scope: !397, file: !2, line: 505, column: 9) -!405 = !DILocation(line: 509, column: 11, scope: !403) -!406 = !DILocation(line: 512, column: 35, scope: !407) -!407 = distinct !DILexicalBlock(scope: !398, file: !2, line: 511, column: 9) -!408 = !DILocation(line: 513, column: 9, scope: !407) -!409 = !DILocation(line: 516, column: 42, scope: !410) -!410 = distinct !DILexicalBlock(scope: !394, file: !2, line: 515, column: 7) -!411 = !DILocation(line: 517, column: 7, scope: !410) -!412 = !DILocation(line: 520, column: 31, scope: !413) -!413 = distinct !DILexicalBlock(scope: !389, file: !2, line: 519, column: 5) -!414 = !DILocation(line: 521, column: 5, scope: !413) -!415 = !DILocation(line: 525, column: 17, scope: !372) -!416 = !DILocation(line: 525, column: 34, scope: !372) -!417 = !DILocation(line: 526, column: 17, scope: !372) -!418 = !DILocation(line: 526, column: 34, scope: !372) -!419 = !DILocation(line: 527, column: 17, scope: !372) -!420 = !DILocation(line: 527, column: 34, scope: !372) -!421 = !DILocation(line: 528, column: 12, scope: !372) -!422 = !DILocation(line: 528, column: 24, scope: !372) -!423 = !DILocation(line: 528, column: 36, scope: !372) -!424 = !DILocation(line: 528, column: 48, scope: !372) -!425 = !DILocation(line: 529, column: 8, scope: !372) -!426 = !DILocation(line: 530, column: 8, scope: !372) -!427 = !DILocation(line: 532, column: 15, scope: !372) -!428 = !DILocation(line: 533, column: 15, scope: !372) -!429 = !DILocation(line: 534, column: 15, scope: !372) -!430 = !DILocation(line: 535, column: 15, scope: !372) -!431 = !DILocation(line: 536, column: 15, scope: !372) -!432 = !DILocation(line: 537, column: 15, scope: !372) -!433 = !DILocation(line: 538, column: 15, scope: !372) -!434 = !DILocation(line: 539, column: 15, scope: !372) -!435 = !DILocation(line: 540, column: 5, scope: !372) -!436 = !DILocation(line: 541, column: 3, scope: !372) -!437 = distinct !DISubprogram(name: "t15", linkageName: "t15", scope: !2, file: !2, line: 475, type: !6, scopeLine: 475, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!438 = !DILocation(line: 475, column: 12, scope: !437) -!439 = distinct !DISubprogram(name: "t16", linkageName: "t16", scope: !2, file: !2, line: 545, type: !6, scopeLine: 545, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!440 = !DILocation(line: 546, column: 15, scope: !439) -!441 = !DILocation(line: 553, column: 17, scope: !439) -!442 = !DILocation(line: 553, column: 34, scope: !439) -!443 = !DILocation(line: 554, column: 17, scope: !439) -!444 = !DILocation(line: 554, column: 34, scope: !439) -!445 = !DILocation(line: 555, column: 17, scope: !439) -!446 = !DILocation(line: 555, column: 34, scope: !439) -!447 = !DILocation(line: 556, column: 17, scope: !439) -!448 = !DILocation(line: 556, column: 34, scope: !439) -!449 = !DILocation(line: 558, column: 3, scope: !439) -!450 = !DILocation(line: 559, column: 3, scope: !439) -!451 = !DILocation(line: 560, column: 3, scope: !439) -!452 = !DILocation(line: 561, column: 3, scope: !439) -!453 = !DILocation(line: 562, column: 12, scope: !439) -!454 = !DILocation(line: 562, column: 24, scope: !439) -!455 = !DILocation(line: 562, column: 36, scope: !439) -!456 = !DILocation(line: 562, column: 48, scope: !439) -!457 = !DILocation(line: 564, column: 8, scope: !439) -!458 = !DILocation(line: 566, column: 9, scope: !459) -!459 = distinct !DILexicalBlock(scope: !460, file: !2, line: 565, column: 9) -!460 = distinct !DILexicalBlock(scope: !439, file: !2, line: 564, column: 8) -!461 = !DILocation(line: 567, column: 17, scope: !462) -!462 = distinct !DILexicalBlock(scope: !460, file: !2, line: 567, column: 9) -!463 = !DILocation(line: 570, column: 8, scope: !439) -!464 = !DILocation(line: 572, column: 9, scope: !465) -!465 = distinct !DILexicalBlock(scope: !466, file: !2, line: 571, column: 9) -!466 = distinct !DILexicalBlock(scope: !439, file: !2, line: 570, column: 8) -!467 = !DILocation(line: 573, column: 17, scope: !468) -!468 = distinct !DILexicalBlock(scope: !466, file: !2, line: 573, column: 9) -!469 = !DILocation(line: 576, column: 8, scope: !439) -!470 = !DILocation(line: 578, column: 9, scope: !471) -!471 = distinct !DILexicalBlock(scope: !472, file: !2, line: 577, column: 9) -!472 = distinct !DILexicalBlock(scope: !439, file: !2, line: 576, column: 8) -!473 = !DILocation(line: 579, column: 17, scope: !474) -!474 = distinct !DILexicalBlock(scope: !472, file: !2, line: 579, column: 9) -!475 = !DILocation(line: 582, column: 8, scope: !439) -!476 = !DILocation(line: 584, column: 9, scope: !477) -!477 = distinct !DILexicalBlock(scope: !478, file: !2, line: 583, column: 9) -!478 = distinct !DILexicalBlock(scope: !439, file: !2, line: 582, column: 8) -!479 = !DILocation(line: 585, column: 17, scope: !480) -!480 = distinct !DILexicalBlock(scope: !478, file: !2, line: 585, column: 9) -!481 = !DILocation(line: 589, column: 14, scope: !439) -!482 = !DILocation(line: 590, column: 14, scope: !439) -!483 = !DILocation(line: 591, column: 5, scope: !439) -!484 = !DILocation(line: 593, column: 3, scope: !439) -!485 = !DILocation(line: 596, column: 5, scope: !486) -!486 = distinct !DILexicalBlock(scope: !487, file: !2, line: 595, column: 5) -!487 = distinct !DILexicalBlock(scope: !439, file: !2, line: 593, column: 3) -!488 = !DILocation(line: 601, column: 14, scope: !439) -!489 = !DILocation(line: 602, column: 17, scope: !439) -!490 = !DILocation(line: 603, column: 13, scope: !439) -!491 = !DILocation(line: 604, column: 5, scope: !439) -!492 = !DILocation(line: 606, column: 3, scope: !439) -!493 = distinct !DISubprogram(name: "t16", linkageName: "t16", scope: !2, file: !2, line: 545, type: !6, scopeLine: 545, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!494 = !DILocation(line: 545, column: 12, scope: !493) -!495 = distinct !DISubprogram(name: "t17", linkageName: "t17", scope: !2, file: !2, line: 611, type: !6, scopeLine: 611, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!496 = !DILocation(line: 613, column: 15, scope: !495) -!497 = !DILocation(line: 617, column: 10, scope: !495) -!498 = !DILocation(line: 618, column: 3, scope: !495) -!499 = !DILocation(line: 619, column: 3, scope: !495) -!500 = !DILocation(line: 622, column: 5, scope: !501) -!501 = distinct !DILexicalBlock(scope: !502, file: !2, line: 621, column: 5) -!502 = distinct !DILexicalBlock(scope: !495, file: !2, line: 619, column: 3) -!503 = !DILocation(line: 626, column: 3, scope: !495) -!504 = distinct !DISubprogram(name: "t17", linkageName: "t17", scope: !2, file: !2, line: 611, type: !6, scopeLine: 611, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!505 = !DILocation(line: 611, column: 12, scope: !504) -!506 = distinct !DISubprogram(name: "t18", linkageName: "t18", scope: !2, file: !2, line: 630, type: !6, scopeLine: 630, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!507 = !DILocation(line: 632, column: 15, scope: !506) -!508 = !DILocation(line: 636, column: 10, scope: !506) -!509 = !DILocation(line: 637, column: 3, scope: !506) -!510 = !DILocation(line: 638, column: 3, scope: !506) -!511 = !DILocation(line: 640, column: 5, scope: !512) -!512 = distinct !DILexicalBlock(scope: !513, file: !2, line: 639, column: 5) -!513 = distinct !DILexicalBlock(scope: !506, file: !2, line: 638, column: 3) -!514 = distinct !DISubprogram(name: "t18", linkageName: "t18", scope: !2, file: !2, line: 630, type: !6, scopeLine: 630, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!515 = !DILocation(line: 630, column: 12, scope: !514) +!3 = distinct !DISubprogram(name: "$fundef_27", linkageName: "$fundef_27", scope: !4, file: !4, line: 8, type: !5, scopeLine: 8, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!4 = !DIFile(filename: "BoolUtils.scillib", directory: "../src/stdlib") +!5 = !DISubroutineType(types: !6) +!6 = !{!7} +!7 = !DIBasicType(tag: DW_TAG_unspecified_type, name: "void") +!8 = !{} +!9 = !DILocalVariable(name: "c", scope: !3, file: !4, line: 7, type: !10) +!10 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "Bool", baseType: !11, size: 8, align: 8, dwarfAddressSpace: 0) +!11 = !DIBasicType(name: "Bool", size: 8) +!12 = !DILocation(line: 7, column: 8, scope: !3) +!13 = !DILocalVariable(name: "$retval_28", scope: !3, file: !4, line: 8, type: !10) +!14 = !DILocation(line: 8, column: 5, scope: !3) +!15 = !DILocation(line: 9, column: 16, scope: !16) +!16 = distinct !DILexicalBlock(scope: !17, file: !4, line: 9, column: 7) +!17 = distinct !DILexicalBlock(scope: !3, file: !4, line: 8, column: 5) +!18 = !DILocation(line: 10, column: 16, scope: !19) +!19 = distinct !DILexicalBlock(scope: !17, file: !4, line: 10, column: 7) +!20 = distinct !DISubprogram(name: "$fundef_25", linkageName: "$fundef_25", scope: !4, file: !4, line: 7, type: !5, scopeLine: 7, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!21 = !DILocalVariable(name: "b", scope: !20, file: !4, line: 6, type: !10) +!22 = !DILocation(line: 6, column: 8, scope: !20) +!23 = !DILocation(line: 8, column: 5, scope: !20) +!24 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !25, file: !25, type: !5, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!25 = !DIFile(filename: ".", directory: ".") +!26 = !DILocation(line: 0, scope: !24) +!27 = !DILocation(line: 7, column: 3, scope: !24) +!28 = distinct !DISubprogram(name: "_deploy_ops", linkageName: "_deploy_ops", scope: !25, file: !25, type: !5, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!29 = !DILocalVariable(name: "$f_s1_29", scope: !28, file: !2, line: 11, type: !30) +!30 = !DIBasicType(name: "String", size: 16) +!31 = !DILocation(line: 11, column: 7, scope: !28) +!32 = !DILocation(line: 11, column: 27, scope: !28) +!33 = !DILocalVariable(name: "$f_m1_30", scope: !28, file: !2, line: 12, type: !34) +!34 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "Map (String) (String)", baseType: !35, size: 8, align: 8, dwarfAddressSpace: 0) +!35 = !DIBasicType(name: "Map (String) (String)", size: 8) +!36 = !DILocation(line: 12, column: 7, scope: !28) +!37 = !DILocation(line: 12, column: 34, scope: !28) +!38 = !DILocalVariable(name: "$f_m2_31", scope: !28, file: !2, line: 13, type: !39) +!39 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "Map (String) (Map (String) (String))", baseType: !40, size: 8, align: 8, dwarfAddressSpace: 0) +!40 = !DIBasicType(name: "Map (String) (Map (String) (String))", size: 8) +!41 = !DILocation(line: 13, column: 7, scope: !28) +!42 = !DILocation(line: 13, column: 47, scope: !28) +!43 = !DILocalVariable(name: "$f_m3_32", scope: !28, file: !2, line: 14, type: !44) +!44 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "Map (String) (Map (String) (Map (String) (String)))", baseType: !45, size: 8, align: 8, dwarfAddressSpace: 0) +!45 = !DIBasicType(name: "Map (String) (Map (String) (Map (String) (String)))", size: 8) +!46 = !DILocation(line: 14, column: 7, scope: !28) +!47 = !DILocation(line: 14, column: 60, scope: !28) +!48 = !DILocalVariable(name: "$f_m_33", scope: !28, file: !2, line: 15, type: !39) +!49 = !DILocation(line: 15, column: 7, scope: !28) +!50 = !DILocation(line: 15, column: 46, scope: !28) +!51 = distinct !DISubprogram(name: "fail", linkageName: "fail", scope: !2, file: !2, line: 17, type: !5, scopeLine: 17, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!52 = !DILocalVariable(name: "tname", scope: !51, file: !2, line: 17, type: !30) +!53 = !DILocation(line: 17, column: 17, scope: !51) +!54 = !DILocalVariable(name: "_sender", scope: !51, file: !2, line: 17, type: !55) +!55 = !DIBasicType(name: "ByStr20 with end", size: 20) +!56 = !DILocation(line: 17, column: 11, scope: !51) +!57 = !DILocalVariable(name: "_origin", scope: !51, file: !2, line: 17, type: !55) +!58 = !DILocalVariable(name: "_amount", scope: !51, file: !2, line: 17, type: !59) +!59 = !DIBasicType(name: "Uint128", size: 16) +!60 = !DILocalVariable(name: "e", scope: !51, file: !2, line: 18, type: !61) +!61 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "Exception", baseType: !62, size: 8, align: 8, dwarfAddressSpace: 0) +!62 = !DIBasicType(name: "Exception", size: 8) +!63 = !DILocation(line: 18, column: 3, scope: !51) +!64 = !DILocation(line: 18, column: 7, scope: !51) +!65 = !DILocation(line: 19, column: 3, scope: !51) +!66 = distinct !DISubprogram(name: "fail_msg", linkageName: "fail_msg", scope: !2, file: !2, line: 22, type: !5, scopeLine: 22, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!67 = !DILocalVariable(name: "msg", scope: !66, file: !2, line: 22, type: !30) +!68 = !DILocation(line: 22, column: 37, scope: !66) +!69 = !DILocalVariable(name: "tname", scope: !66, file: !2, line: 22, type: !30) +!70 = !DILocation(line: 22, column: 21, scope: !66) +!71 = !DILocalVariable(name: "_sender", scope: !66, file: !2, line: 22, type: !55) +!72 = !DILocation(line: 22, column: 11, scope: !66) +!73 = !DILocalVariable(name: "_origin", scope: !66, file: !2, line: 22, type: !55) +!74 = !DILocalVariable(name: "_amount", scope: !66, file: !2, line: 22, type: !59) +!75 = !DILocalVariable(name: "e", scope: !66, file: !2, line: 23, type: !61) +!76 = !DILocation(line: 23, column: 3, scope: !66) +!77 = !DILocation(line: 23, column: 7, scope: !66) +!78 = !DILocation(line: 24, column: 3, scope: !66) +!79 = distinct !DISubprogram(name: "t1", linkageName: "t1", scope: !2, file: !2, line: 28, type: !5, scopeLine: 28, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!80 = !DILocalVariable(name: "_sender", scope: !79, file: !2, line: 28, type: !55) +!81 = !DILocation(line: 28, column: 12, scope: !79) +!82 = !DILocalVariable(name: "_origin", scope: !79, file: !2, line: 28, type: !55) +!83 = !DILocalVariable(name: "_amount", scope: !79, file: !2, line: 28, type: !59) +!84 = !DILocalVariable(name: "tname", scope: !79, file: !2, line: 30, type: !30) +!85 = !DILocation(line: 30, column: 3, scope: !79) +!86 = !DILocation(line: 30, column: 14, scope: !79) +!87 = !DILocalVariable(name: "f", scope: !79, file: !2, line: 31, type: !30) +!88 = !DILocation(line: 31, column: 3, scope: !79) +!89 = !DILocalVariable(name: "s", scope: !79, file: !2, line: 32, type: !30) +!90 = !DILocation(line: 32, column: 3, scope: !79) +!91 = !DILocation(line: 32, column: 11, scope: !79) +!92 = !DILocalVariable(name: "t", scope: !79, file: !2, line: 33, type: !10) +!93 = !DILocation(line: 33, column: 3, scope: !79) +!94 = !DILocation(line: 33, column: 7, scope: !79) +!95 = !DILocation(line: 34, column: 3, scope: !79) +!96 = !DILocation(line: 36, column: 5, scope: !97) +!97 = distinct !DILexicalBlock(scope: !98, file: !2, line: 35, column: 5) +!98 = distinct !DILexicalBlock(scope: !79, file: !2, line: 34, column: 3) +!99 = !DILocalVariable(name: "s2", scope: !79, file: !2, line: 41, type: !30) +!100 = !DILocation(line: 41, column: 3, scope: !79) +!101 = !DILocation(line: 41, column: 12, scope: !79) +!102 = !DILocation(line: 42, column: 3, scope: !79) +!103 = distinct !DISubprogram(name: "t1", linkageName: "t1", scope: !2, file: !2, line: 28, type: !5, scopeLine: 28, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!104 = !DILocation(line: 28, column: 12, scope: !103) +!105 = distinct !DISubprogram(name: "t2", linkageName: "t2", scope: !2, file: !2, line: 46, type: !5, scopeLine: 46, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!106 = !DILocalVariable(name: "_sender", scope: !105, file: !2, line: 46, type: !55) +!107 = !DILocation(line: 46, column: 12, scope: !105) +!108 = !DILocalVariable(name: "_origin", scope: !105, file: !2, line: 46, type: !55) +!109 = !DILocalVariable(name: "_amount", scope: !105, file: !2, line: 46, type: !59) +!110 = !DILocalVariable(name: "tname", scope: !105, file: !2, line: 48, type: !30) +!111 = !DILocation(line: 48, column: 3, scope: !105) +!112 = !DILocation(line: 48, column: 14, scope: !105) +!113 = !DILocalVariable(name: "f", scope: !105, file: !2, line: 49, type: !30) +!114 = !DILocation(line: 49, column: 3, scope: !105) +!115 = !DILocalVariable(name: "s", scope: !105, file: !2, line: 50, type: !30) +!116 = !DILocation(line: 50, column: 3, scope: !105) +!117 = !DILocation(line: 50, column: 11, scope: !105) +!118 = !DILocalVariable(name: "t", scope: !105, file: !2, line: 51, type: !10) +!119 = !DILocation(line: 51, column: 3, scope: !105) +!120 = !DILocation(line: 51, column: 7, scope: !105) +!121 = !DILocation(line: 52, column: 3, scope: !105) +!122 = !DILocation(line: 54, column: 5, scope: !123) +!123 = distinct !DILexicalBlock(scope: !124, file: !2, line: 53, column: 5) +!124 = distinct !DILexicalBlock(scope: !105, file: !2, line: 52, column: 3) +!125 = !DILocalVariable(name: "key1", scope: !105, file: !2, line: 59, type: !30) +!126 = !DILocation(line: 59, column: 3, scope: !105) +!127 = !DILocation(line: 59, column: 15, scope: !105) +!128 = !DILocalVariable(name: "val1", scope: !105, file: !2, line: 60, type: !30) +!129 = !DILocation(line: 60, column: 3, scope: !105) +!130 = !DILocation(line: 60, column: 14, scope: !105) +!131 = !DILocation(line: 61, column: 3, scope: !105) +!132 = distinct !DISubprogram(name: "t2", linkageName: "t2", scope: !2, file: !2, line: 46, type: !5, scopeLine: 46, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!133 = !DILocation(line: 46, column: 12, scope: !132) +!134 = distinct !DISubprogram(name: "t3", linkageName: "t3", scope: !2, file: !2, line: 65, type: !5, scopeLine: 65, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!135 = !DILocalVariable(name: "_sender", scope: !134, file: !2, line: 65, type: !55) +!136 = !DILocation(line: 65, column: 12, scope: !134) +!137 = !DILocalVariable(name: "_origin", scope: !134, file: !2, line: 65, type: !55) +!138 = !DILocalVariable(name: "_amount", scope: !134, file: !2, line: 65, type: !59) +!139 = !DILocalVariable(name: "tname", scope: !134, file: !2, line: 66, type: !30) +!140 = !DILocation(line: 66, column: 3, scope: !134) +!141 = !DILocation(line: 66, column: 14, scope: !134) +!142 = !DILocalVariable(name: "s", scope: !134, file: !2, line: 67, type: !30) +!143 = !DILocation(line: 67, column: 3, scope: !134) +!144 = !DILocation(line: 67, column: 11, scope: !134) +!145 = !DILocalVariable(name: "key1", scope: !134, file: !2, line: 69, type: !30) +!146 = !DILocation(line: 69, column: 3, scope: !134) +!147 = !DILocation(line: 69, column: 15, scope: !134) +!148 = !DILocalVariable(name: "val1", scope: !134, file: !2, line: 70, type: !149) +!149 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "Option (String)", baseType: !150, size: 8, align: 8, dwarfAddressSpace: 0) +!150 = !DIBasicType(name: "Option (String)", size: 8) +!151 = !DILocation(line: 70, column: 3, scope: !134) +!152 = !DILocation(line: 71, column: 3, scope: !134) +!153 = !DILocalVariable(name: "t", scope: !154, file: !2, line: 73, type: !10) +!154 = distinct !DILexicalBlock(scope: !155, file: !2, line: 72, column: 5) +!155 = distinct !DILexicalBlock(scope: !134, file: !2, line: 71, column: 3) +!156 = !DILocation(line: 73, column: 5, scope: !154) +!157 = !DILocation(line: 73, column: 9, scope: !154) +!158 = !DILocation(line: 74, column: 5, scope: !154) +!159 = !DILocalVariable(name: "m", scope: !160, file: !2, line: 76, type: !30) +!160 = distinct !DILexicalBlock(scope: !161, file: !2, line: 75, column: 7) +!161 = distinct !DILexicalBlock(scope: !154, file: !2, line: 74, column: 5) +!162 = !DILocation(line: 76, column: 7, scope: !160) +!163 = !DILocation(line: 76, column: 35, scope: !160) +!164 = !DILocation(line: 77, column: 7, scope: !160) +!165 = !DILocation(line: 81, column: 5, scope: !166) +!166 = distinct !DILexicalBlock(scope: !155, file: !2, line: 80, column: 5) +!167 = !DILocalVariable(name: "key2", scope: !134, file: !2, line: 85, type: !30) +!168 = !DILocation(line: 85, column: 3, scope: !134) +!169 = !DILocation(line: 85, column: 15, scope: !134) +!170 = !DILocalVariable(name: "val2", scope: !134, file: !2, line: 86, type: !149) +!171 = !DILocation(line: 86, column: 3, scope: !134) +!172 = !DILocation(line: 87, column: 3, scope: !134) +!173 = !DILocalVariable(name: "m", scope: !174, file: !2, line: 89, type: !30) +!174 = distinct !DILexicalBlock(scope: !175, file: !2, line: 88, column: 5) +!175 = distinct !DILexicalBlock(scope: !134, file: !2, line: 87, column: 3) +!176 = !DILocation(line: 89, column: 5, scope: !174) +!177 = !DILocation(line: 89, column: 35, scope: !174) +!178 = !DILocation(line: 90, column: 5, scope: !174) +!179 = !DILocation(line: 95, column: 3, scope: !134) +!180 = distinct !DISubprogram(name: "t3", linkageName: "t3", scope: !2, file: !2, line: 65, type: !5, scopeLine: 65, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!181 = !DILocation(line: 65, column: 12, scope: !180) +!182 = distinct !DISubprogram(name: "t4", linkageName: "t4", scope: !2, file: !2, line: 99, type: !5, scopeLine: 99, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!183 = !DILocalVariable(name: "_sender", scope: !182, file: !2, line: 99, type: !55) +!184 = !DILocation(line: 99, column: 12, scope: !182) +!185 = !DILocalVariable(name: "_origin", scope: !182, file: !2, line: 99, type: !55) +!186 = !DILocalVariable(name: "_amount", scope: !182, file: !2, line: 99, type: !59) +!187 = !DILocalVariable(name: "tname", scope: !182, file: !2, line: 100, type: !30) +!188 = !DILocation(line: 100, column: 3, scope: !182) +!189 = !DILocation(line: 100, column: 14, scope: !182) +!190 = !DILocalVariable(name: "key1", scope: !182, file: !2, line: 103, type: !30) +!191 = !DILocation(line: 103, column: 3, scope: !182) +!192 = !DILocation(line: 103, column: 15, scope: !182) +!193 = !DILocalVariable(name: "key1_found", scope: !182, file: !2, line: 104, type: !10) +!194 = !DILocation(line: 104, column: 3, scope: !182) +!195 = !DILocation(line: 105, column: 3, scope: !182) +!196 = !DILocation(line: 107, column: 5, scope: !197) +!197 = distinct !DILexicalBlock(scope: !198, file: !2, line: 106, column: 5) +!198 = distinct !DILexicalBlock(scope: !182, file: !2, line: 105, column: 3) +!199 = !DILocalVariable(name: "key1a", scope: !182, file: !2, line: 112, type: !30) +!200 = !DILocation(line: 112, column: 3, scope: !182) +!201 = !DILocation(line: 112, column: 17, scope: !182) +!202 = !DILocalVariable(name: "key2a", scope: !182, file: !2, line: 113, type: !30) +!203 = !DILocation(line: 113, column: 3, scope: !182) +!204 = !DILocation(line: 113, column: 17, scope: !182) +!205 = !DILocalVariable(name: "s", scope: !182, file: !2, line: 114, type: !30) +!206 = !DILocation(line: 114, column: 3, scope: !182) +!207 = !DILocation(line: 114, column: 11, scope: !182) +!208 = !DILocation(line: 115, column: 3, scope: !182) +!209 = distinct !DISubprogram(name: "t4", linkageName: "t4", scope: !2, file: !2, line: 99, type: !5, scopeLine: 99, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!210 = !DILocation(line: 99, column: 12, scope: !209) +!211 = distinct !DISubprogram(name: "t5", linkageName: "t5", scope: !2, file: !2, line: 119, type: !5, scopeLine: 119, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!212 = !DILocalVariable(name: "_sender", scope: !211, file: !2, line: 119, type: !55) +!213 = !DILocation(line: 119, column: 12, scope: !211) +!214 = !DILocalVariable(name: "_origin", scope: !211, file: !2, line: 119, type: !55) +!215 = !DILocalVariable(name: "_amount", scope: !211, file: !2, line: 119, type: !59) +!216 = !DILocalVariable(name: "tname", scope: !211, file: !2, line: 120, type: !30) +!217 = !DILocation(line: 120, column: 3, scope: !211) +!218 = !DILocation(line: 120, column: 14, scope: !211) +!219 = !DILocalVariable(name: "s", scope: !211, file: !2, line: 121, type: !30) +!220 = !DILocation(line: 121, column: 3, scope: !211) +!221 = !DILocation(line: 121, column: 11, scope: !211) +!222 = !DILocalVariable(name: "key1a", scope: !211, file: !2, line: 124, type: !30) +!223 = !DILocation(line: 124, column: 3, scope: !211) +!224 = !DILocation(line: 124, column: 17, scope: !211) +!225 = !DILocalVariable(name: "key2a", scope: !211, file: !2, line: 125, type: !30) +!226 = !DILocation(line: 125, column: 3, scope: !211) +!227 = !DILocation(line: 125, column: 17, scope: !211) +!228 = !DILocalVariable(name: "val", scope: !211, file: !2, line: 126, type: !149) +!229 = !DILocation(line: 126, column: 3, scope: !211) +!230 = !DILocation(line: 127, column: 3, scope: !211) +!231 = !DILocalVariable(name: "t", scope: !232, file: !2, line: 129, type: !10) +!232 = distinct !DILexicalBlock(scope: !233, file: !2, line: 128, column: 5) +!233 = distinct !DILexicalBlock(scope: !211, file: !2, line: 127, column: 3) +!234 = !DILocation(line: 129, column: 5, scope: !232) +!235 = !DILocation(line: 129, column: 9, scope: !232) +!236 = !DILocation(line: 130, column: 5, scope: !232) +!237 = !DILocalVariable(name: "m", scope: !238, file: !2, line: 133, type: !30) +!238 = distinct !DILexicalBlock(scope: !239, file: !2, line: 132, column: 7) +!239 = distinct !DILexicalBlock(scope: !232, file: !2, line: 130, column: 5) +!240 = !DILocation(line: 133, column: 7, scope: !238) +!241 = !DILocation(line: 133, column: 35, scope: !238) +!242 = !DILocation(line: 134, column: 7, scope: !238) +!243 = !DILocation(line: 137, column: 5, scope: !244) +!244 = distinct !DILexicalBlock(scope: !233, file: !2, line: 136, column: 5) +!245 = !DILocalVariable(name: "l_m2", scope: !211, file: !2, line: 141, type: !34) +!246 = !DILocation(line: 141, column: 3, scope: !211) +!247 = !DILocalVariable(name: "e", scope: !211, file: !2, line: 142, type: !34) +!248 = !DILocation(line: 142, column: 9, scope: !211) +!249 = !DILocation(line: 142, column: 13, scope: !211) +!250 = !DILocalVariable(name: "key2b", scope: !211, file: !2, line: 143, type: !30) +!251 = !DILocation(line: 143, column: 9, scope: !211) +!252 = !DILocation(line: 143, column: 23, scope: !211) +!253 = !DILocalVariable(name: "s1", scope: !211, file: !2, line: 144, type: !30) +!254 = !DILocation(line: 144, column: 9, scope: !211) +!255 = !DILocation(line: 144, column: 18, scope: !211) +!256 = !DILocalVariable(name: "m1", scope: !211, file: !2, line: 145, type: !34) +!257 = !DILocation(line: 145, column: 9, scope: !211) +!258 = !DILocation(line: 145, column: 14, scope: !211) +!259 = !DILocalVariable(name: "key2c", scope: !211, file: !2, line: 146, type: !30) +!260 = !DILocation(line: 146, column: 9, scope: !211) +!261 = !DILocation(line: 146, column: 23, scope: !211) +!262 = !DILocalVariable(name: "s2", scope: !211, file: !2, line: 147, type: !30) +!263 = !DILocation(line: 147, column: 9, scope: !211) +!264 = !DILocation(line: 147, column: 18, scope: !211) +!265 = !DILocation(line: 148, column: 5, scope: !211) +!266 = !DILocalVariable(name: "key1b", scope: !211, file: !2, line: 149, type: !30) +!267 = !DILocation(line: 149, column: 3, scope: !211) +!268 = !DILocation(line: 149, column: 17, scope: !211) +!269 = !DILocation(line: 150, column: 3, scope: !211) +!270 = distinct !DISubprogram(name: "t5", linkageName: "t5", scope: !2, file: !2, line: 119, type: !5, scopeLine: 119, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!271 = !DILocation(line: 119, column: 12, scope: !270) +!272 = distinct !DISubprogram(name: "t6", linkageName: "t6", scope: !2, file: !2, line: 155, type: !5, scopeLine: 155, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!273 = !DILocalVariable(name: "_sender", scope: !272, file: !2, line: 155, type: !55) +!274 = !DILocation(line: 155, column: 12, scope: !272) +!275 = !DILocalVariable(name: "_origin", scope: !272, file: !2, line: 155, type: !55) +!276 = !DILocalVariable(name: "_amount", scope: !272, file: !2, line: 155, type: !59) +!277 = !DILocalVariable(name: "tname", scope: !272, file: !2, line: 156, type: !30) +!278 = !DILocation(line: 156, column: 3, scope: !272) +!279 = !DILocation(line: 156, column: 14, scope: !272) +!280 = !DILocalVariable(name: "key1a", scope: !272, file: !2, line: 162, type: !30) +!281 = !DILocation(line: 162, column: 3, scope: !272) +!282 = !DILocation(line: 162, column: 17, scope: !272) +!283 = !DILocalVariable(name: "key2a", scope: !272, file: !2, line: 162, type: !30) +!284 = !DILocation(line: 162, column: 20, scope: !272) +!285 = !DILocation(line: 162, column: 34, scope: !272) +!286 = !DILocalVariable(name: "c1", scope: !272, file: !2, line: 163, type: !149) +!287 = !DILocation(line: 163, column: 3, scope: !272) +!288 = !DILocation(line: 164, column: 3, scope: !272) +!289 = !DILocalVariable(name: "v", scope: !290, file: !2, line: 166, type: !30) +!290 = distinct !DILexicalBlock(scope: !291, file: !2, line: 165, column: 5) +!291 = distinct !DILexicalBlock(scope: !272, file: !2, line: 164, column: 3) +!292 = !DILocation(line: 166, column: 5, scope: !290) +!293 = !DILocation(line: 166, column: 13, scope: !290) +!294 = !DILocalVariable(name: "eq", scope: !290, file: !2, line: 167, type: !10) +!295 = !DILocation(line: 167, column: 5, scope: !290) +!296 = !DILocation(line: 167, column: 10, scope: !290) +!297 = !DILocation(line: 168, column: 5, scope: !290) +!298 = !DILocalVariable(name: "m", scope: !299, file: !2, line: 171, type: !30) +!299 = distinct !DILexicalBlock(scope: !300, file: !2, line: 170, column: 7) +!300 = distinct !DILexicalBlock(scope: !290, file: !2, line: 168, column: 5) +!301 = !DILocation(line: 171, column: 7, scope: !299) +!302 = !DILocation(line: 171, column: 43, scope: !299) +!303 = !DILocation(line: 172, column: 7, scope: !299) +!304 = !DILocalVariable(name: "m", scope: !305, file: !2, line: 175, type: !30) +!305 = distinct !DILexicalBlock(scope: !291, file: !2, line: 174, column: 5) +!306 = !DILocation(line: 175, column: 5, scope: !305) +!307 = !DILocation(line: 175, column: 31, scope: !305) +!308 = !DILocation(line: 176, column: 5, scope: !305) +!309 = !DILocalVariable(name: "key1b", scope: !272, file: !2, line: 179, type: !30) +!310 = !DILocation(line: 179, column: 3, scope: !272) +!311 = !DILocation(line: 179, column: 17, scope: !272) +!312 = !DILocalVariable(name: "key2b", scope: !272, file: !2, line: 179, type: !30) +!313 = !DILocation(line: 179, column: 20, scope: !272) +!314 = !DILocation(line: 179, column: 34, scope: !272) +!315 = !DILocalVariable(name: "$c1_2", scope: !272, file: !2, line: 180, type: !149) +!316 = !DILocation(line: 180, column: 3, scope: !272) +!317 = !DILocation(line: 181, column: 3, scope: !272) +!318 = !DILocalVariable(name: "v", scope: !319, file: !2, line: 183, type: !30) +!319 = distinct !DILexicalBlock(scope: !320, file: !2, line: 182, column: 5) +!320 = distinct !DILexicalBlock(scope: !272, file: !2, line: 181, column: 3) +!321 = !DILocation(line: 183, column: 5, scope: !319) +!322 = !DILocation(line: 183, column: 13, scope: !319) +!323 = !DILocalVariable(name: "eq", scope: !319, file: !2, line: 184, type: !10) +!324 = !DILocation(line: 184, column: 5, scope: !319) +!325 = !DILocation(line: 184, column: 10, scope: !319) +!326 = !DILocation(line: 185, column: 5, scope: !319) +!327 = !DILocalVariable(name: "m", scope: !328, file: !2, line: 188, type: !30) +!328 = distinct !DILexicalBlock(scope: !329, file: !2, line: 187, column: 7) +!329 = distinct !DILexicalBlock(scope: !319, file: !2, line: 185, column: 5) +!330 = !DILocation(line: 188, column: 7, scope: !328) +!331 = !DILocation(line: 188, column: 43, scope: !328) +!332 = !DILocation(line: 189, column: 7, scope: !328) +!333 = !DILocalVariable(name: "m", scope: !334, file: !2, line: 192, type: !30) +!334 = distinct !DILexicalBlock(scope: !320, file: !2, line: 191, column: 5) +!335 = !DILocation(line: 192, column: 5, scope: !334) +!336 = !DILocation(line: 192, column: 31, scope: !334) +!337 = !DILocation(line: 193, column: 5, scope: !334) +!338 = !DILocalVariable(name: "$key1b_3", scope: !272, file: !2, line: 196, type: !30) +!339 = !DILocation(line: 196, column: 3, scope: !272) +!340 = !DILocation(line: 196, column: 17, scope: !272) +!341 = !DILocalVariable(name: "key2c", scope: !272, file: !2, line: 196, type: !30) +!342 = !DILocation(line: 196, column: 20, scope: !272) +!343 = !DILocation(line: 196, column: 34, scope: !272) +!344 = !DILocalVariable(name: "$c1_4", scope: !272, file: !2, line: 197, type: !149) +!345 = !DILocation(line: 197, column: 3, scope: !272) +!346 = !DILocation(line: 198, column: 3, scope: !272) +!347 = !DILocalVariable(name: "v", scope: !348, file: !2, line: 200, type: !30) +!348 = distinct !DILexicalBlock(scope: !349, file: !2, line: 199, column: 5) +!349 = distinct !DILexicalBlock(scope: !272, file: !2, line: 198, column: 3) +!350 = !DILocation(line: 200, column: 5, scope: !348) +!351 = !DILocation(line: 200, column: 13, scope: !348) +!352 = !DILocalVariable(name: "eq", scope: !348, file: !2, line: 201, type: !10) +!353 = !DILocation(line: 201, column: 5, scope: !348) +!354 = !DILocation(line: 201, column: 10, scope: !348) +!355 = !DILocation(line: 202, column: 5, scope: !348) +!356 = !DILocalVariable(name: "m", scope: !357, file: !2, line: 205, type: !30) +!357 = distinct !DILexicalBlock(scope: !358, file: !2, line: 204, column: 7) +!358 = distinct !DILexicalBlock(scope: !348, file: !2, line: 202, column: 5) +!359 = !DILocation(line: 205, column: 7, scope: !357) +!360 = !DILocation(line: 205, column: 43, scope: !357) +!361 = !DILocation(line: 206, column: 7, scope: !357) +!362 = !DILocalVariable(name: "m", scope: !363, file: !2, line: 209, type: !30) +!363 = distinct !DILexicalBlock(scope: !349, file: !2, line: 208, column: 5) +!364 = !DILocation(line: 209, column: 5, scope: !363) +!365 = !DILocation(line: 209, column: 31, scope: !363) +!366 = !DILocation(line: 210, column: 5, scope: !363) +!367 = !DILocation(line: 214, column: 3, scope: !272) +!368 = distinct !DISubprogram(name: "t6", linkageName: "t6", scope: !2, file: !2, line: 155, type: !5, scopeLine: 155, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!369 = !DILocation(line: 155, column: 12, scope: !368) +!370 = distinct !DISubprogram(name: "t7", linkageName: "t7", scope: !2, file: !2, line: 219, type: !5, scopeLine: 219, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!371 = !DILocalVariable(name: "_sender", scope: !370, file: !2, line: 219, type: !55) +!372 = !DILocation(line: 219, column: 12, scope: !370) +!373 = !DILocalVariable(name: "_origin", scope: !370, file: !2, line: 219, type: !55) +!374 = !DILocalVariable(name: "_amount", scope: !370, file: !2, line: 219, type: !59) +!375 = !DILocalVariable(name: "tname", scope: !370, file: !2, line: 220, type: !30) +!376 = !DILocation(line: 220, column: 3, scope: !370) +!377 = !DILocation(line: 220, column: 14, scope: !370) +!378 = !DILocalVariable(name: "key1a", scope: !370, file: !2, line: 224, type: !30) +!379 = !DILocation(line: 224, column: 3, scope: !370) +!380 = !DILocation(line: 224, column: 17, scope: !370) +!381 = !DILocalVariable(name: "key2a", scope: !370, file: !2, line: 224, type: !30) +!382 = !DILocation(line: 224, column: 20, scope: !370) +!383 = !DILocation(line: 224, column: 34, scope: !370) +!384 = !DILocalVariable(name: "c1", scope: !370, file: !2, line: 225, type: !149) +!385 = !DILocation(line: 225, column: 3, scope: !370) +!386 = !DILocation(line: 226, column: 3, scope: !370) +!387 = !DILocalVariable(name: "v", scope: !388, file: !2, line: 228, type: !30) +!388 = distinct !DILexicalBlock(scope: !389, file: !2, line: 227, column: 5) +!389 = distinct !DILexicalBlock(scope: !370, file: !2, line: 226, column: 3) +!390 = !DILocation(line: 228, column: 5, scope: !388) +!391 = !DILocation(line: 228, column: 13, scope: !388) +!392 = !DILocalVariable(name: "eq", scope: !388, file: !2, line: 229, type: !10) +!393 = !DILocation(line: 229, column: 5, scope: !388) +!394 = !DILocation(line: 229, column: 10, scope: !388) +!395 = !DILocation(line: 230, column: 5, scope: !388) +!396 = !DILocalVariable(name: "m", scope: !397, file: !2, line: 233, type: !30) +!397 = distinct !DILexicalBlock(scope: !398, file: !2, line: 232, column: 7) +!398 = distinct !DILexicalBlock(scope: !388, file: !2, line: 230, column: 5) +!399 = !DILocation(line: 233, column: 7, scope: !397) +!400 = !DILocation(line: 233, column: 43, scope: !397) +!401 = !DILocation(line: 234, column: 7, scope: !397) +!402 = !DILocalVariable(name: "m", scope: !403, file: !2, line: 237, type: !30) +!403 = distinct !DILexicalBlock(scope: !389, file: !2, line: 236, column: 5) +!404 = !DILocation(line: 237, column: 5, scope: !403) +!405 = !DILocation(line: 237, column: 31, scope: !403) +!406 = !DILocation(line: 238, column: 5, scope: !403) +!407 = !DILocalVariable(name: "key1b", scope: !370, file: !2, line: 242, type: !30) +!408 = !DILocation(line: 242, column: 3, scope: !370) +!409 = !DILocation(line: 242, column: 17, scope: !370) +!410 = !DILocalVariable(name: "$c1_5", scope: !370, file: !2, line: 243, type: !411) +!411 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "Option (Map (String) (String))", baseType: !412, size: 8, align: 8, dwarfAddressSpace: 0) +!412 = !DIBasicType(name: "Option (Map (String) (String))", size: 8) +!413 = !DILocation(line: 243, column: 3, scope: !370) +!414 = !DILocation(line: 244, column: 3, scope: !370) +!415 = !DILocalVariable(name: "m", scope: !416, file: !2, line: 246, type: !30) +!416 = distinct !DILexicalBlock(scope: !417, file: !2, line: 245, column: 5) +!417 = distinct !DILexicalBlock(scope: !370, file: !2, line: 244, column: 3) +!418 = !DILocation(line: 246, column: 7, scope: !416) +!419 = !DILocation(line: 246, column: 48, scope: !416) +!420 = !DILocation(line: 247, column: 7, scope: !416) +!421 = !DILocalVariable(name: "$key1b_6", scope: !370, file: !2, line: 252, type: !30) +!422 = !DILocation(line: 252, column: 3, scope: !370) +!423 = !DILocation(line: 252, column: 17, scope: !370) +!424 = !DILocalVariable(name: "key2b", scope: !370, file: !2, line: 252, type: !30) +!425 = !DILocation(line: 252, column: 20, scope: !370) +!426 = !DILocation(line: 252, column: 34, scope: !370) +!427 = !DILocalVariable(name: "$c1_7", scope: !370, file: !2, line: 253, type: !149) +!428 = !DILocation(line: 253, column: 3, scope: !370) +!429 = !DILocation(line: 254, column: 3, scope: !370) +!430 = !DILocalVariable(name: "m", scope: !431, file: !2, line: 256, type: !30) +!431 = distinct !DILexicalBlock(scope: !432, file: !2, line: 255, column: 5) +!432 = distinct !DILexicalBlock(scope: !370, file: !2, line: 254, column: 3) +!433 = !DILocation(line: 256, column: 7, scope: !431) +!434 = !DILocation(line: 256, column: 54, scope: !431) +!435 = !DILocation(line: 257, column: 7, scope: !431) +!436 = !DILocalVariable(name: "$key1b_8", scope: !370, file: !2, line: 262, type: !30) +!437 = !DILocation(line: 262, column: 3, scope: !370) +!438 = !DILocation(line: 262, column: 17, scope: !370) +!439 = !DILocalVariable(name: "key2d", scope: !370, file: !2, line: 262, type: !30) +!440 = !DILocation(line: 262, column: 20, scope: !370) +!441 = !DILocation(line: 262, column: 34, scope: !370) +!442 = !DILocalVariable(name: "$c1_9", scope: !370, file: !2, line: 263, type: !149) +!443 = !DILocation(line: 263, column: 3, scope: !370) +!444 = !DILocation(line: 264, column: 3, scope: !370) +!445 = !DILocalVariable(name: "m", scope: !446, file: !2, line: 266, type: !30) +!446 = distinct !DILexicalBlock(scope: !447, file: !2, line: 265, column: 5) +!447 = distinct !DILexicalBlock(scope: !370, file: !2, line: 264, column: 3) +!448 = !DILocation(line: 266, column: 7, scope: !446) +!449 = !DILocation(line: 266, column: 54, scope: !446) +!450 = !DILocation(line: 267, column: 7, scope: !446) +!451 = !DILocalVariable(name: "$key1b_10", scope: !370, file: !2, line: 272, type: !30) +!452 = !DILocation(line: 272, column: 3, scope: !370) +!453 = !DILocation(line: 272, column: 17, scope: !370) +!454 = !DILocalVariable(name: "key2c", scope: !370, file: !2, line: 272, type: !30) +!455 = !DILocation(line: 272, column: 20, scope: !370) +!456 = !DILocation(line: 272, column: 34, scope: !370) +!457 = !DILocalVariable(name: "s", scope: !370, file: !2, line: 273, type: !30) +!458 = !DILocation(line: 273, column: 3, scope: !370) +!459 = !DILocation(line: 273, column: 11, scope: !370) +!460 = !DILocation(line: 274, column: 3, scope: !370) +!461 = distinct !DISubprogram(name: "t7", linkageName: "t7", scope: !2, file: !2, line: 219, type: !5, scopeLine: 219, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!462 = !DILocation(line: 219, column: 12, scope: !461) +!463 = distinct !DISubprogram(name: "t8", linkageName: "t8", scope: !2, file: !2, line: 279, type: !5, scopeLine: 279, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!464 = !DILocalVariable(name: "_sender", scope: !463, file: !2, line: 279, type: !55) +!465 = !DILocation(line: 279, column: 12, scope: !463) +!466 = !DILocalVariable(name: "_origin", scope: !463, file: !2, line: 279, type: !55) +!467 = !DILocalVariable(name: "_amount", scope: !463, file: !2, line: 279, type: !59) +!468 = !DILocalVariable(name: "tname", scope: !463, file: !2, line: 280, type: !30) +!469 = !DILocation(line: 280, column: 3, scope: !463) +!470 = !DILocation(line: 280, column: 14, scope: !463) +!471 = !DILocalVariable(name: "key1a", scope: !463, file: !2, line: 285, type: !30) +!472 = !DILocation(line: 285, column: 3, scope: !463) +!473 = !DILocation(line: 285, column: 17, scope: !463) +!474 = !DILocalVariable(name: "key2a", scope: !463, file: !2, line: 285, type: !30) +!475 = !DILocation(line: 285, column: 20, scope: !463) +!476 = !DILocation(line: 285, column: 34, scope: !463) +!477 = !DILocalVariable(name: "c1", scope: !463, file: !2, line: 286, type: !149) +!478 = !DILocation(line: 286, column: 3, scope: !463) +!479 = !DILocation(line: 287, column: 3, scope: !463) +!480 = !DILocalVariable(name: "v", scope: !481, file: !2, line: 289, type: !30) +!481 = distinct !DILexicalBlock(scope: !482, file: !2, line: 288, column: 5) +!482 = distinct !DILexicalBlock(scope: !463, file: !2, line: 287, column: 3) +!483 = !DILocation(line: 289, column: 5, scope: !481) +!484 = !DILocation(line: 289, column: 13, scope: !481) +!485 = !DILocalVariable(name: "eq", scope: !481, file: !2, line: 290, type: !10) +!486 = !DILocation(line: 290, column: 5, scope: !481) +!487 = !DILocation(line: 290, column: 10, scope: !481) +!488 = !DILocation(line: 291, column: 5, scope: !481) +!489 = !DILocalVariable(name: "m", scope: !490, file: !2, line: 294, type: !30) +!490 = distinct !DILexicalBlock(scope: !491, file: !2, line: 293, column: 7) +!491 = distinct !DILexicalBlock(scope: !481, file: !2, line: 291, column: 5) +!492 = !DILocation(line: 294, column: 7, scope: !490) +!493 = !DILocation(line: 294, column: 43, scope: !490) +!494 = !DILocation(line: 295, column: 7, scope: !490) +!495 = !DILocalVariable(name: "m", scope: !496, file: !2, line: 298, type: !30) +!496 = distinct !DILexicalBlock(scope: !482, file: !2, line: 297, column: 5) +!497 = !DILocation(line: 298, column: 5, scope: !496) +!498 = !DILocation(line: 298, column: 31, scope: !496) +!499 = !DILocation(line: 299, column: 5, scope: !496) +!500 = !DILocalVariable(name: "key1b", scope: !463, file: !2, line: 302, type: !30) +!501 = !DILocation(line: 302, column: 3, scope: !463) +!502 = !DILocation(line: 302, column: 17, scope: !463) +!503 = !DILocalVariable(name: "key2c", scope: !463, file: !2, line: 302, type: !30) +!504 = !DILocation(line: 302, column: 20, scope: !463) +!505 = !DILocation(line: 302, column: 34, scope: !463) +!506 = !DILocalVariable(name: "$c1_11", scope: !463, file: !2, line: 303, type: !149) +!507 = !DILocation(line: 303, column: 3, scope: !463) +!508 = !DILocation(line: 304, column: 3, scope: !463) +!509 = !DILocalVariable(name: "v", scope: !510, file: !2, line: 306, type: !30) +!510 = distinct !DILexicalBlock(scope: !511, file: !2, line: 305, column: 5) +!511 = distinct !DILexicalBlock(scope: !463, file: !2, line: 304, column: 3) +!512 = !DILocation(line: 306, column: 5, scope: !510) +!513 = !DILocation(line: 306, column: 13, scope: !510) +!514 = !DILocalVariable(name: "eq", scope: !510, file: !2, line: 307, type: !10) +!515 = !DILocation(line: 307, column: 5, scope: !510) +!516 = !DILocation(line: 307, column: 10, scope: !510) +!517 = !DILocation(line: 308, column: 5, scope: !510) +!518 = !DILocalVariable(name: "m", scope: !519, file: !2, line: 311, type: !30) +!519 = distinct !DILexicalBlock(scope: !520, file: !2, line: 310, column: 7) +!520 = distinct !DILexicalBlock(scope: !510, file: !2, line: 308, column: 5) +!521 = !DILocation(line: 311, column: 7, scope: !519) +!522 = !DILocation(line: 311, column: 43, scope: !519) +!523 = !DILocation(line: 312, column: 7, scope: !519) +!524 = !DILocalVariable(name: "m", scope: !525, file: !2, line: 315, type: !30) +!525 = distinct !DILexicalBlock(scope: !511, file: !2, line: 314, column: 5) +!526 = !DILocation(line: 315, column: 5, scope: !525) +!527 = !DILocation(line: 315, column: 31, scope: !525) +!528 = !DILocation(line: 316, column: 5, scope: !525) +!529 = !DILocalVariable(name: "em", scope: !463, file: !2, line: 320, type: !34) +!530 = !DILocation(line: 320, column: 3, scope: !463) +!531 = !DILocation(line: 320, column: 8, scope: !463) +!532 = !DILocation(line: 321, column: 3, scope: !463) +!533 = distinct !DISubprogram(name: "t8", linkageName: "t8", scope: !2, file: !2, line: 279, type: !5, scopeLine: 279, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!534 = !DILocation(line: 279, column: 12, scope: !533) +!535 = distinct !DISubprogram(name: "t9", linkageName: "t9", scope: !2, file: !2, line: 326, type: !5, scopeLine: 326, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!536 = !DILocalVariable(name: "_sender", scope: !535, file: !2, line: 326, type: !55) +!537 = !DILocation(line: 326, column: 12, scope: !535) +!538 = !DILocalVariable(name: "_origin", scope: !535, file: !2, line: 326, type: !55) +!539 = !DILocalVariable(name: "_amount", scope: !535, file: !2, line: 326, type: !59) +!540 = !DILocalVariable(name: "tname", scope: !535, file: !2, line: 327, type: !30) +!541 = !DILocation(line: 327, column: 3, scope: !535) +!542 = !DILocation(line: 327, column: 14, scope: !535) +!543 = !DILocalVariable(name: "m1", scope: !535, file: !2, line: 330, type: !34) +!544 = !DILocation(line: 330, column: 3, scope: !535) +!545 = !DILocalVariable(name: "m1_size", scope: !535, file: !2, line: 331, type: !546) +!546 = !DIBasicType(name: "Uint32", size: 4) +!547 = !DILocation(line: 331, column: 3, scope: !535) +!548 = !DILocation(line: 331, column: 13, scope: !535) +!549 = !DILocalVariable(name: "zero", scope: !535, file: !2, line: 332, type: !546) +!550 = !DILocation(line: 332, column: 3, scope: !535) +!551 = !DILocation(line: 332, column: 10, scope: !535) +!552 = !DILocalVariable(name: "is_empty", scope: !535, file: !2, line: 333, type: !10) +!553 = !DILocation(line: 333, column: 3, scope: !535) +!554 = !DILocation(line: 333, column: 14, scope: !535) +!555 = !DILocation(line: 334, column: 3, scope: !535) +!556 = !DILocation(line: 337, column: 5, scope: !557) +!557 = distinct !DILexicalBlock(scope: !558, file: !2, line: 336, column: 5) +!558 = distinct !DILexicalBlock(scope: !535, file: !2, line: 334, column: 3) +!559 = !DILocalVariable(name: "key1a", scope: !535, file: !2, line: 341, type: !30) +!560 = !DILocation(line: 341, column: 3, scope: !535) +!561 = !DILocation(line: 341, column: 17, scope: !535) +!562 = !DILocalVariable(name: "val", scope: !535, file: !2, line: 342, type: !30) +!563 = !DILocation(line: 342, column: 3, scope: !535) +!564 = !DILocation(line: 342, column: 13, scope: !535) +!565 = !DILocalVariable(name: "$m1_12", scope: !535, file: !2, line: 343, type: !34) +!566 = !DILocation(line: 343, column: 3, scope: !535) +!567 = !DILocation(line: 343, column: 8, scope: !535) +!568 = !DILocation(line: 344, column: 3, scope: !535) +!569 = distinct !DISubprogram(name: "t9", linkageName: "t9", scope: !2, file: !2, line: 326, type: !5, scopeLine: 326, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!570 = !DILocation(line: 326, column: 12, scope: !569) +!571 = distinct !DISubprogram(name: "t10", linkageName: "t10", scope: !2, file: !2, line: 348, type: !5, scopeLine: 348, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!572 = !DILocalVariable(name: "_sender", scope: !571, file: !2, line: 348, type: !55) +!573 = !DILocation(line: 348, column: 12, scope: !571) +!574 = !DILocalVariable(name: "_origin", scope: !571, file: !2, line: 348, type: !55) +!575 = !DILocalVariable(name: "_amount", scope: !571, file: !2, line: 348, type: !59) +!576 = !DILocalVariable(name: "tname", scope: !571, file: !2, line: 349, type: !30) +!577 = !DILocation(line: 349, column: 3, scope: !571) +!578 = !DILocation(line: 349, column: 15, scope: !571) +!579 = !DILocalVariable(name: "key1a", scope: !571, file: !2, line: 353, type: !30) +!580 = !DILocation(line: 353, column: 3, scope: !571) +!581 = !DILocation(line: 353, column: 17, scope: !571) +!582 = !DILocalVariable(name: "m1", scope: !571, file: !2, line: 354, type: !34) +!583 = !DILocation(line: 354, column: 3, scope: !571) +!584 = !DILocalVariable(name: "c1", scope: !571, file: !2, line: 355, type: !149) +!585 = !DILocation(line: 355, column: 3, scope: !571) +!586 = !DILocation(line: 355, column: 8, scope: !571) +!587 = !DILocation(line: 356, column: 3, scope: !571) +!588 = !DILocalVariable(name: "v", scope: !589, file: !2, line: 358, type: !30) +!589 = distinct !DILexicalBlock(scope: !590, file: !2, line: 357, column: 5) +!590 = distinct !DILexicalBlock(scope: !571, file: !2, line: 356, column: 3) +!591 = !DILocation(line: 358, column: 5, scope: !589) +!592 = !DILocation(line: 358, column: 13, scope: !589) +!593 = !DILocalVariable(name: "eq", scope: !589, file: !2, line: 359, type: !10) +!594 = !DILocation(line: 359, column: 5, scope: !589) +!595 = !DILocation(line: 359, column: 10, scope: !589) +!596 = !DILocation(line: 360, column: 5, scope: !589) +!597 = !DILocalVariable(name: "m", scope: !598, file: !2, line: 363, type: !30) +!598 = distinct !DILexicalBlock(scope: !599, file: !2, line: 362, column: 7) +!599 = distinct !DILexicalBlock(scope: !589, file: !2, line: 360, column: 5) +!600 = !DILocation(line: 363, column: 7, scope: !598) +!601 = !DILocation(line: 363, column: 37, scope: !598) +!602 = !DILocation(line: 364, column: 7, scope: !598) +!603 = !DILocalVariable(name: "m", scope: !604, file: !2, line: 367, type: !30) +!604 = distinct !DILexicalBlock(scope: !590, file: !2, line: 366, column: 5) +!605 = !DILocation(line: 367, column: 5, scope: !604) +!606 = !DILocation(line: 367, column: 25, scope: !604) +!607 = !DILocation(line: 368, column: 5, scope: !604) +!608 = !DILocation(line: 372, column: 3, scope: !571) +!609 = distinct !DISubprogram(name: "t10", linkageName: "t10", scope: !2, file: !2, line: 348, type: !5, scopeLine: 348, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!610 = !DILocation(line: 348, column: 12, scope: !609) +!611 = distinct !DISubprogram(name: "t11", linkageName: "t11", scope: !2, file: !2, line: 377, type: !5, scopeLine: 377, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!612 = !DILocalVariable(name: "_sender", scope: !611, file: !2, line: 377, type: !55) +!613 = !DILocation(line: 377, column: 12, scope: !611) +!614 = !DILocalVariable(name: "_origin", scope: !611, file: !2, line: 377, type: !55) +!615 = !DILocalVariable(name: "_amount", scope: !611, file: !2, line: 377, type: !59) +!616 = !DILocalVariable(name: "tname", scope: !611, file: !2, line: 378, type: !30) +!617 = !DILocation(line: 378, column: 3, scope: !611) +!618 = !DILocation(line: 378, column: 15, scope: !611) +!619 = !DILocalVariable(name: "m1", scope: !611, file: !2, line: 381, type: !34) +!620 = !DILocation(line: 381, column: 3, scope: !611) +!621 = !DILocalVariable(name: "m1_size", scope: !611, file: !2, line: 382, type: !546) +!622 = !DILocation(line: 382, column: 3, scope: !611) +!623 = !DILocation(line: 382, column: 13, scope: !611) +!624 = !DILocalVariable(name: "zero", scope: !611, file: !2, line: 383, type: !546) +!625 = !DILocation(line: 383, column: 3, scope: !611) +!626 = !DILocation(line: 383, column: 10, scope: !611) +!627 = !DILocalVariable(name: "is_empty", scope: !611, file: !2, line: 384, type: !10) +!628 = !DILocation(line: 384, column: 3, scope: !611) +!629 = !DILocation(line: 384, column: 14, scope: !611) +!630 = !DILocation(line: 385, column: 3, scope: !611) +!631 = !DILocation(line: 388, column: 5, scope: !632) +!632 = distinct !DILexicalBlock(scope: !633, file: !2, line: 387, column: 5) +!633 = distinct !DILexicalBlock(scope: !611, file: !2, line: 385, column: 3) +!634 = !DILocalVariable(name: "e2", scope: !611, file: !2, line: 392, type: !39) +!635 = !DILocation(line: 392, column: 3, scope: !611) +!636 = !DILocation(line: 392, column: 8, scope: !611) +!637 = !DILocation(line: 393, column: 3, scope: !611) +!638 = distinct !DISubprogram(name: "t11", linkageName: "t11", scope: !2, file: !2, line: 377, type: !5, scopeLine: 377, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!639 = !DILocation(line: 377, column: 12, scope: !638) +!640 = distinct !DISubprogram(name: "t12", linkageName: "t12", scope: !2, file: !2, line: 397, type: !5, scopeLine: 397, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!641 = !DILocalVariable(name: "_sender", scope: !640, file: !2, line: 397, type: !55) +!642 = !DILocation(line: 397, column: 12, scope: !640) +!643 = !DILocalVariable(name: "_origin", scope: !640, file: !2, line: 397, type: !55) +!644 = !DILocalVariable(name: "_amount", scope: !640, file: !2, line: 397, type: !59) +!645 = !DILocalVariable(name: "tname", scope: !640, file: !2, line: 398, type: !30) +!646 = !DILocation(line: 398, column: 3, scope: !640) +!647 = !DILocation(line: 398, column: 15, scope: !640) +!648 = !DILocalVariable(name: "m2", scope: !640, file: !2, line: 401, type: !39) +!649 = !DILocation(line: 401, column: 3, scope: !640) +!650 = !DILocalVariable(name: "m2_size", scope: !640, file: !2, line: 402, type: !546) +!651 = !DILocation(line: 402, column: 3, scope: !640) +!652 = !DILocation(line: 402, column: 13, scope: !640) +!653 = !DILocalVariable(name: "zero", scope: !640, file: !2, line: 403, type: !546) +!654 = !DILocation(line: 403, column: 3, scope: !640) +!655 = !DILocation(line: 403, column: 10, scope: !640) +!656 = !DILocalVariable(name: "is_empty", scope: !640, file: !2, line: 404, type: !10) +!657 = !DILocation(line: 404, column: 3, scope: !640) +!658 = !DILocation(line: 404, column: 14, scope: !640) +!659 = !DILocation(line: 405, column: 3, scope: !640) +!660 = !DILocation(line: 408, column: 5, scope: !661) +!661 = distinct !DILexicalBlock(scope: !662, file: !2, line: 407, column: 5) +!662 = distinct !DILexicalBlock(scope: !640, file: !2, line: 405, column: 3) +!663 = !DILocalVariable(name: "e1", scope: !640, file: !2, line: 412, type: !34) +!664 = !DILocation(line: 412, column: 3, scope: !640) +!665 = !DILocation(line: 412, column: 8, scope: !640) +!666 = !DILocalVariable(name: "key1a", scope: !640, file: !2, line: 413, type: !30) +!667 = !DILocation(line: 413, column: 3, scope: !640) +!668 = !DILocation(line: 413, column: 17, scope: !640) +!669 = !DILocation(line: 414, column: 3, scope: !640) +!670 = distinct !DISubprogram(name: "t12", linkageName: "t12", scope: !2, file: !2, line: 397, type: !5, scopeLine: 397, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!671 = !DILocation(line: 397, column: 12, scope: !670) +!672 = distinct !DISubprogram(name: "t13", linkageName: "t13", scope: !2, file: !2, line: 418, type: !5, scopeLine: 418, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!673 = !DILocalVariable(name: "_sender", scope: !672, file: !2, line: 418, type: !55) +!674 = !DILocation(line: 418, column: 12, scope: !672) +!675 = !DILocalVariable(name: "_origin", scope: !672, file: !2, line: 418, type: !55) +!676 = !DILocalVariable(name: "_amount", scope: !672, file: !2, line: 418, type: !59) +!677 = !DILocalVariable(name: "tname", scope: !672, file: !2, line: 419, type: !30) +!678 = !DILocation(line: 419, column: 3, scope: !672) +!679 = !DILocation(line: 419, column: 15, scope: !672) +!680 = !DILocalVariable(name: "key1a", scope: !672, file: !2, line: 422, type: !30) +!681 = !DILocation(line: 422, column: 3, scope: !672) +!682 = !DILocation(line: 422, column: 17, scope: !672) +!683 = !DILocalVariable(name: "mo", scope: !672, file: !2, line: 423, type: !411) +!684 = !DILocation(line: 423, column: 3, scope: !672) +!685 = !DILocation(line: 424, column: 3, scope: !672) +!686 = !DILocalVariable(name: "m_size", scope: !687, file: !2, line: 426, type: !546) +!687 = distinct !DILexicalBlock(scope: !688, file: !2, line: 425, column: 5) +!688 = distinct !DILexicalBlock(scope: !672, file: !2, line: 424, column: 3) +!689 = !DILocation(line: 426, column: 5, scope: !687) +!690 = !DILocation(line: 426, column: 14, scope: !687) +!691 = !DILocalVariable(name: "zero", scope: !687, file: !2, line: 427, type: !546) +!692 = !DILocation(line: 427, column: 5, scope: !687) +!693 = !DILocation(line: 427, column: 12, scope: !687) +!694 = !DILocalVariable(name: "is_empty", scope: !687, file: !2, line: 428, type: !10) +!695 = !DILocation(line: 428, column: 5, scope: !687) +!696 = !DILocation(line: 428, column: 16, scope: !687) +!697 = !DILocation(line: 429, column: 5, scope: !687) +!698 = !DILocalVariable(name: "msg", scope: !699, file: !2, line: 432, type: !30) +!699 = distinct !DILexicalBlock(scope: !700, file: !2, line: 431, column: 7) +!700 = distinct !DILexicalBlock(scope: !687, file: !2, line: 429, column: 5) +!701 = !DILocation(line: 432, column: 7, scope: !699) +!702 = !DILocation(line: 432, column: 43, scope: !699) +!703 = !DILocation(line: 433, column: 7, scope: !699) +!704 = !DILocation(line: 436, column: 5, scope: !705) +!705 = distinct !DILexicalBlock(scope: !688, file: !2, line: 435, column: 5) +!706 = !DILocalVariable(name: "m3", scope: !672, file: !2, line: 440, type: !34) +!707 = !DILocation(line: 440, column: 3, scope: !672) +!708 = !DILocation(line: 440, column: 8, scope: !672) +!709 = !DILocalVariable(name: "m2", scope: !672, file: !2, line: 441, type: !39) +!710 = !DILocation(line: 441, column: 3, scope: !672) +!711 = !DILocalVariable(name: "key2a", scope: !672, file: !2, line: 442, type: !30) +!712 = !DILocation(line: 442, column: 9, scope: !672) +!713 = !DILocation(line: 442, column: 23, scope: !672) +!714 = !DILocalVariable(name: "e", scope: !672, file: !2, line: 443, type: !39) +!715 = !DILocation(line: 443, column: 9, scope: !672) +!716 = !DILocation(line: 443, column: 13, scope: !672) +!717 = !DILocation(line: 444, column: 5, scope: !672) +!718 = !DILocalVariable(name: "$m3_14", scope: !672, file: !2, line: 445, type: !44) +!719 = !DILocation(line: 445, column: 3, scope: !672) +!720 = !DILocalVariable(name: "$e_13", scope: !672, file: !2, line: 446, type: !44) +!721 = !DILocation(line: 446, column: 9, scope: !672) +!722 = !DILocation(line: 446, column: 13, scope: !672) +!723 = !DILocation(line: 447, column: 5, scope: !672) +!724 = !DILocation(line: 449, column: 3, scope: !672) +!725 = distinct !DISubprogram(name: "t13", linkageName: "t13", scope: !2, file: !2, line: 418, type: !5, scopeLine: 418, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!726 = !DILocation(line: 418, column: 12, scope: !725) +!727 = distinct !DISubprogram(name: "t14", linkageName: "t14", scope: !2, file: !2, line: 454, type: !5, scopeLine: 454, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!728 = !DILocalVariable(name: "_sender", scope: !727, file: !2, line: 454, type: !55) +!729 = !DILocation(line: 454, column: 12, scope: !727) +!730 = !DILocalVariable(name: "_origin", scope: !727, file: !2, line: 454, type: !55) +!731 = !DILocalVariable(name: "_amount", scope: !727, file: !2, line: 454, type: !59) +!732 = !DILocalVariable(name: "tname", scope: !727, file: !2, line: 455, type: !30) +!733 = !DILocation(line: 455, column: 3, scope: !727) +!734 = !DILocation(line: 455, column: 15, scope: !727) +!735 = !DILocalVariable(name: "m3", scope: !727, file: !2, line: 458, type: !44) +!736 = !DILocation(line: 458, column: 3, scope: !727) +!737 = !DILocalVariable(name: "m3_size", scope: !727, file: !2, line: 459, type: !546) +!738 = !DILocation(line: 459, column: 3, scope: !727) +!739 = !DILocation(line: 459, column: 13, scope: !727) +!740 = !DILocalVariable(name: "one", scope: !727, file: !2, line: 460, type: !546) +!741 = !DILocation(line: 460, column: 3, scope: !727) +!742 = !DILocation(line: 460, column: 9, scope: !727) +!743 = !DILocalVariable(name: "is_empty", scope: !727, file: !2, line: 461, type: !10) +!744 = !DILocation(line: 461, column: 3, scope: !727) +!745 = !DILocation(line: 461, column: 14, scope: !727) +!746 = !DILocation(line: 462, column: 3, scope: !727) +!747 = !DILocation(line: 465, column: 5, scope: !748) +!748 = distinct !DILexicalBlock(scope: !749, file: !2, line: 464, column: 5) +!749 = distinct !DILexicalBlock(scope: !727, file: !2, line: 462, column: 3) +!750 = !DILocalVariable(name: "e", scope: !727, file: !2, line: 469, type: !39) +!751 = !DILocation(line: 469, column: 2, scope: !727) +!752 = !DILocation(line: 469, column: 6, scope: !727) +!753 = !DILocation(line: 470, column: 2, scope: !727) +!754 = distinct !DISubprogram(name: "t14", linkageName: "t14", scope: !2, file: !2, line: 454, type: !5, scopeLine: 454, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!755 = !DILocation(line: 454, column: 12, scope: !754) +!756 = distinct !DISubprogram(name: "t15", linkageName: "t15", scope: !2, file: !2, line: 475, type: !5, scopeLine: 475, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!757 = !DILocalVariable(name: "_sender", scope: !756, file: !2, line: 475, type: !55) +!758 = !DILocation(line: 475, column: 12, scope: !756) +!759 = !DILocalVariable(name: "_origin", scope: !756, file: !2, line: 475, type: !55) +!760 = !DILocalVariable(name: "_amount", scope: !756, file: !2, line: 475, type: !59) +!761 = !DILocalVariable(name: "tname", scope: !756, file: !2, line: 476, type: !30) +!762 = !DILocation(line: 476, column: 3, scope: !756) +!763 = !DILocation(line: 476, column: 15, scope: !756) +!764 = !DILocalVariable(name: "m3", scope: !756, file: !2, line: 479, type: !44) +!765 = !DILocation(line: 479, column: 3, scope: !756) +!766 = !DILocalVariable(name: "m3_size", scope: !756, file: !2, line: 480, type: !546) +!767 = !DILocation(line: 480, column: 3, scope: !756) +!768 = !DILocation(line: 480, column: 13, scope: !756) +!769 = !DILocalVariable(name: "one", scope: !756, file: !2, line: 481, type: !546) +!770 = !DILocation(line: 481, column: 3, scope: !756) +!771 = !DILocation(line: 481, column: 9, scope: !756) +!772 = !DILocalVariable(name: "is_one", scope: !756, file: !2, line: 482, type: !10) +!773 = !DILocation(line: 482, column: 3, scope: !756) +!774 = !DILocation(line: 482, column: 12, scope: !756) +!775 = !DILocation(line: 483, column: 3, scope: !756) +!776 = !DILocalVariable(name: "err", scope: !777, file: !2, line: 486, type: !30) +!777 = distinct !DILexicalBlock(scope: !778, file: !2, line: 485, column: 5) +!778 = distinct !DILexicalBlock(scope: !756, file: !2, line: 483, column: 3) +!779 = !DILocation(line: 486, column: 5, scope: !777) +!780 = !DILocation(line: 486, column: 34, scope: !777) +!781 = !DILocation(line: 487, column: 5, scope: !777) +!782 = !DILocalVariable(name: "key1a", scope: !756, file: !2, line: 490, type: !30) +!783 = !DILocation(line: 490, column: 3, scope: !756) +!784 = !DILocation(line: 490, column: 17, scope: !756) +!785 = !DILocalVariable(name: "key2a", scope: !756, file: !2, line: 491, type: !30) +!786 = !DILocation(line: 491, column: 3, scope: !756) +!787 = !DILocation(line: 491, column: 17, scope: !756) +!788 = !DILocalVariable(name: "m2o", scope: !756, file: !2, line: 492, type: !789) +!789 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "Option (Map (String) (Map (String) (String)))", baseType: !790, size: 8, align: 8, dwarfAddressSpace: 0) +!790 = !DIBasicType(name: "Option (Map (String) (Map (String) (String)))", size: 8) +!791 = !DILocation(line: 492, column: 3, scope: !756) +!792 = !DILocation(line: 492, column: 9, scope: !756) +!793 = !DILocation(line: 493, column: 3, scope: !756) +!794 = !DILocalVariable(name: "m2_size", scope: !795, file: !2, line: 495, type: !546) +!795 = distinct !DILexicalBlock(scope: !796, file: !2, line: 494, column: 5) +!796 = distinct !DILexicalBlock(scope: !756, file: !2, line: 493, column: 3) +!797 = !DILocation(line: 495, column: 5, scope: !795) +!798 = !DILocation(line: 495, column: 15, scope: !795) +!799 = !DILocalVariable(name: "is_one_1", scope: !795, file: !2, line: 496, type: !10) +!800 = !DILocation(line: 496, column: 5, scope: !795) +!801 = !DILocation(line: 496, column: 16, scope: !795) +!802 = !DILocation(line: 497, column: 5, scope: !795) +!803 = !DILocalVariable(name: "m1o", scope: !804, file: !2, line: 499, type: !411) +!804 = distinct !DILexicalBlock(scope: !805, file: !2, line: 498, column: 7) +!805 = distinct !DILexicalBlock(scope: !795, file: !2, line: 497, column: 5) +!806 = !DILocation(line: 499, column: 7, scope: !804) +!807 = !DILocation(line: 499, column: 13, scope: !804) +!808 = !DILocation(line: 500, column: 7, scope: !804) +!809 = !DILocalVariable(name: "m1_size", scope: !810, file: !2, line: 502, type: !546) +!810 = distinct !DILexicalBlock(scope: !811, file: !2, line: 501, column: 9) +!811 = distinct !DILexicalBlock(scope: !804, file: !2, line: 500, column: 7) +!812 = !DILocation(line: 502, column: 9, scope: !810) +!813 = !DILocation(line: 502, column: 19, scope: !810) +!814 = !DILocalVariable(name: "zero", scope: !810, file: !2, line: 503, type: !546) +!815 = !DILocation(line: 503, column: 9, scope: !810) +!816 = !DILocation(line: 503, column: 16, scope: !810) +!817 = !DILocalVariable(name: "is_empty", scope: !810, file: !2, line: 504, type: !10) +!818 = !DILocation(line: 504, column: 9, scope: !810) +!819 = !DILocation(line: 504, column: 20, scope: !810) +!820 = !DILocation(line: 505, column: 9, scope: !810) +!821 = !DILocalVariable(name: "err", scope: !822, file: !2, line: 508, type: !30) +!822 = distinct !DILexicalBlock(scope: !823, file: !2, line: 507, column: 11) +!823 = distinct !DILexicalBlock(scope: !810, file: !2, line: 505, column: 9) +!824 = !DILocation(line: 508, column: 11, scope: !822) +!825 = !DILocation(line: 508, column: 54, scope: !822) +!826 = !DILocation(line: 509, column: 11, scope: !822) +!827 = !DILocalVariable(name: "err", scope: !828, file: !2, line: 512, type: !30) +!828 = distinct !DILexicalBlock(scope: !811, file: !2, line: 511, column: 9) +!829 = !DILocation(line: 512, column: 9, scope: !828) +!830 = !DILocation(line: 512, column: 35, scope: !828) +!831 = !DILocation(line: 513, column: 9, scope: !828) +!832 = !DILocalVariable(name: "err", scope: !833, file: !2, line: 516, type: !30) +!833 = distinct !DILexicalBlock(scope: !805, file: !2, line: 515, column: 7) +!834 = !DILocation(line: 516, column: 7, scope: !833) +!835 = !DILocation(line: 516, column: 42, scope: !833) +!836 = !DILocation(line: 517, column: 7, scope: !833) +!837 = !DILocalVariable(name: "err", scope: !838, file: !2, line: 520, type: !30) +!838 = distinct !DILexicalBlock(scope: !796, file: !2, line: 519, column: 5) +!839 = !DILocation(line: 520, column: 5, scope: !838) +!840 = !DILocation(line: 520, column: 31, scope: !838) +!841 = !DILocation(line: 521, column: 5, scope: !838) +!842 = !DILocalVariable(name: "key1b", scope: !756, file: !2, line: 525, type: !30) +!843 = !DILocation(line: 525, column: 3, scope: !756) +!844 = !DILocation(line: 525, column: 17, scope: !756) +!845 = !DILocalVariable(name: "key2b", scope: !756, file: !2, line: 525, type: !30) +!846 = !DILocation(line: 525, column: 20, scope: !756) +!847 = !DILocation(line: 525, column: 34, scope: !756) +!848 = !DILocalVariable(name: "key1c", scope: !756, file: !2, line: 526, type: !30) +!849 = !DILocation(line: 526, column: 3, scope: !756) +!850 = !DILocation(line: 526, column: 17, scope: !756) +!851 = !DILocalVariable(name: "key2c", scope: !756, file: !2, line: 526, type: !30) +!852 = !DILocation(line: 526, column: 20, scope: !756) +!853 = !DILocation(line: 526, column: 34, scope: !756) +!854 = !DILocalVariable(name: "key1d", scope: !756, file: !2, line: 527, type: !30) +!855 = !DILocation(line: 527, column: 3, scope: !756) +!856 = !DILocation(line: 527, column: 17, scope: !756) +!857 = !DILocalVariable(name: "key2d", scope: !756, file: !2, line: 527, type: !30) +!858 = !DILocation(line: 527, column: 20, scope: !756) +!859 = !DILocation(line: 527, column: 34, scope: !756) +!860 = !DILocalVariable(name: "v1", scope: !756, file: !2, line: 528, type: !30) +!861 = !DILocation(line: 528, column: 3, scope: !756) +!862 = !DILocation(line: 528, column: 12, scope: !756) +!863 = !DILocalVariable(name: "v2", scope: !756, file: !2, line: 528, type: !30) +!864 = !DILocation(line: 528, column: 15, scope: !756) +!865 = !DILocation(line: 528, column: 24, scope: !756) +!866 = !DILocalVariable(name: "v3", scope: !756, file: !2, line: 528, type: !30) +!867 = !DILocation(line: 528, column: 27, scope: !756) +!868 = !DILocation(line: 528, column: 36, scope: !756) +!869 = !DILocalVariable(name: "v4", scope: !756, file: !2, line: 528, type: !30) +!870 = !DILocation(line: 528, column: 39, scope: !756) +!871 = !DILocation(line: 528, column: 48, scope: !756) +!872 = !DILocalVariable(name: "m2", scope: !756, file: !2, line: 529, type: !39) +!873 = !DILocation(line: 529, column: 3, scope: !756) +!874 = !DILocation(line: 529, column: 8, scope: !756) +!875 = !DILocalVariable(name: "m1", scope: !756, file: !2, line: 530, type: !34) +!876 = !DILocation(line: 530, column: 3, scope: !756) +!877 = !DILocation(line: 530, column: 8, scope: !756) +!878 = !DILocalVariable(name: "m2_full", scope: !756, file: !2, line: 531, type: !39) +!879 = !DILocation(line: 531, column: 3, scope: !756) +!880 = !DILocalVariable(name: "m21", scope: !756, file: !2, line: 532, type: !34) +!881 = !DILocation(line: 532, column: 9, scope: !756) +!882 = !DILocation(line: 532, column: 15, scope: !756) +!883 = !DILocalVariable(name: "m22", scope: !756, file: !2, line: 533, type: !34) +!884 = !DILocation(line: 533, column: 9, scope: !756) +!885 = !DILocation(line: 533, column: 15, scope: !756) +!886 = !DILocalVariable(name: "m23", scope: !756, file: !2, line: 534, type: !34) +!887 = !DILocation(line: 534, column: 9, scope: !756) +!888 = !DILocation(line: 534, column: 15, scope: !756) +!889 = !DILocalVariable(name: "m24", scope: !756, file: !2, line: 535, type: !34) +!890 = !DILocation(line: 535, column: 9, scope: !756) +!891 = !DILocation(line: 535, column: 15, scope: !756) +!892 = !DILocalVariable(name: "m11", scope: !756, file: !2, line: 536, type: !39) +!893 = !DILocation(line: 536, column: 9, scope: !756) +!894 = !DILocation(line: 536, column: 15, scope: !756) +!895 = !DILocalVariable(name: "m12", scope: !756, file: !2, line: 537, type: !39) +!896 = !DILocation(line: 537, column: 9, scope: !756) +!897 = !DILocation(line: 537, column: 15, scope: !756) +!898 = !DILocalVariable(name: "m13", scope: !756, file: !2, line: 538, type: !39) +!899 = !DILocation(line: 538, column: 9, scope: !756) +!900 = !DILocation(line: 538, column: 15, scope: !756) +!901 = !DILocalVariable(name: "m14", scope: !756, file: !2, line: 539, type: !39) +!902 = !DILocation(line: 539, column: 9, scope: !756) +!903 = !DILocation(line: 539, column: 15, scope: !756) +!904 = !DILocation(line: 540, column: 5, scope: !756) +!905 = !DILocation(line: 541, column: 3, scope: !756) +!906 = distinct !DISubprogram(name: "t15", linkageName: "t15", scope: !2, file: !2, line: 475, type: !5, scopeLine: 475, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!907 = !DILocation(line: 475, column: 12, scope: !906) +!908 = distinct !DISubprogram(name: "t16", linkageName: "t16", scope: !2, file: !2, line: 545, type: !5, scopeLine: 545, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!909 = !DILocalVariable(name: "_sender", scope: !908, file: !2, line: 545, type: !55) +!910 = !DILocation(line: 545, column: 12, scope: !908) +!911 = !DILocalVariable(name: "_origin", scope: !908, file: !2, line: 545, type: !55) +!912 = !DILocalVariable(name: "_amount", scope: !908, file: !2, line: 545, type: !59) +!913 = !DILocalVariable(name: "tname", scope: !908, file: !2, line: 546, type: !30) +!914 = !DILocation(line: 546, column: 3, scope: !908) +!915 = !DILocation(line: 546, column: 15, scope: !908) +!916 = !DILocalVariable(name: "key1a", scope: !908, file: !2, line: 553, type: !30) +!917 = !DILocation(line: 553, column: 3, scope: !908) +!918 = !DILocation(line: 553, column: 17, scope: !908) +!919 = !DILocalVariable(name: "key2a", scope: !908, file: !2, line: 553, type: !30) +!920 = !DILocation(line: 553, column: 20, scope: !908) +!921 = !DILocation(line: 553, column: 34, scope: !908) +!922 = !DILocalVariable(name: "key1b", scope: !908, file: !2, line: 554, type: !30) +!923 = !DILocation(line: 554, column: 3, scope: !908) +!924 = !DILocation(line: 554, column: 17, scope: !908) +!925 = !DILocalVariable(name: "key2b", scope: !908, file: !2, line: 554, type: !30) +!926 = !DILocation(line: 554, column: 20, scope: !908) +!927 = !DILocation(line: 554, column: 34, scope: !908) +!928 = !DILocalVariable(name: "key1c", scope: !908, file: !2, line: 555, type: !30) +!929 = !DILocation(line: 555, column: 3, scope: !908) +!930 = !DILocation(line: 555, column: 17, scope: !908) +!931 = !DILocalVariable(name: "key2c", scope: !908, file: !2, line: 555, type: !30) +!932 = !DILocation(line: 555, column: 20, scope: !908) +!933 = !DILocation(line: 555, column: 34, scope: !908) +!934 = !DILocalVariable(name: "key1d", scope: !908, file: !2, line: 556, type: !30) +!935 = !DILocation(line: 556, column: 3, scope: !908) +!936 = !DILocation(line: 556, column: 17, scope: !908) +!937 = !DILocalVariable(name: "key2d", scope: !908, file: !2, line: 556, type: !30) +!938 = !DILocation(line: 556, column: 20, scope: !908) +!939 = !DILocation(line: 556, column: 34, scope: !908) +!940 = !DILocalVariable(name: "t1", scope: !908, file: !2, line: 558, type: !149) +!941 = !DILocation(line: 558, column: 3, scope: !908) +!942 = !DILocalVariable(name: "t2", scope: !908, file: !2, line: 559, type: !149) +!943 = !DILocation(line: 559, column: 3, scope: !908) +!944 = !DILocalVariable(name: "t3", scope: !908, file: !2, line: 560, type: !149) +!945 = !DILocation(line: 560, column: 3, scope: !908) +!946 = !DILocalVariable(name: "t4", scope: !908, file: !2, line: 561, type: !149) +!947 = !DILocation(line: 561, column: 3, scope: !908) +!948 = !DILocalVariable(name: "v1", scope: !908, file: !2, line: 562, type: !30) +!949 = !DILocation(line: 562, column: 3, scope: !908) +!950 = !DILocation(line: 562, column: 12, scope: !908) +!951 = !DILocalVariable(name: "v2", scope: !908, file: !2, line: 562, type: !30) +!952 = !DILocation(line: 562, column: 15, scope: !908) +!953 = !DILocation(line: 562, column: 24, scope: !908) +!954 = !DILocalVariable(name: "v3", scope: !908, file: !2, line: 562, type: !30) +!955 = !DILocation(line: 562, column: 27, scope: !908) +!956 = !DILocation(line: 562, column: 36, scope: !908) +!957 = !DILocalVariable(name: "v4", scope: !908, file: !2, line: 562, type: !30) +!958 = !DILocation(line: 562, column: 39, scope: !908) +!959 = !DILocation(line: 562, column: 48, scope: !908) +!960 = !DILocalVariable(name: "b1", scope: !908, file: !2, line: 564, type: !10) +!961 = !DILocation(line: 564, column: 3, scope: !908) +!962 = !DILocation(line: 564, column: 8, scope: !908) +!963 = !DILocation(line: 566, column: 9, scope: !964) +!964 = distinct !DILexicalBlock(scope: !965, file: !2, line: 565, column: 9) +!965 = distinct !DILexicalBlock(scope: !908, file: !2, line: 564, column: 8) +!966 = !DILocation(line: 567, column: 17, scope: !967) +!967 = distinct !DILexicalBlock(scope: !965, file: !2, line: 567, column: 9) +!968 = !DILocalVariable(name: "b2", scope: !908, file: !2, line: 570, type: !10) +!969 = !DILocation(line: 570, column: 3, scope: !908) +!970 = !DILocation(line: 570, column: 8, scope: !908) +!971 = !DILocation(line: 572, column: 9, scope: !972) +!972 = distinct !DILexicalBlock(scope: !973, file: !2, line: 571, column: 9) +!973 = distinct !DILexicalBlock(scope: !908, file: !2, line: 570, column: 8) +!974 = !DILocation(line: 573, column: 17, scope: !975) +!975 = distinct !DILexicalBlock(scope: !973, file: !2, line: 573, column: 9) +!976 = !DILocalVariable(name: "b3", scope: !908, file: !2, line: 576, type: !10) +!977 = !DILocation(line: 576, column: 3, scope: !908) +!978 = !DILocation(line: 576, column: 8, scope: !908) +!979 = !DILocation(line: 578, column: 9, scope: !980) +!980 = distinct !DILexicalBlock(scope: !981, file: !2, line: 577, column: 9) +!981 = distinct !DILexicalBlock(scope: !908, file: !2, line: 576, column: 8) +!982 = !DILocation(line: 579, column: 17, scope: !983) +!983 = distinct !DILexicalBlock(scope: !981, file: !2, line: 579, column: 9) +!984 = !DILocalVariable(name: "b4", scope: !908, file: !2, line: 582, type: !10) +!985 = !DILocation(line: 582, column: 3, scope: !908) +!986 = !DILocation(line: 582, column: 8, scope: !908) +!987 = !DILocation(line: 584, column: 9, scope: !988) +!988 = distinct !DILexicalBlock(scope: !989, file: !2, line: 583, column: 9) +!989 = distinct !DILexicalBlock(scope: !908, file: !2, line: 582, column: 8) +!990 = !DILocation(line: 585, column: 17, scope: !991) +!991 = distinct !DILexicalBlock(scope: !989, file: !2, line: 585, column: 9) +!992 = !DILocalVariable(name: "b", scope: !908, file: !2, line: 588, type: !10) +!993 = !DILocation(line: 588, column: 3, scope: !908) +!994 = !DILocalVariable(name: "a1", scope: !908, file: !2, line: 589, type: !10) +!995 = !DILocation(line: 589, column: 9, scope: !908) +!996 = !DILocation(line: 589, column: 14, scope: !908) +!997 = !DILocalVariable(name: "$BoolUtils.andb_20", scope: !908, file: !2, line: 589, type: !10) +!998 = !DILocalVariable(name: "a2", scope: !908, file: !2, line: 590, type: !10) +!999 = !DILocation(line: 590, column: 9, scope: !908) +!1000 = !DILocation(line: 590, column: 14, scope: !908) +!1001 = !DILocalVariable(name: "$BoolUtils.andb_22", scope: !908, file: !2, line: 590, type: !10) +!1002 = !DILocation(line: 591, column: 5, scope: !908) +!1003 = !DILocalVariable(name: "$BoolUtils.andb_24", scope: !908, file: !2, line: 591, type: !10) +!1004 = !DILocation(line: 593, column: 3, scope: !908) +!1005 = !DILocation(line: 596, column: 5, scope: !1006) +!1006 = distinct !DILexicalBlock(scope: !1007, file: !2, line: 595, column: 5) +!1007 = distinct !DILexicalBlock(scope: !908, file: !2, line: 593, column: 3) +!1008 = !DILocalVariable(name: "m1", scope: !908, file: !2, line: 600, type: !34) +!1009 = !DILocation(line: 600, column: 3, scope: !908) +!1010 = !DILocalVariable(name: "k", scope: !908, file: !2, line: 601, type: !30) +!1011 = !DILocation(line: 601, column: 9, scope: !908) +!1012 = !DILocation(line: 601, column: 14, scope: !908) +!1013 = !DILocalVariable(name: "v", scope: !908, file: !2, line: 602, type: !30) +!1014 = !DILocation(line: 602, column: 9, scope: !908) +!1015 = !DILocation(line: 602, column: 17, scope: !908) +!1016 = !DILocalVariable(name: "e", scope: !908, file: !2, line: 603, type: !34) +!1017 = !DILocation(line: 603, column: 9, scope: !908) +!1018 = !DILocation(line: 603, column: 13, scope: !908) +!1019 = !DILocation(line: 604, column: 5, scope: !908) +!1020 = !DILocation(line: 606, column: 3, scope: !908) +!1021 = distinct !DISubprogram(name: "t16", linkageName: "t16", scope: !2, file: !2, line: 545, type: !5, scopeLine: 545, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!1022 = !DILocation(line: 545, column: 12, scope: !1021) +!1023 = distinct !DISubprogram(name: "t17", linkageName: "t17", scope: !2, file: !2, line: 611, type: !5, scopeLine: 611, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!1024 = !DILocalVariable(name: "_sender", scope: !1023, file: !2, line: 611, type: !55) +!1025 = !DILocation(line: 611, column: 12, scope: !1023) +!1026 = !DILocalVariable(name: "_origin", scope: !1023, file: !2, line: 611, type: !55) +!1027 = !DILocalVariable(name: "_amount", scope: !1023, file: !2, line: 611, type: !59) +!1028 = !DILocalVariable(name: "tname", scope: !1023, file: !2, line: 613, type: !30) +!1029 = !DILocation(line: 613, column: 3, scope: !1023) +!1030 = !DILocation(line: 613, column: 15, scope: !1023) +!1031 = !DILocalVariable(name: "key", scope: !1023, file: !2, line: 617, type: !30) +!1032 = !DILocation(line: 617, column: 3, scope: !1023) +!1033 = !DILocation(line: 617, column: 10, scope: !1023) +!1034 = !DILocalVariable(name: "found", scope: !1023, file: !2, line: 618, type: !10) +!1035 = !DILocation(line: 618, column: 3, scope: !1023) +!1036 = !DILocation(line: 619, column: 3, scope: !1023) +!1037 = !DILocation(line: 622, column: 5, scope: !1038) +!1038 = distinct !DILexicalBlock(scope: !1039, file: !2, line: 621, column: 5) +!1039 = distinct !DILexicalBlock(scope: !1023, file: !2, line: 619, column: 3) +!1040 = !DILocation(line: 626, column: 3, scope: !1023) +!1041 = distinct !DISubprogram(name: "t17", linkageName: "t17", scope: !2, file: !2, line: 611, type: !5, scopeLine: 611, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!1042 = !DILocation(line: 611, column: 12, scope: !1041) +!1043 = distinct !DISubprogram(name: "t18", linkageName: "t18", scope: !2, file: !2, line: 630, type: !5, scopeLine: 630, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!1044 = !DILocalVariable(name: "_sender", scope: !1043, file: !2, line: 630, type: !55) +!1045 = !DILocation(line: 630, column: 12, scope: !1043) +!1046 = !DILocalVariable(name: "_origin", scope: !1043, file: !2, line: 630, type: !55) +!1047 = !DILocalVariable(name: "_amount", scope: !1043, file: !2, line: 630, type: !59) +!1048 = !DILocalVariable(name: "tname", scope: !1043, file: !2, line: 632, type: !30) +!1049 = !DILocation(line: 632, column: 3, scope: !1043) +!1050 = !DILocation(line: 632, column: 15, scope: !1043) +!1051 = !DILocalVariable(name: "key", scope: !1043, file: !2, line: 636, type: !30) +!1052 = !DILocation(line: 636, column: 3, scope: !1043) +!1053 = !DILocation(line: 636, column: 10, scope: !1043) +!1054 = !DILocalVariable(name: "found", scope: !1043, file: !2, line: 637, type: !10) +!1055 = !DILocation(line: 637, column: 3, scope: !1043) +!1056 = !DILocation(line: 638, column: 3, scope: !1043) +!1057 = !DILocation(line: 640, column: 5, scope: !1058) +!1058 = distinct !DILexicalBlock(scope: !1059, file: !2, line: 639, column: 5) +!1059 = distinct !DILexicalBlock(scope: !1043, file: !2, line: 638, column: 3) +!1060 = distinct !DISubprogram(name: "t18", linkageName: "t18", scope: !2, file: !2, line: 630, type: !5, scopeLine: 630, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!1061 = !DILocation(line: 630, column: 12, scope: !1060) diff --git a/testsuite/contr/map_corners_test.ll b/testsuite/contr/map_corners_test.ll index 7b5420da..a7ec80a6 100644 --- a/testsuite/contr/map_corners_test.ll +++ b/testsuite/contr/map_corners_test.ll @@ -4,7 +4,7 @@ ; 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-pc-linux-gnu" +target triple = "x86_64-unknown-linux-gnu" %"$TyDescrTy_PrimTyp_34" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } @@ -1045,7 +1045,7 @@ entry: declare i8* @_fetch_field(i8*, i8*, %_TyDescrTy_Typ*, i32, i8*, i32) -; Function Attrs: nofree nosync nounwind readnone speculatable willreturn +; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn declare i64 @llvm.umin.i64(i64, i64) #0 declare %TName_Bool* @_eq_String(i8*, %String, %String) @@ -9887,4 +9887,4 @@ entry: ret void } -attributes #0 = { nofree nosync nounwind readnone speculatable willreturn } +attributes #0 = { nocallback nofree nosync nounwind readnone speculatable willreturn } diff --git a/testsuite/contr/map_misc.dbg.ll b/testsuite/contr/map_misc.dbg.ll index 8fdbd368..c22bea57 100644 --- a/testsuite/contr/map_misc.dbg.ll +++ b/testsuite/contr/map_misc.dbg.ll @@ -4,7 +4,7 @@ ; 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-pc-linux-gnu" +target triple = "x86_64-unknown-linux-gnu" %"$TyDescrTy_PrimTyp_3" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } @@ -14,9 +14,9 @@ target triple = "x86_64-pc-linux-gnu" %TyDescrString = type { i8*, i32 } %Int32 = type { i32 } %Uint32 = type { i32 } -%"$ParamDescr_270" = type { %ParamDescrString, %_TyDescrTy_Typ* } +%"$ParamDescr_276" = type { %ParamDescrString, %_TyDescrTy_Typ* } %ParamDescrString = type { i8*, i32 } -%"$TransDescr_271" = type { %ParamDescrString, i32, %"$ParamDescr_270"* } +%"$TransDescr_277" = type { %ParamDescrString, i32, %"$ParamDescr_276"* } %Map_BNum_Int32 = type { i8*, %Int32 } %"Map_Int32_Map_(BNum)_(Int32)" = type { %Int32, %Map_BNum_Int32* } %Uint128 = type { i128 } @@ -74,29 +74,29 @@ target triple = "x86_64-pc-linux-gnu" @"$m1_171" = unnamed_addr constant [3 x i8] c"m1\00" @"$m1_189" = unnamed_addr constant [3 x i8] c"m1\00" @"$m1_207" = unnamed_addr constant [3 x i8] c"m1\00" -@"$m1_231" = unnamed_addr constant [3 x i8] c"m1\00" -@"$m2_260" = unnamed_addr constant [3 x i8] c"m2\00" +@"$m1_234" = unnamed_addr constant [3 x i8] c"m1\00" +@"$m2_263" = unnamed_addr constant [3 x i8] c"m2\00" @_tydescr_table = constant [19 x %_TyDescrTy_Typ*] [%_TyDescrTy_Typ* @"$TyDescr_Event_27", %_TyDescrTy_Typ* @"$TyDescr_Int64_9", %_TyDescrTy_Typ* @"$TyDescr_Addr_44", %_TyDescrTy_Typ* @"$TyDescr_Bystr20_35", %_TyDescrTy_Typ* @"$TyDescr_Uint256_19", %_TyDescrTy_Typ* @"$TyDescr_Uint32_7", %_TyDescrTy_Typ* @"$TyDescr_Uint64_11", %_TyDescrTy_Typ* @"$TyDescr_Bnum_23", %_TyDescrTy_Typ* @"$TyDescr_Uint128_15", %_TyDescrTy_Typ* @"$TyDescr_Exception_29", %_TyDescrTy_Typ* @"$TyDescr_String_21", %_TyDescrTy_Typ* @"$TyDescr_Map_40", %_TyDescrTy_Typ* @"$TyDescr_Int256_17", %_TyDescrTy_Typ* @"$TyDescr_Int128_13", %_TyDescrTy_Typ* @"$TyDescr_Map_41", %_TyDescrTy_Typ* @"$TyDescr_Bystr_33", %_TyDescrTy_Typ* @"$TyDescr_ReplicateContr_31", %_TyDescrTy_Typ* @"$TyDescr_Message_25", %_TyDescrTy_Typ* @"$TyDescr_Int32_5"] @_tydescr_table_length = constant i32 19 -@"$pname__scilla_version_272" = unnamed_addr constant [15 x i8] c"_scilla_version" -@"$pname__this_address_273" = unnamed_addr constant [13 x i8] c"_this_address" -@"$pname__creation_block_274" = unnamed_addr constant [15 x i8] c"_creation_block" -@_contract_parameters = constant [3 x %"$ParamDescr_270"] [%"$ParamDescr_270" { %ParamDescrString { i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$pname__scilla_version_272", i32 0, i32 0), i32 15 }, %_TyDescrTy_Typ* @"$TyDescr_Uint32_7" }, %"$ParamDescr_270" { %ParamDescrString { i8* getelementptr inbounds ([13 x i8], [13 x i8]* @"$pname__this_address_273", i32 0, i32 0), i32 13 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr20_35" }, %"$ParamDescr_270" { %ParamDescrString { i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$pname__creation_block_274", i32 0, i32 0), i32 15 }, %_TyDescrTy_Typ* @"$TyDescr_Bnum_23" }] +@"$pname__scilla_version_278" = unnamed_addr constant [15 x i8] c"_scilla_version" +@"$pname__this_address_279" = unnamed_addr constant [13 x i8] c"_this_address" +@"$pname__creation_block_280" = unnamed_addr constant [15 x i8] c"_creation_block" +@_contract_parameters = constant [3 x %"$ParamDescr_276"] [%"$ParamDescr_276" { %ParamDescrString { i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$pname__scilla_version_278", i32 0, i32 0), i32 15 }, %_TyDescrTy_Typ* @"$TyDescr_Uint32_7" }, %"$ParamDescr_276" { %ParamDescrString { i8* getelementptr inbounds ([13 x i8], [13 x i8]* @"$pname__this_address_279", i32 0, i32 0), i32 13 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr20_35" }, %"$ParamDescr_276" { %ParamDescrString { i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$pname__creation_block_280", i32 0, i32 0), i32 15 }, %_TyDescrTy_Typ* @"$TyDescr_Bnum_23" }] @_contract_parameters_length = constant i32 3 -@"$tpname__amount_275" = unnamed_addr constant [7 x i8] c"_amount" -@"$tpname__origin_276" = unnamed_addr constant [7 x i8] c"_origin" -@"$tpname__sender_277" = unnamed_addr constant [7 x i8] c"_sender" -@"$tparams_Push_278" = unnamed_addr constant [3 x %"$ParamDescr_270"] [%"$ParamDescr_270" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_275", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_15" }, %"$ParamDescr_270" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_276", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_44" }, %"$ParamDescr_270" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_277", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_44" }] -@"$tname_Push_279" = unnamed_addr constant [4 x i8] c"Push" -@"$tpname__amount_280" = unnamed_addr constant [7 x i8] c"_amount" -@"$tpname__origin_281" = unnamed_addr constant [7 x i8] c"_origin" -@"$tpname__sender_282" = unnamed_addr constant [7 x i8] c"_sender" -@"$tparams_PullPush_283" = unnamed_addr constant [3 x %"$ParamDescr_270"] [%"$ParamDescr_270" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_280", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_15" }, %"$ParamDescr_270" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_281", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_44" }, %"$ParamDescr_270" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_282", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_44" }] -@"$tname_PullPush_284" = unnamed_addr constant [8 x i8] c"PullPush" -@_transition_parameters = constant [2 x %"$TransDescr_271"] [%"$TransDescr_271" { %ParamDescrString { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$tname_Push_279", i32 0, i32 0), i32 4 }, i32 3, %"$ParamDescr_270"* getelementptr inbounds ([3 x %"$ParamDescr_270"], [3 x %"$ParamDescr_270"]* @"$tparams_Push_278", i32 0, i32 0) }, %"$TransDescr_271" { %ParamDescrString { i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$tname_PullPush_284", i32 0, i32 0), i32 8 }, i32 3, %"$ParamDescr_270"* getelementptr inbounds ([3 x %"$ParamDescr_270"], [3 x %"$ParamDescr_270"]* @"$tparams_PullPush_283", i32 0, i32 0) }] +@"$tpname__amount_281" = unnamed_addr constant [7 x i8] c"_amount" +@"$tpname__origin_282" = unnamed_addr constant [7 x i8] c"_origin" +@"$tpname__sender_283" = unnamed_addr constant [7 x i8] c"_sender" +@"$tparams_Push_284" = unnamed_addr constant [3 x %"$ParamDescr_276"] [%"$ParamDescr_276" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_281", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_15" }, %"$ParamDescr_276" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_282", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_44" }, %"$ParamDescr_276" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_283", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_44" }] +@"$tname_Push_285" = unnamed_addr constant [4 x i8] c"Push" +@"$tpname__amount_286" = unnamed_addr constant [7 x i8] c"_amount" +@"$tpname__origin_287" = unnamed_addr constant [7 x i8] c"_origin" +@"$tpname__sender_288" = unnamed_addr constant [7 x i8] c"_sender" +@"$tparams_PullPush_289" = unnamed_addr constant [3 x %"$ParamDescr_276"] [%"$ParamDescr_276" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_286", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_15" }, %"$ParamDescr_276" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_287", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_44" }, %"$ParamDescr_276" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_288", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_44" }] +@"$tname_PullPush_290" = unnamed_addr constant [8 x i8] c"PullPush" +@_transition_parameters = constant [2 x %"$TransDescr_277"] [%"$TransDescr_277" { %ParamDescrString { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$tname_Push_285", i32 0, i32 0), i32 4 }, i32 3, %"$ParamDescr_276"* getelementptr inbounds ([3 x %"$ParamDescr_276"], [3 x %"$ParamDescr_276"]* @"$tparams_Push_284", i32 0, i32 0) }, %"$TransDescr_277" { %ParamDescrString { i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$tname_PullPush_290", i32 0, i32 0), i32 8 }, i32 3, %"$ParamDescr_276"* getelementptr inbounds ([3 x %"$ParamDescr_276"], [3 x %"$ParamDescr_276"]* @"$tparams_PullPush_289", i32 0, i32 0) }] @_transition_parameters_length = constant i32 2 -define void @_init_libs() !dbg !4 { +define void @_init_libs() !dbg !3 { entry: %"$gasrem_48" = load i64, i64* @_gasrem, align 8 %"$gascmp_49" = icmp ugt i64 5, %"$gasrem_48" @@ -129,6 +129,7 @@ entry: %"$consume_57" = sub i64 %"$gasrem_53", 1 store i64 %"$consume_57", i64* @_gasrem, align 8 %"$m1_1" = alloca %Map_BNum_Int32*, align 8 + call void @llvm.dbg.declare(metadata %Map_BNum_Int32** %"$m1_1", metadata !11, metadata !DIExpression()), !dbg !14 %"$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" @@ -143,12 +144,13 @@ entry: %"$execptr_load_63" = load i8*, i8** @_execptr, align 8 %"$_new_empty_map_call_64" = call i8* @_new_empty_map(i8* %"$execptr_load_63") %"$_new_empty_map_65" = bitcast i8* %"$_new_empty_map_call_64" to %Map_BNum_Int32* - store %Map_BNum_Int32* %"$_new_empty_map_65", %Map_BNum_Int32** %"$m1_1", align 8, !dbg !11 + store %Map_BNum_Int32* %"$_new_empty_map_65", %Map_BNum_Int32** %"$m1_1", align 8, !dbg !15 %"$execptr_load_66" = load i8*, i8** @_execptr, align 8 %"$$m1_1_68" = load %Map_BNum_Int32*, %Map_BNum_Int32** %"$m1_1", align 8 %"$update_value_69" = bitcast %Map_BNum_Int32* %"$$m1_1_68" to i8* - call void @_update_field(i8* %"$execptr_load_66", i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$m1_67", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_41", i32 0, i8* null, i8* %"$update_value_69"), !dbg !11 + call void @_update_field(i8* %"$execptr_load_66", i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$m1_67", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_41", i32 0, i8* null, i8* %"$update_value_69"), !dbg !15 %"$m2_2" = alloca %"Map_Int32_Map_(BNum)_(Int32)"*, align 8 + call void @llvm.dbg.declare(metadata %"Map_Int32_Map_(BNum)_(Int32)"** %"$m2_2", metadata !16, metadata !DIExpression()), !dbg !19 %"$gasrem_70" = load i64, i64* @_gasrem, align 8 %"$gascmp_71" = icmp ugt i64 1, %"$gasrem_70" br i1 %"$gascmp_71", label %"$out_of_gas_72", label %"$have_gas_73" @@ -163,20 +165,32 @@ entry: %"$execptr_load_75" = load i8*, i8** @_execptr, align 8 %"$_new_empty_map_call_76" = call i8* @_new_empty_map(i8* %"$execptr_load_75") %"$_new_empty_map_77" = bitcast i8* %"$_new_empty_map_call_76" to %"Map_Int32_Map_(BNum)_(Int32)"* - store %"Map_Int32_Map_(BNum)_(Int32)"* %"$_new_empty_map_77", %"Map_Int32_Map_(BNum)_(Int32)"** %"$m2_2", align 8, !dbg !12 + store %"Map_Int32_Map_(BNum)_(Int32)"* %"$_new_empty_map_77", %"Map_Int32_Map_(BNum)_(Int32)"** %"$m2_2", align 8, !dbg !20 %"$execptr_load_78" = load i8*, i8** @_execptr, align 8 %"$$m2_2_80" = load %"Map_Int32_Map_(BNum)_(Int32)"*, %"Map_Int32_Map_(BNum)_(Int32)"** %"$m2_2", align 8 %"$update_value_81" = bitcast %"Map_Int32_Map_(BNum)_(Int32)"* %"$$m2_2_80" to i8* - call void @_update_field(i8* %"$execptr_load_78", i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$m2_79", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_40", i32 0, i8* null, i8* %"$update_value_81"), !dbg !12 + call void @_update_field(i8* %"$execptr_load_78", i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$m2_79", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_40", i32 0, i8* null, i8* %"$update_value_81"), !dbg !20 ret void } +; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn +declare void @llvm.dbg.declare(metadata, metadata, metadata) #0 + declare i8* @_new_empty_map(i8*) declare void @_update_field(i8*, i8*, %_TyDescrTy_Typ*, i32, i8*, i8*) -define internal void @"$Push_82"(%Uint128 %_amount, [20 x i8]* %"$_origin_83", [20 x i8]* %"$_sender_84") !dbg !13 { +define internal void @"$Push_82"(%Uint128 %_amount, [20 x i8]* %"$_origin_83", [20 x i8]* %"$_sender_84") !dbg !21 { entry: + %"$_sender_213" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_sender_84", [20 x i8]** %"$_sender_213", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_sender_213", metadata !22, metadata !DIExpression()), !dbg !24 + %"$_origin_212" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_origin_83", [20 x i8]** %"$_origin_212", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_origin_212", metadata !25, metadata !DIExpression()), !dbg !24 + %"$_amount_211" = alloca %Uint128, align 8 + store %Uint128 %_amount, %Uint128* %"$_amount_211", align 8 + call void @llvm.dbg.declare(metadata %Uint128* %"$_amount_211", metadata !26, metadata !DIExpression()), !dbg !24 %_origin = load [20 x i8], [20 x i8]* %"$_origin_83", align 1 %_sender = load [20 x i8], [20 x i8]* %"$_sender_84", align 1 %"$gasrem_85" = load i64, i64* @_gasrem, align 8 @@ -191,6 +205,7 @@ entry: %"$consume_89" = sub i64 %"$gasrem_85", 1 store i64 %"$consume_89", i64* @_gasrem, align 8 %k1 = alloca i8*, align 8 + call void @llvm.dbg.declare(metadata i8** %k1, metadata !28, metadata !DIExpression()), !dbg !31 %"$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" @@ -204,7 +219,7 @@ entry: store i64 %"$consume_94", i64* @_gasrem, align 8 %"$execptr_load_96" = load i8*, i8** @_execptr, align 8 %"$_new_bnum_call_97" = call i8* @_new_bnum(i8* %"$execptr_load_96", %BNumString { i8* getelementptr inbounds ([1 x i8], [1 x i8]* @"$BNumLit_95", i32 0, i32 0), i32 1 }) - store i8* %"$_new_bnum_call_97", i8** %k1, align 8, !dbg !14 + store i8* %"$_new_bnum_call_97", i8** %k1, align 8, !dbg !32 %"$gasrem_99" = load i64, i64* @_gasrem, align 8 %"$gascmp_100" = icmp ugt i64 1, %"$gasrem_99" br i1 %"$gascmp_100", label %"$out_of_gas_101", label %"$have_gas_102" @@ -217,6 +232,7 @@ entry: %"$consume_103" = sub i64 %"$gasrem_99", 1 store i64 %"$consume_103", i64* @_gasrem, align 8 %k2 = alloca i8*, align 8 + call void @llvm.dbg.declare(metadata i8** %k2, metadata !33, metadata !DIExpression()), !dbg !34 %"$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" @@ -230,7 +246,7 @@ entry: store i64 %"$consume_108", i64* @_gasrem, align 8 %"$execptr_load_110" = load i8*, i8** @_execptr, align 8 %"$_new_bnum_call_111" = call i8* @_new_bnum(i8* %"$execptr_load_110", %BNumString { i8* getelementptr inbounds ([1 x i8], [1 x i8]* @"$BNumLit_109", i32 0, i32 0), i32 1 }) - store i8* %"$_new_bnum_call_111", i8** %k2, align 8, !dbg !15 + store i8* %"$_new_bnum_call_111", i8** %k2, align 8, !dbg !35 %"$gasrem_113" = load i64, i64* @_gasrem, align 8 %"$gascmp_114" = icmp ugt i64 1, %"$gasrem_113" br i1 %"$gascmp_114", label %"$out_of_gas_115", label %"$have_gas_116" @@ -243,6 +259,7 @@ entry: %"$consume_117" = sub i64 %"$gasrem_113", 1 store i64 %"$consume_117", i64* @_gasrem, align 8 %k3 = alloca i8*, align 8 + call void @llvm.dbg.declare(metadata i8** %k3, metadata !36, metadata !DIExpression()), !dbg !37 %"$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" @@ -256,7 +273,7 @@ entry: store i64 %"$consume_122", i64* @_gasrem, align 8 %"$execptr_load_124" = load i8*, i8** @_execptr, align 8 %"$_new_bnum_call_125" = call i8* @_new_bnum(i8* %"$execptr_load_124", %BNumString { i8* getelementptr inbounds ([1 x i8], [1 x i8]* @"$BNumLit_123", i32 0, i32 0), i32 1 }) - store i8* %"$_new_bnum_call_125", i8** %k3, align 8, !dbg !16 + store i8* %"$_new_bnum_call_125", i8** %k3, align 8, !dbg !38 %"$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" @@ -269,6 +286,7 @@ entry: %"$consume_131" = sub i64 %"$gasrem_127", 1 store i64 %"$consume_131", i64* @_gasrem, align 8 %v1 = alloca %Int32, align 8 + call void @llvm.dbg.declare(metadata %Int32* %v1, metadata !39, metadata !DIExpression()), !dbg !41 %"$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" @@ -280,7 +298,7 @@ entry: "$have_gas_135": ; preds = %"$out_of_gas_134", %"$have_gas_130" %"$consume_136" = sub i64 %"$gasrem_132", 1 store i64 %"$consume_136", i64* @_gasrem, align 8 - store %Int32 { i32 42 }, %Int32* %v1, align 4, !dbg !17 + store %Int32 { i32 42 }, %Int32* %v1, align 4, !dbg !42 %"$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" @@ -293,6 +311,7 @@ entry: %"$consume_141" = sub i64 %"$gasrem_137", 1 store i64 %"$consume_141", i64* @_gasrem, align 8 %v2 = alloca %Int32, align 8 + call void @llvm.dbg.declare(metadata %Int32* %v2, metadata !43, metadata !DIExpression()), !dbg !44 %"$gasrem_142" = load i64, i64* @_gasrem, align 8 %"$gascmp_143" = icmp ugt i64 1, %"$gasrem_142" br i1 %"$gascmp_143", label %"$out_of_gas_144", label %"$have_gas_145" @@ -304,7 +323,7 @@ entry: "$have_gas_145": ; preds = %"$out_of_gas_144", %"$have_gas_140" %"$consume_146" = sub i64 %"$gasrem_142", 1 store i64 %"$consume_146", i64* @_gasrem, align 8 - store %Int32 { i32 239 }, %Int32* %v2, align 4, !dbg !18 + store %Int32 { i32 239 }, %Int32* %v2, align 4, !dbg !45 %"$gasrem_147" = load i64, i64* @_gasrem, align 8 %"$gascmp_148" = icmp ugt i64 1, %"$gasrem_147" br i1 %"$gascmp_148", label %"$out_of_gas_149", label %"$have_gas_150" @@ -317,6 +336,7 @@ entry: %"$consume_151" = sub i64 %"$gasrem_147", 1 store i64 %"$consume_151", i64* @_gasrem, align 8 %v3 = alloca %Int32, align 8 + call void @llvm.dbg.declare(metadata %Int32* %v3, metadata !46, metadata !DIExpression()), !dbg !47 %"$gasrem_152" = load i64, i64* @_gasrem, align 8 %"$gascmp_153" = icmp ugt i64 1, %"$gasrem_152" br i1 %"$gascmp_153", label %"$out_of_gas_154", label %"$have_gas_155" @@ -328,7 +348,7 @@ entry: "$have_gas_155": ; preds = %"$out_of_gas_154", %"$have_gas_150" %"$consume_156" = sub i64 %"$gasrem_152", 1 store i64 %"$consume_156", i64* @_gasrem, align 8 - store %Int32 { i32 112 }, %Int32* %v3, align 4, !dbg !19 + store %Int32 { i32 112 }, %Int32* %v3, align 4, !dbg !48 %"$_literal_cost_v1_157" = alloca %Int32, align 8 %"$v1_158" = load %Int32, %Int32* %v1, align 4 store %Int32 %"$v1_158", %Int32* %"$_literal_cost_v1_157", align 4 @@ -359,7 +379,7 @@ entry: %"$update_value_173" = alloca %Int32, align 8 store %Int32 %"$v1_172", %Int32* %"$update_value_173", align 4 %"$update_value_174" = bitcast %Int32* %"$update_value_173" to i8* - call void @_update_field(i8* %"$execptr_load_170", i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$m1_171", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_41", i32 1, i8* %"$indices_buf_167", i8* %"$update_value_174"), !dbg !20 + call void @_update_field(i8* %"$execptr_load_170", i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$m1_171", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_41", i32 1, i8* %"$indices_buf_167", i8* %"$update_value_174"), !dbg !49 %"$_literal_cost_v2_175" = alloca %Int32, align 8 %"$v2_176" = load %Int32, %Int32* %v2, align 4 store %Int32 %"$v2_176", %Int32* %"$_literal_cost_v2_175", align 4 @@ -390,7 +410,7 @@ entry: %"$update_value_191" = alloca %Int32, align 8 store %Int32 %"$v2_190", %Int32* %"$update_value_191", align 4 %"$update_value_192" = bitcast %Int32* %"$update_value_191" to i8* - call void @_update_field(i8* %"$execptr_load_188", i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$m1_189", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_41", i32 1, i8* %"$indices_buf_185", i8* %"$update_value_192"), !dbg !21 + call void @_update_field(i8* %"$execptr_load_188", i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$m1_189", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_41", i32 1, i8* %"$indices_buf_185", i8* %"$update_value_192"), !dbg !50 %"$_literal_cost_v3_193" = alloca %Int32, align 8 %"$v3_194" = load %Int32, %Int32* %v3, align 4 store %Int32 %"$v3_194", %Int32* %"$_literal_cost_v3_193", align 4 @@ -421,7 +441,7 @@ entry: %"$update_value_209" = alloca %Int32, align 8 store %Int32 %"$v3_208", %Int32* %"$update_value_209", align 4 %"$update_value_210" = bitcast %Int32* %"$update_value_209" to i8* - call void @_update_field(i8* %"$execptr_load_206", i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$m1_207", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_41", i32 1, i8* %"$indices_buf_203", i8* %"$update_value_210"), !dbg !22 + call void @_update_field(i8* %"$execptr_load_206", i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$m1_207", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_41", i32 1, i8* %"$indices_buf_203", i8* %"$update_value_210"), !dbg !51 ret void } @@ -431,97 +451,108 @@ declare i64 @_literal_cost(%_TyDescrTy_Typ*, i8*) declare i8* @_salloc(i8*, i64) -define void @Push(i8* %0) !dbg !23 { +define void @Push(i8* %0) !dbg !52 { entry: - %"$_amount_212" = getelementptr i8, i8* %0, i32 0 - %"$_amount_213" = bitcast i8* %"$_amount_212" to %Uint128* - %_amount = load %Uint128, %Uint128* %"$_amount_213", align 8 - %"$_origin_214" = getelementptr i8, i8* %0, i32 16 - %"$_origin_215" = bitcast i8* %"$_origin_214" to [20 x i8]* - %"$_sender_216" = getelementptr i8, i8* %0, i32 36 - %"$_sender_217" = bitcast i8* %"$_sender_216" to [20 x i8]* - call void @"$Push_82"(%Uint128 %_amount, [20 x i8]* %"$_origin_215", [20 x i8]* %"$_sender_217"), !dbg !24 + %"$_amount_215" = getelementptr i8, i8* %0, i32 0 + %"$_amount_216" = bitcast i8* %"$_amount_215" to %Uint128* + %_amount = load %Uint128, %Uint128* %"$_amount_216", align 8 + %"$_origin_217" = getelementptr i8, i8* %0, i32 16 + %"$_origin_218" = bitcast i8* %"$_origin_217" to [20 x i8]* + %"$_sender_219" = getelementptr i8, i8* %0, i32 36 + %"$_sender_220" = bitcast i8* %"$_sender_219" to [20 x i8]* + call void @"$Push_82"(%Uint128 %_amount, [20 x i8]* %"$_origin_218", [20 x i8]* %"$_sender_220"), !dbg !53 ret void } -define internal void @"$PullPush_218"(%Uint128 %_amount, [20 x i8]* %"$_origin_219", [20 x i8]* %"$_sender_220") !dbg !25 { +define internal void @"$PullPush_221"(%Uint128 %_amount, [20 x i8]* %"$_origin_222", [20 x i8]* %"$_sender_223") !dbg !54 { entry: - %_origin = load [20 x i8], [20 x i8]* %"$_origin_219", align 1 - %_sender = load [20 x i8], [20 x i8]* %"$_sender_220", align 1 - %"$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 = %entry + %"$_sender_268" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_sender_223", [20 x i8]** %"$_sender_268", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_sender_268", metadata !55, metadata !DIExpression()), !dbg !56 + %"$_origin_267" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_origin_222", [20 x i8]** %"$_origin_267", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_origin_267", metadata !57, metadata !DIExpression()), !dbg !56 + %"$_amount_266" = alloca %Uint128, align 8 + store %Uint128 %_amount, %Uint128* %"$_amount_266", align 8 + call void @llvm.dbg.declare(metadata %Uint128* %"$_amount_266", metadata !58, metadata !DIExpression()), !dbg !56 + %_origin = load [20 x i8], [20 x i8]* %"$_origin_222", align 1 + %_sender = load [20 x i8], [20 x i8]* %"$_sender_223", align 1 + %"$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_226": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_224" + br label %"$have_gas_227" -"$have_gas_224": ; preds = %"$out_of_gas_223", %entry - %"$consume_225" = sub i64 %"$gasrem_221", 1 - store i64 %"$consume_225", 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 %k1 = alloca %Int32, 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" + call void @llvm.dbg.declare(metadata %Int32* %k1, metadata !59, metadata !DIExpression()), !dbg !60 + %"$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_228": ; preds = %"$have_gas_224" +"$out_of_gas_231": ; preds = %"$have_gas_227" call void @_out_of_gas() - br label %"$have_gas_229" + br label %"$have_gas_232" -"$have_gas_229": ; preds = %"$out_of_gas_228", %"$have_gas_224" - %"$consume_230" = sub i64 %"$gasrem_226", 1 - store i64 %"$consume_230", i64* @_gasrem, align 8 - store %Int32 { i32 42 }, %Int32* %k1, align 4, !dbg !26 +"$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 + store %Int32 { i32 42 }, %Int32* %k1, align 4, !dbg !61 %v1 = alloca %Map_BNum_Int32*, align 8 - %"$execptr_load_232" = load i8*, i8** @_execptr, align 8 - %"$v1_call_233" = call i8* @_fetch_field(i8* %"$execptr_load_232", i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$m1_231", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_41", i32 0, i8* null, i32 1), !dbg !27 - %"$v1_234" = bitcast i8* %"$v1_call_233" to %Map_BNum_Int32* - store %Map_BNum_Int32* %"$v1_234", %Map_BNum_Int32** %v1, align 8 - %"$v1_235" = load %Map_BNum_Int32*, %Map_BNum_Int32** %v1, align 8 - %"$$v1_235_236" = bitcast %Map_BNum_Int32* %"$v1_235" to i8* - %"$_literal_cost_call_237" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Map_41", i8* %"$$v1_235_236") + call void @llvm.dbg.declare(metadata %Map_BNum_Int32** %v1, metadata !62, metadata !DIExpression()), !dbg !63 + %"$execptr_load_235" = load i8*, i8** @_execptr, align 8 + %"$v1_call_236" = call i8* @_fetch_field(i8* %"$execptr_load_235", i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$m1_234", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_41", i32 0, i8* null, i32 1), !dbg !63 + %"$v1_237" = bitcast i8* %"$v1_call_236" to %Map_BNum_Int32* + store %Map_BNum_Int32* %"$v1_237", %Map_BNum_Int32** %v1, align 8 %"$v1_238" = load %Map_BNum_Int32*, %Map_BNum_Int32** %v1, align 8 %"$$v1_238_239" = bitcast %Map_BNum_Int32* %"$v1_238" to i8* - %"$_mapsortcost_call_240" = call i64 @_mapsortcost(%_TyDescrTy_Typ* @"$TyDescr_Map_41", i8* %"$$v1_238_239") - %"$gasadd_241" = add i64 %"$_literal_cost_call_237", %"$_mapsortcost_call_240" - %"$gasrem_242" = load i64, i64* @_gasrem, align 8 - %"$gascmp_243" = icmp ugt i64 %"$gasadd_241", %"$gasrem_242" - br i1 %"$gascmp_243", label %"$out_of_gas_244", label %"$have_gas_245" - -"$out_of_gas_244": ; preds = %"$have_gas_229" + %"$_literal_cost_call_240" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Map_41", i8* %"$$v1_238_239") + %"$v1_241" = load %Map_BNum_Int32*, %Map_BNum_Int32** %v1, align 8 + %"$$v1_241_242" = bitcast %Map_BNum_Int32* %"$v1_241" to i8* + %"$_mapsortcost_call_243" = call i64 @_mapsortcost(%_TyDescrTy_Typ* @"$TyDescr_Map_41", i8* %"$$v1_241_242") + %"$gasadd_244" = add i64 %"$_literal_cost_call_240", %"$_mapsortcost_call_243" + %"$gasrem_245" = load i64, i64* @_gasrem, align 8 + %"$gascmp_246" = icmp ugt i64 %"$gasadd_244", %"$gasrem_245" + br i1 %"$gascmp_246", label %"$out_of_gas_247", label %"$have_gas_248" + +"$out_of_gas_247": ; preds = %"$have_gas_232" call void @_out_of_gas() - br label %"$have_gas_245" - -"$have_gas_245": ; preds = %"$out_of_gas_244", %"$have_gas_229" - %"$consume_246" = sub i64 %"$gasrem_242", %"$gasadd_241" - store i64 %"$consume_246", i64* @_gasrem, align 8 - %"$v1_247" = load %Map_BNum_Int32*, %Map_BNum_Int32** %v1, align 8 - %"$$v1_247_248" = bitcast %Map_BNum_Int32* %"$v1_247" to i8* - %"$_literal_cost_call_249" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Map_41", i8* %"$$v1_247_248") - %"$gasadd_250" = add i64 %"$_literal_cost_call_249", 1 - %"$gasrem_251" = load i64, i64* @_gasrem, align 8 - %"$gascmp_252" = icmp ugt i64 %"$gasadd_250", %"$gasrem_251" - br i1 %"$gascmp_252", label %"$out_of_gas_253", label %"$have_gas_254" - -"$out_of_gas_253": ; preds = %"$have_gas_245" + br label %"$have_gas_248" + +"$have_gas_248": ; preds = %"$out_of_gas_247", %"$have_gas_232" + %"$consume_249" = sub i64 %"$gasrem_245", %"$gasadd_244" + store i64 %"$consume_249", i64* @_gasrem, align 8 + %"$v1_250" = load %Map_BNum_Int32*, %Map_BNum_Int32** %v1, align 8 + %"$$v1_250_251" = bitcast %Map_BNum_Int32* %"$v1_250" to i8* + %"$_literal_cost_call_252" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Map_41", i8* %"$$v1_250_251") + %"$gasadd_253" = add i64 %"$_literal_cost_call_252", 1 + %"$gasrem_254" = load i64, i64* @_gasrem, align 8 + %"$gascmp_255" = icmp ugt i64 %"$gasadd_253", %"$gasrem_254" + br i1 %"$gascmp_255", label %"$out_of_gas_256", label %"$have_gas_257" + +"$out_of_gas_256": ; preds = %"$have_gas_248" call void @_out_of_gas() - br label %"$have_gas_254" - -"$have_gas_254": ; preds = %"$out_of_gas_253", %"$have_gas_245" - %"$consume_255" = sub i64 %"$gasrem_251", %"$gasadd_250" - store i64 %"$consume_255", i64* @_gasrem, align 8 - %"$indices_buf_256_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$indices_buf_256_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_256_salloc_load", i64 4) - %"$indices_buf_256_salloc" = bitcast i8* %"$indices_buf_256_salloc_salloc" to [4 x i8]* - %"$indices_buf_256" = bitcast [4 x i8]* %"$indices_buf_256_salloc" to i8* - %"$k1_257" = load %Int32, %Int32* %k1, align 4 - %"$indices_gep_258" = getelementptr i8, i8* %"$indices_buf_256", i32 0 - %indices_cast = bitcast i8* %"$indices_gep_258" to %Int32* - store %Int32 %"$k1_257", %Int32* %indices_cast, align 4 - %"$execptr_load_259" = load i8*, i8** @_execptr, align 8 - %"$v1_261" = load %Map_BNum_Int32*, %Map_BNum_Int32** %v1, align 8 - %"$update_value_262" = bitcast %Map_BNum_Int32* %"$v1_261" to i8* - call void @_update_field(i8* %"$execptr_load_259", i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$m2_260", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_40", i32 1, i8* %"$indices_buf_256", i8* %"$update_value_262"), !dbg !28 + br label %"$have_gas_257" + +"$have_gas_257": ; preds = %"$out_of_gas_256", %"$have_gas_248" + %"$consume_258" = sub i64 %"$gasrem_254", %"$gasadd_253" + store i64 %"$consume_258", i64* @_gasrem, align 8 + %"$indices_buf_259_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$indices_buf_259_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_259_salloc_load", i64 4) + %"$indices_buf_259_salloc" = bitcast i8* %"$indices_buf_259_salloc_salloc" to [4 x i8]* + %"$indices_buf_259" = bitcast [4 x i8]* %"$indices_buf_259_salloc" to i8* + %"$k1_260" = load %Int32, %Int32* %k1, align 4 + %"$indices_gep_261" = getelementptr i8, i8* %"$indices_buf_259", i32 0 + %indices_cast = bitcast i8* %"$indices_gep_261" to %Int32* + store %Int32 %"$k1_260", %Int32* %indices_cast, align 4 + %"$execptr_load_262" = load i8*, i8** @_execptr, align 8 + %"$v1_264" = load %Map_BNum_Int32*, %Map_BNum_Int32** %v1, align 8 + %"$update_value_265" = bitcast %Map_BNum_Int32* %"$v1_264" to i8* + call void @_update_field(i8* %"$execptr_load_262", i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$m2_263", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_40", i32 1, i8* %"$indices_buf_259", i8* %"$update_value_265"), !dbg !64 ret void } @@ -529,50 +560,88 @@ declare i8* @_fetch_field(i8*, i8*, %_TyDescrTy_Typ*, i32, i8*, i32) declare i64 @_mapsortcost(%_TyDescrTy_Typ*, i8*) -define void @PullPush(i8* %0) !dbg !29 { +define void @PullPush(i8* %0) !dbg !65 { entry: - %"$_amount_264" = getelementptr i8, i8* %0, i32 0 - %"$_amount_265" = bitcast i8* %"$_amount_264" to %Uint128* - %_amount = load %Uint128, %Uint128* %"$_amount_265", align 8 - %"$_origin_266" = getelementptr i8, i8* %0, i32 16 - %"$_origin_267" = bitcast i8* %"$_origin_266" to [20 x i8]* - %"$_sender_268" = getelementptr i8, i8* %0, i32 36 - %"$_sender_269" = bitcast i8* %"$_sender_268" to [20 x i8]* - call void @"$PullPush_218"(%Uint128 %_amount, [20 x i8]* %"$_origin_267", [20 x i8]* %"$_sender_269"), !dbg !30 + %"$_amount_270" = getelementptr i8, i8* %0, i32 0 + %"$_amount_271" = bitcast i8* %"$_amount_270" to %Uint128* + %_amount = load %Uint128, %Uint128* %"$_amount_271", align 8 + %"$_origin_272" = getelementptr i8, i8* %0, i32 16 + %"$_origin_273" = bitcast i8* %"$_origin_272" to [20 x i8]* + %"$_sender_274" = getelementptr i8, i8* %0, i32 36 + %"$_sender_275" = bitcast i8* %"$_sender_274" to [20 x i8]* + call void @"$PullPush_221"(%Uint128 %_amount, [20 x i8]* %"$_origin_273", [20 x i8]* %"$_sender_275"), !dbg !66 ret void } +attributes #0 = { nocallback nofree nosync nounwind readnone speculatable willreturn } + !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) +!1 = distinct !DICompileUnit(language: DW_LANG_C89, file: !2, producer: "Scilla Compiler", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false) !2 = !DIFile(filename: "map_misc.scilla", directory: "codegen/contr") -!3 = !{} -!4 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !5, file: !5, type: !6, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!5 = !DIFile(filename: ".", directory: ".") -!6 = !DISubroutineType(types: !7) -!7 = !{!8} -!8 = !DIBasicType(tag: DW_TAG_unspecified_type, name: "void") -!9 = !DILocation(line: 0, scope: !4) -!10 = distinct !DISubprogram(name: "_deploy_ops", linkageName: "_deploy_ops", scope: !5, file: !5, type: !6, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!11 = !DILocation(line: 7, column: 29, scope: !10) -!12 = !DILocation(line: 8, column: 43, scope: !10) -!13 = distinct !DISubprogram(name: "Push", linkageName: "Push", scope: !2, file: !2, line: 10, type: !6, scopeLine: 10, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!14 = !DILocation(line: 11, column: 8, scope: !13) -!15 = !DILocation(line: 12, column: 8, scope: !13) -!16 = !DILocation(line: 13, column: 8, scope: !13) -!17 = !DILocation(line: 14, column: 8, scope: !13) -!18 = !DILocation(line: 15, column: 8, scope: !13) -!19 = !DILocation(line: 16, column: 8, scope: !13) -!20 = !DILocation(line: 17, column: 3, scope: !13) -!21 = !DILocation(line: 18, column: 3, scope: !13) -!22 = !DILocation(line: 19, column: 3, scope: !13) -!23 = distinct !DISubprogram(name: "Push", linkageName: "Push", scope: !2, file: !2, line: 10, type: !6, scopeLine: 10, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!24 = !DILocation(line: 10, column: 12, scope: !23) -!25 = distinct !DISubprogram(name: "PullPush", linkageName: "PullPush", scope: !2, file: !2, line: 22, type: !6, scopeLine: 22, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!26 = !DILocation(line: 23, column: 8, scope: !25) -!27 = !DILocation(line: 24, column: 3, scope: !25) -!28 = !DILocation(line: 25, column: 3, scope: !25) -!29 = distinct !DISubprogram(name: "PullPush", linkageName: "PullPush", scope: !2, file: !2, line: 22, type: !6, scopeLine: 22, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!30 = !DILocation(line: 22, column: 12, scope: !29) +!3 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !4, file: !4, type: !5, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!4 = !DIFile(filename: ".", directory: ".") +!5 = !DISubroutineType(types: !6) +!6 = !{!7} +!7 = !DIBasicType(tag: DW_TAG_unspecified_type, name: "void") +!8 = !{} +!9 = !DILocation(line: 0, scope: !3) +!10 = distinct !DISubprogram(name: "_deploy_ops", linkageName: "_deploy_ops", scope: !4, file: !4, type: !5, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!11 = !DILocalVariable(name: "$m1_1", scope: !10, file: !2, line: 7, type: !12) +!12 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "Map (BNum) (Int32)", baseType: !13, size: 8, align: 8, dwarfAddressSpace: 0) +!13 = !DIBasicType(name: "Map (BNum) (Int32)", size: 8) +!14 = !DILocation(line: 7, column: 7, scope: !10) +!15 = !DILocation(line: 7, column: 29, scope: !10) +!16 = !DILocalVariable(name: "$m2_2", scope: !10, file: !2, line: 8, type: !17) +!17 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "Map (Int32) (Map (BNum) (Int32))", baseType: !18, size: 8, align: 8, dwarfAddressSpace: 0) +!18 = !DIBasicType(name: "Map (Int32) (Map (BNum) (Int32))", size: 8) +!19 = !DILocation(line: 8, column: 7, scope: !10) +!20 = !DILocation(line: 8, column: 43, scope: !10) +!21 = distinct !DISubprogram(name: "Push", linkageName: "Push", scope: !2, file: !2, line: 10, type: !5, scopeLine: 10, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!22 = !DILocalVariable(name: "_sender", scope: !21, file: !2, line: 10, type: !23) +!23 = !DIBasicType(name: "ByStr20 with end", size: 20) +!24 = !DILocation(line: 10, column: 12, scope: !21) +!25 = !DILocalVariable(name: "_origin", scope: !21, file: !2, line: 10, type: !23) +!26 = !DILocalVariable(name: "_amount", scope: !21, file: !2, line: 10, type: !27) +!27 = !DIBasicType(name: "Uint128", size: 16) +!28 = !DILocalVariable(name: "k1", scope: !21, file: !2, line: 11, type: !29) +!29 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "BNum", baseType: !30, size: 8, align: 8, dwarfAddressSpace: 0) +!30 = !DIBasicType(name: "BNum", size: 8) +!31 = !DILocation(line: 11, column: 3, scope: !21) +!32 = !DILocation(line: 11, column: 8, scope: !21) +!33 = !DILocalVariable(name: "k2", scope: !21, file: !2, line: 12, type: !29) +!34 = !DILocation(line: 12, column: 3, scope: !21) +!35 = !DILocation(line: 12, column: 8, scope: !21) +!36 = !DILocalVariable(name: "k3", scope: !21, file: !2, line: 13, type: !29) +!37 = !DILocation(line: 13, column: 3, scope: !21) +!38 = !DILocation(line: 13, column: 8, scope: !21) +!39 = !DILocalVariable(name: "v1", scope: !21, file: !2, line: 14, type: !40) +!40 = !DIBasicType(name: "Int32", size: 4) +!41 = !DILocation(line: 14, column: 3, scope: !21) +!42 = !DILocation(line: 14, column: 8, scope: !21) +!43 = !DILocalVariable(name: "v2", scope: !21, file: !2, line: 15, type: !40) +!44 = !DILocation(line: 15, column: 3, scope: !21) +!45 = !DILocation(line: 15, column: 8, scope: !21) +!46 = !DILocalVariable(name: "v3", scope: !21, file: !2, line: 16, type: !40) +!47 = !DILocation(line: 16, column: 3, scope: !21) +!48 = !DILocation(line: 16, column: 8, scope: !21) +!49 = !DILocation(line: 17, column: 3, scope: !21) +!50 = !DILocation(line: 18, column: 3, scope: !21) +!51 = !DILocation(line: 19, column: 3, scope: !21) +!52 = distinct !DISubprogram(name: "Push", linkageName: "Push", scope: !2, file: !2, line: 10, type: !5, scopeLine: 10, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!53 = !DILocation(line: 10, column: 12, scope: !52) +!54 = distinct !DISubprogram(name: "PullPush", linkageName: "PullPush", scope: !2, file: !2, line: 22, type: !5, scopeLine: 22, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!55 = !DILocalVariable(name: "_sender", scope: !54, file: !2, line: 22, type: !23) +!56 = !DILocation(line: 22, column: 12, scope: !54) +!57 = !DILocalVariable(name: "_origin", scope: !54, file: !2, line: 22, type: !23) +!58 = !DILocalVariable(name: "_amount", scope: !54, file: !2, line: 22, type: !27) +!59 = !DILocalVariable(name: "k1", scope: !54, file: !2, line: 23, type: !40) +!60 = !DILocation(line: 23, column: 3, scope: !54) +!61 = !DILocation(line: 23, column: 8, scope: !54) +!62 = !DILocalVariable(name: "v1", scope: !54, file: !2, line: 24, type: !12) +!63 = !DILocation(line: 24, column: 3, scope: !54) +!64 = !DILocation(line: 25, column: 3, scope: !54) +!65 = distinct !DISubprogram(name: "PullPush", linkageName: "PullPush", scope: !2, file: !2, line: 22, type: !5, scopeLine: 22, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!66 = !DILocation(line: 22, column: 12, scope: !65) diff --git a/testsuite/contr/map_misc.ll b/testsuite/contr/map_misc.ll index def438fe..0964ddb6 100644 --- a/testsuite/contr/map_misc.ll +++ b/testsuite/contr/map_misc.ll @@ -4,7 +4,7 @@ ; 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-pc-linux-gnu" +target triple = "x86_64-unknown-linux-gnu" %"$TyDescrTy_PrimTyp_3" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/testsuite/contr/match_assign.dbg.ll b/testsuite/contr/match_assign.dbg.ll index 974a9548..880c0fdc 100644 --- a/testsuite/contr/match_assign.dbg.ll +++ b/testsuite/contr/match_assign.dbg.ll @@ -4,7 +4,7 @@ ; 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-pc-linux-gnu" +target triple = "x86_64-unknown-linux-gnu" %"$TyDescrTy_PrimTyp_3" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } @@ -16,9 +16,9 @@ target triple = "x86_64-pc-linux-gnu" %"$TyDescr_AddrFieldTyp_41" = type { %TyDescrString, %_TyDescrTy_Typ* } %Int32 = type { i32 } %Uint32 = type { i32 } -%"$ParamDescr_222" = type { %ParamDescrString, %_TyDescrTy_Typ* } +%"$ParamDescr_230" = type { %ParamDescrString, %_TyDescrTy_Typ* } %ParamDescrString = type { i8*, i32 } -%"$TransDescr_223" = type { %ParamDescrString, i32, %"$ParamDescr_222"* } +%"$TransDescr_231" = type { %ParamDescrString, i32, %"$ParamDescr_230"* } %Uint128 = type { i128 } %String = type { i8*, i32 } %TName_Bool = type { i8, %CName_True*, %CName_False* } @@ -83,21 +83,21 @@ target triple = "x86_64-pc-linux-gnu" @"$stringlit_89" = unnamed_addr constant [7 x i8] c"message" @_tydescr_table = constant [18 x %_TyDescrTy_Typ*] [%_TyDescrTy_Typ* @"$TyDescr_Event_27", %_TyDescrTy_Typ* @"$TyDescr_Int64_9", %_TyDescrTy_Typ* @"$TyDescr_Addr_43", %_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_39", %_TyDescrTy_Typ* @"$TyDescr_Bystr20_35", %_TyDescrTy_Typ* @"$TyDescr_Uint256_19", %_TyDescrTy_Typ* @"$TyDescr_Uint32_7", %_TyDescrTy_Typ* @"$TyDescr_Uint64_11", %_TyDescrTy_Typ* @"$TyDescr_Bnum_23", %_TyDescrTy_Typ* @"$TyDescr_Uint128_15", %_TyDescrTy_Typ* @"$TyDescr_Exception_29", %_TyDescrTy_Typ* @"$TyDescr_String_21", %_TyDescrTy_Typ* @"$TyDescr_Int256_17", %_TyDescrTy_Typ* @"$TyDescr_Int128_13", %_TyDescrTy_Typ* @"$TyDescr_Bystr_33", %_TyDescrTy_Typ* @"$TyDescr_ReplicateContr_31", %_TyDescrTy_Typ* @"$TyDescr_Message_25", %_TyDescrTy_Typ* @"$TyDescr_Int32_5"] @_tydescr_table_length = constant i32 18 -@"$pname__scilla_version_224" = unnamed_addr constant [15 x i8] c"_scilla_version" -@"$pname__this_address_225" = unnamed_addr constant [13 x i8] c"_this_address" -@"$pname__creation_block_226" = unnamed_addr constant [15 x i8] c"_creation_block" -@_contract_parameters = constant [3 x %"$ParamDescr_222"] [%"$ParamDescr_222" { %ParamDescrString { i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$pname__scilla_version_224", i32 0, i32 0), i32 15 }, %_TyDescrTy_Typ* @"$TyDescr_Uint32_7" }, %"$ParamDescr_222" { %ParamDescrString { i8* getelementptr inbounds ([13 x i8], [13 x i8]* @"$pname__this_address_225", i32 0, i32 0), i32 13 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr20_35" }, %"$ParamDescr_222" { %ParamDescrString { i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$pname__creation_block_226", i32 0, i32 0), i32 15 }, %_TyDescrTy_Typ* @"$TyDescr_Bnum_23" }] +@"$pname__scilla_version_232" = unnamed_addr constant [15 x i8] c"_scilla_version" +@"$pname__this_address_233" = unnamed_addr constant [13 x i8] c"_this_address" +@"$pname__creation_block_234" = unnamed_addr constant [15 x i8] c"_creation_block" +@_contract_parameters = constant [3 x %"$ParamDescr_230"] [%"$ParamDescr_230" { %ParamDescrString { i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$pname__scilla_version_232", i32 0, i32 0), i32 15 }, %_TyDescrTy_Typ* @"$TyDescr_Uint32_7" }, %"$ParamDescr_230" { %ParamDescrString { i8* getelementptr inbounds ([13 x i8], [13 x i8]* @"$pname__this_address_233", i32 0, i32 0), i32 13 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr20_35" }, %"$ParamDescr_230" { %ParamDescrString { i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$pname__creation_block_234", i32 0, i32 0), i32 15 }, %_TyDescrTy_Typ* @"$TyDescr_Bnum_23" }] @_contract_parameters_length = constant i32 3 -@"$tpname__amount_227" = unnamed_addr constant [7 x i8] c"_amount" -@"$tpname__origin_228" = unnamed_addr constant [7 x i8] c"_origin" -@"$tpname__sender_229" = unnamed_addr constant [7 x i8] c"_sender" -@"$tpname_c_230" = unnamed_addr constant [1 x i8] c"c" -@"$tparams_t1_231" = unnamed_addr constant [4 x %"$ParamDescr_222"] [%"$ParamDescr_222" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_227", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_15" }, %"$ParamDescr_222" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_228", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_43" }, %"$ParamDescr_222" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_229", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_43" }, %"$ParamDescr_222" { %ParamDescrString { i8* getelementptr inbounds ([1 x i8], [1 x i8]* @"$tpname_c_230", i32 0, i32 0), i32 1 }, %_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_39" }] -@"$tname_t1_232" = unnamed_addr constant [2 x i8] c"t1" -@_transition_parameters = constant [1 x %"$TransDescr_223"] [%"$TransDescr_223" { %ParamDescrString { i8* getelementptr inbounds ([2 x i8], [2 x i8]* @"$tname_t1_232", i32 0, i32 0), i32 2 }, i32 4, %"$ParamDescr_222"* getelementptr inbounds ([4 x %"$ParamDescr_222"], [4 x %"$ParamDescr_222"]* @"$tparams_t1_231", i32 0, i32 0) }] +@"$tpname__amount_235" = unnamed_addr constant [7 x i8] c"_amount" +@"$tpname__origin_236" = unnamed_addr constant [7 x i8] c"_origin" +@"$tpname__sender_237" = unnamed_addr constant [7 x i8] c"_sender" +@"$tpname_c_238" = unnamed_addr constant [1 x i8] c"c" +@"$tparams_t1_239" = unnamed_addr constant [4 x %"$ParamDescr_230"] [%"$ParamDescr_230" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_235", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_15" }, %"$ParamDescr_230" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_236", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_43" }, %"$ParamDescr_230" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_237", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_43" }, %"$ParamDescr_230" { %ParamDescrString { i8* getelementptr inbounds ([1 x i8], [1 x i8]* @"$tpname_c_238", i32 0, i32 0), i32 1 }, %_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_39" }] +@"$tname_t1_240" = unnamed_addr constant [2 x i8] c"t1" +@_transition_parameters = constant [1 x %"$TransDescr_231"] [%"$TransDescr_231" { %ParamDescrString { i8* getelementptr inbounds ([2 x i8], [2 x i8]* @"$tname_t1_240", i32 0, i32 0), i32 2 }, i32 4, %"$ParamDescr_230"* getelementptr inbounds ([4 x %"$ParamDescr_230"], [4 x %"$ParamDescr_230"]* @"$tparams_t1_239", i32 0, i32 0) }] @_transition_parameters_length = constant i32 1 -define void @_init_libs() !dbg !4 { +define void @_init_libs() !dbg !3 { entry: %"$gasrem_57" = load i64, i64* @_gasrem, align 8 %"$gascmp_58" = icmp ugt i64 5, %"$gasrem_57" @@ -134,6 +134,18 @@ entry: define internal void @"$create_event_67"(%Uint128 %_amount, [20 x i8]* %"$_origin_68", [20 x i8]* %"$_sender_69", %Int32 %m) !dbg !11 { entry: + %"$m_110" = alloca %Int32, align 8 + store %Int32 %m, %Int32* %"$m_110", align 4 + call void @llvm.dbg.declare(metadata %Int32* %"$m_110", metadata !12, metadata !DIExpression()), !dbg !14 + %"$_sender_109" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_sender_69", [20 x i8]** %"$_sender_109", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_sender_109", metadata !15, metadata !DIExpression()), !dbg !17 + %"$_origin_108" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_origin_68", [20 x i8]** %"$_origin_108", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_origin_108", metadata !18, metadata !DIExpression()), !dbg !17 + %"$_amount_107" = alloca %Uint128, align 8 + store %Uint128 %_amount, %Uint128* %"$_amount_107", align 8 + call void @llvm.dbg.declare(metadata %Uint128* %"$_amount_107", metadata !19, metadata !DIExpression()), !dbg !17 %_origin = load [20 x i8], [20 x i8]* %"$_origin_68", align 1 %_sender = load [20 x i8], [20 x i8]* %"$_sender_69", align 1 %"$gasrem_70" = load i64, i64* @_gasrem, align 8 @@ -148,6 +160,7 @@ entry: %"$consume_74" = sub i64 %"$gasrem_70", 1 store i64 %"$consume_74", i64* @_gasrem, align 8 %e = alloca i8*, align 8 + call void @llvm.dbg.declare(metadata i8** %e, metadata !21, metadata !DIExpression()), !dbg !24 %"$gasrem_75" = load i64, i64* @_gasrem, align 8 %"$gascmp_76" = icmp ugt i64 1, %"$gasrem_75" br i1 %"$gascmp_76", label %"$out_of_gas_77", label %"$have_gas_78" @@ -182,7 +195,7 @@ entry: %"$msgobj_v_94" = getelementptr i8, i8* %"$msgobj_80", i32 65 %"$msgobj_v_95" = bitcast i8* %"$msgobj_v_94" to %Int32* store %Int32 %m, %Int32* %"$msgobj_v_95", align 4 - store i8* %"$msgobj_80", i8** %e, align 8, !dbg !12 + store i8* %"$msgobj_80", i8** %e, align 8, !dbg !25 %"$e_97" = load i8*, i8** %e, align 8 %"$_literal_cost_call_99" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Event_27", i8* %"$e_97") %"$gasrem_100" = load i64, i64* @_gasrem, align 8 @@ -198,309 +211,359 @@ entry: store i64 %"$consume_104", i64* @_gasrem, align 8 %"$execptr_load_105" = load i8*, i8** @_execptr, align 8 %"$e_106" = load i8*, i8** %e, align 8 - call void @_event(i8* %"$execptr_load_105", %_TyDescrTy_Typ* @"$TyDescr_Event_27", i8* %"$e_106"), !dbg !13 + call void @_event(i8* %"$execptr_load_105", %_TyDescrTy_Typ* @"$TyDescr_Event_27", i8* %"$e_106"), !dbg !26 ret void } +; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn +declare void @llvm.dbg.declare(metadata, metadata, metadata) #0 + declare i8* @_salloc(i8*, i64) declare i64 @_literal_cost(%_TyDescrTy_Typ*, i8*) declare void @_event(i8*, %_TyDescrTy_Typ*, i8*) -define internal void @"$t1_107"(%Uint128 %_amount, [20 x i8]* %"$_origin_108", [20 x i8]* %"$_sender_109", %TName_Bool* %c) !dbg !14 { +define internal void @"$t1_111"(%Uint128 %_amount, [20 x i8]* %"$_origin_112", [20 x i8]* %"$_sender_113", %TName_Bool* %c) !dbg !27 { entry: - %_origin = load [20 x i8], [20 x i8]* %"$_origin_108", align 1 - %_sender = load [20 x i8], [20 x i8]* %"$_sender_109", align 1 - %"$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 = %entry + %"$c_220" = alloca %TName_Bool*, align 8 + store %TName_Bool* %c, %TName_Bool** %"$c_220", align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$c_220", metadata !28, metadata !DIExpression()), !dbg !31 + %"$_sender_219" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_sender_113", [20 x i8]** %"$_sender_219", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_sender_219", metadata !32, metadata !DIExpression()), !dbg !33 + %"$_origin_218" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_origin_112", [20 x i8]** %"$_origin_218", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_origin_218", metadata !34, metadata !DIExpression()), !dbg !33 + %"$_amount_217" = alloca %Uint128, align 8 + store %Uint128 %_amount, %Uint128* %"$_amount_217", align 8 + call void @llvm.dbg.declare(metadata %Uint128* %"$_amount_217", metadata !35, metadata !DIExpression()), !dbg !33 + %_origin = load [20 x i8], [20 x i8]* %"$_origin_112", align 1 + %_sender = load [20 x i8], [20 x i8]* %"$_sender_113", align 1 + %"$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_116": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_113" + br label %"$have_gas_117" -"$have_gas_113": ; preds = %"$out_of_gas_112", %entry - %"$consume_114" = sub i64 %"$gasrem_110", 1 - store i64 %"$consume_114", i64* @_gasrem, align 8 +"$have_gas_117": ; preds = %"$out_of_gas_116", %entry + %"$consume_118" = sub i64 %"$gasrem_114", 1 + store i64 %"$consume_118", i64* @_gasrem, align 8 %x = alloca %Int32, 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" + call void @llvm.dbg.declare(metadata %Int32* %x, metadata !36, metadata !DIExpression()), !dbg !37 + %"$gasrem_119" = load i64, i64* @_gasrem, align 8 + %"$gascmp_120" = icmp ugt i64 2, %"$gasrem_119" + br i1 %"$gascmp_120", label %"$out_of_gas_121", label %"$have_gas_122" -"$out_of_gas_117": ; preds = %"$have_gas_113" +"$out_of_gas_121": ; preds = %"$have_gas_117" call void @_out_of_gas() - br label %"$have_gas_118" - -"$have_gas_118": ; preds = %"$out_of_gas_117", %"$have_gas_113" - %"$consume_119" = sub i64 %"$gasrem_115", 2 - store i64 %"$consume_119", i64* @_gasrem, align 8 - %"$c_tag_121" = getelementptr inbounds %TName_Bool, %TName_Bool* %c, i32 0, i32 0 - %"$c_tag_122" = load i8, i8* %"$c_tag_121", align 1 - switch i8 %"$c_tag_122", label %"$empty_default_123" [ - i8 0, label %"$True_124" - i8 1, label %"$False_131" - ], !dbg !15 - -"$True_124": ; preds = %"$have_gas_118" - %"$c_125" = bitcast %TName_Bool* %c to %CName_True* - %"$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 = %"$True_124" + br label %"$have_gas_122" + +"$have_gas_122": ; preds = %"$out_of_gas_121", %"$have_gas_117" + %"$consume_123" = sub i64 %"$gasrem_119", 2 + store i64 %"$consume_123", i64* @_gasrem, align 8 + %"$c_tag_125" = getelementptr inbounds %TName_Bool, %TName_Bool* %c, i32 0, i32 0 + %"$c_tag_126" = load i8, i8* %"$c_tag_125", align 1 + switch i8 %"$c_tag_126", label %"$empty_default_127" [ + i8 0, label %"$True_128" + i8 1, label %"$False_135" + ], !dbg !38 + +"$True_128": ; preds = %"$have_gas_122" + %"$c_129" = bitcast %TName_Bool* %c to %CName_True* + %"$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 = %"$True_128" call void @_out_of_gas() - br label %"$have_gas_129" + br label %"$have_gas_133" -"$have_gas_129": ; preds = %"$out_of_gas_128", %"$True_124" - %"$consume_130" = sub i64 %"$gasrem_126", 1 - store i64 %"$consume_130", i64* @_gasrem, align 8 - store %Int32 { i32 11 }, %Int32* %x, align 4, !dbg !16 - br label %"$matchsucc_120" +"$have_gas_133": ; preds = %"$out_of_gas_132", %"$True_128" + %"$consume_134" = sub i64 %"$gasrem_130", 1 + store i64 %"$consume_134", i64* @_gasrem, align 8 + store %Int32 { i32 11 }, %Int32* %x, align 4, !dbg !39 + br label %"$matchsucc_124" -"$False_131": ; preds = %"$have_gas_118" - %"$c_132" = bitcast %TName_Bool* %c to %CName_False* - %"$gasrem_133" = load i64, i64* @_gasrem, align 8 - %"$gascmp_134" = icmp ugt i64 1, %"$gasrem_133" - br i1 %"$gascmp_134", label %"$out_of_gas_135", label %"$have_gas_136" +"$False_135": ; preds = %"$have_gas_122" + %"$c_136" = bitcast %TName_Bool* %c to %CName_False* + %"$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_135": ; preds = %"$False_131" +"$out_of_gas_139": ; preds = %"$False_135" call void @_out_of_gas() - br label %"$have_gas_136" + br label %"$have_gas_140" -"$have_gas_136": ; preds = %"$out_of_gas_135", %"$False_131" - %"$consume_137" = sub i64 %"$gasrem_133", 1 - store i64 %"$consume_137", i64* @_gasrem, align 8 - store %Int32 { i32 41 }, %Int32* %x, align 4, !dbg !19 - br label %"$matchsucc_120" +"$have_gas_140": ; preds = %"$out_of_gas_139", %"$False_135" + %"$consume_141" = sub i64 %"$gasrem_137", 1 + store i64 %"$consume_141", i64* @_gasrem, align 8 + store %Int32 { i32 41 }, %Int32* %x, align 4, !dbg !42 + br label %"$matchsucc_124" -"$empty_default_123": ; preds = %"$have_gas_118" - br label %"$matchsucc_120" +"$empty_default_127": ; preds = %"$have_gas_122" + br label %"$matchsucc_124" -"$matchsucc_120": ; preds = %"$have_gas_136", %"$have_gas_129", %"$empty_default_123" - %"$gasrem_138" = load i64, i64* @_gasrem, align 8 - %"$gascmp_139" = icmp ugt i64 1, %"$gasrem_138" - br i1 %"$gascmp_139", label %"$out_of_gas_140", label %"$have_gas_141" +"$matchsucc_124": ; preds = %"$have_gas_140", %"$have_gas_133", %"$empty_default_127" + %"$gasrem_142" = load i64, i64* @_gasrem, align 8 + %"$gascmp_143" = icmp ugt i64 1, %"$gasrem_142" + br i1 %"$gascmp_143", label %"$out_of_gas_144", label %"$have_gas_145" -"$out_of_gas_140": ; preds = %"$matchsucc_120" +"$out_of_gas_144": ; preds = %"$matchsucc_124" call void @_out_of_gas() - br label %"$have_gas_141" - -"$have_gas_141": ; preds = %"$out_of_gas_140", %"$matchsucc_120" - %"$consume_142" = sub i64 %"$gasrem_138", 1 - store i64 %"$consume_142", i64* @_gasrem, align 8 - %"$create_event__origin_143" = alloca [20 x i8], align 1 - store [20 x i8] %_origin, [20 x i8]* %"$create_event__origin_143", align 1 - %"$create_event__sender_144" = alloca [20 x i8], align 1 - store [20 x i8] %_sender, [20 x i8]* %"$create_event__sender_144", align 1 - %"$x_145" = load %Int32, %Int32* %x, align 4 - call void @"$create_event_67"(%Uint128 %_amount, [20 x i8]* %"$create_event__origin_143", [20 x i8]* %"$create_event__sender_144", %Int32 %"$x_145"), !dbg !21 - %"$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_141" + br label %"$have_gas_145" + +"$have_gas_145": ; preds = %"$out_of_gas_144", %"$matchsucc_124" + %"$consume_146" = sub i64 %"$gasrem_142", 1 + store i64 %"$consume_146", i64* @_gasrem, align 8 + %"$create_event__origin_147" = alloca [20 x i8], align 1 + store [20 x i8] %_origin, [20 x i8]* %"$create_event__origin_147", align 1 + %"$create_event__sender_148" = alloca [20 x i8], align 1 + store [20 x i8] %_sender, [20 x i8]* %"$create_event__sender_148", align 1 + %"$x_149" = load %Int32, %Int32* %x, align 4 + call void @"$create_event_67"(%Uint128 %_amount, [20 x i8]* %"$create_event__origin_147", [20 x i8]* %"$create_event__sender_148", %Int32 %"$x_149"), !dbg !44 + %"$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 = %"$have_gas_145" call void @_out_of_gas() - br label %"$have_gas_149" + br label %"$have_gas_153" -"$have_gas_149": ; preds = %"$out_of_gas_148", %"$have_gas_141" - %"$consume_150" = sub i64 %"$gasrem_146", 1 - store i64 %"$consume_150", i64* @_gasrem, align 8 +"$have_gas_153": ; preds = %"$out_of_gas_152", %"$have_gas_145" + %"$consume_154" = sub i64 %"$gasrem_150", 1 + store i64 %"$consume_154", i64* @_gasrem, align 8 %y = alloca %Int32, 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" + call void @llvm.dbg.declare(metadata %Int32* %y, metadata !45, metadata !DIExpression()), !dbg !46 + %"$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_153": ; preds = %"$have_gas_149" +"$out_of_gas_157": ; preds = %"$have_gas_153" call void @_out_of_gas() - br label %"$have_gas_154" + br label %"$have_gas_158" -"$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 - store %Int32 { i32 31 }, %Int32* %y, align 4, !dbg !22 - %"$gasrem_156" = load i64, i64* @_gasrem, align 8 - %"$gascmp_157" = icmp ugt i64 2, %"$gasrem_156" - br i1 %"$gascmp_157", label %"$out_of_gas_158", label %"$have_gas_159" +"$have_gas_158": ; preds = %"$out_of_gas_157", %"$have_gas_153" + %"$consume_159" = sub i64 %"$gasrem_155", 1 + store i64 %"$consume_159", i64* @_gasrem, align 8 + store %Int32 { i32 31 }, %Int32* %y, align 4, !dbg !47 + %"$gasrem_160" = load i64, i64* @_gasrem, align 8 + %"$gascmp_161" = icmp ugt i64 2, %"$gasrem_160" + br i1 %"$gascmp_161", label %"$out_of_gas_162", label %"$have_gas_163" -"$out_of_gas_158": ; preds = %"$have_gas_154" +"$out_of_gas_162": ; preds = %"$have_gas_158" call void @_out_of_gas() - br label %"$have_gas_159" - -"$have_gas_159": ; preds = %"$out_of_gas_158", %"$have_gas_154" - %"$consume_160" = sub i64 %"$gasrem_156", 2 - store i64 %"$consume_160", i64* @_gasrem, align 8 - %"$c_tag_162" = getelementptr inbounds %TName_Bool, %TName_Bool* %c, i32 0, i32 0 - %"$c_tag_163" = load i8, i8* %"$c_tag_162", align 1 - switch i8 %"$c_tag_163", label %"$empty_default_164" [ - i8 0, label %"$True_165" - i8 1, label %"$False_185" - ], !dbg !23 - -"$True_165": ; preds = %"$have_gas_159" - %"$c_166" = bitcast %TName_Bool* %c to %CName_True* - %"$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 = %"$True_165" + br label %"$have_gas_163" + +"$have_gas_163": ; preds = %"$out_of_gas_162", %"$have_gas_158" + %"$consume_164" = sub i64 %"$gasrem_160", 2 + store i64 %"$consume_164", i64* @_gasrem, align 8 + %"$c_tag_166" = getelementptr inbounds %TName_Bool, %TName_Bool* %c, i32 0, i32 0 + %"$c_tag_167" = load i8, i8* %"$c_tag_166", align 1 + switch i8 %"$c_tag_167", label %"$empty_default_168" [ + i8 0, label %"$True_169" + i8 1, label %"$False_189" + ], !dbg !48 + +"$True_169": ; preds = %"$have_gas_163" + %"$c_170" = bitcast %TName_Bool* %c to %CName_True* + %"$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 = %"$True_169" call void @_out_of_gas() - br label %"$have_gas_170" + br label %"$have_gas_174" -"$have_gas_170": ; preds = %"$out_of_gas_169", %"$True_165" - %"$consume_171" = sub i64 %"$gasrem_167", 1 - store i64 %"$consume_171", i64* @_gasrem, align 8 +"$have_gas_174": ; preds = %"$out_of_gas_173", %"$True_169" + %"$consume_175" = sub i64 %"$gasrem_171", 1 + store i64 %"$consume_175", i64* @_gasrem, align 8 %"$y_1" = alloca %Int32, 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" + call void @llvm.dbg.declare(metadata %Int32* %"$y_1", metadata !49, metadata !DIExpression()), !dbg !52 + %"$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_174": ; preds = %"$have_gas_170" +"$out_of_gas_178": ; preds = %"$have_gas_174" call void @_out_of_gas() - br label %"$have_gas_175" + br label %"$have_gas_179" -"$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 - store %Int32 { i32 101 }, %Int32* %"$y_1", align 4, !dbg !24 - %"$gasrem_177" = load i64, i64* @_gasrem, align 8 - %"$gascmp_178" = icmp ugt i64 1, %"$gasrem_177" - br i1 %"$gascmp_178", label %"$out_of_gas_179", label %"$have_gas_180" +"$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 + store %Int32 { i32 101 }, %Int32* %"$y_1", align 4, !dbg !53 + %"$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_179": ; preds = %"$have_gas_175" +"$out_of_gas_183": ; preds = %"$have_gas_179" call void @_out_of_gas() - br label %"$have_gas_180" - -"$have_gas_180": ; preds = %"$out_of_gas_179", %"$have_gas_175" - %"$consume_181" = sub i64 %"$gasrem_177", 1 - store i64 %"$consume_181", i64* @_gasrem, align 8 - %"$create_event__origin_182" = alloca [20 x i8], align 1 - store [20 x i8] %_origin, [20 x i8]* %"$create_event__origin_182", align 1 - %"$create_event__sender_183" = alloca [20 x i8], align 1 - store [20 x i8] %_sender, [20 x i8]* %"$create_event__sender_183", align 1 - %"$$y_1_184" = load %Int32, %Int32* %"$y_1", align 4 - call void @"$create_event_67"(%Uint128 %_amount, [20 x i8]* %"$create_event__origin_182", [20 x i8]* %"$create_event__sender_183", %Int32 %"$$y_1_184"), !dbg !27 - br label %"$matchsucc_161" - -"$False_185": ; preds = %"$have_gas_159" - %"$c_186" = bitcast %TName_Bool* %c to %CName_False* - %"$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 = %"$False_185" + 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 + %"$create_event__origin_186" = alloca [20 x i8], align 1 + store [20 x i8] %_origin, [20 x i8]* %"$create_event__origin_186", align 1 + %"$create_event__sender_187" = alloca [20 x i8], align 1 + store [20 x i8] %_sender, [20 x i8]* %"$create_event__sender_187", align 1 + %"$$y_1_188" = load %Int32, %Int32* %"$y_1", align 4 + call void @"$create_event_67"(%Uint128 %_amount, [20 x i8]* %"$create_event__origin_186", [20 x i8]* %"$create_event__sender_187", %Int32 %"$$y_1_188"), !dbg !54 + br label %"$matchsucc_165" + +"$False_189": ; preds = %"$have_gas_163" + %"$c_190" = bitcast %TName_Bool* %c to %CName_False* + %"$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 = %"$False_189" call void @_out_of_gas() - br label %"$have_gas_190" + br label %"$have_gas_194" -"$have_gas_190": ; preds = %"$out_of_gas_189", %"$False_185" - %"$consume_191" = sub i64 %"$gasrem_187", 1 - store i64 %"$consume_191", i64* @_gasrem, align 8 +"$have_gas_194": ; preds = %"$out_of_gas_193", %"$False_189" + %"$consume_195" = sub i64 %"$gasrem_191", 1 + store i64 %"$consume_195", i64* @_gasrem, align 8 %"$y_2" = alloca %Int32, align 8 - %"$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" + call void @llvm.dbg.declare(metadata %Int32* %"$y_2", metadata !55, metadata !DIExpression()), !dbg !57 + %"$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_194": ; preds = %"$have_gas_190" +"$out_of_gas_198": ; preds = %"$have_gas_194" call void @_out_of_gas() - br label %"$have_gas_195" + br label %"$have_gas_199" -"$have_gas_195": ; preds = %"$out_of_gas_194", %"$have_gas_190" - %"$consume_196" = sub i64 %"$gasrem_192", 1 - store i64 %"$consume_196", i64* @_gasrem, align 8 - store %Int32 { i32 102 }, %Int32* %"$y_2", align 4, !dbg !28 - %"$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" +"$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 + store %Int32 { i32 102 }, %Int32* %"$y_2", align 4, !dbg !58 + %"$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" -"$out_of_gas_199": ; preds = %"$have_gas_195" +"$out_of_gas_203": ; preds = %"$have_gas_199" 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 - %"$create_event__origin_202" = alloca [20 x i8], align 1 - store [20 x i8] %_origin, [20 x i8]* %"$create_event__origin_202", align 1 - %"$create_event__sender_203" = alloca [20 x i8], align 1 - store [20 x i8] %_sender, [20 x i8]* %"$create_event__sender_203", align 1 - %"$$y_2_204" = load %Int32, %Int32* %"$y_2", align 4 - call void @"$create_event_67"(%Uint128 %_amount, [20 x i8]* %"$create_event__origin_202", [20 x i8]* %"$create_event__sender_203", %Int32 %"$$y_2_204"), !dbg !30 - br label %"$matchsucc_161" - -"$empty_default_164": ; preds = %"$have_gas_159" - br label %"$matchsucc_161" - -"$matchsucc_161": ; preds = %"$have_gas_200", %"$have_gas_180", %"$empty_default_164" - %"$gasrem_205" = load i64, i64* @_gasrem, align 8 - %"$gascmp_206" = icmp ugt i64 1, %"$gasrem_205" - br i1 %"$gascmp_206", label %"$out_of_gas_207", label %"$have_gas_208" - -"$out_of_gas_207": ; preds = %"$matchsucc_161" + br label %"$have_gas_204" + +"$have_gas_204": ; preds = %"$out_of_gas_203", %"$have_gas_199" + %"$consume_205" = sub i64 %"$gasrem_201", 1 + store i64 %"$consume_205", i64* @_gasrem, align 8 + %"$create_event__origin_206" = alloca [20 x i8], align 1 + store [20 x i8] %_origin, [20 x i8]* %"$create_event__origin_206", align 1 + %"$create_event__sender_207" = alloca [20 x i8], align 1 + store [20 x i8] %_sender, [20 x i8]* %"$create_event__sender_207", align 1 + %"$$y_2_208" = load %Int32, %Int32* %"$y_2", align 4 + call void @"$create_event_67"(%Uint128 %_amount, [20 x i8]* %"$create_event__origin_206", [20 x i8]* %"$create_event__sender_207", %Int32 %"$$y_2_208"), !dbg !59 + br label %"$matchsucc_165" + +"$empty_default_168": ; preds = %"$have_gas_163" + br label %"$matchsucc_165" + +"$matchsucc_165": ; preds = %"$have_gas_204", %"$have_gas_184", %"$empty_default_168" + %"$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 = %"$matchsucc_165" call void @_out_of_gas() - br label %"$have_gas_208" - -"$have_gas_208": ; preds = %"$out_of_gas_207", %"$matchsucc_161" - %"$consume_209" = sub i64 %"$gasrem_205", 1 - store i64 %"$consume_209", i64* @_gasrem, align 8 - %"$create_event__origin_210" = alloca [20 x i8], align 1 - store [20 x i8] %_origin, [20 x i8]* %"$create_event__origin_210", align 1 - %"$create_event__sender_211" = alloca [20 x i8], align 1 - store [20 x i8] %_sender, [20 x i8]* %"$create_event__sender_211", align 1 - %"$y_212" = load %Int32, %Int32* %y, align 4 - call void @"$create_event_67"(%Uint128 %_amount, [20 x i8]* %"$create_event__origin_210", [20 x i8]* %"$create_event__sender_211", %Int32 %"$y_212"), !dbg !31 + br label %"$have_gas_212" + +"$have_gas_212": ; preds = %"$out_of_gas_211", %"$matchsucc_165" + %"$consume_213" = sub i64 %"$gasrem_209", 1 + store i64 %"$consume_213", i64* @_gasrem, align 8 + %"$create_event__origin_214" = alloca [20 x i8], align 1 + store [20 x i8] %_origin, [20 x i8]* %"$create_event__origin_214", align 1 + %"$create_event__sender_215" = alloca [20 x i8], align 1 + store [20 x i8] %_sender, [20 x i8]* %"$create_event__sender_215", align 1 + %"$y_216" = load %Int32, %Int32* %y, align 4 + call void @"$create_event_67"(%Uint128 %_amount, [20 x i8]* %"$create_event__origin_214", [20 x i8]* %"$create_event__sender_215", %Int32 %"$y_216"), !dbg !60 ret void } -define void @t1(i8* %0) !dbg !32 { +define void @t1(i8* %0) !dbg !61 { entry: - %"$_amount_214" = getelementptr i8, i8* %0, i32 0 - %"$_amount_215" = bitcast i8* %"$_amount_214" to %Uint128* - %_amount = load %Uint128, %Uint128* %"$_amount_215", align 8 - %"$_origin_216" = getelementptr i8, i8* %0, i32 16 - %"$_origin_217" = bitcast i8* %"$_origin_216" to [20 x i8]* - %"$_sender_218" = getelementptr i8, i8* %0, i32 36 - %"$_sender_219" = bitcast i8* %"$_sender_218" to [20 x i8]* - %"$c_220" = getelementptr i8, i8* %0, i32 56 - %"$c_221" = bitcast i8* %"$c_220" to %TName_Bool** - %c = load %TName_Bool*, %TName_Bool** %"$c_221", align 8 - call void @"$t1_107"(%Uint128 %_amount, [20 x i8]* %"$_origin_217", [20 x i8]* %"$_sender_219", %TName_Bool* %c), !dbg !33 + %"$_amount_222" = getelementptr i8, i8* %0, i32 0 + %"$_amount_223" = bitcast i8* %"$_amount_222" to %Uint128* + %_amount = load %Uint128, %Uint128* %"$_amount_223", align 8 + %"$_origin_224" = getelementptr i8, i8* %0, i32 16 + %"$_origin_225" = bitcast i8* %"$_origin_224" to [20 x i8]* + %"$_sender_226" = getelementptr i8, i8* %0, i32 36 + %"$_sender_227" = bitcast i8* %"$_sender_226" to [20 x i8]* + %"$c_228" = getelementptr i8, i8* %0, i32 56 + %"$c_229" = bitcast i8* %"$c_228" to %TName_Bool** + %c = load %TName_Bool*, %TName_Bool** %"$c_229", align 8 + call void @"$t1_111"(%Uint128 %_amount, [20 x i8]* %"$_origin_225", [20 x i8]* %"$_sender_227", %TName_Bool* %c), !dbg !62 ret void } +attributes #0 = { nocallback nofree nosync nounwind readnone speculatable willreturn } + !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) +!1 = distinct !DICompileUnit(language: DW_LANG_C89, file: !2, producer: "Scilla Compiler", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false) !2 = !DIFile(filename: "match_assign.scilla", directory: "codegen/contr") -!3 = !{} -!4 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !5, file: !5, type: !6, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!5 = !DIFile(filename: ".", directory: ".") -!6 = !DISubroutineType(types: !7) -!7 = !{!8} -!8 = !DIBasicType(tag: DW_TAG_unspecified_type, name: "void") -!9 = !DILocation(line: 0, scope: !4) -!10 = distinct !DISubprogram(name: "_deploy_ops", linkageName: "_deploy_ops", scope: !5, file: !5, type: !6, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!11 = distinct !DISubprogram(name: "create_event", linkageName: "create_event", scope: !2, file: !2, line: 5, type: !6, scopeLine: 5, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!12 = !DILocation(line: 6, column: 7, scope: !11) -!13 = !DILocation(line: 7, column: 3, scope: !11) -!14 = distinct !DISubprogram(name: "t1", linkageName: "t1", scope: !2, file: !2, line: 10, type: !6, scopeLine: 10, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!15 = !DILocation(line: 12, column: 7, scope: !14) -!16 = !DILocation(line: 14, column: 9, scope: !17) -!17 = distinct !DILexicalBlock(scope: !18, file: !2, line: 13, column: 9) -!18 = distinct !DILexicalBlock(scope: !14, file: !2, line: 12, column: 7) -!19 = !DILocation(line: 16, column: 9, scope: !20) -!20 = distinct !DILexicalBlock(scope: !18, file: !2, line: 15, column: 9) -!21 = !DILocation(line: 18, column: 3, scope: !14) -!22 = !DILocation(line: 20, column: 7, scope: !14) -!23 = !DILocation(line: 21, column: 3, scope: !14) -!24 = !DILocation(line: 23, column: 9, scope: !25) -!25 = distinct !DILexicalBlock(scope: !26, file: !2, line: 22, column: 5) -!26 = distinct !DILexicalBlock(scope: !14, file: !2, line: 21, column: 3) -!27 = !DILocation(line: 24, column: 5, scope: !25) -!28 = !DILocation(line: 26, column: 9, scope: !29) -!29 = distinct !DILexicalBlock(scope: !26, file: !2, line: 25, column: 5) -!30 = !DILocation(line: 27, column: 5, scope: !29) -!31 = !DILocation(line: 30, column: 3, scope: !14) -!32 = distinct !DISubprogram(name: "t1", linkageName: "t1", scope: !2, file: !2, line: 10, type: !6, scopeLine: 10, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!33 = !DILocation(line: 10, column: 12, scope: !32) +!3 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !4, file: !4, type: !5, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!4 = !DIFile(filename: ".", directory: ".") +!5 = !DISubroutineType(types: !6) +!6 = !{!7} +!7 = !DIBasicType(tag: DW_TAG_unspecified_type, name: "void") +!8 = !{} +!9 = !DILocation(line: 0, scope: !3) +!10 = distinct !DISubprogram(name: "_deploy_ops", linkageName: "_deploy_ops", scope: !4, file: !4, type: !5, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!11 = distinct !DISubprogram(name: "create_event", linkageName: "create_event", scope: !2, file: !2, line: 5, type: !5, scopeLine: 5, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!12 = !DILocalVariable(name: "m", scope: !11, file: !2, line: 5, type: !13) +!13 = !DIBasicType(name: "Int32", size: 4) +!14 = !DILocation(line: 5, column: 25, scope: !11) +!15 = !DILocalVariable(name: "_sender", scope: !11, file: !2, line: 5, type: !16) +!16 = !DIBasicType(name: "ByStr20 with end", size: 20) +!17 = !DILocation(line: 5, column: 11, scope: !11) +!18 = !DILocalVariable(name: "_origin", scope: !11, file: !2, line: 5, type: !16) +!19 = !DILocalVariable(name: "_amount", scope: !11, file: !2, line: 5, type: !20) +!20 = !DIBasicType(name: "Uint128", size: 16) +!21 = !DILocalVariable(name: "e", scope: !11, file: !2, line: 6, type: !22) +!22 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "Event", baseType: !23, size: 8, align: 8, dwarfAddressSpace: 0) +!23 = !DIBasicType(name: "Event", size: 8) +!24 = !DILocation(line: 6, column: 3, scope: !11) +!25 = !DILocation(line: 6, column: 7, scope: !11) +!26 = !DILocation(line: 7, column: 3, scope: !11) +!27 = distinct !DISubprogram(name: "t1", linkageName: "t1", scope: !2, file: !2, line: 10, type: !5, scopeLine: 10, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!28 = !DILocalVariable(name: "c", scope: !27, file: !2, line: 10, type: !29) +!29 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "Bool", baseType: !30, size: 8, align: 8, dwarfAddressSpace: 0) +!30 = !DIBasicType(name: "Bool", size: 8) +!31 = !DILocation(line: 10, column: 15, scope: !27) +!32 = !DILocalVariable(name: "_sender", scope: !27, file: !2, line: 10, type: !16) +!33 = !DILocation(line: 10, column: 12, scope: !27) +!34 = !DILocalVariable(name: "_origin", scope: !27, file: !2, line: 10, type: !16) +!35 = !DILocalVariable(name: "_amount", scope: !27, file: !2, line: 10, type: !20) +!36 = !DILocalVariable(name: "x", scope: !27, file: !2, line: 12, type: !13) +!37 = !DILocation(line: 12, column: 3, scope: !27) +!38 = !DILocation(line: 12, column: 7, scope: !27) +!39 = !DILocation(line: 14, column: 9, scope: !40) +!40 = distinct !DILexicalBlock(scope: !41, file: !2, line: 13, column: 9) +!41 = distinct !DILexicalBlock(scope: !27, file: !2, line: 12, column: 7) +!42 = !DILocation(line: 16, column: 9, scope: !43) +!43 = distinct !DILexicalBlock(scope: !41, file: !2, line: 15, column: 9) +!44 = !DILocation(line: 18, column: 3, scope: !27) +!45 = !DILocalVariable(name: "y", scope: !27, file: !2, line: 20, type: !13) +!46 = !DILocation(line: 20, column: 3, scope: !27) +!47 = !DILocation(line: 20, column: 7, scope: !27) +!48 = !DILocation(line: 21, column: 3, scope: !27) +!49 = !DILocalVariable(name: "$y_1", scope: !50, file: !2, line: 23, type: !13) +!50 = distinct !DILexicalBlock(scope: !51, file: !2, line: 22, column: 5) +!51 = distinct !DILexicalBlock(scope: !27, file: !2, line: 21, column: 3) +!52 = !DILocation(line: 23, column: 5, scope: !50) +!53 = !DILocation(line: 23, column: 9, scope: !50) +!54 = !DILocation(line: 24, column: 5, scope: !50) +!55 = !DILocalVariable(name: "$y_2", scope: !56, file: !2, line: 26, type: !13) +!56 = distinct !DILexicalBlock(scope: !51, file: !2, line: 25, column: 5) +!57 = !DILocation(line: 26, column: 5, scope: !56) +!58 = !DILocation(line: 26, column: 9, scope: !56) +!59 = !DILocation(line: 27, column: 5, scope: !56) +!60 = !DILocation(line: 30, column: 3, scope: !27) +!61 = distinct !DISubprogram(name: "t1", linkageName: "t1", scope: !2, file: !2, line: 10, type: !5, scopeLine: 10, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!62 = !DILocation(line: 10, column: 12, scope: !61) diff --git a/testsuite/contr/match_assign.ll b/testsuite/contr/match_assign.ll index 34812eb4..633bbc79 100644 --- a/testsuite/contr/match_assign.ll +++ b/testsuite/contr/match_assign.ll @@ -4,7 +4,7 @@ ; 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-pc-linux-gnu" +target triple = "x86_64-unknown-linux-gnu" %"$TyDescrTy_PrimTyp_3" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/testsuite/contr/match_assign2.dbg.ll b/testsuite/contr/match_assign2.dbg.ll index 3719e7d9..cded57a6 100644 --- a/testsuite/contr/match_assign2.dbg.ll +++ b/testsuite/contr/match_assign2.dbg.ll @@ -4,7 +4,7 @@ ; 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-pc-linux-gnu" +target triple = "x86_64-unknown-linux-gnu" %"$TyDescrTy_PrimTyp_2" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } @@ -16,9 +16,9 @@ target triple = "x86_64-pc-linux-gnu" %"$TyDescr_AddrFieldTyp_41" = type { %TyDescrString, %_TyDescrTy_Typ* } %Int32 = type { i32 } %Uint32 = type { i32 } -%"$ParamDescr_169" = type { %ParamDescrString, %_TyDescrTy_Typ* } +%"$ParamDescr_177" = type { %ParamDescrString, %_TyDescrTy_Typ* } %ParamDescrString = type { i8*, i32 } -%"$TransDescr_170" = type { %ParamDescrString, i32, %"$ParamDescr_169"* } +%"$TransDescr_178" = type { %ParamDescrString, i32, %"$ParamDescr_177"* } %Uint128 = type { i128 } %String = type { i8*, i32 } %"TName_Pair_List_(Int32)_Int32" = type { i8, %"CName_Pair_List_(Int32)_Int32"* } @@ -95,21 +95,21 @@ target triple = "x86_64-pc-linux-gnu" @"$stringlit_98" = unnamed_addr constant [7 x i8] c"message" @_tydescr_table = constant [19 x %_TyDescrTy_Typ*] [%_TyDescrTy_Typ* @"$TyDescr_Event_26", %_TyDescrTy_Typ* @"$TyDescr_Int64_8", %_TyDescrTy_Typ* @"$TyDescr_Addr_43", %_TyDescrTy_Typ* @"$TyDescr_ADT_Pair_List_(Int32)_Int32_39", %_TyDescrTy_Typ* @"$TyDescr_Bystr20_34", %_TyDescrTy_Typ* @"$TyDescr_Uint256_18", %_TyDescrTy_Typ* @"$TyDescr_Uint32_6", %_TyDescrTy_Typ* @"$TyDescr_Uint64_10", %_TyDescrTy_Typ* @"$TyDescr_Bnum_22", %_TyDescrTy_Typ* @"$TyDescr_Uint128_14", %_TyDescrTy_Typ* @"$TyDescr_Exception_28", %_TyDescrTy_Typ* @"$TyDescr_String_20", %_TyDescrTy_Typ* @"$TyDescr_Int256_16", %_TyDescrTy_Typ* @"$TyDescr_Int128_12", %_TyDescrTy_Typ* @"$TyDescr_Bystr_32", %_TyDescrTy_Typ* @"$TyDescr_ReplicateContr_30", %_TyDescrTy_Typ* @"$TyDescr_Message_24", %_TyDescrTy_Typ* @"$TyDescr_ADT_List_Int32_38", %_TyDescrTy_Typ* @"$TyDescr_Int32_4"] @_tydescr_table_length = constant i32 19 -@"$pname__scilla_version_171" = unnamed_addr constant [15 x i8] c"_scilla_version" -@"$pname__this_address_172" = unnamed_addr constant [13 x i8] c"_this_address" -@"$pname__creation_block_173" = unnamed_addr constant [15 x i8] c"_creation_block" -@_contract_parameters = constant [3 x %"$ParamDescr_169"] [%"$ParamDescr_169" { %ParamDescrString { i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$pname__scilla_version_171", i32 0, i32 0), i32 15 }, %_TyDescrTy_Typ* @"$TyDescr_Uint32_6" }, %"$ParamDescr_169" { %ParamDescrString { i8* getelementptr inbounds ([13 x i8], [13 x i8]* @"$pname__this_address_172", i32 0, i32 0), i32 13 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr20_34" }, %"$ParamDescr_169" { %ParamDescrString { i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$pname__creation_block_173", i32 0, i32 0), i32 15 }, %_TyDescrTy_Typ* @"$TyDescr_Bnum_22" }] +@"$pname__scilla_version_179" = unnamed_addr constant [15 x i8] c"_scilla_version" +@"$pname__this_address_180" = unnamed_addr constant [13 x i8] c"_this_address" +@"$pname__creation_block_181" = unnamed_addr constant [15 x i8] c"_creation_block" +@_contract_parameters = constant [3 x %"$ParamDescr_177"] [%"$ParamDescr_177" { %ParamDescrString { i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$pname__scilla_version_179", i32 0, i32 0), i32 15 }, %_TyDescrTy_Typ* @"$TyDescr_Uint32_6" }, %"$ParamDescr_177" { %ParamDescrString { i8* getelementptr inbounds ([13 x i8], [13 x i8]* @"$pname__this_address_180", i32 0, i32 0), i32 13 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr20_34" }, %"$ParamDescr_177" { %ParamDescrString { i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$pname__creation_block_181", i32 0, i32 0), i32 15 }, %_TyDescrTy_Typ* @"$TyDescr_Bnum_22" }] @_contract_parameters_length = constant i32 3 -@"$tpname__amount_174" = unnamed_addr constant [7 x i8] c"_amount" -@"$tpname__origin_175" = unnamed_addr constant [7 x i8] c"_origin" -@"$tpname__sender_176" = unnamed_addr constant [7 x i8] c"_sender" -@"$tpname_p_177" = unnamed_addr constant [1 x i8] c"p" -@"$tparams_t1_178" = unnamed_addr constant [4 x %"$ParamDescr_169"] [%"$ParamDescr_169" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_174", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_14" }, %"$ParamDescr_169" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_175", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_43" }, %"$ParamDescr_169" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_176", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_43" }, %"$ParamDescr_169" { %ParamDescrString { i8* getelementptr inbounds ([1 x i8], [1 x i8]* @"$tpname_p_177", i32 0, i32 0), i32 1 }, %_TyDescrTy_Typ* @"$TyDescr_ADT_Pair_List_(Int32)_Int32_39" }] -@"$tname_t1_179" = unnamed_addr constant [2 x i8] c"t1" -@_transition_parameters = constant [1 x %"$TransDescr_170"] [%"$TransDescr_170" { %ParamDescrString { i8* getelementptr inbounds ([2 x i8], [2 x i8]* @"$tname_t1_179", i32 0, i32 0), i32 2 }, i32 4, %"$ParamDescr_169"* getelementptr inbounds ([4 x %"$ParamDescr_169"], [4 x %"$ParamDescr_169"]* @"$tparams_t1_178", i32 0, i32 0) }] +@"$tpname__amount_182" = unnamed_addr constant [7 x i8] c"_amount" +@"$tpname__origin_183" = unnamed_addr constant [7 x i8] c"_origin" +@"$tpname__sender_184" = unnamed_addr constant [7 x i8] c"_sender" +@"$tpname_p_185" = unnamed_addr constant [1 x i8] c"p" +@"$tparams_t1_186" = unnamed_addr constant [4 x %"$ParamDescr_177"] [%"$ParamDescr_177" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_182", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_14" }, %"$ParamDescr_177" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_183", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_43" }, %"$ParamDescr_177" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_184", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_43" }, %"$ParamDescr_177" { %ParamDescrString { i8* getelementptr inbounds ([1 x i8], [1 x i8]* @"$tpname_p_185", i32 0, i32 0), i32 1 }, %_TyDescrTy_Typ* @"$TyDescr_ADT_Pair_List_(Int32)_Int32_39" }] +@"$tname_t1_187" = unnamed_addr constant [2 x i8] c"t1" +@_transition_parameters = constant [1 x %"$TransDescr_178"] [%"$TransDescr_178" { %ParamDescrString { i8* getelementptr inbounds ([2 x i8], [2 x i8]* @"$tname_t1_187", i32 0, i32 0), i32 2 }, i32 4, %"$ParamDescr_177"* getelementptr inbounds ([4 x %"$ParamDescr_177"], [4 x %"$ParamDescr_177"]* @"$tparams_t1_186", i32 0, i32 0) }] @_transition_parameters_length = constant i32 1 -define void @_init_libs() !dbg !4 { +define void @_init_libs() !dbg !3 { entry: %"$gasrem_66" = load i64, i64* @_gasrem, align 8 %"$gascmp_67" = icmp ugt i64 5, %"$gasrem_66" @@ -146,6 +146,18 @@ entry: define internal void @"$create_event_76"(%Uint128 %_amount, [20 x i8]* %"$_origin_77", [20 x i8]* %"$_sender_78", %Int32 %m) !dbg !11 { entry: + %"$m_119" = alloca %Int32, align 8 + store %Int32 %m, %Int32* %"$m_119", align 4 + call void @llvm.dbg.declare(metadata %Int32* %"$m_119", metadata !12, metadata !DIExpression()), !dbg !14 + %"$_sender_118" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_sender_78", [20 x i8]** %"$_sender_118", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_sender_118", metadata !15, metadata !DIExpression()), !dbg !17 + %"$_origin_117" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_origin_77", [20 x i8]** %"$_origin_117", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_origin_117", metadata !18, metadata !DIExpression()), !dbg !17 + %"$_amount_116" = alloca %Uint128, align 8 + store %Uint128 %_amount, %Uint128* %"$_amount_116", align 8 + call void @llvm.dbg.declare(metadata %Uint128* %"$_amount_116", metadata !19, metadata !DIExpression()), !dbg !17 %_origin = load [20 x i8], [20 x i8]* %"$_origin_77", align 1 %_sender = load [20 x i8], [20 x i8]* %"$_sender_78", align 1 %"$gasrem_79" = load i64, i64* @_gasrem, align 8 @@ -160,6 +172,7 @@ entry: %"$consume_83" = sub i64 %"$gasrem_79", 1 store i64 %"$consume_83", i64* @_gasrem, align 8 %e = alloca i8*, align 8 + call void @llvm.dbg.declare(metadata i8** %e, metadata !21, metadata !DIExpression()), !dbg !24 %"$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" @@ -194,7 +207,7 @@ entry: %"$msgobj_v_103" = getelementptr i8, i8* %"$msgobj_89", i32 65 %"$msgobj_v_104" = bitcast i8* %"$msgobj_v_103" to %Int32* store %Int32 %m, %Int32* %"$msgobj_v_104", align 4 - store i8* %"$msgobj_89", i8** %e, align 8, !dbg !12 + store i8* %"$msgobj_89", i8** %e, align 8, !dbg !25 %"$e_106" = load i8*, i8** %e, align 8 %"$_literal_cost_call_108" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Event_26", i8* %"$e_106") %"$gasrem_109" = load i64, i64* @_gasrem, align 8 @@ -210,153 +223,194 @@ entry: store i64 %"$consume_113", i64* @_gasrem, align 8 %"$execptr_load_114" = load i8*, i8** @_execptr, align 8 %"$e_115" = load i8*, i8** %e, align 8 - call void @_event(i8* %"$execptr_load_114", %_TyDescrTy_Typ* @"$TyDescr_Event_26", i8* %"$e_115"), !dbg !13 + call void @_event(i8* %"$execptr_load_114", %_TyDescrTy_Typ* @"$TyDescr_Event_26", i8* %"$e_115"), !dbg !26 ret void } +; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn +declare void @llvm.dbg.declare(metadata, metadata, metadata) #0 + declare i8* @_salloc(i8*, i64) declare i64 @_literal_cost(%_TyDescrTy_Typ*, i8*) declare void @_event(i8*, %_TyDescrTy_Typ*, i8*) -define internal void @"$t1_116"(%Uint128 %_amount, [20 x i8]* %"$_origin_117", [20 x i8]* %"$_sender_118", %"TName_Pair_List_(Int32)_Int32"* %p) !dbg !14 { +define internal void @"$t1_120"(%Uint128 %_amount, [20 x i8]* %"$_origin_121", [20 x i8]* %"$_sender_122", %"TName_Pair_List_(Int32)_Int32"* %p) !dbg !27 { entry: - %_origin = load [20 x i8], [20 x i8]* %"$_origin_117", align 1 - %_sender = load [20 x i8], [20 x i8]* %"$_sender_118", align 1 - %"$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_121": ; preds = %entry + %"$p_167" = alloca %"TName_Pair_List_(Int32)_Int32"*, align 8 + store %"TName_Pair_List_(Int32)_Int32"* %p, %"TName_Pair_List_(Int32)_Int32"** %"$p_167", align 8 + call void @llvm.dbg.declare(metadata %"TName_Pair_List_(Int32)_Int32"** %"$p_167", metadata !28, metadata !DIExpression()), !dbg !31 + %"$_sender_166" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_sender_122", [20 x i8]** %"$_sender_166", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_sender_166", metadata !32, metadata !DIExpression()), !dbg !33 + %"$_origin_165" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_origin_121", [20 x i8]** %"$_origin_165", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_origin_165", metadata !34, metadata !DIExpression()), !dbg !33 + %"$_amount_164" = alloca %Uint128, align 8 + store %Uint128 %_amount, %Uint128* %"$_amount_164", align 8 + call void @llvm.dbg.declare(metadata %Uint128* %"$_amount_164", metadata !35, metadata !DIExpression()), !dbg !33 + %_origin = load [20 x i8], [20 x i8]* %"$_origin_121", align 1 + %_sender = load [20 x i8], [20 x i8]* %"$_sender_122", align 1 + %"$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_122" + br label %"$have_gas_126" -"$have_gas_122": ; preds = %"$out_of_gas_121", %entry - %"$consume_123" = sub i64 %"$gasrem_119", 1 - store i64 %"$consume_123", i64* @_gasrem, align 8 +"$have_gas_126": ; preds = %"$out_of_gas_125", %entry + %"$consume_127" = sub i64 %"$gasrem_123", 1 + store i64 %"$consume_127", i64* @_gasrem, align 8 %a = alloca %Int32, align 8 - %"$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" + call void @llvm.dbg.declare(metadata %Int32* %a, metadata !36, metadata !DIExpression()), !dbg !37 + %"$gasrem_128" = load i64, i64* @_gasrem, align 8 + %"$gascmp_129" = icmp ugt i64 1, %"$gasrem_128" + br i1 %"$gascmp_129", label %"$out_of_gas_130", label %"$have_gas_131" -"$out_of_gas_126": ; preds = %"$have_gas_122" +"$out_of_gas_130": ; preds = %"$have_gas_126" call void @_out_of_gas() - br label %"$have_gas_127" + br label %"$have_gas_131" -"$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 - store %Int32 { i32 31 }, %Int32* %a, align 4, !dbg !15 - %"$gasrem_129" = load i64, i64* @_gasrem, align 8 - %"$gascmp_130" = icmp ugt i64 1, %"$gasrem_129" - br i1 %"$gascmp_130", label %"$out_of_gas_131", label %"$have_gas_132" +"$have_gas_131": ; preds = %"$out_of_gas_130", %"$have_gas_126" + %"$consume_132" = sub i64 %"$gasrem_128", 1 + store i64 %"$consume_132", i64* @_gasrem, align 8 + store %Int32 { i32 31 }, %Int32* %a, align 4, !dbg !38 + %"$gasrem_133" = load i64, i64* @_gasrem, align 8 + %"$gascmp_134" = icmp ugt i64 1, %"$gasrem_133" + br i1 %"$gascmp_134", label %"$out_of_gas_135", label %"$have_gas_136" -"$out_of_gas_131": ; preds = %"$have_gas_127" +"$out_of_gas_135": ; preds = %"$have_gas_131" 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", 1 - store i64 %"$consume_133", i64* @_gasrem, align 8 - %"$p_tag_135" = getelementptr inbounds %"TName_Pair_List_(Int32)_Int32", %"TName_Pair_List_(Int32)_Int32"* %p, i32 0, i32 0 - %"$p_tag_136" = load i8, i8* %"$p_tag_135", align 1 - switch i8 %"$p_tag_136", label %"$empty_default_137" [ - i8 0, label %"$Pair_138" - ], !dbg !16 - -"$Pair_138": ; preds = %"$have_gas_132" - %"$p_139" = bitcast %"TName_Pair_List_(Int32)_Int32"* %p to %"CName_Pair_List_(Int32)_Int32"* - %"$b_gep_140" = getelementptr inbounds %"CName_Pair_List_(Int32)_Int32", %"CName_Pair_List_(Int32)_Int32"* %"$p_139", i32 0, i32 1 - %"$b_load_141" = load %TName_List_Int32*, %TName_List_Int32** %"$b_gep_140", align 8 + br label %"$have_gas_136" + +"$have_gas_136": ; preds = %"$out_of_gas_135", %"$have_gas_131" + %"$consume_137" = sub i64 %"$gasrem_133", 1 + store i64 %"$consume_137", i64* @_gasrem, align 8 + %"$p_tag_139" = getelementptr inbounds %"TName_Pair_List_(Int32)_Int32", %"TName_Pair_List_(Int32)_Int32"* %p, i32 0, i32 0 + %"$p_tag_140" = load i8, i8* %"$p_tag_139", align 1 + switch i8 %"$p_tag_140", label %"$empty_default_141" [ + i8 0, label %"$Pair_142" + ], !dbg !39 + +"$Pair_142": ; preds = %"$have_gas_136" + %"$p_143" = bitcast %"TName_Pair_List_(Int32)_Int32"* %p to %"CName_Pair_List_(Int32)_Int32"* + %"$b_gep_144" = getelementptr inbounds %"CName_Pair_List_(Int32)_Int32", %"CName_Pair_List_(Int32)_Int32"* %"$p_143", i32 0, i32 1 + %"$b_load_145" = load %TName_List_Int32*, %TName_List_Int32** %"$b_gep_144", align 8 %b = alloca %TName_List_Int32*, align 8 - store %TName_List_Int32* %"$b_load_141", %TName_List_Int32** %b, align 8 - %"$$a_1_gep_142" = getelementptr inbounds %"CName_Pair_List_(Int32)_Int32", %"CName_Pair_List_(Int32)_Int32"* %"$p_139", i32 0, i32 2 - %"$$a_1_load_143" = load %Int32, %Int32* %"$$a_1_gep_142", align 4 + store %TName_List_Int32* %"$b_load_145", %TName_List_Int32** %b, align 8 + %"$$a_1_gep_146" = getelementptr inbounds %"CName_Pair_List_(Int32)_Int32", %"CName_Pair_List_(Int32)_Int32"* %"$p_143", i32 0, i32 2 + %"$$a_1_load_147" = load %Int32, %Int32* %"$$a_1_gep_146", align 4 %"$a_1" = alloca %Int32, align 8 - store %Int32 %"$$a_1_load_143", %Int32* %"$a_1", align 4 - %"$gasrem_144" = load i64, i64* @_gasrem, align 8 - %"$gascmp_145" = icmp ugt i64 1, %"$gasrem_144" - br i1 %"$gascmp_145", label %"$out_of_gas_146", label %"$have_gas_147" + store %Int32 %"$$a_1_load_147", %Int32* %"$a_1", align 4 + %"$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_146": ; preds = %"$Pair_138" +"$out_of_gas_150": ; preds = %"$Pair_142" call void @_out_of_gas() - br label %"$have_gas_147" - -"$have_gas_147": ; preds = %"$out_of_gas_146", %"$Pair_138" - %"$consume_148" = sub i64 %"$gasrem_144", 1 - store i64 %"$consume_148", i64* @_gasrem, align 8 - %"$create_event__origin_149" = alloca [20 x i8], align 1 - store [20 x i8] %_origin, [20 x i8]* %"$create_event__origin_149", align 1 - %"$create_event__sender_150" = alloca [20 x i8], align 1 - store [20 x i8] %_sender, [20 x i8]* %"$create_event__sender_150", align 1 - %"$$a_1_151" = load %Int32, %Int32* %"$a_1", align 4 - call void @"$create_event_76"(%Uint128 %_amount, [20 x i8]* %"$create_event__origin_149", [20 x i8]* %"$create_event__sender_150", %Int32 %"$$a_1_151"), !dbg !17 - br label %"$matchsucc_134" - -"$empty_default_137": ; preds = %"$have_gas_132" - br label %"$matchsucc_134" - -"$matchsucc_134": ; preds = %"$have_gas_147", %"$empty_default_137" - %"$gasrem_152" = load i64, i64* @_gasrem, align 8 - %"$gascmp_153" = icmp ugt i64 1, %"$gasrem_152" - br i1 %"$gascmp_153", label %"$out_of_gas_154", label %"$have_gas_155" - -"$out_of_gas_154": ; preds = %"$matchsucc_134" + br label %"$have_gas_151" + +"$have_gas_151": ; preds = %"$out_of_gas_150", %"$Pair_142" + %"$consume_152" = sub i64 %"$gasrem_148", 1 + store i64 %"$consume_152", i64* @_gasrem, align 8 + %"$create_event__origin_153" = alloca [20 x i8], align 1 + store [20 x i8] %_origin, [20 x i8]* %"$create_event__origin_153", align 1 + %"$create_event__sender_154" = alloca [20 x i8], align 1 + store [20 x i8] %_sender, [20 x i8]* %"$create_event__sender_154", align 1 + %"$$a_1_155" = load %Int32, %Int32* %"$a_1", align 4 + call void @"$create_event_76"(%Uint128 %_amount, [20 x i8]* %"$create_event__origin_153", [20 x i8]* %"$create_event__sender_154", %Int32 %"$$a_1_155"), !dbg !40 + br label %"$matchsucc_138" + +"$empty_default_141": ; preds = %"$have_gas_136" + br label %"$matchsucc_138" + +"$matchsucc_138": ; preds = %"$have_gas_151", %"$empty_default_141" + %"$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 = %"$matchsucc_138" call void @_out_of_gas() - br label %"$have_gas_155" - -"$have_gas_155": ; preds = %"$out_of_gas_154", %"$matchsucc_134" - %"$consume_156" = sub i64 %"$gasrem_152", 1 - store i64 %"$consume_156", i64* @_gasrem, align 8 - %"$create_event__origin_157" = alloca [20 x i8], align 1 - store [20 x i8] %_origin, [20 x i8]* %"$create_event__origin_157", align 1 - %"$create_event__sender_158" = alloca [20 x i8], align 1 - store [20 x i8] %_sender, [20 x i8]* %"$create_event__sender_158", align 1 - %"$a_159" = load %Int32, %Int32* %a, align 4 - call void @"$create_event_76"(%Uint128 %_amount, [20 x i8]* %"$create_event__origin_157", [20 x i8]* %"$create_event__sender_158", %Int32 %"$a_159"), !dbg !20 + br label %"$have_gas_159" + +"$have_gas_159": ; preds = %"$out_of_gas_158", %"$matchsucc_138" + %"$consume_160" = sub i64 %"$gasrem_156", 1 + store i64 %"$consume_160", i64* @_gasrem, align 8 + %"$create_event__origin_161" = alloca [20 x i8], align 1 + store [20 x i8] %_origin, [20 x i8]* %"$create_event__origin_161", align 1 + %"$create_event__sender_162" = alloca [20 x i8], align 1 + store [20 x i8] %_sender, [20 x i8]* %"$create_event__sender_162", align 1 + %"$a_163" = load %Int32, %Int32* %a, align 4 + call void @"$create_event_76"(%Uint128 %_amount, [20 x i8]* %"$create_event__origin_161", [20 x i8]* %"$create_event__sender_162", %Int32 %"$a_163"), !dbg !43 ret void } -define void @t1(i8* %0) !dbg !21 { +define void @t1(i8* %0) !dbg !44 { entry: - %"$_amount_161" = getelementptr i8, i8* %0, i32 0 - %"$_amount_162" = bitcast i8* %"$_amount_161" to %Uint128* - %_amount = load %Uint128, %Uint128* %"$_amount_162", align 8 - %"$_origin_163" = getelementptr i8, i8* %0, i32 16 - %"$_origin_164" = bitcast i8* %"$_origin_163" to [20 x i8]* - %"$_sender_165" = getelementptr i8, i8* %0, i32 36 - %"$_sender_166" = bitcast i8* %"$_sender_165" to [20 x i8]* - %"$p_167" = getelementptr i8, i8* %0, i32 56 - %"$p_168" = bitcast i8* %"$p_167" to %"TName_Pair_List_(Int32)_Int32"** - %p = load %"TName_Pair_List_(Int32)_Int32"*, %"TName_Pair_List_(Int32)_Int32"** %"$p_168", align 8 - call void @"$t1_116"(%Uint128 %_amount, [20 x i8]* %"$_origin_164", [20 x i8]* %"$_sender_166", %"TName_Pair_List_(Int32)_Int32"* %p), !dbg !22 + %"$_amount_169" = getelementptr i8, i8* %0, i32 0 + %"$_amount_170" = bitcast i8* %"$_amount_169" to %Uint128* + %_amount = load %Uint128, %Uint128* %"$_amount_170", align 8 + %"$_origin_171" = getelementptr i8, i8* %0, i32 16 + %"$_origin_172" = bitcast i8* %"$_origin_171" to [20 x i8]* + %"$_sender_173" = getelementptr i8, i8* %0, i32 36 + %"$_sender_174" = bitcast i8* %"$_sender_173" to [20 x i8]* + %"$p_175" = getelementptr i8, i8* %0, i32 56 + %"$p_176" = bitcast i8* %"$p_175" to %"TName_Pair_List_(Int32)_Int32"** + %p = load %"TName_Pair_List_(Int32)_Int32"*, %"TName_Pair_List_(Int32)_Int32"** %"$p_176", align 8 + call void @"$t1_120"(%Uint128 %_amount, [20 x i8]* %"$_origin_172", [20 x i8]* %"$_sender_174", %"TName_Pair_List_(Int32)_Int32"* %p), !dbg !45 ret void } +attributes #0 = { nocallback nofree nosync nounwind readnone speculatable willreturn } + !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) +!1 = distinct !DICompileUnit(language: DW_LANG_C89, file: !2, producer: "Scilla Compiler", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false) !2 = !DIFile(filename: "match_assign2.scilla", directory: "codegen/contr") -!3 = !{} -!4 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !5, file: !5, type: !6, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!5 = !DIFile(filename: ".", directory: ".") -!6 = !DISubroutineType(types: !7) -!7 = !{!8} -!8 = !DIBasicType(tag: DW_TAG_unspecified_type, name: "void") -!9 = !DILocation(line: 0, scope: !4) -!10 = distinct !DISubprogram(name: "_deploy_ops", linkageName: "_deploy_ops", scope: !5, file: !5, type: !6, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!11 = distinct !DISubprogram(name: "create_event", linkageName: "create_event", scope: !2, file: !2, line: 5, type: !6, scopeLine: 5, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!12 = !DILocation(line: 6, column: 7, scope: !11) -!13 = !DILocation(line: 7, column: 3, scope: !11) -!14 = distinct !DISubprogram(name: "t1", linkageName: "t1", scope: !2, file: !2, line: 10, type: !6, scopeLine: 10, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!15 = !DILocation(line: 12, column: 7, scope: !14) -!16 = !DILocation(line: 13, column: 3, scope: !14) -!17 = !DILocation(line: 15, column: 5, scope: !18) -!18 = distinct !DILexicalBlock(scope: !19, file: !2, line: 14, column: 5) -!19 = distinct !DILexicalBlock(scope: !14, file: !2, line: 13, column: 3) -!20 = !DILocation(line: 18, column: 3, scope: !14) -!21 = distinct !DISubprogram(name: "t1", linkageName: "t1", scope: !2, file: !2, line: 10, type: !6, scopeLine: 10, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!22 = !DILocation(line: 10, column: 12, scope: !21) +!3 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !4, file: !4, type: !5, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!4 = !DIFile(filename: ".", directory: ".") +!5 = !DISubroutineType(types: !6) +!6 = !{!7} +!7 = !DIBasicType(tag: DW_TAG_unspecified_type, name: "void") +!8 = !{} +!9 = !DILocation(line: 0, scope: !3) +!10 = distinct !DISubprogram(name: "_deploy_ops", linkageName: "_deploy_ops", scope: !4, file: !4, type: !5, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!11 = distinct !DISubprogram(name: "create_event", linkageName: "create_event", scope: !2, file: !2, line: 5, type: !5, scopeLine: 5, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!12 = !DILocalVariable(name: "m", scope: !11, file: !2, line: 5, type: !13) +!13 = !DIBasicType(name: "Int32", size: 4) +!14 = !DILocation(line: 5, column: 25, scope: !11) +!15 = !DILocalVariable(name: "_sender", scope: !11, file: !2, line: 5, type: !16) +!16 = !DIBasicType(name: "ByStr20 with end", size: 20) +!17 = !DILocation(line: 5, column: 11, scope: !11) +!18 = !DILocalVariable(name: "_origin", scope: !11, file: !2, line: 5, type: !16) +!19 = !DILocalVariable(name: "_amount", scope: !11, file: !2, line: 5, type: !20) +!20 = !DIBasicType(name: "Uint128", size: 16) +!21 = !DILocalVariable(name: "e", scope: !11, file: !2, line: 6, type: !22) +!22 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "Event", baseType: !23, size: 8, align: 8, dwarfAddressSpace: 0) +!23 = !DIBasicType(name: "Event", size: 8) +!24 = !DILocation(line: 6, column: 3, scope: !11) +!25 = !DILocation(line: 6, column: 7, scope: !11) +!26 = !DILocation(line: 7, column: 3, scope: !11) +!27 = distinct !DISubprogram(name: "t1", linkageName: "t1", scope: !2, file: !2, line: 10, type: !5, scopeLine: 10, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!28 = !DILocalVariable(name: "p", scope: !27, file: !2, line: 10, type: !29) +!29 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "Pair (List (Int32)) (Int32)", baseType: !30, size: 8, align: 8, dwarfAddressSpace: 0) +!30 = !DIBasicType(name: "Pair (List (Int32)) (Int32)", size: 8) +!31 = !DILocation(line: 10, column: 15, scope: !27) +!32 = !DILocalVariable(name: "_sender", scope: !27, file: !2, line: 10, type: !16) +!33 = !DILocation(line: 10, column: 12, scope: !27) +!34 = !DILocalVariable(name: "_origin", scope: !27, file: !2, line: 10, type: !16) +!35 = !DILocalVariable(name: "_amount", scope: !27, file: !2, line: 10, type: !20) +!36 = !DILocalVariable(name: "a", scope: !27, file: !2, line: 12, type: !13) +!37 = !DILocation(line: 12, column: 3, scope: !27) +!38 = !DILocation(line: 12, column: 7, scope: !27) +!39 = !DILocation(line: 13, column: 3, scope: !27) +!40 = !DILocation(line: 15, column: 5, scope: !41) +!41 = distinct !DILexicalBlock(scope: !42, file: !2, line: 14, column: 5) +!42 = distinct !DILexicalBlock(scope: !27, file: !2, line: 13, column: 3) +!43 = !DILocation(line: 18, column: 3, scope: !27) +!44 = distinct !DISubprogram(name: "t1", linkageName: "t1", scope: !2, file: !2, line: 10, type: !5, scopeLine: 10, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!45 = !DILocation(line: 10, column: 12, scope: !44) diff --git a/testsuite/contr/match_assign2.ll b/testsuite/contr/match_assign2.ll index 3ee0041b..619cd2e6 100644 --- a/testsuite/contr/match_assign2.ll +++ b/testsuite/contr/match_assign2.ll @@ -4,7 +4,7 @@ ; 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-pc-linux-gnu" +target triple = "x86_64-unknown-linux-gnu" %"$TyDescrTy_PrimTyp_2" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/testsuite/contr/match_assign3.dbg.ll b/testsuite/contr/match_assign3.dbg.ll index 809b6a75..afddb221 100644 --- a/testsuite/contr/match_assign3.dbg.ll +++ b/testsuite/contr/match_assign3.dbg.ll @@ -4,7 +4,7 @@ ; 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-pc-linux-gnu" +target triple = "x86_64-unknown-linux-gnu" %"$TyDescrTy_PrimTyp_1" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } @@ -16,9 +16,9 @@ target triple = "x86_64-pc-linux-gnu" %"$TyDescr_AddrFieldTyp_39" = type { %TyDescrString, %_TyDescrTy_Typ* } %Int32 = type { i32 } %Uint32 = type { i32 } -%"$ParamDescr_202" = type { %ParamDescrString, %_TyDescrTy_Typ* } +%"$ParamDescr_210" = type { %ParamDescrString, %_TyDescrTy_Typ* } %ParamDescrString = type { i8*, i32 } -%"$TransDescr_203" = type { %ParamDescrString, i32, %"$ParamDescr_202"* } +%"$TransDescr_211" = type { %ParamDescrString, i32, %"$ParamDescr_210"* } %Uint128 = type { i128 } %String = type { i8*, i32 } %TName_Bool = type { i8, %CName_True*, %CName_False* } @@ -83,21 +83,21 @@ target triple = "x86_64-pc-linux-gnu" @"$stringlit_87" = unnamed_addr constant [7 x i8] c"message" @_tydescr_table = constant [18 x %_TyDescrTy_Typ*] [%_TyDescrTy_Typ* @"$TyDescr_Event_25", %_TyDescrTy_Typ* @"$TyDescr_Int64_7", %_TyDescrTy_Typ* @"$TyDescr_Addr_41", %_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_37", %_TyDescrTy_Typ* @"$TyDescr_Bystr20_33", %_TyDescrTy_Typ* @"$TyDescr_Uint256_17", %_TyDescrTy_Typ* @"$TyDescr_Uint32_5", %_TyDescrTy_Typ* @"$TyDescr_Uint64_9", %_TyDescrTy_Typ* @"$TyDescr_Bnum_21", %_TyDescrTy_Typ* @"$TyDescr_Uint128_13", %_TyDescrTy_Typ* @"$TyDescr_Exception_27", %_TyDescrTy_Typ* @"$TyDescr_String_19", %_TyDescrTy_Typ* @"$TyDescr_Int256_15", %_TyDescrTy_Typ* @"$TyDescr_Int128_11", %_TyDescrTy_Typ* @"$TyDescr_Bystr_31", %_TyDescrTy_Typ* @"$TyDescr_ReplicateContr_29", %_TyDescrTy_Typ* @"$TyDescr_Message_23", %_TyDescrTy_Typ* @"$TyDescr_Int32_3"] @_tydescr_table_length = constant i32 18 -@"$pname__scilla_version_204" = unnamed_addr constant [15 x i8] c"_scilla_version" -@"$pname__this_address_205" = unnamed_addr constant [13 x i8] c"_this_address" -@"$pname__creation_block_206" = unnamed_addr constant [15 x i8] c"_creation_block" -@_contract_parameters = constant [3 x %"$ParamDescr_202"] [%"$ParamDescr_202" { %ParamDescrString { i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$pname__scilla_version_204", i32 0, i32 0), i32 15 }, %_TyDescrTy_Typ* @"$TyDescr_Uint32_5" }, %"$ParamDescr_202" { %ParamDescrString { i8* getelementptr inbounds ([13 x i8], [13 x i8]* @"$pname__this_address_205", i32 0, i32 0), i32 13 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr20_33" }, %"$ParamDescr_202" { %ParamDescrString { i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$pname__creation_block_206", i32 0, i32 0), i32 15 }, %_TyDescrTy_Typ* @"$TyDescr_Bnum_21" }] +@"$pname__scilla_version_212" = unnamed_addr constant [15 x i8] c"_scilla_version" +@"$pname__this_address_213" = unnamed_addr constant [13 x i8] c"_this_address" +@"$pname__creation_block_214" = unnamed_addr constant [15 x i8] c"_creation_block" +@_contract_parameters = constant [3 x %"$ParamDescr_210"] [%"$ParamDescr_210" { %ParamDescrString { i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$pname__scilla_version_212", i32 0, i32 0), i32 15 }, %_TyDescrTy_Typ* @"$TyDescr_Uint32_5" }, %"$ParamDescr_210" { %ParamDescrString { i8* getelementptr inbounds ([13 x i8], [13 x i8]* @"$pname__this_address_213", i32 0, i32 0), i32 13 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr20_33" }, %"$ParamDescr_210" { %ParamDescrString { i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$pname__creation_block_214", i32 0, i32 0), i32 15 }, %_TyDescrTy_Typ* @"$TyDescr_Bnum_21" }] @_contract_parameters_length = constant i32 3 -@"$tpname__amount_207" = unnamed_addr constant [7 x i8] c"_amount" -@"$tpname__origin_208" = unnamed_addr constant [7 x i8] c"_origin" -@"$tpname__sender_209" = unnamed_addr constant [7 x i8] c"_sender" -@"$tpname_c_210" = unnamed_addr constant [1 x i8] c"c" -@"$tparams_t1_211" = unnamed_addr constant [4 x %"$ParamDescr_202"] [%"$ParamDescr_202" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_207", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_13" }, %"$ParamDescr_202" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_208", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_41" }, %"$ParamDescr_202" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_209", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_41" }, %"$ParamDescr_202" { %ParamDescrString { i8* getelementptr inbounds ([1 x i8], [1 x i8]* @"$tpname_c_210", i32 0, i32 0), i32 1 }, %_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_37" }] -@"$tname_t1_212" = unnamed_addr constant [2 x i8] c"t1" -@_transition_parameters = constant [1 x %"$TransDescr_203"] [%"$TransDescr_203" { %ParamDescrString { i8* getelementptr inbounds ([2 x i8], [2 x i8]* @"$tname_t1_212", i32 0, i32 0), i32 2 }, i32 4, %"$ParamDescr_202"* getelementptr inbounds ([4 x %"$ParamDescr_202"], [4 x %"$ParamDescr_202"]* @"$tparams_t1_211", i32 0, i32 0) }] +@"$tpname__amount_215" = unnamed_addr constant [7 x i8] c"_amount" +@"$tpname__origin_216" = unnamed_addr constant [7 x i8] c"_origin" +@"$tpname__sender_217" = unnamed_addr constant [7 x i8] c"_sender" +@"$tpname_c_218" = unnamed_addr constant [1 x i8] c"c" +@"$tparams_t1_219" = unnamed_addr constant [4 x %"$ParamDescr_210"] [%"$ParamDescr_210" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_215", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_13" }, %"$ParamDescr_210" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_216", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_41" }, %"$ParamDescr_210" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_217", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_41" }, %"$ParamDescr_210" { %ParamDescrString { i8* getelementptr inbounds ([1 x i8], [1 x i8]* @"$tpname_c_218", i32 0, i32 0), i32 1 }, %_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_37" }] +@"$tname_t1_220" = unnamed_addr constant [2 x i8] c"t1" +@_transition_parameters = constant [1 x %"$TransDescr_211"] [%"$TransDescr_211" { %ParamDescrString { i8* getelementptr inbounds ([2 x i8], [2 x i8]* @"$tname_t1_220", i32 0, i32 0), i32 2 }, i32 4, %"$ParamDescr_210"* getelementptr inbounds ([4 x %"$ParamDescr_210"], [4 x %"$ParamDescr_210"]* @"$tparams_t1_219", i32 0, i32 0) }] @_transition_parameters_length = constant i32 1 -define void @_init_libs() !dbg !4 { +define void @_init_libs() !dbg !3 { entry: %"$gasrem_55" = load i64, i64* @_gasrem, align 8 %"$gascmp_56" = icmp ugt i64 5, %"$gasrem_55" @@ -134,6 +134,18 @@ entry: define internal void @"$create_event_65"(%Uint128 %_amount, [20 x i8]* %"$_origin_66", [20 x i8]* %"$_sender_67", %Int32 %m) !dbg !11 { entry: + %"$m_108" = alloca %Int32, align 8 + store %Int32 %m, %Int32* %"$m_108", align 4 + call void @llvm.dbg.declare(metadata %Int32* %"$m_108", metadata !12, metadata !DIExpression()), !dbg !14 + %"$_sender_107" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_sender_67", [20 x i8]** %"$_sender_107", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_sender_107", metadata !15, metadata !DIExpression()), !dbg !17 + %"$_origin_106" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_origin_66", [20 x i8]** %"$_origin_106", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_origin_106", metadata !18, metadata !DIExpression()), !dbg !17 + %"$_amount_105" = alloca %Uint128, align 8 + store %Uint128 %_amount, %Uint128* %"$_amount_105", align 8 + call void @llvm.dbg.declare(metadata %Uint128* %"$_amount_105", metadata !19, metadata !DIExpression()), !dbg !17 %_origin = load [20 x i8], [20 x i8]* %"$_origin_66", align 1 %_sender = load [20 x i8], [20 x i8]* %"$_sender_67", align 1 %"$gasrem_68" = load i64, i64* @_gasrem, align 8 @@ -148,6 +160,7 @@ entry: %"$consume_72" = sub i64 %"$gasrem_68", 1 store i64 %"$consume_72", i64* @_gasrem, align 8 %e = alloca i8*, align 8 + call void @llvm.dbg.declare(metadata i8** %e, metadata !21, metadata !DIExpression()), !dbg !24 %"$gasrem_73" = load i64, i64* @_gasrem, align 8 %"$gascmp_74" = icmp ugt i64 1, %"$gasrem_73" br i1 %"$gascmp_74", label %"$out_of_gas_75", label %"$have_gas_76" @@ -182,7 +195,7 @@ entry: %"$msgobj_v_92" = getelementptr i8, i8* %"$msgobj_78", i32 65 %"$msgobj_v_93" = bitcast i8* %"$msgobj_v_92" to %Int32* store %Int32 %m, %Int32* %"$msgobj_v_93", align 4 - store i8* %"$msgobj_78", i8** %e, align 8, !dbg !12 + store i8* %"$msgobj_78", i8** %e, align 8, !dbg !25 %"$e_95" = load i8*, i8** %e, align 8 %"$_literal_cost_call_97" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Event_25", i8* %"$e_95") %"$gasrem_98" = load i64, i64* @_gasrem, align 8 @@ -198,266 +211,313 @@ entry: store i64 %"$consume_102", i64* @_gasrem, align 8 %"$execptr_load_103" = load i8*, i8** @_execptr, align 8 %"$e_104" = load i8*, i8** %e, align 8 - call void @_event(i8* %"$execptr_load_103", %_TyDescrTy_Typ* @"$TyDescr_Event_25", i8* %"$e_104"), !dbg !13 + call void @_event(i8* %"$execptr_load_103", %_TyDescrTy_Typ* @"$TyDescr_Event_25", i8* %"$e_104"), !dbg !26 ret void } +; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn +declare void @llvm.dbg.declare(metadata, metadata, metadata) #0 + declare i8* @_salloc(i8*, i64) declare i64 @_literal_cost(%_TyDescrTy_Typ*, i8*) declare void @_event(i8*, %_TyDescrTy_Typ*, i8*) -define internal void @"$t1_105"(%Uint128 %_amount, [20 x i8]* %"$_origin_106", [20 x i8]* %"$_sender_107", %TName_Bool* %c) !dbg !14 { +define internal void @"$t1_109"(%Uint128 %_amount, [20 x i8]* %"$_origin_110", [20 x i8]* %"$_sender_111", %TName_Bool* %c) !dbg !27 { entry: - %_origin = load [20 x i8], [20 x i8]* %"$_origin_106", align 1 - %_sender = load [20 x i8], [20 x i8]* %"$_sender_107", align 1 - %"$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" - -"$out_of_gas_110": ; preds = %entry + %"$c_200" = alloca %TName_Bool*, align 8 + store %TName_Bool* %c, %TName_Bool** %"$c_200", align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$c_200", metadata !28, metadata !DIExpression()), !dbg !31 + %"$_sender_199" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_sender_111", [20 x i8]** %"$_sender_199", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_sender_199", metadata !32, metadata !DIExpression()), !dbg !33 + %"$_origin_198" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_origin_110", [20 x i8]** %"$_origin_198", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_origin_198", metadata !34, metadata !DIExpression()), !dbg !33 + %"$_amount_197" = alloca %Uint128, align 8 + store %Uint128 %_amount, %Uint128* %"$_amount_197", align 8 + call void @llvm.dbg.declare(metadata %Uint128* %"$_amount_197", metadata !35, metadata !DIExpression()), !dbg !33 + %_origin = load [20 x i8], [20 x i8]* %"$_origin_110", align 1 + %_sender = load [20 x i8], [20 x i8]* %"$_sender_111", align 1 + %"$gasrem_112" = load i64, i64* @_gasrem, align 8 + %"$gascmp_113" = icmp ugt i64 1, %"$gasrem_112" + br i1 %"$gascmp_113", label %"$out_of_gas_114", label %"$have_gas_115" + +"$out_of_gas_114": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_111" + br label %"$have_gas_115" -"$have_gas_111": ; preds = %"$out_of_gas_110", %entry - %"$consume_112" = sub i64 %"$gasrem_108", 1 - store i64 %"$consume_112", i64* @_gasrem, align 8 +"$have_gas_115": ; preds = %"$out_of_gas_114", %entry + %"$consume_116" = sub i64 %"$gasrem_112", 1 + store i64 %"$consume_116", i64* @_gasrem, align 8 %x = alloca %Int32, align 8 - %"$gasrem_113" = load i64, i64* @_gasrem, align 8 - %"$gascmp_114" = icmp ugt i64 2, %"$gasrem_113" - br i1 %"$gascmp_114", label %"$out_of_gas_115", label %"$have_gas_116" + call void @llvm.dbg.declare(metadata %Int32* %x, metadata !36, metadata !DIExpression()), !dbg !37 + %"$gasrem_117" = load i64, i64* @_gasrem, align 8 + %"$gascmp_118" = icmp ugt i64 2, %"$gasrem_117" + br i1 %"$gascmp_118", label %"$out_of_gas_119", label %"$have_gas_120" -"$out_of_gas_115": ; preds = %"$have_gas_111" +"$out_of_gas_119": ; preds = %"$have_gas_115" call void @_out_of_gas() - br label %"$have_gas_116" - -"$have_gas_116": ; preds = %"$out_of_gas_115", %"$have_gas_111" - %"$consume_117" = sub i64 %"$gasrem_113", 2 - store i64 %"$consume_117", i64* @_gasrem, align 8 - %"$c_tag_119" = getelementptr inbounds %TName_Bool, %TName_Bool* %c, i32 0, i32 0 - %"$c_tag_120" = load i8, i8* %"$c_tag_119", align 1 - switch i8 %"$c_tag_120", label %"$empty_default_121" [ - i8 0, label %"$True_122" - i8 1, label %"$False_129" - ], !dbg !15 - -"$True_122": ; preds = %"$have_gas_116" - %"$c_123" = bitcast %TName_Bool* %c to %CName_True* - %"$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 = %"$True_122" + br label %"$have_gas_120" + +"$have_gas_120": ; preds = %"$out_of_gas_119", %"$have_gas_115" + %"$consume_121" = sub i64 %"$gasrem_117", 2 + store i64 %"$consume_121", i64* @_gasrem, align 8 + %"$c_tag_123" = getelementptr inbounds %TName_Bool, %TName_Bool* %c, i32 0, i32 0 + %"$c_tag_124" = load i8, i8* %"$c_tag_123", align 1 + switch i8 %"$c_tag_124", label %"$empty_default_125" [ + i8 0, label %"$True_126" + i8 1, label %"$False_133" + ], !dbg !38 + +"$True_126": ; preds = %"$have_gas_120" + %"$c_127" = bitcast %TName_Bool* %c to %CName_True* + %"$gasrem_128" = load i64, i64* @_gasrem, align 8 + %"$gascmp_129" = icmp ugt i64 1, %"$gasrem_128" + br i1 %"$gascmp_129", label %"$out_of_gas_130", label %"$have_gas_131" + +"$out_of_gas_130": ; preds = %"$True_126" call void @_out_of_gas() - br label %"$have_gas_127" + br label %"$have_gas_131" -"$have_gas_127": ; preds = %"$out_of_gas_126", %"$True_122" - %"$consume_128" = sub i64 %"$gasrem_124", 1 - store i64 %"$consume_128", i64* @_gasrem, align 8 - store %Int32 { i32 11 }, %Int32* %x, align 4, !dbg !16 - br label %"$matchsucc_118" +"$have_gas_131": ; preds = %"$out_of_gas_130", %"$True_126" + %"$consume_132" = sub i64 %"$gasrem_128", 1 + store i64 %"$consume_132", i64* @_gasrem, align 8 + store %Int32 { i32 11 }, %Int32* %x, align 4, !dbg !39 + br label %"$matchsucc_122" -"$False_129": ; preds = %"$have_gas_116" - %"$c_130" = bitcast %TName_Bool* %c to %CName_False* - %"$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" +"$False_133": ; preds = %"$have_gas_120" + %"$c_134" = bitcast %TName_Bool* %c to %CName_False* + %"$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_133": ; preds = %"$False_129" +"$out_of_gas_137": ; preds = %"$False_133" call void @_out_of_gas() - br label %"$have_gas_134" + br label %"$have_gas_138" -"$have_gas_134": ; preds = %"$out_of_gas_133", %"$False_129" - %"$consume_135" = sub i64 %"$gasrem_131", 1 - store i64 %"$consume_135", i64* @_gasrem, align 8 - store %Int32 { i32 41 }, %Int32* %x, align 4, !dbg !19 - br label %"$matchsucc_118" +"$have_gas_138": ; preds = %"$out_of_gas_137", %"$False_133" + %"$consume_139" = sub i64 %"$gasrem_135", 1 + store i64 %"$consume_139", i64* @_gasrem, align 8 + store %Int32 { i32 41 }, %Int32* %x, align 4, !dbg !42 + br label %"$matchsucc_122" -"$empty_default_121": ; preds = %"$have_gas_116" - br label %"$matchsucc_118" +"$empty_default_125": ; preds = %"$have_gas_120" + br label %"$matchsucc_122" -"$matchsucc_118": ; preds = %"$have_gas_134", %"$have_gas_127", %"$empty_default_121" - %"$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" +"$matchsucc_122": ; preds = %"$have_gas_138", %"$have_gas_131", %"$empty_default_125" + %"$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_138": ; preds = %"$matchsucc_118" +"$out_of_gas_142": ; preds = %"$matchsucc_122" call void @_out_of_gas() - br label %"$have_gas_139" - -"$have_gas_139": ; preds = %"$out_of_gas_138", %"$matchsucc_118" - %"$consume_140" = sub i64 %"$gasrem_136", 1 - store i64 %"$consume_140", i64* @_gasrem, align 8 - %"$create_event__origin_141" = alloca [20 x i8], align 1 - store [20 x i8] %_origin, [20 x i8]* %"$create_event__origin_141", align 1 - %"$create_event__sender_142" = alloca [20 x i8], align 1 - store [20 x i8] %_sender, [20 x i8]* %"$create_event__sender_142", align 1 - %"$x_143" = load %Int32, %Int32* %x, align 4 - call void @"$create_event_65"(%Uint128 %_amount, [20 x i8]* %"$create_event__origin_141", [20 x i8]* %"$create_event__sender_142", %Int32 %"$x_143"), !dbg !21 - %"$gasrem_144" = load i64, i64* @_gasrem, align 8 - %"$gascmp_145" = icmp ugt i64 2, %"$gasrem_144" - br i1 %"$gascmp_145", label %"$out_of_gas_146", label %"$have_gas_147" - -"$out_of_gas_146": ; preds = %"$have_gas_139" + br label %"$have_gas_143" + +"$have_gas_143": ; preds = %"$out_of_gas_142", %"$matchsucc_122" + %"$consume_144" = sub i64 %"$gasrem_140", 1 + store i64 %"$consume_144", i64* @_gasrem, align 8 + %"$create_event__origin_145" = alloca [20 x i8], align 1 + store [20 x i8] %_origin, [20 x i8]* %"$create_event__origin_145", align 1 + %"$create_event__sender_146" = alloca [20 x i8], align 1 + store [20 x i8] %_sender, [20 x i8]* %"$create_event__sender_146", align 1 + %"$x_147" = load %Int32, %Int32* %x, align 4 + call void @"$create_event_65"(%Uint128 %_amount, [20 x i8]* %"$create_event__origin_145", [20 x i8]* %"$create_event__sender_146", %Int32 %"$x_147"), !dbg !44 + %"$gasrem_148" = load i64, i64* @_gasrem, align 8 + %"$gascmp_149" = icmp ugt i64 2, %"$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_147" - -"$have_gas_147": ; preds = %"$out_of_gas_146", %"$have_gas_139" - %"$consume_148" = sub i64 %"$gasrem_144", 2 - store i64 %"$consume_148", i64* @_gasrem, align 8 - %"$c_tag_150" = getelementptr inbounds %TName_Bool, %TName_Bool* %c, i32 0, i32 0 - %"$c_tag_151" = load i8, i8* %"$c_tag_150", align 1 - switch i8 %"$c_tag_151", label %"$empty_default_152" [ - i8 0, label %"$True_153" - i8 1, label %"$False_173" - ], !dbg !22 - -"$True_153": ; preds = %"$have_gas_147" - %"$c_154" = bitcast %TName_Bool* %c to %CName_True* - %"$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 = %"$True_153" + br label %"$have_gas_151" + +"$have_gas_151": ; preds = %"$out_of_gas_150", %"$have_gas_143" + %"$consume_152" = sub i64 %"$gasrem_148", 2 + store i64 %"$consume_152", i64* @_gasrem, align 8 + %"$c_tag_154" = getelementptr inbounds %TName_Bool, %TName_Bool* %c, i32 0, i32 0 + %"$c_tag_155" = load i8, i8* %"$c_tag_154", align 1 + switch i8 %"$c_tag_155", label %"$empty_default_156" [ + i8 0, label %"$True_157" + i8 1, label %"$False_177" + ], !dbg !45 + +"$True_157": ; preds = %"$have_gas_151" + %"$c_158" = bitcast %TName_Bool* %c to %CName_True* + %"$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 = %"$True_157" call void @_out_of_gas() - br label %"$have_gas_158" + br label %"$have_gas_162" -"$have_gas_158": ; preds = %"$out_of_gas_157", %"$True_153" - %"$consume_159" = sub i64 %"$gasrem_155", 1 - store i64 %"$consume_159", i64* @_gasrem, align 8 +"$have_gas_162": ; preds = %"$out_of_gas_161", %"$True_157" + %"$consume_163" = sub i64 %"$gasrem_159", 1 + store i64 %"$consume_163", i64* @_gasrem, align 8 %y = alloca %Int32, align 8 - %"$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" + call void @llvm.dbg.declare(metadata %Int32* %y, metadata !46, metadata !DIExpression()), !dbg !49 + %"$gasrem_164" = load i64, i64* @_gasrem, align 8 + %"$gascmp_165" = icmp ugt i64 1, %"$gasrem_164" + br i1 %"$gascmp_165", label %"$out_of_gas_166", label %"$have_gas_167" -"$out_of_gas_162": ; preds = %"$have_gas_158" +"$out_of_gas_166": ; preds = %"$have_gas_162" call void @_out_of_gas() - br label %"$have_gas_163" + br label %"$have_gas_167" -"$have_gas_163": ; preds = %"$out_of_gas_162", %"$have_gas_158" - %"$consume_164" = sub i64 %"$gasrem_160", 1 - store i64 %"$consume_164", i64* @_gasrem, align 8 - store %Int32 { i32 101 }, %Int32* %y, align 4, !dbg !23 - %"$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" +"$have_gas_167": ; preds = %"$out_of_gas_166", %"$have_gas_162" + %"$consume_168" = sub i64 %"$gasrem_164", 1 + store i64 %"$consume_168", i64* @_gasrem, align 8 + store %Int32 { i32 101 }, %Int32* %y, align 4, !dbg !50 + %"$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_167": ; preds = %"$have_gas_163" +"$out_of_gas_171": ; preds = %"$have_gas_167" call void @_out_of_gas() - br label %"$have_gas_168" - -"$have_gas_168": ; preds = %"$out_of_gas_167", %"$have_gas_163" - %"$consume_169" = sub i64 %"$gasrem_165", 1 - store i64 %"$consume_169", i64* @_gasrem, align 8 - %"$create_event__origin_170" = alloca [20 x i8], align 1 - store [20 x i8] %_origin, [20 x i8]* %"$create_event__origin_170", align 1 - %"$create_event__sender_171" = alloca [20 x i8], align 1 - store [20 x i8] %_sender, [20 x i8]* %"$create_event__sender_171", align 1 - %"$y_172" = load %Int32, %Int32* %y, align 4 - call void @"$create_event_65"(%Uint128 %_amount, [20 x i8]* %"$create_event__origin_170", [20 x i8]* %"$create_event__sender_171", %Int32 %"$y_172"), !dbg !26 - br label %"$matchsucc_149" - -"$False_173": ; preds = %"$have_gas_147" - %"$c_174" = bitcast %TName_Bool* %c to %CName_False* - %"$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 = %"$False_173" + br label %"$have_gas_172" + +"$have_gas_172": ; preds = %"$out_of_gas_171", %"$have_gas_167" + %"$consume_173" = sub i64 %"$gasrem_169", 1 + store i64 %"$consume_173", i64* @_gasrem, align 8 + %"$create_event__origin_174" = alloca [20 x i8], align 1 + store [20 x i8] %_origin, [20 x i8]* %"$create_event__origin_174", align 1 + %"$create_event__sender_175" = alloca [20 x i8], align 1 + store [20 x i8] %_sender, [20 x i8]* %"$create_event__sender_175", align 1 + %"$y_176" = load %Int32, %Int32* %y, align 4 + call void @"$create_event_65"(%Uint128 %_amount, [20 x i8]* %"$create_event__origin_174", [20 x i8]* %"$create_event__sender_175", %Int32 %"$y_176"), !dbg !51 + br label %"$matchsucc_153" + +"$False_177": ; preds = %"$have_gas_151" + %"$c_178" = bitcast %TName_Bool* %c to %CName_False* + %"$gasrem_179" = load i64, i64* @_gasrem, align 8 + %"$gascmp_180" = icmp ugt i64 1, %"$gasrem_179" + br i1 %"$gascmp_180", label %"$out_of_gas_181", label %"$have_gas_182" + +"$out_of_gas_181": ; preds = %"$False_177" call void @_out_of_gas() - br label %"$have_gas_178" + br label %"$have_gas_182" -"$have_gas_178": ; preds = %"$out_of_gas_177", %"$False_173" - %"$consume_179" = sub i64 %"$gasrem_175", 1 - store i64 %"$consume_179", i64* @_gasrem, align 8 +"$have_gas_182": ; preds = %"$out_of_gas_181", %"$False_177" + %"$consume_183" = sub i64 %"$gasrem_179", 1 + store i64 %"$consume_183", i64* @_gasrem, align 8 %y1 = alloca %Int32, 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" + call void @llvm.dbg.declare(metadata %Int32* %y1, metadata !52, metadata !DIExpression()), !dbg !54 + %"$gasrem_184" = load i64, i64* @_gasrem, align 8 + %"$gascmp_185" = icmp ugt i64 1, %"$gasrem_184" + br i1 %"$gascmp_185", label %"$out_of_gas_186", label %"$have_gas_187" -"$out_of_gas_182": ; preds = %"$have_gas_178" +"$out_of_gas_186": ; preds = %"$have_gas_182" call void @_out_of_gas() - br label %"$have_gas_183" + br label %"$have_gas_187" -"$have_gas_183": ; preds = %"$out_of_gas_182", %"$have_gas_178" - %"$consume_184" = sub i64 %"$gasrem_180", 1 - store i64 %"$consume_184", i64* @_gasrem, align 8 - store %Int32 { i32 102 }, %Int32* %y1, align 4, !dbg !27 - %"$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" +"$have_gas_187": ; preds = %"$out_of_gas_186", %"$have_gas_182" + %"$consume_188" = sub i64 %"$gasrem_184", 1 + store i64 %"$consume_188", i64* @_gasrem, align 8 + store %Int32 { i32 102 }, %Int32* %y1, align 4, !dbg !55 + %"$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_187": ; preds = %"$have_gas_183" +"$out_of_gas_191": ; preds = %"$have_gas_187" call void @_out_of_gas() - br label %"$have_gas_188" - -"$have_gas_188": ; preds = %"$out_of_gas_187", %"$have_gas_183" - %"$consume_189" = sub i64 %"$gasrem_185", 1 - store i64 %"$consume_189", i64* @_gasrem, align 8 - %"$create_event__origin_190" = alloca [20 x i8], align 1 - store [20 x i8] %_origin, [20 x i8]* %"$create_event__origin_190", align 1 - %"$create_event__sender_191" = alloca [20 x i8], align 1 - store [20 x i8] %_sender, [20 x i8]* %"$create_event__sender_191", align 1 - %"$y_192" = load %Int32, %Int32* %y1, align 4 - call void @"$create_event_65"(%Uint128 %_amount, [20 x i8]* %"$create_event__origin_190", [20 x i8]* %"$create_event__sender_191", %Int32 %"$y_192"), !dbg !29 - br label %"$matchsucc_149" - -"$empty_default_152": ; preds = %"$have_gas_147" - br label %"$matchsucc_149" - -"$matchsucc_149": ; preds = %"$have_gas_188", %"$have_gas_168", %"$empty_default_152" + br label %"$have_gas_192" + +"$have_gas_192": ; preds = %"$out_of_gas_191", %"$have_gas_187" + %"$consume_193" = sub i64 %"$gasrem_189", 1 + store i64 %"$consume_193", i64* @_gasrem, align 8 + %"$create_event__origin_194" = alloca [20 x i8], align 1 + store [20 x i8] %_origin, [20 x i8]* %"$create_event__origin_194", align 1 + %"$create_event__sender_195" = alloca [20 x i8], align 1 + store [20 x i8] %_sender, [20 x i8]* %"$create_event__sender_195", align 1 + %"$y_196" = load %Int32, %Int32* %y1, align 4 + call void @"$create_event_65"(%Uint128 %_amount, [20 x i8]* %"$create_event__origin_194", [20 x i8]* %"$create_event__sender_195", %Int32 %"$y_196"), !dbg !56 + br label %"$matchsucc_153" + +"$empty_default_156": ; preds = %"$have_gas_151" + br label %"$matchsucc_153" + +"$matchsucc_153": ; preds = %"$have_gas_192", %"$have_gas_172", %"$empty_default_156" ret void } -define void @t1(i8* %0) !dbg !30 { +define void @t1(i8* %0) !dbg !57 { entry: - %"$_amount_194" = getelementptr i8, i8* %0, i32 0 - %"$_amount_195" = bitcast i8* %"$_amount_194" to %Uint128* - %_amount = load %Uint128, %Uint128* %"$_amount_195", align 8 - %"$_origin_196" = getelementptr i8, i8* %0, i32 16 - %"$_origin_197" = bitcast i8* %"$_origin_196" to [20 x i8]* - %"$_sender_198" = getelementptr i8, i8* %0, i32 36 - %"$_sender_199" = bitcast i8* %"$_sender_198" to [20 x i8]* - %"$c_200" = getelementptr i8, i8* %0, i32 56 - %"$c_201" = bitcast i8* %"$c_200" to %TName_Bool** - %c = load %TName_Bool*, %TName_Bool** %"$c_201", align 8 - call void @"$t1_105"(%Uint128 %_amount, [20 x i8]* %"$_origin_197", [20 x i8]* %"$_sender_199", %TName_Bool* %c), !dbg !31 + %"$_amount_202" = getelementptr i8, i8* %0, i32 0 + %"$_amount_203" = bitcast i8* %"$_amount_202" to %Uint128* + %_amount = load %Uint128, %Uint128* %"$_amount_203", align 8 + %"$_origin_204" = getelementptr i8, i8* %0, i32 16 + %"$_origin_205" = bitcast i8* %"$_origin_204" to [20 x i8]* + %"$_sender_206" = getelementptr i8, i8* %0, i32 36 + %"$_sender_207" = bitcast i8* %"$_sender_206" to [20 x i8]* + %"$c_208" = getelementptr i8, i8* %0, i32 56 + %"$c_209" = bitcast i8* %"$c_208" to %TName_Bool** + %c = load %TName_Bool*, %TName_Bool** %"$c_209", align 8 + call void @"$t1_109"(%Uint128 %_amount, [20 x i8]* %"$_origin_205", [20 x i8]* %"$_sender_207", %TName_Bool* %c), !dbg !58 ret void } +attributes #0 = { nocallback nofree nosync nounwind readnone speculatable willreturn } + !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) +!1 = distinct !DICompileUnit(language: DW_LANG_C89, file: !2, producer: "Scilla Compiler", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false) !2 = !DIFile(filename: "match_assign3.scilla", directory: "codegen/contr") -!3 = !{} -!4 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !5, file: !5, type: !6, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!5 = !DIFile(filename: ".", directory: ".") -!6 = !DISubroutineType(types: !7) -!7 = !{!8} -!8 = !DIBasicType(tag: DW_TAG_unspecified_type, name: "void") -!9 = !DILocation(line: 0, scope: !4) -!10 = distinct !DISubprogram(name: "_deploy_ops", linkageName: "_deploy_ops", scope: !5, file: !5, type: !6, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!11 = distinct !DISubprogram(name: "create_event", linkageName: "create_event", scope: !2, file: !2, line: 5, type: !6, scopeLine: 5, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!12 = !DILocation(line: 6, column: 7, scope: !11) -!13 = !DILocation(line: 7, column: 3, scope: !11) -!14 = distinct !DISubprogram(name: "t1", linkageName: "t1", scope: !2, file: !2, line: 10, type: !6, scopeLine: 10, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!15 = !DILocation(line: 12, column: 7, scope: !14) -!16 = !DILocation(line: 14, column: 9, scope: !17) -!17 = distinct !DILexicalBlock(scope: !18, file: !2, line: 13, column: 9) -!18 = distinct !DILexicalBlock(scope: !14, file: !2, line: 12, column: 7) -!19 = !DILocation(line: 16, column: 9, scope: !20) -!20 = distinct !DILexicalBlock(scope: !18, file: !2, line: 15, column: 9) -!21 = !DILocation(line: 18, column: 3, scope: !14) -!22 = !DILocation(line: 20, column: 3, scope: !14) -!23 = !DILocation(line: 22, column: 9, scope: !24) -!24 = distinct !DILexicalBlock(scope: !25, file: !2, line: 21, column: 5) -!25 = distinct !DILexicalBlock(scope: !14, file: !2, line: 20, column: 3) -!26 = !DILocation(line: 23, column: 5, scope: !24) -!27 = !DILocation(line: 25, column: 9, scope: !28) -!28 = distinct !DILexicalBlock(scope: !25, file: !2, line: 24, column: 5) -!29 = !DILocation(line: 26, column: 5, scope: !28) -!30 = distinct !DISubprogram(name: "t1", linkageName: "t1", scope: !2, file: !2, line: 10, type: !6, scopeLine: 10, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!31 = !DILocation(line: 10, column: 12, scope: !30) +!3 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !4, file: !4, type: !5, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!4 = !DIFile(filename: ".", directory: ".") +!5 = !DISubroutineType(types: !6) +!6 = !{!7} +!7 = !DIBasicType(tag: DW_TAG_unspecified_type, name: "void") +!8 = !{} +!9 = !DILocation(line: 0, scope: !3) +!10 = distinct !DISubprogram(name: "_deploy_ops", linkageName: "_deploy_ops", scope: !4, file: !4, type: !5, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!11 = distinct !DISubprogram(name: "create_event", linkageName: "create_event", scope: !2, file: !2, line: 5, type: !5, scopeLine: 5, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!12 = !DILocalVariable(name: "m", scope: !11, file: !2, line: 5, type: !13) +!13 = !DIBasicType(name: "Int32", size: 4) +!14 = !DILocation(line: 5, column: 25, scope: !11) +!15 = !DILocalVariable(name: "_sender", scope: !11, file: !2, line: 5, type: !16) +!16 = !DIBasicType(name: "ByStr20 with end", size: 20) +!17 = !DILocation(line: 5, column: 11, scope: !11) +!18 = !DILocalVariable(name: "_origin", scope: !11, file: !2, line: 5, type: !16) +!19 = !DILocalVariable(name: "_amount", scope: !11, file: !2, line: 5, type: !20) +!20 = !DIBasicType(name: "Uint128", size: 16) +!21 = !DILocalVariable(name: "e", scope: !11, file: !2, line: 6, type: !22) +!22 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "Event", baseType: !23, size: 8, align: 8, dwarfAddressSpace: 0) +!23 = !DIBasicType(name: "Event", size: 8) +!24 = !DILocation(line: 6, column: 3, scope: !11) +!25 = !DILocation(line: 6, column: 7, scope: !11) +!26 = !DILocation(line: 7, column: 3, scope: !11) +!27 = distinct !DISubprogram(name: "t1", linkageName: "t1", scope: !2, file: !2, line: 10, type: !5, scopeLine: 10, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!28 = !DILocalVariable(name: "c", scope: !27, file: !2, line: 10, type: !29) +!29 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "Bool", baseType: !30, size: 8, align: 8, dwarfAddressSpace: 0) +!30 = !DIBasicType(name: "Bool", size: 8) +!31 = !DILocation(line: 10, column: 15, scope: !27) +!32 = !DILocalVariable(name: "_sender", scope: !27, file: !2, line: 10, type: !16) +!33 = !DILocation(line: 10, column: 12, scope: !27) +!34 = !DILocalVariable(name: "_origin", scope: !27, file: !2, line: 10, type: !16) +!35 = !DILocalVariable(name: "_amount", scope: !27, file: !2, line: 10, type: !20) +!36 = !DILocalVariable(name: "x", scope: !27, file: !2, line: 12, type: !13) +!37 = !DILocation(line: 12, column: 3, scope: !27) +!38 = !DILocation(line: 12, column: 7, scope: !27) +!39 = !DILocation(line: 14, column: 9, scope: !40) +!40 = distinct !DILexicalBlock(scope: !41, file: !2, line: 13, column: 9) +!41 = distinct !DILexicalBlock(scope: !27, file: !2, line: 12, column: 7) +!42 = !DILocation(line: 16, column: 9, scope: !43) +!43 = distinct !DILexicalBlock(scope: !41, file: !2, line: 15, column: 9) +!44 = !DILocation(line: 18, column: 3, scope: !27) +!45 = !DILocation(line: 20, column: 3, scope: !27) +!46 = !DILocalVariable(name: "y", scope: !47, file: !2, line: 22, type: !13) +!47 = distinct !DILexicalBlock(scope: !48, file: !2, line: 21, column: 5) +!48 = distinct !DILexicalBlock(scope: !27, file: !2, line: 20, column: 3) +!49 = !DILocation(line: 22, column: 5, scope: !47) +!50 = !DILocation(line: 22, column: 9, scope: !47) +!51 = !DILocation(line: 23, column: 5, scope: !47) +!52 = !DILocalVariable(name: "y", scope: !53, file: !2, line: 25, type: !13) +!53 = distinct !DILexicalBlock(scope: !48, file: !2, line: 24, column: 5) +!54 = !DILocation(line: 25, column: 5, scope: !53) +!55 = !DILocation(line: 25, column: 9, scope: !53) +!56 = !DILocation(line: 26, column: 5, scope: !53) +!57 = distinct !DISubprogram(name: "t1", linkageName: "t1", scope: !2, file: !2, line: 10, type: !5, scopeLine: 10, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!58 = !DILocation(line: 10, column: 12, scope: !57) diff --git a/testsuite/contr/match_assign3.ll b/testsuite/contr/match_assign3.ll index ae98e68d..fd7f3b7b 100644 --- a/testsuite/contr/match_assign3.ll +++ b/testsuite/contr/match_assign3.ll @@ -4,7 +4,7 @@ ; 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-pc-linux-gnu" +target triple = "x86_64-unknown-linux-gnu" %"$TyDescrTy_PrimTyp_1" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/testsuite/contr/name_clash1.dbg.ll b/testsuite/contr/name_clash1.dbg.ll index 18cc0a29..578f92ed 100644 --- a/testsuite/contr/name_clash1.dbg.ll +++ b/testsuite/contr/name_clash1.dbg.ll @@ -4,7 +4,7 @@ ; 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-pc-linux-gnu" +target triple = "x86_64-unknown-linux-gnu" %"$TyDescrTy_PrimTyp_7" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } @@ -16,9 +16,9 @@ target triple = "x86_64-pc-linux-gnu" %"$TyDescr_AddrFieldTyp_46" = type { %TyDescrString, %_TyDescrTy_Typ* } %Int32 = type { i32 } %Uint32 = type { i32 } -%"$ParamDescr_216" = type { %ParamDescrString, %_TyDescrTy_Typ* } +%"$ParamDescr_224" = type { %ParamDescrString, %_TyDescrTy_Typ* } %ParamDescrString = type { i8*, i32 } -%"$TransDescr_217" = type { %ParamDescrString, i32, %"$ParamDescr_216"* } +%"$TransDescr_225" = type { %ParamDescrString, i32, %"$ParamDescr_224"* } %Uint128 = type { i128 } %String = type { i8*, i32 } %TName_Bool = type { i8, %CName_True*, %CName_False* } @@ -98,24 +98,24 @@ target triple = "x86_64-pc-linux-gnu" @"$stringlit_108" = unnamed_addr constant [10 x i8] c"_eventname" @"$stringlit_113" = unnamed_addr constant [4 x i8] c"test" @"$stringlit_116" = unnamed_addr constant [7 x i8] c"message" -@"$x_137" = unnamed_addr constant [2 x i8] c"x\00" +@"$x_141" = unnamed_addr constant [2 x i8] c"x\00" @_tydescr_table = constant [19 x %_TyDescrTy_Typ*] [%_TyDescrTy_Typ* @"$TyDescr_Event_31", %_TyDescrTy_Typ* @"$TyDescr_Int64_13", %_TyDescrTy_Typ* @"$TyDescr_Addr_48", %_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_44", %_TyDescrTy_Typ* @"$TyDescr_Bystr20_39", %_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_37", %_TyDescrTy_Typ* @"$TyDescr_ReplicateContr_35", %_TyDescrTy_Typ* @"$TyDescr_Message_29", %_TyDescrTy_Typ* @"$TyDescr_ADT_List_Int32_43", %_TyDescrTy_Typ* @"$TyDescr_Int32_9"] @_tydescr_table_length = constant i32 19 -@"$pname__scilla_version_218" = unnamed_addr constant [15 x i8] c"_scilla_version" -@"$pname__this_address_219" = unnamed_addr constant [13 x i8] c"_this_address" -@"$pname__creation_block_220" = unnamed_addr constant [15 x i8] c"_creation_block" -@_contract_parameters = constant [3 x %"$ParamDescr_216"] [%"$ParamDescr_216" { %ParamDescrString { i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$pname__scilla_version_218", i32 0, i32 0), i32 15 }, %_TyDescrTy_Typ* @"$TyDescr_Uint32_11" }, %"$ParamDescr_216" { %ParamDescrString { i8* getelementptr inbounds ([13 x i8], [13 x i8]* @"$pname__this_address_219", i32 0, i32 0), i32 13 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr20_39" }, %"$ParamDescr_216" { %ParamDescrString { i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$pname__creation_block_220", i32 0, i32 0), i32 15 }, %_TyDescrTy_Typ* @"$TyDescr_Bnum_27" }] +@"$pname__scilla_version_226" = unnamed_addr constant [15 x i8] c"_scilla_version" +@"$pname__this_address_227" = unnamed_addr constant [13 x i8] c"_this_address" +@"$pname__creation_block_228" = unnamed_addr constant [15 x i8] c"_creation_block" +@_contract_parameters = constant [3 x %"$ParamDescr_224"] [%"$ParamDescr_224" { %ParamDescrString { i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$pname__scilla_version_226", i32 0, i32 0), i32 15 }, %_TyDescrTy_Typ* @"$TyDescr_Uint32_11" }, %"$ParamDescr_224" { %ParamDescrString { i8* getelementptr inbounds ([13 x i8], [13 x i8]* @"$pname__this_address_227", i32 0, i32 0), i32 13 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr20_39" }, %"$ParamDescr_224" { %ParamDescrString { i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$pname__creation_block_228", i32 0, i32 0), i32 15 }, %_TyDescrTy_Typ* @"$TyDescr_Bnum_27" }] @_contract_parameters_length = constant i32 3 -@"$tpname__amount_221" = unnamed_addr constant [7 x i8] c"_amount" -@"$tpname__origin_222" = unnamed_addr constant [7 x i8] c"_origin" -@"$tpname__sender_223" = unnamed_addr constant [7 x i8] c"_sender" -@"$tpname_c_224" = unnamed_addr constant [1 x i8] c"c" -@"$tparams_t1_225" = unnamed_addr constant [4 x %"$ParamDescr_216"] [%"$ParamDescr_216" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_221", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_19" }, %"$ParamDescr_216" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_222", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_48" }, %"$ParamDescr_216" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_223", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_48" }, %"$ParamDescr_216" { %ParamDescrString { i8* getelementptr inbounds ([1 x i8], [1 x i8]* @"$tpname_c_224", i32 0, i32 0), i32 1 }, %_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_44" }] -@"$tname_t1_226" = unnamed_addr constant [2 x i8] c"t1" -@_transition_parameters = constant [1 x %"$TransDescr_217"] [%"$TransDescr_217" { %ParamDescrString { i8* getelementptr inbounds ([2 x i8], [2 x i8]* @"$tname_t1_226", i32 0, i32 0), i32 2 }, i32 4, %"$ParamDescr_216"* getelementptr inbounds ([4 x %"$ParamDescr_216"], [4 x %"$ParamDescr_216"]* @"$tparams_t1_225", i32 0, i32 0) }] +@"$tpname__amount_229" = unnamed_addr constant [7 x i8] c"_amount" +@"$tpname__origin_230" = unnamed_addr constant [7 x i8] c"_origin" +@"$tpname__sender_231" = unnamed_addr constant [7 x i8] c"_sender" +@"$tpname_c_232" = unnamed_addr constant [1 x i8] c"c" +@"$tparams_t1_233" = unnamed_addr constant [4 x %"$ParamDescr_224"] [%"$ParamDescr_224" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_229", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_19" }, %"$ParamDescr_224" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_230", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_48" }, %"$ParamDescr_224" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_231", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_48" }, %"$ParamDescr_224" { %ParamDescrString { i8* getelementptr inbounds ([1 x i8], [1 x i8]* @"$tpname_c_232", i32 0, i32 0), i32 1 }, %_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_44" }] +@"$tname_t1_234" = unnamed_addr constant [2 x i8] c"t1" +@_transition_parameters = constant [1 x %"$TransDescr_225"] [%"$TransDescr_225" { %ParamDescrString { i8* getelementptr inbounds ([2 x i8], [2 x i8]* @"$tname_t1_234", i32 0, i32 0), i32 2 }, i32 4, %"$ParamDescr_224"* getelementptr inbounds ([4 x %"$ParamDescr_224"], [4 x %"$ParamDescr_224"]* @"$tparams_t1_233", i32 0, i32 0) }] @_transition_parameters_length = constant i32 1 -define void @_init_libs() !dbg !4 { +define void @_init_libs() !dbg !3 { entry: %"$gasrem_74" = load i64, i64* @_gasrem, align 8 %"$gascmp_75" = icmp ugt i64 5, %"$gasrem_74" @@ -148,6 +148,7 @@ entry: %"$consume_83" = sub i64 %"$gasrem_79", 1 store i64 %"$consume_83", i64* @_gasrem, align 8 %"$x_6" = alloca %Int32, align 8 + call void @llvm.dbg.declare(metadata %Int32* %"$x_6", metadata !11, metadata !DIExpression()), !dbg !13 %"$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" @@ -159,20 +160,35 @@ entry: "$have_gas_87": ; preds = %"$out_of_gas_86", %"$have_gas_82" %"$consume_88" = sub i64 %"$gasrem_84", 1 store i64 %"$consume_88", i64* @_gasrem, align 8 - store %Int32 { i32 1 }, %Int32* %"$x_6", align 4, !dbg !11 + store %Int32 { i32 1 }, %Int32* %"$x_6", align 4, !dbg !14 %"$execptr_load_89" = load i8*, i8** @_execptr, align 8 %"$$x_6_91" = load %Int32, %Int32* %"$x_6", align 4 %"$update_value_92" = alloca %Int32, align 8 store %Int32 %"$$x_6_91", %Int32* %"$update_value_92", align 4 %"$update_value_93" = bitcast %Int32* %"$update_value_92" to i8* - call void @_update_field(i8* %"$execptr_load_89", i8* getelementptr inbounds ([2 x i8], [2 x i8]* @"$x_90", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Int32_9", i32 0, i8* null, i8* %"$update_value_93"), !dbg !11 + call void @_update_field(i8* %"$execptr_load_89", i8* getelementptr inbounds ([2 x i8], [2 x i8]* @"$x_90", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Int32_9", i32 0, i8* null, i8* %"$update_value_93"), !dbg !14 ret void } +; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn +declare void @llvm.dbg.declare(metadata, metadata, metadata) #0 + declare void @_update_field(i8*, i8*, %_TyDescrTy_Typ*, i32, i8*, i8*) -define internal void @"$create_event_94"(%Uint128 %_amount, [20 x i8]* %"$_origin_95", [20 x i8]* %"$_sender_96", %Int32 %m) !dbg !12 { +define internal void @"$create_event_94"(%Uint128 %_amount, [20 x i8]* %"$_origin_95", [20 x i8]* %"$_sender_96", %Int32 %m) !dbg !15 { entry: + %"$m_137" = alloca %Int32, align 8 + store %Int32 %m, %Int32* %"$m_137", align 4 + call void @llvm.dbg.declare(metadata %Int32* %"$m_137", metadata !16, metadata !DIExpression()), !dbg !17 + %"$_sender_136" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_sender_96", [20 x i8]** %"$_sender_136", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_sender_136", metadata !18, metadata !DIExpression()), !dbg !20 + %"$_origin_135" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_origin_95", [20 x i8]** %"$_origin_135", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_origin_135", metadata !21, metadata !DIExpression()), !dbg !20 + %"$_amount_134" = alloca %Uint128, align 8 + store %Uint128 %_amount, %Uint128* %"$_amount_134", align 8 + call void @llvm.dbg.declare(metadata %Uint128* %"$_amount_134", metadata !22, metadata !DIExpression()), !dbg !20 %_origin = load [20 x i8], [20 x i8]* %"$_origin_95", align 1 %_sender = load [20 x i8], [20 x i8]* %"$_sender_96", align 1 %"$gasrem_97" = load i64, i64* @_gasrem, align 8 @@ -187,6 +203,7 @@ entry: %"$consume_101" = sub i64 %"$gasrem_97", 1 store i64 %"$consume_101", i64* @_gasrem, align 8 %e = alloca i8*, align 8 + call void @llvm.dbg.declare(metadata i8** %e, metadata !24, metadata !DIExpression()), !dbg !27 %"$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" @@ -221,7 +238,7 @@ entry: %"$msgobj_v_121" = getelementptr i8, i8* %"$msgobj_107", i32 65 %"$msgobj_v_122" = bitcast i8* %"$msgobj_v_121" to %Int32* store %Int32 %m, %Int32* %"$msgobj_v_122", align 4 - store i8* %"$msgobj_107", i8** %e, align 8, !dbg !13 + store i8* %"$msgobj_107", i8** %e, align 8, !dbg !28 %"$e_124" = load i8*, i8** %e, align 8 %"$_literal_cost_call_126" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Event_31", i8* %"$e_124") %"$gasrem_127" = load i64, i64* @_gasrem, align 8 @@ -237,7 +254,7 @@ entry: store i64 %"$consume_131", i64* @_gasrem, align 8 %"$execptr_load_132" = load i8*, i8** @_execptr, align 8 %"$e_133" = load i8*, i8** %e, align 8 - call void @_event(i8* %"$execptr_load_132", %_TyDescrTy_Typ* @"$TyDescr_Event_31", i8* %"$e_133"), !dbg !14 + call void @_event(i8* %"$execptr_load_132", %_TyDescrTy_Typ* @"$TyDescr_Event_31", i8* %"$e_133"), !dbg !29 ret void } @@ -247,204 +264,251 @@ declare i64 @_literal_cost(%_TyDescrTy_Typ*, i8*) declare void @_event(i8*, %_TyDescrTy_Typ*, i8*) -define internal void @"$t1_134"(%Uint128 %_amount, [20 x i8]* %"$_origin_135", [20 x i8]* %"$_sender_136", %TName_Bool* %c) !dbg !15 { +define internal void @"$t1_138"(%Uint128 %_amount, [20 x i8]* %"$_origin_139", [20 x i8]* %"$_sender_140", %TName_Bool* %c) !dbg !30 { entry: - %_origin = load [20 x i8], [20 x i8]* %"$_origin_135", align 1 - %_sender = load [20 x i8], [20 x i8]* %"$_sender_136", align 1 + %"$c_214" = alloca %TName_Bool*, align 8 + store %TName_Bool* %c, %TName_Bool** %"$c_214", align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$c_214", metadata !31, metadata !DIExpression()), !dbg !34 + %"$_sender_213" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_sender_140", [20 x i8]** %"$_sender_213", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_sender_213", metadata !35, metadata !DIExpression()), !dbg !36 + %"$_origin_212" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_origin_139", [20 x i8]** %"$_origin_212", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_origin_212", metadata !37, metadata !DIExpression()), !dbg !36 + %"$_amount_211" = alloca %Uint128, align 8 + store %Uint128 %_amount, %Uint128* %"$_amount_211", align 8 + call void @llvm.dbg.declare(metadata %Uint128* %"$_amount_211", metadata !38, metadata !DIExpression()), !dbg !36 + %_origin = load [20 x i8], [20 x i8]* %"$_origin_139", align 1 + %_sender = load [20 x i8], [20 x i8]* %"$_sender_140", align 1 %"$x_1" = alloca %Int32, align 8 - %"$execptr_load_138" = load i8*, i8** @_execptr, align 8 - %"$$x_1_call_139" = call i8* @_fetch_field(i8* %"$execptr_load_138", i8* getelementptr inbounds ([2 x i8], [2 x i8]* @"$x_137", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Int32_9", i32 0, i8* null, i32 1), !dbg !16 - %"$$x_1_140" = bitcast i8* %"$$x_1_call_139" to %Int32* - %"$$x_1_141" = load %Int32, %Int32* %"$$x_1_140", align 4 - store %Int32 %"$$x_1_141", %Int32* %"$x_1", align 4 - %"$_literal_cost_$x_1_142" = alloca %Int32, align 8 - %"$$x_1_143" = load %Int32, %Int32* %"$x_1", align 4 - store %Int32 %"$$x_1_143", %Int32* %"$_literal_cost_$x_1_142", align 4 - %"$$_literal_cost_$x_1_142_144" = bitcast %Int32* %"$_literal_cost_$x_1_142" to i8* - %"$_literal_cost_call_145" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Int32_9", i8* %"$$_literal_cost_$x_1_142_144") - %"$gasadd_146" = add i64 %"$_literal_cost_call_145", 0 - %"$gasrem_147" = load i64, i64* @_gasrem, align 8 - %"$gascmp_148" = icmp ugt i64 %"$gasadd_146", %"$gasrem_147" - br i1 %"$gascmp_148", label %"$out_of_gas_149", label %"$have_gas_150" - -"$out_of_gas_149": ; preds = %entry + call void @llvm.dbg.declare(metadata %Int32* %"$x_1", metadata !39, metadata !DIExpression()), !dbg !40 + %"$execptr_load_142" = load i8*, i8** @_execptr, align 8 + %"$$x_1_call_143" = call i8* @_fetch_field(i8* %"$execptr_load_142", i8* getelementptr inbounds ([2 x i8], [2 x i8]* @"$x_141", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Int32_9", i32 0, i8* null, i32 1), !dbg !40 + %"$$x_1_144" = bitcast i8* %"$$x_1_call_143" to %Int32* + %"$$x_1_145" = load %Int32, %Int32* %"$$x_1_144", align 4 + store %Int32 %"$$x_1_145", %Int32* %"$x_1", align 4 + %"$_literal_cost_$x_1_146" = alloca %Int32, align 8 + %"$$x_1_147" = load %Int32, %Int32* %"$x_1", align 4 + store %Int32 %"$$x_1_147", %Int32* %"$_literal_cost_$x_1_146", align 4 + %"$$_literal_cost_$x_1_146_148" = bitcast %Int32* %"$_literal_cost_$x_1_146" to i8* + %"$_literal_cost_call_149" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Int32_9", i8* %"$$_literal_cost_$x_1_146_148") + %"$gasadd_150" = add i64 %"$_literal_cost_call_149", 0 + %"$gasrem_151" = load i64, i64* @_gasrem, align 8 + %"$gascmp_152" = icmp ugt i64 %"$gasadd_150", %"$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_150" + br label %"$have_gas_154" -"$have_gas_150": ; preds = %"$out_of_gas_149", %entry - %"$consume_151" = sub i64 %"$gasrem_147", %"$gasadd_146" - store i64 %"$consume_151", i64* @_gasrem, align 8 - %"$gasrem_152" = load i64, i64* @_gasrem, align 8 - %"$gascmp_153" = icmp ugt i64 1, %"$gasrem_152" - br i1 %"$gascmp_153", label %"$out_of_gas_154", label %"$have_gas_155" +"$have_gas_154": ; preds = %"$out_of_gas_153", %entry + %"$consume_155" = sub i64 %"$gasrem_151", %"$gasadd_150" + store i64 %"$consume_155", i64* @_gasrem, 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_154": ; preds = %"$have_gas_150" +"$out_of_gas_158": ; preds = %"$have_gas_154" call void @_out_of_gas() - br label %"$have_gas_155" + br label %"$have_gas_159" -"$have_gas_155": ; preds = %"$out_of_gas_154", %"$have_gas_150" - %"$consume_156" = sub i64 %"$gasrem_152", 1 - store i64 %"$consume_156", i64* @_gasrem, align 8 +"$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 %"$x_2" = alloca %TName_List_Int32*, align 8 - %"$gasrem_157" = load i64, i64* @_gasrem, align 8 - %"$gascmp_158" = icmp ugt i64 1, %"$gasrem_157" - br i1 %"$gascmp_158", label %"$out_of_gas_159", label %"$have_gas_160" + call void @llvm.dbg.declare(metadata %TName_List_Int32** %"$x_2", metadata !41, metadata !DIExpression()), !dbg !44 + %"$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_159": ; preds = %"$have_gas_155" +"$out_of_gas_163": ; preds = %"$have_gas_159" call void @_out_of_gas() - br label %"$have_gas_160" - -"$have_gas_160": ; preds = %"$out_of_gas_159", %"$have_gas_155" - %"$consume_161" = sub i64 %"$gasrem_157", 1 - store i64 %"$consume_161", i64* @_gasrem, align 8 - %"$adtval_162_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_162_salloc" = call i8* @_salloc(i8* %"$adtval_162_load", i64 1) - %"$adtval_162" = bitcast i8* %"$adtval_162_salloc" to %CName_Nil_Int32* - %"$adtgep_163" = getelementptr inbounds %CName_Nil_Int32, %CName_Nil_Int32* %"$adtval_162", i32 0, i32 0 - store i8 1, i8* %"$adtgep_163", align 1 - %"$adtptr_164" = bitcast %CName_Nil_Int32* %"$adtval_162" to %TName_List_Int32* - store %TName_List_Int32* %"$adtptr_164", %TName_List_Int32** %"$x_2", align 8, !dbg !17 - %"$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" - -"$out_of_gas_167": ; preds = %"$have_gas_160" + 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 + %"$adtval_166_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_166_salloc" = call i8* @_salloc(i8* %"$adtval_166_load", i64 1) + %"$adtval_166" = bitcast i8* %"$adtval_166_salloc" to %CName_Nil_Int32* + %"$adtgep_167" = getelementptr inbounds %CName_Nil_Int32, %CName_Nil_Int32* %"$adtval_166", i32 0, i32 0 + store i8 1, i8* %"$adtgep_167", align 1 + %"$adtptr_168" = bitcast %CName_Nil_Int32* %"$adtval_166" to %TName_List_Int32* + store %TName_List_Int32* %"$adtptr_168", %TName_List_Int32** %"$x_2", align 8, !dbg !45 + %"$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_171": ; preds = %"$have_gas_164" call void @_out_of_gas() - br label %"$have_gas_168" + br label %"$have_gas_172" -"$have_gas_168": ; preds = %"$out_of_gas_167", %"$have_gas_160" - %"$consume_169" = sub i64 %"$gasrem_165", 1 - store i64 %"$consume_169", i64* @_gasrem, align 8 +"$have_gas_172": ; preds = %"$out_of_gas_171", %"$have_gas_164" + %"$consume_173" = sub i64 %"$gasrem_169", 1 + store i64 %"$consume_173", i64* @_gasrem, align 8 %"$x_4" = alloca %Int32, align 8 - %"$gasrem_170" = load i64, i64* @_gasrem, align 8 - %"$gascmp_171" = icmp ugt i64 2, %"$gasrem_170" - br i1 %"$gascmp_171", label %"$out_of_gas_172", label %"$have_gas_173" + call void @llvm.dbg.declare(metadata %Int32* %"$x_4", metadata !46, metadata !DIExpression()), !dbg !47 + %"$gasrem_174" = load i64, i64* @_gasrem, align 8 + %"$gascmp_175" = icmp ugt i64 2, %"$gasrem_174" + br i1 %"$gascmp_175", label %"$out_of_gas_176", label %"$have_gas_177" -"$out_of_gas_172": ; preds = %"$have_gas_168" +"$out_of_gas_176": ; preds = %"$have_gas_172" call void @_out_of_gas() - br label %"$have_gas_173" - -"$have_gas_173": ; preds = %"$out_of_gas_172", %"$have_gas_168" - %"$consume_174" = sub i64 %"$gasrem_170", 2 - store i64 %"$consume_174", i64* @_gasrem, align 8 - %"$$x_2_176" = load %TName_List_Int32*, %TName_List_Int32** %"$x_2", align 8 - %"$$x_2_tag_177" = getelementptr inbounds %TName_List_Int32, %TName_List_Int32* %"$$x_2_176", i32 0, i32 0 - %"$$x_2_tag_178" = load i8, i8* %"$$x_2_tag_177", align 1 - switch i8 %"$$x_2_tag_178", label %"$empty_default_179" [ - i8 0, label %"$Cons_180" - i8 1, label %"$Nil_192" - ], !dbg !18 - -"$Cons_180": ; preds = %"$have_gas_173" - %"$$x_2_181" = bitcast %TName_List_Int32* %"$$x_2_176" to %CName_Cons_Int32* - %"$$x_3_gep_182" = getelementptr inbounds %CName_Cons_Int32, %CName_Cons_Int32* %"$$x_2_181", i32 0, i32 1 - %"$$x_3_load_183" = load %Int32, %Int32* %"$$x_3_gep_182", align 4 + br label %"$have_gas_177" + +"$have_gas_177": ; preds = %"$out_of_gas_176", %"$have_gas_172" + %"$consume_178" = sub i64 %"$gasrem_174", 2 + store i64 %"$consume_178", i64* @_gasrem, align 8 + %"$$x_2_180" = load %TName_List_Int32*, %TName_List_Int32** %"$x_2", align 8 + %"$$x_2_tag_181" = getelementptr inbounds %TName_List_Int32, %TName_List_Int32* %"$$x_2_180", i32 0, i32 0 + %"$$x_2_tag_182" = load i8, i8* %"$$x_2_tag_181", align 1 + switch i8 %"$$x_2_tag_182", label %"$empty_default_183" [ + i8 0, label %"$Cons_184" + i8 1, label %"$Nil_196" + ], !dbg !48 + +"$Cons_184": ; preds = %"$have_gas_177" + %"$$x_2_185" = bitcast %TName_List_Int32* %"$$x_2_180" to %CName_Cons_Int32* + %"$$x_3_gep_186" = getelementptr inbounds %CName_Cons_Int32, %CName_Cons_Int32* %"$$x_2_185", i32 0, i32 1 + %"$$x_3_load_187" = load %Int32, %Int32* %"$$x_3_gep_186", align 4 %"$x_3" = alloca %Int32, align 8 - store %Int32 %"$$x_3_load_183", %Int32* %"$x_3", align 4 - %"$$$x_2_5_gep_184" = getelementptr inbounds %CName_Cons_Int32, %CName_Cons_Int32* %"$$x_2_181", i32 0, i32 2 - %"$$$x_2_5_load_185" = load %TName_List_Int32*, %TName_List_Int32** %"$$$x_2_5_gep_184", align 8 + store %Int32 %"$$x_3_load_187", %Int32* %"$x_3", align 4 + %"$$$x_2_5_gep_188" = getelementptr inbounds %CName_Cons_Int32, %CName_Cons_Int32* %"$$x_2_185", i32 0, i32 2 + %"$$$x_2_5_load_189" = load %TName_List_Int32*, %TName_List_Int32** %"$$$x_2_5_gep_188", align 8 %"$$x_2_5" = alloca %TName_List_Int32*, align 8 - store %TName_List_Int32* %"$$$x_2_5_load_185", %TName_List_Int32** %"$$x_2_5", 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" + store %TName_List_Int32* %"$$$x_2_5_load_189", %TName_List_Int32** %"$$x_2_5", 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_188": ; preds = %"$Cons_180" +"$out_of_gas_192": ; preds = %"$Cons_184" call void @_out_of_gas() - br label %"$have_gas_189" - -"$have_gas_189": ; preds = %"$out_of_gas_188", %"$Cons_180" - %"$consume_190" = sub i64 %"$gasrem_186", 1 - store i64 %"$consume_190", i64* @_gasrem, align 8 - %"$$x_3_191" = load %Int32, %Int32* %"$x_3", align 4 - store %Int32 %"$$x_3_191", %Int32* %"$x_4", align 4, !dbg !19 - br label %"$matchsucc_175" - -"$Nil_192": ; preds = %"$have_gas_173" - %"$$x_2_193" = bitcast %TName_List_Int32* %"$$x_2_176" to %CName_Nil_Int32* - %"$gasrem_194" = load i64, i64* @_gasrem, align 8 - %"$gascmp_195" = icmp ugt i64 1, %"$gasrem_194" - br i1 %"$gascmp_195", label %"$out_of_gas_196", label %"$have_gas_197" - -"$out_of_gas_196": ; preds = %"$Nil_192" + br label %"$have_gas_193" + +"$have_gas_193": ; preds = %"$out_of_gas_192", %"$Cons_184" + %"$consume_194" = sub i64 %"$gasrem_190", 1 + store i64 %"$consume_194", i64* @_gasrem, align 8 + %"$$x_3_195" = load %Int32, %Int32* %"$x_3", align 4 + store %Int32 %"$$x_3_195", %Int32* %"$x_4", align 4, !dbg !49 + br label %"$matchsucc_179" + +"$Nil_196": ; preds = %"$have_gas_177" + %"$$x_2_197" = bitcast %TName_List_Int32* %"$$x_2_180" to %CName_Nil_Int32* + %"$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 = %"$Nil_196" call void @_out_of_gas() - br label %"$have_gas_197" + br label %"$have_gas_201" -"$have_gas_197": ; preds = %"$out_of_gas_196", %"$Nil_192" - %"$consume_198" = sub i64 %"$gasrem_194", 1 - store i64 %"$consume_198", i64* @_gasrem, align 8 - store %Int32 { i32 2 }, %Int32* %"$x_4", align 4, !dbg !22 - br label %"$matchsucc_175" +"$have_gas_201": ; preds = %"$out_of_gas_200", %"$Nil_196" + %"$consume_202" = sub i64 %"$gasrem_198", 1 + store i64 %"$consume_202", i64* @_gasrem, align 8 + store %Int32 { i32 2 }, %Int32* %"$x_4", align 4, !dbg !52 + br label %"$matchsucc_179" -"$empty_default_179": ; preds = %"$have_gas_173" - br label %"$matchsucc_175" +"$empty_default_183": ; preds = %"$have_gas_177" + br label %"$matchsucc_179" -"$matchsucc_175": ; preds = %"$have_gas_197", %"$have_gas_189", %"$empty_default_179" - %"$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" +"$matchsucc_179": ; preds = %"$have_gas_201", %"$have_gas_193", %"$empty_default_183" + %"$gasrem_203" = load i64, i64* @_gasrem, align 8 + %"$gascmp_204" = icmp ugt i64 1, %"$gasrem_203" + br i1 %"$gascmp_204", label %"$out_of_gas_205", label %"$have_gas_206" -"$out_of_gas_201": ; preds = %"$matchsucc_175" +"$out_of_gas_205": ; preds = %"$matchsucc_179" call void @_out_of_gas() - br label %"$have_gas_202" - -"$have_gas_202": ; preds = %"$out_of_gas_201", %"$matchsucc_175" - %"$consume_203" = sub i64 %"$gasrem_199", 1 - store i64 %"$consume_203", i64* @_gasrem, align 8 - %"$create_event__origin_204" = alloca [20 x i8], align 1 - store [20 x i8] %_origin, [20 x i8]* %"$create_event__origin_204", align 1 - %"$create_event__sender_205" = alloca [20 x i8], align 1 - store [20 x i8] %_sender, [20 x i8]* %"$create_event__sender_205", align 1 - %"$$x_4_206" = load %Int32, %Int32* %"$x_4", align 4 - call void @"$create_event_94"(%Uint128 %_amount, [20 x i8]* %"$create_event__origin_204", [20 x i8]* %"$create_event__sender_205", %Int32 %"$$x_4_206"), !dbg !24 + br label %"$have_gas_206" + +"$have_gas_206": ; preds = %"$out_of_gas_205", %"$matchsucc_179" + %"$consume_207" = sub i64 %"$gasrem_203", 1 + store i64 %"$consume_207", i64* @_gasrem, align 8 + %"$create_event__origin_208" = alloca [20 x i8], align 1 + store [20 x i8] %_origin, [20 x i8]* %"$create_event__origin_208", align 1 + %"$create_event__sender_209" = alloca [20 x i8], align 1 + store [20 x i8] %_sender, [20 x i8]* %"$create_event__sender_209", align 1 + %"$$x_4_210" = load %Int32, %Int32* %"$x_4", align 4 + call void @"$create_event_94"(%Uint128 %_amount, [20 x i8]* %"$create_event__origin_208", [20 x i8]* %"$create_event__sender_209", %Int32 %"$$x_4_210"), !dbg !54 ret void } declare i8* @_fetch_field(i8*, i8*, %_TyDescrTy_Typ*, i32, i8*, i32) -define void @t1(i8* %0) !dbg !25 { +define void @t1(i8* %0) !dbg !55 { entry: - %"$_amount_208" = getelementptr i8, i8* %0, i32 0 - %"$_amount_209" = bitcast i8* %"$_amount_208" to %Uint128* - %_amount = load %Uint128, %Uint128* %"$_amount_209", align 8 - %"$_origin_210" = getelementptr i8, i8* %0, i32 16 - %"$_origin_211" = bitcast i8* %"$_origin_210" to [20 x i8]* - %"$_sender_212" = getelementptr i8, i8* %0, i32 36 - %"$_sender_213" = bitcast i8* %"$_sender_212" to [20 x i8]* - %"$c_214" = getelementptr i8, i8* %0, i32 56 - %"$c_215" = bitcast i8* %"$c_214" to %TName_Bool** - %c = load %TName_Bool*, %TName_Bool** %"$c_215", align 8 - call void @"$t1_134"(%Uint128 %_amount, [20 x i8]* %"$_origin_211", [20 x i8]* %"$_sender_213", %TName_Bool* %c), !dbg !26 + %"$_amount_216" = getelementptr i8, i8* %0, i32 0 + %"$_amount_217" = bitcast i8* %"$_amount_216" to %Uint128* + %_amount = load %Uint128, %Uint128* %"$_amount_217", align 8 + %"$_origin_218" = getelementptr i8, i8* %0, i32 16 + %"$_origin_219" = bitcast i8* %"$_origin_218" to [20 x i8]* + %"$_sender_220" = getelementptr i8, i8* %0, i32 36 + %"$_sender_221" = bitcast i8* %"$_sender_220" to [20 x i8]* + %"$c_222" = getelementptr i8, i8* %0, i32 56 + %"$c_223" = bitcast i8* %"$c_222" to %TName_Bool** + %c = load %TName_Bool*, %TName_Bool** %"$c_223", align 8 + call void @"$t1_138"(%Uint128 %_amount, [20 x i8]* %"$_origin_219", [20 x i8]* %"$_sender_221", %TName_Bool* %c), !dbg !56 ret void } +attributes #0 = { nocallback nofree nosync nounwind readnone speculatable willreturn } + !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) +!1 = distinct !DICompileUnit(language: DW_LANG_C89, file: !2, producer: "Scilla Compiler", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false) !2 = !DIFile(filename: "name_clash1.scilla", directory: "codegen/contr") -!3 = !{} -!4 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !5, file: !5, type: !6, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!5 = !DIFile(filename: ".", directory: ".") -!6 = !DISubroutineType(types: !7) -!7 = !{!8} -!8 = !DIBasicType(tag: DW_TAG_unspecified_type, name: "void") -!9 = !DILocation(line: 0, scope: !4) -!10 = distinct !DISubprogram(name: "_deploy_ops", linkageName: "_deploy_ops", scope: !5, file: !5, type: !6, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!11 = !DILocation(line: 5, column: 19, scope: !10) -!12 = distinct !DISubprogram(name: "create_event", linkageName: "create_event", scope: !2, file: !2, line: 7, type: !6, scopeLine: 7, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!13 = !DILocation(line: 8, column: 7, scope: !12) -!14 = !DILocation(line: 9, column: 3, scope: !12) -!15 = distinct !DISubprogram(name: "t1", linkageName: "t1", scope: !2, file: !2, line: 12, type: !6, scopeLine: 12, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!16 = !DILocation(line: 13, column: 3, scope: !15) -!17 = !DILocation(line: 14, column: 7, scope: !15) -!18 = !DILocation(line: 15, column: 7, scope: !15) -!19 = !DILocation(line: 16, column: 21, scope: !20) -!20 = distinct !DILexicalBlock(scope: !21, file: !2, line: 16, column: 9) -!21 = distinct !DILexicalBlock(scope: !15, file: !2, line: 15, column: 7) -!22 = !DILocation(line: 17, column: 16, scope: !23) -!23 = distinct !DILexicalBlock(scope: !21, file: !2, line: 17, column: 9) -!24 = !DILocation(line: 19, column: 3, scope: !15) -!25 = distinct !DISubprogram(name: "t1", linkageName: "t1", scope: !2, file: !2, line: 12, type: !6, scopeLine: 12, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!26 = !DILocation(line: 12, column: 12, scope: !25) +!3 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !4, file: !4, type: !5, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!4 = !DIFile(filename: ".", directory: ".") +!5 = !DISubroutineType(types: !6) +!6 = !{!7} +!7 = !DIBasicType(tag: DW_TAG_unspecified_type, name: "void") +!8 = !{} +!9 = !DILocation(line: 0, scope: !3) +!10 = distinct !DISubprogram(name: "_deploy_ops", linkageName: "_deploy_ops", scope: !4, file: !4, type: !5, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!11 = !DILocalVariable(name: "$x_6", scope: !10, file: !2, line: 5, type: !12) +!12 = !DIBasicType(name: "Int32", size: 4) +!13 = !DILocation(line: 5, column: 7, scope: !10) +!14 = !DILocation(line: 5, column: 19, scope: !10) +!15 = distinct !DISubprogram(name: "create_event", linkageName: "create_event", scope: !2, file: !2, line: 7, type: !5, scopeLine: 7, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!16 = !DILocalVariable(name: "m", scope: !15, file: !2, line: 7, type: !12) +!17 = !DILocation(line: 7, column: 25, scope: !15) +!18 = !DILocalVariable(name: "_sender", scope: !15, file: !2, line: 7, type: !19) +!19 = !DIBasicType(name: "ByStr20 with end", size: 20) +!20 = !DILocation(line: 7, column: 11, scope: !15) +!21 = !DILocalVariable(name: "_origin", scope: !15, file: !2, line: 7, type: !19) +!22 = !DILocalVariable(name: "_amount", scope: !15, file: !2, line: 7, type: !23) +!23 = !DIBasicType(name: "Uint128", size: 16) +!24 = !DILocalVariable(name: "e", scope: !15, file: !2, line: 8, type: !25) +!25 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "Event", baseType: !26, size: 8, align: 8, dwarfAddressSpace: 0) +!26 = !DIBasicType(name: "Event", size: 8) +!27 = !DILocation(line: 8, column: 3, scope: !15) +!28 = !DILocation(line: 8, column: 7, scope: !15) +!29 = !DILocation(line: 9, column: 3, scope: !15) +!30 = distinct !DISubprogram(name: "t1", linkageName: "t1", scope: !2, file: !2, line: 12, type: !5, scopeLine: 12, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!31 = !DILocalVariable(name: "c", scope: !30, file: !2, line: 12, type: !32) +!32 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "Bool", baseType: !33, size: 8, align: 8, dwarfAddressSpace: 0) +!33 = !DIBasicType(name: "Bool", size: 8) +!34 = !DILocation(line: 12, column: 15, scope: !30) +!35 = !DILocalVariable(name: "_sender", scope: !30, file: !2, line: 12, type: !19) +!36 = !DILocation(line: 12, column: 12, scope: !30) +!37 = !DILocalVariable(name: "_origin", scope: !30, file: !2, line: 12, type: !19) +!38 = !DILocalVariable(name: "_amount", scope: !30, file: !2, line: 12, type: !23) +!39 = !DILocalVariable(name: "$x_1", scope: !30, file: !2, line: 13, type: !12) +!40 = !DILocation(line: 13, column: 3, scope: !30) +!41 = !DILocalVariable(name: "$x_2", scope: !30, file: !2, line: 14, type: !42) +!42 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "List (Int32)", baseType: !43, size: 8, align: 8, dwarfAddressSpace: 0) +!43 = !DIBasicType(name: "List (Int32)", size: 8) +!44 = !DILocation(line: 14, column: 3, scope: !30) +!45 = !DILocation(line: 14, column: 7, scope: !30) +!46 = !DILocalVariable(name: "$x_4", scope: !30, file: !2, line: 15, type: !12) +!47 = !DILocation(line: 15, column: 3, scope: !30) +!48 = !DILocation(line: 15, column: 7, scope: !30) +!49 = !DILocation(line: 16, column: 21, scope: !50) +!50 = distinct !DILexicalBlock(scope: !51, file: !2, line: 16, column: 9) +!51 = distinct !DILexicalBlock(scope: !30, file: !2, line: 15, column: 7) +!52 = !DILocation(line: 17, column: 16, scope: !53) +!53 = distinct !DILexicalBlock(scope: !51, file: !2, line: 17, column: 9) +!54 = !DILocation(line: 19, column: 3, scope: !30) +!55 = distinct !DISubprogram(name: "t1", linkageName: "t1", scope: !2, file: !2, line: 12, type: !5, scopeLine: 12, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!56 = !DILocation(line: 12, column: 12, scope: !55) diff --git a/testsuite/contr/name_clash1.ll b/testsuite/contr/name_clash1.ll index 1c6f9d2a..3bad2dff 100644 --- a/testsuite/contr/name_clash1.ll +++ b/testsuite/contr/name_clash1.ll @@ -4,7 +4,7 @@ ; 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-pc-linux-gnu" +target triple = "x86_64-unknown-linux-gnu" %"$TyDescrTy_PrimTyp_7" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/testsuite/contr/name_clash2.dbg.ll b/testsuite/contr/name_clash2.dbg.ll index dd1e9d50..5ab5ee32 100644 --- a/testsuite/contr/name_clash2.dbg.ll +++ b/testsuite/contr/name_clash2.dbg.ll @@ -4,7 +4,7 @@ ; 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-pc-linux-gnu" +target triple = "x86_64-unknown-linux-gnu" %"$TyDescrTy_PrimTyp_4" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } @@ -16,9 +16,9 @@ target triple = "x86_64-pc-linux-gnu" %"$TyDescr_AddrFieldTyp_42" = type { %TyDescrString, %_TyDescrTy_Typ* } %Int32 = type { i32 } %Uint32 = type { i32 } -%"$ParamDescr_187" = type { %ParamDescrString, %_TyDescrTy_Typ* } +%"$ParamDescr_195" = type { %ParamDescrString, %_TyDescrTy_Typ* } %ParamDescrString = type { i8*, i32 } -%"$TransDescr_188" = type { %ParamDescrString, i32, %"$ParamDescr_187"* } +%"$TransDescr_196" = type { %ParamDescrString, i32, %"$ParamDescr_195"* } %Uint128 = type { i128 } %String = type { i8*, i32 } %TName_Bool = type { i8, %CName_True*, %CName_False* } @@ -82,24 +82,24 @@ target triple = "x86_64-pc-linux-gnu" @"$stringlit_92" = unnamed_addr constant [10 x i8] c"_eventname" @"$stringlit_97" = unnamed_addr constant [4 x i8] c"test" @"$stringlit_100" = unnamed_addr constant [7 x i8] c"message" -@"$x_121" = unnamed_addr constant [2 x i8] c"x\00" +@"$x_125" = unnamed_addr constant [2 x i8] c"x\00" @_tydescr_table = constant [18 x %_TyDescrTy_Typ*] [%_TyDescrTy_Typ* @"$TyDescr_Event_28", %_TyDescrTy_Typ* @"$TyDescr_Int64_10", %_TyDescrTy_Typ* @"$TyDescr_Addr_44", %_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_40", %_TyDescrTy_Typ* @"$TyDescr_Bystr20_36", %_TyDescrTy_Typ* @"$TyDescr_Uint256_20", %_TyDescrTy_Typ* @"$TyDescr_Uint32_8", %_TyDescrTy_Typ* @"$TyDescr_Uint64_12", %_TyDescrTy_Typ* @"$TyDescr_Bnum_24", %_TyDescrTy_Typ* @"$TyDescr_Uint128_16", %_TyDescrTy_Typ* @"$TyDescr_Exception_30", %_TyDescrTy_Typ* @"$TyDescr_String_22", %_TyDescrTy_Typ* @"$TyDescr_Int256_18", %_TyDescrTy_Typ* @"$TyDescr_Int128_14", %_TyDescrTy_Typ* @"$TyDescr_Bystr_34", %_TyDescrTy_Typ* @"$TyDescr_ReplicateContr_32", %_TyDescrTy_Typ* @"$TyDescr_Message_26", %_TyDescrTy_Typ* @"$TyDescr_Int32_6"] @_tydescr_table_length = constant i32 18 -@"$pname__scilla_version_189" = unnamed_addr constant [15 x i8] c"_scilla_version" -@"$pname__this_address_190" = unnamed_addr constant [13 x i8] c"_this_address" -@"$pname__creation_block_191" = unnamed_addr constant [15 x i8] c"_creation_block" -@_contract_parameters = constant [3 x %"$ParamDescr_187"] [%"$ParamDescr_187" { %ParamDescrString { i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$pname__scilla_version_189", i32 0, i32 0), i32 15 }, %_TyDescrTy_Typ* @"$TyDescr_Uint32_8" }, %"$ParamDescr_187" { %ParamDescrString { i8* getelementptr inbounds ([13 x i8], [13 x i8]* @"$pname__this_address_190", i32 0, i32 0), i32 13 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr20_36" }, %"$ParamDescr_187" { %ParamDescrString { i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$pname__creation_block_191", i32 0, i32 0), i32 15 }, %_TyDescrTy_Typ* @"$TyDescr_Bnum_24" }] +@"$pname__scilla_version_197" = unnamed_addr constant [15 x i8] c"_scilla_version" +@"$pname__this_address_198" = unnamed_addr constant [13 x i8] c"_this_address" +@"$pname__creation_block_199" = unnamed_addr constant [15 x i8] c"_creation_block" +@_contract_parameters = constant [3 x %"$ParamDescr_195"] [%"$ParamDescr_195" { %ParamDescrString { i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$pname__scilla_version_197", i32 0, i32 0), i32 15 }, %_TyDescrTy_Typ* @"$TyDescr_Uint32_8" }, %"$ParamDescr_195" { %ParamDescrString { i8* getelementptr inbounds ([13 x i8], [13 x i8]* @"$pname__this_address_198", i32 0, i32 0), i32 13 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr20_36" }, %"$ParamDescr_195" { %ParamDescrString { i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$pname__creation_block_199", i32 0, i32 0), i32 15 }, %_TyDescrTy_Typ* @"$TyDescr_Bnum_24" }] @_contract_parameters_length = constant i32 3 -@"$tpname__amount_192" = unnamed_addr constant [7 x i8] c"_amount" -@"$tpname__origin_193" = unnamed_addr constant [7 x i8] c"_origin" -@"$tpname__sender_194" = unnamed_addr constant [7 x i8] c"_sender" -@"$tpname_c_195" = unnamed_addr constant [1 x i8] c"c" -@"$tparams_t1_196" = unnamed_addr constant [4 x %"$ParamDescr_187"] [%"$ParamDescr_187" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_192", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_16" }, %"$ParamDescr_187" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_193", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_44" }, %"$ParamDescr_187" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_194", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_44" }, %"$ParamDescr_187" { %ParamDescrString { i8* getelementptr inbounds ([1 x i8], [1 x i8]* @"$tpname_c_195", i32 0, i32 0), i32 1 }, %_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_40" }] -@"$tname_t1_197" = unnamed_addr constant [2 x i8] c"t1" -@_transition_parameters = constant [1 x %"$TransDescr_188"] [%"$TransDescr_188" { %ParamDescrString { i8* getelementptr inbounds ([2 x i8], [2 x i8]* @"$tname_t1_197", i32 0, i32 0), i32 2 }, i32 4, %"$ParamDescr_187"* getelementptr inbounds ([4 x %"$ParamDescr_187"], [4 x %"$ParamDescr_187"]* @"$tparams_t1_196", i32 0, i32 0) }] +@"$tpname__amount_200" = unnamed_addr constant [7 x i8] c"_amount" +@"$tpname__origin_201" = unnamed_addr constant [7 x i8] c"_origin" +@"$tpname__sender_202" = unnamed_addr constant [7 x i8] c"_sender" +@"$tpname_c_203" = unnamed_addr constant [1 x i8] c"c" +@"$tparams_t1_204" = unnamed_addr constant [4 x %"$ParamDescr_195"] [%"$ParamDescr_195" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_200", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_16" }, %"$ParamDescr_195" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_201", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_44" }, %"$ParamDescr_195" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_202", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_44" }, %"$ParamDescr_195" { %ParamDescrString { i8* getelementptr inbounds ([1 x i8], [1 x i8]* @"$tpname_c_203", i32 0, i32 0), i32 1 }, %_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_40" }] +@"$tname_t1_205" = unnamed_addr constant [2 x i8] c"t1" +@_transition_parameters = constant [1 x %"$TransDescr_196"] [%"$TransDescr_196" { %ParamDescrString { i8* getelementptr inbounds ([2 x i8], [2 x i8]* @"$tname_t1_205", i32 0, i32 0), i32 2 }, i32 4, %"$ParamDescr_195"* getelementptr inbounds ([4 x %"$ParamDescr_195"], [4 x %"$ParamDescr_195"]* @"$tparams_t1_204", i32 0, i32 0) }] @_transition_parameters_length = constant i32 1 -define void @_init_libs() !dbg !4 { +define void @_init_libs() !dbg !3 { entry: %"$gasrem_58" = load i64, i64* @_gasrem, align 8 %"$gascmp_59" = icmp ugt i64 5, %"$gasrem_58" @@ -132,6 +132,7 @@ entry: %"$consume_67" = sub i64 %"$gasrem_63", 1 store i64 %"$consume_67", i64* @_gasrem, align 8 %"$x_3" = alloca %Int32, align 8 + call void @llvm.dbg.declare(metadata %Int32* %"$x_3", metadata !11, metadata !DIExpression()), !dbg !13 %"$gasrem_68" = load i64, i64* @_gasrem, align 8 %"$gascmp_69" = icmp ugt i64 1, %"$gasrem_68" br i1 %"$gascmp_69", label %"$out_of_gas_70", label %"$have_gas_71" @@ -143,20 +144,35 @@ entry: "$have_gas_71": ; preds = %"$out_of_gas_70", %"$have_gas_66" %"$consume_72" = sub i64 %"$gasrem_68", 1 store i64 %"$consume_72", i64* @_gasrem, align 8 - store %Int32 { i32 1 }, %Int32* %"$x_3", align 4, !dbg !11 + store %Int32 { i32 1 }, %Int32* %"$x_3", align 4, !dbg !14 %"$execptr_load_73" = load i8*, i8** @_execptr, align 8 %"$$x_3_75" = load %Int32, %Int32* %"$x_3", align 4 %"$update_value_76" = alloca %Int32, align 8 store %Int32 %"$$x_3_75", %Int32* %"$update_value_76", align 4 %"$update_value_77" = bitcast %Int32* %"$update_value_76" to i8* - call void @_update_field(i8* %"$execptr_load_73", i8* getelementptr inbounds ([2 x i8], [2 x i8]* @"$x_74", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Int32_6", i32 0, i8* null, i8* %"$update_value_77"), !dbg !11 + call void @_update_field(i8* %"$execptr_load_73", i8* getelementptr inbounds ([2 x i8], [2 x i8]* @"$x_74", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Int32_6", i32 0, i8* null, i8* %"$update_value_77"), !dbg !14 ret void } +; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn +declare void @llvm.dbg.declare(metadata, metadata, metadata) #0 + declare void @_update_field(i8*, i8*, %_TyDescrTy_Typ*, i32, i8*, i8*) -define internal void @"$create_event_78"(%Uint128 %_amount, [20 x i8]* %"$_origin_79", [20 x i8]* %"$_sender_80", %Int32 %m) !dbg !12 { +define internal void @"$create_event_78"(%Uint128 %_amount, [20 x i8]* %"$_origin_79", [20 x i8]* %"$_sender_80", %Int32 %m) !dbg !15 { entry: + %"$m_121" = alloca %Int32, align 8 + store %Int32 %m, %Int32* %"$m_121", align 4 + call void @llvm.dbg.declare(metadata %Int32* %"$m_121", metadata !16, metadata !DIExpression()), !dbg !17 + %"$_sender_120" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_sender_80", [20 x i8]** %"$_sender_120", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_sender_120", metadata !18, metadata !DIExpression()), !dbg !20 + %"$_origin_119" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_origin_79", [20 x i8]** %"$_origin_119", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_origin_119", metadata !21, metadata !DIExpression()), !dbg !20 + %"$_amount_118" = alloca %Uint128, align 8 + store %Uint128 %_amount, %Uint128* %"$_amount_118", align 8 + call void @llvm.dbg.declare(metadata %Uint128* %"$_amount_118", metadata !22, metadata !DIExpression()), !dbg !20 %_origin = load [20 x i8], [20 x i8]* %"$_origin_79", align 1 %_sender = load [20 x i8], [20 x i8]* %"$_sender_80", align 1 %"$gasrem_81" = load i64, i64* @_gasrem, align 8 @@ -171,6 +187,7 @@ entry: %"$consume_85" = sub i64 %"$gasrem_81", 1 store i64 %"$consume_85", i64* @_gasrem, align 8 %e = alloca i8*, align 8 + call void @llvm.dbg.declare(metadata i8** %e, metadata !24, metadata !DIExpression()), !dbg !27 %"$gasrem_86" = load i64, i64* @_gasrem, align 8 %"$gascmp_87" = icmp ugt i64 1, %"$gasrem_86" br i1 %"$gascmp_87", label %"$out_of_gas_88", label %"$have_gas_89" @@ -205,7 +222,7 @@ entry: %"$msgobj_v_105" = getelementptr i8, i8* %"$msgobj_91", i32 65 %"$msgobj_v_106" = bitcast i8* %"$msgobj_v_105" to %Int32* store %Int32 %m, %Int32* %"$msgobj_v_106", align 4 - store i8* %"$msgobj_91", i8** %e, align 8, !dbg !13 + store i8* %"$msgobj_91", i8** %e, align 8, !dbg !28 %"$e_108" = load i8*, i8** %e, align 8 %"$_literal_cost_call_110" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Event_28", i8* %"$e_108") %"$gasrem_111" = load i64, i64* @_gasrem, align 8 @@ -221,7 +238,7 @@ entry: store i64 %"$consume_115", i64* @_gasrem, align 8 %"$execptr_load_116" = load i8*, i8** @_execptr, align 8 %"$e_117" = load i8*, i8** %e, align 8 - call void @_event(i8* %"$execptr_load_116", %_TyDescrTy_Typ* @"$TyDescr_Event_28", i8* %"$e_117"), !dbg !14 + call void @_event(i8* %"$execptr_load_116", %_TyDescrTy_Typ* @"$TyDescr_Event_28", i8* %"$e_117"), !dbg !29 ret void } @@ -231,126 +248,142 @@ declare i64 @_literal_cost(%_TyDescrTy_Typ*, i8*) declare void @_event(i8*, %_TyDescrTy_Typ*, i8*) -define internal void @"$t1_118"(%Uint128 %_amount, [20 x i8]* %"$_origin_119", [20 x i8]* %"$_sender_120", %TName_Bool* %c) !dbg !15 { +define internal void @"$t1_122"(%Uint128 %_amount, [20 x i8]* %"$_origin_123", [20 x i8]* %"$_sender_124", %TName_Bool* %c) !dbg !30 { entry: - %_origin = load [20 x i8], [20 x i8]* %"$_origin_119", align 1 - %_sender = load [20 x i8], [20 x i8]* %"$_sender_120", align 1 + %"$c_185" = alloca %TName_Bool*, align 8 + store %TName_Bool* %c, %TName_Bool** %"$c_185", align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$c_185", metadata !31, metadata !DIExpression()), !dbg !34 + %"$_sender_184" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_sender_124", [20 x i8]** %"$_sender_184", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_sender_184", metadata !35, metadata !DIExpression()), !dbg !36 + %"$_origin_183" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_origin_123", [20 x i8]** %"$_origin_183", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_origin_183", metadata !37, metadata !DIExpression()), !dbg !36 + %"$_amount_182" = alloca %Uint128, align 8 + store %Uint128 %_amount, %Uint128* %"$_amount_182", align 8 + call void @llvm.dbg.declare(metadata %Uint128* %"$_amount_182", metadata !38, metadata !DIExpression()), !dbg !36 + %_origin = load [20 x i8], [20 x i8]* %"$_origin_123", align 1 + %_sender = load [20 x i8], [20 x i8]* %"$_sender_124", align 1 %"$x_1" = alloca %Int32, align 8 - %"$execptr_load_122" = load i8*, i8** @_execptr, align 8 - %"$$x_1_call_123" = call i8* @_fetch_field(i8* %"$execptr_load_122", i8* getelementptr inbounds ([2 x i8], [2 x i8]* @"$x_121", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Int32_6", i32 0, i8* null, i32 1), !dbg !16 - %"$$x_1_124" = bitcast i8* %"$$x_1_call_123" to %Int32* - %"$$x_1_125" = load %Int32, %Int32* %"$$x_1_124", align 4 - store %Int32 %"$$x_1_125", %Int32* %"$x_1", align 4 - %"$_literal_cost_$x_1_126" = alloca %Int32, align 8 - %"$$x_1_127" = load %Int32, %Int32* %"$x_1", align 4 - store %Int32 %"$$x_1_127", %Int32* %"$_literal_cost_$x_1_126", align 4 - %"$$_literal_cost_$x_1_126_128" = bitcast %Int32* %"$_literal_cost_$x_1_126" to i8* - %"$_literal_cost_call_129" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Int32_6", i8* %"$$_literal_cost_$x_1_126_128") - %"$gasadd_130" = add i64 %"$_literal_cost_call_129", 0 - %"$gasrem_131" = load i64, i64* @_gasrem, align 8 - %"$gascmp_132" = icmp ugt i64 %"$gasadd_130", %"$gasrem_131" - br i1 %"$gascmp_132", label %"$out_of_gas_133", label %"$have_gas_134" - -"$out_of_gas_133": ; preds = %entry + call void @llvm.dbg.declare(metadata %Int32* %"$x_1", metadata !39, metadata !DIExpression()), !dbg !40 + %"$execptr_load_126" = load i8*, i8** @_execptr, align 8 + %"$$x_1_call_127" = call i8* @_fetch_field(i8* %"$execptr_load_126", i8* getelementptr inbounds ([2 x i8], [2 x i8]* @"$x_125", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Int32_6", i32 0, i8* null, i32 1), !dbg !40 + %"$$x_1_128" = bitcast i8* %"$$x_1_call_127" to %Int32* + %"$$x_1_129" = load %Int32, %Int32* %"$$x_1_128", align 4 + store %Int32 %"$$x_1_129", %Int32* %"$x_1", align 4 + %"$_literal_cost_$x_1_130" = alloca %Int32, align 8 + %"$$x_1_131" = load %Int32, %Int32* %"$x_1", align 4 + store %Int32 %"$$x_1_131", %Int32* %"$_literal_cost_$x_1_130", align 4 + %"$$_literal_cost_$x_1_130_132" = bitcast %Int32* %"$_literal_cost_$x_1_130" to i8* + %"$_literal_cost_call_133" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Int32_6", i8* %"$$_literal_cost_$x_1_130_132") + %"$gasadd_134" = add i64 %"$_literal_cost_call_133", 0 + %"$gasrem_135" = load i64, i64* @_gasrem, align 8 + %"$gascmp_136" = icmp ugt i64 %"$gasadd_134", %"$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_134" + br label %"$have_gas_138" -"$have_gas_134": ; preds = %"$out_of_gas_133", %entry - %"$consume_135" = sub i64 %"$gasrem_131", %"$gasadd_130" - store i64 %"$consume_135", i64* @_gasrem, 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" +"$have_gas_138": ; preds = %"$out_of_gas_137", %entry + %"$consume_139" = sub i64 %"$gasrem_135", %"$gasadd_134" + store i64 %"$consume_139", i64* @_gasrem, 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_138": ; preds = %"$have_gas_134" +"$out_of_gas_142": ; preds = %"$have_gas_138" call void @_out_of_gas() - br label %"$have_gas_139" + br label %"$have_gas_143" -"$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 +"$have_gas_143": ; preds = %"$out_of_gas_142", %"$have_gas_138" + %"$consume_144" = sub i64 %"$gasrem_140", 1 + store i64 %"$consume_144", i64* @_gasrem, align 8 %y = alloca %Int32, 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" + call void @llvm.dbg.declare(metadata %Int32* %y, metadata !41, metadata !DIExpression()), !dbg !42 + %"$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_143": ; preds = %"$have_gas_139" +"$out_of_gas_147": ; preds = %"$have_gas_143" call void @_out_of_gas() - br label %"$have_gas_144" + br label %"$have_gas_148" -"$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 +"$have_gas_148": ; preds = %"$out_of_gas_147", %"$have_gas_143" + %"$consume_149" = sub i64 %"$gasrem_145", 1 + store i64 %"$consume_149", i64* @_gasrem, align 8 %"$x_2" = alloca %Int32, 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" + call void @llvm.dbg.declare(metadata %Int32* %"$x_2", metadata !43, metadata !DIExpression()), !dbg !44 + %"$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_148": ; preds = %"$have_gas_144" +"$out_of_gas_152": ; preds = %"$have_gas_148" call void @_out_of_gas() - br label %"$have_gas_149" + br label %"$have_gas_153" -"$have_gas_149": ; preds = %"$out_of_gas_148", %"$have_gas_144" - %"$consume_150" = sub i64 %"$gasrem_146", 1 - store i64 %"$consume_150", i64* @_gasrem, align 8 - store %Int32 zeroinitializer, %Int32* %"$x_2", align 4, !dbg !17 - %"$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" +"$have_gas_153": ; preds = %"$out_of_gas_152", %"$have_gas_148" + %"$consume_154" = sub i64 %"$gasrem_150", 1 + store i64 %"$consume_154", i64* @_gasrem, align 8 + store %Int32 zeroinitializer, %Int32* %"$x_2", align 4, !dbg !45 + %"$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_153": ; preds = %"$have_gas_149" +"$out_of_gas_157": ; preds = %"$have_gas_153" call void @_out_of_gas() - br label %"$have_gas_154" - -"$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 - %"$$x_2_156" = load %Int32, %Int32* %"$x_2", align 4 - store %Int32 %"$$x_2_156", %Int32* %y, align 4, !dbg !18 - %"$gasrem_157" = load i64, i64* @_gasrem, align 8 - %"$gascmp_158" = icmp ugt i64 1, %"$gasrem_157" - br i1 %"$gascmp_158", label %"$out_of_gas_159", label %"$have_gas_160" - -"$out_of_gas_159": ; preds = %"$have_gas_154" + br label %"$have_gas_158" + +"$have_gas_158": ; preds = %"$out_of_gas_157", %"$have_gas_153" + %"$consume_159" = sub i64 %"$gasrem_155", 1 + store i64 %"$consume_159", i64* @_gasrem, align 8 + %"$$x_2_160" = load %Int32, %Int32* %"$x_2", align 4 + store %Int32 %"$$x_2_160", %Int32* %y, align 4, !dbg !46 + %"$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_158" call void @_out_of_gas() - br label %"$have_gas_160" + br label %"$have_gas_164" -"$have_gas_160": ; preds = %"$out_of_gas_159", %"$have_gas_154" - %"$consume_161" = sub i64 %"$gasrem_157", 1 - store i64 %"$consume_161", i64* @_gasrem, align 8 +"$have_gas_164": ; preds = %"$out_of_gas_163", %"$have_gas_158" + %"$consume_165" = sub i64 %"$gasrem_161", 1 + store i64 %"$consume_165", i64* @_gasrem, align 8 %z = alloca %Int32, align 8 - %"$gasrem_162" = load i64, i64* @_gasrem, align 8 - %"$gascmp_163" = icmp ugt i64 4, %"$gasrem_162" - br i1 %"$gascmp_163", label %"$out_of_gas_164", label %"$have_gas_165" + call void @llvm.dbg.declare(metadata %Int32* %z, metadata !47, metadata !DIExpression()), !dbg !48 + %"$gasrem_166" = load i64, i64* @_gasrem, align 8 + %"$gascmp_167" = icmp ugt i64 4, %"$gasrem_166" + br i1 %"$gascmp_167", label %"$out_of_gas_168", label %"$have_gas_169" -"$out_of_gas_164": ; preds = %"$have_gas_160" +"$out_of_gas_168": ; preds = %"$have_gas_164" call void @_out_of_gas() - br label %"$have_gas_165" - -"$have_gas_165": ; preds = %"$out_of_gas_164", %"$have_gas_160" - %"$consume_166" = sub i64 %"$gasrem_162", 4 - store i64 %"$consume_166", i64* @_gasrem, align 8 - %"$$x_1_167" = load %Int32, %Int32* %"$x_1", align 4 - %"$y_168" = load %Int32, %Int32* %y, align 4 - %"$add_call_169" = call %Int32 @_add_Int32(%Int32 %"$$x_1_167", %Int32 %"$y_168"), !dbg !19 - store %Int32 %"$add_call_169", %Int32* %z, align 4, !dbg !19 - %"$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 = %"$have_gas_165" + br label %"$have_gas_169" + +"$have_gas_169": ; preds = %"$out_of_gas_168", %"$have_gas_164" + %"$consume_170" = sub i64 %"$gasrem_166", 4 + store i64 %"$consume_170", i64* @_gasrem, align 8 + %"$$x_1_171" = load %Int32, %Int32* %"$x_1", align 4 + %"$y_172" = load %Int32, %Int32* %y, align 4 + %"$add_call_173" = call %Int32 @_add_Int32(%Int32 %"$$x_1_171", %Int32 %"$y_172"), !dbg !49 + store %Int32 %"$add_call_173", %Int32* %z, align 4, !dbg !49 + %"$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 = %"$have_gas_169" call void @_out_of_gas() - br label %"$have_gas_173" - -"$have_gas_173": ; preds = %"$out_of_gas_172", %"$have_gas_165" - %"$consume_174" = sub i64 %"$gasrem_170", 1 - store i64 %"$consume_174", i64* @_gasrem, align 8 - %"$create_event__origin_175" = alloca [20 x i8], align 1 - store [20 x i8] %_origin, [20 x i8]* %"$create_event__origin_175", align 1 - %"$create_event__sender_176" = alloca [20 x i8], align 1 - store [20 x i8] %_sender, [20 x i8]* %"$create_event__sender_176", align 1 - %"$z_177" = load %Int32, %Int32* %z, align 4 - call void @"$create_event_78"(%Uint128 %_amount, [20 x i8]* %"$create_event__origin_175", [20 x i8]* %"$create_event__sender_176", %Int32 %"$z_177"), !dbg !20 + br label %"$have_gas_177" + +"$have_gas_177": ; preds = %"$out_of_gas_176", %"$have_gas_169" + %"$consume_178" = sub i64 %"$gasrem_174", 1 + store i64 %"$consume_178", i64* @_gasrem, align 8 + %"$create_event__origin_179" = alloca [20 x i8], align 1 + store [20 x i8] %_origin, [20 x i8]* %"$create_event__origin_179", align 1 + %"$create_event__sender_180" = alloca [20 x i8], align 1 + store [20 x i8] %_sender, [20 x i8]* %"$create_event__sender_180", align 1 + %"$z_181" = load %Int32, %Int32* %z, align 4 + call void @"$create_event_78"(%Uint128 %_amount, [20 x i8]* %"$create_event__origin_179", [20 x i8]* %"$create_event__sender_180", %Int32 %"$z_181"), !dbg !50 ret void } @@ -358,45 +391,77 @@ declare i8* @_fetch_field(i8*, i8*, %_TyDescrTy_Typ*, i32, i8*, i32) declare %Int32 @_add_Int32(%Int32, %Int32) -define void @t1(i8* %0) !dbg !21 { +define void @t1(i8* %0) !dbg !51 { entry: - %"$_amount_179" = getelementptr i8, i8* %0, i32 0 - %"$_amount_180" = bitcast i8* %"$_amount_179" to %Uint128* - %_amount = load %Uint128, %Uint128* %"$_amount_180", align 8 - %"$_origin_181" = getelementptr i8, i8* %0, i32 16 - %"$_origin_182" = bitcast i8* %"$_origin_181" to [20 x i8]* - %"$_sender_183" = getelementptr i8, i8* %0, i32 36 - %"$_sender_184" = bitcast i8* %"$_sender_183" to [20 x i8]* - %"$c_185" = getelementptr i8, i8* %0, i32 56 - %"$c_186" = bitcast i8* %"$c_185" to %TName_Bool** - %c = load %TName_Bool*, %TName_Bool** %"$c_186", align 8 - call void @"$t1_118"(%Uint128 %_amount, [20 x i8]* %"$_origin_182", [20 x i8]* %"$_sender_184", %TName_Bool* %c), !dbg !22 + %"$_amount_187" = getelementptr i8, i8* %0, i32 0 + %"$_amount_188" = bitcast i8* %"$_amount_187" to %Uint128* + %_amount = load %Uint128, %Uint128* %"$_amount_188", align 8 + %"$_origin_189" = getelementptr i8, i8* %0, i32 16 + %"$_origin_190" = bitcast i8* %"$_origin_189" to [20 x i8]* + %"$_sender_191" = getelementptr i8, i8* %0, i32 36 + %"$_sender_192" = bitcast i8* %"$_sender_191" to [20 x i8]* + %"$c_193" = getelementptr i8, i8* %0, i32 56 + %"$c_194" = bitcast i8* %"$c_193" to %TName_Bool** + %c = load %TName_Bool*, %TName_Bool** %"$c_194", align 8 + call void @"$t1_122"(%Uint128 %_amount, [20 x i8]* %"$_origin_190", [20 x i8]* %"$_sender_192", %TName_Bool* %c), !dbg !52 ret void } +attributes #0 = { nocallback nofree nosync nounwind readnone speculatable willreturn } + !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) +!1 = distinct !DICompileUnit(language: DW_LANG_C89, file: !2, producer: "Scilla Compiler", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false) !2 = !DIFile(filename: "name_clash2.scilla", directory: "codegen/contr") -!3 = !{} -!4 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !5, file: !5, type: !6, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!5 = !DIFile(filename: ".", directory: ".") -!6 = !DISubroutineType(types: !7) -!7 = !{!8} -!8 = !DIBasicType(tag: DW_TAG_unspecified_type, name: "void") -!9 = !DILocation(line: 0, scope: !4) -!10 = distinct !DISubprogram(name: "_deploy_ops", linkageName: "_deploy_ops", scope: !5, file: !5, type: !6, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!11 = !DILocation(line: 5, column: 19, scope: !10) -!12 = distinct !DISubprogram(name: "create_event", linkageName: "create_event", scope: !2, file: !2, line: 7, type: !6, scopeLine: 7, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!13 = !DILocation(line: 8, column: 7, scope: !12) -!14 = !DILocation(line: 9, column: 3, scope: !12) -!15 = distinct !DISubprogram(name: "t1", linkageName: "t1", scope: !2, file: !2, line: 12, type: !6, scopeLine: 12, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!16 = !DILocation(line: 13, column: 3, scope: !15) -!17 = !DILocation(line: 15, column: 13, scope: !15) -!18 = !DILocation(line: 16, column: 5, scope: !15) -!19 = !DILocation(line: 17, column: 7, scope: !15) -!20 = !DILocation(line: 18, column: 3, scope: !15) -!21 = distinct !DISubprogram(name: "t1", linkageName: "t1", scope: !2, file: !2, line: 12, type: !6, scopeLine: 12, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!22 = !DILocation(line: 12, column: 12, scope: !21) +!3 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !4, file: !4, type: !5, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!4 = !DIFile(filename: ".", directory: ".") +!5 = !DISubroutineType(types: !6) +!6 = !{!7} +!7 = !DIBasicType(tag: DW_TAG_unspecified_type, name: "void") +!8 = !{} +!9 = !DILocation(line: 0, scope: !3) +!10 = distinct !DISubprogram(name: "_deploy_ops", linkageName: "_deploy_ops", scope: !4, file: !4, type: !5, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!11 = !DILocalVariable(name: "$x_3", scope: !10, file: !2, line: 5, type: !12) +!12 = !DIBasicType(name: "Int32", size: 4) +!13 = !DILocation(line: 5, column: 7, scope: !10) +!14 = !DILocation(line: 5, column: 19, scope: !10) +!15 = distinct !DISubprogram(name: "create_event", linkageName: "create_event", scope: !2, file: !2, line: 7, type: !5, scopeLine: 7, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!16 = !DILocalVariable(name: "m", scope: !15, file: !2, line: 7, type: !12) +!17 = !DILocation(line: 7, column: 25, scope: !15) +!18 = !DILocalVariable(name: "_sender", scope: !15, file: !2, line: 7, type: !19) +!19 = !DIBasicType(name: "ByStr20 with end", size: 20) +!20 = !DILocation(line: 7, column: 11, scope: !15) +!21 = !DILocalVariable(name: "_origin", scope: !15, file: !2, line: 7, type: !19) +!22 = !DILocalVariable(name: "_amount", scope: !15, file: !2, line: 7, type: !23) +!23 = !DIBasicType(name: "Uint128", size: 16) +!24 = !DILocalVariable(name: "e", scope: !15, file: !2, line: 8, type: !25) +!25 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "Event", baseType: !26, size: 8, align: 8, dwarfAddressSpace: 0) +!26 = !DIBasicType(name: "Event", size: 8) +!27 = !DILocation(line: 8, column: 3, scope: !15) +!28 = !DILocation(line: 8, column: 7, scope: !15) +!29 = !DILocation(line: 9, column: 3, scope: !15) +!30 = distinct !DISubprogram(name: "t1", linkageName: "t1", scope: !2, file: !2, line: 12, type: !5, scopeLine: 12, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!31 = !DILocalVariable(name: "c", scope: !30, file: !2, line: 12, type: !32) +!32 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "Bool", baseType: !33, size: 8, align: 8, dwarfAddressSpace: 0) +!33 = !DIBasicType(name: "Bool", size: 8) +!34 = !DILocation(line: 12, column: 15, scope: !30) +!35 = !DILocalVariable(name: "_sender", scope: !30, file: !2, line: 12, type: !19) +!36 = !DILocation(line: 12, column: 12, scope: !30) +!37 = !DILocalVariable(name: "_origin", scope: !30, file: !2, line: 12, type: !19) +!38 = !DILocalVariable(name: "_amount", scope: !30, file: !2, line: 12, type: !23) +!39 = !DILocalVariable(name: "$x_1", scope: !30, file: !2, line: 13, type: !12) +!40 = !DILocation(line: 13, column: 3, scope: !30) +!41 = !DILocalVariable(name: "y", scope: !30, file: !2, line: 14, type: !12) +!42 = !DILocation(line: 14, column: 3, scope: !30) +!43 = !DILocalVariable(name: "$x_2", scope: !30, file: !2, line: 15, type: !12) +!44 = !DILocation(line: 15, column: 9, scope: !30) +!45 = !DILocation(line: 15, column: 13, scope: !30) +!46 = !DILocation(line: 16, column: 5, scope: !30) +!47 = !DILocalVariable(name: "z", scope: !30, file: !2, line: 17, type: !12) +!48 = !DILocation(line: 17, column: 3, scope: !30) +!49 = !DILocation(line: 17, column: 7, scope: !30) +!50 = !DILocation(line: 18, column: 3, scope: !30) +!51 = distinct !DISubprogram(name: "t1", linkageName: "t1", scope: !2, file: !2, line: 12, type: !5, scopeLine: 12, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!52 = !DILocation(line: 12, column: 12, scope: !51) diff --git a/testsuite/contr/name_clash2.ll b/testsuite/contr/name_clash2.ll index 97134c0f..6cdc3394 100644 --- a/testsuite/contr/name_clash2.ll +++ b/testsuite/contr/name_clash2.ll @@ -4,7 +4,7 @@ ; 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-pc-linux-gnu" +target triple = "x86_64-unknown-linux-gnu" %"$TyDescrTy_PrimTyp_4" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/testsuite/contr/pm-empty.dbg.ll b/testsuite/contr/pm-empty.dbg.ll index 04bd8a3a..49956bc9 100644 --- a/testsuite/contr/pm-empty.dbg.ll +++ b/testsuite/contr/pm-empty.dbg.ll @@ -4,7 +4,7 @@ ; 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-pc-linux-gnu" +target triple = "x86_64-unknown-linux-gnu" %"$TyDescrTy_PrimTyp_1" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } @@ -16,9 +16,9 @@ target triple = "x86_64-pc-linux-gnu" %"$TyDescr_AddrFieldTyp_39" = type { %TyDescrString, %_TyDescrTy_Typ* } %Int32 = type { i32 } %Uint32 = type { i32 } -%"$ParamDescr_148" = type { %ParamDescrString, %_TyDescrTy_Typ* } +%"$ParamDescr_156" = type { %ParamDescrString, %_TyDescrTy_Typ* } %ParamDescrString = type { i8*, i32 } -%"$TransDescr_149" = type { %ParamDescrString, i32, %"$ParamDescr_148"* } +%"$TransDescr_157" = type { %ParamDescrString, i32, %"$ParamDescr_156"* } %Uint128 = type { i128 } %String = type { i8*, i32 } %TName_Bool = type { i8, %CName_True*, %CName_False* } @@ -83,21 +83,21 @@ target triple = "x86_64-pc-linux-gnu" @"$stringlit_87" = unnamed_addr constant [7 x i8] c"message" @_tydescr_table = constant [18 x %_TyDescrTy_Typ*] [%_TyDescrTy_Typ* @"$TyDescr_Event_25", %_TyDescrTy_Typ* @"$TyDescr_Int64_7", %_TyDescrTy_Typ* @"$TyDescr_Addr_41", %_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_37", %_TyDescrTy_Typ* @"$TyDescr_Bystr20_33", %_TyDescrTy_Typ* @"$TyDescr_Uint256_17", %_TyDescrTy_Typ* @"$TyDescr_Uint32_5", %_TyDescrTy_Typ* @"$TyDescr_Uint64_9", %_TyDescrTy_Typ* @"$TyDescr_Bnum_21", %_TyDescrTy_Typ* @"$TyDescr_Uint128_13", %_TyDescrTy_Typ* @"$TyDescr_Exception_27", %_TyDescrTy_Typ* @"$TyDescr_String_19", %_TyDescrTy_Typ* @"$TyDescr_Int256_15", %_TyDescrTy_Typ* @"$TyDescr_Int128_11", %_TyDescrTy_Typ* @"$TyDescr_Bystr_31", %_TyDescrTy_Typ* @"$TyDescr_ReplicateContr_29", %_TyDescrTy_Typ* @"$TyDescr_Message_23", %_TyDescrTy_Typ* @"$TyDescr_Int32_3"] @_tydescr_table_length = constant i32 18 -@"$pname__scilla_version_150" = unnamed_addr constant [15 x i8] c"_scilla_version" -@"$pname__this_address_151" = unnamed_addr constant [13 x i8] c"_this_address" -@"$pname__creation_block_152" = unnamed_addr constant [15 x i8] c"_creation_block" -@_contract_parameters = constant [3 x %"$ParamDescr_148"] [%"$ParamDescr_148" { %ParamDescrString { i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$pname__scilla_version_150", i32 0, i32 0), i32 15 }, %_TyDescrTy_Typ* @"$TyDescr_Uint32_5" }, %"$ParamDescr_148" { %ParamDescrString { i8* getelementptr inbounds ([13 x i8], [13 x i8]* @"$pname__this_address_151", i32 0, i32 0), i32 13 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr20_33" }, %"$ParamDescr_148" { %ParamDescrString { i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$pname__creation_block_152", i32 0, i32 0), i32 15 }, %_TyDescrTy_Typ* @"$TyDescr_Bnum_21" }] +@"$pname__scilla_version_158" = unnamed_addr constant [15 x i8] c"_scilla_version" +@"$pname__this_address_159" = unnamed_addr constant [13 x i8] c"_this_address" +@"$pname__creation_block_160" = unnamed_addr constant [15 x i8] c"_creation_block" +@_contract_parameters = constant [3 x %"$ParamDescr_156"] [%"$ParamDescr_156" { %ParamDescrString { i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$pname__scilla_version_158", i32 0, i32 0), i32 15 }, %_TyDescrTy_Typ* @"$TyDescr_Uint32_5" }, %"$ParamDescr_156" { %ParamDescrString { i8* getelementptr inbounds ([13 x i8], [13 x i8]* @"$pname__this_address_159", i32 0, i32 0), i32 13 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr20_33" }, %"$ParamDescr_156" { %ParamDescrString { i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$pname__creation_block_160", i32 0, i32 0), i32 15 }, %_TyDescrTy_Typ* @"$TyDescr_Bnum_21" }] @_contract_parameters_length = constant i32 3 -@"$tpname__amount_153" = unnamed_addr constant [7 x i8] c"_amount" -@"$tpname__origin_154" = unnamed_addr constant [7 x i8] c"_origin" -@"$tpname__sender_155" = unnamed_addr constant [7 x i8] c"_sender" -@"$tpname_c_156" = unnamed_addr constant [1 x i8] c"c" -@"$tparams_t1_157" = unnamed_addr constant [4 x %"$ParamDescr_148"] [%"$ParamDescr_148" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_153", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_13" }, %"$ParamDescr_148" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_154", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_41" }, %"$ParamDescr_148" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_155", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_41" }, %"$ParamDescr_148" { %ParamDescrString { i8* getelementptr inbounds ([1 x i8], [1 x i8]* @"$tpname_c_156", i32 0, i32 0), i32 1 }, %_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_37" }] -@"$tname_t1_158" = unnamed_addr constant [2 x i8] c"t1" -@_transition_parameters = constant [1 x %"$TransDescr_149"] [%"$TransDescr_149" { %ParamDescrString { i8* getelementptr inbounds ([2 x i8], [2 x i8]* @"$tname_t1_158", i32 0, i32 0), i32 2 }, i32 4, %"$ParamDescr_148"* getelementptr inbounds ([4 x %"$ParamDescr_148"], [4 x %"$ParamDescr_148"]* @"$tparams_t1_157", i32 0, i32 0) }] +@"$tpname__amount_161" = unnamed_addr constant [7 x i8] c"_amount" +@"$tpname__origin_162" = unnamed_addr constant [7 x i8] c"_origin" +@"$tpname__sender_163" = unnamed_addr constant [7 x i8] c"_sender" +@"$tpname_c_164" = unnamed_addr constant [1 x i8] c"c" +@"$tparams_t1_165" = unnamed_addr constant [4 x %"$ParamDescr_156"] [%"$ParamDescr_156" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_161", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_13" }, %"$ParamDescr_156" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_162", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_41" }, %"$ParamDescr_156" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_163", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_41" }, %"$ParamDescr_156" { %ParamDescrString { i8* getelementptr inbounds ([1 x i8], [1 x i8]* @"$tpname_c_164", i32 0, i32 0), i32 1 }, %_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_37" }] +@"$tname_t1_166" = unnamed_addr constant [2 x i8] c"t1" +@_transition_parameters = constant [1 x %"$TransDescr_157"] [%"$TransDescr_157" { %ParamDescrString { i8* getelementptr inbounds ([2 x i8], [2 x i8]* @"$tname_t1_166", i32 0, i32 0), i32 2 }, i32 4, %"$ParamDescr_156"* getelementptr inbounds ([4 x %"$ParamDescr_156"], [4 x %"$ParamDescr_156"]* @"$tparams_t1_165", i32 0, i32 0) }] @_transition_parameters_length = constant i32 1 -define void @_init_libs() !dbg !4 { +define void @_init_libs() !dbg !3 { entry: %"$gasrem_55" = load i64, i64* @_gasrem, align 8 %"$gascmp_56" = icmp ugt i64 5, %"$gasrem_55" @@ -134,6 +134,18 @@ entry: define internal void @"$create_event_65"(%Uint128 %_amount, [20 x i8]* %"$_origin_66", [20 x i8]* %"$_sender_67", %Int32 %m) !dbg !11 { entry: + %"$m_108" = alloca %Int32, align 8 + store %Int32 %m, %Int32* %"$m_108", align 4 + call void @llvm.dbg.declare(metadata %Int32* %"$m_108", metadata !12, metadata !DIExpression()), !dbg !14 + %"$_sender_107" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_sender_67", [20 x i8]** %"$_sender_107", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_sender_107", metadata !15, metadata !DIExpression()), !dbg !17 + %"$_origin_106" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_origin_66", [20 x i8]** %"$_origin_106", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_origin_106", metadata !18, metadata !DIExpression()), !dbg !17 + %"$_amount_105" = alloca %Uint128, align 8 + store %Uint128 %_amount, %Uint128* %"$_amount_105", align 8 + call void @llvm.dbg.declare(metadata %Uint128* %"$_amount_105", metadata !19, metadata !DIExpression()), !dbg !17 %_origin = load [20 x i8], [20 x i8]* %"$_origin_66", align 1 %_sender = load [20 x i8], [20 x i8]* %"$_sender_67", align 1 %"$gasrem_68" = load i64, i64* @_gasrem, align 8 @@ -148,6 +160,7 @@ entry: %"$consume_72" = sub i64 %"$gasrem_68", 1 store i64 %"$consume_72", i64* @_gasrem, align 8 %e = alloca i8*, align 8 + call void @llvm.dbg.declare(metadata i8** %e, metadata !21, metadata !DIExpression()), !dbg !24 %"$gasrem_73" = load i64, i64* @_gasrem, align 8 %"$gascmp_74" = icmp ugt i64 1, %"$gasrem_73" br i1 %"$gascmp_74", label %"$out_of_gas_75", label %"$have_gas_76" @@ -182,7 +195,7 @@ entry: %"$msgobj_v_92" = getelementptr i8, i8* %"$msgobj_78", i32 65 %"$msgobj_v_93" = bitcast i8* %"$msgobj_v_92" to %Int32* store %Int32 %m, %Int32* %"$msgobj_v_93", align 4 - store i8* %"$msgobj_78", i8** %e, align 8, !dbg !12 + store i8* %"$msgobj_78", i8** %e, align 8, !dbg !25 %"$e_95" = load i8*, i8** %e, align 8 %"$_literal_cost_call_97" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Event_25", i8* %"$e_95") %"$gasrem_98" = load i64, i64* @_gasrem, align 8 @@ -198,132 +211,173 @@ entry: store i64 %"$consume_102", i64* @_gasrem, align 8 %"$execptr_load_103" = load i8*, i8** @_execptr, align 8 %"$e_104" = load i8*, i8** %e, align 8 - call void @_event(i8* %"$execptr_load_103", %_TyDescrTy_Typ* @"$TyDescr_Event_25", i8* %"$e_104"), !dbg !13 + call void @_event(i8* %"$execptr_load_103", %_TyDescrTy_Typ* @"$TyDescr_Event_25", i8* %"$e_104"), !dbg !26 ret void } +; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn +declare void @llvm.dbg.declare(metadata, metadata, metadata) #0 + declare i8* @_salloc(i8*, i64) declare i64 @_literal_cost(%_TyDescrTy_Typ*, i8*) declare void @_event(i8*, %_TyDescrTy_Typ*, i8*) -define internal void @"$t1_105"(%Uint128 %_amount, [20 x i8]* %"$_origin_106", [20 x i8]* %"$_sender_107", %TName_Bool* %c) !dbg !14 { +define internal void @"$t1_109"(%Uint128 %_amount, [20 x i8]* %"$_origin_110", [20 x i8]* %"$_sender_111", %TName_Bool* %c) !dbg !27 { entry: - %_origin = load [20 x i8], [20 x i8]* %"$_origin_106", align 1 - %_sender = load [20 x i8], [20 x i8]* %"$_sender_107", align 1 - %"$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" - -"$out_of_gas_110": ; preds = %entry + %"$c_146" = alloca %TName_Bool*, align 8 + store %TName_Bool* %c, %TName_Bool** %"$c_146", align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$c_146", metadata !28, metadata !DIExpression()), !dbg !31 + %"$_sender_145" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_sender_111", [20 x i8]** %"$_sender_145", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_sender_145", metadata !32, metadata !DIExpression()), !dbg !33 + %"$_origin_144" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_origin_110", [20 x i8]** %"$_origin_144", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_origin_144", metadata !34, metadata !DIExpression()), !dbg !33 + %"$_amount_143" = alloca %Uint128, align 8 + store %Uint128 %_amount, %Uint128* %"$_amount_143", align 8 + call void @llvm.dbg.declare(metadata %Uint128* %"$_amount_143", metadata !35, metadata !DIExpression()), !dbg !33 + %_origin = load [20 x i8], [20 x i8]* %"$_origin_110", align 1 + %_sender = load [20 x i8], [20 x i8]* %"$_sender_111", align 1 + %"$gasrem_112" = load i64, i64* @_gasrem, align 8 + %"$gascmp_113" = icmp ugt i64 1, %"$gasrem_112" + br i1 %"$gascmp_113", label %"$out_of_gas_114", label %"$have_gas_115" + +"$out_of_gas_114": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_111" + br label %"$have_gas_115" -"$have_gas_111": ; preds = %"$out_of_gas_110", %entry - %"$consume_112" = sub i64 %"$gasrem_108", 1 - store i64 %"$consume_112", i64* @_gasrem, align 8 +"$have_gas_115": ; preds = %"$out_of_gas_114", %entry + %"$consume_116" = sub i64 %"$gasrem_112", 1 + store i64 %"$consume_116", i64* @_gasrem, align 8 %x = alloca %Int32, align 8 - %"$gasrem_113" = load i64, i64* @_gasrem, align 8 - %"$gascmp_114" = icmp ugt i64 1, %"$gasrem_113" - br i1 %"$gascmp_114", label %"$out_of_gas_115", label %"$have_gas_116" + call void @llvm.dbg.declare(metadata %Int32* %x, metadata !36, metadata !DIExpression()), !dbg !37 + %"$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_115": ; preds = %"$have_gas_111" +"$out_of_gas_119": ; preds = %"$have_gas_115" call void @_out_of_gas() - br label %"$have_gas_116" + br label %"$have_gas_120" -"$have_gas_116": ; preds = %"$out_of_gas_115", %"$have_gas_111" - %"$consume_117" = sub i64 %"$gasrem_113", 1 - store i64 %"$consume_117", i64* @_gasrem, align 8 - store %Int32 { i32 42 }, %Int32* %x, align 4, !dbg !15 - %"$gasrem_118" = load i64, i64* @_gasrem, align 8 - %"$gascmp_119" = icmp ugt i64 2, %"$gasrem_118" - br i1 %"$gascmp_119", label %"$out_of_gas_120", label %"$have_gas_121" +"$have_gas_120": ; preds = %"$out_of_gas_119", %"$have_gas_115" + %"$consume_121" = sub i64 %"$gasrem_117", 1 + store i64 %"$consume_121", i64* @_gasrem, align 8 + store %Int32 { i32 42 }, %Int32* %x, align 4, !dbg !38 + %"$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_120": ; preds = %"$have_gas_116" +"$out_of_gas_124": ; preds = %"$have_gas_120" call void @_out_of_gas() - br label %"$have_gas_121" - -"$have_gas_121": ; preds = %"$out_of_gas_120", %"$have_gas_116" - %"$consume_122" = sub i64 %"$gasrem_118", 2 - store i64 %"$consume_122", i64* @_gasrem, align 8 - %"$c_tag_124" = getelementptr inbounds %TName_Bool, %TName_Bool* %c, i32 0, i32 0 - %"$c_tag_125" = load i8, i8* %"$c_tag_124", align 1 - switch i8 %"$c_tag_125", label %"$empty_default_126" [ - i8 0, label %"$True_127" - i8 1, label %"$False_129" - ], !dbg !16 - -"$True_127": ; preds = %"$have_gas_121" - %"$c_128" = bitcast %TName_Bool* %c to %CName_True* - br label %"$matchsucc_123" - -"$False_129": ; preds = %"$have_gas_121" - %"$c_130" = bitcast %TName_Bool* %c to %CName_False* - %"$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 = %"$False_129" + 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 + %"$c_tag_128" = getelementptr inbounds %TName_Bool, %TName_Bool* %c, i32 0, i32 0 + %"$c_tag_129" = load i8, i8* %"$c_tag_128", align 1 + switch i8 %"$c_tag_129", label %"$empty_default_130" [ + i8 0, label %"$True_131" + i8 1, label %"$False_133" + ], !dbg !39 + +"$True_131": ; preds = %"$have_gas_125" + %"$c_132" = bitcast %TName_Bool* %c to %CName_True* + br label %"$matchsucc_127" + +"$False_133": ; preds = %"$have_gas_125" + %"$c_134" = bitcast %TName_Bool* %c to %CName_False* + %"$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 = %"$False_133" call void @_out_of_gas() - br label %"$have_gas_134" - -"$have_gas_134": ; preds = %"$out_of_gas_133", %"$False_129" - %"$consume_135" = sub i64 %"$gasrem_131", 1 - store i64 %"$consume_135", i64* @_gasrem, align 8 - %"$create_event__origin_136" = alloca [20 x i8], align 1 - store [20 x i8] %_origin, [20 x i8]* %"$create_event__origin_136", align 1 - %"$create_event__sender_137" = alloca [20 x i8], align 1 - store [20 x i8] %_sender, [20 x i8]* %"$create_event__sender_137", align 1 - %"$x_138" = load %Int32, %Int32* %x, align 4 - call void @"$create_event_65"(%Uint128 %_amount, [20 x i8]* %"$create_event__origin_136", [20 x i8]* %"$create_event__sender_137", %Int32 %"$x_138"), !dbg !17 - br label %"$matchsucc_123" - -"$empty_default_126": ; preds = %"$have_gas_121" - br label %"$matchsucc_123" - -"$matchsucc_123": ; preds = %"$have_gas_134", %"$True_127", %"$empty_default_126" + br label %"$have_gas_138" + +"$have_gas_138": ; preds = %"$out_of_gas_137", %"$False_133" + %"$consume_139" = sub i64 %"$gasrem_135", 1 + store i64 %"$consume_139", i64* @_gasrem, align 8 + %"$create_event__origin_140" = alloca [20 x i8], align 1 + store [20 x i8] %_origin, [20 x i8]* %"$create_event__origin_140", align 1 + %"$create_event__sender_141" = alloca [20 x i8], align 1 + store [20 x i8] %_sender, [20 x i8]* %"$create_event__sender_141", align 1 + %"$x_142" = load %Int32, %Int32* %x, align 4 + call void @"$create_event_65"(%Uint128 %_amount, [20 x i8]* %"$create_event__origin_140", [20 x i8]* %"$create_event__sender_141", %Int32 %"$x_142"), !dbg !40 + br label %"$matchsucc_127" + +"$empty_default_130": ; preds = %"$have_gas_125" + br label %"$matchsucc_127" + +"$matchsucc_127": ; preds = %"$have_gas_138", %"$True_131", %"$empty_default_130" ret void } -define void @t1(i8* %0) !dbg !20 { +define void @t1(i8* %0) !dbg !43 { entry: - %"$_amount_140" = getelementptr i8, i8* %0, i32 0 - %"$_amount_141" = bitcast i8* %"$_amount_140" to %Uint128* - %_amount = load %Uint128, %Uint128* %"$_amount_141", align 8 - %"$_origin_142" = getelementptr i8, i8* %0, i32 16 - %"$_origin_143" = bitcast i8* %"$_origin_142" to [20 x i8]* - %"$_sender_144" = getelementptr i8, i8* %0, i32 36 - %"$_sender_145" = bitcast i8* %"$_sender_144" to [20 x i8]* - %"$c_146" = getelementptr i8, i8* %0, i32 56 - %"$c_147" = bitcast i8* %"$c_146" to %TName_Bool** - %c = load %TName_Bool*, %TName_Bool** %"$c_147", align 8 - call void @"$t1_105"(%Uint128 %_amount, [20 x i8]* %"$_origin_143", [20 x i8]* %"$_sender_145", %TName_Bool* %c), !dbg !21 + %"$_amount_148" = getelementptr i8, i8* %0, i32 0 + %"$_amount_149" = bitcast i8* %"$_amount_148" to %Uint128* + %_amount = load %Uint128, %Uint128* %"$_amount_149", align 8 + %"$_origin_150" = getelementptr i8, i8* %0, i32 16 + %"$_origin_151" = bitcast i8* %"$_origin_150" to [20 x i8]* + %"$_sender_152" = getelementptr i8, i8* %0, i32 36 + %"$_sender_153" = bitcast i8* %"$_sender_152" to [20 x i8]* + %"$c_154" = getelementptr i8, i8* %0, i32 56 + %"$c_155" = bitcast i8* %"$c_154" to %TName_Bool** + %c = load %TName_Bool*, %TName_Bool** %"$c_155", align 8 + call void @"$t1_109"(%Uint128 %_amount, [20 x i8]* %"$_origin_151", [20 x i8]* %"$_sender_153", %TName_Bool* %c), !dbg !44 ret void } +attributes #0 = { nocallback nofree nosync nounwind readnone speculatable willreturn } + !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) +!1 = distinct !DICompileUnit(language: DW_LANG_C89, file: !2, producer: "Scilla Compiler", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false) !2 = !DIFile(filename: "pm-empty.scilla", directory: "codegen/contr") -!3 = !{} -!4 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !5, file: !5, type: !6, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!5 = !DIFile(filename: ".", directory: ".") -!6 = !DISubroutineType(types: !7) -!7 = !{!8} -!8 = !DIBasicType(tag: DW_TAG_unspecified_type, name: "void") -!9 = !DILocation(line: 0, scope: !4) -!10 = distinct !DISubprogram(name: "_deploy_ops", linkageName: "_deploy_ops", scope: !5, file: !5, type: !6, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!11 = distinct !DISubprogram(name: "create_event", linkageName: "create_event", scope: !2, file: !2, line: 5, type: !6, scopeLine: 5, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!12 = !DILocation(line: 6, column: 7, scope: !11) -!13 = !DILocation(line: 7, column: 3, scope: !11) -!14 = distinct !DISubprogram(name: "t1", linkageName: "t1", scope: !2, file: !2, line: 10, type: !6, scopeLine: 10, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!15 = !DILocation(line: 11, column: 7, scope: !14) -!16 = !DILocation(line: 12, column: 3, scope: !14) -!17 = !DILocation(line: 14, column: 14, scope: !18) -!18 = distinct !DILexicalBlock(scope: !19, file: !2, line: 14, column: 5) -!19 = distinct !DILexicalBlock(scope: !14, file: !2, line: 12, column: 3) -!20 = distinct !DISubprogram(name: "t1", linkageName: "t1", scope: !2, file: !2, line: 10, type: !6, scopeLine: 10, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!21 = !DILocation(line: 10, column: 12, scope: !20) +!3 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !4, file: !4, type: !5, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!4 = !DIFile(filename: ".", directory: ".") +!5 = !DISubroutineType(types: !6) +!6 = !{!7} +!7 = !DIBasicType(tag: DW_TAG_unspecified_type, name: "void") +!8 = !{} +!9 = !DILocation(line: 0, scope: !3) +!10 = distinct !DISubprogram(name: "_deploy_ops", linkageName: "_deploy_ops", scope: !4, file: !4, type: !5, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!11 = distinct !DISubprogram(name: "create_event", linkageName: "create_event", scope: !2, file: !2, line: 5, type: !5, scopeLine: 5, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!12 = !DILocalVariable(name: "m", scope: !11, file: !2, line: 5, type: !13) +!13 = !DIBasicType(name: "Int32", size: 4) +!14 = !DILocation(line: 5, column: 25, scope: !11) +!15 = !DILocalVariable(name: "_sender", scope: !11, file: !2, line: 5, type: !16) +!16 = !DIBasicType(name: "ByStr20 with end", size: 20) +!17 = !DILocation(line: 5, column: 11, scope: !11) +!18 = !DILocalVariable(name: "_origin", scope: !11, file: !2, line: 5, type: !16) +!19 = !DILocalVariable(name: "_amount", scope: !11, file: !2, line: 5, type: !20) +!20 = !DIBasicType(name: "Uint128", size: 16) +!21 = !DILocalVariable(name: "e", scope: !11, file: !2, line: 6, type: !22) +!22 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "Event", baseType: !23, size: 8, align: 8, dwarfAddressSpace: 0) +!23 = !DIBasicType(name: "Event", size: 8) +!24 = !DILocation(line: 6, column: 3, scope: !11) +!25 = !DILocation(line: 6, column: 7, scope: !11) +!26 = !DILocation(line: 7, column: 3, scope: !11) +!27 = distinct !DISubprogram(name: "t1", linkageName: "t1", scope: !2, file: !2, line: 10, type: !5, scopeLine: 10, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!28 = !DILocalVariable(name: "c", scope: !27, file: !2, line: 10, type: !29) +!29 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "Bool", baseType: !30, size: 8, align: 8, dwarfAddressSpace: 0) +!30 = !DIBasicType(name: "Bool", size: 8) +!31 = !DILocation(line: 10, column: 15, scope: !27) +!32 = !DILocalVariable(name: "_sender", scope: !27, file: !2, line: 10, type: !16) +!33 = !DILocation(line: 10, column: 12, scope: !27) +!34 = !DILocalVariable(name: "_origin", scope: !27, file: !2, line: 10, type: !16) +!35 = !DILocalVariable(name: "_amount", scope: !27, file: !2, line: 10, type: !20) +!36 = !DILocalVariable(name: "x", scope: !27, file: !2, line: 11, type: !13) +!37 = !DILocation(line: 11, column: 3, scope: !27) +!38 = !DILocation(line: 11, column: 7, scope: !27) +!39 = !DILocation(line: 12, column: 3, scope: !27) +!40 = !DILocation(line: 14, column: 14, scope: !41) +!41 = distinct !DILexicalBlock(scope: !42, file: !2, line: 14, column: 5) +!42 = distinct !DILexicalBlock(scope: !27, file: !2, line: 12, column: 3) +!43 = distinct !DISubprogram(name: "t1", linkageName: "t1", scope: !2, file: !2, line: 10, type: !5, scopeLine: 10, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!44 = !DILocation(line: 10, column: 12, scope: !43) diff --git a/testsuite/contr/pm-empty.ll b/testsuite/contr/pm-empty.ll index 59d83886..208a29bb 100644 --- a/testsuite/contr/pm-empty.ll +++ b/testsuite/contr/pm-empty.ll @@ -4,7 +4,7 @@ ; 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-pc-linux-gnu" +target triple = "x86_64-unknown-linux-gnu" %"$TyDescrTy_PrimTyp_1" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/testsuite/contr/remote_state_reads.dbg.ll b/testsuite/contr/remote_state_reads.dbg.ll index 0cec0f11..3a7980dc 100644 --- a/testsuite/contr/remote_state_reads.dbg.ll +++ b/testsuite/contr/remote_state_reads.dbg.ll @@ -4,7 +4,7 @@ ; 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-pc-linux-gnu" +target triple = "x86_64-unknown-linux-gnu" %"$TyDescrTy_PrimTyp_31" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } @@ -17,9 +17,9 @@ target triple = "x86_64-pc-linux-gnu" %"$TyDescr_AddrTyp_89" = type { i32, %"$TyDescr_AddrFieldTyp_88"* } %Int32 = type { i32 } %Uint32 = type { i32 } -%"$ParamDescr_1501" = type { %ParamDescrString, %_TyDescrTy_Typ* } +%"$ParamDescr_1525" = type { %ParamDescrString, %_TyDescrTy_Typ* } %ParamDescrString = type { i8*, i32 } -%"$TransDescr_1502" = type { %ParamDescrString, i32, %"$ParamDescr_1501"* } +%"$TransDescr_1526" = type { %ParamDescrString, i32, %"$ParamDescr_1525"* } %TName_0x3620c286757a29985cee194eb90064270fb65414.AddressADT = type { i8, %CName_0x3620c286757a29985cee194eb90064270fb65414.Address1*, %CName_0x3620c286757a29985cee194eb90064270fb65414.Address2* } %CName_0x3620c286757a29985cee194eb90064270fb65414.Address1 = type <{ i8, [20 x i8] }> %CName_0x3620c286757a29985cee194eb90064270fb65414.Address2 = type <{ i8, [20 x i8] }> @@ -353,72 +353,72 @@ target triple = "x86_64-pc-linux-gnu" @"$remote_reads_test_res_3_12_1002" = unnamed_addr constant [27 x i8] c"remote_reads_test_res_3_12\00" @"$signatures_1009" = unnamed_addr constant [11 x i8] c"signatures\00" @"$remote_reads_test_res_3_13_1033" = unnamed_addr constant [27 x i8] c"remote_reads_test_res_3_13\00" -@"$stringlit_1086" = unnamed_addr constant [4 x i8] c"_tag" -@"$stringlit_1091" = unnamed_addr constant [0 x i8] zeroinitializer -@"$stringlit_1094" = unnamed_addr constant [10 x i8] c"_recipient" -@"$stringlit_1101" = unnamed_addr constant [7 x i8] c"_amount" -@"$stringlit_1108" = unnamed_addr constant [5 x i8] c"param" -@"$stringlit_1168" = unnamed_addr constant [10 x i8] c"_eventname" -@"$stringlit_1173" = unnamed_addr constant [9 x i8] c"TestEvent" -@"$stringlit_1176" = unnamed_addr constant [4 x i8] c"info" -@"$stringlit_1206" = unnamed_addr constant [10 x i8] c"_eventname" -@"$stringlit_1211" = unnamed_addr constant [9 x i8] c"TestEvent" -@"$stringlit_1214" = unnamed_addr constant [4 x i8] c"info" -@"$stringlit_1254" = unnamed_addr constant [10 x i8] c"_exception" -@"$stringlit_1259" = unnamed_addr constant [13 x i8] c"TestException" -@"$stringlit_1262" = unnamed_addr constant [5 x i8] c"value" -@"$assign_test_8_1315" = unnamed_addr constant [14 x i8] c"assign_test_8\00" -@"$assign_test_9_1357" = unnamed_addr constant [14 x i8] c"assign_test_9\00" -@"$assign_test_10_1453" = unnamed_addr constant [15 x i8] c"assign_test_10\00" -@"$assign_test_10_1491" = unnamed_addr constant [15 x i8] c"assign_test_10\00" +@"$stringlit_1101" = unnamed_addr constant [4 x i8] c"_tag" +@"$stringlit_1106" = unnamed_addr constant [0 x i8] zeroinitializer +@"$stringlit_1109" = unnamed_addr constant [10 x i8] c"_recipient" +@"$stringlit_1116" = unnamed_addr constant [7 x i8] c"_amount" +@"$stringlit_1123" = unnamed_addr constant [5 x i8] c"param" +@"$stringlit_1183" = unnamed_addr constant [10 x i8] c"_eventname" +@"$stringlit_1188" = unnamed_addr constant [9 x i8] c"TestEvent" +@"$stringlit_1191" = unnamed_addr constant [4 x i8] c"info" +@"$stringlit_1221" = unnamed_addr constant [10 x i8] c"_eventname" +@"$stringlit_1226" = unnamed_addr constant [9 x i8] c"TestEvent" +@"$stringlit_1229" = unnamed_addr constant [4 x i8] c"info" +@"$stringlit_1272" = unnamed_addr constant [10 x i8] c"_exception" +@"$stringlit_1277" = unnamed_addr constant [13 x i8] c"TestException" +@"$stringlit_1280" = unnamed_addr constant [5 x i8] c"value" +@"$assign_test_8_1336" = unnamed_addr constant [14 x i8] c"assign_test_8\00" +@"$assign_test_9_1378" = unnamed_addr constant [14 x i8] c"assign_test_9\00" +@"$assign_test_10_1474" = unnamed_addr constant [15 x i8] c"assign_test_10\00" +@"$assign_test_10_1512" = unnamed_addr constant [15 x i8] c"assign_test_10\00" @_tydescr_table = constant [49 x %_TyDescrTy_Typ*] [%_TyDescrTy_Typ* @"$TyDescr_Map_86", %_TyDescrTy_Typ* @"$TyDescr_Event_55", %_TyDescrTy_Typ* @"$TyDescr_Int64_37", %_TyDescrTy_Typ* @"$TyDescr_Addr_98", %_TyDescrTy_Typ* @"$TyDescr_ADT_List_0x3620c286757a29985cee194eb90064270fb65414.AddressADT_72", %_TyDescrTy_Typ* @"$TyDescr_ADT_Pair_ByStr20_with_end_0x3620c286757a29985cee194eb90064270fb65414.AddressADT_73", %_TyDescrTy_Typ* @"$TyDescr_ADT_List_ByStr20_with_contract_field_g_:_0x3620c286757a29985cee194eb90064270fb65414.AddressADT_end_68", %_TyDescrTy_Typ* @"$TyDescr_Addr_94", %_TyDescrTy_Typ* @"$TyDescr_Addr_91", %_TyDescrTy_Typ* @"$TyDescr_Map_84", %_TyDescrTy_Typ* @"$TyDescr_Exception_57", %_TyDescrTy_Typ* @"$TyDescr_String_49", %_TyDescrTy_Typ* @"$TyDescr_ADT_Option_Map_(ByStr20_with_end)_(Bool)_75", %_TyDescrTy_Typ* @"$TyDescr_ADT_List_ByStr20_71", %_TyDescrTy_Typ* @"$TyDescr_ADT_List_ByStr20_with_contract_field_f_:_Uint128_end_69", %_TyDescrTy_Typ* @"$TyDescr_Int256_45", %_TyDescrTy_Typ* @"$TyDescr_Int128_41", %_TyDescrTy_Typ* @"$TyDescr_Addr_100", %_TyDescrTy_Typ* @"$TyDescr_ADT_Pair_ByStr20_0x3620c286757a29985cee194eb90064270fb65414.AddressADT_74", %_TyDescrTy_Typ* @"$TyDescr_Bystr_61", %_TyDescrTy_Typ* @"$TyDescr_Addr_96", %_TyDescrTy_Typ* @"$TyDescr_Map_87", %_TyDescrTy_Typ* @"$TyDescr_Map_83", %_TyDescrTy_Typ* @"$TyDescr_Map_81", %_TyDescrTy_Typ* @"$TyDescr_ADT_List_ByStr20_with_end_70", %_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_67", %_TyDescrTy_Typ* @"$TyDescr_Map_85", %_TyDescrTy_Typ* @"$TyDescr_ADT_0x3620c286757a29985cee194eb90064270fb65414.AddressADT_77", %_TyDescrTy_Typ* @"$TyDescr_Addr_102", %_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_78", %_TyDescrTy_Typ* @"$TyDescr_Bystr20_63", %_TyDescrTy_Typ* @"$TyDescr_Uint256_47", %_TyDescrTy_Typ* @"$TyDescr_Uint32_35", %_TyDescrTy_Typ* @"$TyDescr_Addr_101", %_TyDescrTy_Typ* @"$TyDescr_Addr_92", %_TyDescrTy_Typ* @"$TyDescr_Addr_90", %_TyDescrTy_Typ* @"$TyDescr_ADT_Option_Bool_76", %_TyDescrTy_Typ* @"$TyDescr_Uint64_39", %_TyDescrTy_Typ* @"$TyDescr_Bnum_51", %_TyDescrTy_Typ* @"$TyDescr_Uint128_43", %_TyDescrTy_Typ* @"$TyDescr_Addr_97", %_TyDescrTy_Typ* @"$TyDescr_Map_82", %_TyDescrTy_Typ* @"$TyDescr_Addr_93", %_TyDescrTy_Typ* @"$TyDescr_Addr_95", %_TyDescrTy_Typ* @"$TyDescr_Map_80", %_TyDescrTy_Typ* @"$TyDescr_ReplicateContr_59", %_TyDescrTy_Typ* @"$TyDescr_Message_53", %_TyDescrTy_Typ* @"$TyDescr_Addr_99", %_TyDescrTy_Typ* @"$TyDescr_Int32_33"] @_tydescr_table_length = constant i32 49 -@"$pname__scilla_version_1503" = unnamed_addr constant [15 x i8] c"_scilla_version" -@"$pname__this_address_1504" = unnamed_addr constant [13 x i8] c"_this_address" -@"$pname__creation_block_1505" = unnamed_addr constant [15 x i8] c"_creation_block" -@"$pname_cparam1_1506" = unnamed_addr constant [7 x i8] c"cparam1" -@"$pname_cparam2_1507" = unnamed_addr constant [7 x i8] c"cparam2" -@"$pname_cparam3_1508" = unnamed_addr constant [7 x i8] c"cparam3" -@_contract_parameters = constant [6 x %"$ParamDescr_1501"] [%"$ParamDescr_1501" { %ParamDescrString { i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$pname__scilla_version_1503", i32 0, i32 0), i32 15 }, %_TyDescrTy_Typ* @"$TyDescr_Uint32_35" }, %"$ParamDescr_1501" { %ParamDescrString { i8* getelementptr inbounds ([13 x i8], [13 x i8]* @"$pname__this_address_1504", i32 0, i32 0), i32 13 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr20_63" }, %"$ParamDescr_1501" { %ParamDescrString { i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$pname__creation_block_1505", i32 0, i32 0), i32 15 }, %_TyDescrTy_Typ* @"$TyDescr_Bnum_51" }, %"$ParamDescr_1501" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$pname_cparam1_1506", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_102" }, %"$ParamDescr_1501" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$pname_cparam2_1507", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_101" }, %"$ParamDescr_1501" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$pname_cparam3_1508", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_100" }] +@"$pname__scilla_version_1527" = unnamed_addr constant [15 x i8] c"_scilla_version" +@"$pname__this_address_1528" = unnamed_addr constant [13 x i8] c"_this_address" +@"$pname__creation_block_1529" = unnamed_addr constant [15 x i8] c"_creation_block" +@"$pname_cparam1_1530" = unnamed_addr constant [7 x i8] c"cparam1" +@"$pname_cparam2_1531" = unnamed_addr constant [7 x i8] c"cparam2" +@"$pname_cparam3_1532" = unnamed_addr constant [7 x i8] c"cparam3" +@_contract_parameters = constant [6 x %"$ParamDescr_1525"] [%"$ParamDescr_1525" { %ParamDescrString { i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$pname__scilla_version_1527", i32 0, i32 0), i32 15 }, %_TyDescrTy_Typ* @"$TyDescr_Uint32_35" }, %"$ParamDescr_1525" { %ParamDescrString { i8* getelementptr inbounds ([13 x i8], [13 x i8]* @"$pname__this_address_1528", i32 0, i32 0), i32 13 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr20_63" }, %"$ParamDescr_1525" { %ParamDescrString { i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$pname__creation_block_1529", i32 0, i32 0), i32 15 }, %_TyDescrTy_Typ* @"$TyDescr_Bnum_51" }, %"$ParamDescr_1525" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$pname_cparam1_1530", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_102" }, %"$ParamDescr_1525" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$pname_cparam2_1531", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_101" }, %"$ParamDescr_1525" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$pname_cparam3_1532", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_100" }] @_contract_parameters_length = constant i32 6 -@"$tpname__amount_1509" = unnamed_addr constant [7 x i8] c"_amount" -@"$tpname__origin_1510" = unnamed_addr constant [7 x i8] c"_origin" -@"$tpname__sender_1511" = unnamed_addr constant [7 x i8] c"_sender" -@"$tpname_remote1_1512" = unnamed_addr constant [7 x i8] c"remote1" -@"$tpname_remote2_1513" = unnamed_addr constant [7 x i8] c"remote2" -@"$tpname_remote3_1514" = unnamed_addr constant [7 x i8] c"remote3" -@"$tparams_RemoteReadsTest_1515" = unnamed_addr constant [6 x %"$ParamDescr_1501"] [%"$ParamDescr_1501" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_1509", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_43" }, %"$ParamDescr_1501" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_1510", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_102" }, %"$ParamDescr_1501" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_1511", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_102" }, %"$ParamDescr_1501" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname_remote1_1512", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_102" }, %"$ParamDescr_1501" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname_remote2_1513", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_101" }, %"$ParamDescr_1501" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname_remote3_1514", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_93" }] -@"$tname_RemoteReadsTest_1516" = unnamed_addr constant [15 x i8] c"RemoteReadsTest" -@"$tpname__amount_1517" = unnamed_addr constant [7 x i8] c"_amount" -@"$tpname__origin_1518" = unnamed_addr constant [7 x i8] c"_origin" -@"$tpname__sender_1519" = unnamed_addr constant [7 x i8] c"_sender" -@"$tpname_list1_1520" = unnamed_addr constant [5 x i8] c"list1" -@"$tpname_list2_1521" = unnamed_addr constant [5 x i8] c"list2" -@"$tpname_list3_1522" = unnamed_addr constant [5 x i8] c"list3" -@"$tpname_pair1_1523" = unnamed_addr constant [5 x i8] c"pair1" -@"$tpname_adt1_1524" = unnamed_addr constant [4 x i8] c"adt1" -@"$tpname_remote1_1525" = unnamed_addr constant [7 x i8] c"remote1" -@"$tparams_RemoteReadsADTTest_1526" = unnamed_addr constant [9 x %"$ParamDescr_1501"] [%"$ParamDescr_1501" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_1517", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_43" }, %"$ParamDescr_1501" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_1518", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_102" }, %"$ParamDescr_1501" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_1519", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_102" }, %"$ParamDescr_1501" { %ParamDescrString { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$tpname_list1_1520", i32 0, i32 0), i32 5 }, %_TyDescrTy_Typ* @"$TyDescr_ADT_List_ByStr20_with_end_70" }, %"$ParamDescr_1501" { %ParamDescrString { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$tpname_list2_1521", i32 0, i32 0), i32 5 }, %_TyDescrTy_Typ* @"$TyDescr_ADT_List_ByStr20_with_contract_field_f_:_Uint128_end_69" }, %"$ParamDescr_1501" { %ParamDescrString { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$tpname_list3_1522", i32 0, i32 0), i32 5 }, %_TyDescrTy_Typ* @"$TyDescr_ADT_List_ByStr20_with_contract_field_g_:_0x3620c286757a29985cee194eb90064270fb65414.AddressADT_end_68" }, %"$ParamDescr_1501" { %ParamDescrString { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$tpname_pair1_1523", i32 0, i32 0), i32 5 }, %_TyDescrTy_Typ* @"$TyDescr_ADT_Pair_ByStr20_with_end_0x3620c286757a29985cee194eb90064270fb65414.AddressADT_73" }, %"$ParamDescr_1501" { %ParamDescrString { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$tpname_adt1_1524", i32 0, i32 0), i32 4 }, %_TyDescrTy_Typ* @"$TyDescr_ADT_0x3620c286757a29985cee194eb90064270fb65414.AddressADT_77" }, %"$ParamDescr_1501" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname_remote1_1525", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_90" }] -@"$tname_RemoteReadsADTTest_1527" = unnamed_addr constant [18 x i8] c"RemoteReadsADTTest" -@"$tpname__amount_1528" = unnamed_addr constant [7 x i8] c"_amount" -@"$tpname__origin_1529" = unnamed_addr constant [7 x i8] c"_origin" -@"$tpname__sender_1530" = unnamed_addr constant [7 x i8] c"_sender" -@"$tparams_OutgoingMsgTest_1531" = unnamed_addr constant [3 x %"$ParamDescr_1501"] [%"$ParamDescr_1501" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_1528", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_43" }, %"$ParamDescr_1501" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_1529", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_102" }, %"$ParamDescr_1501" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_1530", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_102" }] -@"$tname_OutgoingMsgTest_1532" = unnamed_addr constant [15 x i8] c"OutgoingMsgTest" @"$tpname__amount_1533" = unnamed_addr constant [7 x i8] c"_amount" @"$tpname__origin_1534" = unnamed_addr constant [7 x i8] c"_origin" @"$tpname__sender_1535" = unnamed_addr constant [7 x i8] c"_sender" -@"$tparams_ExceptionTest_1536" = unnamed_addr constant [3 x %"$ParamDescr_1501"] [%"$ParamDescr_1501" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_1533", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_43" }, %"$ParamDescr_1501" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_1534", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_102" }, %"$ParamDescr_1501" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_1535", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_102" }] -@"$tname_ExceptionTest_1537" = unnamed_addr constant [13 x i8] c"ExceptionTest" -@"$tpname__amount_1538" = unnamed_addr constant [7 x i8] c"_amount" -@"$tpname__origin_1539" = unnamed_addr constant [7 x i8] c"_origin" -@"$tpname__sender_1540" = unnamed_addr constant [7 x i8] c"_sender" -@"$tparams_AssignTest_1541" = unnamed_addr constant [3 x %"$ParamDescr_1501"] [%"$ParamDescr_1501" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_1538", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_43" }, %"$ParamDescr_1501" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_1539", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_102" }, %"$ParamDescr_1501" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_1540", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_102" }] -@"$tname_AssignTest_1542" = unnamed_addr constant [10 x i8] c"AssignTest" -@_transition_parameters = constant [5 x %"$TransDescr_1502"] [%"$TransDescr_1502" { %ParamDescrString { i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$tname_RemoteReadsTest_1516", i32 0, i32 0), i32 15 }, i32 6, %"$ParamDescr_1501"* getelementptr inbounds ([6 x %"$ParamDescr_1501"], [6 x %"$ParamDescr_1501"]* @"$tparams_RemoteReadsTest_1515", i32 0, i32 0) }, %"$TransDescr_1502" { %ParamDescrString { i8* getelementptr inbounds ([18 x i8], [18 x i8]* @"$tname_RemoteReadsADTTest_1527", i32 0, i32 0), i32 18 }, i32 9, %"$ParamDescr_1501"* getelementptr inbounds ([9 x %"$ParamDescr_1501"], [9 x %"$ParamDescr_1501"]* @"$tparams_RemoteReadsADTTest_1526", i32 0, i32 0) }, %"$TransDescr_1502" { %ParamDescrString { i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$tname_OutgoingMsgTest_1532", i32 0, i32 0), i32 15 }, i32 3, %"$ParamDescr_1501"* getelementptr inbounds ([3 x %"$ParamDescr_1501"], [3 x %"$ParamDescr_1501"]* @"$tparams_OutgoingMsgTest_1531", i32 0, i32 0) }, %"$TransDescr_1502" { %ParamDescrString { i8* getelementptr inbounds ([13 x i8], [13 x i8]* @"$tname_ExceptionTest_1537", i32 0, i32 0), i32 13 }, i32 3, %"$ParamDescr_1501"* getelementptr inbounds ([3 x %"$ParamDescr_1501"], [3 x %"$ParamDescr_1501"]* @"$tparams_ExceptionTest_1536", i32 0, i32 0) }, %"$TransDescr_1502" { %ParamDescrString { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$tname_AssignTest_1542", i32 0, i32 0), i32 10 }, i32 3, %"$ParamDescr_1501"* getelementptr inbounds ([3 x %"$ParamDescr_1501"], [3 x %"$ParamDescr_1501"]* @"$tparams_AssignTest_1541", i32 0, i32 0) }] +@"$tpname_remote1_1536" = unnamed_addr constant [7 x i8] c"remote1" +@"$tpname_remote2_1537" = unnamed_addr constant [7 x i8] c"remote2" +@"$tpname_remote3_1538" = unnamed_addr constant [7 x i8] c"remote3" +@"$tparams_RemoteReadsTest_1539" = unnamed_addr constant [6 x %"$ParamDescr_1525"] [%"$ParamDescr_1525" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_1533", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_43" }, %"$ParamDescr_1525" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_1534", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_102" }, %"$ParamDescr_1525" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_1535", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_102" }, %"$ParamDescr_1525" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname_remote1_1536", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_102" }, %"$ParamDescr_1525" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname_remote2_1537", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_101" }, %"$ParamDescr_1525" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname_remote3_1538", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_93" }] +@"$tname_RemoteReadsTest_1540" = unnamed_addr constant [15 x i8] c"RemoteReadsTest" +@"$tpname__amount_1541" = unnamed_addr constant [7 x i8] c"_amount" +@"$tpname__origin_1542" = unnamed_addr constant [7 x i8] c"_origin" +@"$tpname__sender_1543" = unnamed_addr constant [7 x i8] c"_sender" +@"$tpname_list1_1544" = unnamed_addr constant [5 x i8] c"list1" +@"$tpname_list2_1545" = unnamed_addr constant [5 x i8] c"list2" +@"$tpname_list3_1546" = unnamed_addr constant [5 x i8] c"list3" +@"$tpname_pair1_1547" = unnamed_addr constant [5 x i8] c"pair1" +@"$tpname_adt1_1548" = unnamed_addr constant [4 x i8] c"adt1" +@"$tpname_remote1_1549" = unnamed_addr constant [7 x i8] c"remote1" +@"$tparams_RemoteReadsADTTest_1550" = unnamed_addr constant [9 x %"$ParamDescr_1525"] [%"$ParamDescr_1525" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_1541", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_43" }, %"$ParamDescr_1525" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_1542", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_102" }, %"$ParamDescr_1525" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_1543", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_102" }, %"$ParamDescr_1525" { %ParamDescrString { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$tpname_list1_1544", i32 0, i32 0), i32 5 }, %_TyDescrTy_Typ* @"$TyDescr_ADT_List_ByStr20_with_end_70" }, %"$ParamDescr_1525" { %ParamDescrString { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$tpname_list2_1545", i32 0, i32 0), i32 5 }, %_TyDescrTy_Typ* @"$TyDescr_ADT_List_ByStr20_with_contract_field_f_:_Uint128_end_69" }, %"$ParamDescr_1525" { %ParamDescrString { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$tpname_list3_1546", i32 0, i32 0), i32 5 }, %_TyDescrTy_Typ* @"$TyDescr_ADT_List_ByStr20_with_contract_field_g_:_0x3620c286757a29985cee194eb90064270fb65414.AddressADT_end_68" }, %"$ParamDescr_1525" { %ParamDescrString { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$tpname_pair1_1547", i32 0, i32 0), i32 5 }, %_TyDescrTy_Typ* @"$TyDescr_ADT_Pair_ByStr20_with_end_0x3620c286757a29985cee194eb90064270fb65414.AddressADT_73" }, %"$ParamDescr_1525" { %ParamDescrString { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$tpname_adt1_1548", i32 0, i32 0), i32 4 }, %_TyDescrTy_Typ* @"$TyDescr_ADT_0x3620c286757a29985cee194eb90064270fb65414.AddressADT_77" }, %"$ParamDescr_1525" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname_remote1_1549", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_90" }] +@"$tname_RemoteReadsADTTest_1551" = unnamed_addr constant [18 x i8] c"RemoteReadsADTTest" +@"$tpname__amount_1552" = unnamed_addr constant [7 x i8] c"_amount" +@"$tpname__origin_1553" = unnamed_addr constant [7 x i8] c"_origin" +@"$tpname__sender_1554" = unnamed_addr constant [7 x i8] c"_sender" +@"$tparams_OutgoingMsgTest_1555" = unnamed_addr constant [3 x %"$ParamDescr_1525"] [%"$ParamDescr_1525" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_1552", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_43" }, %"$ParamDescr_1525" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_1553", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_102" }, %"$ParamDescr_1525" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_1554", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_102" }] +@"$tname_OutgoingMsgTest_1556" = unnamed_addr constant [15 x i8] c"OutgoingMsgTest" +@"$tpname__amount_1557" = unnamed_addr constant [7 x i8] c"_amount" +@"$tpname__origin_1558" = unnamed_addr constant [7 x i8] c"_origin" +@"$tpname__sender_1559" = unnamed_addr constant [7 x i8] c"_sender" +@"$tparams_ExceptionTest_1560" = unnamed_addr constant [3 x %"$ParamDescr_1525"] [%"$ParamDescr_1525" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_1557", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_43" }, %"$ParamDescr_1525" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_1558", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_102" }, %"$ParamDescr_1525" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_1559", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_102" }] +@"$tname_ExceptionTest_1561" = unnamed_addr constant [13 x i8] c"ExceptionTest" +@"$tpname__amount_1562" = unnamed_addr constant [7 x i8] c"_amount" +@"$tpname__origin_1563" = unnamed_addr constant [7 x i8] c"_origin" +@"$tpname__sender_1564" = unnamed_addr constant [7 x i8] c"_sender" +@"$tparams_AssignTest_1565" = unnamed_addr constant [3 x %"$ParamDescr_1525"] [%"$ParamDescr_1525" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_1562", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_43" }, %"$ParamDescr_1525" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_1563", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_102" }, %"$ParamDescr_1525" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_1564", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_102" }] +@"$tname_AssignTest_1566" = unnamed_addr constant [10 x i8] c"AssignTest" +@_transition_parameters = constant [5 x %"$TransDescr_1526"] [%"$TransDescr_1526" { %ParamDescrString { i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$tname_RemoteReadsTest_1540", i32 0, i32 0), i32 15 }, i32 6, %"$ParamDescr_1525"* getelementptr inbounds ([6 x %"$ParamDescr_1525"], [6 x %"$ParamDescr_1525"]* @"$tparams_RemoteReadsTest_1539", i32 0, i32 0) }, %"$TransDescr_1526" { %ParamDescrString { i8* getelementptr inbounds ([18 x i8], [18 x i8]* @"$tname_RemoteReadsADTTest_1551", i32 0, i32 0), i32 18 }, i32 9, %"$ParamDescr_1525"* getelementptr inbounds ([9 x %"$ParamDescr_1525"], [9 x %"$ParamDescr_1525"]* @"$tparams_RemoteReadsADTTest_1550", i32 0, i32 0) }, %"$TransDescr_1526" { %ParamDescrString { i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$tname_OutgoingMsgTest_1556", i32 0, i32 0), i32 15 }, i32 3, %"$ParamDescr_1525"* getelementptr inbounds ([3 x %"$ParamDescr_1525"], [3 x %"$ParamDescr_1525"]* @"$tparams_OutgoingMsgTest_1555", i32 0, i32 0) }, %"$TransDescr_1526" { %ParamDescrString { i8* getelementptr inbounds ([13 x i8], [13 x i8]* @"$tname_ExceptionTest_1561", i32 0, i32 0), i32 13 }, i32 3, %"$ParamDescr_1525"* getelementptr inbounds ([3 x %"$ParamDescr_1525"], [3 x %"$ParamDescr_1525"]* @"$tparams_ExceptionTest_1560", i32 0, i32 0) }, %"$TransDescr_1526" { %ParamDescrString { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$tname_AssignTest_1566", i32 0, i32 0), i32 10 }, i32 3, %"$ParamDescr_1525"* getelementptr inbounds ([3 x %"$ParamDescr_1525"], [3 x %"$ParamDescr_1525"]* @"$tparams_AssignTest_1565", i32 0, i32 0) }] @_transition_parameters_length = constant i32 5 -define void @_init_libs() !dbg !4 { +define void @_init_libs() !dbg !3 { entry: %"$gasrem_271" = load i64, i64* @_gasrem, align 8 %"$gascmp_272" = icmp ugt i64 5, %"$gasrem_271" @@ -451,6 +451,7 @@ entry: %"$consume_280" = sub i64 %"$gasrem_276", 1 store i64 %"$consume_280", i64* @_gasrem, align 8 %"$assign_test_1_4" = alloca [20 x i8], align 1 + call void @llvm.dbg.declare(metadata [20 x i8]* %"$assign_test_1_4", metadata !11, metadata !DIExpression()), !dbg !13 %"$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" @@ -463,14 +464,15 @@ entry: %"$consume_285" = sub i64 %"$gasrem_281", 1 store i64 %"$consume_285", i64* @_gasrem, align 8 %"$cparam3_286" = load [20 x i8], [20 x i8]* @_cparam_cparam3, align 1 - store [20 x i8] %"$cparam3_286", [20 x i8]* %"$assign_test_1_4", align 1, !dbg !11 + store [20 x i8] %"$cparam3_286", [20 x i8]* %"$assign_test_1_4", align 1, !dbg !14 %"$execptr_load_287" = load i8*, i8** @_execptr, align 8 %"$$assign_test_1_4_289" = load [20 x i8], [20 x i8]* %"$assign_test_1_4", align 1 %"$update_value_290" = alloca [20 x i8], align 1 store [20 x i8] %"$$assign_test_1_4_289", [20 x i8]* %"$update_value_290", align 1 %"$update_value_291" = bitcast [20 x i8]* %"$update_value_290" to i8* - call void @_update_field(i8* %"$execptr_load_287", i8* getelementptr inbounds ([14 x i8], [14 x i8]* @"$assign_test_1_288", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Addr_100", i32 0, i8* null, i8* %"$update_value_291"), !dbg !11 + call void @_update_field(i8* %"$execptr_load_287", i8* getelementptr inbounds ([14 x i8], [14 x i8]* @"$assign_test_1_288", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Addr_100", i32 0, i8* null, i8* %"$update_value_291"), !dbg !14 %"$assign_test_2_5" = alloca [20 x i8], align 1 + call void @llvm.dbg.declare(metadata [20 x i8]* %"$assign_test_2_5", metadata !15, metadata !DIExpression()), !dbg !16 %"$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" @@ -483,14 +485,15 @@ entry: %"$consume_296" = sub i64 %"$gasrem_292", 1 store i64 %"$consume_296", i64* @_gasrem, align 8 %"$cparam3_297" = load [20 x i8], [20 x i8]* @_cparam_cparam3, align 1 - store [20 x i8] %"$cparam3_297", [20 x i8]* %"$assign_test_2_5", align 1, !dbg !12 + store [20 x i8] %"$cparam3_297", [20 x i8]* %"$assign_test_2_5", align 1, !dbg !17 %"$execptr_load_298" = load i8*, i8** @_execptr, align 8 %"$$assign_test_2_5_300" = load [20 x i8], [20 x i8]* %"$assign_test_2_5", align 1 %"$update_value_301" = alloca [20 x i8], align 1 store [20 x i8] %"$$assign_test_2_5_300", [20 x i8]* %"$update_value_301", align 1 %"$update_value_302" = bitcast [20 x i8]* %"$update_value_301" to i8* - call void @_update_field(i8* %"$execptr_load_298", i8* getelementptr inbounds ([14 x i8], [14 x i8]* @"$assign_test_2_299", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Addr_100", i32 0, i8* null, i8* %"$update_value_302"), !dbg !12 + call void @_update_field(i8* %"$execptr_load_298", i8* getelementptr inbounds ([14 x i8], [14 x i8]* @"$assign_test_2_299", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Addr_100", i32 0, i8* null, i8* %"$update_value_302"), !dbg !17 %"$assign_test_3_6" = alloca [20 x i8], align 1 + call void @llvm.dbg.declare(metadata [20 x i8]* %"$assign_test_3_6", metadata !18, metadata !DIExpression()), !dbg !19 %"$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" @@ -503,14 +506,15 @@ entry: %"$consume_307" = sub i64 %"$gasrem_303", 1 store i64 %"$consume_307", i64* @_gasrem, align 8 %"$cparam3_308" = load [20 x i8], [20 x i8]* @_cparam_cparam3, align 1 - store [20 x i8] %"$cparam3_308", [20 x i8]* %"$assign_test_3_6", align 1, !dbg !13 + store [20 x i8] %"$cparam3_308", [20 x i8]* %"$assign_test_3_6", align 1, !dbg !20 %"$execptr_load_309" = load i8*, i8** @_execptr, align 8 %"$$assign_test_3_6_311" = load [20 x i8], [20 x i8]* %"$assign_test_3_6", align 1 %"$update_value_312" = alloca [20 x i8], align 1 store [20 x i8] %"$$assign_test_3_6_311", [20 x i8]* %"$update_value_312", align 1 %"$update_value_313" = bitcast [20 x i8]* %"$update_value_312" to i8* - call void @_update_field(i8* %"$execptr_load_309", i8* getelementptr inbounds ([14 x i8], [14 x i8]* @"$assign_test_3_310", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Addr_100", i32 0, i8* null, i8* %"$update_value_313"), !dbg !13 + call void @_update_field(i8* %"$execptr_load_309", i8* getelementptr inbounds ([14 x i8], [14 x i8]* @"$assign_test_3_310", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Addr_100", i32 0, i8* null, i8* %"$update_value_313"), !dbg !20 %"$assign_test_4_7" = alloca [20 x i8], align 1 + call void @llvm.dbg.declare(metadata [20 x i8]* %"$assign_test_4_7", metadata !21, metadata !DIExpression()), !dbg !22 %"$gasrem_314" = load i64, i64* @_gasrem, align 8 %"$gascmp_315" = icmp ugt i64 1, %"$gasrem_314" br i1 %"$gascmp_315", label %"$out_of_gas_316", label %"$have_gas_317" @@ -523,14 +527,15 @@ entry: %"$consume_318" = sub i64 %"$gasrem_314", 1 store i64 %"$consume_318", i64* @_gasrem, align 8 %"$cparam3_319" = load [20 x i8], [20 x i8]* @_cparam_cparam3, align 1 - store [20 x i8] %"$cparam3_319", [20 x i8]* %"$assign_test_4_7", align 1, !dbg !14 + store [20 x i8] %"$cparam3_319", [20 x i8]* %"$assign_test_4_7", align 1, !dbg !23 %"$execptr_load_320" = load i8*, i8** @_execptr, align 8 %"$$assign_test_4_7_322" = load [20 x i8], [20 x i8]* %"$assign_test_4_7", align 1 %"$update_value_323" = alloca [20 x i8], align 1 store [20 x i8] %"$$assign_test_4_7_322", [20 x i8]* %"$update_value_323", align 1 %"$update_value_324" = bitcast [20 x i8]* %"$update_value_323" to i8* - call void @_update_field(i8* %"$execptr_load_320", i8* getelementptr inbounds ([14 x i8], [14 x i8]* @"$assign_test_4_321", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Addr_100", i32 0, i8* null, i8* %"$update_value_324"), !dbg !14 + call void @_update_field(i8* %"$execptr_load_320", i8* getelementptr inbounds ([14 x i8], [14 x i8]* @"$assign_test_4_321", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Addr_100", i32 0, i8* null, i8* %"$update_value_324"), !dbg !23 %"$assign_test_5_8" = alloca [20 x i8], align 1 + call void @llvm.dbg.declare(metadata [20 x i8]* %"$assign_test_5_8", metadata !24, metadata !DIExpression()), !dbg !25 %"$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" @@ -543,14 +548,15 @@ entry: %"$consume_329" = sub i64 %"$gasrem_325", 1 store i64 %"$consume_329", i64* @_gasrem, align 8 %"$cparam3_330" = load [20 x i8], [20 x i8]* @_cparam_cparam3, align 1 - store [20 x i8] %"$cparam3_330", [20 x i8]* %"$assign_test_5_8", align 1, !dbg !15 + store [20 x i8] %"$cparam3_330", [20 x i8]* %"$assign_test_5_8", align 1, !dbg !26 %"$execptr_load_331" = load i8*, i8** @_execptr, align 8 %"$$assign_test_5_8_333" = load [20 x i8], [20 x i8]* %"$assign_test_5_8", align 1 %"$update_value_334" = alloca [20 x i8], align 1 store [20 x i8] %"$$assign_test_5_8_333", [20 x i8]* %"$update_value_334", align 1 %"$update_value_335" = bitcast [20 x i8]* %"$update_value_334" to i8* - call void @_update_field(i8* %"$execptr_load_331", i8* getelementptr inbounds ([14 x i8], [14 x i8]* @"$assign_test_5_332", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Addr_100", i32 0, i8* null, i8* %"$update_value_335"), !dbg !15 + call void @_update_field(i8* %"$execptr_load_331", i8* getelementptr inbounds ([14 x i8], [14 x i8]* @"$assign_test_5_332", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Addr_100", i32 0, i8* null, i8* %"$update_value_335"), !dbg !26 %"$assign_test_6_9" = alloca [20 x i8], align 1 + call void @llvm.dbg.declare(metadata [20 x i8]* %"$assign_test_6_9", metadata !27, metadata !DIExpression()), !dbg !28 %"$gasrem_336" = load i64, i64* @_gasrem, align 8 %"$gascmp_337" = icmp ugt i64 1, %"$gasrem_336" br i1 %"$gascmp_337", label %"$out_of_gas_338", label %"$have_gas_339" @@ -563,14 +569,15 @@ entry: %"$consume_340" = sub i64 %"$gasrem_336", 1 store i64 %"$consume_340", i64* @_gasrem, align 8 %"$cparam3_341" = load [20 x i8], [20 x i8]* @_cparam_cparam3, align 1 - store [20 x i8] %"$cparam3_341", [20 x i8]* %"$assign_test_6_9", align 1, !dbg !16 + store [20 x i8] %"$cparam3_341", [20 x i8]* %"$assign_test_6_9", align 1, !dbg !29 %"$execptr_load_342" = load i8*, i8** @_execptr, align 8 %"$$assign_test_6_9_344" = load [20 x i8], [20 x i8]* %"$assign_test_6_9", align 1 %"$update_value_345" = alloca [20 x i8], align 1 store [20 x i8] %"$$assign_test_6_9_344", [20 x i8]* %"$update_value_345", align 1 %"$update_value_346" = bitcast [20 x i8]* %"$update_value_345" to i8* - call void @_update_field(i8* %"$execptr_load_342", i8* getelementptr inbounds ([14 x i8], [14 x i8]* @"$assign_test_6_343", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Addr_100", i32 0, i8* null, i8* %"$update_value_346"), !dbg !16 + call void @_update_field(i8* %"$execptr_load_342", i8* getelementptr inbounds ([14 x i8], [14 x i8]* @"$assign_test_6_343", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Addr_100", i32 0, i8* null, i8* %"$update_value_346"), !dbg !29 %"$assign_test_7_10" = alloca [20 x i8], align 1 + call void @llvm.dbg.declare(metadata [20 x i8]* %"$assign_test_7_10", metadata !30, metadata !DIExpression()), !dbg !31 %"$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" @@ -583,14 +590,15 @@ entry: %"$consume_351" = sub i64 %"$gasrem_347", 1 store i64 %"$consume_351", i64* @_gasrem, align 8 %"$cparam3_352" = load [20 x i8], [20 x i8]* @_cparam_cparam3, align 1 - store [20 x i8] %"$cparam3_352", [20 x i8]* %"$assign_test_7_10", align 1, !dbg !17 + store [20 x i8] %"$cparam3_352", [20 x i8]* %"$assign_test_7_10", align 1, !dbg !32 %"$execptr_load_353" = load i8*, i8** @_execptr, align 8 %"$$assign_test_7_10_355" = load [20 x i8], [20 x i8]* %"$assign_test_7_10", align 1 %"$update_value_356" = alloca [20 x i8], align 1 store [20 x i8] %"$$assign_test_7_10_355", [20 x i8]* %"$update_value_356", align 1 %"$update_value_357" = bitcast [20 x i8]* %"$update_value_356" to i8* - call void @_update_field(i8* %"$execptr_load_353", i8* getelementptr inbounds ([14 x i8], [14 x i8]* @"$assign_test_7_354", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Addr_100", i32 0, i8* null, i8* %"$update_value_357"), !dbg !17 + call void @_update_field(i8* %"$execptr_load_353", i8* getelementptr inbounds ([14 x i8], [14 x i8]* @"$assign_test_7_354", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Addr_100", i32 0, i8* null, i8* %"$update_value_357"), !dbg !32 %"$assign_test_8_11" = alloca %TName_0x3620c286757a29985cee194eb90064270fb65414.AddressADT*, align 8 + call void @llvm.dbg.declare(metadata %TName_0x3620c286757a29985cee194eb90064270fb65414.AddressADT** %"$assign_test_8_11", metadata !33, metadata !DIExpression()), !dbg !36 %"$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" @@ -611,12 +619,13 @@ entry: %"$adtgep_366" = getelementptr inbounds %CName_0x3620c286757a29985cee194eb90064270fb65414.Address1, %CName_0x3620c286757a29985cee194eb90064270fb65414.Address1* %"$adtval_364", i32 0, i32 1 store [20 x i8] %"$cparam1_363", [20 x i8]* %"$adtgep_366", align 1 %"$adtptr_367" = bitcast %CName_0x3620c286757a29985cee194eb90064270fb65414.Address1* %"$adtval_364" to %TName_0x3620c286757a29985cee194eb90064270fb65414.AddressADT* - store %TName_0x3620c286757a29985cee194eb90064270fb65414.AddressADT* %"$adtptr_367", %TName_0x3620c286757a29985cee194eb90064270fb65414.AddressADT** %"$assign_test_8_11", align 8, !dbg !18 + store %TName_0x3620c286757a29985cee194eb90064270fb65414.AddressADT* %"$adtptr_367", %TName_0x3620c286757a29985cee194eb90064270fb65414.AddressADT** %"$assign_test_8_11", align 8, !dbg !37 %"$execptr_load_368" = load i8*, i8** @_execptr, align 8 %"$$assign_test_8_11_370" = load %TName_0x3620c286757a29985cee194eb90064270fb65414.AddressADT*, %TName_0x3620c286757a29985cee194eb90064270fb65414.AddressADT** %"$assign_test_8_11", align 8 %"$update_value_371" = bitcast %TName_0x3620c286757a29985cee194eb90064270fb65414.AddressADT* %"$$assign_test_8_11_370" to i8* - call void @_update_field(i8* %"$execptr_load_368", i8* getelementptr inbounds ([14 x i8], [14 x i8]* @"$assign_test_8_369", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_ADT_0x3620c286757a29985cee194eb90064270fb65414.AddressADT_77", i32 0, i8* null, i8* %"$update_value_371"), !dbg !18 + call void @_update_field(i8* %"$execptr_load_368", i8* getelementptr inbounds ([14 x i8], [14 x i8]* @"$assign_test_8_369", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_ADT_0x3620c286757a29985cee194eb90064270fb65414.AddressADT_77", i32 0, i8* null, i8* %"$update_value_371"), !dbg !37 %"$assign_test_9_12" = alloca %TName_List_0x3620c286757a29985cee194eb90064270fb65414.AddressADT*, align 8 + call void @llvm.dbg.declare(metadata %TName_List_0x3620c286757a29985cee194eb90064270fb65414.AddressADT** %"$assign_test_9_12", metadata !38, metadata !DIExpression()), !dbg !41 %"$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" @@ -634,12 +643,13 @@ entry: %"$adtgep_378" = getelementptr inbounds %CName_Nil_0x3620c286757a29985cee194eb90064270fb65414.AddressADT, %CName_Nil_0x3620c286757a29985cee194eb90064270fb65414.AddressADT* %"$adtval_377", i32 0, i32 0 store i8 1, i8* %"$adtgep_378", align 1 %"$adtptr_379" = bitcast %CName_Nil_0x3620c286757a29985cee194eb90064270fb65414.AddressADT* %"$adtval_377" to %TName_List_0x3620c286757a29985cee194eb90064270fb65414.AddressADT* - store %TName_List_0x3620c286757a29985cee194eb90064270fb65414.AddressADT* %"$adtptr_379", %TName_List_0x3620c286757a29985cee194eb90064270fb65414.AddressADT** %"$assign_test_9_12", align 8, !dbg !19 + store %TName_List_0x3620c286757a29985cee194eb90064270fb65414.AddressADT* %"$adtptr_379", %TName_List_0x3620c286757a29985cee194eb90064270fb65414.AddressADT** %"$assign_test_9_12", align 8, !dbg !42 %"$execptr_load_380" = load i8*, i8** @_execptr, align 8 %"$$assign_test_9_12_382" = load %TName_List_0x3620c286757a29985cee194eb90064270fb65414.AddressADT*, %TName_List_0x3620c286757a29985cee194eb90064270fb65414.AddressADT** %"$assign_test_9_12", align 8 %"$update_value_383" = bitcast %TName_List_0x3620c286757a29985cee194eb90064270fb65414.AddressADT* %"$$assign_test_9_12_382" to i8* - call void @_update_field(i8* %"$execptr_load_380", i8* getelementptr inbounds ([14 x i8], [14 x i8]* @"$assign_test_9_381", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_ADT_List_0x3620c286757a29985cee194eb90064270fb65414.AddressADT_72", i32 0, i8* null, i8* %"$update_value_383"), !dbg !19 + call void @_update_field(i8* %"$execptr_load_380", i8* getelementptr inbounds ([14 x i8], [14 x i8]* @"$assign_test_9_381", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_ADT_List_0x3620c286757a29985cee194eb90064270fb65414.AddressADT_72", i32 0, i8* null, i8* %"$update_value_383"), !dbg !42 %"$assign_test_10_13" = alloca %"Map_Uint128_Map_(Uint128)_(0x3620c286757a29985cee194eb90064270fb65414.AddressADT)"*, align 8 + call void @llvm.dbg.declare(metadata %"Map_Uint128_Map_(Uint128)_(0x3620c286757a29985cee194eb90064270fb65414.AddressADT)"** %"$assign_test_10_13", metadata !43, metadata !DIExpression()), !dbg !46 %"$gasrem_384" = load i64, i64* @_gasrem, align 8 %"$gascmp_385" = icmp ugt i64 1, %"$gasrem_384" br i1 %"$gascmp_385", label %"$out_of_gas_386", label %"$have_gas_387" @@ -654,12 +664,13 @@ entry: %"$execptr_load_389" = load i8*, i8** @_execptr, align 8 %"$_new_empty_map_call_390" = call i8* @_new_empty_map(i8* %"$execptr_load_389") %"$_new_empty_map_391" = bitcast i8* %"$_new_empty_map_call_390" to %"Map_Uint128_Map_(Uint128)_(0x3620c286757a29985cee194eb90064270fb65414.AddressADT)"* - store %"Map_Uint128_Map_(Uint128)_(0x3620c286757a29985cee194eb90064270fb65414.AddressADT)"* %"$_new_empty_map_391", %"Map_Uint128_Map_(Uint128)_(0x3620c286757a29985cee194eb90064270fb65414.AddressADT)"** %"$assign_test_10_13", align 8, !dbg !20 + store %"Map_Uint128_Map_(Uint128)_(0x3620c286757a29985cee194eb90064270fb65414.AddressADT)"* %"$_new_empty_map_391", %"Map_Uint128_Map_(Uint128)_(0x3620c286757a29985cee194eb90064270fb65414.AddressADT)"** %"$assign_test_10_13", align 8, !dbg !47 %"$execptr_load_392" = load i8*, i8** @_execptr, align 8 %"$$assign_test_10_13_394" = load %"Map_Uint128_Map_(Uint128)_(0x3620c286757a29985cee194eb90064270fb65414.AddressADT)"*, %"Map_Uint128_Map_(Uint128)_(0x3620c286757a29985cee194eb90064270fb65414.AddressADT)"** %"$assign_test_10_13", align 8 %"$update_value_395" = bitcast %"Map_Uint128_Map_(Uint128)_(0x3620c286757a29985cee194eb90064270fb65414.AddressADT)"* %"$$assign_test_10_13_394" to i8* - call void @_update_field(i8* %"$execptr_load_392", i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$assign_test_10_393", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_81", i32 0, i8* null, i8* %"$update_value_395"), !dbg !20 + call void @_update_field(i8* %"$execptr_load_392", i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$assign_test_10_393", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_81", i32 0, i8* null, i8* %"$update_value_395"), !dbg !47 %"$remote_reads_test_res_1_1_14" = alloca %Uint128, align 8 + call void @llvm.dbg.declare(metadata %Uint128* %"$remote_reads_test_res_1_1_14", metadata !48, metadata !DIExpression()), !dbg !50 %"$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" @@ -671,14 +682,15 @@ entry: "$have_gas_399": ; preds = %"$out_of_gas_398", %"$have_gas_387" %"$consume_400" = sub i64 %"$gasrem_396", 1 store i64 %"$consume_400", i64* @_gasrem, align 8 - store %Uint128 zeroinitializer, %Uint128* %"$remote_reads_test_res_1_1_14", align 8, !dbg !21 + store %Uint128 zeroinitializer, %Uint128* %"$remote_reads_test_res_1_1_14", align 8, !dbg !51 %"$execptr_load_401" = load i8*, i8** @_execptr, align 8 %"$$remote_reads_test_res_1_1_14_403" = load %Uint128, %Uint128* %"$remote_reads_test_res_1_1_14", align 8 %"$update_value_404" = alloca %Uint128, align 8 store %Uint128 %"$$remote_reads_test_res_1_1_14_403", %Uint128* %"$update_value_404", align 8 %"$update_value_405" = bitcast %Uint128* %"$update_value_404" to i8* - call void @_update_field(i8* %"$execptr_load_401", i8* getelementptr inbounds ([26 x i8], [26 x i8]* @"$remote_reads_test_res_1_1_402", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Uint128_43", i32 0, i8* null, i8* %"$update_value_405"), !dbg !21 + call void @_update_field(i8* %"$execptr_load_401", i8* getelementptr inbounds ([26 x i8], [26 x i8]* @"$remote_reads_test_res_1_1_402", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Uint128_43", i32 0, i8* null, i8* %"$update_value_405"), !dbg !51 %"$remote_reads_test_res_2_1_15" = alloca %Uint128, align 8 + call void @llvm.dbg.declare(metadata %Uint128* %"$remote_reads_test_res_2_1_15", metadata !52, metadata !DIExpression()), !dbg !53 %"$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" @@ -690,14 +702,15 @@ entry: "$have_gas_409": ; preds = %"$out_of_gas_408", %"$have_gas_399" %"$consume_410" = sub i64 %"$gasrem_406", 1 store i64 %"$consume_410", i64* @_gasrem, align 8 - store %Uint128 zeroinitializer, %Uint128* %"$remote_reads_test_res_2_1_15", align 8, !dbg !22 + store %Uint128 zeroinitializer, %Uint128* %"$remote_reads_test_res_2_1_15", align 8, !dbg !54 %"$execptr_load_411" = load i8*, i8** @_execptr, align 8 %"$$remote_reads_test_res_2_1_15_413" = load %Uint128, %Uint128* %"$remote_reads_test_res_2_1_15", align 8 %"$update_value_414" = alloca %Uint128, align 8 store %Uint128 %"$$remote_reads_test_res_2_1_15_413", %Uint128* %"$update_value_414", align 8 %"$update_value_415" = bitcast %Uint128* %"$update_value_414" to i8* - call void @_update_field(i8* %"$execptr_load_411", i8* getelementptr inbounds ([26 x i8], [26 x i8]* @"$remote_reads_test_res_2_1_412", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Uint128_43", i32 0, i8* null, i8* %"$update_value_415"), !dbg !22 + call void @_update_field(i8* %"$execptr_load_411", i8* getelementptr inbounds ([26 x i8], [26 x i8]* @"$remote_reads_test_res_2_1_412", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Uint128_43", i32 0, i8* null, i8* %"$update_value_415"), !dbg !54 %"$remote_reads_test_res_3_1_16" = alloca %Uint128, align 8 + call void @llvm.dbg.declare(metadata %Uint128* %"$remote_reads_test_res_3_1_16", metadata !55, metadata !DIExpression()), !dbg !56 %"$gasrem_416" = load i64, i64* @_gasrem, align 8 %"$gascmp_417" = icmp ugt i64 1, %"$gasrem_416" br i1 %"$gascmp_417", label %"$out_of_gas_418", label %"$have_gas_419" @@ -709,14 +722,15 @@ entry: "$have_gas_419": ; preds = %"$out_of_gas_418", %"$have_gas_409" %"$consume_420" = sub i64 %"$gasrem_416", 1 store i64 %"$consume_420", i64* @_gasrem, align 8 - store %Uint128 zeroinitializer, %Uint128* %"$remote_reads_test_res_3_1_16", align 8, !dbg !23 + store %Uint128 zeroinitializer, %Uint128* %"$remote_reads_test_res_3_1_16", align 8, !dbg !57 %"$execptr_load_421" = load i8*, i8** @_execptr, align 8 %"$$remote_reads_test_res_3_1_16_423" = load %Uint128, %Uint128* %"$remote_reads_test_res_3_1_16", align 8 %"$update_value_424" = alloca %Uint128, align 8 store %Uint128 %"$$remote_reads_test_res_3_1_16_423", %Uint128* %"$update_value_424", align 8 %"$update_value_425" = bitcast %Uint128* %"$update_value_424" to i8* - call void @_update_field(i8* %"$execptr_load_421", i8* getelementptr inbounds ([26 x i8], [26 x i8]* @"$remote_reads_test_res_3_1_422", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Uint128_43", i32 0, i8* null, i8* %"$update_value_425"), !dbg !23 + call void @_update_field(i8* %"$execptr_load_421", i8* getelementptr inbounds ([26 x i8], [26 x i8]* @"$remote_reads_test_res_3_1_422", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Uint128_43", i32 0, i8* null, i8* %"$update_value_425"), !dbg !57 %"$remote_reads_test_res_3_3_17" = alloca %Uint32, align 8 + call void @llvm.dbg.declare(metadata %Uint32* %"$remote_reads_test_res_3_3_17", metadata !58, metadata !DIExpression()), !dbg !60 %"$gasrem_426" = load i64, i64* @_gasrem, align 8 %"$gascmp_427" = icmp ugt i64 1, %"$gasrem_426" br i1 %"$gascmp_427", label %"$out_of_gas_428", label %"$have_gas_429" @@ -728,14 +742,15 @@ entry: "$have_gas_429": ; preds = %"$out_of_gas_428", %"$have_gas_419" %"$consume_430" = sub i64 %"$gasrem_426", 1 store i64 %"$consume_430", i64* @_gasrem, align 8 - store %Uint32 zeroinitializer, %Uint32* %"$remote_reads_test_res_3_3_17", align 4, !dbg !24 + store %Uint32 zeroinitializer, %Uint32* %"$remote_reads_test_res_3_3_17", align 4, !dbg !61 %"$execptr_load_431" = load i8*, i8** @_execptr, align 8 %"$$remote_reads_test_res_3_3_17_433" = load %Uint32, %Uint32* %"$remote_reads_test_res_3_3_17", align 4 %"$update_value_434" = alloca %Uint32, align 8 store %Uint32 %"$$remote_reads_test_res_3_3_17_433", %Uint32* %"$update_value_434", align 4 %"$update_value_435" = bitcast %Uint32* %"$update_value_434" to i8* - call void @_update_field(i8* %"$execptr_load_431", i8* getelementptr inbounds ([26 x i8], [26 x i8]* @"$remote_reads_test_res_3_3_432", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Uint32_35", i32 0, i8* null, i8* %"$update_value_435"), !dbg !24 + call void @_update_field(i8* %"$execptr_load_431", i8* getelementptr inbounds ([26 x i8], [26 x i8]* @"$remote_reads_test_res_3_3_432", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Uint32_35", i32 0, i8* null, i8* %"$update_value_435"), !dbg !61 %"$remote_reads_test_res_3_4_18" = alloca [20 x i8], align 1 + call void @llvm.dbg.declare(metadata [20 x i8]* %"$remote_reads_test_res_3_4_18", metadata !62, metadata !DIExpression()), !dbg !63 %"$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" @@ -748,14 +763,15 @@ entry: %"$consume_440" = sub i64 %"$gasrem_436", 1 store i64 %"$consume_440", i64* @_gasrem, align 8 %"$cparam3_441" = load [20 x i8], [20 x i8]* @_cparam_cparam3, align 1 - store [20 x i8] %"$cparam3_441", [20 x i8]* %"$remote_reads_test_res_3_4_18", align 1, !dbg !25 + store [20 x i8] %"$cparam3_441", [20 x i8]* %"$remote_reads_test_res_3_4_18", align 1, !dbg !64 %"$execptr_load_442" = load i8*, i8** @_execptr, align 8 %"$$remote_reads_test_res_3_4_18_444" = load [20 x i8], [20 x i8]* %"$remote_reads_test_res_3_4_18", align 1 %"$update_value_445" = alloca [20 x i8], align 1 store [20 x i8] %"$$remote_reads_test_res_3_4_18_444", [20 x i8]* %"$update_value_445", align 1 %"$update_value_446" = bitcast [20 x i8]* %"$update_value_445" to i8* - call void @_update_field(i8* %"$execptr_load_442", i8* getelementptr inbounds ([26 x i8], [26 x i8]* @"$remote_reads_test_res_3_4_443", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Addr_100", i32 0, i8* null, i8* %"$update_value_446"), !dbg !25 + call void @_update_field(i8* %"$execptr_load_442", i8* getelementptr inbounds ([26 x i8], [26 x i8]* @"$remote_reads_test_res_3_4_443", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Addr_100", i32 0, i8* null, i8* %"$update_value_446"), !dbg !64 %"$remote_reads_test_res_3_5_19" = alloca %Uint128, align 8 + call void @llvm.dbg.declare(metadata %Uint128* %"$remote_reads_test_res_3_5_19", metadata !65, metadata !DIExpression()), !dbg !66 %"$gasrem_447" = load i64, i64* @_gasrem, align 8 %"$gascmp_448" = icmp ugt i64 1, %"$gasrem_447" br i1 %"$gascmp_448", label %"$out_of_gas_449", label %"$have_gas_450" @@ -767,14 +783,15 @@ entry: "$have_gas_450": ; preds = %"$out_of_gas_449", %"$have_gas_439" %"$consume_451" = sub i64 %"$gasrem_447", 1 store i64 %"$consume_451", i64* @_gasrem, align 8 - store %Uint128 zeroinitializer, %Uint128* %"$remote_reads_test_res_3_5_19", align 8, !dbg !26 + store %Uint128 zeroinitializer, %Uint128* %"$remote_reads_test_res_3_5_19", align 8, !dbg !67 %"$execptr_load_452" = load i8*, i8** @_execptr, align 8 %"$$remote_reads_test_res_3_5_19_454" = load %Uint128, %Uint128* %"$remote_reads_test_res_3_5_19", align 8 %"$update_value_455" = alloca %Uint128, align 8 store %Uint128 %"$$remote_reads_test_res_3_5_19_454", %Uint128* %"$update_value_455", align 8 %"$update_value_456" = bitcast %Uint128* %"$update_value_455" to i8* - call void @_update_field(i8* %"$execptr_load_452", i8* getelementptr inbounds ([26 x i8], [26 x i8]* @"$remote_reads_test_res_3_5_453", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Uint128_43", i32 0, i8* null, i8* %"$update_value_456"), !dbg !26 + call void @_update_field(i8* %"$execptr_load_452", i8* getelementptr inbounds ([26 x i8], [26 x i8]* @"$remote_reads_test_res_3_5_453", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Uint128_43", i32 0, i8* null, i8* %"$update_value_456"), !dbg !67 %"$remote_reads_test_res_3_6_20" = alloca %Map_ByStr20_with_end_Bool*, align 8 + call void @llvm.dbg.declare(metadata %Map_ByStr20_with_end_Bool** %"$remote_reads_test_res_3_6_20", metadata !68, metadata !DIExpression()), !dbg !71 %"$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" @@ -789,12 +806,13 @@ entry: %"$execptr_load_462" = load i8*, i8** @_execptr, align 8 %"$_new_empty_map_call_463" = call i8* @_new_empty_map(i8* %"$execptr_load_462") %"$_new_empty_map_464" = bitcast i8* %"$_new_empty_map_call_463" to %Map_ByStr20_with_end_Bool* - store %Map_ByStr20_with_end_Bool* %"$_new_empty_map_464", %Map_ByStr20_with_end_Bool** %"$remote_reads_test_res_3_6_20", align 8, !dbg !27 + store %Map_ByStr20_with_end_Bool* %"$_new_empty_map_464", %Map_ByStr20_with_end_Bool** %"$remote_reads_test_res_3_6_20", align 8, !dbg !72 %"$execptr_load_465" = load i8*, i8** @_execptr, align 8 %"$$remote_reads_test_res_3_6_20_467" = load %Map_ByStr20_with_end_Bool*, %Map_ByStr20_with_end_Bool** %"$remote_reads_test_res_3_6_20", align 8 %"$update_value_468" = bitcast %Map_ByStr20_with_end_Bool* %"$$remote_reads_test_res_3_6_20_467" to i8* - call void @_update_field(i8* %"$execptr_load_465", i8* getelementptr inbounds ([26 x i8], [26 x i8]* @"$remote_reads_test_res_3_6_466", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_86", i32 0, i8* null, i8* %"$update_value_468"), !dbg !27 + call void @_update_field(i8* %"$execptr_load_465", i8* getelementptr inbounds ([26 x i8], [26 x i8]* @"$remote_reads_test_res_3_6_466", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_86", i32 0, i8* null, i8* %"$update_value_468"), !dbg !72 %"$remote_reads_test_res_3_7_21" = alloca %TName_Bool*, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$remote_reads_test_res_3_7_21", metadata !73, metadata !DIExpression()), !dbg !76 %"$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" @@ -812,12 +830,13 @@ entry: %"$adtgep_475" = getelementptr inbounds %CName_True, %CName_True* %"$adtval_474", i32 0, i32 0 store i8 0, i8* %"$adtgep_475", align 1 %"$adtptr_476" = bitcast %CName_True* %"$adtval_474" to %TName_Bool* - store %TName_Bool* %"$adtptr_476", %TName_Bool** %"$remote_reads_test_res_3_7_21", align 8, !dbg !28 + store %TName_Bool* %"$adtptr_476", %TName_Bool** %"$remote_reads_test_res_3_7_21", align 8, !dbg !77 %"$execptr_load_477" = load i8*, i8** @_execptr, align 8 %"$$remote_reads_test_res_3_7_21_479" = load %TName_Bool*, %TName_Bool** %"$remote_reads_test_res_3_7_21", align 8 %"$update_value_480" = bitcast %TName_Bool* %"$$remote_reads_test_res_3_7_21_479" to i8* - call void @_update_field(i8* %"$execptr_load_477", i8* getelementptr inbounds ([26 x i8], [26 x i8]* @"$remote_reads_test_res_3_7_478", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_78", i32 0, i8* null, i8* %"$update_value_480"), !dbg !28 + call void @_update_field(i8* %"$execptr_load_477", i8* getelementptr inbounds ([26 x i8], [26 x i8]* @"$remote_reads_test_res_3_7_478", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_78", i32 0, i8* null, i8* %"$update_value_480"), !dbg !77 %"$remote_reads_test_res_3_8_22" = alloca %TName_Option_Bool*, align 8 + call void @llvm.dbg.declare(metadata %TName_Option_Bool** %"$remote_reads_test_res_3_8_22", metadata !78, metadata !DIExpression()), !dbg !81 %"$gasrem_481" = load i64, i64* @_gasrem, align 8 %"$gascmp_482" = icmp ugt i64 1, %"$gasrem_481" br i1 %"$gascmp_482", label %"$out_of_gas_483", label %"$have_gas_484" @@ -830,6 +849,7 @@ entry: %"$consume_485" = sub i64 %"$gasrem_481", 1 store i64 %"$consume_485", i64* @_gasrem, align 8 %x = alloca %TName_Bool*, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %x, metadata !82, metadata !DIExpression()), !dbg !83 %"$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" @@ -847,7 +867,7 @@ entry: %"$adtgep_492" = getelementptr inbounds %CName_True, %CName_True* %"$adtval_491", i32 0, i32 0 store i8 0, i8* %"$adtgep_492", align 1 %"$adtptr_493" = bitcast %CName_True* %"$adtval_491" to %TName_Bool* - store %TName_Bool* %"$adtptr_493", %TName_Bool** %x, align 8, !dbg !29 + store %TName_Bool* %"$adtptr_493", %TName_Bool** %x, align 8, !dbg !84 %"$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" @@ -868,12 +888,13 @@ entry: %"$adtgep_502" = getelementptr inbounds %CName_Some_Bool, %CName_Some_Bool* %"$adtval_500", i32 0, i32 1 store %TName_Bool* %"$x_499", %TName_Bool** %"$adtgep_502", align 8 %"$adtptr_503" = bitcast %CName_Some_Bool* %"$adtval_500" to %TName_Option_Bool* - store %TName_Option_Bool* %"$adtptr_503", %TName_Option_Bool** %"$remote_reads_test_res_3_8_22", align 8, !dbg !30 + store %TName_Option_Bool* %"$adtptr_503", %TName_Option_Bool** %"$remote_reads_test_res_3_8_22", align 8, !dbg !85 %"$execptr_load_504" = load i8*, i8** @_execptr, align 8 %"$$remote_reads_test_res_3_8_22_506" = load %TName_Option_Bool*, %TName_Option_Bool** %"$remote_reads_test_res_3_8_22", align 8 %"$update_value_507" = bitcast %TName_Option_Bool* %"$$remote_reads_test_res_3_8_22_506" to i8* - call void @_update_field(i8* %"$execptr_load_504", i8* getelementptr inbounds ([26 x i8], [26 x i8]* @"$remote_reads_test_res_3_8_505", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_ADT_Option_Bool_76", i32 0, i8* null, i8* %"$update_value_507"), !dbg !29 + call void @_update_field(i8* %"$execptr_load_504", i8* getelementptr inbounds ([26 x i8], [26 x i8]* @"$remote_reads_test_res_3_8_505", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_ADT_Option_Bool_76", i32 0, i8* null, i8* %"$update_value_507"), !dbg !84 %"$remote_reads_test_res_3_9_23" = alloca %"Map_Uint32_Map_(ByStr20_with_end)_(Bool)"*, align 8 + call void @llvm.dbg.declare(metadata %"Map_Uint32_Map_(ByStr20_with_end)_(Bool)"** %"$remote_reads_test_res_3_9_23", metadata !86, metadata !DIExpression()), !dbg !89 %"$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" @@ -888,12 +909,13 @@ entry: %"$execptr_load_513" = load i8*, i8** @_execptr, align 8 %"$_new_empty_map_call_514" = call i8* @_new_empty_map(i8* %"$execptr_load_513") %"$_new_empty_map_515" = bitcast i8* %"$_new_empty_map_call_514" to %"Map_Uint32_Map_(ByStr20_with_end)_(Bool)"* - store %"Map_Uint32_Map_(ByStr20_with_end)_(Bool)"* %"$_new_empty_map_515", %"Map_Uint32_Map_(ByStr20_with_end)_(Bool)"** %"$remote_reads_test_res_3_9_23", align 8, !dbg !31 + store %"Map_Uint32_Map_(ByStr20_with_end)_(Bool)"* %"$_new_empty_map_515", %"Map_Uint32_Map_(ByStr20_with_end)_(Bool)"** %"$remote_reads_test_res_3_9_23", align 8, !dbg !90 %"$execptr_load_516" = load i8*, i8** @_execptr, align 8 %"$$remote_reads_test_res_3_9_23_518" = load %"Map_Uint32_Map_(ByStr20_with_end)_(Bool)"*, %"Map_Uint32_Map_(ByStr20_with_end)_(Bool)"** %"$remote_reads_test_res_3_9_23", align 8 %"$update_value_519" = bitcast %"Map_Uint32_Map_(ByStr20_with_end)_(Bool)"* %"$$remote_reads_test_res_3_9_23_518" to i8* - call void @_update_field(i8* %"$execptr_load_516", i8* getelementptr inbounds ([26 x i8], [26 x i8]* @"$remote_reads_test_res_3_9_517", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_85", i32 0, i8* null, i8* %"$update_value_519"), !dbg !31 + call void @_update_field(i8* %"$execptr_load_516", i8* getelementptr inbounds ([26 x i8], [26 x i8]* @"$remote_reads_test_res_3_9_517", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_85", i32 0, i8* null, i8* %"$update_value_519"), !dbg !90 %"$remote_reads_test_res_3_10_24" = alloca %TName_Bool*, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$remote_reads_test_res_3_10_24", metadata !91, metadata !DIExpression()), !dbg !92 %"$gasrem_520" = load i64, i64* @_gasrem, align 8 %"$gascmp_521" = icmp ugt i64 1, %"$gasrem_520" br i1 %"$gascmp_521", label %"$out_of_gas_522", label %"$have_gas_523" @@ -911,12 +933,13 @@ entry: %"$adtgep_526" = getelementptr inbounds %CName_False, %CName_False* %"$adtval_525", i32 0, i32 0 store i8 1, i8* %"$adtgep_526", align 1 %"$adtptr_527" = bitcast %CName_False* %"$adtval_525" to %TName_Bool* - store %TName_Bool* %"$adtptr_527", %TName_Bool** %"$remote_reads_test_res_3_10_24", align 8, !dbg !32 + store %TName_Bool* %"$adtptr_527", %TName_Bool** %"$remote_reads_test_res_3_10_24", align 8, !dbg !93 %"$execptr_load_528" = load i8*, i8** @_execptr, align 8 %"$$remote_reads_test_res_3_10_24_530" = load %TName_Bool*, %TName_Bool** %"$remote_reads_test_res_3_10_24", align 8 %"$update_value_531" = bitcast %TName_Bool* %"$$remote_reads_test_res_3_10_24_530" to i8* - call void @_update_field(i8* %"$execptr_load_528", i8* getelementptr inbounds ([27 x i8], [27 x i8]* @"$remote_reads_test_res_3_10_529", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_78", i32 0, i8* null, i8* %"$update_value_531"), !dbg !32 + call void @_update_field(i8* %"$execptr_load_528", i8* getelementptr inbounds ([27 x i8], [27 x i8]* @"$remote_reads_test_res_3_10_529", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_78", i32 0, i8* null, i8* %"$update_value_531"), !dbg !93 %"$remote_reads_test_res_3_11_25" = alloca %"TName_Option_Map_(ByStr20_with_end)_(Bool)"*, align 8 + call void @llvm.dbg.declare(metadata %"TName_Option_Map_(ByStr20_with_end)_(Bool)"** %"$remote_reads_test_res_3_11_25", metadata !94, metadata !DIExpression()), !dbg !97 %"$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" @@ -934,12 +957,13 @@ entry: %"$adtgep_538" = getelementptr inbounds %"CName_None_Map_(ByStr20_with_end)_(Bool)", %"CName_None_Map_(ByStr20_with_end)_(Bool)"* %"$adtval_537", i32 0, i32 0 store i8 1, i8* %"$adtgep_538", align 1 %"$adtptr_539" = bitcast %"CName_None_Map_(ByStr20_with_end)_(Bool)"* %"$adtval_537" to %"TName_Option_Map_(ByStr20_with_end)_(Bool)"* - store %"TName_Option_Map_(ByStr20_with_end)_(Bool)"* %"$adtptr_539", %"TName_Option_Map_(ByStr20_with_end)_(Bool)"** %"$remote_reads_test_res_3_11_25", align 8, !dbg !33 + store %"TName_Option_Map_(ByStr20_with_end)_(Bool)"* %"$adtptr_539", %"TName_Option_Map_(ByStr20_with_end)_(Bool)"** %"$remote_reads_test_res_3_11_25", align 8, !dbg !98 %"$execptr_load_540" = load i8*, i8** @_execptr, align 8 %"$$remote_reads_test_res_3_11_25_542" = load %"TName_Option_Map_(ByStr20_with_end)_(Bool)"*, %"TName_Option_Map_(ByStr20_with_end)_(Bool)"** %"$remote_reads_test_res_3_11_25", align 8 %"$update_value_543" = bitcast %"TName_Option_Map_(ByStr20_with_end)_(Bool)"* %"$$remote_reads_test_res_3_11_25_542" to i8* - call void @_update_field(i8* %"$execptr_load_540", i8* getelementptr inbounds ([27 x i8], [27 x i8]* @"$remote_reads_test_res_3_11_541", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_ADT_Option_Map_(ByStr20_with_end)_(Bool)_75", i32 0, i8* null, i8* %"$update_value_543"), !dbg !33 + call void @_update_field(i8* %"$execptr_load_540", i8* getelementptr inbounds ([27 x i8], [27 x i8]* @"$remote_reads_test_res_3_11_541", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_ADT_Option_Map_(ByStr20_with_end)_(Bool)_75", i32 0, i8* null, i8* %"$update_value_543"), !dbg !98 %"$remote_reads_test_res_3_12_26" = alloca %TName_Bool*, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$remote_reads_test_res_3_12_26", metadata !99, metadata !DIExpression()), !dbg !100 %"$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" @@ -957,12 +981,13 @@ entry: %"$adtgep_550" = getelementptr inbounds %CName_False, %CName_False* %"$adtval_549", i32 0, i32 0 store i8 1, i8* %"$adtgep_550", align 1 %"$adtptr_551" = bitcast %CName_False* %"$adtval_549" to %TName_Bool* - store %TName_Bool* %"$adtptr_551", %TName_Bool** %"$remote_reads_test_res_3_12_26", align 8, !dbg !34 + store %TName_Bool* %"$adtptr_551", %TName_Bool** %"$remote_reads_test_res_3_12_26", align 8, !dbg !101 %"$execptr_load_552" = load i8*, i8** @_execptr, align 8 %"$$remote_reads_test_res_3_12_26_554" = load %TName_Bool*, %TName_Bool** %"$remote_reads_test_res_3_12_26", align 8 %"$update_value_555" = bitcast %TName_Bool* %"$$remote_reads_test_res_3_12_26_554" to i8* - call void @_update_field(i8* %"$execptr_load_552", i8* getelementptr inbounds ([27 x i8], [27 x i8]* @"$remote_reads_test_res_3_12_553", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_78", i32 0, i8* null, i8* %"$update_value_555"), !dbg !34 + call void @_update_field(i8* %"$execptr_load_552", i8* getelementptr inbounds ([27 x i8], [27 x i8]* @"$remote_reads_test_res_3_12_553", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_78", i32 0, i8* null, i8* %"$update_value_555"), !dbg !101 %"$remote_reads_test_res_3_13_27" = alloca %TName_Option_Bool*, align 8 + call void @llvm.dbg.declare(metadata %TName_Option_Bool** %"$remote_reads_test_res_3_13_27", metadata !102, metadata !DIExpression()), !dbg !103 %"$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" @@ -980,12 +1005,13 @@ entry: %"$adtgep_562" = getelementptr inbounds %CName_None_Bool, %CName_None_Bool* %"$adtval_561", i32 0, i32 0 store i8 1, i8* %"$adtgep_562", align 1 %"$adtptr_563" = bitcast %CName_None_Bool* %"$adtval_561" to %TName_Option_Bool* - store %TName_Option_Bool* %"$adtptr_563", %TName_Option_Bool** %"$remote_reads_test_res_3_13_27", align 8, !dbg !35 + store %TName_Option_Bool* %"$adtptr_563", %TName_Option_Bool** %"$remote_reads_test_res_3_13_27", align 8, !dbg !104 %"$execptr_load_564" = load i8*, i8** @_execptr, align 8 %"$$remote_reads_test_res_3_13_27_566" = load %TName_Option_Bool*, %TName_Option_Bool** %"$remote_reads_test_res_3_13_27", align 8 %"$update_value_567" = bitcast %TName_Option_Bool* %"$$remote_reads_test_res_3_13_27_566" to i8* - call void @_update_field(i8* %"$execptr_load_564", i8* getelementptr inbounds ([27 x i8], [27 x i8]* @"$remote_reads_test_res_3_13_565", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_ADT_Option_Bool_76", i32 0, i8* null, i8* %"$update_value_567"), !dbg !35 + call void @_update_field(i8* %"$execptr_load_564", i8* getelementptr inbounds ([27 x i8], [27 x i8]* @"$remote_reads_test_res_3_13_565", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_ADT_Option_Bool_76", i32 0, i8* null, i8* %"$update_value_567"), !dbg !104 %"$sender_balance_pre_28" = alloca %Uint128, align 8 + call void @llvm.dbg.declare(metadata %Uint128* %"$sender_balance_pre_28", metadata !105, metadata !DIExpression()), !dbg !106 %"$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" @@ -997,14 +1023,15 @@ entry: "$have_gas_571": ; preds = %"$out_of_gas_570", %"$have_gas_559" %"$consume_572" = sub i64 %"$gasrem_568", 1 store i64 %"$consume_572", i64* @_gasrem, align 8 - store %Uint128 zeroinitializer, %Uint128* %"$sender_balance_pre_28", align 8, !dbg !36 + store %Uint128 zeroinitializer, %Uint128* %"$sender_balance_pre_28", align 8, !dbg !107 %"$execptr_load_573" = load i8*, i8** @_execptr, align 8 %"$$sender_balance_pre_28_575" = load %Uint128, %Uint128* %"$sender_balance_pre_28", align 8 %"$update_value_576" = alloca %Uint128, align 8 store %Uint128 %"$$sender_balance_pre_28_575", %Uint128* %"$update_value_576", align 8 %"$update_value_577" = bitcast %Uint128* %"$update_value_576" to i8* - call void @_update_field(i8* %"$execptr_load_573", i8* getelementptr inbounds ([19 x i8], [19 x i8]* @"$sender_balance_pre_574", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Uint128_43", i32 0, i8* null, i8* %"$update_value_577"), !dbg !36 + call void @_update_field(i8* %"$execptr_load_573", i8* getelementptr inbounds ([19 x i8], [19 x i8]* @"$sender_balance_pre_574", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Uint128_43", i32 0, i8* null, i8* %"$update_value_577"), !dbg !107 %"$sender_balance_mid_29" = alloca %Uint128, align 8 + call void @llvm.dbg.declare(metadata %Uint128* %"$sender_balance_mid_29", metadata !108, metadata !DIExpression()), !dbg !109 %"$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" @@ -1016,14 +1043,15 @@ entry: "$have_gas_581": ; preds = %"$out_of_gas_580", %"$have_gas_571" %"$consume_582" = sub i64 %"$gasrem_578", 1 store i64 %"$consume_582", i64* @_gasrem, align 8 - store %Uint128 zeroinitializer, %Uint128* %"$sender_balance_mid_29", align 8, !dbg !37 + store %Uint128 zeroinitializer, %Uint128* %"$sender_balance_mid_29", align 8, !dbg !110 %"$execptr_load_583" = load i8*, i8** @_execptr, align 8 %"$$sender_balance_mid_29_585" = load %Uint128, %Uint128* %"$sender_balance_mid_29", align 8 %"$update_value_586" = alloca %Uint128, align 8 store %Uint128 %"$$sender_balance_mid_29_585", %Uint128* %"$update_value_586", align 8 %"$update_value_587" = bitcast %Uint128* %"$update_value_586" to i8* - call void @_update_field(i8* %"$execptr_load_583", i8* getelementptr inbounds ([19 x i8], [19 x i8]* @"$sender_balance_mid_584", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Uint128_43", i32 0, i8* null, i8* %"$update_value_587"), !dbg !37 + call void @_update_field(i8* %"$execptr_load_583", i8* getelementptr inbounds ([19 x i8], [19 x i8]* @"$sender_balance_mid_584", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Uint128_43", i32 0, i8* null, i8* %"$update_value_587"), !dbg !110 %"$sender_balance_post_30" = alloca %Uint128, align 8 + call void @llvm.dbg.declare(metadata %Uint128* %"$sender_balance_post_30", metadata !111, metadata !DIExpression()), !dbg !112 %"$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" @@ -1035,34 +1063,56 @@ entry: "$have_gas_591": ; preds = %"$out_of_gas_590", %"$have_gas_581" %"$consume_592" = sub i64 %"$gasrem_588", 1 store i64 %"$consume_592", i64* @_gasrem, align 8 - store %Uint128 zeroinitializer, %Uint128* %"$sender_balance_post_30", align 8, !dbg !38 + store %Uint128 zeroinitializer, %Uint128* %"$sender_balance_post_30", align 8, !dbg !113 %"$execptr_load_593" = load i8*, i8** @_execptr, align 8 %"$$sender_balance_post_30_595" = load %Uint128, %Uint128* %"$sender_balance_post_30", align 8 %"$update_value_596" = alloca %Uint128, align 8 store %Uint128 %"$$sender_balance_post_30_595", %Uint128* %"$update_value_596", align 8 %"$update_value_597" = bitcast %Uint128* %"$update_value_596" to i8* - call void @_update_field(i8* %"$execptr_load_593", i8* getelementptr inbounds ([20 x i8], [20 x i8]* @"$sender_balance_post_594", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Uint128_43", i32 0, i8* null, i8* %"$update_value_597"), !dbg !38 + call void @_update_field(i8* %"$execptr_load_593", i8* getelementptr inbounds ([20 x i8], [20 x i8]* @"$sender_balance_post_594", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Uint128_43", i32 0, i8* null, i8* %"$update_value_597"), !dbg !113 ret void } +; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn +declare void @llvm.dbg.declare(metadata, metadata, metadata) #0 + declare void @_update_field(i8*, i8*, %_TyDescrTy_Typ*, i32, i8*, i8*) declare i8* @_salloc(i8*, i64) declare i8* @_new_empty_map(i8*) -define internal void @"$RemoteReadsTest_598"(%Uint128 %_amount, [20 x i8]* %"$_origin_599", [20 x i8]* %"$_sender_600", [20 x i8]* %"$remote1_601", [20 x i8]* %"$remote2_602", [20 x i8]* %"$remote3_603") !dbg !39 { +define internal void @"$RemoteReadsTest_598"(%Uint128 %_amount, [20 x i8]* %"$_origin_599", [20 x i8]* %"$_sender_600", [20 x i8]* %"$remote1_601", [20 x i8]* %"$remote2_602", [20 x i8]* %"$remote3_603") !dbg !114 { entry: + %"$remote3_1041" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$remote3_603", [20 x i8]** %"$remote3_1041", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$remote3_1041", metadata !115, metadata !DIExpression()), !dbg !117 + %"$remote2_1040" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$remote2_602", [20 x i8]** %"$remote2_1040", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$remote2_1040", metadata !118, metadata !DIExpression()), !dbg !120 + %"$remote1_1039" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$remote1_601", [20 x i8]** %"$remote1_1039", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$remote1_1039", metadata !121, metadata !DIExpression()), !dbg !123 + %"$_sender_1038" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_sender_600", [20 x i8]** %"$_sender_1038", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_sender_1038", metadata !124, metadata !DIExpression()), !dbg !125 + %"$_origin_1037" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_origin_599", [20 x i8]** %"$_origin_1037", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_origin_1037", metadata !126, metadata !DIExpression()), !dbg !125 + %"$_amount_1036" = alloca %Uint128, align 8 + store %Uint128 %_amount, %Uint128* %"$_amount_1036", align 8 + call void @llvm.dbg.declare(metadata %Uint128* %"$_amount_1036", metadata !127, metadata !DIExpression()), !dbg !125 %_origin = load [20 x i8], [20 x i8]* %"$_origin_599", align 1 %_sender = load [20 x i8], [20 x i8]* %"$_sender_600", align 1 %remote1 = load [20 x i8], [20 x i8]* %"$remote1_601", align 1 %remote2 = load [20 x i8], [20 x i8]* %"$remote2_602", align 1 %remote3 = load [20 x i8], [20 x i8]* %"$remote3_603", align 1 %tmp_1_1 = alloca %Uint128, align 8 + call void @llvm.dbg.declare(metadata %Uint128* %tmp_1_1, metadata !128, metadata !DIExpression()), !dbg !129 %"$execptr_load_605" = load i8*, i8** @_execptr, align 8 %"$tmp_1_1_remote1_606" = alloca [20 x i8], align 1 store [20 x i8] %remote1, [20 x i8]* %"$tmp_1_1_remote1_606", align 1 - %"$tmp_1_1_call_607" = call i8* @_fetch_remote_field(i8* %"$execptr_load_605", [20 x i8]* %"$tmp_1_1_remote1_606", i8* getelementptr inbounds ([9 x i8], [9 x i8]* @"$_balance_604", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Uint128_43", i32 0, i8* null, i32 1), !dbg !40 + %"$tmp_1_1_call_607" = call i8* @_fetch_remote_field(i8* %"$execptr_load_605", [20 x i8]* %"$tmp_1_1_remote1_606", i8* getelementptr inbounds ([9 x i8], [9 x i8]* @"$_balance_604", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Uint128_43", i32 0, i8* null, i32 1), !dbg !129 %"$tmp_1_1_608" = bitcast i8* %"$tmp_1_1_call_607" to %Uint128* %"$tmp_1_1_609" = load %Uint128, %Uint128* %"$tmp_1_1_608", align 8 store %Uint128 %"$tmp_1_1_609", %Uint128* %tmp_1_1, align 8 @@ -1104,12 +1154,13 @@ entry: %"$update_value_632" = alloca %Uint128, align 8 store %Uint128 %"$tmp_1_1_631", %Uint128* %"$update_value_632", align 8 %"$update_value_633" = bitcast %Uint128* %"$update_value_632" to i8* - call void @_update_field(i8* %"$execptr_load_629", i8* getelementptr inbounds ([26 x i8], [26 x i8]* @"$remote_reads_test_res_1_1_630", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Uint128_43", i32 0, i8* null, i8* %"$update_value_633"), !dbg !41 + call void @_update_field(i8* %"$execptr_load_629", i8* getelementptr inbounds ([26 x i8], [26 x i8]* @"$remote_reads_test_res_1_1_630", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Uint128_43", i32 0, i8* null, i8* %"$update_value_633"), !dbg !130 %tmp_2_1 = alloca %Uint128, align 8 + call void @llvm.dbg.declare(metadata %Uint128* %tmp_2_1, metadata !131, metadata !DIExpression()), !dbg !132 %"$execptr_load_635" = load i8*, i8** @_execptr, align 8 %"$tmp_2_1_remote2_636" = alloca [20 x i8], align 1 store [20 x i8] %remote2, [20 x i8]* %"$tmp_2_1_remote2_636", align 1 - %"$tmp_2_1_call_637" = call i8* @_fetch_remote_field(i8* %"$execptr_load_635", [20 x i8]* %"$tmp_2_1_remote2_636", i8* getelementptr inbounds ([9 x i8], [9 x i8]* @"$_balance_634", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Uint128_43", i32 0, i8* null, i32 1), !dbg !42 + %"$tmp_2_1_call_637" = call i8* @_fetch_remote_field(i8* %"$execptr_load_635", [20 x i8]* %"$tmp_2_1_remote2_636", i8* getelementptr inbounds ([9 x i8], [9 x i8]* @"$_balance_634", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Uint128_43", i32 0, i8* null, i32 1), !dbg !132 %"$tmp_2_1_638" = bitcast i8* %"$tmp_2_1_call_637" to %Uint128* %"$tmp_2_1_639" = load %Uint128, %Uint128* %"$tmp_2_1_638", align 8 store %Uint128 %"$tmp_2_1_639", %Uint128* %tmp_2_1, align 8 @@ -1151,12 +1202,13 @@ entry: %"$update_value_662" = alloca %Uint128, align 8 store %Uint128 %"$tmp_2_1_661", %Uint128* %"$update_value_662", align 8 %"$update_value_663" = bitcast %Uint128* %"$update_value_662" to i8* - call void @_update_field(i8* %"$execptr_load_659", i8* getelementptr inbounds ([26 x i8], [26 x i8]* @"$remote_reads_test_res_2_1_660", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Uint128_43", i32 0, i8* null, i8* %"$update_value_663"), !dbg !43 + call void @_update_field(i8* %"$execptr_load_659", i8* getelementptr inbounds ([26 x i8], [26 x i8]* @"$remote_reads_test_res_2_1_660", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Uint128_43", i32 0, i8* null, i8* %"$update_value_663"), !dbg !133 %tmp_3_1 = alloca %Uint128, align 8 + call void @llvm.dbg.declare(metadata %Uint128* %tmp_3_1, metadata !134, metadata !DIExpression()), !dbg !135 %"$execptr_load_665" = load i8*, i8** @_execptr, align 8 %"$tmp_3_1_remote3_666" = alloca [20 x i8], align 1 store [20 x i8] %remote3, [20 x i8]* %"$tmp_3_1_remote3_666", align 1 - %"$tmp_3_1_call_667" = call i8* @_fetch_remote_field(i8* %"$execptr_load_665", [20 x i8]* %"$tmp_3_1_remote3_666", i8* getelementptr inbounds ([9 x i8], [9 x i8]* @"$_balance_664", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Uint128_43", i32 0, i8* null, i32 1), !dbg !44 + %"$tmp_3_1_call_667" = call i8* @_fetch_remote_field(i8* %"$execptr_load_665", [20 x i8]* %"$tmp_3_1_remote3_666", i8* getelementptr inbounds ([9 x i8], [9 x i8]* @"$_balance_664", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Uint128_43", i32 0, i8* null, i32 1), !dbg !135 %"$tmp_3_1_668" = bitcast i8* %"$tmp_3_1_call_667" to %Uint128* %"$tmp_3_1_669" = load %Uint128, %Uint128* %"$tmp_3_1_668", align 8 store %Uint128 %"$tmp_3_1_669", %Uint128* %tmp_3_1, align 8 @@ -1198,12 +1250,13 @@ entry: %"$update_value_692" = alloca %Uint128, align 8 store %Uint128 %"$tmp_3_1_691", %Uint128* %"$update_value_692", align 8 %"$update_value_693" = bitcast %Uint128* %"$update_value_692" to i8* - call void @_update_field(i8* %"$execptr_load_689", i8* getelementptr inbounds ([26 x i8], [26 x i8]* @"$remote_reads_test_res_3_1_690", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Uint128_43", i32 0, i8* null, i8* %"$update_value_693"), !dbg !45 + call void @_update_field(i8* %"$execptr_load_689", i8* getelementptr inbounds ([26 x i8], [26 x i8]* @"$remote_reads_test_res_3_1_690", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Uint128_43", i32 0, i8* null, i8* %"$update_value_693"), !dbg !136 %tmp_3_3 = alloca %Uint32, align 8 + call void @llvm.dbg.declare(metadata %Uint32* %tmp_3_3, metadata !137, metadata !DIExpression()), !dbg !138 %"$execptr_load_695" = load i8*, i8** @_execptr, align 8 %"$tmp_3_3_remote3_696" = alloca [20 x i8], align 1 store [20 x i8] %remote3, [20 x i8]* %"$tmp_3_3_remote3_696", align 1 - %"$tmp_3_3_call_697" = call i8* @_fetch_remote_field(i8* %"$execptr_load_695", [20 x i8]* %"$tmp_3_3_remote3_696", i8* getelementptr inbounds ([17 x i8], [17 x i8]* @"$transactionCount_694", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Uint32_35", i32 0, i8* null, i32 1), !dbg !46 + %"$tmp_3_3_call_697" = call i8* @_fetch_remote_field(i8* %"$execptr_load_695", [20 x i8]* %"$tmp_3_3_remote3_696", i8* getelementptr inbounds ([17 x i8], [17 x i8]* @"$transactionCount_694", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Uint32_35", i32 0, i8* null, i32 1), !dbg !138 %"$tmp_3_3_698" = bitcast i8* %"$tmp_3_3_call_697" to %Uint32* %"$tmp_3_3_699" = load %Uint32, %Uint32* %"$tmp_3_3_698", align 4 store %Uint32 %"$tmp_3_3_699", %Uint32* %tmp_3_3, align 4 @@ -1245,12 +1298,13 @@ entry: %"$update_value_722" = alloca %Uint32, align 8 store %Uint32 %"$tmp_3_3_721", %Uint32* %"$update_value_722", align 4 %"$update_value_723" = bitcast %Uint32* %"$update_value_722" to i8* - call void @_update_field(i8* %"$execptr_load_719", i8* getelementptr inbounds ([26 x i8], [26 x i8]* @"$remote_reads_test_res_3_3_720", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Uint32_35", i32 0, i8* null, i8* %"$update_value_723"), !dbg !47 + call void @_update_field(i8* %"$execptr_load_719", i8* getelementptr inbounds ([26 x i8], [26 x i8]* @"$remote_reads_test_res_3_3_720", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Uint32_35", i32 0, i8* null, i8* %"$update_value_723"), !dbg !139 %tmp_3_4 = alloca [20 x i8], align 1 + call void @llvm.dbg.declare(metadata [20 x i8]* %tmp_3_4, metadata !140, metadata !DIExpression()), !dbg !141 %"$execptr_load_725" = load i8*, i8** @_execptr, align 8 %"$tmp_3_4_remote3_726" = alloca [20 x i8], align 1 store [20 x i8] %remote3, [20 x i8]* %"$tmp_3_4_remote3_726", align 1 - %"$tmp_3_4_call_727" = call i8* @_fetch_remote_field(i8* %"$execptr_load_725", [20 x i8]* %"$tmp_3_4_remote3_726", i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$admin_724", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Addr_102", i32 0, i8* null, i32 1), !dbg !48 + %"$tmp_3_4_call_727" = call i8* @_fetch_remote_field(i8* %"$execptr_load_725", [20 x i8]* %"$tmp_3_4_remote3_726", i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$admin_724", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Addr_102", i32 0, i8* null, i32 1), !dbg !141 %"$tmp_3_4_728" = bitcast i8* %"$tmp_3_4_call_727" to [20 x i8]* %"$tmp_3_4_729" = load [20 x i8], [20 x i8]* %"$tmp_3_4_728", align 1 store [20 x i8] %"$tmp_3_4_729", [20 x i8]* %tmp_3_4, align 1 @@ -1292,13 +1346,14 @@ entry: %"$update_value_752" = alloca [20 x i8], align 1 store [20 x i8] %"$tmp_3_4_751", [20 x i8]* %"$update_value_752", align 1 %"$update_value_753" = bitcast [20 x i8]* %"$update_value_752" to i8* - call void @_update_field(i8* %"$execptr_load_749", i8* getelementptr inbounds ([26 x i8], [26 x i8]* @"$remote_reads_test_res_3_4_750", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Addr_102", i32 0, i8* null, i8* %"$update_value_753"), !dbg !49 + call void @_update_field(i8* %"$execptr_load_749", i8* getelementptr inbounds ([26 x i8], [26 x i8]* @"$remote_reads_test_res_3_4_750", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Addr_102", i32 0, i8* null, i8* %"$update_value_753"), !dbg !142 %tmp_3_5 = alloca %Uint128, align 8 + call void @llvm.dbg.declare(metadata %Uint128* %tmp_3_5, metadata !143, metadata !DIExpression()), !dbg !144 %"$execptr_load_755" = load i8*, i8** @_execptr, align 8 %"$tmp_3_5_tmp_3_4_756" = alloca [20 x i8], align 1 %"$tmp_3_4_757" = load [20 x i8], [20 x i8]* %tmp_3_4, align 1 store [20 x i8] %"$tmp_3_4_757", [20 x i8]* %"$tmp_3_5_tmp_3_4_756", align 1 - %"$tmp_3_5_call_758" = call i8* @_fetch_remote_field(i8* %"$execptr_load_755", [20 x i8]* %"$tmp_3_5_tmp_3_4_756", i8* getelementptr inbounds ([9 x i8], [9 x i8]* @"$_balance_754", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Uint128_43", i32 0, i8* null, i32 1), !dbg !50 + %"$tmp_3_5_call_758" = call i8* @_fetch_remote_field(i8* %"$execptr_load_755", [20 x i8]* %"$tmp_3_5_tmp_3_4_756", i8* getelementptr inbounds ([9 x i8], [9 x i8]* @"$_balance_754", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Uint128_43", i32 0, i8* null, i32 1), !dbg !144 %"$tmp_3_5_759" = bitcast i8* %"$tmp_3_5_call_758" to %Uint128* %"$tmp_3_5_760" = load %Uint128, %Uint128* %"$tmp_3_5_759", align 8 store %Uint128 %"$tmp_3_5_760", %Uint128* %tmp_3_5, align 8 @@ -1340,12 +1395,13 @@ entry: %"$update_value_783" = alloca %Uint128, align 8 store %Uint128 %"$tmp_3_5_782", %Uint128* %"$update_value_783", align 8 %"$update_value_784" = bitcast %Uint128* %"$update_value_783" to i8* - call void @_update_field(i8* %"$execptr_load_780", i8* getelementptr inbounds ([26 x i8], [26 x i8]* @"$remote_reads_test_res_3_5_781", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Uint128_43", i32 0, i8* null, i8* %"$update_value_784"), !dbg !51 + call void @_update_field(i8* %"$execptr_load_780", i8* getelementptr inbounds ([26 x i8], [26 x i8]* @"$remote_reads_test_res_3_5_781", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Uint128_43", i32 0, i8* null, i8* %"$update_value_784"), !dbg !145 %tmp_3_6 = alloca %Map_ByStr20_with_end_Bool*, align 8 + call void @llvm.dbg.declare(metadata %Map_ByStr20_with_end_Bool** %tmp_3_6, metadata !146, metadata !DIExpression()), !dbg !147 %"$execptr_load_786" = load i8*, i8** @_execptr, align 8 %"$tmp_3_6_remote3_787" = alloca [20 x i8], align 1 store [20 x i8] %remote3, [20 x i8]* %"$tmp_3_6_remote3_787", align 1 - %"$tmp_3_6_call_788" = call i8* @_fetch_remote_field(i8* %"$execptr_load_786", [20 x i8]* %"$tmp_3_6_remote3_787", i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$owners_785", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_86", i32 0, i8* null, i32 1), !dbg !52 + %"$tmp_3_6_call_788" = call i8* @_fetch_remote_field(i8* %"$execptr_load_786", [20 x i8]* %"$tmp_3_6_remote3_787", i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$owners_785", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_86", i32 0, i8* null, i32 1), !dbg !147 %"$tmp_3_6_789" = bitcast i8* %"$tmp_3_6_call_788" to %Map_ByStr20_with_end_Bool* store %Map_ByStr20_with_end_Bool* %"$tmp_3_6_789", %Map_ByStr20_with_end_Bool** %tmp_3_6, align 8 %"$tmp_3_6_790" = load %Map_ByStr20_with_end_Bool*, %Map_ByStr20_with_end_Bool** %tmp_3_6, align 8 @@ -1383,8 +1439,9 @@ entry: %"$execptr_load_810" = load i8*, i8** @_execptr, align 8 %"$tmp_3_6_812" = load %Map_ByStr20_with_end_Bool*, %Map_ByStr20_with_end_Bool** %tmp_3_6, align 8 %"$update_value_813" = bitcast %Map_ByStr20_with_end_Bool* %"$tmp_3_6_812" to i8* - call void @_update_field(i8* %"$execptr_load_810", i8* getelementptr inbounds ([26 x i8], [26 x i8]* @"$remote_reads_test_res_3_6_811", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_86", i32 0, i8* null, i8* %"$update_value_813"), !dbg !53 + call void @_update_field(i8* %"$execptr_load_810", i8* getelementptr inbounds ([26 x i8], [26 x i8]* @"$remote_reads_test_res_3_6_811", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_86", i32 0, i8* null, i8* %"$update_value_813"), !dbg !148 %tmp_3_7 = alloca %TName_Bool*, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %tmp_3_7, metadata !149, metadata !DIExpression()), !dbg !150 %"$indices_buf_814_salloc_load" = load i8*, i8** @_execptr, align 8 %"$indices_buf_814_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_814_salloc_load", i64 20) %"$indices_buf_814_salloc" = bitcast i8* %"$indices_buf_814_salloc_salloc" to [20 x i8]* @@ -1395,7 +1452,7 @@ entry: %"$execptr_load_817" = load i8*, i8** @_execptr, align 8 %"$tmp_3_7_remote3_818" = alloca [20 x i8], align 1 store [20 x i8] %remote3, [20 x i8]* %"$tmp_3_7_remote3_818", align 1 - %"$tmp_3_7_call_819" = call i8* @_fetch_remote_field(i8* %"$execptr_load_817", [20 x i8]* %"$tmp_3_7_remote3_818", i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$owners_816", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_86", i32 1, i8* %"$indices_buf_814", i32 0), !dbg !54 + %"$tmp_3_7_call_819" = call i8* @_fetch_remote_field(i8* %"$execptr_load_817", [20 x i8]* %"$tmp_3_7_remote3_818", i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$owners_816", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_86", i32 1, i8* %"$indices_buf_814", i32 0), !dbg !150 %"$tmp_3_7_820" = bitcast i8* %"$tmp_3_7_call_819" to %TName_Bool* store %TName_Bool* %"$tmp_3_7_820", %TName_Bool** %tmp_3_7, align 8 %"$tmp_3_7_821" = load %TName_Bool*, %TName_Bool** %tmp_3_7, align 8 @@ -1431,8 +1488,9 @@ entry: %"$execptr_load_839" = load i8*, i8** @_execptr, align 8 %"$tmp_3_7_841" = load %TName_Bool*, %TName_Bool** %tmp_3_7, align 8 %"$update_value_842" = bitcast %TName_Bool* %"$tmp_3_7_841" to i8* - call void @_update_field(i8* %"$execptr_load_839", i8* getelementptr inbounds ([26 x i8], [26 x i8]* @"$remote_reads_test_res_3_7_840", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_78", i32 0, i8* null, i8* %"$update_value_842"), !dbg !55 + call void @_update_field(i8* %"$execptr_load_839", i8* getelementptr inbounds ([26 x i8], [26 x i8]* @"$remote_reads_test_res_3_7_840", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_78", i32 0, i8* null, i8* %"$update_value_842"), !dbg !151 %tmp_3_8 = alloca %TName_Option_Bool*, align 8 + call void @llvm.dbg.declare(metadata %TName_Option_Bool** %tmp_3_8, metadata !152, metadata !DIExpression()), !dbg !153 %"$indices_buf_843_salloc_load" = load i8*, i8** @_execptr, align 8 %"$indices_buf_843_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_843_salloc_load", i64 20) %"$indices_buf_843_salloc" = bitcast i8* %"$indices_buf_843_salloc_salloc" to [20 x i8]* @@ -1443,7 +1501,7 @@ entry: %"$execptr_load_846" = load i8*, i8** @_execptr, align 8 %"$tmp_3_8_remote3_847" = alloca [20 x i8], align 1 store [20 x i8] %remote3, [20 x i8]* %"$tmp_3_8_remote3_847", align 1 - %"$tmp_3_8_call_848" = call i8* @_fetch_remote_field(i8* %"$execptr_load_846", [20 x i8]* %"$tmp_3_8_remote3_847", i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$owners_845", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_86", i32 1, i8* %"$indices_buf_843", i32 1), !dbg !56 + %"$tmp_3_8_call_848" = call i8* @_fetch_remote_field(i8* %"$execptr_load_846", [20 x i8]* %"$tmp_3_8_remote3_847", i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$owners_845", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_86", i32 1, i8* %"$indices_buf_843", i32 1), !dbg !153 %"$tmp_3_8_849" = bitcast i8* %"$tmp_3_8_call_848" to %TName_Option_Bool* store %TName_Option_Bool* %"$tmp_3_8_849", %TName_Option_Bool** %tmp_3_8, align 8 %"$tmp_3_8_850" = load %TName_Option_Bool*, %TName_Option_Bool** %tmp_3_8, align 8 @@ -1479,12 +1537,13 @@ entry: %"$execptr_load_868" = load i8*, i8** @_execptr, align 8 %"$tmp_3_8_870" = load %TName_Option_Bool*, %TName_Option_Bool** %tmp_3_8, align 8 %"$update_value_871" = bitcast %TName_Option_Bool* %"$tmp_3_8_870" to i8* - call void @_update_field(i8* %"$execptr_load_868", i8* getelementptr inbounds ([26 x i8], [26 x i8]* @"$remote_reads_test_res_3_8_869", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_ADT_Option_Bool_76", i32 0, i8* null, i8* %"$update_value_871"), !dbg !57 + call void @_update_field(i8* %"$execptr_load_868", i8* getelementptr inbounds ([26 x i8], [26 x i8]* @"$remote_reads_test_res_3_8_869", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_ADT_Option_Bool_76", i32 0, i8* null, i8* %"$update_value_871"), !dbg !154 %tmp_3_9 = alloca %"Map_Uint32_Map_(ByStr20_with_end)_(Bool)"*, align 8 + call void @llvm.dbg.declare(metadata %"Map_Uint32_Map_(ByStr20_with_end)_(Bool)"** %tmp_3_9, metadata !155, metadata !DIExpression()), !dbg !156 %"$execptr_load_873" = load i8*, i8** @_execptr, align 8 %"$tmp_3_9_remote3_874" = alloca [20 x i8], align 1 store [20 x i8] %remote3, [20 x i8]* %"$tmp_3_9_remote3_874", align 1 - %"$tmp_3_9_call_875" = call i8* @_fetch_remote_field(i8* %"$execptr_load_873", [20 x i8]* %"$tmp_3_9_remote3_874", i8* getelementptr inbounds ([11 x i8], [11 x i8]* @"$signatures_872", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_85", i32 0, i8* null, i32 1), !dbg !58 + %"$tmp_3_9_call_875" = call i8* @_fetch_remote_field(i8* %"$execptr_load_873", [20 x i8]* %"$tmp_3_9_remote3_874", i8* getelementptr inbounds ([11 x i8], [11 x i8]* @"$signatures_872", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_85", i32 0, i8* null, i32 1), !dbg !156 %"$tmp_3_9_876" = bitcast i8* %"$tmp_3_9_call_875" to %"Map_Uint32_Map_(ByStr20_with_end)_(Bool)"* store %"Map_Uint32_Map_(ByStr20_with_end)_(Bool)"* %"$tmp_3_9_876", %"Map_Uint32_Map_(ByStr20_with_end)_(Bool)"** %tmp_3_9, align 8 %"$tmp_3_9_877" = load %"Map_Uint32_Map_(ByStr20_with_end)_(Bool)"*, %"Map_Uint32_Map_(ByStr20_with_end)_(Bool)"** %tmp_3_9, align 8 @@ -1522,7 +1581,7 @@ entry: %"$execptr_load_897" = load i8*, i8** @_execptr, align 8 %"$tmp_3_9_899" = load %"Map_Uint32_Map_(ByStr20_with_end)_(Bool)"*, %"Map_Uint32_Map_(ByStr20_with_end)_(Bool)"** %tmp_3_9, align 8 %"$update_value_900" = bitcast %"Map_Uint32_Map_(ByStr20_with_end)_(Bool)"* %"$tmp_3_9_899" to i8* - call void @_update_field(i8* %"$execptr_load_897", i8* getelementptr inbounds ([26 x i8], [26 x i8]* @"$remote_reads_test_res_3_9_898", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_85", i32 0, i8* null, i8* %"$update_value_900"), !dbg !59 + call void @_update_field(i8* %"$execptr_load_897", i8* getelementptr inbounds ([26 x i8], [26 x i8]* @"$remote_reads_test_res_3_9_898", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_85", i32 0, i8* null, i8* %"$update_value_900"), !dbg !157 %"$gasrem_901" = load i64, i64* @_gasrem, align 8 %"$gascmp_902" = icmp ugt i64 1, %"$gasrem_901" br i1 %"$gascmp_902", label %"$out_of_gas_903", label %"$have_gas_904" @@ -1535,6 +1594,7 @@ entry: %"$consume_905" = sub i64 %"$gasrem_901", 1 store i64 %"$consume_905", i64* @_gasrem, align 8 %"$x_1" = alloca %Uint32, align 8 + call void @llvm.dbg.declare(metadata %Uint32* %"$x_1", metadata !158, metadata !DIExpression()), !dbg !159 %"$gasrem_906" = load i64, i64* @_gasrem, align 8 %"$gascmp_907" = icmp ugt i64 1, %"$gasrem_906" br i1 %"$gascmp_907", label %"$out_of_gas_908", label %"$have_gas_909" @@ -1546,8 +1606,9 @@ entry: "$have_gas_909": ; preds = %"$out_of_gas_908", %"$have_gas_904" %"$consume_910" = sub i64 %"$gasrem_906", 1 store i64 %"$consume_910", i64* @_gasrem, align 8 - store %Uint32 zeroinitializer, %Uint32* %"$x_1", align 4, !dbg !60 + store %Uint32 zeroinitializer, %Uint32* %"$x_1", align 4, !dbg !160 %tmp_3_10 = alloca %TName_Bool*, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %tmp_3_10, metadata !161, metadata !DIExpression()), !dbg !162 %"$indices_buf_911_salloc_load" = load i8*, i8** @_execptr, align 8 %"$indices_buf_911_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_911_salloc_load", i64 4) %"$indices_buf_911_salloc" = bitcast i8* %"$indices_buf_911_salloc_salloc" to [4 x i8]* @@ -1559,7 +1620,7 @@ entry: %"$execptr_load_915" = load i8*, i8** @_execptr, align 8 %"$tmp_3_10_remote3_916" = alloca [20 x i8], align 1 store [20 x i8] %remote3, [20 x i8]* %"$tmp_3_10_remote3_916", align 1 - %"$tmp_3_10_call_917" = call i8* @_fetch_remote_field(i8* %"$execptr_load_915", [20 x i8]* %"$tmp_3_10_remote3_916", i8* getelementptr inbounds ([11 x i8], [11 x i8]* @"$signatures_914", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_85", i32 1, i8* %"$indices_buf_911", i32 0), !dbg !61 + %"$tmp_3_10_call_917" = call i8* @_fetch_remote_field(i8* %"$execptr_load_915", [20 x i8]* %"$tmp_3_10_remote3_916", i8* getelementptr inbounds ([11 x i8], [11 x i8]* @"$signatures_914", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_85", i32 1, i8* %"$indices_buf_911", i32 0), !dbg !162 %"$tmp_3_10_918" = bitcast i8* %"$tmp_3_10_call_917" to %TName_Bool* store %TName_Bool* %"$tmp_3_10_918", %TName_Bool** %tmp_3_10, align 8 %"$tmp_3_10_919" = load %TName_Bool*, %TName_Bool** %tmp_3_10, align 8 @@ -1595,8 +1656,9 @@ entry: %"$execptr_load_937" = load i8*, i8** @_execptr, align 8 %"$tmp_3_10_939" = load %TName_Bool*, %TName_Bool** %tmp_3_10, align 8 %"$update_value_940" = bitcast %TName_Bool* %"$tmp_3_10_939" to i8* - call void @_update_field(i8* %"$execptr_load_937", i8* getelementptr inbounds ([27 x i8], [27 x i8]* @"$remote_reads_test_res_3_10_938", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_78", i32 0, i8* null, i8* %"$update_value_940"), !dbg !62 + call void @_update_field(i8* %"$execptr_load_937", i8* getelementptr inbounds ([27 x i8], [27 x i8]* @"$remote_reads_test_res_3_10_938", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_78", i32 0, i8* null, i8* %"$update_value_940"), !dbg !163 %tmp_3_11 = alloca %"TName_Option_Map_(ByStr20_with_end)_(Bool)"*, align 8 + call void @llvm.dbg.declare(metadata %"TName_Option_Map_(ByStr20_with_end)_(Bool)"** %tmp_3_11, metadata !164, metadata !DIExpression()), !dbg !165 %"$indices_buf_941_salloc_load" = load i8*, i8** @_execptr, align 8 %"$indices_buf_941_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_941_salloc_load", i64 4) %"$indices_buf_941_salloc" = bitcast i8* %"$indices_buf_941_salloc_salloc" to [4 x i8]* @@ -1608,7 +1670,7 @@ entry: %"$execptr_load_945" = load i8*, i8** @_execptr, align 8 %"$tmp_3_11_remote3_946" = alloca [20 x i8], align 1 store [20 x i8] %remote3, [20 x i8]* %"$tmp_3_11_remote3_946", align 1 - %"$tmp_3_11_call_947" = call i8* @_fetch_remote_field(i8* %"$execptr_load_945", [20 x i8]* %"$tmp_3_11_remote3_946", i8* getelementptr inbounds ([11 x i8], [11 x i8]* @"$signatures_944", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_85", i32 1, i8* %"$indices_buf_941", i32 1), !dbg !63 + %"$tmp_3_11_call_947" = call i8* @_fetch_remote_field(i8* %"$execptr_load_945", [20 x i8]* %"$tmp_3_11_remote3_946", i8* getelementptr inbounds ([11 x i8], [11 x i8]* @"$signatures_944", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_85", i32 1, i8* %"$indices_buf_941", i32 1), !dbg !165 %"$tmp_3_11_948" = bitcast i8* %"$tmp_3_11_call_947" to %"TName_Option_Map_(ByStr20_with_end)_(Bool)"* store %"TName_Option_Map_(ByStr20_with_end)_(Bool)"* %"$tmp_3_11_948", %"TName_Option_Map_(ByStr20_with_end)_(Bool)"** %tmp_3_11, align 8 %"$tmp_3_11_949" = load %"TName_Option_Map_(ByStr20_with_end)_(Bool)"*, %"TName_Option_Map_(ByStr20_with_end)_(Bool)"** %tmp_3_11, align 8 @@ -1647,8 +1709,9 @@ entry: %"$execptr_load_970" = load i8*, i8** @_execptr, align 8 %"$tmp_3_11_972" = load %"TName_Option_Map_(ByStr20_with_end)_(Bool)"*, %"TName_Option_Map_(ByStr20_with_end)_(Bool)"** %tmp_3_11, align 8 %"$update_value_973" = bitcast %"TName_Option_Map_(ByStr20_with_end)_(Bool)"* %"$tmp_3_11_972" to i8* - call void @_update_field(i8* %"$execptr_load_970", i8* getelementptr inbounds ([27 x i8], [27 x i8]* @"$remote_reads_test_res_3_11_971", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_ADT_Option_Map_(ByStr20_with_end)_(Bool)_75", i32 0, i8* null, i8* %"$update_value_973"), !dbg !64 + call void @_update_field(i8* %"$execptr_load_970", i8* getelementptr inbounds ([27 x i8], [27 x i8]* @"$remote_reads_test_res_3_11_971", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_ADT_Option_Map_(ByStr20_with_end)_(Bool)_75", i32 0, i8* null, i8* %"$update_value_973"), !dbg !166 %tmp_3_12 = alloca %TName_Bool*, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %tmp_3_12, metadata !167, metadata !DIExpression()), !dbg !168 %"$indices_buf_974_salloc_load" = load i8*, i8** @_execptr, align 8 %"$indices_buf_974_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_974_salloc_load", i64 24) %"$indices_buf_974_salloc" = bitcast i8* %"$indices_buf_974_salloc_salloc" to [24 x i8]* @@ -1663,7 +1726,7 @@ entry: %"$execptr_load_979" = load i8*, i8** @_execptr, align 8 %"$tmp_3_12_remote3_980" = alloca [20 x i8], align 1 store [20 x i8] %remote3, [20 x i8]* %"$tmp_3_12_remote3_980", align 1 - %"$tmp_3_12_call_981" = call i8* @_fetch_remote_field(i8* %"$execptr_load_979", [20 x i8]* %"$tmp_3_12_remote3_980", i8* getelementptr inbounds ([11 x i8], [11 x i8]* @"$signatures_978", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_85", i32 2, i8* %"$indices_buf_974", i32 0), !dbg !65 + %"$tmp_3_12_call_981" = call i8* @_fetch_remote_field(i8* %"$execptr_load_979", [20 x i8]* %"$tmp_3_12_remote3_980", i8* getelementptr inbounds ([11 x i8], [11 x i8]* @"$signatures_978", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_85", i32 2, i8* %"$indices_buf_974", i32 0), !dbg !168 %"$tmp_3_12_982" = bitcast i8* %"$tmp_3_12_call_981" to %TName_Bool* store %TName_Bool* %"$tmp_3_12_982", %TName_Bool** %tmp_3_12, align 8 %"$tmp_3_12_983" = load %TName_Bool*, %TName_Bool** %tmp_3_12, align 8 @@ -1699,8 +1762,9 @@ entry: %"$execptr_load_1001" = load i8*, i8** @_execptr, align 8 %"$tmp_3_12_1003" = load %TName_Bool*, %TName_Bool** %tmp_3_12, align 8 %"$update_value_1004" = bitcast %TName_Bool* %"$tmp_3_12_1003" to i8* - call void @_update_field(i8* %"$execptr_load_1001", i8* getelementptr inbounds ([27 x i8], [27 x i8]* @"$remote_reads_test_res_3_12_1002", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_78", i32 0, i8* null, i8* %"$update_value_1004"), !dbg !66 + call void @_update_field(i8* %"$execptr_load_1001", i8* getelementptr inbounds ([27 x i8], [27 x i8]* @"$remote_reads_test_res_3_12_1002", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_78", i32 0, i8* null, i8* %"$update_value_1004"), !dbg !169 %tmp_3_13 = alloca %TName_Option_Bool*, align 8 + call void @llvm.dbg.declare(metadata %TName_Option_Bool** %tmp_3_13, metadata !170, metadata !DIExpression()), !dbg !171 %"$indices_buf_1005_salloc_load" = load i8*, i8** @_execptr, align 8 %"$indices_buf_1005_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_1005_salloc_load", i64 24) %"$indices_buf_1005_salloc" = bitcast i8* %"$indices_buf_1005_salloc_salloc" to [24 x i8]* @@ -1715,7 +1779,7 @@ entry: %"$execptr_load_1010" = load i8*, i8** @_execptr, align 8 %"$tmp_3_13_remote3_1011" = alloca [20 x i8], align 1 store [20 x i8] %remote3, [20 x i8]* %"$tmp_3_13_remote3_1011", align 1 - %"$tmp_3_13_call_1012" = call i8* @_fetch_remote_field(i8* %"$execptr_load_1010", [20 x i8]* %"$tmp_3_13_remote3_1011", i8* getelementptr inbounds ([11 x i8], [11 x i8]* @"$signatures_1009", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_85", i32 2, i8* %"$indices_buf_1005", i32 1), !dbg !67 + %"$tmp_3_13_call_1012" = call i8* @_fetch_remote_field(i8* %"$execptr_load_1010", [20 x i8]* %"$tmp_3_13_remote3_1011", i8* getelementptr inbounds ([11 x i8], [11 x i8]* @"$signatures_1009", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_85", i32 2, i8* %"$indices_buf_1005", i32 1), !dbg !171 %"$tmp_3_13_1013" = bitcast i8* %"$tmp_3_13_call_1012" to %TName_Option_Bool* store %TName_Option_Bool* %"$tmp_3_13_1013", %TName_Option_Bool** %tmp_3_13, align 8 %"$tmp_3_13_1014" = load %TName_Option_Bool*, %TName_Option_Bool** %tmp_3_13, align 8 @@ -1751,7 +1815,7 @@ entry: %"$execptr_load_1032" = load i8*, i8** @_execptr, align 8 %"$tmp_3_13_1034" = load %TName_Option_Bool*, %TName_Option_Bool** %tmp_3_13, align 8 %"$update_value_1035" = bitcast %TName_Option_Bool* %"$tmp_3_13_1034" to i8* - call void @_update_field(i8* %"$execptr_load_1032", i8* getelementptr inbounds ([27 x i8], [27 x i8]* @"$remote_reads_test_res_3_13_1033", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_ADT_Option_Bool_76", i32 0, i8* null, i8* %"$update_value_1035"), !dbg !68 + call void @_update_field(i8* %"$execptr_load_1032", i8* getelementptr inbounds ([27 x i8], [27 x i8]* @"$remote_reads_test_res_3_13_1033", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_ADT_Option_Bool_76", i32 0, i8* null, i8* %"$update_value_1035"), !dbg !172 ret void } @@ -1761,344 +1825,385 @@ declare i64 @_literal_cost(%_TyDescrTy_Typ*, i8*) declare i64 @_mapsortcost(%_TyDescrTy_Typ*, i8*) -define void @RemoteReadsTest(i8* %0) !dbg !69 { +define void @RemoteReadsTest(i8* %0) !dbg !173 { entry: - %"$_amount_1037" = getelementptr i8, i8* %0, i32 0 - %"$_amount_1038" = bitcast i8* %"$_amount_1037" to %Uint128* - %_amount = load %Uint128, %Uint128* %"$_amount_1038", align 8 - %"$_origin_1039" = getelementptr i8, i8* %0, i32 16 - %"$_origin_1040" = bitcast i8* %"$_origin_1039" to [20 x i8]* - %"$_sender_1041" = getelementptr i8, i8* %0, i32 36 - %"$_sender_1042" = bitcast i8* %"$_sender_1041" to [20 x i8]* - %"$remote1_1043" = getelementptr i8, i8* %0, i32 56 - %"$remote1_1044" = bitcast i8* %"$remote1_1043" to [20 x i8]* - %"$remote2_1045" = getelementptr i8, i8* %0, i32 76 - %"$remote2_1046" = bitcast i8* %"$remote2_1045" to [20 x i8]* - %"$remote3_1047" = getelementptr i8, i8* %0, i32 96 - %"$remote3_1048" = bitcast i8* %"$remote3_1047" to [20 x i8]* - call void @"$RemoteReadsTest_598"(%Uint128 %_amount, [20 x i8]* %"$_origin_1040", [20 x i8]* %"$_sender_1042", [20 x i8]* %"$remote1_1044", [20 x i8]* %"$remote2_1046", [20 x i8]* %"$remote3_1048"), !dbg !70 + %"$_amount_1043" = getelementptr i8, i8* %0, i32 0 + %"$_amount_1044" = bitcast i8* %"$_amount_1043" to %Uint128* + %_amount = load %Uint128, %Uint128* %"$_amount_1044", align 8 + %"$_origin_1045" = getelementptr i8, i8* %0, i32 16 + %"$_origin_1046" = bitcast i8* %"$_origin_1045" to [20 x i8]* + %"$_sender_1047" = getelementptr i8, i8* %0, i32 36 + %"$_sender_1048" = bitcast i8* %"$_sender_1047" to [20 x i8]* + %"$remote1_1049" = getelementptr i8, i8* %0, i32 56 + %"$remote1_1050" = bitcast i8* %"$remote1_1049" to [20 x i8]* + %"$remote2_1051" = getelementptr i8, i8* %0, i32 76 + %"$remote2_1052" = bitcast i8* %"$remote2_1051" to [20 x i8]* + %"$remote3_1053" = getelementptr i8, i8* %0, i32 96 + %"$remote3_1054" = bitcast i8* %"$remote3_1053" to [20 x i8]* + call void @"$RemoteReadsTest_598"(%Uint128 %_amount, [20 x i8]* %"$_origin_1046", [20 x i8]* %"$_sender_1048", [20 x i8]* %"$remote1_1050", [20 x i8]* %"$remote2_1052", [20 x i8]* %"$remote3_1054"), !dbg !174 ret void } -define internal void @"$RemoteReadsADTTest_1049"(%Uint128 %_amount, [20 x i8]* %"$_origin_1050", [20 x i8]* %"$_sender_1051", %TName_List_ByStr20_with_end* %list1, %"TName_List_ByStr20_with_contract_field_f_:_Uint128_end"* %list2, %"TName_List_ByStr20_with_contract_field_g_:_0x3620c286757a29985cee194eb90064270fb65414.AddressADT_end"* %list3, %TName_Pair_ByStr20_with_end_0x3620c286757a29985cee194eb90064270fb65414.AddressADT* %pair1, %TName_0x3620c286757a29985cee194eb90064270fb65414.AddressADT* %adt1, [20 x i8]* %"$remote1_1052") !dbg !71 { +define internal void @"$RemoteReadsADTTest_1055"(%Uint128 %_amount, [20 x i8]* %"$_origin_1056", [20 x i8]* %"$_sender_1057", %TName_List_ByStr20_with_end* %list1, %"TName_List_ByStr20_with_contract_field_f_:_Uint128_end"* %list2, %"TName_List_ByStr20_with_contract_field_g_:_0x3620c286757a29985cee194eb90064270fb65414.AddressADT_end"* %list3, %TName_Pair_ByStr20_with_end_0x3620c286757a29985cee194eb90064270fb65414.AddressADT* %pair1, %TName_0x3620c286757a29985cee194eb90064270fb65414.AddressADT* %adt1, [20 x i8]* %"$remote1_1058") !dbg !175 { entry: - %_origin = load [20 x i8], [20 x i8]* %"$_origin_1050", align 1 - %_sender = load [20 x i8], [20 x i8]* %"$_sender_1051", align 1 - %remote1 = load [20 x i8], [20 x i8]* %"$remote1_1052", align 1 + %"$remote1_1067" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$remote1_1058", [20 x i8]** %"$remote1_1067", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$remote1_1067", metadata !176, metadata !DIExpression()), !dbg !178 + %"$adt1_1066" = alloca %TName_0x3620c286757a29985cee194eb90064270fb65414.AddressADT*, align 8 + store %TName_0x3620c286757a29985cee194eb90064270fb65414.AddressADT* %adt1, %TName_0x3620c286757a29985cee194eb90064270fb65414.AddressADT** %"$adt1_1066", align 8 + call void @llvm.dbg.declare(metadata %TName_0x3620c286757a29985cee194eb90064270fb65414.AddressADT** %"$adt1_1066", metadata !179, metadata !DIExpression()), !dbg !180 + %"$pair1_1065" = alloca %TName_Pair_ByStr20_with_end_0x3620c286757a29985cee194eb90064270fb65414.AddressADT*, align 8 + store %TName_Pair_ByStr20_with_end_0x3620c286757a29985cee194eb90064270fb65414.AddressADT* %pair1, %TName_Pair_ByStr20_with_end_0x3620c286757a29985cee194eb90064270fb65414.AddressADT** %"$pair1_1065", align 8 + call void @llvm.dbg.declare(metadata %TName_Pair_ByStr20_with_end_0x3620c286757a29985cee194eb90064270fb65414.AddressADT** %"$pair1_1065", metadata !181, metadata !DIExpression()), !dbg !184 + %"$list3_1064" = alloca %"TName_List_ByStr20_with_contract_field_g_:_0x3620c286757a29985cee194eb90064270fb65414.AddressADT_end"*, align 8 + store %"TName_List_ByStr20_with_contract_field_g_:_0x3620c286757a29985cee194eb90064270fb65414.AddressADT_end"* %list3, %"TName_List_ByStr20_with_contract_field_g_:_0x3620c286757a29985cee194eb90064270fb65414.AddressADT_end"** %"$list3_1064", align 8 + call void @llvm.dbg.declare(metadata %"TName_List_ByStr20_with_contract_field_g_:_0x3620c286757a29985cee194eb90064270fb65414.AddressADT_end"** %"$list3_1064", metadata !185, metadata !DIExpression()), !dbg !188 + %"$list2_1063" = alloca %"TName_List_ByStr20_with_contract_field_f_:_Uint128_end"*, align 8 + store %"TName_List_ByStr20_with_contract_field_f_:_Uint128_end"* %list2, %"TName_List_ByStr20_with_contract_field_f_:_Uint128_end"** %"$list2_1063", align 8 + call void @llvm.dbg.declare(metadata %"TName_List_ByStr20_with_contract_field_f_:_Uint128_end"** %"$list2_1063", metadata !189, metadata !DIExpression()), !dbg !192 + %"$list1_1062" = alloca %TName_List_ByStr20_with_end*, align 8 + store %TName_List_ByStr20_with_end* %list1, %TName_List_ByStr20_with_end** %"$list1_1062", align 8 + call void @llvm.dbg.declare(metadata %TName_List_ByStr20_with_end** %"$list1_1062", metadata !193, metadata !DIExpression()), !dbg !196 + %"$_sender_1061" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_sender_1057", [20 x i8]** %"$_sender_1061", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_sender_1061", metadata !197, metadata !DIExpression()), !dbg !198 + %"$_origin_1060" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_origin_1056", [20 x i8]** %"$_origin_1060", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_origin_1060", metadata !199, metadata !DIExpression()), !dbg !198 + %"$_amount_1059" = alloca %Uint128, align 8 + store %Uint128 %_amount, %Uint128* %"$_amount_1059", align 8 + call void @llvm.dbg.declare(metadata %Uint128* %"$_amount_1059", metadata !200, metadata !DIExpression()), !dbg !198 + %_origin = load [20 x i8], [20 x i8]* %"$_origin_1056", align 1 + %_sender = load [20 x i8], [20 x i8]* %"$_sender_1057", align 1 + %remote1 = load [20 x i8], [20 x i8]* %"$remote1_1058", align 1 ret void } -define void @RemoteReadsADTTest(i8* %0) !dbg !72 { +define void @RemoteReadsADTTest(i8* %0) !dbg !201 { entry: - %"$_amount_1054" = getelementptr i8, i8* %0, i32 0 - %"$_amount_1055" = bitcast i8* %"$_amount_1054" to %Uint128* - %_amount = load %Uint128, %Uint128* %"$_amount_1055", align 8 - %"$_origin_1056" = getelementptr i8, i8* %0, i32 16 - %"$_origin_1057" = bitcast i8* %"$_origin_1056" to [20 x i8]* - %"$_sender_1058" = getelementptr i8, i8* %0, i32 36 - %"$_sender_1059" = bitcast i8* %"$_sender_1058" to [20 x i8]* - %"$list1_1060" = getelementptr i8, i8* %0, i32 56 - %"$list1_1061" = bitcast i8* %"$list1_1060" to %TName_List_ByStr20_with_end** - %list1 = load %TName_List_ByStr20_with_end*, %TName_List_ByStr20_with_end** %"$list1_1061", align 8 - %"$list2_1062" = getelementptr i8, i8* %0, i32 64 - %"$list2_1063" = bitcast i8* %"$list2_1062" to %"TName_List_ByStr20_with_contract_field_f_:_Uint128_end"** - %list2 = load %"TName_List_ByStr20_with_contract_field_f_:_Uint128_end"*, %"TName_List_ByStr20_with_contract_field_f_:_Uint128_end"** %"$list2_1063", align 8 - %"$list3_1064" = getelementptr i8, i8* %0, i32 72 - %"$list3_1065" = bitcast i8* %"$list3_1064" to %"TName_List_ByStr20_with_contract_field_g_:_0x3620c286757a29985cee194eb90064270fb65414.AddressADT_end"** - %list3 = load %"TName_List_ByStr20_with_contract_field_g_:_0x3620c286757a29985cee194eb90064270fb65414.AddressADT_end"*, %"TName_List_ByStr20_with_contract_field_g_:_0x3620c286757a29985cee194eb90064270fb65414.AddressADT_end"** %"$list3_1065", align 8 - %"$pair1_1066" = getelementptr i8, i8* %0, i32 80 - %"$pair1_1067" = bitcast i8* %"$pair1_1066" to %TName_Pair_ByStr20_with_end_0x3620c286757a29985cee194eb90064270fb65414.AddressADT** - %pair1 = load %TName_Pair_ByStr20_with_end_0x3620c286757a29985cee194eb90064270fb65414.AddressADT*, %TName_Pair_ByStr20_with_end_0x3620c286757a29985cee194eb90064270fb65414.AddressADT** %"$pair1_1067", align 8 - %"$adt1_1068" = getelementptr i8, i8* %0, i32 88 - %"$adt1_1069" = bitcast i8* %"$adt1_1068" to %TName_0x3620c286757a29985cee194eb90064270fb65414.AddressADT** - %adt1 = load %TName_0x3620c286757a29985cee194eb90064270fb65414.AddressADT*, %TName_0x3620c286757a29985cee194eb90064270fb65414.AddressADT** %"$adt1_1069", align 8 - %"$remote1_1070" = getelementptr i8, i8* %0, i32 96 - %"$remote1_1071" = bitcast i8* %"$remote1_1070" to [20 x i8]* - call void @"$RemoteReadsADTTest_1049"(%Uint128 %_amount, [20 x i8]* %"$_origin_1057", [20 x i8]* %"$_sender_1059", %TName_List_ByStr20_with_end* %list1, %"TName_List_ByStr20_with_contract_field_f_:_Uint128_end"* %list2, %"TName_List_ByStr20_with_contract_field_g_:_0x3620c286757a29985cee194eb90064270fb65414.AddressADT_end"* %list3, %TName_Pair_ByStr20_with_end_0x3620c286757a29985cee194eb90064270fb65414.AddressADT* %pair1, %TName_0x3620c286757a29985cee194eb90064270fb65414.AddressADT* %adt1, [20 x i8]* %"$remote1_1071"), !dbg !73 + %"$_amount_1069" = getelementptr i8, i8* %0, i32 0 + %"$_amount_1070" = bitcast i8* %"$_amount_1069" to %Uint128* + %_amount = load %Uint128, %Uint128* %"$_amount_1070", align 8 + %"$_origin_1071" = getelementptr i8, i8* %0, i32 16 + %"$_origin_1072" = bitcast i8* %"$_origin_1071" to [20 x i8]* + %"$_sender_1073" = getelementptr i8, i8* %0, i32 36 + %"$_sender_1074" = bitcast i8* %"$_sender_1073" to [20 x i8]* + %"$list1_1075" = getelementptr i8, i8* %0, i32 56 + %"$list1_1076" = bitcast i8* %"$list1_1075" to %TName_List_ByStr20_with_end** + %list1 = load %TName_List_ByStr20_with_end*, %TName_List_ByStr20_with_end** %"$list1_1076", align 8 + %"$list2_1077" = getelementptr i8, i8* %0, i32 64 + %"$list2_1078" = bitcast i8* %"$list2_1077" to %"TName_List_ByStr20_with_contract_field_f_:_Uint128_end"** + %list2 = load %"TName_List_ByStr20_with_contract_field_f_:_Uint128_end"*, %"TName_List_ByStr20_with_contract_field_f_:_Uint128_end"** %"$list2_1078", align 8 + %"$list3_1079" = getelementptr i8, i8* %0, i32 72 + %"$list3_1080" = bitcast i8* %"$list3_1079" to %"TName_List_ByStr20_with_contract_field_g_:_0x3620c286757a29985cee194eb90064270fb65414.AddressADT_end"** + %list3 = load %"TName_List_ByStr20_with_contract_field_g_:_0x3620c286757a29985cee194eb90064270fb65414.AddressADT_end"*, %"TName_List_ByStr20_with_contract_field_g_:_0x3620c286757a29985cee194eb90064270fb65414.AddressADT_end"** %"$list3_1080", align 8 + %"$pair1_1081" = getelementptr i8, i8* %0, i32 80 + %"$pair1_1082" = bitcast i8* %"$pair1_1081" to %TName_Pair_ByStr20_with_end_0x3620c286757a29985cee194eb90064270fb65414.AddressADT** + %pair1 = load %TName_Pair_ByStr20_with_end_0x3620c286757a29985cee194eb90064270fb65414.AddressADT*, %TName_Pair_ByStr20_with_end_0x3620c286757a29985cee194eb90064270fb65414.AddressADT** %"$pair1_1082", align 8 + %"$adt1_1083" = getelementptr i8, i8* %0, i32 88 + %"$adt1_1084" = bitcast i8* %"$adt1_1083" to %TName_0x3620c286757a29985cee194eb90064270fb65414.AddressADT** + %adt1 = load %TName_0x3620c286757a29985cee194eb90064270fb65414.AddressADT*, %TName_0x3620c286757a29985cee194eb90064270fb65414.AddressADT** %"$adt1_1084", align 8 + %"$remote1_1085" = getelementptr i8, i8* %0, i32 96 + %"$remote1_1086" = bitcast i8* %"$remote1_1085" to [20 x i8]* + call void @"$RemoteReadsADTTest_1055"(%Uint128 %_amount, [20 x i8]* %"$_origin_1072", [20 x i8]* %"$_sender_1074", %TName_List_ByStr20_with_end* %list1, %"TName_List_ByStr20_with_contract_field_f_:_Uint128_end"* %list2, %"TName_List_ByStr20_with_contract_field_g_:_0x3620c286757a29985cee194eb90064270fb65414.AddressADT_end"* %list3, %TName_Pair_ByStr20_with_end_0x3620c286757a29985cee194eb90064270fb65414.AddressADT* %pair1, %TName_0x3620c286757a29985cee194eb90064270fb65414.AddressADT* %adt1, [20 x i8]* %"$remote1_1086"), !dbg !202 ret void } -define internal void @"$OutgoingMsgTest_1072"(%Uint128 %_amount, [20 x i8]* %"$_origin_1073", [20 x i8]* %"$_sender_1074") !dbg !74 { +define internal void @"$OutgoingMsgTest_1087"(%Uint128 %_amount, [20 x i8]* %"$_origin_1088", [20 x i8]* %"$_sender_1089") !dbg !203 { entry: - %_origin = load [20 x i8], [20 x i8]* %"$_origin_1073", align 1 - %_sender = load [20 x i8], [20 x i8]* %"$_sender_1074", align 1 - %"$gasrem_1075" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1076" = icmp ugt i64 1, %"$gasrem_1075" - br i1 %"$gascmp_1076", label %"$out_of_gas_1077", label %"$have_gas_1078" - -"$out_of_gas_1077": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_1078" - -"$have_gas_1078": ; preds = %"$out_of_gas_1077", %entry - %"$consume_1079" = sub i64 %"$gasrem_1075", 1 - store i64 %"$consume_1079", i64* @_gasrem, align 8 + %"$_sender_1250" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_sender_1089", [20 x i8]** %"$_sender_1250", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_sender_1250", metadata !204, metadata !DIExpression()), !dbg !205 + %"$_origin_1249" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_origin_1088", [20 x i8]** %"$_origin_1249", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_origin_1249", metadata !206, metadata !DIExpression()), !dbg !205 + %"$_amount_1248" = alloca %Uint128, align 8 + store %Uint128 %_amount, %Uint128* %"$_amount_1248", align 8 + call void @llvm.dbg.declare(metadata %Uint128* %"$_amount_1248", metadata !207, metadata !DIExpression()), !dbg !205 + %_origin = load [20 x i8], [20 x i8]* %"$_origin_1088", align 1 + %_sender = load [20 x i8], [20 x i8]* %"$_sender_1089", align 1 + %"$gasrem_1090" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1091" = icmp ugt i64 1, %"$gasrem_1090" + br i1 %"$gascmp_1091", label %"$out_of_gas_1092", label %"$have_gas_1093" + +"$out_of_gas_1092": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_1093" + +"$have_gas_1093": ; preds = %"$out_of_gas_1092", %entry + %"$consume_1094" = sub i64 %"$gasrem_1090", 1 + store i64 %"$consume_1094", i64* @_gasrem, align 8 %msg = alloca i8*, align 8 - %"$gasrem_1080" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1081" = icmp ugt i64 1, %"$gasrem_1080" - br i1 %"$gascmp_1081", label %"$out_of_gas_1082", label %"$have_gas_1083" - -"$out_of_gas_1082": ; preds = %"$have_gas_1078" - call void @_out_of_gas() - br label %"$have_gas_1083" - -"$have_gas_1083": ; preds = %"$out_of_gas_1082", %"$have_gas_1078" - %"$consume_1084" = sub i64 %"$gasrem_1080", 1 - store i64 %"$consume_1084", i64* @_gasrem, align 8 - %"$msgobj_1085_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$msgobj_1085_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_1085_salloc_load", i64 169) - %"$msgobj_1085_salloc" = bitcast i8* %"$msgobj_1085_salloc_salloc" to [169 x i8]* - %"$msgobj_1085" = bitcast [169 x i8]* %"$msgobj_1085_salloc" to i8* - store i8 4, i8* %"$msgobj_1085", align 1 - %"$msgobj_fname_1087" = getelementptr i8, i8* %"$msgobj_1085", i32 1 - %"$msgobj_fname_1088" = bitcast i8* %"$msgobj_fname_1087" to %String* - store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_1086", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_1088", align 8 - %"$msgobj_td_1089" = getelementptr i8, i8* %"$msgobj_1085", i32 17 - %"$msgobj_td_1090" = bitcast i8* %"$msgobj_td_1089" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_String_49", %_TyDescrTy_Typ** %"$msgobj_td_1090", align 8 - %"$msgobj_v_1092" = getelementptr i8, i8* %"$msgobj_1085", i32 25 - %"$msgobj_v_1093" = bitcast i8* %"$msgobj_v_1092" to %String* - store %String { i8* getelementptr inbounds ([0 x i8], [0 x i8]* @"$stringlit_1091", i32 0, i32 0), i32 0 }, %String* %"$msgobj_v_1093", align 8 - %"$msgobj_fname_1095" = getelementptr i8, i8* %"$msgobj_1085", i32 41 - %"$msgobj_fname_1096" = bitcast i8* %"$msgobj_fname_1095" to %String* - store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_1094", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_1096", align 8 - %"$msgobj_td_1097" = getelementptr i8, i8* %"$msgobj_1085", i32 57 - %"$msgobj_td_1098" = bitcast i8* %"$msgobj_td_1097" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_63", %_TyDescrTy_Typ** %"$msgobj_td_1098", align 8 - %"$msgobj_v_1099" = getelementptr i8, i8* %"$msgobj_1085", i32 65 - %"$msgobj_v_1100" = bitcast i8* %"$msgobj_v_1099" to [20 x i8]* - store [20 x i8] %_sender, [20 x i8]* %"$msgobj_v_1100", align 1 - %"$msgobj_fname_1102" = getelementptr i8, i8* %"$msgobj_1085", i32 85 + call void @llvm.dbg.declare(metadata i8** %msg, metadata !208, metadata !DIExpression()), !dbg !211 + %"$gasrem_1095" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1096" = icmp ugt i64 1, %"$gasrem_1095" + br i1 %"$gascmp_1096", label %"$out_of_gas_1097", label %"$have_gas_1098" + +"$out_of_gas_1097": ; preds = %"$have_gas_1093" + call void @_out_of_gas() + br label %"$have_gas_1098" + +"$have_gas_1098": ; preds = %"$out_of_gas_1097", %"$have_gas_1093" + %"$consume_1099" = sub i64 %"$gasrem_1095", 1 + store i64 %"$consume_1099", i64* @_gasrem, align 8 + %"$msgobj_1100_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$msgobj_1100_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_1100_salloc_load", i64 169) + %"$msgobj_1100_salloc" = bitcast i8* %"$msgobj_1100_salloc_salloc" to [169 x i8]* + %"$msgobj_1100" = bitcast [169 x i8]* %"$msgobj_1100_salloc" to i8* + store i8 4, i8* %"$msgobj_1100", align 1 + %"$msgobj_fname_1102" = getelementptr i8, i8* %"$msgobj_1100", i32 1 %"$msgobj_fname_1103" = bitcast i8* %"$msgobj_fname_1102" to %String* - store %String { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$stringlit_1101", i32 0, i32 0), i32 7 }, %String* %"$msgobj_fname_1103", align 8 - %"$msgobj_td_1104" = getelementptr i8, i8* %"$msgobj_1085", i32 101 + store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_1101", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_1103", align 8 + %"$msgobj_td_1104" = getelementptr i8, i8* %"$msgobj_1100", i32 17 %"$msgobj_td_1105" = bitcast i8* %"$msgobj_td_1104" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Uint128_43", %_TyDescrTy_Typ** %"$msgobj_td_1105", align 8 - %"$msgobj_v_1106" = getelementptr i8, i8* %"$msgobj_1085", i32 109 - %"$msgobj_v_1107" = bitcast i8* %"$msgobj_v_1106" to %Uint128* - store %Uint128 zeroinitializer, %Uint128* %"$msgobj_v_1107", align 8 - %"$msgobj_fname_1109" = getelementptr i8, i8* %"$msgobj_1085", i32 125 - %"$msgobj_fname_1110" = bitcast i8* %"$msgobj_fname_1109" to %String* - store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_1108", i32 0, i32 0), i32 5 }, %String* %"$msgobj_fname_1110", align 8 - %"$msgobj_td_1111" = getelementptr i8, i8* %"$msgobj_1085", i32 141 - %"$msgobj_td_1112" = bitcast i8* %"$msgobj_td_1111" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_63", %_TyDescrTy_Typ** %"$msgobj_td_1112", align 8 - %"$cparam3_1113" = load [20 x i8], [20 x i8]* @_cparam_cparam3, align 1 - %"$msgobj_v_1114" = getelementptr i8, i8* %"$msgobj_1085", i32 149 + store %_TyDescrTy_Typ* @"$TyDescr_String_49", %_TyDescrTy_Typ** %"$msgobj_td_1105", align 8 + %"$msgobj_v_1107" = getelementptr i8, i8* %"$msgobj_1100", i32 25 + %"$msgobj_v_1108" = bitcast i8* %"$msgobj_v_1107" to %String* + store %String { i8* getelementptr inbounds ([0 x i8], [0 x i8]* @"$stringlit_1106", i32 0, i32 0), i32 0 }, %String* %"$msgobj_v_1108", align 8 + %"$msgobj_fname_1110" = getelementptr i8, i8* %"$msgobj_1100", i32 41 + %"$msgobj_fname_1111" = bitcast i8* %"$msgobj_fname_1110" to %String* + store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_1109", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_1111", align 8 + %"$msgobj_td_1112" = getelementptr i8, i8* %"$msgobj_1100", i32 57 + %"$msgobj_td_1113" = bitcast i8* %"$msgobj_td_1112" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_63", %_TyDescrTy_Typ** %"$msgobj_td_1113", align 8 + %"$msgobj_v_1114" = getelementptr i8, i8* %"$msgobj_1100", i32 65 %"$msgobj_v_1115" = bitcast i8* %"$msgobj_v_1114" to [20 x i8]* - store [20 x i8] %"$cparam3_1113", [20 x i8]* %"$msgobj_v_1115", align 1 - store i8* %"$msgobj_1085", i8** %msg, align 8, !dbg !75 - %"$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_1083" - call void @_out_of_gas() - br label %"$have_gas_1120" - -"$have_gas_1120": ; preds = %"$out_of_gas_1119", %"$have_gas_1083" - %"$consume_1121" = sub i64 %"$gasrem_1117", 1 - store i64 %"$consume_1121", i64* @_gasrem, align 8 + store [20 x i8] %_sender, [20 x i8]* %"$msgobj_v_1115", align 1 + %"$msgobj_fname_1117" = getelementptr i8, i8* %"$msgobj_1100", i32 85 + %"$msgobj_fname_1118" = bitcast i8* %"$msgobj_fname_1117" to %String* + store %String { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$stringlit_1116", i32 0, i32 0), i32 7 }, %String* %"$msgobj_fname_1118", align 8 + %"$msgobj_td_1119" = getelementptr i8, i8* %"$msgobj_1100", i32 101 + %"$msgobj_td_1120" = bitcast i8* %"$msgobj_td_1119" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Uint128_43", %_TyDescrTy_Typ** %"$msgobj_td_1120", align 8 + %"$msgobj_v_1121" = getelementptr i8, i8* %"$msgobj_1100", i32 109 + %"$msgobj_v_1122" = bitcast i8* %"$msgobj_v_1121" to %Uint128* + store %Uint128 zeroinitializer, %Uint128* %"$msgobj_v_1122", align 8 + %"$msgobj_fname_1124" = getelementptr i8, i8* %"$msgobj_1100", i32 125 + %"$msgobj_fname_1125" = bitcast i8* %"$msgobj_fname_1124" to %String* + store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_1123", i32 0, i32 0), i32 5 }, %String* %"$msgobj_fname_1125", align 8 + %"$msgobj_td_1126" = getelementptr i8, i8* %"$msgobj_1100", i32 141 + %"$msgobj_td_1127" = bitcast i8* %"$msgobj_td_1126" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_63", %_TyDescrTy_Typ** %"$msgobj_td_1127", align 8 + %"$cparam3_1128" = load [20 x i8], [20 x i8]* @_cparam_cparam3, align 1 + %"$msgobj_v_1129" = getelementptr i8, i8* %"$msgobj_1100", i32 149 + %"$msgobj_v_1130" = bitcast i8* %"$msgobj_v_1129" to [20 x i8]* + store [20 x i8] %"$cparam3_1128", [20 x i8]* %"$msgobj_v_1130", align 1 + store i8* %"$msgobj_1100", i8** %msg, align 8, !dbg !212 + %"$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 = %"$have_gas_1098" + call void @_out_of_gas() + br label %"$have_gas_1135" + +"$have_gas_1135": ; preds = %"$out_of_gas_1134", %"$have_gas_1098" + %"$consume_1136" = sub i64 %"$gasrem_1132", 1 + store i64 %"$consume_1136", i64* @_gasrem, align 8 %msgs = alloca %TName_List_Message*, align 8 - %"$gasrem_1122" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1123" = icmp ugt i64 1, %"$gasrem_1122" - br i1 %"$gascmp_1123", label %"$out_of_gas_1124", label %"$have_gas_1125" + call void @llvm.dbg.declare(metadata %TName_List_Message** %msgs, metadata !213, metadata !DIExpression()), !dbg !216 + %"$gasrem_1137" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1138" = icmp ugt i64 1, %"$gasrem_1137" + br i1 %"$gascmp_1138", label %"$out_of_gas_1139", label %"$have_gas_1140" -"$out_of_gas_1124": ; preds = %"$have_gas_1120" +"$out_of_gas_1139": ; preds = %"$have_gas_1135" call void @_out_of_gas() - br label %"$have_gas_1125" + br label %"$have_gas_1140" -"$have_gas_1125": ; preds = %"$out_of_gas_1124", %"$have_gas_1120" - %"$consume_1126" = sub i64 %"$gasrem_1122", 1 - store i64 %"$consume_1126", i64* @_gasrem, align 8 +"$have_gas_1140": ; preds = %"$out_of_gas_1139", %"$have_gas_1135" + %"$consume_1141" = sub i64 %"$gasrem_1137", 1 + store i64 %"$consume_1141", i64* @_gasrem, align 8 %n = alloca %TName_List_Message*, align 8 - %"$gasrem_1127" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1128" = icmp ugt i64 1, %"$gasrem_1127" - br i1 %"$gascmp_1128", label %"$out_of_gas_1129", label %"$have_gas_1130" - -"$out_of_gas_1129": ; preds = %"$have_gas_1125" - call void @_out_of_gas() - br label %"$have_gas_1130" - -"$have_gas_1130": ; preds = %"$out_of_gas_1129", %"$have_gas_1125" - %"$consume_1131" = sub i64 %"$gasrem_1127", 1 - store i64 %"$consume_1131", i64* @_gasrem, align 8 - %"$adtval_1132_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_1132_salloc" = call i8* @_salloc(i8* %"$adtval_1132_load", i64 1) - %"$adtval_1132" = bitcast i8* %"$adtval_1132_salloc" to %CName_Nil_Message* - %"$adtgep_1133" = getelementptr inbounds %CName_Nil_Message, %CName_Nil_Message* %"$adtval_1132", i32 0, i32 0 - store i8 1, i8* %"$adtgep_1133", align 1 - %"$adtptr_1134" = bitcast %CName_Nil_Message* %"$adtval_1132" to %TName_List_Message* - store %TName_List_Message* %"$adtptr_1134", %TName_List_Message** %n, align 8, !dbg !76 - %"$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" - -"$out_of_gas_1137": ; preds = %"$have_gas_1130" - call void @_out_of_gas() - br label %"$have_gas_1138" - -"$have_gas_1138": ; preds = %"$out_of_gas_1137", %"$have_gas_1130" - %"$consume_1139" = sub i64 %"$gasrem_1135", 1 - store i64 %"$consume_1139", i64* @_gasrem, align 8 - %"$msg_1140" = load i8*, i8** %msg, align 8 - %"$n_1141" = load %TName_List_Message*, %TName_List_Message** %n, align 8 - %"$adtval_1142_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_1142_salloc" = call i8* @_salloc(i8* %"$adtval_1142_load", i64 17) - %"$adtval_1142" = bitcast i8* %"$adtval_1142_salloc" to %CName_Cons_Message* - %"$adtgep_1143" = getelementptr inbounds %CName_Cons_Message, %CName_Cons_Message* %"$adtval_1142", i32 0, i32 0 - store i8 0, i8* %"$adtgep_1143", align 1 - %"$adtgep_1144" = getelementptr inbounds %CName_Cons_Message, %CName_Cons_Message* %"$adtval_1142", i32 0, i32 1 - store i8* %"$msg_1140", i8** %"$adtgep_1144", align 8 - %"$adtgep_1145" = getelementptr inbounds %CName_Cons_Message, %CName_Cons_Message* %"$adtval_1142", i32 0, i32 2 - store %TName_List_Message* %"$n_1141", %TName_List_Message** %"$adtgep_1145", align 8 - %"$adtptr_1146" = bitcast %CName_Cons_Message* %"$adtval_1142" to %TName_List_Message* - store %TName_List_Message* %"$adtptr_1146", %TName_List_Message** %msgs, align 8, !dbg !77 - %"$msgs_1147" = load %TName_List_Message*, %TName_List_Message** %msgs, align 8 - %"$$msgs_1147_1148" = bitcast %TName_List_Message* %"$msgs_1147" to i8* - %"$_literal_cost_call_1149" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_67", i8* %"$$msgs_1147_1148") + call void @llvm.dbg.declare(metadata %TName_List_Message** %n, metadata !217, metadata !DIExpression()), !dbg !218 + %"$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_1140" + call void @_out_of_gas() + br label %"$have_gas_1145" + +"$have_gas_1145": ; preds = %"$out_of_gas_1144", %"$have_gas_1140" + %"$consume_1146" = sub i64 %"$gasrem_1142", 1 + store i64 %"$consume_1146", i64* @_gasrem, align 8 + %"$adtval_1147_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_1147_salloc" = call i8* @_salloc(i8* %"$adtval_1147_load", i64 1) + %"$adtval_1147" = bitcast i8* %"$adtval_1147_salloc" to %CName_Nil_Message* + %"$adtgep_1148" = getelementptr inbounds %CName_Nil_Message, %CName_Nil_Message* %"$adtval_1147", i32 0, i32 0 + store i8 1, i8* %"$adtgep_1148", align 1 + %"$adtptr_1149" = bitcast %CName_Nil_Message* %"$adtval_1147" to %TName_List_Message* + store %TName_List_Message* %"$adtptr_1149", %TName_List_Message** %n, align 8, !dbg !219 %"$gasrem_1150" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1151" = icmp ugt i64 %"$_literal_cost_call_1149", %"$gasrem_1150" + %"$gascmp_1151" = icmp ugt i64 1, %"$gasrem_1150" br i1 %"$gascmp_1151", label %"$out_of_gas_1152", label %"$have_gas_1153" -"$out_of_gas_1152": ; preds = %"$have_gas_1138" +"$out_of_gas_1152": ; preds = %"$have_gas_1145" call void @_out_of_gas() br label %"$have_gas_1153" -"$have_gas_1153": ; preds = %"$out_of_gas_1152", %"$have_gas_1138" - %"$consume_1154" = sub i64 %"$gasrem_1150", %"$_literal_cost_call_1149" +"$have_gas_1153": ; preds = %"$out_of_gas_1152", %"$have_gas_1145" + %"$consume_1154" = sub i64 %"$gasrem_1150", 1 store i64 %"$consume_1154", i64* @_gasrem, align 8 - %"$execptr_load_1155" = load i8*, i8** @_execptr, align 8 - %"$msgs_1156" = load %TName_List_Message*, %TName_List_Message** %msgs, align 8 - call void @_send(i8* %"$execptr_load_1155", %_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_67", %TName_List_Message* %"$msgs_1156"), !dbg !78 - %"$gasrem_1157" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1158" = icmp ugt i64 1, %"$gasrem_1157" - br i1 %"$gascmp_1158", label %"$out_of_gas_1159", label %"$have_gas_1160" - -"$out_of_gas_1159": ; preds = %"$have_gas_1153" - call void @_out_of_gas() - br label %"$have_gas_1160" - -"$have_gas_1160": ; preds = %"$out_of_gas_1159", %"$have_gas_1153" - %"$consume_1161" = sub i64 %"$gasrem_1157", 1 - store i64 %"$consume_1161", i64* @_gasrem, align 8 + %"$msg_1155" = load i8*, i8** %msg, align 8 + %"$n_1156" = load %TName_List_Message*, %TName_List_Message** %n, align 8 + %"$adtval_1157_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_1157_salloc" = call i8* @_salloc(i8* %"$adtval_1157_load", i64 17) + %"$adtval_1157" = bitcast i8* %"$adtval_1157_salloc" to %CName_Cons_Message* + %"$adtgep_1158" = getelementptr inbounds %CName_Cons_Message, %CName_Cons_Message* %"$adtval_1157", i32 0, i32 0 + store i8 0, i8* %"$adtgep_1158", align 1 + %"$adtgep_1159" = getelementptr inbounds %CName_Cons_Message, %CName_Cons_Message* %"$adtval_1157", i32 0, i32 1 + store i8* %"$msg_1155", i8** %"$adtgep_1159", align 8 + %"$adtgep_1160" = getelementptr inbounds %CName_Cons_Message, %CName_Cons_Message* %"$adtval_1157", i32 0, i32 2 + store %TName_List_Message* %"$n_1156", %TName_List_Message** %"$adtgep_1160", align 8 + %"$adtptr_1161" = bitcast %CName_Cons_Message* %"$adtval_1157" to %TName_List_Message* + store %TName_List_Message* %"$adtptr_1161", %TName_List_Message** %msgs, align 8, !dbg !220 + %"$msgs_1162" = load %TName_List_Message*, %TName_List_Message** %msgs, align 8 + %"$$msgs_1162_1163" = bitcast %TName_List_Message* %"$msgs_1162" to i8* + %"$_literal_cost_call_1164" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_67", i8* %"$$msgs_1162_1163") + %"$gasrem_1165" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1166" = icmp ugt i64 %"$_literal_cost_call_1164", %"$gasrem_1165" + br i1 %"$gascmp_1166", label %"$out_of_gas_1167", label %"$have_gas_1168" + +"$out_of_gas_1167": ; preds = %"$have_gas_1153" + call void @_out_of_gas() + br label %"$have_gas_1168" + +"$have_gas_1168": ; preds = %"$out_of_gas_1167", %"$have_gas_1153" + %"$consume_1169" = sub i64 %"$gasrem_1165", %"$_literal_cost_call_1164" + store i64 %"$consume_1169", i64* @_gasrem, align 8 + %"$execptr_load_1170" = load i8*, i8** @_execptr, align 8 + %"$msgs_1171" = load %TName_List_Message*, %TName_List_Message** %msgs, align 8 + call void @_send(i8* %"$execptr_load_1170", %_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_67", %TName_List_Message* %"$msgs_1171"), !dbg !221 + %"$gasrem_1172" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1173" = icmp ugt i64 1, %"$gasrem_1172" + br i1 %"$gascmp_1173", label %"$out_of_gas_1174", label %"$have_gas_1175" + +"$out_of_gas_1174": ; preds = %"$have_gas_1168" + call void @_out_of_gas() + br label %"$have_gas_1175" + +"$have_gas_1175": ; preds = %"$out_of_gas_1174", %"$have_gas_1168" + %"$consume_1176" = sub i64 %"$gasrem_1172", 1 + store i64 %"$consume_1176", i64* @_gasrem, align 8 %e1 = alloca i8*, align 8 - %"$gasrem_1162" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1163" = icmp ugt i64 1, %"$gasrem_1162" - br i1 %"$gascmp_1163", label %"$out_of_gas_1164", label %"$have_gas_1165" - -"$out_of_gas_1164": ; preds = %"$have_gas_1160" - call void @_out_of_gas() - br label %"$have_gas_1165" - -"$have_gas_1165": ; preds = %"$out_of_gas_1164", %"$have_gas_1160" - %"$consume_1166" = sub i64 %"$gasrem_1162", 1 - store i64 %"$consume_1166", i64* @_gasrem, align 8 - %"$msgobj_1167_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$msgobj_1167_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_1167_salloc_load", i64 85) - %"$msgobj_1167_salloc" = bitcast i8* %"$msgobj_1167_salloc_salloc" to [85 x i8]* - %"$msgobj_1167" = bitcast [85 x i8]* %"$msgobj_1167_salloc" to i8* - store i8 2, i8* %"$msgobj_1167", align 1 - %"$msgobj_fname_1169" = getelementptr i8, i8* %"$msgobj_1167", i32 1 - %"$msgobj_fname_1170" = bitcast i8* %"$msgobj_fname_1169" to %String* - store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_1168", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_1170", align 8 - %"$msgobj_td_1171" = getelementptr i8, i8* %"$msgobj_1167", i32 17 - %"$msgobj_td_1172" = bitcast i8* %"$msgobj_td_1171" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_String_49", %_TyDescrTy_Typ** %"$msgobj_td_1172", align 8 - %"$msgobj_v_1174" = getelementptr i8, i8* %"$msgobj_1167", i32 25 - %"$msgobj_v_1175" = bitcast i8* %"$msgobj_v_1174" to %String* - store %String { i8* getelementptr inbounds ([9 x i8], [9 x i8]* @"$stringlit_1173", i32 0, i32 0), i32 9 }, %String* %"$msgobj_v_1175", align 8 - %"$msgobj_fname_1177" = getelementptr i8, i8* %"$msgobj_1167", i32 41 - %"$msgobj_fname_1178" = bitcast i8* %"$msgobj_fname_1177" to %String* - store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_1176", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_1178", align 8 - %"$msgobj_td_1179" = getelementptr i8, i8* %"$msgobj_1167", i32 57 - %"$msgobj_td_1180" = bitcast i8* %"$msgobj_td_1179" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_63", %_TyDescrTy_Typ** %"$msgobj_td_1180", align 8 - %"$cparam2_1181" = load [20 x i8], [20 x i8]* @_cparam_cparam2, align 1 - %"$msgobj_v_1182" = getelementptr i8, i8* %"$msgobj_1167", i32 65 - %"$msgobj_v_1183" = bitcast i8* %"$msgobj_v_1182" to [20 x i8]* - store [20 x i8] %"$cparam2_1181", [20 x i8]* %"$msgobj_v_1183", align 1 - store i8* %"$msgobj_1167", i8** %e1, align 8, !dbg !79 - %"$e1_1185" = load i8*, i8** %e1, align 8 - %"$_literal_cost_call_1187" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Event_55", i8* %"$e1_1185") - %"$gasrem_1188" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1189" = icmp ugt i64 %"$_literal_cost_call_1187", %"$gasrem_1188" - br i1 %"$gascmp_1189", label %"$out_of_gas_1190", label %"$have_gas_1191" - -"$out_of_gas_1190": ; preds = %"$have_gas_1165" - call void @_out_of_gas() - br label %"$have_gas_1191" - -"$have_gas_1191": ; preds = %"$out_of_gas_1190", %"$have_gas_1165" - %"$consume_1192" = sub i64 %"$gasrem_1188", %"$_literal_cost_call_1187" - store i64 %"$consume_1192", i64* @_gasrem, align 8 - %"$execptr_load_1193" = load i8*, i8** @_execptr, align 8 - %"$e1_1194" = load i8*, i8** %e1, align 8 - call void @_event(i8* %"$execptr_load_1193", %_TyDescrTy_Typ* @"$TyDescr_Event_55", i8* %"$e1_1194"), !dbg !80 - %"$gasrem_1195" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1196" = icmp ugt i64 1, %"$gasrem_1195" - br i1 %"$gascmp_1196", label %"$out_of_gas_1197", label %"$have_gas_1198" - -"$out_of_gas_1197": ; preds = %"$have_gas_1191" - call void @_out_of_gas() - br label %"$have_gas_1198" - -"$have_gas_1198": ; preds = %"$out_of_gas_1197", %"$have_gas_1191" - %"$consume_1199" = sub i64 %"$gasrem_1195", 1 - store i64 %"$consume_1199", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata i8** %e1, metadata !222, metadata !DIExpression()), !dbg !225 + %"$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 = %"$have_gas_1175" + call void @_out_of_gas() + br label %"$have_gas_1180" + +"$have_gas_1180": ; preds = %"$out_of_gas_1179", %"$have_gas_1175" + %"$consume_1181" = sub i64 %"$gasrem_1177", 1 + store i64 %"$consume_1181", i64* @_gasrem, align 8 + %"$msgobj_1182_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$msgobj_1182_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_1182_salloc_load", i64 85) + %"$msgobj_1182_salloc" = bitcast i8* %"$msgobj_1182_salloc_salloc" to [85 x i8]* + %"$msgobj_1182" = bitcast [85 x i8]* %"$msgobj_1182_salloc" to i8* + store i8 2, i8* %"$msgobj_1182", align 1 + %"$msgobj_fname_1184" = getelementptr i8, i8* %"$msgobj_1182", i32 1 + %"$msgobj_fname_1185" = bitcast i8* %"$msgobj_fname_1184" to %String* + store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_1183", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_1185", align 8 + %"$msgobj_td_1186" = getelementptr i8, i8* %"$msgobj_1182", i32 17 + %"$msgobj_td_1187" = bitcast i8* %"$msgobj_td_1186" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_String_49", %_TyDescrTy_Typ** %"$msgobj_td_1187", align 8 + %"$msgobj_v_1189" = getelementptr i8, i8* %"$msgobj_1182", i32 25 + %"$msgobj_v_1190" = bitcast i8* %"$msgobj_v_1189" to %String* + store %String { i8* getelementptr inbounds ([9 x i8], [9 x i8]* @"$stringlit_1188", i32 0, i32 0), i32 9 }, %String* %"$msgobj_v_1190", align 8 + %"$msgobj_fname_1192" = getelementptr i8, i8* %"$msgobj_1182", i32 41 + %"$msgobj_fname_1193" = bitcast i8* %"$msgobj_fname_1192" to %String* + store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_1191", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_1193", align 8 + %"$msgobj_td_1194" = getelementptr i8, i8* %"$msgobj_1182", i32 57 + %"$msgobj_td_1195" = bitcast i8* %"$msgobj_td_1194" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_63", %_TyDescrTy_Typ** %"$msgobj_td_1195", align 8 + %"$cparam2_1196" = load [20 x i8], [20 x i8]* @_cparam_cparam2, align 1 + %"$msgobj_v_1197" = getelementptr i8, i8* %"$msgobj_1182", i32 65 + %"$msgobj_v_1198" = bitcast i8* %"$msgobj_v_1197" to [20 x i8]* + store [20 x i8] %"$cparam2_1196", [20 x i8]* %"$msgobj_v_1198", align 1 + store i8* %"$msgobj_1182", i8** %e1, align 8, !dbg !226 + %"$e1_1200" = load i8*, i8** %e1, align 8 + %"$_literal_cost_call_1202" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Event_55", i8* %"$e1_1200") + %"$gasrem_1203" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1204" = icmp ugt i64 %"$_literal_cost_call_1202", %"$gasrem_1203" + br i1 %"$gascmp_1204", label %"$out_of_gas_1205", label %"$have_gas_1206" + +"$out_of_gas_1205": ; preds = %"$have_gas_1180" + call void @_out_of_gas() + br label %"$have_gas_1206" + +"$have_gas_1206": ; preds = %"$out_of_gas_1205", %"$have_gas_1180" + %"$consume_1207" = sub i64 %"$gasrem_1203", %"$_literal_cost_call_1202" + store i64 %"$consume_1207", i64* @_gasrem, align 8 + %"$execptr_load_1208" = load i8*, i8** @_execptr, align 8 + %"$e1_1209" = load i8*, i8** %e1, align 8 + call void @_event(i8* %"$execptr_load_1208", %_TyDescrTy_Typ* @"$TyDescr_Event_55", i8* %"$e1_1209"), !dbg !227 + %"$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 = %"$have_gas_1206" + call void @_out_of_gas() + br label %"$have_gas_1213" + +"$have_gas_1213": ; preds = %"$out_of_gas_1212", %"$have_gas_1206" + %"$consume_1214" = sub i64 %"$gasrem_1210", 1 + store i64 %"$consume_1214", i64* @_gasrem, align 8 %e2 = alloca i8*, 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_1198" - call void @_out_of_gas() - br label %"$have_gas_1203" - -"$have_gas_1203": ; preds = %"$out_of_gas_1202", %"$have_gas_1198" - %"$consume_1204" = sub i64 %"$gasrem_1200", 1 - store i64 %"$consume_1204", i64* @_gasrem, align 8 - %"$msgobj_1205_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$msgobj_1205_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_1205_salloc_load", i64 85) - %"$msgobj_1205_salloc" = bitcast i8* %"$msgobj_1205_salloc_salloc" to [85 x i8]* - %"$msgobj_1205" = bitcast [85 x i8]* %"$msgobj_1205_salloc" to i8* - store i8 2, i8* %"$msgobj_1205", align 1 - %"$msgobj_fname_1207" = getelementptr i8, i8* %"$msgobj_1205", i32 1 - %"$msgobj_fname_1208" = bitcast i8* %"$msgobj_fname_1207" to %String* - store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_1206", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_1208", align 8 - %"$msgobj_td_1209" = getelementptr i8, i8* %"$msgobj_1205", i32 17 - %"$msgobj_td_1210" = bitcast i8* %"$msgobj_td_1209" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_String_49", %_TyDescrTy_Typ** %"$msgobj_td_1210", align 8 - %"$msgobj_v_1212" = getelementptr i8, i8* %"$msgobj_1205", i32 25 - %"$msgobj_v_1213" = bitcast i8* %"$msgobj_v_1212" to %String* - store %String { i8* getelementptr inbounds ([9 x i8], [9 x i8]* @"$stringlit_1211", i32 0, i32 0), i32 9 }, %String* %"$msgobj_v_1213", align 8 - %"$msgobj_fname_1215" = getelementptr i8, i8* %"$msgobj_1205", i32 41 - %"$msgobj_fname_1216" = bitcast i8* %"$msgobj_fname_1215" to %String* - store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_1214", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_1216", align 8 - %"$msgobj_td_1217" = getelementptr i8, i8* %"$msgobj_1205", i32 57 - %"$msgobj_td_1218" = bitcast i8* %"$msgobj_td_1217" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_63", %_TyDescrTy_Typ** %"$msgobj_td_1218", align 8 - %"$cparam3_1219" = load [20 x i8], [20 x i8]* @_cparam_cparam3, align 1 - %"$msgobj_v_1220" = getelementptr i8, i8* %"$msgobj_1205", i32 65 - %"$msgobj_v_1221" = bitcast i8* %"$msgobj_v_1220" to [20 x i8]* - store [20 x i8] %"$cparam3_1219", [20 x i8]* %"$msgobj_v_1221", align 1 - store i8* %"$msgobj_1205", i8** %e2, align 8, !dbg !81 - %"$e2_1223" = load i8*, i8** %e2, align 8 - %"$_literal_cost_call_1225" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Event_55", i8* %"$e2_1223") - %"$gasrem_1226" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1227" = icmp ugt i64 %"$_literal_cost_call_1225", %"$gasrem_1226" - br i1 %"$gascmp_1227", label %"$out_of_gas_1228", label %"$have_gas_1229" - -"$out_of_gas_1228": ; preds = %"$have_gas_1203" - call void @_out_of_gas() - br label %"$have_gas_1229" - -"$have_gas_1229": ; preds = %"$out_of_gas_1228", %"$have_gas_1203" - %"$consume_1230" = sub i64 %"$gasrem_1226", %"$_literal_cost_call_1225" - store i64 %"$consume_1230", i64* @_gasrem, align 8 - %"$execptr_load_1231" = load i8*, i8** @_execptr, align 8 - %"$e2_1232" = load i8*, i8** %e2, align 8 - call void @_event(i8* %"$execptr_load_1231", %_TyDescrTy_Typ* @"$TyDescr_Event_55", i8* %"$e2_1232"), !dbg !82 + call void @llvm.dbg.declare(metadata i8** %e2, metadata !228, metadata !DIExpression()), !dbg !229 + %"$gasrem_1215" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1216" = icmp ugt i64 1, %"$gasrem_1215" + br i1 %"$gascmp_1216", label %"$out_of_gas_1217", label %"$have_gas_1218" + +"$out_of_gas_1217": ; preds = %"$have_gas_1213" + call void @_out_of_gas() + br label %"$have_gas_1218" + +"$have_gas_1218": ; preds = %"$out_of_gas_1217", %"$have_gas_1213" + %"$consume_1219" = sub i64 %"$gasrem_1215", 1 + store i64 %"$consume_1219", i64* @_gasrem, align 8 + %"$msgobj_1220_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$msgobj_1220_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_1220_salloc_load", i64 85) + %"$msgobj_1220_salloc" = bitcast i8* %"$msgobj_1220_salloc_salloc" to [85 x i8]* + %"$msgobj_1220" = bitcast [85 x i8]* %"$msgobj_1220_salloc" to i8* + store i8 2, i8* %"$msgobj_1220", align 1 + %"$msgobj_fname_1222" = getelementptr i8, i8* %"$msgobj_1220", i32 1 + %"$msgobj_fname_1223" = bitcast i8* %"$msgobj_fname_1222" to %String* + store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_1221", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_1223", align 8 + %"$msgobj_td_1224" = getelementptr i8, i8* %"$msgobj_1220", i32 17 + %"$msgobj_td_1225" = bitcast i8* %"$msgobj_td_1224" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_String_49", %_TyDescrTy_Typ** %"$msgobj_td_1225", align 8 + %"$msgobj_v_1227" = getelementptr i8, i8* %"$msgobj_1220", i32 25 + %"$msgobj_v_1228" = bitcast i8* %"$msgobj_v_1227" to %String* + store %String { i8* getelementptr inbounds ([9 x i8], [9 x i8]* @"$stringlit_1226", i32 0, i32 0), i32 9 }, %String* %"$msgobj_v_1228", align 8 + %"$msgobj_fname_1230" = getelementptr i8, i8* %"$msgobj_1220", i32 41 + %"$msgobj_fname_1231" = bitcast i8* %"$msgobj_fname_1230" to %String* + store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_1229", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_1231", align 8 + %"$msgobj_td_1232" = getelementptr i8, i8* %"$msgobj_1220", i32 57 + %"$msgobj_td_1233" = bitcast i8* %"$msgobj_td_1232" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_63", %_TyDescrTy_Typ** %"$msgobj_td_1233", align 8 + %"$cparam3_1234" = load [20 x i8], [20 x i8]* @_cparam_cparam3, align 1 + %"$msgobj_v_1235" = getelementptr i8, i8* %"$msgobj_1220", i32 65 + %"$msgobj_v_1236" = bitcast i8* %"$msgobj_v_1235" to [20 x i8]* + store [20 x i8] %"$cparam3_1234", [20 x i8]* %"$msgobj_v_1236", align 1 + store i8* %"$msgobj_1220", i8** %e2, align 8, !dbg !230 + %"$e2_1238" = load i8*, i8** %e2, align 8 + %"$_literal_cost_call_1240" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Event_55", i8* %"$e2_1238") + %"$gasrem_1241" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1242" = icmp ugt i64 %"$_literal_cost_call_1240", %"$gasrem_1241" + br i1 %"$gascmp_1242", label %"$out_of_gas_1243", label %"$have_gas_1244" + +"$out_of_gas_1243": ; preds = %"$have_gas_1218" + call void @_out_of_gas() + br label %"$have_gas_1244" + +"$have_gas_1244": ; preds = %"$out_of_gas_1243", %"$have_gas_1218" + %"$consume_1245" = sub i64 %"$gasrem_1241", %"$_literal_cost_call_1240" + store i64 %"$consume_1245", i64* @_gasrem, align 8 + %"$execptr_load_1246" = load i8*, i8** @_execptr, align 8 + %"$e2_1247" = load i8*, i8** %e2, align 8 + call void @_event(i8* %"$execptr_load_1246", %_TyDescrTy_Typ* @"$TyDescr_Event_55", i8* %"$e2_1247"), !dbg !231 ret void } @@ -2106,497 +2211,526 @@ declare void @_send(i8*, %_TyDescrTy_Typ*, %TName_List_Message*) declare void @_event(i8*, %_TyDescrTy_Typ*, i8*) -define void @OutgoingMsgTest(i8* %0) !dbg !83 { +define void @OutgoingMsgTest(i8* %0) !dbg !232 { entry: - %"$_amount_1234" = getelementptr i8, i8* %0, i32 0 - %"$_amount_1235" = bitcast i8* %"$_amount_1234" to %Uint128* - %_amount = load %Uint128, %Uint128* %"$_amount_1235", align 8 - %"$_origin_1236" = getelementptr i8, i8* %0, i32 16 - %"$_origin_1237" = bitcast i8* %"$_origin_1236" to [20 x i8]* - %"$_sender_1238" = getelementptr i8, i8* %0, i32 36 - %"$_sender_1239" = bitcast i8* %"$_sender_1238" to [20 x i8]* - call void @"$OutgoingMsgTest_1072"(%Uint128 %_amount, [20 x i8]* %"$_origin_1237", [20 x i8]* %"$_sender_1239"), !dbg !84 + %"$_amount_1252" = getelementptr i8, i8* %0, i32 0 + %"$_amount_1253" = bitcast i8* %"$_amount_1252" to %Uint128* + %_amount = load %Uint128, %Uint128* %"$_amount_1253", align 8 + %"$_origin_1254" = getelementptr i8, i8* %0, i32 16 + %"$_origin_1255" = bitcast i8* %"$_origin_1254" to [20 x i8]* + %"$_sender_1256" = getelementptr i8, i8* %0, i32 36 + %"$_sender_1257" = bitcast i8* %"$_sender_1256" to [20 x i8]* + call void @"$OutgoingMsgTest_1087"(%Uint128 %_amount, [20 x i8]* %"$_origin_1255", [20 x i8]* %"$_sender_1257"), !dbg !233 ret void } -define internal void @"$ExceptionTest_1240"(%Uint128 %_amount, [20 x i8]* %"$_origin_1241", [20 x i8]* %"$_sender_1242") !dbg !85 { +define internal void @"$ExceptionTest_1258"(%Uint128 %_amount, [20 x i8]* %"$_origin_1259", [20 x i8]* %"$_sender_1260") !dbg !234 { entry: - %_origin = load [20 x i8], [20 x i8]* %"$_origin_1241", align 1 - %_sender = load [20 x i8], [20 x i8]* %"$_sender_1242", align 1 - %"$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" - -"$out_of_gas_1245": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_1246" - -"$have_gas_1246": ; preds = %"$out_of_gas_1245", %entry - %"$consume_1247" = sub i64 %"$gasrem_1243", 1 - store i64 %"$consume_1247", i64* @_gasrem, align 8 + %"$_sender_1301" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_sender_1260", [20 x i8]** %"$_sender_1301", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_sender_1301", metadata !235, metadata !DIExpression()), !dbg !236 + %"$_origin_1300" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_origin_1259", [20 x i8]** %"$_origin_1300", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_origin_1300", metadata !237, metadata !DIExpression()), !dbg !236 + %"$_amount_1299" = alloca %Uint128, align 8 + store %Uint128 %_amount, %Uint128* %"$_amount_1299", align 8 + call void @llvm.dbg.declare(metadata %Uint128* %"$_amount_1299", metadata !238, metadata !DIExpression()), !dbg !236 + %_origin = load [20 x i8], [20 x i8]* %"$_origin_1259", align 1 + %_sender = load [20 x i8], [20 x i8]* %"$_sender_1260", align 1 + %"$gasrem_1261" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1262" = icmp ugt i64 1, %"$gasrem_1261" + br i1 %"$gascmp_1262", label %"$out_of_gas_1263", label %"$have_gas_1264" + +"$out_of_gas_1263": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_1264" + +"$have_gas_1264": ; preds = %"$out_of_gas_1263", %entry + %"$consume_1265" = sub i64 %"$gasrem_1261", 1 + store i64 %"$consume_1265", i64* @_gasrem, align 8 %e = alloca i8*, align 8 - %"$gasrem_1248" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1249" = icmp ugt i64 1, %"$gasrem_1248" - br i1 %"$gascmp_1249", label %"$out_of_gas_1250", label %"$have_gas_1251" - -"$out_of_gas_1250": ; preds = %"$have_gas_1246" - call void @_out_of_gas() - br label %"$have_gas_1251" - -"$have_gas_1251": ; preds = %"$out_of_gas_1250", %"$have_gas_1246" - %"$consume_1252" = sub i64 %"$gasrem_1248", 1 - store i64 %"$consume_1252", i64* @_gasrem, align 8 - %"$msgobj_1253_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$msgobj_1253_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_1253_salloc_load", i64 85) - %"$msgobj_1253_salloc" = bitcast i8* %"$msgobj_1253_salloc_salloc" to [85 x i8]* - %"$msgobj_1253" = bitcast [85 x i8]* %"$msgobj_1253_salloc" to i8* - store i8 2, i8* %"$msgobj_1253", align 1 - %"$msgobj_fname_1255" = getelementptr i8, i8* %"$msgobj_1253", i32 1 - %"$msgobj_fname_1256" = bitcast i8* %"$msgobj_fname_1255" to %String* - store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_1254", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_1256", align 8 - %"$msgobj_td_1257" = getelementptr i8, i8* %"$msgobj_1253", i32 17 - %"$msgobj_td_1258" = bitcast i8* %"$msgobj_td_1257" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_String_49", %_TyDescrTy_Typ** %"$msgobj_td_1258", align 8 - %"$msgobj_v_1260" = getelementptr i8, i8* %"$msgobj_1253", i32 25 - %"$msgobj_v_1261" = bitcast i8* %"$msgobj_v_1260" to %String* - store %String { i8* getelementptr inbounds ([13 x i8], [13 x i8]* @"$stringlit_1259", i32 0, i32 0), i32 13 }, %String* %"$msgobj_v_1261", align 8 - %"$msgobj_fname_1263" = getelementptr i8, i8* %"$msgobj_1253", i32 41 - %"$msgobj_fname_1264" = bitcast i8* %"$msgobj_fname_1263" to %String* - store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_1262", i32 0, i32 0), i32 5 }, %String* %"$msgobj_fname_1264", align 8 - %"$msgobj_td_1265" = getelementptr i8, i8* %"$msgobj_1253", i32 57 - %"$msgobj_td_1266" = bitcast i8* %"$msgobj_td_1265" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_63", %_TyDescrTy_Typ** %"$msgobj_td_1266", align 8 - %"$cparam3_1267" = load [20 x i8], [20 x i8]* @_cparam_cparam3, align 1 - %"$msgobj_v_1268" = getelementptr i8, i8* %"$msgobj_1253", i32 65 - %"$msgobj_v_1269" = bitcast i8* %"$msgobj_v_1268" to [20 x i8]* - store [20 x i8] %"$cparam3_1267", [20 x i8]* %"$msgobj_v_1269", align 1 - store i8* %"$msgobj_1253", i8** %e, align 8, !dbg !86 - %"$e_1271" = load i8*, i8** %e, align 8 - %"$_literal_cost_call_1273" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Exception_57", i8* %"$e_1271") - %"$gasrem_1274" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1275" = icmp ugt i64 %"$_literal_cost_call_1273", %"$gasrem_1274" - br i1 %"$gascmp_1275", label %"$out_of_gas_1276", label %"$have_gas_1277" - -"$out_of_gas_1276": ; preds = %"$have_gas_1251" - call void @_out_of_gas() - br label %"$have_gas_1277" - -"$have_gas_1277": ; preds = %"$out_of_gas_1276", %"$have_gas_1251" - %"$consume_1278" = sub i64 %"$gasrem_1274", %"$_literal_cost_call_1273" - store i64 %"$consume_1278", i64* @_gasrem, align 8 - %"$execptr_load_1279" = load i8*, i8** @_execptr, align 8 - %"$e_1280" = load i8*, i8** %e, align 8 - call void @_throw(i8* %"$execptr_load_1279", %_TyDescrTy_Typ* @"$TyDescr_Exception_57", i8* %"$e_1280"), !dbg !87 + call void @llvm.dbg.declare(metadata i8** %e, metadata !239, metadata !DIExpression()), !dbg !242 + %"$gasrem_1266" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1267" = icmp ugt i64 1, %"$gasrem_1266" + br i1 %"$gascmp_1267", label %"$out_of_gas_1268", label %"$have_gas_1269" + +"$out_of_gas_1268": ; preds = %"$have_gas_1264" + call void @_out_of_gas() + br label %"$have_gas_1269" + +"$have_gas_1269": ; preds = %"$out_of_gas_1268", %"$have_gas_1264" + %"$consume_1270" = sub i64 %"$gasrem_1266", 1 + store i64 %"$consume_1270", i64* @_gasrem, align 8 + %"$msgobj_1271_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$msgobj_1271_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_1271_salloc_load", i64 85) + %"$msgobj_1271_salloc" = bitcast i8* %"$msgobj_1271_salloc_salloc" to [85 x i8]* + %"$msgobj_1271" = bitcast [85 x i8]* %"$msgobj_1271_salloc" to i8* + store i8 2, i8* %"$msgobj_1271", align 1 + %"$msgobj_fname_1273" = getelementptr i8, i8* %"$msgobj_1271", i32 1 + %"$msgobj_fname_1274" = bitcast i8* %"$msgobj_fname_1273" to %String* + store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_1272", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_1274", align 8 + %"$msgobj_td_1275" = getelementptr i8, i8* %"$msgobj_1271", i32 17 + %"$msgobj_td_1276" = bitcast i8* %"$msgobj_td_1275" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_String_49", %_TyDescrTy_Typ** %"$msgobj_td_1276", align 8 + %"$msgobj_v_1278" = getelementptr i8, i8* %"$msgobj_1271", i32 25 + %"$msgobj_v_1279" = bitcast i8* %"$msgobj_v_1278" to %String* + store %String { i8* getelementptr inbounds ([13 x i8], [13 x i8]* @"$stringlit_1277", i32 0, i32 0), i32 13 }, %String* %"$msgobj_v_1279", align 8 + %"$msgobj_fname_1281" = getelementptr i8, i8* %"$msgobj_1271", i32 41 + %"$msgobj_fname_1282" = bitcast i8* %"$msgobj_fname_1281" to %String* + store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_1280", i32 0, i32 0), i32 5 }, %String* %"$msgobj_fname_1282", align 8 + %"$msgobj_td_1283" = getelementptr i8, i8* %"$msgobj_1271", i32 57 + %"$msgobj_td_1284" = bitcast i8* %"$msgobj_td_1283" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_63", %_TyDescrTy_Typ** %"$msgobj_td_1284", align 8 + %"$cparam3_1285" = load [20 x i8], [20 x i8]* @_cparam_cparam3, align 1 + %"$msgobj_v_1286" = getelementptr i8, i8* %"$msgobj_1271", i32 65 + %"$msgobj_v_1287" = bitcast i8* %"$msgobj_v_1286" to [20 x i8]* + store [20 x i8] %"$cparam3_1285", [20 x i8]* %"$msgobj_v_1287", align 1 + store i8* %"$msgobj_1271", i8** %e, align 8, !dbg !243 + %"$e_1289" = load i8*, i8** %e, align 8 + %"$_literal_cost_call_1291" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Exception_57", i8* %"$e_1289") + %"$gasrem_1292" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1293" = icmp ugt i64 %"$_literal_cost_call_1291", %"$gasrem_1292" + br i1 %"$gascmp_1293", label %"$out_of_gas_1294", label %"$have_gas_1295" + +"$out_of_gas_1294": ; preds = %"$have_gas_1269" + call void @_out_of_gas() + br label %"$have_gas_1295" + +"$have_gas_1295": ; preds = %"$out_of_gas_1294", %"$have_gas_1269" + %"$consume_1296" = sub i64 %"$gasrem_1292", %"$_literal_cost_call_1291" + store i64 %"$consume_1296", i64* @_gasrem, align 8 + %"$execptr_load_1297" = load i8*, i8** @_execptr, align 8 + %"$e_1298" = load i8*, i8** %e, align 8 + call void @_throw(i8* %"$execptr_load_1297", %_TyDescrTy_Typ* @"$TyDescr_Exception_57", i8* %"$e_1298"), !dbg !244 ret void } declare void @_throw(i8*, %_TyDescrTy_Typ*, i8*) -define void @ExceptionTest(i8* %0) !dbg !88 { +define void @ExceptionTest(i8* %0) !dbg !245 { entry: - %"$_amount_1282" = getelementptr i8, i8* %0, i32 0 - %"$_amount_1283" = bitcast i8* %"$_amount_1282" to %Uint128* - %_amount = load %Uint128, %Uint128* %"$_amount_1283", align 8 - %"$_origin_1284" = getelementptr i8, i8* %0, i32 16 - %"$_origin_1285" = bitcast i8* %"$_origin_1284" to [20 x i8]* - %"$_sender_1286" = getelementptr i8, i8* %0, i32 36 - %"$_sender_1287" = bitcast i8* %"$_sender_1286" to [20 x i8]* - call void @"$ExceptionTest_1240"(%Uint128 %_amount, [20 x i8]* %"$_origin_1285", [20 x i8]* %"$_sender_1287"), !dbg !89 + %"$_amount_1303" = getelementptr i8, i8* %0, i32 0 + %"$_amount_1304" = bitcast i8* %"$_amount_1303" to %Uint128* + %_amount = load %Uint128, %Uint128* %"$_amount_1304", align 8 + %"$_origin_1305" = getelementptr i8, i8* %0, i32 16 + %"$_origin_1306" = bitcast i8* %"$_origin_1305" to [20 x i8]* + %"$_sender_1307" = getelementptr i8, i8* %0, i32 36 + %"$_sender_1308" = bitcast i8* %"$_sender_1307" to [20 x i8]* + call void @"$ExceptionTest_1258"(%Uint128 %_amount, [20 x i8]* %"$_origin_1306", [20 x i8]* %"$_sender_1308"), !dbg !246 ret void } -define internal void @"$AssignTest_1288"(%Uint128 %_amount, [20 x i8]* %"$_origin_1289", [20 x i8]* %"$_sender_1290") !dbg !90 { +define internal void @"$AssignTest_1309"(%Uint128 %_amount, [20 x i8]* %"$_origin_1310", [20 x i8]* %"$_sender_1311") !dbg !247 { entry: - %_origin = load [20 x i8], [20 x i8]* %"$_origin_1289", align 1 - %_sender = load [20 x i8], [20 x i8]* %"$_sender_1290", align 1 - %"$gasrem_1291" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1292" = icmp ugt i64 1, %"$gasrem_1291" - br i1 %"$gascmp_1292", label %"$out_of_gas_1293", label %"$have_gas_1294" - -"$out_of_gas_1293": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_1294" - -"$have_gas_1294": ; preds = %"$out_of_gas_1293", %entry - %"$consume_1295" = sub i64 %"$gasrem_1291", 1 - store i64 %"$consume_1295", i64* @_gasrem, align 8 + %"$_sender_1517" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_sender_1311", [20 x i8]** %"$_sender_1517", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_sender_1517", metadata !248, metadata !DIExpression()), !dbg !249 + %"$_origin_1516" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_origin_1310", [20 x i8]** %"$_origin_1516", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_origin_1516", metadata !250, metadata !DIExpression()), !dbg !249 + %"$_amount_1515" = alloca %Uint128, align 8 + store %Uint128 %_amount, %Uint128* %"$_amount_1515", align 8 + call void @llvm.dbg.declare(metadata %Uint128* %"$_amount_1515", metadata !251, metadata !DIExpression()), !dbg !249 + %_origin = load [20 x i8], [20 x i8]* %"$_origin_1310", align 1 + %_sender = load [20 x i8], [20 x i8]* %"$_sender_1311", align 1 + %"$gasrem_1312" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1313" = icmp ugt i64 1, %"$gasrem_1312" + br i1 %"$gascmp_1313", label %"$out_of_gas_1314", label %"$have_gas_1315" + +"$out_of_gas_1314": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_1315" + +"$have_gas_1315": ; preds = %"$out_of_gas_1314", %entry + %"$consume_1316" = sub i64 %"$gasrem_1312", 1 + store i64 %"$consume_1316", i64* @_gasrem, align 8 %"$x_2" = alloca %TName_0x3620c286757a29985cee194eb90064270fb65414.AddressADT*, align 8 - %"$gasrem_1296" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1297" = icmp ugt i64 1, %"$gasrem_1296" - br i1 %"$gascmp_1297", label %"$out_of_gas_1298", label %"$have_gas_1299" - -"$out_of_gas_1298": ; preds = %"$have_gas_1294" - call void @_out_of_gas() - br label %"$have_gas_1299" - -"$have_gas_1299": ; preds = %"$out_of_gas_1298", %"$have_gas_1294" - %"$consume_1300" = sub i64 %"$gasrem_1296", 1 - store i64 %"$consume_1300", i64* @_gasrem, align 8 - %"$cparam3_1301" = load [20 x i8], [20 x i8]* @_cparam_cparam3, align 1 - %"$adtval_1302_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_1302_salloc" = call i8* @_salloc(i8* %"$adtval_1302_load", i64 21) - %"$adtval_1302" = bitcast i8* %"$adtval_1302_salloc" to %CName_0x3620c286757a29985cee194eb90064270fb65414.Address2* - %"$adtgep_1303" = getelementptr inbounds %CName_0x3620c286757a29985cee194eb90064270fb65414.Address2, %CName_0x3620c286757a29985cee194eb90064270fb65414.Address2* %"$adtval_1302", i32 0, i32 0 - store i8 1, i8* %"$adtgep_1303", align 1 - %"$adtgep_1304" = getelementptr inbounds %CName_0x3620c286757a29985cee194eb90064270fb65414.Address2, %CName_0x3620c286757a29985cee194eb90064270fb65414.Address2* %"$adtval_1302", i32 0, i32 1 - store [20 x i8] %"$cparam3_1301", [20 x i8]* %"$adtgep_1304", align 1 - %"$adtptr_1305" = bitcast %CName_0x3620c286757a29985cee194eb90064270fb65414.Address2* %"$adtval_1302" to %TName_0x3620c286757a29985cee194eb90064270fb65414.AddressADT* - store %TName_0x3620c286757a29985cee194eb90064270fb65414.AddressADT* %"$adtptr_1305", %TName_0x3620c286757a29985cee194eb90064270fb65414.AddressADT** %"$x_2", align 8, !dbg !91 - %"$$x_2_1306" = load %TName_0x3620c286757a29985cee194eb90064270fb65414.AddressADT*, %TName_0x3620c286757a29985cee194eb90064270fb65414.AddressADT** %"$x_2", align 8 - %"$$$x_2_1306_1307" = bitcast %TName_0x3620c286757a29985cee194eb90064270fb65414.AddressADT* %"$$x_2_1306" to i8* - %"$_literal_cost_call_1308" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_0x3620c286757a29985cee194eb90064270fb65414.AddressADT_77", i8* %"$$$x_2_1306_1307") - %"$gasrem_1309" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1310" = icmp ugt i64 %"$_literal_cost_call_1308", %"$gasrem_1309" - br i1 %"$gascmp_1310", label %"$out_of_gas_1311", label %"$have_gas_1312" - -"$out_of_gas_1311": ; preds = %"$have_gas_1299" - call void @_out_of_gas() - br label %"$have_gas_1312" - -"$have_gas_1312": ; preds = %"$out_of_gas_1311", %"$have_gas_1299" - %"$consume_1313" = sub i64 %"$gasrem_1309", %"$_literal_cost_call_1308" - store i64 %"$consume_1313", i64* @_gasrem, align 8 - %"$execptr_load_1314" = load i8*, i8** @_execptr, align 8 - %"$$x_2_1316" = load %TName_0x3620c286757a29985cee194eb90064270fb65414.AddressADT*, %TName_0x3620c286757a29985cee194eb90064270fb65414.AddressADT** %"$x_2", align 8 - %"$update_value_1317" = bitcast %TName_0x3620c286757a29985cee194eb90064270fb65414.AddressADT* %"$$x_2_1316" to i8* - call void @_update_field(i8* %"$execptr_load_1314", i8* getelementptr inbounds ([14 x i8], [14 x i8]* @"$assign_test_8_1315", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_ADT_0x3620c286757a29985cee194eb90064270fb65414.AddressADT_77", i32 0, i8* null, i8* %"$update_value_1317"), !dbg !92 - %"$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 = %"$have_gas_1312" - call void @_out_of_gas() - br label %"$have_gas_1321" - -"$have_gas_1321": ; preds = %"$out_of_gas_1320", %"$have_gas_1312" - %"$consume_1322" = sub i64 %"$gasrem_1318", 1 - store i64 %"$consume_1322", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_0x3620c286757a29985cee194eb90064270fb65414.AddressADT** %"$x_2", metadata !252, metadata !DIExpression()), !dbg !253 + %"$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_1319": ; preds = %"$have_gas_1315" + call void @_out_of_gas() + br label %"$have_gas_1320" + +"$have_gas_1320": ; preds = %"$out_of_gas_1319", %"$have_gas_1315" + %"$consume_1321" = sub i64 %"$gasrem_1317", 1 + store i64 %"$consume_1321", i64* @_gasrem, align 8 + %"$cparam3_1322" = load [20 x i8], [20 x i8]* @_cparam_cparam3, align 1 + %"$adtval_1323_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_1323_salloc" = call i8* @_salloc(i8* %"$adtval_1323_load", i64 21) + %"$adtval_1323" = bitcast i8* %"$adtval_1323_salloc" to %CName_0x3620c286757a29985cee194eb90064270fb65414.Address2* + %"$adtgep_1324" = getelementptr inbounds %CName_0x3620c286757a29985cee194eb90064270fb65414.Address2, %CName_0x3620c286757a29985cee194eb90064270fb65414.Address2* %"$adtval_1323", i32 0, i32 0 + store i8 1, i8* %"$adtgep_1324", align 1 + %"$adtgep_1325" = getelementptr inbounds %CName_0x3620c286757a29985cee194eb90064270fb65414.Address2, %CName_0x3620c286757a29985cee194eb90064270fb65414.Address2* %"$adtval_1323", i32 0, i32 1 + store [20 x i8] %"$cparam3_1322", [20 x i8]* %"$adtgep_1325", align 1 + %"$adtptr_1326" = bitcast %CName_0x3620c286757a29985cee194eb90064270fb65414.Address2* %"$adtval_1323" to %TName_0x3620c286757a29985cee194eb90064270fb65414.AddressADT* + store %TName_0x3620c286757a29985cee194eb90064270fb65414.AddressADT* %"$adtptr_1326", %TName_0x3620c286757a29985cee194eb90064270fb65414.AddressADT** %"$x_2", align 8, !dbg !254 + %"$$x_2_1327" = load %TName_0x3620c286757a29985cee194eb90064270fb65414.AddressADT*, %TName_0x3620c286757a29985cee194eb90064270fb65414.AddressADT** %"$x_2", align 8 + %"$$$x_2_1327_1328" = bitcast %TName_0x3620c286757a29985cee194eb90064270fb65414.AddressADT* %"$$x_2_1327" to i8* + %"$_literal_cost_call_1329" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_0x3620c286757a29985cee194eb90064270fb65414.AddressADT_77", i8* %"$$$x_2_1327_1328") + %"$gasrem_1330" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1331" = icmp ugt i64 %"$_literal_cost_call_1329", %"$gasrem_1330" + br i1 %"$gascmp_1331", label %"$out_of_gas_1332", label %"$have_gas_1333" + +"$out_of_gas_1332": ; preds = %"$have_gas_1320" + call void @_out_of_gas() + br label %"$have_gas_1333" + +"$have_gas_1333": ; preds = %"$out_of_gas_1332", %"$have_gas_1320" + %"$consume_1334" = sub i64 %"$gasrem_1330", %"$_literal_cost_call_1329" + store i64 %"$consume_1334", i64* @_gasrem, align 8 + %"$execptr_load_1335" = load i8*, i8** @_execptr, align 8 + %"$$x_2_1337" = load %TName_0x3620c286757a29985cee194eb90064270fb65414.AddressADT*, %TName_0x3620c286757a29985cee194eb90064270fb65414.AddressADT** %"$x_2", align 8 + %"$update_value_1338" = bitcast %TName_0x3620c286757a29985cee194eb90064270fb65414.AddressADT* %"$$x_2_1337" to i8* + call void @_update_field(i8* %"$execptr_load_1335", i8* getelementptr inbounds ([14 x i8], [14 x i8]* @"$assign_test_8_1336", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_ADT_0x3620c286757a29985cee194eb90064270fb65414.AddressADT_77", i32 0, i8* null, i8* %"$update_value_1338"), !dbg !255 + %"$gasrem_1339" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1340" = icmp ugt i64 1, %"$gasrem_1339" + br i1 %"$gascmp_1340", label %"$out_of_gas_1341", label %"$have_gas_1342" + +"$out_of_gas_1341": ; preds = %"$have_gas_1333" + call void @_out_of_gas() + br label %"$have_gas_1342" + +"$have_gas_1342": ; preds = %"$out_of_gas_1341", %"$have_gas_1333" + %"$consume_1343" = sub i64 %"$gasrem_1339", 1 + store i64 %"$consume_1343", i64* @_gasrem, align 8 %y = alloca %TName_List_0x3620c286757a29985cee194eb90064270fb65414.AddressADT*, 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" + call void @llvm.dbg.declare(metadata %TName_List_0x3620c286757a29985cee194eb90064270fb65414.AddressADT** %y, metadata !256, metadata !DIExpression()), !dbg !257 + %"$gasrem_1344" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1345" = icmp ugt i64 1, %"$gasrem_1344" + br i1 %"$gascmp_1345", label %"$out_of_gas_1346", label %"$have_gas_1347" -"$out_of_gas_1325": ; preds = %"$have_gas_1321" +"$out_of_gas_1346": ; preds = %"$have_gas_1342" call void @_out_of_gas() - br label %"$have_gas_1326" + br label %"$have_gas_1347" -"$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 +"$have_gas_1347": ; preds = %"$out_of_gas_1346", %"$have_gas_1342" + %"$consume_1348" = sub i64 %"$gasrem_1344", 1 + store i64 %"$consume_1348", i64* @_gasrem, align 8 %n = alloca %TName_List_0x3620c286757a29985cee194eb90064270fb65414.AddressADT*, 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_1330": ; preds = %"$have_gas_1326" - call void @_out_of_gas() - br label %"$have_gas_1331" - -"$have_gas_1331": ; preds = %"$out_of_gas_1330", %"$have_gas_1326" - %"$consume_1332" = sub i64 %"$gasrem_1328", 1 - store i64 %"$consume_1332", i64* @_gasrem, align 8 - %"$adtval_1333_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_1333_salloc" = call i8* @_salloc(i8* %"$adtval_1333_load", i64 1) - %"$adtval_1333" = bitcast i8* %"$adtval_1333_salloc" to %CName_Nil_0x3620c286757a29985cee194eb90064270fb65414.AddressADT* - %"$adtgep_1334" = getelementptr inbounds %CName_Nil_0x3620c286757a29985cee194eb90064270fb65414.AddressADT, %CName_Nil_0x3620c286757a29985cee194eb90064270fb65414.AddressADT* %"$adtval_1333", i32 0, i32 0 - store i8 1, i8* %"$adtgep_1334", align 1 - %"$adtptr_1335" = bitcast %CName_Nil_0x3620c286757a29985cee194eb90064270fb65414.AddressADT* %"$adtval_1333" to %TName_List_0x3620c286757a29985cee194eb90064270fb65414.AddressADT* - store %TName_List_0x3620c286757a29985cee194eb90064270fb65414.AddressADT* %"$adtptr_1335", %TName_List_0x3620c286757a29985cee194eb90064270fb65414.AddressADT** %n, align 8, !dbg !93 - %"$gasrem_1336" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1337" = icmp ugt i64 1, %"$gasrem_1336" - br i1 %"$gascmp_1337", label %"$out_of_gas_1338", label %"$have_gas_1339" - -"$out_of_gas_1338": ; preds = %"$have_gas_1331" - call void @_out_of_gas() - br label %"$have_gas_1339" - -"$have_gas_1339": ; preds = %"$out_of_gas_1338", %"$have_gas_1331" - %"$consume_1340" = sub i64 %"$gasrem_1336", 1 - store i64 %"$consume_1340", i64* @_gasrem, align 8 - %"$$x_2_1341" = load %TName_0x3620c286757a29985cee194eb90064270fb65414.AddressADT*, %TName_0x3620c286757a29985cee194eb90064270fb65414.AddressADT** %"$x_2", align 8 - %"$n_1342" = load %TName_List_0x3620c286757a29985cee194eb90064270fb65414.AddressADT*, %TName_List_0x3620c286757a29985cee194eb90064270fb65414.AddressADT** %n, align 8 - %"$adtval_1343_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_1343_salloc" = call i8* @_salloc(i8* %"$adtval_1343_load", i64 17) - %"$adtval_1343" = bitcast i8* %"$adtval_1343_salloc" to %CName_Cons_0x3620c286757a29985cee194eb90064270fb65414.AddressADT* - %"$adtgep_1344" = getelementptr inbounds %CName_Cons_0x3620c286757a29985cee194eb90064270fb65414.AddressADT, %CName_Cons_0x3620c286757a29985cee194eb90064270fb65414.AddressADT* %"$adtval_1343", i32 0, i32 0 - store i8 0, i8* %"$adtgep_1344", align 1 - %"$adtgep_1345" = getelementptr inbounds %CName_Cons_0x3620c286757a29985cee194eb90064270fb65414.AddressADT, %CName_Cons_0x3620c286757a29985cee194eb90064270fb65414.AddressADT* %"$adtval_1343", i32 0, i32 1 - store %TName_0x3620c286757a29985cee194eb90064270fb65414.AddressADT* %"$$x_2_1341", %TName_0x3620c286757a29985cee194eb90064270fb65414.AddressADT** %"$adtgep_1345", align 8 - %"$adtgep_1346" = getelementptr inbounds %CName_Cons_0x3620c286757a29985cee194eb90064270fb65414.AddressADT, %CName_Cons_0x3620c286757a29985cee194eb90064270fb65414.AddressADT* %"$adtval_1343", i32 0, i32 2 - store %TName_List_0x3620c286757a29985cee194eb90064270fb65414.AddressADT* %"$n_1342", %TName_List_0x3620c286757a29985cee194eb90064270fb65414.AddressADT** %"$adtgep_1346", align 8 - %"$adtptr_1347" = bitcast %CName_Cons_0x3620c286757a29985cee194eb90064270fb65414.AddressADT* %"$adtval_1343" to %TName_List_0x3620c286757a29985cee194eb90064270fb65414.AddressADT* - store %TName_List_0x3620c286757a29985cee194eb90064270fb65414.AddressADT* %"$adtptr_1347", %TName_List_0x3620c286757a29985cee194eb90064270fb65414.AddressADT** %y, align 8, !dbg !94 - %"$y_1348" = load %TName_List_0x3620c286757a29985cee194eb90064270fb65414.AddressADT*, %TName_List_0x3620c286757a29985cee194eb90064270fb65414.AddressADT** %y, align 8 - %"$$y_1348_1349" = bitcast %TName_List_0x3620c286757a29985cee194eb90064270fb65414.AddressADT* %"$y_1348" to i8* - %"$_literal_cost_call_1350" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_List_0x3620c286757a29985cee194eb90064270fb65414.AddressADT_72", i8* %"$$y_1348_1349") - %"$gasrem_1351" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1352" = icmp ugt i64 %"$_literal_cost_call_1350", %"$gasrem_1351" - br i1 %"$gascmp_1352", label %"$out_of_gas_1353", label %"$have_gas_1354" - -"$out_of_gas_1353": ; preds = %"$have_gas_1339" - call void @_out_of_gas() - br label %"$have_gas_1354" - -"$have_gas_1354": ; preds = %"$out_of_gas_1353", %"$have_gas_1339" - %"$consume_1355" = sub i64 %"$gasrem_1351", %"$_literal_cost_call_1350" - store i64 %"$consume_1355", i64* @_gasrem, align 8 - %"$execptr_load_1356" = load i8*, i8** @_execptr, align 8 - %"$y_1358" = load %TName_List_0x3620c286757a29985cee194eb90064270fb65414.AddressADT*, %TName_List_0x3620c286757a29985cee194eb90064270fb65414.AddressADT** %y, align 8 - %"$update_value_1359" = bitcast %TName_List_0x3620c286757a29985cee194eb90064270fb65414.AddressADT* %"$y_1358" to i8* - call void @_update_field(i8* %"$execptr_load_1356", i8* getelementptr inbounds ([14 x i8], [14 x i8]* @"$assign_test_9_1357", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_ADT_List_0x3620c286757a29985cee194eb90064270fb65414.AddressADT_72", i32 0, i8* null, i8* %"$update_value_1359"), !dbg !95 - %"$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_1354" - call void @_out_of_gas() - br label %"$have_gas_1363" - -"$have_gas_1363": ; preds = %"$out_of_gas_1362", %"$have_gas_1354" - %"$consume_1364" = sub i64 %"$gasrem_1360", 1 - store i64 %"$consume_1364", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_List_0x3620c286757a29985cee194eb90064270fb65414.AddressADT** %n, metadata !258, metadata !DIExpression()), !dbg !259 + %"$gasrem_1349" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1350" = icmp ugt i64 1, %"$gasrem_1349" + br i1 %"$gascmp_1350", label %"$out_of_gas_1351", label %"$have_gas_1352" + +"$out_of_gas_1351": ; preds = %"$have_gas_1347" + call void @_out_of_gas() + br label %"$have_gas_1352" + +"$have_gas_1352": ; preds = %"$out_of_gas_1351", %"$have_gas_1347" + %"$consume_1353" = sub i64 %"$gasrem_1349", 1 + store i64 %"$consume_1353", i64* @_gasrem, align 8 + %"$adtval_1354_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_1354_salloc" = call i8* @_salloc(i8* %"$adtval_1354_load", i64 1) + %"$adtval_1354" = bitcast i8* %"$adtval_1354_salloc" to %CName_Nil_0x3620c286757a29985cee194eb90064270fb65414.AddressADT* + %"$adtgep_1355" = getelementptr inbounds %CName_Nil_0x3620c286757a29985cee194eb90064270fb65414.AddressADT, %CName_Nil_0x3620c286757a29985cee194eb90064270fb65414.AddressADT* %"$adtval_1354", i32 0, i32 0 + store i8 1, i8* %"$adtgep_1355", align 1 + %"$adtptr_1356" = bitcast %CName_Nil_0x3620c286757a29985cee194eb90064270fb65414.AddressADT* %"$adtval_1354" to %TName_List_0x3620c286757a29985cee194eb90064270fb65414.AddressADT* + store %TName_List_0x3620c286757a29985cee194eb90064270fb65414.AddressADT* %"$adtptr_1356", %TName_List_0x3620c286757a29985cee194eb90064270fb65414.AddressADT** %n, align 8, !dbg !260 + %"$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_1352" + call void @_out_of_gas() + br label %"$have_gas_1360" + +"$have_gas_1360": ; preds = %"$out_of_gas_1359", %"$have_gas_1352" + %"$consume_1361" = sub i64 %"$gasrem_1357", 1 + store i64 %"$consume_1361", i64* @_gasrem, align 8 + %"$$x_2_1362" = load %TName_0x3620c286757a29985cee194eb90064270fb65414.AddressADT*, %TName_0x3620c286757a29985cee194eb90064270fb65414.AddressADT** %"$x_2", align 8 + %"$n_1363" = load %TName_List_0x3620c286757a29985cee194eb90064270fb65414.AddressADT*, %TName_List_0x3620c286757a29985cee194eb90064270fb65414.AddressADT** %n, align 8 + %"$adtval_1364_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_1364_salloc" = call i8* @_salloc(i8* %"$adtval_1364_load", i64 17) + %"$adtval_1364" = bitcast i8* %"$adtval_1364_salloc" to %CName_Cons_0x3620c286757a29985cee194eb90064270fb65414.AddressADT* + %"$adtgep_1365" = getelementptr inbounds %CName_Cons_0x3620c286757a29985cee194eb90064270fb65414.AddressADT, %CName_Cons_0x3620c286757a29985cee194eb90064270fb65414.AddressADT* %"$adtval_1364", i32 0, i32 0 + store i8 0, i8* %"$adtgep_1365", align 1 + %"$adtgep_1366" = getelementptr inbounds %CName_Cons_0x3620c286757a29985cee194eb90064270fb65414.AddressADT, %CName_Cons_0x3620c286757a29985cee194eb90064270fb65414.AddressADT* %"$adtval_1364", i32 0, i32 1 + store %TName_0x3620c286757a29985cee194eb90064270fb65414.AddressADT* %"$$x_2_1362", %TName_0x3620c286757a29985cee194eb90064270fb65414.AddressADT** %"$adtgep_1366", align 8 + %"$adtgep_1367" = getelementptr inbounds %CName_Cons_0x3620c286757a29985cee194eb90064270fb65414.AddressADT, %CName_Cons_0x3620c286757a29985cee194eb90064270fb65414.AddressADT* %"$adtval_1364", i32 0, i32 2 + store %TName_List_0x3620c286757a29985cee194eb90064270fb65414.AddressADT* %"$n_1363", %TName_List_0x3620c286757a29985cee194eb90064270fb65414.AddressADT** %"$adtgep_1367", align 8 + %"$adtptr_1368" = bitcast %CName_Cons_0x3620c286757a29985cee194eb90064270fb65414.AddressADT* %"$adtval_1364" to %TName_List_0x3620c286757a29985cee194eb90064270fb65414.AddressADT* + store %TName_List_0x3620c286757a29985cee194eb90064270fb65414.AddressADT* %"$adtptr_1368", %TName_List_0x3620c286757a29985cee194eb90064270fb65414.AddressADT** %y, align 8, !dbg !261 + %"$y_1369" = load %TName_List_0x3620c286757a29985cee194eb90064270fb65414.AddressADT*, %TName_List_0x3620c286757a29985cee194eb90064270fb65414.AddressADT** %y, align 8 + %"$$y_1369_1370" = bitcast %TName_List_0x3620c286757a29985cee194eb90064270fb65414.AddressADT* %"$y_1369" to i8* + %"$_literal_cost_call_1371" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_List_0x3620c286757a29985cee194eb90064270fb65414.AddressADT_72", i8* %"$$y_1369_1370") + %"$gasrem_1372" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1373" = icmp ugt i64 %"$_literal_cost_call_1371", %"$gasrem_1372" + br i1 %"$gascmp_1373", label %"$out_of_gas_1374", label %"$have_gas_1375" + +"$out_of_gas_1374": ; preds = %"$have_gas_1360" + call void @_out_of_gas() + br label %"$have_gas_1375" + +"$have_gas_1375": ; preds = %"$out_of_gas_1374", %"$have_gas_1360" + %"$consume_1376" = sub i64 %"$gasrem_1372", %"$_literal_cost_call_1371" + store i64 %"$consume_1376", i64* @_gasrem, align 8 + %"$execptr_load_1377" = load i8*, i8** @_execptr, align 8 + %"$y_1379" = load %TName_List_0x3620c286757a29985cee194eb90064270fb65414.AddressADT*, %TName_List_0x3620c286757a29985cee194eb90064270fb65414.AddressADT** %y, align 8 + %"$update_value_1380" = bitcast %TName_List_0x3620c286757a29985cee194eb90064270fb65414.AddressADT* %"$y_1379" to i8* + call void @_update_field(i8* %"$execptr_load_1377", i8* getelementptr inbounds ([14 x i8], [14 x i8]* @"$assign_test_9_1378", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_ADT_List_0x3620c286757a29985cee194eb90064270fb65414.AddressADT_72", i32 0, i8* null, i8* %"$update_value_1380"), !dbg !262 + %"$gasrem_1381" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1382" = icmp ugt i64 1, %"$gasrem_1381" + br i1 %"$gascmp_1382", label %"$out_of_gas_1383", label %"$have_gas_1384" + +"$out_of_gas_1383": ; preds = %"$have_gas_1375" + call void @_out_of_gas() + br label %"$have_gas_1384" + +"$have_gas_1384": ; preds = %"$out_of_gas_1383", %"$have_gas_1375" + %"$consume_1385" = sub i64 %"$gasrem_1381", 1 + store i64 %"$consume_1385", i64* @_gasrem, align 8 %z = alloca %"Map_Uint128_Map_(Uint128)_(0x3620c286757a29985cee194eb90064270fb65414.AddressADT)"*, 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" + call void @llvm.dbg.declare(metadata %"Map_Uint128_Map_(Uint128)_(0x3620c286757a29985cee194eb90064270fb65414.AddressADT)"** %z, metadata !263, metadata !DIExpression()), !dbg !264 + %"$gasrem_1386" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1387" = icmp ugt i64 1, %"$gasrem_1386" + br i1 %"$gascmp_1387", label %"$out_of_gas_1388", label %"$have_gas_1389" -"$out_of_gas_1367": ; preds = %"$have_gas_1363" +"$out_of_gas_1388": ; preds = %"$have_gas_1384" call void @_out_of_gas() - br label %"$have_gas_1368" + br label %"$have_gas_1389" -"$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 +"$have_gas_1389": ; preds = %"$out_of_gas_1388", %"$have_gas_1384" + %"$consume_1390" = sub i64 %"$gasrem_1386", 1 + store i64 %"$consume_1390", i64* @_gasrem, align 8 %"$n_3" = alloca %"Map_Uint128_Map_(Uint128)_(0x3620c286757a29985cee194eb90064270fb65414.AddressADT)"*, align 8 - %"$gasrem_1370" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1371" = icmp ugt i64 1, %"$gasrem_1370" - br i1 %"$gascmp_1371", label %"$out_of_gas_1372", label %"$have_gas_1373" + call void @llvm.dbg.declare(metadata %"Map_Uint128_Map_(Uint128)_(0x3620c286757a29985cee194eb90064270fb65414.AddressADT)"** %"$n_3", metadata !265, metadata !DIExpression()), !dbg !266 + %"$gasrem_1391" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1392" = icmp ugt i64 1, %"$gasrem_1391" + br i1 %"$gascmp_1392", label %"$out_of_gas_1393", label %"$have_gas_1394" -"$out_of_gas_1372": ; preds = %"$have_gas_1368" +"$out_of_gas_1393": ; preds = %"$have_gas_1389" call void @_out_of_gas() - br label %"$have_gas_1373" + br label %"$have_gas_1394" -"$have_gas_1373": ; preds = %"$out_of_gas_1372", %"$have_gas_1368" - %"$consume_1374" = sub i64 %"$gasrem_1370", 1 - store i64 %"$consume_1374", i64* @_gasrem, align 8 - %"$execptr_load_1375" = load i8*, i8** @_execptr, align 8 - %"$_new_empty_map_call_1376" = call i8* @_new_empty_map(i8* %"$execptr_load_1375") - %"$_new_empty_map_1377" = bitcast i8* %"$_new_empty_map_call_1376" to %"Map_Uint128_Map_(Uint128)_(0x3620c286757a29985cee194eb90064270fb65414.AddressADT)"* - store %"Map_Uint128_Map_(Uint128)_(0x3620c286757a29985cee194eb90064270fb65414.AddressADT)"* %"$_new_empty_map_1377", %"Map_Uint128_Map_(Uint128)_(0x3620c286757a29985cee194eb90064270fb65414.AddressADT)"** %"$n_3", align 8, !dbg !96 - %"$gasrem_1378" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1379" = icmp ugt i64 1, %"$gasrem_1378" - br i1 %"$gascmp_1379", label %"$out_of_gas_1380", label %"$have_gas_1381" +"$have_gas_1394": ; preds = %"$out_of_gas_1393", %"$have_gas_1389" + %"$consume_1395" = sub i64 %"$gasrem_1391", 1 + store i64 %"$consume_1395", i64* @_gasrem, align 8 + %"$execptr_load_1396" = load i8*, i8** @_execptr, align 8 + %"$_new_empty_map_call_1397" = call i8* @_new_empty_map(i8* %"$execptr_load_1396") + %"$_new_empty_map_1398" = bitcast i8* %"$_new_empty_map_call_1397" to %"Map_Uint128_Map_(Uint128)_(0x3620c286757a29985cee194eb90064270fb65414.AddressADT)"* + store %"Map_Uint128_Map_(Uint128)_(0x3620c286757a29985cee194eb90064270fb65414.AddressADT)"* %"$_new_empty_map_1398", %"Map_Uint128_Map_(Uint128)_(0x3620c286757a29985cee194eb90064270fb65414.AddressADT)"** %"$n_3", align 8, !dbg !267 + %"$gasrem_1399" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1400" = icmp ugt i64 1, %"$gasrem_1399" + br i1 %"$gascmp_1400", label %"$out_of_gas_1401", label %"$have_gas_1402" -"$out_of_gas_1380": ; preds = %"$have_gas_1373" +"$out_of_gas_1401": ; preds = %"$have_gas_1394" call void @_out_of_gas() - br label %"$have_gas_1381" + br label %"$have_gas_1402" -"$have_gas_1381": ; preds = %"$out_of_gas_1380", %"$have_gas_1373" - %"$consume_1382" = sub i64 %"$gasrem_1378", 1 - store i64 %"$consume_1382", i64* @_gasrem, align 8 +"$have_gas_1402": ; preds = %"$out_of_gas_1401", %"$have_gas_1394" + %"$consume_1403" = sub i64 %"$gasrem_1399", 1 + store i64 %"$consume_1403", i64* @_gasrem, align 8 %sub_n = alloca %Map_Uint128_0x3620c286757a29985cee194eb90064270fb65414.AddressADT*, 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" + call void @llvm.dbg.declare(metadata %Map_Uint128_0x3620c286757a29985cee194eb90064270fb65414.AddressADT** %sub_n, metadata !268, metadata !DIExpression()), !dbg !271 + %"$gasrem_1404" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1405" = icmp ugt i64 1, %"$gasrem_1404" + br i1 %"$gascmp_1405", label %"$out_of_gas_1406", label %"$have_gas_1407" -"$out_of_gas_1385": ; preds = %"$have_gas_1381" +"$out_of_gas_1406": ; preds = %"$have_gas_1402" call void @_out_of_gas() - br label %"$have_gas_1386" + br label %"$have_gas_1407" -"$have_gas_1386": ; preds = %"$out_of_gas_1385", %"$have_gas_1381" - %"$consume_1387" = sub i64 %"$gasrem_1383", 1 - store i64 %"$consume_1387", i64* @_gasrem, align 8 - %"$execptr_load_1388" = load i8*, i8** @_execptr, align 8 - %"$_new_empty_map_call_1389" = call i8* @_new_empty_map(i8* %"$execptr_load_1388") - %"$_new_empty_map_1390" = bitcast i8* %"$_new_empty_map_call_1389" to %Map_Uint128_0x3620c286757a29985cee194eb90064270fb65414.AddressADT* - store %Map_Uint128_0x3620c286757a29985cee194eb90064270fb65414.AddressADT* %"$_new_empty_map_1390", %Map_Uint128_0x3620c286757a29985cee194eb90064270fb65414.AddressADT** %sub_n, align 8, !dbg !97 - %"$gasrem_1391" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1392" = icmp ugt i64 1, %"$gasrem_1391" - br i1 %"$gascmp_1392", label %"$out_of_gas_1393", label %"$have_gas_1394" +"$have_gas_1407": ; preds = %"$out_of_gas_1406", %"$have_gas_1402" + %"$consume_1408" = sub i64 %"$gasrem_1404", 1 + store i64 %"$consume_1408", i64* @_gasrem, align 8 + %"$execptr_load_1409" = load i8*, i8** @_execptr, align 8 + %"$_new_empty_map_call_1410" = call i8* @_new_empty_map(i8* %"$execptr_load_1409") + %"$_new_empty_map_1411" = bitcast i8* %"$_new_empty_map_call_1410" to %Map_Uint128_0x3620c286757a29985cee194eb90064270fb65414.AddressADT* + store %Map_Uint128_0x3620c286757a29985cee194eb90064270fb65414.AddressADT* %"$_new_empty_map_1411", %Map_Uint128_0x3620c286757a29985cee194eb90064270fb65414.AddressADT** %sub_n, align 8, !dbg !272 + %"$gasrem_1412" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1413" = icmp ugt i64 1, %"$gasrem_1412" + br i1 %"$gascmp_1413", label %"$out_of_gas_1414", label %"$have_gas_1415" -"$out_of_gas_1393": ; preds = %"$have_gas_1386" +"$out_of_gas_1414": ; preds = %"$have_gas_1407" call void @_out_of_gas() - br label %"$have_gas_1394" + br label %"$have_gas_1415" -"$have_gas_1394": ; preds = %"$out_of_gas_1393", %"$have_gas_1386" - %"$consume_1395" = sub i64 %"$gasrem_1391", 1 - store i64 %"$consume_1395", i64* @_gasrem, align 8 +"$have_gas_1415": ; preds = %"$out_of_gas_1414", %"$have_gas_1407" + %"$consume_1416" = sub i64 %"$gasrem_1412", 1 + store i64 %"$consume_1416", i64* @_gasrem, align 8 %sub_k = alloca %Uint128, align 8 - %"$gasrem_1396" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1397" = icmp ugt i64 1, %"$gasrem_1396" - br i1 %"$gascmp_1397", label %"$out_of_gas_1398", label %"$have_gas_1399" + call void @llvm.dbg.declare(metadata %Uint128* %sub_k, metadata !273, metadata !DIExpression()), !dbg !274 + %"$gasrem_1417" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1418" = icmp ugt i64 1, %"$gasrem_1417" + br i1 %"$gascmp_1418", label %"$out_of_gas_1419", label %"$have_gas_1420" -"$out_of_gas_1398": ; preds = %"$have_gas_1394" +"$out_of_gas_1419": ; preds = %"$have_gas_1415" call void @_out_of_gas() - br label %"$have_gas_1399" + br label %"$have_gas_1420" -"$have_gas_1399": ; preds = %"$out_of_gas_1398", %"$have_gas_1394" - %"$consume_1400" = sub i64 %"$gasrem_1396", 1 - store i64 %"$consume_1400", i64* @_gasrem, align 8 - store %Uint128 zeroinitializer, %Uint128* %sub_k, align 8, !dbg !98 - %"$gasrem_1401" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1402" = icmp ugt i64 1, %"$gasrem_1401" - br i1 %"$gascmp_1402", label %"$out_of_gas_1403", label %"$have_gas_1404" +"$have_gas_1420": ; preds = %"$out_of_gas_1419", %"$have_gas_1415" + %"$consume_1421" = sub i64 %"$gasrem_1417", 1 + store i64 %"$consume_1421", i64* @_gasrem, align 8 + store %Uint128 zeroinitializer, %Uint128* %sub_k, align 8, !dbg !275 + %"$gasrem_1422" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1423" = icmp ugt i64 1, %"$gasrem_1422" + br i1 %"$gascmp_1423", label %"$out_of_gas_1424", label %"$have_gas_1425" -"$out_of_gas_1403": ; preds = %"$have_gas_1399" +"$out_of_gas_1424": ; preds = %"$have_gas_1420" call void @_out_of_gas() - br label %"$have_gas_1404" + br label %"$have_gas_1425" -"$have_gas_1404": ; preds = %"$out_of_gas_1403", %"$have_gas_1399" - %"$consume_1405" = sub i64 %"$gasrem_1401", 1 - store i64 %"$consume_1405", i64* @_gasrem, align 8 +"$have_gas_1425": ; preds = %"$out_of_gas_1424", %"$have_gas_1420" + %"$consume_1426" = sub i64 %"$gasrem_1422", 1 + store i64 %"$consume_1426", i64* @_gasrem, align 8 %sub_res = alloca %Map_Uint128_0x3620c286757a29985cee194eb90064270fb65414.AddressADT*, align 8 - %"$sub_n_1406" = load %Map_Uint128_0x3620c286757a29985cee194eb90064270fb65414.AddressADT*, %Map_Uint128_0x3620c286757a29985cee194eb90064270fb65414.AddressADT** %sub_n, align 8 - %"$$sub_n_1406_1407" = bitcast %Map_Uint128_0x3620c286757a29985cee194eb90064270fb65414.AddressADT* %"$sub_n_1406" to i8* - %"$_lengthof_call_1408" = call i64 @_lengthof(%_TyDescrTy_Typ* @"$TyDescr_Map_80", i8* %"$$sub_n_1406_1407") - %"$gasadd_1409" = add i64 1, %"$_lengthof_call_1408" - %"$gasrem_1410" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1411" = icmp ugt i64 %"$gasadd_1409", %"$gasrem_1410" - br i1 %"$gascmp_1411", label %"$out_of_gas_1412", label %"$have_gas_1413" - -"$out_of_gas_1412": ; preds = %"$have_gas_1404" - call void @_out_of_gas() - br label %"$have_gas_1413" - -"$have_gas_1413": ; preds = %"$out_of_gas_1412", %"$have_gas_1404" - %"$consume_1414" = sub i64 %"$gasrem_1410", %"$gasadd_1409" - store i64 %"$consume_1414", i64* @_gasrem, align 8 - %"$execptr_load_1415" = load i8*, i8** @_execptr, align 8 - %"$sub_n_1416" = load %Map_Uint128_0x3620c286757a29985cee194eb90064270fb65414.AddressADT*, %Map_Uint128_0x3620c286757a29985cee194eb90064270fb65414.AddressADT** %sub_n, align 8 - %"$$sub_n_1416_1417" = bitcast %Map_Uint128_0x3620c286757a29985cee194eb90064270fb65414.AddressADT* %"$sub_n_1416" to i8* - %"$put_sub_k_1418" = alloca %Uint128, align 8 - %"$sub_k_1419" = load %Uint128, %Uint128* %sub_k, align 8 - store %Uint128 %"$sub_k_1419", %Uint128* %"$put_sub_k_1418", align 8 - %"$$put_sub_k_1418_1420" = bitcast %Uint128* %"$put_sub_k_1418" to i8* - %"$$x_2_1421" = load %TName_0x3620c286757a29985cee194eb90064270fb65414.AddressADT*, %TName_0x3620c286757a29985cee194eb90064270fb65414.AddressADT** %"$x_2", align 8 - %"$$$x_2_1421_1422" = bitcast %TName_0x3620c286757a29985cee194eb90064270fb65414.AddressADT* %"$$x_2_1421" to i8* - %"$put_call_1423" = call i8* @_put(i8* %"$execptr_load_1415", %_TyDescrTy_Typ* @"$TyDescr_Map_80", i8* %"$$sub_n_1416_1417", i8* %"$$put_sub_k_1418_1420", i8* %"$$$x_2_1421_1422"), !dbg !99 - %"$put_1424" = bitcast i8* %"$put_call_1423" to %Map_Uint128_0x3620c286757a29985cee194eb90064270fb65414.AddressADT* - store %Map_Uint128_0x3620c286757a29985cee194eb90064270fb65414.AddressADT* %"$put_1424", %Map_Uint128_0x3620c286757a29985cee194eb90064270fb65414.AddressADT** %sub_res, align 8, !dbg !99 - %"$$n_3_1425" = load %"Map_Uint128_Map_(Uint128)_(0x3620c286757a29985cee194eb90064270fb65414.AddressADT)"*, %"Map_Uint128_Map_(Uint128)_(0x3620c286757a29985cee194eb90064270fb65414.AddressADT)"** %"$n_3", align 8 - %"$$$n_3_1425_1426" = bitcast %"Map_Uint128_Map_(Uint128)_(0x3620c286757a29985cee194eb90064270fb65414.AddressADT)"* %"$$n_3_1425" to i8* - %"$_lengthof_call_1427" = call i64 @_lengthof(%_TyDescrTy_Typ* @"$TyDescr_Map_81", i8* %"$$$n_3_1425_1426") - %"$gasadd_1428" = add i64 1, %"$_lengthof_call_1427" - %"$gasrem_1429" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1430" = icmp ugt i64 %"$gasadd_1428", %"$gasrem_1429" - br i1 %"$gascmp_1430", label %"$out_of_gas_1431", label %"$have_gas_1432" - -"$out_of_gas_1431": ; preds = %"$have_gas_1413" - call void @_out_of_gas() - br label %"$have_gas_1432" - -"$have_gas_1432": ; preds = %"$out_of_gas_1431", %"$have_gas_1413" - %"$consume_1433" = sub i64 %"$gasrem_1429", %"$gasadd_1428" - store i64 %"$consume_1433", i64* @_gasrem, align 8 - %"$execptr_load_1434" = load i8*, i8** @_execptr, align 8 - %"$$n_3_1435" = load %"Map_Uint128_Map_(Uint128)_(0x3620c286757a29985cee194eb90064270fb65414.AddressADT)"*, %"Map_Uint128_Map_(Uint128)_(0x3620c286757a29985cee194eb90064270fb65414.AddressADT)"** %"$n_3", align 8 - %"$$$n_3_1435_1436" = bitcast %"Map_Uint128_Map_(Uint128)_(0x3620c286757a29985cee194eb90064270fb65414.AddressADT)"* %"$$n_3_1435" to i8* - %"$put_sub_k_1437" = alloca %Uint128, align 8 - %"$sub_k_1438" = load %Uint128, %Uint128* %sub_k, align 8 - store %Uint128 %"$sub_k_1438", %Uint128* %"$put_sub_k_1437", align 8 - %"$$put_sub_k_1437_1439" = bitcast %Uint128* %"$put_sub_k_1437" to i8* - %"$sub_res_1440" = load %Map_Uint128_0x3620c286757a29985cee194eb90064270fb65414.AddressADT*, %Map_Uint128_0x3620c286757a29985cee194eb90064270fb65414.AddressADT** %sub_res, align 8 - %"$$sub_res_1440_1441" = bitcast %Map_Uint128_0x3620c286757a29985cee194eb90064270fb65414.AddressADT* %"$sub_res_1440" to i8* - %"$put_call_1442" = call i8* @_put(i8* %"$execptr_load_1434", %_TyDescrTy_Typ* @"$TyDescr_Map_81", i8* %"$$$n_3_1435_1436", i8* %"$$put_sub_k_1437_1439", i8* %"$$sub_res_1440_1441"), !dbg !100 - %"$put_1443" = bitcast i8* %"$put_call_1442" to %"Map_Uint128_Map_(Uint128)_(0x3620c286757a29985cee194eb90064270fb65414.AddressADT)"* - store %"Map_Uint128_Map_(Uint128)_(0x3620c286757a29985cee194eb90064270fb65414.AddressADT)"* %"$put_1443", %"Map_Uint128_Map_(Uint128)_(0x3620c286757a29985cee194eb90064270fb65414.AddressADT)"** %z, align 8, !dbg !100 - %"$z_1444" = load %"Map_Uint128_Map_(Uint128)_(0x3620c286757a29985cee194eb90064270fb65414.AddressADT)"*, %"Map_Uint128_Map_(Uint128)_(0x3620c286757a29985cee194eb90064270fb65414.AddressADT)"** %z, align 8 - %"$$z_1444_1445" = bitcast %"Map_Uint128_Map_(Uint128)_(0x3620c286757a29985cee194eb90064270fb65414.AddressADT)"* %"$z_1444" to i8* - %"$_literal_cost_call_1446" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Map_81", i8* %"$$z_1444_1445") - %"$gasrem_1447" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1448" = icmp ugt i64 %"$_literal_cost_call_1446", %"$gasrem_1447" - br i1 %"$gascmp_1448", label %"$out_of_gas_1449", label %"$have_gas_1450" - -"$out_of_gas_1449": ; preds = %"$have_gas_1432" - call void @_out_of_gas() - br label %"$have_gas_1450" - -"$have_gas_1450": ; preds = %"$out_of_gas_1449", %"$have_gas_1432" - %"$consume_1451" = sub i64 %"$gasrem_1447", %"$_literal_cost_call_1446" - store i64 %"$consume_1451", i64* @_gasrem, align 8 - %"$execptr_load_1452" = load i8*, i8** @_execptr, align 8 - %"$z_1454" = load %"Map_Uint128_Map_(Uint128)_(0x3620c286757a29985cee194eb90064270fb65414.AddressADT)"*, %"Map_Uint128_Map_(Uint128)_(0x3620c286757a29985cee194eb90064270fb65414.AddressADT)"** %z, align 8 - %"$update_value_1455" = bitcast %"Map_Uint128_Map_(Uint128)_(0x3620c286757a29985cee194eb90064270fb65414.AddressADT)"* %"$z_1454" to i8* - call void @_update_field(i8* %"$execptr_load_1452", i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$assign_test_10_1453", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_81", i32 0, i8* null, i8* %"$update_value_1455"), !dbg !101 - %"$gasrem_1456" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1457" = icmp ugt i64 1, %"$gasrem_1456" - br i1 %"$gascmp_1457", label %"$out_of_gas_1458", label %"$have_gas_1459" - -"$out_of_gas_1458": ; preds = %"$have_gas_1450" - call void @_out_of_gas() - br label %"$have_gas_1459" - -"$have_gas_1459": ; preds = %"$out_of_gas_1458", %"$have_gas_1450" - %"$consume_1460" = sub i64 %"$gasrem_1456", 1 - store i64 %"$consume_1460", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %Map_Uint128_0x3620c286757a29985cee194eb90064270fb65414.AddressADT** %sub_res, metadata !276, metadata !DIExpression()), !dbg !277 + %"$sub_n_1427" = load %Map_Uint128_0x3620c286757a29985cee194eb90064270fb65414.AddressADT*, %Map_Uint128_0x3620c286757a29985cee194eb90064270fb65414.AddressADT** %sub_n, align 8 + %"$$sub_n_1427_1428" = bitcast %Map_Uint128_0x3620c286757a29985cee194eb90064270fb65414.AddressADT* %"$sub_n_1427" to i8* + %"$_lengthof_call_1429" = call i64 @_lengthof(%_TyDescrTy_Typ* @"$TyDescr_Map_80", i8* %"$$sub_n_1427_1428") + %"$gasadd_1430" = add i64 1, %"$_lengthof_call_1429" + %"$gasrem_1431" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1432" = icmp ugt i64 %"$gasadd_1430", %"$gasrem_1431" + br i1 %"$gascmp_1432", label %"$out_of_gas_1433", label %"$have_gas_1434" + +"$out_of_gas_1433": ; preds = %"$have_gas_1425" + call void @_out_of_gas() + br label %"$have_gas_1434" + +"$have_gas_1434": ; preds = %"$out_of_gas_1433", %"$have_gas_1425" + %"$consume_1435" = sub i64 %"$gasrem_1431", %"$gasadd_1430" + store i64 %"$consume_1435", i64* @_gasrem, align 8 + %"$execptr_load_1436" = load i8*, i8** @_execptr, align 8 + %"$sub_n_1437" = load %Map_Uint128_0x3620c286757a29985cee194eb90064270fb65414.AddressADT*, %Map_Uint128_0x3620c286757a29985cee194eb90064270fb65414.AddressADT** %sub_n, align 8 + %"$$sub_n_1437_1438" = bitcast %Map_Uint128_0x3620c286757a29985cee194eb90064270fb65414.AddressADT* %"$sub_n_1437" to i8* + %"$put_sub_k_1439" = alloca %Uint128, align 8 + %"$sub_k_1440" = load %Uint128, %Uint128* %sub_k, align 8 + store %Uint128 %"$sub_k_1440", %Uint128* %"$put_sub_k_1439", align 8 + %"$$put_sub_k_1439_1441" = bitcast %Uint128* %"$put_sub_k_1439" to i8* + %"$$x_2_1442" = load %TName_0x3620c286757a29985cee194eb90064270fb65414.AddressADT*, %TName_0x3620c286757a29985cee194eb90064270fb65414.AddressADT** %"$x_2", align 8 + %"$$$x_2_1442_1443" = bitcast %TName_0x3620c286757a29985cee194eb90064270fb65414.AddressADT* %"$$x_2_1442" to i8* + %"$put_call_1444" = call i8* @_put(i8* %"$execptr_load_1436", %_TyDescrTy_Typ* @"$TyDescr_Map_80", i8* %"$$sub_n_1437_1438", i8* %"$$put_sub_k_1439_1441", i8* %"$$$x_2_1442_1443"), !dbg !278 + %"$put_1445" = bitcast i8* %"$put_call_1444" to %Map_Uint128_0x3620c286757a29985cee194eb90064270fb65414.AddressADT* + store %Map_Uint128_0x3620c286757a29985cee194eb90064270fb65414.AddressADT* %"$put_1445", %Map_Uint128_0x3620c286757a29985cee194eb90064270fb65414.AddressADT** %sub_res, align 8, !dbg !278 + %"$$n_3_1446" = load %"Map_Uint128_Map_(Uint128)_(0x3620c286757a29985cee194eb90064270fb65414.AddressADT)"*, %"Map_Uint128_Map_(Uint128)_(0x3620c286757a29985cee194eb90064270fb65414.AddressADT)"** %"$n_3", align 8 + %"$$$n_3_1446_1447" = bitcast %"Map_Uint128_Map_(Uint128)_(0x3620c286757a29985cee194eb90064270fb65414.AddressADT)"* %"$$n_3_1446" to i8* + %"$_lengthof_call_1448" = call i64 @_lengthof(%_TyDescrTy_Typ* @"$TyDescr_Map_81", i8* %"$$$n_3_1446_1447") + %"$gasadd_1449" = add i64 1, %"$_lengthof_call_1448" + %"$gasrem_1450" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1451" = icmp ugt i64 %"$gasadd_1449", %"$gasrem_1450" + br i1 %"$gascmp_1451", label %"$out_of_gas_1452", label %"$have_gas_1453" + +"$out_of_gas_1452": ; preds = %"$have_gas_1434" + call void @_out_of_gas() + br label %"$have_gas_1453" + +"$have_gas_1453": ; preds = %"$out_of_gas_1452", %"$have_gas_1434" + %"$consume_1454" = sub i64 %"$gasrem_1450", %"$gasadd_1449" + store i64 %"$consume_1454", i64* @_gasrem, align 8 + %"$execptr_load_1455" = load i8*, i8** @_execptr, align 8 + %"$$n_3_1456" = load %"Map_Uint128_Map_(Uint128)_(0x3620c286757a29985cee194eb90064270fb65414.AddressADT)"*, %"Map_Uint128_Map_(Uint128)_(0x3620c286757a29985cee194eb90064270fb65414.AddressADT)"** %"$n_3", align 8 + %"$$$n_3_1456_1457" = bitcast %"Map_Uint128_Map_(Uint128)_(0x3620c286757a29985cee194eb90064270fb65414.AddressADT)"* %"$$n_3_1456" to i8* + %"$put_sub_k_1458" = alloca %Uint128, align 8 + %"$sub_k_1459" = load %Uint128, %Uint128* %sub_k, align 8 + store %Uint128 %"$sub_k_1459", %Uint128* %"$put_sub_k_1458", align 8 + %"$$put_sub_k_1458_1460" = bitcast %Uint128* %"$put_sub_k_1458" to i8* + %"$sub_res_1461" = load %Map_Uint128_0x3620c286757a29985cee194eb90064270fb65414.AddressADT*, %Map_Uint128_0x3620c286757a29985cee194eb90064270fb65414.AddressADT** %sub_res, align 8 + %"$$sub_res_1461_1462" = bitcast %Map_Uint128_0x3620c286757a29985cee194eb90064270fb65414.AddressADT* %"$sub_res_1461" to i8* + %"$put_call_1463" = call i8* @_put(i8* %"$execptr_load_1455", %_TyDescrTy_Typ* @"$TyDescr_Map_81", i8* %"$$$n_3_1456_1457", i8* %"$$put_sub_k_1458_1460", i8* %"$$sub_res_1461_1462"), !dbg !279 + %"$put_1464" = bitcast i8* %"$put_call_1463" to %"Map_Uint128_Map_(Uint128)_(0x3620c286757a29985cee194eb90064270fb65414.AddressADT)"* + store %"Map_Uint128_Map_(Uint128)_(0x3620c286757a29985cee194eb90064270fb65414.AddressADT)"* %"$put_1464", %"Map_Uint128_Map_(Uint128)_(0x3620c286757a29985cee194eb90064270fb65414.AddressADT)"** %z, align 8, !dbg !279 + %"$z_1465" = load %"Map_Uint128_Map_(Uint128)_(0x3620c286757a29985cee194eb90064270fb65414.AddressADT)"*, %"Map_Uint128_Map_(Uint128)_(0x3620c286757a29985cee194eb90064270fb65414.AddressADT)"** %z, align 8 + %"$$z_1465_1466" = bitcast %"Map_Uint128_Map_(Uint128)_(0x3620c286757a29985cee194eb90064270fb65414.AddressADT)"* %"$z_1465" to i8* + %"$_literal_cost_call_1467" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Map_81", i8* %"$$z_1465_1466") + %"$gasrem_1468" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1469" = icmp ugt i64 %"$_literal_cost_call_1467", %"$gasrem_1468" + br i1 %"$gascmp_1469", label %"$out_of_gas_1470", label %"$have_gas_1471" + +"$out_of_gas_1470": ; preds = %"$have_gas_1453" + call void @_out_of_gas() + br label %"$have_gas_1471" + +"$have_gas_1471": ; preds = %"$out_of_gas_1470", %"$have_gas_1453" + %"$consume_1472" = sub i64 %"$gasrem_1468", %"$_literal_cost_call_1467" + store i64 %"$consume_1472", i64* @_gasrem, align 8 + %"$execptr_load_1473" = load i8*, i8** @_execptr, align 8 + %"$z_1475" = load %"Map_Uint128_Map_(Uint128)_(0x3620c286757a29985cee194eb90064270fb65414.AddressADT)"*, %"Map_Uint128_Map_(Uint128)_(0x3620c286757a29985cee194eb90064270fb65414.AddressADT)"** %z, align 8 + %"$update_value_1476" = bitcast %"Map_Uint128_Map_(Uint128)_(0x3620c286757a29985cee194eb90064270fb65414.AddressADT)"* %"$z_1475" to i8* + call void @_update_field(i8* %"$execptr_load_1473", i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$assign_test_10_1474", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_81", i32 0, i8* null, i8* %"$update_value_1476"), !dbg !280 + %"$gasrem_1477" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1478" = icmp ugt i64 1, %"$gasrem_1477" + br i1 %"$gascmp_1478", label %"$out_of_gas_1479", label %"$have_gas_1480" + +"$out_of_gas_1479": ; preds = %"$have_gas_1471" + call void @_out_of_gas() + br label %"$have_gas_1480" + +"$have_gas_1480": ; preds = %"$out_of_gas_1479", %"$have_gas_1471" + %"$consume_1481" = sub i64 %"$gasrem_1477", 1 + store i64 %"$consume_1481", i64* @_gasrem, align 8 %k1 = alloca %Uint128, align 8 - %"$gasrem_1461" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1462" = icmp ugt i64 1, %"$gasrem_1461" - br i1 %"$gascmp_1462", label %"$out_of_gas_1463", label %"$have_gas_1464" + call void @llvm.dbg.declare(metadata %Uint128* %k1, metadata !281, metadata !DIExpression()), !dbg !282 + %"$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_1463": ; preds = %"$have_gas_1459" +"$out_of_gas_1484": ; preds = %"$have_gas_1480" call void @_out_of_gas() - br label %"$have_gas_1464" + br label %"$have_gas_1485" -"$have_gas_1464": ; preds = %"$out_of_gas_1463", %"$have_gas_1459" - %"$consume_1465" = sub i64 %"$gasrem_1461", 1 - store i64 %"$consume_1465", i64* @_gasrem, align 8 - store %Uint128 { i128 1 }, %Uint128* %k1, align 8, !dbg !102 - %"$gasrem_1466" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1467" = icmp ugt i64 1, %"$gasrem_1466" - br i1 %"$gascmp_1467", label %"$out_of_gas_1468", label %"$have_gas_1469" +"$have_gas_1485": ; preds = %"$out_of_gas_1484", %"$have_gas_1480" + %"$consume_1486" = sub i64 %"$gasrem_1482", 1 + store i64 %"$consume_1486", i64* @_gasrem, align 8 + store %Uint128 { i128 1 }, %Uint128* %k1, align 8, !dbg !283 + %"$gasrem_1487" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1488" = icmp ugt i64 1, %"$gasrem_1487" + br i1 %"$gascmp_1488", label %"$out_of_gas_1489", label %"$have_gas_1490" -"$out_of_gas_1468": ; preds = %"$have_gas_1464" +"$out_of_gas_1489": ; preds = %"$have_gas_1485" call void @_out_of_gas() - br label %"$have_gas_1469" + br label %"$have_gas_1490" -"$have_gas_1469": ; preds = %"$out_of_gas_1468", %"$have_gas_1464" - %"$consume_1470" = sub i64 %"$gasrem_1466", 1 - store i64 %"$consume_1470", i64* @_gasrem, align 8 +"$have_gas_1490": ; preds = %"$out_of_gas_1489", %"$have_gas_1485" + %"$consume_1491" = sub i64 %"$gasrem_1487", 1 + store i64 %"$consume_1491", i64* @_gasrem, align 8 %k2 = alloca %Uint128, align 8 - %"$gasrem_1471" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1472" = icmp ugt i64 1, %"$gasrem_1471" - br i1 %"$gascmp_1472", label %"$out_of_gas_1473", label %"$have_gas_1474" - -"$out_of_gas_1473": ; preds = %"$have_gas_1469" - call void @_out_of_gas() - br label %"$have_gas_1474" - -"$have_gas_1474": ; preds = %"$out_of_gas_1473", %"$have_gas_1469" - %"$consume_1475" = sub i64 %"$gasrem_1471", 1 - store i64 %"$consume_1475", i64* @_gasrem, align 8 - store %Uint128 { i128 42 }, %Uint128* %k2, align 8, !dbg !103 - %"$$x_2_1476" = load %TName_0x3620c286757a29985cee194eb90064270fb65414.AddressADT*, %TName_0x3620c286757a29985cee194eb90064270fb65414.AddressADT** %"$x_2", align 8 - %"$$$x_2_1476_1477" = bitcast %TName_0x3620c286757a29985cee194eb90064270fb65414.AddressADT* %"$$x_2_1476" to i8* - %"$_literal_cost_call_1478" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_0x3620c286757a29985cee194eb90064270fb65414.AddressADT_77", i8* %"$$$x_2_1476_1477") - %"$gasadd_1479" = add i64 %"$_literal_cost_call_1478", 2 - %"$gasrem_1480" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1481" = icmp ugt i64 %"$gasadd_1479", %"$gasrem_1480" - br i1 %"$gascmp_1481", label %"$out_of_gas_1482", label %"$have_gas_1483" - -"$out_of_gas_1482": ; preds = %"$have_gas_1474" - call void @_out_of_gas() - br label %"$have_gas_1483" - -"$have_gas_1483": ; preds = %"$out_of_gas_1482", %"$have_gas_1474" - %"$consume_1484" = sub i64 %"$gasrem_1480", %"$gasadd_1479" - store i64 %"$consume_1484", i64* @_gasrem, align 8 - %"$indices_buf_1485_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$indices_buf_1485_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_1485_salloc_load", i64 32) - %"$indices_buf_1485_salloc" = bitcast i8* %"$indices_buf_1485_salloc_salloc" to [32 x i8]* - %"$indices_buf_1485" = bitcast [32 x i8]* %"$indices_buf_1485_salloc" to i8* - %"$k1_1486" = load %Uint128, %Uint128* %k1, align 8 - %"$indices_gep_1487" = getelementptr i8, i8* %"$indices_buf_1485", i32 0 - %indices_cast = bitcast i8* %"$indices_gep_1487" to %Uint128* - store %Uint128 %"$k1_1486", %Uint128* %indices_cast, align 8 - %"$k2_1488" = load %Uint128, %Uint128* %k2, align 8 - %"$indices_gep_1489" = getelementptr i8, i8* %"$indices_buf_1485", i32 16 - %indices_cast1 = bitcast i8* %"$indices_gep_1489" to %Uint128* - store %Uint128 %"$k2_1488", %Uint128* %indices_cast1, align 8 - %"$execptr_load_1490" = load i8*, i8** @_execptr, align 8 - %"$$x_2_1492" = load %TName_0x3620c286757a29985cee194eb90064270fb65414.AddressADT*, %TName_0x3620c286757a29985cee194eb90064270fb65414.AddressADT** %"$x_2", align 8 - %"$update_value_1493" = bitcast %TName_0x3620c286757a29985cee194eb90064270fb65414.AddressADT* %"$$x_2_1492" to i8* - call void @_update_field(i8* %"$execptr_load_1490", i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$assign_test_10_1491", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_81", i32 2, i8* %"$indices_buf_1485", i8* %"$update_value_1493"), !dbg !104 + call void @llvm.dbg.declare(metadata %Uint128* %k2, metadata !284, metadata !DIExpression()), !dbg !285 + %"$gasrem_1492" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1493" = icmp ugt i64 1, %"$gasrem_1492" + br i1 %"$gascmp_1493", label %"$out_of_gas_1494", label %"$have_gas_1495" + +"$out_of_gas_1494": ; preds = %"$have_gas_1490" + call void @_out_of_gas() + br label %"$have_gas_1495" + +"$have_gas_1495": ; preds = %"$out_of_gas_1494", %"$have_gas_1490" + %"$consume_1496" = sub i64 %"$gasrem_1492", 1 + store i64 %"$consume_1496", i64* @_gasrem, align 8 + store %Uint128 { i128 42 }, %Uint128* %k2, align 8, !dbg !286 + %"$$x_2_1497" = load %TName_0x3620c286757a29985cee194eb90064270fb65414.AddressADT*, %TName_0x3620c286757a29985cee194eb90064270fb65414.AddressADT** %"$x_2", align 8 + %"$$$x_2_1497_1498" = bitcast %TName_0x3620c286757a29985cee194eb90064270fb65414.AddressADT* %"$$x_2_1497" to i8* + %"$_literal_cost_call_1499" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_0x3620c286757a29985cee194eb90064270fb65414.AddressADT_77", i8* %"$$$x_2_1497_1498") + %"$gasadd_1500" = add i64 %"$_literal_cost_call_1499", 2 + %"$gasrem_1501" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1502" = icmp ugt i64 %"$gasadd_1500", %"$gasrem_1501" + br i1 %"$gascmp_1502", label %"$out_of_gas_1503", label %"$have_gas_1504" + +"$out_of_gas_1503": ; preds = %"$have_gas_1495" + call void @_out_of_gas() + br label %"$have_gas_1504" + +"$have_gas_1504": ; preds = %"$out_of_gas_1503", %"$have_gas_1495" + %"$consume_1505" = sub i64 %"$gasrem_1501", %"$gasadd_1500" + store i64 %"$consume_1505", i64* @_gasrem, align 8 + %"$indices_buf_1506_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$indices_buf_1506_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_1506_salloc_load", i64 32) + %"$indices_buf_1506_salloc" = bitcast i8* %"$indices_buf_1506_salloc_salloc" to [32 x i8]* + %"$indices_buf_1506" = bitcast [32 x i8]* %"$indices_buf_1506_salloc" to i8* + %"$k1_1507" = load %Uint128, %Uint128* %k1, align 8 + %"$indices_gep_1508" = getelementptr i8, i8* %"$indices_buf_1506", i32 0 + %indices_cast = bitcast i8* %"$indices_gep_1508" to %Uint128* + store %Uint128 %"$k1_1507", %Uint128* %indices_cast, align 8 + %"$k2_1509" = load %Uint128, %Uint128* %k2, align 8 + %"$indices_gep_1510" = getelementptr i8, i8* %"$indices_buf_1506", i32 16 + %indices_cast1 = bitcast i8* %"$indices_gep_1510" to %Uint128* + store %Uint128 %"$k2_1509", %Uint128* %indices_cast1, align 8 + %"$execptr_load_1511" = load i8*, i8** @_execptr, align 8 + %"$$x_2_1513" = load %TName_0x3620c286757a29985cee194eb90064270fb65414.AddressADT*, %TName_0x3620c286757a29985cee194eb90064270fb65414.AddressADT** %"$x_2", align 8 + %"$update_value_1514" = bitcast %TName_0x3620c286757a29985cee194eb90064270fb65414.AddressADT* %"$$x_2_1513" to i8* + call void @_update_field(i8* %"$execptr_load_1511", i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$assign_test_10_1512", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_81", i32 2, i8* %"$indices_buf_1506", i8* %"$update_value_1514"), !dbg !287 ret void } @@ -2604,126 +2738,311 @@ declare i64 @_lengthof(%_TyDescrTy_Typ*, i8*) declare i8* @_put(i8*, %_TyDescrTy_Typ*, i8*, i8*, i8*) -define void @AssignTest(i8* %0) !dbg !105 { +define void @AssignTest(i8* %0) !dbg !288 { entry: - %"$_amount_1495" = getelementptr i8, i8* %0, i32 0 - %"$_amount_1496" = bitcast i8* %"$_amount_1495" to %Uint128* - %_amount = load %Uint128, %Uint128* %"$_amount_1496", align 8 - %"$_origin_1497" = getelementptr i8, i8* %0, i32 16 - %"$_origin_1498" = bitcast i8* %"$_origin_1497" to [20 x i8]* - %"$_sender_1499" = getelementptr i8, i8* %0, i32 36 - %"$_sender_1500" = bitcast i8* %"$_sender_1499" to [20 x i8]* - call void @"$AssignTest_1288"(%Uint128 %_amount, [20 x i8]* %"$_origin_1498", [20 x i8]* %"$_sender_1500"), !dbg !106 + %"$_amount_1519" = getelementptr i8, i8* %0, i32 0 + %"$_amount_1520" = bitcast i8* %"$_amount_1519" to %Uint128* + %_amount = load %Uint128, %Uint128* %"$_amount_1520", align 8 + %"$_origin_1521" = getelementptr i8, i8* %0, i32 16 + %"$_origin_1522" = bitcast i8* %"$_origin_1521" to [20 x i8]* + %"$_sender_1523" = getelementptr i8, i8* %0, i32 36 + %"$_sender_1524" = bitcast i8* %"$_sender_1523" to [20 x i8]* + call void @"$AssignTest_1309"(%Uint128 %_amount, [20 x i8]* %"$_origin_1522", [20 x i8]* %"$_sender_1524"), !dbg !289 ret void } +attributes #0 = { nocallback nofree nosync nounwind readnone speculatable willreturn } + !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) +!1 = distinct !DICompileUnit(language: DW_LANG_C89, file: !2, producer: "Scilla Compiler", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false) !2 = !DIFile(filename: "remote_state_reads.scilla", directory: "codegen/contr") -!3 = !{} -!4 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !5, file: !5, type: !6, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!5 = !DIFile(filename: ".", directory: ".") -!6 = !DISubroutineType(types: !7) -!7 = !{!8} -!8 = !DIBasicType(tag: DW_TAG_unspecified_type, name: "void") -!9 = !DILocation(line: 0, scope: !4) -!10 = distinct !DISubprogram(name: "_deploy_ops", linkageName: "_deploy_ops", scope: !5, file: !5, type: !6, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!11 = !DILocation(line: 25, column: 42, scope: !10) -!12 = !DILocation(line: 26, column: 83, scope: !10) -!13 = !DILocation(line: 27, column: 82, scope: !10) -!14 = !DILocation(line: 28, column: 73, scope: !10) -!15 = !DILocation(line: 29, column: 83, scope: !10) -!16 = !DILocation(line: 30, column: 100, scope: !10) -!17 = !DILocation(line: 31, column: 89, scope: !10) -!18 = !DILocation(line: 32, column: 36, scope: !10) -!19 = !DILocation(line: 33, column: 41, scope: !10) -!20 = !DILocation(line: 34, column: 63, scope: !10) -!21 = !DILocation(line: 36, column: 45, scope: !10) -!22 = !DILocation(line: 37, column: 45, scope: !10) -!23 = !DILocation(line: 38, column: 45, scope: !10) -!24 = !DILocation(line: 39, column: 44, scope: !10) -!25 = !DILocation(line: 40, column: 54, scope: !10) -!26 = !DILocation(line: 41, column: 45, scope: !10) -!27 = !DILocation(line: 42, column: 65, scope: !10) -!28 = !DILocation(line: 43, column: 42, scope: !10) -!29 = !DILocation(line: 44, column: 57, scope: !10) -!30 = !DILocation(line: 44, column: 65, scope: !10) -!31 = !DILocation(line: 45, column: 78, scope: !10) -!32 = !DILocation(line: 46, column: 43, scope: !10) -!33 = !DILocation(line: 47, column: 75, scope: !10) -!34 = !DILocation(line: 48, column: 43, scope: !10) -!35 = !DILocation(line: 49, column: 50, scope: !10) -!36 = !DILocation(line: 51, column: 38, scope: !10) -!37 = !DILocation(line: 52, column: 38, scope: !10) -!38 = !DILocation(line: 53, column: 39, scope: !10) -!39 = distinct !DISubprogram(name: "RemoteReadsTest", linkageName: "RemoteReadsTest", scope: !2, file: !2, line: 55, type: !6, scopeLine: 55, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!40 = !DILocation(line: 67, column: 3, scope: !39) -!41 = !DILocation(line: 68, column: 3, scope: !39) -!42 = !DILocation(line: 70, column: 3, scope: !39) -!43 = !DILocation(line: 71, column: 3, scope: !39) -!44 = !DILocation(line: 73, column: 3, scope: !39) -!45 = !DILocation(line: 74, column: 3, scope: !39) -!46 = !DILocation(line: 76, column: 3, scope: !39) -!47 = !DILocation(line: 77, column: 3, scope: !39) -!48 = !DILocation(line: 79, column: 3, scope: !39) -!49 = !DILocation(line: 80, column: 3, scope: !39) -!50 = !DILocation(line: 82, column: 3, scope: !39) -!51 = !DILocation(line: 83, column: 3, scope: !39) -!52 = !DILocation(line: 85, column: 3, scope: !39) -!53 = !DILocation(line: 86, column: 3, scope: !39) -!54 = !DILocation(line: 88, column: 3, scope: !39) -!55 = !DILocation(line: 89, column: 3, scope: !39) -!56 = !DILocation(line: 91, column: 3, scope: !39) -!57 = !DILocation(line: 92, column: 3, scope: !39) -!58 = !DILocation(line: 94, column: 3, scope: !39) -!59 = !DILocation(line: 95, column: 3, scope: !39) -!60 = !DILocation(line: 97, column: 7, scope: !39) -!61 = !DILocation(line: 98, column: 3, scope: !39) -!62 = !DILocation(line: 99, column: 3, scope: !39) -!63 = !DILocation(line: 101, column: 3, scope: !39) -!64 = !DILocation(line: 102, column: 3, scope: !39) -!65 = !DILocation(line: 104, column: 3, scope: !39) -!66 = !DILocation(line: 105, column: 3, scope: !39) -!67 = !DILocation(line: 107, column: 3, scope: !39) -!68 = !DILocation(line: 108, column: 3, scope: !39) -!69 = distinct !DISubprogram(name: "RemoteReadsTest", linkageName: "RemoteReadsTest", scope: !2, file: !2, line: 55, type: !6, scopeLine: 55, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!70 = !DILocation(line: 55, column: 12, scope: !69) -!71 = distinct !DISubprogram(name: "RemoteReadsADTTest", linkageName: "RemoteReadsADTTest", scope: !2, file: !2, line: 113, type: !6, scopeLine: 113, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!72 = distinct !DISubprogram(name: "RemoteReadsADTTest", linkageName: "RemoteReadsADTTest", scope: !2, file: !2, line: 113, type: !6, scopeLine: 113, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!73 = !DILocation(line: 113, column: 12, scope: !72) -!74 = distinct !DISubprogram(name: "OutgoingMsgTest", linkageName: "OutgoingMsgTest", scope: !2, file: !2, line: 124, type: !6, scopeLine: 124, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!75 = !DILocation(line: 125, column: 9, scope: !74) -!76 = !DILocation(line: 129, column: 18, scope: !74) -!77 = !DILocation(line: 130, column: 10, scope: !74) -!78 = !DILocation(line: 131, column: 3, scope: !74) -!79 = !DILocation(line: 132, column: 8, scope: !74) -!80 = !DILocation(line: 134, column: 3, scope: !74) -!81 = !DILocation(line: 135, column: 8, scope: !74) -!82 = !DILocation(line: 137, column: 3, scope: !74) -!83 = distinct !DISubprogram(name: "OutgoingMsgTest", linkageName: "OutgoingMsgTest", scope: !2, file: !2, line: 124, type: !6, scopeLine: 124, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!84 = !DILocation(line: 124, column: 12, scope: !83) -!85 = distinct !DISubprogram(name: "ExceptionTest", linkageName: "ExceptionTest", scope: !2, file: !2, line: 141, type: !6, scopeLine: 141, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!86 = !DILocation(line: 142, column: 7, scope: !85) -!87 = !DILocation(line: 144, column: 3, scope: !85) -!88 = distinct !DISubprogram(name: "ExceptionTest", linkageName: "ExceptionTest", scope: !2, file: !2, line: 141, type: !6, scopeLine: 141, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!89 = !DILocation(line: 141, column: 12, scope: !88) -!90 = distinct !DISubprogram(name: "AssignTest", linkageName: "AssignTest", scope: !2, file: !2, line: 147, type: !6, scopeLine: 147, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!91 = !DILocation(line: 148, column: 7, scope: !90) -!92 = !DILocation(line: 149, column: 3, scope: !90) -!93 = !DILocation(line: 150, column: 15, scope: !90) -!94 = !DILocation(line: 151, column: 7, scope: !90) -!95 = !DILocation(line: 152, column: 3, scope: !90) -!96 = !DILocation(line: 153, column: 15, scope: !90) -!97 = !DILocation(line: 154, column: 19, scope: !90) -!98 = !DILocation(line: 155, column: 19, scope: !90) -!99 = !DILocation(line: 156, column: 21, scope: !90) -!100 = !DILocation(line: 157, column: 7, scope: !90) -!101 = !DILocation(line: 158, column: 3, scope: !90) -!102 = !DILocation(line: 159, column: 8, scope: !90) -!103 = !DILocation(line: 160, column: 8, scope: !90) -!104 = !DILocation(line: 161, column: 3, scope: !90) -!105 = distinct !DISubprogram(name: "AssignTest", linkageName: "AssignTest", scope: !2, file: !2, line: 147, type: !6, scopeLine: 147, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!106 = !DILocation(line: 147, column: 12, scope: !105) +!3 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !4, file: !4, type: !5, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!4 = !DIFile(filename: ".", directory: ".") +!5 = !DISubroutineType(types: !6) +!6 = !{!7} +!7 = !DIBasicType(tag: DW_TAG_unspecified_type, name: "void") +!8 = !{} +!9 = !DILocation(line: 0, scope: !3) +!10 = distinct !DISubprogram(name: "_deploy_ops", linkageName: "_deploy_ops", scope: !4, file: !4, type: !5, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!11 = !DILocalVariable(name: "$assign_test_1_4", scope: !10, file: !2, line: 25, type: !12) +!12 = !DIBasicType(name: "ByStr20 with contract field admin : ByStr20 with end, field other_map : Map (Uint128) (ByStr20 with end), field owners : Map (ByStr20 with end) (Bool), field signatures : Map (Uint32) (Map (ByStr20 with end) (Bool)), field transactionCount : Uint32 end", size: 20) +!13 = !DILocation(line: 25, column: 7, scope: !10) +!14 = !DILocation(line: 25, column: 42, scope: !10) +!15 = !DILocalVariable(name: "$assign_test_2_5", scope: !10, file: !2, line: 26, type: !12) +!16 = !DILocation(line: 26, column: 7, scope: !10) +!17 = !DILocation(line: 26, column: 83, scope: !10) +!18 = !DILocalVariable(name: "$assign_test_3_6", scope: !10, file: !2, line: 27, type: !12) +!19 = !DILocation(line: 27, column: 7, scope: !10) +!20 = !DILocation(line: 27, column: 82, scope: !10) +!21 = !DILocalVariable(name: "$assign_test_4_7", scope: !10, file: !2, line: 28, type: !12) +!22 = !DILocation(line: 28, column: 7, scope: !10) +!23 = !DILocation(line: 28, column: 73, scope: !10) +!24 = !DILocalVariable(name: "$assign_test_5_8", scope: !10, file: !2, line: 29, type: !12) +!25 = !DILocation(line: 29, column: 7, scope: !10) +!26 = !DILocation(line: 29, column: 83, scope: !10) +!27 = !DILocalVariable(name: "$assign_test_6_9", scope: !10, file: !2, line: 30, type: !12) +!28 = !DILocation(line: 30, column: 7, scope: !10) +!29 = !DILocation(line: 30, column: 100, scope: !10) +!30 = !DILocalVariable(name: "$assign_test_7_10", scope: !10, file: !2, line: 31, type: !12) +!31 = !DILocation(line: 31, column: 7, scope: !10) +!32 = !DILocation(line: 31, column: 89, scope: !10) +!33 = !DILocalVariable(name: "$assign_test_8_11", scope: !10, file: !2, line: 32, type: !34) +!34 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "0x3620c286757a29985cee194eb90064270fb65414.AddressADT", baseType: !35, size: 8, align: 8, dwarfAddressSpace: 0) +!35 = !DIBasicType(name: "0x3620c286757a29985cee194eb90064270fb65414.AddressADT", size: 8) +!36 = !DILocation(line: 32, column: 7, scope: !10) +!37 = !DILocation(line: 32, column: 36, scope: !10) +!38 = !DILocalVariable(name: "$assign_test_9_12", scope: !10, file: !2, line: 33, type: !39) +!39 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "List (0x3620c286757a29985cee194eb90064270fb65414.AddressADT)", baseType: !40, size: 8, align: 8, dwarfAddressSpace: 0) +!40 = !DIBasicType(name: "List (0x3620c286757a29985cee194eb90064270fb65414.AddressADT)", size: 8) +!41 = !DILocation(line: 33, column: 7, scope: !10) +!42 = !DILocation(line: 33, column: 41, scope: !10) +!43 = !DILocalVariable(name: "$assign_test_10_13", scope: !10, file: !2, line: 34, type: !44) +!44 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "Map (Uint128) (Map (Uint128) (0x3620c286757a29985cee194eb90064270fb65414.AddressADT))", baseType: !45, size: 8, align: 8, dwarfAddressSpace: 0) +!45 = !DIBasicType(name: "Map (Uint128) (Map (Uint128) (0x3620c286757a29985cee194eb90064270fb65414.AddressADT))", size: 8) +!46 = !DILocation(line: 34, column: 7, scope: !10) +!47 = !DILocation(line: 34, column: 63, scope: !10) +!48 = !DILocalVariable(name: "$remote_reads_test_res_1_1_14", scope: !10, file: !2, line: 36, type: !49) +!49 = !DIBasicType(name: "Uint128", size: 16) +!50 = !DILocation(line: 36, column: 7, scope: !10) +!51 = !DILocation(line: 36, column: 45, scope: !10) +!52 = !DILocalVariable(name: "$remote_reads_test_res_2_1_15", scope: !10, file: !2, line: 37, type: !49) +!53 = !DILocation(line: 37, column: 7, scope: !10) +!54 = !DILocation(line: 37, column: 45, scope: !10) +!55 = !DILocalVariable(name: "$remote_reads_test_res_3_1_16", scope: !10, file: !2, line: 38, type: !49) +!56 = !DILocation(line: 38, column: 7, scope: !10) +!57 = !DILocation(line: 38, column: 45, scope: !10) +!58 = !DILocalVariable(name: "$remote_reads_test_res_3_3_17", scope: !10, file: !2, line: 39, type: !59) +!59 = !DIBasicType(name: "Uint32", size: 4) +!60 = !DILocation(line: 39, column: 7, scope: !10) +!61 = !DILocation(line: 39, column: 44, scope: !10) +!62 = !DILocalVariable(name: "$remote_reads_test_res_3_4_18", scope: !10, file: !2, line: 40, type: !12) +!63 = !DILocation(line: 40, column: 7, scope: !10) +!64 = !DILocation(line: 40, column: 54, scope: !10) +!65 = !DILocalVariable(name: "$remote_reads_test_res_3_5_19", scope: !10, file: !2, line: 41, type: !49) +!66 = !DILocation(line: 41, column: 7, scope: !10) +!67 = !DILocation(line: 41, column: 45, scope: !10) +!68 = !DILocalVariable(name: "$remote_reads_test_res_3_6_20", scope: !10, file: !2, line: 42, type: !69) +!69 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "Map (ByStr20 with end) (Bool)", baseType: !70, size: 8, align: 8, dwarfAddressSpace: 0) +!70 = !DIBasicType(name: "Map (ByStr20 with end) (Bool)", size: 8) +!71 = !DILocation(line: 42, column: 7, scope: !10) +!72 = !DILocation(line: 42, column: 65, scope: !10) +!73 = !DILocalVariable(name: "$remote_reads_test_res_3_7_21", scope: !10, file: !2, line: 43, type: !74) +!74 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "Bool", baseType: !75, size: 8, align: 8, dwarfAddressSpace: 0) +!75 = !DIBasicType(name: "Bool", size: 8) +!76 = !DILocation(line: 43, column: 7, scope: !10) +!77 = !DILocation(line: 43, column: 42, scope: !10) +!78 = !DILocalVariable(name: "$remote_reads_test_res_3_8_22", scope: !10, file: !2, line: 44, type: !79) +!79 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "Option (Bool)", baseType: !80, size: 8, align: 8, dwarfAddressSpace: 0) +!80 = !DIBasicType(name: "Option (Bool)", size: 8) +!81 = !DILocation(line: 44, column: 7, scope: !10) +!82 = !DILocalVariable(name: "x", scope: !10, file: !2, line: 44, type: !74) +!83 = !DILocation(line: 44, column: 53, scope: !10) +!84 = !DILocation(line: 44, column: 57, scope: !10) +!85 = !DILocation(line: 44, column: 65, scope: !10) +!86 = !DILocalVariable(name: "$remote_reads_test_res_3_9_23", scope: !10, file: !2, line: 45, type: !87) +!87 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "Map (Uint32) (Map (ByStr20 with end) (Bool))", baseType: !88, size: 8, align: 8, dwarfAddressSpace: 0) +!88 = !DIBasicType(name: "Map (Uint32) (Map (ByStr20 with end) (Bool))", size: 8) +!89 = !DILocation(line: 45, column: 7, scope: !10) +!90 = !DILocation(line: 45, column: 78, scope: !10) +!91 = !DILocalVariable(name: "$remote_reads_test_res_3_10_24", scope: !10, file: !2, line: 46, type: !74) +!92 = !DILocation(line: 46, column: 7, scope: !10) +!93 = !DILocation(line: 46, column: 43, scope: !10) +!94 = !DILocalVariable(name: "$remote_reads_test_res_3_11_25", scope: !10, file: !2, line: 47, type: !95) +!95 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "Option (Map (ByStr20 with end) (Bool))", baseType: !96, size: 8, align: 8, dwarfAddressSpace: 0) +!96 = !DIBasicType(name: "Option (Map (ByStr20 with end) (Bool))", size: 8) +!97 = !DILocation(line: 47, column: 7, scope: !10) +!98 = !DILocation(line: 47, column: 75, scope: !10) +!99 = !DILocalVariable(name: "$remote_reads_test_res_3_12_26", scope: !10, file: !2, line: 48, type: !74) +!100 = !DILocation(line: 48, column: 7, scope: !10) +!101 = !DILocation(line: 48, column: 43, scope: !10) +!102 = !DILocalVariable(name: "$remote_reads_test_res_3_13_27", scope: !10, file: !2, line: 49, type: !79) +!103 = !DILocation(line: 49, column: 7, scope: !10) +!104 = !DILocation(line: 49, column: 50, scope: !10) +!105 = !DILocalVariable(name: "$sender_balance_pre_28", scope: !10, file: !2, line: 51, type: !49) +!106 = !DILocation(line: 51, column: 7, scope: !10) +!107 = !DILocation(line: 51, column: 38, scope: !10) +!108 = !DILocalVariable(name: "$sender_balance_mid_29", scope: !10, file: !2, line: 52, type: !49) +!109 = !DILocation(line: 52, column: 7, scope: !10) +!110 = !DILocation(line: 52, column: 38, scope: !10) +!111 = !DILocalVariable(name: "$sender_balance_post_30", scope: !10, file: !2, line: 53, type: !49) +!112 = !DILocation(line: 53, column: 7, scope: !10) +!113 = !DILocation(line: 53, column: 39, scope: !10) +!114 = distinct !DISubprogram(name: "RemoteReadsTest", linkageName: "RemoteReadsTest", scope: !2, file: !2, line: 55, type: !5, scopeLine: 55, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!115 = !DILocalVariable(name: "remote3", scope: !114, file: !2, line: 61, type: !116) +!116 = !DIBasicType(name: "ByStr20 with contract field admin : ByStr20 with end, field owners : Map (ByStr20 with end) (Bool), field signatures : Map (Uint32) (Map (ByStr20 with end) (Bool)), field transactionCount : Uint32 end", size: 20) +!117 = !DILocation(line: 61, column: 3, scope: !114) +!118 = !DILocalVariable(name: "remote2", scope: !114, file: !2, line: 59, type: !119) +!119 = !DIBasicType(name: "ByStr20 with contract end", size: 20) +!120 = !DILocation(line: 59, column: 3, scope: !114) +!121 = !DILocalVariable(name: "remote1", scope: !114, file: !2, line: 57, type: !122) +!122 = !DIBasicType(name: "ByStr20 with end", size: 20) +!123 = !DILocation(line: 57, column: 3, scope: !114) +!124 = !DILocalVariable(name: "_sender", scope: !114, file: !2, line: 55, type: !122) +!125 = !DILocation(line: 55, column: 12, scope: !114) +!126 = !DILocalVariable(name: "_origin", scope: !114, file: !2, line: 55, type: !122) +!127 = !DILocalVariable(name: "_amount", scope: !114, file: !2, line: 55, type: !49) +!128 = !DILocalVariable(name: "tmp_1_1", scope: !114, file: !2, line: 67, type: !49) +!129 = !DILocation(line: 67, column: 3, scope: !114) +!130 = !DILocation(line: 68, column: 3, scope: !114) +!131 = !DILocalVariable(name: "tmp_2_1", scope: !114, file: !2, line: 70, type: !49) +!132 = !DILocation(line: 70, column: 3, scope: !114) +!133 = !DILocation(line: 71, column: 3, scope: !114) +!134 = !DILocalVariable(name: "tmp_3_1", scope: !114, file: !2, line: 73, type: !49) +!135 = !DILocation(line: 73, column: 3, scope: !114) +!136 = !DILocation(line: 74, column: 3, scope: !114) +!137 = !DILocalVariable(name: "tmp_3_3", scope: !114, file: !2, line: 76, type: !59) +!138 = !DILocation(line: 76, column: 3, scope: !114) +!139 = !DILocation(line: 77, column: 3, scope: !114) +!140 = !DILocalVariable(name: "tmp_3_4", scope: !114, file: !2, line: 79, type: !122) +!141 = !DILocation(line: 79, column: 3, scope: !114) +!142 = !DILocation(line: 80, column: 3, scope: !114) +!143 = !DILocalVariable(name: "tmp_3_5", scope: !114, file: !2, line: 82, type: !49) +!144 = !DILocation(line: 82, column: 3, scope: !114) +!145 = !DILocation(line: 83, column: 3, scope: !114) +!146 = !DILocalVariable(name: "tmp_3_6", scope: !114, file: !2, line: 85, type: !69) +!147 = !DILocation(line: 85, column: 3, scope: !114) +!148 = !DILocation(line: 86, column: 3, scope: !114) +!149 = !DILocalVariable(name: "tmp_3_7", scope: !114, file: !2, line: 88, type: !74) +!150 = !DILocation(line: 88, column: 3, scope: !114) +!151 = !DILocation(line: 89, column: 3, scope: !114) +!152 = !DILocalVariable(name: "tmp_3_8", scope: !114, file: !2, line: 91, type: !79) +!153 = !DILocation(line: 91, column: 3, scope: !114) +!154 = !DILocation(line: 92, column: 3, scope: !114) +!155 = !DILocalVariable(name: "tmp_3_9", scope: !114, file: !2, line: 94, type: !87) +!156 = !DILocation(line: 94, column: 3, scope: !114) +!157 = !DILocation(line: 95, column: 3, scope: !114) +!158 = !DILocalVariable(name: "$x_1", scope: !114, file: !2, line: 97, type: !59) +!159 = !DILocation(line: 97, column: 3, scope: !114) +!160 = !DILocation(line: 97, column: 7, scope: !114) +!161 = !DILocalVariable(name: "tmp_3_10", scope: !114, file: !2, line: 98, type: !74) +!162 = !DILocation(line: 98, column: 3, scope: !114) +!163 = !DILocation(line: 99, column: 3, scope: !114) +!164 = !DILocalVariable(name: "tmp_3_11", scope: !114, file: !2, line: 101, type: !95) +!165 = !DILocation(line: 101, column: 3, scope: !114) +!166 = !DILocation(line: 102, column: 3, scope: !114) +!167 = !DILocalVariable(name: "tmp_3_12", scope: !114, file: !2, line: 104, type: !74) +!168 = !DILocation(line: 104, column: 3, scope: !114) +!169 = !DILocation(line: 105, column: 3, scope: !114) +!170 = !DILocalVariable(name: "tmp_3_13", scope: !114, file: !2, line: 107, type: !79) +!171 = !DILocation(line: 107, column: 3, scope: !114) +!172 = !DILocation(line: 108, column: 3, scope: !114) +!173 = distinct !DISubprogram(name: "RemoteReadsTest", linkageName: "RemoteReadsTest", scope: !2, file: !2, line: 55, type: !5, scopeLine: 55, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!174 = !DILocation(line: 55, column: 12, scope: !173) +!175 = distinct !DISubprogram(name: "RemoteReadsADTTest", linkageName: "RemoteReadsADTTest", scope: !2, file: !2, line: 113, type: !5, scopeLine: 113, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!176 = !DILocalVariable(name: "remote1", scope: !175, file: !2, line: 119, type: !177) +!177 = !DIBasicType(name: "ByStr20 with contract field h : Map (Uint128) (0x3620c286757a29985cee194eb90064270fb65414.AddressADT) end", size: 20) +!178 = !DILocation(line: 119, column: 3, scope: !175) +!179 = !DILocalVariable(name: "adt1", scope: !175, file: !2, line: 118, type: !34) +!180 = !DILocation(line: 118, column: 3, scope: !175) +!181 = !DILocalVariable(name: "pair1", scope: !175, file: !2, line: 117, type: !182) +!182 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "Pair (ByStr20 with end) (0x3620c286757a29985cee194eb90064270fb65414.AddressADT)", baseType: !183, size: 8, align: 8, dwarfAddressSpace: 0) +!183 = !DIBasicType(name: "Pair (ByStr20 with end) (0x3620c286757a29985cee194eb90064270fb65414.AddressADT)", size: 8) +!184 = !DILocation(line: 117, column: 3, scope: !175) +!185 = !DILocalVariable(name: "list3", scope: !175, file: !2, line: 116, type: !186) +!186 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "List (ByStr20 with contract field g : 0x3620c286757a29985cee194eb90064270fb65414.AddressADT end)", baseType: !187, size: 8, align: 8, dwarfAddressSpace: 0) +!187 = !DIBasicType(name: "List (ByStr20 with contract field g : 0x3620c286757a29985cee194eb90064270fb65414.AddressADT end)", size: 8) +!188 = !DILocation(line: 116, column: 3, scope: !175) +!189 = !DILocalVariable(name: "list2", scope: !175, file: !2, line: 115, type: !190) +!190 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "List (ByStr20 with contract field f : Uint128 end)", baseType: !191, size: 8, align: 8, dwarfAddressSpace: 0) +!191 = !DIBasicType(name: "List (ByStr20 with contract field f : Uint128 end)", size: 8) +!192 = !DILocation(line: 115, column: 3, scope: !175) +!193 = !DILocalVariable(name: "list1", scope: !175, file: !2, line: 114, type: !194) +!194 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "List (ByStr20 with end)", baseType: !195, size: 8, align: 8, dwarfAddressSpace: 0) +!195 = !DIBasicType(name: "List (ByStr20 with end)", size: 8) +!196 = !DILocation(line: 114, column: 3, scope: !175) +!197 = !DILocalVariable(name: "_sender", scope: !175, file: !2, line: 113, type: !122) +!198 = !DILocation(line: 113, column: 12, scope: !175) +!199 = !DILocalVariable(name: "_origin", scope: !175, file: !2, line: 113, type: !122) +!200 = !DILocalVariable(name: "_amount", scope: !175, file: !2, line: 113, type: !49) +!201 = distinct !DISubprogram(name: "RemoteReadsADTTest", linkageName: "RemoteReadsADTTest", scope: !2, file: !2, line: 113, type: !5, scopeLine: 113, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!202 = !DILocation(line: 113, column: 12, scope: !201) +!203 = distinct !DISubprogram(name: "OutgoingMsgTest", linkageName: "OutgoingMsgTest", scope: !2, file: !2, line: 124, type: !5, scopeLine: 124, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!204 = !DILocalVariable(name: "_sender", scope: !203, file: !2, line: 124, type: !122) +!205 = !DILocation(line: 124, column: 12, scope: !203) +!206 = !DILocalVariable(name: "_origin", scope: !203, file: !2, line: 124, type: !122) +!207 = !DILocalVariable(name: "_amount", scope: !203, file: !2, line: 124, type: !49) +!208 = !DILocalVariable(name: "msg", scope: !203, file: !2, line: 125, type: !209) +!209 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "Message", baseType: !210, size: 8, align: 8, dwarfAddressSpace: 0) +!210 = !DIBasicType(name: "Message", size: 8) +!211 = !DILocation(line: 125, column: 3, scope: !203) +!212 = !DILocation(line: 125, column: 9, scope: !203) +!213 = !DILocalVariable(name: "msgs", scope: !203, file: !2, line: 129, type: !214) +!214 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "List (Message)", baseType: !215, size: 8, align: 8, dwarfAddressSpace: 0) +!215 = !DIBasicType(name: "List (Message)", size: 8) +!216 = !DILocation(line: 129, column: 3, scope: !203) +!217 = !DILocalVariable(name: "n", scope: !203, file: !2, line: 129, type: !214) +!218 = !DILocation(line: 129, column: 14, scope: !203) +!219 = !DILocation(line: 129, column: 18, scope: !203) +!220 = !DILocation(line: 130, column: 10, scope: !203) +!221 = !DILocation(line: 131, column: 3, scope: !203) +!222 = !DILocalVariable(name: "e1", scope: !203, file: !2, line: 132, type: !223) +!223 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "Event", baseType: !224, size: 8, align: 8, dwarfAddressSpace: 0) +!224 = !DIBasicType(name: "Event", size: 8) +!225 = !DILocation(line: 132, column: 3, scope: !203) +!226 = !DILocation(line: 132, column: 8, scope: !203) +!227 = !DILocation(line: 134, column: 3, scope: !203) +!228 = !DILocalVariable(name: "e2", scope: !203, file: !2, line: 135, type: !223) +!229 = !DILocation(line: 135, column: 3, scope: !203) +!230 = !DILocation(line: 135, column: 8, scope: !203) +!231 = !DILocation(line: 137, column: 3, scope: !203) +!232 = distinct !DISubprogram(name: "OutgoingMsgTest", linkageName: "OutgoingMsgTest", scope: !2, file: !2, line: 124, type: !5, scopeLine: 124, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!233 = !DILocation(line: 124, column: 12, scope: !232) +!234 = distinct !DISubprogram(name: "ExceptionTest", linkageName: "ExceptionTest", scope: !2, file: !2, line: 141, type: !5, scopeLine: 141, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!235 = !DILocalVariable(name: "_sender", scope: !234, file: !2, line: 141, type: !122) +!236 = !DILocation(line: 141, column: 12, scope: !234) +!237 = !DILocalVariable(name: "_origin", scope: !234, file: !2, line: 141, type: !122) +!238 = !DILocalVariable(name: "_amount", scope: !234, file: !2, line: 141, type: !49) +!239 = !DILocalVariable(name: "e", scope: !234, file: !2, line: 142, type: !240) +!240 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "Exception", baseType: !241, size: 8, align: 8, dwarfAddressSpace: 0) +!241 = !DIBasicType(name: "Exception", size: 8) +!242 = !DILocation(line: 142, column: 3, scope: !234) +!243 = !DILocation(line: 142, column: 7, scope: !234) +!244 = !DILocation(line: 144, column: 3, scope: !234) +!245 = distinct !DISubprogram(name: "ExceptionTest", linkageName: "ExceptionTest", scope: !2, file: !2, line: 141, type: !5, scopeLine: 141, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!246 = !DILocation(line: 141, column: 12, scope: !245) +!247 = distinct !DISubprogram(name: "AssignTest", linkageName: "AssignTest", scope: !2, file: !2, line: 147, type: !5, scopeLine: 147, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!248 = !DILocalVariable(name: "_sender", scope: !247, file: !2, line: 147, type: !122) +!249 = !DILocation(line: 147, column: 12, scope: !247) +!250 = !DILocalVariable(name: "_origin", scope: !247, file: !2, line: 147, type: !122) +!251 = !DILocalVariable(name: "_amount", scope: !247, file: !2, line: 147, type: !49) +!252 = !DILocalVariable(name: "$x_2", scope: !247, file: !2, line: 148, type: !34) +!253 = !DILocation(line: 148, column: 3, scope: !247) +!254 = !DILocation(line: 148, column: 7, scope: !247) +!255 = !DILocation(line: 149, column: 3, scope: !247) +!256 = !DILocalVariable(name: "y", scope: !247, file: !2, line: 150, type: !39) +!257 = !DILocation(line: 150, column: 3, scope: !247) +!258 = !DILocalVariable(name: "n", scope: !247, file: !2, line: 150, type: !39) +!259 = !DILocation(line: 150, column: 11, scope: !247) +!260 = !DILocation(line: 150, column: 15, scope: !247) +!261 = !DILocation(line: 151, column: 7, scope: !247) +!262 = !DILocation(line: 152, column: 3, scope: !247) +!263 = !DILocalVariable(name: "z", scope: !247, file: !2, line: 153, type: !44) +!264 = !DILocation(line: 153, column: 3, scope: !247) +!265 = !DILocalVariable(name: "$n_3", scope: !247, file: !2, line: 153, type: !44) +!266 = !DILocation(line: 153, column: 11, scope: !247) +!267 = !DILocation(line: 153, column: 15, scope: !247) +!268 = !DILocalVariable(name: "sub_n", scope: !247, file: !2, line: 154, type: !269) +!269 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "Map (Uint128) (0x3620c286757a29985cee194eb90064270fb65414.AddressADT)", baseType: !270, size: 8, align: 8, dwarfAddressSpace: 0) +!270 = !DIBasicType(name: "Map (Uint128) (0x3620c286757a29985cee194eb90064270fb65414.AddressADT)", size: 8) +!271 = !DILocation(line: 154, column: 11, scope: !247) +!272 = !DILocation(line: 154, column: 19, scope: !247) +!273 = !DILocalVariable(name: "sub_k", scope: !247, file: !2, line: 155, type: !49) +!274 = !DILocation(line: 155, column: 11, scope: !247) +!275 = !DILocation(line: 155, column: 19, scope: !247) +!276 = !DILocalVariable(name: "sub_res", scope: !247, file: !2, line: 156, type: !269) +!277 = !DILocation(line: 156, column: 11, scope: !247) +!278 = !DILocation(line: 156, column: 21, scope: !247) +!279 = !DILocation(line: 157, column: 7, scope: !247) +!280 = !DILocation(line: 158, column: 3, scope: !247) +!281 = !DILocalVariable(name: "k1", scope: !247, file: !2, line: 159, type: !49) +!282 = !DILocation(line: 159, column: 3, scope: !247) +!283 = !DILocation(line: 159, column: 8, scope: !247) +!284 = !DILocalVariable(name: "k2", scope: !247, file: !2, line: 160, type: !49) +!285 = !DILocation(line: 160, column: 3, scope: !247) +!286 = !DILocation(line: 160, column: 8, scope: !247) +!287 = !DILocation(line: 161, column: 3, scope: !247) +!288 = distinct !DISubprogram(name: "AssignTest", linkageName: "AssignTest", scope: !2, file: !2, line: 147, type: !5, scopeLine: 147, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!289 = !DILocation(line: 147, column: 12, scope: !288) diff --git a/testsuite/contr/remote_state_reads.ll b/testsuite/contr/remote_state_reads.ll index 45fd9554..200a01f2 100644 --- a/testsuite/contr/remote_state_reads.ll +++ b/testsuite/contr/remote_state_reads.ll @@ -4,7 +4,7 @@ ; 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-pc-linux-gnu" +target triple = "x86_64-unknown-linux-gnu" %"$TyDescrTy_PrimTyp_31" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/testsuite/contr/remote_state_reads_2.dbg.ll b/testsuite/contr/remote_state_reads_2.dbg.ll index 08d7c59a..54106140 100644 --- a/testsuite/contr/remote_state_reads_2.dbg.ll +++ b/testsuite/contr/remote_state_reads_2.dbg.ll @@ -4,7 +4,7 @@ ; 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-pc-linux-gnu" +target triple = "x86_64-unknown-linux-gnu" %"$TyDescrTy_PrimTyp_5" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } @@ -17,9 +17,9 @@ target triple = "x86_64-pc-linux-gnu" %"$TyDescr_AddrTyp_46" = type { i32, %"$TyDescr_AddrFieldTyp_45"* } %Int32 = type { i32 } %Uint32 = type { i32 } -%"$ParamDescr_462" = type { %ParamDescrString, %_TyDescrTy_Typ* } +%"$ParamDescr_479" = type { %ParamDescrString, %_TyDescrTy_Typ* } %ParamDescrString = type { i8*, i32 } -%"$TransDescr_463" = type { %ParamDescrString, i32, %"$ParamDescr_462"* } +%"$TransDescr_480" = type { %ParamDescrString, i32, %"$ParamDescr_479"* } %Uint128 = type { i128 } %TName_Option_Uint128 = type { i8, %CName_Some_Uint128*, %CName_None_Uint128* } %CName_Some_Uint128 = type <{ i8, %Uint128 }> @@ -120,54 +120,54 @@ target triple = "x86_64-pc-linux-gnu" @"$f_166" = unnamed_addr constant [2 x i8] c"f\00" @"$g_183" = unnamed_addr constant [2 x i8] c"g\00" @"$remote_read_remote_read_res_1_210" = unnamed_addr constant [30 x i8] c"remote_read_remote_read_res_1\00" -@"$admin_227" = unnamed_addr constant [6 x i8] c"admin\00" -@"$f_243" = unnamed_addr constant [2 x i8] c"f\00" -@"$g_273" = unnamed_addr constant [2 x i8] c"g\00" -@"$remote_read_remote_read_res_2_298" = unnamed_addr constant [30 x i8] c"remote_read_remote_read_res_2\00" -@"$admin_313" = unnamed_addr constant [6 x i8] c"admin\00" -@"$remote_read_remote_read_res_3_340" = unnamed_addr constant [30 x i8] c"remote_read_remote_read_res_3\00" -@"$address_type_erasure_test_res_1_378" = unnamed_addr constant [32 x i8] c"address_type_erasure_test_res_1\00" -@"$address_type_erasure_test_res_1_402" = unnamed_addr constant [32 x i8] c"address_type_erasure_test_res_1\00" -@"$address_type_erasure_test_res_1_452" = unnamed_addr constant [32 x i8] c"address_type_erasure_test_res_1\00" +@"$admin_231" = unnamed_addr constant [6 x i8] c"admin\00" +@"$f_247" = unnamed_addr constant [2 x i8] c"f\00" +@"$g_277" = unnamed_addr constant [2 x i8] c"g\00" +@"$remote_read_remote_read_res_2_302" = unnamed_addr constant [30 x i8] c"remote_read_remote_read_res_2\00" +@"$admin_321" = unnamed_addr constant [6 x i8] c"admin\00" +@"$remote_read_remote_read_res_3_348" = unnamed_addr constant [30 x i8] c"remote_read_remote_read_res_3\00" +@"$address_type_erasure_test_res_1_389" = unnamed_addr constant [32 x i8] c"address_type_erasure_test_res_1\00" +@"$address_type_erasure_test_res_1_416" = unnamed_addr constant [32 x i8] c"address_type_erasure_test_res_1\00" +@"$address_type_erasure_test_res_1_466" = unnamed_addr constant [32 x i8] c"address_type_erasure_test_res_1\00" @_tydescr_table = constant [27 x %_TyDescrTy_Typ*] [%_TyDescrTy_Typ* @"$TyDescr_Addr_52", %_TyDescrTy_Typ* @"$TyDescr_Event_29", %_TyDescrTy_Typ* @"$TyDescr_Int64_11", %_TyDescrTy_Typ* @"$TyDescr_Addr_53", %_TyDescrTy_Typ* @"$TyDescr_Bystr20_37", %_TyDescrTy_Typ* @"$TyDescr_Uint256_21", %_TyDescrTy_Typ* @"$TyDescr_Uint32_9", %_TyDescrTy_Typ* @"$TyDescr_Uint64_13", %_TyDescrTy_Typ* @"$TyDescr_Addr_48", %_TyDescrTy_Typ* @"$TyDescr_Bnum_25", %_TyDescrTy_Typ* @"$TyDescr_Uint128_17", %_TyDescrTy_Typ* @"$TyDescr_Addr_50", %_TyDescrTy_Typ* @"$TyDescr_Addr_47", %_TyDescrTy_Typ* @"$TyDescr_Exception_31", %_TyDescrTy_Typ* @"$TyDescr_String_23", %_TyDescrTy_Typ* @"$TyDescr_Addr_54", %_TyDescrTy_Typ* @"$TyDescr_Map_43", %_TyDescrTy_Typ* @"$TyDescr_Int256_19", %_TyDescrTy_Typ* @"$TyDescr_Int128_15", %_TyDescrTy_Typ* @"$TyDescr_Addr_51", %_TyDescrTy_Typ* @"$TyDescr_ADT_Option_Uint128_41", %_TyDescrTy_Typ* @"$TyDescr_Bystr_35", %_TyDescrTy_Typ* @"$TyDescr_ReplicateContr_33", %_TyDescrTy_Typ* @"$TyDescr_Message_27", %_TyDescrTy_Typ* @"$TyDescr_Map_44", %_TyDescrTy_Typ* @"$TyDescr_Addr_49", %_TyDescrTy_Typ* @"$TyDescr_Int32_7"] @_tydescr_table_length = constant i32 27 -@"$pname__scilla_version_464" = unnamed_addr constant [15 x i8] c"_scilla_version" -@"$pname__this_address_465" = unnamed_addr constant [13 x i8] c"_this_address" -@"$pname__creation_block_466" = unnamed_addr constant [15 x i8] c"_creation_block" -@"$pname_cparam_467" = unnamed_addr constant [6 x i8] c"cparam" -@_contract_parameters = constant [4 x %"$ParamDescr_462"] [%"$ParamDescr_462" { %ParamDescrString { i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$pname__scilla_version_464", i32 0, i32 0), i32 15 }, %_TyDescrTy_Typ* @"$TyDescr_Uint32_9" }, %"$ParamDescr_462" { %ParamDescrString { i8* getelementptr inbounds ([13 x i8], [13 x i8]* @"$pname__this_address_465", i32 0, i32 0), i32 13 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr20_37" }, %"$ParamDescr_462" { %ParamDescrString { i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$pname__creation_block_466", i32 0, i32 0), i32 15 }, %_TyDescrTy_Typ* @"$TyDescr_Bnum_25" }, %"$ParamDescr_462" { %ParamDescrString { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$pname_cparam_467", i32 0, i32 0), i32 6 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_54" }] +@"$pname__scilla_version_481" = unnamed_addr constant [15 x i8] c"_scilla_version" +@"$pname__this_address_482" = unnamed_addr constant [13 x i8] c"_this_address" +@"$pname__creation_block_483" = unnamed_addr constant [15 x i8] c"_creation_block" +@"$pname_cparam_484" = unnamed_addr constant [6 x i8] c"cparam" +@_contract_parameters = constant [4 x %"$ParamDescr_479"] [%"$ParamDescr_479" { %ParamDescrString { i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$pname__scilla_version_481", i32 0, i32 0), i32 15 }, %_TyDescrTy_Typ* @"$TyDescr_Uint32_9" }, %"$ParamDescr_479" { %ParamDescrString { i8* getelementptr inbounds ([13 x i8], [13 x i8]* @"$pname__this_address_482", i32 0, i32 0), i32 13 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr20_37" }, %"$ParamDescr_479" { %ParamDescrString { i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$pname__creation_block_483", i32 0, i32 0), i32 15 }, %_TyDescrTy_Typ* @"$TyDescr_Bnum_25" }, %"$ParamDescr_479" { %ParamDescrString { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$pname_cparam_484", i32 0, i32 0), i32 6 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_54" }] @_contract_parameters_length = constant i32 4 -@"$tpname__amount_468" = unnamed_addr constant [7 x i8] c"_amount" -@"$tpname__origin_469" = unnamed_addr constant [7 x i8] c"_origin" -@"$tpname__sender_470" = unnamed_addr constant [7 x i8] c"_sender" -@"$tpname_remote_471" = unnamed_addr constant [6 x i8] c"remote" -@"$tparams_RemoteReadsOfRemoteRead_472" = unnamed_addr constant [4 x %"$ParamDescr_462"] [%"$ParamDescr_462" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_468", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_17" }, %"$ParamDescr_462" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_469", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_53" }, %"$ParamDescr_462" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_470", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_53" }, %"$ParamDescr_462" { %ParamDescrString { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$tpname_remote_471", i32 0, i32 0), i32 6 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_52" }] -@"$tname_RemoteReadsOfRemoteRead_473" = unnamed_addr constant [23 x i8] c"RemoteReadsOfRemoteRead" -@"$tpname__amount_474" = unnamed_addr constant [7 x i8] c"_amount" -@"$tpname__origin_475" = unnamed_addr constant [7 x i8] c"_origin" -@"$tpname__sender_476" = unnamed_addr constant [7 x i8] c"_sender" -@"$tpname_remote_477" = unnamed_addr constant [6 x i8] c"remote" -@"$tparams_RemoteReadsOfRemoteMap_478" = unnamed_addr constant [4 x %"$ParamDescr_462"] [%"$ParamDescr_462" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_474", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_17" }, %"$ParamDescr_462" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_475", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_53" }, %"$ParamDescr_462" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_476", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_53" }, %"$ParamDescr_462" { %ParamDescrString { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$tpname_remote_477", i32 0, i32 0), i32 6 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_49" }] -@"$tname_RemoteReadsOfRemoteMap_479" = unnamed_addr constant [22 x i8] c"RemoteReadsOfRemoteMap" -@"$tpname__amount_480" = unnamed_addr constant [7 x i8] c"_amount" -@"$tpname__origin_481" = unnamed_addr constant [7 x i8] c"_origin" -@"$tpname__sender_482" = unnamed_addr constant [7 x i8] c"_sender" -@"$tparams_RemoteReadsContractParam_483" = unnamed_addr constant [3 x %"$ParamDescr_462"] [%"$ParamDescr_462" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_480", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_17" }, %"$ParamDescr_462" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_481", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_53" }, %"$ParamDescr_462" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_482", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_53" }] -@"$tname_RemoteReadsContractParam_484" = unnamed_addr constant [24 x i8] c"RemoteReadsContractParam" @"$tpname__amount_485" = unnamed_addr constant [7 x i8] c"_amount" @"$tpname__origin_486" = unnamed_addr constant [7 x i8] c"_origin" @"$tpname__sender_487" = unnamed_addr constant [7 x i8] c"_sender" -@"$tparams_AddressTypeErasureTest1_488" = unnamed_addr constant [3 x %"$ParamDescr_462"] [%"$ParamDescr_462" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_485", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_17" }, %"$ParamDescr_462" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_486", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_53" }, %"$ParamDescr_462" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_487", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_53" }] -@"$tname_AddressTypeErasureTest1_489" = unnamed_addr constant [23 x i8] c"AddressTypeErasureTest1" -@"$tpname__amount_490" = unnamed_addr constant [7 x i8] c"_amount" -@"$tpname__origin_491" = unnamed_addr constant [7 x i8] c"_origin" -@"$tpname__sender_492" = unnamed_addr constant [7 x i8] c"_sender" -@"$tparams_AddressTypeErasureTest2_493" = unnamed_addr constant [3 x %"$ParamDescr_462"] [%"$ParamDescr_462" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_490", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_17" }, %"$ParamDescr_462" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_491", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_53" }, %"$ParamDescr_462" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_492", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_53" }] -@"$tname_AddressTypeErasureTest2_494" = unnamed_addr constant [23 x i8] c"AddressTypeErasureTest2" -@_transition_parameters = constant [5 x %"$TransDescr_463"] [%"$TransDescr_463" { %ParamDescrString { i8* getelementptr inbounds ([23 x i8], [23 x i8]* @"$tname_RemoteReadsOfRemoteRead_473", i32 0, i32 0), i32 23 }, i32 4, %"$ParamDescr_462"* getelementptr inbounds ([4 x %"$ParamDescr_462"], [4 x %"$ParamDescr_462"]* @"$tparams_RemoteReadsOfRemoteRead_472", i32 0, i32 0) }, %"$TransDescr_463" { %ParamDescrString { i8* getelementptr inbounds ([22 x i8], [22 x i8]* @"$tname_RemoteReadsOfRemoteMap_479", i32 0, i32 0), i32 22 }, i32 4, %"$ParamDescr_462"* getelementptr inbounds ([4 x %"$ParamDescr_462"], [4 x %"$ParamDescr_462"]* @"$tparams_RemoteReadsOfRemoteMap_478", i32 0, i32 0) }, %"$TransDescr_463" { %ParamDescrString { i8* getelementptr inbounds ([24 x i8], [24 x i8]* @"$tname_RemoteReadsContractParam_484", i32 0, i32 0), i32 24 }, i32 3, %"$ParamDescr_462"* getelementptr inbounds ([3 x %"$ParamDescr_462"], [3 x %"$ParamDescr_462"]* @"$tparams_RemoteReadsContractParam_483", i32 0, i32 0) }, %"$TransDescr_463" { %ParamDescrString { i8* getelementptr inbounds ([23 x i8], [23 x i8]* @"$tname_AddressTypeErasureTest1_489", i32 0, i32 0), i32 23 }, i32 3, %"$ParamDescr_462"* getelementptr inbounds ([3 x %"$ParamDescr_462"], [3 x %"$ParamDescr_462"]* @"$tparams_AddressTypeErasureTest1_488", i32 0, i32 0) }, %"$TransDescr_463" { %ParamDescrString { i8* getelementptr inbounds ([23 x i8], [23 x i8]* @"$tname_AddressTypeErasureTest2_494", i32 0, i32 0), i32 23 }, i32 3, %"$ParamDescr_462"* getelementptr inbounds ([3 x %"$ParamDescr_462"], [3 x %"$ParamDescr_462"]* @"$tparams_AddressTypeErasureTest2_493", i32 0, i32 0) }] +@"$tpname_remote_488" = unnamed_addr constant [6 x i8] c"remote" +@"$tparams_RemoteReadsOfRemoteRead_489" = unnamed_addr constant [4 x %"$ParamDescr_479"] [%"$ParamDescr_479" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_485", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_17" }, %"$ParamDescr_479" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_486", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_53" }, %"$ParamDescr_479" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_487", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_53" }, %"$ParamDescr_479" { %ParamDescrString { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$tpname_remote_488", i32 0, i32 0), i32 6 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_52" }] +@"$tname_RemoteReadsOfRemoteRead_490" = unnamed_addr constant [23 x i8] c"RemoteReadsOfRemoteRead" +@"$tpname__amount_491" = unnamed_addr constant [7 x i8] c"_amount" +@"$tpname__origin_492" = unnamed_addr constant [7 x i8] c"_origin" +@"$tpname__sender_493" = unnamed_addr constant [7 x i8] c"_sender" +@"$tpname_remote_494" = unnamed_addr constant [6 x i8] c"remote" +@"$tparams_RemoteReadsOfRemoteMap_495" = unnamed_addr constant [4 x %"$ParamDescr_479"] [%"$ParamDescr_479" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_491", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_17" }, %"$ParamDescr_479" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_492", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_53" }, %"$ParamDescr_479" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_493", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_53" }, %"$ParamDescr_479" { %ParamDescrString { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$tpname_remote_494", i32 0, i32 0), i32 6 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_49" }] +@"$tname_RemoteReadsOfRemoteMap_496" = unnamed_addr constant [22 x i8] c"RemoteReadsOfRemoteMap" +@"$tpname__amount_497" = unnamed_addr constant [7 x i8] c"_amount" +@"$tpname__origin_498" = unnamed_addr constant [7 x i8] c"_origin" +@"$tpname__sender_499" = unnamed_addr constant [7 x i8] c"_sender" +@"$tparams_RemoteReadsContractParam_500" = unnamed_addr constant [3 x %"$ParamDescr_479"] [%"$ParamDescr_479" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_497", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_17" }, %"$ParamDescr_479" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_498", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_53" }, %"$ParamDescr_479" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_499", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_53" }] +@"$tname_RemoteReadsContractParam_501" = unnamed_addr constant [24 x i8] c"RemoteReadsContractParam" +@"$tpname__amount_502" = unnamed_addr constant [7 x i8] c"_amount" +@"$tpname__origin_503" = unnamed_addr constant [7 x i8] c"_origin" +@"$tpname__sender_504" = unnamed_addr constant [7 x i8] c"_sender" +@"$tparams_AddressTypeErasureTest1_505" = unnamed_addr constant [3 x %"$ParamDescr_479"] [%"$ParamDescr_479" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_502", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_17" }, %"$ParamDescr_479" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_503", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_53" }, %"$ParamDescr_479" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_504", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_53" }] +@"$tname_AddressTypeErasureTest1_506" = unnamed_addr constant [23 x i8] c"AddressTypeErasureTest1" +@"$tpname__amount_507" = unnamed_addr constant [7 x i8] c"_amount" +@"$tpname__origin_508" = unnamed_addr constant [7 x i8] c"_origin" +@"$tpname__sender_509" = unnamed_addr constant [7 x i8] c"_sender" +@"$tparams_AddressTypeErasureTest2_510" = unnamed_addr constant [3 x %"$ParamDescr_479"] [%"$ParamDescr_479" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_507", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_17" }, %"$ParamDescr_479" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_508", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_53" }, %"$ParamDescr_479" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_509", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_53" }] +@"$tname_AddressTypeErasureTest2_511" = unnamed_addr constant [23 x i8] c"AddressTypeErasureTest2" +@_transition_parameters = constant [5 x %"$TransDescr_480"] [%"$TransDescr_480" { %ParamDescrString { i8* getelementptr inbounds ([23 x i8], [23 x i8]* @"$tname_RemoteReadsOfRemoteRead_490", i32 0, i32 0), i32 23 }, i32 4, %"$ParamDescr_479"* getelementptr inbounds ([4 x %"$ParamDescr_479"], [4 x %"$ParamDescr_479"]* @"$tparams_RemoteReadsOfRemoteRead_489", i32 0, i32 0) }, %"$TransDescr_480" { %ParamDescrString { i8* getelementptr inbounds ([22 x i8], [22 x i8]* @"$tname_RemoteReadsOfRemoteMap_496", i32 0, i32 0), i32 22 }, i32 4, %"$ParamDescr_479"* getelementptr inbounds ([4 x %"$ParamDescr_479"], [4 x %"$ParamDescr_479"]* @"$tparams_RemoteReadsOfRemoteMap_495", i32 0, i32 0) }, %"$TransDescr_480" { %ParamDescrString { i8* getelementptr inbounds ([24 x i8], [24 x i8]* @"$tname_RemoteReadsContractParam_501", i32 0, i32 0), i32 24 }, i32 3, %"$ParamDescr_479"* getelementptr inbounds ([3 x %"$ParamDescr_479"], [3 x %"$ParamDescr_479"]* @"$tparams_RemoteReadsContractParam_500", i32 0, i32 0) }, %"$TransDescr_480" { %ParamDescrString { i8* getelementptr inbounds ([23 x i8], [23 x i8]* @"$tname_AddressTypeErasureTest1_506", i32 0, i32 0), i32 23 }, i32 3, %"$ParamDescr_479"* getelementptr inbounds ([3 x %"$ParamDescr_479"], [3 x %"$ParamDescr_479"]* @"$tparams_AddressTypeErasureTest1_505", i32 0, i32 0) }, %"$TransDescr_480" { %ParamDescrString { i8* getelementptr inbounds ([23 x i8], [23 x i8]* @"$tname_AddressTypeErasureTest2_511", i32 0, i32 0), i32 23 }, i32 3, %"$ParamDescr_479"* getelementptr inbounds ([3 x %"$ParamDescr_479"], [3 x %"$ParamDescr_479"]* @"$tparams_AddressTypeErasureTest2_510", i32 0, i32 0) }] @_transition_parameters_length = constant i32 5 -define void @_init_libs() !dbg !4 { +define void @_init_libs() !dbg !3 { entry: %"$gasrem_91" = load i64, i64* @_gasrem, align 8 %"$gascmp_92" = icmp ugt i64 5, %"$gasrem_91" @@ -200,6 +200,7 @@ entry: %"$consume_100" = sub i64 %"$gasrem_96", 1 store i64 %"$consume_100", i64* @_gasrem, align 8 %"$remote_read_remote_read_res_1_1" = alloca %Uint128, align 8 + call void @llvm.dbg.declare(metadata %Uint128* %"$remote_read_remote_read_res_1_1", metadata !11, metadata !DIExpression()), !dbg !13 %"$gasrem_101" = load i64, i64* @_gasrem, align 8 %"$gascmp_102" = icmp ugt i64 1, %"$gasrem_101" br i1 %"$gascmp_102", label %"$out_of_gas_103", label %"$have_gas_104" @@ -211,14 +212,15 @@ entry: "$have_gas_104": ; preds = %"$out_of_gas_103", %"$have_gas_99" %"$consume_105" = sub i64 %"$gasrem_101", 1 store i64 %"$consume_105", i64* @_gasrem, align 8 - store %Uint128 zeroinitializer, %Uint128* %"$remote_read_remote_read_res_1_1", align 8, !dbg !11 + store %Uint128 zeroinitializer, %Uint128* %"$remote_read_remote_read_res_1_1", align 8, !dbg !14 %"$execptr_load_106" = load i8*, i8** @_execptr, align 8 %"$$remote_read_remote_read_res_1_1_108" = load %Uint128, %Uint128* %"$remote_read_remote_read_res_1_1", align 8 %"$update_value_109" = alloca %Uint128, align 8 store %Uint128 %"$$remote_read_remote_read_res_1_1_108", %Uint128* %"$update_value_109", align 8 %"$update_value_110" = bitcast %Uint128* %"$update_value_109" to i8* - call void @_update_field(i8* %"$execptr_load_106", i8* getelementptr inbounds ([30 x i8], [30 x i8]* @"$remote_read_remote_read_res_1_107", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Uint128_17", i32 0, i8* null, i8* %"$update_value_110"), !dbg !11 + call void @_update_field(i8* %"$execptr_load_106", i8* getelementptr inbounds ([30 x i8], [30 x i8]* @"$remote_read_remote_read_res_1_107", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Uint128_17", i32 0, i8* null, i8* %"$update_value_110"), !dbg !14 %"$remote_read_remote_read_res_2_2" = alloca %TName_Option_Uint128*, align 8 + call void @llvm.dbg.declare(metadata %TName_Option_Uint128** %"$remote_read_remote_read_res_2_2", metadata !15, metadata !DIExpression()), !dbg !18 %"$gasrem_111" = load i64, i64* @_gasrem, align 8 %"$gascmp_112" = icmp ugt i64 1, %"$gasrem_111" br i1 %"$gascmp_112", label %"$out_of_gas_113", label %"$have_gas_114" @@ -236,12 +238,13 @@ entry: %"$adtgep_117" = getelementptr inbounds %CName_None_Uint128, %CName_None_Uint128* %"$adtval_116", i32 0, i32 0 store i8 1, i8* %"$adtgep_117", align 1 %"$adtptr_118" = bitcast %CName_None_Uint128* %"$adtval_116" to %TName_Option_Uint128* - store %TName_Option_Uint128* %"$adtptr_118", %TName_Option_Uint128** %"$remote_read_remote_read_res_2_2", align 8, !dbg !12 + store %TName_Option_Uint128* %"$adtptr_118", %TName_Option_Uint128** %"$remote_read_remote_read_res_2_2", align 8, !dbg !19 %"$execptr_load_119" = load i8*, i8** @_execptr, align 8 %"$$remote_read_remote_read_res_2_2_121" = load %TName_Option_Uint128*, %TName_Option_Uint128** %"$remote_read_remote_read_res_2_2", align 8 %"$update_value_122" = bitcast %TName_Option_Uint128* %"$$remote_read_remote_read_res_2_2_121" to i8* - call void @_update_field(i8* %"$execptr_load_119", i8* getelementptr inbounds ([30 x i8], [30 x i8]* @"$remote_read_remote_read_res_2_120", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_ADT_Option_Uint128_41", i32 0, i8* null, i8* %"$update_value_122"), !dbg !12 + call void @_update_field(i8* %"$execptr_load_119", i8* getelementptr inbounds ([30 x i8], [30 x i8]* @"$remote_read_remote_read_res_2_120", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_ADT_Option_Uint128_41", i32 0, i8* null, i8* %"$update_value_122"), !dbg !19 %"$remote_read_remote_read_res_3_3" = alloca [20 x i8], align 1 + call void @llvm.dbg.declare(metadata [20 x i8]* %"$remote_read_remote_read_res_3_3", metadata !20, metadata !DIExpression()), !dbg !22 %"$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" @@ -254,14 +257,15 @@ entry: %"$consume_127" = sub i64 %"$gasrem_123", 1 store i64 %"$consume_127", i64* @_gasrem, align 8 %"$_this_address_128" = load [20 x i8], [20 x i8]* @_cparam__this_address, align 1 - store [20 x i8] %"$_this_address_128", [20 x i8]* %"$remote_read_remote_read_res_3_3", align 1, !dbg !13 + store [20 x i8] %"$_this_address_128", [20 x i8]* %"$remote_read_remote_read_res_3_3", align 1, !dbg !23 %"$execptr_load_129" = load i8*, i8** @_execptr, align 8 %"$$remote_read_remote_read_res_3_3_131" = load [20 x i8], [20 x i8]* %"$remote_read_remote_read_res_3_3", align 1 %"$update_value_132" = alloca [20 x i8], align 1 store [20 x i8] %"$$remote_read_remote_read_res_3_3_131", [20 x i8]* %"$update_value_132", align 1 %"$update_value_133" = bitcast [20 x i8]* %"$update_value_132" to i8* - call void @_update_field(i8* %"$execptr_load_129", i8* getelementptr inbounds ([30 x i8], [30 x i8]* @"$remote_read_remote_read_res_3_130", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Bystr20_37", i32 0, i8* null, i8* %"$update_value_133"), !dbg !13 + call void @_update_field(i8* %"$execptr_load_129", i8* getelementptr inbounds ([30 x i8], [30 x i8]* @"$remote_read_remote_read_res_3_130", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Bystr20_37", i32 0, i8* null, i8* %"$update_value_133"), !dbg !23 %"$address_type_erasure_test_res_1_4" = alloca %Map_Uint128_ByStr20_with_end*, align 8 + call void @llvm.dbg.declare(metadata %Map_Uint128_ByStr20_with_end** %"$address_type_erasure_test_res_1_4", metadata !24, metadata !DIExpression()), !dbg !27 %"$gasrem_134" = load i64, i64* @_gasrem, align 8 %"$gascmp_135" = icmp ugt i64 1, %"$gasrem_134" br i1 %"$gascmp_135", label %"$out_of_gas_136", label %"$have_gas_137" @@ -276,30 +280,46 @@ entry: %"$execptr_load_139" = load i8*, i8** @_execptr, align 8 %"$_new_empty_map_call_140" = call i8* @_new_empty_map(i8* %"$execptr_load_139") %"$_new_empty_map_141" = bitcast i8* %"$_new_empty_map_call_140" to %Map_Uint128_ByStr20_with_end* - store %Map_Uint128_ByStr20_with_end* %"$_new_empty_map_141", %Map_Uint128_ByStr20_with_end** %"$address_type_erasure_test_res_1_4", align 8, !dbg !14 + store %Map_Uint128_ByStr20_with_end* %"$_new_empty_map_141", %Map_Uint128_ByStr20_with_end** %"$address_type_erasure_test_res_1_4", align 8, !dbg !28 %"$execptr_load_142" = load i8*, i8** @_execptr, align 8 %"$$address_type_erasure_test_res_1_4_144" = load %Map_Uint128_ByStr20_with_end*, %Map_Uint128_ByStr20_with_end** %"$address_type_erasure_test_res_1_4", align 8 %"$update_value_145" = bitcast %Map_Uint128_ByStr20_with_end* %"$$address_type_erasure_test_res_1_4_144" to i8* - call void @_update_field(i8* %"$execptr_load_142", i8* getelementptr inbounds ([32 x i8], [32 x i8]* @"$address_type_erasure_test_res_1_143", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_44", i32 0, i8* null, i8* %"$update_value_145"), !dbg !14 + call void @_update_field(i8* %"$execptr_load_142", i8* getelementptr inbounds ([32 x i8], [32 x i8]* @"$address_type_erasure_test_res_1_143", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_44", i32 0, i8* null, i8* %"$update_value_145"), !dbg !28 ret void } +; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn +declare void @llvm.dbg.declare(metadata, metadata, metadata) #0 + declare void @_update_field(i8*, i8*, %_TyDescrTy_Typ*, i32, i8*, i8*) declare i8* @_salloc(i8*, i64) declare i8* @_new_empty_map(i8*) -define internal void @"$RemoteReadsOfRemoteRead_146"(%Uint128 %_amount, [20 x i8]* %"$_origin_147", [20 x i8]* %"$_sender_148", [20 x i8]* %"$remote_149") !dbg !15 { +define internal void @"$RemoteReadsOfRemoteRead_146"(%Uint128 %_amount, [20 x i8]* %"$_origin_147", [20 x i8]* %"$_sender_148", [20 x i8]* %"$remote_149") !dbg !29 { entry: + %"$remote_217" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$remote_149", [20 x i8]** %"$remote_217", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$remote_217", metadata !30, metadata !DIExpression()), !dbg !32 + %"$_sender_216" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_sender_148", [20 x i8]** %"$_sender_216", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_sender_216", metadata !33, metadata !DIExpression()), !dbg !35 + %"$_origin_215" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_origin_147", [20 x i8]** %"$_origin_215", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_origin_215", metadata !36, metadata !DIExpression()), !dbg !35 + %"$_amount_214" = alloca %Uint128, align 8 + store %Uint128 %_amount, %Uint128* %"$_amount_214", align 8 + call void @llvm.dbg.declare(metadata %Uint128* %"$_amount_214", metadata !37, metadata !DIExpression()), !dbg !35 %_origin = load [20 x i8], [20 x i8]* %"$_origin_147", align 1 %_sender = load [20 x i8], [20 x i8]* %"$_sender_148", align 1 %remote = load [20 x i8], [20 x i8]* %"$remote_149", align 1 %ad = alloca [20 x i8], align 1 + call void @llvm.dbg.declare(metadata [20 x i8]* %ad, metadata !38, metadata !DIExpression()), !dbg !40 %"$execptr_load_151" = load i8*, i8** @_execptr, align 8 %"$ad_remote_152" = alloca [20 x i8], align 1 store [20 x i8] %remote, [20 x i8]* %"$ad_remote_152", align 1 - %"$ad_call_153" = call i8* @_fetch_remote_field(i8* %"$execptr_load_151", [20 x i8]* %"$ad_remote_152", i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$admin_150", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Addr_51", i32 0, i8* null, i32 1), !dbg !16 + %"$ad_call_153" = call i8* @_fetch_remote_field(i8* %"$execptr_load_151", [20 x i8]* %"$ad_remote_152", i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$admin_150", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Addr_51", i32 0, i8* null, i32 1), !dbg !40 %"$ad_154" = bitcast i8* %"$ad_call_153" to [20 x i8]* %"$ad_155" = load [20 x i8], [20 x i8]* %"$ad_154", align 1 store [20 x i8] %"$ad_155", [20 x i8]* %ad, align 1 @@ -321,11 +341,12 @@ entry: %"$consume_165" = sub i64 %"$gasrem_161", %"$gasadd_160" store i64 %"$consume_165", i64* @_gasrem, align 8 %this_f = alloca [20 x i8], align 1 + call void @llvm.dbg.declare(metadata [20 x i8]* %this_f, metadata !41, metadata !DIExpression()), !dbg !43 %"$execptr_load_167" = load i8*, i8** @_execptr, align 8 %"$this_f_ad_168" = alloca [20 x i8], align 1 %"$ad_169" = load [20 x i8], [20 x i8]* %ad, align 1 store [20 x i8] %"$ad_169", [20 x i8]* %"$this_f_ad_168", align 1 - %"$this_f_call_170" = call i8* @_fetch_remote_field(i8* %"$execptr_load_167", [20 x i8]* %"$this_f_ad_168", i8* getelementptr inbounds ([2 x i8], [2 x i8]* @"$f_166", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Addr_50", i32 0, i8* null, i32 1), !dbg !17 + %"$this_f_call_170" = call i8* @_fetch_remote_field(i8* %"$execptr_load_167", [20 x i8]* %"$this_f_ad_168", i8* getelementptr inbounds ([2 x i8], [2 x i8]* @"$f_166", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Addr_50", i32 0, i8* null, i32 1), !dbg !43 %"$this_f_171" = bitcast i8* %"$this_f_call_170" to [20 x i8]* %"$this_f_172" = load [20 x i8], [20 x i8]* %"$this_f_171", align 1 store [20 x i8] %"$this_f_172", [20 x i8]* %this_f, align 1 @@ -347,11 +368,12 @@ entry: %"$consume_182" = sub i64 %"$gasrem_178", %"$gasadd_177" store i64 %"$consume_182", i64* @_gasrem, align 8 %this_g = alloca %Uint128, align 8 + call void @llvm.dbg.declare(metadata %Uint128* %this_g, metadata !44, metadata !DIExpression()), !dbg !45 %"$execptr_load_184" = load i8*, i8** @_execptr, align 8 %"$this_g_this_f_185" = alloca [20 x i8], align 1 %"$this_f_186" = load [20 x i8], [20 x i8]* %this_f, align 1 store [20 x i8] %"$this_f_186", [20 x i8]* %"$this_g_this_f_185", align 1 - %"$this_g_call_187" = call i8* @_fetch_remote_field(i8* %"$execptr_load_184", [20 x i8]* %"$this_g_this_f_185", i8* getelementptr inbounds ([2 x i8], [2 x i8]* @"$g_183", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Uint128_17", i32 0, i8* null, i32 1), !dbg !18 + %"$this_g_call_187" = call i8* @_fetch_remote_field(i8* %"$execptr_load_184", [20 x i8]* %"$this_g_this_f_185", i8* getelementptr inbounds ([2 x i8], [2 x i8]* @"$g_183", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Uint128_17", i32 0, i8* null, i32 1), !dbg !45 %"$this_g_188" = bitcast i8* %"$this_g_call_187" to %Uint128* %"$this_g_189" = load %Uint128, %Uint128* %"$this_g_188", align 8 store %Uint128 %"$this_g_189", %Uint128* %this_g, align 8 @@ -393,7 +415,7 @@ entry: %"$update_value_212" = alloca %Uint128, align 8 store %Uint128 %"$this_g_211", %Uint128* %"$update_value_212", align 8 %"$update_value_213" = bitcast %Uint128* %"$update_value_212" to i8* - call void @_update_field(i8* %"$execptr_load_209", i8* getelementptr inbounds ([30 x i8], [30 x i8]* @"$remote_read_remote_read_res_1_210", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Uint128_17", i32 0, i8* null, i8* %"$update_value_213"), !dbg !19 + call void @_update_field(i8* %"$execptr_load_209", i8* getelementptr inbounds ([30 x i8], [30 x i8]* @"$remote_read_remote_read_res_1_210", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Uint128_17", i32 0, i8* null, i8* %"$update_value_213"), !dbg !46 ret void } @@ -401,422 +423,470 @@ declare i8* @_fetch_remote_field(i8*, [20 x i8]*, i8*, %_TyDescrTy_Typ*, i32, i8 declare i64 @_literal_cost(%_TyDescrTy_Typ*, i8*) -define void @RemoteReadsOfRemoteRead(i8* %0) !dbg !20 { +define void @RemoteReadsOfRemoteRead(i8* %0) !dbg !47 { entry: - %"$_amount_215" = getelementptr i8, i8* %0, i32 0 - %"$_amount_216" = bitcast i8* %"$_amount_215" to %Uint128* - %_amount = load %Uint128, %Uint128* %"$_amount_216", align 8 - %"$_origin_217" = getelementptr i8, i8* %0, i32 16 - %"$_origin_218" = bitcast i8* %"$_origin_217" to [20 x i8]* - %"$_sender_219" = getelementptr i8, i8* %0, i32 36 - %"$_sender_220" = bitcast i8* %"$_sender_219" to [20 x i8]* - %"$remote_221" = getelementptr i8, i8* %0, i32 56 - %"$remote_222" = bitcast i8* %"$remote_221" to [20 x i8]* - call void @"$RemoteReadsOfRemoteRead_146"(%Uint128 %_amount, [20 x i8]* %"$_origin_218", [20 x i8]* %"$_sender_220", [20 x i8]* %"$remote_222"), !dbg !21 + %"$_amount_219" = getelementptr i8, i8* %0, i32 0 + %"$_amount_220" = bitcast i8* %"$_amount_219" to %Uint128* + %_amount = load %Uint128, %Uint128* %"$_amount_220", align 8 + %"$_origin_221" = getelementptr i8, i8* %0, i32 16 + %"$_origin_222" = bitcast i8* %"$_origin_221" to [20 x i8]* + %"$_sender_223" = getelementptr i8, i8* %0, i32 36 + %"$_sender_224" = bitcast i8* %"$_sender_223" to [20 x i8]* + %"$remote_225" = getelementptr i8, i8* %0, i32 56 + %"$remote_226" = bitcast i8* %"$remote_225" to [20 x i8]* + call void @"$RemoteReadsOfRemoteRead_146"(%Uint128 %_amount, [20 x i8]* %"$_origin_222", [20 x i8]* %"$_sender_224", [20 x i8]* %"$remote_226"), !dbg !48 ret void } -define internal void @"$RemoteReadsOfRemoteMap_223"(%Uint128 %_amount, [20 x i8]* %"$_origin_224", [20 x i8]* %"$_sender_225", [20 x i8]* %"$remote_226") !dbg !22 { +define internal void @"$RemoteReadsOfRemoteMap_227"(%Uint128 %_amount, [20 x i8]* %"$_origin_228", [20 x i8]* %"$_sender_229", [20 x i8]* %"$remote_230") !dbg !49 { entry: - %_origin = load [20 x i8], [20 x i8]* %"$_origin_224", align 1 - %_sender = load [20 x i8], [20 x i8]* %"$_sender_225", align 1 - %remote = load [20 x i8], [20 x i8]* %"$remote_226", align 1 + %"$remote_308" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$remote_230", [20 x i8]** %"$remote_308", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$remote_308", metadata !50, metadata !DIExpression()), !dbg !52 + %"$_sender_307" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_sender_229", [20 x i8]** %"$_sender_307", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_sender_307", metadata !53, metadata !DIExpression()), !dbg !54 + %"$_origin_306" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_origin_228", [20 x i8]** %"$_origin_306", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_origin_306", metadata !55, metadata !DIExpression()), !dbg !54 + %"$_amount_305" = alloca %Uint128, align 8 + store %Uint128 %_amount, %Uint128* %"$_amount_305", align 8 + call void @llvm.dbg.declare(metadata %Uint128* %"$_amount_305", metadata !56, metadata !DIExpression()), !dbg !54 + %_origin = load [20 x i8], [20 x i8]* %"$_origin_228", align 1 + %_sender = load [20 x i8], [20 x i8]* %"$_sender_229", align 1 + %remote = load [20 x i8], [20 x i8]* %"$remote_230", align 1 %ad = alloca [20 x i8], align 1 - %"$execptr_load_228" = load i8*, i8** @_execptr, align 8 - %"$ad_remote_229" = alloca [20 x i8], align 1 - store [20 x i8] %remote, [20 x i8]* %"$ad_remote_229", align 1 - %"$ad_call_230" = call i8* @_fetch_remote_field(i8* %"$execptr_load_228", [20 x i8]* %"$ad_remote_229", i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$admin_227", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Addr_48", i32 0, i8* null, i32 1), !dbg !23 - %"$ad_231" = bitcast i8* %"$ad_call_230" to [20 x i8]* - %"$ad_232" = load [20 x i8], [20 x i8]* %"$ad_231", align 1 - store [20 x i8] %"$ad_232", [20 x i8]* %ad, align 1 - %"$_literal_cost_ad_233" = alloca [20 x i8], align 1 - %"$ad_234" = load [20 x i8], [20 x i8]* %ad, align 1 - store [20 x i8] %"$ad_234", [20 x i8]* %"$_literal_cost_ad_233", align 1 - %"$$_literal_cost_ad_233_235" = bitcast [20 x i8]* %"$_literal_cost_ad_233" to i8* - %"$_literal_cost_call_236" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Addr_48", i8* %"$$_literal_cost_ad_233_235") - %"$gasadd_237" = add i64 %"$_literal_cost_call_236", 0 - %"$gasrem_238" = load i64, i64* @_gasrem, align 8 - %"$gascmp_239" = icmp ugt i64 %"$gasadd_237", %"$gasrem_238" - br i1 %"$gascmp_239", label %"$out_of_gas_240", label %"$have_gas_241" - -"$out_of_gas_240": ; preds = %entry + call void @llvm.dbg.declare(metadata [20 x i8]* %ad, metadata !57, metadata !DIExpression()), !dbg !59 + %"$execptr_load_232" = load i8*, i8** @_execptr, align 8 + %"$ad_remote_233" = alloca [20 x i8], align 1 + store [20 x i8] %remote, [20 x i8]* %"$ad_remote_233", align 1 + %"$ad_call_234" = call i8* @_fetch_remote_field(i8* %"$execptr_load_232", [20 x i8]* %"$ad_remote_233", i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$admin_231", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Addr_48", i32 0, i8* null, i32 1), !dbg !59 + %"$ad_235" = bitcast i8* %"$ad_call_234" to [20 x i8]* + %"$ad_236" = load [20 x i8], [20 x i8]* %"$ad_235", align 1 + store [20 x i8] %"$ad_236", [20 x i8]* %ad, align 1 + %"$_literal_cost_ad_237" = alloca [20 x i8], align 1 + %"$ad_238" = load [20 x i8], [20 x i8]* %ad, align 1 + store [20 x i8] %"$ad_238", [20 x i8]* %"$_literal_cost_ad_237", align 1 + %"$$_literal_cost_ad_237_239" = bitcast [20 x i8]* %"$_literal_cost_ad_237" to i8* + %"$_literal_cost_call_240" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Addr_48", i8* %"$$_literal_cost_ad_237_239") + %"$gasadd_241" = add i64 %"$_literal_cost_call_240", 0 + %"$gasrem_242" = load i64, i64* @_gasrem, align 8 + %"$gascmp_243" = icmp ugt i64 %"$gasadd_241", %"$gasrem_242" + br i1 %"$gascmp_243", label %"$out_of_gas_244", label %"$have_gas_245" + +"$out_of_gas_244": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_241" + br label %"$have_gas_245" -"$have_gas_241": ; preds = %"$out_of_gas_240", %entry - %"$consume_242" = sub i64 %"$gasrem_238", %"$gasadd_237" - store i64 %"$consume_242", i64* @_gasrem, align 8 +"$have_gas_245": ; preds = %"$out_of_gas_244", %entry + %"$consume_246" = sub i64 %"$gasrem_242", %"$gasadd_241" + store i64 %"$consume_246", i64* @_gasrem, align 8 %this_f = alloca [20 x i8], align 1 - %"$execptr_load_244" = load i8*, i8** @_execptr, align 8 - %"$this_f_ad_245" = alloca [20 x i8], align 1 - %"$ad_246" = load [20 x i8], [20 x i8]* %ad, align 1 - store [20 x i8] %"$ad_246", [20 x i8]* %"$this_f_ad_245", align 1 - %"$this_f_call_247" = call i8* @_fetch_remote_field(i8* %"$execptr_load_244", [20 x i8]* %"$this_f_ad_245", i8* getelementptr inbounds ([2 x i8], [2 x i8]* @"$f_243", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Addr_47", i32 0, i8* null, i32 1), !dbg !24 - %"$this_f_248" = bitcast i8* %"$this_f_call_247" to [20 x i8]* - %"$this_f_249" = load [20 x i8], [20 x i8]* %"$this_f_248", align 1 - store [20 x i8] %"$this_f_249", [20 x i8]* %this_f, align 1 - %"$_literal_cost_this_f_250" = alloca [20 x i8], align 1 - %"$this_f_251" = load [20 x i8], [20 x i8]* %this_f, align 1 - store [20 x i8] %"$this_f_251", [20 x i8]* %"$_literal_cost_this_f_250", align 1 - %"$$_literal_cost_this_f_250_252" = bitcast [20 x i8]* %"$_literal_cost_this_f_250" to i8* - %"$_literal_cost_call_253" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Addr_47", i8* %"$$_literal_cost_this_f_250_252") - %"$gasadd_254" = add i64 %"$_literal_cost_call_253", 0 - %"$gasrem_255" = load i64, i64* @_gasrem, align 8 - %"$gascmp_256" = icmp ugt i64 %"$gasadd_254", %"$gasrem_255" - br i1 %"$gascmp_256", label %"$out_of_gas_257", label %"$have_gas_258" - -"$out_of_gas_257": ; preds = %"$have_gas_241" + call void @llvm.dbg.declare(metadata [20 x i8]* %this_f, metadata !60, metadata !DIExpression()), !dbg !62 + %"$execptr_load_248" = load i8*, i8** @_execptr, align 8 + %"$this_f_ad_249" = alloca [20 x i8], align 1 + %"$ad_250" = load [20 x i8], [20 x i8]* %ad, align 1 + store [20 x i8] %"$ad_250", [20 x i8]* %"$this_f_ad_249", align 1 + %"$this_f_call_251" = call i8* @_fetch_remote_field(i8* %"$execptr_load_248", [20 x i8]* %"$this_f_ad_249", i8* getelementptr inbounds ([2 x i8], [2 x i8]* @"$f_247", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Addr_47", i32 0, i8* null, i32 1), !dbg !62 + %"$this_f_252" = bitcast i8* %"$this_f_call_251" to [20 x i8]* + %"$this_f_253" = load [20 x i8], [20 x i8]* %"$this_f_252", align 1 + store [20 x i8] %"$this_f_253", [20 x i8]* %this_f, align 1 + %"$_literal_cost_this_f_254" = alloca [20 x i8], align 1 + %"$this_f_255" = load [20 x i8], [20 x i8]* %this_f, align 1 + store [20 x i8] %"$this_f_255", [20 x i8]* %"$_literal_cost_this_f_254", align 1 + %"$$_literal_cost_this_f_254_256" = bitcast [20 x i8]* %"$_literal_cost_this_f_254" to i8* + %"$_literal_cost_call_257" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Addr_47", i8* %"$$_literal_cost_this_f_254_256") + %"$gasadd_258" = add i64 %"$_literal_cost_call_257", 0 + %"$gasrem_259" = load i64, i64* @_gasrem, align 8 + %"$gascmp_260" = icmp ugt i64 %"$gasadd_258", %"$gasrem_259" + br i1 %"$gascmp_260", label %"$out_of_gas_261", label %"$have_gas_262" + +"$out_of_gas_261": ; preds = %"$have_gas_245" call void @_out_of_gas() - br label %"$have_gas_258" + br label %"$have_gas_262" -"$have_gas_258": ; preds = %"$out_of_gas_257", %"$have_gas_241" - %"$consume_259" = sub i64 %"$gasrem_255", %"$gasadd_254" - store i64 %"$consume_259", i64* @_gasrem, align 8 - %"$gasrem_260" = load i64, i64* @_gasrem, align 8 - %"$gascmp_261" = icmp ugt i64 1, %"$gasrem_260" - br i1 %"$gascmp_261", label %"$out_of_gas_262", label %"$have_gas_263" +"$have_gas_262": ; preds = %"$out_of_gas_261", %"$have_gas_245" + %"$consume_263" = sub i64 %"$gasrem_259", %"$gasadd_258" + store i64 %"$consume_263", i64* @_gasrem, 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_262": ; preds = %"$have_gas_258" +"$out_of_gas_266": ; preds = %"$have_gas_262" call void @_out_of_gas() - br label %"$have_gas_263" + br label %"$have_gas_267" -"$have_gas_263": ; preds = %"$out_of_gas_262", %"$have_gas_258" - %"$consume_264" = sub i64 %"$gasrem_260", 1 - store i64 %"$consume_264", i64* @_gasrem, align 8 +"$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 %remote_key = alloca %Uint128, align 8 - %"$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" + call void @llvm.dbg.declare(metadata %Uint128* %remote_key, metadata !63, metadata !DIExpression()), !dbg !64 + %"$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" -"$out_of_gas_267": ; preds = %"$have_gas_263" +"$out_of_gas_271": ; preds = %"$have_gas_267" call void @_out_of_gas() - br label %"$have_gas_268" + br label %"$have_gas_272" -"$have_gas_268": ; preds = %"$out_of_gas_267", %"$have_gas_263" - %"$consume_269" = sub i64 %"$gasrem_265", 1 - store i64 %"$consume_269", i64* @_gasrem, align 8 - store %Uint128 zeroinitializer, %Uint128* %remote_key, align 8, !dbg !25 +"$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 + store %Uint128 zeroinitializer, %Uint128* %remote_key, align 8, !dbg !65 %this_g = alloca %TName_Option_Uint128*, align 8 - %"$indices_buf_270_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$indices_buf_270_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_270_salloc_load", i64 16) - %"$indices_buf_270_salloc" = bitcast i8* %"$indices_buf_270_salloc_salloc" to [16 x i8]* - %"$indices_buf_270" = bitcast [16 x i8]* %"$indices_buf_270_salloc" to i8* - %"$remote_key_271" = load %Uint128, %Uint128* %remote_key, align 8 - %"$indices_gep_272" = getelementptr i8, i8* %"$indices_buf_270", i32 0 - %indices_cast = bitcast i8* %"$indices_gep_272" to %Uint128* - store %Uint128 %"$remote_key_271", %Uint128* %indices_cast, align 8 - %"$execptr_load_274" = load i8*, i8** @_execptr, align 8 - %"$this_g_this_f_275" = alloca [20 x i8], align 1 - %"$this_f_276" = load [20 x i8], [20 x i8]* %this_f, align 1 - store [20 x i8] %"$this_f_276", [20 x i8]* %"$this_g_this_f_275", align 1 - %"$this_g_call_277" = call i8* @_fetch_remote_field(i8* %"$execptr_load_274", [20 x i8]* %"$this_g_this_f_275", i8* getelementptr inbounds ([2 x i8], [2 x i8]* @"$g_273", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_43", i32 1, i8* %"$indices_buf_270", i32 1), !dbg !26 - %"$this_g_278" = bitcast i8* %"$this_g_call_277" to %TName_Option_Uint128* - store %TName_Option_Uint128* %"$this_g_278", %TName_Option_Uint128** %this_g, align 8 - %"$this_g_279" = load %TName_Option_Uint128*, %TName_Option_Uint128** %this_g, align 8 - %"$$this_g_279_280" = bitcast %TName_Option_Uint128* %"$this_g_279" to i8* - %"$_literal_cost_call_281" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_Uint128_41", i8* %"$$this_g_279_280") - %"$gasadd_282" = add i64 %"$_literal_cost_call_281", 0 - %"$gasadd_283" = add i64 %"$gasadd_282", 1 - %"$gasrem_284" = load i64, i64* @_gasrem, align 8 - %"$gascmp_285" = icmp ugt i64 %"$gasadd_283", %"$gasrem_284" - br i1 %"$gascmp_285", label %"$out_of_gas_286", label %"$have_gas_287" - -"$out_of_gas_286": ; preds = %"$have_gas_268" + call void @llvm.dbg.declare(metadata %TName_Option_Uint128** %this_g, metadata !66, metadata !DIExpression()), !dbg !67 + %"$indices_buf_274_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$indices_buf_274_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_274_salloc_load", i64 16) + %"$indices_buf_274_salloc" = bitcast i8* %"$indices_buf_274_salloc_salloc" to [16 x i8]* + %"$indices_buf_274" = bitcast [16 x i8]* %"$indices_buf_274_salloc" to i8* + %"$remote_key_275" = load %Uint128, %Uint128* %remote_key, align 8 + %"$indices_gep_276" = getelementptr i8, i8* %"$indices_buf_274", i32 0 + %indices_cast = bitcast i8* %"$indices_gep_276" to %Uint128* + store %Uint128 %"$remote_key_275", %Uint128* %indices_cast, align 8 + %"$execptr_load_278" = load i8*, i8** @_execptr, align 8 + %"$this_g_this_f_279" = alloca [20 x i8], align 1 + %"$this_f_280" = load [20 x i8], [20 x i8]* %this_f, align 1 + store [20 x i8] %"$this_f_280", [20 x i8]* %"$this_g_this_f_279", align 1 + %"$this_g_call_281" = call i8* @_fetch_remote_field(i8* %"$execptr_load_278", [20 x i8]* %"$this_g_this_f_279", i8* getelementptr inbounds ([2 x i8], [2 x i8]* @"$g_277", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_43", i32 1, i8* %"$indices_buf_274", i32 1), !dbg !67 + %"$this_g_282" = bitcast i8* %"$this_g_call_281" to %TName_Option_Uint128* + store %TName_Option_Uint128* %"$this_g_282", %TName_Option_Uint128** %this_g, align 8 + %"$this_g_283" = load %TName_Option_Uint128*, %TName_Option_Uint128** %this_g, align 8 + %"$$this_g_283_284" = bitcast %TName_Option_Uint128* %"$this_g_283" to i8* + %"$_literal_cost_call_285" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_Uint128_41", i8* %"$$this_g_283_284") + %"$gasadd_286" = add i64 %"$_literal_cost_call_285", 0 + %"$gasadd_287" = add i64 %"$gasadd_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 = %"$have_gas_272" call void @_out_of_gas() - br label %"$have_gas_287" - -"$have_gas_287": ; preds = %"$out_of_gas_286", %"$have_gas_268" - %"$consume_288" = sub i64 %"$gasrem_284", %"$gasadd_283" - store i64 %"$consume_288", i64* @_gasrem, align 8 - %"$this_g_289" = load %TName_Option_Uint128*, %TName_Option_Uint128** %this_g, align 8 - %"$$this_g_289_290" = bitcast %TName_Option_Uint128* %"$this_g_289" to i8* - %"$_literal_cost_call_291" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_Uint128_41", i8* %"$$this_g_289_290") - %"$gasrem_292" = load i64, i64* @_gasrem, align 8 - %"$gascmp_293" = icmp ugt i64 %"$_literal_cost_call_291", %"$gasrem_292" - br i1 %"$gascmp_293", label %"$out_of_gas_294", label %"$have_gas_295" - -"$out_of_gas_294": ; preds = %"$have_gas_287" + br label %"$have_gas_291" + +"$have_gas_291": ; preds = %"$out_of_gas_290", %"$have_gas_272" + %"$consume_292" = sub i64 %"$gasrem_288", %"$gasadd_287" + store i64 %"$consume_292", i64* @_gasrem, align 8 + %"$this_g_293" = load %TName_Option_Uint128*, %TName_Option_Uint128** %this_g, align 8 + %"$$this_g_293_294" = bitcast %TName_Option_Uint128* %"$this_g_293" to i8* + %"$_literal_cost_call_295" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_Uint128_41", i8* %"$$this_g_293_294") + %"$gasrem_296" = load i64, i64* @_gasrem, align 8 + %"$gascmp_297" = icmp ugt i64 %"$_literal_cost_call_295", %"$gasrem_296" + br i1 %"$gascmp_297", label %"$out_of_gas_298", label %"$have_gas_299" + +"$out_of_gas_298": ; preds = %"$have_gas_291" call void @_out_of_gas() - br label %"$have_gas_295" - -"$have_gas_295": ; preds = %"$out_of_gas_294", %"$have_gas_287" - %"$consume_296" = sub i64 %"$gasrem_292", %"$_literal_cost_call_291" - store i64 %"$consume_296", i64* @_gasrem, align 8 - %"$execptr_load_297" = load i8*, i8** @_execptr, align 8 - %"$this_g_299" = load %TName_Option_Uint128*, %TName_Option_Uint128** %this_g, align 8 - %"$update_value_300" = bitcast %TName_Option_Uint128* %"$this_g_299" to i8* - call void @_update_field(i8* %"$execptr_load_297", i8* getelementptr inbounds ([30 x i8], [30 x i8]* @"$remote_read_remote_read_res_2_298", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_ADT_Option_Uint128_41", i32 0, i8* null, i8* %"$update_value_300"), !dbg !27 + br label %"$have_gas_299" + +"$have_gas_299": ; preds = %"$out_of_gas_298", %"$have_gas_291" + %"$consume_300" = sub i64 %"$gasrem_296", %"$_literal_cost_call_295" + store i64 %"$consume_300", i64* @_gasrem, align 8 + %"$execptr_load_301" = load i8*, i8** @_execptr, align 8 + %"$this_g_303" = load %TName_Option_Uint128*, %TName_Option_Uint128** %this_g, align 8 + %"$update_value_304" = bitcast %TName_Option_Uint128* %"$this_g_303" to i8* + call void @_update_field(i8* %"$execptr_load_301", i8* getelementptr inbounds ([30 x i8], [30 x i8]* @"$remote_read_remote_read_res_2_302", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_ADT_Option_Uint128_41", i32 0, i8* null, i8* %"$update_value_304"), !dbg !68 ret void } -define void @RemoteReadsOfRemoteMap(i8* %0) !dbg !28 { +define void @RemoteReadsOfRemoteMap(i8* %0) !dbg !69 { entry: - %"$_amount_302" = getelementptr i8, i8* %0, i32 0 - %"$_amount_303" = bitcast i8* %"$_amount_302" to %Uint128* - %_amount = load %Uint128, %Uint128* %"$_amount_303", align 8 - %"$_origin_304" = getelementptr i8, i8* %0, i32 16 - %"$_origin_305" = bitcast i8* %"$_origin_304" to [20 x i8]* - %"$_sender_306" = getelementptr i8, i8* %0, i32 36 - %"$_sender_307" = bitcast i8* %"$_sender_306" to [20 x i8]* - %"$remote_308" = getelementptr i8, i8* %0, i32 56 - %"$remote_309" = bitcast i8* %"$remote_308" to [20 x i8]* - call void @"$RemoteReadsOfRemoteMap_223"(%Uint128 %_amount, [20 x i8]* %"$_origin_305", [20 x i8]* %"$_sender_307", [20 x i8]* %"$remote_309"), !dbg !29 + %"$_amount_310" = getelementptr i8, i8* %0, i32 0 + %"$_amount_311" = bitcast i8* %"$_amount_310" to %Uint128* + %_amount = load %Uint128, %Uint128* %"$_amount_311", align 8 + %"$_origin_312" = getelementptr i8, i8* %0, i32 16 + %"$_origin_313" = bitcast i8* %"$_origin_312" to [20 x i8]* + %"$_sender_314" = getelementptr i8, i8* %0, i32 36 + %"$_sender_315" = bitcast i8* %"$_sender_314" to [20 x i8]* + %"$remote_316" = getelementptr i8, i8* %0, i32 56 + %"$remote_317" = bitcast i8* %"$remote_316" to [20 x i8]* + call void @"$RemoteReadsOfRemoteMap_227"(%Uint128 %_amount, [20 x i8]* %"$_origin_313", [20 x i8]* %"$_sender_315", [20 x i8]* %"$remote_317"), !dbg !70 ret void } -define internal void @"$RemoteReadsContractParam_310"(%Uint128 %_amount, [20 x i8]* %"$_origin_311", [20 x i8]* %"$_sender_312") !dbg !30 { +define internal void @"$RemoteReadsContractParam_318"(%Uint128 %_amount, [20 x i8]* %"$_origin_319", [20 x i8]* %"$_sender_320") !dbg !71 { entry: - %_origin = load [20 x i8], [20 x i8]* %"$_origin_311", align 1 - %_sender = load [20 x i8], [20 x i8]* %"$_sender_312", align 1 + %"$_sender_354" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_sender_320", [20 x i8]** %"$_sender_354", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_sender_354", metadata !72, metadata !DIExpression()), !dbg !73 + %"$_origin_353" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_origin_319", [20 x i8]** %"$_origin_353", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_origin_353", metadata !74, metadata !DIExpression()), !dbg !73 + %"$_amount_352" = alloca %Uint128, align 8 + store %Uint128 %_amount, %Uint128* %"$_amount_352", align 8 + call void @llvm.dbg.declare(metadata %Uint128* %"$_amount_352", metadata !75, metadata !DIExpression()), !dbg !73 + %_origin = load [20 x i8], [20 x i8]* %"$_origin_319", align 1 + %_sender = load [20 x i8], [20 x i8]* %"$_sender_320", align 1 %ad = alloca [20 x i8], align 1 - %"$execptr_load_314" = load i8*, i8** @_execptr, align 8 - %"$ad_cparam_315" = alloca [20 x i8], align 1 - %"$cparam_316" = load [20 x i8], [20 x i8]* @_cparam_cparam, align 1 - store [20 x i8] %"$cparam_316", [20 x i8]* %"$ad_cparam_315", align 1 - %"$ad_call_317" = call i8* @_fetch_remote_field(i8* %"$execptr_load_314", [20 x i8]* %"$ad_cparam_315", i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$admin_313", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Bystr20_37", i32 0, i8* null, i32 1), !dbg !31 - %"$ad_318" = bitcast i8* %"$ad_call_317" to [20 x i8]* - %"$ad_319" = load [20 x i8], [20 x i8]* %"$ad_318", align 1 - store [20 x i8] %"$ad_319", [20 x i8]* %ad, align 1 - %"$_literal_cost_ad_320" = alloca [20 x i8], align 1 - %"$ad_321" = load [20 x i8], [20 x i8]* %ad, align 1 - store [20 x i8] %"$ad_321", [20 x i8]* %"$_literal_cost_ad_320", align 1 - %"$$_literal_cost_ad_320_322" = bitcast [20 x i8]* %"$_literal_cost_ad_320" to i8* - %"$_literal_cost_call_323" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Bystr20_37", i8* %"$$_literal_cost_ad_320_322") - %"$gasadd_324" = add i64 %"$_literal_cost_call_323", 0 - %"$gasrem_325" = load i64, i64* @_gasrem, align 8 - %"$gascmp_326" = icmp ugt i64 %"$gasadd_324", %"$gasrem_325" - br i1 %"$gascmp_326", label %"$out_of_gas_327", label %"$have_gas_328" - -"$out_of_gas_327": ; preds = %entry + call void @llvm.dbg.declare(metadata [20 x i8]* %ad, metadata !76, metadata !DIExpression()), !dbg !77 + %"$execptr_load_322" = load i8*, i8** @_execptr, align 8 + %"$ad_cparam_323" = alloca [20 x i8], align 1 + %"$cparam_324" = load [20 x i8], [20 x i8]* @_cparam_cparam, align 1 + store [20 x i8] %"$cparam_324", [20 x i8]* %"$ad_cparam_323", align 1 + %"$ad_call_325" = call i8* @_fetch_remote_field(i8* %"$execptr_load_322", [20 x i8]* %"$ad_cparam_323", i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$admin_321", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Bystr20_37", i32 0, i8* null, i32 1), !dbg !77 + %"$ad_326" = bitcast i8* %"$ad_call_325" to [20 x i8]* + %"$ad_327" = load [20 x i8], [20 x i8]* %"$ad_326", align 1 + store [20 x i8] %"$ad_327", [20 x i8]* %ad, align 1 + %"$_literal_cost_ad_328" = alloca [20 x i8], align 1 + %"$ad_329" = load [20 x i8], [20 x i8]* %ad, align 1 + store [20 x i8] %"$ad_329", [20 x i8]* %"$_literal_cost_ad_328", align 1 + %"$$_literal_cost_ad_328_330" = bitcast [20 x i8]* %"$_literal_cost_ad_328" to i8* + %"$_literal_cost_call_331" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Bystr20_37", i8* %"$$_literal_cost_ad_328_330") + %"$gasadd_332" = add i64 %"$_literal_cost_call_331", 0 + %"$gasrem_333" = load i64, i64* @_gasrem, align 8 + %"$gascmp_334" = icmp ugt i64 %"$gasadd_332", %"$gasrem_333" + br i1 %"$gascmp_334", label %"$out_of_gas_335", label %"$have_gas_336" + +"$out_of_gas_335": ; 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", %"$gasadd_324" - store i64 %"$consume_329", i64* @_gasrem, align 8 - %"$_literal_cost_ad_330" = alloca [20 x i8], align 1 - %"$ad_331" = load [20 x i8], [20 x i8]* %ad, align 1 - store [20 x i8] %"$ad_331", [20 x i8]* %"$_literal_cost_ad_330", align 1 - %"$$_literal_cost_ad_330_332" = bitcast [20 x i8]* %"$_literal_cost_ad_330" to i8* - %"$_literal_cost_call_333" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Bystr20_37", i8* %"$$_literal_cost_ad_330_332") - %"$gasrem_334" = load i64, i64* @_gasrem, align 8 - %"$gascmp_335" = icmp ugt i64 %"$_literal_cost_call_333", %"$gasrem_334" - br i1 %"$gascmp_335", label %"$out_of_gas_336", label %"$have_gas_337" - -"$out_of_gas_336": ; preds = %"$have_gas_328" + br label %"$have_gas_336" + +"$have_gas_336": ; preds = %"$out_of_gas_335", %entry + %"$consume_337" = sub i64 %"$gasrem_333", %"$gasadd_332" + store i64 %"$consume_337", i64* @_gasrem, align 8 + %"$_literal_cost_ad_338" = alloca [20 x i8], align 1 + %"$ad_339" = load [20 x i8], [20 x i8]* %ad, align 1 + store [20 x i8] %"$ad_339", [20 x i8]* %"$_literal_cost_ad_338", align 1 + %"$$_literal_cost_ad_338_340" = bitcast [20 x i8]* %"$_literal_cost_ad_338" to i8* + %"$_literal_cost_call_341" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Bystr20_37", i8* %"$$_literal_cost_ad_338_340") + %"$gasrem_342" = load i64, i64* @_gasrem, align 8 + %"$gascmp_343" = icmp ugt i64 %"$_literal_cost_call_341", %"$gasrem_342" + br i1 %"$gascmp_343", label %"$out_of_gas_344", label %"$have_gas_345" + +"$out_of_gas_344": ; preds = %"$have_gas_336" call void @_out_of_gas() - br label %"$have_gas_337" - -"$have_gas_337": ; preds = %"$out_of_gas_336", %"$have_gas_328" - %"$consume_338" = sub i64 %"$gasrem_334", %"$_literal_cost_call_333" - store i64 %"$consume_338", i64* @_gasrem, align 8 - %"$execptr_load_339" = load i8*, i8** @_execptr, align 8 - %"$ad_341" = load [20 x i8], [20 x i8]* %ad, align 1 - %"$update_value_342" = alloca [20 x i8], align 1 - store [20 x i8] %"$ad_341", [20 x i8]* %"$update_value_342", align 1 - %"$update_value_343" = bitcast [20 x i8]* %"$update_value_342" to i8* - call void @_update_field(i8* %"$execptr_load_339", i8* getelementptr inbounds ([30 x i8], [30 x i8]* @"$remote_read_remote_read_res_3_340", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Bystr20_37", i32 0, i8* null, i8* %"$update_value_343"), !dbg !32 + br label %"$have_gas_345" + +"$have_gas_345": ; preds = %"$out_of_gas_344", %"$have_gas_336" + %"$consume_346" = sub i64 %"$gasrem_342", %"$_literal_cost_call_341" + store i64 %"$consume_346", i64* @_gasrem, align 8 + %"$execptr_load_347" = load i8*, i8** @_execptr, align 8 + %"$ad_349" = load [20 x i8], [20 x i8]* %ad, align 1 + %"$update_value_350" = alloca [20 x i8], align 1 + store [20 x i8] %"$ad_349", [20 x i8]* %"$update_value_350", align 1 + %"$update_value_351" = bitcast [20 x i8]* %"$update_value_350" to i8* + call void @_update_field(i8* %"$execptr_load_347", i8* getelementptr inbounds ([30 x i8], [30 x i8]* @"$remote_read_remote_read_res_3_348", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Bystr20_37", i32 0, i8* null, i8* %"$update_value_351"), !dbg !78 ret void } -define void @RemoteReadsContractParam(i8* %0) !dbg !33 { +define void @RemoteReadsContractParam(i8* %0) !dbg !79 { entry: - %"$_amount_345" = getelementptr i8, i8* %0, i32 0 - %"$_amount_346" = bitcast i8* %"$_amount_345" to %Uint128* - %_amount = load %Uint128, %Uint128* %"$_amount_346", align 8 - %"$_origin_347" = getelementptr i8, i8* %0, i32 16 - %"$_origin_348" = bitcast i8* %"$_origin_347" to [20 x i8]* - %"$_sender_349" = getelementptr i8, i8* %0, i32 36 - %"$_sender_350" = bitcast i8* %"$_sender_349" to [20 x i8]* - call void @"$RemoteReadsContractParam_310"(%Uint128 %_amount, [20 x i8]* %"$_origin_348", [20 x i8]* %"$_sender_350"), !dbg !34 + %"$_amount_356" = getelementptr i8, i8* %0, i32 0 + %"$_amount_357" = bitcast i8* %"$_amount_356" to %Uint128* + %_amount = load %Uint128, %Uint128* %"$_amount_357", align 8 + %"$_origin_358" = getelementptr i8, i8* %0, i32 16 + %"$_origin_359" = bitcast i8* %"$_origin_358" to [20 x i8]* + %"$_sender_360" = getelementptr i8, i8* %0, i32 36 + %"$_sender_361" = bitcast i8* %"$_sender_360" to [20 x i8]* + call void @"$RemoteReadsContractParam_318"(%Uint128 %_amount, [20 x i8]* %"$_origin_359", [20 x i8]* %"$_sender_361"), !dbg !80 ret void } -define internal void @"$AddressTypeErasureTest1_351"(%Uint128 %_amount, [20 x i8]* %"$_origin_352", [20 x i8]* %"$_sender_353") !dbg !35 { +define internal void @"$AddressTypeErasureTest1_362"(%Uint128 %_amount, [20 x i8]* %"$_origin_363", [20 x i8]* %"$_sender_364") !dbg !81 { entry: - %_origin = load [20 x i8], [20 x i8]* %"$_origin_352", align 1 - %_sender = load [20 x i8], [20 x i8]* %"$_sender_353", align 1 - %"$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" - -"$out_of_gas_356": ; preds = %entry + %"$_sender_395" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_sender_364", [20 x i8]** %"$_sender_395", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_sender_395", metadata !82, metadata !DIExpression()), !dbg !83 + %"$_origin_394" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_origin_363", [20 x i8]** %"$_origin_394", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_origin_394", metadata !84, metadata !DIExpression()), !dbg !83 + %"$_amount_393" = alloca %Uint128, align 8 + store %Uint128 %_amount, %Uint128* %"$_amount_393", align 8 + call void @llvm.dbg.declare(metadata %Uint128* %"$_amount_393", metadata !85, metadata !DIExpression()), !dbg !83 + %_origin = load [20 x i8], [20 x i8]* %"$_origin_363", align 1 + %_sender = load [20 x i8], [20 x i8]* %"$_sender_364", align 1 + %"$gasrem_365" = load i64, i64* @_gasrem, align 8 + %"$gascmp_366" = icmp ugt i64 1, %"$gasrem_365" + br i1 %"$gascmp_366", label %"$out_of_gas_367", label %"$have_gas_368" + +"$out_of_gas_367": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_357" + br label %"$have_gas_368" -"$have_gas_357": ; preds = %"$out_of_gas_356", %entry - %"$consume_358" = sub i64 %"$gasrem_354", 1 - store i64 %"$consume_358", i64* @_gasrem, align 8 +"$have_gas_368": ; preds = %"$out_of_gas_367", %entry + %"$consume_369" = sub i64 %"$gasrem_365", 1 + store i64 %"$consume_369", i64* @_gasrem, align 8 %zero = alloca %Uint128, align 8 - %"$gasrem_359" = load i64, i64* @_gasrem, align 8 - %"$gascmp_360" = icmp ugt i64 1, %"$gasrem_359" - br i1 %"$gascmp_360", label %"$out_of_gas_361", label %"$have_gas_362" + call void @llvm.dbg.declare(metadata %Uint128* %zero, metadata !86, metadata !DIExpression()), !dbg !87 + %"$gasrem_370" = load i64, i64* @_gasrem, align 8 + %"$gascmp_371" = icmp ugt i64 1, %"$gasrem_370" + br i1 %"$gascmp_371", label %"$out_of_gas_372", label %"$have_gas_373" -"$out_of_gas_361": ; preds = %"$have_gas_357" +"$out_of_gas_372": ; preds = %"$have_gas_368" call void @_out_of_gas() - br label %"$have_gas_362" - -"$have_gas_362": ; preds = %"$out_of_gas_361", %"$have_gas_357" - %"$consume_363" = sub i64 %"$gasrem_359", 1 - store i64 %"$consume_363", i64* @_gasrem, align 8 - store %Uint128 zeroinitializer, %Uint128* %zero, align 8, !dbg !36 - %"$_literal_cost_cparam_364" = alloca [20 x i8], align 1 - %"$cparam_365" = load [20 x i8], [20 x i8]* @_cparam_cparam, align 1 - store [20 x i8] %"$cparam_365", [20 x i8]* %"$_literal_cost_cparam_364", align 1 - %"$$_literal_cost_cparam_364_366" = bitcast [20 x i8]* %"$_literal_cost_cparam_364" to i8* - %"$_literal_cost_call_367" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Addr_54", i8* %"$$_literal_cost_cparam_364_366") - %"$gasadd_368" = add i64 %"$_literal_cost_call_367", 1 - %"$gasrem_369" = load i64, i64* @_gasrem, align 8 - %"$gascmp_370" = icmp ugt i64 %"$gasadd_368", %"$gasrem_369" - br i1 %"$gascmp_370", label %"$out_of_gas_371", label %"$have_gas_372" - -"$out_of_gas_371": ; preds = %"$have_gas_362" + br label %"$have_gas_373" + +"$have_gas_373": ; preds = %"$out_of_gas_372", %"$have_gas_368" + %"$consume_374" = sub i64 %"$gasrem_370", 1 + store i64 %"$consume_374", i64* @_gasrem, align 8 + store %Uint128 zeroinitializer, %Uint128* %zero, align 8, !dbg !88 + %"$_literal_cost_cparam_375" = alloca [20 x i8], align 1 + %"$cparam_376" = load [20 x i8], [20 x i8]* @_cparam_cparam, align 1 + store [20 x i8] %"$cparam_376", [20 x i8]* %"$_literal_cost_cparam_375", align 1 + %"$$_literal_cost_cparam_375_377" = bitcast [20 x i8]* %"$_literal_cost_cparam_375" to i8* + %"$_literal_cost_call_378" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Addr_54", i8* %"$$_literal_cost_cparam_375_377") + %"$gasadd_379" = add i64 %"$_literal_cost_call_378", 1 + %"$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_373" call void @_out_of_gas() - br label %"$have_gas_372" - -"$have_gas_372": ; preds = %"$out_of_gas_371", %"$have_gas_362" - %"$consume_373" = sub i64 %"$gasrem_369", %"$gasadd_368" - store i64 %"$consume_373", i64* @_gasrem, align 8 - %"$indices_buf_374_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$indices_buf_374_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_374_salloc_load", i64 16) - %"$indices_buf_374_salloc" = bitcast i8* %"$indices_buf_374_salloc_salloc" to [16 x i8]* - %"$indices_buf_374" = bitcast [16 x i8]* %"$indices_buf_374_salloc" to i8* - %"$zero_375" = load %Uint128, %Uint128* %zero, align 8 - %"$indices_gep_376" = getelementptr i8, i8* %"$indices_buf_374", i32 0 - %indices_cast = bitcast i8* %"$indices_gep_376" to %Uint128* - store %Uint128 %"$zero_375", %Uint128* %indices_cast, align 8 - %"$execptr_load_377" = load i8*, i8** @_execptr, align 8 - %"$cparam_379" = load [20 x i8], [20 x i8]* @_cparam_cparam, align 1 - %"$update_value_380" = alloca [20 x i8], align 1 - store [20 x i8] %"$cparam_379", [20 x i8]* %"$update_value_380", align 1 - %"$update_value_381" = bitcast [20 x i8]* %"$update_value_380" to i8* - call void @_update_field(i8* %"$execptr_load_377", i8* getelementptr inbounds ([32 x i8], [32 x i8]* @"$address_type_erasure_test_res_1_378", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_44", i32 1, i8* %"$indices_buf_374", i8* %"$update_value_381"), !dbg !37 + br label %"$have_gas_383" + +"$have_gas_383": ; preds = %"$out_of_gas_382", %"$have_gas_373" + %"$consume_384" = sub i64 %"$gasrem_380", %"$gasadd_379" + store i64 %"$consume_384", i64* @_gasrem, align 8 + %"$indices_buf_385_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$indices_buf_385_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_385_salloc_load", i64 16) + %"$indices_buf_385_salloc" = bitcast i8* %"$indices_buf_385_salloc_salloc" to [16 x i8]* + %"$indices_buf_385" = bitcast [16 x i8]* %"$indices_buf_385_salloc" to i8* + %"$zero_386" = load %Uint128, %Uint128* %zero, align 8 + %"$indices_gep_387" = getelementptr i8, i8* %"$indices_buf_385", i32 0 + %indices_cast = bitcast i8* %"$indices_gep_387" to %Uint128* + store %Uint128 %"$zero_386", %Uint128* %indices_cast, align 8 + %"$execptr_load_388" = load i8*, i8** @_execptr, align 8 + %"$cparam_390" = load [20 x i8], [20 x i8]* @_cparam_cparam, align 1 + %"$update_value_391" = alloca [20 x i8], align 1 + store [20 x i8] %"$cparam_390", [20 x i8]* %"$update_value_391", align 1 + %"$update_value_392" = bitcast [20 x i8]* %"$update_value_391" to i8* + call void @_update_field(i8* %"$execptr_load_388", i8* getelementptr inbounds ([32 x i8], [32 x i8]* @"$address_type_erasure_test_res_1_389", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_44", i32 1, i8* %"$indices_buf_385", i8* %"$update_value_392"), !dbg !89 ret void } -define void @AddressTypeErasureTest1(i8* %0) !dbg !38 { +define void @AddressTypeErasureTest1(i8* %0) !dbg !90 { entry: - %"$_amount_383" = getelementptr i8, i8* %0, i32 0 - %"$_amount_384" = bitcast i8* %"$_amount_383" to %Uint128* - %_amount = load %Uint128, %Uint128* %"$_amount_384", align 8 - %"$_origin_385" = getelementptr i8, i8* %0, i32 16 - %"$_origin_386" = bitcast i8* %"$_origin_385" to [20 x i8]* - %"$_sender_387" = getelementptr i8, i8* %0, i32 36 - %"$_sender_388" = bitcast i8* %"$_sender_387" to [20 x i8]* - call void @"$AddressTypeErasureTest1_351"(%Uint128 %_amount, [20 x i8]* %"$_origin_386", [20 x i8]* %"$_sender_388"), !dbg !39 + %"$_amount_397" = getelementptr i8, i8* %0, i32 0 + %"$_amount_398" = bitcast i8* %"$_amount_397" to %Uint128* + %_amount = load %Uint128, %Uint128* %"$_amount_398", align 8 + %"$_origin_399" = getelementptr i8, i8* %0, i32 16 + %"$_origin_400" = bitcast i8* %"$_origin_399" to [20 x i8]* + %"$_sender_401" = getelementptr i8, i8* %0, i32 36 + %"$_sender_402" = bitcast i8* %"$_sender_401" to [20 x i8]* + call void @"$AddressTypeErasureTest1_362"(%Uint128 %_amount, [20 x i8]* %"$_origin_400", [20 x i8]* %"$_sender_402"), !dbg !91 ret void } -define internal void @"$AddressTypeErasureTest2_389"(%Uint128 %_amount, [20 x i8]* %"$_origin_390", [20 x i8]* %"$_sender_391") !dbg !40 { +define internal void @"$AddressTypeErasureTest2_403"(%Uint128 %_amount, [20 x i8]* %"$_origin_404", [20 x i8]* %"$_sender_405") !dbg !92 { entry: - %_origin = load [20 x i8], [20 x i8]* %"$_origin_390", align 1 - %_sender = load [20 x i8], [20 x i8]* %"$_sender_391", align 1 - %"$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 = %entry + %"$_sender_471" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_sender_405", [20 x i8]** %"$_sender_471", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_sender_471", metadata !93, metadata !DIExpression()), !dbg !94 + %"$_origin_470" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_origin_404", [20 x i8]** %"$_origin_470", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_origin_470", metadata !95, metadata !DIExpression()), !dbg !94 + %"$_amount_469" = alloca %Uint128, align 8 + store %Uint128 %_amount, %Uint128* %"$_amount_469", align 8 + call void @llvm.dbg.declare(metadata %Uint128* %"$_amount_469", metadata !96, metadata !DIExpression()), !dbg !94 + %_origin = load [20 x i8], [20 x i8]* %"$_origin_404", align 1 + %_sender = load [20 x i8], [20 x i8]* %"$_sender_405", align 1 + %"$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_395" + br label %"$have_gas_409" -"$have_gas_395": ; preds = %"$out_of_gas_394", %entry - %"$consume_396" = sub i64 %"$gasrem_392", 1 - store i64 %"$consume_396", i64* @_gasrem, align 8 +"$have_gas_409": ; preds = %"$out_of_gas_408", %entry + %"$consume_410" = sub i64 %"$gasrem_406", 1 + store i64 %"$consume_410", i64* @_gasrem, align 8 %zero = alloca %Uint128, align 8 - %"$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" + call void @llvm.dbg.declare(metadata %Uint128* %zero, metadata !97, metadata !DIExpression()), !dbg !98 + %"$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_399": ; preds = %"$have_gas_395" +"$out_of_gas_413": ; preds = %"$have_gas_409" call void @_out_of_gas() - br label %"$have_gas_400" + br label %"$have_gas_414" -"$have_gas_400": ; preds = %"$out_of_gas_399", %"$have_gas_395" - %"$consume_401" = sub i64 %"$gasrem_397", 1 - store i64 %"$consume_401", i64* @_gasrem, align 8 - store %Uint128 zeroinitializer, %Uint128* %zero, align 8, !dbg !41 +"$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 %Uint128 zeroinitializer, %Uint128* %zero, align 8, !dbg !99 %emp_map = alloca %Map_Uint128_ByStr20_with_end*, align 8 - %"$execptr_load_403" = load i8*, i8** @_execptr, align 8 - %"$emp_map_call_404" = call i8* @_fetch_field(i8* %"$execptr_load_403", i8* getelementptr inbounds ([32 x i8], [32 x i8]* @"$address_type_erasure_test_res_1_402", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_44", i32 0, i8* null, i32 1), !dbg !42 - %"$emp_map_405" = bitcast i8* %"$emp_map_call_404" to %Map_Uint128_ByStr20_with_end* - store %Map_Uint128_ByStr20_with_end* %"$emp_map_405", %Map_Uint128_ByStr20_with_end** %emp_map, align 8 - %"$emp_map_406" = load %Map_Uint128_ByStr20_with_end*, %Map_Uint128_ByStr20_with_end** %emp_map, align 8 - %"$$emp_map_406_407" = bitcast %Map_Uint128_ByStr20_with_end* %"$emp_map_406" to i8* - %"$_literal_cost_call_408" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Map_44", i8* %"$$emp_map_406_407") - %"$emp_map_409" = load %Map_Uint128_ByStr20_with_end*, %Map_Uint128_ByStr20_with_end** %emp_map, align 8 - %"$$emp_map_409_410" = bitcast %Map_Uint128_ByStr20_with_end* %"$emp_map_409" to i8* - %"$_mapsortcost_call_411" = call i64 @_mapsortcost(%_TyDescrTy_Typ* @"$TyDescr_Map_44", i8* %"$$emp_map_409_410") - %"$gasadd_412" = add i64 %"$_literal_cost_call_408", %"$_mapsortcost_call_411" - %"$gasrem_413" = load i64, i64* @_gasrem, align 8 - %"$gascmp_414" = icmp ugt i64 %"$gasadd_412", %"$gasrem_413" - br i1 %"$gascmp_414", label %"$out_of_gas_415", label %"$have_gas_416" - -"$out_of_gas_415": ; preds = %"$have_gas_400" - call void @_out_of_gas() - br label %"$have_gas_416" - -"$have_gas_416": ; preds = %"$out_of_gas_415", %"$have_gas_400" - %"$consume_417" = sub i64 %"$gasrem_413", %"$gasadd_412" - store i64 %"$consume_417", i64* @_gasrem, 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 - %new_map = alloca %Map_Uint128_ByStr20_with_end*, align 8 + call void @llvm.dbg.declare(metadata %Map_Uint128_ByStr20_with_end** %emp_map, metadata !100, metadata !DIExpression()), !dbg !101 + %"$execptr_load_417" = load i8*, i8** @_execptr, align 8 + %"$emp_map_call_418" = call i8* @_fetch_field(i8* %"$execptr_load_417", i8* getelementptr inbounds ([32 x i8], [32 x i8]* @"$address_type_erasure_test_res_1_416", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_44", i32 0, i8* null, i32 1), !dbg !101 + %"$emp_map_419" = bitcast i8* %"$emp_map_call_418" to %Map_Uint128_ByStr20_with_end* + store %Map_Uint128_ByStr20_with_end* %"$emp_map_419", %Map_Uint128_ByStr20_with_end** %emp_map, align 8 + %"$emp_map_420" = load %Map_Uint128_ByStr20_with_end*, %Map_Uint128_ByStr20_with_end** %emp_map, align 8 + %"$$emp_map_420_421" = bitcast %Map_Uint128_ByStr20_with_end* %"$emp_map_420" to i8* + %"$_literal_cost_call_422" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Map_44", i8* %"$$emp_map_420_421") %"$emp_map_423" = load %Map_Uint128_ByStr20_with_end*, %Map_Uint128_ByStr20_with_end** %emp_map, align 8 %"$$emp_map_423_424" = bitcast %Map_Uint128_ByStr20_with_end* %"$emp_map_423" to i8* - %"$_lengthof_call_425" = call i64 @_lengthof(%_TyDescrTy_Typ* @"$TyDescr_Map_44", i8* %"$$emp_map_423_424") - %"$gasadd_426" = add i64 1, %"$_lengthof_call_425" + %"$_mapsortcost_call_425" = call i64 @_mapsortcost(%_TyDescrTy_Typ* @"$TyDescr_Map_44", i8* %"$$emp_map_423_424") + %"$gasadd_426" = add i64 %"$_literal_cost_call_422", %"$_mapsortcost_call_425" %"$gasrem_427" = load i64, i64* @_gasrem, align 8 %"$gascmp_428" = icmp ugt i64 %"$gasadd_426", %"$gasrem_427" br i1 %"$gascmp_428", label %"$out_of_gas_429", label %"$have_gas_430" -"$out_of_gas_429": ; preds = %"$have_gas_421" +"$out_of_gas_429": ; preds = %"$have_gas_414" call void @_out_of_gas() br label %"$have_gas_430" -"$have_gas_430": ; preds = %"$out_of_gas_429", %"$have_gas_421" +"$have_gas_430": ; preds = %"$out_of_gas_429", %"$have_gas_414" %"$consume_431" = sub i64 %"$gasrem_427", %"$gasadd_426" store i64 %"$consume_431", i64* @_gasrem, align 8 - %"$execptr_load_432" = load i8*, i8** @_execptr, align 8 - %"$emp_map_433" = load %Map_Uint128_ByStr20_with_end*, %Map_Uint128_ByStr20_with_end** %emp_map, align 8 - %"$$emp_map_433_434" = bitcast %Map_Uint128_ByStr20_with_end* %"$emp_map_433" to i8* - %"$put_zero_435" = alloca %Uint128, align 8 - %"$zero_436" = load %Uint128, %Uint128* %zero, align 8 - store %Uint128 %"$zero_436", %Uint128* %"$put_zero_435", align 8 - %"$$put_zero_435_437" = bitcast %Uint128* %"$put_zero_435" to i8* - %"$put_cparam_438" = alloca [20 x i8], align 1 - %"$cparam_439" = load [20 x i8], [20 x i8]* @_cparam_cparam, align 1 - store [20 x i8] %"$cparam_439", [20 x i8]* %"$put_cparam_438", align 1 - %"$$put_cparam_438_440" = bitcast [20 x i8]* %"$put_cparam_438" to i8* - %"$put_call_441" = call i8* @_put(i8* %"$execptr_load_432", %_TyDescrTy_Typ* @"$TyDescr_Map_44", i8* %"$$emp_map_433_434", i8* %"$$put_zero_435_437", i8* %"$$put_cparam_438_440"), !dbg !43 - %"$put_442" = bitcast i8* %"$put_call_441" to %Map_Uint128_ByStr20_with_end* - store %Map_Uint128_ByStr20_with_end* %"$put_442", %Map_Uint128_ByStr20_with_end** %new_map, align 8, !dbg !43 - %"$new_map_443" = load %Map_Uint128_ByStr20_with_end*, %Map_Uint128_ByStr20_with_end** %new_map, align 8 - %"$$new_map_443_444" = bitcast %Map_Uint128_ByStr20_with_end* %"$new_map_443" to i8* - %"$_literal_cost_call_445" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Map_44", i8* %"$$new_map_443_444") - %"$gasrem_446" = load i64, i64* @_gasrem, align 8 - %"$gascmp_447" = icmp ugt i64 %"$_literal_cost_call_445", %"$gasrem_446" - br i1 %"$gascmp_447", label %"$out_of_gas_448", label %"$have_gas_449" - -"$out_of_gas_448": ; preds = %"$have_gas_430" + %"$gasrem_432" = load i64, i64* @_gasrem, align 8 + %"$gascmp_433" = icmp ugt i64 1, %"$gasrem_432" + br i1 %"$gascmp_433", label %"$out_of_gas_434", label %"$have_gas_435" + +"$out_of_gas_434": ; preds = %"$have_gas_430" call void @_out_of_gas() - br label %"$have_gas_449" - -"$have_gas_449": ; preds = %"$out_of_gas_448", %"$have_gas_430" - %"$consume_450" = sub i64 %"$gasrem_446", %"$_literal_cost_call_445" - store i64 %"$consume_450", i64* @_gasrem, align 8 - %"$execptr_load_451" = load i8*, i8** @_execptr, align 8 - %"$new_map_453" = load %Map_Uint128_ByStr20_with_end*, %Map_Uint128_ByStr20_with_end** %new_map, align 8 - %"$update_value_454" = bitcast %Map_Uint128_ByStr20_with_end* %"$new_map_453" to i8* - call void @_update_field(i8* %"$execptr_load_451", i8* getelementptr inbounds ([32 x i8], [32 x i8]* @"$address_type_erasure_test_res_1_452", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_44", i32 0, i8* null, i8* %"$update_value_454"), !dbg !44 + br label %"$have_gas_435" + +"$have_gas_435": ; preds = %"$out_of_gas_434", %"$have_gas_430" + %"$consume_436" = sub i64 %"$gasrem_432", 1 + store i64 %"$consume_436", i64* @_gasrem, align 8 + %new_map = alloca %Map_Uint128_ByStr20_with_end*, align 8 + call void @llvm.dbg.declare(metadata %Map_Uint128_ByStr20_with_end** %new_map, metadata !102, metadata !DIExpression()), !dbg !103 + %"$emp_map_437" = load %Map_Uint128_ByStr20_with_end*, %Map_Uint128_ByStr20_with_end** %emp_map, align 8 + %"$$emp_map_437_438" = bitcast %Map_Uint128_ByStr20_with_end* %"$emp_map_437" to i8* + %"$_lengthof_call_439" = call i64 @_lengthof(%_TyDescrTy_Typ* @"$TyDescr_Map_44", i8* %"$$emp_map_437_438") + %"$gasadd_440" = add i64 1, %"$_lengthof_call_439" + %"$gasrem_441" = load i64, i64* @_gasrem, align 8 + %"$gascmp_442" = icmp ugt i64 %"$gasadd_440", %"$gasrem_441" + br i1 %"$gascmp_442", label %"$out_of_gas_443", label %"$have_gas_444" + +"$out_of_gas_443": ; preds = %"$have_gas_435" + call void @_out_of_gas() + br label %"$have_gas_444" + +"$have_gas_444": ; preds = %"$out_of_gas_443", %"$have_gas_435" + %"$consume_445" = sub i64 %"$gasrem_441", %"$gasadd_440" + store i64 %"$consume_445", i64* @_gasrem, align 8 + %"$execptr_load_446" = load i8*, i8** @_execptr, align 8 + %"$emp_map_447" = load %Map_Uint128_ByStr20_with_end*, %Map_Uint128_ByStr20_with_end** %emp_map, align 8 + %"$$emp_map_447_448" = bitcast %Map_Uint128_ByStr20_with_end* %"$emp_map_447" to i8* + %"$put_zero_449" = alloca %Uint128, align 8 + %"$zero_450" = load %Uint128, %Uint128* %zero, align 8 + store %Uint128 %"$zero_450", %Uint128* %"$put_zero_449", align 8 + %"$$put_zero_449_451" = bitcast %Uint128* %"$put_zero_449" to i8* + %"$put_cparam_452" = alloca [20 x i8], align 1 + %"$cparam_453" = load [20 x i8], [20 x i8]* @_cparam_cparam, align 1 + store [20 x i8] %"$cparam_453", [20 x i8]* %"$put_cparam_452", align 1 + %"$$put_cparam_452_454" = bitcast [20 x i8]* %"$put_cparam_452" to i8* + %"$put_call_455" = call i8* @_put(i8* %"$execptr_load_446", %_TyDescrTy_Typ* @"$TyDescr_Map_44", i8* %"$$emp_map_447_448", i8* %"$$put_zero_449_451", i8* %"$$put_cparam_452_454"), !dbg !104 + %"$put_456" = bitcast i8* %"$put_call_455" to %Map_Uint128_ByStr20_with_end* + store %Map_Uint128_ByStr20_with_end* %"$put_456", %Map_Uint128_ByStr20_with_end** %new_map, align 8, !dbg !104 + %"$new_map_457" = load %Map_Uint128_ByStr20_with_end*, %Map_Uint128_ByStr20_with_end** %new_map, align 8 + %"$$new_map_457_458" = bitcast %Map_Uint128_ByStr20_with_end* %"$new_map_457" to i8* + %"$_literal_cost_call_459" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Map_44", i8* %"$$new_map_457_458") + %"$gasrem_460" = load i64, i64* @_gasrem, align 8 + %"$gascmp_461" = icmp ugt i64 %"$_literal_cost_call_459", %"$gasrem_460" + br i1 %"$gascmp_461", label %"$out_of_gas_462", label %"$have_gas_463" + +"$out_of_gas_462": ; preds = %"$have_gas_444" + call void @_out_of_gas() + br label %"$have_gas_463" + +"$have_gas_463": ; preds = %"$out_of_gas_462", %"$have_gas_444" + %"$consume_464" = sub i64 %"$gasrem_460", %"$_literal_cost_call_459" + store i64 %"$consume_464", i64* @_gasrem, align 8 + %"$execptr_load_465" = load i8*, i8** @_execptr, align 8 + %"$new_map_467" = load %Map_Uint128_ByStr20_with_end*, %Map_Uint128_ByStr20_with_end** %new_map, align 8 + %"$update_value_468" = bitcast %Map_Uint128_ByStr20_with_end* %"$new_map_467" to i8* + call void @_update_field(i8* %"$execptr_load_465", i8* getelementptr inbounds ([32 x i8], [32 x i8]* @"$address_type_erasure_test_res_1_466", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_44", i32 0, i8* null, i8* %"$update_value_468"), !dbg !105 ret void } @@ -828,66 +898,129 @@ declare i64 @_lengthof(%_TyDescrTy_Typ*, i8*) declare i8* @_put(i8*, %_TyDescrTy_Typ*, i8*, i8*, i8*) -define void @AddressTypeErasureTest2(i8* %0) !dbg !45 { +define void @AddressTypeErasureTest2(i8* %0) !dbg !106 { entry: - %"$_amount_456" = getelementptr i8, i8* %0, i32 0 - %"$_amount_457" = bitcast i8* %"$_amount_456" to %Uint128* - %_amount = load %Uint128, %Uint128* %"$_amount_457", align 8 - %"$_origin_458" = getelementptr i8, i8* %0, i32 16 - %"$_origin_459" = bitcast i8* %"$_origin_458" to [20 x i8]* - %"$_sender_460" = getelementptr i8, i8* %0, i32 36 - %"$_sender_461" = bitcast i8* %"$_sender_460" to [20 x i8]* - call void @"$AddressTypeErasureTest2_389"(%Uint128 %_amount, [20 x i8]* %"$_origin_459", [20 x i8]* %"$_sender_461"), !dbg !46 + %"$_amount_473" = getelementptr i8, i8* %0, i32 0 + %"$_amount_474" = bitcast i8* %"$_amount_473" to %Uint128* + %_amount = load %Uint128, %Uint128* %"$_amount_474", align 8 + %"$_origin_475" = getelementptr i8, i8* %0, i32 16 + %"$_origin_476" = bitcast i8* %"$_origin_475" to [20 x i8]* + %"$_sender_477" = getelementptr i8, i8* %0, i32 36 + %"$_sender_478" = bitcast i8* %"$_sender_477" to [20 x i8]* + call void @"$AddressTypeErasureTest2_403"(%Uint128 %_amount, [20 x i8]* %"$_origin_476", [20 x i8]* %"$_sender_478"), !dbg !107 ret void } +attributes #0 = { nocallback nofree nosync nounwind readnone speculatable willreturn } + !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) +!1 = distinct !DICompileUnit(language: DW_LANG_C89, file: !2, producer: "Scilla Compiler", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false) !2 = !DIFile(filename: "remote_state_reads_2.scilla", directory: "codegen/contr") -!3 = !{} -!4 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !5, file: !5, type: !6, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!5 = !DIFile(filename: ".", directory: ".") -!6 = !DISubroutineType(types: !7) -!7 = !{!8} -!8 = !DIBasicType(tag: DW_TAG_unspecified_type, name: "void") -!9 = !DILocation(line: 0, scope: !4) -!10 = distinct !DISubprogram(name: "_deploy_ops", linkageName: "_deploy_ops", scope: !5, file: !5, type: !6, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!11 = !DILocation(line: 5, column: 49, scope: !10) -!12 = !DILocation(line: 6, column: 56, scope: !10) -!13 = !DILocation(line: 7, column: 49, scope: !10) -!14 = !DILocation(line: 9, column: 74, scope: !10) -!15 = distinct !DISubprogram(name: "RemoteReadsOfRemoteRead", linkageName: "RemoteReadsOfRemoteRead", scope: !2, file: !2, line: 11, type: !6, scopeLine: 11, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!16 = !DILocation(line: 19, column: 3, scope: !15) -!17 = !DILocation(line: 20, column: 3, scope: !15) -!18 = !DILocation(line: 21, column: 3, scope: !15) -!19 = !DILocation(line: 22, column: 3, scope: !15) -!20 = distinct !DISubprogram(name: "RemoteReadsOfRemoteRead", linkageName: "RemoteReadsOfRemoteRead", scope: !2, file: !2, line: 11, type: !6, scopeLine: 11, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!21 = !DILocation(line: 11, column: 12, scope: !20) -!22 = distinct !DISubprogram(name: "RemoteReadsOfRemoteMap", linkageName: "RemoteReadsOfRemoteMap", scope: !2, file: !2, line: 25, type: !6, scopeLine: 25, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!23 = !DILocation(line: 33, column: 3, scope: !22) -!24 = !DILocation(line: 34, column: 3, scope: !22) -!25 = !DILocation(line: 35, column: 16, scope: !22) -!26 = !DILocation(line: 36, column: 3, scope: !22) -!27 = !DILocation(line: 37, column: 3, scope: !22) -!28 = distinct !DISubprogram(name: "RemoteReadsOfRemoteMap", linkageName: "RemoteReadsOfRemoteMap", scope: !2, file: !2, line: 25, type: !6, scopeLine: 25, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!29 = !DILocation(line: 25, column: 12, scope: !28) -!30 = distinct !DISubprogram(name: "RemoteReadsContractParam", linkageName: "RemoteReadsContractParam", scope: !2, file: !2, line: 40, type: !6, scopeLine: 40, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!31 = !DILocation(line: 41, column: 3, scope: !30) -!32 = !DILocation(line: 42, column: 3, scope: !30) -!33 = distinct !DISubprogram(name: "RemoteReadsContractParam", linkageName: "RemoteReadsContractParam", scope: !2, file: !2, line: 40, type: !6, scopeLine: 40, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!34 = !DILocation(line: 40, column: 12, scope: !33) -!35 = distinct !DISubprogram(name: "AddressTypeErasureTest1", linkageName: "AddressTypeErasureTest1", scope: !2, file: !2, line: 45, type: !6, scopeLine: 45, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!36 = !DILocation(line: 46, column: 10, scope: !35) -!37 = !DILocation(line: 47, column: 3, scope: !35) -!38 = distinct !DISubprogram(name: "AddressTypeErasureTest1", linkageName: "AddressTypeErasureTest1", scope: !2, file: !2, line: 45, type: !6, scopeLine: 45, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!39 = !DILocation(line: 45, column: 12, scope: !38) -!40 = distinct !DISubprogram(name: "AddressTypeErasureTest2", linkageName: "AddressTypeErasureTest2", scope: !2, file: !2, line: 50, type: !6, scopeLine: 50, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!41 = !DILocation(line: 51, column: 10, scope: !40) -!42 = !DILocation(line: 52, column: 3, scope: !40) -!43 = !DILocation(line: 53, column: 13, scope: !40) -!44 = !DILocation(line: 54, column: 3, scope: !40) -!45 = distinct !DISubprogram(name: "AddressTypeErasureTest2", linkageName: "AddressTypeErasureTest2", scope: !2, file: !2, line: 50, type: !6, scopeLine: 50, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!46 = !DILocation(line: 50, column: 12, scope: !45) +!3 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !4, file: !4, type: !5, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!4 = !DIFile(filename: ".", directory: ".") +!5 = !DISubroutineType(types: !6) +!6 = !{!7} +!7 = !DIBasicType(tag: DW_TAG_unspecified_type, name: "void") +!8 = !{} +!9 = !DILocation(line: 0, scope: !3) +!10 = distinct !DISubprogram(name: "_deploy_ops", linkageName: "_deploy_ops", scope: !4, file: !4, type: !5, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!11 = !DILocalVariable(name: "$remote_read_remote_read_res_1_1", scope: !10, file: !2, line: 5, type: !12) +!12 = !DIBasicType(name: "Uint128", size: 16) +!13 = !DILocation(line: 5, column: 7, scope: !10) +!14 = !DILocation(line: 5, column: 49, scope: !10) +!15 = !DILocalVariable(name: "$remote_read_remote_read_res_2_2", scope: !10, file: !2, line: 6, type: !16) +!16 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "Option (Uint128)", baseType: !17, size: 8, align: 8, dwarfAddressSpace: 0) +!17 = !DIBasicType(name: "Option (Uint128)", size: 8) +!18 = !DILocation(line: 6, column: 7, scope: !10) +!19 = !DILocation(line: 6, column: 56, scope: !10) +!20 = !DILocalVariable(name: "$remote_read_remote_read_res_3_3", scope: !10, file: !2, line: 7, type: !21) +!21 = !DIBasicType(name: "ByStr20", size: 20) +!22 = !DILocation(line: 7, column: 7, scope: !10) +!23 = !DILocation(line: 7, column: 49, scope: !10) +!24 = !DILocalVariable(name: "$address_type_erasure_test_res_1_4", scope: !10, file: !2, line: 9, type: !25) +!25 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "Map (Uint128) (ByStr20 with end)", baseType: !26, size: 8, align: 8, dwarfAddressSpace: 0) +!26 = !DIBasicType(name: "Map (Uint128) (ByStr20 with end)", size: 8) +!27 = !DILocation(line: 9, column: 7, scope: !10) +!28 = !DILocation(line: 9, column: 74, scope: !10) +!29 = distinct !DISubprogram(name: "RemoteReadsOfRemoteRead", linkageName: "RemoteReadsOfRemoteRead", scope: !2, file: !2, line: 11, type: !5, scopeLine: 11, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!30 = !DILocalVariable(name: "remote", scope: !29, file: !2, line: 12, type: !31) +!31 = !DIBasicType(name: "ByStr20 with contract field admin : ByStr20 with contract field f : ByStr20 with contract field g : Uint128 end end end", size: 20) +!32 = !DILocation(line: 12, column: 3, scope: !29) +!33 = !DILocalVariable(name: "_sender", scope: !29, file: !2, line: 11, type: !34) +!34 = !DIBasicType(name: "ByStr20 with end", size: 20) +!35 = !DILocation(line: 11, column: 12, scope: !29) +!36 = !DILocalVariable(name: "_origin", scope: !29, file: !2, line: 11, type: !34) +!37 = !DILocalVariable(name: "_amount", scope: !29, file: !2, line: 11, type: !12) +!38 = !DILocalVariable(name: "ad", scope: !29, file: !2, line: 19, type: !39) +!39 = !DIBasicType(name: "ByStr20 with contract field f : ByStr20 with contract field g : Uint128 end end", size: 20) +!40 = !DILocation(line: 19, column: 3, scope: !29) +!41 = !DILocalVariable(name: "this_f", scope: !29, file: !2, line: 20, type: !42) +!42 = !DIBasicType(name: "ByStr20 with contract field g : Uint128 end", size: 20) +!43 = !DILocation(line: 20, column: 3, scope: !29) +!44 = !DILocalVariable(name: "this_g", scope: !29, file: !2, line: 21, type: !12) +!45 = !DILocation(line: 21, column: 3, scope: !29) +!46 = !DILocation(line: 22, column: 3, scope: !29) +!47 = distinct !DISubprogram(name: "RemoteReadsOfRemoteRead", linkageName: "RemoteReadsOfRemoteRead", scope: !2, file: !2, line: 11, type: !5, scopeLine: 11, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!48 = !DILocation(line: 11, column: 12, scope: !47) +!49 = distinct !DISubprogram(name: "RemoteReadsOfRemoteMap", linkageName: "RemoteReadsOfRemoteMap", scope: !2, file: !2, line: 25, type: !5, scopeLine: 25, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!50 = !DILocalVariable(name: "remote", scope: !49, file: !2, line: 26, type: !51) +!51 = !DIBasicType(name: "ByStr20 with contract field admin : ByStr20 with contract field f : ByStr20 with contract field g : Map (Uint128) (Uint128) end end end", size: 20) +!52 = !DILocation(line: 26, column: 3, scope: !49) +!53 = !DILocalVariable(name: "_sender", scope: !49, file: !2, line: 25, type: !34) +!54 = !DILocation(line: 25, column: 12, scope: !49) +!55 = !DILocalVariable(name: "_origin", scope: !49, file: !2, line: 25, type: !34) +!56 = !DILocalVariable(name: "_amount", scope: !49, file: !2, line: 25, type: !12) +!57 = !DILocalVariable(name: "ad", scope: !49, file: !2, line: 33, type: !58) +!58 = !DIBasicType(name: "ByStr20 with contract field f : ByStr20 with contract field g : Map (Uint128) (Uint128) end end", size: 20) +!59 = !DILocation(line: 33, column: 3, scope: !49) +!60 = !DILocalVariable(name: "this_f", scope: !49, file: !2, line: 34, type: !61) +!61 = !DIBasicType(name: "ByStr20 with contract field g : Map (Uint128) (Uint128) end", size: 20) +!62 = !DILocation(line: 34, column: 3, scope: !49) +!63 = !DILocalVariable(name: "remote_key", scope: !49, file: !2, line: 35, type: !12) +!64 = !DILocation(line: 35, column: 3, scope: !49) +!65 = !DILocation(line: 35, column: 16, scope: !49) +!66 = !DILocalVariable(name: "this_g", scope: !49, file: !2, line: 36, type: !16) +!67 = !DILocation(line: 36, column: 3, scope: !49) +!68 = !DILocation(line: 37, column: 3, scope: !49) +!69 = distinct !DISubprogram(name: "RemoteReadsOfRemoteMap", linkageName: "RemoteReadsOfRemoteMap", scope: !2, file: !2, line: 25, type: !5, scopeLine: 25, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!70 = !DILocation(line: 25, column: 12, scope: !69) +!71 = distinct !DISubprogram(name: "RemoteReadsContractParam", linkageName: "RemoteReadsContractParam", scope: !2, file: !2, line: 40, type: !5, scopeLine: 40, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!72 = !DILocalVariable(name: "_sender", scope: !71, file: !2, line: 40, type: !34) +!73 = !DILocation(line: 40, column: 12, scope: !71) +!74 = !DILocalVariable(name: "_origin", scope: !71, file: !2, line: 40, type: !34) +!75 = !DILocalVariable(name: "_amount", scope: !71, file: !2, line: 40, type: !12) +!76 = !DILocalVariable(name: "ad", scope: !71, file: !2, line: 41, type: !21) +!77 = !DILocation(line: 41, column: 3, scope: !71) +!78 = !DILocation(line: 42, column: 3, scope: !71) +!79 = distinct !DISubprogram(name: "RemoteReadsContractParam", linkageName: "RemoteReadsContractParam", scope: !2, file: !2, line: 40, type: !5, scopeLine: 40, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!80 = !DILocation(line: 40, column: 12, scope: !79) +!81 = distinct !DISubprogram(name: "AddressTypeErasureTest1", linkageName: "AddressTypeErasureTest1", scope: !2, file: !2, line: 45, type: !5, scopeLine: 45, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!82 = !DILocalVariable(name: "_sender", scope: !81, file: !2, line: 45, type: !34) +!83 = !DILocation(line: 45, column: 12, scope: !81) +!84 = !DILocalVariable(name: "_origin", scope: !81, file: !2, line: 45, type: !34) +!85 = !DILocalVariable(name: "_amount", scope: !81, file: !2, line: 45, type: !12) +!86 = !DILocalVariable(name: "zero", scope: !81, file: !2, line: 46, type: !12) +!87 = !DILocation(line: 46, column: 3, scope: !81) +!88 = !DILocation(line: 46, column: 10, scope: !81) +!89 = !DILocation(line: 47, column: 3, scope: !81) +!90 = distinct !DISubprogram(name: "AddressTypeErasureTest1", linkageName: "AddressTypeErasureTest1", scope: !2, file: !2, line: 45, type: !5, scopeLine: 45, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!91 = !DILocation(line: 45, column: 12, scope: !90) +!92 = distinct !DISubprogram(name: "AddressTypeErasureTest2", linkageName: "AddressTypeErasureTest2", scope: !2, file: !2, line: 50, type: !5, scopeLine: 50, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!93 = !DILocalVariable(name: "_sender", scope: !92, file: !2, line: 50, type: !34) +!94 = !DILocation(line: 50, column: 12, scope: !92) +!95 = !DILocalVariable(name: "_origin", scope: !92, file: !2, line: 50, type: !34) +!96 = !DILocalVariable(name: "_amount", scope: !92, file: !2, line: 50, type: !12) +!97 = !DILocalVariable(name: "zero", scope: !92, file: !2, line: 51, type: !12) +!98 = !DILocation(line: 51, column: 3, scope: !92) +!99 = !DILocation(line: 51, column: 10, scope: !92) +!100 = !DILocalVariable(name: "emp_map", scope: !92, file: !2, line: 52, type: !25) +!101 = !DILocation(line: 52, column: 3, scope: !92) +!102 = !DILocalVariable(name: "new_map", scope: !92, file: !2, line: 53, type: !25) +!103 = !DILocation(line: 53, column: 3, scope: !92) +!104 = !DILocation(line: 53, column: 13, scope: !92) +!105 = !DILocation(line: 54, column: 3, scope: !92) +!106 = distinct !DISubprogram(name: "AddressTypeErasureTest2", linkageName: "AddressTypeErasureTest2", scope: !2, file: !2, line: 50, type: !5, scopeLine: 50, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!107 = !DILocation(line: 50, column: 12, scope: !106) diff --git a/testsuite/contr/remote_state_reads_2.ll b/testsuite/contr/remote_state_reads_2.ll index 93b0e69a..237714b0 100644 --- a/testsuite/contr/remote_state_reads_2.ll +++ b/testsuite/contr/remote_state_reads_2.ll @@ -4,7 +4,7 @@ ; 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-pc-linux-gnu" +target triple = "x86_64-unknown-linux-gnu" %"$TyDescrTy_PrimTyp_5" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/testsuite/contr/replicate.dbg.ll b/testsuite/contr/replicate.dbg.ll index 385c008f..bd0d454d 100644 --- a/testsuite/contr/replicate.dbg.ll +++ b/testsuite/contr/replicate.dbg.ll @@ -4,7 +4,7 @@ ; ModuleID = 'Foo' source_filename = "Foo" target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-pc-linux-gnu" +target triple = "x86_64-unknown-linux-gnu" %"$TyDescrTy_PrimTyp_1" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } @@ -13,9 +13,9 @@ target triple = "x86_64-pc-linux-gnu" %"$TyDescr_AddrTyp_39" = type { i32, %"$TyDescr_AddrFieldTyp_38"* } %Int32 = type { i32 } %Uint32 = type { i32 } -%"$ParamDescr_413" = type { %ParamDescrString, %_TyDescrTy_Typ* } +%"$ParamDescr_425" = type { %ParamDescrString, %_TyDescrTy_Typ* } %ParamDescrString = type { i8*, i32 } -%"$TransDescr_414" = type { %ParamDescrString, i32, %"$ParamDescr_413"* } +%"$TransDescr_426" = type { %ParamDescrString, i32, %"$ParamDescr_425"* } %Uint128 = type { i128 } %String = type { i8*, i32 } %BCQuery = type { i8*, i32 } @@ -69,52 +69,52 @@ target triple = "x86_64-pc-linux-gnu" @"$stringlit_101" = unnamed_addr constant [10 x i8] c"_eventname" @"$stringlit_106" = unnamed_addr constant [10 x i8] c"Replicated" @"$stringlit_109" = unnamed_addr constant [8 x i8] c"new_addr" -@"$BNumLit_161" = unnamed_addr constant [3 x i8] c"100" -@"$stringlit_186" = unnamed_addr constant [19 x i8] c"_replicate_contract" -@"$stringlit_191" = unnamed_addr constant [0 x i8] zeroinitializer -@"$stringlit_194" = unnamed_addr constant [5 x i8] c"owner" -@"$stringlit_202" = unnamed_addr constant [9 x i8] c"max_block" -@"$stringlit_210" = unnamed_addr constant [4 x i8] c"goal" -@"$stringlit_241" = unnamed_addr constant [10 x i8] c"_eventname" -@"$stringlit_246" = unnamed_addr constant [10 x i8] c"Replicated" -@"$stringlit_249" = unnamed_addr constant [8 x i8] c"new_addr" -@"$stringlit_322" = unnamed_addr constant [19 x i8] c"_replicate_contract" -@"$stringlit_327" = unnamed_addr constant [0 x i8] zeroinitializer -@"$stringlit_330" = unnamed_addr constant [5 x i8] c"owner" -@"$stringlit_338" = unnamed_addr constant [9 x i8] c"max_block" -@"$stringlit_346" = unnamed_addr constant [4 x i8] c"goal" -@"$stringlit_377" = unnamed_addr constant [10 x i8] c"_eventname" -@"$stringlit_382" = unnamed_addr constant [10 x i8] c"Replicated" -@"$stringlit_385" = unnamed_addr constant [8 x i8] c"new_addr" +@"$BNumLit_165" = unnamed_addr constant [3 x i8] c"100" +@"$stringlit_190" = unnamed_addr constant [19 x i8] c"_replicate_contract" +@"$stringlit_195" = unnamed_addr constant [0 x i8] zeroinitializer +@"$stringlit_198" = unnamed_addr constant [5 x i8] c"owner" +@"$stringlit_206" = unnamed_addr constant [9 x i8] c"max_block" +@"$stringlit_214" = unnamed_addr constant [4 x i8] c"goal" +@"$stringlit_245" = unnamed_addr constant [10 x i8] c"_eventname" +@"$stringlit_250" = unnamed_addr constant [10 x i8] c"Replicated" +@"$stringlit_253" = unnamed_addr constant [8 x i8] c"new_addr" +@"$stringlit_330" = unnamed_addr constant [19 x i8] c"_replicate_contract" +@"$stringlit_335" = unnamed_addr constant [0 x i8] zeroinitializer +@"$stringlit_338" = unnamed_addr constant [5 x i8] c"owner" +@"$stringlit_346" = unnamed_addr constant [9 x i8] c"max_block" +@"$stringlit_354" = unnamed_addr constant [4 x i8] c"goal" +@"$stringlit_385" = unnamed_addr constant [10 x i8] c"_eventname" +@"$stringlit_390" = unnamed_addr constant [10 x i8] c"Replicated" +@"$stringlit_393" = unnamed_addr constant [8 x i8] c"new_addr" @_tydescr_table = constant [18 x %_TyDescrTy_Typ*] [%_TyDescrTy_Typ* @"$TyDescr_Event_25", %_TyDescrTy_Typ* @"$TyDescr_Int64_7", %_TyDescrTy_Typ* @"$TyDescr_Addr_41", %_TyDescrTy_Typ* @"$TyDescr_Bystr20_33", %_TyDescrTy_Typ* @"$TyDescr_Uint256_17", %_TyDescrTy_Typ* @"$TyDescr_Uint32_5", %_TyDescrTy_Typ* @"$TyDescr_Addr_40", %_TyDescrTy_Typ* @"$TyDescr_Uint64_9", %_TyDescrTy_Typ* @"$TyDescr_Bnum_21", %_TyDescrTy_Typ* @"$TyDescr_Uint128_13", %_TyDescrTy_Typ* @"$TyDescr_Exception_27", %_TyDescrTy_Typ* @"$TyDescr_String_19", %_TyDescrTy_Typ* @"$TyDescr_Int256_15", %_TyDescrTy_Typ* @"$TyDescr_Int128_11", %_TyDescrTy_Typ* @"$TyDescr_Bystr_31", %_TyDescrTy_Typ* @"$TyDescr_ReplicateContr_29", %_TyDescrTy_Typ* @"$TyDescr_Message_23", %_TyDescrTy_Typ* @"$TyDescr_Int32_3"] @_tydescr_table_length = constant i32 18 -@"$pname__scilla_version_415" = unnamed_addr constant [15 x i8] c"_scilla_version" -@"$pname__this_address_416" = unnamed_addr constant [13 x i8] c"_this_address" -@"$pname__creation_block_417" = unnamed_addr constant [15 x i8] c"_creation_block" -@_contract_parameters = constant [3 x %"$ParamDescr_413"] [%"$ParamDescr_413" { %ParamDescrString { i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$pname__scilla_version_415", i32 0, i32 0), i32 15 }, %_TyDescrTy_Typ* @"$TyDescr_Uint32_5" }, %"$ParamDescr_413" { %ParamDescrString { i8* getelementptr inbounds ([13 x i8], [13 x i8]* @"$pname__this_address_416", i32 0, i32 0), i32 13 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr20_33" }, %"$ParamDescr_413" { %ParamDescrString { i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$pname__creation_block_417", i32 0, i32 0), i32 15 }, %_TyDescrTy_Typ* @"$TyDescr_Bnum_21" }] +@"$pname__scilla_version_427" = unnamed_addr constant [15 x i8] c"_scilla_version" +@"$pname__this_address_428" = unnamed_addr constant [13 x i8] c"_this_address" +@"$pname__creation_block_429" = unnamed_addr constant [15 x i8] c"_creation_block" +@_contract_parameters = constant [3 x %"$ParamDescr_425"] [%"$ParamDescr_425" { %ParamDescrString { i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$pname__scilla_version_427", i32 0, i32 0), i32 15 }, %_TyDescrTy_Typ* @"$TyDescr_Uint32_5" }, %"$ParamDescr_425" { %ParamDescrString { i8* getelementptr inbounds ([13 x i8], [13 x i8]* @"$pname__this_address_428", i32 0, i32 0), i32 13 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr20_33" }, %"$ParamDescr_425" { %ParamDescrString { i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$pname__creation_block_429", i32 0, i32 0), i32 15 }, %_TyDescrTy_Typ* @"$TyDescr_Bnum_21" }] @_contract_parameters_length = constant i32 3 -@"$tpname__amount_418" = unnamed_addr constant [7 x i8] c"_amount" -@"$tpname__origin_419" = unnamed_addr constant [7 x i8] c"_origin" -@"$tpname__sender_420" = unnamed_addr constant [7 x i8] c"_sender" -@"$tpname_bar_421" = unnamed_addr constant [3 x i8] c"bar" -@"$tparams_rep_422" = unnamed_addr constant [4 x %"$ParamDescr_413"] [%"$ParamDescr_413" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_418", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_13" }, %"$ParamDescr_413" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_419", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_41" }, %"$ParamDescr_413" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_420", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_41" }, %"$ParamDescr_413" { %ParamDescrString { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$tpname_bar_421", i32 0, i32 0), i32 3 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_40" }] -@"$tname_rep_423" = unnamed_addr constant [3 x i8] c"rep" -@"$tpname__amount_424" = unnamed_addr constant [7 x i8] c"_amount" -@"$tpname__origin_425" = unnamed_addr constant [7 x i8] c"_origin" -@"$tpname__sender_426" = unnamed_addr constant [7 x i8] c"_sender" -@"$tpname_cfaddr_427" = unnamed_addr constant [6 x i8] c"cfaddr" -@"$tparams_cfdeploy_428" = unnamed_addr constant [4 x %"$ParamDescr_413"] [%"$ParamDescr_413" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_424", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_13" }, %"$ParamDescr_413" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_425", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_41" }, %"$ParamDescr_413" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_426", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_41" }, %"$ParamDescr_413" { %ParamDescrString { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$tpname_cfaddr_427", i32 0, i32 0), i32 6 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_40" }] -@"$tname_cfdeploy_429" = unnamed_addr constant [8 x i8] c"cfdeploy" @"$tpname__amount_430" = unnamed_addr constant [7 x i8] c"_amount" @"$tpname__origin_431" = unnamed_addr constant [7 x i8] c"_origin" @"$tpname__sender_432" = unnamed_addr constant [7 x i8] c"_sender" -@"$tpname_cfaddr_433" = unnamed_addr constant [6 x i8] c"cfaddr" -@"$tparams_cfdeploy_incorrect_434" = unnamed_addr constant [4 x %"$ParamDescr_413"] [%"$ParamDescr_413" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_430", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_13" }, %"$ParamDescr_413" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_431", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_41" }, %"$ParamDescr_413" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_432", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_41" }, %"$ParamDescr_413" { %ParamDescrString { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$tpname_cfaddr_433", i32 0, i32 0), i32 6 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_40" }] -@"$tname_cfdeploy_incorrect_435" = unnamed_addr constant [18 x i8] c"cfdeploy_incorrect" -@_transition_parameters = constant [3 x %"$TransDescr_414"] [%"$TransDescr_414" { %ParamDescrString { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$tname_rep_423", i32 0, i32 0), i32 3 }, i32 4, %"$ParamDescr_413"* getelementptr inbounds ([4 x %"$ParamDescr_413"], [4 x %"$ParamDescr_413"]* @"$tparams_rep_422", i32 0, i32 0) }, %"$TransDescr_414" { %ParamDescrString { i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$tname_cfdeploy_429", i32 0, i32 0), i32 8 }, i32 4, %"$ParamDescr_413"* getelementptr inbounds ([4 x %"$ParamDescr_413"], [4 x %"$ParamDescr_413"]* @"$tparams_cfdeploy_428", i32 0, i32 0) }, %"$TransDescr_414" { %ParamDescrString { i8* getelementptr inbounds ([18 x i8], [18 x i8]* @"$tname_cfdeploy_incorrect_435", i32 0, i32 0), i32 18 }, i32 4, %"$ParamDescr_413"* getelementptr inbounds ([4 x %"$ParamDescr_413"], [4 x %"$ParamDescr_413"]* @"$tparams_cfdeploy_incorrect_434", i32 0, i32 0) }] +@"$tpname_bar_433" = unnamed_addr constant [3 x i8] c"bar" +@"$tparams_rep_434" = unnamed_addr constant [4 x %"$ParamDescr_425"] [%"$ParamDescr_425" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_430", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_13" }, %"$ParamDescr_425" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_431", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_41" }, %"$ParamDescr_425" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_432", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_41" }, %"$ParamDescr_425" { %ParamDescrString { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$tpname_bar_433", i32 0, i32 0), i32 3 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_40" }] +@"$tname_rep_435" = unnamed_addr constant [3 x i8] c"rep" +@"$tpname__amount_436" = unnamed_addr constant [7 x i8] c"_amount" +@"$tpname__origin_437" = unnamed_addr constant [7 x i8] c"_origin" +@"$tpname__sender_438" = unnamed_addr constant [7 x i8] c"_sender" +@"$tpname_cfaddr_439" = unnamed_addr constant [6 x i8] c"cfaddr" +@"$tparams_cfdeploy_440" = unnamed_addr constant [4 x %"$ParamDescr_425"] [%"$ParamDescr_425" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_436", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_13" }, %"$ParamDescr_425" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_437", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_41" }, %"$ParamDescr_425" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_438", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_41" }, %"$ParamDescr_425" { %ParamDescrString { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$tpname_cfaddr_439", i32 0, i32 0), i32 6 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_40" }] +@"$tname_cfdeploy_441" = unnamed_addr constant [8 x i8] c"cfdeploy" +@"$tpname__amount_442" = unnamed_addr constant [7 x i8] c"_amount" +@"$tpname__origin_443" = unnamed_addr constant [7 x i8] c"_origin" +@"$tpname__sender_444" = unnamed_addr constant [7 x i8] c"_sender" +@"$tpname_cfaddr_445" = unnamed_addr constant [6 x i8] c"cfaddr" +@"$tparams_cfdeploy_incorrect_446" = unnamed_addr constant [4 x %"$ParamDescr_425"] [%"$ParamDescr_425" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_442", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_13" }, %"$ParamDescr_425" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_443", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_41" }, %"$ParamDescr_425" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_444", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_41" }, %"$ParamDescr_425" { %ParamDescrString { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$tpname_cfaddr_445", i32 0, i32 0), i32 6 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_40" }] +@"$tname_cfdeploy_incorrect_447" = unnamed_addr constant [18 x i8] c"cfdeploy_incorrect" +@_transition_parameters = constant [3 x %"$TransDescr_426"] [%"$TransDescr_426" { %ParamDescrString { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$tname_rep_435", i32 0, i32 0), i32 3 }, i32 4, %"$ParamDescr_425"* getelementptr inbounds ([4 x %"$ParamDescr_425"], [4 x %"$ParamDescr_425"]* @"$tparams_rep_434", i32 0, i32 0) }, %"$TransDescr_426" { %ParamDescrString { i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$tname_cfdeploy_441", i32 0, i32 0), i32 8 }, i32 4, %"$ParamDescr_425"* getelementptr inbounds ([4 x %"$ParamDescr_425"], [4 x %"$ParamDescr_425"]* @"$tparams_cfdeploy_440", i32 0, i32 0) }, %"$TransDescr_426" { %ParamDescrString { i8* getelementptr inbounds ([18 x i8], [18 x i8]* @"$tname_cfdeploy_incorrect_447", i32 0, i32 0), i32 18 }, i32 4, %"$ParamDescr_425"* getelementptr inbounds ([4 x %"$ParamDescr_425"], [4 x %"$ParamDescr_425"]* @"$tparams_cfdeploy_incorrect_446", i32 0, i32 0) }] @_transition_parameters_length = constant i32 3 -define void @_init_libs() !dbg !4 { +define void @_init_libs() !dbg !3 { entry: %"$gasrem_45" = load i64, i64* @_gasrem, align 8 %"$gascmp_46" = icmp ugt i64 5, %"$gasrem_45" @@ -151,6 +151,18 @@ entry: define internal void @"$rep_55"(%Uint128 %_amount, [20 x i8]* %"$_origin_56", [20 x i8]* %"$_sender_57", [20 x i8]* %"$bar_58") !dbg !11 { entry: + %"$bar_131" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$bar_58", [20 x i8]** %"$bar_131", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$bar_131", metadata !12, metadata !DIExpression()), !dbg !14 + %"$_sender_130" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_sender_57", [20 x i8]** %"$_sender_130", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_sender_130", metadata !15, metadata !DIExpression()), !dbg !17 + %"$_origin_129" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_origin_56", [20 x i8]** %"$_origin_129", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_origin_129", metadata !18, metadata !DIExpression()), !dbg !17 + %"$_amount_128" = alloca %Uint128, align 8 + store %Uint128 %_amount, %Uint128* %"$_amount_128", align 8 + call void @llvm.dbg.declare(metadata %Uint128* %"$_amount_128", metadata !19, metadata !DIExpression()), !dbg !17 %_origin = load [20 x i8], [20 x i8]* %"$_origin_56", align 1 %_sender = load [20 x i8], [20 x i8]* %"$_sender_57", align 1 %bar = load [20 x i8], [20 x i8]* %"$bar_58", align 1 @@ -166,6 +178,7 @@ entry: %"$consume_63" = sub i64 %"$gasrem_59", 1 store i64 %"$consume_63", i64* @_gasrem, align 8 %foo = alloca i8*, align 8 + call void @llvm.dbg.declare(metadata i8** %foo, metadata !21, metadata !DIExpression()), !dbg !24 %"$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" @@ -191,7 +204,7 @@ entry: %"$msgobj_v_76" = getelementptr i8, i8* %"$msgobj_69", i32 25 %"$msgobj_v_77" = bitcast i8* %"$msgobj_v_76" to %String* store %String { i8* getelementptr inbounds ([0 x i8], [0 x i8]* @"$stringlit_75", i32 0, i32 0), i32 0 }, %String* %"$msgobj_v_77", align 8 - store i8* %"$msgobj_69", i8** %foo, align 8, !dbg !12 + store i8* %"$msgobj_69", i8** %foo, align 8, !dbg !25 %"$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" @@ -204,11 +217,12 @@ entry: %"$consume_83" = sub i64 %"$gasrem_79", 1 store i64 %"$consume_83", i64* @_gasrem, align 8 %foo_addr = alloca [20 x i8], align 1 + call void @llvm.dbg.declare(metadata [20 x i8]* %foo_addr, metadata !26, metadata !DIExpression()), !dbg !27 %"$execptr_load_84" = load i8*, i8** @_execptr, align 8 %"$foo_addr_bar_85" = alloca [20 x i8], align 1 store [20 x i8] %bar, [20 x i8]* %"$foo_addr_bar_85", align 1 %"$foo_86" = load i8*, i8** %foo, align 8 - %"$foo_addr_call_87" = call [20 x i8]* @_replicate_contract(i8* %"$execptr_load_84", [20 x i8]* %"$foo_addr_bar_85", %_TyDescrTy_Typ* @"$TyDescr_ReplicateContr_29", i8* %"$foo_86"), !dbg !13 + %"$foo_addr_call_87" = call [20 x i8]* @_replicate_contract(i8* %"$execptr_load_84", [20 x i8]* %"$foo_addr_bar_85", %_TyDescrTy_Typ* @"$TyDescr_ReplicateContr_29", i8* %"$foo_86"), !dbg !27 %"$foo_addr_89" = load [20 x i8], [20 x i8]* %"$foo_addr_call_87", align 1 store [20 x i8] %"$foo_addr_89", [20 x i8]* %foo_addr, align 1 %"$gasrem_90" = load i64, i64* @_gasrem, align 8 @@ -223,6 +237,7 @@ entry: %"$consume_94" = sub i64 %"$gasrem_90", 1 store i64 %"$consume_94", i64* @_gasrem, align 8 %e = alloca i8*, align 8 + call void @llvm.dbg.declare(metadata i8** %e, metadata !28, metadata !DIExpression()), !dbg !31 %"$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" @@ -258,7 +273,7 @@ entry: %"$msgobj_v_115" = getelementptr i8, i8* %"$msgobj_100", i32 65 %"$msgobj_v_116" = bitcast i8* %"$msgobj_v_115" to [20 x i8]* store [20 x i8] %"$foo_addr_114", [20 x i8]* %"$msgobj_v_116", align 1 - store i8* %"$msgobj_100", i8** %e, align 8, !dbg !14 + store i8* %"$msgobj_100", i8** %e, align 8, !dbg !32 %"$e_118" = load i8*, i8** %e, align 8 %"$_literal_cost_call_120" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Event_25", i8* %"$e_118") %"$gasrem_121" = load i64, i64* @_gasrem, align 8 @@ -274,10 +289,13 @@ entry: store i64 %"$consume_125", i64* @_gasrem, align 8 %"$execptr_load_126" = load i8*, i8** @_execptr, align 8 %"$e_127" = load i8*, i8** %e, align 8 - call void @_event(i8* %"$execptr_load_126", %_TyDescrTy_Typ* @"$TyDescr_Event_25", i8* %"$e_127"), !dbg !15 + call void @_event(i8* %"$execptr_load_126", %_TyDescrTy_Typ* @"$TyDescr_Event_25", i8* %"$e_127"), !dbg !33 ret void } +; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn +declare void @llvm.dbg.declare(metadata, metadata, metadata) #0 + declare i8* @_salloc(i8*, i64) declare i8* @_read_blockchain(i8*, %BCQuery, %String) @@ -288,555 +306,648 @@ declare i64 @_literal_cost(%_TyDescrTy_Typ*, i8*) declare void @_event(i8*, %_TyDescrTy_Typ*, i8*) -define void @rep(i8* %0) !dbg !16 { +define void @rep(i8* %0) !dbg !34 { entry: - %"$_amount_129" = getelementptr i8, i8* %0, i32 0 - %"$_amount_130" = bitcast i8* %"$_amount_129" to %Uint128* - %_amount = load %Uint128, %Uint128* %"$_amount_130", align 8 - %"$_origin_131" = getelementptr i8, i8* %0, i32 16 - %"$_origin_132" = bitcast i8* %"$_origin_131" to [20 x i8]* - %"$_sender_133" = getelementptr i8, i8* %0, i32 36 - %"$_sender_134" = bitcast i8* %"$_sender_133" to [20 x i8]* - %"$bar_135" = getelementptr i8, i8* %0, i32 56 - %"$bar_136" = bitcast i8* %"$bar_135" to [20 x i8]* - call void @"$rep_55"(%Uint128 %_amount, [20 x i8]* %"$_origin_132", [20 x i8]* %"$_sender_134", [20 x i8]* %"$bar_136"), !dbg !17 + %"$_amount_133" = getelementptr i8, i8* %0, i32 0 + %"$_amount_134" = bitcast i8* %"$_amount_133" to %Uint128* + %_amount = load %Uint128, %Uint128* %"$_amount_134", align 8 + %"$_origin_135" = getelementptr i8, i8* %0, i32 16 + %"$_origin_136" = bitcast i8* %"$_origin_135" to [20 x i8]* + %"$_sender_137" = getelementptr i8, i8* %0, i32 36 + %"$_sender_138" = bitcast i8* %"$_sender_137" to [20 x i8]* + %"$bar_139" = getelementptr i8, i8* %0, i32 56 + %"$bar_140" = bitcast i8* %"$bar_139" to [20 x i8]* + call void @"$rep_55"(%Uint128 %_amount, [20 x i8]* %"$_origin_136", [20 x i8]* %"$_sender_138", [20 x i8]* %"$bar_140"), !dbg !35 ret void } -define internal void @"$cfdeploy_137"(%Uint128 %_amount, [20 x i8]* %"$_origin_138", [20 x i8]* %"$_sender_139", [20 x i8]* %"$cfaddr_140") !dbg !18 { +define internal void @"$cfdeploy_141"(%Uint128 %_amount, [20 x i8]* %"$_origin_142", [20 x i8]* %"$_sender_143", [20 x i8]* %"$cfaddr_144") !dbg !36 { entry: - %_origin = load [20 x i8], [20 x i8]* %"$_origin_138", align 1 - %_sender = load [20 x i8], [20 x i8]* %"$_sender_139", align 1 - %cfaddr = load [20 x i8], [20 x i8]* %"$cfaddr_140", align 1 - %"$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 = %entry - call void @_out_of_gas() - br label %"$have_gas_144" - -"$have_gas_144": ; preds = %"$out_of_gas_143", %entry - %"$consume_145" = sub i64 %"$gasrem_141", 1 - store i64 %"$consume_145", i64* @_gasrem, align 8 + %"$cfaddr_275" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$cfaddr_144", [20 x i8]** %"$cfaddr_275", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$cfaddr_275", metadata !37, metadata !DIExpression()), !dbg !38 + %"$_sender_274" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_sender_143", [20 x i8]** %"$_sender_274", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_sender_274", metadata !39, metadata !DIExpression()), !dbg !40 + %"$_origin_273" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_origin_142", [20 x i8]** %"$_origin_273", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_origin_273", metadata !41, metadata !DIExpression()), !dbg !40 + %"$_amount_272" = alloca %Uint128, align 8 + store %Uint128 %_amount, %Uint128* %"$_amount_272", align 8 + call void @llvm.dbg.declare(metadata %Uint128* %"$_amount_272", metadata !42, metadata !DIExpression()), !dbg !40 + %_origin = load [20 x i8], [20 x i8]* %"$_origin_142", align 1 + %_sender = load [20 x i8], [20 x i8]* %"$_sender_143", align 1 + %cfaddr = load [20 x i8], [20 x i8]* %"$cfaddr_144", align 1 + %"$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 %owner = alloca [20 x i8], 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" + call void @llvm.dbg.declare(metadata [20 x i8]* %owner, metadata !43, metadata !DIExpression()), !dbg !44 + %"$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_148": ; preds = %"$have_gas_144" +"$out_of_gas_152": ; preds = %"$have_gas_148" call void @_out_of_gas() - br label %"$have_gas_149" + br label %"$have_gas_153" -"$have_gas_149": ; preds = %"$out_of_gas_148", %"$have_gas_144" - %"$consume_150" = sub i64 %"$gasrem_146", 1 - store i64 %"$consume_150", i64* @_gasrem, align 8 - store [20 x i8] %_sender, [20 x i8]* %owner, align 1, !dbg !19 - %"$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" +"$have_gas_153": ; preds = %"$out_of_gas_152", %"$have_gas_148" + %"$consume_154" = sub i64 %"$gasrem_150", 1 + store i64 %"$consume_154", i64* @_gasrem, align 8 + store [20 x i8] %_sender, [20 x i8]* %owner, align 1, !dbg !45 + %"$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_153": ; preds = %"$have_gas_149" +"$out_of_gas_157": ; preds = %"$have_gas_153" call void @_out_of_gas() - br label %"$have_gas_154" + br label %"$have_gas_158" -"$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_158": ; preds = %"$out_of_gas_157", %"$have_gas_153" + %"$consume_159" = sub i64 %"$gasrem_155", 1 + store i64 %"$consume_159", i64* @_gasrem, align 8 %max_block = alloca 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" + call void @llvm.dbg.declare(metadata i8** %max_block, metadata !46, metadata !DIExpression()), !dbg !49 + %"$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_158": ; preds = %"$have_gas_154" +"$out_of_gas_162": ; preds = %"$have_gas_158" call void @_out_of_gas() - br label %"$have_gas_159" + br label %"$have_gas_163" -"$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 - %"$execptr_load_162" = load i8*, i8** @_execptr, align 8 - %"$_new_bnum_call_163" = call i8* @_new_bnum(i8* %"$execptr_load_162", %BNumString { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$BNumLit_161", i32 0, i32 0), i32 3 }) - store i8* %"$_new_bnum_call_163", i8** %max_block, align 8, !dbg !20 - %"$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" +"$have_gas_163": ; preds = %"$out_of_gas_162", %"$have_gas_158" + %"$consume_164" = sub i64 %"$gasrem_160", 1 + store i64 %"$consume_164", i64* @_gasrem, align 8 + %"$execptr_load_166" = load i8*, i8** @_execptr, align 8 + %"$_new_bnum_call_167" = call i8* @_new_bnum(i8* %"$execptr_load_166", %BNumString { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$BNumLit_165", i32 0, i32 0), i32 3 }) + store i8* %"$_new_bnum_call_167", i8** %max_block, align 8, !dbg !50 + %"$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_167": ; preds = %"$have_gas_159" +"$out_of_gas_171": ; preds = %"$have_gas_163" call void @_out_of_gas() - br label %"$have_gas_168" + br label %"$have_gas_172" -"$have_gas_168": ; preds = %"$out_of_gas_167", %"$have_gas_159" - %"$consume_169" = sub i64 %"$gasrem_165", 1 - store i64 %"$consume_169", i64* @_gasrem, align 8 +"$have_gas_172": ; preds = %"$out_of_gas_171", %"$have_gas_163" + %"$consume_173" = sub i64 %"$gasrem_169", 1 + store i64 %"$consume_173", i64* @_gasrem, align 8 %goal = alloca %Uint128, align 8 - %"$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" + call void @llvm.dbg.declare(metadata %Uint128* %goal, metadata !51, metadata !DIExpression()), !dbg !52 + %"$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_172": ; preds = %"$have_gas_168" +"$out_of_gas_176": ; preds = %"$have_gas_172" call void @_out_of_gas() - br label %"$have_gas_173" + br label %"$have_gas_177" -"$have_gas_173": ; preds = %"$out_of_gas_172", %"$have_gas_168" - %"$consume_174" = sub i64 %"$gasrem_170", 1 - store i64 %"$consume_174", i64* @_gasrem, align 8 - store %Uint128 { i128 1000 }, %Uint128* %goal, align 8, !dbg !21 - %"$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" +"$have_gas_177": ; preds = %"$out_of_gas_176", %"$have_gas_172" + %"$consume_178" = sub i64 %"$gasrem_174", 1 + store i64 %"$consume_178", i64* @_gasrem, align 8 + store %Uint128 { i128 1000 }, %Uint128* %goal, align 8, !dbg !53 + %"$gasrem_179" = load i64, i64* @_gasrem, align 8 + %"$gascmp_180" = icmp ugt i64 1, %"$gasrem_179" + br i1 %"$gascmp_180", label %"$out_of_gas_181", label %"$have_gas_182" -"$out_of_gas_177": ; preds = %"$have_gas_173" +"$out_of_gas_181": ; preds = %"$have_gas_177" call void @_out_of_gas() - br label %"$have_gas_178" + br label %"$have_gas_182" -"$have_gas_178": ; preds = %"$out_of_gas_177", %"$have_gas_173" - %"$consume_179" = sub i64 %"$gasrem_175", 1 - store i64 %"$consume_179", i64* @_gasrem, align 8 +"$have_gas_182": ; preds = %"$out_of_gas_181", %"$have_gas_177" + %"$consume_183" = sub i64 %"$gasrem_179", 1 + store i64 %"$consume_183", i64* @_gasrem, align 8 %m = alloca 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" - -"$out_of_gas_182": ; preds = %"$have_gas_178" - call void @_out_of_gas() - br label %"$have_gas_183" - -"$have_gas_183": ; preds = %"$out_of_gas_182", %"$have_gas_178" - %"$consume_184" = sub i64 %"$gasrem_180", 1 - store i64 %"$consume_184", i64* @_gasrem, align 8 - %"$msgobj_185_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$msgobj_185_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_185_salloc_load", i64 157) - %"$msgobj_185_salloc" = bitcast i8* %"$msgobj_185_salloc_salloc" to [157 x i8]* - %"$msgobj_185" = bitcast [157 x i8]* %"$msgobj_185_salloc" to i8* - store i8 4, i8* %"$msgobj_185", align 1 - %"$msgobj_fname_187" = getelementptr i8, i8* %"$msgobj_185", i32 1 - %"$msgobj_fname_188" = bitcast i8* %"$msgobj_fname_187" to %String* - store %String { i8* getelementptr inbounds ([19 x i8], [19 x i8]* @"$stringlit_186", i32 0, i32 0), i32 19 }, %String* %"$msgobj_fname_188", align 8 - %"$msgobj_td_189" = getelementptr i8, i8* %"$msgobj_185", i32 17 - %"$msgobj_td_190" = bitcast i8* %"$msgobj_td_189" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_String_19", %_TyDescrTy_Typ** %"$msgobj_td_190", align 8 - %"$msgobj_v_192" = getelementptr i8, i8* %"$msgobj_185", i32 25 - %"$msgobj_v_193" = bitcast i8* %"$msgobj_v_192" to %String* - store %String { i8* getelementptr inbounds ([0 x i8], [0 x i8]* @"$stringlit_191", i32 0, i32 0), i32 0 }, %String* %"$msgobj_v_193", align 8 - %"$msgobj_fname_195" = getelementptr i8, i8* %"$msgobj_185", i32 41 - %"$msgobj_fname_196" = bitcast i8* %"$msgobj_fname_195" to %String* - store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_194", i32 0, i32 0), i32 5 }, %String* %"$msgobj_fname_196", align 8 - %"$msgobj_td_197" = getelementptr i8, i8* %"$msgobj_185", i32 57 - %"$msgobj_td_198" = bitcast i8* %"$msgobj_td_197" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_33", %_TyDescrTy_Typ** %"$msgobj_td_198", align 8 - %"$owner_199" = load [20 x i8], [20 x i8]* %owner, align 1 - %"$msgobj_v_200" = getelementptr i8, i8* %"$msgobj_185", i32 65 - %"$msgobj_v_201" = bitcast i8* %"$msgobj_v_200" to [20 x i8]* - store [20 x i8] %"$owner_199", [20 x i8]* %"$msgobj_v_201", align 1 - %"$msgobj_fname_203" = getelementptr i8, i8* %"$msgobj_185", i32 85 - %"$msgobj_fname_204" = bitcast i8* %"$msgobj_fname_203" to %String* - store %String { i8* getelementptr inbounds ([9 x i8], [9 x i8]* @"$stringlit_202", i32 0, i32 0), i32 9 }, %String* %"$msgobj_fname_204", align 8 - %"$msgobj_td_205" = getelementptr i8, i8* %"$msgobj_185", i32 101 - %"$msgobj_td_206" = bitcast i8* %"$msgobj_td_205" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Bnum_21", %_TyDescrTy_Typ** %"$msgobj_td_206", align 8 - %"$max_block_207" = load i8*, i8** %max_block, align 8 - %"$msgobj_v_208" = getelementptr i8, i8* %"$msgobj_185", i32 109 - %"$msgobj_v_209" = bitcast i8* %"$msgobj_v_208" to i8** - store i8* %"$max_block_207", i8** %"$msgobj_v_209", align 8 - %"$msgobj_fname_211" = getelementptr i8, i8* %"$msgobj_185", i32 117 - %"$msgobj_fname_212" = bitcast i8* %"$msgobj_fname_211" to %String* - store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_210", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_212", align 8 - %"$msgobj_td_213" = getelementptr i8, i8* %"$msgobj_185", i32 133 - %"$msgobj_td_214" = bitcast i8* %"$msgobj_td_213" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Uint128_13", %_TyDescrTy_Typ** %"$msgobj_td_214", align 8 - %"$goal_215" = load %Uint128, %Uint128* %goal, align 8 - %"$msgobj_v_216" = getelementptr i8, i8* %"$msgobj_185", i32 141 - %"$msgobj_v_217" = bitcast i8* %"$msgobj_v_216" to %Uint128* - store %Uint128 %"$goal_215", %Uint128* %"$msgobj_v_217", align 8 - store i8* %"$msgobj_185", i8** %m, align 8, !dbg !22 - %"$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 = %"$have_gas_183" - call void @_out_of_gas() - br label %"$have_gas_222" - -"$have_gas_222": ; preds = %"$out_of_gas_221", %"$have_gas_183" - %"$consume_223" = sub i64 %"$gasrem_219", 1 - store i64 %"$consume_223", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata i8** %m, metadata !54, metadata !DIExpression()), !dbg !55 + %"$gasrem_184" = load i64, i64* @_gasrem, align 8 + %"$gascmp_185" = icmp ugt i64 1, %"$gasrem_184" + br i1 %"$gascmp_185", label %"$out_of_gas_186", label %"$have_gas_187" + +"$out_of_gas_186": ; preds = %"$have_gas_182" + call void @_out_of_gas() + br label %"$have_gas_187" + +"$have_gas_187": ; preds = %"$out_of_gas_186", %"$have_gas_182" + %"$consume_188" = sub i64 %"$gasrem_184", 1 + store i64 %"$consume_188", i64* @_gasrem, align 8 + %"$msgobj_189_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$msgobj_189_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_189_salloc_load", i64 157) + %"$msgobj_189_salloc" = bitcast i8* %"$msgobj_189_salloc_salloc" to [157 x i8]* + %"$msgobj_189" = bitcast [157 x i8]* %"$msgobj_189_salloc" to i8* + store i8 4, i8* %"$msgobj_189", align 1 + %"$msgobj_fname_191" = getelementptr i8, i8* %"$msgobj_189", i32 1 + %"$msgobj_fname_192" = bitcast i8* %"$msgobj_fname_191" to %String* + store %String { i8* getelementptr inbounds ([19 x i8], [19 x i8]* @"$stringlit_190", i32 0, i32 0), i32 19 }, %String* %"$msgobj_fname_192", align 8 + %"$msgobj_td_193" = getelementptr i8, i8* %"$msgobj_189", i32 17 + %"$msgobj_td_194" = bitcast i8* %"$msgobj_td_193" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_String_19", %_TyDescrTy_Typ** %"$msgobj_td_194", align 8 + %"$msgobj_v_196" = getelementptr i8, i8* %"$msgobj_189", i32 25 + %"$msgobj_v_197" = bitcast i8* %"$msgobj_v_196" to %String* + store %String { i8* getelementptr inbounds ([0 x i8], [0 x i8]* @"$stringlit_195", i32 0, i32 0), i32 0 }, %String* %"$msgobj_v_197", align 8 + %"$msgobj_fname_199" = getelementptr i8, i8* %"$msgobj_189", i32 41 + %"$msgobj_fname_200" = bitcast i8* %"$msgobj_fname_199" to %String* + store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_198", i32 0, i32 0), i32 5 }, %String* %"$msgobj_fname_200", align 8 + %"$msgobj_td_201" = getelementptr i8, i8* %"$msgobj_189", i32 57 + %"$msgobj_td_202" = bitcast i8* %"$msgobj_td_201" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_33", %_TyDescrTy_Typ** %"$msgobj_td_202", align 8 + %"$owner_203" = load [20 x i8], [20 x i8]* %owner, align 1 + %"$msgobj_v_204" = getelementptr i8, i8* %"$msgobj_189", i32 65 + %"$msgobj_v_205" = bitcast i8* %"$msgobj_v_204" to [20 x i8]* + store [20 x i8] %"$owner_203", [20 x i8]* %"$msgobj_v_205", align 1 + %"$msgobj_fname_207" = getelementptr i8, i8* %"$msgobj_189", i32 85 + %"$msgobj_fname_208" = bitcast i8* %"$msgobj_fname_207" to %String* + store %String { i8* getelementptr inbounds ([9 x i8], [9 x i8]* @"$stringlit_206", i32 0, i32 0), i32 9 }, %String* %"$msgobj_fname_208", align 8 + %"$msgobj_td_209" = getelementptr i8, i8* %"$msgobj_189", i32 101 + %"$msgobj_td_210" = bitcast i8* %"$msgobj_td_209" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Bnum_21", %_TyDescrTy_Typ** %"$msgobj_td_210", align 8 + %"$max_block_211" = load i8*, i8** %max_block, align 8 + %"$msgobj_v_212" = getelementptr i8, i8* %"$msgobj_189", i32 109 + %"$msgobj_v_213" = bitcast i8* %"$msgobj_v_212" to i8** + store i8* %"$max_block_211", i8** %"$msgobj_v_213", align 8 + %"$msgobj_fname_215" = getelementptr i8, i8* %"$msgobj_189", i32 117 + %"$msgobj_fname_216" = bitcast i8* %"$msgobj_fname_215" to %String* + store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_214", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_216", align 8 + %"$msgobj_td_217" = getelementptr i8, i8* %"$msgobj_189", i32 133 + %"$msgobj_td_218" = bitcast i8* %"$msgobj_td_217" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Uint128_13", %_TyDescrTy_Typ** %"$msgobj_td_218", align 8 + %"$goal_219" = load %Uint128, %Uint128* %goal, align 8 + %"$msgobj_v_220" = getelementptr i8, i8* %"$msgobj_189", i32 141 + %"$msgobj_v_221" = bitcast i8* %"$msgobj_v_220" to %Uint128* + store %Uint128 %"$goal_219", %Uint128* %"$msgobj_v_221", align 8 + store i8* %"$msgobj_189", i8** %m, align 8, !dbg !56 + %"$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_187" + call void @_out_of_gas() + br label %"$have_gas_226" + +"$have_gas_226": ; preds = %"$out_of_gas_225", %"$have_gas_187" + %"$consume_227" = sub i64 %"$gasrem_223", 1 + store i64 %"$consume_227", i64* @_gasrem, align 8 %newcf_addr = alloca [20 x i8], align 1 - %"$execptr_load_224" = load i8*, i8** @_execptr, align 8 - %"$newcf_addr_cfaddr_225" = alloca [20 x i8], align 1 - store [20 x i8] %cfaddr, [20 x i8]* %"$newcf_addr_cfaddr_225", align 1 - %"$m_226" = load i8*, i8** %m, align 8 - %"$newcf_addr_call_227" = call [20 x i8]* @_replicate_contract(i8* %"$execptr_load_224", [20 x i8]* %"$newcf_addr_cfaddr_225", %_TyDescrTy_Typ* @"$TyDescr_ReplicateContr_29", i8* %"$m_226"), !dbg !23 - %"$newcf_addr_229" = load [20 x i8], [20 x i8]* %"$newcf_addr_call_227", align 1 - store [20 x i8] %"$newcf_addr_229", [20 x i8]* %newcf_addr, align 1 - %"$gasrem_230" = load i64, i64* @_gasrem, align 8 - %"$gascmp_231" = icmp ugt i64 1, %"$gasrem_230" - br i1 %"$gascmp_231", label %"$out_of_gas_232", label %"$have_gas_233" - -"$out_of_gas_232": ; preds = %"$have_gas_222" - call void @_out_of_gas() - br label %"$have_gas_233" - -"$have_gas_233": ; preds = %"$out_of_gas_232", %"$have_gas_222" - %"$consume_234" = sub i64 %"$gasrem_230", 1 - store i64 %"$consume_234", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata [20 x i8]* %newcf_addr, metadata !57, metadata !DIExpression()), !dbg !58 + %"$execptr_load_228" = load i8*, i8** @_execptr, align 8 + %"$newcf_addr_cfaddr_229" = alloca [20 x i8], align 1 + store [20 x i8] %cfaddr, [20 x i8]* %"$newcf_addr_cfaddr_229", align 1 + %"$m_230" = load i8*, i8** %m, align 8 + %"$newcf_addr_call_231" = call [20 x i8]* @_replicate_contract(i8* %"$execptr_load_228", [20 x i8]* %"$newcf_addr_cfaddr_229", %_TyDescrTy_Typ* @"$TyDescr_ReplicateContr_29", i8* %"$m_230"), !dbg !58 + %"$newcf_addr_233" = load [20 x i8], [20 x i8]* %"$newcf_addr_call_231", align 1 + store [20 x i8] %"$newcf_addr_233", [20 x i8]* %newcf_addr, 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_226" + call void @_out_of_gas() + br label %"$have_gas_237" + +"$have_gas_237": ; preds = %"$out_of_gas_236", %"$have_gas_226" + %"$consume_238" = sub i64 %"$gasrem_234", 1 + store i64 %"$consume_238", i64* @_gasrem, align 8 %e = alloca i8*, 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" - -"$out_of_gas_237": ; preds = %"$have_gas_233" - call void @_out_of_gas() - br label %"$have_gas_238" - -"$have_gas_238": ; preds = %"$out_of_gas_237", %"$have_gas_233" - %"$consume_239" = sub i64 %"$gasrem_235", 1 - store i64 %"$consume_239", i64* @_gasrem, align 8 - %"$msgobj_240_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$msgobj_240_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_240_salloc_load", i64 85) - %"$msgobj_240_salloc" = bitcast i8* %"$msgobj_240_salloc_salloc" to [85 x i8]* - %"$msgobj_240" = bitcast [85 x i8]* %"$msgobj_240_salloc" to i8* - store i8 2, i8* %"$msgobj_240", align 1 - %"$msgobj_fname_242" = getelementptr i8, i8* %"$msgobj_240", i32 1 - %"$msgobj_fname_243" = bitcast i8* %"$msgobj_fname_242" to %String* - store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_241", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_243", align 8 - %"$msgobj_td_244" = getelementptr i8, i8* %"$msgobj_240", i32 17 - %"$msgobj_td_245" = bitcast i8* %"$msgobj_td_244" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_String_19", %_TyDescrTy_Typ** %"$msgobj_td_245", align 8 - %"$msgobj_v_247" = getelementptr i8, i8* %"$msgobj_240", i32 25 - %"$msgobj_v_248" = bitcast i8* %"$msgobj_v_247" to %String* - store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_246", i32 0, i32 0), i32 10 }, %String* %"$msgobj_v_248", align 8 - %"$msgobj_fname_250" = getelementptr i8, i8* %"$msgobj_240", i32 41 - %"$msgobj_fname_251" = bitcast i8* %"$msgobj_fname_250" to %String* - store %String { i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$stringlit_249", i32 0, i32 0), i32 8 }, %String* %"$msgobj_fname_251", align 8 - %"$msgobj_td_252" = getelementptr i8, i8* %"$msgobj_240", i32 57 - %"$msgobj_td_253" = bitcast i8* %"$msgobj_td_252" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_33", %_TyDescrTy_Typ** %"$msgobj_td_253", align 8 - %"$newcf_addr_254" = load [20 x i8], [20 x i8]* %newcf_addr, align 1 - %"$msgobj_v_255" = getelementptr i8, i8* %"$msgobj_240", i32 65 - %"$msgobj_v_256" = bitcast i8* %"$msgobj_v_255" to [20 x i8]* - store [20 x i8] %"$newcf_addr_254", [20 x i8]* %"$msgobj_v_256", align 1 - store i8* %"$msgobj_240", i8** %e, align 8, !dbg !24 - %"$e_258" = load i8*, i8** %e, align 8 - %"$_literal_cost_call_260" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Event_25", i8* %"$e_258") - %"$gasrem_261" = load i64, i64* @_gasrem, align 8 - %"$gascmp_262" = icmp ugt i64 %"$_literal_cost_call_260", %"$gasrem_261" - br i1 %"$gascmp_262", label %"$out_of_gas_263", label %"$have_gas_264" - -"$out_of_gas_263": ; preds = %"$have_gas_238" - call void @_out_of_gas() - br label %"$have_gas_264" - -"$have_gas_264": ; preds = %"$out_of_gas_263", %"$have_gas_238" - %"$consume_265" = sub i64 %"$gasrem_261", %"$_literal_cost_call_260" - store i64 %"$consume_265", i64* @_gasrem, align 8 - %"$execptr_load_266" = load i8*, i8** @_execptr, align 8 - %"$e_267" = load i8*, i8** %e, align 8 - call void @_event(i8* %"$execptr_load_266", %_TyDescrTy_Typ* @"$TyDescr_Event_25", i8* %"$e_267"), !dbg !25 + call void @llvm.dbg.declare(metadata i8** %e, metadata !59, metadata !DIExpression()), !dbg !60 + %"$gasrem_239" = load i64, i64* @_gasrem, align 8 + %"$gascmp_240" = icmp ugt i64 1, %"$gasrem_239" + br i1 %"$gascmp_240", label %"$out_of_gas_241", label %"$have_gas_242" + +"$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", 1 + store i64 %"$consume_243", i64* @_gasrem, align 8 + %"$msgobj_244_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$msgobj_244_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_244_salloc_load", i64 85) + %"$msgobj_244_salloc" = bitcast i8* %"$msgobj_244_salloc_salloc" to [85 x i8]* + %"$msgobj_244" = bitcast [85 x i8]* %"$msgobj_244_salloc" to i8* + store i8 2, i8* %"$msgobj_244", align 1 + %"$msgobj_fname_246" = getelementptr i8, i8* %"$msgobj_244", i32 1 + %"$msgobj_fname_247" = bitcast i8* %"$msgobj_fname_246" to %String* + store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_245", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_247", align 8 + %"$msgobj_td_248" = getelementptr i8, i8* %"$msgobj_244", i32 17 + %"$msgobj_td_249" = bitcast i8* %"$msgobj_td_248" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_String_19", %_TyDescrTy_Typ** %"$msgobj_td_249", align 8 + %"$msgobj_v_251" = getelementptr i8, i8* %"$msgobj_244", i32 25 + %"$msgobj_v_252" = bitcast i8* %"$msgobj_v_251" to %String* + store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_250", i32 0, i32 0), i32 10 }, %String* %"$msgobj_v_252", align 8 + %"$msgobj_fname_254" = getelementptr i8, i8* %"$msgobj_244", i32 41 + %"$msgobj_fname_255" = bitcast i8* %"$msgobj_fname_254" to %String* + store %String { i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$stringlit_253", i32 0, i32 0), i32 8 }, %String* %"$msgobj_fname_255", align 8 + %"$msgobj_td_256" = getelementptr i8, i8* %"$msgobj_244", i32 57 + %"$msgobj_td_257" = bitcast i8* %"$msgobj_td_256" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_33", %_TyDescrTy_Typ** %"$msgobj_td_257", align 8 + %"$newcf_addr_258" = load [20 x i8], [20 x i8]* %newcf_addr, align 1 + %"$msgobj_v_259" = getelementptr i8, i8* %"$msgobj_244", i32 65 + %"$msgobj_v_260" = bitcast i8* %"$msgobj_v_259" to [20 x i8]* + store [20 x i8] %"$newcf_addr_258", [20 x i8]* %"$msgobj_v_260", align 1 + store i8* %"$msgobj_244", i8** %e, align 8, !dbg !61 + %"$e_262" = load i8*, i8** %e, align 8 + %"$_literal_cost_call_264" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Event_25", i8* %"$e_262") + %"$gasrem_265" = load i64, i64* @_gasrem, align 8 + %"$gascmp_266" = icmp ugt i64 %"$_literal_cost_call_264", %"$gasrem_265" + br i1 %"$gascmp_266", label %"$out_of_gas_267", label %"$have_gas_268" + +"$out_of_gas_267": ; preds = %"$have_gas_242" + call void @_out_of_gas() + br label %"$have_gas_268" + +"$have_gas_268": ; preds = %"$out_of_gas_267", %"$have_gas_242" + %"$consume_269" = sub i64 %"$gasrem_265", %"$_literal_cost_call_264" + store i64 %"$consume_269", i64* @_gasrem, align 8 + %"$execptr_load_270" = load i8*, i8** @_execptr, align 8 + %"$e_271" = load i8*, i8** %e, align 8 + call void @_event(i8* %"$execptr_load_270", %_TyDescrTy_Typ* @"$TyDescr_Event_25", i8* %"$e_271"), !dbg !62 ret void } declare i8* @_new_bnum(i8*, %BNumString) -define void @cfdeploy(i8* %0) !dbg !26 { +define void @cfdeploy(i8* %0) !dbg !63 { entry: - %"$_amount_269" = getelementptr i8, i8* %0, i32 0 - %"$_amount_270" = bitcast i8* %"$_amount_269" to %Uint128* - %_amount = load %Uint128, %Uint128* %"$_amount_270", align 8 - %"$_origin_271" = getelementptr i8, i8* %0, i32 16 - %"$_origin_272" = bitcast i8* %"$_origin_271" to [20 x i8]* - %"$_sender_273" = getelementptr i8, i8* %0, i32 36 - %"$_sender_274" = bitcast i8* %"$_sender_273" to [20 x i8]* - %"$cfaddr_275" = getelementptr i8, i8* %0, i32 56 - %"$cfaddr_276" = bitcast i8* %"$cfaddr_275" to [20 x i8]* - call void @"$cfdeploy_137"(%Uint128 %_amount, [20 x i8]* %"$_origin_272", [20 x i8]* %"$_sender_274", [20 x i8]* %"$cfaddr_276"), !dbg !27 + %"$_amount_277" = getelementptr i8, i8* %0, i32 0 + %"$_amount_278" = bitcast i8* %"$_amount_277" to %Uint128* + %_amount = load %Uint128, %Uint128* %"$_amount_278", align 8 + %"$_origin_279" = getelementptr i8, i8* %0, i32 16 + %"$_origin_280" = bitcast i8* %"$_origin_279" to [20 x i8]* + %"$_sender_281" = getelementptr i8, i8* %0, i32 36 + %"$_sender_282" = bitcast i8* %"$_sender_281" to [20 x i8]* + %"$cfaddr_283" = getelementptr i8, i8* %0, i32 56 + %"$cfaddr_284" = bitcast i8* %"$cfaddr_283" to [20 x i8]* + call void @"$cfdeploy_141"(%Uint128 %_amount, [20 x i8]* %"$_origin_280", [20 x i8]* %"$_sender_282", [20 x i8]* %"$cfaddr_284"), !dbg !64 ret void } -define internal void @"$cfdeploy_incorrect_277"(%Uint128 %_amount, [20 x i8]* %"$_origin_278", [20 x i8]* %"$_sender_279", [20 x i8]* %"$cfaddr_280") !dbg !28 { +define internal void @"$cfdeploy_incorrect_285"(%Uint128 %_amount, [20 x i8]* %"$_origin_286", [20 x i8]* %"$_sender_287", [20 x i8]* %"$cfaddr_288") !dbg !65 { entry: - %_origin = load [20 x i8], [20 x i8]* %"$_origin_278", align 1 - %_sender = load [20 x i8], [20 x i8]* %"$_sender_279", align 1 - %cfaddr = load [20 x i8], [20 x i8]* %"$cfaddr_280", align 1 - %"$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 + %"$cfaddr_415" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$cfaddr_288", [20 x i8]** %"$cfaddr_415", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$cfaddr_415", metadata !66, metadata !DIExpression()), !dbg !67 + %"$_sender_414" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_sender_287", [20 x i8]** %"$_sender_414", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_sender_414", metadata !68, metadata !DIExpression()), !dbg !69 + %"$_origin_413" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_origin_286", [20 x i8]** %"$_origin_413", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_origin_413", metadata !70, metadata !DIExpression()), !dbg !69 + %"$_amount_412" = alloca %Uint128, align 8 + store %Uint128 %_amount, %Uint128* %"$_amount_412", align 8 + call void @llvm.dbg.declare(metadata %Uint128* %"$_amount_412", metadata !71, metadata !DIExpression()), !dbg !69 + %_origin = load [20 x i8], [20 x i8]* %"$_origin_286", align 1 + %_sender = load [20 x i8], [20 x i8]* %"$_sender_287", align 1 + %cfaddr = load [20 x i8], [20 x i8]* %"$cfaddr_288", align 1 + %"$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 = %entry + call void @_out_of_gas() + br label %"$have_gas_292" + +"$have_gas_292": ; preds = %"$out_of_gas_291", %entry + %"$consume_293" = sub i64 %"$gasrem_289", 1 + store i64 %"$consume_293", i64* @_gasrem, align 8 %owner = alloca [20 x i8], align 1 - %"$gasrem_286" = load i64, i64* @_gasrem, align 8 - %"$gascmp_287" = icmp ugt i64 1, %"$gasrem_286" - br i1 %"$gascmp_287", label %"$out_of_gas_288", label %"$have_gas_289" + call void @llvm.dbg.declare(metadata [20 x i8]* %owner, metadata !72, metadata !DIExpression()), !dbg !73 + %"$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_288": ; preds = %"$have_gas_284" +"$out_of_gas_296": ; preds = %"$have_gas_292" call void @_out_of_gas() - br label %"$have_gas_289" + br label %"$have_gas_297" -"$have_gas_289": ; preds = %"$out_of_gas_288", %"$have_gas_284" - %"$consume_290" = sub i64 %"$gasrem_286", 1 - store i64 %"$consume_290", i64* @_gasrem, align 8 - store [20 x i8] %_sender, [20 x i8]* %owner, align 1, !dbg !29 - %"$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" +"$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 + store [20 x i8] %_sender, [20 x i8]* %owner, align 1, !dbg !74 + %"$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_293": ; preds = %"$have_gas_289" +"$out_of_gas_301": ; preds = %"$have_gas_297" call void @_out_of_gas() - br label %"$have_gas_294" + br label %"$have_gas_302" -"$have_gas_294": ; preds = %"$out_of_gas_293", %"$have_gas_289" - %"$consume_295" = sub i64 %"$gasrem_291", 1 - store i64 %"$consume_295", i64* @_gasrem, align 8 +"$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 %max_block = alloca %Uint32, 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" + call void @llvm.dbg.declare(metadata %Uint32* %max_block, metadata !75, metadata !DIExpression()), !dbg !77 + %"$gasrem_304" = load i64, i64* @_gasrem, align 8 + %"$gascmp_305" = icmp ugt i64 1, %"$gasrem_304" + br i1 %"$gascmp_305", label %"$out_of_gas_306", label %"$have_gas_307" -"$out_of_gas_298": ; preds = %"$have_gas_294" +"$out_of_gas_306": ; preds = %"$have_gas_302" call void @_out_of_gas() - br label %"$have_gas_299" + br label %"$have_gas_307" -"$have_gas_299": ; preds = %"$out_of_gas_298", %"$have_gas_294" - %"$consume_300" = sub i64 %"$gasrem_296", 1 - store i64 %"$consume_300", i64* @_gasrem, align 8 - store %Uint32 { i32 100 }, %Uint32* %max_block, align 4, !dbg !30 - %"$gasrem_301" = load i64, i64* @_gasrem, align 8 - %"$gascmp_302" = icmp ugt i64 1, %"$gasrem_301" - br i1 %"$gascmp_302", label %"$out_of_gas_303", label %"$have_gas_304" +"$have_gas_307": ; preds = %"$out_of_gas_306", %"$have_gas_302" + %"$consume_308" = sub i64 %"$gasrem_304", 1 + store i64 %"$consume_308", i64* @_gasrem, align 8 + store %Uint32 { i32 100 }, %Uint32* %max_block, align 4, !dbg !78 + %"$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_303": ; preds = %"$have_gas_299" +"$out_of_gas_311": ; preds = %"$have_gas_307" call void @_out_of_gas() - br label %"$have_gas_304" + br label %"$have_gas_312" -"$have_gas_304": ; preds = %"$out_of_gas_303", %"$have_gas_299" - %"$consume_305" = sub i64 %"$gasrem_301", 1 - store i64 %"$consume_305", i64* @_gasrem, align 8 +"$have_gas_312": ; preds = %"$out_of_gas_311", %"$have_gas_307" + %"$consume_313" = sub i64 %"$gasrem_309", 1 + store i64 %"$consume_313", i64* @_gasrem, align 8 %goal = alloca %Uint128, 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" + call void @llvm.dbg.declare(metadata %Uint128* %goal, metadata !79, metadata !DIExpression()), !dbg !80 + %"$gasrem_314" = load i64, i64* @_gasrem, align 8 + %"$gascmp_315" = icmp ugt i64 1, %"$gasrem_314" + br i1 %"$gascmp_315", label %"$out_of_gas_316", label %"$have_gas_317" -"$out_of_gas_308": ; preds = %"$have_gas_304" +"$out_of_gas_316": ; preds = %"$have_gas_312" call void @_out_of_gas() - br label %"$have_gas_309" + br label %"$have_gas_317" -"$have_gas_309": ; preds = %"$out_of_gas_308", %"$have_gas_304" - %"$consume_310" = sub i64 %"$gasrem_306", 1 - store i64 %"$consume_310", i64* @_gasrem, align 8 - store %Uint128 { i128 1000 }, %Uint128* %goal, align 8, !dbg !31 - %"$gasrem_311" = load i64, i64* @_gasrem, align 8 - %"$gascmp_312" = icmp ugt i64 1, %"$gasrem_311" - br i1 %"$gascmp_312", label %"$out_of_gas_313", label %"$have_gas_314" +"$have_gas_317": ; preds = %"$out_of_gas_316", %"$have_gas_312" + %"$consume_318" = sub i64 %"$gasrem_314", 1 + store i64 %"$consume_318", i64* @_gasrem, align 8 + store %Uint128 { i128 1000 }, %Uint128* %goal, align 8, !dbg !81 + %"$gasrem_319" = load i64, i64* @_gasrem, align 8 + %"$gascmp_320" = icmp ugt i64 1, %"$gasrem_319" + br i1 %"$gascmp_320", label %"$out_of_gas_321", label %"$have_gas_322" -"$out_of_gas_313": ; preds = %"$have_gas_309" +"$out_of_gas_321": ; preds = %"$have_gas_317" call void @_out_of_gas() - br label %"$have_gas_314" + br label %"$have_gas_322" -"$have_gas_314": ; preds = %"$out_of_gas_313", %"$have_gas_309" - %"$consume_315" = sub i64 %"$gasrem_311", 1 - store i64 %"$consume_315", i64* @_gasrem, align 8 +"$have_gas_322": ; preds = %"$out_of_gas_321", %"$have_gas_317" + %"$consume_323" = sub i64 %"$gasrem_319", 1 + store i64 %"$consume_323", i64* @_gasrem, align 8 %m = alloca 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 = %"$have_gas_314" - call void @_out_of_gas() - br label %"$have_gas_319" - -"$have_gas_319": ; preds = %"$out_of_gas_318", %"$have_gas_314" - %"$consume_320" = sub i64 %"$gasrem_316", 1 - store i64 %"$consume_320", i64* @_gasrem, align 8 - %"$msgobj_321_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$msgobj_321_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_321_salloc_load", i64 153) - %"$msgobj_321_salloc" = bitcast i8* %"$msgobj_321_salloc_salloc" to [153 x i8]* - %"$msgobj_321" = bitcast [153 x i8]* %"$msgobj_321_salloc" to i8* - store i8 4, i8* %"$msgobj_321", align 1 - %"$msgobj_fname_323" = getelementptr i8, i8* %"$msgobj_321", i32 1 - %"$msgobj_fname_324" = bitcast i8* %"$msgobj_fname_323" to %String* - store %String { i8* getelementptr inbounds ([19 x i8], [19 x i8]* @"$stringlit_322", i32 0, i32 0), i32 19 }, %String* %"$msgobj_fname_324", align 8 - %"$msgobj_td_325" = getelementptr i8, i8* %"$msgobj_321", i32 17 - %"$msgobj_td_326" = bitcast i8* %"$msgobj_td_325" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_String_19", %_TyDescrTy_Typ** %"$msgobj_td_326", align 8 - %"$msgobj_v_328" = getelementptr i8, i8* %"$msgobj_321", i32 25 - %"$msgobj_v_329" = bitcast i8* %"$msgobj_v_328" to %String* - store %String { i8* getelementptr inbounds ([0 x i8], [0 x i8]* @"$stringlit_327", i32 0, i32 0), i32 0 }, %String* %"$msgobj_v_329", align 8 - %"$msgobj_fname_331" = getelementptr i8, i8* %"$msgobj_321", i32 41 + call void @llvm.dbg.declare(metadata i8** %m, metadata !82, metadata !DIExpression()), !dbg !83 + %"$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" + +"$out_of_gas_326": ; preds = %"$have_gas_322" + call void @_out_of_gas() + br label %"$have_gas_327" + +"$have_gas_327": ; preds = %"$out_of_gas_326", %"$have_gas_322" + %"$consume_328" = sub i64 %"$gasrem_324", 1 + store i64 %"$consume_328", i64* @_gasrem, align 8 + %"$msgobj_329_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$msgobj_329_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_329_salloc_load", i64 153) + %"$msgobj_329_salloc" = bitcast i8* %"$msgobj_329_salloc_salloc" to [153 x i8]* + %"$msgobj_329" = bitcast [153 x i8]* %"$msgobj_329_salloc" to i8* + store i8 4, i8* %"$msgobj_329", align 1 + %"$msgobj_fname_331" = getelementptr i8, i8* %"$msgobj_329", i32 1 %"$msgobj_fname_332" = bitcast i8* %"$msgobj_fname_331" to %String* - store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_330", i32 0, i32 0), i32 5 }, %String* %"$msgobj_fname_332", align 8 - %"$msgobj_td_333" = getelementptr i8, i8* %"$msgobj_321", i32 57 + store %String { i8* getelementptr inbounds ([19 x i8], [19 x i8]* @"$stringlit_330", i32 0, i32 0), i32 19 }, %String* %"$msgobj_fname_332", align 8 + %"$msgobj_td_333" = getelementptr i8, i8* %"$msgobj_329", i32 17 %"$msgobj_td_334" = bitcast i8* %"$msgobj_td_333" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_33", %_TyDescrTy_Typ** %"$msgobj_td_334", align 8 - %"$owner_335" = load [20 x i8], [20 x i8]* %owner, align 1 - %"$msgobj_v_336" = getelementptr i8, i8* %"$msgobj_321", i32 65 - %"$msgobj_v_337" = bitcast i8* %"$msgobj_v_336" to [20 x i8]* - store [20 x i8] %"$owner_335", [20 x i8]* %"$msgobj_v_337", align 1 - %"$msgobj_fname_339" = getelementptr i8, i8* %"$msgobj_321", i32 85 + store %_TyDescrTy_Typ* @"$TyDescr_String_19", %_TyDescrTy_Typ** %"$msgobj_td_334", align 8 + %"$msgobj_v_336" = getelementptr i8, i8* %"$msgobj_329", i32 25 + %"$msgobj_v_337" = bitcast i8* %"$msgobj_v_336" to %String* + store %String { i8* getelementptr inbounds ([0 x i8], [0 x i8]* @"$stringlit_335", i32 0, i32 0), i32 0 }, %String* %"$msgobj_v_337", align 8 + %"$msgobj_fname_339" = getelementptr i8, i8* %"$msgobj_329", i32 41 %"$msgobj_fname_340" = bitcast i8* %"$msgobj_fname_339" to %String* - store %String { i8* getelementptr inbounds ([9 x i8], [9 x i8]* @"$stringlit_338", i32 0, i32 0), i32 9 }, %String* %"$msgobj_fname_340", align 8 - %"$msgobj_td_341" = getelementptr i8, i8* %"$msgobj_321", i32 101 + store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_338", i32 0, i32 0), i32 5 }, %String* %"$msgobj_fname_340", align 8 + %"$msgobj_td_341" = getelementptr i8, i8* %"$msgobj_329", i32 57 %"$msgobj_td_342" = bitcast i8* %"$msgobj_td_341" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Uint32_5", %_TyDescrTy_Typ** %"$msgobj_td_342", align 8 - %"$max_block_343" = load %Uint32, %Uint32* %max_block, align 4 - %"$msgobj_v_344" = getelementptr i8, i8* %"$msgobj_321", i32 109 - %"$msgobj_v_345" = bitcast i8* %"$msgobj_v_344" to %Uint32* - store %Uint32 %"$max_block_343", %Uint32* %"$msgobj_v_345", align 4 - %"$msgobj_fname_347" = getelementptr i8, i8* %"$msgobj_321", i32 113 + store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_33", %_TyDescrTy_Typ** %"$msgobj_td_342", align 8 + %"$owner_343" = load [20 x i8], [20 x i8]* %owner, align 1 + %"$msgobj_v_344" = getelementptr i8, i8* %"$msgobj_329", i32 65 + %"$msgobj_v_345" = bitcast i8* %"$msgobj_v_344" to [20 x i8]* + store [20 x i8] %"$owner_343", [20 x i8]* %"$msgobj_v_345", align 1 + %"$msgobj_fname_347" = getelementptr i8, i8* %"$msgobj_329", i32 85 %"$msgobj_fname_348" = bitcast i8* %"$msgobj_fname_347" to %String* - store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_346", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_348", align 8 - %"$msgobj_td_349" = getelementptr i8, i8* %"$msgobj_321", i32 129 + store %String { i8* getelementptr inbounds ([9 x i8], [9 x i8]* @"$stringlit_346", i32 0, i32 0), i32 9 }, %String* %"$msgobj_fname_348", align 8 + %"$msgobj_td_349" = getelementptr i8, i8* %"$msgobj_329", i32 101 %"$msgobj_td_350" = bitcast i8* %"$msgobj_td_349" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Uint128_13", %_TyDescrTy_Typ** %"$msgobj_td_350", align 8 - %"$goal_351" = load %Uint128, %Uint128* %goal, align 8 - %"$msgobj_v_352" = getelementptr i8, i8* %"$msgobj_321", i32 137 - %"$msgobj_v_353" = bitcast i8* %"$msgobj_v_352" to %Uint128* - store %Uint128 %"$goal_351", %Uint128* %"$msgobj_v_353", align 8 - store i8* %"$msgobj_321", i8** %m, align 8, !dbg !32 - %"$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" - -"$out_of_gas_357": ; preds = %"$have_gas_319" - call void @_out_of_gas() - br label %"$have_gas_358" - -"$have_gas_358": ; preds = %"$out_of_gas_357", %"$have_gas_319" - %"$consume_359" = sub i64 %"$gasrem_355", 1 - store i64 %"$consume_359", i64* @_gasrem, align 8 + store %_TyDescrTy_Typ* @"$TyDescr_Uint32_5", %_TyDescrTy_Typ** %"$msgobj_td_350", align 8 + %"$max_block_351" = load %Uint32, %Uint32* %max_block, align 4 + %"$msgobj_v_352" = getelementptr i8, i8* %"$msgobj_329", i32 109 + %"$msgobj_v_353" = bitcast i8* %"$msgobj_v_352" to %Uint32* + store %Uint32 %"$max_block_351", %Uint32* %"$msgobj_v_353", align 4 + %"$msgobj_fname_355" = getelementptr i8, i8* %"$msgobj_329", i32 113 + %"$msgobj_fname_356" = bitcast i8* %"$msgobj_fname_355" to %String* + store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_354", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_356", align 8 + %"$msgobj_td_357" = getelementptr i8, i8* %"$msgobj_329", i32 129 + %"$msgobj_td_358" = bitcast i8* %"$msgobj_td_357" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Uint128_13", %_TyDescrTy_Typ** %"$msgobj_td_358", align 8 + %"$goal_359" = load %Uint128, %Uint128* %goal, align 8 + %"$msgobj_v_360" = getelementptr i8, i8* %"$msgobj_329", i32 137 + %"$msgobj_v_361" = bitcast i8* %"$msgobj_v_360" to %Uint128* + store %Uint128 %"$goal_359", %Uint128* %"$msgobj_v_361", align 8 + store i8* %"$msgobj_329", i8** %m, align 8, !dbg !84 + %"$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 = %"$have_gas_327" + call void @_out_of_gas() + br label %"$have_gas_366" + +"$have_gas_366": ; preds = %"$out_of_gas_365", %"$have_gas_327" + %"$consume_367" = sub i64 %"$gasrem_363", 1 + store i64 %"$consume_367", i64* @_gasrem, align 8 %newcf_addr = alloca [20 x i8], align 1 - %"$execptr_load_360" = load i8*, i8** @_execptr, align 8 - %"$newcf_addr_cfaddr_361" = alloca [20 x i8], align 1 - store [20 x i8] %cfaddr, [20 x i8]* %"$newcf_addr_cfaddr_361", align 1 - %"$m_362" = load i8*, i8** %m, align 8 - %"$newcf_addr_call_363" = call [20 x i8]* @_replicate_contract(i8* %"$execptr_load_360", [20 x i8]* %"$newcf_addr_cfaddr_361", %_TyDescrTy_Typ* @"$TyDescr_ReplicateContr_29", i8* %"$m_362"), !dbg !33 - %"$newcf_addr_365" = load [20 x i8], [20 x i8]* %"$newcf_addr_call_363", align 1 - store [20 x i8] %"$newcf_addr_365", [20 x i8]* %newcf_addr, align 1 - %"$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_358" - call void @_out_of_gas() - br label %"$have_gas_369" - -"$have_gas_369": ; preds = %"$out_of_gas_368", %"$have_gas_358" - %"$consume_370" = sub i64 %"$gasrem_366", 1 - store i64 %"$consume_370", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata [20 x i8]* %newcf_addr, metadata !85, metadata !DIExpression()), !dbg !86 + %"$execptr_load_368" = load i8*, i8** @_execptr, align 8 + %"$newcf_addr_cfaddr_369" = alloca [20 x i8], align 1 + store [20 x i8] %cfaddr, [20 x i8]* %"$newcf_addr_cfaddr_369", align 1 + %"$m_370" = load i8*, i8** %m, align 8 + %"$newcf_addr_call_371" = call [20 x i8]* @_replicate_contract(i8* %"$execptr_load_368", [20 x i8]* %"$newcf_addr_cfaddr_369", %_TyDescrTy_Typ* @"$TyDescr_ReplicateContr_29", i8* %"$m_370"), !dbg !86 + %"$newcf_addr_373" = load [20 x i8], [20 x i8]* %"$newcf_addr_call_371", align 1 + store [20 x i8] %"$newcf_addr_373", [20 x i8]* %newcf_addr, align 1 + %"$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_366" + call void @_out_of_gas() + br label %"$have_gas_377" + +"$have_gas_377": ; preds = %"$out_of_gas_376", %"$have_gas_366" + %"$consume_378" = sub i64 %"$gasrem_374", 1 + store i64 %"$consume_378", i64* @_gasrem, align 8 %e = alloca 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 = %"$have_gas_369" - call void @_out_of_gas() - br label %"$have_gas_374" - -"$have_gas_374": ; preds = %"$out_of_gas_373", %"$have_gas_369" - %"$consume_375" = sub i64 %"$gasrem_371", 1 - store i64 %"$consume_375", i64* @_gasrem, align 8 - %"$msgobj_376_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$msgobj_376_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_376_salloc_load", i64 85) - %"$msgobj_376_salloc" = bitcast i8* %"$msgobj_376_salloc_salloc" to [85 x i8]* - %"$msgobj_376" = bitcast [85 x i8]* %"$msgobj_376_salloc" to i8* - store i8 2, i8* %"$msgobj_376", align 1 - %"$msgobj_fname_378" = getelementptr i8, i8* %"$msgobj_376", i32 1 - %"$msgobj_fname_379" = bitcast i8* %"$msgobj_fname_378" to %String* - store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_377", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_379", align 8 - %"$msgobj_td_380" = getelementptr i8, i8* %"$msgobj_376", i32 17 - %"$msgobj_td_381" = bitcast i8* %"$msgobj_td_380" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_String_19", %_TyDescrTy_Typ** %"$msgobj_td_381", align 8 - %"$msgobj_v_383" = getelementptr i8, i8* %"$msgobj_376", i32 25 - %"$msgobj_v_384" = bitcast i8* %"$msgobj_v_383" to %String* - store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_382", i32 0, i32 0), i32 10 }, %String* %"$msgobj_v_384", align 8 - %"$msgobj_fname_386" = getelementptr i8, i8* %"$msgobj_376", i32 41 + call void @llvm.dbg.declare(metadata i8** %e, metadata !87, metadata !DIExpression()), !dbg !88 + %"$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 = %"$have_gas_377" + call void @_out_of_gas() + br label %"$have_gas_382" + +"$have_gas_382": ; preds = %"$out_of_gas_381", %"$have_gas_377" + %"$consume_383" = sub i64 %"$gasrem_379", 1 + store i64 %"$consume_383", i64* @_gasrem, align 8 + %"$msgobj_384_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$msgobj_384_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_384_salloc_load", i64 85) + %"$msgobj_384_salloc" = bitcast i8* %"$msgobj_384_salloc_salloc" to [85 x i8]* + %"$msgobj_384" = bitcast [85 x i8]* %"$msgobj_384_salloc" to i8* + store i8 2, i8* %"$msgobj_384", align 1 + %"$msgobj_fname_386" = getelementptr i8, i8* %"$msgobj_384", i32 1 %"$msgobj_fname_387" = bitcast i8* %"$msgobj_fname_386" to %String* - store %String { i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$stringlit_385", i32 0, i32 0), i32 8 }, %String* %"$msgobj_fname_387", align 8 - %"$msgobj_td_388" = getelementptr i8, i8* %"$msgobj_376", i32 57 + store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_385", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_387", align 8 + %"$msgobj_td_388" = getelementptr i8, i8* %"$msgobj_384", i32 17 %"$msgobj_td_389" = bitcast i8* %"$msgobj_td_388" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_33", %_TyDescrTy_Typ** %"$msgobj_td_389", align 8 - %"$newcf_addr_390" = load [20 x i8], [20 x i8]* %newcf_addr, align 1 - %"$msgobj_v_391" = getelementptr i8, i8* %"$msgobj_376", i32 65 - %"$msgobj_v_392" = bitcast i8* %"$msgobj_v_391" to [20 x i8]* - store [20 x i8] %"$newcf_addr_390", [20 x i8]* %"$msgobj_v_392", align 1 - store i8* %"$msgobj_376", i8** %e, align 8, !dbg !34 - %"$e_394" = load i8*, i8** %e, align 8 - %"$_literal_cost_call_396" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Event_25", i8* %"$e_394") - %"$gasrem_397" = load i64, i64* @_gasrem, align 8 - %"$gascmp_398" = icmp ugt i64 %"$_literal_cost_call_396", %"$gasrem_397" - br i1 %"$gascmp_398", label %"$out_of_gas_399", label %"$have_gas_400" - -"$out_of_gas_399": ; preds = %"$have_gas_374" - call void @_out_of_gas() - br label %"$have_gas_400" - -"$have_gas_400": ; preds = %"$out_of_gas_399", %"$have_gas_374" - %"$consume_401" = sub i64 %"$gasrem_397", %"$_literal_cost_call_396" - store i64 %"$consume_401", i64* @_gasrem, align 8 - %"$execptr_load_402" = load i8*, i8** @_execptr, align 8 - %"$e_403" = load i8*, i8** %e, align 8 - call void @_event(i8* %"$execptr_load_402", %_TyDescrTy_Typ* @"$TyDescr_Event_25", i8* %"$e_403"), !dbg !35 + store %_TyDescrTy_Typ* @"$TyDescr_String_19", %_TyDescrTy_Typ** %"$msgobj_td_389", align 8 + %"$msgobj_v_391" = getelementptr i8, i8* %"$msgobj_384", i32 25 + %"$msgobj_v_392" = bitcast i8* %"$msgobj_v_391" to %String* + store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_390", i32 0, i32 0), i32 10 }, %String* %"$msgobj_v_392", align 8 + %"$msgobj_fname_394" = getelementptr i8, i8* %"$msgobj_384", i32 41 + %"$msgobj_fname_395" = bitcast i8* %"$msgobj_fname_394" to %String* + store %String { i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$stringlit_393", i32 0, i32 0), i32 8 }, %String* %"$msgobj_fname_395", align 8 + %"$msgobj_td_396" = getelementptr i8, i8* %"$msgobj_384", i32 57 + %"$msgobj_td_397" = bitcast i8* %"$msgobj_td_396" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_33", %_TyDescrTy_Typ** %"$msgobj_td_397", align 8 + %"$newcf_addr_398" = load [20 x i8], [20 x i8]* %newcf_addr, align 1 + %"$msgobj_v_399" = getelementptr i8, i8* %"$msgobj_384", i32 65 + %"$msgobj_v_400" = bitcast i8* %"$msgobj_v_399" to [20 x i8]* + store [20 x i8] %"$newcf_addr_398", [20 x i8]* %"$msgobj_v_400", align 1 + store i8* %"$msgobj_384", i8** %e, align 8, !dbg !89 + %"$e_402" = load i8*, i8** %e, align 8 + %"$_literal_cost_call_404" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Event_25", i8* %"$e_402") + %"$gasrem_405" = load i64, i64* @_gasrem, align 8 + %"$gascmp_406" = icmp ugt i64 %"$_literal_cost_call_404", %"$gasrem_405" + br i1 %"$gascmp_406", label %"$out_of_gas_407", label %"$have_gas_408" + +"$out_of_gas_407": ; preds = %"$have_gas_382" + call void @_out_of_gas() + br label %"$have_gas_408" + +"$have_gas_408": ; preds = %"$out_of_gas_407", %"$have_gas_382" + %"$consume_409" = sub i64 %"$gasrem_405", %"$_literal_cost_call_404" + store i64 %"$consume_409", i64* @_gasrem, align 8 + %"$execptr_load_410" = load i8*, i8** @_execptr, align 8 + %"$e_411" = load i8*, i8** %e, align 8 + call void @_event(i8* %"$execptr_load_410", %_TyDescrTy_Typ* @"$TyDescr_Event_25", i8* %"$e_411"), !dbg !90 ret void } -define void @cfdeploy_incorrect(i8* %0) !dbg !36 { +define void @cfdeploy_incorrect(i8* %0) !dbg !91 { entry: - %"$_amount_405" = getelementptr i8, i8* %0, i32 0 - %"$_amount_406" = bitcast i8* %"$_amount_405" to %Uint128* - %_amount = load %Uint128, %Uint128* %"$_amount_406", align 8 - %"$_origin_407" = getelementptr i8, i8* %0, i32 16 - %"$_origin_408" = bitcast i8* %"$_origin_407" to [20 x i8]* - %"$_sender_409" = getelementptr i8, i8* %0, i32 36 - %"$_sender_410" = bitcast i8* %"$_sender_409" to [20 x i8]* - %"$cfaddr_411" = getelementptr i8, i8* %0, i32 56 - %"$cfaddr_412" = bitcast i8* %"$cfaddr_411" to [20 x i8]* - call void @"$cfdeploy_incorrect_277"(%Uint128 %_amount, [20 x i8]* %"$_origin_408", [20 x i8]* %"$_sender_410", [20 x i8]* %"$cfaddr_412"), !dbg !37 + %"$_amount_417" = getelementptr i8, i8* %0, i32 0 + %"$_amount_418" = bitcast i8* %"$_amount_417" to %Uint128* + %_amount = load %Uint128, %Uint128* %"$_amount_418", align 8 + %"$_origin_419" = getelementptr i8, i8* %0, i32 16 + %"$_origin_420" = bitcast i8* %"$_origin_419" to [20 x i8]* + %"$_sender_421" = getelementptr i8, i8* %0, i32 36 + %"$_sender_422" = bitcast i8* %"$_sender_421" to [20 x i8]* + %"$cfaddr_423" = getelementptr i8, i8* %0, i32 56 + %"$cfaddr_424" = bitcast i8* %"$cfaddr_423" to [20 x i8]* + call void @"$cfdeploy_incorrect_285"(%Uint128 %_amount, [20 x i8]* %"$_origin_420", [20 x i8]* %"$_sender_422", [20 x i8]* %"$cfaddr_424"), !dbg !92 ret void } +attributes #0 = { nocallback nofree nosync nounwind readnone speculatable willreturn } + !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) +!1 = distinct !DICompileUnit(language: DW_LANG_C89, file: !2, producer: "Scilla Compiler", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false) !2 = !DIFile(filename: "replicate.scilla", directory: "codegen/contr") -!3 = !{} -!4 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !5, file: !5, type: !6, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!5 = !DIFile(filename: ".", directory: ".") -!6 = !DISubroutineType(types: !7) -!7 = !{!8} -!8 = !DIBasicType(tag: DW_TAG_unspecified_type, name: "void") -!9 = !DILocation(line: 0, scope: !4) -!10 = distinct !DISubprogram(name: "_deploy_ops", linkageName: "_deploy_ops", scope: !5, file: !5, type: !6, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!11 = distinct !DISubprogram(name: "rep", linkageName: "rep", scope: !2, file: !2, line: 5, type: !6, scopeLine: 5, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!12 = !DILocation(line: 6, column: 9, scope: !11) -!13 = !DILocation(line: 7, column: 3, scope: !11) -!14 = !DILocation(line: 8, column: 7, scope: !11) -!15 = !DILocation(line: 9, column: 3, scope: !11) -!16 = distinct !DISubprogram(name: "rep", linkageName: "rep", scope: !2, file: !2, line: 5, type: !6, scopeLine: 5, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!17 = !DILocation(line: 5, column: 12, scope: !16) -!18 = distinct !DISubprogram(name: "cfdeploy", linkageName: "cfdeploy", scope: !2, file: !2, line: 12, type: !6, scopeLine: 12, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!19 = !DILocation(line: 13, column: 11, scope: !18) -!20 = !DILocation(line: 14, column: 15, scope: !18) -!21 = !DILocation(line: 15, column: 10, scope: !18) -!22 = !DILocation(line: 16, column: 7, scope: !18) -!23 = !DILocation(line: 17, column: 3, scope: !18) -!24 = !DILocation(line: 18, column: 7, scope: !18) -!25 = !DILocation(line: 19, column: 3, scope: !18) -!26 = distinct !DISubprogram(name: "cfdeploy", linkageName: "cfdeploy", scope: !2, file: !2, line: 12, type: !6, scopeLine: 12, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!27 = !DILocation(line: 12, column: 12, scope: !26) -!28 = distinct !DISubprogram(name: "cfdeploy_incorrect", linkageName: "cfdeploy_incorrect", scope: !2, file: !2, line: 22, type: !6, scopeLine: 22, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!29 = !DILocation(line: 23, column: 11, scope: !28) -!30 = !DILocation(line: 25, column: 15, scope: !28) -!31 = !DILocation(line: 26, column: 10, scope: !28) -!32 = !DILocation(line: 27, column: 7, scope: !28) -!33 = !DILocation(line: 28, column: 3, scope: !28) -!34 = !DILocation(line: 29, column: 7, scope: !28) -!35 = !DILocation(line: 30, column: 3, scope: !28) -!36 = distinct !DISubprogram(name: "cfdeploy_incorrect", linkageName: "cfdeploy_incorrect", scope: !2, file: !2, line: 22, type: !6, scopeLine: 22, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!37 = !DILocation(line: 22, column: 12, scope: !36) +!3 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !4, file: !4, type: !5, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!4 = !DIFile(filename: ".", directory: ".") +!5 = !DISubroutineType(types: !6) +!6 = !{!7} +!7 = !DIBasicType(tag: DW_TAG_unspecified_type, name: "void") +!8 = !{} +!9 = !DILocation(line: 0, scope: !3) +!10 = distinct !DISubprogram(name: "_deploy_ops", linkageName: "_deploy_ops", scope: !4, file: !4, type: !5, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!11 = distinct !DISubprogram(name: "rep", linkageName: "rep", scope: !2, file: !2, line: 5, type: !5, scopeLine: 5, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!12 = !DILocalVariable(name: "bar", scope: !11, file: !2, line: 5, type: !13) +!13 = !DIBasicType(name: "ByStr20 with contract end", size: 20) +!14 = !DILocation(line: 5, column: 17, scope: !11) +!15 = !DILocalVariable(name: "_sender", scope: !11, file: !2, line: 5, type: !16) +!16 = !DIBasicType(name: "ByStr20 with end", size: 20) +!17 = !DILocation(line: 5, column: 12, scope: !11) +!18 = !DILocalVariable(name: "_origin", scope: !11, file: !2, line: 5, type: !16) +!19 = !DILocalVariable(name: "_amount", scope: !11, file: !2, line: 5, type: !20) +!20 = !DIBasicType(name: "Uint128", size: 16) +!21 = !DILocalVariable(name: "foo", scope: !11, file: !2, line: 6, type: !22) +!22 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "ReplicateContr", baseType: !23, size: 8, align: 8, dwarfAddressSpace: 0) +!23 = !DIBasicType(name: "ReplicateContr", size: 8) +!24 = !DILocation(line: 6, column: 3, scope: !11) +!25 = !DILocation(line: 6, column: 9, scope: !11) +!26 = !DILocalVariable(name: "foo_addr", scope: !11, file: !2, line: 7, type: !13) +!27 = !DILocation(line: 7, column: 3, scope: !11) +!28 = !DILocalVariable(name: "e", scope: !11, file: !2, line: 8, type: !29) +!29 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "Event", baseType: !30, size: 8, align: 8, dwarfAddressSpace: 0) +!30 = !DIBasicType(name: "Event", size: 8) +!31 = !DILocation(line: 8, column: 3, scope: !11) +!32 = !DILocation(line: 8, column: 7, scope: !11) +!33 = !DILocation(line: 9, column: 3, scope: !11) +!34 = distinct !DISubprogram(name: "rep", linkageName: "rep", scope: !2, file: !2, line: 5, type: !5, scopeLine: 5, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!35 = !DILocation(line: 5, column: 12, scope: !34) +!36 = distinct !DISubprogram(name: "cfdeploy", linkageName: "cfdeploy", scope: !2, file: !2, line: 12, type: !5, scopeLine: 12, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!37 = !DILocalVariable(name: "cfaddr", scope: !36, file: !2, line: 12, type: !13) +!38 = !DILocation(line: 12, column: 22, scope: !36) +!39 = !DILocalVariable(name: "_sender", scope: !36, file: !2, line: 12, type: !16) +!40 = !DILocation(line: 12, column: 12, scope: !36) +!41 = !DILocalVariable(name: "_origin", scope: !36, file: !2, line: 12, type: !16) +!42 = !DILocalVariable(name: "_amount", scope: !36, file: !2, line: 12, type: !20) +!43 = !DILocalVariable(name: "owner", scope: !36, file: !2, line: 13, type: !16) +!44 = !DILocation(line: 13, column: 3, scope: !36) +!45 = !DILocation(line: 13, column: 11, scope: !36) +!46 = !DILocalVariable(name: "max_block", scope: !36, file: !2, line: 14, type: !47) +!47 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "BNum", baseType: !48, size: 8, align: 8, dwarfAddressSpace: 0) +!48 = !DIBasicType(name: "BNum", size: 8) +!49 = !DILocation(line: 14, column: 3, scope: !36) +!50 = !DILocation(line: 14, column: 15, scope: !36) +!51 = !DILocalVariable(name: "goal", scope: !36, file: !2, line: 15, type: !20) +!52 = !DILocation(line: 15, column: 3, scope: !36) +!53 = !DILocation(line: 15, column: 10, scope: !36) +!54 = !DILocalVariable(name: "m", scope: !36, file: !2, line: 16, type: !22) +!55 = !DILocation(line: 16, column: 3, scope: !36) +!56 = !DILocation(line: 16, column: 7, scope: !36) +!57 = !DILocalVariable(name: "newcf_addr", scope: !36, file: !2, line: 17, type: !13) +!58 = !DILocation(line: 17, column: 3, scope: !36) +!59 = !DILocalVariable(name: "e", scope: !36, file: !2, line: 18, type: !29) +!60 = !DILocation(line: 18, column: 3, scope: !36) +!61 = !DILocation(line: 18, column: 7, scope: !36) +!62 = !DILocation(line: 19, column: 3, scope: !36) +!63 = distinct !DISubprogram(name: "cfdeploy", linkageName: "cfdeploy", scope: !2, file: !2, line: 12, type: !5, scopeLine: 12, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!64 = !DILocation(line: 12, column: 12, scope: !63) +!65 = distinct !DISubprogram(name: "cfdeploy_incorrect", linkageName: "cfdeploy_incorrect", scope: !2, file: !2, line: 22, type: !5, scopeLine: 22, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!66 = !DILocalVariable(name: "cfaddr", scope: !65, file: !2, line: 22, type: !13) +!67 = !DILocation(line: 22, column: 32, scope: !65) +!68 = !DILocalVariable(name: "_sender", scope: !65, file: !2, line: 22, type: !16) +!69 = !DILocation(line: 22, column: 12, scope: !65) +!70 = !DILocalVariable(name: "_origin", scope: !65, file: !2, line: 22, type: !16) +!71 = !DILocalVariable(name: "_amount", scope: !65, file: !2, line: 22, type: !20) +!72 = !DILocalVariable(name: "owner", scope: !65, file: !2, line: 23, type: !16) +!73 = !DILocation(line: 23, column: 3, scope: !65) +!74 = !DILocation(line: 23, column: 11, scope: !65) +!75 = !DILocalVariable(name: "max_block", scope: !65, file: !2, line: 25, type: !76) +!76 = !DIBasicType(name: "Uint32", size: 4) +!77 = !DILocation(line: 25, column: 3, scope: !65) +!78 = !DILocation(line: 25, column: 15, scope: !65) +!79 = !DILocalVariable(name: "goal", scope: !65, file: !2, line: 26, type: !20) +!80 = !DILocation(line: 26, column: 3, scope: !65) +!81 = !DILocation(line: 26, column: 10, scope: !65) +!82 = !DILocalVariable(name: "m", scope: !65, file: !2, line: 27, type: !22) +!83 = !DILocation(line: 27, column: 3, scope: !65) +!84 = !DILocation(line: 27, column: 7, scope: !65) +!85 = !DILocalVariable(name: "newcf_addr", scope: !65, file: !2, line: 28, type: !13) +!86 = !DILocation(line: 28, column: 3, scope: !65) +!87 = !DILocalVariable(name: "e", scope: !65, file: !2, line: 29, type: !29) +!88 = !DILocation(line: 29, column: 3, scope: !65) +!89 = !DILocation(line: 29, column: 7, scope: !65) +!90 = !DILocation(line: 30, column: 3, scope: !65) +!91 = distinct !DISubprogram(name: "cfdeploy_incorrect", linkageName: "cfdeploy_incorrect", scope: !2, file: !2, line: 22, type: !5, scopeLine: 22, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!92 = !DILocation(line: 22, column: 12, scope: !91) diff --git a/testsuite/contr/replicate.ll b/testsuite/contr/replicate.ll index 3d946c87..44f9c6b0 100644 --- a/testsuite/contr/replicate.ll +++ b/testsuite/contr/replicate.ll @@ -4,7 +4,7 @@ ; ModuleID = 'Foo' source_filename = "Foo" target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-pc-linux-gnu" +target triple = "x86_64-unknown-linux-gnu" %"$TyDescrTy_PrimTyp_1" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/testsuite/contr/send.dbg.ll b/testsuite/contr/send.dbg.ll index 417fc548..ef34dd7d 100644 --- a/testsuite/contr/send.dbg.ll +++ b/testsuite/contr/send.dbg.ll @@ -4,7 +4,7 @@ ; 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-pc-linux-gnu" +target triple = "x86_64-unknown-linux-gnu" %"$TyDescrTy_PrimTyp_5" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } @@ -19,9 +19,9 @@ target triple = "x86_64-pc-linux-gnu" %CName_Cons_Message = type <{ i8, i8*, %TName_List_Message* }> %CName_Nil_Message = type <{ i8 }> %Uint32 = type { i32 } -%"$ParamDescr_294" = type { %ParamDescrString, %_TyDescrTy_Typ* } +%"$ParamDescr_301" = type { %ParamDescrString, %_TyDescrTy_Typ* } %ParamDescrString = type { i8*, i32 } -%"$TransDescr_295" = type { %ParamDescrString, i32, %"$ParamDescr_294"* } +%"$TransDescr_302" = type { %ParamDescrString, i32, %"$ParamDescr_301"* } %"$$fundef_3_env_59" = type {} %Uint128 = type { i128 } %String = type { i8*, i32 } @@ -80,41 +80,45 @@ target triple = "x86_64-pc-linux-gnu" @_cparam__scilla_version = global %Uint32 zeroinitializer @_cparam__this_address = global [20 x i8] zeroinitializer @_cparam__creation_block = global i8* null -@"$stringlit_117" = unnamed_addr constant [4 x i8] c"_tag" -@"$stringlit_122" = unnamed_addr constant [0 x i8] zeroinitializer -@"$stringlit_125" = unnamed_addr constant [10 x i8] c"_recipient" -@"$stringlit_132" = unnamed_addr constant [7 x i8] c"_amount" -@"$stringlit_187" = unnamed_addr constant [4 x i8] c"_tag" -@"$stringlit_192" = unnamed_addr constant [0 x i8] zeroinitializer -@"$stringlit_195" = unnamed_addr constant [10 x i8] c"_recipient" -@"$stringlit_202" = unnamed_addr constant [7 x i8] c"_amount" -@"$stringlit_221" = unnamed_addr constant [4 x i8] c"_tag" -@"$stringlit_226" = unnamed_addr constant [3 x i8] c"foo" -@"$stringlit_229" = unnamed_addr constant [10 x i8] c"_recipient" -@"$stringlit_236" = unnamed_addr constant [7 x i8] c"_amount" +@"$stringlit_118" = unnamed_addr constant [4 x i8] c"_tag" +@"$stringlit_123" = unnamed_addr constant [0 x i8] zeroinitializer +@"$stringlit_126" = unnamed_addr constant [10 x i8] c"_recipient" +@"$stringlit_133" = unnamed_addr constant [7 x i8] c"_amount" +@"$stringlit_191" = unnamed_addr constant [4 x i8] c"_tag" +@"$stringlit_196" = unnamed_addr constant [0 x i8] zeroinitializer +@"$stringlit_199" = unnamed_addr constant [10 x i8] c"_recipient" +@"$stringlit_206" = unnamed_addr constant [7 x i8] c"_amount" +@"$stringlit_225" = unnamed_addr constant [4 x i8] c"_tag" +@"$stringlit_230" = unnamed_addr constant [3 x i8] c"foo" +@"$stringlit_233" = unnamed_addr constant [10 x i8] c"_recipient" +@"$stringlit_240" = unnamed_addr constant [7 x i8] c"_amount" @_tydescr_table = constant [18 x %_TyDescrTy_Typ*] [%_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_41", %_TyDescrTy_Typ* @"$TyDescr_Event_29", %_TyDescrTy_Typ* @"$TyDescr_Int64_11", %_TyDescrTy_Typ* @"$TyDescr_Addr_45", %_TyDescrTy_Typ* @"$TyDescr_Bystr20_37", %_TyDescrTy_Typ* @"$TyDescr_Uint256_21", %_TyDescrTy_Typ* @"$TyDescr_Uint32_9", %_TyDescrTy_Typ* @"$TyDescr_Uint64_13", %_TyDescrTy_Typ* @"$TyDescr_Bnum_25", %_TyDescrTy_Typ* @"$TyDescr_Uint128_17", %_TyDescrTy_Typ* @"$TyDescr_Exception_31", %_TyDescrTy_Typ* @"$TyDescr_String_23", %_TyDescrTy_Typ* @"$TyDescr_Int256_19", %_TyDescrTy_Typ* @"$TyDescr_Int128_15", %_TyDescrTy_Typ* @"$TyDescr_Bystr_35", %_TyDescrTy_Typ* @"$TyDescr_ReplicateContr_33", %_TyDescrTy_Typ* @"$TyDescr_Message_27", %_TyDescrTy_Typ* @"$TyDescr_Int32_7"] @_tydescr_table_length = constant i32 18 -@"$pname__scilla_version_296" = unnamed_addr constant [15 x i8] c"_scilla_version" -@"$pname__this_address_297" = unnamed_addr constant [13 x i8] c"_this_address" -@"$pname__creation_block_298" = unnamed_addr constant [15 x i8] c"_creation_block" -@_contract_parameters = constant [3 x %"$ParamDescr_294"] [%"$ParamDescr_294" { %ParamDescrString { i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$pname__scilla_version_296", i32 0, i32 0), i32 15 }, %_TyDescrTy_Typ* @"$TyDescr_Uint32_9" }, %"$ParamDescr_294" { %ParamDescrString { i8* getelementptr inbounds ([13 x i8], [13 x i8]* @"$pname__this_address_297", i32 0, i32 0), i32 13 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr20_37" }, %"$ParamDescr_294" { %ParamDescrString { i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$pname__creation_block_298", i32 0, i32 0), i32 15 }, %_TyDescrTy_Typ* @"$TyDescr_Bnum_25" }] +@"$pname__scilla_version_303" = unnamed_addr constant [15 x i8] c"_scilla_version" +@"$pname__this_address_304" = unnamed_addr constant [13 x i8] c"_this_address" +@"$pname__creation_block_305" = unnamed_addr constant [15 x i8] c"_creation_block" +@_contract_parameters = constant [3 x %"$ParamDescr_301"] [%"$ParamDescr_301" { %ParamDescrString { i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$pname__scilla_version_303", i32 0, i32 0), i32 15 }, %_TyDescrTy_Typ* @"$TyDescr_Uint32_9" }, %"$ParamDescr_301" { %ParamDescrString { i8* getelementptr inbounds ([13 x i8], [13 x i8]* @"$pname__this_address_304", i32 0, i32 0), i32 13 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr20_37" }, %"$ParamDescr_301" { %ParamDescrString { i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$pname__creation_block_305", i32 0, i32 0), i32 15 }, %_TyDescrTy_Typ* @"$TyDescr_Bnum_25" }] @_contract_parameters_length = constant i32 3 -@"$tpname__amount_299" = unnamed_addr constant [7 x i8] c"_amount" -@"$tpname__origin_300" = unnamed_addr constant [7 x i8] c"_origin" -@"$tpname__sender_301" = unnamed_addr constant [7 x i8] c"_sender" -@"$tparams_SendMsg_302" = unnamed_addr constant [3 x %"$ParamDescr_294"] [%"$ParamDescr_294" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_299", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_17" }, %"$ParamDescr_294" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_300", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_45" }, %"$ParamDescr_294" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_301", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_45" }] -@"$tname_SendMsg_303" = unnamed_addr constant [7 x i8] c"SendMsg" -@"$tpname__amount_304" = unnamed_addr constant [7 x i8] c"_amount" -@"$tpname__origin_305" = unnamed_addr constant [7 x i8] c"_origin" -@"$tpname__sender_306" = unnamed_addr constant [7 x i8] c"_sender" -@"$tparams_SendMsg2_307" = unnamed_addr constant [3 x %"$ParamDescr_294"] [%"$ParamDescr_294" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_304", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_17" }, %"$ParamDescr_294" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_305", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_45" }, %"$ParamDescr_294" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_306", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_45" }] -@"$tname_SendMsg2_308" = unnamed_addr constant [8 x i8] c"SendMsg2" -@_transition_parameters = constant [2 x %"$TransDescr_295"] [%"$TransDescr_295" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tname_SendMsg_303", i32 0, i32 0), i32 7 }, i32 3, %"$ParamDescr_294"* getelementptr inbounds ([3 x %"$ParamDescr_294"], [3 x %"$ParamDescr_294"]* @"$tparams_SendMsg_302", i32 0, i32 0) }, %"$TransDescr_295" { %ParamDescrString { i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$tname_SendMsg2_308", i32 0, i32 0), i32 8 }, i32 3, %"$ParamDescr_294"* getelementptr inbounds ([3 x %"$ParamDescr_294"], [3 x %"$ParamDescr_294"]* @"$tparams_SendMsg2_307", i32 0, i32 0) }] +@"$tpname__amount_306" = unnamed_addr constant [7 x i8] c"_amount" +@"$tpname__origin_307" = unnamed_addr constant [7 x i8] c"_origin" +@"$tpname__sender_308" = unnamed_addr constant [7 x i8] c"_sender" +@"$tparams_SendMsg_309" = unnamed_addr constant [3 x %"$ParamDescr_301"] [%"$ParamDescr_301" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_306", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_17" }, %"$ParamDescr_301" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_307", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_45" }, %"$ParamDescr_301" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_308", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_45" }] +@"$tname_SendMsg_310" = unnamed_addr constant [7 x i8] c"SendMsg" +@"$tpname__amount_311" = unnamed_addr constant [7 x i8] c"_amount" +@"$tpname__origin_312" = unnamed_addr constant [7 x i8] c"_origin" +@"$tpname__sender_313" = unnamed_addr constant [7 x i8] c"_sender" +@"$tparams_SendMsg2_314" = unnamed_addr constant [3 x %"$ParamDescr_301"] [%"$ParamDescr_301" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_311", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_17" }, %"$ParamDescr_301" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_312", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_45" }, %"$ParamDescr_301" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_313", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_45" }] +@"$tname_SendMsg2_315" = unnamed_addr constant [8 x i8] c"SendMsg2" +@_transition_parameters = constant [2 x %"$TransDescr_302"] [%"$TransDescr_302" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tname_SendMsg_310", i32 0, i32 0), i32 7 }, i32 3, %"$ParamDescr_301"* getelementptr inbounds ([3 x %"$ParamDescr_301"], [3 x %"$ParamDescr_301"]* @"$tparams_SendMsg_309", i32 0, i32 0) }, %"$TransDescr_302" { %ParamDescrString { i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$tname_SendMsg2_315", i32 0, i32 0), i32 8 }, i32 3, %"$ParamDescr_301"* getelementptr inbounds ([3 x %"$ParamDescr_301"], [3 x %"$ParamDescr_301"]* @"$tparams_SendMsg2_314", i32 0, i32 0) }] @_transition_parameters_length = constant i32 2 -define internal %TName_List_Message* @"$fundef_3"(%"$$fundef_3_env_59"* %0, i8* %1) !dbg !4 { +define internal %TName_List_Message* @"$fundef_3"(%"$$fundef_3_env_59"* %0, i8* %1) !dbg !3 { entry: + %"$msg_85" = alloca i8*, align 8 + store i8* %1, i8** %"$msg_85", align 8 + call void @llvm.dbg.declare(metadata i8** %"$msg_85", metadata !8, metadata !DIExpression()), !dbg !11 %"$retval_4" = alloca %TName_List_Message*, align 8 + call void @llvm.dbg.declare(metadata %TName_List_Message** %"$retval_4", metadata !12, metadata !DIExpression()), !dbg !15 %"$gasrem_60" = load i64, i64* @_gasrem, align 8 %"$gascmp_61" = icmp ugt i64 1, %"$gasrem_60" br i1 %"$gascmp_61", label %"$out_of_gas_62", label %"$have_gas_63" @@ -127,6 +131,7 @@ entry: %"$consume_64" = sub i64 %"$gasrem_60", 1 store i64 %"$consume_64", i64* @_gasrem, align 8 %nil_msg = alloca %TName_List_Message*, align 8 + call void @llvm.dbg.declare(metadata %TName_List_Message** %nil_msg, metadata !16, metadata !DIExpression()), !dbg !17 %"$gasrem_65" = load i64, i64* @_gasrem, align 8 %"$gascmp_66" = icmp ugt i64 1, %"$gasrem_65" br i1 %"$gascmp_66", label %"$out_of_gas_67", label %"$have_gas_68" @@ -144,7 +149,7 @@ entry: %"$adtgep_71" = getelementptr inbounds %CName_Nil_Message, %CName_Nil_Message* %"$adtval_70", i32 0, i32 0 store i8 1, i8* %"$adtgep_71", align 1 %"$adtptr_72" = bitcast %CName_Nil_Message* %"$adtval_70" to %TName_List_Message* - store %TName_List_Message* %"$adtptr_72", %TName_List_Message** %nil_msg, align 8, !dbg !8 + store %TName_List_Message* %"$adtptr_72", %TName_List_Message** %nil_msg, align 8, !dbg !18 %"$gasrem_73" = load i64, i64* @_gasrem, align 8 %"$gascmp_74" = icmp ugt i64 1, %"$gasrem_73" br i1 %"$gascmp_74", label %"$out_of_gas_75", label %"$have_gas_76" @@ -167,169 +172,184 @@ entry: %"$adtgep_82" = getelementptr inbounds %CName_Cons_Message, %CName_Cons_Message* %"$adtval_79", i32 0, i32 2 store %TName_List_Message* %"$nil_msg_78", %TName_List_Message** %"$adtgep_82", align 8 %"$adtptr_83" = bitcast %CName_Cons_Message* %"$adtval_79" to %TName_List_Message* - store %TName_List_Message* %"$adtptr_83", %TName_List_Message** %"$retval_4", align 8, !dbg !9 + store %TName_List_Message* %"$adtptr_83", %TName_List_Message** %"$retval_4", align 8, !dbg !19 %"$$retval_4_84" = load %TName_List_Message*, %TName_List_Message** %"$retval_4", align 8 ret %TName_List_Message* %"$$retval_4_84" } +; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn +declare void @llvm.dbg.declare(metadata, metadata, metadata) #0 + declare void @_out_of_gas() declare i8* @_salloc(i8*, i64) -define void @_init_libs() !dbg !10 { +define void @_init_libs() !dbg !20 { entry: - %"$gasrem_85" = load i64, i64* @_gasrem, align 8 - %"$gascmp_86" = icmp ugt i64 5, %"$gasrem_85" - br i1 %"$gascmp_86", label %"$out_of_gas_87", label %"$have_gas_88" + %"$gasrem_86" = load i64, i64* @_gasrem, align 8 + %"$gascmp_87" = icmp ugt i64 5, %"$gasrem_86" + br i1 %"$gascmp_87", label %"$out_of_gas_88", label %"$have_gas_89" -"$out_of_gas_87": ; preds = %entry +"$out_of_gas_88": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_88" + br label %"$have_gas_89" -"$have_gas_88": ; preds = %"$out_of_gas_87", %entry - %"$consume_89" = sub i64 %"$gasrem_85", 5 - store i64 %"$consume_89", i64* @_gasrem, align 8 - store %Int32 { i32 5 }, %Int32* @"$_gas_charge_acc_0", align 4, !dbg !12 - %"$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" +"$have_gas_89": ; preds = %"$out_of_gas_88", %entry + %"$consume_90" = sub i64 %"$gasrem_86", 5 + store i64 %"$consume_90", i64* @_gasrem, align 8 + store %Int32 { i32 5 }, %Int32* @"$_gas_charge_acc_0", align 4, !dbg !22 + %"$gasrem_91" = load i64, i64* @_gasrem, align 8 + %"$gascmp_92" = icmp ugt i64 1, %"$gasrem_91" + br i1 %"$gascmp_92", label %"$out_of_gas_93", label %"$have_gas_94" -"$out_of_gas_92": ; preds = %"$have_gas_88" +"$out_of_gas_93": ; preds = %"$have_gas_89" call void @_out_of_gas() - br label %"$have_gas_93" + br label %"$have_gas_94" -"$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 { %TName_List_Message* (i8*, i8*)*, i8* } { %TName_List_Message* (i8*, i8*)* bitcast (%TName_List_Message* (%"$$fundef_3_env_59"*, i8*)* @"$fundef_3" to %TName_List_Message* (i8*, i8*)*), i8* null }, { %TName_List_Message* (i8*, i8*)*, i8* }* @send.one_msg, align 8, !dbg !13 +"$have_gas_94": ; preds = %"$out_of_gas_93", %"$have_gas_89" + %"$consume_95" = sub i64 %"$gasrem_91", 1 + store i64 %"$consume_95", i64* @_gasrem, align 8 + store { %TName_List_Message* (i8*, i8*)*, i8* } { %TName_List_Message* (i8*, i8*)* bitcast (%TName_List_Message* (%"$$fundef_3_env_59"*, i8*)* @"$fundef_3" to %TName_List_Message* (i8*, i8*)*), i8* null }, { %TName_List_Message* (i8*, i8*)*, i8* }* @send.one_msg, align 8, !dbg !23 ret void } -define void @_deploy_ops() !dbg !14 { +define void @_deploy_ops() !dbg !24 { entry: - %"$gasrem_98" = load i64, i64* @_gasrem, align 8 - %"$gascmp_99" = icmp ugt i64 1, %"$gasrem_98" - br i1 %"$gascmp_99", label %"$out_of_gas_100", label %"$have_gas_101" + %"$gasrem_99" = load i64, i64* @_gasrem, align 8 + %"$gascmp_100" = icmp ugt i64 1, %"$gasrem_99" + br i1 %"$gascmp_100", label %"$out_of_gas_101", label %"$have_gas_102" -"$out_of_gas_100": ; preds = %entry +"$out_of_gas_101": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_101" + br label %"$have_gas_102" -"$have_gas_101": ; preds = %"$out_of_gas_100", %entry - %"$consume_102" = sub i64 %"$gasrem_98", 1 - store i64 %"$consume_102", i64* @_gasrem, align 8 +"$have_gas_102": ; preds = %"$out_of_gas_101", %entry + %"$consume_103" = sub i64 %"$gasrem_99", 1 + store i64 %"$consume_103", i64* @_gasrem, align 8 ret void } -define internal void @"$SendMsg_103"(%Uint128 %_amount, [20 x i8]* %"$_origin_104", [20 x i8]* %"$_sender_105") !dbg !15 { +define internal void @"$SendMsg_104"(%Uint128 %_amount, [20 x i8]* %"$_origin_105", [20 x i8]* %"$_sender_106") !dbg !25 { entry: - %_origin = load [20 x i8], [20 x i8]* %"$_origin_104", align 1 - %_sender = load [20 x i8], [20 x i8]* %"$_sender_105", align 1 - %"$gasrem_106" = load i64, i64* @_gasrem, align 8 - %"$gascmp_107" = icmp ugt i64 1, %"$gasrem_106" - br i1 %"$gascmp_107", label %"$out_of_gas_108", label %"$have_gas_109" - -"$out_of_gas_108": ; preds = %entry + %"$_sender_169" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_sender_106", [20 x i8]** %"$_sender_169", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_sender_169", metadata !26, metadata !DIExpression()), !dbg !28 + %"$_origin_168" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_origin_105", [20 x i8]** %"$_origin_168", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_origin_168", metadata !29, metadata !DIExpression()), !dbg !28 + %"$_amount_167" = alloca %Uint128, align 8 + store %Uint128 %_amount, %Uint128* %"$_amount_167", align 8 + call void @llvm.dbg.declare(metadata %Uint128* %"$_amount_167", metadata !30, metadata !DIExpression()), !dbg !28 + %_origin = load [20 x i8], [20 x i8]* %"$_origin_105", align 1 + %_sender = load [20 x i8], [20 x i8]* %"$_sender_106", align 1 + %"$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_109" + br label %"$have_gas_110" -"$have_gas_109": ; preds = %"$out_of_gas_108", %entry - %"$consume_110" = sub i64 %"$gasrem_106", 1 - store i64 %"$consume_110", i64* @_gasrem, align 8 +"$have_gas_110": ; preds = %"$out_of_gas_109", %entry + %"$consume_111" = sub i64 %"$gasrem_107", 1 + store i64 %"$consume_111", i64* @_gasrem, align 8 %msg1 = alloca i8*, align 8 - %"$gasrem_111" = load i64, i64* @_gasrem, align 8 - %"$gascmp_112" = icmp ugt i64 1, %"$gasrem_111" - br i1 %"$gascmp_112", label %"$out_of_gas_113", label %"$have_gas_114" + call void @llvm.dbg.declare(metadata i8** %msg1, metadata !32, metadata !DIExpression()), !dbg !33 + %"$gasrem_112" = load i64, i64* @_gasrem, align 8 + %"$gascmp_113" = icmp ugt i64 1, %"$gasrem_112" + br i1 %"$gascmp_113", label %"$out_of_gas_114", label %"$have_gas_115" -"$out_of_gas_113": ; preds = %"$have_gas_109" +"$out_of_gas_114": ; preds = %"$have_gas_110" call void @_out_of_gas() - br label %"$have_gas_114" - -"$have_gas_114": ; preds = %"$out_of_gas_113", %"$have_gas_109" - %"$consume_115" = sub i64 %"$gasrem_111", 1 - store i64 %"$consume_115", i64* @_gasrem, align 8 - %"$msgobj_116_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$msgobj_116_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_116_salloc_load", i64 125) - %"$msgobj_116_salloc" = bitcast i8* %"$msgobj_116_salloc_salloc" to [125 x i8]* - %"$msgobj_116" = bitcast [125 x i8]* %"$msgobj_116_salloc" to i8* - store i8 3, i8* %"$msgobj_116", align 1 - %"$msgobj_fname_118" = getelementptr i8, i8* %"$msgobj_116", i32 1 - %"$msgobj_fname_119" = bitcast i8* %"$msgobj_fname_118" to %String* - store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_117", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_119", align 8 - %"$msgobj_td_120" = getelementptr i8, i8* %"$msgobj_116", i32 17 - %"$msgobj_td_121" = bitcast i8* %"$msgobj_td_120" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_String_23", %_TyDescrTy_Typ** %"$msgobj_td_121", align 8 - %"$msgobj_v_123" = getelementptr i8, i8* %"$msgobj_116", i32 25 - %"$msgobj_v_124" = bitcast i8* %"$msgobj_v_123" to %String* - store %String { i8* getelementptr inbounds ([0 x i8], [0 x i8]* @"$stringlit_122", i32 0, i32 0), i32 0 }, %String* %"$msgobj_v_124", align 8 - %"$msgobj_fname_126" = getelementptr i8, i8* %"$msgobj_116", i32 41 - %"$msgobj_fname_127" = bitcast i8* %"$msgobj_fname_126" to %String* - store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_125", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_127", align 8 - %"$msgobj_td_128" = getelementptr i8, i8* %"$msgobj_116", i32 57 - %"$msgobj_td_129" = bitcast i8* %"$msgobj_td_128" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_37", %_TyDescrTy_Typ** %"$msgobj_td_129", align 8 - %"$msgobj_v_130" = getelementptr i8, i8* %"$msgobj_116", i32 65 - %"$msgobj_v_131" = bitcast i8* %"$msgobj_v_130" to [20 x i8]* - store [20 x i8] %_sender, [20 x i8]* %"$msgobj_v_131", align 1 - %"$msgobj_fname_133" = getelementptr i8, i8* %"$msgobj_116", i32 85 - %"$msgobj_fname_134" = bitcast i8* %"$msgobj_fname_133" to %String* - store %String { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$stringlit_132", i32 0, i32 0), i32 7 }, %String* %"$msgobj_fname_134", align 8 - %"$msgobj_td_135" = getelementptr i8, i8* %"$msgobj_116", i32 101 - %"$msgobj_td_136" = bitcast i8* %"$msgobj_td_135" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Uint128_17", %_TyDescrTy_Typ** %"$msgobj_td_136", align 8 - %"$msgobj_v_137" = getelementptr i8, i8* %"$msgobj_116", i32 109 - %"$msgobj_v_138" = bitcast i8* %"$msgobj_v_137" to %Uint128* - store %Uint128 zeroinitializer, %Uint128* %"$msgobj_v_138", align 8 - store i8* %"$msgobj_116", i8** %msg1, align 8, !dbg !16 - %"$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_114" + br label %"$have_gas_115" + +"$have_gas_115": ; preds = %"$out_of_gas_114", %"$have_gas_110" + %"$consume_116" = sub i64 %"$gasrem_112", 1 + store i64 %"$consume_116", i64* @_gasrem, align 8 + %"$msgobj_117_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$msgobj_117_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_117_salloc_load", i64 125) + %"$msgobj_117_salloc" = bitcast i8* %"$msgobj_117_salloc_salloc" to [125 x i8]* + %"$msgobj_117" = bitcast [125 x i8]* %"$msgobj_117_salloc" to i8* + store i8 3, i8* %"$msgobj_117", align 1 + %"$msgobj_fname_119" = getelementptr i8, i8* %"$msgobj_117", i32 1 + %"$msgobj_fname_120" = bitcast i8* %"$msgobj_fname_119" to %String* + store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_118", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_120", align 8 + %"$msgobj_td_121" = getelementptr i8, i8* %"$msgobj_117", i32 17 + %"$msgobj_td_122" = bitcast i8* %"$msgobj_td_121" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_String_23", %_TyDescrTy_Typ** %"$msgobj_td_122", align 8 + %"$msgobj_v_124" = getelementptr i8, i8* %"$msgobj_117", i32 25 + %"$msgobj_v_125" = bitcast i8* %"$msgobj_v_124" to %String* + store %String { i8* getelementptr inbounds ([0 x i8], [0 x i8]* @"$stringlit_123", i32 0, i32 0), i32 0 }, %String* %"$msgobj_v_125", align 8 + %"$msgobj_fname_127" = getelementptr i8, i8* %"$msgobj_117", i32 41 + %"$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_117", i32 57 + %"$msgobj_td_130" = bitcast i8* %"$msgobj_td_129" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_37", %_TyDescrTy_Typ** %"$msgobj_td_130", align 8 + %"$msgobj_v_131" = getelementptr i8, i8* %"$msgobj_117", i32 65 + %"$msgobj_v_132" = bitcast i8* %"$msgobj_v_131" to [20 x i8]* + store [20 x i8] %_sender, [20 x i8]* %"$msgobj_v_132", align 1 + %"$msgobj_fname_134" = getelementptr i8, i8* %"$msgobj_117", i32 85 + %"$msgobj_fname_135" = bitcast i8* %"$msgobj_fname_134" to %String* + store %String { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$stringlit_133", i32 0, i32 0), i32 7 }, %String* %"$msgobj_fname_135", align 8 + %"$msgobj_td_136" = getelementptr i8, i8* %"$msgobj_117", i32 101 + %"$msgobj_td_137" = bitcast i8* %"$msgobj_td_136" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Uint128_17", %_TyDescrTy_Typ** %"$msgobj_td_137", align 8 + %"$msgobj_v_138" = getelementptr i8, i8* %"$msgobj_117", i32 109 + %"$msgobj_v_139" = bitcast i8* %"$msgobj_v_138" to %Uint128* + store %Uint128 zeroinitializer, %Uint128* %"$msgobj_v_139", align 8 + store i8* %"$msgobj_117", i8** %msg1, align 8, !dbg !34 + %"$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_115" call void @_out_of_gas() - br label %"$have_gas_143" + br label %"$have_gas_144" -"$have_gas_143": ; preds = %"$out_of_gas_142", %"$have_gas_114" - %"$consume_144" = sub i64 %"$gasrem_140", 1 - store i64 %"$consume_144", i64* @_gasrem, align 8 +"$have_gas_144": ; preds = %"$out_of_gas_143", %"$have_gas_115" + %"$consume_145" = sub i64 %"$gasrem_141", 1 + store i64 %"$consume_145", i64* @_gasrem, align 8 %msgs1 = alloca %TName_List_Message*, 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" + call void @llvm.dbg.declare(metadata %TName_List_Message** %msgs1, metadata !35, metadata !DIExpression()), !dbg !36 + %"$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_147": ; preds = %"$have_gas_143" +"$out_of_gas_148": ; preds = %"$have_gas_144" call void @_out_of_gas() - br label %"$have_gas_148" + br label %"$have_gas_149" -"$have_gas_148": ; preds = %"$out_of_gas_147", %"$have_gas_143" - %"$consume_149" = sub i64 %"$gasrem_145", 1 - store i64 %"$consume_149", i64* @_gasrem, align 8 +"$have_gas_149": ; preds = %"$out_of_gas_148", %"$have_gas_144" + %"$consume_150" = sub i64 %"$gasrem_146", 1 + store i64 %"$consume_150", i64* @_gasrem, align 8 %"$send.one_msg_1" = alloca %TName_List_Message*, align 8 - %"$send.one_msg_150" = load { %TName_List_Message* (i8*, i8*)*, i8* }, { %TName_List_Message* (i8*, i8*)*, i8* }* @send.one_msg, align 8 - %"$send.one_msg_fptr_151" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$send.one_msg_150", 0 - %"$send.one_msg_envptr_152" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$send.one_msg_150", 1 - %"$msg1_153" = load i8*, i8** %msg1, align 8 - %"$send.one_msg_call_154" = call %TName_List_Message* %"$send.one_msg_fptr_151"(i8* %"$send.one_msg_envptr_152", i8* %"$msg1_153"), !dbg !17 - store %TName_List_Message* %"$send.one_msg_call_154", %TName_List_Message** %"$send.one_msg_1", align 8, !dbg !17 - %"$$send.one_msg_1_155" = load %TName_List_Message*, %TName_List_Message** %"$send.one_msg_1", align 8 - store %TName_List_Message* %"$$send.one_msg_1_155", %TName_List_Message** %msgs1, align 8, !dbg !17 - %"$msgs1_156" = load %TName_List_Message*, %TName_List_Message** %msgs1, align 8 - %"$$msgs1_156_157" = bitcast %TName_List_Message* %"$msgs1_156" to i8* - %"$_literal_cost_call_158" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_41", i8* %"$$msgs1_156_157") - %"$gasrem_159" = load i64, i64* @_gasrem, align 8 - %"$gascmp_160" = icmp ugt i64 %"$_literal_cost_call_158", %"$gasrem_159" - br i1 %"$gascmp_160", label %"$out_of_gas_161", label %"$have_gas_162" - -"$out_of_gas_161": ; preds = %"$have_gas_148" + call void @llvm.dbg.declare(metadata %TName_List_Message** %"$send.one_msg_1", metadata !37, metadata !DIExpression()), !dbg !38 + %"$send.one_msg_151" = load { %TName_List_Message* (i8*, i8*)*, i8* }, { %TName_List_Message* (i8*, i8*)*, i8* }* @send.one_msg, align 8 + %"$send.one_msg_fptr_152" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$send.one_msg_151", 0 + %"$send.one_msg_envptr_153" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$send.one_msg_151", 1 + %"$msg1_154" = load i8*, i8** %msg1, align 8 + %"$send.one_msg_call_155" = call %TName_List_Message* %"$send.one_msg_fptr_152"(i8* %"$send.one_msg_envptr_153", i8* %"$msg1_154"), !dbg !38 + store %TName_List_Message* %"$send.one_msg_call_155", %TName_List_Message** %"$send.one_msg_1", align 8, !dbg !38 + %"$$send.one_msg_1_156" = load %TName_List_Message*, %TName_List_Message** %"$send.one_msg_1", align 8 + store %TName_List_Message* %"$$send.one_msg_1_156", %TName_List_Message** %msgs1, align 8, !dbg !38 + %"$msgs1_157" = load %TName_List_Message*, %TName_List_Message** %msgs1, align 8 + %"$$msgs1_157_158" = bitcast %TName_List_Message* %"$msgs1_157" to i8* + %"$_literal_cost_call_159" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_41", i8* %"$$msgs1_157_158") + %"$gasrem_160" = load i64, i64* @_gasrem, align 8 + %"$gascmp_161" = icmp ugt i64 %"$_literal_cost_call_159", %"$gasrem_160" + br i1 %"$gascmp_161", label %"$out_of_gas_162", label %"$have_gas_163" + +"$out_of_gas_162": ; preds = %"$have_gas_149" call void @_out_of_gas() - br label %"$have_gas_162" - -"$have_gas_162": ; preds = %"$out_of_gas_161", %"$have_gas_148" - %"$consume_163" = sub i64 %"$gasrem_159", %"$_literal_cost_call_158" - store i64 %"$consume_163", i64* @_gasrem, align 8 - %"$execptr_load_164" = load i8*, i8** @_execptr, align 8 - %"$msgs1_165" = load %TName_List_Message*, %TName_List_Message** %msgs1, align 8 - call void @_send(i8* %"$execptr_load_164", %_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_41", %TName_List_Message* %"$msgs1_165"), !dbg !18 + br label %"$have_gas_163" + +"$have_gas_163": ; preds = %"$out_of_gas_162", %"$have_gas_149" + %"$consume_164" = sub i64 %"$gasrem_160", %"$_literal_cost_call_159" + store i64 %"$consume_164", i64* @_gasrem, align 8 + %"$execptr_load_165" = load i8*, i8** @_execptr, align 8 + %"$msgs1_166" = load %TName_List_Message*, %TName_List_Message** %msgs1, align 8 + call void @_send(i8* %"$execptr_load_165", %_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_41", %TName_List_Message* %"$msgs1_166"), !dbg !39 ret void } @@ -337,265 +357,315 @@ declare i64 @_literal_cost(%_TyDescrTy_Typ*, i8*) declare void @_send(i8*, %_TyDescrTy_Typ*, %TName_List_Message*) -define void @SendMsg(i8* %0) !dbg !19 { +define void @SendMsg(i8* %0) !dbg !40 { entry: - %"$_amount_167" = getelementptr i8, i8* %0, i32 0 - %"$_amount_168" = bitcast i8* %"$_amount_167" to %Uint128* - %_amount = load %Uint128, %Uint128* %"$_amount_168", align 8 - %"$_origin_169" = getelementptr i8, i8* %0, i32 16 - %"$_origin_170" = bitcast i8* %"$_origin_169" to [20 x i8]* - %"$_sender_171" = getelementptr i8, i8* %0, i32 36 - %"$_sender_172" = bitcast i8* %"$_sender_171" to [20 x i8]* - call void @"$SendMsg_103"(%Uint128 %_amount, [20 x i8]* %"$_origin_170", [20 x i8]* %"$_sender_172"), !dbg !20 + %"$_amount_171" = getelementptr i8, i8* %0, i32 0 + %"$_amount_172" = bitcast i8* %"$_amount_171" to %Uint128* + %_amount = load %Uint128, %Uint128* %"$_amount_172", align 8 + %"$_origin_173" = getelementptr i8, i8* %0, i32 16 + %"$_origin_174" = bitcast i8* %"$_origin_173" to [20 x i8]* + %"$_sender_175" = getelementptr i8, i8* %0, i32 36 + %"$_sender_176" = bitcast i8* %"$_sender_175" to [20 x i8]* + call void @"$SendMsg_104"(%Uint128 %_amount, [20 x i8]* %"$_origin_174", [20 x i8]* %"$_sender_176"), !dbg !41 ret void } -define internal void @"$SendMsg2_173"(%Uint128 %_amount, [20 x i8]* %"$_origin_174", [20 x i8]* %"$_sender_175") !dbg !21 { +define internal void @"$SendMsg2_177"(%Uint128 %_amount, [20 x i8]* %"$_origin_178", [20 x i8]* %"$_sender_179") !dbg !42 { entry: - %_origin = load [20 x i8], [20 x i8]* %"$_origin_174", align 1 - %_sender = load [20 x i8], [20 x i8]* %"$_sender_175", align 1 - %"$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 + %"$_sender_293" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_sender_179", [20 x i8]** %"$_sender_293", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_sender_293", metadata !43, metadata !DIExpression()), !dbg !44 + %"$_origin_292" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_origin_178", [20 x i8]** %"$_origin_292", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_origin_292", metadata !45, metadata !DIExpression()), !dbg !44 + %"$_amount_291" = alloca %Uint128, align 8 + store %Uint128 %_amount, %Uint128* %"$_amount_291", align 8 + call void @llvm.dbg.declare(metadata %Uint128* %"$_amount_291", metadata !46, metadata !DIExpression()), !dbg !44 + %_origin = load [20 x i8], [20 x i8]* %"$_origin_178", align 1 + %_sender = load [20 x i8], [20 x i8]* %"$_sender_179", align 1 + %"$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 = %entry call void @_out_of_gas() - br label %"$have_gas_179" + br label %"$have_gas_183" -"$have_gas_179": ; preds = %"$out_of_gas_178", %entry - %"$consume_180" = sub i64 %"$gasrem_176", 1 - store i64 %"$consume_180", i64* @_gasrem, align 8 +"$have_gas_183": ; preds = %"$out_of_gas_182", %entry + %"$consume_184" = sub i64 %"$gasrem_180", 1 + store i64 %"$consume_184", i64* @_gasrem, align 8 %msg1 = alloca i8*, 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" + call void @llvm.dbg.declare(metadata i8** %msg1, metadata !47, metadata !DIExpression()), !dbg !48 + %"$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_183": ; preds = %"$have_gas_179" +"$out_of_gas_187": ; preds = %"$have_gas_183" 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 - %"$msgobj_186_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$msgobj_186_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_186_salloc_load", i64 125) - %"$msgobj_186_salloc" = bitcast i8* %"$msgobj_186_salloc_salloc" to [125 x i8]* - %"$msgobj_186" = bitcast [125 x i8]* %"$msgobj_186_salloc" to i8* - store i8 3, i8* %"$msgobj_186", align 1 - %"$msgobj_fname_188" = getelementptr i8, i8* %"$msgobj_186", i32 1 - %"$msgobj_fname_189" = bitcast i8* %"$msgobj_fname_188" to %String* - store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_187", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_189", align 8 - %"$msgobj_td_190" = getelementptr i8, i8* %"$msgobj_186", i32 17 - %"$msgobj_td_191" = bitcast i8* %"$msgobj_td_190" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_String_23", %_TyDescrTy_Typ** %"$msgobj_td_191", align 8 - %"$msgobj_v_193" = getelementptr i8, i8* %"$msgobj_186", i32 25 - %"$msgobj_v_194" = bitcast i8* %"$msgobj_v_193" to %String* - store %String { i8* getelementptr inbounds ([0 x i8], [0 x i8]* @"$stringlit_192", i32 0, i32 0), i32 0 }, %String* %"$msgobj_v_194", align 8 - %"$msgobj_fname_196" = getelementptr i8, i8* %"$msgobj_186", i32 41 - %"$msgobj_fname_197" = bitcast i8* %"$msgobj_fname_196" to %String* - store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_195", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_197", align 8 - %"$msgobj_td_198" = getelementptr i8, i8* %"$msgobj_186", i32 57 - %"$msgobj_td_199" = bitcast i8* %"$msgobj_td_198" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_37", %_TyDescrTy_Typ** %"$msgobj_td_199", align 8 - %"$msgobj_v_200" = getelementptr i8, i8* %"$msgobj_186", i32 65 - %"$msgobj_v_201" = bitcast i8* %"$msgobj_v_200" to [20 x i8]* - store [20 x i8] %_sender, [20 x i8]* %"$msgobj_v_201", align 1 - %"$msgobj_fname_203" = getelementptr i8, i8* %"$msgobj_186", i32 85 - %"$msgobj_fname_204" = bitcast i8* %"$msgobj_fname_203" to %String* - store %String { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$stringlit_202", i32 0, i32 0), i32 7 }, %String* %"$msgobj_fname_204", align 8 - %"$msgobj_td_205" = getelementptr i8, i8* %"$msgobj_186", i32 101 - %"$msgobj_td_206" = bitcast i8* %"$msgobj_td_205" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Uint128_17", %_TyDescrTy_Typ** %"$msgobj_td_206", align 8 - %"$msgobj_v_207" = getelementptr i8, i8* %"$msgobj_186", i32 109 - %"$msgobj_v_208" = bitcast i8* %"$msgobj_v_207" to %Uint128* - store %Uint128 zeroinitializer, %Uint128* %"$msgobj_v_208", align 8 - store i8* %"$msgobj_186", i8** %msg1, align 8, !dbg !22 - %"$gasrem_210" = load i64, i64* @_gasrem, align 8 - %"$gascmp_211" = icmp ugt i64 1, %"$gasrem_210" - br i1 %"$gascmp_211", label %"$out_of_gas_212", label %"$have_gas_213" - -"$out_of_gas_212": ; preds = %"$have_gas_184" + br label %"$have_gas_188" + +"$have_gas_188": ; preds = %"$out_of_gas_187", %"$have_gas_183" + %"$consume_189" = sub i64 %"$gasrem_185", 1 + store i64 %"$consume_189", i64* @_gasrem, align 8 + %"$msgobj_190_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$msgobj_190_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_190_salloc_load", i64 125) + %"$msgobj_190_salloc" = bitcast i8* %"$msgobj_190_salloc_salloc" to [125 x i8]* + %"$msgobj_190" = bitcast [125 x i8]* %"$msgobj_190_salloc" to i8* + store i8 3, i8* %"$msgobj_190", align 1 + %"$msgobj_fname_192" = getelementptr i8, i8* %"$msgobj_190", i32 1 + %"$msgobj_fname_193" = bitcast i8* %"$msgobj_fname_192" to %String* + store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_191", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_193", align 8 + %"$msgobj_td_194" = getelementptr i8, i8* %"$msgobj_190", i32 17 + %"$msgobj_td_195" = bitcast i8* %"$msgobj_td_194" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_String_23", %_TyDescrTy_Typ** %"$msgobj_td_195", align 8 + %"$msgobj_v_197" = getelementptr i8, i8* %"$msgobj_190", i32 25 + %"$msgobj_v_198" = bitcast i8* %"$msgobj_v_197" to %String* + store %String { i8* getelementptr inbounds ([0 x i8], [0 x i8]* @"$stringlit_196", i32 0, i32 0), i32 0 }, %String* %"$msgobj_v_198", align 8 + %"$msgobj_fname_200" = getelementptr i8, i8* %"$msgobj_190", i32 41 + %"$msgobj_fname_201" = bitcast i8* %"$msgobj_fname_200" to %String* + store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_199", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_201", align 8 + %"$msgobj_td_202" = getelementptr i8, i8* %"$msgobj_190", i32 57 + %"$msgobj_td_203" = bitcast i8* %"$msgobj_td_202" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_37", %_TyDescrTy_Typ** %"$msgobj_td_203", align 8 + %"$msgobj_v_204" = getelementptr i8, i8* %"$msgobj_190", i32 65 + %"$msgobj_v_205" = bitcast i8* %"$msgobj_v_204" to [20 x i8]* + store [20 x i8] %_sender, [20 x i8]* %"$msgobj_v_205", align 1 + %"$msgobj_fname_207" = getelementptr i8, i8* %"$msgobj_190", i32 85 + %"$msgobj_fname_208" = bitcast i8* %"$msgobj_fname_207" to %String* + store %String { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$stringlit_206", i32 0, i32 0), i32 7 }, %String* %"$msgobj_fname_208", align 8 + %"$msgobj_td_209" = getelementptr i8, i8* %"$msgobj_190", i32 101 + %"$msgobj_td_210" = bitcast i8* %"$msgobj_td_209" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Uint128_17", %_TyDescrTy_Typ** %"$msgobj_td_210", align 8 + %"$msgobj_v_211" = getelementptr i8, i8* %"$msgobj_190", i32 109 + %"$msgobj_v_212" = bitcast i8* %"$msgobj_v_211" to %Uint128* + store %Uint128 zeroinitializer, %Uint128* %"$msgobj_v_212", align 8 + store i8* %"$msgobj_190", i8** %msg1, align 8, !dbg !49 + %"$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 = %"$have_gas_188" call void @_out_of_gas() - br label %"$have_gas_213" + br label %"$have_gas_217" -"$have_gas_213": ; preds = %"$out_of_gas_212", %"$have_gas_184" - %"$consume_214" = sub i64 %"$gasrem_210", 1 - store i64 %"$consume_214", i64* @_gasrem, align 8 +"$have_gas_217": ; preds = %"$out_of_gas_216", %"$have_gas_188" + %"$consume_218" = sub i64 %"$gasrem_214", 1 + store i64 %"$consume_218", i64* @_gasrem, align 8 %msg2 = alloca i8*, align 8 - %"$gasrem_215" = load i64, i64* @_gasrem, align 8 - %"$gascmp_216" = icmp ugt i64 1, %"$gasrem_215" - br i1 %"$gascmp_216", label %"$out_of_gas_217", label %"$have_gas_218" + call void @llvm.dbg.declare(metadata i8** %msg2, metadata !50, metadata !DIExpression()), !dbg !51 + %"$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_217": ; preds = %"$have_gas_213" +"$out_of_gas_221": ; preds = %"$have_gas_217" call void @_out_of_gas() - br label %"$have_gas_218" - -"$have_gas_218": ; preds = %"$out_of_gas_217", %"$have_gas_213" - %"$consume_219" = sub i64 %"$gasrem_215", 1 - store i64 %"$consume_219", i64* @_gasrem, align 8 - %"$msgobj_220_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$msgobj_220_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_220_salloc_load", i64 125) - %"$msgobj_220_salloc" = bitcast i8* %"$msgobj_220_salloc_salloc" to [125 x i8]* - %"$msgobj_220" = bitcast [125 x i8]* %"$msgobj_220_salloc" to i8* - store i8 3, i8* %"$msgobj_220", align 1 - %"$msgobj_fname_222" = getelementptr i8, i8* %"$msgobj_220", i32 1 - %"$msgobj_fname_223" = bitcast i8* %"$msgobj_fname_222" to %String* - store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_221", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_223", align 8 - %"$msgobj_td_224" = getelementptr i8, i8* %"$msgobj_220", i32 17 - %"$msgobj_td_225" = bitcast i8* %"$msgobj_td_224" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_String_23", %_TyDescrTy_Typ** %"$msgobj_td_225", align 8 - %"$msgobj_v_227" = getelementptr i8, i8* %"$msgobj_220", i32 25 - %"$msgobj_v_228" = bitcast i8* %"$msgobj_v_227" to %String* - store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_226", i32 0, i32 0), i32 3 }, %String* %"$msgobj_v_228", align 8 - %"$msgobj_fname_230" = getelementptr i8, i8* %"$msgobj_220", i32 41 - %"$msgobj_fname_231" = bitcast i8* %"$msgobj_fname_230" to %String* - store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_229", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_231", align 8 - %"$msgobj_td_232" = getelementptr i8, i8* %"$msgobj_220", i32 57 - %"$msgobj_td_233" = bitcast i8* %"$msgobj_td_232" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_37", %_TyDescrTy_Typ** %"$msgobj_td_233", align 8 - %"$msgobj_v_234" = getelementptr i8, i8* %"$msgobj_220", i32 65 - %"$msgobj_v_235" = bitcast i8* %"$msgobj_v_234" to [20 x i8]* - store [20 x i8] %_sender, [20 x i8]* %"$msgobj_v_235", align 1 - %"$msgobj_fname_237" = getelementptr i8, i8* %"$msgobj_220", i32 85 - %"$msgobj_fname_238" = bitcast i8* %"$msgobj_fname_237" to %String* - store %String { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$stringlit_236", i32 0, i32 0), i32 7 }, %String* %"$msgobj_fname_238", align 8 - %"$msgobj_td_239" = getelementptr i8, i8* %"$msgobj_220", i32 101 - %"$msgobj_td_240" = bitcast i8* %"$msgobj_td_239" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Uint128_17", %_TyDescrTy_Typ** %"$msgobj_td_240", align 8 - %"$msgobj_v_241" = getelementptr i8, i8* %"$msgobj_220", i32 109 - %"$msgobj_v_242" = bitcast i8* %"$msgobj_v_241" to %Uint128* - store %Uint128 { i128 100 }, %Uint128* %"$msgobj_v_242", align 8 - store i8* %"$msgobj_220", i8** %msg2, align 8, !dbg !23 - %"$gasrem_244" = load i64, i64* @_gasrem, align 8 - %"$gascmp_245" = icmp ugt i64 1, %"$gasrem_244" - br i1 %"$gascmp_245", label %"$out_of_gas_246", label %"$have_gas_247" - -"$out_of_gas_246": ; preds = %"$have_gas_218" + br label %"$have_gas_222" + +"$have_gas_222": ; preds = %"$out_of_gas_221", %"$have_gas_217" + %"$consume_223" = sub i64 %"$gasrem_219", 1 + store i64 %"$consume_223", i64* @_gasrem, align 8 + %"$msgobj_224_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$msgobj_224_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_224_salloc_load", i64 125) + %"$msgobj_224_salloc" = bitcast i8* %"$msgobj_224_salloc_salloc" to [125 x i8]* + %"$msgobj_224" = bitcast [125 x i8]* %"$msgobj_224_salloc" to i8* + store i8 3, i8* %"$msgobj_224", align 1 + %"$msgobj_fname_226" = getelementptr i8, i8* %"$msgobj_224", i32 1 + %"$msgobj_fname_227" = bitcast i8* %"$msgobj_fname_226" to %String* + store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_225", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_227", align 8 + %"$msgobj_td_228" = getelementptr i8, i8* %"$msgobj_224", i32 17 + %"$msgobj_td_229" = bitcast i8* %"$msgobj_td_228" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_String_23", %_TyDescrTy_Typ** %"$msgobj_td_229", align 8 + %"$msgobj_v_231" = getelementptr i8, i8* %"$msgobj_224", i32 25 + %"$msgobj_v_232" = bitcast i8* %"$msgobj_v_231" to %String* + store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_230", i32 0, i32 0), i32 3 }, %String* %"$msgobj_v_232", align 8 + %"$msgobj_fname_234" = getelementptr i8, i8* %"$msgobj_224", i32 41 + %"$msgobj_fname_235" = bitcast i8* %"$msgobj_fname_234" to %String* + store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_233", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_235", align 8 + %"$msgobj_td_236" = getelementptr i8, i8* %"$msgobj_224", i32 57 + %"$msgobj_td_237" = bitcast i8* %"$msgobj_td_236" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_37", %_TyDescrTy_Typ** %"$msgobj_td_237", align 8 + %"$msgobj_v_238" = getelementptr i8, i8* %"$msgobj_224", i32 65 + %"$msgobj_v_239" = bitcast i8* %"$msgobj_v_238" to [20 x i8]* + store [20 x i8] %_sender, [20 x i8]* %"$msgobj_v_239", align 1 + %"$msgobj_fname_241" = getelementptr i8, i8* %"$msgobj_224", i32 85 + %"$msgobj_fname_242" = bitcast i8* %"$msgobj_fname_241" to %String* + store %String { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$stringlit_240", i32 0, i32 0), i32 7 }, %String* %"$msgobj_fname_242", align 8 + %"$msgobj_td_243" = getelementptr i8, i8* %"$msgobj_224", i32 101 + %"$msgobj_td_244" = bitcast i8* %"$msgobj_td_243" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Uint128_17", %_TyDescrTy_Typ** %"$msgobj_td_244", align 8 + %"$msgobj_v_245" = getelementptr i8, i8* %"$msgobj_224", i32 109 + %"$msgobj_v_246" = bitcast i8* %"$msgobj_v_245" to %Uint128* + store %Uint128 { i128 100 }, %Uint128* %"$msgobj_v_246", align 8 + store i8* %"$msgobj_224", i8** %msg2, align 8, !dbg !52 + %"$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 = %"$have_gas_222" call void @_out_of_gas() - br label %"$have_gas_247" + br label %"$have_gas_251" -"$have_gas_247": ; preds = %"$out_of_gas_246", %"$have_gas_218" - %"$consume_248" = sub i64 %"$gasrem_244", 1 - store i64 %"$consume_248", i64* @_gasrem, align 8 +"$have_gas_251": ; preds = %"$out_of_gas_250", %"$have_gas_222" + %"$consume_252" = sub i64 %"$gasrem_248", 1 + store i64 %"$consume_252", i64* @_gasrem, align 8 %msgs1 = alloca %TName_List_Message*, 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" + call void @llvm.dbg.declare(metadata %TName_List_Message** %msgs1, metadata !53, metadata !DIExpression()), !dbg !54 + %"$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_251": ; preds = %"$have_gas_247" +"$out_of_gas_255": ; preds = %"$have_gas_251" call void @_out_of_gas() - br label %"$have_gas_252" + br label %"$have_gas_256" -"$have_gas_252": ; preds = %"$out_of_gas_251", %"$have_gas_247" - %"$consume_253" = sub i64 %"$gasrem_249", 1 - store i64 %"$consume_253", i64* @_gasrem, align 8 +"$have_gas_256": ; preds = %"$out_of_gas_255", %"$have_gas_251" + %"$consume_257" = sub i64 %"$gasrem_253", 1 + store i64 %"$consume_257", i64* @_gasrem, align 8 %"$send.one_msg_2" = alloca %TName_List_Message*, align 8 - %"$send.one_msg_254" = load { %TName_List_Message* (i8*, i8*)*, i8* }, { %TName_List_Message* (i8*, i8*)*, i8* }* @send.one_msg, align 8 - %"$send.one_msg_fptr_255" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$send.one_msg_254", 0 - %"$send.one_msg_envptr_256" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$send.one_msg_254", 1 - %"$msg1_257" = load i8*, i8** %msg1, align 8 - %"$send.one_msg_call_258" = call %TName_List_Message* %"$send.one_msg_fptr_255"(i8* %"$send.one_msg_envptr_256", i8* %"$msg1_257"), !dbg !24 - store %TName_List_Message* %"$send.one_msg_call_258", %TName_List_Message** %"$send.one_msg_2", align 8, !dbg !24 - %"$$send.one_msg_2_259" = load %TName_List_Message*, %TName_List_Message** %"$send.one_msg_2", align 8 - store %TName_List_Message* %"$$send.one_msg_2_259", %TName_List_Message** %msgs1, align 8, !dbg !24 - %"$gasrem_260" = load i64, i64* @_gasrem, align 8 - %"$gascmp_261" = icmp ugt i64 1, %"$gasrem_260" - br i1 %"$gascmp_261", label %"$out_of_gas_262", label %"$have_gas_263" - -"$out_of_gas_262": ; preds = %"$have_gas_252" + call void @llvm.dbg.declare(metadata %TName_List_Message** %"$send.one_msg_2", metadata !55, metadata !DIExpression()), !dbg !56 + %"$send.one_msg_258" = load { %TName_List_Message* (i8*, i8*)*, i8* }, { %TName_List_Message* (i8*, i8*)*, i8* }* @send.one_msg, align 8 + %"$send.one_msg_fptr_259" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$send.one_msg_258", 0 + %"$send.one_msg_envptr_260" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$send.one_msg_258", 1 + %"$msg1_261" = load i8*, i8** %msg1, align 8 + %"$send.one_msg_call_262" = call %TName_List_Message* %"$send.one_msg_fptr_259"(i8* %"$send.one_msg_envptr_260", i8* %"$msg1_261"), !dbg !56 + store %TName_List_Message* %"$send.one_msg_call_262", %TName_List_Message** %"$send.one_msg_2", align 8, !dbg !56 + %"$$send.one_msg_2_263" = load %TName_List_Message*, %TName_List_Message** %"$send.one_msg_2", align 8 + store %TName_List_Message* %"$$send.one_msg_2_263", %TName_List_Message** %msgs1, align 8, !dbg !56 + %"$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_256" call void @_out_of_gas() - br label %"$have_gas_263" + br label %"$have_gas_267" -"$have_gas_263": ; preds = %"$out_of_gas_262", %"$have_gas_252" - %"$consume_264" = sub i64 %"$gasrem_260", 1 - store i64 %"$consume_264", i64* @_gasrem, align 8 +"$have_gas_267": ; preds = %"$out_of_gas_266", %"$have_gas_256" + %"$consume_268" = sub i64 %"$gasrem_264", 1 + store i64 %"$consume_268", i64* @_gasrem, align 8 %msgs2 = alloca %TName_List_Message*, align 8 - %"$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" + call void @llvm.dbg.declare(metadata %TName_List_Message** %msgs2, metadata !57, metadata !DIExpression()), !dbg !58 + %"$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" -"$out_of_gas_267": ; preds = %"$have_gas_263" +"$out_of_gas_271": ; preds = %"$have_gas_267" call void @_out_of_gas() - br label %"$have_gas_268" - -"$have_gas_268": ; preds = %"$out_of_gas_267", %"$have_gas_263" - %"$consume_269" = sub i64 %"$gasrem_265", 1 - store i64 %"$consume_269", i64* @_gasrem, align 8 - %"$msg2_270" = load i8*, i8** %msg2, align 8 - %"$msgs1_271" = load %TName_List_Message*, %TName_List_Message** %msgs1, align 8 - %"$adtval_272_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_272_salloc" = call i8* @_salloc(i8* %"$adtval_272_load", i64 17) - %"$adtval_272" = bitcast i8* %"$adtval_272_salloc" to %CName_Cons_Message* - %"$adtgep_273" = getelementptr inbounds %CName_Cons_Message, %CName_Cons_Message* %"$adtval_272", i32 0, i32 0 - store i8 0, i8* %"$adtgep_273", align 1 - %"$adtgep_274" = getelementptr inbounds %CName_Cons_Message, %CName_Cons_Message* %"$adtval_272", i32 0, i32 1 - store i8* %"$msg2_270", i8** %"$adtgep_274", align 8 - %"$adtgep_275" = getelementptr inbounds %CName_Cons_Message, %CName_Cons_Message* %"$adtval_272", i32 0, i32 2 - store %TName_List_Message* %"$msgs1_271", %TName_List_Message** %"$adtgep_275", align 8 - %"$adtptr_276" = bitcast %CName_Cons_Message* %"$adtval_272" to %TName_List_Message* - store %TName_List_Message* %"$adtptr_276", %TName_List_Message** %msgs2, align 8, !dbg !25 - %"$msgs2_277" = load %TName_List_Message*, %TName_List_Message** %msgs2, align 8 - %"$$msgs2_277_278" = bitcast %TName_List_Message* %"$msgs2_277" to i8* - %"$_literal_cost_call_279" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_41", i8* %"$$msgs2_277_278") - %"$gasrem_280" = load i64, i64* @_gasrem, align 8 - %"$gascmp_281" = icmp ugt i64 %"$_literal_cost_call_279", %"$gasrem_280" - br i1 %"$gascmp_281", label %"$out_of_gas_282", label %"$have_gas_283" - -"$out_of_gas_282": ; preds = %"$have_gas_268" + br label %"$have_gas_272" + +"$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 + %"$msg2_274" = load i8*, i8** %msg2, align 8 + %"$msgs1_275" = load %TName_List_Message*, %TName_List_Message** %msgs1, 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* %"$msg2_274", 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* %"$msgs1_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** %msgs2, align 8, !dbg !59 + %"$msgs2_281" = load %TName_List_Message*, %TName_List_Message** %msgs2, align 8 + %"$$msgs2_281_282" = bitcast %TName_List_Message* %"$msgs2_281" to i8* + %"$_literal_cost_call_283" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_41", i8* %"$$msgs2_281_282") + %"$gasrem_284" = load i64, i64* @_gasrem, align 8 + %"$gascmp_285" = icmp ugt i64 %"$_literal_cost_call_283", %"$gasrem_284" + br i1 %"$gascmp_285", label %"$out_of_gas_286", label %"$have_gas_287" + +"$out_of_gas_286": ; preds = %"$have_gas_272" call void @_out_of_gas() - br label %"$have_gas_283" - -"$have_gas_283": ; preds = %"$out_of_gas_282", %"$have_gas_268" - %"$consume_284" = sub i64 %"$gasrem_280", %"$_literal_cost_call_279" - store i64 %"$consume_284", i64* @_gasrem, align 8 - %"$execptr_load_285" = load i8*, i8** @_execptr, align 8 - %"$msgs2_286" = load %TName_List_Message*, %TName_List_Message** %msgs2, align 8 - call void @_send(i8* %"$execptr_load_285", %_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_41", %TName_List_Message* %"$msgs2_286"), !dbg !26 + br label %"$have_gas_287" + +"$have_gas_287": ; preds = %"$out_of_gas_286", %"$have_gas_272" + %"$consume_288" = sub i64 %"$gasrem_284", %"$_literal_cost_call_283" + store i64 %"$consume_288", i64* @_gasrem, align 8 + %"$execptr_load_289" = load i8*, i8** @_execptr, align 8 + %"$msgs2_290" = load %TName_List_Message*, %TName_List_Message** %msgs2, align 8 + call void @_send(i8* %"$execptr_load_289", %_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_41", %TName_List_Message* %"$msgs2_290"), !dbg !60 ret void } -define void @SendMsg2(i8* %0) !dbg !27 { +define void @SendMsg2(i8* %0) !dbg !61 { entry: - %"$_amount_288" = getelementptr i8, i8* %0, i32 0 - %"$_amount_289" = bitcast i8* %"$_amount_288" to %Uint128* - %_amount = load %Uint128, %Uint128* %"$_amount_289", align 8 - %"$_origin_290" = getelementptr i8, i8* %0, i32 16 - %"$_origin_291" = bitcast i8* %"$_origin_290" to [20 x i8]* - %"$_sender_292" = getelementptr i8, i8* %0, i32 36 - %"$_sender_293" = bitcast i8* %"$_sender_292" to [20 x i8]* - call void @"$SendMsg2_173"(%Uint128 %_amount, [20 x i8]* %"$_origin_291", [20 x i8]* %"$_sender_293"), !dbg !28 + %"$_amount_295" = getelementptr i8, i8* %0, i32 0 + %"$_amount_296" = bitcast i8* %"$_amount_295" to %Uint128* + %_amount = load %Uint128, %Uint128* %"$_amount_296", align 8 + %"$_origin_297" = getelementptr i8, i8* %0, i32 16 + %"$_origin_298" = bitcast i8* %"$_origin_297" to [20 x i8]* + %"$_sender_299" = getelementptr i8, i8* %0, i32 36 + %"$_sender_300" = bitcast i8* %"$_sender_299" to [20 x i8]* + call void @"$SendMsg2_177"(%Uint128 %_amount, [20 x i8]* %"$_origin_298", [20 x i8]* %"$_sender_300"), !dbg !62 ret void } +attributes #0 = { nocallback nofree nosync nounwind readnone speculatable willreturn } + !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) +!1 = distinct !DICompileUnit(language: DW_LANG_C89, file: !2, producer: "Scilla Compiler", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false) !2 = !DIFile(filename: "send.scilla", directory: "codegen/contr") -!3 = !{} -!4 = distinct !DISubprogram(name: "$fundef_3", linkageName: "$fundef_3", scope: !2, file: !2, line: 7, type: !5, scopeLine: 7, 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: 7, column: 17, scope: !4) -!9 = !DILocation(line: 8, column: 3, scope: !4) -!10 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !11, file: !11, type: !5, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!11 = !DIFile(filename: ".", directory: ".") -!12 = !DILocation(line: 0, scope: !10) -!13 = !DILocation(line: 7, column: 3, scope: !10) -!14 = distinct !DISubprogram(name: "_deploy_ops", linkageName: "_deploy_ops", scope: !11, file: !11, type: !5, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!15 = distinct !DISubprogram(name: "SendMsg", linkageName: "SendMsg", scope: !2, file: !2, line: 13, type: !5, scopeLine: 13, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!16 = !DILocation(line: 14, column: 10, scope: !15) -!17 = !DILocation(line: 15, column: 11, scope: !15) -!18 = !DILocation(line: 16, column: 3, scope: !15) -!19 = distinct !DISubprogram(name: "SendMsg", linkageName: "SendMsg", scope: !2, file: !2, line: 13, type: !5, scopeLine: 13, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!20 = !DILocation(line: 13, column: 12, scope: !19) -!21 = distinct !DISubprogram(name: "SendMsg2", linkageName: "SendMsg2", scope: !2, file: !2, line: 19, type: !5, scopeLine: 19, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!22 = !DILocation(line: 20, column: 10, scope: !21) -!23 = !DILocation(line: 21, column: 10, scope: !21) -!24 = !DILocation(line: 22, column: 11, scope: !21) -!25 = !DILocation(line: 23, column: 11, scope: !21) -!26 = !DILocation(line: 24, column: 3, scope: !21) -!27 = distinct !DISubprogram(name: "SendMsg2", linkageName: "SendMsg2", scope: !2, file: !2, line: 19, type: !5, scopeLine: 19, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!28 = !DILocation(line: 19, column: 12, scope: !27) +!3 = distinct !DISubprogram(name: "$fundef_3", linkageName: "$fundef_3", scope: !2, file: !2, line: 7, type: !4, scopeLine: 7, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!4 = !DISubroutineType(types: !5) +!5 = !{!6} +!6 = !DIBasicType(tag: DW_TAG_unspecified_type, name: "void") +!7 = !{} +!8 = !DILocalVariable(name: "msg", scope: !3, file: !2, line: 6, type: !9) +!9 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "Message", baseType: !10, size: 8, align: 8, dwarfAddressSpace: 0) +!10 = !DIBasicType(name: "Message", size: 8) +!11 = !DILocation(line: 6, column: 8, scope: !3) +!12 = !DILocalVariable(name: "$retval_4", scope: !3, file: !2, line: 7, type: !13) +!13 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "List (Message)", baseType: !14, size: 8, align: 8, dwarfAddressSpace: 0) +!14 = !DIBasicType(name: "List (Message)", size: 8) +!15 = !DILocation(line: 7, column: 3, scope: !3) +!16 = !DILocalVariable(name: "nil_msg", scope: !3, file: !2, line: 7, type: !13) +!17 = !DILocation(line: 7, column: 7, scope: !3) +!18 = !DILocation(line: 7, column: 17, scope: !3) +!19 = !DILocation(line: 8, column: 3, scope: !3) +!20 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !21, file: !21, type: !4, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!21 = !DIFile(filename: ".", directory: ".") +!22 = !DILocation(line: 0, scope: !20) +!23 = !DILocation(line: 7, column: 3, scope: !20) +!24 = distinct !DISubprogram(name: "_deploy_ops", linkageName: "_deploy_ops", scope: !21, file: !21, type: !4, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!25 = distinct !DISubprogram(name: "SendMsg", linkageName: "SendMsg", scope: !2, file: !2, line: 13, type: !4, scopeLine: 13, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!26 = !DILocalVariable(name: "_sender", scope: !25, file: !2, line: 13, type: !27) +!27 = !DIBasicType(name: "ByStr20 with end", size: 20) +!28 = !DILocation(line: 13, column: 12, scope: !25) +!29 = !DILocalVariable(name: "_origin", scope: !25, file: !2, line: 13, type: !27) +!30 = !DILocalVariable(name: "_amount", scope: !25, file: !2, line: 13, type: !31) +!31 = !DIBasicType(name: "Uint128", size: 16) +!32 = !DILocalVariable(name: "msg1", scope: !25, file: !2, line: 14, type: !9) +!33 = !DILocation(line: 14, column: 3, scope: !25) +!34 = !DILocation(line: 14, column: 10, scope: !25) +!35 = !DILocalVariable(name: "msgs1", scope: !25, file: !2, line: 15, type: !13) +!36 = !DILocation(line: 15, column: 3, scope: !25) +!37 = !DILocalVariable(name: "$send.one_msg_1", scope: !25, file: !2, line: 15, type: !13) +!38 = !DILocation(line: 15, column: 11, scope: !25) +!39 = !DILocation(line: 16, column: 3, scope: !25) +!40 = distinct !DISubprogram(name: "SendMsg", linkageName: "SendMsg", scope: !2, file: !2, line: 13, type: !4, scopeLine: 13, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!41 = !DILocation(line: 13, column: 12, scope: !40) +!42 = distinct !DISubprogram(name: "SendMsg2", linkageName: "SendMsg2", scope: !2, file: !2, line: 19, type: !4, scopeLine: 19, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!43 = !DILocalVariable(name: "_sender", scope: !42, file: !2, line: 19, type: !27) +!44 = !DILocation(line: 19, column: 12, scope: !42) +!45 = !DILocalVariable(name: "_origin", scope: !42, file: !2, line: 19, type: !27) +!46 = !DILocalVariable(name: "_amount", scope: !42, file: !2, line: 19, type: !31) +!47 = !DILocalVariable(name: "msg1", scope: !42, file: !2, line: 20, type: !9) +!48 = !DILocation(line: 20, column: 3, scope: !42) +!49 = !DILocation(line: 20, column: 10, scope: !42) +!50 = !DILocalVariable(name: "msg2", scope: !42, file: !2, line: 21, type: !9) +!51 = !DILocation(line: 21, column: 3, scope: !42) +!52 = !DILocation(line: 21, column: 10, scope: !42) +!53 = !DILocalVariable(name: "msgs1", scope: !42, file: !2, line: 22, type: !13) +!54 = !DILocation(line: 22, column: 3, scope: !42) +!55 = !DILocalVariable(name: "$send.one_msg_2", scope: !42, file: !2, line: 22, type: !13) +!56 = !DILocation(line: 22, column: 11, scope: !42) +!57 = !DILocalVariable(name: "msgs2", scope: !42, file: !2, line: 23, type: !13) +!58 = !DILocation(line: 23, column: 3, scope: !42) +!59 = !DILocation(line: 23, column: 11, scope: !42) +!60 = !DILocation(line: 24, column: 3, scope: !42) +!61 = distinct !DISubprogram(name: "SendMsg2", linkageName: "SendMsg2", scope: !2, file: !2, line: 19, type: !4, scopeLine: 19, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!62 = !DILocation(line: 19, column: 12, scope: !61) diff --git a/testsuite/contr/send.ll b/testsuite/contr/send.ll index ac38e0e6..d753e4b6 100644 --- a/testsuite/contr/send.ll +++ b/testsuite/contr/send.ll @@ -4,7 +4,7 @@ ; 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-pc-linux-gnu" +target triple = "x86_64-unknown-linux-gnu" %"$TyDescrTy_PrimTyp_5" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/testsuite/contr/simple-iterate.dbg.ll b/testsuite/contr/simple-iterate.dbg.ll index a7ad3e1a..7bf72e9e 100644 --- a/testsuite/contr/simple-iterate.dbg.ll +++ b/testsuite/contr/simple-iterate.dbg.ll @@ -4,7 +4,7 @@ ; 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-pc-linux-gnu" +target triple = "x86_64-unknown-linux-gnu" %"$TyDescrTy_PrimTyp_5" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } @@ -16,9 +16,9 @@ target triple = "x86_64-pc-linux-gnu" %"$TyDescr_AddrFieldTyp_43" = type { %TyDescrString, %_TyDescrTy_Typ* } %Int32 = type { i32 } %Uint32 = type { i32 } -%"$ParamDescr_147" = type { %ParamDescrString, %_TyDescrTy_Typ* } +%"$ParamDescr_155" = type { %ParamDescrString, %_TyDescrTy_Typ* } %ParamDescrString = type { i8*, i32 } -%"$TransDescr_148" = type { %ParamDescrString, i32, %"$ParamDescr_147"* } +%"$TransDescr_156" = type { %ParamDescrString, i32, %"$ParamDescr_155"* } %Uint128 = type { i128 } %String = type { i8*, i32 } %TName_List_Int32 = type { i8, %CName_Cons_Int32*, %CName_Nil_Int32* } @@ -83,21 +83,21 @@ target triple = "x86_64-pc-linux-gnu" @"$stringlit_91" = unnamed_addr constant [1 x i8] c"n" @_tydescr_table = constant [18 x %_TyDescrTy_Typ*] [%_TyDescrTy_Typ* @"$TyDescr_Event_29", %_TyDescrTy_Typ* @"$TyDescr_Int64_11", %_TyDescrTy_Typ* @"$TyDescr_Addr_45", %_TyDescrTy_Typ* @"$TyDescr_Bystr20_37", %_TyDescrTy_Typ* @"$TyDescr_Uint256_21", %_TyDescrTy_Typ* @"$TyDescr_Uint32_9", %_TyDescrTy_Typ* @"$TyDescr_Uint64_13", %_TyDescrTy_Typ* @"$TyDescr_Bnum_25", %_TyDescrTy_Typ* @"$TyDescr_Uint128_17", %_TyDescrTy_Typ* @"$TyDescr_Exception_31", %_TyDescrTy_Typ* @"$TyDescr_String_23", %_TyDescrTy_Typ* @"$TyDescr_Int256_19", %_TyDescrTy_Typ* @"$TyDescr_Int128_15", %_TyDescrTy_Typ* @"$TyDescr_Bystr_35", %_TyDescrTy_Typ* @"$TyDescr_ReplicateContr_33", %_TyDescrTy_Typ* @"$TyDescr_Message_27", %_TyDescrTy_Typ* @"$TyDescr_ADT_List_Int32_41", %_TyDescrTy_Typ* @"$TyDescr_Int32_7"] @_tydescr_table_length = constant i32 18 -@"$pname__scilla_version_149" = unnamed_addr constant [15 x i8] c"_scilla_version" -@"$pname__this_address_150" = unnamed_addr constant [13 x i8] c"_this_address" -@"$pname__creation_block_151" = unnamed_addr constant [15 x i8] c"_creation_block" -@_contract_parameters = constant [3 x %"$ParamDescr_147"] [%"$ParamDescr_147" { %ParamDescrString { i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$pname__scilla_version_149", i32 0, i32 0), i32 15 }, %_TyDescrTy_Typ* @"$TyDescr_Uint32_9" }, %"$ParamDescr_147" { %ParamDescrString { i8* getelementptr inbounds ([13 x i8], [13 x i8]* @"$pname__this_address_150", i32 0, i32 0), i32 13 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr20_37" }, %"$ParamDescr_147" { %ParamDescrString { i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$pname__creation_block_151", i32 0, i32 0), i32 15 }, %_TyDescrTy_Typ* @"$TyDescr_Bnum_25" }] +@"$pname__scilla_version_157" = unnamed_addr constant [15 x i8] c"_scilla_version" +@"$pname__this_address_158" = unnamed_addr constant [13 x i8] c"_this_address" +@"$pname__creation_block_159" = unnamed_addr constant [15 x i8] c"_creation_block" +@_contract_parameters = constant [3 x %"$ParamDescr_155"] [%"$ParamDescr_155" { %ParamDescrString { i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$pname__scilla_version_157", i32 0, i32 0), i32 15 }, %_TyDescrTy_Typ* @"$TyDescr_Uint32_9" }, %"$ParamDescr_155" { %ParamDescrString { i8* getelementptr inbounds ([13 x i8], [13 x i8]* @"$pname__this_address_158", i32 0, i32 0), i32 13 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr20_37" }, %"$ParamDescr_155" { %ParamDescrString { i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$pname__creation_block_159", i32 0, i32 0), i32 15 }, %_TyDescrTy_Typ* @"$TyDescr_Bnum_25" }] @_contract_parameters_length = constant i32 3 -@"$tpname__amount_152" = unnamed_addr constant [7 x i8] c"_amount" -@"$tpname__origin_153" = unnamed_addr constant [7 x i8] c"_origin" -@"$tpname__sender_154" = unnamed_addr constant [7 x i8] c"_sender" -@"$tpname_nlist_155" = unnamed_addr constant [5 x i8] c"nlist" -@"$tparams_NEvents_156" = unnamed_addr constant [4 x %"$ParamDescr_147"] [%"$ParamDescr_147" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_152", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_17" }, %"$ParamDescr_147" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_153", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_45" }, %"$ParamDescr_147" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_154", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_45" }, %"$ParamDescr_147" { %ParamDescrString { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$tpname_nlist_155", i32 0, i32 0), i32 5 }, %_TyDescrTy_Typ* @"$TyDescr_ADT_List_Int32_41" }] -@"$tname_NEvents_157" = unnamed_addr constant [7 x i8] c"NEvents" -@_transition_parameters = constant [1 x %"$TransDescr_148"] [%"$TransDescr_148" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tname_NEvents_157", i32 0, i32 0), i32 7 }, i32 4, %"$ParamDescr_147"* getelementptr inbounds ([4 x %"$ParamDescr_147"], [4 x %"$ParamDescr_147"]* @"$tparams_NEvents_156", i32 0, i32 0) }] +@"$tpname__amount_160" = unnamed_addr constant [7 x i8] c"_amount" +@"$tpname__origin_161" = unnamed_addr constant [7 x i8] c"_origin" +@"$tpname__sender_162" = unnamed_addr constant [7 x i8] c"_sender" +@"$tpname_nlist_163" = unnamed_addr constant [5 x i8] c"nlist" +@"$tparams_NEvents_164" = unnamed_addr constant [4 x %"$ParamDescr_155"] [%"$ParamDescr_155" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_160", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_17" }, %"$ParamDescr_155" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_161", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_45" }, %"$ParamDescr_155" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_162", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_45" }, %"$ParamDescr_155" { %ParamDescrString { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$tpname_nlist_163", i32 0, i32 0), i32 5 }, %_TyDescrTy_Typ* @"$TyDescr_ADT_List_Int32_41" }] +@"$tname_NEvents_165" = unnamed_addr constant [7 x i8] c"NEvents" +@_transition_parameters = constant [1 x %"$TransDescr_156"] [%"$TransDescr_156" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tname_NEvents_165", i32 0, i32 0), i32 7 }, i32 4, %"$ParamDescr_155"* getelementptr inbounds ([4 x %"$ParamDescr_155"], [4 x %"$ParamDescr_155"]* @"$tparams_NEvents_164", i32 0, i32 0) }] @_transition_parameters_length = constant i32 1 -define void @_init_libs() !dbg !4 { +define void @_init_libs() !dbg !3 { entry: %"$gasrem_59" = load i64, i64* @_gasrem, align 8 %"$gascmp_60" = icmp ugt i64 5, %"$gasrem_59" @@ -134,6 +134,18 @@ entry: define internal void @"$EventN_69"(%Uint128 %_amount, [20 x i8]* %"$_origin_70", [20 x i8]* %"$_sender_71", %Int32 %n) !dbg !11 { entry: + %"$n_112" = alloca %Int32, align 8 + store %Int32 %n, %Int32* %"$n_112", align 4 + call void @llvm.dbg.declare(metadata %Int32* %"$n_112", metadata !12, metadata !DIExpression()), !dbg !14 + %"$_sender_111" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_sender_71", [20 x i8]** %"$_sender_111", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_sender_111", metadata !15, metadata !DIExpression()), !dbg !17 + %"$_origin_110" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_origin_70", [20 x i8]** %"$_origin_110", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_origin_110", metadata !18, metadata !DIExpression()), !dbg !17 + %"$_amount_109" = alloca %Uint128, align 8 + store %Uint128 %_amount, %Uint128* %"$_amount_109", align 8 + call void @llvm.dbg.declare(metadata %Uint128* %"$_amount_109", metadata !19, metadata !DIExpression()), !dbg !17 %_origin = load [20 x i8], [20 x i8]* %"$_origin_70", align 1 %_sender = load [20 x i8], [20 x i8]* %"$_sender_71", align 1 %"$gasrem_72" = load i64, i64* @_gasrem, align 8 @@ -148,6 +160,7 @@ entry: %"$consume_76" = sub i64 %"$gasrem_72", 1 store i64 %"$consume_76", i64* @_gasrem, align 8 %e = alloca i8*, align 8 + call void @llvm.dbg.declare(metadata i8** %e, metadata !21, metadata !DIExpression()), !dbg !24 %"$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" @@ -182,7 +195,7 @@ entry: %"$msgobj_v_96" = getelementptr i8, i8* %"$msgobj_82", i32 65 %"$msgobj_v_97" = bitcast i8* %"$msgobj_v_96" to %Int32* store %Int32 %n, %Int32* %"$msgobj_v_97", align 4 - store i8* %"$msgobj_82", i8** %e, align 8, !dbg !12 + store i8* %"$msgobj_82", i8** %e, align 8, !dbg !25 %"$e_99" = load i8*, i8** %e, align 8 %"$_literal_cost_call_101" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Event_29", i8* %"$e_99") %"$gasrem_102" = load i64, i64* @_gasrem, align 8 @@ -198,120 +211,161 @@ entry: store i64 %"$consume_106", i64* @_gasrem, align 8 %"$execptr_load_107" = load i8*, i8** @_execptr, align 8 %"$e_108" = load i8*, i8** %e, align 8 - call void @_event(i8* %"$execptr_load_107", %_TyDescrTy_Typ* @"$TyDescr_Event_29", i8* %"$e_108"), !dbg !13 + call void @_event(i8* %"$execptr_load_107", %_TyDescrTy_Typ* @"$TyDescr_Event_29", i8* %"$e_108"), !dbg !26 ret void } +; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn +declare void @llvm.dbg.declare(metadata, metadata, metadata) #0 + declare i8* @_salloc(i8*, i64) declare i64 @_literal_cost(%_TyDescrTy_Typ*, i8*) declare void @_event(i8*, %_TyDescrTy_Typ*, i8*) -define internal void @"$NEvents_109"(%Uint128 %_amount, [20 x i8]* %"$_origin_110", [20 x i8]* %"$_sender_111", %TName_List_Int32* %nlist) !dbg !14 { +define internal void @"$NEvents_113"(%Uint128 %_amount, [20 x i8]* %"$_origin_114", [20 x i8]* %"$_sender_115", %TName_List_Int32* %nlist) !dbg !27 { entry: - %_origin = load [20 x i8], [20 x i8]* %"$_origin_110", align 1 - %_sender = load [20 x i8], [20 x i8]* %"$_sender_111", align 1 - %"$nlist_112" = bitcast %TName_List_Int32* %nlist to i8* - %"$_lengthof_call_113" = call i64 @_lengthof(%_TyDescrTy_Typ* @"$TyDescr_ADT_List_Int32_41", i8* %"$nlist_112") - %"$gasrem_114" = load i64, i64* @_gasrem, align 8 - %"$gascmp_115" = icmp ugt i64 %"$_lengthof_call_113", %"$gasrem_114" - br i1 %"$gascmp_115", label %"$out_of_gas_116", label %"$have_gas_117" - -"$out_of_gas_116": ; preds = %entry + %"$nlist_145" = alloca %TName_List_Int32*, align 8 + store %TName_List_Int32* %nlist, %TName_List_Int32** %"$nlist_145", align 8 + call void @llvm.dbg.declare(metadata %TName_List_Int32** %"$nlist_145", metadata !28, metadata !DIExpression()), !dbg !31 + %"$_sender_144" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_sender_115", [20 x i8]** %"$_sender_144", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_sender_144", metadata !32, metadata !DIExpression()), !dbg !33 + %"$_origin_143" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_origin_114", [20 x i8]** %"$_origin_143", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_origin_143", metadata !34, metadata !DIExpression()), !dbg !33 + %"$_amount_142" = alloca %Uint128, align 8 + store %Uint128 %_amount, %Uint128* %"$_amount_142", align 8 + call void @llvm.dbg.declare(metadata %Uint128* %"$_amount_142", metadata !35, metadata !DIExpression()), !dbg !33 + %_origin = load [20 x i8], [20 x i8]* %"$_origin_114", align 1 + %_sender = load [20 x i8], [20 x i8]* %"$_sender_115", align 1 + %"$nlist_116" = bitcast %TName_List_Int32* %nlist to i8* + %"$_lengthof_call_117" = call i64 @_lengthof(%_TyDescrTy_Typ* @"$TyDescr_ADT_List_Int32_41", i8* %"$nlist_116") + %"$gasrem_118" = load i64, i64* @_gasrem, align 8 + %"$gascmp_119" = icmp ugt i64 %"$_lengthof_call_117", %"$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_117" + br label %"$have_gas_121" -"$have_gas_117": ; preds = %"$out_of_gas_116", %entry - %"$consume_118" = sub i64 %"$gasrem_114", %"$_lengthof_call_113" - store i64 %"$consume_118", i64* @_gasrem, align 8 +"$have_gas_121": ; preds = %"$out_of_gas_120", %entry + %"$consume_122" = sub i64 %"$gasrem_118", %"$_lengthof_call_117" + store i64 %"$consume_122", i64* @_gasrem, align 8 %"$nlist_1" = alloca %TName_List_Int32*, align 8 - store %TName_List_Int32* %nlist, %TName_List_Int32** %"$nlist_1", align 8, !dbg !15 - br label %"$loop_header_120" - -"$loop_header_120": ; preds = %"$Cons_126", %"$have_gas_117" - %"$$nlist_1_122" = load %TName_List_Int32*, %TName_List_Int32** %"$nlist_1", align 8 - %"$$nlist_1_tag_123" = getelementptr inbounds %TName_List_Int32, %TName_List_Int32* %"$$nlist_1_122", i32 0, i32 0 - %"$$nlist_1_tag_124" = load i8, i8* %"$$nlist_1_tag_123", align 1 - switch i8 %"$$nlist_1_tag_124", label %"$empty_default_125" [ - i8 0, label %"$Cons_126" - i8 1, label %"$Nil_136" - ], !dbg !15 - -"$Cons_126": ; preds = %"$loop_header_120" - %"$$nlist_1_127" = bitcast %TName_List_Int32* %"$$nlist_1_122" to %CName_Cons_Int32* - %"$$list_cur_3_gep_128" = getelementptr inbounds %CName_Cons_Int32, %CName_Cons_Int32* %"$$nlist_1_127", i32 0, i32 1 - %"$$list_cur_3_load_129" = load %Int32, %Int32* %"$$list_cur_3_gep_128", align 4 + call void @llvm.dbg.declare(metadata %TName_List_Int32** %"$nlist_1", metadata !36, metadata !DIExpression()), !dbg !37 + store %TName_List_Int32* %nlist, %TName_List_Int32** %"$nlist_1", align 8, !dbg !38 + br label %"$loop_header_124" + +"$loop_header_124": ; preds = %"$Cons_130", %"$have_gas_121" + %"$$nlist_1_126" = load %TName_List_Int32*, %TName_List_Int32** %"$nlist_1", align 8 + %"$$nlist_1_tag_127" = getelementptr inbounds %TName_List_Int32, %TName_List_Int32* %"$$nlist_1_126", i32 0, i32 0 + %"$$nlist_1_tag_128" = load i8, i8* %"$$nlist_1_tag_127", align 1 + switch i8 %"$$nlist_1_tag_128", label %"$empty_default_129" [ + i8 0, label %"$Cons_130" + i8 1, label %"$Nil_140" + ], !dbg !38 + +"$Cons_130": ; preds = %"$loop_header_124" + %"$$nlist_1_131" = bitcast %TName_List_Int32* %"$$nlist_1_126" to %CName_Cons_Int32* + %"$$list_cur_3_gep_132" = getelementptr inbounds %CName_Cons_Int32, %CName_Cons_Int32* %"$$nlist_1_131", i32 0, i32 1 + %"$$list_cur_3_load_133" = load %Int32, %Int32* %"$$list_cur_3_gep_132", align 4 %"$list_cur_3" = alloca %Int32, align 8 - store %Int32 %"$$list_cur_3_load_129", %Int32* %"$list_cur_3", align 4 - %"$$list_next_4_gep_130" = getelementptr inbounds %CName_Cons_Int32, %CName_Cons_Int32* %"$$nlist_1_127", i32 0, i32 2 - %"$$list_next_4_load_131" = load %TName_List_Int32*, %TName_List_Int32** %"$$list_next_4_gep_130", align 8 + store %Int32 %"$$list_cur_3_load_133", %Int32* %"$list_cur_3", align 4 + %"$$list_next_4_gep_134" = getelementptr inbounds %CName_Cons_Int32, %CName_Cons_Int32* %"$$nlist_1_131", i32 0, i32 2 + %"$$list_next_4_load_135" = load %TName_List_Int32*, %TName_List_Int32** %"$$list_next_4_gep_134", align 8 %"$list_next_4" = alloca %TName_List_Int32*, align 8 - store %TName_List_Int32* %"$$list_next_4_load_131", %TName_List_Int32** %"$list_next_4", align 8 - %"$EventN__origin_132" = alloca [20 x i8], align 1 - store [20 x i8] %_origin, [20 x i8]* %"$EventN__origin_132", align 1 - %"$EventN__sender_133" = alloca [20 x i8], align 1 - store [20 x i8] %_sender, [20 x i8]* %"$EventN__sender_133", align 1 - %"$$list_cur_3_134" = load %Int32, %Int32* %"$list_cur_3", align 4 - call void @"$EventN_69"(%Uint128 %_amount, [20 x i8]* %"$EventN__origin_132", [20 x i8]* %"$EventN__sender_133", %Int32 %"$$list_cur_3_134"), !dbg !16 - %"$$list_next_4_135" = load %TName_List_Int32*, %TName_List_Int32** %"$list_next_4", align 8 - store %TName_List_Int32* %"$$list_next_4_135", %TName_List_Int32** %"$nlist_1", align 8, !dbg !19 - br label %"$loop_header_120" - -"$Nil_136": ; preds = %"$loop_header_120" - %"$$nlist_1_137" = bitcast %TName_List_Int32* %"$$nlist_1_122" to %CName_Nil_Int32* - br label %"$matchsucc_121" - -"$empty_default_125": ; preds = %"$loop_header_120" - br label %"$matchsucc_121" - -"$matchsucc_121": ; preds = %"$Nil_136", %"$empty_default_125" - br label %"$loop_succ_119" - -"$loop_succ_119": ; preds = %"$matchsucc_121" + store %TName_List_Int32* %"$$list_next_4_load_135", %TName_List_Int32** %"$list_next_4", align 8 + %"$EventN__origin_136" = alloca [20 x i8], align 1 + store [20 x i8] %_origin, [20 x i8]* %"$EventN__origin_136", align 1 + %"$EventN__sender_137" = alloca [20 x i8], align 1 + store [20 x i8] %_sender, [20 x i8]* %"$EventN__sender_137", align 1 + %"$$list_cur_3_138" = load %Int32, %Int32* %"$list_cur_3", align 4 + call void @"$EventN_69"(%Uint128 %_amount, [20 x i8]* %"$EventN__origin_136", [20 x i8]* %"$EventN__sender_137", %Int32 %"$$list_cur_3_138"), !dbg !39 + %"$$list_next_4_139" = load %TName_List_Int32*, %TName_List_Int32** %"$list_next_4", align 8 + store %TName_List_Int32* %"$$list_next_4_139", %TName_List_Int32** %"$nlist_1", align 8, !dbg !42 + br label %"$loop_header_124" + +"$Nil_140": ; preds = %"$loop_header_124" + %"$$nlist_1_141" = bitcast %TName_List_Int32* %"$$nlist_1_126" to %CName_Nil_Int32* + br label %"$matchsucc_125" + +"$empty_default_129": ; preds = %"$loop_header_124" + br label %"$matchsucc_125" + +"$matchsucc_125": ; preds = %"$Nil_140", %"$empty_default_129" + br label %"$loop_succ_123" + +"$loop_succ_123": ; preds = %"$matchsucc_125" ret void } declare i64 @_lengthof(%_TyDescrTy_Typ*, i8*) -define void @NEvents(i8* %0) !dbg !20 { +define void @NEvents(i8* %0) !dbg !43 { entry: - %"$_amount_139" = getelementptr i8, i8* %0, i32 0 - %"$_amount_140" = bitcast i8* %"$_amount_139" to %Uint128* - %_amount = load %Uint128, %Uint128* %"$_amount_140", align 8 - %"$_origin_141" = getelementptr i8, i8* %0, i32 16 - %"$_origin_142" = bitcast i8* %"$_origin_141" to [20 x i8]* - %"$_sender_143" = getelementptr i8, i8* %0, i32 36 - %"$_sender_144" = bitcast i8* %"$_sender_143" to [20 x i8]* - %"$nlist_145" = getelementptr i8, i8* %0, i32 56 - %"$nlist_146" = bitcast i8* %"$nlist_145" to %TName_List_Int32** - %nlist = load %TName_List_Int32*, %TName_List_Int32** %"$nlist_146", align 8 - call void @"$NEvents_109"(%Uint128 %_amount, [20 x i8]* %"$_origin_142", [20 x i8]* %"$_sender_144", %TName_List_Int32* %nlist), !dbg !21 + %"$_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]* + %"$nlist_153" = getelementptr i8, i8* %0, i32 56 + %"$nlist_154" = bitcast i8* %"$nlist_153" to %TName_List_Int32** + %nlist = load %TName_List_Int32*, %TName_List_Int32** %"$nlist_154", align 8 + call void @"$NEvents_113"(%Uint128 %_amount, [20 x i8]* %"$_origin_150", [20 x i8]* %"$_sender_152", %TName_List_Int32* %nlist), !dbg !44 ret void } +attributes #0 = { nocallback nofree nosync nounwind readnone speculatable willreturn } + !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) +!1 = distinct !DICompileUnit(language: DW_LANG_C89, file: !2, producer: "Scilla Compiler", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false) !2 = !DIFile(filename: "simple-iterate.scilla", directory: "codegen/contr") -!3 = !{} -!4 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !5, file: !5, type: !6, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!5 = !DIFile(filename: ".", directory: ".") -!6 = !DISubroutineType(types: !7) -!7 = !{!8} -!8 = !DIBasicType(tag: DW_TAG_unspecified_type, name: "void") -!9 = !DILocation(line: 0, scope: !4) -!10 = distinct !DISubprogram(name: "_deploy_ops", linkageName: "_deploy_ops", scope: !5, file: !5, type: !6, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!11 = distinct !DISubprogram(name: "EventN", linkageName: "EventN", scope: !2, file: !2, line: 7, type: !6, scopeLine: 7, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!12 = !DILocation(line: 8, column: 7, scope: !11) -!13 = !DILocation(line: 9, column: 3, scope: !11) -!14 = distinct !DISubprogram(name: "NEvents", linkageName: "NEvents", scope: !2, file: !2, line: 12, type: !6, scopeLine: 12, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!15 = !DILocation(line: 13, column: 3, scope: !14) -!16 = !DILocation(line: 13, column: 16, scope: !17) -!17 = distinct !DILexicalBlock(scope: !18, file: !2, line: 13, column: 3) -!18 = distinct !DILexicalBlock(scope: !14, file: !2, line: 13, column: 3) -!19 = !DILocation(line: 13, column: 3, scope: !17) -!20 = distinct !DISubprogram(name: "NEvents", linkageName: "NEvents", scope: !2, file: !2, line: 12, type: !6, scopeLine: 12, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!21 = !DILocation(line: 12, column: 12, scope: !20) +!3 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !4, file: !4, type: !5, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!4 = !DIFile(filename: ".", directory: ".") +!5 = !DISubroutineType(types: !6) +!6 = !{!7} +!7 = !DIBasicType(tag: DW_TAG_unspecified_type, name: "void") +!8 = !{} +!9 = !DILocation(line: 0, scope: !3) +!10 = distinct !DISubprogram(name: "_deploy_ops", linkageName: "_deploy_ops", scope: !4, file: !4, type: !5, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!11 = distinct !DISubprogram(name: "EventN", linkageName: "EventN", scope: !2, file: !2, line: 7, type: !5, scopeLine: 7, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!12 = !DILocalVariable(name: "n", scope: !11, file: !2, line: 7, type: !13) +!13 = !DIBasicType(name: "Int32", size: 4) +!14 = !DILocation(line: 7, column: 19, scope: !11) +!15 = !DILocalVariable(name: "_sender", scope: !11, file: !2, line: 7, type: !16) +!16 = !DIBasicType(name: "ByStr20 with end", size: 20) +!17 = !DILocation(line: 7, column: 11, scope: !11) +!18 = !DILocalVariable(name: "_origin", scope: !11, file: !2, line: 7, type: !16) +!19 = !DILocalVariable(name: "_amount", scope: !11, file: !2, line: 7, type: !20) +!20 = !DIBasicType(name: "Uint128", size: 16) +!21 = !DILocalVariable(name: "e", scope: !11, file: !2, line: 8, type: !22) +!22 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "Event", baseType: !23, size: 8, align: 8, dwarfAddressSpace: 0) +!23 = !DIBasicType(name: "Event", size: 8) +!24 = !DILocation(line: 8, column: 3, scope: !11) +!25 = !DILocation(line: 8, column: 7, scope: !11) +!26 = !DILocation(line: 9, column: 3, scope: !11) +!27 = distinct !DISubprogram(name: "NEvents", linkageName: "NEvents", scope: !2, file: !2, line: 12, type: !5, scopeLine: 12, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!28 = !DILocalVariable(name: "nlist", scope: !27, file: !2, line: 12, type: !29) +!29 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "List (Int32)", baseType: !30, size: 8, align: 8, dwarfAddressSpace: 0) +!30 = !DIBasicType(name: "List (Int32)", size: 8) +!31 = !DILocation(line: 12, column: 21, scope: !27) +!32 = !DILocalVariable(name: "_sender", scope: !27, file: !2, line: 12, type: !16) +!33 = !DILocation(line: 12, column: 12, scope: !27) +!34 = !DILocalVariable(name: "_origin", scope: !27, file: !2, line: 12, type: !16) +!35 = !DILocalVariable(name: "_amount", scope: !27, file: !2, line: 12, type: !20) +!36 = !DILocalVariable(name: "$nlist_1", scope: !27, file: !2, line: 13, type: !29) +!37 = !DILocation(line: 13, column: 10, scope: !27) +!38 = !DILocation(line: 13, column: 3, scope: !27) +!39 = !DILocation(line: 13, column: 16, scope: !40) +!40 = distinct !DILexicalBlock(scope: !41, file: !2, line: 13, column: 3) +!41 = distinct !DILexicalBlock(scope: !27, file: !2, line: 13, column: 3) +!42 = !DILocation(line: 13, column: 3, scope: !40) +!43 = distinct !DISubprogram(name: "NEvents", linkageName: "NEvents", scope: !2, file: !2, line: 12, type: !5, scopeLine: 12, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!44 = !DILocation(line: 12, column: 12, scope: !43) diff --git a/testsuite/contr/simple-iterate.ll b/testsuite/contr/simple-iterate.ll index 7d5e7a51..01addc71 100644 --- a/testsuite/contr/simple-iterate.ll +++ b/testsuite/contr/simple-iterate.ll @@ -4,7 +4,7 @@ ; 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-pc-linux-gnu" +target triple = "x86_64-unknown-linux-gnu" %"$TyDescrTy_PrimTyp_5" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/testsuite/contr/simple-map.dbg.ll b/testsuite/contr/simple-map.dbg.ll index 815c9f95..76d86aac 100644 --- a/testsuite/contr/simple-map.dbg.ll +++ b/testsuite/contr/simple-map.dbg.ll @@ -4,7 +4,7 @@ ; 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-pc-linux-gnu" +target triple = "x86_64-unknown-linux-gnu" %"$TyDescrTy_PrimTyp_5" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } @@ -17,9 +17,9 @@ target triple = "x86_64-pc-linux-gnu" %"$TyDescr_AddrFieldTyp_44" = type { %TyDescrString, %_TyDescrTy_Typ* } %Int32 = type { i32 } %Uint32 = type { i32 } -%"$ParamDescr_316" = type { %ParamDescrString, %_TyDescrTy_Typ* } +%"$ParamDescr_328" = type { %ParamDescrString, %_TyDescrTy_Typ* } %ParamDescrString = type { i8*, i32 } -%"$TransDescr_317" = type { %ParamDescrString, i32, %"$ParamDescr_316"* } +%"$TransDescr_329" = type { %ParamDescrString, i32, %"$ParamDescr_328"* } %"$$fundef_2_env_61" = type { %Int32 } %Map_ByStr20_Int32 = type { [20 x i8], %Int32 } %Uint128 = type { i128 } @@ -84,41 +84,45 @@ target triple = "x86_64-pc-linux-gnu" @_cparam__scilla_version = global %Uint32 zeroinitializer @_cparam__this_address = global [20 x i8] zeroinitializer @_cparam__creation_block = global i8* null -@"$access_count_107" = unnamed_addr constant [13 x i8] c"access_count\00" -@"$access_count_115" = unnamed_addr constant [13 x i8] c"access_count\00" -@"$access_count_172" = unnamed_addr constant [13 x i8] c"access_count\00" -@"$access_count_191" = unnamed_addr constant [13 x i8] c"access_count\00" -@"$access_count_207" = unnamed_addr constant [13 x i8] c"access_count\00" -@"$access_count_260" = unnamed_addr constant [13 x i8] c"access_count\00" -@"$access_count_278" = unnamed_addr constant [13 x i8] c"access_count\00" +@"$access_count_108" = unnamed_addr constant [13 x i8] c"access_count\00" +@"$access_count_116" = unnamed_addr constant [13 x i8] c"access_count\00" +@"$access_count_173" = unnamed_addr constant [13 x i8] c"access_count\00" +@"$access_count_192" = unnamed_addr constant [13 x i8] c"access_count\00" +@"$access_count_211" = unnamed_addr constant [13 x i8] c"access_count\00" +@"$access_count_264" = unnamed_addr constant [13 x i8] c"access_count\00" +@"$access_count_282" = unnamed_addr constant [13 x i8] c"access_count\00" @_tydescr_table = constant [19 x %_TyDescrTy_Typ*] [%_TyDescrTy_Typ* @"$TyDescr_Event_29", %_TyDescrTy_Typ* @"$TyDescr_Int64_11", %_TyDescrTy_Typ* @"$TyDescr_Addr_46", %_TyDescrTy_Typ* @"$TyDescr_Bystr20_37", %_TyDescrTy_Typ* @"$TyDescr_Uint256_21", %_TyDescrTy_Typ* @"$TyDescr_Uint32_9", %_TyDescrTy_Typ* @"$TyDescr_Uint64_13", %_TyDescrTy_Typ* @"$TyDescr_Bnum_25", %_TyDescrTy_Typ* @"$TyDescr_Uint128_17", %_TyDescrTy_Typ* @"$TyDescr_ADT_Option_Int32_41", %_TyDescrTy_Typ* @"$TyDescr_Exception_31", %_TyDescrTy_Typ* @"$TyDescr_String_23", %_TyDescrTy_Typ* @"$TyDescr_Int256_19", %_TyDescrTy_Typ* @"$TyDescr_Int128_15", %_TyDescrTy_Typ* @"$TyDescr_Bystr_35", %_TyDescrTy_Typ* @"$TyDescr_ReplicateContr_33", %_TyDescrTy_Typ* @"$TyDescr_Message_27", %_TyDescrTy_Typ* @"$TyDescr_Map_43", %_TyDescrTy_Typ* @"$TyDescr_Int32_7"] @_tydescr_table_length = constant i32 19 -@"$pname__scilla_version_318" = unnamed_addr constant [15 x i8] c"_scilla_version" -@"$pname__this_address_319" = unnamed_addr constant [13 x i8] c"_this_address" -@"$pname__creation_block_320" = unnamed_addr constant [15 x i8] c"_creation_block" -@_contract_parameters = constant [3 x %"$ParamDescr_316"] [%"$ParamDescr_316" { %ParamDescrString { i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$pname__scilla_version_318", i32 0, i32 0), i32 15 }, %_TyDescrTy_Typ* @"$TyDescr_Uint32_9" }, %"$ParamDescr_316" { %ParamDescrString { i8* getelementptr inbounds ([13 x i8], [13 x i8]* @"$pname__this_address_319", i32 0, i32 0), i32 13 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr20_37" }, %"$ParamDescr_316" { %ParamDescrString { i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$pname__creation_block_320", i32 0, i32 0), i32 15 }, %_TyDescrTy_Typ* @"$TyDescr_Bnum_25" }] +@"$pname__scilla_version_330" = unnamed_addr constant [15 x i8] c"_scilla_version" +@"$pname__this_address_331" = unnamed_addr constant [13 x i8] c"_this_address" +@"$pname__creation_block_332" = unnamed_addr constant [15 x i8] c"_creation_block" +@_contract_parameters = constant [3 x %"$ParamDescr_328"] [%"$ParamDescr_328" { %ParamDescrString { i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$pname__scilla_version_330", i32 0, i32 0), i32 15 }, %_TyDescrTy_Typ* @"$TyDescr_Uint32_9" }, %"$ParamDescr_328" { %ParamDescrString { i8* getelementptr inbounds ([13 x i8], [13 x i8]* @"$pname__this_address_331", i32 0, i32 0), i32 13 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr20_37" }, %"$ParamDescr_328" { %ParamDescrString { i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$pname__creation_block_332", i32 0, i32 0), i32 15 }, %_TyDescrTy_Typ* @"$TyDescr_Bnum_25" }] @_contract_parameters_length = constant i32 3 -@"$tpname__amount_321" = unnamed_addr constant [7 x i8] c"_amount" -@"$tpname__origin_322" = unnamed_addr constant [7 x i8] c"_origin" -@"$tpname__sender_323" = unnamed_addr constant [7 x i8] c"_sender" -@"$tparams_Increment_324" = unnamed_addr constant [3 x %"$ParamDescr_316"] [%"$ParamDescr_316" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_321", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_17" }, %"$ParamDescr_316" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_322", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_46" }, %"$ParamDescr_316" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_323", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_46" }] -@"$tname_Increment_325" = unnamed_addr constant [9 x i8] c"Increment" -@"$tpname__amount_326" = unnamed_addr constant [7 x i8] c"_amount" -@"$tpname__origin_327" = unnamed_addr constant [7 x i8] c"_origin" -@"$tpname__sender_328" = unnamed_addr constant [7 x i8] c"_sender" -@"$tpname_nopt_329" = unnamed_addr constant [4 x i8] c"nopt" -@"$tparams_IncrementNOpt_330" = unnamed_addr constant [4 x %"$ParamDescr_316"] [%"$ParamDescr_316" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_326", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_17" }, %"$ParamDescr_316" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_327", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_46" }, %"$ParamDescr_316" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_328", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_46" }, %"$ParamDescr_316" { %ParamDescrString { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$tpname_nopt_329", i32 0, i32 0), i32 4 }, %_TyDescrTy_Typ* @"$TyDescr_ADT_Option_Int32_41" }] -@"$tname_IncrementNOpt_331" = unnamed_addr constant [13 x i8] c"IncrementNOpt" -@_transition_parameters = constant [2 x %"$TransDescr_317"] [%"$TransDescr_317" { %ParamDescrString { i8* getelementptr inbounds ([9 x i8], [9 x i8]* @"$tname_Increment_325", i32 0, i32 0), i32 9 }, i32 3, %"$ParamDescr_316"* getelementptr inbounds ([3 x %"$ParamDescr_316"], [3 x %"$ParamDescr_316"]* @"$tparams_Increment_324", i32 0, i32 0) }, %"$TransDescr_317" { %ParamDescrString { i8* getelementptr inbounds ([13 x i8], [13 x i8]* @"$tname_IncrementNOpt_331", i32 0, i32 0), i32 13 }, i32 4, %"$ParamDescr_316"* getelementptr inbounds ([4 x %"$ParamDescr_316"], [4 x %"$ParamDescr_316"]* @"$tparams_IncrementNOpt_330", i32 0, i32 0) }] +@"$tpname__amount_333" = unnamed_addr constant [7 x i8] c"_amount" +@"$tpname__origin_334" = unnamed_addr constant [7 x i8] c"_origin" +@"$tpname__sender_335" = unnamed_addr constant [7 x i8] c"_sender" +@"$tparams_Increment_336" = unnamed_addr constant [3 x %"$ParamDescr_328"] [%"$ParamDescr_328" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_333", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_17" }, %"$ParamDescr_328" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_334", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_46" }, %"$ParamDescr_328" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_335", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_46" }] +@"$tname_Increment_337" = unnamed_addr constant [9 x i8] c"Increment" +@"$tpname__amount_338" = unnamed_addr constant [7 x i8] c"_amount" +@"$tpname__origin_339" = unnamed_addr constant [7 x i8] c"_origin" +@"$tpname__sender_340" = unnamed_addr constant [7 x i8] c"_sender" +@"$tpname_nopt_341" = unnamed_addr constant [4 x i8] c"nopt" +@"$tparams_IncrementNOpt_342" = unnamed_addr constant [4 x %"$ParamDescr_328"] [%"$ParamDescr_328" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_338", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_17" }, %"$ParamDescr_328" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_339", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_46" }, %"$ParamDescr_328" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_340", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_46" }, %"$ParamDescr_328" { %ParamDescrString { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$tpname_nopt_341", i32 0, i32 0), i32 4 }, %_TyDescrTy_Typ* @"$TyDescr_ADT_Option_Int32_41" }] +@"$tname_IncrementNOpt_343" = unnamed_addr constant [13 x i8] c"IncrementNOpt" +@_transition_parameters = constant [2 x %"$TransDescr_329"] [%"$TransDescr_329" { %ParamDescrString { i8* getelementptr inbounds ([9 x i8], [9 x i8]* @"$tname_Increment_337", i32 0, i32 0), i32 9 }, i32 3, %"$ParamDescr_328"* getelementptr inbounds ([3 x %"$ParamDescr_328"], [3 x %"$ParamDescr_328"]* @"$tparams_Increment_336", i32 0, i32 0) }, %"$TransDescr_329" { %ParamDescrString { i8* getelementptr inbounds ([13 x i8], [13 x i8]* @"$tname_IncrementNOpt_343", i32 0, i32 0), i32 13 }, i32 4, %"$ParamDescr_328"* getelementptr inbounds ([4 x %"$ParamDescr_328"], [4 x %"$ParamDescr_328"]* @"$tparams_IncrementNOpt_342", i32 0, i32 0) }] @_transition_parameters_length = constant i32 2 -define internal %Int32 @"$fundef_2"(%"$$fundef_2_env_61"* %0, %Int32 %1) !dbg !4 { +define internal %Int32 @"$fundef_2"(%"$$fundef_2_env_61"* %0, %Int32 %1) !dbg !3 { entry: + %"$a_72" = alloca %Int32, align 8 + store %Int32 %1, %Int32* %"$a_72", align 4 + call void @llvm.dbg.declare(metadata %Int32* %"$a_72", metadata !8, metadata !DIExpression()), !dbg !10 %"$$fundef_2_env_simple-map.one_62" = getelementptr inbounds %"$$fundef_2_env_61", %"$$fundef_2_env_61"* %0, i32 0, i32 0 %"$simple-map.one_envload_63" = load %Int32, %Int32* %"$$fundef_2_env_simple-map.one_62", align 4 %simple-map.one = alloca %Int32, align 8 store %Int32 %"$simple-map.one_envload_63", %Int32* %simple-map.one, align 4 %"$retval_3" = alloca %Int32, align 8 + call void @llvm.dbg.declare(metadata %Int32* %"$retval_3", metadata !11, metadata !DIExpression()), !dbg !12 %"$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" @@ -131,100 +135,104 @@ entry: %"$consume_68" = sub i64 %"$gasrem_64", 4 store i64 %"$consume_68", i64* @_gasrem, align 8 %"$simple-map.one_69" = load %Int32, %Int32* %simple-map.one, align 4 - %"$add_call_70" = call %Int32 @_add_Int32(%Int32 %1, %Int32 %"$simple-map.one_69"), !dbg !8 - store %Int32 %"$add_call_70", %Int32* %"$retval_3", align 4, !dbg !8 + %"$add_call_70" = call %Int32 @_add_Int32(%Int32 %1, %Int32 %"$simple-map.one_69"), !dbg !12 + store %Int32 %"$add_call_70", %Int32* %"$retval_3", align 4, !dbg !12 %"$$retval_3_71" = load %Int32, %Int32* %"$retval_3", align 4 ret %Int32 %"$$retval_3_71" } +; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn +declare void @llvm.dbg.declare(metadata, metadata, metadata) #0 + declare void @_out_of_gas() declare %Int32 @_add_Int32(%Int32, %Int32) -define void @_init_libs() !dbg !9 { +define void @_init_libs() !dbg !13 { entry: - %"$gasrem_72" = load i64, i64* @_gasrem, align 8 - %"$gascmp_73" = icmp ugt i64 5, %"$gasrem_72" - br i1 %"$gascmp_73", label %"$out_of_gas_74", label %"$have_gas_75" + %"$gasrem_73" = load i64, i64* @_gasrem, align 8 + %"$gascmp_74" = icmp ugt i64 5, %"$gasrem_73" + br i1 %"$gascmp_74", label %"$out_of_gas_75", label %"$have_gas_76" -"$out_of_gas_74": ; preds = %entry +"$out_of_gas_75": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_75" + br label %"$have_gas_76" -"$have_gas_75": ; preds = %"$out_of_gas_74", %entry - %"$consume_76" = sub i64 %"$gasrem_72", 5 - store i64 %"$consume_76", i64* @_gasrem, align 8 - store %Int32 { i32 5 }, %Int32* @"$_gas_charge_acc_0", align 4, !dbg !11 - %"$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" +"$have_gas_76": ; preds = %"$out_of_gas_75", %entry + %"$consume_77" = sub i64 %"$gasrem_73", 5 + store i64 %"$consume_77", i64* @_gasrem, align 8 + store %Int32 { i32 5 }, %Int32* @"$_gas_charge_acc_0", align 4, !dbg !15 + %"$gasrem_78" = load i64, i64* @_gasrem, align 8 + %"$gascmp_79" = icmp ugt i64 1, %"$gasrem_78" + br i1 %"$gascmp_79", label %"$out_of_gas_80", label %"$have_gas_81" -"$out_of_gas_79": ; preds = %"$have_gas_75" +"$out_of_gas_80": ; preds = %"$have_gas_76" call void @_out_of_gas() - br label %"$have_gas_80" + br label %"$have_gas_81" -"$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 - store %Int32 { i32 1 }, %Int32* @simple-map.one, align 4, !dbg !12 - %"$gasrem_82" = load i64, i64* @_gasrem, align 8 - %"$gascmp_83" = icmp ugt i64 1, %"$gasrem_82" - br i1 %"$gascmp_83", label %"$out_of_gas_84", label %"$have_gas_85" +"$have_gas_81": ; preds = %"$out_of_gas_80", %"$have_gas_76" + %"$consume_82" = sub i64 %"$gasrem_78", 1 + store i64 %"$consume_82", i64* @_gasrem, align 8 + store %Int32 { i32 1 }, %Int32* @simple-map.one, align 4, !dbg !16 + %"$gasrem_83" = load i64, i64* @_gasrem, align 8 + %"$gascmp_84" = icmp ugt i64 1, %"$gasrem_83" + br i1 %"$gascmp_84", label %"$out_of_gas_85", label %"$have_gas_86" -"$out_of_gas_84": ; preds = %"$have_gas_80" +"$out_of_gas_85": ; preds = %"$have_gas_81" 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", 1 - store i64 %"$consume_86", i64* @_gasrem, align 8 - %"$$fundef_2_envp_87_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_2_envp_87_salloc" = call i8* @_salloc(i8* %"$$fundef_2_envp_87_load", i64 4) - %"$$fundef_2_envp_87" = bitcast i8* %"$$fundef_2_envp_87_salloc" to %"$$fundef_2_env_61"* - %"$$fundef_2_env_voidp_89" = bitcast %"$$fundef_2_env_61"* %"$$fundef_2_envp_87" to i8* - %"$$fundef_2_cloval_90" = insertvalue { %Int32 (i8*, %Int32)*, i8* } { %Int32 (i8*, %Int32)* bitcast (%Int32 (%"$$fundef_2_env_61"*, %Int32)* @"$fundef_2" to %Int32 (i8*, %Int32)*), i8* undef }, i8* %"$$fundef_2_env_voidp_89", 1 - %"$$fundef_2_env_simple-map.one_91" = getelementptr inbounds %"$$fundef_2_env_61", %"$$fundef_2_env_61"* %"$$fundef_2_envp_87", i32 0, i32 0 - %"$simple-map.one_92" = load %Int32, %Int32* @simple-map.one, align 4 - store %Int32 %"$simple-map.one_92", %Int32* %"$$fundef_2_env_simple-map.one_91", align 4 - store { %Int32 (i8*, %Int32)*, i8* } %"$$fundef_2_cloval_90", { %Int32 (i8*, %Int32)*, i8* }* @simple-map.inc, align 8, !dbg !13 + br label %"$have_gas_86" + +"$have_gas_86": ; preds = %"$out_of_gas_85", %"$have_gas_81" + %"$consume_87" = sub i64 %"$gasrem_83", 1 + store i64 %"$consume_87", i64* @_gasrem, align 8 + %"$$fundef_2_envp_88_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_2_envp_88_salloc" = call i8* @_salloc(i8* %"$$fundef_2_envp_88_load", i64 4) + %"$$fundef_2_envp_88" = bitcast i8* %"$$fundef_2_envp_88_salloc" to %"$$fundef_2_env_61"* + %"$$fundef_2_env_voidp_90" = bitcast %"$$fundef_2_env_61"* %"$$fundef_2_envp_88" to i8* + %"$$fundef_2_cloval_91" = insertvalue { %Int32 (i8*, %Int32)*, i8* } { %Int32 (i8*, %Int32)* bitcast (%Int32 (%"$$fundef_2_env_61"*, %Int32)* @"$fundef_2" to %Int32 (i8*, %Int32)*), i8* undef }, i8* %"$$fundef_2_env_voidp_90", 1 + %"$$fundef_2_env_simple-map.one_92" = getelementptr inbounds %"$$fundef_2_env_61", %"$$fundef_2_env_61"* %"$$fundef_2_envp_88", i32 0, i32 0 + %"$simple-map.one_93" = load %Int32, %Int32* @simple-map.one, align 4 + store %Int32 %"$simple-map.one_93", %Int32* %"$$fundef_2_env_simple-map.one_92", align 4 + store { %Int32 (i8*, %Int32)*, i8* } %"$$fundef_2_cloval_91", { %Int32 (i8*, %Int32)*, i8* }* @simple-map.inc, align 8, !dbg !17 ret void } declare i8* @_salloc(i8*, i64) -define void @_deploy_ops() !dbg !14 { +define void @_deploy_ops() !dbg !18 { entry: - %"$gasrem_93" = load i64, i64* @_gasrem, align 8 - %"$gascmp_94" = icmp ugt i64 1, %"$gasrem_93" - br i1 %"$gascmp_94", label %"$out_of_gas_95", label %"$have_gas_96" + %"$gasrem_94" = load i64, i64* @_gasrem, align 8 + %"$gascmp_95" = icmp ugt i64 1, %"$gasrem_94" + br i1 %"$gascmp_95", label %"$out_of_gas_96", label %"$have_gas_97" -"$out_of_gas_95": ; preds = %entry +"$out_of_gas_96": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_96" + br label %"$have_gas_97" -"$have_gas_96": ; preds = %"$out_of_gas_95", %entry - %"$consume_97" = sub i64 %"$gasrem_93", 1 - store i64 %"$consume_97", i64* @_gasrem, align 8 +"$have_gas_97": ; preds = %"$out_of_gas_96", %entry + %"$consume_98" = sub i64 %"$gasrem_94", 1 + store i64 %"$consume_98", i64* @_gasrem, align 8 %"$access_count_4" = alloca %Map_ByStr20_Int32*, align 8 - %"$gasrem_98" = load i64, i64* @_gasrem, align 8 - %"$gascmp_99" = icmp ugt i64 1, %"$gasrem_98" - br i1 %"$gascmp_99", label %"$out_of_gas_100", label %"$have_gas_101" + call void @llvm.dbg.declare(metadata %Map_ByStr20_Int32** %"$access_count_4", metadata !19, metadata !DIExpression()), !dbg !22 + %"$gasrem_99" = load i64, i64* @_gasrem, align 8 + %"$gascmp_100" = icmp ugt i64 1, %"$gasrem_99" + br i1 %"$gascmp_100", label %"$out_of_gas_101", label %"$have_gas_102" -"$out_of_gas_100": ; preds = %"$have_gas_96" +"$out_of_gas_101": ; preds = %"$have_gas_97" call void @_out_of_gas() - br label %"$have_gas_101" - -"$have_gas_101": ; preds = %"$out_of_gas_100", %"$have_gas_96" - %"$consume_102" = sub i64 %"$gasrem_98", 1 - store i64 %"$consume_102", i64* @_gasrem, align 8 - %"$execptr_load_103" = load i8*, i8** @_execptr, align 8 - %"$_new_empty_map_call_104" = call i8* @_new_empty_map(i8* %"$execptr_load_103") - %"$_new_empty_map_105" = bitcast i8* %"$_new_empty_map_call_104" to %Map_ByStr20_Int32* - store %Map_ByStr20_Int32* %"$_new_empty_map_105", %Map_ByStr20_Int32** %"$access_count_4", align 8, !dbg !15 - %"$execptr_load_106" = load i8*, i8** @_execptr, align 8 - %"$$access_count_4_108" = load %Map_ByStr20_Int32*, %Map_ByStr20_Int32** %"$access_count_4", align 8 - %"$update_value_109" = bitcast %Map_ByStr20_Int32* %"$$access_count_4_108" to i8* - call void @_update_field(i8* %"$execptr_load_106", i8* getelementptr inbounds ([13 x i8], [13 x i8]* @"$access_count_107", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_43", i32 0, i8* null, i8* %"$update_value_109"), !dbg !15 + br label %"$have_gas_102" + +"$have_gas_102": ; preds = %"$out_of_gas_101", %"$have_gas_97" + %"$consume_103" = sub i64 %"$gasrem_99", 1 + store i64 %"$consume_103", i64* @_gasrem, align 8 + %"$execptr_load_104" = load i8*, i8** @_execptr, align 8 + %"$_new_empty_map_call_105" = call i8* @_new_empty_map(i8* %"$execptr_load_104") + %"$_new_empty_map_106" = bitcast i8* %"$_new_empty_map_call_105" to %Map_ByStr20_Int32* + store %Map_ByStr20_Int32* %"$_new_empty_map_106", %Map_ByStr20_Int32** %"$access_count_4", align 8, !dbg !23 + %"$execptr_load_107" = load i8*, i8** @_execptr, align 8 + %"$$access_count_4_109" = load %Map_ByStr20_Int32*, %Map_ByStr20_Int32** %"$access_count_4", align 8 + %"$update_value_110" = bitcast %Map_ByStr20_Int32* %"$$access_count_4_109" to i8* + call void @_update_field(i8* %"$execptr_load_107", i8* getelementptr inbounds ([13 x i8], [13 x i8]* @"$access_count_108", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_43", i32 0, i8* null, i8* %"$update_value_110"), !dbg !23 ret void } @@ -232,165 +240,177 @@ declare i8* @_new_empty_map(i8*) declare void @_update_field(i8*, i8*, %_TyDescrTy_Typ*, i32, i8*, i8*) -define internal void @"$Increment_110"(%Uint128 %_amount, [20 x i8]* %"$_origin_111", [20 x i8]* %"$_sender_112") !dbg !16 { +define internal void @"$Increment_111"(%Uint128 %_amount, [20 x i8]* %"$_origin_112", [20 x i8]* %"$_sender_113") !dbg !24 { entry: - %_origin = load [20 x i8], [20 x i8]* %"$_origin_111", align 1 - %_sender = load [20 x i8], [20 x i8]* %"$_sender_112", align 1 + %"$_sender_198" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_sender_113", [20 x i8]** %"$_sender_198", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_sender_198", metadata !25, metadata !DIExpression()), !dbg !27 + %"$_origin_197" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_origin_112", [20 x i8]** %"$_origin_197", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_origin_197", metadata !28, metadata !DIExpression()), !dbg !27 + %"$_amount_196" = alloca %Uint128, align 8 + store %Uint128 %_amount, %Uint128* %"$_amount_196", align 8 + call void @llvm.dbg.declare(metadata %Uint128* %"$_amount_196", metadata !29, metadata !DIExpression()), !dbg !27 + %_origin = load [20 x i8], [20 x i8]* %"$_origin_112", align 1 + %_sender = load [20 x i8], [20 x i8]* %"$_sender_113", align 1 %cur = alloca %TName_Option_Int32*, align 8 - %"$indices_buf_113_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$indices_buf_113_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_113_salloc_load", i64 20) - %"$indices_buf_113_salloc" = bitcast i8* %"$indices_buf_113_salloc_salloc" to [20 x i8]* - %"$indices_buf_113" = bitcast [20 x i8]* %"$indices_buf_113_salloc" to i8* - %"$indices_gep_114" = getelementptr i8, i8* %"$indices_buf_113", i32 0 - %indices_cast = bitcast i8* %"$indices_gep_114" to [20 x i8]* + call void @llvm.dbg.declare(metadata %TName_Option_Int32** %cur, metadata !31, metadata !DIExpression()), !dbg !34 + %"$indices_buf_114_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$indices_buf_114_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_114_salloc_load", i64 20) + %"$indices_buf_114_salloc" = bitcast i8* %"$indices_buf_114_salloc_salloc" to [20 x i8]* + %"$indices_buf_114" = bitcast [20 x i8]* %"$indices_buf_114_salloc" to i8* + %"$indices_gep_115" = getelementptr i8, i8* %"$indices_buf_114", i32 0 + %indices_cast = bitcast i8* %"$indices_gep_115" to [20 x i8]* store [20 x i8] %_sender, [20 x i8]* %indices_cast, align 1 - %"$execptr_load_116" = load i8*, i8** @_execptr, align 8 - %"$cur_call_117" = call i8* @_fetch_field(i8* %"$execptr_load_116", i8* getelementptr inbounds ([13 x i8], [13 x i8]* @"$access_count_115", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_43", i32 1, i8* %"$indices_buf_113", i32 1), !dbg !17 - %"$cur_118" = bitcast i8* %"$cur_call_117" to %TName_Option_Int32* - store %TName_Option_Int32* %"$cur_118", %TName_Option_Int32** %cur, align 8 - %"$cur_119" = load %TName_Option_Int32*, %TName_Option_Int32** %cur, align 8 - %"$$cur_119_120" = bitcast %TName_Option_Int32* %"$cur_119" to i8* - %"$_literal_cost_call_121" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_Int32_41", i8* %"$$cur_119_120") - %"$gasadd_122" = add i64 %"$_literal_cost_call_121", 0 - %"$gasadd_123" = add i64 %"$gasadd_122", 1 - %"$gasrem_124" = load i64, i64* @_gasrem, align 8 - %"$gascmp_125" = icmp ugt i64 %"$gasadd_123", %"$gasrem_124" - br i1 %"$gascmp_125", label %"$out_of_gas_126", label %"$have_gas_127" - -"$out_of_gas_126": ; preds = %entry + %"$execptr_load_117" = load i8*, i8** @_execptr, align 8 + %"$cur_call_118" = call i8* @_fetch_field(i8* %"$execptr_load_117", i8* getelementptr inbounds ([13 x i8], [13 x i8]* @"$access_count_116", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_43", i32 1, i8* %"$indices_buf_114", i32 1), !dbg !34 + %"$cur_119" = bitcast i8* %"$cur_call_118" to %TName_Option_Int32* + store %TName_Option_Int32* %"$cur_119", %TName_Option_Int32** %cur, align 8 + %"$cur_120" = load %TName_Option_Int32*, %TName_Option_Int32** %cur, align 8 + %"$$cur_120_121" = bitcast %TName_Option_Int32* %"$cur_120" to i8* + %"$_literal_cost_call_122" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_Int32_41", i8* %"$$cur_120_121") + %"$gasadd_123" = add i64 %"$_literal_cost_call_122", 0 + %"$gasadd_124" = add i64 %"$gasadd_123", 1 + %"$gasrem_125" = load i64, i64* @_gasrem, align 8 + %"$gascmp_126" = icmp ugt i64 %"$gasadd_124", %"$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_127" + br label %"$have_gas_128" -"$have_gas_127": ; preds = %"$out_of_gas_126", %entry - %"$consume_128" = sub i64 %"$gasrem_124", %"$gasadd_123" - store i64 %"$consume_128", i64* @_gasrem, align 8 - %"$gasrem_129" = load i64, i64* @_gasrem, align 8 - %"$gascmp_130" = icmp ugt i64 2, %"$gasrem_129" - br i1 %"$gascmp_130", label %"$out_of_gas_131", label %"$have_gas_132" +"$have_gas_128": ; preds = %"$out_of_gas_127", %entry + %"$consume_129" = sub i64 %"$gasrem_125", %"$gasadd_124" + store i64 %"$consume_129", i64* @_gasrem, align 8 + %"$gasrem_130" = load i64, i64* @_gasrem, align 8 + %"$gascmp_131" = icmp ugt i64 2, %"$gasrem_130" + br i1 %"$gascmp_131", label %"$out_of_gas_132", label %"$have_gas_133" -"$out_of_gas_131": ; preds = %"$have_gas_127" +"$out_of_gas_132": ; preds = %"$have_gas_128" 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", 2 - store i64 %"$consume_133", i64* @_gasrem, align 8 - %"$cur_135" = load %TName_Option_Int32*, %TName_Option_Int32** %cur, align 8 - %"$cur_tag_136" = getelementptr inbounds %TName_Option_Int32, %TName_Option_Int32* %"$cur_135", i32 0, i32 0 - %"$cur_tag_137" = load i8, i8* %"$cur_tag_136", align 1 - switch i8 %"$cur_tag_137", label %"$empty_default_138" [ - i8 0, label %"$Some_139" - i8 1, label %"$None_176" - ], !dbg !18 - -"$Some_139": ; preds = %"$have_gas_132" - %"$cur_140" = bitcast %TName_Option_Int32* %"$cur_135" to %CName_Some_Int32* - %"$i_gep_141" = getelementptr inbounds %CName_Some_Int32, %CName_Some_Int32* %"$cur_140", i32 0, i32 1 - %"$i_load_142" = load %Int32, %Int32* %"$i_gep_141", align 4 + br label %"$have_gas_133" + +"$have_gas_133": ; preds = %"$out_of_gas_132", %"$have_gas_128" + %"$consume_134" = sub i64 %"$gasrem_130", 2 + store i64 %"$consume_134", i64* @_gasrem, align 8 + %"$cur_136" = load %TName_Option_Int32*, %TName_Option_Int32** %cur, align 8 + %"$cur_tag_137" = getelementptr inbounds %TName_Option_Int32, %TName_Option_Int32* %"$cur_136", i32 0, i32 0 + %"$cur_tag_138" = load i8, i8* %"$cur_tag_137", align 1 + switch i8 %"$cur_tag_138", label %"$empty_default_139" [ + i8 0, label %"$Some_140" + i8 1, label %"$None_177" + ], !dbg !35 + +"$Some_140": ; preds = %"$have_gas_133" + %"$cur_141" = bitcast %TName_Option_Int32* %"$cur_136" to %CName_Some_Int32* + %"$i_gep_142" = getelementptr inbounds %CName_Some_Int32, %CName_Some_Int32* %"$cur_141", i32 0, i32 1 + %"$i_load_143" = load %Int32, %Int32* %"$i_gep_142", align 4 %i = alloca %Int32, align 8 - store %Int32 %"$i_load_142", %Int32* %i, align 4 - %"$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" + store %Int32 %"$i_load_143", %Int32* %i, align 4 + %"$gasrem_144" = load i64, i64* @_gasrem, align 8 + %"$gascmp_145" = icmp ugt i64 1, %"$gasrem_144" + br i1 %"$gascmp_145", label %"$out_of_gas_146", label %"$have_gas_147" -"$out_of_gas_145": ; preds = %"$Some_139" +"$out_of_gas_146": ; preds = %"$Some_140" call void @_out_of_gas() - br label %"$have_gas_146" + br label %"$have_gas_147" -"$have_gas_146": ; preds = %"$out_of_gas_145", %"$Some_139" - %"$consume_147" = sub i64 %"$gasrem_143", 1 - store i64 %"$consume_147", i64* @_gasrem, align 8 +"$have_gas_147": ; preds = %"$out_of_gas_146", %"$Some_140" + %"$consume_148" = sub i64 %"$gasrem_144", 1 + store i64 %"$consume_148", i64* @_gasrem, align 8 %j = alloca %Int32, 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" + call void @llvm.dbg.declare(metadata %Int32* %j, metadata !36, metadata !DIExpression()), !dbg !39 + %"$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_150": ; preds = %"$have_gas_146" +"$out_of_gas_151": ; preds = %"$have_gas_147" call void @_out_of_gas() - br label %"$have_gas_151" + br label %"$have_gas_152" -"$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 +"$have_gas_152": ; preds = %"$out_of_gas_151", %"$have_gas_147" + %"$consume_153" = sub i64 %"$gasrem_149", 1 + store i64 %"$consume_153", i64* @_gasrem, align 8 %"$simple-map.inc_1" = alloca %Int32, align 8 - %"$simple-map.inc_153" = load { %Int32 (i8*, %Int32)*, i8* }, { %Int32 (i8*, %Int32)*, i8* }* @simple-map.inc, align 8 - %"$simple-map.inc_fptr_154" = extractvalue { %Int32 (i8*, %Int32)*, i8* } %"$simple-map.inc_153", 0 - %"$simple-map.inc_envptr_155" = extractvalue { %Int32 (i8*, %Int32)*, i8* } %"$simple-map.inc_153", 1 - %"$i_156" = load %Int32, %Int32* %i, align 4 - %"$simple-map.inc_call_157" = call %Int32 %"$simple-map.inc_fptr_154"(i8* %"$simple-map.inc_envptr_155", %Int32 %"$i_156"), !dbg !19 - store %Int32 %"$simple-map.inc_call_157", %Int32* %"$simple-map.inc_1", align 4, !dbg !19 - %"$$simple-map.inc_1_158" = load %Int32, %Int32* %"$simple-map.inc_1", align 4 - store %Int32 %"$$simple-map.inc_1_158", %Int32* %j, align 4, !dbg !19 - %"$_literal_cost_j_159" = alloca %Int32, align 8 - %"$j_160" = load %Int32, %Int32* %j, align 4 - store %Int32 %"$j_160", %Int32* %"$_literal_cost_j_159", align 4 - %"$$_literal_cost_j_159_161" = bitcast %Int32* %"$_literal_cost_j_159" to i8* - %"$_literal_cost_call_162" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Int32_7", i8* %"$$_literal_cost_j_159_161") - %"$gasadd_163" = add i64 %"$_literal_cost_call_162", 1 - %"$gasrem_164" = load i64, i64* @_gasrem, align 8 - %"$gascmp_165" = icmp ugt i64 %"$gasadd_163", %"$gasrem_164" - br i1 %"$gascmp_165", label %"$out_of_gas_166", label %"$have_gas_167" - -"$out_of_gas_166": ; preds = %"$have_gas_151" + call void @llvm.dbg.declare(metadata %Int32* %"$simple-map.inc_1", metadata !40, metadata !DIExpression()), !dbg !41 + %"$simple-map.inc_154" = load { %Int32 (i8*, %Int32)*, i8* }, { %Int32 (i8*, %Int32)*, i8* }* @simple-map.inc, align 8 + %"$simple-map.inc_fptr_155" = extractvalue { %Int32 (i8*, %Int32)*, i8* } %"$simple-map.inc_154", 0 + %"$simple-map.inc_envptr_156" = extractvalue { %Int32 (i8*, %Int32)*, i8* } %"$simple-map.inc_154", 1 + %"$i_157" = load %Int32, %Int32* %i, align 4 + %"$simple-map.inc_call_158" = call %Int32 %"$simple-map.inc_fptr_155"(i8* %"$simple-map.inc_envptr_156", %Int32 %"$i_157"), !dbg !41 + store %Int32 %"$simple-map.inc_call_158", %Int32* %"$simple-map.inc_1", align 4, !dbg !41 + %"$$simple-map.inc_1_159" = load %Int32, %Int32* %"$simple-map.inc_1", align 4 + store %Int32 %"$$simple-map.inc_1_159", %Int32* %j, align 4, !dbg !41 + %"$_literal_cost_j_160" = alloca %Int32, align 8 + %"$j_161" = load %Int32, %Int32* %j, align 4 + store %Int32 %"$j_161", %Int32* %"$_literal_cost_j_160", align 4 + %"$$_literal_cost_j_160_162" = bitcast %Int32* %"$_literal_cost_j_160" to i8* + %"$_literal_cost_call_163" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Int32_7", i8* %"$$_literal_cost_j_160_162") + %"$gasadd_164" = add i64 %"$_literal_cost_call_163", 1 + %"$gasrem_165" = load i64, i64* @_gasrem, align 8 + %"$gascmp_166" = icmp ugt i64 %"$gasadd_164", %"$gasrem_165" + br i1 %"$gascmp_166", label %"$out_of_gas_167", label %"$have_gas_168" + +"$out_of_gas_167": ; preds = %"$have_gas_152" call void @_out_of_gas() - br label %"$have_gas_167" - -"$have_gas_167": ; preds = %"$out_of_gas_166", %"$have_gas_151" - %"$consume_168" = sub i64 %"$gasrem_164", %"$gasadd_163" - store i64 %"$consume_168", i64* @_gasrem, align 8 - %"$indices_buf_169_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$indices_buf_169_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_169_salloc_load", i64 20) - %"$indices_buf_169_salloc" = bitcast i8* %"$indices_buf_169_salloc_salloc" to [20 x i8]* - %"$indices_buf_169" = bitcast [20 x i8]* %"$indices_buf_169_salloc" to i8* - %"$indices_gep_170" = getelementptr i8, i8* %"$indices_buf_169", i32 0 - %indices_cast1 = bitcast i8* %"$indices_gep_170" to [20 x i8]* + br label %"$have_gas_168" + +"$have_gas_168": ; preds = %"$out_of_gas_167", %"$have_gas_152" + %"$consume_169" = sub i64 %"$gasrem_165", %"$gasadd_164" + store i64 %"$consume_169", i64* @_gasrem, align 8 + %"$indices_buf_170_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$indices_buf_170_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_170_salloc_load", i64 20) + %"$indices_buf_170_salloc" = bitcast i8* %"$indices_buf_170_salloc_salloc" to [20 x i8]* + %"$indices_buf_170" = bitcast [20 x i8]* %"$indices_buf_170_salloc" to i8* + %"$indices_gep_171" = getelementptr i8, i8* %"$indices_buf_170", i32 0 + %indices_cast1 = bitcast i8* %"$indices_gep_171" to [20 x i8]* store [20 x i8] %_sender, [20 x i8]* %indices_cast1, align 1 - %"$execptr_load_171" = load i8*, i8** @_execptr, align 8 - %"$j_173" = load %Int32, %Int32* %j, align 4 - %"$update_value_174" = alloca %Int32, align 8 - store %Int32 %"$j_173", %Int32* %"$update_value_174", align 4 - %"$update_value_175" = bitcast %Int32* %"$update_value_174" to i8* - call void @_update_field(i8* %"$execptr_load_171", i8* getelementptr inbounds ([13 x i8], [13 x i8]* @"$access_count_172", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_43", i32 1, i8* %"$indices_buf_169", i8* %"$update_value_175"), !dbg !22 - br label %"$matchsucc_134" - -"$None_176": ; preds = %"$have_gas_132" - %"$cur_177" = bitcast %TName_Option_Int32* %"$cur_135" to %CName_None_Int32* - %"$_literal_cost_simple-map.one_178" = alloca %Int32, align 8 - %"$simple-map.one_179" = load %Int32, %Int32* @simple-map.one, align 4 - store %Int32 %"$simple-map.one_179", %Int32* %"$_literal_cost_simple-map.one_178", align 4 - %"$$_literal_cost_simple-map.one_178_180" = bitcast %Int32* %"$_literal_cost_simple-map.one_178" to i8* - %"$_literal_cost_call_181" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Int32_7", i8* %"$$_literal_cost_simple-map.one_178_180") - %"$gasadd_182" = add i64 %"$_literal_cost_call_181", 1 - %"$gasrem_183" = load i64, i64* @_gasrem, align 8 - %"$gascmp_184" = icmp ugt i64 %"$gasadd_182", %"$gasrem_183" - br i1 %"$gascmp_184", label %"$out_of_gas_185", label %"$have_gas_186" - -"$out_of_gas_185": ; preds = %"$None_176" + %"$execptr_load_172" = load i8*, i8** @_execptr, align 8 + %"$j_174" = load %Int32, %Int32* %j, align 4 + %"$update_value_175" = alloca %Int32, align 8 + store %Int32 %"$j_174", %Int32* %"$update_value_175", align 4 + %"$update_value_176" = bitcast %Int32* %"$update_value_175" to i8* + call void @_update_field(i8* %"$execptr_load_172", i8* getelementptr inbounds ([13 x i8], [13 x i8]* @"$access_count_173", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_43", i32 1, i8* %"$indices_buf_170", i8* %"$update_value_176"), !dbg !42 + br label %"$matchsucc_135" + +"$None_177": ; preds = %"$have_gas_133" + %"$cur_178" = bitcast %TName_Option_Int32* %"$cur_136" to %CName_None_Int32* + %"$_literal_cost_simple-map.one_179" = alloca %Int32, align 8 + %"$simple-map.one_180" = load %Int32, %Int32* @simple-map.one, align 4 + store %Int32 %"$simple-map.one_180", %Int32* %"$_literal_cost_simple-map.one_179", align 4 + %"$$_literal_cost_simple-map.one_179_181" = bitcast %Int32* %"$_literal_cost_simple-map.one_179" to i8* + %"$_literal_cost_call_182" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Int32_7", i8* %"$$_literal_cost_simple-map.one_179_181") + %"$gasadd_183" = add i64 %"$_literal_cost_call_182", 1 + %"$gasrem_184" = load i64, i64* @_gasrem, align 8 + %"$gascmp_185" = icmp ugt i64 %"$gasadd_183", %"$gasrem_184" + br i1 %"$gascmp_185", label %"$out_of_gas_186", label %"$have_gas_187" + +"$out_of_gas_186": ; preds = %"$None_177" call void @_out_of_gas() - br label %"$have_gas_186" - -"$have_gas_186": ; preds = %"$out_of_gas_185", %"$None_176" - %"$consume_187" = sub i64 %"$gasrem_183", %"$gasadd_182" - store i64 %"$consume_187", i64* @_gasrem, align 8 - %"$indices_buf_188_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$indices_buf_188_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_188_salloc_load", i64 20) - %"$indices_buf_188_salloc" = bitcast i8* %"$indices_buf_188_salloc_salloc" to [20 x i8]* - %"$indices_buf_188" = bitcast [20 x i8]* %"$indices_buf_188_salloc" to i8* - %"$indices_gep_189" = getelementptr i8, i8* %"$indices_buf_188", i32 0 - %indices_cast2 = bitcast i8* %"$indices_gep_189" to [20 x i8]* + br label %"$have_gas_187" + +"$have_gas_187": ; preds = %"$out_of_gas_186", %"$None_177" + %"$consume_188" = sub i64 %"$gasrem_184", %"$gasadd_183" + store i64 %"$consume_188", i64* @_gasrem, align 8 + %"$indices_buf_189_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$indices_buf_189_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_189_salloc_load", i64 20) + %"$indices_buf_189_salloc" = bitcast i8* %"$indices_buf_189_salloc_salloc" to [20 x i8]* + %"$indices_buf_189" = bitcast [20 x i8]* %"$indices_buf_189_salloc" to i8* + %"$indices_gep_190" = getelementptr i8, i8* %"$indices_buf_189", i32 0 + %indices_cast2 = bitcast i8* %"$indices_gep_190" to [20 x i8]* store [20 x i8] %_sender, [20 x i8]* %indices_cast2, align 1 - %"$execptr_load_190" = load i8*, i8** @_execptr, align 8 - %"$simple-map.one_192" = load %Int32, %Int32* @simple-map.one, align 4 - %"$update_value_193" = alloca %Int32, align 8 - store %Int32 %"$simple-map.one_192", %Int32* %"$update_value_193", align 4 - %"$update_value_194" = bitcast %Int32* %"$update_value_193" to i8* - call void @_update_field(i8* %"$execptr_load_190", i8* getelementptr inbounds ([13 x i8], [13 x i8]* @"$access_count_191", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_43", i32 1, i8* %"$indices_buf_188", i8* %"$update_value_194"), !dbg !23 - br label %"$matchsucc_134" - -"$empty_default_138": ; preds = %"$have_gas_132" - br label %"$matchsucc_134" - -"$matchsucc_134": ; preds = %"$have_gas_186", %"$have_gas_167", %"$empty_default_138" + %"$execptr_load_191" = load i8*, i8** @_execptr, align 8 + %"$simple-map.one_193" = load %Int32, %Int32* @simple-map.one, align 4 + %"$update_value_194" = alloca %Int32, align 8 + store %Int32 %"$simple-map.one_193", %Int32* %"$update_value_194", align 4 + %"$update_value_195" = bitcast %Int32* %"$update_value_194" to i8* + call void @_update_field(i8* %"$execptr_load_191", i8* getelementptr inbounds ([13 x i8], [13 x i8]* @"$access_count_192", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_43", i32 1, i8* %"$indices_buf_189", i8* %"$update_value_195"), !dbg !43 + br label %"$matchsucc_135" + +"$empty_default_139": ; preds = %"$have_gas_133" + br label %"$matchsucc_135" + +"$matchsucc_135": ; preds = %"$have_gas_187", %"$have_gas_168", %"$empty_default_139" ret void } @@ -398,290 +418,353 @@ declare i8* @_fetch_field(i8*, i8*, %_TyDescrTy_Typ*, i32, i8*, i32) declare i64 @_literal_cost(%_TyDescrTy_Typ*, i8*) -define void @Increment(i8* %0) !dbg !25 { +define void @Increment(i8* %0) !dbg !45 { entry: - %"$_amount_196" = getelementptr i8, i8* %0, i32 0 - %"$_amount_197" = bitcast i8* %"$_amount_196" to %Uint128* - %_amount = load %Uint128, %Uint128* %"$_amount_197", align 8 - %"$_origin_198" = getelementptr i8, i8* %0, i32 16 - %"$_origin_199" = bitcast i8* %"$_origin_198" to [20 x i8]* - %"$_sender_200" = getelementptr i8, i8* %0, i32 36 - %"$_sender_201" = bitcast i8* %"$_sender_200" to [20 x i8]* - call void @"$Increment_110"(%Uint128 %_amount, [20 x i8]* %"$_origin_199", [20 x i8]* %"$_sender_201"), !dbg !26 + %"$_amount_200" = getelementptr i8, i8* %0, i32 0 + %"$_amount_201" = bitcast i8* %"$_amount_200" to %Uint128* + %_amount = load %Uint128, %Uint128* %"$_amount_201", align 8 + %"$_origin_202" = getelementptr i8, i8* %0, i32 16 + %"$_origin_203" = bitcast i8* %"$_origin_202" to [20 x i8]* + %"$_sender_204" = getelementptr i8, i8* %0, i32 36 + %"$_sender_205" = bitcast i8* %"$_sender_204" to [20 x i8]* + call void @"$Increment_111"(%Uint128 %_amount, [20 x i8]* %"$_origin_203", [20 x i8]* %"$_sender_205"), !dbg !46 ret void } -define internal void @"$IncrementN_202"(%Uint128 %_amount, [20 x i8]* %"$_origin_203", [20 x i8]* %"$_sender_204", %Int32 %n) !dbg !27 { +define internal void @"$IncrementN_206"(%Uint128 %_amount, [20 x i8]* %"$_origin_207", [20 x i8]* %"$_sender_208", %Int32 %n) !dbg !47 { entry: - %_origin = load [20 x i8], [20 x i8]* %"$_origin_203", align 1 - %_sender = load [20 x i8], [20 x i8]* %"$_sender_204", align 1 + %"$n_288" = alloca %Int32, align 8 + store %Int32 %n, %Int32* %"$n_288", align 4 + call void @llvm.dbg.declare(metadata %Int32* %"$n_288", metadata !48, metadata !DIExpression()), !dbg !49 + %"$_sender_287" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_sender_208", [20 x i8]** %"$_sender_287", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_sender_287", metadata !50, metadata !DIExpression()), !dbg !51 + %"$_origin_286" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_origin_207", [20 x i8]** %"$_origin_286", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_origin_286", metadata !52, metadata !DIExpression()), !dbg !51 + %"$_amount_285" = alloca %Uint128, align 8 + store %Uint128 %_amount, %Uint128* %"$_amount_285", align 8 + call void @llvm.dbg.declare(metadata %Uint128* %"$_amount_285", metadata !53, metadata !DIExpression()), !dbg !51 + %_origin = load [20 x i8], [20 x i8]* %"$_origin_207", align 1 + %_sender = load [20 x i8], [20 x i8]* %"$_sender_208", align 1 %cur = alloca %TName_Option_Int32*, align 8 - %"$indices_buf_205_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$indices_buf_205_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_205_salloc_load", i64 20) - %"$indices_buf_205_salloc" = bitcast i8* %"$indices_buf_205_salloc_salloc" to [20 x i8]* - %"$indices_buf_205" = bitcast [20 x i8]* %"$indices_buf_205_salloc" to i8* - %"$indices_gep_206" = getelementptr i8, i8* %"$indices_buf_205", i32 0 - %indices_cast = bitcast i8* %"$indices_gep_206" to [20 x i8]* + call void @llvm.dbg.declare(metadata %TName_Option_Int32** %cur, metadata !54, metadata !DIExpression()), !dbg !55 + %"$indices_buf_209_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$indices_buf_209_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_209_salloc_load", i64 20) + %"$indices_buf_209_salloc" = bitcast i8* %"$indices_buf_209_salloc_salloc" to [20 x i8]* + %"$indices_buf_209" = bitcast [20 x i8]* %"$indices_buf_209_salloc" to i8* + %"$indices_gep_210" = getelementptr i8, i8* %"$indices_buf_209", i32 0 + %indices_cast = bitcast i8* %"$indices_gep_210" to [20 x i8]* store [20 x i8] %_sender, [20 x i8]* %indices_cast, align 1 - %"$execptr_load_208" = load i8*, i8** @_execptr, align 8 - %"$cur_call_209" = call i8* @_fetch_field(i8* %"$execptr_load_208", i8* getelementptr inbounds ([13 x i8], [13 x i8]* @"$access_count_207", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_43", i32 1, i8* %"$indices_buf_205", i32 1), !dbg !28 - %"$cur_210" = bitcast i8* %"$cur_call_209" to %TName_Option_Int32* - store %TName_Option_Int32* %"$cur_210", %TName_Option_Int32** %cur, align 8 - %"$cur_211" = load %TName_Option_Int32*, %TName_Option_Int32** %cur, align 8 - %"$$cur_211_212" = bitcast %TName_Option_Int32* %"$cur_211" to i8* - %"$_literal_cost_call_213" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_Int32_41", i8* %"$$cur_211_212") - %"$gasadd_214" = add i64 %"$_literal_cost_call_213", 0 - %"$gasadd_215" = add i64 %"$gasadd_214", 1 - %"$gasrem_216" = load i64, i64* @_gasrem, align 8 - %"$gascmp_217" = icmp ugt i64 %"$gasadd_215", %"$gasrem_216" - br i1 %"$gascmp_217", label %"$out_of_gas_218", label %"$have_gas_219" - -"$out_of_gas_218": ; preds = %entry + %"$execptr_load_212" = load i8*, i8** @_execptr, align 8 + %"$cur_call_213" = call i8* @_fetch_field(i8* %"$execptr_load_212", i8* getelementptr inbounds ([13 x i8], [13 x i8]* @"$access_count_211", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_43", i32 1, i8* %"$indices_buf_209", i32 1), !dbg !55 + %"$cur_214" = bitcast i8* %"$cur_call_213" to %TName_Option_Int32* + store %TName_Option_Int32* %"$cur_214", %TName_Option_Int32** %cur, align 8 + %"$cur_215" = load %TName_Option_Int32*, %TName_Option_Int32** %cur, align 8 + %"$$cur_215_216" = bitcast %TName_Option_Int32* %"$cur_215" to i8* + %"$_literal_cost_call_217" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_Int32_41", i8* %"$$cur_215_216") + %"$gasadd_218" = add i64 %"$_literal_cost_call_217", 0 + %"$gasadd_219" = add i64 %"$gasadd_218", 1 + %"$gasrem_220" = load i64, i64* @_gasrem, align 8 + %"$gascmp_221" = icmp ugt i64 %"$gasadd_219", %"$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_219" + br label %"$have_gas_223" -"$have_gas_219": ; preds = %"$out_of_gas_218", %entry - %"$consume_220" = sub i64 %"$gasrem_216", %"$gasadd_215" - store i64 %"$consume_220", i64* @_gasrem, align 8 - %"$gasrem_221" = load i64, i64* @_gasrem, align 8 - %"$gascmp_222" = icmp ugt i64 2, %"$gasrem_221" - br i1 %"$gascmp_222", label %"$out_of_gas_223", label %"$have_gas_224" +"$have_gas_223": ; preds = %"$out_of_gas_222", %entry + %"$consume_224" = sub i64 %"$gasrem_220", %"$gasadd_219" + store i64 %"$consume_224", i64* @_gasrem, align 8 + %"$gasrem_225" = load i64, i64* @_gasrem, align 8 + %"$gascmp_226" = icmp ugt i64 2, %"$gasrem_225" + br i1 %"$gascmp_226", label %"$out_of_gas_227", label %"$have_gas_228" -"$out_of_gas_223": ; preds = %"$have_gas_219" +"$out_of_gas_227": ; preds = %"$have_gas_223" call void @_out_of_gas() - br label %"$have_gas_224" - -"$have_gas_224": ; preds = %"$out_of_gas_223", %"$have_gas_219" - %"$consume_225" = sub i64 %"$gasrem_221", 2 - store i64 %"$consume_225", i64* @_gasrem, align 8 - %"$cur_227" = load %TName_Option_Int32*, %TName_Option_Int32** %cur, align 8 - %"$cur_tag_228" = getelementptr inbounds %TName_Option_Int32, %TName_Option_Int32* %"$cur_227", i32 0, i32 0 - %"$cur_tag_229" = load i8, i8* %"$cur_tag_228", align 1 - switch i8 %"$cur_tag_229", label %"$empty_default_230" [ - i8 0, label %"$Some_231" - i8 1, label %"$None_264" - ], !dbg !29 - -"$Some_231": ; preds = %"$have_gas_224" - %"$cur_232" = bitcast %TName_Option_Int32* %"$cur_227" to %CName_Some_Int32* - %"$i_gep_233" = getelementptr inbounds %CName_Some_Int32, %CName_Some_Int32* %"$cur_232", i32 0, i32 1 - %"$i_load_234" = load %Int32, %Int32* %"$i_gep_233", align 4 + br label %"$have_gas_228" + +"$have_gas_228": ; preds = %"$out_of_gas_227", %"$have_gas_223" + %"$consume_229" = sub i64 %"$gasrem_225", 2 + store i64 %"$consume_229", i64* @_gasrem, align 8 + %"$cur_231" = load %TName_Option_Int32*, %TName_Option_Int32** %cur, align 8 + %"$cur_tag_232" = getelementptr inbounds %TName_Option_Int32, %TName_Option_Int32* %"$cur_231", i32 0, i32 0 + %"$cur_tag_233" = load i8, i8* %"$cur_tag_232", align 1 + switch i8 %"$cur_tag_233", label %"$empty_default_234" [ + i8 0, label %"$Some_235" + i8 1, label %"$None_268" + ], !dbg !56 + +"$Some_235": ; preds = %"$have_gas_228" + %"$cur_236" = bitcast %TName_Option_Int32* %"$cur_231" to %CName_Some_Int32* + %"$i_gep_237" = getelementptr inbounds %CName_Some_Int32, %CName_Some_Int32* %"$cur_236", i32 0, i32 1 + %"$i_load_238" = load %Int32, %Int32* %"$i_gep_237", align 4 %i = alloca %Int32, align 8 - store %Int32 %"$i_load_234", %Int32* %i, align 4 - %"$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 %Int32 %"$i_load_238", %Int32* %i, align 4 + %"$gasrem_239" = load i64, i64* @_gasrem, align 8 + %"$gascmp_240" = icmp ugt i64 1, %"$gasrem_239" + br i1 %"$gascmp_240", label %"$out_of_gas_241", label %"$have_gas_242" -"$out_of_gas_237": ; preds = %"$Some_231" +"$out_of_gas_241": ; preds = %"$Some_235" call void @_out_of_gas() - br label %"$have_gas_238" + br label %"$have_gas_242" -"$have_gas_238": ; preds = %"$out_of_gas_237", %"$Some_231" - %"$consume_239" = sub i64 %"$gasrem_235", 1 - store i64 %"$consume_239", i64* @_gasrem, align 8 +"$have_gas_242": ; preds = %"$out_of_gas_241", %"$Some_235" + %"$consume_243" = sub i64 %"$gasrem_239", 1 + store i64 %"$consume_243", i64* @_gasrem, align 8 %j = alloca %Int32, align 8 - %"$gasrem_240" = load i64, i64* @_gasrem, align 8 - %"$gascmp_241" = icmp ugt i64 4, %"$gasrem_240" - br i1 %"$gascmp_241", label %"$out_of_gas_242", label %"$have_gas_243" + call void @llvm.dbg.declare(metadata %Int32* %j, metadata !57, metadata !DIExpression()), !dbg !60 + %"$gasrem_244" = load i64, i64* @_gasrem, align 8 + %"$gascmp_245" = icmp ugt i64 4, %"$gasrem_244" + br i1 %"$gascmp_245", label %"$out_of_gas_246", label %"$have_gas_247" -"$out_of_gas_242": ; preds = %"$have_gas_238" +"$out_of_gas_246": ; preds = %"$have_gas_242" call void @_out_of_gas() - br label %"$have_gas_243" - -"$have_gas_243": ; preds = %"$out_of_gas_242", %"$have_gas_238" - %"$consume_244" = sub i64 %"$gasrem_240", 4 - store i64 %"$consume_244", i64* @_gasrem, align 8 - %"$i_245" = load %Int32, %Int32* %i, align 4 - %"$add_call_246" = call %Int32 @_add_Int32(%Int32 %"$i_245", %Int32 %n), !dbg !30 - store %Int32 %"$add_call_246", %Int32* %j, align 4, !dbg !30 - %"$_literal_cost_j_247" = alloca %Int32, align 8 - %"$j_248" = load %Int32, %Int32* %j, align 4 - store %Int32 %"$j_248", %Int32* %"$_literal_cost_j_247", align 4 - %"$$_literal_cost_j_247_249" = bitcast %Int32* %"$_literal_cost_j_247" to i8* - %"$_literal_cost_call_250" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Int32_7", i8* %"$$_literal_cost_j_247_249") - %"$gasadd_251" = add i64 %"$_literal_cost_call_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 = %"$have_gas_243" + br label %"$have_gas_247" + +"$have_gas_247": ; preds = %"$out_of_gas_246", %"$have_gas_242" + %"$consume_248" = sub i64 %"$gasrem_244", 4 + store i64 %"$consume_248", i64* @_gasrem, align 8 + %"$i_249" = load %Int32, %Int32* %i, align 4 + %"$add_call_250" = call %Int32 @_add_Int32(%Int32 %"$i_249", %Int32 %n), !dbg !61 + store %Int32 %"$add_call_250", %Int32* %j, align 4, !dbg !61 + %"$_literal_cost_j_251" = alloca %Int32, align 8 + %"$j_252" = load %Int32, %Int32* %j, align 4 + store %Int32 %"$j_252", %Int32* %"$_literal_cost_j_251", align 4 + %"$$_literal_cost_j_251_253" = bitcast %Int32* %"$_literal_cost_j_251" to i8* + %"$_literal_cost_call_254" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Int32_7", i8* %"$$_literal_cost_j_251_253") + %"$gasadd_255" = add i64 %"$_literal_cost_call_254", 1 + %"$gasrem_256" = load i64, i64* @_gasrem, align 8 + %"$gascmp_257" = icmp ugt i64 %"$gasadd_255", %"$gasrem_256" + br i1 %"$gascmp_257", label %"$out_of_gas_258", label %"$have_gas_259" + +"$out_of_gas_258": ; preds = %"$have_gas_247" call void @_out_of_gas() - br label %"$have_gas_255" - -"$have_gas_255": ; preds = %"$out_of_gas_254", %"$have_gas_243" - %"$consume_256" = sub i64 %"$gasrem_252", %"$gasadd_251" - store i64 %"$consume_256", i64* @_gasrem, align 8 - %"$indices_buf_257_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$indices_buf_257_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_257_salloc_load", i64 20) - %"$indices_buf_257_salloc" = bitcast i8* %"$indices_buf_257_salloc_salloc" to [20 x i8]* - %"$indices_buf_257" = bitcast [20 x i8]* %"$indices_buf_257_salloc" to i8* - %"$indices_gep_258" = getelementptr i8, i8* %"$indices_buf_257", i32 0 - %indices_cast1 = bitcast i8* %"$indices_gep_258" to [20 x i8]* + br label %"$have_gas_259" + +"$have_gas_259": ; preds = %"$out_of_gas_258", %"$have_gas_247" + %"$consume_260" = sub i64 %"$gasrem_256", %"$gasadd_255" + store i64 %"$consume_260", i64* @_gasrem, align 8 + %"$indices_buf_261_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$indices_buf_261_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_261_salloc_load", i64 20) + %"$indices_buf_261_salloc" = bitcast i8* %"$indices_buf_261_salloc_salloc" to [20 x i8]* + %"$indices_buf_261" = bitcast [20 x i8]* %"$indices_buf_261_salloc" to i8* + %"$indices_gep_262" = getelementptr i8, i8* %"$indices_buf_261", i32 0 + %indices_cast1 = bitcast i8* %"$indices_gep_262" to [20 x i8]* store [20 x i8] %_sender, [20 x i8]* %indices_cast1, align 1 - %"$execptr_load_259" = load i8*, i8** @_execptr, align 8 - %"$j_261" = load %Int32, %Int32* %j, align 4 - %"$update_value_262" = alloca %Int32, align 8 - store %Int32 %"$j_261", %Int32* %"$update_value_262", align 4 - %"$update_value_263" = bitcast %Int32* %"$update_value_262" to i8* - call void @_update_field(i8* %"$execptr_load_259", i8* getelementptr inbounds ([13 x i8], [13 x i8]* @"$access_count_260", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_43", i32 1, i8* %"$indices_buf_257", i8* %"$update_value_263"), !dbg !33 - br label %"$matchsucc_226" - -"$None_264": ; preds = %"$have_gas_224" - %"$cur_265" = bitcast %TName_Option_Int32* %"$cur_227" to %CName_None_Int32* - %"$_literal_cost_n_266" = alloca %Int32, align 8 - store %Int32 %n, %Int32* %"$_literal_cost_n_266", align 4 - %"$$_literal_cost_n_266_267" = bitcast %Int32* %"$_literal_cost_n_266" to i8* - %"$_literal_cost_call_268" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Int32_7", i8* %"$$_literal_cost_n_266_267") - %"$gasadd_269" = add i64 %"$_literal_cost_call_268", 1 - %"$gasrem_270" = load i64, i64* @_gasrem, align 8 - %"$gascmp_271" = icmp ugt i64 %"$gasadd_269", %"$gasrem_270" - br i1 %"$gascmp_271", label %"$out_of_gas_272", label %"$have_gas_273" - -"$out_of_gas_272": ; preds = %"$None_264" + %"$execptr_load_263" = load i8*, i8** @_execptr, align 8 + %"$j_265" = load %Int32, %Int32* %j, align 4 + %"$update_value_266" = alloca %Int32, align 8 + store %Int32 %"$j_265", %Int32* %"$update_value_266", align 4 + %"$update_value_267" = bitcast %Int32* %"$update_value_266" to i8* + call void @_update_field(i8* %"$execptr_load_263", i8* getelementptr inbounds ([13 x i8], [13 x i8]* @"$access_count_264", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_43", i32 1, i8* %"$indices_buf_261", i8* %"$update_value_267"), !dbg !62 + br label %"$matchsucc_230" + +"$None_268": ; preds = %"$have_gas_228" + %"$cur_269" = bitcast %TName_Option_Int32* %"$cur_231" to %CName_None_Int32* + %"$_literal_cost_n_270" = alloca %Int32, align 8 + store %Int32 %n, %Int32* %"$_literal_cost_n_270", align 4 + %"$$_literal_cost_n_270_271" = bitcast %Int32* %"$_literal_cost_n_270" to i8* + %"$_literal_cost_call_272" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Int32_7", i8* %"$$_literal_cost_n_270_271") + %"$gasadd_273" = add i64 %"$_literal_cost_call_272", 1 + %"$gasrem_274" = load i64, i64* @_gasrem, align 8 + %"$gascmp_275" = icmp ugt i64 %"$gasadd_273", %"$gasrem_274" + br i1 %"$gascmp_275", label %"$out_of_gas_276", label %"$have_gas_277" + +"$out_of_gas_276": ; preds = %"$None_268" call void @_out_of_gas() - br label %"$have_gas_273" - -"$have_gas_273": ; preds = %"$out_of_gas_272", %"$None_264" - %"$consume_274" = sub i64 %"$gasrem_270", %"$gasadd_269" - store i64 %"$consume_274", i64* @_gasrem, align 8 - %"$indices_buf_275_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$indices_buf_275_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_275_salloc_load", i64 20) - %"$indices_buf_275_salloc" = bitcast i8* %"$indices_buf_275_salloc_salloc" to [20 x i8]* - %"$indices_buf_275" = bitcast [20 x i8]* %"$indices_buf_275_salloc" to i8* - %"$indices_gep_276" = getelementptr i8, i8* %"$indices_buf_275", i32 0 - %indices_cast2 = bitcast i8* %"$indices_gep_276" to [20 x i8]* + br label %"$have_gas_277" + +"$have_gas_277": ; preds = %"$out_of_gas_276", %"$None_268" + %"$consume_278" = sub i64 %"$gasrem_274", %"$gasadd_273" + store i64 %"$consume_278", i64* @_gasrem, align 8 + %"$indices_buf_279_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$indices_buf_279_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_279_salloc_load", i64 20) + %"$indices_buf_279_salloc" = bitcast i8* %"$indices_buf_279_salloc_salloc" to [20 x i8]* + %"$indices_buf_279" = bitcast [20 x i8]* %"$indices_buf_279_salloc" to i8* + %"$indices_gep_280" = getelementptr i8, i8* %"$indices_buf_279", i32 0 + %indices_cast2 = bitcast i8* %"$indices_gep_280" to [20 x i8]* store [20 x i8] %_sender, [20 x i8]* %indices_cast2, align 1 - %"$execptr_load_277" = load i8*, i8** @_execptr, align 8 - %"$update_value_279" = alloca %Int32, align 8 - store %Int32 %n, %Int32* %"$update_value_279", align 4 - %"$update_value_280" = bitcast %Int32* %"$update_value_279" to i8* - call void @_update_field(i8* %"$execptr_load_277", i8* getelementptr inbounds ([13 x i8], [13 x i8]* @"$access_count_278", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_43", i32 1, i8* %"$indices_buf_275", i8* %"$update_value_280"), !dbg !34 - br label %"$matchsucc_226" + %"$execptr_load_281" = load i8*, i8** @_execptr, align 8 + %"$update_value_283" = alloca %Int32, align 8 + store %Int32 %n, %Int32* %"$update_value_283", align 4 + %"$update_value_284" = bitcast %Int32* %"$update_value_283" to i8* + call void @_update_field(i8* %"$execptr_load_281", i8* getelementptr inbounds ([13 x i8], [13 x i8]* @"$access_count_282", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_43", i32 1, i8* %"$indices_buf_279", i8* %"$update_value_284"), !dbg !63 + br label %"$matchsucc_230" -"$empty_default_230": ; preds = %"$have_gas_224" - br label %"$matchsucc_226" +"$empty_default_234": ; preds = %"$have_gas_228" + br label %"$matchsucc_230" -"$matchsucc_226": ; preds = %"$have_gas_273", %"$have_gas_255", %"$empty_default_230" +"$matchsucc_230": ; preds = %"$have_gas_277", %"$have_gas_259", %"$empty_default_234" ret void } -define internal void @"$IncrementNOpt_281"(%Uint128 %_amount, [20 x i8]* %"$_origin_282", [20 x i8]* %"$_sender_283", %TName_Option_Int32* %nopt) !dbg !36 { +define internal void @"$IncrementNOpt_289"(%Uint128 %_amount, [20 x i8]* %"$_origin_290", [20 x i8]* %"$_sender_291", %TName_Option_Int32* %nopt) !dbg !65 { 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 2, %"$gasrem_284" - br i1 %"$gascmp_285", label %"$out_of_gas_286", label %"$have_gas_287" - -"$out_of_gas_286": ; preds = %entry + %"$nopt_318" = alloca %TName_Option_Int32*, align 8 + store %TName_Option_Int32* %nopt, %TName_Option_Int32** %"$nopt_318", align 8 + call void @llvm.dbg.declare(metadata %TName_Option_Int32** %"$nopt_318", metadata !66, metadata !DIExpression()), !dbg !67 + %"$_sender_317" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_sender_291", [20 x i8]** %"$_sender_317", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_sender_317", metadata !68, metadata !DIExpression()), !dbg !69 + %"$_origin_316" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_origin_290", [20 x i8]** %"$_origin_316", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_origin_316", metadata !70, metadata !DIExpression()), !dbg !69 + %"$_amount_315" = alloca %Uint128, align 8 + store %Uint128 %_amount, %Uint128* %"$_amount_315", align 8 + call void @llvm.dbg.declare(metadata %Uint128* %"$_amount_315", metadata !71, metadata !DIExpression()), !dbg !69 + %_origin = load [20 x i8], [20 x i8]* %"$_origin_290", align 1 + %_sender = load [20 x i8], [20 x i8]* %"$_sender_291", align 1 + %"$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 = %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", 2 - store i64 %"$consume_288", i64* @_gasrem, align 8 - %"$nopt_tag_290" = getelementptr inbounds %TName_Option_Int32, %TName_Option_Int32* %nopt, i32 0, i32 0 - %"$nopt_tag_291" = load i8, i8* %"$nopt_tag_290", align 1 - switch i8 %"$nopt_tag_291", label %"$empty_default_292" [ - i8 0, label %"$Some_293" - i8 1, label %"$None_305" - ], !dbg !37 - -"$Some_293": ; preds = %"$have_gas_287" - %"$nopt_294" = bitcast %TName_Option_Int32* %nopt to %CName_Some_Int32* - %"$n_gep_295" = getelementptr inbounds %CName_Some_Int32, %CName_Some_Int32* %"$nopt_294", i32 0, i32 1 - %"$n_load_296" = load %Int32, %Int32* %"$n_gep_295", align 4 + br label %"$have_gas_295" + +"$have_gas_295": ; preds = %"$out_of_gas_294", %entry + %"$consume_296" = sub i64 %"$gasrem_292", 2 + store i64 %"$consume_296", i64* @_gasrem, align 8 + %"$nopt_tag_298" = getelementptr inbounds %TName_Option_Int32, %TName_Option_Int32* %nopt, i32 0, i32 0 + %"$nopt_tag_299" = load i8, i8* %"$nopt_tag_298", align 1 + switch i8 %"$nopt_tag_299", label %"$empty_default_300" [ + i8 0, label %"$Some_301" + i8 1, label %"$None_313" + ], !dbg !72 + +"$Some_301": ; preds = %"$have_gas_295" + %"$nopt_302" = bitcast %TName_Option_Int32* %nopt to %CName_Some_Int32* + %"$n_gep_303" = getelementptr inbounds %CName_Some_Int32, %CName_Some_Int32* %"$nopt_302", i32 0, i32 1 + %"$n_load_304" = load %Int32, %Int32* %"$n_gep_303", align 4 %n = alloca %Int32, align 8 - store %Int32 %"$n_load_296", %Int32* %n, align 4 - %"$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" + store %Int32 %"$n_load_304", %Int32* %n, align 4 + %"$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_299": ; preds = %"$Some_293" +"$out_of_gas_307": ; preds = %"$Some_301" call void @_out_of_gas() - br label %"$have_gas_300" - -"$have_gas_300": ; preds = %"$out_of_gas_299", %"$Some_293" - %"$consume_301" = sub i64 %"$gasrem_297", 1 - store i64 %"$consume_301", i64* @_gasrem, align 8 - %"$IncrementN__origin_302" = alloca [20 x i8], align 1 - store [20 x i8] %_origin, [20 x i8]* %"$IncrementN__origin_302", align 1 - %"$IncrementN__sender_303" = alloca [20 x i8], align 1 - store [20 x i8] %_sender, [20 x i8]* %"$IncrementN__sender_303", align 1 - %"$n_304" = load %Int32, %Int32* %n, align 4 - call void @"$IncrementN_202"(%Uint128 %_amount, [20 x i8]* %"$IncrementN__origin_302", [20 x i8]* %"$IncrementN__sender_303", %Int32 %"$n_304"), !dbg !38 - br label %"$matchsucc_289" - -"$None_305": ; preds = %"$have_gas_287" - %"$nopt_306" = bitcast %TName_Option_Int32* %nopt to %CName_None_Int32* - br label %"$matchsucc_289" - -"$empty_default_292": ; preds = %"$have_gas_287" - br label %"$matchsucc_289" - -"$matchsucc_289": ; preds = %"$None_305", %"$have_gas_300", %"$empty_default_292" + br label %"$have_gas_308" + +"$have_gas_308": ; preds = %"$out_of_gas_307", %"$Some_301" + %"$consume_309" = sub i64 %"$gasrem_305", 1 + store i64 %"$consume_309", i64* @_gasrem, align 8 + %"$IncrementN__origin_310" = alloca [20 x i8], align 1 + store [20 x i8] %_origin, [20 x i8]* %"$IncrementN__origin_310", align 1 + %"$IncrementN__sender_311" = alloca [20 x i8], align 1 + store [20 x i8] %_sender, [20 x i8]* %"$IncrementN__sender_311", align 1 + %"$n_312" = load %Int32, %Int32* %n, align 4 + call void @"$IncrementN_206"(%Uint128 %_amount, [20 x i8]* %"$IncrementN__origin_310", [20 x i8]* %"$IncrementN__sender_311", %Int32 %"$n_312"), !dbg !73 + br label %"$matchsucc_297" + +"$None_313": ; preds = %"$have_gas_295" + %"$nopt_314" = bitcast %TName_Option_Int32* %nopt to %CName_None_Int32* + br label %"$matchsucc_297" + +"$empty_default_300": ; preds = %"$have_gas_295" + br label %"$matchsucc_297" + +"$matchsucc_297": ; preds = %"$None_313", %"$have_gas_308", %"$empty_default_300" ret void } -define void @IncrementNOpt(i8* %0) !dbg !41 { +define void @IncrementNOpt(i8* %0) !dbg !76 { entry: - %"$_amount_308" = getelementptr i8, i8* %0, i32 0 - %"$_amount_309" = bitcast i8* %"$_amount_308" to %Uint128* - %_amount = load %Uint128, %Uint128* %"$_amount_309", align 8 - %"$_origin_310" = getelementptr i8, i8* %0, i32 16 - %"$_origin_311" = bitcast i8* %"$_origin_310" to [20 x i8]* - %"$_sender_312" = getelementptr i8, i8* %0, i32 36 - %"$_sender_313" = bitcast i8* %"$_sender_312" to [20 x i8]* - %"$nopt_314" = getelementptr i8, i8* %0, i32 56 - %"$nopt_315" = bitcast i8* %"$nopt_314" to %TName_Option_Int32** - %nopt = load %TName_Option_Int32*, %TName_Option_Int32** %"$nopt_315", align 8 - call void @"$IncrementNOpt_281"(%Uint128 %_amount, [20 x i8]* %"$_origin_311", [20 x i8]* %"$_sender_313", %TName_Option_Int32* %nopt), !dbg !42 + %"$_amount_320" = getelementptr i8, i8* %0, i32 0 + %"$_amount_321" = bitcast i8* %"$_amount_320" to %Uint128* + %_amount = load %Uint128, %Uint128* %"$_amount_321", align 8 + %"$_origin_322" = getelementptr i8, i8* %0, i32 16 + %"$_origin_323" = bitcast i8* %"$_origin_322" to [20 x i8]* + %"$_sender_324" = getelementptr i8, i8* %0, i32 36 + %"$_sender_325" = bitcast i8* %"$_sender_324" to [20 x i8]* + %"$nopt_326" = getelementptr i8, i8* %0, i32 56 + %"$nopt_327" = bitcast i8* %"$nopt_326" to %TName_Option_Int32** + %nopt = load %TName_Option_Int32*, %TName_Option_Int32** %"$nopt_327", align 8 + call void @"$IncrementNOpt_289"(%Uint128 %_amount, [20 x i8]* %"$_origin_323", [20 x i8]* %"$_sender_325", %TName_Option_Int32* %nopt), !dbg !77 ret void } +attributes #0 = { nocallback nofree nosync nounwind readnone speculatable willreturn } + !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) +!1 = distinct !DICompileUnit(language: DW_LANG_C89, file: !2, producer: "Scilla Compiler", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false) !2 = !DIFile(filename: "simple-map.scilla", directory: "codegen/contr") -!3 = !{} -!4 = distinct !DISubprogram(name: "$fundef_2", linkageName: "$fundef_2", 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: 5, scope: !4) -!9 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !10, file: !10, type: !5, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!10 = !DIFile(filename: ".", directory: ".") -!11 = !DILocation(line: 0, scope: !9) -!12 = !DILocation(line: 5, column: 11, scope: !9) -!13 = !DILocation(line: 9, column: 5, scope: !9) -!14 = distinct !DISubprogram(name: "_deploy_ops", linkageName: "_deploy_ops", scope: !10, file: !10, type: !5, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!15 = !DILocation(line: 13, column: 42, scope: !14) -!16 = distinct !DISubprogram(name: "Increment", linkageName: "Increment", scope: !2, file: !2, line: 15, type: !5, scopeLine: 15, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!17 = !DILocation(line: 16, column: 3, scope: !16) -!18 = !DILocation(line: 17, column: 3, scope: !16) -!19 = !DILocation(line: 19, column: 9, scope: !20) -!20 = distinct !DILexicalBlock(scope: !21, file: !2, line: 18, column: 5) -!21 = distinct !DILexicalBlock(scope: !16, file: !2, line: 17, column: 3) -!22 = !DILocation(line: 20, column: 5, scope: !20) -!23 = !DILocation(line: 22, column: 5, scope: !24) -!24 = distinct !DILexicalBlock(scope: !21, file: !2, line: 21, column: 5) -!25 = distinct !DISubprogram(name: "Increment", linkageName: "Increment", scope: !2, file: !2, line: 15, type: !5, scopeLine: 15, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!26 = !DILocation(line: 15, column: 12, scope: !25) -!27 = distinct !DISubprogram(name: "IncrementN", linkageName: "IncrementN", scope: !2, file: !2, line: 26, type: !5, scopeLine: 26, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!28 = !DILocation(line: 27, column: 3, scope: !27) -!29 = !DILocation(line: 28, column: 3, scope: !27) -!30 = !DILocation(line: 30, column: 9, scope: !31) -!31 = distinct !DILexicalBlock(scope: !32, file: !2, line: 29, column: 5) -!32 = distinct !DILexicalBlock(scope: !27, file: !2, line: 28, column: 3) -!33 = !DILocation(line: 31, column: 5, scope: !31) -!34 = !DILocation(line: 33, column: 5, scope: !35) -!35 = distinct !DILexicalBlock(scope: !32, file: !2, line: 32, column: 5) -!36 = distinct !DISubprogram(name: "IncrementNOpt", linkageName: "IncrementNOpt", scope: !2, file: !2, line: 37, type: !5, scopeLine: 37, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!37 = !DILocation(line: 38, column: 3, scope: !36) -!38 = !DILocation(line: 40, column: 5, scope: !39) -!39 = distinct !DILexicalBlock(scope: !40, file: !2, line: 39, column: 5) -!40 = distinct !DILexicalBlock(scope: !36, file: !2, line: 38, column: 3) -!41 = distinct !DISubprogram(name: "IncrementNOpt", linkageName: "IncrementNOpt", scope: !2, file: !2, line: 37, type: !5, scopeLine: 37, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!42 = !DILocation(line: 37, column: 12, scope: !41) +!3 = distinct !DISubprogram(name: "$fundef_2", linkageName: "$fundef_2", scope: !2, file: !2, line: 9, type: !4, scopeLine: 9, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!4 = !DISubroutineType(types: !5) +!5 = !{!6} +!6 = !DIBasicType(tag: DW_TAG_unspecified_type, name: "void") +!7 = !{} +!8 = !DILocalVariable(name: "a", scope: !3, file: !2, line: 8, type: !9) +!9 = !DIBasicType(name: "Int32", size: 4) +!10 = !DILocation(line: 8, column: 8, scope: !3) +!11 = !DILocalVariable(name: "$retval_3", scope: !3, file: !2, line: 9, type: !9) +!12 = !DILocation(line: 9, column: 5, scope: !3) +!13 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !14, file: !14, type: !4, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!14 = !DIFile(filename: ".", directory: ".") +!15 = !DILocation(line: 0, scope: !13) +!16 = !DILocation(line: 5, column: 11, scope: !13) +!17 = !DILocation(line: 9, column: 5, scope: !13) +!18 = distinct !DISubprogram(name: "_deploy_ops", linkageName: "_deploy_ops", scope: !14, file: !14, type: !4, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!19 = !DILocalVariable(name: "$access_count_4", scope: !18, file: !2, line: 13, type: !20) +!20 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "Map (ByStr20) (Int32)", baseType: !21, size: 8, align: 8, dwarfAddressSpace: 0) +!21 = !DIBasicType(name: "Map (ByStr20) (Int32)", size: 8) +!22 = !DILocation(line: 13, column: 7, scope: !18) +!23 = !DILocation(line: 13, column: 42, scope: !18) +!24 = distinct !DISubprogram(name: "Increment", linkageName: "Increment", scope: !2, file: !2, line: 15, type: !4, scopeLine: 15, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!25 = !DILocalVariable(name: "_sender", scope: !24, file: !2, line: 15, type: !26) +!26 = !DIBasicType(name: "ByStr20 with end", size: 20) +!27 = !DILocation(line: 15, column: 12, scope: !24) +!28 = !DILocalVariable(name: "_origin", scope: !24, file: !2, line: 15, type: !26) +!29 = !DILocalVariable(name: "_amount", scope: !24, file: !2, line: 15, type: !30) +!30 = !DIBasicType(name: "Uint128", size: 16) +!31 = !DILocalVariable(name: "cur", scope: !24, file: !2, line: 16, type: !32) +!32 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "Option (Int32)", baseType: !33, size: 8, align: 8, dwarfAddressSpace: 0) +!33 = !DIBasicType(name: "Option (Int32)", size: 8) +!34 = !DILocation(line: 16, column: 3, scope: !24) +!35 = !DILocation(line: 17, column: 3, scope: !24) +!36 = !DILocalVariable(name: "j", scope: !37, file: !2, line: 19, type: !9) +!37 = distinct !DILexicalBlock(scope: !38, file: !2, line: 18, column: 5) +!38 = distinct !DILexicalBlock(scope: !24, file: !2, line: 17, column: 3) +!39 = !DILocation(line: 19, column: 5, scope: !37) +!40 = !DILocalVariable(name: "$simple-map.inc_1", scope: !37, file: !2, line: 19, type: !9) +!41 = !DILocation(line: 19, column: 9, scope: !37) +!42 = !DILocation(line: 20, column: 5, scope: !37) +!43 = !DILocation(line: 22, column: 5, scope: !44) +!44 = distinct !DILexicalBlock(scope: !38, file: !2, line: 21, column: 5) +!45 = distinct !DISubprogram(name: "Increment", linkageName: "Increment", scope: !2, file: !2, line: 15, type: !4, scopeLine: 15, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!46 = !DILocation(line: 15, column: 12, scope: !45) +!47 = distinct !DISubprogram(name: "IncrementN", linkageName: "IncrementN", scope: !2, file: !2, line: 26, type: !4, scopeLine: 26, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!48 = !DILocalVariable(name: "n", scope: !47, file: !2, line: 26, type: !9) +!49 = !DILocation(line: 26, column: 23, scope: !47) +!50 = !DILocalVariable(name: "_sender", scope: !47, file: !2, line: 26, type: !26) +!51 = !DILocation(line: 26, column: 11, scope: !47) +!52 = !DILocalVariable(name: "_origin", scope: !47, file: !2, line: 26, type: !26) +!53 = !DILocalVariable(name: "_amount", scope: !47, file: !2, line: 26, type: !30) +!54 = !DILocalVariable(name: "cur", scope: !47, file: !2, line: 27, type: !32) +!55 = !DILocation(line: 27, column: 3, scope: !47) +!56 = !DILocation(line: 28, column: 3, scope: !47) +!57 = !DILocalVariable(name: "j", scope: !58, file: !2, line: 30, type: !9) +!58 = distinct !DILexicalBlock(scope: !59, file: !2, line: 29, column: 5) +!59 = distinct !DILexicalBlock(scope: !47, file: !2, line: 28, column: 3) +!60 = !DILocation(line: 30, column: 5, scope: !58) +!61 = !DILocation(line: 30, column: 9, scope: !58) +!62 = !DILocation(line: 31, column: 5, scope: !58) +!63 = !DILocation(line: 33, column: 5, scope: !64) +!64 = distinct !DILexicalBlock(scope: !59, file: !2, line: 32, column: 5) +!65 = distinct !DISubprogram(name: "IncrementNOpt", linkageName: "IncrementNOpt", scope: !2, file: !2, line: 37, type: !4, scopeLine: 37, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!66 = !DILocalVariable(name: "nopt", scope: !65, file: !2, line: 37, type: !32) +!67 = !DILocation(line: 37, column: 27, scope: !65) +!68 = !DILocalVariable(name: "_sender", scope: !65, file: !2, line: 37, type: !26) +!69 = !DILocation(line: 37, column: 12, scope: !65) +!70 = !DILocalVariable(name: "_origin", scope: !65, file: !2, line: 37, type: !26) +!71 = !DILocalVariable(name: "_amount", scope: !65, file: !2, line: 37, type: !30) +!72 = !DILocation(line: 38, column: 3, scope: !65) +!73 = !DILocation(line: 40, column: 5, scope: !74) +!74 = distinct !DILexicalBlock(scope: !75, file: !2, line: 39, column: 5) +!75 = distinct !DILexicalBlock(scope: !65, file: !2, line: 38, column: 3) +!76 = distinct !DISubprogram(name: "IncrementNOpt", linkageName: "IncrementNOpt", scope: !2, file: !2, line: 37, type: !4, scopeLine: 37, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!77 = !DILocation(line: 37, column: 12, scope: !76) diff --git a/testsuite/contr/simple-map.ll b/testsuite/contr/simple-map.ll index a64cb90f..ebe2c276 100644 --- a/testsuite/contr/simple-map.ll +++ b/testsuite/contr/simple-map.ll @@ -4,7 +4,7 @@ ; 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-pc-linux-gnu" +target triple = "x86_64-unknown-linux-gnu" %"$TyDescrTy_PrimTyp_5" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/testsuite/contr/throw.dbg.ll b/testsuite/contr/throw.dbg.ll index 0d4a7bd8..db7b18ea 100644 --- a/testsuite/contr/throw.dbg.ll +++ b/testsuite/contr/throw.dbg.ll @@ -4,7 +4,7 @@ ; 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-pc-linux-gnu" +target triple = "x86_64-unknown-linux-gnu" %"$TyDescrTy_PrimTyp_2" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } @@ -13,9 +13,9 @@ target triple = "x86_64-pc-linux-gnu" %TyDescrString = type { i8*, i32 } %Int32 = type { i32 } %Uint32 = type { i32 } -%"$ParamDescr_114" = type { %ParamDescrString, %_TyDescrTy_Typ* } +%"$ParamDescr_120" = type { %ParamDescrString, %_TyDescrTy_Typ* } %ParamDescrString = type { i8*, i32 } -%"$TransDescr_115" = type { %ParamDescrString, i32, %"$ParamDescr_114"* } +%"$TransDescr_121" = type { %ParamDescrString, i32, %"$ParamDescr_120"* } %Uint128 = type { i128 } %String = type { i8*, i32 } @@ -60,29 +60,29 @@ target triple = "x86_64-pc-linux-gnu" @_cparam__scilla_version = global %Uint32 zeroinitializer @_cparam__this_address = global [20 x i8] zeroinitializer @_cparam__creation_block = global i8* null -@"$stringlit_88" = unnamed_addr constant [10 x i8] c"_exception" -@"$stringlit_93" = unnamed_addr constant [3 x i8] c"Foo" +@"$stringlit_91" = unnamed_addr constant [10 x i8] c"_exception" +@"$stringlit_96" = unnamed_addr constant [3 x i8] c"Foo" @_tydescr_table = constant [17 x %_TyDescrTy_Typ*] [%_TyDescrTy_Typ* @"$TyDescr_Event_26", %_TyDescrTy_Typ* @"$TyDescr_Int64_8", %_TyDescrTy_Typ* @"$TyDescr_Addr_41", %_TyDescrTy_Typ* @"$TyDescr_Bystr20_34", %_TyDescrTy_Typ* @"$TyDescr_Uint256_18", %_TyDescrTy_Typ* @"$TyDescr_Uint32_6", %_TyDescrTy_Typ* @"$TyDescr_Uint64_10", %_TyDescrTy_Typ* @"$TyDescr_Bnum_22", %_TyDescrTy_Typ* @"$TyDescr_Uint128_14", %_TyDescrTy_Typ* @"$TyDescr_Exception_28", %_TyDescrTy_Typ* @"$TyDescr_String_20", %_TyDescrTy_Typ* @"$TyDescr_Int256_16", %_TyDescrTy_Typ* @"$TyDescr_Int128_12", %_TyDescrTy_Typ* @"$TyDescr_Bystr_32", %_TyDescrTy_Typ* @"$TyDescr_ReplicateContr_30", %_TyDescrTy_Typ* @"$TyDescr_Message_24", %_TyDescrTy_Typ* @"$TyDescr_Int32_4"] @_tydescr_table_length = constant i32 17 -@"$pname__scilla_version_116" = unnamed_addr constant [15 x i8] c"_scilla_version" -@"$pname__this_address_117" = unnamed_addr constant [13 x i8] c"_this_address" -@"$pname__creation_block_118" = unnamed_addr constant [15 x i8] c"_creation_block" -@_contract_parameters = constant [3 x %"$ParamDescr_114"] [%"$ParamDescr_114" { %ParamDescrString { i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$pname__scilla_version_116", i32 0, i32 0), i32 15 }, %_TyDescrTy_Typ* @"$TyDescr_Uint32_6" }, %"$ParamDescr_114" { %ParamDescrString { i8* getelementptr inbounds ([13 x i8], [13 x i8]* @"$pname__this_address_117", i32 0, i32 0), i32 13 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr20_34" }, %"$ParamDescr_114" { %ParamDescrString { i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$pname__creation_block_118", i32 0, i32 0), i32 15 }, %_TyDescrTy_Typ* @"$TyDescr_Bnum_22" }] +@"$pname__scilla_version_122" = unnamed_addr constant [15 x i8] c"_scilla_version" +@"$pname__this_address_123" = unnamed_addr constant [13 x i8] c"_this_address" +@"$pname__creation_block_124" = unnamed_addr constant [15 x i8] c"_creation_block" +@_contract_parameters = constant [3 x %"$ParamDescr_120"] [%"$ParamDescr_120" { %ParamDescrString { i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$pname__scilla_version_122", i32 0, i32 0), i32 15 }, %_TyDescrTy_Typ* @"$TyDescr_Uint32_6" }, %"$ParamDescr_120" { %ParamDescrString { i8* getelementptr inbounds ([13 x i8], [13 x i8]* @"$pname__this_address_123", i32 0, i32 0), i32 13 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr20_34" }, %"$ParamDescr_120" { %ParamDescrString { i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$pname__creation_block_124", i32 0, i32 0), i32 15 }, %_TyDescrTy_Typ* @"$TyDescr_Bnum_22" }] @_contract_parameters_length = constant i32 3 -@"$tpname__amount_119" = unnamed_addr constant [7 x i8] c"_amount" -@"$tpname__origin_120" = unnamed_addr constant [7 x i8] c"_origin" -@"$tpname__sender_121" = unnamed_addr constant [7 x i8] c"_sender" -@"$tparams_ThrowEmpty_122" = unnamed_addr constant [3 x %"$ParamDescr_114"] [%"$ParamDescr_114" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_119", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_14" }, %"$ParamDescr_114" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_120", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_41" }, %"$ParamDescr_114" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_121", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_41" }] -@"$tname_ThrowEmpty_123" = unnamed_addr constant [10 x i8] c"ThrowEmpty" -@"$tpname__amount_124" = unnamed_addr constant [7 x i8] c"_amount" -@"$tpname__origin_125" = unnamed_addr constant [7 x i8] c"_origin" -@"$tpname__sender_126" = unnamed_addr constant [7 x i8] c"_sender" -@"$tparams_ThrowObj_127" = unnamed_addr constant [3 x %"$ParamDescr_114"] [%"$ParamDescr_114" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_124", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_14" }, %"$ParamDescr_114" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_125", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_41" }, %"$ParamDescr_114" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_126", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_41" }] -@"$tname_ThrowObj_128" = unnamed_addr constant [8 x i8] c"ThrowObj" -@_transition_parameters = constant [2 x %"$TransDescr_115"] [%"$TransDescr_115" { %ParamDescrString { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$tname_ThrowEmpty_123", i32 0, i32 0), i32 10 }, i32 3, %"$ParamDescr_114"* getelementptr inbounds ([3 x %"$ParamDescr_114"], [3 x %"$ParamDescr_114"]* @"$tparams_ThrowEmpty_122", i32 0, i32 0) }, %"$TransDescr_115" { %ParamDescrString { i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$tname_ThrowObj_128", i32 0, i32 0), i32 8 }, i32 3, %"$ParamDescr_114"* getelementptr inbounds ([3 x %"$ParamDescr_114"], [3 x %"$ParamDescr_114"]* @"$tparams_ThrowObj_127", i32 0, i32 0) }] +@"$tpname__amount_125" = unnamed_addr constant [7 x i8] c"_amount" +@"$tpname__origin_126" = unnamed_addr constant [7 x i8] c"_origin" +@"$tpname__sender_127" = unnamed_addr constant [7 x i8] c"_sender" +@"$tparams_ThrowEmpty_128" = unnamed_addr constant [3 x %"$ParamDescr_120"] [%"$ParamDescr_120" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_125", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_14" }, %"$ParamDescr_120" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_126", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_41" }, %"$ParamDescr_120" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_127", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_41" }] +@"$tname_ThrowEmpty_129" = unnamed_addr constant [10 x i8] c"ThrowEmpty" +@"$tpname__amount_130" = unnamed_addr constant [7 x i8] c"_amount" +@"$tpname__origin_131" = unnamed_addr constant [7 x i8] c"_origin" +@"$tpname__sender_132" = unnamed_addr constant [7 x i8] c"_sender" +@"$tparams_ThrowObj_133" = unnamed_addr constant [3 x %"$ParamDescr_120"] [%"$ParamDescr_120" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_130", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_14" }, %"$ParamDescr_120" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_131", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_41" }, %"$ParamDescr_120" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_132", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_41" }] +@"$tname_ThrowObj_134" = unnamed_addr constant [8 x i8] c"ThrowObj" +@_transition_parameters = constant [2 x %"$TransDescr_121"] [%"$TransDescr_121" { %ParamDescrString { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$tname_ThrowEmpty_129", i32 0, i32 0), i32 10 }, i32 3, %"$ParamDescr_120"* getelementptr inbounds ([3 x %"$ParamDescr_120"], [3 x %"$ParamDescr_120"]* @"$tparams_ThrowEmpty_128", i32 0, i32 0) }, %"$TransDescr_121" { %ParamDescrString { i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$tname_ThrowObj_134", i32 0, i32 0), i32 8 }, i32 3, %"$ParamDescr_120"* getelementptr inbounds ([3 x %"$ParamDescr_120"], [3 x %"$ParamDescr_120"]* @"$tparams_ThrowObj_133", i32 0, i32 0) }] @_transition_parameters_length = constant i32 2 -define void @_init_libs() !dbg !4 { +define void @_init_libs() !dbg !3 { entry: %"$gasrem_43" = load i64, i64* @_gasrem, align 8 %"$gascmp_44" = icmp ugt i64 5, %"$gasrem_43" @@ -131,6 +131,15 @@ entry: define internal void @"$ThrowEmpty_58"(%Uint128 %_amount, [20 x i8]* %"$_origin_59", [20 x i8]* %"$_sender_60") !dbg !11 { entry: + %"$_sender_69" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_sender_60", [20 x i8]** %"$_sender_69", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_sender_69", metadata !12, metadata !DIExpression()), !dbg !14 + %"$_origin_68" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_origin_59", [20 x i8]** %"$_origin_68", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_origin_68", metadata !15, metadata !DIExpression()), !dbg !14 + %"$_amount_67" = alloca %Uint128, align 8 + store %Uint128 %_amount, %Uint128* %"$_amount_67", align 8 + call void @llvm.dbg.declare(metadata %Uint128* %"$_amount_67", metadata !16, metadata !DIExpression()), !dbg !14 %_origin = load [20 x i8], [20 x i8]* %"$_origin_59", align 1 %_sender = load [20 x i8], [20 x i8]* %"$_sender_60", align 1 %"$gasrem_61" = load i64, i64* @_gasrem, align 8 @@ -145,83 +154,96 @@ entry: %"$consume_65" = sub i64 %"$gasrem_61", 1 store i64 %"$consume_65", i64* @_gasrem, align 8 %"$execptr_load_66" = load i8*, i8** @_execptr, align 8 - call void @_throw(i8* %"$execptr_load_66", %_TyDescrTy_Typ* @"$TyDescr_Exception_28", i8* null), !dbg !12 + call void @_throw(i8* %"$execptr_load_66", %_TyDescrTy_Typ* @"$TyDescr_Exception_28", i8* null), !dbg !18 ret void } declare void @_throw(i8*, %_TyDescrTy_Typ*, i8*) -define void @ThrowEmpty(i8* %0) !dbg !13 { +; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn +declare void @llvm.dbg.declare(metadata, metadata, metadata) #0 + +define void @ThrowEmpty(i8* %0) !dbg !19 { entry: - %"$_amount_68" = getelementptr i8, i8* %0, i32 0 - %"$_amount_69" = bitcast i8* %"$_amount_68" to %Uint128* - %_amount = load %Uint128, %Uint128* %"$_amount_69", align 8 - %"$_origin_70" = getelementptr i8, i8* %0, i32 16 - %"$_origin_71" = bitcast i8* %"$_origin_70" to [20 x i8]* - %"$_sender_72" = getelementptr i8, i8* %0, i32 36 - %"$_sender_73" = bitcast i8* %"$_sender_72" to [20 x i8]* - call void @"$ThrowEmpty_58"(%Uint128 %_amount, [20 x i8]* %"$_origin_71", [20 x i8]* %"$_sender_73"), !dbg !14 + %"$_amount_71" = getelementptr i8, i8* %0, i32 0 + %"$_amount_72" = bitcast i8* %"$_amount_71" to %Uint128* + %_amount = load %Uint128, %Uint128* %"$_amount_72", align 8 + %"$_origin_73" = getelementptr i8, i8* %0, i32 16 + %"$_origin_74" = bitcast i8* %"$_origin_73" to [20 x i8]* + %"$_sender_75" = getelementptr i8, i8* %0, i32 36 + %"$_sender_76" = bitcast i8* %"$_sender_75" to [20 x i8]* + call void @"$ThrowEmpty_58"(%Uint128 %_amount, [20 x i8]* %"$_origin_74", [20 x i8]* %"$_sender_76"), !dbg !20 ret void } -define internal void @"$ThrowObj_74"(%Uint128 %_amount, [20 x i8]* %"$_origin_75", [20 x i8]* %"$_sender_76") !dbg !15 { +define internal void @"$ThrowObj_77"(%Uint128 %_amount, [20 x i8]* %"$_origin_78", [20 x i8]* %"$_sender_79") !dbg !21 { entry: - %_origin = load [20 x i8], [20 x i8]* %"$_origin_75", align 1 - %_sender = load [20 x i8], [20 x i8]* %"$_sender_76", align 1 - %"$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" + %"$_sender_112" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_sender_79", [20 x i8]** %"$_sender_112", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_sender_112", metadata !22, metadata !DIExpression()), !dbg !23 + %"$_origin_111" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_origin_78", [20 x i8]** %"$_origin_111", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_origin_111", metadata !24, metadata !DIExpression()), !dbg !23 + %"$_amount_110" = alloca %Uint128, align 8 + store %Uint128 %_amount, %Uint128* %"$_amount_110", align 8 + call void @llvm.dbg.declare(metadata %Uint128* %"$_amount_110", metadata !25, metadata !DIExpression()), !dbg !23 + %_origin = load [20 x i8], [20 x i8]* %"$_origin_78", align 1 + %_sender = load [20 x i8], [20 x i8]* %"$_sender_79", align 1 + %"$gasrem_80" = load i64, i64* @_gasrem, align 8 + %"$gascmp_81" = icmp ugt i64 1, %"$gasrem_80" + br i1 %"$gascmp_81", label %"$out_of_gas_82", label %"$have_gas_83" -"$out_of_gas_79": ; preds = %entry +"$out_of_gas_82": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_80" + br label %"$have_gas_83" -"$have_gas_80": ; preds = %"$out_of_gas_79", %entry - %"$consume_81" = sub i64 %"$gasrem_77", 1 - store i64 %"$consume_81", i64* @_gasrem, align 8 +"$have_gas_83": ; preds = %"$out_of_gas_82", %entry + %"$consume_84" = sub i64 %"$gasrem_80", 1 + store i64 %"$consume_84", i64* @_gasrem, align 8 %t = alloca i8*, align 8 - %"$gasrem_82" = load i64, i64* @_gasrem, align 8 - %"$gascmp_83" = icmp ugt i64 1, %"$gasrem_82" - br i1 %"$gascmp_83", label %"$out_of_gas_84", label %"$have_gas_85" + call void @llvm.dbg.declare(metadata i8** %t, metadata !26, metadata !DIExpression()), !dbg !29 + %"$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_84": ; preds = %"$have_gas_80" +"$out_of_gas_87": ; preds = %"$have_gas_83" 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", 1 - store i64 %"$consume_86", i64* @_gasrem, align 8 - %"$msgobj_87_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$msgobj_87_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_87_salloc_load", i64 41) - %"$msgobj_87_salloc" = bitcast i8* %"$msgobj_87_salloc_salloc" to [41 x i8]* - %"$msgobj_87" = bitcast [41 x i8]* %"$msgobj_87_salloc" to i8* - store i8 1, i8* %"$msgobj_87", align 1 - %"$msgobj_fname_89" = getelementptr i8, i8* %"$msgobj_87", i32 1 - %"$msgobj_fname_90" = bitcast i8* %"$msgobj_fname_89" to %String* - store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_88", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_90", align 8 - %"$msgobj_td_91" = getelementptr i8, i8* %"$msgobj_87", i32 17 - %"$msgobj_td_92" = bitcast i8* %"$msgobj_td_91" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_String_20", %_TyDescrTy_Typ** %"$msgobj_td_92", align 8 - %"$msgobj_v_94" = getelementptr i8, i8* %"$msgobj_87", i32 25 - %"$msgobj_v_95" = bitcast i8* %"$msgobj_v_94" to %String* - store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_93", i32 0, i32 0), i32 3 }, %String* %"$msgobj_v_95", align 8 - store i8* %"$msgobj_87", i8** %t, align 8, !dbg !16 - %"$t_97" = load i8*, i8** %t, align 8 - %"$_literal_cost_call_99" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Exception_28", i8* %"$t_97") - %"$gasrem_100" = load i64, i64* @_gasrem, align 8 - %"$gascmp_101" = icmp ugt i64 %"$_literal_cost_call_99", %"$gasrem_100" - br i1 %"$gascmp_101", label %"$out_of_gas_102", label %"$have_gas_103" - -"$out_of_gas_102": ; preds = %"$have_gas_85" + br label %"$have_gas_88" + +"$have_gas_88": ; preds = %"$out_of_gas_87", %"$have_gas_83" + %"$consume_89" = sub i64 %"$gasrem_85", 1 + store i64 %"$consume_89", i64* @_gasrem, align 8 + %"$msgobj_90_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$msgobj_90_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_90_salloc_load", i64 41) + %"$msgobj_90_salloc" = bitcast i8* %"$msgobj_90_salloc_salloc" to [41 x i8]* + %"$msgobj_90" = bitcast [41 x i8]* %"$msgobj_90_salloc" to i8* + store i8 1, i8* %"$msgobj_90", align 1 + %"$msgobj_fname_92" = getelementptr i8, i8* %"$msgobj_90", i32 1 + %"$msgobj_fname_93" = bitcast i8* %"$msgobj_fname_92" to %String* + store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_91", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_93", align 8 + %"$msgobj_td_94" = getelementptr i8, i8* %"$msgobj_90", i32 17 + %"$msgobj_td_95" = bitcast i8* %"$msgobj_td_94" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_String_20", %_TyDescrTy_Typ** %"$msgobj_td_95", align 8 + %"$msgobj_v_97" = getelementptr i8, i8* %"$msgobj_90", i32 25 + %"$msgobj_v_98" = bitcast i8* %"$msgobj_v_97" to %String* + store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_96", i32 0, i32 0), i32 3 }, %String* %"$msgobj_v_98", align 8 + store i8* %"$msgobj_90", i8** %t, align 8, !dbg !30 + %"$t_100" = load i8*, i8** %t, align 8 + %"$_literal_cost_call_102" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Exception_28", i8* %"$t_100") + %"$gasrem_103" = load i64, i64* @_gasrem, align 8 + %"$gascmp_104" = icmp ugt i64 %"$_literal_cost_call_102", %"$gasrem_103" + br i1 %"$gascmp_104", label %"$out_of_gas_105", label %"$have_gas_106" + +"$out_of_gas_105": ; preds = %"$have_gas_88" call void @_out_of_gas() - br label %"$have_gas_103" - -"$have_gas_103": ; preds = %"$out_of_gas_102", %"$have_gas_85" - %"$consume_104" = sub i64 %"$gasrem_100", %"$_literal_cost_call_99" - store i64 %"$consume_104", i64* @_gasrem, align 8 - %"$execptr_load_105" = load i8*, i8** @_execptr, align 8 - %"$t_106" = load i8*, i8** %t, align 8 - call void @_throw(i8* %"$execptr_load_105", %_TyDescrTy_Typ* @"$TyDescr_Exception_28", i8* %"$t_106"), !dbg !17 + br label %"$have_gas_106" + +"$have_gas_106": ; preds = %"$out_of_gas_105", %"$have_gas_88" + %"$consume_107" = sub i64 %"$gasrem_103", %"$_literal_cost_call_102" + store i64 %"$consume_107", i64* @_gasrem, align 8 + %"$execptr_load_108" = load i8*, i8** @_execptr, align 8 + %"$t_109" = load i8*, i8** %t, align 8 + call void @_throw(i8* %"$execptr_load_108", %_TyDescrTy_Typ* @"$TyDescr_Exception_28", i8* %"$t_109"), !dbg !31 ret void } @@ -229,39 +251,55 @@ declare i8* @_salloc(i8*, i64) declare i64 @_literal_cost(%_TyDescrTy_Typ*, i8*) -define void @ThrowObj(i8* %0) !dbg !18 { +define void @ThrowObj(i8* %0) !dbg !32 { entry: - %"$_amount_108" = getelementptr i8, i8* %0, i32 0 - %"$_amount_109" = bitcast i8* %"$_amount_108" to %Uint128* - %_amount = load %Uint128, %Uint128* %"$_amount_109", align 8 - %"$_origin_110" = getelementptr i8, i8* %0, i32 16 - %"$_origin_111" = bitcast i8* %"$_origin_110" to [20 x i8]* - %"$_sender_112" = getelementptr i8, i8* %0, i32 36 - %"$_sender_113" = bitcast i8* %"$_sender_112" to [20 x i8]* - call void @"$ThrowObj_74"(%Uint128 %_amount, [20 x i8]* %"$_origin_111", [20 x i8]* %"$_sender_113"), !dbg !19 + %"$_amount_114" = getelementptr i8, i8* %0, i32 0 + %"$_amount_115" = bitcast i8* %"$_amount_114" to %Uint128* + %_amount = load %Uint128, %Uint128* %"$_amount_115", align 8 + %"$_origin_116" = getelementptr i8, i8* %0, i32 16 + %"$_origin_117" = bitcast i8* %"$_origin_116" to [20 x i8]* + %"$_sender_118" = getelementptr i8, i8* %0, i32 36 + %"$_sender_119" = bitcast i8* %"$_sender_118" to [20 x i8]* + call void @"$ThrowObj_77"(%Uint128 %_amount, [20 x i8]* %"$_origin_117", [20 x i8]* %"$_sender_119"), !dbg !33 ret void } +attributes #0 = { nocallback nofree nosync nounwind readnone speculatable willreturn } + !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) +!1 = distinct !DICompileUnit(language: DW_LANG_C89, file: !2, producer: "Scilla Compiler", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false) !2 = !DIFile(filename: "throw.scilla", directory: "codegen/contr") -!3 = !{} -!4 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !5, file: !5, type: !6, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!5 = !DIFile(filename: ".", directory: ".") -!6 = !DISubroutineType(types: !7) -!7 = !{!8} -!8 = !DIBasicType(tag: DW_TAG_unspecified_type, name: "void") -!9 = !DILocation(line: 0, scope: !4) -!10 = distinct !DISubprogram(name: "_deploy_ops", linkageName: "_deploy_ops", scope: !5, file: !5, type: !6, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!11 = distinct !DISubprogram(name: "ThrowEmpty", linkageName: "ThrowEmpty", scope: !2, file: !2, line: 13, type: !6, scopeLine: 13, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!12 = !DILocation(line: 14, column: 3, scope: !11) -!13 = distinct !DISubprogram(name: "ThrowEmpty", linkageName: "ThrowEmpty", scope: !2, file: !2, line: 13, type: !6, scopeLine: 13, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!14 = !DILocation(line: 13, column: 12, scope: !13) -!15 = distinct !DISubprogram(name: "ThrowObj", linkageName: "ThrowObj", scope: !2, file: !2, line: 17, type: !6, scopeLine: 17, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!16 = !DILocation(line: 18, column: 7, scope: !15) -!17 = !DILocation(line: 19, column: 3, scope: !15) -!18 = distinct !DISubprogram(name: "ThrowObj", linkageName: "ThrowObj", scope: !2, file: !2, line: 17, type: !6, scopeLine: 17, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!19 = !DILocation(line: 17, column: 12, scope: !18) +!3 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !4, file: !4, type: !5, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!4 = !DIFile(filename: ".", directory: ".") +!5 = !DISubroutineType(types: !6) +!6 = !{!7} +!7 = !DIBasicType(tag: DW_TAG_unspecified_type, name: "void") +!8 = !{} +!9 = !DILocation(line: 0, scope: !3) +!10 = distinct !DISubprogram(name: "_deploy_ops", linkageName: "_deploy_ops", scope: !4, file: !4, type: !5, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!11 = distinct !DISubprogram(name: "ThrowEmpty", linkageName: "ThrowEmpty", scope: !2, file: !2, line: 13, type: !5, scopeLine: 13, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!12 = !DILocalVariable(name: "_sender", scope: !11, file: !2, line: 13, type: !13) +!13 = !DIBasicType(name: "ByStr20 with end", size: 20) +!14 = !DILocation(line: 13, column: 12, scope: !11) +!15 = !DILocalVariable(name: "_origin", scope: !11, file: !2, line: 13, type: !13) +!16 = !DILocalVariable(name: "_amount", scope: !11, file: !2, line: 13, type: !17) +!17 = !DIBasicType(name: "Uint128", size: 16) +!18 = !DILocation(line: 14, column: 3, scope: !11) +!19 = distinct !DISubprogram(name: "ThrowEmpty", linkageName: "ThrowEmpty", scope: !2, file: !2, line: 13, type: !5, scopeLine: 13, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!20 = !DILocation(line: 13, column: 12, scope: !19) +!21 = distinct !DISubprogram(name: "ThrowObj", linkageName: "ThrowObj", scope: !2, file: !2, line: 17, type: !5, scopeLine: 17, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!22 = !DILocalVariable(name: "_sender", scope: !21, file: !2, line: 17, type: !13) +!23 = !DILocation(line: 17, column: 12, scope: !21) +!24 = !DILocalVariable(name: "_origin", scope: !21, file: !2, line: 17, type: !13) +!25 = !DILocalVariable(name: "_amount", scope: !21, file: !2, line: 17, type: !17) +!26 = !DILocalVariable(name: "t", scope: !21, file: !2, line: 18, type: !27) +!27 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "Exception", baseType: !28, size: 8, align: 8, dwarfAddressSpace: 0) +!28 = !DIBasicType(name: "Exception", size: 8) +!29 = !DILocation(line: 18, column: 3, scope: !21) +!30 = !DILocation(line: 18, column: 7, scope: !21) +!31 = !DILocation(line: 19, column: 3, scope: !21) +!32 = distinct !DISubprogram(name: "ThrowObj", linkageName: "ThrowObj", scope: !2, file: !2, line: 17, type: !5, scopeLine: 17, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!33 = !DILocation(line: 17, column: 12, scope: !32) diff --git a/testsuite/contr/throw.ll b/testsuite/contr/throw.ll index e3169d49..d4eccf54 100644 --- a/testsuite/contr/throw.ll +++ b/testsuite/contr/throw.ll @@ -4,7 +4,7 @@ ; 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-pc-linux-gnu" +target triple = "x86_64-unknown-linux-gnu" %"$TyDescrTy_PrimTyp_2" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/testsuite/contr/timestamp.dbg.ll b/testsuite/contr/timestamp.dbg.ll index b029116e..f331ea41 100644 --- a/testsuite/contr/timestamp.dbg.ll +++ b/testsuite/contr/timestamp.dbg.ll @@ -4,7 +4,7 @@ ; 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-pc-linux-gnu" +target triple = "x86_64-unknown-linux-gnu" %"$TyDescrTy_PrimTyp_2" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } @@ -16,9 +16,9 @@ target triple = "x86_64-pc-linux-gnu" %"$TyDescr_AddrFieldTyp_40" = type { %TyDescrString, %_TyDescrTy_Typ* } %Int32 = type { i32 } %Uint32 = type { i32 } -%"$ParamDescr_142" = type { %ParamDescrString, %_TyDescrTy_Typ* } +%"$ParamDescr_145" = type { %ParamDescrString, %_TyDescrTy_Typ* } %ParamDescrString = type { i8*, i32 } -%"$TransDescr_143" = type { %ParamDescrString, i32, %"$ParamDescr_142"* } +%"$TransDescr_146" = type { %ParamDescrString, i32, %"$ParamDescr_145"* } %Uint128 = type { i128 } %BNumString = type { i8*, i32 } %TName_Option_Uint64 = type { i8, %CName_Some_Uint64*, %CName_None_Uint64* } @@ -88,20 +88,20 @@ target triple = "x86_64-pc-linux-gnu" @"$stringlit_116" = unnamed_addr constant [9 x i8] c"timestamp" @_tydescr_table = constant [18 x %_TyDescrTy_Typ*] [%_TyDescrTy_Typ* @"$TyDescr_Event_26", %_TyDescrTy_Typ* @"$TyDescr_Int64_8", %_TyDescrTy_Typ* @"$TyDescr_Addr_42", %_TyDescrTy_Typ* @"$TyDescr_Bystr20_34", %_TyDescrTy_Typ* @"$TyDescr_Uint256_18", %_TyDescrTy_Typ* @"$TyDescr_Uint32_6", %_TyDescrTy_Typ* @"$TyDescr_Uint64_10", %_TyDescrTy_Typ* @"$TyDescr_ADT_Option_Uint64_38", %_TyDescrTy_Typ* @"$TyDescr_Bnum_22", %_TyDescrTy_Typ* @"$TyDescr_Uint128_14", %_TyDescrTy_Typ* @"$TyDescr_Exception_28", %_TyDescrTy_Typ* @"$TyDescr_String_20", %_TyDescrTy_Typ* @"$TyDescr_Int256_16", %_TyDescrTy_Typ* @"$TyDescr_Int128_12", %_TyDescrTy_Typ* @"$TyDescr_Bystr_32", %_TyDescrTy_Typ* @"$TyDescr_ReplicateContr_30", %_TyDescrTy_Typ* @"$TyDescr_Message_24", %_TyDescrTy_Typ* @"$TyDescr_Int32_4"] @_tydescr_table_length = constant i32 18 -@"$pname__scilla_version_144" = unnamed_addr constant [15 x i8] c"_scilla_version" -@"$pname__this_address_145" = unnamed_addr constant [13 x i8] c"_this_address" -@"$pname__creation_block_146" = unnamed_addr constant [15 x i8] c"_creation_block" -@_contract_parameters = constant [3 x %"$ParamDescr_142"] [%"$ParamDescr_142" { %ParamDescrString { i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$pname__scilla_version_144", i32 0, i32 0), i32 15 }, %_TyDescrTy_Typ* @"$TyDescr_Uint32_6" }, %"$ParamDescr_142" { %ParamDescrString { i8* getelementptr inbounds ([13 x i8], [13 x i8]* @"$pname__this_address_145", i32 0, i32 0), i32 13 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr20_34" }, %"$ParamDescr_142" { %ParamDescrString { i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$pname__creation_block_146", i32 0, i32 0), i32 15 }, %_TyDescrTy_Typ* @"$TyDescr_Bnum_22" }] +@"$pname__scilla_version_147" = unnamed_addr constant [15 x i8] c"_scilla_version" +@"$pname__this_address_148" = unnamed_addr constant [13 x i8] c"_this_address" +@"$pname__creation_block_149" = unnamed_addr constant [15 x i8] c"_creation_block" +@_contract_parameters = constant [3 x %"$ParamDescr_145"] [%"$ParamDescr_145" { %ParamDescrString { i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$pname__scilla_version_147", i32 0, i32 0), i32 15 }, %_TyDescrTy_Typ* @"$TyDescr_Uint32_6" }, %"$ParamDescr_145" { %ParamDescrString { i8* getelementptr inbounds ([13 x i8], [13 x i8]* @"$pname__this_address_148", i32 0, i32 0), i32 13 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr20_34" }, %"$ParamDescr_145" { %ParamDescrString { i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$pname__creation_block_149", i32 0, i32 0), i32 15 }, %_TyDescrTy_Typ* @"$TyDescr_Bnum_22" }] @_contract_parameters_length = constant i32 3 -@"$tpname__amount_147" = unnamed_addr constant [7 x i8] c"_amount" -@"$tpname__origin_148" = unnamed_addr constant [7 x i8] c"_origin" -@"$tpname__sender_149" = unnamed_addr constant [7 x i8] c"_sender" -@"$tparams_EventTimestamp_150" = unnamed_addr constant [3 x %"$ParamDescr_142"] [%"$ParamDescr_142" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_147", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_14" }, %"$ParamDescr_142" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_148", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_42" }, %"$ParamDescr_142" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_149", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_42" }] -@"$tname_EventTimestamp_151" = unnamed_addr constant [14 x i8] c"EventTimestamp" -@_transition_parameters = constant [1 x %"$TransDescr_143"] [%"$TransDescr_143" { %ParamDescrString { i8* getelementptr inbounds ([14 x i8], [14 x i8]* @"$tname_EventTimestamp_151", i32 0, i32 0), i32 14 }, i32 3, %"$ParamDescr_142"* getelementptr inbounds ([3 x %"$ParamDescr_142"], [3 x %"$ParamDescr_142"]* @"$tparams_EventTimestamp_150", i32 0, i32 0) }] +@"$tpname__amount_150" = unnamed_addr constant [7 x i8] c"_amount" +@"$tpname__origin_151" = unnamed_addr constant [7 x i8] c"_origin" +@"$tpname__sender_152" = unnamed_addr constant [7 x i8] c"_sender" +@"$tparams_EventTimestamp_153" = unnamed_addr constant [3 x %"$ParamDescr_145"] [%"$ParamDescr_145" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_150", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_14" }, %"$ParamDescr_145" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_151", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_42" }, %"$ParamDescr_145" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_152", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_42" }] +@"$tname_EventTimestamp_154" = unnamed_addr constant [14 x i8] c"EventTimestamp" +@_transition_parameters = constant [1 x %"$TransDescr_146"] [%"$TransDescr_146" { %ParamDescrString { i8* getelementptr inbounds ([14 x i8], [14 x i8]* @"$tname_EventTimestamp_154", i32 0, i32 0), i32 14 }, i32 3, %"$ParamDescr_145"* getelementptr inbounds ([3 x %"$ParamDescr_145"], [3 x %"$ParamDescr_145"]* @"$tparams_EventTimestamp_153", i32 0, i32 0) }] @_transition_parameters_length = constant i32 1 -define void @_init_libs() !dbg !4 { +define void @_init_libs() !dbg !3 { entry: %"$gasrem_56" = load i64, i64* @_gasrem, align 8 %"$gascmp_57" = icmp ugt i64 5, %"$gasrem_56" @@ -138,6 +138,15 @@ entry: define internal void @"$EventTimestamp_66"(%Uint128 %_amount, [20 x i8]* %"$_origin_67", [20 x i8]* %"$_sender_68") !dbg !11 { entry: + %"$_sender_137" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_sender_68", [20 x i8]** %"$_sender_137", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_sender_137", metadata !12, metadata !DIExpression()), !dbg !14 + %"$_origin_136" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_origin_67", [20 x i8]** %"$_origin_136", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_origin_136", metadata !15, metadata !DIExpression()), !dbg !14 + %"$_amount_135" = alloca %Uint128, align 8 + store %Uint128 %_amount, %Uint128* %"$_amount_135", align 8 + call void @llvm.dbg.declare(metadata %Uint128* %"$_amount_135", metadata !16, metadata !DIExpression()), !dbg !14 %_origin = load [20 x i8], [20 x i8]* %"$_origin_67", align 1 %_sender = load [20 x i8], [20 x i8]* %"$_sender_68", align 1 %"$gasrem_69" = load i64, i64* @_gasrem, align 8 @@ -152,6 +161,7 @@ entry: %"$consume_73" = sub i64 %"$gasrem_69", 1 store i64 %"$consume_73", i64* @_gasrem, align 8 %bnum = alloca i8*, align 8 + call void @llvm.dbg.declare(metadata i8** %bnum, metadata !18, metadata !DIExpression()), !dbg !21 %"$gasrem_74" = load i64, i64* @_gasrem, align 8 %"$gascmp_75" = icmp ugt i64 1, %"$gasrem_74" br i1 %"$gascmp_75", label %"$out_of_gas_76", label %"$have_gas_77" @@ -165,7 +175,7 @@ entry: store i64 %"$consume_78", i64* @_gasrem, align 8 %"$execptr_load_80" = load i8*, i8** @_execptr, align 8 %"$_new_bnum_call_81" = call i8* @_new_bnum(i8* %"$execptr_load_80", %BNumString { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$BNumLit_79", i32 0, i32 0), i32 3 }) - store i8* %"$_new_bnum_call_81", i8** %bnum, align 8, !dbg !12 + store i8* %"$_new_bnum_call_81", i8** %bnum, align 8, !dbg !22 %"$gasrem_83" = load i64, i64* @_gasrem, align 8 %"$gascmp_84" = icmp ugt i64 1, %"$gasrem_83" br i1 %"$gascmp_84", label %"$out_of_gas_85", label %"$have_gas_86" @@ -178,14 +188,16 @@ entry: %"$consume_87" = sub i64 %"$gasrem_83", 1 store i64 %"$consume_87", i64* @_gasrem, align 8 %ts = alloca %TName_Option_Uint64*, align 8 + call void @llvm.dbg.declare(metadata %TName_Option_Uint64** %ts, metadata !23, metadata !DIExpression()), !dbg !26 %"$bnum_1" = alloca %String, align 8 + call void @llvm.dbg.declare(metadata %String* %"$bnum_1", metadata !27, metadata !DIExpression()), !dbg !26 %"$execptr_load_88" = load i8*, i8** @_execptr, align 8 %"$bnum_89" = load i8*, i8** %bnum, align 8 - %"$to_string_call_91" = call %String @_to_string(i8* %"$execptr_load_88", %_TyDescrTy_Typ* @"$TyDescr_Bnum_22", i8* %"$bnum_89"), !dbg !13 - store %String %"$to_string_call_91", %String* %"$bnum_1", align 8, !dbg !13 + %"$to_string_call_91" = call %String @_to_string(i8* %"$execptr_load_88", %_TyDescrTy_Typ* @"$TyDescr_Bnum_22", i8* %"$bnum_89"), !dbg !26 + store %String %"$to_string_call_91", %String* %"$bnum_1", align 8, !dbg !26 %"$execptr_load_93" = load i8*, i8** @_execptr, align 8 %"$$bnum_1_94" = load %String, %String* %"$bnum_1", align 8 - %"$ts_call_95" = call i8* @_read_blockchain(i8* %"$execptr_load_93", %BCQuery { i8* getelementptr inbounds ([9 x i8], [9 x i8]* @"$fetchbc_query_name_92", i32 0, i32 0), i32 9 }, %String %"$$bnum_1_94"), !dbg !13 + %"$ts_call_95" = call i8* @_read_blockchain(i8* %"$execptr_load_93", %BCQuery { i8* getelementptr inbounds ([9 x i8], [9 x i8]* @"$fetchbc_query_name_92", i32 0, i32 0), i32 9 }, %String %"$$bnum_1_94"), !dbg !26 %"$ts_96" = bitcast i8* %"$ts_call_95" to %TName_Option_Uint64* store %TName_Option_Uint64* %"$ts_96", %TName_Option_Uint64** %ts, align 8 %"$gasrem_97" = load i64, i64* @_gasrem, align 8 @@ -200,6 +212,7 @@ entry: %"$consume_101" = sub i64 %"$gasrem_97", 1 store i64 %"$consume_101", i64* @_gasrem, align 8 %e = alloca i8*, align 8 + call void @llvm.dbg.declare(metadata i8** %e, metadata !29, metadata !DIExpression()), !dbg !32 %"$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" @@ -235,7 +248,7 @@ entry: %"$msgobj_v_122" = getelementptr i8, i8* %"$msgobj_107", i32 65 %"$msgobj_v_123" = bitcast i8* %"$msgobj_v_122" to %TName_Option_Uint64** store %TName_Option_Uint64* %"$ts_121", %TName_Option_Uint64** %"$msgobj_v_123", align 8 - store i8* %"$msgobj_107", i8** %e, align 8, !dbg !14 + store i8* %"$msgobj_107", i8** %e, align 8, !dbg !33 %"$e_125" = load i8*, i8** %e, align 8 %"$_literal_cost_call_127" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Event_26", i8* %"$e_125") %"$gasrem_128" = load i64, i64* @_gasrem, align 8 @@ -251,10 +264,13 @@ entry: store i64 %"$consume_132", i64* @_gasrem, align 8 %"$execptr_load_133" = load i8*, i8** @_execptr, align 8 %"$e_134" = load i8*, i8** %e, align 8 - call void @_event(i8* %"$execptr_load_133", %_TyDescrTy_Typ* @"$TyDescr_Event_26", i8* %"$e_134"), !dbg !15 + call void @_event(i8* %"$execptr_load_133", %_TyDescrTy_Typ* @"$TyDescr_Event_26", i8* %"$e_134"), !dbg !34 ret void } +; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn +declare void @llvm.dbg.declare(metadata, metadata, metadata) #0 + declare i8* @_new_bnum(i8*, %BNumString) declare %String @_to_string(i8*, %_TyDescrTy_Typ*, i8*) @@ -267,37 +283,58 @@ declare i64 @_literal_cost(%_TyDescrTy_Typ*, i8*) declare void @_event(i8*, %_TyDescrTy_Typ*, i8*) -define void @EventTimestamp(i8* %0) !dbg !16 { +define void @EventTimestamp(i8* %0) !dbg !35 { entry: - %"$_amount_136" = getelementptr i8, i8* %0, i32 0 - %"$_amount_137" = bitcast i8* %"$_amount_136" to %Uint128* - %_amount = load %Uint128, %Uint128* %"$_amount_137", align 8 - %"$_origin_138" = getelementptr i8, i8* %0, i32 16 - %"$_origin_139" = bitcast i8* %"$_origin_138" to [20 x i8]* - %"$_sender_140" = getelementptr i8, i8* %0, i32 36 - %"$_sender_141" = bitcast i8* %"$_sender_140" to [20 x i8]* - call void @"$EventTimestamp_66"(%Uint128 %_amount, [20 x i8]* %"$_origin_139", [20 x i8]* %"$_sender_141"), !dbg !17 + %"$_amount_139" = getelementptr i8, i8* %0, i32 0 + %"$_amount_140" = bitcast i8* %"$_amount_139" to %Uint128* + %_amount = load %Uint128, %Uint128* %"$_amount_140", align 8 + %"$_origin_141" = getelementptr i8, i8* %0, i32 16 + %"$_origin_142" = bitcast i8* %"$_origin_141" to [20 x i8]* + %"$_sender_143" = getelementptr i8, i8* %0, i32 36 + %"$_sender_144" = bitcast i8* %"$_sender_143" to [20 x i8]* + call void @"$EventTimestamp_66"(%Uint128 %_amount, [20 x i8]* %"$_origin_142", [20 x i8]* %"$_sender_144"), !dbg !36 ret void } +attributes #0 = { nocallback nofree nosync nounwind readnone speculatable willreturn } + !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) +!1 = distinct !DICompileUnit(language: DW_LANG_C89, file: !2, producer: "Scilla Compiler", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false) !2 = !DIFile(filename: "timestamp.scilla", directory: "codegen/contr") -!3 = !{} -!4 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !5, file: !5, type: !6, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!5 = !DIFile(filename: ".", directory: ".") -!6 = !DISubroutineType(types: !7) -!7 = !{!8} -!8 = !DIBasicType(tag: DW_TAG_unspecified_type, name: "void") -!9 = !DILocation(line: 0, scope: !4) -!10 = distinct !DISubprogram(name: "_deploy_ops", linkageName: "_deploy_ops", scope: !5, file: !5, type: !6, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!11 = distinct !DISubprogram(name: "EventTimestamp", linkageName: "EventTimestamp", scope: !2, file: !2, line: 9, type: !6, scopeLine: 9, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!12 = !DILocation(line: 10, column: 10, scope: !11) -!13 = !DILocation(line: 11, column: 3, scope: !11) -!14 = !DILocation(line: 12, column: 7, scope: !11) -!15 = !DILocation(line: 13, column: 3, scope: !11) -!16 = distinct !DISubprogram(name: "EventTimestamp", linkageName: "EventTimestamp", scope: !2, file: !2, line: 9, type: !6, scopeLine: 9, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!17 = !DILocation(line: 9, column: 12, scope: !16) +!3 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !4, file: !4, type: !5, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!4 = !DIFile(filename: ".", directory: ".") +!5 = !DISubroutineType(types: !6) +!6 = !{!7} +!7 = !DIBasicType(tag: DW_TAG_unspecified_type, name: "void") +!8 = !{} +!9 = !DILocation(line: 0, scope: !3) +!10 = distinct !DISubprogram(name: "_deploy_ops", linkageName: "_deploy_ops", scope: !4, file: !4, type: !5, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!11 = distinct !DISubprogram(name: "EventTimestamp", linkageName: "EventTimestamp", scope: !2, file: !2, line: 9, type: !5, scopeLine: 9, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!12 = !DILocalVariable(name: "_sender", scope: !11, file: !2, line: 9, type: !13) +!13 = !DIBasicType(name: "ByStr20 with end", size: 20) +!14 = !DILocation(line: 9, column: 12, scope: !11) +!15 = !DILocalVariable(name: "_origin", scope: !11, file: !2, line: 9, type: !13) +!16 = !DILocalVariable(name: "_amount", scope: !11, file: !2, line: 9, type: !17) +!17 = !DIBasicType(name: "Uint128", size: 16) +!18 = !DILocalVariable(name: "bnum", scope: !11, file: !2, line: 10, type: !19) +!19 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "BNum", baseType: !20, size: 8, align: 8, dwarfAddressSpace: 0) +!20 = !DIBasicType(name: "BNum", size: 8) +!21 = !DILocation(line: 10, column: 3, scope: !11) +!22 = !DILocation(line: 10, column: 10, scope: !11) +!23 = !DILocalVariable(name: "ts", scope: !11, file: !2, line: 11, type: !24) +!24 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "Option (Uint64)", baseType: !25, size: 8, align: 8, dwarfAddressSpace: 0) +!25 = !DIBasicType(name: "Option (Uint64)", size: 8) +!26 = !DILocation(line: 11, column: 3, scope: !11) +!27 = !DILocalVariable(name: "$bnum_1", scope: !11, file: !2, line: 11, type: !28) +!28 = !DIBasicType(name: "String", size: 16) +!29 = !DILocalVariable(name: "e", scope: !11, file: !2, line: 12, type: !30) +!30 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "Event", baseType: !31, size: 8, align: 8, dwarfAddressSpace: 0) +!31 = !DIBasicType(name: "Event", size: 8) +!32 = !DILocation(line: 12, column: 3, scope: !11) +!33 = !DILocation(line: 12, column: 7, scope: !11) +!34 = !DILocation(line: 13, column: 3, scope: !11) +!35 = distinct !DISubprogram(name: "EventTimestamp", linkageName: "EventTimestamp", scope: !2, file: !2, line: 9, type: !5, scopeLine: 9, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!36 = !DILocation(line: 9, column: 12, scope: !35) diff --git a/testsuite/contr/timestamp.ll b/testsuite/contr/timestamp.ll index c8bece6c..878dec52 100644 --- a/testsuite/contr/timestamp.ll +++ b/testsuite/contr/timestamp.ll @@ -4,7 +4,7 @@ ; 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-pc-linux-gnu" +target triple = "x86_64-unknown-linux-gnu" %"$TyDescrTy_PrimTyp_2" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/testsuite/contr/type_casts.dbg.ll b/testsuite/contr/type_casts.dbg.ll index 3192ee01..c020fcf6 100644 --- a/testsuite/contr/type_casts.dbg.ll +++ b/testsuite/contr/type_casts.dbg.ll @@ -4,7 +4,7 @@ ; 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-pc-linux-gnu" +target triple = "x86_64-unknown-linux-gnu" %"$TyDescrTy_PrimTyp_22" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } @@ -16,9 +16,9 @@ target triple = "x86_64-pc-linux-gnu" %"$TyDescr_AddrTyp_69" = type { i32, %"$TyDescr_AddrFieldTyp_68"* } %Int32 = type { i32 } %Uint32 = type { i32 } -%"$ParamDescr_1659" = type { %ParamDescrString, %_TyDescrTy_Typ* } +%"$ParamDescr_1703" = type { %ParamDescrString, %_TyDescrTy_Typ* } %ParamDescrString = type { i8*, i32 } -%"$TransDescr_1660" = type { %ParamDescrString, i32, %"$ParamDescr_1659"* } +%"$TransDescr_1704" = type { %ParamDescrString, i32, %"$ParamDescr_1703"* } %TName_Option_ByStr20_with_end = type { i8, %CName_Some_ByStr20_with_end*, %CName_None_ByStr20_with_end* } %CName_Some_ByStr20_with_end = type <{ i8, [20 x i8] }> %CName_None_ByStr20_with_end = type <{ i8 }> @@ -233,121 +233,121 @@ target triple = "x86_64-pc-linux-gnu" @"$test_7_g_res_432" = unnamed_addr constant [13 x i8] c"test_7_g_res\00" @"$test_7_h_res_444" = unnamed_addr constant [13 x i8] c"test_7_h_res\00" @"$test_1_res_469" = unnamed_addr constant [11 x i8] c"test_1_res\00" -@"$test_2_res_503" = unnamed_addr constant [11 x i8] c"test_2_res\00" -@"$test_3_res_537" = unnamed_addr constant [11 x i8] c"test_3_res\00" -@"$_balance_576" = unnamed_addr constant [9 x i8] c"_balance\00" -@"$test_4_res_617" = unnamed_addr constant [11 x i8] c"test_4_res\00" -@"$_balance_658" = unnamed_addr constant [9 x i8] c"_balance\00" -@"$test_5_1_res_699" = unnamed_addr constant [13 x i8] c"test_5_1_res\00" -@"$_balance_740" = unnamed_addr constant [9 x i8] c"_balance\00" -@"$test_5_2_res_781" = unnamed_addr constant [13 x i8] c"test_5_2_res\00" -@"$_balance_822" = unnamed_addr constant [9 x i8] c"_balance\00" -@"$test_6_1_bal_res_863" = unnamed_addr constant [17 x i8] c"test_6_1_bal_res\00" -@"$f_866" = unnamed_addr constant [2 x i8] c"f\00" -@"$test_6_1_f_res_907" = unnamed_addr constant [15 x i8] c"test_6_1_f_res\00" -@"$g_910" = unnamed_addr constant [2 x i8] c"g\00" -@"$test_6_1_g_res_949" = unnamed_addr constant [15 x i8] c"test_6_1_g_res\00" -@"$_balance_990" = unnamed_addr constant [9 x i8] c"_balance\00" -@"$test_6_2_bal_res_1031" = unnamed_addr constant [17 x i8] c"test_6_2_bal_res\00" -@"$f_1034" = unnamed_addr constant [2 x i8] c"f\00" -@"$test_6_2_f_res_1075" = unnamed_addr constant [15 x i8] c"test_6_2_f_res\00" -@"$g_1078" = unnamed_addr constant [2 x i8] c"g\00" -@"$test_6_2_g_res_1117" = unnamed_addr constant [15 x i8] c"test_6_2_g_res\00" -@"$_balance_1158" = unnamed_addr constant [9 x i8] c"_balance\00" -@"$test_6_3_bal_res_1199" = unnamed_addr constant [17 x i8] c"test_6_3_bal_res\00" -@"$f_1202" = unnamed_addr constant [2 x i8] c"f\00" -@"$test_6_3_f_res_1243" = unnamed_addr constant [15 x i8] c"test_6_3_f_res\00" -@"$g_1246" = unnamed_addr constant [2 x i8] c"g\00" -@"$test_6_3_g_res_1285" = unnamed_addr constant [15 x i8] c"test_6_3_g_res\00" -@"$_balance_1326" = unnamed_addr constant [9 x i8] c"_balance\00" -@"$test_6_4_bal_res_1367" = unnamed_addr constant [17 x i8] c"test_6_4_bal_res\00" -@"$f_1370" = unnamed_addr constant [2 x i8] c"f\00" -@"$test_6_4_f_res_1411" = unnamed_addr constant [15 x i8] c"test_6_4_f_res\00" -@"$g_1414" = unnamed_addr constant [2 x i8] c"g\00" -@"$test_6_4_g_res_1453" = unnamed_addr constant [15 x i8] c"test_6_4_g_res\00" -@"$test_6_4_failed_cast_1480" = unnamed_addr constant [21 x i8] c"test_6_4_failed_cast\00" -@"$f_1519" = unnamed_addr constant [2 x i8] c"f\00" -@"$g_1560" = unnamed_addr constant [2 x i8] c"g\00" -@"$test_7_g_res_1599" = unnamed_addr constant [13 x i8] c"test_7_g_res\00" -@"$h_1602" = unnamed_addr constant [2 x i8] c"h\00" -@"$test_7_h_res_1643" = unnamed_addr constant [13 x i8] c"test_7_h_res\00" +@"$test_2_res_507" = unnamed_addr constant [11 x i8] c"test_2_res\00" +@"$test_3_res_545" = unnamed_addr constant [11 x i8] c"test_3_res\00" +@"$_balance_588" = unnamed_addr constant [9 x i8] c"_balance\00" +@"$test_4_res_629" = unnamed_addr constant [11 x i8] c"test_4_res\00" +@"$_balance_674" = unnamed_addr constant [9 x i8] c"_balance\00" +@"$test_5_1_res_715" = unnamed_addr constant [13 x i8] c"test_5_1_res\00" +@"$_balance_760" = unnamed_addr constant [9 x i8] c"_balance\00" +@"$test_5_2_res_801" = unnamed_addr constant [13 x i8] c"test_5_2_res\00" +@"$_balance_846" = unnamed_addr constant [9 x i8] c"_balance\00" +@"$test_6_1_bal_res_887" = unnamed_addr constant [17 x i8] c"test_6_1_bal_res\00" +@"$f_890" = unnamed_addr constant [2 x i8] c"f\00" +@"$test_6_1_f_res_931" = unnamed_addr constant [15 x i8] c"test_6_1_f_res\00" +@"$g_934" = unnamed_addr constant [2 x i8] c"g\00" +@"$test_6_1_g_res_973" = unnamed_addr constant [15 x i8] c"test_6_1_g_res\00" +@"$_balance_1018" = unnamed_addr constant [9 x i8] c"_balance\00" +@"$test_6_2_bal_res_1059" = unnamed_addr constant [17 x i8] c"test_6_2_bal_res\00" +@"$f_1062" = unnamed_addr constant [2 x i8] c"f\00" +@"$test_6_2_f_res_1103" = unnamed_addr constant [15 x i8] c"test_6_2_f_res\00" +@"$g_1106" = unnamed_addr constant [2 x i8] c"g\00" +@"$test_6_2_g_res_1145" = unnamed_addr constant [15 x i8] c"test_6_2_g_res\00" +@"$_balance_1190" = unnamed_addr constant [9 x i8] c"_balance\00" +@"$test_6_3_bal_res_1231" = unnamed_addr constant [17 x i8] c"test_6_3_bal_res\00" +@"$f_1234" = unnamed_addr constant [2 x i8] c"f\00" +@"$test_6_3_f_res_1275" = unnamed_addr constant [15 x i8] c"test_6_3_f_res\00" +@"$g_1278" = unnamed_addr constant [2 x i8] c"g\00" +@"$test_6_3_g_res_1317" = unnamed_addr constant [15 x i8] c"test_6_3_g_res\00" +@"$_balance_1362" = unnamed_addr constant [9 x i8] c"_balance\00" +@"$test_6_4_bal_res_1403" = unnamed_addr constant [17 x i8] c"test_6_4_bal_res\00" +@"$f_1406" = unnamed_addr constant [2 x i8] c"f\00" +@"$test_6_4_f_res_1447" = unnamed_addr constant [15 x i8] c"test_6_4_f_res\00" +@"$g_1450" = unnamed_addr constant [2 x i8] c"g\00" +@"$test_6_4_g_res_1489" = unnamed_addr constant [15 x i8] c"test_6_4_g_res\00" +@"$test_6_4_failed_cast_1516" = unnamed_addr constant [21 x i8] c"test_6_4_failed_cast\00" +@"$f_1559" = unnamed_addr constant [2 x i8] c"f\00" +@"$g_1600" = unnamed_addr constant [2 x i8] c"g\00" +@"$test_7_g_res_1639" = unnamed_addr constant [13 x i8] c"test_7_g_res\00" +@"$h_1642" = unnamed_addr constant [2 x i8] c"h\00" +@"$test_7_h_res_1683" = unnamed_addr constant [13 x i8] c"test_7_h_res\00" @_tydescr_table = constant [32 x %_TyDescrTy_Typ*] [%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_Int256_61", %_TyDescrTy_Typ* @"$TyDescr_ADT_Option_ByStr20_with_contract_field_f_:_Uint128,_field_g_:_Bool_end_60", %_TyDescrTy_Typ* @"$TyDescr_Event_46", %_TyDescrTy_Typ* @"$TyDescr_Int64_28", %_TyDescrTy_Typ* @"$TyDescr_ADT_Option_ByStr20_with_contract_end_64", %_TyDescrTy_Typ* @"$TyDescr_Addr_76", %_TyDescrTy_Typ* @"$TyDescr_Addr_73", %_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_66", %_TyDescrTy_Typ* @"$TyDescr_Bystr20_54", %_TyDescrTy_Typ* @"$TyDescr_Uint256_38", %_TyDescrTy_Typ* @"$TyDescr_Uint32_26", %_TyDescrTy_Typ* @"$TyDescr_Addr_75", %_TyDescrTy_Typ* @"$TyDescr_Addr_72", %_TyDescrTy_Typ* @"$TyDescr_ADT_Option_Bool_62", %_TyDescrTy_Typ* @"$TyDescr_Uint64_30", %_TyDescrTy_Typ* @"$TyDescr_Bnum_42", %_TyDescrTy_Typ* @"$TyDescr_Uint128_34", %_TyDescrTy_Typ* @"$TyDescr_Addr_71", %_TyDescrTy_Typ* @"$TyDescr_Exception_48", %_TyDescrTy_Typ* @"$TyDescr_String_40", %_TyDescrTy_Typ* @"$TyDescr_Addr_74", %_TyDescrTy_Typ* @"$TyDescr_Int256_36", %_TyDescrTy_Typ* @"$TyDescr_Int128_32", %_TyDescrTy_Typ* @"$TyDescr_Addr_70", %_TyDescrTy_Typ* @"$TyDescr_ADT_Option_ByStr20_with_end_65", %_TyDescrTy_Typ* @"$TyDescr_ADT_Option_Uint128_63", %_TyDescrTy_Typ* @"$TyDescr_Bystr_52", %_TyDescrTy_Typ* @"$TyDescr_ReplicateContr_50", %_TyDescrTy_Typ* @"$TyDescr_Message_44", %_TyDescrTy_Typ* @"$TyDescr_ADT_Option_ByStr20_with_contract_field_f_:_ByStr20_end_59", %_TyDescrTy_Typ* @"$TyDescr_ADT_Option_ByStr20_with_contract_field_g_:_Bool,_field_h_:_Int256_end_58", %_TyDescrTy_Typ* @"$TyDescr_Int32_24"] @_tydescr_table_length = constant i32 32 -@"$pname__scilla_version_1661" = unnamed_addr constant [15 x i8] c"_scilla_version" -@"$pname__this_address_1662" = unnamed_addr constant [13 x i8] c"_this_address" -@"$pname__creation_block_1663" = unnamed_addr constant [15 x i8] c"_creation_block" -@_contract_parameters = constant [3 x %"$ParamDescr_1659"] [%"$ParamDescr_1659" { %ParamDescrString { i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$pname__scilla_version_1661", i32 0, i32 0), i32 15 }, %_TyDescrTy_Typ* @"$TyDescr_Uint32_26" }, %"$ParamDescr_1659" { %ParamDescrString { i8* getelementptr inbounds ([13 x i8], [13 x i8]* @"$pname__this_address_1662", i32 0, i32 0), i32 13 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr20_54" }, %"$ParamDescr_1659" { %ParamDescrString { i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$pname__creation_block_1663", i32 0, i32 0), i32 15 }, %_TyDescrTy_Typ* @"$TyDescr_Bnum_42" }] +@"$pname__scilla_version_1705" = unnamed_addr constant [15 x i8] c"_scilla_version" +@"$pname__this_address_1706" = unnamed_addr constant [13 x i8] c"_this_address" +@"$pname__creation_block_1707" = unnamed_addr constant [15 x i8] c"_creation_block" +@_contract_parameters = constant [3 x %"$ParamDescr_1703"] [%"$ParamDescr_1703" { %ParamDescrString { i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$pname__scilla_version_1705", i32 0, i32 0), i32 15 }, %_TyDescrTy_Typ* @"$TyDescr_Uint32_26" }, %"$ParamDescr_1703" { %ParamDescrString { i8* getelementptr inbounds ([13 x i8], [13 x i8]* @"$pname__this_address_1706", i32 0, i32 0), i32 13 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr20_54" }, %"$ParamDescr_1703" { %ParamDescrString { i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$pname__creation_block_1707", i32 0, i32 0), i32 15 }, %_TyDescrTy_Typ* @"$TyDescr_Bnum_42" }] @_contract_parameters_length = constant i32 3 -@"$tpname__amount_1664" = unnamed_addr constant [7 x i8] c"_amount" -@"$tpname__origin_1665" = unnamed_addr constant [7 x i8] c"_origin" -@"$tpname__sender_1666" = unnamed_addr constant [7 x i8] c"_sender" -@"$tpname_x_1667" = unnamed_addr constant [1 x i8] c"x" -@"$tparams_CastTest1_1668" = unnamed_addr constant [4 x %"$ParamDescr_1659"] [%"$ParamDescr_1659" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_1664", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_34" }, %"$ParamDescr_1659" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_1665", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_76" }, %"$ParamDescr_1659" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_1666", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_76" }, %"$ParamDescr_1659" { %ParamDescrString { i8* getelementptr inbounds ([1 x i8], [1 x i8]* @"$tpname_x_1667", i32 0, i32 0), i32 1 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_75" }] -@"$tname_CastTest1_1669" = unnamed_addr constant [9 x i8] c"CastTest1" -@"$tpname__amount_1670" = unnamed_addr constant [7 x i8] c"_amount" -@"$tpname__origin_1671" = unnamed_addr constant [7 x i8] c"_origin" -@"$tpname__sender_1672" = unnamed_addr constant [7 x i8] c"_sender" -@"$tpname_x_1673" = unnamed_addr constant [1 x i8] c"x" -@"$tparams_CastTest2_1674" = unnamed_addr constant [4 x %"$ParamDescr_1659"] [%"$ParamDescr_1659" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_1670", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_34" }, %"$ParamDescr_1659" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_1671", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_76" }, %"$ParamDescr_1659" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_1672", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_76" }, %"$ParamDescr_1659" { %ParamDescrString { i8* getelementptr inbounds ([1 x i8], [1 x i8]* @"$tpname_x_1673", i32 0, i32 0), i32 1 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_75" }] -@"$tname_CastTest2_1675" = unnamed_addr constant [9 x i8] c"CastTest2" -@"$tpname__amount_1676" = unnamed_addr constant [7 x i8] c"_amount" -@"$tpname__origin_1677" = unnamed_addr constant [7 x i8] c"_origin" -@"$tpname__sender_1678" = unnamed_addr constant [7 x i8] c"_sender" -@"$tpname_x_1679" = unnamed_addr constant [1 x i8] c"x" -@"$tparams_CastTest3_1680" = unnamed_addr constant [4 x %"$ParamDescr_1659"] [%"$ParamDescr_1659" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_1676", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_34" }, %"$ParamDescr_1659" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_1677", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_76" }, %"$ParamDescr_1659" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_1678", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_76" }, %"$ParamDescr_1659" { %ParamDescrString { i8* getelementptr inbounds ([1 x i8], [1 x i8]* @"$tpname_x_1679", i32 0, i32 0), i32 1 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_75" }] -@"$tname_CastTest3_1681" = unnamed_addr constant [9 x i8] c"CastTest3" -@"$tpname__amount_1682" = unnamed_addr constant [7 x i8] c"_amount" -@"$tpname__origin_1683" = unnamed_addr constant [7 x i8] c"_origin" -@"$tpname__sender_1684" = unnamed_addr constant [7 x i8] c"_sender" -@"$tpname_x_1685" = unnamed_addr constant [1 x i8] c"x" -@"$tparams_CastTest4_1686" = unnamed_addr constant [4 x %"$ParamDescr_1659"] [%"$ParamDescr_1659" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_1682", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_34" }, %"$ParamDescr_1659" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_1683", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_76" }, %"$ParamDescr_1659" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_1684", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_76" }, %"$ParamDescr_1659" { %ParamDescrString { i8* getelementptr inbounds ([1 x i8], [1 x i8]* @"$tpname_x_1685", i32 0, i32 0), i32 1 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr20_54" }] -@"$tname_CastTest4_1687" = unnamed_addr constant [9 x i8] c"CastTest4" -@"$tpname__amount_1688" = unnamed_addr constant [7 x i8] c"_amount" -@"$tpname__origin_1689" = unnamed_addr constant [7 x i8] c"_origin" -@"$tpname__sender_1690" = unnamed_addr constant [7 x i8] c"_sender" -@"$tpname_x_1691" = unnamed_addr constant [1 x i8] c"x" -@"$tparams_CastTest5_1_1692" = unnamed_addr constant [4 x %"$ParamDescr_1659"] [%"$ParamDescr_1659" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_1688", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_34" }, %"$ParamDescr_1659" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_1689", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_76" }, %"$ParamDescr_1659" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_1690", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_76" }, %"$ParamDescr_1659" { %ParamDescrString { i8* getelementptr inbounds ([1 x i8], [1 x i8]* @"$tpname_x_1691", i32 0, i32 0), i32 1 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr20_54" }] -@"$tname_CastTest5_1_1693" = unnamed_addr constant [11 x i8] c"CastTest5_1" -@"$tpname__amount_1694" = unnamed_addr constant [7 x i8] c"_amount" -@"$tpname__origin_1695" = unnamed_addr constant [7 x i8] c"_origin" -@"$tpname__sender_1696" = unnamed_addr constant [7 x i8] c"_sender" -@"$tpname_x_1697" = unnamed_addr constant [1 x i8] c"x" -@"$tparams_CastTest5_2_1698" = unnamed_addr constant [4 x %"$ParamDescr_1659"] [%"$ParamDescr_1659" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_1694", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_34" }, %"$ParamDescr_1659" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_1695", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_76" }, %"$ParamDescr_1659" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_1696", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_76" }, %"$ParamDescr_1659" { %ParamDescrString { i8* getelementptr inbounds ([1 x i8], [1 x i8]* @"$tpname_x_1697", i32 0, i32 0), i32 1 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_76" }] -@"$tname_CastTest5_2_1699" = unnamed_addr constant [11 x i8] c"CastTest5_2" -@"$tpname__amount_1700" = unnamed_addr constant [7 x i8] c"_amount" -@"$tpname__origin_1701" = unnamed_addr constant [7 x i8] c"_origin" -@"$tpname__sender_1702" = unnamed_addr constant [7 x i8] c"_sender" -@"$tpname_x_1703" = unnamed_addr constant [1 x i8] c"x" -@"$tparams_CastTest6_1_1704" = unnamed_addr constant [4 x %"$ParamDescr_1659"] [%"$ParamDescr_1659" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_1700", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_34" }, %"$ParamDescr_1659" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_1701", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_76" }, %"$ParamDescr_1659" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_1702", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_76" }, %"$ParamDescr_1659" { %ParamDescrString { i8* getelementptr inbounds ([1 x i8], [1 x i8]* @"$tpname_x_1703", i32 0, i32 0), i32 1 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr20_54" }] -@"$tname_CastTest6_1_1705" = unnamed_addr constant [11 x i8] c"CastTest6_1" -@"$tpname__amount_1706" = unnamed_addr constant [7 x i8] c"_amount" -@"$tpname__origin_1707" = unnamed_addr constant [7 x i8] c"_origin" -@"$tpname__sender_1708" = unnamed_addr constant [7 x i8] c"_sender" -@"$tpname_x_1709" = unnamed_addr constant [1 x i8] c"x" -@"$tparams_CastTest6_2_1710" = unnamed_addr constant [4 x %"$ParamDescr_1659"] [%"$ParamDescr_1659" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_1706", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_34" }, %"$ParamDescr_1659" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_1707", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_76" }, %"$ParamDescr_1659" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_1708", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_76" }, %"$ParamDescr_1659" { %ParamDescrString { i8* getelementptr inbounds ([1 x i8], [1 x i8]* @"$tpname_x_1709", i32 0, i32 0), i32 1 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_76" }] -@"$tname_CastTest6_2_1711" = unnamed_addr constant [11 x i8] c"CastTest6_2" -@"$tpname__amount_1712" = unnamed_addr constant [7 x i8] c"_amount" -@"$tpname__origin_1713" = unnamed_addr constant [7 x i8] c"_origin" -@"$tpname__sender_1714" = unnamed_addr constant [7 x i8] c"_sender" -@"$tpname_x_1715" = unnamed_addr constant [1 x i8] c"x" -@"$tparams_CastTest6_3_1716" = unnamed_addr constant [4 x %"$ParamDescr_1659"] [%"$ParamDescr_1659" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_1712", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_34" }, %"$ParamDescr_1659" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_1713", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_76" }, %"$ParamDescr_1659" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_1714", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_76" }, %"$ParamDescr_1659" { %ParamDescrString { i8* getelementptr inbounds ([1 x i8], [1 x i8]* @"$tpname_x_1715", i32 0, i32 0), i32 1 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_73" }] -@"$tname_CastTest6_3_1717" = unnamed_addr constant [11 x i8] c"CastTest6_3" -@"$tpname__amount_1718" = unnamed_addr constant [7 x i8] c"_amount" -@"$tpname__origin_1719" = unnamed_addr constant [7 x i8] c"_origin" -@"$tpname__sender_1720" = unnamed_addr constant [7 x i8] c"_sender" -@"$tpname_x_1721" = unnamed_addr constant [1 x i8] c"x" -@"$tparams_CastTest6_4_1722" = unnamed_addr constant [4 x %"$ParamDescr_1659"] [%"$ParamDescr_1659" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_1718", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_34" }, %"$ParamDescr_1659" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_1719", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_76" }, %"$ParamDescr_1659" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_1720", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_76" }, %"$ParamDescr_1659" { %ParamDescrString { i8* getelementptr inbounds ([1 x i8], [1 x i8]* @"$tpname_x_1721", i32 0, i32 0), i32 1 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_72" }] -@"$tname_CastTest6_4_1723" = unnamed_addr constant [11 x i8] c"CastTest6_4" -@"$tpname__amount_1724" = unnamed_addr constant [7 x i8] c"_amount" -@"$tpname__origin_1725" = unnamed_addr constant [7 x i8] c"_origin" -@"$tpname__sender_1726" = unnamed_addr constant [7 x i8] c"_sender" -@"$tpname_x_1727" = unnamed_addr constant [1 x i8] c"x" -@"$tparams_CastTest7_1728" = unnamed_addr constant [4 x %"$ParamDescr_1659"] [%"$ParamDescr_1659" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_1724", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_34" }, %"$ParamDescr_1659" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_1725", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_76" }, %"$ParamDescr_1659" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_1726", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_76" }, %"$ParamDescr_1659" { %ParamDescrString { i8* getelementptr inbounds ([1 x i8], [1 x i8]* @"$tpname_x_1727", i32 0, i32 0), i32 1 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr20_54" }] -@"$tname_CastTest7_1729" = unnamed_addr constant [9 x i8] c"CastTest7" -@_transition_parameters = constant [11 x %"$TransDescr_1660"] [%"$TransDescr_1660" { %ParamDescrString { i8* getelementptr inbounds ([9 x i8], [9 x i8]* @"$tname_CastTest1_1669", i32 0, i32 0), i32 9 }, i32 4, %"$ParamDescr_1659"* getelementptr inbounds ([4 x %"$ParamDescr_1659"], [4 x %"$ParamDescr_1659"]* @"$tparams_CastTest1_1668", i32 0, i32 0) }, %"$TransDescr_1660" { %ParamDescrString { i8* getelementptr inbounds ([9 x i8], [9 x i8]* @"$tname_CastTest2_1675", i32 0, i32 0), i32 9 }, i32 4, %"$ParamDescr_1659"* getelementptr inbounds ([4 x %"$ParamDescr_1659"], [4 x %"$ParamDescr_1659"]* @"$tparams_CastTest2_1674", i32 0, i32 0) }, %"$TransDescr_1660" { %ParamDescrString { i8* getelementptr inbounds ([9 x i8], [9 x i8]* @"$tname_CastTest3_1681", i32 0, i32 0), i32 9 }, i32 4, %"$ParamDescr_1659"* getelementptr inbounds ([4 x %"$ParamDescr_1659"], [4 x %"$ParamDescr_1659"]* @"$tparams_CastTest3_1680", i32 0, i32 0) }, %"$TransDescr_1660" { %ParamDescrString { i8* getelementptr inbounds ([9 x i8], [9 x i8]* @"$tname_CastTest4_1687", i32 0, i32 0), i32 9 }, i32 4, %"$ParamDescr_1659"* getelementptr inbounds ([4 x %"$ParamDescr_1659"], [4 x %"$ParamDescr_1659"]* @"$tparams_CastTest4_1686", i32 0, i32 0) }, %"$TransDescr_1660" { %ParamDescrString { i8* getelementptr inbounds ([11 x i8], [11 x i8]* @"$tname_CastTest5_1_1693", i32 0, i32 0), i32 11 }, i32 4, %"$ParamDescr_1659"* getelementptr inbounds ([4 x %"$ParamDescr_1659"], [4 x %"$ParamDescr_1659"]* @"$tparams_CastTest5_1_1692", i32 0, i32 0) }, %"$TransDescr_1660" { %ParamDescrString { i8* getelementptr inbounds ([11 x i8], [11 x i8]* @"$tname_CastTest5_2_1699", i32 0, i32 0), i32 11 }, i32 4, %"$ParamDescr_1659"* getelementptr inbounds ([4 x %"$ParamDescr_1659"], [4 x %"$ParamDescr_1659"]* @"$tparams_CastTest5_2_1698", i32 0, i32 0) }, %"$TransDescr_1660" { %ParamDescrString { i8* getelementptr inbounds ([11 x i8], [11 x i8]* @"$tname_CastTest6_1_1705", i32 0, i32 0), i32 11 }, i32 4, %"$ParamDescr_1659"* getelementptr inbounds ([4 x %"$ParamDescr_1659"], [4 x %"$ParamDescr_1659"]* @"$tparams_CastTest6_1_1704", i32 0, i32 0) }, %"$TransDescr_1660" { %ParamDescrString { i8* getelementptr inbounds ([11 x i8], [11 x i8]* @"$tname_CastTest6_2_1711", i32 0, i32 0), i32 11 }, i32 4, %"$ParamDescr_1659"* getelementptr inbounds ([4 x %"$ParamDescr_1659"], [4 x %"$ParamDescr_1659"]* @"$tparams_CastTest6_2_1710", i32 0, i32 0) }, %"$TransDescr_1660" { %ParamDescrString { i8* getelementptr inbounds ([11 x i8], [11 x i8]* @"$tname_CastTest6_3_1717", i32 0, i32 0), i32 11 }, i32 4, %"$ParamDescr_1659"* getelementptr inbounds ([4 x %"$ParamDescr_1659"], [4 x %"$ParamDescr_1659"]* @"$tparams_CastTest6_3_1716", i32 0, i32 0) }, %"$TransDescr_1660" { %ParamDescrString { i8* getelementptr inbounds ([11 x i8], [11 x i8]* @"$tname_CastTest6_4_1723", i32 0, i32 0), i32 11 }, i32 4, %"$ParamDescr_1659"* getelementptr inbounds ([4 x %"$ParamDescr_1659"], [4 x %"$ParamDescr_1659"]* @"$tparams_CastTest6_4_1722", i32 0, i32 0) }, %"$TransDescr_1660" { %ParamDescrString { i8* getelementptr inbounds ([9 x i8], [9 x i8]* @"$tname_CastTest7_1729", i32 0, i32 0), i32 9 }, i32 4, %"$ParamDescr_1659"* getelementptr inbounds ([4 x %"$ParamDescr_1659"], [4 x %"$ParamDescr_1659"]* @"$tparams_CastTest7_1728", i32 0, i32 0) }] +@"$tpname__amount_1708" = unnamed_addr constant [7 x i8] c"_amount" +@"$tpname__origin_1709" = unnamed_addr constant [7 x i8] c"_origin" +@"$tpname__sender_1710" = unnamed_addr constant [7 x i8] c"_sender" +@"$tpname_x_1711" = unnamed_addr constant [1 x i8] c"x" +@"$tparams_CastTest1_1712" = unnamed_addr constant [4 x %"$ParamDescr_1703"] [%"$ParamDescr_1703" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_1708", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_34" }, %"$ParamDescr_1703" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_1709", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_76" }, %"$ParamDescr_1703" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_1710", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_76" }, %"$ParamDescr_1703" { %ParamDescrString { i8* getelementptr inbounds ([1 x i8], [1 x i8]* @"$tpname_x_1711", i32 0, i32 0), i32 1 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_75" }] +@"$tname_CastTest1_1713" = unnamed_addr constant [9 x i8] c"CastTest1" +@"$tpname__amount_1714" = unnamed_addr constant [7 x i8] c"_amount" +@"$tpname__origin_1715" = unnamed_addr constant [7 x i8] c"_origin" +@"$tpname__sender_1716" = unnamed_addr constant [7 x i8] c"_sender" +@"$tpname_x_1717" = unnamed_addr constant [1 x i8] c"x" +@"$tparams_CastTest2_1718" = unnamed_addr constant [4 x %"$ParamDescr_1703"] [%"$ParamDescr_1703" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_1714", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_34" }, %"$ParamDescr_1703" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_1715", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_76" }, %"$ParamDescr_1703" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_1716", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_76" }, %"$ParamDescr_1703" { %ParamDescrString { i8* getelementptr inbounds ([1 x i8], [1 x i8]* @"$tpname_x_1717", i32 0, i32 0), i32 1 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_75" }] +@"$tname_CastTest2_1719" = unnamed_addr constant [9 x i8] c"CastTest2" +@"$tpname__amount_1720" = unnamed_addr constant [7 x i8] c"_amount" +@"$tpname__origin_1721" = unnamed_addr constant [7 x i8] c"_origin" +@"$tpname__sender_1722" = unnamed_addr constant [7 x i8] c"_sender" +@"$tpname_x_1723" = unnamed_addr constant [1 x i8] c"x" +@"$tparams_CastTest3_1724" = unnamed_addr constant [4 x %"$ParamDescr_1703"] [%"$ParamDescr_1703" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_1720", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_34" }, %"$ParamDescr_1703" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_1721", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_76" }, %"$ParamDescr_1703" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_1722", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_76" }, %"$ParamDescr_1703" { %ParamDescrString { i8* getelementptr inbounds ([1 x i8], [1 x i8]* @"$tpname_x_1723", i32 0, i32 0), i32 1 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_75" }] +@"$tname_CastTest3_1725" = unnamed_addr constant [9 x i8] c"CastTest3" +@"$tpname__amount_1726" = unnamed_addr constant [7 x i8] c"_amount" +@"$tpname__origin_1727" = unnamed_addr constant [7 x i8] c"_origin" +@"$tpname__sender_1728" = unnamed_addr constant [7 x i8] c"_sender" +@"$tpname_x_1729" = unnamed_addr constant [1 x i8] c"x" +@"$tparams_CastTest4_1730" = unnamed_addr constant [4 x %"$ParamDescr_1703"] [%"$ParamDescr_1703" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_1726", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_34" }, %"$ParamDescr_1703" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_1727", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_76" }, %"$ParamDescr_1703" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_1728", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_76" }, %"$ParamDescr_1703" { %ParamDescrString { i8* getelementptr inbounds ([1 x i8], [1 x i8]* @"$tpname_x_1729", i32 0, i32 0), i32 1 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr20_54" }] +@"$tname_CastTest4_1731" = unnamed_addr constant [9 x i8] c"CastTest4" +@"$tpname__amount_1732" = unnamed_addr constant [7 x i8] c"_amount" +@"$tpname__origin_1733" = unnamed_addr constant [7 x i8] c"_origin" +@"$tpname__sender_1734" = unnamed_addr constant [7 x i8] c"_sender" +@"$tpname_x_1735" = unnamed_addr constant [1 x i8] c"x" +@"$tparams_CastTest5_1_1736" = unnamed_addr constant [4 x %"$ParamDescr_1703"] [%"$ParamDescr_1703" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_1732", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_34" }, %"$ParamDescr_1703" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_1733", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_76" }, %"$ParamDescr_1703" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_1734", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_76" }, %"$ParamDescr_1703" { %ParamDescrString { i8* getelementptr inbounds ([1 x i8], [1 x i8]* @"$tpname_x_1735", i32 0, i32 0), i32 1 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr20_54" }] +@"$tname_CastTest5_1_1737" = unnamed_addr constant [11 x i8] c"CastTest5_1" +@"$tpname__amount_1738" = unnamed_addr constant [7 x i8] c"_amount" +@"$tpname__origin_1739" = unnamed_addr constant [7 x i8] c"_origin" +@"$tpname__sender_1740" = unnamed_addr constant [7 x i8] c"_sender" +@"$tpname_x_1741" = unnamed_addr constant [1 x i8] c"x" +@"$tparams_CastTest5_2_1742" = unnamed_addr constant [4 x %"$ParamDescr_1703"] [%"$ParamDescr_1703" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_1738", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_34" }, %"$ParamDescr_1703" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_1739", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_76" }, %"$ParamDescr_1703" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_1740", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_76" }, %"$ParamDescr_1703" { %ParamDescrString { i8* getelementptr inbounds ([1 x i8], [1 x i8]* @"$tpname_x_1741", i32 0, i32 0), i32 1 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_76" }] +@"$tname_CastTest5_2_1743" = unnamed_addr constant [11 x i8] c"CastTest5_2" +@"$tpname__amount_1744" = unnamed_addr constant [7 x i8] c"_amount" +@"$tpname__origin_1745" = unnamed_addr constant [7 x i8] c"_origin" +@"$tpname__sender_1746" = unnamed_addr constant [7 x i8] c"_sender" +@"$tpname_x_1747" = unnamed_addr constant [1 x i8] c"x" +@"$tparams_CastTest6_1_1748" = unnamed_addr constant [4 x %"$ParamDescr_1703"] [%"$ParamDescr_1703" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_1744", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_34" }, %"$ParamDescr_1703" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_1745", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_76" }, %"$ParamDescr_1703" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_1746", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_76" }, %"$ParamDescr_1703" { %ParamDescrString { i8* getelementptr inbounds ([1 x i8], [1 x i8]* @"$tpname_x_1747", i32 0, i32 0), i32 1 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr20_54" }] +@"$tname_CastTest6_1_1749" = unnamed_addr constant [11 x i8] c"CastTest6_1" +@"$tpname__amount_1750" = unnamed_addr constant [7 x i8] c"_amount" +@"$tpname__origin_1751" = unnamed_addr constant [7 x i8] c"_origin" +@"$tpname__sender_1752" = unnamed_addr constant [7 x i8] c"_sender" +@"$tpname_x_1753" = unnamed_addr constant [1 x i8] c"x" +@"$tparams_CastTest6_2_1754" = unnamed_addr constant [4 x %"$ParamDescr_1703"] [%"$ParamDescr_1703" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_1750", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_34" }, %"$ParamDescr_1703" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_1751", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_76" }, %"$ParamDescr_1703" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_1752", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_76" }, %"$ParamDescr_1703" { %ParamDescrString { i8* getelementptr inbounds ([1 x i8], [1 x i8]* @"$tpname_x_1753", i32 0, i32 0), i32 1 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_76" }] +@"$tname_CastTest6_2_1755" = unnamed_addr constant [11 x i8] c"CastTest6_2" +@"$tpname__amount_1756" = unnamed_addr constant [7 x i8] c"_amount" +@"$tpname__origin_1757" = unnamed_addr constant [7 x i8] c"_origin" +@"$tpname__sender_1758" = unnamed_addr constant [7 x i8] c"_sender" +@"$tpname_x_1759" = unnamed_addr constant [1 x i8] c"x" +@"$tparams_CastTest6_3_1760" = unnamed_addr constant [4 x %"$ParamDescr_1703"] [%"$ParamDescr_1703" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_1756", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_34" }, %"$ParamDescr_1703" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_1757", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_76" }, %"$ParamDescr_1703" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_1758", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_76" }, %"$ParamDescr_1703" { %ParamDescrString { i8* getelementptr inbounds ([1 x i8], [1 x i8]* @"$tpname_x_1759", i32 0, i32 0), i32 1 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_73" }] +@"$tname_CastTest6_3_1761" = unnamed_addr constant [11 x i8] c"CastTest6_3" +@"$tpname__amount_1762" = unnamed_addr constant [7 x i8] c"_amount" +@"$tpname__origin_1763" = unnamed_addr constant [7 x i8] c"_origin" +@"$tpname__sender_1764" = unnamed_addr constant [7 x i8] c"_sender" +@"$tpname_x_1765" = unnamed_addr constant [1 x i8] c"x" +@"$tparams_CastTest6_4_1766" = unnamed_addr constant [4 x %"$ParamDescr_1703"] [%"$ParamDescr_1703" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_1762", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_34" }, %"$ParamDescr_1703" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_1763", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_76" }, %"$ParamDescr_1703" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_1764", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_76" }, %"$ParamDescr_1703" { %ParamDescrString { i8* getelementptr inbounds ([1 x i8], [1 x i8]* @"$tpname_x_1765", i32 0, i32 0), i32 1 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_72" }] +@"$tname_CastTest6_4_1767" = unnamed_addr constant [11 x i8] c"CastTest6_4" +@"$tpname__amount_1768" = unnamed_addr constant [7 x i8] c"_amount" +@"$tpname__origin_1769" = unnamed_addr constant [7 x i8] c"_origin" +@"$tpname__sender_1770" = unnamed_addr constant [7 x i8] c"_sender" +@"$tpname_x_1771" = unnamed_addr constant [1 x i8] c"x" +@"$tparams_CastTest7_1772" = unnamed_addr constant [4 x %"$ParamDescr_1703"] [%"$ParamDescr_1703" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_1768", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_34" }, %"$ParamDescr_1703" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_1769", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_76" }, %"$ParamDescr_1703" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_1770", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_76" }, %"$ParamDescr_1703" { %ParamDescrString { i8* getelementptr inbounds ([1 x i8], [1 x i8]* @"$tpname_x_1771", i32 0, i32 0), i32 1 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr20_54" }] +@"$tname_CastTest7_1773" = unnamed_addr constant [9 x i8] c"CastTest7" +@_transition_parameters = constant [11 x %"$TransDescr_1704"] [%"$TransDescr_1704" { %ParamDescrString { i8* getelementptr inbounds ([9 x i8], [9 x i8]* @"$tname_CastTest1_1713", i32 0, i32 0), i32 9 }, i32 4, %"$ParamDescr_1703"* getelementptr inbounds ([4 x %"$ParamDescr_1703"], [4 x %"$ParamDescr_1703"]* @"$tparams_CastTest1_1712", i32 0, i32 0) }, %"$TransDescr_1704" { %ParamDescrString { i8* getelementptr inbounds ([9 x i8], [9 x i8]* @"$tname_CastTest2_1719", i32 0, i32 0), i32 9 }, i32 4, %"$ParamDescr_1703"* getelementptr inbounds ([4 x %"$ParamDescr_1703"], [4 x %"$ParamDescr_1703"]* @"$tparams_CastTest2_1718", i32 0, i32 0) }, %"$TransDescr_1704" { %ParamDescrString { i8* getelementptr inbounds ([9 x i8], [9 x i8]* @"$tname_CastTest3_1725", i32 0, i32 0), i32 9 }, i32 4, %"$ParamDescr_1703"* getelementptr inbounds ([4 x %"$ParamDescr_1703"], [4 x %"$ParamDescr_1703"]* @"$tparams_CastTest3_1724", i32 0, i32 0) }, %"$TransDescr_1704" { %ParamDescrString { i8* getelementptr inbounds ([9 x i8], [9 x i8]* @"$tname_CastTest4_1731", i32 0, i32 0), i32 9 }, i32 4, %"$ParamDescr_1703"* getelementptr inbounds ([4 x %"$ParamDescr_1703"], [4 x %"$ParamDescr_1703"]* @"$tparams_CastTest4_1730", i32 0, i32 0) }, %"$TransDescr_1704" { %ParamDescrString { i8* getelementptr inbounds ([11 x i8], [11 x i8]* @"$tname_CastTest5_1_1737", i32 0, i32 0), i32 11 }, i32 4, %"$ParamDescr_1703"* getelementptr inbounds ([4 x %"$ParamDescr_1703"], [4 x %"$ParamDescr_1703"]* @"$tparams_CastTest5_1_1736", i32 0, i32 0) }, %"$TransDescr_1704" { %ParamDescrString { i8* getelementptr inbounds ([11 x i8], [11 x i8]* @"$tname_CastTest5_2_1743", i32 0, i32 0), i32 11 }, i32 4, %"$ParamDescr_1703"* getelementptr inbounds ([4 x %"$ParamDescr_1703"], [4 x %"$ParamDescr_1703"]* @"$tparams_CastTest5_2_1742", i32 0, i32 0) }, %"$TransDescr_1704" { %ParamDescrString { i8* getelementptr inbounds ([11 x i8], [11 x i8]* @"$tname_CastTest6_1_1749", i32 0, i32 0), i32 11 }, i32 4, %"$ParamDescr_1703"* getelementptr inbounds ([4 x %"$ParamDescr_1703"], [4 x %"$ParamDescr_1703"]* @"$tparams_CastTest6_1_1748", i32 0, i32 0) }, %"$TransDescr_1704" { %ParamDescrString { i8* getelementptr inbounds ([11 x i8], [11 x i8]* @"$tname_CastTest6_2_1755", i32 0, i32 0), i32 11 }, i32 4, %"$ParamDescr_1703"* getelementptr inbounds ([4 x %"$ParamDescr_1703"], [4 x %"$ParamDescr_1703"]* @"$tparams_CastTest6_2_1754", i32 0, i32 0) }, %"$TransDescr_1704" { %ParamDescrString { i8* getelementptr inbounds ([11 x i8], [11 x i8]* @"$tname_CastTest6_3_1761", i32 0, i32 0), i32 11 }, i32 4, %"$ParamDescr_1703"* getelementptr inbounds ([4 x %"$ParamDescr_1703"], [4 x %"$ParamDescr_1703"]* @"$tparams_CastTest6_3_1760", i32 0, i32 0) }, %"$TransDescr_1704" { %ParamDescrString { i8* getelementptr inbounds ([11 x i8], [11 x i8]* @"$tname_CastTest6_4_1767", i32 0, i32 0), i32 11 }, i32 4, %"$ParamDescr_1703"* getelementptr inbounds ([4 x %"$ParamDescr_1703"], [4 x %"$ParamDescr_1703"]* @"$tparams_CastTest6_4_1766", i32 0, i32 0) }, %"$TransDescr_1704" { %ParamDescrString { i8* getelementptr inbounds ([9 x i8], [9 x i8]* @"$tname_CastTest7_1773", i32 0, i32 0), i32 9 }, i32 4, %"$ParamDescr_1703"* getelementptr inbounds ([4 x %"$ParamDescr_1703"], [4 x %"$ParamDescr_1703"]* @"$tparams_CastTest7_1772", i32 0, i32 0) }] @_transition_parameters_length = constant i32 11 -define void @_init_libs() !dbg !4 { +define void @_init_libs() !dbg !3 { entry: %"$gasrem_185" = load i64, i64* @_gasrem, align 8 %"$gascmp_186" = icmp ugt i64 5, %"$gasrem_185" @@ -380,6 +380,7 @@ entry: %"$consume_194" = sub i64 %"$gasrem_190", 1 store i64 %"$consume_194", i64* @_gasrem, align 8 %"$test_1_res_1" = alloca %TName_Option_ByStr20_with_end*, align 8 + call void @llvm.dbg.declare(metadata %TName_Option_ByStr20_with_end** %"$test_1_res_1", metadata !11, metadata !DIExpression()), !dbg !14 %"$gasrem_195" = load i64, i64* @_gasrem, align 8 %"$gascmp_196" = icmp ugt i64 1, %"$gasrem_195" br i1 %"$gascmp_196", label %"$out_of_gas_197", label %"$have_gas_198" @@ -397,12 +398,13 @@ entry: %"$adtgep_201" = getelementptr inbounds %CName_None_ByStr20_with_end, %CName_None_ByStr20_with_end* %"$adtval_200", i32 0, i32 0 store i8 1, i8* %"$adtgep_201", align 1 %"$adtptr_202" = bitcast %CName_None_ByStr20_with_end* %"$adtval_200" to %TName_Option_ByStr20_with_end* - store %TName_Option_ByStr20_with_end* %"$adtptr_202", %TName_Option_ByStr20_with_end** %"$test_1_res_1", align 8, !dbg !11 + store %TName_Option_ByStr20_with_end* %"$adtptr_202", %TName_Option_ByStr20_with_end** %"$test_1_res_1", align 8, !dbg !15 %"$execptr_load_203" = load i8*, i8** @_execptr, align 8 %"$$test_1_res_1_205" = load %TName_Option_ByStr20_with_end*, %TName_Option_ByStr20_with_end** %"$test_1_res_1", align 8 %"$update_value_206" = bitcast %TName_Option_ByStr20_with_end* %"$$test_1_res_1_205" to i8* - call void @_update_field(i8* %"$execptr_load_203", i8* getelementptr inbounds ([11 x i8], [11 x i8]* @"$test_1_res_204", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_ADT_Option_ByStr20_with_end_65", i32 0, i8* null, i8* %"$update_value_206"), !dbg !11 + call void @_update_field(i8* %"$execptr_load_203", i8* getelementptr inbounds ([11 x i8], [11 x i8]* @"$test_1_res_204", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_ADT_Option_ByStr20_with_end_65", i32 0, i8* null, i8* %"$update_value_206"), !dbg !15 %"$test_2_res_2" = alloca %TName_Option_ByStr20_with_contract_end*, align 8 + call void @llvm.dbg.declare(metadata %TName_Option_ByStr20_with_contract_end** %"$test_2_res_2", metadata !16, metadata !DIExpression()), !dbg !19 %"$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" @@ -420,12 +422,13 @@ entry: %"$adtgep_213" = getelementptr inbounds %CName_None_ByStr20_with_contract_end, %CName_None_ByStr20_with_contract_end* %"$adtval_212", i32 0, i32 0 store i8 1, i8* %"$adtgep_213", align 1 %"$adtptr_214" = bitcast %CName_None_ByStr20_with_contract_end* %"$adtval_212" to %TName_Option_ByStr20_with_contract_end* - store %TName_Option_ByStr20_with_contract_end* %"$adtptr_214", %TName_Option_ByStr20_with_contract_end** %"$test_2_res_2", align 8, !dbg !12 + store %TName_Option_ByStr20_with_contract_end* %"$adtptr_214", %TName_Option_ByStr20_with_contract_end** %"$test_2_res_2", align 8, !dbg !20 %"$execptr_load_215" = load i8*, i8** @_execptr, align 8 %"$$test_2_res_2_217" = load %TName_Option_ByStr20_with_contract_end*, %TName_Option_ByStr20_with_contract_end** %"$test_2_res_2", align 8 %"$update_value_218" = bitcast %TName_Option_ByStr20_with_contract_end* %"$$test_2_res_2_217" to i8* - call void @_update_field(i8* %"$execptr_load_215", i8* getelementptr inbounds ([11 x i8], [11 x i8]* @"$test_2_res_216", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_ADT_Option_ByStr20_with_contract_end_64", i32 0, i8* null, i8* %"$update_value_218"), !dbg !12 + call void @_update_field(i8* %"$execptr_load_215", i8* getelementptr inbounds ([11 x i8], [11 x i8]* @"$test_2_res_216", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_ADT_Option_ByStr20_with_contract_end_64", i32 0, i8* null, i8* %"$update_value_218"), !dbg !20 %"$test_3_res_3" = alloca %TName_Option_ByStr20_with_contract_end*, align 8 + call void @llvm.dbg.declare(metadata %TName_Option_ByStr20_with_contract_end** %"$test_3_res_3", metadata !21, metadata !DIExpression()), !dbg !22 %"$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" @@ -443,12 +446,13 @@ entry: %"$adtgep_225" = getelementptr inbounds %CName_None_ByStr20_with_contract_end, %CName_None_ByStr20_with_contract_end* %"$adtval_224", i32 0, i32 0 store i8 1, i8* %"$adtgep_225", align 1 %"$adtptr_226" = bitcast %CName_None_ByStr20_with_contract_end* %"$adtval_224" to %TName_Option_ByStr20_with_contract_end* - store %TName_Option_ByStr20_with_contract_end* %"$adtptr_226", %TName_Option_ByStr20_with_contract_end** %"$test_3_res_3", align 8, !dbg !13 + store %TName_Option_ByStr20_with_contract_end* %"$adtptr_226", %TName_Option_ByStr20_with_contract_end** %"$test_3_res_3", align 8, !dbg !23 %"$execptr_load_227" = load i8*, i8** @_execptr, align 8 %"$$test_3_res_3_229" = load %TName_Option_ByStr20_with_contract_end*, %TName_Option_ByStr20_with_contract_end** %"$test_3_res_3", align 8 %"$update_value_230" = bitcast %TName_Option_ByStr20_with_contract_end* %"$$test_3_res_3_229" to i8* - call void @_update_field(i8* %"$execptr_load_227", i8* getelementptr inbounds ([11 x i8], [11 x i8]* @"$test_3_res_228", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_ADT_Option_ByStr20_with_contract_end_64", i32 0, i8* null, i8* %"$update_value_230"), !dbg !13 + call void @_update_field(i8* %"$execptr_load_227", i8* getelementptr inbounds ([11 x i8], [11 x i8]* @"$test_3_res_228", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_ADT_Option_ByStr20_with_contract_end_64", i32 0, i8* null, i8* %"$update_value_230"), !dbg !23 %"$test_4_res_4" = alloca %TName_Option_Uint128*, align 8 + call void @llvm.dbg.declare(metadata %TName_Option_Uint128** %"$test_4_res_4", metadata !24, metadata !DIExpression()), !dbg !27 %"$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" @@ -466,12 +470,13 @@ entry: %"$adtgep_237" = getelementptr inbounds %CName_None_Uint128, %CName_None_Uint128* %"$adtval_236", i32 0, i32 0 store i8 1, i8* %"$adtgep_237", align 1 %"$adtptr_238" = bitcast %CName_None_Uint128* %"$adtval_236" to %TName_Option_Uint128* - store %TName_Option_Uint128* %"$adtptr_238", %TName_Option_Uint128** %"$test_4_res_4", align 8, !dbg !14 + store %TName_Option_Uint128* %"$adtptr_238", %TName_Option_Uint128** %"$test_4_res_4", align 8, !dbg !28 %"$execptr_load_239" = load i8*, i8** @_execptr, align 8 %"$$test_4_res_4_241" = load %TName_Option_Uint128*, %TName_Option_Uint128** %"$test_4_res_4", align 8 %"$update_value_242" = bitcast %TName_Option_Uint128* %"$$test_4_res_4_241" to i8* - call void @_update_field(i8* %"$execptr_load_239", i8* getelementptr inbounds ([11 x i8], [11 x i8]* @"$test_4_res_240", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_ADT_Option_Uint128_63", i32 0, i8* null, i8* %"$update_value_242"), !dbg !14 + call void @_update_field(i8* %"$execptr_load_239", i8* getelementptr inbounds ([11 x i8], [11 x i8]* @"$test_4_res_240", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_ADT_Option_Uint128_63", i32 0, i8* null, i8* %"$update_value_242"), !dbg !28 %"$test_5_1_res_5" = alloca %TName_Option_Uint128*, align 8 + call void @llvm.dbg.declare(metadata %TName_Option_Uint128** %"$test_5_1_res_5", metadata !29, metadata !DIExpression()), !dbg !30 %"$gasrem_243" = load i64, i64* @_gasrem, align 8 %"$gascmp_244" = icmp ugt i64 1, %"$gasrem_243" br i1 %"$gascmp_244", label %"$out_of_gas_245", label %"$have_gas_246" @@ -489,12 +494,13 @@ entry: %"$adtgep_249" = getelementptr inbounds %CName_None_Uint128, %CName_None_Uint128* %"$adtval_248", i32 0, i32 0 store i8 1, i8* %"$adtgep_249", align 1 %"$adtptr_250" = bitcast %CName_None_Uint128* %"$adtval_248" to %TName_Option_Uint128* - store %TName_Option_Uint128* %"$adtptr_250", %TName_Option_Uint128** %"$test_5_1_res_5", align 8, !dbg !15 + store %TName_Option_Uint128* %"$adtptr_250", %TName_Option_Uint128** %"$test_5_1_res_5", align 8, !dbg !31 %"$execptr_load_251" = load i8*, i8** @_execptr, align 8 %"$$test_5_1_res_5_253" = load %TName_Option_Uint128*, %TName_Option_Uint128** %"$test_5_1_res_5", align 8 %"$update_value_254" = bitcast %TName_Option_Uint128* %"$$test_5_1_res_5_253" to i8* - call void @_update_field(i8* %"$execptr_load_251", i8* getelementptr inbounds ([13 x i8], [13 x i8]* @"$test_5_1_res_252", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_ADT_Option_Uint128_63", i32 0, i8* null, i8* %"$update_value_254"), !dbg !15 + call void @_update_field(i8* %"$execptr_load_251", i8* getelementptr inbounds ([13 x i8], [13 x i8]* @"$test_5_1_res_252", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_ADT_Option_Uint128_63", i32 0, i8* null, i8* %"$update_value_254"), !dbg !31 %"$test_5_2_res_6" = alloca %TName_Option_Uint128*, align 8 + call void @llvm.dbg.declare(metadata %TName_Option_Uint128** %"$test_5_2_res_6", metadata !32, metadata !DIExpression()), !dbg !33 %"$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" @@ -512,12 +518,13 @@ entry: %"$adtgep_261" = getelementptr inbounds %CName_None_Uint128, %CName_None_Uint128* %"$adtval_260", i32 0, i32 0 store i8 1, i8* %"$adtgep_261", align 1 %"$adtptr_262" = bitcast %CName_None_Uint128* %"$adtval_260" to %TName_Option_Uint128* - store %TName_Option_Uint128* %"$adtptr_262", %TName_Option_Uint128** %"$test_5_2_res_6", align 8, !dbg !16 + store %TName_Option_Uint128* %"$adtptr_262", %TName_Option_Uint128** %"$test_5_2_res_6", align 8, !dbg !34 %"$execptr_load_263" = load i8*, i8** @_execptr, align 8 %"$$test_5_2_res_6_265" = load %TName_Option_Uint128*, %TName_Option_Uint128** %"$test_5_2_res_6", align 8 %"$update_value_266" = bitcast %TName_Option_Uint128* %"$$test_5_2_res_6_265" to i8* - call void @_update_field(i8* %"$execptr_load_263", i8* getelementptr inbounds ([13 x i8], [13 x i8]* @"$test_5_2_res_264", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_ADT_Option_Uint128_63", i32 0, i8* null, i8* %"$update_value_266"), !dbg !16 + call void @_update_field(i8* %"$execptr_load_263", i8* getelementptr inbounds ([13 x i8], [13 x i8]* @"$test_5_2_res_264", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_ADT_Option_Uint128_63", i32 0, i8* null, i8* %"$update_value_266"), !dbg !34 %"$test_6_1_bal_res_7" = alloca %TName_Option_Uint128*, align 8 + call void @llvm.dbg.declare(metadata %TName_Option_Uint128** %"$test_6_1_bal_res_7", metadata !35, metadata !DIExpression()), !dbg !36 %"$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" @@ -535,12 +542,13 @@ entry: %"$adtgep_273" = getelementptr inbounds %CName_None_Uint128, %CName_None_Uint128* %"$adtval_272", i32 0, i32 0 store i8 1, i8* %"$adtgep_273", align 1 %"$adtptr_274" = bitcast %CName_None_Uint128* %"$adtval_272" to %TName_Option_Uint128* - store %TName_Option_Uint128* %"$adtptr_274", %TName_Option_Uint128** %"$test_6_1_bal_res_7", align 8, !dbg !17 + store %TName_Option_Uint128* %"$adtptr_274", %TName_Option_Uint128** %"$test_6_1_bal_res_7", align 8, !dbg !37 %"$execptr_load_275" = load i8*, i8** @_execptr, align 8 %"$$test_6_1_bal_res_7_277" = load %TName_Option_Uint128*, %TName_Option_Uint128** %"$test_6_1_bal_res_7", align 8 %"$update_value_278" = bitcast %TName_Option_Uint128* %"$$test_6_1_bal_res_7_277" to i8* - call void @_update_field(i8* %"$execptr_load_275", i8* getelementptr inbounds ([17 x i8], [17 x i8]* @"$test_6_1_bal_res_276", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_ADT_Option_Uint128_63", i32 0, i8* null, i8* %"$update_value_278"), !dbg !17 + call void @_update_field(i8* %"$execptr_load_275", i8* getelementptr inbounds ([17 x i8], [17 x i8]* @"$test_6_1_bal_res_276", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_ADT_Option_Uint128_63", i32 0, i8* null, i8* %"$update_value_278"), !dbg !37 %"$test_6_1_f_res_8" = alloca %TName_Option_Uint128*, align 8 + call void @llvm.dbg.declare(metadata %TName_Option_Uint128** %"$test_6_1_f_res_8", metadata !38, metadata !DIExpression()), !dbg !39 %"$gasrem_279" = load i64, i64* @_gasrem, align 8 %"$gascmp_280" = icmp ugt i64 1, %"$gasrem_279" br i1 %"$gascmp_280", label %"$out_of_gas_281", label %"$have_gas_282" @@ -558,12 +566,13 @@ entry: %"$adtgep_285" = getelementptr inbounds %CName_None_Uint128, %CName_None_Uint128* %"$adtval_284", i32 0, i32 0 store i8 1, i8* %"$adtgep_285", align 1 %"$adtptr_286" = bitcast %CName_None_Uint128* %"$adtval_284" to %TName_Option_Uint128* - store %TName_Option_Uint128* %"$adtptr_286", %TName_Option_Uint128** %"$test_6_1_f_res_8", align 8, !dbg !18 + store %TName_Option_Uint128* %"$adtptr_286", %TName_Option_Uint128** %"$test_6_1_f_res_8", align 8, !dbg !40 %"$execptr_load_287" = load i8*, i8** @_execptr, align 8 %"$$test_6_1_f_res_8_289" = load %TName_Option_Uint128*, %TName_Option_Uint128** %"$test_6_1_f_res_8", align 8 %"$update_value_290" = bitcast %TName_Option_Uint128* %"$$test_6_1_f_res_8_289" to i8* - call void @_update_field(i8* %"$execptr_load_287", i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$test_6_1_f_res_288", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_ADT_Option_Uint128_63", i32 0, i8* null, i8* %"$update_value_290"), !dbg !18 + call void @_update_field(i8* %"$execptr_load_287", i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$test_6_1_f_res_288", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_ADT_Option_Uint128_63", i32 0, i8* null, i8* %"$update_value_290"), !dbg !40 %"$test_6_1_g_res_9" = alloca %TName_Option_Bool*, align 8 + call void @llvm.dbg.declare(metadata %TName_Option_Bool** %"$test_6_1_g_res_9", metadata !41, metadata !DIExpression()), !dbg !44 %"$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" @@ -581,12 +590,13 @@ entry: %"$adtgep_297" = getelementptr inbounds %CName_None_Bool, %CName_None_Bool* %"$adtval_296", i32 0, i32 0 store i8 1, i8* %"$adtgep_297", align 1 %"$adtptr_298" = bitcast %CName_None_Bool* %"$adtval_296" to %TName_Option_Bool* - store %TName_Option_Bool* %"$adtptr_298", %TName_Option_Bool** %"$test_6_1_g_res_9", align 8, !dbg !19 + store %TName_Option_Bool* %"$adtptr_298", %TName_Option_Bool** %"$test_6_1_g_res_9", align 8, !dbg !45 %"$execptr_load_299" = load i8*, i8** @_execptr, align 8 %"$$test_6_1_g_res_9_301" = load %TName_Option_Bool*, %TName_Option_Bool** %"$test_6_1_g_res_9", align 8 %"$update_value_302" = bitcast %TName_Option_Bool* %"$$test_6_1_g_res_9_301" to i8* - call void @_update_field(i8* %"$execptr_load_299", i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$test_6_1_g_res_300", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_ADT_Option_Bool_62", i32 0, i8* null, i8* %"$update_value_302"), !dbg !19 + call void @_update_field(i8* %"$execptr_load_299", i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$test_6_1_g_res_300", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_ADT_Option_Bool_62", i32 0, i8* null, i8* %"$update_value_302"), !dbg !45 %"$test_6_2_bal_res_10" = alloca %TName_Option_Uint128*, align 8 + call void @llvm.dbg.declare(metadata %TName_Option_Uint128** %"$test_6_2_bal_res_10", metadata !46, metadata !DIExpression()), !dbg !47 %"$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" @@ -604,12 +614,13 @@ entry: %"$adtgep_309" = getelementptr inbounds %CName_None_Uint128, %CName_None_Uint128* %"$adtval_308", i32 0, i32 0 store i8 1, i8* %"$adtgep_309", align 1 %"$adtptr_310" = bitcast %CName_None_Uint128* %"$adtval_308" to %TName_Option_Uint128* - store %TName_Option_Uint128* %"$adtptr_310", %TName_Option_Uint128** %"$test_6_2_bal_res_10", align 8, !dbg !20 + store %TName_Option_Uint128* %"$adtptr_310", %TName_Option_Uint128** %"$test_6_2_bal_res_10", align 8, !dbg !48 %"$execptr_load_311" = load i8*, i8** @_execptr, align 8 %"$$test_6_2_bal_res_10_313" = load %TName_Option_Uint128*, %TName_Option_Uint128** %"$test_6_2_bal_res_10", align 8 %"$update_value_314" = bitcast %TName_Option_Uint128* %"$$test_6_2_bal_res_10_313" to i8* - call void @_update_field(i8* %"$execptr_load_311", i8* getelementptr inbounds ([17 x i8], [17 x i8]* @"$test_6_2_bal_res_312", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_ADT_Option_Uint128_63", i32 0, i8* null, i8* %"$update_value_314"), !dbg !20 + call void @_update_field(i8* %"$execptr_load_311", i8* getelementptr inbounds ([17 x i8], [17 x i8]* @"$test_6_2_bal_res_312", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_ADT_Option_Uint128_63", i32 0, i8* null, i8* %"$update_value_314"), !dbg !48 %"$test_6_2_f_res_11" = alloca %TName_Option_Uint128*, align 8 + call void @llvm.dbg.declare(metadata %TName_Option_Uint128** %"$test_6_2_f_res_11", metadata !49, metadata !DIExpression()), !dbg !50 %"$gasrem_315" = load i64, i64* @_gasrem, align 8 %"$gascmp_316" = icmp ugt i64 1, %"$gasrem_315" br i1 %"$gascmp_316", label %"$out_of_gas_317", label %"$have_gas_318" @@ -627,12 +638,13 @@ entry: %"$adtgep_321" = getelementptr inbounds %CName_None_Uint128, %CName_None_Uint128* %"$adtval_320", i32 0, i32 0 store i8 1, i8* %"$adtgep_321", align 1 %"$adtptr_322" = bitcast %CName_None_Uint128* %"$adtval_320" to %TName_Option_Uint128* - store %TName_Option_Uint128* %"$adtptr_322", %TName_Option_Uint128** %"$test_6_2_f_res_11", align 8, !dbg !21 + store %TName_Option_Uint128* %"$adtptr_322", %TName_Option_Uint128** %"$test_6_2_f_res_11", align 8, !dbg !51 %"$execptr_load_323" = load i8*, i8** @_execptr, align 8 %"$$test_6_2_f_res_11_325" = load %TName_Option_Uint128*, %TName_Option_Uint128** %"$test_6_2_f_res_11", align 8 %"$update_value_326" = bitcast %TName_Option_Uint128* %"$$test_6_2_f_res_11_325" to i8* - call void @_update_field(i8* %"$execptr_load_323", i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$test_6_2_f_res_324", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_ADT_Option_Uint128_63", i32 0, i8* null, i8* %"$update_value_326"), !dbg !21 + call void @_update_field(i8* %"$execptr_load_323", i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$test_6_2_f_res_324", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_ADT_Option_Uint128_63", i32 0, i8* null, i8* %"$update_value_326"), !dbg !51 %"$test_6_2_g_res_12" = alloca %TName_Option_Bool*, align 8 + call void @llvm.dbg.declare(metadata %TName_Option_Bool** %"$test_6_2_g_res_12", metadata !52, metadata !DIExpression()), !dbg !53 %"$gasrem_327" = load i64, i64* @_gasrem, align 8 %"$gascmp_328" = icmp ugt i64 1, %"$gasrem_327" br i1 %"$gascmp_328", label %"$out_of_gas_329", label %"$have_gas_330" @@ -650,12 +662,13 @@ entry: %"$adtgep_333" = getelementptr inbounds %CName_None_Bool, %CName_None_Bool* %"$adtval_332", i32 0, i32 0 store i8 1, i8* %"$adtgep_333", align 1 %"$adtptr_334" = bitcast %CName_None_Bool* %"$adtval_332" to %TName_Option_Bool* - store %TName_Option_Bool* %"$adtptr_334", %TName_Option_Bool** %"$test_6_2_g_res_12", align 8, !dbg !22 + store %TName_Option_Bool* %"$adtptr_334", %TName_Option_Bool** %"$test_6_2_g_res_12", align 8, !dbg !54 %"$execptr_load_335" = load i8*, i8** @_execptr, align 8 %"$$test_6_2_g_res_12_337" = load %TName_Option_Bool*, %TName_Option_Bool** %"$test_6_2_g_res_12", align 8 %"$update_value_338" = bitcast %TName_Option_Bool* %"$$test_6_2_g_res_12_337" to i8* - call void @_update_field(i8* %"$execptr_load_335", i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$test_6_2_g_res_336", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_ADT_Option_Bool_62", i32 0, i8* null, i8* %"$update_value_338"), !dbg !22 + call void @_update_field(i8* %"$execptr_load_335", i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$test_6_2_g_res_336", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_ADT_Option_Bool_62", i32 0, i8* null, i8* %"$update_value_338"), !dbg !54 %"$test_6_3_bal_res_13" = alloca %TName_Option_Uint128*, align 8 + call void @llvm.dbg.declare(metadata %TName_Option_Uint128** %"$test_6_3_bal_res_13", metadata !55, metadata !DIExpression()), !dbg !56 %"$gasrem_339" = load i64, i64* @_gasrem, align 8 %"$gascmp_340" = icmp ugt i64 1, %"$gasrem_339" br i1 %"$gascmp_340", label %"$out_of_gas_341", label %"$have_gas_342" @@ -673,12 +686,13 @@ entry: %"$adtgep_345" = getelementptr inbounds %CName_None_Uint128, %CName_None_Uint128* %"$adtval_344", i32 0, i32 0 store i8 1, i8* %"$adtgep_345", align 1 %"$adtptr_346" = bitcast %CName_None_Uint128* %"$adtval_344" to %TName_Option_Uint128* - store %TName_Option_Uint128* %"$adtptr_346", %TName_Option_Uint128** %"$test_6_3_bal_res_13", align 8, !dbg !23 + store %TName_Option_Uint128* %"$adtptr_346", %TName_Option_Uint128** %"$test_6_3_bal_res_13", align 8, !dbg !57 %"$execptr_load_347" = load i8*, i8** @_execptr, align 8 %"$$test_6_3_bal_res_13_349" = load %TName_Option_Uint128*, %TName_Option_Uint128** %"$test_6_3_bal_res_13", align 8 %"$update_value_350" = bitcast %TName_Option_Uint128* %"$$test_6_3_bal_res_13_349" to i8* - call void @_update_field(i8* %"$execptr_load_347", i8* getelementptr inbounds ([17 x i8], [17 x i8]* @"$test_6_3_bal_res_348", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_ADT_Option_Uint128_63", i32 0, i8* null, i8* %"$update_value_350"), !dbg !23 + call void @_update_field(i8* %"$execptr_load_347", i8* getelementptr inbounds ([17 x i8], [17 x i8]* @"$test_6_3_bal_res_348", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_ADT_Option_Uint128_63", i32 0, i8* null, i8* %"$update_value_350"), !dbg !57 %"$test_6_3_f_res_14" = alloca %TName_Option_Uint128*, align 8 + call void @llvm.dbg.declare(metadata %TName_Option_Uint128** %"$test_6_3_f_res_14", metadata !58, metadata !DIExpression()), !dbg !59 %"$gasrem_351" = load i64, i64* @_gasrem, align 8 %"$gascmp_352" = icmp ugt i64 1, %"$gasrem_351" br i1 %"$gascmp_352", label %"$out_of_gas_353", label %"$have_gas_354" @@ -696,12 +710,13 @@ entry: %"$adtgep_357" = getelementptr inbounds %CName_None_Uint128, %CName_None_Uint128* %"$adtval_356", i32 0, i32 0 store i8 1, i8* %"$adtgep_357", align 1 %"$adtptr_358" = bitcast %CName_None_Uint128* %"$adtval_356" to %TName_Option_Uint128* - store %TName_Option_Uint128* %"$adtptr_358", %TName_Option_Uint128** %"$test_6_3_f_res_14", align 8, !dbg !24 + store %TName_Option_Uint128* %"$adtptr_358", %TName_Option_Uint128** %"$test_6_3_f_res_14", align 8, !dbg !60 %"$execptr_load_359" = load i8*, i8** @_execptr, align 8 %"$$test_6_3_f_res_14_361" = load %TName_Option_Uint128*, %TName_Option_Uint128** %"$test_6_3_f_res_14", align 8 %"$update_value_362" = bitcast %TName_Option_Uint128* %"$$test_6_3_f_res_14_361" to i8* - call void @_update_field(i8* %"$execptr_load_359", i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$test_6_3_f_res_360", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_ADT_Option_Uint128_63", i32 0, i8* null, i8* %"$update_value_362"), !dbg !24 + call void @_update_field(i8* %"$execptr_load_359", i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$test_6_3_f_res_360", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_ADT_Option_Uint128_63", i32 0, i8* null, i8* %"$update_value_362"), !dbg !60 %"$test_6_3_g_res_15" = alloca %TName_Option_Bool*, align 8 + call void @llvm.dbg.declare(metadata %TName_Option_Bool** %"$test_6_3_g_res_15", metadata !61, metadata !DIExpression()), !dbg !62 %"$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" @@ -719,12 +734,13 @@ entry: %"$adtgep_369" = getelementptr inbounds %CName_None_Bool, %CName_None_Bool* %"$adtval_368", i32 0, i32 0 store i8 1, i8* %"$adtgep_369", align 1 %"$adtptr_370" = bitcast %CName_None_Bool* %"$adtval_368" to %TName_Option_Bool* - store %TName_Option_Bool* %"$adtptr_370", %TName_Option_Bool** %"$test_6_3_g_res_15", align 8, !dbg !25 + store %TName_Option_Bool* %"$adtptr_370", %TName_Option_Bool** %"$test_6_3_g_res_15", align 8, !dbg !63 %"$execptr_load_371" = load i8*, i8** @_execptr, align 8 %"$$test_6_3_g_res_15_373" = load %TName_Option_Bool*, %TName_Option_Bool** %"$test_6_3_g_res_15", align 8 %"$update_value_374" = bitcast %TName_Option_Bool* %"$$test_6_3_g_res_15_373" to i8* - call void @_update_field(i8* %"$execptr_load_371", i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$test_6_3_g_res_372", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_ADT_Option_Bool_62", i32 0, i8* null, i8* %"$update_value_374"), !dbg !25 + call void @_update_field(i8* %"$execptr_load_371", i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$test_6_3_g_res_372", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_ADT_Option_Bool_62", i32 0, i8* null, i8* %"$update_value_374"), !dbg !63 %"$test_6_4_bal_res_16" = alloca %TName_Option_Uint128*, align 8 + call void @llvm.dbg.declare(metadata %TName_Option_Uint128** %"$test_6_4_bal_res_16", metadata !64, metadata !DIExpression()), !dbg !65 %"$gasrem_375" = load i64, i64* @_gasrem, align 8 %"$gascmp_376" = icmp ugt i64 1, %"$gasrem_375" br i1 %"$gascmp_376", label %"$out_of_gas_377", label %"$have_gas_378" @@ -742,12 +758,13 @@ entry: %"$adtgep_381" = getelementptr inbounds %CName_None_Uint128, %CName_None_Uint128* %"$adtval_380", i32 0, i32 0 store i8 1, i8* %"$adtgep_381", align 1 %"$adtptr_382" = bitcast %CName_None_Uint128* %"$adtval_380" to %TName_Option_Uint128* - store %TName_Option_Uint128* %"$adtptr_382", %TName_Option_Uint128** %"$test_6_4_bal_res_16", align 8, !dbg !26 + store %TName_Option_Uint128* %"$adtptr_382", %TName_Option_Uint128** %"$test_6_4_bal_res_16", align 8, !dbg !66 %"$execptr_load_383" = load i8*, i8** @_execptr, align 8 %"$$test_6_4_bal_res_16_385" = load %TName_Option_Uint128*, %TName_Option_Uint128** %"$test_6_4_bal_res_16", align 8 %"$update_value_386" = bitcast %TName_Option_Uint128* %"$$test_6_4_bal_res_16_385" to i8* - call void @_update_field(i8* %"$execptr_load_383", i8* getelementptr inbounds ([17 x i8], [17 x i8]* @"$test_6_4_bal_res_384", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_ADT_Option_Uint128_63", i32 0, i8* null, i8* %"$update_value_386"), !dbg !26 + call void @_update_field(i8* %"$execptr_load_383", i8* getelementptr inbounds ([17 x i8], [17 x i8]* @"$test_6_4_bal_res_384", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_ADT_Option_Uint128_63", i32 0, i8* null, i8* %"$update_value_386"), !dbg !66 %"$test_6_4_f_res_17" = alloca %TName_Option_Uint128*, align 8 + call void @llvm.dbg.declare(metadata %TName_Option_Uint128** %"$test_6_4_f_res_17", metadata !67, metadata !DIExpression()), !dbg !68 %"$gasrem_387" = load i64, i64* @_gasrem, align 8 %"$gascmp_388" = icmp ugt i64 1, %"$gasrem_387" br i1 %"$gascmp_388", label %"$out_of_gas_389", label %"$have_gas_390" @@ -765,12 +782,13 @@ entry: %"$adtgep_393" = getelementptr inbounds %CName_None_Uint128, %CName_None_Uint128* %"$adtval_392", i32 0, i32 0 store i8 1, i8* %"$adtgep_393", align 1 %"$adtptr_394" = bitcast %CName_None_Uint128* %"$adtval_392" to %TName_Option_Uint128* - store %TName_Option_Uint128* %"$adtptr_394", %TName_Option_Uint128** %"$test_6_4_f_res_17", align 8, !dbg !27 + store %TName_Option_Uint128* %"$adtptr_394", %TName_Option_Uint128** %"$test_6_4_f_res_17", align 8, !dbg !69 %"$execptr_load_395" = load i8*, i8** @_execptr, align 8 %"$$test_6_4_f_res_17_397" = load %TName_Option_Uint128*, %TName_Option_Uint128** %"$test_6_4_f_res_17", align 8 %"$update_value_398" = bitcast %TName_Option_Uint128* %"$$test_6_4_f_res_17_397" to i8* - call void @_update_field(i8* %"$execptr_load_395", i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$test_6_4_f_res_396", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_ADT_Option_Uint128_63", i32 0, i8* null, i8* %"$update_value_398"), !dbg !27 + call void @_update_field(i8* %"$execptr_load_395", i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$test_6_4_f_res_396", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_ADT_Option_Uint128_63", i32 0, i8* null, i8* %"$update_value_398"), !dbg !69 %"$test_6_4_g_res_18" = alloca %TName_Option_Bool*, align 8 + call void @llvm.dbg.declare(metadata %TName_Option_Bool** %"$test_6_4_g_res_18", metadata !70, metadata !DIExpression()), !dbg !71 %"$gasrem_399" = load i64, i64* @_gasrem, align 8 %"$gascmp_400" = icmp ugt i64 1, %"$gasrem_399" br i1 %"$gascmp_400", label %"$out_of_gas_401", label %"$have_gas_402" @@ -788,12 +806,13 @@ entry: %"$adtgep_405" = getelementptr inbounds %CName_None_Bool, %CName_None_Bool* %"$adtval_404", i32 0, i32 0 store i8 1, i8* %"$adtgep_405", align 1 %"$adtptr_406" = bitcast %CName_None_Bool* %"$adtval_404" to %TName_Option_Bool* - store %TName_Option_Bool* %"$adtptr_406", %TName_Option_Bool** %"$test_6_4_g_res_18", align 8, !dbg !28 + store %TName_Option_Bool* %"$adtptr_406", %TName_Option_Bool** %"$test_6_4_g_res_18", align 8, !dbg !72 %"$execptr_load_407" = load i8*, i8** @_execptr, align 8 %"$$test_6_4_g_res_18_409" = load %TName_Option_Bool*, %TName_Option_Bool** %"$test_6_4_g_res_18", align 8 %"$update_value_410" = bitcast %TName_Option_Bool* %"$$test_6_4_g_res_18_409" to i8* - call void @_update_field(i8* %"$execptr_load_407", i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$test_6_4_g_res_408", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_ADT_Option_Bool_62", i32 0, i8* null, i8* %"$update_value_410"), !dbg !28 + call void @_update_field(i8* %"$execptr_load_407", i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$test_6_4_g_res_408", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_ADT_Option_Bool_62", i32 0, i8* null, i8* %"$update_value_410"), !dbg !72 %"$test_6_4_failed_cast_19" = alloca %TName_Bool*, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$test_6_4_failed_cast_19", metadata !73, metadata !DIExpression()), !dbg !76 %"$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" @@ -811,12 +830,13 @@ entry: %"$adtgep_417" = getelementptr inbounds %CName_False, %CName_False* %"$adtval_416", i32 0, i32 0 store i8 1, i8* %"$adtgep_417", align 1 %"$adtptr_418" = bitcast %CName_False* %"$adtval_416" to %TName_Bool* - store %TName_Bool* %"$adtptr_418", %TName_Bool** %"$test_6_4_failed_cast_19", align 8, !dbg !29 + store %TName_Bool* %"$adtptr_418", %TName_Bool** %"$test_6_4_failed_cast_19", align 8, !dbg !77 %"$execptr_load_419" = load i8*, i8** @_execptr, align 8 %"$$test_6_4_failed_cast_19_421" = load %TName_Bool*, %TName_Bool** %"$test_6_4_failed_cast_19", align 8 %"$update_value_422" = bitcast %TName_Bool* %"$$test_6_4_failed_cast_19_421" to i8* - call void @_update_field(i8* %"$execptr_load_419", i8* getelementptr inbounds ([21 x i8], [21 x i8]* @"$test_6_4_failed_cast_420", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_66", i32 0, i8* null, i8* %"$update_value_422"), !dbg !29 + call void @_update_field(i8* %"$execptr_load_419", i8* getelementptr inbounds ([21 x i8], [21 x i8]* @"$test_6_4_failed_cast_420", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_66", i32 0, i8* null, i8* %"$update_value_422"), !dbg !77 %"$test_7_g_res_20" = alloca %TName_Option_Bool*, align 8 + call void @llvm.dbg.declare(metadata %TName_Option_Bool** %"$test_7_g_res_20", metadata !78, metadata !DIExpression()), !dbg !79 %"$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" @@ -834,12 +854,13 @@ entry: %"$adtgep_429" = getelementptr inbounds %CName_None_Bool, %CName_None_Bool* %"$adtval_428", i32 0, i32 0 store i8 1, i8* %"$adtgep_429", align 1 %"$adtptr_430" = bitcast %CName_None_Bool* %"$adtval_428" to %TName_Option_Bool* - store %TName_Option_Bool* %"$adtptr_430", %TName_Option_Bool** %"$test_7_g_res_20", align 8, !dbg !30 + store %TName_Option_Bool* %"$adtptr_430", %TName_Option_Bool** %"$test_7_g_res_20", align 8, !dbg !80 %"$execptr_load_431" = load i8*, i8** @_execptr, align 8 %"$$test_7_g_res_20_433" = load %TName_Option_Bool*, %TName_Option_Bool** %"$test_7_g_res_20", align 8 %"$update_value_434" = bitcast %TName_Option_Bool* %"$$test_7_g_res_20_433" to i8* - call void @_update_field(i8* %"$execptr_load_431", i8* getelementptr inbounds ([13 x i8], [13 x i8]* @"$test_7_g_res_432", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_ADT_Option_Bool_62", i32 0, i8* null, i8* %"$update_value_434"), !dbg !30 + call void @_update_field(i8* %"$execptr_load_431", i8* getelementptr inbounds ([13 x i8], [13 x i8]* @"$test_7_g_res_432", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_ADT_Option_Bool_62", i32 0, i8* null, i8* %"$update_value_434"), !dbg !80 %"$test_7_h_res_21" = alloca %TName_Option_Int256*, align 8 + call void @llvm.dbg.declare(metadata %TName_Option_Int256** %"$test_7_h_res_21", metadata !81, metadata !DIExpression()), !dbg !84 %"$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" @@ -857,20 +878,35 @@ entry: %"$adtgep_441" = getelementptr inbounds %CName_None_Int256, %CName_None_Int256* %"$adtval_440", i32 0, i32 0 store i8 1, i8* %"$adtgep_441", align 1 %"$adtptr_442" = bitcast %CName_None_Int256* %"$adtval_440" to %TName_Option_Int256* - store %TName_Option_Int256* %"$adtptr_442", %TName_Option_Int256** %"$test_7_h_res_21", align 8, !dbg !31 + store %TName_Option_Int256* %"$adtptr_442", %TName_Option_Int256** %"$test_7_h_res_21", align 8, !dbg !85 %"$execptr_load_443" = load i8*, i8** @_execptr, align 8 %"$$test_7_h_res_21_445" = load %TName_Option_Int256*, %TName_Option_Int256** %"$test_7_h_res_21", align 8 %"$update_value_446" = bitcast %TName_Option_Int256* %"$$test_7_h_res_21_445" to i8* - call void @_update_field(i8* %"$execptr_load_443", i8* getelementptr inbounds ([13 x i8], [13 x i8]* @"$test_7_h_res_444", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_ADT_Option_Int256_61", i32 0, i8* null, i8* %"$update_value_446"), !dbg !31 + call void @_update_field(i8* %"$execptr_load_443", i8* getelementptr inbounds ([13 x i8], [13 x i8]* @"$test_7_h_res_444", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_ADT_Option_Int256_61", i32 0, i8* null, i8* %"$update_value_446"), !dbg !85 ret void } +; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn +declare void @llvm.dbg.declare(metadata, metadata, metadata) #0 + declare i8* @_salloc(i8*, i64) declare void @_update_field(i8*, i8*, %_TyDescrTy_Typ*, i32, i8*, i8*) -define internal void @"$CastTest1_447"(%Uint128 %_amount, [20 x i8]* %"$_origin_448", [20 x i8]* %"$_sender_449", [20 x i8]* %"$x_450") !dbg !32 { +define internal void @"$CastTest1_447"(%Uint128 %_amount, [20 x i8]* %"$_origin_448", [20 x i8]* %"$_sender_449", [20 x i8]* %"$x_450") !dbg !86 { entry: + %"$x_475" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$x_450", [20 x i8]** %"$x_475", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$x_475", metadata !87, metadata !DIExpression()), !dbg !89 + %"$_sender_474" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_sender_449", [20 x i8]** %"$_sender_474", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_sender_474", metadata !90, metadata !DIExpression()), !dbg !92 + %"$_origin_473" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_origin_448", [20 x i8]** %"$_origin_473", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_origin_473", metadata !93, metadata !DIExpression()), !dbg !92 + %"$_amount_472" = alloca %Uint128, align 8 + store %Uint128 %_amount, %Uint128* %"$_amount_472", align 8 + call void @llvm.dbg.declare(metadata %Uint128* %"$_amount_472", metadata !94, metadata !DIExpression()), !dbg !92 %_origin = load [20 x i8], [20 x i8]* %"$_origin_448", align 1 %_sender = load [20 x i8], [20 x i8]* %"$_sender_449", align 1 %x = load [20 x i8], [20 x i8]* %"$x_450", align 1 @@ -886,12 +922,13 @@ entry: %"$consume_455" = sub i64 %"$gasrem_451", 2 store i64 %"$consume_455", i64* @_gasrem, align 8 %res = alloca %TName_Option_ByStr20_with_end*, align 8 + call void @llvm.dbg.declare(metadata %TName_Option_ByStr20_with_end** %res, metadata !96, metadata !DIExpression()), !dbg !97 %"$execptr_load_456" = load i8*, i8** @_execptr, align 8 %"$_dynamic_typecast_x_457" = alloca [20 x i8], align 1 store [20 x i8] %x, [20 x i8]* %"$_dynamic_typecast_x_457", align 1 - %"$_dynamic_typecast_call_458" = call i8* @_dynamic_typecast(i8* %"$execptr_load_456", [20 x i8]* %"$_dynamic_typecast_x_457", %_TyDescrTy_Typ* @"$TyDescr_Addr_76"), !dbg !33 + %"$_dynamic_typecast_call_458" = call i8* @_dynamic_typecast(i8* %"$execptr_load_456", [20 x i8]* %"$_dynamic_typecast_x_457", %_TyDescrTy_Typ* @"$TyDescr_Addr_76"), !dbg !97 %"$_dynamic_typecast_459" = bitcast i8* %"$_dynamic_typecast_call_458" to %TName_Option_ByStr20_with_end* - store %TName_Option_ByStr20_with_end* %"$_dynamic_typecast_459", %TName_Option_ByStr20_with_end** %res, align 8, !dbg !33 + store %TName_Option_ByStr20_with_end* %"$_dynamic_typecast_459", %TName_Option_ByStr20_with_end** %res, align 8, !dbg !97 %"$res_460" = load %TName_Option_ByStr20_with_end*, %TName_Option_ByStr20_with_end** %res, align 8 %"$$res_460_461" = bitcast %TName_Option_ByStr20_with_end* %"$res_460" to i8* %"$_literal_cost_call_462" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_ByStr20_with_end_65", i8* %"$$res_460_461") @@ -909,7 +946,7 @@ entry: %"$execptr_load_468" = load i8*, i8** @_execptr, align 8 %"$res_470" = load %TName_Option_ByStr20_with_end*, %TName_Option_ByStr20_with_end** %res, align 8 %"$update_value_471" = bitcast %TName_Option_ByStr20_with_end* %"$res_470" to i8* - call void @_update_field(i8* %"$execptr_load_468", i8* getelementptr inbounds ([11 x i8], [11 x i8]* @"$test_1_res_469", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_ADT_Option_ByStr20_with_end_65", i32 0, i8* null, i8* %"$update_value_471"), !dbg !34 + call void @_update_field(i8* %"$execptr_load_468", i8* getelementptr inbounds ([11 x i8], [11 x i8]* @"$test_1_res_469", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_ADT_Option_ByStr20_with_end_65", i32 0, i8* null, i8* %"$update_value_471"), !dbg !98 ret void } @@ -917,2333 +954,2701 @@ declare i8* @_dynamic_typecast(i8*, [20 x i8]*, %_TyDescrTy_Typ*) declare i64 @_literal_cost(%_TyDescrTy_Typ*, i8*) -define void @CastTest1(i8* %0) !dbg !35 { +define void @CastTest1(i8* %0) !dbg !99 { entry: - %"$_amount_473" = getelementptr i8, i8* %0, i32 0 - %"$_amount_474" = bitcast i8* %"$_amount_473" to %Uint128* - %_amount = load %Uint128, %Uint128* %"$_amount_474", align 8 - %"$_origin_475" = getelementptr i8, i8* %0, i32 16 - %"$_origin_476" = bitcast i8* %"$_origin_475" to [20 x i8]* - %"$_sender_477" = getelementptr i8, i8* %0, i32 36 - %"$_sender_478" = bitcast i8* %"$_sender_477" to [20 x i8]* - %"$x_479" = getelementptr i8, i8* %0, i32 56 - %"$x_480" = bitcast i8* %"$x_479" to [20 x i8]* - call void @"$CastTest1_447"(%Uint128 %_amount, [20 x i8]* %"$_origin_476", [20 x i8]* %"$_sender_478", [20 x i8]* %"$x_480"), !dbg !36 + %"$_amount_477" = getelementptr i8, i8* %0, i32 0 + %"$_amount_478" = bitcast i8* %"$_amount_477" to %Uint128* + %_amount = load %Uint128, %Uint128* %"$_amount_478", align 8 + %"$_origin_479" = getelementptr i8, i8* %0, i32 16 + %"$_origin_480" = bitcast i8* %"$_origin_479" to [20 x i8]* + %"$_sender_481" = getelementptr i8, i8* %0, i32 36 + %"$_sender_482" = bitcast i8* %"$_sender_481" to [20 x i8]* + %"$x_483" = getelementptr i8, i8* %0, i32 56 + %"$x_484" = bitcast i8* %"$x_483" to [20 x i8]* + call void @"$CastTest1_447"(%Uint128 %_amount, [20 x i8]* %"$_origin_480", [20 x i8]* %"$_sender_482", [20 x i8]* %"$x_484"), !dbg !100 ret void } -define internal void @"$CastTest2_481"(%Uint128 %_amount, [20 x i8]* %"$_origin_482", [20 x i8]* %"$_sender_483", [20 x i8]* %"$x_484") !dbg !37 { +define internal void @"$CastTest2_485"(%Uint128 %_amount, [20 x i8]* %"$_origin_486", [20 x i8]* %"$_sender_487", [20 x i8]* %"$x_488") !dbg !101 { entry: - %_origin = load [20 x i8], [20 x i8]* %"$_origin_482", align 1 - %_sender = load [20 x i8], [20 x i8]* %"$_sender_483", align 1 - %x = load [20 x i8], [20 x i8]* %"$x_484", align 1 - %"$gasrem_485" = load i64, i64* @_gasrem, align 8 - %"$gascmp_486" = icmp ugt i64 3, %"$gasrem_485" - br i1 %"$gascmp_486", label %"$out_of_gas_487", label %"$have_gas_488" - -"$out_of_gas_487": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_488" - -"$have_gas_488": ; preds = %"$out_of_gas_487", %entry - %"$consume_489" = sub i64 %"$gasrem_485", 3 - store i64 %"$consume_489", i64* @_gasrem, align 8 + %"$x_513" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$x_488", [20 x i8]** %"$x_513", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$x_513", metadata !102, metadata !DIExpression()), !dbg !103 + %"$_sender_512" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_sender_487", [20 x i8]** %"$_sender_512", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_sender_512", metadata !104, metadata !DIExpression()), !dbg !105 + %"$_origin_511" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_origin_486", [20 x i8]** %"$_origin_511", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_origin_511", metadata !106, metadata !DIExpression()), !dbg !105 + %"$_amount_510" = alloca %Uint128, align 8 + store %Uint128 %_amount, %Uint128* %"$_amount_510", align 8 + call void @llvm.dbg.declare(metadata %Uint128* %"$_amount_510", metadata !107, metadata !DIExpression()), !dbg !105 + %_origin = load [20 x i8], [20 x i8]* %"$_origin_486", align 1 + %_sender = load [20 x i8], [20 x i8]* %"$_sender_487", align 1 + %x = load [20 x i8], [20 x i8]* %"$x_488", align 1 + %"$gasrem_489" = load i64, i64* @_gasrem, align 8 + %"$gascmp_490" = icmp ugt i64 3, %"$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", 3 + store i64 %"$consume_493", i64* @_gasrem, align 8 %res = alloca %TName_Option_ByStr20_with_contract_end*, align 8 - %"$execptr_load_490" = load i8*, i8** @_execptr, align 8 - %"$_dynamic_typecast_x_491" = alloca [20 x i8], align 1 - store [20 x i8] %x, [20 x i8]* %"$_dynamic_typecast_x_491", align 1 - %"$_dynamic_typecast_call_492" = call i8* @_dynamic_typecast(i8* %"$execptr_load_490", [20 x i8]* %"$_dynamic_typecast_x_491", %_TyDescrTy_Typ* @"$TyDescr_Addr_75"), !dbg !38 - %"$_dynamic_typecast_493" = bitcast i8* %"$_dynamic_typecast_call_492" to %TName_Option_ByStr20_with_contract_end* - store %TName_Option_ByStr20_with_contract_end* %"$_dynamic_typecast_493", %TName_Option_ByStr20_with_contract_end** %res, align 8, !dbg !38 - %"$res_494" = load %TName_Option_ByStr20_with_contract_end*, %TName_Option_ByStr20_with_contract_end** %res, align 8 - %"$$res_494_495" = bitcast %TName_Option_ByStr20_with_contract_end* %"$res_494" to i8* - %"$_literal_cost_call_496" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_ByStr20_with_contract_end_64", i8* %"$$res_494_495") - %"$gasrem_497" = load i64, i64* @_gasrem, align 8 - %"$gascmp_498" = icmp ugt i64 %"$_literal_cost_call_496", %"$gasrem_497" - br i1 %"$gascmp_498", label %"$out_of_gas_499", label %"$have_gas_500" - -"$out_of_gas_499": ; preds = %"$have_gas_488" - call void @_out_of_gas() - br label %"$have_gas_500" - -"$have_gas_500": ; preds = %"$out_of_gas_499", %"$have_gas_488" - %"$consume_501" = sub i64 %"$gasrem_497", %"$_literal_cost_call_496" - store i64 %"$consume_501", i64* @_gasrem, align 8 - %"$execptr_load_502" = load i8*, i8** @_execptr, align 8 - %"$res_504" = load %TName_Option_ByStr20_with_contract_end*, %TName_Option_ByStr20_with_contract_end** %res, align 8 - %"$update_value_505" = bitcast %TName_Option_ByStr20_with_contract_end* %"$res_504" to i8* - call void @_update_field(i8* %"$execptr_load_502", i8* getelementptr inbounds ([11 x i8], [11 x i8]* @"$test_2_res_503", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_ADT_Option_ByStr20_with_contract_end_64", i32 0, i8* null, i8* %"$update_value_505"), !dbg !39 + call void @llvm.dbg.declare(metadata %TName_Option_ByStr20_with_contract_end** %res, metadata !108, metadata !DIExpression()), !dbg !109 + %"$execptr_load_494" = load i8*, i8** @_execptr, align 8 + %"$_dynamic_typecast_x_495" = alloca [20 x i8], align 1 + store [20 x i8] %x, [20 x i8]* %"$_dynamic_typecast_x_495", align 1 + %"$_dynamic_typecast_call_496" = call i8* @_dynamic_typecast(i8* %"$execptr_load_494", [20 x i8]* %"$_dynamic_typecast_x_495", %_TyDescrTy_Typ* @"$TyDescr_Addr_75"), !dbg !109 + %"$_dynamic_typecast_497" = bitcast i8* %"$_dynamic_typecast_call_496" to %TName_Option_ByStr20_with_contract_end* + store %TName_Option_ByStr20_with_contract_end* %"$_dynamic_typecast_497", %TName_Option_ByStr20_with_contract_end** %res, align 8, !dbg !109 + %"$res_498" = load %TName_Option_ByStr20_with_contract_end*, %TName_Option_ByStr20_with_contract_end** %res, align 8 + %"$$res_498_499" = bitcast %TName_Option_ByStr20_with_contract_end* %"$res_498" to i8* + %"$_literal_cost_call_500" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_ByStr20_with_contract_end_64", i8* %"$$res_498_499") + %"$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 = %"$have_gas_492" + call void @_out_of_gas() + br label %"$have_gas_504" + +"$have_gas_504": ; preds = %"$out_of_gas_503", %"$have_gas_492" + %"$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 + %"$res_508" = load %TName_Option_ByStr20_with_contract_end*, %TName_Option_ByStr20_with_contract_end** %res, align 8 + %"$update_value_509" = bitcast %TName_Option_ByStr20_with_contract_end* %"$res_508" to i8* + call void @_update_field(i8* %"$execptr_load_506", i8* getelementptr inbounds ([11 x i8], [11 x i8]* @"$test_2_res_507", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_ADT_Option_ByStr20_with_contract_end_64", i32 0, i8* null, i8* %"$update_value_509"), !dbg !110 ret void } -define void @CastTest2(i8* %0) !dbg !40 { +define void @CastTest2(i8* %0) !dbg !111 { entry: - %"$_amount_507" = getelementptr i8, i8* %0, i32 0 - %"$_amount_508" = bitcast i8* %"$_amount_507" to %Uint128* - %_amount = load %Uint128, %Uint128* %"$_amount_508", align 8 - %"$_origin_509" = getelementptr i8, i8* %0, i32 16 - %"$_origin_510" = bitcast i8* %"$_origin_509" to [20 x i8]* - %"$_sender_511" = getelementptr i8, i8* %0, i32 36 - %"$_sender_512" = bitcast i8* %"$_sender_511" to [20 x i8]* - %"$x_513" = getelementptr i8, i8* %0, i32 56 - %"$x_514" = bitcast i8* %"$x_513" to [20 x i8]* - call void @"$CastTest2_481"(%Uint128 %_amount, [20 x i8]* %"$_origin_510", [20 x i8]* %"$_sender_512", [20 x i8]* %"$x_514"), !dbg !41 + %"$_amount_515" = getelementptr i8, i8* %0, i32 0 + %"$_amount_516" = bitcast i8* %"$_amount_515" to %Uint128* + %_amount = load %Uint128, %Uint128* %"$_amount_516", align 8 + %"$_origin_517" = getelementptr i8, i8* %0, i32 16 + %"$_origin_518" = bitcast i8* %"$_origin_517" to [20 x i8]* + %"$_sender_519" = getelementptr i8, i8* %0, i32 36 + %"$_sender_520" = bitcast i8* %"$_sender_519" to [20 x i8]* + %"$x_521" = getelementptr i8, i8* %0, i32 56 + %"$x_522" = bitcast i8* %"$x_521" to [20 x i8]* + call void @"$CastTest2_485"(%Uint128 %_amount, [20 x i8]* %"$_origin_518", [20 x i8]* %"$_sender_520", [20 x i8]* %"$x_522"), !dbg !112 ret void } -define internal void @"$CastTest3_515"(%Uint128 %_amount, [20 x i8]* %"$_origin_516", [20 x i8]* %"$_sender_517", [20 x i8]* %"$x_518") !dbg !42 { +define internal void @"$CastTest3_523"(%Uint128 %_amount, [20 x i8]* %"$_origin_524", [20 x i8]* %"$_sender_525", [20 x i8]* %"$x_526") !dbg !113 { entry: - %_origin = load [20 x i8], [20 x i8]* %"$_origin_516", align 1 - %_sender = load [20 x i8], [20 x i8]* %"$_sender_517", align 1 - %x = load [20 x i8], [20 x i8]* %"$x_518", align 1 - %"$gasrem_519" = load i64, i64* @_gasrem, align 8 - %"$gascmp_520" = icmp ugt i64 3, %"$gasrem_519" - br i1 %"$gascmp_520", label %"$out_of_gas_521", label %"$have_gas_522" - -"$out_of_gas_521": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_522" - -"$have_gas_522": ; preds = %"$out_of_gas_521", %entry - %"$consume_523" = sub i64 %"$gasrem_519", 3 - store i64 %"$consume_523", i64* @_gasrem, align 8 + %"$x_551" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$x_526", [20 x i8]** %"$x_551", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$x_551", metadata !114, metadata !DIExpression()), !dbg !115 + %"$_sender_550" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_sender_525", [20 x i8]** %"$_sender_550", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_sender_550", metadata !116, metadata !DIExpression()), !dbg !117 + %"$_origin_549" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_origin_524", [20 x i8]** %"$_origin_549", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_origin_549", metadata !118, metadata !DIExpression()), !dbg !117 + %"$_amount_548" = alloca %Uint128, align 8 + store %Uint128 %_amount, %Uint128* %"$_amount_548", align 8 + call void @llvm.dbg.declare(metadata %Uint128* %"$_amount_548", metadata !119, metadata !DIExpression()), !dbg !117 + %_origin = load [20 x i8], [20 x i8]* %"$_origin_524", align 1 + %_sender = load [20 x i8], [20 x i8]* %"$_sender_525", align 1 + %x = load [20 x i8], [20 x i8]* %"$x_526", align 1 + %"$gasrem_527" = load i64, i64* @_gasrem, align 8 + %"$gascmp_528" = icmp ugt i64 3, %"$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", 3 + store i64 %"$consume_531", i64* @_gasrem, align 8 %res = alloca %TName_Option_ByStr20_with_contract_end*, align 8 - %"$execptr_load_524" = load i8*, i8** @_execptr, align 8 - %"$_dynamic_typecast_x_525" = alloca [20 x i8], align 1 - store [20 x i8] %x, [20 x i8]* %"$_dynamic_typecast_x_525", align 1 - %"$_dynamic_typecast_call_526" = call i8* @_dynamic_typecast(i8* %"$execptr_load_524", [20 x i8]* %"$_dynamic_typecast_x_525", %_TyDescrTy_Typ* @"$TyDescr_Addr_75"), !dbg !43 - %"$_dynamic_typecast_527" = bitcast i8* %"$_dynamic_typecast_call_526" to %TName_Option_ByStr20_with_contract_end* - store %TName_Option_ByStr20_with_contract_end* %"$_dynamic_typecast_527", %TName_Option_ByStr20_with_contract_end** %res, align 8, !dbg !43 - %"$res_528" = load %TName_Option_ByStr20_with_contract_end*, %TName_Option_ByStr20_with_contract_end** %res, align 8 - %"$$res_528_529" = bitcast %TName_Option_ByStr20_with_contract_end* %"$res_528" to i8* - %"$_literal_cost_call_530" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_ByStr20_with_contract_end_64", i8* %"$$res_528_529") - %"$gasrem_531" = load i64, i64* @_gasrem, align 8 - %"$gascmp_532" = icmp ugt i64 %"$_literal_cost_call_530", %"$gasrem_531" - br i1 %"$gascmp_532", label %"$out_of_gas_533", label %"$have_gas_534" - -"$out_of_gas_533": ; preds = %"$have_gas_522" - call void @_out_of_gas() - br label %"$have_gas_534" - -"$have_gas_534": ; preds = %"$out_of_gas_533", %"$have_gas_522" - %"$consume_535" = sub i64 %"$gasrem_531", %"$_literal_cost_call_530" - store i64 %"$consume_535", i64* @_gasrem, align 8 - %"$execptr_load_536" = load i8*, i8** @_execptr, align 8 - %"$res_538" = load %TName_Option_ByStr20_with_contract_end*, %TName_Option_ByStr20_with_contract_end** %res, align 8 - %"$update_value_539" = bitcast %TName_Option_ByStr20_with_contract_end* %"$res_538" to i8* - call void @_update_field(i8* %"$execptr_load_536", i8* getelementptr inbounds ([11 x i8], [11 x i8]* @"$test_3_res_537", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_ADT_Option_ByStr20_with_contract_end_64", i32 0, i8* null, i8* %"$update_value_539"), !dbg !44 + call void @llvm.dbg.declare(metadata %TName_Option_ByStr20_with_contract_end** %res, metadata !120, metadata !DIExpression()), !dbg !121 + %"$execptr_load_532" = load i8*, i8** @_execptr, align 8 + %"$_dynamic_typecast_x_533" = alloca [20 x i8], align 1 + store [20 x i8] %x, [20 x i8]* %"$_dynamic_typecast_x_533", align 1 + %"$_dynamic_typecast_call_534" = call i8* @_dynamic_typecast(i8* %"$execptr_load_532", [20 x i8]* %"$_dynamic_typecast_x_533", %_TyDescrTy_Typ* @"$TyDescr_Addr_75"), !dbg !121 + %"$_dynamic_typecast_535" = bitcast i8* %"$_dynamic_typecast_call_534" to %TName_Option_ByStr20_with_contract_end* + store %TName_Option_ByStr20_with_contract_end* %"$_dynamic_typecast_535", %TName_Option_ByStr20_with_contract_end** %res, align 8, !dbg !121 + %"$res_536" = load %TName_Option_ByStr20_with_contract_end*, %TName_Option_ByStr20_with_contract_end** %res, align 8 + %"$$res_536_537" = bitcast %TName_Option_ByStr20_with_contract_end* %"$res_536" to i8* + %"$_literal_cost_call_538" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_ByStr20_with_contract_end_64", i8* %"$$res_536_537") + %"$gasrem_539" = load i64, i64* @_gasrem, align 8 + %"$gascmp_540" = icmp ugt i64 %"$_literal_cost_call_538", %"$gasrem_539" + br i1 %"$gascmp_540", label %"$out_of_gas_541", label %"$have_gas_542" + +"$out_of_gas_541": ; preds = %"$have_gas_530" + call void @_out_of_gas() + br label %"$have_gas_542" + +"$have_gas_542": ; preds = %"$out_of_gas_541", %"$have_gas_530" + %"$consume_543" = sub i64 %"$gasrem_539", %"$_literal_cost_call_538" + store i64 %"$consume_543", i64* @_gasrem, align 8 + %"$execptr_load_544" = load i8*, i8** @_execptr, align 8 + %"$res_546" = load %TName_Option_ByStr20_with_contract_end*, %TName_Option_ByStr20_with_contract_end** %res, align 8 + %"$update_value_547" = bitcast %TName_Option_ByStr20_with_contract_end* %"$res_546" to i8* + call void @_update_field(i8* %"$execptr_load_544", i8* getelementptr inbounds ([11 x i8], [11 x i8]* @"$test_3_res_545", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_ADT_Option_ByStr20_with_contract_end_64", i32 0, i8* null, i8* %"$update_value_547"), !dbg !122 ret void } -define void @CastTest3(i8* %0) !dbg !45 { +define void @CastTest3(i8* %0) !dbg !123 { entry: - %"$_amount_541" = getelementptr i8, i8* %0, i32 0 - %"$_amount_542" = bitcast i8* %"$_amount_541" to %Uint128* - %_amount = load %Uint128, %Uint128* %"$_amount_542", align 8 - %"$_origin_543" = getelementptr i8, i8* %0, i32 16 - %"$_origin_544" = bitcast i8* %"$_origin_543" to [20 x i8]* - %"$_sender_545" = getelementptr i8, i8* %0, i32 36 - %"$_sender_546" = bitcast i8* %"$_sender_545" to [20 x i8]* - %"$x_547" = getelementptr i8, i8* %0, i32 56 - %"$x_548" = bitcast i8* %"$x_547" to [20 x i8]* - call void @"$CastTest3_515"(%Uint128 %_amount, [20 x i8]* %"$_origin_544", [20 x i8]* %"$_sender_546", [20 x i8]* %"$x_548"), !dbg !46 + %"$_amount_553" = getelementptr i8, i8* %0, i32 0 + %"$_amount_554" = bitcast i8* %"$_amount_553" to %Uint128* + %_amount = load %Uint128, %Uint128* %"$_amount_554", align 8 + %"$_origin_555" = getelementptr i8, i8* %0, i32 16 + %"$_origin_556" = bitcast i8* %"$_origin_555" to [20 x i8]* + %"$_sender_557" = getelementptr i8, i8* %0, i32 36 + %"$_sender_558" = bitcast i8* %"$_sender_557" to [20 x i8]* + %"$x_559" = getelementptr i8, i8* %0, i32 56 + %"$x_560" = bitcast i8* %"$x_559" to [20 x i8]* + call void @"$CastTest3_523"(%Uint128 %_amount, [20 x i8]* %"$_origin_556", [20 x i8]* %"$_sender_558", [20 x i8]* %"$x_560"), !dbg !124 ret void } -define internal void @"$CastTest4_549"(%Uint128 %_amount, [20 x i8]* %"$_origin_550", [20 x i8]* %"$_sender_551", [20 x i8]* %"$x_552") !dbg !47 { +define internal void @"$CastTest4_561"(%Uint128 %_amount, [20 x i8]* %"$_origin_562", [20 x i8]* %"$_sender_563", [20 x i8]* %"$x_564") !dbg !125 { entry: - %_origin = load [20 x i8], [20 x i8]* %"$_origin_550", align 1 - %_sender = load [20 x i8], [20 x i8]* %"$_sender_551", align 1 - %x = load [20 x i8], [20 x i8]* %"$x_552", align 1 - %"$gasrem_553" = load i64, i64* @_gasrem, align 8 - %"$gascmp_554" = icmp ugt i64 2, %"$gasrem_553" - br i1 %"$gascmp_554", label %"$out_of_gas_555", label %"$have_gas_556" - -"$out_of_gas_555": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_556" - -"$have_gas_556": ; preds = %"$out_of_gas_555", %entry - %"$consume_557" = sub i64 %"$gasrem_553", 2 - store i64 %"$consume_557", i64* @_gasrem, align 8 + %"$x_637" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$x_564", [20 x i8]** %"$x_637", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$x_637", metadata !126, metadata !DIExpression()), !dbg !128 + %"$_sender_636" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_sender_563", [20 x i8]** %"$_sender_636", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_sender_636", metadata !129, metadata !DIExpression()), !dbg !130 + %"$_origin_635" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_origin_562", [20 x i8]** %"$_origin_635", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_origin_635", metadata !131, metadata !DIExpression()), !dbg !130 + %"$_amount_634" = alloca %Uint128, align 8 + store %Uint128 %_amount, %Uint128* %"$_amount_634", align 8 + call void @llvm.dbg.declare(metadata %Uint128* %"$_amount_634", metadata !132, metadata !DIExpression()), !dbg !130 + %_origin = load [20 x i8], [20 x i8]* %"$_origin_562", align 1 + %_sender = load [20 x i8], [20 x i8]* %"$_sender_563", align 1 + %x = load [20 x i8], [20 x i8]* %"$x_564", align 1 + %"$gasrem_565" = load i64, i64* @_gasrem, align 8 + %"$gascmp_566" = icmp ugt i64 2, %"$gasrem_565" + br i1 %"$gascmp_566", label %"$out_of_gas_567", label %"$have_gas_568" + +"$out_of_gas_567": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_568" + +"$have_gas_568": ; preds = %"$out_of_gas_567", %entry + %"$consume_569" = sub i64 %"$gasrem_565", 2 + store i64 %"$consume_569", i64* @_gasrem, align 8 %x_cast = alloca %TName_Option_ByStr20_with_end*, align 8 - %"$execptr_load_558" = load i8*, i8** @_execptr, align 8 - %"$_dynamic_typecast_x_559" = alloca [20 x i8], align 1 - store [20 x i8] %x, [20 x i8]* %"$_dynamic_typecast_x_559", align 1 - %"$_dynamic_typecast_call_560" = call i8* @_dynamic_typecast(i8* %"$execptr_load_558", [20 x i8]* %"$_dynamic_typecast_x_559", %_TyDescrTy_Typ* @"$TyDescr_Addr_76"), !dbg !48 - %"$_dynamic_typecast_561" = bitcast i8* %"$_dynamic_typecast_call_560" to %TName_Option_ByStr20_with_end* - store %TName_Option_ByStr20_with_end* %"$_dynamic_typecast_561", %TName_Option_ByStr20_with_end** %x_cast, align 8, !dbg !48 - %"$gasrem_562" = load i64, i64* @_gasrem, align 8 - %"$gascmp_563" = icmp ugt i64 2, %"$gasrem_562" - br i1 %"$gascmp_563", label %"$out_of_gas_564", label %"$have_gas_565" - -"$out_of_gas_564": ; preds = %"$have_gas_556" - call void @_out_of_gas() - br label %"$have_gas_565" - -"$have_gas_565": ; preds = %"$out_of_gas_564", %"$have_gas_556" - %"$consume_566" = sub i64 %"$gasrem_562", 2 - store i64 %"$consume_566", i64* @_gasrem, align 8 - %"$x_cast_568" = load %TName_Option_ByStr20_with_end*, %TName_Option_ByStr20_with_end** %x_cast, align 8 - %"$x_cast_tag_569" = getelementptr inbounds %TName_Option_ByStr20_with_end, %TName_Option_ByStr20_with_end* %"$x_cast_568", i32 0, i32 0 - %"$x_cast_tag_570" = load i8, i8* %"$x_cast_tag_569", align 1 - switch i8 %"$x_cast_tag_570", label %"$empty_default_571" [ - i8 0, label %"$Some_572" - i8 1, label %"$None_620" - ], !dbg !49 - -"$Some_572": ; preds = %"$have_gas_565" - %"$x_cast_573" = bitcast %TName_Option_ByStr20_with_end* %"$x_cast_568" to %CName_Some_ByStr20_with_end* - %"$x_as_address_gep_574" = getelementptr inbounds %CName_Some_ByStr20_with_end, %CName_Some_ByStr20_with_end* %"$x_cast_573", i32 0, i32 1 - %"$x_as_address_load_575" = load [20 x i8], [20 x i8]* %"$x_as_address_gep_574", align 1 + call void @llvm.dbg.declare(metadata %TName_Option_ByStr20_with_end** %x_cast, metadata !133, metadata !DIExpression()), !dbg !134 + %"$execptr_load_570" = load i8*, i8** @_execptr, align 8 + %"$_dynamic_typecast_x_571" = alloca [20 x i8], align 1 + store [20 x i8] %x, [20 x i8]* %"$_dynamic_typecast_x_571", align 1 + %"$_dynamic_typecast_call_572" = call i8* @_dynamic_typecast(i8* %"$execptr_load_570", [20 x i8]* %"$_dynamic_typecast_x_571", %_TyDescrTy_Typ* @"$TyDescr_Addr_76"), !dbg !134 + %"$_dynamic_typecast_573" = bitcast i8* %"$_dynamic_typecast_call_572" to %TName_Option_ByStr20_with_end* + store %TName_Option_ByStr20_with_end* %"$_dynamic_typecast_573", %TName_Option_ByStr20_with_end** %x_cast, align 8, !dbg !134 + %"$gasrem_574" = load i64, i64* @_gasrem, align 8 + %"$gascmp_575" = icmp ugt i64 2, %"$gasrem_574" + br i1 %"$gascmp_575", label %"$out_of_gas_576", label %"$have_gas_577" + +"$out_of_gas_576": ; preds = %"$have_gas_568" + call void @_out_of_gas() + br label %"$have_gas_577" + +"$have_gas_577": ; preds = %"$out_of_gas_576", %"$have_gas_568" + %"$consume_578" = sub i64 %"$gasrem_574", 2 + store i64 %"$consume_578", i64* @_gasrem, align 8 + %"$x_cast_580" = load %TName_Option_ByStr20_with_end*, %TName_Option_ByStr20_with_end** %x_cast, align 8 + %"$x_cast_tag_581" = getelementptr inbounds %TName_Option_ByStr20_with_end, %TName_Option_ByStr20_with_end* %"$x_cast_580", i32 0, i32 0 + %"$x_cast_tag_582" = load i8, i8* %"$x_cast_tag_581", align 1 + switch i8 %"$x_cast_tag_582", label %"$empty_default_583" [ + i8 0, label %"$Some_584" + i8 1, label %"$None_632" + ], !dbg !135 + +"$Some_584": ; preds = %"$have_gas_577" + %"$x_cast_585" = bitcast %TName_Option_ByStr20_with_end* %"$x_cast_580" to %CName_Some_ByStr20_with_end* + %"$x_as_address_gep_586" = getelementptr inbounds %CName_Some_ByStr20_with_end, %CName_Some_ByStr20_with_end* %"$x_cast_585", i32 0, i32 1 + %"$x_as_address_load_587" = load [20 x i8], [20 x i8]* %"$x_as_address_gep_586", align 1 %x_as_address = alloca [20 x i8], align 1 - store [20 x i8] %"$x_as_address_load_575", [20 x i8]* %x_as_address, align 1 + store [20 x i8] %"$x_as_address_load_587", [20 x i8]* %x_as_address, align 1 %bal = alloca %Uint128, align 8 - %"$execptr_load_577" = load i8*, i8** @_execptr, align 8 - %"$bal_x_as_address_578" = alloca [20 x i8], align 1 - %"$x_as_address_579" = load [20 x i8], [20 x i8]* %x_as_address, align 1 - store [20 x i8] %"$x_as_address_579", [20 x i8]* %"$bal_x_as_address_578", align 1 - %"$bal_call_580" = call i8* @_fetch_remote_field(i8* %"$execptr_load_577", [20 x i8]* %"$bal_x_as_address_578", i8* getelementptr inbounds ([9 x i8], [9 x i8]* @"$_balance_576", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Uint128_34", i32 0, i8* null, i32 1), !dbg !50 - %"$bal_581" = bitcast i8* %"$bal_call_580" to %Uint128* - %"$bal_582" = load %Uint128, %Uint128* %"$bal_581", align 8 - store %Uint128 %"$bal_582", %Uint128* %bal, align 8 - %"$_literal_cost_bal_583" = alloca %Uint128, align 8 - %"$bal_584" = load %Uint128, %Uint128* %bal, align 8 - store %Uint128 %"$bal_584", %Uint128* %"$_literal_cost_bal_583", align 8 - %"$$_literal_cost_bal_583_585" = bitcast %Uint128* %"$_literal_cost_bal_583" to i8* - %"$_literal_cost_call_586" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Uint128_34", i8* %"$$_literal_cost_bal_583_585") - %"$gasadd_587" = add i64 %"$_literal_cost_call_586", 0 - %"$gasrem_588" = load i64, i64* @_gasrem, align 8 - %"$gascmp_589" = icmp ugt i64 %"$gasadd_587", %"$gasrem_588" - br i1 %"$gascmp_589", label %"$out_of_gas_590", label %"$have_gas_591" - -"$out_of_gas_590": ; preds = %"$Some_572" - call void @_out_of_gas() - br label %"$have_gas_591" - -"$have_gas_591": ; preds = %"$out_of_gas_590", %"$Some_572" - %"$consume_592" = sub i64 %"$gasrem_588", %"$gasadd_587" - store i64 %"$consume_592", i64* @_gasrem, align 8 - %"$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_595": ; preds = %"$have_gas_591" - call void @_out_of_gas() - br label %"$have_gas_596" - -"$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 + call void @llvm.dbg.declare(metadata %Uint128* %bal, metadata !136, metadata !DIExpression()), !dbg !139 + %"$execptr_load_589" = load i8*, i8** @_execptr, align 8 + %"$bal_x_as_address_590" = alloca [20 x i8], align 1 + %"$x_as_address_591" = load [20 x i8], [20 x i8]* %x_as_address, align 1 + store [20 x i8] %"$x_as_address_591", [20 x i8]* %"$bal_x_as_address_590", align 1 + %"$bal_call_592" = call i8* @_fetch_remote_field(i8* %"$execptr_load_589", [20 x i8]* %"$bal_x_as_address_590", i8* getelementptr inbounds ([9 x i8], [9 x i8]* @"$_balance_588", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Uint128_34", i32 0, i8* null, i32 1), !dbg !139 + %"$bal_593" = bitcast i8* %"$bal_call_592" to %Uint128* + %"$bal_594" = load %Uint128, %Uint128* %"$bal_593", align 8 + store %Uint128 %"$bal_594", %Uint128* %bal, align 8 + %"$_literal_cost_bal_595" = alloca %Uint128, align 8 + %"$bal_596" = load %Uint128, %Uint128* %bal, align 8 + store %Uint128 %"$bal_596", %Uint128* %"$_literal_cost_bal_595", align 8 + %"$$_literal_cost_bal_595_597" = bitcast %Uint128* %"$_literal_cost_bal_595" to i8* + %"$_literal_cost_call_598" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Uint128_34", i8* %"$$_literal_cost_bal_595_597") + %"$gasadd_599" = add i64 %"$_literal_cost_call_598", 0 + %"$gasrem_600" = load i64, i64* @_gasrem, align 8 + %"$gascmp_601" = icmp ugt i64 %"$gasadd_599", %"$gasrem_600" + br i1 %"$gascmp_601", label %"$out_of_gas_602", label %"$have_gas_603" + +"$out_of_gas_602": ; preds = %"$Some_584" + call void @_out_of_gas() + br label %"$have_gas_603" + +"$have_gas_603": ; preds = %"$out_of_gas_602", %"$Some_584" + %"$consume_604" = sub i64 %"$gasrem_600", %"$gasadd_599" + store i64 %"$consume_604", i64* @_gasrem, align 8 + %"$gasrem_605" = load i64, i64* @_gasrem, align 8 + %"$gascmp_606" = icmp ugt i64 1, %"$gasrem_605" + br i1 %"$gascmp_606", label %"$out_of_gas_607", label %"$have_gas_608" + +"$out_of_gas_607": ; preds = %"$have_gas_603" + call void @_out_of_gas() + br label %"$have_gas_608" + +"$have_gas_608": ; preds = %"$out_of_gas_607", %"$have_gas_603" + %"$consume_609" = sub i64 %"$gasrem_605", 1 + store i64 %"$consume_609", i64* @_gasrem, align 8 %res = alloca %TName_Option_Uint128*, align 8 - %"$gasrem_598" = load i64, i64* @_gasrem, align 8 - %"$gascmp_599" = icmp ugt i64 1, %"$gasrem_598" - br i1 %"$gascmp_599", label %"$out_of_gas_600", label %"$have_gas_601" - -"$out_of_gas_600": ; preds = %"$have_gas_596" - call void @_out_of_gas() - br label %"$have_gas_601" - -"$have_gas_601": ; preds = %"$out_of_gas_600", %"$have_gas_596" - %"$consume_602" = sub i64 %"$gasrem_598", 1 - store i64 %"$consume_602", i64* @_gasrem, align 8 - %"$bal_603" = load %Uint128, %Uint128* %bal, align 8 - %"$adtval_604_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_604_salloc" = call i8* @_salloc(i8* %"$adtval_604_load", i64 17) - %"$adtval_604" = bitcast i8* %"$adtval_604_salloc" to %CName_Some_Uint128* - %"$adtgep_605" = getelementptr inbounds %CName_Some_Uint128, %CName_Some_Uint128* %"$adtval_604", i32 0, i32 0 - store i8 0, i8* %"$adtgep_605", align 1 - %"$adtgep_606" = getelementptr inbounds %CName_Some_Uint128, %CName_Some_Uint128* %"$adtval_604", i32 0, i32 1 - store %Uint128 %"$bal_603", %Uint128* %"$adtgep_606", align 8 - %"$adtptr_607" = bitcast %CName_Some_Uint128* %"$adtval_604" to %TName_Option_Uint128* - store %TName_Option_Uint128* %"$adtptr_607", %TName_Option_Uint128** %res, align 8, !dbg !53 - %"$res_608" = load %TName_Option_Uint128*, %TName_Option_Uint128** %res, align 8 - %"$$res_608_609" = bitcast %TName_Option_Uint128* %"$res_608" to i8* - %"$_literal_cost_call_610" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_Uint128_63", i8* %"$$res_608_609") - %"$gasrem_611" = load i64, i64* @_gasrem, align 8 - %"$gascmp_612" = icmp ugt i64 %"$_literal_cost_call_610", %"$gasrem_611" - br i1 %"$gascmp_612", label %"$out_of_gas_613", label %"$have_gas_614" - -"$out_of_gas_613": ; preds = %"$have_gas_601" - call void @_out_of_gas() - br label %"$have_gas_614" - -"$have_gas_614": ; preds = %"$out_of_gas_613", %"$have_gas_601" - %"$consume_615" = sub i64 %"$gasrem_611", %"$_literal_cost_call_610" - store i64 %"$consume_615", i64* @_gasrem, align 8 - %"$execptr_load_616" = load i8*, i8** @_execptr, align 8 - %"$res_618" = load %TName_Option_Uint128*, %TName_Option_Uint128** %res, align 8 - %"$update_value_619" = bitcast %TName_Option_Uint128* %"$res_618" to i8* - call void @_update_field(i8* %"$execptr_load_616", i8* getelementptr inbounds ([11 x i8], [11 x i8]* @"$test_4_res_617", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_ADT_Option_Uint128_63", i32 0, i8* null, i8* %"$update_value_619"), !dbg !54 - br label %"$matchsucc_567" - -"$None_620": ; preds = %"$have_gas_565" - %"$x_cast_621" = bitcast %TName_Option_ByStr20_with_end* %"$x_cast_568" to %CName_None_ByStr20_with_end* - br label %"$matchsucc_567" - -"$empty_default_571": ; preds = %"$have_gas_565" - br label %"$matchsucc_567" - -"$matchsucc_567": ; preds = %"$None_620", %"$have_gas_614", %"$empty_default_571" + call void @llvm.dbg.declare(metadata %TName_Option_Uint128** %res, metadata !140, metadata !DIExpression()), !dbg !141 + %"$gasrem_610" = load i64, i64* @_gasrem, align 8 + %"$gascmp_611" = icmp ugt i64 1, %"$gasrem_610" + br i1 %"$gascmp_611", label %"$out_of_gas_612", label %"$have_gas_613" + +"$out_of_gas_612": ; preds = %"$have_gas_608" + call void @_out_of_gas() + br label %"$have_gas_613" + +"$have_gas_613": ; preds = %"$out_of_gas_612", %"$have_gas_608" + %"$consume_614" = sub i64 %"$gasrem_610", 1 + store i64 %"$consume_614", i64* @_gasrem, align 8 + %"$bal_615" = load %Uint128, %Uint128* %bal, align 8 + %"$adtval_616_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_616_salloc" = call i8* @_salloc(i8* %"$adtval_616_load", i64 17) + %"$adtval_616" = bitcast i8* %"$adtval_616_salloc" to %CName_Some_Uint128* + %"$adtgep_617" = getelementptr inbounds %CName_Some_Uint128, %CName_Some_Uint128* %"$adtval_616", i32 0, i32 0 + store i8 0, i8* %"$adtgep_617", align 1 + %"$adtgep_618" = getelementptr inbounds %CName_Some_Uint128, %CName_Some_Uint128* %"$adtval_616", i32 0, i32 1 + store %Uint128 %"$bal_615", %Uint128* %"$adtgep_618", align 8 + %"$adtptr_619" = bitcast %CName_Some_Uint128* %"$adtval_616" to %TName_Option_Uint128* + store %TName_Option_Uint128* %"$adtptr_619", %TName_Option_Uint128** %res, align 8, !dbg !142 + %"$res_620" = load %TName_Option_Uint128*, %TName_Option_Uint128** %res, align 8 + %"$$res_620_621" = bitcast %TName_Option_Uint128* %"$res_620" to i8* + %"$_literal_cost_call_622" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_Uint128_63", i8* %"$$res_620_621") + %"$gasrem_623" = load i64, i64* @_gasrem, align 8 + %"$gascmp_624" = icmp ugt i64 %"$_literal_cost_call_622", %"$gasrem_623" + br i1 %"$gascmp_624", label %"$out_of_gas_625", label %"$have_gas_626" + +"$out_of_gas_625": ; preds = %"$have_gas_613" + call void @_out_of_gas() + br label %"$have_gas_626" + +"$have_gas_626": ; preds = %"$out_of_gas_625", %"$have_gas_613" + %"$consume_627" = sub i64 %"$gasrem_623", %"$_literal_cost_call_622" + store i64 %"$consume_627", i64* @_gasrem, align 8 + %"$execptr_load_628" = load i8*, i8** @_execptr, align 8 + %"$res_630" = load %TName_Option_Uint128*, %TName_Option_Uint128** %res, align 8 + %"$update_value_631" = bitcast %TName_Option_Uint128* %"$res_630" to i8* + call void @_update_field(i8* %"$execptr_load_628", i8* getelementptr inbounds ([11 x i8], [11 x i8]* @"$test_4_res_629", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_ADT_Option_Uint128_63", i32 0, i8* null, i8* %"$update_value_631"), !dbg !143 + br label %"$matchsucc_579" + +"$None_632": ; preds = %"$have_gas_577" + %"$x_cast_633" = bitcast %TName_Option_ByStr20_with_end* %"$x_cast_580" to %CName_None_ByStr20_with_end* + br label %"$matchsucc_579" + +"$empty_default_583": ; preds = %"$have_gas_577" + br label %"$matchsucc_579" + +"$matchsucc_579": ; preds = %"$None_632", %"$have_gas_626", %"$empty_default_583" ret void } declare i8* @_fetch_remote_field(i8*, [20 x i8]*, i8*, %_TyDescrTy_Typ*, i32, i8*, i32) -define void @CastTest4(i8* %0) !dbg !55 { +define void @CastTest4(i8* %0) !dbg !144 { entry: - %"$_amount_623" = getelementptr i8, i8* %0, i32 0 - %"$_amount_624" = bitcast i8* %"$_amount_623" to %Uint128* - %_amount = load %Uint128, %Uint128* %"$_amount_624", align 8 - %"$_origin_625" = getelementptr i8, i8* %0, i32 16 - %"$_origin_626" = bitcast i8* %"$_origin_625" to [20 x i8]* - %"$_sender_627" = getelementptr i8, i8* %0, i32 36 - %"$_sender_628" = bitcast i8* %"$_sender_627" to [20 x i8]* - %"$x_629" = getelementptr i8, i8* %0, i32 56 - %"$x_630" = bitcast i8* %"$x_629" to [20 x i8]* - call void @"$CastTest4_549"(%Uint128 %_amount, [20 x i8]* %"$_origin_626", [20 x i8]* %"$_sender_628", [20 x i8]* %"$x_630"), !dbg !56 + %"$_amount_639" = getelementptr i8, i8* %0, i32 0 + %"$_amount_640" = bitcast i8* %"$_amount_639" to %Uint128* + %_amount = load %Uint128, %Uint128* %"$_amount_640", align 8 + %"$_origin_641" = getelementptr i8, i8* %0, i32 16 + %"$_origin_642" = bitcast i8* %"$_origin_641" to [20 x i8]* + %"$_sender_643" = getelementptr i8, i8* %0, i32 36 + %"$_sender_644" = bitcast i8* %"$_sender_643" to [20 x i8]* + %"$x_645" = getelementptr i8, i8* %0, i32 56 + %"$x_646" = bitcast i8* %"$x_645" to [20 x i8]* + call void @"$CastTest4_561"(%Uint128 %_amount, [20 x i8]* %"$_origin_642", [20 x i8]* %"$_sender_644", [20 x i8]* %"$x_646"), !dbg !145 ret void } -define internal void @"$CastTest5_1_631"(%Uint128 %_amount, [20 x i8]* %"$_origin_632", [20 x i8]* %"$_sender_633", [20 x i8]* %"$x_634") !dbg !57 { +define internal void @"$CastTest5_1_647"(%Uint128 %_amount, [20 x i8]* %"$_origin_648", [20 x i8]* %"$_sender_649", [20 x i8]* %"$x_650") !dbg !146 { entry: - %_origin = load [20 x i8], [20 x i8]* %"$_origin_632", align 1 - %_sender = load [20 x i8], [20 x i8]* %"$_sender_633", align 1 - %x = load [20 x i8], [20 x i8]* %"$x_634", align 1 - %"$gasrem_635" = load i64, i64* @_gasrem, align 8 - %"$gascmp_636" = icmp ugt i64 3, %"$gasrem_635" - br i1 %"$gascmp_636", label %"$out_of_gas_637", label %"$have_gas_638" - -"$out_of_gas_637": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_638" - -"$have_gas_638": ; preds = %"$out_of_gas_637", %entry - %"$consume_639" = sub i64 %"$gasrem_635", 3 - store i64 %"$consume_639", i64* @_gasrem, align 8 + %"$x_723" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$x_650", [20 x i8]** %"$x_723", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$x_723", metadata !147, metadata !DIExpression()), !dbg !148 + %"$_sender_722" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_sender_649", [20 x i8]** %"$_sender_722", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_sender_722", metadata !149, metadata !DIExpression()), !dbg !150 + %"$_origin_721" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_origin_648", [20 x i8]** %"$_origin_721", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_origin_721", metadata !151, metadata !DIExpression()), !dbg !150 + %"$_amount_720" = alloca %Uint128, align 8 + store %Uint128 %_amount, %Uint128* %"$_amount_720", align 8 + call void @llvm.dbg.declare(metadata %Uint128* %"$_amount_720", metadata !152, metadata !DIExpression()), !dbg !150 + %_origin = load [20 x i8], [20 x i8]* %"$_origin_648", align 1 + %_sender = load [20 x i8], [20 x i8]* %"$_sender_649", align 1 + %x = load [20 x i8], [20 x i8]* %"$x_650", align 1 + %"$gasrem_651" = load i64, i64* @_gasrem, align 8 + %"$gascmp_652" = icmp ugt i64 3, %"$gasrem_651" + br i1 %"$gascmp_652", label %"$out_of_gas_653", label %"$have_gas_654" + +"$out_of_gas_653": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_654" + +"$have_gas_654": ; preds = %"$out_of_gas_653", %entry + %"$consume_655" = sub i64 %"$gasrem_651", 3 + store i64 %"$consume_655", i64* @_gasrem, align 8 %x_cast = alloca %TName_Option_ByStr20_with_contract_end*, align 8 - %"$execptr_load_640" = load i8*, i8** @_execptr, align 8 - %"$_dynamic_typecast_x_641" = alloca [20 x i8], align 1 - store [20 x i8] %x, [20 x i8]* %"$_dynamic_typecast_x_641", align 1 - %"$_dynamic_typecast_call_642" = call i8* @_dynamic_typecast(i8* %"$execptr_load_640", [20 x i8]* %"$_dynamic_typecast_x_641", %_TyDescrTy_Typ* @"$TyDescr_Addr_75"), !dbg !58 - %"$_dynamic_typecast_643" = bitcast i8* %"$_dynamic_typecast_call_642" to %TName_Option_ByStr20_with_contract_end* - store %TName_Option_ByStr20_with_contract_end* %"$_dynamic_typecast_643", %TName_Option_ByStr20_with_contract_end** %x_cast, align 8, !dbg !58 - %"$gasrem_644" = load i64, i64* @_gasrem, align 8 - %"$gascmp_645" = icmp ugt i64 2, %"$gasrem_644" - br i1 %"$gascmp_645", label %"$out_of_gas_646", label %"$have_gas_647" - -"$out_of_gas_646": ; preds = %"$have_gas_638" - call void @_out_of_gas() - br label %"$have_gas_647" - -"$have_gas_647": ; preds = %"$out_of_gas_646", %"$have_gas_638" - %"$consume_648" = sub i64 %"$gasrem_644", 2 - store i64 %"$consume_648", i64* @_gasrem, align 8 - %"$x_cast_650" = load %TName_Option_ByStr20_with_contract_end*, %TName_Option_ByStr20_with_contract_end** %x_cast, align 8 - %"$x_cast_tag_651" = getelementptr inbounds %TName_Option_ByStr20_with_contract_end, %TName_Option_ByStr20_with_contract_end* %"$x_cast_650", i32 0, i32 0 - %"$x_cast_tag_652" = load i8, i8* %"$x_cast_tag_651", align 1 - switch i8 %"$x_cast_tag_652", label %"$empty_default_653" [ - i8 0, label %"$Some_654" - i8 1, label %"$None_702" - ], !dbg !59 - -"$Some_654": ; preds = %"$have_gas_647" - %"$x_cast_655" = bitcast %TName_Option_ByStr20_with_contract_end* %"$x_cast_650" to %CName_Some_ByStr20_with_contract_end* - %"$x_as_address_gep_656" = getelementptr inbounds %CName_Some_ByStr20_with_contract_end, %CName_Some_ByStr20_with_contract_end* %"$x_cast_655", i32 0, i32 1 - %"$x_as_address_load_657" = load [20 x i8], [20 x i8]* %"$x_as_address_gep_656", align 1 + call void @llvm.dbg.declare(metadata %TName_Option_ByStr20_with_contract_end** %x_cast, metadata !153, metadata !DIExpression()), !dbg !154 + %"$execptr_load_656" = load i8*, i8** @_execptr, align 8 + %"$_dynamic_typecast_x_657" = alloca [20 x i8], align 1 + store [20 x i8] %x, [20 x i8]* %"$_dynamic_typecast_x_657", align 1 + %"$_dynamic_typecast_call_658" = call i8* @_dynamic_typecast(i8* %"$execptr_load_656", [20 x i8]* %"$_dynamic_typecast_x_657", %_TyDescrTy_Typ* @"$TyDescr_Addr_75"), !dbg !154 + %"$_dynamic_typecast_659" = bitcast i8* %"$_dynamic_typecast_call_658" to %TName_Option_ByStr20_with_contract_end* + store %TName_Option_ByStr20_with_contract_end* %"$_dynamic_typecast_659", %TName_Option_ByStr20_with_contract_end** %x_cast, align 8, !dbg !154 + %"$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 = %"$have_gas_654" + call void @_out_of_gas() + br label %"$have_gas_663" + +"$have_gas_663": ; preds = %"$out_of_gas_662", %"$have_gas_654" + %"$consume_664" = sub i64 %"$gasrem_660", 2 + store i64 %"$consume_664", i64* @_gasrem, align 8 + %"$x_cast_666" = load %TName_Option_ByStr20_with_contract_end*, %TName_Option_ByStr20_with_contract_end** %x_cast, align 8 + %"$x_cast_tag_667" = getelementptr inbounds %TName_Option_ByStr20_with_contract_end, %TName_Option_ByStr20_with_contract_end* %"$x_cast_666", i32 0, i32 0 + %"$x_cast_tag_668" = load i8, i8* %"$x_cast_tag_667", align 1 + switch i8 %"$x_cast_tag_668", label %"$empty_default_669" [ + i8 0, label %"$Some_670" + i8 1, label %"$None_718" + ], !dbg !155 + +"$Some_670": ; preds = %"$have_gas_663" + %"$x_cast_671" = bitcast %TName_Option_ByStr20_with_contract_end* %"$x_cast_666" to %CName_Some_ByStr20_with_contract_end* + %"$x_as_address_gep_672" = getelementptr inbounds %CName_Some_ByStr20_with_contract_end, %CName_Some_ByStr20_with_contract_end* %"$x_cast_671", i32 0, i32 1 + %"$x_as_address_load_673" = load [20 x i8], [20 x i8]* %"$x_as_address_gep_672", align 1 %x_as_address = alloca [20 x i8], align 1 - store [20 x i8] %"$x_as_address_load_657", [20 x i8]* %x_as_address, align 1 + store [20 x i8] %"$x_as_address_load_673", [20 x i8]* %x_as_address, align 1 %bal = alloca %Uint128, align 8 - %"$execptr_load_659" = load i8*, i8** @_execptr, align 8 - %"$bal_x_as_address_660" = alloca [20 x i8], align 1 - %"$x_as_address_661" = load [20 x i8], [20 x i8]* %x_as_address, align 1 - store [20 x i8] %"$x_as_address_661", [20 x i8]* %"$bal_x_as_address_660", align 1 - %"$bal_call_662" = call i8* @_fetch_remote_field(i8* %"$execptr_load_659", [20 x i8]* %"$bal_x_as_address_660", i8* getelementptr inbounds ([9 x i8], [9 x i8]* @"$_balance_658", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Uint128_34", i32 0, i8* null, i32 1), !dbg !60 - %"$bal_663" = bitcast i8* %"$bal_call_662" to %Uint128* - %"$bal_664" = load %Uint128, %Uint128* %"$bal_663", align 8 - store %Uint128 %"$bal_664", %Uint128* %bal, align 8 - %"$_literal_cost_bal_665" = alloca %Uint128, align 8 - %"$bal_666" = load %Uint128, %Uint128* %bal, align 8 - store %Uint128 %"$bal_666", %Uint128* %"$_literal_cost_bal_665", align 8 - %"$$_literal_cost_bal_665_667" = bitcast %Uint128* %"$_literal_cost_bal_665" to i8* - %"$_literal_cost_call_668" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Uint128_34", i8* %"$$_literal_cost_bal_665_667") - %"$gasadd_669" = add i64 %"$_literal_cost_call_668", 0 - %"$gasrem_670" = load i64, i64* @_gasrem, align 8 - %"$gascmp_671" = icmp ugt i64 %"$gasadd_669", %"$gasrem_670" - br i1 %"$gascmp_671", label %"$out_of_gas_672", label %"$have_gas_673" - -"$out_of_gas_672": ; preds = %"$Some_654" - call void @_out_of_gas() - br label %"$have_gas_673" - -"$have_gas_673": ; preds = %"$out_of_gas_672", %"$Some_654" - %"$consume_674" = sub i64 %"$gasrem_670", %"$gasadd_669" - store i64 %"$consume_674", i64* @_gasrem, 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" - -"$out_of_gas_677": ; preds = %"$have_gas_673" - call void @_out_of_gas() - br label %"$have_gas_678" - -"$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 + call void @llvm.dbg.declare(metadata %Uint128* %bal, metadata !156, metadata !DIExpression()), !dbg !159 + %"$execptr_load_675" = load i8*, i8** @_execptr, align 8 + %"$bal_x_as_address_676" = alloca [20 x i8], align 1 + %"$x_as_address_677" = load [20 x i8], [20 x i8]* %x_as_address, align 1 + store [20 x i8] %"$x_as_address_677", [20 x i8]* %"$bal_x_as_address_676", align 1 + %"$bal_call_678" = call i8* @_fetch_remote_field(i8* %"$execptr_load_675", [20 x i8]* %"$bal_x_as_address_676", i8* getelementptr inbounds ([9 x i8], [9 x i8]* @"$_balance_674", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Uint128_34", i32 0, i8* null, i32 1), !dbg !159 + %"$bal_679" = bitcast i8* %"$bal_call_678" to %Uint128* + %"$bal_680" = load %Uint128, %Uint128* %"$bal_679", align 8 + store %Uint128 %"$bal_680", %Uint128* %bal, align 8 + %"$_literal_cost_bal_681" = alloca %Uint128, align 8 + %"$bal_682" = load %Uint128, %Uint128* %bal, align 8 + store %Uint128 %"$bal_682", %Uint128* %"$_literal_cost_bal_681", align 8 + %"$$_literal_cost_bal_681_683" = bitcast %Uint128* %"$_literal_cost_bal_681" to i8* + %"$_literal_cost_call_684" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Uint128_34", i8* %"$$_literal_cost_bal_681_683") + %"$gasadd_685" = add i64 %"$_literal_cost_call_684", 0 + %"$gasrem_686" = load i64, i64* @_gasrem, align 8 + %"$gascmp_687" = icmp ugt i64 %"$gasadd_685", %"$gasrem_686" + br i1 %"$gascmp_687", label %"$out_of_gas_688", label %"$have_gas_689" + +"$out_of_gas_688": ; preds = %"$Some_670" + call void @_out_of_gas() + br label %"$have_gas_689" + +"$have_gas_689": ; preds = %"$out_of_gas_688", %"$Some_670" + %"$consume_690" = sub i64 %"$gasrem_686", %"$gasadd_685" + store i64 %"$consume_690", 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 %res = alloca %TName_Option_Uint128*, 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 - %"$bal_685" = load %Uint128, %Uint128* %bal, align 8 - %"$adtval_686_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_686_salloc" = call i8* @_salloc(i8* %"$adtval_686_load", i64 17) - %"$adtval_686" = bitcast i8* %"$adtval_686_salloc" to %CName_Some_Uint128* - %"$adtgep_687" = getelementptr inbounds %CName_Some_Uint128, %CName_Some_Uint128* %"$adtval_686", i32 0, i32 0 - store i8 0, i8* %"$adtgep_687", align 1 - %"$adtgep_688" = getelementptr inbounds %CName_Some_Uint128, %CName_Some_Uint128* %"$adtval_686", i32 0, i32 1 - store %Uint128 %"$bal_685", %Uint128* %"$adtgep_688", align 8 - %"$adtptr_689" = bitcast %CName_Some_Uint128* %"$adtval_686" to %TName_Option_Uint128* - store %TName_Option_Uint128* %"$adtptr_689", %TName_Option_Uint128** %res, align 8, !dbg !63 - %"$res_690" = load %TName_Option_Uint128*, %TName_Option_Uint128** %res, align 8 - %"$$res_690_691" = bitcast %TName_Option_Uint128* %"$res_690" to i8* - %"$_literal_cost_call_692" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_Uint128_63", i8* %"$$res_690_691") - %"$gasrem_693" = load i64, i64* @_gasrem, align 8 - %"$gascmp_694" = icmp ugt i64 %"$_literal_cost_call_692", %"$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", %"$_literal_cost_call_692" - store i64 %"$consume_697", i64* @_gasrem, align 8 - %"$execptr_load_698" = load i8*, i8** @_execptr, align 8 - %"$res_700" = load %TName_Option_Uint128*, %TName_Option_Uint128** %res, align 8 - %"$update_value_701" = bitcast %TName_Option_Uint128* %"$res_700" to i8* - call void @_update_field(i8* %"$execptr_load_698", i8* getelementptr inbounds ([13 x i8], [13 x i8]* @"$test_5_1_res_699", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_ADT_Option_Uint128_63", i32 0, i8* null, i8* %"$update_value_701"), !dbg !64 - br label %"$matchsucc_649" - -"$None_702": ; preds = %"$have_gas_647" - %"$x_cast_703" = bitcast %TName_Option_ByStr20_with_contract_end* %"$x_cast_650" to %CName_None_ByStr20_with_contract_end* - br label %"$matchsucc_649" - -"$empty_default_653": ; preds = %"$have_gas_647" - br label %"$matchsucc_649" - -"$matchsucc_649": ; preds = %"$None_702", %"$have_gas_696", %"$empty_default_653" + call void @llvm.dbg.declare(metadata %TName_Option_Uint128** %res, metadata !160, metadata !DIExpression()), !dbg !161 + %"$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" + +"$out_of_gas_698": ; preds = %"$have_gas_694" + call void @_out_of_gas() + br label %"$have_gas_699" + +"$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 + %"$bal_701" = load %Uint128, %Uint128* %bal, align 8 + %"$adtval_702_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_702_salloc" = call i8* @_salloc(i8* %"$adtval_702_load", i64 17) + %"$adtval_702" = bitcast i8* %"$adtval_702_salloc" to %CName_Some_Uint128* + %"$adtgep_703" = getelementptr inbounds %CName_Some_Uint128, %CName_Some_Uint128* %"$adtval_702", i32 0, i32 0 + store i8 0, i8* %"$adtgep_703", align 1 + %"$adtgep_704" = getelementptr inbounds %CName_Some_Uint128, %CName_Some_Uint128* %"$adtval_702", i32 0, i32 1 + store %Uint128 %"$bal_701", %Uint128* %"$adtgep_704", align 8 + %"$adtptr_705" = bitcast %CName_Some_Uint128* %"$adtval_702" to %TName_Option_Uint128* + store %TName_Option_Uint128* %"$adtptr_705", %TName_Option_Uint128** %res, align 8, !dbg !162 + %"$res_706" = load %TName_Option_Uint128*, %TName_Option_Uint128** %res, align 8 + %"$$res_706_707" = bitcast %TName_Option_Uint128* %"$res_706" to i8* + %"$_literal_cost_call_708" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_Uint128_63", i8* %"$$res_706_707") + %"$gasrem_709" = load i64, i64* @_gasrem, align 8 + %"$gascmp_710" = icmp ugt i64 %"$_literal_cost_call_708", %"$gasrem_709" + br i1 %"$gascmp_710", label %"$out_of_gas_711", label %"$have_gas_712" + +"$out_of_gas_711": ; preds = %"$have_gas_699" + call void @_out_of_gas() + br label %"$have_gas_712" + +"$have_gas_712": ; preds = %"$out_of_gas_711", %"$have_gas_699" + %"$consume_713" = sub i64 %"$gasrem_709", %"$_literal_cost_call_708" + store i64 %"$consume_713", i64* @_gasrem, align 8 + %"$execptr_load_714" = load i8*, i8** @_execptr, align 8 + %"$res_716" = load %TName_Option_Uint128*, %TName_Option_Uint128** %res, align 8 + %"$update_value_717" = bitcast %TName_Option_Uint128* %"$res_716" to i8* + call void @_update_field(i8* %"$execptr_load_714", i8* getelementptr inbounds ([13 x i8], [13 x i8]* @"$test_5_1_res_715", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_ADT_Option_Uint128_63", i32 0, i8* null, i8* %"$update_value_717"), !dbg !163 + br label %"$matchsucc_665" + +"$None_718": ; preds = %"$have_gas_663" + %"$x_cast_719" = bitcast %TName_Option_ByStr20_with_contract_end* %"$x_cast_666" to %CName_None_ByStr20_with_contract_end* + br label %"$matchsucc_665" + +"$empty_default_669": ; preds = %"$have_gas_663" + br label %"$matchsucc_665" + +"$matchsucc_665": ; preds = %"$None_718", %"$have_gas_712", %"$empty_default_669" ret void } -define void @CastTest5_1(i8* %0) !dbg !65 { +define void @CastTest5_1(i8* %0) !dbg !164 { entry: - %"$_amount_705" = getelementptr i8, i8* %0, i32 0 - %"$_amount_706" = bitcast i8* %"$_amount_705" to %Uint128* - %_amount = load %Uint128, %Uint128* %"$_amount_706", align 8 - %"$_origin_707" = getelementptr i8, i8* %0, i32 16 - %"$_origin_708" = bitcast i8* %"$_origin_707" to [20 x i8]* - %"$_sender_709" = getelementptr i8, i8* %0, i32 36 - %"$_sender_710" = bitcast i8* %"$_sender_709" to [20 x i8]* - %"$x_711" = getelementptr i8, i8* %0, i32 56 - %"$x_712" = bitcast i8* %"$x_711" to [20 x i8]* - call void @"$CastTest5_1_631"(%Uint128 %_amount, [20 x i8]* %"$_origin_708", [20 x i8]* %"$_sender_710", [20 x i8]* %"$x_712"), !dbg !66 + %"$_amount_725" = getelementptr i8, i8* %0, i32 0 + %"$_amount_726" = bitcast i8* %"$_amount_725" to %Uint128* + %_amount = load %Uint128, %Uint128* %"$_amount_726", align 8 + %"$_origin_727" = getelementptr i8, i8* %0, i32 16 + %"$_origin_728" = bitcast i8* %"$_origin_727" to [20 x i8]* + %"$_sender_729" = getelementptr i8, i8* %0, i32 36 + %"$_sender_730" = bitcast i8* %"$_sender_729" to [20 x i8]* + %"$x_731" = getelementptr i8, i8* %0, i32 56 + %"$x_732" = bitcast i8* %"$x_731" to [20 x i8]* + call void @"$CastTest5_1_647"(%Uint128 %_amount, [20 x i8]* %"$_origin_728", [20 x i8]* %"$_sender_730", [20 x i8]* %"$x_732"), !dbg !165 ret void } -define internal void @"$CastTest5_2_713"(%Uint128 %_amount, [20 x i8]* %"$_origin_714", [20 x i8]* %"$_sender_715", [20 x i8]* %"$x_716") !dbg !67 { +define internal void @"$CastTest5_2_733"(%Uint128 %_amount, [20 x i8]* %"$_origin_734", [20 x i8]* %"$_sender_735", [20 x i8]* %"$x_736") !dbg !166 { entry: - %_origin = load [20 x i8], [20 x i8]* %"$_origin_714", align 1 - %_sender = load [20 x i8], [20 x i8]* %"$_sender_715", align 1 - %x = load [20 x i8], [20 x i8]* %"$x_716", align 1 - %"$gasrem_717" = load i64, i64* @_gasrem, align 8 - %"$gascmp_718" = icmp ugt i64 3, %"$gasrem_717" - br i1 %"$gascmp_718", label %"$out_of_gas_719", label %"$have_gas_720" - -"$out_of_gas_719": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_720" - -"$have_gas_720": ; preds = %"$out_of_gas_719", %entry - %"$consume_721" = sub i64 %"$gasrem_717", 3 - store i64 %"$consume_721", i64* @_gasrem, align 8 + %"$x_809" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$x_736", [20 x i8]** %"$x_809", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$x_809", metadata !167, metadata !DIExpression()), !dbg !168 + %"$_sender_808" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_sender_735", [20 x i8]** %"$_sender_808", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_sender_808", metadata !169, metadata !DIExpression()), !dbg !170 + %"$_origin_807" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_origin_734", [20 x i8]** %"$_origin_807", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_origin_807", metadata !171, metadata !DIExpression()), !dbg !170 + %"$_amount_806" = alloca %Uint128, align 8 + store %Uint128 %_amount, %Uint128* %"$_amount_806", align 8 + call void @llvm.dbg.declare(metadata %Uint128* %"$_amount_806", metadata !172, metadata !DIExpression()), !dbg !170 + %_origin = load [20 x i8], [20 x i8]* %"$_origin_734", align 1 + %_sender = load [20 x i8], [20 x i8]* %"$_sender_735", align 1 + %x = load [20 x i8], [20 x i8]* %"$x_736", align 1 + %"$gasrem_737" = load i64, i64* @_gasrem, align 8 + %"$gascmp_738" = icmp ugt i64 3, %"$gasrem_737" + br i1 %"$gascmp_738", label %"$out_of_gas_739", label %"$have_gas_740" + +"$out_of_gas_739": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_740" + +"$have_gas_740": ; preds = %"$out_of_gas_739", %entry + %"$consume_741" = sub i64 %"$gasrem_737", 3 + store i64 %"$consume_741", i64* @_gasrem, align 8 %x_cast = alloca %TName_Option_ByStr20_with_contract_end*, align 8 - %"$execptr_load_722" = load i8*, i8** @_execptr, align 8 - %"$_dynamic_typecast_x_723" = alloca [20 x i8], align 1 - store [20 x i8] %x, [20 x i8]* %"$_dynamic_typecast_x_723", align 1 - %"$_dynamic_typecast_call_724" = call i8* @_dynamic_typecast(i8* %"$execptr_load_722", [20 x i8]* %"$_dynamic_typecast_x_723", %_TyDescrTy_Typ* @"$TyDescr_Addr_75"), !dbg !68 - %"$_dynamic_typecast_725" = bitcast i8* %"$_dynamic_typecast_call_724" to %TName_Option_ByStr20_with_contract_end* - store %TName_Option_ByStr20_with_contract_end* %"$_dynamic_typecast_725", %TName_Option_ByStr20_with_contract_end** %x_cast, align 8, !dbg !68 - %"$gasrem_726" = load i64, i64* @_gasrem, align 8 - %"$gascmp_727" = icmp ugt i64 2, %"$gasrem_726" - br i1 %"$gascmp_727", label %"$out_of_gas_728", label %"$have_gas_729" - -"$out_of_gas_728": ; preds = %"$have_gas_720" - call void @_out_of_gas() - br label %"$have_gas_729" - -"$have_gas_729": ; preds = %"$out_of_gas_728", %"$have_gas_720" - %"$consume_730" = sub i64 %"$gasrem_726", 2 - store i64 %"$consume_730", i64* @_gasrem, align 8 - %"$x_cast_732" = load %TName_Option_ByStr20_with_contract_end*, %TName_Option_ByStr20_with_contract_end** %x_cast, align 8 - %"$x_cast_tag_733" = getelementptr inbounds %TName_Option_ByStr20_with_contract_end, %TName_Option_ByStr20_with_contract_end* %"$x_cast_732", i32 0, i32 0 - %"$x_cast_tag_734" = load i8, i8* %"$x_cast_tag_733", align 1 - switch i8 %"$x_cast_tag_734", label %"$empty_default_735" [ - i8 0, label %"$Some_736" - i8 1, label %"$None_784" - ], !dbg !69 - -"$Some_736": ; preds = %"$have_gas_729" - %"$x_cast_737" = bitcast %TName_Option_ByStr20_with_contract_end* %"$x_cast_732" to %CName_Some_ByStr20_with_contract_end* - %"$x_as_address_gep_738" = getelementptr inbounds %CName_Some_ByStr20_with_contract_end, %CName_Some_ByStr20_with_contract_end* %"$x_cast_737", i32 0, i32 1 - %"$x_as_address_load_739" = load [20 x i8], [20 x i8]* %"$x_as_address_gep_738", align 1 + call void @llvm.dbg.declare(metadata %TName_Option_ByStr20_with_contract_end** %x_cast, metadata !173, metadata !DIExpression()), !dbg !174 + %"$execptr_load_742" = load i8*, i8** @_execptr, align 8 + %"$_dynamic_typecast_x_743" = alloca [20 x i8], align 1 + store [20 x i8] %x, [20 x i8]* %"$_dynamic_typecast_x_743", align 1 + %"$_dynamic_typecast_call_744" = call i8* @_dynamic_typecast(i8* %"$execptr_load_742", [20 x i8]* %"$_dynamic_typecast_x_743", %_TyDescrTy_Typ* @"$TyDescr_Addr_75"), !dbg !174 + %"$_dynamic_typecast_745" = bitcast i8* %"$_dynamic_typecast_call_744" to %TName_Option_ByStr20_with_contract_end* + store %TName_Option_ByStr20_with_contract_end* %"$_dynamic_typecast_745", %TName_Option_ByStr20_with_contract_end** %x_cast, align 8, !dbg !174 + %"$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_740" + call void @_out_of_gas() + br label %"$have_gas_749" + +"$have_gas_749": ; preds = %"$out_of_gas_748", %"$have_gas_740" + %"$consume_750" = sub i64 %"$gasrem_746", 2 + store i64 %"$consume_750", i64* @_gasrem, align 8 + %"$x_cast_752" = load %TName_Option_ByStr20_with_contract_end*, %TName_Option_ByStr20_with_contract_end** %x_cast, align 8 + %"$x_cast_tag_753" = getelementptr inbounds %TName_Option_ByStr20_with_contract_end, %TName_Option_ByStr20_with_contract_end* %"$x_cast_752", i32 0, i32 0 + %"$x_cast_tag_754" = load i8, i8* %"$x_cast_tag_753", align 1 + switch i8 %"$x_cast_tag_754", label %"$empty_default_755" [ + i8 0, label %"$Some_756" + i8 1, label %"$None_804" + ], !dbg !175 + +"$Some_756": ; preds = %"$have_gas_749" + %"$x_cast_757" = bitcast %TName_Option_ByStr20_with_contract_end* %"$x_cast_752" to %CName_Some_ByStr20_with_contract_end* + %"$x_as_address_gep_758" = getelementptr inbounds %CName_Some_ByStr20_with_contract_end, %CName_Some_ByStr20_with_contract_end* %"$x_cast_757", i32 0, i32 1 + %"$x_as_address_load_759" = load [20 x i8], [20 x i8]* %"$x_as_address_gep_758", align 1 %x_as_address = alloca [20 x i8], align 1 - store [20 x i8] %"$x_as_address_load_739", [20 x i8]* %x_as_address, align 1 + store [20 x i8] %"$x_as_address_load_759", [20 x i8]* %x_as_address, align 1 %bal = alloca %Uint128, align 8 - %"$execptr_load_741" = load i8*, i8** @_execptr, align 8 - %"$bal_x_as_address_742" = alloca [20 x i8], align 1 - %"$x_as_address_743" = load [20 x i8], [20 x i8]* %x_as_address, align 1 - store [20 x i8] %"$x_as_address_743", [20 x i8]* %"$bal_x_as_address_742", align 1 - %"$bal_call_744" = call i8* @_fetch_remote_field(i8* %"$execptr_load_741", [20 x i8]* %"$bal_x_as_address_742", i8* getelementptr inbounds ([9 x i8], [9 x i8]* @"$_balance_740", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Uint128_34", i32 0, i8* null, i32 1), !dbg !70 - %"$bal_745" = bitcast i8* %"$bal_call_744" to %Uint128* - %"$bal_746" = load %Uint128, %Uint128* %"$bal_745", align 8 - store %Uint128 %"$bal_746", %Uint128* %bal, align 8 - %"$_literal_cost_bal_747" = alloca %Uint128, align 8 - %"$bal_748" = load %Uint128, %Uint128* %bal, align 8 - store %Uint128 %"$bal_748", %Uint128* %"$_literal_cost_bal_747", align 8 - %"$$_literal_cost_bal_747_749" = bitcast %Uint128* %"$_literal_cost_bal_747" to i8* - %"$_literal_cost_call_750" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Uint128_34", i8* %"$$_literal_cost_bal_747_749") - %"$gasadd_751" = add i64 %"$_literal_cost_call_750", 0 - %"$gasrem_752" = load i64, i64* @_gasrem, align 8 - %"$gascmp_753" = icmp ugt i64 %"$gasadd_751", %"$gasrem_752" - br i1 %"$gascmp_753", label %"$out_of_gas_754", label %"$have_gas_755" - -"$out_of_gas_754": ; preds = %"$Some_736" - call void @_out_of_gas() - br label %"$have_gas_755" - -"$have_gas_755": ; preds = %"$out_of_gas_754", %"$Some_736" - %"$consume_756" = sub i64 %"$gasrem_752", %"$gasadd_751" - store i64 %"$consume_756", i64* @_gasrem, align 8 - %"$gasrem_757" = load i64, i64* @_gasrem, align 8 - %"$gascmp_758" = icmp ugt i64 1, %"$gasrem_757" - br i1 %"$gascmp_758", label %"$out_of_gas_759", label %"$have_gas_760" - -"$out_of_gas_759": ; preds = %"$have_gas_755" - call void @_out_of_gas() - br label %"$have_gas_760" - -"$have_gas_760": ; preds = %"$out_of_gas_759", %"$have_gas_755" - %"$consume_761" = sub i64 %"$gasrem_757", 1 - store i64 %"$consume_761", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %Uint128* %bal, metadata !176, metadata !DIExpression()), !dbg !179 + %"$execptr_load_761" = load i8*, i8** @_execptr, align 8 + %"$bal_x_as_address_762" = alloca [20 x i8], align 1 + %"$x_as_address_763" = load [20 x i8], [20 x i8]* %x_as_address, align 1 + store [20 x i8] %"$x_as_address_763", [20 x i8]* %"$bal_x_as_address_762", align 1 + %"$bal_call_764" = call i8* @_fetch_remote_field(i8* %"$execptr_load_761", [20 x i8]* %"$bal_x_as_address_762", i8* getelementptr inbounds ([9 x i8], [9 x i8]* @"$_balance_760", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Uint128_34", i32 0, i8* null, i32 1), !dbg !179 + %"$bal_765" = bitcast i8* %"$bal_call_764" to %Uint128* + %"$bal_766" = load %Uint128, %Uint128* %"$bal_765", align 8 + store %Uint128 %"$bal_766", %Uint128* %bal, align 8 + %"$_literal_cost_bal_767" = alloca %Uint128, align 8 + %"$bal_768" = load %Uint128, %Uint128* %bal, align 8 + store %Uint128 %"$bal_768", %Uint128* %"$_literal_cost_bal_767", align 8 + %"$$_literal_cost_bal_767_769" = bitcast %Uint128* %"$_literal_cost_bal_767" to i8* + %"$_literal_cost_call_770" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Uint128_34", i8* %"$$_literal_cost_bal_767_769") + %"$gasadd_771" = add i64 %"$_literal_cost_call_770", 0 + %"$gasrem_772" = load i64, i64* @_gasrem, align 8 + %"$gascmp_773" = icmp ugt i64 %"$gasadd_771", %"$gasrem_772" + br i1 %"$gascmp_773", label %"$out_of_gas_774", label %"$have_gas_775" + +"$out_of_gas_774": ; preds = %"$Some_756" + call void @_out_of_gas() + br label %"$have_gas_775" + +"$have_gas_775": ; preds = %"$out_of_gas_774", %"$Some_756" + %"$consume_776" = sub i64 %"$gasrem_772", %"$gasadd_771" + store i64 %"$consume_776", i64* @_gasrem, align 8 + %"$gasrem_777" = load i64, i64* @_gasrem, align 8 + %"$gascmp_778" = icmp ugt i64 1, %"$gasrem_777" + br i1 %"$gascmp_778", label %"$out_of_gas_779", label %"$have_gas_780" + +"$out_of_gas_779": ; preds = %"$have_gas_775" + call void @_out_of_gas() + br label %"$have_gas_780" + +"$have_gas_780": ; preds = %"$out_of_gas_779", %"$have_gas_775" + %"$consume_781" = sub i64 %"$gasrem_777", 1 + store i64 %"$consume_781", i64* @_gasrem, align 8 %res = alloca %TName_Option_Uint128*, 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_760" - call void @_out_of_gas() - br label %"$have_gas_765" - -"$have_gas_765": ; preds = %"$out_of_gas_764", %"$have_gas_760" - %"$consume_766" = sub i64 %"$gasrem_762", 1 - store i64 %"$consume_766", i64* @_gasrem, align 8 - %"$bal_767" = load %Uint128, %Uint128* %bal, align 8 - %"$adtval_768_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_768_salloc" = call i8* @_salloc(i8* %"$adtval_768_load", i64 17) - %"$adtval_768" = bitcast i8* %"$adtval_768_salloc" to %CName_Some_Uint128* - %"$adtgep_769" = getelementptr inbounds %CName_Some_Uint128, %CName_Some_Uint128* %"$adtval_768", i32 0, i32 0 - store i8 0, i8* %"$adtgep_769", align 1 - %"$adtgep_770" = getelementptr inbounds %CName_Some_Uint128, %CName_Some_Uint128* %"$adtval_768", i32 0, i32 1 - store %Uint128 %"$bal_767", %Uint128* %"$adtgep_770", align 8 - %"$adtptr_771" = bitcast %CName_Some_Uint128* %"$adtval_768" to %TName_Option_Uint128* - store %TName_Option_Uint128* %"$adtptr_771", %TName_Option_Uint128** %res, align 8, !dbg !73 - %"$res_772" = load %TName_Option_Uint128*, %TName_Option_Uint128** %res, align 8 - %"$$res_772_773" = bitcast %TName_Option_Uint128* %"$res_772" to i8* - %"$_literal_cost_call_774" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_Uint128_63", i8* %"$$res_772_773") - %"$gasrem_775" = load i64, i64* @_gasrem, align 8 - %"$gascmp_776" = icmp ugt i64 %"$_literal_cost_call_774", %"$gasrem_775" - br i1 %"$gascmp_776", label %"$out_of_gas_777", label %"$have_gas_778" - -"$out_of_gas_777": ; preds = %"$have_gas_765" - call void @_out_of_gas() - br label %"$have_gas_778" - -"$have_gas_778": ; preds = %"$out_of_gas_777", %"$have_gas_765" - %"$consume_779" = sub i64 %"$gasrem_775", %"$_literal_cost_call_774" - store i64 %"$consume_779", i64* @_gasrem, align 8 - %"$execptr_load_780" = load i8*, i8** @_execptr, align 8 - %"$res_782" = load %TName_Option_Uint128*, %TName_Option_Uint128** %res, align 8 - %"$update_value_783" = bitcast %TName_Option_Uint128* %"$res_782" to i8* - call void @_update_field(i8* %"$execptr_load_780", i8* getelementptr inbounds ([13 x i8], [13 x i8]* @"$test_5_2_res_781", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_ADT_Option_Uint128_63", i32 0, i8* null, i8* %"$update_value_783"), !dbg !74 - br label %"$matchsucc_731" - -"$None_784": ; preds = %"$have_gas_729" - %"$x_cast_785" = bitcast %TName_Option_ByStr20_with_contract_end* %"$x_cast_732" to %CName_None_ByStr20_with_contract_end* - br label %"$matchsucc_731" - -"$empty_default_735": ; preds = %"$have_gas_729" - br label %"$matchsucc_731" - -"$matchsucc_731": ; preds = %"$None_784", %"$have_gas_778", %"$empty_default_735" + call void @llvm.dbg.declare(metadata %TName_Option_Uint128** %res, metadata !180, metadata !DIExpression()), !dbg !181 + %"$gasrem_782" = load i64, i64* @_gasrem, align 8 + %"$gascmp_783" = icmp ugt i64 1, %"$gasrem_782" + br i1 %"$gascmp_783", label %"$out_of_gas_784", label %"$have_gas_785" + +"$out_of_gas_784": ; preds = %"$have_gas_780" + call void @_out_of_gas() + br label %"$have_gas_785" + +"$have_gas_785": ; preds = %"$out_of_gas_784", %"$have_gas_780" + %"$consume_786" = sub i64 %"$gasrem_782", 1 + store i64 %"$consume_786", i64* @_gasrem, align 8 + %"$bal_787" = load %Uint128, %Uint128* %bal, align 8 + %"$adtval_788_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_788_salloc" = call i8* @_salloc(i8* %"$adtval_788_load", i64 17) + %"$adtval_788" = bitcast i8* %"$adtval_788_salloc" to %CName_Some_Uint128* + %"$adtgep_789" = getelementptr inbounds %CName_Some_Uint128, %CName_Some_Uint128* %"$adtval_788", i32 0, i32 0 + store i8 0, i8* %"$adtgep_789", align 1 + %"$adtgep_790" = getelementptr inbounds %CName_Some_Uint128, %CName_Some_Uint128* %"$adtval_788", i32 0, i32 1 + store %Uint128 %"$bal_787", %Uint128* %"$adtgep_790", align 8 + %"$adtptr_791" = bitcast %CName_Some_Uint128* %"$adtval_788" to %TName_Option_Uint128* + store %TName_Option_Uint128* %"$adtptr_791", %TName_Option_Uint128** %res, align 8, !dbg !182 + %"$res_792" = load %TName_Option_Uint128*, %TName_Option_Uint128** %res, align 8 + %"$$res_792_793" = bitcast %TName_Option_Uint128* %"$res_792" to i8* + %"$_literal_cost_call_794" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_Uint128_63", i8* %"$$res_792_793") + %"$gasrem_795" = load i64, i64* @_gasrem, align 8 + %"$gascmp_796" = icmp ugt i64 %"$_literal_cost_call_794", %"$gasrem_795" + br i1 %"$gascmp_796", label %"$out_of_gas_797", label %"$have_gas_798" + +"$out_of_gas_797": ; preds = %"$have_gas_785" + call void @_out_of_gas() + br label %"$have_gas_798" + +"$have_gas_798": ; preds = %"$out_of_gas_797", %"$have_gas_785" + %"$consume_799" = sub i64 %"$gasrem_795", %"$_literal_cost_call_794" + store i64 %"$consume_799", i64* @_gasrem, align 8 + %"$execptr_load_800" = load i8*, i8** @_execptr, align 8 + %"$res_802" = load %TName_Option_Uint128*, %TName_Option_Uint128** %res, align 8 + %"$update_value_803" = bitcast %TName_Option_Uint128* %"$res_802" to i8* + call void @_update_field(i8* %"$execptr_load_800", i8* getelementptr inbounds ([13 x i8], [13 x i8]* @"$test_5_2_res_801", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_ADT_Option_Uint128_63", i32 0, i8* null, i8* %"$update_value_803"), !dbg !183 + br label %"$matchsucc_751" + +"$None_804": ; preds = %"$have_gas_749" + %"$x_cast_805" = bitcast %TName_Option_ByStr20_with_contract_end* %"$x_cast_752" to %CName_None_ByStr20_with_contract_end* + br label %"$matchsucc_751" + +"$empty_default_755": ; preds = %"$have_gas_749" + br label %"$matchsucc_751" + +"$matchsucc_751": ; preds = %"$None_804", %"$have_gas_798", %"$empty_default_755" ret void } -define void @CastTest5_2(i8* %0) !dbg !75 { +define void @CastTest5_2(i8* %0) !dbg !184 { entry: - %"$_amount_787" = getelementptr i8, i8* %0, i32 0 - %"$_amount_788" = bitcast i8* %"$_amount_787" to %Uint128* - %_amount = load %Uint128, %Uint128* %"$_amount_788", align 8 - %"$_origin_789" = getelementptr i8, i8* %0, i32 16 - %"$_origin_790" = bitcast i8* %"$_origin_789" to [20 x i8]* - %"$_sender_791" = getelementptr i8, i8* %0, i32 36 - %"$_sender_792" = bitcast i8* %"$_sender_791" to [20 x i8]* - %"$x_793" = getelementptr i8, i8* %0, i32 56 - %"$x_794" = bitcast i8* %"$x_793" to [20 x i8]* - call void @"$CastTest5_2_713"(%Uint128 %_amount, [20 x i8]* %"$_origin_790", [20 x i8]* %"$_sender_792", [20 x i8]* %"$x_794"), !dbg !76 + %"$_amount_811" = getelementptr i8, i8* %0, i32 0 + %"$_amount_812" = bitcast i8* %"$_amount_811" to %Uint128* + %_amount = load %Uint128, %Uint128* %"$_amount_812", align 8 + %"$_origin_813" = getelementptr i8, i8* %0, i32 16 + %"$_origin_814" = bitcast i8* %"$_origin_813" to [20 x i8]* + %"$_sender_815" = getelementptr i8, i8* %0, i32 36 + %"$_sender_816" = bitcast i8* %"$_sender_815" to [20 x i8]* + %"$x_817" = getelementptr i8, i8* %0, i32 56 + %"$x_818" = bitcast i8* %"$x_817" to [20 x i8]* + call void @"$CastTest5_2_733"(%Uint128 %_amount, [20 x i8]* %"$_origin_814", [20 x i8]* %"$_sender_816", [20 x i8]* %"$x_818"), !dbg !185 ret void } -define internal void @"$CastTest6_1_795"(%Uint128 %_amount, [20 x i8]* %"$_origin_796", [20 x i8]* %"$_sender_797", [20 x i8]* %"$x_798") !dbg !77 { +define internal void @"$CastTest6_1_819"(%Uint128 %_amount, [20 x i8]* %"$_origin_820", [20 x i8]* %"$_sender_821", [20 x i8]* %"$x_822") !dbg !186 { entry: - %_origin = load [20 x i8], [20 x i8]* %"$_origin_796", align 1 - %_sender = load [20 x i8], [20 x i8]* %"$_sender_797", align 1 - %x = load [20 x i8], [20 x i8]* %"$x_798", align 1 - %"$gasrem_799" = load i64, i64* @_gasrem, align 8 - %"$gascmp_800" = icmp ugt i64 5, %"$gasrem_799" - br i1 %"$gascmp_800", label %"$out_of_gas_801", label %"$have_gas_802" - -"$out_of_gas_801": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_802" - -"$have_gas_802": ; preds = %"$out_of_gas_801", %entry - %"$consume_803" = sub i64 %"$gasrem_799", 5 - store i64 %"$consume_803", i64* @_gasrem, align 8 + %"$x_981" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$x_822", [20 x i8]** %"$x_981", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$x_981", metadata !187, metadata !DIExpression()), !dbg !188 + %"$_sender_980" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_sender_821", [20 x i8]** %"$_sender_980", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_sender_980", metadata !189, metadata !DIExpression()), !dbg !190 + %"$_origin_979" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_origin_820", [20 x i8]** %"$_origin_979", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_origin_979", metadata !191, metadata !DIExpression()), !dbg !190 + %"$_amount_978" = alloca %Uint128, align 8 + store %Uint128 %_amount, %Uint128* %"$_amount_978", align 8 + call void @llvm.dbg.declare(metadata %Uint128* %"$_amount_978", metadata !192, metadata !DIExpression()), !dbg !190 + %_origin = load [20 x i8], [20 x i8]* %"$_origin_820", align 1 + %_sender = load [20 x i8], [20 x i8]* %"$_sender_821", align 1 + %x = load [20 x i8], [20 x i8]* %"$x_822", align 1 + %"$gasrem_823" = load i64, i64* @_gasrem, align 8 + %"$gascmp_824" = icmp ugt i64 5, %"$gasrem_823" + br i1 %"$gascmp_824", label %"$out_of_gas_825", label %"$have_gas_826" + +"$out_of_gas_825": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_826" + +"$have_gas_826": ; preds = %"$out_of_gas_825", %entry + %"$consume_827" = sub i64 %"$gasrem_823", 5 + store i64 %"$consume_827", i64* @_gasrem, align 8 %x_cast = alloca %"TName_Option_ByStr20_with_contract_field_f_:_Uint128,_field_g_:_Bool_end"*, align 8 - %"$execptr_load_804" = load i8*, i8** @_execptr, align 8 - %"$_dynamic_typecast_x_805" = alloca [20 x i8], align 1 - store [20 x i8] %x, [20 x i8]* %"$_dynamic_typecast_x_805", align 1 - %"$_dynamic_typecast_call_806" = call i8* @_dynamic_typecast(i8* %"$execptr_load_804", [20 x i8]* %"$_dynamic_typecast_x_805", %_TyDescrTy_Typ* @"$TyDescr_Addr_74"), !dbg !78 - %"$_dynamic_typecast_807" = bitcast i8* %"$_dynamic_typecast_call_806" to %"TName_Option_ByStr20_with_contract_field_f_:_Uint128,_field_g_:_Bool_end"* - store %"TName_Option_ByStr20_with_contract_field_f_:_Uint128,_field_g_:_Bool_end"* %"$_dynamic_typecast_807", %"TName_Option_ByStr20_with_contract_field_f_:_Uint128,_field_g_:_Bool_end"** %x_cast, align 8, !dbg !78 - %"$gasrem_808" = load i64, i64* @_gasrem, align 8 - %"$gascmp_809" = icmp ugt i64 2, %"$gasrem_808" - br i1 %"$gascmp_809", label %"$out_of_gas_810", label %"$have_gas_811" - -"$out_of_gas_810": ; preds = %"$have_gas_802" - call void @_out_of_gas() - br label %"$have_gas_811" - -"$have_gas_811": ; preds = %"$out_of_gas_810", %"$have_gas_802" - %"$consume_812" = sub i64 %"$gasrem_808", 2 - store i64 %"$consume_812", i64* @_gasrem, align 8 - %"$x_cast_814" = load %"TName_Option_ByStr20_with_contract_field_f_:_Uint128,_field_g_:_Bool_end"*, %"TName_Option_ByStr20_with_contract_field_f_:_Uint128,_field_g_:_Bool_end"** %x_cast, align 8 - %"$x_cast_tag_815" = getelementptr inbounds %"TName_Option_ByStr20_with_contract_field_f_:_Uint128,_field_g_:_Bool_end", %"TName_Option_ByStr20_with_contract_field_f_:_Uint128,_field_g_:_Bool_end"* %"$x_cast_814", i32 0, i32 0 - %"$x_cast_tag_816" = load i8, i8* %"$x_cast_tag_815", align 1 - switch i8 %"$x_cast_tag_816", label %"$empty_default_817" [ - i8 0, label %"$Some_818" - i8 1, label %"$None_952" - ], !dbg !79 - -"$Some_818": ; preds = %"$have_gas_811" - %"$x_cast_819" = bitcast %"TName_Option_ByStr20_with_contract_field_f_:_Uint128,_field_g_:_Bool_end"* %"$x_cast_814" to %"CName_Some_ByStr20_with_contract_field_f_:_Uint128,_field_g_:_Bool_end"* - %"$x_as_address_gep_820" = getelementptr inbounds %"CName_Some_ByStr20_with_contract_field_f_:_Uint128,_field_g_:_Bool_end", %"CName_Some_ByStr20_with_contract_field_f_:_Uint128,_field_g_:_Bool_end"* %"$x_cast_819", i32 0, i32 1 - %"$x_as_address_load_821" = load [20 x i8], [20 x i8]* %"$x_as_address_gep_820", align 1 + call void @llvm.dbg.declare(metadata %"TName_Option_ByStr20_with_contract_field_f_:_Uint128,_field_g_:_Bool_end"** %x_cast, metadata !193, metadata !DIExpression()), !dbg !196 + %"$execptr_load_828" = load i8*, i8** @_execptr, align 8 + %"$_dynamic_typecast_x_829" = alloca [20 x i8], align 1 + store [20 x i8] %x, [20 x i8]* %"$_dynamic_typecast_x_829", align 1 + %"$_dynamic_typecast_call_830" = call i8* @_dynamic_typecast(i8* %"$execptr_load_828", [20 x i8]* %"$_dynamic_typecast_x_829", %_TyDescrTy_Typ* @"$TyDescr_Addr_74"), !dbg !196 + %"$_dynamic_typecast_831" = bitcast i8* %"$_dynamic_typecast_call_830" to %"TName_Option_ByStr20_with_contract_field_f_:_Uint128,_field_g_:_Bool_end"* + store %"TName_Option_ByStr20_with_contract_field_f_:_Uint128,_field_g_:_Bool_end"* %"$_dynamic_typecast_831", %"TName_Option_ByStr20_with_contract_field_f_:_Uint128,_field_g_:_Bool_end"** %x_cast, align 8, !dbg !196 + %"$gasrem_832" = load i64, i64* @_gasrem, align 8 + %"$gascmp_833" = icmp ugt i64 2, %"$gasrem_832" + br i1 %"$gascmp_833", label %"$out_of_gas_834", label %"$have_gas_835" + +"$out_of_gas_834": ; preds = %"$have_gas_826" + call void @_out_of_gas() + br label %"$have_gas_835" + +"$have_gas_835": ; preds = %"$out_of_gas_834", %"$have_gas_826" + %"$consume_836" = sub i64 %"$gasrem_832", 2 + store i64 %"$consume_836", i64* @_gasrem, align 8 + %"$x_cast_838" = load %"TName_Option_ByStr20_with_contract_field_f_:_Uint128,_field_g_:_Bool_end"*, %"TName_Option_ByStr20_with_contract_field_f_:_Uint128,_field_g_:_Bool_end"** %x_cast, align 8 + %"$x_cast_tag_839" = getelementptr inbounds %"TName_Option_ByStr20_with_contract_field_f_:_Uint128,_field_g_:_Bool_end", %"TName_Option_ByStr20_with_contract_field_f_:_Uint128,_field_g_:_Bool_end"* %"$x_cast_838", i32 0, i32 0 + %"$x_cast_tag_840" = load i8, i8* %"$x_cast_tag_839", align 1 + switch i8 %"$x_cast_tag_840", label %"$empty_default_841" [ + i8 0, label %"$Some_842" + i8 1, label %"$None_976" + ], !dbg !197 + +"$Some_842": ; preds = %"$have_gas_835" + %"$x_cast_843" = bitcast %"TName_Option_ByStr20_with_contract_field_f_:_Uint128,_field_g_:_Bool_end"* %"$x_cast_838" to %"CName_Some_ByStr20_with_contract_field_f_:_Uint128,_field_g_:_Bool_end"* + %"$x_as_address_gep_844" = getelementptr inbounds %"CName_Some_ByStr20_with_contract_field_f_:_Uint128,_field_g_:_Bool_end", %"CName_Some_ByStr20_with_contract_field_f_:_Uint128,_field_g_:_Bool_end"* %"$x_cast_843", i32 0, i32 1 + %"$x_as_address_load_845" = load [20 x i8], [20 x i8]* %"$x_as_address_gep_844", align 1 %x_as_address = alloca [20 x i8], align 1 - store [20 x i8] %"$x_as_address_load_821", [20 x i8]* %x_as_address, align 1 + store [20 x i8] %"$x_as_address_load_845", [20 x i8]* %x_as_address, align 1 %bal = alloca %Uint128, align 8 - %"$execptr_load_823" = load i8*, i8** @_execptr, align 8 - %"$bal_x_as_address_824" = alloca [20 x i8], align 1 - %"$x_as_address_825" = load [20 x i8], [20 x i8]* %x_as_address, align 1 - store [20 x i8] %"$x_as_address_825", [20 x i8]* %"$bal_x_as_address_824", align 1 - %"$bal_call_826" = call i8* @_fetch_remote_field(i8* %"$execptr_load_823", [20 x i8]* %"$bal_x_as_address_824", i8* getelementptr inbounds ([9 x i8], [9 x i8]* @"$_balance_822", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Uint128_34", i32 0, i8* null, i32 1), !dbg !80 - %"$bal_827" = bitcast i8* %"$bal_call_826" to %Uint128* - %"$bal_828" = load %Uint128, %Uint128* %"$bal_827", align 8 - store %Uint128 %"$bal_828", %Uint128* %bal, align 8 - %"$_literal_cost_bal_829" = alloca %Uint128, align 8 - %"$bal_830" = load %Uint128, %Uint128* %bal, align 8 - store %Uint128 %"$bal_830", %Uint128* %"$_literal_cost_bal_829", align 8 - %"$$_literal_cost_bal_829_831" = bitcast %Uint128* %"$_literal_cost_bal_829" to i8* - %"$_literal_cost_call_832" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Uint128_34", i8* %"$$_literal_cost_bal_829_831") - %"$gasadd_833" = add i64 %"$_literal_cost_call_832", 0 - %"$gasrem_834" = load i64, i64* @_gasrem, align 8 - %"$gascmp_835" = icmp ugt i64 %"$gasadd_833", %"$gasrem_834" - br i1 %"$gascmp_835", label %"$out_of_gas_836", label %"$have_gas_837" - -"$out_of_gas_836": ; preds = %"$Some_818" - call void @_out_of_gas() - br label %"$have_gas_837" - -"$have_gas_837": ; preds = %"$out_of_gas_836", %"$Some_818" - %"$consume_838" = sub i64 %"$gasrem_834", %"$gasadd_833" - store i64 %"$consume_838", i64* @_gasrem, 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_841": ; preds = %"$have_gas_837" - call void @_out_of_gas() - br label %"$have_gas_842" - -"$have_gas_842": ; preds = %"$out_of_gas_841", %"$have_gas_837" - %"$consume_843" = sub i64 %"$gasrem_839", 1 - store i64 %"$consume_843", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %Uint128* %bal, metadata !198, metadata !DIExpression()), !dbg !201 + %"$execptr_load_847" = load i8*, i8** @_execptr, align 8 + %"$bal_x_as_address_848" = alloca [20 x i8], align 1 + %"$x_as_address_849" = load [20 x i8], [20 x i8]* %x_as_address, align 1 + store [20 x i8] %"$x_as_address_849", [20 x i8]* %"$bal_x_as_address_848", align 1 + %"$bal_call_850" = call i8* @_fetch_remote_field(i8* %"$execptr_load_847", [20 x i8]* %"$bal_x_as_address_848", i8* getelementptr inbounds ([9 x i8], [9 x i8]* @"$_balance_846", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Uint128_34", i32 0, i8* null, i32 1), !dbg !201 + %"$bal_851" = bitcast i8* %"$bal_call_850" to %Uint128* + %"$bal_852" = load %Uint128, %Uint128* %"$bal_851", align 8 + store %Uint128 %"$bal_852", %Uint128* %bal, align 8 + %"$_literal_cost_bal_853" = alloca %Uint128, align 8 + %"$bal_854" = load %Uint128, %Uint128* %bal, align 8 + store %Uint128 %"$bal_854", %Uint128* %"$_literal_cost_bal_853", align 8 + %"$$_literal_cost_bal_853_855" = bitcast %Uint128* %"$_literal_cost_bal_853" to i8* + %"$_literal_cost_call_856" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Uint128_34", i8* %"$$_literal_cost_bal_853_855") + %"$gasadd_857" = add i64 %"$_literal_cost_call_856", 0 + %"$gasrem_858" = load i64, i64* @_gasrem, align 8 + %"$gascmp_859" = icmp ugt i64 %"$gasadd_857", %"$gasrem_858" + br i1 %"$gascmp_859", label %"$out_of_gas_860", label %"$have_gas_861" + +"$out_of_gas_860": ; preds = %"$Some_842" + call void @_out_of_gas() + br label %"$have_gas_861" + +"$have_gas_861": ; preds = %"$out_of_gas_860", %"$Some_842" + %"$consume_862" = sub i64 %"$gasrem_858", %"$gasadd_857" + store i64 %"$consume_862", i64* @_gasrem, align 8 + %"$gasrem_863" = load i64, i64* @_gasrem, align 8 + %"$gascmp_864" = icmp ugt i64 1, %"$gasrem_863" + br i1 %"$gascmp_864", label %"$out_of_gas_865", label %"$have_gas_866" + +"$out_of_gas_865": ; preds = %"$have_gas_861" + call void @_out_of_gas() + br label %"$have_gas_866" + +"$have_gas_866": ; preds = %"$out_of_gas_865", %"$have_gas_861" + %"$consume_867" = sub i64 %"$gasrem_863", 1 + store i64 %"$consume_867", i64* @_gasrem, align 8 %bal_res = alloca %TName_Option_Uint128*, align 8 - %"$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_846": ; preds = %"$have_gas_842" - call void @_out_of_gas() - br label %"$have_gas_847" - -"$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 - %"$bal_849" = load %Uint128, %Uint128* %bal, align 8 - %"$adtval_850_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_850_salloc" = call i8* @_salloc(i8* %"$adtval_850_load", i64 17) - %"$adtval_850" = bitcast i8* %"$adtval_850_salloc" to %CName_Some_Uint128* - %"$adtgep_851" = getelementptr inbounds %CName_Some_Uint128, %CName_Some_Uint128* %"$adtval_850", i32 0, i32 0 - store i8 0, i8* %"$adtgep_851", align 1 - %"$adtgep_852" = getelementptr inbounds %CName_Some_Uint128, %CName_Some_Uint128* %"$adtval_850", i32 0, i32 1 - store %Uint128 %"$bal_849", %Uint128* %"$adtgep_852", align 8 - %"$adtptr_853" = bitcast %CName_Some_Uint128* %"$adtval_850" to %TName_Option_Uint128* - store %TName_Option_Uint128* %"$adtptr_853", %TName_Option_Uint128** %bal_res, align 8, !dbg !83 - %"$bal_res_854" = load %TName_Option_Uint128*, %TName_Option_Uint128** %bal_res, align 8 - %"$$bal_res_854_855" = bitcast %TName_Option_Uint128* %"$bal_res_854" to i8* - %"$_literal_cost_call_856" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_Uint128_63", i8* %"$$bal_res_854_855") - %"$gasrem_857" = load i64, i64* @_gasrem, align 8 - %"$gascmp_858" = icmp ugt i64 %"$_literal_cost_call_856", %"$gasrem_857" - br i1 %"$gascmp_858", label %"$out_of_gas_859", label %"$have_gas_860" - -"$out_of_gas_859": ; preds = %"$have_gas_847" - call void @_out_of_gas() - br label %"$have_gas_860" - -"$have_gas_860": ; preds = %"$out_of_gas_859", %"$have_gas_847" - %"$consume_861" = sub i64 %"$gasrem_857", %"$_literal_cost_call_856" - store i64 %"$consume_861", i64* @_gasrem, align 8 - %"$execptr_load_862" = load i8*, i8** @_execptr, align 8 - %"$bal_res_864" = load %TName_Option_Uint128*, %TName_Option_Uint128** %bal_res, align 8 - %"$update_value_865" = bitcast %TName_Option_Uint128* %"$bal_res_864" to i8* - call void @_update_field(i8* %"$execptr_load_862", i8* getelementptr inbounds ([17 x i8], [17 x i8]* @"$test_6_1_bal_res_863", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_ADT_Option_Uint128_63", i32 0, i8* null, i8* %"$update_value_865"), !dbg !84 + call void @llvm.dbg.declare(metadata %TName_Option_Uint128** %bal_res, metadata !202, metadata !DIExpression()), !dbg !203 + %"$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 + %"$bal_873" = load %Uint128, %Uint128* %bal, align 8 + %"$adtval_874_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_874_salloc" = call i8* @_salloc(i8* %"$adtval_874_load", i64 17) + %"$adtval_874" = bitcast i8* %"$adtval_874_salloc" to %CName_Some_Uint128* + %"$adtgep_875" = getelementptr inbounds %CName_Some_Uint128, %CName_Some_Uint128* %"$adtval_874", i32 0, i32 0 + store i8 0, i8* %"$adtgep_875", align 1 + %"$adtgep_876" = getelementptr inbounds %CName_Some_Uint128, %CName_Some_Uint128* %"$adtval_874", i32 0, i32 1 + store %Uint128 %"$bal_873", %Uint128* %"$adtgep_876", align 8 + %"$adtptr_877" = bitcast %CName_Some_Uint128* %"$adtval_874" to %TName_Option_Uint128* + store %TName_Option_Uint128* %"$adtptr_877", %TName_Option_Uint128** %bal_res, align 8, !dbg !204 + %"$bal_res_878" = load %TName_Option_Uint128*, %TName_Option_Uint128** %bal_res, align 8 + %"$$bal_res_878_879" = bitcast %TName_Option_Uint128* %"$bal_res_878" to i8* + %"$_literal_cost_call_880" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_Uint128_63", i8* %"$$bal_res_878_879") + %"$gasrem_881" = load i64, i64* @_gasrem, align 8 + %"$gascmp_882" = icmp ugt i64 %"$_literal_cost_call_880", %"$gasrem_881" + br i1 %"$gascmp_882", label %"$out_of_gas_883", label %"$have_gas_884" + +"$out_of_gas_883": ; preds = %"$have_gas_871" + call void @_out_of_gas() + br label %"$have_gas_884" + +"$have_gas_884": ; preds = %"$out_of_gas_883", %"$have_gas_871" + %"$consume_885" = sub i64 %"$gasrem_881", %"$_literal_cost_call_880" + store i64 %"$consume_885", i64* @_gasrem, align 8 + %"$execptr_load_886" = load i8*, i8** @_execptr, align 8 + %"$bal_res_888" = load %TName_Option_Uint128*, %TName_Option_Uint128** %bal_res, align 8 + %"$update_value_889" = bitcast %TName_Option_Uint128* %"$bal_res_888" to i8* + call void @_update_field(i8* %"$execptr_load_886", i8* getelementptr inbounds ([17 x i8], [17 x i8]* @"$test_6_1_bal_res_887", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_ADT_Option_Uint128_63", i32 0, i8* null, i8* %"$update_value_889"), !dbg !205 %f = alloca %Uint128, align 8 - %"$execptr_load_867" = load i8*, i8** @_execptr, align 8 - %"$f_x_as_address_868" = alloca [20 x i8], align 1 - %"$x_as_address_869" = load [20 x i8], [20 x i8]* %x_as_address, align 1 - store [20 x i8] %"$x_as_address_869", [20 x i8]* %"$f_x_as_address_868", align 1 - %"$f_call_870" = call i8* @_fetch_remote_field(i8* %"$execptr_load_867", [20 x i8]* %"$f_x_as_address_868", i8* getelementptr inbounds ([2 x i8], [2 x i8]* @"$f_866", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Uint128_34", i32 0, i8* null, i32 1), !dbg !85 - %"$f_871" = bitcast i8* %"$f_call_870" to %Uint128* - %"$f_872" = load %Uint128, %Uint128* %"$f_871", align 8 - store %Uint128 %"$f_872", %Uint128* %f, align 8 - %"$_literal_cost_f_873" = alloca %Uint128, align 8 - %"$f_874" = load %Uint128, %Uint128* %f, align 8 - store %Uint128 %"$f_874", %Uint128* %"$_literal_cost_f_873", align 8 - %"$$_literal_cost_f_873_875" = bitcast %Uint128* %"$_literal_cost_f_873" to i8* - %"$_literal_cost_call_876" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Uint128_34", i8* %"$$_literal_cost_f_873_875") - %"$gasadd_877" = add i64 %"$_literal_cost_call_876", 0 - %"$gasrem_878" = load i64, i64* @_gasrem, align 8 - %"$gascmp_879" = icmp ugt i64 %"$gasadd_877", %"$gasrem_878" - br i1 %"$gascmp_879", label %"$out_of_gas_880", label %"$have_gas_881" - -"$out_of_gas_880": ; preds = %"$have_gas_860" - call void @_out_of_gas() - br label %"$have_gas_881" - -"$have_gas_881": ; preds = %"$out_of_gas_880", %"$have_gas_860" - %"$consume_882" = sub i64 %"$gasrem_878", %"$gasadd_877" - store i64 %"$consume_882", i64* @_gasrem, align 8 - %"$gasrem_883" = load i64, i64* @_gasrem, align 8 - %"$gascmp_884" = icmp ugt i64 1, %"$gasrem_883" - br i1 %"$gascmp_884", label %"$out_of_gas_885", label %"$have_gas_886" - -"$out_of_gas_885": ; preds = %"$have_gas_881" - call void @_out_of_gas() - br label %"$have_gas_886" - -"$have_gas_886": ; preds = %"$out_of_gas_885", %"$have_gas_881" - %"$consume_887" = sub i64 %"$gasrem_883", 1 - store i64 %"$consume_887", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %Uint128* %f, metadata !206, metadata !DIExpression()), !dbg !207 + %"$execptr_load_891" = load i8*, i8** @_execptr, align 8 + %"$f_x_as_address_892" = alloca [20 x i8], align 1 + %"$x_as_address_893" = load [20 x i8], [20 x i8]* %x_as_address, align 1 + store [20 x i8] %"$x_as_address_893", [20 x i8]* %"$f_x_as_address_892", align 1 + %"$f_call_894" = call i8* @_fetch_remote_field(i8* %"$execptr_load_891", [20 x i8]* %"$f_x_as_address_892", i8* getelementptr inbounds ([2 x i8], [2 x i8]* @"$f_890", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Uint128_34", i32 0, i8* null, i32 1), !dbg !207 + %"$f_895" = bitcast i8* %"$f_call_894" to %Uint128* + %"$f_896" = load %Uint128, %Uint128* %"$f_895", align 8 + store %Uint128 %"$f_896", %Uint128* %f, align 8 + %"$_literal_cost_f_897" = alloca %Uint128, align 8 + %"$f_898" = load %Uint128, %Uint128* %f, align 8 + store %Uint128 %"$f_898", %Uint128* %"$_literal_cost_f_897", align 8 + %"$$_literal_cost_f_897_899" = bitcast %Uint128* %"$_literal_cost_f_897" to i8* + %"$_literal_cost_call_900" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Uint128_34", i8* %"$$_literal_cost_f_897_899") + %"$gasadd_901" = add i64 %"$_literal_cost_call_900", 0 + %"$gasrem_902" = load i64, i64* @_gasrem, align 8 + %"$gascmp_903" = icmp ugt i64 %"$gasadd_901", %"$gasrem_902" + br i1 %"$gascmp_903", label %"$out_of_gas_904", label %"$have_gas_905" + +"$out_of_gas_904": ; preds = %"$have_gas_884" + call void @_out_of_gas() + br label %"$have_gas_905" + +"$have_gas_905": ; preds = %"$out_of_gas_904", %"$have_gas_884" + %"$consume_906" = sub i64 %"$gasrem_902", %"$gasadd_901" + store i64 %"$consume_906", i64* @_gasrem, align 8 + %"$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_909": ; preds = %"$have_gas_905" + call void @_out_of_gas() + br label %"$have_gas_910" + +"$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 %f_res = alloca %TName_Option_Uint128*, 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_886" - call void @_out_of_gas() - br label %"$have_gas_891" - -"$have_gas_891": ; preds = %"$out_of_gas_890", %"$have_gas_886" - %"$consume_892" = sub i64 %"$gasrem_888", 1 - store i64 %"$consume_892", i64* @_gasrem, align 8 - %"$f_893" = load %Uint128, %Uint128* %f, align 8 - %"$adtval_894_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_894_salloc" = call i8* @_salloc(i8* %"$adtval_894_load", i64 17) - %"$adtval_894" = bitcast i8* %"$adtval_894_salloc" to %CName_Some_Uint128* - %"$adtgep_895" = getelementptr inbounds %CName_Some_Uint128, %CName_Some_Uint128* %"$adtval_894", i32 0, i32 0 - store i8 0, i8* %"$adtgep_895", align 1 - %"$adtgep_896" = getelementptr inbounds %CName_Some_Uint128, %CName_Some_Uint128* %"$adtval_894", i32 0, i32 1 - store %Uint128 %"$f_893", %Uint128* %"$adtgep_896", align 8 - %"$adtptr_897" = bitcast %CName_Some_Uint128* %"$adtval_894" to %TName_Option_Uint128* - store %TName_Option_Uint128* %"$adtptr_897", %TName_Option_Uint128** %f_res, align 8, !dbg !86 - %"$f_res_898" = load %TName_Option_Uint128*, %TName_Option_Uint128** %f_res, align 8 - %"$$f_res_898_899" = bitcast %TName_Option_Uint128* %"$f_res_898" to i8* - %"$_literal_cost_call_900" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_Uint128_63", i8* %"$$f_res_898_899") - %"$gasrem_901" = load i64, i64* @_gasrem, align 8 - %"$gascmp_902" = icmp ugt i64 %"$_literal_cost_call_900", %"$gasrem_901" - br i1 %"$gascmp_902", label %"$out_of_gas_903", label %"$have_gas_904" - -"$out_of_gas_903": ; preds = %"$have_gas_891" - call void @_out_of_gas() - br label %"$have_gas_904" - -"$have_gas_904": ; preds = %"$out_of_gas_903", %"$have_gas_891" - %"$consume_905" = sub i64 %"$gasrem_901", %"$_literal_cost_call_900" - store i64 %"$consume_905", i64* @_gasrem, align 8 - %"$execptr_load_906" = load i8*, i8** @_execptr, align 8 - %"$f_res_908" = load %TName_Option_Uint128*, %TName_Option_Uint128** %f_res, align 8 - %"$update_value_909" = bitcast %TName_Option_Uint128* %"$f_res_908" to i8* - call void @_update_field(i8* %"$execptr_load_906", i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$test_6_1_f_res_907", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_ADT_Option_Uint128_63", i32 0, i8* null, i8* %"$update_value_909"), !dbg !87 - %g = alloca %TName_Bool*, align 8 - %"$execptr_load_911" = load i8*, i8** @_execptr, align 8 - %"$g_x_as_address_912" = alloca [20 x i8], align 1 - %"$x_as_address_913" = load [20 x i8], [20 x i8]* %x_as_address, align 1 - store [20 x i8] %"$x_as_address_913", [20 x i8]* %"$g_x_as_address_912", align 1 - %"$g_call_914" = call i8* @_fetch_remote_field(i8* %"$execptr_load_911", [20 x i8]* %"$g_x_as_address_912", i8* getelementptr inbounds ([2 x i8], [2 x i8]* @"$g_910", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_66", i32 0, i8* null, i32 1), !dbg !88 - %"$g_915" = bitcast i8* %"$g_call_914" to %TName_Bool* - store %TName_Bool* %"$g_915", %TName_Bool** %g, align 8 - %"$g_916" = load %TName_Bool*, %TName_Bool** %g, align 8 - %"$$g_916_917" = bitcast %TName_Bool* %"$g_916" to i8* - %"$_literal_cost_call_918" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_66", i8* %"$$g_916_917") - %"$gasadd_919" = add i64 %"$_literal_cost_call_918", 0 - %"$gasrem_920" = load i64, i64* @_gasrem, align 8 - %"$gascmp_921" = icmp ugt i64 %"$gasadd_919", %"$gasrem_920" - br i1 %"$gascmp_921", label %"$out_of_gas_922", label %"$have_gas_923" - -"$out_of_gas_922": ; preds = %"$have_gas_904" - call void @_out_of_gas() - br label %"$have_gas_923" - -"$have_gas_923": ; preds = %"$out_of_gas_922", %"$have_gas_904" - %"$consume_924" = sub i64 %"$gasrem_920", %"$gasadd_919" - store i64 %"$consume_924", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Option_Uint128** %f_res, metadata !208, metadata !DIExpression()), !dbg !209 + %"$gasrem_912" = load i64, i64* @_gasrem, align 8 + %"$gascmp_913" = icmp ugt i64 1, %"$gasrem_912" + br i1 %"$gascmp_913", label %"$out_of_gas_914", label %"$have_gas_915" + +"$out_of_gas_914": ; preds = %"$have_gas_910" + call void @_out_of_gas() + br label %"$have_gas_915" + +"$have_gas_915": ; preds = %"$out_of_gas_914", %"$have_gas_910" + %"$consume_916" = sub i64 %"$gasrem_912", 1 + store i64 %"$consume_916", i64* @_gasrem, align 8 + %"$f_917" = load %Uint128, %Uint128* %f, align 8 + %"$adtval_918_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_918_salloc" = call i8* @_salloc(i8* %"$adtval_918_load", i64 17) + %"$adtval_918" = bitcast i8* %"$adtval_918_salloc" to %CName_Some_Uint128* + %"$adtgep_919" = getelementptr inbounds %CName_Some_Uint128, %CName_Some_Uint128* %"$adtval_918", i32 0, i32 0 + store i8 0, i8* %"$adtgep_919", align 1 + %"$adtgep_920" = getelementptr inbounds %CName_Some_Uint128, %CName_Some_Uint128* %"$adtval_918", i32 0, i32 1 + store %Uint128 %"$f_917", %Uint128* %"$adtgep_920", align 8 + %"$adtptr_921" = bitcast %CName_Some_Uint128* %"$adtval_918" to %TName_Option_Uint128* + store %TName_Option_Uint128* %"$adtptr_921", %TName_Option_Uint128** %f_res, align 8, !dbg !210 + %"$f_res_922" = load %TName_Option_Uint128*, %TName_Option_Uint128** %f_res, align 8 + %"$$f_res_922_923" = bitcast %TName_Option_Uint128* %"$f_res_922" to i8* + %"$_literal_cost_call_924" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_Uint128_63", i8* %"$$f_res_922_923") %"$gasrem_925" = load i64, i64* @_gasrem, align 8 - %"$gascmp_926" = icmp ugt i64 1, %"$gasrem_925" + %"$gascmp_926" = icmp ugt i64 %"$_literal_cost_call_924", %"$gasrem_925" br i1 %"$gascmp_926", label %"$out_of_gas_927", label %"$have_gas_928" -"$out_of_gas_927": ; preds = %"$have_gas_923" +"$out_of_gas_927": ; preds = %"$have_gas_915" call void @_out_of_gas() br label %"$have_gas_928" -"$have_gas_928": ; preds = %"$out_of_gas_927", %"$have_gas_923" - %"$consume_929" = sub i64 %"$gasrem_925", 1 +"$have_gas_928": ; preds = %"$out_of_gas_927", %"$have_gas_915" + %"$consume_929" = sub i64 %"$gasrem_925", %"$_literal_cost_call_924" store i64 %"$consume_929", i64* @_gasrem, align 8 + %"$execptr_load_930" = load i8*, i8** @_execptr, align 8 + %"$f_res_932" = load %TName_Option_Uint128*, %TName_Option_Uint128** %f_res, align 8 + %"$update_value_933" = bitcast %TName_Option_Uint128* %"$f_res_932" to i8* + call void @_update_field(i8* %"$execptr_load_930", i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$test_6_1_f_res_931", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_ADT_Option_Uint128_63", i32 0, i8* null, i8* %"$update_value_933"), !dbg !211 + %g = alloca %TName_Bool*, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %g, metadata !212, metadata !DIExpression()), !dbg !213 + %"$execptr_load_935" = load i8*, i8** @_execptr, align 8 + %"$g_x_as_address_936" = alloca [20 x i8], align 1 + %"$x_as_address_937" = load [20 x i8], [20 x i8]* %x_as_address, align 1 + store [20 x i8] %"$x_as_address_937", [20 x i8]* %"$g_x_as_address_936", align 1 + %"$g_call_938" = call i8* @_fetch_remote_field(i8* %"$execptr_load_935", [20 x i8]* %"$g_x_as_address_936", i8* getelementptr inbounds ([2 x i8], [2 x i8]* @"$g_934", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_66", i32 0, i8* null, i32 1), !dbg !213 + %"$g_939" = bitcast i8* %"$g_call_938" to %TName_Bool* + store %TName_Bool* %"$g_939", %TName_Bool** %g, align 8 + %"$g_940" = load %TName_Bool*, %TName_Bool** %g, align 8 + %"$$g_940_941" = bitcast %TName_Bool* %"$g_940" to i8* + %"$_literal_cost_call_942" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_66", i8* %"$$g_940_941") + %"$gasadd_943" = add i64 %"$_literal_cost_call_942", 0 + %"$gasrem_944" = load i64, i64* @_gasrem, align 8 + %"$gascmp_945" = icmp ugt i64 %"$gasadd_943", %"$gasrem_944" + br i1 %"$gascmp_945", label %"$out_of_gas_946", label %"$have_gas_947" + +"$out_of_gas_946": ; preds = %"$have_gas_928" + call void @_out_of_gas() + br label %"$have_gas_947" + +"$have_gas_947": ; preds = %"$out_of_gas_946", %"$have_gas_928" + %"$consume_948" = sub i64 %"$gasrem_944", %"$gasadd_943" + store i64 %"$consume_948", i64* @_gasrem, align 8 + %"$gasrem_949" = load i64, i64* @_gasrem, align 8 + %"$gascmp_950" = icmp ugt i64 1, %"$gasrem_949" + br i1 %"$gascmp_950", label %"$out_of_gas_951", label %"$have_gas_952" + +"$out_of_gas_951": ; preds = %"$have_gas_947" + call void @_out_of_gas() + br label %"$have_gas_952" + +"$have_gas_952": ; preds = %"$out_of_gas_951", %"$have_gas_947" + %"$consume_953" = sub i64 %"$gasrem_949", 1 + store i64 %"$consume_953", i64* @_gasrem, align 8 %g_res = alloca %TName_Option_Bool*, 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" - -"$out_of_gas_932": ; preds = %"$have_gas_928" - call void @_out_of_gas() - br label %"$have_gas_933" - -"$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 - %"$g_935" = load %TName_Bool*, %TName_Bool** %g, align 8 - %"$adtval_936_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_936_salloc" = call i8* @_salloc(i8* %"$adtval_936_load", i64 9) - %"$adtval_936" = bitcast i8* %"$adtval_936_salloc" to %CName_Some_Bool* - %"$adtgep_937" = getelementptr inbounds %CName_Some_Bool, %CName_Some_Bool* %"$adtval_936", i32 0, i32 0 - store i8 0, i8* %"$adtgep_937", align 1 - %"$adtgep_938" = getelementptr inbounds %CName_Some_Bool, %CName_Some_Bool* %"$adtval_936", i32 0, i32 1 - store %TName_Bool* %"$g_935", %TName_Bool** %"$adtgep_938", align 8 - %"$adtptr_939" = bitcast %CName_Some_Bool* %"$adtval_936" to %TName_Option_Bool* - store %TName_Option_Bool* %"$adtptr_939", %TName_Option_Bool** %g_res, align 8, !dbg !89 - %"$g_res_940" = load %TName_Option_Bool*, %TName_Option_Bool** %g_res, align 8 - %"$$g_res_940_941" = bitcast %TName_Option_Bool* %"$g_res_940" to i8* - %"$_literal_cost_call_942" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_Bool_62", i8* %"$$g_res_940_941") - %"$gasrem_943" = load i64, i64* @_gasrem, align 8 - %"$gascmp_944" = icmp ugt i64 %"$_literal_cost_call_942", %"$gasrem_943" - br i1 %"$gascmp_944", label %"$out_of_gas_945", label %"$have_gas_946" - -"$out_of_gas_945": ; preds = %"$have_gas_933" - call void @_out_of_gas() - br label %"$have_gas_946" - -"$have_gas_946": ; preds = %"$out_of_gas_945", %"$have_gas_933" - %"$consume_947" = sub i64 %"$gasrem_943", %"$_literal_cost_call_942" - store i64 %"$consume_947", i64* @_gasrem, align 8 - %"$execptr_load_948" = load i8*, i8** @_execptr, align 8 - %"$g_res_950" = load %TName_Option_Bool*, %TName_Option_Bool** %g_res, align 8 - %"$update_value_951" = bitcast %TName_Option_Bool* %"$g_res_950" to i8* - call void @_update_field(i8* %"$execptr_load_948", i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$test_6_1_g_res_949", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_ADT_Option_Bool_62", i32 0, i8* null, i8* %"$update_value_951"), !dbg !90 - br label %"$matchsucc_813" - -"$None_952": ; preds = %"$have_gas_811" - %"$x_cast_953" = bitcast %"TName_Option_ByStr20_with_contract_field_f_:_Uint128,_field_g_:_Bool_end"* %"$x_cast_814" to %"CName_None_ByStr20_with_contract_field_f_:_Uint128,_field_g_:_Bool_end"* - br label %"$matchsucc_813" - -"$empty_default_817": ; preds = %"$have_gas_811" - br label %"$matchsucc_813" - -"$matchsucc_813": ; preds = %"$None_952", %"$have_gas_946", %"$empty_default_817" + call void @llvm.dbg.declare(metadata %TName_Option_Bool** %g_res, metadata !214, metadata !DIExpression()), !dbg !215 + %"$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 = %"$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", 1 + store i64 %"$consume_958", i64* @_gasrem, align 8 + %"$g_959" = load %TName_Bool*, %TName_Bool** %g, align 8 + %"$adtval_960_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_960_salloc" = call i8* @_salloc(i8* %"$adtval_960_load", i64 9) + %"$adtval_960" = bitcast i8* %"$adtval_960_salloc" to %CName_Some_Bool* + %"$adtgep_961" = getelementptr inbounds %CName_Some_Bool, %CName_Some_Bool* %"$adtval_960", i32 0, i32 0 + store i8 0, i8* %"$adtgep_961", align 1 + %"$adtgep_962" = getelementptr inbounds %CName_Some_Bool, %CName_Some_Bool* %"$adtval_960", i32 0, i32 1 + store %TName_Bool* %"$g_959", %TName_Bool** %"$adtgep_962", align 8 + %"$adtptr_963" = bitcast %CName_Some_Bool* %"$adtval_960" to %TName_Option_Bool* + store %TName_Option_Bool* %"$adtptr_963", %TName_Option_Bool** %g_res, align 8, !dbg !216 + %"$g_res_964" = load %TName_Option_Bool*, %TName_Option_Bool** %g_res, align 8 + %"$$g_res_964_965" = bitcast %TName_Option_Bool* %"$g_res_964" to i8* + %"$_literal_cost_call_966" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_Bool_62", i8* %"$$g_res_964_965") + %"$gasrem_967" = load i64, i64* @_gasrem, align 8 + %"$gascmp_968" = icmp ugt i64 %"$_literal_cost_call_966", %"$gasrem_967" + br i1 %"$gascmp_968", label %"$out_of_gas_969", label %"$have_gas_970" + +"$out_of_gas_969": ; preds = %"$have_gas_957" + call void @_out_of_gas() + br label %"$have_gas_970" + +"$have_gas_970": ; preds = %"$out_of_gas_969", %"$have_gas_957" + %"$consume_971" = sub i64 %"$gasrem_967", %"$_literal_cost_call_966" + store i64 %"$consume_971", i64* @_gasrem, align 8 + %"$execptr_load_972" = load i8*, i8** @_execptr, align 8 + %"$g_res_974" = load %TName_Option_Bool*, %TName_Option_Bool** %g_res, align 8 + %"$update_value_975" = bitcast %TName_Option_Bool* %"$g_res_974" to i8* + call void @_update_field(i8* %"$execptr_load_972", i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$test_6_1_g_res_973", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_ADT_Option_Bool_62", i32 0, i8* null, i8* %"$update_value_975"), !dbg !217 + br label %"$matchsucc_837" + +"$None_976": ; preds = %"$have_gas_835" + %"$x_cast_977" = bitcast %"TName_Option_ByStr20_with_contract_field_f_:_Uint128,_field_g_:_Bool_end"* %"$x_cast_838" to %"CName_None_ByStr20_with_contract_field_f_:_Uint128,_field_g_:_Bool_end"* + br label %"$matchsucc_837" + +"$empty_default_841": ; preds = %"$have_gas_835" + br label %"$matchsucc_837" + +"$matchsucc_837": ; preds = %"$None_976", %"$have_gas_970", %"$empty_default_841" ret void } -define void @CastTest6_1(i8* %0) !dbg !91 { +define void @CastTest6_1(i8* %0) !dbg !218 { entry: - %"$_amount_955" = getelementptr i8, i8* %0, i32 0 - %"$_amount_956" = bitcast i8* %"$_amount_955" to %Uint128* - %_amount = load %Uint128, %Uint128* %"$_amount_956", align 8 - %"$_origin_957" = getelementptr i8, i8* %0, i32 16 - %"$_origin_958" = bitcast i8* %"$_origin_957" to [20 x i8]* - %"$_sender_959" = getelementptr i8, i8* %0, i32 36 - %"$_sender_960" = bitcast i8* %"$_sender_959" to [20 x i8]* - %"$x_961" = getelementptr i8, i8* %0, i32 56 - %"$x_962" = bitcast i8* %"$x_961" to [20 x i8]* - call void @"$CastTest6_1_795"(%Uint128 %_amount, [20 x i8]* %"$_origin_958", [20 x i8]* %"$_sender_960", [20 x i8]* %"$x_962"), !dbg !92 + %"$_amount_983" = getelementptr i8, i8* %0, i32 0 + %"$_amount_984" = bitcast i8* %"$_amount_983" to %Uint128* + %_amount = load %Uint128, %Uint128* %"$_amount_984", align 8 + %"$_origin_985" = getelementptr i8, i8* %0, i32 16 + %"$_origin_986" = bitcast i8* %"$_origin_985" to [20 x i8]* + %"$_sender_987" = getelementptr i8, i8* %0, i32 36 + %"$_sender_988" = bitcast i8* %"$_sender_987" to [20 x i8]* + %"$x_989" = getelementptr i8, i8* %0, i32 56 + %"$x_990" = bitcast i8* %"$x_989" to [20 x i8]* + call void @"$CastTest6_1_819"(%Uint128 %_amount, [20 x i8]* %"$_origin_986", [20 x i8]* %"$_sender_988", [20 x i8]* %"$x_990"), !dbg !219 ret void } -define internal void @"$CastTest6_2_963"(%Uint128 %_amount, [20 x i8]* %"$_origin_964", [20 x i8]* %"$_sender_965", [20 x i8]* %"$x_966") !dbg !93 { +define internal void @"$CastTest6_2_991"(%Uint128 %_amount, [20 x i8]* %"$_origin_992", [20 x i8]* %"$_sender_993", [20 x i8]* %"$x_994") !dbg !220 { entry: - %_origin = load [20 x i8], [20 x i8]* %"$_origin_964", align 1 - %_sender = load [20 x i8], [20 x i8]* %"$_sender_965", align 1 - %x = load [20 x i8], [20 x i8]* %"$x_966", align 1 - %"$gasrem_967" = load i64, i64* @_gasrem, align 8 - %"$gascmp_968" = icmp ugt i64 5, %"$gasrem_967" - br i1 %"$gascmp_968", label %"$out_of_gas_969", label %"$have_gas_970" - -"$out_of_gas_969": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_970" - -"$have_gas_970": ; preds = %"$out_of_gas_969", %entry - %"$consume_971" = sub i64 %"$gasrem_967", 5 - store i64 %"$consume_971", i64* @_gasrem, align 8 + %"$x_1153" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$x_994", [20 x i8]** %"$x_1153", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$x_1153", metadata !221, metadata !DIExpression()), !dbg !222 + %"$_sender_1152" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_sender_993", [20 x i8]** %"$_sender_1152", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_sender_1152", metadata !223, metadata !DIExpression()), !dbg !224 + %"$_origin_1151" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_origin_992", [20 x i8]** %"$_origin_1151", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_origin_1151", metadata !225, metadata !DIExpression()), !dbg !224 + %"$_amount_1150" = alloca %Uint128, align 8 + store %Uint128 %_amount, %Uint128* %"$_amount_1150", align 8 + call void @llvm.dbg.declare(metadata %Uint128* %"$_amount_1150", metadata !226, metadata !DIExpression()), !dbg !224 + %_origin = load [20 x i8], [20 x i8]* %"$_origin_992", align 1 + %_sender = load [20 x i8], [20 x i8]* %"$_sender_993", align 1 + %x = load [20 x i8], [20 x i8]* %"$x_994", align 1 + %"$gasrem_995" = load i64, i64* @_gasrem, align 8 + %"$gascmp_996" = icmp ugt i64 5, %"$gasrem_995" + br i1 %"$gascmp_996", label %"$out_of_gas_997", label %"$have_gas_998" + +"$out_of_gas_997": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_998" + +"$have_gas_998": ; preds = %"$out_of_gas_997", %entry + %"$consume_999" = sub i64 %"$gasrem_995", 5 + store i64 %"$consume_999", i64* @_gasrem, align 8 %x_cast = alloca %"TName_Option_ByStr20_with_contract_field_f_:_Uint128,_field_g_:_Bool_end"*, align 8 - %"$execptr_load_972" = load i8*, i8** @_execptr, align 8 - %"$_dynamic_typecast_x_973" = alloca [20 x i8], align 1 - store [20 x i8] %x, [20 x i8]* %"$_dynamic_typecast_x_973", align 1 - %"$_dynamic_typecast_call_974" = call i8* @_dynamic_typecast(i8* %"$execptr_load_972", [20 x i8]* %"$_dynamic_typecast_x_973", %_TyDescrTy_Typ* @"$TyDescr_Addr_74"), !dbg !94 - %"$_dynamic_typecast_975" = bitcast i8* %"$_dynamic_typecast_call_974" to %"TName_Option_ByStr20_with_contract_field_f_:_Uint128,_field_g_:_Bool_end"* - store %"TName_Option_ByStr20_with_contract_field_f_:_Uint128,_field_g_:_Bool_end"* %"$_dynamic_typecast_975", %"TName_Option_ByStr20_with_contract_field_f_:_Uint128,_field_g_:_Bool_end"** %x_cast, align 8, !dbg !94 - %"$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_970" - call void @_out_of_gas() - br label %"$have_gas_979" - -"$have_gas_979": ; preds = %"$out_of_gas_978", %"$have_gas_970" - %"$consume_980" = sub i64 %"$gasrem_976", 2 - store i64 %"$consume_980", i64* @_gasrem, align 8 - %"$x_cast_982" = load %"TName_Option_ByStr20_with_contract_field_f_:_Uint128,_field_g_:_Bool_end"*, %"TName_Option_ByStr20_with_contract_field_f_:_Uint128,_field_g_:_Bool_end"** %x_cast, align 8 - %"$x_cast_tag_983" = getelementptr inbounds %"TName_Option_ByStr20_with_contract_field_f_:_Uint128,_field_g_:_Bool_end", %"TName_Option_ByStr20_with_contract_field_f_:_Uint128,_field_g_:_Bool_end"* %"$x_cast_982", i32 0, i32 0 - %"$x_cast_tag_984" = load i8, i8* %"$x_cast_tag_983", align 1 - switch i8 %"$x_cast_tag_984", label %"$empty_default_985" [ - i8 0, label %"$Some_986" - i8 1, label %"$None_1120" - ], !dbg !95 - -"$Some_986": ; preds = %"$have_gas_979" - %"$x_cast_987" = bitcast %"TName_Option_ByStr20_with_contract_field_f_:_Uint128,_field_g_:_Bool_end"* %"$x_cast_982" to %"CName_Some_ByStr20_with_contract_field_f_:_Uint128,_field_g_:_Bool_end"* - %"$x_as_address_gep_988" = getelementptr inbounds %"CName_Some_ByStr20_with_contract_field_f_:_Uint128,_field_g_:_Bool_end", %"CName_Some_ByStr20_with_contract_field_f_:_Uint128,_field_g_:_Bool_end"* %"$x_cast_987", i32 0, i32 1 - %"$x_as_address_load_989" = load [20 x i8], [20 x i8]* %"$x_as_address_gep_988", align 1 + call void @llvm.dbg.declare(metadata %"TName_Option_ByStr20_with_contract_field_f_:_Uint128,_field_g_:_Bool_end"** %x_cast, metadata !227, metadata !DIExpression()), !dbg !228 + %"$execptr_load_1000" = load i8*, i8** @_execptr, align 8 + %"$_dynamic_typecast_x_1001" = alloca [20 x i8], align 1 + store [20 x i8] %x, [20 x i8]* %"$_dynamic_typecast_x_1001", align 1 + %"$_dynamic_typecast_call_1002" = call i8* @_dynamic_typecast(i8* %"$execptr_load_1000", [20 x i8]* %"$_dynamic_typecast_x_1001", %_TyDescrTy_Typ* @"$TyDescr_Addr_74"), !dbg !228 + %"$_dynamic_typecast_1003" = bitcast i8* %"$_dynamic_typecast_call_1002" to %"TName_Option_ByStr20_with_contract_field_f_:_Uint128,_field_g_:_Bool_end"* + store %"TName_Option_ByStr20_with_contract_field_f_:_Uint128,_field_g_:_Bool_end"* %"$_dynamic_typecast_1003", %"TName_Option_ByStr20_with_contract_field_f_:_Uint128,_field_g_:_Bool_end"** %x_cast, align 8, !dbg !228 + %"$gasrem_1004" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1005" = icmp ugt i64 2, %"$gasrem_1004" + br i1 %"$gascmp_1005", label %"$out_of_gas_1006", label %"$have_gas_1007" + +"$out_of_gas_1006": ; preds = %"$have_gas_998" + call void @_out_of_gas() + br label %"$have_gas_1007" + +"$have_gas_1007": ; preds = %"$out_of_gas_1006", %"$have_gas_998" + %"$consume_1008" = sub i64 %"$gasrem_1004", 2 + store i64 %"$consume_1008", i64* @_gasrem, align 8 + %"$x_cast_1010" = load %"TName_Option_ByStr20_with_contract_field_f_:_Uint128,_field_g_:_Bool_end"*, %"TName_Option_ByStr20_with_contract_field_f_:_Uint128,_field_g_:_Bool_end"** %x_cast, align 8 + %"$x_cast_tag_1011" = getelementptr inbounds %"TName_Option_ByStr20_with_contract_field_f_:_Uint128,_field_g_:_Bool_end", %"TName_Option_ByStr20_with_contract_field_f_:_Uint128,_field_g_:_Bool_end"* %"$x_cast_1010", i32 0, i32 0 + %"$x_cast_tag_1012" = load i8, i8* %"$x_cast_tag_1011", align 1 + switch i8 %"$x_cast_tag_1012", label %"$empty_default_1013" [ + i8 0, label %"$Some_1014" + i8 1, label %"$None_1148" + ], !dbg !229 + +"$Some_1014": ; preds = %"$have_gas_1007" + %"$x_cast_1015" = bitcast %"TName_Option_ByStr20_with_contract_field_f_:_Uint128,_field_g_:_Bool_end"* %"$x_cast_1010" to %"CName_Some_ByStr20_with_contract_field_f_:_Uint128,_field_g_:_Bool_end"* + %"$x_as_address_gep_1016" = getelementptr inbounds %"CName_Some_ByStr20_with_contract_field_f_:_Uint128,_field_g_:_Bool_end", %"CName_Some_ByStr20_with_contract_field_f_:_Uint128,_field_g_:_Bool_end"* %"$x_cast_1015", i32 0, i32 1 + %"$x_as_address_load_1017" = load [20 x i8], [20 x i8]* %"$x_as_address_gep_1016", align 1 %x_as_address = alloca [20 x i8], align 1 - store [20 x i8] %"$x_as_address_load_989", [20 x i8]* %x_as_address, align 1 + store [20 x i8] %"$x_as_address_load_1017", [20 x i8]* %x_as_address, align 1 %bal = alloca %Uint128, align 8 - %"$execptr_load_991" = load i8*, i8** @_execptr, align 8 - %"$bal_x_as_address_992" = alloca [20 x i8], align 1 - %"$x_as_address_993" = load [20 x i8], [20 x i8]* %x_as_address, align 1 - store [20 x i8] %"$x_as_address_993", [20 x i8]* %"$bal_x_as_address_992", align 1 - %"$bal_call_994" = call i8* @_fetch_remote_field(i8* %"$execptr_load_991", [20 x i8]* %"$bal_x_as_address_992", i8* getelementptr inbounds ([9 x i8], [9 x i8]* @"$_balance_990", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Uint128_34", i32 0, i8* null, i32 1), !dbg !96 - %"$bal_995" = bitcast i8* %"$bal_call_994" to %Uint128* - %"$bal_996" = load %Uint128, %Uint128* %"$bal_995", align 8 - store %Uint128 %"$bal_996", %Uint128* %bal, align 8 - %"$_literal_cost_bal_997" = alloca %Uint128, align 8 - %"$bal_998" = load %Uint128, %Uint128* %bal, align 8 - store %Uint128 %"$bal_998", %Uint128* %"$_literal_cost_bal_997", align 8 - %"$$_literal_cost_bal_997_999" = bitcast %Uint128* %"$_literal_cost_bal_997" to i8* - %"$_literal_cost_call_1000" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Uint128_34", i8* %"$$_literal_cost_bal_997_999") - %"$gasadd_1001" = add i64 %"$_literal_cost_call_1000", 0 - %"$gasrem_1002" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1003" = icmp ugt i64 %"$gasadd_1001", %"$gasrem_1002" - br i1 %"$gascmp_1003", label %"$out_of_gas_1004", label %"$have_gas_1005" - -"$out_of_gas_1004": ; preds = %"$Some_986" - call void @_out_of_gas() - br label %"$have_gas_1005" - -"$have_gas_1005": ; preds = %"$out_of_gas_1004", %"$Some_986" - %"$consume_1006" = sub i64 %"$gasrem_1002", %"$gasadd_1001" - store i64 %"$consume_1006", i64* @_gasrem, align 8 - %"$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_1005" - call void @_out_of_gas() - br label %"$have_gas_1010" - -"$have_gas_1010": ; preds = %"$out_of_gas_1009", %"$have_gas_1005" - %"$consume_1011" = sub i64 %"$gasrem_1007", 1 - store i64 %"$consume_1011", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %Uint128* %bal, metadata !230, metadata !DIExpression()), !dbg !233 + %"$execptr_load_1019" = load i8*, i8** @_execptr, align 8 + %"$bal_x_as_address_1020" = alloca [20 x i8], align 1 + %"$x_as_address_1021" = load [20 x i8], [20 x i8]* %x_as_address, align 1 + store [20 x i8] %"$x_as_address_1021", [20 x i8]* %"$bal_x_as_address_1020", align 1 + %"$bal_call_1022" = call i8* @_fetch_remote_field(i8* %"$execptr_load_1019", [20 x i8]* %"$bal_x_as_address_1020", i8* getelementptr inbounds ([9 x i8], [9 x i8]* @"$_balance_1018", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Uint128_34", i32 0, i8* null, i32 1), !dbg !233 + %"$bal_1023" = bitcast i8* %"$bal_call_1022" to %Uint128* + %"$bal_1024" = load %Uint128, %Uint128* %"$bal_1023", align 8 + store %Uint128 %"$bal_1024", %Uint128* %bal, align 8 + %"$_literal_cost_bal_1025" = alloca %Uint128, align 8 + %"$bal_1026" = load %Uint128, %Uint128* %bal, align 8 + store %Uint128 %"$bal_1026", %Uint128* %"$_literal_cost_bal_1025", align 8 + %"$$_literal_cost_bal_1025_1027" = bitcast %Uint128* %"$_literal_cost_bal_1025" to i8* + %"$_literal_cost_call_1028" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Uint128_34", i8* %"$$_literal_cost_bal_1025_1027") + %"$gasadd_1029" = add i64 %"$_literal_cost_call_1028", 0 + %"$gasrem_1030" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1031" = icmp ugt i64 %"$gasadd_1029", %"$gasrem_1030" + br i1 %"$gascmp_1031", label %"$out_of_gas_1032", label %"$have_gas_1033" + +"$out_of_gas_1032": ; preds = %"$Some_1014" + call void @_out_of_gas() + br label %"$have_gas_1033" + +"$have_gas_1033": ; preds = %"$out_of_gas_1032", %"$Some_1014" + %"$consume_1034" = sub i64 %"$gasrem_1030", %"$gasadd_1029" + store i64 %"$consume_1034", i64* @_gasrem, align 8 + %"$gasrem_1035" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1036" = icmp ugt i64 1, %"$gasrem_1035" + br i1 %"$gascmp_1036", label %"$out_of_gas_1037", label %"$have_gas_1038" + +"$out_of_gas_1037": ; preds = %"$have_gas_1033" + call void @_out_of_gas() + br label %"$have_gas_1038" + +"$have_gas_1038": ; preds = %"$out_of_gas_1037", %"$have_gas_1033" + %"$consume_1039" = sub i64 %"$gasrem_1035", 1 + store i64 %"$consume_1039", i64* @_gasrem, align 8 %bal_res = alloca %TName_Option_Uint128*, 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 - %"$bal_1017" = load %Uint128, %Uint128* %bal, align 8 - %"$adtval_1018_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_1018_salloc" = call i8* @_salloc(i8* %"$adtval_1018_load", i64 17) - %"$adtval_1018" = bitcast i8* %"$adtval_1018_salloc" to %CName_Some_Uint128* - %"$adtgep_1019" = getelementptr inbounds %CName_Some_Uint128, %CName_Some_Uint128* %"$adtval_1018", i32 0, i32 0 - store i8 0, i8* %"$adtgep_1019", align 1 - %"$adtgep_1020" = getelementptr inbounds %CName_Some_Uint128, %CName_Some_Uint128* %"$adtval_1018", i32 0, i32 1 - store %Uint128 %"$bal_1017", %Uint128* %"$adtgep_1020", align 8 - %"$adtptr_1021" = bitcast %CName_Some_Uint128* %"$adtval_1018" to %TName_Option_Uint128* - store %TName_Option_Uint128* %"$adtptr_1021", %TName_Option_Uint128** %bal_res, align 8, !dbg !99 - %"$bal_res_1022" = load %TName_Option_Uint128*, %TName_Option_Uint128** %bal_res, align 8 - %"$$bal_res_1022_1023" = bitcast %TName_Option_Uint128* %"$bal_res_1022" to i8* - %"$_literal_cost_call_1024" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_Uint128_63", i8* %"$$bal_res_1022_1023") - %"$gasrem_1025" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1026" = icmp ugt i64 %"$_literal_cost_call_1024", %"$gasrem_1025" - br i1 %"$gascmp_1026", label %"$out_of_gas_1027", label %"$have_gas_1028" - -"$out_of_gas_1027": ; preds = %"$have_gas_1015" - call void @_out_of_gas() - br label %"$have_gas_1028" - -"$have_gas_1028": ; preds = %"$out_of_gas_1027", %"$have_gas_1015" - %"$consume_1029" = sub i64 %"$gasrem_1025", %"$_literal_cost_call_1024" - store i64 %"$consume_1029", i64* @_gasrem, align 8 - %"$execptr_load_1030" = load i8*, i8** @_execptr, align 8 - %"$bal_res_1032" = load %TName_Option_Uint128*, %TName_Option_Uint128** %bal_res, align 8 - %"$update_value_1033" = bitcast %TName_Option_Uint128* %"$bal_res_1032" to i8* - call void @_update_field(i8* %"$execptr_load_1030", i8* getelementptr inbounds ([17 x i8], [17 x i8]* @"$test_6_2_bal_res_1031", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_ADT_Option_Uint128_63", i32 0, i8* null, i8* %"$update_value_1033"), !dbg !100 + call void @llvm.dbg.declare(metadata %TName_Option_Uint128** %bal_res, metadata !234, metadata !DIExpression()), !dbg !235 + %"$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_1038" + call void @_out_of_gas() + br label %"$have_gas_1043" + +"$have_gas_1043": ; preds = %"$out_of_gas_1042", %"$have_gas_1038" + %"$consume_1044" = sub i64 %"$gasrem_1040", 1 + store i64 %"$consume_1044", i64* @_gasrem, align 8 + %"$bal_1045" = load %Uint128, %Uint128* %bal, align 8 + %"$adtval_1046_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_1046_salloc" = call i8* @_salloc(i8* %"$adtval_1046_load", i64 17) + %"$adtval_1046" = bitcast i8* %"$adtval_1046_salloc" to %CName_Some_Uint128* + %"$adtgep_1047" = getelementptr inbounds %CName_Some_Uint128, %CName_Some_Uint128* %"$adtval_1046", i32 0, i32 0 + store i8 0, i8* %"$adtgep_1047", align 1 + %"$adtgep_1048" = getelementptr inbounds %CName_Some_Uint128, %CName_Some_Uint128* %"$adtval_1046", i32 0, i32 1 + store %Uint128 %"$bal_1045", %Uint128* %"$adtgep_1048", align 8 + %"$adtptr_1049" = bitcast %CName_Some_Uint128* %"$adtval_1046" to %TName_Option_Uint128* + store %TName_Option_Uint128* %"$adtptr_1049", %TName_Option_Uint128** %bal_res, align 8, !dbg !236 + %"$bal_res_1050" = load %TName_Option_Uint128*, %TName_Option_Uint128** %bal_res, align 8 + %"$$bal_res_1050_1051" = bitcast %TName_Option_Uint128* %"$bal_res_1050" to i8* + %"$_literal_cost_call_1052" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_Uint128_63", i8* %"$$bal_res_1050_1051") + %"$gasrem_1053" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1054" = icmp ugt i64 %"$_literal_cost_call_1052", %"$gasrem_1053" + br i1 %"$gascmp_1054", label %"$out_of_gas_1055", label %"$have_gas_1056" + +"$out_of_gas_1055": ; preds = %"$have_gas_1043" + call void @_out_of_gas() + br label %"$have_gas_1056" + +"$have_gas_1056": ; preds = %"$out_of_gas_1055", %"$have_gas_1043" + %"$consume_1057" = sub i64 %"$gasrem_1053", %"$_literal_cost_call_1052" + store i64 %"$consume_1057", i64* @_gasrem, align 8 + %"$execptr_load_1058" = load i8*, i8** @_execptr, align 8 + %"$bal_res_1060" = load %TName_Option_Uint128*, %TName_Option_Uint128** %bal_res, align 8 + %"$update_value_1061" = bitcast %TName_Option_Uint128* %"$bal_res_1060" to i8* + call void @_update_field(i8* %"$execptr_load_1058", i8* getelementptr inbounds ([17 x i8], [17 x i8]* @"$test_6_2_bal_res_1059", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_ADT_Option_Uint128_63", i32 0, i8* null, i8* %"$update_value_1061"), !dbg !237 %f = alloca %Uint128, align 8 - %"$execptr_load_1035" = load i8*, i8** @_execptr, align 8 - %"$f_x_as_address_1036" = alloca [20 x i8], align 1 - %"$x_as_address_1037" = load [20 x i8], [20 x i8]* %x_as_address, align 1 - store [20 x i8] %"$x_as_address_1037", [20 x i8]* %"$f_x_as_address_1036", align 1 - %"$f_call_1038" = call i8* @_fetch_remote_field(i8* %"$execptr_load_1035", [20 x i8]* %"$f_x_as_address_1036", i8* getelementptr inbounds ([2 x i8], [2 x i8]* @"$f_1034", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Uint128_34", i32 0, i8* null, i32 1), !dbg !101 - %"$f_1039" = bitcast i8* %"$f_call_1038" to %Uint128* - %"$f_1040" = load %Uint128, %Uint128* %"$f_1039", align 8 - store %Uint128 %"$f_1040", %Uint128* %f, align 8 - %"$_literal_cost_f_1041" = alloca %Uint128, align 8 - %"$f_1042" = load %Uint128, %Uint128* %f, align 8 - store %Uint128 %"$f_1042", %Uint128* %"$_literal_cost_f_1041", align 8 - %"$$_literal_cost_f_1041_1043" = bitcast %Uint128* %"$_literal_cost_f_1041" to i8* - %"$_literal_cost_call_1044" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Uint128_34", i8* %"$$_literal_cost_f_1041_1043") - %"$gasadd_1045" = add i64 %"$_literal_cost_call_1044", 0 - %"$gasrem_1046" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1047" = icmp ugt i64 %"$gasadd_1045", %"$gasrem_1046" - br i1 %"$gascmp_1047", label %"$out_of_gas_1048", label %"$have_gas_1049" - -"$out_of_gas_1048": ; preds = %"$have_gas_1028" - call void @_out_of_gas() - br label %"$have_gas_1049" - -"$have_gas_1049": ; preds = %"$out_of_gas_1048", %"$have_gas_1028" - %"$consume_1050" = sub i64 %"$gasrem_1046", %"$gasadd_1045" - store i64 %"$consume_1050", i64* @_gasrem, 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 + call void @llvm.dbg.declare(metadata %Uint128* %f, metadata !238, metadata !DIExpression()), !dbg !239 + %"$execptr_load_1063" = load i8*, i8** @_execptr, align 8 + %"$f_x_as_address_1064" = alloca [20 x i8], align 1 + %"$x_as_address_1065" = load [20 x i8], [20 x i8]* %x_as_address, align 1 + store [20 x i8] %"$x_as_address_1065", [20 x i8]* %"$f_x_as_address_1064", align 1 + %"$f_call_1066" = call i8* @_fetch_remote_field(i8* %"$execptr_load_1063", [20 x i8]* %"$f_x_as_address_1064", i8* getelementptr inbounds ([2 x i8], [2 x i8]* @"$f_1062", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Uint128_34", i32 0, i8* null, i32 1), !dbg !239 + %"$f_1067" = bitcast i8* %"$f_call_1066" to %Uint128* + %"$f_1068" = load %Uint128, %Uint128* %"$f_1067", align 8 + store %Uint128 %"$f_1068", %Uint128* %f, align 8 + %"$_literal_cost_f_1069" = alloca %Uint128, align 8 + %"$f_1070" = load %Uint128, %Uint128* %f, align 8 + store %Uint128 %"$f_1070", %Uint128* %"$_literal_cost_f_1069", align 8 + %"$$_literal_cost_f_1069_1071" = bitcast %Uint128* %"$_literal_cost_f_1069" to i8* + %"$_literal_cost_call_1072" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Uint128_34", i8* %"$$_literal_cost_f_1069_1071") + %"$gasadd_1073" = add i64 %"$_literal_cost_call_1072", 0 + %"$gasrem_1074" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1075" = icmp ugt i64 %"$gasadd_1073", %"$gasrem_1074" + br i1 %"$gascmp_1075", label %"$out_of_gas_1076", label %"$have_gas_1077" + +"$out_of_gas_1076": ; preds = %"$have_gas_1056" + call void @_out_of_gas() + br label %"$have_gas_1077" + +"$have_gas_1077": ; preds = %"$out_of_gas_1076", %"$have_gas_1056" + %"$consume_1078" = sub i64 %"$gasrem_1074", %"$gasadd_1073" + store i64 %"$consume_1078", i64* @_gasrem, align 8 + %"$gasrem_1079" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1080" = icmp ugt i64 1, %"$gasrem_1079" + br i1 %"$gascmp_1080", label %"$out_of_gas_1081", label %"$have_gas_1082" + +"$out_of_gas_1081": ; preds = %"$have_gas_1077" + call void @_out_of_gas() + br label %"$have_gas_1082" + +"$have_gas_1082": ; preds = %"$out_of_gas_1081", %"$have_gas_1077" + %"$consume_1083" = sub i64 %"$gasrem_1079", 1 + store i64 %"$consume_1083", i64* @_gasrem, align 8 %f_res = alloca %TName_Option_Uint128*, align 8 - %"$gasrem_1056" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1057" = icmp ugt i64 1, %"$gasrem_1056" - br i1 %"$gascmp_1057", label %"$out_of_gas_1058", label %"$have_gas_1059" - -"$out_of_gas_1058": ; preds = %"$have_gas_1054" - call void @_out_of_gas() - br label %"$have_gas_1059" - -"$have_gas_1059": ; preds = %"$out_of_gas_1058", %"$have_gas_1054" - %"$consume_1060" = sub i64 %"$gasrem_1056", 1 - store i64 %"$consume_1060", i64* @_gasrem, align 8 - %"$f_1061" = load %Uint128, %Uint128* %f, align 8 - %"$adtval_1062_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_1062_salloc" = call i8* @_salloc(i8* %"$adtval_1062_load", i64 17) - %"$adtval_1062" = bitcast i8* %"$adtval_1062_salloc" to %CName_Some_Uint128* - %"$adtgep_1063" = getelementptr inbounds %CName_Some_Uint128, %CName_Some_Uint128* %"$adtval_1062", i32 0, i32 0 - store i8 0, i8* %"$adtgep_1063", align 1 - %"$adtgep_1064" = getelementptr inbounds %CName_Some_Uint128, %CName_Some_Uint128* %"$adtval_1062", i32 0, i32 1 - store %Uint128 %"$f_1061", %Uint128* %"$adtgep_1064", align 8 - %"$adtptr_1065" = bitcast %CName_Some_Uint128* %"$adtval_1062" to %TName_Option_Uint128* - store %TName_Option_Uint128* %"$adtptr_1065", %TName_Option_Uint128** %f_res, align 8, !dbg !102 - %"$f_res_1066" = load %TName_Option_Uint128*, %TName_Option_Uint128** %f_res, align 8 - %"$$f_res_1066_1067" = bitcast %TName_Option_Uint128* %"$f_res_1066" to i8* - %"$_literal_cost_call_1068" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_Uint128_63", i8* %"$$f_res_1066_1067") - %"$gasrem_1069" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1070" = icmp ugt i64 %"$_literal_cost_call_1068", %"$gasrem_1069" - br i1 %"$gascmp_1070", label %"$out_of_gas_1071", label %"$have_gas_1072" - -"$out_of_gas_1071": ; preds = %"$have_gas_1059" - call void @_out_of_gas() - br label %"$have_gas_1072" - -"$have_gas_1072": ; preds = %"$out_of_gas_1071", %"$have_gas_1059" - %"$consume_1073" = sub i64 %"$gasrem_1069", %"$_literal_cost_call_1068" - store i64 %"$consume_1073", i64* @_gasrem, align 8 - %"$execptr_load_1074" = load i8*, i8** @_execptr, align 8 - %"$f_res_1076" = load %TName_Option_Uint128*, %TName_Option_Uint128** %f_res, align 8 - %"$update_value_1077" = bitcast %TName_Option_Uint128* %"$f_res_1076" to i8* - call void @_update_field(i8* %"$execptr_load_1074", i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$test_6_2_f_res_1075", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_ADT_Option_Uint128_63", i32 0, i8* null, i8* %"$update_value_1077"), !dbg !103 + call void @llvm.dbg.declare(metadata %TName_Option_Uint128** %f_res, metadata !240, metadata !DIExpression()), !dbg !241 + %"$gasrem_1084" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1085" = icmp ugt i64 1, %"$gasrem_1084" + br i1 %"$gascmp_1085", label %"$out_of_gas_1086", label %"$have_gas_1087" + +"$out_of_gas_1086": ; preds = %"$have_gas_1082" + call void @_out_of_gas() + br label %"$have_gas_1087" + +"$have_gas_1087": ; preds = %"$out_of_gas_1086", %"$have_gas_1082" + %"$consume_1088" = sub i64 %"$gasrem_1084", 1 + store i64 %"$consume_1088", i64* @_gasrem, align 8 + %"$f_1089" = load %Uint128, %Uint128* %f, align 8 + %"$adtval_1090_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_1090_salloc" = call i8* @_salloc(i8* %"$adtval_1090_load", i64 17) + %"$adtval_1090" = bitcast i8* %"$adtval_1090_salloc" to %CName_Some_Uint128* + %"$adtgep_1091" = getelementptr inbounds %CName_Some_Uint128, %CName_Some_Uint128* %"$adtval_1090", i32 0, i32 0 + store i8 0, i8* %"$adtgep_1091", align 1 + %"$adtgep_1092" = getelementptr inbounds %CName_Some_Uint128, %CName_Some_Uint128* %"$adtval_1090", i32 0, i32 1 + store %Uint128 %"$f_1089", %Uint128* %"$adtgep_1092", align 8 + %"$adtptr_1093" = bitcast %CName_Some_Uint128* %"$adtval_1090" to %TName_Option_Uint128* + store %TName_Option_Uint128* %"$adtptr_1093", %TName_Option_Uint128** %f_res, align 8, !dbg !242 + %"$f_res_1094" = load %TName_Option_Uint128*, %TName_Option_Uint128** %f_res, align 8 + %"$$f_res_1094_1095" = bitcast %TName_Option_Uint128* %"$f_res_1094" to i8* + %"$_literal_cost_call_1096" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_Uint128_63", i8* %"$$f_res_1094_1095") + %"$gasrem_1097" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1098" = icmp ugt i64 %"$_literal_cost_call_1096", %"$gasrem_1097" + br i1 %"$gascmp_1098", label %"$out_of_gas_1099", label %"$have_gas_1100" + +"$out_of_gas_1099": ; preds = %"$have_gas_1087" + call void @_out_of_gas() + br label %"$have_gas_1100" + +"$have_gas_1100": ; preds = %"$out_of_gas_1099", %"$have_gas_1087" + %"$consume_1101" = sub i64 %"$gasrem_1097", %"$_literal_cost_call_1096" + store i64 %"$consume_1101", i64* @_gasrem, align 8 + %"$execptr_load_1102" = load i8*, i8** @_execptr, align 8 + %"$f_res_1104" = load %TName_Option_Uint128*, %TName_Option_Uint128** %f_res, align 8 + %"$update_value_1105" = bitcast %TName_Option_Uint128* %"$f_res_1104" to i8* + call void @_update_field(i8* %"$execptr_load_1102", i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$test_6_2_f_res_1103", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_ADT_Option_Uint128_63", i32 0, i8* null, i8* %"$update_value_1105"), !dbg !243 %g = alloca %TName_Bool*, align 8 - %"$execptr_load_1079" = load i8*, i8** @_execptr, align 8 - %"$g_x_as_address_1080" = alloca [20 x i8], align 1 - %"$x_as_address_1081" = load [20 x i8], [20 x i8]* %x_as_address, align 1 - store [20 x i8] %"$x_as_address_1081", [20 x i8]* %"$g_x_as_address_1080", align 1 - %"$g_call_1082" = call i8* @_fetch_remote_field(i8* %"$execptr_load_1079", [20 x i8]* %"$g_x_as_address_1080", i8* getelementptr inbounds ([2 x i8], [2 x i8]* @"$g_1078", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_66", i32 0, i8* null, i32 1), !dbg !104 - %"$g_1083" = bitcast i8* %"$g_call_1082" to %TName_Bool* - store %TName_Bool* %"$g_1083", %TName_Bool** %g, align 8 - %"$g_1084" = load %TName_Bool*, %TName_Bool** %g, align 8 - %"$$g_1084_1085" = bitcast %TName_Bool* %"$g_1084" to i8* - %"$_literal_cost_call_1086" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_66", i8* %"$$g_1084_1085") - %"$gasadd_1087" = add i64 %"$_literal_cost_call_1086", 0 - %"$gasrem_1088" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1089" = icmp ugt i64 %"$gasadd_1087", %"$gasrem_1088" - br i1 %"$gascmp_1089", label %"$out_of_gas_1090", label %"$have_gas_1091" - -"$out_of_gas_1090": ; preds = %"$have_gas_1072" - call void @_out_of_gas() - br label %"$have_gas_1091" - -"$have_gas_1091": ; preds = %"$out_of_gas_1090", %"$have_gas_1072" - %"$consume_1092" = sub i64 %"$gasrem_1088", %"$gasadd_1087" - store i64 %"$consume_1092", i64* @_gasrem, 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" - -"$out_of_gas_1095": ; preds = %"$have_gas_1091" - call void @_out_of_gas() - br label %"$have_gas_1096" - -"$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 + call void @llvm.dbg.declare(metadata %TName_Bool** %g, metadata !244, metadata !DIExpression()), !dbg !245 + %"$execptr_load_1107" = load i8*, i8** @_execptr, align 8 + %"$g_x_as_address_1108" = alloca [20 x i8], align 1 + %"$x_as_address_1109" = load [20 x i8], [20 x i8]* %x_as_address, align 1 + store [20 x i8] %"$x_as_address_1109", [20 x i8]* %"$g_x_as_address_1108", align 1 + %"$g_call_1110" = call i8* @_fetch_remote_field(i8* %"$execptr_load_1107", [20 x i8]* %"$g_x_as_address_1108", i8* getelementptr inbounds ([2 x i8], [2 x i8]* @"$g_1106", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_66", i32 0, i8* null, i32 1), !dbg !245 + %"$g_1111" = bitcast i8* %"$g_call_1110" to %TName_Bool* + store %TName_Bool* %"$g_1111", %TName_Bool** %g, align 8 + %"$g_1112" = load %TName_Bool*, %TName_Bool** %g, align 8 + %"$$g_1112_1113" = bitcast %TName_Bool* %"$g_1112" to i8* + %"$_literal_cost_call_1114" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_66", i8* %"$$g_1112_1113") + %"$gasadd_1115" = add i64 %"$_literal_cost_call_1114", 0 + %"$gasrem_1116" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1117" = icmp ugt i64 %"$gasadd_1115", %"$gasrem_1116" + br i1 %"$gascmp_1117", label %"$out_of_gas_1118", label %"$have_gas_1119" + +"$out_of_gas_1118": ; preds = %"$have_gas_1100" + call void @_out_of_gas() + br label %"$have_gas_1119" + +"$have_gas_1119": ; preds = %"$out_of_gas_1118", %"$have_gas_1100" + %"$consume_1120" = sub i64 %"$gasrem_1116", %"$gasadd_1115" + store i64 %"$consume_1120", i64* @_gasrem, align 8 + %"$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 = %"$have_gas_1119" + call void @_out_of_gas() + br label %"$have_gas_1124" + +"$have_gas_1124": ; preds = %"$out_of_gas_1123", %"$have_gas_1119" + %"$consume_1125" = sub i64 %"$gasrem_1121", 1 + store i64 %"$consume_1125", i64* @_gasrem, align 8 %g_res = alloca %TName_Option_Bool*, align 8 - %"$gasrem_1098" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1099" = icmp ugt i64 1, %"$gasrem_1098" - br i1 %"$gascmp_1099", label %"$out_of_gas_1100", label %"$have_gas_1101" - -"$out_of_gas_1100": ; preds = %"$have_gas_1096" - call void @_out_of_gas() - br label %"$have_gas_1101" - -"$have_gas_1101": ; preds = %"$out_of_gas_1100", %"$have_gas_1096" - %"$consume_1102" = sub i64 %"$gasrem_1098", 1 - store i64 %"$consume_1102", i64* @_gasrem, align 8 - %"$g_1103" = load %TName_Bool*, %TName_Bool** %g, align 8 - %"$adtval_1104_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_1104_salloc" = call i8* @_salloc(i8* %"$adtval_1104_load", i64 9) - %"$adtval_1104" = bitcast i8* %"$adtval_1104_salloc" to %CName_Some_Bool* - %"$adtgep_1105" = getelementptr inbounds %CName_Some_Bool, %CName_Some_Bool* %"$adtval_1104", i32 0, i32 0 - store i8 0, i8* %"$adtgep_1105", align 1 - %"$adtgep_1106" = getelementptr inbounds %CName_Some_Bool, %CName_Some_Bool* %"$adtval_1104", i32 0, i32 1 - store %TName_Bool* %"$g_1103", %TName_Bool** %"$adtgep_1106", align 8 - %"$adtptr_1107" = bitcast %CName_Some_Bool* %"$adtval_1104" to %TName_Option_Bool* - store %TName_Option_Bool* %"$adtptr_1107", %TName_Option_Bool** %g_res, align 8, !dbg !105 - %"$g_res_1108" = load %TName_Option_Bool*, %TName_Option_Bool** %g_res, align 8 - %"$$g_res_1108_1109" = bitcast %TName_Option_Bool* %"$g_res_1108" to i8* - %"$_literal_cost_call_1110" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_Bool_62", i8* %"$$g_res_1108_1109") - %"$gasrem_1111" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1112" = icmp ugt i64 %"$_literal_cost_call_1110", %"$gasrem_1111" - br i1 %"$gascmp_1112", label %"$out_of_gas_1113", label %"$have_gas_1114" - -"$out_of_gas_1113": ; preds = %"$have_gas_1101" - call void @_out_of_gas() - br label %"$have_gas_1114" - -"$have_gas_1114": ; preds = %"$out_of_gas_1113", %"$have_gas_1101" - %"$consume_1115" = sub i64 %"$gasrem_1111", %"$_literal_cost_call_1110" - store i64 %"$consume_1115", i64* @_gasrem, align 8 - %"$execptr_load_1116" = load i8*, i8** @_execptr, align 8 - %"$g_res_1118" = load %TName_Option_Bool*, %TName_Option_Bool** %g_res, align 8 - %"$update_value_1119" = bitcast %TName_Option_Bool* %"$g_res_1118" to i8* - call void @_update_field(i8* %"$execptr_load_1116", i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$test_6_2_g_res_1117", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_ADT_Option_Bool_62", i32 0, i8* null, i8* %"$update_value_1119"), !dbg !106 - br label %"$matchsucc_981" - -"$None_1120": ; preds = %"$have_gas_979" - %"$x_cast_1121" = bitcast %"TName_Option_ByStr20_with_contract_field_f_:_Uint128,_field_g_:_Bool_end"* %"$x_cast_982" to %"CName_None_ByStr20_with_contract_field_f_:_Uint128,_field_g_:_Bool_end"* - br label %"$matchsucc_981" - -"$empty_default_985": ; preds = %"$have_gas_979" - br label %"$matchsucc_981" - -"$matchsucc_981": ; preds = %"$None_1120", %"$have_gas_1114", %"$empty_default_985" + call void @llvm.dbg.declare(metadata %TName_Option_Bool** %g_res, metadata !246, metadata !DIExpression()), !dbg !247 + %"$gasrem_1126" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1127" = icmp ugt i64 1, %"$gasrem_1126" + br i1 %"$gascmp_1127", label %"$out_of_gas_1128", label %"$have_gas_1129" + +"$out_of_gas_1128": ; preds = %"$have_gas_1124" + call void @_out_of_gas() + br label %"$have_gas_1129" + +"$have_gas_1129": ; preds = %"$out_of_gas_1128", %"$have_gas_1124" + %"$consume_1130" = sub i64 %"$gasrem_1126", 1 + store i64 %"$consume_1130", i64* @_gasrem, align 8 + %"$g_1131" = load %TName_Bool*, %TName_Bool** %g, align 8 + %"$adtval_1132_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_1132_salloc" = call i8* @_salloc(i8* %"$adtval_1132_load", i64 9) + %"$adtval_1132" = bitcast i8* %"$adtval_1132_salloc" to %CName_Some_Bool* + %"$adtgep_1133" = getelementptr inbounds %CName_Some_Bool, %CName_Some_Bool* %"$adtval_1132", i32 0, i32 0 + store i8 0, i8* %"$adtgep_1133", align 1 + %"$adtgep_1134" = getelementptr inbounds %CName_Some_Bool, %CName_Some_Bool* %"$adtval_1132", i32 0, i32 1 + store %TName_Bool* %"$g_1131", %TName_Bool** %"$adtgep_1134", align 8 + %"$adtptr_1135" = bitcast %CName_Some_Bool* %"$adtval_1132" to %TName_Option_Bool* + store %TName_Option_Bool* %"$adtptr_1135", %TName_Option_Bool** %g_res, align 8, !dbg !248 + %"$g_res_1136" = load %TName_Option_Bool*, %TName_Option_Bool** %g_res, align 8 + %"$$g_res_1136_1137" = bitcast %TName_Option_Bool* %"$g_res_1136" to i8* + %"$_literal_cost_call_1138" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_Bool_62", i8* %"$$g_res_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_1129" + call void @_out_of_gas() + br label %"$have_gas_1142" + +"$have_gas_1142": ; preds = %"$out_of_gas_1141", %"$have_gas_1129" + %"$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 + %"$g_res_1146" = load %TName_Option_Bool*, %TName_Option_Bool** %g_res, align 8 + %"$update_value_1147" = bitcast %TName_Option_Bool* %"$g_res_1146" to i8* + call void @_update_field(i8* %"$execptr_load_1144", i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$test_6_2_g_res_1145", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_ADT_Option_Bool_62", i32 0, i8* null, i8* %"$update_value_1147"), !dbg !249 + br label %"$matchsucc_1009" + +"$None_1148": ; preds = %"$have_gas_1007" + %"$x_cast_1149" = bitcast %"TName_Option_ByStr20_with_contract_field_f_:_Uint128,_field_g_:_Bool_end"* %"$x_cast_1010" to %"CName_None_ByStr20_with_contract_field_f_:_Uint128,_field_g_:_Bool_end"* + br label %"$matchsucc_1009" + +"$empty_default_1013": ; preds = %"$have_gas_1007" + br label %"$matchsucc_1009" + +"$matchsucc_1009": ; preds = %"$None_1148", %"$have_gas_1142", %"$empty_default_1013" ret void } -define void @CastTest6_2(i8* %0) !dbg !107 { +define void @CastTest6_2(i8* %0) !dbg !250 { entry: - %"$_amount_1123" = getelementptr i8, i8* %0, i32 0 - %"$_amount_1124" = bitcast i8* %"$_amount_1123" to %Uint128* - %_amount = load %Uint128, %Uint128* %"$_amount_1124", align 8 - %"$_origin_1125" = getelementptr i8, i8* %0, i32 16 - %"$_origin_1126" = bitcast i8* %"$_origin_1125" to [20 x i8]* - %"$_sender_1127" = getelementptr i8, i8* %0, i32 36 - %"$_sender_1128" = bitcast i8* %"$_sender_1127" to [20 x i8]* - %"$x_1129" = getelementptr i8, i8* %0, i32 56 - %"$x_1130" = bitcast i8* %"$x_1129" to [20 x i8]* - call void @"$CastTest6_2_963"(%Uint128 %_amount, [20 x i8]* %"$_origin_1126", [20 x i8]* %"$_sender_1128", [20 x i8]* %"$x_1130"), !dbg !108 + %"$_amount_1155" = getelementptr i8, i8* %0, i32 0 + %"$_amount_1156" = bitcast i8* %"$_amount_1155" to %Uint128* + %_amount = load %Uint128, %Uint128* %"$_amount_1156", align 8 + %"$_origin_1157" = getelementptr i8, i8* %0, i32 16 + %"$_origin_1158" = bitcast i8* %"$_origin_1157" to [20 x i8]* + %"$_sender_1159" = getelementptr i8, i8* %0, i32 36 + %"$_sender_1160" = bitcast i8* %"$_sender_1159" to [20 x i8]* + %"$x_1161" = getelementptr i8, i8* %0, i32 56 + %"$x_1162" = bitcast i8* %"$x_1161" to [20 x i8]* + call void @"$CastTest6_2_991"(%Uint128 %_amount, [20 x i8]* %"$_origin_1158", [20 x i8]* %"$_sender_1160", [20 x i8]* %"$x_1162"), !dbg !251 ret void } -define internal void @"$CastTest6_3_1131"(%Uint128 %_amount, [20 x i8]* %"$_origin_1132", [20 x i8]* %"$_sender_1133", [20 x i8]* %"$x_1134") !dbg !109 { +define internal void @"$CastTest6_3_1163"(%Uint128 %_amount, [20 x i8]* %"$_origin_1164", [20 x i8]* %"$_sender_1165", [20 x i8]* %"$x_1166") !dbg !252 { entry: - %_origin = load [20 x i8], [20 x i8]* %"$_origin_1132", align 1 - %_sender = load [20 x i8], [20 x i8]* %"$_sender_1133", align 1 - %x = load [20 x i8], [20 x i8]* %"$x_1134", align 1 - %"$gasrem_1135" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1136" = icmp ugt i64 5, %"$gasrem_1135" - br i1 %"$gascmp_1136", label %"$out_of_gas_1137", label %"$have_gas_1138" - -"$out_of_gas_1137": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_1138" - -"$have_gas_1138": ; preds = %"$out_of_gas_1137", %entry - %"$consume_1139" = sub i64 %"$gasrem_1135", 5 - store i64 %"$consume_1139", i64* @_gasrem, align 8 + %"$x_1325" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$x_1166", [20 x i8]** %"$x_1325", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$x_1325", metadata !253, metadata !DIExpression()), !dbg !255 + %"$_sender_1324" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_sender_1165", [20 x i8]** %"$_sender_1324", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_sender_1324", metadata !256, metadata !DIExpression()), !dbg !257 + %"$_origin_1323" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_origin_1164", [20 x i8]** %"$_origin_1323", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_origin_1323", metadata !258, metadata !DIExpression()), !dbg !257 + %"$_amount_1322" = alloca %Uint128, align 8 + store %Uint128 %_amount, %Uint128* %"$_amount_1322", align 8 + call void @llvm.dbg.declare(metadata %Uint128* %"$_amount_1322", metadata !259, metadata !DIExpression()), !dbg !257 + %_origin = load [20 x i8], [20 x i8]* %"$_origin_1164", align 1 + %_sender = load [20 x i8], [20 x i8]* %"$_sender_1165", align 1 + %x = load [20 x i8], [20 x i8]* %"$x_1166", align 1 + %"$gasrem_1167" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1168" = icmp ugt i64 5, %"$gasrem_1167" + br i1 %"$gascmp_1168", label %"$out_of_gas_1169", label %"$have_gas_1170" + +"$out_of_gas_1169": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_1170" + +"$have_gas_1170": ; preds = %"$out_of_gas_1169", %entry + %"$consume_1171" = sub i64 %"$gasrem_1167", 5 + store i64 %"$consume_1171", i64* @_gasrem, align 8 %x_cast = alloca %"TName_Option_ByStr20_with_contract_field_f_:_Uint128,_field_g_:_Bool_end"*, align 8 - %"$execptr_load_1140" = load i8*, i8** @_execptr, align 8 - %"$_dynamic_typecast_x_1141" = alloca [20 x i8], align 1 - store [20 x i8] %x, [20 x i8]* %"$_dynamic_typecast_x_1141", align 1 - %"$_dynamic_typecast_call_1142" = call i8* @_dynamic_typecast(i8* %"$execptr_load_1140", [20 x i8]* %"$_dynamic_typecast_x_1141", %_TyDescrTy_Typ* @"$TyDescr_Addr_74"), !dbg !110 - %"$_dynamic_typecast_1143" = bitcast i8* %"$_dynamic_typecast_call_1142" to %"TName_Option_ByStr20_with_contract_field_f_:_Uint128,_field_g_:_Bool_end"* - store %"TName_Option_ByStr20_with_contract_field_f_:_Uint128,_field_g_:_Bool_end"* %"$_dynamic_typecast_1143", %"TName_Option_ByStr20_with_contract_field_f_:_Uint128,_field_g_:_Bool_end"** %x_cast, align 8, !dbg !110 - %"$gasrem_1144" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1145" = icmp ugt i64 2, %"$gasrem_1144" - br i1 %"$gascmp_1145", label %"$out_of_gas_1146", label %"$have_gas_1147" - -"$out_of_gas_1146": ; preds = %"$have_gas_1138" - call void @_out_of_gas() - br label %"$have_gas_1147" - -"$have_gas_1147": ; preds = %"$out_of_gas_1146", %"$have_gas_1138" - %"$consume_1148" = sub i64 %"$gasrem_1144", 2 - store i64 %"$consume_1148", i64* @_gasrem, align 8 - %"$x_cast_1150" = load %"TName_Option_ByStr20_with_contract_field_f_:_Uint128,_field_g_:_Bool_end"*, %"TName_Option_ByStr20_with_contract_field_f_:_Uint128,_field_g_:_Bool_end"** %x_cast, align 8 - %"$x_cast_tag_1151" = getelementptr inbounds %"TName_Option_ByStr20_with_contract_field_f_:_Uint128,_field_g_:_Bool_end", %"TName_Option_ByStr20_with_contract_field_f_:_Uint128,_field_g_:_Bool_end"* %"$x_cast_1150", i32 0, i32 0 - %"$x_cast_tag_1152" = load i8, i8* %"$x_cast_tag_1151", align 1 - switch i8 %"$x_cast_tag_1152", label %"$empty_default_1153" [ - i8 0, label %"$Some_1154" - i8 1, label %"$None_1288" - ], !dbg !111 - -"$Some_1154": ; preds = %"$have_gas_1147" - %"$x_cast_1155" = bitcast %"TName_Option_ByStr20_with_contract_field_f_:_Uint128,_field_g_:_Bool_end"* %"$x_cast_1150" to %"CName_Some_ByStr20_with_contract_field_f_:_Uint128,_field_g_:_Bool_end"* - %"$x_as_address_gep_1156" = getelementptr inbounds %"CName_Some_ByStr20_with_contract_field_f_:_Uint128,_field_g_:_Bool_end", %"CName_Some_ByStr20_with_contract_field_f_:_Uint128,_field_g_:_Bool_end"* %"$x_cast_1155", i32 0, i32 1 - %"$x_as_address_load_1157" = load [20 x i8], [20 x i8]* %"$x_as_address_gep_1156", align 1 + call void @llvm.dbg.declare(metadata %"TName_Option_ByStr20_with_contract_field_f_:_Uint128,_field_g_:_Bool_end"** %x_cast, metadata !260, metadata !DIExpression()), !dbg !261 + %"$execptr_load_1172" = load i8*, i8** @_execptr, align 8 + %"$_dynamic_typecast_x_1173" = alloca [20 x i8], align 1 + store [20 x i8] %x, [20 x i8]* %"$_dynamic_typecast_x_1173", align 1 + %"$_dynamic_typecast_call_1174" = call i8* @_dynamic_typecast(i8* %"$execptr_load_1172", [20 x i8]* %"$_dynamic_typecast_x_1173", %_TyDescrTy_Typ* @"$TyDescr_Addr_74"), !dbg !261 + %"$_dynamic_typecast_1175" = bitcast i8* %"$_dynamic_typecast_call_1174" to %"TName_Option_ByStr20_with_contract_field_f_:_Uint128,_field_g_:_Bool_end"* + store %"TName_Option_ByStr20_with_contract_field_f_:_Uint128,_field_g_:_Bool_end"* %"$_dynamic_typecast_1175", %"TName_Option_ByStr20_with_contract_field_f_:_Uint128,_field_g_:_Bool_end"** %x_cast, align 8, !dbg !261 + %"$gasrem_1176" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1177" = icmp ugt i64 2, %"$gasrem_1176" + br i1 %"$gascmp_1177", label %"$out_of_gas_1178", label %"$have_gas_1179" + +"$out_of_gas_1178": ; preds = %"$have_gas_1170" + call void @_out_of_gas() + br label %"$have_gas_1179" + +"$have_gas_1179": ; preds = %"$out_of_gas_1178", %"$have_gas_1170" + %"$consume_1180" = sub i64 %"$gasrem_1176", 2 + store i64 %"$consume_1180", i64* @_gasrem, align 8 + %"$x_cast_1182" = load %"TName_Option_ByStr20_with_contract_field_f_:_Uint128,_field_g_:_Bool_end"*, %"TName_Option_ByStr20_with_contract_field_f_:_Uint128,_field_g_:_Bool_end"** %x_cast, align 8 + %"$x_cast_tag_1183" = getelementptr inbounds %"TName_Option_ByStr20_with_contract_field_f_:_Uint128,_field_g_:_Bool_end", %"TName_Option_ByStr20_with_contract_field_f_:_Uint128,_field_g_:_Bool_end"* %"$x_cast_1182", i32 0, i32 0 + %"$x_cast_tag_1184" = load i8, i8* %"$x_cast_tag_1183", align 1 + switch i8 %"$x_cast_tag_1184", label %"$empty_default_1185" [ + i8 0, label %"$Some_1186" + i8 1, label %"$None_1320" + ], !dbg !262 + +"$Some_1186": ; preds = %"$have_gas_1179" + %"$x_cast_1187" = bitcast %"TName_Option_ByStr20_with_contract_field_f_:_Uint128,_field_g_:_Bool_end"* %"$x_cast_1182" to %"CName_Some_ByStr20_with_contract_field_f_:_Uint128,_field_g_:_Bool_end"* + %"$x_as_address_gep_1188" = getelementptr inbounds %"CName_Some_ByStr20_with_contract_field_f_:_Uint128,_field_g_:_Bool_end", %"CName_Some_ByStr20_with_contract_field_f_:_Uint128,_field_g_:_Bool_end"* %"$x_cast_1187", i32 0, i32 1 + %"$x_as_address_load_1189" = load [20 x i8], [20 x i8]* %"$x_as_address_gep_1188", align 1 %x_as_address = alloca [20 x i8], align 1 - store [20 x i8] %"$x_as_address_load_1157", [20 x i8]* %x_as_address, align 1 + store [20 x i8] %"$x_as_address_load_1189", [20 x i8]* %x_as_address, align 1 %bal = alloca %Uint128, align 8 - %"$execptr_load_1159" = load i8*, i8** @_execptr, align 8 - %"$bal_x_as_address_1160" = alloca [20 x i8], align 1 - %"$x_as_address_1161" = load [20 x i8], [20 x i8]* %x_as_address, align 1 - store [20 x i8] %"$x_as_address_1161", [20 x i8]* %"$bal_x_as_address_1160", align 1 - %"$bal_call_1162" = call i8* @_fetch_remote_field(i8* %"$execptr_load_1159", [20 x i8]* %"$bal_x_as_address_1160", i8* getelementptr inbounds ([9 x i8], [9 x i8]* @"$_balance_1158", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Uint128_34", i32 0, i8* null, i32 1), !dbg !112 - %"$bal_1163" = bitcast i8* %"$bal_call_1162" to %Uint128* - %"$bal_1164" = load %Uint128, %Uint128* %"$bal_1163", align 8 - store %Uint128 %"$bal_1164", %Uint128* %bal, align 8 - %"$_literal_cost_bal_1165" = alloca %Uint128, align 8 - %"$bal_1166" = load %Uint128, %Uint128* %bal, align 8 - store %Uint128 %"$bal_1166", %Uint128* %"$_literal_cost_bal_1165", align 8 - %"$$_literal_cost_bal_1165_1167" = bitcast %Uint128* %"$_literal_cost_bal_1165" to i8* - %"$_literal_cost_call_1168" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Uint128_34", i8* %"$$_literal_cost_bal_1165_1167") - %"$gasadd_1169" = add i64 %"$_literal_cost_call_1168", 0 - %"$gasrem_1170" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1171" = icmp ugt i64 %"$gasadd_1169", %"$gasrem_1170" - br i1 %"$gascmp_1171", label %"$out_of_gas_1172", label %"$have_gas_1173" - -"$out_of_gas_1172": ; preds = %"$Some_1154" - call void @_out_of_gas() - br label %"$have_gas_1173" - -"$have_gas_1173": ; preds = %"$out_of_gas_1172", %"$Some_1154" - %"$consume_1174" = sub i64 %"$gasrem_1170", %"$gasadd_1169" - store i64 %"$consume_1174", i64* @_gasrem, align 8 - %"$gasrem_1175" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1176" = icmp ugt i64 1, %"$gasrem_1175" - br i1 %"$gascmp_1176", label %"$out_of_gas_1177", label %"$have_gas_1178" - -"$out_of_gas_1177": ; preds = %"$have_gas_1173" - call void @_out_of_gas() - br label %"$have_gas_1178" - -"$have_gas_1178": ; preds = %"$out_of_gas_1177", %"$have_gas_1173" - %"$consume_1179" = sub i64 %"$gasrem_1175", 1 - store i64 %"$consume_1179", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %Uint128* %bal, metadata !263, metadata !DIExpression()), !dbg !266 + %"$execptr_load_1191" = load i8*, i8** @_execptr, align 8 + %"$bal_x_as_address_1192" = alloca [20 x i8], align 1 + %"$x_as_address_1193" = load [20 x i8], [20 x i8]* %x_as_address, align 1 + store [20 x i8] %"$x_as_address_1193", [20 x i8]* %"$bal_x_as_address_1192", align 1 + %"$bal_call_1194" = call i8* @_fetch_remote_field(i8* %"$execptr_load_1191", [20 x i8]* %"$bal_x_as_address_1192", i8* getelementptr inbounds ([9 x i8], [9 x i8]* @"$_balance_1190", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Uint128_34", i32 0, i8* null, i32 1), !dbg !266 + %"$bal_1195" = bitcast i8* %"$bal_call_1194" to %Uint128* + %"$bal_1196" = load %Uint128, %Uint128* %"$bal_1195", align 8 + store %Uint128 %"$bal_1196", %Uint128* %bal, align 8 + %"$_literal_cost_bal_1197" = alloca %Uint128, align 8 + %"$bal_1198" = load %Uint128, %Uint128* %bal, align 8 + store %Uint128 %"$bal_1198", %Uint128* %"$_literal_cost_bal_1197", align 8 + %"$$_literal_cost_bal_1197_1199" = bitcast %Uint128* %"$_literal_cost_bal_1197" to i8* + %"$_literal_cost_call_1200" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Uint128_34", i8* %"$$_literal_cost_bal_1197_1199") + %"$gasadd_1201" = add i64 %"$_literal_cost_call_1200", 0 + %"$gasrem_1202" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1203" = icmp ugt i64 %"$gasadd_1201", %"$gasrem_1202" + br i1 %"$gascmp_1203", label %"$out_of_gas_1204", label %"$have_gas_1205" + +"$out_of_gas_1204": ; preds = %"$Some_1186" + call void @_out_of_gas() + br label %"$have_gas_1205" + +"$have_gas_1205": ; preds = %"$out_of_gas_1204", %"$Some_1186" + %"$consume_1206" = sub i64 %"$gasrem_1202", %"$gasadd_1201" + store i64 %"$consume_1206", i64* @_gasrem, align 8 + %"$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_1209": ; preds = %"$have_gas_1205" + call void @_out_of_gas() + br label %"$have_gas_1210" + +"$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 %bal_res = alloca %TName_Option_Uint128*, align 8 - %"$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_1182": ; preds = %"$have_gas_1178" - call void @_out_of_gas() - br label %"$have_gas_1183" - -"$have_gas_1183": ; preds = %"$out_of_gas_1182", %"$have_gas_1178" - %"$consume_1184" = sub i64 %"$gasrem_1180", 1 - store i64 %"$consume_1184", i64* @_gasrem, align 8 - %"$bal_1185" = load %Uint128, %Uint128* %bal, align 8 - %"$adtval_1186_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_1186_salloc" = call i8* @_salloc(i8* %"$adtval_1186_load", i64 17) - %"$adtval_1186" = bitcast i8* %"$adtval_1186_salloc" to %CName_Some_Uint128* - %"$adtgep_1187" = getelementptr inbounds %CName_Some_Uint128, %CName_Some_Uint128* %"$adtval_1186", i32 0, i32 0 - store i8 0, i8* %"$adtgep_1187", align 1 - %"$adtgep_1188" = getelementptr inbounds %CName_Some_Uint128, %CName_Some_Uint128* %"$adtval_1186", i32 0, i32 1 - store %Uint128 %"$bal_1185", %Uint128* %"$adtgep_1188", align 8 - %"$adtptr_1189" = bitcast %CName_Some_Uint128* %"$adtval_1186" to %TName_Option_Uint128* - store %TName_Option_Uint128* %"$adtptr_1189", %TName_Option_Uint128** %bal_res, align 8, !dbg !115 - %"$bal_res_1190" = load %TName_Option_Uint128*, %TName_Option_Uint128** %bal_res, align 8 - %"$$bal_res_1190_1191" = bitcast %TName_Option_Uint128* %"$bal_res_1190" to i8* - %"$_literal_cost_call_1192" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_Uint128_63", i8* %"$$bal_res_1190_1191") - %"$gasrem_1193" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1194" = icmp ugt i64 %"$_literal_cost_call_1192", %"$gasrem_1193" - br i1 %"$gascmp_1194", label %"$out_of_gas_1195", label %"$have_gas_1196" - -"$out_of_gas_1195": ; preds = %"$have_gas_1183" - call void @_out_of_gas() - br label %"$have_gas_1196" - -"$have_gas_1196": ; preds = %"$out_of_gas_1195", %"$have_gas_1183" - %"$consume_1197" = sub i64 %"$gasrem_1193", %"$_literal_cost_call_1192" - store i64 %"$consume_1197", i64* @_gasrem, align 8 - %"$execptr_load_1198" = load i8*, i8** @_execptr, align 8 - %"$bal_res_1200" = load %TName_Option_Uint128*, %TName_Option_Uint128** %bal_res, align 8 - %"$update_value_1201" = bitcast %TName_Option_Uint128* %"$bal_res_1200" to i8* - call void @_update_field(i8* %"$execptr_load_1198", i8* getelementptr inbounds ([17 x i8], [17 x i8]* @"$test_6_3_bal_res_1199", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_ADT_Option_Uint128_63", i32 0, i8* null, i8* %"$update_value_1201"), !dbg !116 + call void @llvm.dbg.declare(metadata %TName_Option_Uint128** %bal_res, metadata !267, metadata !DIExpression()), !dbg !268 + %"$gasrem_1212" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1213" = icmp ugt i64 1, %"$gasrem_1212" + br i1 %"$gascmp_1213", label %"$out_of_gas_1214", label %"$have_gas_1215" + +"$out_of_gas_1214": ; preds = %"$have_gas_1210" + call void @_out_of_gas() + br label %"$have_gas_1215" + +"$have_gas_1215": ; preds = %"$out_of_gas_1214", %"$have_gas_1210" + %"$consume_1216" = sub i64 %"$gasrem_1212", 1 + store i64 %"$consume_1216", i64* @_gasrem, align 8 + %"$bal_1217" = load %Uint128, %Uint128* %bal, align 8 + %"$adtval_1218_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_1218_salloc" = call i8* @_salloc(i8* %"$adtval_1218_load", i64 17) + %"$adtval_1218" = bitcast i8* %"$adtval_1218_salloc" to %CName_Some_Uint128* + %"$adtgep_1219" = getelementptr inbounds %CName_Some_Uint128, %CName_Some_Uint128* %"$adtval_1218", i32 0, i32 0 + store i8 0, i8* %"$adtgep_1219", align 1 + %"$adtgep_1220" = getelementptr inbounds %CName_Some_Uint128, %CName_Some_Uint128* %"$adtval_1218", i32 0, i32 1 + store %Uint128 %"$bal_1217", %Uint128* %"$adtgep_1220", align 8 + %"$adtptr_1221" = bitcast %CName_Some_Uint128* %"$adtval_1218" to %TName_Option_Uint128* + store %TName_Option_Uint128* %"$adtptr_1221", %TName_Option_Uint128** %bal_res, align 8, !dbg !269 + %"$bal_res_1222" = load %TName_Option_Uint128*, %TName_Option_Uint128** %bal_res, align 8 + %"$$bal_res_1222_1223" = bitcast %TName_Option_Uint128* %"$bal_res_1222" to i8* + %"$_literal_cost_call_1224" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_Uint128_63", i8* %"$$bal_res_1222_1223") + %"$gasrem_1225" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1226" = icmp ugt i64 %"$_literal_cost_call_1224", %"$gasrem_1225" + br i1 %"$gascmp_1226", label %"$out_of_gas_1227", label %"$have_gas_1228" + +"$out_of_gas_1227": ; preds = %"$have_gas_1215" + call void @_out_of_gas() + br label %"$have_gas_1228" + +"$have_gas_1228": ; preds = %"$out_of_gas_1227", %"$have_gas_1215" + %"$consume_1229" = sub i64 %"$gasrem_1225", %"$_literal_cost_call_1224" + store i64 %"$consume_1229", i64* @_gasrem, align 8 + %"$execptr_load_1230" = load i8*, i8** @_execptr, align 8 + %"$bal_res_1232" = load %TName_Option_Uint128*, %TName_Option_Uint128** %bal_res, align 8 + %"$update_value_1233" = bitcast %TName_Option_Uint128* %"$bal_res_1232" to i8* + call void @_update_field(i8* %"$execptr_load_1230", i8* getelementptr inbounds ([17 x i8], [17 x i8]* @"$test_6_3_bal_res_1231", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_ADT_Option_Uint128_63", i32 0, i8* null, i8* %"$update_value_1233"), !dbg !270 %f = alloca %Uint128, align 8 - %"$execptr_load_1203" = load i8*, i8** @_execptr, align 8 - %"$f_x_as_address_1204" = alloca [20 x i8], align 1 - %"$x_as_address_1205" = load [20 x i8], [20 x i8]* %x_as_address, align 1 - store [20 x i8] %"$x_as_address_1205", [20 x i8]* %"$f_x_as_address_1204", align 1 - %"$f_call_1206" = call i8* @_fetch_remote_field(i8* %"$execptr_load_1203", [20 x i8]* %"$f_x_as_address_1204", i8* getelementptr inbounds ([2 x i8], [2 x i8]* @"$f_1202", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Uint128_34", i32 0, i8* null, i32 1), !dbg !117 - %"$f_1207" = bitcast i8* %"$f_call_1206" to %Uint128* - %"$f_1208" = load %Uint128, %Uint128* %"$f_1207", align 8 - store %Uint128 %"$f_1208", %Uint128* %f, align 8 - %"$_literal_cost_f_1209" = alloca %Uint128, align 8 - %"$f_1210" = load %Uint128, %Uint128* %f, align 8 - store %Uint128 %"$f_1210", %Uint128* %"$_literal_cost_f_1209", align 8 - %"$$_literal_cost_f_1209_1211" = bitcast %Uint128* %"$_literal_cost_f_1209" to i8* - %"$_literal_cost_call_1212" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Uint128_34", i8* %"$$_literal_cost_f_1209_1211") - %"$gasadd_1213" = add i64 %"$_literal_cost_call_1212", 0 - %"$gasrem_1214" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1215" = icmp ugt i64 %"$gasadd_1213", %"$gasrem_1214" - br i1 %"$gascmp_1215", label %"$out_of_gas_1216", label %"$have_gas_1217" - -"$out_of_gas_1216": ; preds = %"$have_gas_1196" - call void @_out_of_gas() - br label %"$have_gas_1217" - -"$have_gas_1217": ; preds = %"$out_of_gas_1216", %"$have_gas_1196" - %"$consume_1218" = sub i64 %"$gasrem_1214", %"$gasadd_1213" - store i64 %"$consume_1218", i64* @_gasrem, 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" - -"$out_of_gas_1221": ; preds = %"$have_gas_1217" - call void @_out_of_gas() - br label %"$have_gas_1222" - -"$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 + call void @llvm.dbg.declare(metadata %Uint128* %f, metadata !271, metadata !DIExpression()), !dbg !272 + %"$execptr_load_1235" = load i8*, i8** @_execptr, align 8 + %"$f_x_as_address_1236" = alloca [20 x i8], align 1 + %"$x_as_address_1237" = load [20 x i8], [20 x i8]* %x_as_address, align 1 + store [20 x i8] %"$x_as_address_1237", [20 x i8]* %"$f_x_as_address_1236", align 1 + %"$f_call_1238" = call i8* @_fetch_remote_field(i8* %"$execptr_load_1235", [20 x i8]* %"$f_x_as_address_1236", i8* getelementptr inbounds ([2 x i8], [2 x i8]* @"$f_1234", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Uint128_34", i32 0, i8* null, i32 1), !dbg !272 + %"$f_1239" = bitcast i8* %"$f_call_1238" to %Uint128* + %"$f_1240" = load %Uint128, %Uint128* %"$f_1239", align 8 + store %Uint128 %"$f_1240", %Uint128* %f, align 8 + %"$_literal_cost_f_1241" = alloca %Uint128, align 8 + %"$f_1242" = load %Uint128, %Uint128* %f, align 8 + store %Uint128 %"$f_1242", %Uint128* %"$_literal_cost_f_1241", align 8 + %"$$_literal_cost_f_1241_1243" = bitcast %Uint128* %"$_literal_cost_f_1241" to i8* + %"$_literal_cost_call_1244" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Uint128_34", i8* %"$$_literal_cost_f_1241_1243") + %"$gasadd_1245" = add i64 %"$_literal_cost_call_1244", 0 + %"$gasrem_1246" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1247" = icmp ugt i64 %"$gasadd_1245", %"$gasrem_1246" + br i1 %"$gascmp_1247", label %"$out_of_gas_1248", label %"$have_gas_1249" + +"$out_of_gas_1248": ; preds = %"$have_gas_1228" + call void @_out_of_gas() + br label %"$have_gas_1249" + +"$have_gas_1249": ; preds = %"$out_of_gas_1248", %"$have_gas_1228" + %"$consume_1250" = sub i64 %"$gasrem_1246", %"$gasadd_1245" + store i64 %"$consume_1250", i64* @_gasrem, align 8 + %"$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_1253": ; preds = %"$have_gas_1249" + call void @_out_of_gas() + br label %"$have_gas_1254" + +"$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 %f_res = alloca %TName_Option_Uint128*, align 8 - %"$gasrem_1224" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1225" = icmp ugt i64 1, %"$gasrem_1224" - br i1 %"$gascmp_1225", label %"$out_of_gas_1226", label %"$have_gas_1227" - -"$out_of_gas_1226": ; preds = %"$have_gas_1222" - call void @_out_of_gas() - br label %"$have_gas_1227" - -"$have_gas_1227": ; preds = %"$out_of_gas_1226", %"$have_gas_1222" - %"$consume_1228" = sub i64 %"$gasrem_1224", 1 - store i64 %"$consume_1228", i64* @_gasrem, align 8 - %"$f_1229" = load %Uint128, %Uint128* %f, align 8 - %"$adtval_1230_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_1230_salloc" = call i8* @_salloc(i8* %"$adtval_1230_load", i64 17) - %"$adtval_1230" = bitcast i8* %"$adtval_1230_salloc" to %CName_Some_Uint128* - %"$adtgep_1231" = getelementptr inbounds %CName_Some_Uint128, %CName_Some_Uint128* %"$adtval_1230", i32 0, i32 0 - store i8 0, i8* %"$adtgep_1231", align 1 - %"$adtgep_1232" = getelementptr inbounds %CName_Some_Uint128, %CName_Some_Uint128* %"$adtval_1230", i32 0, i32 1 - store %Uint128 %"$f_1229", %Uint128* %"$adtgep_1232", align 8 - %"$adtptr_1233" = bitcast %CName_Some_Uint128* %"$adtval_1230" to %TName_Option_Uint128* - store %TName_Option_Uint128* %"$adtptr_1233", %TName_Option_Uint128** %f_res, align 8, !dbg !118 - %"$f_res_1234" = load %TName_Option_Uint128*, %TName_Option_Uint128** %f_res, align 8 - %"$$f_res_1234_1235" = bitcast %TName_Option_Uint128* %"$f_res_1234" to i8* - %"$_literal_cost_call_1236" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_Uint128_63", i8* %"$$f_res_1234_1235") - %"$gasrem_1237" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1238" = icmp ugt i64 %"$_literal_cost_call_1236", %"$gasrem_1237" - br i1 %"$gascmp_1238", label %"$out_of_gas_1239", label %"$have_gas_1240" - -"$out_of_gas_1239": ; preds = %"$have_gas_1227" - call void @_out_of_gas() - br label %"$have_gas_1240" - -"$have_gas_1240": ; preds = %"$out_of_gas_1239", %"$have_gas_1227" - %"$consume_1241" = sub i64 %"$gasrem_1237", %"$_literal_cost_call_1236" - store i64 %"$consume_1241", i64* @_gasrem, align 8 - %"$execptr_load_1242" = load i8*, i8** @_execptr, align 8 - %"$f_res_1244" = load %TName_Option_Uint128*, %TName_Option_Uint128** %f_res, align 8 - %"$update_value_1245" = bitcast %TName_Option_Uint128* %"$f_res_1244" to i8* - call void @_update_field(i8* %"$execptr_load_1242", i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$test_6_3_f_res_1243", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_ADT_Option_Uint128_63", i32 0, i8* null, i8* %"$update_value_1245"), !dbg !119 - %g = alloca %TName_Bool*, align 8 - %"$execptr_load_1247" = load i8*, i8** @_execptr, align 8 - %"$g_x_as_address_1248" = alloca [20 x i8], align 1 - %"$x_as_address_1249" = load [20 x i8], [20 x i8]* %x_as_address, align 1 - store [20 x i8] %"$x_as_address_1249", [20 x i8]* %"$g_x_as_address_1248", align 1 - %"$g_call_1250" = call i8* @_fetch_remote_field(i8* %"$execptr_load_1247", [20 x i8]* %"$g_x_as_address_1248", i8* getelementptr inbounds ([2 x i8], [2 x i8]* @"$g_1246", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_66", i32 0, i8* null, i32 1), !dbg !120 - %"$g_1251" = bitcast i8* %"$g_call_1250" to %TName_Bool* - store %TName_Bool* %"$g_1251", %TName_Bool** %g, align 8 - %"$g_1252" = load %TName_Bool*, %TName_Bool** %g, align 8 - %"$$g_1252_1253" = bitcast %TName_Bool* %"$g_1252" to i8* - %"$_literal_cost_call_1254" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_66", i8* %"$$g_1252_1253") - %"$gasadd_1255" = add i64 %"$_literal_cost_call_1254", 0 + call void @llvm.dbg.declare(metadata %TName_Option_Uint128** %f_res, metadata !273, metadata !DIExpression()), !dbg !274 %"$gasrem_1256" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1257" = icmp ugt i64 %"$gasadd_1255", %"$gasrem_1256" + %"$gascmp_1257" = icmp ugt i64 1, %"$gasrem_1256" br i1 %"$gascmp_1257", label %"$out_of_gas_1258", label %"$have_gas_1259" -"$out_of_gas_1258": ; preds = %"$have_gas_1240" +"$out_of_gas_1258": ; preds = %"$have_gas_1254" call void @_out_of_gas() br label %"$have_gas_1259" -"$have_gas_1259": ; preds = %"$out_of_gas_1258", %"$have_gas_1240" - %"$consume_1260" = sub i64 %"$gasrem_1256", %"$gasadd_1255" +"$have_gas_1259": ; preds = %"$out_of_gas_1258", %"$have_gas_1254" + %"$consume_1260" = sub i64 %"$gasrem_1256", 1 store i64 %"$consume_1260", i64* @_gasrem, align 8 - %"$gasrem_1261" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1262" = icmp ugt i64 1, %"$gasrem_1261" - br i1 %"$gascmp_1262", label %"$out_of_gas_1263", label %"$have_gas_1264" - -"$out_of_gas_1263": ; preds = %"$have_gas_1259" - call void @_out_of_gas() - br label %"$have_gas_1264" - -"$have_gas_1264": ; preds = %"$out_of_gas_1263", %"$have_gas_1259" - %"$consume_1265" = sub i64 %"$gasrem_1261", 1 - store i64 %"$consume_1265", i64* @_gasrem, align 8 + %"$f_1261" = load %Uint128, %Uint128* %f, align 8 + %"$adtval_1262_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_1262_salloc" = call i8* @_salloc(i8* %"$adtval_1262_load", i64 17) + %"$adtval_1262" = bitcast i8* %"$adtval_1262_salloc" to %CName_Some_Uint128* + %"$adtgep_1263" = getelementptr inbounds %CName_Some_Uint128, %CName_Some_Uint128* %"$adtval_1262", i32 0, i32 0 + store i8 0, i8* %"$adtgep_1263", align 1 + %"$adtgep_1264" = getelementptr inbounds %CName_Some_Uint128, %CName_Some_Uint128* %"$adtval_1262", i32 0, i32 1 + store %Uint128 %"$f_1261", %Uint128* %"$adtgep_1264", align 8 + %"$adtptr_1265" = bitcast %CName_Some_Uint128* %"$adtval_1262" to %TName_Option_Uint128* + store %TName_Option_Uint128* %"$adtptr_1265", %TName_Option_Uint128** %f_res, align 8, !dbg !275 + %"$f_res_1266" = load %TName_Option_Uint128*, %TName_Option_Uint128** %f_res, align 8 + %"$$f_res_1266_1267" = bitcast %TName_Option_Uint128* %"$f_res_1266" to i8* + %"$_literal_cost_call_1268" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_Uint128_63", i8* %"$$f_res_1266_1267") + %"$gasrem_1269" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1270" = icmp ugt i64 %"$_literal_cost_call_1268", %"$gasrem_1269" + br i1 %"$gascmp_1270", label %"$out_of_gas_1271", label %"$have_gas_1272" + +"$out_of_gas_1271": ; preds = %"$have_gas_1259" + call void @_out_of_gas() + br label %"$have_gas_1272" + +"$have_gas_1272": ; preds = %"$out_of_gas_1271", %"$have_gas_1259" + %"$consume_1273" = sub i64 %"$gasrem_1269", %"$_literal_cost_call_1268" + store i64 %"$consume_1273", i64* @_gasrem, align 8 + %"$execptr_load_1274" = load i8*, i8** @_execptr, align 8 + %"$f_res_1276" = load %TName_Option_Uint128*, %TName_Option_Uint128** %f_res, align 8 + %"$update_value_1277" = bitcast %TName_Option_Uint128* %"$f_res_1276" to i8* + call void @_update_field(i8* %"$execptr_load_1274", i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$test_6_3_f_res_1275", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_ADT_Option_Uint128_63", i32 0, i8* null, i8* %"$update_value_1277"), !dbg !276 + %g = alloca %TName_Bool*, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %g, metadata !277, metadata !DIExpression()), !dbg !278 + %"$execptr_load_1279" = load i8*, i8** @_execptr, align 8 + %"$g_x_as_address_1280" = alloca [20 x i8], align 1 + %"$x_as_address_1281" = load [20 x i8], [20 x i8]* %x_as_address, align 1 + store [20 x i8] %"$x_as_address_1281", [20 x i8]* %"$g_x_as_address_1280", align 1 + %"$g_call_1282" = call i8* @_fetch_remote_field(i8* %"$execptr_load_1279", [20 x i8]* %"$g_x_as_address_1280", i8* getelementptr inbounds ([2 x i8], [2 x i8]* @"$g_1278", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_66", i32 0, i8* null, i32 1), !dbg !278 + %"$g_1283" = bitcast i8* %"$g_call_1282" to %TName_Bool* + store %TName_Bool* %"$g_1283", %TName_Bool** %g, align 8 + %"$g_1284" = load %TName_Bool*, %TName_Bool** %g, align 8 + %"$$g_1284_1285" = bitcast %TName_Bool* %"$g_1284" to i8* + %"$_literal_cost_call_1286" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_66", i8* %"$$g_1284_1285") + %"$gasadd_1287" = add i64 %"$_literal_cost_call_1286", 0 + %"$gasrem_1288" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1289" = icmp ugt i64 %"$gasadd_1287", %"$gasrem_1288" + br i1 %"$gascmp_1289", label %"$out_of_gas_1290", label %"$have_gas_1291" + +"$out_of_gas_1290": ; preds = %"$have_gas_1272" + call void @_out_of_gas() + br label %"$have_gas_1291" + +"$have_gas_1291": ; preds = %"$out_of_gas_1290", %"$have_gas_1272" + %"$consume_1292" = sub i64 %"$gasrem_1288", %"$gasadd_1287" + store i64 %"$consume_1292", i64* @_gasrem, 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 = %"$have_gas_1291" + call void @_out_of_gas() + br label %"$have_gas_1296" + +"$have_gas_1296": ; preds = %"$out_of_gas_1295", %"$have_gas_1291" + %"$consume_1297" = sub i64 %"$gasrem_1293", 1 + store i64 %"$consume_1297", i64* @_gasrem, align 8 %g_res = alloca %TName_Option_Bool*, align 8 - %"$gasrem_1266" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1267" = icmp ugt i64 1, %"$gasrem_1266" - br i1 %"$gascmp_1267", label %"$out_of_gas_1268", label %"$have_gas_1269" - -"$out_of_gas_1268": ; preds = %"$have_gas_1264" - call void @_out_of_gas() - br label %"$have_gas_1269" - -"$have_gas_1269": ; preds = %"$out_of_gas_1268", %"$have_gas_1264" - %"$consume_1270" = sub i64 %"$gasrem_1266", 1 - store i64 %"$consume_1270", i64* @_gasrem, align 8 - %"$g_1271" = load %TName_Bool*, %TName_Bool** %g, align 8 - %"$adtval_1272_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_1272_salloc" = call i8* @_salloc(i8* %"$adtval_1272_load", i64 9) - %"$adtval_1272" = bitcast i8* %"$adtval_1272_salloc" to %CName_Some_Bool* - %"$adtgep_1273" = getelementptr inbounds %CName_Some_Bool, %CName_Some_Bool* %"$adtval_1272", i32 0, i32 0 - store i8 0, i8* %"$adtgep_1273", align 1 - %"$adtgep_1274" = getelementptr inbounds %CName_Some_Bool, %CName_Some_Bool* %"$adtval_1272", i32 0, i32 1 - store %TName_Bool* %"$g_1271", %TName_Bool** %"$adtgep_1274", align 8 - %"$adtptr_1275" = bitcast %CName_Some_Bool* %"$adtval_1272" to %TName_Option_Bool* - store %TName_Option_Bool* %"$adtptr_1275", %TName_Option_Bool** %g_res, align 8, !dbg !121 - %"$g_res_1276" = load %TName_Option_Bool*, %TName_Option_Bool** %g_res, align 8 - %"$$g_res_1276_1277" = bitcast %TName_Option_Bool* %"$g_res_1276" to i8* - %"$_literal_cost_call_1278" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_Bool_62", i8* %"$$g_res_1276_1277") - %"$gasrem_1279" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1280" = icmp ugt i64 %"$_literal_cost_call_1278", %"$gasrem_1279" - br i1 %"$gascmp_1280", label %"$out_of_gas_1281", label %"$have_gas_1282" - -"$out_of_gas_1281": ; preds = %"$have_gas_1269" - call void @_out_of_gas() - br label %"$have_gas_1282" - -"$have_gas_1282": ; preds = %"$out_of_gas_1281", %"$have_gas_1269" - %"$consume_1283" = sub i64 %"$gasrem_1279", %"$_literal_cost_call_1278" - store i64 %"$consume_1283", i64* @_gasrem, align 8 - %"$execptr_load_1284" = load i8*, i8** @_execptr, align 8 - %"$g_res_1286" = load %TName_Option_Bool*, %TName_Option_Bool** %g_res, align 8 - %"$update_value_1287" = bitcast %TName_Option_Bool* %"$g_res_1286" to i8* - call void @_update_field(i8* %"$execptr_load_1284", i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$test_6_3_g_res_1285", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_ADT_Option_Bool_62", i32 0, i8* null, i8* %"$update_value_1287"), !dbg !122 - br label %"$matchsucc_1149" - -"$None_1288": ; preds = %"$have_gas_1147" - %"$x_cast_1289" = bitcast %"TName_Option_ByStr20_with_contract_field_f_:_Uint128,_field_g_:_Bool_end"* %"$x_cast_1150" to %"CName_None_ByStr20_with_contract_field_f_:_Uint128,_field_g_:_Bool_end"* - br label %"$matchsucc_1149" - -"$empty_default_1153": ; preds = %"$have_gas_1147" - br label %"$matchsucc_1149" - -"$matchsucc_1149": ; preds = %"$None_1288", %"$have_gas_1282", %"$empty_default_1153" + call void @llvm.dbg.declare(metadata %TName_Option_Bool** %g_res, metadata !279, metadata !DIExpression()), !dbg !280 + %"$gasrem_1298" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1299" = icmp ugt i64 1, %"$gasrem_1298" + br i1 %"$gascmp_1299", label %"$out_of_gas_1300", label %"$have_gas_1301" + +"$out_of_gas_1300": ; preds = %"$have_gas_1296" + call void @_out_of_gas() + br label %"$have_gas_1301" + +"$have_gas_1301": ; preds = %"$out_of_gas_1300", %"$have_gas_1296" + %"$consume_1302" = sub i64 %"$gasrem_1298", 1 + store i64 %"$consume_1302", i64* @_gasrem, align 8 + %"$g_1303" = load %TName_Bool*, %TName_Bool** %g, align 8 + %"$adtval_1304_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_1304_salloc" = call i8* @_salloc(i8* %"$adtval_1304_load", i64 9) + %"$adtval_1304" = bitcast i8* %"$adtval_1304_salloc" to %CName_Some_Bool* + %"$adtgep_1305" = getelementptr inbounds %CName_Some_Bool, %CName_Some_Bool* %"$adtval_1304", i32 0, i32 0 + store i8 0, i8* %"$adtgep_1305", align 1 + %"$adtgep_1306" = getelementptr inbounds %CName_Some_Bool, %CName_Some_Bool* %"$adtval_1304", i32 0, i32 1 + store %TName_Bool* %"$g_1303", %TName_Bool** %"$adtgep_1306", align 8 + %"$adtptr_1307" = bitcast %CName_Some_Bool* %"$adtval_1304" to %TName_Option_Bool* + store %TName_Option_Bool* %"$adtptr_1307", %TName_Option_Bool** %g_res, align 8, !dbg !281 + %"$g_res_1308" = load %TName_Option_Bool*, %TName_Option_Bool** %g_res, align 8 + %"$$g_res_1308_1309" = bitcast %TName_Option_Bool* %"$g_res_1308" to i8* + %"$_literal_cost_call_1310" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_Bool_62", i8* %"$$g_res_1308_1309") + %"$gasrem_1311" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1312" = icmp ugt i64 %"$_literal_cost_call_1310", %"$gasrem_1311" + br i1 %"$gascmp_1312", label %"$out_of_gas_1313", label %"$have_gas_1314" + +"$out_of_gas_1313": ; preds = %"$have_gas_1301" + call void @_out_of_gas() + br label %"$have_gas_1314" + +"$have_gas_1314": ; preds = %"$out_of_gas_1313", %"$have_gas_1301" + %"$consume_1315" = sub i64 %"$gasrem_1311", %"$_literal_cost_call_1310" + store i64 %"$consume_1315", i64* @_gasrem, align 8 + %"$execptr_load_1316" = load i8*, i8** @_execptr, align 8 + %"$g_res_1318" = load %TName_Option_Bool*, %TName_Option_Bool** %g_res, align 8 + %"$update_value_1319" = bitcast %TName_Option_Bool* %"$g_res_1318" to i8* + call void @_update_field(i8* %"$execptr_load_1316", i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$test_6_3_g_res_1317", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_ADT_Option_Bool_62", i32 0, i8* null, i8* %"$update_value_1319"), !dbg !282 + br label %"$matchsucc_1181" + +"$None_1320": ; preds = %"$have_gas_1179" + %"$x_cast_1321" = bitcast %"TName_Option_ByStr20_with_contract_field_f_:_Uint128,_field_g_:_Bool_end"* %"$x_cast_1182" to %"CName_None_ByStr20_with_contract_field_f_:_Uint128,_field_g_:_Bool_end"* + br label %"$matchsucc_1181" + +"$empty_default_1185": ; preds = %"$have_gas_1179" + br label %"$matchsucc_1181" + +"$matchsucc_1181": ; preds = %"$None_1320", %"$have_gas_1314", %"$empty_default_1185" ret void } -define void @CastTest6_3(i8* %0) !dbg !123 { +define void @CastTest6_3(i8* %0) !dbg !283 { entry: - %"$_amount_1291" = getelementptr i8, i8* %0, i32 0 - %"$_amount_1292" = bitcast i8* %"$_amount_1291" to %Uint128* - %_amount = load %Uint128, %Uint128* %"$_amount_1292", align 8 - %"$_origin_1293" = getelementptr i8, i8* %0, i32 16 - %"$_origin_1294" = bitcast i8* %"$_origin_1293" to [20 x i8]* - %"$_sender_1295" = getelementptr i8, i8* %0, i32 36 - %"$_sender_1296" = bitcast i8* %"$_sender_1295" to [20 x i8]* - %"$x_1297" = getelementptr i8, i8* %0, i32 56 - %"$x_1298" = bitcast i8* %"$x_1297" to [20 x i8]* - call void @"$CastTest6_3_1131"(%Uint128 %_amount, [20 x i8]* %"$_origin_1294", [20 x i8]* %"$_sender_1296", [20 x i8]* %"$x_1298"), !dbg !124 + %"$_amount_1327" = getelementptr i8, i8* %0, i32 0 + %"$_amount_1328" = bitcast i8* %"$_amount_1327" to %Uint128* + %_amount = load %Uint128, %Uint128* %"$_amount_1328", align 8 + %"$_origin_1329" = getelementptr i8, i8* %0, i32 16 + %"$_origin_1330" = bitcast i8* %"$_origin_1329" to [20 x i8]* + %"$_sender_1331" = getelementptr i8, i8* %0, i32 36 + %"$_sender_1332" = bitcast i8* %"$_sender_1331" to [20 x i8]* + %"$x_1333" = getelementptr i8, i8* %0, i32 56 + %"$x_1334" = bitcast i8* %"$x_1333" to [20 x i8]* + call void @"$CastTest6_3_1163"(%Uint128 %_amount, [20 x i8]* %"$_origin_1330", [20 x i8]* %"$_sender_1332", [20 x i8]* %"$x_1334"), !dbg !284 ret void } -define internal void @"$CastTest6_4_1299"(%Uint128 %_amount, [20 x i8]* %"$_origin_1300", [20 x i8]* %"$_sender_1301", [20 x i8]* %"$x_1302") !dbg !125 { +define internal void @"$CastTest6_4_1335"(%Uint128 %_amount, [20 x i8]* %"$_origin_1336", [20 x i8]* %"$_sender_1337", [20 x i8]* %"$x_1338") !dbg !285 { entry: - %_origin = load [20 x i8], [20 x i8]* %"$_origin_1300", align 1 - %_sender = load [20 x i8], [20 x i8]* %"$_sender_1301", align 1 - %x = load [20 x i8], [20 x i8]* %"$x_1302", align 1 - %"$gasrem_1303" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1304" = icmp ugt i64 5, %"$gasrem_1303" - br i1 %"$gascmp_1304", label %"$out_of_gas_1305", label %"$have_gas_1306" - -"$out_of_gas_1305": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_1306" - -"$have_gas_1306": ; preds = %"$out_of_gas_1305", %entry - %"$consume_1307" = sub i64 %"$gasrem_1303", 5 - store i64 %"$consume_1307", i64* @_gasrem, align 8 + %"$x_1522" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$x_1338", [20 x i8]** %"$x_1522", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$x_1522", metadata !286, metadata !DIExpression()), !dbg !288 + %"$_sender_1521" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_sender_1337", [20 x i8]** %"$_sender_1521", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_sender_1521", metadata !289, metadata !DIExpression()), !dbg !290 + %"$_origin_1520" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_origin_1336", [20 x i8]** %"$_origin_1520", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_origin_1520", metadata !291, metadata !DIExpression()), !dbg !290 + %"$_amount_1519" = alloca %Uint128, align 8 + store %Uint128 %_amount, %Uint128* %"$_amount_1519", align 8 + call void @llvm.dbg.declare(metadata %Uint128* %"$_amount_1519", metadata !292, metadata !DIExpression()), !dbg !290 + %_origin = load [20 x i8], [20 x i8]* %"$_origin_1336", align 1 + %_sender = load [20 x i8], [20 x i8]* %"$_sender_1337", align 1 + %x = load [20 x i8], [20 x i8]* %"$x_1338", align 1 + %"$gasrem_1339" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1340" = icmp ugt i64 5, %"$gasrem_1339" + br i1 %"$gascmp_1340", label %"$out_of_gas_1341", label %"$have_gas_1342" + +"$out_of_gas_1341": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_1342" + +"$have_gas_1342": ; preds = %"$out_of_gas_1341", %entry + %"$consume_1343" = sub i64 %"$gasrem_1339", 5 + store i64 %"$consume_1343", i64* @_gasrem, align 8 %x_cast = alloca %"TName_Option_ByStr20_with_contract_field_f_:_Uint128,_field_g_:_Bool_end"*, align 8 - %"$execptr_load_1308" = load i8*, i8** @_execptr, align 8 - %"$_dynamic_typecast_x_1309" = alloca [20 x i8], align 1 - store [20 x i8] %x, [20 x i8]* %"$_dynamic_typecast_x_1309", align 1 - %"$_dynamic_typecast_call_1310" = call i8* @_dynamic_typecast(i8* %"$execptr_load_1308", [20 x i8]* %"$_dynamic_typecast_x_1309", %_TyDescrTy_Typ* @"$TyDescr_Addr_74"), !dbg !126 - %"$_dynamic_typecast_1311" = bitcast i8* %"$_dynamic_typecast_call_1310" to %"TName_Option_ByStr20_with_contract_field_f_:_Uint128,_field_g_:_Bool_end"* - store %"TName_Option_ByStr20_with_contract_field_f_:_Uint128,_field_g_:_Bool_end"* %"$_dynamic_typecast_1311", %"TName_Option_ByStr20_with_contract_field_f_:_Uint128,_field_g_:_Bool_end"** %x_cast, align 8, !dbg !126 - %"$gasrem_1312" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1313" = icmp ugt i64 2, %"$gasrem_1312" - br i1 %"$gascmp_1313", label %"$out_of_gas_1314", label %"$have_gas_1315" - -"$out_of_gas_1314": ; preds = %"$have_gas_1306" - call void @_out_of_gas() - br label %"$have_gas_1315" - -"$have_gas_1315": ; preds = %"$out_of_gas_1314", %"$have_gas_1306" - %"$consume_1316" = sub i64 %"$gasrem_1312", 2 - store i64 %"$consume_1316", i64* @_gasrem, align 8 - %"$x_cast_1318" = load %"TName_Option_ByStr20_with_contract_field_f_:_Uint128,_field_g_:_Bool_end"*, %"TName_Option_ByStr20_with_contract_field_f_:_Uint128,_field_g_:_Bool_end"** %x_cast, align 8 - %"$x_cast_tag_1319" = getelementptr inbounds %"TName_Option_ByStr20_with_contract_field_f_:_Uint128,_field_g_:_Bool_end", %"TName_Option_ByStr20_with_contract_field_f_:_Uint128,_field_g_:_Bool_end"* %"$x_cast_1318", i32 0, i32 0 - %"$x_cast_tag_1320" = load i8, i8* %"$x_cast_tag_1319", align 1 - switch i8 %"$x_cast_tag_1320", label %"$empty_default_1321" [ - i8 0, label %"$Some_1322" - i8 1, label %"$None_1456" - ], !dbg !127 - -"$Some_1322": ; preds = %"$have_gas_1315" - %"$x_cast_1323" = bitcast %"TName_Option_ByStr20_with_contract_field_f_:_Uint128,_field_g_:_Bool_end"* %"$x_cast_1318" to %"CName_Some_ByStr20_with_contract_field_f_:_Uint128,_field_g_:_Bool_end"* - %"$x_as_address_gep_1324" = getelementptr inbounds %"CName_Some_ByStr20_with_contract_field_f_:_Uint128,_field_g_:_Bool_end", %"CName_Some_ByStr20_with_contract_field_f_:_Uint128,_field_g_:_Bool_end"* %"$x_cast_1323", i32 0, i32 1 - %"$x_as_address_load_1325" = load [20 x i8], [20 x i8]* %"$x_as_address_gep_1324", align 1 - %x_as_address = alloca [20 x i8], align 1 - store [20 x i8] %"$x_as_address_load_1325", [20 x i8]* %x_as_address, align 1 - %bal = alloca %Uint128, align 8 - %"$execptr_load_1327" = load i8*, i8** @_execptr, align 8 - %"$bal_x_as_address_1328" = alloca [20 x i8], align 1 - %"$x_as_address_1329" = load [20 x i8], [20 x i8]* %x_as_address, align 1 - store [20 x i8] %"$x_as_address_1329", [20 x i8]* %"$bal_x_as_address_1328", align 1 - %"$bal_call_1330" = call i8* @_fetch_remote_field(i8* %"$execptr_load_1327", [20 x i8]* %"$bal_x_as_address_1328", i8* getelementptr inbounds ([9 x i8], [9 x i8]* @"$_balance_1326", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Uint128_34", i32 0, i8* null, i32 1), !dbg !128 - %"$bal_1331" = bitcast i8* %"$bal_call_1330" to %Uint128* - %"$bal_1332" = load %Uint128, %Uint128* %"$bal_1331", align 8 - store %Uint128 %"$bal_1332", %Uint128* %bal, align 8 - %"$_literal_cost_bal_1333" = alloca %Uint128, align 8 - %"$bal_1334" = load %Uint128, %Uint128* %bal, align 8 - store %Uint128 %"$bal_1334", %Uint128* %"$_literal_cost_bal_1333", align 8 - %"$$_literal_cost_bal_1333_1335" = bitcast %Uint128* %"$_literal_cost_bal_1333" to i8* - %"$_literal_cost_call_1336" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Uint128_34", i8* %"$$_literal_cost_bal_1333_1335") - %"$gasadd_1337" = add i64 %"$_literal_cost_call_1336", 0 - %"$gasrem_1338" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1339" = icmp ugt i64 %"$gasadd_1337", %"$gasrem_1338" - br i1 %"$gascmp_1339", label %"$out_of_gas_1340", label %"$have_gas_1341" - -"$out_of_gas_1340": ; preds = %"$Some_1322" - call void @_out_of_gas() - br label %"$have_gas_1341" - -"$have_gas_1341": ; preds = %"$out_of_gas_1340", %"$Some_1322" - %"$consume_1342" = sub i64 %"$gasrem_1338", %"$gasadd_1337" - store i64 %"$consume_1342", i64* @_gasrem, 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_1341" - call void @_out_of_gas() - br label %"$have_gas_1346" - -"$have_gas_1346": ; preds = %"$out_of_gas_1345", %"$have_gas_1341" - %"$consume_1347" = sub i64 %"$gasrem_1343", 1 - store i64 %"$consume_1347", i64* @_gasrem, align 8 - %bal_res = alloca %TName_Option_Uint128*, align 8 + call void @llvm.dbg.declare(metadata %"TName_Option_ByStr20_with_contract_field_f_:_Uint128,_field_g_:_Bool_end"** %x_cast, metadata !293, metadata !DIExpression()), !dbg !294 + %"$execptr_load_1344" = load i8*, i8** @_execptr, align 8 + %"$_dynamic_typecast_x_1345" = alloca [20 x i8], align 1 + store [20 x i8] %x, [20 x i8]* %"$_dynamic_typecast_x_1345", align 1 + %"$_dynamic_typecast_call_1346" = call i8* @_dynamic_typecast(i8* %"$execptr_load_1344", [20 x i8]* %"$_dynamic_typecast_x_1345", %_TyDescrTy_Typ* @"$TyDescr_Addr_74"), !dbg !294 + %"$_dynamic_typecast_1347" = bitcast i8* %"$_dynamic_typecast_call_1346" to %"TName_Option_ByStr20_with_contract_field_f_:_Uint128,_field_g_:_Bool_end"* + store %"TName_Option_ByStr20_with_contract_field_f_:_Uint128,_field_g_:_Bool_end"* %"$_dynamic_typecast_1347", %"TName_Option_ByStr20_with_contract_field_f_:_Uint128,_field_g_:_Bool_end"** %x_cast, align 8, !dbg !294 %"$gasrem_1348" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1349" = icmp ugt i64 1, %"$gasrem_1348" + %"$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_1346" +"$out_of_gas_1350": ; preds = %"$have_gas_1342" 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 +"$have_gas_1351": ; preds = %"$out_of_gas_1350", %"$have_gas_1342" + %"$consume_1352" = sub i64 %"$gasrem_1348", 2 store i64 %"$consume_1352", i64* @_gasrem, align 8 - %"$bal_1353" = load %Uint128, %Uint128* %bal, align 8 - %"$adtval_1354_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_1354_salloc" = call i8* @_salloc(i8* %"$adtval_1354_load", i64 17) - %"$adtval_1354" = bitcast i8* %"$adtval_1354_salloc" to %CName_Some_Uint128* - %"$adtgep_1355" = getelementptr inbounds %CName_Some_Uint128, %CName_Some_Uint128* %"$adtval_1354", i32 0, i32 0 - store i8 0, i8* %"$adtgep_1355", align 1 - %"$adtgep_1356" = getelementptr inbounds %CName_Some_Uint128, %CName_Some_Uint128* %"$adtval_1354", i32 0, i32 1 - store %Uint128 %"$bal_1353", %Uint128* %"$adtgep_1356", align 8 - %"$adtptr_1357" = bitcast %CName_Some_Uint128* %"$adtval_1354" to %TName_Option_Uint128* - store %TName_Option_Uint128* %"$adtptr_1357", %TName_Option_Uint128** %bal_res, align 8, !dbg !131 - %"$bal_res_1358" = load %TName_Option_Uint128*, %TName_Option_Uint128** %bal_res, align 8 - %"$$bal_res_1358_1359" = bitcast %TName_Option_Uint128* %"$bal_res_1358" to i8* - %"$_literal_cost_call_1360" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_Uint128_63", i8* %"$$bal_res_1358_1359") - %"$gasrem_1361" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1362" = icmp ugt i64 %"$_literal_cost_call_1360", %"$gasrem_1361" - br i1 %"$gascmp_1362", label %"$out_of_gas_1363", label %"$have_gas_1364" - -"$out_of_gas_1363": ; preds = %"$have_gas_1351" - call void @_out_of_gas() - br label %"$have_gas_1364" - -"$have_gas_1364": ; preds = %"$out_of_gas_1363", %"$have_gas_1351" - %"$consume_1365" = sub i64 %"$gasrem_1361", %"$_literal_cost_call_1360" - store i64 %"$consume_1365", i64* @_gasrem, align 8 - %"$execptr_load_1366" = load i8*, i8** @_execptr, align 8 - %"$bal_res_1368" = load %TName_Option_Uint128*, %TName_Option_Uint128** %bal_res, align 8 - %"$update_value_1369" = bitcast %TName_Option_Uint128* %"$bal_res_1368" to i8* - call void @_update_field(i8* %"$execptr_load_1366", i8* getelementptr inbounds ([17 x i8], [17 x i8]* @"$test_6_4_bal_res_1367", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_ADT_Option_Uint128_63", i32 0, i8* null, i8* %"$update_value_1369"), !dbg !132 + %"$x_cast_1354" = load %"TName_Option_ByStr20_with_contract_field_f_:_Uint128,_field_g_:_Bool_end"*, %"TName_Option_ByStr20_with_contract_field_f_:_Uint128,_field_g_:_Bool_end"** %x_cast, align 8 + %"$x_cast_tag_1355" = getelementptr inbounds %"TName_Option_ByStr20_with_contract_field_f_:_Uint128,_field_g_:_Bool_end", %"TName_Option_ByStr20_with_contract_field_f_:_Uint128,_field_g_:_Bool_end"* %"$x_cast_1354", i32 0, i32 0 + %"$x_cast_tag_1356" = load i8, i8* %"$x_cast_tag_1355", align 1 + switch i8 %"$x_cast_tag_1356", label %"$empty_default_1357" [ + i8 0, label %"$Some_1358" + i8 1, label %"$None_1492" + ], !dbg !295 + +"$Some_1358": ; preds = %"$have_gas_1351" + %"$x_cast_1359" = bitcast %"TName_Option_ByStr20_with_contract_field_f_:_Uint128,_field_g_:_Bool_end"* %"$x_cast_1354" to %"CName_Some_ByStr20_with_contract_field_f_:_Uint128,_field_g_:_Bool_end"* + %"$x_as_address_gep_1360" = getelementptr inbounds %"CName_Some_ByStr20_with_contract_field_f_:_Uint128,_field_g_:_Bool_end", %"CName_Some_ByStr20_with_contract_field_f_:_Uint128,_field_g_:_Bool_end"* %"$x_cast_1359", i32 0, i32 1 + %"$x_as_address_load_1361" = load [20 x i8], [20 x i8]* %"$x_as_address_gep_1360", align 1 + %x_as_address = alloca [20 x i8], align 1 + store [20 x i8] %"$x_as_address_load_1361", [20 x i8]* %x_as_address, align 1 + %bal = alloca %Uint128, align 8 + call void @llvm.dbg.declare(metadata %Uint128* %bal, metadata !296, metadata !DIExpression()), !dbg !299 + %"$execptr_load_1363" = load i8*, i8** @_execptr, align 8 + %"$bal_x_as_address_1364" = alloca [20 x i8], align 1 + %"$x_as_address_1365" = load [20 x i8], [20 x i8]* %x_as_address, align 1 + store [20 x i8] %"$x_as_address_1365", [20 x i8]* %"$bal_x_as_address_1364", align 1 + %"$bal_call_1366" = call i8* @_fetch_remote_field(i8* %"$execptr_load_1363", [20 x i8]* %"$bal_x_as_address_1364", i8* getelementptr inbounds ([9 x i8], [9 x i8]* @"$_balance_1362", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Uint128_34", i32 0, i8* null, i32 1), !dbg !299 + %"$bal_1367" = bitcast i8* %"$bal_call_1366" to %Uint128* + %"$bal_1368" = load %Uint128, %Uint128* %"$bal_1367", align 8 + store %Uint128 %"$bal_1368", %Uint128* %bal, align 8 + %"$_literal_cost_bal_1369" = alloca %Uint128, align 8 + %"$bal_1370" = load %Uint128, %Uint128* %bal, align 8 + store %Uint128 %"$bal_1370", %Uint128* %"$_literal_cost_bal_1369", align 8 + %"$$_literal_cost_bal_1369_1371" = bitcast %Uint128* %"$_literal_cost_bal_1369" to i8* + %"$_literal_cost_call_1372" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Uint128_34", i8* %"$$_literal_cost_bal_1369_1371") + %"$gasadd_1373" = add i64 %"$_literal_cost_call_1372", 0 + %"$gasrem_1374" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1375" = icmp ugt i64 %"$gasadd_1373", %"$gasrem_1374" + br i1 %"$gascmp_1375", label %"$out_of_gas_1376", label %"$have_gas_1377" + +"$out_of_gas_1376": ; preds = %"$Some_1358" + call void @_out_of_gas() + br label %"$have_gas_1377" + +"$have_gas_1377": ; preds = %"$out_of_gas_1376", %"$Some_1358" + %"$consume_1378" = sub i64 %"$gasrem_1374", %"$gasadd_1373" + store i64 %"$consume_1378", i64* @_gasrem, align 8 + %"$gasrem_1379" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1380" = icmp ugt i64 1, %"$gasrem_1379" + br i1 %"$gascmp_1380", label %"$out_of_gas_1381", label %"$have_gas_1382" + +"$out_of_gas_1381": ; preds = %"$have_gas_1377" + call void @_out_of_gas() + br label %"$have_gas_1382" + +"$have_gas_1382": ; preds = %"$out_of_gas_1381", %"$have_gas_1377" + %"$consume_1383" = sub i64 %"$gasrem_1379", 1 + store i64 %"$consume_1383", i64* @_gasrem, align 8 + %bal_res = alloca %TName_Option_Uint128*, align 8 + call void @llvm.dbg.declare(metadata %TName_Option_Uint128** %bal_res, metadata !300, metadata !DIExpression()), !dbg !301 + %"$gasrem_1384" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1385" = icmp ugt i64 1, %"$gasrem_1384" + br i1 %"$gascmp_1385", label %"$out_of_gas_1386", label %"$have_gas_1387" + +"$out_of_gas_1386": ; preds = %"$have_gas_1382" + call void @_out_of_gas() + br label %"$have_gas_1387" + +"$have_gas_1387": ; preds = %"$out_of_gas_1386", %"$have_gas_1382" + %"$consume_1388" = sub i64 %"$gasrem_1384", 1 + store i64 %"$consume_1388", i64* @_gasrem, align 8 + %"$bal_1389" = load %Uint128, %Uint128* %bal, align 8 + %"$adtval_1390_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_1390_salloc" = call i8* @_salloc(i8* %"$adtval_1390_load", i64 17) + %"$adtval_1390" = bitcast i8* %"$adtval_1390_salloc" to %CName_Some_Uint128* + %"$adtgep_1391" = getelementptr inbounds %CName_Some_Uint128, %CName_Some_Uint128* %"$adtval_1390", i32 0, i32 0 + store i8 0, i8* %"$adtgep_1391", align 1 + %"$adtgep_1392" = getelementptr inbounds %CName_Some_Uint128, %CName_Some_Uint128* %"$adtval_1390", i32 0, i32 1 + store %Uint128 %"$bal_1389", %Uint128* %"$adtgep_1392", align 8 + %"$adtptr_1393" = bitcast %CName_Some_Uint128* %"$adtval_1390" to %TName_Option_Uint128* + store %TName_Option_Uint128* %"$adtptr_1393", %TName_Option_Uint128** %bal_res, align 8, !dbg !302 + %"$bal_res_1394" = load %TName_Option_Uint128*, %TName_Option_Uint128** %bal_res, align 8 + %"$$bal_res_1394_1395" = bitcast %TName_Option_Uint128* %"$bal_res_1394" to i8* + %"$_literal_cost_call_1396" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_Uint128_63", i8* %"$$bal_res_1394_1395") + %"$gasrem_1397" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1398" = icmp ugt i64 %"$_literal_cost_call_1396", %"$gasrem_1397" + br i1 %"$gascmp_1398", label %"$out_of_gas_1399", label %"$have_gas_1400" + +"$out_of_gas_1399": ; preds = %"$have_gas_1387" + call void @_out_of_gas() + br label %"$have_gas_1400" + +"$have_gas_1400": ; preds = %"$out_of_gas_1399", %"$have_gas_1387" + %"$consume_1401" = sub i64 %"$gasrem_1397", %"$_literal_cost_call_1396" + store i64 %"$consume_1401", i64* @_gasrem, align 8 + %"$execptr_load_1402" = load i8*, i8** @_execptr, align 8 + %"$bal_res_1404" = load %TName_Option_Uint128*, %TName_Option_Uint128** %bal_res, align 8 + %"$update_value_1405" = bitcast %TName_Option_Uint128* %"$bal_res_1404" to i8* + call void @_update_field(i8* %"$execptr_load_1402", i8* getelementptr inbounds ([17 x i8], [17 x i8]* @"$test_6_4_bal_res_1403", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_ADT_Option_Uint128_63", i32 0, i8* null, i8* %"$update_value_1405"), !dbg !303 %f = alloca %Uint128, align 8 - %"$execptr_load_1371" = load i8*, i8** @_execptr, align 8 - %"$f_x_as_address_1372" = alloca [20 x i8], align 1 - %"$x_as_address_1373" = load [20 x i8], [20 x i8]* %x_as_address, align 1 - store [20 x i8] %"$x_as_address_1373", [20 x i8]* %"$f_x_as_address_1372", align 1 - %"$f_call_1374" = call i8* @_fetch_remote_field(i8* %"$execptr_load_1371", [20 x i8]* %"$f_x_as_address_1372", i8* getelementptr inbounds ([2 x i8], [2 x i8]* @"$f_1370", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Uint128_34", i32 0, i8* null, i32 1), !dbg !133 - %"$f_1375" = bitcast i8* %"$f_call_1374" to %Uint128* - %"$f_1376" = load %Uint128, %Uint128* %"$f_1375", align 8 - store %Uint128 %"$f_1376", %Uint128* %f, align 8 - %"$_literal_cost_f_1377" = alloca %Uint128, align 8 - %"$f_1378" = load %Uint128, %Uint128* %f, align 8 - store %Uint128 %"$f_1378", %Uint128* %"$_literal_cost_f_1377", align 8 - %"$$_literal_cost_f_1377_1379" = bitcast %Uint128* %"$_literal_cost_f_1377" to i8* - %"$_literal_cost_call_1380" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Uint128_34", i8* %"$$_literal_cost_f_1377_1379") - %"$gasadd_1381" = add i64 %"$_literal_cost_call_1380", 0 - %"$gasrem_1382" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1383" = icmp ugt i64 %"$gasadd_1381", %"$gasrem_1382" - br i1 %"$gascmp_1383", label %"$out_of_gas_1384", label %"$have_gas_1385" - -"$out_of_gas_1384": ; preds = %"$have_gas_1364" - call void @_out_of_gas() - br label %"$have_gas_1385" - -"$have_gas_1385": ; preds = %"$out_of_gas_1384", %"$have_gas_1364" - %"$consume_1386" = sub i64 %"$gasrem_1382", %"$gasadd_1381" - store i64 %"$consume_1386", i64* @_gasrem, align 8 - %"$gasrem_1387" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1388" = icmp ugt i64 1, %"$gasrem_1387" - br i1 %"$gascmp_1388", label %"$out_of_gas_1389", label %"$have_gas_1390" - -"$out_of_gas_1389": ; preds = %"$have_gas_1385" - call void @_out_of_gas() - br label %"$have_gas_1390" - -"$have_gas_1390": ; preds = %"$out_of_gas_1389", %"$have_gas_1385" - %"$consume_1391" = sub i64 %"$gasrem_1387", 1 - store i64 %"$consume_1391", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %Uint128* %f, metadata !304, metadata !DIExpression()), !dbg !305 + %"$execptr_load_1407" = load i8*, i8** @_execptr, align 8 + %"$f_x_as_address_1408" = alloca [20 x i8], align 1 + %"$x_as_address_1409" = load [20 x i8], [20 x i8]* %x_as_address, align 1 + store [20 x i8] %"$x_as_address_1409", [20 x i8]* %"$f_x_as_address_1408", align 1 + %"$f_call_1410" = call i8* @_fetch_remote_field(i8* %"$execptr_load_1407", [20 x i8]* %"$f_x_as_address_1408", i8* getelementptr inbounds ([2 x i8], [2 x i8]* @"$f_1406", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Uint128_34", i32 0, i8* null, i32 1), !dbg !305 + %"$f_1411" = bitcast i8* %"$f_call_1410" to %Uint128* + %"$f_1412" = load %Uint128, %Uint128* %"$f_1411", align 8 + store %Uint128 %"$f_1412", %Uint128* %f, align 8 + %"$_literal_cost_f_1413" = alloca %Uint128, align 8 + %"$f_1414" = load %Uint128, %Uint128* %f, align 8 + store %Uint128 %"$f_1414", %Uint128* %"$_literal_cost_f_1413", align 8 + %"$$_literal_cost_f_1413_1415" = bitcast %Uint128* %"$_literal_cost_f_1413" to i8* + %"$_literal_cost_call_1416" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Uint128_34", i8* %"$$_literal_cost_f_1413_1415") + %"$gasadd_1417" = add i64 %"$_literal_cost_call_1416", 0 + %"$gasrem_1418" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1419" = icmp ugt i64 %"$gasadd_1417", %"$gasrem_1418" + br i1 %"$gascmp_1419", label %"$out_of_gas_1420", label %"$have_gas_1421" + +"$out_of_gas_1420": ; preds = %"$have_gas_1400" + call void @_out_of_gas() + br label %"$have_gas_1421" + +"$have_gas_1421": ; preds = %"$out_of_gas_1420", %"$have_gas_1400" + %"$consume_1422" = sub i64 %"$gasrem_1418", %"$gasadd_1417" + store i64 %"$consume_1422", i64* @_gasrem, align 8 + %"$gasrem_1423" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1424" = icmp ugt i64 1, %"$gasrem_1423" + br i1 %"$gascmp_1424", label %"$out_of_gas_1425", label %"$have_gas_1426" + +"$out_of_gas_1425": ; preds = %"$have_gas_1421" + call void @_out_of_gas() + br label %"$have_gas_1426" + +"$have_gas_1426": ; preds = %"$out_of_gas_1425", %"$have_gas_1421" + %"$consume_1427" = sub i64 %"$gasrem_1423", 1 + store i64 %"$consume_1427", i64* @_gasrem, align 8 %f_res = alloca %TName_Option_Uint128*, 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_1394": ; preds = %"$have_gas_1390" - call void @_out_of_gas() - br label %"$have_gas_1395" - -"$have_gas_1395": ; preds = %"$out_of_gas_1394", %"$have_gas_1390" - %"$consume_1396" = sub i64 %"$gasrem_1392", 1 - store i64 %"$consume_1396", i64* @_gasrem, align 8 - %"$f_1397" = load %Uint128, %Uint128* %f, align 8 - %"$adtval_1398_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_1398_salloc" = call i8* @_salloc(i8* %"$adtval_1398_load", i64 17) - %"$adtval_1398" = bitcast i8* %"$adtval_1398_salloc" to %CName_Some_Uint128* - %"$adtgep_1399" = getelementptr inbounds %CName_Some_Uint128, %CName_Some_Uint128* %"$adtval_1398", i32 0, i32 0 - store i8 0, i8* %"$adtgep_1399", align 1 - %"$adtgep_1400" = getelementptr inbounds %CName_Some_Uint128, %CName_Some_Uint128* %"$adtval_1398", i32 0, i32 1 - store %Uint128 %"$f_1397", %Uint128* %"$adtgep_1400", align 8 - %"$adtptr_1401" = bitcast %CName_Some_Uint128* %"$adtval_1398" to %TName_Option_Uint128* - store %TName_Option_Uint128* %"$adtptr_1401", %TName_Option_Uint128** %f_res, align 8, !dbg !134 - %"$f_res_1402" = load %TName_Option_Uint128*, %TName_Option_Uint128** %f_res, align 8 - %"$$f_res_1402_1403" = bitcast %TName_Option_Uint128* %"$f_res_1402" to i8* - %"$_literal_cost_call_1404" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_Uint128_63", i8* %"$$f_res_1402_1403") - %"$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_1395" - call void @_out_of_gas() - br label %"$have_gas_1408" - -"$have_gas_1408": ; preds = %"$out_of_gas_1407", %"$have_gas_1395" - %"$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 - %"$f_res_1412" = load %TName_Option_Uint128*, %TName_Option_Uint128** %f_res, align 8 - %"$update_value_1413" = bitcast %TName_Option_Uint128* %"$f_res_1412" to i8* - call void @_update_field(i8* %"$execptr_load_1410", i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$test_6_4_f_res_1411", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_ADT_Option_Uint128_63", i32 0, i8* null, i8* %"$update_value_1413"), !dbg !135 + call void @llvm.dbg.declare(metadata %TName_Option_Uint128** %f_res, metadata !306, metadata !DIExpression()), !dbg !307 + %"$gasrem_1428" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1429" = icmp ugt i64 1, %"$gasrem_1428" + br i1 %"$gascmp_1429", label %"$out_of_gas_1430", label %"$have_gas_1431" + +"$out_of_gas_1430": ; preds = %"$have_gas_1426" + call void @_out_of_gas() + br label %"$have_gas_1431" + +"$have_gas_1431": ; preds = %"$out_of_gas_1430", %"$have_gas_1426" + %"$consume_1432" = sub i64 %"$gasrem_1428", 1 + store i64 %"$consume_1432", i64* @_gasrem, align 8 + %"$f_1433" = load %Uint128, %Uint128* %f, align 8 + %"$adtval_1434_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_1434_salloc" = call i8* @_salloc(i8* %"$adtval_1434_load", i64 17) + %"$adtval_1434" = bitcast i8* %"$adtval_1434_salloc" to %CName_Some_Uint128* + %"$adtgep_1435" = getelementptr inbounds %CName_Some_Uint128, %CName_Some_Uint128* %"$adtval_1434", i32 0, i32 0 + store i8 0, i8* %"$adtgep_1435", align 1 + %"$adtgep_1436" = getelementptr inbounds %CName_Some_Uint128, %CName_Some_Uint128* %"$adtval_1434", i32 0, i32 1 + store %Uint128 %"$f_1433", %Uint128* %"$adtgep_1436", align 8 + %"$adtptr_1437" = bitcast %CName_Some_Uint128* %"$adtval_1434" to %TName_Option_Uint128* + store %TName_Option_Uint128* %"$adtptr_1437", %TName_Option_Uint128** %f_res, align 8, !dbg !308 + %"$f_res_1438" = load %TName_Option_Uint128*, %TName_Option_Uint128** %f_res, align 8 + %"$$f_res_1438_1439" = bitcast %TName_Option_Uint128* %"$f_res_1438" to i8* + %"$_literal_cost_call_1440" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_Uint128_63", i8* %"$$f_res_1438_1439") + %"$gasrem_1441" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1442" = icmp ugt i64 %"$_literal_cost_call_1440", %"$gasrem_1441" + br i1 %"$gascmp_1442", label %"$out_of_gas_1443", label %"$have_gas_1444" + +"$out_of_gas_1443": ; preds = %"$have_gas_1431" + call void @_out_of_gas() + br label %"$have_gas_1444" + +"$have_gas_1444": ; preds = %"$out_of_gas_1443", %"$have_gas_1431" + %"$consume_1445" = sub i64 %"$gasrem_1441", %"$_literal_cost_call_1440" + store i64 %"$consume_1445", i64* @_gasrem, align 8 + %"$execptr_load_1446" = load i8*, i8** @_execptr, align 8 + %"$f_res_1448" = load %TName_Option_Uint128*, %TName_Option_Uint128** %f_res, align 8 + %"$update_value_1449" = bitcast %TName_Option_Uint128* %"$f_res_1448" to i8* + call void @_update_field(i8* %"$execptr_load_1446", i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$test_6_4_f_res_1447", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_ADT_Option_Uint128_63", i32 0, i8* null, i8* %"$update_value_1449"), !dbg !309 %g = alloca %TName_Bool*, align 8 - %"$execptr_load_1415" = load i8*, i8** @_execptr, align 8 - %"$g_x_as_address_1416" = alloca [20 x i8], align 1 - %"$x_as_address_1417" = load [20 x i8], [20 x i8]* %x_as_address, align 1 - store [20 x i8] %"$x_as_address_1417", [20 x i8]* %"$g_x_as_address_1416", align 1 - %"$g_call_1418" = call i8* @_fetch_remote_field(i8* %"$execptr_load_1415", [20 x i8]* %"$g_x_as_address_1416", i8* getelementptr inbounds ([2 x i8], [2 x i8]* @"$g_1414", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_66", i32 0, i8* null, i32 1), !dbg !136 - %"$g_1419" = bitcast i8* %"$g_call_1418" to %TName_Bool* - store %TName_Bool* %"$g_1419", %TName_Bool** %g, align 8 - %"$g_1420" = load %TName_Bool*, %TName_Bool** %g, align 8 - %"$$g_1420_1421" = bitcast %TName_Bool* %"$g_1420" to i8* - %"$_literal_cost_call_1422" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_66", i8* %"$$g_1420_1421") - %"$gasadd_1423" = add i64 %"$_literal_cost_call_1422", 0 - %"$gasrem_1424" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1425" = icmp ugt i64 %"$gasadd_1423", %"$gasrem_1424" - br i1 %"$gascmp_1425", label %"$out_of_gas_1426", label %"$have_gas_1427" - -"$out_of_gas_1426": ; preds = %"$have_gas_1408" - call void @_out_of_gas() - br label %"$have_gas_1427" - -"$have_gas_1427": ; preds = %"$out_of_gas_1426", %"$have_gas_1408" - %"$consume_1428" = sub i64 %"$gasrem_1424", %"$gasadd_1423" - store i64 %"$consume_1428", i64* @_gasrem, 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 + call void @llvm.dbg.declare(metadata %TName_Bool** %g, metadata !310, metadata !DIExpression()), !dbg !311 + %"$execptr_load_1451" = load i8*, i8** @_execptr, align 8 + %"$g_x_as_address_1452" = alloca [20 x i8], align 1 + %"$x_as_address_1453" = load [20 x i8], [20 x i8]* %x_as_address, align 1 + store [20 x i8] %"$x_as_address_1453", [20 x i8]* %"$g_x_as_address_1452", align 1 + %"$g_call_1454" = call i8* @_fetch_remote_field(i8* %"$execptr_load_1451", [20 x i8]* %"$g_x_as_address_1452", i8* getelementptr inbounds ([2 x i8], [2 x i8]* @"$g_1450", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_66", i32 0, i8* null, i32 1), !dbg !311 + %"$g_1455" = bitcast i8* %"$g_call_1454" to %TName_Bool* + store %TName_Bool* %"$g_1455", %TName_Bool** %g, align 8 + %"$g_1456" = load %TName_Bool*, %TName_Bool** %g, align 8 + %"$$g_1456_1457" = bitcast %TName_Bool* %"$g_1456" to i8* + %"$_literal_cost_call_1458" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_66", i8* %"$$g_1456_1457") + %"$gasadd_1459" = add i64 %"$_literal_cost_call_1458", 0 + %"$gasrem_1460" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1461" = icmp ugt i64 %"$gasadd_1459", %"$gasrem_1460" + br i1 %"$gascmp_1461", label %"$out_of_gas_1462", label %"$have_gas_1463" + +"$out_of_gas_1462": ; preds = %"$have_gas_1444" + call void @_out_of_gas() + br label %"$have_gas_1463" + +"$have_gas_1463": ; preds = %"$out_of_gas_1462", %"$have_gas_1444" + %"$consume_1464" = sub i64 %"$gasrem_1460", %"$gasadd_1459" + store i64 %"$consume_1464", i64* @_gasrem, align 8 + %"$gasrem_1465" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1466" = icmp ugt i64 1, %"$gasrem_1465" + br i1 %"$gascmp_1466", label %"$out_of_gas_1467", label %"$have_gas_1468" + +"$out_of_gas_1467": ; preds = %"$have_gas_1463" + call void @_out_of_gas() + br label %"$have_gas_1468" + +"$have_gas_1468": ; preds = %"$out_of_gas_1467", %"$have_gas_1463" + %"$consume_1469" = sub i64 %"$gasrem_1465", 1 + store i64 %"$consume_1469", i64* @_gasrem, align 8 %g_res = alloca %TName_Option_Bool*, align 8 - %"$gasrem_1434" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1435" = icmp ugt i64 1, %"$gasrem_1434" - br i1 %"$gascmp_1435", label %"$out_of_gas_1436", label %"$have_gas_1437" - -"$out_of_gas_1436": ; preds = %"$have_gas_1432" - call void @_out_of_gas() - br label %"$have_gas_1437" - -"$have_gas_1437": ; preds = %"$out_of_gas_1436", %"$have_gas_1432" - %"$consume_1438" = sub i64 %"$gasrem_1434", 1 - store i64 %"$consume_1438", i64* @_gasrem, align 8 - %"$g_1439" = load %TName_Bool*, %TName_Bool** %g, align 8 - %"$adtval_1440_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_1440_salloc" = call i8* @_salloc(i8* %"$adtval_1440_load", i64 9) - %"$adtval_1440" = bitcast i8* %"$adtval_1440_salloc" to %CName_Some_Bool* - %"$adtgep_1441" = getelementptr inbounds %CName_Some_Bool, %CName_Some_Bool* %"$adtval_1440", i32 0, i32 0 - store i8 0, i8* %"$adtgep_1441", align 1 - %"$adtgep_1442" = getelementptr inbounds %CName_Some_Bool, %CName_Some_Bool* %"$adtval_1440", i32 0, i32 1 - store %TName_Bool* %"$g_1439", %TName_Bool** %"$adtgep_1442", align 8 - %"$adtptr_1443" = bitcast %CName_Some_Bool* %"$adtval_1440" to %TName_Option_Bool* - store %TName_Option_Bool* %"$adtptr_1443", %TName_Option_Bool** %g_res, align 8, !dbg !137 - %"$g_res_1444" = load %TName_Option_Bool*, %TName_Option_Bool** %g_res, align 8 - %"$$g_res_1444_1445" = bitcast %TName_Option_Bool* %"$g_res_1444" to i8* - %"$_literal_cost_call_1446" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_Bool_62", i8* %"$$g_res_1444_1445") - %"$gasrem_1447" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1448" = icmp ugt i64 %"$_literal_cost_call_1446", %"$gasrem_1447" - br i1 %"$gascmp_1448", label %"$out_of_gas_1449", label %"$have_gas_1450" - -"$out_of_gas_1449": ; preds = %"$have_gas_1437" - call void @_out_of_gas() - br label %"$have_gas_1450" - -"$have_gas_1450": ; preds = %"$out_of_gas_1449", %"$have_gas_1437" - %"$consume_1451" = sub i64 %"$gasrem_1447", %"$_literal_cost_call_1446" - store i64 %"$consume_1451", i64* @_gasrem, align 8 - %"$execptr_load_1452" = load i8*, i8** @_execptr, align 8 - %"$g_res_1454" = load %TName_Option_Bool*, %TName_Option_Bool** %g_res, align 8 - %"$update_value_1455" = bitcast %TName_Option_Bool* %"$g_res_1454" to i8* - call void @_update_field(i8* %"$execptr_load_1452", i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$test_6_4_g_res_1453", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_ADT_Option_Bool_62", i32 0, i8* null, i8* %"$update_value_1455"), !dbg !138 - br label %"$matchsucc_1317" - -"$None_1456": ; preds = %"$have_gas_1315" - %"$x_cast_1457" = bitcast %"TName_Option_ByStr20_with_contract_field_f_:_Uint128,_field_g_:_Bool_end"* %"$x_cast_1318" to %"CName_None_ByStr20_with_contract_field_f_:_Uint128,_field_g_:_Bool_end"* - %"$gasrem_1458" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1459" = icmp ugt i64 1, %"$gasrem_1458" - br i1 %"$gascmp_1459", label %"$out_of_gas_1460", label %"$have_gas_1461" - -"$out_of_gas_1460": ; preds = %"$None_1456" - call void @_out_of_gas() - br label %"$have_gas_1461" - -"$have_gas_1461": ; preds = %"$out_of_gas_1460", %"$None_1456" - %"$consume_1462" = sub i64 %"$gasrem_1458", 1 - store i64 %"$consume_1462", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Option_Bool** %g_res, metadata !312, metadata !DIExpression()), !dbg !313 + %"$gasrem_1470" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1471" = icmp ugt i64 1, %"$gasrem_1470" + br i1 %"$gascmp_1471", label %"$out_of_gas_1472", label %"$have_gas_1473" + +"$out_of_gas_1472": ; preds = %"$have_gas_1468" + call void @_out_of_gas() + br label %"$have_gas_1473" + +"$have_gas_1473": ; preds = %"$out_of_gas_1472", %"$have_gas_1468" + %"$consume_1474" = sub i64 %"$gasrem_1470", 1 + store i64 %"$consume_1474", i64* @_gasrem, align 8 + %"$g_1475" = load %TName_Bool*, %TName_Bool** %g, align 8 + %"$adtval_1476_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_1476_salloc" = call i8* @_salloc(i8* %"$adtval_1476_load", i64 9) + %"$adtval_1476" = bitcast i8* %"$adtval_1476_salloc" to %CName_Some_Bool* + %"$adtgep_1477" = getelementptr inbounds %CName_Some_Bool, %CName_Some_Bool* %"$adtval_1476", i32 0, i32 0 + store i8 0, i8* %"$adtgep_1477", align 1 + %"$adtgep_1478" = getelementptr inbounds %CName_Some_Bool, %CName_Some_Bool* %"$adtval_1476", i32 0, i32 1 + store %TName_Bool* %"$g_1475", %TName_Bool** %"$adtgep_1478", align 8 + %"$adtptr_1479" = bitcast %CName_Some_Bool* %"$adtval_1476" to %TName_Option_Bool* + store %TName_Option_Bool* %"$adtptr_1479", %TName_Option_Bool** %g_res, align 8, !dbg !314 + %"$g_res_1480" = load %TName_Option_Bool*, %TName_Option_Bool** %g_res, align 8 + %"$$g_res_1480_1481" = bitcast %TName_Option_Bool* %"$g_res_1480" to i8* + %"$_literal_cost_call_1482" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_Bool_62", i8* %"$$g_res_1480_1481") + %"$gasrem_1483" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1484" = icmp ugt i64 %"$_literal_cost_call_1482", %"$gasrem_1483" + br i1 %"$gascmp_1484", label %"$out_of_gas_1485", label %"$have_gas_1486" + +"$out_of_gas_1485": ; preds = %"$have_gas_1473" + call void @_out_of_gas() + br label %"$have_gas_1486" + +"$have_gas_1486": ; preds = %"$out_of_gas_1485", %"$have_gas_1473" + %"$consume_1487" = sub i64 %"$gasrem_1483", %"$_literal_cost_call_1482" + store i64 %"$consume_1487", i64* @_gasrem, align 8 + %"$execptr_load_1488" = load i8*, i8** @_execptr, align 8 + %"$g_res_1490" = load %TName_Option_Bool*, %TName_Option_Bool** %g_res, align 8 + %"$update_value_1491" = bitcast %TName_Option_Bool* %"$g_res_1490" to i8* + call void @_update_field(i8* %"$execptr_load_1488", i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$test_6_4_g_res_1489", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_ADT_Option_Bool_62", i32 0, i8* null, i8* %"$update_value_1491"), !dbg !315 + br label %"$matchsucc_1353" + +"$None_1492": ; preds = %"$have_gas_1351" + %"$x_cast_1493" = bitcast %"TName_Option_ByStr20_with_contract_field_f_:_Uint128,_field_g_:_Bool_end"* %"$x_cast_1354" to %"CName_None_ByStr20_with_contract_field_f_:_Uint128,_field_g_:_Bool_end"* + %"$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_1496": ; preds = %"$None_1492" + call void @_out_of_gas() + br label %"$have_gas_1497" + +"$have_gas_1497": ; preds = %"$out_of_gas_1496", %"$None_1492" + %"$consume_1498" = sub i64 %"$gasrem_1494", 1 + store i64 %"$consume_1498", i64* @_gasrem, align 8 %res = alloca %TName_Bool*, align 8 - %"$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 = %"$have_gas_1461" - call void @_out_of_gas() - br label %"$have_gas_1466" - -"$have_gas_1466": ; preds = %"$out_of_gas_1465", %"$have_gas_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_True* - %"$adtgep_1469" = getelementptr inbounds %CName_True, %CName_True* %"$adtval_1468", i32 0, i32 0 - store i8 0, i8* %"$adtgep_1469", align 1 - %"$adtptr_1470" = bitcast %CName_True* %"$adtval_1468" to %TName_Bool* - store %TName_Bool* %"$adtptr_1470", %TName_Bool** %res, align 8, !dbg !139 - %"$res_1471" = load %TName_Bool*, %TName_Bool** %res, align 8 - %"$$res_1471_1472" = bitcast %TName_Bool* %"$res_1471" to i8* - %"$_literal_cost_call_1473" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_66", i8* %"$$res_1471_1472") - %"$gasrem_1474" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1475" = icmp ugt i64 %"$_literal_cost_call_1473", %"$gasrem_1474" - br i1 %"$gascmp_1475", label %"$out_of_gas_1476", label %"$have_gas_1477" - -"$out_of_gas_1476": ; preds = %"$have_gas_1466" - call void @_out_of_gas() - br label %"$have_gas_1477" - -"$have_gas_1477": ; preds = %"$out_of_gas_1476", %"$have_gas_1466" - %"$consume_1478" = sub i64 %"$gasrem_1474", %"$_literal_cost_call_1473" - store i64 %"$consume_1478", i64* @_gasrem, align 8 - %"$execptr_load_1479" = load i8*, i8** @_execptr, align 8 - %"$res_1481" = load %TName_Bool*, %TName_Bool** %res, align 8 - %"$update_value_1482" = bitcast %TName_Bool* %"$res_1481" to i8* - call void @_update_field(i8* %"$execptr_load_1479", i8* getelementptr inbounds ([21 x i8], [21 x i8]* @"$test_6_4_failed_cast_1480", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_66", i32 0, i8* null, i8* %"$update_value_1482"), !dbg !141 - br label %"$matchsucc_1317" - -"$empty_default_1321": ; preds = %"$have_gas_1315" - br label %"$matchsucc_1317" - -"$matchsucc_1317": ; preds = %"$have_gas_1477", %"$have_gas_1450", %"$empty_default_1321" + call void @llvm.dbg.declare(metadata %TName_Bool** %res, metadata !316, metadata !DIExpression()), !dbg !318 + %"$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 = %"$have_gas_1497" + call void @_out_of_gas() + br label %"$have_gas_1502" + +"$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 + %"$adtval_1504_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_1504_salloc" = call i8* @_salloc(i8* %"$adtval_1504_load", i64 1) + %"$adtval_1504" = bitcast i8* %"$adtval_1504_salloc" to %CName_True* + %"$adtgep_1505" = getelementptr inbounds %CName_True, %CName_True* %"$adtval_1504", i32 0, i32 0 + store i8 0, i8* %"$adtgep_1505", align 1 + %"$adtptr_1506" = bitcast %CName_True* %"$adtval_1504" to %TName_Bool* + store %TName_Bool* %"$adtptr_1506", %TName_Bool** %res, align 8, !dbg !319 + %"$res_1507" = load %TName_Bool*, %TName_Bool** %res, align 8 + %"$$res_1507_1508" = bitcast %TName_Bool* %"$res_1507" to i8* + %"$_literal_cost_call_1509" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_66", i8* %"$$res_1507_1508") + %"$gasrem_1510" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1511" = icmp ugt i64 %"$_literal_cost_call_1509", %"$gasrem_1510" + br i1 %"$gascmp_1511", label %"$out_of_gas_1512", label %"$have_gas_1513" + +"$out_of_gas_1512": ; preds = %"$have_gas_1502" + call void @_out_of_gas() + br label %"$have_gas_1513" + +"$have_gas_1513": ; preds = %"$out_of_gas_1512", %"$have_gas_1502" + %"$consume_1514" = sub i64 %"$gasrem_1510", %"$_literal_cost_call_1509" + store i64 %"$consume_1514", i64* @_gasrem, align 8 + %"$execptr_load_1515" = load i8*, i8** @_execptr, align 8 + %"$res_1517" = load %TName_Bool*, %TName_Bool** %res, align 8 + %"$update_value_1518" = bitcast %TName_Bool* %"$res_1517" to i8* + call void @_update_field(i8* %"$execptr_load_1515", i8* getelementptr inbounds ([21 x i8], [21 x i8]* @"$test_6_4_failed_cast_1516", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_66", i32 0, i8* null, i8* %"$update_value_1518"), !dbg !320 + br label %"$matchsucc_1353" + +"$empty_default_1357": ; preds = %"$have_gas_1351" + br label %"$matchsucc_1353" + +"$matchsucc_1353": ; preds = %"$have_gas_1513", %"$have_gas_1486", %"$empty_default_1357" ret void } -define void @CastTest6_4(i8* %0) !dbg !142 { +define void @CastTest6_4(i8* %0) !dbg !321 { entry: - %"$_amount_1484" = getelementptr i8, i8* %0, i32 0 - %"$_amount_1485" = bitcast i8* %"$_amount_1484" to %Uint128* - %_amount = load %Uint128, %Uint128* %"$_amount_1485", align 8 - %"$_origin_1486" = getelementptr i8, i8* %0, i32 16 - %"$_origin_1487" = bitcast i8* %"$_origin_1486" to [20 x i8]* - %"$_sender_1488" = getelementptr i8, i8* %0, i32 36 - %"$_sender_1489" = bitcast i8* %"$_sender_1488" to [20 x i8]* - %"$x_1490" = getelementptr i8, i8* %0, i32 56 - %"$x_1491" = bitcast i8* %"$x_1490" to [20 x i8]* - call void @"$CastTest6_4_1299"(%Uint128 %_amount, [20 x i8]* %"$_origin_1487", [20 x i8]* %"$_sender_1489", [20 x i8]* %"$x_1491"), !dbg !143 + %"$_amount_1524" = getelementptr i8, i8* %0, i32 0 + %"$_amount_1525" = bitcast i8* %"$_amount_1524" to %Uint128* + %_amount = load %Uint128, %Uint128* %"$_amount_1525", align 8 + %"$_origin_1526" = getelementptr i8, i8* %0, i32 16 + %"$_origin_1527" = bitcast i8* %"$_origin_1526" to [20 x i8]* + %"$_sender_1528" = getelementptr i8, i8* %0, i32 36 + %"$_sender_1529" = bitcast i8* %"$_sender_1528" to [20 x i8]* + %"$x_1530" = getelementptr i8, i8* %0, i32 56 + %"$x_1531" = bitcast i8* %"$x_1530" to [20 x i8]* + call void @"$CastTest6_4_1335"(%Uint128 %_amount, [20 x i8]* %"$_origin_1527", [20 x i8]* %"$_sender_1529", [20 x i8]* %"$x_1531"), !dbg !322 ret void } -define internal void @"$CastTest7_1492"(%Uint128 %_amount, [20 x i8]* %"$_origin_1493", [20 x i8]* %"$_sender_1494", [20 x i8]* %"$x_1495") !dbg !144 { +define internal void @"$CastTest7_1532"(%Uint128 %_amount, [20 x i8]* %"$_origin_1533", [20 x i8]* %"$_sender_1534", [20 x i8]* %"$x_1535") !dbg !323 { entry: - %_origin = load [20 x i8], [20 x i8]* %"$_origin_1493", align 1 - %_sender = load [20 x i8], [20 x i8]* %"$_sender_1494", align 1 - %x = load [20 x i8], [20 x i8]* %"$x_1495", align 1 - %"$gasrem_1496" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1497" = icmp ugt i64 4, %"$gasrem_1496" - br i1 %"$gascmp_1497", label %"$out_of_gas_1498", label %"$have_gas_1499" - -"$out_of_gas_1498": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_1499" - -"$have_gas_1499": ; preds = %"$out_of_gas_1498", %entry - %"$consume_1500" = sub i64 %"$gasrem_1496", 4 - store i64 %"$consume_1500", i64* @_gasrem, align 8 - %x_cast = alloca %"TName_Option_ByStr20_with_contract_field_f_:_ByStr20_end"*, align 8 - %"$execptr_load_1501" = load i8*, i8** @_execptr, align 8 - %"$_dynamic_typecast_x_1502" = alloca [20 x i8], align 1 - store [20 x i8] %x, [20 x i8]* %"$_dynamic_typecast_x_1502", align 1 - %"$_dynamic_typecast_call_1503" = call i8* @_dynamic_typecast(i8* %"$execptr_load_1501", [20 x i8]* %"$_dynamic_typecast_x_1502", %_TyDescrTy_Typ* @"$TyDescr_Addr_71"), !dbg !145 - %"$_dynamic_typecast_1504" = bitcast i8* %"$_dynamic_typecast_call_1503" to %"TName_Option_ByStr20_with_contract_field_f_:_ByStr20_end"* - store %"TName_Option_ByStr20_with_contract_field_f_:_ByStr20_end"* %"$_dynamic_typecast_1504", %"TName_Option_ByStr20_with_contract_field_f_:_ByStr20_end"** %x_cast, align 8, !dbg !145 - %"$gasrem_1505" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1506" = icmp ugt i64 2, %"$gasrem_1505" - br i1 %"$gascmp_1506", label %"$out_of_gas_1507", label %"$have_gas_1508" - -"$out_of_gas_1507": ; preds = %"$have_gas_1499" - call void @_out_of_gas() - br label %"$have_gas_1508" - -"$have_gas_1508": ; preds = %"$out_of_gas_1507", %"$have_gas_1499" - %"$consume_1509" = sub i64 %"$gasrem_1505", 2 - store i64 %"$consume_1509", i64* @_gasrem, align 8 - %"$x_cast_1511" = load %"TName_Option_ByStr20_with_contract_field_f_:_ByStr20_end"*, %"TName_Option_ByStr20_with_contract_field_f_:_ByStr20_end"** %x_cast, align 8 - %"$x_cast_tag_1512" = getelementptr inbounds %"TName_Option_ByStr20_with_contract_field_f_:_ByStr20_end", %"TName_Option_ByStr20_with_contract_field_f_:_ByStr20_end"* %"$x_cast_1511", i32 0, i32 0 - %"$x_cast_tag_1513" = load i8, i8* %"$x_cast_tag_1512", align 1 - switch i8 %"$x_cast_tag_1513", label %"$empty_default_1514" [ - i8 0, label %"$Some_1515" - i8 1, label %"$None_1648" - ], !dbg !146 - -"$Some_1515": ; preds = %"$have_gas_1508" - %"$x_cast_1516" = bitcast %"TName_Option_ByStr20_with_contract_field_f_:_ByStr20_end"* %"$x_cast_1511" to %"CName_Some_ByStr20_with_contract_field_f_:_ByStr20_end"* - %"$x_as_address_gep_1517" = getelementptr inbounds %"CName_Some_ByStr20_with_contract_field_f_:_ByStr20_end", %"CName_Some_ByStr20_with_contract_field_f_:_ByStr20_end"* %"$x_cast_1516", i32 0, i32 1 - %"$x_as_address_load_1518" = load [20 x i8], [20 x i8]* %"$x_as_address_gep_1517", align 1 - %x_as_address = alloca [20 x i8], align 1 - store [20 x i8] %"$x_as_address_load_1518", [20 x i8]* %x_as_address, align 1 - %f = alloca [20 x i8], align 1 - %"$execptr_load_1520" = load i8*, i8** @_execptr, align 8 - %"$f_x_as_address_1521" = alloca [20 x i8], align 1 - %"$x_as_address_1522" = load [20 x i8], [20 x i8]* %x_as_address, align 1 - store [20 x i8] %"$x_as_address_1522", [20 x i8]* %"$f_x_as_address_1521", align 1 - %"$f_call_1523" = call i8* @_fetch_remote_field(i8* %"$execptr_load_1520", [20 x i8]* %"$f_x_as_address_1521", i8* getelementptr inbounds ([2 x i8], [2 x i8]* @"$f_1519", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Bystr20_54", i32 0, i8* null, i32 1), !dbg !147 - %"$f_1524" = bitcast i8* %"$f_call_1523" to [20 x i8]* - %"$f_1525" = load [20 x i8], [20 x i8]* %"$f_1524", align 1 - store [20 x i8] %"$f_1525", [20 x i8]* %f, align 1 - %"$_literal_cost_f_1526" = alloca [20 x i8], align 1 - %"$f_1527" = load [20 x i8], [20 x i8]* %f, align 1 - store [20 x i8] %"$f_1527", [20 x i8]* %"$_literal_cost_f_1526", align 1 - %"$$_literal_cost_f_1526_1528" = bitcast [20 x i8]* %"$_literal_cost_f_1526" to i8* - %"$_literal_cost_call_1529" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Bystr20_54", i8* %"$$_literal_cost_f_1526_1528") - %"$gasadd_1530" = add i64 %"$_literal_cost_call_1529", 0 - %"$gasrem_1531" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1532" = icmp ugt i64 %"$gasadd_1530", %"$gasrem_1531" - br i1 %"$gascmp_1532", label %"$out_of_gas_1533", label %"$have_gas_1534" - -"$out_of_gas_1533": ; preds = %"$Some_1515" - call void @_out_of_gas() - br label %"$have_gas_1534" - -"$have_gas_1534": ; preds = %"$out_of_gas_1533", %"$Some_1515" - %"$consume_1535" = sub i64 %"$gasrem_1531", %"$gasadd_1530" - store i64 %"$consume_1535", i64* @_gasrem, align 8 + %"$x_1693" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$x_1535", [20 x i8]** %"$x_1693", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$x_1693", metadata !324, metadata !DIExpression()), !dbg !325 + %"$_sender_1692" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_sender_1534", [20 x i8]** %"$_sender_1692", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_sender_1692", metadata !326, metadata !DIExpression()), !dbg !327 + %"$_origin_1691" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_origin_1533", [20 x i8]** %"$_origin_1691", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_origin_1691", metadata !328, metadata !DIExpression()), !dbg !327 + %"$_amount_1690" = alloca %Uint128, align 8 + store %Uint128 %_amount, %Uint128* %"$_amount_1690", align 8 + call void @llvm.dbg.declare(metadata %Uint128* %"$_amount_1690", metadata !329, metadata !DIExpression()), !dbg !327 + %_origin = load [20 x i8], [20 x i8]* %"$_origin_1533", align 1 + %_sender = load [20 x i8], [20 x i8]* %"$_sender_1534", align 1 + %x = load [20 x i8], [20 x i8]* %"$x_1535", align 1 %"$gasrem_1536" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1537" = icmp ugt i64 5, %"$gasrem_1536" + %"$gascmp_1537" = icmp ugt i64 4, %"$gasrem_1536" br i1 %"$gascmp_1537", label %"$out_of_gas_1538", label %"$have_gas_1539" -"$out_of_gas_1538": ; preds = %"$have_gas_1534" +"$out_of_gas_1538": ; preds = %entry call void @_out_of_gas() br label %"$have_gas_1539" -"$have_gas_1539": ; preds = %"$out_of_gas_1538", %"$have_gas_1534" - %"$consume_1540" = sub i64 %"$gasrem_1536", 5 +"$have_gas_1539": ; preds = %"$out_of_gas_1538", %entry + %"$consume_1540" = sub i64 %"$gasrem_1536", 4 store i64 %"$consume_1540", i64* @_gasrem, align 8 - %f_cast = alloca %"TName_Option_ByStr20_with_contract_field_g_:_Bool,_field_h_:_Int256_end"*, align 8 + %x_cast = alloca %"TName_Option_ByStr20_with_contract_field_f_:_ByStr20_end"*, align 8 + call void @llvm.dbg.declare(metadata %"TName_Option_ByStr20_with_contract_field_f_:_ByStr20_end"** %x_cast, metadata !330, metadata !DIExpression()), !dbg !333 %"$execptr_load_1541" = load i8*, i8** @_execptr, align 8 - %"$_dynamic_typecast_f_1542" = alloca [20 x i8], align 1 - %"$f_1543" = load [20 x i8], [20 x i8]* %f, align 1 - store [20 x i8] %"$f_1543", [20 x i8]* %"$_dynamic_typecast_f_1542", align 1 - %"$_dynamic_typecast_call_1544" = call i8* @_dynamic_typecast(i8* %"$execptr_load_1541", [20 x i8]* %"$_dynamic_typecast_f_1542", %_TyDescrTy_Typ* @"$TyDescr_Addr_70"), !dbg !150 - %"$_dynamic_typecast_1545" = bitcast i8* %"$_dynamic_typecast_call_1544" to %"TName_Option_ByStr20_with_contract_field_g_:_Bool,_field_h_:_Int256_end"* - store %"TName_Option_ByStr20_with_contract_field_g_:_Bool,_field_h_:_Int256_end"* %"$_dynamic_typecast_1545", %"TName_Option_ByStr20_with_contract_field_g_:_Bool,_field_h_:_Int256_end"** %f_cast, align 8, !dbg !150 - %"$gasrem_1546" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1547" = icmp ugt i64 2, %"$gasrem_1546" - br i1 %"$gascmp_1547", label %"$out_of_gas_1548", label %"$have_gas_1549" - -"$out_of_gas_1548": ; preds = %"$have_gas_1539" - call void @_out_of_gas() - br label %"$have_gas_1549" - -"$have_gas_1549": ; preds = %"$out_of_gas_1548", %"$have_gas_1539" - %"$consume_1550" = sub i64 %"$gasrem_1546", 2 - store i64 %"$consume_1550", i64* @_gasrem, align 8 - %"$f_cast_1552" = load %"TName_Option_ByStr20_with_contract_field_g_:_Bool,_field_h_:_Int256_end"*, %"TName_Option_ByStr20_with_contract_field_g_:_Bool,_field_h_:_Int256_end"** %f_cast, align 8 - %"$f_cast_tag_1553" = getelementptr inbounds %"TName_Option_ByStr20_with_contract_field_g_:_Bool,_field_h_:_Int256_end", %"TName_Option_ByStr20_with_contract_field_g_:_Bool,_field_h_:_Int256_end"* %"$f_cast_1552", i32 0, i32 0 - %"$f_cast_tag_1554" = load i8, i8* %"$f_cast_tag_1553", align 1 - switch i8 %"$f_cast_tag_1554", label %"$empty_default_1555" [ - i8 0, label %"$Some_1556" - i8 1, label %"$None_1646" - ], !dbg !151 - -"$Some_1556": ; preds = %"$have_gas_1549" - %"$f_cast_1557" = bitcast %"TName_Option_ByStr20_with_contract_field_g_:_Bool,_field_h_:_Int256_end"* %"$f_cast_1552" to %"CName_Some_ByStr20_with_contract_field_g_:_Bool,_field_h_:_Int256_end"* - %"$f_as_address_gep_1558" = getelementptr inbounds %"CName_Some_ByStr20_with_contract_field_g_:_Bool,_field_h_:_Int256_end", %"CName_Some_ByStr20_with_contract_field_g_:_Bool,_field_h_:_Int256_end"* %"$f_cast_1557", i32 0, i32 1 - %"$f_as_address_load_1559" = load [20 x i8], [20 x i8]* %"$f_as_address_gep_1558", align 1 + %"$_dynamic_typecast_x_1542" = alloca [20 x i8], align 1 + store [20 x i8] %x, [20 x i8]* %"$_dynamic_typecast_x_1542", align 1 + %"$_dynamic_typecast_call_1543" = call i8* @_dynamic_typecast(i8* %"$execptr_load_1541", [20 x i8]* %"$_dynamic_typecast_x_1542", %_TyDescrTy_Typ* @"$TyDescr_Addr_71"), !dbg !333 + %"$_dynamic_typecast_1544" = bitcast i8* %"$_dynamic_typecast_call_1543" to %"TName_Option_ByStr20_with_contract_field_f_:_ByStr20_end"* + store %"TName_Option_ByStr20_with_contract_field_f_:_ByStr20_end"* %"$_dynamic_typecast_1544", %"TName_Option_ByStr20_with_contract_field_f_:_ByStr20_end"** %x_cast, align 8, !dbg !333 + %"$gasrem_1545" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1546" = icmp ugt i64 2, %"$gasrem_1545" + br i1 %"$gascmp_1546", label %"$out_of_gas_1547", label %"$have_gas_1548" + +"$out_of_gas_1547": ; preds = %"$have_gas_1539" + call void @_out_of_gas() + br label %"$have_gas_1548" + +"$have_gas_1548": ; preds = %"$out_of_gas_1547", %"$have_gas_1539" + %"$consume_1549" = sub i64 %"$gasrem_1545", 2 + store i64 %"$consume_1549", i64* @_gasrem, align 8 + %"$x_cast_1551" = load %"TName_Option_ByStr20_with_contract_field_f_:_ByStr20_end"*, %"TName_Option_ByStr20_with_contract_field_f_:_ByStr20_end"** %x_cast, align 8 + %"$x_cast_tag_1552" = getelementptr inbounds %"TName_Option_ByStr20_with_contract_field_f_:_ByStr20_end", %"TName_Option_ByStr20_with_contract_field_f_:_ByStr20_end"* %"$x_cast_1551", i32 0, i32 0 + %"$x_cast_tag_1553" = load i8, i8* %"$x_cast_tag_1552", align 1 + switch i8 %"$x_cast_tag_1553", label %"$empty_default_1554" [ + i8 0, label %"$Some_1555" + i8 1, label %"$None_1688" + ], !dbg !334 + +"$Some_1555": ; preds = %"$have_gas_1548" + %"$x_cast_1556" = bitcast %"TName_Option_ByStr20_with_contract_field_f_:_ByStr20_end"* %"$x_cast_1551" to %"CName_Some_ByStr20_with_contract_field_f_:_ByStr20_end"* + %"$x_as_address_gep_1557" = getelementptr inbounds %"CName_Some_ByStr20_with_contract_field_f_:_ByStr20_end", %"CName_Some_ByStr20_with_contract_field_f_:_ByStr20_end"* %"$x_cast_1556", i32 0, i32 1 + %"$x_as_address_load_1558" = load [20 x i8], [20 x i8]* %"$x_as_address_gep_1557", align 1 + %x_as_address = alloca [20 x i8], align 1 + store [20 x i8] %"$x_as_address_load_1558", [20 x i8]* %x_as_address, align 1 + %f = alloca [20 x i8], align 1 + call void @llvm.dbg.declare(metadata [20 x i8]* %f, metadata !335, metadata !DIExpression()), !dbg !338 + %"$execptr_load_1560" = load i8*, i8** @_execptr, align 8 + %"$f_x_as_address_1561" = alloca [20 x i8], align 1 + %"$x_as_address_1562" = load [20 x i8], [20 x i8]* %x_as_address, align 1 + store [20 x i8] %"$x_as_address_1562", [20 x i8]* %"$f_x_as_address_1561", align 1 + %"$f_call_1563" = call i8* @_fetch_remote_field(i8* %"$execptr_load_1560", [20 x i8]* %"$f_x_as_address_1561", i8* getelementptr inbounds ([2 x i8], [2 x i8]* @"$f_1559", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Bystr20_54", i32 0, i8* null, i32 1), !dbg !338 + %"$f_1564" = bitcast i8* %"$f_call_1563" to [20 x i8]* + %"$f_1565" = load [20 x i8], [20 x i8]* %"$f_1564", align 1 + store [20 x i8] %"$f_1565", [20 x i8]* %f, align 1 + %"$_literal_cost_f_1566" = alloca [20 x i8], align 1 + %"$f_1567" = load [20 x i8], [20 x i8]* %f, align 1 + store [20 x i8] %"$f_1567", [20 x i8]* %"$_literal_cost_f_1566", align 1 + %"$$_literal_cost_f_1566_1568" = bitcast [20 x i8]* %"$_literal_cost_f_1566" to i8* + %"$_literal_cost_call_1569" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Bystr20_54", i8* %"$$_literal_cost_f_1566_1568") + %"$gasadd_1570" = add i64 %"$_literal_cost_call_1569", 0 + %"$gasrem_1571" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1572" = icmp ugt i64 %"$gasadd_1570", %"$gasrem_1571" + br i1 %"$gascmp_1572", label %"$out_of_gas_1573", label %"$have_gas_1574" + +"$out_of_gas_1573": ; preds = %"$Some_1555" + call void @_out_of_gas() + br label %"$have_gas_1574" + +"$have_gas_1574": ; preds = %"$out_of_gas_1573", %"$Some_1555" + %"$consume_1575" = sub i64 %"$gasrem_1571", %"$gasadd_1570" + store i64 %"$consume_1575", i64* @_gasrem, align 8 + %"$gasrem_1576" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1577" = icmp ugt i64 5, %"$gasrem_1576" + br i1 %"$gascmp_1577", label %"$out_of_gas_1578", label %"$have_gas_1579" + +"$out_of_gas_1578": ; preds = %"$have_gas_1574" + call void @_out_of_gas() + br label %"$have_gas_1579" + +"$have_gas_1579": ; preds = %"$out_of_gas_1578", %"$have_gas_1574" + %"$consume_1580" = sub i64 %"$gasrem_1576", 5 + store i64 %"$consume_1580", i64* @_gasrem, align 8 + %f_cast = alloca %"TName_Option_ByStr20_with_contract_field_g_:_Bool,_field_h_:_Int256_end"*, align 8 + call void @llvm.dbg.declare(metadata %"TName_Option_ByStr20_with_contract_field_g_:_Bool,_field_h_:_Int256_end"** %f_cast, metadata !339, metadata !DIExpression()), !dbg !342 + %"$execptr_load_1581" = load i8*, i8** @_execptr, align 8 + %"$_dynamic_typecast_f_1582" = alloca [20 x i8], align 1 + %"$f_1583" = load [20 x i8], [20 x i8]* %f, align 1 + store [20 x i8] %"$f_1583", [20 x i8]* %"$_dynamic_typecast_f_1582", align 1 + %"$_dynamic_typecast_call_1584" = call i8* @_dynamic_typecast(i8* %"$execptr_load_1581", [20 x i8]* %"$_dynamic_typecast_f_1582", %_TyDescrTy_Typ* @"$TyDescr_Addr_70"), !dbg !342 + %"$_dynamic_typecast_1585" = bitcast i8* %"$_dynamic_typecast_call_1584" to %"TName_Option_ByStr20_with_contract_field_g_:_Bool,_field_h_:_Int256_end"* + store %"TName_Option_ByStr20_with_contract_field_g_:_Bool,_field_h_:_Int256_end"* %"$_dynamic_typecast_1585", %"TName_Option_ByStr20_with_contract_field_g_:_Bool,_field_h_:_Int256_end"** %f_cast, align 8, !dbg !342 + %"$gasrem_1586" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1587" = icmp ugt i64 2, %"$gasrem_1586" + br i1 %"$gascmp_1587", label %"$out_of_gas_1588", label %"$have_gas_1589" + +"$out_of_gas_1588": ; preds = %"$have_gas_1579" + call void @_out_of_gas() + br label %"$have_gas_1589" + +"$have_gas_1589": ; preds = %"$out_of_gas_1588", %"$have_gas_1579" + %"$consume_1590" = sub i64 %"$gasrem_1586", 2 + store i64 %"$consume_1590", i64* @_gasrem, align 8 + %"$f_cast_1592" = load %"TName_Option_ByStr20_with_contract_field_g_:_Bool,_field_h_:_Int256_end"*, %"TName_Option_ByStr20_with_contract_field_g_:_Bool,_field_h_:_Int256_end"** %f_cast, align 8 + %"$f_cast_tag_1593" = getelementptr inbounds %"TName_Option_ByStr20_with_contract_field_g_:_Bool,_field_h_:_Int256_end", %"TName_Option_ByStr20_with_contract_field_g_:_Bool,_field_h_:_Int256_end"* %"$f_cast_1592", i32 0, i32 0 + %"$f_cast_tag_1594" = load i8, i8* %"$f_cast_tag_1593", align 1 + switch i8 %"$f_cast_tag_1594", label %"$empty_default_1595" [ + i8 0, label %"$Some_1596" + i8 1, label %"$None_1686" + ], !dbg !343 + +"$Some_1596": ; preds = %"$have_gas_1589" + %"$f_cast_1597" = bitcast %"TName_Option_ByStr20_with_contract_field_g_:_Bool,_field_h_:_Int256_end"* %"$f_cast_1592" to %"CName_Some_ByStr20_with_contract_field_g_:_Bool,_field_h_:_Int256_end"* + %"$f_as_address_gep_1598" = getelementptr inbounds %"CName_Some_ByStr20_with_contract_field_g_:_Bool,_field_h_:_Int256_end", %"CName_Some_ByStr20_with_contract_field_g_:_Bool,_field_h_:_Int256_end"* %"$f_cast_1597", i32 0, i32 1 + %"$f_as_address_load_1599" = load [20 x i8], [20 x i8]* %"$f_as_address_gep_1598", align 1 %f_as_address = alloca [20 x i8], align 1 - store [20 x i8] %"$f_as_address_load_1559", [20 x i8]* %f_as_address, align 1 + store [20 x i8] %"$f_as_address_load_1599", [20 x i8]* %f_as_address, align 1 %g = alloca %TName_Bool*, align 8 - %"$execptr_load_1561" = load i8*, i8** @_execptr, align 8 - %"$g_f_as_address_1562" = alloca [20 x i8], align 1 - %"$f_as_address_1563" = load [20 x i8], [20 x i8]* %f_as_address, align 1 - store [20 x i8] %"$f_as_address_1563", [20 x i8]* %"$g_f_as_address_1562", align 1 - %"$g_call_1564" = call i8* @_fetch_remote_field(i8* %"$execptr_load_1561", [20 x i8]* %"$g_f_as_address_1562", i8* getelementptr inbounds ([2 x i8], [2 x i8]* @"$g_1560", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_66", i32 0, i8* null, i32 1), !dbg !152 - %"$g_1565" = bitcast i8* %"$g_call_1564" to %TName_Bool* - store %TName_Bool* %"$g_1565", %TName_Bool** %g, align 8 - %"$g_1566" = load %TName_Bool*, %TName_Bool** %g, align 8 - %"$$g_1566_1567" = bitcast %TName_Bool* %"$g_1566" to i8* - %"$_literal_cost_call_1568" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_66", i8* %"$$g_1566_1567") - %"$gasadd_1569" = add i64 %"$_literal_cost_call_1568", 0 - %"$gasrem_1570" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1571" = icmp ugt i64 %"$gasadd_1569", %"$gasrem_1570" - br i1 %"$gascmp_1571", label %"$out_of_gas_1572", label %"$have_gas_1573" - -"$out_of_gas_1572": ; preds = %"$Some_1556" - call void @_out_of_gas() - br label %"$have_gas_1573" - -"$have_gas_1573": ; preds = %"$out_of_gas_1572", %"$Some_1556" - %"$consume_1574" = sub i64 %"$gasrem_1570", %"$gasadd_1569" - store i64 %"$consume_1574", i64* @_gasrem, align 8 - %"$gasrem_1575" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1576" = icmp ugt i64 1, %"$gasrem_1575" - br i1 %"$gascmp_1576", label %"$out_of_gas_1577", label %"$have_gas_1578" - -"$out_of_gas_1577": ; preds = %"$have_gas_1573" - call void @_out_of_gas() - br label %"$have_gas_1578" - -"$have_gas_1578": ; preds = %"$out_of_gas_1577", %"$have_gas_1573" - %"$consume_1579" = sub i64 %"$gasrem_1575", 1 - store i64 %"$consume_1579", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %g, metadata !344, metadata !DIExpression()), !dbg !347 + %"$execptr_load_1601" = load i8*, i8** @_execptr, align 8 + %"$g_f_as_address_1602" = alloca [20 x i8], align 1 + %"$f_as_address_1603" = load [20 x i8], [20 x i8]* %f_as_address, align 1 + store [20 x i8] %"$f_as_address_1603", [20 x i8]* %"$g_f_as_address_1602", align 1 + %"$g_call_1604" = call i8* @_fetch_remote_field(i8* %"$execptr_load_1601", [20 x i8]* %"$g_f_as_address_1602", i8* getelementptr inbounds ([2 x i8], [2 x i8]* @"$g_1600", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_66", i32 0, i8* null, i32 1), !dbg !347 + %"$g_1605" = bitcast i8* %"$g_call_1604" to %TName_Bool* + store %TName_Bool* %"$g_1605", %TName_Bool** %g, align 8 + %"$g_1606" = load %TName_Bool*, %TName_Bool** %g, align 8 + %"$$g_1606_1607" = bitcast %TName_Bool* %"$g_1606" to i8* + %"$_literal_cost_call_1608" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_66", i8* %"$$g_1606_1607") + %"$gasadd_1609" = add i64 %"$_literal_cost_call_1608", 0 + %"$gasrem_1610" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1611" = icmp ugt i64 %"$gasadd_1609", %"$gasrem_1610" + br i1 %"$gascmp_1611", label %"$out_of_gas_1612", label %"$have_gas_1613" + +"$out_of_gas_1612": ; preds = %"$Some_1596" + call void @_out_of_gas() + br label %"$have_gas_1613" + +"$have_gas_1613": ; preds = %"$out_of_gas_1612", %"$Some_1596" + %"$consume_1614" = sub i64 %"$gasrem_1610", %"$gasadd_1609" + store i64 %"$consume_1614", i64* @_gasrem, 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" + +"$out_of_gas_1617": ; preds = %"$have_gas_1613" + call void @_out_of_gas() + br label %"$have_gas_1618" + +"$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 %g_res = alloca %TName_Option_Bool*, align 8 - %"$gasrem_1580" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1581" = icmp ugt i64 1, %"$gasrem_1580" - br i1 %"$gascmp_1581", label %"$out_of_gas_1582", label %"$have_gas_1583" - -"$out_of_gas_1582": ; preds = %"$have_gas_1578" - call void @_out_of_gas() - br label %"$have_gas_1583" - -"$have_gas_1583": ; preds = %"$out_of_gas_1582", %"$have_gas_1578" - %"$consume_1584" = sub i64 %"$gasrem_1580", 1 - store i64 %"$consume_1584", i64* @_gasrem, align 8 - %"$g_1585" = load %TName_Bool*, %TName_Bool** %g, align 8 - %"$adtval_1586_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_1586_salloc" = call i8* @_salloc(i8* %"$adtval_1586_load", i64 9) - %"$adtval_1586" = bitcast i8* %"$adtval_1586_salloc" to %CName_Some_Bool* - %"$adtgep_1587" = getelementptr inbounds %CName_Some_Bool, %CName_Some_Bool* %"$adtval_1586", i32 0, i32 0 - store i8 0, i8* %"$adtgep_1587", align 1 - %"$adtgep_1588" = getelementptr inbounds %CName_Some_Bool, %CName_Some_Bool* %"$adtval_1586", i32 0, i32 1 - store %TName_Bool* %"$g_1585", %TName_Bool** %"$adtgep_1588", align 8 - %"$adtptr_1589" = bitcast %CName_Some_Bool* %"$adtval_1586" to %TName_Option_Bool* - store %TName_Option_Bool* %"$adtptr_1589", %TName_Option_Bool** %g_res, align 8, !dbg !155 - %"$g_res_1590" = load %TName_Option_Bool*, %TName_Option_Bool** %g_res, align 8 - %"$$g_res_1590_1591" = bitcast %TName_Option_Bool* %"$g_res_1590" to i8* - %"$_literal_cost_call_1592" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_Bool_62", i8* %"$$g_res_1590_1591") - %"$gasrem_1593" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1594" = icmp ugt i64 %"$_literal_cost_call_1592", %"$gasrem_1593" - br i1 %"$gascmp_1594", label %"$out_of_gas_1595", label %"$have_gas_1596" - -"$out_of_gas_1595": ; preds = %"$have_gas_1583" - call void @_out_of_gas() - br label %"$have_gas_1596" - -"$have_gas_1596": ; preds = %"$out_of_gas_1595", %"$have_gas_1583" - %"$consume_1597" = sub i64 %"$gasrem_1593", %"$_literal_cost_call_1592" - store i64 %"$consume_1597", i64* @_gasrem, align 8 - %"$execptr_load_1598" = load i8*, i8** @_execptr, align 8 - %"$g_res_1600" = load %TName_Option_Bool*, %TName_Option_Bool** %g_res, align 8 - %"$update_value_1601" = bitcast %TName_Option_Bool* %"$g_res_1600" to i8* - call void @_update_field(i8* %"$execptr_load_1598", i8* getelementptr inbounds ([13 x i8], [13 x i8]* @"$test_7_g_res_1599", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_ADT_Option_Bool_62", i32 0, i8* null, i8* %"$update_value_1601"), !dbg !156 + call void @llvm.dbg.declare(metadata %TName_Option_Bool** %g_res, metadata !348, metadata !DIExpression()), !dbg !349 + %"$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_1618" + call void @_out_of_gas() + br label %"$have_gas_1623" + +"$have_gas_1623": ; preds = %"$out_of_gas_1622", %"$have_gas_1618" + %"$consume_1624" = sub i64 %"$gasrem_1620", 1 + store i64 %"$consume_1624", i64* @_gasrem, align 8 + %"$g_1625" = load %TName_Bool*, %TName_Bool** %g, align 8 + %"$adtval_1626_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_1626_salloc" = call i8* @_salloc(i8* %"$adtval_1626_load", i64 9) + %"$adtval_1626" = bitcast i8* %"$adtval_1626_salloc" to %CName_Some_Bool* + %"$adtgep_1627" = getelementptr inbounds %CName_Some_Bool, %CName_Some_Bool* %"$adtval_1626", i32 0, i32 0 + store i8 0, i8* %"$adtgep_1627", align 1 + %"$adtgep_1628" = getelementptr inbounds %CName_Some_Bool, %CName_Some_Bool* %"$adtval_1626", i32 0, i32 1 + store %TName_Bool* %"$g_1625", %TName_Bool** %"$adtgep_1628", align 8 + %"$adtptr_1629" = bitcast %CName_Some_Bool* %"$adtval_1626" to %TName_Option_Bool* + store %TName_Option_Bool* %"$adtptr_1629", %TName_Option_Bool** %g_res, align 8, !dbg !350 + %"$g_res_1630" = load %TName_Option_Bool*, %TName_Option_Bool** %g_res, align 8 + %"$$g_res_1630_1631" = bitcast %TName_Option_Bool* %"$g_res_1630" to i8* + %"$_literal_cost_call_1632" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_Bool_62", i8* %"$$g_res_1630_1631") + %"$gasrem_1633" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1634" = icmp ugt i64 %"$_literal_cost_call_1632", %"$gasrem_1633" + br i1 %"$gascmp_1634", label %"$out_of_gas_1635", label %"$have_gas_1636" + +"$out_of_gas_1635": ; preds = %"$have_gas_1623" + call void @_out_of_gas() + br label %"$have_gas_1636" + +"$have_gas_1636": ; preds = %"$out_of_gas_1635", %"$have_gas_1623" + %"$consume_1637" = sub i64 %"$gasrem_1633", %"$_literal_cost_call_1632" + store i64 %"$consume_1637", i64* @_gasrem, align 8 + %"$execptr_load_1638" = load i8*, i8** @_execptr, align 8 + %"$g_res_1640" = load %TName_Option_Bool*, %TName_Option_Bool** %g_res, align 8 + %"$update_value_1641" = bitcast %TName_Option_Bool* %"$g_res_1640" to i8* + call void @_update_field(i8* %"$execptr_load_1638", i8* getelementptr inbounds ([13 x i8], [13 x i8]* @"$test_7_g_res_1639", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_ADT_Option_Bool_62", i32 0, i8* null, i8* %"$update_value_1641"), !dbg !351 %h = alloca %Int256, align 8 - %"$execptr_load_1603" = load i8*, i8** @_execptr, align 8 - %"$h_f_as_address_1604" = alloca [20 x i8], align 1 - %"$f_as_address_1605" = load [20 x i8], [20 x i8]* %f_as_address, align 1 - store [20 x i8] %"$f_as_address_1605", [20 x i8]* %"$h_f_as_address_1604", align 1 - %"$h_call_1606" = call i8* @_fetch_remote_field(i8* %"$execptr_load_1603", [20 x i8]* %"$h_f_as_address_1604", i8* getelementptr inbounds ([2 x i8], [2 x i8]* @"$h_1602", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Int256_36", i32 0, i8* null, i32 1), !dbg !157 - %"$h_1607" = bitcast i8* %"$h_call_1606" to %Int256* - %"$h_1608" = load %Int256, %Int256* %"$h_1607", align 8 - store %Int256 %"$h_1608", %Int256* %h, align 8 - %"$_literal_cost_h_1609" = alloca %Int256, align 8 - %"$h_1610" = load %Int256, %Int256* %h, align 8 - store %Int256 %"$h_1610", %Int256* %"$_literal_cost_h_1609", align 8 - %"$$_literal_cost_h_1609_1611" = bitcast %Int256* %"$_literal_cost_h_1609" to i8* - %"$_literal_cost_call_1612" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Int256_36", i8* %"$$_literal_cost_h_1609_1611") - %"$gasadd_1613" = add i64 %"$_literal_cost_call_1612", 0 - %"$gasrem_1614" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1615" = icmp ugt i64 %"$gasadd_1613", %"$gasrem_1614" - br i1 %"$gascmp_1615", label %"$out_of_gas_1616", label %"$have_gas_1617" - -"$out_of_gas_1616": ; preds = %"$have_gas_1596" - call void @_out_of_gas() - br label %"$have_gas_1617" - -"$have_gas_1617": ; preds = %"$out_of_gas_1616", %"$have_gas_1596" - %"$consume_1618" = sub i64 %"$gasrem_1614", %"$gasadd_1613" - store i64 %"$consume_1618", i64* @_gasrem, align 8 - %"$gasrem_1619" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1620" = icmp ugt i64 1, %"$gasrem_1619" - br i1 %"$gascmp_1620", label %"$out_of_gas_1621", label %"$have_gas_1622" - -"$out_of_gas_1621": ; preds = %"$have_gas_1617" - call void @_out_of_gas() - br label %"$have_gas_1622" - -"$have_gas_1622": ; preds = %"$out_of_gas_1621", %"$have_gas_1617" - %"$consume_1623" = sub i64 %"$gasrem_1619", 1 - store i64 %"$consume_1623", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %Int256* %h, metadata !352, metadata !DIExpression()), !dbg !354 + %"$execptr_load_1643" = load i8*, i8** @_execptr, align 8 + %"$h_f_as_address_1644" = alloca [20 x i8], align 1 + %"$f_as_address_1645" = load [20 x i8], [20 x i8]* %f_as_address, align 1 + store [20 x i8] %"$f_as_address_1645", [20 x i8]* %"$h_f_as_address_1644", align 1 + %"$h_call_1646" = call i8* @_fetch_remote_field(i8* %"$execptr_load_1643", [20 x i8]* %"$h_f_as_address_1644", i8* getelementptr inbounds ([2 x i8], [2 x i8]* @"$h_1642", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Int256_36", i32 0, i8* null, i32 1), !dbg !354 + %"$h_1647" = bitcast i8* %"$h_call_1646" to %Int256* + %"$h_1648" = load %Int256, %Int256* %"$h_1647", align 8 + store %Int256 %"$h_1648", %Int256* %h, align 8 + %"$_literal_cost_h_1649" = alloca %Int256, align 8 + %"$h_1650" = load %Int256, %Int256* %h, align 8 + store %Int256 %"$h_1650", %Int256* %"$_literal_cost_h_1649", align 8 + %"$$_literal_cost_h_1649_1651" = bitcast %Int256* %"$_literal_cost_h_1649" to i8* + %"$_literal_cost_call_1652" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Int256_36", i8* %"$$_literal_cost_h_1649_1651") + %"$gasadd_1653" = add i64 %"$_literal_cost_call_1652", 0 + %"$gasrem_1654" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1655" = icmp ugt i64 %"$gasadd_1653", %"$gasrem_1654" + br i1 %"$gascmp_1655", label %"$out_of_gas_1656", label %"$have_gas_1657" + +"$out_of_gas_1656": ; preds = %"$have_gas_1636" + call void @_out_of_gas() + br label %"$have_gas_1657" + +"$have_gas_1657": ; preds = %"$out_of_gas_1656", %"$have_gas_1636" + %"$consume_1658" = sub i64 %"$gasrem_1654", %"$gasadd_1653" + store i64 %"$consume_1658", i64* @_gasrem, align 8 + %"$gasrem_1659" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1660" = icmp ugt i64 1, %"$gasrem_1659" + br i1 %"$gascmp_1660", label %"$out_of_gas_1661", label %"$have_gas_1662" + +"$out_of_gas_1661": ; preds = %"$have_gas_1657" + call void @_out_of_gas() + br label %"$have_gas_1662" + +"$have_gas_1662": ; preds = %"$out_of_gas_1661", %"$have_gas_1657" + %"$consume_1663" = sub i64 %"$gasrem_1659", 1 + store i64 %"$consume_1663", i64* @_gasrem, align 8 %h_res = alloca %TName_Option_Int256*, align 8 - %"$gasrem_1624" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1625" = icmp ugt i64 1, %"$gasrem_1624" - br i1 %"$gascmp_1625", label %"$out_of_gas_1626", label %"$have_gas_1627" - -"$out_of_gas_1626": ; preds = %"$have_gas_1622" - call void @_out_of_gas() - br label %"$have_gas_1627" - -"$have_gas_1627": ; preds = %"$out_of_gas_1626", %"$have_gas_1622" - %"$consume_1628" = sub i64 %"$gasrem_1624", 1 - store i64 %"$consume_1628", i64* @_gasrem, align 8 - %"$h_1629" = load %Int256, %Int256* %h, align 8 - %"$adtval_1630_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_1630_salloc" = call i8* @_salloc(i8* %"$adtval_1630_load", i64 33) - %"$adtval_1630" = bitcast i8* %"$adtval_1630_salloc" to %CName_Some_Int256* - %"$adtgep_1631" = getelementptr inbounds %CName_Some_Int256, %CName_Some_Int256* %"$adtval_1630", i32 0, i32 0 - store i8 0, i8* %"$adtgep_1631", align 1 - %"$adtgep_1632" = getelementptr inbounds %CName_Some_Int256, %CName_Some_Int256* %"$adtval_1630", i32 0, i32 1 - store %Int256 %"$h_1629", %Int256* %"$adtgep_1632", align 8 - %"$adtptr_1633" = bitcast %CName_Some_Int256* %"$adtval_1630" to %TName_Option_Int256* - store %TName_Option_Int256* %"$adtptr_1633", %TName_Option_Int256** %h_res, align 8, !dbg !158 - %"$h_res_1634" = load %TName_Option_Int256*, %TName_Option_Int256** %h_res, align 8 - %"$$h_res_1634_1635" = bitcast %TName_Option_Int256* %"$h_res_1634" to i8* - %"$_literal_cost_call_1636" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_Int256_61", i8* %"$$h_res_1634_1635") - %"$gasrem_1637" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1638" = icmp ugt i64 %"$_literal_cost_call_1636", %"$gasrem_1637" - br i1 %"$gascmp_1638", label %"$out_of_gas_1639", label %"$have_gas_1640" - -"$out_of_gas_1639": ; preds = %"$have_gas_1627" - call void @_out_of_gas() - br label %"$have_gas_1640" - -"$have_gas_1640": ; preds = %"$out_of_gas_1639", %"$have_gas_1627" - %"$consume_1641" = sub i64 %"$gasrem_1637", %"$_literal_cost_call_1636" - store i64 %"$consume_1641", i64* @_gasrem, align 8 - %"$execptr_load_1642" = load i8*, i8** @_execptr, align 8 - %"$h_res_1644" = load %TName_Option_Int256*, %TName_Option_Int256** %h_res, align 8 - %"$update_value_1645" = bitcast %TName_Option_Int256* %"$h_res_1644" to i8* - call void @_update_field(i8* %"$execptr_load_1642", i8* getelementptr inbounds ([13 x i8], [13 x i8]* @"$test_7_h_res_1643", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_ADT_Option_Int256_61", i32 0, i8* null, i8* %"$update_value_1645"), !dbg !159 - br label %"$matchsucc_1551" - -"$None_1646": ; preds = %"$have_gas_1549" - %"$f_cast_1647" = bitcast %"TName_Option_ByStr20_with_contract_field_g_:_Bool,_field_h_:_Int256_end"* %"$f_cast_1552" to %"CName_None_ByStr20_with_contract_field_g_:_Bool,_field_h_:_Int256_end"* - br label %"$matchsucc_1551" - -"$empty_default_1555": ; preds = %"$have_gas_1549" - br label %"$matchsucc_1551" - -"$matchsucc_1551": ; preds = %"$None_1646", %"$have_gas_1640", %"$empty_default_1555" - br label %"$matchsucc_1510" - -"$None_1648": ; preds = %"$have_gas_1508" - %"$x_cast_1649" = bitcast %"TName_Option_ByStr20_with_contract_field_f_:_ByStr20_end"* %"$x_cast_1511" to %"CName_None_ByStr20_with_contract_field_f_:_ByStr20_end"* - br label %"$matchsucc_1510" - -"$empty_default_1514": ; preds = %"$have_gas_1508" - br label %"$matchsucc_1510" - -"$matchsucc_1510": ; preds = %"$None_1648", %"$matchsucc_1551", %"$empty_default_1514" + call void @llvm.dbg.declare(metadata %TName_Option_Int256** %h_res, metadata !355, metadata !DIExpression()), !dbg !356 + %"$gasrem_1664" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1665" = icmp ugt i64 1, %"$gasrem_1664" + br i1 %"$gascmp_1665", label %"$out_of_gas_1666", label %"$have_gas_1667" + +"$out_of_gas_1666": ; preds = %"$have_gas_1662" + call void @_out_of_gas() + br label %"$have_gas_1667" + +"$have_gas_1667": ; preds = %"$out_of_gas_1666", %"$have_gas_1662" + %"$consume_1668" = sub i64 %"$gasrem_1664", 1 + store i64 %"$consume_1668", i64* @_gasrem, align 8 + %"$h_1669" = load %Int256, %Int256* %h, align 8 + %"$adtval_1670_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_1670_salloc" = call i8* @_salloc(i8* %"$adtval_1670_load", i64 33) + %"$adtval_1670" = bitcast i8* %"$adtval_1670_salloc" to %CName_Some_Int256* + %"$adtgep_1671" = getelementptr inbounds %CName_Some_Int256, %CName_Some_Int256* %"$adtval_1670", i32 0, i32 0 + store i8 0, i8* %"$adtgep_1671", align 1 + %"$adtgep_1672" = getelementptr inbounds %CName_Some_Int256, %CName_Some_Int256* %"$adtval_1670", i32 0, i32 1 + store %Int256 %"$h_1669", %Int256* %"$adtgep_1672", align 8 + %"$adtptr_1673" = bitcast %CName_Some_Int256* %"$adtval_1670" to %TName_Option_Int256* + store %TName_Option_Int256* %"$adtptr_1673", %TName_Option_Int256** %h_res, align 8, !dbg !357 + %"$h_res_1674" = load %TName_Option_Int256*, %TName_Option_Int256** %h_res, align 8 + %"$$h_res_1674_1675" = bitcast %TName_Option_Int256* %"$h_res_1674" to i8* + %"$_literal_cost_call_1676" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_Int256_61", i8* %"$$h_res_1674_1675") + %"$gasrem_1677" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1678" = icmp ugt i64 %"$_literal_cost_call_1676", %"$gasrem_1677" + br i1 %"$gascmp_1678", label %"$out_of_gas_1679", label %"$have_gas_1680" + +"$out_of_gas_1679": ; preds = %"$have_gas_1667" + call void @_out_of_gas() + br label %"$have_gas_1680" + +"$have_gas_1680": ; preds = %"$out_of_gas_1679", %"$have_gas_1667" + %"$consume_1681" = sub i64 %"$gasrem_1677", %"$_literal_cost_call_1676" + store i64 %"$consume_1681", i64* @_gasrem, align 8 + %"$execptr_load_1682" = load i8*, i8** @_execptr, align 8 + %"$h_res_1684" = load %TName_Option_Int256*, %TName_Option_Int256** %h_res, align 8 + %"$update_value_1685" = bitcast %TName_Option_Int256* %"$h_res_1684" to i8* + call void @_update_field(i8* %"$execptr_load_1682", i8* getelementptr inbounds ([13 x i8], [13 x i8]* @"$test_7_h_res_1683", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_ADT_Option_Int256_61", i32 0, i8* null, i8* %"$update_value_1685"), !dbg !358 + br label %"$matchsucc_1591" + +"$None_1686": ; preds = %"$have_gas_1589" + %"$f_cast_1687" = bitcast %"TName_Option_ByStr20_with_contract_field_g_:_Bool,_field_h_:_Int256_end"* %"$f_cast_1592" to %"CName_None_ByStr20_with_contract_field_g_:_Bool,_field_h_:_Int256_end"* + br label %"$matchsucc_1591" + +"$empty_default_1595": ; preds = %"$have_gas_1589" + br label %"$matchsucc_1591" + +"$matchsucc_1591": ; preds = %"$None_1686", %"$have_gas_1680", %"$empty_default_1595" + br label %"$matchsucc_1550" + +"$None_1688": ; preds = %"$have_gas_1548" + %"$x_cast_1689" = bitcast %"TName_Option_ByStr20_with_contract_field_f_:_ByStr20_end"* %"$x_cast_1551" to %"CName_None_ByStr20_with_contract_field_f_:_ByStr20_end"* + br label %"$matchsucc_1550" + +"$empty_default_1554": ; preds = %"$have_gas_1548" + br label %"$matchsucc_1550" + +"$matchsucc_1550": ; preds = %"$None_1688", %"$matchsucc_1591", %"$empty_default_1554" ret void } -define void @CastTest7(i8* %0) !dbg !160 { +define void @CastTest7(i8* %0) !dbg !359 { entry: - %"$_amount_1651" = getelementptr i8, i8* %0, i32 0 - %"$_amount_1652" = bitcast i8* %"$_amount_1651" to %Uint128* - %_amount = load %Uint128, %Uint128* %"$_amount_1652", align 8 - %"$_origin_1653" = getelementptr i8, i8* %0, i32 16 - %"$_origin_1654" = bitcast i8* %"$_origin_1653" to [20 x i8]* - %"$_sender_1655" = getelementptr i8, i8* %0, i32 36 - %"$_sender_1656" = bitcast i8* %"$_sender_1655" to [20 x i8]* - %"$x_1657" = getelementptr i8, i8* %0, i32 56 - %"$x_1658" = bitcast i8* %"$x_1657" to [20 x i8]* - call void @"$CastTest7_1492"(%Uint128 %_amount, [20 x i8]* %"$_origin_1654", [20 x i8]* %"$_sender_1656", [20 x i8]* %"$x_1658"), !dbg !161 + %"$_amount_1695" = getelementptr i8, i8* %0, i32 0 + %"$_amount_1696" = bitcast i8* %"$_amount_1695" to %Uint128* + %_amount = load %Uint128, %Uint128* %"$_amount_1696", align 8 + %"$_origin_1697" = getelementptr i8, i8* %0, i32 16 + %"$_origin_1698" = bitcast i8* %"$_origin_1697" to [20 x i8]* + %"$_sender_1699" = getelementptr i8, i8* %0, i32 36 + %"$_sender_1700" = bitcast i8* %"$_sender_1699" to [20 x i8]* + %"$x_1701" = getelementptr i8, i8* %0, i32 56 + %"$x_1702" = bitcast i8* %"$x_1701" to [20 x i8]* + call void @"$CastTest7_1532"(%Uint128 %_amount, [20 x i8]* %"$_origin_1698", [20 x i8]* %"$_sender_1700", [20 x i8]* %"$x_1702"), !dbg !360 ret void } +attributes #0 = { nocallback nofree nosync nounwind readnone speculatable willreturn } + !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) +!1 = distinct !DICompileUnit(language: DW_LANG_C89, file: !2, producer: "Scilla Compiler", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false) !2 = !DIFile(filename: "type_casts.scilla", directory: "codegen/contr") -!3 = !{} -!4 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !5, file: !5, type: !6, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!5 = !DIFile(filename: ".", directory: ".") -!6 = !DISubroutineType(types: !7) -!7 = !{!8} -!8 = !DIBasicType(tag: DW_TAG_unspecified_type, name: "void") -!9 = !DILocation(line: 0, scope: !4) -!10 = distinct !DISubprogram(name: "_deploy_ops", linkageName: "_deploy_ops", scope: !5, file: !5, type: !6, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!11 = !DILocation(line: 9, column: 48, scope: !10) -!12 = !DILocation(line: 10, column: 57, scope: !10) -!13 = !DILocation(line: 11, column: 57, scope: !10) -!14 = !DILocation(line: 12, column: 37, scope: !10) -!15 = !DILocation(line: 13, column: 39, scope: !10) -!16 = !DILocation(line: 14, column: 39, scope: !10) -!17 = !DILocation(line: 15, column: 43, scope: !10) -!18 = !DILocation(line: 16, column: 41, scope: !10) -!19 = !DILocation(line: 17, column: 38, scope: !10) -!20 = !DILocation(line: 18, column: 43, scope: !10) -!21 = !DILocation(line: 19, column: 41, scope: !10) -!22 = !DILocation(line: 20, column: 38, scope: !10) -!23 = !DILocation(line: 21, column: 43, scope: !10) -!24 = !DILocation(line: 22, column: 41, scope: !10) -!25 = !DILocation(line: 23, column: 38, scope: !10) -!26 = !DILocation(line: 24, column: 43, scope: !10) -!27 = !DILocation(line: 25, column: 41, scope: !10) -!28 = !DILocation(line: 26, column: 38, scope: !10) -!29 = !DILocation(line: 27, column: 37, scope: !10) -!30 = !DILocation(line: 28, column: 36, scope: !10) -!31 = !DILocation(line: 29, column: 38, scope: !10) -!32 = distinct !DISubprogram(name: "CastTest1", linkageName: "CastTest1", scope: !2, file: !2, line: 31, type: !6, scopeLine: 31, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!33 = !DILocation(line: 33, column: 3, scope: !32) -!34 = !DILocation(line: 34, column: 3, scope: !32) -!35 = distinct !DISubprogram(name: "CastTest1", linkageName: "CastTest1", scope: !2, file: !2, line: 31, type: !6, scopeLine: 31, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!36 = !DILocation(line: 31, column: 12, scope: !35) -!37 = distinct !DISubprogram(name: "CastTest2", linkageName: "CastTest2", scope: !2, file: !2, line: 37, type: !6, scopeLine: 37, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!38 = !DILocation(line: 39, column: 3, scope: !37) -!39 = !DILocation(line: 40, column: 3, scope: !37) -!40 = distinct !DISubprogram(name: "CastTest2", linkageName: "CastTest2", scope: !2, file: !2, line: 37, type: !6, scopeLine: 37, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!41 = !DILocation(line: 37, column: 12, scope: !40) -!42 = distinct !DISubprogram(name: "CastTest3", linkageName: "CastTest3", scope: !2, file: !2, line: 43, type: !6, scopeLine: 43, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!43 = !DILocation(line: 45, column: 3, scope: !42) -!44 = !DILocation(line: 46, column: 3, scope: !42) -!45 = distinct !DISubprogram(name: "CastTest3", linkageName: "CastTest3", scope: !2, file: !2, line: 43, type: !6, scopeLine: 43, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!46 = !DILocation(line: 43, column: 12, scope: !45) -!47 = distinct !DISubprogram(name: "CastTest4", linkageName: "CastTest4", scope: !2, file: !2, line: 49, type: !6, scopeLine: 49, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!48 = !DILocation(line: 51, column: 3, scope: !47) -!49 = !DILocation(line: 52, column: 3, scope: !47) -!50 = !DILocation(line: 54, column: 5, scope: !51) -!51 = distinct !DILexicalBlock(scope: !52, file: !2, line: 53, column: 5) -!52 = distinct !DILexicalBlock(scope: !47, file: !2, line: 52, column: 3) -!53 = !DILocation(line: 55, column: 11, scope: !51) -!54 = !DILocation(line: 56, column: 5, scope: !51) -!55 = distinct !DISubprogram(name: "CastTest4", linkageName: "CastTest4", scope: !2, file: !2, line: 49, type: !6, scopeLine: 49, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!56 = !DILocation(line: 49, column: 12, scope: !55) -!57 = distinct !DISubprogram(name: "CastTest5_1", linkageName: "CastTest5_1", scope: !2, file: !2, line: 61, type: !6, scopeLine: 61, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!58 = !DILocation(line: 63, column: 3, scope: !57) -!59 = !DILocation(line: 64, column: 3, scope: !57) -!60 = !DILocation(line: 66, column: 5, scope: !61) -!61 = distinct !DILexicalBlock(scope: !62, file: !2, line: 65, column: 5) -!62 = distinct !DILexicalBlock(scope: !57, file: !2, line: 64, column: 3) -!63 = !DILocation(line: 67, column: 11, scope: !61) -!64 = !DILocation(line: 68, column: 5, scope: !61) -!65 = distinct !DISubprogram(name: "CastTest5_1", linkageName: "CastTest5_1", scope: !2, file: !2, line: 61, type: !6, scopeLine: 61, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!66 = !DILocation(line: 61, column: 12, scope: !65) -!67 = distinct !DISubprogram(name: "CastTest5_2", linkageName: "CastTest5_2", scope: !2, file: !2, line: 73, type: !6, scopeLine: 73, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!68 = !DILocation(line: 75, column: 3, scope: !67) -!69 = !DILocation(line: 76, column: 3, scope: !67) -!70 = !DILocation(line: 78, column: 5, scope: !71) -!71 = distinct !DILexicalBlock(scope: !72, file: !2, line: 77, column: 5) -!72 = distinct !DILexicalBlock(scope: !67, file: !2, line: 76, column: 3) -!73 = !DILocation(line: 79, column: 11, scope: !71) -!74 = !DILocation(line: 80, column: 5, scope: !71) -!75 = distinct !DISubprogram(name: "CastTest5_2", linkageName: "CastTest5_2", scope: !2, file: !2, line: 73, type: !6, scopeLine: 73, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!76 = !DILocation(line: 73, column: 12, scope: !75) -!77 = distinct !DISubprogram(name: "CastTest6_1", linkageName: "CastTest6_1", scope: !2, file: !2, line: 85, type: !6, scopeLine: 85, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!78 = !DILocation(line: 87, column: 3, scope: !77) -!79 = !DILocation(line: 88, column: 3, scope: !77) -!80 = !DILocation(line: 90, column: 5, scope: !81) -!81 = distinct !DILexicalBlock(scope: !82, file: !2, line: 89, column: 5) -!82 = distinct !DILexicalBlock(scope: !77, file: !2, line: 88, column: 3) -!83 = !DILocation(line: 91, column: 15, scope: !81) -!84 = !DILocation(line: 92, column: 5, scope: !81) -!85 = !DILocation(line: 93, column: 5, scope: !81) -!86 = !DILocation(line: 94, column: 13, scope: !81) -!87 = !DILocation(line: 95, column: 5, scope: !81) -!88 = !DILocation(line: 96, column: 5, scope: !81) -!89 = !DILocation(line: 97, column: 13, scope: !81) -!90 = !DILocation(line: 98, column: 5, scope: !81) -!91 = distinct !DISubprogram(name: "CastTest6_1", linkageName: "CastTest6_1", scope: !2, file: !2, line: 85, type: !6, scopeLine: 85, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!92 = !DILocation(line: 85, column: 12, scope: !91) -!93 = distinct !DISubprogram(name: "CastTest6_2", linkageName: "CastTest6_2", scope: !2, file: !2, line: 103, type: !6, scopeLine: 103, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!94 = !DILocation(line: 105, column: 3, scope: !93) -!95 = !DILocation(line: 106, column: 3, scope: !93) -!96 = !DILocation(line: 108, column: 5, scope: !97) -!97 = distinct !DILexicalBlock(scope: !98, file: !2, line: 107, column: 5) -!98 = distinct !DILexicalBlock(scope: !93, file: !2, line: 106, column: 3) -!99 = !DILocation(line: 109, column: 15, scope: !97) -!100 = !DILocation(line: 110, column: 5, scope: !97) -!101 = !DILocation(line: 111, column: 5, scope: !97) -!102 = !DILocation(line: 112, column: 13, scope: !97) -!103 = !DILocation(line: 113, column: 5, scope: !97) -!104 = !DILocation(line: 114, column: 5, scope: !97) -!105 = !DILocation(line: 115, column: 13, scope: !97) -!106 = !DILocation(line: 116, column: 5, scope: !97) -!107 = distinct !DISubprogram(name: "CastTest6_2", linkageName: "CastTest6_2", scope: !2, file: !2, line: 103, type: !6, scopeLine: 103, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!108 = !DILocation(line: 103, column: 12, scope: !107) -!109 = distinct !DISubprogram(name: "CastTest6_3", linkageName: "CastTest6_3", scope: !2, file: !2, line: 121, type: !6, scopeLine: 121, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!110 = !DILocation(line: 123, column: 3, scope: !109) -!111 = !DILocation(line: 124, column: 3, scope: !109) -!112 = !DILocation(line: 126, column: 5, scope: !113) -!113 = distinct !DILexicalBlock(scope: !114, file: !2, line: 125, column: 5) -!114 = distinct !DILexicalBlock(scope: !109, file: !2, line: 124, column: 3) -!115 = !DILocation(line: 127, column: 15, scope: !113) -!116 = !DILocation(line: 128, column: 5, scope: !113) -!117 = !DILocation(line: 129, column: 5, scope: !113) -!118 = !DILocation(line: 130, column: 13, scope: !113) -!119 = !DILocation(line: 131, column: 5, scope: !113) -!120 = !DILocation(line: 132, column: 5, scope: !113) -!121 = !DILocation(line: 133, column: 13, scope: !113) -!122 = !DILocation(line: 134, column: 5, scope: !113) -!123 = distinct !DISubprogram(name: "CastTest6_3", linkageName: "CastTest6_3", scope: !2, file: !2, line: 121, type: !6, scopeLine: 121, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!124 = !DILocation(line: 121, column: 12, scope: !123) -!125 = distinct !DISubprogram(name: "CastTest6_4", linkageName: "CastTest6_4", scope: !2, file: !2, line: 139, type: !6, scopeLine: 139, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!126 = !DILocation(line: 141, column: 3, scope: !125) -!127 = !DILocation(line: 142, column: 3, scope: !125) -!128 = !DILocation(line: 144, column: 5, scope: !129) -!129 = distinct !DILexicalBlock(scope: !130, file: !2, line: 143, column: 5) -!130 = distinct !DILexicalBlock(scope: !125, file: !2, line: 142, column: 3) -!131 = !DILocation(line: 145, column: 15, scope: !129) -!132 = !DILocation(line: 146, column: 5, scope: !129) -!133 = !DILocation(line: 147, column: 5, scope: !129) -!134 = !DILocation(line: 148, column: 13, scope: !129) -!135 = !DILocation(line: 149, column: 5, scope: !129) -!136 = !DILocation(line: 150, column: 5, scope: !129) -!137 = !DILocation(line: 151, column: 13, scope: !129) -!138 = !DILocation(line: 152, column: 5, scope: !129) -!139 = !DILocation(line: 154, column: 11, scope: !140) -!140 = distinct !DILexicalBlock(scope: !130, file: !2, line: 153, column: 5) -!141 = !DILocation(line: 155, column: 5, scope: !140) -!142 = distinct !DISubprogram(name: "CastTest6_4", linkageName: "CastTest6_4", scope: !2, file: !2, line: 139, type: !6, scopeLine: 139, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!143 = !DILocation(line: 139, column: 12, scope: !142) -!144 = distinct !DISubprogram(name: "CastTest7", linkageName: "CastTest7", scope: !2, file: !2, line: 159, type: !6, scopeLine: 159, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!145 = !DILocation(line: 161, column: 3, scope: !144) -!146 = !DILocation(line: 162, column: 3, scope: !144) -!147 = !DILocation(line: 164, column: 5, scope: !148) -!148 = distinct !DILexicalBlock(scope: !149, file: !2, line: 163, column: 5) -!149 = distinct !DILexicalBlock(scope: !144, file: !2, line: 162, column: 3) -!150 = !DILocation(line: 165, column: 5, scope: !148) -!151 = !DILocation(line: 166, column: 5, scope: !148) -!152 = !DILocation(line: 168, column: 7, scope: !153) -!153 = distinct !DILexicalBlock(scope: !154, file: !2, line: 167, column: 7) -!154 = distinct !DILexicalBlock(scope: !148, file: !2, line: 166, column: 5) -!155 = !DILocation(line: 169, column: 15, scope: !153) -!156 = !DILocation(line: 170, column: 7, scope: !153) -!157 = !DILocation(line: 171, column: 7, scope: !153) -!158 = !DILocation(line: 172, column: 15, scope: !153) -!159 = !DILocation(line: 173, column: 7, scope: !153) -!160 = distinct !DISubprogram(name: "CastTest7", linkageName: "CastTest7", scope: !2, file: !2, line: 159, type: !6, scopeLine: 159, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!161 = !DILocation(line: 159, column: 12, scope: !160) +!3 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !4, file: !4, type: !5, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!4 = !DIFile(filename: ".", directory: ".") +!5 = !DISubroutineType(types: !6) +!6 = !{!7} +!7 = !DIBasicType(tag: DW_TAG_unspecified_type, name: "void") +!8 = !{} +!9 = !DILocation(line: 0, scope: !3) +!10 = distinct !DISubprogram(name: "_deploy_ops", linkageName: "_deploy_ops", scope: !4, file: !4, type: !5, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!11 = !DILocalVariable(name: "$test_1_res_1", scope: !10, file: !2, line: 9, type: !12) +!12 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "Option (ByStr20 with end)", baseType: !13, size: 8, align: 8, dwarfAddressSpace: 0) +!13 = !DIBasicType(name: "Option (ByStr20 with end)", size: 8) +!14 = !DILocation(line: 9, column: 7, scope: !10) +!15 = !DILocation(line: 9, column: 48, scope: !10) +!16 = !DILocalVariable(name: "$test_2_res_2", scope: !10, file: !2, line: 10, type: !17) +!17 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "Option (ByStr20 with contract end)", baseType: !18, size: 8, align: 8, dwarfAddressSpace: 0) +!18 = !DIBasicType(name: "Option (ByStr20 with contract end)", size: 8) +!19 = !DILocation(line: 10, column: 7, scope: !10) +!20 = !DILocation(line: 10, column: 57, scope: !10) +!21 = !DILocalVariable(name: "$test_3_res_3", scope: !10, file: !2, line: 11, type: !17) +!22 = !DILocation(line: 11, column: 7, scope: !10) +!23 = !DILocation(line: 11, column: 57, scope: !10) +!24 = !DILocalVariable(name: "$test_4_res_4", scope: !10, file: !2, line: 12, type: !25) +!25 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "Option (Uint128)", baseType: !26, size: 8, align: 8, dwarfAddressSpace: 0) +!26 = !DIBasicType(name: "Option (Uint128)", size: 8) +!27 = !DILocation(line: 12, column: 7, scope: !10) +!28 = !DILocation(line: 12, column: 37, scope: !10) +!29 = !DILocalVariable(name: "$test_5_1_res_5", scope: !10, file: !2, line: 13, type: !25) +!30 = !DILocation(line: 13, column: 7, scope: !10) +!31 = !DILocation(line: 13, column: 39, scope: !10) +!32 = !DILocalVariable(name: "$test_5_2_res_6", scope: !10, file: !2, line: 14, type: !25) +!33 = !DILocation(line: 14, column: 7, scope: !10) +!34 = !DILocation(line: 14, column: 39, scope: !10) +!35 = !DILocalVariable(name: "$test_6_1_bal_res_7", scope: !10, file: !2, line: 15, type: !25) +!36 = !DILocation(line: 15, column: 7, scope: !10) +!37 = !DILocation(line: 15, column: 43, scope: !10) +!38 = !DILocalVariable(name: "$test_6_1_f_res_8", scope: !10, file: !2, line: 16, type: !25) +!39 = !DILocation(line: 16, column: 7, scope: !10) +!40 = !DILocation(line: 16, column: 41, scope: !10) +!41 = !DILocalVariable(name: "$test_6_1_g_res_9", scope: !10, file: !2, line: 17, type: !42) +!42 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "Option (Bool)", baseType: !43, size: 8, align: 8, dwarfAddressSpace: 0) +!43 = !DIBasicType(name: "Option (Bool)", size: 8) +!44 = !DILocation(line: 17, column: 7, scope: !10) +!45 = !DILocation(line: 17, column: 38, scope: !10) +!46 = !DILocalVariable(name: "$test_6_2_bal_res_10", scope: !10, file: !2, line: 18, type: !25) +!47 = !DILocation(line: 18, column: 7, scope: !10) +!48 = !DILocation(line: 18, column: 43, scope: !10) +!49 = !DILocalVariable(name: "$test_6_2_f_res_11", scope: !10, file: !2, line: 19, type: !25) +!50 = !DILocation(line: 19, column: 7, scope: !10) +!51 = !DILocation(line: 19, column: 41, scope: !10) +!52 = !DILocalVariable(name: "$test_6_2_g_res_12", scope: !10, file: !2, line: 20, type: !42) +!53 = !DILocation(line: 20, column: 7, scope: !10) +!54 = !DILocation(line: 20, column: 38, scope: !10) +!55 = !DILocalVariable(name: "$test_6_3_bal_res_13", scope: !10, file: !2, line: 21, type: !25) +!56 = !DILocation(line: 21, column: 7, scope: !10) +!57 = !DILocation(line: 21, column: 43, scope: !10) +!58 = !DILocalVariable(name: "$test_6_3_f_res_14", scope: !10, file: !2, line: 22, type: !25) +!59 = !DILocation(line: 22, column: 7, scope: !10) +!60 = !DILocation(line: 22, column: 41, scope: !10) +!61 = !DILocalVariable(name: "$test_6_3_g_res_15", scope: !10, file: !2, line: 23, type: !42) +!62 = !DILocation(line: 23, column: 7, scope: !10) +!63 = !DILocation(line: 23, column: 38, scope: !10) +!64 = !DILocalVariable(name: "$test_6_4_bal_res_16", scope: !10, file: !2, line: 24, type: !25) +!65 = !DILocation(line: 24, column: 7, scope: !10) +!66 = !DILocation(line: 24, column: 43, scope: !10) +!67 = !DILocalVariable(name: "$test_6_4_f_res_17", scope: !10, file: !2, line: 25, type: !25) +!68 = !DILocation(line: 25, column: 7, scope: !10) +!69 = !DILocation(line: 25, column: 41, scope: !10) +!70 = !DILocalVariable(name: "$test_6_4_g_res_18", scope: !10, file: !2, line: 26, type: !42) +!71 = !DILocation(line: 26, column: 7, scope: !10) +!72 = !DILocation(line: 26, column: 38, scope: !10) +!73 = !DILocalVariable(name: "$test_6_4_failed_cast_19", scope: !10, file: !2, line: 27, type: !74) +!74 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "Bool", baseType: !75, size: 8, align: 8, dwarfAddressSpace: 0) +!75 = !DIBasicType(name: "Bool", size: 8) +!76 = !DILocation(line: 27, column: 7, scope: !10) +!77 = !DILocation(line: 27, column: 37, scope: !10) +!78 = !DILocalVariable(name: "$test_7_g_res_20", scope: !10, file: !2, line: 28, type: !42) +!79 = !DILocation(line: 28, column: 7, scope: !10) +!80 = !DILocation(line: 28, column: 36, scope: !10) +!81 = !DILocalVariable(name: "$test_7_h_res_21", scope: !10, file: !2, line: 29, type: !82) +!82 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "Option (Int256)", baseType: !83, size: 8, align: 8, dwarfAddressSpace: 0) +!83 = !DIBasicType(name: "Option (Int256)", size: 8) +!84 = !DILocation(line: 29, column: 7, scope: !10) +!85 = !DILocation(line: 29, column: 38, scope: !10) +!86 = distinct !DISubprogram(name: "CastTest1", linkageName: "CastTest1", scope: !2, file: !2, line: 31, type: !5, scopeLine: 31, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!87 = !DILocalVariable(name: "x", scope: !86, file: !2, line: 31, type: !88) +!88 = !DIBasicType(name: "ByStr20 with contract end", size: 20) +!89 = !DILocation(line: 31, column: 22, scope: !86) +!90 = !DILocalVariable(name: "_sender", scope: !86, file: !2, line: 31, type: !91) +!91 = !DIBasicType(name: "ByStr20 with end", size: 20) +!92 = !DILocation(line: 31, column: 12, scope: !86) +!93 = !DILocalVariable(name: "_origin", scope: !86, file: !2, line: 31, type: !91) +!94 = !DILocalVariable(name: "_amount", scope: !86, file: !2, line: 31, type: !95) +!95 = !DIBasicType(name: "Uint128", size: 16) +!96 = !DILocalVariable(name: "res", scope: !86, file: !2, line: 33, type: !12) +!97 = !DILocation(line: 33, column: 3, scope: !86) +!98 = !DILocation(line: 34, column: 3, scope: !86) +!99 = distinct !DISubprogram(name: "CastTest1", linkageName: "CastTest1", scope: !2, file: !2, line: 31, type: !5, scopeLine: 31, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!100 = !DILocation(line: 31, column: 12, scope: !99) +!101 = distinct !DISubprogram(name: "CastTest2", linkageName: "CastTest2", scope: !2, file: !2, line: 37, type: !5, scopeLine: 37, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!102 = !DILocalVariable(name: "x", scope: !101, file: !2, line: 37, type: !88) +!103 = !DILocation(line: 37, column: 22, scope: !101) +!104 = !DILocalVariable(name: "_sender", scope: !101, file: !2, line: 37, type: !91) +!105 = !DILocation(line: 37, column: 12, scope: !101) +!106 = !DILocalVariable(name: "_origin", scope: !101, file: !2, line: 37, type: !91) +!107 = !DILocalVariable(name: "_amount", scope: !101, file: !2, line: 37, type: !95) +!108 = !DILocalVariable(name: "res", scope: !101, file: !2, line: 39, type: !17) +!109 = !DILocation(line: 39, column: 3, scope: !101) +!110 = !DILocation(line: 40, column: 3, scope: !101) +!111 = distinct !DISubprogram(name: "CastTest2", linkageName: "CastTest2", scope: !2, file: !2, line: 37, type: !5, scopeLine: 37, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!112 = !DILocation(line: 37, column: 12, scope: !111) +!113 = distinct !DISubprogram(name: "CastTest3", linkageName: "CastTest3", scope: !2, file: !2, line: 43, type: !5, scopeLine: 43, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!114 = !DILocalVariable(name: "x", scope: !113, file: !2, line: 43, type: !88) +!115 = !DILocation(line: 43, column: 22, scope: !113) +!116 = !DILocalVariable(name: "_sender", scope: !113, file: !2, line: 43, type: !91) +!117 = !DILocation(line: 43, column: 12, scope: !113) +!118 = !DILocalVariable(name: "_origin", scope: !113, file: !2, line: 43, type: !91) +!119 = !DILocalVariable(name: "_amount", scope: !113, file: !2, line: 43, type: !95) +!120 = !DILocalVariable(name: "res", scope: !113, file: !2, line: 45, type: !17) +!121 = !DILocation(line: 45, column: 3, scope: !113) +!122 = !DILocation(line: 46, column: 3, scope: !113) +!123 = distinct !DISubprogram(name: "CastTest3", linkageName: "CastTest3", scope: !2, file: !2, line: 43, type: !5, scopeLine: 43, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!124 = !DILocation(line: 43, column: 12, scope: !123) +!125 = distinct !DISubprogram(name: "CastTest4", linkageName: "CastTest4", scope: !2, file: !2, line: 49, type: !5, scopeLine: 49, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!126 = !DILocalVariable(name: "x", scope: !125, file: !2, line: 49, type: !127) +!127 = !DIBasicType(name: "ByStr20", size: 20) +!128 = !DILocation(line: 49, column: 22, scope: !125) +!129 = !DILocalVariable(name: "_sender", scope: !125, file: !2, line: 49, type: !91) +!130 = !DILocation(line: 49, column: 12, scope: !125) +!131 = !DILocalVariable(name: "_origin", scope: !125, file: !2, line: 49, type: !91) +!132 = !DILocalVariable(name: "_amount", scope: !125, file: !2, line: 49, type: !95) +!133 = !DILocalVariable(name: "x_cast", scope: !125, file: !2, line: 51, type: !12) +!134 = !DILocation(line: 51, column: 3, scope: !125) +!135 = !DILocation(line: 52, column: 3, scope: !125) +!136 = !DILocalVariable(name: "bal", scope: !137, file: !2, line: 54, type: !95) +!137 = distinct !DILexicalBlock(scope: !138, file: !2, line: 53, column: 5) +!138 = distinct !DILexicalBlock(scope: !125, file: !2, line: 52, column: 3) +!139 = !DILocation(line: 54, column: 5, scope: !137) +!140 = !DILocalVariable(name: "res", scope: !137, file: !2, line: 55, type: !25) +!141 = !DILocation(line: 55, column: 5, scope: !137) +!142 = !DILocation(line: 55, column: 11, scope: !137) +!143 = !DILocation(line: 56, column: 5, scope: !137) +!144 = distinct !DISubprogram(name: "CastTest4", linkageName: "CastTest4", scope: !2, file: !2, line: 49, type: !5, scopeLine: 49, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!145 = !DILocation(line: 49, column: 12, scope: !144) +!146 = distinct !DISubprogram(name: "CastTest5_1", linkageName: "CastTest5_1", scope: !2, file: !2, line: 61, type: !5, scopeLine: 61, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!147 = !DILocalVariable(name: "x", scope: !146, file: !2, line: 61, type: !127) +!148 = !DILocation(line: 61, column: 24, scope: !146) +!149 = !DILocalVariable(name: "_sender", scope: !146, file: !2, line: 61, type: !91) +!150 = !DILocation(line: 61, column: 12, scope: !146) +!151 = !DILocalVariable(name: "_origin", scope: !146, file: !2, line: 61, type: !91) +!152 = !DILocalVariable(name: "_amount", scope: !146, file: !2, line: 61, type: !95) +!153 = !DILocalVariable(name: "x_cast", scope: !146, file: !2, line: 63, type: !17) +!154 = !DILocation(line: 63, column: 3, scope: !146) +!155 = !DILocation(line: 64, column: 3, scope: !146) +!156 = !DILocalVariable(name: "bal", scope: !157, file: !2, line: 66, type: !95) +!157 = distinct !DILexicalBlock(scope: !158, file: !2, line: 65, column: 5) +!158 = distinct !DILexicalBlock(scope: !146, file: !2, line: 64, column: 3) +!159 = !DILocation(line: 66, column: 5, scope: !157) +!160 = !DILocalVariable(name: "res", scope: !157, file: !2, line: 67, type: !25) +!161 = !DILocation(line: 67, column: 5, scope: !157) +!162 = !DILocation(line: 67, column: 11, scope: !157) +!163 = !DILocation(line: 68, column: 5, scope: !157) +!164 = distinct !DISubprogram(name: "CastTest5_1", linkageName: "CastTest5_1", scope: !2, file: !2, line: 61, type: !5, scopeLine: 61, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!165 = !DILocation(line: 61, column: 12, scope: !164) +!166 = distinct !DISubprogram(name: "CastTest5_2", linkageName: "CastTest5_2", scope: !2, file: !2, line: 73, type: !5, scopeLine: 73, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!167 = !DILocalVariable(name: "x", scope: !166, file: !2, line: 73, type: !91) +!168 = !DILocation(line: 73, column: 24, scope: !166) +!169 = !DILocalVariable(name: "_sender", scope: !166, file: !2, line: 73, type: !91) +!170 = !DILocation(line: 73, column: 12, scope: !166) +!171 = !DILocalVariable(name: "_origin", scope: !166, file: !2, line: 73, type: !91) +!172 = !DILocalVariable(name: "_amount", scope: !166, file: !2, line: 73, type: !95) +!173 = !DILocalVariable(name: "x_cast", scope: !166, file: !2, line: 75, type: !17) +!174 = !DILocation(line: 75, column: 3, scope: !166) +!175 = !DILocation(line: 76, column: 3, scope: !166) +!176 = !DILocalVariable(name: "bal", scope: !177, file: !2, line: 78, type: !95) +!177 = distinct !DILexicalBlock(scope: !178, file: !2, line: 77, column: 5) +!178 = distinct !DILexicalBlock(scope: !166, file: !2, line: 76, column: 3) +!179 = !DILocation(line: 78, column: 5, scope: !177) +!180 = !DILocalVariable(name: "res", scope: !177, file: !2, line: 79, type: !25) +!181 = !DILocation(line: 79, column: 5, scope: !177) +!182 = !DILocation(line: 79, column: 11, scope: !177) +!183 = !DILocation(line: 80, column: 5, scope: !177) +!184 = distinct !DISubprogram(name: "CastTest5_2", linkageName: "CastTest5_2", scope: !2, file: !2, line: 73, type: !5, scopeLine: 73, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!185 = !DILocation(line: 73, column: 12, scope: !184) +!186 = distinct !DISubprogram(name: "CastTest6_1", linkageName: "CastTest6_1", scope: !2, file: !2, line: 85, type: !5, scopeLine: 85, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!187 = !DILocalVariable(name: "x", scope: !186, file: !2, line: 85, type: !127) +!188 = !DILocation(line: 85, column: 24, scope: !186) +!189 = !DILocalVariable(name: "_sender", scope: !186, file: !2, line: 85, type: !91) +!190 = !DILocation(line: 85, column: 12, scope: !186) +!191 = !DILocalVariable(name: "_origin", scope: !186, file: !2, line: 85, type: !91) +!192 = !DILocalVariable(name: "_amount", scope: !186, file: !2, line: 85, type: !95) +!193 = !DILocalVariable(name: "x_cast", scope: !186, file: !2, line: 87, type: !194) +!194 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "Option (ByStr20 with contract field f : Uint128, field g : Bool end)", baseType: !195, size: 8, align: 8, dwarfAddressSpace: 0) +!195 = !DIBasicType(name: "Option (ByStr20 with contract field f : Uint128, field g : Bool end)", size: 8) +!196 = !DILocation(line: 87, column: 3, scope: !186) +!197 = !DILocation(line: 88, column: 3, scope: !186) +!198 = !DILocalVariable(name: "bal", scope: !199, file: !2, line: 90, type: !95) +!199 = distinct !DILexicalBlock(scope: !200, file: !2, line: 89, column: 5) +!200 = distinct !DILexicalBlock(scope: !186, file: !2, line: 88, column: 3) +!201 = !DILocation(line: 90, column: 5, scope: !199) +!202 = !DILocalVariable(name: "bal_res", scope: !199, file: !2, line: 91, type: !25) +!203 = !DILocation(line: 91, column: 5, scope: !199) +!204 = !DILocation(line: 91, column: 15, scope: !199) +!205 = !DILocation(line: 92, column: 5, scope: !199) +!206 = !DILocalVariable(name: "f", scope: !199, file: !2, line: 93, type: !95) +!207 = !DILocation(line: 93, column: 5, scope: !199) +!208 = !DILocalVariable(name: "f_res", scope: !199, file: !2, line: 94, type: !25) +!209 = !DILocation(line: 94, column: 5, scope: !199) +!210 = !DILocation(line: 94, column: 13, scope: !199) +!211 = !DILocation(line: 95, column: 5, scope: !199) +!212 = !DILocalVariable(name: "g", scope: !199, file: !2, line: 96, type: !74) +!213 = !DILocation(line: 96, column: 5, scope: !199) +!214 = !DILocalVariable(name: "g_res", scope: !199, file: !2, line: 97, type: !42) +!215 = !DILocation(line: 97, column: 5, scope: !199) +!216 = !DILocation(line: 97, column: 13, scope: !199) +!217 = !DILocation(line: 98, column: 5, scope: !199) +!218 = distinct !DISubprogram(name: "CastTest6_1", linkageName: "CastTest6_1", scope: !2, file: !2, line: 85, type: !5, scopeLine: 85, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!219 = !DILocation(line: 85, column: 12, scope: !218) +!220 = distinct !DISubprogram(name: "CastTest6_2", linkageName: "CastTest6_2", scope: !2, file: !2, line: 103, type: !5, scopeLine: 103, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!221 = !DILocalVariable(name: "x", scope: !220, file: !2, line: 103, type: !91) +!222 = !DILocation(line: 103, column: 24, scope: !220) +!223 = !DILocalVariable(name: "_sender", scope: !220, file: !2, line: 103, type: !91) +!224 = !DILocation(line: 103, column: 12, scope: !220) +!225 = !DILocalVariable(name: "_origin", scope: !220, file: !2, line: 103, type: !91) +!226 = !DILocalVariable(name: "_amount", scope: !220, file: !2, line: 103, type: !95) +!227 = !DILocalVariable(name: "x_cast", scope: !220, file: !2, line: 105, type: !194) +!228 = !DILocation(line: 105, column: 3, scope: !220) +!229 = !DILocation(line: 106, column: 3, scope: !220) +!230 = !DILocalVariable(name: "bal", scope: !231, file: !2, line: 108, type: !95) +!231 = distinct !DILexicalBlock(scope: !232, file: !2, line: 107, column: 5) +!232 = distinct !DILexicalBlock(scope: !220, file: !2, line: 106, column: 3) +!233 = !DILocation(line: 108, column: 5, scope: !231) +!234 = !DILocalVariable(name: "bal_res", scope: !231, file: !2, line: 109, type: !25) +!235 = !DILocation(line: 109, column: 5, scope: !231) +!236 = !DILocation(line: 109, column: 15, scope: !231) +!237 = !DILocation(line: 110, column: 5, scope: !231) +!238 = !DILocalVariable(name: "f", scope: !231, file: !2, line: 111, type: !95) +!239 = !DILocation(line: 111, column: 5, scope: !231) +!240 = !DILocalVariable(name: "f_res", scope: !231, file: !2, line: 112, type: !25) +!241 = !DILocation(line: 112, column: 5, scope: !231) +!242 = !DILocation(line: 112, column: 13, scope: !231) +!243 = !DILocation(line: 113, column: 5, scope: !231) +!244 = !DILocalVariable(name: "g", scope: !231, file: !2, line: 114, type: !74) +!245 = !DILocation(line: 114, column: 5, scope: !231) +!246 = !DILocalVariable(name: "g_res", scope: !231, file: !2, line: 115, type: !42) +!247 = !DILocation(line: 115, column: 5, scope: !231) +!248 = !DILocation(line: 115, column: 13, scope: !231) +!249 = !DILocation(line: 116, column: 5, scope: !231) +!250 = distinct !DISubprogram(name: "CastTest6_2", linkageName: "CastTest6_2", scope: !2, file: !2, line: 103, type: !5, scopeLine: 103, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!251 = !DILocation(line: 103, column: 12, scope: !250) +!252 = distinct !DISubprogram(name: "CastTest6_3", linkageName: "CastTest6_3", scope: !2, file: !2, line: 121, type: !5, scopeLine: 121, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!253 = !DILocalVariable(name: "x", scope: !252, file: !2, line: 121, type: !254) +!254 = !DIBasicType(name: "ByStr20 with contract field g : Bool end", size: 20) +!255 = !DILocation(line: 121, column: 24, scope: !252) +!256 = !DILocalVariable(name: "_sender", scope: !252, file: !2, line: 121, type: !91) +!257 = !DILocation(line: 121, column: 12, scope: !252) +!258 = !DILocalVariable(name: "_origin", scope: !252, file: !2, line: 121, type: !91) +!259 = !DILocalVariable(name: "_amount", scope: !252, file: !2, line: 121, type: !95) +!260 = !DILocalVariable(name: "x_cast", scope: !252, file: !2, line: 123, type: !194) +!261 = !DILocation(line: 123, column: 3, scope: !252) +!262 = !DILocation(line: 124, column: 3, scope: !252) +!263 = !DILocalVariable(name: "bal", scope: !264, file: !2, line: 126, type: !95) +!264 = distinct !DILexicalBlock(scope: !265, file: !2, line: 125, column: 5) +!265 = distinct !DILexicalBlock(scope: !252, file: !2, line: 124, column: 3) +!266 = !DILocation(line: 126, column: 5, scope: !264) +!267 = !DILocalVariable(name: "bal_res", scope: !264, file: !2, line: 127, type: !25) +!268 = !DILocation(line: 127, column: 5, scope: !264) +!269 = !DILocation(line: 127, column: 15, scope: !264) +!270 = !DILocation(line: 128, column: 5, scope: !264) +!271 = !DILocalVariable(name: "f", scope: !264, file: !2, line: 129, type: !95) +!272 = !DILocation(line: 129, column: 5, scope: !264) +!273 = !DILocalVariable(name: "f_res", scope: !264, file: !2, line: 130, type: !25) +!274 = !DILocation(line: 130, column: 5, scope: !264) +!275 = !DILocation(line: 130, column: 13, scope: !264) +!276 = !DILocation(line: 131, column: 5, scope: !264) +!277 = !DILocalVariable(name: "g", scope: !264, file: !2, line: 132, type: !74) +!278 = !DILocation(line: 132, column: 5, scope: !264) +!279 = !DILocalVariable(name: "g_res", scope: !264, file: !2, line: 133, type: !42) +!280 = !DILocation(line: 133, column: 5, scope: !264) +!281 = !DILocation(line: 133, column: 13, scope: !264) +!282 = !DILocation(line: 134, column: 5, scope: !264) +!283 = distinct !DISubprogram(name: "CastTest6_3", linkageName: "CastTest6_3", scope: !2, file: !2, line: 121, type: !5, scopeLine: 121, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!284 = !DILocation(line: 121, column: 12, scope: !283) +!285 = distinct !DISubprogram(name: "CastTest6_4", linkageName: "CastTest6_4", scope: !2, file: !2, line: 139, type: !5, scopeLine: 139, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!286 = !DILocalVariable(name: "x", scope: !285, file: !2, line: 139, type: !287) +!287 = !DIBasicType(name: "ByStr20 with contract field f : Uint256, field g : Bool end", size: 20) +!288 = !DILocation(line: 139, column: 24, scope: !285) +!289 = !DILocalVariable(name: "_sender", scope: !285, file: !2, line: 139, type: !91) +!290 = !DILocation(line: 139, column: 12, scope: !285) +!291 = !DILocalVariable(name: "_origin", scope: !285, file: !2, line: 139, type: !91) +!292 = !DILocalVariable(name: "_amount", scope: !285, file: !2, line: 139, type: !95) +!293 = !DILocalVariable(name: "x_cast", scope: !285, file: !2, line: 141, type: !194) +!294 = !DILocation(line: 141, column: 3, scope: !285) +!295 = !DILocation(line: 142, column: 3, scope: !285) +!296 = !DILocalVariable(name: "bal", scope: !297, file: !2, line: 144, type: !95) +!297 = distinct !DILexicalBlock(scope: !298, file: !2, line: 143, column: 5) +!298 = distinct !DILexicalBlock(scope: !285, file: !2, line: 142, column: 3) +!299 = !DILocation(line: 144, column: 5, scope: !297) +!300 = !DILocalVariable(name: "bal_res", scope: !297, file: !2, line: 145, type: !25) +!301 = !DILocation(line: 145, column: 5, scope: !297) +!302 = !DILocation(line: 145, column: 15, scope: !297) +!303 = !DILocation(line: 146, column: 5, scope: !297) +!304 = !DILocalVariable(name: "f", scope: !297, file: !2, line: 147, type: !95) +!305 = !DILocation(line: 147, column: 5, scope: !297) +!306 = !DILocalVariable(name: "f_res", scope: !297, file: !2, line: 148, type: !25) +!307 = !DILocation(line: 148, column: 5, scope: !297) +!308 = !DILocation(line: 148, column: 13, scope: !297) +!309 = !DILocation(line: 149, column: 5, scope: !297) +!310 = !DILocalVariable(name: "g", scope: !297, file: !2, line: 150, type: !74) +!311 = !DILocation(line: 150, column: 5, scope: !297) +!312 = !DILocalVariable(name: "g_res", scope: !297, file: !2, line: 151, type: !42) +!313 = !DILocation(line: 151, column: 5, scope: !297) +!314 = !DILocation(line: 151, column: 13, scope: !297) +!315 = !DILocation(line: 152, column: 5, scope: !297) +!316 = !DILocalVariable(name: "res", scope: !317, file: !2, line: 154, type: !74) +!317 = distinct !DILexicalBlock(scope: !298, file: !2, line: 153, column: 5) +!318 = !DILocation(line: 154, column: 5, scope: !317) +!319 = !DILocation(line: 154, column: 11, scope: !317) +!320 = !DILocation(line: 155, column: 5, scope: !317) +!321 = distinct !DISubprogram(name: "CastTest6_4", linkageName: "CastTest6_4", scope: !2, file: !2, line: 139, type: !5, scopeLine: 139, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!322 = !DILocation(line: 139, column: 12, scope: !321) +!323 = distinct !DISubprogram(name: "CastTest7", linkageName: "CastTest7", scope: !2, file: !2, line: 159, type: !5, scopeLine: 159, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!324 = !DILocalVariable(name: "x", scope: !323, file: !2, line: 159, type: !127) +!325 = !DILocation(line: 159, column: 22, scope: !323) +!326 = !DILocalVariable(name: "_sender", scope: !323, file: !2, line: 159, type: !91) +!327 = !DILocation(line: 159, column: 12, scope: !323) +!328 = !DILocalVariable(name: "_origin", scope: !323, file: !2, line: 159, type: !91) +!329 = !DILocalVariable(name: "_amount", scope: !323, file: !2, line: 159, type: !95) +!330 = !DILocalVariable(name: "x_cast", scope: !323, file: !2, line: 161, type: !331) +!331 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "Option (ByStr20 with contract field f : ByStr20 end)", baseType: !332, size: 8, align: 8, dwarfAddressSpace: 0) +!332 = !DIBasicType(name: "Option (ByStr20 with contract field f : ByStr20 end)", size: 8) +!333 = !DILocation(line: 161, column: 3, scope: !323) +!334 = !DILocation(line: 162, column: 3, scope: !323) +!335 = !DILocalVariable(name: "f", scope: !336, file: !2, line: 164, type: !127) +!336 = distinct !DILexicalBlock(scope: !337, file: !2, line: 163, column: 5) +!337 = distinct !DILexicalBlock(scope: !323, file: !2, line: 162, column: 3) +!338 = !DILocation(line: 164, column: 5, scope: !336) +!339 = !DILocalVariable(name: "f_cast", scope: !336, file: !2, line: 165, type: !340) +!340 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "Option (ByStr20 with contract field g : Bool, field h : Int256 end)", baseType: !341, size: 8, align: 8, dwarfAddressSpace: 0) +!341 = !DIBasicType(name: "Option (ByStr20 with contract field g : Bool, field h : Int256 end)", size: 8) +!342 = !DILocation(line: 165, column: 5, scope: !336) +!343 = !DILocation(line: 166, column: 5, scope: !336) +!344 = !DILocalVariable(name: "g", scope: !345, file: !2, line: 168, type: !74) +!345 = distinct !DILexicalBlock(scope: !346, file: !2, line: 167, column: 7) +!346 = distinct !DILexicalBlock(scope: !336, file: !2, line: 166, column: 5) +!347 = !DILocation(line: 168, column: 7, scope: !345) +!348 = !DILocalVariable(name: "g_res", scope: !345, file: !2, line: 169, type: !42) +!349 = !DILocation(line: 169, column: 7, scope: !345) +!350 = !DILocation(line: 169, column: 15, scope: !345) +!351 = !DILocation(line: 170, column: 7, scope: !345) +!352 = !DILocalVariable(name: "h", scope: !345, file: !2, line: 171, type: !353) +!353 = !DIBasicType(name: "Int256", size: 32) +!354 = !DILocation(line: 171, column: 7, scope: !345) +!355 = !DILocalVariable(name: "h_res", scope: !345, file: !2, line: 172, type: !82) +!356 = !DILocation(line: 172, column: 7, scope: !345) +!357 = !DILocation(line: 172, column: 15, scope: !345) +!358 = !DILocation(line: 173, column: 7, scope: !345) +!359 = distinct !DISubprogram(name: "CastTest7", linkageName: "CastTest7", scope: !2, file: !2, line: 159, type: !5, scopeLine: 159, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!360 = !DILocation(line: 159, column: 12, scope: !359) diff --git a/testsuite/contr/type_casts.ll b/testsuite/contr/type_casts.ll index e3240865..b2ee4c99 100644 --- a/testsuite/contr/type_casts.ll +++ b/testsuite/contr/type_casts.ll @@ -4,7 +4,7 @@ ; 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-pc-linux-gnu" +target triple = "x86_64-unknown-linux-gnu" %"$TyDescrTy_PrimTyp_22" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/testsuite/contr/ud-proxy.dbg.ll b/testsuite/contr/ud-proxy.dbg.ll index a8f807cc..8fd4b14d 100644 --- a/testsuite/contr/ud-proxy.dbg.ll +++ b/testsuite/contr/ud-proxy.dbg.ll @@ -4,7 +4,7 @@ ; 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-pc-linux-gnu" +target triple = "x86_64-unknown-linux-gnu" %"$TyDescrTy_PrimTyp_13" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } @@ -23,9 +23,9 @@ target triple = "x86_64-pc-linux-gnu" %CName_Cons_Message = type <{ i8, i8*, %TName_List_Message* }> %CName_Nil_Message = type <{ i8 }> %Uint32 = type { i32 } -%"$ParamDescr_570" = type { %ParamDescrString, %_TyDescrTy_Typ* } +%"$ParamDescr_584" = type { %ParamDescrString, %_TyDescrTy_Typ* } %ParamDescrString = type { i8*, i32 } -%"$TransDescr_571" = type { %ParamDescrString, i32, %"$ParamDescr_570"* } +%"$TransDescr_585" = type { %ParamDescrString, i32, %"$ParamDescr_584"* } %"$$fundef_8_env_95" = type { [20 x i8] } %String = type { i8*, i32 } %"$$fundef_6_env_96" = type {} @@ -113,10 +113,10 @@ target triple = "x86_64-pc-linux-gnu" @"$TyDescr_ADT_List_92" = unnamed_addr constant [4 x i8] c"List" @"$TyDescr_MapTyp_93" = unnamed_addr constant %"$TyDescr_MapTyp_52" { %_TyDescrTy_Typ* @"$TyDescr_Bystr20_45", %_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_50" } @"$TyDescr_AddrFields_94" = unnamed_addr constant %"$TyDescr_AddrTyp_55" { i32 -3, %"$TyDescr_AddrFieldTyp_54"* null } -@"$stringlit_131" = unnamed_addr constant [10 x i8] c"_eventname" -@"$stringlit_136" = unnamed_addr constant [8 x i8] c"AdminSet" -@"$stringlit_139" = unnamed_addr constant [7 x i8] c"address" -@"$stringlit_147" = unnamed_addr constant [10 x i8] c"isApproved" +@"$stringlit_133" = unnamed_addr constant [10 x i8] c"_eventname" +@"$stringlit_138" = unnamed_addr constant [8 x i8] c"AdminSet" +@"$stringlit_141" = unnamed_addr constant [7 x i8] c"address" +@"$stringlit_149" = unnamed_addr constant [10 x i8] c"isApproved" @"$_gas_charge_acc_2" = global %Int32 zeroinitializer @"$_gas_charge_accBoolUtils_0" = global %Int32 zeroinitializer @"$_gas_charge_accListUtils_1" = global %Int32 zeroinitializer @@ -125,141 +125,152 @@ target triple = "x86_64-pc-linux-gnu" @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.eError = global i8* null -@"$stringlit_212" = unnamed_addr constant [10 x i8] c"_eventname" -@"$stringlit_217" = unnamed_addr constant [5 x i8] c"Error" +@"$stringlit_215" = unnamed_addr constant [10 x i8] c"_eventname" +@"$stringlit_220" = 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_259" = unnamed_addr constant [7 x i8] c"admins\00" -@"$admins_268" = unnamed_addr constant [7 x i8] c"admins\00" -@"$admins_340" = unnamed_addr constant [7 x i8] c"admins\00" -@"$admins_402" = unnamed_addr constant [7 x i8] c"admins\00" -@"$stringlit_479" = unnamed_addr constant [4 x i8] c"_tag" -@"$stringlit_484" = unnamed_addr constant [6 x i8] c"bestow" -@"$stringlit_487" = unnamed_addr constant [10 x i8] c"_recipient" -@"$stringlit_495" = unnamed_addr constant [7 x i8] c"_amount" -@"$stringlit_502" = unnamed_addr constant [5 x i8] c"label" -@"$stringlit_509" = unnamed_addr constant [5 x i8] c"owner" -@"$stringlit_516" = unnamed_addr constant [8 x i8] c"resolver" +@"$admins_262" = unnamed_addr constant [7 x i8] c"admins\00" +@"$admins_271" = unnamed_addr constant [7 x i8] c"admins\00" +@"$admins_343" = unnamed_addr constant [7 x i8] c"admins\00" +@"$admins_410" = unnamed_addr constant [7 x i8] c"admins\00" +@"$stringlit_487" = unnamed_addr constant [4 x i8] c"_tag" +@"$stringlit_492" = unnamed_addr constant [6 x i8] c"bestow" +@"$stringlit_495" = unnamed_addr constant [10 x i8] c"_recipient" +@"$stringlit_503" = unnamed_addr constant [7 x i8] c"_amount" +@"$stringlit_510" = unnamed_addr constant [5 x i8] c"label" +@"$stringlit_517" = unnamed_addr constant [5 x i8] c"owner" +@"$stringlit_524" = unnamed_addr constant [8 x i8] c"resolver" @_tydescr_table = constant [21 x %_TyDescrTy_Typ*] [%_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_51", %_TyDescrTy_Typ* @"$TyDescr_Event_37", %_TyDescrTy_Typ* @"$TyDescr_Int64_19", %_TyDescrTy_Typ* @"$TyDescr_Addr_56", %_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_50", %_TyDescrTy_Typ* @"$TyDescr_Bystr20_45", %_TyDescrTy_Typ* @"$TyDescr_Uint256_29", %_TyDescrTy_Typ* @"$TyDescr_Uint32_17", %_TyDescrTy_Typ* @"$TyDescr_ADT_Option_Bool_49", %_TyDescrTy_Typ* @"$TyDescr_Uint64_21", %_TyDescrTy_Typ* @"$TyDescr_Bnum_33", %_TyDescrTy_Typ* @"$TyDescr_Uint128_25", %_TyDescrTy_Typ* @"$TyDescr_Map_53", %_TyDescrTy_Typ* @"$TyDescr_Exception_39", %_TyDescrTy_Typ* @"$TyDescr_String_31", %_TyDescrTy_Typ* @"$TyDescr_Int256_27", %_TyDescrTy_Typ* @"$TyDescr_Int128_23", %_TyDescrTy_Typ* @"$TyDescr_Bystr_43", %_TyDescrTy_Typ* @"$TyDescr_ReplicateContr_41", %_TyDescrTy_Typ* @"$TyDescr_Message_35", %_TyDescrTy_Typ* @"$TyDescr_Int32_15"] @_tydescr_table_length = constant i32 21 -@"$pname__scilla_version_572" = unnamed_addr constant [15 x i8] c"_scilla_version" -@"$pname__this_address_573" = unnamed_addr constant [13 x i8] c"_this_address" -@"$pname__creation_block_574" = unnamed_addr constant [15 x i8] c"_creation_block" -@"$pname_initialAdmin_575" = unnamed_addr constant [12 x i8] c"initialAdmin" -@"$pname_registry_576" = unnamed_addr constant [8 x i8] c"registry" -@_contract_parameters = constant [5 x %"$ParamDescr_570"] [%"$ParamDescr_570" { %ParamDescrString { i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$pname__scilla_version_572", i32 0, i32 0), i32 15 }, %_TyDescrTy_Typ* @"$TyDescr_Uint32_17" }, %"$ParamDescr_570" { %ParamDescrString { i8* getelementptr inbounds ([13 x i8], [13 x i8]* @"$pname__this_address_573", i32 0, i32 0), i32 13 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr20_45" }, %"$ParamDescr_570" { %ParamDescrString { i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$pname__creation_block_574", i32 0, i32 0), i32 15 }, %_TyDescrTy_Typ* @"$TyDescr_Bnum_33" }, %"$ParamDescr_570" { %ParamDescrString { i8* getelementptr inbounds ([12 x i8], [12 x i8]* @"$pname_initialAdmin_575", i32 0, i32 0), i32 12 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr20_45" }, %"$ParamDescr_570" { %ParamDescrString { i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$pname_registry_576", i32 0, i32 0), i32 8 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr20_45" }] +@"$pname__scilla_version_586" = unnamed_addr constant [15 x i8] c"_scilla_version" +@"$pname__this_address_587" = unnamed_addr constant [13 x i8] c"_this_address" +@"$pname__creation_block_588" = unnamed_addr constant [15 x i8] c"_creation_block" +@"$pname_initialAdmin_589" = unnamed_addr constant [12 x i8] c"initialAdmin" +@"$pname_registry_590" = unnamed_addr constant [8 x i8] c"registry" +@_contract_parameters = constant [5 x %"$ParamDescr_584"] [%"$ParamDescr_584" { %ParamDescrString { i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$pname__scilla_version_586", i32 0, i32 0), i32 15 }, %_TyDescrTy_Typ* @"$TyDescr_Uint32_17" }, %"$ParamDescr_584" { %ParamDescrString { i8* getelementptr inbounds ([13 x i8], [13 x i8]* @"$pname__this_address_587", i32 0, i32 0), i32 13 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr20_45" }, %"$ParamDescr_584" { %ParamDescrString { i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$pname__creation_block_588", i32 0, i32 0), i32 15 }, %_TyDescrTy_Typ* @"$TyDescr_Bnum_33" }, %"$ParamDescr_584" { %ParamDescrString { i8* getelementptr inbounds ([12 x i8], [12 x i8]* @"$pname_initialAdmin_589", i32 0, i32 0), i32 12 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr20_45" }, %"$ParamDescr_584" { %ParamDescrString { i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$pname_registry_590", i32 0, i32 0), i32 8 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr20_45" }] @_contract_parameters_length = constant i32 5 -@"$tpname__amount_577" = unnamed_addr constant [7 x i8] c"_amount" -@"$tpname__origin_578" = unnamed_addr constant [7 x i8] c"_origin" -@"$tpname__sender_579" = unnamed_addr constant [7 x i8] c"_sender" -@"$tpname_address_580" = unnamed_addr constant [7 x i8] c"address" -@"$tpname_isApproved_581" = unnamed_addr constant [10 x i8] c"isApproved" -@"$tparams_setAdmin_582" = unnamed_addr constant [5 x %"$ParamDescr_570"] [%"$ParamDescr_570" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_577", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_25" }, %"$ParamDescr_570" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_578", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_56" }, %"$ParamDescr_570" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_579", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_56" }, %"$ParamDescr_570" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname_address_580", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr20_45" }, %"$ParamDescr_570" { %ParamDescrString { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$tpname_isApproved_581", i32 0, i32 0), i32 10 }, %_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_50" }] -@"$tname_setAdmin_583" = unnamed_addr constant [8 x i8] c"setAdmin" -@"$tpname__amount_584" = unnamed_addr constant [7 x i8] c"_amount" -@"$tpname__origin_585" = unnamed_addr constant [7 x i8] c"_origin" -@"$tpname__sender_586" = unnamed_addr constant [7 x i8] c"_sender" -@"$tpname_label_587" = unnamed_addr constant [5 x i8] c"label" -@"$tpname_owner_588" = unnamed_addr constant [5 x i8] c"owner" -@"$tpname_resolver_589" = unnamed_addr constant [8 x i8] c"resolver" -@"$tparams_bestow_590" = unnamed_addr constant [6 x %"$ParamDescr_570"] [%"$ParamDescr_570" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_584", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_25" }, %"$ParamDescr_570" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_585", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_56" }, %"$ParamDescr_570" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_586", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_56" }, %"$ParamDescr_570" { %ParamDescrString { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$tpname_label_587", i32 0, i32 0), i32 5 }, %_TyDescrTy_Typ* @"$TyDescr_String_31" }, %"$ParamDescr_570" { %ParamDescrString { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$tpname_owner_588", i32 0, i32 0), i32 5 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr20_45" }, %"$ParamDescr_570" { %ParamDescrString { i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$tpname_resolver_589", i32 0, i32 0), i32 8 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr20_45" }] -@"$tname_bestow_591" = unnamed_addr constant [6 x i8] c"bestow" -@_transition_parameters = constant [2 x %"$TransDescr_571"] [%"$TransDescr_571" { %ParamDescrString { i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$tname_setAdmin_583", i32 0, i32 0), i32 8 }, i32 5, %"$ParamDescr_570"* getelementptr inbounds ([5 x %"$ParamDescr_570"], [5 x %"$ParamDescr_570"]* @"$tparams_setAdmin_582", i32 0, i32 0) }, %"$TransDescr_571" { %ParamDescrString { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$tname_bestow_591", i32 0, i32 0), i32 6 }, i32 6, %"$ParamDescr_570"* getelementptr inbounds ([6 x %"$ParamDescr_570"], [6 x %"$ParamDescr_570"]* @"$tparams_bestow_590", i32 0, i32 0) }] +@"$tpname__amount_591" = unnamed_addr constant [7 x i8] c"_amount" +@"$tpname__origin_592" = unnamed_addr constant [7 x i8] c"_origin" +@"$tpname__sender_593" = unnamed_addr constant [7 x i8] c"_sender" +@"$tpname_address_594" = unnamed_addr constant [7 x i8] c"address" +@"$tpname_isApproved_595" = unnamed_addr constant [10 x i8] c"isApproved" +@"$tparams_setAdmin_596" = unnamed_addr constant [5 x %"$ParamDescr_584"] [%"$ParamDescr_584" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_591", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_25" }, %"$ParamDescr_584" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_592", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_56" }, %"$ParamDescr_584" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_593", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_56" }, %"$ParamDescr_584" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname_address_594", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr20_45" }, %"$ParamDescr_584" { %ParamDescrString { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$tpname_isApproved_595", i32 0, i32 0), i32 10 }, %_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_50" }] +@"$tname_setAdmin_597" = unnamed_addr constant [8 x i8] c"setAdmin" +@"$tpname__amount_598" = unnamed_addr constant [7 x i8] c"_amount" +@"$tpname__origin_599" = unnamed_addr constant [7 x i8] c"_origin" +@"$tpname__sender_600" = unnamed_addr constant [7 x i8] c"_sender" +@"$tpname_label_601" = unnamed_addr constant [5 x i8] c"label" +@"$tpname_owner_602" = unnamed_addr constant [5 x i8] c"owner" +@"$tpname_resolver_603" = unnamed_addr constant [8 x i8] c"resolver" +@"$tparams_bestow_604" = unnamed_addr constant [6 x %"$ParamDescr_584"] [%"$ParamDescr_584" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_598", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_25" }, %"$ParamDescr_584" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_599", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_56" }, %"$ParamDescr_584" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_600", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_56" }, %"$ParamDescr_584" { %ParamDescrString { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$tpname_label_601", i32 0, i32 0), i32 5 }, %_TyDescrTy_Typ* @"$TyDescr_String_31" }, %"$ParamDescr_584" { %ParamDescrString { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$tpname_owner_602", i32 0, i32 0), i32 5 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr20_45" }, %"$ParamDescr_584" { %ParamDescrString { i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$tpname_resolver_603", i32 0, i32 0), i32 8 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr20_45" }] +@"$tname_bestow_605" = unnamed_addr constant [6 x i8] c"bestow" +@_transition_parameters = constant [2 x %"$TransDescr_585"] [%"$TransDescr_585" { %ParamDescrString { i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$tname_setAdmin_597", i32 0, i32 0), i32 8 }, i32 5, %"$ParamDescr_584"* getelementptr inbounds ([5 x %"$ParamDescr_584"], [5 x %"$ParamDescr_584"]* @"$tparams_setAdmin_596", i32 0, i32 0) }, %"$TransDescr_585" { %ParamDescrString { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$tname_bestow_605", i32 0, i32 0), i32 6 }, i32 6, %"$ParamDescr_584"* getelementptr inbounds ([6 x %"$ParamDescr_584"], [6 x %"$ParamDescr_584"]* @"$tparams_bestow_604", i32 0, i32 0) }] @_transition_parameters_length = constant i32 2 -define internal i8* @"$fundef_8"(%"$$fundef_8_env_95"* %0, %TName_Bool* %1) !dbg !4 { +define internal i8* @"$fundef_8"(%"$$fundef_8_env_95"* %0, %TName_Bool* %1) !dbg !3 { entry: - %"$$fundef_8_env_address_123" = getelementptr inbounds %"$$fundef_8_env_95", %"$$fundef_8_env_95"* %0, i32 0, i32 0 - %"$address_envload_124" = load [20 x i8], [20 x i8]* %"$$fundef_8_env_address_123", align 1 + %"$isApproved_158" = alloca %TName_Bool*, align 8 + store %TName_Bool* %1, %TName_Bool** %"$isApproved_158", align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$isApproved_158", metadata !8, metadata !DIExpression()), !dbg !11 + %"$$fundef_8_env_address_125" = getelementptr inbounds %"$$fundef_8_env_95", %"$$fundef_8_env_95"* %0, i32 0, i32 0 + %"$address_envload_126" = load [20 x i8], [20 x i8]* %"$$fundef_8_env_address_125", align 1 %address = alloca [20 x i8], align 1 - store [20 x i8] %"$address_envload_124", [20 x i8]* %address, align 1 + store [20 x i8] %"$address_envload_126", [20 x i8]* %address, align 1 %"$retval_9" = alloca 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" + call void @llvm.dbg.declare(metadata i8** %"$retval_9", metadata !12, metadata !DIExpression()), !dbg !15 + %"$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_127": ; preds = %entry +"$out_of_gas_129": ; 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 - %"$msgobj_130_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$msgobj_130_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_130_salloc_load", i64 117) - %"$msgobj_130_salloc" = bitcast i8* %"$msgobj_130_salloc_salloc" to [117 x i8]* - %"$msgobj_130" = bitcast [117 x i8]* %"$msgobj_130_salloc" to i8* - store i8 3, i8* %"$msgobj_130", align 1 - %"$msgobj_fname_132" = getelementptr i8, i8* %"$msgobj_130", i32 1 - %"$msgobj_fname_133" = bitcast i8* %"$msgobj_fname_132" to %String* - store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_131", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_133", align 8 - %"$msgobj_td_134" = getelementptr i8, i8* %"$msgobj_130", i32 17 - %"$msgobj_td_135" = bitcast i8* %"$msgobj_td_134" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_String_31", %_TyDescrTy_Typ** %"$msgobj_td_135", align 8 - %"$msgobj_v_137" = getelementptr i8, i8* %"$msgobj_130", i32 25 - %"$msgobj_v_138" = bitcast i8* %"$msgobj_v_137" to %String* - store %String { i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$stringlit_136", i32 0, i32 0), i32 8 }, %String* %"$msgobj_v_138", align 8 - %"$msgobj_fname_140" = getelementptr i8, i8* %"$msgobj_130", i32 41 - %"$msgobj_fname_141" = bitcast i8* %"$msgobj_fname_140" to %String* - store %String { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$stringlit_139", i32 0, i32 0), i32 7 }, %String* %"$msgobj_fname_141", align 8 - %"$msgobj_td_142" = getelementptr i8, i8* %"$msgobj_130", i32 57 - %"$msgobj_td_143" = bitcast i8* %"$msgobj_td_142" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_45", %_TyDescrTy_Typ** %"$msgobj_td_143", align 8 - %"$address_144" = load [20 x i8], [20 x i8]* %address, align 1 - %"$msgobj_v_145" = getelementptr i8, i8* %"$msgobj_130", i32 65 - %"$msgobj_v_146" = bitcast i8* %"$msgobj_v_145" to [20 x i8]* - store [20 x i8] %"$address_144", [20 x i8]* %"$msgobj_v_146", align 1 - %"$msgobj_fname_148" = getelementptr i8, i8* %"$msgobj_130", i32 85 - %"$msgobj_fname_149" = bitcast i8* %"$msgobj_fname_148" to %String* - store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_147", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_149", align 8 - %"$msgobj_td_150" = getelementptr i8, i8* %"$msgobj_130", i32 101 - %"$msgobj_td_151" = bitcast i8* %"$msgobj_td_150" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_50", %_TyDescrTy_Typ** %"$msgobj_td_151", align 8 - %"$msgobj_v_152" = getelementptr i8, i8* %"$msgobj_130", i32 109 - %"$msgobj_v_153" = bitcast i8* %"$msgobj_v_152" to %TName_Bool** - store %TName_Bool* %1, %TName_Bool** %"$msgobj_v_153", align 8 - store i8* %"$msgobj_130", i8** %"$retval_9", align 8, !dbg !8 - %"$$retval_9_155" = load i8*, i8** %"$retval_9", align 8 - ret i8* %"$$retval_9_155" + br label %"$have_gas_130" + +"$have_gas_130": ; preds = %"$out_of_gas_129", %entry + %"$consume_131" = sub i64 %"$gasrem_127", 1 + store i64 %"$consume_131", i64* @_gasrem, align 8 + %"$msgobj_132_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$msgobj_132_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_132_salloc_load", i64 117) + %"$msgobj_132_salloc" = bitcast i8* %"$msgobj_132_salloc_salloc" to [117 x i8]* + %"$msgobj_132" = bitcast [117 x i8]* %"$msgobj_132_salloc" to i8* + store i8 3, i8* %"$msgobj_132", align 1 + %"$msgobj_fname_134" = getelementptr i8, i8* %"$msgobj_132", i32 1 + %"$msgobj_fname_135" = bitcast i8* %"$msgobj_fname_134" to %String* + store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_133", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_135", align 8 + %"$msgobj_td_136" = getelementptr i8, i8* %"$msgobj_132", i32 17 + %"$msgobj_td_137" = bitcast i8* %"$msgobj_td_136" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_String_31", %_TyDescrTy_Typ** %"$msgobj_td_137", align 8 + %"$msgobj_v_139" = getelementptr i8, i8* %"$msgobj_132", i32 25 + %"$msgobj_v_140" = bitcast i8* %"$msgobj_v_139" to %String* + store %String { i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$stringlit_138", i32 0, i32 0), i32 8 }, %String* %"$msgobj_v_140", align 8 + %"$msgobj_fname_142" = getelementptr i8, i8* %"$msgobj_132", i32 41 + %"$msgobj_fname_143" = bitcast i8* %"$msgobj_fname_142" to %String* + store %String { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$stringlit_141", i32 0, i32 0), i32 7 }, %String* %"$msgobj_fname_143", align 8 + %"$msgobj_td_144" = getelementptr i8, i8* %"$msgobj_132", i32 57 + %"$msgobj_td_145" = bitcast i8* %"$msgobj_td_144" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_45", %_TyDescrTy_Typ** %"$msgobj_td_145", align 8 + %"$address_146" = load [20 x i8], [20 x i8]* %address, align 1 + %"$msgobj_v_147" = getelementptr i8, i8* %"$msgobj_132", i32 65 + %"$msgobj_v_148" = bitcast i8* %"$msgobj_v_147" to [20 x i8]* + store [20 x i8] %"$address_146", [20 x i8]* %"$msgobj_v_148", align 1 + %"$msgobj_fname_150" = getelementptr i8, i8* %"$msgobj_132", i32 85 + %"$msgobj_fname_151" = bitcast i8* %"$msgobj_fname_150" to %String* + store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_149", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_151", align 8 + %"$msgobj_td_152" = getelementptr i8, i8* %"$msgobj_132", i32 101 + %"$msgobj_td_153" = bitcast i8* %"$msgobj_td_152" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_50", %_TyDescrTy_Typ** %"$msgobj_td_153", align 8 + %"$msgobj_v_154" = getelementptr i8, i8* %"$msgobj_132", i32 109 + %"$msgobj_v_155" = bitcast i8* %"$msgobj_v_154" to %TName_Bool** + store %TName_Bool* %1, %TName_Bool** %"$msgobj_v_155", align 8 + store i8* %"$msgobj_132", i8** %"$retval_9", align 8, !dbg !15 + %"$$retval_9_157" = load i8*, i8** %"$retval_9", align 8 + ret i8* %"$$retval_9_157" } -define internal { i8* (i8*, %TName_Bool*)*, i8* } @"$fundef_6"(%"$$fundef_6_env_96"* %0, [20 x i8]* %1) !dbg !9 { +define internal { i8* (i8*, %TName_Bool*)*, i8* } @"$fundef_6"(%"$$fundef_6_env_96"* %0, [20 x i8]* %1) !dbg !16 { entry: + %"$address_124" = alloca [20 x i8]*, align 8 + store [20 x i8]* %1, [20 x i8]** %"$address_124", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$address_124", metadata !17, metadata !DIExpression()), !dbg !19 %address = load [20 x i8], [20 x i8]* %1, align 1 %"$retval_7" = alloca { i8* (i8*, %TName_Bool*)*, i8* }, align 8 - %"$gasrem_112" = load i64, i64* @_gasrem, align 8 - %"$gascmp_113" = icmp ugt i64 1, %"$gasrem_112" - br i1 %"$gascmp_113", label %"$out_of_gas_114", label %"$have_gas_115" + %"$gasrem_113" = load i64, i64* @_gasrem, align 8 + %"$gascmp_114" = icmp ugt i64 1, %"$gasrem_113" + br i1 %"$gascmp_114", label %"$out_of_gas_115", label %"$have_gas_116" -"$out_of_gas_114": ; preds = %entry +"$out_of_gas_115": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_115" - -"$have_gas_115": ; preds = %"$out_of_gas_114", %entry - %"$consume_116" = sub i64 %"$gasrem_112", 1 - store i64 %"$consume_116", i64* @_gasrem, align 8 - %"$$fundef_8_envp_117_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_8_envp_117_salloc" = call i8* @_salloc(i8* %"$$fundef_8_envp_117_load", i64 20) - %"$$fundef_8_envp_117" = bitcast i8* %"$$fundef_8_envp_117_salloc" to %"$$fundef_8_env_95"* - %"$$fundef_8_env_voidp_119" = bitcast %"$$fundef_8_env_95"* %"$$fundef_8_envp_117" to i8* - %"$$fundef_8_cloval_120" = insertvalue { i8* (i8*, %TName_Bool*)*, i8* } { i8* (i8*, %TName_Bool*)* bitcast (i8* (%"$$fundef_8_env_95"*, %TName_Bool*)* @"$fundef_8" to i8* (i8*, %TName_Bool*)*), i8* undef }, i8* %"$$fundef_8_env_voidp_119", 1 - %"$$fundef_8_env_address_121" = getelementptr inbounds %"$$fundef_8_env_95", %"$$fundef_8_env_95"* %"$$fundef_8_envp_117", i32 0, i32 0 - store [20 x i8] %address, [20 x i8]* %"$$fundef_8_env_address_121", align 1 - store { i8* (i8*, %TName_Bool*)*, i8* } %"$$fundef_8_cloval_120", { i8* (i8*, %TName_Bool*)*, i8* }* %"$retval_7", align 8, !dbg !10 - %"$$retval_7_122" = load { i8* (i8*, %TName_Bool*)*, i8* }, { i8* (i8*, %TName_Bool*)*, i8* }* %"$retval_7", align 8 - ret { i8* (i8*, %TName_Bool*)*, i8* } %"$$retval_7_122" + br label %"$have_gas_116" + +"$have_gas_116": ; preds = %"$out_of_gas_115", %entry + %"$consume_117" = sub i64 %"$gasrem_113", 1 + store i64 %"$consume_117", i64* @_gasrem, align 8 + %"$$fundef_8_envp_118_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_8_envp_118_salloc" = call i8* @_salloc(i8* %"$$fundef_8_envp_118_load", i64 20) + %"$$fundef_8_envp_118" = bitcast i8* %"$$fundef_8_envp_118_salloc" to %"$$fundef_8_env_95"* + %"$$fundef_8_env_voidp_120" = bitcast %"$$fundef_8_env_95"* %"$$fundef_8_envp_118" to i8* + %"$$fundef_8_cloval_121" = insertvalue { i8* (i8*, %TName_Bool*)*, i8* } { i8* (i8*, %TName_Bool*)* bitcast (i8* (%"$$fundef_8_env_95"*, %TName_Bool*)* @"$fundef_8" to i8* (i8*, %TName_Bool*)*), i8* undef }, i8* %"$$fundef_8_env_voidp_120", 1 + %"$$fundef_8_env_address_122" = getelementptr inbounds %"$$fundef_8_env_95", %"$$fundef_8_env_95"* %"$$fundef_8_envp_118", i32 0, i32 0 + store [20 x i8] %address, [20 x i8]* %"$$fundef_8_env_address_122", align 1 + store { i8* (i8*, %TName_Bool*)*, i8* } %"$$fundef_8_cloval_121", { i8* (i8*, %TName_Bool*)*, i8* }* %"$retval_7", align 8, !dbg !20 + %"$$retval_7_123" = load { i8* (i8*, %TName_Bool*)*, i8* }, { i8* (i8*, %TName_Bool*)*, i8* }* %"$retval_7", align 8 + ret { i8* (i8*, %TName_Bool*)*, i8* } %"$$retval_7_123" } -define internal %TName_List_Message* @"$fundef_10"(%"$$fundef_10_env_97"* %0, i8* %1) !dbg !11 { +define internal %TName_List_Message* @"$fundef_10"(%"$$fundef_10_env_97"* %0, i8* %1) !dbg !21 { entry: + %"$msg_112" = alloca i8*, align 8 + store i8* %1, i8** %"$msg_112", align 8 + call void @llvm.dbg.declare(metadata i8** %"$msg_112", metadata !22, metadata !DIExpression()), !dbg !25 %"$$fundef_10_env_ud-proxy.nilMessage_98" = getelementptr inbounds %"$$fundef_10_env_97", %"$$fundef_10_env_97"* %0, i32 0, i32 0 %"$ud-proxy.nilMessage_envload_99" = load %TName_List_Message*, %TName_List_Message** %"$$fundef_10_env_ud-proxy.nilMessage_98", align 8 %ud-proxy.nilMessage = alloca %TName_List_Message*, align 8 store %TName_List_Message* %"$ud-proxy.nilMessage_envload_99", %TName_List_Message** %ud-proxy.nilMessage, align 8 %"$retval_11" = alloca %TName_List_Message*, align 8 + call void @llvm.dbg.declare(metadata %TName_List_Message** %"$retval_11", metadata !26, metadata !DIExpression()), !dbg !29 %"$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" @@ -282,222 +293,227 @@ entry: %"$adtgep_109" = getelementptr inbounds %CName_Cons_Message, %CName_Cons_Message* %"$adtval_106", i32 0, i32 2 store %TName_List_Message* %"$ud-proxy.nilMessage_105", %TName_List_Message** %"$adtgep_109", align 8 %"$adtptr_110" = bitcast %CName_Cons_Message* %"$adtval_106" to %TName_List_Message* - store %TName_List_Message* %"$adtptr_110", %TName_List_Message** %"$retval_11", align 8, !dbg !12 + store %TName_List_Message* %"$adtptr_110", %TName_List_Message** %"$retval_11", align 8, !dbg !29 %"$$retval_11_111" = load %TName_List_Message*, %TName_List_Message** %"$retval_11", align 8 ret %TName_List_Message* %"$$retval_11_111" } +; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn +declare void @llvm.dbg.declare(metadata, metadata, metadata) #0 + declare void @_out_of_gas() declare i8* @_salloc(i8*, i64) -define void @_init_libs() !dbg !13 { +define void @_init_libs() !dbg !30 { entry: - %"$gasrem_156" = load i64, i64* @_gasrem, align 8 - %"$gascmp_157" = icmp ugt i64 5, %"$gasrem_156" - br i1 %"$gascmp_157", label %"$out_of_gas_158", label %"$have_gas_159" + %"$gasrem_159" = load i64, i64* @_gasrem, align 8 + %"$gascmp_160" = icmp ugt i64 5, %"$gasrem_159" + br i1 %"$gascmp_160", label %"$out_of_gas_161", label %"$have_gas_162" -"$out_of_gas_158": ; preds = %entry +"$out_of_gas_161": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_159" + br label %"$have_gas_162" -"$have_gas_159": ; preds = %"$out_of_gas_158", %entry - %"$consume_160" = sub i64 %"$gasrem_156", 5 - store i64 %"$consume_160", i64* @_gasrem, align 8 - store %Int32 { i32 5 }, %Int32* @"$_gas_charge_acc_2", align 4, !dbg !15 - %"$gasrem_161" = load i64, i64* @_gasrem, align 8 - %"$gascmp_162" = icmp ugt i64 8, %"$gasrem_161" - br i1 %"$gascmp_162", label %"$out_of_gas_163", label %"$have_gas_164" +"$have_gas_162": ; preds = %"$out_of_gas_161", %entry + %"$consume_163" = sub i64 %"$gasrem_159", 5 + store i64 %"$consume_163", i64* @_gasrem, align 8 + store %Int32 { i32 5 }, %Int32* @"$_gas_charge_acc_2", align 4, !dbg !32 + %"$gasrem_164" = load i64, i64* @_gasrem, align 8 + %"$gascmp_165" = icmp ugt i64 8, %"$gasrem_164" + br i1 %"$gascmp_165", label %"$out_of_gas_166", label %"$have_gas_167" -"$out_of_gas_163": ; preds = %"$have_gas_159" +"$out_of_gas_166": ; preds = %"$have_gas_162" call void @_out_of_gas() - br label %"$have_gas_164" + br label %"$have_gas_167" -"$have_gas_164": ; preds = %"$out_of_gas_163", %"$have_gas_159" - %"$consume_165" = sub i64 %"$gasrem_161", 8 - store i64 %"$consume_165", i64* @_gasrem, align 8 - store %Int32 { i32 8 }, %Int32* @"$_gas_charge_accBoolUtils_0", align 4, !dbg !15 - %"$gasrem_166" = load i64, i64* @_gasrem, align 8 - %"$gascmp_167" = icmp ugt i64 20, %"$gasrem_166" - br i1 %"$gascmp_167", label %"$out_of_gas_168", label %"$have_gas_169" +"$have_gas_167": ; preds = %"$out_of_gas_166", %"$have_gas_162" + %"$consume_168" = sub i64 %"$gasrem_164", 8 + store i64 %"$consume_168", i64* @_gasrem, align 8 + store %Int32 { i32 8 }, %Int32* @"$_gas_charge_accBoolUtils_0", align 4, !dbg !32 + %"$gasrem_169" = load i64, i64* @_gasrem, align 8 + %"$gascmp_170" = icmp ugt i64 20, %"$gasrem_169" + br i1 %"$gascmp_170", label %"$out_of_gas_171", label %"$have_gas_172" -"$out_of_gas_168": ; preds = %"$have_gas_164" +"$out_of_gas_171": ; preds = %"$have_gas_167" call void @_out_of_gas() - br label %"$have_gas_169" + br label %"$have_gas_172" -"$have_gas_169": ; preds = %"$out_of_gas_168", %"$have_gas_164" - %"$consume_170" = sub i64 %"$gasrem_166", 20 - store i64 %"$consume_170", i64* @_gasrem, align 8 - store %Int32 { i32 20 }, %Int32* @"$_gas_charge_accListUtils_1", align 4, !dbg !15 - %"$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" +"$have_gas_172": ; preds = %"$out_of_gas_171", %"$have_gas_167" + %"$consume_173" = sub i64 %"$gasrem_169", 20 + store i64 %"$consume_173", i64* @_gasrem, align 8 + store %Int32 { i32 20 }, %Int32* @"$_gas_charge_accListUtils_1", align 4, !dbg !32 + %"$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_173": ; preds = %"$have_gas_169" +"$out_of_gas_176": ; preds = %"$have_gas_172" 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 - %"$adtval_176_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_176_salloc" = call i8* @_salloc(i8* %"$adtval_176_load", i64 1) - %"$adtval_176" = bitcast i8* %"$adtval_176_salloc" to %CName_True* - %"$adtgep_177" = getelementptr inbounds %CName_True, %CName_True* %"$adtval_176", i32 0, i32 0 - store i8 0, i8* %"$adtgep_177", align 1 - %"$adtptr_178" = bitcast %CName_True* %"$adtval_176" to %TName_Bool* - store %TName_Bool* %"$adtptr_178", %TName_Bool** @ud-proxy.true, align 8, !dbg !16 - %"$gasrem_179" = load i64, i64* @_gasrem, align 8 - %"$gascmp_180" = icmp ugt i64 1, %"$gasrem_179" - br i1 %"$gascmp_180", label %"$out_of_gas_181", label %"$have_gas_182" - -"$out_of_gas_181": ; preds = %"$have_gas_174" + br label %"$have_gas_177" + +"$have_gas_177": ; preds = %"$out_of_gas_176", %"$have_gas_172" + %"$consume_178" = sub i64 %"$gasrem_174", 1 + store i64 %"$consume_178", i64* @_gasrem, align 8 + %"$adtval_179_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_179_salloc" = call i8* @_salloc(i8* %"$adtval_179_load", i64 1) + %"$adtval_179" = bitcast i8* %"$adtval_179_salloc" to %CName_True* + %"$adtgep_180" = getelementptr inbounds %CName_True, %CName_True* %"$adtval_179", i32 0, i32 0 + store i8 0, i8* %"$adtgep_180", align 1 + %"$adtptr_181" = bitcast %CName_True* %"$adtval_179" to %TName_Bool* + store %TName_Bool* %"$adtptr_181", %TName_Bool** @ud-proxy.true, align 8, !dbg !33 + %"$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_184": ; preds = %"$have_gas_177" call void @_out_of_gas() - br label %"$have_gas_182" - -"$have_gas_182": ; preds = %"$out_of_gas_181", %"$have_gas_174" - %"$consume_183" = sub i64 %"$gasrem_179", 1 - store i64 %"$consume_183", i64* @_gasrem, align 8 - %"$adtval_184_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_184_salloc" = call i8* @_salloc(i8* %"$adtval_184_load", i64 1) - %"$adtval_184" = bitcast i8* %"$adtval_184_salloc" to %CName_Nil_Message* - %"$adtgep_185" = getelementptr inbounds %CName_Nil_Message, %CName_Nil_Message* %"$adtval_184", i32 0, i32 0 - store i8 1, i8* %"$adtgep_185", align 1 - %"$adtptr_186" = bitcast %CName_Nil_Message* %"$adtval_184" to %TName_List_Message* - store %TName_List_Message* %"$adtptr_186", %TName_List_Message** @ud-proxy.nilMessage, align 8, !dbg !17 - %"$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_182" + br label %"$have_gas_185" + +"$have_gas_185": ; preds = %"$out_of_gas_184", %"$have_gas_177" + %"$consume_186" = sub i64 %"$gasrem_182", 1 + store i64 %"$consume_186", i64* @_gasrem, align 8 + %"$adtval_187_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_187_salloc" = call i8* @_salloc(i8* %"$adtval_187_load", i64 1) + %"$adtval_187" = bitcast i8* %"$adtval_187_salloc" to %CName_Nil_Message* + %"$adtgep_188" = getelementptr inbounds %CName_Nil_Message, %CName_Nil_Message* %"$adtval_187", i32 0, i32 0 + store i8 1, i8* %"$adtgep_188", align 1 + %"$adtptr_189" = bitcast %CName_Nil_Message* %"$adtval_187" to %TName_List_Message* + store %TName_List_Message* %"$adtptr_189", %TName_List_Message** @ud-proxy.nilMessage, align 8, !dbg !34 + %"$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 = %"$have_gas_185" call void @_out_of_gas() - br label %"$have_gas_190" - -"$have_gas_190": ; preds = %"$out_of_gas_189", %"$have_gas_182" - %"$consume_191" = sub i64 %"$gasrem_187", 1 - store i64 %"$consume_191", i64* @_gasrem, align 8 - %"$$fundef_10_envp_192_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_10_envp_192_salloc" = call i8* @_salloc(i8* %"$$fundef_10_envp_192_load", i64 8) - %"$$fundef_10_envp_192" = bitcast i8* %"$$fundef_10_envp_192_salloc" to %"$$fundef_10_env_97"* - %"$$fundef_10_env_voidp_194" = bitcast %"$$fundef_10_env_97"* %"$$fundef_10_envp_192" to i8* - %"$$fundef_10_cloval_195" = insertvalue { %TName_List_Message* (i8*, i8*)*, i8* } { %TName_List_Message* (i8*, i8*)* bitcast (%TName_List_Message* (%"$$fundef_10_env_97"*, i8*)* @"$fundef_10" to %TName_List_Message* (i8*, i8*)*), i8* undef }, i8* %"$$fundef_10_env_voidp_194", 1 - %"$$fundef_10_env_ud-proxy.nilMessage_196" = getelementptr inbounds %"$$fundef_10_env_97", %"$$fundef_10_env_97"* %"$$fundef_10_envp_192", i32 0, i32 0 - %"$ud-proxy.nilMessage_197" = load %TName_List_Message*, %TName_List_Message** @ud-proxy.nilMessage, align 8 - store %TName_List_Message* %"$ud-proxy.nilMessage_197", %TName_List_Message** %"$$fundef_10_env_ud-proxy.nilMessage_196", align 8 - store { %TName_List_Message* (i8*, i8*)*, i8* } %"$$fundef_10_cloval_195", { %TName_List_Message* (i8*, i8*)*, i8* }* @ud-proxy.oneMsg, align 8, !dbg !18 - %"$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_190" + br label %"$have_gas_193" + +"$have_gas_193": ; preds = %"$out_of_gas_192", %"$have_gas_185" + %"$consume_194" = sub i64 %"$gasrem_190", 1 + store i64 %"$consume_194", i64* @_gasrem, align 8 + %"$$fundef_10_envp_195_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_10_envp_195_salloc" = call i8* @_salloc(i8* %"$$fundef_10_envp_195_load", i64 8) + %"$$fundef_10_envp_195" = bitcast i8* %"$$fundef_10_envp_195_salloc" to %"$$fundef_10_env_97"* + %"$$fundef_10_env_voidp_197" = bitcast %"$$fundef_10_env_97"* %"$$fundef_10_envp_195" to i8* + %"$$fundef_10_cloval_198" = insertvalue { %TName_List_Message* (i8*, i8*)*, i8* } { %TName_List_Message* (i8*, i8*)* bitcast (%TName_List_Message* (%"$$fundef_10_env_97"*, i8*)* @"$fundef_10" to %TName_List_Message* (i8*, i8*)*), i8* undef }, i8* %"$$fundef_10_env_voidp_197", 1 + %"$$fundef_10_env_ud-proxy.nilMessage_199" = getelementptr inbounds %"$$fundef_10_env_97", %"$$fundef_10_env_97"* %"$$fundef_10_envp_195", i32 0, i32 0 + %"$ud-proxy.nilMessage_200" = load %TName_List_Message*, %TName_List_Message** @ud-proxy.nilMessage, align 8 + store %TName_List_Message* %"$ud-proxy.nilMessage_200", %TName_List_Message** %"$$fundef_10_env_ud-proxy.nilMessage_199", align 8 + store { %TName_List_Message* (i8*, i8*)*, i8* } %"$$fundef_10_cloval_198", { %TName_List_Message* (i8*, i8*)*, i8* }* @ud-proxy.oneMsg, align 8, !dbg !35 + %"$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" + +"$out_of_gas_203": ; preds = %"$have_gas_193" call void @_out_of_gas() - br label %"$have_gas_201" + br label %"$have_gas_204" -"$have_gas_201": ; preds = %"$out_of_gas_200", %"$have_gas_190" - %"$consume_202" = sub i64 %"$gasrem_198", 1 - store i64 %"$consume_202", 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_6_env_96"*, [20 x i8]*)* @"$fundef_6" 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 !19 - %"$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" +"$have_gas_204": ; preds = %"$out_of_gas_203", %"$have_gas_193" + %"$consume_205" = sub i64 %"$gasrem_201", 1 + store i64 %"$consume_205", 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_6_env_96"*, [20 x i8]*)* @"$fundef_6" 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 !36 + %"$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_208": ; preds = %"$have_gas_201" +"$out_of_gas_211": ; preds = %"$have_gas_204" call void @_out_of_gas() - br label %"$have_gas_209" - -"$have_gas_209": ; preds = %"$out_of_gas_208", %"$have_gas_201" - %"$consume_210" = sub i64 %"$gasrem_206", 1 - store i64 %"$consume_210", i64* @_gasrem, align 8 - %"$msgobj_211_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$msgobj_211_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_211_salloc_load", i64 41) - %"$msgobj_211_salloc" = bitcast i8* %"$msgobj_211_salloc_salloc" to [41 x i8]* - %"$msgobj_211" = bitcast [41 x i8]* %"$msgobj_211_salloc" to i8* - store i8 1, i8* %"$msgobj_211", align 1 - %"$msgobj_fname_213" = getelementptr i8, i8* %"$msgobj_211", i32 1 - %"$msgobj_fname_214" = bitcast i8* %"$msgobj_fname_213" to %String* - store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_212", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_214", align 8 - %"$msgobj_td_215" = getelementptr i8, i8* %"$msgobj_211", i32 17 - %"$msgobj_td_216" = bitcast i8* %"$msgobj_td_215" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_String_31", %_TyDescrTy_Typ** %"$msgobj_td_216", align 8 - %"$msgobj_v_218" = getelementptr i8, i8* %"$msgobj_211", i32 25 - %"$msgobj_v_219" = bitcast i8* %"$msgobj_v_218" to %String* - store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_217", i32 0, i32 0), i32 5 }, %String* %"$msgobj_v_219", align 8 - store i8* %"$msgobj_211", i8** @ud-proxy.eError, align 8, !dbg !20 + br label %"$have_gas_212" + +"$have_gas_212": ; preds = %"$out_of_gas_211", %"$have_gas_204" + %"$consume_213" = sub i64 %"$gasrem_209", 1 + store i64 %"$consume_213", i64* @_gasrem, align 8 + %"$msgobj_214_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$msgobj_214_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_214_salloc_load", i64 41) + %"$msgobj_214_salloc" = bitcast i8* %"$msgobj_214_salloc_salloc" to [41 x i8]* + %"$msgobj_214" = bitcast [41 x i8]* %"$msgobj_214_salloc" to i8* + store i8 1, i8* %"$msgobj_214", align 1 + %"$msgobj_fname_216" = getelementptr i8, i8* %"$msgobj_214", i32 1 + %"$msgobj_fname_217" = bitcast i8* %"$msgobj_fname_216" to %String* + store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_215", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_217", align 8 + %"$msgobj_td_218" = getelementptr i8, i8* %"$msgobj_214", i32 17 + %"$msgobj_td_219" = bitcast i8* %"$msgobj_td_218" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_String_31", %_TyDescrTy_Typ** %"$msgobj_td_219", align 8 + %"$msgobj_v_221" = getelementptr i8, i8* %"$msgobj_214", i32 25 + %"$msgobj_v_222" = bitcast i8* %"$msgobj_v_221" to %String* + store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_220", i32 0, i32 0), i32 5 }, %String* %"$msgobj_v_222", align 8 + store i8* %"$msgobj_214", i8** @ud-proxy.eError, align 8, !dbg !37 ret void } -define void @_deploy_ops() !dbg !21 { +define void @_deploy_ops() !dbg !38 { entry: - %"$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" + %"$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_223": ; preds = %entry +"$out_of_gas_226": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_224" + br label %"$have_gas_227" -"$have_gas_224": ; preds = %"$out_of_gas_223", %entry - %"$consume_225" = sub i64 %"$gasrem_221", 1 - store i64 %"$consume_225", 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 %"$admins_12" = alloca %Map_ByStr20_Bool*, 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" + call void @llvm.dbg.declare(metadata %Map_ByStr20_Bool** %"$admins_12", metadata !39, metadata !DIExpression()), !dbg !42 + %"$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_228": ; preds = %"$have_gas_224" +"$out_of_gas_231": ; preds = %"$have_gas_227" call void @_out_of_gas() - br label %"$have_gas_229" + br label %"$have_gas_232" -"$have_gas_229": ; preds = %"$out_of_gas_228", %"$have_gas_224" - %"$consume_230" = sub i64 %"$gasrem_226", 1 - store i64 %"$consume_230", i64* @_gasrem, align 8 +"$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 %empty = alloca %Map_ByStr20_Bool*, 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" + call void @llvm.dbg.declare(metadata %Map_ByStr20_Bool** %empty, metadata !43, metadata !DIExpression()), !dbg !44 + %"$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_233": ; preds = %"$have_gas_229" +"$out_of_gas_236": ; preds = %"$have_gas_232" call void @_out_of_gas() - br label %"$have_gas_234" - -"$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 - %"$execptr_load_236" = load i8*, i8** @_execptr, align 8 - %"$_new_empty_map_call_237" = call i8* @_new_empty_map(i8* %"$execptr_load_236") - %"$_new_empty_map_238" = bitcast i8* %"$_new_empty_map_call_237" to %Map_ByStr20_Bool* - store %Map_ByStr20_Bool* %"$_new_empty_map_238", %Map_ByStr20_Bool** %empty, align 8, !dbg !22 - %"$empty_239" = load %Map_ByStr20_Bool*, %Map_ByStr20_Bool** %empty, align 8 - %"$$empty_239_240" = bitcast %Map_ByStr20_Bool* %"$empty_239" to i8* - %"$_lengthof_call_241" = call i64 @_lengthof(%_TyDescrTy_Typ* @"$TyDescr_Map_53", i8* %"$$empty_239_240") - %"$gasadd_242" = add i64 1, %"$_lengthof_call_241" - %"$gasrem_243" = load i64, i64* @_gasrem, align 8 - %"$gascmp_244" = icmp ugt i64 %"$gasadd_242", %"$gasrem_243" - br i1 %"$gascmp_244", label %"$out_of_gas_245", label %"$have_gas_246" - -"$out_of_gas_245": ; preds = %"$have_gas_234" + 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 + %"$execptr_load_239" = load i8*, i8** @_execptr, align 8 + %"$_new_empty_map_call_240" = call i8* @_new_empty_map(i8* %"$execptr_load_239") + %"$_new_empty_map_241" = bitcast i8* %"$_new_empty_map_call_240" to %Map_ByStr20_Bool* + store %Map_ByStr20_Bool* %"$_new_empty_map_241", %Map_ByStr20_Bool** %empty, align 8, !dbg !45 + %"$empty_242" = load %Map_ByStr20_Bool*, %Map_ByStr20_Bool** %empty, align 8 + %"$$empty_242_243" = bitcast %Map_ByStr20_Bool* %"$empty_242" to i8* + %"$_lengthof_call_244" = call i64 @_lengthof(%_TyDescrTy_Typ* @"$TyDescr_Map_53", i8* %"$$empty_242_243") + %"$gasadd_245" = add i64 1, %"$_lengthof_call_244" + %"$gasrem_246" = load i64, i64* @_gasrem, align 8 + %"$gascmp_247" = icmp ugt i64 %"$gasadd_245", %"$gasrem_246" + br i1 %"$gascmp_247", label %"$out_of_gas_248", label %"$have_gas_249" + +"$out_of_gas_248": ; preds = %"$have_gas_237" call void @_out_of_gas() - br label %"$have_gas_246" - -"$have_gas_246": ; preds = %"$out_of_gas_245", %"$have_gas_234" - %"$consume_247" = sub i64 %"$gasrem_243", %"$gasadd_242" - store i64 %"$consume_247", i64* @_gasrem, align 8 - %"$execptr_load_248" = load i8*, i8** @_execptr, align 8 - %"$empty_249" = load %Map_ByStr20_Bool*, %Map_ByStr20_Bool** %empty, align 8 - %"$$empty_249_250" = bitcast %Map_ByStr20_Bool* %"$empty_249" to i8* - %"$put_initialAdmin_251" = alloca [20 x i8], align 1 - %"$initialAdmin_252" = load [20 x i8], [20 x i8]* @_cparam_initialAdmin, align 1 - store [20 x i8] %"$initialAdmin_252", [20 x i8]* %"$put_initialAdmin_251", align 1 - %"$$put_initialAdmin_251_253" = bitcast [20 x i8]* %"$put_initialAdmin_251" to i8* - %"$ud-proxy.true_254" = load %TName_Bool*, %TName_Bool** @ud-proxy.true, align 8 - %"$$ud-proxy.true_254_255" = bitcast %TName_Bool* %"$ud-proxy.true_254" to i8* - %"$put_call_256" = call i8* @_put(i8* %"$execptr_load_248", %_TyDescrTy_Typ* @"$TyDescr_Map_53", i8* %"$$empty_249_250", i8* %"$$put_initialAdmin_251_253", i8* %"$$ud-proxy.true_254_255"), !dbg !23 - %"$put_257" = bitcast i8* %"$put_call_256" to %Map_ByStr20_Bool* - store %Map_ByStr20_Bool* %"$put_257", %Map_ByStr20_Bool** %"$admins_12", align 8, !dbg !23 - %"$execptr_load_258" = load i8*, i8** @_execptr, align 8 - %"$$admins_12_260" = load %Map_ByStr20_Bool*, %Map_ByStr20_Bool** %"$admins_12", align 8 - %"$update_value_261" = bitcast %Map_ByStr20_Bool* %"$$admins_12_260" to i8* - call void @_update_field(i8* %"$execptr_load_258", i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$admins_259", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_53", i32 0, i8* null, i8* %"$update_value_261"), !dbg !22 + br label %"$have_gas_249" + +"$have_gas_249": ; preds = %"$out_of_gas_248", %"$have_gas_237" + %"$consume_250" = sub i64 %"$gasrem_246", %"$gasadd_245" + store i64 %"$consume_250", i64* @_gasrem, align 8 + %"$execptr_load_251" = load i8*, i8** @_execptr, align 8 + %"$empty_252" = load %Map_ByStr20_Bool*, %Map_ByStr20_Bool** %empty, align 8 + %"$$empty_252_253" = bitcast %Map_ByStr20_Bool* %"$empty_252" to i8* + %"$put_initialAdmin_254" = alloca [20 x i8], align 1 + %"$initialAdmin_255" = load [20 x i8], [20 x i8]* @_cparam_initialAdmin, align 1 + store [20 x i8] %"$initialAdmin_255", [20 x i8]* %"$put_initialAdmin_254", align 1 + %"$$put_initialAdmin_254_256" = bitcast [20 x i8]* %"$put_initialAdmin_254" to i8* + %"$ud-proxy.true_257" = load %TName_Bool*, %TName_Bool** @ud-proxy.true, align 8 + %"$$ud-proxy.true_257_258" = bitcast %TName_Bool* %"$ud-proxy.true_257" to i8* + %"$put_call_259" = call i8* @_put(i8* %"$execptr_load_251", %_TyDescrTy_Typ* @"$TyDescr_Map_53", i8* %"$$empty_252_253", i8* %"$$put_initialAdmin_254_256", i8* %"$$ud-proxy.true_257_258"), !dbg !46 + %"$put_260" = bitcast i8* %"$put_call_259" to %Map_ByStr20_Bool* + store %Map_ByStr20_Bool* %"$put_260", %Map_ByStr20_Bool** %"$admins_12", align 8, !dbg !46 + %"$execptr_load_261" = load i8*, i8** @_execptr, align 8 + %"$$admins_12_263" = load %Map_ByStr20_Bool*, %Map_ByStr20_Bool** %"$admins_12", align 8 + %"$update_value_264" = bitcast %Map_ByStr20_Bool* %"$$admins_12_263" to i8* + call void @_update_field(i8* %"$execptr_load_261", i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$admins_262", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_53", i32 0, i8* null, i8* %"$update_value_264"), !dbg !45 ret void } @@ -509,243 +525,262 @@ declare i8* @_put(i8*, %_TyDescrTy_Typ*, i8*, i8*, i8*) declare void @_update_field(i8*, i8*, %_TyDescrTy_Typ*, i32, i8*, i8*) -define internal void @"$setAdmin_262"(%Uint128 %_amount, [20 x i8]* %"$_origin_263", [20 x i8]* %"$_sender_264", [20 x i8]* %"$address_265", %TName_Bool* %isApproved) !dbg !24 { +define internal void @"$setAdmin_265"(%Uint128 %_amount, [20 x i8]* %"$_origin_266", [20 x i8]* %"$_sender_267", [20 x i8]* %"$address_268", %TName_Bool* %isApproved) !dbg !47 { entry: - %_origin = load [20 x i8], [20 x i8]* %"$_origin_263", align 1 - %_sender = load [20 x i8], [20 x i8]* %"$_sender_264", align 1 - %address = load [20 x i8], [20 x i8]* %"$address_265", align 1 + %"$isApproved_391" = alloca %TName_Bool*, align 8 + store %TName_Bool* %isApproved, %TName_Bool** %"$isApproved_391", align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$isApproved_391", metadata !48, metadata !DIExpression()), !dbg !49 + %"$address_390" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$address_268", [20 x i8]** %"$address_390", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$address_390", metadata !50, metadata !DIExpression()), !dbg !51 + %"$_sender_389" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_sender_267", [20 x i8]** %"$_sender_389", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_sender_389", metadata !52, metadata !DIExpression()), !dbg !54 + %"$_origin_388" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_origin_266", [20 x i8]** %"$_origin_388", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_origin_388", metadata !55, metadata !DIExpression()), !dbg !54 + %"$_amount_387" = alloca %Uint128, align 8 + store %Uint128 %_amount, %Uint128* %"$_amount_387", align 8 + call void @llvm.dbg.declare(metadata %Uint128* %"$_amount_387", metadata !56, metadata !DIExpression()), !dbg !54 + %_origin = load [20 x i8], [20 x i8]* %"$_origin_266", align 1 + %_sender = load [20 x i8], [20 x i8]* %"$_sender_267", align 1 + %address = load [20 x i8], [20 x i8]* %"$address_268", align 1 %maybeAdmin = alloca %TName_Option_Bool*, align 8 - %"$indices_buf_266_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$indices_buf_266_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_266_salloc_load", i64 20) - %"$indices_buf_266_salloc" = bitcast i8* %"$indices_buf_266_salloc_salloc" to [20 x i8]* - %"$indices_buf_266" = bitcast [20 x i8]* %"$indices_buf_266_salloc" to i8* - %"$indices_gep_267" = getelementptr i8, i8* %"$indices_buf_266", i32 0 - %indices_cast = bitcast i8* %"$indices_gep_267" to [20 x i8]* + call void @llvm.dbg.declare(metadata %TName_Option_Bool** %maybeAdmin, metadata !58, metadata !DIExpression()), !dbg !61 + %"$indices_buf_269_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$indices_buf_269_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_269_salloc_load", i64 20) + %"$indices_buf_269_salloc" = bitcast i8* %"$indices_buf_269_salloc_salloc" to [20 x i8]* + %"$indices_buf_269" = bitcast [20 x i8]* %"$indices_buf_269_salloc" to i8* + %"$indices_gep_270" = getelementptr i8, i8* %"$indices_buf_269", i32 0 + %indices_cast = bitcast i8* %"$indices_gep_270" to [20 x i8]* store [20 x i8] %_sender, [20 x i8]* %indices_cast, align 1 - %"$execptr_load_269" = load i8*, i8** @_execptr, align 8 - %"$maybeAdmin_call_270" = call i8* @_fetch_field(i8* %"$execptr_load_269", i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$admins_268", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_53", i32 1, i8* %"$indices_buf_266", i32 1), !dbg !25 - %"$maybeAdmin_271" = bitcast i8* %"$maybeAdmin_call_270" to %TName_Option_Bool* - store %TName_Option_Bool* %"$maybeAdmin_271", %TName_Option_Bool** %maybeAdmin, align 8 - %"$maybeAdmin_272" = load %TName_Option_Bool*, %TName_Option_Bool** %maybeAdmin, align 8 - %"$$maybeAdmin_272_273" = bitcast %TName_Option_Bool* %"$maybeAdmin_272" to i8* - %"$_literal_cost_call_274" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_Bool_49", i8* %"$$maybeAdmin_272_273") - %"$gasadd_275" = add i64 %"$_literal_cost_call_274", 0 - %"$gasadd_276" = add i64 %"$gasadd_275", 1 - %"$gasrem_277" = load i64, i64* @_gasrem, align 8 - %"$gascmp_278" = icmp ugt i64 %"$gasadd_276", %"$gasrem_277" - br i1 %"$gascmp_278", label %"$out_of_gas_279", label %"$have_gas_280" - -"$out_of_gas_279": ; preds = %entry + %"$execptr_load_272" = load i8*, i8** @_execptr, align 8 + %"$maybeAdmin_call_273" = call i8* @_fetch_field(i8* %"$execptr_load_272", i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$admins_271", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_53", i32 1, i8* %"$indices_buf_269", i32 1), !dbg !61 + %"$maybeAdmin_274" = bitcast i8* %"$maybeAdmin_call_273" to %TName_Option_Bool* + store %TName_Option_Bool* %"$maybeAdmin_274", %TName_Option_Bool** %maybeAdmin, align 8 + %"$maybeAdmin_275" = load %TName_Option_Bool*, %TName_Option_Bool** %maybeAdmin, align 8 + %"$$maybeAdmin_275_276" = bitcast %TName_Option_Bool* %"$maybeAdmin_275" to i8* + %"$_literal_cost_call_277" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_Bool_49", i8* %"$$maybeAdmin_275_276") + %"$gasadd_278" = add i64 %"$_literal_cost_call_277", 0 + %"$gasadd_279" = add i64 %"$gasadd_278", 1 + %"$gasrem_280" = load i64, i64* @_gasrem, align 8 + %"$gascmp_281" = icmp ugt i64 %"$gasadd_279", %"$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_280" + br label %"$have_gas_283" -"$have_gas_280": ; preds = %"$out_of_gas_279", %entry - %"$consume_281" = sub i64 %"$gasrem_277", %"$gasadd_276" - store i64 %"$consume_281", i64* @_gasrem, 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" +"$have_gas_283": ; preds = %"$out_of_gas_282", %entry + %"$consume_284" = sub i64 %"$gasrem_280", %"$gasadd_279" + store i64 %"$consume_284", i64* @_gasrem, align 8 + %"$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_284": ; preds = %"$have_gas_280" +"$out_of_gas_287": ; preds = %"$have_gas_283" call void @_out_of_gas() - br label %"$have_gas_285" + br label %"$have_gas_288" -"$have_gas_285": ; preds = %"$out_of_gas_284", %"$have_gas_280" - %"$consume_286" = sub i64 %"$gasrem_282", 1 - store i64 %"$consume_286", i64* @_gasrem, align 8 +"$have_gas_288": ; preds = %"$out_of_gas_287", %"$have_gas_283" + %"$consume_289" = sub i64 %"$gasrem_285", 1 + store i64 %"$consume_289", i64* @_gasrem, align 8 %isSenderAdmin = alloca %TName_Bool*, align 8 - %"$gasrem_287" = load i64, i64* @_gasrem, align 8 - %"$gascmp_288" = icmp ugt i64 2, %"$gasrem_287" - br i1 %"$gascmp_288", label %"$out_of_gas_289", label %"$have_gas_290" + call void @llvm.dbg.declare(metadata %TName_Bool** %isSenderAdmin, metadata !62, metadata !DIExpression()), !dbg !63 + %"$gasrem_290" = load i64, i64* @_gasrem, align 8 + %"$gascmp_291" = icmp ugt i64 2, %"$gasrem_290" + br i1 %"$gascmp_291", label %"$out_of_gas_292", label %"$have_gas_293" -"$out_of_gas_289": ; preds = %"$have_gas_285" +"$out_of_gas_292": ; preds = %"$have_gas_288" call void @_out_of_gas() - br label %"$have_gas_290" - -"$have_gas_290": ; preds = %"$out_of_gas_289", %"$have_gas_285" - %"$consume_291" = sub i64 %"$gasrem_287", 2 - store i64 %"$consume_291", i64* @_gasrem, align 8 - %"$maybeAdmin_293" = load %TName_Option_Bool*, %TName_Option_Bool** %maybeAdmin, align 8 - %"$maybeAdmin_tag_294" = getelementptr inbounds %TName_Option_Bool, %TName_Option_Bool* %"$maybeAdmin_293", i32 0, i32 0 - %"$maybeAdmin_tag_295" = load i8, i8* %"$maybeAdmin_tag_294", align 1 - switch i8 %"$maybeAdmin_tag_295", label %"$empty_default_296" [ - i8 0, label %"$Some_297" - i8 1, label %"$None_307" - ], !dbg !26 - -"$Some_297": ; preds = %"$have_gas_290" - %"$maybeAdmin_298" = bitcast %TName_Option_Bool* %"$maybeAdmin_293" to %CName_Some_Bool* - %"$approval_gep_299" = getelementptr inbounds %CName_Some_Bool, %CName_Some_Bool* %"$maybeAdmin_298", i32 0, i32 1 - %"$approval_load_300" = load %TName_Bool*, %TName_Bool** %"$approval_gep_299", align 8 + br label %"$have_gas_293" + +"$have_gas_293": ; preds = %"$out_of_gas_292", %"$have_gas_288" + %"$consume_294" = sub i64 %"$gasrem_290", 2 + store i64 %"$consume_294", i64* @_gasrem, align 8 + %"$maybeAdmin_296" = load %TName_Option_Bool*, %TName_Option_Bool** %maybeAdmin, align 8 + %"$maybeAdmin_tag_297" = getelementptr inbounds %TName_Option_Bool, %TName_Option_Bool* %"$maybeAdmin_296", i32 0, i32 0 + %"$maybeAdmin_tag_298" = load i8, i8* %"$maybeAdmin_tag_297", align 1 + switch i8 %"$maybeAdmin_tag_298", label %"$empty_default_299" [ + i8 0, label %"$Some_300" + i8 1, label %"$None_310" + ], !dbg !64 + +"$Some_300": ; preds = %"$have_gas_293" + %"$maybeAdmin_301" = bitcast %TName_Option_Bool* %"$maybeAdmin_296" to %CName_Some_Bool* + %"$approval_gep_302" = getelementptr inbounds %CName_Some_Bool, %CName_Some_Bool* %"$maybeAdmin_301", i32 0, i32 1 + %"$approval_load_303" = load %TName_Bool*, %TName_Bool** %"$approval_gep_302", align 8 %approval = alloca %TName_Bool*, align 8 - store %TName_Bool* %"$approval_load_300", %TName_Bool** %approval, align 8 - %"$gasrem_301" = load i64, i64* @_gasrem, align 8 - %"$gascmp_302" = icmp ugt i64 1, %"$gasrem_301" - br i1 %"$gascmp_302", label %"$out_of_gas_303", label %"$have_gas_304" + store %TName_Bool* %"$approval_load_303", %TName_Bool** %approval, align 8 + %"$gasrem_304" = load i64, i64* @_gasrem, align 8 + %"$gascmp_305" = icmp ugt i64 1, %"$gasrem_304" + br i1 %"$gascmp_305", label %"$out_of_gas_306", label %"$have_gas_307" -"$out_of_gas_303": ; preds = %"$Some_297" +"$out_of_gas_306": ; preds = %"$Some_300" call void @_out_of_gas() - br label %"$have_gas_304" - -"$have_gas_304": ; preds = %"$out_of_gas_303", %"$Some_297" - %"$consume_305" = sub i64 %"$gasrem_301", 1 - store i64 %"$consume_305", i64* @_gasrem, align 8 - %"$approval_306" = load %TName_Bool*, %TName_Bool** %approval, align 8 - store %TName_Bool* %"$approval_306", %TName_Bool** %isSenderAdmin, align 8, !dbg !27 - br label %"$matchsucc_292" - -"$None_307": ; preds = %"$have_gas_290" - %"$maybeAdmin_308" = bitcast %TName_Option_Bool* %"$maybeAdmin_293" to %CName_None_Bool* - %"$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_311": ; preds = %"$None_307" + br label %"$have_gas_307" + +"$have_gas_307": ; preds = %"$out_of_gas_306", %"$Some_300" + %"$consume_308" = sub i64 %"$gasrem_304", 1 + store i64 %"$consume_308", i64* @_gasrem, align 8 + %"$approval_309" = load %TName_Bool*, %TName_Bool** %approval, align 8 + store %TName_Bool* %"$approval_309", %TName_Bool** %isSenderAdmin, align 8, !dbg !65 + br label %"$matchsucc_295" + +"$None_310": ; preds = %"$have_gas_293" + %"$maybeAdmin_311" = bitcast %TName_Option_Bool* %"$maybeAdmin_296" to %CName_None_Bool* + %"$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 = %"$None_310" call void @_out_of_gas() - br label %"$have_gas_312" - -"$have_gas_312": ; preds = %"$out_of_gas_311", %"$None_307" - %"$consume_313" = sub i64 %"$gasrem_309", 1 - store i64 %"$consume_313", i64* @_gasrem, align 8 - %"$adtval_314_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_314_salloc" = call i8* @_salloc(i8* %"$adtval_314_load", i64 1) - %"$adtval_314" = bitcast i8* %"$adtval_314_salloc" to %CName_False* - %"$adtgep_315" = getelementptr inbounds %CName_False, %CName_False* %"$adtval_314", i32 0, i32 0 - store i8 1, i8* %"$adtgep_315", align 1 - %"$adtptr_316" = bitcast %CName_False* %"$adtval_314" to %TName_Bool* - store %TName_Bool* %"$adtptr_316", %TName_Bool** %isSenderAdmin, align 8, !dbg !30 - br label %"$matchsucc_292" - -"$empty_default_296": ; preds = %"$have_gas_290" - br label %"$matchsucc_292" - -"$matchsucc_292": ; preds = %"$have_gas_312", %"$have_gas_304", %"$empty_default_296" - %"$gasrem_317" = load i64, i64* @_gasrem, align 8 - %"$gascmp_318" = icmp ugt i64 2, %"$gasrem_317" - br i1 %"$gascmp_318", label %"$out_of_gas_319", label %"$have_gas_320" - -"$out_of_gas_319": ; preds = %"$matchsucc_292" + br label %"$have_gas_315" + +"$have_gas_315": ; preds = %"$out_of_gas_314", %"$None_310" + %"$consume_316" = sub i64 %"$gasrem_312", 1 + store i64 %"$consume_316", i64* @_gasrem, align 8 + %"$adtval_317_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_317_salloc" = call i8* @_salloc(i8* %"$adtval_317_load", i64 1) + %"$adtval_317" = bitcast i8* %"$adtval_317_salloc" to %CName_False* + %"$adtgep_318" = getelementptr inbounds %CName_False, %CName_False* %"$adtval_317", i32 0, i32 0 + store i8 1, i8* %"$adtgep_318", align 1 + %"$adtptr_319" = bitcast %CName_False* %"$adtval_317" to %TName_Bool* + store %TName_Bool* %"$adtptr_319", %TName_Bool** %isSenderAdmin, align 8, !dbg !68 + br label %"$matchsucc_295" + +"$empty_default_299": ; preds = %"$have_gas_293" + br label %"$matchsucc_295" + +"$matchsucc_295": ; preds = %"$have_gas_315", %"$have_gas_307", %"$empty_default_299" + %"$gasrem_320" = load i64, i64* @_gasrem, align 8 + %"$gascmp_321" = icmp ugt i64 2, %"$gasrem_320" + br i1 %"$gascmp_321", label %"$out_of_gas_322", label %"$have_gas_323" + +"$out_of_gas_322": ; preds = %"$matchsucc_295" call void @_out_of_gas() - br label %"$have_gas_320" - -"$have_gas_320": ; preds = %"$out_of_gas_319", %"$matchsucc_292" - %"$consume_321" = sub i64 %"$gasrem_317", 2 - store i64 %"$consume_321", i64* @_gasrem, align 8 - %"$isSenderAdmin_323" = load %TName_Bool*, %TName_Bool** %isSenderAdmin, align 8 - %"$isSenderAdmin_tag_324" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$isSenderAdmin_323", i32 0, i32 0 - %"$isSenderAdmin_tag_325" = load i8, i8* %"$isSenderAdmin_tag_324", align 1 - switch i8 %"$isSenderAdmin_tag_325", label %"$empty_default_326" [ - i8 0, label %"$True_327" - i8 1, label %"$False_372" - ], !dbg !32 - -"$True_327": ; preds = %"$have_gas_320" - %"$isSenderAdmin_328" = bitcast %TName_Bool* %"$isSenderAdmin_323" to %CName_True* - %"$isApproved_329" = bitcast %TName_Bool* %isApproved to i8* - %"$_literal_cost_call_330" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_50", i8* %"$isApproved_329") - %"$gasadd_331" = add i64 %"$_literal_cost_call_330", 1 - %"$gasrem_332" = load i64, i64* @_gasrem, align 8 - %"$gascmp_333" = icmp ugt i64 %"$gasadd_331", %"$gasrem_332" - br i1 %"$gascmp_333", label %"$out_of_gas_334", label %"$have_gas_335" - -"$out_of_gas_334": ; preds = %"$True_327" + br label %"$have_gas_323" + +"$have_gas_323": ; preds = %"$out_of_gas_322", %"$matchsucc_295" + %"$consume_324" = sub i64 %"$gasrem_320", 2 + store i64 %"$consume_324", i64* @_gasrem, align 8 + %"$isSenderAdmin_326" = load %TName_Bool*, %TName_Bool** %isSenderAdmin, align 8 + %"$isSenderAdmin_tag_327" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$isSenderAdmin_326", i32 0, i32 0 + %"$isSenderAdmin_tag_328" = load i8, i8* %"$isSenderAdmin_tag_327", align 1 + switch i8 %"$isSenderAdmin_tag_328", label %"$empty_default_329" [ + i8 0, label %"$True_330" + i8 1, label %"$False_375" + ], !dbg !70 + +"$True_330": ; preds = %"$have_gas_323" + %"$isSenderAdmin_331" = bitcast %TName_Bool* %"$isSenderAdmin_326" to %CName_True* + %"$isApproved_332" = bitcast %TName_Bool* %isApproved to i8* + %"$_literal_cost_call_333" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_50", i8* %"$isApproved_332") + %"$gasadd_334" = add i64 %"$_literal_cost_call_333", 1 + %"$gasrem_335" = load i64, i64* @_gasrem, align 8 + %"$gascmp_336" = icmp ugt i64 %"$gasadd_334", %"$gasrem_335" + br i1 %"$gascmp_336", label %"$out_of_gas_337", label %"$have_gas_338" + +"$out_of_gas_337": ; preds = %"$True_330" call void @_out_of_gas() - br label %"$have_gas_335" - -"$have_gas_335": ; preds = %"$out_of_gas_334", %"$True_327" - %"$consume_336" = sub i64 %"$gasrem_332", %"$gasadd_331" - store i64 %"$consume_336", i64* @_gasrem, align 8 - %"$indices_buf_337_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$indices_buf_337_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_337_salloc_load", i64 20) - %"$indices_buf_337_salloc" = bitcast i8* %"$indices_buf_337_salloc_salloc" to [20 x i8]* - %"$indices_buf_337" = bitcast [20 x i8]* %"$indices_buf_337_salloc" to i8* - %"$indices_gep_338" = getelementptr i8, i8* %"$indices_buf_337", i32 0 - %indices_cast1 = bitcast i8* %"$indices_gep_338" to [20 x i8]* + br label %"$have_gas_338" + +"$have_gas_338": ; preds = %"$out_of_gas_337", %"$True_330" + %"$consume_339" = sub i64 %"$gasrem_335", %"$gasadd_334" + store i64 %"$consume_339", i64* @_gasrem, align 8 + %"$indices_buf_340_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$indices_buf_340_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_340_salloc_load", i64 20) + %"$indices_buf_340_salloc" = bitcast i8* %"$indices_buf_340_salloc_salloc" to [20 x i8]* + %"$indices_buf_340" = bitcast [20 x i8]* %"$indices_buf_340_salloc" to i8* + %"$indices_gep_341" = getelementptr i8, i8* %"$indices_buf_340", i32 0 + %indices_cast1 = bitcast i8* %"$indices_gep_341" to [20 x i8]* store [20 x i8] %address, [20 x i8]* %indices_cast1, align 1 - %"$execptr_load_339" = load i8*, i8** @_execptr, align 8 - %"$update_value_341" = bitcast %TName_Bool* %isApproved to i8* - call void @_update_field(i8* %"$execptr_load_339", i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$admins_340", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_53", i32 1, i8* %"$indices_buf_337", i8* %"$update_value_341"), !dbg !33 - %"$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" - -"$out_of_gas_344": ; preds = %"$have_gas_335" + %"$execptr_load_342" = load i8*, i8** @_execptr, align 8 + %"$update_value_344" = bitcast %TName_Bool* %isApproved to i8* + call void @_update_field(i8* %"$execptr_load_342", i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$admins_343", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_53", i32 1, i8* %"$indices_buf_340", i8* %"$update_value_344"), !dbg !71 + %"$gasrem_345" = load i64, i64* @_gasrem, align 8 + %"$gascmp_346" = icmp ugt i64 1, %"$gasrem_345" + br i1 %"$gascmp_346", label %"$out_of_gas_347", label %"$have_gas_348" + +"$out_of_gas_347": ; preds = %"$have_gas_338" call void @_out_of_gas() - br label %"$have_gas_345" + br label %"$have_gas_348" -"$have_gas_345": ; preds = %"$out_of_gas_344", %"$have_gas_335" - %"$consume_346" = sub i64 %"$gasrem_342", 1 - store i64 %"$consume_346", i64* @_gasrem, align 8 +"$have_gas_348": ; preds = %"$out_of_gas_347", %"$have_gas_338" + %"$consume_349" = sub i64 %"$gasrem_345", 1 + store i64 %"$consume_349", i64* @_gasrem, align 8 %e = alloca 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" + call void @llvm.dbg.declare(metadata i8** %e, metadata !74, metadata !DIExpression()), !dbg !75 + %"$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_349": ; preds = %"$have_gas_345" +"$out_of_gas_352": ; preds = %"$have_gas_348" call void @_out_of_gas() - br label %"$have_gas_350" + br label %"$have_gas_353" -"$have_gas_350": ; preds = %"$out_of_gas_349", %"$have_gas_345" - %"$consume_351" = sub i64 %"$gasrem_347", 1 - store i64 %"$consume_351", i64* @_gasrem, align 8 +"$have_gas_353": ; preds = %"$out_of_gas_352", %"$have_gas_348" + %"$consume_354" = sub i64 %"$gasrem_350", 1 + store i64 %"$consume_354", i64* @_gasrem, align 8 %"$ud-proxy.eAdminSet_3" = alloca { i8* (i8*, %TName_Bool*)*, i8* }, align 8 - %"$ud-proxy.eAdminSet_352" = 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_353" = extractvalue { { i8* (i8*, %TName_Bool*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$ud-proxy.eAdminSet_352", 0 - %"$ud-proxy.eAdminSet_envptr_354" = extractvalue { { i8* (i8*, %TName_Bool*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$ud-proxy.eAdminSet_352", 1 - %"$ud-proxy.eAdminSet_address_355" = alloca [20 x i8], align 1 - store [20 x i8] %address, [20 x i8]* %"$ud-proxy.eAdminSet_address_355", align 1 - %"$ud-proxy.eAdminSet_call_356" = call { i8* (i8*, %TName_Bool*)*, i8* } %"$ud-proxy.eAdminSet_fptr_353"(i8* %"$ud-proxy.eAdminSet_envptr_354", [20 x i8]* %"$ud-proxy.eAdminSet_address_355"), !dbg !36 - store { i8* (i8*, %TName_Bool*)*, i8* } %"$ud-proxy.eAdminSet_call_356", { i8* (i8*, %TName_Bool*)*, i8* }* %"$ud-proxy.eAdminSet_3", align 8, !dbg !36 + %"$ud-proxy.eAdminSet_355" = 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_356" = extractvalue { { i8* (i8*, %TName_Bool*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$ud-proxy.eAdminSet_355", 0 + %"$ud-proxy.eAdminSet_envptr_357" = extractvalue { { i8* (i8*, %TName_Bool*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$ud-proxy.eAdminSet_355", 1 + %"$ud-proxy.eAdminSet_address_358" = alloca [20 x i8], align 1 + store [20 x i8] %address, [20 x i8]* %"$ud-proxy.eAdminSet_address_358", align 1 + %"$ud-proxy.eAdminSet_call_359" = call { i8* (i8*, %TName_Bool*)*, i8* } %"$ud-proxy.eAdminSet_fptr_356"(i8* %"$ud-proxy.eAdminSet_envptr_357", [20 x i8]* %"$ud-proxy.eAdminSet_address_358"), !dbg !76 + store { i8* (i8*, %TName_Bool*)*, i8* } %"$ud-proxy.eAdminSet_call_359", { i8* (i8*, %TName_Bool*)*, i8* }* %"$ud-proxy.eAdminSet_3", align 8, !dbg !76 %"$ud-proxy.eAdminSet_4" = alloca i8*, align 8 - %"$$ud-proxy.eAdminSet_3_357" = load { i8* (i8*, %TName_Bool*)*, i8* }, { i8* (i8*, %TName_Bool*)*, i8* }* %"$ud-proxy.eAdminSet_3", align 8 - %"$$ud-proxy.eAdminSet_3_fptr_358" = extractvalue { i8* (i8*, %TName_Bool*)*, i8* } %"$$ud-proxy.eAdminSet_3_357", 0 - %"$$ud-proxy.eAdminSet_3_envptr_359" = extractvalue { i8* (i8*, %TName_Bool*)*, i8* } %"$$ud-proxy.eAdminSet_3_357", 1 - %"$$ud-proxy.eAdminSet_3_call_360" = call i8* %"$$ud-proxy.eAdminSet_3_fptr_358"(i8* %"$$ud-proxy.eAdminSet_3_envptr_359", %TName_Bool* %isApproved), !dbg !36 - store i8* %"$$ud-proxy.eAdminSet_3_call_360", i8** %"$ud-proxy.eAdminSet_4", align 8, !dbg !36 - %"$$ud-proxy.eAdminSet_4_361" = load i8*, i8** %"$ud-proxy.eAdminSet_4", align 8 - store i8* %"$$ud-proxy.eAdminSet_4_361", i8** %e, align 8, !dbg !36 - %"$e_362" = load i8*, i8** %e, align 8 - %"$_literal_cost_call_364" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Event_37", i8* %"$e_362") - %"$gasrem_365" = load i64, i64* @_gasrem, align 8 - %"$gascmp_366" = icmp ugt i64 %"$_literal_cost_call_364", %"$gasrem_365" - br i1 %"$gascmp_366", label %"$out_of_gas_367", label %"$have_gas_368" - -"$out_of_gas_367": ; preds = %"$have_gas_350" + call void @llvm.dbg.declare(metadata i8** %"$ud-proxy.eAdminSet_4", metadata !77, metadata !DIExpression()), !dbg !76 + %"$$ud-proxy.eAdminSet_3_360" = load { i8* (i8*, %TName_Bool*)*, i8* }, { i8* (i8*, %TName_Bool*)*, i8* }* %"$ud-proxy.eAdminSet_3", align 8 + %"$$ud-proxy.eAdminSet_3_fptr_361" = extractvalue { i8* (i8*, %TName_Bool*)*, i8* } %"$$ud-proxy.eAdminSet_3_360", 0 + %"$$ud-proxy.eAdminSet_3_envptr_362" = extractvalue { i8* (i8*, %TName_Bool*)*, i8* } %"$$ud-proxy.eAdminSet_3_360", 1 + %"$$ud-proxy.eAdminSet_3_call_363" = call i8* %"$$ud-proxy.eAdminSet_3_fptr_361"(i8* %"$$ud-proxy.eAdminSet_3_envptr_362", %TName_Bool* %isApproved), !dbg !76 + store i8* %"$$ud-proxy.eAdminSet_3_call_363", i8** %"$ud-proxy.eAdminSet_4", align 8, !dbg !76 + %"$$ud-proxy.eAdminSet_4_364" = load i8*, i8** %"$ud-proxy.eAdminSet_4", align 8 + store i8* %"$$ud-proxy.eAdminSet_4_364", i8** %e, align 8, !dbg !76 + %"$e_365" = load i8*, i8** %e, align 8 + %"$_literal_cost_call_367" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Event_37", i8* %"$e_365") + %"$gasrem_368" = load i64, i64* @_gasrem, align 8 + %"$gascmp_369" = icmp ugt i64 %"$_literal_cost_call_367", %"$gasrem_368" + br i1 %"$gascmp_369", label %"$out_of_gas_370", label %"$have_gas_371" + +"$out_of_gas_370": ; preds = %"$have_gas_353" call void @_out_of_gas() - br label %"$have_gas_368" - -"$have_gas_368": ; preds = %"$out_of_gas_367", %"$have_gas_350" - %"$consume_369" = sub i64 %"$gasrem_365", %"$_literal_cost_call_364" - store i64 %"$consume_369", i64* @_gasrem, align 8 - %"$execptr_load_370" = load i8*, i8** @_execptr, align 8 - %"$e_371" = load i8*, i8** %e, align 8 - call void @_event(i8* %"$execptr_load_370", %_TyDescrTy_Typ* @"$TyDescr_Event_37", i8* %"$e_371"), !dbg !37 - br label %"$matchsucc_322" - -"$False_372": ; preds = %"$have_gas_320" - %"$isSenderAdmin_373" = bitcast %TName_Bool* %"$isSenderAdmin_323" to %CName_False* - %"$ud-proxy.eError_374" = load i8*, i8** @ud-proxy.eError, align 8 - %"$_literal_cost_call_376" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Event_37", i8* %"$ud-proxy.eError_374") - %"$gasrem_377" = load i64, i64* @_gasrem, align 8 - %"$gascmp_378" = icmp ugt i64 %"$_literal_cost_call_376", %"$gasrem_377" - br i1 %"$gascmp_378", label %"$out_of_gas_379", label %"$have_gas_380" - -"$out_of_gas_379": ; preds = %"$False_372" + br label %"$have_gas_371" + +"$have_gas_371": ; preds = %"$out_of_gas_370", %"$have_gas_353" + %"$consume_372" = sub i64 %"$gasrem_368", %"$_literal_cost_call_367" + store i64 %"$consume_372", i64* @_gasrem, align 8 + %"$execptr_load_373" = load i8*, i8** @_execptr, align 8 + %"$e_374" = load i8*, i8** %e, align 8 + call void @_event(i8* %"$execptr_load_373", %_TyDescrTy_Typ* @"$TyDescr_Event_37", i8* %"$e_374"), !dbg !78 + br label %"$matchsucc_325" + +"$False_375": ; preds = %"$have_gas_323" + %"$isSenderAdmin_376" = bitcast %TName_Bool* %"$isSenderAdmin_326" to %CName_False* + %"$ud-proxy.eError_377" = load i8*, i8** @ud-proxy.eError, align 8 + %"$_literal_cost_call_379" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Event_37", i8* %"$ud-proxy.eError_377") + %"$gasrem_380" = load i64, i64* @_gasrem, align 8 + %"$gascmp_381" = icmp ugt i64 %"$_literal_cost_call_379", %"$gasrem_380" + br i1 %"$gascmp_381", label %"$out_of_gas_382", label %"$have_gas_383" + +"$out_of_gas_382": ; preds = %"$False_375" call void @_out_of_gas() - br label %"$have_gas_380" + br label %"$have_gas_383" -"$have_gas_380": ; preds = %"$out_of_gas_379", %"$False_372" - %"$consume_381" = sub i64 %"$gasrem_377", %"$_literal_cost_call_376" - store i64 %"$consume_381", i64* @_gasrem, align 8 - %"$execptr_load_382" = load i8*, i8** @_execptr, align 8 - %"$ud-proxy.eError_383" = load i8*, i8** @ud-proxy.eError, align 8 - call void @_event(i8* %"$execptr_load_382", %_TyDescrTy_Typ* @"$TyDescr_Event_37", i8* %"$ud-proxy.eError_383"), !dbg !38 - br label %"$matchsucc_322" +"$have_gas_383": ; preds = %"$out_of_gas_382", %"$False_375" + %"$consume_384" = sub i64 %"$gasrem_380", %"$_literal_cost_call_379" + store i64 %"$consume_384", i64* @_gasrem, align 8 + %"$execptr_load_385" = load i8*, i8** @_execptr, align 8 + %"$ud-proxy.eError_386" = load i8*, i8** @ud-proxy.eError, align 8 + call void @_event(i8* %"$execptr_load_385", %_TyDescrTy_Typ* @"$TyDescr_Event_37", i8* %"$ud-proxy.eError_386"), !dbg !79 + br label %"$matchsucc_325" -"$empty_default_326": ; preds = %"$have_gas_320" - br label %"$matchsucc_322" +"$empty_default_329": ; preds = %"$have_gas_323" + br label %"$matchsucc_325" -"$matchsucc_322": ; preds = %"$have_gas_380", %"$have_gas_368", %"$empty_default_326" +"$matchsucc_325": ; preds = %"$have_gas_383", %"$have_gas_371", %"$empty_default_329" ret void } @@ -755,401 +790,486 @@ declare i64 @_literal_cost(%_TyDescrTy_Typ*, i8*) declare void @_event(i8*, %_TyDescrTy_Typ*, i8*) -define void @setAdmin(i8* %0) !dbg !40 { +define void @setAdmin(i8* %0) !dbg !81 { entry: - %"$_amount_385" = getelementptr i8, i8* %0, i32 0 - %"$_amount_386" = bitcast i8* %"$_amount_385" to %Uint128* - %_amount = load %Uint128, %Uint128* %"$_amount_386", align 8 - %"$_origin_387" = getelementptr i8, i8* %0, i32 16 - %"$_origin_388" = bitcast i8* %"$_origin_387" to [20 x i8]* - %"$_sender_389" = getelementptr i8, i8* %0, i32 36 - %"$_sender_390" = bitcast i8* %"$_sender_389" to [20 x i8]* - %"$address_391" = getelementptr i8, i8* %0, i32 56 - %"$address_392" = bitcast i8* %"$address_391" to [20 x i8]* - %"$isApproved_393" = getelementptr i8, i8* %0, i32 76 - %"$isApproved_394" = bitcast i8* %"$isApproved_393" to %TName_Bool** - %isApproved = load %TName_Bool*, %TName_Bool** %"$isApproved_394", align 8 - call void @"$setAdmin_262"(%Uint128 %_amount, [20 x i8]* %"$_origin_388", [20 x i8]* %"$_sender_390", [20 x i8]* %"$address_392", %TName_Bool* %isApproved), !dbg !41 + %"$_amount_393" = getelementptr i8, i8* %0, i32 0 + %"$_amount_394" = bitcast i8* %"$_amount_393" to %Uint128* + %_amount = load %Uint128, %Uint128* %"$_amount_394", align 8 + %"$_origin_395" = getelementptr i8, i8* %0, i32 16 + %"$_origin_396" = bitcast i8* %"$_origin_395" to [20 x i8]* + %"$_sender_397" = getelementptr i8, i8* %0, i32 36 + %"$_sender_398" = bitcast i8* %"$_sender_397" to [20 x i8]* + %"$address_399" = getelementptr i8, i8* %0, i32 56 + %"$address_400" = bitcast i8* %"$address_399" to [20 x i8]* + %"$isApproved_401" = getelementptr i8, i8* %0, i32 76 + %"$isApproved_402" = bitcast i8* %"$isApproved_401" to %TName_Bool** + %isApproved = load %TName_Bool*, %TName_Bool** %"$isApproved_402", align 8 + call void @"$setAdmin_265"(%Uint128 %_amount, [20 x i8]* %"$_origin_396", [20 x i8]* %"$_sender_398", [20 x i8]* %"$address_400", %TName_Bool* %isApproved), !dbg !82 ret void } -define internal void @"$bestow_395"(%Uint128 %_amount, [20 x i8]* %"$_origin_396", [20 x i8]* %"$_sender_397", %String %label, [20 x i8]* %"$owner_398", [20 x i8]* %"$resolver_399") !dbg !42 { +define internal void @"$bestow_403"(%Uint128 %_amount, [20 x i8]* %"$_origin_404", [20 x i8]* %"$_sender_405", %String %label, [20 x i8]* %"$owner_406", [20 x i8]* %"$resolver_407") !dbg !83 { entry: - %_origin = load [20 x i8], [20 x i8]* %"$_origin_396", align 1 - %_sender = load [20 x i8], [20 x i8]* %"$_sender_397", align 1 - %owner = load [20 x i8], [20 x i8]* %"$owner_398", align 1 - %resolver = load [20 x i8], [20 x i8]* %"$resolver_399", align 1 + %"$resolver_570" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$resolver_407", [20 x i8]** %"$resolver_570", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$resolver_570", metadata !84, metadata !DIExpression()), !dbg !85 + %"$owner_569" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$owner_406", [20 x i8]** %"$owner_569", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$owner_569", metadata !86, metadata !DIExpression()), !dbg !87 + %"$label_568" = alloca %String, align 8 + store %String %label, %String* %"$label_568", align 8 + call void @llvm.dbg.declare(metadata %String* %"$label_568", metadata !88, metadata !DIExpression()), !dbg !90 + %"$_sender_567" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_sender_405", [20 x i8]** %"$_sender_567", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_sender_567", metadata !91, metadata !DIExpression()), !dbg !92 + %"$_origin_566" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_origin_404", [20 x i8]** %"$_origin_566", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_origin_566", metadata !93, metadata !DIExpression()), !dbg !92 + %"$_amount_565" = alloca %Uint128, align 8 + store %Uint128 %_amount, %Uint128* %"$_amount_565", align 8 + call void @llvm.dbg.declare(metadata %Uint128* %"$_amount_565", metadata !94, metadata !DIExpression()), !dbg !92 + %_origin = load [20 x i8], [20 x i8]* %"$_origin_404", align 1 + %_sender = load [20 x i8], [20 x i8]* %"$_sender_405", align 1 + %owner = load [20 x i8], [20 x i8]* %"$owner_406", align 1 + %resolver = load [20 x i8], [20 x i8]* %"$resolver_407", align 1 %maybeAdmin = alloca %TName_Option_Bool*, align 8 - %"$indices_buf_400_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$indices_buf_400_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_400_salloc_load", i64 20) - %"$indices_buf_400_salloc" = bitcast i8* %"$indices_buf_400_salloc_salloc" to [20 x i8]* - %"$indices_buf_400" = bitcast [20 x i8]* %"$indices_buf_400_salloc" to i8* - %"$indices_gep_401" = getelementptr i8, i8* %"$indices_buf_400", i32 0 - %indices_cast = bitcast i8* %"$indices_gep_401" to [20 x i8]* + call void @llvm.dbg.declare(metadata %TName_Option_Bool** %maybeAdmin, metadata !95, metadata !DIExpression()), !dbg !96 + %"$indices_buf_408_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$indices_buf_408_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_408_salloc_load", i64 20) + %"$indices_buf_408_salloc" = bitcast i8* %"$indices_buf_408_salloc_salloc" to [20 x i8]* + %"$indices_buf_408" = bitcast [20 x i8]* %"$indices_buf_408_salloc" to i8* + %"$indices_gep_409" = getelementptr i8, i8* %"$indices_buf_408", i32 0 + %indices_cast = bitcast i8* %"$indices_gep_409" to [20 x i8]* store [20 x i8] %_sender, [20 x i8]* %indices_cast, align 1 - %"$execptr_load_403" = load i8*, i8** @_execptr, align 8 - %"$maybeAdmin_call_404" = call i8* @_fetch_field(i8* %"$execptr_load_403", i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$admins_402", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_53", i32 1, i8* %"$indices_buf_400", i32 1), !dbg !43 - %"$maybeAdmin_405" = bitcast i8* %"$maybeAdmin_call_404" to %TName_Option_Bool* - store %TName_Option_Bool* %"$maybeAdmin_405", %TName_Option_Bool** %maybeAdmin, align 8 - %"$maybeAdmin_406" = load %TName_Option_Bool*, %TName_Option_Bool** %maybeAdmin, align 8 - %"$$maybeAdmin_406_407" = bitcast %TName_Option_Bool* %"$maybeAdmin_406" to i8* - %"$_literal_cost_call_408" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_Bool_49", i8* %"$$maybeAdmin_406_407") - %"$gasadd_409" = add i64 %"$_literal_cost_call_408", 0 - %"$gasadd_410" = add i64 %"$gasadd_409", 1 - %"$gasrem_411" = load i64, i64* @_gasrem, align 8 - %"$gascmp_412" = icmp ugt i64 %"$gasadd_410", %"$gasrem_411" - br i1 %"$gascmp_412", label %"$out_of_gas_413", label %"$have_gas_414" - -"$out_of_gas_413": ; preds = %entry + %"$execptr_load_411" = load i8*, i8** @_execptr, align 8 + %"$maybeAdmin_call_412" = call i8* @_fetch_field(i8* %"$execptr_load_411", i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$admins_410", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_53", i32 1, i8* %"$indices_buf_408", i32 1), !dbg !96 + %"$maybeAdmin_413" = bitcast i8* %"$maybeAdmin_call_412" to %TName_Option_Bool* + store %TName_Option_Bool* %"$maybeAdmin_413", %TName_Option_Bool** %maybeAdmin, align 8 + %"$maybeAdmin_414" = load %TName_Option_Bool*, %TName_Option_Bool** %maybeAdmin, align 8 + %"$$maybeAdmin_414_415" = bitcast %TName_Option_Bool* %"$maybeAdmin_414" to i8* + %"$_literal_cost_call_416" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_Bool_49", i8* %"$$maybeAdmin_414_415") + %"$gasadd_417" = add i64 %"$_literal_cost_call_416", 0 + %"$gasadd_418" = add i64 %"$gasadd_417", 1 + %"$gasrem_419" = load i64, i64* @_gasrem, align 8 + %"$gascmp_420" = icmp ugt i64 %"$gasadd_418", %"$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_414" + br label %"$have_gas_422" -"$have_gas_414": ; preds = %"$out_of_gas_413", %entry - %"$consume_415" = sub i64 %"$gasrem_411", %"$gasadd_410" - store i64 %"$consume_415", i64* @_gasrem, align 8 - %"$gasrem_416" = load i64, i64* @_gasrem, align 8 - %"$gascmp_417" = icmp ugt i64 1, %"$gasrem_416" - br i1 %"$gascmp_417", label %"$out_of_gas_418", label %"$have_gas_419" +"$have_gas_422": ; preds = %"$out_of_gas_421", %entry + %"$consume_423" = sub i64 %"$gasrem_419", %"$gasadd_418" + store i64 %"$consume_423", i64* @_gasrem, 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_418": ; preds = %"$have_gas_414" +"$out_of_gas_426": ; preds = %"$have_gas_422" call void @_out_of_gas() - br label %"$have_gas_419" + br label %"$have_gas_427" -"$have_gas_419": ; preds = %"$out_of_gas_418", %"$have_gas_414" - %"$consume_420" = sub i64 %"$gasrem_416", 1 - store i64 %"$consume_420", i64* @_gasrem, align 8 +"$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 %isSenderAdmin = alloca %TName_Bool*, align 8 - %"$gasrem_421" = load i64, i64* @_gasrem, align 8 - %"$gascmp_422" = icmp ugt i64 2, %"$gasrem_421" - br i1 %"$gascmp_422", label %"$out_of_gas_423", label %"$have_gas_424" + call void @llvm.dbg.declare(metadata %TName_Bool** %isSenderAdmin, metadata !97, metadata !DIExpression()), !dbg !98 + %"$gasrem_429" = load i64, i64* @_gasrem, align 8 + %"$gascmp_430" = icmp ugt i64 2, %"$gasrem_429" + br i1 %"$gascmp_430", label %"$out_of_gas_431", label %"$have_gas_432" -"$out_of_gas_423": ; preds = %"$have_gas_419" +"$out_of_gas_431": ; preds = %"$have_gas_427" call void @_out_of_gas() - br label %"$have_gas_424" - -"$have_gas_424": ; preds = %"$out_of_gas_423", %"$have_gas_419" - %"$consume_425" = sub i64 %"$gasrem_421", 2 - store i64 %"$consume_425", i64* @_gasrem, align 8 - %"$maybeAdmin_427" = load %TName_Option_Bool*, %TName_Option_Bool** %maybeAdmin, align 8 - %"$maybeAdmin_tag_428" = getelementptr inbounds %TName_Option_Bool, %TName_Option_Bool* %"$maybeAdmin_427", i32 0, i32 0 - %"$maybeAdmin_tag_429" = load i8, i8* %"$maybeAdmin_tag_428", align 1 - switch i8 %"$maybeAdmin_tag_429", label %"$empty_default_430" [ - i8 0, label %"$Some_431" - i8 1, label %"$None_441" - ], !dbg !44 - -"$Some_431": ; preds = %"$have_gas_424" - %"$maybeAdmin_432" = bitcast %TName_Option_Bool* %"$maybeAdmin_427" to %CName_Some_Bool* - %"$isAdmin_gep_433" = getelementptr inbounds %CName_Some_Bool, %CName_Some_Bool* %"$maybeAdmin_432", i32 0, i32 1 - %"$isAdmin_load_434" = load %TName_Bool*, %TName_Bool** %"$isAdmin_gep_433", align 8 + br label %"$have_gas_432" + +"$have_gas_432": ; preds = %"$out_of_gas_431", %"$have_gas_427" + %"$consume_433" = sub i64 %"$gasrem_429", 2 + store i64 %"$consume_433", i64* @_gasrem, align 8 + %"$maybeAdmin_435" = load %TName_Option_Bool*, %TName_Option_Bool** %maybeAdmin, align 8 + %"$maybeAdmin_tag_436" = getelementptr inbounds %TName_Option_Bool, %TName_Option_Bool* %"$maybeAdmin_435", i32 0, i32 0 + %"$maybeAdmin_tag_437" = load i8, i8* %"$maybeAdmin_tag_436", align 1 + switch i8 %"$maybeAdmin_tag_437", label %"$empty_default_438" [ + i8 0, label %"$Some_439" + i8 1, label %"$None_449" + ], !dbg !99 + +"$Some_439": ; preds = %"$have_gas_432" + %"$maybeAdmin_440" = bitcast %TName_Option_Bool* %"$maybeAdmin_435" to %CName_Some_Bool* + %"$isAdmin_gep_441" = getelementptr inbounds %CName_Some_Bool, %CName_Some_Bool* %"$maybeAdmin_440", i32 0, i32 1 + %"$isAdmin_load_442" = load %TName_Bool*, %TName_Bool** %"$isAdmin_gep_441", align 8 %isAdmin = alloca %TName_Bool*, align 8 - store %TName_Bool* %"$isAdmin_load_434", %TName_Bool** %isAdmin, 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" - -"$out_of_gas_437": ; preds = %"$Some_431" - call void @_out_of_gas() - br label %"$have_gas_438" - -"$have_gas_438": ; preds = %"$out_of_gas_437", %"$Some_431" - %"$consume_439" = sub i64 %"$gasrem_435", 1 - store i64 %"$consume_439", i64* @_gasrem, align 8 - %"$isAdmin_440" = load %TName_Bool*, %TName_Bool** %isAdmin, align 8 - store %TName_Bool* %"$isAdmin_440", %TName_Bool** %isSenderAdmin, align 8, !dbg !45 - br label %"$matchsucc_426" - -"$None_441": ; preds = %"$have_gas_424" - %"$maybeAdmin_442" = bitcast %TName_Option_Bool* %"$maybeAdmin_427" to %CName_None_Bool* + store %TName_Bool* %"$isAdmin_load_442", %TName_Bool** %isAdmin, 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" -"$out_of_gas_445": ; preds = %"$None_441" +"$out_of_gas_445": ; preds = %"$Some_439" call void @_out_of_gas() br label %"$have_gas_446" -"$have_gas_446": ; preds = %"$out_of_gas_445", %"$None_441" +"$have_gas_446": ; preds = %"$out_of_gas_445", %"$Some_439" %"$consume_447" = sub i64 %"$gasrem_443", 1 store i64 %"$consume_447", i64* @_gasrem, align 8 - %"$adtval_448_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_448_salloc" = call i8* @_salloc(i8* %"$adtval_448_load", i64 1) - %"$adtval_448" = bitcast i8* %"$adtval_448_salloc" to %CName_False* - %"$adtgep_449" = getelementptr inbounds %CName_False, %CName_False* %"$adtval_448", i32 0, i32 0 - store i8 1, i8* %"$adtgep_449", align 1 - %"$adtptr_450" = bitcast %CName_False* %"$adtval_448" to %TName_Bool* - store %TName_Bool* %"$adtptr_450", %TName_Bool** %isSenderAdmin, align 8, !dbg !48 - br label %"$matchsucc_426" - -"$empty_default_430": ; preds = %"$have_gas_424" - br label %"$matchsucc_426" - -"$matchsucc_426": ; preds = %"$have_gas_446", %"$have_gas_438", %"$empty_default_430" + %"$isAdmin_448" = load %TName_Bool*, %TName_Bool** %isAdmin, align 8 + store %TName_Bool* %"$isAdmin_448", %TName_Bool** %isSenderAdmin, align 8, !dbg !100 + br label %"$matchsucc_434" + +"$None_449": ; preds = %"$have_gas_432" + %"$maybeAdmin_450" = bitcast %TName_Option_Bool* %"$maybeAdmin_435" to %CName_None_Bool* %"$gasrem_451" = load i64, i64* @_gasrem, align 8 - %"$gascmp_452" = icmp ugt i64 2, %"$gasrem_451" + %"$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 = %"$matchsucc_426" +"$out_of_gas_453": ; preds = %"$None_449" call void @_out_of_gas() br label %"$have_gas_454" -"$have_gas_454": ; preds = %"$out_of_gas_453", %"$matchsucc_426" - %"$consume_455" = sub i64 %"$gasrem_451", 2 +"$have_gas_454": ; preds = %"$out_of_gas_453", %"$None_449" + %"$consume_455" = sub i64 %"$gasrem_451", 1 store i64 %"$consume_455", i64* @_gasrem, align 8 - %"$isSenderAdmin_457" = load %TName_Bool*, %TName_Bool** %isSenderAdmin, align 8 - %"$isSenderAdmin_tag_458" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$isSenderAdmin_457", i32 0, i32 0 - %"$isSenderAdmin_tag_459" = load i8, i8* %"$isSenderAdmin_tag_458", align 1 - switch i8 %"$isSenderAdmin_tag_459", label %"$empty_default_460" [ - i8 0, label %"$True_461" - i8 1, label %"$False_545" - ], !dbg !50 - -"$True_461": ; preds = %"$have_gas_454" - %"$isSenderAdmin_462" = bitcast %TName_Bool* %"$isSenderAdmin_457" to %CName_True* - %"$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 = %"$True_461" + %"$adtval_456_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_456_salloc" = call i8* @_salloc(i8* %"$adtval_456_load", i64 1) + %"$adtval_456" = bitcast i8* %"$adtval_456_salloc" to %CName_False* + %"$adtgep_457" = getelementptr inbounds %CName_False, %CName_False* %"$adtval_456", i32 0, i32 0 + store i8 1, i8* %"$adtgep_457", align 1 + %"$adtptr_458" = bitcast %CName_False* %"$adtval_456" to %TName_Bool* + store %TName_Bool* %"$adtptr_458", %TName_Bool** %isSenderAdmin, align 8, !dbg !103 + br label %"$matchsucc_434" + +"$empty_default_438": ; preds = %"$have_gas_432" + br label %"$matchsucc_434" + +"$matchsucc_434": ; preds = %"$have_gas_454", %"$have_gas_446", %"$empty_default_438" + %"$gasrem_459" = load i64, i64* @_gasrem, align 8 + %"$gascmp_460" = icmp ugt i64 2, %"$gasrem_459" + br i1 %"$gascmp_460", label %"$out_of_gas_461", label %"$have_gas_462" + +"$out_of_gas_461": ; preds = %"$matchsucc_434" call void @_out_of_gas() - br label %"$have_gas_466" + br label %"$have_gas_462" + +"$have_gas_462": ; preds = %"$out_of_gas_461", %"$matchsucc_434" + %"$consume_463" = sub i64 %"$gasrem_459", 2 + store i64 %"$consume_463", i64* @_gasrem, align 8 + %"$isSenderAdmin_465" = load %TName_Bool*, %TName_Bool** %isSenderAdmin, align 8 + %"$isSenderAdmin_tag_466" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$isSenderAdmin_465", i32 0, i32 0 + %"$isSenderAdmin_tag_467" = load i8, i8* %"$isSenderAdmin_tag_466", align 1 + switch i8 %"$isSenderAdmin_tag_467", label %"$empty_default_468" [ + i8 0, label %"$True_469" + i8 1, label %"$False_553" + ], !dbg !105 + +"$True_469": ; preds = %"$have_gas_462" + %"$isSenderAdmin_470" = bitcast %TName_Bool* %"$isSenderAdmin_465" to %CName_True* + %"$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 = %"$True_469" + call void @_out_of_gas() + br label %"$have_gas_474" -"$have_gas_466": ; preds = %"$out_of_gas_465", %"$True_461" - %"$consume_467" = sub i64 %"$gasrem_463", 1 - store i64 %"$consume_467", i64* @_gasrem, align 8 +"$have_gas_474": ; preds = %"$out_of_gas_473", %"$True_469" + %"$consume_475" = sub i64 %"$gasrem_471", 1 + store i64 %"$consume_475", i64* @_gasrem, align 8 %msgs = alloca %TName_List_Message*, 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" + call void @llvm.dbg.declare(metadata %TName_List_Message** %msgs, metadata !106, metadata !DIExpression()), !dbg !109 + %"$gasrem_476" = load i64, i64* @_gasrem, align 8 + %"$gascmp_477" = icmp ugt i64 1, %"$gasrem_476" + br i1 %"$gascmp_477", label %"$out_of_gas_478", label %"$have_gas_479" -"$out_of_gas_470": ; preds = %"$have_gas_466" +"$out_of_gas_478": ; preds = %"$have_gas_474" call void @_out_of_gas() - br label %"$have_gas_471" + br label %"$have_gas_479" -"$have_gas_471": ; preds = %"$out_of_gas_470", %"$have_gas_466" - %"$consume_472" = sub i64 %"$gasrem_468", 1 - store i64 %"$consume_472", i64* @_gasrem, align 8 +"$have_gas_479": ; preds = %"$out_of_gas_478", %"$have_gas_474" + %"$consume_480" = sub i64 %"$gasrem_476", 1 + store i64 %"$consume_480", i64* @_gasrem, align 8 %m = alloca i8*, align 8 - %"$gasrem_473" = load i64, i64* @_gasrem, align 8 - %"$gascmp_474" = icmp ugt i64 1, %"$gasrem_473" - br i1 %"$gascmp_474", label %"$out_of_gas_475", label %"$have_gas_476" + call void @llvm.dbg.declare(metadata i8** %m, metadata !110, metadata !DIExpression()), !dbg !111 + %"$gasrem_481" = load i64, i64* @_gasrem, align 8 + %"$gascmp_482" = icmp ugt i64 1, %"$gasrem_481" + br i1 %"$gascmp_482", label %"$out_of_gas_483", label %"$have_gas_484" -"$out_of_gas_475": ; preds = %"$have_gas_471" +"$out_of_gas_483": ; preds = %"$have_gas_479" call void @_out_of_gas() - br label %"$have_gas_476" - -"$have_gas_476": ; preds = %"$out_of_gas_475", %"$have_gas_471" - %"$consume_477" = sub i64 %"$gasrem_473", 1 - store i64 %"$consume_477", i64* @_gasrem, align 8 - %"$msgobj_478_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$msgobj_478_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_478_salloc_load", i64 253) - %"$msgobj_478_salloc" = bitcast i8* %"$msgobj_478_salloc_salloc" to [253 x i8]* - %"$msgobj_478" = bitcast [253 x i8]* %"$msgobj_478_salloc" to i8* - store i8 6, i8* %"$msgobj_478", align 1 - %"$msgobj_fname_480" = getelementptr i8, i8* %"$msgobj_478", i32 1 - %"$msgobj_fname_481" = bitcast i8* %"$msgobj_fname_480" to %String* - store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_479", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_481", align 8 - %"$msgobj_td_482" = getelementptr i8, i8* %"$msgobj_478", i32 17 - %"$msgobj_td_483" = bitcast i8* %"$msgobj_td_482" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_String_31", %_TyDescrTy_Typ** %"$msgobj_td_483", align 8 - %"$msgobj_v_485" = getelementptr i8, i8* %"$msgobj_478", i32 25 - %"$msgobj_v_486" = bitcast i8* %"$msgobj_v_485" to %String* - store %String { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$stringlit_484", i32 0, i32 0), i32 6 }, %String* %"$msgobj_v_486", align 8 - %"$msgobj_fname_488" = getelementptr i8, i8* %"$msgobj_478", i32 41 + br label %"$have_gas_484" + +"$have_gas_484": ; preds = %"$out_of_gas_483", %"$have_gas_479" + %"$consume_485" = sub i64 %"$gasrem_481", 1 + store i64 %"$consume_485", i64* @_gasrem, align 8 + %"$msgobj_486_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$msgobj_486_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_486_salloc_load", i64 253) + %"$msgobj_486_salloc" = bitcast i8* %"$msgobj_486_salloc_salloc" to [253 x i8]* + %"$msgobj_486" = bitcast [253 x i8]* %"$msgobj_486_salloc" to i8* + store i8 6, i8* %"$msgobj_486", align 1 + %"$msgobj_fname_488" = getelementptr i8, i8* %"$msgobj_486", i32 1 %"$msgobj_fname_489" = bitcast i8* %"$msgobj_fname_488" to %String* - store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_487", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_489", align 8 - %"$msgobj_td_490" = getelementptr i8, i8* %"$msgobj_478", i32 57 + store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_487", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_489", align 8 + %"$msgobj_td_490" = getelementptr i8, i8* %"$msgobj_486", i32 17 %"$msgobj_td_491" = bitcast i8* %"$msgobj_td_490" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_45", %_TyDescrTy_Typ** %"$msgobj_td_491", align 8 - %"$registry_492" = load [20 x i8], [20 x i8]* @_cparam_registry, align 1 - %"$msgobj_v_493" = getelementptr i8, i8* %"$msgobj_478", i32 65 - %"$msgobj_v_494" = bitcast i8* %"$msgobj_v_493" to [20 x i8]* - store [20 x i8] %"$registry_492", [20 x i8]* %"$msgobj_v_494", align 1 - %"$msgobj_fname_496" = getelementptr i8, i8* %"$msgobj_478", i32 85 + store %_TyDescrTy_Typ* @"$TyDescr_String_31", %_TyDescrTy_Typ** %"$msgobj_td_491", align 8 + %"$msgobj_v_493" = getelementptr i8, i8* %"$msgobj_486", i32 25 + %"$msgobj_v_494" = bitcast i8* %"$msgobj_v_493" to %String* + store %String { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$stringlit_492", i32 0, i32 0), i32 6 }, %String* %"$msgobj_v_494", align 8 + %"$msgobj_fname_496" = getelementptr i8, i8* %"$msgobj_486", i32 41 %"$msgobj_fname_497" = bitcast i8* %"$msgobj_fname_496" to %String* - store %String { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$stringlit_495", i32 0, i32 0), i32 7 }, %String* %"$msgobj_fname_497", align 8 - %"$msgobj_td_498" = getelementptr i8, i8* %"$msgobj_478", i32 101 + store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_495", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_497", align 8 + %"$msgobj_td_498" = getelementptr i8, i8* %"$msgobj_486", i32 57 %"$msgobj_td_499" = bitcast i8* %"$msgobj_td_498" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Uint128_25", %_TyDescrTy_Typ** %"$msgobj_td_499", align 8 - %"$msgobj_v_500" = getelementptr i8, i8* %"$msgobj_478", i32 109 - %"$msgobj_v_501" = bitcast i8* %"$msgobj_v_500" to %Uint128* - store %Uint128 zeroinitializer, %Uint128* %"$msgobj_v_501", align 8 - %"$msgobj_fname_503" = getelementptr i8, i8* %"$msgobj_478", i32 125 - %"$msgobj_fname_504" = bitcast i8* %"$msgobj_fname_503" to %String* - store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_502", i32 0, i32 0), i32 5 }, %String* %"$msgobj_fname_504", align 8 - %"$msgobj_td_505" = getelementptr i8, i8* %"$msgobj_478", i32 141 - %"$msgobj_td_506" = bitcast i8* %"$msgobj_td_505" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_String_31", %_TyDescrTy_Typ** %"$msgobj_td_506", align 8 - %"$msgobj_v_507" = getelementptr i8, i8* %"$msgobj_478", i32 149 - %"$msgobj_v_508" = bitcast i8* %"$msgobj_v_507" to %String* - store %String %label, %String* %"$msgobj_v_508", align 8 - %"$msgobj_fname_510" = getelementptr i8, i8* %"$msgobj_478", i32 165 - %"$msgobj_fname_511" = bitcast i8* %"$msgobj_fname_510" to %String* - store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_509", i32 0, i32 0), i32 5 }, %String* %"$msgobj_fname_511", align 8 - %"$msgobj_td_512" = getelementptr i8, i8* %"$msgobj_478", i32 181 - %"$msgobj_td_513" = bitcast i8* %"$msgobj_td_512" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_45", %_TyDescrTy_Typ** %"$msgobj_td_513", align 8 - %"$msgobj_v_514" = getelementptr i8, i8* %"$msgobj_478", i32 189 - %"$msgobj_v_515" = bitcast i8* %"$msgobj_v_514" to [20 x i8]* - store [20 x i8] %owner, [20 x i8]* %"$msgobj_v_515", align 1 - %"$msgobj_fname_517" = getelementptr i8, i8* %"$msgobj_478", i32 209 - %"$msgobj_fname_518" = bitcast i8* %"$msgobj_fname_517" to %String* - store %String { i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$stringlit_516", i32 0, i32 0), i32 8 }, %String* %"$msgobj_fname_518", align 8 - %"$msgobj_td_519" = getelementptr i8, i8* %"$msgobj_478", i32 225 - %"$msgobj_td_520" = bitcast i8* %"$msgobj_td_519" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_45", %_TyDescrTy_Typ** %"$msgobj_td_520", align 8 - %"$msgobj_v_521" = getelementptr i8, i8* %"$msgobj_478", i32 233 - %"$msgobj_v_522" = bitcast i8* %"$msgobj_v_521" to [20 x i8]* - store [20 x i8] %resolver, [20 x i8]* %"$msgobj_v_522", align 1 - store i8* %"$msgobj_478", i8** %m, align 8, !dbg !51 - %"$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 = %"$have_gas_476" + store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_45", %_TyDescrTy_Typ** %"$msgobj_td_499", align 8 + %"$registry_500" = load [20 x i8], [20 x i8]* @_cparam_registry, align 1 + %"$msgobj_v_501" = getelementptr i8, i8* %"$msgobj_486", i32 65 + %"$msgobj_v_502" = bitcast i8* %"$msgobj_v_501" to [20 x i8]* + store [20 x i8] %"$registry_500", [20 x i8]* %"$msgobj_v_502", align 1 + %"$msgobj_fname_504" = getelementptr i8, i8* %"$msgobj_486", i32 85 + %"$msgobj_fname_505" = bitcast i8* %"$msgobj_fname_504" to %String* + store %String { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$stringlit_503", i32 0, i32 0), i32 7 }, %String* %"$msgobj_fname_505", align 8 + %"$msgobj_td_506" = getelementptr i8, i8* %"$msgobj_486", i32 101 + %"$msgobj_td_507" = bitcast i8* %"$msgobj_td_506" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Uint128_25", %_TyDescrTy_Typ** %"$msgobj_td_507", align 8 + %"$msgobj_v_508" = getelementptr i8, i8* %"$msgobj_486", i32 109 + %"$msgobj_v_509" = bitcast i8* %"$msgobj_v_508" to %Uint128* + store %Uint128 zeroinitializer, %Uint128* %"$msgobj_v_509", align 8 + %"$msgobj_fname_511" = getelementptr i8, i8* %"$msgobj_486", i32 125 + %"$msgobj_fname_512" = bitcast i8* %"$msgobj_fname_511" to %String* + store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_510", i32 0, i32 0), i32 5 }, %String* %"$msgobj_fname_512", align 8 + %"$msgobj_td_513" = getelementptr i8, i8* %"$msgobj_486", i32 141 + %"$msgobj_td_514" = bitcast i8* %"$msgobj_td_513" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_String_31", %_TyDescrTy_Typ** %"$msgobj_td_514", align 8 + %"$msgobj_v_515" = getelementptr i8, i8* %"$msgobj_486", i32 149 + %"$msgobj_v_516" = bitcast i8* %"$msgobj_v_515" to %String* + store %String %label, %String* %"$msgobj_v_516", align 8 + %"$msgobj_fname_518" = getelementptr i8, i8* %"$msgobj_486", i32 165 + %"$msgobj_fname_519" = bitcast i8* %"$msgobj_fname_518" to %String* + store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_517", i32 0, i32 0), i32 5 }, %String* %"$msgobj_fname_519", align 8 + %"$msgobj_td_520" = getelementptr i8, i8* %"$msgobj_486", i32 181 + %"$msgobj_td_521" = bitcast i8* %"$msgobj_td_520" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_45", %_TyDescrTy_Typ** %"$msgobj_td_521", align 8 + %"$msgobj_v_522" = getelementptr i8, i8* %"$msgobj_486", i32 189 + %"$msgobj_v_523" = bitcast i8* %"$msgobj_v_522" to [20 x i8]* + store [20 x i8] %owner, [20 x i8]* %"$msgobj_v_523", align 1 + %"$msgobj_fname_525" = getelementptr i8, i8* %"$msgobj_486", i32 209 + %"$msgobj_fname_526" = bitcast i8* %"$msgobj_fname_525" to %String* + store %String { i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$stringlit_524", i32 0, i32 0), i32 8 }, %String* %"$msgobj_fname_526", align 8 + %"$msgobj_td_527" = getelementptr i8, i8* %"$msgobj_486", i32 225 + %"$msgobj_td_528" = bitcast i8* %"$msgobj_td_527" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_45", %_TyDescrTy_Typ** %"$msgobj_td_528", align 8 + %"$msgobj_v_529" = getelementptr i8, i8* %"$msgobj_486", i32 233 + %"$msgobj_v_530" = bitcast i8* %"$msgobj_v_529" to [20 x i8]* + store [20 x i8] %resolver, [20 x i8]* %"$msgobj_v_530", align 1 + store i8* %"$msgobj_486", i8** %m, align 8, !dbg !112 + %"$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_484" call void @_out_of_gas() - br label %"$have_gas_527" + br label %"$have_gas_535" -"$have_gas_527": ; preds = %"$out_of_gas_526", %"$have_gas_476" - %"$consume_528" = sub i64 %"$gasrem_524", 1 - store i64 %"$consume_528", i64* @_gasrem, align 8 +"$have_gas_535": ; preds = %"$out_of_gas_534", %"$have_gas_484" + %"$consume_536" = sub i64 %"$gasrem_532", 1 + store i64 %"$consume_536", i64* @_gasrem, align 8 %"$ud-proxy.oneMsg_5" = alloca %TName_List_Message*, align 8 - %"$ud-proxy.oneMsg_529" = load { %TName_List_Message* (i8*, i8*)*, i8* }, { %TName_List_Message* (i8*, i8*)*, i8* }* @ud-proxy.oneMsg, align 8 - %"$ud-proxy.oneMsg_fptr_530" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$ud-proxy.oneMsg_529", 0 - %"$ud-proxy.oneMsg_envptr_531" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$ud-proxy.oneMsg_529", 1 - %"$m_532" = load i8*, i8** %m, align 8 - %"$ud-proxy.oneMsg_call_533" = call %TName_List_Message* %"$ud-proxy.oneMsg_fptr_530"(i8* %"$ud-proxy.oneMsg_envptr_531", i8* %"$m_532"), !dbg !54 - store %TName_List_Message* %"$ud-proxy.oneMsg_call_533", %TName_List_Message** %"$ud-proxy.oneMsg_5", align 8, !dbg !54 - %"$$ud-proxy.oneMsg_5_534" = load %TName_List_Message*, %TName_List_Message** %"$ud-proxy.oneMsg_5", align 8 - store %TName_List_Message* %"$$ud-proxy.oneMsg_5_534", %TName_List_Message** %msgs, align 8, !dbg !54 - %"$msgs_535" = load %TName_List_Message*, %TName_List_Message** %msgs, align 8 - %"$$msgs_535_536" = bitcast %TName_List_Message* %"$msgs_535" to i8* - %"$_literal_cost_call_537" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_51", i8* %"$$msgs_535_536") - %"$gasrem_538" = load i64, i64* @_gasrem, align 8 - %"$gascmp_539" = icmp ugt i64 %"$_literal_cost_call_537", %"$gasrem_538" - br i1 %"$gascmp_539", label %"$out_of_gas_540", label %"$have_gas_541" - -"$out_of_gas_540": ; preds = %"$have_gas_527" + call void @llvm.dbg.declare(metadata %TName_List_Message** %"$ud-proxy.oneMsg_5", metadata !113, metadata !DIExpression()), !dbg !114 + %"$ud-proxy.oneMsg_537" = load { %TName_List_Message* (i8*, i8*)*, i8* }, { %TName_List_Message* (i8*, i8*)*, i8* }* @ud-proxy.oneMsg, align 8 + %"$ud-proxy.oneMsg_fptr_538" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$ud-proxy.oneMsg_537", 0 + %"$ud-proxy.oneMsg_envptr_539" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$ud-proxy.oneMsg_537", 1 + %"$m_540" = load i8*, i8** %m, align 8 + %"$ud-proxy.oneMsg_call_541" = call %TName_List_Message* %"$ud-proxy.oneMsg_fptr_538"(i8* %"$ud-proxy.oneMsg_envptr_539", i8* %"$m_540"), !dbg !114 + store %TName_List_Message* %"$ud-proxy.oneMsg_call_541", %TName_List_Message** %"$ud-proxy.oneMsg_5", align 8, !dbg !114 + %"$$ud-proxy.oneMsg_5_542" = load %TName_List_Message*, %TName_List_Message** %"$ud-proxy.oneMsg_5", align 8 + store %TName_List_Message* %"$$ud-proxy.oneMsg_5_542", %TName_List_Message** %msgs, align 8, !dbg !114 + %"$msgs_543" = load %TName_List_Message*, %TName_List_Message** %msgs, align 8 + %"$$msgs_543_544" = bitcast %TName_List_Message* %"$msgs_543" to i8* + %"$_literal_cost_call_545" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_51", i8* %"$$msgs_543_544") + %"$gasrem_546" = load i64, i64* @_gasrem, align 8 + %"$gascmp_547" = icmp ugt i64 %"$_literal_cost_call_545", %"$gasrem_546" + br i1 %"$gascmp_547", label %"$out_of_gas_548", label %"$have_gas_549" + +"$out_of_gas_548": ; preds = %"$have_gas_535" call void @_out_of_gas() - br label %"$have_gas_541" - -"$have_gas_541": ; preds = %"$out_of_gas_540", %"$have_gas_527" - %"$consume_542" = sub i64 %"$gasrem_538", %"$_literal_cost_call_537" - store i64 %"$consume_542", i64* @_gasrem, align 8 - %"$execptr_load_543" = load i8*, i8** @_execptr, align 8 - %"$msgs_544" = load %TName_List_Message*, %TName_List_Message** %msgs, align 8 - call void @_send(i8* %"$execptr_load_543", %_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_51", %TName_List_Message* %"$msgs_544"), !dbg !55 - br label %"$matchsucc_456" - -"$False_545": ; preds = %"$have_gas_454" - %"$isSenderAdmin_546" = bitcast %TName_Bool* %"$isSenderAdmin_457" to %CName_False* - %"$ud-proxy.eError_547" = load i8*, i8** @ud-proxy.eError, align 8 - %"$_literal_cost_call_549" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Event_37", i8* %"$ud-proxy.eError_547") - %"$gasrem_550" = load i64, i64* @_gasrem, align 8 - %"$gascmp_551" = icmp ugt i64 %"$_literal_cost_call_549", %"$gasrem_550" - br i1 %"$gascmp_551", label %"$out_of_gas_552", label %"$have_gas_553" - -"$out_of_gas_552": ; preds = %"$False_545" + br label %"$have_gas_549" + +"$have_gas_549": ; preds = %"$out_of_gas_548", %"$have_gas_535" + %"$consume_550" = sub i64 %"$gasrem_546", %"$_literal_cost_call_545" + store i64 %"$consume_550", i64* @_gasrem, align 8 + %"$execptr_load_551" = load i8*, i8** @_execptr, align 8 + %"$msgs_552" = load %TName_List_Message*, %TName_List_Message** %msgs, align 8 + call void @_send(i8* %"$execptr_load_551", %_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_51", %TName_List_Message* %"$msgs_552"), !dbg !115 + br label %"$matchsucc_464" + +"$False_553": ; preds = %"$have_gas_462" + %"$isSenderAdmin_554" = bitcast %TName_Bool* %"$isSenderAdmin_465" to %CName_False* + %"$ud-proxy.eError_555" = load i8*, i8** @ud-proxy.eError, align 8 + %"$_literal_cost_call_557" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Event_37", i8* %"$ud-proxy.eError_555") + %"$gasrem_558" = load i64, i64* @_gasrem, align 8 + %"$gascmp_559" = icmp ugt i64 %"$_literal_cost_call_557", %"$gasrem_558" + br i1 %"$gascmp_559", label %"$out_of_gas_560", label %"$have_gas_561" + +"$out_of_gas_560": ; preds = %"$False_553" call void @_out_of_gas() - br label %"$have_gas_553" + br label %"$have_gas_561" -"$have_gas_553": ; preds = %"$out_of_gas_552", %"$False_545" - %"$consume_554" = sub i64 %"$gasrem_550", %"$_literal_cost_call_549" - store i64 %"$consume_554", i64* @_gasrem, align 8 - %"$execptr_load_555" = load i8*, i8** @_execptr, align 8 - %"$ud-proxy.eError_556" = load i8*, i8** @ud-proxy.eError, align 8 - call void @_event(i8* %"$execptr_load_555", %_TyDescrTy_Typ* @"$TyDescr_Event_37", i8* %"$ud-proxy.eError_556"), !dbg !56 - br label %"$matchsucc_456" +"$have_gas_561": ; preds = %"$out_of_gas_560", %"$False_553" + %"$consume_562" = sub i64 %"$gasrem_558", %"$_literal_cost_call_557" + store i64 %"$consume_562", i64* @_gasrem, align 8 + %"$execptr_load_563" = load i8*, i8** @_execptr, align 8 + %"$ud-proxy.eError_564" = load i8*, i8** @ud-proxy.eError, align 8 + call void @_event(i8* %"$execptr_load_563", %_TyDescrTy_Typ* @"$TyDescr_Event_37", i8* %"$ud-proxy.eError_564"), !dbg !116 + br label %"$matchsucc_464" -"$empty_default_460": ; preds = %"$have_gas_454" - br label %"$matchsucc_456" +"$empty_default_468": ; preds = %"$have_gas_462" + br label %"$matchsucc_464" -"$matchsucc_456": ; preds = %"$have_gas_553", %"$have_gas_541", %"$empty_default_460" +"$matchsucc_464": ; preds = %"$have_gas_561", %"$have_gas_549", %"$empty_default_468" ret void } declare void @_send(i8*, %_TyDescrTy_Typ*, %TName_List_Message*) -define void @bestow(i8* %0) !dbg !58 { +define void @bestow(i8* %0) !dbg !118 { entry: - %"$_amount_558" = getelementptr i8, i8* %0, i32 0 - %"$_amount_559" = bitcast i8* %"$_amount_558" to %Uint128* - %_amount = load %Uint128, %Uint128* %"$_amount_559", align 8 - %"$_origin_560" = getelementptr i8, i8* %0, i32 16 - %"$_origin_561" = bitcast i8* %"$_origin_560" to [20 x i8]* - %"$_sender_562" = getelementptr i8, i8* %0, i32 36 - %"$_sender_563" = bitcast i8* %"$_sender_562" to [20 x i8]* - %"$label_564" = getelementptr i8, i8* %0, i32 56 - %"$label_565" = bitcast i8* %"$label_564" to %String* - %label = load %String, %String* %"$label_565", align 8 - %"$owner_566" = getelementptr i8, i8* %0, i32 72 - %"$owner_567" = bitcast i8* %"$owner_566" to [20 x i8]* - %"$resolver_568" = getelementptr i8, i8* %0, i32 92 - %"$resolver_569" = bitcast i8* %"$resolver_568" to [20 x i8]* - call void @"$bestow_395"(%Uint128 %_amount, [20 x i8]* %"$_origin_561", [20 x i8]* %"$_sender_563", %String %label, [20 x i8]* %"$owner_567", [20 x i8]* %"$resolver_569"), !dbg !59 + %"$_amount_572" = getelementptr i8, i8* %0, i32 0 + %"$_amount_573" = bitcast i8* %"$_amount_572" to %Uint128* + %_amount = load %Uint128, %Uint128* %"$_amount_573", align 8 + %"$_origin_574" = getelementptr i8, i8* %0, i32 16 + %"$_origin_575" = bitcast i8* %"$_origin_574" to [20 x i8]* + %"$_sender_576" = getelementptr i8, i8* %0, i32 36 + %"$_sender_577" = bitcast i8* %"$_sender_576" to [20 x i8]* + %"$label_578" = getelementptr i8, i8* %0, i32 56 + %"$label_579" = bitcast i8* %"$label_578" to %String* + %label = load %String, %String* %"$label_579", align 8 + %"$owner_580" = getelementptr i8, i8* %0, i32 72 + %"$owner_581" = bitcast i8* %"$owner_580" to [20 x i8]* + %"$resolver_582" = getelementptr i8, i8* %0, i32 92 + %"$resolver_583" = bitcast i8* %"$resolver_582" to [20 x i8]* + call void @"$bestow_403"(%Uint128 %_amount, [20 x i8]* %"$_origin_575", [20 x i8]* %"$_sender_577", %String %label, [20 x i8]* %"$owner_581", [20 x i8]* %"$resolver_583"), !dbg !119 ret void } +attributes #0 = { nocallback nofree nosync nounwind readnone speculatable willreturn } + !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) +!1 = distinct !DICompileUnit(language: DW_LANG_C89, file: !2, producer: "Scilla Compiler", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false) !2 = !DIFile(filename: "ud-proxy.scilla", directory: "codegen/contr") -!3 = !{} -!4 = distinct !DISubprogram(name: "$fundef_8", linkageName: "$fundef_8", scope: !2, file: !2, line: 17, type: !5, scopeLine: 17, 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_6", linkageName: "$fundef_6", 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_10", linkageName: "$fundef_10", 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: 0, scope: !13) -!16 = !DILocation(line: 7, column: 12, scope: !13) -!17 = !DILocation(line: 8, column: 18, scope: !13) -!18 = !DILocation(line: 12, column: 5, scope: !13) -!19 = !DILocation(line: 16, column: 3, scope: !13) -!20 = !DILocation(line: 19, column: 14, scope: !13) -!21 = distinct !DISubprogram(name: "_deploy_ops", linkageName: "_deploy_ops", scope: !14, file: !14, type: !5, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!22 = !DILocation(line: 26, column: 15, scope: !21) -!23 = !DILocation(line: 27, column: 5, scope: !21) -!24 = distinct !DISubprogram(name: "setAdmin", linkageName: "setAdmin", scope: !2, file: !2, line: 29, type: !5, scopeLine: 29, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!25 = !DILocation(line: 30, column: 3, scope: !24) -!26 = !DILocation(line: 33, column: 5, scope: !24) -!27 = !DILocation(line: 34, column: 24, scope: !28) -!28 = distinct !DILexicalBlock(scope: !29, file: !2, line: 34, column: 7) -!29 = distinct !DILexicalBlock(scope: !24, file: !2, line: 33, column: 5) -!30 = !DILocation(line: 35, column: 15, scope: !31) -!31 = distinct !DILexicalBlock(scope: !29, file: !2, line: 35, column: 7) -!32 = !DILocation(line: 38, column: 3, scope: !24) -!33 = !DILocation(line: 40, column: 5, scope: !34) -!34 = distinct !DILexicalBlock(scope: !35, file: !2, line: 39, column: 5) -!35 = distinct !DILexicalBlock(scope: !24, file: !2, line: 38, column: 3) -!36 = !DILocation(line: 42, column: 9, scope: !34) -!37 = !DILocation(line: 43, column: 5, scope: !34) -!38 = !DILocation(line: 45, column: 5, scope: !39) -!39 = distinct !DILexicalBlock(scope: !35, file: !2, line: 44, column: 5) -!40 = distinct !DISubprogram(name: "setAdmin", linkageName: "setAdmin", scope: !2, file: !2, line: 29, type: !5, scopeLine: 29, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!41 = !DILocation(line: 29, column: 12, scope: !40) -!42 = distinct !DISubprogram(name: "bestow", linkageName: "bestow", scope: !2, file: !2, line: 49, type: !5, scopeLine: 49, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!43 = !DILocation(line: 50, column: 3, scope: !42) -!44 = !DILocation(line: 53, column: 5, scope: !42) -!45 = !DILocation(line: 54, column: 23, scope: !46) -!46 = distinct !DILexicalBlock(scope: !47, file: !2, line: 54, column: 7) -!47 = distinct !DILexicalBlock(scope: !42, file: !2, line: 53, column: 5) -!48 = !DILocation(line: 55, column: 15, scope: !49) -!49 = distinct !DILexicalBlock(scope: !47, file: !2, line: 55, column: 7) -!50 = !DILocation(line: 58, column: 3, scope: !42) -!51 = !DILocation(line: 61, column: 15, scope: !52) -!52 = distinct !DILexicalBlock(scope: !53, file: !2, line: 59, column: 5) -!53 = distinct !DILexicalBlock(scope: !42, file: !2, line: 58, column: 3) -!54 = !DILocation(line: 63, column: 7, scope: !52) -!55 = !DILocation(line: 64, column: 5, scope: !52) -!56 = !DILocation(line: 66, column: 5, scope: !57) -!57 = distinct !DILexicalBlock(scope: !53, file: !2, line: 65, column: 5) -!58 = distinct !DISubprogram(name: "bestow", linkageName: "bestow", scope: !2, file: !2, line: 49, type: !5, scopeLine: 49, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!59 = !DILocation(line: 49, column: 12, scope: !58) +!3 = distinct !DISubprogram(name: "$fundef_8", linkageName: "$fundef_8", scope: !2, file: !2, line: 17, type: !4, scopeLine: 17, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!4 = !DISubroutineType(types: !5) +!5 = !{!6} +!6 = !DIBasicType(tag: DW_TAG_unspecified_type, name: "void") +!7 = !{} +!8 = !DILocalVariable(name: "isApproved", scope: !3, file: !2, line: 16, type: !9) +!9 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "Bool", baseType: !10, size: 8, align: 8, dwarfAddressSpace: 0) +!10 = !DIBasicType(name: "Bool", size: 8) +!11 = !DILocation(line: 16, column: 7, scope: !3) +!12 = !DILocalVariable(name: "$retval_9", scope: !3, file: !2, line: 17, type: !13) +!13 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "Event", baseType: !14, size: 8, align: 8, dwarfAddressSpace: 0) +!14 = !DIBasicType(name: "Event", size: 8) +!15 = !DILocation(line: 17, column: 5, scope: !3) +!16 = distinct !DISubprogram(name: "$fundef_6", linkageName: "$fundef_6", scope: !2, file: !2, line: 16, type: !4, scopeLine: 16, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!17 = !DILocalVariable(name: "address", scope: !16, file: !2, line: 15, type: !18) +!18 = !DIBasicType(name: "ByStr20", size: 20) +!19 = !DILocation(line: 15, column: 7, scope: !16) +!20 = !DILocation(line: 17, column: 5, scope: !16) +!21 = distinct !DISubprogram(name: "$fundef_10", linkageName: "$fundef_10", scope: !2, file: !2, line: 12, type: !4, scopeLine: 12, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!22 = !DILocalVariable(name: "msg", scope: !21, file: !2, line: 11, type: !23) +!23 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "Message", baseType: !24, size: 8, align: 8, dwarfAddressSpace: 0) +!24 = !DIBasicType(name: "Message", size: 8) +!25 = !DILocation(line: 11, column: 7, scope: !21) +!26 = !DILocalVariable(name: "$retval_11", scope: !21, file: !2, line: 12, type: !27) +!27 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "List (Message)", baseType: !28, size: 8, align: 8, dwarfAddressSpace: 0) +!28 = !DIBasicType(name: "List (Message)", size: 8) +!29 = !DILocation(line: 12, column: 5, scope: !21) +!30 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !31, file: !31, type: !4, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!31 = !DIFile(filename: ".", directory: ".") +!32 = !DILocation(line: 0, scope: !30) +!33 = !DILocation(line: 7, column: 12, scope: !30) +!34 = !DILocation(line: 8, column: 18, scope: !30) +!35 = !DILocation(line: 12, column: 5, scope: !30) +!36 = !DILocation(line: 16, column: 3, scope: !30) +!37 = !DILocation(line: 19, column: 14, scope: !30) +!38 = distinct !DISubprogram(name: "_deploy_ops", linkageName: "_deploy_ops", scope: !31, file: !31, type: !4, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!39 = !DILocalVariable(name: "$admins_12", scope: !38, file: !2, line: 25, type: !40) +!40 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "Map (ByStr20) (Bool)", baseType: !41, size: 8, align: 8, dwarfAddressSpace: 0) +!41 = !DIBasicType(name: "Map (ByStr20) (Bool)", size: 8) +!42 = !DILocation(line: 25, column: 7, scope: !38) +!43 = !DILocalVariable(name: "empty", scope: !38, file: !2, line: 26, type: !40) +!44 = !DILocation(line: 26, column: 7, scope: !38) +!45 = !DILocation(line: 26, column: 15, scope: !38) +!46 = !DILocation(line: 27, column: 5, scope: !38) +!47 = distinct !DISubprogram(name: "setAdmin", linkageName: "setAdmin", scope: !2, file: !2, line: 29, type: !4, scopeLine: 29, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!48 = !DILocalVariable(name: "isApproved", scope: !47, file: !2, line: 29, type: !9) +!49 = !DILocation(line: 29, column: 39, scope: !47) +!50 = !DILocalVariable(name: "address", scope: !47, file: !2, line: 29, type: !18) +!51 = !DILocation(line: 29, column: 21, scope: !47) +!52 = !DILocalVariable(name: "_sender", scope: !47, file: !2, line: 29, type: !53) +!53 = !DIBasicType(name: "ByStr20 with end", size: 20) +!54 = !DILocation(line: 29, column: 12, scope: !47) +!55 = !DILocalVariable(name: "_origin", scope: !47, file: !2, line: 29, type: !53) +!56 = !DILocalVariable(name: "_amount", scope: !47, file: !2, line: 29, type: !57) +!57 = !DIBasicType(name: "Uint128", size: 16) +!58 = !DILocalVariable(name: "maybeAdmin", scope: !47, file: !2, line: 30, type: !59) +!59 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "Option (Bool)", baseType: !60, size: 8, align: 8, dwarfAddressSpace: 0) +!60 = !DIBasicType(name: "Option (Bool)", size: 8) +!61 = !DILocation(line: 30, column: 3, scope: !47) +!62 = !DILocalVariable(name: "isSenderAdmin", scope: !47, file: !2, line: 32, type: !9) +!63 = !DILocation(line: 32, column: 3, scope: !47) +!64 = !DILocation(line: 33, column: 5, scope: !47) +!65 = !DILocation(line: 34, column: 24, scope: !66) +!66 = distinct !DILexicalBlock(scope: !67, file: !2, line: 34, column: 7) +!67 = distinct !DILexicalBlock(scope: !47, file: !2, line: 33, column: 5) +!68 = !DILocation(line: 35, column: 15, scope: !69) +!69 = distinct !DILexicalBlock(scope: !67, file: !2, line: 35, column: 7) +!70 = !DILocation(line: 38, column: 3, scope: !47) +!71 = !DILocation(line: 40, column: 5, scope: !72) +!72 = distinct !DILexicalBlock(scope: !73, file: !2, line: 39, column: 5) +!73 = distinct !DILexicalBlock(scope: !47, file: !2, line: 38, column: 3) +!74 = !DILocalVariable(name: "e", scope: !72, file: !2, line: 42, type: !13) +!75 = !DILocation(line: 42, column: 5, scope: !72) +!76 = !DILocation(line: 42, column: 9, scope: !72) +!77 = !DILocalVariable(name: "$ud-proxy.eAdminSet_4", scope: !72, file: !2, line: 42, type: !13) +!78 = !DILocation(line: 43, column: 5, scope: !72) +!79 = !DILocation(line: 45, column: 5, scope: !80) +!80 = distinct !DILexicalBlock(scope: !73, file: !2, line: 44, column: 5) +!81 = distinct !DISubprogram(name: "setAdmin", linkageName: "setAdmin", scope: !2, file: !2, line: 29, type: !4, scopeLine: 29, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!82 = !DILocation(line: 29, column: 12, scope: !81) +!83 = distinct !DISubprogram(name: "bestow", linkageName: "bestow", scope: !2, file: !2, line: 49, type: !4, scopeLine: 49, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!84 = !DILocalVariable(name: "resolver", scope: !83, file: !2, line: 49, type: !18) +!85 = !DILocation(line: 49, column: 50, scope: !83) +!86 = !DILocalVariable(name: "owner", scope: !83, file: !2, line: 49, type: !18) +!87 = !DILocation(line: 49, column: 34, scope: !83) +!88 = !DILocalVariable(name: "label", scope: !83, file: !2, line: 49, type: !89) +!89 = !DIBasicType(name: "String", size: 16) +!90 = !DILocation(line: 49, column: 19, scope: !83) +!91 = !DILocalVariable(name: "_sender", scope: !83, file: !2, line: 49, type: !53) +!92 = !DILocation(line: 49, column: 12, scope: !83) +!93 = !DILocalVariable(name: "_origin", scope: !83, file: !2, line: 49, type: !53) +!94 = !DILocalVariable(name: "_amount", scope: !83, file: !2, line: 49, type: !57) +!95 = !DILocalVariable(name: "maybeAdmin", scope: !83, file: !2, line: 50, type: !59) +!96 = !DILocation(line: 50, column: 3, scope: !83) +!97 = !DILocalVariable(name: "isSenderAdmin", scope: !83, file: !2, line: 52, type: !9) +!98 = !DILocation(line: 52, column: 3, scope: !83) +!99 = !DILocation(line: 53, column: 5, scope: !83) +!100 = !DILocation(line: 54, column: 23, scope: !101) +!101 = distinct !DILexicalBlock(scope: !102, file: !2, line: 54, column: 7) +!102 = distinct !DILexicalBlock(scope: !83, file: !2, line: 53, column: 5) +!103 = !DILocation(line: 55, column: 15, scope: !104) +!104 = distinct !DILexicalBlock(scope: !102, file: !2, line: 55, column: 7) +!105 = !DILocation(line: 58, column: 3, scope: !83) +!106 = !DILocalVariable(name: "msgs", scope: !107, file: !2, line: 60, type: !27) +!107 = distinct !DILexicalBlock(scope: !108, file: !2, line: 59, column: 5) +!108 = distinct !DILexicalBlock(scope: !83, file: !2, line: 58, column: 3) +!109 = !DILocation(line: 60, column: 5, scope: !107) +!110 = !DILocalVariable(name: "m", scope: !107, file: !2, line: 61, type: !23) +!111 = !DILocation(line: 61, column: 11, scope: !107) +!112 = !DILocation(line: 61, column: 15, scope: !107) +!113 = !DILocalVariable(name: "$ud-proxy.oneMsg_5", scope: !107, file: !2, line: 63, type: !27) +!114 = !DILocation(line: 63, column: 7, scope: !107) +!115 = !DILocation(line: 64, column: 5, scope: !107) +!116 = !DILocation(line: 66, column: 5, scope: !117) +!117 = distinct !DILexicalBlock(scope: !108, file: !2, line: 65, column: 5) +!118 = distinct !DISubprogram(name: "bestow", linkageName: "bestow", scope: !2, file: !2, line: 49, type: !4, scopeLine: 49, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!119 = !DILocation(line: 49, column: 12, scope: !118) diff --git a/testsuite/contr/ud-proxy.ll b/testsuite/contr/ud-proxy.ll index 206ef04e..bc6eb210 100644 --- a/testsuite/contr/ud-proxy.ll +++ b/testsuite/contr/ud-proxy.ll @@ -4,7 +4,7 @@ ; 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-pc-linux-gnu" +target triple = "x86_64-unknown-linux-gnu" %"$TyDescrTy_PrimTyp_13" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/testsuite/contr/ud-registry.dbg.ll b/testsuite/contr/ud-registry.dbg.ll index fd017d55..57d89f10 100644 --- a/testsuite/contr/ud-registry.dbg.ll +++ b/testsuite/contr/ud-registry.dbg.ll @@ -4,7 +4,7 @@ ; 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-pc-linux-gnu" +target triple = "x86_64-unknown-linux-gnu" %"$TyDescrTy_PrimTyp_422" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } @@ -38,9 +38,9 @@ target triple = "x86_64-pc-linux-gnu" %CName_Some_ByStr20 = type <{ i8, [20 x i8] }> %CName_None_ByStr20 = type <{ i8 }> %Uint32 = type { i32 } -%"$ParamDescr_7516" = type { %ParamDescrString, %_TyDescrTy_Typ* } +%"$ParamDescr_7646" = type { %ParamDescrString, %_TyDescrTy_Typ* } %ParamDescrString = type { i8*, i32 } -%"$TransDescr_7517" = type { %ParamDescrString, i32, %"$ParamDescr_7516"* } +%"$TransDescr_7647" = type { %ParamDescrString, i32, %"$ParamDescr_7646"* } %"$$fundef_261_env_552" = type { { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }, { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }, %TName_Option_ByStr20*, [20 x i8], [20 x i8] } %"$$fundef_259_env_553" = type { { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }, { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }, [20 x i8], [20 x i8] } %"$$fundef_257_env_554" = type { { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }, { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }, [20 x i8] } @@ -280,33 +280,33 @@ target triple = "x86_64-pc-linux-gnu" @"$TyDescr_MapTyp_549" = unnamed_addr constant %"$TyDescr_MapTyp_469" { %_TyDescrTy_Typ* @"$TyDescr_Bystr32_456", %_TyDescrTy_Typ* @"$TyDescr_Bystr20_458" } @"$TyDescr_MapTyp_550" = unnamed_addr constant %"$TyDescr_MapTyp_469" { %_TyDescrTy_Typ* @"$TyDescr_Bystr32_456", %_TyDescrTy_Typ* @"$TyDescr_ADT_ud-registry.Record_465" } @"$TyDescr_AddrFields_551" = unnamed_addr constant %"$TyDescr_AddrTyp_474" { i32 -3, %"$TyDescr_AddrFieldTyp_473"* null } -@"$stringlit_2602" = unnamed_addr constant [10 x i8] c"_eventname" -@"$stringlit_2607" = unnamed_addr constant [8 x i8] c"AdminSet" -@"$stringlit_2610" = unnamed_addr constant [7 x i8] c"address" -@"$stringlit_2618" = unnamed_addr constant [10 x i8] c"isApproved" -@"$stringlit_2663" = unnamed_addr constant [10 x i8] c"_eventname" -@"$stringlit_2668" = unnamed_addr constant [11 x i8] c"ApprovedFor" -@"$stringlit_2671" = unnamed_addr constant [4 x i8] c"user" -@"$stringlit_2679" = unnamed_addr constant [8 x i8] c"operator" -@"$stringlit_2687" = unnamed_addr constant [10 x i8] c"isApproved" -@"$stringlit_2702" = unnamed_addr constant [10 x i8] c"_eventname" -@"$stringlit_2707" = unnamed_addr constant [8 x i8] c"Approved" -@"$stringlit_2710" = unnamed_addr constant [7 x i8] c"address" -@"$stringlit_2725" = unnamed_addr constant [10 x i8] c"_eventname" -@"$stringlit_2730" = unnamed_addr constant [12 x i8] c"NewRegistrar" -@"$stringlit_2733" = unnamed_addr constant [7 x i8] c"address" -@"$stringlit_2761" = unnamed_addr constant [10 x i8] c"_eventname" -@"$stringlit_2766" = unnamed_addr constant [9 x i8] c"NewDomain" -@"$stringlit_2769" = unnamed_addr constant [6 x i8] c"parent" -@"$stringlit_2777" = unnamed_addr constant [5 x i8] c"label" -@"$stringlit_2822" = unnamed_addr constant [10 x i8] c"_eventname" -@"$stringlit_2827" = unnamed_addr constant [10 x i8] c"Configured" -@"$stringlit_2830" = unnamed_addr constant [4 x i8] c"node" -@"$stringlit_2838" = unnamed_addr constant [5 x i8] c"owner" -@"$stringlit_2846" = unnamed_addr constant [8 x i8] c"resolver" -@"$stringlit_2861" = unnamed_addr constant [10 x i8] c"_eventname" -@"$stringlit_2866" = unnamed_addr constant [5 x i8] c"Error" -@"$stringlit_2869" = unnamed_addr constant [3 x i8] c"msg" +@"$stringlit_2644" = unnamed_addr constant [10 x i8] c"_eventname" +@"$stringlit_2649" = unnamed_addr constant [8 x i8] c"AdminSet" +@"$stringlit_2652" = unnamed_addr constant [7 x i8] c"address" +@"$stringlit_2660" = unnamed_addr constant [10 x i8] c"isApproved" +@"$stringlit_2708" = unnamed_addr constant [10 x i8] c"_eventname" +@"$stringlit_2713" = unnamed_addr constant [11 x i8] c"ApprovedFor" +@"$stringlit_2716" = unnamed_addr constant [4 x i8] c"user" +@"$stringlit_2724" = unnamed_addr constant [8 x i8] c"operator" +@"$stringlit_2732" = unnamed_addr constant [10 x i8] c"isApproved" +@"$stringlit_2748" = unnamed_addr constant [10 x i8] c"_eventname" +@"$stringlit_2753" = unnamed_addr constant [8 x i8] c"Approved" +@"$stringlit_2756" = unnamed_addr constant [7 x i8] c"address" +@"$stringlit_2772" = unnamed_addr constant [10 x i8] c"_eventname" +@"$stringlit_2777" = unnamed_addr constant [12 x i8] c"NewRegistrar" +@"$stringlit_2780" = unnamed_addr constant [7 x i8] c"address" +@"$stringlit_2810" = unnamed_addr constant [10 x i8] c"_eventname" +@"$stringlit_2815" = unnamed_addr constant [9 x i8] c"NewDomain" +@"$stringlit_2818" = unnamed_addr constant [6 x i8] c"parent" +@"$stringlit_2826" = unnamed_addr constant [5 x i8] c"label" +@"$stringlit_2874" = unnamed_addr constant [10 x i8] c"_eventname" +@"$stringlit_2879" = unnamed_addr constant [10 x i8] c"Configured" +@"$stringlit_2882" = unnamed_addr constant [4 x i8] c"node" +@"$stringlit_2890" = unnamed_addr constant [5 x i8] c"owner" +@"$stringlit_2898" = unnamed_addr constant [8 x i8] c"resolver" +@"$stringlit_2914" = unnamed_addr constant [10 x i8] c"_eventname" +@"$stringlit_2919" = unnamed_addr constant [5 x i8] c"Error" +@"$stringlit_2922" = unnamed_addr constant [3 x i8] c"msg" @"$_gas_charge_acc_3" = global %Int32 zeroinitializer @"$_gas_charge_accBoolUtils_1" = global %Int32 zeroinitializer @BoolUtils.andb = global { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } zeroinitializer @@ -337,2476 +337,2663 @@ target triple = "x86_64-pc-linux-gnu" @_cparam__creation_block = global i8* null @_cparam_initialOwner = global [20 x i8] zeroinitializer @_cparam_rootNode = global [32 x i8] zeroinitializer -@"$records_4286" = unnamed_addr constant [8 x i8] c"records\00" -@"$registrar_4296" = unnamed_addr constant [10 x i8] c"registrar\00" -@"$approvals_4309" = unnamed_addr constant [10 x i8] c"approvals\00" -@"$operators_4321" = unnamed_addr constant [10 x i8] c"operators\00" -@"$admins_4337" = unnamed_addr constant [7 x i8] c"admins\00" -@"$admins_4344" = unnamed_addr constant [7 x i8] c"admins\00" -@"$admins_4497" = unnamed_addr constant [7 x i8] c"admins\00" -@"$stringlit_4547" = unnamed_addr constant [26 x i8] c"Sender not root node owner" -@"$records_4587" = unnamed_addr constant [8 x i8] c"records\00" -@"$approvals_4650" = unnamed_addr constant [10 x i8] c"approvals\00" -@"$approvals_4755" = unnamed_addr constant [10 x i8] c"approvals\00" -@"$stringlit_4801" = unnamed_addr constant [21 x i8] c"Sender not node owner" -@"$operators_4840" = unnamed_addr constant [10 x i8] c"operators\00" -@"$operators_4997" = unnamed_addr constant [10 x i8] c"operators\00" -@"$records_5054" = unnamed_addr constant [8 x i8] c"records\00" -@"$approvals_5070" = unnamed_addr constant [10 x i8] c"approvals\00" -@"$operators_5104" = unnamed_addr constant [10 x i8] c"operators\00" -@"$records_5189" = unnamed_addr constant [8 x i8] c"records\00" -@"$stringlit_5244" = unnamed_addr constant [4 x i8] c"_tag" -@"$stringlit_5249" = unnamed_addr constant [18 x i8] c"onConfigureSuccess" -@"$stringlit_5252" = unnamed_addr constant [4 x i8] c"node" -@"$stringlit_5259" = unnamed_addr constant [5 x i8] c"owner" -@"$stringlit_5266" = unnamed_addr constant [7 x i8] c"_amount" -@"$stringlit_5273" = unnamed_addr constant [10 x i8] c"_recipient" -@"$stringlit_5319" = unnamed_addr constant [43 x i8] c"Sender not node owner, approved or operator" -@"$stringlit_5357" = unnamed_addr constant [4 x i8] c"_tag" -@"$stringlit_5362" = unnamed_addr constant [18 x i8] c"onConfigureFailure" -@"$stringlit_5365" = unnamed_addr constant [4 x i8] c"node" -@"$stringlit_5372" = unnamed_addr constant [5 x i8] c"owner" -@"$stringlit_5380" = unnamed_addr constant [7 x i8] c"_amount" -@"$stringlit_5387" = unnamed_addr constant [10 x i8] c"_recipient" -@"$records_5436" = unnamed_addr constant [8 x i8] c"records\00" -@"$approvals_5452" = unnamed_addr constant [10 x i8] c"approvals\00" -@"$operators_5486" = unnamed_addr constant [10 x i8] c"operators\00" -@"$records_5572" = unnamed_addr constant [8 x i8] c"records\00" -@"$stringlit_5629" = unnamed_addr constant [43 x i8] c"Sender not node owner, approved or operator" -@"$records_5669" = unnamed_addr constant [8 x i8] c"records\00" -@"$approvals_5685" = unnamed_addr constant [10 x i8] c"approvals\00" -@"$operators_5719" = unnamed_addr constant [10 x i8] c"operators\00" +@"$records_4360" = unnamed_addr constant [8 x i8] c"records\00" +@"$registrar_4370" = unnamed_addr constant [10 x i8] c"registrar\00" +@"$approvals_4383" = unnamed_addr constant [10 x i8] c"approvals\00" +@"$operators_4395" = unnamed_addr constant [10 x i8] c"operators\00" +@"$admins_4411" = unnamed_addr constant [7 x i8] c"admins\00" +@"$admins_4418" = unnamed_addr constant [7 x i8] c"admins\00" +@"$admins_4571" = unnamed_addr constant [7 x i8] c"admins\00" +@"$stringlit_4621" = unnamed_addr constant [26 x i8] c"Sender not root node owner" +@"$records_4666" = unnamed_addr constant [8 x i8] c"records\00" +@"$approvals_4729" = unnamed_addr constant [10 x i8] c"approvals\00" +@"$approvals_4834" = unnamed_addr constant [10 x i8] c"approvals\00" +@"$stringlit_4880" = unnamed_addr constant [21 x i8] c"Sender not node owner" +@"$operators_4924" = unnamed_addr constant [10 x i8] c"operators\00" +@"$operators_5081" = unnamed_addr constant [10 x i8] c"operators\00" +@"$records_5143" = unnamed_addr constant [8 x i8] c"records\00" +@"$approvals_5159" = unnamed_addr constant [10 x i8] c"approvals\00" +@"$operators_5193" = unnamed_addr constant [10 x i8] c"operators\00" +@"$records_5278" = unnamed_addr constant [8 x i8] c"records\00" +@"$stringlit_5333" = unnamed_addr constant [4 x i8] c"_tag" +@"$stringlit_5338" = unnamed_addr constant [18 x i8] c"onConfigureSuccess" +@"$stringlit_5341" = unnamed_addr constant [4 x i8] c"node" +@"$stringlit_5348" = unnamed_addr constant [5 x i8] c"owner" +@"$stringlit_5355" = unnamed_addr constant [7 x i8] c"_amount" +@"$stringlit_5362" = unnamed_addr constant [10 x i8] c"_recipient" +@"$stringlit_5408" = unnamed_addr constant [43 x i8] c"Sender not node owner, approved or operator" +@"$stringlit_5446" = unnamed_addr constant [4 x i8] c"_tag" +@"$stringlit_5451" = unnamed_addr constant [18 x i8] c"onConfigureFailure" +@"$stringlit_5454" = unnamed_addr constant [4 x i8] c"node" +@"$stringlit_5461" = unnamed_addr constant [5 x i8] c"owner" +@"$stringlit_5469" = unnamed_addr constant [7 x i8] c"_amount" +@"$stringlit_5476" = unnamed_addr constant [10 x i8] c"_recipient" +@"$records_5531" = unnamed_addr constant [8 x i8] c"records\00" +@"$approvals_5547" = unnamed_addr constant [10 x i8] c"approvals\00" +@"$operators_5581" = unnamed_addr constant [10 x i8] c"operators\00" +@"$records_5667" = unnamed_addr constant [8 x i8] c"records\00" +@"$stringlit_5724" = unnamed_addr constant [43 x i8] c"Sender not node owner, approved or operator" +@"$records_5769" = unnamed_addr constant [8 x i8] c"records\00" @"$approvals_5785" = unnamed_addr constant [10 x i8] c"approvals\00" -@"$records_5814" = unnamed_addr constant [8 x i8] c"records\00" -@"$stringlit_5870" = unnamed_addr constant [4 x i8] c"_tag" -@"$stringlit_5875" = unnamed_addr constant [17 x i8] c"onTransferSuccess" -@"$stringlit_5878" = unnamed_addr constant [4 x i8] c"node" -@"$stringlit_5885" = unnamed_addr constant [5 x i8] c"owner" -@"$stringlit_5892" = unnamed_addr constant [7 x i8] c"_amount" -@"$stringlit_5899" = unnamed_addr constant [10 x i8] c"_recipient" -@"$stringlit_5945" = unnamed_addr constant [43 x i8] c"Sender not node owner, approved or operator" -@"$stringlit_5983" = unnamed_addr constant [4 x i8] c"_tag" -@"$stringlit_5988" = unnamed_addr constant [17 x i8] c"onTransferFailure" -@"$stringlit_5991" = unnamed_addr constant [4 x i8] c"node" -@"$stringlit_5998" = unnamed_addr constant [5 x i8] c"owner" -@"$stringlit_6005" = unnamed_addr constant [7 x i8] c"_amount" -@"$stringlit_6012" = unnamed_addr constant [10 x i8] c"_recipient" -@"$records_6059" = unnamed_addr constant [8 x i8] c"records\00" -@"$approvals_6075" = unnamed_addr constant [10 x i8] c"approvals\00" -@"$operators_6109" = unnamed_addr constant [10 x i8] c"operators\00" -@"$records_6191" = unnamed_addr constant [8 x i8] c"records\00" -@"$approvals_6256" = unnamed_addr constant [10 x i8] c"approvals\00" -@"$records_6286" = unnamed_addr constant [8 x i8] c"records\00" -@"$stringlit_6343" = unnamed_addr constant [4 x i8] c"_tag" -@"$stringlit_6348" = unnamed_addr constant [15 x i8] c"onAssignSuccess" -@"$stringlit_6351" = unnamed_addr constant [6 x i8] c"parent" -@"$stringlit_6358" = unnamed_addr constant [5 x i8] c"label" -@"$stringlit_6365" = unnamed_addr constant [5 x i8] c"owner" -@"$stringlit_6372" = unnamed_addr constant [7 x i8] c"_amount" -@"$stringlit_6379" = unnamed_addr constant [10 x i8] c"_recipient" -@"$stringlit_6425" = unnamed_addr constant [45 x i8] c"Sender not parent owner, approved or operator" -@"$stringlit_6463" = unnamed_addr constant [4 x i8] c"_tag" -@"$stringlit_6468" = unnamed_addr constant [15 x i8] c"onAssignFailure" -@"$stringlit_6471" = unnamed_addr constant [6 x i8] c"parent" -@"$stringlit_6478" = unnamed_addr constant [5 x i8] c"label" -@"$stringlit_6485" = unnamed_addr constant [5 x i8] c"owner" -@"$stringlit_6493" = unnamed_addr constant [7 x i8] c"_amount" -@"$stringlit_6500" = unnamed_addr constant [10 x i8] c"_recipient" -@"$admins_6547" = unnamed_addr constant [7 x i8] c"admins\00" -@"$records_6585" = unnamed_addr constant [8 x i8] c"records\00" -@"$records_6602" = unnamed_addr constant [8 x i8] c"records\00" -@"$registrar_6616" = unnamed_addr constant [10 x i8] c"registrar\00" -@"$records_6892" = unnamed_addr constant [8 x i8] c"records\00" -@"$stringlit_6949" = unnamed_addr constant [12 x i8] c"Sender admin" -@"$admins_6988" = unnamed_addr constant [7 x i8] c"admins\00" -@"$registrar_7069" = unnamed_addr constant [10 x i8] c"registrar\00" -@"$records_7109" = unnamed_addr constant [8 x i8] c"records\00" -@"$approvals_7126" = unnamed_addr constant [10 x i8] c"approvals\00" -@"$registrar_7190" = unnamed_addr constant [10 x i8] c"registrar\00" -@"$stringlit_7298" = unnamed_addr constant [4 x i8] c"_tag" -@"$stringlit_7303" = unnamed_addr constant [8 x i8] c"register" -@"$stringlit_7306" = unnamed_addr constant [7 x i8] c"_amount" -@"$stringlit_7313" = unnamed_addr constant [10 x i8] c"_recipient" -@"$stringlit_7321" = unnamed_addr constant [6 x i8] c"origin" -@"$stringlit_7328" = unnamed_addr constant [4 x i8] c"node" -@"$stringlit_7336" = unnamed_addr constant [6 x i8] c"parent" -@"$stringlit_7343" = unnamed_addr constant [5 x i8] c"label" -@"$records_7391" = unnamed_addr constant [8 x i8] c"records\00" +@"$operators_5819" = unnamed_addr constant [10 x i8] c"operators\00" +@"$approvals_5885" = unnamed_addr constant [10 x i8] c"approvals\00" +@"$records_5914" = unnamed_addr constant [8 x i8] c"records\00" +@"$stringlit_5970" = unnamed_addr constant [4 x i8] c"_tag" +@"$stringlit_5975" = unnamed_addr constant [17 x i8] c"onTransferSuccess" +@"$stringlit_5978" = unnamed_addr constant [4 x i8] c"node" +@"$stringlit_5985" = unnamed_addr constant [5 x i8] c"owner" +@"$stringlit_5992" = unnamed_addr constant [7 x i8] c"_amount" +@"$stringlit_5999" = unnamed_addr constant [10 x i8] c"_recipient" +@"$stringlit_6045" = unnamed_addr constant [43 x i8] c"Sender not node owner, approved or operator" +@"$stringlit_6083" = unnamed_addr constant [4 x i8] c"_tag" +@"$stringlit_6088" = unnamed_addr constant [17 x i8] c"onTransferFailure" +@"$stringlit_6091" = unnamed_addr constant [4 x i8] c"node" +@"$stringlit_6098" = unnamed_addr constant [5 x i8] c"owner" +@"$stringlit_6105" = unnamed_addr constant [7 x i8] c"_amount" +@"$stringlit_6112" = unnamed_addr constant [10 x i8] c"_recipient" +@"$records_6164" = unnamed_addr constant [8 x i8] c"records\00" +@"$approvals_6180" = unnamed_addr constant [10 x i8] c"approvals\00" +@"$operators_6214" = unnamed_addr constant [10 x i8] c"operators\00" +@"$records_6296" = unnamed_addr constant [8 x i8] c"records\00" +@"$approvals_6361" = unnamed_addr constant [10 x i8] c"approvals\00" +@"$records_6391" = unnamed_addr constant [8 x i8] c"records\00" +@"$stringlit_6448" = unnamed_addr constant [4 x i8] c"_tag" +@"$stringlit_6453" = unnamed_addr constant [15 x i8] c"onAssignSuccess" +@"$stringlit_6456" = unnamed_addr constant [6 x i8] c"parent" +@"$stringlit_6463" = unnamed_addr constant [5 x i8] c"label" +@"$stringlit_6470" = unnamed_addr constant [5 x i8] c"owner" +@"$stringlit_6477" = unnamed_addr constant [7 x i8] c"_amount" +@"$stringlit_6484" = unnamed_addr constant [10 x i8] c"_recipient" +@"$stringlit_6530" = unnamed_addr constant [45 x i8] c"Sender not parent owner, approved or operator" +@"$stringlit_6568" = unnamed_addr constant [4 x i8] c"_tag" +@"$stringlit_6573" = unnamed_addr constant [15 x i8] c"onAssignFailure" +@"$stringlit_6576" = unnamed_addr constant [6 x i8] c"parent" +@"$stringlit_6583" = unnamed_addr constant [5 x i8] c"label" +@"$stringlit_6590" = unnamed_addr constant [5 x i8] c"owner" +@"$stringlit_6598" = unnamed_addr constant [7 x i8] c"_amount" +@"$stringlit_6605" = unnamed_addr constant [10 x i8] c"_recipient" +@"$admins_6658" = unnamed_addr constant [7 x i8] c"admins\00" +@"$records_6696" = unnamed_addr constant [8 x i8] c"records\00" +@"$records_6713" = unnamed_addr constant [8 x i8] c"records\00" +@"$registrar_6727" = unnamed_addr constant [10 x i8] c"registrar\00" +@"$records_7003" = unnamed_addr constant [8 x i8] c"records\00" +@"$stringlit_7060" = unnamed_addr constant [12 x i8] c"Sender admin" +@"$admins_7105" = unnamed_addr constant [7 x i8] c"admins\00" +@"$registrar_7186" = unnamed_addr constant [10 x i8] c"registrar\00" +@"$records_7230" = unnamed_addr constant [8 x i8] c"records\00" +@"$approvals_7247" = unnamed_addr constant [10 x i8] c"approvals\00" +@"$registrar_7311" = unnamed_addr constant [10 x i8] c"registrar\00" +@"$stringlit_7419" = unnamed_addr constant [4 x i8] c"_tag" +@"$stringlit_7424" = unnamed_addr constant [8 x i8] c"register" +@"$stringlit_7427" = unnamed_addr constant [7 x i8] c"_amount" +@"$stringlit_7434" = unnamed_addr constant [10 x i8] c"_recipient" +@"$stringlit_7442" = unnamed_addr constant [6 x i8] c"origin" +@"$stringlit_7449" = unnamed_addr constant [4 x i8] c"node" +@"$stringlit_7457" = unnamed_addr constant [6 x i8] c"parent" +@"$stringlit_7464" = unnamed_addr constant [5 x i8] c"label" +@"$records_7517" = unnamed_addr constant [8 x i8] c"records\00" @_tydescr_table = constant [29 x %_TyDescrTy_Typ*] [%_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_467", %_TyDescrTy_Typ* @"$TyDescr_Event_446", %_TyDescrTy_Typ* @"$TyDescr_Int64_428", %_TyDescrTy_Typ* @"$TyDescr_Addr_475", %_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_468", %_TyDescrTy_Typ* @"$TyDescr_ADT_Option_ByStr20_464", %_TyDescrTy_Typ* @"$TyDescr_Bystr20_458", %_TyDescrTy_Typ* @"$TyDescr_Uint256_438", %_TyDescrTy_Typ* @"$TyDescr_Uint32_426", %_TyDescrTy_Typ* @"$TyDescr_Bystr64_454", %_TyDescrTy_Typ* @"$TyDescr_Uint64_430", %_TyDescrTy_Typ* @"$TyDescr_Bnum_442", %_TyDescrTy_Typ* @"$TyDescr_Uint128_434", %_TyDescrTy_Typ* @"$TyDescr_Map_472", %_TyDescrTy_Typ* @"$TyDescr_Exception_448", %_TyDescrTy_Typ* @"$TyDescr_String_440", %_TyDescrTy_Typ* @"$TyDescr_ADT_List_ByStr20_466", %_TyDescrTy_Typ* @"$TyDescr_ADT_Option_List_(ByStr20)_462", %_TyDescrTy_Typ* @"$TyDescr_ADT_Option_ud-registry.Record_463", %_TyDescrTy_Typ* @"$TyDescr_Bystr32_456", %_TyDescrTy_Typ* @"$TyDescr_Int256_436", %_TyDescrTy_Typ* @"$TyDescr_Int128_432", %_TyDescrTy_Typ* @"$TyDescr_Map_470", %_TyDescrTy_Typ* @"$TyDescr_ADT_ud-registry.Record_465", %_TyDescrTy_Typ* @"$TyDescr_Bystr_452", %_TyDescrTy_Typ* @"$TyDescr_ReplicateContr_450", %_TyDescrTy_Typ* @"$TyDescr_Message_444", %_TyDescrTy_Typ* @"$TyDescr_Map_471", %_TyDescrTy_Typ* @"$TyDescr_Int32_424"] @_tydescr_table_length = constant i32 29 -@"$pname__scilla_version_7518" = unnamed_addr constant [15 x i8] c"_scilla_version" -@"$pname__this_address_7519" = unnamed_addr constant [13 x i8] c"_this_address" -@"$pname__creation_block_7520" = unnamed_addr constant [15 x i8] c"_creation_block" -@"$pname_initialOwner_7521" = unnamed_addr constant [12 x i8] c"initialOwner" -@"$pname_rootNode_7522" = unnamed_addr constant [8 x i8] c"rootNode" -@_contract_parameters = constant [5 x %"$ParamDescr_7516"] [%"$ParamDescr_7516" { %ParamDescrString { i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$pname__scilla_version_7518", i32 0, i32 0), i32 15 }, %_TyDescrTy_Typ* @"$TyDescr_Uint32_426" }, %"$ParamDescr_7516" { %ParamDescrString { i8* getelementptr inbounds ([13 x i8], [13 x i8]* @"$pname__this_address_7519", i32 0, i32 0), i32 13 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr20_458" }, %"$ParamDescr_7516" { %ParamDescrString { i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$pname__creation_block_7520", i32 0, i32 0), i32 15 }, %_TyDescrTy_Typ* @"$TyDescr_Bnum_442" }, %"$ParamDescr_7516" { %ParamDescrString { i8* getelementptr inbounds ([12 x i8], [12 x i8]* @"$pname_initialOwner_7521", i32 0, i32 0), i32 12 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr20_458" }, %"$ParamDescr_7516" { %ParamDescrString { i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$pname_rootNode_7522", i32 0, i32 0), i32 8 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr32_456" }] +@"$pname__scilla_version_7648" = unnamed_addr constant [15 x i8] c"_scilla_version" +@"$pname__this_address_7649" = unnamed_addr constant [13 x i8] c"_this_address" +@"$pname__creation_block_7650" = unnamed_addr constant [15 x i8] c"_creation_block" +@"$pname_initialOwner_7651" = unnamed_addr constant [12 x i8] c"initialOwner" +@"$pname_rootNode_7652" = unnamed_addr constant [8 x i8] c"rootNode" +@_contract_parameters = constant [5 x %"$ParamDescr_7646"] [%"$ParamDescr_7646" { %ParamDescrString { i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$pname__scilla_version_7648", i32 0, i32 0), i32 15 }, %_TyDescrTy_Typ* @"$TyDescr_Uint32_426" }, %"$ParamDescr_7646" { %ParamDescrString { i8* getelementptr inbounds ([13 x i8], [13 x i8]* @"$pname__this_address_7649", i32 0, i32 0), i32 13 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr20_458" }, %"$ParamDescr_7646" { %ParamDescrString { i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$pname__creation_block_7650", i32 0, i32 0), i32 15 }, %_TyDescrTy_Typ* @"$TyDescr_Bnum_442" }, %"$ParamDescr_7646" { %ParamDescrString { i8* getelementptr inbounds ([12 x i8], [12 x i8]* @"$pname_initialOwner_7651", i32 0, i32 0), i32 12 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr20_458" }, %"$ParamDescr_7646" { %ParamDescrString { i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$pname_rootNode_7652", i32 0, i32 0), i32 8 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr32_456" }] @_contract_parameters_length = constant i32 5 -@"$tpname__amount_7523" = unnamed_addr constant [7 x i8] c"_amount" -@"$tpname__origin_7524" = unnamed_addr constant [7 x i8] c"_origin" -@"$tpname__sender_7525" = unnamed_addr constant [7 x i8] c"_sender" -@"$tpname_address_7526" = unnamed_addr constant [7 x i8] c"address" -@"$tpname_isApproved_7527" = unnamed_addr constant [10 x i8] c"isApproved" -@"$tparams_setAdmin_7528" = unnamed_addr constant [5 x %"$ParamDescr_7516"] [%"$ParamDescr_7516" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_7523", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_434" }, %"$ParamDescr_7516" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_7524", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_475" }, %"$ParamDescr_7516" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_7525", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_475" }, %"$ParamDescr_7516" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname_address_7526", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr20_458" }, %"$ParamDescr_7516" { %ParamDescrString { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$tpname_isApproved_7527", i32 0, i32 0), i32 10 }, %_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_468" }] -@"$tname_setAdmin_7529" = unnamed_addr constant [8 x i8] c"setAdmin" -@"$tpname__amount_7530" = unnamed_addr constant [7 x i8] c"_amount" -@"$tpname__origin_7531" = unnamed_addr constant [7 x i8] c"_origin" -@"$tpname__sender_7532" = unnamed_addr constant [7 x i8] c"_sender" -@"$tpname_node_7533" = unnamed_addr constant [4 x i8] c"node" -@"$tpname_address_7534" = unnamed_addr constant [7 x i8] c"address" -@"$tparams_approve_7535" = unnamed_addr constant [5 x %"$ParamDescr_7516"] [%"$ParamDescr_7516" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_7530", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_434" }, %"$ParamDescr_7516" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_7531", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_475" }, %"$ParamDescr_7516" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_7532", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_475" }, %"$ParamDescr_7516" { %ParamDescrString { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$tpname_node_7533", i32 0, i32 0), i32 4 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr32_456" }, %"$ParamDescr_7516" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname_address_7534", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr20_458" }] -@"$tname_approve_7536" = unnamed_addr constant [7 x i8] c"approve" -@"$tpname__amount_7537" = unnamed_addr constant [7 x i8] c"_amount" -@"$tpname__origin_7538" = unnamed_addr constant [7 x i8] c"_origin" -@"$tpname__sender_7539" = unnamed_addr constant [7 x i8] c"_sender" -@"$tpname_address_7540" = unnamed_addr constant [7 x i8] c"address" -@"$tpname_isApproved_7541" = unnamed_addr constant [10 x i8] c"isApproved" -@"$tparams_approveFor_7542" = unnamed_addr constant [5 x %"$ParamDescr_7516"] [%"$ParamDescr_7516" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_7537", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_434" }, %"$ParamDescr_7516" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_7538", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_475" }, %"$ParamDescr_7516" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_7539", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_475" }, %"$ParamDescr_7516" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname_address_7540", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr20_458" }, %"$ParamDescr_7516" { %ParamDescrString { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$tpname_isApproved_7541", i32 0, i32 0), i32 10 }, %_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_468" }] -@"$tname_approveFor_7543" = unnamed_addr constant [10 x i8] c"approveFor" -@"$tpname__amount_7544" = unnamed_addr constant [7 x i8] c"_amount" -@"$tpname__origin_7545" = unnamed_addr constant [7 x i8] c"_origin" -@"$tpname__sender_7546" = unnamed_addr constant [7 x i8] c"_sender" -@"$tpname_node_7547" = unnamed_addr constant [4 x i8] c"node" -@"$tpname_owner_7548" = unnamed_addr constant [5 x i8] c"owner" -@"$tpname_resolver_7549" = unnamed_addr constant [8 x i8] c"resolver" -@"$tparams_configureNode_7550" = unnamed_addr constant [6 x %"$ParamDescr_7516"] [%"$ParamDescr_7516" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_7544", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_434" }, %"$ParamDescr_7516" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_7545", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_475" }, %"$ParamDescr_7516" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_7546", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_475" }, %"$ParamDescr_7516" { %ParamDescrString { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$tpname_node_7547", i32 0, i32 0), i32 4 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr32_456" }, %"$ParamDescr_7516" { %ParamDescrString { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$tpname_owner_7548", i32 0, i32 0), i32 5 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr20_458" }, %"$ParamDescr_7516" { %ParamDescrString { i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$tpname_resolver_7549", i32 0, i32 0), i32 8 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr20_458" }] -@"$tname_configureNode_7551" = unnamed_addr constant [13 x i8] c"configureNode" -@"$tpname__amount_7552" = unnamed_addr constant [7 x i8] c"_amount" -@"$tpname__origin_7553" = unnamed_addr constant [7 x i8] c"_origin" -@"$tpname__sender_7554" = unnamed_addr constant [7 x i8] c"_sender" -@"$tpname_node_7555" = unnamed_addr constant [4 x i8] c"node" -@"$tpname_resolver_7556" = unnamed_addr constant [8 x i8] c"resolver" -@"$tparams_configureResolver_7557" = unnamed_addr constant [5 x %"$ParamDescr_7516"] [%"$ParamDescr_7516" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_7552", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_434" }, %"$ParamDescr_7516" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_7553", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_475" }, %"$ParamDescr_7516" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_7554", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_475" }, %"$ParamDescr_7516" { %ParamDescrString { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$tpname_node_7555", i32 0, i32 0), i32 4 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr32_456" }, %"$ParamDescr_7516" { %ParamDescrString { i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$tpname_resolver_7556", i32 0, i32 0), i32 8 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr20_458" }] -@"$tname_configureResolver_7558" = unnamed_addr constant [17 x i8] c"configureResolver" -@"$tpname__amount_7559" = unnamed_addr constant [7 x i8] c"_amount" -@"$tpname__origin_7560" = unnamed_addr constant [7 x i8] c"_origin" -@"$tpname__sender_7561" = unnamed_addr constant [7 x i8] c"_sender" -@"$tpname_node_7562" = unnamed_addr constant [4 x i8] c"node" -@"$tpname_owner_7563" = unnamed_addr constant [5 x i8] c"owner" -@"$tparams_transfer_7564" = unnamed_addr constant [5 x %"$ParamDescr_7516"] [%"$ParamDescr_7516" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_7559", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_434" }, %"$ParamDescr_7516" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_7560", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_475" }, %"$ParamDescr_7516" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_7561", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_475" }, %"$ParamDescr_7516" { %ParamDescrString { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$tpname_node_7562", i32 0, i32 0), i32 4 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr32_456" }, %"$ParamDescr_7516" { %ParamDescrString { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$tpname_owner_7563", i32 0, i32 0), i32 5 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr20_458" }] -@"$tname_transfer_7565" = unnamed_addr constant [8 x i8] c"transfer" -@"$tpname__amount_7566" = unnamed_addr constant [7 x i8] c"_amount" -@"$tpname__origin_7567" = unnamed_addr constant [7 x i8] c"_origin" -@"$tpname__sender_7568" = unnamed_addr constant [7 x i8] c"_sender" -@"$tpname_parent_7569" = unnamed_addr constant [6 x i8] c"parent" -@"$tpname_label_7570" = unnamed_addr constant [5 x i8] c"label" -@"$tpname_owner_7571" = unnamed_addr constant [5 x i8] c"owner" -@"$tparams_assign_7572" = unnamed_addr constant [6 x %"$ParamDescr_7516"] [%"$ParamDescr_7516" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_7566", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_434" }, %"$ParamDescr_7516" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_7567", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_475" }, %"$ParamDescr_7516" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_7568", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_475" }, %"$ParamDescr_7516" { %ParamDescrString { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$tpname_parent_7569", i32 0, i32 0), i32 6 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr32_456" }, %"$ParamDescr_7516" { %ParamDescrString { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$tpname_label_7570", i32 0, i32 0), i32 5 }, %_TyDescrTy_Typ* @"$TyDescr_String_440" }, %"$ParamDescr_7516" { %ParamDescrString { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$tpname_owner_7571", i32 0, i32 0), i32 5 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr20_458" }] -@"$tname_assign_7573" = unnamed_addr constant [6 x i8] c"assign" -@"$tpname__amount_7574" = unnamed_addr constant [7 x i8] c"_amount" -@"$tpname__origin_7575" = unnamed_addr constant [7 x i8] c"_origin" -@"$tpname__sender_7576" = unnamed_addr constant [7 x i8] c"_sender" -@"$tpname_label_7577" = unnamed_addr constant [5 x i8] c"label" -@"$tpname_owner_7578" = unnamed_addr constant [5 x i8] c"owner" -@"$tpname_resolver_7579" = unnamed_addr constant [8 x i8] c"resolver" -@"$tparams_bestow_7580" = unnamed_addr constant [6 x %"$ParamDescr_7516"] [%"$ParamDescr_7516" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_7574", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_434" }, %"$ParamDescr_7516" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_7575", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_475" }, %"$ParamDescr_7516" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_7576", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_475" }, %"$ParamDescr_7516" { %ParamDescrString { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$tpname_label_7577", i32 0, i32 0), i32 5 }, %_TyDescrTy_Typ* @"$TyDescr_String_440" }, %"$ParamDescr_7516" { %ParamDescrString { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$tpname_owner_7578", i32 0, i32 0), i32 5 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr20_458" }, %"$ParamDescr_7516" { %ParamDescrString { i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$tpname_resolver_7579", i32 0, i32 0), i32 8 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr20_458" }] -@"$tname_bestow_7581" = unnamed_addr constant [6 x i8] c"bestow" -@"$tpname__amount_7582" = unnamed_addr constant [7 x i8] c"_amount" -@"$tpname__origin_7583" = unnamed_addr constant [7 x i8] c"_origin" -@"$tpname__sender_7584" = unnamed_addr constant [7 x i8] c"_sender" -@"$tpname_address_7585" = unnamed_addr constant [7 x i8] c"address" -@"$tparams_setRegistrar_7586" = unnamed_addr constant [4 x %"$ParamDescr_7516"] [%"$ParamDescr_7516" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_7582", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_434" }, %"$ParamDescr_7516" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_7583", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_475" }, %"$ParamDescr_7516" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_7584", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_475" }, %"$ParamDescr_7516" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname_address_7585", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr20_458" }] -@"$tname_setRegistrar_7587" = unnamed_addr constant [12 x i8] c"setRegistrar" -@"$tpname__amount_7588" = unnamed_addr constant [7 x i8] c"_amount" -@"$tpname__origin_7589" = unnamed_addr constant [7 x i8] c"_origin" -@"$tpname__sender_7590" = unnamed_addr constant [7 x i8] c"_sender" -@"$tpname_parent_7591" = unnamed_addr constant [6 x i8] c"parent" -@"$tpname_label_7592" = unnamed_addr constant [5 x i8] c"label" -@"$tparams_register_7593" = unnamed_addr constant [5 x %"$ParamDescr_7516"] [%"$ParamDescr_7516" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_7588", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_434" }, %"$ParamDescr_7516" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_7589", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_475" }, %"$ParamDescr_7516" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_7590", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_475" }, %"$ParamDescr_7516" { %ParamDescrString { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$tpname_parent_7591", i32 0, i32 0), i32 6 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr32_456" }, %"$ParamDescr_7516" { %ParamDescrString { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$tpname_label_7592", i32 0, i32 0), i32 5 }, %_TyDescrTy_Typ* @"$TyDescr_String_440" }] -@"$tname_register_7594" = unnamed_addr constant [8 x i8] c"register" -@"$tpname__amount_7595" = unnamed_addr constant [7 x i8] c"_amount" -@"$tpname__origin_7596" = unnamed_addr constant [7 x i8] c"_origin" -@"$tpname__sender_7597" = unnamed_addr constant [7 x i8] c"_sender" -@"$tpname_node_7598" = unnamed_addr constant [4 x i8] c"node" -@"$tparams_onResolverConfigured_7599" = unnamed_addr constant [4 x %"$ParamDescr_7516"] [%"$ParamDescr_7516" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_7595", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_434" }, %"$ParamDescr_7516" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_7596", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_475" }, %"$ParamDescr_7516" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_7597", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_475" }, %"$ParamDescr_7516" { %ParamDescrString { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$tpname_node_7598", i32 0, i32 0), i32 4 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr32_456" }] -@"$tname_onResolverConfigured_7600" = unnamed_addr constant [20 x i8] c"onResolverConfigured" -@_transition_parameters = constant [11 x %"$TransDescr_7517"] [%"$TransDescr_7517" { %ParamDescrString { i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$tname_setAdmin_7529", i32 0, i32 0), i32 8 }, i32 5, %"$ParamDescr_7516"* getelementptr inbounds ([5 x %"$ParamDescr_7516"], [5 x %"$ParamDescr_7516"]* @"$tparams_setAdmin_7528", i32 0, i32 0) }, %"$TransDescr_7517" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tname_approve_7536", i32 0, i32 0), i32 7 }, i32 5, %"$ParamDescr_7516"* getelementptr inbounds ([5 x %"$ParamDescr_7516"], [5 x %"$ParamDescr_7516"]* @"$tparams_approve_7535", i32 0, i32 0) }, %"$TransDescr_7517" { %ParamDescrString { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$tname_approveFor_7543", i32 0, i32 0), i32 10 }, i32 5, %"$ParamDescr_7516"* getelementptr inbounds ([5 x %"$ParamDescr_7516"], [5 x %"$ParamDescr_7516"]* @"$tparams_approveFor_7542", i32 0, i32 0) }, %"$TransDescr_7517" { %ParamDescrString { i8* getelementptr inbounds ([13 x i8], [13 x i8]* @"$tname_configureNode_7551", i32 0, i32 0), i32 13 }, i32 6, %"$ParamDescr_7516"* getelementptr inbounds ([6 x %"$ParamDescr_7516"], [6 x %"$ParamDescr_7516"]* @"$tparams_configureNode_7550", i32 0, i32 0) }, %"$TransDescr_7517" { %ParamDescrString { i8* getelementptr inbounds ([17 x i8], [17 x i8]* @"$tname_configureResolver_7558", i32 0, i32 0), i32 17 }, i32 5, %"$ParamDescr_7516"* getelementptr inbounds ([5 x %"$ParamDescr_7516"], [5 x %"$ParamDescr_7516"]* @"$tparams_configureResolver_7557", i32 0, i32 0) }, %"$TransDescr_7517" { %ParamDescrString { i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$tname_transfer_7565", i32 0, i32 0), i32 8 }, i32 5, %"$ParamDescr_7516"* getelementptr inbounds ([5 x %"$ParamDescr_7516"], [5 x %"$ParamDescr_7516"]* @"$tparams_transfer_7564", i32 0, i32 0) }, %"$TransDescr_7517" { %ParamDescrString { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$tname_assign_7573", i32 0, i32 0), i32 6 }, i32 6, %"$ParamDescr_7516"* getelementptr inbounds ([6 x %"$ParamDescr_7516"], [6 x %"$ParamDescr_7516"]* @"$tparams_assign_7572", i32 0, i32 0) }, %"$TransDescr_7517" { %ParamDescrString { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$tname_bestow_7581", i32 0, i32 0), i32 6 }, i32 6, %"$ParamDescr_7516"* getelementptr inbounds ([6 x %"$ParamDescr_7516"], [6 x %"$ParamDescr_7516"]* @"$tparams_bestow_7580", i32 0, i32 0) }, %"$TransDescr_7517" { %ParamDescrString { i8* getelementptr inbounds ([12 x i8], [12 x i8]* @"$tname_setRegistrar_7587", i32 0, i32 0), i32 12 }, i32 4, %"$ParamDescr_7516"* getelementptr inbounds ([4 x %"$ParamDescr_7516"], [4 x %"$ParamDescr_7516"]* @"$tparams_setRegistrar_7586", i32 0, i32 0) }, %"$TransDescr_7517" { %ParamDescrString { i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$tname_register_7594", i32 0, i32 0), i32 8 }, i32 5, %"$ParamDescr_7516"* getelementptr inbounds ([5 x %"$ParamDescr_7516"], [5 x %"$ParamDescr_7516"]* @"$tparams_register_7593", i32 0, i32 0) }, %"$TransDescr_7517" { %ParamDescrString { i8* getelementptr inbounds ([20 x i8], [20 x i8]* @"$tname_onResolverConfigured_7600", i32 0, i32 0), i32 20 }, i32 4, %"$ParamDescr_7516"* getelementptr inbounds ([4 x %"$ParamDescr_7516"], [4 x %"$ParamDescr_7516"]* @"$tparams_onResolverConfigured_7599", i32 0, i32 0) }] +@"$tpname__amount_7653" = unnamed_addr constant [7 x i8] c"_amount" +@"$tpname__origin_7654" = unnamed_addr constant [7 x i8] c"_origin" +@"$tpname__sender_7655" = unnamed_addr constant [7 x i8] c"_sender" +@"$tpname_address_7656" = unnamed_addr constant [7 x i8] c"address" +@"$tpname_isApproved_7657" = unnamed_addr constant [10 x i8] c"isApproved" +@"$tparams_setAdmin_7658" = unnamed_addr constant [5 x %"$ParamDescr_7646"] [%"$ParamDescr_7646" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_7653", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_434" }, %"$ParamDescr_7646" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_7654", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_475" }, %"$ParamDescr_7646" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_7655", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_475" }, %"$ParamDescr_7646" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname_address_7656", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr20_458" }, %"$ParamDescr_7646" { %ParamDescrString { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$tpname_isApproved_7657", i32 0, i32 0), i32 10 }, %_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_468" }] +@"$tname_setAdmin_7659" = unnamed_addr constant [8 x i8] c"setAdmin" +@"$tpname__amount_7660" = unnamed_addr constant [7 x i8] c"_amount" +@"$tpname__origin_7661" = unnamed_addr constant [7 x i8] c"_origin" +@"$tpname__sender_7662" = unnamed_addr constant [7 x i8] c"_sender" +@"$tpname_node_7663" = unnamed_addr constant [4 x i8] c"node" +@"$tpname_address_7664" = unnamed_addr constant [7 x i8] c"address" +@"$tparams_approve_7665" = unnamed_addr constant [5 x %"$ParamDescr_7646"] [%"$ParamDescr_7646" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_7660", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_434" }, %"$ParamDescr_7646" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_7661", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_475" }, %"$ParamDescr_7646" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_7662", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_475" }, %"$ParamDescr_7646" { %ParamDescrString { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$tpname_node_7663", i32 0, i32 0), i32 4 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr32_456" }, %"$ParamDescr_7646" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname_address_7664", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr20_458" }] +@"$tname_approve_7666" = unnamed_addr constant [7 x i8] c"approve" +@"$tpname__amount_7667" = unnamed_addr constant [7 x i8] c"_amount" +@"$tpname__origin_7668" = unnamed_addr constant [7 x i8] c"_origin" +@"$tpname__sender_7669" = unnamed_addr constant [7 x i8] c"_sender" +@"$tpname_address_7670" = unnamed_addr constant [7 x i8] c"address" +@"$tpname_isApproved_7671" = unnamed_addr constant [10 x i8] c"isApproved" +@"$tparams_approveFor_7672" = unnamed_addr constant [5 x %"$ParamDescr_7646"] [%"$ParamDescr_7646" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_7667", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_434" }, %"$ParamDescr_7646" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_7668", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_475" }, %"$ParamDescr_7646" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_7669", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_475" }, %"$ParamDescr_7646" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname_address_7670", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr20_458" }, %"$ParamDescr_7646" { %ParamDescrString { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$tpname_isApproved_7671", i32 0, i32 0), i32 10 }, %_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_468" }] +@"$tname_approveFor_7673" = unnamed_addr constant [10 x i8] c"approveFor" +@"$tpname__amount_7674" = unnamed_addr constant [7 x i8] c"_amount" +@"$tpname__origin_7675" = unnamed_addr constant [7 x i8] c"_origin" +@"$tpname__sender_7676" = unnamed_addr constant [7 x i8] c"_sender" +@"$tpname_node_7677" = unnamed_addr constant [4 x i8] c"node" +@"$tpname_owner_7678" = unnamed_addr constant [5 x i8] c"owner" +@"$tpname_resolver_7679" = unnamed_addr constant [8 x i8] c"resolver" +@"$tparams_configureNode_7680" = unnamed_addr constant [6 x %"$ParamDescr_7646"] [%"$ParamDescr_7646" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_7674", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_434" }, %"$ParamDescr_7646" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_7675", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_475" }, %"$ParamDescr_7646" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_7676", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_475" }, %"$ParamDescr_7646" { %ParamDescrString { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$tpname_node_7677", i32 0, i32 0), i32 4 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr32_456" }, %"$ParamDescr_7646" { %ParamDescrString { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$tpname_owner_7678", i32 0, i32 0), i32 5 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr20_458" }, %"$ParamDescr_7646" { %ParamDescrString { i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$tpname_resolver_7679", i32 0, i32 0), i32 8 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr20_458" }] +@"$tname_configureNode_7681" = unnamed_addr constant [13 x i8] c"configureNode" +@"$tpname__amount_7682" = unnamed_addr constant [7 x i8] c"_amount" +@"$tpname__origin_7683" = unnamed_addr constant [7 x i8] c"_origin" +@"$tpname__sender_7684" = unnamed_addr constant [7 x i8] c"_sender" +@"$tpname_node_7685" = unnamed_addr constant [4 x i8] c"node" +@"$tpname_resolver_7686" = unnamed_addr constant [8 x i8] c"resolver" +@"$tparams_configureResolver_7687" = unnamed_addr constant [5 x %"$ParamDescr_7646"] [%"$ParamDescr_7646" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_7682", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_434" }, %"$ParamDescr_7646" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_7683", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_475" }, %"$ParamDescr_7646" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_7684", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_475" }, %"$ParamDescr_7646" { %ParamDescrString { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$tpname_node_7685", i32 0, i32 0), i32 4 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr32_456" }, %"$ParamDescr_7646" { %ParamDescrString { i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$tpname_resolver_7686", i32 0, i32 0), i32 8 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr20_458" }] +@"$tname_configureResolver_7688" = unnamed_addr constant [17 x i8] c"configureResolver" +@"$tpname__amount_7689" = unnamed_addr constant [7 x i8] c"_amount" +@"$tpname__origin_7690" = unnamed_addr constant [7 x i8] c"_origin" +@"$tpname__sender_7691" = unnamed_addr constant [7 x i8] c"_sender" +@"$tpname_node_7692" = unnamed_addr constant [4 x i8] c"node" +@"$tpname_owner_7693" = unnamed_addr constant [5 x i8] c"owner" +@"$tparams_transfer_7694" = unnamed_addr constant [5 x %"$ParamDescr_7646"] [%"$ParamDescr_7646" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_7689", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_434" }, %"$ParamDescr_7646" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_7690", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_475" }, %"$ParamDescr_7646" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_7691", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_475" }, %"$ParamDescr_7646" { %ParamDescrString { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$tpname_node_7692", i32 0, i32 0), i32 4 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr32_456" }, %"$ParamDescr_7646" { %ParamDescrString { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$tpname_owner_7693", i32 0, i32 0), i32 5 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr20_458" }] +@"$tname_transfer_7695" = unnamed_addr constant [8 x i8] c"transfer" +@"$tpname__amount_7696" = unnamed_addr constant [7 x i8] c"_amount" +@"$tpname__origin_7697" = unnamed_addr constant [7 x i8] c"_origin" +@"$tpname__sender_7698" = unnamed_addr constant [7 x i8] c"_sender" +@"$tpname_parent_7699" = unnamed_addr constant [6 x i8] c"parent" +@"$tpname_label_7700" = unnamed_addr constant [5 x i8] c"label" +@"$tpname_owner_7701" = unnamed_addr constant [5 x i8] c"owner" +@"$tparams_assign_7702" = unnamed_addr constant [6 x %"$ParamDescr_7646"] [%"$ParamDescr_7646" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_7696", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_434" }, %"$ParamDescr_7646" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_7697", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_475" }, %"$ParamDescr_7646" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_7698", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_475" }, %"$ParamDescr_7646" { %ParamDescrString { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$tpname_parent_7699", i32 0, i32 0), i32 6 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr32_456" }, %"$ParamDescr_7646" { %ParamDescrString { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$tpname_label_7700", i32 0, i32 0), i32 5 }, %_TyDescrTy_Typ* @"$TyDescr_String_440" }, %"$ParamDescr_7646" { %ParamDescrString { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$tpname_owner_7701", i32 0, i32 0), i32 5 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr20_458" }] +@"$tname_assign_7703" = unnamed_addr constant [6 x i8] c"assign" +@"$tpname__amount_7704" = unnamed_addr constant [7 x i8] c"_amount" +@"$tpname__origin_7705" = unnamed_addr constant [7 x i8] c"_origin" +@"$tpname__sender_7706" = unnamed_addr constant [7 x i8] c"_sender" +@"$tpname_label_7707" = unnamed_addr constant [5 x i8] c"label" +@"$tpname_owner_7708" = unnamed_addr constant [5 x i8] c"owner" +@"$tpname_resolver_7709" = unnamed_addr constant [8 x i8] c"resolver" +@"$tparams_bestow_7710" = unnamed_addr constant [6 x %"$ParamDescr_7646"] [%"$ParamDescr_7646" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_7704", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_434" }, %"$ParamDescr_7646" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_7705", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_475" }, %"$ParamDescr_7646" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_7706", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_475" }, %"$ParamDescr_7646" { %ParamDescrString { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$tpname_label_7707", i32 0, i32 0), i32 5 }, %_TyDescrTy_Typ* @"$TyDescr_String_440" }, %"$ParamDescr_7646" { %ParamDescrString { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$tpname_owner_7708", i32 0, i32 0), i32 5 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr20_458" }, %"$ParamDescr_7646" { %ParamDescrString { i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$tpname_resolver_7709", i32 0, i32 0), i32 8 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr20_458" }] +@"$tname_bestow_7711" = unnamed_addr constant [6 x i8] c"bestow" +@"$tpname__amount_7712" = unnamed_addr constant [7 x i8] c"_amount" +@"$tpname__origin_7713" = unnamed_addr constant [7 x i8] c"_origin" +@"$tpname__sender_7714" = unnamed_addr constant [7 x i8] c"_sender" +@"$tpname_address_7715" = unnamed_addr constant [7 x i8] c"address" +@"$tparams_setRegistrar_7716" = unnamed_addr constant [4 x %"$ParamDescr_7646"] [%"$ParamDescr_7646" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_7712", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_434" }, %"$ParamDescr_7646" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_7713", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_475" }, %"$ParamDescr_7646" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_7714", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_475" }, %"$ParamDescr_7646" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname_address_7715", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr20_458" }] +@"$tname_setRegistrar_7717" = unnamed_addr constant [12 x i8] c"setRegistrar" +@"$tpname__amount_7718" = unnamed_addr constant [7 x i8] c"_amount" +@"$tpname__origin_7719" = unnamed_addr constant [7 x i8] c"_origin" +@"$tpname__sender_7720" = unnamed_addr constant [7 x i8] c"_sender" +@"$tpname_parent_7721" = unnamed_addr constant [6 x i8] c"parent" +@"$tpname_label_7722" = unnamed_addr constant [5 x i8] c"label" +@"$tparams_register_7723" = unnamed_addr constant [5 x %"$ParamDescr_7646"] [%"$ParamDescr_7646" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_7718", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_434" }, %"$ParamDescr_7646" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_7719", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_475" }, %"$ParamDescr_7646" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_7720", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_475" }, %"$ParamDescr_7646" { %ParamDescrString { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$tpname_parent_7721", i32 0, i32 0), i32 6 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr32_456" }, %"$ParamDescr_7646" { %ParamDescrString { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$tpname_label_7722", i32 0, i32 0), i32 5 }, %_TyDescrTy_Typ* @"$TyDescr_String_440" }] +@"$tname_register_7724" = unnamed_addr constant [8 x i8] c"register" +@"$tpname__amount_7725" = unnamed_addr constant [7 x i8] c"_amount" +@"$tpname__origin_7726" = unnamed_addr constant [7 x i8] c"_origin" +@"$tpname__sender_7727" = unnamed_addr constant [7 x i8] c"_sender" +@"$tpname_node_7728" = unnamed_addr constant [4 x i8] c"node" +@"$tparams_onResolverConfigured_7729" = unnamed_addr constant [4 x %"$ParamDescr_7646"] [%"$ParamDescr_7646" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_7725", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_434" }, %"$ParamDescr_7646" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_7726", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_475" }, %"$ParamDescr_7646" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_7727", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_475" }, %"$ParamDescr_7646" { %ParamDescrString { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$tpname_node_7728", i32 0, i32 0), i32 4 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr32_456" }] +@"$tname_onResolverConfigured_7730" = unnamed_addr constant [20 x i8] c"onResolverConfigured" +@_transition_parameters = constant [11 x %"$TransDescr_7647"] [%"$TransDescr_7647" { %ParamDescrString { i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$tname_setAdmin_7659", i32 0, i32 0), i32 8 }, i32 5, %"$ParamDescr_7646"* getelementptr inbounds ([5 x %"$ParamDescr_7646"], [5 x %"$ParamDescr_7646"]* @"$tparams_setAdmin_7658", i32 0, i32 0) }, %"$TransDescr_7647" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tname_approve_7666", i32 0, i32 0), i32 7 }, i32 5, %"$ParamDescr_7646"* getelementptr inbounds ([5 x %"$ParamDescr_7646"], [5 x %"$ParamDescr_7646"]* @"$tparams_approve_7665", i32 0, i32 0) }, %"$TransDescr_7647" { %ParamDescrString { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$tname_approveFor_7673", i32 0, i32 0), i32 10 }, i32 5, %"$ParamDescr_7646"* getelementptr inbounds ([5 x %"$ParamDescr_7646"], [5 x %"$ParamDescr_7646"]* @"$tparams_approveFor_7672", i32 0, i32 0) }, %"$TransDescr_7647" { %ParamDescrString { i8* getelementptr inbounds ([13 x i8], [13 x i8]* @"$tname_configureNode_7681", i32 0, i32 0), i32 13 }, i32 6, %"$ParamDescr_7646"* getelementptr inbounds ([6 x %"$ParamDescr_7646"], [6 x %"$ParamDescr_7646"]* @"$tparams_configureNode_7680", i32 0, i32 0) }, %"$TransDescr_7647" { %ParamDescrString { i8* getelementptr inbounds ([17 x i8], [17 x i8]* @"$tname_configureResolver_7688", i32 0, i32 0), i32 17 }, i32 5, %"$ParamDescr_7646"* getelementptr inbounds ([5 x %"$ParamDescr_7646"], [5 x %"$ParamDescr_7646"]* @"$tparams_configureResolver_7687", i32 0, i32 0) }, %"$TransDescr_7647" { %ParamDescrString { i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$tname_transfer_7695", i32 0, i32 0), i32 8 }, i32 5, %"$ParamDescr_7646"* getelementptr inbounds ([5 x %"$ParamDescr_7646"], [5 x %"$ParamDescr_7646"]* @"$tparams_transfer_7694", i32 0, i32 0) }, %"$TransDescr_7647" { %ParamDescrString { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$tname_assign_7703", i32 0, i32 0), i32 6 }, i32 6, %"$ParamDescr_7646"* getelementptr inbounds ([6 x %"$ParamDescr_7646"], [6 x %"$ParamDescr_7646"]* @"$tparams_assign_7702", i32 0, i32 0) }, %"$TransDescr_7647" { %ParamDescrString { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$tname_bestow_7711", i32 0, i32 0), i32 6 }, i32 6, %"$ParamDescr_7646"* getelementptr inbounds ([6 x %"$ParamDescr_7646"], [6 x %"$ParamDescr_7646"]* @"$tparams_bestow_7710", i32 0, i32 0) }, %"$TransDescr_7647" { %ParamDescrString { i8* getelementptr inbounds ([12 x i8], [12 x i8]* @"$tname_setRegistrar_7717", i32 0, i32 0), i32 12 }, i32 4, %"$ParamDescr_7646"* getelementptr inbounds ([4 x %"$ParamDescr_7646"], [4 x %"$ParamDescr_7646"]* @"$tparams_setRegistrar_7716", i32 0, i32 0) }, %"$TransDescr_7647" { %ParamDescrString { i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$tname_register_7724", i32 0, i32 0), i32 8 }, i32 5, %"$ParamDescr_7646"* getelementptr inbounds ([5 x %"$ParamDescr_7646"], [5 x %"$ParamDescr_7646"]* @"$tparams_register_7723", i32 0, i32 0) }, %"$TransDescr_7647" { %ParamDescrString { i8* getelementptr inbounds ([20 x i8], [20 x i8]* @"$tname_onResolverConfigured_7730", i32 0, i32 0), i32 20 }, i32 4, %"$ParamDescr_7646"* getelementptr inbounds ([4 x %"$ParamDescr_7646"], [4 x %"$ParamDescr_7646"]* @"$tparams_onResolverConfigured_7729", i32 0, i32 0) }] @_transition_parameters_length = constant i32 11 -define internal %TName_Bool* @"$fundef_261"(%"$$fundef_261_env_552"* %0, %"TName_Option_List_(ByStr20)"* %1) !dbg !4 { +define internal %TName_Bool* @"$fundef_261"(%"$$fundef_261_env_552"* %0, %"TName_Option_List_(ByStr20)"* %1) !dbg !3 { entry: - %"$$fundef_261_env_$BoolUtils.orb_18_3717" = getelementptr inbounds %"$$fundef_261_env_552", %"$$fundef_261_env_552"* %0, i32 0, i32 0 - %"$$BoolUtils.orb_18_envload_3718" = load { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }, { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }* %"$$fundef_261_env_$BoolUtils.orb_18_3717", align 8 + %"$maybeOperators_3945" = alloca %"TName_Option_List_(ByStr20)"*, align 8 + store %"TName_Option_List_(ByStr20)"* %1, %"TName_Option_List_(ByStr20)"** %"$maybeOperators_3945", align 8 + call void @llvm.dbg.declare(metadata %"TName_Option_List_(ByStr20)"** %"$maybeOperators_3945", metadata !8, metadata !DIExpression()), !dbg !11 + %"$$fundef_261_env_$BoolUtils.orb_18_3790" = getelementptr inbounds %"$$fundef_261_env_552", %"$$fundef_261_env_552"* %0, i32 0, i32 0 + %"$$BoolUtils.orb_18_envload_3791" = load { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }, { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }* %"$$fundef_261_env_$BoolUtils.orb_18_3790", align 8 %"$BoolUtils.orb_18" = 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_18_envload_3718", { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.orb_18", align 8 - %"$$fundef_261_env_$ud-registry.listByStr20Contains_17_3719" = getelementptr inbounds %"$$fundef_261_env_552", %"$$fundef_261_env_552"* %0, i32 0, i32 1 - %"$$ud-registry.listByStr20Contains_17_envload_3720" = 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_261_env_$ud-registry.listByStr20Contains_17_3719", align 8 + store { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.orb_18_envload_3791", { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.orb_18", align 8 + %"$$fundef_261_env_$ud-registry.listByStr20Contains_17_3792" = getelementptr inbounds %"$$fundef_261_env_552", %"$$fundef_261_env_552"* %0, i32 0, i32 1 + %"$$ud-registry.listByStr20Contains_17_envload_3793" = 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_261_env_$ud-registry.listByStr20Contains_17_3792", align 8 %"$ud-registry.listByStr20Contains_17" = 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_17_envload_3720", { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }* %"$ud-registry.listByStr20Contains_17", align 8 - %"$$fundef_261_env_maybeApproved_3721" = getelementptr inbounds %"$$fundef_261_env_552", %"$$fundef_261_env_552"* %0, i32 0, i32 2 - %"$maybeApproved_envload_3722" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %"$$fundef_261_env_maybeApproved_3721", align 8 + store { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } %"$$ud-registry.listByStr20Contains_17_envload_3793", { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }* %"$ud-registry.listByStr20Contains_17", align 8 + %"$$fundef_261_env_maybeApproved_3794" = getelementptr inbounds %"$$fundef_261_env_552", %"$$fundef_261_env_552"* %0, i32 0, i32 2 + %"$maybeApproved_envload_3795" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %"$$fundef_261_env_maybeApproved_3794", align 8 %maybeApproved = alloca %TName_Option_ByStr20*, align 8 - store %TName_Option_ByStr20* %"$maybeApproved_envload_3722", %TName_Option_ByStr20** %maybeApproved, align 8 - %"$$fundef_261_env_recordOwner_3723" = getelementptr inbounds %"$$fundef_261_env_552", %"$$fundef_261_env_552"* %0, i32 0, i32 3 - %"$recordOwner_envload_3724" = load [20 x i8], [20 x i8]* %"$$fundef_261_env_recordOwner_3723", align 1 + store %TName_Option_ByStr20* %"$maybeApproved_envload_3795", %TName_Option_ByStr20** %maybeApproved, align 8 + %"$$fundef_261_env_recordOwner_3796" = getelementptr inbounds %"$$fundef_261_env_552", %"$$fundef_261_env_552"* %0, i32 0, i32 3 + %"$recordOwner_envload_3797" = load [20 x i8], [20 x i8]* %"$$fundef_261_env_recordOwner_3796", align 1 %recordOwner = alloca [20 x i8], align 1 - store [20 x i8] %"$recordOwner_envload_3724", [20 x i8]* %recordOwner, align 1 - %"$$fundef_261_env_sender_3725" = getelementptr inbounds %"$$fundef_261_env_552", %"$$fundef_261_env_552"* %0, i32 0, i32 4 - %"$sender_envload_3726" = load [20 x i8], [20 x i8]* %"$$fundef_261_env_sender_3725", align 1 + store [20 x i8] %"$recordOwner_envload_3797", [20 x i8]* %recordOwner, align 1 + %"$$fundef_261_env_sender_3798" = getelementptr inbounds %"$$fundef_261_env_552", %"$$fundef_261_env_552"* %0, i32 0, i32 4 + %"$sender_envload_3799" = load [20 x i8], [20 x i8]* %"$$fundef_261_env_sender_3798", align 1 %sender = alloca [20 x i8], align 1 - store [20 x i8] %"$sender_envload_3726", [20 x i8]* %sender, align 1 + store [20 x i8] %"$sender_envload_3799", [20 x i8]* %sender, align 1 %"$retval_262" = alloca %TName_Bool*, 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" + call void @llvm.dbg.declare(metadata %TName_Bool** %"$retval_262", metadata !12, metadata !DIExpression()), !dbg !15 + %"$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" -"$out_of_gas_3729": ; preds = %entry +"$out_of_gas_3802": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_3730" + br label %"$have_gas_3803" -"$have_gas_3730": ; preds = %"$out_of_gas_3729", %entry - %"$consume_3731" = sub i64 %"$gasrem_3727", 1 - store i64 %"$consume_3731", i64* @_gasrem, align 8 +"$have_gas_3803": ; preds = %"$out_of_gas_3802", %entry + %"$consume_3804" = sub i64 %"$gasrem_3800", 1 + store i64 %"$consume_3804", i64* @_gasrem, align 8 %isOwner = alloca %TName_Bool*, align 8 - %"$gasrem_3732" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3733" = icmp ugt i64 20, %"$gasrem_3732" - br i1 %"$gascmp_3733", label %"$out_of_gas_3734", label %"$have_gas_3735" - -"$out_of_gas_3734": ; preds = %"$have_gas_3730" - call void @_out_of_gas() - br label %"$have_gas_3735" - -"$have_gas_3735": ; preds = %"$out_of_gas_3734", %"$have_gas_3730" - %"$consume_3736" = sub i64 %"$gasrem_3732", 20 - store i64 %"$consume_3736", i64* @_gasrem, align 8 - %"$execptr_load_3737" = load i8*, i8** @_execptr, align 8 - %"$eq_sender_3738" = alloca [20 x i8], align 1 - %"$sender_3739" = load [20 x i8], [20 x i8]* %sender, align 1 - store [20 x i8] %"$sender_3739", [20 x i8]* %"$eq_sender_3738", align 1 - %"$$eq_sender_3738_3740" = bitcast [20 x i8]* %"$eq_sender_3738" to i8* - %"$eq_recordOwner_3741" = alloca [20 x i8], align 1 - %"$recordOwner_3742" = load [20 x i8], [20 x i8]* %recordOwner, align 1 - store [20 x i8] %"$recordOwner_3742", [20 x i8]* %"$eq_recordOwner_3741", align 1 - %"$$eq_recordOwner_3741_3743" = bitcast [20 x i8]* %"$eq_recordOwner_3741" to i8* - %"$eq_call_3744" = call %TName_Bool* @_eq_ByStrX(i8* %"$execptr_load_3737", i32 20, i8* %"$$eq_sender_3738_3740", i8* %"$$eq_recordOwner_3741_3743"), !dbg !8 - store %TName_Bool* %"$eq_call_3744", %TName_Bool** %isOwner, align 8, !dbg !8 - %"$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_3748": ; preds = %"$have_gas_3735" - call void @_out_of_gas() - br label %"$have_gas_3749" - -"$have_gas_3749": ; preds = %"$out_of_gas_3748", %"$have_gas_3735" - %"$consume_3750" = sub i64 %"$gasrem_3746", 1 - store i64 %"$consume_3750", i64* @_gasrem, align 8 - %isApproved = alloca %TName_Bool*, align 8 - %"$gasrem_3751" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3752" = icmp ugt i64 2, %"$gasrem_3751" - br i1 %"$gascmp_3752", label %"$out_of_gas_3753", label %"$have_gas_3754" - -"$out_of_gas_3753": ; preds = %"$have_gas_3749" - call void @_out_of_gas() - br label %"$have_gas_3754" - -"$have_gas_3754": ; preds = %"$out_of_gas_3753", %"$have_gas_3749" - %"$consume_3755" = sub i64 %"$gasrem_3751", 2 - store i64 %"$consume_3755", i64* @_gasrem, align 8 - %"$maybeApproved_3757" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %maybeApproved, align 8 - %"$maybeApproved_tag_3758" = getelementptr inbounds %TName_Option_ByStr20, %TName_Option_ByStr20* %"$maybeApproved_3757", i32 0, i32 0 - %"$maybeApproved_tag_3759" = load i8, i8* %"$maybeApproved_tag_3758", align 1 - switch i8 %"$maybeApproved_tag_3759", label %"$empty_default_3760" [ - i8 1, label %"$None_3761" - i8 0, label %"$Some_3771" - ], !dbg !9 - -"$None_3761": ; preds = %"$have_gas_3754" - %"$maybeApproved_3762" = bitcast %TName_Option_ByStr20* %"$maybeApproved_3757" to %CName_None_ByStr20* - %"$gasrem_3763" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3764" = icmp ugt i64 1, %"$gasrem_3763" - br i1 %"$gascmp_3764", label %"$out_of_gas_3765", label %"$have_gas_3766" - -"$out_of_gas_3765": ; preds = %"$None_3761" - call void @_out_of_gas() - br label %"$have_gas_3766" - -"$have_gas_3766": ; preds = %"$out_of_gas_3765", %"$None_3761" - %"$consume_3767" = sub i64 %"$gasrem_3763", 1 - store i64 %"$consume_3767", i64* @_gasrem, align 8 - %"$adtval_3768_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_3768_salloc" = call i8* @_salloc(i8* %"$adtval_3768_load", i64 1) - %"$adtval_3768" = bitcast i8* %"$adtval_3768_salloc" to %CName_False* - %"$adtgep_3769" = getelementptr inbounds %CName_False, %CName_False* %"$adtval_3768", i32 0, i32 0 - store i8 1, i8* %"$adtgep_3769", align 1 - %"$adtptr_3770" = bitcast %CName_False* %"$adtval_3768" to %TName_Bool* - store %TName_Bool* %"$adtptr_3770", %TName_Bool** %isApproved, align 8, !dbg !10 - br label %"$matchsucc_3756" - -"$Some_3771": ; preds = %"$have_gas_3754" - %"$maybeApproved_3772" = bitcast %TName_Option_ByStr20* %"$maybeApproved_3757" to %CName_Some_ByStr20* - %"$approved_gep_3773" = getelementptr inbounds %CName_Some_ByStr20, %CName_Some_ByStr20* %"$maybeApproved_3772", i32 0, i32 1 - %"$approved_load_3774" = load [20 x i8], [20 x i8]* %"$approved_gep_3773", align 1 - %approved = alloca [20 x i8], align 1 - store [20 x i8] %"$approved_load_3774", [20 x i8]* %approved, align 1 - %"$gasrem_3775" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3776" = icmp ugt i64 20, %"$gasrem_3775" - br i1 %"$gascmp_3776", label %"$out_of_gas_3777", label %"$have_gas_3778" - -"$out_of_gas_3777": ; preds = %"$Some_3771" - call void @_out_of_gas() - br label %"$have_gas_3778" - -"$have_gas_3778": ; preds = %"$out_of_gas_3777", %"$Some_3771" - %"$consume_3779" = sub i64 %"$gasrem_3775", 20 - store i64 %"$consume_3779", i64* @_gasrem, align 8 - %"$execptr_load_3780" = load i8*, i8** @_execptr, align 8 - %"$eq_sender_3781" = alloca [20 x i8], align 1 - %"$sender_3782" = load [20 x i8], [20 x i8]* %sender, align 1 - store [20 x i8] %"$sender_3782", [20 x i8]* %"$eq_sender_3781", align 1 - %"$$eq_sender_3781_3783" = bitcast [20 x i8]* %"$eq_sender_3781" to i8* - %"$eq_approved_3784" = alloca [20 x i8], align 1 - %"$approved_3785" = load [20 x i8], [20 x i8]* %approved, align 1 - store [20 x i8] %"$approved_3785", [20 x i8]* %"$eq_approved_3784", align 1 - %"$$eq_approved_3784_3786" = bitcast [20 x i8]* %"$eq_approved_3784" to i8* - %"$eq_call_3787" = call %TName_Bool* @_eq_ByStrX(i8* %"$execptr_load_3780", i32 20, i8* %"$$eq_sender_3781_3783", i8* %"$$eq_approved_3784_3786"), !dbg !13 - store %TName_Bool* %"$eq_call_3787", %TName_Bool** %isApproved, align 8, !dbg !13 - br label %"$matchsucc_3756" - -"$empty_default_3760": ; preds = %"$have_gas_3754" - br label %"$matchsucc_3756" - -"$matchsucc_3756": ; preds = %"$have_gas_3778", %"$have_gas_3766", %"$empty_default_3760" - %"$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" - -"$out_of_gas_3791": ; preds = %"$matchsucc_3756" - call void @_out_of_gas() - br label %"$have_gas_3792" - -"$have_gas_3792": ; preds = %"$out_of_gas_3791", %"$matchsucc_3756" - %"$consume_3793" = sub i64 %"$gasrem_3789", 1 - store i64 %"$consume_3793", i64* @_gasrem, align 8 - %isOperator = alloca %TName_Bool*, align 8 - %"$gasrem_3794" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3795" = icmp ugt i64 2, %"$gasrem_3794" - br i1 %"$gascmp_3795", label %"$out_of_gas_3796", label %"$have_gas_3797" - -"$out_of_gas_3796": ; preds = %"$have_gas_3792" - call void @_out_of_gas() - br label %"$have_gas_3797" - -"$have_gas_3797": ; preds = %"$out_of_gas_3796", %"$have_gas_3792" - %"$consume_3798" = sub i64 %"$gasrem_3794", 2 - store i64 %"$consume_3798", i64* @_gasrem, align 8 - %"$maybeOperators_tag_3800" = getelementptr inbounds %"TName_Option_List_(ByStr20)", %"TName_Option_List_(ByStr20)"* %1, i32 0, i32 0 - %"$maybeOperators_tag_3801" = load i8, i8* %"$maybeOperators_tag_3800", align 1 - switch i8 %"$maybeOperators_tag_3801", label %"$empty_default_3802" [ - i8 1, label %"$None_3803" - i8 0, label %"$Some_3813" - ], !dbg !15 - -"$None_3803": ; preds = %"$have_gas_3797" - %"$maybeOperators_3804" = bitcast %"TName_Option_List_(ByStr20)"* %1 to %"CName_None_List_(ByStr20)"* + call void @llvm.dbg.declare(metadata %TName_Bool** %isOwner, metadata !16, metadata !DIExpression()), !dbg !17 %"$gasrem_3805" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3806" = icmp ugt i64 1, %"$gasrem_3805" + %"$gascmp_3806" = icmp ugt i64 20, %"$gasrem_3805" br i1 %"$gascmp_3806", label %"$out_of_gas_3807", label %"$have_gas_3808" -"$out_of_gas_3807": ; preds = %"$None_3803" +"$out_of_gas_3807": ; preds = %"$have_gas_3803" call void @_out_of_gas() br label %"$have_gas_3808" -"$have_gas_3808": ; preds = %"$out_of_gas_3807", %"$None_3803" - %"$consume_3809" = sub i64 %"$gasrem_3805", 1 +"$have_gas_3808": ; preds = %"$out_of_gas_3807", %"$have_gas_3803" + %"$consume_3809" = sub i64 %"$gasrem_3805", 20 store i64 %"$consume_3809", i64* @_gasrem, align 8 - %"$adtval_3810_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_3810_salloc" = call i8* @_salloc(i8* %"$adtval_3810_load", i64 1) - %"$adtval_3810" = bitcast i8* %"$adtval_3810_salloc" to %CName_False* - %"$adtgep_3811" = getelementptr inbounds %CName_False, %CName_False* %"$adtval_3810", i32 0, i32 0 - store i8 1, i8* %"$adtgep_3811", align 1 - %"$adtptr_3812" = bitcast %CName_False* %"$adtval_3810" to %TName_Bool* - store %TName_Bool* %"$adtptr_3812", %TName_Bool** %isOperator, align 8, !dbg !16 - br label %"$matchsucc_3799" - -"$Some_3813": ; preds = %"$have_gas_3797" - %"$maybeOperators_3814" = bitcast %"TName_Option_List_(ByStr20)"* %1 to %"CName_Some_List_(ByStr20)"* - %"$operators_gep_3815" = getelementptr inbounds %"CName_Some_List_(ByStr20)", %"CName_Some_List_(ByStr20)"* %"$maybeOperators_3814", i32 0, i32 1 - %"$operators_load_3816" = load %TName_List_ByStr20*, %TName_List_ByStr20** %"$operators_gep_3815", align 8 + %"$execptr_load_3810" = load i8*, i8** @_execptr, align 8 + %"$eq_sender_3811" = alloca [20 x i8], align 1 + %"$sender_3812" = load [20 x i8], [20 x i8]* %sender, align 1 + store [20 x i8] %"$sender_3812", [20 x i8]* %"$eq_sender_3811", align 1 + %"$$eq_sender_3811_3813" = bitcast [20 x i8]* %"$eq_sender_3811" to i8* + %"$eq_recordOwner_3814" = alloca [20 x i8], align 1 + %"$recordOwner_3815" = load [20 x i8], [20 x i8]* %recordOwner, align 1 + store [20 x i8] %"$recordOwner_3815", [20 x i8]* %"$eq_recordOwner_3814", align 1 + %"$$eq_recordOwner_3814_3816" = bitcast [20 x i8]* %"$eq_recordOwner_3814" to i8* + %"$eq_call_3817" = call %TName_Bool* @_eq_ByStrX(i8* %"$execptr_load_3810", i32 20, i8* %"$$eq_sender_3811_3813", i8* %"$$eq_recordOwner_3814_3816"), !dbg !18 + store %TName_Bool* %"$eq_call_3817", %TName_Bool** %isOwner, align 8, !dbg !18 + %"$gasrem_3819" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3820" = icmp ugt i64 1, %"$gasrem_3819" + br i1 %"$gascmp_3820", label %"$out_of_gas_3821", label %"$have_gas_3822" + +"$out_of_gas_3821": ; preds = %"$have_gas_3808" + call void @_out_of_gas() + br label %"$have_gas_3822" + +"$have_gas_3822": ; preds = %"$out_of_gas_3821", %"$have_gas_3808" + %"$consume_3823" = sub i64 %"$gasrem_3819", 1 + store i64 %"$consume_3823", i64* @_gasrem, align 8 + %isApproved = alloca %TName_Bool*, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %isApproved, metadata !19, metadata !DIExpression()), !dbg !20 + %"$gasrem_3824" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3825" = icmp ugt i64 2, %"$gasrem_3824" + br i1 %"$gascmp_3825", label %"$out_of_gas_3826", label %"$have_gas_3827" + +"$out_of_gas_3826": ; preds = %"$have_gas_3822" + call void @_out_of_gas() + br label %"$have_gas_3827" + +"$have_gas_3827": ; preds = %"$out_of_gas_3826", %"$have_gas_3822" + %"$consume_3828" = sub i64 %"$gasrem_3824", 2 + store i64 %"$consume_3828", i64* @_gasrem, align 8 + %"$maybeApproved_3830" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %maybeApproved, align 8 + %"$maybeApproved_tag_3831" = getelementptr inbounds %TName_Option_ByStr20, %TName_Option_ByStr20* %"$maybeApproved_3830", i32 0, i32 0 + %"$maybeApproved_tag_3832" = load i8, i8* %"$maybeApproved_tag_3831", align 1 + switch i8 %"$maybeApproved_tag_3832", label %"$empty_default_3833" [ + i8 1, label %"$None_3834" + i8 0, label %"$Some_3844" + ], !dbg !21 + +"$None_3834": ; preds = %"$have_gas_3827" + %"$maybeApproved_3835" = bitcast %TName_Option_ByStr20* %"$maybeApproved_3830" to %CName_None_ByStr20* + %"$gasrem_3836" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3837" = icmp ugt i64 1, %"$gasrem_3836" + br i1 %"$gascmp_3837", label %"$out_of_gas_3838", label %"$have_gas_3839" + +"$out_of_gas_3838": ; preds = %"$None_3834" + call void @_out_of_gas() + br label %"$have_gas_3839" + +"$have_gas_3839": ; preds = %"$out_of_gas_3838", %"$None_3834" + %"$consume_3840" = sub i64 %"$gasrem_3836", 1 + store i64 %"$consume_3840", i64* @_gasrem, align 8 + %"$adtval_3841_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_3841_salloc" = call i8* @_salloc(i8* %"$adtval_3841_load", i64 1) + %"$adtval_3841" = bitcast i8* %"$adtval_3841_salloc" to %CName_False* + %"$adtgep_3842" = getelementptr inbounds %CName_False, %CName_False* %"$adtval_3841", i32 0, i32 0 + store i8 1, i8* %"$adtgep_3842", align 1 + %"$adtptr_3843" = bitcast %CName_False* %"$adtval_3841" to %TName_Bool* + store %TName_Bool* %"$adtptr_3843", %TName_Bool** %isApproved, align 8, !dbg !22 + br label %"$matchsucc_3829" + +"$Some_3844": ; preds = %"$have_gas_3827" + %"$maybeApproved_3845" = bitcast %TName_Option_ByStr20* %"$maybeApproved_3830" to %CName_Some_ByStr20* + %"$approved_gep_3846" = getelementptr inbounds %CName_Some_ByStr20, %CName_Some_ByStr20* %"$maybeApproved_3845", i32 0, i32 1 + %"$approved_load_3847" = load [20 x i8], [20 x i8]* %"$approved_gep_3846", align 1 + %approved = alloca [20 x i8], align 1 + store [20 x i8] %"$approved_load_3847", [20 x i8]* %approved, align 1 + %"$gasrem_3848" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3849" = icmp ugt i64 20, %"$gasrem_3848" + br i1 %"$gascmp_3849", label %"$out_of_gas_3850", label %"$have_gas_3851" + +"$out_of_gas_3850": ; preds = %"$Some_3844" + call void @_out_of_gas() + br label %"$have_gas_3851" + +"$have_gas_3851": ; preds = %"$out_of_gas_3850", %"$Some_3844" + %"$consume_3852" = sub i64 %"$gasrem_3848", 20 + store i64 %"$consume_3852", i64* @_gasrem, align 8 + %"$execptr_load_3853" = load i8*, i8** @_execptr, align 8 + %"$eq_sender_3854" = alloca [20 x i8], align 1 + %"$sender_3855" = load [20 x i8], [20 x i8]* %sender, align 1 + store [20 x i8] %"$sender_3855", [20 x i8]* %"$eq_sender_3854", align 1 + %"$$eq_sender_3854_3856" = bitcast [20 x i8]* %"$eq_sender_3854" to i8* + %"$eq_approved_3857" = alloca [20 x i8], align 1 + %"$approved_3858" = load [20 x i8], [20 x i8]* %approved, align 1 + store [20 x i8] %"$approved_3858", [20 x i8]* %"$eq_approved_3857", align 1 + %"$$eq_approved_3857_3859" = bitcast [20 x i8]* %"$eq_approved_3857" to i8* + %"$eq_call_3860" = call %TName_Bool* @_eq_ByStrX(i8* %"$execptr_load_3853", i32 20, i8* %"$$eq_sender_3854_3856", i8* %"$$eq_approved_3857_3859"), !dbg !25 + store %TName_Bool* %"$eq_call_3860", %TName_Bool** %isApproved, align 8, !dbg !25 + br label %"$matchsucc_3829" + +"$empty_default_3833": ; preds = %"$have_gas_3827" + br label %"$matchsucc_3829" + +"$matchsucc_3829": ; preds = %"$have_gas_3851", %"$have_gas_3839", %"$empty_default_3833" + %"$gasrem_3862" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3863" = icmp ugt i64 1, %"$gasrem_3862" + br i1 %"$gascmp_3863", label %"$out_of_gas_3864", label %"$have_gas_3865" + +"$out_of_gas_3864": ; preds = %"$matchsucc_3829" + call void @_out_of_gas() + br label %"$have_gas_3865" + +"$have_gas_3865": ; preds = %"$out_of_gas_3864", %"$matchsucc_3829" + %"$consume_3866" = sub i64 %"$gasrem_3862", 1 + store i64 %"$consume_3866", i64* @_gasrem, align 8 + %isOperator = alloca %TName_Bool*, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %isOperator, metadata !27, metadata !DIExpression()), !dbg !28 + %"$gasrem_3867" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3868" = icmp ugt i64 2, %"$gasrem_3867" + br i1 %"$gascmp_3868", label %"$out_of_gas_3869", label %"$have_gas_3870" + +"$out_of_gas_3869": ; preds = %"$have_gas_3865" + call void @_out_of_gas() + br label %"$have_gas_3870" + +"$have_gas_3870": ; preds = %"$out_of_gas_3869", %"$have_gas_3865" + %"$consume_3871" = sub i64 %"$gasrem_3867", 2 + store i64 %"$consume_3871", i64* @_gasrem, align 8 + %"$maybeOperators_tag_3873" = getelementptr inbounds %"TName_Option_List_(ByStr20)", %"TName_Option_List_(ByStr20)"* %1, i32 0, i32 0 + %"$maybeOperators_tag_3874" = load i8, i8* %"$maybeOperators_tag_3873", align 1 + switch i8 %"$maybeOperators_tag_3874", label %"$empty_default_3875" [ + i8 1, label %"$None_3876" + i8 0, label %"$Some_3886" + ], !dbg !29 + +"$None_3876": ; preds = %"$have_gas_3870" + %"$maybeOperators_3877" = bitcast %"TName_Option_List_(ByStr20)"* %1 to %"CName_None_List_(ByStr20)"* + %"$gasrem_3878" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3879" = icmp ugt i64 1, %"$gasrem_3878" + br i1 %"$gascmp_3879", label %"$out_of_gas_3880", label %"$have_gas_3881" + +"$out_of_gas_3880": ; preds = %"$None_3876" + call void @_out_of_gas() + br label %"$have_gas_3881" + +"$have_gas_3881": ; preds = %"$out_of_gas_3880", %"$None_3876" + %"$consume_3882" = sub i64 %"$gasrem_3878", 1 + store i64 %"$consume_3882", i64* @_gasrem, align 8 + %"$adtval_3883_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_3883_salloc" = call i8* @_salloc(i8* %"$adtval_3883_load", i64 1) + %"$adtval_3883" = bitcast i8* %"$adtval_3883_salloc" to %CName_False* + %"$adtgep_3884" = getelementptr inbounds %CName_False, %CName_False* %"$adtval_3883", i32 0, i32 0 + store i8 1, i8* %"$adtgep_3884", align 1 + %"$adtptr_3885" = bitcast %CName_False* %"$adtval_3883" to %TName_Bool* + store %TName_Bool* %"$adtptr_3885", %TName_Bool** %isOperator, align 8, !dbg !30 + br label %"$matchsucc_3872" + +"$Some_3886": ; preds = %"$have_gas_3870" + %"$maybeOperators_3887" = bitcast %"TName_Option_List_(ByStr20)"* %1 to %"CName_Some_List_(ByStr20)"* + %"$operators_gep_3888" = getelementptr inbounds %"CName_Some_List_(ByStr20)", %"CName_Some_List_(ByStr20)"* %"$maybeOperators_3887", i32 0, i32 1 + %"$operators_load_3889" = load %TName_List_ByStr20*, %TName_List_ByStr20** %"$operators_gep_3888", align 8 %operators = alloca %TName_List_ByStr20*, align 8 - store %TName_List_ByStr20* %"$operators_load_3816", %TName_List_ByStr20** %operators, 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" + store %TName_List_ByStr20* %"$operators_load_3889", %TName_List_ByStr20** %operators, align 8 + %"$gasrem_3890" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3891" = icmp ugt i64 1, %"$gasrem_3890" + br i1 %"$gascmp_3891", label %"$out_of_gas_3892", label %"$have_gas_3893" -"$out_of_gas_3819": ; preds = %"$Some_3813" +"$out_of_gas_3892": ; preds = %"$Some_3886" call void @_out_of_gas() - br label %"$have_gas_3820" + br label %"$have_gas_3893" -"$have_gas_3820": ; preds = %"$out_of_gas_3819", %"$Some_3813" - %"$consume_3821" = sub i64 %"$gasrem_3817", 1 - store i64 %"$consume_3821", i64* @_gasrem, align 8 +"$have_gas_3893": ; preds = %"$out_of_gas_3892", %"$Some_3886" + %"$consume_3894" = sub i64 %"$gasrem_3890", 1 + store i64 %"$consume_3894", i64* @_gasrem, align 8 %"$$ud-registry.listByStr20Contains_17_92" = alloca { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, align 8 - %"$$ud-registry.listByStr20Contains_17_3822" = 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_17", align 8 - %"$$ud-registry.listByStr20Contains_17_fptr_3823" = extractvalue { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } %"$$ud-registry.listByStr20Contains_17_3822", 0 - %"$$ud-registry.listByStr20Contains_17_envptr_3824" = extractvalue { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } %"$$ud-registry.listByStr20Contains_17_3822", 1 - %"$operators_3825" = load %TName_List_ByStr20*, %TName_List_ByStr20** %operators, align 8 - %"$$ud-registry.listByStr20Contains_17_call_3826" = call { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.listByStr20Contains_17_fptr_3823"(i8* %"$$ud-registry.listByStr20Contains_17_envptr_3824", %TName_List_ByStr20* %"$operators_3825"), !dbg !19 - store { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.listByStr20Contains_17_call_3826", { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %"$$ud-registry.listByStr20Contains_17_92", align 8, !dbg !19 + %"$$ud-registry.listByStr20Contains_17_3895" = 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_17", align 8 + %"$$ud-registry.listByStr20Contains_17_fptr_3896" = extractvalue { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } %"$$ud-registry.listByStr20Contains_17_3895", 0 + %"$$ud-registry.listByStr20Contains_17_envptr_3897" = extractvalue { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } %"$$ud-registry.listByStr20Contains_17_3895", 1 + %"$operators_3898" = load %TName_List_ByStr20*, %TName_List_ByStr20** %operators, align 8 + %"$$ud-registry.listByStr20Contains_17_call_3899" = call { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.listByStr20Contains_17_fptr_3896"(i8* %"$$ud-registry.listByStr20Contains_17_envptr_3897", %TName_List_ByStr20* %"$operators_3898"), !dbg !33 + store { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.listByStr20Contains_17_call_3899", { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %"$$ud-registry.listByStr20Contains_17_92", align 8, !dbg !33 %"$$ud-registry.listByStr20Contains_17_93" = alloca %TName_Bool*, align 8 - %"$$$ud-registry.listByStr20Contains_17_92_3827" = load { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %"$$ud-registry.listByStr20Contains_17_92", align 8 - %"$$$ud-registry.listByStr20Contains_17_92_fptr_3828" = extractvalue { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$$$ud-registry.listByStr20Contains_17_92_3827", 0 - %"$$$ud-registry.listByStr20Contains_17_92_envptr_3829" = extractvalue { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$$$ud-registry.listByStr20Contains_17_92_3827", 1 - %"$$$ud-registry.listByStr20Contains_17_92_sender_3830" = alloca [20 x i8], align 1 - %"$sender_3831" = load [20 x i8], [20 x i8]* %sender, align 1 - store [20 x i8] %"$sender_3831", [20 x i8]* %"$$$ud-registry.listByStr20Contains_17_92_sender_3830", align 1 - %"$$$ud-registry.listByStr20Contains_17_92_call_3832" = call %TName_Bool* %"$$$ud-registry.listByStr20Contains_17_92_fptr_3828"(i8* %"$$$ud-registry.listByStr20Contains_17_92_envptr_3829", [20 x i8]* %"$$$ud-registry.listByStr20Contains_17_92_sender_3830"), !dbg !19 - store %TName_Bool* %"$$$ud-registry.listByStr20Contains_17_92_call_3832", %TName_Bool** %"$$ud-registry.listByStr20Contains_17_93", align 8, !dbg !19 - %"$$$ud-registry.listByStr20Contains_17_93_3833" = load %TName_Bool*, %TName_Bool** %"$$ud-registry.listByStr20Contains_17_93", align 8 - store %TName_Bool* %"$$$ud-registry.listByStr20Contains_17_93_3833", %TName_Bool** %isOperator, align 8, !dbg !19 - br label %"$matchsucc_3799" - -"$empty_default_3802": ; preds = %"$have_gas_3797" - br label %"$matchsucc_3799" - -"$matchsucc_3799": ; preds = %"$have_gas_3820", %"$have_gas_3808", %"$empty_default_3802" - %"$gasrem_3834" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3835" = icmp ugt i64 1, %"$gasrem_3834" - br i1 %"$gascmp_3835", label %"$out_of_gas_3836", label %"$have_gas_3837" - -"$out_of_gas_3836": ; preds = %"$matchsucc_3799" - call void @_out_of_gas() - br label %"$have_gas_3837" - -"$have_gas_3837": ; preds = %"$out_of_gas_3836", %"$matchsucc_3799" - %"$consume_3838" = sub i64 %"$gasrem_3834", 1 - store i64 %"$consume_3838", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$$ud-registry.listByStr20Contains_17_93", metadata !35, metadata !DIExpression()), !dbg !33 + %"$$$ud-registry.listByStr20Contains_17_92_3900" = load { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %"$$ud-registry.listByStr20Contains_17_92", align 8 + %"$$$ud-registry.listByStr20Contains_17_92_fptr_3901" = extractvalue { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$$$ud-registry.listByStr20Contains_17_92_3900", 0 + %"$$$ud-registry.listByStr20Contains_17_92_envptr_3902" = extractvalue { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$$$ud-registry.listByStr20Contains_17_92_3900", 1 + %"$$$ud-registry.listByStr20Contains_17_92_sender_3903" = alloca [20 x i8], align 1 + %"$sender_3904" = load [20 x i8], [20 x i8]* %sender, align 1 + store [20 x i8] %"$sender_3904", [20 x i8]* %"$$$ud-registry.listByStr20Contains_17_92_sender_3903", align 1 + %"$$$ud-registry.listByStr20Contains_17_92_call_3905" = call %TName_Bool* %"$$$ud-registry.listByStr20Contains_17_92_fptr_3901"(i8* %"$$$ud-registry.listByStr20Contains_17_92_envptr_3902", [20 x i8]* %"$$$ud-registry.listByStr20Contains_17_92_sender_3903"), !dbg !33 + store %TName_Bool* %"$$$ud-registry.listByStr20Contains_17_92_call_3905", %TName_Bool** %"$$ud-registry.listByStr20Contains_17_93", align 8, !dbg !33 + %"$$$ud-registry.listByStr20Contains_17_93_3906" = load %TName_Bool*, %TName_Bool** %"$$ud-registry.listByStr20Contains_17_93", align 8 + store %TName_Bool* %"$$$ud-registry.listByStr20Contains_17_93_3906", %TName_Bool** %isOperator, align 8, !dbg !33 + br label %"$matchsucc_3872" + +"$empty_default_3875": ; preds = %"$have_gas_3870" + br label %"$matchsucc_3872" + +"$matchsucc_3872": ; preds = %"$have_gas_3893", %"$have_gas_3881", %"$empty_default_3875" + %"$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" + +"$out_of_gas_3909": ; preds = %"$matchsucc_3872" + call void @_out_of_gas() + br label %"$have_gas_3910" + +"$have_gas_3910": ; preds = %"$out_of_gas_3909", %"$matchsucc_3872" + %"$consume_3911" = sub i64 %"$gasrem_3907", 1 + store i64 %"$consume_3911", i64* @_gasrem, align 8 %b1 = alloca %TName_Bool*, 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" + call void @llvm.dbg.declare(metadata %TName_Bool** %b1, metadata !36, metadata !DIExpression()), !dbg !37 + %"$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" -"$out_of_gas_3841": ; preds = %"$have_gas_3837" +"$out_of_gas_3914": ; preds = %"$have_gas_3910" call void @_out_of_gas() - br label %"$have_gas_3842" + br label %"$have_gas_3915" -"$have_gas_3842": ; preds = %"$out_of_gas_3841", %"$have_gas_3837" - %"$consume_3843" = sub i64 %"$gasrem_3839", 1 - store i64 %"$consume_3843", i64* @_gasrem, align 8 +"$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 %"$$BoolUtils.orb_18_94" = alloca { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, align 8 - %"$$BoolUtils.orb_18_3844" = load { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }, { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.orb_18", align 8 - %"$$BoolUtils.orb_18_fptr_3845" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.orb_18_3844", 0 - %"$$BoolUtils.orb_18_envptr_3846" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.orb_18_3844", 1 - %"$isOwner_3847" = load %TName_Bool*, %TName_Bool** %isOwner, align 8 - %"$$BoolUtils.orb_18_call_3848" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.orb_18_fptr_3845"(i8* %"$$BoolUtils.orb_18_envptr_3846", %TName_Bool* %"$isOwner_3847"), !dbg !21 - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.orb_18_call_3848", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$$BoolUtils.orb_18_94", align 8, !dbg !21 + %"$$BoolUtils.orb_18_3917" = load { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }, { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.orb_18", align 8 + %"$$BoolUtils.orb_18_fptr_3918" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.orb_18_3917", 0 + %"$$BoolUtils.orb_18_envptr_3919" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.orb_18_3917", 1 + %"$isOwner_3920" = load %TName_Bool*, %TName_Bool** %isOwner, align 8 + %"$$BoolUtils.orb_18_call_3921" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.orb_18_fptr_3918"(i8* %"$$BoolUtils.orb_18_envptr_3919", %TName_Bool* %"$isOwner_3920"), !dbg !38 + store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.orb_18_call_3921", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$$BoolUtils.orb_18_94", align 8, !dbg !38 %"$$BoolUtils.orb_18_95" = alloca %TName_Bool*, align 8 - %"$$$BoolUtils.orb_18_94_3849" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$$BoolUtils.orb_18_94", align 8 - %"$$$BoolUtils.orb_18_94_fptr_3850" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$$BoolUtils.orb_18_94_3849", 0 - %"$$$BoolUtils.orb_18_94_envptr_3851" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$$BoolUtils.orb_18_94_3849", 1 - %"$isApproved_3852" = load %TName_Bool*, %TName_Bool** %isApproved, align 8 - %"$$$BoolUtils.orb_18_94_call_3853" = call %TName_Bool* %"$$$BoolUtils.orb_18_94_fptr_3850"(i8* %"$$$BoolUtils.orb_18_94_envptr_3851", %TName_Bool* %"$isApproved_3852"), !dbg !21 - store %TName_Bool* %"$$$BoolUtils.orb_18_94_call_3853", %TName_Bool** %"$$BoolUtils.orb_18_95", align 8, !dbg !21 - %"$$$BoolUtils.orb_18_95_3854" = load %TName_Bool*, %TName_Bool** %"$$BoolUtils.orb_18_95", align 8 - store %TName_Bool* %"$$$BoolUtils.orb_18_95_3854", %TName_Bool** %b1, align 8, !dbg !21 - %"$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" - -"$out_of_gas_3857": ; preds = %"$have_gas_3842" - call void @_out_of_gas() - br label %"$have_gas_3858" - -"$have_gas_3858": ; preds = %"$out_of_gas_3857", %"$have_gas_3842" - %"$consume_3859" = sub i64 %"$gasrem_3855", 1 - store i64 %"$consume_3859", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$$BoolUtils.orb_18_95", metadata !39, metadata !DIExpression()), !dbg !38 + %"$$$BoolUtils.orb_18_94_3922" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$$BoolUtils.orb_18_94", align 8 + %"$$$BoolUtils.orb_18_94_fptr_3923" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$$BoolUtils.orb_18_94_3922", 0 + %"$$$BoolUtils.orb_18_94_envptr_3924" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$$BoolUtils.orb_18_94_3922", 1 + %"$isApproved_3925" = load %TName_Bool*, %TName_Bool** %isApproved, align 8 + %"$$$BoolUtils.orb_18_94_call_3926" = call %TName_Bool* %"$$$BoolUtils.orb_18_94_fptr_3923"(i8* %"$$$BoolUtils.orb_18_94_envptr_3924", %TName_Bool* %"$isApproved_3925"), !dbg !38 + store %TName_Bool* %"$$$BoolUtils.orb_18_94_call_3926", %TName_Bool** %"$$BoolUtils.orb_18_95", align 8, !dbg !38 + %"$$$BoolUtils.orb_18_95_3927" = load %TName_Bool*, %TName_Bool** %"$$BoolUtils.orb_18_95", align 8 + store %TName_Bool* %"$$$BoolUtils.orb_18_95_3927", %TName_Bool** %b1, align 8, !dbg !38 + %"$gasrem_3928" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3929" = icmp ugt i64 1, %"$gasrem_3928" + br i1 %"$gascmp_3929", label %"$out_of_gas_3930", label %"$have_gas_3931" + +"$out_of_gas_3930": ; preds = %"$have_gas_3915" + call void @_out_of_gas() + br label %"$have_gas_3931" + +"$have_gas_3931": ; preds = %"$out_of_gas_3930", %"$have_gas_3915" + %"$consume_3932" = sub i64 %"$gasrem_3928", 1 + store i64 %"$consume_3932", i64* @_gasrem, align 8 %"$$BoolUtils.orb_18_96" = alloca { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, align 8 - %"$$BoolUtils.orb_18_3860" = load { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }, { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.orb_18", align 8 - %"$$BoolUtils.orb_18_fptr_3861" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.orb_18_3860", 0 - %"$$BoolUtils.orb_18_envptr_3862" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.orb_18_3860", 1 - %"$b1_3863" = load %TName_Bool*, %TName_Bool** %b1, align 8 - %"$$BoolUtils.orb_18_call_3864" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.orb_18_fptr_3861"(i8* %"$$BoolUtils.orb_18_envptr_3862", %TName_Bool* %"$b1_3863"), !dbg !22 - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.orb_18_call_3864", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$$BoolUtils.orb_18_96", align 8, !dbg !22 + %"$$BoolUtils.orb_18_3933" = load { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }, { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.orb_18", align 8 + %"$$BoolUtils.orb_18_fptr_3934" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.orb_18_3933", 0 + %"$$BoolUtils.orb_18_envptr_3935" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.orb_18_3933", 1 + %"$b1_3936" = load %TName_Bool*, %TName_Bool** %b1, align 8 + %"$$BoolUtils.orb_18_call_3937" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.orb_18_fptr_3934"(i8* %"$$BoolUtils.orb_18_envptr_3935", %TName_Bool* %"$b1_3936"), !dbg !40 + store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.orb_18_call_3937", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$$BoolUtils.orb_18_96", align 8, !dbg !40 %"$$BoolUtils.orb_18_97" = alloca %TName_Bool*, align 8 - %"$$$BoolUtils.orb_18_96_3865" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$$BoolUtils.orb_18_96", align 8 - %"$$$BoolUtils.orb_18_96_fptr_3866" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$$BoolUtils.orb_18_96_3865", 0 - %"$$$BoolUtils.orb_18_96_envptr_3867" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$$BoolUtils.orb_18_96_3865", 1 - %"$isOperator_3868" = load %TName_Bool*, %TName_Bool** %isOperator, align 8 - %"$$$BoolUtils.orb_18_96_call_3869" = call %TName_Bool* %"$$$BoolUtils.orb_18_96_fptr_3866"(i8* %"$$$BoolUtils.orb_18_96_envptr_3867", %TName_Bool* %"$isOperator_3868"), !dbg !22 - store %TName_Bool* %"$$$BoolUtils.orb_18_96_call_3869", %TName_Bool** %"$$BoolUtils.orb_18_97", align 8, !dbg !22 - %"$$$BoolUtils.orb_18_97_3870" = load %TName_Bool*, %TName_Bool** %"$$BoolUtils.orb_18_97", align 8 - store %TName_Bool* %"$$$BoolUtils.orb_18_97_3870", %TName_Bool** %"$retval_262", align 8, !dbg !22 - %"$$retval_262_3871" = load %TName_Bool*, %TName_Bool** %"$retval_262", align 8 - ret %TName_Bool* %"$$retval_262_3871" -} - -define internal { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } @"$fundef_259"(%"$$fundef_259_env_553"* %0, %TName_Option_ByStr20* %1) !dbg !23 { -entry: - %"$$fundef_259_env_$BoolUtils.orb_18_3690" = getelementptr inbounds %"$$fundef_259_env_553", %"$$fundef_259_env_553"* %0, i32 0, i32 0 - %"$$BoolUtils.orb_18_envload_3691" = load { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }, { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }* %"$$fundef_259_env_$BoolUtils.orb_18_3690", align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$$BoolUtils.orb_18_97", metadata !41, metadata !DIExpression()), !dbg !40 + %"$$$BoolUtils.orb_18_96_3938" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$$BoolUtils.orb_18_96", align 8 + %"$$$BoolUtils.orb_18_96_fptr_3939" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$$BoolUtils.orb_18_96_3938", 0 + %"$$$BoolUtils.orb_18_96_envptr_3940" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$$BoolUtils.orb_18_96_3938", 1 + %"$isOperator_3941" = load %TName_Bool*, %TName_Bool** %isOperator, align 8 + %"$$$BoolUtils.orb_18_96_call_3942" = call %TName_Bool* %"$$$BoolUtils.orb_18_96_fptr_3939"(i8* %"$$$BoolUtils.orb_18_96_envptr_3940", %TName_Bool* %"$isOperator_3941"), !dbg !40 + store %TName_Bool* %"$$$BoolUtils.orb_18_96_call_3942", %TName_Bool** %"$$BoolUtils.orb_18_97", align 8, !dbg !40 + %"$$$BoolUtils.orb_18_97_3943" = load %TName_Bool*, %TName_Bool** %"$$BoolUtils.orb_18_97", align 8 + store %TName_Bool* %"$$$BoolUtils.orb_18_97_3943", %TName_Bool** %"$retval_262", align 8, !dbg !40 + %"$$retval_262_3944" = load %TName_Bool*, %TName_Bool** %"$retval_262", align 8 + ret %TName_Bool* %"$$retval_262_3944" +} + +define internal { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } @"$fundef_259"(%"$$fundef_259_env_553"* %0, %TName_Option_ByStr20* %1) !dbg !42 { +entry: + %"$maybeApproved_3789" = alloca %TName_Option_ByStr20*, align 8 + store %TName_Option_ByStr20* %1, %TName_Option_ByStr20** %"$maybeApproved_3789", align 8 + call void @llvm.dbg.declare(metadata %TName_Option_ByStr20** %"$maybeApproved_3789", metadata !43, metadata !DIExpression()), !dbg !46 + %"$$fundef_259_env_$BoolUtils.orb_18_3762" = getelementptr inbounds %"$$fundef_259_env_553", %"$$fundef_259_env_553"* %0, i32 0, i32 0 + %"$$BoolUtils.orb_18_envload_3763" = load { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }, { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }* %"$$fundef_259_env_$BoolUtils.orb_18_3762", align 8 %"$BoolUtils.orb_18" = 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_18_envload_3691", { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.orb_18", align 8 - %"$$fundef_259_env_$ud-registry.listByStr20Contains_17_3692" = getelementptr inbounds %"$$fundef_259_env_553", %"$$fundef_259_env_553"* %0, i32 0, i32 1 - %"$$ud-registry.listByStr20Contains_17_envload_3693" = 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_259_env_$ud-registry.listByStr20Contains_17_3692", align 8 + store { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.orb_18_envload_3763", { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.orb_18", align 8 + %"$$fundef_259_env_$ud-registry.listByStr20Contains_17_3764" = getelementptr inbounds %"$$fundef_259_env_553", %"$$fundef_259_env_553"* %0, i32 0, i32 1 + %"$$ud-registry.listByStr20Contains_17_envload_3765" = 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_259_env_$ud-registry.listByStr20Contains_17_3764", align 8 %"$ud-registry.listByStr20Contains_17" = 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_17_envload_3693", { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }* %"$ud-registry.listByStr20Contains_17", align 8 - %"$$fundef_259_env_recordOwner_3694" = getelementptr inbounds %"$$fundef_259_env_553", %"$$fundef_259_env_553"* %0, i32 0, i32 2 - %"$recordOwner_envload_3695" = load [20 x i8], [20 x i8]* %"$$fundef_259_env_recordOwner_3694", align 1 + store { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } %"$$ud-registry.listByStr20Contains_17_envload_3765", { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }* %"$ud-registry.listByStr20Contains_17", align 8 + %"$$fundef_259_env_recordOwner_3766" = getelementptr inbounds %"$$fundef_259_env_553", %"$$fundef_259_env_553"* %0, i32 0, i32 2 + %"$recordOwner_envload_3767" = load [20 x i8], [20 x i8]* %"$$fundef_259_env_recordOwner_3766", align 1 %recordOwner = alloca [20 x i8], align 1 - store [20 x i8] %"$recordOwner_envload_3695", [20 x i8]* %recordOwner, align 1 - %"$$fundef_259_env_sender_3696" = getelementptr inbounds %"$$fundef_259_env_553", %"$$fundef_259_env_553"* %0, i32 0, i32 3 - %"$sender_envload_3697" = load [20 x i8], [20 x i8]* %"$$fundef_259_env_sender_3696", align 1 + store [20 x i8] %"$recordOwner_envload_3767", [20 x i8]* %recordOwner, align 1 + %"$$fundef_259_env_sender_3768" = getelementptr inbounds %"$$fundef_259_env_553", %"$$fundef_259_env_553"* %0, i32 0, i32 3 + %"$sender_envload_3769" = load [20 x i8], [20 x i8]* %"$$fundef_259_env_sender_3768", align 1 %sender = alloca [20 x i8], align 1 - store [20 x i8] %"$sender_envload_3697", [20 x i8]* %sender, align 1 + store [20 x i8] %"$sender_envload_3769", [20 x i8]* %sender, align 1 %"$retval_260" = alloca { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* }, align 8 - %"$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 = %entry - call void @_out_of_gas() - br label %"$have_gas_3701" - -"$have_gas_3701": ; preds = %"$out_of_gas_3700", %entry - %"$consume_3702" = sub i64 %"$gasrem_3698", 1 - store i64 %"$consume_3702", i64* @_gasrem, align 8 - %"$$fundef_261_envp_3703_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_261_envp_3703_salloc" = call i8* @_salloc(i8* %"$$fundef_261_envp_3703_load", i64 80) - %"$$fundef_261_envp_3703" = bitcast i8* %"$$fundef_261_envp_3703_salloc" to %"$$fundef_261_env_552"* - %"$$fundef_261_env_voidp_3705" = bitcast %"$$fundef_261_env_552"* %"$$fundef_261_envp_3703" to i8* - %"$$fundef_261_cloval_3706" = insertvalue { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)* bitcast (%TName_Bool* (%"$$fundef_261_env_552"*, %"TName_Option_List_(ByStr20)"*)* @"$fundef_261" to %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*), i8* undef }, i8* %"$$fundef_261_env_voidp_3705", 1 - %"$$fundef_261_env_$BoolUtils.orb_18_3707" = getelementptr inbounds %"$$fundef_261_env_552", %"$$fundef_261_env_552"* %"$$fundef_261_envp_3703", i32 0, i32 0 - %"$$BoolUtils.orb_18_3708" = load { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }, { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.orb_18", align 8 - store { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.orb_18_3708", { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }* %"$$fundef_261_env_$BoolUtils.orb_18_3707", align 8 - %"$$fundef_261_env_$ud-registry.listByStr20Contains_17_3709" = getelementptr inbounds %"$$fundef_261_env_552", %"$$fundef_261_env_552"* %"$$fundef_261_envp_3703", i32 0, i32 1 - %"$$ud-registry.listByStr20Contains_17_3710" = 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_17", align 8 - store { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } %"$$ud-registry.listByStr20Contains_17_3710", { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }* %"$$fundef_261_env_$ud-registry.listByStr20Contains_17_3709", align 8 - %"$$fundef_261_env_maybeApproved_3711" = getelementptr inbounds %"$$fundef_261_env_552", %"$$fundef_261_env_552"* %"$$fundef_261_envp_3703", i32 0, i32 2 - store %TName_Option_ByStr20* %1, %TName_Option_ByStr20** %"$$fundef_261_env_maybeApproved_3711", align 8 - %"$$fundef_261_env_recordOwner_3712" = getelementptr inbounds %"$$fundef_261_env_552", %"$$fundef_261_env_552"* %"$$fundef_261_envp_3703", i32 0, i32 3 - %"$recordOwner_3713" = load [20 x i8], [20 x i8]* %recordOwner, align 1 - store [20 x i8] %"$recordOwner_3713", [20 x i8]* %"$$fundef_261_env_recordOwner_3712", align 1 - %"$$fundef_261_env_sender_3714" = getelementptr inbounds %"$$fundef_261_env_552", %"$$fundef_261_env_552"* %"$$fundef_261_envp_3703", i32 0, i32 4 - %"$sender_3715" = load [20 x i8], [20 x i8]* %sender, align 1 - store [20 x i8] %"$sender_3715", [20 x i8]* %"$$fundef_261_env_sender_3714", align 1 - store { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } %"$$fundef_261_cloval_3706", { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* }* %"$retval_260", align 8, !dbg !24 - %"$$retval_260_3716" = load { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* }, { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* }* %"$retval_260", align 8 - ret { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } %"$$retval_260_3716" -} - -define internal { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } @"$fundef_257"(%"$$fundef_257_env_554"* %0, [20 x i8]* %1) !dbg !25 { -entry: + %"$gasrem_3770" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3771" = icmp ugt i64 1, %"$gasrem_3770" + br i1 %"$gascmp_3771", label %"$out_of_gas_3772", label %"$have_gas_3773" + +"$out_of_gas_3772": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_3773" + +"$have_gas_3773": ; preds = %"$out_of_gas_3772", %entry + %"$consume_3774" = sub i64 %"$gasrem_3770", 1 + store i64 %"$consume_3774", i64* @_gasrem, align 8 + %"$$fundef_261_envp_3775_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_261_envp_3775_salloc" = call i8* @_salloc(i8* %"$$fundef_261_envp_3775_load", i64 80) + %"$$fundef_261_envp_3775" = bitcast i8* %"$$fundef_261_envp_3775_salloc" to %"$$fundef_261_env_552"* + %"$$fundef_261_env_voidp_3777" = bitcast %"$$fundef_261_env_552"* %"$$fundef_261_envp_3775" to i8* + %"$$fundef_261_cloval_3778" = insertvalue { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)* bitcast (%TName_Bool* (%"$$fundef_261_env_552"*, %"TName_Option_List_(ByStr20)"*)* @"$fundef_261" to %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*), i8* undef }, i8* %"$$fundef_261_env_voidp_3777", 1 + %"$$fundef_261_env_$BoolUtils.orb_18_3779" = getelementptr inbounds %"$$fundef_261_env_552", %"$$fundef_261_env_552"* %"$$fundef_261_envp_3775", i32 0, i32 0 + %"$$BoolUtils.orb_18_3780" = load { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }, { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.orb_18", align 8 + store { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.orb_18_3780", { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }* %"$$fundef_261_env_$BoolUtils.orb_18_3779", align 8 + %"$$fundef_261_env_$ud-registry.listByStr20Contains_17_3781" = getelementptr inbounds %"$$fundef_261_env_552", %"$$fundef_261_env_552"* %"$$fundef_261_envp_3775", i32 0, i32 1 + %"$$ud-registry.listByStr20Contains_17_3782" = 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_17", align 8 + store { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } %"$$ud-registry.listByStr20Contains_17_3782", { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }* %"$$fundef_261_env_$ud-registry.listByStr20Contains_17_3781", align 8 + %"$$fundef_261_env_maybeApproved_3783" = getelementptr inbounds %"$$fundef_261_env_552", %"$$fundef_261_env_552"* %"$$fundef_261_envp_3775", i32 0, i32 2 + store %TName_Option_ByStr20* %1, %TName_Option_ByStr20** %"$$fundef_261_env_maybeApproved_3783", align 8 + %"$$fundef_261_env_recordOwner_3784" = getelementptr inbounds %"$$fundef_261_env_552", %"$$fundef_261_env_552"* %"$$fundef_261_envp_3775", i32 0, i32 3 + %"$recordOwner_3785" = load [20 x i8], [20 x i8]* %recordOwner, align 1 + store [20 x i8] %"$recordOwner_3785", [20 x i8]* %"$$fundef_261_env_recordOwner_3784", align 1 + %"$$fundef_261_env_sender_3786" = getelementptr inbounds %"$$fundef_261_env_552", %"$$fundef_261_env_552"* %"$$fundef_261_envp_3775", i32 0, i32 4 + %"$sender_3787" = load [20 x i8], [20 x i8]* %sender, align 1 + store [20 x i8] %"$sender_3787", [20 x i8]* %"$$fundef_261_env_sender_3786", align 1 + store { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } %"$$fundef_261_cloval_3778", { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* }* %"$retval_260", align 8, !dbg !47 + %"$$retval_260_3788" = load { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* }, { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* }* %"$retval_260", align 8 + ret { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } %"$$retval_260_3788" +} + +define internal { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } @"$fundef_257"(%"$$fundef_257_env_554"* %0, [20 x i8]* %1) !dbg !48 { +entry: + %"$recordOwner_3761" = alloca [20 x i8]*, align 8 + store [20 x i8]* %1, [20 x i8]** %"$recordOwner_3761", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$recordOwner_3761", metadata !49, metadata !DIExpression()), !dbg !51 %recordOwner = load [20 x i8], [20 x i8]* %1, align 1 - %"$$fundef_257_env_$BoolUtils.orb_18_3667" = getelementptr inbounds %"$$fundef_257_env_554", %"$$fundef_257_env_554"* %0, i32 0, i32 0 - %"$$BoolUtils.orb_18_envload_3668" = load { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }, { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }* %"$$fundef_257_env_$BoolUtils.orb_18_3667", align 8 + %"$$fundef_257_env_$BoolUtils.orb_18_3738" = getelementptr inbounds %"$$fundef_257_env_554", %"$$fundef_257_env_554"* %0, i32 0, i32 0 + %"$$BoolUtils.orb_18_envload_3739" = load { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }, { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }* %"$$fundef_257_env_$BoolUtils.orb_18_3738", align 8 %"$BoolUtils.orb_18" = 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_18_envload_3668", { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.orb_18", align 8 - %"$$fundef_257_env_$ud-registry.listByStr20Contains_17_3669" = getelementptr inbounds %"$$fundef_257_env_554", %"$$fundef_257_env_554"* %0, i32 0, i32 1 - %"$$ud-registry.listByStr20Contains_17_envload_3670" = 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_257_env_$ud-registry.listByStr20Contains_17_3669", align 8 + store { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.orb_18_envload_3739", { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.orb_18", align 8 + %"$$fundef_257_env_$ud-registry.listByStr20Contains_17_3740" = getelementptr inbounds %"$$fundef_257_env_554", %"$$fundef_257_env_554"* %0, i32 0, i32 1 + %"$$ud-registry.listByStr20Contains_17_envload_3741" = 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_257_env_$ud-registry.listByStr20Contains_17_3740", align 8 %"$ud-registry.listByStr20Contains_17" = 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_17_envload_3670", { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }* %"$ud-registry.listByStr20Contains_17", align 8 - %"$$fundef_257_env_sender_3671" = getelementptr inbounds %"$$fundef_257_env_554", %"$$fundef_257_env_554"* %0, i32 0, i32 2 - %"$sender_envload_3672" = load [20 x i8], [20 x i8]* %"$$fundef_257_env_sender_3671", align 1 + store { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } %"$$ud-registry.listByStr20Contains_17_envload_3741", { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }* %"$ud-registry.listByStr20Contains_17", align 8 + %"$$fundef_257_env_sender_3742" = getelementptr inbounds %"$$fundef_257_env_554", %"$$fundef_257_env_554"* %0, i32 0, i32 2 + %"$sender_envload_3743" = load [20 x i8], [20 x i8]* %"$$fundef_257_env_sender_3742", align 1 %sender = alloca [20 x i8], align 1 - store [20 x i8] %"$sender_envload_3672", [20 x i8]* %sender, align 1 + store [20 x i8] %"$sender_envload_3743", [20 x i8]* %sender, align 1 %"$retval_258" = alloca { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }, align 8 - %"$gasrem_3673" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3674" = icmp ugt i64 1, %"$gasrem_3673" - br i1 %"$gascmp_3674", label %"$out_of_gas_3675", label %"$have_gas_3676" - -"$out_of_gas_3675": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_3676" - -"$have_gas_3676": ; preds = %"$out_of_gas_3675", %entry - %"$consume_3677" = sub i64 %"$gasrem_3673", 1 - store i64 %"$consume_3677", i64* @_gasrem, align 8 - %"$$fundef_259_envp_3678_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_259_envp_3678_salloc" = call i8* @_salloc(i8* %"$$fundef_259_envp_3678_load", i64 72) - %"$$fundef_259_envp_3678" = bitcast i8* %"$$fundef_259_envp_3678_salloc" to %"$$fundef_259_env_553"* - %"$$fundef_259_env_voidp_3680" = bitcast %"$$fundef_259_env_553"* %"$$fundef_259_envp_3678" to i8* - %"$$fundef_259_cloval_3681" = 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_259_env_553"*, %TName_Option_ByStr20*)* @"$fundef_259" to { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*), i8* undef }, i8* %"$$fundef_259_env_voidp_3680", 1 - %"$$fundef_259_env_$BoolUtils.orb_18_3682" = getelementptr inbounds %"$$fundef_259_env_553", %"$$fundef_259_env_553"* %"$$fundef_259_envp_3678", i32 0, i32 0 - %"$$BoolUtils.orb_18_3683" = load { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }, { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.orb_18", align 8 - store { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.orb_18_3683", { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }* %"$$fundef_259_env_$BoolUtils.orb_18_3682", align 8 - %"$$fundef_259_env_$ud-registry.listByStr20Contains_17_3684" = getelementptr inbounds %"$$fundef_259_env_553", %"$$fundef_259_env_553"* %"$$fundef_259_envp_3678", i32 0, i32 1 - %"$$ud-registry.listByStr20Contains_17_3685" = 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_17", align 8 - store { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } %"$$ud-registry.listByStr20Contains_17_3685", { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }* %"$$fundef_259_env_$ud-registry.listByStr20Contains_17_3684", align 8 - %"$$fundef_259_env_recordOwner_3686" = getelementptr inbounds %"$$fundef_259_env_553", %"$$fundef_259_env_553"* %"$$fundef_259_envp_3678", i32 0, i32 2 - store [20 x i8] %recordOwner, [20 x i8]* %"$$fundef_259_env_recordOwner_3686", align 1 - %"$$fundef_259_env_sender_3687" = getelementptr inbounds %"$$fundef_259_env_553", %"$$fundef_259_env_553"* %"$$fundef_259_envp_3678", i32 0, i32 3 - %"$sender_3688" = load [20 x i8], [20 x i8]* %sender, align 1 - store [20 x i8] %"$sender_3688", [20 x i8]* %"$$fundef_259_env_sender_3687", align 1 - store { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } %"$$fundef_259_cloval_3681", { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }* %"$retval_258", align 8, !dbg !26 - %"$$retval_258_3689" = 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_258", align 8 - ret { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } %"$$retval_258_3689" -} - -define internal { { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } @"$fundef_255"(%"$$fundef_255_env_555"* %0, [20 x i8]* %1) !dbg !27 { -entry: + %"$gasrem_3744" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3745" = icmp ugt i64 1, %"$gasrem_3744" + br i1 %"$gascmp_3745", label %"$out_of_gas_3746", label %"$have_gas_3747" + +"$out_of_gas_3746": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_3747" + +"$have_gas_3747": ; preds = %"$out_of_gas_3746", %entry + %"$consume_3748" = sub i64 %"$gasrem_3744", 1 + store i64 %"$consume_3748", i64* @_gasrem, align 8 + %"$$fundef_259_envp_3749_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_259_envp_3749_salloc" = call i8* @_salloc(i8* %"$$fundef_259_envp_3749_load", i64 72) + %"$$fundef_259_envp_3749" = bitcast i8* %"$$fundef_259_envp_3749_salloc" to %"$$fundef_259_env_553"* + %"$$fundef_259_env_voidp_3751" = bitcast %"$$fundef_259_env_553"* %"$$fundef_259_envp_3749" to i8* + %"$$fundef_259_cloval_3752" = 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_259_env_553"*, %TName_Option_ByStr20*)* @"$fundef_259" to { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*), i8* undef }, i8* %"$$fundef_259_env_voidp_3751", 1 + %"$$fundef_259_env_$BoolUtils.orb_18_3753" = getelementptr inbounds %"$$fundef_259_env_553", %"$$fundef_259_env_553"* %"$$fundef_259_envp_3749", i32 0, i32 0 + %"$$BoolUtils.orb_18_3754" = load { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }, { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.orb_18", align 8 + store { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.orb_18_3754", { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }* %"$$fundef_259_env_$BoolUtils.orb_18_3753", align 8 + %"$$fundef_259_env_$ud-registry.listByStr20Contains_17_3755" = getelementptr inbounds %"$$fundef_259_env_553", %"$$fundef_259_env_553"* %"$$fundef_259_envp_3749", i32 0, i32 1 + %"$$ud-registry.listByStr20Contains_17_3756" = 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_17", align 8 + store { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } %"$$ud-registry.listByStr20Contains_17_3756", { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }* %"$$fundef_259_env_$ud-registry.listByStr20Contains_17_3755", align 8 + %"$$fundef_259_env_recordOwner_3757" = getelementptr inbounds %"$$fundef_259_env_553", %"$$fundef_259_env_553"* %"$$fundef_259_envp_3749", i32 0, i32 2 + store [20 x i8] %recordOwner, [20 x i8]* %"$$fundef_259_env_recordOwner_3757", align 1 + %"$$fundef_259_env_sender_3758" = getelementptr inbounds %"$$fundef_259_env_553", %"$$fundef_259_env_553"* %"$$fundef_259_envp_3749", i32 0, i32 3 + %"$sender_3759" = load [20 x i8], [20 x i8]* %sender, align 1 + store [20 x i8] %"$sender_3759", [20 x i8]* %"$$fundef_259_env_sender_3758", align 1 + store { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } %"$$fundef_259_cloval_3752", { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }* %"$retval_258", align 8, !dbg !52 + %"$$retval_258_3760" = 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_258", align 8 + ret { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } %"$$retval_258_3760" +} + +define internal { { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } @"$fundef_255"(%"$$fundef_255_env_555"* %0, [20 x i8]* %1) !dbg !53 { +entry: + %"$sender_3737" = alloca [20 x i8]*, align 8 + store [20 x i8]* %1, [20 x i8]** %"$sender_3737", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$sender_3737", metadata !54, metadata !DIExpression()), !dbg !55 %sender = load [20 x i8], [20 x i8]* %1, align 1 - %"$$fundef_255_env_$BoolUtils.orb_18_3648" = getelementptr inbounds %"$$fundef_255_env_555", %"$$fundef_255_env_555"* %0, i32 0, i32 0 - %"$$BoolUtils.orb_18_envload_3649" = load { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }, { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }* %"$$fundef_255_env_$BoolUtils.orb_18_3648", align 8 + %"$$fundef_255_env_$BoolUtils.orb_18_3718" = getelementptr inbounds %"$$fundef_255_env_555", %"$$fundef_255_env_555"* %0, i32 0, i32 0 + %"$$BoolUtils.orb_18_envload_3719" = load { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }, { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }* %"$$fundef_255_env_$BoolUtils.orb_18_3718", align 8 %"$BoolUtils.orb_18" = 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_18_envload_3649", { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.orb_18", align 8 - %"$$fundef_255_env_$ud-registry.listByStr20Contains_17_3650" = getelementptr inbounds %"$$fundef_255_env_555", %"$$fundef_255_env_555"* %0, i32 0, i32 1 - %"$$ud-registry.listByStr20Contains_17_envload_3651" = 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_255_env_$ud-registry.listByStr20Contains_17_3650", align 8 + store { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.orb_18_envload_3719", { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.orb_18", align 8 + %"$$fundef_255_env_$ud-registry.listByStr20Contains_17_3720" = getelementptr inbounds %"$$fundef_255_env_555", %"$$fundef_255_env_555"* %0, i32 0, i32 1 + %"$$ud-registry.listByStr20Contains_17_envload_3721" = 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_255_env_$ud-registry.listByStr20Contains_17_3720", align 8 %"$ud-registry.listByStr20Contains_17" = 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_17_envload_3651", { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }* %"$ud-registry.listByStr20Contains_17", align 8 + store { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } %"$$ud-registry.listByStr20Contains_17_envload_3721", { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }* %"$ud-registry.listByStr20Contains_17", align 8 %"$retval_256" = alloca { { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* }, align 8 - %"$gasrem_3652" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3653" = icmp ugt i64 1, %"$gasrem_3652" - br i1 %"$gascmp_3653", label %"$out_of_gas_3654", label %"$have_gas_3655" - -"$out_of_gas_3654": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_3655" - -"$have_gas_3655": ; preds = %"$out_of_gas_3654", %entry - %"$consume_3656" = sub i64 %"$gasrem_3652", 1 - store i64 %"$consume_3656", i64* @_gasrem, align 8 - %"$$fundef_257_envp_3657_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_257_envp_3657_salloc" = call i8* @_salloc(i8* %"$$fundef_257_envp_3657_load", i64 56) - %"$$fundef_257_envp_3657" = bitcast i8* %"$$fundef_257_envp_3657_salloc" to %"$$fundef_257_env_554"* - %"$$fundef_257_env_voidp_3659" = bitcast %"$$fundef_257_env_554"* %"$$fundef_257_envp_3657" to i8* - %"$$fundef_257_cloval_3660" = 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_257_env_554"*, [20 x i8]*)* @"$fundef_257" to { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, [20 x i8]*)*), i8* undef }, i8* %"$$fundef_257_env_voidp_3659", 1 - %"$$fundef_257_env_$BoolUtils.orb_18_3661" = getelementptr inbounds %"$$fundef_257_env_554", %"$$fundef_257_env_554"* %"$$fundef_257_envp_3657", i32 0, i32 0 - %"$$BoolUtils.orb_18_3662" = load { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }, { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.orb_18", align 8 - store { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.orb_18_3662", { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }* %"$$fundef_257_env_$BoolUtils.orb_18_3661", align 8 - %"$$fundef_257_env_$ud-registry.listByStr20Contains_17_3663" = getelementptr inbounds %"$$fundef_257_env_554", %"$$fundef_257_env_554"* %"$$fundef_257_envp_3657", i32 0, i32 1 - %"$$ud-registry.listByStr20Contains_17_3664" = 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_17", align 8 - store { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } %"$$ud-registry.listByStr20Contains_17_3664", { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }* %"$$fundef_257_env_$ud-registry.listByStr20Contains_17_3663", align 8 - %"$$fundef_257_env_sender_3665" = getelementptr inbounds %"$$fundef_257_env_554", %"$$fundef_257_env_554"* %"$$fundef_257_envp_3657", i32 0, i32 2 - store [20 x i8] %sender, [20 x i8]* %"$$fundef_257_env_sender_3665", align 1 - store { { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$$fundef_257_cloval_3660", { { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* }* %"$retval_256", align 8, !dbg !28 - %"$$retval_256_3666" = 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_256", align 8 - ret { { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$$retval_256_3666" -} - -define internal %TName_Bool* @"$fundef_253"(%"$$fundef_253_env_556"* %0, %TName_Bool* %1) !dbg !29 { -entry: - %"$$fundef_253_env_b_3618" = getelementptr inbounds %"$$fundef_253_env_556", %"$$fundef_253_env_556"* %0, i32 0, i32 0 - %"$b_envload_3619" = load %TName_Bool*, %TName_Bool** %"$$fundef_253_env_b_3618", 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" + +"$out_of_gas_3724": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_3725" + +"$have_gas_3725": ; preds = %"$out_of_gas_3724", %entry + %"$consume_3726" = sub i64 %"$gasrem_3722", 1 + store i64 %"$consume_3726", i64* @_gasrem, align 8 + %"$$fundef_257_envp_3727_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_257_envp_3727_salloc" = call i8* @_salloc(i8* %"$$fundef_257_envp_3727_load", i64 56) + %"$$fundef_257_envp_3727" = bitcast i8* %"$$fundef_257_envp_3727_salloc" to %"$$fundef_257_env_554"* + %"$$fundef_257_env_voidp_3729" = bitcast %"$$fundef_257_env_554"* %"$$fundef_257_envp_3727" to i8* + %"$$fundef_257_cloval_3730" = 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_257_env_554"*, [20 x i8]*)* @"$fundef_257" to { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, [20 x i8]*)*), i8* undef }, i8* %"$$fundef_257_env_voidp_3729", 1 + %"$$fundef_257_env_$BoolUtils.orb_18_3731" = getelementptr inbounds %"$$fundef_257_env_554", %"$$fundef_257_env_554"* %"$$fundef_257_envp_3727", i32 0, i32 0 + %"$$BoolUtils.orb_18_3732" = load { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }, { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.orb_18", align 8 + store { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.orb_18_3732", { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }* %"$$fundef_257_env_$BoolUtils.orb_18_3731", align 8 + %"$$fundef_257_env_$ud-registry.listByStr20Contains_17_3733" = getelementptr inbounds %"$$fundef_257_env_554", %"$$fundef_257_env_554"* %"$$fundef_257_envp_3727", i32 0, i32 1 + %"$$ud-registry.listByStr20Contains_17_3734" = 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_17", align 8 + store { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } %"$$ud-registry.listByStr20Contains_17_3734", { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }* %"$$fundef_257_env_$ud-registry.listByStr20Contains_17_3733", align 8 + %"$$fundef_257_env_sender_3735" = getelementptr inbounds %"$$fundef_257_env_554", %"$$fundef_257_env_554"* %"$$fundef_257_envp_3727", i32 0, i32 2 + store [20 x i8] %sender, [20 x i8]* %"$$fundef_257_env_sender_3735", align 1 + store { { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$$fundef_257_cloval_3730", { { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* }* %"$retval_256", align 8, !dbg !56 + %"$$retval_256_3736" = 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_256", align 8 + ret { { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$$retval_256_3736" +} + +define internal %TName_Bool* @"$fundef_253"(%"$$fundef_253_env_556"* %0, %TName_Bool* %1) !dbg !57 { +entry: + %"$c_3717" = alloca %TName_Bool*, align 8 + store %TName_Bool* %1, %TName_Bool** %"$c_3717", align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$c_3717", metadata !59, metadata !DIExpression()), !dbg !60 + %"$$fundef_253_env_b_3687" = getelementptr inbounds %"$$fundef_253_env_556", %"$$fundef_253_env_556"* %0, i32 0, i32 0 + %"$b_envload_3688" = load %TName_Bool*, %TName_Bool** %"$$fundef_253_env_b_3687", align 8 %b = alloca %TName_Bool*, align 8 - store %TName_Bool* %"$b_envload_3619", %TName_Bool** %b, align 8 + store %TName_Bool* %"$b_envload_3688", %TName_Bool** %b, align 8 %"$retval_254" = alloca %TName_Bool*, align 8 - %"$gasrem_3620" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3621" = icmp ugt i64 2, %"$gasrem_3620" - br i1 %"$gascmp_3621", label %"$out_of_gas_3622", label %"$have_gas_3623" - -"$out_of_gas_3622": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_3623" - -"$have_gas_3623": ; preds = %"$out_of_gas_3622", %entry - %"$consume_3624" = sub i64 %"$gasrem_3620", 2 - store i64 %"$consume_3624", i64* @_gasrem, align 8 - %"$b_3626" = load %TName_Bool*, %TName_Bool** %b, align 8 - %"$b_tag_3627" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$b_3626", i32 0, i32 0 - %"$b_tag_3628" = load i8, i8* %"$b_tag_3627", align 1 - switch i8 %"$b_tag_3628", label %"$empty_default_3629" [ - i8 0, label %"$True_3630" - i8 1, label %"$False_3640" - ], !dbg !31 - -"$True_3630": ; preds = %"$have_gas_3623" - %"$b_3631" = bitcast %TName_Bool* %"$b_3626" to %CName_True* - %"$gasrem_3632" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3633" = icmp ugt i64 1, %"$gasrem_3632" - br i1 %"$gascmp_3633", label %"$out_of_gas_3634", label %"$have_gas_3635" - -"$out_of_gas_3634": ; preds = %"$True_3630" - call void @_out_of_gas() - br label %"$have_gas_3635" - -"$have_gas_3635": ; preds = %"$out_of_gas_3634", %"$True_3630" - %"$consume_3636" = sub i64 %"$gasrem_3632", 1 - store i64 %"$consume_3636", i64* @_gasrem, align 8 - %"$adtval_3637_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_3637_salloc" = call i8* @_salloc(i8* %"$adtval_3637_load", i64 1) - %"$adtval_3637" = bitcast i8* %"$adtval_3637_salloc" to %CName_True* - %"$adtgep_3638" = getelementptr inbounds %CName_True, %CName_True* %"$adtval_3637", i32 0, i32 0 - store i8 0, i8* %"$adtgep_3638", align 1 - %"$adtptr_3639" = bitcast %CName_True* %"$adtval_3637" to %TName_Bool* - store %TName_Bool* %"$adtptr_3639", %TName_Bool** %"$retval_254", align 8, !dbg !32 - br label %"$matchsucc_3625" - -"$False_3640": ; preds = %"$have_gas_3623" - %"$b_3641" = bitcast %TName_Bool* %"$b_3626" to %CName_False* - %"$gasrem_3642" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3643" = icmp ugt i64 1, %"$gasrem_3642" - br i1 %"$gascmp_3643", label %"$out_of_gas_3644", label %"$have_gas_3645" - -"$out_of_gas_3644": ; preds = %"$False_3640" - call void @_out_of_gas() - br label %"$have_gas_3645" - -"$have_gas_3645": ; preds = %"$out_of_gas_3644", %"$False_3640" - %"$consume_3646" = sub i64 %"$gasrem_3642", 1 - store i64 %"$consume_3646", i64* @_gasrem, align 8 - store %TName_Bool* %1, %TName_Bool** %"$retval_254", align 8, !dbg !35 - br label %"$matchsucc_3625" - -"$empty_default_3629": ; preds = %"$have_gas_3623" - br label %"$matchsucc_3625" - -"$matchsucc_3625": ; preds = %"$have_gas_3645", %"$have_gas_3635", %"$empty_default_3629" - %"$$retval_254_3647" = load %TName_Bool*, %TName_Bool** %"$retval_254", align 8 - ret %TName_Bool* %"$$retval_254_3647" -} - -define internal { %TName_Bool* (i8*, %TName_Bool*)*, i8* } @"$fundef_251"(%"$$fundef_251_env_557"* %0, %TName_Bool* %1) !dbg !37 { -entry: + call void @llvm.dbg.declare(metadata %TName_Bool** %"$retval_254", metadata !61, metadata !DIExpression()), !dbg !62 + %"$gasrem_3689" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3690" = icmp ugt i64 2, %"$gasrem_3689" + br i1 %"$gascmp_3690", label %"$out_of_gas_3691", label %"$have_gas_3692" + +"$out_of_gas_3691": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_3692" + +"$have_gas_3692": ; preds = %"$out_of_gas_3691", %entry + %"$consume_3693" = sub i64 %"$gasrem_3689", 2 + store i64 %"$consume_3693", i64* @_gasrem, align 8 + %"$b_3695" = load %TName_Bool*, %TName_Bool** %b, align 8 + %"$b_tag_3696" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$b_3695", i32 0, i32 0 + %"$b_tag_3697" = load i8, i8* %"$b_tag_3696", align 1 + switch i8 %"$b_tag_3697", label %"$empty_default_3698" [ + i8 0, label %"$True_3699" + i8 1, label %"$False_3709" + ], !dbg !62 + +"$True_3699": ; preds = %"$have_gas_3692" + %"$b_3700" = bitcast %TName_Bool* %"$b_3695" to %CName_True* + %"$gasrem_3701" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3702" = icmp ugt i64 1, %"$gasrem_3701" + br i1 %"$gascmp_3702", label %"$out_of_gas_3703", label %"$have_gas_3704" + +"$out_of_gas_3703": ; preds = %"$True_3699" + call void @_out_of_gas() + br label %"$have_gas_3704" + +"$have_gas_3704": ; preds = %"$out_of_gas_3703", %"$True_3699" + %"$consume_3705" = sub i64 %"$gasrem_3701", 1 + store i64 %"$consume_3705", i64* @_gasrem, align 8 + %"$adtval_3706_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_3706_salloc" = call i8* @_salloc(i8* %"$adtval_3706_load", i64 1) + %"$adtval_3706" = bitcast i8* %"$adtval_3706_salloc" to %CName_True* + %"$adtgep_3707" = getelementptr inbounds %CName_True, %CName_True* %"$adtval_3706", i32 0, i32 0 + store i8 0, i8* %"$adtgep_3707", align 1 + %"$adtptr_3708" = bitcast %CName_True* %"$adtval_3706" to %TName_Bool* + store %TName_Bool* %"$adtptr_3708", %TName_Bool** %"$retval_254", align 8, !dbg !63 + br label %"$matchsucc_3694" + +"$False_3709": ; preds = %"$have_gas_3692" + %"$b_3710" = bitcast %TName_Bool* %"$b_3695" to %CName_False* + %"$gasrem_3711" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3712" = icmp ugt i64 1, %"$gasrem_3711" + br i1 %"$gascmp_3712", label %"$out_of_gas_3713", label %"$have_gas_3714" + +"$out_of_gas_3713": ; preds = %"$False_3709" + call void @_out_of_gas() + br label %"$have_gas_3714" + +"$have_gas_3714": ; preds = %"$out_of_gas_3713", %"$False_3709" + %"$consume_3715" = sub i64 %"$gasrem_3711", 1 + store i64 %"$consume_3715", i64* @_gasrem, align 8 + store %TName_Bool* %1, %TName_Bool** %"$retval_254", align 8, !dbg !66 + br label %"$matchsucc_3694" + +"$empty_default_3698": ; preds = %"$have_gas_3692" + br label %"$matchsucc_3694" + +"$matchsucc_3694": ; preds = %"$have_gas_3714", %"$have_gas_3704", %"$empty_default_3698" + %"$$retval_254_3716" = load %TName_Bool*, %TName_Bool** %"$retval_254", align 8 + ret %TName_Bool* %"$$retval_254_3716" +} + +define internal { %TName_Bool* (i8*, %TName_Bool*)*, i8* } @"$fundef_251"(%"$$fundef_251_env_557"* %0, %TName_Bool* %1) !dbg !68 { +entry: + %"$b_3686" = alloca %TName_Bool*, align 8 + store %TName_Bool* %1, %TName_Bool** %"$b_3686", align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$b_3686", metadata !69, metadata !DIExpression()), !dbg !70 %"$retval_252" = alloca { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, align 8 - %"$gasrem_3607" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3608" = icmp ugt i64 1, %"$gasrem_3607" - br i1 %"$gascmp_3608", label %"$out_of_gas_3609", label %"$have_gas_3610" - -"$out_of_gas_3609": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_3610" - -"$have_gas_3610": ; preds = %"$out_of_gas_3609", %entry - %"$consume_3611" = sub i64 %"$gasrem_3607", 1 - store i64 %"$consume_3611", i64* @_gasrem, align 8 - %"$$fundef_253_envp_3612_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_253_envp_3612_salloc" = call i8* @_salloc(i8* %"$$fundef_253_envp_3612_load", i64 8) - %"$$fundef_253_envp_3612" = bitcast i8* %"$$fundef_253_envp_3612_salloc" to %"$$fundef_253_env_556"* - %"$$fundef_253_env_voidp_3614" = bitcast %"$$fundef_253_env_556"* %"$$fundef_253_envp_3612" to i8* - %"$$fundef_253_cloval_3615" = insertvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } { %TName_Bool* (i8*, %TName_Bool*)* bitcast (%TName_Bool* (%"$$fundef_253_env_556"*, %TName_Bool*)* @"$fundef_253" to %TName_Bool* (i8*, %TName_Bool*)*), i8* undef }, i8* %"$$fundef_253_env_voidp_3614", 1 - %"$$fundef_253_env_b_3616" = getelementptr inbounds %"$$fundef_253_env_556", %"$$fundef_253_env_556"* %"$$fundef_253_envp_3612", i32 0, i32 0 - store %TName_Bool* %1, %TName_Bool** %"$$fundef_253_env_b_3616", align 8 - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$fundef_253_cloval_3615", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$retval_252", align 8, !dbg !38 - %"$$retval_252_3617" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$retval_252", align 8 - ret { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$retval_252_3617" -} - -define internal %TName_Bool* @"$fundef_249"(%"$$fundef_249_env_558"* %0, [20 x i8]* %1) !dbg !39 { -entry: + %"$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 = %entry + call void @_out_of_gas() + br label %"$have_gas_3678" + +"$have_gas_3678": ; preds = %"$out_of_gas_3677", %entry + %"$consume_3679" = sub i64 %"$gasrem_3675", 1 + store i64 %"$consume_3679", i64* @_gasrem, align 8 + %"$$fundef_253_envp_3680_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_253_envp_3680_salloc" = call i8* @_salloc(i8* %"$$fundef_253_envp_3680_load", i64 8) + %"$$fundef_253_envp_3680" = bitcast i8* %"$$fundef_253_envp_3680_salloc" to %"$$fundef_253_env_556"* + %"$$fundef_253_env_voidp_3682" = bitcast %"$$fundef_253_env_556"* %"$$fundef_253_envp_3680" to i8* + %"$$fundef_253_cloval_3683" = insertvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } { %TName_Bool* (i8*, %TName_Bool*)* bitcast (%TName_Bool* (%"$$fundef_253_env_556"*, %TName_Bool*)* @"$fundef_253" to %TName_Bool* (i8*, %TName_Bool*)*), i8* undef }, i8* %"$$fundef_253_env_voidp_3682", 1 + %"$$fundef_253_env_b_3684" = getelementptr inbounds %"$$fundef_253_env_556", %"$$fundef_253_env_556"* %"$$fundef_253_envp_3680", i32 0, i32 0 + store %TName_Bool* %1, %TName_Bool** %"$$fundef_253_env_b_3684", align 8 + store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$fundef_253_cloval_3683", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$retval_252", align 8, !dbg !71 + %"$$retval_252_3685" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$retval_252", align 8 + ret { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$retval_252_3685" +} + +define internal %TName_Bool* @"$fundef_249"(%"$$fundef_249_env_558"* %0, [20 x i8]* %1) !dbg !72 { +entry: + %"$bs_3674" = alloca [20 x i8]*, align 8 + store [20 x i8]* %1, [20 x i8]** %"$bs_3674", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$bs_3674", metadata !73, metadata !DIExpression()), !dbg !74 %bs = load [20 x i8], [20 x i8]* %1, align 1 - %"$$fundef_249_env_$ListUtils.list_mem_16_3562" = getelementptr inbounds %"$$fundef_249_env_558", %"$$fundef_249_env_558"* %0, i32 0, i32 0 - %"$$ListUtils.list_mem_16_envload_3563" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_249_env_$ListUtils.list_mem_16_3562", align 8 + %"$$fundef_249_env_$ListUtils.list_mem_16_3629" = getelementptr inbounds %"$$fundef_249_env_558", %"$$fundef_249_env_558"* %0, i32 0, i32 0 + %"$$ListUtils.list_mem_16_envload_3630" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_249_env_$ListUtils.list_mem_16_3629", align 8 %"$ListUtils.list_mem_16" = alloca { i8*, i8* }*, align 8 - store { i8*, i8* }* %"$$ListUtils.list_mem_16_envload_3563", { i8*, i8* }** %"$ListUtils.list_mem_16", align 8 - %"$$fundef_249_env_$ud-registry.eqByStr20_12_3564" = getelementptr inbounds %"$$fundef_249_env_558", %"$$fundef_249_env_558"* %0, i32 0, i32 1 - %"$$ud-registry.eqByStr20_12_envload_3565" = 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_249_env_$ud-registry.eqByStr20_12_3564", align 8 + store { i8*, i8* }* %"$$ListUtils.list_mem_16_envload_3630", { i8*, i8* }** %"$ListUtils.list_mem_16", align 8 + %"$$fundef_249_env_$ud-registry.eqByStr20_12_3631" = getelementptr inbounds %"$$fundef_249_env_558", %"$$fundef_249_env_558"* %0, i32 0, i32 1 + %"$$ud-registry.eqByStr20_12_envload_3632" = 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_249_env_$ud-registry.eqByStr20_12_3631", align 8 %"$ud-registry.eqByStr20_12" = 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_12_envload_3565", { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* }* %"$ud-registry.eqByStr20_12", align 8 - %"$$fundef_249_env_list_3566" = getelementptr inbounds %"$$fundef_249_env_558", %"$$fundef_249_env_558"* %0, i32 0, i32 2 - %"$list_envload_3567" = load %TName_List_ByStr20*, %TName_List_ByStr20** %"$$fundef_249_env_list_3566", align 8 + store { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.eqByStr20_12_envload_3632", { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* }* %"$ud-registry.eqByStr20_12", align 8 + %"$$fundef_249_env_list_3633" = getelementptr inbounds %"$$fundef_249_env_558", %"$$fundef_249_env_558"* %0, i32 0, i32 2 + %"$list_envload_3634" = load %TName_List_ByStr20*, %TName_List_ByStr20** %"$$fundef_249_env_list_3633", align 8 %list = alloca %TName_List_ByStr20*, align 8 - store %TName_List_ByStr20* %"$list_envload_3567", %TName_List_ByStr20** %list, align 8 + store %TName_List_ByStr20* %"$list_envload_3634", %TName_List_ByStr20** %list, align 8 %"$retval_250" = alloca %TName_Bool*, align 8 - %"$gasrem_3568" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3569" = icmp ugt i64 1, %"$gasrem_3568" - br i1 %"$gascmp_3569", label %"$out_of_gas_3570", label %"$have_gas_3571" + call void @llvm.dbg.declare(metadata %TName_Bool** %"$retval_250", metadata !75, metadata !DIExpression()), !dbg !76 + %"$gasrem_3635" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3636" = icmp ugt i64 1, %"$gasrem_3635" + br i1 %"$gascmp_3636", label %"$out_of_gas_3637", label %"$have_gas_3638" -"$out_of_gas_3570": ; preds = %entry +"$out_of_gas_3637": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_3571" + br label %"$have_gas_3638" -"$have_gas_3571": ; preds = %"$out_of_gas_3570", %entry - %"$consume_3572" = sub i64 %"$gasrem_3568", 1 - store i64 %"$consume_3572", i64* @_gasrem, align 8 +"$have_gas_3638": ; preds = %"$out_of_gas_3637", %entry + %"$consume_3639" = sub i64 %"$gasrem_3635", 1 + store i64 %"$consume_3639", 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_3573" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3574" = icmp ugt i64 1, %"$gasrem_3573" - br i1 %"$gascmp_3574", label %"$out_of_gas_3575", label %"$have_gas_3576" - -"$out_of_gas_3575": ; preds = %"$have_gas_3571" - call void @_out_of_gas() - br label %"$have_gas_3576" - -"$have_gas_3576": ; preds = %"$out_of_gas_3575", %"$have_gas_3571" - %"$consume_3577" = sub i64 %"$gasrem_3573", 1 - store i64 %"$consume_3577", i64* @_gasrem, align 8 - %"$$ListUtils.list_mem_16_3578" = load { i8*, i8* }*, { i8*, i8* }** %"$ListUtils.list_mem_16", align 8 - %"$$ListUtils.list_mem_16_3579" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$$ListUtils.list_mem_16_3578", i32 0 - %"$$ListUtils.list_mem_16_3580" = bitcast { i8*, i8* }* %"$$ListUtils.list_mem_16_3579" 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_16_3581" = 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_16_3580", align 8 - %"$$ListUtils.list_mem_16_fptr_3582" = 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_16_3581", 0 - %"$$ListUtils.list_mem_16_envptr_3583" = 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_16_3581", 1 - %"$$ListUtils.list_mem_16_call_3584" = 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_16_fptr_3582"(i8* %"$$ListUtils.list_mem_16_envptr_3583"), !dbg !40 - 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_16_call_3584", { { { %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 !41 - %"$gasrem_3585" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3586" = icmp ugt i64 1, %"$gasrem_3585" - br i1 %"$gascmp_3586", label %"$out_of_gas_3587", label %"$have_gas_3588" - -"$out_of_gas_3587": ; preds = %"$have_gas_3576" - call void @_out_of_gas() - br label %"$have_gas_3588" - -"$have_gas_3588": ; preds = %"$out_of_gas_3587", %"$have_gas_3576" - %"$consume_3589" = sub i64 %"$gasrem_3585", 1 - store i64 %"$consume_3589", i64* @_gasrem, align 8 + %"$gasrem_3640" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3641" = icmp ugt i64 1, %"$gasrem_3640" + br i1 %"$gascmp_3641", label %"$out_of_gas_3642", label %"$have_gas_3643" + +"$out_of_gas_3642": ; preds = %"$have_gas_3638" + call void @_out_of_gas() + br label %"$have_gas_3643" + +"$have_gas_3643": ; preds = %"$out_of_gas_3642", %"$have_gas_3638" + %"$consume_3644" = sub i64 %"$gasrem_3640", 1 + store i64 %"$consume_3644", i64* @_gasrem, align 8 + %"$$ListUtils.list_mem_16_3645" = load { i8*, i8* }*, { i8*, i8* }** %"$ListUtils.list_mem_16", align 8 + %"$$ListUtils.list_mem_16_3646" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$$ListUtils.list_mem_16_3645", i32 0 + %"$$ListUtils.list_mem_16_3647" = bitcast { i8*, i8* }* %"$$ListUtils.list_mem_16_3646" 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_16_3648" = 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_16_3647", align 8 + %"$$ListUtils.list_mem_16_fptr_3649" = 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_16_3648", 0 + %"$$ListUtils.list_mem_16_envptr_3650" = 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_16_3648", 1 + %"$$ListUtils.list_mem_16_call_3651" = 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_16_fptr_3649"(i8* %"$$ListUtils.list_mem_16_envptr_3650"), !dbg !77 + 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_16_call_3651", { { { %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 !78 + %"$gasrem_3652" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3653" = icmp ugt i64 1, %"$gasrem_3652" + br i1 %"$gascmp_3653", label %"$out_of_gas_3654", label %"$have_gas_3655" + +"$out_of_gas_3654": ; preds = %"$have_gas_3643" + call void @_out_of_gas() + br label %"$have_gas_3655" + +"$have_gas_3655": ; preds = %"$out_of_gas_3654", %"$have_gas_3643" + %"$consume_3656" = sub i64 %"$gasrem_3652", 1 + store i64 %"$consume_3656", i64* @_gasrem, align 8 %"$listMemByStr20_89" = alloca { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* }, align 8 - %"$listMemByStr20_3590" = 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_3591" = 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_3590", 0 - %"$listMemByStr20_envptr_3592" = 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_3590", 1 - %"$$ud-registry.eqByStr20_12_3593" = 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_12", align 8 - %"$listMemByStr20_call_3594" = call { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$listMemByStr20_fptr_3591"(i8* %"$listMemByStr20_envptr_3592", { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.eqByStr20_12_3593"), !dbg !42 - store { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$listMemByStr20_call_3594", { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* }* %"$listMemByStr20_89", align 8, !dbg !42 + %"$listMemByStr20_3657" = 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_3658" = 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_3657", 0 + %"$listMemByStr20_envptr_3659" = 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_3657", 1 + %"$$ud-registry.eqByStr20_12_3660" = 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_12", align 8 + %"$listMemByStr20_call_3661" = call { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$listMemByStr20_fptr_3658"(i8* %"$listMemByStr20_envptr_3659", { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.eqByStr20_12_3660"), !dbg !79 + store { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$listMemByStr20_call_3661", { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* }* %"$listMemByStr20_89", align 8, !dbg !79 %"$listMemByStr20_90" = alloca { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* }, align 8 - %"$$listMemByStr20_89_3595" = 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_89", align 8 - %"$$listMemByStr20_89_fptr_3596" = extractvalue { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$$listMemByStr20_89_3595", 0 - %"$$listMemByStr20_89_envptr_3597" = extractvalue { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$$listMemByStr20_89_3595", 1 - %"$$listMemByStr20_89_bs_3598" = alloca [20 x i8], align 1 - store [20 x i8] %bs, [20 x i8]* %"$$listMemByStr20_89_bs_3598", align 1 - %"$$listMemByStr20_89_call_3599" = call { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } %"$$listMemByStr20_89_fptr_3596"(i8* %"$$listMemByStr20_89_envptr_3597", [20 x i8]* %"$$listMemByStr20_89_bs_3598"), !dbg !42 - store { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } %"$$listMemByStr20_89_call_3599", { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* }* %"$listMemByStr20_90", align 8, !dbg !42 + %"$$listMemByStr20_89_3662" = 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_89", align 8 + %"$$listMemByStr20_89_fptr_3663" = extractvalue { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$$listMemByStr20_89_3662", 0 + %"$$listMemByStr20_89_envptr_3664" = extractvalue { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$$listMemByStr20_89_3662", 1 + %"$$listMemByStr20_89_bs_3665" = alloca [20 x i8], align 1 + store [20 x i8] %bs, [20 x i8]* %"$$listMemByStr20_89_bs_3665", align 1 + %"$$listMemByStr20_89_call_3666" = call { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } %"$$listMemByStr20_89_fptr_3663"(i8* %"$$listMemByStr20_89_envptr_3664", [20 x i8]* %"$$listMemByStr20_89_bs_3665"), !dbg !79 + store { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } %"$$listMemByStr20_89_call_3666", { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* }* %"$listMemByStr20_90", align 8, !dbg !79 %"$listMemByStr20_91" = alloca %TName_Bool*, align 8 - %"$$listMemByStr20_90_3600" = load { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* }, { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* }* %"$listMemByStr20_90", align 8 - %"$$listMemByStr20_90_fptr_3601" = extractvalue { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } %"$$listMemByStr20_90_3600", 0 - %"$$listMemByStr20_90_envptr_3602" = extractvalue { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } %"$$listMemByStr20_90_3600", 1 - %"$list_3603" = load %TName_List_ByStr20*, %TName_List_ByStr20** %list, align 8 - %"$$listMemByStr20_90_call_3604" = call %TName_Bool* %"$$listMemByStr20_90_fptr_3601"(i8* %"$$listMemByStr20_90_envptr_3602", %TName_List_ByStr20* %"$list_3603"), !dbg !42 - store %TName_Bool* %"$$listMemByStr20_90_call_3604", %TName_Bool** %"$listMemByStr20_91", align 8, !dbg !42 - %"$$listMemByStr20_91_3605" = load %TName_Bool*, %TName_Bool** %"$listMemByStr20_91", align 8 - store %TName_Bool* %"$$listMemByStr20_91_3605", %TName_Bool** %"$retval_250", align 8, !dbg !42 - %"$$retval_250_3606" = load %TName_Bool*, %TName_Bool** %"$retval_250", align 8 - ret %TName_Bool* %"$$retval_250_3606" -} - -define internal { %TName_Bool* (i8*, [20 x i8]*)*, i8* } @"$fundef_247"(%"$$fundef_247_env_559"* %0, %TName_List_ByStr20* %1) !dbg !43 { -entry: - %"$$fundef_247_env_$ListUtils.list_mem_16_3543" = getelementptr inbounds %"$$fundef_247_env_559", %"$$fundef_247_env_559"* %0, i32 0, i32 0 - %"$$ListUtils.list_mem_16_envload_3544" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_247_env_$ListUtils.list_mem_16_3543", align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$listMemByStr20_91", metadata !80, metadata !DIExpression()), !dbg !79 + %"$$listMemByStr20_90_3667" = load { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* }, { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* }* %"$listMemByStr20_90", align 8 + %"$$listMemByStr20_90_fptr_3668" = extractvalue { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } %"$$listMemByStr20_90_3667", 0 + %"$$listMemByStr20_90_envptr_3669" = extractvalue { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } %"$$listMemByStr20_90_3667", 1 + %"$list_3670" = load %TName_List_ByStr20*, %TName_List_ByStr20** %list, align 8 + %"$$listMemByStr20_90_call_3671" = call %TName_Bool* %"$$listMemByStr20_90_fptr_3668"(i8* %"$$listMemByStr20_90_envptr_3669", %TName_List_ByStr20* %"$list_3670"), !dbg !79 + store %TName_Bool* %"$$listMemByStr20_90_call_3671", %TName_Bool** %"$listMemByStr20_91", align 8, !dbg !79 + %"$$listMemByStr20_91_3672" = load %TName_Bool*, %TName_Bool** %"$listMemByStr20_91", align 8 + store %TName_Bool* %"$$listMemByStr20_91_3672", %TName_Bool** %"$retval_250", align 8, !dbg !79 + %"$$retval_250_3673" = load %TName_Bool*, %TName_Bool** %"$retval_250", align 8 + ret %TName_Bool* %"$$retval_250_3673" +} + +define internal { %TName_Bool* (i8*, [20 x i8]*)*, i8* } @"$fundef_247"(%"$$fundef_247_env_559"* %0, %TName_List_ByStr20* %1) !dbg !81 { +entry: + %"$list_3628" = alloca %TName_List_ByStr20*, align 8 + store %TName_List_ByStr20* %1, %TName_List_ByStr20** %"$list_3628", align 8 + call void @llvm.dbg.declare(metadata %TName_List_ByStr20** %"$list_3628", metadata !82, metadata !DIExpression()), !dbg !85 + %"$$fundef_247_env_$ListUtils.list_mem_16_3609" = getelementptr inbounds %"$$fundef_247_env_559", %"$$fundef_247_env_559"* %0, i32 0, i32 0 + %"$$ListUtils.list_mem_16_envload_3610" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_247_env_$ListUtils.list_mem_16_3609", align 8 %"$ListUtils.list_mem_16" = alloca { i8*, i8* }*, align 8 - store { i8*, i8* }* %"$$ListUtils.list_mem_16_envload_3544", { i8*, i8* }** %"$ListUtils.list_mem_16", align 8 - %"$$fundef_247_env_$ud-registry.eqByStr20_12_3545" = getelementptr inbounds %"$$fundef_247_env_559", %"$$fundef_247_env_559"* %0, i32 0, i32 1 - %"$$ud-registry.eqByStr20_12_envload_3546" = 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_247_env_$ud-registry.eqByStr20_12_3545", align 8 + store { i8*, i8* }* %"$$ListUtils.list_mem_16_envload_3610", { i8*, i8* }** %"$ListUtils.list_mem_16", align 8 + %"$$fundef_247_env_$ud-registry.eqByStr20_12_3611" = getelementptr inbounds %"$$fundef_247_env_559", %"$$fundef_247_env_559"* %0, i32 0, i32 1 + %"$$ud-registry.eqByStr20_12_envload_3612" = 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_247_env_$ud-registry.eqByStr20_12_3611", align 8 %"$ud-registry.eqByStr20_12" = 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_12_envload_3546", { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* }* %"$ud-registry.eqByStr20_12", align 8 + store { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.eqByStr20_12_envload_3612", { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* }* %"$ud-registry.eqByStr20_12", align 8 %"$retval_248" = alloca { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, 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 = %entry - call void @_out_of_gas() - br label %"$have_gas_3550" - -"$have_gas_3550": ; preds = %"$out_of_gas_3549", %entry - %"$consume_3551" = sub i64 %"$gasrem_3547", 1 - store i64 %"$consume_3551", i64* @_gasrem, align 8 - %"$$fundef_249_envp_3552_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_249_envp_3552_salloc" = call i8* @_salloc(i8* %"$$fundef_249_envp_3552_load", i64 32) - %"$$fundef_249_envp_3552" = bitcast i8* %"$$fundef_249_envp_3552_salloc" to %"$$fundef_249_env_558"* - %"$$fundef_249_env_voidp_3554" = bitcast %"$$fundef_249_env_558"* %"$$fundef_249_envp_3552" to i8* - %"$$fundef_249_cloval_3555" = insertvalue { %TName_Bool* (i8*, [20 x i8]*)*, i8* } { %TName_Bool* (i8*, [20 x i8]*)* bitcast (%TName_Bool* (%"$$fundef_249_env_558"*, [20 x i8]*)* @"$fundef_249" to %TName_Bool* (i8*, [20 x i8]*)*), i8* undef }, i8* %"$$fundef_249_env_voidp_3554", 1 - %"$$fundef_249_env_$ListUtils.list_mem_16_3556" = getelementptr inbounds %"$$fundef_249_env_558", %"$$fundef_249_env_558"* %"$$fundef_249_envp_3552", i32 0, i32 0 - %"$$ListUtils.list_mem_16_3557" = load { i8*, i8* }*, { i8*, i8* }** %"$ListUtils.list_mem_16", align 8 - store { i8*, i8* }* %"$$ListUtils.list_mem_16_3557", { i8*, i8* }** %"$$fundef_249_env_$ListUtils.list_mem_16_3556", align 8 - %"$$fundef_249_env_$ud-registry.eqByStr20_12_3558" = getelementptr inbounds %"$$fundef_249_env_558", %"$$fundef_249_env_558"* %"$$fundef_249_envp_3552", i32 0, i32 1 - %"$$ud-registry.eqByStr20_12_3559" = 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_12", align 8 - store { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.eqByStr20_12_3559", { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* }* %"$$fundef_249_env_$ud-registry.eqByStr20_12_3558", align 8 - %"$$fundef_249_env_list_3560" = getelementptr inbounds %"$$fundef_249_env_558", %"$$fundef_249_env_558"* %"$$fundef_249_envp_3552", i32 0, i32 2 - store %TName_List_ByStr20* %1, %TName_List_ByStr20** %"$$fundef_249_env_list_3560", align 8 - store { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$$fundef_249_cloval_3555", { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %"$retval_248", align 8, !dbg !44 - %"$$retval_248_3561" = load { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %"$retval_248", align 8 - ret { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$$retval_248_3561" -} - -define internal { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } @"$fundef_245"(%"$$fundef_245_env_560"* %0, [20 x i8]* %1) !dbg !45 { -entry: + %"$gasrem_3613" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3614" = icmp ugt i64 1, %"$gasrem_3613" + br i1 %"$gascmp_3614", label %"$out_of_gas_3615", label %"$have_gas_3616" + +"$out_of_gas_3615": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_3616" + +"$have_gas_3616": ; preds = %"$out_of_gas_3615", %entry + %"$consume_3617" = sub i64 %"$gasrem_3613", 1 + store i64 %"$consume_3617", i64* @_gasrem, align 8 + %"$$fundef_249_envp_3618_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_249_envp_3618_salloc" = call i8* @_salloc(i8* %"$$fundef_249_envp_3618_load", i64 32) + %"$$fundef_249_envp_3618" = bitcast i8* %"$$fundef_249_envp_3618_salloc" to %"$$fundef_249_env_558"* + %"$$fundef_249_env_voidp_3620" = bitcast %"$$fundef_249_env_558"* %"$$fundef_249_envp_3618" to i8* + %"$$fundef_249_cloval_3621" = insertvalue { %TName_Bool* (i8*, [20 x i8]*)*, i8* } { %TName_Bool* (i8*, [20 x i8]*)* bitcast (%TName_Bool* (%"$$fundef_249_env_558"*, [20 x i8]*)* @"$fundef_249" to %TName_Bool* (i8*, [20 x i8]*)*), i8* undef }, i8* %"$$fundef_249_env_voidp_3620", 1 + %"$$fundef_249_env_$ListUtils.list_mem_16_3622" = getelementptr inbounds %"$$fundef_249_env_558", %"$$fundef_249_env_558"* %"$$fundef_249_envp_3618", i32 0, i32 0 + %"$$ListUtils.list_mem_16_3623" = load { i8*, i8* }*, { i8*, i8* }** %"$ListUtils.list_mem_16", align 8 + store { i8*, i8* }* %"$$ListUtils.list_mem_16_3623", { i8*, i8* }** %"$$fundef_249_env_$ListUtils.list_mem_16_3622", align 8 + %"$$fundef_249_env_$ud-registry.eqByStr20_12_3624" = getelementptr inbounds %"$$fundef_249_env_558", %"$$fundef_249_env_558"* %"$$fundef_249_envp_3618", i32 0, i32 1 + %"$$ud-registry.eqByStr20_12_3625" = 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_12", align 8 + store { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.eqByStr20_12_3625", { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* }* %"$$fundef_249_env_$ud-registry.eqByStr20_12_3624", align 8 + %"$$fundef_249_env_list_3626" = getelementptr inbounds %"$$fundef_249_env_558", %"$$fundef_249_env_558"* %"$$fundef_249_envp_3618", i32 0, i32 2 + store %TName_List_ByStr20* %1, %TName_List_ByStr20** %"$$fundef_249_env_list_3626", align 8 + store { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$$fundef_249_cloval_3621", { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %"$retval_248", align 8, !dbg !86 + %"$$retval_248_3627" = load { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %"$retval_248", align 8 + ret { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$$retval_248_3627" +} + +define internal { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } @"$fundef_245"(%"$$fundef_245_env_560"* %0, [20 x i8]* %1) !dbg !87 { +entry: + %"$m_3608" = alloca [20 x i8]*, align 8 + store [20 x i8]* %1, [20 x i8]** %"$m_3608", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$m_3608", metadata !89, metadata !DIExpression()), !dbg !90 %m = load [20 x i8], [20 x i8]* %1, align 1 - %"$$fundef_245_env_$ListUtils.list_exists_15_3494" = getelementptr inbounds %"$$fundef_245_env_560", %"$$fundef_245_env_560"* %0, i32 0, i32 0 - %"$$ListUtils.list_exists_15_envload_3495" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_245_env_$ListUtils.list_exists_15_3494", align 8 + %"$$fundef_245_env_$ListUtils.list_exists_15_3559" = getelementptr inbounds %"$$fundef_245_env_560", %"$$fundef_245_env_560"* %0, i32 0, i32 0 + %"$$ListUtils.list_exists_15_envload_3560" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_245_env_$ListUtils.list_exists_15_3559", align 8 %"$ListUtils.list_exists_15" = alloca { i8*, i8* }*, align 8 - store { i8*, i8* }* %"$$ListUtils.list_exists_15_envload_3495", { i8*, i8* }** %"$ListUtils.list_exists_15", align 8 - %"$$fundef_245_env_f_3496" = getelementptr inbounds %"$$fundef_245_env_560", %"$$fundef_245_env_560"* %0, i32 0, i32 1 - %"$f_envload_3497" = 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_245_env_f_3496", align 8 + store { i8*, i8* }* %"$$ListUtils.list_exists_15_envload_3560", { i8*, i8* }** %"$ListUtils.list_exists_15", align 8 + %"$$fundef_245_env_f_3561" = getelementptr inbounds %"$$fundef_245_env_560", %"$$fundef_245_env_560"* %0, i32 0, i32 1 + %"$f_envload_3562" = 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_245_env_f_3561", 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_3497", { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* }* %f, align 8 + store { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$f_envload_3562", { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* }* %f, align 8 %"$retval_246" = alloca { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* }, align 8 - %"$gasrem_3498" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3499" = icmp ugt i64 1, %"$gasrem_3498" - br i1 %"$gascmp_3499", label %"$out_of_gas_3500", label %"$have_gas_3501" + %"$gasrem_3563" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3564" = icmp ugt i64 1, %"$gasrem_3563" + br i1 %"$gascmp_3564", label %"$out_of_gas_3565", label %"$have_gas_3566" -"$out_of_gas_3500": ; preds = %entry +"$out_of_gas_3565": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_3501" + br label %"$have_gas_3566" -"$have_gas_3501": ; preds = %"$out_of_gas_3500", %entry - %"$consume_3502" = sub i64 %"$gasrem_3498", 1 - store i64 %"$consume_3502", i64* @_gasrem, align 8 +"$have_gas_3566": ; preds = %"$out_of_gas_3565", %entry + %"$consume_3567" = sub i64 %"$gasrem_3563", 1 + store i64 %"$consume_3567", i64* @_gasrem, align 8 %ex_pred = alloca { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, 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" + %"$gasrem_3568" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3569" = icmp ugt i64 1, %"$gasrem_3568" + br i1 %"$gascmp_3569", label %"$out_of_gas_3570", label %"$have_gas_3571" -"$out_of_gas_3505": ; preds = %"$have_gas_3501" +"$out_of_gas_3570": ; preds = %"$have_gas_3566" call void @_out_of_gas() - br label %"$have_gas_3506" + br label %"$have_gas_3571" -"$have_gas_3506": ; preds = %"$out_of_gas_3505", %"$have_gas_3501" - %"$consume_3507" = sub i64 %"$gasrem_3503", 1 - store i64 %"$consume_3507", i64* @_gasrem, align 8 +"$have_gas_3571": ; preds = %"$out_of_gas_3570", %"$have_gas_3566" + %"$consume_3572" = sub i64 %"$gasrem_3568", 1 + store i64 %"$consume_3572", i64* @_gasrem, align 8 %"$f_87" = alloca { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, align 8 - %"$f_3508" = 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_3509" = extractvalue { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$f_3508", 0 - %"$f_envptr_3510" = extractvalue { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$f_3508", 1 - %"$f_m_3511" = alloca [20 x i8], align 1 - store [20 x i8] %m, [20 x i8]* %"$f_m_3511", align 1 - %"$f_call_3512" = call { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$f_fptr_3509"(i8* %"$f_envptr_3510", [20 x i8]* %"$f_m_3511"), !dbg !47 - store { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$f_call_3512", { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %"$f_87", align 8, !dbg !47 - %"$$f_87_3513" = load { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %"$f_87", align 8 - store { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$$f_87_3513", { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %ex_pred, align 8, !dbg !47 - %"$gasrem_3514" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3515" = icmp ugt i64 1, %"$gasrem_3514" - br i1 %"$gascmp_3515", label %"$out_of_gas_3516", label %"$have_gas_3517" - -"$out_of_gas_3516": ; preds = %"$have_gas_3506" - call void @_out_of_gas() - br label %"$have_gas_3517" - -"$have_gas_3517": ; preds = %"$out_of_gas_3516", %"$have_gas_3506" - %"$consume_3518" = sub i64 %"$gasrem_3514", 1 - store i64 %"$consume_3518", i64* @_gasrem, align 8 + %"$f_3573" = 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_3574" = extractvalue { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$f_3573", 0 + %"$f_envptr_3575" = extractvalue { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$f_3573", 1 + %"$f_m_3576" = alloca [20 x i8], align 1 + store [20 x i8] %m, [20 x i8]* %"$f_m_3576", align 1 + %"$f_call_3577" = call { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$f_fptr_3574"(i8* %"$f_envptr_3575", [20 x i8]* %"$f_m_3576"), !dbg !91 + store { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$f_call_3577", { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %"$f_87", align 8, !dbg !91 + %"$$f_87_3578" = load { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %"$f_87", align 8 + store { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$$f_87_3578", { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %ex_pred, align 8, !dbg !91 + %"$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" + +"$out_of_gas_3581": ; preds = %"$have_gas_3571" + call void @_out_of_gas() + br label %"$have_gas_3582" + +"$have_gas_3582": ; preds = %"$out_of_gas_3581", %"$have_gas_3571" + %"$consume_3583" = sub i64 %"$gasrem_3579", 1 + store i64 %"$consume_3583", 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_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_3521": ; preds = %"$have_gas_3517" - call void @_out_of_gas() - br label %"$have_gas_3522" - -"$have_gas_3522": ; preds = %"$out_of_gas_3521", %"$have_gas_3517" - %"$consume_3523" = sub i64 %"$gasrem_3519", 1 - store i64 %"$consume_3523", i64* @_gasrem, align 8 - %"$$ListUtils.list_exists_15_3524" = load { i8*, i8* }*, { i8*, i8* }** %"$ListUtils.list_exists_15", align 8 - %"$$ListUtils.list_exists_15_3525" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$$ListUtils.list_exists_15_3524", i32 0 - %"$$ListUtils.list_exists_15_3526" = bitcast { i8*, i8* }* %"$$ListUtils.list_exists_15_3525" to { { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*, i8* }* - %"$$ListUtils.list_exists_15_3527" = 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_15_3526", align 8 - %"$$ListUtils.list_exists_15_fptr_3528" = extractvalue { { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*, i8* } %"$$ListUtils.list_exists_15_3527", 0 - %"$$ListUtils.list_exists_15_envptr_3529" = extractvalue { { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*, i8* } %"$$ListUtils.list_exists_15_3527", 1 - %"$$ListUtils.list_exists_15_call_3530" = call { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } %"$$ListUtils.list_exists_15_fptr_3528"(i8* %"$$ListUtils.list_exists_15_envptr_3529"), !dbg !48 - store { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } %"$$ListUtils.list_exists_15_call_3530", { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* }* %ex, align 8, !dbg !49 - %"$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_3522" - call void @_out_of_gas() - br label %"$have_gas_3534" - -"$have_gas_3534": ; preds = %"$out_of_gas_3533", %"$have_gas_3522" - %"$consume_3535" = sub i64 %"$gasrem_3531", 1 - store i64 %"$consume_3535", i64* @_gasrem, align 8 + %"$gasrem_3584" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3585" = icmp ugt i64 1, %"$gasrem_3584" + br i1 %"$gascmp_3585", label %"$out_of_gas_3586", label %"$have_gas_3587" + +"$out_of_gas_3586": ; preds = %"$have_gas_3582" + call void @_out_of_gas() + br label %"$have_gas_3587" + +"$have_gas_3587": ; preds = %"$out_of_gas_3586", %"$have_gas_3582" + %"$consume_3588" = sub i64 %"$gasrem_3584", 1 + store i64 %"$consume_3588", i64* @_gasrem, align 8 + %"$$ListUtils.list_exists_15_3589" = load { i8*, i8* }*, { i8*, i8* }** %"$ListUtils.list_exists_15", align 8 + %"$$ListUtils.list_exists_15_3590" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$$ListUtils.list_exists_15_3589", i32 0 + %"$$ListUtils.list_exists_15_3591" = bitcast { i8*, i8* }* %"$$ListUtils.list_exists_15_3590" to { { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*, i8* }* + %"$$ListUtils.list_exists_15_3592" = 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_15_3591", align 8 + %"$$ListUtils.list_exists_15_fptr_3593" = extractvalue { { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*, i8* } %"$$ListUtils.list_exists_15_3592", 0 + %"$$ListUtils.list_exists_15_envptr_3594" = extractvalue { { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*, i8* } %"$$ListUtils.list_exists_15_3592", 1 + %"$$ListUtils.list_exists_15_call_3595" = call { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } %"$$ListUtils.list_exists_15_fptr_3593"(i8* %"$$ListUtils.list_exists_15_envptr_3594"), !dbg !92 + store { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } %"$$ListUtils.list_exists_15_call_3595", { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* }* %ex, align 8, !dbg !93 + %"$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_3587" + call void @_out_of_gas() + br label %"$have_gas_3599" + +"$have_gas_3599": ; preds = %"$out_of_gas_3598", %"$have_gas_3587" + %"$consume_3600" = sub i64 %"$gasrem_3596", 1 + store i64 %"$consume_3600", i64* @_gasrem, align 8 %"$ex_88" = alloca { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* }, align 8 - %"$ex_3536" = 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_3537" = extractvalue { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } %"$ex_3536", 0 - %"$ex_envptr_3538" = extractvalue { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } %"$ex_3536", 1 - %"$ex_pred_3539" = load { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %ex_pred, align 8 - %"$ex_call_3540" = call { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } %"$ex_fptr_3537"(i8* %"$ex_envptr_3538", { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$ex_pred_3539"), !dbg !50 - store { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } %"$ex_call_3540", { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* }* %"$ex_88", align 8, !dbg !50 - %"$$ex_88_3541" = load { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* }, { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* }* %"$ex_88", align 8 - store { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } %"$$ex_88_3541", { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* }* %"$retval_246", align 8, !dbg !50 - %"$$retval_246_3542" = load { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* }, { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* }* %"$retval_246", align 8 - ret { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } %"$$retval_246_3542" -} - -define internal { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } @"$fundef_243"(%"$$fundef_243_env_561"* %0, { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } %1) !dbg !51 { -entry: - %"$$fundef_243_env_$ListUtils.list_exists_15_3479" = getelementptr inbounds %"$$fundef_243_env_561", %"$$fundef_243_env_561"* %0, i32 0, i32 0 - %"$$ListUtils.list_exists_15_envload_3480" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_243_env_$ListUtils.list_exists_15_3479", align 8 + %"$ex_3601" = 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_3602" = extractvalue { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } %"$ex_3601", 0 + %"$ex_envptr_3603" = extractvalue { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } %"$ex_3601", 1 + %"$ex_pred_3604" = load { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %ex_pred, align 8 + %"$ex_call_3605" = call { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } %"$ex_fptr_3602"(i8* %"$ex_envptr_3603", { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$ex_pred_3604"), !dbg !94 + store { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } %"$ex_call_3605", { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* }* %"$ex_88", align 8, !dbg !94 + %"$$ex_88_3606" = load { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* }, { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* }* %"$ex_88", align 8 + store { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } %"$$ex_88_3606", { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* }* %"$retval_246", align 8, !dbg !94 + %"$$retval_246_3607" = load { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* }, { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* }* %"$retval_246", align 8 + ret { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } %"$$retval_246_3607" +} + +define internal { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } @"$fundef_243"(%"$$fundef_243_env_561"* %0, { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } %1) !dbg !95 { +entry: + %"$$fundef_243_env_$ListUtils.list_exists_15_3544" = getelementptr inbounds %"$$fundef_243_env_561", %"$$fundef_243_env_561"* %0, i32 0, i32 0 + %"$$ListUtils.list_exists_15_envload_3545" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_243_env_$ListUtils.list_exists_15_3544", align 8 %"$ListUtils.list_exists_15" = alloca { i8*, i8* }*, align 8 - store { i8*, i8* }* %"$$ListUtils.list_exists_15_envload_3480", { i8*, i8* }** %"$ListUtils.list_exists_15", align 8 + store { i8*, i8* }* %"$$ListUtils.list_exists_15_envload_3545", { i8*, i8* }** %"$ListUtils.list_exists_15", align 8 %"$retval_244" = alloca { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* }, align 8 - %"$gasrem_3481" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3482" = icmp ugt i64 1, %"$gasrem_3481" - br i1 %"$gascmp_3482", label %"$out_of_gas_3483", label %"$have_gas_3484" - -"$out_of_gas_3483": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_3484" - -"$have_gas_3484": ; preds = %"$out_of_gas_3483", %entry - %"$consume_3485" = sub i64 %"$gasrem_3481", 1 - store i64 %"$consume_3485", i64* @_gasrem, align 8 - %"$$fundef_245_envp_3486_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_245_envp_3486_salloc" = call i8* @_salloc(i8* %"$$fundef_245_envp_3486_load", i64 24) - %"$$fundef_245_envp_3486" = bitcast i8* %"$$fundef_245_envp_3486_salloc" to %"$$fundef_245_env_560"* - %"$$fundef_245_env_voidp_3488" = bitcast %"$$fundef_245_env_560"* %"$$fundef_245_envp_3486" to i8* - %"$$fundef_245_cloval_3489" = 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_245_env_560"*, [20 x i8]*)* @"$fundef_245" to { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*), i8* undef }, i8* %"$$fundef_245_env_voidp_3488", 1 - %"$$fundef_245_env_$ListUtils.list_exists_15_3490" = getelementptr inbounds %"$$fundef_245_env_560", %"$$fundef_245_env_560"* %"$$fundef_245_envp_3486", i32 0, i32 0 - %"$$ListUtils.list_exists_15_3491" = load { i8*, i8* }*, { i8*, i8* }** %"$ListUtils.list_exists_15", align 8 - store { i8*, i8* }* %"$$ListUtils.list_exists_15_3491", { i8*, i8* }** %"$$fundef_245_env_$ListUtils.list_exists_15_3490", align 8 - %"$$fundef_245_env_f_3492" = getelementptr inbounds %"$$fundef_245_env_560", %"$$fundef_245_env_560"* %"$$fundef_245_envp_3486", 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_245_env_f_3492", align 8 - store { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$$fundef_245_cloval_3489", { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* }* %"$retval_244", align 8, !dbg !52 - %"$$retval_244_3493" = 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_244", align 8 - ret { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$$retval_244_3493" -} - -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_241"(%"$$fundef_241_env_562"* %0) !dbg !53 { -entry: - %"$$fundef_241_env_$ListUtils.list_exists_15_3465" = getelementptr inbounds %"$$fundef_241_env_562", %"$$fundef_241_env_562"* %0, i32 0, i32 0 - %"$$ListUtils.list_exists_15_envload_3466" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_241_env_$ListUtils.list_exists_15_3465", align 8 + %"$gasrem_3546" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3547" = icmp ugt i64 1, %"$gasrem_3546" + br i1 %"$gascmp_3547", label %"$out_of_gas_3548", label %"$have_gas_3549" + +"$out_of_gas_3548": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_3549" + +"$have_gas_3549": ; preds = %"$out_of_gas_3548", %entry + %"$consume_3550" = sub i64 %"$gasrem_3546", 1 + store i64 %"$consume_3550", i64* @_gasrem, align 8 + %"$$fundef_245_envp_3551_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_245_envp_3551_salloc" = call i8* @_salloc(i8* %"$$fundef_245_envp_3551_load", i64 24) + %"$$fundef_245_envp_3551" = bitcast i8* %"$$fundef_245_envp_3551_salloc" to %"$$fundef_245_env_560"* + %"$$fundef_245_env_voidp_3553" = bitcast %"$$fundef_245_env_560"* %"$$fundef_245_envp_3551" to i8* + %"$$fundef_245_cloval_3554" = 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_245_env_560"*, [20 x i8]*)* @"$fundef_245" to { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*), i8* undef }, i8* %"$$fundef_245_env_voidp_3553", 1 + %"$$fundef_245_env_$ListUtils.list_exists_15_3555" = getelementptr inbounds %"$$fundef_245_env_560", %"$$fundef_245_env_560"* %"$$fundef_245_envp_3551", i32 0, i32 0 + %"$$ListUtils.list_exists_15_3556" = load { i8*, i8* }*, { i8*, i8* }** %"$ListUtils.list_exists_15", align 8 + store { i8*, i8* }* %"$$ListUtils.list_exists_15_3556", { i8*, i8* }** %"$$fundef_245_env_$ListUtils.list_exists_15_3555", align 8 + %"$$fundef_245_env_f_3557" = getelementptr inbounds %"$$fundef_245_env_560", %"$$fundef_245_env_560"* %"$$fundef_245_envp_3551", 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_245_env_f_3557", align 8 + store { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$$fundef_245_cloval_3554", { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* }* %"$retval_244", align 8, !dbg !96 + %"$$retval_244_3558" = 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_244", align 8 + ret { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$$retval_244_3558" +} + +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_241"(%"$$fundef_241_env_562"* %0) !dbg !97 { +entry: + %"$$fundef_241_env_$ListUtils.list_exists_15_3530" = getelementptr inbounds %"$$fundef_241_env_562", %"$$fundef_241_env_562"* %0, i32 0, i32 0 + %"$$ListUtils.list_exists_15_envload_3531" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_241_env_$ListUtils.list_exists_15_3530", align 8 %"$ListUtils.list_exists_15" = alloca { i8*, i8* }*, align 8 - store { i8*, i8* }* %"$$ListUtils.list_exists_15_envload_3466", { i8*, i8* }** %"$ListUtils.list_exists_15", align 8 + store { i8*, i8* }* %"$$ListUtils.list_exists_15_envload_3531", { i8*, i8* }** %"$ListUtils.list_exists_15", align 8 %"$retval_242" = 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_3467" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3468" = icmp ugt i64 1, %"$gasrem_3467" - br i1 %"$gascmp_3468", label %"$out_of_gas_3469", label %"$have_gas_3470" - -"$out_of_gas_3469": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_3470" - -"$have_gas_3470": ; preds = %"$out_of_gas_3469", %entry - %"$consume_3471" = sub i64 %"$gasrem_3467", 1 - store i64 %"$consume_3471", i64* @_gasrem, align 8 - %"$$fundef_243_envp_3472_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_243_envp_3472_salloc" = call i8* @_salloc(i8* %"$$fundef_243_envp_3472_load", i64 8) - %"$$fundef_243_envp_3472" = bitcast i8* %"$$fundef_243_envp_3472_salloc" to %"$$fundef_243_env_561"* - %"$$fundef_243_env_voidp_3474" = bitcast %"$$fundef_243_env_561"* %"$$fundef_243_envp_3472" to i8* - %"$$fundef_243_cloval_3475" = 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_243_env_561"*, { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* })* @"$fundef_243" 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_243_env_voidp_3474", 1 - %"$$fundef_243_env_$ListUtils.list_exists_15_3476" = getelementptr inbounds %"$$fundef_243_env_561", %"$$fundef_243_env_561"* %"$$fundef_243_envp_3472", i32 0, i32 0 - %"$$ListUtils.list_exists_15_3477" = load { i8*, i8* }*, { i8*, i8* }** %"$ListUtils.list_exists_15", align 8 - store { i8*, i8* }* %"$$ListUtils.list_exists_15_3477", { i8*, i8* }** %"$$fundef_243_env_$ListUtils.list_exists_15_3476", 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_243_cloval_3475", { { { %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_242", align 8, !dbg !54 - %"$$retval_242_3478" = 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_242", 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_242_3478" -} - -define internal %TName_Bool* @"$fundef_239"(%"$$fundef_239_env_563"* %0, %TName_List_ByStr20* %1) !dbg !55 { -entry: - %"$$fundef_239_env_$ListUtils.list_find_14_3391" = getelementptr inbounds %"$$fundef_239_env_563", %"$$fundef_239_env_563"* %0, i32 0, i32 0 - %"$$ListUtils.list_find_14_envload_3392" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_239_env_$ListUtils.list_find_14_3391", align 8 + %"$gasrem_3532" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3533" = icmp ugt i64 1, %"$gasrem_3532" + br i1 %"$gascmp_3533", label %"$out_of_gas_3534", label %"$have_gas_3535" + +"$out_of_gas_3534": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_3535" + +"$have_gas_3535": ; preds = %"$out_of_gas_3534", %entry + %"$consume_3536" = sub i64 %"$gasrem_3532", 1 + store i64 %"$consume_3536", i64* @_gasrem, align 8 + %"$$fundef_243_envp_3537_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_243_envp_3537_salloc" = call i8* @_salloc(i8* %"$$fundef_243_envp_3537_load", i64 8) + %"$$fundef_243_envp_3537" = bitcast i8* %"$$fundef_243_envp_3537_salloc" to %"$$fundef_243_env_561"* + %"$$fundef_243_env_voidp_3539" = bitcast %"$$fundef_243_env_561"* %"$$fundef_243_envp_3537" to i8* + %"$$fundef_243_cloval_3540" = 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_243_env_561"*, { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* })* @"$fundef_243" 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_243_env_voidp_3539", 1 + %"$$fundef_243_env_$ListUtils.list_exists_15_3541" = getelementptr inbounds %"$$fundef_243_env_561", %"$$fundef_243_env_561"* %"$$fundef_243_envp_3537", i32 0, i32 0 + %"$$ListUtils.list_exists_15_3542" = load { i8*, i8* }*, { i8*, i8* }** %"$ListUtils.list_exists_15", align 8 + store { i8*, i8* }* %"$$ListUtils.list_exists_15_3542", { i8*, i8* }** %"$$fundef_243_env_$ListUtils.list_exists_15_3541", 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_243_cloval_3540", { { { %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_242", align 8, !dbg !98 + %"$$retval_242_3543" = 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_242", 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_242_3543" +} + +define internal %TName_Bool* @"$fundef_239"(%"$$fundef_239_env_563"* %0, %TName_List_ByStr20* %1) !dbg !99 { +entry: + %"$ls_3529" = alloca %TName_List_ByStr20*, align 8 + store %TName_List_ByStr20* %1, %TName_List_ByStr20** %"$ls_3529", align 8 + call void @llvm.dbg.declare(metadata %TName_List_ByStr20** %"$ls_3529", metadata !100, metadata !DIExpression()), !dbg !101 + %"$$fundef_239_env_$ListUtils.list_find_14_3455" = getelementptr inbounds %"$$fundef_239_env_563", %"$$fundef_239_env_563"* %0, i32 0, i32 0 + %"$$ListUtils.list_find_14_envload_3456" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_239_env_$ListUtils.list_find_14_3455", align 8 %"$ListUtils.list_find_14" = alloca { i8*, i8* }*, align 8 - store { i8*, i8* }* %"$$ListUtils.list_find_14_envload_3392", { i8*, i8* }** %"$ListUtils.list_find_14", align 8 - %"$$fundef_239_env_p_3393" = getelementptr inbounds %"$$fundef_239_env_563", %"$$fundef_239_env_563"* %0, i32 0, i32 1 - %"$p_envload_3394" = load { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %"$$fundef_239_env_p_3393", align 8 + store { i8*, i8* }* %"$$ListUtils.list_find_14_envload_3456", { i8*, i8* }** %"$ListUtils.list_find_14", align 8 + %"$$fundef_239_env_p_3457" = getelementptr inbounds %"$$fundef_239_env_563", %"$$fundef_239_env_563"* %0, i32 0, i32 1 + %"$p_envload_3458" = load { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %"$$fundef_239_env_p_3457", align 8 %p = alloca { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, align 8 - store { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$p_envload_3394", { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %p, align 8 + store { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$p_envload_3458", { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %p, align 8 %"$retval_240" = alloca %TName_Bool*, 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" + call void @llvm.dbg.declare(metadata %TName_Bool** %"$retval_240", metadata !102, metadata !DIExpression()), !dbg !103 + %"$gasrem_3459" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3460" = icmp ugt i64 1, %"$gasrem_3459" + br i1 %"$gascmp_3460", label %"$out_of_gas_3461", label %"$have_gas_3462" -"$out_of_gas_3397": ; preds = %entry +"$out_of_gas_3461": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_3398" + br label %"$have_gas_3462" -"$have_gas_3398": ; preds = %"$out_of_gas_3397", %entry - %"$consume_3399" = sub i64 %"$gasrem_3395", 1 - store i64 %"$consume_3399", i64* @_gasrem, align 8 +"$have_gas_3462": ; preds = %"$out_of_gas_3461", %entry + %"$consume_3463" = sub i64 %"$gasrem_3459", 1 + store i64 %"$consume_3463", 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_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 - %"$$ListUtils.list_find_14_3405" = load { i8*, i8* }*, { i8*, i8* }** %"$ListUtils.list_find_14", align 8 - %"$$ListUtils.list_find_14_3406" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$$ListUtils.list_find_14_3405", i32 0 - %"$$ListUtils.list_find_14_3407" = bitcast { i8*, i8* }* %"$$ListUtils.list_find_14_3406" to { { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*, i8* }* - %"$$ListUtils.list_find_14_3408" = 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_14_3407", align 8 - %"$$ListUtils.list_find_14_fptr_3409" = extractvalue { { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*, i8* } %"$$ListUtils.list_find_14_3408", 0 - %"$$ListUtils.list_find_14_envptr_3410" = extractvalue { { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*, i8* } %"$$ListUtils.list_find_14_3408", 1 - %"$$ListUtils.list_find_14_call_3411" = call { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } %"$$ListUtils.list_find_14_fptr_3409"(i8* %"$$ListUtils.list_find_14_envptr_3410"), !dbg !56 - store { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } %"$$ListUtils.list_find_14_call_3411", { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* }* %find, align 8, !dbg !57 - %"$gasrem_3412" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3413" = icmp ugt i64 1, %"$gasrem_3412" - br i1 %"$gascmp_3413", label %"$out_of_gas_3414", label %"$have_gas_3415" - -"$out_of_gas_3414": ; preds = %"$have_gas_3403" - call void @_out_of_gas() - br label %"$have_gas_3415" - -"$have_gas_3415": ; preds = %"$out_of_gas_3414", %"$have_gas_3403" - %"$consume_3416" = sub i64 %"$gasrem_3412", 1 - store i64 %"$consume_3416", i64* @_gasrem, align 8 + %"$gasrem_3464" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3465" = icmp ugt i64 1, %"$gasrem_3464" + br i1 %"$gascmp_3465", label %"$out_of_gas_3466", label %"$have_gas_3467" + +"$out_of_gas_3466": ; preds = %"$have_gas_3462" + call void @_out_of_gas() + br label %"$have_gas_3467" + +"$have_gas_3467": ; preds = %"$out_of_gas_3466", %"$have_gas_3462" + %"$consume_3468" = sub i64 %"$gasrem_3464", 1 + store i64 %"$consume_3468", i64* @_gasrem, align 8 + %"$$ListUtils.list_find_14_3469" = load { i8*, i8* }*, { i8*, i8* }** %"$ListUtils.list_find_14", align 8 + %"$$ListUtils.list_find_14_3470" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$$ListUtils.list_find_14_3469", i32 0 + %"$$ListUtils.list_find_14_3471" = bitcast { i8*, i8* }* %"$$ListUtils.list_find_14_3470" to { { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*, i8* }* + %"$$ListUtils.list_find_14_3472" = 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_14_3471", align 8 + %"$$ListUtils.list_find_14_fptr_3473" = extractvalue { { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*, i8* } %"$$ListUtils.list_find_14_3472", 0 + %"$$ListUtils.list_find_14_envptr_3474" = extractvalue { { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*, i8* } %"$$ListUtils.list_find_14_3472", 1 + %"$$ListUtils.list_find_14_call_3475" = call { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } %"$$ListUtils.list_find_14_fptr_3473"(i8* %"$$ListUtils.list_find_14_envptr_3474"), !dbg !104 + store { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } %"$$ListUtils.list_find_14_call_3475", { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* }* %find, align 8, !dbg !105 + %"$gasrem_3476" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3477" = icmp ugt i64 1, %"$gasrem_3476" + br i1 %"$gascmp_3477", label %"$out_of_gas_3478", label %"$have_gas_3479" + +"$out_of_gas_3478": ; preds = %"$have_gas_3467" + call void @_out_of_gas() + br label %"$have_gas_3479" + +"$have_gas_3479": ; preds = %"$out_of_gas_3478", %"$have_gas_3467" + %"$consume_3480" = sub i64 %"$gasrem_3476", 1 + store i64 %"$consume_3480", i64* @_gasrem, align 8 %search = alloca %TName_Option_ByStr20*, align 8 - %"$gasrem_3417" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3418" = icmp ugt i64 1, %"$gasrem_3417" - br i1 %"$gascmp_3418", label %"$out_of_gas_3419", label %"$have_gas_3420" + call void @llvm.dbg.declare(metadata %TName_Option_ByStr20** %search, metadata !106, metadata !DIExpression()), !dbg !107 + %"$gasrem_3481" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3482" = icmp ugt i64 1, %"$gasrem_3481" + br i1 %"$gascmp_3482", label %"$out_of_gas_3483", label %"$have_gas_3484" -"$out_of_gas_3419": ; preds = %"$have_gas_3415" +"$out_of_gas_3483": ; preds = %"$have_gas_3479" call void @_out_of_gas() - br label %"$have_gas_3420" + br label %"$have_gas_3484" -"$have_gas_3420": ; preds = %"$out_of_gas_3419", %"$have_gas_3415" - %"$consume_3421" = sub i64 %"$gasrem_3417", 1 - store i64 %"$consume_3421", i64* @_gasrem, align 8 +"$have_gas_3484": ; preds = %"$out_of_gas_3483", %"$have_gas_3479" + %"$consume_3485" = sub i64 %"$gasrem_3481", 1 + store i64 %"$consume_3485", i64* @_gasrem, align 8 %"$find_85" = alloca { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }, align 8 - %"$find_3422" = 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_3423" = extractvalue { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } %"$find_3422", 0 - %"$find_envptr_3424" = extractvalue { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } %"$find_3422", 1 - %"$p_3425" = load { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %p, align 8 - %"$find_call_3426" = call { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$find_fptr_3423"(i8* %"$find_envptr_3424", { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$p_3425"), !dbg !58 - store { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$find_call_3426", { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }* %"$find_85", align 8, !dbg !58 + %"$find_3486" = 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_3487" = extractvalue { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } %"$find_3486", 0 + %"$find_envptr_3488" = extractvalue { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } %"$find_3486", 1 + %"$p_3489" = load { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %p, align 8 + %"$find_call_3490" = call { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$find_fptr_3487"(i8* %"$find_envptr_3488", { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$p_3489"), !dbg !108 + store { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$find_call_3490", { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }* %"$find_85", align 8, !dbg !108 %"$find_86" = alloca %TName_Option_ByStr20*, align 8 - %"$$find_85_3427" = load { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }, { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }* %"$find_85", align 8 - %"$$find_85_fptr_3428" = extractvalue { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$$find_85_3427", 0 - %"$$find_85_envptr_3429" = extractvalue { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$$find_85_3427", 1 - %"$$find_85_call_3430" = call %TName_Option_ByStr20* %"$$find_85_fptr_3428"(i8* %"$$find_85_envptr_3429", %TName_List_ByStr20* %1), !dbg !58 - store %TName_Option_ByStr20* %"$$find_85_call_3430", %TName_Option_ByStr20** %"$find_86", align 8, !dbg !58 - %"$$find_86_3431" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %"$find_86", align 8 - store %TName_Option_ByStr20* %"$$find_86_3431", %TName_Option_ByStr20** %search, align 8, !dbg !58 - %"$gasrem_3432" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3433" = icmp ugt i64 2, %"$gasrem_3432" - br i1 %"$gascmp_3433", label %"$out_of_gas_3434", label %"$have_gas_3435" - -"$out_of_gas_3434": ; preds = %"$have_gas_3420" - call void @_out_of_gas() - br label %"$have_gas_3435" - -"$have_gas_3435": ; preds = %"$out_of_gas_3434", %"$have_gas_3420" - %"$consume_3436" = sub i64 %"$gasrem_3432", 2 - store i64 %"$consume_3436", i64* @_gasrem, align 8 - %"$search_3438" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %search, align 8 - %"$search_tag_3439" = getelementptr inbounds %TName_Option_ByStr20, %TName_Option_ByStr20* %"$search_3438", i32 0, i32 0 - %"$search_tag_3440" = load i8, i8* %"$search_tag_3439", align 1 - switch i8 %"$search_tag_3440", label %"$empty_default_3441" [ - i8 0, label %"$Some_3442" - i8 1, label %"$None_3454" - ], !dbg !59 - -"$Some_3442": ; preds = %"$have_gas_3435" - %"$search_3443" = bitcast %TName_Option_ByStr20* %"$search_3438" to %CName_Some_ByStr20* - %"$$search_24_gep_3444" = getelementptr inbounds %CName_Some_ByStr20, %CName_Some_ByStr20* %"$search_3443", i32 0, i32 1 - %"$$search_24_load_3445" = load [20 x i8], [20 x i8]* %"$$search_24_gep_3444", align 1 + call void @llvm.dbg.declare(metadata %TName_Option_ByStr20** %"$find_86", metadata !109, metadata !DIExpression()), !dbg !108 + %"$$find_85_3491" = load { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }, { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }* %"$find_85", align 8 + %"$$find_85_fptr_3492" = extractvalue { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$$find_85_3491", 0 + %"$$find_85_envptr_3493" = extractvalue { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$$find_85_3491", 1 + %"$$find_85_call_3494" = call %TName_Option_ByStr20* %"$$find_85_fptr_3492"(i8* %"$$find_85_envptr_3493", %TName_List_ByStr20* %1), !dbg !108 + store %TName_Option_ByStr20* %"$$find_85_call_3494", %TName_Option_ByStr20** %"$find_86", align 8, !dbg !108 + %"$$find_86_3495" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %"$find_86", align 8 + store %TName_Option_ByStr20* %"$$find_86_3495", %TName_Option_ByStr20** %search, align 8, !dbg !108 + %"$gasrem_3496" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3497" = icmp ugt i64 2, %"$gasrem_3496" + br i1 %"$gascmp_3497", label %"$out_of_gas_3498", label %"$have_gas_3499" + +"$out_of_gas_3498": ; preds = %"$have_gas_3484" + call void @_out_of_gas() + br label %"$have_gas_3499" + +"$have_gas_3499": ; preds = %"$out_of_gas_3498", %"$have_gas_3484" + %"$consume_3500" = sub i64 %"$gasrem_3496", 2 + store i64 %"$consume_3500", i64* @_gasrem, align 8 + %"$search_3502" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %search, align 8 + %"$search_tag_3503" = getelementptr inbounds %TName_Option_ByStr20, %TName_Option_ByStr20* %"$search_3502", i32 0, i32 0 + %"$search_tag_3504" = load i8, i8* %"$search_tag_3503", align 1 + switch i8 %"$search_tag_3504", label %"$empty_default_3505" [ + i8 0, label %"$Some_3506" + i8 1, label %"$None_3518" + ], !dbg !110 + +"$Some_3506": ; preds = %"$have_gas_3499" + %"$search_3507" = bitcast %TName_Option_ByStr20* %"$search_3502" to %CName_Some_ByStr20* + %"$$search_24_gep_3508" = getelementptr inbounds %CName_Some_ByStr20, %CName_Some_ByStr20* %"$search_3507", i32 0, i32 1 + %"$$search_24_load_3509" = load [20 x i8], [20 x i8]* %"$$search_24_gep_3508", align 1 %"$search_24" = alloca [20 x i8], align 1 - store [20 x i8] %"$$search_24_load_3445", [20 x i8]* %"$search_24", align 1 - %"$gasrem_3446" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3447" = icmp ugt i64 1, %"$gasrem_3446" - br i1 %"$gascmp_3447", label %"$out_of_gas_3448", label %"$have_gas_3449" - -"$out_of_gas_3448": ; preds = %"$Some_3442" - call void @_out_of_gas() - br label %"$have_gas_3449" - -"$have_gas_3449": ; preds = %"$out_of_gas_3448", %"$Some_3442" - %"$consume_3450" = sub i64 %"$gasrem_3446", 1 - store i64 %"$consume_3450", i64* @_gasrem, align 8 - %"$adtval_3451_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_3451_salloc" = call i8* @_salloc(i8* %"$adtval_3451_load", i64 1) - %"$adtval_3451" = bitcast i8* %"$adtval_3451_salloc" to %CName_True* - %"$adtgep_3452" = getelementptr inbounds %CName_True, %CName_True* %"$adtval_3451", i32 0, i32 0 - store i8 0, i8* %"$adtgep_3452", align 1 - %"$adtptr_3453" = bitcast %CName_True* %"$adtval_3451" to %TName_Bool* - store %TName_Bool* %"$adtptr_3453", %TName_Bool** %"$retval_240", align 8, !dbg !60 - br label %"$matchsucc_3437" - -"$None_3454": ; preds = %"$have_gas_3435" - %"$search_3455" = bitcast %TName_Option_ByStr20* %"$search_3438" to %CName_None_ByStr20* - %"$gasrem_3456" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3457" = icmp ugt i64 1, %"$gasrem_3456" - br i1 %"$gascmp_3457", label %"$out_of_gas_3458", label %"$have_gas_3459" - -"$out_of_gas_3458": ; preds = %"$None_3454" - call void @_out_of_gas() - br label %"$have_gas_3459" - -"$have_gas_3459": ; preds = %"$out_of_gas_3458", %"$None_3454" - %"$consume_3460" = sub i64 %"$gasrem_3456", 1 - store i64 %"$consume_3460", i64* @_gasrem, align 8 - %"$adtval_3461_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_3461_salloc" = call i8* @_salloc(i8* %"$adtval_3461_load", i64 1) - %"$adtval_3461" = bitcast i8* %"$adtval_3461_salloc" to %CName_False* - %"$adtgep_3462" = getelementptr inbounds %CName_False, %CName_False* %"$adtval_3461", i32 0, i32 0 - store i8 1, i8* %"$adtgep_3462", align 1 - %"$adtptr_3463" = bitcast %CName_False* %"$adtval_3461" to %TName_Bool* - store %TName_Bool* %"$adtptr_3463", %TName_Bool** %"$retval_240", align 8, !dbg !63 - br label %"$matchsucc_3437" - -"$empty_default_3441": ; preds = %"$have_gas_3435" - br label %"$matchsucc_3437" - -"$matchsucc_3437": ; preds = %"$have_gas_3459", %"$have_gas_3449", %"$empty_default_3441" - %"$$retval_240_3464" = load %TName_Bool*, %TName_Bool** %"$retval_240", align 8 - ret %TName_Bool* %"$$retval_240_3464" -} - -define internal { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } @"$fundef_237"(%"$$fundef_237_env_564"* %0, { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %1) !dbg !65 { -entry: - %"$$fundef_237_env_$ListUtils.list_find_14_3376" = getelementptr inbounds %"$$fundef_237_env_564", %"$$fundef_237_env_564"* %0, i32 0, i32 0 - %"$$ListUtils.list_find_14_envload_3377" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_237_env_$ListUtils.list_find_14_3376", align 8 + store [20 x i8] %"$$search_24_load_3509", [20 x i8]* %"$search_24", align 1 + %"$gasrem_3510" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3511" = icmp ugt i64 1, %"$gasrem_3510" + br i1 %"$gascmp_3511", label %"$out_of_gas_3512", label %"$have_gas_3513" + +"$out_of_gas_3512": ; preds = %"$Some_3506" + call void @_out_of_gas() + br label %"$have_gas_3513" + +"$have_gas_3513": ; preds = %"$out_of_gas_3512", %"$Some_3506" + %"$consume_3514" = sub i64 %"$gasrem_3510", 1 + store i64 %"$consume_3514", i64* @_gasrem, align 8 + %"$adtval_3515_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_3515_salloc" = call i8* @_salloc(i8* %"$adtval_3515_load", i64 1) + %"$adtval_3515" = bitcast i8* %"$adtval_3515_salloc" to %CName_True* + %"$adtgep_3516" = getelementptr inbounds %CName_True, %CName_True* %"$adtval_3515", i32 0, i32 0 + store i8 0, i8* %"$adtgep_3516", align 1 + %"$adtptr_3517" = bitcast %CName_True* %"$adtval_3515" to %TName_Bool* + store %TName_Bool* %"$adtptr_3517", %TName_Bool** %"$retval_240", align 8, !dbg !111 + br label %"$matchsucc_3501" + +"$None_3518": ; preds = %"$have_gas_3499" + %"$search_3519" = bitcast %TName_Option_ByStr20* %"$search_3502" to %CName_None_ByStr20* + %"$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" + +"$out_of_gas_3522": ; preds = %"$None_3518" + call void @_out_of_gas() + br label %"$have_gas_3523" + +"$have_gas_3523": ; preds = %"$out_of_gas_3522", %"$None_3518" + %"$consume_3524" = sub i64 %"$gasrem_3520", 1 + store i64 %"$consume_3524", i64* @_gasrem, align 8 + %"$adtval_3525_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_3525_salloc" = call i8* @_salloc(i8* %"$adtval_3525_load", i64 1) + %"$adtval_3525" = bitcast i8* %"$adtval_3525_salloc" to %CName_False* + %"$adtgep_3526" = getelementptr inbounds %CName_False, %CName_False* %"$adtval_3525", i32 0, i32 0 + store i8 1, i8* %"$adtgep_3526", align 1 + %"$adtptr_3527" = bitcast %CName_False* %"$adtval_3525" to %TName_Bool* + store %TName_Bool* %"$adtptr_3527", %TName_Bool** %"$retval_240", align 8, !dbg !114 + br label %"$matchsucc_3501" + +"$empty_default_3505": ; preds = %"$have_gas_3499" + br label %"$matchsucc_3501" + +"$matchsucc_3501": ; preds = %"$have_gas_3523", %"$have_gas_3513", %"$empty_default_3505" + %"$$retval_240_3528" = load %TName_Bool*, %TName_Bool** %"$retval_240", align 8 + ret %TName_Bool* %"$$retval_240_3528" +} + +define internal { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } @"$fundef_237"(%"$$fundef_237_env_564"* %0, { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %1) !dbg !116 { +entry: + %"$$fundef_237_env_$ListUtils.list_find_14_3440" = getelementptr inbounds %"$$fundef_237_env_564", %"$$fundef_237_env_564"* %0, i32 0, i32 0 + %"$$ListUtils.list_find_14_envload_3441" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_237_env_$ListUtils.list_find_14_3440", align 8 %"$ListUtils.list_find_14" = alloca { i8*, i8* }*, align 8 - store { i8*, i8* }* %"$$ListUtils.list_find_14_envload_3377", { i8*, i8* }** %"$ListUtils.list_find_14", align 8 + store { i8*, i8* }* %"$$ListUtils.list_find_14_envload_3441", { i8*, i8* }** %"$ListUtils.list_find_14", align 8 %"$retval_238" = alloca { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* }, align 8 - %"$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 = %entry - call void @_out_of_gas() - br label %"$have_gas_3381" - -"$have_gas_3381": ; preds = %"$out_of_gas_3380", %entry - %"$consume_3382" = sub i64 %"$gasrem_3378", 1 - store i64 %"$consume_3382", i64* @_gasrem, align 8 - %"$$fundef_239_envp_3383_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_239_envp_3383_salloc" = call i8* @_salloc(i8* %"$$fundef_239_envp_3383_load", i64 24) - %"$$fundef_239_envp_3383" = bitcast i8* %"$$fundef_239_envp_3383_salloc" to %"$$fundef_239_env_563"* - %"$$fundef_239_env_voidp_3385" = bitcast %"$$fundef_239_env_563"* %"$$fundef_239_envp_3383" to i8* - %"$$fundef_239_cloval_3386" = insertvalue { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } { %TName_Bool* (i8*, %TName_List_ByStr20*)* bitcast (%TName_Bool* (%"$$fundef_239_env_563"*, %TName_List_ByStr20*)* @"$fundef_239" to %TName_Bool* (i8*, %TName_List_ByStr20*)*), i8* undef }, i8* %"$$fundef_239_env_voidp_3385", 1 - %"$$fundef_239_env_$ListUtils.list_find_14_3387" = getelementptr inbounds %"$$fundef_239_env_563", %"$$fundef_239_env_563"* %"$$fundef_239_envp_3383", i32 0, i32 0 - %"$$ListUtils.list_find_14_3388" = load { i8*, i8* }*, { i8*, i8* }** %"$ListUtils.list_find_14", align 8 - store { i8*, i8* }* %"$$ListUtils.list_find_14_3388", { i8*, i8* }** %"$$fundef_239_env_$ListUtils.list_find_14_3387", align 8 - %"$$fundef_239_env_p_3389" = getelementptr inbounds %"$$fundef_239_env_563", %"$$fundef_239_env_563"* %"$$fundef_239_envp_3383", i32 0, i32 1 - store { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %1, { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %"$$fundef_239_env_p_3389", align 8 - store { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } %"$$fundef_239_cloval_3386", { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* }* %"$retval_238", align 8, !dbg !66 - %"$$retval_238_3390" = load { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* }, { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* }* %"$retval_238", align 8 - ret { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } %"$$retval_238_3390" -} - -define internal { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } @"$fundef_235"(%"$$fundef_235_env_565"* %0) !dbg !67 { -entry: - %"$$fundef_235_env_$ListUtils.list_find_14_3362" = getelementptr inbounds %"$$fundef_235_env_565", %"$$fundef_235_env_565"* %0, i32 0, i32 0 - %"$$ListUtils.list_find_14_envload_3363" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_235_env_$ListUtils.list_find_14_3362", align 8 + %"$gasrem_3442" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3443" = icmp ugt i64 1, %"$gasrem_3442" + br i1 %"$gascmp_3443", label %"$out_of_gas_3444", label %"$have_gas_3445" + +"$out_of_gas_3444": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_3445" + +"$have_gas_3445": ; preds = %"$out_of_gas_3444", %entry + %"$consume_3446" = sub i64 %"$gasrem_3442", 1 + store i64 %"$consume_3446", i64* @_gasrem, align 8 + %"$$fundef_239_envp_3447_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_239_envp_3447_salloc" = call i8* @_salloc(i8* %"$$fundef_239_envp_3447_load", i64 24) + %"$$fundef_239_envp_3447" = bitcast i8* %"$$fundef_239_envp_3447_salloc" to %"$$fundef_239_env_563"* + %"$$fundef_239_env_voidp_3449" = bitcast %"$$fundef_239_env_563"* %"$$fundef_239_envp_3447" to i8* + %"$$fundef_239_cloval_3450" = insertvalue { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } { %TName_Bool* (i8*, %TName_List_ByStr20*)* bitcast (%TName_Bool* (%"$$fundef_239_env_563"*, %TName_List_ByStr20*)* @"$fundef_239" to %TName_Bool* (i8*, %TName_List_ByStr20*)*), i8* undef }, i8* %"$$fundef_239_env_voidp_3449", 1 + %"$$fundef_239_env_$ListUtils.list_find_14_3451" = getelementptr inbounds %"$$fundef_239_env_563", %"$$fundef_239_env_563"* %"$$fundef_239_envp_3447", i32 0, i32 0 + %"$$ListUtils.list_find_14_3452" = load { i8*, i8* }*, { i8*, i8* }** %"$ListUtils.list_find_14", align 8 + store { i8*, i8* }* %"$$ListUtils.list_find_14_3452", { i8*, i8* }** %"$$fundef_239_env_$ListUtils.list_find_14_3451", align 8 + %"$$fundef_239_env_p_3453" = getelementptr inbounds %"$$fundef_239_env_563", %"$$fundef_239_env_563"* %"$$fundef_239_envp_3447", i32 0, i32 1 + store { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %1, { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %"$$fundef_239_env_p_3453", align 8 + store { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } %"$$fundef_239_cloval_3450", { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* }* %"$retval_238", align 8, !dbg !117 + %"$$retval_238_3454" = load { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* }, { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* }* %"$retval_238", align 8 + ret { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } %"$$retval_238_3454" +} + +define internal { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } @"$fundef_235"(%"$$fundef_235_env_565"* %0) !dbg !118 { +entry: + %"$$fundef_235_env_$ListUtils.list_find_14_3426" = getelementptr inbounds %"$$fundef_235_env_565", %"$$fundef_235_env_565"* %0, i32 0, i32 0 + %"$$ListUtils.list_find_14_envload_3427" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_235_env_$ListUtils.list_find_14_3426", align 8 %"$ListUtils.list_find_14" = alloca { i8*, i8* }*, align 8 - store { i8*, i8* }* %"$$ListUtils.list_find_14_envload_3363", { i8*, i8* }** %"$ListUtils.list_find_14", align 8 + store { i8*, i8* }* %"$$ListUtils.list_find_14_envload_3427", { i8*, i8* }** %"$ListUtils.list_find_14", align 8 %"$retval_236" = alloca { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* }, align 8 - %"$gasrem_3364" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3365" = icmp ugt i64 1, %"$gasrem_3364" - br i1 %"$gascmp_3365", label %"$out_of_gas_3366", label %"$have_gas_3367" - -"$out_of_gas_3366": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_3367" - -"$have_gas_3367": ; preds = %"$out_of_gas_3366", %entry - %"$consume_3368" = sub i64 %"$gasrem_3364", 1 - store i64 %"$consume_3368", i64* @_gasrem, align 8 - %"$$fundef_237_envp_3369_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_237_envp_3369_salloc" = call i8* @_salloc(i8* %"$$fundef_237_envp_3369_load", i64 8) - %"$$fundef_237_envp_3369" = bitcast i8* %"$$fundef_237_envp_3369_salloc" to %"$$fundef_237_env_564"* - %"$$fundef_237_env_voidp_3371" = bitcast %"$$fundef_237_env_564"* %"$$fundef_237_envp_3369" to i8* - %"$$fundef_237_cloval_3372" = 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_237_env_564"*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })* @"$fundef_237" to { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*), i8* undef }, i8* %"$$fundef_237_env_voidp_3371", 1 - %"$$fundef_237_env_$ListUtils.list_find_14_3373" = getelementptr inbounds %"$$fundef_237_env_564", %"$$fundef_237_env_564"* %"$$fundef_237_envp_3369", i32 0, i32 0 - %"$$ListUtils.list_find_14_3374" = load { i8*, i8* }*, { i8*, i8* }** %"$ListUtils.list_find_14", align 8 - store { i8*, i8* }* %"$$ListUtils.list_find_14_3374", { i8*, i8* }** %"$$fundef_237_env_$ListUtils.list_find_14_3373", align 8 - store { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } %"$$fundef_237_cloval_3372", { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* }* %"$retval_236", align 8, !dbg !68 - %"$$retval_236_3375" = 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_236", align 8 - ret { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } %"$$retval_236_3375" -} - -define internal %TName_Option_ByStr20* @"$fundef_233"(%"$$fundef_233_env_566"* %0, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* } %1) !dbg !69 { -entry: - %"$$fundef_233_env_init_3304" = getelementptr inbounds %"$$fundef_233_env_566", %"$$fundef_233_env_566"* %0, i32 0, i32 0 - %"$init_envload_3305" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %"$$fundef_233_env_init_3304", align 8 + %"$gasrem_3428" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3429" = icmp ugt i64 1, %"$gasrem_3428" + br i1 %"$gascmp_3429", label %"$out_of_gas_3430", label %"$have_gas_3431" + +"$out_of_gas_3430": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_3431" + +"$have_gas_3431": ; preds = %"$out_of_gas_3430", %entry + %"$consume_3432" = sub i64 %"$gasrem_3428", 1 + store i64 %"$consume_3432", i64* @_gasrem, align 8 + %"$$fundef_237_envp_3433_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_237_envp_3433_salloc" = call i8* @_salloc(i8* %"$$fundef_237_envp_3433_load", i64 8) + %"$$fundef_237_envp_3433" = bitcast i8* %"$$fundef_237_envp_3433_salloc" to %"$$fundef_237_env_564"* + %"$$fundef_237_env_voidp_3435" = bitcast %"$$fundef_237_env_564"* %"$$fundef_237_envp_3433" to i8* + %"$$fundef_237_cloval_3436" = 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_237_env_564"*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })* @"$fundef_237" to { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*), i8* undef }, i8* %"$$fundef_237_env_voidp_3435", 1 + %"$$fundef_237_env_$ListUtils.list_find_14_3437" = getelementptr inbounds %"$$fundef_237_env_564", %"$$fundef_237_env_564"* %"$$fundef_237_envp_3433", i32 0, i32 0 + %"$$ListUtils.list_find_14_3438" = load { i8*, i8* }*, { i8*, i8* }** %"$ListUtils.list_find_14", align 8 + store { i8*, i8* }* %"$$ListUtils.list_find_14_3438", { i8*, i8* }** %"$$fundef_237_env_$ListUtils.list_find_14_3437", align 8 + store { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } %"$$fundef_237_cloval_3436", { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* }* %"$retval_236", align 8, !dbg !119 + %"$$retval_236_3439" = 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_236", align 8 + ret { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } %"$$retval_236_3439" +} + +define internal %TName_Option_ByStr20* @"$fundef_233"(%"$$fundef_233_env_566"* %0, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* } %1) !dbg !120 { +entry: + %"$$fundef_233_env_init_3368" = getelementptr inbounds %"$$fundef_233_env_566", %"$$fundef_233_env_566"* %0, i32 0, i32 0 + %"$init_envload_3369" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %"$$fundef_233_env_init_3368", align 8 %init = alloca %TName_Option_ByStr20*, align 8 - store %TName_Option_ByStr20* %"$init_envload_3305", %TName_Option_ByStr20** %init, align 8 - %"$$fundef_233_env_p_3306" = getelementptr inbounds %"$$fundef_233_env_566", %"$$fundef_233_env_566"* %0, i32 0, i32 1 - %"$p_envload_3307" = load { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %"$$fundef_233_env_p_3306", align 8 + store %TName_Option_ByStr20* %"$init_envload_3369", %TName_Option_ByStr20** %init, align 8 + %"$$fundef_233_env_p_3370" = getelementptr inbounds %"$$fundef_233_env_566", %"$$fundef_233_env_566"* %0, i32 0, i32 1 + %"$p_envload_3371" = load { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %"$$fundef_233_env_p_3370", align 8 %p = alloca { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, align 8 - store { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$p_envload_3307", { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %p, align 8 - %"$$fundef_233_env_x_3308" = getelementptr inbounds %"$$fundef_233_env_566", %"$$fundef_233_env_566"* %0, i32 0, i32 2 - %"$x_envload_3309" = load [20 x i8], [20 x i8]* %"$$fundef_233_env_x_3308", align 1 + store { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$p_envload_3371", { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %p, align 8 + %"$$fundef_233_env_x_3372" = getelementptr inbounds %"$$fundef_233_env_566", %"$$fundef_233_env_566"* %0, i32 0, i32 2 + %"$x_envload_3373" = load [20 x i8], [20 x i8]* %"$$fundef_233_env_x_3372", align 1 %x = alloca [20 x i8], align 1 - store [20 x i8] %"$x_envload_3309", [20 x i8]* %x, align 1 + store [20 x i8] %"$x_envload_3373", [20 x i8]* %x, align 1 %"$retval_234" = alloca %TName_Option_ByStr20*, 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" + call void @llvm.dbg.declare(metadata %TName_Option_ByStr20** %"$retval_234", metadata !121, metadata !DIExpression()), !dbg !122 + %"$gasrem_3374" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3375" = icmp ugt i64 1, %"$gasrem_3374" + br i1 %"$gascmp_3375", label %"$out_of_gas_3376", label %"$have_gas_3377" -"$out_of_gas_3312": ; preds = %entry +"$out_of_gas_3376": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_3313" + br label %"$have_gas_3377" -"$have_gas_3313": ; preds = %"$out_of_gas_3312", %entry - %"$consume_3314" = sub i64 %"$gasrem_3310", 1 - store i64 %"$consume_3314", i64* @_gasrem, align 8 +"$have_gas_3377": ; preds = %"$out_of_gas_3376", %entry + %"$consume_3378" = sub i64 %"$gasrem_3374", 1 + store i64 %"$consume_3378", i64* @_gasrem, align 8 %p_x = alloca %TName_Bool*, align 8 - %"$gasrem_3315" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3316" = icmp ugt i64 1, %"$gasrem_3315" - br i1 %"$gascmp_3316", label %"$out_of_gas_3317", label %"$have_gas_3318" + call void @llvm.dbg.declare(metadata %TName_Bool** %p_x, metadata !123, metadata !DIExpression()), !dbg !124 + %"$gasrem_3379" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3380" = icmp ugt i64 1, %"$gasrem_3379" + br i1 %"$gascmp_3380", label %"$out_of_gas_3381", label %"$have_gas_3382" -"$out_of_gas_3317": ; preds = %"$have_gas_3313" +"$out_of_gas_3381": ; preds = %"$have_gas_3377" call void @_out_of_gas() - br label %"$have_gas_3318" + br label %"$have_gas_3382" -"$have_gas_3318": ; preds = %"$out_of_gas_3317", %"$have_gas_3313" - %"$consume_3319" = sub i64 %"$gasrem_3315", 1 - store i64 %"$consume_3319", i64* @_gasrem, align 8 +"$have_gas_3382": ; preds = %"$out_of_gas_3381", %"$have_gas_3377" + %"$consume_3383" = sub i64 %"$gasrem_3379", 1 + store i64 %"$consume_3383", i64* @_gasrem, align 8 %"$p_81" = alloca %TName_Bool*, align 8 - %"$p_3320" = load { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %p, align 8 - %"$p_fptr_3321" = extractvalue { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$p_3320", 0 - %"$p_envptr_3322" = extractvalue { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$p_3320", 1 - %"$p_x_3323" = alloca [20 x i8], align 1 - %"$x_3324" = load [20 x i8], [20 x i8]* %x, align 1 - store [20 x i8] %"$x_3324", [20 x i8]* %"$p_x_3323", align 1 - %"$p_call_3325" = call %TName_Bool* %"$p_fptr_3321"(i8* %"$p_envptr_3322", [20 x i8]* %"$p_x_3323"), !dbg !70 - store %TName_Bool* %"$p_call_3325", %TName_Bool** %"$p_81", align 8, !dbg !70 - %"$$p_81_3326" = load %TName_Bool*, %TName_Bool** %"$p_81", align 8 - store %TName_Bool* %"$$p_81_3326", %TName_Bool** %p_x, align 8, !dbg !70 - %"$gasrem_3327" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3328" = icmp ugt i64 2, %"$gasrem_3327" - br i1 %"$gascmp_3328", label %"$out_of_gas_3329", label %"$have_gas_3330" - -"$out_of_gas_3329": ; preds = %"$have_gas_3318" - call void @_out_of_gas() - br label %"$have_gas_3330" - -"$have_gas_3330": ; preds = %"$out_of_gas_3329", %"$have_gas_3318" - %"$consume_3331" = sub i64 %"$gasrem_3327", 2 - store i64 %"$consume_3331", i64* @_gasrem, align 8 - %"$p_x_3333" = load %TName_Bool*, %TName_Bool** %p_x, align 8 - %"$p_x_tag_3334" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$p_x_3333", i32 0, i32 0 - %"$p_x_tag_3335" = load i8, i8* %"$p_x_tag_3334", align 1 - switch i8 %"$p_x_tag_3335", label %"$empty_default_3336" [ - i8 0, label %"$True_3337" - i8 1, label %"$False_3349" - ], !dbg !71 - -"$True_3337": ; preds = %"$have_gas_3330" - %"$p_x_3338" = bitcast %TName_Bool* %"$p_x_3333" to %CName_True* - %"$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 = %"$True_3337" - call void @_out_of_gas() - br label %"$have_gas_3342" - -"$have_gas_3342": ; preds = %"$out_of_gas_3341", %"$True_3337" - %"$consume_3343" = sub i64 %"$gasrem_3339", 1 - store i64 %"$consume_3343", i64* @_gasrem, align 8 - %"$x_3344" = load [20 x i8], [20 x i8]* %x, align 1 - %"$adtval_3345_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_3345_salloc" = call i8* @_salloc(i8* %"$adtval_3345_load", i64 21) - %"$adtval_3345" = bitcast i8* %"$adtval_3345_salloc" to %CName_Some_ByStr20* - %"$adtgep_3346" = getelementptr inbounds %CName_Some_ByStr20, %CName_Some_ByStr20* %"$adtval_3345", i32 0, i32 0 - store i8 0, i8* %"$adtgep_3346", align 1 - %"$adtgep_3347" = getelementptr inbounds %CName_Some_ByStr20, %CName_Some_ByStr20* %"$adtval_3345", i32 0, i32 1 - store [20 x i8] %"$x_3344", [20 x i8]* %"$adtgep_3347", align 1 - %"$adtptr_3348" = bitcast %CName_Some_ByStr20* %"$adtval_3345" to %TName_Option_ByStr20* - store %TName_Option_ByStr20* %"$adtptr_3348", %TName_Option_ByStr20** %"$retval_234", align 8, !dbg !72 - br label %"$matchsucc_3332" - -"$False_3349": ; preds = %"$have_gas_3330" - %"$p_x_3350" = bitcast %TName_Bool* %"$p_x_3333" to %CName_False* - %"$gasrem_3351" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3352" = icmp ugt i64 1, %"$gasrem_3351" - br i1 %"$gascmp_3352", label %"$out_of_gas_3353", label %"$have_gas_3354" - -"$out_of_gas_3353": ; preds = %"$False_3349" - call void @_out_of_gas() - br label %"$have_gas_3354" - -"$have_gas_3354": ; preds = %"$out_of_gas_3353", %"$False_3349" - %"$consume_3355" = sub i64 %"$gasrem_3351", 1 - store i64 %"$consume_3355", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$p_81", metadata !125, metadata !DIExpression()), !dbg !126 + %"$p_3384" = load { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %p, align 8 + %"$p_fptr_3385" = extractvalue { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$p_3384", 0 + %"$p_envptr_3386" = extractvalue { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$p_3384", 1 + %"$p_x_3387" = alloca [20 x i8], align 1 + %"$x_3388" = load [20 x i8], [20 x i8]* %x, align 1 + store [20 x i8] %"$x_3388", [20 x i8]* %"$p_x_3387", align 1 + %"$p_call_3389" = call %TName_Bool* %"$p_fptr_3385"(i8* %"$p_envptr_3386", [20 x i8]* %"$p_x_3387"), !dbg !126 + store %TName_Bool* %"$p_call_3389", %TName_Bool** %"$p_81", align 8, !dbg !126 + %"$$p_81_3390" = load %TName_Bool*, %TName_Bool** %"$p_81", align 8 + store %TName_Bool* %"$$p_81_3390", %TName_Bool** %p_x, align 8, !dbg !126 + %"$gasrem_3391" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3392" = icmp ugt i64 2, %"$gasrem_3391" + br i1 %"$gascmp_3392", label %"$out_of_gas_3393", label %"$have_gas_3394" + +"$out_of_gas_3393": ; preds = %"$have_gas_3382" + call void @_out_of_gas() + br label %"$have_gas_3394" + +"$have_gas_3394": ; preds = %"$out_of_gas_3393", %"$have_gas_3382" + %"$consume_3395" = sub i64 %"$gasrem_3391", 2 + store i64 %"$consume_3395", i64* @_gasrem, align 8 + %"$p_x_3397" = load %TName_Bool*, %TName_Bool** %p_x, align 8 + %"$p_x_tag_3398" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$p_x_3397", i32 0, i32 0 + %"$p_x_tag_3399" = load i8, i8* %"$p_x_tag_3398", align 1 + switch i8 %"$p_x_tag_3399", label %"$empty_default_3400" [ + i8 0, label %"$True_3401" + i8 1, label %"$False_3413" + ], !dbg !127 + +"$True_3401": ; preds = %"$have_gas_3394" + %"$p_x_3402" = bitcast %TName_Bool* %"$p_x_3397" to %CName_True* + %"$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_3405": ; preds = %"$True_3401" + call void @_out_of_gas() + br label %"$have_gas_3406" + +"$have_gas_3406": ; preds = %"$out_of_gas_3405", %"$True_3401" + %"$consume_3407" = sub i64 %"$gasrem_3403", 1 + store i64 %"$consume_3407", i64* @_gasrem, align 8 + %"$x_3408" = load [20 x i8], [20 x i8]* %x, align 1 + %"$adtval_3409_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_3409_salloc" = call i8* @_salloc(i8* %"$adtval_3409_load", i64 21) + %"$adtval_3409" = bitcast i8* %"$adtval_3409_salloc" to %CName_Some_ByStr20* + %"$adtgep_3410" = getelementptr inbounds %CName_Some_ByStr20, %CName_Some_ByStr20* %"$adtval_3409", i32 0, i32 0 + store i8 0, i8* %"$adtgep_3410", align 1 + %"$adtgep_3411" = getelementptr inbounds %CName_Some_ByStr20, %CName_Some_ByStr20* %"$adtval_3409", i32 0, i32 1 + store [20 x i8] %"$x_3408", [20 x i8]* %"$adtgep_3411", align 1 + %"$adtptr_3412" = bitcast %CName_Some_ByStr20* %"$adtval_3409" to %TName_Option_ByStr20* + store %TName_Option_ByStr20* %"$adtptr_3412", %TName_Option_ByStr20** %"$retval_234", align 8, !dbg !128 + br label %"$matchsucc_3396" + +"$False_3413": ; preds = %"$have_gas_3394" + %"$p_x_3414" = bitcast %TName_Bool* %"$p_x_3397" to %CName_False* + %"$gasrem_3415" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3416" = icmp ugt i64 1, %"$gasrem_3415" + br i1 %"$gascmp_3416", label %"$out_of_gas_3417", label %"$have_gas_3418" + +"$out_of_gas_3417": ; preds = %"$False_3413" + call void @_out_of_gas() + br label %"$have_gas_3418" + +"$have_gas_3418": ; preds = %"$out_of_gas_3417", %"$False_3413" + %"$consume_3419" = sub i64 %"$gasrem_3415", 1 + store i64 %"$consume_3419", i64* @_gasrem, align 8 %"$recurse_82" = alloca %TName_Option_ByStr20*, align 8 - %"$recurse_fptr_3356" = extractvalue { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* } %1, 0 - %"$recurse_envptr_3357" = extractvalue { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* } %1, 1 - %"$init_3358" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %init, align 8 - %"$recurse_call_3359" = call %TName_Option_ByStr20* %"$recurse_fptr_3356"(i8* %"$recurse_envptr_3357", %TName_Option_ByStr20* %"$init_3358"), !dbg !75 - store %TName_Option_ByStr20* %"$recurse_call_3359", %TName_Option_ByStr20** %"$recurse_82", align 8, !dbg !75 - %"$$recurse_82_3360" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %"$recurse_82", align 8 - store %TName_Option_ByStr20* %"$$recurse_82_3360", %TName_Option_ByStr20** %"$retval_234", align 8, !dbg !75 - br label %"$matchsucc_3332" + call void @llvm.dbg.declare(metadata %TName_Option_ByStr20** %"$recurse_82", metadata !131, metadata !DIExpression()), !dbg !133 + %"$recurse_fptr_3420" = extractvalue { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* } %1, 0 + %"$recurse_envptr_3421" = extractvalue { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* } %1, 1 + %"$init_3422" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %init, align 8 + %"$recurse_call_3423" = call %TName_Option_ByStr20* %"$recurse_fptr_3420"(i8* %"$recurse_envptr_3421", %TName_Option_ByStr20* %"$init_3422"), !dbg !133 + store %TName_Option_ByStr20* %"$recurse_call_3423", %TName_Option_ByStr20** %"$recurse_82", align 8, !dbg !133 + %"$$recurse_82_3424" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %"$recurse_82", align 8 + store %TName_Option_ByStr20* %"$$recurse_82_3424", %TName_Option_ByStr20** %"$retval_234", align 8, !dbg !133 + br label %"$matchsucc_3396" -"$empty_default_3336": ; preds = %"$have_gas_3330" - br label %"$matchsucc_3332" +"$empty_default_3400": ; preds = %"$have_gas_3394" + br label %"$matchsucc_3396" -"$matchsucc_3332": ; preds = %"$have_gas_3354", %"$have_gas_3342", %"$empty_default_3336" - %"$$retval_234_3361" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %"$retval_234", align 8 - ret %TName_Option_ByStr20* %"$$retval_234_3361" +"$matchsucc_3396": ; preds = %"$have_gas_3418", %"$have_gas_3406", %"$empty_default_3400" + %"$$retval_234_3425" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %"$retval_234", align 8 + ret %TName_Option_ByStr20* %"$$retval_234_3425" } -define internal { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } @"$fundef_231"(%"$$fundef_231_env_567"* %0, [20 x i8]* %1) !dbg !77 { +define internal { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } @"$fundef_231"(%"$$fundef_231_env_567"* %0, [20 x i8]* %1) !dbg !134 { entry: + %"$x_3367" = alloca [20 x i8]*, align 8 + store [20 x i8]* %1, [20 x i8]** %"$x_3367", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$x_3367", metadata !135, metadata !DIExpression()), !dbg !136 %x = load [20 x i8], [20 x i8]* %1, align 1 - %"$$fundef_231_env_init_3285" = getelementptr inbounds %"$$fundef_231_env_567", %"$$fundef_231_env_567"* %0, i32 0, i32 0 - %"$init_envload_3286" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %"$$fundef_231_env_init_3285", align 8 + %"$$fundef_231_env_init_3348" = getelementptr inbounds %"$$fundef_231_env_567", %"$$fundef_231_env_567"* %0, i32 0, i32 0 + %"$init_envload_3349" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %"$$fundef_231_env_init_3348", align 8 %init = alloca %TName_Option_ByStr20*, align 8 - store %TName_Option_ByStr20* %"$init_envload_3286", %TName_Option_ByStr20** %init, align 8 - %"$$fundef_231_env_p_3287" = getelementptr inbounds %"$$fundef_231_env_567", %"$$fundef_231_env_567"* %0, i32 0, i32 1 - %"$p_envload_3288" = load { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %"$$fundef_231_env_p_3287", align 8 + store %TName_Option_ByStr20* %"$init_envload_3349", %TName_Option_ByStr20** %init, align 8 + %"$$fundef_231_env_p_3350" = getelementptr inbounds %"$$fundef_231_env_567", %"$$fundef_231_env_567"* %0, i32 0, i32 1 + %"$p_envload_3351" = load { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %"$$fundef_231_env_p_3350", align 8 %p = alloca { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, align 8 - store { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$p_envload_3288", { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %p, align 8 + store { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$p_envload_3351", { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %p, align 8 %"$retval_232" = alloca { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* }, align 8 - %"$gasrem_3289" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3290" = icmp ugt i64 1, %"$gasrem_3289" - br i1 %"$gascmp_3290", label %"$out_of_gas_3291", label %"$have_gas_3292" - -"$out_of_gas_3291": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_3292" - -"$have_gas_3292": ; preds = %"$out_of_gas_3291", %entry - %"$consume_3293" = sub i64 %"$gasrem_3289", 1 - store i64 %"$consume_3293", i64* @_gasrem, align 8 - %"$$fundef_233_envp_3294_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_233_envp_3294_salloc" = call i8* @_salloc(i8* %"$$fundef_233_envp_3294_load", i64 48) - %"$$fundef_233_envp_3294" = bitcast i8* %"$$fundef_233_envp_3294_salloc" to %"$$fundef_233_env_566"* - %"$$fundef_233_env_voidp_3296" = bitcast %"$$fundef_233_env_566"* %"$$fundef_233_envp_3294" to i8* - %"$$fundef_233_cloval_3297" = 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_233_env_566"*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })* @"$fundef_233" to %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*), i8* undef }, i8* %"$$fundef_233_env_voidp_3296", 1 - %"$$fundef_233_env_init_3298" = getelementptr inbounds %"$$fundef_233_env_566", %"$$fundef_233_env_566"* %"$$fundef_233_envp_3294", i32 0, i32 0 - %"$init_3299" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %init, align 8 - store %TName_Option_ByStr20* %"$init_3299", %TName_Option_ByStr20** %"$$fundef_233_env_init_3298", align 8 - %"$$fundef_233_env_p_3300" = getelementptr inbounds %"$$fundef_233_env_566", %"$$fundef_233_env_566"* %"$$fundef_233_envp_3294", i32 0, i32 1 - %"$p_3301" = 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_3301", { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %"$$fundef_233_env_p_3300", align 8 - %"$$fundef_233_env_x_3302" = getelementptr inbounds %"$$fundef_233_env_566", %"$$fundef_233_env_566"* %"$$fundef_233_envp_3294", i32 0, i32 2 - store [20 x i8] %x, [20 x i8]* %"$$fundef_233_env_x_3302", align 1 - store { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } %"$$fundef_233_cloval_3297", { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* }* %"$retval_232", align 8, !dbg !78 - %"$$retval_232_3303" = 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_232", align 8 - ret { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } %"$$retval_232_3303" -} - -define internal { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } @"$fundef_229"(%"$$fundef_229_env_568"* %0, %TName_Option_ByStr20* %1) !dbg !79 { -entry: - %"$$fundef_229_env_init_3267" = getelementptr inbounds %"$$fundef_229_env_568", %"$$fundef_229_env_568"* %0, i32 0, i32 0 - %"$init_envload_3268" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %"$$fundef_229_env_init_3267", align 8 + %"$gasrem_3352" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3353" = icmp ugt i64 1, %"$gasrem_3352" + br i1 %"$gascmp_3353", label %"$out_of_gas_3354", label %"$have_gas_3355" + +"$out_of_gas_3354": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_3355" + +"$have_gas_3355": ; preds = %"$out_of_gas_3354", %entry + %"$consume_3356" = sub i64 %"$gasrem_3352", 1 + store i64 %"$consume_3356", i64* @_gasrem, align 8 + %"$$fundef_233_envp_3357_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_233_envp_3357_salloc" = call i8* @_salloc(i8* %"$$fundef_233_envp_3357_load", i64 48) + %"$$fundef_233_envp_3357" = bitcast i8* %"$$fundef_233_envp_3357_salloc" to %"$$fundef_233_env_566"* + %"$$fundef_233_env_voidp_3359" = bitcast %"$$fundef_233_env_566"* %"$$fundef_233_envp_3357" to i8* + %"$$fundef_233_cloval_3360" = 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_233_env_566"*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })* @"$fundef_233" to %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*), i8* undef }, i8* %"$$fundef_233_env_voidp_3359", 1 + %"$$fundef_233_env_init_3361" = getelementptr inbounds %"$$fundef_233_env_566", %"$$fundef_233_env_566"* %"$$fundef_233_envp_3357", i32 0, i32 0 + %"$init_3362" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %init, align 8 + store %TName_Option_ByStr20* %"$init_3362", %TName_Option_ByStr20** %"$$fundef_233_env_init_3361", align 8 + %"$$fundef_233_env_p_3363" = getelementptr inbounds %"$$fundef_233_env_566", %"$$fundef_233_env_566"* %"$$fundef_233_envp_3357", i32 0, i32 1 + %"$p_3364" = 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_3364", { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %"$$fundef_233_env_p_3363", align 8 + %"$$fundef_233_env_x_3365" = getelementptr inbounds %"$$fundef_233_env_566", %"$$fundef_233_env_566"* %"$$fundef_233_envp_3357", i32 0, i32 2 + store [20 x i8] %x, [20 x i8]* %"$$fundef_233_env_x_3365", align 1 + store { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } %"$$fundef_233_cloval_3360", { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* }* %"$retval_232", align 8, !dbg !137 + %"$$retval_232_3366" = 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_232", align 8 + ret { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } %"$$retval_232_3366" +} + +define internal { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } @"$fundef_229"(%"$$fundef_229_env_568"* %0, %TName_Option_ByStr20* %1) !dbg !138 { +entry: + %"$ignore_3347" = alloca %TName_Option_ByStr20*, align 8 + store %TName_Option_ByStr20* %1, %TName_Option_ByStr20** %"$ignore_3347", align 8 + call void @llvm.dbg.declare(metadata %TName_Option_ByStr20** %"$ignore_3347", metadata !139, metadata !DIExpression()), !dbg !140 + %"$$fundef_229_env_init_3329" = getelementptr inbounds %"$$fundef_229_env_568", %"$$fundef_229_env_568"* %0, i32 0, i32 0 + %"$init_envload_3330" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %"$$fundef_229_env_init_3329", align 8 %init = alloca %TName_Option_ByStr20*, align 8 - store %TName_Option_ByStr20* %"$init_envload_3268", %TName_Option_ByStr20** %init, align 8 - %"$$fundef_229_env_p_3269" = getelementptr inbounds %"$$fundef_229_env_568", %"$$fundef_229_env_568"* %0, i32 0, i32 1 - %"$p_envload_3270" = load { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %"$$fundef_229_env_p_3269", align 8 + store %TName_Option_ByStr20* %"$init_envload_3330", %TName_Option_ByStr20** %init, align 8 + %"$$fundef_229_env_p_3331" = getelementptr inbounds %"$$fundef_229_env_568", %"$$fundef_229_env_568"* %0, i32 0, i32 1 + %"$p_envload_3332" = load { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %"$$fundef_229_env_p_3331", align 8 %p = alloca { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, align 8 - store { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$p_envload_3270", { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %p, align 8 + store { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$p_envload_3332", { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %p, align 8 %"$retval_230" = alloca { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* }, align 8 - %"$gasrem_3271" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3272" = icmp ugt i64 1, %"$gasrem_3271" - br i1 %"$gascmp_3272", label %"$out_of_gas_3273", label %"$have_gas_3274" - -"$out_of_gas_3273": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_3274" - -"$have_gas_3274": ; preds = %"$out_of_gas_3273", %entry - %"$consume_3275" = sub i64 %"$gasrem_3271", 1 - store i64 %"$consume_3275", i64* @_gasrem, align 8 - %"$$fundef_231_envp_3276_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_231_envp_3276_salloc" = call i8* @_salloc(i8* %"$$fundef_231_envp_3276_load", i64 24) - %"$$fundef_231_envp_3276" = bitcast i8* %"$$fundef_231_envp_3276_salloc" to %"$$fundef_231_env_567"* - %"$$fundef_231_env_voidp_3278" = bitcast %"$$fundef_231_env_567"* %"$$fundef_231_envp_3276" to i8* - %"$$fundef_231_cloval_3279" = 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_231_env_567"*, [20 x i8]*)* @"$fundef_231" to { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*), i8* undef }, i8* %"$$fundef_231_env_voidp_3278", 1 - %"$$fundef_231_env_init_3280" = getelementptr inbounds %"$$fundef_231_env_567", %"$$fundef_231_env_567"* %"$$fundef_231_envp_3276", i32 0, i32 0 - %"$init_3281" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %init, align 8 - store %TName_Option_ByStr20* %"$init_3281", %TName_Option_ByStr20** %"$$fundef_231_env_init_3280", align 8 - %"$$fundef_231_env_p_3282" = getelementptr inbounds %"$$fundef_231_env_567", %"$$fundef_231_env_567"* %"$$fundef_231_envp_3276", i32 0, i32 1 - %"$p_3283" = 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_3283", { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %"$$fundef_231_env_p_3282", align 8 - store { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } %"$$fundef_231_cloval_3279", { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* }* %"$retval_230", align 8, !dbg !80 - %"$$retval_230_3284" = 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_230", align 8 - ret { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } %"$$retval_230_3284" -} - -define internal { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } @"$fundef_227"(%"$$fundef_227_env_569"* %0, { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %1) !dbg !81 { -entry: - %"$$fundef_227_env_$list_foldk_13_3195" = getelementptr inbounds %"$$fundef_227_env_569", %"$$fundef_227_env_569"* %0, i32 0, i32 0 - %"$$list_foldk_13_envload_3196" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_227_env_$list_foldk_13_3195", align 8 + %"$gasrem_3333" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3334" = icmp ugt i64 1, %"$gasrem_3333" + br i1 %"$gascmp_3334", label %"$out_of_gas_3335", label %"$have_gas_3336" + +"$out_of_gas_3335": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_3336" + +"$have_gas_3336": ; preds = %"$out_of_gas_3335", %entry + %"$consume_3337" = sub i64 %"$gasrem_3333", 1 + store i64 %"$consume_3337", i64* @_gasrem, align 8 + %"$$fundef_231_envp_3338_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_231_envp_3338_salloc" = call i8* @_salloc(i8* %"$$fundef_231_envp_3338_load", i64 24) + %"$$fundef_231_envp_3338" = bitcast i8* %"$$fundef_231_envp_3338_salloc" to %"$$fundef_231_env_567"* + %"$$fundef_231_env_voidp_3340" = bitcast %"$$fundef_231_env_567"* %"$$fundef_231_envp_3338" to i8* + %"$$fundef_231_cloval_3341" = 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_231_env_567"*, [20 x i8]*)* @"$fundef_231" to { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*), i8* undef }, i8* %"$$fundef_231_env_voidp_3340", 1 + %"$$fundef_231_env_init_3342" = getelementptr inbounds %"$$fundef_231_env_567", %"$$fundef_231_env_567"* %"$$fundef_231_envp_3338", i32 0, i32 0 + %"$init_3343" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %init, align 8 + store %TName_Option_ByStr20* %"$init_3343", %TName_Option_ByStr20** %"$$fundef_231_env_init_3342", align 8 + %"$$fundef_231_env_p_3344" = getelementptr inbounds %"$$fundef_231_env_567", %"$$fundef_231_env_567"* %"$$fundef_231_envp_3338", i32 0, i32 1 + %"$p_3345" = 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_3345", { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %"$$fundef_231_env_p_3344", align 8 + store { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } %"$$fundef_231_cloval_3341", { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* }* %"$retval_230", align 8, !dbg !141 + %"$$retval_230_3346" = 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_230", align 8 + ret { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } %"$$retval_230_3346" +} + +define internal { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } @"$fundef_227"(%"$$fundef_227_env_569"* %0, { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %1) !dbg !142 { +entry: + %"$$fundef_227_env_$list_foldk_13_3257" = getelementptr inbounds %"$$fundef_227_env_569", %"$$fundef_227_env_569"* %0, i32 0, i32 0 + %"$$list_foldk_13_envload_3258" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_227_env_$list_foldk_13_3257", align 8 %"$list_foldk_13" = alloca { i8*, i8* }*, align 8 - store { i8*, i8* }* %"$$list_foldk_13_envload_3196", { i8*, i8* }** %"$list_foldk_13", align 8 + store { i8*, i8* }* %"$$list_foldk_13_envload_3258", { i8*, i8* }** %"$list_foldk_13", align 8 %"$retval_228" = alloca { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }, 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" + %"$gasrem_3259" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3260" = icmp ugt i64 1, %"$gasrem_3259" + br i1 %"$gascmp_3260", label %"$out_of_gas_3261", label %"$have_gas_3262" -"$out_of_gas_3199": ; preds = %entry +"$out_of_gas_3261": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_3200" + br label %"$have_gas_3262" -"$have_gas_3200": ; preds = %"$out_of_gas_3199", %entry - %"$consume_3201" = sub i64 %"$gasrem_3197", 1 - store i64 %"$consume_3201", i64* @_gasrem, align 8 +"$have_gas_3262": ; preds = %"$out_of_gas_3261", %entry + %"$consume_3263" = sub i64 %"$gasrem_3259", 1 + store i64 %"$consume_3263", 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_3202" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3203" = icmp ugt i64 1, %"$gasrem_3202" - br i1 %"$gascmp_3203", label %"$out_of_gas_3204", label %"$have_gas_3205" - -"$out_of_gas_3204": ; preds = %"$have_gas_3200" - 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 - store i64 %"$consume_3206", i64* @_gasrem, align 8 - %"$$list_foldk_13_3207" = load { i8*, i8* }*, { i8*, i8* }** %"$list_foldk_13", align 8 - %"$$list_foldk_13_3208" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$$list_foldk_13_3207", i32 0 - %"$$list_foldk_13_3209" = bitcast { i8*, i8* }* %"$$list_foldk_13_3208" to { { i8*, i8* }* (i8*)*, i8* }* - %"$$list_foldk_13_3210" = load { { i8*, i8* }* (i8*)*, i8* }, { { i8*, i8* }* (i8*)*, i8* }* %"$$list_foldk_13_3209", align 8 - %"$$list_foldk_13_fptr_3211" = extractvalue { { i8*, i8* }* (i8*)*, i8* } %"$$list_foldk_13_3210", 0 - %"$$list_foldk_13_envptr_3212" = extractvalue { { i8*, i8* }* (i8*)*, i8* } %"$$list_foldk_13_3210", 1 - %"$$list_foldk_13_call_3213" = call { i8*, i8* }* %"$$list_foldk_13_fptr_3211"(i8* %"$$list_foldk_13_envptr_3212"), !dbg !82 - %"$$list_foldk_13_3214" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$$list_foldk_13_call_3213", i32 1 - %"$$list_foldk_13_3215" = bitcast { i8*, i8* }* %"$$list_foldk_13_3214" 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_13_3216" = 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_13_3215", align 8 - %"$$list_foldk_13_fptr_3217" = 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_13_3216", 0 - %"$$list_foldk_13_envptr_3218" = 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_13_3216", 1 - %"$$list_foldk_13_call_3219" = 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_13_fptr_3217"(i8* %"$$list_foldk_13_envptr_3218"), !dbg !82 - 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_13_call_3219", { { { %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 !83 - %"$gasrem_3220" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3221" = icmp ugt i64 1, %"$gasrem_3220" - br i1 %"$gascmp_3221", label %"$out_of_gas_3222", label %"$have_gas_3223" - -"$out_of_gas_3222": ; preds = %"$have_gas_3205" - call void @_out_of_gas() - br label %"$have_gas_3223" - -"$have_gas_3223": ; preds = %"$out_of_gas_3222", %"$have_gas_3205" - %"$consume_3224" = sub i64 %"$gasrem_3220", 1 - store i64 %"$consume_3224", i64* @_gasrem, align 8 + %"$gasrem_3264" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3265" = icmp ugt i64 1, %"$gasrem_3264" + br i1 %"$gascmp_3265", label %"$out_of_gas_3266", label %"$have_gas_3267" + +"$out_of_gas_3266": ; preds = %"$have_gas_3262" + call void @_out_of_gas() + br label %"$have_gas_3267" + +"$have_gas_3267": ; preds = %"$out_of_gas_3266", %"$have_gas_3262" + %"$consume_3268" = sub i64 %"$gasrem_3264", 1 + store i64 %"$consume_3268", i64* @_gasrem, align 8 + %"$$list_foldk_13_3269" = load { i8*, i8* }*, { i8*, i8* }** %"$list_foldk_13", align 8 + %"$$list_foldk_13_3270" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$$list_foldk_13_3269", i32 0 + %"$$list_foldk_13_3271" = bitcast { i8*, i8* }* %"$$list_foldk_13_3270" to { { i8*, i8* }* (i8*)*, i8* }* + %"$$list_foldk_13_3272" = load { { i8*, i8* }* (i8*)*, i8* }, { { i8*, i8* }* (i8*)*, i8* }* %"$$list_foldk_13_3271", align 8 + %"$$list_foldk_13_fptr_3273" = extractvalue { { i8*, i8* }* (i8*)*, i8* } %"$$list_foldk_13_3272", 0 + %"$$list_foldk_13_envptr_3274" = extractvalue { { i8*, i8* }* (i8*)*, i8* } %"$$list_foldk_13_3272", 1 + %"$$list_foldk_13_call_3275" = call { i8*, i8* }* %"$$list_foldk_13_fptr_3273"(i8* %"$$list_foldk_13_envptr_3274"), !dbg !143 + %"$$list_foldk_13_3276" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$$list_foldk_13_call_3275", i32 1 + %"$$list_foldk_13_3277" = bitcast { i8*, i8* }* %"$$list_foldk_13_3276" 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_13_3278" = 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_13_3277", align 8 + %"$$list_foldk_13_fptr_3279" = 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_13_3278", 0 + %"$$list_foldk_13_envptr_3280" = 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_13_3278", 1 + %"$$list_foldk_13_call_3281" = 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_13_fptr_3279"(i8* %"$$list_foldk_13_envptr_3280"), !dbg !143 + 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_13_call_3281", { { { %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 !144 + %"$gasrem_3282" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3283" = icmp ugt i64 1, %"$gasrem_3282" + br i1 %"$gascmp_3283", label %"$out_of_gas_3284", label %"$have_gas_3285" + +"$out_of_gas_3284": ; preds = %"$have_gas_3267" + call void @_out_of_gas() + br label %"$have_gas_3285" + +"$have_gas_3285": ; preds = %"$out_of_gas_3284", %"$have_gas_3267" + %"$consume_3286" = sub i64 %"$gasrem_3282", 1 + store i64 %"$consume_3286", i64* @_gasrem, align 8 %init = alloca %TName_Option_ByStr20*, align 8 - %"$gasrem_3225" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3226" = icmp ugt i64 1, %"$gasrem_3225" - br i1 %"$gascmp_3226", label %"$out_of_gas_3227", label %"$have_gas_3228" - -"$out_of_gas_3227": ; preds = %"$have_gas_3223" - call void @_out_of_gas() - br label %"$have_gas_3228" - -"$have_gas_3228": ; preds = %"$out_of_gas_3227", %"$have_gas_3223" - %"$consume_3229" = sub i64 %"$gasrem_3225", 1 - store i64 %"$consume_3229", i64* @_gasrem, align 8 - %"$adtval_3230_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_3230_salloc" = call i8* @_salloc(i8* %"$adtval_3230_load", i64 1) - %"$adtval_3230" = bitcast i8* %"$adtval_3230_salloc" to %CName_None_ByStr20* - %"$adtgep_3231" = getelementptr inbounds %CName_None_ByStr20, %CName_None_ByStr20* %"$adtval_3230", i32 0, i32 0 - store i8 1, i8* %"$adtgep_3231", align 1 - %"$adtptr_3232" = bitcast %CName_None_ByStr20* %"$adtval_3230" to %TName_Option_ByStr20* - store %TName_Option_ByStr20* %"$adtptr_3232", %TName_Option_ByStr20** %init, align 8, !dbg !84 - %"$gasrem_3233" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3234" = icmp ugt i64 1, %"$gasrem_3233" - br i1 %"$gascmp_3234", label %"$out_of_gas_3235", label %"$have_gas_3236" - -"$out_of_gas_3235": ; preds = %"$have_gas_3228" - call void @_out_of_gas() - br label %"$have_gas_3236" - -"$have_gas_3236": ; preds = %"$out_of_gas_3235", %"$have_gas_3228" - %"$consume_3237" = sub i64 %"$gasrem_3233", 1 - store i64 %"$consume_3237", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Option_ByStr20** %init, metadata !145, metadata !DIExpression()), !dbg !146 + %"$gasrem_3287" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3288" = icmp ugt i64 1, %"$gasrem_3287" + br i1 %"$gascmp_3288", label %"$out_of_gas_3289", label %"$have_gas_3290" + +"$out_of_gas_3289": ; preds = %"$have_gas_3285" + call void @_out_of_gas() + br label %"$have_gas_3290" + +"$have_gas_3290": ; preds = %"$out_of_gas_3289", %"$have_gas_3285" + %"$consume_3291" = sub i64 %"$gasrem_3287", 1 + store i64 %"$consume_3291", i64* @_gasrem, align 8 + %"$adtval_3292_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_3292_salloc" = call i8* @_salloc(i8* %"$adtval_3292_load", i64 1) + %"$adtval_3292" = bitcast i8* %"$adtval_3292_salloc" to %CName_None_ByStr20* + %"$adtgep_3293" = getelementptr inbounds %CName_None_ByStr20, %CName_None_ByStr20* %"$adtval_3292", i32 0, i32 0 + store i8 1, i8* %"$adtgep_3293", align 1 + %"$adtptr_3294" = bitcast %CName_None_ByStr20* %"$adtval_3292" to %TName_Option_ByStr20* + store %TName_Option_ByStr20* %"$adtptr_3294", %TName_Option_ByStr20** %init, align 8, !dbg !147 + %"$gasrem_3295" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3296" = icmp ugt i64 1, %"$gasrem_3295" + br i1 %"$gascmp_3296", label %"$out_of_gas_3297", label %"$have_gas_3298" + +"$out_of_gas_3297": ; preds = %"$have_gas_3290" + call void @_out_of_gas() + br label %"$have_gas_3298" + +"$have_gas_3298": ; preds = %"$out_of_gas_3297", %"$have_gas_3290" + %"$consume_3299" = sub i64 %"$gasrem_3295", 1 + store i64 %"$consume_3299", 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_3238" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3239" = icmp ugt i64 1, %"$gasrem_3238" - br i1 %"$gascmp_3239", label %"$out_of_gas_3240", label %"$have_gas_3241" - -"$out_of_gas_3240": ; preds = %"$have_gas_3236" - call void @_out_of_gas() - br label %"$have_gas_3241" - -"$have_gas_3241": ; preds = %"$out_of_gas_3240", %"$have_gas_3236" - %"$consume_3242" = sub i64 %"$gasrem_3238", 1 - store i64 %"$consume_3242", i64* @_gasrem, align 8 - %"$$fundef_229_envp_3243_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_229_envp_3243_salloc" = call i8* @_salloc(i8* %"$$fundef_229_envp_3243_load", i64 24) - %"$$fundef_229_envp_3243" = bitcast i8* %"$$fundef_229_envp_3243_salloc" to %"$$fundef_229_env_568"* - %"$$fundef_229_env_voidp_3245" = bitcast %"$$fundef_229_env_568"* %"$$fundef_229_envp_3243" to i8* - %"$$fundef_229_cloval_3246" = 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_229_env_568"*, %TName_Option_ByStr20*)* @"$fundef_229" 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_229_env_voidp_3245", 1 - %"$$fundef_229_env_init_3247" = getelementptr inbounds %"$$fundef_229_env_568", %"$$fundef_229_env_568"* %"$$fundef_229_envp_3243", i32 0, i32 0 - %"$init_3248" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %init, align 8 - store %TName_Option_ByStr20* %"$init_3248", %TName_Option_ByStr20** %"$$fundef_229_env_init_3247", align 8 - %"$$fundef_229_env_p_3249" = getelementptr inbounds %"$$fundef_229_env_568", %"$$fundef_229_env_568"* %"$$fundef_229_envp_3243", i32 0, i32 1 - store { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %1, { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %"$$fundef_229_env_p_3249", 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_229_cloval_3246", { { { %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 !85 - %"$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_3241" - call void @_out_of_gas() - br label %"$have_gas_3253" - -"$have_gas_3253": ; preds = %"$out_of_gas_3252", %"$have_gas_3241" - %"$consume_3254" = sub i64 %"$gasrem_3250", 1 - store i64 %"$consume_3254", i64* @_gasrem, align 8 + %"$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 = %"$have_gas_3298" + call void @_out_of_gas() + br label %"$have_gas_3303" + +"$have_gas_3303": ; preds = %"$out_of_gas_3302", %"$have_gas_3298" + %"$consume_3304" = sub i64 %"$gasrem_3300", 1 + store i64 %"$consume_3304", i64* @_gasrem, align 8 + %"$$fundef_229_envp_3305_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_229_envp_3305_salloc" = call i8* @_salloc(i8* %"$$fundef_229_envp_3305_load", i64 24) + %"$$fundef_229_envp_3305" = bitcast i8* %"$$fundef_229_envp_3305_salloc" to %"$$fundef_229_env_568"* + %"$$fundef_229_env_voidp_3307" = bitcast %"$$fundef_229_env_568"* %"$$fundef_229_envp_3305" to i8* + %"$$fundef_229_cloval_3308" = 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_229_env_568"*, %TName_Option_ByStr20*)* @"$fundef_229" 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_229_env_voidp_3307", 1 + %"$$fundef_229_env_init_3309" = getelementptr inbounds %"$$fundef_229_env_568", %"$$fundef_229_env_568"* %"$$fundef_229_envp_3305", i32 0, i32 0 + %"$init_3310" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %init, align 8 + store %TName_Option_ByStr20* %"$init_3310", %TName_Option_ByStr20** %"$$fundef_229_env_init_3309", align 8 + %"$$fundef_229_env_p_3311" = getelementptr inbounds %"$$fundef_229_env_568", %"$$fundef_229_env_568"* %"$$fundef_229_envp_3305", i32 0, i32 1 + store { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %1, { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %"$$fundef_229_env_p_3311", 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_229_cloval_3308", { { { %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 !148 + %"$gasrem_3312" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3313" = icmp ugt i64 1, %"$gasrem_3312" + br i1 %"$gascmp_3313", label %"$out_of_gas_3314", label %"$have_gas_3315" + +"$out_of_gas_3314": ; preds = %"$have_gas_3303" + call void @_out_of_gas() + br label %"$have_gas_3315" + +"$have_gas_3315": ; preds = %"$out_of_gas_3314", %"$have_gas_3303" + %"$consume_3316" = sub i64 %"$gasrem_3312", 1 + store i64 %"$consume_3316", i64* @_gasrem, align 8 %"$foldk_83" = alloca { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }, align 8 - %"$foldk_3255" = 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_3256" = 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_3255", 0 - %"$foldk_envptr_3257" = 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_3255", 1 - %"$predicate_step_3258" = 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_3259" = call { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } %"$foldk_fptr_3256"(i8* %"$foldk_envptr_3257", { { { %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_3258"), !dbg !86 - store { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } %"$foldk_call_3259", { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }* %"$foldk_83", align 8, !dbg !86 + %"$foldk_3317" = 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_3318" = 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_3317", 0 + %"$foldk_envptr_3319" = 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_3317", 1 + %"$predicate_step_3320" = 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_3321" = call { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } %"$foldk_fptr_3318"(i8* %"$foldk_envptr_3319", { { { %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_3320"), !dbg !149 + store { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } %"$foldk_call_3321", { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }* %"$foldk_83", align 8, !dbg !149 %"$foldk_84" = alloca { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }, align 8 - %"$$foldk_83_3260" = 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_83", align 8 - %"$$foldk_83_fptr_3261" = extractvalue { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } %"$$foldk_83_3260", 0 - %"$$foldk_83_envptr_3262" = extractvalue { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } %"$$foldk_83_3260", 1 - %"$init_3263" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %init, align 8 - %"$$foldk_83_call_3264" = call { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$$foldk_83_fptr_3261"(i8* %"$$foldk_83_envptr_3262", %TName_Option_ByStr20* %"$init_3263"), !dbg !86 - store { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$$foldk_83_call_3264", { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }* %"$foldk_84", align 8, !dbg !86 - %"$$foldk_84_3265" = load { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }, { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }* %"$foldk_84", align 8 - store { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$$foldk_84_3265", { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }* %"$retval_228", align 8, !dbg !86 - %"$$retval_228_3266" = load { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }, { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }* %"$retval_228", align 8 - ret { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$$retval_228_3266" -} - -define internal { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } @"$fundef_225"(%"$$fundef_225_env_570"* %0) !dbg !87 { -entry: - %"$$fundef_225_env_$list_foldk_13_3181" = getelementptr inbounds %"$$fundef_225_env_570", %"$$fundef_225_env_570"* %0, i32 0, i32 0 - %"$$list_foldk_13_envload_3182" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_225_env_$list_foldk_13_3181", align 8 + %"$$foldk_83_3322" = 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_83", align 8 + %"$$foldk_83_fptr_3323" = extractvalue { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } %"$$foldk_83_3322", 0 + %"$$foldk_83_envptr_3324" = extractvalue { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } %"$$foldk_83_3322", 1 + %"$init_3325" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %init, align 8 + %"$$foldk_83_call_3326" = call { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$$foldk_83_fptr_3323"(i8* %"$$foldk_83_envptr_3324", %TName_Option_ByStr20* %"$init_3325"), !dbg !149 + store { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$$foldk_83_call_3326", { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }* %"$foldk_84", align 8, !dbg !149 + %"$$foldk_84_3327" = load { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }, { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }* %"$foldk_84", align 8 + store { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$$foldk_84_3327", { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }* %"$retval_228", align 8, !dbg !149 + %"$$retval_228_3328" = load { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }, { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }* %"$retval_228", align 8 + ret { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$$retval_228_3328" +} + +define internal { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } @"$fundef_225"(%"$$fundef_225_env_570"* %0) !dbg !150 { +entry: + %"$$fundef_225_env_$list_foldk_13_3243" = getelementptr inbounds %"$$fundef_225_env_570", %"$$fundef_225_env_570"* %0, i32 0, i32 0 + %"$$list_foldk_13_envload_3244" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_225_env_$list_foldk_13_3243", align 8 %"$list_foldk_13" = alloca { i8*, i8* }*, align 8 - store { i8*, i8* }* %"$$list_foldk_13_envload_3182", { i8*, i8* }** %"$list_foldk_13", align 8 + store { i8*, i8* }* %"$$list_foldk_13_envload_3244", { i8*, i8* }** %"$list_foldk_13", align 8 %"$retval_226" = alloca { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* }, align 8 - %"$gasrem_3183" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3184" = icmp ugt i64 1, %"$gasrem_3183" - br i1 %"$gascmp_3184", label %"$out_of_gas_3185", label %"$have_gas_3186" - -"$out_of_gas_3185": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_3186" - -"$have_gas_3186": ; preds = %"$out_of_gas_3185", %entry - %"$consume_3187" = sub i64 %"$gasrem_3183", 1 - store i64 %"$consume_3187", i64* @_gasrem, align 8 - %"$$fundef_227_envp_3188_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_227_envp_3188_salloc" = call i8* @_salloc(i8* %"$$fundef_227_envp_3188_load", i64 8) - %"$$fundef_227_envp_3188" = bitcast i8* %"$$fundef_227_envp_3188_salloc" to %"$$fundef_227_env_569"* - %"$$fundef_227_env_voidp_3190" = bitcast %"$$fundef_227_env_569"* %"$$fundef_227_envp_3188" to i8* - %"$$fundef_227_cloval_3191" = 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_227_env_569"*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })* @"$fundef_227" to { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*), i8* undef }, i8* %"$$fundef_227_env_voidp_3190", 1 - %"$$fundef_227_env_$list_foldk_13_3192" = getelementptr inbounds %"$$fundef_227_env_569", %"$$fundef_227_env_569"* %"$$fundef_227_envp_3188", i32 0, i32 0 - %"$$list_foldk_13_3193" = load { i8*, i8* }*, { i8*, i8* }** %"$list_foldk_13", align 8 - store { i8*, i8* }* %"$$list_foldk_13_3193", { i8*, i8* }** %"$$fundef_227_env_$list_foldk_13_3192", align 8 - store { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } %"$$fundef_227_cloval_3191", { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* }* %"$retval_226", align 8, !dbg !88 - %"$$retval_226_3194" = 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_226", align 8 - ret { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } %"$$retval_226_3194" -} - -define internal %TName_Option_ByStr20* @"$fundef_223"(%"$$fundef_223_env_571"* %0, %TName_Option_ByStr20* %1) !dbg !89 { -entry: - %"$$fundef_223_env_g_3161" = getelementptr inbounds %"$$fundef_223_env_571", %"$$fundef_223_env_571"* %0, i32 0, i32 0 - %"$g_envload_3162" = 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_223_env_g_3161", 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" + +"$out_of_gas_3247": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_3248" + +"$have_gas_3248": ; preds = %"$out_of_gas_3247", %entry + %"$consume_3249" = sub i64 %"$gasrem_3245", 1 + store i64 %"$consume_3249", i64* @_gasrem, align 8 + %"$$fundef_227_envp_3250_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_227_envp_3250_salloc" = call i8* @_salloc(i8* %"$$fundef_227_envp_3250_load", i64 8) + %"$$fundef_227_envp_3250" = bitcast i8* %"$$fundef_227_envp_3250_salloc" to %"$$fundef_227_env_569"* + %"$$fundef_227_env_voidp_3252" = bitcast %"$$fundef_227_env_569"* %"$$fundef_227_envp_3250" to i8* + %"$$fundef_227_cloval_3253" = 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_227_env_569"*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })* @"$fundef_227" to { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*), i8* undef }, i8* %"$$fundef_227_env_voidp_3252", 1 + %"$$fundef_227_env_$list_foldk_13_3254" = getelementptr inbounds %"$$fundef_227_env_569", %"$$fundef_227_env_569"* %"$$fundef_227_envp_3250", i32 0, i32 0 + %"$$list_foldk_13_3255" = load { i8*, i8* }*, { i8*, i8* }** %"$list_foldk_13", align 8 + store { i8*, i8* }* %"$$list_foldk_13_3255", { i8*, i8* }** %"$$fundef_227_env_$list_foldk_13_3254", align 8 + store { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } %"$$fundef_227_cloval_3253", { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* }* %"$retval_226", align 8, !dbg !151 + %"$$retval_226_3256" = 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_226", align 8 + ret { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } %"$$retval_226_3256" +} + +define internal %TName_Option_ByStr20* @"$fundef_223"(%"$$fundef_223_env_571"* %0, %TName_Option_ByStr20* %1) !dbg !152 { +entry: + %"$k_3242" = alloca %TName_Option_ByStr20*, align 8 + store %TName_Option_ByStr20* %1, %TName_Option_ByStr20** %"$k_3242", align 8 + call void @llvm.dbg.declare(metadata %TName_Option_ByStr20** %"$k_3242", metadata !154, metadata !DIExpression()), !dbg !155 + %"$$fundef_223_env_g_3222" = getelementptr inbounds %"$$fundef_223_env_571", %"$$fundef_223_env_571"* %0, i32 0, i32 0 + %"$g_envload_3223" = 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_223_env_g_3222", 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_3162", { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }* %g, align 8 - %"$$fundef_223_env_t_3163" = getelementptr inbounds %"$$fundef_223_env_571", %"$$fundef_223_env_571"* %0, i32 0, i32 1 - %"$t_envload_3164" = load %TName_List_ByStr20*, %TName_List_ByStr20** %"$$fundef_223_env_t_3163", align 8 + store { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } %"$g_envload_3223", { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }* %g, align 8 + %"$$fundef_223_env_t_3224" = getelementptr inbounds %"$$fundef_223_env_571", %"$$fundef_223_env_571"* %0, i32 0, i32 1 + %"$t_envload_3225" = load %TName_List_ByStr20*, %TName_List_ByStr20** %"$$fundef_223_env_t_3224", align 8 %t = alloca %TName_List_ByStr20*, align 8 - store %TName_List_ByStr20* %"$t_envload_3164", %TName_List_ByStr20** %t, align 8 + store %TName_List_ByStr20* %"$t_envload_3225", %TName_List_ByStr20** %t, align 8 %"$retval_224" = alloca %TName_Option_ByStr20*, align 8 - %"$gasrem_3165" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3166" = icmp ugt i64 1, %"$gasrem_3165" - br i1 %"$gascmp_3166", label %"$out_of_gas_3167", label %"$have_gas_3168" + call void @llvm.dbg.declare(metadata %TName_Option_ByStr20** %"$retval_224", metadata !156, metadata !DIExpression()), !dbg !157 + %"$gasrem_3226" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3227" = icmp ugt i64 1, %"$gasrem_3226" + br i1 %"$gascmp_3227", label %"$out_of_gas_3228", label %"$have_gas_3229" -"$out_of_gas_3167": ; preds = %entry +"$out_of_gas_3228": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_3168" + br label %"$have_gas_3229" -"$have_gas_3168": ; preds = %"$out_of_gas_3167", %entry - %"$consume_3169" = sub i64 %"$gasrem_3165", 1 - store i64 %"$consume_3169", i64* @_gasrem, align 8 +"$have_gas_3229": ; preds = %"$out_of_gas_3228", %entry + %"$consume_3230" = sub i64 %"$gasrem_3226", 1 + store i64 %"$consume_3230", i64* @_gasrem, align 8 %"$g_76" = alloca { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }, align 8 - %"$g_3170" = 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_3171" = extractvalue { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } %"$g_3170", 0 - %"$g_envptr_3172" = extractvalue { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } %"$g_3170", 1 - %"$g_call_3173" = call { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$g_fptr_3171"(i8* %"$g_envptr_3172", %TName_Option_ByStr20* %1), !dbg !91 - store { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$g_call_3173", { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }* %"$g_76", align 8, !dbg !91 + %"$g_3231" = 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_3232" = extractvalue { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } %"$g_3231", 0 + %"$g_envptr_3233" = extractvalue { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } %"$g_3231", 1 + %"$g_call_3234" = call { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$g_fptr_3232"(i8* %"$g_envptr_3233", %TName_Option_ByStr20* %1), !dbg !157 + store { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$g_call_3234", { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }* %"$g_76", align 8, !dbg !157 %"$g_77" = alloca %TName_Option_ByStr20*, align 8 - %"$$g_76_3174" = load { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }, { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }* %"$g_76", align 8 - %"$$g_76_fptr_3175" = extractvalue { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$$g_76_3174", 0 - %"$$g_76_envptr_3176" = extractvalue { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$$g_76_3174", 1 - %"$t_3177" = load %TName_List_ByStr20*, %TName_List_ByStr20** %t, align 8 - %"$$g_76_call_3178" = call %TName_Option_ByStr20* %"$$g_76_fptr_3175"(i8* %"$$g_76_envptr_3176", %TName_List_ByStr20* %"$t_3177"), !dbg !91 - store %TName_Option_ByStr20* %"$$g_76_call_3178", %TName_Option_ByStr20** %"$g_77", align 8, !dbg !91 - %"$$g_77_3179" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %"$g_77", align 8 - store %TName_Option_ByStr20* %"$$g_77_3179", %TName_Option_ByStr20** %"$retval_224", align 8, !dbg !91 - %"$$retval_224_3180" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %"$retval_224", align 8 - ret %TName_Option_ByStr20* %"$$retval_224_3180" -} - -define internal %TName_Option_ByStr20* @"$fundef_221"(%"$$fundef_221_env_572"* %0, %TName_List_ByStr20* %1) !dbg !92 { -entry: - %"$$fundef_221_env_f_3091" = getelementptr inbounds %"$$fundef_221_env_572", %"$$fundef_221_env_572"* %0, i32 0, i32 0 - %"$f_envload_3092" = 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_221_env_f_3091", align 8 + call void @llvm.dbg.declare(metadata %TName_Option_ByStr20** %"$g_77", metadata !158, metadata !DIExpression()), !dbg !157 + %"$$g_76_3235" = load { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }, { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }* %"$g_76", align 8 + %"$$g_76_fptr_3236" = extractvalue { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$$g_76_3235", 0 + %"$$g_76_envptr_3237" = extractvalue { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$$g_76_3235", 1 + %"$t_3238" = load %TName_List_ByStr20*, %TName_List_ByStr20** %t, align 8 + %"$$g_76_call_3239" = call %TName_Option_ByStr20* %"$$g_76_fptr_3236"(i8* %"$$g_76_envptr_3237", %TName_List_ByStr20* %"$t_3238"), !dbg !157 + store %TName_Option_ByStr20* %"$$g_76_call_3239", %TName_Option_ByStr20** %"$g_77", align 8, !dbg !157 + %"$$g_77_3240" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %"$g_77", align 8 + store %TName_Option_ByStr20* %"$$g_77_3240", %TName_Option_ByStr20** %"$retval_224", align 8, !dbg !157 + %"$$retval_224_3241" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %"$retval_224", align 8 + ret %TName_Option_ByStr20* %"$$retval_224_3241" +} + +define internal %TName_Option_ByStr20* @"$fundef_221"(%"$$fundef_221_env_572"* %0, %TName_List_ByStr20* %1) !dbg !159 { +entry: + %"$l_3221" = alloca %TName_List_ByStr20*, align 8 + store %TName_List_ByStr20* %1, %TName_List_ByStr20** %"$l_3221", align 8 + call void @llvm.dbg.declare(metadata %TName_List_ByStr20** %"$l_3221", metadata !160, metadata !DIExpression()), !dbg !161 + %"$$fundef_221_env_f_3151" = getelementptr inbounds %"$$fundef_221_env_572", %"$$fundef_221_env_572"* %0, i32 0, i32 0 + %"$f_envload_3152" = 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_221_env_f_3151", 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_3092", { { { %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_221_env_g_3093" = getelementptr inbounds %"$$fundef_221_env_572", %"$$fundef_221_env_572"* %0, i32 0, i32 1 - %"$g_envload_3094" = 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_221_env_g_3093", 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_3152", { { { %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_221_env_g_3153" = getelementptr inbounds %"$$fundef_221_env_572", %"$$fundef_221_env_572"* %0, i32 0, i32 1 + %"$g_envload_3154" = 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_221_env_g_3153", 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_3094", { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }* %g, align 8 - %"$$fundef_221_env_z_3095" = getelementptr inbounds %"$$fundef_221_env_572", %"$$fundef_221_env_572"* %0, i32 0, i32 2 - %"$z_envload_3096" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %"$$fundef_221_env_z_3095", align 8 + store { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } %"$g_envload_3154", { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }* %g, align 8 + %"$$fundef_221_env_z_3155" = getelementptr inbounds %"$$fundef_221_env_572", %"$$fundef_221_env_572"* %0, i32 0, i32 2 + %"$z_envload_3156" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %"$$fundef_221_env_z_3155", align 8 %z = alloca %TName_Option_ByStr20*, align 8 - store %TName_Option_ByStr20* %"$z_envload_3096", %TName_Option_ByStr20** %z, align 8 + store %TName_Option_ByStr20* %"$z_envload_3156", %TName_Option_ByStr20** %z, align 8 %"$retval_222" = alloca %TName_Option_ByStr20*, align 8 - %"$gasrem_3097" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3098" = icmp ugt i64 2, %"$gasrem_3097" - br i1 %"$gascmp_3098", label %"$out_of_gas_3099", label %"$have_gas_3100" - -"$out_of_gas_3099": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_3100" - -"$have_gas_3100": ; preds = %"$out_of_gas_3099", %entry - %"$consume_3101" = sub i64 %"$gasrem_3097", 2 - store i64 %"$consume_3101", i64* @_gasrem, align 8 - %"$l_tag_3103" = getelementptr inbounds %TName_List_ByStr20, %TName_List_ByStr20* %1, i32 0, i32 0 - %"$l_tag_3104" = load i8, i8* %"$l_tag_3103", align 1 - switch i8 %"$l_tag_3104", label %"$empty_default_3105" [ - i8 0, label %"$Cons_3106" - i8 1, label %"$Nil_3152" - ], !dbg !93 - -"$Cons_3106": ; preds = %"$have_gas_3100" - %"$l_3107" = bitcast %TName_List_ByStr20* %1 to %CName_Cons_ByStr20* - %"$h_gep_3108" = getelementptr inbounds %CName_Cons_ByStr20, %CName_Cons_ByStr20* %"$l_3107", i32 0, i32 1 - %"$h_load_3109" = load [20 x i8], [20 x i8]* %"$h_gep_3108", align 1 + call void @llvm.dbg.declare(metadata %TName_Option_ByStr20** %"$retval_222", metadata !162, metadata !DIExpression()), !dbg !163 + %"$gasrem_3157" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3158" = icmp ugt i64 2, %"$gasrem_3157" + br i1 %"$gascmp_3158", label %"$out_of_gas_3159", label %"$have_gas_3160" + +"$out_of_gas_3159": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_3160" + +"$have_gas_3160": ; preds = %"$out_of_gas_3159", %entry + %"$consume_3161" = sub i64 %"$gasrem_3157", 2 + store i64 %"$consume_3161", i64* @_gasrem, align 8 + %"$l_tag_3163" = getelementptr inbounds %TName_List_ByStr20, %TName_List_ByStr20* %1, i32 0, i32 0 + %"$l_tag_3164" = load i8, i8* %"$l_tag_3163", align 1 + switch i8 %"$l_tag_3164", label %"$empty_default_3165" [ + i8 0, label %"$Cons_3166" + i8 1, label %"$Nil_3212" + ], !dbg !163 + +"$Cons_3166": ; preds = %"$have_gas_3160" + %"$l_3167" = bitcast %TName_List_ByStr20* %1 to %CName_Cons_ByStr20* + %"$h_gep_3168" = getelementptr inbounds %CName_Cons_ByStr20, %CName_Cons_ByStr20* %"$l_3167", i32 0, i32 1 + %"$h_load_3169" = load [20 x i8], [20 x i8]* %"$h_gep_3168", align 1 %h = alloca [20 x i8], align 1 - store [20 x i8] %"$h_load_3109", [20 x i8]* %h, align 1 - %"$t_gep_3110" = getelementptr inbounds %CName_Cons_ByStr20, %CName_Cons_ByStr20* %"$l_3107", i32 0, i32 2 - %"$t_load_3111" = load %TName_List_ByStr20*, %TName_List_ByStr20** %"$t_gep_3110", align 8 + store [20 x i8] %"$h_load_3169", [20 x i8]* %h, align 1 + %"$t_gep_3170" = getelementptr inbounds %CName_Cons_ByStr20, %CName_Cons_ByStr20* %"$l_3167", i32 0, i32 2 + %"$t_load_3171" = load %TName_List_ByStr20*, %TName_List_ByStr20** %"$t_gep_3170", align 8 %t = alloca %TName_List_ByStr20*, align 8 - store %TName_List_ByStr20* %"$t_load_3111", %TName_List_ByStr20** %t, align 8 - %"$gasrem_3112" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3113" = icmp ugt i64 1, %"$gasrem_3112" - br i1 %"$gascmp_3113", label %"$out_of_gas_3114", label %"$have_gas_3115" + store %TName_List_ByStr20* %"$t_load_3171", %TName_List_ByStr20** %t, align 8 + %"$gasrem_3172" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3173" = icmp ugt i64 1, %"$gasrem_3172" + br i1 %"$gascmp_3173", label %"$out_of_gas_3174", label %"$have_gas_3175" -"$out_of_gas_3114": ; preds = %"$Cons_3106" +"$out_of_gas_3174": ; preds = %"$Cons_3166" call void @_out_of_gas() - br label %"$have_gas_3115" + br label %"$have_gas_3175" -"$have_gas_3115": ; preds = %"$out_of_gas_3114", %"$Cons_3106" - %"$consume_3116" = sub i64 %"$gasrem_3112", 1 - store i64 %"$consume_3116", i64* @_gasrem, align 8 +"$have_gas_3175": ; preds = %"$out_of_gas_3174", %"$Cons_3166" + %"$consume_3176" = sub i64 %"$gasrem_3172", 1 + store i64 %"$consume_3176", i64* @_gasrem, align 8 %partial = alloca { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* }, align 8 - %"$gasrem_3117" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3118" = icmp ugt i64 1, %"$gasrem_3117" - br i1 %"$gascmp_3118", label %"$out_of_gas_3119", label %"$have_gas_3120" - -"$out_of_gas_3119": ; preds = %"$have_gas_3115" - call void @_out_of_gas() - br label %"$have_gas_3120" - -"$have_gas_3120": ; preds = %"$out_of_gas_3119", %"$have_gas_3115" - %"$consume_3121" = sub i64 %"$gasrem_3117", 1 - store i64 %"$consume_3121", i64* @_gasrem, align 8 - %"$$fundef_223_envp_3122_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_223_envp_3122_salloc" = call i8* @_salloc(i8* %"$$fundef_223_envp_3122_load", i64 24) - %"$$fundef_223_envp_3122" = bitcast i8* %"$$fundef_223_envp_3122_salloc" to %"$$fundef_223_env_571"* - %"$$fundef_223_env_voidp_3124" = bitcast %"$$fundef_223_env_571"* %"$$fundef_223_envp_3122" to i8* - %"$$fundef_223_cloval_3125" = insertvalue { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* } { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)* bitcast (%TName_Option_ByStr20* (%"$$fundef_223_env_571"*, %TName_Option_ByStr20*)* @"$fundef_223" to %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*), i8* undef }, i8* %"$$fundef_223_env_voidp_3124", 1 - %"$$fundef_223_env_g_3126" = getelementptr inbounds %"$$fundef_223_env_571", %"$$fundef_223_env_571"* %"$$fundef_223_envp_3122", i32 0, i32 0 - %"$g_3127" = 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_3127", { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }* %"$$fundef_223_env_g_3126", align 8 - %"$$fundef_223_env_t_3128" = getelementptr inbounds %"$$fundef_223_env_571", %"$$fundef_223_env_571"* %"$$fundef_223_envp_3122", i32 0, i32 1 - %"$t_3129" = load %TName_List_ByStr20*, %TName_List_ByStr20** %t, align 8 - store %TName_List_ByStr20* %"$t_3129", %TName_List_ByStr20** %"$$fundef_223_env_t_3128", align 8 - store { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* } %"$$fundef_223_cloval_3125", { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* }* %partial, align 8, !dbg !94 + %"$gasrem_3177" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3178" = icmp ugt i64 1, %"$gasrem_3177" + br i1 %"$gascmp_3178", label %"$out_of_gas_3179", label %"$have_gas_3180" + +"$out_of_gas_3179": ; preds = %"$have_gas_3175" + call void @_out_of_gas() + br label %"$have_gas_3180" + +"$have_gas_3180": ; preds = %"$out_of_gas_3179", %"$have_gas_3175" + %"$consume_3181" = sub i64 %"$gasrem_3177", 1 + store i64 %"$consume_3181", i64* @_gasrem, align 8 + %"$$fundef_223_envp_3182_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_223_envp_3182_salloc" = call i8* @_salloc(i8* %"$$fundef_223_envp_3182_load", i64 24) + %"$$fundef_223_envp_3182" = bitcast i8* %"$$fundef_223_envp_3182_salloc" to %"$$fundef_223_env_571"* + %"$$fundef_223_env_voidp_3184" = bitcast %"$$fundef_223_env_571"* %"$$fundef_223_envp_3182" to i8* + %"$$fundef_223_cloval_3185" = insertvalue { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* } { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)* bitcast (%TName_Option_ByStr20* (%"$$fundef_223_env_571"*, %TName_Option_ByStr20*)* @"$fundef_223" to %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*), i8* undef }, i8* %"$$fundef_223_env_voidp_3184", 1 + %"$$fundef_223_env_g_3186" = getelementptr inbounds %"$$fundef_223_env_571", %"$$fundef_223_env_571"* %"$$fundef_223_envp_3182", i32 0, i32 0 + %"$g_3187" = 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_3187", { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }* %"$$fundef_223_env_g_3186", align 8 + %"$$fundef_223_env_t_3188" = getelementptr inbounds %"$$fundef_223_env_571", %"$$fundef_223_env_571"* %"$$fundef_223_envp_3182", i32 0, i32 1 + %"$t_3189" = load %TName_List_ByStr20*, %TName_List_ByStr20** %t, align 8 + store %TName_List_ByStr20* %"$t_3189", %TName_List_ByStr20** %"$$fundef_223_env_t_3188", align 8 + store { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* } %"$$fundef_223_cloval_3185", { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* }* %partial, align 8, !dbg !164 + %"$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_3180" + call void @_out_of_gas() + br label %"$have_gas_3193" + +"$have_gas_3193": ; preds = %"$out_of_gas_3192", %"$have_gas_3180" + %"$consume_3194" = sub i64 %"$gasrem_3190", 1 + store i64 %"$consume_3194", i64* @_gasrem, align 8 + %"$f_78" = alloca { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* }, align 8 + %"$f_3195" = 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_3196" = 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_3195", 0 + %"$f_envptr_3197" = 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_3195", 1 + %"$z_3198" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %z, align 8 + %"$f_call_3199" = call { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } %"$f_fptr_3196"(i8* %"$f_envptr_3197", %TName_Option_ByStr20* %"$z_3198"), !dbg !167 + store { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } %"$f_call_3199", { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* }* %"$f_78", align 8, !dbg !167 + %"$f_79" = alloca { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* }, align 8 + %"$$f_78_3200" = 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_78", align 8 + %"$$f_78_fptr_3201" = extractvalue { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } %"$$f_78_3200", 0 + %"$$f_78_envptr_3202" = extractvalue { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } %"$$f_78_3200", 1 + %"$$f_78_h_3203" = alloca [20 x i8], align 1 + %"$h_3204" = load [20 x i8], [20 x i8]* %h, align 1 + store [20 x i8] %"$h_3204", [20 x i8]* %"$$f_78_h_3203", align 1 + %"$$f_78_call_3205" = call { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } %"$$f_78_fptr_3201"(i8* %"$$f_78_envptr_3202", [20 x i8]* %"$$f_78_h_3203"), !dbg !167 + store { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } %"$$f_78_call_3205", { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* }* %"$f_79", align 8, !dbg !167 + %"$f_80" = alloca %TName_Option_ByStr20*, align 8 + call void @llvm.dbg.declare(metadata %TName_Option_ByStr20** %"$f_80", metadata !168, metadata !DIExpression()), !dbg !167 + %"$$f_79_3206" = 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_79", align 8 + %"$$f_79_fptr_3207" = extractvalue { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } %"$$f_79_3206", 0 + %"$$f_79_envptr_3208" = extractvalue { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } %"$$f_79_3206", 1 + %"$partial_3209" = load { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* }, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* }* %partial, align 8 + %"$$f_79_call_3210" = call %TName_Option_ByStr20* %"$$f_79_fptr_3207"(i8* %"$$f_79_envptr_3208", { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* } %"$partial_3209"), !dbg !167 + store %TName_Option_ByStr20* %"$$f_79_call_3210", %TName_Option_ByStr20** %"$f_80", align 8, !dbg !167 + %"$$f_80_3211" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %"$f_80", align 8 + store %TName_Option_ByStr20* %"$$f_80_3211", %TName_Option_ByStr20** %"$retval_222", align 8, !dbg !167 + br label %"$matchsucc_3162" + +"$Nil_3212": ; preds = %"$have_gas_3160" + %"$l_3213" = bitcast %TName_List_ByStr20* %1 to %CName_Nil_ByStr20* + %"$gasrem_3214" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3215" = icmp ugt i64 1, %"$gasrem_3214" + br i1 %"$gascmp_3215", label %"$out_of_gas_3216", label %"$have_gas_3217" + +"$out_of_gas_3216": ; preds = %"$Nil_3212" + call void @_out_of_gas() + br label %"$have_gas_3217" + +"$have_gas_3217": ; preds = %"$out_of_gas_3216", %"$Nil_3212" + %"$consume_3218" = sub i64 %"$gasrem_3214", 1 + store i64 %"$consume_3218", i64* @_gasrem, align 8 + %"$z_3219" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %z, align 8 + store %TName_Option_ByStr20* %"$z_3219", %TName_Option_ByStr20** %"$retval_222", align 8, !dbg !169 + br label %"$matchsucc_3162" + +"$empty_default_3165": ; preds = %"$have_gas_3160" + br label %"$matchsucc_3162" + +"$matchsucc_3162": ; preds = %"$have_gas_3217", %"$have_gas_3193", %"$empty_default_3165" + %"$$retval_222_3220" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %"$retval_222", align 8 + ret %TName_Option_ByStr20* %"$$retval_222_3220" +} + +define internal { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } @"$fundef_219"(%"$$fundef_219_env_573"* %0, %TName_Option_ByStr20* %1) !dbg !171 { +entry: + %"$z_3150" = alloca %TName_Option_ByStr20*, align 8 + store %TName_Option_ByStr20* %1, %TName_Option_ByStr20** %"$z_3150", align 8 + call void @llvm.dbg.declare(metadata %TName_Option_ByStr20** %"$z_3150", metadata !172, metadata !DIExpression()), !dbg !173 + %"$$fundef_219_env_f_3126" = getelementptr inbounds %"$$fundef_219_env_573", %"$$fundef_219_env_573"* %0, i32 0, i32 0 + %"$f_envload_3127" = 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_219_env_f_3126", 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_3127", { { { %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_219_env_g_3128" = getelementptr inbounds %"$$fundef_219_env_573", %"$$fundef_219_env_573"* %0, i32 0, i32 1 + %"$g_envload_3129" = 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_219_env_g_3128", 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_3129", { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }* %g, align 8 + %"$retval_220" = alloca { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }, align 8 %"$gasrem_3130" = load i64, i64* @_gasrem, align 8 %"$gascmp_3131" = icmp ugt i64 1, %"$gasrem_3130" br i1 %"$gascmp_3131", label %"$out_of_gas_3132", label %"$have_gas_3133" -"$out_of_gas_3132": ; preds = %"$have_gas_3120" +"$out_of_gas_3132": ; preds = %entry call void @_out_of_gas() br label %"$have_gas_3133" -"$have_gas_3133": ; preds = %"$out_of_gas_3132", %"$have_gas_3120" +"$have_gas_3133": ; preds = %"$out_of_gas_3132", %entry %"$consume_3134" = sub i64 %"$gasrem_3130", 1 store i64 %"$consume_3134", i64* @_gasrem, align 8 - %"$f_78" = alloca { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* }, align 8 - %"$f_3135" = 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_3136" = 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_3135", 0 - %"$f_envptr_3137" = 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_3135", 1 - %"$z_3138" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %z, align 8 - %"$f_call_3139" = call { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } %"$f_fptr_3136"(i8* %"$f_envptr_3137", %TName_Option_ByStr20* %"$z_3138"), !dbg !97 - store { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } %"$f_call_3139", { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* }* %"$f_78", align 8, !dbg !97 - %"$f_79" = alloca { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* }, align 8 - %"$$f_78_3140" = 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_78", align 8 - %"$$f_78_fptr_3141" = extractvalue { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } %"$$f_78_3140", 0 - %"$$f_78_envptr_3142" = extractvalue { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } %"$$f_78_3140", 1 - %"$$f_78_h_3143" = alloca [20 x i8], align 1 - %"$h_3144" = load [20 x i8], [20 x i8]* %h, align 1 - store [20 x i8] %"$h_3144", [20 x i8]* %"$$f_78_h_3143", align 1 - %"$$f_78_call_3145" = call { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } %"$$f_78_fptr_3141"(i8* %"$$f_78_envptr_3142", [20 x i8]* %"$$f_78_h_3143"), !dbg !97 - store { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } %"$$f_78_call_3145", { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* }* %"$f_79", align 8, !dbg !97 - %"$f_80" = alloca %TName_Option_ByStr20*, align 8 - %"$$f_79_3146" = 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_79", align 8 - %"$$f_79_fptr_3147" = extractvalue { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } %"$$f_79_3146", 0 - %"$$f_79_envptr_3148" = extractvalue { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } %"$$f_79_3146", 1 - %"$partial_3149" = load { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* }, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* }* %partial, align 8 - %"$$f_79_call_3150" = call %TName_Option_ByStr20* %"$$f_79_fptr_3147"(i8* %"$$f_79_envptr_3148", { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* } %"$partial_3149"), !dbg !97 - store %TName_Option_ByStr20* %"$$f_79_call_3150", %TName_Option_ByStr20** %"$f_80", align 8, !dbg !97 - %"$$f_80_3151" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %"$f_80", align 8 - store %TName_Option_ByStr20* %"$$f_80_3151", %TName_Option_ByStr20** %"$retval_222", align 8, !dbg !97 - br label %"$matchsucc_3102" - -"$Nil_3152": ; preds = %"$have_gas_3100" - %"$l_3153" = bitcast %TName_List_ByStr20* %1 to %CName_Nil_ByStr20* - %"$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 = %"$Nil_3152" - call void @_out_of_gas() - br label %"$have_gas_3157" - -"$have_gas_3157": ; preds = %"$out_of_gas_3156", %"$Nil_3152" - %"$consume_3158" = sub i64 %"$gasrem_3154", 1 - store i64 %"$consume_3158", i64* @_gasrem, align 8 - %"$z_3159" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %z, align 8 - store %TName_Option_ByStr20* %"$z_3159", %TName_Option_ByStr20** %"$retval_222", align 8, !dbg !98 - br label %"$matchsucc_3102" - -"$empty_default_3105": ; preds = %"$have_gas_3100" - br label %"$matchsucc_3102" - -"$matchsucc_3102": ; preds = %"$have_gas_3157", %"$have_gas_3133", %"$empty_default_3105" - %"$$retval_222_3160" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %"$retval_222", align 8 - ret %TName_Option_ByStr20* %"$$retval_222_3160" -} - -define internal { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } @"$fundef_219"(%"$$fundef_219_env_573"* %0, %TName_Option_ByStr20* %1) !dbg !100 { + %"$gasrem_3135" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3136" = icmp ugt i64 1, %"$gasrem_3135" + br i1 %"$gascmp_3136", label %"$out_of_gas_3137", label %"$have_gas_3138" + +"$out_of_gas_3137": ; preds = %"$have_gas_3133" + call void @_out_of_gas() + br label %"$have_gas_3138" + +"$have_gas_3138": ; preds = %"$out_of_gas_3137", %"$have_gas_3133" + %"$consume_3139" = sub i64 %"$gasrem_3135", 1 + store i64 %"$consume_3139", i64* @_gasrem, align 8 + %"$$fundef_221_envp_3140_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_221_envp_3140_salloc" = call i8* @_salloc(i8* %"$$fundef_221_envp_3140_load", i64 40) + %"$$fundef_221_envp_3140" = bitcast i8* %"$$fundef_221_envp_3140_salloc" to %"$$fundef_221_env_572"* + %"$$fundef_221_env_voidp_3142" = bitcast %"$$fundef_221_env_572"* %"$$fundef_221_envp_3140" to i8* + %"$$fundef_221_cloval_3143" = insertvalue { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)* bitcast (%TName_Option_ByStr20* (%"$$fundef_221_env_572"*, %TName_List_ByStr20*)* @"$fundef_221" to %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*), i8* undef }, i8* %"$$fundef_221_env_voidp_3142", 1 + %"$$fundef_221_env_f_3144" = getelementptr inbounds %"$$fundef_221_env_572", %"$$fundef_221_env_572"* %"$$fundef_221_envp_3140", i32 0, i32 0 + %"$f_3145" = 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_3145", { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }* %"$$fundef_221_env_f_3144", align 8 + %"$$fundef_221_env_g_3146" = getelementptr inbounds %"$$fundef_221_env_572", %"$$fundef_221_env_572"* %"$$fundef_221_envp_3140", i32 0, i32 1 + %"$g_3147" = 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_3147", { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }* %"$$fundef_221_env_g_3146", align 8 + %"$$fundef_221_env_z_3148" = getelementptr inbounds %"$$fundef_221_env_572", %"$$fundef_221_env_572"* %"$$fundef_221_envp_3140", i32 0, i32 2 + store %TName_Option_ByStr20* %1, %TName_Option_ByStr20** %"$$fundef_221_env_z_3148", align 8 + store { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$$fundef_221_cloval_3143", { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }* %"$retval_220", align 8, !dbg !174 + %"$$retval_220_3149" = load { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }, { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }* %"$retval_220", align 8 + ret { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$$retval_220_3149" +} + +define internal { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } @"$fundef_217"(%"$$fundef_217_env_574"* %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 !175 { entry: - %"$$fundef_219_env_f_3067" = getelementptr inbounds %"$$fundef_219_env_573", %"$$fundef_219_env_573"* %0, i32 0, i32 0 - %"$f_envload_3068" = 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_219_env_f_3067", 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_3068", { { { %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_219_env_g_3069" = getelementptr inbounds %"$$fundef_219_env_573", %"$$fundef_219_env_573"* %0, i32 0, i32 1 - %"$g_envload_3070" = 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_219_env_g_3069", 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_3070", { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }* %g, align 8 - %"$retval_220" = alloca { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }, 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 = %entry - call void @_out_of_gas() - br label %"$have_gas_3074" - -"$have_gas_3074": ; preds = %"$out_of_gas_3073", %entry - %"$consume_3075" = sub i64 %"$gasrem_3071", 1 - store i64 %"$consume_3075", i64* @_gasrem, align 8 - %"$gasrem_3076" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3077" = icmp ugt i64 1, %"$gasrem_3076" - br i1 %"$gascmp_3077", label %"$out_of_gas_3078", label %"$have_gas_3079" + %"$retval_218" = alloca { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }, align 8 + %"$gasrem_3112" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3113" = icmp ugt i64 1, %"$gasrem_3112" + br i1 %"$gascmp_3113", label %"$out_of_gas_3114", label %"$have_gas_3115" -"$out_of_gas_3078": ; preds = %"$have_gas_3074" +"$out_of_gas_3114": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_3079" + br label %"$have_gas_3115" -"$have_gas_3079": ; preds = %"$out_of_gas_3078", %"$have_gas_3074" - %"$consume_3080" = sub i64 %"$gasrem_3076", 1 - store i64 %"$consume_3080", i64* @_gasrem, align 8 - %"$$fundef_221_envp_3081_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_221_envp_3081_salloc" = call i8* @_salloc(i8* %"$$fundef_221_envp_3081_load", i64 40) - %"$$fundef_221_envp_3081" = bitcast i8* %"$$fundef_221_envp_3081_salloc" to %"$$fundef_221_env_572"* - %"$$fundef_221_env_voidp_3083" = bitcast %"$$fundef_221_env_572"* %"$$fundef_221_envp_3081" to i8* - %"$$fundef_221_cloval_3084" = insertvalue { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)* bitcast (%TName_Option_ByStr20* (%"$$fundef_221_env_572"*, %TName_List_ByStr20*)* @"$fundef_221" to %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*), i8* undef }, i8* %"$$fundef_221_env_voidp_3083", 1 - %"$$fundef_221_env_f_3085" = getelementptr inbounds %"$$fundef_221_env_572", %"$$fundef_221_env_572"* %"$$fundef_221_envp_3081", i32 0, i32 0 - %"$f_3086" = 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_3086", { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }* %"$$fundef_221_env_f_3085", align 8 - %"$$fundef_221_env_g_3087" = getelementptr inbounds %"$$fundef_221_env_572", %"$$fundef_221_env_572"* %"$$fundef_221_envp_3081", i32 0, i32 1 - %"$g_3088" = 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_3088", { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }* %"$$fundef_221_env_g_3087", align 8 - %"$$fundef_221_env_z_3089" = getelementptr inbounds %"$$fundef_221_env_572", %"$$fundef_221_env_572"* %"$$fundef_221_envp_3081", i32 0, i32 2 - store %TName_Option_ByStr20* %1, %TName_Option_ByStr20** %"$$fundef_221_env_z_3089", align 8 - store { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$$fundef_221_cloval_3084", { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }* %"$retval_220", align 8, !dbg !101 - %"$$retval_220_3090" = load { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }, { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }* %"$retval_220", align 8 - ret { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$$retval_220_3090" -} - -define internal { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } @"$fundef_217"(%"$$fundef_217_env_574"* %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 !102 { -entry: - %"$retval_218" = alloca { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }, align 8 - %"$gasrem_3053" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3054" = icmp ugt i64 1, %"$gasrem_3053" - br i1 %"$gascmp_3054", label %"$out_of_gas_3055", label %"$have_gas_3056" - -"$out_of_gas_3055": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_3056" - -"$have_gas_3056": ; preds = %"$out_of_gas_3055", %entry - %"$consume_3057" = sub i64 %"$gasrem_3053", 1 - store i64 %"$consume_3057", i64* @_gasrem, align 8 - %"$$fundef_219_envp_3058_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_219_envp_3058_salloc" = call i8* @_salloc(i8* %"$$fundef_219_envp_3058_load", i64 32) - %"$$fundef_219_envp_3058" = bitcast i8* %"$$fundef_219_envp_3058_salloc" to %"$$fundef_219_env_573"* - %"$$fundef_219_env_voidp_3060" = bitcast %"$$fundef_219_env_573"* %"$$fundef_219_envp_3058" to i8* - %"$$fundef_219_cloval_3061" = 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_219_env_573"*, %TName_Option_ByStr20*)* @"$fundef_219" to { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*), i8* undef }, i8* %"$$fundef_219_env_voidp_3060", 1 +"$have_gas_3115": ; preds = %"$out_of_gas_3114", %entry + %"$consume_3116" = sub i64 %"$gasrem_3112", 1 + store i64 %"$consume_3116", i64* @_gasrem, align 8 + %"$$fundef_219_envp_3117_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_219_envp_3117_salloc" = call i8* @_salloc(i8* %"$$fundef_219_envp_3117_load", i64 32) + %"$$fundef_219_envp_3117" = bitcast i8* %"$$fundef_219_envp_3117_salloc" to %"$$fundef_219_env_573"* + %"$$fundef_219_env_voidp_3119" = bitcast %"$$fundef_219_env_573"* %"$$fundef_219_envp_3117" to i8* + %"$$fundef_219_cloval_3120" = 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_219_env_573"*, %TName_Option_ByStr20*)* @"$fundef_219" to { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*), i8* undef }, i8* %"$$fundef_219_env_voidp_3119", 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_219_cloval_3061", { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }* %g, align 8, !dbg !103 - %"$$fundef_219_env_f_3062" = getelementptr inbounds %"$$fundef_219_env_573", %"$$fundef_219_env_573"* %"$$fundef_219_envp_3058", 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_219_env_f_3062", align 8 - %"$$fundef_219_env_g_3063" = getelementptr inbounds %"$$fundef_219_env_573", %"$$fundef_219_env_573"* %"$$fundef_219_envp_3058", i32 0, i32 1 - %"$g_3064" = 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_3064", { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }* %"$$fundef_219_env_g_3063", align 8 - %"$g_3065" = 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_3065", { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }* %"$retval_218", align 8, !dbg !103 - %"$$retval_218_3066" = 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_218", align 8 - ret { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } %"$$retval_218_3066" + store { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } %"$$fundef_219_cloval_3120", { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }* %g, align 8, !dbg !176 + %"$$fundef_219_env_f_3121" = getelementptr inbounds %"$$fundef_219_env_573", %"$$fundef_219_env_573"* %"$$fundef_219_envp_3117", 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_219_env_f_3121", align 8 + %"$$fundef_219_env_g_3122" = getelementptr inbounds %"$$fundef_219_env_573", %"$$fundef_219_env_573"* %"$$fundef_219_envp_3117", i32 0, i32 1 + %"$g_3123" = 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_3123", { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }* %"$$fundef_219_env_g_3122", align 8 + %"$g_3124" = 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_3124", { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }* %"$retval_218", align 8, !dbg !176 + %"$$retval_218_3125" = 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_218", align 8 + ret { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } %"$$retval_218_3125" } -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_215"(%"$$fundef_215_env_575"* %0) !dbg !104 { +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_215"(%"$$fundef_215_env_575"* %0) !dbg !177 { entry: %"$retval_216" = 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_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" + %"$gasrem_3103" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3104" = icmp ugt i64 1, %"$gasrem_3103" + br i1 %"$gascmp_3104", label %"$out_of_gas_3105", label %"$have_gas_3106" -"$out_of_gas_3046": ; preds = %entry +"$out_of_gas_3105": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_3047" + br label %"$have_gas_3106" -"$have_gas_3047": ; preds = %"$out_of_gas_3046", %entry - %"$consume_3048" = sub i64 %"$gasrem_3044", 1 - store i64 %"$consume_3048", 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_217_env_574"*, { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* })* @"$fundef_217" 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_216", align 8, !dbg !105 - %"$$retval_216_3052" = 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_216", 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_216_3052" +"$have_gas_3106": ; preds = %"$out_of_gas_3105", %entry + %"$consume_3107" = sub i64 %"$gasrem_3103", 1 + store i64 %"$consume_3107", 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_217_env_574"*, { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* })* @"$fundef_217" 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_216", align 8, !dbg !178 + %"$$retval_216_3111" = 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_216", 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_216_3111" } -define internal { i8*, i8* }* @"$fundef_213"(%"$$fundef_213_env_576"* %0) !dbg !106 { +define internal { i8*, i8* }* @"$fundef_213"(%"$$fundef_213_env_576"* %0) !dbg !179 { entry: %"$retval_214" = alloca { i8*, i8* }*, 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_3034": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_3035" - -"$have_gas_3035": ; preds = %"$out_of_gas_3034", %entry - %"$consume_3036" = sub i64 %"$gasrem_3032", 1 - store i64 %"$consume_3036", i64* @_gasrem, align 8 - %"$dyndisp_table_3040_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$dyndisp_table_3040_salloc_salloc" = call i8* @_salloc(i8* %"$dyndisp_table_3040_salloc_load", i64 48) - %"$dyndisp_table_3040_salloc" = bitcast i8* %"$dyndisp_table_3040_salloc_salloc" to [3 x { i8*, i8* }]* - %"$dyndisp_table_3040" = bitcast [3 x { i8*, i8* }]* %"$dyndisp_table_3040_salloc" to { i8*, i8* }* - %"$dyndisp_gep_3041" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_3040", i32 1 - %"$dyndisp_pcast_3042" = bitcast { i8*, i8* }* %"$dyndisp_gep_3041" 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_215_env_575"*)* @"$fundef_215" 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_3042", align 8 - store { i8*, i8* }* %"$dyndisp_table_3040", { i8*, i8* }** %"$retval_214", align 8, !dbg !107 - %"$$retval_214_3043" = load { i8*, i8* }*, { i8*, i8* }** %"$retval_214", align 8 - ret { i8*, i8* }* %"$$retval_214_3043" -} - -define internal %TName_Bool* @"$fundef_211"(%"$$fundef_211_env_577"* %0, [20 x i8]* %1) !dbg !108 { -entry: + %"$gasrem_3091" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3092" = icmp ugt i64 1, %"$gasrem_3091" + br i1 %"$gascmp_3092", label %"$out_of_gas_3093", label %"$have_gas_3094" + +"$out_of_gas_3093": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_3094" + +"$have_gas_3094": ; preds = %"$out_of_gas_3093", %entry + %"$consume_3095" = sub i64 %"$gasrem_3091", 1 + store i64 %"$consume_3095", i64* @_gasrem, align 8 + %"$dyndisp_table_3099_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$dyndisp_table_3099_salloc_salloc" = call i8* @_salloc(i8* %"$dyndisp_table_3099_salloc_load", i64 48) + %"$dyndisp_table_3099_salloc" = bitcast i8* %"$dyndisp_table_3099_salloc_salloc" to [3 x { i8*, i8* }]* + %"$dyndisp_table_3099" = bitcast [3 x { i8*, i8* }]* %"$dyndisp_table_3099_salloc" to { i8*, i8* }* + %"$dyndisp_gep_3100" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_3099", i32 1 + %"$dyndisp_pcast_3101" = bitcast { i8*, i8* }* %"$dyndisp_gep_3100" 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_215_env_575"*)* @"$fundef_215" 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_3101", align 8 + store { i8*, i8* }* %"$dyndisp_table_3099", { i8*, i8* }** %"$retval_214", align 8, !dbg !180 + %"$$retval_214_3102" = load { i8*, i8* }*, { i8*, i8* }** %"$retval_214", align 8 + ret { i8*, i8* }* %"$$retval_214_3102" +} + +define internal %TName_Bool* @"$fundef_211"(%"$$fundef_211_env_577"* %0, [20 x i8]* %1) !dbg !181 { +entry: + %"$bs2_3090" = alloca [20 x i8]*, align 8 + store [20 x i8]* %1, [20 x i8]** %"$bs2_3090", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$bs2_3090", metadata !182, metadata !DIExpression()), !dbg !183 %bs2 = load [20 x i8], [20 x i8]* %1, align 1 - %"$$fundef_211_env_bs1_3016" = getelementptr inbounds %"$$fundef_211_env_577", %"$$fundef_211_env_577"* %0, i32 0, i32 0 - %"$bs1_envload_3017" = load [20 x i8], [20 x i8]* %"$$fundef_211_env_bs1_3016", align 1 + %"$$fundef_211_env_bs1_3074" = getelementptr inbounds %"$$fundef_211_env_577", %"$$fundef_211_env_577"* %0, i32 0, i32 0 + %"$bs1_envload_3075" = load [20 x i8], [20 x i8]* %"$$fundef_211_env_bs1_3074", align 1 %bs1 = alloca [20 x i8], align 1 - store [20 x i8] %"$bs1_envload_3017", [20 x i8]* %bs1, align 1 + store [20 x i8] %"$bs1_envload_3075", [20 x i8]* %bs1, align 1 %"$retval_212" = alloca %TName_Bool*, align 8 - %"$gasrem_3018" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3019" = icmp ugt i64 20, %"$gasrem_3018" - br i1 %"$gascmp_3019", label %"$out_of_gas_3020", label %"$have_gas_3021" + call void @llvm.dbg.declare(metadata %TName_Bool** %"$retval_212", metadata !184, metadata !DIExpression()), !dbg !185 + %"$gasrem_3076" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3077" = icmp ugt i64 20, %"$gasrem_3076" + br i1 %"$gascmp_3077", label %"$out_of_gas_3078", label %"$have_gas_3079" -"$out_of_gas_3020": ; preds = %entry +"$out_of_gas_3078": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_3021" + br label %"$have_gas_3079" -"$have_gas_3021": ; preds = %"$out_of_gas_3020", %entry - %"$consume_3022" = sub i64 %"$gasrem_3018", 20 - store i64 %"$consume_3022", i64* @_gasrem, align 8 - %"$execptr_load_3023" = load i8*, i8** @_execptr, align 8 - %"$eq_bs1_3024" = alloca [20 x i8], align 1 - %"$bs1_3025" = load [20 x i8], [20 x i8]* %bs1, align 1 - store [20 x i8] %"$bs1_3025", [20 x i8]* %"$eq_bs1_3024", align 1 - %"$$eq_bs1_3024_3026" = bitcast [20 x i8]* %"$eq_bs1_3024" to i8* - %"$eq_bs2_3027" = alloca [20 x i8], align 1 - store [20 x i8] %bs2, [20 x i8]* %"$eq_bs2_3027", align 1 - %"$$eq_bs2_3027_3028" = bitcast [20 x i8]* %"$eq_bs2_3027" to i8* - %"$eq_call_3029" = call %TName_Bool* @_eq_ByStrX(i8* %"$execptr_load_3023", i32 20, i8* %"$$eq_bs1_3024_3026", i8* %"$$eq_bs2_3027_3028"), !dbg !109 - store %TName_Bool* %"$eq_call_3029", %TName_Bool** %"$retval_212", align 8, !dbg !109 - %"$$retval_212_3031" = load %TName_Bool*, %TName_Bool** %"$retval_212", align 8 - ret %TName_Bool* %"$$retval_212_3031" -} - -define internal { %TName_Bool* (i8*, [20 x i8]*)*, i8* } @"$fundef_209"(%"$$fundef_209_env_578"* %0, [20 x i8]* %1) !dbg !110 { -entry: +"$have_gas_3079": ; preds = %"$out_of_gas_3078", %entry + %"$consume_3080" = sub i64 %"$gasrem_3076", 20 + store i64 %"$consume_3080", i64* @_gasrem, align 8 + %"$execptr_load_3081" = load i8*, i8** @_execptr, align 8 + %"$eq_bs1_3082" = alloca [20 x i8], align 1 + %"$bs1_3083" = load [20 x i8], [20 x i8]* %bs1, align 1 + store [20 x i8] %"$bs1_3083", [20 x i8]* %"$eq_bs1_3082", align 1 + %"$$eq_bs1_3082_3084" = bitcast [20 x i8]* %"$eq_bs1_3082" to i8* + %"$eq_bs2_3085" = alloca [20 x i8], align 1 + store [20 x i8] %bs2, [20 x i8]* %"$eq_bs2_3085", align 1 + %"$$eq_bs2_3085_3086" = bitcast [20 x i8]* %"$eq_bs2_3085" to i8* + %"$eq_call_3087" = call %TName_Bool* @_eq_ByStrX(i8* %"$execptr_load_3081", i32 20, i8* %"$$eq_bs1_3082_3084", i8* %"$$eq_bs2_3085_3086"), !dbg !185 + store %TName_Bool* %"$eq_call_3087", %TName_Bool** %"$retval_212", align 8, !dbg !185 + %"$$retval_212_3089" = load %TName_Bool*, %TName_Bool** %"$retval_212", align 8 + ret %TName_Bool* %"$$retval_212_3089" +} + +define internal { %TName_Bool* (i8*, [20 x i8]*)*, i8* } @"$fundef_209"(%"$$fundef_209_env_578"* %0, [20 x i8]* %1) !dbg !186 { +entry: + %"$bs1_3073" = alloca [20 x i8]*, align 8 + store [20 x i8]* %1, [20 x i8]** %"$bs1_3073", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$bs1_3073", metadata !187, metadata !DIExpression()), !dbg !188 %bs1 = load [20 x i8], [20 x i8]* %1, align 1 %"$retval_210" = alloca { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, align 8 - %"$gasrem_3005" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3006" = icmp ugt i64 1, %"$gasrem_3005" - br i1 %"$gascmp_3006", label %"$out_of_gas_3007", label %"$have_gas_3008" - -"$out_of_gas_3007": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_3008" - -"$have_gas_3008": ; preds = %"$out_of_gas_3007", %entry - %"$consume_3009" = sub i64 %"$gasrem_3005", 1 - store i64 %"$consume_3009", i64* @_gasrem, align 8 - %"$$fundef_211_envp_3010_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_211_envp_3010_salloc" = call i8* @_salloc(i8* %"$$fundef_211_envp_3010_load", i64 20) - %"$$fundef_211_envp_3010" = bitcast i8* %"$$fundef_211_envp_3010_salloc" to %"$$fundef_211_env_577"* - %"$$fundef_211_env_voidp_3012" = bitcast %"$$fundef_211_env_577"* %"$$fundef_211_envp_3010" to i8* - %"$$fundef_211_cloval_3013" = insertvalue { %TName_Bool* (i8*, [20 x i8]*)*, i8* } { %TName_Bool* (i8*, [20 x i8]*)* bitcast (%TName_Bool* (%"$$fundef_211_env_577"*, [20 x i8]*)* @"$fundef_211" to %TName_Bool* (i8*, [20 x i8]*)*), i8* undef }, i8* %"$$fundef_211_env_voidp_3012", 1 - %"$$fundef_211_env_bs1_3014" = getelementptr inbounds %"$$fundef_211_env_577", %"$$fundef_211_env_577"* %"$$fundef_211_envp_3010", i32 0, i32 0 - store [20 x i8] %bs1, [20 x i8]* %"$$fundef_211_env_bs1_3014", align 1 - store { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$$fundef_211_cloval_3013", { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %"$retval_210", align 8, !dbg !111 - %"$$retval_210_3015" = load { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %"$retval_210", align 8 - ret { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$$retval_210_3015" -} - -define internal void @"$fundef_265"(%"$$fundef_265_env_579"* %0, [32 x i8]* %1, %String %2) !dbg !112 { -entry: - %"$$fundef_265_env_parent_2935" = getelementptr inbounds %"$$fundef_265_env_579", %"$$fundef_265_env_579"* %0, i32 0, i32 0 - %"$parent_envload_2936" = load [32 x i8], [32 x i8]* %"$$fundef_265_env_parent_2935", align 1 + %"$gasrem_3062" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3063" = icmp ugt i64 1, %"$gasrem_3062" + br i1 %"$gascmp_3063", label %"$out_of_gas_3064", label %"$have_gas_3065" + +"$out_of_gas_3064": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_3065" + +"$have_gas_3065": ; preds = %"$out_of_gas_3064", %entry + %"$consume_3066" = sub i64 %"$gasrem_3062", 1 + store i64 %"$consume_3066", i64* @_gasrem, align 8 + %"$$fundef_211_envp_3067_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_211_envp_3067_salloc" = call i8* @_salloc(i8* %"$$fundef_211_envp_3067_load", i64 20) + %"$$fundef_211_envp_3067" = bitcast i8* %"$$fundef_211_envp_3067_salloc" to %"$$fundef_211_env_577"* + %"$$fundef_211_env_voidp_3069" = bitcast %"$$fundef_211_env_577"* %"$$fundef_211_envp_3067" to i8* + %"$$fundef_211_cloval_3070" = insertvalue { %TName_Bool* (i8*, [20 x i8]*)*, i8* } { %TName_Bool* (i8*, [20 x i8]*)* bitcast (%TName_Bool* (%"$$fundef_211_env_577"*, [20 x i8]*)* @"$fundef_211" to %TName_Bool* (i8*, [20 x i8]*)*), i8* undef }, i8* %"$$fundef_211_env_voidp_3069", 1 + %"$$fundef_211_env_bs1_3071" = getelementptr inbounds %"$$fundef_211_env_577", %"$$fundef_211_env_577"* %"$$fundef_211_envp_3067", i32 0, i32 0 + store [20 x i8] %bs1, [20 x i8]* %"$$fundef_211_env_bs1_3071", align 1 + store { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$$fundef_211_cloval_3070", { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %"$retval_210", align 8, !dbg !189 + %"$$retval_210_3072" = load { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %"$retval_210", align 8 + ret { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$$retval_210_3072" +} + +define internal void @"$fundef_265"(%"$$fundef_265_env_579"* %0, [32 x i8]* %1, %String %2) !dbg !190 { +entry: + %"$label_3061" = alloca %String, align 8 + store %String %2, %String* %"$label_3061", align 8 + call void @llvm.dbg.declare(metadata %String* %"$label_3061", metadata !191, metadata !DIExpression()), !dbg !193 + %"$$fundef_265_env_parent_2991" = getelementptr inbounds %"$$fundef_265_env_579", %"$$fundef_265_env_579"* %0, i32 0, i32 0 + %"$parent_envload_2992" = load [32 x i8], [32 x i8]* %"$$fundef_265_env_parent_2991", align 1 %parent = alloca [32 x i8], align 1 - store [32 x i8] %"$parent_envload_2936", [32 x i8]* %parent, align 1 + store [32 x i8] %"$parent_envload_2992", [32 x i8]* %parent, align 1 %"$retval_266" = alloca [32 x i8], align 1 - %"$gasrem_2937" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2938" = icmp ugt i64 1, %"$gasrem_2937" - br i1 %"$gascmp_2938", label %"$out_of_gas_2939", label %"$have_gas_2940" + call void @llvm.dbg.declare(metadata [32 x i8]* %"$retval_266", metadata !194, metadata !DIExpression()), !dbg !196 + %"$gasrem_2993" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2994" = icmp ugt i64 1, %"$gasrem_2993" + br i1 %"$gascmp_2994", label %"$out_of_gas_2995", label %"$have_gas_2996" -"$out_of_gas_2939": ; preds = %entry +"$out_of_gas_2995": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_2940" + br label %"$have_gas_2996" -"$have_gas_2940": ; preds = %"$out_of_gas_2939", %entry - %"$consume_2941" = sub i64 %"$gasrem_2937", 1 - store i64 %"$consume_2941", i64* @_gasrem, align 8 +"$have_gas_2996": ; preds = %"$out_of_gas_2995", %entry + %"$consume_2997" = sub i64 %"$gasrem_2993", 1 + store i64 %"$consume_2997", i64* @_gasrem, align 8 %labelHash = alloca [32 x i8], align 1 - %"$_literal_cost_label_2942" = alloca %String, align 8 - store %String %2, %String* %"$_literal_cost_label_2942", align 8 - %"$$_literal_cost_label_2942_2943" = bitcast %String* %"$_literal_cost_label_2942" to i8* - %"$_literal_cost_call_2944" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_440", i8* %"$$_literal_cost_label_2942_2943") - %"$gasadd_2945" = add i64 %"$_literal_cost_call_2944", 0 - %"$gasdivceil_2946" = urem i64 %"$gasadd_2945", 960 - %"$gasdivceil_2947" = udiv i64 %"$gasadd_2945", 960 - %"$gasdivceil_2948" = icmp eq i64 %"$gasdivceil_2946", 0 - %"$gasdivceil_2949" = add i64 %"$gasdivceil_2947", 1 - %"$gasdivceil_2950" = select i1 %"$gasdivceil_2948", i64 %"$gasdivceil_2947", i64 %"$gasdivceil_2949" - %"$gasrem_2951" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2952" = icmp ugt i64 %"$gasdivceil_2950", %"$gasrem_2951" - br i1 %"$gascmp_2952", label %"$out_of_gas_2953", label %"$have_gas_2954" - -"$out_of_gas_2953": ; preds = %"$have_gas_2940" - call void @_out_of_gas() - br label %"$have_gas_2954" - -"$have_gas_2954": ; preds = %"$out_of_gas_2953", %"$have_gas_2940" - %"$consume_2955" = sub i64 %"$gasrem_2951", %"$gasdivceil_2950" - store i64 %"$consume_2955", i64* @_gasrem, align 8 - %"$execptr_load_2956" = load i8*, i8** @_execptr, align 8 - %"$sha256hash_label_2957" = alloca %String, align 8 - store %String %2, %String* %"$sha256hash_label_2957", align 8 - %"$$sha256hash_label_2957_2958" = bitcast %String* %"$sha256hash_label_2957" to i8* - %"$sha256hash_call_2959" = call [32 x i8]* @_sha256hash(i8* %"$execptr_load_2956", %_TyDescrTy_Typ* @"$TyDescr_String_440", i8* %"$$sha256hash_label_2957_2958"), !dbg !113 - %"$sha256hash_2961" = load [32 x i8], [32 x i8]* %"$sha256hash_call_2959", align 1 - store [32 x i8] %"$sha256hash_2961", [32 x i8]* %labelHash, align 1, !dbg !113 - %"$gasrem_2962" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2963" = icmp ugt i64 1, %"$gasrem_2962" - br i1 %"$gascmp_2963", label %"$out_of_gas_2964", label %"$have_gas_2965" - -"$out_of_gas_2964": ; preds = %"$have_gas_2954" - call void @_out_of_gas() - br label %"$have_gas_2965" - -"$have_gas_2965": ; preds = %"$out_of_gas_2964", %"$have_gas_2954" - %"$consume_2966" = sub i64 %"$gasrem_2962", 1 - store i64 %"$consume_2966", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata [32 x i8]* %labelHash, metadata !197, metadata !DIExpression()), !dbg !198 + %"$_literal_cost_label_2998" = alloca %String, align 8 + store %String %2, %String* %"$_literal_cost_label_2998", align 8 + %"$$_literal_cost_label_2998_2999" = bitcast %String* %"$_literal_cost_label_2998" to i8* + %"$_literal_cost_call_3000" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_440", i8* %"$$_literal_cost_label_2998_2999") + %"$gasadd_3001" = add i64 %"$_literal_cost_call_3000", 0 + %"$gasdivceil_3002" = urem i64 %"$gasadd_3001", 960 + %"$gasdivceil_3003" = udiv i64 %"$gasadd_3001", 960 + %"$gasdivceil_3004" = icmp eq i64 %"$gasdivceil_3002", 0 + %"$gasdivceil_3005" = add i64 %"$gasdivceil_3003", 1 + %"$gasdivceil_3006" = select i1 %"$gasdivceil_3004", i64 %"$gasdivceil_3003", i64 %"$gasdivceil_3005" + %"$gasrem_3007" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3008" = icmp ugt i64 %"$gasdivceil_3006", %"$gasrem_3007" + br i1 %"$gascmp_3008", label %"$out_of_gas_3009", label %"$have_gas_3010" + +"$out_of_gas_3009": ; preds = %"$have_gas_2996" + call void @_out_of_gas() + br label %"$have_gas_3010" + +"$have_gas_3010": ; preds = %"$out_of_gas_3009", %"$have_gas_2996" + %"$consume_3011" = sub i64 %"$gasrem_3007", %"$gasdivceil_3006" + store i64 %"$consume_3011", i64* @_gasrem, align 8 + %"$execptr_load_3012" = load i8*, i8** @_execptr, align 8 + %"$sha256hash_label_3013" = alloca %String, align 8 + store %String %2, %String* %"$sha256hash_label_3013", align 8 + %"$$sha256hash_label_3013_3014" = bitcast %String* %"$sha256hash_label_3013" to i8* + %"$sha256hash_call_3015" = call [32 x i8]* @_sha256hash(i8* %"$execptr_load_3012", %_TyDescrTy_Typ* @"$TyDescr_String_440", i8* %"$$sha256hash_label_3013_3014"), !dbg !199 + %"$sha256hash_3017" = load [32 x i8], [32 x i8]* %"$sha256hash_call_3015", align 1 + store [32 x i8] %"$sha256hash_3017", [32 x i8]* %labelHash, align 1, !dbg !199 + %"$gasrem_3018" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3019" = icmp ugt i64 1, %"$gasrem_3018" + br i1 %"$gascmp_3019", label %"$out_of_gas_3020", label %"$have_gas_3021" + +"$out_of_gas_3020": ; preds = %"$have_gas_3010" + call void @_out_of_gas() + br label %"$have_gas_3021" + +"$have_gas_3021": ; preds = %"$out_of_gas_3020", %"$have_gas_3010" + %"$consume_3022" = sub i64 %"$gasrem_3018", 1 + store i64 %"$consume_3022", i64* @_gasrem, align 8 %nodeInput = alloca [64 x i8], align 1 - %"$gasrem_2967" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2968" = icmp ugt i64 64, %"$gasrem_2967" - br i1 %"$gascmp_2968", label %"$out_of_gas_2969", label %"$have_gas_2970" - -"$out_of_gas_2969": ; preds = %"$have_gas_2965" - call void @_out_of_gas() - br label %"$have_gas_2970" - -"$have_gas_2970": ; preds = %"$out_of_gas_2969", %"$have_gas_2965" - %"$consume_2971" = sub i64 %"$gasrem_2967", 64 - store i64 %"$consume_2971", i64* @_gasrem, align 8 - %"$execptr_load_2972" = load i8*, i8** @_execptr, align 8 - %"$concat_parent_2973" = alloca [32 x i8], align 1 - %"$parent_2974" = load [32 x i8], [32 x i8]* %parent, align 1 - store [32 x i8] %"$parent_2974", [32 x i8]* %"$concat_parent_2973", align 1 - %"$$concat_parent_2973_2975" = bitcast [32 x i8]* %"$concat_parent_2973" to i8* - %"$concat_labelHash_2976" = alloca [32 x i8], align 1 - %"$labelHash_2977" = load [32 x i8], [32 x i8]* %labelHash, align 1 - store [32 x i8] %"$labelHash_2977", [32 x i8]* %"$concat_labelHash_2976", align 1 - %"$$concat_labelHash_2976_2978" = bitcast [32 x i8]* %"$concat_labelHash_2976" to i8* - %"$concat_call_2979" = call i8* @_concat_ByStrX(i8* %"$execptr_load_2972", i32 32, i8* %"$$concat_parent_2973_2975", i32 32, i8* %"$$concat_labelHash_2976_2978"), !dbg !114 - %"$concat_2980" = bitcast i8* %"$concat_call_2979" to [64 x i8]* - %"$concat_2981" = load [64 x i8], [64 x i8]* %"$concat_2980", align 1 - store [64 x i8] %"$concat_2981", [64 x i8]* %nodeInput, align 1, !dbg !114 - %"$_literal_cost_nodeInput_2982" = alloca [64 x i8], align 1 - %"$nodeInput_2983" = load [64 x i8], [64 x i8]* %nodeInput, align 1 - store [64 x i8] %"$nodeInput_2983", [64 x i8]* %"$_literal_cost_nodeInput_2982", align 1 - %"$$_literal_cost_nodeInput_2982_2984" = bitcast [64 x i8]* %"$_literal_cost_nodeInput_2982" to i8* - %"$_literal_cost_call_2985" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Bystr64_454", i8* %"$$_literal_cost_nodeInput_2982_2984") - %"$gasadd_2986" = add i64 %"$_literal_cost_call_2985", 0 - %"$gasdivceil_2987" = urem i64 %"$gasadd_2986", 960 - %"$gasdivceil_2988" = udiv i64 %"$gasadd_2986", 960 - %"$gasdivceil_2989" = icmp eq i64 %"$gasdivceil_2987", 0 - %"$gasdivceil_2990" = add i64 %"$gasdivceil_2988", 1 - %"$gasdivceil_2991" = select i1 %"$gasdivceil_2989", i64 %"$gasdivceil_2988", i64 %"$gasdivceil_2990" - %"$gasrem_2992" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2993" = icmp ugt i64 %"$gasdivceil_2991", %"$gasrem_2992" - br i1 %"$gascmp_2993", label %"$out_of_gas_2994", label %"$have_gas_2995" - -"$out_of_gas_2994": ; preds = %"$have_gas_2970" - call void @_out_of_gas() - br label %"$have_gas_2995" - -"$have_gas_2995": ; preds = %"$out_of_gas_2994", %"$have_gas_2970" - %"$consume_2996" = sub i64 %"$gasrem_2992", %"$gasdivceil_2991" - store i64 %"$consume_2996", i64* @_gasrem, align 8 - %"$execptr_load_2997" = load i8*, i8** @_execptr, align 8 - %"$sha256hash_nodeInput_2998" = alloca [64 x i8], align 1 - %"$nodeInput_2999" = load [64 x i8], [64 x i8]* %nodeInput, align 1 - store [64 x i8] %"$nodeInput_2999", [64 x i8]* %"$sha256hash_nodeInput_2998", align 1 - %"$$sha256hash_nodeInput_2998_3000" = bitcast [64 x i8]* %"$sha256hash_nodeInput_2998" to i8* - %"$sha256hash_call_3001" = call [32 x i8]* @_sha256hash(i8* %"$execptr_load_2997", %_TyDescrTy_Typ* @"$TyDescr_Bystr64_454", i8* %"$$sha256hash_nodeInput_2998_3000"), !dbg !115 - %"$sha256hash_3003" = load [32 x i8], [32 x i8]* %"$sha256hash_call_3001", align 1 - store [32 x i8] %"$sha256hash_3003", [32 x i8]* %"$retval_266", align 1, !dbg !115 - %"$$retval_266_3004" = load [32 x i8], [32 x i8]* %"$retval_266", align 1 - store [32 x i8] %"$$retval_266_3004", [32 x i8]* %1, align 1 + call void @llvm.dbg.declare(metadata [64 x i8]* %nodeInput, metadata !200, metadata !DIExpression()), !dbg !202 + %"$gasrem_3023" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3024" = icmp ugt i64 64, %"$gasrem_3023" + br i1 %"$gascmp_3024", label %"$out_of_gas_3025", label %"$have_gas_3026" + +"$out_of_gas_3025": ; preds = %"$have_gas_3021" + call void @_out_of_gas() + br label %"$have_gas_3026" + +"$have_gas_3026": ; preds = %"$out_of_gas_3025", %"$have_gas_3021" + %"$consume_3027" = sub i64 %"$gasrem_3023", 64 + store i64 %"$consume_3027", i64* @_gasrem, align 8 + %"$execptr_load_3028" = load i8*, i8** @_execptr, align 8 + %"$concat_parent_3029" = alloca [32 x i8], align 1 + %"$parent_3030" = load [32 x i8], [32 x i8]* %parent, align 1 + store [32 x i8] %"$parent_3030", [32 x i8]* %"$concat_parent_3029", align 1 + %"$$concat_parent_3029_3031" = bitcast [32 x i8]* %"$concat_parent_3029" to i8* + %"$concat_labelHash_3032" = alloca [32 x i8], align 1 + %"$labelHash_3033" = load [32 x i8], [32 x i8]* %labelHash, align 1 + store [32 x i8] %"$labelHash_3033", [32 x i8]* %"$concat_labelHash_3032", align 1 + %"$$concat_labelHash_3032_3034" = bitcast [32 x i8]* %"$concat_labelHash_3032" to i8* + %"$concat_call_3035" = call i8* @_concat_ByStrX(i8* %"$execptr_load_3028", i32 32, i8* %"$$concat_parent_3029_3031", i32 32, i8* %"$$concat_labelHash_3032_3034"), !dbg !203 + %"$concat_3036" = bitcast i8* %"$concat_call_3035" to [64 x i8]* + %"$concat_3037" = load [64 x i8], [64 x i8]* %"$concat_3036", align 1 + store [64 x i8] %"$concat_3037", [64 x i8]* %nodeInput, align 1, !dbg !203 + %"$_literal_cost_nodeInput_3038" = alloca [64 x i8], align 1 + %"$nodeInput_3039" = load [64 x i8], [64 x i8]* %nodeInput, align 1 + store [64 x i8] %"$nodeInput_3039", [64 x i8]* %"$_literal_cost_nodeInput_3038", align 1 + %"$$_literal_cost_nodeInput_3038_3040" = bitcast [64 x i8]* %"$_literal_cost_nodeInput_3038" to i8* + %"$_literal_cost_call_3041" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Bystr64_454", i8* %"$$_literal_cost_nodeInput_3038_3040") + %"$gasadd_3042" = add i64 %"$_literal_cost_call_3041", 0 + %"$gasdivceil_3043" = urem i64 %"$gasadd_3042", 960 + %"$gasdivceil_3044" = udiv i64 %"$gasadd_3042", 960 + %"$gasdivceil_3045" = icmp eq i64 %"$gasdivceil_3043", 0 + %"$gasdivceil_3046" = add i64 %"$gasdivceil_3044", 1 + %"$gasdivceil_3047" = select i1 %"$gasdivceil_3045", i64 %"$gasdivceil_3044", i64 %"$gasdivceil_3046" + %"$gasrem_3048" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3049" = icmp ugt i64 %"$gasdivceil_3047", %"$gasrem_3048" + br i1 %"$gascmp_3049", label %"$out_of_gas_3050", label %"$have_gas_3051" + +"$out_of_gas_3050": ; preds = %"$have_gas_3026" + call void @_out_of_gas() + br label %"$have_gas_3051" + +"$have_gas_3051": ; preds = %"$out_of_gas_3050", %"$have_gas_3026" + %"$consume_3052" = sub i64 %"$gasrem_3048", %"$gasdivceil_3047" + store i64 %"$consume_3052", i64* @_gasrem, align 8 + %"$execptr_load_3053" = load i8*, i8** @_execptr, align 8 + %"$sha256hash_nodeInput_3054" = alloca [64 x i8], align 1 + %"$nodeInput_3055" = load [64 x i8], [64 x i8]* %nodeInput, align 1 + store [64 x i8] %"$nodeInput_3055", [64 x i8]* %"$sha256hash_nodeInput_3054", align 1 + %"$$sha256hash_nodeInput_3054_3056" = bitcast [64 x i8]* %"$sha256hash_nodeInput_3054" to i8* + %"$sha256hash_call_3057" = call [32 x i8]* @_sha256hash(i8* %"$execptr_load_3053", %_TyDescrTy_Typ* @"$TyDescr_Bystr64_454", i8* %"$$sha256hash_nodeInput_3054_3056"), !dbg !204 + %"$sha256hash_3059" = load [32 x i8], [32 x i8]* %"$sha256hash_call_3057", align 1 + store [32 x i8] %"$sha256hash_3059", [32 x i8]* %"$retval_266", align 1, !dbg !204 + %"$$retval_266_3060" = load [32 x i8], [32 x i8]* %"$retval_266", align 1 + store [32 x i8] %"$$retval_266_3060", [32 x i8]* %1, align 1 ret void } -define internal { void (i8*, [32 x i8]*, %String)*, i8* } @"$fundef_263"(%"$$fundef_263_env_580"* %0, [32 x i8]* %1) !dbg !116 { +define internal { void (i8*, [32 x i8]*, %String)*, i8* } @"$fundef_263"(%"$$fundef_263_env_580"* %0, [32 x i8]* %1) !dbg !205 { entry: + %"$parent_2990" = alloca [32 x i8]*, align 8 + store [32 x i8]* %1, [32 x i8]** %"$parent_2990", align 8 + call void @llvm.dbg.declare(metadata [32 x i8]** %"$parent_2990", metadata !206, metadata !DIExpression()), !dbg !207 %parent = load [32 x i8], [32 x i8]* %1, align 1 %"$retval_264" = alloca { void (i8*, [32 x i8]*, %String)*, i8* }, align 8 - %"$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 = %entry - call void @_out_of_gas() - br label %"$have_gas_2927" - -"$have_gas_2927": ; preds = %"$out_of_gas_2926", %entry - %"$consume_2928" = sub i64 %"$gasrem_2924", 1 - store i64 %"$consume_2928", i64* @_gasrem, align 8 - %"$$fundef_265_envp_2929_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_265_envp_2929_salloc" = call i8* @_salloc(i8* %"$$fundef_265_envp_2929_load", i64 32) - %"$$fundef_265_envp_2929" = bitcast i8* %"$$fundef_265_envp_2929_salloc" to %"$$fundef_265_env_579"* - %"$$fundef_265_env_voidp_2931" = bitcast %"$$fundef_265_env_579"* %"$$fundef_265_envp_2929" to i8* - %"$$fundef_265_cloval_2932" = insertvalue { void (i8*, [32 x i8]*, %String)*, i8* } { void (i8*, [32 x i8]*, %String)* bitcast (void (%"$$fundef_265_env_579"*, [32 x i8]*, %String)* @"$fundef_265" to void (i8*, [32 x i8]*, %String)*), i8* undef }, i8* %"$$fundef_265_env_voidp_2931", 1 - %"$$fundef_265_env_parent_2933" = getelementptr inbounds %"$$fundef_265_env_579", %"$$fundef_265_env_579"* %"$$fundef_265_envp_2929", i32 0, i32 0 - store [32 x i8] %parent, [32 x i8]* %"$$fundef_265_env_parent_2933", align 1 - store { void (i8*, [32 x i8]*, %String)*, i8* } %"$$fundef_265_cloval_2932", { void (i8*, [32 x i8]*, %String)*, i8* }* %"$retval_264", align 8, !dbg !117 - %"$$retval_264_2934" = load { void (i8*, [32 x i8]*, %String)*, i8* }, { void (i8*, [32 x i8]*, %String)*, i8* }* %"$retval_264", align 8 - ret { void (i8*, [32 x i8]*, %String)*, i8* } %"$$retval_264_2934" -} - -define internal void @"$fundef_267"(%"$$fundef_267_env_581"* %0, [20 x i8]* %1, %TName_Option_ud-registry.Record* %2) !dbg !118 { -entry: - %"$$fundef_267_env_ud-registry.zeroByStr20_2878" = getelementptr inbounds %"$$fundef_267_env_581", %"$$fundef_267_env_581"* %0, i32 0, i32 0 - %"$ud-registry.zeroByStr20_envload_2879" = load [20 x i8], [20 x i8]* %"$$fundef_267_env_ud-registry.zeroByStr20_2878", align 1 + %"$gasrem_2979" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2980" = icmp ugt i64 1, %"$gasrem_2979" + br i1 %"$gascmp_2980", label %"$out_of_gas_2981", label %"$have_gas_2982" + +"$out_of_gas_2981": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_2982" + +"$have_gas_2982": ; preds = %"$out_of_gas_2981", %entry + %"$consume_2983" = sub i64 %"$gasrem_2979", 1 + store i64 %"$consume_2983", i64* @_gasrem, align 8 + %"$$fundef_265_envp_2984_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_265_envp_2984_salloc" = call i8* @_salloc(i8* %"$$fundef_265_envp_2984_load", i64 32) + %"$$fundef_265_envp_2984" = bitcast i8* %"$$fundef_265_envp_2984_salloc" to %"$$fundef_265_env_579"* + %"$$fundef_265_env_voidp_2986" = bitcast %"$$fundef_265_env_579"* %"$$fundef_265_envp_2984" to i8* + %"$$fundef_265_cloval_2987" = insertvalue { void (i8*, [32 x i8]*, %String)*, i8* } { void (i8*, [32 x i8]*, %String)* bitcast (void (%"$$fundef_265_env_579"*, [32 x i8]*, %String)* @"$fundef_265" to void (i8*, [32 x i8]*, %String)*), i8* undef }, i8* %"$$fundef_265_env_voidp_2986", 1 + %"$$fundef_265_env_parent_2988" = getelementptr inbounds %"$$fundef_265_env_579", %"$$fundef_265_env_579"* %"$$fundef_265_envp_2984", i32 0, i32 0 + store [32 x i8] %parent, [32 x i8]* %"$$fundef_265_env_parent_2988", align 1 + store { void (i8*, [32 x i8]*, %String)*, i8* } %"$$fundef_265_cloval_2987", { void (i8*, [32 x i8]*, %String)*, i8* }* %"$retval_264", align 8, !dbg !208 + %"$$retval_264_2989" = load { void (i8*, [32 x i8]*, %String)*, i8* }, { void (i8*, [32 x i8]*, %String)*, i8* }* %"$retval_264", align 8 + ret { void (i8*, [32 x i8]*, %String)*, i8* } %"$$retval_264_2989" +} + +define internal void @"$fundef_267"(%"$$fundef_267_env_581"* %0, [20 x i8]* %1, %TName_Option_ud-registry.Record* %2) !dbg !209 { +entry: + %"$maybeRecord_2978" = alloca %TName_Option_ud-registry.Record*, align 8 + store %TName_Option_ud-registry.Record* %2, %TName_Option_ud-registry.Record** %"$maybeRecord_2978", align 8 + call void @llvm.dbg.declare(metadata %TName_Option_ud-registry.Record** %"$maybeRecord_2978", metadata !210, metadata !DIExpression()), !dbg !213 + %"$$fundef_267_env_ud-registry.zeroByStr20_2932" = getelementptr inbounds %"$$fundef_267_env_581", %"$$fundef_267_env_581"* %0, i32 0, i32 0 + %"$ud-registry.zeroByStr20_envload_2933" = load [20 x i8], [20 x i8]* %"$$fundef_267_env_ud-registry.zeroByStr20_2932", align 1 %ud-registry.zeroByStr20 = alloca [20 x i8], align 1 - store [20 x i8] %"$ud-registry.zeroByStr20_envload_2879", [20 x i8]* %ud-registry.zeroByStr20, align 1 + store [20 x i8] %"$ud-registry.zeroByStr20_envload_2933", [20 x i8]* %ud-registry.zeroByStr20, align 1 %"$retval_268" = alloca [20 x i8], align 1 - %"$gasrem_2880" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2881" = icmp ugt i64 2, %"$gasrem_2880" - br i1 %"$gascmp_2881", label %"$out_of_gas_2882", label %"$have_gas_2883" - -"$out_of_gas_2882": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_2883" - -"$have_gas_2883": ; preds = %"$out_of_gas_2882", %entry - %"$consume_2884" = sub i64 %"$gasrem_2880", 2 - store i64 %"$consume_2884", i64* @_gasrem, align 8 - %"$maybeRecord_tag_2886" = getelementptr inbounds %TName_Option_ud-registry.Record, %TName_Option_ud-registry.Record* %2, i32 0, i32 0 - %"$maybeRecord_tag_2887" = load i8, i8* %"$maybeRecord_tag_2886", align 1 - switch i8 %"$maybeRecord_tag_2887", label %"$empty_default_2888" [ - i8 1, label %"$None_2889" - i8 0, label %"$Some_2897" - ], !dbg !119 - -"$None_2889": ; preds = %"$have_gas_2883" - %"$maybeRecord_2890" = bitcast %TName_Option_ud-registry.Record* %2 to %CName_None_ud-registry.Record* - %"$gasrem_2891" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2892" = icmp ugt i64 1, %"$gasrem_2891" - br i1 %"$gascmp_2892", label %"$out_of_gas_2893", label %"$have_gas_2894" - -"$out_of_gas_2893": ; preds = %"$None_2889" - call void @_out_of_gas() - br label %"$have_gas_2894" - -"$have_gas_2894": ; preds = %"$out_of_gas_2893", %"$None_2889" - %"$consume_2895" = sub i64 %"$gasrem_2891", 1 - store i64 %"$consume_2895", i64* @_gasrem, align 8 - %"$ud-registry.zeroByStr20_2896" = load [20 x i8], [20 x i8]* %ud-registry.zeroByStr20, align 1 - store [20 x i8] %"$ud-registry.zeroByStr20_2896", [20 x i8]* %"$retval_268", align 1, !dbg !120 - br label %"$matchsucc_2885" - -"$Some_2897": ; preds = %"$have_gas_2883" - %"$maybeRecord_2898" = bitcast %TName_Option_ud-registry.Record* %2 to %CName_Some_ud-registry.Record* - %"$record_gep_2899" = getelementptr inbounds %CName_Some_ud-registry.Record, %CName_Some_ud-registry.Record* %"$maybeRecord_2898", i32 0, i32 1 - %"$record_load_2900" = load %TName_ud-registry.Record*, %TName_ud-registry.Record** %"$record_gep_2899", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]* %"$retval_268", metadata !214, metadata !DIExpression()), !dbg !215 + %"$gasrem_2934" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2935" = icmp ugt i64 2, %"$gasrem_2934" + br i1 %"$gascmp_2935", label %"$out_of_gas_2936", label %"$have_gas_2937" + +"$out_of_gas_2936": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_2937" + +"$have_gas_2937": ; preds = %"$out_of_gas_2936", %entry + %"$consume_2938" = sub i64 %"$gasrem_2934", 2 + store i64 %"$consume_2938", i64* @_gasrem, align 8 + %"$maybeRecord_tag_2940" = getelementptr inbounds %TName_Option_ud-registry.Record, %TName_Option_ud-registry.Record* %2, i32 0, i32 0 + %"$maybeRecord_tag_2941" = load i8, i8* %"$maybeRecord_tag_2940", align 1 + switch i8 %"$maybeRecord_tag_2941", label %"$empty_default_2942" [ + i8 1, label %"$None_2943" + i8 0, label %"$Some_2951" + ], !dbg !215 + +"$None_2943": ; preds = %"$have_gas_2937" + %"$maybeRecord_2944" = bitcast %TName_Option_ud-registry.Record* %2 to %CName_None_ud-registry.Record* + %"$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" + +"$out_of_gas_2947": ; preds = %"$None_2943" + call void @_out_of_gas() + br label %"$have_gas_2948" + +"$have_gas_2948": ; preds = %"$out_of_gas_2947", %"$None_2943" + %"$consume_2949" = sub i64 %"$gasrem_2945", 1 + store i64 %"$consume_2949", i64* @_gasrem, align 8 + %"$ud-registry.zeroByStr20_2950" = load [20 x i8], [20 x i8]* %ud-registry.zeroByStr20, align 1 + store [20 x i8] %"$ud-registry.zeroByStr20_2950", [20 x i8]* %"$retval_268", align 1, !dbg !216 + br label %"$matchsucc_2939" + +"$Some_2951": ; preds = %"$have_gas_2937" + %"$maybeRecord_2952" = bitcast %TName_Option_ud-registry.Record* %2 to %CName_Some_ud-registry.Record* + %"$record_gep_2953" = getelementptr inbounds %CName_Some_ud-registry.Record, %CName_Some_ud-registry.Record* %"$maybeRecord_2952", i32 0, i32 1 + %"$record_load_2954" = load %TName_ud-registry.Record*, %TName_ud-registry.Record** %"$record_gep_2953", align 8 %record = alloca %TName_ud-registry.Record*, align 8 - store %TName_ud-registry.Record* %"$record_load_2900", %TName_ud-registry.Record** %record, align 8 - %"$gasrem_2901" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2902" = icmp ugt i64 1, %"$gasrem_2901" - br i1 %"$gascmp_2902", label %"$out_of_gas_2903", label %"$have_gas_2904" - -"$out_of_gas_2903": ; preds = %"$Some_2897" - call void @_out_of_gas() - br label %"$have_gas_2904" - -"$have_gas_2904": ; preds = %"$out_of_gas_2903", %"$Some_2897" - %"$consume_2905" = sub i64 %"$gasrem_2901", 1 - store i64 %"$consume_2905", i64* @_gasrem, align 8 - %"$record_2907" = load %TName_ud-registry.Record*, %TName_ud-registry.Record** %record, align 8 - %"$record_tag_2908" = getelementptr inbounds %TName_ud-registry.Record, %TName_ud-registry.Record* %"$record_2907", i32 0, i32 0 - %"$record_tag_2909" = load i8, i8* %"$record_tag_2908", align 1 - switch i8 %"$record_tag_2909", label %"$empty_default_2910" [ - i8 0, label %"$ud-registry.Record_2911" - ], !dbg !123 - -"$ud-registry.Record_2911": ; preds = %"$have_gas_2904" - %"$record_2912" = bitcast %TName_ud-registry.Record* %"$record_2907" to %CName_ud-registry.Record* - %"$owner_gep_2913" = getelementptr inbounds %CName_ud-registry.Record, %CName_ud-registry.Record* %"$record_2912", i32 0, i32 1 - %"$owner_load_2914" = load [20 x i8], [20 x i8]* %"$owner_gep_2913", align 1 + store %TName_ud-registry.Record* %"$record_load_2954", %TName_ud-registry.Record** %record, 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 = %"$Some_2951" + call void @_out_of_gas() + br label %"$have_gas_2958" + +"$have_gas_2958": ; preds = %"$out_of_gas_2957", %"$Some_2951" + %"$consume_2959" = sub i64 %"$gasrem_2955", 1 + store i64 %"$consume_2959", i64* @_gasrem, align 8 + %"$record_2961" = load %TName_ud-registry.Record*, %TName_ud-registry.Record** %record, align 8 + %"$record_tag_2962" = getelementptr inbounds %TName_ud-registry.Record, %TName_ud-registry.Record* %"$record_2961", i32 0, i32 0 + %"$record_tag_2963" = load i8, i8* %"$record_tag_2962", align 1 + switch i8 %"$record_tag_2963", label %"$empty_default_2964" [ + i8 0, label %"$ud-registry.Record_2965" + ], !dbg !219 + +"$ud-registry.Record_2965": ; preds = %"$have_gas_2958" + %"$record_2966" = bitcast %TName_ud-registry.Record* %"$record_2961" to %CName_ud-registry.Record* + %"$owner_gep_2967" = getelementptr inbounds %CName_ud-registry.Record, %CName_ud-registry.Record* %"$record_2966", i32 0, i32 1 + %"$owner_load_2968" = load [20 x i8], [20 x i8]* %"$owner_gep_2967", align 1 %owner = alloca [20 x i8], align 1 - store [20 x i8] %"$owner_load_2914", [20 x i8]* %owner, align 1 - %"$resolver_gep_2915" = getelementptr inbounds %CName_ud-registry.Record, %CName_ud-registry.Record* %"$record_2912", i32 0, i32 2 - %"$resolver_load_2916" = load [20 x i8], [20 x i8]* %"$resolver_gep_2915", align 1 + store [20 x i8] %"$owner_load_2968", [20 x i8]* %owner, align 1 + %"$resolver_gep_2969" = getelementptr inbounds %CName_ud-registry.Record, %CName_ud-registry.Record* %"$record_2966", i32 0, i32 2 + %"$resolver_load_2970" = load [20 x i8], [20 x i8]* %"$resolver_gep_2969", align 1 %resolver = alloca [20 x i8], align 1 - store [20 x i8] %"$resolver_load_2916", [20 x i8]* %resolver, align 1 - %"$gasrem_2917" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2918" = icmp ugt i64 1, %"$gasrem_2917" - br i1 %"$gascmp_2918", label %"$out_of_gas_2919", label %"$have_gas_2920" + store [20 x i8] %"$resolver_load_2970", [20 x i8]* %resolver, align 1 + %"$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_2919": ; preds = %"$ud-registry.Record_2911" +"$out_of_gas_2973": ; preds = %"$ud-registry.Record_2965" call void @_out_of_gas() - br label %"$have_gas_2920" + br label %"$have_gas_2974" -"$have_gas_2920": ; preds = %"$out_of_gas_2919", %"$ud-registry.Record_2911" - %"$consume_2921" = sub i64 %"$gasrem_2917", 1 - store i64 %"$consume_2921", i64* @_gasrem, align 8 - %"$owner_2922" = load [20 x i8], [20 x i8]* %owner, align 1 - store [20 x i8] %"$owner_2922", [20 x i8]* %"$retval_268", align 1, !dbg !125 - br label %"$matchsucc_2906" +"$have_gas_2974": ; preds = %"$out_of_gas_2973", %"$ud-registry.Record_2965" + %"$consume_2975" = sub i64 %"$gasrem_2971", 1 + store i64 %"$consume_2975", i64* @_gasrem, align 8 + %"$owner_2976" = load [20 x i8], [20 x i8]* %owner, align 1 + store [20 x i8] %"$owner_2976", [20 x i8]* %"$retval_268", align 1, !dbg !221 + br label %"$matchsucc_2960" -"$empty_default_2910": ; preds = %"$have_gas_2904" - br label %"$matchsucc_2906" +"$empty_default_2964": ; preds = %"$have_gas_2958" + br label %"$matchsucc_2960" -"$matchsucc_2906": ; preds = %"$have_gas_2920", %"$empty_default_2910" - br label %"$matchsucc_2885" +"$matchsucc_2960": ; preds = %"$have_gas_2974", %"$empty_default_2964" + br label %"$matchsucc_2939" -"$empty_default_2888": ; preds = %"$have_gas_2883" - br label %"$matchsucc_2885" +"$empty_default_2942": ; preds = %"$have_gas_2937" + br label %"$matchsucc_2939" -"$matchsucc_2885": ; preds = %"$matchsucc_2906", %"$have_gas_2894", %"$empty_default_2888" - %"$$retval_268_2923" = load [20 x i8], [20 x i8]* %"$retval_268", align 1 - store [20 x i8] %"$$retval_268_2923", [20 x i8]* %1, align 1 +"$matchsucc_2939": ; preds = %"$matchsucc_2960", %"$have_gas_2948", %"$empty_default_2942" + %"$$retval_268_2977" = load [20 x i8], [20 x i8]* %"$retval_268", align 1 + store [20 x i8] %"$$retval_268_2977", [20 x i8]* %1, align 1 ret void } -define internal i8* @"$fundef_269"(%"$$fundef_269_env_582"* %0, %String %1) !dbg !128 { +define internal i8* @"$fundef_269"(%"$$fundef_269_env_582"* %0, %String %1) !dbg !224 { entry: + %"$msg_2931" = alloca %String, align 8 + store %String %1, %String* %"$msg_2931", align 8 + call void @llvm.dbg.declare(metadata %String* %"$msg_2931", metadata !225, metadata !DIExpression()), !dbg !226 %"$retval_270" = alloca i8*, align 8 - %"$gasrem_2855" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2856" = icmp ugt i64 1, %"$gasrem_2855" - br i1 %"$gascmp_2856", label %"$out_of_gas_2857", label %"$have_gas_2858" - -"$out_of_gas_2857": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_2858" - -"$have_gas_2858": ; preds = %"$out_of_gas_2857", %entry - %"$consume_2859" = sub i64 %"$gasrem_2855", 1 - store i64 %"$consume_2859", i64* @_gasrem, align 8 - %"$msgobj_2860_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$msgobj_2860_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_2860_salloc_load", i64 81) - %"$msgobj_2860_salloc" = bitcast i8* %"$msgobj_2860_salloc_salloc" to [81 x i8]* - %"$msgobj_2860" = bitcast [81 x i8]* %"$msgobj_2860_salloc" to i8* - store i8 2, i8* %"$msgobj_2860", align 1 - %"$msgobj_fname_2862" = getelementptr i8, i8* %"$msgobj_2860", i32 1 - %"$msgobj_fname_2863" = bitcast i8* %"$msgobj_fname_2862" to %String* - store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_2861", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_2863", align 8 - %"$msgobj_td_2864" = getelementptr i8, i8* %"$msgobj_2860", i32 17 - %"$msgobj_td_2865" = bitcast i8* %"$msgobj_td_2864" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_String_440", %_TyDescrTy_Typ** %"$msgobj_td_2865", align 8 - %"$msgobj_v_2867" = getelementptr i8, i8* %"$msgobj_2860", i32 25 - %"$msgobj_v_2868" = bitcast i8* %"$msgobj_v_2867" to %String* - store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_2866", i32 0, i32 0), i32 5 }, %String* %"$msgobj_v_2868", align 8 - %"$msgobj_fname_2870" = getelementptr i8, i8* %"$msgobj_2860", i32 41 - %"$msgobj_fname_2871" = bitcast i8* %"$msgobj_fname_2870" to %String* - store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_2869", i32 0, i32 0), i32 3 }, %String* %"$msgobj_fname_2871", align 8 - %"$msgobj_td_2872" = getelementptr i8, i8* %"$msgobj_2860", i32 57 - %"$msgobj_td_2873" = bitcast i8* %"$msgobj_td_2872" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_String_440", %_TyDescrTy_Typ** %"$msgobj_td_2873", align 8 - %"$msgobj_v_2874" = getelementptr i8, i8* %"$msgobj_2860", i32 65 - %"$msgobj_v_2875" = bitcast i8* %"$msgobj_v_2874" to %String* - store %String %1, %String* %"$msgobj_v_2875", align 8 - store i8* %"$msgobj_2860", i8** %"$retval_270", align 8, !dbg !129 - %"$$retval_270_2877" = load i8*, i8** %"$retval_270", align 8 - ret i8* %"$$retval_270_2877" -} - -define internal i8* @"$fundef_275"(%"$$fundef_275_env_583"* %0, [20 x i8]* %1) !dbg !130 { -entry: + call void @llvm.dbg.declare(metadata i8** %"$retval_270", metadata !227, metadata !DIExpression()), !dbg !230 + %"$gasrem_2908" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2909" = icmp ugt i64 1, %"$gasrem_2908" + br i1 %"$gascmp_2909", label %"$out_of_gas_2910", label %"$have_gas_2911" + +"$out_of_gas_2910": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_2911" + +"$have_gas_2911": ; preds = %"$out_of_gas_2910", %entry + %"$consume_2912" = sub i64 %"$gasrem_2908", 1 + store i64 %"$consume_2912", i64* @_gasrem, align 8 + %"$msgobj_2913_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$msgobj_2913_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_2913_salloc_load", i64 81) + %"$msgobj_2913_salloc" = bitcast i8* %"$msgobj_2913_salloc_salloc" to [81 x i8]* + %"$msgobj_2913" = bitcast [81 x i8]* %"$msgobj_2913_salloc" to i8* + store i8 2, i8* %"$msgobj_2913", align 1 + %"$msgobj_fname_2915" = getelementptr i8, i8* %"$msgobj_2913", i32 1 + %"$msgobj_fname_2916" = bitcast i8* %"$msgobj_fname_2915" to %String* + store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_2914", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_2916", align 8 + %"$msgobj_td_2917" = getelementptr i8, i8* %"$msgobj_2913", i32 17 + %"$msgobj_td_2918" = bitcast i8* %"$msgobj_td_2917" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_String_440", %_TyDescrTy_Typ** %"$msgobj_td_2918", align 8 + %"$msgobj_v_2920" = getelementptr i8, i8* %"$msgobj_2913", i32 25 + %"$msgobj_v_2921" = bitcast i8* %"$msgobj_v_2920" to %String* + store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_2919", i32 0, i32 0), i32 5 }, %String* %"$msgobj_v_2921", align 8 + %"$msgobj_fname_2923" = getelementptr i8, i8* %"$msgobj_2913", i32 41 + %"$msgobj_fname_2924" = bitcast i8* %"$msgobj_fname_2923" to %String* + store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_2922", i32 0, i32 0), i32 3 }, %String* %"$msgobj_fname_2924", align 8 + %"$msgobj_td_2925" = getelementptr i8, i8* %"$msgobj_2913", i32 57 + %"$msgobj_td_2926" = bitcast i8* %"$msgobj_td_2925" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_String_440", %_TyDescrTy_Typ** %"$msgobj_td_2926", align 8 + %"$msgobj_v_2927" = getelementptr i8, i8* %"$msgobj_2913", i32 65 + %"$msgobj_v_2928" = bitcast i8* %"$msgobj_v_2927" to %String* + store %String %1, %String* %"$msgobj_v_2928", align 8 + store i8* %"$msgobj_2913", i8** %"$retval_270", align 8, !dbg !230 + %"$$retval_270_2930" = load i8*, i8** %"$retval_270", align 8 + ret i8* %"$$retval_270_2930" +} + +define internal i8* @"$fundef_275"(%"$$fundef_275_env_583"* %0, [20 x i8]* %1) !dbg !231 { +entry: + %"$resolver_2907" = alloca [20 x i8]*, align 8 + store [20 x i8]* %1, [20 x i8]** %"$resolver_2907", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$resolver_2907", metadata !232, metadata !DIExpression()), !dbg !233 %resolver = load [20 x i8], [20 x i8]* %1, align 1 - %"$$fundef_275_env_node_2812" = getelementptr inbounds %"$$fundef_275_env_583", %"$$fundef_275_env_583"* %0, i32 0, i32 0 - %"$node_envload_2813" = load [32 x i8], [32 x i8]* %"$$fundef_275_env_node_2812", align 1 + %"$$fundef_275_env_node_2864" = getelementptr inbounds %"$$fundef_275_env_583", %"$$fundef_275_env_583"* %0, i32 0, i32 0 + %"$node_envload_2865" = load [32 x i8], [32 x i8]* %"$$fundef_275_env_node_2864", align 1 %node = alloca [32 x i8], align 1 - store [32 x i8] %"$node_envload_2813", [32 x i8]* %node, align 1 - %"$$fundef_275_env_owner_2814" = getelementptr inbounds %"$$fundef_275_env_583", %"$$fundef_275_env_583"* %0, i32 0, i32 1 - %"$owner_envload_2815" = load [20 x i8], [20 x i8]* %"$$fundef_275_env_owner_2814", align 1 + store [32 x i8] %"$node_envload_2865", [32 x i8]* %node, align 1 + %"$$fundef_275_env_owner_2866" = getelementptr inbounds %"$$fundef_275_env_583", %"$$fundef_275_env_583"* %0, i32 0, i32 1 + %"$owner_envload_2867" = load [20 x i8], [20 x i8]* %"$$fundef_275_env_owner_2866", align 1 %owner = alloca [20 x i8], align 1 - store [20 x i8] %"$owner_envload_2815", [20 x i8]* %owner, align 1 + store [20 x i8] %"$owner_envload_2867", [20 x i8]* %owner, align 1 %"$retval_276" = alloca i8*, align 8 - %"$gasrem_2816" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2817" = icmp ugt i64 1, %"$gasrem_2816" - br i1 %"$gascmp_2817", label %"$out_of_gas_2818", label %"$have_gas_2819" - -"$out_of_gas_2818": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_2819" - -"$have_gas_2819": ; preds = %"$out_of_gas_2818", %entry - %"$consume_2820" = sub i64 %"$gasrem_2816", 1 - store i64 %"$consume_2820", i64* @_gasrem, align 8 - %"$msgobj_2821_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$msgobj_2821_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_2821_salloc_load", i64 185) - %"$msgobj_2821_salloc" = bitcast i8* %"$msgobj_2821_salloc_salloc" to [185 x i8]* - %"$msgobj_2821" = bitcast [185 x i8]* %"$msgobj_2821_salloc" to i8* - store i8 4, i8* %"$msgobj_2821", align 1 - %"$msgobj_fname_2823" = getelementptr i8, i8* %"$msgobj_2821", i32 1 - %"$msgobj_fname_2824" = bitcast i8* %"$msgobj_fname_2823" to %String* - store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_2822", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_2824", align 8 - %"$msgobj_td_2825" = getelementptr i8, i8* %"$msgobj_2821", i32 17 - %"$msgobj_td_2826" = bitcast i8* %"$msgobj_td_2825" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_String_440", %_TyDescrTy_Typ** %"$msgobj_td_2826", align 8 - %"$msgobj_v_2828" = getelementptr i8, i8* %"$msgobj_2821", i32 25 - %"$msgobj_v_2829" = bitcast i8* %"$msgobj_v_2828" to %String* - store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_2827", i32 0, i32 0), i32 10 }, %String* %"$msgobj_v_2829", align 8 - %"$msgobj_fname_2831" = getelementptr i8, i8* %"$msgobj_2821", i32 41 - %"$msgobj_fname_2832" = bitcast i8* %"$msgobj_fname_2831" to %String* - store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_2830", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_2832", align 8 - %"$msgobj_td_2833" = getelementptr i8, i8* %"$msgobj_2821", i32 57 - %"$msgobj_td_2834" = bitcast i8* %"$msgobj_td_2833" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Bystr32_456", %_TyDescrTy_Typ** %"$msgobj_td_2834", align 8 - %"$node_2835" = load [32 x i8], [32 x i8]* %node, align 1 - %"$msgobj_v_2836" = getelementptr i8, i8* %"$msgobj_2821", i32 65 - %"$msgobj_v_2837" = bitcast i8* %"$msgobj_v_2836" to [32 x i8]* - store [32 x i8] %"$node_2835", [32 x i8]* %"$msgobj_v_2837", align 1 - %"$msgobj_fname_2839" = getelementptr i8, i8* %"$msgobj_2821", i32 97 - %"$msgobj_fname_2840" = bitcast i8* %"$msgobj_fname_2839" to %String* - store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_2838", i32 0, i32 0), i32 5 }, %String* %"$msgobj_fname_2840", align 8 - %"$msgobj_td_2841" = getelementptr i8, i8* %"$msgobj_2821", i32 113 - %"$msgobj_td_2842" = bitcast i8* %"$msgobj_td_2841" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_458", %_TyDescrTy_Typ** %"$msgobj_td_2842", align 8 - %"$owner_2843" = load [20 x i8], [20 x i8]* %owner, align 1 - %"$msgobj_v_2844" = getelementptr i8, i8* %"$msgobj_2821", i32 121 - %"$msgobj_v_2845" = bitcast i8* %"$msgobj_v_2844" to [20 x i8]* - store [20 x i8] %"$owner_2843", [20 x i8]* %"$msgobj_v_2845", align 1 - %"$msgobj_fname_2847" = getelementptr i8, i8* %"$msgobj_2821", i32 141 - %"$msgobj_fname_2848" = bitcast i8* %"$msgobj_fname_2847" to %String* - store %String { i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$stringlit_2846", i32 0, i32 0), i32 8 }, %String* %"$msgobj_fname_2848", align 8 - %"$msgobj_td_2849" = getelementptr i8, i8* %"$msgobj_2821", i32 157 - %"$msgobj_td_2850" = bitcast i8* %"$msgobj_td_2849" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_458", %_TyDescrTy_Typ** %"$msgobj_td_2850", align 8 - %"$msgobj_v_2851" = getelementptr i8, i8* %"$msgobj_2821", i32 165 - %"$msgobj_v_2852" = bitcast i8* %"$msgobj_v_2851" to [20 x i8]* - store [20 x i8] %resolver, [20 x i8]* %"$msgobj_v_2852", align 1 - store i8* %"$msgobj_2821", i8** %"$retval_276", align 8, !dbg !131 - %"$$retval_276_2854" = load i8*, i8** %"$retval_276", align 8 - ret i8* %"$$retval_276_2854" -} - -define internal { i8* (i8*, [20 x i8]*)*, i8* } @"$fundef_273"(%"$$fundef_273_env_584"* %0, [20 x i8]* %1) !dbg !132 { -entry: + call void @llvm.dbg.declare(metadata i8** %"$retval_276", metadata !234, metadata !DIExpression()), !dbg !235 + %"$gasrem_2868" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2869" = icmp ugt i64 1, %"$gasrem_2868" + br i1 %"$gascmp_2869", label %"$out_of_gas_2870", label %"$have_gas_2871" + +"$out_of_gas_2870": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_2871" + +"$have_gas_2871": ; preds = %"$out_of_gas_2870", %entry + %"$consume_2872" = sub i64 %"$gasrem_2868", 1 + store i64 %"$consume_2872", i64* @_gasrem, align 8 + %"$msgobj_2873_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$msgobj_2873_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_2873_salloc_load", i64 185) + %"$msgobj_2873_salloc" = bitcast i8* %"$msgobj_2873_salloc_salloc" to [185 x i8]* + %"$msgobj_2873" = bitcast [185 x i8]* %"$msgobj_2873_salloc" to i8* + store i8 4, i8* %"$msgobj_2873", align 1 + %"$msgobj_fname_2875" = getelementptr i8, i8* %"$msgobj_2873", i32 1 + %"$msgobj_fname_2876" = bitcast i8* %"$msgobj_fname_2875" to %String* + store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_2874", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_2876", align 8 + %"$msgobj_td_2877" = getelementptr i8, i8* %"$msgobj_2873", i32 17 + %"$msgobj_td_2878" = bitcast i8* %"$msgobj_td_2877" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_String_440", %_TyDescrTy_Typ** %"$msgobj_td_2878", align 8 + %"$msgobj_v_2880" = getelementptr i8, i8* %"$msgobj_2873", i32 25 + %"$msgobj_v_2881" = bitcast i8* %"$msgobj_v_2880" to %String* + store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_2879", i32 0, i32 0), i32 10 }, %String* %"$msgobj_v_2881", align 8 + %"$msgobj_fname_2883" = getelementptr i8, i8* %"$msgobj_2873", i32 41 + %"$msgobj_fname_2884" = bitcast i8* %"$msgobj_fname_2883" to %String* + store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_2882", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_2884", align 8 + %"$msgobj_td_2885" = getelementptr i8, i8* %"$msgobj_2873", i32 57 + %"$msgobj_td_2886" = bitcast i8* %"$msgobj_td_2885" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Bystr32_456", %_TyDescrTy_Typ** %"$msgobj_td_2886", align 8 + %"$node_2887" = load [32 x i8], [32 x i8]* %node, align 1 + %"$msgobj_v_2888" = getelementptr i8, i8* %"$msgobj_2873", i32 65 + %"$msgobj_v_2889" = bitcast i8* %"$msgobj_v_2888" to [32 x i8]* + store [32 x i8] %"$node_2887", [32 x i8]* %"$msgobj_v_2889", align 1 + %"$msgobj_fname_2891" = getelementptr i8, i8* %"$msgobj_2873", i32 97 + %"$msgobj_fname_2892" = bitcast i8* %"$msgobj_fname_2891" to %String* + store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_2890", i32 0, i32 0), i32 5 }, %String* %"$msgobj_fname_2892", align 8 + %"$msgobj_td_2893" = getelementptr i8, i8* %"$msgobj_2873", i32 113 + %"$msgobj_td_2894" = bitcast i8* %"$msgobj_td_2893" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_458", %_TyDescrTy_Typ** %"$msgobj_td_2894", align 8 + %"$owner_2895" = load [20 x i8], [20 x i8]* %owner, align 1 + %"$msgobj_v_2896" = getelementptr i8, i8* %"$msgobj_2873", i32 121 + %"$msgobj_v_2897" = bitcast i8* %"$msgobj_v_2896" to [20 x i8]* + store [20 x i8] %"$owner_2895", [20 x i8]* %"$msgobj_v_2897", align 1 + %"$msgobj_fname_2899" = getelementptr i8, i8* %"$msgobj_2873", i32 141 + %"$msgobj_fname_2900" = bitcast i8* %"$msgobj_fname_2899" to %String* + store %String { i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$stringlit_2898", i32 0, i32 0), i32 8 }, %String* %"$msgobj_fname_2900", align 8 + %"$msgobj_td_2901" = getelementptr i8, i8* %"$msgobj_2873", i32 157 + %"$msgobj_td_2902" = bitcast i8* %"$msgobj_td_2901" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_458", %_TyDescrTy_Typ** %"$msgobj_td_2902", align 8 + %"$msgobj_v_2903" = getelementptr i8, i8* %"$msgobj_2873", i32 165 + %"$msgobj_v_2904" = bitcast i8* %"$msgobj_v_2903" to [20 x i8]* + store [20 x i8] %resolver, [20 x i8]* %"$msgobj_v_2904", align 1 + store i8* %"$msgobj_2873", i8** %"$retval_276", align 8, !dbg !235 + %"$$retval_276_2906" = load i8*, i8** %"$retval_276", align 8 + ret i8* %"$$retval_276_2906" +} + +define internal { i8* (i8*, [20 x i8]*)*, i8* } @"$fundef_273"(%"$$fundef_273_env_584"* %0, [20 x i8]* %1) !dbg !236 { +entry: + %"$owner_2863" = alloca [20 x i8]*, align 8 + store [20 x i8]* %1, [20 x i8]** %"$owner_2863", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$owner_2863", metadata !237, metadata !DIExpression()), !dbg !238 %owner = load [20 x i8], [20 x i8]* %1, align 1 - %"$$fundef_273_env_node_2797" = getelementptr inbounds %"$$fundef_273_env_584", %"$$fundef_273_env_584"* %0, i32 0, i32 0 - %"$node_envload_2798" = load [32 x i8], [32 x i8]* %"$$fundef_273_env_node_2797", align 1 + %"$$fundef_273_env_node_2848" = getelementptr inbounds %"$$fundef_273_env_584", %"$$fundef_273_env_584"* %0, i32 0, i32 0 + %"$node_envload_2849" = load [32 x i8], [32 x i8]* %"$$fundef_273_env_node_2848", align 1 %node = alloca [32 x i8], align 1 - store [32 x i8] %"$node_envload_2798", [32 x i8]* %node, align 1 + store [32 x i8] %"$node_envload_2849", [32 x i8]* %node, align 1 %"$retval_274" = alloca { i8* (i8*, [20 x i8]*)*, i8* }, align 8 - %"$gasrem_2799" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2800" = icmp ugt i64 1, %"$gasrem_2799" - br i1 %"$gascmp_2800", label %"$out_of_gas_2801", label %"$have_gas_2802" - -"$out_of_gas_2801": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_2802" - -"$have_gas_2802": ; preds = %"$out_of_gas_2801", %entry - %"$consume_2803" = sub i64 %"$gasrem_2799", 1 - store i64 %"$consume_2803", i64* @_gasrem, align 8 - %"$$fundef_275_envp_2804_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_275_envp_2804_salloc" = call i8* @_salloc(i8* %"$$fundef_275_envp_2804_load", i64 52) - %"$$fundef_275_envp_2804" = bitcast i8* %"$$fundef_275_envp_2804_salloc" to %"$$fundef_275_env_583"* - %"$$fundef_275_env_voidp_2806" = bitcast %"$$fundef_275_env_583"* %"$$fundef_275_envp_2804" to i8* - %"$$fundef_275_cloval_2807" = insertvalue { i8* (i8*, [20 x i8]*)*, i8* } { i8* (i8*, [20 x i8]*)* bitcast (i8* (%"$$fundef_275_env_583"*, [20 x i8]*)* @"$fundef_275" to i8* (i8*, [20 x i8]*)*), i8* undef }, i8* %"$$fundef_275_env_voidp_2806", 1 - %"$$fundef_275_env_node_2808" = getelementptr inbounds %"$$fundef_275_env_583", %"$$fundef_275_env_583"* %"$$fundef_275_envp_2804", i32 0, i32 0 - %"$node_2809" = load [32 x i8], [32 x i8]* %node, align 1 - store [32 x i8] %"$node_2809", [32 x i8]* %"$$fundef_275_env_node_2808", align 1 - %"$$fundef_275_env_owner_2810" = getelementptr inbounds %"$$fundef_275_env_583", %"$$fundef_275_env_583"* %"$$fundef_275_envp_2804", i32 0, i32 1 - store [20 x i8] %owner, [20 x i8]* %"$$fundef_275_env_owner_2810", align 1 - store { i8* (i8*, [20 x i8]*)*, i8* } %"$$fundef_275_cloval_2807", { i8* (i8*, [20 x i8]*)*, i8* }* %"$retval_274", align 8, !dbg !133 - %"$$retval_274_2811" = load { i8* (i8*, [20 x i8]*)*, i8* }, { i8* (i8*, [20 x i8]*)*, i8* }* %"$retval_274", align 8 - ret { i8* (i8*, [20 x i8]*)*, i8* } %"$$retval_274_2811" -} - -define internal { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } @"$fundef_271"(%"$$fundef_271_env_585"* %0, [32 x i8]* %1) !dbg !134 { -entry: + %"$gasrem_2850" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2851" = icmp ugt i64 1, %"$gasrem_2850" + br i1 %"$gascmp_2851", label %"$out_of_gas_2852", label %"$have_gas_2853" + +"$out_of_gas_2852": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_2853" + +"$have_gas_2853": ; preds = %"$out_of_gas_2852", %entry + %"$consume_2854" = sub i64 %"$gasrem_2850", 1 + store i64 %"$consume_2854", i64* @_gasrem, align 8 + %"$$fundef_275_envp_2855_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_275_envp_2855_salloc" = call i8* @_salloc(i8* %"$$fundef_275_envp_2855_load", i64 52) + %"$$fundef_275_envp_2855" = bitcast i8* %"$$fundef_275_envp_2855_salloc" to %"$$fundef_275_env_583"* + %"$$fundef_275_env_voidp_2857" = bitcast %"$$fundef_275_env_583"* %"$$fundef_275_envp_2855" to i8* + %"$$fundef_275_cloval_2858" = insertvalue { i8* (i8*, [20 x i8]*)*, i8* } { i8* (i8*, [20 x i8]*)* bitcast (i8* (%"$$fundef_275_env_583"*, [20 x i8]*)* @"$fundef_275" to i8* (i8*, [20 x i8]*)*), i8* undef }, i8* %"$$fundef_275_env_voidp_2857", 1 + %"$$fundef_275_env_node_2859" = getelementptr inbounds %"$$fundef_275_env_583", %"$$fundef_275_env_583"* %"$$fundef_275_envp_2855", i32 0, i32 0 + %"$node_2860" = load [32 x i8], [32 x i8]* %node, align 1 + store [32 x i8] %"$node_2860", [32 x i8]* %"$$fundef_275_env_node_2859", align 1 + %"$$fundef_275_env_owner_2861" = getelementptr inbounds %"$$fundef_275_env_583", %"$$fundef_275_env_583"* %"$$fundef_275_envp_2855", i32 0, i32 1 + store [20 x i8] %owner, [20 x i8]* %"$$fundef_275_env_owner_2861", align 1 + store { i8* (i8*, [20 x i8]*)*, i8* } %"$$fundef_275_cloval_2858", { i8* (i8*, [20 x i8]*)*, i8* }* %"$retval_274", align 8, !dbg !239 + %"$$retval_274_2862" = load { i8* (i8*, [20 x i8]*)*, i8* }, { i8* (i8*, [20 x i8]*)*, i8* }* %"$retval_274", align 8 + ret { i8* (i8*, [20 x i8]*)*, i8* } %"$$retval_274_2862" +} + +define internal { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } @"$fundef_271"(%"$$fundef_271_env_585"* %0, [32 x i8]* %1) !dbg !240 { +entry: + %"$node_2847" = alloca [32 x i8]*, align 8 + store [32 x i8]* %1, [32 x i8]** %"$node_2847", align 8 + call void @llvm.dbg.declare(metadata [32 x i8]** %"$node_2847", metadata !241, metadata !DIExpression()), !dbg !242 %node = load [32 x i8], [32 x i8]* %1, align 1 %"$retval_272" = alloca { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* }, align 8 - %"$gasrem_2786" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2787" = icmp ugt i64 1, %"$gasrem_2786" - br i1 %"$gascmp_2787", label %"$out_of_gas_2788", label %"$have_gas_2789" - -"$out_of_gas_2788": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_2789" - -"$have_gas_2789": ; preds = %"$out_of_gas_2788", %entry - %"$consume_2790" = sub i64 %"$gasrem_2786", 1 - store i64 %"$consume_2790", i64* @_gasrem, align 8 - %"$$fundef_273_envp_2791_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_273_envp_2791_salloc" = call i8* @_salloc(i8* %"$$fundef_273_envp_2791_load", i64 32) - %"$$fundef_273_envp_2791" = bitcast i8* %"$$fundef_273_envp_2791_salloc" to %"$$fundef_273_env_584"* - %"$$fundef_273_env_voidp_2793" = bitcast %"$$fundef_273_env_584"* %"$$fundef_273_envp_2791" to i8* - %"$$fundef_273_cloval_2794" = 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_273_env_584"*, [20 x i8]*)* @"$fundef_273" to { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*), i8* undef }, i8* %"$$fundef_273_env_voidp_2793", 1 - %"$$fundef_273_env_node_2795" = getelementptr inbounds %"$$fundef_273_env_584", %"$$fundef_273_env_584"* %"$$fundef_273_envp_2791", i32 0, i32 0 - store [32 x i8] %node, [32 x i8]* %"$$fundef_273_env_node_2795", align 1 - store { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$$fundef_273_cloval_2794", { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* }* %"$retval_272", align 8, !dbg !135 - %"$$retval_272_2796" = load { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* }, { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* }* %"$retval_272", align 8 - ret { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$$retval_272_2796" -} - -define internal i8* @"$fundef_279"(%"$$fundef_279_env_586"* %0, %String %1) !dbg !136 { -entry: - %"$$fundef_279_env_parent_2753" = getelementptr inbounds %"$$fundef_279_env_586", %"$$fundef_279_env_586"* %0, i32 0, i32 0 - %"$parent_envload_2754" = load [32 x i8], [32 x i8]* %"$$fundef_279_env_parent_2753", align 1 + %"$gasrem_2836" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2837" = icmp ugt i64 1, %"$gasrem_2836" + br i1 %"$gascmp_2837", label %"$out_of_gas_2838", label %"$have_gas_2839" + +"$out_of_gas_2838": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_2839" + +"$have_gas_2839": ; preds = %"$out_of_gas_2838", %entry + %"$consume_2840" = sub i64 %"$gasrem_2836", 1 + store i64 %"$consume_2840", i64* @_gasrem, align 8 + %"$$fundef_273_envp_2841_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_273_envp_2841_salloc" = call i8* @_salloc(i8* %"$$fundef_273_envp_2841_load", i64 32) + %"$$fundef_273_envp_2841" = bitcast i8* %"$$fundef_273_envp_2841_salloc" to %"$$fundef_273_env_584"* + %"$$fundef_273_env_voidp_2843" = bitcast %"$$fundef_273_env_584"* %"$$fundef_273_envp_2841" to i8* + %"$$fundef_273_cloval_2844" = 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_273_env_584"*, [20 x i8]*)* @"$fundef_273" to { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*), i8* undef }, i8* %"$$fundef_273_env_voidp_2843", 1 + %"$$fundef_273_env_node_2845" = getelementptr inbounds %"$$fundef_273_env_584", %"$$fundef_273_env_584"* %"$$fundef_273_envp_2841", i32 0, i32 0 + store [32 x i8] %node, [32 x i8]* %"$$fundef_273_env_node_2845", align 1 + store { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$$fundef_273_cloval_2844", { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* }* %"$retval_272", align 8, !dbg !243 + %"$$retval_272_2846" = load { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* }, { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* }* %"$retval_272", align 8 + ret { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$$retval_272_2846" +} + +define internal i8* @"$fundef_279"(%"$$fundef_279_env_586"* %0, %String %1) !dbg !244 { +entry: + %"$label_2835" = alloca %String, align 8 + store %String %1, %String* %"$label_2835", align 8 + call void @llvm.dbg.declare(metadata %String* %"$label_2835", metadata !245, metadata !DIExpression()), !dbg !246 + %"$$fundef_279_env_parent_2802" = getelementptr inbounds %"$$fundef_279_env_586", %"$$fundef_279_env_586"* %0, i32 0, i32 0 + %"$parent_envload_2803" = load [32 x i8], [32 x i8]* %"$$fundef_279_env_parent_2802", align 1 %parent = alloca [32 x i8], align 1 - store [32 x i8] %"$parent_envload_2754", [32 x i8]* %parent, align 1 + store [32 x i8] %"$parent_envload_2803", [32 x i8]* %parent, align 1 %"$retval_280" = alloca i8*, align 8 - %"$gasrem_2755" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2756" = icmp ugt i64 1, %"$gasrem_2755" - br i1 %"$gascmp_2756", label %"$out_of_gas_2757", label %"$have_gas_2758" - -"$out_of_gas_2757": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_2758" - -"$have_gas_2758": ; preds = %"$out_of_gas_2757", %entry - %"$consume_2759" = sub i64 %"$gasrem_2755", 1 - store i64 %"$consume_2759", i64* @_gasrem, align 8 - %"$msgobj_2760_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$msgobj_2760_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_2760_salloc_load", i64 137) - %"$msgobj_2760_salloc" = bitcast i8* %"$msgobj_2760_salloc_salloc" to [137 x i8]* - %"$msgobj_2760" = bitcast [137 x i8]* %"$msgobj_2760_salloc" to i8* - store i8 3, i8* %"$msgobj_2760", align 1 - %"$msgobj_fname_2762" = getelementptr i8, i8* %"$msgobj_2760", i32 1 - %"$msgobj_fname_2763" = bitcast i8* %"$msgobj_fname_2762" to %String* - store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_2761", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_2763", align 8 - %"$msgobj_td_2764" = getelementptr i8, i8* %"$msgobj_2760", i32 17 - %"$msgobj_td_2765" = bitcast i8* %"$msgobj_td_2764" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_String_440", %_TyDescrTy_Typ** %"$msgobj_td_2765", align 8 - %"$msgobj_v_2767" = getelementptr i8, i8* %"$msgobj_2760", i32 25 - %"$msgobj_v_2768" = bitcast i8* %"$msgobj_v_2767" to %String* - store %String { i8* getelementptr inbounds ([9 x i8], [9 x i8]* @"$stringlit_2766", i32 0, i32 0), i32 9 }, %String* %"$msgobj_v_2768", align 8 - %"$msgobj_fname_2770" = getelementptr i8, i8* %"$msgobj_2760", i32 41 - %"$msgobj_fname_2771" = bitcast i8* %"$msgobj_fname_2770" to %String* - store %String { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$stringlit_2769", i32 0, i32 0), i32 6 }, %String* %"$msgobj_fname_2771", align 8 - %"$msgobj_td_2772" = getelementptr i8, i8* %"$msgobj_2760", i32 57 - %"$msgobj_td_2773" = bitcast i8* %"$msgobj_td_2772" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Bystr32_456", %_TyDescrTy_Typ** %"$msgobj_td_2773", align 8 - %"$parent_2774" = load [32 x i8], [32 x i8]* %parent, align 1 - %"$msgobj_v_2775" = getelementptr i8, i8* %"$msgobj_2760", i32 65 - %"$msgobj_v_2776" = bitcast i8* %"$msgobj_v_2775" to [32 x i8]* - store [32 x i8] %"$parent_2774", [32 x i8]* %"$msgobj_v_2776", align 1 - %"$msgobj_fname_2778" = getelementptr i8, i8* %"$msgobj_2760", i32 97 - %"$msgobj_fname_2779" = bitcast i8* %"$msgobj_fname_2778" to %String* - store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_2777", i32 0, i32 0), i32 5 }, %String* %"$msgobj_fname_2779", align 8 - %"$msgobj_td_2780" = getelementptr i8, i8* %"$msgobj_2760", i32 113 - %"$msgobj_td_2781" = bitcast i8* %"$msgobj_td_2780" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_String_440", %_TyDescrTy_Typ** %"$msgobj_td_2781", align 8 - %"$msgobj_v_2782" = getelementptr i8, i8* %"$msgobj_2760", i32 121 - %"$msgobj_v_2783" = bitcast i8* %"$msgobj_v_2782" to %String* - store %String %1, %String* %"$msgobj_v_2783", align 8 - store i8* %"$msgobj_2760", i8** %"$retval_280", align 8, !dbg !137 - %"$$retval_280_2785" = load i8*, i8** %"$retval_280", align 8 - ret i8* %"$$retval_280_2785" -} - -define internal { i8* (i8*, %String)*, i8* } @"$fundef_277"(%"$$fundef_277_env_587"* %0, [32 x i8]* %1) !dbg !138 { -entry: + call void @llvm.dbg.declare(metadata i8** %"$retval_280", metadata !247, metadata !DIExpression()), !dbg !248 + %"$gasrem_2804" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2805" = icmp ugt i64 1, %"$gasrem_2804" + br i1 %"$gascmp_2805", label %"$out_of_gas_2806", label %"$have_gas_2807" + +"$out_of_gas_2806": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_2807" + +"$have_gas_2807": ; preds = %"$out_of_gas_2806", %entry + %"$consume_2808" = sub i64 %"$gasrem_2804", 1 + store i64 %"$consume_2808", i64* @_gasrem, align 8 + %"$msgobj_2809_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$msgobj_2809_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_2809_salloc_load", i64 137) + %"$msgobj_2809_salloc" = bitcast i8* %"$msgobj_2809_salloc_salloc" to [137 x i8]* + %"$msgobj_2809" = bitcast [137 x i8]* %"$msgobj_2809_salloc" to i8* + store i8 3, i8* %"$msgobj_2809", align 1 + %"$msgobj_fname_2811" = getelementptr i8, i8* %"$msgobj_2809", i32 1 + %"$msgobj_fname_2812" = bitcast i8* %"$msgobj_fname_2811" to %String* + store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_2810", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_2812", align 8 + %"$msgobj_td_2813" = getelementptr i8, i8* %"$msgobj_2809", i32 17 + %"$msgobj_td_2814" = bitcast i8* %"$msgobj_td_2813" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_String_440", %_TyDescrTy_Typ** %"$msgobj_td_2814", align 8 + %"$msgobj_v_2816" = getelementptr i8, i8* %"$msgobj_2809", i32 25 + %"$msgobj_v_2817" = bitcast i8* %"$msgobj_v_2816" to %String* + store %String { i8* getelementptr inbounds ([9 x i8], [9 x i8]* @"$stringlit_2815", i32 0, i32 0), i32 9 }, %String* %"$msgobj_v_2817", align 8 + %"$msgobj_fname_2819" = getelementptr i8, i8* %"$msgobj_2809", i32 41 + %"$msgobj_fname_2820" = bitcast i8* %"$msgobj_fname_2819" to %String* + store %String { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$stringlit_2818", i32 0, i32 0), i32 6 }, %String* %"$msgobj_fname_2820", align 8 + %"$msgobj_td_2821" = getelementptr i8, i8* %"$msgobj_2809", i32 57 + %"$msgobj_td_2822" = bitcast i8* %"$msgobj_td_2821" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Bystr32_456", %_TyDescrTy_Typ** %"$msgobj_td_2822", align 8 + %"$parent_2823" = load [32 x i8], [32 x i8]* %parent, align 1 + %"$msgobj_v_2824" = getelementptr i8, i8* %"$msgobj_2809", i32 65 + %"$msgobj_v_2825" = bitcast i8* %"$msgobj_v_2824" to [32 x i8]* + store [32 x i8] %"$parent_2823", [32 x i8]* %"$msgobj_v_2825", align 1 + %"$msgobj_fname_2827" = getelementptr i8, i8* %"$msgobj_2809", i32 97 + %"$msgobj_fname_2828" = bitcast i8* %"$msgobj_fname_2827" to %String* + store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_2826", i32 0, i32 0), i32 5 }, %String* %"$msgobj_fname_2828", align 8 + %"$msgobj_td_2829" = getelementptr i8, i8* %"$msgobj_2809", i32 113 + %"$msgobj_td_2830" = bitcast i8* %"$msgobj_td_2829" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_String_440", %_TyDescrTy_Typ** %"$msgobj_td_2830", align 8 + %"$msgobj_v_2831" = getelementptr i8, i8* %"$msgobj_2809", i32 121 + %"$msgobj_v_2832" = bitcast i8* %"$msgobj_v_2831" to %String* + store %String %1, %String* %"$msgobj_v_2832", align 8 + store i8* %"$msgobj_2809", i8** %"$retval_280", align 8, !dbg !248 + %"$$retval_280_2834" = load i8*, i8** %"$retval_280", align 8 + ret i8* %"$$retval_280_2834" +} + +define internal { i8* (i8*, %String)*, i8* } @"$fundef_277"(%"$$fundef_277_env_587"* %0, [32 x i8]* %1) !dbg !249 { +entry: + %"$parent_2801" = alloca [32 x i8]*, align 8 + store [32 x i8]* %1, [32 x i8]** %"$parent_2801", align 8 + call void @llvm.dbg.declare(metadata [32 x i8]** %"$parent_2801", metadata !250, metadata !DIExpression()), !dbg !251 %parent = load [32 x i8], [32 x i8]* %1, align 1 %"$retval_278" = alloca { i8* (i8*, %String)*, i8* }, 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" + +"$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", 1 + store i64 %"$consume_2794", i64* @_gasrem, align 8 + %"$$fundef_279_envp_2795_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_279_envp_2795_salloc" = call i8* @_salloc(i8* %"$$fundef_279_envp_2795_load", i64 32) + %"$$fundef_279_envp_2795" = bitcast i8* %"$$fundef_279_envp_2795_salloc" to %"$$fundef_279_env_586"* + %"$$fundef_279_env_voidp_2797" = bitcast %"$$fundef_279_env_586"* %"$$fundef_279_envp_2795" to i8* + %"$$fundef_279_cloval_2798" = insertvalue { i8* (i8*, %String)*, i8* } { i8* (i8*, %String)* bitcast (i8* (%"$$fundef_279_env_586"*, %String)* @"$fundef_279" to i8* (i8*, %String)*), i8* undef }, i8* %"$$fundef_279_env_voidp_2797", 1 + %"$$fundef_279_env_parent_2799" = getelementptr inbounds %"$$fundef_279_env_586", %"$$fundef_279_env_586"* %"$$fundef_279_envp_2795", i32 0, i32 0 + store [32 x i8] %parent, [32 x i8]* %"$$fundef_279_env_parent_2799", align 1 + store { i8* (i8*, %String)*, i8* } %"$$fundef_279_cloval_2798", { i8* (i8*, %String)*, i8* }* %"$retval_278", align 8, !dbg !252 + %"$$retval_278_2800" = load { i8* (i8*, %String)*, i8* }, { i8* (i8*, %String)*, i8* }* %"$retval_278", align 8 + ret { i8* (i8*, %String)*, i8* } %"$$retval_278_2800" +} + +define internal i8* @"$fundef_281"(%"$$fundef_281_env_588"* %0, [20 x i8]* %1) !dbg !253 { +entry: + %"$address_2789" = alloca [20 x i8]*, align 8 + store [20 x i8]* %1, [20 x i8]** %"$address_2789", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$address_2789", metadata !254, metadata !DIExpression()), !dbg !255 + %address = load [20 x i8], [20 x i8]* %1, align 1 + %"$retval_282" = alloca i8*, align 8 + call void @llvm.dbg.declare(metadata i8** %"$retval_282", metadata !256, metadata !DIExpression()), !dbg !257 + %"$gasrem_2766" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2767" = icmp ugt i64 1, %"$gasrem_2766" + br i1 %"$gascmp_2767", label %"$out_of_gas_2768", label %"$have_gas_2769" + +"$out_of_gas_2768": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_2769" + +"$have_gas_2769": ; preds = %"$out_of_gas_2768", %entry + %"$consume_2770" = sub i64 %"$gasrem_2766", 1 + store i64 %"$consume_2770", i64* @_gasrem, align 8 + %"$msgobj_2771_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$msgobj_2771_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_2771_salloc_load", i64 85) + %"$msgobj_2771_salloc" = bitcast i8* %"$msgobj_2771_salloc_salloc" to [85 x i8]* + %"$msgobj_2771" = bitcast [85 x i8]* %"$msgobj_2771_salloc" to i8* + store i8 2, i8* %"$msgobj_2771", align 1 + %"$msgobj_fname_2773" = getelementptr i8, i8* %"$msgobj_2771", i32 1 + %"$msgobj_fname_2774" = bitcast i8* %"$msgobj_fname_2773" to %String* + store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_2772", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_2774", align 8 + %"$msgobj_td_2775" = getelementptr i8, i8* %"$msgobj_2771", i32 17 + %"$msgobj_td_2776" = bitcast i8* %"$msgobj_td_2775" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_String_440", %_TyDescrTy_Typ** %"$msgobj_td_2776", align 8 + %"$msgobj_v_2778" = getelementptr i8, i8* %"$msgobj_2771", i32 25 + %"$msgobj_v_2779" = bitcast i8* %"$msgobj_v_2778" to %String* + store %String { i8* getelementptr inbounds ([12 x i8], [12 x i8]* @"$stringlit_2777", i32 0, i32 0), i32 12 }, %String* %"$msgobj_v_2779", align 8 + %"$msgobj_fname_2781" = getelementptr i8, i8* %"$msgobj_2771", i32 41 + %"$msgobj_fname_2782" = bitcast i8* %"$msgobj_fname_2781" to %String* + store %String { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$stringlit_2780", i32 0, i32 0), i32 7 }, %String* %"$msgobj_fname_2782", align 8 + %"$msgobj_td_2783" = getelementptr i8, i8* %"$msgobj_2771", i32 57 + %"$msgobj_td_2784" = bitcast i8* %"$msgobj_td_2783" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_458", %_TyDescrTy_Typ** %"$msgobj_td_2784", align 8 + %"$msgobj_v_2785" = getelementptr i8, i8* %"$msgobj_2771", i32 65 + %"$msgobj_v_2786" = bitcast i8* %"$msgobj_v_2785" to [20 x i8]* + store [20 x i8] %address, [20 x i8]* %"$msgobj_v_2786", align 1 + store i8* %"$msgobj_2771", i8** %"$retval_282", align 8, !dbg !257 + %"$$retval_282_2788" = load i8*, i8** %"$retval_282", align 8 + ret i8* %"$$retval_282_2788" +} + +define internal i8* @"$fundef_283"(%"$$fundef_283_env_589"* %0, [20 x i8]* %1) !dbg !258 { +entry: + %"$address_2765" = alloca [20 x i8]*, align 8 + store [20 x i8]* %1, [20 x i8]** %"$address_2765", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$address_2765", metadata !259, metadata !DIExpression()), !dbg !260 + %address = load [20 x i8], [20 x i8]* %1, align 1 + %"$retval_284" = alloca i8*, align 8 + call void @llvm.dbg.declare(metadata i8** %"$retval_284", metadata !261, metadata !DIExpression()), !dbg !262 %"$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" @@ -2818,3072 +3005,3170 @@ entry: "$have_gas_2745": ; preds = %"$out_of_gas_2744", %entry %"$consume_2746" = sub i64 %"$gasrem_2742", 1 store i64 %"$consume_2746", i64* @_gasrem, align 8 - %"$$fundef_279_envp_2747_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_279_envp_2747_salloc" = call i8* @_salloc(i8* %"$$fundef_279_envp_2747_load", i64 32) - %"$$fundef_279_envp_2747" = bitcast i8* %"$$fundef_279_envp_2747_salloc" to %"$$fundef_279_env_586"* - %"$$fundef_279_env_voidp_2749" = bitcast %"$$fundef_279_env_586"* %"$$fundef_279_envp_2747" to i8* - %"$$fundef_279_cloval_2750" = insertvalue { i8* (i8*, %String)*, i8* } { i8* (i8*, %String)* bitcast (i8* (%"$$fundef_279_env_586"*, %String)* @"$fundef_279" to i8* (i8*, %String)*), i8* undef }, i8* %"$$fundef_279_env_voidp_2749", 1 - %"$$fundef_279_env_parent_2751" = getelementptr inbounds %"$$fundef_279_env_586", %"$$fundef_279_env_586"* %"$$fundef_279_envp_2747", i32 0, i32 0 - store [32 x i8] %parent, [32 x i8]* %"$$fundef_279_env_parent_2751", align 1 - store { i8* (i8*, %String)*, i8* } %"$$fundef_279_cloval_2750", { i8* (i8*, %String)*, i8* }* %"$retval_278", align 8, !dbg !139 - %"$$retval_278_2752" = load { i8* (i8*, %String)*, i8* }, { i8* (i8*, %String)*, i8* }* %"$retval_278", align 8 - ret { i8* (i8*, %String)*, i8* } %"$$retval_278_2752" -} - -define internal i8* @"$fundef_281"(%"$$fundef_281_env_588"* %0, [20 x i8]* %1) !dbg !140 { -entry: - %address = load [20 x i8], [20 x i8]* %1, align 1 - %"$retval_282" = alloca i8*, align 8 - %"$gasrem_2719" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2720" = icmp ugt i64 1, %"$gasrem_2719" - br i1 %"$gascmp_2720", label %"$out_of_gas_2721", label %"$have_gas_2722" - -"$out_of_gas_2721": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_2722" - -"$have_gas_2722": ; preds = %"$out_of_gas_2721", %entry - %"$consume_2723" = sub i64 %"$gasrem_2719", 1 - store i64 %"$consume_2723", i64* @_gasrem, align 8 - %"$msgobj_2724_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$msgobj_2724_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_2724_salloc_load", i64 85) - %"$msgobj_2724_salloc" = bitcast i8* %"$msgobj_2724_salloc_salloc" to [85 x i8]* - %"$msgobj_2724" = bitcast [85 x i8]* %"$msgobj_2724_salloc" to i8* - store i8 2, i8* %"$msgobj_2724", align 1 - %"$msgobj_fname_2726" = getelementptr i8, i8* %"$msgobj_2724", i32 1 - %"$msgobj_fname_2727" = bitcast i8* %"$msgobj_fname_2726" to %String* - store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_2725", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_2727", align 8 - %"$msgobj_td_2728" = getelementptr i8, i8* %"$msgobj_2724", i32 17 - %"$msgobj_td_2729" = bitcast i8* %"$msgobj_td_2728" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_String_440", %_TyDescrTy_Typ** %"$msgobj_td_2729", align 8 - %"$msgobj_v_2731" = getelementptr i8, i8* %"$msgobj_2724", i32 25 - %"$msgobj_v_2732" = bitcast i8* %"$msgobj_v_2731" to %String* - store %String { i8* getelementptr inbounds ([12 x i8], [12 x i8]* @"$stringlit_2730", i32 0, i32 0), i32 12 }, %String* %"$msgobj_v_2732", align 8 - %"$msgobj_fname_2734" = getelementptr i8, i8* %"$msgobj_2724", i32 41 - %"$msgobj_fname_2735" = bitcast i8* %"$msgobj_fname_2734" to %String* - store %String { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$stringlit_2733", i32 0, i32 0), i32 7 }, %String* %"$msgobj_fname_2735", align 8 - %"$msgobj_td_2736" = getelementptr i8, i8* %"$msgobj_2724", i32 57 - %"$msgobj_td_2737" = bitcast i8* %"$msgobj_td_2736" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_458", %_TyDescrTy_Typ** %"$msgobj_td_2737", align 8 - %"$msgobj_v_2738" = getelementptr i8, i8* %"$msgobj_2724", i32 65 - %"$msgobj_v_2739" = bitcast i8* %"$msgobj_v_2738" to [20 x i8]* - store [20 x i8] %address, [20 x i8]* %"$msgobj_v_2739", align 1 - store i8* %"$msgobj_2724", i8** %"$retval_282", align 8, !dbg !141 - %"$$retval_282_2741" = load i8*, i8** %"$retval_282", align 8 - ret i8* %"$$retval_282_2741" -} - -define internal i8* @"$fundef_283"(%"$$fundef_283_env_589"* %0, [20 x i8]* %1) !dbg !142 { -entry: - %address = load [20 x i8], [20 x i8]* %1, align 1 - %"$retval_284" = alloca i8*, align 8 - %"$gasrem_2696" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2697" = icmp ugt i64 1, %"$gasrem_2696" - br i1 %"$gascmp_2697", label %"$out_of_gas_2698", label %"$have_gas_2699" - -"$out_of_gas_2698": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_2699" - -"$have_gas_2699": ; preds = %"$out_of_gas_2698", %entry - %"$consume_2700" = sub i64 %"$gasrem_2696", 1 - store i64 %"$consume_2700", i64* @_gasrem, align 8 - %"$msgobj_2701_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$msgobj_2701_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_2701_salloc_load", i64 85) - %"$msgobj_2701_salloc" = bitcast i8* %"$msgobj_2701_salloc_salloc" to [85 x i8]* - %"$msgobj_2701" = bitcast [85 x i8]* %"$msgobj_2701_salloc" to i8* - store i8 2, i8* %"$msgobj_2701", align 1 - %"$msgobj_fname_2703" = getelementptr i8, i8* %"$msgobj_2701", i32 1 - %"$msgobj_fname_2704" = bitcast i8* %"$msgobj_fname_2703" to %String* - store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_2702", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_2704", align 8 - %"$msgobj_td_2705" = getelementptr i8, i8* %"$msgobj_2701", i32 17 - %"$msgobj_td_2706" = bitcast i8* %"$msgobj_td_2705" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_String_440", %_TyDescrTy_Typ** %"$msgobj_td_2706", align 8 - %"$msgobj_v_2708" = getelementptr i8, i8* %"$msgobj_2701", i32 25 - %"$msgobj_v_2709" = bitcast i8* %"$msgobj_v_2708" to %String* - store %String { i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$stringlit_2707", i32 0, i32 0), i32 8 }, %String* %"$msgobj_v_2709", align 8 - %"$msgobj_fname_2711" = getelementptr i8, i8* %"$msgobj_2701", i32 41 - %"$msgobj_fname_2712" = bitcast i8* %"$msgobj_fname_2711" to %String* - store %String { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$stringlit_2710", i32 0, i32 0), i32 7 }, %String* %"$msgobj_fname_2712", align 8 - %"$msgobj_td_2713" = getelementptr i8, i8* %"$msgobj_2701", i32 57 - %"$msgobj_td_2714" = bitcast i8* %"$msgobj_td_2713" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_458", %_TyDescrTy_Typ** %"$msgobj_td_2714", align 8 - %"$msgobj_v_2715" = getelementptr i8, i8* %"$msgobj_2701", i32 65 - %"$msgobj_v_2716" = bitcast i8* %"$msgobj_v_2715" to [20 x i8]* - store [20 x i8] %address, [20 x i8]* %"$msgobj_v_2716", align 1 - store i8* %"$msgobj_2701", i8** %"$retval_284", align 8, !dbg !143 - %"$$retval_284_2718" = load i8*, i8** %"$retval_284", align 8 - ret i8* %"$$retval_284_2718" -} - -define internal i8* @"$fundef_289"(%"$$fundef_289_env_590"* %0, %TName_Bool* %1) !dbg !144 { -entry: - %"$$fundef_289_env_operator_2653" = getelementptr inbounds %"$$fundef_289_env_590", %"$$fundef_289_env_590"* %0, i32 0, i32 0 - %"$operator_envload_2654" = load [20 x i8], [20 x i8]* %"$$fundef_289_env_operator_2653", align 1 + %"$msgobj_2747_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$msgobj_2747_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_2747_salloc_load", i64 85) + %"$msgobj_2747_salloc" = bitcast i8* %"$msgobj_2747_salloc_salloc" to [85 x i8]* + %"$msgobj_2747" = bitcast [85 x i8]* %"$msgobj_2747_salloc" to i8* + store i8 2, i8* %"$msgobj_2747", align 1 + %"$msgobj_fname_2749" = getelementptr i8, i8* %"$msgobj_2747", i32 1 + %"$msgobj_fname_2750" = bitcast i8* %"$msgobj_fname_2749" to %String* + store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_2748", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_2750", align 8 + %"$msgobj_td_2751" = getelementptr i8, i8* %"$msgobj_2747", i32 17 + %"$msgobj_td_2752" = bitcast i8* %"$msgobj_td_2751" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_String_440", %_TyDescrTy_Typ** %"$msgobj_td_2752", align 8 + %"$msgobj_v_2754" = getelementptr i8, i8* %"$msgobj_2747", i32 25 + %"$msgobj_v_2755" = bitcast i8* %"$msgobj_v_2754" to %String* + store %String { i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$stringlit_2753", i32 0, i32 0), i32 8 }, %String* %"$msgobj_v_2755", align 8 + %"$msgobj_fname_2757" = getelementptr i8, i8* %"$msgobj_2747", i32 41 + %"$msgobj_fname_2758" = bitcast i8* %"$msgobj_fname_2757" to %String* + store %String { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$stringlit_2756", i32 0, i32 0), i32 7 }, %String* %"$msgobj_fname_2758", align 8 + %"$msgobj_td_2759" = getelementptr i8, i8* %"$msgobj_2747", i32 57 + %"$msgobj_td_2760" = bitcast i8* %"$msgobj_td_2759" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_458", %_TyDescrTy_Typ** %"$msgobj_td_2760", align 8 + %"$msgobj_v_2761" = getelementptr i8, i8* %"$msgobj_2747", i32 65 + %"$msgobj_v_2762" = bitcast i8* %"$msgobj_v_2761" to [20 x i8]* + store [20 x i8] %address, [20 x i8]* %"$msgobj_v_2762", align 1 + store i8* %"$msgobj_2747", i8** %"$retval_284", align 8, !dbg !262 + %"$$retval_284_2764" = load i8*, i8** %"$retval_284", align 8 + ret i8* %"$$retval_284_2764" +} + +define internal i8* @"$fundef_289"(%"$$fundef_289_env_590"* %0, %TName_Bool* %1) !dbg !263 { +entry: + %"$isApproved_2741" = alloca %TName_Bool*, align 8 + store %TName_Bool* %1, %TName_Bool** %"$isApproved_2741", align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$isApproved_2741", metadata !264, metadata !DIExpression()), !dbg !265 + %"$$fundef_289_env_operator_2698" = getelementptr inbounds %"$$fundef_289_env_590", %"$$fundef_289_env_590"* %0, i32 0, i32 0 + %"$operator_envload_2699" = load [20 x i8], [20 x i8]* %"$$fundef_289_env_operator_2698", align 1 %operator = alloca [20 x i8], align 1 - store [20 x i8] %"$operator_envload_2654", [20 x i8]* %operator, align 1 - %"$$fundef_289_env_user_2655" = getelementptr inbounds %"$$fundef_289_env_590", %"$$fundef_289_env_590"* %0, i32 0, i32 1 - %"$user_envload_2656" = load [20 x i8], [20 x i8]* %"$$fundef_289_env_user_2655", align 1 + store [20 x i8] %"$operator_envload_2699", [20 x i8]* %operator, align 1 + %"$$fundef_289_env_user_2700" = getelementptr inbounds %"$$fundef_289_env_590", %"$$fundef_289_env_590"* %0, i32 0, i32 1 + %"$user_envload_2701" = load [20 x i8], [20 x i8]* %"$$fundef_289_env_user_2700", align 1 %user = alloca [20 x i8], align 1 - store [20 x i8] %"$user_envload_2656", [20 x i8]* %user, align 1 + store [20 x i8] %"$user_envload_2701", [20 x i8]* %user, align 1 %"$retval_290" = alloca i8*, align 8 - %"$gasrem_2657" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2658" = icmp ugt i64 1, %"$gasrem_2657" - br i1 %"$gascmp_2658", label %"$out_of_gas_2659", label %"$have_gas_2660" - -"$out_of_gas_2659": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_2660" - -"$have_gas_2660": ; preds = %"$out_of_gas_2659", %entry - %"$consume_2661" = sub i64 %"$gasrem_2657", 1 - store i64 %"$consume_2661", i64* @_gasrem, align 8 - %"$msgobj_2662_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$msgobj_2662_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_2662_salloc_load", i64 161) - %"$msgobj_2662_salloc" = bitcast i8* %"$msgobj_2662_salloc_salloc" to [161 x i8]* - %"$msgobj_2662" = bitcast [161 x i8]* %"$msgobj_2662_salloc" to i8* - store i8 4, i8* %"$msgobj_2662", align 1 - %"$msgobj_fname_2664" = getelementptr i8, i8* %"$msgobj_2662", i32 1 - %"$msgobj_fname_2665" = bitcast i8* %"$msgobj_fname_2664" to %String* - store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_2663", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_2665", align 8 - %"$msgobj_td_2666" = getelementptr i8, i8* %"$msgobj_2662", i32 17 - %"$msgobj_td_2667" = bitcast i8* %"$msgobj_td_2666" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_String_440", %_TyDescrTy_Typ** %"$msgobj_td_2667", align 8 - %"$msgobj_v_2669" = getelementptr i8, i8* %"$msgobj_2662", i32 25 - %"$msgobj_v_2670" = bitcast i8* %"$msgobj_v_2669" to %String* - store %String { i8* getelementptr inbounds ([11 x i8], [11 x i8]* @"$stringlit_2668", i32 0, i32 0), i32 11 }, %String* %"$msgobj_v_2670", align 8 - %"$msgobj_fname_2672" = getelementptr i8, i8* %"$msgobj_2662", i32 41 - %"$msgobj_fname_2673" = bitcast i8* %"$msgobj_fname_2672" to %String* - store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_2671", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_2673", align 8 - %"$msgobj_td_2674" = getelementptr i8, i8* %"$msgobj_2662", i32 57 - %"$msgobj_td_2675" = bitcast i8* %"$msgobj_td_2674" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_458", %_TyDescrTy_Typ** %"$msgobj_td_2675", align 8 - %"$user_2676" = load [20 x i8], [20 x i8]* %user, align 1 - %"$msgobj_v_2677" = getelementptr i8, i8* %"$msgobj_2662", i32 65 - %"$msgobj_v_2678" = bitcast i8* %"$msgobj_v_2677" to [20 x i8]* - store [20 x i8] %"$user_2676", [20 x i8]* %"$msgobj_v_2678", align 1 - %"$msgobj_fname_2680" = getelementptr i8, i8* %"$msgobj_2662", i32 85 - %"$msgobj_fname_2681" = bitcast i8* %"$msgobj_fname_2680" to %String* - store %String { i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$stringlit_2679", i32 0, i32 0), i32 8 }, %String* %"$msgobj_fname_2681", align 8 - %"$msgobj_td_2682" = getelementptr i8, i8* %"$msgobj_2662", i32 101 - %"$msgobj_td_2683" = bitcast i8* %"$msgobj_td_2682" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_458", %_TyDescrTy_Typ** %"$msgobj_td_2683", align 8 - %"$operator_2684" = load [20 x i8], [20 x i8]* %operator, align 1 - %"$msgobj_v_2685" = getelementptr i8, i8* %"$msgobj_2662", i32 109 - %"$msgobj_v_2686" = bitcast i8* %"$msgobj_v_2685" to [20 x i8]* - store [20 x i8] %"$operator_2684", [20 x i8]* %"$msgobj_v_2686", align 1 - %"$msgobj_fname_2688" = getelementptr i8, i8* %"$msgobj_2662", i32 129 - %"$msgobj_fname_2689" = bitcast i8* %"$msgobj_fname_2688" to %String* - store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_2687", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_2689", align 8 - %"$msgobj_td_2690" = getelementptr i8, i8* %"$msgobj_2662", i32 145 - %"$msgobj_td_2691" = bitcast i8* %"$msgobj_td_2690" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_468", %_TyDescrTy_Typ** %"$msgobj_td_2691", align 8 - %"$msgobj_v_2692" = getelementptr i8, i8* %"$msgobj_2662", i32 153 - %"$msgobj_v_2693" = bitcast i8* %"$msgobj_v_2692" to %TName_Bool** - store %TName_Bool* %1, %TName_Bool** %"$msgobj_v_2693", align 8 - store i8* %"$msgobj_2662", i8** %"$retval_290", align 8, !dbg !145 - %"$$retval_290_2695" = load i8*, i8** %"$retval_290", align 8 - ret i8* %"$$retval_290_2695" -} - -define internal { i8* (i8*, %TName_Bool*)*, i8* } @"$fundef_287"(%"$$fundef_287_env_591"* %0, [20 x i8]* %1) !dbg !146 { -entry: + call void @llvm.dbg.declare(metadata i8** %"$retval_290", metadata !266, metadata !DIExpression()), !dbg !267 + %"$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 = %entry + call void @_out_of_gas() + br label %"$have_gas_2705" + +"$have_gas_2705": ; preds = %"$out_of_gas_2704", %entry + %"$consume_2706" = sub i64 %"$gasrem_2702", 1 + store i64 %"$consume_2706", i64* @_gasrem, align 8 + %"$msgobj_2707_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$msgobj_2707_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_2707_salloc_load", i64 161) + %"$msgobj_2707_salloc" = bitcast i8* %"$msgobj_2707_salloc_salloc" to [161 x i8]* + %"$msgobj_2707" = bitcast [161 x i8]* %"$msgobj_2707_salloc" to i8* + store i8 4, i8* %"$msgobj_2707", align 1 + %"$msgobj_fname_2709" = getelementptr i8, i8* %"$msgobj_2707", i32 1 + %"$msgobj_fname_2710" = bitcast i8* %"$msgobj_fname_2709" to %String* + store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_2708", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_2710", align 8 + %"$msgobj_td_2711" = getelementptr i8, i8* %"$msgobj_2707", i32 17 + %"$msgobj_td_2712" = bitcast i8* %"$msgobj_td_2711" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_String_440", %_TyDescrTy_Typ** %"$msgobj_td_2712", align 8 + %"$msgobj_v_2714" = getelementptr i8, i8* %"$msgobj_2707", i32 25 + %"$msgobj_v_2715" = bitcast i8* %"$msgobj_v_2714" to %String* + store %String { i8* getelementptr inbounds ([11 x i8], [11 x i8]* @"$stringlit_2713", i32 0, i32 0), i32 11 }, %String* %"$msgobj_v_2715", align 8 + %"$msgobj_fname_2717" = getelementptr i8, i8* %"$msgobj_2707", i32 41 + %"$msgobj_fname_2718" = bitcast i8* %"$msgobj_fname_2717" to %String* + store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_2716", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_2718", align 8 + %"$msgobj_td_2719" = getelementptr i8, i8* %"$msgobj_2707", i32 57 + %"$msgobj_td_2720" = bitcast i8* %"$msgobj_td_2719" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_458", %_TyDescrTy_Typ** %"$msgobj_td_2720", align 8 + %"$user_2721" = load [20 x i8], [20 x i8]* %user, align 1 + %"$msgobj_v_2722" = getelementptr i8, i8* %"$msgobj_2707", i32 65 + %"$msgobj_v_2723" = bitcast i8* %"$msgobj_v_2722" to [20 x i8]* + store [20 x i8] %"$user_2721", [20 x i8]* %"$msgobj_v_2723", align 1 + %"$msgobj_fname_2725" = getelementptr i8, i8* %"$msgobj_2707", i32 85 + %"$msgobj_fname_2726" = bitcast i8* %"$msgobj_fname_2725" to %String* + store %String { i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$stringlit_2724", i32 0, i32 0), i32 8 }, %String* %"$msgobj_fname_2726", align 8 + %"$msgobj_td_2727" = getelementptr i8, i8* %"$msgobj_2707", i32 101 + %"$msgobj_td_2728" = bitcast i8* %"$msgobj_td_2727" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_458", %_TyDescrTy_Typ** %"$msgobj_td_2728", align 8 + %"$operator_2729" = load [20 x i8], [20 x i8]* %operator, align 1 + %"$msgobj_v_2730" = getelementptr i8, i8* %"$msgobj_2707", i32 109 + %"$msgobj_v_2731" = bitcast i8* %"$msgobj_v_2730" to [20 x i8]* + store [20 x i8] %"$operator_2729", [20 x i8]* %"$msgobj_v_2731", align 1 + %"$msgobj_fname_2733" = getelementptr i8, i8* %"$msgobj_2707", i32 129 + %"$msgobj_fname_2734" = bitcast i8* %"$msgobj_fname_2733" to %String* + store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_2732", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_2734", align 8 + %"$msgobj_td_2735" = getelementptr i8, i8* %"$msgobj_2707", i32 145 + %"$msgobj_td_2736" = bitcast i8* %"$msgobj_td_2735" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_468", %_TyDescrTy_Typ** %"$msgobj_td_2736", align 8 + %"$msgobj_v_2737" = getelementptr i8, i8* %"$msgobj_2707", i32 153 + %"$msgobj_v_2738" = bitcast i8* %"$msgobj_v_2737" to %TName_Bool** + store %TName_Bool* %1, %TName_Bool** %"$msgobj_v_2738", align 8 + store i8* %"$msgobj_2707", i8** %"$retval_290", align 8, !dbg !267 + %"$$retval_290_2740" = load i8*, i8** %"$retval_290", align 8 + ret i8* %"$$retval_290_2740" +} + +define internal { i8* (i8*, %TName_Bool*)*, i8* } @"$fundef_287"(%"$$fundef_287_env_591"* %0, [20 x i8]* %1) !dbg !268 { +entry: + %"$operator_2697" = alloca [20 x i8]*, align 8 + store [20 x i8]* %1, [20 x i8]** %"$operator_2697", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$operator_2697", metadata !269, metadata !DIExpression()), !dbg !270 %operator = load [20 x i8], [20 x i8]* %1, align 1 - %"$$fundef_287_env_user_2638" = getelementptr inbounds %"$$fundef_287_env_591", %"$$fundef_287_env_591"* %0, i32 0, i32 0 - %"$user_envload_2639" = load [20 x i8], [20 x i8]* %"$$fundef_287_env_user_2638", align 1 + %"$$fundef_287_env_user_2682" = getelementptr inbounds %"$$fundef_287_env_591", %"$$fundef_287_env_591"* %0, i32 0, i32 0 + %"$user_envload_2683" = load [20 x i8], [20 x i8]* %"$$fundef_287_env_user_2682", align 1 %user = alloca [20 x i8], align 1 - store [20 x i8] %"$user_envload_2639", [20 x i8]* %user, align 1 + store [20 x i8] %"$user_envload_2683", [20 x i8]* %user, align 1 %"$retval_288" = alloca { i8* (i8*, %TName_Bool*)*, i8* }, align 8 - %"$gasrem_2640" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2641" = icmp ugt i64 1, %"$gasrem_2640" - br i1 %"$gascmp_2641", label %"$out_of_gas_2642", label %"$have_gas_2643" - -"$out_of_gas_2642": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_2643" - -"$have_gas_2643": ; preds = %"$out_of_gas_2642", %entry - %"$consume_2644" = sub i64 %"$gasrem_2640", 1 - store i64 %"$consume_2644", i64* @_gasrem, align 8 - %"$$fundef_289_envp_2645_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_289_envp_2645_salloc" = call i8* @_salloc(i8* %"$$fundef_289_envp_2645_load", i64 40) - %"$$fundef_289_envp_2645" = bitcast i8* %"$$fundef_289_envp_2645_salloc" to %"$$fundef_289_env_590"* - %"$$fundef_289_env_voidp_2647" = bitcast %"$$fundef_289_env_590"* %"$$fundef_289_envp_2645" to i8* - %"$$fundef_289_cloval_2648" = insertvalue { i8* (i8*, %TName_Bool*)*, i8* } { i8* (i8*, %TName_Bool*)* bitcast (i8* (%"$$fundef_289_env_590"*, %TName_Bool*)* @"$fundef_289" to i8* (i8*, %TName_Bool*)*), i8* undef }, i8* %"$$fundef_289_env_voidp_2647", 1 - %"$$fundef_289_env_operator_2649" = getelementptr inbounds %"$$fundef_289_env_590", %"$$fundef_289_env_590"* %"$$fundef_289_envp_2645", i32 0, i32 0 - store [20 x i8] %operator, [20 x i8]* %"$$fundef_289_env_operator_2649", align 1 - %"$$fundef_289_env_user_2650" = getelementptr inbounds %"$$fundef_289_env_590", %"$$fundef_289_env_590"* %"$$fundef_289_envp_2645", i32 0, i32 1 - %"$user_2651" = load [20 x i8], [20 x i8]* %user, align 1 - store [20 x i8] %"$user_2651", [20 x i8]* %"$$fundef_289_env_user_2650", align 1 - store { i8* (i8*, %TName_Bool*)*, i8* } %"$$fundef_289_cloval_2648", { i8* (i8*, %TName_Bool*)*, i8* }* %"$retval_288", align 8, !dbg !147 - %"$$retval_288_2652" = load { i8* (i8*, %TName_Bool*)*, i8* }, { i8* (i8*, %TName_Bool*)*, i8* }* %"$retval_288", align 8 - ret { i8* (i8*, %TName_Bool*)*, i8* } %"$$retval_288_2652" -} - -define internal { { i8* (i8*, %TName_Bool*)*, i8* } (i8*, [20 x i8]*)*, i8* } @"$fundef_285"(%"$$fundef_285_env_592"* %0, [20 x i8]* %1) !dbg !148 { -entry: + %"$gasrem_2684" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2685" = icmp ugt i64 1, %"$gasrem_2684" + br i1 %"$gascmp_2685", label %"$out_of_gas_2686", label %"$have_gas_2687" + +"$out_of_gas_2686": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_2687" + +"$have_gas_2687": ; preds = %"$out_of_gas_2686", %entry + %"$consume_2688" = sub i64 %"$gasrem_2684", 1 + store i64 %"$consume_2688", i64* @_gasrem, align 8 + %"$$fundef_289_envp_2689_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_289_envp_2689_salloc" = call i8* @_salloc(i8* %"$$fundef_289_envp_2689_load", i64 40) + %"$$fundef_289_envp_2689" = bitcast i8* %"$$fundef_289_envp_2689_salloc" to %"$$fundef_289_env_590"* + %"$$fundef_289_env_voidp_2691" = bitcast %"$$fundef_289_env_590"* %"$$fundef_289_envp_2689" to i8* + %"$$fundef_289_cloval_2692" = insertvalue { i8* (i8*, %TName_Bool*)*, i8* } { i8* (i8*, %TName_Bool*)* bitcast (i8* (%"$$fundef_289_env_590"*, %TName_Bool*)* @"$fundef_289" to i8* (i8*, %TName_Bool*)*), i8* undef }, i8* %"$$fundef_289_env_voidp_2691", 1 + %"$$fundef_289_env_operator_2693" = getelementptr inbounds %"$$fundef_289_env_590", %"$$fundef_289_env_590"* %"$$fundef_289_envp_2689", i32 0, i32 0 + store [20 x i8] %operator, [20 x i8]* %"$$fundef_289_env_operator_2693", align 1 + %"$$fundef_289_env_user_2694" = getelementptr inbounds %"$$fundef_289_env_590", %"$$fundef_289_env_590"* %"$$fundef_289_envp_2689", i32 0, i32 1 + %"$user_2695" = load [20 x i8], [20 x i8]* %user, align 1 + store [20 x i8] %"$user_2695", [20 x i8]* %"$$fundef_289_env_user_2694", align 1 + store { i8* (i8*, %TName_Bool*)*, i8* } %"$$fundef_289_cloval_2692", { i8* (i8*, %TName_Bool*)*, i8* }* %"$retval_288", align 8, !dbg !271 + %"$$retval_288_2696" = load { i8* (i8*, %TName_Bool*)*, i8* }, { i8* (i8*, %TName_Bool*)*, i8* }* %"$retval_288", align 8 + ret { i8* (i8*, %TName_Bool*)*, i8* } %"$$retval_288_2696" +} + +define internal { { i8* (i8*, %TName_Bool*)*, i8* } (i8*, [20 x i8]*)*, i8* } @"$fundef_285"(%"$$fundef_285_env_592"* %0, [20 x i8]* %1) !dbg !272 { +entry: + %"$user_2681" = alloca [20 x i8]*, align 8 + store [20 x i8]* %1, [20 x i8]** %"$user_2681", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$user_2681", metadata !273, metadata !DIExpression()), !dbg !274 %user = load [20 x i8], [20 x i8]* %1, align 1 %"$retval_286" = alloca { { i8* (i8*, %TName_Bool*)*, i8* } (i8*, [20 x i8]*)*, i8* }, align 8 - %"$gasrem_2627" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2628" = icmp ugt i64 1, %"$gasrem_2627" - br i1 %"$gascmp_2628", label %"$out_of_gas_2629", label %"$have_gas_2630" - -"$out_of_gas_2629": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_2630" - -"$have_gas_2630": ; preds = %"$out_of_gas_2629", %entry - %"$consume_2631" = sub i64 %"$gasrem_2627", 1 - store i64 %"$consume_2631", i64* @_gasrem, align 8 - %"$$fundef_287_envp_2632_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_287_envp_2632_salloc" = call i8* @_salloc(i8* %"$$fundef_287_envp_2632_load", i64 20) - %"$$fundef_287_envp_2632" = bitcast i8* %"$$fundef_287_envp_2632_salloc" to %"$$fundef_287_env_591"* - %"$$fundef_287_env_voidp_2634" = bitcast %"$$fundef_287_env_591"* %"$$fundef_287_envp_2632" to i8* - %"$$fundef_287_cloval_2635" = 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_287_env_591"*, [20 x i8]*)* @"$fundef_287" to { i8* (i8*, %TName_Bool*)*, i8* } (i8*, [20 x i8]*)*), i8* undef }, i8* %"$$fundef_287_env_voidp_2634", 1 - %"$$fundef_287_env_user_2636" = getelementptr inbounds %"$$fundef_287_env_591", %"$$fundef_287_env_591"* %"$$fundef_287_envp_2632", i32 0, i32 0 - store [20 x i8] %user, [20 x i8]* %"$$fundef_287_env_user_2636", align 1 - store { { i8* (i8*, %TName_Bool*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$$fundef_287_cloval_2635", { { i8* (i8*, %TName_Bool*)*, i8* } (i8*, [20 x i8]*)*, i8* }* %"$retval_286", align 8, !dbg !149 - %"$$retval_286_2637" = load { { i8* (i8*, %TName_Bool*)*, i8* } (i8*, [20 x i8]*)*, i8* }, { { i8* (i8*, %TName_Bool*)*, i8* } (i8*, [20 x i8]*)*, i8* }* %"$retval_286", align 8 - ret { { i8* (i8*, %TName_Bool*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$$retval_286_2637" -} - -define internal i8* @"$fundef_293"(%"$$fundef_293_env_593"* %0, %TName_Bool* %1) !dbg !150 { -entry: - %"$$fundef_293_env_address_2594" = getelementptr inbounds %"$$fundef_293_env_593", %"$$fundef_293_env_593"* %0, i32 0, i32 0 - %"$address_envload_2595" = load [20 x i8], [20 x i8]* %"$$fundef_293_env_address_2594", align 1 + %"$gasrem_2670" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2671" = icmp ugt i64 1, %"$gasrem_2670" + br i1 %"$gascmp_2671", label %"$out_of_gas_2672", label %"$have_gas_2673" + +"$out_of_gas_2672": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_2673" + +"$have_gas_2673": ; preds = %"$out_of_gas_2672", %entry + %"$consume_2674" = sub i64 %"$gasrem_2670", 1 + store i64 %"$consume_2674", i64* @_gasrem, align 8 + %"$$fundef_287_envp_2675_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_287_envp_2675_salloc" = call i8* @_salloc(i8* %"$$fundef_287_envp_2675_load", i64 20) + %"$$fundef_287_envp_2675" = bitcast i8* %"$$fundef_287_envp_2675_salloc" to %"$$fundef_287_env_591"* + %"$$fundef_287_env_voidp_2677" = bitcast %"$$fundef_287_env_591"* %"$$fundef_287_envp_2675" to i8* + %"$$fundef_287_cloval_2678" = 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_287_env_591"*, [20 x i8]*)* @"$fundef_287" to { i8* (i8*, %TName_Bool*)*, i8* } (i8*, [20 x i8]*)*), i8* undef }, i8* %"$$fundef_287_env_voidp_2677", 1 + %"$$fundef_287_env_user_2679" = getelementptr inbounds %"$$fundef_287_env_591", %"$$fundef_287_env_591"* %"$$fundef_287_envp_2675", i32 0, i32 0 + store [20 x i8] %user, [20 x i8]* %"$$fundef_287_env_user_2679", align 1 + store { { i8* (i8*, %TName_Bool*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$$fundef_287_cloval_2678", { { i8* (i8*, %TName_Bool*)*, i8* } (i8*, [20 x i8]*)*, i8* }* %"$retval_286", align 8, !dbg !275 + %"$$retval_286_2680" = load { { i8* (i8*, %TName_Bool*)*, i8* } (i8*, [20 x i8]*)*, i8* }, { { i8* (i8*, %TName_Bool*)*, i8* } (i8*, [20 x i8]*)*, i8* }* %"$retval_286", align 8 + ret { { i8* (i8*, %TName_Bool*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$$retval_286_2680" +} + +define internal i8* @"$fundef_293"(%"$$fundef_293_env_593"* %0, %TName_Bool* %1) !dbg !276 { +entry: + %"$isApproved_2669" = alloca %TName_Bool*, align 8 + store %TName_Bool* %1, %TName_Bool** %"$isApproved_2669", align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$isApproved_2669", metadata !277, metadata !DIExpression()), !dbg !278 + %"$$fundef_293_env_address_2636" = getelementptr inbounds %"$$fundef_293_env_593", %"$$fundef_293_env_593"* %0, i32 0, i32 0 + %"$address_envload_2637" = load [20 x i8], [20 x i8]* %"$$fundef_293_env_address_2636", align 1 %address = alloca [20 x i8], align 1 - store [20 x i8] %"$address_envload_2595", [20 x i8]* %address, align 1 + store [20 x i8] %"$address_envload_2637", [20 x i8]* %address, align 1 %"$retval_294" = alloca i8*, align 8 - %"$gasrem_2596" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2597" = icmp ugt i64 1, %"$gasrem_2596" - br i1 %"$gascmp_2597", label %"$out_of_gas_2598", label %"$have_gas_2599" - -"$out_of_gas_2598": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_2599" - -"$have_gas_2599": ; preds = %"$out_of_gas_2598", %entry - %"$consume_2600" = sub i64 %"$gasrem_2596", 1 - store i64 %"$consume_2600", i64* @_gasrem, align 8 - %"$msgobj_2601_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$msgobj_2601_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_2601_salloc_load", i64 117) - %"$msgobj_2601_salloc" = bitcast i8* %"$msgobj_2601_salloc_salloc" to [117 x i8]* - %"$msgobj_2601" = bitcast [117 x i8]* %"$msgobj_2601_salloc" to i8* - store i8 3, i8* %"$msgobj_2601", align 1 - %"$msgobj_fname_2603" = getelementptr i8, i8* %"$msgobj_2601", i32 1 - %"$msgobj_fname_2604" = bitcast i8* %"$msgobj_fname_2603" to %String* - store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_2602", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_2604", align 8 - %"$msgobj_td_2605" = getelementptr i8, i8* %"$msgobj_2601", i32 17 - %"$msgobj_td_2606" = bitcast i8* %"$msgobj_td_2605" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_String_440", %_TyDescrTy_Typ** %"$msgobj_td_2606", align 8 - %"$msgobj_v_2608" = getelementptr i8, i8* %"$msgobj_2601", i32 25 - %"$msgobj_v_2609" = bitcast i8* %"$msgobj_v_2608" to %String* - store %String { i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$stringlit_2607", i32 0, i32 0), i32 8 }, %String* %"$msgobj_v_2609", align 8 - %"$msgobj_fname_2611" = getelementptr i8, i8* %"$msgobj_2601", i32 41 - %"$msgobj_fname_2612" = bitcast i8* %"$msgobj_fname_2611" to %String* - store %String { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$stringlit_2610", i32 0, i32 0), i32 7 }, %String* %"$msgobj_fname_2612", align 8 - %"$msgobj_td_2613" = getelementptr i8, i8* %"$msgobj_2601", i32 57 - %"$msgobj_td_2614" = bitcast i8* %"$msgobj_td_2613" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_458", %_TyDescrTy_Typ** %"$msgobj_td_2614", align 8 - %"$address_2615" = load [20 x i8], [20 x i8]* %address, align 1 - %"$msgobj_v_2616" = getelementptr i8, i8* %"$msgobj_2601", i32 65 - %"$msgobj_v_2617" = bitcast i8* %"$msgobj_v_2616" to [20 x i8]* - store [20 x i8] %"$address_2615", [20 x i8]* %"$msgobj_v_2617", align 1 - %"$msgobj_fname_2619" = getelementptr i8, i8* %"$msgobj_2601", i32 85 - %"$msgobj_fname_2620" = bitcast i8* %"$msgobj_fname_2619" to %String* - store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_2618", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_2620", align 8 - %"$msgobj_td_2621" = getelementptr i8, i8* %"$msgobj_2601", i32 101 - %"$msgobj_td_2622" = bitcast i8* %"$msgobj_td_2621" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_468", %_TyDescrTy_Typ** %"$msgobj_td_2622", align 8 - %"$msgobj_v_2623" = getelementptr i8, i8* %"$msgobj_2601", i32 109 - %"$msgobj_v_2624" = bitcast i8* %"$msgobj_v_2623" to %TName_Bool** - store %TName_Bool* %1, %TName_Bool** %"$msgobj_v_2624", align 8 - store i8* %"$msgobj_2601", i8** %"$retval_294", align 8, !dbg !151 - %"$$retval_294_2626" = load i8*, i8** %"$retval_294", align 8 - ret i8* %"$$retval_294_2626" -} - -define internal { i8* (i8*, %TName_Bool*)*, i8* } @"$fundef_291"(%"$$fundef_291_env_594"* %0, [20 x i8]* %1) !dbg !152 { -entry: + call void @llvm.dbg.declare(metadata i8** %"$retval_294", metadata !279, metadata !DIExpression()), !dbg !280 + %"$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 = %entry + call void @_out_of_gas() + br label %"$have_gas_2641" + +"$have_gas_2641": ; preds = %"$out_of_gas_2640", %entry + %"$consume_2642" = sub i64 %"$gasrem_2638", 1 + store i64 %"$consume_2642", i64* @_gasrem, align 8 + %"$msgobj_2643_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$msgobj_2643_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_2643_salloc_load", i64 117) + %"$msgobj_2643_salloc" = bitcast i8* %"$msgobj_2643_salloc_salloc" to [117 x i8]* + %"$msgobj_2643" = bitcast [117 x i8]* %"$msgobj_2643_salloc" to i8* + store i8 3, i8* %"$msgobj_2643", align 1 + %"$msgobj_fname_2645" = getelementptr i8, i8* %"$msgobj_2643", i32 1 + %"$msgobj_fname_2646" = bitcast i8* %"$msgobj_fname_2645" to %String* + store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_2644", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_2646", align 8 + %"$msgobj_td_2647" = getelementptr i8, i8* %"$msgobj_2643", i32 17 + %"$msgobj_td_2648" = bitcast i8* %"$msgobj_td_2647" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_String_440", %_TyDescrTy_Typ** %"$msgobj_td_2648", align 8 + %"$msgobj_v_2650" = getelementptr i8, i8* %"$msgobj_2643", i32 25 + %"$msgobj_v_2651" = bitcast i8* %"$msgobj_v_2650" to %String* + store %String { i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$stringlit_2649", i32 0, i32 0), i32 8 }, %String* %"$msgobj_v_2651", align 8 + %"$msgobj_fname_2653" = getelementptr i8, i8* %"$msgobj_2643", i32 41 + %"$msgobj_fname_2654" = bitcast i8* %"$msgobj_fname_2653" to %String* + store %String { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$stringlit_2652", i32 0, i32 0), i32 7 }, %String* %"$msgobj_fname_2654", align 8 + %"$msgobj_td_2655" = getelementptr i8, i8* %"$msgobj_2643", i32 57 + %"$msgobj_td_2656" = bitcast i8* %"$msgobj_td_2655" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_458", %_TyDescrTy_Typ** %"$msgobj_td_2656", align 8 + %"$address_2657" = load [20 x i8], [20 x i8]* %address, align 1 + %"$msgobj_v_2658" = getelementptr i8, i8* %"$msgobj_2643", i32 65 + %"$msgobj_v_2659" = bitcast i8* %"$msgobj_v_2658" to [20 x i8]* + store [20 x i8] %"$address_2657", [20 x i8]* %"$msgobj_v_2659", align 1 + %"$msgobj_fname_2661" = getelementptr i8, i8* %"$msgobj_2643", i32 85 + %"$msgobj_fname_2662" = bitcast i8* %"$msgobj_fname_2661" to %String* + store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_2660", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_2662", align 8 + %"$msgobj_td_2663" = getelementptr i8, i8* %"$msgobj_2643", i32 101 + %"$msgobj_td_2664" = bitcast i8* %"$msgobj_td_2663" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_468", %_TyDescrTy_Typ** %"$msgobj_td_2664", align 8 + %"$msgobj_v_2665" = getelementptr i8, i8* %"$msgobj_2643", i32 109 + %"$msgobj_v_2666" = bitcast i8* %"$msgobj_v_2665" to %TName_Bool** + store %TName_Bool* %1, %TName_Bool** %"$msgobj_v_2666", align 8 + store i8* %"$msgobj_2643", i8** %"$retval_294", align 8, !dbg !280 + %"$$retval_294_2668" = load i8*, i8** %"$retval_294", align 8 + ret i8* %"$$retval_294_2668" +} + +define internal { i8* (i8*, %TName_Bool*)*, i8* } @"$fundef_291"(%"$$fundef_291_env_594"* %0, [20 x i8]* %1) !dbg !281 { +entry: + %"$address_2635" = alloca [20 x i8]*, align 8 + store [20 x i8]* %1, [20 x i8]** %"$address_2635", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$address_2635", metadata !282, metadata !DIExpression()), !dbg !283 %address = load [20 x i8], [20 x i8]* %1, align 1 %"$retval_292" = alloca { i8* (i8*, %TName_Bool*)*, i8* }, 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 = %entry + call void @_out_of_gas() + br label %"$have_gas_2627" + +"$have_gas_2627": ; preds = %"$out_of_gas_2626", %entry + %"$consume_2628" = sub i64 %"$gasrem_2624", 1 + store i64 %"$consume_2628", i64* @_gasrem, align 8 + %"$$fundef_293_envp_2629_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_293_envp_2629_salloc" = call i8* @_salloc(i8* %"$$fundef_293_envp_2629_load", i64 20) + %"$$fundef_293_envp_2629" = bitcast i8* %"$$fundef_293_envp_2629_salloc" to %"$$fundef_293_env_593"* + %"$$fundef_293_env_voidp_2631" = bitcast %"$$fundef_293_env_593"* %"$$fundef_293_envp_2629" to i8* + %"$$fundef_293_cloval_2632" = insertvalue { i8* (i8*, %TName_Bool*)*, i8* } { i8* (i8*, %TName_Bool*)* bitcast (i8* (%"$$fundef_293_env_593"*, %TName_Bool*)* @"$fundef_293" to i8* (i8*, %TName_Bool*)*), i8* undef }, i8* %"$$fundef_293_env_voidp_2631", 1 + %"$$fundef_293_env_address_2633" = getelementptr inbounds %"$$fundef_293_env_593", %"$$fundef_293_env_593"* %"$$fundef_293_envp_2629", i32 0, i32 0 + store [20 x i8] %address, [20 x i8]* %"$$fundef_293_env_address_2633", align 1 + store { i8* (i8*, %TName_Bool*)*, i8* } %"$$fundef_293_cloval_2632", { i8* (i8*, %TName_Bool*)*, i8* }* %"$retval_292", align 8, !dbg !284 + %"$$retval_292_2634" = load { i8* (i8*, %TName_Bool*)*, i8* }, { i8* (i8*, %TName_Bool*)*, i8* }* %"$retval_292", align 8 + ret { i8* (i8*, %TName_Bool*)*, i8* } %"$$retval_292_2634" +} + +define internal %TName_Bool* @"$fundef_297"(%"$$fundef_297_env_595"* %0, %TName_Bool* %1) !dbg !285 { +entry: + %"$b2_2623" = alloca %TName_Bool*, align 8 + store %TName_Bool* %1, %TName_Bool** %"$b2_2623", align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$b2_2623", metadata !286, metadata !DIExpression()), !dbg !287 + %"$$fundef_297_env_b1_2548" = getelementptr inbounds %"$$fundef_297_env_595", %"$$fundef_297_env_595"* %0, i32 0, i32 0 + %"$b1_envload_2549" = load %TName_Bool*, %TName_Bool** %"$$fundef_297_env_b1_2548", align 8 + %b1 = alloca %TName_Bool*, align 8 + store %TName_Bool* %"$b1_envload_2549", %TName_Bool** %b1, align 8 + %"$retval_298" = alloca %TName_Bool*, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$retval_298", metadata !288, metadata !DIExpression()), !dbg !289 + %"$gasrem_2550" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2551" = icmp ugt i64 2, %"$gasrem_2550" + br i1 %"$gascmp_2551", label %"$out_of_gas_2552", label %"$have_gas_2553" + +"$out_of_gas_2552": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_2553" + +"$have_gas_2553": ; preds = %"$out_of_gas_2552", %entry + %"$consume_2554" = sub i64 %"$gasrem_2550", 2 + store i64 %"$consume_2554", i64* @_gasrem, align 8 + %"$b1_2556" = load %TName_Bool*, %TName_Bool** %b1, align 8 + %"$b1_tag_2557" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$b1_2556", i32 0, i32 0 + %"$b1_tag_2558" = load i8, i8* %"$b1_tag_2557", align 1 + switch i8 %"$b1_tag_2558", label %"$empty_default_2559" [ + i8 0, label %"$True_2560" + i8 1, label %"$False_2591" + ], !dbg !289 + +"$True_2560": ; preds = %"$have_gas_2553" + %"$b1_2561" = bitcast %TName_Bool* %"$b1_2556" to %CName_True* + %"$gasrem_2562" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2563" = icmp ugt i64 2, %"$gasrem_2562" + br i1 %"$gascmp_2563", label %"$out_of_gas_2564", label %"$have_gas_2565" + +"$out_of_gas_2564": ; preds = %"$True_2560" + call void @_out_of_gas() + br label %"$have_gas_2565" + +"$have_gas_2565": ; preds = %"$out_of_gas_2564", %"$True_2560" + %"$consume_2566" = sub i64 %"$gasrem_2562", 2 + store i64 %"$consume_2566", i64* @_gasrem, align 8 + %"$b2_tag_2568" = getelementptr inbounds %TName_Bool, %TName_Bool* %1, i32 0, i32 0 + %"$b2_tag_2569" = load i8, i8* %"$b2_tag_2568", align 1 + switch i8 %"$b2_tag_2569", label %"$empty_default_2570" [ + i8 0, label %"$True_2571" + i8 1, label %"$False_2581" + ], !dbg !290 + +"$True_2571": ; preds = %"$have_gas_2565" + %"$b2_2572" = bitcast %TName_Bool* %1 to %CName_True* + %"$gasrem_2573" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2574" = icmp ugt i64 1, %"$gasrem_2573" + br i1 %"$gascmp_2574", label %"$out_of_gas_2575", label %"$have_gas_2576" + +"$out_of_gas_2575": ; preds = %"$True_2571" + call void @_out_of_gas() + br label %"$have_gas_2576" + +"$have_gas_2576": ; preds = %"$out_of_gas_2575", %"$True_2571" + %"$consume_2577" = sub i64 %"$gasrem_2573", 1 + store i64 %"$consume_2577", i64* @_gasrem, align 8 + %"$adtval_2578_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_2578_salloc" = call i8* @_salloc(i8* %"$adtval_2578_load", i64 1) + %"$adtval_2578" = bitcast i8* %"$adtval_2578_salloc" to %CName_True* + %"$adtgep_2579" = getelementptr inbounds %CName_True, %CName_True* %"$adtval_2578", i32 0, i32 0 + store i8 0, i8* %"$adtgep_2579", align 1 + %"$adtptr_2580" = bitcast %CName_True* %"$adtval_2578" to %TName_Bool* + store %TName_Bool* %"$adtptr_2580", %TName_Bool** %"$retval_298", align 8, !dbg !293 + br label %"$matchsucc_2567" + +"$False_2581": ; preds = %"$have_gas_2565" + %"$b2_2582" = bitcast %TName_Bool* %1 to %CName_False* %"$gasrem_2583" = load i64, i64* @_gasrem, align 8 %"$gascmp_2584" = icmp ugt i64 1, %"$gasrem_2583" br i1 %"$gascmp_2584", label %"$out_of_gas_2585", label %"$have_gas_2586" -"$out_of_gas_2585": ; preds = %entry +"$out_of_gas_2585": ; preds = %"$False_2581" call void @_out_of_gas() br label %"$have_gas_2586" -"$have_gas_2586": ; preds = %"$out_of_gas_2585", %entry +"$have_gas_2586": ; preds = %"$out_of_gas_2585", %"$False_2581" %"$consume_2587" = sub i64 %"$gasrem_2583", 1 store i64 %"$consume_2587", i64* @_gasrem, align 8 - %"$$fundef_293_envp_2588_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_293_envp_2588_salloc" = call i8* @_salloc(i8* %"$$fundef_293_envp_2588_load", i64 20) - %"$$fundef_293_envp_2588" = bitcast i8* %"$$fundef_293_envp_2588_salloc" to %"$$fundef_293_env_593"* - %"$$fundef_293_env_voidp_2590" = bitcast %"$$fundef_293_env_593"* %"$$fundef_293_envp_2588" to i8* - %"$$fundef_293_cloval_2591" = insertvalue { i8* (i8*, %TName_Bool*)*, i8* } { i8* (i8*, %TName_Bool*)* bitcast (i8* (%"$$fundef_293_env_593"*, %TName_Bool*)* @"$fundef_293" to i8* (i8*, %TName_Bool*)*), i8* undef }, i8* %"$$fundef_293_env_voidp_2590", 1 - %"$$fundef_293_env_address_2592" = getelementptr inbounds %"$$fundef_293_env_593", %"$$fundef_293_env_593"* %"$$fundef_293_envp_2588", i32 0, i32 0 - store [20 x i8] %address, [20 x i8]* %"$$fundef_293_env_address_2592", align 1 - store { i8* (i8*, %TName_Bool*)*, i8* } %"$$fundef_293_cloval_2591", { i8* (i8*, %TName_Bool*)*, i8* }* %"$retval_292", align 8, !dbg !153 - %"$$retval_292_2593" = load { i8* (i8*, %TName_Bool*)*, i8* }, { i8* (i8*, %TName_Bool*)*, i8* }* %"$retval_292", align 8 - ret { i8* (i8*, %TName_Bool*)*, i8* } %"$$retval_292_2593" -} - -define internal %TName_Bool* @"$fundef_297"(%"$$fundef_297_env_595"* %0, %TName_Bool* %1) !dbg !154 { -entry: - %"$$fundef_297_env_b1_2508" = getelementptr inbounds %"$$fundef_297_env_595", %"$$fundef_297_env_595"* %0, i32 0, i32 0 - %"$b1_envload_2509" = load %TName_Bool*, %TName_Bool** %"$$fundef_297_env_b1_2508", align 8 - %b1 = alloca %TName_Bool*, align 8 - store %TName_Bool* %"$b1_envload_2509", %TName_Bool** %b1, align 8 - %"$retval_298" = alloca %TName_Bool*, align 8 - %"$gasrem_2510" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2511" = icmp ugt i64 2, %"$gasrem_2510" - br i1 %"$gascmp_2511", label %"$out_of_gas_2512", label %"$have_gas_2513" - -"$out_of_gas_2512": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_2513" - -"$have_gas_2513": ; preds = %"$out_of_gas_2512", %entry - %"$consume_2514" = sub i64 %"$gasrem_2510", 2 - store i64 %"$consume_2514", i64* @_gasrem, align 8 - %"$b1_2516" = load %TName_Bool*, %TName_Bool** %b1, align 8 - %"$b1_tag_2517" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$b1_2516", i32 0, i32 0 - %"$b1_tag_2518" = load i8, i8* %"$b1_tag_2517", align 1 - switch i8 %"$b1_tag_2518", label %"$empty_default_2519" [ - i8 0, label %"$True_2520" - i8 1, label %"$False_2551" - ], !dbg !155 - -"$True_2520": ; preds = %"$have_gas_2513" - %"$b1_2521" = bitcast %TName_Bool* %"$b1_2516" to %CName_True* - %"$gasrem_2522" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2523" = icmp ugt i64 2, %"$gasrem_2522" - br i1 %"$gascmp_2523", label %"$out_of_gas_2524", label %"$have_gas_2525" - -"$out_of_gas_2524": ; preds = %"$True_2520" - call void @_out_of_gas() - br label %"$have_gas_2525" - -"$have_gas_2525": ; preds = %"$out_of_gas_2524", %"$True_2520" - %"$consume_2526" = sub i64 %"$gasrem_2522", 2 - store i64 %"$consume_2526", i64* @_gasrem, align 8 - %"$b2_tag_2528" = getelementptr inbounds %TName_Bool, %TName_Bool* %1, i32 0, i32 0 - %"$b2_tag_2529" = load i8, i8* %"$b2_tag_2528", align 1 - switch i8 %"$b2_tag_2529", label %"$empty_default_2530" [ - i8 0, label %"$True_2531" - i8 1, label %"$False_2541" - ], !dbg !156 - -"$True_2531": ; preds = %"$have_gas_2525" - %"$b2_2532" = bitcast %TName_Bool* %1 to %CName_True* - %"$gasrem_2533" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2534" = icmp ugt i64 1, %"$gasrem_2533" - br i1 %"$gascmp_2534", label %"$out_of_gas_2535", label %"$have_gas_2536" - -"$out_of_gas_2535": ; preds = %"$True_2531" - call void @_out_of_gas() - br label %"$have_gas_2536" - -"$have_gas_2536": ; preds = %"$out_of_gas_2535", %"$True_2531" - %"$consume_2537" = sub i64 %"$gasrem_2533", 1 - store i64 %"$consume_2537", i64* @_gasrem, align 8 - %"$adtval_2538_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_2538_salloc" = call i8* @_salloc(i8* %"$adtval_2538_load", i64 1) - %"$adtval_2538" = bitcast i8* %"$adtval_2538_salloc" to %CName_True* - %"$adtgep_2539" = getelementptr inbounds %CName_True, %CName_True* %"$adtval_2538", i32 0, i32 0 - store i8 0, i8* %"$adtgep_2539", align 1 - %"$adtptr_2540" = bitcast %CName_True* %"$adtval_2538" to %TName_Bool* - store %TName_Bool* %"$adtptr_2540", %TName_Bool** %"$retval_298", align 8, !dbg !159 - br label %"$matchsucc_2527" - -"$False_2541": ; preds = %"$have_gas_2525" - %"$b2_2542" = bitcast %TName_Bool* %1 to %CName_False* - %"$gasrem_2543" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2544" = icmp ugt i64 1, %"$gasrem_2543" - br i1 %"$gascmp_2544", label %"$out_of_gas_2545", label %"$have_gas_2546" - -"$out_of_gas_2545": ; preds = %"$False_2541" - call void @_out_of_gas() - br label %"$have_gas_2546" - -"$have_gas_2546": ; preds = %"$out_of_gas_2545", %"$False_2541" - %"$consume_2547" = sub i64 %"$gasrem_2543", 1 - store i64 %"$consume_2547", i64* @_gasrem, align 8 - %"$adtval_2548_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_2548_salloc" = call i8* @_salloc(i8* %"$adtval_2548_load", i64 1) - %"$adtval_2548" = bitcast i8* %"$adtval_2548_salloc" to %CName_False* - %"$adtgep_2549" = getelementptr inbounds %CName_False, %CName_False* %"$adtval_2548", i32 0, i32 0 - store i8 1, i8* %"$adtgep_2549", align 1 - %"$adtptr_2550" = bitcast %CName_False* %"$adtval_2548" to %TName_Bool* - store %TName_Bool* %"$adtptr_2550", %TName_Bool** %"$retval_298", align 8, !dbg !162 - br label %"$matchsucc_2527" - -"$empty_default_2530": ; preds = %"$have_gas_2525" - br label %"$matchsucc_2527" - -"$matchsucc_2527": ; preds = %"$have_gas_2546", %"$have_gas_2536", %"$empty_default_2530" - br label %"$matchsucc_2515" - -"$False_2551": ; preds = %"$have_gas_2513" - %"$b1_2552" = bitcast %TName_Bool* %"$b1_2516" to %CName_False* - %"$gasrem_2553" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2554" = icmp ugt i64 2, %"$gasrem_2553" - br i1 %"$gascmp_2554", label %"$out_of_gas_2555", label %"$have_gas_2556" - -"$out_of_gas_2555": ; preds = %"$False_2551" - call void @_out_of_gas() - br label %"$have_gas_2556" - -"$have_gas_2556": ; preds = %"$out_of_gas_2555", %"$False_2551" - %"$consume_2557" = sub i64 %"$gasrem_2553", 2 - store i64 %"$consume_2557", i64* @_gasrem, align 8 - %"$b2_tag_2559" = getelementptr inbounds %TName_Bool, %TName_Bool* %1, i32 0, i32 0 - %"$b2_tag_2560" = load i8, i8* %"$b2_tag_2559", align 1 - switch i8 %"$b2_tag_2560", label %"$empty_default_2561" [ - i8 0, label %"$True_2562" - i8 1, label %"$False_2572" - ], !dbg !164 - -"$True_2562": ; preds = %"$have_gas_2556" - %"$b2_2563" = bitcast %TName_Bool* %1 to %CName_True* - %"$gasrem_2564" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2565" = icmp ugt i64 1, %"$gasrem_2564" - br i1 %"$gascmp_2565", label %"$out_of_gas_2566", label %"$have_gas_2567" - -"$out_of_gas_2566": ; preds = %"$True_2562" - call void @_out_of_gas() - br label %"$have_gas_2567" - -"$have_gas_2567": ; preds = %"$out_of_gas_2566", %"$True_2562" - %"$consume_2568" = sub i64 %"$gasrem_2564", 1 - store i64 %"$consume_2568", i64* @_gasrem, align 8 - %"$adtval_2569_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_2569_salloc" = call i8* @_salloc(i8* %"$adtval_2569_load", i64 1) - %"$adtval_2569" = bitcast i8* %"$adtval_2569_salloc" to %CName_False* - %"$adtgep_2570" = getelementptr inbounds %CName_False, %CName_False* %"$adtval_2569", i32 0, i32 0 - store i8 1, i8* %"$adtgep_2570", align 1 - %"$adtptr_2571" = bitcast %CName_False* %"$adtval_2569" to %TName_Bool* - store %TName_Bool* %"$adtptr_2571", %TName_Bool** %"$retval_298", align 8, !dbg !166 - br label %"$matchsucc_2558" - -"$False_2572": ; preds = %"$have_gas_2556" - %"$b2_2573" = bitcast %TName_Bool* %1 to %CName_False* - %"$gasrem_2574" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2575" = icmp ugt i64 1, %"$gasrem_2574" - br i1 %"$gascmp_2575", label %"$out_of_gas_2576", label %"$have_gas_2577" - -"$out_of_gas_2576": ; preds = %"$False_2572" - call void @_out_of_gas() - br label %"$have_gas_2577" - -"$have_gas_2577": ; preds = %"$out_of_gas_2576", %"$False_2572" - %"$consume_2578" = sub i64 %"$gasrem_2574", 1 - store i64 %"$consume_2578", i64* @_gasrem, align 8 - %"$adtval_2579_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_2579_salloc" = call i8* @_salloc(i8* %"$adtval_2579_load", i64 1) - %"$adtval_2579" = bitcast i8* %"$adtval_2579_salloc" to %CName_True* - %"$adtgep_2580" = getelementptr inbounds %CName_True, %CName_True* %"$adtval_2579", i32 0, i32 0 - store i8 0, i8* %"$adtgep_2580", align 1 - %"$adtptr_2581" = bitcast %CName_True* %"$adtval_2579" to %TName_Bool* - store %TName_Bool* %"$adtptr_2581", %TName_Bool** %"$retval_298", align 8, !dbg !169 - br label %"$matchsucc_2558" - -"$empty_default_2561": ; preds = %"$have_gas_2556" - br label %"$matchsucc_2558" - -"$matchsucc_2558": ; preds = %"$have_gas_2577", %"$have_gas_2567", %"$empty_default_2561" - br label %"$matchsucc_2515" - -"$empty_default_2519": ; preds = %"$have_gas_2513" - br label %"$matchsucc_2515" - -"$matchsucc_2515": ; preds = %"$matchsucc_2558", %"$matchsucc_2527", %"$empty_default_2519" - %"$$retval_298_2582" = load %TName_Bool*, %TName_Bool** %"$retval_298", align 8 - ret %TName_Bool* %"$$retval_298_2582" -} - -define internal { %TName_Bool* (i8*, %TName_Bool*)*, i8* } @"$fundef_295"(%"$$fundef_295_env_596"* %0, %TName_Bool* %1) !dbg !171 { -entry: + %"$adtval_2588_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_2588_salloc" = call i8* @_salloc(i8* %"$adtval_2588_load", i64 1) + %"$adtval_2588" = bitcast i8* %"$adtval_2588_salloc" to %CName_False* + %"$adtgep_2589" = getelementptr inbounds %CName_False, %CName_False* %"$adtval_2588", i32 0, i32 0 + store i8 1, i8* %"$adtgep_2589", align 1 + %"$adtptr_2590" = bitcast %CName_False* %"$adtval_2588" to %TName_Bool* + store %TName_Bool* %"$adtptr_2590", %TName_Bool** %"$retval_298", align 8, !dbg !296 + br label %"$matchsucc_2567" + +"$empty_default_2570": ; preds = %"$have_gas_2565" + br label %"$matchsucc_2567" + +"$matchsucc_2567": ; preds = %"$have_gas_2586", %"$have_gas_2576", %"$empty_default_2570" + br label %"$matchsucc_2555" + +"$False_2591": ; preds = %"$have_gas_2553" + %"$b1_2592" = bitcast %TName_Bool* %"$b1_2556" to %CName_False* + %"$gasrem_2593" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2594" = icmp ugt i64 2, %"$gasrem_2593" + br i1 %"$gascmp_2594", label %"$out_of_gas_2595", label %"$have_gas_2596" + +"$out_of_gas_2595": ; preds = %"$False_2591" + call void @_out_of_gas() + br label %"$have_gas_2596" + +"$have_gas_2596": ; preds = %"$out_of_gas_2595", %"$False_2591" + %"$consume_2597" = sub i64 %"$gasrem_2593", 2 + store i64 %"$consume_2597", i64* @_gasrem, align 8 + %"$b2_tag_2599" = getelementptr inbounds %TName_Bool, %TName_Bool* %1, i32 0, i32 0 + %"$b2_tag_2600" = load i8, i8* %"$b2_tag_2599", align 1 + switch i8 %"$b2_tag_2600", label %"$empty_default_2601" [ + i8 0, label %"$True_2602" + i8 1, label %"$False_2612" + ], !dbg !298 + +"$True_2602": ; preds = %"$have_gas_2596" + %"$b2_2603" = bitcast %TName_Bool* %1 to %CName_True* + %"$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" + +"$out_of_gas_2606": ; preds = %"$True_2602" + call void @_out_of_gas() + br label %"$have_gas_2607" + +"$have_gas_2607": ; preds = %"$out_of_gas_2606", %"$True_2602" + %"$consume_2608" = sub i64 %"$gasrem_2604", 1 + store i64 %"$consume_2608", i64* @_gasrem, align 8 + %"$adtval_2609_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_2609_salloc" = call i8* @_salloc(i8* %"$adtval_2609_load", i64 1) + %"$adtval_2609" = bitcast i8* %"$adtval_2609_salloc" to %CName_False* + %"$adtgep_2610" = getelementptr inbounds %CName_False, %CName_False* %"$adtval_2609", i32 0, i32 0 + store i8 1, i8* %"$adtgep_2610", align 1 + %"$adtptr_2611" = bitcast %CName_False* %"$adtval_2609" to %TName_Bool* + store %TName_Bool* %"$adtptr_2611", %TName_Bool** %"$retval_298", align 8, !dbg !300 + br label %"$matchsucc_2598" + +"$False_2612": ; preds = %"$have_gas_2596" + %"$b2_2613" = bitcast %TName_Bool* %1 to %CName_False* + %"$gasrem_2614" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2615" = icmp ugt i64 1, %"$gasrem_2614" + br i1 %"$gascmp_2615", label %"$out_of_gas_2616", label %"$have_gas_2617" + +"$out_of_gas_2616": ; preds = %"$False_2612" + call void @_out_of_gas() + br label %"$have_gas_2617" + +"$have_gas_2617": ; preds = %"$out_of_gas_2616", %"$False_2612" + %"$consume_2618" = sub i64 %"$gasrem_2614", 1 + store i64 %"$consume_2618", i64* @_gasrem, align 8 + %"$adtval_2619_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_2619_salloc" = call i8* @_salloc(i8* %"$adtval_2619_load", i64 1) + %"$adtval_2619" = bitcast i8* %"$adtval_2619_salloc" to %CName_True* + %"$adtgep_2620" = getelementptr inbounds %CName_True, %CName_True* %"$adtval_2619", i32 0, i32 0 + store i8 0, i8* %"$adtgep_2620", align 1 + %"$adtptr_2621" = bitcast %CName_True* %"$adtval_2619" to %TName_Bool* + store %TName_Bool* %"$adtptr_2621", %TName_Bool** %"$retval_298", align 8, !dbg !303 + br label %"$matchsucc_2598" + +"$empty_default_2601": ; preds = %"$have_gas_2596" + br label %"$matchsucc_2598" + +"$matchsucc_2598": ; preds = %"$have_gas_2617", %"$have_gas_2607", %"$empty_default_2601" + br label %"$matchsucc_2555" + +"$empty_default_2559": ; preds = %"$have_gas_2553" + br label %"$matchsucc_2555" + +"$matchsucc_2555": ; preds = %"$matchsucc_2598", %"$matchsucc_2567", %"$empty_default_2559" + %"$$retval_298_2622" = load %TName_Bool*, %TName_Bool** %"$retval_298", align 8 + ret %TName_Bool* %"$$retval_298_2622" +} + +define internal { %TName_Bool* (i8*, %TName_Bool*)*, i8* } @"$fundef_295"(%"$$fundef_295_env_596"* %0, %TName_Bool* %1) !dbg !305 { +entry: + %"$b1_2547" = alloca %TName_Bool*, align 8 + store %TName_Bool* %1, %TName_Bool** %"$b1_2547", align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$b1_2547", metadata !306, metadata !DIExpression()), !dbg !307 %"$retval_296" = alloca { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, align 8 - %"$gasrem_2497" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2498" = icmp ugt i64 1, %"$gasrem_2497" - br i1 %"$gascmp_2498", label %"$out_of_gas_2499", label %"$have_gas_2500" - -"$out_of_gas_2499": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_2500" - -"$have_gas_2500": ; preds = %"$out_of_gas_2499", %entry - %"$consume_2501" = sub i64 %"$gasrem_2497", 1 - store i64 %"$consume_2501", i64* @_gasrem, align 8 - %"$$fundef_297_envp_2502_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_297_envp_2502_salloc" = call i8* @_salloc(i8* %"$$fundef_297_envp_2502_load", i64 8) - %"$$fundef_297_envp_2502" = bitcast i8* %"$$fundef_297_envp_2502_salloc" to %"$$fundef_297_env_595"* - %"$$fundef_297_env_voidp_2504" = bitcast %"$$fundef_297_env_595"* %"$$fundef_297_envp_2502" to i8* - %"$$fundef_297_cloval_2505" = insertvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } { %TName_Bool* (i8*, %TName_Bool*)* bitcast (%TName_Bool* (%"$$fundef_297_env_595"*, %TName_Bool*)* @"$fundef_297" to %TName_Bool* (i8*, %TName_Bool*)*), i8* undef }, i8* %"$$fundef_297_env_voidp_2504", 1 - %"$$fundef_297_env_b1_2506" = getelementptr inbounds %"$$fundef_297_env_595", %"$$fundef_297_env_595"* %"$$fundef_297_envp_2502", i32 0, i32 0 - store %TName_Bool* %1, %TName_Bool** %"$$fundef_297_env_b1_2506", align 8 - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$fundef_297_cloval_2505", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$retval_296", align 8, !dbg !172 - %"$$retval_296_2507" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$retval_296", align 8 - ret { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$retval_296_2507" -} - -define internal %TName_Bool* @"$fundef_323"(%"$$fundef_323_env_597"* %0, [20 x i8]* %1) !dbg !173 { -entry: + %"$gasrem_2536" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2537" = icmp ugt i64 1, %"$gasrem_2536" + br i1 %"$gascmp_2537", label %"$out_of_gas_2538", label %"$have_gas_2539" + +"$out_of_gas_2538": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_2539" + +"$have_gas_2539": ; preds = %"$out_of_gas_2538", %entry + %"$consume_2540" = sub i64 %"$gasrem_2536", 1 + store i64 %"$consume_2540", i64* @_gasrem, align 8 + %"$$fundef_297_envp_2541_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_297_envp_2541_salloc" = call i8* @_salloc(i8* %"$$fundef_297_envp_2541_load", i64 8) + %"$$fundef_297_envp_2541" = bitcast i8* %"$$fundef_297_envp_2541_salloc" to %"$$fundef_297_env_595"* + %"$$fundef_297_env_voidp_2543" = bitcast %"$$fundef_297_env_595"* %"$$fundef_297_envp_2541" to i8* + %"$$fundef_297_cloval_2544" = insertvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } { %TName_Bool* (i8*, %TName_Bool*)* bitcast (%TName_Bool* (%"$$fundef_297_env_595"*, %TName_Bool*)* @"$fundef_297" to %TName_Bool* (i8*, %TName_Bool*)*), i8* undef }, i8* %"$$fundef_297_env_voidp_2543", 1 + %"$$fundef_297_env_b1_2545" = getelementptr inbounds %"$$fundef_297_env_595", %"$$fundef_297_env_595"* %"$$fundef_297_envp_2541", i32 0, i32 0 + store %TName_Bool* %1, %TName_Bool** %"$$fundef_297_env_b1_2545", align 8 + store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$fundef_297_cloval_2544", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$retval_296", align 8, !dbg !308 + %"$$retval_296_2546" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$retval_296", align 8 + ret { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$retval_296_2546" +} + +define internal %TName_Bool* @"$fundef_323"(%"$$fundef_323_env_597"* %0, [20 x i8]* %1) !dbg !309 { +entry: + %"$v_2535" = alloca [20 x i8]*, align 8 + store [20 x i8]* %1, [20 x i8]** %"$v_2535", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$v_2535", metadata !310, metadata !DIExpression()), !dbg !311 %v = load [20 x i8], [20 x i8]* %1, align 1 - %"$$fundef_323_env_$BoolUtils.negb_11_2463" = getelementptr inbounds %"$$fundef_323_env_597", %"$$fundef_323_env_597"* %0, i32 0, i32 0 - %"$$BoolUtils.negb_11_envload_2464" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$$fundef_323_env_$BoolUtils.negb_11_2463", align 8 + %"$$fundef_323_env_$BoolUtils.negb_11_2501" = getelementptr inbounds %"$$fundef_323_env_597", %"$$fundef_323_env_597"* %0, i32 0, i32 0 + %"$$BoolUtils.negb_11_envload_2502" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$$fundef_323_env_$BoolUtils.negb_11_2501", align 8 %"$BoolUtils.negb_11" = alloca { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, align 8 - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.negb_11_envload_2464", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.negb_11", align 8 - %"$$fundef_323_env_bs_2465" = getelementptr inbounds %"$$fundef_323_env_597", %"$$fundef_323_env_597"* %0, i32 0, i32 1 - %"$bs_envload_2466" = load [20 x i8], [20 x i8]* %"$$fundef_323_env_bs_2465", align 1 + store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.negb_11_envload_2502", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.negb_11", align 8 + %"$$fundef_323_env_bs_2503" = getelementptr inbounds %"$$fundef_323_env_597", %"$$fundef_323_env_597"* %0, i32 0, i32 1 + %"$bs_envload_2504" = load [20 x i8], [20 x i8]* %"$$fundef_323_env_bs_2503", align 1 %bs = alloca [20 x i8], align 1 - store [20 x i8] %"$bs_envload_2466", [20 x i8]* %bs, align 1 + store [20 x i8] %"$bs_envload_2504", [20 x i8]* %bs, align 1 %"$retval_324" = alloca %TName_Bool*, align 8 - %"$gasrem_2467" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2468" = icmp ugt i64 1, %"$gasrem_2467" - br i1 %"$gascmp_2468", label %"$out_of_gas_2469", label %"$have_gas_2470" + call void @llvm.dbg.declare(metadata %TName_Bool** %"$retval_324", metadata !312, metadata !DIExpression()), !dbg !313 + %"$gasrem_2505" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2506" = icmp ugt i64 1, %"$gasrem_2505" + br i1 %"$gascmp_2506", label %"$out_of_gas_2507", label %"$have_gas_2508" -"$out_of_gas_2469": ; preds = %entry +"$out_of_gas_2507": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_2470" + br label %"$have_gas_2508" -"$have_gas_2470": ; preds = %"$out_of_gas_2469", %entry - %"$consume_2471" = sub i64 %"$gasrem_2467", 1 - store i64 %"$consume_2471", i64* @_gasrem, align 8 +"$have_gas_2508": ; preds = %"$out_of_gas_2507", %entry + %"$consume_2509" = sub i64 %"$gasrem_2505", 1 + store i64 %"$consume_2509", i64* @_gasrem, align 8 %b = alloca %TName_Bool*, align 8 - %"$gasrem_2472" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2473" = icmp ugt i64 20, %"$gasrem_2472" - br i1 %"$gascmp_2473", label %"$out_of_gas_2474", label %"$have_gas_2475" - -"$out_of_gas_2474": ; preds = %"$have_gas_2470" - call void @_out_of_gas() - br label %"$have_gas_2475" - -"$have_gas_2475": ; preds = %"$out_of_gas_2474", %"$have_gas_2470" - %"$consume_2476" = sub i64 %"$gasrem_2472", 20 - store i64 %"$consume_2476", i64* @_gasrem, align 8 - %"$execptr_load_2477" = load i8*, i8** @_execptr, align 8 - %"$eq_v_2478" = alloca [20 x i8], align 1 - store [20 x i8] %v, [20 x i8]* %"$eq_v_2478", align 1 - %"$$eq_v_2478_2479" = bitcast [20 x i8]* %"$eq_v_2478" to i8* - %"$eq_bs_2480" = alloca [20 x i8], align 1 - %"$bs_2481" = load [20 x i8], [20 x i8]* %bs, align 1 - store [20 x i8] %"$bs_2481", [20 x i8]* %"$eq_bs_2480", align 1 - %"$$eq_bs_2480_2482" = bitcast [20 x i8]* %"$eq_bs_2480" to i8* - %"$eq_call_2483" = call %TName_Bool* @_eq_ByStrX(i8* %"$execptr_load_2477", i32 20, i8* %"$$eq_v_2478_2479", i8* %"$$eq_bs_2480_2482"), !dbg !174 - store %TName_Bool* %"$eq_call_2483", %TName_Bool** %b, align 8, !dbg !174 - %"$gasrem_2485" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2486" = icmp ugt i64 1, %"$gasrem_2485" - br i1 %"$gascmp_2486", label %"$out_of_gas_2487", label %"$have_gas_2488" - -"$out_of_gas_2487": ; preds = %"$have_gas_2475" - call void @_out_of_gas() - br label %"$have_gas_2488" - -"$have_gas_2488": ; preds = %"$out_of_gas_2487", %"$have_gas_2475" - %"$consume_2489" = sub i64 %"$gasrem_2485", 1 - store i64 %"$consume_2489", i64* @_gasrem, align 8 - %"$$BoolUtils.negb_11_73" = alloca %TName_Bool*, align 8 - %"$$BoolUtils.negb_11_2490" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.negb_11", align 8 - %"$$BoolUtils.negb_11_fptr_2491" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.negb_11_2490", 0 - %"$$BoolUtils.negb_11_envptr_2492" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.negb_11_2490", 1 - %"$b_2493" = load %TName_Bool*, %TName_Bool** %b, align 8 - %"$$BoolUtils.negb_11_call_2494" = call %TName_Bool* %"$$BoolUtils.negb_11_fptr_2491"(i8* %"$$BoolUtils.negb_11_envptr_2492", %TName_Bool* %"$b_2493"), !dbg !175 - store %TName_Bool* %"$$BoolUtils.negb_11_call_2494", %TName_Bool** %"$$BoolUtils.negb_11_73", align 8, !dbg !175 - %"$$$BoolUtils.negb_11_73_2495" = load %TName_Bool*, %TName_Bool** %"$$BoolUtils.negb_11_73", align 8 - store %TName_Bool* %"$$$BoolUtils.negb_11_73_2495", %TName_Bool** %"$retval_324", align 8, !dbg !175 - %"$$retval_324_2496" = load %TName_Bool*, %TName_Bool** %"$retval_324", align 8 - ret %TName_Bool* %"$$retval_324_2496" -} + call void @llvm.dbg.declare(metadata %TName_Bool** %b, metadata !314, metadata !DIExpression()), !dbg !315 + %"$gasrem_2510" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2511" = icmp ugt i64 20, %"$gasrem_2510" + br i1 %"$gascmp_2511", label %"$out_of_gas_2512", label %"$have_gas_2513" -define internal %TName_List_ByStr20* @"$fundef_321"(%"$$fundef_321_env_598"* %0, [20 x i8]* %1) !dbg !176 { -entry: +"$out_of_gas_2512": ; preds = %"$have_gas_2508" + call void @_out_of_gas() + br label %"$have_gas_2513" + +"$have_gas_2513": ; preds = %"$out_of_gas_2512", %"$have_gas_2508" + %"$consume_2514" = sub i64 %"$gasrem_2510", 20 + store i64 %"$consume_2514", i64* @_gasrem, align 8 + %"$execptr_load_2515" = load i8*, i8** @_execptr, align 8 + %"$eq_v_2516" = alloca [20 x i8], align 1 + store [20 x i8] %v, [20 x i8]* %"$eq_v_2516", align 1 + %"$$eq_v_2516_2517" = bitcast [20 x i8]* %"$eq_v_2516" to i8* + %"$eq_bs_2518" = alloca [20 x i8], align 1 + %"$bs_2519" = load [20 x i8], [20 x i8]* %bs, align 1 + store [20 x i8] %"$bs_2519", [20 x i8]* %"$eq_bs_2518", align 1 + %"$$eq_bs_2518_2520" = bitcast [20 x i8]* %"$eq_bs_2518" to i8* + %"$eq_call_2521" = call %TName_Bool* @_eq_ByStrX(i8* %"$execptr_load_2515", i32 20, i8* %"$$eq_v_2516_2517", i8* %"$$eq_bs_2518_2520"), !dbg !316 + store %TName_Bool* %"$eq_call_2521", %TName_Bool** %b, align 8, !dbg !316 + %"$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_2525": ; preds = %"$have_gas_2513" + call void @_out_of_gas() + br label %"$have_gas_2526" + +"$have_gas_2526": ; preds = %"$out_of_gas_2525", %"$have_gas_2513" + %"$consume_2527" = sub i64 %"$gasrem_2523", 1 + store i64 %"$consume_2527", i64* @_gasrem, align 8 + %"$$BoolUtils.negb_11_73" = alloca %TName_Bool*, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$$BoolUtils.negb_11_73", metadata !317, metadata !DIExpression()), !dbg !318 + %"$$BoolUtils.negb_11_2528" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.negb_11", align 8 + %"$$BoolUtils.negb_11_fptr_2529" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.negb_11_2528", 0 + %"$$BoolUtils.negb_11_envptr_2530" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.negb_11_2528", 1 + %"$b_2531" = load %TName_Bool*, %TName_Bool** %b, align 8 + %"$$BoolUtils.negb_11_call_2532" = call %TName_Bool* %"$$BoolUtils.negb_11_fptr_2529"(i8* %"$$BoolUtils.negb_11_envptr_2530", %TName_Bool* %"$b_2531"), !dbg !318 + store %TName_Bool* %"$$BoolUtils.negb_11_call_2532", %TName_Bool** %"$$BoolUtils.negb_11_73", align 8, !dbg !318 + %"$$$BoolUtils.negb_11_73_2533" = load %TName_Bool*, %TName_Bool** %"$$BoolUtils.negb_11_73", align 8 + store %TName_Bool* %"$$$BoolUtils.negb_11_73_2533", %TName_Bool** %"$retval_324", align 8, !dbg !318 + %"$$retval_324_2534" = load %TName_Bool*, %TName_Bool** %"$retval_324", align 8 + ret %TName_Bool* %"$$retval_324_2534" +} + +define internal %TName_List_ByStr20* @"$fundef_321"(%"$$fundef_321_env_598"* %0, [20 x i8]* %1) !dbg !319 { +entry: + %"$bs_2500" = alloca [20 x i8]*, align 8 + store [20 x i8]* %1, [20 x i8]** %"$bs_2500", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$bs_2500", metadata !320, metadata !DIExpression()), !dbg !321 %bs = load [20 x i8], [20 x i8]* %1, align 1 - %"$$fundef_321_env_$BoolUtils.negb_11_2406" = getelementptr inbounds %"$$fundef_321_env_598", %"$$fundef_321_env_598"* %0, i32 0, i32 0 - %"$$BoolUtils.negb_11_envload_2407" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$$fundef_321_env_$BoolUtils.negb_11_2406", align 8 + %"$$fundef_321_env_$BoolUtils.negb_11_2443" = getelementptr inbounds %"$$fundef_321_env_598", %"$$fundef_321_env_598"* %0, i32 0, i32 0 + %"$$BoolUtils.negb_11_envload_2444" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$$fundef_321_env_$BoolUtils.negb_11_2443", align 8 %"$BoolUtils.negb_11" = alloca { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, align 8 - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.negb_11_envload_2407", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.negb_11", align 8 - %"$$fundef_321_env_ListUtils.list_filter_2408" = getelementptr inbounds %"$$fundef_321_env_598", %"$$fundef_321_env_598"* %0, i32 0, i32 1 - %"$ListUtils.list_filter_envload_2409" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_321_env_ListUtils.list_filter_2408", align 8 + store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.negb_11_envload_2444", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.negb_11", align 8 + %"$$fundef_321_env_ListUtils.list_filter_2445" = getelementptr inbounds %"$$fundef_321_env_598", %"$$fundef_321_env_598"* %0, i32 0, i32 1 + %"$ListUtils.list_filter_envload_2446" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_321_env_ListUtils.list_filter_2445", align 8 %ListUtils.list_filter = alloca { i8*, i8* }*, align 8 - store { i8*, i8* }* %"$ListUtils.list_filter_envload_2409", { i8*, i8* }** %ListUtils.list_filter, align 8 - %"$$fundef_321_env_list_2410" = getelementptr inbounds %"$$fundef_321_env_598", %"$$fundef_321_env_598"* %0, i32 0, i32 2 - %"$list_envload_2411" = load %TName_List_ByStr20*, %TName_List_ByStr20** %"$$fundef_321_env_list_2410", align 8 + store { i8*, i8* }* %"$ListUtils.list_filter_envload_2446", { i8*, i8* }** %ListUtils.list_filter, align 8 + %"$$fundef_321_env_list_2447" = getelementptr inbounds %"$$fundef_321_env_598", %"$$fundef_321_env_598"* %0, i32 0, i32 2 + %"$list_envload_2448" = load %TName_List_ByStr20*, %TName_List_ByStr20** %"$$fundef_321_env_list_2447", align 8 %list = alloca %TName_List_ByStr20*, align 8 - store %TName_List_ByStr20* %"$list_envload_2411", %TName_List_ByStr20** %list, align 8 + store %TName_List_ByStr20* %"$list_envload_2448", %TName_List_ByStr20** %list, align 8 %"$retval_322" = alloca %TName_List_ByStr20*, align 8 - %"$gasrem_2412" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2413" = icmp ugt i64 1, %"$gasrem_2412" - br i1 %"$gascmp_2413", label %"$out_of_gas_2414", label %"$have_gas_2415" + call void @llvm.dbg.declare(metadata %TName_List_ByStr20** %"$retval_322", metadata !322, metadata !DIExpression()), !dbg !323 + %"$gasrem_2449" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2450" = icmp ugt i64 1, %"$gasrem_2449" + br i1 %"$gascmp_2450", label %"$out_of_gas_2451", label %"$have_gas_2452" -"$out_of_gas_2414": ; preds = %entry +"$out_of_gas_2451": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_2415" + br label %"$have_gas_2452" -"$have_gas_2415": ; preds = %"$out_of_gas_2414", %entry - %"$consume_2416" = sub i64 %"$gasrem_2412", 1 - store i64 %"$consume_2416", i64* @_gasrem, align 8 +"$have_gas_2452": ; preds = %"$out_of_gas_2451", %entry + %"$consume_2453" = sub i64 %"$gasrem_2449", 1 + store i64 %"$consume_2453", 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_2417" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2418" = icmp ugt i64 1, %"$gasrem_2417" - br i1 %"$gascmp_2418", label %"$out_of_gas_2419", label %"$have_gas_2420" - -"$out_of_gas_2419": ; preds = %"$have_gas_2415" - call void @_out_of_gas() - br label %"$have_gas_2420" - -"$have_gas_2420": ; preds = %"$out_of_gas_2419", %"$have_gas_2415" - %"$consume_2421" = sub i64 %"$gasrem_2417", 1 - store i64 %"$consume_2421", i64* @_gasrem, align 8 - %"$ListUtils.list_filter_2422" = load { i8*, i8* }*, { i8*, i8* }** %ListUtils.list_filter, align 8 - %"$ListUtils.list_filter_2423" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$ListUtils.list_filter_2422", i32 0 - %"$ListUtils.list_filter_2424" = bitcast { i8*, i8* }* %"$ListUtils.list_filter_2423" to { { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*, i8* }* - %"$ListUtils.list_filter_2425" = 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_2424", align 8 - %"$ListUtils.list_filter_fptr_2426" = extractvalue { { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*, i8* } %"$ListUtils.list_filter_2425", 0 - %"$ListUtils.list_filter_envptr_2427" = extractvalue { { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*, i8* } %"$ListUtils.list_filter_2425", 1 - %"$ListUtils.list_filter_call_2428" = call { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } %"$ListUtils.list_filter_fptr_2426"(i8* %"$ListUtils.list_filter_envptr_2427"), !dbg !177 - store { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } %"$ListUtils.list_filter_call_2428", { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* }* %listByStr20Filter, align 8, !dbg !178 - %"$gasrem_2429" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2430" = icmp ugt i64 1, %"$gasrem_2429" - br i1 %"$gascmp_2430", label %"$out_of_gas_2431", label %"$have_gas_2432" - -"$out_of_gas_2431": ; preds = %"$have_gas_2420" - call void @_out_of_gas() - br label %"$have_gas_2432" - -"$have_gas_2432": ; preds = %"$out_of_gas_2431", %"$have_gas_2420" - %"$consume_2433" = sub i64 %"$gasrem_2429", 1 - store i64 %"$consume_2433", i64* @_gasrem, align 8 + %"$gasrem_2454" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2455" = icmp ugt i64 1, %"$gasrem_2454" + br i1 %"$gascmp_2455", label %"$out_of_gas_2456", label %"$have_gas_2457" + +"$out_of_gas_2456": ; preds = %"$have_gas_2452" + call void @_out_of_gas() + br label %"$have_gas_2457" + +"$have_gas_2457": ; preds = %"$out_of_gas_2456", %"$have_gas_2452" + %"$consume_2458" = sub i64 %"$gasrem_2454", 1 + store i64 %"$consume_2458", i64* @_gasrem, align 8 + %"$ListUtils.list_filter_2459" = load { i8*, i8* }*, { i8*, i8* }** %ListUtils.list_filter, align 8 + %"$ListUtils.list_filter_2460" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$ListUtils.list_filter_2459", i32 0 + %"$ListUtils.list_filter_2461" = bitcast { i8*, i8* }* %"$ListUtils.list_filter_2460" to { { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*, i8* }* + %"$ListUtils.list_filter_2462" = 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_2461", align 8 + %"$ListUtils.list_filter_fptr_2463" = extractvalue { { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*, i8* } %"$ListUtils.list_filter_2462", 0 + %"$ListUtils.list_filter_envptr_2464" = extractvalue { { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*, i8* } %"$ListUtils.list_filter_2462", 1 + %"$ListUtils.list_filter_call_2465" = call { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } %"$ListUtils.list_filter_fptr_2463"(i8* %"$ListUtils.list_filter_envptr_2464"), !dbg !324 + store { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } %"$ListUtils.list_filter_call_2465", { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* }* %listByStr20Filter, align 8, !dbg !325 + %"$gasrem_2466" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2467" = icmp ugt i64 1, %"$gasrem_2466" + br i1 %"$gascmp_2467", label %"$out_of_gas_2468", label %"$have_gas_2469" + +"$out_of_gas_2468": ; preds = %"$have_gas_2457" + call void @_out_of_gas() + br label %"$have_gas_2469" + +"$have_gas_2469": ; preds = %"$out_of_gas_2468", %"$have_gas_2457" + %"$consume_2470" = sub i64 %"$gasrem_2466", 1 + store i64 %"$consume_2470", i64* @_gasrem, align 8 %fn = alloca { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, align 8 - %"$gasrem_2434" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2435" = icmp ugt i64 1, %"$gasrem_2434" - br i1 %"$gascmp_2435", label %"$out_of_gas_2436", label %"$have_gas_2437" - -"$out_of_gas_2436": ; preds = %"$have_gas_2432" - call void @_out_of_gas() - br label %"$have_gas_2437" - -"$have_gas_2437": ; preds = %"$out_of_gas_2436", %"$have_gas_2432" - %"$consume_2438" = sub i64 %"$gasrem_2434", 1 - store i64 %"$consume_2438", i64* @_gasrem, align 8 - %"$$fundef_323_envp_2439_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_323_envp_2439_salloc" = call i8* @_salloc(i8* %"$$fundef_323_envp_2439_load", i64 40) - %"$$fundef_323_envp_2439" = bitcast i8* %"$$fundef_323_envp_2439_salloc" to %"$$fundef_323_env_597"* - %"$$fundef_323_env_voidp_2441" = bitcast %"$$fundef_323_env_597"* %"$$fundef_323_envp_2439" to i8* - %"$$fundef_323_cloval_2442" = insertvalue { %TName_Bool* (i8*, [20 x i8]*)*, i8* } { %TName_Bool* (i8*, [20 x i8]*)* bitcast (%TName_Bool* (%"$$fundef_323_env_597"*, [20 x i8]*)* @"$fundef_323" to %TName_Bool* (i8*, [20 x i8]*)*), i8* undef }, i8* %"$$fundef_323_env_voidp_2441", 1 - %"$$fundef_323_env_$BoolUtils.negb_11_2443" = getelementptr inbounds %"$$fundef_323_env_597", %"$$fundef_323_env_597"* %"$$fundef_323_envp_2439", i32 0, i32 0 - %"$$BoolUtils.negb_11_2444" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.negb_11", align 8 - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.negb_11_2444", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$$fundef_323_env_$BoolUtils.negb_11_2443", align 8 - %"$$fundef_323_env_bs_2445" = getelementptr inbounds %"$$fundef_323_env_597", %"$$fundef_323_env_597"* %"$$fundef_323_envp_2439", i32 0, i32 1 - store [20 x i8] %bs, [20 x i8]* %"$$fundef_323_env_bs_2445", align 1 - store { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$$fundef_323_cloval_2442", { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %fn, align 8, !dbg !179 - %"$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_2437" - call void @_out_of_gas() - br label %"$have_gas_2449" - -"$have_gas_2449": ; preds = %"$out_of_gas_2448", %"$have_gas_2437" - %"$consume_2450" = sub i64 %"$gasrem_2446", 1 - store i64 %"$consume_2450", i64* @_gasrem, align 8 + %"$gasrem_2471" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2472" = icmp ugt i64 1, %"$gasrem_2471" + br i1 %"$gascmp_2472", label %"$out_of_gas_2473", label %"$have_gas_2474" + +"$out_of_gas_2473": ; preds = %"$have_gas_2469" + call void @_out_of_gas() + br label %"$have_gas_2474" + +"$have_gas_2474": ; preds = %"$out_of_gas_2473", %"$have_gas_2469" + %"$consume_2475" = sub i64 %"$gasrem_2471", 1 + store i64 %"$consume_2475", i64* @_gasrem, align 8 + %"$$fundef_323_envp_2476_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_323_envp_2476_salloc" = call i8* @_salloc(i8* %"$$fundef_323_envp_2476_load", i64 40) + %"$$fundef_323_envp_2476" = bitcast i8* %"$$fundef_323_envp_2476_salloc" to %"$$fundef_323_env_597"* + %"$$fundef_323_env_voidp_2478" = bitcast %"$$fundef_323_env_597"* %"$$fundef_323_envp_2476" to i8* + %"$$fundef_323_cloval_2479" = insertvalue { %TName_Bool* (i8*, [20 x i8]*)*, i8* } { %TName_Bool* (i8*, [20 x i8]*)* bitcast (%TName_Bool* (%"$$fundef_323_env_597"*, [20 x i8]*)* @"$fundef_323" to %TName_Bool* (i8*, [20 x i8]*)*), i8* undef }, i8* %"$$fundef_323_env_voidp_2478", 1 + %"$$fundef_323_env_$BoolUtils.negb_11_2480" = getelementptr inbounds %"$$fundef_323_env_597", %"$$fundef_323_env_597"* %"$$fundef_323_envp_2476", i32 0, i32 0 + %"$$BoolUtils.negb_11_2481" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.negb_11", align 8 + store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.negb_11_2481", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$$fundef_323_env_$BoolUtils.negb_11_2480", align 8 + %"$$fundef_323_env_bs_2482" = getelementptr inbounds %"$$fundef_323_env_597", %"$$fundef_323_env_597"* %"$$fundef_323_envp_2476", i32 0, i32 1 + store [20 x i8] %bs, [20 x i8]* %"$$fundef_323_env_bs_2482", align 1 + store { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$$fundef_323_cloval_2479", { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %fn, align 8, !dbg !326 + %"$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_2474" + call void @_out_of_gas() + br label %"$have_gas_2486" + +"$have_gas_2486": ; preds = %"$out_of_gas_2485", %"$have_gas_2474" + %"$consume_2487" = sub i64 %"$gasrem_2483", 1 + store i64 %"$consume_2487", i64* @_gasrem, align 8 %"$listByStr20Filter_74" = alloca { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }, align 8 - %"$listByStr20Filter_2451" = 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_2452" = extractvalue { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } %"$listByStr20Filter_2451", 0 - %"$listByStr20Filter_envptr_2453" = extractvalue { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } %"$listByStr20Filter_2451", 1 - %"$fn_2454" = load { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %fn, align 8 - %"$listByStr20Filter_call_2455" = call { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$listByStr20Filter_fptr_2452"(i8* %"$listByStr20Filter_envptr_2453", { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$fn_2454"), !dbg !180 - store { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$listByStr20Filter_call_2455", { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }* %"$listByStr20Filter_74", align 8, !dbg !180 + %"$listByStr20Filter_2488" = 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_2489" = extractvalue { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } %"$listByStr20Filter_2488", 0 + %"$listByStr20Filter_envptr_2490" = extractvalue { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } %"$listByStr20Filter_2488", 1 + %"$fn_2491" = load { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %fn, align 8 + %"$listByStr20Filter_call_2492" = call { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$listByStr20Filter_fptr_2489"(i8* %"$listByStr20Filter_envptr_2490", { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$fn_2491"), !dbg !327 + store { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$listByStr20Filter_call_2492", { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }* %"$listByStr20Filter_74", align 8, !dbg !327 %"$listByStr20Filter_75" = alloca %TName_List_ByStr20*, align 8 - %"$$listByStr20Filter_74_2456" = load { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }, { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }* %"$listByStr20Filter_74", align 8 - %"$$listByStr20Filter_74_fptr_2457" = extractvalue { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$$listByStr20Filter_74_2456", 0 - %"$$listByStr20Filter_74_envptr_2458" = extractvalue { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$$listByStr20Filter_74_2456", 1 - %"$list_2459" = load %TName_List_ByStr20*, %TName_List_ByStr20** %list, align 8 - %"$$listByStr20Filter_74_call_2460" = call %TName_List_ByStr20* %"$$listByStr20Filter_74_fptr_2457"(i8* %"$$listByStr20Filter_74_envptr_2458", %TName_List_ByStr20* %"$list_2459"), !dbg !180 - store %TName_List_ByStr20* %"$$listByStr20Filter_74_call_2460", %TName_List_ByStr20** %"$listByStr20Filter_75", align 8, !dbg !180 - %"$$listByStr20Filter_75_2461" = load %TName_List_ByStr20*, %TName_List_ByStr20** %"$listByStr20Filter_75", align 8 - store %TName_List_ByStr20* %"$$listByStr20Filter_75_2461", %TName_List_ByStr20** %"$retval_322", align 8, !dbg !180 - %"$$retval_322_2462" = load %TName_List_ByStr20*, %TName_List_ByStr20** %"$retval_322", align 8 - ret %TName_List_ByStr20* %"$$retval_322_2462" -} - -define internal { %TName_List_ByStr20* (i8*, [20 x i8]*)*, i8* } @"$fundef_319"(%"$$fundef_319_env_599"* %0, %TName_List_ByStr20* %1) !dbg !181 { -entry: - %"$$fundef_319_env_$BoolUtils.negb_11_2387" = getelementptr inbounds %"$$fundef_319_env_599", %"$$fundef_319_env_599"* %0, i32 0, i32 0 - %"$$BoolUtils.negb_11_envload_2388" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$$fundef_319_env_$BoolUtils.negb_11_2387", align 8 + call void @llvm.dbg.declare(metadata %TName_List_ByStr20** %"$listByStr20Filter_75", metadata !328, metadata !DIExpression()), !dbg !327 + %"$$listByStr20Filter_74_2493" = load { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }, { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }* %"$listByStr20Filter_74", align 8 + %"$$listByStr20Filter_74_fptr_2494" = extractvalue { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$$listByStr20Filter_74_2493", 0 + %"$$listByStr20Filter_74_envptr_2495" = extractvalue { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$$listByStr20Filter_74_2493", 1 + %"$list_2496" = load %TName_List_ByStr20*, %TName_List_ByStr20** %list, align 8 + %"$$listByStr20Filter_74_call_2497" = call %TName_List_ByStr20* %"$$listByStr20Filter_74_fptr_2494"(i8* %"$$listByStr20Filter_74_envptr_2495", %TName_List_ByStr20* %"$list_2496"), !dbg !327 + store %TName_List_ByStr20* %"$$listByStr20Filter_74_call_2497", %TName_List_ByStr20** %"$listByStr20Filter_75", align 8, !dbg !327 + %"$$listByStr20Filter_75_2498" = load %TName_List_ByStr20*, %TName_List_ByStr20** %"$listByStr20Filter_75", align 8 + store %TName_List_ByStr20* %"$$listByStr20Filter_75_2498", %TName_List_ByStr20** %"$retval_322", align 8, !dbg !327 + %"$$retval_322_2499" = load %TName_List_ByStr20*, %TName_List_ByStr20** %"$retval_322", align 8 + ret %TName_List_ByStr20* %"$$retval_322_2499" +} + +define internal { %TName_List_ByStr20* (i8*, [20 x i8]*)*, i8* } @"$fundef_319"(%"$$fundef_319_env_599"* %0, %TName_List_ByStr20* %1) !dbg !329 { +entry: + %"$list_2442" = alloca %TName_List_ByStr20*, align 8 + store %TName_List_ByStr20* %1, %TName_List_ByStr20** %"$list_2442", align 8 + call void @llvm.dbg.declare(metadata %TName_List_ByStr20** %"$list_2442", metadata !330, metadata !DIExpression()), !dbg !331 + %"$$fundef_319_env_$BoolUtils.negb_11_2423" = getelementptr inbounds %"$$fundef_319_env_599", %"$$fundef_319_env_599"* %0, i32 0, i32 0 + %"$$BoolUtils.negb_11_envload_2424" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$$fundef_319_env_$BoolUtils.negb_11_2423", align 8 %"$BoolUtils.negb_11" = alloca { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, align 8 - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.negb_11_envload_2388", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.negb_11", align 8 - %"$$fundef_319_env_ListUtils.list_filter_2389" = getelementptr inbounds %"$$fundef_319_env_599", %"$$fundef_319_env_599"* %0, i32 0, i32 1 - %"$ListUtils.list_filter_envload_2390" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_319_env_ListUtils.list_filter_2389", align 8 + store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.negb_11_envload_2424", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.negb_11", align 8 + %"$$fundef_319_env_ListUtils.list_filter_2425" = getelementptr inbounds %"$$fundef_319_env_599", %"$$fundef_319_env_599"* %0, i32 0, i32 1 + %"$ListUtils.list_filter_envload_2426" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_319_env_ListUtils.list_filter_2425", align 8 %ListUtils.list_filter = alloca { i8*, i8* }*, align 8 - store { i8*, i8* }* %"$ListUtils.list_filter_envload_2390", { i8*, i8* }** %ListUtils.list_filter, align 8 + store { i8*, i8* }* %"$ListUtils.list_filter_envload_2426", { i8*, i8* }** %ListUtils.list_filter, align 8 %"$retval_320" = alloca { %TName_List_ByStr20* (i8*, [20 x i8]*)*, i8* }, align 8 - %"$gasrem_2391" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2392" = icmp ugt i64 1, %"$gasrem_2391" - br i1 %"$gascmp_2392", label %"$out_of_gas_2393", label %"$have_gas_2394" - -"$out_of_gas_2393": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_2394" - -"$have_gas_2394": ; preds = %"$out_of_gas_2393", %entry - %"$consume_2395" = sub i64 %"$gasrem_2391", 1 - store i64 %"$consume_2395", i64* @_gasrem, align 8 - %"$$fundef_321_envp_2396_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_321_envp_2396_salloc" = call i8* @_salloc(i8* %"$$fundef_321_envp_2396_load", i64 32) - %"$$fundef_321_envp_2396" = bitcast i8* %"$$fundef_321_envp_2396_salloc" to %"$$fundef_321_env_598"* - %"$$fundef_321_env_voidp_2398" = bitcast %"$$fundef_321_env_598"* %"$$fundef_321_envp_2396" to i8* - %"$$fundef_321_cloval_2399" = insertvalue { %TName_List_ByStr20* (i8*, [20 x i8]*)*, i8* } { %TName_List_ByStr20* (i8*, [20 x i8]*)* bitcast (%TName_List_ByStr20* (%"$$fundef_321_env_598"*, [20 x i8]*)* @"$fundef_321" to %TName_List_ByStr20* (i8*, [20 x i8]*)*), i8* undef }, i8* %"$$fundef_321_env_voidp_2398", 1 - %"$$fundef_321_env_$BoolUtils.negb_11_2400" = getelementptr inbounds %"$$fundef_321_env_598", %"$$fundef_321_env_598"* %"$$fundef_321_envp_2396", i32 0, i32 0 - %"$$BoolUtils.negb_11_2401" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.negb_11", align 8 - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.negb_11_2401", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$$fundef_321_env_$BoolUtils.negb_11_2400", align 8 - %"$$fundef_321_env_ListUtils.list_filter_2402" = getelementptr inbounds %"$$fundef_321_env_598", %"$$fundef_321_env_598"* %"$$fundef_321_envp_2396", i32 0, i32 1 - %"$ListUtils.list_filter_2403" = load { i8*, i8* }*, { i8*, i8* }** %ListUtils.list_filter, align 8 - store { i8*, i8* }* %"$ListUtils.list_filter_2403", { i8*, i8* }** %"$$fundef_321_env_ListUtils.list_filter_2402", align 8 - %"$$fundef_321_env_list_2404" = getelementptr inbounds %"$$fundef_321_env_598", %"$$fundef_321_env_598"* %"$$fundef_321_envp_2396", i32 0, i32 2 - store %TName_List_ByStr20* %1, %TName_List_ByStr20** %"$$fundef_321_env_list_2404", align 8 - store { %TName_List_ByStr20* (i8*, [20 x i8]*)*, i8* } %"$$fundef_321_cloval_2399", { %TName_List_ByStr20* (i8*, [20 x i8]*)*, i8* }* %"$retval_320", align 8, !dbg !182 - %"$$retval_320_2405" = load { %TName_List_ByStr20* (i8*, [20 x i8]*)*, i8* }, { %TName_List_ByStr20* (i8*, [20 x i8]*)*, i8* }* %"$retval_320", align 8 - ret { %TName_List_ByStr20* (i8*, [20 x i8]*)*, i8* } %"$$retval_320_2405" -} - -define internal %TName_Bool* @"$fundef_317"(%"$$fundef_317_env_600"* %0, %TName_Bool* %1) !dbg !183 { -entry: + %"$gasrem_2427" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2428" = icmp ugt i64 1, %"$gasrem_2427" + br i1 %"$gascmp_2428", label %"$out_of_gas_2429", label %"$have_gas_2430" + +"$out_of_gas_2429": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_2430" + +"$have_gas_2430": ; preds = %"$out_of_gas_2429", %entry + %"$consume_2431" = sub i64 %"$gasrem_2427", 1 + store i64 %"$consume_2431", i64* @_gasrem, align 8 + %"$$fundef_321_envp_2432_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_321_envp_2432_salloc" = call i8* @_salloc(i8* %"$$fundef_321_envp_2432_load", i64 32) + %"$$fundef_321_envp_2432" = bitcast i8* %"$$fundef_321_envp_2432_salloc" to %"$$fundef_321_env_598"* + %"$$fundef_321_env_voidp_2434" = bitcast %"$$fundef_321_env_598"* %"$$fundef_321_envp_2432" to i8* + %"$$fundef_321_cloval_2435" = insertvalue { %TName_List_ByStr20* (i8*, [20 x i8]*)*, i8* } { %TName_List_ByStr20* (i8*, [20 x i8]*)* bitcast (%TName_List_ByStr20* (%"$$fundef_321_env_598"*, [20 x i8]*)* @"$fundef_321" to %TName_List_ByStr20* (i8*, [20 x i8]*)*), i8* undef }, i8* %"$$fundef_321_env_voidp_2434", 1 + %"$$fundef_321_env_$BoolUtils.negb_11_2436" = getelementptr inbounds %"$$fundef_321_env_598", %"$$fundef_321_env_598"* %"$$fundef_321_envp_2432", i32 0, i32 0 + %"$$BoolUtils.negb_11_2437" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.negb_11", align 8 + store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.negb_11_2437", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$$fundef_321_env_$BoolUtils.negb_11_2436", align 8 + %"$$fundef_321_env_ListUtils.list_filter_2438" = getelementptr inbounds %"$$fundef_321_env_598", %"$$fundef_321_env_598"* %"$$fundef_321_envp_2432", i32 0, i32 1 + %"$ListUtils.list_filter_2439" = load { i8*, i8* }*, { i8*, i8* }** %ListUtils.list_filter, align 8 + store { i8*, i8* }* %"$ListUtils.list_filter_2439", { i8*, i8* }** %"$$fundef_321_env_ListUtils.list_filter_2438", align 8 + %"$$fundef_321_env_list_2440" = getelementptr inbounds %"$$fundef_321_env_598", %"$$fundef_321_env_598"* %"$$fundef_321_envp_2432", i32 0, i32 2 + store %TName_List_ByStr20* %1, %TName_List_ByStr20** %"$$fundef_321_env_list_2440", align 8 + store { %TName_List_ByStr20* (i8*, [20 x i8]*)*, i8* } %"$$fundef_321_cloval_2435", { %TName_List_ByStr20* (i8*, [20 x i8]*)*, i8* }* %"$retval_320", align 8, !dbg !332 + %"$$retval_320_2441" = load { %TName_List_ByStr20* (i8*, [20 x i8]*)*, i8* }, { %TName_List_ByStr20* (i8*, [20 x i8]*)*, i8* }* %"$retval_320", align 8 + ret { %TName_List_ByStr20* (i8*, [20 x i8]*)*, i8* } %"$$retval_320_2441" +} + +define internal %TName_Bool* @"$fundef_317"(%"$$fundef_317_env_600"* %0, %TName_Bool* %1) !dbg !333 { +entry: + %"$b_2422" = alloca %TName_Bool*, align 8 + store %TName_Bool* %1, %TName_Bool** %"$b_2422", align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$b_2422", metadata !334, metadata !DIExpression()), !dbg !335 %"$retval_318" = alloca %TName_Bool*, 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 = %entry - call void @_out_of_gas() - br label %"$have_gas_2360" - -"$have_gas_2360": ; preds = %"$out_of_gas_2359", %entry - %"$consume_2361" = sub i64 %"$gasrem_2357", 2 - store i64 %"$consume_2361", i64* @_gasrem, align 8 - %"$b_tag_2363" = getelementptr inbounds %TName_Bool, %TName_Bool* %1, i32 0, i32 0 - %"$b_tag_2364" = load i8, i8* %"$b_tag_2363", align 1 - switch i8 %"$b_tag_2364", label %"$empty_default_2365" [ - i8 0, label %"$True_2366" - i8 1, label %"$False_2376" - ], !dbg !184 - -"$True_2366": ; preds = %"$have_gas_2360" - %"$b_2367" = bitcast %TName_Bool* %1 to %CName_True* - %"$gasrem_2368" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2369" = icmp ugt i64 1, %"$gasrem_2368" - br i1 %"$gascmp_2369", label %"$out_of_gas_2370", label %"$have_gas_2371" - -"$out_of_gas_2370": ; preds = %"$True_2366" - call void @_out_of_gas() - br label %"$have_gas_2371" - -"$have_gas_2371": ; preds = %"$out_of_gas_2370", %"$True_2366" - %"$consume_2372" = sub i64 %"$gasrem_2368", 1 - store i64 %"$consume_2372", i64* @_gasrem, align 8 - %"$adtval_2373_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_2373_salloc" = call i8* @_salloc(i8* %"$adtval_2373_load", i64 1) - %"$adtval_2373" = bitcast i8* %"$adtval_2373_salloc" to %CName_False* - %"$adtgep_2374" = getelementptr inbounds %CName_False, %CName_False* %"$adtval_2373", i32 0, i32 0 - store i8 1, i8* %"$adtgep_2374", align 1 - %"$adtptr_2375" = bitcast %CName_False* %"$adtval_2373" to %TName_Bool* - store %TName_Bool* %"$adtptr_2375", %TName_Bool** %"$retval_318", align 8, !dbg !185 - br label %"$matchsucc_2362" - -"$False_2376": ; preds = %"$have_gas_2360" - %"$b_2377" = bitcast %TName_Bool* %1 to %CName_False* - %"$gasrem_2378" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2379" = icmp ugt i64 1, %"$gasrem_2378" - br i1 %"$gascmp_2379", label %"$out_of_gas_2380", label %"$have_gas_2381" - -"$out_of_gas_2380": ; preds = %"$False_2376" - call void @_out_of_gas() - br label %"$have_gas_2381" - -"$have_gas_2381": ; preds = %"$out_of_gas_2380", %"$False_2376" - %"$consume_2382" = sub i64 %"$gasrem_2378", 1 - store i64 %"$consume_2382", i64* @_gasrem, align 8 - %"$adtval_2383_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_2383_salloc" = call i8* @_salloc(i8* %"$adtval_2383_load", i64 1) - %"$adtval_2383" = bitcast i8* %"$adtval_2383_salloc" to %CName_True* - %"$adtgep_2384" = getelementptr inbounds %CName_True, %CName_True* %"$adtval_2383", i32 0, i32 0 - store i8 0, i8* %"$adtgep_2384", align 1 - %"$adtptr_2385" = bitcast %CName_True* %"$adtval_2383" to %TName_Bool* - store %TName_Bool* %"$adtptr_2385", %TName_Bool** %"$retval_318", align 8, !dbg !188 - br label %"$matchsucc_2362" - -"$empty_default_2365": ; preds = %"$have_gas_2360" - br label %"$matchsucc_2362" - -"$matchsucc_2362": ; preds = %"$have_gas_2381", %"$have_gas_2371", %"$empty_default_2365" - %"$$retval_318_2386" = load %TName_Bool*, %TName_Bool** %"$retval_318", align 8 - ret %TName_Bool* %"$$retval_318_2386" -} - -define internal %TName_List_ByStr20* @"$fundef_315"(%"$$fundef_315_env_601"* %0, %TName_List_ByStr20* %1) !dbg !190 { -entry: - %"$$fundef_315_env_f_2305" = getelementptr inbounds %"$$fundef_315_env_601", %"$$fundef_315_env_601"* %0, i32 0, i32 0 - %"$f_envload_2306" = load { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %"$$fundef_315_env_f_2305", align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$retval_318", metadata !336, metadata !DIExpression()), !dbg !337 + %"$gasrem_2392" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2393" = icmp ugt i64 2, %"$gasrem_2392" + br i1 %"$gascmp_2393", label %"$out_of_gas_2394", label %"$have_gas_2395" + +"$out_of_gas_2394": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_2395" + +"$have_gas_2395": ; preds = %"$out_of_gas_2394", %entry + %"$consume_2396" = sub i64 %"$gasrem_2392", 2 + store i64 %"$consume_2396", i64* @_gasrem, align 8 + %"$b_tag_2398" = getelementptr inbounds %TName_Bool, %TName_Bool* %1, i32 0, i32 0 + %"$b_tag_2399" = load i8, i8* %"$b_tag_2398", align 1 + switch i8 %"$b_tag_2399", label %"$empty_default_2400" [ + i8 0, label %"$True_2401" + i8 1, label %"$False_2411" + ], !dbg !337 + +"$True_2401": ; preds = %"$have_gas_2395" + %"$b_2402" = bitcast %TName_Bool* %1 to %CName_True* + %"$gasrem_2403" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2404" = icmp ugt i64 1, %"$gasrem_2403" + br i1 %"$gascmp_2404", label %"$out_of_gas_2405", label %"$have_gas_2406" + +"$out_of_gas_2405": ; preds = %"$True_2401" + call void @_out_of_gas() + br label %"$have_gas_2406" + +"$have_gas_2406": ; preds = %"$out_of_gas_2405", %"$True_2401" + %"$consume_2407" = sub i64 %"$gasrem_2403", 1 + store i64 %"$consume_2407", i64* @_gasrem, align 8 + %"$adtval_2408_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_2408_salloc" = call i8* @_salloc(i8* %"$adtval_2408_load", i64 1) + %"$adtval_2408" = bitcast i8* %"$adtval_2408_salloc" to %CName_False* + %"$adtgep_2409" = getelementptr inbounds %CName_False, %CName_False* %"$adtval_2408", i32 0, i32 0 + store i8 1, i8* %"$adtgep_2409", align 1 + %"$adtptr_2410" = bitcast %CName_False* %"$adtval_2408" to %TName_Bool* + store %TName_Bool* %"$adtptr_2410", %TName_Bool** %"$retval_318", align 8, !dbg !338 + br label %"$matchsucc_2397" + +"$False_2411": ; preds = %"$have_gas_2395" + %"$b_2412" = bitcast %TName_Bool* %1 to %CName_False* + %"$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" + +"$out_of_gas_2415": ; preds = %"$False_2411" + call void @_out_of_gas() + br label %"$have_gas_2416" + +"$have_gas_2416": ; preds = %"$out_of_gas_2415", %"$False_2411" + %"$consume_2417" = sub i64 %"$gasrem_2413", 1 + store i64 %"$consume_2417", i64* @_gasrem, align 8 + %"$adtval_2418_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_2418_salloc" = call i8* @_salloc(i8* %"$adtval_2418_load", i64 1) + %"$adtval_2418" = bitcast i8* %"$adtval_2418_salloc" to %CName_True* + %"$adtgep_2419" = getelementptr inbounds %CName_True, %CName_True* %"$adtval_2418", i32 0, i32 0 + store i8 0, i8* %"$adtgep_2419", align 1 + %"$adtptr_2420" = bitcast %CName_True* %"$adtval_2418" to %TName_Bool* + store %TName_Bool* %"$adtptr_2420", %TName_Bool** %"$retval_318", align 8, !dbg !341 + br label %"$matchsucc_2397" + +"$empty_default_2400": ; preds = %"$have_gas_2395" + br label %"$matchsucc_2397" + +"$matchsucc_2397": ; preds = %"$have_gas_2416", %"$have_gas_2406", %"$empty_default_2400" + %"$$retval_318_2421" = load %TName_Bool*, %TName_Bool** %"$retval_318", align 8 + ret %TName_Bool* %"$$retval_318_2421" +} + +define internal %TName_List_ByStr20* @"$fundef_315"(%"$$fundef_315_env_601"* %0, %TName_List_ByStr20* %1) !dbg !343 { +entry: + %"$z_2391" = alloca %TName_List_ByStr20*, align 8 + store %TName_List_ByStr20* %1, %TName_List_ByStr20** %"$z_2391", align 8 + call void @llvm.dbg.declare(metadata %TName_List_ByStr20** %"$z_2391", metadata !344, metadata !DIExpression()), !dbg !345 + %"$$fundef_315_env_f_2339" = getelementptr inbounds %"$$fundef_315_env_601", %"$$fundef_315_env_601"* %0, i32 0, i32 0 + %"$f_envload_2340" = load { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %"$$fundef_315_env_f_2339", align 8 %f = alloca { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, align 8 - store { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$f_envload_2306", { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %f, align 8 - %"$$fundef_315_env_h_2307" = getelementptr inbounds %"$$fundef_315_env_601", %"$$fundef_315_env_601"* %0, i32 0, i32 1 - %"$h_envload_2308" = load [20 x i8], [20 x i8]* %"$$fundef_315_env_h_2307", align 1 + store { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$f_envload_2340", { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %f, align 8 + %"$$fundef_315_env_h_2341" = getelementptr inbounds %"$$fundef_315_env_601", %"$$fundef_315_env_601"* %0, i32 0, i32 1 + %"$h_envload_2342" = load [20 x i8], [20 x i8]* %"$$fundef_315_env_h_2341", align 1 %h = alloca [20 x i8], align 1 - store [20 x i8] %"$h_envload_2308", [20 x i8]* %h, align 1 + store [20 x i8] %"$h_envload_2342", [20 x i8]* %h, align 1 %"$retval_316" = alloca %TName_List_ByStr20*, align 8 - %"$gasrem_2309" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2310" = icmp ugt i64 1, %"$gasrem_2309" - br i1 %"$gascmp_2310", label %"$out_of_gas_2311", label %"$have_gas_2312" + call void @llvm.dbg.declare(metadata %TName_List_ByStr20** %"$retval_316", metadata !346, metadata !DIExpression()), !dbg !347 + %"$gasrem_2343" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2344" = icmp ugt i64 1, %"$gasrem_2343" + br i1 %"$gascmp_2344", label %"$out_of_gas_2345", label %"$have_gas_2346" -"$out_of_gas_2311": ; preds = %entry +"$out_of_gas_2345": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_2312" + br label %"$have_gas_2346" -"$have_gas_2312": ; preds = %"$out_of_gas_2311", %entry - %"$consume_2313" = sub i64 %"$gasrem_2309", 1 - store i64 %"$consume_2313", i64* @_gasrem, align 8 +"$have_gas_2346": ; preds = %"$out_of_gas_2345", %entry + %"$consume_2347" = sub i64 %"$gasrem_2343", 1 + store i64 %"$consume_2347", i64* @_gasrem, align 8 %h1 = alloca %TName_Bool*, align 8 - %"$gasrem_2314" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2315" = icmp ugt i64 1, %"$gasrem_2314" - br i1 %"$gascmp_2315", label %"$out_of_gas_2316", label %"$have_gas_2317" + call void @llvm.dbg.declare(metadata %TName_Bool** %h1, metadata !348, metadata !DIExpression()), !dbg !349 + %"$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_2316": ; preds = %"$have_gas_2312" +"$out_of_gas_2350": ; preds = %"$have_gas_2346" call void @_out_of_gas() - br label %"$have_gas_2317" + br label %"$have_gas_2351" -"$have_gas_2317": ; preds = %"$out_of_gas_2316", %"$have_gas_2312" - %"$consume_2318" = sub i64 %"$gasrem_2314", 1 - store i64 %"$consume_2318", i64* @_gasrem, align 8 +"$have_gas_2351": ; preds = %"$out_of_gas_2350", %"$have_gas_2346" + %"$consume_2352" = sub i64 %"$gasrem_2348", 1 + store i64 %"$consume_2352", i64* @_gasrem, align 8 %"$f_70" = alloca %TName_Bool*, align 8 - %"$f_2319" = load { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %f, align 8 - %"$f_fptr_2320" = extractvalue { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$f_2319", 0 - %"$f_envptr_2321" = extractvalue { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$f_2319", 1 - %"$f_h_2322" = alloca [20 x i8], align 1 - %"$h_2323" = load [20 x i8], [20 x i8]* %h, align 1 - store [20 x i8] %"$h_2323", [20 x i8]* %"$f_h_2322", align 1 - %"$f_call_2324" = call %TName_Bool* %"$f_fptr_2320"(i8* %"$f_envptr_2321", [20 x i8]* %"$f_h_2322"), !dbg !191 - store %TName_Bool* %"$f_call_2324", %TName_Bool** %"$f_70", align 8, !dbg !191 - %"$$f_70_2325" = load %TName_Bool*, %TName_Bool** %"$f_70", align 8 - store %TName_Bool* %"$$f_70_2325", %TName_Bool** %h1, align 8, !dbg !191 - %"$gasrem_2326" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2327" = icmp ugt i64 2, %"$gasrem_2326" - br i1 %"$gascmp_2327", label %"$out_of_gas_2328", label %"$have_gas_2329" - -"$out_of_gas_2328": ; preds = %"$have_gas_2317" - call void @_out_of_gas() - br label %"$have_gas_2329" - -"$have_gas_2329": ; preds = %"$out_of_gas_2328", %"$have_gas_2317" - %"$consume_2330" = sub i64 %"$gasrem_2326", 2 - store i64 %"$consume_2330", i64* @_gasrem, align 8 - %"$h1_2332" = load %TName_Bool*, %TName_Bool** %h1, align 8 - %"$h1_tag_2333" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$h1_2332", i32 0, i32 0 - %"$h1_tag_2334" = load i8, i8* %"$h1_tag_2333", align 1 - switch i8 %"$h1_tag_2334", label %"$empty_default_2335" [ - i8 0, label %"$True_2336" - i8 1, label %"$False_2349" - ], !dbg !192 - -"$True_2336": ; preds = %"$have_gas_2329" - %"$h1_2337" = bitcast %TName_Bool* %"$h1_2332" to %CName_True* - %"$gasrem_2338" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2339" = icmp ugt i64 1, %"$gasrem_2338" - br i1 %"$gascmp_2339", label %"$out_of_gas_2340", label %"$have_gas_2341" - -"$out_of_gas_2340": ; preds = %"$True_2336" - call void @_out_of_gas() - br label %"$have_gas_2341" - -"$have_gas_2341": ; preds = %"$out_of_gas_2340", %"$True_2336" - %"$consume_2342" = sub i64 %"$gasrem_2338", 1 - store i64 %"$consume_2342", i64* @_gasrem, align 8 - %"$h_2343" = load [20 x i8], [20 x i8]* %h, align 1 - %"$adtval_2344_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_2344_salloc" = call i8* @_salloc(i8* %"$adtval_2344_load", i64 29) - %"$adtval_2344" = bitcast i8* %"$adtval_2344_salloc" to %CName_Cons_ByStr20* - %"$adtgep_2345" = getelementptr inbounds %CName_Cons_ByStr20, %CName_Cons_ByStr20* %"$adtval_2344", i32 0, i32 0 - store i8 0, i8* %"$adtgep_2345", align 1 - %"$adtgep_2346" = getelementptr inbounds %CName_Cons_ByStr20, %CName_Cons_ByStr20* %"$adtval_2344", i32 0, i32 1 - store [20 x i8] %"$h_2343", [20 x i8]* %"$adtgep_2346", align 1 - %"$adtgep_2347" = getelementptr inbounds %CName_Cons_ByStr20, %CName_Cons_ByStr20* %"$adtval_2344", i32 0, i32 2 - store %TName_List_ByStr20* %1, %TName_List_ByStr20** %"$adtgep_2347", align 8 - %"$adtptr_2348" = bitcast %CName_Cons_ByStr20* %"$adtval_2344" to %TName_List_ByStr20* - store %TName_List_ByStr20* %"$adtptr_2348", %TName_List_ByStr20** %"$retval_316", align 8, !dbg !193 - br label %"$matchsucc_2331" - -"$False_2349": ; preds = %"$have_gas_2329" - %"$h1_2350" = bitcast %TName_Bool* %"$h1_2332" to %CName_False* - %"$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 = %"$False_2349" - call void @_out_of_gas() - br label %"$have_gas_2354" - -"$have_gas_2354": ; preds = %"$out_of_gas_2353", %"$False_2349" - %"$consume_2355" = sub i64 %"$gasrem_2351", 1 - store i64 %"$consume_2355", i64* @_gasrem, align 8 - store %TName_List_ByStr20* %1, %TName_List_ByStr20** %"$retval_316", align 8, !dbg !196 - br label %"$matchsucc_2331" - -"$empty_default_2335": ; preds = %"$have_gas_2329" - br label %"$matchsucc_2331" - -"$matchsucc_2331": ; preds = %"$have_gas_2354", %"$have_gas_2341", %"$empty_default_2335" - %"$$retval_316_2356" = load %TName_List_ByStr20*, %TName_List_ByStr20** %"$retval_316", align 8 - ret %TName_List_ByStr20* %"$$retval_316_2356" -} - -define internal { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } @"$fundef_313"(%"$$fundef_313_env_602"* %0, [20 x i8]* %1) !dbg !198 { -entry: + call void @llvm.dbg.declare(metadata %TName_Bool** %"$f_70", metadata !350, metadata !DIExpression()), !dbg !351 + %"$f_2353" = load { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %f, align 8 + %"$f_fptr_2354" = extractvalue { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$f_2353", 0 + %"$f_envptr_2355" = extractvalue { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$f_2353", 1 + %"$f_h_2356" = alloca [20 x i8], align 1 + %"$h_2357" = load [20 x i8], [20 x i8]* %h, align 1 + store [20 x i8] %"$h_2357", [20 x i8]* %"$f_h_2356", align 1 + %"$f_call_2358" = call %TName_Bool* %"$f_fptr_2354"(i8* %"$f_envptr_2355", [20 x i8]* %"$f_h_2356"), !dbg !351 + store %TName_Bool* %"$f_call_2358", %TName_Bool** %"$f_70", align 8, !dbg !351 + %"$$f_70_2359" = load %TName_Bool*, %TName_Bool** %"$f_70", align 8 + store %TName_Bool* %"$$f_70_2359", %TName_Bool** %h1, align 8, !dbg !351 + %"$gasrem_2360" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2361" = icmp ugt i64 2, %"$gasrem_2360" + br i1 %"$gascmp_2361", label %"$out_of_gas_2362", label %"$have_gas_2363" + +"$out_of_gas_2362": ; preds = %"$have_gas_2351" + call void @_out_of_gas() + br label %"$have_gas_2363" + +"$have_gas_2363": ; preds = %"$out_of_gas_2362", %"$have_gas_2351" + %"$consume_2364" = sub i64 %"$gasrem_2360", 2 + store i64 %"$consume_2364", i64* @_gasrem, align 8 + %"$h1_2366" = load %TName_Bool*, %TName_Bool** %h1, align 8 + %"$h1_tag_2367" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$h1_2366", i32 0, i32 0 + %"$h1_tag_2368" = load i8, i8* %"$h1_tag_2367", align 1 + switch i8 %"$h1_tag_2368", label %"$empty_default_2369" [ + i8 0, label %"$True_2370" + i8 1, label %"$False_2383" + ], !dbg !352 + +"$True_2370": ; preds = %"$have_gas_2363" + %"$h1_2371" = bitcast %TName_Bool* %"$h1_2366" to %CName_True* + %"$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 = %"$True_2370" + call void @_out_of_gas() + br label %"$have_gas_2375" + +"$have_gas_2375": ; preds = %"$out_of_gas_2374", %"$True_2370" + %"$consume_2376" = sub i64 %"$gasrem_2372", 1 + store i64 %"$consume_2376", i64* @_gasrem, align 8 + %"$h_2377" = load [20 x i8], [20 x i8]* %h, align 1 + %"$adtval_2378_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_2378_salloc" = call i8* @_salloc(i8* %"$adtval_2378_load", i64 29) + %"$adtval_2378" = bitcast i8* %"$adtval_2378_salloc" to %CName_Cons_ByStr20* + %"$adtgep_2379" = getelementptr inbounds %CName_Cons_ByStr20, %CName_Cons_ByStr20* %"$adtval_2378", i32 0, i32 0 + store i8 0, i8* %"$adtgep_2379", align 1 + %"$adtgep_2380" = getelementptr inbounds %CName_Cons_ByStr20, %CName_Cons_ByStr20* %"$adtval_2378", i32 0, i32 1 + store [20 x i8] %"$h_2377", [20 x i8]* %"$adtgep_2380", align 1 + %"$adtgep_2381" = getelementptr inbounds %CName_Cons_ByStr20, %CName_Cons_ByStr20* %"$adtval_2378", i32 0, i32 2 + store %TName_List_ByStr20* %1, %TName_List_ByStr20** %"$adtgep_2381", align 8 + %"$adtptr_2382" = bitcast %CName_Cons_ByStr20* %"$adtval_2378" to %TName_List_ByStr20* + store %TName_List_ByStr20* %"$adtptr_2382", %TName_List_ByStr20** %"$retval_316", align 8, !dbg !353 + br label %"$matchsucc_2365" + +"$False_2383": ; preds = %"$have_gas_2363" + %"$h1_2384" = bitcast %TName_Bool* %"$h1_2366" to %CName_False* + %"$gasrem_2385" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2386" = icmp ugt i64 1, %"$gasrem_2385" + br i1 %"$gascmp_2386", label %"$out_of_gas_2387", label %"$have_gas_2388" + +"$out_of_gas_2387": ; preds = %"$False_2383" + call void @_out_of_gas() + br label %"$have_gas_2388" + +"$have_gas_2388": ; preds = %"$out_of_gas_2387", %"$False_2383" + %"$consume_2389" = sub i64 %"$gasrem_2385", 1 + store i64 %"$consume_2389", i64* @_gasrem, align 8 + store %TName_List_ByStr20* %1, %TName_List_ByStr20** %"$retval_316", align 8, !dbg !356 + br label %"$matchsucc_2365" + +"$empty_default_2369": ; preds = %"$have_gas_2363" + br label %"$matchsucc_2365" + +"$matchsucc_2365": ; preds = %"$have_gas_2388", %"$have_gas_2375", %"$empty_default_2369" + %"$$retval_316_2390" = load %TName_List_ByStr20*, %TName_List_ByStr20** %"$retval_316", align 8 + ret %TName_List_ByStr20* %"$$retval_316_2390" +} + +define internal { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } @"$fundef_313"(%"$$fundef_313_env_602"* %0, [20 x i8]* %1) !dbg !358 { +entry: + %"$h_2338" = alloca [20 x i8]*, align 8 + store [20 x i8]* %1, [20 x i8]** %"$h_2338", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$h_2338", metadata !359, metadata !DIExpression()), !dbg !360 %h = load [20 x i8], [20 x i8]* %1, align 1 - %"$$fundef_313_env_f_2290" = getelementptr inbounds %"$$fundef_313_env_602", %"$$fundef_313_env_602"* %0, i32 0, i32 0 - %"$f_envload_2291" = load { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %"$$fundef_313_env_f_2290", align 8 + %"$$fundef_313_env_f_2323" = getelementptr inbounds %"$$fundef_313_env_602", %"$$fundef_313_env_602"* %0, i32 0, i32 0 + %"$f_envload_2324" = load { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %"$$fundef_313_env_f_2323", align 8 %f = alloca { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, align 8 - store { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$f_envload_2291", { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %f, align 8 + store { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$f_envload_2324", { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %f, align 8 %"$retval_314" = alloca { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }, align 8 - %"$gasrem_2292" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2293" = icmp ugt i64 1, %"$gasrem_2292" - br i1 %"$gascmp_2293", label %"$out_of_gas_2294", label %"$have_gas_2295" - -"$out_of_gas_2294": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_2295" - -"$have_gas_2295": ; preds = %"$out_of_gas_2294", %entry - %"$consume_2296" = sub i64 %"$gasrem_2292", 1 - store i64 %"$consume_2296", i64* @_gasrem, align 8 - %"$$fundef_315_envp_2297_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_315_envp_2297_salloc" = call i8* @_salloc(i8* %"$$fundef_315_envp_2297_load", i64 40) - %"$$fundef_315_envp_2297" = bitcast i8* %"$$fundef_315_envp_2297_salloc" to %"$$fundef_315_env_601"* - %"$$fundef_315_env_voidp_2299" = bitcast %"$$fundef_315_env_601"* %"$$fundef_315_envp_2297" to i8* - %"$$fundef_315_cloval_2300" = insertvalue { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)* bitcast (%TName_List_ByStr20* (%"$$fundef_315_env_601"*, %TName_List_ByStr20*)* @"$fundef_315" to %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*), i8* undef }, i8* %"$$fundef_315_env_voidp_2299", 1 - %"$$fundef_315_env_f_2301" = getelementptr inbounds %"$$fundef_315_env_601", %"$$fundef_315_env_601"* %"$$fundef_315_envp_2297", i32 0, i32 0 - %"$f_2302" = 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_2302", { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %"$$fundef_315_env_f_2301", align 8 - %"$$fundef_315_env_h_2303" = getelementptr inbounds %"$$fundef_315_env_601", %"$$fundef_315_env_601"* %"$$fundef_315_envp_2297", i32 0, i32 1 - store [20 x i8] %h, [20 x i8]* %"$$fundef_315_env_h_2303", align 1 - store { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$$fundef_315_cloval_2300", { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }* %"$retval_314", align 8, !dbg !199 - %"$$retval_314_2304" = load { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }, { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }* %"$retval_314", align 8 - ret { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$$retval_314_2304" -} - -define internal { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } @"$fundef_311"(%"$$fundef_311_env_603"* %0, { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %1) !dbg !200 { -entry: - %"$$fundef_311_env_list_foldr_2220" = getelementptr inbounds %"$$fundef_311_env_603", %"$$fundef_311_env_603"* %0, i32 0, i32 0 - %"$list_foldr_envload_2221" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_311_env_list_foldr_2220", align 8 + %"$gasrem_2325" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2326" = icmp ugt i64 1, %"$gasrem_2325" + br i1 %"$gascmp_2326", label %"$out_of_gas_2327", label %"$have_gas_2328" + +"$out_of_gas_2327": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_2328" + +"$have_gas_2328": ; preds = %"$out_of_gas_2327", %entry + %"$consume_2329" = sub i64 %"$gasrem_2325", 1 + store i64 %"$consume_2329", i64* @_gasrem, align 8 + %"$$fundef_315_envp_2330_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_315_envp_2330_salloc" = call i8* @_salloc(i8* %"$$fundef_315_envp_2330_load", i64 40) + %"$$fundef_315_envp_2330" = bitcast i8* %"$$fundef_315_envp_2330_salloc" to %"$$fundef_315_env_601"* + %"$$fundef_315_env_voidp_2332" = bitcast %"$$fundef_315_env_601"* %"$$fundef_315_envp_2330" to i8* + %"$$fundef_315_cloval_2333" = insertvalue { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)* bitcast (%TName_List_ByStr20* (%"$$fundef_315_env_601"*, %TName_List_ByStr20*)* @"$fundef_315" to %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*), i8* undef }, i8* %"$$fundef_315_env_voidp_2332", 1 + %"$$fundef_315_env_f_2334" = getelementptr inbounds %"$$fundef_315_env_601", %"$$fundef_315_env_601"* %"$$fundef_315_envp_2330", i32 0, i32 0 + %"$f_2335" = 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_2335", { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %"$$fundef_315_env_f_2334", align 8 + %"$$fundef_315_env_h_2336" = getelementptr inbounds %"$$fundef_315_env_601", %"$$fundef_315_env_601"* %"$$fundef_315_envp_2330", i32 0, i32 1 + store [20 x i8] %h, [20 x i8]* %"$$fundef_315_env_h_2336", align 1 + store { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$$fundef_315_cloval_2333", { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }* %"$retval_314", align 8, !dbg !361 + %"$$retval_314_2337" = load { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }, { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }* %"$retval_314", align 8 + ret { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$$retval_314_2337" +} + +define internal { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } @"$fundef_311"(%"$$fundef_311_env_603"* %0, { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %1) !dbg !362 { +entry: + %"$$fundef_311_env_list_foldr_2253" = getelementptr inbounds %"$$fundef_311_env_603", %"$$fundef_311_env_603"* %0, i32 0, i32 0 + %"$list_foldr_envload_2254" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_311_env_list_foldr_2253", align 8 %list_foldr = alloca { i8*, i8* }*, align 8 - store { i8*, i8* }* %"$list_foldr_envload_2221", { i8*, i8* }** %list_foldr, align 8 + store { i8*, i8* }* %"$list_foldr_envload_2254", { i8*, i8* }** %list_foldr, align 8 %"$retval_312" = alloca { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }, align 8 - %"$gasrem_2222" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2223" = icmp ugt i64 1, %"$gasrem_2222" - br i1 %"$gascmp_2223", label %"$out_of_gas_2224", label %"$have_gas_2225" + %"$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_2224": ; preds = %entry +"$out_of_gas_2257": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_2225" + br label %"$have_gas_2258" -"$have_gas_2225": ; preds = %"$out_of_gas_2224", %entry - %"$consume_2226" = sub i64 %"$gasrem_2222", 1 - store i64 %"$consume_2226", i64* @_gasrem, align 8 +"$have_gas_2258": ; preds = %"$out_of_gas_2257", %entry + %"$consume_2259" = sub i64 %"$gasrem_2255", 1 + store i64 %"$consume_2259", 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_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 = %"$have_gas_2225" - call void @_out_of_gas() - br label %"$have_gas_2230" - -"$have_gas_2230": ; preds = %"$out_of_gas_2229", %"$have_gas_2225" - %"$consume_2231" = sub i64 %"$gasrem_2227", 1 - store i64 %"$consume_2231", i64* @_gasrem, align 8 - %"$list_foldr_2232" = load { i8*, i8* }*, { i8*, i8* }** %list_foldr, align 8 - %"$list_foldr_2233" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$list_foldr_2232", i32 0 - %"$list_foldr_2234" = bitcast { i8*, i8* }* %"$list_foldr_2233" to { { i8*, i8* }* (i8*)*, i8* }* - %"$list_foldr_2235" = load { { i8*, i8* }* (i8*)*, i8* }, { { i8*, i8* }* (i8*)*, i8* }* %"$list_foldr_2234", align 8 - %"$list_foldr_fptr_2236" = extractvalue { { i8*, i8* }* (i8*)*, i8* } %"$list_foldr_2235", 0 - %"$list_foldr_envptr_2237" = extractvalue { { i8*, i8* }* (i8*)*, i8* } %"$list_foldr_2235", 1 - %"$list_foldr_call_2238" = call { i8*, i8* }* %"$list_foldr_fptr_2236"(i8* %"$list_foldr_envptr_2237"), !dbg !201 - %"$list_foldr_2239" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$list_foldr_call_2238", i32 2 - %"$list_foldr_2240" = bitcast { i8*, i8* }* %"$list_foldr_2239" 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_2241" = 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_2240", align 8 - %"$list_foldr_fptr_2242" = 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_2241", 0 - %"$list_foldr_envptr_2243" = 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_2241", 1 - %"$list_foldr_call_2244" = 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_2242"(i8* %"$list_foldr_envptr_2243"), !dbg !201 - 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_2244", { { { %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 !202 - %"$gasrem_2245" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2246" = icmp ugt i64 1, %"$gasrem_2245" - br i1 %"$gascmp_2246", label %"$out_of_gas_2247", label %"$have_gas_2248" - -"$out_of_gas_2247": ; preds = %"$have_gas_2230" - call void @_out_of_gas() - br label %"$have_gas_2248" - -"$have_gas_2248": ; preds = %"$out_of_gas_2247", %"$have_gas_2230" - %"$consume_2249" = sub i64 %"$gasrem_2245", 1 - store i64 %"$consume_2249", i64* @_gasrem, align 8 - %iter = alloca { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* }, align 8 - %"$gasrem_2250" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2251" = icmp ugt i64 1, %"$gasrem_2250" - br i1 %"$gascmp_2251", label %"$out_of_gas_2252", label %"$have_gas_2253" - -"$out_of_gas_2252": ; preds = %"$have_gas_2248" - call void @_out_of_gas() - br label %"$have_gas_2253" - -"$have_gas_2253": ; preds = %"$out_of_gas_2252", %"$have_gas_2248" - %"$consume_2254" = sub i64 %"$gasrem_2250", 1 - store i64 %"$consume_2254", i64* @_gasrem, align 8 - %"$$fundef_313_envp_2255_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_313_envp_2255_salloc" = call i8* @_salloc(i8* %"$$fundef_313_envp_2255_load", i64 16) - %"$$fundef_313_envp_2255" = bitcast i8* %"$$fundef_313_envp_2255_salloc" to %"$$fundef_313_env_602"* - %"$$fundef_313_env_voidp_2257" = bitcast %"$$fundef_313_env_602"* %"$$fundef_313_envp_2255" to i8* - %"$$fundef_313_cloval_2258" = 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_313_env_602"*, [20 x i8]*)* @"$fundef_313" to { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*), i8* undef }, i8* %"$$fundef_313_env_voidp_2257", 1 - %"$$fundef_313_env_f_2259" = getelementptr inbounds %"$$fundef_313_env_602", %"$$fundef_313_env_602"* %"$$fundef_313_envp_2255", i32 0, i32 0 - store { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %1, { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %"$$fundef_313_env_f_2259", align 8 - store { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$$fundef_313_cloval_2258", { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* }* %iter, align 8, !dbg !203 %"$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_2262": ; preds = %"$have_gas_2253" +"$out_of_gas_2262": ; preds = %"$have_gas_2258" call void @_out_of_gas() br label %"$have_gas_2263" -"$have_gas_2263": ; preds = %"$out_of_gas_2262", %"$have_gas_2253" +"$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 + %"$list_foldr_2265" = load { i8*, i8* }*, { i8*, i8* }** %list_foldr, align 8 + %"$list_foldr_2266" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$list_foldr_2265", i32 0 + %"$list_foldr_2267" = bitcast { i8*, i8* }* %"$list_foldr_2266" to { { i8*, i8* }* (i8*)*, i8* }* + %"$list_foldr_2268" = load { { i8*, i8* }* (i8*)*, i8* }, { { i8*, i8* }* (i8*)*, i8* }* %"$list_foldr_2267", align 8 + %"$list_foldr_fptr_2269" = extractvalue { { i8*, i8* }* (i8*)*, i8* } %"$list_foldr_2268", 0 + %"$list_foldr_envptr_2270" = extractvalue { { i8*, i8* }* (i8*)*, i8* } %"$list_foldr_2268", 1 + %"$list_foldr_call_2271" = call { i8*, i8* }* %"$list_foldr_fptr_2269"(i8* %"$list_foldr_envptr_2270"), !dbg !363 + %"$list_foldr_2272" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$list_foldr_call_2271", i32 2 + %"$list_foldr_2273" = bitcast { i8*, i8* }* %"$list_foldr_2272" 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_2274" = 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_2273", align 8 + %"$list_foldr_fptr_2275" = 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_2274", 0 + %"$list_foldr_envptr_2276" = 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_2274", 1 + %"$list_foldr_call_2277" = 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_2275"(i8* %"$list_foldr_envptr_2276"), !dbg !363 + 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_2277", { { { %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 !364 + %"$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_2263" + call void @_out_of_gas() + br label %"$have_gas_2281" + +"$have_gas_2281": ; preds = %"$out_of_gas_2280", %"$have_gas_2263" + %"$consume_2282" = sub i64 %"$gasrem_2278", 1 + store i64 %"$consume_2282", i64* @_gasrem, align 8 + %iter = alloca { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* }, 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" + +"$out_of_gas_2285": ; preds = %"$have_gas_2281" + call void @_out_of_gas() + br label %"$have_gas_2286" + +"$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 + %"$$fundef_313_envp_2288_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_313_envp_2288_salloc" = call i8* @_salloc(i8* %"$$fundef_313_envp_2288_load", i64 16) + %"$$fundef_313_envp_2288" = bitcast i8* %"$$fundef_313_envp_2288_salloc" to %"$$fundef_313_env_602"* + %"$$fundef_313_env_voidp_2290" = bitcast %"$$fundef_313_env_602"* %"$$fundef_313_envp_2288" to i8* + %"$$fundef_313_cloval_2291" = 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_313_env_602"*, [20 x i8]*)* @"$fundef_313" to { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*), i8* undef }, i8* %"$$fundef_313_env_voidp_2290", 1 + %"$$fundef_313_env_f_2292" = getelementptr inbounds %"$$fundef_313_env_602", %"$$fundef_313_env_602"* %"$$fundef_313_envp_2288", i32 0, i32 0 + store { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %1, { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %"$$fundef_313_env_f_2292", align 8 + store { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$$fundef_313_cloval_2291", { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* }* %iter, align 8, !dbg !365 + %"$gasrem_2293" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2294" = icmp ugt i64 1, %"$gasrem_2293" + br i1 %"$gascmp_2294", label %"$out_of_gas_2295", label %"$have_gas_2296" + +"$out_of_gas_2295": ; preds = %"$have_gas_2286" + call void @_out_of_gas() + br label %"$have_gas_2296" + +"$have_gas_2296": ; preds = %"$out_of_gas_2295", %"$have_gas_2286" + %"$consume_2297" = sub i64 %"$gasrem_2293", 1 + store i64 %"$consume_2297", i64* @_gasrem, align 8 %init = alloca %TName_List_ByStr20*, align 8 - %"$gasrem_2265" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2266" = icmp ugt i64 1, %"$gasrem_2265" - br i1 %"$gascmp_2266", label %"$out_of_gas_2267", label %"$have_gas_2268" - -"$out_of_gas_2267": ; preds = %"$have_gas_2263" - call void @_out_of_gas() - br label %"$have_gas_2268" - -"$have_gas_2268": ; preds = %"$out_of_gas_2267", %"$have_gas_2263" - %"$consume_2269" = sub i64 %"$gasrem_2265", 1 - store i64 %"$consume_2269", i64* @_gasrem, align 8 - %"$adtval_2270_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_2270_salloc" = call i8* @_salloc(i8* %"$adtval_2270_load", i64 1) - %"$adtval_2270" = bitcast i8* %"$adtval_2270_salloc" to %CName_Nil_ByStr20* - %"$adtgep_2271" = getelementptr inbounds %CName_Nil_ByStr20, %CName_Nil_ByStr20* %"$adtval_2270", i32 0, i32 0 - store i8 1, i8* %"$adtgep_2271", align 1 - %"$adtptr_2272" = bitcast %CName_Nil_ByStr20* %"$adtval_2270" to %TName_List_ByStr20* - store %TName_List_ByStr20* %"$adtptr_2272", %TName_List_ByStr20** %init, align 8, !dbg !204 - %"$gasrem_2273" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2274" = icmp ugt i64 1, %"$gasrem_2273" - br i1 %"$gascmp_2274", label %"$out_of_gas_2275", label %"$have_gas_2276" - -"$out_of_gas_2275": ; preds = %"$have_gas_2268" - call void @_out_of_gas() - br label %"$have_gas_2276" - -"$have_gas_2276": ; preds = %"$out_of_gas_2275", %"$have_gas_2268" - %"$consume_2277" = sub i64 %"$gasrem_2273", 1 - store i64 %"$consume_2277", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_List_ByStr20** %init, metadata !366, metadata !DIExpression()), !dbg !367 + %"$gasrem_2298" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2299" = icmp ugt i64 1, %"$gasrem_2298" + br i1 %"$gascmp_2299", label %"$out_of_gas_2300", label %"$have_gas_2301" + +"$out_of_gas_2300": ; preds = %"$have_gas_2296" + call void @_out_of_gas() + br label %"$have_gas_2301" + +"$have_gas_2301": ; preds = %"$out_of_gas_2300", %"$have_gas_2296" + %"$consume_2302" = sub i64 %"$gasrem_2298", 1 + store i64 %"$consume_2302", i64* @_gasrem, align 8 + %"$adtval_2303_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_2303_salloc" = call i8* @_salloc(i8* %"$adtval_2303_load", i64 1) + %"$adtval_2303" = bitcast i8* %"$adtval_2303_salloc" to %CName_Nil_ByStr20* + %"$adtgep_2304" = getelementptr inbounds %CName_Nil_ByStr20, %CName_Nil_ByStr20* %"$adtval_2303", i32 0, i32 0 + store i8 1, i8* %"$adtgep_2304", align 1 + %"$adtptr_2305" = bitcast %CName_Nil_ByStr20* %"$adtval_2303" to %TName_List_ByStr20* + store %TName_List_ByStr20* %"$adtptr_2305", %TName_List_ByStr20** %init, align 8, !dbg !368 + %"$gasrem_2306" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2307" = icmp ugt i64 1, %"$gasrem_2306" + br i1 %"$gascmp_2307", label %"$out_of_gas_2308", label %"$have_gas_2309" + +"$out_of_gas_2308": ; preds = %"$have_gas_2301" + call void @_out_of_gas() + br label %"$have_gas_2309" + +"$have_gas_2309": ; preds = %"$out_of_gas_2308", %"$have_gas_2301" + %"$consume_2310" = sub i64 %"$gasrem_2306", 1 + store i64 %"$consume_2310", i64* @_gasrem, align 8 %"$foldr_71" = alloca { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }, align 8 - %"$foldr_2278" = 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_2279" = 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_2278", 0 - %"$foldr_envptr_2280" = 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_2278", 1 - %"$iter_2281" = 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_2282" = call { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } %"$foldr_fptr_2279"(i8* %"$foldr_envptr_2280", { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$iter_2281"), !dbg !205 - store { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } %"$foldr_call_2282", { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }* %"$foldr_71", align 8, !dbg !205 + %"$foldr_2311" = 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_2312" = 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_2311", 0 + %"$foldr_envptr_2313" = 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_2311", 1 + %"$iter_2314" = 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_2315" = call { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } %"$foldr_fptr_2312"(i8* %"$foldr_envptr_2313", { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$iter_2314"), !dbg !369 + store { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } %"$foldr_call_2315", { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }* %"$foldr_71", align 8, !dbg !369 %"$foldr_72" = alloca { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }, align 8 - %"$$foldr_71_2283" = 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_71", align 8 - %"$$foldr_71_fptr_2284" = extractvalue { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } %"$$foldr_71_2283", 0 - %"$$foldr_71_envptr_2285" = extractvalue { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } %"$$foldr_71_2283", 1 - %"$init_2286" = load %TName_List_ByStr20*, %TName_List_ByStr20** %init, align 8 - %"$$foldr_71_call_2287" = call { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$$foldr_71_fptr_2284"(i8* %"$$foldr_71_envptr_2285", %TName_List_ByStr20* %"$init_2286"), !dbg !205 - store { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$$foldr_71_call_2287", { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }* %"$foldr_72", align 8, !dbg !205 - %"$$foldr_72_2288" = load { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }, { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }* %"$foldr_72", align 8 - store { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$$foldr_72_2288", { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }* %"$retval_312", align 8, !dbg !205 - %"$$retval_312_2289" = load { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }, { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }* %"$retval_312", align 8 - ret { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$$retval_312_2289" -} - -define internal { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } @"$fundef_309"(%"$$fundef_309_env_604"* %0) !dbg !206 { -entry: - %"$$fundef_309_env_list_foldr_2206" = getelementptr inbounds %"$$fundef_309_env_604", %"$$fundef_309_env_604"* %0, i32 0, i32 0 - %"$list_foldr_envload_2207" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_309_env_list_foldr_2206", align 8 + %"$$foldr_71_2316" = 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_71", align 8 + %"$$foldr_71_fptr_2317" = extractvalue { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } %"$$foldr_71_2316", 0 + %"$$foldr_71_envptr_2318" = extractvalue { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } %"$$foldr_71_2316", 1 + %"$init_2319" = load %TName_List_ByStr20*, %TName_List_ByStr20** %init, align 8 + %"$$foldr_71_call_2320" = call { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$$foldr_71_fptr_2317"(i8* %"$$foldr_71_envptr_2318", %TName_List_ByStr20* %"$init_2319"), !dbg !369 + store { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$$foldr_71_call_2320", { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }* %"$foldr_72", align 8, !dbg !369 + %"$$foldr_72_2321" = load { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }, { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }* %"$foldr_72", align 8 + store { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$$foldr_72_2321", { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }* %"$retval_312", align 8, !dbg !369 + %"$$retval_312_2322" = load { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }, { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }* %"$retval_312", align 8 + ret { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$$retval_312_2322" +} + +define internal { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } @"$fundef_309"(%"$$fundef_309_env_604"* %0) !dbg !370 { +entry: + %"$$fundef_309_env_list_foldr_2239" = getelementptr inbounds %"$$fundef_309_env_604", %"$$fundef_309_env_604"* %0, i32 0, i32 0 + %"$list_foldr_envload_2240" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_309_env_list_foldr_2239", align 8 %list_foldr = alloca { i8*, i8* }*, align 8 - store { i8*, i8* }* %"$list_foldr_envload_2207", { i8*, i8* }** %list_foldr, align 8 + store { i8*, i8* }* %"$list_foldr_envload_2240", { i8*, i8* }** %list_foldr, align 8 %"$retval_310" = alloca { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* }, align 8 - %"$gasrem_2208" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2209" = icmp ugt i64 1, %"$gasrem_2208" - br i1 %"$gascmp_2209", label %"$out_of_gas_2210", label %"$have_gas_2211" - -"$out_of_gas_2210": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_2211" - -"$have_gas_2211": ; preds = %"$out_of_gas_2210", %entry - %"$consume_2212" = sub i64 %"$gasrem_2208", 1 - store i64 %"$consume_2212", i64* @_gasrem, align 8 - %"$$fundef_311_envp_2213_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_311_envp_2213_salloc" = call i8* @_salloc(i8* %"$$fundef_311_envp_2213_load", i64 8) - %"$$fundef_311_envp_2213" = bitcast i8* %"$$fundef_311_envp_2213_salloc" to %"$$fundef_311_env_603"* - %"$$fundef_311_env_voidp_2215" = bitcast %"$$fundef_311_env_603"* %"$$fundef_311_envp_2213" to i8* - %"$$fundef_311_cloval_2216" = 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_311_env_603"*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })* @"$fundef_311" to { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*), i8* undef }, i8* %"$$fundef_311_env_voidp_2215", 1 - %"$$fundef_311_env_list_foldr_2217" = getelementptr inbounds %"$$fundef_311_env_603", %"$$fundef_311_env_603"* %"$$fundef_311_envp_2213", i32 0, i32 0 - %"$list_foldr_2218" = load { i8*, i8* }*, { i8*, i8* }** %list_foldr, align 8 - store { i8*, i8* }* %"$list_foldr_2218", { i8*, i8* }** %"$$fundef_311_env_list_foldr_2217", align 8 - store { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } %"$$fundef_311_cloval_2216", { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* }* %"$retval_310", align 8, !dbg !207 - %"$$retval_310_2219" = 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_310", align 8 - ret { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } %"$$retval_310_2219" -} - -define internal %TName_List_ByStr20* @"$fundef_307"(%"$$fundef_307_env_605"* %0, %TName_List_ByStr20* %1) !dbg !208 { -entry: - %"$$fundef_307_env_f_2138" = getelementptr inbounds %"$$fundef_307_env_605", %"$$fundef_307_env_605"* %0, i32 0, i32 0 - %"$f_envload_2139" = 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_307_env_f_2138", align 8 + %"$gasrem_2241" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2242" = icmp ugt i64 1, %"$gasrem_2241" + br i1 %"$gascmp_2242", label %"$out_of_gas_2243", label %"$have_gas_2244" + +"$out_of_gas_2243": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_2244" + +"$have_gas_2244": ; preds = %"$out_of_gas_2243", %entry + %"$consume_2245" = sub i64 %"$gasrem_2241", 1 + store i64 %"$consume_2245", i64* @_gasrem, align 8 + %"$$fundef_311_envp_2246_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_311_envp_2246_salloc" = call i8* @_salloc(i8* %"$$fundef_311_envp_2246_load", i64 8) + %"$$fundef_311_envp_2246" = bitcast i8* %"$$fundef_311_envp_2246_salloc" to %"$$fundef_311_env_603"* + %"$$fundef_311_env_voidp_2248" = bitcast %"$$fundef_311_env_603"* %"$$fundef_311_envp_2246" to i8* + %"$$fundef_311_cloval_2249" = 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_311_env_603"*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })* @"$fundef_311" to { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*), i8* undef }, i8* %"$$fundef_311_env_voidp_2248", 1 + %"$$fundef_311_env_list_foldr_2250" = getelementptr inbounds %"$$fundef_311_env_603", %"$$fundef_311_env_603"* %"$$fundef_311_envp_2246", i32 0, i32 0 + %"$list_foldr_2251" = load { i8*, i8* }*, { i8*, i8* }** %list_foldr, align 8 + store { i8*, i8* }* %"$list_foldr_2251", { i8*, i8* }** %"$$fundef_311_env_list_foldr_2250", align 8 + store { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } %"$$fundef_311_cloval_2249", { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* }* %"$retval_310", align 8, !dbg !371 + %"$$retval_310_2252" = 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_310", align 8 + ret { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } %"$$retval_310_2252" +} + +define internal %TName_List_ByStr20* @"$fundef_307"(%"$$fundef_307_env_605"* %0, %TName_List_ByStr20* %1) !dbg !372 { +entry: + %"$l_2238" = alloca %TName_List_ByStr20*, align 8 + store %TName_List_ByStr20* %1, %TName_List_ByStr20** %"$l_2238", align 8 + call void @llvm.dbg.declare(metadata %TName_List_ByStr20** %"$l_2238", metadata !373, metadata !DIExpression()), !dbg !374 + %"$$fundef_307_env_f_2170" = getelementptr inbounds %"$$fundef_307_env_605", %"$$fundef_307_env_605"* %0, i32 0, i32 0 + %"$f_envload_2171" = 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_307_env_f_2170", 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_2139", { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* }* %f, align 8 - %"$$fundef_307_env_g_2140" = getelementptr inbounds %"$$fundef_307_env_605", %"$$fundef_307_env_605"* %0, i32 0, i32 1 - %"$g_envload_2141" = 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_307_env_g_2140", align 8 + store { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$f_envload_2171", { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* }* %f, align 8 + %"$$fundef_307_env_g_2172" = getelementptr inbounds %"$$fundef_307_env_605", %"$$fundef_307_env_605"* %0, i32 0, i32 1 + %"$g_envload_2173" = 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_307_env_g_2172", 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_2141", { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }* %g, align 8 - %"$$fundef_307_env_z_2142" = getelementptr inbounds %"$$fundef_307_env_605", %"$$fundef_307_env_605"* %0, i32 0, i32 2 - %"$z_envload_2143" = load %TName_List_ByStr20*, %TName_List_ByStr20** %"$$fundef_307_env_z_2142", align 8 + store { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } %"$g_envload_2173", { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }* %g, align 8 + %"$$fundef_307_env_z_2174" = getelementptr inbounds %"$$fundef_307_env_605", %"$$fundef_307_env_605"* %0, i32 0, i32 2 + %"$z_envload_2175" = load %TName_List_ByStr20*, %TName_List_ByStr20** %"$$fundef_307_env_z_2174", align 8 %z = alloca %TName_List_ByStr20*, align 8 - store %TName_List_ByStr20* %"$z_envload_2143", %TName_List_ByStr20** %z, align 8 + store %TName_List_ByStr20* %"$z_envload_2175", %TName_List_ByStr20** %z, align 8 %"$retval_308" = alloca %TName_List_ByStr20*, align 8 - %"$gasrem_2144" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2145" = icmp ugt i64 2, %"$gasrem_2144" - br i1 %"$gascmp_2145", label %"$out_of_gas_2146", label %"$have_gas_2147" - -"$out_of_gas_2146": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_2147" - -"$have_gas_2147": ; preds = %"$out_of_gas_2146", %entry - %"$consume_2148" = sub i64 %"$gasrem_2144", 2 - store i64 %"$consume_2148", i64* @_gasrem, align 8 - %"$l_tag_2150" = getelementptr inbounds %TName_List_ByStr20, %TName_List_ByStr20* %1, i32 0, i32 0 - %"$l_tag_2151" = load i8, i8* %"$l_tag_2150", align 1 - switch i8 %"$l_tag_2151", label %"$empty_default_2152" [ - i8 0, label %"$Cons_2153" - i8 1, label %"$Nil_2197" - ], !dbg !209 - -"$Cons_2153": ; preds = %"$have_gas_2147" - %"$l_2154" = bitcast %TName_List_ByStr20* %1 to %CName_Cons_ByStr20* - %"$h_gep_2155" = getelementptr inbounds %CName_Cons_ByStr20, %CName_Cons_ByStr20* %"$l_2154", i32 0, i32 1 - %"$h_load_2156" = load [20 x i8], [20 x i8]* %"$h_gep_2155", align 1 + call void @llvm.dbg.declare(metadata %TName_List_ByStr20** %"$retval_308", metadata !375, metadata !DIExpression()), !dbg !376 + %"$gasrem_2176" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2177" = icmp ugt i64 2, %"$gasrem_2176" + br i1 %"$gascmp_2177", label %"$out_of_gas_2178", label %"$have_gas_2179" + +"$out_of_gas_2178": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_2179" + +"$have_gas_2179": ; preds = %"$out_of_gas_2178", %entry + %"$consume_2180" = sub i64 %"$gasrem_2176", 2 + store i64 %"$consume_2180", i64* @_gasrem, align 8 + %"$l_tag_2182" = getelementptr inbounds %TName_List_ByStr20, %TName_List_ByStr20* %1, i32 0, i32 0 + %"$l_tag_2183" = load i8, i8* %"$l_tag_2182", align 1 + switch i8 %"$l_tag_2183", label %"$empty_default_2184" [ + i8 0, label %"$Cons_2185" + i8 1, label %"$Nil_2229" + ], !dbg !376 + +"$Cons_2185": ; preds = %"$have_gas_2179" + %"$l_2186" = bitcast %TName_List_ByStr20* %1 to %CName_Cons_ByStr20* + %"$h_gep_2187" = getelementptr inbounds %CName_Cons_ByStr20, %CName_Cons_ByStr20* %"$l_2186", i32 0, i32 1 + %"$h_load_2188" = load [20 x i8], [20 x i8]* %"$h_gep_2187", align 1 %h = alloca [20 x i8], align 1 - store [20 x i8] %"$h_load_2156", [20 x i8]* %h, align 1 - %"$t_gep_2157" = getelementptr inbounds %CName_Cons_ByStr20, %CName_Cons_ByStr20* %"$l_2154", i32 0, i32 2 - %"$t_load_2158" = load %TName_List_ByStr20*, %TName_List_ByStr20** %"$t_gep_2157", align 8 + store [20 x i8] %"$h_load_2188", [20 x i8]* %h, align 1 + %"$t_gep_2189" = getelementptr inbounds %CName_Cons_ByStr20, %CName_Cons_ByStr20* %"$l_2186", i32 0, i32 2 + %"$t_load_2190" = load %TName_List_ByStr20*, %TName_List_ByStr20** %"$t_gep_2189", align 8 %t = alloca %TName_List_ByStr20*, align 8 - store %TName_List_ByStr20* %"$t_load_2158", %TName_List_ByStr20** %t, align 8 - %"$gasrem_2159" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2160" = icmp ugt i64 1, %"$gasrem_2159" - br i1 %"$gascmp_2160", label %"$out_of_gas_2161", label %"$have_gas_2162" + store %TName_List_ByStr20* %"$t_load_2190", %TName_List_ByStr20** %t, align 8 + %"$gasrem_2191" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2192" = icmp ugt i64 1, %"$gasrem_2191" + br i1 %"$gascmp_2192", label %"$out_of_gas_2193", label %"$have_gas_2194" -"$out_of_gas_2161": ; preds = %"$Cons_2153" +"$out_of_gas_2193": ; preds = %"$Cons_2185" call void @_out_of_gas() - br label %"$have_gas_2162" + br label %"$have_gas_2194" -"$have_gas_2162": ; preds = %"$out_of_gas_2161", %"$Cons_2153" - %"$consume_2163" = sub i64 %"$gasrem_2159", 1 - store i64 %"$consume_2163", i64* @_gasrem, align 8 +"$have_gas_2194": ; preds = %"$out_of_gas_2193", %"$Cons_2185" + %"$consume_2195" = sub i64 %"$gasrem_2191", 1 + store i64 %"$consume_2195", i64* @_gasrem, align 8 %res = alloca %TName_List_ByStr20*, 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" + call void @llvm.dbg.declare(metadata %TName_List_ByStr20** %res, metadata !377, metadata !DIExpression()), !dbg !380 + %"$gasrem_2196" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2197" = icmp ugt i64 1, %"$gasrem_2196" + br i1 %"$gascmp_2197", label %"$out_of_gas_2198", label %"$have_gas_2199" -"$out_of_gas_2166": ; preds = %"$have_gas_2162" +"$out_of_gas_2198": ; preds = %"$have_gas_2194" call void @_out_of_gas() - br label %"$have_gas_2167" + br label %"$have_gas_2199" -"$have_gas_2167": ; preds = %"$out_of_gas_2166", %"$have_gas_2162" - %"$consume_2168" = sub i64 %"$gasrem_2164", 1 - store i64 %"$consume_2168", i64* @_gasrem, align 8 +"$have_gas_2199": ; preds = %"$out_of_gas_2198", %"$have_gas_2194" + %"$consume_2200" = sub i64 %"$gasrem_2196", 1 + store i64 %"$consume_2200", i64* @_gasrem, align 8 %"$g_66" = alloca { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }, align 8 - %"$g_2169" = 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_2170" = extractvalue { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } %"$g_2169", 0 - %"$g_envptr_2171" = extractvalue { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } %"$g_2169", 1 - %"$z_2172" = load %TName_List_ByStr20*, %TName_List_ByStr20** %z, align 8 - %"$g_call_2173" = call { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$g_fptr_2170"(i8* %"$g_envptr_2171", %TName_List_ByStr20* %"$z_2172"), !dbg !210 - store { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$g_call_2173", { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }* %"$g_66", align 8, !dbg !210 + %"$g_2201" = 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_2202" = extractvalue { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } %"$g_2201", 0 + %"$g_envptr_2203" = extractvalue { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } %"$g_2201", 1 + %"$z_2204" = load %TName_List_ByStr20*, %TName_List_ByStr20** %z, align 8 + %"$g_call_2205" = call { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$g_fptr_2202"(i8* %"$g_envptr_2203", %TName_List_ByStr20* %"$z_2204"), !dbg !381 + store { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$g_call_2205", { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }* %"$g_66", align 8, !dbg !381 %"$g_67" = alloca %TName_List_ByStr20*, align 8 - %"$$g_66_2174" = load { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }, { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }* %"$g_66", align 8 - %"$$g_66_fptr_2175" = extractvalue { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$$g_66_2174", 0 - %"$$g_66_envptr_2176" = extractvalue { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$$g_66_2174", 1 - %"$t_2177" = load %TName_List_ByStr20*, %TName_List_ByStr20** %t, align 8 - %"$$g_66_call_2178" = call %TName_List_ByStr20* %"$$g_66_fptr_2175"(i8* %"$$g_66_envptr_2176", %TName_List_ByStr20* %"$t_2177"), !dbg !210 - store %TName_List_ByStr20* %"$$g_66_call_2178", %TName_List_ByStr20** %"$g_67", align 8, !dbg !210 - %"$$g_67_2179" = load %TName_List_ByStr20*, %TName_List_ByStr20** %"$g_67", align 8 - store %TName_List_ByStr20* %"$$g_67_2179", %TName_List_ByStr20** %res, align 8, !dbg !210 - %"$gasrem_2180" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2181" = icmp ugt i64 1, %"$gasrem_2180" - br i1 %"$gascmp_2181", label %"$out_of_gas_2182", label %"$have_gas_2183" - -"$out_of_gas_2182": ; preds = %"$have_gas_2167" - call void @_out_of_gas() - br label %"$have_gas_2183" - -"$have_gas_2183": ; preds = %"$out_of_gas_2182", %"$have_gas_2167" - %"$consume_2184" = sub i64 %"$gasrem_2180", 1 - store i64 %"$consume_2184", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_List_ByStr20** %"$g_67", metadata !382, metadata !DIExpression()), !dbg !381 + %"$$g_66_2206" = load { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }, { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }* %"$g_66", align 8 + %"$$g_66_fptr_2207" = extractvalue { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$$g_66_2206", 0 + %"$$g_66_envptr_2208" = extractvalue { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$$g_66_2206", 1 + %"$t_2209" = load %TName_List_ByStr20*, %TName_List_ByStr20** %t, align 8 + %"$$g_66_call_2210" = call %TName_List_ByStr20* %"$$g_66_fptr_2207"(i8* %"$$g_66_envptr_2208", %TName_List_ByStr20* %"$t_2209"), !dbg !381 + store %TName_List_ByStr20* %"$$g_66_call_2210", %TName_List_ByStr20** %"$g_67", align 8, !dbg !381 + %"$$g_67_2211" = load %TName_List_ByStr20*, %TName_List_ByStr20** %"$g_67", align 8 + store %TName_List_ByStr20* %"$$g_67_2211", %TName_List_ByStr20** %res, align 8, !dbg !381 + %"$gasrem_2212" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2213" = icmp ugt i64 1, %"$gasrem_2212" + br i1 %"$gascmp_2213", label %"$out_of_gas_2214", label %"$have_gas_2215" + +"$out_of_gas_2214": ; preds = %"$have_gas_2199" + call void @_out_of_gas() + br label %"$have_gas_2215" + +"$have_gas_2215": ; preds = %"$out_of_gas_2214", %"$have_gas_2199" + %"$consume_2216" = sub i64 %"$gasrem_2212", 1 + store i64 %"$consume_2216", i64* @_gasrem, align 8 %"$f_68" = alloca { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }, align 8 - %"$f_2185" = 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_2186" = extractvalue { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$f_2185", 0 - %"$f_envptr_2187" = extractvalue { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$f_2185", 1 - %"$f_h_2188" = alloca [20 x i8], align 1 - %"$h_2189" = load [20 x i8], [20 x i8]* %h, align 1 - store [20 x i8] %"$h_2189", [20 x i8]* %"$f_h_2188", align 1 - %"$f_call_2190" = call { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$f_fptr_2186"(i8* %"$f_envptr_2187", [20 x i8]* %"$f_h_2188"), !dbg !213 - store { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$f_call_2190", { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }* %"$f_68", align 8, !dbg !213 + %"$f_2217" = 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_2218" = extractvalue { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$f_2217", 0 + %"$f_envptr_2219" = extractvalue { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$f_2217", 1 + %"$f_h_2220" = alloca [20 x i8], align 1 + %"$h_2221" = load [20 x i8], [20 x i8]* %h, align 1 + store [20 x i8] %"$h_2221", [20 x i8]* %"$f_h_2220", align 1 + %"$f_call_2222" = call { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$f_fptr_2218"(i8* %"$f_envptr_2219", [20 x i8]* %"$f_h_2220"), !dbg !383 + store { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$f_call_2222", { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }* %"$f_68", align 8, !dbg !383 %"$f_69" = alloca %TName_List_ByStr20*, align 8 - %"$$f_68_2191" = load { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }, { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }* %"$f_68", align 8 - %"$$f_68_fptr_2192" = extractvalue { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$$f_68_2191", 0 - %"$$f_68_envptr_2193" = extractvalue { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$$f_68_2191", 1 - %"$res_2194" = load %TName_List_ByStr20*, %TName_List_ByStr20** %res, align 8 - %"$$f_68_call_2195" = call %TName_List_ByStr20* %"$$f_68_fptr_2192"(i8* %"$$f_68_envptr_2193", %TName_List_ByStr20* %"$res_2194"), !dbg !213 - store %TName_List_ByStr20* %"$$f_68_call_2195", %TName_List_ByStr20** %"$f_69", align 8, !dbg !213 - %"$$f_69_2196" = load %TName_List_ByStr20*, %TName_List_ByStr20** %"$f_69", align 8 - store %TName_List_ByStr20* %"$$f_69_2196", %TName_List_ByStr20** %"$retval_308", align 8, !dbg !213 - br label %"$matchsucc_2149" - -"$Nil_2197": ; preds = %"$have_gas_2147" - %"$l_2198" = bitcast %TName_List_ByStr20* %1 to %CName_Nil_ByStr20* - %"$gasrem_2199" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2200" = icmp ugt i64 1, %"$gasrem_2199" - br i1 %"$gascmp_2200", label %"$out_of_gas_2201", label %"$have_gas_2202" - -"$out_of_gas_2201": ; preds = %"$Nil_2197" - call void @_out_of_gas() - br label %"$have_gas_2202" - -"$have_gas_2202": ; preds = %"$out_of_gas_2201", %"$Nil_2197" - %"$consume_2203" = sub i64 %"$gasrem_2199", 1 - store i64 %"$consume_2203", i64* @_gasrem, align 8 - %"$z_2204" = load %TName_List_ByStr20*, %TName_List_ByStr20** %z, align 8 - store %TName_List_ByStr20* %"$z_2204", %TName_List_ByStr20** %"$retval_308", align 8, !dbg !214 - br label %"$matchsucc_2149" - -"$empty_default_2152": ; preds = %"$have_gas_2147" - br label %"$matchsucc_2149" - -"$matchsucc_2149": ; preds = %"$have_gas_2202", %"$have_gas_2183", %"$empty_default_2152" - %"$$retval_308_2205" = load %TName_List_ByStr20*, %TName_List_ByStr20** %"$retval_308", align 8 - ret %TName_List_ByStr20* %"$$retval_308_2205" -} - -define internal { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } @"$fundef_305"(%"$$fundef_305_env_606"* %0, %TName_List_ByStr20* %1) !dbg !216 { -entry: - %"$$fundef_305_env_f_2114" = getelementptr inbounds %"$$fundef_305_env_606", %"$$fundef_305_env_606"* %0, i32 0, i32 0 - %"$f_envload_2115" = 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_305_env_f_2114", align 8 + call void @llvm.dbg.declare(metadata %TName_List_ByStr20** %"$f_69", metadata !384, metadata !DIExpression()), !dbg !383 + %"$$f_68_2223" = load { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }, { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }* %"$f_68", align 8 + %"$$f_68_fptr_2224" = extractvalue { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$$f_68_2223", 0 + %"$$f_68_envptr_2225" = extractvalue { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$$f_68_2223", 1 + %"$res_2226" = load %TName_List_ByStr20*, %TName_List_ByStr20** %res, align 8 + %"$$f_68_call_2227" = call %TName_List_ByStr20* %"$$f_68_fptr_2224"(i8* %"$$f_68_envptr_2225", %TName_List_ByStr20* %"$res_2226"), !dbg !383 + store %TName_List_ByStr20* %"$$f_68_call_2227", %TName_List_ByStr20** %"$f_69", align 8, !dbg !383 + %"$$f_69_2228" = load %TName_List_ByStr20*, %TName_List_ByStr20** %"$f_69", align 8 + store %TName_List_ByStr20* %"$$f_69_2228", %TName_List_ByStr20** %"$retval_308", align 8, !dbg !383 + br label %"$matchsucc_2181" + +"$Nil_2229": ; preds = %"$have_gas_2179" + %"$l_2230" = bitcast %TName_List_ByStr20* %1 to %CName_Nil_ByStr20* + %"$gasrem_2231" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2232" = icmp ugt i64 1, %"$gasrem_2231" + br i1 %"$gascmp_2232", label %"$out_of_gas_2233", label %"$have_gas_2234" + +"$out_of_gas_2233": ; preds = %"$Nil_2229" + call void @_out_of_gas() + br label %"$have_gas_2234" + +"$have_gas_2234": ; preds = %"$out_of_gas_2233", %"$Nil_2229" + %"$consume_2235" = sub i64 %"$gasrem_2231", 1 + store i64 %"$consume_2235", i64* @_gasrem, align 8 + %"$z_2236" = load %TName_List_ByStr20*, %TName_List_ByStr20** %z, align 8 + store %TName_List_ByStr20* %"$z_2236", %TName_List_ByStr20** %"$retval_308", align 8, !dbg !385 + br label %"$matchsucc_2181" + +"$empty_default_2184": ; preds = %"$have_gas_2179" + br label %"$matchsucc_2181" + +"$matchsucc_2181": ; preds = %"$have_gas_2234", %"$have_gas_2215", %"$empty_default_2184" + %"$$retval_308_2237" = load %TName_List_ByStr20*, %TName_List_ByStr20** %"$retval_308", align 8 + ret %TName_List_ByStr20* %"$$retval_308_2237" +} + +define internal { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } @"$fundef_305"(%"$$fundef_305_env_606"* %0, %TName_List_ByStr20* %1) !dbg !387 { +entry: + %"$z_2169" = alloca %TName_List_ByStr20*, align 8 + store %TName_List_ByStr20* %1, %TName_List_ByStr20** %"$z_2169", align 8 + call void @llvm.dbg.declare(metadata %TName_List_ByStr20** %"$z_2169", metadata !388, metadata !DIExpression()), !dbg !389 + %"$$fundef_305_env_f_2145" = getelementptr inbounds %"$$fundef_305_env_606", %"$$fundef_305_env_606"* %0, i32 0, i32 0 + %"$f_envload_2146" = 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_305_env_f_2145", 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_2115", { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* }* %f, align 8 - %"$$fundef_305_env_g_2116" = getelementptr inbounds %"$$fundef_305_env_606", %"$$fundef_305_env_606"* %0, i32 0, i32 1 - %"$g_envload_2117" = 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_305_env_g_2116", align 8 + store { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$f_envload_2146", { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* }* %f, align 8 + %"$$fundef_305_env_g_2147" = getelementptr inbounds %"$$fundef_305_env_606", %"$$fundef_305_env_606"* %0, i32 0, i32 1 + %"$g_envload_2148" = 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_305_env_g_2147", 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_2117", { { %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_envload_2148", { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }* %g, align 8 %"$retval_306" = alloca { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }, align 8 - %"$gasrem_2118" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2119" = icmp ugt i64 1, %"$gasrem_2118" - br i1 %"$gascmp_2119", label %"$out_of_gas_2120", label %"$have_gas_2121" - -"$out_of_gas_2120": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_2121" - -"$have_gas_2121": ; preds = %"$out_of_gas_2120", %entry - %"$consume_2122" = sub i64 %"$gasrem_2118", 1 - store i64 %"$consume_2122", i64* @_gasrem, align 8 - %"$gasrem_2123" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2124" = icmp ugt i64 1, %"$gasrem_2123" - br i1 %"$gascmp_2124", label %"$out_of_gas_2125", label %"$have_gas_2126" - -"$out_of_gas_2125": ; preds = %"$have_gas_2121" - call void @_out_of_gas() - br label %"$have_gas_2126" - -"$have_gas_2126": ; preds = %"$out_of_gas_2125", %"$have_gas_2121" - %"$consume_2127" = sub i64 %"$gasrem_2123", 1 - store i64 %"$consume_2127", i64* @_gasrem, align 8 - %"$$fundef_307_envp_2128_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_307_envp_2128_salloc" = call i8* @_salloc(i8* %"$$fundef_307_envp_2128_load", i64 40) - %"$$fundef_307_envp_2128" = bitcast i8* %"$$fundef_307_envp_2128_salloc" to %"$$fundef_307_env_605"* - %"$$fundef_307_env_voidp_2130" = bitcast %"$$fundef_307_env_605"* %"$$fundef_307_envp_2128" to i8* - %"$$fundef_307_cloval_2131" = insertvalue { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)* bitcast (%TName_List_ByStr20* (%"$$fundef_307_env_605"*, %TName_List_ByStr20*)* @"$fundef_307" to %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*), i8* undef }, i8* %"$$fundef_307_env_voidp_2130", 1 - %"$$fundef_307_env_f_2132" = getelementptr inbounds %"$$fundef_307_env_605", %"$$fundef_307_env_605"* %"$$fundef_307_envp_2128", i32 0, i32 0 - %"$f_2133" = 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_2133", { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* }* %"$$fundef_307_env_f_2132", align 8 - %"$$fundef_307_env_g_2134" = getelementptr inbounds %"$$fundef_307_env_605", %"$$fundef_307_env_605"* %"$$fundef_307_envp_2128", i32 0, i32 1 - %"$g_2135" = 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_2135", { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }* %"$$fundef_307_env_g_2134", align 8 - %"$$fundef_307_env_z_2136" = getelementptr inbounds %"$$fundef_307_env_605", %"$$fundef_307_env_605"* %"$$fundef_307_envp_2128", i32 0, i32 2 - store %TName_List_ByStr20* %1, %TName_List_ByStr20** %"$$fundef_307_env_z_2136", align 8 - store { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$$fundef_307_cloval_2131", { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }* %"$retval_306", align 8, !dbg !217 - %"$$retval_306_2137" = load { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }, { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }* %"$retval_306", align 8 - ret { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$$retval_306_2137" -} - -define internal { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } @"$fundef_303"(%"$$fundef_303_env_607"* %0, { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } %1) !dbg !218 { + %"$gasrem_2149" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2150" = icmp ugt i64 1, %"$gasrem_2149" + br i1 %"$gascmp_2150", label %"$out_of_gas_2151", label %"$have_gas_2152" + +"$out_of_gas_2151": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_2152" + +"$have_gas_2152": ; preds = %"$out_of_gas_2151", %entry + %"$consume_2153" = sub i64 %"$gasrem_2149", 1 + store i64 %"$consume_2153", i64* @_gasrem, align 8 + %"$gasrem_2154" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2155" = icmp ugt i64 1, %"$gasrem_2154" + br i1 %"$gascmp_2155", label %"$out_of_gas_2156", label %"$have_gas_2157" + +"$out_of_gas_2156": ; preds = %"$have_gas_2152" + call void @_out_of_gas() + br label %"$have_gas_2157" + +"$have_gas_2157": ; preds = %"$out_of_gas_2156", %"$have_gas_2152" + %"$consume_2158" = sub i64 %"$gasrem_2154", 1 + store i64 %"$consume_2158", i64* @_gasrem, align 8 + %"$$fundef_307_envp_2159_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_307_envp_2159_salloc" = call i8* @_salloc(i8* %"$$fundef_307_envp_2159_load", i64 40) + %"$$fundef_307_envp_2159" = bitcast i8* %"$$fundef_307_envp_2159_salloc" to %"$$fundef_307_env_605"* + %"$$fundef_307_env_voidp_2161" = bitcast %"$$fundef_307_env_605"* %"$$fundef_307_envp_2159" to i8* + %"$$fundef_307_cloval_2162" = insertvalue { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)* bitcast (%TName_List_ByStr20* (%"$$fundef_307_env_605"*, %TName_List_ByStr20*)* @"$fundef_307" to %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*), i8* undef }, i8* %"$$fundef_307_env_voidp_2161", 1 + %"$$fundef_307_env_f_2163" = getelementptr inbounds %"$$fundef_307_env_605", %"$$fundef_307_env_605"* %"$$fundef_307_envp_2159", i32 0, i32 0 + %"$f_2164" = 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_2164", { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* }* %"$$fundef_307_env_f_2163", align 8 + %"$$fundef_307_env_g_2165" = getelementptr inbounds %"$$fundef_307_env_605", %"$$fundef_307_env_605"* %"$$fundef_307_envp_2159", i32 0, i32 1 + %"$g_2166" = 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_2166", { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }* %"$$fundef_307_env_g_2165", align 8 + %"$$fundef_307_env_z_2167" = getelementptr inbounds %"$$fundef_307_env_605", %"$$fundef_307_env_605"* %"$$fundef_307_envp_2159", i32 0, i32 2 + store %TName_List_ByStr20* %1, %TName_List_ByStr20** %"$$fundef_307_env_z_2167", align 8 + store { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$$fundef_307_cloval_2162", { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }* %"$retval_306", align 8, !dbg !390 + %"$$retval_306_2168" = load { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }, { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }* %"$retval_306", align 8 + ret { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$$retval_306_2168" +} + +define internal { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } @"$fundef_303"(%"$$fundef_303_env_607"* %0, { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } %1) !dbg !391 { entry: %"$retval_304" = alloca { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }, align 8 - %"$gasrem_2100" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2101" = icmp ugt i64 1, %"$gasrem_2100" - br i1 %"$gascmp_2101", label %"$out_of_gas_2102", label %"$have_gas_2103" - -"$out_of_gas_2102": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_2103" - -"$have_gas_2103": ; preds = %"$out_of_gas_2102", %entry - %"$consume_2104" = sub i64 %"$gasrem_2100", 1 - store i64 %"$consume_2104", i64* @_gasrem, align 8 - %"$$fundef_305_envp_2105_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_305_envp_2105_salloc" = call i8* @_salloc(i8* %"$$fundef_305_envp_2105_load", i64 32) - %"$$fundef_305_envp_2105" = bitcast i8* %"$$fundef_305_envp_2105_salloc" to %"$$fundef_305_env_606"* - %"$$fundef_305_env_voidp_2107" = bitcast %"$$fundef_305_env_606"* %"$$fundef_305_envp_2105" to i8* - %"$$fundef_305_cloval_2108" = 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_305_env_606"*, %TName_List_ByStr20*)* @"$fundef_305" to { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*), i8* undef }, i8* %"$$fundef_305_env_voidp_2107", 1 + %"$gasrem_2131" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2132" = icmp ugt i64 1, %"$gasrem_2131" + br i1 %"$gascmp_2132", label %"$out_of_gas_2133", label %"$have_gas_2134" + +"$out_of_gas_2133": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_2134" + +"$have_gas_2134": ; preds = %"$out_of_gas_2133", %entry + %"$consume_2135" = sub i64 %"$gasrem_2131", 1 + store i64 %"$consume_2135", i64* @_gasrem, align 8 + %"$$fundef_305_envp_2136_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_305_envp_2136_salloc" = call i8* @_salloc(i8* %"$$fundef_305_envp_2136_load", i64 32) + %"$$fundef_305_envp_2136" = bitcast i8* %"$$fundef_305_envp_2136_salloc" to %"$$fundef_305_env_606"* + %"$$fundef_305_env_voidp_2138" = bitcast %"$$fundef_305_env_606"* %"$$fundef_305_envp_2136" to i8* + %"$$fundef_305_cloval_2139" = 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_305_env_606"*, %TName_List_ByStr20*)* @"$fundef_305" to { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*), i8* undef }, i8* %"$$fundef_305_env_voidp_2138", 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_305_cloval_2108", { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }* %g, align 8, !dbg !219 - %"$$fundef_305_env_f_2109" = getelementptr inbounds %"$$fundef_305_env_606", %"$$fundef_305_env_606"* %"$$fundef_305_envp_2105", 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_305_env_f_2109", align 8 - %"$$fundef_305_env_g_2110" = getelementptr inbounds %"$$fundef_305_env_606", %"$$fundef_305_env_606"* %"$$fundef_305_envp_2105", i32 0, i32 1 - %"$g_2111" = 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_2111", { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }* %"$$fundef_305_env_g_2110", align 8 - %"$g_2112" = 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_2112", { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }* %"$retval_304", align 8, !dbg !219 - %"$$retval_304_2113" = 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_304", align 8 - ret { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } %"$$retval_304_2113" + store { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } %"$$fundef_305_cloval_2139", { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }* %g, align 8, !dbg !392 + %"$$fundef_305_env_f_2140" = getelementptr inbounds %"$$fundef_305_env_606", %"$$fundef_305_env_606"* %"$$fundef_305_envp_2136", 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_305_env_f_2140", align 8 + %"$$fundef_305_env_g_2141" = getelementptr inbounds %"$$fundef_305_env_606", %"$$fundef_305_env_606"* %"$$fundef_305_envp_2136", i32 0, i32 1 + %"$g_2142" = 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_2142", { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }* %"$$fundef_305_env_g_2141", align 8 + %"$g_2143" = 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_2143", { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }* %"$retval_304", align 8, !dbg !392 + %"$$retval_304_2144" = 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_304", align 8 + ret { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } %"$$retval_304_2144" } -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_301"(%"$$fundef_301_env_608"* %0) !dbg !220 { +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_301"(%"$$fundef_301_env_608"* %0) !dbg !393 { entry: %"$retval_302" = 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_2091" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2092" = icmp ugt i64 1, %"$gasrem_2091" - br i1 %"$gascmp_2092", label %"$out_of_gas_2093", label %"$have_gas_2094" + %"$gasrem_2122" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2123" = icmp ugt i64 1, %"$gasrem_2122" + br i1 %"$gascmp_2123", label %"$out_of_gas_2124", label %"$have_gas_2125" -"$out_of_gas_2093": ; preds = %entry +"$out_of_gas_2124": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_2094" + br label %"$have_gas_2125" -"$have_gas_2094": ; preds = %"$out_of_gas_2093", %entry - %"$consume_2095" = sub i64 %"$gasrem_2091", 1 - store i64 %"$consume_2095", 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_303_env_607"*, { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* })* @"$fundef_303" 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_302", align 8, !dbg !221 - %"$$retval_302_2099" = 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_302", 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_302_2099" +"$have_gas_2125": ; preds = %"$out_of_gas_2124", %entry + %"$consume_2126" = sub i64 %"$gasrem_2122", 1 + store i64 %"$consume_2126", 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_303_env_607"*, { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* })* @"$fundef_303" 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_302", align 8, !dbg !394 + %"$$retval_302_2130" = 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_302", 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_302_2130" } -define internal { i8*, i8* }* @"$fundef_299"(%"$$fundef_299_env_609"* %0) !dbg !222 { +define internal { i8*, i8* }* @"$fundef_299"(%"$$fundef_299_env_609"* %0) !dbg !395 { entry: %"$retval_300" = alloca { i8*, i8* }*, align 8 - %"$gasrem_2079" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2080" = icmp ugt i64 1, %"$gasrem_2079" - br i1 %"$gascmp_2080", label %"$out_of_gas_2081", label %"$have_gas_2082" - -"$out_of_gas_2081": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_2082" - -"$have_gas_2082": ; preds = %"$out_of_gas_2081", %entry - %"$consume_2083" = sub i64 %"$gasrem_2079", 1 - store i64 %"$consume_2083", i64* @_gasrem, align 8 - %"$dyndisp_table_2087_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$dyndisp_table_2087_salloc_salloc" = call i8* @_salloc(i8* %"$dyndisp_table_2087_salloc_load", i64 48) - %"$dyndisp_table_2087_salloc" = bitcast i8* %"$dyndisp_table_2087_salloc_salloc" to [3 x { i8*, i8* }]* - %"$dyndisp_table_2087" = bitcast [3 x { i8*, i8* }]* %"$dyndisp_table_2087_salloc" to { i8*, i8* }* - %"$dyndisp_gep_2088" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_2087", i32 2 - %"$dyndisp_pcast_2089" = bitcast { i8*, i8* }* %"$dyndisp_gep_2088" 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_301_env_608"*)* @"$fundef_301" 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_2089", align 8 - store { i8*, i8* }* %"$dyndisp_table_2087", { i8*, i8* }** %"$retval_300", align 8, !dbg !223 - %"$$retval_300_2090" = load { i8*, i8* }*, { i8*, i8* }** %"$retval_300", align 8 - ret { i8*, i8* }* %"$$retval_300_2090" -} - -define internal %TName_Bool* @"$fundef_371"(%"$$fundef_371_env_610"* %0, [20 x i8]* %1) !dbg !224 { -entry: + %"$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" + +"$out_of_gas_2112": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_2113" + +"$have_gas_2113": ; preds = %"$out_of_gas_2112", %entry + %"$consume_2114" = sub i64 %"$gasrem_2110", 1 + store i64 %"$consume_2114", i64* @_gasrem, align 8 + %"$dyndisp_table_2118_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$dyndisp_table_2118_salloc_salloc" = call i8* @_salloc(i8* %"$dyndisp_table_2118_salloc_load", i64 48) + %"$dyndisp_table_2118_salloc" = bitcast i8* %"$dyndisp_table_2118_salloc_salloc" to [3 x { i8*, i8* }]* + %"$dyndisp_table_2118" = bitcast [3 x { i8*, i8* }]* %"$dyndisp_table_2118_salloc" to { i8*, i8* }* + %"$dyndisp_gep_2119" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_2118", i32 2 + %"$dyndisp_pcast_2120" = bitcast { i8*, i8* }* %"$dyndisp_gep_2119" 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_301_env_608"*)* @"$fundef_301" 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_2120", align 8 + store { i8*, i8* }* %"$dyndisp_table_2118", { i8*, i8* }** %"$retval_300", align 8, !dbg !396 + %"$$retval_300_2121" = load { i8*, i8* }*, { i8*, i8* }** %"$retval_300", align 8 + ret { i8*, i8* }* %"$$retval_300_2121" +} + +define internal %TName_Bool* @"$fundef_371"(%"$$fundef_371_env_610"* %0, [20 x i8]* %1) !dbg !397 { +entry: + %"$bs_2109" = alloca [20 x i8]*, align 8 + store [20 x i8]* %1, [20 x i8]** %"$bs_2109", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$bs_2109", metadata !398, metadata !DIExpression()), !dbg !399 %bs = load [20 x i8], [20 x i8]* %1, align 1 - %"$$fundef_371_env_$BoolUtils.negb_10_2040" = getelementptr inbounds %"$$fundef_371_env_610", %"$$fundef_371_env_610"* %0, i32 0, i32 0 - %"$$BoolUtils.negb_10_envload_2041" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$$fundef_371_env_$BoolUtils.negb_10_2040", align 8 + %"$$fundef_371_env_$BoolUtils.negb_10_2070" = getelementptr inbounds %"$$fundef_371_env_610", %"$$fundef_371_env_610"* %0, i32 0, i32 0 + %"$$BoolUtils.negb_10_envload_2071" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$$fundef_371_env_$BoolUtils.negb_10_2070", align 8 %"$BoolUtils.negb_10" = alloca { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, align 8 - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.negb_10_envload_2041", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.negb_10", align 8 - %"$$fundef_371_env_$ud-registry.listByStr20Contains_9_2042" = getelementptr inbounds %"$$fundef_371_env_610", %"$$fundef_371_env_610"* %0, i32 0, i32 1 - %"$$ud-registry.listByStr20Contains_9_envload_2043" = 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_371_env_$ud-registry.listByStr20Contains_9_2042", align 8 + store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.negb_10_envload_2071", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.negb_10", align 8 + %"$$fundef_371_env_$ud-registry.listByStr20Contains_9_2072" = getelementptr inbounds %"$$fundef_371_env_610", %"$$fundef_371_env_610"* %0, i32 0, i32 1 + %"$$ud-registry.listByStr20Contains_9_envload_2073" = 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_371_env_$ud-registry.listByStr20Contains_9_2072", align 8 %"$ud-registry.listByStr20Contains_9" = 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_9_envload_2043", { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }* %"$ud-registry.listByStr20Contains_9", align 8 - %"$$fundef_371_env_list_2044" = getelementptr inbounds %"$$fundef_371_env_610", %"$$fundef_371_env_610"* %0, i32 0, i32 2 - %"$list_envload_2045" = load %TName_List_ByStr20*, %TName_List_ByStr20** %"$$fundef_371_env_list_2044", align 8 + store { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } %"$$ud-registry.listByStr20Contains_9_envload_2073", { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }* %"$ud-registry.listByStr20Contains_9", align 8 + %"$$fundef_371_env_list_2074" = getelementptr inbounds %"$$fundef_371_env_610", %"$$fundef_371_env_610"* %0, i32 0, i32 2 + %"$list_envload_2075" = load %TName_List_ByStr20*, %TName_List_ByStr20** %"$$fundef_371_env_list_2074", align 8 %list = alloca %TName_List_ByStr20*, align 8 - store %TName_List_ByStr20* %"$list_envload_2045", %TName_List_ByStr20** %list, align 8 + store %TName_List_ByStr20* %"$list_envload_2075", %TName_List_ByStr20** %list, align 8 %"$retval_372" = alloca %TName_Bool*, 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" + call void @llvm.dbg.declare(metadata %TName_Bool** %"$retval_372", metadata !400, metadata !DIExpression()), !dbg !401 + %"$gasrem_2076" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2077" = icmp ugt i64 1, %"$gasrem_2076" + br i1 %"$gascmp_2077", label %"$out_of_gas_2078", label %"$have_gas_2079" -"$out_of_gas_2048": ; preds = %entry +"$out_of_gas_2078": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_2049" + br label %"$have_gas_2079" -"$have_gas_2049": ; preds = %"$out_of_gas_2048", %entry - %"$consume_2050" = sub i64 %"$gasrem_2046", 1 - store i64 %"$consume_2050", i64* @_gasrem, align 8 +"$have_gas_2079": ; preds = %"$out_of_gas_2078", %entry + %"$consume_2080" = sub i64 %"$gasrem_2076", 1 + store i64 %"$consume_2080", i64* @_gasrem, align 8 %b = alloca %TName_Bool*, align 8 - %"$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" + call void @llvm.dbg.declare(metadata %TName_Bool** %b, metadata !402, metadata !DIExpression()), !dbg !403 + %"$gasrem_2081" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2082" = icmp ugt i64 1, %"$gasrem_2081" + br i1 %"$gascmp_2082", label %"$out_of_gas_2083", label %"$have_gas_2084" -"$out_of_gas_2053": ; preds = %"$have_gas_2049" +"$out_of_gas_2083": ; preds = %"$have_gas_2079" call void @_out_of_gas() - br label %"$have_gas_2054" + br label %"$have_gas_2084" -"$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 +"$have_gas_2084": ; preds = %"$out_of_gas_2083", %"$have_gas_2079" + %"$consume_2085" = sub i64 %"$gasrem_2081", 1 + store i64 %"$consume_2085", i64* @_gasrem, align 8 %"$$ud-registry.listByStr20Contains_9_63" = alloca { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, align 8 - %"$$ud-registry.listByStr20Contains_9_2056" = 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_9", align 8 - %"$$ud-registry.listByStr20Contains_9_fptr_2057" = extractvalue { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } %"$$ud-registry.listByStr20Contains_9_2056", 0 - %"$$ud-registry.listByStr20Contains_9_envptr_2058" = extractvalue { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } %"$$ud-registry.listByStr20Contains_9_2056", 1 - %"$list_2059" = load %TName_List_ByStr20*, %TName_List_ByStr20** %list, align 8 - %"$$ud-registry.listByStr20Contains_9_call_2060" = call { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.listByStr20Contains_9_fptr_2057"(i8* %"$$ud-registry.listByStr20Contains_9_envptr_2058", %TName_List_ByStr20* %"$list_2059"), !dbg !225 - store { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.listByStr20Contains_9_call_2060", { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %"$$ud-registry.listByStr20Contains_9_63", align 8, !dbg !225 + %"$$ud-registry.listByStr20Contains_9_2086" = 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_9", align 8 + %"$$ud-registry.listByStr20Contains_9_fptr_2087" = extractvalue { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } %"$$ud-registry.listByStr20Contains_9_2086", 0 + %"$$ud-registry.listByStr20Contains_9_envptr_2088" = extractvalue { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } %"$$ud-registry.listByStr20Contains_9_2086", 1 + %"$list_2089" = load %TName_List_ByStr20*, %TName_List_ByStr20** %list, align 8 + %"$$ud-registry.listByStr20Contains_9_call_2090" = call { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.listByStr20Contains_9_fptr_2087"(i8* %"$$ud-registry.listByStr20Contains_9_envptr_2088", %TName_List_ByStr20* %"$list_2089"), !dbg !404 + store { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.listByStr20Contains_9_call_2090", { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %"$$ud-registry.listByStr20Contains_9_63", align 8, !dbg !404 %"$$ud-registry.listByStr20Contains_9_64" = alloca %TName_Bool*, align 8 - %"$$$ud-registry.listByStr20Contains_9_63_2061" = load { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %"$$ud-registry.listByStr20Contains_9_63", align 8 - %"$$$ud-registry.listByStr20Contains_9_63_fptr_2062" = extractvalue { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$$$ud-registry.listByStr20Contains_9_63_2061", 0 - %"$$$ud-registry.listByStr20Contains_9_63_envptr_2063" = extractvalue { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$$$ud-registry.listByStr20Contains_9_63_2061", 1 - %"$$$ud-registry.listByStr20Contains_9_63_bs_2064" = alloca [20 x i8], align 1 - store [20 x i8] %bs, [20 x i8]* %"$$$ud-registry.listByStr20Contains_9_63_bs_2064", align 1 - %"$$$ud-registry.listByStr20Contains_9_63_call_2065" = call %TName_Bool* %"$$$ud-registry.listByStr20Contains_9_63_fptr_2062"(i8* %"$$$ud-registry.listByStr20Contains_9_63_envptr_2063", [20 x i8]* %"$$$ud-registry.listByStr20Contains_9_63_bs_2064"), !dbg !225 - store %TName_Bool* %"$$$ud-registry.listByStr20Contains_9_63_call_2065", %TName_Bool** %"$$ud-registry.listByStr20Contains_9_64", align 8, !dbg !225 - %"$$$ud-registry.listByStr20Contains_9_64_2066" = load %TName_Bool*, %TName_Bool** %"$$ud-registry.listByStr20Contains_9_64", align 8 - store %TName_Bool* %"$$$ud-registry.listByStr20Contains_9_64_2066", %TName_Bool** %b, align 8, !dbg !225 - %"$gasrem_2067" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2068" = icmp ugt i64 1, %"$gasrem_2067" - br i1 %"$gascmp_2068", label %"$out_of_gas_2069", label %"$have_gas_2070" - -"$out_of_gas_2069": ; preds = %"$have_gas_2054" - call void @_out_of_gas() - br label %"$have_gas_2070" - -"$have_gas_2070": ; preds = %"$out_of_gas_2069", %"$have_gas_2054" - %"$consume_2071" = sub i64 %"$gasrem_2067", 1 - store i64 %"$consume_2071", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$$ud-registry.listByStr20Contains_9_64", metadata !405, metadata !DIExpression()), !dbg !404 + %"$$$ud-registry.listByStr20Contains_9_63_2091" = load { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %"$$ud-registry.listByStr20Contains_9_63", align 8 + %"$$$ud-registry.listByStr20Contains_9_63_fptr_2092" = extractvalue { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$$$ud-registry.listByStr20Contains_9_63_2091", 0 + %"$$$ud-registry.listByStr20Contains_9_63_envptr_2093" = extractvalue { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$$$ud-registry.listByStr20Contains_9_63_2091", 1 + %"$$$ud-registry.listByStr20Contains_9_63_bs_2094" = alloca [20 x i8], align 1 + store [20 x i8] %bs, [20 x i8]* %"$$$ud-registry.listByStr20Contains_9_63_bs_2094", align 1 + %"$$$ud-registry.listByStr20Contains_9_63_call_2095" = call %TName_Bool* %"$$$ud-registry.listByStr20Contains_9_63_fptr_2092"(i8* %"$$$ud-registry.listByStr20Contains_9_63_envptr_2093", [20 x i8]* %"$$$ud-registry.listByStr20Contains_9_63_bs_2094"), !dbg !404 + store %TName_Bool* %"$$$ud-registry.listByStr20Contains_9_63_call_2095", %TName_Bool** %"$$ud-registry.listByStr20Contains_9_64", align 8, !dbg !404 + %"$$$ud-registry.listByStr20Contains_9_64_2096" = load %TName_Bool*, %TName_Bool** %"$$ud-registry.listByStr20Contains_9_64", align 8 + store %TName_Bool* %"$$$ud-registry.listByStr20Contains_9_64_2096", %TName_Bool** %b, align 8, !dbg !404 + %"$gasrem_2097" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2098" = icmp ugt i64 1, %"$gasrem_2097" + br i1 %"$gascmp_2098", label %"$out_of_gas_2099", label %"$have_gas_2100" + +"$out_of_gas_2099": ; preds = %"$have_gas_2084" + call void @_out_of_gas() + br label %"$have_gas_2100" + +"$have_gas_2100": ; preds = %"$out_of_gas_2099", %"$have_gas_2084" + %"$consume_2101" = sub i64 %"$gasrem_2097", 1 + store i64 %"$consume_2101", i64* @_gasrem, align 8 %"$$BoolUtils.negb_10_65" = alloca %TName_Bool*, align 8 - %"$$BoolUtils.negb_10_2072" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.negb_10", align 8 - %"$$BoolUtils.negb_10_fptr_2073" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.negb_10_2072", 0 - %"$$BoolUtils.negb_10_envptr_2074" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.negb_10_2072", 1 - %"$b_2075" = load %TName_Bool*, %TName_Bool** %b, align 8 - %"$$BoolUtils.negb_10_call_2076" = call %TName_Bool* %"$$BoolUtils.negb_10_fptr_2073"(i8* %"$$BoolUtils.negb_10_envptr_2074", %TName_Bool* %"$b_2075"), !dbg !226 - store %TName_Bool* %"$$BoolUtils.negb_10_call_2076", %TName_Bool** %"$$BoolUtils.negb_10_65", align 8, !dbg !226 - %"$$$BoolUtils.negb_10_65_2077" = load %TName_Bool*, %TName_Bool** %"$$BoolUtils.negb_10_65", align 8 - store %TName_Bool* %"$$$BoolUtils.negb_10_65_2077", %TName_Bool** %"$retval_372", align 8, !dbg !226 - %"$$retval_372_2078" = load %TName_Bool*, %TName_Bool** %"$retval_372", align 8 - ret %TName_Bool* %"$$retval_372_2078" -} - -define internal { %TName_Bool* (i8*, [20 x i8]*)*, i8* } @"$fundef_369"(%"$$fundef_369_env_611"* %0, %TName_List_ByStr20* %1) !dbg !227 { -entry: - %"$$fundef_369_env_$BoolUtils.negb_10_2021" = getelementptr inbounds %"$$fundef_369_env_611", %"$$fundef_369_env_611"* %0, i32 0, i32 0 - %"$$BoolUtils.negb_10_envload_2022" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$$fundef_369_env_$BoolUtils.negb_10_2021", align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$$BoolUtils.negb_10_65", metadata !406, metadata !DIExpression()), !dbg !407 + %"$$BoolUtils.negb_10_2102" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.negb_10", align 8 + %"$$BoolUtils.negb_10_fptr_2103" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.negb_10_2102", 0 + %"$$BoolUtils.negb_10_envptr_2104" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.negb_10_2102", 1 + %"$b_2105" = load %TName_Bool*, %TName_Bool** %b, align 8 + %"$$BoolUtils.negb_10_call_2106" = call %TName_Bool* %"$$BoolUtils.negb_10_fptr_2103"(i8* %"$$BoolUtils.negb_10_envptr_2104", %TName_Bool* %"$b_2105"), !dbg !407 + store %TName_Bool* %"$$BoolUtils.negb_10_call_2106", %TName_Bool** %"$$BoolUtils.negb_10_65", align 8, !dbg !407 + %"$$$BoolUtils.negb_10_65_2107" = load %TName_Bool*, %TName_Bool** %"$$BoolUtils.negb_10_65", align 8 + store %TName_Bool* %"$$$BoolUtils.negb_10_65_2107", %TName_Bool** %"$retval_372", align 8, !dbg !407 + %"$$retval_372_2108" = load %TName_Bool*, %TName_Bool** %"$retval_372", align 8 + ret %TName_Bool* %"$$retval_372_2108" +} + +define internal { %TName_Bool* (i8*, [20 x i8]*)*, i8* } @"$fundef_369"(%"$$fundef_369_env_611"* %0, %TName_List_ByStr20* %1) !dbg !408 { +entry: + %"$list_2069" = alloca %TName_List_ByStr20*, align 8 + store %TName_List_ByStr20* %1, %TName_List_ByStr20** %"$list_2069", align 8 + call void @llvm.dbg.declare(metadata %TName_List_ByStr20** %"$list_2069", metadata !409, metadata !DIExpression()), !dbg !410 + %"$$fundef_369_env_$BoolUtils.negb_10_2050" = getelementptr inbounds %"$$fundef_369_env_611", %"$$fundef_369_env_611"* %0, i32 0, i32 0 + %"$$BoolUtils.negb_10_envload_2051" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$$fundef_369_env_$BoolUtils.negb_10_2050", align 8 %"$BoolUtils.negb_10" = alloca { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, align 8 - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.negb_10_envload_2022", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.negb_10", align 8 - %"$$fundef_369_env_$ud-registry.listByStr20Contains_9_2023" = getelementptr inbounds %"$$fundef_369_env_611", %"$$fundef_369_env_611"* %0, i32 0, i32 1 - %"$$ud-registry.listByStr20Contains_9_envload_2024" = 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_369_env_$ud-registry.listByStr20Contains_9_2023", align 8 + store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.negb_10_envload_2051", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.negb_10", align 8 + %"$$fundef_369_env_$ud-registry.listByStr20Contains_9_2052" = getelementptr inbounds %"$$fundef_369_env_611", %"$$fundef_369_env_611"* %0, i32 0, i32 1 + %"$$ud-registry.listByStr20Contains_9_envload_2053" = 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_369_env_$ud-registry.listByStr20Contains_9_2052", align 8 %"$ud-registry.listByStr20Contains_9" = 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_9_envload_2024", { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }* %"$ud-registry.listByStr20Contains_9", align 8 + store { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } %"$$ud-registry.listByStr20Contains_9_envload_2053", { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }* %"$ud-registry.listByStr20Contains_9", align 8 %"$retval_370" = alloca { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, 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" - -"$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", 1 - store i64 %"$consume_2029", i64* @_gasrem, align 8 - %"$$fundef_371_envp_2030_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_371_envp_2030_salloc" = call i8* @_salloc(i8* %"$$fundef_371_envp_2030_load", i64 40) - %"$$fundef_371_envp_2030" = bitcast i8* %"$$fundef_371_envp_2030_salloc" to %"$$fundef_371_env_610"* - %"$$fundef_371_env_voidp_2032" = bitcast %"$$fundef_371_env_610"* %"$$fundef_371_envp_2030" to i8* - %"$$fundef_371_cloval_2033" = insertvalue { %TName_Bool* (i8*, [20 x i8]*)*, i8* } { %TName_Bool* (i8*, [20 x i8]*)* bitcast (%TName_Bool* (%"$$fundef_371_env_610"*, [20 x i8]*)* @"$fundef_371" to %TName_Bool* (i8*, [20 x i8]*)*), i8* undef }, i8* %"$$fundef_371_env_voidp_2032", 1 - %"$$fundef_371_env_$BoolUtils.negb_10_2034" = getelementptr inbounds %"$$fundef_371_env_610", %"$$fundef_371_env_610"* %"$$fundef_371_envp_2030", i32 0, i32 0 - %"$$BoolUtils.negb_10_2035" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.negb_10", align 8 - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.negb_10_2035", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$$fundef_371_env_$BoolUtils.negb_10_2034", align 8 - %"$$fundef_371_env_$ud-registry.listByStr20Contains_9_2036" = getelementptr inbounds %"$$fundef_371_env_610", %"$$fundef_371_env_610"* %"$$fundef_371_envp_2030", i32 0, i32 1 - %"$$ud-registry.listByStr20Contains_9_2037" = 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_9", align 8 - store { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } %"$$ud-registry.listByStr20Contains_9_2037", { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }* %"$$fundef_371_env_$ud-registry.listByStr20Contains_9_2036", align 8 - %"$$fundef_371_env_list_2038" = getelementptr inbounds %"$$fundef_371_env_610", %"$$fundef_371_env_610"* %"$$fundef_371_envp_2030", i32 0, i32 2 - store %TName_List_ByStr20* %1, %TName_List_ByStr20** %"$$fundef_371_env_list_2038", align 8 - store { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$$fundef_371_cloval_2033", { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %"$retval_370", align 8, !dbg !228 - %"$$retval_370_2039" = load { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %"$retval_370", align 8 - ret { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$$retval_370_2039" -} - -define internal %TName_Bool* @"$fundef_367"(%"$$fundef_367_env_612"* %0, %TName_Bool* %1) !dbg !229 { -entry: + %"$gasrem_2054" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2055" = icmp ugt i64 1, %"$gasrem_2054" + br i1 %"$gascmp_2055", label %"$out_of_gas_2056", label %"$have_gas_2057" + +"$out_of_gas_2056": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_2057" + +"$have_gas_2057": ; preds = %"$out_of_gas_2056", %entry + %"$consume_2058" = sub i64 %"$gasrem_2054", 1 + store i64 %"$consume_2058", i64* @_gasrem, align 8 + %"$$fundef_371_envp_2059_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_371_envp_2059_salloc" = call i8* @_salloc(i8* %"$$fundef_371_envp_2059_load", i64 40) + %"$$fundef_371_envp_2059" = bitcast i8* %"$$fundef_371_envp_2059_salloc" to %"$$fundef_371_env_610"* + %"$$fundef_371_env_voidp_2061" = bitcast %"$$fundef_371_env_610"* %"$$fundef_371_envp_2059" to i8* + %"$$fundef_371_cloval_2062" = insertvalue { %TName_Bool* (i8*, [20 x i8]*)*, i8* } { %TName_Bool* (i8*, [20 x i8]*)* bitcast (%TName_Bool* (%"$$fundef_371_env_610"*, [20 x i8]*)* @"$fundef_371" to %TName_Bool* (i8*, [20 x i8]*)*), i8* undef }, i8* %"$$fundef_371_env_voidp_2061", 1 + %"$$fundef_371_env_$BoolUtils.negb_10_2063" = getelementptr inbounds %"$$fundef_371_env_610", %"$$fundef_371_env_610"* %"$$fundef_371_envp_2059", i32 0, i32 0 + %"$$BoolUtils.negb_10_2064" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.negb_10", align 8 + store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.negb_10_2064", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$$fundef_371_env_$BoolUtils.negb_10_2063", align 8 + %"$$fundef_371_env_$ud-registry.listByStr20Contains_9_2065" = getelementptr inbounds %"$$fundef_371_env_610", %"$$fundef_371_env_610"* %"$$fundef_371_envp_2059", i32 0, i32 1 + %"$$ud-registry.listByStr20Contains_9_2066" = 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_9", align 8 + store { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } %"$$ud-registry.listByStr20Contains_9_2066", { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }* %"$$fundef_371_env_$ud-registry.listByStr20Contains_9_2065", align 8 + %"$$fundef_371_env_list_2067" = getelementptr inbounds %"$$fundef_371_env_610", %"$$fundef_371_env_610"* %"$$fundef_371_envp_2059", i32 0, i32 2 + store %TName_List_ByStr20* %1, %TName_List_ByStr20** %"$$fundef_371_env_list_2067", align 8 + store { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$$fundef_371_cloval_2062", { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %"$retval_370", align 8, !dbg !411 + %"$$retval_370_2068" = load { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %"$retval_370", align 8 + ret { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$$retval_370_2068" +} + +define internal %TName_Bool* @"$fundef_367"(%"$$fundef_367_env_612"* %0, %TName_Bool* %1) !dbg !412 { +entry: + %"$b_2049" = alloca %TName_Bool*, align 8 + store %TName_Bool* %1, %TName_Bool** %"$b_2049", align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$b_2049", metadata !413, metadata !DIExpression()), !dbg !414 %"$retval_368" = alloca %TName_Bool*, align 8 - %"$gasrem_1991" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1992" = icmp ugt i64 2, %"$gasrem_1991" - br i1 %"$gascmp_1992", label %"$out_of_gas_1993", label %"$have_gas_1994" - -"$out_of_gas_1993": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_1994" - -"$have_gas_1994": ; preds = %"$out_of_gas_1993", %entry - %"$consume_1995" = sub i64 %"$gasrem_1991", 2 - store i64 %"$consume_1995", i64* @_gasrem, align 8 - %"$b_tag_1997" = getelementptr inbounds %TName_Bool, %TName_Bool* %1, i32 0, i32 0 - %"$b_tag_1998" = load i8, i8* %"$b_tag_1997", align 1 - switch i8 %"$b_tag_1998", label %"$empty_default_1999" [ - i8 0, label %"$True_2000" - i8 1, label %"$False_2010" - ], !dbg !230 - -"$True_2000": ; preds = %"$have_gas_1994" - %"$b_2001" = bitcast %TName_Bool* %1 to %CName_True* - %"$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_2004": ; preds = %"$True_2000" - call void @_out_of_gas() - br label %"$have_gas_2005" - -"$have_gas_2005": ; preds = %"$out_of_gas_2004", %"$True_2000" - %"$consume_2006" = sub i64 %"$gasrem_2002", 1 - store i64 %"$consume_2006", i64* @_gasrem, align 8 - %"$adtval_2007_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_2007_salloc" = call i8* @_salloc(i8* %"$adtval_2007_load", i64 1) - %"$adtval_2007" = bitcast i8* %"$adtval_2007_salloc" to %CName_False* - %"$adtgep_2008" = getelementptr inbounds %CName_False, %CName_False* %"$adtval_2007", i32 0, i32 0 - store i8 1, i8* %"$adtgep_2008", align 1 - %"$adtptr_2009" = bitcast %CName_False* %"$adtval_2007" to %TName_Bool* - store %TName_Bool* %"$adtptr_2009", %TName_Bool** %"$retval_368", align 8, !dbg !231 - br label %"$matchsucc_1996" - -"$False_2010": ; preds = %"$have_gas_1994" - %"$b_2011" = bitcast %TName_Bool* %1 to %CName_False* - %"$gasrem_2012" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2013" = icmp ugt i64 1, %"$gasrem_2012" - br i1 %"$gascmp_2013", label %"$out_of_gas_2014", label %"$have_gas_2015" - -"$out_of_gas_2014": ; preds = %"$False_2010" - call void @_out_of_gas() - br label %"$have_gas_2015" - -"$have_gas_2015": ; preds = %"$out_of_gas_2014", %"$False_2010" - %"$consume_2016" = sub i64 %"$gasrem_2012", 1 - store i64 %"$consume_2016", i64* @_gasrem, align 8 - %"$adtval_2017_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_2017_salloc" = call i8* @_salloc(i8* %"$adtval_2017_load", i64 1) - %"$adtval_2017" = bitcast i8* %"$adtval_2017_salloc" to %CName_True* - %"$adtgep_2018" = getelementptr inbounds %CName_True, %CName_True* %"$adtval_2017", i32 0, i32 0 - store i8 0, i8* %"$adtgep_2018", align 1 - %"$adtptr_2019" = bitcast %CName_True* %"$adtval_2017" to %TName_Bool* - store %TName_Bool* %"$adtptr_2019", %TName_Bool** %"$retval_368", align 8, !dbg !234 - br label %"$matchsucc_1996" - -"$empty_default_1999": ; preds = %"$have_gas_1994" - br label %"$matchsucc_1996" - -"$matchsucc_1996": ; preds = %"$have_gas_2015", %"$have_gas_2005", %"$empty_default_1999" - %"$$retval_368_2020" = load %TName_Bool*, %TName_Bool** %"$retval_368", align 8 - ret %TName_Bool* %"$$retval_368_2020" -} - -define internal %TName_Bool* @"$fundef_365"(%"$$fundef_365_env_613"* %0, [20 x i8]* %1) !dbg !236 { -entry: + call void @llvm.dbg.declare(metadata %TName_Bool** %"$retval_368", metadata !415, metadata !DIExpression()), !dbg !416 + %"$gasrem_2019" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2020" = icmp ugt i64 2, %"$gasrem_2019" + br i1 %"$gascmp_2020", label %"$out_of_gas_2021", label %"$have_gas_2022" + +"$out_of_gas_2021": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_2022" + +"$have_gas_2022": ; preds = %"$out_of_gas_2021", %entry + %"$consume_2023" = sub i64 %"$gasrem_2019", 2 + store i64 %"$consume_2023", i64* @_gasrem, align 8 + %"$b_tag_2025" = getelementptr inbounds %TName_Bool, %TName_Bool* %1, i32 0, i32 0 + %"$b_tag_2026" = load i8, i8* %"$b_tag_2025", align 1 + switch i8 %"$b_tag_2026", label %"$empty_default_2027" [ + i8 0, label %"$True_2028" + i8 1, label %"$False_2038" + ], !dbg !416 + +"$True_2028": ; preds = %"$have_gas_2022" + %"$b_2029" = bitcast %TName_Bool* %1 to %CName_True* + %"$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" + +"$out_of_gas_2032": ; preds = %"$True_2028" + call void @_out_of_gas() + br label %"$have_gas_2033" + +"$have_gas_2033": ; preds = %"$out_of_gas_2032", %"$True_2028" + %"$consume_2034" = sub i64 %"$gasrem_2030", 1 + store i64 %"$consume_2034", i64* @_gasrem, align 8 + %"$adtval_2035_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_2035_salloc" = call i8* @_salloc(i8* %"$adtval_2035_load", i64 1) + %"$adtval_2035" = bitcast i8* %"$adtval_2035_salloc" to %CName_False* + %"$adtgep_2036" = getelementptr inbounds %CName_False, %CName_False* %"$adtval_2035", i32 0, i32 0 + store i8 1, i8* %"$adtgep_2036", align 1 + %"$adtptr_2037" = bitcast %CName_False* %"$adtval_2035" to %TName_Bool* + store %TName_Bool* %"$adtptr_2037", %TName_Bool** %"$retval_368", align 8, !dbg !417 + br label %"$matchsucc_2024" + +"$False_2038": ; preds = %"$have_gas_2022" + %"$b_2039" = bitcast %TName_Bool* %1 to %CName_False* + %"$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 = %"$False_2038" + call void @_out_of_gas() + br label %"$have_gas_2043" + +"$have_gas_2043": ; preds = %"$out_of_gas_2042", %"$False_2038" + %"$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_True* + %"$adtgep_2046" = getelementptr inbounds %CName_True, %CName_True* %"$adtval_2045", i32 0, i32 0 + store i8 0, i8* %"$adtgep_2046", align 1 + %"$adtptr_2047" = bitcast %CName_True* %"$adtval_2045" to %TName_Bool* + store %TName_Bool* %"$adtptr_2047", %TName_Bool** %"$retval_368", align 8, !dbg !420 + br label %"$matchsucc_2024" + +"$empty_default_2027": ; preds = %"$have_gas_2022" + br label %"$matchsucc_2024" + +"$matchsucc_2024": ; preds = %"$have_gas_2043", %"$have_gas_2033", %"$empty_default_2027" + %"$$retval_368_2048" = load %TName_Bool*, %TName_Bool** %"$retval_368", align 8 + ret %TName_Bool* %"$$retval_368_2048" +} + +define internal %TName_Bool* @"$fundef_365"(%"$$fundef_365_env_613"* %0, [20 x i8]* %1) !dbg !422 { +entry: + %"$bs_2018" = alloca [20 x i8]*, align 8 + store [20 x i8]* %1, [20 x i8]** %"$bs_2018", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$bs_2018", metadata !423, metadata !DIExpression()), !dbg !424 %bs = load [20 x i8], [20 x i8]* %1, align 1 - %"$$fundef_365_env_$ListUtils.list_mem_8_1946" = getelementptr inbounds %"$$fundef_365_env_613", %"$$fundef_365_env_613"* %0, i32 0, i32 0 - %"$$ListUtils.list_mem_8_envload_1947" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_365_env_$ListUtils.list_mem_8_1946", align 8 + %"$$fundef_365_env_$ListUtils.list_mem_8_1973" = getelementptr inbounds %"$$fundef_365_env_613", %"$$fundef_365_env_613"* %0, i32 0, i32 0 + %"$$ListUtils.list_mem_8_envload_1974" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_365_env_$ListUtils.list_mem_8_1973", align 8 %"$ListUtils.list_mem_8" = alloca { i8*, i8* }*, align 8 - store { i8*, i8* }* %"$$ListUtils.list_mem_8_envload_1947", { i8*, i8* }** %"$ListUtils.list_mem_8", align 8 - %"$$fundef_365_env_$ud-registry.eqByStr20_4_1948" = getelementptr inbounds %"$$fundef_365_env_613", %"$$fundef_365_env_613"* %0, i32 0, i32 1 - %"$$ud-registry.eqByStr20_4_envload_1949" = 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_365_env_$ud-registry.eqByStr20_4_1948", align 8 + store { i8*, i8* }* %"$$ListUtils.list_mem_8_envload_1974", { i8*, i8* }** %"$ListUtils.list_mem_8", align 8 + %"$$fundef_365_env_$ud-registry.eqByStr20_4_1975" = getelementptr inbounds %"$$fundef_365_env_613", %"$$fundef_365_env_613"* %0, i32 0, i32 1 + %"$$ud-registry.eqByStr20_4_envload_1976" = 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_365_env_$ud-registry.eqByStr20_4_1975", align 8 %"$ud-registry.eqByStr20_4" = 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_4_envload_1949", { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* }* %"$ud-registry.eqByStr20_4", align 8 - %"$$fundef_365_env_list_1950" = getelementptr inbounds %"$$fundef_365_env_613", %"$$fundef_365_env_613"* %0, i32 0, i32 2 - %"$list_envload_1951" = load %TName_List_ByStr20*, %TName_List_ByStr20** %"$$fundef_365_env_list_1950", align 8 + store { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.eqByStr20_4_envload_1976", { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* }* %"$ud-registry.eqByStr20_4", align 8 + %"$$fundef_365_env_list_1977" = getelementptr inbounds %"$$fundef_365_env_613", %"$$fundef_365_env_613"* %0, i32 0, i32 2 + %"$list_envload_1978" = load %TName_List_ByStr20*, %TName_List_ByStr20** %"$$fundef_365_env_list_1977", align 8 %list = alloca %TName_List_ByStr20*, align 8 - store %TName_List_ByStr20* %"$list_envload_1951", %TName_List_ByStr20** %list, align 8 + store %TName_List_ByStr20* %"$list_envload_1978", %TName_List_ByStr20** %list, align 8 %"$retval_366" = alloca %TName_Bool*, align 8 - %"$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" + call void @llvm.dbg.declare(metadata %TName_Bool** %"$retval_366", metadata !425, metadata !DIExpression()), !dbg !426 + %"$gasrem_1979" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1980" = icmp ugt i64 1, %"$gasrem_1979" + br i1 %"$gascmp_1980", label %"$out_of_gas_1981", label %"$have_gas_1982" -"$out_of_gas_1954": ; preds = %entry +"$out_of_gas_1981": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_1955" + br label %"$have_gas_1982" -"$have_gas_1955": ; preds = %"$out_of_gas_1954", %entry - %"$consume_1956" = sub i64 %"$gasrem_1952", 1 - store i64 %"$consume_1956", i64* @_gasrem, align 8 +"$have_gas_1982": ; preds = %"$out_of_gas_1981", %entry + %"$consume_1983" = sub i64 %"$gasrem_1979", 1 + store i64 %"$consume_1983", 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_1984" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1985" = icmp ugt i64 1, %"$gasrem_1984" + br i1 %"$gascmp_1985", label %"$out_of_gas_1986", label %"$have_gas_1987" + +"$out_of_gas_1986": ; preds = %"$have_gas_1982" + call void @_out_of_gas() + br label %"$have_gas_1987" + +"$have_gas_1987": ; preds = %"$out_of_gas_1986", %"$have_gas_1982" + %"$consume_1988" = sub i64 %"$gasrem_1984", 1 + store i64 %"$consume_1988", i64* @_gasrem, align 8 + %"$$ListUtils.list_mem_8_1989" = load { i8*, i8* }*, { i8*, i8* }** %"$ListUtils.list_mem_8", align 8 + %"$$ListUtils.list_mem_8_1990" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$$ListUtils.list_mem_8_1989", i32 0 + %"$$ListUtils.list_mem_8_1991" = bitcast { i8*, i8* }* %"$$ListUtils.list_mem_8_1990" 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_8_1992" = 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_8_1991", align 8 + %"$$ListUtils.list_mem_8_fptr_1993" = 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_8_1992", 0 + %"$$ListUtils.list_mem_8_envptr_1994" = 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_8_1992", 1 + %"$$ListUtils.list_mem_8_call_1995" = 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_8_fptr_1993"(i8* %"$$ListUtils.list_mem_8_envptr_1994"), !dbg !427 + 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_8_call_1995", { { { %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 !428 + %"$gasrem_1996" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1997" = icmp ugt i64 1, %"$gasrem_1996" + br i1 %"$gascmp_1997", label %"$out_of_gas_1998", label %"$have_gas_1999" + +"$out_of_gas_1998": ; preds = %"$have_gas_1987" + call void @_out_of_gas() + br label %"$have_gas_1999" + +"$have_gas_1999": ; preds = %"$out_of_gas_1998", %"$have_gas_1987" + %"$consume_2000" = sub i64 %"$gasrem_1996", 1 + store i64 %"$consume_2000", i64* @_gasrem, align 8 + %"$listMemByStr20_60" = alloca { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* }, align 8 + %"$listMemByStr20_2001" = 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_2002" = 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_2001", 0 + %"$listMemByStr20_envptr_2003" = 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_2001", 1 + %"$$ud-registry.eqByStr20_4_2004" = 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_4", align 8 + %"$listMemByStr20_call_2005" = call { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$listMemByStr20_fptr_2002"(i8* %"$listMemByStr20_envptr_2003", { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.eqByStr20_4_2004"), !dbg !429 + store { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$listMemByStr20_call_2005", { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* }* %"$listMemByStr20_60", align 8, !dbg !429 + %"$listMemByStr20_61" = alloca { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* }, align 8 + %"$$listMemByStr20_60_2006" = 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_60", align 8 + %"$$listMemByStr20_60_fptr_2007" = extractvalue { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$$listMemByStr20_60_2006", 0 + %"$$listMemByStr20_60_envptr_2008" = extractvalue { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$$listMemByStr20_60_2006", 1 + %"$$listMemByStr20_60_bs_2009" = alloca [20 x i8], align 1 + store [20 x i8] %bs, [20 x i8]* %"$$listMemByStr20_60_bs_2009", align 1 + %"$$listMemByStr20_60_call_2010" = call { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } %"$$listMemByStr20_60_fptr_2007"(i8* %"$$listMemByStr20_60_envptr_2008", [20 x i8]* %"$$listMemByStr20_60_bs_2009"), !dbg !429 + store { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } %"$$listMemByStr20_60_call_2010", { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* }* %"$listMemByStr20_61", align 8, !dbg !429 + %"$listMemByStr20_62" = alloca %TName_Bool*, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$listMemByStr20_62", metadata !430, metadata !DIExpression()), !dbg !429 + %"$$listMemByStr20_61_2011" = load { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* }, { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* }* %"$listMemByStr20_61", align 8 + %"$$listMemByStr20_61_fptr_2012" = extractvalue { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } %"$$listMemByStr20_61_2011", 0 + %"$$listMemByStr20_61_envptr_2013" = extractvalue { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } %"$$listMemByStr20_61_2011", 1 + %"$list_2014" = load %TName_List_ByStr20*, %TName_List_ByStr20** %list, align 8 + %"$$listMemByStr20_61_call_2015" = call %TName_Bool* %"$$listMemByStr20_61_fptr_2012"(i8* %"$$listMemByStr20_61_envptr_2013", %TName_List_ByStr20* %"$list_2014"), !dbg !429 + store %TName_Bool* %"$$listMemByStr20_61_call_2015", %TName_Bool** %"$listMemByStr20_62", align 8, !dbg !429 + %"$$listMemByStr20_62_2016" = load %TName_Bool*, %TName_Bool** %"$listMemByStr20_62", align 8 + store %TName_Bool* %"$$listMemByStr20_62_2016", %TName_Bool** %"$retval_366", align 8, !dbg !429 + %"$$retval_366_2017" = load %TName_Bool*, %TName_Bool** %"$retval_366", align 8 + ret %TName_Bool* %"$$retval_366_2017" +} + +define internal { %TName_Bool* (i8*, [20 x i8]*)*, i8* } @"$fundef_363"(%"$$fundef_363_env_614"* %0, %TName_List_ByStr20* %1) !dbg !431 { +entry: + %"$list_1972" = alloca %TName_List_ByStr20*, align 8 + store %TName_List_ByStr20* %1, %TName_List_ByStr20** %"$list_1972", align 8 + call void @llvm.dbg.declare(metadata %TName_List_ByStr20** %"$list_1972", metadata !432, metadata !DIExpression()), !dbg !433 + %"$$fundef_363_env_$ListUtils.list_mem_8_1953" = getelementptr inbounds %"$$fundef_363_env_614", %"$$fundef_363_env_614"* %0, i32 0, i32 0 + %"$$ListUtils.list_mem_8_envload_1954" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_363_env_$ListUtils.list_mem_8_1953", align 8 + %"$ListUtils.list_mem_8" = alloca { i8*, i8* }*, align 8 + store { i8*, i8* }* %"$$ListUtils.list_mem_8_envload_1954", { i8*, i8* }** %"$ListUtils.list_mem_8", align 8 + %"$$fundef_363_env_$ud-registry.eqByStr20_4_1955" = getelementptr inbounds %"$$fundef_363_env_614", %"$$fundef_363_env_614"* %0, i32 0, i32 1 + %"$$ud-registry.eqByStr20_4_envload_1956" = 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_363_env_$ud-registry.eqByStr20_4_1955", align 8 + %"$ud-registry.eqByStr20_4" = 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_4_envload_1956", { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* }* %"$ud-registry.eqByStr20_4", align 8 + %"$retval_364" = alloca { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, align 8 %"$gasrem_1957" = load i64, i64* @_gasrem, align 8 %"$gascmp_1958" = icmp ugt i64 1, %"$gasrem_1957" br i1 %"$gascmp_1958", label %"$out_of_gas_1959", label %"$have_gas_1960" -"$out_of_gas_1959": ; preds = %"$have_gas_1955" +"$out_of_gas_1959": ; preds = %entry call void @_out_of_gas() br label %"$have_gas_1960" -"$have_gas_1960": ; preds = %"$out_of_gas_1959", %"$have_gas_1955" +"$have_gas_1960": ; preds = %"$out_of_gas_1959", %entry %"$consume_1961" = sub i64 %"$gasrem_1957", 1 store i64 %"$consume_1961", i64* @_gasrem, align 8 - %"$$ListUtils.list_mem_8_1962" = load { i8*, i8* }*, { i8*, i8* }** %"$ListUtils.list_mem_8", align 8 - %"$$ListUtils.list_mem_8_1963" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$$ListUtils.list_mem_8_1962", i32 0 - %"$$ListUtils.list_mem_8_1964" = bitcast { i8*, i8* }* %"$$ListUtils.list_mem_8_1963" 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_8_1965" = 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_8_1964", align 8 - %"$$ListUtils.list_mem_8_fptr_1966" = 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_8_1965", 0 - %"$$ListUtils.list_mem_8_envptr_1967" = 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_8_1965", 1 - %"$$ListUtils.list_mem_8_call_1968" = 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_8_fptr_1966"(i8* %"$$ListUtils.list_mem_8_envptr_1967"), !dbg !237 - 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_8_call_1968", { { { %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 !238 - %"$gasrem_1969" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1970" = icmp ugt i64 1, %"$gasrem_1969" - br i1 %"$gascmp_1970", label %"$out_of_gas_1971", label %"$have_gas_1972" - -"$out_of_gas_1971": ; preds = %"$have_gas_1960" - call void @_out_of_gas() - br label %"$have_gas_1972" - -"$have_gas_1972": ; preds = %"$out_of_gas_1971", %"$have_gas_1960" - %"$consume_1973" = sub i64 %"$gasrem_1969", 1 - store i64 %"$consume_1973", i64* @_gasrem, align 8 - %"$listMemByStr20_60" = alloca { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* }, align 8 - %"$listMemByStr20_1974" = 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_1975" = 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_1974", 0 - %"$listMemByStr20_envptr_1976" = 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_1974", 1 - %"$$ud-registry.eqByStr20_4_1977" = 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_4", align 8 - %"$listMemByStr20_call_1978" = call { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$listMemByStr20_fptr_1975"(i8* %"$listMemByStr20_envptr_1976", { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.eqByStr20_4_1977"), !dbg !239 - store { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$listMemByStr20_call_1978", { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* }* %"$listMemByStr20_60", align 8, !dbg !239 - %"$listMemByStr20_61" = alloca { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* }, align 8 - %"$$listMemByStr20_60_1979" = 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_60", align 8 - %"$$listMemByStr20_60_fptr_1980" = extractvalue { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$$listMemByStr20_60_1979", 0 - %"$$listMemByStr20_60_envptr_1981" = extractvalue { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$$listMemByStr20_60_1979", 1 - %"$$listMemByStr20_60_bs_1982" = alloca [20 x i8], align 1 - store [20 x i8] %bs, [20 x i8]* %"$$listMemByStr20_60_bs_1982", align 1 - %"$$listMemByStr20_60_call_1983" = call { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } %"$$listMemByStr20_60_fptr_1980"(i8* %"$$listMemByStr20_60_envptr_1981", [20 x i8]* %"$$listMemByStr20_60_bs_1982"), !dbg !239 - store { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } %"$$listMemByStr20_60_call_1983", { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* }* %"$listMemByStr20_61", align 8, !dbg !239 - %"$listMemByStr20_62" = alloca %TName_Bool*, align 8 - %"$$listMemByStr20_61_1984" = load { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* }, { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* }* %"$listMemByStr20_61", align 8 - %"$$listMemByStr20_61_fptr_1985" = extractvalue { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } %"$$listMemByStr20_61_1984", 0 - %"$$listMemByStr20_61_envptr_1986" = extractvalue { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } %"$$listMemByStr20_61_1984", 1 - %"$list_1987" = load %TName_List_ByStr20*, %TName_List_ByStr20** %list, align 8 - %"$$listMemByStr20_61_call_1988" = call %TName_Bool* %"$$listMemByStr20_61_fptr_1985"(i8* %"$$listMemByStr20_61_envptr_1986", %TName_List_ByStr20* %"$list_1987"), !dbg !239 - store %TName_Bool* %"$$listMemByStr20_61_call_1988", %TName_Bool** %"$listMemByStr20_62", align 8, !dbg !239 - %"$$listMemByStr20_62_1989" = load %TName_Bool*, %TName_Bool** %"$listMemByStr20_62", align 8 - store %TName_Bool* %"$$listMemByStr20_62_1989", %TName_Bool** %"$retval_366", align 8, !dbg !239 - %"$$retval_366_1990" = load %TName_Bool*, %TName_Bool** %"$retval_366", align 8 - ret %TName_Bool* %"$$retval_366_1990" -} - -define internal { %TName_Bool* (i8*, [20 x i8]*)*, i8* } @"$fundef_363"(%"$$fundef_363_env_614"* %0, %TName_List_ByStr20* %1) !dbg !240 { -entry: - %"$$fundef_363_env_$ListUtils.list_mem_8_1927" = getelementptr inbounds %"$$fundef_363_env_614", %"$$fundef_363_env_614"* %0, i32 0, i32 0 - %"$$ListUtils.list_mem_8_envload_1928" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_363_env_$ListUtils.list_mem_8_1927", align 8 - %"$ListUtils.list_mem_8" = alloca { i8*, i8* }*, align 8 - store { i8*, i8* }* %"$$ListUtils.list_mem_8_envload_1928", { i8*, i8* }** %"$ListUtils.list_mem_8", align 8 - %"$$fundef_363_env_$ud-registry.eqByStr20_4_1929" = getelementptr inbounds %"$$fundef_363_env_614", %"$$fundef_363_env_614"* %0, i32 0, i32 1 - %"$$ud-registry.eqByStr20_4_envload_1930" = 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_363_env_$ud-registry.eqByStr20_4_1929", align 8 - %"$ud-registry.eqByStr20_4" = 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_4_envload_1930", { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* }* %"$ud-registry.eqByStr20_4", align 8 - %"$retval_364" = alloca { %TName_Bool* (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_365_envp_1936_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_365_envp_1936_salloc" = call i8* @_salloc(i8* %"$$fundef_365_envp_1936_load", i64 32) - %"$$fundef_365_envp_1936" = bitcast i8* %"$$fundef_365_envp_1936_salloc" to %"$$fundef_365_env_613"* - %"$$fundef_365_env_voidp_1938" = bitcast %"$$fundef_365_env_613"* %"$$fundef_365_envp_1936" to i8* - %"$$fundef_365_cloval_1939" = insertvalue { %TName_Bool* (i8*, [20 x i8]*)*, i8* } { %TName_Bool* (i8*, [20 x i8]*)* bitcast (%TName_Bool* (%"$$fundef_365_env_613"*, [20 x i8]*)* @"$fundef_365" to %TName_Bool* (i8*, [20 x i8]*)*), i8* undef }, i8* %"$$fundef_365_env_voidp_1938", 1 - %"$$fundef_365_env_$ListUtils.list_mem_8_1940" = getelementptr inbounds %"$$fundef_365_env_613", %"$$fundef_365_env_613"* %"$$fundef_365_envp_1936", i32 0, i32 0 - %"$$ListUtils.list_mem_8_1941" = load { i8*, i8* }*, { i8*, i8* }** %"$ListUtils.list_mem_8", align 8 - store { i8*, i8* }* %"$$ListUtils.list_mem_8_1941", { i8*, i8* }** %"$$fundef_365_env_$ListUtils.list_mem_8_1940", align 8 - %"$$fundef_365_env_$ud-registry.eqByStr20_4_1942" = getelementptr inbounds %"$$fundef_365_env_613", %"$$fundef_365_env_613"* %"$$fundef_365_envp_1936", i32 0, i32 1 - %"$$ud-registry.eqByStr20_4_1943" = 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_4", align 8 - store { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.eqByStr20_4_1943", { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* }* %"$$fundef_365_env_$ud-registry.eqByStr20_4_1942", align 8 - %"$$fundef_365_env_list_1944" = getelementptr inbounds %"$$fundef_365_env_613", %"$$fundef_365_env_613"* %"$$fundef_365_envp_1936", i32 0, i32 2 - store %TName_List_ByStr20* %1, %TName_List_ByStr20** %"$$fundef_365_env_list_1944", align 8 - store { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$$fundef_365_cloval_1939", { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %"$retval_364", align 8, !dbg !241 - %"$$retval_364_1945" = load { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %"$retval_364", align 8 - ret { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$$retval_364_1945" -} - -define internal { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } @"$fundef_361"(%"$$fundef_361_env_615"* %0, [20 x i8]* %1) !dbg !242 { -entry: + %"$$fundef_365_envp_1962_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_365_envp_1962_salloc" = call i8* @_salloc(i8* %"$$fundef_365_envp_1962_load", i64 32) + %"$$fundef_365_envp_1962" = bitcast i8* %"$$fundef_365_envp_1962_salloc" to %"$$fundef_365_env_613"* + %"$$fundef_365_env_voidp_1964" = bitcast %"$$fundef_365_env_613"* %"$$fundef_365_envp_1962" to i8* + %"$$fundef_365_cloval_1965" = insertvalue { %TName_Bool* (i8*, [20 x i8]*)*, i8* } { %TName_Bool* (i8*, [20 x i8]*)* bitcast (%TName_Bool* (%"$$fundef_365_env_613"*, [20 x i8]*)* @"$fundef_365" to %TName_Bool* (i8*, [20 x i8]*)*), i8* undef }, i8* %"$$fundef_365_env_voidp_1964", 1 + %"$$fundef_365_env_$ListUtils.list_mem_8_1966" = getelementptr inbounds %"$$fundef_365_env_613", %"$$fundef_365_env_613"* %"$$fundef_365_envp_1962", i32 0, i32 0 + %"$$ListUtils.list_mem_8_1967" = load { i8*, i8* }*, { i8*, i8* }** %"$ListUtils.list_mem_8", align 8 + store { i8*, i8* }* %"$$ListUtils.list_mem_8_1967", { i8*, i8* }** %"$$fundef_365_env_$ListUtils.list_mem_8_1966", align 8 + %"$$fundef_365_env_$ud-registry.eqByStr20_4_1968" = getelementptr inbounds %"$$fundef_365_env_613", %"$$fundef_365_env_613"* %"$$fundef_365_envp_1962", i32 0, i32 1 + %"$$ud-registry.eqByStr20_4_1969" = 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_4", align 8 + store { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.eqByStr20_4_1969", { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* }* %"$$fundef_365_env_$ud-registry.eqByStr20_4_1968", align 8 + %"$$fundef_365_env_list_1970" = getelementptr inbounds %"$$fundef_365_env_613", %"$$fundef_365_env_613"* %"$$fundef_365_envp_1962", i32 0, i32 2 + store %TName_List_ByStr20* %1, %TName_List_ByStr20** %"$$fundef_365_env_list_1970", align 8 + store { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$$fundef_365_cloval_1965", { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %"$retval_364", align 8, !dbg !434 + %"$$retval_364_1971" = load { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %"$retval_364", align 8 + ret { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$$retval_364_1971" +} + +define internal { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } @"$fundef_361"(%"$$fundef_361_env_615"* %0, [20 x i8]* %1) !dbg !435 { +entry: + %"$m_1952" = alloca [20 x i8]*, align 8 + store [20 x i8]* %1, [20 x i8]** %"$m_1952", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$m_1952", metadata !436, metadata !DIExpression()), !dbg !437 %m = load [20 x i8], [20 x i8]* %1, align 1 - %"$$fundef_361_env_$ListUtils.list_exists_7_1878" = getelementptr inbounds %"$$fundef_361_env_615", %"$$fundef_361_env_615"* %0, i32 0, i32 0 - %"$$ListUtils.list_exists_7_envload_1879" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_361_env_$ListUtils.list_exists_7_1878", align 8 + %"$$fundef_361_env_$ListUtils.list_exists_7_1903" = getelementptr inbounds %"$$fundef_361_env_615", %"$$fundef_361_env_615"* %0, i32 0, i32 0 + %"$$ListUtils.list_exists_7_envload_1904" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_361_env_$ListUtils.list_exists_7_1903", align 8 %"$ListUtils.list_exists_7" = alloca { i8*, i8* }*, align 8 - store { i8*, i8* }* %"$$ListUtils.list_exists_7_envload_1879", { i8*, i8* }** %"$ListUtils.list_exists_7", align 8 - %"$$fundef_361_env_f_1880" = getelementptr inbounds %"$$fundef_361_env_615", %"$$fundef_361_env_615"* %0, i32 0, i32 1 - %"$f_envload_1881" = 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_361_env_f_1880", align 8 + store { i8*, i8* }* %"$$ListUtils.list_exists_7_envload_1904", { i8*, i8* }** %"$ListUtils.list_exists_7", align 8 + %"$$fundef_361_env_f_1905" = getelementptr inbounds %"$$fundef_361_env_615", %"$$fundef_361_env_615"* %0, i32 0, i32 1 + %"$f_envload_1906" = 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_361_env_f_1905", 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_1881", { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* }* %f, align 8 + store { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$f_envload_1906", { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* }* %f, align 8 %"$retval_362" = alloca { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* }, 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" + %"$gasrem_1907" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1908" = icmp ugt i64 1, %"$gasrem_1907" + br i1 %"$gascmp_1908", label %"$out_of_gas_1909", label %"$have_gas_1910" -"$out_of_gas_1884": ; preds = %entry +"$out_of_gas_1909": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_1885" + br label %"$have_gas_1910" -"$have_gas_1885": ; preds = %"$out_of_gas_1884", %entry - %"$consume_1886" = sub i64 %"$gasrem_1882", 1 - store i64 %"$consume_1886", i64* @_gasrem, align 8 +"$have_gas_1910": ; preds = %"$out_of_gas_1909", %entry + %"$consume_1911" = sub i64 %"$gasrem_1907", 1 + store i64 %"$consume_1911", i64* @_gasrem, align 8 %ex_pred = alloca { %TName_Bool* (i8*, [20 x i8]*)*, 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" + %"$gasrem_1912" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1913" = icmp ugt i64 1, %"$gasrem_1912" + br i1 %"$gascmp_1913", label %"$out_of_gas_1914", label %"$have_gas_1915" -"$out_of_gas_1889": ; preds = %"$have_gas_1885" +"$out_of_gas_1914": ; preds = %"$have_gas_1910" call void @_out_of_gas() - br label %"$have_gas_1890" + br label %"$have_gas_1915" -"$have_gas_1890": ; preds = %"$out_of_gas_1889", %"$have_gas_1885" - %"$consume_1891" = sub i64 %"$gasrem_1887", 1 - store i64 %"$consume_1891", i64* @_gasrem, align 8 +"$have_gas_1915": ; preds = %"$out_of_gas_1914", %"$have_gas_1910" + %"$consume_1916" = sub i64 %"$gasrem_1912", 1 + store i64 %"$consume_1916", i64* @_gasrem, align 8 %"$f_58" = alloca { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, align 8 - %"$f_1892" = 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_1893" = extractvalue { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$f_1892", 0 - %"$f_envptr_1894" = extractvalue { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$f_1892", 1 - %"$f_m_1895" = alloca [20 x i8], align 1 - store [20 x i8] %m, [20 x i8]* %"$f_m_1895", align 1 - %"$f_call_1896" = call { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$f_fptr_1893"(i8* %"$f_envptr_1894", [20 x i8]* %"$f_m_1895"), !dbg !243 - store { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$f_call_1896", { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %"$f_58", align 8, !dbg !243 - %"$$f_58_1897" = load { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %"$f_58", align 8 - store { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$$f_58_1897", { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %ex_pred, align 8, !dbg !243 - %"$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" - -"$out_of_gas_1900": ; preds = %"$have_gas_1890" - call void @_out_of_gas() - br label %"$have_gas_1901" - -"$have_gas_1901": ; preds = %"$out_of_gas_1900", %"$have_gas_1890" - %"$consume_1902" = sub i64 %"$gasrem_1898", 1 - store i64 %"$consume_1902", i64* @_gasrem, align 8 + %"$f_1917" = 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_1918" = extractvalue { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$f_1917", 0 + %"$f_envptr_1919" = extractvalue { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$f_1917", 1 + %"$f_m_1920" = alloca [20 x i8], align 1 + store [20 x i8] %m, [20 x i8]* %"$f_m_1920", align 1 + %"$f_call_1921" = call { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$f_fptr_1918"(i8* %"$f_envptr_1919", [20 x i8]* %"$f_m_1920"), !dbg !438 + store { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$f_call_1921", { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %"$f_58", align 8, !dbg !438 + %"$$f_58_1922" = load { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %"$f_58", align 8 + store { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$$f_58_1922", { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %ex_pred, align 8, !dbg !438 + %"$gasrem_1923" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1924" = icmp ugt i64 1, %"$gasrem_1923" + br i1 %"$gascmp_1924", label %"$out_of_gas_1925", label %"$have_gas_1926" + +"$out_of_gas_1925": ; preds = %"$have_gas_1915" + call void @_out_of_gas() + br label %"$have_gas_1926" + +"$have_gas_1926": ; preds = %"$out_of_gas_1925", %"$have_gas_1915" + %"$consume_1927" = sub i64 %"$gasrem_1923", 1 + store i64 %"$consume_1927", 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_1903" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1904" = icmp ugt i64 1, %"$gasrem_1903" - br i1 %"$gascmp_1904", label %"$out_of_gas_1905", label %"$have_gas_1906" - -"$out_of_gas_1905": ; preds = %"$have_gas_1901" - call void @_out_of_gas() - br label %"$have_gas_1906" - -"$have_gas_1906": ; preds = %"$out_of_gas_1905", %"$have_gas_1901" - %"$consume_1907" = sub i64 %"$gasrem_1903", 1 - store i64 %"$consume_1907", i64* @_gasrem, align 8 - %"$$ListUtils.list_exists_7_1908" = load { i8*, i8* }*, { i8*, i8* }** %"$ListUtils.list_exists_7", align 8 - %"$$ListUtils.list_exists_7_1909" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$$ListUtils.list_exists_7_1908", i32 0 - %"$$ListUtils.list_exists_7_1910" = bitcast { i8*, i8* }* %"$$ListUtils.list_exists_7_1909" to { { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*, i8* }* - %"$$ListUtils.list_exists_7_1911" = 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_7_1910", align 8 - %"$$ListUtils.list_exists_7_fptr_1912" = extractvalue { { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*, i8* } %"$$ListUtils.list_exists_7_1911", 0 - %"$$ListUtils.list_exists_7_envptr_1913" = extractvalue { { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*, i8* } %"$$ListUtils.list_exists_7_1911", 1 - %"$$ListUtils.list_exists_7_call_1914" = call { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } %"$$ListUtils.list_exists_7_fptr_1912"(i8* %"$$ListUtils.list_exists_7_envptr_1913"), !dbg !244 - store { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } %"$$ListUtils.list_exists_7_call_1914", { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* }* %ex, align 8, !dbg !245 - %"$gasrem_1915" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1916" = icmp ugt i64 1, %"$gasrem_1915" - br i1 %"$gascmp_1916", label %"$out_of_gas_1917", label %"$have_gas_1918" - -"$out_of_gas_1917": ; preds = %"$have_gas_1906" - call void @_out_of_gas() - br label %"$have_gas_1918" - -"$have_gas_1918": ; preds = %"$out_of_gas_1917", %"$have_gas_1906" - %"$consume_1919" = sub i64 %"$gasrem_1915", 1 - store i64 %"$consume_1919", i64* @_gasrem, align 8 + %"$gasrem_1928" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1929" = icmp ugt i64 1, %"$gasrem_1928" + br i1 %"$gascmp_1929", label %"$out_of_gas_1930", label %"$have_gas_1931" + +"$out_of_gas_1930": ; preds = %"$have_gas_1926" + call void @_out_of_gas() + br label %"$have_gas_1931" + +"$have_gas_1931": ; preds = %"$out_of_gas_1930", %"$have_gas_1926" + %"$consume_1932" = sub i64 %"$gasrem_1928", 1 + store i64 %"$consume_1932", i64* @_gasrem, align 8 + %"$$ListUtils.list_exists_7_1933" = load { i8*, i8* }*, { i8*, i8* }** %"$ListUtils.list_exists_7", align 8 + %"$$ListUtils.list_exists_7_1934" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$$ListUtils.list_exists_7_1933", i32 0 + %"$$ListUtils.list_exists_7_1935" = bitcast { i8*, i8* }* %"$$ListUtils.list_exists_7_1934" to { { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*, i8* }* + %"$$ListUtils.list_exists_7_1936" = 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_7_1935", align 8 + %"$$ListUtils.list_exists_7_fptr_1937" = extractvalue { { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*, i8* } %"$$ListUtils.list_exists_7_1936", 0 + %"$$ListUtils.list_exists_7_envptr_1938" = extractvalue { { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*, i8* } %"$$ListUtils.list_exists_7_1936", 1 + %"$$ListUtils.list_exists_7_call_1939" = call { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } %"$$ListUtils.list_exists_7_fptr_1937"(i8* %"$$ListUtils.list_exists_7_envptr_1938"), !dbg !439 + store { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } %"$$ListUtils.list_exists_7_call_1939", { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* }* %ex, align 8, !dbg !440 + %"$gasrem_1940" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1941" = icmp ugt i64 1, %"$gasrem_1940" + br i1 %"$gascmp_1941", label %"$out_of_gas_1942", label %"$have_gas_1943" + +"$out_of_gas_1942": ; preds = %"$have_gas_1931" + call void @_out_of_gas() + br label %"$have_gas_1943" + +"$have_gas_1943": ; preds = %"$out_of_gas_1942", %"$have_gas_1931" + %"$consume_1944" = sub i64 %"$gasrem_1940", 1 + store i64 %"$consume_1944", i64* @_gasrem, align 8 %"$ex_59" = alloca { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* }, align 8 - %"$ex_1920" = 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_1921" = extractvalue { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } %"$ex_1920", 0 - %"$ex_envptr_1922" = extractvalue { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } %"$ex_1920", 1 - %"$ex_pred_1923" = load { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %ex_pred, align 8 - %"$ex_call_1924" = call { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } %"$ex_fptr_1921"(i8* %"$ex_envptr_1922", { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$ex_pred_1923"), !dbg !246 - store { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } %"$ex_call_1924", { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* }* %"$ex_59", align 8, !dbg !246 - %"$$ex_59_1925" = load { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* }, { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* }* %"$ex_59", align 8 - store { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } %"$$ex_59_1925", { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* }* %"$retval_362", align 8, !dbg !246 - %"$$retval_362_1926" = load { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* }, { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* }* %"$retval_362", align 8 - ret { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } %"$$retval_362_1926" -} - -define internal { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } @"$fundef_359"(%"$$fundef_359_env_616"* %0, { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } %1) !dbg !247 { -entry: - %"$$fundef_359_env_$ListUtils.list_exists_7_1863" = getelementptr inbounds %"$$fundef_359_env_616", %"$$fundef_359_env_616"* %0, i32 0, i32 0 - %"$$ListUtils.list_exists_7_envload_1864" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_359_env_$ListUtils.list_exists_7_1863", align 8 + %"$ex_1945" = 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_1946" = extractvalue { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } %"$ex_1945", 0 + %"$ex_envptr_1947" = extractvalue { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } %"$ex_1945", 1 + %"$ex_pred_1948" = load { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %ex_pred, align 8 + %"$ex_call_1949" = call { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } %"$ex_fptr_1946"(i8* %"$ex_envptr_1947", { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$ex_pred_1948"), !dbg !441 + store { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } %"$ex_call_1949", { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* }* %"$ex_59", align 8, !dbg !441 + %"$$ex_59_1950" = load { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* }, { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* }* %"$ex_59", align 8 + store { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } %"$$ex_59_1950", { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* }* %"$retval_362", align 8, !dbg !441 + %"$$retval_362_1951" = load { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* }, { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* }* %"$retval_362", align 8 + ret { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } %"$$retval_362_1951" +} + +define internal { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } @"$fundef_359"(%"$$fundef_359_env_616"* %0, { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } %1) !dbg !442 { +entry: + %"$$fundef_359_env_$ListUtils.list_exists_7_1888" = getelementptr inbounds %"$$fundef_359_env_616", %"$$fundef_359_env_616"* %0, i32 0, i32 0 + %"$$ListUtils.list_exists_7_envload_1889" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_359_env_$ListUtils.list_exists_7_1888", align 8 %"$ListUtils.list_exists_7" = alloca { i8*, i8* }*, align 8 - store { i8*, i8* }* %"$$ListUtils.list_exists_7_envload_1864", { i8*, i8* }** %"$ListUtils.list_exists_7", align 8 + store { i8*, i8* }* %"$$ListUtils.list_exists_7_envload_1889", { i8*, i8* }** %"$ListUtils.list_exists_7", align 8 %"$retval_360" = alloca { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* }, align 8 - %"$gasrem_1865" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1866" = icmp ugt i64 1, %"$gasrem_1865" - br i1 %"$gascmp_1866", label %"$out_of_gas_1867", label %"$have_gas_1868" - -"$out_of_gas_1867": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_1868" - -"$have_gas_1868": ; preds = %"$out_of_gas_1867", %entry - %"$consume_1869" = sub i64 %"$gasrem_1865", 1 - store i64 %"$consume_1869", i64* @_gasrem, align 8 - %"$$fundef_361_envp_1870_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_361_envp_1870_salloc" = call i8* @_salloc(i8* %"$$fundef_361_envp_1870_load", i64 24) - %"$$fundef_361_envp_1870" = bitcast i8* %"$$fundef_361_envp_1870_salloc" to %"$$fundef_361_env_615"* - %"$$fundef_361_env_voidp_1872" = bitcast %"$$fundef_361_env_615"* %"$$fundef_361_envp_1870" to i8* - %"$$fundef_361_cloval_1873" = 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_361_env_615"*, [20 x i8]*)* @"$fundef_361" to { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*), i8* undef }, i8* %"$$fundef_361_env_voidp_1872", 1 - %"$$fundef_361_env_$ListUtils.list_exists_7_1874" = getelementptr inbounds %"$$fundef_361_env_615", %"$$fundef_361_env_615"* %"$$fundef_361_envp_1870", i32 0, i32 0 - %"$$ListUtils.list_exists_7_1875" = load { i8*, i8* }*, { i8*, i8* }** %"$ListUtils.list_exists_7", align 8 - store { i8*, i8* }* %"$$ListUtils.list_exists_7_1875", { i8*, i8* }** %"$$fundef_361_env_$ListUtils.list_exists_7_1874", align 8 - %"$$fundef_361_env_f_1876" = getelementptr inbounds %"$$fundef_361_env_615", %"$$fundef_361_env_615"* %"$$fundef_361_envp_1870", 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_361_env_f_1876", align 8 - store { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$$fundef_361_cloval_1873", { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* }* %"$retval_360", align 8, !dbg !248 - %"$$retval_360_1877" = 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_360", align 8 - ret { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$$retval_360_1877" -} - -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_357"(%"$$fundef_357_env_617"* %0) !dbg !249 { -entry: - %"$$fundef_357_env_$ListUtils.list_exists_7_1849" = getelementptr inbounds %"$$fundef_357_env_617", %"$$fundef_357_env_617"* %0, i32 0, i32 0 - %"$$ListUtils.list_exists_7_envload_1850" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_357_env_$ListUtils.list_exists_7_1849", align 8 + %"$gasrem_1890" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1891" = icmp ugt i64 1, %"$gasrem_1890" + br i1 %"$gascmp_1891", label %"$out_of_gas_1892", label %"$have_gas_1893" + +"$out_of_gas_1892": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_1893" + +"$have_gas_1893": ; preds = %"$out_of_gas_1892", %entry + %"$consume_1894" = sub i64 %"$gasrem_1890", 1 + store i64 %"$consume_1894", i64* @_gasrem, align 8 + %"$$fundef_361_envp_1895_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_361_envp_1895_salloc" = call i8* @_salloc(i8* %"$$fundef_361_envp_1895_load", i64 24) + %"$$fundef_361_envp_1895" = bitcast i8* %"$$fundef_361_envp_1895_salloc" to %"$$fundef_361_env_615"* + %"$$fundef_361_env_voidp_1897" = bitcast %"$$fundef_361_env_615"* %"$$fundef_361_envp_1895" to i8* + %"$$fundef_361_cloval_1898" = 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_361_env_615"*, [20 x i8]*)* @"$fundef_361" to { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*), i8* undef }, i8* %"$$fundef_361_env_voidp_1897", 1 + %"$$fundef_361_env_$ListUtils.list_exists_7_1899" = getelementptr inbounds %"$$fundef_361_env_615", %"$$fundef_361_env_615"* %"$$fundef_361_envp_1895", i32 0, i32 0 + %"$$ListUtils.list_exists_7_1900" = load { i8*, i8* }*, { i8*, i8* }** %"$ListUtils.list_exists_7", align 8 + store { i8*, i8* }* %"$$ListUtils.list_exists_7_1900", { i8*, i8* }** %"$$fundef_361_env_$ListUtils.list_exists_7_1899", align 8 + %"$$fundef_361_env_f_1901" = getelementptr inbounds %"$$fundef_361_env_615", %"$$fundef_361_env_615"* %"$$fundef_361_envp_1895", 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_361_env_f_1901", align 8 + store { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$$fundef_361_cloval_1898", { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* }* %"$retval_360", align 8, !dbg !443 + %"$$retval_360_1902" = 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_360", align 8 + ret { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$$retval_360_1902" +} + +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_357"(%"$$fundef_357_env_617"* %0) !dbg !444 { +entry: + %"$$fundef_357_env_$ListUtils.list_exists_7_1874" = getelementptr inbounds %"$$fundef_357_env_617", %"$$fundef_357_env_617"* %0, i32 0, i32 0 + %"$$ListUtils.list_exists_7_envload_1875" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_357_env_$ListUtils.list_exists_7_1874", align 8 %"$ListUtils.list_exists_7" = alloca { i8*, i8* }*, align 8 - store { i8*, i8* }* %"$$ListUtils.list_exists_7_envload_1850", { i8*, i8* }** %"$ListUtils.list_exists_7", align 8 + store { i8*, i8* }* %"$$ListUtils.list_exists_7_envload_1875", { i8*, i8* }** %"$ListUtils.list_exists_7", align 8 %"$retval_358" = 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_1851" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1852" = icmp ugt i64 1, %"$gasrem_1851" - br i1 %"$gascmp_1852", label %"$out_of_gas_1853", label %"$have_gas_1854" - -"$out_of_gas_1853": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_1854" - -"$have_gas_1854": ; preds = %"$out_of_gas_1853", %entry - %"$consume_1855" = sub i64 %"$gasrem_1851", 1 - store i64 %"$consume_1855", i64* @_gasrem, align 8 - %"$$fundef_359_envp_1856_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_359_envp_1856_salloc" = call i8* @_salloc(i8* %"$$fundef_359_envp_1856_load", i64 8) - %"$$fundef_359_envp_1856" = bitcast i8* %"$$fundef_359_envp_1856_salloc" to %"$$fundef_359_env_616"* - %"$$fundef_359_env_voidp_1858" = bitcast %"$$fundef_359_env_616"* %"$$fundef_359_envp_1856" to i8* - %"$$fundef_359_cloval_1859" = 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_359_env_616"*, { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* })* @"$fundef_359" 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_359_env_voidp_1858", 1 - %"$$fundef_359_env_$ListUtils.list_exists_7_1860" = getelementptr inbounds %"$$fundef_359_env_616", %"$$fundef_359_env_616"* %"$$fundef_359_envp_1856", i32 0, i32 0 - %"$$ListUtils.list_exists_7_1861" = load { i8*, i8* }*, { i8*, i8* }** %"$ListUtils.list_exists_7", align 8 - store { i8*, i8* }* %"$$ListUtils.list_exists_7_1861", { i8*, i8* }** %"$$fundef_359_env_$ListUtils.list_exists_7_1860", 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_359_cloval_1859", { { { %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_358", align 8, !dbg !250 - %"$$retval_358_1862" = 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_358", 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_358_1862" -} - -define internal %TName_Bool* @"$fundef_355"(%"$$fundef_355_env_618"* %0, %TName_List_ByStr20* %1) !dbg !251 { -entry: - %"$$fundef_355_env_$ListUtils.list_find_6_1775" = getelementptr inbounds %"$$fundef_355_env_618", %"$$fundef_355_env_618"* %0, i32 0, i32 0 - %"$$ListUtils.list_find_6_envload_1776" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_355_env_$ListUtils.list_find_6_1775", 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" + +"$out_of_gas_1878": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_1879" + +"$have_gas_1879": ; preds = %"$out_of_gas_1878", %entry + %"$consume_1880" = sub i64 %"$gasrem_1876", 1 + store i64 %"$consume_1880", i64* @_gasrem, align 8 + %"$$fundef_359_envp_1881_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_359_envp_1881_salloc" = call i8* @_salloc(i8* %"$$fundef_359_envp_1881_load", i64 8) + %"$$fundef_359_envp_1881" = bitcast i8* %"$$fundef_359_envp_1881_salloc" to %"$$fundef_359_env_616"* + %"$$fundef_359_env_voidp_1883" = bitcast %"$$fundef_359_env_616"* %"$$fundef_359_envp_1881" to i8* + %"$$fundef_359_cloval_1884" = 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_359_env_616"*, { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* })* @"$fundef_359" 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_359_env_voidp_1883", 1 + %"$$fundef_359_env_$ListUtils.list_exists_7_1885" = getelementptr inbounds %"$$fundef_359_env_616", %"$$fundef_359_env_616"* %"$$fundef_359_envp_1881", i32 0, i32 0 + %"$$ListUtils.list_exists_7_1886" = load { i8*, i8* }*, { i8*, i8* }** %"$ListUtils.list_exists_7", align 8 + store { i8*, i8* }* %"$$ListUtils.list_exists_7_1886", { i8*, i8* }** %"$$fundef_359_env_$ListUtils.list_exists_7_1885", 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_359_cloval_1884", { { { %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_358", align 8, !dbg !445 + %"$$retval_358_1887" = 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_358", 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_358_1887" +} + +define internal %TName_Bool* @"$fundef_355"(%"$$fundef_355_env_618"* %0, %TName_List_ByStr20* %1) !dbg !446 { +entry: + %"$ls_1873" = alloca %TName_List_ByStr20*, align 8 + store %TName_List_ByStr20* %1, %TName_List_ByStr20** %"$ls_1873", align 8 + call void @llvm.dbg.declare(metadata %TName_List_ByStr20** %"$ls_1873", metadata !447, metadata !DIExpression()), !dbg !448 + %"$$fundef_355_env_$ListUtils.list_find_6_1799" = getelementptr inbounds %"$$fundef_355_env_618", %"$$fundef_355_env_618"* %0, i32 0, i32 0 + %"$$ListUtils.list_find_6_envload_1800" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_355_env_$ListUtils.list_find_6_1799", align 8 %"$ListUtils.list_find_6" = alloca { i8*, i8* }*, align 8 - store { i8*, i8* }* %"$$ListUtils.list_find_6_envload_1776", { i8*, i8* }** %"$ListUtils.list_find_6", align 8 - %"$$fundef_355_env_p_1777" = getelementptr inbounds %"$$fundef_355_env_618", %"$$fundef_355_env_618"* %0, i32 0, i32 1 - %"$p_envload_1778" = load { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %"$$fundef_355_env_p_1777", align 8 + store { i8*, i8* }* %"$$ListUtils.list_find_6_envload_1800", { i8*, i8* }** %"$ListUtils.list_find_6", align 8 + %"$$fundef_355_env_p_1801" = getelementptr inbounds %"$$fundef_355_env_618", %"$$fundef_355_env_618"* %0, i32 0, i32 1 + %"$p_envload_1802" = load { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %"$$fundef_355_env_p_1801", align 8 %p = alloca { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, align 8 - store { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$p_envload_1778", { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %p, align 8 + store { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$p_envload_1802", { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %p, align 8 %"$retval_356" = alloca %TName_Bool*, align 8 - %"$gasrem_1779" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1780" = icmp ugt i64 1, %"$gasrem_1779" - br i1 %"$gascmp_1780", label %"$out_of_gas_1781", label %"$have_gas_1782" + call void @llvm.dbg.declare(metadata %TName_Bool** %"$retval_356", metadata !449, metadata !DIExpression()), !dbg !450 + %"$gasrem_1803" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1804" = icmp ugt i64 1, %"$gasrem_1803" + br i1 %"$gascmp_1804", label %"$out_of_gas_1805", label %"$have_gas_1806" -"$out_of_gas_1781": ; preds = %entry +"$out_of_gas_1805": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_1782" + br label %"$have_gas_1806" -"$have_gas_1782": ; preds = %"$out_of_gas_1781", %entry - %"$consume_1783" = sub i64 %"$gasrem_1779", 1 - store i64 %"$consume_1783", i64* @_gasrem, align 8 +"$have_gas_1806": ; preds = %"$out_of_gas_1805", %entry + %"$consume_1807" = sub i64 %"$gasrem_1803", 1 + store i64 %"$consume_1807", 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_1784" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1785" = icmp ugt i64 1, %"$gasrem_1784" - br i1 %"$gascmp_1785", label %"$out_of_gas_1786", label %"$have_gas_1787" - -"$out_of_gas_1786": ; preds = %"$have_gas_1782" - call void @_out_of_gas() - br label %"$have_gas_1787" - -"$have_gas_1787": ; preds = %"$out_of_gas_1786", %"$have_gas_1782" - %"$consume_1788" = sub i64 %"$gasrem_1784", 1 - store i64 %"$consume_1788", i64* @_gasrem, align 8 - %"$$ListUtils.list_find_6_1789" = load { i8*, i8* }*, { i8*, i8* }** %"$ListUtils.list_find_6", align 8 - %"$$ListUtils.list_find_6_1790" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$$ListUtils.list_find_6_1789", i32 0 - %"$$ListUtils.list_find_6_1791" = bitcast { i8*, i8* }* %"$$ListUtils.list_find_6_1790" to { { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*, i8* }* - %"$$ListUtils.list_find_6_1792" = 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_6_1791", align 8 - %"$$ListUtils.list_find_6_fptr_1793" = extractvalue { { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*, i8* } %"$$ListUtils.list_find_6_1792", 0 - %"$$ListUtils.list_find_6_envptr_1794" = extractvalue { { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*, i8* } %"$$ListUtils.list_find_6_1792", 1 - %"$$ListUtils.list_find_6_call_1795" = call { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } %"$$ListUtils.list_find_6_fptr_1793"(i8* %"$$ListUtils.list_find_6_envptr_1794"), !dbg !252 - store { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } %"$$ListUtils.list_find_6_call_1795", { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* }* %find, align 8, !dbg !253 - %"$gasrem_1796" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1797" = icmp ugt i64 1, %"$gasrem_1796" - br i1 %"$gascmp_1797", label %"$out_of_gas_1798", label %"$have_gas_1799" - -"$out_of_gas_1798": ; preds = %"$have_gas_1787" - call void @_out_of_gas() - br label %"$have_gas_1799" - -"$have_gas_1799": ; preds = %"$out_of_gas_1798", %"$have_gas_1787" - %"$consume_1800" = sub i64 %"$gasrem_1796", 1 - store i64 %"$consume_1800", i64* @_gasrem, align 8 + %"$gasrem_1808" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1809" = icmp ugt i64 1, %"$gasrem_1808" + br i1 %"$gascmp_1809", label %"$out_of_gas_1810", label %"$have_gas_1811" + +"$out_of_gas_1810": ; preds = %"$have_gas_1806" + call void @_out_of_gas() + br label %"$have_gas_1811" + +"$have_gas_1811": ; preds = %"$out_of_gas_1810", %"$have_gas_1806" + %"$consume_1812" = sub i64 %"$gasrem_1808", 1 + store i64 %"$consume_1812", i64* @_gasrem, align 8 + %"$$ListUtils.list_find_6_1813" = load { i8*, i8* }*, { i8*, i8* }** %"$ListUtils.list_find_6", align 8 + %"$$ListUtils.list_find_6_1814" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$$ListUtils.list_find_6_1813", i32 0 + %"$$ListUtils.list_find_6_1815" = bitcast { i8*, i8* }* %"$$ListUtils.list_find_6_1814" to { { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*, i8* }* + %"$$ListUtils.list_find_6_1816" = 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_6_1815", align 8 + %"$$ListUtils.list_find_6_fptr_1817" = extractvalue { { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*, i8* } %"$$ListUtils.list_find_6_1816", 0 + %"$$ListUtils.list_find_6_envptr_1818" = extractvalue { { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*, i8* } %"$$ListUtils.list_find_6_1816", 1 + %"$$ListUtils.list_find_6_call_1819" = call { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } %"$$ListUtils.list_find_6_fptr_1817"(i8* %"$$ListUtils.list_find_6_envptr_1818"), !dbg !451 + store { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } %"$$ListUtils.list_find_6_call_1819", { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* }* %find, align 8, !dbg !452 + %"$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_1811" + call void @_out_of_gas() + br label %"$have_gas_1823" + +"$have_gas_1823": ; preds = %"$out_of_gas_1822", %"$have_gas_1811" + %"$consume_1824" = sub i64 %"$gasrem_1820", 1 + store i64 %"$consume_1824", i64* @_gasrem, align 8 %search = alloca %TName_Option_ByStr20*, align 8 - %"$gasrem_1801" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1802" = icmp ugt i64 1, %"$gasrem_1801" - br i1 %"$gascmp_1802", label %"$out_of_gas_1803", label %"$have_gas_1804" + call void @llvm.dbg.declare(metadata %TName_Option_ByStr20** %search, metadata !453, metadata !DIExpression()), !dbg !454 + %"$gasrem_1825" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1826" = icmp ugt i64 1, %"$gasrem_1825" + br i1 %"$gascmp_1826", label %"$out_of_gas_1827", label %"$have_gas_1828" -"$out_of_gas_1803": ; preds = %"$have_gas_1799" +"$out_of_gas_1827": ; preds = %"$have_gas_1823" call void @_out_of_gas() - br label %"$have_gas_1804" + br label %"$have_gas_1828" -"$have_gas_1804": ; preds = %"$out_of_gas_1803", %"$have_gas_1799" - %"$consume_1805" = sub i64 %"$gasrem_1801", 1 - store i64 %"$consume_1805", i64* @_gasrem, align 8 +"$have_gas_1828": ; preds = %"$out_of_gas_1827", %"$have_gas_1823" + %"$consume_1829" = sub i64 %"$gasrem_1825", 1 + store i64 %"$consume_1829", i64* @_gasrem, align 8 %"$find_56" = alloca { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }, align 8 - %"$find_1806" = 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_1807" = extractvalue { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } %"$find_1806", 0 - %"$find_envptr_1808" = extractvalue { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } %"$find_1806", 1 - %"$p_1809" = load { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %p, align 8 - %"$find_call_1810" = call { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$find_fptr_1807"(i8* %"$find_envptr_1808", { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$p_1809"), !dbg !254 - store { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$find_call_1810", { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }* %"$find_56", align 8, !dbg !254 + %"$find_1830" = 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_1831" = extractvalue { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } %"$find_1830", 0 + %"$find_envptr_1832" = extractvalue { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } %"$find_1830", 1 + %"$p_1833" = load { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %p, align 8 + %"$find_call_1834" = call { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$find_fptr_1831"(i8* %"$find_envptr_1832", { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$p_1833"), !dbg !455 + store { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$find_call_1834", { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }* %"$find_56", align 8, !dbg !455 %"$find_57" = alloca %TName_Option_ByStr20*, align 8 - %"$$find_56_1811" = load { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }, { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }* %"$find_56", align 8 - %"$$find_56_fptr_1812" = extractvalue { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$$find_56_1811", 0 - %"$$find_56_envptr_1813" = extractvalue { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$$find_56_1811", 1 - %"$$find_56_call_1814" = call %TName_Option_ByStr20* %"$$find_56_fptr_1812"(i8* %"$$find_56_envptr_1813", %TName_List_ByStr20* %1), !dbg !254 - store %TName_Option_ByStr20* %"$$find_56_call_1814", %TName_Option_ByStr20** %"$find_57", align 8, !dbg !254 - %"$$find_57_1815" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %"$find_57", align 8 - store %TName_Option_ByStr20* %"$$find_57_1815", %TName_Option_ByStr20** %search, align 8, !dbg !254 - %"$gasrem_1816" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1817" = icmp ugt i64 2, %"$gasrem_1816" - br i1 %"$gascmp_1817", label %"$out_of_gas_1818", label %"$have_gas_1819" - -"$out_of_gas_1818": ; preds = %"$have_gas_1804" - call void @_out_of_gas() - br label %"$have_gas_1819" - -"$have_gas_1819": ; preds = %"$out_of_gas_1818", %"$have_gas_1804" - %"$consume_1820" = sub i64 %"$gasrem_1816", 2 - store i64 %"$consume_1820", i64* @_gasrem, align 8 - %"$search_1822" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %search, align 8 - %"$search_tag_1823" = getelementptr inbounds %TName_Option_ByStr20, %TName_Option_ByStr20* %"$search_1822", i32 0, i32 0 - %"$search_tag_1824" = load i8, i8* %"$search_tag_1823", align 1 - switch i8 %"$search_tag_1824", label %"$empty_default_1825" [ - i8 0, label %"$Some_1826" - i8 1, label %"$None_1838" - ], !dbg !255 - -"$Some_1826": ; preds = %"$have_gas_1819" - %"$search_1827" = bitcast %TName_Option_ByStr20* %"$search_1822" to %CName_Some_ByStr20* - %"$$search_23_gep_1828" = getelementptr inbounds %CName_Some_ByStr20, %CName_Some_ByStr20* %"$search_1827", i32 0, i32 1 - %"$$search_23_load_1829" = load [20 x i8], [20 x i8]* %"$$search_23_gep_1828", align 1 - %"$search_23" = alloca [20 x i8], align 1 - store [20 x i8] %"$$search_23_load_1829", [20 x i8]* %"$search_23", align 1 - %"$gasrem_1830" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1831" = icmp ugt i64 1, %"$gasrem_1830" - br i1 %"$gascmp_1831", label %"$out_of_gas_1832", label %"$have_gas_1833" - -"$out_of_gas_1832": ; preds = %"$Some_1826" - call void @_out_of_gas() - br label %"$have_gas_1833" - -"$have_gas_1833": ; preds = %"$out_of_gas_1832", %"$Some_1826" - %"$consume_1834" = sub i64 %"$gasrem_1830", 1 - store i64 %"$consume_1834", i64* @_gasrem, align 8 - %"$adtval_1835_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_1835_salloc" = call i8* @_salloc(i8* %"$adtval_1835_load", i64 1) - %"$adtval_1835" = bitcast i8* %"$adtval_1835_salloc" to %CName_True* - %"$adtgep_1836" = getelementptr inbounds %CName_True, %CName_True* %"$adtval_1835", i32 0, i32 0 - store i8 0, i8* %"$adtgep_1836", align 1 - %"$adtptr_1837" = bitcast %CName_True* %"$adtval_1835" to %TName_Bool* - store %TName_Bool* %"$adtptr_1837", %TName_Bool** %"$retval_356", align 8, !dbg !256 - br label %"$matchsucc_1821" - -"$None_1838": ; preds = %"$have_gas_1819" - %"$search_1839" = bitcast %TName_Option_ByStr20* %"$search_1822" to %CName_None_ByStr20* + call void @llvm.dbg.declare(metadata %TName_Option_ByStr20** %"$find_57", metadata !456, metadata !DIExpression()), !dbg !455 + %"$$find_56_1835" = load { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }, { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }* %"$find_56", align 8 + %"$$find_56_fptr_1836" = extractvalue { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$$find_56_1835", 0 + %"$$find_56_envptr_1837" = extractvalue { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$$find_56_1835", 1 + %"$$find_56_call_1838" = call %TName_Option_ByStr20* %"$$find_56_fptr_1836"(i8* %"$$find_56_envptr_1837", %TName_List_ByStr20* %1), !dbg !455 + store %TName_Option_ByStr20* %"$$find_56_call_1838", %TName_Option_ByStr20** %"$find_57", align 8, !dbg !455 + %"$$find_57_1839" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %"$find_57", align 8 + store %TName_Option_ByStr20* %"$$find_57_1839", %TName_Option_ByStr20** %search, align 8, !dbg !455 %"$gasrem_1840" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1841" = icmp ugt i64 1, %"$gasrem_1840" + %"$gascmp_1841" = icmp ugt i64 2, %"$gasrem_1840" br i1 %"$gascmp_1841", label %"$out_of_gas_1842", label %"$have_gas_1843" -"$out_of_gas_1842": ; preds = %"$None_1838" +"$out_of_gas_1842": ; preds = %"$have_gas_1828" call void @_out_of_gas() br label %"$have_gas_1843" -"$have_gas_1843": ; preds = %"$out_of_gas_1842", %"$None_1838" - %"$consume_1844" = sub i64 %"$gasrem_1840", 1 +"$have_gas_1843": ; preds = %"$out_of_gas_1842", %"$have_gas_1828" + %"$consume_1844" = sub i64 %"$gasrem_1840", 2 store i64 %"$consume_1844", i64* @_gasrem, align 8 - %"$adtval_1845_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_1845_salloc" = call i8* @_salloc(i8* %"$adtval_1845_load", i64 1) - %"$adtval_1845" = bitcast i8* %"$adtval_1845_salloc" to %CName_False* - %"$adtgep_1846" = getelementptr inbounds %CName_False, %CName_False* %"$adtval_1845", i32 0, i32 0 - store i8 1, i8* %"$adtgep_1846", align 1 - %"$adtptr_1847" = bitcast %CName_False* %"$adtval_1845" to %TName_Bool* - store %TName_Bool* %"$adtptr_1847", %TName_Bool** %"$retval_356", align 8, !dbg !259 - br label %"$matchsucc_1821" - -"$empty_default_1825": ; preds = %"$have_gas_1819" - br label %"$matchsucc_1821" - -"$matchsucc_1821": ; preds = %"$have_gas_1843", %"$have_gas_1833", %"$empty_default_1825" - %"$$retval_356_1848" = load %TName_Bool*, %TName_Bool** %"$retval_356", align 8 - ret %TName_Bool* %"$$retval_356_1848" -} - -define internal { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } @"$fundef_353"(%"$$fundef_353_env_619"* %0, { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %1) !dbg !261 { -entry: - %"$$fundef_353_env_$ListUtils.list_find_6_1760" = getelementptr inbounds %"$$fundef_353_env_619", %"$$fundef_353_env_619"* %0, i32 0, i32 0 - %"$$ListUtils.list_find_6_envload_1761" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_353_env_$ListUtils.list_find_6_1760", align 8 + %"$search_1846" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %search, align 8 + %"$search_tag_1847" = getelementptr inbounds %TName_Option_ByStr20, %TName_Option_ByStr20* %"$search_1846", i32 0, i32 0 + %"$search_tag_1848" = load i8, i8* %"$search_tag_1847", align 1 + switch i8 %"$search_tag_1848", label %"$empty_default_1849" [ + i8 0, label %"$Some_1850" + i8 1, label %"$None_1862" + ], !dbg !457 + +"$Some_1850": ; preds = %"$have_gas_1843" + %"$search_1851" = bitcast %TName_Option_ByStr20* %"$search_1846" to %CName_Some_ByStr20* + %"$$search_23_gep_1852" = getelementptr inbounds %CName_Some_ByStr20, %CName_Some_ByStr20* %"$search_1851", i32 0, i32 1 + %"$$search_23_load_1853" = load [20 x i8], [20 x i8]* %"$$search_23_gep_1852", align 1 + %"$search_23" = alloca [20 x i8], align 1 + store [20 x i8] %"$$search_23_load_1853", [20 x i8]* %"$search_23", align 1 + %"$gasrem_1854" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1855" = icmp ugt i64 1, %"$gasrem_1854" + br i1 %"$gascmp_1855", label %"$out_of_gas_1856", label %"$have_gas_1857" + +"$out_of_gas_1856": ; preds = %"$Some_1850" + call void @_out_of_gas() + br label %"$have_gas_1857" + +"$have_gas_1857": ; preds = %"$out_of_gas_1856", %"$Some_1850" + %"$consume_1858" = sub i64 %"$gasrem_1854", 1 + store i64 %"$consume_1858", i64* @_gasrem, align 8 + %"$adtval_1859_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_1859_salloc" = call i8* @_salloc(i8* %"$adtval_1859_load", i64 1) + %"$adtval_1859" = bitcast i8* %"$adtval_1859_salloc" to %CName_True* + %"$adtgep_1860" = getelementptr inbounds %CName_True, %CName_True* %"$adtval_1859", i32 0, i32 0 + store i8 0, i8* %"$adtgep_1860", align 1 + %"$adtptr_1861" = bitcast %CName_True* %"$adtval_1859" to %TName_Bool* + store %TName_Bool* %"$adtptr_1861", %TName_Bool** %"$retval_356", align 8, !dbg !458 + br label %"$matchsucc_1845" + +"$None_1862": ; preds = %"$have_gas_1843" + %"$search_1863" = bitcast %TName_Option_ByStr20* %"$search_1846" to %CName_None_ByStr20* + %"$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 = %"$None_1862" + call void @_out_of_gas() + br label %"$have_gas_1867" + +"$have_gas_1867": ; preds = %"$out_of_gas_1866", %"$None_1862" + %"$consume_1868" = sub i64 %"$gasrem_1864", 1 + store i64 %"$consume_1868", i64* @_gasrem, align 8 + %"$adtval_1869_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_1869_salloc" = call i8* @_salloc(i8* %"$adtval_1869_load", i64 1) + %"$adtval_1869" = bitcast i8* %"$adtval_1869_salloc" to %CName_False* + %"$adtgep_1870" = getelementptr inbounds %CName_False, %CName_False* %"$adtval_1869", i32 0, i32 0 + store i8 1, i8* %"$adtgep_1870", align 1 + %"$adtptr_1871" = bitcast %CName_False* %"$adtval_1869" to %TName_Bool* + store %TName_Bool* %"$adtptr_1871", %TName_Bool** %"$retval_356", align 8, !dbg !461 + br label %"$matchsucc_1845" + +"$empty_default_1849": ; preds = %"$have_gas_1843" + br label %"$matchsucc_1845" + +"$matchsucc_1845": ; preds = %"$have_gas_1867", %"$have_gas_1857", %"$empty_default_1849" + %"$$retval_356_1872" = load %TName_Bool*, %TName_Bool** %"$retval_356", align 8 + ret %TName_Bool* %"$$retval_356_1872" +} + +define internal { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } @"$fundef_353"(%"$$fundef_353_env_619"* %0, { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %1) !dbg !463 { +entry: + %"$$fundef_353_env_$ListUtils.list_find_6_1784" = getelementptr inbounds %"$$fundef_353_env_619", %"$$fundef_353_env_619"* %0, i32 0, i32 0 + %"$$ListUtils.list_find_6_envload_1785" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_353_env_$ListUtils.list_find_6_1784", align 8 %"$ListUtils.list_find_6" = alloca { i8*, i8* }*, align 8 - store { i8*, i8* }* %"$$ListUtils.list_find_6_envload_1761", { i8*, i8* }** %"$ListUtils.list_find_6", align 8 + store { i8*, i8* }* %"$$ListUtils.list_find_6_envload_1785", { i8*, i8* }** %"$ListUtils.list_find_6", align 8 %"$retval_354" = alloca { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* }, align 8 - %"$gasrem_1762" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1763" = icmp ugt i64 1, %"$gasrem_1762" - br i1 %"$gascmp_1763", label %"$out_of_gas_1764", label %"$have_gas_1765" - -"$out_of_gas_1764": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_1765" - -"$have_gas_1765": ; preds = %"$out_of_gas_1764", %entry - %"$consume_1766" = sub i64 %"$gasrem_1762", 1 - store i64 %"$consume_1766", i64* @_gasrem, align 8 - %"$$fundef_355_envp_1767_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_355_envp_1767_salloc" = call i8* @_salloc(i8* %"$$fundef_355_envp_1767_load", i64 24) - %"$$fundef_355_envp_1767" = bitcast i8* %"$$fundef_355_envp_1767_salloc" to %"$$fundef_355_env_618"* - %"$$fundef_355_env_voidp_1769" = bitcast %"$$fundef_355_env_618"* %"$$fundef_355_envp_1767" to i8* - %"$$fundef_355_cloval_1770" = insertvalue { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } { %TName_Bool* (i8*, %TName_List_ByStr20*)* bitcast (%TName_Bool* (%"$$fundef_355_env_618"*, %TName_List_ByStr20*)* @"$fundef_355" to %TName_Bool* (i8*, %TName_List_ByStr20*)*), i8* undef }, i8* %"$$fundef_355_env_voidp_1769", 1 - %"$$fundef_355_env_$ListUtils.list_find_6_1771" = getelementptr inbounds %"$$fundef_355_env_618", %"$$fundef_355_env_618"* %"$$fundef_355_envp_1767", i32 0, i32 0 - %"$$ListUtils.list_find_6_1772" = load { i8*, i8* }*, { i8*, i8* }** %"$ListUtils.list_find_6", align 8 - store { i8*, i8* }* %"$$ListUtils.list_find_6_1772", { i8*, i8* }** %"$$fundef_355_env_$ListUtils.list_find_6_1771", align 8 - %"$$fundef_355_env_p_1773" = getelementptr inbounds %"$$fundef_355_env_618", %"$$fundef_355_env_618"* %"$$fundef_355_envp_1767", i32 0, i32 1 - store { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %1, { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %"$$fundef_355_env_p_1773", align 8 - store { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } %"$$fundef_355_cloval_1770", { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* }* %"$retval_354", align 8, !dbg !262 - %"$$retval_354_1774" = load { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* }, { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* }* %"$retval_354", align 8 - ret { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } %"$$retval_354_1774" -} - -define internal { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } @"$fundef_351"(%"$$fundef_351_env_620"* %0) !dbg !263 { -entry: - %"$$fundef_351_env_$ListUtils.list_find_6_1746" = getelementptr inbounds %"$$fundef_351_env_620", %"$$fundef_351_env_620"* %0, i32 0, i32 0 - %"$$ListUtils.list_find_6_envload_1747" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_351_env_$ListUtils.list_find_6_1746", align 8 + %"$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_1788": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_1789" + +"$have_gas_1789": ; preds = %"$out_of_gas_1788", %entry + %"$consume_1790" = sub i64 %"$gasrem_1786", 1 + store i64 %"$consume_1790", i64* @_gasrem, align 8 + %"$$fundef_355_envp_1791_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_355_envp_1791_salloc" = call i8* @_salloc(i8* %"$$fundef_355_envp_1791_load", i64 24) + %"$$fundef_355_envp_1791" = bitcast i8* %"$$fundef_355_envp_1791_salloc" to %"$$fundef_355_env_618"* + %"$$fundef_355_env_voidp_1793" = bitcast %"$$fundef_355_env_618"* %"$$fundef_355_envp_1791" to i8* + %"$$fundef_355_cloval_1794" = insertvalue { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } { %TName_Bool* (i8*, %TName_List_ByStr20*)* bitcast (%TName_Bool* (%"$$fundef_355_env_618"*, %TName_List_ByStr20*)* @"$fundef_355" to %TName_Bool* (i8*, %TName_List_ByStr20*)*), i8* undef }, i8* %"$$fundef_355_env_voidp_1793", 1 + %"$$fundef_355_env_$ListUtils.list_find_6_1795" = getelementptr inbounds %"$$fundef_355_env_618", %"$$fundef_355_env_618"* %"$$fundef_355_envp_1791", i32 0, i32 0 + %"$$ListUtils.list_find_6_1796" = load { i8*, i8* }*, { i8*, i8* }** %"$ListUtils.list_find_6", align 8 + store { i8*, i8* }* %"$$ListUtils.list_find_6_1796", { i8*, i8* }** %"$$fundef_355_env_$ListUtils.list_find_6_1795", align 8 + %"$$fundef_355_env_p_1797" = getelementptr inbounds %"$$fundef_355_env_618", %"$$fundef_355_env_618"* %"$$fundef_355_envp_1791", i32 0, i32 1 + store { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %1, { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %"$$fundef_355_env_p_1797", align 8 + store { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } %"$$fundef_355_cloval_1794", { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* }* %"$retval_354", align 8, !dbg !464 + %"$$retval_354_1798" = load { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* }, { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* }* %"$retval_354", align 8 + ret { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } %"$$retval_354_1798" +} + +define internal { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } @"$fundef_351"(%"$$fundef_351_env_620"* %0) !dbg !465 { +entry: + %"$$fundef_351_env_$ListUtils.list_find_6_1770" = getelementptr inbounds %"$$fundef_351_env_620", %"$$fundef_351_env_620"* %0, i32 0, i32 0 + %"$$ListUtils.list_find_6_envload_1771" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_351_env_$ListUtils.list_find_6_1770", align 8 %"$ListUtils.list_find_6" = alloca { i8*, i8* }*, align 8 - store { i8*, i8* }* %"$$ListUtils.list_find_6_envload_1747", { i8*, i8* }** %"$ListUtils.list_find_6", align 8 + store { i8*, i8* }* %"$$ListUtils.list_find_6_envload_1771", { i8*, i8* }** %"$ListUtils.list_find_6", align 8 %"$retval_352" = alloca { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* }, align 8 - %"$gasrem_1748" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1749" = icmp ugt i64 1, %"$gasrem_1748" - br i1 %"$gascmp_1749", label %"$out_of_gas_1750", label %"$have_gas_1751" - -"$out_of_gas_1750": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_1751" - -"$have_gas_1751": ; preds = %"$out_of_gas_1750", %entry - %"$consume_1752" = sub i64 %"$gasrem_1748", 1 - store i64 %"$consume_1752", i64* @_gasrem, align 8 - %"$$fundef_353_envp_1753_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_353_envp_1753_salloc" = call i8* @_salloc(i8* %"$$fundef_353_envp_1753_load", i64 8) - %"$$fundef_353_envp_1753" = bitcast i8* %"$$fundef_353_envp_1753_salloc" to %"$$fundef_353_env_619"* - %"$$fundef_353_env_voidp_1755" = bitcast %"$$fundef_353_env_619"* %"$$fundef_353_envp_1753" to i8* - %"$$fundef_353_cloval_1756" = 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_353_env_619"*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })* @"$fundef_353" to { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*), i8* undef }, i8* %"$$fundef_353_env_voidp_1755", 1 - %"$$fundef_353_env_$ListUtils.list_find_6_1757" = getelementptr inbounds %"$$fundef_353_env_619", %"$$fundef_353_env_619"* %"$$fundef_353_envp_1753", i32 0, i32 0 - %"$$ListUtils.list_find_6_1758" = load { i8*, i8* }*, { i8*, i8* }** %"$ListUtils.list_find_6", align 8 - store { i8*, i8* }* %"$$ListUtils.list_find_6_1758", { i8*, i8* }** %"$$fundef_353_env_$ListUtils.list_find_6_1757", align 8 - store { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } %"$$fundef_353_cloval_1756", { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* }* %"$retval_352", align 8, !dbg !264 - %"$$retval_352_1759" = 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_352", align 8 - ret { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } %"$$retval_352_1759" -} - -define internal %TName_Option_ByStr20* @"$fundef_349"(%"$$fundef_349_env_621"* %0, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* } %1) !dbg !265 { -entry: - %"$$fundef_349_env_init_1688" = getelementptr inbounds %"$$fundef_349_env_621", %"$$fundef_349_env_621"* %0, i32 0, i32 0 - %"$init_envload_1689" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %"$$fundef_349_env_init_1688", 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_353_envp_1777_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_353_envp_1777_salloc" = call i8* @_salloc(i8* %"$$fundef_353_envp_1777_load", i64 8) + %"$$fundef_353_envp_1777" = bitcast i8* %"$$fundef_353_envp_1777_salloc" to %"$$fundef_353_env_619"* + %"$$fundef_353_env_voidp_1779" = bitcast %"$$fundef_353_env_619"* %"$$fundef_353_envp_1777" to i8* + %"$$fundef_353_cloval_1780" = 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_353_env_619"*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })* @"$fundef_353" to { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*), i8* undef }, i8* %"$$fundef_353_env_voidp_1779", 1 + %"$$fundef_353_env_$ListUtils.list_find_6_1781" = getelementptr inbounds %"$$fundef_353_env_619", %"$$fundef_353_env_619"* %"$$fundef_353_envp_1777", i32 0, i32 0 + %"$$ListUtils.list_find_6_1782" = load { i8*, i8* }*, { i8*, i8* }** %"$ListUtils.list_find_6", align 8 + store { i8*, i8* }* %"$$ListUtils.list_find_6_1782", { i8*, i8* }** %"$$fundef_353_env_$ListUtils.list_find_6_1781", align 8 + store { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } %"$$fundef_353_cloval_1780", { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* }* %"$retval_352", align 8, !dbg !466 + %"$$retval_352_1783" = 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_352", align 8 + ret { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } %"$$retval_352_1783" +} + +define internal %TName_Option_ByStr20* @"$fundef_349"(%"$$fundef_349_env_621"* %0, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* } %1) !dbg !467 { +entry: + %"$$fundef_349_env_init_1712" = getelementptr inbounds %"$$fundef_349_env_621", %"$$fundef_349_env_621"* %0, i32 0, i32 0 + %"$init_envload_1713" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %"$$fundef_349_env_init_1712", align 8 %init = alloca %TName_Option_ByStr20*, align 8 - store %TName_Option_ByStr20* %"$init_envload_1689", %TName_Option_ByStr20** %init, align 8 - %"$$fundef_349_env_p_1690" = getelementptr inbounds %"$$fundef_349_env_621", %"$$fundef_349_env_621"* %0, i32 0, i32 1 - %"$p_envload_1691" = load { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %"$$fundef_349_env_p_1690", align 8 + store %TName_Option_ByStr20* %"$init_envload_1713", %TName_Option_ByStr20** %init, align 8 + %"$$fundef_349_env_p_1714" = getelementptr inbounds %"$$fundef_349_env_621", %"$$fundef_349_env_621"* %0, i32 0, i32 1 + %"$p_envload_1715" = load { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %"$$fundef_349_env_p_1714", align 8 %p = alloca { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, align 8 - store { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$p_envload_1691", { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %p, align 8 - %"$$fundef_349_env_x_1692" = getelementptr inbounds %"$$fundef_349_env_621", %"$$fundef_349_env_621"* %0, i32 0, i32 2 - %"$x_envload_1693" = load [20 x i8], [20 x i8]* %"$$fundef_349_env_x_1692", align 1 + store { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$p_envload_1715", { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %p, align 8 + %"$$fundef_349_env_x_1716" = getelementptr inbounds %"$$fundef_349_env_621", %"$$fundef_349_env_621"* %0, i32 0, i32 2 + %"$x_envload_1717" = load [20 x i8], [20 x i8]* %"$$fundef_349_env_x_1716", align 1 %x = alloca [20 x i8], align 1 - store [20 x i8] %"$x_envload_1693", [20 x i8]* %x, align 1 + store [20 x i8] %"$x_envload_1717", [20 x i8]* %x, align 1 %"$retval_350" = alloca %TName_Option_ByStr20*, 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" + call void @llvm.dbg.declare(metadata %TName_Option_ByStr20** %"$retval_350", metadata !468, metadata !DIExpression()), !dbg !469 + %"$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_1696": ; preds = %entry +"$out_of_gas_1720": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_1697" + br label %"$have_gas_1721" -"$have_gas_1697": ; preds = %"$out_of_gas_1696", %entry - %"$consume_1698" = sub i64 %"$gasrem_1694", 1 - store i64 %"$consume_1698", i64* @_gasrem, align 8 +"$have_gas_1721": ; preds = %"$out_of_gas_1720", %entry + %"$consume_1722" = sub i64 %"$gasrem_1718", 1 + store i64 %"$consume_1722", i64* @_gasrem, align 8 %p_x = alloca %TName_Bool*, 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" - -"$out_of_gas_1701": ; preds = %"$have_gas_1697" - call void @_out_of_gas() - br label %"$have_gas_1702" - -"$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 - %"$p_52" = alloca %TName_Bool*, align 8 - %"$p_1704" = load { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %p, align 8 - %"$p_fptr_1705" = extractvalue { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$p_1704", 0 - %"$p_envptr_1706" = extractvalue { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$p_1704", 1 - %"$p_x_1707" = alloca [20 x i8], align 1 - %"$x_1708" = load [20 x i8], [20 x i8]* %x, align 1 - store [20 x i8] %"$x_1708", [20 x i8]* %"$p_x_1707", align 1 - %"$p_call_1709" = call %TName_Bool* %"$p_fptr_1705"(i8* %"$p_envptr_1706", [20 x i8]* %"$p_x_1707"), !dbg !266 - store %TName_Bool* %"$p_call_1709", %TName_Bool** %"$p_52", align 8, !dbg !266 - %"$$p_52_1710" = load %TName_Bool*, %TName_Bool** %"$p_52", align 8 - store %TName_Bool* %"$$p_52_1710", %TName_Bool** %p_x, align 8, !dbg !266 - %"$gasrem_1711" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1712" = icmp ugt i64 2, %"$gasrem_1711" - br i1 %"$gascmp_1712", label %"$out_of_gas_1713", label %"$have_gas_1714" - -"$out_of_gas_1713": ; preds = %"$have_gas_1702" - call void @_out_of_gas() - br label %"$have_gas_1714" - -"$have_gas_1714": ; preds = %"$out_of_gas_1713", %"$have_gas_1702" - %"$consume_1715" = sub i64 %"$gasrem_1711", 2 - store i64 %"$consume_1715", i64* @_gasrem, align 8 - %"$p_x_1717" = load %TName_Bool*, %TName_Bool** %p_x, align 8 - %"$p_x_tag_1718" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$p_x_1717", i32 0, i32 0 - %"$p_x_tag_1719" = load i8, i8* %"$p_x_tag_1718", align 1 - switch i8 %"$p_x_tag_1719", label %"$empty_default_1720" [ - i8 0, label %"$True_1721" - i8 1, label %"$False_1733" - ], !dbg !267 - -"$True_1721": ; preds = %"$have_gas_1714" - %"$p_x_1722" = bitcast %TName_Bool* %"$p_x_1717" to %CName_True* + call void @llvm.dbg.declare(metadata %TName_Bool** %p_x, metadata !470, metadata !DIExpression()), !dbg !471 %"$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 = %"$True_1721" +"$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", %"$True_1721" +"$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 - %"$x_1728" = load [20 x i8], [20 x i8]* %x, align 1 - %"$adtval_1729_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_1729_salloc" = call i8* @_salloc(i8* %"$adtval_1729_load", i64 21) - %"$adtval_1729" = bitcast i8* %"$adtval_1729_salloc" to %CName_Some_ByStr20* - %"$adtgep_1730" = getelementptr inbounds %CName_Some_ByStr20, %CName_Some_ByStr20* %"$adtval_1729", i32 0, i32 0 - store i8 0, i8* %"$adtgep_1730", align 1 - %"$adtgep_1731" = getelementptr inbounds %CName_Some_ByStr20, %CName_Some_ByStr20* %"$adtval_1729", i32 0, i32 1 - store [20 x i8] %"$x_1728", [20 x i8]* %"$adtgep_1731", align 1 - %"$adtptr_1732" = bitcast %CName_Some_ByStr20* %"$adtval_1729" to %TName_Option_ByStr20* - store %TName_Option_ByStr20* %"$adtptr_1732", %TName_Option_ByStr20** %"$retval_350", align 8, !dbg !268 - br label %"$matchsucc_1716" - -"$False_1733": ; preds = %"$have_gas_1714" - %"$p_x_1734" = bitcast %TName_Bool* %"$p_x_1717" to %CName_False* + %"$p_52" = alloca %TName_Bool*, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$p_52", metadata !472, metadata !DIExpression()), !dbg !473 + %"$p_1728" = load { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %p, align 8 + %"$p_fptr_1729" = extractvalue { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$p_1728", 0 + %"$p_envptr_1730" = extractvalue { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$p_1728", 1 + %"$p_x_1731" = alloca [20 x i8], align 1 + %"$x_1732" = load [20 x i8], [20 x i8]* %x, align 1 + store [20 x i8] %"$x_1732", [20 x i8]* %"$p_x_1731", align 1 + %"$p_call_1733" = call %TName_Bool* %"$p_fptr_1729"(i8* %"$p_envptr_1730", [20 x i8]* %"$p_x_1731"), !dbg !473 + store %TName_Bool* %"$p_call_1733", %TName_Bool** %"$p_52", align 8, !dbg !473 + %"$$p_52_1734" = load %TName_Bool*, %TName_Bool** %"$p_52", align 8 + store %TName_Bool* %"$$p_52_1734", %TName_Bool** %p_x, align 8, !dbg !473 %"$gasrem_1735" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1736" = icmp ugt i64 1, %"$gasrem_1735" + %"$gascmp_1736" = icmp ugt i64 2, %"$gasrem_1735" br i1 %"$gascmp_1736", label %"$out_of_gas_1737", label %"$have_gas_1738" -"$out_of_gas_1737": ; preds = %"$False_1733" +"$out_of_gas_1737": ; preds = %"$have_gas_1726" call void @_out_of_gas() br label %"$have_gas_1738" -"$have_gas_1738": ; preds = %"$out_of_gas_1737", %"$False_1733" - %"$consume_1739" = sub i64 %"$gasrem_1735", 1 +"$have_gas_1738": ; preds = %"$out_of_gas_1737", %"$have_gas_1726" + %"$consume_1739" = sub i64 %"$gasrem_1735", 2 store i64 %"$consume_1739", i64* @_gasrem, align 8 + %"$p_x_1741" = load %TName_Bool*, %TName_Bool** %p_x, align 8 + %"$p_x_tag_1742" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$p_x_1741", i32 0, i32 0 + %"$p_x_tag_1743" = load i8, i8* %"$p_x_tag_1742", align 1 + switch i8 %"$p_x_tag_1743", label %"$empty_default_1744" [ + i8 0, label %"$True_1745" + i8 1, label %"$False_1757" + ], !dbg !474 + +"$True_1745": ; preds = %"$have_gas_1738" + %"$p_x_1746" = bitcast %TName_Bool* %"$p_x_1741" to %CName_True* + %"$gasrem_1747" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1748" = icmp ugt i64 1, %"$gasrem_1747" + br i1 %"$gascmp_1748", label %"$out_of_gas_1749", label %"$have_gas_1750" + +"$out_of_gas_1749": ; preds = %"$True_1745" + call void @_out_of_gas() + br label %"$have_gas_1750" + +"$have_gas_1750": ; preds = %"$out_of_gas_1749", %"$True_1745" + %"$consume_1751" = sub i64 %"$gasrem_1747", 1 + store i64 %"$consume_1751", i64* @_gasrem, align 8 + %"$x_1752" = load [20 x i8], [20 x i8]* %x, align 1 + %"$adtval_1753_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_1753_salloc" = call i8* @_salloc(i8* %"$adtval_1753_load", i64 21) + %"$adtval_1753" = bitcast i8* %"$adtval_1753_salloc" to %CName_Some_ByStr20* + %"$adtgep_1754" = getelementptr inbounds %CName_Some_ByStr20, %CName_Some_ByStr20* %"$adtval_1753", i32 0, i32 0 + store i8 0, i8* %"$adtgep_1754", align 1 + %"$adtgep_1755" = getelementptr inbounds %CName_Some_ByStr20, %CName_Some_ByStr20* %"$adtval_1753", i32 0, i32 1 + store [20 x i8] %"$x_1752", [20 x i8]* %"$adtgep_1755", align 1 + %"$adtptr_1756" = bitcast %CName_Some_ByStr20* %"$adtval_1753" to %TName_Option_ByStr20* + store %TName_Option_ByStr20* %"$adtptr_1756", %TName_Option_ByStr20** %"$retval_350", align 8, !dbg !475 + br label %"$matchsucc_1740" + +"$False_1757": ; preds = %"$have_gas_1738" + %"$p_x_1758" = bitcast %TName_Bool* %"$p_x_1741" to %CName_False* + %"$gasrem_1759" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1760" = icmp ugt i64 1, %"$gasrem_1759" + br i1 %"$gascmp_1760", label %"$out_of_gas_1761", label %"$have_gas_1762" + +"$out_of_gas_1761": ; preds = %"$False_1757" + call void @_out_of_gas() + br label %"$have_gas_1762" + +"$have_gas_1762": ; preds = %"$out_of_gas_1761", %"$False_1757" + %"$consume_1763" = sub i64 %"$gasrem_1759", 1 + store i64 %"$consume_1763", i64* @_gasrem, align 8 %"$recurse_53" = alloca %TName_Option_ByStr20*, align 8 - %"$recurse_fptr_1740" = extractvalue { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* } %1, 0 - %"$recurse_envptr_1741" = extractvalue { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* } %1, 1 - %"$init_1742" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %init, align 8 - %"$recurse_call_1743" = call %TName_Option_ByStr20* %"$recurse_fptr_1740"(i8* %"$recurse_envptr_1741", %TName_Option_ByStr20* %"$init_1742"), !dbg !271 - store %TName_Option_ByStr20* %"$recurse_call_1743", %TName_Option_ByStr20** %"$recurse_53", align 8, !dbg !271 - %"$$recurse_53_1744" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %"$recurse_53", align 8 - store %TName_Option_ByStr20* %"$$recurse_53_1744", %TName_Option_ByStr20** %"$retval_350", align 8, !dbg !271 - br label %"$matchsucc_1716" + call void @llvm.dbg.declare(metadata %TName_Option_ByStr20** %"$recurse_53", metadata !478, metadata !DIExpression()), !dbg !480 + %"$recurse_fptr_1764" = extractvalue { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* } %1, 0 + %"$recurse_envptr_1765" = extractvalue { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* } %1, 1 + %"$init_1766" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %init, align 8 + %"$recurse_call_1767" = call %TName_Option_ByStr20* %"$recurse_fptr_1764"(i8* %"$recurse_envptr_1765", %TName_Option_ByStr20* %"$init_1766"), !dbg !480 + store %TName_Option_ByStr20* %"$recurse_call_1767", %TName_Option_ByStr20** %"$recurse_53", align 8, !dbg !480 + %"$$recurse_53_1768" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %"$recurse_53", align 8 + store %TName_Option_ByStr20* %"$$recurse_53_1768", %TName_Option_ByStr20** %"$retval_350", align 8, !dbg !480 + br label %"$matchsucc_1740" -"$empty_default_1720": ; preds = %"$have_gas_1714" - br label %"$matchsucc_1716" +"$empty_default_1744": ; preds = %"$have_gas_1738" + br label %"$matchsucc_1740" -"$matchsucc_1716": ; preds = %"$have_gas_1738", %"$have_gas_1726", %"$empty_default_1720" - %"$$retval_350_1745" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %"$retval_350", align 8 - ret %TName_Option_ByStr20* %"$$retval_350_1745" +"$matchsucc_1740": ; preds = %"$have_gas_1762", %"$have_gas_1750", %"$empty_default_1744" + %"$$retval_350_1769" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %"$retval_350", align 8 + ret %TName_Option_ByStr20* %"$$retval_350_1769" } -define internal { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } @"$fundef_347"(%"$$fundef_347_env_622"* %0, [20 x i8]* %1) !dbg !273 { +define internal { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } @"$fundef_347"(%"$$fundef_347_env_622"* %0, [20 x i8]* %1) !dbg !481 { entry: + %"$x_1711" = alloca [20 x i8]*, align 8 + store [20 x i8]* %1, [20 x i8]** %"$x_1711", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$x_1711", metadata !482, metadata !DIExpression()), !dbg !483 %x = load [20 x i8], [20 x i8]* %1, align 1 - %"$$fundef_347_env_init_1669" = getelementptr inbounds %"$$fundef_347_env_622", %"$$fundef_347_env_622"* %0, i32 0, i32 0 - %"$init_envload_1670" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %"$$fundef_347_env_init_1669", align 8 + %"$$fundef_347_env_init_1692" = getelementptr inbounds %"$$fundef_347_env_622", %"$$fundef_347_env_622"* %0, i32 0, i32 0 + %"$init_envload_1693" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %"$$fundef_347_env_init_1692", align 8 %init = alloca %TName_Option_ByStr20*, align 8 - store %TName_Option_ByStr20* %"$init_envload_1670", %TName_Option_ByStr20** %init, align 8 - %"$$fundef_347_env_p_1671" = getelementptr inbounds %"$$fundef_347_env_622", %"$$fundef_347_env_622"* %0, i32 0, i32 1 - %"$p_envload_1672" = load { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %"$$fundef_347_env_p_1671", align 8 + store %TName_Option_ByStr20* %"$init_envload_1693", %TName_Option_ByStr20** %init, align 8 + %"$$fundef_347_env_p_1694" = getelementptr inbounds %"$$fundef_347_env_622", %"$$fundef_347_env_622"* %0, i32 0, i32 1 + %"$p_envload_1695" = load { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %"$$fundef_347_env_p_1694", align 8 %p = alloca { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, align 8 - store { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$p_envload_1672", { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %p, align 8 + store { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$p_envload_1695", { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %p, align 8 %"$retval_348" = alloca { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* }, align 8 - %"$gasrem_1673" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1674" = icmp ugt i64 1, %"$gasrem_1673" - br i1 %"$gascmp_1674", label %"$out_of_gas_1675", label %"$have_gas_1676" - -"$out_of_gas_1675": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_1676" - -"$have_gas_1676": ; preds = %"$out_of_gas_1675", %entry - %"$consume_1677" = sub i64 %"$gasrem_1673", 1 - store i64 %"$consume_1677", i64* @_gasrem, align 8 - %"$$fundef_349_envp_1678_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_349_envp_1678_salloc" = call i8* @_salloc(i8* %"$$fundef_349_envp_1678_load", i64 48) - %"$$fundef_349_envp_1678" = bitcast i8* %"$$fundef_349_envp_1678_salloc" to %"$$fundef_349_env_621"* - %"$$fundef_349_env_voidp_1680" = bitcast %"$$fundef_349_env_621"* %"$$fundef_349_envp_1678" to i8* - %"$$fundef_349_cloval_1681" = 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_349_env_621"*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })* @"$fundef_349" to %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*), i8* undef }, i8* %"$$fundef_349_env_voidp_1680", 1 - %"$$fundef_349_env_init_1682" = getelementptr inbounds %"$$fundef_349_env_621", %"$$fundef_349_env_621"* %"$$fundef_349_envp_1678", i32 0, i32 0 - %"$init_1683" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %init, align 8 - store %TName_Option_ByStr20* %"$init_1683", %TName_Option_ByStr20** %"$$fundef_349_env_init_1682", align 8 - %"$$fundef_349_env_p_1684" = getelementptr inbounds %"$$fundef_349_env_621", %"$$fundef_349_env_621"* %"$$fundef_349_envp_1678", i32 0, i32 1 - %"$p_1685" = 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_1685", { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %"$$fundef_349_env_p_1684", align 8 - %"$$fundef_349_env_x_1686" = getelementptr inbounds %"$$fundef_349_env_621", %"$$fundef_349_env_621"* %"$$fundef_349_envp_1678", i32 0, i32 2 - store [20 x i8] %x, [20 x i8]* %"$$fundef_349_env_x_1686", align 1 - store { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } %"$$fundef_349_cloval_1681", { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* }* %"$retval_348", align 8, !dbg !274 - %"$$retval_348_1687" = 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_348", align 8 - ret { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } %"$$retval_348_1687" -} - -define internal { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } @"$fundef_345"(%"$$fundef_345_env_623"* %0, %TName_Option_ByStr20* %1) !dbg !275 { -entry: - %"$$fundef_345_env_init_1651" = getelementptr inbounds %"$$fundef_345_env_623", %"$$fundef_345_env_623"* %0, i32 0, i32 0 - %"$init_envload_1652" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %"$$fundef_345_env_init_1651", align 8 + %"$gasrem_1696" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1697" = icmp ugt i64 1, %"$gasrem_1696" + br i1 %"$gascmp_1697", label %"$out_of_gas_1698", label %"$have_gas_1699" + +"$out_of_gas_1698": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_1699" + +"$have_gas_1699": ; preds = %"$out_of_gas_1698", %entry + %"$consume_1700" = sub i64 %"$gasrem_1696", 1 + store i64 %"$consume_1700", i64* @_gasrem, align 8 + %"$$fundef_349_envp_1701_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_349_envp_1701_salloc" = call i8* @_salloc(i8* %"$$fundef_349_envp_1701_load", i64 48) + %"$$fundef_349_envp_1701" = bitcast i8* %"$$fundef_349_envp_1701_salloc" to %"$$fundef_349_env_621"* + %"$$fundef_349_env_voidp_1703" = bitcast %"$$fundef_349_env_621"* %"$$fundef_349_envp_1701" to i8* + %"$$fundef_349_cloval_1704" = 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_349_env_621"*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })* @"$fundef_349" to %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*), i8* undef }, i8* %"$$fundef_349_env_voidp_1703", 1 + %"$$fundef_349_env_init_1705" = getelementptr inbounds %"$$fundef_349_env_621", %"$$fundef_349_env_621"* %"$$fundef_349_envp_1701", i32 0, i32 0 + %"$init_1706" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %init, align 8 + store %TName_Option_ByStr20* %"$init_1706", %TName_Option_ByStr20** %"$$fundef_349_env_init_1705", align 8 + %"$$fundef_349_env_p_1707" = getelementptr inbounds %"$$fundef_349_env_621", %"$$fundef_349_env_621"* %"$$fundef_349_envp_1701", i32 0, i32 1 + %"$p_1708" = 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_1708", { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %"$$fundef_349_env_p_1707", align 8 + %"$$fundef_349_env_x_1709" = getelementptr inbounds %"$$fundef_349_env_621", %"$$fundef_349_env_621"* %"$$fundef_349_envp_1701", i32 0, i32 2 + store [20 x i8] %x, [20 x i8]* %"$$fundef_349_env_x_1709", align 1 + store { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } %"$$fundef_349_cloval_1704", { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* }* %"$retval_348", align 8, !dbg !484 + %"$$retval_348_1710" = 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_348", align 8 + ret { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } %"$$retval_348_1710" +} + +define internal { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } @"$fundef_345"(%"$$fundef_345_env_623"* %0, %TName_Option_ByStr20* %1) !dbg !485 { +entry: + %"$ignore_1691" = alloca %TName_Option_ByStr20*, align 8 + store %TName_Option_ByStr20* %1, %TName_Option_ByStr20** %"$ignore_1691", align 8 + call void @llvm.dbg.declare(metadata %TName_Option_ByStr20** %"$ignore_1691", metadata !486, metadata !DIExpression()), !dbg !487 + %"$$fundef_345_env_init_1673" = getelementptr inbounds %"$$fundef_345_env_623", %"$$fundef_345_env_623"* %0, i32 0, i32 0 + %"$init_envload_1674" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %"$$fundef_345_env_init_1673", align 8 %init = alloca %TName_Option_ByStr20*, align 8 - store %TName_Option_ByStr20* %"$init_envload_1652", %TName_Option_ByStr20** %init, align 8 - %"$$fundef_345_env_p_1653" = getelementptr inbounds %"$$fundef_345_env_623", %"$$fundef_345_env_623"* %0, i32 0, i32 1 - %"$p_envload_1654" = load { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %"$$fundef_345_env_p_1653", align 8 + store %TName_Option_ByStr20* %"$init_envload_1674", %TName_Option_ByStr20** %init, align 8 + %"$$fundef_345_env_p_1675" = getelementptr inbounds %"$$fundef_345_env_623", %"$$fundef_345_env_623"* %0, i32 0, i32 1 + %"$p_envload_1676" = load { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %"$$fundef_345_env_p_1675", align 8 %p = alloca { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, align 8 - store { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$p_envload_1654", { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %p, align 8 + store { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$p_envload_1676", { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %p, align 8 %"$retval_346" = alloca { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* }, align 8 - %"$gasrem_1655" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1656" = icmp ugt i64 1, %"$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", 1 - store i64 %"$consume_1659", i64* @_gasrem, align 8 - %"$$fundef_347_envp_1660_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_347_envp_1660_salloc" = call i8* @_salloc(i8* %"$$fundef_347_envp_1660_load", i64 24) - %"$$fundef_347_envp_1660" = bitcast i8* %"$$fundef_347_envp_1660_salloc" to %"$$fundef_347_env_622"* - %"$$fundef_347_env_voidp_1662" = bitcast %"$$fundef_347_env_622"* %"$$fundef_347_envp_1660" to i8* - %"$$fundef_347_cloval_1663" = 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_347_env_622"*, [20 x i8]*)* @"$fundef_347" to { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*), i8* undef }, i8* %"$$fundef_347_env_voidp_1662", 1 - %"$$fundef_347_env_init_1664" = getelementptr inbounds %"$$fundef_347_env_622", %"$$fundef_347_env_622"* %"$$fundef_347_envp_1660", i32 0, i32 0 - %"$init_1665" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %init, align 8 - store %TName_Option_ByStr20* %"$init_1665", %TName_Option_ByStr20** %"$$fundef_347_env_init_1664", align 8 - %"$$fundef_347_env_p_1666" = getelementptr inbounds %"$$fundef_347_env_622", %"$$fundef_347_env_622"* %"$$fundef_347_envp_1660", i32 0, i32 1 - %"$p_1667" = 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_1667", { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %"$$fundef_347_env_p_1666", align 8 - store { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } %"$$fundef_347_cloval_1663", { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* }* %"$retval_346", align 8, !dbg !276 - %"$$retval_346_1668" = 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_346", align 8 - ret { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } %"$$retval_346_1668" -} - -define internal { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } @"$fundef_343"(%"$$fundef_343_env_624"* %0, { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %1) !dbg !277 { -entry: - %"$$fundef_343_env_$list_foldk_5_1579" = getelementptr inbounds %"$$fundef_343_env_624", %"$$fundef_343_env_624"* %0, i32 0, i32 0 - %"$$list_foldk_5_envload_1580" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_343_env_$list_foldk_5_1579", 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" + +"$out_of_gas_1679": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_1680" + +"$have_gas_1680": ; preds = %"$out_of_gas_1679", %entry + %"$consume_1681" = sub i64 %"$gasrem_1677", 1 + store i64 %"$consume_1681", i64* @_gasrem, align 8 + %"$$fundef_347_envp_1682_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_347_envp_1682_salloc" = call i8* @_salloc(i8* %"$$fundef_347_envp_1682_load", i64 24) + %"$$fundef_347_envp_1682" = bitcast i8* %"$$fundef_347_envp_1682_salloc" to %"$$fundef_347_env_622"* + %"$$fundef_347_env_voidp_1684" = bitcast %"$$fundef_347_env_622"* %"$$fundef_347_envp_1682" to i8* + %"$$fundef_347_cloval_1685" = 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_347_env_622"*, [20 x i8]*)* @"$fundef_347" to { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*), i8* undef }, i8* %"$$fundef_347_env_voidp_1684", 1 + %"$$fundef_347_env_init_1686" = getelementptr inbounds %"$$fundef_347_env_622", %"$$fundef_347_env_622"* %"$$fundef_347_envp_1682", i32 0, i32 0 + %"$init_1687" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %init, align 8 + store %TName_Option_ByStr20* %"$init_1687", %TName_Option_ByStr20** %"$$fundef_347_env_init_1686", align 8 + %"$$fundef_347_env_p_1688" = getelementptr inbounds %"$$fundef_347_env_622", %"$$fundef_347_env_622"* %"$$fundef_347_envp_1682", i32 0, i32 1 + %"$p_1689" = 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_1689", { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %"$$fundef_347_env_p_1688", align 8 + store { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } %"$$fundef_347_cloval_1685", { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* }* %"$retval_346", align 8, !dbg !488 + %"$$retval_346_1690" = 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_346", align 8 + ret { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } %"$$retval_346_1690" +} + +define internal { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } @"$fundef_343"(%"$$fundef_343_env_624"* %0, { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %1) !dbg !489 { +entry: + %"$$fundef_343_env_$list_foldk_5_1601" = getelementptr inbounds %"$$fundef_343_env_624", %"$$fundef_343_env_624"* %0, i32 0, i32 0 + %"$$list_foldk_5_envload_1602" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_343_env_$list_foldk_5_1601", align 8 %"$list_foldk_5" = alloca { i8*, i8* }*, align 8 - store { i8*, i8* }* %"$$list_foldk_5_envload_1580", { i8*, i8* }** %"$list_foldk_5", align 8 + store { i8*, i8* }* %"$$list_foldk_5_envload_1602", { i8*, i8* }** %"$list_foldk_5", align 8 %"$retval_344" = alloca { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }, align 8 - %"$gasrem_1581" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1582" = icmp ugt i64 1, %"$gasrem_1581" - br i1 %"$gascmp_1582", label %"$out_of_gas_1583", label %"$have_gas_1584" + %"$gasrem_1603" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1604" = icmp ugt i64 1, %"$gasrem_1603" + br i1 %"$gascmp_1604", label %"$out_of_gas_1605", label %"$have_gas_1606" -"$out_of_gas_1583": ; preds = %entry +"$out_of_gas_1605": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_1584" + br label %"$have_gas_1606" -"$have_gas_1584": ; preds = %"$out_of_gas_1583", %entry - %"$consume_1585" = sub i64 %"$gasrem_1581", 1 - store i64 %"$consume_1585", i64* @_gasrem, align 8 +"$have_gas_1606": ; preds = %"$out_of_gas_1605", %entry + %"$consume_1607" = sub i64 %"$gasrem_1603", 1 + store i64 %"$consume_1607", 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_1586" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1587" = icmp ugt i64 1, %"$gasrem_1586" - br i1 %"$gascmp_1587", label %"$out_of_gas_1588", label %"$have_gas_1589" - -"$out_of_gas_1588": ; preds = %"$have_gas_1584" - call void @_out_of_gas() - br label %"$have_gas_1589" - -"$have_gas_1589": ; preds = %"$out_of_gas_1588", %"$have_gas_1584" - %"$consume_1590" = sub i64 %"$gasrem_1586", 1 - store i64 %"$consume_1590", i64* @_gasrem, align 8 - %"$$list_foldk_5_1591" = load { i8*, i8* }*, { i8*, i8* }** %"$list_foldk_5", align 8 - %"$$list_foldk_5_1592" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$$list_foldk_5_1591", i32 0 - %"$$list_foldk_5_1593" = bitcast { i8*, i8* }* %"$$list_foldk_5_1592" to { { i8*, i8* }* (i8*)*, i8* }* - %"$$list_foldk_5_1594" = load { { i8*, i8* }* (i8*)*, i8* }, { { i8*, i8* }* (i8*)*, i8* }* %"$$list_foldk_5_1593", align 8 - %"$$list_foldk_5_fptr_1595" = extractvalue { { i8*, i8* }* (i8*)*, i8* } %"$$list_foldk_5_1594", 0 - %"$$list_foldk_5_envptr_1596" = extractvalue { { i8*, i8* }* (i8*)*, i8* } %"$$list_foldk_5_1594", 1 - %"$$list_foldk_5_call_1597" = call { i8*, i8* }* %"$$list_foldk_5_fptr_1595"(i8* %"$$list_foldk_5_envptr_1596"), !dbg !278 - %"$$list_foldk_5_1598" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$$list_foldk_5_call_1597", i32 1 - %"$$list_foldk_5_1599" = bitcast { i8*, i8* }* %"$$list_foldk_5_1598" 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_5_1600" = 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_5_1599", align 8 - %"$$list_foldk_5_fptr_1601" = 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_5_1600", 0 - %"$$list_foldk_5_envptr_1602" = 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_5_1600", 1 - %"$$list_foldk_5_call_1603" = 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_5_fptr_1601"(i8* %"$$list_foldk_5_envptr_1602"), !dbg !278 - 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_5_call_1603", { { { %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 !279 - %"$gasrem_1604" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1605" = icmp ugt i64 1, %"$gasrem_1604" - br i1 %"$gascmp_1605", label %"$out_of_gas_1606", label %"$have_gas_1607" - -"$out_of_gas_1606": ; preds = %"$have_gas_1589" - call void @_out_of_gas() - br label %"$have_gas_1607" - -"$have_gas_1607": ; preds = %"$out_of_gas_1606", %"$have_gas_1589" - %"$consume_1608" = sub i64 %"$gasrem_1604", 1 - store i64 %"$consume_1608", i64* @_gasrem, align 8 + %"$gasrem_1608" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1609" = icmp ugt i64 1, %"$gasrem_1608" + br i1 %"$gascmp_1609", label %"$out_of_gas_1610", label %"$have_gas_1611" + +"$out_of_gas_1610": ; preds = %"$have_gas_1606" + call void @_out_of_gas() + br label %"$have_gas_1611" + +"$have_gas_1611": ; preds = %"$out_of_gas_1610", %"$have_gas_1606" + %"$consume_1612" = sub i64 %"$gasrem_1608", 1 + store i64 %"$consume_1612", i64* @_gasrem, align 8 + %"$$list_foldk_5_1613" = load { i8*, i8* }*, { i8*, i8* }** %"$list_foldk_5", align 8 + %"$$list_foldk_5_1614" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$$list_foldk_5_1613", i32 0 + %"$$list_foldk_5_1615" = bitcast { i8*, i8* }* %"$$list_foldk_5_1614" to { { i8*, i8* }* (i8*)*, i8* }* + %"$$list_foldk_5_1616" = load { { i8*, i8* }* (i8*)*, i8* }, { { i8*, i8* }* (i8*)*, i8* }* %"$$list_foldk_5_1615", align 8 + %"$$list_foldk_5_fptr_1617" = extractvalue { { i8*, i8* }* (i8*)*, i8* } %"$$list_foldk_5_1616", 0 + %"$$list_foldk_5_envptr_1618" = extractvalue { { i8*, i8* }* (i8*)*, i8* } %"$$list_foldk_5_1616", 1 + %"$$list_foldk_5_call_1619" = call { i8*, i8* }* %"$$list_foldk_5_fptr_1617"(i8* %"$$list_foldk_5_envptr_1618"), !dbg !490 + %"$$list_foldk_5_1620" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$$list_foldk_5_call_1619", i32 1 + %"$$list_foldk_5_1621" = bitcast { i8*, i8* }* %"$$list_foldk_5_1620" 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_5_1622" = 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_5_1621", align 8 + %"$$list_foldk_5_fptr_1623" = 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_5_1622", 0 + %"$$list_foldk_5_envptr_1624" = 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_5_1622", 1 + %"$$list_foldk_5_call_1625" = 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_5_fptr_1623"(i8* %"$$list_foldk_5_envptr_1624"), !dbg !490 + 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_5_call_1625", { { { %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 !491 + %"$gasrem_1626" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1627" = icmp ugt i64 1, %"$gasrem_1626" + br i1 %"$gascmp_1627", label %"$out_of_gas_1628", label %"$have_gas_1629" + +"$out_of_gas_1628": ; preds = %"$have_gas_1611" + call void @_out_of_gas() + br label %"$have_gas_1629" + +"$have_gas_1629": ; preds = %"$out_of_gas_1628", %"$have_gas_1611" + %"$consume_1630" = sub i64 %"$gasrem_1626", 1 + store i64 %"$consume_1630", i64* @_gasrem, align 8 %init = alloca %TName_Option_ByStr20*, align 8 - %"$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_1611": ; preds = %"$have_gas_1607" - call void @_out_of_gas() - br label %"$have_gas_1612" - -"$have_gas_1612": ; preds = %"$out_of_gas_1611", %"$have_gas_1607" - %"$consume_1613" = sub i64 %"$gasrem_1609", 1 - store i64 %"$consume_1613", i64* @_gasrem, align 8 - %"$adtval_1614_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_1614_salloc" = call i8* @_salloc(i8* %"$adtval_1614_load", i64 1) - %"$adtval_1614" = bitcast i8* %"$adtval_1614_salloc" to %CName_None_ByStr20* - %"$adtgep_1615" = getelementptr inbounds %CName_None_ByStr20, %CName_None_ByStr20* %"$adtval_1614", i32 0, i32 0 - store i8 1, i8* %"$adtgep_1615", align 1 - %"$adtptr_1616" = bitcast %CName_None_ByStr20* %"$adtval_1614" to %TName_Option_ByStr20* - store %TName_Option_ByStr20* %"$adtptr_1616", %TName_Option_ByStr20** %init, align 8, !dbg !280 - %"$gasrem_1617" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1618" = icmp ugt i64 1, %"$gasrem_1617" - br i1 %"$gascmp_1618", label %"$out_of_gas_1619", label %"$have_gas_1620" - -"$out_of_gas_1619": ; preds = %"$have_gas_1612" - call void @_out_of_gas() - br label %"$have_gas_1620" - -"$have_gas_1620": ; preds = %"$out_of_gas_1619", %"$have_gas_1612" - %"$consume_1621" = sub i64 %"$gasrem_1617", 1 - store i64 %"$consume_1621", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Option_ByStr20** %init, metadata !492, metadata !DIExpression()), !dbg !493 + %"$gasrem_1631" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1632" = icmp ugt i64 1, %"$gasrem_1631" + br i1 %"$gascmp_1632", label %"$out_of_gas_1633", label %"$have_gas_1634" + +"$out_of_gas_1633": ; preds = %"$have_gas_1629" + call void @_out_of_gas() + br label %"$have_gas_1634" + +"$have_gas_1634": ; preds = %"$out_of_gas_1633", %"$have_gas_1629" + %"$consume_1635" = sub i64 %"$gasrem_1631", 1 + store i64 %"$consume_1635", i64* @_gasrem, align 8 + %"$adtval_1636_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_1636_salloc" = call i8* @_salloc(i8* %"$adtval_1636_load", i64 1) + %"$adtval_1636" = bitcast i8* %"$adtval_1636_salloc" to %CName_None_ByStr20* + %"$adtgep_1637" = getelementptr inbounds %CName_None_ByStr20, %CName_None_ByStr20* %"$adtval_1636", i32 0, i32 0 + store i8 1, i8* %"$adtgep_1637", align 1 + %"$adtptr_1638" = bitcast %CName_None_ByStr20* %"$adtval_1636" to %TName_Option_ByStr20* + store %TName_Option_ByStr20* %"$adtptr_1638", %TName_Option_ByStr20** %init, align 8, !dbg !494 + %"$gasrem_1639" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1640" = icmp ugt i64 1, %"$gasrem_1639" + br i1 %"$gascmp_1640", label %"$out_of_gas_1641", label %"$have_gas_1642" + +"$out_of_gas_1641": ; preds = %"$have_gas_1634" + call void @_out_of_gas() + br label %"$have_gas_1642" + +"$have_gas_1642": ; preds = %"$out_of_gas_1641", %"$have_gas_1634" + %"$consume_1643" = sub i64 %"$gasrem_1639", 1 + store i64 %"$consume_1643", 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_1622" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1623" = icmp ugt i64 1, %"$gasrem_1622" - br i1 %"$gascmp_1623", label %"$out_of_gas_1624", label %"$have_gas_1625" - -"$out_of_gas_1624": ; preds = %"$have_gas_1620" - call void @_out_of_gas() - br label %"$have_gas_1625" - -"$have_gas_1625": ; preds = %"$out_of_gas_1624", %"$have_gas_1620" - %"$consume_1626" = sub i64 %"$gasrem_1622", 1 - store i64 %"$consume_1626", i64* @_gasrem, align 8 - %"$$fundef_345_envp_1627_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_345_envp_1627_salloc" = call i8* @_salloc(i8* %"$$fundef_345_envp_1627_load", i64 24) - %"$$fundef_345_envp_1627" = bitcast i8* %"$$fundef_345_envp_1627_salloc" to %"$$fundef_345_env_623"* - %"$$fundef_345_env_voidp_1629" = bitcast %"$$fundef_345_env_623"* %"$$fundef_345_envp_1627" to i8* - %"$$fundef_345_cloval_1630" = 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_345_env_623"*, %TName_Option_ByStr20*)* @"$fundef_345" 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_345_env_voidp_1629", 1 - %"$$fundef_345_env_init_1631" = getelementptr inbounds %"$$fundef_345_env_623", %"$$fundef_345_env_623"* %"$$fundef_345_envp_1627", i32 0, i32 0 - %"$init_1632" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %init, align 8 - store %TName_Option_ByStr20* %"$init_1632", %TName_Option_ByStr20** %"$$fundef_345_env_init_1631", align 8 - %"$$fundef_345_env_p_1633" = getelementptr inbounds %"$$fundef_345_env_623", %"$$fundef_345_env_623"* %"$$fundef_345_envp_1627", i32 0, i32 1 - store { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %1, { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %"$$fundef_345_env_p_1633", 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_345_cloval_1630", { { { %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 !281 - %"$gasrem_1634" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1635" = icmp ugt i64 1, %"$gasrem_1634" - br i1 %"$gascmp_1635", label %"$out_of_gas_1636", label %"$have_gas_1637" - -"$out_of_gas_1636": ; preds = %"$have_gas_1625" - call void @_out_of_gas() - br label %"$have_gas_1637" - -"$have_gas_1637": ; preds = %"$out_of_gas_1636", %"$have_gas_1625" - %"$consume_1638" = sub i64 %"$gasrem_1634", 1 - store i64 %"$consume_1638", i64* @_gasrem, align 8 + %"$gasrem_1644" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1645" = icmp ugt i64 1, %"$gasrem_1644" + br i1 %"$gascmp_1645", label %"$out_of_gas_1646", label %"$have_gas_1647" + +"$out_of_gas_1646": ; preds = %"$have_gas_1642" + call void @_out_of_gas() + br label %"$have_gas_1647" + +"$have_gas_1647": ; preds = %"$out_of_gas_1646", %"$have_gas_1642" + %"$consume_1648" = sub i64 %"$gasrem_1644", 1 + store i64 %"$consume_1648", i64* @_gasrem, align 8 + %"$$fundef_345_envp_1649_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_345_envp_1649_salloc" = call i8* @_salloc(i8* %"$$fundef_345_envp_1649_load", i64 24) + %"$$fundef_345_envp_1649" = bitcast i8* %"$$fundef_345_envp_1649_salloc" to %"$$fundef_345_env_623"* + %"$$fundef_345_env_voidp_1651" = bitcast %"$$fundef_345_env_623"* %"$$fundef_345_envp_1649" to i8* + %"$$fundef_345_cloval_1652" = 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_345_env_623"*, %TName_Option_ByStr20*)* @"$fundef_345" 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_345_env_voidp_1651", 1 + %"$$fundef_345_env_init_1653" = getelementptr inbounds %"$$fundef_345_env_623", %"$$fundef_345_env_623"* %"$$fundef_345_envp_1649", i32 0, i32 0 + %"$init_1654" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %init, align 8 + store %TName_Option_ByStr20* %"$init_1654", %TName_Option_ByStr20** %"$$fundef_345_env_init_1653", align 8 + %"$$fundef_345_env_p_1655" = getelementptr inbounds %"$$fundef_345_env_623", %"$$fundef_345_env_623"* %"$$fundef_345_envp_1649", i32 0, i32 1 + store { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %1, { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %"$$fundef_345_env_p_1655", 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_345_cloval_1652", { { { %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 !495 + %"$gasrem_1656" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1657" = icmp ugt i64 1, %"$gasrem_1656" + br i1 %"$gascmp_1657", label %"$out_of_gas_1658", label %"$have_gas_1659" + +"$out_of_gas_1658": ; preds = %"$have_gas_1647" + call void @_out_of_gas() + br label %"$have_gas_1659" + +"$have_gas_1659": ; preds = %"$out_of_gas_1658", %"$have_gas_1647" + %"$consume_1660" = sub i64 %"$gasrem_1656", 1 + store i64 %"$consume_1660", i64* @_gasrem, align 8 %"$foldk_54" = alloca { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }, align 8 - %"$foldk_1639" = 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_1640" = 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_1639", 0 - %"$foldk_envptr_1641" = 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_1639", 1 - %"$predicate_step_1642" = 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_1643" = call { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } %"$foldk_fptr_1640"(i8* %"$foldk_envptr_1641", { { { %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_1642"), !dbg !282 - store { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } %"$foldk_call_1643", { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }* %"$foldk_54", align 8, !dbg !282 + %"$foldk_1661" = 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_1662" = 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_1661", 0 + %"$foldk_envptr_1663" = 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_1661", 1 + %"$predicate_step_1664" = 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_1665" = call { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } %"$foldk_fptr_1662"(i8* %"$foldk_envptr_1663", { { { %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_1664"), !dbg !496 + store { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } %"$foldk_call_1665", { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }* %"$foldk_54", align 8, !dbg !496 %"$foldk_55" = alloca { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }, align 8 - %"$$foldk_54_1644" = 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_54", align 8 - %"$$foldk_54_fptr_1645" = extractvalue { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } %"$$foldk_54_1644", 0 - %"$$foldk_54_envptr_1646" = extractvalue { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } %"$$foldk_54_1644", 1 - %"$init_1647" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %init, align 8 - %"$$foldk_54_call_1648" = call { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$$foldk_54_fptr_1645"(i8* %"$$foldk_54_envptr_1646", %TName_Option_ByStr20* %"$init_1647"), !dbg !282 - store { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$$foldk_54_call_1648", { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }* %"$foldk_55", align 8, !dbg !282 - %"$$foldk_55_1649" = load { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }, { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }* %"$foldk_55", align 8 - store { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$$foldk_55_1649", { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }* %"$retval_344", align 8, !dbg !282 - %"$$retval_344_1650" = load { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }, { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }* %"$retval_344", align 8 - ret { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$$retval_344_1650" -} - -define internal { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } @"$fundef_341"(%"$$fundef_341_env_625"* %0) !dbg !283 { -entry: - %"$$fundef_341_env_$list_foldk_5_1565" = getelementptr inbounds %"$$fundef_341_env_625", %"$$fundef_341_env_625"* %0, i32 0, i32 0 - %"$$list_foldk_5_envload_1566" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_341_env_$list_foldk_5_1565", align 8 + %"$$foldk_54_1666" = 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_54", align 8 + %"$$foldk_54_fptr_1667" = extractvalue { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } %"$$foldk_54_1666", 0 + %"$$foldk_54_envptr_1668" = extractvalue { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } %"$$foldk_54_1666", 1 + %"$init_1669" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %init, align 8 + %"$$foldk_54_call_1670" = call { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$$foldk_54_fptr_1667"(i8* %"$$foldk_54_envptr_1668", %TName_Option_ByStr20* %"$init_1669"), !dbg !496 + store { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$$foldk_54_call_1670", { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }* %"$foldk_55", align 8, !dbg !496 + %"$$foldk_55_1671" = load { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }, { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }* %"$foldk_55", align 8 + store { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$$foldk_55_1671", { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }* %"$retval_344", align 8, !dbg !496 + %"$$retval_344_1672" = load { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }, { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }* %"$retval_344", align 8 + ret { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$$retval_344_1672" +} + +define internal { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } @"$fundef_341"(%"$$fundef_341_env_625"* %0) !dbg !497 { +entry: + %"$$fundef_341_env_$list_foldk_5_1587" = getelementptr inbounds %"$$fundef_341_env_625", %"$$fundef_341_env_625"* %0, i32 0, i32 0 + %"$$list_foldk_5_envload_1588" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_341_env_$list_foldk_5_1587", align 8 %"$list_foldk_5" = alloca { i8*, i8* }*, align 8 - store { i8*, i8* }* %"$$list_foldk_5_envload_1566", { i8*, i8* }** %"$list_foldk_5", align 8 + store { i8*, i8* }* %"$$list_foldk_5_envload_1588", { i8*, i8* }** %"$list_foldk_5", align 8 %"$retval_342" = alloca { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* }, 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 = %entry - call void @_out_of_gas() - br label %"$have_gas_1570" - -"$have_gas_1570": ; preds = %"$out_of_gas_1569", %entry - %"$consume_1571" = sub i64 %"$gasrem_1567", 1 - store i64 %"$consume_1571", i64* @_gasrem, align 8 - %"$$fundef_343_envp_1572_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_343_envp_1572_salloc" = call i8* @_salloc(i8* %"$$fundef_343_envp_1572_load", i64 8) - %"$$fundef_343_envp_1572" = bitcast i8* %"$$fundef_343_envp_1572_salloc" to %"$$fundef_343_env_624"* - %"$$fundef_343_env_voidp_1574" = bitcast %"$$fundef_343_env_624"* %"$$fundef_343_envp_1572" to i8* - %"$$fundef_343_cloval_1575" = 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_343_env_624"*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })* @"$fundef_343" to { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*), i8* undef }, i8* %"$$fundef_343_env_voidp_1574", 1 - %"$$fundef_343_env_$list_foldk_5_1576" = getelementptr inbounds %"$$fundef_343_env_624", %"$$fundef_343_env_624"* %"$$fundef_343_envp_1572", i32 0, i32 0 - %"$$list_foldk_5_1577" = load { i8*, i8* }*, { i8*, i8* }** %"$list_foldk_5", align 8 - store { i8*, i8* }* %"$$list_foldk_5_1577", { i8*, i8* }** %"$$fundef_343_env_$list_foldk_5_1576", align 8 - store { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } %"$$fundef_343_cloval_1575", { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* }* %"$retval_342", align 8, !dbg !284 - %"$$retval_342_1578" = 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_342", align 8 - ret { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } %"$$retval_342_1578" -} - -define internal %TName_Option_ByStr20* @"$fundef_339"(%"$$fundef_339_env_626"* %0, %TName_Option_ByStr20* %1) !dbg !285 { -entry: - %"$$fundef_339_env_g_1545" = getelementptr inbounds %"$$fundef_339_env_626", %"$$fundef_339_env_626"* %0, i32 0, i32 0 - %"$g_envload_1546" = 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_339_env_g_1545", align 8 + %"$gasrem_1589" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1590" = icmp ugt i64 1, %"$gasrem_1589" + br i1 %"$gascmp_1590", label %"$out_of_gas_1591", label %"$have_gas_1592" + +"$out_of_gas_1591": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_1592" + +"$have_gas_1592": ; preds = %"$out_of_gas_1591", %entry + %"$consume_1593" = sub i64 %"$gasrem_1589", 1 + store i64 %"$consume_1593", i64* @_gasrem, align 8 + %"$$fundef_343_envp_1594_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_343_envp_1594_salloc" = call i8* @_salloc(i8* %"$$fundef_343_envp_1594_load", i64 8) + %"$$fundef_343_envp_1594" = bitcast i8* %"$$fundef_343_envp_1594_salloc" to %"$$fundef_343_env_624"* + %"$$fundef_343_env_voidp_1596" = bitcast %"$$fundef_343_env_624"* %"$$fundef_343_envp_1594" to i8* + %"$$fundef_343_cloval_1597" = 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_343_env_624"*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })* @"$fundef_343" to { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*), i8* undef }, i8* %"$$fundef_343_env_voidp_1596", 1 + %"$$fundef_343_env_$list_foldk_5_1598" = getelementptr inbounds %"$$fundef_343_env_624", %"$$fundef_343_env_624"* %"$$fundef_343_envp_1594", i32 0, i32 0 + %"$$list_foldk_5_1599" = load { i8*, i8* }*, { i8*, i8* }** %"$list_foldk_5", align 8 + store { i8*, i8* }* %"$$list_foldk_5_1599", { i8*, i8* }** %"$$fundef_343_env_$list_foldk_5_1598", align 8 + store { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } %"$$fundef_343_cloval_1597", { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* }* %"$retval_342", align 8, !dbg !498 + %"$$retval_342_1600" = 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_342", align 8 + ret { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } %"$$retval_342_1600" +} + +define internal %TName_Option_ByStr20* @"$fundef_339"(%"$$fundef_339_env_626"* %0, %TName_Option_ByStr20* %1) !dbg !499 { +entry: + %"$k_1586" = alloca %TName_Option_ByStr20*, align 8 + store %TName_Option_ByStr20* %1, %TName_Option_ByStr20** %"$k_1586", align 8 + call void @llvm.dbg.declare(metadata %TName_Option_ByStr20** %"$k_1586", metadata !500, metadata !DIExpression()), !dbg !501 + %"$$fundef_339_env_g_1566" = getelementptr inbounds %"$$fundef_339_env_626", %"$$fundef_339_env_626"* %0, i32 0, i32 0 + %"$g_envload_1567" = 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_339_env_g_1566", 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_1546", { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }* %g, align 8 - %"$$fundef_339_env_t_1547" = getelementptr inbounds %"$$fundef_339_env_626", %"$$fundef_339_env_626"* %0, i32 0, i32 1 - %"$t_envload_1548" = load %TName_List_ByStr20*, %TName_List_ByStr20** %"$$fundef_339_env_t_1547", align 8 + store { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } %"$g_envload_1567", { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }* %g, align 8 + %"$$fundef_339_env_t_1568" = getelementptr inbounds %"$$fundef_339_env_626", %"$$fundef_339_env_626"* %0, i32 0, i32 1 + %"$t_envload_1569" = load %TName_List_ByStr20*, %TName_List_ByStr20** %"$$fundef_339_env_t_1568", align 8 %t = alloca %TName_List_ByStr20*, align 8 - store %TName_List_ByStr20* %"$t_envload_1548", %TName_List_ByStr20** %t, align 8 + store %TName_List_ByStr20* %"$t_envload_1569", %TName_List_ByStr20** %t, align 8 %"$retval_340" = alloca %TName_Option_ByStr20*, 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" + call void @llvm.dbg.declare(metadata %TName_Option_ByStr20** %"$retval_340", metadata !502, metadata !DIExpression()), !dbg !503 + %"$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_1551": ; preds = %entry +"$out_of_gas_1572": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_1552" + br label %"$have_gas_1573" -"$have_gas_1552": ; preds = %"$out_of_gas_1551", %entry - %"$consume_1553" = sub i64 %"$gasrem_1549", 1 - store i64 %"$consume_1553", i64* @_gasrem, align 8 +"$have_gas_1573": ; preds = %"$out_of_gas_1572", %entry + %"$consume_1574" = sub i64 %"$gasrem_1570", 1 + store i64 %"$consume_1574", i64* @_gasrem, align 8 %"$g_47" = alloca { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }, align 8 - %"$g_1554" = 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_1555" = extractvalue { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } %"$g_1554", 0 - %"$g_envptr_1556" = extractvalue { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } %"$g_1554", 1 - %"$g_call_1557" = call { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$g_fptr_1555"(i8* %"$g_envptr_1556", %TName_Option_ByStr20* %1), !dbg !286 - store { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$g_call_1557", { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }* %"$g_47", align 8, !dbg !286 + %"$g_1575" = 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_1576" = extractvalue { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } %"$g_1575", 0 + %"$g_envptr_1577" = extractvalue { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } %"$g_1575", 1 + %"$g_call_1578" = call { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$g_fptr_1576"(i8* %"$g_envptr_1577", %TName_Option_ByStr20* %1), !dbg !503 + store { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$g_call_1578", { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }* %"$g_47", align 8, !dbg !503 %"$g_48" = alloca %TName_Option_ByStr20*, align 8 - %"$$g_47_1558" = load { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }, { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }* %"$g_47", align 8 - %"$$g_47_fptr_1559" = extractvalue { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$$g_47_1558", 0 - %"$$g_47_envptr_1560" = extractvalue { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$$g_47_1558", 1 - %"$t_1561" = load %TName_List_ByStr20*, %TName_List_ByStr20** %t, align 8 - %"$$g_47_call_1562" = call %TName_Option_ByStr20* %"$$g_47_fptr_1559"(i8* %"$$g_47_envptr_1560", %TName_List_ByStr20* %"$t_1561"), !dbg !286 - store %TName_Option_ByStr20* %"$$g_47_call_1562", %TName_Option_ByStr20** %"$g_48", align 8, !dbg !286 - %"$$g_48_1563" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %"$g_48", align 8 - store %TName_Option_ByStr20* %"$$g_48_1563", %TName_Option_ByStr20** %"$retval_340", align 8, !dbg !286 - %"$$retval_340_1564" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %"$retval_340", align 8 - ret %TName_Option_ByStr20* %"$$retval_340_1564" -} - -define internal %TName_Option_ByStr20* @"$fundef_337"(%"$$fundef_337_env_627"* %0, %TName_List_ByStr20* %1) !dbg !287 { -entry: - %"$$fundef_337_env_f_1475" = getelementptr inbounds %"$$fundef_337_env_627", %"$$fundef_337_env_627"* %0, i32 0, i32 0 - %"$f_envload_1476" = 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_337_env_f_1475", align 8 + call void @llvm.dbg.declare(metadata %TName_Option_ByStr20** %"$g_48", metadata !504, metadata !DIExpression()), !dbg !503 + %"$$g_47_1579" = load { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }, { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }* %"$g_47", align 8 + %"$$g_47_fptr_1580" = extractvalue { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$$g_47_1579", 0 + %"$$g_47_envptr_1581" = extractvalue { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$$g_47_1579", 1 + %"$t_1582" = load %TName_List_ByStr20*, %TName_List_ByStr20** %t, align 8 + %"$$g_47_call_1583" = call %TName_Option_ByStr20* %"$$g_47_fptr_1580"(i8* %"$$g_47_envptr_1581", %TName_List_ByStr20* %"$t_1582"), !dbg !503 + store %TName_Option_ByStr20* %"$$g_47_call_1583", %TName_Option_ByStr20** %"$g_48", align 8, !dbg !503 + %"$$g_48_1584" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %"$g_48", align 8 + store %TName_Option_ByStr20* %"$$g_48_1584", %TName_Option_ByStr20** %"$retval_340", align 8, !dbg !503 + %"$$retval_340_1585" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %"$retval_340", align 8 + ret %TName_Option_ByStr20* %"$$retval_340_1585" +} + +define internal %TName_Option_ByStr20* @"$fundef_337"(%"$$fundef_337_env_627"* %0, %TName_List_ByStr20* %1) !dbg !505 { +entry: + %"$l_1565" = alloca %TName_List_ByStr20*, align 8 + store %TName_List_ByStr20* %1, %TName_List_ByStr20** %"$l_1565", align 8 + call void @llvm.dbg.declare(metadata %TName_List_ByStr20** %"$l_1565", metadata !506, metadata !DIExpression()), !dbg !507 + %"$$fundef_337_env_f_1495" = getelementptr inbounds %"$$fundef_337_env_627", %"$$fundef_337_env_627"* %0, i32 0, i32 0 + %"$f_envload_1496" = 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_337_env_f_1495", 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_1476", { { { %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_337_env_g_1477" = getelementptr inbounds %"$$fundef_337_env_627", %"$$fundef_337_env_627"* %0, i32 0, i32 1 - %"$g_envload_1478" = 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_337_env_g_1477", 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_1496", { { { %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_337_env_g_1497" = getelementptr inbounds %"$$fundef_337_env_627", %"$$fundef_337_env_627"* %0, i32 0, i32 1 + %"$g_envload_1498" = 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_337_env_g_1497", 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_1478", { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }* %g, align 8 - %"$$fundef_337_env_z_1479" = getelementptr inbounds %"$$fundef_337_env_627", %"$$fundef_337_env_627"* %0, i32 0, i32 2 - %"$z_envload_1480" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %"$$fundef_337_env_z_1479", align 8 + store { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } %"$g_envload_1498", { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }* %g, align 8 + %"$$fundef_337_env_z_1499" = getelementptr inbounds %"$$fundef_337_env_627", %"$$fundef_337_env_627"* %0, i32 0, i32 2 + %"$z_envload_1500" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %"$$fundef_337_env_z_1499", align 8 %z = alloca %TName_Option_ByStr20*, align 8 - store %TName_Option_ByStr20* %"$z_envload_1480", %TName_Option_ByStr20** %z, align 8 + store %TName_Option_ByStr20* %"$z_envload_1500", %TName_Option_ByStr20** %z, align 8 %"$retval_338" = alloca %TName_Option_ByStr20*, align 8 - %"$gasrem_1481" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1482" = icmp ugt i64 2, %"$gasrem_1481" - br i1 %"$gascmp_1482", label %"$out_of_gas_1483", label %"$have_gas_1484" - -"$out_of_gas_1483": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_1484" - -"$have_gas_1484": ; preds = %"$out_of_gas_1483", %entry - %"$consume_1485" = sub i64 %"$gasrem_1481", 2 - store i64 %"$consume_1485", i64* @_gasrem, align 8 - %"$l_tag_1487" = getelementptr inbounds %TName_List_ByStr20, %TName_List_ByStr20* %1, i32 0, i32 0 - %"$l_tag_1488" = load i8, i8* %"$l_tag_1487", align 1 - switch i8 %"$l_tag_1488", label %"$empty_default_1489" [ - i8 0, label %"$Cons_1490" - i8 1, label %"$Nil_1536" - ], !dbg !288 - -"$Cons_1490": ; preds = %"$have_gas_1484" - %"$l_1491" = bitcast %TName_List_ByStr20* %1 to %CName_Cons_ByStr20* - %"$h_gep_1492" = getelementptr inbounds %CName_Cons_ByStr20, %CName_Cons_ByStr20* %"$l_1491", i32 0, i32 1 - %"$h_load_1493" = load [20 x i8], [20 x i8]* %"$h_gep_1492", align 1 - %h = alloca [20 x i8], align 1 - store [20 x i8] %"$h_load_1493", [20 x i8]* %h, align 1 - %"$t_gep_1494" = getelementptr inbounds %CName_Cons_ByStr20, %CName_Cons_ByStr20* %"$l_1491", i32 0, i32 2 - %"$t_load_1495" = load %TName_List_ByStr20*, %TName_List_ByStr20** %"$t_gep_1494", align 8 - %t = alloca %TName_List_ByStr20*, align 8 - store %TName_List_ByStr20* %"$t_load_1495", %TName_List_ByStr20** %t, align 8 - %"$gasrem_1496" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1497" = icmp ugt i64 1, %"$gasrem_1496" - br i1 %"$gascmp_1497", label %"$out_of_gas_1498", label %"$have_gas_1499" - -"$out_of_gas_1498": ; preds = %"$Cons_1490" - call void @_out_of_gas() - br label %"$have_gas_1499" - -"$have_gas_1499": ; preds = %"$out_of_gas_1498", %"$Cons_1490" - %"$consume_1500" = sub i64 %"$gasrem_1496", 1 - store i64 %"$consume_1500", i64* @_gasrem, align 8 - %partial = alloca { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* }, align 8 + call void @llvm.dbg.declare(metadata %TName_Option_ByStr20** %"$retval_338", metadata !508, metadata !DIExpression()), !dbg !509 %"$gasrem_1501" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1502" = icmp ugt i64 1, %"$gasrem_1501" + %"$gascmp_1502" = icmp ugt i64 2, %"$gasrem_1501" br i1 %"$gascmp_1502", label %"$out_of_gas_1503", label %"$have_gas_1504" -"$out_of_gas_1503": ; preds = %"$have_gas_1499" +"$out_of_gas_1503": ; preds = %entry call void @_out_of_gas() br label %"$have_gas_1504" -"$have_gas_1504": ; preds = %"$out_of_gas_1503", %"$have_gas_1499" - %"$consume_1505" = sub i64 %"$gasrem_1501", 1 +"$have_gas_1504": ; preds = %"$out_of_gas_1503", %entry + %"$consume_1505" = sub i64 %"$gasrem_1501", 2 store i64 %"$consume_1505", i64* @_gasrem, align 8 - %"$$fundef_339_envp_1506_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_339_envp_1506_salloc" = call i8* @_salloc(i8* %"$$fundef_339_envp_1506_load", i64 24) - %"$$fundef_339_envp_1506" = bitcast i8* %"$$fundef_339_envp_1506_salloc" to %"$$fundef_339_env_626"* - %"$$fundef_339_env_voidp_1508" = bitcast %"$$fundef_339_env_626"* %"$$fundef_339_envp_1506" to i8* - %"$$fundef_339_cloval_1509" = insertvalue { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* } { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)* bitcast (%TName_Option_ByStr20* (%"$$fundef_339_env_626"*, %TName_Option_ByStr20*)* @"$fundef_339" to %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*), i8* undef }, i8* %"$$fundef_339_env_voidp_1508", 1 - %"$$fundef_339_env_g_1510" = getelementptr inbounds %"$$fundef_339_env_626", %"$$fundef_339_env_626"* %"$$fundef_339_envp_1506", i32 0, i32 0 - %"$g_1511" = 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_1511", { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }* %"$$fundef_339_env_g_1510", align 8 - %"$$fundef_339_env_t_1512" = getelementptr inbounds %"$$fundef_339_env_626", %"$$fundef_339_env_626"* %"$$fundef_339_envp_1506", i32 0, i32 1 - %"$t_1513" = load %TName_List_ByStr20*, %TName_List_ByStr20** %t, align 8 - store %TName_List_ByStr20* %"$t_1513", %TName_List_ByStr20** %"$$fundef_339_env_t_1512", align 8 - store { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* } %"$$fundef_339_cloval_1509", { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* }* %partial, align 8, !dbg !289 - %"$gasrem_1514" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1515" = icmp ugt i64 1, %"$gasrem_1514" - br i1 %"$gascmp_1515", label %"$out_of_gas_1516", label %"$have_gas_1517" - -"$out_of_gas_1516": ; preds = %"$have_gas_1504" - call void @_out_of_gas() - br label %"$have_gas_1517" - -"$have_gas_1517": ; preds = %"$out_of_gas_1516", %"$have_gas_1504" - %"$consume_1518" = sub i64 %"$gasrem_1514", 1 - store i64 %"$consume_1518", i64* @_gasrem, align 8 - %"$f_49" = alloca { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* }, align 8 - %"$f_1519" = 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_1520" = 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_1519", 0 - %"$f_envptr_1521" = 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_1519", 1 - %"$z_1522" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %z, align 8 - %"$f_call_1523" = call { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } %"$f_fptr_1520"(i8* %"$f_envptr_1521", %TName_Option_ByStr20* %"$z_1522"), !dbg !292 - store { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } %"$f_call_1523", { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* }* %"$f_49", align 8, !dbg !292 - %"$f_50" = alloca { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* }, align 8 - %"$$f_49_1524" = 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_49", align 8 - %"$$f_49_fptr_1525" = extractvalue { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } %"$$f_49_1524", 0 - %"$$f_49_envptr_1526" = extractvalue { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } %"$$f_49_1524", 1 - %"$$f_49_h_1527" = alloca [20 x i8], align 1 - %"$h_1528" = load [20 x i8], [20 x i8]* %h, align 1 - store [20 x i8] %"$h_1528", [20 x i8]* %"$$f_49_h_1527", align 1 - %"$$f_49_call_1529" = call { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } %"$$f_49_fptr_1525"(i8* %"$$f_49_envptr_1526", [20 x i8]* %"$$f_49_h_1527"), !dbg !292 - store { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } %"$$f_49_call_1529", { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* }* %"$f_50", align 8, !dbg !292 - %"$f_51" = alloca %TName_Option_ByStr20*, align 8 - %"$$f_50_1530" = 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_50", align 8 - %"$$f_50_fptr_1531" = extractvalue { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } %"$$f_50_1530", 0 - %"$$f_50_envptr_1532" = extractvalue { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } %"$$f_50_1530", 1 - %"$partial_1533" = load { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* }, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* }* %partial, align 8 - %"$$f_50_call_1534" = call %TName_Option_ByStr20* %"$$f_50_fptr_1531"(i8* %"$$f_50_envptr_1532", { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* } %"$partial_1533"), !dbg !292 - store %TName_Option_ByStr20* %"$$f_50_call_1534", %TName_Option_ByStr20** %"$f_51", align 8, !dbg !292 - %"$$f_51_1535" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %"$f_51", align 8 - store %TName_Option_ByStr20* %"$$f_51_1535", %TName_Option_ByStr20** %"$retval_338", align 8, !dbg !292 - br label %"$matchsucc_1486" - -"$Nil_1536": ; preds = %"$have_gas_1484" - %"$l_1537" = bitcast %TName_List_ByStr20* %1 to %CName_Nil_ByStr20* - %"$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" + %"$l_tag_1507" = getelementptr inbounds %TName_List_ByStr20, %TName_List_ByStr20* %1, i32 0, i32 0 + %"$l_tag_1508" = load i8, i8* %"$l_tag_1507", align 1 + switch i8 %"$l_tag_1508", label %"$empty_default_1509" [ + i8 0, label %"$Cons_1510" + i8 1, label %"$Nil_1556" + ], !dbg !509 + +"$Cons_1510": ; preds = %"$have_gas_1504" + %"$l_1511" = bitcast %TName_List_ByStr20* %1 to %CName_Cons_ByStr20* + %"$h_gep_1512" = getelementptr inbounds %CName_Cons_ByStr20, %CName_Cons_ByStr20* %"$l_1511", i32 0, i32 1 + %"$h_load_1513" = load [20 x i8], [20 x i8]* %"$h_gep_1512", align 1 + %h = alloca [20 x i8], align 1 + store [20 x i8] %"$h_load_1513", [20 x i8]* %h, align 1 + %"$t_gep_1514" = getelementptr inbounds %CName_Cons_ByStr20, %CName_Cons_ByStr20* %"$l_1511", i32 0, i32 2 + %"$t_load_1515" = load %TName_List_ByStr20*, %TName_List_ByStr20** %"$t_gep_1514", align 8 + %t = alloca %TName_List_ByStr20*, align 8 + store %TName_List_ByStr20* %"$t_load_1515", %TName_List_ByStr20** %t, 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_1540": ; preds = %"$Nil_1536" +"$out_of_gas_1518": ; preds = %"$Cons_1510" call void @_out_of_gas() - br label %"$have_gas_1541" - -"$have_gas_1541": ; preds = %"$out_of_gas_1540", %"$Nil_1536" - %"$consume_1542" = sub i64 %"$gasrem_1538", 1 - store i64 %"$consume_1542", i64* @_gasrem, align 8 - %"$z_1543" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %z, align 8 - store %TName_Option_ByStr20* %"$z_1543", %TName_Option_ByStr20** %"$retval_338", align 8, !dbg !293 - br label %"$matchsucc_1486" - -"$empty_default_1489": ; preds = %"$have_gas_1484" - br label %"$matchsucc_1486" + br label %"$have_gas_1519" -"$matchsucc_1486": ; preds = %"$have_gas_1541", %"$have_gas_1517", %"$empty_default_1489" - %"$$retval_338_1544" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %"$retval_338", align 8 - ret %TName_Option_ByStr20* %"$$retval_338_1544" -} - -define internal { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } @"$fundef_335"(%"$$fundef_335_env_628"* %0, %TName_Option_ByStr20* %1) !dbg !295 { -entry: - %"$$fundef_335_env_f_1451" = getelementptr inbounds %"$$fundef_335_env_628", %"$$fundef_335_env_628"* %0, i32 0, i32 0 - %"$f_envload_1452" = 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_335_env_f_1451", align 8 +"$have_gas_1519": ; preds = %"$out_of_gas_1518", %"$Cons_1510" + %"$consume_1520" = sub i64 %"$gasrem_1516", 1 + store i64 %"$consume_1520", i64* @_gasrem, align 8 + %partial = alloca { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* }, align 8 + %"$gasrem_1521" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1522" = icmp ugt i64 1, %"$gasrem_1521" + br i1 %"$gascmp_1522", label %"$out_of_gas_1523", label %"$have_gas_1524" + +"$out_of_gas_1523": ; preds = %"$have_gas_1519" + call void @_out_of_gas() + br label %"$have_gas_1524" + +"$have_gas_1524": ; preds = %"$out_of_gas_1523", %"$have_gas_1519" + %"$consume_1525" = sub i64 %"$gasrem_1521", 1 + store i64 %"$consume_1525", i64* @_gasrem, align 8 + %"$$fundef_339_envp_1526_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_339_envp_1526_salloc" = call i8* @_salloc(i8* %"$$fundef_339_envp_1526_load", i64 24) + %"$$fundef_339_envp_1526" = bitcast i8* %"$$fundef_339_envp_1526_salloc" to %"$$fundef_339_env_626"* + %"$$fundef_339_env_voidp_1528" = bitcast %"$$fundef_339_env_626"* %"$$fundef_339_envp_1526" to i8* + %"$$fundef_339_cloval_1529" = insertvalue { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* } { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)* bitcast (%TName_Option_ByStr20* (%"$$fundef_339_env_626"*, %TName_Option_ByStr20*)* @"$fundef_339" to %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*), i8* undef }, i8* %"$$fundef_339_env_voidp_1528", 1 + %"$$fundef_339_env_g_1530" = getelementptr inbounds %"$$fundef_339_env_626", %"$$fundef_339_env_626"* %"$$fundef_339_envp_1526", i32 0, i32 0 + %"$g_1531" = 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_1531", { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }* %"$$fundef_339_env_g_1530", align 8 + %"$$fundef_339_env_t_1532" = getelementptr inbounds %"$$fundef_339_env_626", %"$$fundef_339_env_626"* %"$$fundef_339_envp_1526", i32 0, i32 1 + %"$t_1533" = load %TName_List_ByStr20*, %TName_List_ByStr20** %t, align 8 + store %TName_List_ByStr20* %"$t_1533", %TName_List_ByStr20** %"$$fundef_339_env_t_1532", align 8 + store { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* } %"$$fundef_339_cloval_1529", { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* }* %partial, align 8, !dbg !510 + %"$gasrem_1534" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1535" = icmp ugt i64 1, %"$gasrem_1534" + br i1 %"$gascmp_1535", label %"$out_of_gas_1536", label %"$have_gas_1537" + +"$out_of_gas_1536": ; preds = %"$have_gas_1524" + call void @_out_of_gas() + br label %"$have_gas_1537" + +"$have_gas_1537": ; preds = %"$out_of_gas_1536", %"$have_gas_1524" + %"$consume_1538" = sub i64 %"$gasrem_1534", 1 + store i64 %"$consume_1538", i64* @_gasrem, align 8 + %"$f_49" = alloca { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* }, align 8 + %"$f_1539" = 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_1540" = 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_1539", 0 + %"$f_envptr_1541" = 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_1539", 1 + %"$z_1542" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %z, align 8 + %"$f_call_1543" = call { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } %"$f_fptr_1540"(i8* %"$f_envptr_1541", %TName_Option_ByStr20* %"$z_1542"), !dbg !513 + store { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } %"$f_call_1543", { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* }* %"$f_49", align 8, !dbg !513 + %"$f_50" = alloca { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* }, align 8 + %"$$f_49_1544" = 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_49", align 8 + %"$$f_49_fptr_1545" = extractvalue { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } %"$$f_49_1544", 0 + %"$$f_49_envptr_1546" = extractvalue { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } %"$$f_49_1544", 1 + %"$$f_49_h_1547" = alloca [20 x i8], align 1 + %"$h_1548" = load [20 x i8], [20 x i8]* %h, align 1 + store [20 x i8] %"$h_1548", [20 x i8]* %"$$f_49_h_1547", align 1 + %"$$f_49_call_1549" = call { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } %"$$f_49_fptr_1545"(i8* %"$$f_49_envptr_1546", [20 x i8]* %"$$f_49_h_1547"), !dbg !513 + store { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } %"$$f_49_call_1549", { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* }* %"$f_50", align 8, !dbg !513 + %"$f_51" = alloca %TName_Option_ByStr20*, align 8 + call void @llvm.dbg.declare(metadata %TName_Option_ByStr20** %"$f_51", metadata !514, metadata !DIExpression()), !dbg !513 + %"$$f_50_1550" = 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_50", align 8 + %"$$f_50_fptr_1551" = extractvalue { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } %"$$f_50_1550", 0 + %"$$f_50_envptr_1552" = extractvalue { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } %"$$f_50_1550", 1 + %"$partial_1553" = load { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* }, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* }* %partial, align 8 + %"$$f_50_call_1554" = call %TName_Option_ByStr20* %"$$f_50_fptr_1551"(i8* %"$$f_50_envptr_1552", { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* } %"$partial_1553"), !dbg !513 + store %TName_Option_ByStr20* %"$$f_50_call_1554", %TName_Option_ByStr20** %"$f_51", align 8, !dbg !513 + %"$$f_51_1555" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %"$f_51", align 8 + store %TName_Option_ByStr20* %"$$f_51_1555", %TName_Option_ByStr20** %"$retval_338", align 8, !dbg !513 + br label %"$matchsucc_1506" + +"$Nil_1556": ; preds = %"$have_gas_1504" + %"$l_1557" = bitcast %TName_List_ByStr20* %1 to %CName_Nil_ByStr20* + %"$gasrem_1558" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1559" = icmp ugt i64 1, %"$gasrem_1558" + br i1 %"$gascmp_1559", label %"$out_of_gas_1560", label %"$have_gas_1561" + +"$out_of_gas_1560": ; preds = %"$Nil_1556" + call void @_out_of_gas() + br label %"$have_gas_1561" + +"$have_gas_1561": ; preds = %"$out_of_gas_1560", %"$Nil_1556" + %"$consume_1562" = sub i64 %"$gasrem_1558", 1 + store i64 %"$consume_1562", i64* @_gasrem, align 8 + %"$z_1563" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %z, align 8 + store %TName_Option_ByStr20* %"$z_1563", %TName_Option_ByStr20** %"$retval_338", align 8, !dbg !515 + br label %"$matchsucc_1506" + +"$empty_default_1509": ; preds = %"$have_gas_1504" + br label %"$matchsucc_1506" + +"$matchsucc_1506": ; preds = %"$have_gas_1561", %"$have_gas_1537", %"$empty_default_1509" + %"$$retval_338_1564" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %"$retval_338", align 8 + ret %TName_Option_ByStr20* %"$$retval_338_1564" +} + +define internal { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } @"$fundef_335"(%"$$fundef_335_env_628"* %0, %TName_Option_ByStr20* %1) !dbg !517 { +entry: + %"$z_1494" = alloca %TName_Option_ByStr20*, align 8 + store %TName_Option_ByStr20* %1, %TName_Option_ByStr20** %"$z_1494", align 8 + call void @llvm.dbg.declare(metadata %TName_Option_ByStr20** %"$z_1494", metadata !518, metadata !DIExpression()), !dbg !519 + %"$$fundef_335_env_f_1470" = getelementptr inbounds %"$$fundef_335_env_628", %"$$fundef_335_env_628"* %0, i32 0, i32 0 + %"$f_envload_1471" = 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_335_env_f_1470", 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_1452", { { { %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_335_env_g_1453" = getelementptr inbounds %"$$fundef_335_env_628", %"$$fundef_335_env_628"* %0, i32 0, i32 1 - %"$g_envload_1454" = 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_335_env_g_1453", 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_1471", { { { %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_335_env_g_1472" = getelementptr inbounds %"$$fundef_335_env_628", %"$$fundef_335_env_628"* %0, i32 0, i32 1 + %"$g_envload_1473" = 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_335_env_g_1472", 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_1454", { { %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_envload_1473", { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }* %g, align 8 %"$retval_336" = alloca { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }, align 8 - %"$gasrem_1455" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1456" = icmp ugt i64 1, %"$gasrem_1455" - br i1 %"$gascmp_1456", label %"$out_of_gas_1457", label %"$have_gas_1458" - -"$out_of_gas_1457": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_1458" - -"$have_gas_1458": ; preds = %"$out_of_gas_1457", %entry - %"$consume_1459" = sub i64 %"$gasrem_1455", 1 - store i64 %"$consume_1459", i64* @_gasrem, align 8 - %"$gasrem_1460" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1461" = icmp ugt i64 1, %"$gasrem_1460" - br i1 %"$gascmp_1461", label %"$out_of_gas_1462", label %"$have_gas_1463" - -"$out_of_gas_1462": ; preds = %"$have_gas_1458" - call void @_out_of_gas() - br label %"$have_gas_1463" - -"$have_gas_1463": ; preds = %"$out_of_gas_1462", %"$have_gas_1458" - %"$consume_1464" = sub i64 %"$gasrem_1460", 1 - store i64 %"$consume_1464", i64* @_gasrem, align 8 - %"$$fundef_337_envp_1465_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_337_envp_1465_salloc" = call i8* @_salloc(i8* %"$$fundef_337_envp_1465_load", i64 40) - %"$$fundef_337_envp_1465" = bitcast i8* %"$$fundef_337_envp_1465_salloc" to %"$$fundef_337_env_627"* - %"$$fundef_337_env_voidp_1467" = bitcast %"$$fundef_337_env_627"* %"$$fundef_337_envp_1465" to i8* - %"$$fundef_337_cloval_1468" = insertvalue { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)* bitcast (%TName_Option_ByStr20* (%"$$fundef_337_env_627"*, %TName_List_ByStr20*)* @"$fundef_337" to %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*), i8* undef }, i8* %"$$fundef_337_env_voidp_1467", 1 - %"$$fundef_337_env_f_1469" = getelementptr inbounds %"$$fundef_337_env_627", %"$$fundef_337_env_627"* %"$$fundef_337_envp_1465", i32 0, i32 0 - %"$f_1470" = 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_1470", { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }* %"$$fundef_337_env_f_1469", align 8 - %"$$fundef_337_env_g_1471" = getelementptr inbounds %"$$fundef_337_env_627", %"$$fundef_337_env_627"* %"$$fundef_337_envp_1465", i32 0, i32 1 - %"$g_1472" = 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_1472", { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }* %"$$fundef_337_env_g_1471", align 8 - %"$$fundef_337_env_z_1473" = getelementptr inbounds %"$$fundef_337_env_627", %"$$fundef_337_env_627"* %"$$fundef_337_envp_1465", i32 0, i32 2 - store %TName_Option_ByStr20* %1, %TName_Option_ByStr20** %"$$fundef_337_env_z_1473", align 8 - store { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$$fundef_337_cloval_1468", { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }* %"$retval_336", align 8, !dbg !296 - %"$$retval_336_1474" = load { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }, { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }* %"$retval_336", align 8 - ret { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$$retval_336_1474" -} - -define internal { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } @"$fundef_333"(%"$$fundef_333_env_629"* %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 !297 { + %"$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_1476": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_1477" + +"$have_gas_1477": ; preds = %"$out_of_gas_1476", %entry + %"$consume_1478" = sub i64 %"$gasrem_1474", 1 + store i64 %"$consume_1478", i64* @_gasrem, align 8 + %"$gasrem_1479" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1480" = icmp ugt i64 1, %"$gasrem_1479" + br i1 %"$gascmp_1480", label %"$out_of_gas_1481", label %"$have_gas_1482" + +"$out_of_gas_1481": ; preds = %"$have_gas_1477" + call void @_out_of_gas() + br label %"$have_gas_1482" + +"$have_gas_1482": ; preds = %"$out_of_gas_1481", %"$have_gas_1477" + %"$consume_1483" = sub i64 %"$gasrem_1479", 1 + store i64 %"$consume_1483", i64* @_gasrem, align 8 + %"$$fundef_337_envp_1484_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_337_envp_1484_salloc" = call i8* @_salloc(i8* %"$$fundef_337_envp_1484_load", i64 40) + %"$$fundef_337_envp_1484" = bitcast i8* %"$$fundef_337_envp_1484_salloc" to %"$$fundef_337_env_627"* + %"$$fundef_337_env_voidp_1486" = bitcast %"$$fundef_337_env_627"* %"$$fundef_337_envp_1484" to i8* + %"$$fundef_337_cloval_1487" = insertvalue { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)* bitcast (%TName_Option_ByStr20* (%"$$fundef_337_env_627"*, %TName_List_ByStr20*)* @"$fundef_337" to %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*), i8* undef }, i8* %"$$fundef_337_env_voidp_1486", 1 + %"$$fundef_337_env_f_1488" = getelementptr inbounds %"$$fundef_337_env_627", %"$$fundef_337_env_627"* %"$$fundef_337_envp_1484", i32 0, i32 0 + %"$f_1489" = 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_1489", { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }* %"$$fundef_337_env_f_1488", align 8 + %"$$fundef_337_env_g_1490" = getelementptr inbounds %"$$fundef_337_env_627", %"$$fundef_337_env_627"* %"$$fundef_337_envp_1484", i32 0, i32 1 + %"$g_1491" = 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_1491", { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }* %"$$fundef_337_env_g_1490", align 8 + %"$$fundef_337_env_z_1492" = getelementptr inbounds %"$$fundef_337_env_627", %"$$fundef_337_env_627"* %"$$fundef_337_envp_1484", i32 0, i32 2 + store %TName_Option_ByStr20* %1, %TName_Option_ByStr20** %"$$fundef_337_env_z_1492", align 8 + store { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$$fundef_337_cloval_1487", { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }* %"$retval_336", align 8, !dbg !520 + %"$$retval_336_1493" = load { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }, { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }* %"$retval_336", align 8 + ret { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$$retval_336_1493" +} + +define internal { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } @"$fundef_333"(%"$$fundef_333_env_629"* %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 !521 { entry: %"$retval_334" = alloca { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }, align 8 - %"$gasrem_1437" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1438" = icmp ugt i64 1, %"$gasrem_1437" - br i1 %"$gascmp_1438", label %"$out_of_gas_1439", label %"$have_gas_1440" - -"$out_of_gas_1439": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_1440" - -"$have_gas_1440": ; preds = %"$out_of_gas_1439", %entry - %"$consume_1441" = sub i64 %"$gasrem_1437", 1 - store i64 %"$consume_1441", i64* @_gasrem, align 8 - %"$$fundef_335_envp_1442_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_335_envp_1442_salloc" = call i8* @_salloc(i8* %"$$fundef_335_envp_1442_load", i64 32) - %"$$fundef_335_envp_1442" = bitcast i8* %"$$fundef_335_envp_1442_salloc" to %"$$fundef_335_env_628"* - %"$$fundef_335_env_voidp_1444" = bitcast %"$$fundef_335_env_628"* %"$$fundef_335_envp_1442" to i8* - %"$$fundef_335_cloval_1445" = 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_335_env_628"*, %TName_Option_ByStr20*)* @"$fundef_335" to { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*), i8* undef }, i8* %"$$fundef_335_env_voidp_1444", 1 + %"$gasrem_1456" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1457" = icmp ugt i64 1, %"$gasrem_1456" + br i1 %"$gascmp_1457", label %"$out_of_gas_1458", label %"$have_gas_1459" + +"$out_of_gas_1458": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_1459" + +"$have_gas_1459": ; preds = %"$out_of_gas_1458", %entry + %"$consume_1460" = sub i64 %"$gasrem_1456", 1 + store i64 %"$consume_1460", i64* @_gasrem, align 8 + %"$$fundef_335_envp_1461_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_335_envp_1461_salloc" = call i8* @_salloc(i8* %"$$fundef_335_envp_1461_load", i64 32) + %"$$fundef_335_envp_1461" = bitcast i8* %"$$fundef_335_envp_1461_salloc" to %"$$fundef_335_env_628"* + %"$$fundef_335_env_voidp_1463" = bitcast %"$$fundef_335_env_628"* %"$$fundef_335_envp_1461" to i8* + %"$$fundef_335_cloval_1464" = 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_335_env_628"*, %TName_Option_ByStr20*)* @"$fundef_335" to { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*), i8* undef }, i8* %"$$fundef_335_env_voidp_1463", 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_335_cloval_1445", { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }* %g, align 8, !dbg !298 - %"$$fundef_335_env_f_1446" = getelementptr inbounds %"$$fundef_335_env_628", %"$$fundef_335_env_628"* %"$$fundef_335_envp_1442", 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_335_env_f_1446", align 8 - %"$$fundef_335_env_g_1447" = getelementptr inbounds %"$$fundef_335_env_628", %"$$fundef_335_env_628"* %"$$fundef_335_envp_1442", i32 0, i32 1 - %"$g_1448" = 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_1448", { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }* %"$$fundef_335_env_g_1447", align 8 - %"$g_1449" = 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_1449", { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }* %"$retval_334", align 8, !dbg !298 - %"$$retval_334_1450" = 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_334", align 8 - ret { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } %"$$retval_334_1450" + store { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } %"$$fundef_335_cloval_1464", { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }* %g, align 8, !dbg !522 + %"$$fundef_335_env_f_1465" = getelementptr inbounds %"$$fundef_335_env_628", %"$$fundef_335_env_628"* %"$$fundef_335_envp_1461", 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_335_env_f_1465", align 8 + %"$$fundef_335_env_g_1466" = getelementptr inbounds %"$$fundef_335_env_628", %"$$fundef_335_env_628"* %"$$fundef_335_envp_1461", i32 0, i32 1 + %"$g_1467" = 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_1467", { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }* %"$$fundef_335_env_g_1466", align 8 + %"$g_1468" = 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_1468", { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }* %"$retval_334", align 8, !dbg !522 + %"$$retval_334_1469" = 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_334", align 8 + ret { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } %"$$retval_334_1469" } -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_331"(%"$$fundef_331_env_630"* %0) !dbg !299 { +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_331"(%"$$fundef_331_env_630"* %0) !dbg !523 { entry: %"$retval_332" = 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_1428" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1429" = icmp ugt i64 1, %"$gasrem_1428" - br i1 %"$gascmp_1429", label %"$out_of_gas_1430", label %"$have_gas_1431" + %"$gasrem_1447" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1448" = icmp ugt i64 1, %"$gasrem_1447" + br i1 %"$gascmp_1448", label %"$out_of_gas_1449", label %"$have_gas_1450" -"$out_of_gas_1430": ; preds = %entry +"$out_of_gas_1449": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_1431" + br label %"$have_gas_1450" -"$have_gas_1431": ; preds = %"$out_of_gas_1430", %entry - %"$consume_1432" = sub i64 %"$gasrem_1428", 1 - store i64 %"$consume_1432", 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_333_env_629"*, { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* })* @"$fundef_333" 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_332", align 8, !dbg !300 - %"$$retval_332_1436" = 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_332", 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_332_1436" +"$have_gas_1450": ; preds = %"$out_of_gas_1449", %entry + %"$consume_1451" = sub i64 %"$gasrem_1447", 1 + store i64 %"$consume_1451", 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_333_env_629"*, { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* })* @"$fundef_333" 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_332", align 8, !dbg !524 + %"$$retval_332_1455" = 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_332", 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_332_1455" } -define internal { i8*, i8* }* @"$fundef_329"(%"$$fundef_329_env_631"* %0) !dbg !301 { +define internal { i8*, i8* }* @"$fundef_329"(%"$$fundef_329_env_631"* %0) !dbg !525 { entry: %"$retval_330" = alloca { i8*, i8* }*, align 8 - %"$gasrem_1416" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1417" = icmp ugt i64 1, %"$gasrem_1416" - br i1 %"$gascmp_1417", label %"$out_of_gas_1418", label %"$have_gas_1419" - -"$out_of_gas_1418": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_1419" - -"$have_gas_1419": ; preds = %"$out_of_gas_1418", %entry - %"$consume_1420" = sub i64 %"$gasrem_1416", 1 - store i64 %"$consume_1420", i64* @_gasrem, align 8 - %"$dyndisp_table_1424_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$dyndisp_table_1424_salloc_salloc" = call i8* @_salloc(i8* %"$dyndisp_table_1424_salloc_load", i64 48) - %"$dyndisp_table_1424_salloc" = bitcast i8* %"$dyndisp_table_1424_salloc_salloc" to [3 x { i8*, i8* }]* - %"$dyndisp_table_1424" = bitcast [3 x { i8*, i8* }]* %"$dyndisp_table_1424_salloc" to { i8*, i8* }* - %"$dyndisp_gep_1425" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_1424", i32 1 - %"$dyndisp_pcast_1426" = bitcast { i8*, i8* }* %"$dyndisp_gep_1425" 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_331_env_630"*)* @"$fundef_331" 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_1426", align 8 - store { i8*, i8* }* %"$dyndisp_table_1424", { i8*, i8* }** %"$retval_330", align 8, !dbg !302 - %"$$retval_330_1427" = load { i8*, i8* }*, { i8*, i8* }** %"$retval_330", align 8 - ret { i8*, i8* }* %"$$retval_330_1427" -} - -define internal %TName_Bool* @"$fundef_327"(%"$$fundef_327_env_632"* %0, [20 x i8]* %1) !dbg !303 { -entry: + %"$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" + +"$out_of_gas_1437": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_1438" + +"$have_gas_1438": ; preds = %"$out_of_gas_1437", %entry + %"$consume_1439" = sub i64 %"$gasrem_1435", 1 + store i64 %"$consume_1439", i64* @_gasrem, align 8 + %"$dyndisp_table_1443_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$dyndisp_table_1443_salloc_salloc" = call i8* @_salloc(i8* %"$dyndisp_table_1443_salloc_load", i64 48) + %"$dyndisp_table_1443_salloc" = bitcast i8* %"$dyndisp_table_1443_salloc_salloc" to [3 x { i8*, i8* }]* + %"$dyndisp_table_1443" = bitcast [3 x { i8*, i8* }]* %"$dyndisp_table_1443_salloc" to { i8*, i8* }* + %"$dyndisp_gep_1444" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_1443", i32 1 + %"$dyndisp_pcast_1445" = bitcast { i8*, i8* }* %"$dyndisp_gep_1444" 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_331_env_630"*)* @"$fundef_331" 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_1445", align 8 + store { i8*, i8* }* %"$dyndisp_table_1443", { i8*, i8* }** %"$retval_330", align 8, !dbg !526 + %"$$retval_330_1446" = load { i8*, i8* }*, { i8*, i8* }** %"$retval_330", align 8 + ret { i8*, i8* }* %"$$retval_330_1446" +} + +define internal %TName_Bool* @"$fundef_327"(%"$$fundef_327_env_632"* %0, [20 x i8]* %1) !dbg !527 { +entry: + %"$bs2_1434" = alloca [20 x i8]*, align 8 + store [20 x i8]* %1, [20 x i8]** %"$bs2_1434", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$bs2_1434", metadata !528, metadata !DIExpression()), !dbg !529 %bs2 = load [20 x i8], [20 x i8]* %1, align 1 - %"$$fundef_327_env_bs1_1400" = getelementptr inbounds %"$$fundef_327_env_632", %"$$fundef_327_env_632"* %0, i32 0, i32 0 - %"$bs1_envload_1401" = load [20 x i8], [20 x i8]* %"$$fundef_327_env_bs1_1400", align 1 + %"$$fundef_327_env_bs1_1418" = getelementptr inbounds %"$$fundef_327_env_632", %"$$fundef_327_env_632"* %0, i32 0, i32 0 + %"$bs1_envload_1419" = load [20 x i8], [20 x i8]* %"$$fundef_327_env_bs1_1418", align 1 %bs1 = alloca [20 x i8], align 1 - store [20 x i8] %"$bs1_envload_1401", [20 x i8]* %bs1, align 1 + store [20 x i8] %"$bs1_envload_1419", [20 x i8]* %bs1, align 1 %"$retval_328" = alloca %TName_Bool*, align 8 - %"$gasrem_1402" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1403" = icmp ugt i64 20, %"$gasrem_1402" - br i1 %"$gascmp_1403", label %"$out_of_gas_1404", label %"$have_gas_1405" - -"$out_of_gas_1404": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_1405" - -"$have_gas_1405": ; preds = %"$out_of_gas_1404", %entry - %"$consume_1406" = sub i64 %"$gasrem_1402", 20 - store i64 %"$consume_1406", i64* @_gasrem, align 8 - %"$execptr_load_1407" = load i8*, i8** @_execptr, align 8 - %"$eq_bs1_1408" = alloca [20 x i8], align 1 - %"$bs1_1409" = load [20 x i8], [20 x i8]* %bs1, align 1 - store [20 x i8] %"$bs1_1409", [20 x i8]* %"$eq_bs1_1408", align 1 - %"$$eq_bs1_1408_1410" = bitcast [20 x i8]* %"$eq_bs1_1408" to i8* - %"$eq_bs2_1411" = alloca [20 x i8], align 1 - store [20 x i8] %bs2, [20 x i8]* %"$eq_bs2_1411", align 1 - %"$$eq_bs2_1411_1412" = bitcast [20 x i8]* %"$eq_bs2_1411" to i8* - %"$eq_call_1413" = call %TName_Bool* @_eq_ByStrX(i8* %"$execptr_load_1407", i32 20, i8* %"$$eq_bs1_1408_1410", i8* %"$$eq_bs2_1411_1412"), !dbg !304 - store %TName_Bool* %"$eq_call_1413", %TName_Bool** %"$retval_328", align 8, !dbg !304 - %"$$retval_328_1415" = load %TName_Bool*, %TName_Bool** %"$retval_328", align 8 - ret %TName_Bool* %"$$retval_328_1415" -} - -define internal { %TName_Bool* (i8*, [20 x i8]*)*, i8* } @"$fundef_325"(%"$$fundef_325_env_633"* %0, [20 x i8]* %1) !dbg !305 { -entry: + call void @llvm.dbg.declare(metadata %TName_Bool** %"$retval_328", metadata !530, metadata !DIExpression()), !dbg !531 + %"$gasrem_1420" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1421" = icmp ugt i64 20, %"$gasrem_1420" + br i1 %"$gascmp_1421", label %"$out_of_gas_1422", label %"$have_gas_1423" + +"$out_of_gas_1422": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_1423" + +"$have_gas_1423": ; preds = %"$out_of_gas_1422", %entry + %"$consume_1424" = sub i64 %"$gasrem_1420", 20 + store i64 %"$consume_1424", i64* @_gasrem, align 8 + %"$execptr_load_1425" = load i8*, i8** @_execptr, align 8 + %"$eq_bs1_1426" = alloca [20 x i8], align 1 + %"$bs1_1427" = load [20 x i8], [20 x i8]* %bs1, align 1 + store [20 x i8] %"$bs1_1427", [20 x i8]* %"$eq_bs1_1426", align 1 + %"$$eq_bs1_1426_1428" = bitcast [20 x i8]* %"$eq_bs1_1426" to i8* + %"$eq_bs2_1429" = alloca [20 x i8], align 1 + store [20 x i8] %bs2, [20 x i8]* %"$eq_bs2_1429", align 1 + %"$$eq_bs2_1429_1430" = bitcast [20 x i8]* %"$eq_bs2_1429" to i8* + %"$eq_call_1431" = call %TName_Bool* @_eq_ByStrX(i8* %"$execptr_load_1425", i32 20, i8* %"$$eq_bs1_1426_1428", i8* %"$$eq_bs2_1429_1430"), !dbg !531 + store %TName_Bool* %"$eq_call_1431", %TName_Bool** %"$retval_328", align 8, !dbg !531 + %"$$retval_328_1433" = load %TName_Bool*, %TName_Bool** %"$retval_328", align 8 + ret %TName_Bool* %"$$retval_328_1433" +} + +define internal { %TName_Bool* (i8*, [20 x i8]*)*, i8* } @"$fundef_325"(%"$$fundef_325_env_633"* %0, [20 x i8]* %1) !dbg !532 { +entry: + %"$bs1_1417" = alloca [20 x i8]*, align 8 + store [20 x i8]* %1, [20 x i8]** %"$bs1_1417", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$bs1_1417", metadata !533, metadata !DIExpression()), !dbg !534 %bs1 = load [20 x i8], [20 x i8]* %1, align 1 %"$retval_326" = alloca { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, align 8 - %"$gasrem_1389" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1390" = icmp ugt i64 1, %"$gasrem_1389" - br i1 %"$gascmp_1390", label %"$out_of_gas_1391", label %"$have_gas_1392" - -"$out_of_gas_1391": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_1392" - -"$have_gas_1392": ; preds = %"$out_of_gas_1391", %entry - %"$consume_1393" = sub i64 %"$gasrem_1389", 1 - store i64 %"$consume_1393", i64* @_gasrem, align 8 - %"$$fundef_327_envp_1394_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_327_envp_1394_salloc" = call i8* @_salloc(i8* %"$$fundef_327_envp_1394_load", i64 20) - %"$$fundef_327_envp_1394" = bitcast i8* %"$$fundef_327_envp_1394_salloc" to %"$$fundef_327_env_632"* - %"$$fundef_327_env_voidp_1396" = bitcast %"$$fundef_327_env_632"* %"$$fundef_327_envp_1394" to i8* - %"$$fundef_327_cloval_1397" = insertvalue { %TName_Bool* (i8*, [20 x i8]*)*, i8* } { %TName_Bool* (i8*, [20 x i8]*)* bitcast (%TName_Bool* (%"$$fundef_327_env_632"*, [20 x i8]*)* @"$fundef_327" to %TName_Bool* (i8*, [20 x i8]*)*), i8* undef }, i8* %"$$fundef_327_env_voidp_1396", 1 - %"$$fundef_327_env_bs1_1398" = getelementptr inbounds %"$$fundef_327_env_632", %"$$fundef_327_env_632"* %"$$fundef_327_envp_1394", i32 0, i32 0 - store [20 x i8] %bs1, [20 x i8]* %"$$fundef_327_env_bs1_1398", align 1 - store { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$$fundef_327_cloval_1397", { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %"$retval_326", align 8, !dbg !306 - %"$$retval_326_1399" = load { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %"$retval_326", align 8 - ret { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$$retval_326_1399" -} - -define internal %TName_Bool* @"$fundef_413"(%"$$fundef_413_env_634"* %0, [20 x i8]* %1) !dbg !307 { -entry: + %"$gasrem_1406" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1407" = icmp ugt i64 1, %"$gasrem_1406" + br i1 %"$gascmp_1407", label %"$out_of_gas_1408", label %"$have_gas_1409" + +"$out_of_gas_1408": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_1409" + +"$have_gas_1409": ; preds = %"$out_of_gas_1408", %entry + %"$consume_1410" = sub i64 %"$gasrem_1406", 1 + store i64 %"$consume_1410", i64* @_gasrem, align 8 + %"$$fundef_327_envp_1411_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_327_envp_1411_salloc" = call i8* @_salloc(i8* %"$$fundef_327_envp_1411_load", i64 20) + %"$$fundef_327_envp_1411" = bitcast i8* %"$$fundef_327_envp_1411_salloc" to %"$$fundef_327_env_632"* + %"$$fundef_327_env_voidp_1413" = bitcast %"$$fundef_327_env_632"* %"$$fundef_327_envp_1411" to i8* + %"$$fundef_327_cloval_1414" = insertvalue { %TName_Bool* (i8*, [20 x i8]*)*, i8* } { %TName_Bool* (i8*, [20 x i8]*)* bitcast (%TName_Bool* (%"$$fundef_327_env_632"*, [20 x i8]*)* @"$fundef_327" to %TName_Bool* (i8*, [20 x i8]*)*), i8* undef }, i8* %"$$fundef_327_env_voidp_1413", 1 + %"$$fundef_327_env_bs1_1415" = getelementptr inbounds %"$$fundef_327_env_632", %"$$fundef_327_env_632"* %"$$fundef_327_envp_1411", i32 0, i32 0 + store [20 x i8] %bs1, [20 x i8]* %"$$fundef_327_env_bs1_1415", align 1 + store { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$$fundef_327_cloval_1414", { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %"$retval_326", align 8, !dbg !535 + %"$$retval_326_1416" = load { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %"$retval_326", align 8 + ret { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$$retval_326_1416" +} + +define internal %TName_Bool* @"$fundef_413"(%"$$fundef_413_env_634"* %0, [20 x i8]* %1) !dbg !536 { +entry: + %"$bs_1405" = alloca [20 x i8]*, align 8 + store [20 x i8]* %1, [20 x i8]** %"$bs_1405", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$bs_1405", metadata !537, metadata !DIExpression()), !dbg !538 %bs = load [20 x i8], [20 x i8]* %1, align 1 - %"$$fundef_413_env_ListUtils.list_mem_1344" = getelementptr inbounds %"$$fundef_413_env_634", %"$$fundef_413_env_634"* %0, i32 0, i32 0 - %"$ListUtils.list_mem_envload_1345" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_413_env_ListUtils.list_mem_1344", align 8 + %"$$fundef_413_env_ListUtils.list_mem_1360" = getelementptr inbounds %"$$fundef_413_env_634", %"$$fundef_413_env_634"* %0, i32 0, i32 0 + %"$ListUtils.list_mem_envload_1361" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_413_env_ListUtils.list_mem_1360", align 8 %ListUtils.list_mem = alloca { i8*, i8* }*, align 8 - store { i8*, i8* }* %"$ListUtils.list_mem_envload_1345", { i8*, i8* }** %ListUtils.list_mem, align 8 - %"$$fundef_413_env_list_1346" = getelementptr inbounds %"$$fundef_413_env_634", %"$$fundef_413_env_634"* %0, i32 0, i32 1 - %"$list_envload_1347" = load %TName_List_ByStr20*, %TName_List_ByStr20** %"$$fundef_413_env_list_1346", align 8 + store { i8*, i8* }* %"$ListUtils.list_mem_envload_1361", { i8*, i8* }** %ListUtils.list_mem, align 8 + %"$$fundef_413_env_list_1362" = getelementptr inbounds %"$$fundef_413_env_634", %"$$fundef_413_env_634"* %0, i32 0, i32 1 + %"$list_envload_1363" = load %TName_List_ByStr20*, %TName_List_ByStr20** %"$$fundef_413_env_list_1362", align 8 %list = alloca %TName_List_ByStr20*, align 8 - store %TName_List_ByStr20* %"$list_envload_1347", %TName_List_ByStr20** %list, align 8 - %"$$fundef_413_env_ud-registry.eqByStr20_1348" = getelementptr inbounds %"$$fundef_413_env_634", %"$$fundef_413_env_634"* %0, i32 0, i32 2 - %"$ud-registry.eqByStr20_envload_1349" = 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_413_env_ud-registry.eqByStr20_1348", align 8 + store %TName_List_ByStr20* %"$list_envload_1363", %TName_List_ByStr20** %list, align 8 + %"$$fundef_413_env_ud-registry.eqByStr20_1364" = getelementptr inbounds %"$$fundef_413_env_634", %"$$fundef_413_env_634"* %0, i32 0, i32 2 + %"$ud-registry.eqByStr20_envload_1365" = 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_413_env_ud-registry.eqByStr20_1364", 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_1349", { { %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_envload_1365", { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* }* %ud-registry.eqByStr20, align 8 %"$retval_414" = alloca %TName_Bool*, align 8 - %"$gasrem_1350" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1351" = icmp ugt i64 1, %"$gasrem_1350" - br i1 %"$gascmp_1351", label %"$out_of_gas_1352", label %"$have_gas_1353" + call void @llvm.dbg.declare(metadata %TName_Bool** %"$retval_414", metadata !539, metadata !DIExpression()), !dbg !540 + %"$gasrem_1366" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1367" = icmp ugt i64 1, %"$gasrem_1366" + br i1 %"$gascmp_1367", label %"$out_of_gas_1368", label %"$have_gas_1369" -"$out_of_gas_1352": ; preds = %entry +"$out_of_gas_1368": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_1353" + br label %"$have_gas_1369" -"$have_gas_1353": ; preds = %"$out_of_gas_1352", %entry - %"$consume_1354" = sub i64 %"$gasrem_1350", 1 - store i64 %"$consume_1354", i64* @_gasrem, align 8 +"$have_gas_1369": ; preds = %"$out_of_gas_1368", %entry + %"$consume_1370" = sub i64 %"$gasrem_1366", 1 + store i64 %"$consume_1370", 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_1355" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1356" = icmp ugt i64 1, %"$gasrem_1355" - br i1 %"$gascmp_1356", label %"$out_of_gas_1357", label %"$have_gas_1358" - -"$out_of_gas_1357": ; preds = %"$have_gas_1353" - call void @_out_of_gas() - br label %"$have_gas_1358" - -"$have_gas_1358": ; preds = %"$out_of_gas_1357", %"$have_gas_1353" - %"$consume_1359" = sub i64 %"$gasrem_1355", 1 - store i64 %"$consume_1359", i64* @_gasrem, align 8 - %"$ListUtils.list_mem_1360" = load { i8*, i8* }*, { i8*, i8* }** %ListUtils.list_mem, align 8 - %"$ListUtils.list_mem_1361" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$ListUtils.list_mem_1360", i32 0 - %"$ListUtils.list_mem_1362" = bitcast { i8*, i8* }* %"$ListUtils.list_mem_1361" 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_1363" = 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_1362", align 8 - %"$ListUtils.list_mem_fptr_1364" = 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_1363", 0 - %"$ListUtils.list_mem_envptr_1365" = 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_1363", 1 - %"$ListUtils.list_mem_call_1366" = 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_1364"(i8* %"$ListUtils.list_mem_envptr_1365"), !dbg !308 - 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_1366", { { { %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 !309 - %"$gasrem_1367" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1368" = icmp ugt i64 1, %"$gasrem_1367" - br i1 %"$gascmp_1368", label %"$out_of_gas_1369", label %"$have_gas_1370" - -"$out_of_gas_1369": ; preds = %"$have_gas_1358" - call void @_out_of_gas() - br label %"$have_gas_1370" - -"$have_gas_1370": ; preds = %"$out_of_gas_1369", %"$have_gas_1358" - %"$consume_1371" = sub i64 %"$gasrem_1367", 1 - store i64 %"$consume_1371", i64* @_gasrem, 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 = %"$have_gas_1369" + call void @_out_of_gas() + br label %"$have_gas_1374" + +"$have_gas_1374": ; preds = %"$out_of_gas_1373", %"$have_gas_1369" + %"$consume_1375" = sub i64 %"$gasrem_1371", 1 + store i64 %"$consume_1375", i64* @_gasrem, align 8 + %"$ListUtils.list_mem_1376" = load { i8*, i8* }*, { i8*, i8* }** %ListUtils.list_mem, align 8 + %"$ListUtils.list_mem_1377" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$ListUtils.list_mem_1376", i32 0 + %"$ListUtils.list_mem_1378" = bitcast { i8*, i8* }* %"$ListUtils.list_mem_1377" 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_1379" = 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_1378", align 8 + %"$ListUtils.list_mem_fptr_1380" = 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_1379", 0 + %"$ListUtils.list_mem_envptr_1381" = 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_1379", 1 + %"$ListUtils.list_mem_call_1382" = 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_1380"(i8* %"$ListUtils.list_mem_envptr_1381"), !dbg !541 + 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_1382", { { { %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 !542 + %"$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 = %"$have_gas_1374" + call void @_out_of_gas() + br label %"$have_gas_1386" + +"$have_gas_1386": ; preds = %"$out_of_gas_1385", %"$have_gas_1374" + %"$consume_1387" = sub i64 %"$gasrem_1383", 1 + store i64 %"$consume_1387", i64* @_gasrem, align 8 %"$listMemByStr20_44" = alloca { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* }, align 8 - %"$listMemByStr20_1372" = 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_1373" = 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_1372", 0 - %"$listMemByStr20_envptr_1374" = 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_1372", 1 - %"$ud-registry.eqByStr20_1375" = 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_1376" = call { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$listMemByStr20_fptr_1373"(i8* %"$listMemByStr20_envptr_1374", { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$ud-registry.eqByStr20_1375"), !dbg !310 - store { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$listMemByStr20_call_1376", { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* }* %"$listMemByStr20_44", align 8, !dbg !310 + %"$listMemByStr20_1388" = 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_1389" = 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_1388", 0 + %"$listMemByStr20_envptr_1390" = 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_1388", 1 + %"$ud-registry.eqByStr20_1391" = 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_1392" = call { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$listMemByStr20_fptr_1389"(i8* %"$listMemByStr20_envptr_1390", { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$ud-registry.eqByStr20_1391"), !dbg !543 + store { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$listMemByStr20_call_1392", { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* }* %"$listMemByStr20_44", align 8, !dbg !543 %"$listMemByStr20_45" = alloca { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* }, align 8 - %"$$listMemByStr20_44_1377" = 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_44", align 8 - %"$$listMemByStr20_44_fptr_1378" = extractvalue { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$$listMemByStr20_44_1377", 0 - %"$$listMemByStr20_44_envptr_1379" = extractvalue { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$$listMemByStr20_44_1377", 1 - %"$$listMemByStr20_44_bs_1380" = alloca [20 x i8], align 1 - store [20 x i8] %bs, [20 x i8]* %"$$listMemByStr20_44_bs_1380", align 1 - %"$$listMemByStr20_44_call_1381" = call { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } %"$$listMemByStr20_44_fptr_1378"(i8* %"$$listMemByStr20_44_envptr_1379", [20 x i8]* %"$$listMemByStr20_44_bs_1380"), !dbg !310 - store { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } %"$$listMemByStr20_44_call_1381", { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* }* %"$listMemByStr20_45", align 8, !dbg !310 + %"$$listMemByStr20_44_1393" = 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_44", align 8 + %"$$listMemByStr20_44_fptr_1394" = extractvalue { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$$listMemByStr20_44_1393", 0 + %"$$listMemByStr20_44_envptr_1395" = extractvalue { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$$listMemByStr20_44_1393", 1 + %"$$listMemByStr20_44_bs_1396" = alloca [20 x i8], align 1 + store [20 x i8] %bs, [20 x i8]* %"$$listMemByStr20_44_bs_1396", align 1 + %"$$listMemByStr20_44_call_1397" = call { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } %"$$listMemByStr20_44_fptr_1394"(i8* %"$$listMemByStr20_44_envptr_1395", [20 x i8]* %"$$listMemByStr20_44_bs_1396"), !dbg !543 + store { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } %"$$listMemByStr20_44_call_1397", { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* }* %"$listMemByStr20_45", align 8, !dbg !543 %"$listMemByStr20_46" = alloca %TName_Bool*, align 8 - %"$$listMemByStr20_45_1382" = load { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* }, { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* }* %"$listMemByStr20_45", align 8 - %"$$listMemByStr20_45_fptr_1383" = extractvalue { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } %"$$listMemByStr20_45_1382", 0 - %"$$listMemByStr20_45_envptr_1384" = extractvalue { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } %"$$listMemByStr20_45_1382", 1 - %"$list_1385" = load %TName_List_ByStr20*, %TName_List_ByStr20** %list, align 8 - %"$$listMemByStr20_45_call_1386" = call %TName_Bool* %"$$listMemByStr20_45_fptr_1383"(i8* %"$$listMemByStr20_45_envptr_1384", %TName_List_ByStr20* %"$list_1385"), !dbg !310 - store %TName_Bool* %"$$listMemByStr20_45_call_1386", %TName_Bool** %"$listMemByStr20_46", align 8, !dbg !310 - %"$$listMemByStr20_46_1387" = load %TName_Bool*, %TName_Bool** %"$listMemByStr20_46", align 8 - store %TName_Bool* %"$$listMemByStr20_46_1387", %TName_Bool** %"$retval_414", align 8, !dbg !310 - %"$$retval_414_1388" = load %TName_Bool*, %TName_Bool** %"$retval_414", align 8 - ret %TName_Bool* %"$$retval_414_1388" -} - -define internal { %TName_Bool* (i8*, [20 x i8]*)*, i8* } @"$fundef_411"(%"$$fundef_411_env_635"* %0, %TName_List_ByStr20* %1) !dbg !311 { -entry: - %"$$fundef_411_env_ListUtils.list_mem_1325" = getelementptr inbounds %"$$fundef_411_env_635", %"$$fundef_411_env_635"* %0, i32 0, i32 0 - %"$ListUtils.list_mem_envload_1326" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_411_env_ListUtils.list_mem_1325", align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$listMemByStr20_46", metadata !544, metadata !DIExpression()), !dbg !543 + %"$$listMemByStr20_45_1398" = load { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* }, { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* }* %"$listMemByStr20_45", align 8 + %"$$listMemByStr20_45_fptr_1399" = extractvalue { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } %"$$listMemByStr20_45_1398", 0 + %"$$listMemByStr20_45_envptr_1400" = extractvalue { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } %"$$listMemByStr20_45_1398", 1 + %"$list_1401" = load %TName_List_ByStr20*, %TName_List_ByStr20** %list, align 8 + %"$$listMemByStr20_45_call_1402" = call %TName_Bool* %"$$listMemByStr20_45_fptr_1399"(i8* %"$$listMemByStr20_45_envptr_1400", %TName_List_ByStr20* %"$list_1401"), !dbg !543 + store %TName_Bool* %"$$listMemByStr20_45_call_1402", %TName_Bool** %"$listMemByStr20_46", align 8, !dbg !543 + %"$$listMemByStr20_46_1403" = load %TName_Bool*, %TName_Bool** %"$listMemByStr20_46", align 8 + store %TName_Bool* %"$$listMemByStr20_46_1403", %TName_Bool** %"$retval_414", align 8, !dbg !543 + %"$$retval_414_1404" = load %TName_Bool*, %TName_Bool** %"$retval_414", align 8 + ret %TName_Bool* %"$$retval_414_1404" +} + +define internal { %TName_Bool* (i8*, [20 x i8]*)*, i8* } @"$fundef_411"(%"$$fundef_411_env_635"* %0, %TName_List_ByStr20* %1) !dbg !545 { +entry: + %"$list_1359" = alloca %TName_List_ByStr20*, align 8 + store %TName_List_ByStr20* %1, %TName_List_ByStr20** %"$list_1359", align 8 + call void @llvm.dbg.declare(metadata %TName_List_ByStr20** %"$list_1359", metadata !546, metadata !DIExpression()), !dbg !547 + %"$$fundef_411_env_ListUtils.list_mem_1340" = getelementptr inbounds %"$$fundef_411_env_635", %"$$fundef_411_env_635"* %0, i32 0, i32 0 + %"$ListUtils.list_mem_envload_1341" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_411_env_ListUtils.list_mem_1340", align 8 %ListUtils.list_mem = alloca { i8*, i8* }*, align 8 - store { i8*, i8* }* %"$ListUtils.list_mem_envload_1326", { i8*, i8* }** %ListUtils.list_mem, align 8 - %"$$fundef_411_env_ud-registry.eqByStr20_1327" = getelementptr inbounds %"$$fundef_411_env_635", %"$$fundef_411_env_635"* %0, i32 0, i32 1 - %"$ud-registry.eqByStr20_envload_1328" = 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_411_env_ud-registry.eqByStr20_1327", align 8 + store { i8*, i8* }* %"$ListUtils.list_mem_envload_1341", { i8*, i8* }** %ListUtils.list_mem, align 8 + %"$$fundef_411_env_ud-registry.eqByStr20_1342" = getelementptr inbounds %"$$fundef_411_env_635", %"$$fundef_411_env_635"* %0, i32 0, i32 1 + %"$ud-registry.eqByStr20_envload_1343" = 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_411_env_ud-registry.eqByStr20_1342", 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_1328", { { %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_envload_1343", { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* }* %ud-registry.eqByStr20, align 8 %"$retval_412" = 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" - -"$out_of_gas_1331": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_1332" - -"$have_gas_1332": ; preds = %"$out_of_gas_1331", %entry - %"$consume_1333" = sub i64 %"$gasrem_1329", 1 - store i64 %"$consume_1333", i64* @_gasrem, align 8 - %"$$fundef_413_envp_1334_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_413_envp_1334_salloc" = call i8* @_salloc(i8* %"$$fundef_413_envp_1334_load", i64 32) - %"$$fundef_413_envp_1334" = bitcast i8* %"$$fundef_413_envp_1334_salloc" to %"$$fundef_413_env_634"* - %"$$fundef_413_env_voidp_1336" = bitcast %"$$fundef_413_env_634"* %"$$fundef_413_envp_1334" to i8* - %"$$fundef_413_cloval_1337" = insertvalue { %TName_Bool* (i8*, [20 x i8]*)*, i8* } { %TName_Bool* (i8*, [20 x i8]*)* bitcast (%TName_Bool* (%"$$fundef_413_env_634"*, [20 x i8]*)* @"$fundef_413" to %TName_Bool* (i8*, [20 x i8]*)*), i8* undef }, i8* %"$$fundef_413_env_voidp_1336", 1 - %"$$fundef_413_env_ListUtils.list_mem_1338" = getelementptr inbounds %"$$fundef_413_env_634", %"$$fundef_413_env_634"* %"$$fundef_413_envp_1334", i32 0, i32 0 - %"$ListUtils.list_mem_1339" = load { i8*, i8* }*, { i8*, i8* }** %ListUtils.list_mem, align 8 - store { i8*, i8* }* %"$ListUtils.list_mem_1339", { i8*, i8* }** %"$$fundef_413_env_ListUtils.list_mem_1338", align 8 - %"$$fundef_413_env_list_1340" = getelementptr inbounds %"$$fundef_413_env_634", %"$$fundef_413_env_634"* %"$$fundef_413_envp_1334", i32 0, i32 1 - store %TName_List_ByStr20* %1, %TName_List_ByStr20** %"$$fundef_413_env_list_1340", align 8 - %"$$fundef_413_env_ud-registry.eqByStr20_1341" = getelementptr inbounds %"$$fundef_413_env_634", %"$$fundef_413_env_634"* %"$$fundef_413_envp_1334", i32 0, i32 2 - %"$ud-registry.eqByStr20_1342" = 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_1342", { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* }* %"$$fundef_413_env_ud-registry.eqByStr20_1341", align 8 - store { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$$fundef_413_cloval_1337", { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %"$retval_412", align 8, !dbg !312 - %"$$retval_412_1343" = load { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %"$retval_412", align 8 - ret { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$$retval_412_1343" -} - -define internal { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } @"$fundef_409"(%"$$fundef_409_env_636"* %0, [20 x i8]* %1) !dbg !313 { -entry: + %"$gasrem_1344" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1345" = icmp ugt i64 1, %"$gasrem_1344" + br i1 %"$gascmp_1345", label %"$out_of_gas_1346", label %"$have_gas_1347" + +"$out_of_gas_1346": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_1347" + +"$have_gas_1347": ; preds = %"$out_of_gas_1346", %entry + %"$consume_1348" = sub i64 %"$gasrem_1344", 1 + store i64 %"$consume_1348", i64* @_gasrem, align 8 + %"$$fundef_413_envp_1349_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_413_envp_1349_salloc" = call i8* @_salloc(i8* %"$$fundef_413_envp_1349_load", i64 32) + %"$$fundef_413_envp_1349" = bitcast i8* %"$$fundef_413_envp_1349_salloc" to %"$$fundef_413_env_634"* + %"$$fundef_413_env_voidp_1351" = bitcast %"$$fundef_413_env_634"* %"$$fundef_413_envp_1349" to i8* + %"$$fundef_413_cloval_1352" = insertvalue { %TName_Bool* (i8*, [20 x i8]*)*, i8* } { %TName_Bool* (i8*, [20 x i8]*)* bitcast (%TName_Bool* (%"$$fundef_413_env_634"*, [20 x i8]*)* @"$fundef_413" to %TName_Bool* (i8*, [20 x i8]*)*), i8* undef }, i8* %"$$fundef_413_env_voidp_1351", 1 + %"$$fundef_413_env_ListUtils.list_mem_1353" = getelementptr inbounds %"$$fundef_413_env_634", %"$$fundef_413_env_634"* %"$$fundef_413_envp_1349", i32 0, i32 0 + %"$ListUtils.list_mem_1354" = load { i8*, i8* }*, { i8*, i8* }** %ListUtils.list_mem, align 8 + store { i8*, i8* }* %"$ListUtils.list_mem_1354", { i8*, i8* }** %"$$fundef_413_env_ListUtils.list_mem_1353", align 8 + %"$$fundef_413_env_list_1355" = getelementptr inbounds %"$$fundef_413_env_634", %"$$fundef_413_env_634"* %"$$fundef_413_envp_1349", i32 0, i32 1 + store %TName_List_ByStr20* %1, %TName_List_ByStr20** %"$$fundef_413_env_list_1355", align 8 + %"$$fundef_413_env_ud-registry.eqByStr20_1356" = getelementptr inbounds %"$$fundef_413_env_634", %"$$fundef_413_env_634"* %"$$fundef_413_envp_1349", i32 0, i32 2 + %"$ud-registry.eqByStr20_1357" = 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_1357", { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* }* %"$$fundef_413_env_ud-registry.eqByStr20_1356", align 8 + store { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$$fundef_413_cloval_1352", { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %"$retval_412", align 8, !dbg !548 + %"$$retval_412_1358" = load { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %"$retval_412", align 8 + ret { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$$retval_412_1358" +} + +define internal { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } @"$fundef_409"(%"$$fundef_409_env_636"* %0, [20 x i8]* %1) !dbg !549 { +entry: + %"$m_1339" = alloca [20 x i8]*, align 8 + store [20 x i8]* %1, [20 x i8]** %"$m_1339", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$m_1339", metadata !550, metadata !DIExpression()), !dbg !551 %m = load [20 x i8], [20 x i8]* %1, align 1 - %"$$fundef_409_env_ListUtils.list_exists_1276" = getelementptr inbounds %"$$fundef_409_env_636", %"$$fundef_409_env_636"* %0, i32 0, i32 0 - %"$ListUtils.list_exists_envload_1277" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_409_env_ListUtils.list_exists_1276", align 8 + %"$$fundef_409_env_ListUtils.list_exists_1290" = getelementptr inbounds %"$$fundef_409_env_636", %"$$fundef_409_env_636"* %0, i32 0, i32 0 + %"$ListUtils.list_exists_envload_1291" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_409_env_ListUtils.list_exists_1290", align 8 %ListUtils.list_exists = alloca { i8*, i8* }*, align 8 - store { i8*, i8* }* %"$ListUtils.list_exists_envload_1277", { i8*, i8* }** %ListUtils.list_exists, align 8 - %"$$fundef_409_env_f_1278" = getelementptr inbounds %"$$fundef_409_env_636", %"$$fundef_409_env_636"* %0, i32 0, i32 1 - %"$f_envload_1279" = 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_409_env_f_1278", align 8 + store { i8*, i8* }* %"$ListUtils.list_exists_envload_1291", { i8*, i8* }** %ListUtils.list_exists, align 8 + %"$$fundef_409_env_f_1292" = getelementptr inbounds %"$$fundef_409_env_636", %"$$fundef_409_env_636"* %0, i32 0, i32 1 + %"$f_envload_1293" = 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_409_env_f_1292", 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_1279", { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* }* %f, align 8 + store { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$f_envload_1293", { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* }* %f, align 8 %"$retval_410" = alloca { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* }, 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" + %"$gasrem_1294" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1295" = icmp ugt i64 1, %"$gasrem_1294" + br i1 %"$gascmp_1295", label %"$out_of_gas_1296", label %"$have_gas_1297" -"$out_of_gas_1282": ; preds = %entry +"$out_of_gas_1296": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_1283" + br label %"$have_gas_1297" -"$have_gas_1283": ; preds = %"$out_of_gas_1282", %entry - %"$consume_1284" = sub i64 %"$gasrem_1280", 1 - store i64 %"$consume_1284", i64* @_gasrem, align 8 +"$have_gas_1297": ; preds = %"$out_of_gas_1296", %entry + %"$consume_1298" = sub i64 %"$gasrem_1294", 1 + store i64 %"$consume_1298", i64* @_gasrem, align 8 %ex_pred = alloca { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, align 8 - %"$gasrem_1285" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1286" = icmp ugt i64 1, %"$gasrem_1285" - br i1 %"$gascmp_1286", label %"$out_of_gas_1287", label %"$have_gas_1288" + %"$gasrem_1299" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1300" = icmp ugt i64 1, %"$gasrem_1299" + br i1 %"$gascmp_1300", label %"$out_of_gas_1301", label %"$have_gas_1302" -"$out_of_gas_1287": ; preds = %"$have_gas_1283" +"$out_of_gas_1301": ; preds = %"$have_gas_1297" call void @_out_of_gas() - br label %"$have_gas_1288" + br label %"$have_gas_1302" -"$have_gas_1288": ; preds = %"$out_of_gas_1287", %"$have_gas_1283" - %"$consume_1289" = sub i64 %"$gasrem_1285", 1 - store i64 %"$consume_1289", i64* @_gasrem, align 8 +"$have_gas_1302": ; preds = %"$out_of_gas_1301", %"$have_gas_1297" + %"$consume_1303" = sub i64 %"$gasrem_1299", 1 + store i64 %"$consume_1303", i64* @_gasrem, align 8 %"$f_42" = alloca { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, align 8 - %"$f_1290" = 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_1291" = extractvalue { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$f_1290", 0 - %"$f_envptr_1292" = extractvalue { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$f_1290", 1 - %"$f_m_1293" = alloca [20 x i8], align 1 - store [20 x i8] %m, [20 x i8]* %"$f_m_1293", align 1 - %"$f_call_1294" = call { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$f_fptr_1291"(i8* %"$f_envptr_1292", [20 x i8]* %"$f_m_1293"), !dbg !314 - store { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$f_call_1294", { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %"$f_42", align 8, !dbg !314 - %"$$f_42_1295" = load { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %"$f_42", align 8 - store { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$$f_42_1295", { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %ex_pred, align 8, !dbg !314 - %"$gasrem_1296" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1297" = icmp ugt i64 1, %"$gasrem_1296" - br i1 %"$gascmp_1297", label %"$out_of_gas_1298", label %"$have_gas_1299" - -"$out_of_gas_1298": ; preds = %"$have_gas_1288" - call void @_out_of_gas() - br label %"$have_gas_1299" - -"$have_gas_1299": ; preds = %"$out_of_gas_1298", %"$have_gas_1288" - %"$consume_1300" = sub i64 %"$gasrem_1296", 1 - store i64 %"$consume_1300", i64* @_gasrem, align 8 + %"$f_1304" = 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_1305" = extractvalue { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$f_1304", 0 + %"$f_envptr_1306" = extractvalue { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$f_1304", 1 + %"$f_m_1307" = alloca [20 x i8], align 1 + store [20 x i8] %m, [20 x i8]* %"$f_m_1307", align 1 + %"$f_call_1308" = call { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$f_fptr_1305"(i8* %"$f_envptr_1306", [20 x i8]* %"$f_m_1307"), !dbg !552 + store { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$f_call_1308", { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %"$f_42", align 8, !dbg !552 + %"$$f_42_1309" = load { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %"$f_42", align 8 + store { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$$f_42_1309", { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %ex_pred, align 8, !dbg !552 + %"$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_1302" + call void @_out_of_gas() + br label %"$have_gas_1313" + +"$have_gas_1313": ; preds = %"$out_of_gas_1312", %"$have_gas_1302" + %"$consume_1314" = sub i64 %"$gasrem_1310", 1 + store i64 %"$consume_1314", 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_1301" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1302" = icmp ugt i64 1, %"$gasrem_1301" - br i1 %"$gascmp_1302", label %"$out_of_gas_1303", label %"$have_gas_1304" - -"$out_of_gas_1303": ; preds = %"$have_gas_1299" - call void @_out_of_gas() - br label %"$have_gas_1304" - -"$have_gas_1304": ; preds = %"$out_of_gas_1303", %"$have_gas_1299" - %"$consume_1305" = sub i64 %"$gasrem_1301", 1 - store i64 %"$consume_1305", i64* @_gasrem, align 8 - %"$ListUtils.list_exists_1306" = load { i8*, i8* }*, { i8*, i8* }** %ListUtils.list_exists, align 8 - %"$ListUtils.list_exists_1307" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$ListUtils.list_exists_1306", i32 0 - %"$ListUtils.list_exists_1308" = bitcast { i8*, i8* }* %"$ListUtils.list_exists_1307" to { { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*, i8* }* - %"$ListUtils.list_exists_1309" = 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_1308", align 8 - %"$ListUtils.list_exists_fptr_1310" = extractvalue { { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*, i8* } %"$ListUtils.list_exists_1309", 0 - %"$ListUtils.list_exists_envptr_1311" = extractvalue { { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*, i8* } %"$ListUtils.list_exists_1309", 1 - %"$ListUtils.list_exists_call_1312" = call { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } %"$ListUtils.list_exists_fptr_1310"(i8* %"$ListUtils.list_exists_envptr_1311"), !dbg !315 - store { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } %"$ListUtils.list_exists_call_1312", { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* }* %ex, align 8, !dbg !316 - %"$gasrem_1313" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1314" = icmp ugt i64 1, %"$gasrem_1313" - br i1 %"$gascmp_1314", label %"$out_of_gas_1315", label %"$have_gas_1316" - -"$out_of_gas_1315": ; preds = %"$have_gas_1304" - call void @_out_of_gas() - br label %"$have_gas_1316" - -"$have_gas_1316": ; preds = %"$out_of_gas_1315", %"$have_gas_1304" - %"$consume_1317" = sub i64 %"$gasrem_1313", 1 - store i64 %"$consume_1317", i64* @_gasrem, 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 + %"$ListUtils.list_exists_1320" = load { i8*, i8* }*, { i8*, i8* }** %ListUtils.list_exists, align 8 + %"$ListUtils.list_exists_1321" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$ListUtils.list_exists_1320", i32 0 + %"$ListUtils.list_exists_1322" = bitcast { i8*, i8* }* %"$ListUtils.list_exists_1321" to { { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*, i8* }* + %"$ListUtils.list_exists_1323" = 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_1322", align 8 + %"$ListUtils.list_exists_fptr_1324" = extractvalue { { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*, i8* } %"$ListUtils.list_exists_1323", 0 + %"$ListUtils.list_exists_envptr_1325" = extractvalue { { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*, i8* } %"$ListUtils.list_exists_1323", 1 + %"$ListUtils.list_exists_call_1326" = call { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } %"$ListUtils.list_exists_fptr_1324"(i8* %"$ListUtils.list_exists_envptr_1325"), !dbg !553 + store { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } %"$ListUtils.list_exists_call_1326", { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* }* %ex, align 8, !dbg !554 + %"$gasrem_1327" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1328" = icmp ugt i64 1, %"$gasrem_1327" + br i1 %"$gascmp_1328", label %"$out_of_gas_1329", label %"$have_gas_1330" + +"$out_of_gas_1329": ; preds = %"$have_gas_1318" + call void @_out_of_gas() + br label %"$have_gas_1330" + +"$have_gas_1330": ; preds = %"$out_of_gas_1329", %"$have_gas_1318" + %"$consume_1331" = sub i64 %"$gasrem_1327", 1 + store i64 %"$consume_1331", i64* @_gasrem, align 8 %"$ex_43" = alloca { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* }, align 8 - %"$ex_1318" = 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_1319" = extractvalue { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } %"$ex_1318", 0 - %"$ex_envptr_1320" = extractvalue { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } %"$ex_1318", 1 - %"$ex_pred_1321" = load { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %ex_pred, align 8 - %"$ex_call_1322" = call { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } %"$ex_fptr_1319"(i8* %"$ex_envptr_1320", { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$ex_pred_1321"), !dbg !317 - store { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } %"$ex_call_1322", { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* }* %"$ex_43", align 8, !dbg !317 - %"$$ex_43_1323" = load { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* }, { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* }* %"$ex_43", align 8 - store { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } %"$$ex_43_1323", { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* }* %"$retval_410", align 8, !dbg !317 - %"$$retval_410_1324" = load { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* }, { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* }* %"$retval_410", align 8 - ret { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } %"$$retval_410_1324" -} - -define internal { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } @"$fundef_407"(%"$$fundef_407_env_637"* %0, { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } %1) !dbg !318 { -entry: - %"$$fundef_407_env_ListUtils.list_exists_1261" = getelementptr inbounds %"$$fundef_407_env_637", %"$$fundef_407_env_637"* %0, i32 0, i32 0 - %"$ListUtils.list_exists_envload_1262" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_407_env_ListUtils.list_exists_1261", align 8 + %"$ex_1332" = 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_1333" = extractvalue { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } %"$ex_1332", 0 + %"$ex_envptr_1334" = extractvalue { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } %"$ex_1332", 1 + %"$ex_pred_1335" = load { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %ex_pred, align 8 + %"$ex_call_1336" = call { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } %"$ex_fptr_1333"(i8* %"$ex_envptr_1334", { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$ex_pred_1335"), !dbg !555 + store { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } %"$ex_call_1336", { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* }* %"$ex_43", align 8, !dbg !555 + %"$$ex_43_1337" = load { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* }, { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* }* %"$ex_43", align 8 + store { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } %"$$ex_43_1337", { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* }* %"$retval_410", align 8, !dbg !555 + %"$$retval_410_1338" = load { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* }, { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* }* %"$retval_410", align 8 + ret { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } %"$$retval_410_1338" +} + +define internal { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } @"$fundef_407"(%"$$fundef_407_env_637"* %0, { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } %1) !dbg !556 { +entry: + %"$$fundef_407_env_ListUtils.list_exists_1275" = getelementptr inbounds %"$$fundef_407_env_637", %"$$fundef_407_env_637"* %0, i32 0, i32 0 + %"$ListUtils.list_exists_envload_1276" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_407_env_ListUtils.list_exists_1275", align 8 %ListUtils.list_exists = alloca { i8*, i8* }*, align 8 - store { i8*, i8* }* %"$ListUtils.list_exists_envload_1262", { i8*, i8* }** %ListUtils.list_exists, align 8 + store { i8*, i8* }* %"$ListUtils.list_exists_envload_1276", { i8*, i8* }** %ListUtils.list_exists, align 8 %"$retval_408" = alloca { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* }, align 8 + %"$gasrem_1277" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1278" = icmp ugt i64 1, %"$gasrem_1277" + br i1 %"$gascmp_1278", label %"$out_of_gas_1279", label %"$have_gas_1280" + +"$out_of_gas_1279": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_1280" + +"$have_gas_1280": ; preds = %"$out_of_gas_1279", %entry + %"$consume_1281" = sub i64 %"$gasrem_1277", 1 + store i64 %"$consume_1281", i64* @_gasrem, align 8 + %"$$fundef_409_envp_1282_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_409_envp_1282_salloc" = call i8* @_salloc(i8* %"$$fundef_409_envp_1282_load", i64 24) + %"$$fundef_409_envp_1282" = bitcast i8* %"$$fundef_409_envp_1282_salloc" to %"$$fundef_409_env_636"* + %"$$fundef_409_env_voidp_1284" = bitcast %"$$fundef_409_env_636"* %"$$fundef_409_envp_1282" to i8* + %"$$fundef_409_cloval_1285" = 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_409_env_636"*, [20 x i8]*)* @"$fundef_409" to { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*), i8* undef }, i8* %"$$fundef_409_env_voidp_1284", 1 + %"$$fundef_409_env_ListUtils.list_exists_1286" = getelementptr inbounds %"$$fundef_409_env_636", %"$$fundef_409_env_636"* %"$$fundef_409_envp_1282", i32 0, i32 0 + %"$ListUtils.list_exists_1287" = load { i8*, i8* }*, { i8*, i8* }** %ListUtils.list_exists, align 8 + store { i8*, i8* }* %"$ListUtils.list_exists_1287", { i8*, i8* }** %"$$fundef_409_env_ListUtils.list_exists_1286", align 8 + %"$$fundef_409_env_f_1288" = getelementptr inbounds %"$$fundef_409_env_636", %"$$fundef_409_env_636"* %"$$fundef_409_envp_1282", 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_409_env_f_1288", align 8 + store { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$$fundef_409_cloval_1285", { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* }* %"$retval_408", align 8, !dbg !557 + %"$$retval_408_1289" = 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_408", align 8 + ret { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$$retval_408_1289" +} + +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_405"(%"$$fundef_405_env_638"* %0) !dbg !558 { +entry: + %"$$fundef_405_env_ListUtils.list_exists_1261" = getelementptr inbounds %"$$fundef_405_env_638", %"$$fundef_405_env_638"* %0, i32 0, i32 0 + %"$ListUtils.list_exists_envload_1262" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_405_env_ListUtils.list_exists_1261", align 8 + %ListUtils.list_exists = alloca { i8*, i8* }*, align 8 + store { i8*, i8* }* %"$ListUtils.list_exists_envload_1262", { i8*, i8* }** %ListUtils.list_exists, align 8 + %"$retval_406" = 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_1263" = load i64, i64* @_gasrem, align 8 %"$gascmp_1264" = icmp ugt i64 1, %"$gasrem_1263" br i1 %"$gascmp_1264", label %"$out_of_gas_1265", label %"$have_gas_1266" @@ -5895,1293 +6180,1319 @@ entry: "$have_gas_1266": ; preds = %"$out_of_gas_1265", %entry %"$consume_1267" = sub i64 %"$gasrem_1263", 1 store i64 %"$consume_1267", i64* @_gasrem, align 8 - %"$$fundef_409_envp_1268_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_409_envp_1268_salloc" = call i8* @_salloc(i8* %"$$fundef_409_envp_1268_load", i64 24) - %"$$fundef_409_envp_1268" = bitcast i8* %"$$fundef_409_envp_1268_salloc" to %"$$fundef_409_env_636"* - %"$$fundef_409_env_voidp_1270" = bitcast %"$$fundef_409_env_636"* %"$$fundef_409_envp_1268" to i8* - %"$$fundef_409_cloval_1271" = 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_409_env_636"*, [20 x i8]*)* @"$fundef_409" to { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*), i8* undef }, i8* %"$$fundef_409_env_voidp_1270", 1 - %"$$fundef_409_env_ListUtils.list_exists_1272" = getelementptr inbounds %"$$fundef_409_env_636", %"$$fundef_409_env_636"* %"$$fundef_409_envp_1268", i32 0, i32 0 + %"$$fundef_407_envp_1268_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_407_envp_1268_salloc" = call i8* @_salloc(i8* %"$$fundef_407_envp_1268_load", i64 8) + %"$$fundef_407_envp_1268" = bitcast i8* %"$$fundef_407_envp_1268_salloc" to %"$$fundef_407_env_637"* + %"$$fundef_407_env_voidp_1270" = bitcast %"$$fundef_407_env_637"* %"$$fundef_407_envp_1268" to i8* + %"$$fundef_407_cloval_1271" = 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_407_env_637"*, { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* })* @"$fundef_407" 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_407_env_voidp_1270", 1 + %"$$fundef_407_env_ListUtils.list_exists_1272" = getelementptr inbounds %"$$fundef_407_env_637", %"$$fundef_407_env_637"* %"$$fundef_407_envp_1268", i32 0, i32 0 %"$ListUtils.list_exists_1273" = load { i8*, i8* }*, { i8*, i8* }** %ListUtils.list_exists, align 8 - store { i8*, i8* }* %"$ListUtils.list_exists_1273", { i8*, i8* }** %"$$fundef_409_env_ListUtils.list_exists_1272", align 8 - %"$$fundef_409_env_f_1274" = getelementptr inbounds %"$$fundef_409_env_636", %"$$fundef_409_env_636"* %"$$fundef_409_envp_1268", 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_409_env_f_1274", align 8 - store { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$$fundef_409_cloval_1271", { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* }* %"$retval_408", align 8, !dbg !319 - %"$$retval_408_1275" = 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_408", align 8 - ret { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$$retval_408_1275" + store { i8*, i8* }* %"$ListUtils.list_exists_1273", { i8*, i8* }** %"$$fundef_407_env_ListUtils.list_exists_1272", 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_407_cloval_1271", { { { %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_406", align 8, !dbg !559 + %"$$retval_406_1274" = 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_406", 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_406_1274" } -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_405"(%"$$fundef_405_env_638"* %0) !dbg !320 { +define internal %TName_Bool* @"$fundef_403"(%"$$fundef_403_env_639"* %0, %TName_List_ByStr20* %1) !dbg !560 { entry: - %"$$fundef_405_env_ListUtils.list_exists_1247" = getelementptr inbounds %"$$fundef_405_env_638", %"$$fundef_405_env_638"* %0, i32 0, i32 0 - %"$ListUtils.list_exists_envload_1248" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_405_env_ListUtils.list_exists_1247", align 8 - %ListUtils.list_exists = alloca { i8*, i8* }*, align 8 - store { i8*, i8* }* %"$ListUtils.list_exists_envload_1248", { i8*, i8* }** %ListUtils.list_exists, align 8 - %"$retval_406" = 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_1249" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1250" = icmp ugt i64 1, %"$gasrem_1249" - br i1 %"$gascmp_1250", label %"$out_of_gas_1251", label %"$have_gas_1252" - -"$out_of_gas_1251": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_1252" - -"$have_gas_1252": ; preds = %"$out_of_gas_1251", %entry - %"$consume_1253" = sub i64 %"$gasrem_1249", 1 - store i64 %"$consume_1253", i64* @_gasrem, align 8 - %"$$fundef_407_envp_1254_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_407_envp_1254_salloc" = call i8* @_salloc(i8* %"$$fundef_407_envp_1254_load", i64 8) - %"$$fundef_407_envp_1254" = bitcast i8* %"$$fundef_407_envp_1254_salloc" to %"$$fundef_407_env_637"* - %"$$fundef_407_env_voidp_1256" = bitcast %"$$fundef_407_env_637"* %"$$fundef_407_envp_1254" to i8* - %"$$fundef_407_cloval_1257" = 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_407_env_637"*, { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* })* @"$fundef_407" 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_407_env_voidp_1256", 1 - %"$$fundef_407_env_ListUtils.list_exists_1258" = getelementptr inbounds %"$$fundef_407_env_637", %"$$fundef_407_env_637"* %"$$fundef_407_envp_1254", i32 0, i32 0 - %"$ListUtils.list_exists_1259" = load { i8*, i8* }*, { i8*, i8* }** %ListUtils.list_exists, align 8 - store { i8*, i8* }* %"$ListUtils.list_exists_1259", { i8*, i8* }** %"$$fundef_407_env_ListUtils.list_exists_1258", 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_407_cloval_1257", { { { %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_406", align 8, !dbg !321 - %"$$retval_406_1260" = 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_406", 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_406_1260" -} - -define internal %TName_Bool* @"$fundef_403"(%"$$fundef_403_env_639"* %0, %TName_List_ByStr20* %1) !dbg !322 { -entry: - %"$$fundef_403_env_ListUtils.list_find_1173" = getelementptr inbounds %"$$fundef_403_env_639", %"$$fundef_403_env_639"* %0, i32 0, i32 0 - %"$ListUtils.list_find_envload_1174" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_403_env_ListUtils.list_find_1173", align 8 + %"$ls_1260" = alloca %TName_List_ByStr20*, align 8 + store %TName_List_ByStr20* %1, %TName_List_ByStr20** %"$ls_1260", align 8 + call void @llvm.dbg.declare(metadata %TName_List_ByStr20** %"$ls_1260", metadata !561, metadata !DIExpression()), !dbg !562 + %"$$fundef_403_env_ListUtils.list_find_1186" = getelementptr inbounds %"$$fundef_403_env_639", %"$$fundef_403_env_639"* %0, i32 0, i32 0 + %"$ListUtils.list_find_envload_1187" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_403_env_ListUtils.list_find_1186", align 8 %ListUtils.list_find = alloca { i8*, i8* }*, align 8 - store { i8*, i8* }* %"$ListUtils.list_find_envload_1174", { i8*, i8* }** %ListUtils.list_find, align 8 - %"$$fundef_403_env_p_1175" = getelementptr inbounds %"$$fundef_403_env_639", %"$$fundef_403_env_639"* %0, i32 0, i32 1 - %"$p_envload_1176" = load { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %"$$fundef_403_env_p_1175", align 8 + store { i8*, i8* }* %"$ListUtils.list_find_envload_1187", { i8*, i8* }** %ListUtils.list_find, align 8 + %"$$fundef_403_env_p_1188" = getelementptr inbounds %"$$fundef_403_env_639", %"$$fundef_403_env_639"* %0, i32 0, i32 1 + %"$p_envload_1189" = load { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %"$$fundef_403_env_p_1188", align 8 %p = alloca { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, align 8 - store { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$p_envload_1176", { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %p, align 8 + store { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$p_envload_1189", { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %p, align 8 %"$retval_404" = alloca %TName_Bool*, align 8 - %"$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" + call void @llvm.dbg.declare(metadata %TName_Bool** %"$retval_404", metadata !563, metadata !DIExpression()), !dbg !564 + %"$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_1179": ; preds = %entry +"$out_of_gas_1192": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_1180" + br label %"$have_gas_1193" -"$have_gas_1180": ; preds = %"$out_of_gas_1179", %entry - %"$consume_1181" = sub i64 %"$gasrem_1177", 1 - store i64 %"$consume_1181", i64* @_gasrem, align 8 +"$have_gas_1193": ; preds = %"$out_of_gas_1192", %entry + %"$consume_1194" = sub i64 %"$gasrem_1190", 1 + store i64 %"$consume_1194", 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_1182" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1183" = icmp ugt i64 1, %"$gasrem_1182" - br i1 %"$gascmp_1183", label %"$out_of_gas_1184", label %"$have_gas_1185" - -"$out_of_gas_1184": ; preds = %"$have_gas_1180" - call void @_out_of_gas() - br label %"$have_gas_1185" - -"$have_gas_1185": ; preds = %"$out_of_gas_1184", %"$have_gas_1180" - %"$consume_1186" = sub i64 %"$gasrem_1182", 1 - store i64 %"$consume_1186", i64* @_gasrem, align 8 - %"$ListUtils.list_find_1187" = load { i8*, i8* }*, { i8*, i8* }** %ListUtils.list_find, align 8 - %"$ListUtils.list_find_1188" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$ListUtils.list_find_1187", i32 0 - %"$ListUtils.list_find_1189" = bitcast { i8*, i8* }* %"$ListUtils.list_find_1188" to { { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*, i8* }* - %"$ListUtils.list_find_1190" = 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_1189", align 8 - %"$ListUtils.list_find_fptr_1191" = extractvalue { { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*, i8* } %"$ListUtils.list_find_1190", 0 - %"$ListUtils.list_find_envptr_1192" = extractvalue { { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*, i8* } %"$ListUtils.list_find_1190", 1 - %"$ListUtils.list_find_call_1193" = call { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } %"$ListUtils.list_find_fptr_1191"(i8* %"$ListUtils.list_find_envptr_1192"), !dbg !323 - store { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } %"$ListUtils.list_find_call_1193", { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* }* %find, align 8, !dbg !324 - %"$gasrem_1194" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1195" = icmp ugt i64 1, %"$gasrem_1194" - br i1 %"$gascmp_1195", label %"$out_of_gas_1196", label %"$have_gas_1197" - -"$out_of_gas_1196": ; preds = %"$have_gas_1185" - call void @_out_of_gas() - br label %"$have_gas_1197" - -"$have_gas_1197": ; preds = %"$out_of_gas_1196", %"$have_gas_1185" - %"$consume_1198" = sub i64 %"$gasrem_1194", 1 - store i64 %"$consume_1198", i64* @_gasrem, align 8 + %"$gasrem_1195" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1196" = icmp ugt i64 1, %"$gasrem_1195" + br i1 %"$gascmp_1196", label %"$out_of_gas_1197", label %"$have_gas_1198" + +"$out_of_gas_1197": ; preds = %"$have_gas_1193" + call void @_out_of_gas() + br label %"$have_gas_1198" + +"$have_gas_1198": ; preds = %"$out_of_gas_1197", %"$have_gas_1193" + %"$consume_1199" = sub i64 %"$gasrem_1195", 1 + store i64 %"$consume_1199", i64* @_gasrem, align 8 + %"$ListUtils.list_find_1200" = load { i8*, i8* }*, { i8*, i8* }** %ListUtils.list_find, align 8 + %"$ListUtils.list_find_1201" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$ListUtils.list_find_1200", i32 0 + %"$ListUtils.list_find_1202" = bitcast { i8*, i8* }* %"$ListUtils.list_find_1201" to { { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*, i8* }* + %"$ListUtils.list_find_1203" = 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_1202", align 8 + %"$ListUtils.list_find_fptr_1204" = extractvalue { { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*, i8* } %"$ListUtils.list_find_1203", 0 + %"$ListUtils.list_find_envptr_1205" = extractvalue { { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*, i8* } %"$ListUtils.list_find_1203", 1 + %"$ListUtils.list_find_call_1206" = call { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } %"$ListUtils.list_find_fptr_1204"(i8* %"$ListUtils.list_find_envptr_1205"), !dbg !565 + store { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } %"$ListUtils.list_find_call_1206", { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* }* %find, align 8, !dbg !566 + %"$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_1209": ; preds = %"$have_gas_1198" + call void @_out_of_gas() + br label %"$have_gas_1210" + +"$have_gas_1210": ; preds = %"$out_of_gas_1209", %"$have_gas_1198" + %"$consume_1211" = sub i64 %"$gasrem_1207", 1 + store i64 %"$consume_1211", i64* @_gasrem, align 8 %search = alloca %TName_Option_ByStr20*, align 8 - %"$gasrem_1199" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1200" = icmp ugt i64 1, %"$gasrem_1199" - br i1 %"$gascmp_1200", label %"$out_of_gas_1201", label %"$have_gas_1202" + call void @llvm.dbg.declare(metadata %TName_Option_ByStr20** %search, metadata !567, metadata !DIExpression()), !dbg !568 + %"$gasrem_1212" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1213" = icmp ugt i64 1, %"$gasrem_1212" + br i1 %"$gascmp_1213", label %"$out_of_gas_1214", label %"$have_gas_1215" -"$out_of_gas_1201": ; preds = %"$have_gas_1197" +"$out_of_gas_1214": ; preds = %"$have_gas_1210" call void @_out_of_gas() - br label %"$have_gas_1202" + br label %"$have_gas_1215" -"$have_gas_1202": ; preds = %"$out_of_gas_1201", %"$have_gas_1197" - %"$consume_1203" = sub i64 %"$gasrem_1199", 1 - store i64 %"$consume_1203", i64* @_gasrem, align 8 +"$have_gas_1215": ; preds = %"$out_of_gas_1214", %"$have_gas_1210" + %"$consume_1216" = sub i64 %"$gasrem_1212", 1 + store i64 %"$consume_1216", i64* @_gasrem, align 8 %"$find_40" = alloca { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }, align 8 - %"$find_1204" = 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_1205" = extractvalue { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } %"$find_1204", 0 - %"$find_envptr_1206" = extractvalue { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } %"$find_1204", 1 - %"$p_1207" = load { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %p, align 8 - %"$find_call_1208" = call { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$find_fptr_1205"(i8* %"$find_envptr_1206", { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$p_1207"), !dbg !325 - store { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$find_call_1208", { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }* %"$find_40", align 8, !dbg !325 + %"$find_1217" = 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_1218" = extractvalue { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } %"$find_1217", 0 + %"$find_envptr_1219" = extractvalue { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } %"$find_1217", 1 + %"$p_1220" = load { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %p, align 8 + %"$find_call_1221" = call { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$find_fptr_1218"(i8* %"$find_envptr_1219", { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$p_1220"), !dbg !569 + store { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$find_call_1221", { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }* %"$find_40", align 8, !dbg !569 %"$find_41" = alloca %TName_Option_ByStr20*, align 8 - %"$$find_40_1209" = load { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }, { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }* %"$find_40", align 8 - %"$$find_40_fptr_1210" = extractvalue { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$$find_40_1209", 0 - %"$$find_40_envptr_1211" = extractvalue { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$$find_40_1209", 1 - %"$$find_40_call_1212" = call %TName_Option_ByStr20* %"$$find_40_fptr_1210"(i8* %"$$find_40_envptr_1211", %TName_List_ByStr20* %1), !dbg !325 - store %TName_Option_ByStr20* %"$$find_40_call_1212", %TName_Option_ByStr20** %"$find_41", align 8, !dbg !325 - %"$$find_41_1213" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %"$find_41", align 8 - store %TName_Option_ByStr20* %"$$find_41_1213", %TName_Option_ByStr20** %search, align 8, !dbg !325 - %"$gasrem_1214" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1215" = icmp ugt i64 2, %"$gasrem_1214" - br i1 %"$gascmp_1215", label %"$out_of_gas_1216", label %"$have_gas_1217" - -"$out_of_gas_1216": ; preds = %"$have_gas_1202" - call void @_out_of_gas() - br label %"$have_gas_1217" - -"$have_gas_1217": ; preds = %"$out_of_gas_1216", %"$have_gas_1202" - %"$consume_1218" = sub i64 %"$gasrem_1214", 2 - store i64 %"$consume_1218", i64* @_gasrem, align 8 - %"$search_1220" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %search, align 8 - %"$search_tag_1221" = getelementptr inbounds %TName_Option_ByStr20, %TName_Option_ByStr20* %"$search_1220", i32 0, i32 0 - %"$search_tag_1222" = load i8, i8* %"$search_tag_1221", align 1 - switch i8 %"$search_tag_1222", label %"$empty_default_1223" [ - i8 0, label %"$Some_1224" - i8 1, label %"$None_1236" - ], !dbg !326 - -"$Some_1224": ; preds = %"$have_gas_1217" - %"$search_1225" = bitcast %TName_Option_ByStr20* %"$search_1220" to %CName_Some_ByStr20* - %"$$search_22_gep_1226" = getelementptr inbounds %CName_Some_ByStr20, %CName_Some_ByStr20* %"$search_1225", i32 0, i32 1 - %"$$search_22_load_1227" = load [20 x i8], [20 x i8]* %"$$search_22_gep_1226", align 1 + call void @llvm.dbg.declare(metadata %TName_Option_ByStr20** %"$find_41", metadata !570, metadata !DIExpression()), !dbg !569 + %"$$find_40_1222" = load { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }, { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }* %"$find_40", align 8 + %"$$find_40_fptr_1223" = extractvalue { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$$find_40_1222", 0 + %"$$find_40_envptr_1224" = extractvalue { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$$find_40_1222", 1 + %"$$find_40_call_1225" = call %TName_Option_ByStr20* %"$$find_40_fptr_1223"(i8* %"$$find_40_envptr_1224", %TName_List_ByStr20* %1), !dbg !569 + store %TName_Option_ByStr20* %"$$find_40_call_1225", %TName_Option_ByStr20** %"$find_41", align 8, !dbg !569 + %"$$find_41_1226" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %"$find_41", align 8 + store %TName_Option_ByStr20* %"$$find_41_1226", %TName_Option_ByStr20** %search, align 8, !dbg !569 + %"$gasrem_1227" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1228" = icmp ugt i64 2, %"$gasrem_1227" + br i1 %"$gascmp_1228", label %"$out_of_gas_1229", label %"$have_gas_1230" + +"$out_of_gas_1229": ; preds = %"$have_gas_1215" + call void @_out_of_gas() + br label %"$have_gas_1230" + +"$have_gas_1230": ; preds = %"$out_of_gas_1229", %"$have_gas_1215" + %"$consume_1231" = sub i64 %"$gasrem_1227", 2 + store i64 %"$consume_1231", i64* @_gasrem, align 8 + %"$search_1233" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %search, align 8 + %"$search_tag_1234" = getelementptr inbounds %TName_Option_ByStr20, %TName_Option_ByStr20* %"$search_1233", i32 0, i32 0 + %"$search_tag_1235" = load i8, i8* %"$search_tag_1234", align 1 + switch i8 %"$search_tag_1235", label %"$empty_default_1236" [ + i8 0, label %"$Some_1237" + i8 1, label %"$None_1249" + ], !dbg !571 + +"$Some_1237": ; preds = %"$have_gas_1230" + %"$search_1238" = bitcast %TName_Option_ByStr20* %"$search_1233" to %CName_Some_ByStr20* + %"$$search_22_gep_1239" = getelementptr inbounds %CName_Some_ByStr20, %CName_Some_ByStr20* %"$search_1238", i32 0, i32 1 + %"$$search_22_load_1240" = load [20 x i8], [20 x i8]* %"$$search_22_gep_1239", align 1 %"$search_22" = alloca [20 x i8], align 1 - store [20 x i8] %"$$search_22_load_1227", [20 x i8]* %"$search_22", align 1 - %"$gasrem_1228" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1229" = icmp ugt i64 1, %"$gasrem_1228" - br i1 %"$gascmp_1229", label %"$out_of_gas_1230", label %"$have_gas_1231" - -"$out_of_gas_1230": ; preds = %"$Some_1224" - call void @_out_of_gas() - br label %"$have_gas_1231" - -"$have_gas_1231": ; preds = %"$out_of_gas_1230", %"$Some_1224" - %"$consume_1232" = sub i64 %"$gasrem_1228", 1 - store i64 %"$consume_1232", i64* @_gasrem, align 8 - %"$adtval_1233_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_1233_salloc" = call i8* @_salloc(i8* %"$adtval_1233_load", i64 1) - %"$adtval_1233" = bitcast i8* %"$adtval_1233_salloc" to %CName_True* - %"$adtgep_1234" = getelementptr inbounds %CName_True, %CName_True* %"$adtval_1233", i32 0, i32 0 - store i8 0, i8* %"$adtgep_1234", align 1 - %"$adtptr_1235" = bitcast %CName_True* %"$adtval_1233" to %TName_Bool* - store %TName_Bool* %"$adtptr_1235", %TName_Bool** %"$retval_404", align 8, !dbg !327 - br label %"$matchsucc_1219" - -"$None_1236": ; preds = %"$have_gas_1217" - %"$search_1237" = bitcast %TName_Option_ByStr20* %"$search_1220" to %CName_None_ByStr20* - %"$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 = %"$None_1236" - call void @_out_of_gas() - br label %"$have_gas_1241" - -"$have_gas_1241": ; preds = %"$out_of_gas_1240", %"$None_1236" - %"$consume_1242" = sub i64 %"$gasrem_1238", 1 - store i64 %"$consume_1242", i64* @_gasrem, align 8 - %"$adtval_1243_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_1243_salloc" = call i8* @_salloc(i8* %"$adtval_1243_load", i64 1) - %"$adtval_1243" = bitcast i8* %"$adtval_1243_salloc" to %CName_False* - %"$adtgep_1244" = getelementptr inbounds %CName_False, %CName_False* %"$adtval_1243", i32 0, i32 0 - store i8 1, i8* %"$adtgep_1244", align 1 - %"$adtptr_1245" = bitcast %CName_False* %"$adtval_1243" to %TName_Bool* - store %TName_Bool* %"$adtptr_1245", %TName_Bool** %"$retval_404", align 8, !dbg !330 - br label %"$matchsucc_1219" - -"$empty_default_1223": ; preds = %"$have_gas_1217" - br label %"$matchsucc_1219" - -"$matchsucc_1219": ; preds = %"$have_gas_1241", %"$have_gas_1231", %"$empty_default_1223" - %"$$retval_404_1246" = load %TName_Bool*, %TName_Bool** %"$retval_404", align 8 - ret %TName_Bool* %"$$retval_404_1246" -} - -define internal { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } @"$fundef_401"(%"$$fundef_401_env_640"* %0, { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %1) !dbg !332 { -entry: - %"$$fundef_401_env_ListUtils.list_find_1158" = getelementptr inbounds %"$$fundef_401_env_640", %"$$fundef_401_env_640"* %0, i32 0, i32 0 - %"$ListUtils.list_find_envload_1159" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_401_env_ListUtils.list_find_1158", align 8 + store [20 x i8] %"$$search_22_load_1240", [20 x i8]* %"$search_22", align 1 + %"$gasrem_1241" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1242" = icmp ugt i64 1, %"$gasrem_1241" + br i1 %"$gascmp_1242", label %"$out_of_gas_1243", label %"$have_gas_1244" + +"$out_of_gas_1243": ; preds = %"$Some_1237" + call void @_out_of_gas() + br label %"$have_gas_1244" + +"$have_gas_1244": ; preds = %"$out_of_gas_1243", %"$Some_1237" + %"$consume_1245" = sub i64 %"$gasrem_1241", 1 + store i64 %"$consume_1245", i64* @_gasrem, align 8 + %"$adtval_1246_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_1246_salloc" = call i8* @_salloc(i8* %"$adtval_1246_load", i64 1) + %"$adtval_1246" = bitcast i8* %"$adtval_1246_salloc" to %CName_True* + %"$adtgep_1247" = getelementptr inbounds %CName_True, %CName_True* %"$adtval_1246", i32 0, i32 0 + store i8 0, i8* %"$adtgep_1247", align 1 + %"$adtptr_1248" = bitcast %CName_True* %"$adtval_1246" to %TName_Bool* + store %TName_Bool* %"$adtptr_1248", %TName_Bool** %"$retval_404", align 8, !dbg !572 + br label %"$matchsucc_1232" + +"$None_1249": ; preds = %"$have_gas_1230" + %"$search_1250" = bitcast %TName_Option_ByStr20* %"$search_1233" to %CName_None_ByStr20* + %"$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_1253": ; preds = %"$None_1249" + call void @_out_of_gas() + br label %"$have_gas_1254" + +"$have_gas_1254": ; preds = %"$out_of_gas_1253", %"$None_1249" + %"$consume_1255" = sub i64 %"$gasrem_1251", 1 + store i64 %"$consume_1255", i64* @_gasrem, align 8 + %"$adtval_1256_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_1256_salloc" = call i8* @_salloc(i8* %"$adtval_1256_load", i64 1) + %"$adtval_1256" = bitcast i8* %"$adtval_1256_salloc" to %CName_False* + %"$adtgep_1257" = getelementptr inbounds %CName_False, %CName_False* %"$adtval_1256", i32 0, i32 0 + store i8 1, i8* %"$adtgep_1257", align 1 + %"$adtptr_1258" = bitcast %CName_False* %"$adtval_1256" to %TName_Bool* + store %TName_Bool* %"$adtptr_1258", %TName_Bool** %"$retval_404", align 8, !dbg !575 + br label %"$matchsucc_1232" + +"$empty_default_1236": ; preds = %"$have_gas_1230" + br label %"$matchsucc_1232" + +"$matchsucc_1232": ; preds = %"$have_gas_1254", %"$have_gas_1244", %"$empty_default_1236" + %"$$retval_404_1259" = load %TName_Bool*, %TName_Bool** %"$retval_404", align 8 + ret %TName_Bool* %"$$retval_404_1259" +} + +define internal { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } @"$fundef_401"(%"$$fundef_401_env_640"* %0, { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %1) !dbg !577 { +entry: + %"$$fundef_401_env_ListUtils.list_find_1171" = getelementptr inbounds %"$$fundef_401_env_640", %"$$fundef_401_env_640"* %0, i32 0, i32 0 + %"$ListUtils.list_find_envload_1172" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_401_env_ListUtils.list_find_1171", align 8 %ListUtils.list_find = alloca { i8*, i8* }*, align 8 - store { i8*, i8* }* %"$ListUtils.list_find_envload_1159", { i8*, i8* }** %ListUtils.list_find, align 8 + store { i8*, i8* }* %"$ListUtils.list_find_envload_1172", { i8*, i8* }** %ListUtils.list_find, align 8 %"$retval_402" = alloca { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* }, align 8 - %"$gasrem_1160" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1161" = icmp ugt i64 1, %"$gasrem_1160" - br i1 %"$gascmp_1161", label %"$out_of_gas_1162", label %"$have_gas_1163" - -"$out_of_gas_1162": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_1163" - -"$have_gas_1163": ; preds = %"$out_of_gas_1162", %entry - %"$consume_1164" = sub i64 %"$gasrem_1160", 1 - store i64 %"$consume_1164", i64* @_gasrem, align 8 - %"$$fundef_403_envp_1165_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_403_envp_1165_salloc" = call i8* @_salloc(i8* %"$$fundef_403_envp_1165_load", i64 24) - %"$$fundef_403_envp_1165" = bitcast i8* %"$$fundef_403_envp_1165_salloc" to %"$$fundef_403_env_639"* - %"$$fundef_403_env_voidp_1167" = bitcast %"$$fundef_403_env_639"* %"$$fundef_403_envp_1165" to i8* - %"$$fundef_403_cloval_1168" = insertvalue { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } { %TName_Bool* (i8*, %TName_List_ByStr20*)* bitcast (%TName_Bool* (%"$$fundef_403_env_639"*, %TName_List_ByStr20*)* @"$fundef_403" to %TName_Bool* (i8*, %TName_List_ByStr20*)*), i8* undef }, i8* %"$$fundef_403_env_voidp_1167", 1 - %"$$fundef_403_env_ListUtils.list_find_1169" = getelementptr inbounds %"$$fundef_403_env_639", %"$$fundef_403_env_639"* %"$$fundef_403_envp_1165", i32 0, i32 0 - %"$ListUtils.list_find_1170" = load { i8*, i8* }*, { i8*, i8* }** %ListUtils.list_find, align 8 - store { i8*, i8* }* %"$ListUtils.list_find_1170", { i8*, i8* }** %"$$fundef_403_env_ListUtils.list_find_1169", align 8 - %"$$fundef_403_env_p_1171" = getelementptr inbounds %"$$fundef_403_env_639", %"$$fundef_403_env_639"* %"$$fundef_403_envp_1165", i32 0, i32 1 - store { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %1, { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %"$$fundef_403_env_p_1171", align 8 - store { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } %"$$fundef_403_cloval_1168", { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* }* %"$retval_402", align 8, !dbg !333 - %"$$retval_402_1172" = load { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* }, { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* }* %"$retval_402", align 8 - ret { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } %"$$retval_402_1172" -} - -define internal { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } @"$fundef_399"(%"$$fundef_399_env_641"* %0) !dbg !334 { -entry: - %"$$fundef_399_env_ListUtils.list_find_1144" = getelementptr inbounds %"$$fundef_399_env_641", %"$$fundef_399_env_641"* %0, i32 0, i32 0 - %"$ListUtils.list_find_envload_1145" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_399_env_ListUtils.list_find_1144", align 8 + %"$gasrem_1173" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1174" = icmp ugt i64 1, %"$gasrem_1173" + br i1 %"$gascmp_1174", label %"$out_of_gas_1175", label %"$have_gas_1176" + +"$out_of_gas_1175": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_1176" + +"$have_gas_1176": ; preds = %"$out_of_gas_1175", %entry + %"$consume_1177" = sub i64 %"$gasrem_1173", 1 + store i64 %"$consume_1177", i64* @_gasrem, align 8 + %"$$fundef_403_envp_1178_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_403_envp_1178_salloc" = call i8* @_salloc(i8* %"$$fundef_403_envp_1178_load", i64 24) + %"$$fundef_403_envp_1178" = bitcast i8* %"$$fundef_403_envp_1178_salloc" to %"$$fundef_403_env_639"* + %"$$fundef_403_env_voidp_1180" = bitcast %"$$fundef_403_env_639"* %"$$fundef_403_envp_1178" to i8* + %"$$fundef_403_cloval_1181" = insertvalue { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } { %TName_Bool* (i8*, %TName_List_ByStr20*)* bitcast (%TName_Bool* (%"$$fundef_403_env_639"*, %TName_List_ByStr20*)* @"$fundef_403" to %TName_Bool* (i8*, %TName_List_ByStr20*)*), i8* undef }, i8* %"$$fundef_403_env_voidp_1180", 1 + %"$$fundef_403_env_ListUtils.list_find_1182" = getelementptr inbounds %"$$fundef_403_env_639", %"$$fundef_403_env_639"* %"$$fundef_403_envp_1178", i32 0, i32 0 + %"$ListUtils.list_find_1183" = load { i8*, i8* }*, { i8*, i8* }** %ListUtils.list_find, align 8 + store { i8*, i8* }* %"$ListUtils.list_find_1183", { i8*, i8* }** %"$$fundef_403_env_ListUtils.list_find_1182", align 8 + %"$$fundef_403_env_p_1184" = getelementptr inbounds %"$$fundef_403_env_639", %"$$fundef_403_env_639"* %"$$fundef_403_envp_1178", i32 0, i32 1 + store { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %1, { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %"$$fundef_403_env_p_1184", align 8 + store { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } %"$$fundef_403_cloval_1181", { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* }* %"$retval_402", align 8, !dbg !578 + %"$$retval_402_1185" = load { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* }, { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* }* %"$retval_402", align 8 + ret { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } %"$$retval_402_1185" +} + +define internal { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } @"$fundef_399"(%"$$fundef_399_env_641"* %0) !dbg !579 { +entry: + %"$$fundef_399_env_ListUtils.list_find_1157" = getelementptr inbounds %"$$fundef_399_env_641", %"$$fundef_399_env_641"* %0, i32 0, i32 0 + %"$ListUtils.list_find_envload_1158" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_399_env_ListUtils.list_find_1157", align 8 %ListUtils.list_find = alloca { i8*, i8* }*, align 8 - store { i8*, i8* }* %"$ListUtils.list_find_envload_1145", { i8*, i8* }** %ListUtils.list_find, align 8 + store { i8*, i8* }* %"$ListUtils.list_find_envload_1158", { i8*, i8* }** %ListUtils.list_find, align 8 %"$retval_400" = alloca { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, 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_401_envp_1151_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_401_envp_1151_salloc" = call i8* @_salloc(i8* %"$$fundef_401_envp_1151_load", i64 8) - %"$$fundef_401_envp_1151" = bitcast i8* %"$$fundef_401_envp_1151_salloc" to %"$$fundef_401_env_640"* - %"$$fundef_401_env_voidp_1153" = bitcast %"$$fundef_401_env_640"* %"$$fundef_401_envp_1151" to i8* - %"$$fundef_401_cloval_1154" = 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_401_env_640"*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })* @"$fundef_401" to { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*), i8* undef }, i8* %"$$fundef_401_env_voidp_1153", 1 - %"$$fundef_401_env_ListUtils.list_find_1155" = getelementptr inbounds %"$$fundef_401_env_640", %"$$fundef_401_env_640"* %"$$fundef_401_envp_1151", i32 0, i32 0 - %"$ListUtils.list_find_1156" = load { i8*, i8* }*, { i8*, i8* }** %ListUtils.list_find, align 8 - store { i8*, i8* }* %"$ListUtils.list_find_1156", { i8*, i8* }** %"$$fundef_401_env_ListUtils.list_find_1155", align 8 - store { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } %"$$fundef_401_cloval_1154", { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* }* %"$retval_400", align 8, !dbg !335 - %"$$retval_400_1157" = 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_400", align 8 - ret { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } %"$$retval_400_1157" -} - -define internal %TName_Option_ByStr20* @"$fundef_397"(%"$$fundef_397_env_642"* %0, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* } %1) !dbg !336 { -entry: - %"$$fundef_397_env_init_1086" = getelementptr inbounds %"$$fundef_397_env_642", %"$$fundef_397_env_642"* %0, i32 0, i32 0 - %"$init_envload_1087" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %"$$fundef_397_env_init_1086", align 8 + %"$gasrem_1159" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1160" = icmp ugt i64 1, %"$gasrem_1159" + br i1 %"$gascmp_1160", label %"$out_of_gas_1161", label %"$have_gas_1162" + +"$out_of_gas_1161": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_1162" + +"$have_gas_1162": ; preds = %"$out_of_gas_1161", %entry + %"$consume_1163" = sub i64 %"$gasrem_1159", 1 + store i64 %"$consume_1163", i64* @_gasrem, align 8 + %"$$fundef_401_envp_1164_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_401_envp_1164_salloc" = call i8* @_salloc(i8* %"$$fundef_401_envp_1164_load", i64 8) + %"$$fundef_401_envp_1164" = bitcast i8* %"$$fundef_401_envp_1164_salloc" to %"$$fundef_401_env_640"* + %"$$fundef_401_env_voidp_1166" = bitcast %"$$fundef_401_env_640"* %"$$fundef_401_envp_1164" to i8* + %"$$fundef_401_cloval_1167" = 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_401_env_640"*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })* @"$fundef_401" to { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*), i8* undef }, i8* %"$$fundef_401_env_voidp_1166", 1 + %"$$fundef_401_env_ListUtils.list_find_1168" = getelementptr inbounds %"$$fundef_401_env_640", %"$$fundef_401_env_640"* %"$$fundef_401_envp_1164", i32 0, i32 0 + %"$ListUtils.list_find_1169" = load { i8*, i8* }*, { i8*, i8* }** %ListUtils.list_find, align 8 + store { i8*, i8* }* %"$ListUtils.list_find_1169", { i8*, i8* }** %"$$fundef_401_env_ListUtils.list_find_1168", align 8 + store { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } %"$$fundef_401_cloval_1167", { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* }* %"$retval_400", align 8, !dbg !580 + %"$$retval_400_1170" = 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_400", align 8 + ret { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } %"$$retval_400_1170" +} + +define internal %TName_Option_ByStr20* @"$fundef_397"(%"$$fundef_397_env_642"* %0, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* } %1) !dbg !581 { +entry: + %"$$fundef_397_env_init_1099" = getelementptr inbounds %"$$fundef_397_env_642", %"$$fundef_397_env_642"* %0, i32 0, i32 0 + %"$init_envload_1100" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %"$$fundef_397_env_init_1099", align 8 %init = alloca %TName_Option_ByStr20*, align 8 - store %TName_Option_ByStr20* %"$init_envload_1087", %TName_Option_ByStr20** %init, align 8 - %"$$fundef_397_env_p_1088" = getelementptr inbounds %"$$fundef_397_env_642", %"$$fundef_397_env_642"* %0, i32 0, i32 1 - %"$p_envload_1089" = load { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %"$$fundef_397_env_p_1088", align 8 + store %TName_Option_ByStr20* %"$init_envload_1100", %TName_Option_ByStr20** %init, align 8 + %"$$fundef_397_env_p_1101" = getelementptr inbounds %"$$fundef_397_env_642", %"$$fundef_397_env_642"* %0, i32 0, i32 1 + %"$p_envload_1102" = load { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %"$$fundef_397_env_p_1101", align 8 %p = alloca { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, align 8 - store { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$p_envload_1089", { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %p, align 8 - %"$$fundef_397_env_x_1090" = getelementptr inbounds %"$$fundef_397_env_642", %"$$fundef_397_env_642"* %0, i32 0, i32 2 - %"$x_envload_1091" = load [20 x i8], [20 x i8]* %"$$fundef_397_env_x_1090", align 1 + store { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$p_envload_1102", { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %p, align 8 + %"$$fundef_397_env_x_1103" = getelementptr inbounds %"$$fundef_397_env_642", %"$$fundef_397_env_642"* %0, i32 0, i32 2 + %"$x_envload_1104" = load [20 x i8], [20 x i8]* %"$$fundef_397_env_x_1103", align 1 %x = alloca [20 x i8], align 1 - store [20 x i8] %"$x_envload_1091", [20 x i8]* %x, align 1 + store [20 x i8] %"$x_envload_1104", [20 x i8]* %x, align 1 %"$retval_398" = alloca %TName_Option_ByStr20*, align 8 - %"$gasrem_1092" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1093" = icmp ugt i64 1, %"$gasrem_1092" - br i1 %"$gascmp_1093", label %"$out_of_gas_1094", label %"$have_gas_1095" + call void @llvm.dbg.declare(metadata %TName_Option_ByStr20** %"$retval_398", metadata !582, metadata !DIExpression()), !dbg !583 + %"$gasrem_1105" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1106" = icmp ugt i64 1, %"$gasrem_1105" + br i1 %"$gascmp_1106", label %"$out_of_gas_1107", label %"$have_gas_1108" -"$out_of_gas_1094": ; preds = %entry +"$out_of_gas_1107": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_1095" + br label %"$have_gas_1108" -"$have_gas_1095": ; preds = %"$out_of_gas_1094", %entry - %"$consume_1096" = sub i64 %"$gasrem_1092", 1 - store i64 %"$consume_1096", i64* @_gasrem, align 8 +"$have_gas_1108": ; preds = %"$out_of_gas_1107", %entry + %"$consume_1109" = sub i64 %"$gasrem_1105", 1 + store i64 %"$consume_1109", i64* @_gasrem, align 8 %p_x = alloca %TName_Bool*, 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" + call void @llvm.dbg.declare(metadata %TName_Bool** %p_x, metadata !584, metadata !DIExpression()), !dbg !585 + %"$gasrem_1110" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1111" = icmp ugt i64 1, %"$gasrem_1110" + br i1 %"$gascmp_1111", label %"$out_of_gas_1112", label %"$have_gas_1113" -"$out_of_gas_1099": ; preds = %"$have_gas_1095" +"$out_of_gas_1112": ; preds = %"$have_gas_1108" call void @_out_of_gas() - br label %"$have_gas_1100" + br label %"$have_gas_1113" -"$have_gas_1100": ; preds = %"$out_of_gas_1099", %"$have_gas_1095" - %"$consume_1101" = sub i64 %"$gasrem_1097", 1 - store i64 %"$consume_1101", i64* @_gasrem, align 8 +"$have_gas_1113": ; preds = %"$out_of_gas_1112", %"$have_gas_1108" + %"$consume_1114" = sub i64 %"$gasrem_1110", 1 + store i64 %"$consume_1114", i64* @_gasrem, align 8 %"$p_36" = alloca %TName_Bool*, align 8 - %"$p_1102" = load { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %p, align 8 - %"$p_fptr_1103" = extractvalue { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$p_1102", 0 - %"$p_envptr_1104" = extractvalue { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$p_1102", 1 - %"$p_x_1105" = alloca [20 x i8], align 1 - %"$x_1106" = load [20 x i8], [20 x i8]* %x, align 1 - store [20 x i8] %"$x_1106", [20 x i8]* %"$p_x_1105", align 1 - %"$p_call_1107" = call %TName_Bool* %"$p_fptr_1103"(i8* %"$p_envptr_1104", [20 x i8]* %"$p_x_1105"), !dbg !337 - store %TName_Bool* %"$p_call_1107", %TName_Bool** %"$p_36", align 8, !dbg !337 - %"$$p_36_1108" = load %TName_Bool*, %TName_Bool** %"$p_36", align 8 - store %TName_Bool* %"$$p_36_1108", %TName_Bool** %p_x, align 8, !dbg !337 - %"$gasrem_1109" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1110" = icmp ugt i64 2, %"$gasrem_1109" - br i1 %"$gascmp_1110", label %"$out_of_gas_1111", label %"$have_gas_1112" - -"$out_of_gas_1111": ; preds = %"$have_gas_1100" - call void @_out_of_gas() - br label %"$have_gas_1112" - -"$have_gas_1112": ; preds = %"$out_of_gas_1111", %"$have_gas_1100" - %"$consume_1113" = sub i64 %"$gasrem_1109", 2 - store i64 %"$consume_1113", i64* @_gasrem, align 8 - %"$p_x_1115" = load %TName_Bool*, %TName_Bool** %p_x, align 8 - %"$p_x_tag_1116" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$p_x_1115", i32 0, i32 0 - %"$p_x_tag_1117" = load i8, i8* %"$p_x_tag_1116", align 1 - switch i8 %"$p_x_tag_1117", label %"$empty_default_1118" [ - i8 0, label %"$True_1119" - i8 1, label %"$False_1131" - ], !dbg !338 - -"$True_1119": ; preds = %"$have_gas_1112" - %"$p_x_1120" = bitcast %TName_Bool* %"$p_x_1115" to %CName_True* - %"$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 = %"$True_1119" - call void @_out_of_gas() - br label %"$have_gas_1124" - -"$have_gas_1124": ; preds = %"$out_of_gas_1123", %"$True_1119" - %"$consume_1125" = sub i64 %"$gasrem_1121", 1 - store i64 %"$consume_1125", i64* @_gasrem, align 8 - %"$x_1126" = load [20 x i8], [20 x i8]* %x, align 1 - %"$adtval_1127_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_1127_salloc" = call i8* @_salloc(i8* %"$adtval_1127_load", i64 21) - %"$adtval_1127" = bitcast i8* %"$adtval_1127_salloc" to %CName_Some_ByStr20* - %"$adtgep_1128" = getelementptr inbounds %CName_Some_ByStr20, %CName_Some_ByStr20* %"$adtval_1127", i32 0, i32 0 - store i8 0, i8* %"$adtgep_1128", align 1 - %"$adtgep_1129" = getelementptr inbounds %CName_Some_ByStr20, %CName_Some_ByStr20* %"$adtval_1127", i32 0, i32 1 - store [20 x i8] %"$x_1126", [20 x i8]* %"$adtgep_1129", align 1 - %"$adtptr_1130" = bitcast %CName_Some_ByStr20* %"$adtval_1127" to %TName_Option_ByStr20* - store %TName_Option_ByStr20* %"$adtptr_1130", %TName_Option_ByStr20** %"$retval_398", align 8, !dbg !339 - br label %"$matchsucc_1114" - -"$False_1131": ; preds = %"$have_gas_1112" - %"$p_x_1132" = bitcast %TName_Bool* %"$p_x_1115" to %CName_False* - %"$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_1135": ; preds = %"$False_1131" - call void @_out_of_gas() - br label %"$have_gas_1136" - -"$have_gas_1136": ; preds = %"$out_of_gas_1135", %"$False_1131" - %"$consume_1137" = sub i64 %"$gasrem_1133", 1 - store i64 %"$consume_1137", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$p_36", metadata !586, metadata !DIExpression()), !dbg !587 + %"$p_1115" = load { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %p, align 8 + %"$p_fptr_1116" = extractvalue { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$p_1115", 0 + %"$p_envptr_1117" = extractvalue { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$p_1115", 1 + %"$p_x_1118" = alloca [20 x i8], align 1 + %"$x_1119" = load [20 x i8], [20 x i8]* %x, align 1 + store [20 x i8] %"$x_1119", [20 x i8]* %"$p_x_1118", align 1 + %"$p_call_1120" = call %TName_Bool* %"$p_fptr_1116"(i8* %"$p_envptr_1117", [20 x i8]* %"$p_x_1118"), !dbg !587 + store %TName_Bool* %"$p_call_1120", %TName_Bool** %"$p_36", align 8, !dbg !587 + %"$$p_36_1121" = load %TName_Bool*, %TName_Bool** %"$p_36", align 8 + store %TName_Bool* %"$$p_36_1121", %TName_Bool** %p_x, align 8, !dbg !587 + %"$gasrem_1122" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1123" = icmp ugt i64 2, %"$gasrem_1122" + br i1 %"$gascmp_1123", label %"$out_of_gas_1124", label %"$have_gas_1125" + +"$out_of_gas_1124": ; preds = %"$have_gas_1113" + call void @_out_of_gas() + br label %"$have_gas_1125" + +"$have_gas_1125": ; preds = %"$out_of_gas_1124", %"$have_gas_1113" + %"$consume_1126" = sub i64 %"$gasrem_1122", 2 + store i64 %"$consume_1126", i64* @_gasrem, align 8 + %"$p_x_1128" = load %TName_Bool*, %TName_Bool** %p_x, align 8 + %"$p_x_tag_1129" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$p_x_1128", i32 0, i32 0 + %"$p_x_tag_1130" = load i8, i8* %"$p_x_tag_1129", align 1 + switch i8 %"$p_x_tag_1130", label %"$empty_default_1131" [ + i8 0, label %"$True_1132" + i8 1, label %"$False_1144" + ], !dbg !588 + +"$True_1132": ; preds = %"$have_gas_1125" + %"$p_x_1133" = bitcast %TName_Bool* %"$p_x_1128" to %CName_True* + %"$gasrem_1134" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1135" = icmp ugt i64 1, %"$gasrem_1134" + br i1 %"$gascmp_1135", label %"$out_of_gas_1136", label %"$have_gas_1137" + +"$out_of_gas_1136": ; preds = %"$True_1132" + call void @_out_of_gas() + br label %"$have_gas_1137" + +"$have_gas_1137": ; preds = %"$out_of_gas_1136", %"$True_1132" + %"$consume_1138" = sub i64 %"$gasrem_1134", 1 + store i64 %"$consume_1138", i64* @_gasrem, align 8 + %"$x_1139" = load [20 x i8], [20 x i8]* %x, align 1 + %"$adtval_1140_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_1140_salloc" = call i8* @_salloc(i8* %"$adtval_1140_load", i64 21) + %"$adtval_1140" = bitcast i8* %"$adtval_1140_salloc" to %CName_Some_ByStr20* + %"$adtgep_1141" = getelementptr inbounds %CName_Some_ByStr20, %CName_Some_ByStr20* %"$adtval_1140", i32 0, i32 0 + store i8 0, i8* %"$adtgep_1141", align 1 + %"$adtgep_1142" = getelementptr inbounds %CName_Some_ByStr20, %CName_Some_ByStr20* %"$adtval_1140", i32 0, i32 1 + store [20 x i8] %"$x_1139", [20 x i8]* %"$adtgep_1142", align 1 + %"$adtptr_1143" = bitcast %CName_Some_ByStr20* %"$adtval_1140" to %TName_Option_ByStr20* + store %TName_Option_ByStr20* %"$adtptr_1143", %TName_Option_ByStr20** %"$retval_398", align 8, !dbg !589 + br label %"$matchsucc_1127" + +"$False_1144": ; preds = %"$have_gas_1125" + %"$p_x_1145" = bitcast %TName_Bool* %"$p_x_1128" to %CName_False* + %"$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 = %"$False_1144" + call void @_out_of_gas() + br label %"$have_gas_1149" + +"$have_gas_1149": ; preds = %"$out_of_gas_1148", %"$False_1144" + %"$consume_1150" = sub i64 %"$gasrem_1146", 1 + store i64 %"$consume_1150", i64* @_gasrem, align 8 %"$recurse_37" = alloca %TName_Option_ByStr20*, align 8 - %"$recurse_fptr_1138" = extractvalue { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* } %1, 0 - %"$recurse_envptr_1139" = extractvalue { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* } %1, 1 - %"$init_1140" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %init, align 8 - %"$recurse_call_1141" = call %TName_Option_ByStr20* %"$recurse_fptr_1138"(i8* %"$recurse_envptr_1139", %TName_Option_ByStr20* %"$init_1140"), !dbg !342 - store %TName_Option_ByStr20* %"$recurse_call_1141", %TName_Option_ByStr20** %"$recurse_37", align 8, !dbg !342 - %"$$recurse_37_1142" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %"$recurse_37", align 8 - store %TName_Option_ByStr20* %"$$recurse_37_1142", %TName_Option_ByStr20** %"$retval_398", align 8, !dbg !342 - br label %"$matchsucc_1114" + call void @llvm.dbg.declare(metadata %TName_Option_ByStr20** %"$recurse_37", metadata !592, metadata !DIExpression()), !dbg !594 + %"$recurse_fptr_1151" = extractvalue { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* } %1, 0 + %"$recurse_envptr_1152" = extractvalue { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* } %1, 1 + %"$init_1153" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %init, align 8 + %"$recurse_call_1154" = call %TName_Option_ByStr20* %"$recurse_fptr_1151"(i8* %"$recurse_envptr_1152", %TName_Option_ByStr20* %"$init_1153"), !dbg !594 + store %TName_Option_ByStr20* %"$recurse_call_1154", %TName_Option_ByStr20** %"$recurse_37", align 8, !dbg !594 + %"$$recurse_37_1155" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %"$recurse_37", align 8 + store %TName_Option_ByStr20* %"$$recurse_37_1155", %TName_Option_ByStr20** %"$retval_398", align 8, !dbg !594 + br label %"$matchsucc_1127" -"$empty_default_1118": ; preds = %"$have_gas_1112" - br label %"$matchsucc_1114" +"$empty_default_1131": ; preds = %"$have_gas_1125" + br label %"$matchsucc_1127" -"$matchsucc_1114": ; preds = %"$have_gas_1136", %"$have_gas_1124", %"$empty_default_1118" - %"$$retval_398_1143" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %"$retval_398", align 8 - ret %TName_Option_ByStr20* %"$$retval_398_1143" +"$matchsucc_1127": ; preds = %"$have_gas_1149", %"$have_gas_1137", %"$empty_default_1131" + %"$$retval_398_1156" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %"$retval_398", align 8 + ret %TName_Option_ByStr20* %"$$retval_398_1156" } -define internal { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } @"$fundef_395"(%"$$fundef_395_env_643"* %0, [20 x i8]* %1) !dbg !344 { +define internal { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } @"$fundef_395"(%"$$fundef_395_env_643"* %0, [20 x i8]* %1) !dbg !595 { entry: + %"$x_1098" = alloca [20 x i8]*, align 8 + store [20 x i8]* %1, [20 x i8]** %"$x_1098", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$x_1098", metadata !596, metadata !DIExpression()), !dbg !597 %x = load [20 x i8], [20 x i8]* %1, align 1 - %"$$fundef_395_env_init_1067" = getelementptr inbounds %"$$fundef_395_env_643", %"$$fundef_395_env_643"* %0, i32 0, i32 0 - %"$init_envload_1068" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %"$$fundef_395_env_init_1067", align 8 + %"$$fundef_395_env_init_1079" = getelementptr inbounds %"$$fundef_395_env_643", %"$$fundef_395_env_643"* %0, i32 0, i32 0 + %"$init_envload_1080" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %"$$fundef_395_env_init_1079", align 8 %init = alloca %TName_Option_ByStr20*, align 8 - store %TName_Option_ByStr20* %"$init_envload_1068", %TName_Option_ByStr20** %init, align 8 - %"$$fundef_395_env_p_1069" = getelementptr inbounds %"$$fundef_395_env_643", %"$$fundef_395_env_643"* %0, i32 0, i32 1 - %"$p_envload_1070" = load { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %"$$fundef_395_env_p_1069", align 8 + store %TName_Option_ByStr20* %"$init_envload_1080", %TName_Option_ByStr20** %init, align 8 + %"$$fundef_395_env_p_1081" = getelementptr inbounds %"$$fundef_395_env_643", %"$$fundef_395_env_643"* %0, i32 0, i32 1 + %"$p_envload_1082" = load { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %"$$fundef_395_env_p_1081", align 8 %p = alloca { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, align 8 - store { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$p_envload_1070", { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %p, align 8 + store { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$p_envload_1082", { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %p, align 8 %"$retval_396" = alloca { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* }, align 8 - %"$gasrem_1071" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1072" = icmp ugt i64 1, %"$gasrem_1071" - br i1 %"$gascmp_1072", label %"$out_of_gas_1073", label %"$have_gas_1074" - -"$out_of_gas_1073": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_1074" - -"$have_gas_1074": ; preds = %"$out_of_gas_1073", %entry - %"$consume_1075" = sub i64 %"$gasrem_1071", 1 - store i64 %"$consume_1075", i64* @_gasrem, align 8 - %"$$fundef_397_envp_1076_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_397_envp_1076_salloc" = call i8* @_salloc(i8* %"$$fundef_397_envp_1076_load", i64 48) - %"$$fundef_397_envp_1076" = bitcast i8* %"$$fundef_397_envp_1076_salloc" to %"$$fundef_397_env_642"* - %"$$fundef_397_env_voidp_1078" = bitcast %"$$fundef_397_env_642"* %"$$fundef_397_envp_1076" to i8* - %"$$fundef_397_cloval_1079" = 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_397_env_642"*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })* @"$fundef_397" to %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*), i8* undef }, i8* %"$$fundef_397_env_voidp_1078", 1 - %"$$fundef_397_env_init_1080" = getelementptr inbounds %"$$fundef_397_env_642", %"$$fundef_397_env_642"* %"$$fundef_397_envp_1076", i32 0, i32 0 - %"$init_1081" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %init, align 8 - store %TName_Option_ByStr20* %"$init_1081", %TName_Option_ByStr20** %"$$fundef_397_env_init_1080", align 8 - %"$$fundef_397_env_p_1082" = getelementptr inbounds %"$$fundef_397_env_642", %"$$fundef_397_env_642"* %"$$fundef_397_envp_1076", i32 0, i32 1 - %"$p_1083" = 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_1083", { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %"$$fundef_397_env_p_1082", align 8 - %"$$fundef_397_env_x_1084" = getelementptr inbounds %"$$fundef_397_env_642", %"$$fundef_397_env_642"* %"$$fundef_397_envp_1076", i32 0, i32 2 - store [20 x i8] %x, [20 x i8]* %"$$fundef_397_env_x_1084", align 1 - store { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } %"$$fundef_397_cloval_1079", { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* }* %"$retval_396", align 8, !dbg !345 - %"$$retval_396_1085" = 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_396", align 8 - ret { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } %"$$retval_396_1085" -} - -define internal { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } @"$fundef_393"(%"$$fundef_393_env_644"* %0, %TName_Option_ByStr20* %1) !dbg !346 { -entry: - %"$$fundef_393_env_init_1049" = getelementptr inbounds %"$$fundef_393_env_644", %"$$fundef_393_env_644"* %0, i32 0, i32 0 - %"$init_envload_1050" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %"$$fundef_393_env_init_1049", align 8 + %"$gasrem_1083" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1084" = icmp ugt i64 1, %"$gasrem_1083" + br i1 %"$gascmp_1084", label %"$out_of_gas_1085", label %"$have_gas_1086" + +"$out_of_gas_1085": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_1086" + +"$have_gas_1086": ; preds = %"$out_of_gas_1085", %entry + %"$consume_1087" = sub i64 %"$gasrem_1083", 1 + store i64 %"$consume_1087", i64* @_gasrem, align 8 + %"$$fundef_397_envp_1088_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_397_envp_1088_salloc" = call i8* @_salloc(i8* %"$$fundef_397_envp_1088_load", i64 48) + %"$$fundef_397_envp_1088" = bitcast i8* %"$$fundef_397_envp_1088_salloc" to %"$$fundef_397_env_642"* + %"$$fundef_397_env_voidp_1090" = bitcast %"$$fundef_397_env_642"* %"$$fundef_397_envp_1088" to i8* + %"$$fundef_397_cloval_1091" = 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_397_env_642"*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })* @"$fundef_397" to %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*), i8* undef }, i8* %"$$fundef_397_env_voidp_1090", 1 + %"$$fundef_397_env_init_1092" = getelementptr inbounds %"$$fundef_397_env_642", %"$$fundef_397_env_642"* %"$$fundef_397_envp_1088", i32 0, i32 0 + %"$init_1093" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %init, align 8 + store %TName_Option_ByStr20* %"$init_1093", %TName_Option_ByStr20** %"$$fundef_397_env_init_1092", align 8 + %"$$fundef_397_env_p_1094" = getelementptr inbounds %"$$fundef_397_env_642", %"$$fundef_397_env_642"* %"$$fundef_397_envp_1088", i32 0, i32 1 + %"$p_1095" = 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_1095", { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %"$$fundef_397_env_p_1094", align 8 + %"$$fundef_397_env_x_1096" = getelementptr inbounds %"$$fundef_397_env_642", %"$$fundef_397_env_642"* %"$$fundef_397_envp_1088", i32 0, i32 2 + store [20 x i8] %x, [20 x i8]* %"$$fundef_397_env_x_1096", align 1 + store { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } %"$$fundef_397_cloval_1091", { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* }* %"$retval_396", align 8, !dbg !598 + %"$$retval_396_1097" = 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_396", align 8 + ret { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } %"$$retval_396_1097" +} + +define internal { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } @"$fundef_393"(%"$$fundef_393_env_644"* %0, %TName_Option_ByStr20* %1) !dbg !599 { +entry: + %"$ignore_1078" = alloca %TName_Option_ByStr20*, align 8 + store %TName_Option_ByStr20* %1, %TName_Option_ByStr20** %"$ignore_1078", align 8 + call void @llvm.dbg.declare(metadata %TName_Option_ByStr20** %"$ignore_1078", metadata !600, metadata !DIExpression()), !dbg !601 + %"$$fundef_393_env_init_1060" = getelementptr inbounds %"$$fundef_393_env_644", %"$$fundef_393_env_644"* %0, i32 0, i32 0 + %"$init_envload_1061" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %"$$fundef_393_env_init_1060", align 8 %init = alloca %TName_Option_ByStr20*, align 8 - store %TName_Option_ByStr20* %"$init_envload_1050", %TName_Option_ByStr20** %init, align 8 - %"$$fundef_393_env_p_1051" = getelementptr inbounds %"$$fundef_393_env_644", %"$$fundef_393_env_644"* %0, i32 0, i32 1 - %"$p_envload_1052" = load { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %"$$fundef_393_env_p_1051", align 8 + store %TName_Option_ByStr20* %"$init_envload_1061", %TName_Option_ByStr20** %init, align 8 + %"$$fundef_393_env_p_1062" = getelementptr inbounds %"$$fundef_393_env_644", %"$$fundef_393_env_644"* %0, i32 0, i32 1 + %"$p_envload_1063" = load { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %"$$fundef_393_env_p_1062", align 8 %p = alloca { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, align 8 - store { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$p_envload_1052", { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %p, align 8 + store { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$p_envload_1063", { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %p, align 8 %"$retval_394" = alloca { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* }, align 8 - %"$gasrem_1053" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1054" = icmp ugt i64 1, %"$gasrem_1053" - br i1 %"$gascmp_1054", label %"$out_of_gas_1055", label %"$have_gas_1056" - -"$out_of_gas_1055": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_1056" - -"$have_gas_1056": ; preds = %"$out_of_gas_1055", %entry - %"$consume_1057" = sub i64 %"$gasrem_1053", 1 - store i64 %"$consume_1057", i64* @_gasrem, align 8 - %"$$fundef_395_envp_1058_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_395_envp_1058_salloc" = call i8* @_salloc(i8* %"$$fundef_395_envp_1058_load", i64 24) - %"$$fundef_395_envp_1058" = bitcast i8* %"$$fundef_395_envp_1058_salloc" to %"$$fundef_395_env_643"* - %"$$fundef_395_env_voidp_1060" = bitcast %"$$fundef_395_env_643"* %"$$fundef_395_envp_1058" to i8* - %"$$fundef_395_cloval_1061" = 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_395_env_643"*, [20 x i8]*)* @"$fundef_395" to { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*), i8* undef }, i8* %"$$fundef_395_env_voidp_1060", 1 - %"$$fundef_395_env_init_1062" = getelementptr inbounds %"$$fundef_395_env_643", %"$$fundef_395_env_643"* %"$$fundef_395_envp_1058", i32 0, i32 0 - %"$init_1063" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %init, align 8 - store %TName_Option_ByStr20* %"$init_1063", %TName_Option_ByStr20** %"$$fundef_395_env_init_1062", align 8 - %"$$fundef_395_env_p_1064" = getelementptr inbounds %"$$fundef_395_env_643", %"$$fundef_395_env_643"* %"$$fundef_395_envp_1058", i32 0, i32 1 - %"$p_1065" = 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_1065", { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %"$$fundef_395_env_p_1064", align 8 - store { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } %"$$fundef_395_cloval_1061", { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* }* %"$retval_394", align 8, !dbg !347 - %"$$retval_394_1066" = 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_394", align 8 - ret { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } %"$$retval_394_1066" -} - -define internal { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } @"$fundef_391"(%"$$fundef_391_env_645"* %0, { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %1) !dbg !348 { -entry: - %"$$fundef_391_env_list_foldk_977" = getelementptr inbounds %"$$fundef_391_env_645", %"$$fundef_391_env_645"* %0, i32 0, i32 0 - %"$list_foldk_envload_978" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_391_env_list_foldk_977", 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 = %entry + call void @_out_of_gas() + br label %"$have_gas_1067" + +"$have_gas_1067": ; preds = %"$out_of_gas_1066", %entry + %"$consume_1068" = sub i64 %"$gasrem_1064", 1 + store i64 %"$consume_1068", i64* @_gasrem, align 8 + %"$$fundef_395_envp_1069_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_395_envp_1069_salloc" = call i8* @_salloc(i8* %"$$fundef_395_envp_1069_load", i64 24) + %"$$fundef_395_envp_1069" = bitcast i8* %"$$fundef_395_envp_1069_salloc" to %"$$fundef_395_env_643"* + %"$$fundef_395_env_voidp_1071" = bitcast %"$$fundef_395_env_643"* %"$$fundef_395_envp_1069" to i8* + %"$$fundef_395_cloval_1072" = 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_395_env_643"*, [20 x i8]*)* @"$fundef_395" to { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*), i8* undef }, i8* %"$$fundef_395_env_voidp_1071", 1 + %"$$fundef_395_env_init_1073" = getelementptr inbounds %"$$fundef_395_env_643", %"$$fundef_395_env_643"* %"$$fundef_395_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_395_env_init_1073", align 8 + %"$$fundef_395_env_p_1075" = getelementptr inbounds %"$$fundef_395_env_643", %"$$fundef_395_env_643"* %"$$fundef_395_envp_1069", i32 0, i32 1 + %"$p_1076" = 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_1076", { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %"$$fundef_395_env_p_1075", align 8 + store { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } %"$$fundef_395_cloval_1072", { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* }* %"$retval_394", align 8, !dbg !602 + %"$$retval_394_1077" = 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_394", align 8 + ret { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } %"$$retval_394_1077" +} + +define internal { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } @"$fundef_391"(%"$$fundef_391_env_645"* %0, { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %1) !dbg !603 { +entry: + %"$$fundef_391_env_list_foldk_988" = getelementptr inbounds %"$$fundef_391_env_645", %"$$fundef_391_env_645"* %0, i32 0, i32 0 + %"$list_foldk_envload_989" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_391_env_list_foldk_988", align 8 %list_foldk = alloca { i8*, i8* }*, align 8 - store { i8*, i8* }* %"$list_foldk_envload_978", { i8*, i8* }** %list_foldk, align 8 + store { i8*, i8* }* %"$list_foldk_envload_989", { i8*, i8* }** %list_foldk, align 8 %"$retval_392" = alloca { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }, align 8 - %"$gasrem_979" = load i64, i64* @_gasrem, align 8 - %"$gascmp_980" = icmp ugt i64 1, %"$gasrem_979" - br i1 %"$gascmp_980", label %"$out_of_gas_981", label %"$have_gas_982" + %"$gasrem_990" = load i64, i64* @_gasrem, align 8 + %"$gascmp_991" = icmp ugt i64 1, %"$gasrem_990" + br i1 %"$gascmp_991", label %"$out_of_gas_992", label %"$have_gas_993" -"$out_of_gas_981": ; preds = %entry +"$out_of_gas_992": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_982" + br label %"$have_gas_993" -"$have_gas_982": ; preds = %"$out_of_gas_981", %entry - %"$consume_983" = sub i64 %"$gasrem_979", 1 - store i64 %"$consume_983", i64* @_gasrem, align 8 +"$have_gas_993": ; preds = %"$out_of_gas_992", %entry + %"$consume_994" = sub i64 %"$gasrem_990", 1 + store i64 %"$consume_994", 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_984" = load i64, i64* @_gasrem, align 8 - %"$gascmp_985" = icmp ugt i64 1, %"$gasrem_984" - br i1 %"$gascmp_985", label %"$out_of_gas_986", label %"$have_gas_987" - -"$out_of_gas_986": ; preds = %"$have_gas_982" - call void @_out_of_gas() - br label %"$have_gas_987" - -"$have_gas_987": ; preds = %"$out_of_gas_986", %"$have_gas_982" - %"$consume_988" = sub i64 %"$gasrem_984", 1 - store i64 %"$consume_988", i64* @_gasrem, align 8 - %"$list_foldk_989" = load { i8*, i8* }*, { i8*, i8* }** %list_foldk, align 8 - %"$list_foldk_990" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$list_foldk_989", i32 0 - %"$list_foldk_991" = bitcast { i8*, i8* }* %"$list_foldk_990" to { { i8*, i8* }* (i8*)*, i8* }* - %"$list_foldk_992" = load { { i8*, i8* }* (i8*)*, i8* }, { { i8*, i8* }* (i8*)*, i8* }* %"$list_foldk_991", align 8 - %"$list_foldk_fptr_993" = extractvalue { { i8*, i8* }* (i8*)*, i8* } %"$list_foldk_992", 0 - %"$list_foldk_envptr_994" = extractvalue { { i8*, i8* }* (i8*)*, i8* } %"$list_foldk_992", 1 - %"$list_foldk_call_995" = call { i8*, i8* }* %"$list_foldk_fptr_993"(i8* %"$list_foldk_envptr_994"), !dbg !349 - %"$list_foldk_996" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$list_foldk_call_995", i32 1 - %"$list_foldk_997" = bitcast { i8*, i8* }* %"$list_foldk_996" 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_998" = 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_997", align 8 - %"$list_foldk_fptr_999" = 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_998", 0 - %"$list_foldk_envptr_1000" = 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_998", 1 - %"$list_foldk_call_1001" = 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_999"(i8* %"$list_foldk_envptr_1000"), !dbg !349 - 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_1001", { { { %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 !350 - %"$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_987" - call void @_out_of_gas() - br label %"$have_gas_1005" - -"$have_gas_1005": ; preds = %"$out_of_gas_1004", %"$have_gas_987" - %"$consume_1006" = sub i64 %"$gasrem_1002", 1 - store i64 %"$consume_1006", i64* @_gasrem, align 8 + %"$gasrem_995" = load i64, i64* @_gasrem, align 8 + %"$gascmp_996" = icmp ugt i64 1, %"$gasrem_995" + br i1 %"$gascmp_996", label %"$out_of_gas_997", label %"$have_gas_998" + +"$out_of_gas_997": ; preds = %"$have_gas_993" + call void @_out_of_gas() + br label %"$have_gas_998" + +"$have_gas_998": ; preds = %"$out_of_gas_997", %"$have_gas_993" + %"$consume_999" = sub i64 %"$gasrem_995", 1 + store i64 %"$consume_999", i64* @_gasrem, align 8 + %"$list_foldk_1000" = load { i8*, i8* }*, { i8*, i8* }** %list_foldk, align 8 + %"$list_foldk_1001" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$list_foldk_1000", i32 0 + %"$list_foldk_1002" = bitcast { i8*, i8* }* %"$list_foldk_1001" to { { i8*, i8* }* (i8*)*, i8* }* + %"$list_foldk_1003" = load { { i8*, i8* }* (i8*)*, i8* }, { { i8*, i8* }* (i8*)*, i8* }* %"$list_foldk_1002", align 8 + %"$list_foldk_fptr_1004" = extractvalue { { i8*, i8* }* (i8*)*, i8* } %"$list_foldk_1003", 0 + %"$list_foldk_envptr_1005" = extractvalue { { i8*, i8* }* (i8*)*, i8* } %"$list_foldk_1003", 1 + %"$list_foldk_call_1006" = call { i8*, i8* }* %"$list_foldk_fptr_1004"(i8* %"$list_foldk_envptr_1005"), !dbg !604 + %"$list_foldk_1007" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$list_foldk_call_1006", i32 1 + %"$list_foldk_1008" = bitcast { i8*, i8* }* %"$list_foldk_1007" 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_1009" = 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_1008", align 8 + %"$list_foldk_fptr_1010" = 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_1009", 0 + %"$list_foldk_envptr_1011" = 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_1009", 1 + %"$list_foldk_call_1012" = 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_1010"(i8* %"$list_foldk_envptr_1011"), !dbg !604 + 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_1012", { { { %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 !605 + %"$gasrem_1013" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1014" = icmp ugt i64 1, %"$gasrem_1013" + br i1 %"$gascmp_1014", label %"$out_of_gas_1015", label %"$have_gas_1016" + +"$out_of_gas_1015": ; preds = %"$have_gas_998" + call void @_out_of_gas() + br label %"$have_gas_1016" + +"$have_gas_1016": ; preds = %"$out_of_gas_1015", %"$have_gas_998" + %"$consume_1017" = sub i64 %"$gasrem_1013", 1 + store i64 %"$consume_1017", i64* @_gasrem, align 8 %init = alloca %TName_Option_ByStr20*, align 8 - %"$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_1005" - call void @_out_of_gas() - br label %"$have_gas_1010" - -"$have_gas_1010": ; preds = %"$out_of_gas_1009", %"$have_gas_1005" - %"$consume_1011" = sub i64 %"$gasrem_1007", 1 - store i64 %"$consume_1011", i64* @_gasrem, align 8 - %"$adtval_1012_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_1012_salloc" = call i8* @_salloc(i8* %"$adtval_1012_load", i64 1) - %"$adtval_1012" = bitcast i8* %"$adtval_1012_salloc" to %CName_None_ByStr20* - %"$adtgep_1013" = getelementptr inbounds %CName_None_ByStr20, %CName_None_ByStr20* %"$adtval_1012", i32 0, i32 0 - store i8 1, i8* %"$adtgep_1013", align 1 - %"$adtptr_1014" = bitcast %CName_None_ByStr20* %"$adtval_1012" to %TName_Option_ByStr20* - store %TName_Option_ByStr20* %"$adtptr_1014", %TName_Option_ByStr20** %init, align 8, !dbg !351 - %"$gasrem_1015" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1016" = icmp ugt i64 1, %"$gasrem_1015" - br i1 %"$gascmp_1016", label %"$out_of_gas_1017", label %"$have_gas_1018" - -"$out_of_gas_1017": ; preds = %"$have_gas_1010" - call void @_out_of_gas() - br label %"$have_gas_1018" - -"$have_gas_1018": ; preds = %"$out_of_gas_1017", %"$have_gas_1010" - %"$consume_1019" = sub i64 %"$gasrem_1015", 1 - store i64 %"$consume_1019", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Option_ByStr20** %init, metadata !606, metadata !DIExpression()), !dbg !607 + %"$gasrem_1018" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1019" = icmp ugt i64 1, %"$gasrem_1018" + br i1 %"$gascmp_1019", label %"$out_of_gas_1020", label %"$have_gas_1021" + +"$out_of_gas_1020": ; preds = %"$have_gas_1016" + call void @_out_of_gas() + br label %"$have_gas_1021" + +"$have_gas_1021": ; preds = %"$out_of_gas_1020", %"$have_gas_1016" + %"$consume_1022" = sub i64 %"$gasrem_1018", 1 + store i64 %"$consume_1022", i64* @_gasrem, align 8 + %"$adtval_1023_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_1023_salloc" = call i8* @_salloc(i8* %"$adtval_1023_load", i64 1) + %"$adtval_1023" = bitcast i8* %"$adtval_1023_salloc" to %CName_None_ByStr20* + %"$adtgep_1024" = getelementptr inbounds %CName_None_ByStr20, %CName_None_ByStr20* %"$adtval_1023", i32 0, i32 0 + store i8 1, i8* %"$adtgep_1024", align 1 + %"$adtptr_1025" = bitcast %CName_None_ByStr20* %"$adtval_1023" to %TName_Option_ByStr20* + store %TName_Option_ByStr20* %"$adtptr_1025", %TName_Option_ByStr20** %init, align 8, !dbg !608 + %"$gasrem_1026" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1027" = icmp ugt i64 1, %"$gasrem_1026" + br i1 %"$gascmp_1027", label %"$out_of_gas_1028", label %"$have_gas_1029" + +"$out_of_gas_1028": ; preds = %"$have_gas_1021" + call void @_out_of_gas() + br label %"$have_gas_1029" + +"$have_gas_1029": ; preds = %"$out_of_gas_1028", %"$have_gas_1021" + %"$consume_1030" = sub i64 %"$gasrem_1026", 1 + store i64 %"$consume_1030", 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_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" - -"$out_of_gas_1022": ; preds = %"$have_gas_1018" - call void @_out_of_gas() - br label %"$have_gas_1023" - -"$have_gas_1023": ; preds = %"$out_of_gas_1022", %"$have_gas_1018" - %"$consume_1024" = sub i64 %"$gasrem_1020", 1 - store i64 %"$consume_1024", i64* @_gasrem, align 8 - %"$$fundef_393_envp_1025_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_393_envp_1025_salloc" = call i8* @_salloc(i8* %"$$fundef_393_envp_1025_load", i64 24) - %"$$fundef_393_envp_1025" = bitcast i8* %"$$fundef_393_envp_1025_salloc" to %"$$fundef_393_env_644"* - %"$$fundef_393_env_voidp_1027" = bitcast %"$$fundef_393_env_644"* %"$$fundef_393_envp_1025" to i8* - %"$$fundef_393_cloval_1028" = 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_393_env_644"*, %TName_Option_ByStr20*)* @"$fundef_393" 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_393_env_voidp_1027", 1 - %"$$fundef_393_env_init_1029" = getelementptr inbounds %"$$fundef_393_env_644", %"$$fundef_393_env_644"* %"$$fundef_393_envp_1025", i32 0, i32 0 - %"$init_1030" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %init, align 8 - store %TName_Option_ByStr20* %"$init_1030", %TName_Option_ByStr20** %"$$fundef_393_env_init_1029", align 8 - %"$$fundef_393_env_p_1031" = getelementptr inbounds %"$$fundef_393_env_644", %"$$fundef_393_env_644"* %"$$fundef_393_envp_1025", i32 0, i32 1 - store { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %1, { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %"$$fundef_393_env_p_1031", 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_393_cloval_1028", { { { %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 !352 - %"$gasrem_1032" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1033" = icmp ugt i64 1, %"$gasrem_1032" - br i1 %"$gascmp_1033", label %"$out_of_gas_1034", label %"$have_gas_1035" - -"$out_of_gas_1034": ; preds = %"$have_gas_1023" - call void @_out_of_gas() - br label %"$have_gas_1035" - -"$have_gas_1035": ; preds = %"$out_of_gas_1034", %"$have_gas_1023" - %"$consume_1036" = sub i64 %"$gasrem_1032", 1 - store i64 %"$consume_1036", i64* @_gasrem, align 8 + %"$gasrem_1031" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1032" = icmp ugt i64 1, %"$gasrem_1031" + br i1 %"$gascmp_1032", label %"$out_of_gas_1033", label %"$have_gas_1034" + +"$out_of_gas_1033": ; preds = %"$have_gas_1029" + call void @_out_of_gas() + br label %"$have_gas_1034" + +"$have_gas_1034": ; preds = %"$out_of_gas_1033", %"$have_gas_1029" + %"$consume_1035" = sub i64 %"$gasrem_1031", 1 + store i64 %"$consume_1035", i64* @_gasrem, align 8 + %"$$fundef_393_envp_1036_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_393_envp_1036_salloc" = call i8* @_salloc(i8* %"$$fundef_393_envp_1036_load", i64 24) + %"$$fundef_393_envp_1036" = bitcast i8* %"$$fundef_393_envp_1036_salloc" to %"$$fundef_393_env_644"* + %"$$fundef_393_env_voidp_1038" = bitcast %"$$fundef_393_env_644"* %"$$fundef_393_envp_1036" to i8* + %"$$fundef_393_cloval_1039" = 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_393_env_644"*, %TName_Option_ByStr20*)* @"$fundef_393" 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_393_env_voidp_1038", 1 + %"$$fundef_393_env_init_1040" = getelementptr inbounds %"$$fundef_393_env_644", %"$$fundef_393_env_644"* %"$$fundef_393_envp_1036", i32 0, i32 0 + %"$init_1041" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %init, align 8 + store %TName_Option_ByStr20* %"$init_1041", %TName_Option_ByStr20** %"$$fundef_393_env_init_1040", align 8 + %"$$fundef_393_env_p_1042" = getelementptr inbounds %"$$fundef_393_env_644", %"$$fundef_393_env_644"* %"$$fundef_393_envp_1036", i32 0, i32 1 + store { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %1, { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %"$$fundef_393_env_p_1042", 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_393_cloval_1039", { { { %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 !609 + %"$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_1034" + call void @_out_of_gas() + br label %"$have_gas_1046" + +"$have_gas_1046": ; preds = %"$out_of_gas_1045", %"$have_gas_1034" + %"$consume_1047" = sub i64 %"$gasrem_1043", 1 + store i64 %"$consume_1047", i64* @_gasrem, align 8 %"$foldk_38" = alloca { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }, align 8 - %"$foldk_1037" = 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_1038" = 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_1037", 0 - %"$foldk_envptr_1039" = 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_1037", 1 - %"$predicate_step_1040" = 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_1041" = call { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } %"$foldk_fptr_1038"(i8* %"$foldk_envptr_1039", { { { %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_1040"), !dbg !353 - store { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } %"$foldk_call_1041", { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }* %"$foldk_38", align 8, !dbg !353 + %"$foldk_1048" = 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_1049" = 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_1048", 0 + %"$foldk_envptr_1050" = 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_1048", 1 + %"$predicate_step_1051" = 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_1052" = call { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } %"$foldk_fptr_1049"(i8* %"$foldk_envptr_1050", { { { %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_1051"), !dbg !610 + store { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } %"$foldk_call_1052", { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }* %"$foldk_38", align 8, !dbg !610 %"$foldk_39" = alloca { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }, align 8 - %"$$foldk_38_1042" = 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_38", align 8 - %"$$foldk_38_fptr_1043" = extractvalue { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } %"$$foldk_38_1042", 0 - %"$$foldk_38_envptr_1044" = extractvalue { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } %"$$foldk_38_1042", 1 - %"$init_1045" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %init, align 8 - %"$$foldk_38_call_1046" = call { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$$foldk_38_fptr_1043"(i8* %"$$foldk_38_envptr_1044", %TName_Option_ByStr20* %"$init_1045"), !dbg !353 - store { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$$foldk_38_call_1046", { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }* %"$foldk_39", align 8, !dbg !353 - %"$$foldk_39_1047" = load { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }, { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }* %"$foldk_39", align 8 - store { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$$foldk_39_1047", { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }* %"$retval_392", align 8, !dbg !353 - %"$$retval_392_1048" = load { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }, { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }* %"$retval_392", align 8 - ret { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$$retval_392_1048" -} - -define internal { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } @"$fundef_389"(%"$$fundef_389_env_646"* %0) !dbg !354 { -entry: - %"$$fundef_389_env_list_foldk_963" = getelementptr inbounds %"$$fundef_389_env_646", %"$$fundef_389_env_646"* %0, i32 0, i32 0 - %"$list_foldk_envload_964" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_389_env_list_foldk_963", align 8 + %"$$foldk_38_1053" = 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_38", align 8 + %"$$foldk_38_fptr_1054" = extractvalue { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } %"$$foldk_38_1053", 0 + %"$$foldk_38_envptr_1055" = extractvalue { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } %"$$foldk_38_1053", 1 + %"$init_1056" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %init, align 8 + %"$$foldk_38_call_1057" = call { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$$foldk_38_fptr_1054"(i8* %"$$foldk_38_envptr_1055", %TName_Option_ByStr20* %"$init_1056"), !dbg !610 + store { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$$foldk_38_call_1057", { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }* %"$foldk_39", align 8, !dbg !610 + %"$$foldk_39_1058" = load { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }, { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }* %"$foldk_39", align 8 + store { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$$foldk_39_1058", { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }* %"$retval_392", align 8, !dbg !610 + %"$$retval_392_1059" = load { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }, { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }* %"$retval_392", align 8 + ret { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$$retval_392_1059" +} + +define internal { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } @"$fundef_389"(%"$$fundef_389_env_646"* %0) !dbg !611 { +entry: + %"$$fundef_389_env_list_foldk_974" = getelementptr inbounds %"$$fundef_389_env_646", %"$$fundef_389_env_646"* %0, i32 0, i32 0 + %"$list_foldk_envload_975" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_389_env_list_foldk_974", align 8 %list_foldk = alloca { i8*, i8* }*, align 8 - store { i8*, i8* }* %"$list_foldk_envload_964", { i8*, i8* }** %list_foldk, align 8 + store { i8*, i8* }* %"$list_foldk_envload_975", { i8*, i8* }** %list_foldk, align 8 %"$retval_390" = alloca { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* }, align 8 - %"$gasrem_965" = load i64, i64* @_gasrem, align 8 - %"$gascmp_966" = icmp ugt i64 1, %"$gasrem_965" - br i1 %"$gascmp_966", label %"$out_of_gas_967", label %"$have_gas_968" - -"$out_of_gas_967": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_968" - -"$have_gas_968": ; preds = %"$out_of_gas_967", %entry - %"$consume_969" = sub i64 %"$gasrem_965", 1 - store i64 %"$consume_969", i64* @_gasrem, align 8 - %"$$fundef_391_envp_970_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_391_envp_970_salloc" = call i8* @_salloc(i8* %"$$fundef_391_envp_970_load", i64 8) - %"$$fundef_391_envp_970" = bitcast i8* %"$$fundef_391_envp_970_salloc" to %"$$fundef_391_env_645"* - %"$$fundef_391_env_voidp_972" = bitcast %"$$fundef_391_env_645"* %"$$fundef_391_envp_970" to i8* - %"$$fundef_391_cloval_973" = 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_391_env_645"*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })* @"$fundef_391" to { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*), i8* undef }, i8* %"$$fundef_391_env_voidp_972", 1 - %"$$fundef_391_env_list_foldk_974" = getelementptr inbounds %"$$fundef_391_env_645", %"$$fundef_391_env_645"* %"$$fundef_391_envp_970", i32 0, i32 0 - %"$list_foldk_975" = load { i8*, i8* }*, { i8*, i8* }** %list_foldk, align 8 - store { i8*, i8* }* %"$list_foldk_975", { i8*, i8* }** %"$$fundef_391_env_list_foldk_974", align 8 - store { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } %"$$fundef_391_cloval_973", { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* }* %"$retval_390", align 8, !dbg !355 - %"$$retval_390_976" = 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_390", align 8 - ret { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } %"$$retval_390_976" -} - -define internal %TName_Option_ByStr20* @"$fundef_387"(%"$$fundef_387_env_647"* %0, %TName_Option_ByStr20* %1) !dbg !356 { -entry: - %"$$fundef_387_env_g_943" = getelementptr inbounds %"$$fundef_387_env_647", %"$$fundef_387_env_647"* %0, i32 0, i32 0 - %"$g_envload_944" = 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_387_env_g_943", align 8 + %"$gasrem_976" = load i64, i64* @_gasrem, align 8 + %"$gascmp_977" = icmp ugt i64 1, %"$gasrem_976" + br i1 %"$gascmp_977", label %"$out_of_gas_978", label %"$have_gas_979" + +"$out_of_gas_978": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_979" + +"$have_gas_979": ; preds = %"$out_of_gas_978", %entry + %"$consume_980" = sub i64 %"$gasrem_976", 1 + store i64 %"$consume_980", i64* @_gasrem, align 8 + %"$$fundef_391_envp_981_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_391_envp_981_salloc" = call i8* @_salloc(i8* %"$$fundef_391_envp_981_load", i64 8) + %"$$fundef_391_envp_981" = bitcast i8* %"$$fundef_391_envp_981_salloc" to %"$$fundef_391_env_645"* + %"$$fundef_391_env_voidp_983" = bitcast %"$$fundef_391_env_645"* %"$$fundef_391_envp_981" to i8* + %"$$fundef_391_cloval_984" = 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_391_env_645"*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })* @"$fundef_391" to { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*), i8* undef }, i8* %"$$fundef_391_env_voidp_983", 1 + %"$$fundef_391_env_list_foldk_985" = getelementptr inbounds %"$$fundef_391_env_645", %"$$fundef_391_env_645"* %"$$fundef_391_envp_981", i32 0, i32 0 + %"$list_foldk_986" = load { i8*, i8* }*, { i8*, i8* }** %list_foldk, align 8 + store { i8*, i8* }* %"$list_foldk_986", { i8*, i8* }** %"$$fundef_391_env_list_foldk_985", align 8 + store { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } %"$$fundef_391_cloval_984", { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* }* %"$retval_390", align 8, !dbg !612 + %"$$retval_390_987" = 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_390", align 8 + ret { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } %"$$retval_390_987" +} + +define internal %TName_Option_ByStr20* @"$fundef_387"(%"$$fundef_387_env_647"* %0, %TName_Option_ByStr20* %1) !dbg !613 { +entry: + %"$k_973" = alloca %TName_Option_ByStr20*, align 8 + store %TName_Option_ByStr20* %1, %TName_Option_ByStr20** %"$k_973", align 8 + call void @llvm.dbg.declare(metadata %TName_Option_ByStr20** %"$k_973", metadata !614, metadata !DIExpression()), !dbg !615 + %"$$fundef_387_env_g_953" = getelementptr inbounds %"$$fundef_387_env_647", %"$$fundef_387_env_647"* %0, i32 0, i32 0 + %"$g_envload_954" = 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_387_env_g_953", 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_944", { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }* %g, align 8 - %"$$fundef_387_env_t_945" = getelementptr inbounds %"$$fundef_387_env_647", %"$$fundef_387_env_647"* %0, i32 0, i32 1 - %"$t_envload_946" = load %TName_List_ByStr20*, %TName_List_ByStr20** %"$$fundef_387_env_t_945", align 8 + store { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } %"$g_envload_954", { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }* %g, align 8 + %"$$fundef_387_env_t_955" = getelementptr inbounds %"$$fundef_387_env_647", %"$$fundef_387_env_647"* %0, i32 0, i32 1 + %"$t_envload_956" = load %TName_List_ByStr20*, %TName_List_ByStr20** %"$$fundef_387_env_t_955", align 8 %t = alloca %TName_List_ByStr20*, align 8 - store %TName_List_ByStr20* %"$t_envload_946", %TName_List_ByStr20** %t, align 8 + store %TName_List_ByStr20* %"$t_envload_956", %TName_List_ByStr20** %t, align 8 %"$retval_388" = alloca %TName_Option_ByStr20*, 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" + call void @llvm.dbg.declare(metadata %TName_Option_ByStr20** %"$retval_388", metadata !616, metadata !DIExpression()), !dbg !617 + %"$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_949": ; preds = %entry +"$out_of_gas_959": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_950" + br label %"$have_gas_960" -"$have_gas_950": ; preds = %"$out_of_gas_949", %entry - %"$consume_951" = sub i64 %"$gasrem_947", 1 - store i64 %"$consume_951", i64* @_gasrem, align 8 +"$have_gas_960": ; preds = %"$out_of_gas_959", %entry + %"$consume_961" = sub i64 %"$gasrem_957", 1 + store i64 %"$consume_961", i64* @_gasrem, align 8 %"$g_31" = alloca { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }, align 8 - %"$g_952" = 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_953" = extractvalue { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } %"$g_952", 0 - %"$g_envptr_954" = extractvalue { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } %"$g_952", 1 - %"$g_call_955" = call { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$g_fptr_953"(i8* %"$g_envptr_954", %TName_Option_ByStr20* %1), !dbg !357 - store { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$g_call_955", { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }* %"$g_31", align 8, !dbg !357 + %"$g_962" = 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_963" = extractvalue { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } %"$g_962", 0 + %"$g_envptr_964" = extractvalue { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } %"$g_962", 1 + %"$g_call_965" = call { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$g_fptr_963"(i8* %"$g_envptr_964", %TName_Option_ByStr20* %1), !dbg !617 + store { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$g_call_965", { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }* %"$g_31", align 8, !dbg !617 %"$g_32" = alloca %TName_Option_ByStr20*, align 8 - %"$$g_31_956" = load { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }, { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }* %"$g_31", align 8 - %"$$g_31_fptr_957" = extractvalue { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$$g_31_956", 0 - %"$$g_31_envptr_958" = extractvalue { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$$g_31_956", 1 - %"$t_959" = load %TName_List_ByStr20*, %TName_List_ByStr20** %t, align 8 - %"$$g_31_call_960" = call %TName_Option_ByStr20* %"$$g_31_fptr_957"(i8* %"$$g_31_envptr_958", %TName_List_ByStr20* %"$t_959"), !dbg !357 - store %TName_Option_ByStr20* %"$$g_31_call_960", %TName_Option_ByStr20** %"$g_32", align 8, !dbg !357 - %"$$g_32_961" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %"$g_32", align 8 - store %TName_Option_ByStr20* %"$$g_32_961", %TName_Option_ByStr20** %"$retval_388", align 8, !dbg !357 - %"$$retval_388_962" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %"$retval_388", align 8 - ret %TName_Option_ByStr20* %"$$retval_388_962" -} - -define internal %TName_Option_ByStr20* @"$fundef_385"(%"$$fundef_385_env_648"* %0, %TName_List_ByStr20* %1) !dbg !358 { -entry: - %"$$fundef_385_env_f_873" = getelementptr inbounds %"$$fundef_385_env_648", %"$$fundef_385_env_648"* %0, i32 0, i32 0 - %"$f_envload_874" = 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_385_env_f_873", align 8 + call void @llvm.dbg.declare(metadata %TName_Option_ByStr20** %"$g_32", metadata !618, metadata !DIExpression()), !dbg !617 + %"$$g_31_966" = load { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }, { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }* %"$g_31", align 8 + %"$$g_31_fptr_967" = extractvalue { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$$g_31_966", 0 + %"$$g_31_envptr_968" = extractvalue { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$$g_31_966", 1 + %"$t_969" = load %TName_List_ByStr20*, %TName_List_ByStr20** %t, align 8 + %"$$g_31_call_970" = call %TName_Option_ByStr20* %"$$g_31_fptr_967"(i8* %"$$g_31_envptr_968", %TName_List_ByStr20* %"$t_969"), !dbg !617 + store %TName_Option_ByStr20* %"$$g_31_call_970", %TName_Option_ByStr20** %"$g_32", align 8, !dbg !617 + %"$$g_32_971" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %"$g_32", align 8 + store %TName_Option_ByStr20* %"$$g_32_971", %TName_Option_ByStr20** %"$retval_388", align 8, !dbg !617 + %"$$retval_388_972" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %"$retval_388", align 8 + ret %TName_Option_ByStr20* %"$$retval_388_972" +} + +define internal %TName_Option_ByStr20* @"$fundef_385"(%"$$fundef_385_env_648"* %0, %TName_List_ByStr20* %1) !dbg !619 { +entry: + %"$l_952" = alloca %TName_List_ByStr20*, align 8 + store %TName_List_ByStr20* %1, %TName_List_ByStr20** %"$l_952", align 8 + call void @llvm.dbg.declare(metadata %TName_List_ByStr20** %"$l_952", metadata !620, metadata !DIExpression()), !dbg !621 + %"$$fundef_385_env_f_882" = getelementptr inbounds %"$$fundef_385_env_648", %"$$fundef_385_env_648"* %0, i32 0, i32 0 + %"$f_envload_883" = 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_385_env_f_882", 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_874", { { { %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_385_env_g_875" = getelementptr inbounds %"$$fundef_385_env_648", %"$$fundef_385_env_648"* %0, i32 0, i32 1 - %"$g_envload_876" = 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_385_env_g_875", 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_883", { { { %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_385_env_g_884" = getelementptr inbounds %"$$fundef_385_env_648", %"$$fundef_385_env_648"* %0, i32 0, i32 1 + %"$g_envload_885" = 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_385_env_g_884", 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_876", { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }* %g, align 8 - %"$$fundef_385_env_z_877" = getelementptr inbounds %"$$fundef_385_env_648", %"$$fundef_385_env_648"* %0, i32 0, i32 2 - %"$z_envload_878" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %"$$fundef_385_env_z_877", align 8 + store { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } %"$g_envload_885", { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }* %g, align 8 + %"$$fundef_385_env_z_886" = getelementptr inbounds %"$$fundef_385_env_648", %"$$fundef_385_env_648"* %0, i32 0, i32 2 + %"$z_envload_887" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %"$$fundef_385_env_z_886", align 8 %z = alloca %TName_Option_ByStr20*, align 8 - store %TName_Option_ByStr20* %"$z_envload_878", %TName_Option_ByStr20** %z, align 8 + store %TName_Option_ByStr20* %"$z_envload_887", %TName_Option_ByStr20** %z, align 8 %"$retval_386" = alloca %TName_Option_ByStr20*, align 8 - %"$gasrem_879" = load i64, i64* @_gasrem, align 8 - %"$gascmp_880" = icmp ugt i64 2, %"$gasrem_879" - br i1 %"$gascmp_880", label %"$out_of_gas_881", label %"$have_gas_882" - -"$out_of_gas_881": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_882" - -"$have_gas_882": ; preds = %"$out_of_gas_881", %entry - %"$consume_883" = sub i64 %"$gasrem_879", 2 - store i64 %"$consume_883", i64* @_gasrem, align 8 - %"$l_tag_885" = getelementptr inbounds %TName_List_ByStr20, %TName_List_ByStr20* %1, i32 0, i32 0 - %"$l_tag_886" = load i8, i8* %"$l_tag_885", align 1 - switch i8 %"$l_tag_886", label %"$empty_default_887" [ - i8 0, label %"$Cons_888" - i8 1, label %"$Nil_934" - ], !dbg !359 - -"$Cons_888": ; preds = %"$have_gas_882" - %"$l_889" = bitcast %TName_List_ByStr20* %1 to %CName_Cons_ByStr20* - %"$h_gep_890" = getelementptr inbounds %CName_Cons_ByStr20, %CName_Cons_ByStr20* %"$l_889", i32 0, i32 1 - %"$h_load_891" = load [20 x i8], [20 x i8]* %"$h_gep_890", align 1 + call void @llvm.dbg.declare(metadata %TName_Option_ByStr20** %"$retval_386", metadata !622, metadata !DIExpression()), !dbg !623 + %"$gasrem_888" = load i64, i64* @_gasrem, align 8 + %"$gascmp_889" = icmp ugt i64 2, %"$gasrem_888" + br i1 %"$gascmp_889", label %"$out_of_gas_890", label %"$have_gas_891" + +"$out_of_gas_890": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_891" + +"$have_gas_891": ; preds = %"$out_of_gas_890", %entry + %"$consume_892" = sub i64 %"$gasrem_888", 2 + store i64 %"$consume_892", i64* @_gasrem, align 8 + %"$l_tag_894" = getelementptr inbounds %TName_List_ByStr20, %TName_List_ByStr20* %1, i32 0, i32 0 + %"$l_tag_895" = load i8, i8* %"$l_tag_894", align 1 + switch i8 %"$l_tag_895", label %"$empty_default_896" [ + i8 0, label %"$Cons_897" + i8 1, label %"$Nil_943" + ], !dbg !623 + +"$Cons_897": ; preds = %"$have_gas_891" + %"$l_898" = bitcast %TName_List_ByStr20* %1 to %CName_Cons_ByStr20* + %"$h_gep_899" = getelementptr inbounds %CName_Cons_ByStr20, %CName_Cons_ByStr20* %"$l_898", i32 0, i32 1 + %"$h_load_900" = load [20 x i8], [20 x i8]* %"$h_gep_899", align 1 %h = alloca [20 x i8], align 1 - store [20 x i8] %"$h_load_891", [20 x i8]* %h, align 1 - %"$t_gep_892" = getelementptr inbounds %CName_Cons_ByStr20, %CName_Cons_ByStr20* %"$l_889", i32 0, i32 2 - %"$t_load_893" = load %TName_List_ByStr20*, %TName_List_ByStr20** %"$t_gep_892", align 8 + store [20 x i8] %"$h_load_900", [20 x i8]* %h, align 1 + %"$t_gep_901" = getelementptr inbounds %CName_Cons_ByStr20, %CName_Cons_ByStr20* %"$l_898", i32 0, i32 2 + %"$t_load_902" = load %TName_List_ByStr20*, %TName_List_ByStr20** %"$t_gep_901", align 8 %t = alloca %TName_List_ByStr20*, align 8 - store %TName_List_ByStr20* %"$t_load_893", %TName_List_ByStr20** %t, 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" + store %TName_List_ByStr20* %"$t_load_902", %TName_List_ByStr20** %t, 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_896": ; preds = %"$Cons_888" +"$out_of_gas_905": ; preds = %"$Cons_897" call void @_out_of_gas() - br label %"$have_gas_897" + br label %"$have_gas_906" -"$have_gas_897": ; preds = %"$out_of_gas_896", %"$Cons_888" - %"$consume_898" = sub i64 %"$gasrem_894", 1 - store i64 %"$consume_898", i64* @_gasrem, align 8 +"$have_gas_906": ; preds = %"$out_of_gas_905", %"$Cons_897" + %"$consume_907" = sub i64 %"$gasrem_903", 1 + store i64 %"$consume_907", i64* @_gasrem, align 8 %partial = alloca { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* }, align 8 - %"$gasrem_899" = load i64, i64* @_gasrem, align 8 - %"$gascmp_900" = icmp ugt i64 1, %"$gasrem_899" - br i1 %"$gascmp_900", label %"$out_of_gas_901", label %"$have_gas_902" - -"$out_of_gas_901": ; preds = %"$have_gas_897" - call void @_out_of_gas() - br label %"$have_gas_902" - -"$have_gas_902": ; preds = %"$out_of_gas_901", %"$have_gas_897" - %"$consume_903" = sub i64 %"$gasrem_899", 1 - store i64 %"$consume_903", i64* @_gasrem, align 8 - %"$$fundef_387_envp_904_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_387_envp_904_salloc" = call i8* @_salloc(i8* %"$$fundef_387_envp_904_load", i64 24) - %"$$fundef_387_envp_904" = bitcast i8* %"$$fundef_387_envp_904_salloc" to %"$$fundef_387_env_647"* - %"$$fundef_387_env_voidp_906" = bitcast %"$$fundef_387_env_647"* %"$$fundef_387_envp_904" to i8* - %"$$fundef_387_cloval_907" = insertvalue { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* } { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)* bitcast (%TName_Option_ByStr20* (%"$$fundef_387_env_647"*, %TName_Option_ByStr20*)* @"$fundef_387" to %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*), i8* undef }, i8* %"$$fundef_387_env_voidp_906", 1 - %"$$fundef_387_env_g_908" = getelementptr inbounds %"$$fundef_387_env_647", %"$$fundef_387_env_647"* %"$$fundef_387_envp_904", i32 0, i32 0 - %"$g_909" = 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_909", { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }* %"$$fundef_387_env_g_908", align 8 - %"$$fundef_387_env_t_910" = getelementptr inbounds %"$$fundef_387_env_647", %"$$fundef_387_env_647"* %"$$fundef_387_envp_904", i32 0, i32 1 - %"$t_911" = load %TName_List_ByStr20*, %TName_List_ByStr20** %t, align 8 - store %TName_List_ByStr20* %"$t_911", %TName_List_ByStr20** %"$$fundef_387_env_t_910", align 8 - store { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* } %"$$fundef_387_cloval_907", { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* }* %partial, align 8, !dbg !360 - %"$gasrem_912" = load i64, i64* @_gasrem, align 8 - %"$gascmp_913" = icmp ugt i64 1, %"$gasrem_912" - br i1 %"$gascmp_913", label %"$out_of_gas_914", label %"$have_gas_915" - -"$out_of_gas_914": ; preds = %"$have_gas_902" - call void @_out_of_gas() - br label %"$have_gas_915" - -"$have_gas_915": ; preds = %"$out_of_gas_914", %"$have_gas_902" - %"$consume_916" = sub i64 %"$gasrem_912", 1 - store i64 %"$consume_916", i64* @_gasrem, align 8 + %"$gasrem_908" = load i64, i64* @_gasrem, align 8 + %"$gascmp_909" = icmp ugt i64 1, %"$gasrem_908" + br i1 %"$gascmp_909", label %"$out_of_gas_910", label %"$have_gas_911" + +"$out_of_gas_910": ; preds = %"$have_gas_906" + call void @_out_of_gas() + br label %"$have_gas_911" + +"$have_gas_911": ; preds = %"$out_of_gas_910", %"$have_gas_906" + %"$consume_912" = sub i64 %"$gasrem_908", 1 + store i64 %"$consume_912", i64* @_gasrem, align 8 + %"$$fundef_387_envp_913_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_387_envp_913_salloc" = call i8* @_salloc(i8* %"$$fundef_387_envp_913_load", i64 24) + %"$$fundef_387_envp_913" = bitcast i8* %"$$fundef_387_envp_913_salloc" to %"$$fundef_387_env_647"* + %"$$fundef_387_env_voidp_915" = bitcast %"$$fundef_387_env_647"* %"$$fundef_387_envp_913" to i8* + %"$$fundef_387_cloval_916" = insertvalue { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* } { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)* bitcast (%TName_Option_ByStr20* (%"$$fundef_387_env_647"*, %TName_Option_ByStr20*)* @"$fundef_387" to %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*), i8* undef }, i8* %"$$fundef_387_env_voidp_915", 1 + %"$$fundef_387_env_g_917" = getelementptr inbounds %"$$fundef_387_env_647", %"$$fundef_387_env_647"* %"$$fundef_387_envp_913", i32 0, i32 0 + %"$g_918" = 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_918", { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }* %"$$fundef_387_env_g_917", align 8 + %"$$fundef_387_env_t_919" = getelementptr inbounds %"$$fundef_387_env_647", %"$$fundef_387_env_647"* %"$$fundef_387_envp_913", i32 0, i32 1 + %"$t_920" = load %TName_List_ByStr20*, %TName_List_ByStr20** %t, align 8 + store %TName_List_ByStr20* %"$t_920", %TName_List_ByStr20** %"$$fundef_387_env_t_919", align 8 + store { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* } %"$$fundef_387_cloval_916", { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* }* %partial, align 8, !dbg !624 + %"$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_911" + call void @_out_of_gas() + br label %"$have_gas_924" + +"$have_gas_924": ; preds = %"$out_of_gas_923", %"$have_gas_911" + %"$consume_925" = sub i64 %"$gasrem_921", 1 + store i64 %"$consume_925", i64* @_gasrem, align 8 %"$f_33" = alloca { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* }, align 8 - %"$f_917" = 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_918" = 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_917", 0 - %"$f_envptr_919" = 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_917", 1 - %"$z_920" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %z, align 8 - %"$f_call_921" = call { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } %"$f_fptr_918"(i8* %"$f_envptr_919", %TName_Option_ByStr20* %"$z_920"), !dbg !363 - store { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } %"$f_call_921", { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* }* %"$f_33", align 8, !dbg !363 + %"$f_926" = 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_927" = 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_926", 0 + %"$f_envptr_928" = 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_926", 1 + %"$z_929" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %z, align 8 + %"$f_call_930" = call { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } %"$f_fptr_927"(i8* %"$f_envptr_928", %TName_Option_ByStr20* %"$z_929"), !dbg !627 + store { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } %"$f_call_930", { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* }* %"$f_33", align 8, !dbg !627 %"$f_34" = alloca { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* }, align 8 - %"$$f_33_922" = 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_33", align 8 - %"$$f_33_fptr_923" = extractvalue { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } %"$$f_33_922", 0 - %"$$f_33_envptr_924" = extractvalue { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } %"$$f_33_922", 1 - %"$$f_33_h_925" = alloca [20 x i8], align 1 - %"$h_926" = load [20 x i8], [20 x i8]* %h, align 1 - store [20 x i8] %"$h_926", [20 x i8]* %"$$f_33_h_925", align 1 - %"$$f_33_call_927" = call { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } %"$$f_33_fptr_923"(i8* %"$$f_33_envptr_924", [20 x i8]* %"$$f_33_h_925"), !dbg !363 - store { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } %"$$f_33_call_927", { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* }* %"$f_34", align 8, !dbg !363 + %"$$f_33_931" = 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_33", align 8 + %"$$f_33_fptr_932" = extractvalue { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } %"$$f_33_931", 0 + %"$$f_33_envptr_933" = extractvalue { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } %"$$f_33_931", 1 + %"$$f_33_h_934" = alloca [20 x i8], align 1 + %"$h_935" = load [20 x i8], [20 x i8]* %h, align 1 + store [20 x i8] %"$h_935", [20 x i8]* %"$$f_33_h_934", align 1 + %"$$f_33_call_936" = call { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } %"$$f_33_fptr_932"(i8* %"$$f_33_envptr_933", [20 x i8]* %"$$f_33_h_934"), !dbg !627 + store { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } %"$$f_33_call_936", { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* }* %"$f_34", align 8, !dbg !627 %"$f_35" = alloca %TName_Option_ByStr20*, align 8 - %"$$f_34_928" = 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_34", align 8 - %"$$f_34_fptr_929" = extractvalue { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } %"$$f_34_928", 0 - %"$$f_34_envptr_930" = extractvalue { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } %"$$f_34_928", 1 - %"$partial_931" = load { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* }, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* }* %partial, align 8 - %"$$f_34_call_932" = call %TName_Option_ByStr20* %"$$f_34_fptr_929"(i8* %"$$f_34_envptr_930", { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* } %"$partial_931"), !dbg !363 - store %TName_Option_ByStr20* %"$$f_34_call_932", %TName_Option_ByStr20** %"$f_35", align 8, !dbg !363 - %"$$f_35_933" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %"$f_35", align 8 - store %TName_Option_ByStr20* %"$$f_35_933", %TName_Option_ByStr20** %"$retval_386", align 8, !dbg !363 - br label %"$matchsucc_884" - -"$Nil_934": ; preds = %"$have_gas_882" - %"$l_935" = bitcast %TName_List_ByStr20* %1 to %CName_Nil_ByStr20* - %"$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 = %"$Nil_934" - call void @_out_of_gas() - br label %"$have_gas_939" - -"$have_gas_939": ; preds = %"$out_of_gas_938", %"$Nil_934" - %"$consume_940" = sub i64 %"$gasrem_936", 1 - store i64 %"$consume_940", i64* @_gasrem, align 8 - %"$z_941" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %z, align 8 - store %TName_Option_ByStr20* %"$z_941", %TName_Option_ByStr20** %"$retval_386", align 8, !dbg !364 - br label %"$matchsucc_884" - -"$empty_default_887": ; preds = %"$have_gas_882" - br label %"$matchsucc_884" - -"$matchsucc_884": ; preds = %"$have_gas_939", %"$have_gas_915", %"$empty_default_887" - %"$$retval_386_942" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %"$retval_386", align 8 - ret %TName_Option_ByStr20* %"$$retval_386_942" -} - -define internal { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } @"$fundef_383"(%"$$fundef_383_env_649"* %0, %TName_Option_ByStr20* %1) !dbg !366 { -entry: - %"$$fundef_383_env_f_849" = getelementptr inbounds %"$$fundef_383_env_649", %"$$fundef_383_env_649"* %0, i32 0, i32 0 - %"$f_envload_850" = 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_383_env_f_849", align 8 + call void @llvm.dbg.declare(metadata %TName_Option_ByStr20** %"$f_35", metadata !628, metadata !DIExpression()), !dbg !627 + %"$$f_34_937" = 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_34", align 8 + %"$$f_34_fptr_938" = extractvalue { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } %"$$f_34_937", 0 + %"$$f_34_envptr_939" = extractvalue { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } %"$$f_34_937", 1 + %"$partial_940" = load { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* }, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* }* %partial, align 8 + %"$$f_34_call_941" = call %TName_Option_ByStr20* %"$$f_34_fptr_938"(i8* %"$$f_34_envptr_939", { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* } %"$partial_940"), !dbg !627 + store %TName_Option_ByStr20* %"$$f_34_call_941", %TName_Option_ByStr20** %"$f_35", align 8, !dbg !627 + %"$$f_35_942" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %"$f_35", align 8 + store %TName_Option_ByStr20* %"$$f_35_942", %TName_Option_ByStr20** %"$retval_386", align 8, !dbg !627 + br label %"$matchsucc_893" + +"$Nil_943": ; preds = %"$have_gas_891" + %"$l_944" = bitcast %TName_List_ByStr20* %1 to %CName_Nil_ByStr20* + %"$gasrem_945" = load i64, i64* @_gasrem, align 8 + %"$gascmp_946" = icmp ugt i64 1, %"$gasrem_945" + br i1 %"$gascmp_946", label %"$out_of_gas_947", label %"$have_gas_948" + +"$out_of_gas_947": ; preds = %"$Nil_943" + call void @_out_of_gas() + br label %"$have_gas_948" + +"$have_gas_948": ; preds = %"$out_of_gas_947", %"$Nil_943" + %"$consume_949" = sub i64 %"$gasrem_945", 1 + store i64 %"$consume_949", i64* @_gasrem, align 8 + %"$z_950" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %z, align 8 + store %TName_Option_ByStr20* %"$z_950", %TName_Option_ByStr20** %"$retval_386", align 8, !dbg !629 + br label %"$matchsucc_893" + +"$empty_default_896": ; preds = %"$have_gas_891" + br label %"$matchsucc_893" + +"$matchsucc_893": ; preds = %"$have_gas_948", %"$have_gas_924", %"$empty_default_896" + %"$$retval_386_951" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %"$retval_386", align 8 + ret %TName_Option_ByStr20* %"$$retval_386_951" +} + +define internal { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } @"$fundef_383"(%"$$fundef_383_env_649"* %0, %TName_Option_ByStr20* %1) !dbg !631 { +entry: + %"$z_881" = alloca %TName_Option_ByStr20*, align 8 + store %TName_Option_ByStr20* %1, %TName_Option_ByStr20** %"$z_881", align 8 + call void @llvm.dbg.declare(metadata %TName_Option_ByStr20** %"$z_881", metadata !632, metadata !DIExpression()), !dbg !633 + %"$$fundef_383_env_f_857" = getelementptr inbounds %"$$fundef_383_env_649", %"$$fundef_383_env_649"* %0, i32 0, i32 0 + %"$f_envload_858" = 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_383_env_f_857", 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_850", { { { %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_383_env_g_851" = getelementptr inbounds %"$$fundef_383_env_649", %"$$fundef_383_env_649"* %0, i32 0, i32 1 - %"$g_envload_852" = 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_383_env_g_851", 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_858", { { { %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_383_env_g_859" = getelementptr inbounds %"$$fundef_383_env_649", %"$$fundef_383_env_649"* %0, i32 0, i32 1 + %"$g_envload_860" = 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_383_env_g_859", 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_852", { { %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_envload_860", { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }* %g, align 8 %"$retval_384" = alloca { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }, align 8 - %"$gasrem_853" = load i64, i64* @_gasrem, align 8 - %"$gascmp_854" = icmp ugt i64 1, %"$gasrem_853" - br i1 %"$gascmp_854", label %"$out_of_gas_855", label %"$have_gas_856" - -"$out_of_gas_855": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_856" - -"$have_gas_856": ; preds = %"$out_of_gas_855", %entry - %"$consume_857" = sub i64 %"$gasrem_853", 1 - store i64 %"$consume_857", i64* @_gasrem, 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 = %"$have_gas_856" - call void @_out_of_gas() - br label %"$have_gas_861" - -"$have_gas_861": ; preds = %"$out_of_gas_860", %"$have_gas_856" - %"$consume_862" = sub i64 %"$gasrem_858", 1 - store i64 %"$consume_862", i64* @_gasrem, align 8 - %"$$fundef_385_envp_863_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_385_envp_863_salloc" = call i8* @_salloc(i8* %"$$fundef_385_envp_863_load", i64 40) - %"$$fundef_385_envp_863" = bitcast i8* %"$$fundef_385_envp_863_salloc" to %"$$fundef_385_env_648"* - %"$$fundef_385_env_voidp_865" = bitcast %"$$fundef_385_env_648"* %"$$fundef_385_envp_863" to i8* - %"$$fundef_385_cloval_866" = insertvalue { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)* bitcast (%TName_Option_ByStr20* (%"$$fundef_385_env_648"*, %TName_List_ByStr20*)* @"$fundef_385" to %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*), i8* undef }, i8* %"$$fundef_385_env_voidp_865", 1 - %"$$fundef_385_env_f_867" = getelementptr inbounds %"$$fundef_385_env_648", %"$$fundef_385_env_648"* %"$$fundef_385_envp_863", i32 0, i32 0 - %"$f_868" = 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_868", { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }* %"$$fundef_385_env_f_867", align 8 - %"$$fundef_385_env_g_869" = getelementptr inbounds %"$$fundef_385_env_648", %"$$fundef_385_env_648"* %"$$fundef_385_envp_863", i32 0, i32 1 - %"$g_870" = 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_870", { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }* %"$$fundef_385_env_g_869", align 8 - %"$$fundef_385_env_z_871" = getelementptr inbounds %"$$fundef_385_env_648", %"$$fundef_385_env_648"* %"$$fundef_385_envp_863", i32 0, i32 2 - store %TName_Option_ByStr20* %1, %TName_Option_ByStr20** %"$$fundef_385_env_z_871", align 8 - store { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$$fundef_385_cloval_866", { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }* %"$retval_384", align 8, !dbg !367 - %"$$retval_384_872" = load { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }, { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }* %"$retval_384", align 8 - ret { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$$retval_384_872" -} - -define internal { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } @"$fundef_381"(%"$$fundef_381_env_650"* %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 !368 { + %"$gasrem_861" = load i64, i64* @_gasrem, align 8 + %"$gascmp_862" = icmp ugt i64 1, %"$gasrem_861" + br i1 %"$gascmp_862", label %"$out_of_gas_863", label %"$have_gas_864" + +"$out_of_gas_863": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_864" + +"$have_gas_864": ; preds = %"$out_of_gas_863", %entry + %"$consume_865" = sub i64 %"$gasrem_861", 1 + store i64 %"$consume_865", i64* @_gasrem, align 8 + %"$gasrem_866" = load i64, i64* @_gasrem, align 8 + %"$gascmp_867" = icmp ugt i64 1, %"$gasrem_866" + br i1 %"$gascmp_867", label %"$out_of_gas_868", label %"$have_gas_869" + +"$out_of_gas_868": ; preds = %"$have_gas_864" + call void @_out_of_gas() + br label %"$have_gas_869" + +"$have_gas_869": ; preds = %"$out_of_gas_868", %"$have_gas_864" + %"$consume_870" = sub i64 %"$gasrem_866", 1 + store i64 %"$consume_870", i64* @_gasrem, align 8 + %"$$fundef_385_envp_871_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_385_envp_871_salloc" = call i8* @_salloc(i8* %"$$fundef_385_envp_871_load", i64 40) + %"$$fundef_385_envp_871" = bitcast i8* %"$$fundef_385_envp_871_salloc" to %"$$fundef_385_env_648"* + %"$$fundef_385_env_voidp_873" = bitcast %"$$fundef_385_env_648"* %"$$fundef_385_envp_871" to i8* + %"$$fundef_385_cloval_874" = insertvalue { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)* bitcast (%TName_Option_ByStr20* (%"$$fundef_385_env_648"*, %TName_List_ByStr20*)* @"$fundef_385" to %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*), i8* undef }, i8* %"$$fundef_385_env_voidp_873", 1 + %"$$fundef_385_env_f_875" = getelementptr inbounds %"$$fundef_385_env_648", %"$$fundef_385_env_648"* %"$$fundef_385_envp_871", i32 0, i32 0 + %"$f_876" = 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_876", { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }* %"$$fundef_385_env_f_875", align 8 + %"$$fundef_385_env_g_877" = getelementptr inbounds %"$$fundef_385_env_648", %"$$fundef_385_env_648"* %"$$fundef_385_envp_871", i32 0, i32 1 + %"$g_878" = 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_878", { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }* %"$$fundef_385_env_g_877", align 8 + %"$$fundef_385_env_z_879" = getelementptr inbounds %"$$fundef_385_env_648", %"$$fundef_385_env_648"* %"$$fundef_385_envp_871", i32 0, i32 2 + store %TName_Option_ByStr20* %1, %TName_Option_ByStr20** %"$$fundef_385_env_z_879", align 8 + store { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$$fundef_385_cloval_874", { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }* %"$retval_384", align 8, !dbg !634 + %"$$retval_384_880" = load { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }, { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }* %"$retval_384", align 8 + ret { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$$retval_384_880" +} + +define internal { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } @"$fundef_381"(%"$$fundef_381_env_650"* %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 !635 { entry: %"$retval_382" = alloca { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }, align 8 - %"$gasrem_835" = load i64, i64* @_gasrem, align 8 - %"$gascmp_836" = icmp ugt i64 1, %"$gasrem_835" - br i1 %"$gascmp_836", label %"$out_of_gas_837", label %"$have_gas_838" - -"$out_of_gas_837": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_838" - -"$have_gas_838": ; preds = %"$out_of_gas_837", %entry - %"$consume_839" = sub i64 %"$gasrem_835", 1 - store i64 %"$consume_839", i64* @_gasrem, align 8 - %"$$fundef_383_envp_840_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_383_envp_840_salloc" = call i8* @_salloc(i8* %"$$fundef_383_envp_840_load", i64 32) - %"$$fundef_383_envp_840" = bitcast i8* %"$$fundef_383_envp_840_salloc" to %"$$fundef_383_env_649"* - %"$$fundef_383_env_voidp_842" = bitcast %"$$fundef_383_env_649"* %"$$fundef_383_envp_840" to i8* - %"$$fundef_383_cloval_843" = 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_383_env_649"*, %TName_Option_ByStr20*)* @"$fundef_383" to { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*), i8* undef }, i8* %"$$fundef_383_env_voidp_842", 1 + %"$gasrem_843" = load i64, i64* @_gasrem, align 8 + %"$gascmp_844" = icmp ugt i64 1, %"$gasrem_843" + br i1 %"$gascmp_844", label %"$out_of_gas_845", label %"$have_gas_846" + +"$out_of_gas_845": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_846" + +"$have_gas_846": ; preds = %"$out_of_gas_845", %entry + %"$consume_847" = sub i64 %"$gasrem_843", 1 + store i64 %"$consume_847", i64* @_gasrem, align 8 + %"$$fundef_383_envp_848_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_383_envp_848_salloc" = call i8* @_salloc(i8* %"$$fundef_383_envp_848_load", i64 32) + %"$$fundef_383_envp_848" = bitcast i8* %"$$fundef_383_envp_848_salloc" to %"$$fundef_383_env_649"* + %"$$fundef_383_env_voidp_850" = bitcast %"$$fundef_383_env_649"* %"$$fundef_383_envp_848" to i8* + %"$$fundef_383_cloval_851" = 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_383_env_649"*, %TName_Option_ByStr20*)* @"$fundef_383" to { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*), i8* undef }, i8* %"$$fundef_383_env_voidp_850", 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_383_cloval_843", { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }* %g, align 8, !dbg !369 - %"$$fundef_383_env_f_844" = getelementptr inbounds %"$$fundef_383_env_649", %"$$fundef_383_env_649"* %"$$fundef_383_envp_840", 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_383_env_f_844", align 8 - %"$$fundef_383_env_g_845" = getelementptr inbounds %"$$fundef_383_env_649", %"$$fundef_383_env_649"* %"$$fundef_383_envp_840", i32 0, i32 1 - %"$g_846" = 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_846", { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }* %"$$fundef_383_env_g_845", align 8 - %"$g_847" = 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_847", { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }* %"$retval_382", align 8, !dbg !369 - %"$$retval_382_848" = 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_382", align 8 - ret { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } %"$$retval_382_848" + store { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } %"$$fundef_383_cloval_851", { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }* %g, align 8, !dbg !636 + %"$$fundef_383_env_f_852" = getelementptr inbounds %"$$fundef_383_env_649", %"$$fundef_383_env_649"* %"$$fundef_383_envp_848", 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_383_env_f_852", align 8 + %"$$fundef_383_env_g_853" = getelementptr inbounds %"$$fundef_383_env_649", %"$$fundef_383_env_649"* %"$$fundef_383_envp_848", i32 0, i32 1 + %"$g_854" = 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_854", { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }* %"$$fundef_383_env_g_853", align 8 + %"$g_855" = 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_855", { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }* %"$retval_382", align 8, !dbg !636 + %"$$retval_382_856" = 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_382", align 8 + ret { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } %"$$retval_382_856" } -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_379"(%"$$fundef_379_env_651"* %0) !dbg !370 { +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_379"(%"$$fundef_379_env_651"* %0) !dbg !637 { entry: %"$retval_380" = 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_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" + %"$gasrem_834" = load i64, i64* @_gasrem, align 8 + %"$gascmp_835" = icmp ugt i64 1, %"$gasrem_834" + br i1 %"$gascmp_835", label %"$out_of_gas_836", label %"$have_gas_837" -"$out_of_gas_828": ; preds = %entry +"$out_of_gas_836": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_829" + br label %"$have_gas_837" -"$have_gas_829": ; preds = %"$out_of_gas_828", %entry - %"$consume_830" = sub i64 %"$gasrem_826", 1 - store i64 %"$consume_830", 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_381_env_650"*, { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* })* @"$fundef_381" 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_380", align 8, !dbg !371 - %"$$retval_380_834" = 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_380", 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_380_834" +"$have_gas_837": ; preds = %"$out_of_gas_836", %entry + %"$consume_838" = sub i64 %"$gasrem_834", 1 + store i64 %"$consume_838", 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_381_env_650"*, { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* })* @"$fundef_381" 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_380", align 8, !dbg !638 + %"$$retval_380_842" = 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_380", 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_380_842" } -define internal { i8*, i8* }* @"$fundef_377"(%"$$fundef_377_env_652"* %0) !dbg !372 { +define internal { i8*, i8* }* @"$fundef_377"(%"$$fundef_377_env_652"* %0) !dbg !639 { entry: %"$retval_378" = alloca { i8*, i8* }*, align 8 - %"$gasrem_814" = load i64, i64* @_gasrem, align 8 - %"$gascmp_815" = icmp ugt i64 1, %"$gasrem_814" - br i1 %"$gascmp_815", label %"$out_of_gas_816", label %"$have_gas_817" - -"$out_of_gas_816": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_817" - -"$have_gas_817": ; preds = %"$out_of_gas_816", %entry - %"$consume_818" = sub i64 %"$gasrem_814", 1 - store i64 %"$consume_818", i64* @_gasrem, align 8 - %"$dyndisp_table_822_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$dyndisp_table_822_salloc_salloc" = call i8* @_salloc(i8* %"$dyndisp_table_822_salloc_load", i64 48) - %"$dyndisp_table_822_salloc" = bitcast i8* %"$dyndisp_table_822_salloc_salloc" to [3 x { i8*, i8* }]* - %"$dyndisp_table_822" = bitcast [3 x { i8*, i8* }]* %"$dyndisp_table_822_salloc" to { i8*, i8* }* - %"$dyndisp_gep_823" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_822", i32 1 - %"$dyndisp_pcast_824" = bitcast { i8*, i8* }* %"$dyndisp_gep_823" 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_379_env_651"*)* @"$fundef_379" 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_824", align 8 - store { i8*, i8* }* %"$dyndisp_table_822", { i8*, i8* }** %"$retval_378", align 8, !dbg !373 - %"$$retval_378_825" = load { i8*, i8* }*, { i8*, i8* }** %"$retval_378", align 8 - ret { i8*, i8* }* %"$$retval_378_825" -} - -define internal %TName_Bool* @"$fundef_375"(%"$$fundef_375_env_653"* %0, [20 x i8]* %1) !dbg !374 { -entry: + %"$gasrem_822" = load i64, i64* @_gasrem, align 8 + %"$gascmp_823" = icmp ugt i64 1, %"$gasrem_822" + br i1 %"$gascmp_823", label %"$out_of_gas_824", label %"$have_gas_825" + +"$out_of_gas_824": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_825" + +"$have_gas_825": ; preds = %"$out_of_gas_824", %entry + %"$consume_826" = sub i64 %"$gasrem_822", 1 + store i64 %"$consume_826", i64* @_gasrem, align 8 + %"$dyndisp_table_830_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$dyndisp_table_830_salloc_salloc" = call i8* @_salloc(i8* %"$dyndisp_table_830_salloc_load", i64 48) + %"$dyndisp_table_830_salloc" = bitcast i8* %"$dyndisp_table_830_salloc_salloc" to [3 x { i8*, i8* }]* + %"$dyndisp_table_830" = bitcast [3 x { i8*, i8* }]* %"$dyndisp_table_830_salloc" to { i8*, i8* }* + %"$dyndisp_gep_831" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_830", i32 1 + %"$dyndisp_pcast_832" = bitcast { i8*, i8* }* %"$dyndisp_gep_831" 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_379_env_651"*)* @"$fundef_379" 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_832", align 8 + store { i8*, i8* }* %"$dyndisp_table_830", { i8*, i8* }** %"$retval_378", align 8, !dbg !640 + %"$$retval_378_833" = load { i8*, i8* }*, { i8*, i8* }** %"$retval_378", align 8 + ret { i8*, i8* }* %"$$retval_378_833" +} + +define internal %TName_Bool* @"$fundef_375"(%"$$fundef_375_env_653"* %0, [20 x i8]* %1) !dbg !641 { +entry: + %"$bs2_821" = alloca [20 x i8]*, align 8 + store [20 x i8]* %1, [20 x i8]** %"$bs2_821", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$bs2_821", metadata !642, metadata !DIExpression()), !dbg !643 %bs2 = load [20 x i8], [20 x i8]* %1, align 1 - %"$$fundef_375_env_bs1_798" = getelementptr inbounds %"$$fundef_375_env_653", %"$$fundef_375_env_653"* %0, i32 0, i32 0 - %"$bs1_envload_799" = load [20 x i8], [20 x i8]* %"$$fundef_375_env_bs1_798", align 1 + %"$$fundef_375_env_bs1_805" = getelementptr inbounds %"$$fundef_375_env_653", %"$$fundef_375_env_653"* %0, i32 0, i32 0 + %"$bs1_envload_806" = load [20 x i8], [20 x i8]* %"$$fundef_375_env_bs1_805", align 1 %bs1 = alloca [20 x i8], align 1 - store [20 x i8] %"$bs1_envload_799", [20 x i8]* %bs1, align 1 + store [20 x i8] %"$bs1_envload_806", [20 x i8]* %bs1, align 1 %"$retval_376" = alloca %TName_Bool*, align 8 - %"$gasrem_800" = load i64, i64* @_gasrem, align 8 - %"$gascmp_801" = icmp ugt i64 20, %"$gasrem_800" - br i1 %"$gascmp_801", label %"$out_of_gas_802", label %"$have_gas_803" - -"$out_of_gas_802": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_803" - -"$have_gas_803": ; preds = %"$out_of_gas_802", %entry - %"$consume_804" = sub i64 %"$gasrem_800", 20 - store i64 %"$consume_804", i64* @_gasrem, align 8 - %"$execptr_load_805" = load i8*, i8** @_execptr, align 8 - %"$eq_bs1_806" = alloca [20 x i8], align 1 - %"$bs1_807" = load [20 x i8], [20 x i8]* %bs1, align 1 - store [20 x i8] %"$bs1_807", [20 x i8]* %"$eq_bs1_806", align 1 - %"$$eq_bs1_806_808" = bitcast [20 x i8]* %"$eq_bs1_806" to i8* - %"$eq_bs2_809" = alloca [20 x i8], align 1 - store [20 x i8] %bs2, [20 x i8]* %"$eq_bs2_809", align 1 - %"$$eq_bs2_809_810" = bitcast [20 x i8]* %"$eq_bs2_809" to i8* - %"$eq_call_811" = call %TName_Bool* @_eq_ByStrX(i8* %"$execptr_load_805", i32 20, i8* %"$$eq_bs1_806_808", i8* %"$$eq_bs2_809_810"), !dbg !375 - store %TName_Bool* %"$eq_call_811", %TName_Bool** %"$retval_376", align 8, !dbg !375 - %"$$retval_376_813" = load %TName_Bool*, %TName_Bool** %"$retval_376", align 8 - ret %TName_Bool* %"$$retval_376_813" -} - -define internal { %TName_Bool* (i8*, [20 x i8]*)*, i8* } @"$fundef_373"(%"$$fundef_373_env_654"* %0, [20 x i8]* %1) !dbg !376 { -entry: + call void @llvm.dbg.declare(metadata %TName_Bool** %"$retval_376", metadata !644, metadata !DIExpression()), !dbg !645 + %"$gasrem_807" = load i64, i64* @_gasrem, align 8 + %"$gascmp_808" = icmp ugt i64 20, %"$gasrem_807" + br i1 %"$gascmp_808", label %"$out_of_gas_809", label %"$have_gas_810" + +"$out_of_gas_809": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_810" + +"$have_gas_810": ; preds = %"$out_of_gas_809", %entry + %"$consume_811" = sub i64 %"$gasrem_807", 20 + store i64 %"$consume_811", i64* @_gasrem, align 8 + %"$execptr_load_812" = load i8*, i8** @_execptr, align 8 + %"$eq_bs1_813" = alloca [20 x i8], align 1 + %"$bs1_814" = load [20 x i8], [20 x i8]* %bs1, align 1 + store [20 x i8] %"$bs1_814", [20 x i8]* %"$eq_bs1_813", align 1 + %"$$eq_bs1_813_815" = bitcast [20 x i8]* %"$eq_bs1_813" to i8* + %"$eq_bs2_816" = alloca [20 x i8], align 1 + store [20 x i8] %bs2, [20 x i8]* %"$eq_bs2_816", align 1 + %"$$eq_bs2_816_817" = bitcast [20 x i8]* %"$eq_bs2_816" to i8* + %"$eq_call_818" = call %TName_Bool* @_eq_ByStrX(i8* %"$execptr_load_812", i32 20, i8* %"$$eq_bs1_813_815", i8* %"$$eq_bs2_816_817"), !dbg !645 + store %TName_Bool* %"$eq_call_818", %TName_Bool** %"$retval_376", align 8, !dbg !645 + %"$$retval_376_820" = load %TName_Bool*, %TName_Bool** %"$retval_376", align 8 + ret %TName_Bool* %"$$retval_376_820" +} + +define internal { %TName_Bool* (i8*, [20 x i8]*)*, i8* } @"$fundef_373"(%"$$fundef_373_env_654"* %0, [20 x i8]* %1) !dbg !646 { +entry: + %"$bs1_804" = alloca [20 x i8]*, align 8 + store [20 x i8]* %1, [20 x i8]** %"$bs1_804", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$bs1_804", metadata !647, metadata !DIExpression()), !dbg !648 %bs1 = load [20 x i8], [20 x i8]* %1, align 1 %"$retval_374" = alloca { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, align 8 - %"$gasrem_787" = load i64, i64* @_gasrem, align 8 - %"$gascmp_788" = icmp ugt i64 1, %"$gasrem_787" - br i1 %"$gascmp_788", label %"$out_of_gas_789", label %"$have_gas_790" - -"$out_of_gas_789": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_790" - -"$have_gas_790": ; preds = %"$out_of_gas_789", %entry - %"$consume_791" = sub i64 %"$gasrem_787", 1 - store i64 %"$consume_791", i64* @_gasrem, align 8 - %"$$fundef_375_envp_792_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_375_envp_792_salloc" = call i8* @_salloc(i8* %"$$fundef_375_envp_792_load", i64 20) - %"$$fundef_375_envp_792" = bitcast i8* %"$$fundef_375_envp_792_salloc" to %"$$fundef_375_env_653"* - %"$$fundef_375_env_voidp_794" = bitcast %"$$fundef_375_env_653"* %"$$fundef_375_envp_792" to i8* - %"$$fundef_375_cloval_795" = insertvalue { %TName_Bool* (i8*, [20 x i8]*)*, i8* } { %TName_Bool* (i8*, [20 x i8]*)* bitcast (%TName_Bool* (%"$$fundef_375_env_653"*, [20 x i8]*)* @"$fundef_375" to %TName_Bool* (i8*, [20 x i8]*)*), i8* undef }, i8* %"$$fundef_375_env_voidp_794", 1 - %"$$fundef_375_env_bs1_796" = getelementptr inbounds %"$$fundef_375_env_653", %"$$fundef_375_env_653"* %"$$fundef_375_envp_792", i32 0, i32 0 - store [20 x i8] %bs1, [20 x i8]* %"$$fundef_375_env_bs1_796", align 1 - store { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$$fundef_375_cloval_795", { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %"$retval_374", align 8, !dbg !377 - %"$$retval_374_797" = load { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %"$retval_374", align 8 - ret { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$$retval_374_797" -} - -define internal %TName_List_Message* @"$fundef_415"(%"$$fundef_415_env_655"* %0, i8* %1) !dbg !378 { -entry: - %"$$fundef_415_env_ud-registry.nilMessage_773" = getelementptr inbounds %"$$fundef_415_env_655", %"$$fundef_415_env_655"* %0, i32 0, i32 0 - %"$ud-registry.nilMessage_envload_774" = load %TName_List_Message*, %TName_List_Message** %"$$fundef_415_env_ud-registry.nilMessage_773", align 8 + %"$gasrem_793" = load i64, i64* @_gasrem, align 8 + %"$gascmp_794" = icmp ugt i64 1, %"$gasrem_793" + br i1 %"$gascmp_794", label %"$out_of_gas_795", label %"$have_gas_796" + +"$out_of_gas_795": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_796" + +"$have_gas_796": ; preds = %"$out_of_gas_795", %entry + %"$consume_797" = sub i64 %"$gasrem_793", 1 + store i64 %"$consume_797", i64* @_gasrem, align 8 + %"$$fundef_375_envp_798_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_375_envp_798_salloc" = call i8* @_salloc(i8* %"$$fundef_375_envp_798_load", i64 20) + %"$$fundef_375_envp_798" = bitcast i8* %"$$fundef_375_envp_798_salloc" to %"$$fundef_375_env_653"* + %"$$fundef_375_env_voidp_800" = bitcast %"$$fundef_375_env_653"* %"$$fundef_375_envp_798" to i8* + %"$$fundef_375_cloval_801" = insertvalue { %TName_Bool* (i8*, [20 x i8]*)*, i8* } { %TName_Bool* (i8*, [20 x i8]*)* bitcast (%TName_Bool* (%"$$fundef_375_env_653"*, [20 x i8]*)* @"$fundef_375" to %TName_Bool* (i8*, [20 x i8]*)*), i8* undef }, i8* %"$$fundef_375_env_voidp_800", 1 + %"$$fundef_375_env_bs1_802" = getelementptr inbounds %"$$fundef_375_env_653", %"$$fundef_375_env_653"* %"$$fundef_375_envp_798", i32 0, i32 0 + store [20 x i8] %bs1, [20 x i8]* %"$$fundef_375_env_bs1_802", align 1 + store { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$$fundef_375_cloval_801", { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %"$retval_374", align 8, !dbg !649 + %"$$retval_374_803" = load { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %"$retval_374", align 8 + ret { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$$retval_374_803" +} + +define internal %TName_List_Message* @"$fundef_415"(%"$$fundef_415_env_655"* %0, i8* %1) !dbg !650 { +entry: + %"$msg_792" = alloca i8*, align 8 + store i8* %1, i8** %"$msg_792", align 8 + call void @llvm.dbg.declare(metadata i8** %"$msg_792", metadata !651, metadata !DIExpression()), !dbg !654 + %"$$fundef_415_env_ud-registry.nilMessage_778" = getelementptr inbounds %"$$fundef_415_env_655", %"$$fundef_415_env_655"* %0, i32 0, i32 0 + %"$ud-registry.nilMessage_envload_779" = load %TName_List_Message*, %TName_List_Message** %"$$fundef_415_env_ud-registry.nilMessage_778", align 8 %ud-registry.nilMessage = alloca %TName_List_Message*, align 8 - store %TName_List_Message* %"$ud-registry.nilMessage_envload_774", %TName_List_Message** %ud-registry.nilMessage, align 8 + store %TName_List_Message* %"$ud-registry.nilMessage_envload_779", %TName_List_Message** %ud-registry.nilMessage, align 8 %"$retval_416" = alloca %TName_List_Message*, 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 = %entry - call void @_out_of_gas() - br label %"$have_gas_778" - -"$have_gas_778": ; preds = %"$out_of_gas_777", %entry - %"$consume_779" = sub i64 %"$gasrem_775", 1 - store i64 %"$consume_779", i64* @_gasrem, align 8 - %"$ud-registry.nilMessage_780" = load %TName_List_Message*, %TName_List_Message** %ud-registry.nilMessage, align 8 - %"$adtval_781_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_781_salloc" = call i8* @_salloc(i8* %"$adtval_781_load", i64 17) - %"$adtval_781" = bitcast i8* %"$adtval_781_salloc" to %CName_Cons_Message* - %"$adtgep_782" = getelementptr inbounds %CName_Cons_Message, %CName_Cons_Message* %"$adtval_781", i32 0, i32 0 - store i8 0, i8* %"$adtgep_782", align 1 - %"$adtgep_783" = getelementptr inbounds %CName_Cons_Message, %CName_Cons_Message* %"$adtval_781", i32 0, i32 1 - store i8* %1, i8** %"$adtgep_783", align 8 - %"$adtgep_784" = getelementptr inbounds %CName_Cons_Message, %CName_Cons_Message* %"$adtval_781", i32 0, i32 2 - store %TName_List_Message* %"$ud-registry.nilMessage_780", %TName_List_Message** %"$adtgep_784", align 8 - %"$adtptr_785" = bitcast %CName_Cons_Message* %"$adtval_781" to %TName_List_Message* - store %TName_List_Message* %"$adtptr_785", %TName_List_Message** %"$retval_416", align 8, !dbg !379 - %"$$retval_416_786" = load %TName_List_Message*, %TName_List_Message** %"$retval_416", align 8 - ret %TName_List_Message* %"$$retval_416_786" -} - -define internal %TName_Bool* @"$fundef_199"(%"$$fundef_199_env_656"* %0, %TName_Bool* %1) !dbg !380 { -entry: + call void @llvm.dbg.declare(metadata %TName_List_Message** %"$retval_416", metadata !655, metadata !DIExpression()), !dbg !658 + %"$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 = %entry + call void @_out_of_gas() + br label %"$have_gas_783" + +"$have_gas_783": ; preds = %"$out_of_gas_782", %entry + %"$consume_784" = sub i64 %"$gasrem_780", 1 + store i64 %"$consume_784", i64* @_gasrem, align 8 + %"$ud-registry.nilMessage_785" = load %TName_List_Message*, %TName_List_Message** %ud-registry.nilMessage, align 8 + %"$adtval_786_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_786_salloc" = call i8* @_salloc(i8* %"$adtval_786_load", i64 17) + %"$adtval_786" = bitcast i8* %"$adtval_786_salloc" to %CName_Cons_Message* + %"$adtgep_787" = getelementptr inbounds %CName_Cons_Message, %CName_Cons_Message* %"$adtval_786", i32 0, i32 0 + store i8 0, i8* %"$adtgep_787", align 1 + %"$adtgep_788" = getelementptr inbounds %CName_Cons_Message, %CName_Cons_Message* %"$adtval_786", i32 0, i32 1 + store i8* %1, i8** %"$adtgep_788", align 8 + %"$adtgep_789" = getelementptr inbounds %CName_Cons_Message, %CName_Cons_Message* %"$adtval_786", i32 0, i32 2 + store %TName_List_Message* %"$ud-registry.nilMessage_785", %TName_List_Message** %"$adtgep_789", align 8 + %"$adtptr_790" = bitcast %CName_Cons_Message* %"$adtval_786" to %TName_List_Message* + store %TName_List_Message* %"$adtptr_790", %TName_List_Message** %"$retval_416", align 8, !dbg !658 + %"$$retval_416_791" = load %TName_List_Message*, %TName_List_Message** %"$retval_416", align 8 + ret %TName_List_Message* %"$$retval_416_791" +} + +define internal %TName_Bool* @"$fundef_199"(%"$$fundef_199_env_656"* %0, %TName_Bool* %1) !dbg !659 { +entry: + %"$b_777" = alloca %TName_Bool*, align 8 + store %TName_Bool* %1, %TName_Bool** %"$b_777", align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$b_777", metadata !660, metadata !DIExpression()), !dbg !661 %"$retval_200" = alloca %TName_Bool*, align 8 - %"$gasrem_743" = load i64, i64* @_gasrem, align 8 - %"$gascmp_744" = icmp ugt i64 2, %"$gasrem_743" - br i1 %"$gascmp_744", label %"$out_of_gas_745", label %"$have_gas_746" - -"$out_of_gas_745": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_746" - -"$have_gas_746": ; preds = %"$out_of_gas_745", %entry - %"$consume_747" = sub i64 %"$gasrem_743", 2 - store i64 %"$consume_747", i64* @_gasrem, align 8 - %"$b_tag_749" = getelementptr inbounds %TName_Bool, %TName_Bool* %1, i32 0, i32 0 - %"$b_tag_750" = load i8, i8* %"$b_tag_749", align 1 - switch i8 %"$b_tag_750", label %"$empty_default_751" [ - i8 0, label %"$True_752" - i8 1, label %"$False_762" - ], !dbg !381 - -"$True_752": ; preds = %"$have_gas_746" - %"$b_753" = bitcast %TName_Bool* %1 to %CName_True* - %"$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 = %"$True_752" - call void @_out_of_gas() - br label %"$have_gas_757" - -"$have_gas_757": ; preds = %"$out_of_gas_756", %"$True_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_False* - %"$adtgep_760" = getelementptr inbounds %CName_False, %CName_False* %"$adtval_759", i32 0, i32 0 - store i8 1, i8* %"$adtgep_760", align 1 - %"$adtptr_761" = bitcast %CName_False* %"$adtval_759" to %TName_Bool* - store %TName_Bool* %"$adtptr_761", %TName_Bool** %"$retval_200", align 8, !dbg !382 - br label %"$matchsucc_748" - -"$False_762": ; preds = %"$have_gas_746" - %"$b_763" = bitcast %TName_Bool* %1 to %CName_False* - %"$gasrem_764" = load i64, i64* @_gasrem, align 8 - %"$gascmp_765" = icmp ugt i64 1, %"$gasrem_764" - br i1 %"$gascmp_765", label %"$out_of_gas_766", label %"$have_gas_767" - -"$out_of_gas_766": ; preds = %"$False_762" - call void @_out_of_gas() - br label %"$have_gas_767" - -"$have_gas_767": ; preds = %"$out_of_gas_766", %"$False_762" - %"$consume_768" = sub i64 %"$gasrem_764", 1 - store i64 %"$consume_768", i64* @_gasrem, align 8 - %"$adtval_769_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_769_salloc" = call i8* @_salloc(i8* %"$adtval_769_load", i64 1) - %"$adtval_769" = bitcast i8* %"$adtval_769_salloc" to %CName_True* - %"$adtgep_770" = getelementptr inbounds %CName_True, %CName_True* %"$adtval_769", i32 0, i32 0 - store i8 0, i8* %"$adtgep_770", align 1 - %"$adtptr_771" = bitcast %CName_True* %"$adtval_769" to %TName_Bool* - store %TName_Bool* %"$adtptr_771", %TName_Bool** %"$retval_200", align 8, !dbg !385 - br label %"$matchsucc_748" - -"$empty_default_751": ; preds = %"$have_gas_746" - br label %"$matchsucc_748" - -"$matchsucc_748": ; preds = %"$have_gas_767", %"$have_gas_757", %"$empty_default_751" - %"$$retval_200_772" = load %TName_Bool*, %TName_Bool** %"$retval_200", align 8 - ret %TName_Bool* %"$$retval_200_772" -} - -define internal %TName_Bool* @"$fundef_203"(%"$$fundef_203_env_657"* %0, %TName_Bool* %1) !dbg !387 { -entry: - %"$$fundef_203_env_b_713" = getelementptr inbounds %"$$fundef_203_env_657", %"$$fundef_203_env_657"* %0, i32 0, i32 0 - %"$b_envload_714" = load %TName_Bool*, %TName_Bool** %"$$fundef_203_env_b_713", align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$retval_200", metadata !662, metadata !DIExpression()), !dbg !663 + %"$gasrem_747" = load i64, i64* @_gasrem, align 8 + %"$gascmp_748" = icmp ugt i64 2, %"$gasrem_747" + br i1 %"$gascmp_748", label %"$out_of_gas_749", label %"$have_gas_750" + +"$out_of_gas_749": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_750" + +"$have_gas_750": ; preds = %"$out_of_gas_749", %entry + %"$consume_751" = sub i64 %"$gasrem_747", 2 + store i64 %"$consume_751", i64* @_gasrem, align 8 + %"$b_tag_753" = getelementptr inbounds %TName_Bool, %TName_Bool* %1, i32 0, i32 0 + %"$b_tag_754" = load i8, i8* %"$b_tag_753", align 1 + switch i8 %"$b_tag_754", label %"$empty_default_755" [ + i8 0, label %"$True_756" + i8 1, label %"$False_766" + ], !dbg !663 + +"$True_756": ; preds = %"$have_gas_750" + %"$b_757" = bitcast %TName_Bool* %1 to %CName_True* + %"$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 = %"$True_756" + call void @_out_of_gas() + br label %"$have_gas_761" + +"$have_gas_761": ; preds = %"$out_of_gas_760", %"$True_756" + %"$consume_762" = sub i64 %"$gasrem_758", 1 + store i64 %"$consume_762", i64* @_gasrem, align 8 + %"$adtval_763_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_763_salloc" = call i8* @_salloc(i8* %"$adtval_763_load", i64 1) + %"$adtval_763" = bitcast i8* %"$adtval_763_salloc" to %CName_False* + %"$adtgep_764" = getelementptr inbounds %CName_False, %CName_False* %"$adtval_763", i32 0, i32 0 + store i8 1, i8* %"$adtgep_764", align 1 + %"$adtptr_765" = bitcast %CName_False* %"$adtval_763" to %TName_Bool* + store %TName_Bool* %"$adtptr_765", %TName_Bool** %"$retval_200", align 8, !dbg !664 + br label %"$matchsucc_752" + +"$False_766": ; preds = %"$have_gas_750" + %"$b_767" = bitcast %TName_Bool* %1 to %CName_False* + %"$gasrem_768" = load i64, i64* @_gasrem, align 8 + %"$gascmp_769" = icmp ugt i64 1, %"$gasrem_768" + br i1 %"$gascmp_769", label %"$out_of_gas_770", label %"$have_gas_771" + +"$out_of_gas_770": ; preds = %"$False_766" + call void @_out_of_gas() + br label %"$have_gas_771" + +"$have_gas_771": ; preds = %"$out_of_gas_770", %"$False_766" + %"$consume_772" = sub i64 %"$gasrem_768", 1 + store i64 %"$consume_772", i64* @_gasrem, align 8 + %"$adtval_773_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_773_salloc" = call i8* @_salloc(i8* %"$adtval_773_load", i64 1) + %"$adtval_773" = bitcast i8* %"$adtval_773_salloc" to %CName_True* + %"$adtgep_774" = getelementptr inbounds %CName_True, %CName_True* %"$adtval_773", i32 0, i32 0 + store i8 0, i8* %"$adtgep_774", align 1 + %"$adtptr_775" = bitcast %CName_True* %"$adtval_773" to %TName_Bool* + store %TName_Bool* %"$adtptr_775", %TName_Bool** %"$retval_200", align 8, !dbg !667 + br label %"$matchsucc_752" + +"$empty_default_755": ; preds = %"$have_gas_750" + br label %"$matchsucc_752" + +"$matchsucc_752": ; preds = %"$have_gas_771", %"$have_gas_761", %"$empty_default_755" + %"$$retval_200_776" = load %TName_Bool*, %TName_Bool** %"$retval_200", align 8 + ret %TName_Bool* %"$$retval_200_776" +} + +define internal %TName_Bool* @"$fundef_203"(%"$$fundef_203_env_657"* %0, %TName_Bool* %1) !dbg !669 { +entry: + %"$c_746" = alloca %TName_Bool*, align 8 + store %TName_Bool* %1, %TName_Bool** %"$c_746", align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$c_746", metadata !670, metadata !DIExpression()), !dbg !671 + %"$$fundef_203_env_b_716" = getelementptr inbounds %"$$fundef_203_env_657", %"$$fundef_203_env_657"* %0, i32 0, i32 0 + %"$b_envload_717" = load %TName_Bool*, %TName_Bool** %"$$fundef_203_env_b_716", align 8 %b = alloca %TName_Bool*, align 8 - store %TName_Bool* %"$b_envload_714", %TName_Bool** %b, align 8 + store %TName_Bool* %"$b_envload_717", %TName_Bool** %b, align 8 %"$retval_204" = alloca %TName_Bool*, align 8 - %"$gasrem_715" = load i64, i64* @_gasrem, align 8 - %"$gascmp_716" = icmp ugt i64 2, %"$gasrem_715" - br i1 %"$gascmp_716", label %"$out_of_gas_717", label %"$have_gas_718" - -"$out_of_gas_717": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_718" - -"$have_gas_718": ; preds = %"$out_of_gas_717", %entry - %"$consume_719" = sub i64 %"$gasrem_715", 2 - store i64 %"$consume_719", i64* @_gasrem, align 8 - %"$b_721" = load %TName_Bool*, %TName_Bool** %b, align 8 - %"$b_tag_722" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$b_721", i32 0, i32 0 - %"$b_tag_723" = load i8, i8* %"$b_tag_722", align 1 - switch i8 %"$b_tag_723", label %"$empty_default_724" [ - i8 0, label %"$True_725" - i8 1, label %"$False_735" - ], !dbg !388 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$retval_204", metadata !672, metadata !DIExpression()), !dbg !673 + %"$gasrem_718" = load i64, i64* @_gasrem, align 8 + %"$gascmp_719" = icmp ugt i64 2, %"$gasrem_718" + br i1 %"$gascmp_719", label %"$out_of_gas_720", label %"$have_gas_721" + +"$out_of_gas_720": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_721" + +"$have_gas_721": ; preds = %"$out_of_gas_720", %entry + %"$consume_722" = sub i64 %"$gasrem_718", 2 + store i64 %"$consume_722", i64* @_gasrem, align 8 + %"$b_724" = load %TName_Bool*, %TName_Bool** %b, align 8 + %"$b_tag_725" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$b_724", i32 0, i32 0 + %"$b_tag_726" = load i8, i8* %"$b_tag_725", align 1 + switch i8 %"$b_tag_726", label %"$empty_default_727" [ + i8 0, label %"$True_728" + i8 1, label %"$False_738" + ], !dbg !673 -"$True_725": ; preds = %"$have_gas_718" - %"$b_726" = bitcast %TName_Bool* %"$b_721" to %CName_True* - %"$gasrem_727" = load i64, i64* @_gasrem, align 8 - %"$gascmp_728" = icmp ugt i64 1, %"$gasrem_727" - br i1 %"$gascmp_728", label %"$out_of_gas_729", label %"$have_gas_730" +"$True_728": ; preds = %"$have_gas_721" + %"$b_729" = bitcast %TName_Bool* %"$b_724" to %CName_True* + %"$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_729": ; preds = %"$True_725" +"$out_of_gas_732": ; preds = %"$True_728" call void @_out_of_gas() - br label %"$have_gas_730" + br label %"$have_gas_733" -"$have_gas_730": ; preds = %"$out_of_gas_729", %"$True_725" - %"$consume_731" = sub i64 %"$gasrem_727", 1 - store i64 %"$consume_731", i64* @_gasrem, align 8 - %"$adtval_732_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_732_salloc" = call i8* @_salloc(i8* %"$adtval_732_load", i64 1) - %"$adtval_732" = bitcast i8* %"$adtval_732_salloc" to %CName_True* - %"$adtgep_733" = getelementptr inbounds %CName_True, %CName_True* %"$adtval_732", i32 0, i32 0 - store i8 0, i8* %"$adtgep_733", align 1 - %"$adtptr_734" = bitcast %CName_True* %"$adtval_732" to %TName_Bool* - store %TName_Bool* %"$adtptr_734", %TName_Bool** %"$retval_204", align 8, !dbg !389 - br label %"$matchsucc_720" +"$have_gas_733": ; preds = %"$out_of_gas_732", %"$True_728" + %"$consume_734" = sub i64 %"$gasrem_730", 1 + store i64 %"$consume_734", i64* @_gasrem, align 8 + %"$adtval_735_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_735_salloc" = call i8* @_salloc(i8* %"$adtval_735_load", i64 1) + %"$adtval_735" = bitcast i8* %"$adtval_735_salloc" to %CName_True* + %"$adtgep_736" = getelementptr inbounds %CName_True, %CName_True* %"$adtval_735", i32 0, i32 0 + store i8 0, i8* %"$adtgep_736", align 1 + %"$adtptr_737" = bitcast %CName_True* %"$adtval_735" to %TName_Bool* + store %TName_Bool* %"$adtptr_737", %TName_Bool** %"$retval_204", align 8, !dbg !674 + br label %"$matchsucc_723" -"$False_735": ; preds = %"$have_gas_718" - %"$b_736" = bitcast %TName_Bool* %"$b_721" to %CName_False* - %"$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" +"$False_738": ; preds = %"$have_gas_721" + %"$b_739" = bitcast %TName_Bool* %"$b_724" to %CName_False* + %"$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_739": ; preds = %"$False_735" +"$out_of_gas_742": ; preds = %"$False_738" call void @_out_of_gas() - br label %"$have_gas_740" + br label %"$have_gas_743" -"$have_gas_740": ; preds = %"$out_of_gas_739", %"$False_735" - %"$consume_741" = sub i64 %"$gasrem_737", 1 - store i64 %"$consume_741", i64* @_gasrem, align 8 - store %TName_Bool* %1, %TName_Bool** %"$retval_204", align 8, !dbg !392 - br label %"$matchsucc_720" +"$have_gas_743": ; preds = %"$out_of_gas_742", %"$False_738" + %"$consume_744" = sub i64 %"$gasrem_740", 1 + store i64 %"$consume_744", i64* @_gasrem, align 8 + store %TName_Bool* %1, %TName_Bool** %"$retval_204", align 8, !dbg !677 + br label %"$matchsucc_723" -"$empty_default_724": ; preds = %"$have_gas_718" - br label %"$matchsucc_720" +"$empty_default_727": ; preds = %"$have_gas_721" + br label %"$matchsucc_723" -"$matchsucc_720": ; preds = %"$have_gas_740", %"$have_gas_730", %"$empty_default_724" - %"$$retval_204_742" = load %TName_Bool*, %TName_Bool** %"$retval_204", align 8 - ret %TName_Bool* %"$$retval_204_742" +"$matchsucc_723": ; preds = %"$have_gas_743", %"$have_gas_733", %"$empty_default_727" + %"$$retval_204_745" = load %TName_Bool*, %TName_Bool** %"$retval_204", align 8 + ret %TName_Bool* %"$$retval_204_745" } -define internal { %TName_Bool* (i8*, %TName_Bool*)*, i8* } @"$fundef_201"(%"$$fundef_201_env_658"* %0, %TName_Bool* %1) !dbg !394 { +define internal { %TName_Bool* (i8*, %TName_Bool*)*, i8* } @"$fundef_201"(%"$$fundef_201_env_658"* %0, %TName_Bool* %1) !dbg !679 { entry: + %"$b_715" = alloca %TName_Bool*, align 8 + store %TName_Bool* %1, %TName_Bool** %"$b_715", align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$b_715", metadata !680, metadata !DIExpression()), !dbg !681 %"$retval_202" = alloca { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, align 8 - %"$gasrem_702" = load i64, i64* @_gasrem, align 8 - %"$gascmp_703" = icmp ugt i64 1, %"$gasrem_702" - br i1 %"$gascmp_703", label %"$out_of_gas_704", label %"$have_gas_705" - -"$out_of_gas_704": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_705" - -"$have_gas_705": ; preds = %"$out_of_gas_704", %entry - %"$consume_706" = sub i64 %"$gasrem_702", 1 - store i64 %"$consume_706", i64* @_gasrem, align 8 - %"$$fundef_203_envp_707_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_203_envp_707_salloc" = call i8* @_salloc(i8* %"$$fundef_203_envp_707_load", i64 8) - %"$$fundef_203_envp_707" = bitcast i8* %"$$fundef_203_envp_707_salloc" to %"$$fundef_203_env_657"* - %"$$fundef_203_env_voidp_709" = bitcast %"$$fundef_203_env_657"* %"$$fundef_203_envp_707" to i8* - %"$$fundef_203_cloval_710" = insertvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } { %TName_Bool* (i8*, %TName_Bool*)* bitcast (%TName_Bool* (%"$$fundef_203_env_657"*, %TName_Bool*)* @"$fundef_203" to %TName_Bool* (i8*, %TName_Bool*)*), i8* undef }, i8* %"$$fundef_203_env_voidp_709", 1 - %"$$fundef_203_env_b_711" = getelementptr inbounds %"$$fundef_203_env_657", %"$$fundef_203_env_657"* %"$$fundef_203_envp_707", i32 0, i32 0 - store %TName_Bool* %1, %TName_Bool** %"$$fundef_203_env_b_711", align 8 - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$fundef_203_cloval_710", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$retval_202", align 8, !dbg !395 - %"$$retval_202_712" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$retval_202", align 8 - ret { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$retval_202_712" -} - -define internal %TName_Bool* @"$fundef_207"(%"$$fundef_207_env_659"* %0, %TName_Bool* %1) !dbg !396 { -entry: - %"$$fundef_207_env_b_672" = getelementptr inbounds %"$$fundef_207_env_659", %"$$fundef_207_env_659"* %0, i32 0, i32 0 - %"$b_envload_673" = load %TName_Bool*, %TName_Bool** %"$$fundef_207_env_b_672", align 8 + %"$gasrem_704" = load i64, i64* @_gasrem, align 8 + %"$gascmp_705" = icmp ugt i64 1, %"$gasrem_704" + br i1 %"$gascmp_705", label %"$out_of_gas_706", label %"$have_gas_707" + +"$out_of_gas_706": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_707" + +"$have_gas_707": ; preds = %"$out_of_gas_706", %entry + %"$consume_708" = sub i64 %"$gasrem_704", 1 + store i64 %"$consume_708", i64* @_gasrem, align 8 + %"$$fundef_203_envp_709_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_203_envp_709_salloc" = call i8* @_salloc(i8* %"$$fundef_203_envp_709_load", i64 8) + %"$$fundef_203_envp_709" = bitcast i8* %"$$fundef_203_envp_709_salloc" to %"$$fundef_203_env_657"* + %"$$fundef_203_env_voidp_711" = bitcast %"$$fundef_203_env_657"* %"$$fundef_203_envp_709" to i8* + %"$$fundef_203_cloval_712" = insertvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } { %TName_Bool* (i8*, %TName_Bool*)* bitcast (%TName_Bool* (%"$$fundef_203_env_657"*, %TName_Bool*)* @"$fundef_203" to %TName_Bool* (i8*, %TName_Bool*)*), i8* undef }, i8* %"$$fundef_203_env_voidp_711", 1 + %"$$fundef_203_env_b_713" = getelementptr inbounds %"$$fundef_203_env_657", %"$$fundef_203_env_657"* %"$$fundef_203_envp_709", i32 0, i32 0 + store %TName_Bool* %1, %TName_Bool** %"$$fundef_203_env_b_713", align 8 + store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$fundef_203_cloval_712", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$retval_202", align 8, !dbg !682 + %"$$retval_202_714" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$retval_202", align 8 + ret { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$retval_202_714" +} + +define internal %TName_Bool* @"$fundef_207"(%"$$fundef_207_env_659"* %0, %TName_Bool* %1) !dbg !683 { +entry: + %"$c_703" = alloca %TName_Bool*, align 8 + store %TName_Bool* %1, %TName_Bool** %"$c_703", align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$c_703", metadata !684, metadata !DIExpression()), !dbg !685 + %"$$fundef_207_env_b_673" = getelementptr inbounds %"$$fundef_207_env_659", %"$$fundef_207_env_659"* %0, i32 0, i32 0 + %"$b_envload_674" = load %TName_Bool*, %TName_Bool** %"$$fundef_207_env_b_673", align 8 %b = alloca %TName_Bool*, align 8 - store %TName_Bool* %"$b_envload_673", %TName_Bool** %b, align 8 + store %TName_Bool* %"$b_envload_674", %TName_Bool** %b, align 8 %"$retval_208" = alloca %TName_Bool*, align 8 - %"$gasrem_674" = load i64, i64* @_gasrem, align 8 - %"$gascmp_675" = icmp ugt i64 2, %"$gasrem_674" - br i1 %"$gascmp_675", label %"$out_of_gas_676", label %"$have_gas_677" - -"$out_of_gas_676": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_677" - -"$have_gas_677": ; preds = %"$out_of_gas_676", %entry - %"$consume_678" = sub i64 %"$gasrem_674", 2 - store i64 %"$consume_678", i64* @_gasrem, align 8 - %"$b_680" = load %TName_Bool*, %TName_Bool** %b, align 8 - %"$b_tag_681" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$b_680", i32 0, i32 0 - %"$b_tag_682" = load i8, i8* %"$b_tag_681", align 1 - switch i8 %"$b_tag_682", label %"$empty_default_683" [ - i8 1, label %"$False_684" - i8 0, label %"$True_694" - ], !dbg !397 - -"$False_684": ; preds = %"$have_gas_677" - %"$b_685" = bitcast %TName_Bool* %"$b_680" 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_False* - %"$adtgep_692" = getelementptr inbounds %CName_False, %CName_False* %"$adtval_691", i32 0, i32 0 - store i8 1, i8* %"$adtgep_692", align 1 - %"$adtptr_693" = bitcast %CName_False* %"$adtval_691" to %TName_Bool* - store %TName_Bool* %"$adtptr_693", %TName_Bool** %"$retval_208", align 8, !dbg !398 - br label %"$matchsucc_679" - -"$True_694": ; preds = %"$have_gas_677" - %"$b_695" = bitcast %TName_Bool* %"$b_680" to %CName_True* - %"$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" - -"$out_of_gas_698": ; preds = %"$True_694" - call void @_out_of_gas() - br label %"$have_gas_699" - -"$have_gas_699": ; preds = %"$out_of_gas_698", %"$True_694" - %"$consume_700" = sub i64 %"$gasrem_696", 1 - store i64 %"$consume_700", i64* @_gasrem, align 8 - store %TName_Bool* %1, %TName_Bool** %"$retval_208", align 8, !dbg !401 - br label %"$matchsucc_679" - -"$empty_default_683": ; preds = %"$have_gas_677" - br label %"$matchsucc_679" - -"$matchsucc_679": ; preds = %"$have_gas_699", %"$have_gas_689", %"$empty_default_683" - %"$$retval_208_701" = load %TName_Bool*, %TName_Bool** %"$retval_208", align 8 - ret %TName_Bool* %"$$retval_208_701" -} - -define internal { %TName_Bool* (i8*, %TName_Bool*)*, i8* } @"$fundef_205"(%"$$fundef_205_env_660"* %0, %TName_Bool* %1) !dbg !403 { -entry: + call void @llvm.dbg.declare(metadata %TName_Bool** %"$retval_208", metadata !686, metadata !DIExpression()), !dbg !687 + %"$gasrem_675" = load i64, i64* @_gasrem, align 8 + %"$gascmp_676" = icmp ugt i64 2, %"$gasrem_675" + br i1 %"$gascmp_676", label %"$out_of_gas_677", label %"$have_gas_678" + +"$out_of_gas_677": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_678" + +"$have_gas_678": ; preds = %"$out_of_gas_677", %entry + %"$consume_679" = sub i64 %"$gasrem_675", 2 + store i64 %"$consume_679", i64* @_gasrem, align 8 + %"$b_681" = load %TName_Bool*, %TName_Bool** %b, align 8 + %"$b_tag_682" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$b_681", i32 0, i32 0 + %"$b_tag_683" = load i8, i8* %"$b_tag_682", align 1 + switch i8 %"$b_tag_683", label %"$empty_default_684" [ + i8 1, label %"$False_685" + i8 0, label %"$True_695" + ], !dbg !687 + +"$False_685": ; preds = %"$have_gas_678" + %"$b_686" = bitcast %TName_Bool* %"$b_681" to %CName_False* + %"$gasrem_687" = load i64, i64* @_gasrem, align 8 + %"$gascmp_688" = icmp ugt i64 1, %"$gasrem_687" + br i1 %"$gascmp_688", label %"$out_of_gas_689", label %"$have_gas_690" + +"$out_of_gas_689": ; preds = %"$False_685" + call void @_out_of_gas() + br label %"$have_gas_690" + +"$have_gas_690": ; preds = %"$out_of_gas_689", %"$False_685" + %"$consume_691" = sub i64 %"$gasrem_687", 1 + store i64 %"$consume_691", i64* @_gasrem, align 8 + %"$adtval_692_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_692_salloc" = call i8* @_salloc(i8* %"$adtval_692_load", i64 1) + %"$adtval_692" = bitcast i8* %"$adtval_692_salloc" to %CName_False* + %"$adtgep_693" = getelementptr inbounds %CName_False, %CName_False* %"$adtval_692", i32 0, i32 0 + store i8 1, i8* %"$adtgep_693", align 1 + %"$adtptr_694" = bitcast %CName_False* %"$adtval_692" to %TName_Bool* + store %TName_Bool* %"$adtptr_694", %TName_Bool** %"$retval_208", align 8, !dbg !688 + br label %"$matchsucc_680" + +"$True_695": ; preds = %"$have_gas_678" + %"$b_696" = bitcast %TName_Bool* %"$b_681" to %CName_True* + %"$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 = %"$True_695" + call void @_out_of_gas() + br label %"$have_gas_700" + +"$have_gas_700": ; preds = %"$out_of_gas_699", %"$True_695" + %"$consume_701" = sub i64 %"$gasrem_697", 1 + store i64 %"$consume_701", i64* @_gasrem, align 8 + store %TName_Bool* %1, %TName_Bool** %"$retval_208", align 8, !dbg !691 + br label %"$matchsucc_680" + +"$empty_default_684": ; preds = %"$have_gas_678" + br label %"$matchsucc_680" + +"$matchsucc_680": ; preds = %"$have_gas_700", %"$have_gas_690", %"$empty_default_684" + %"$$retval_208_702" = load %TName_Bool*, %TName_Bool** %"$retval_208", align 8 + ret %TName_Bool* %"$$retval_208_702" +} + +define internal { %TName_Bool* (i8*, %TName_Bool*)*, i8* } @"$fundef_205"(%"$$fundef_205_env_660"* %0, %TName_Bool* %1) !dbg !693 { +entry: + %"$b_672" = alloca %TName_Bool*, align 8 + store %TName_Bool* %1, %TName_Bool** %"$b_672", align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$b_672", metadata !694, metadata !DIExpression()), !dbg !695 %"$retval_206" = alloca { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, align 8 %"$gasrem_661" = load i64, i64* @_gasrem, align 8 %"$gascmp_662" = icmp ugt i64 1, %"$gasrem_661" @@ -7201,7 +7512,7 @@ entry: %"$$fundef_207_cloval_669" = insertvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } { %TName_Bool* (i8*, %TName_Bool*)* bitcast (%TName_Bool* (%"$$fundef_207_env_659"*, %TName_Bool*)* @"$fundef_207" to %TName_Bool* (i8*, %TName_Bool*)*), i8* undef }, i8* %"$$fundef_207_env_voidp_668", 1 %"$$fundef_207_env_b_670" = getelementptr inbounds %"$$fundef_207_env_659", %"$$fundef_207_env_659"* %"$$fundef_207_envp_666", i32 0, i32 0 store %TName_Bool* %1, %TName_Bool** %"$$fundef_207_env_b_670", align 8 - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$fundef_207_cloval_669", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$retval_206", align 8, !dbg !404 + store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$fundef_207_cloval_669", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$retval_206", align 8, !dbg !696 %"$$retval_206_671" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$retval_206", align 8 ret { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$retval_206_671" } @@ -7210,6 +7521,9 @@ declare void @_out_of_gas() declare i8* @_salloc(i8*, i64) +; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn +declare void @llvm.dbg.declare(metadata, metadata, metadata) #0 + declare %TName_Bool* @_eq_ByStrX(i8*, i32, i8*, i8*) declare i64 @_literal_cost(%_TyDescrTy_Typ*, i8*) @@ -7218,824 +7532,831 @@ declare [32 x i8]* @_sha256hash(i8*, %_TyDescrTy_Typ*, i8*) declare i8* @_concat_ByStrX(i8*, i32, i8*, i32, i8*) -define void @_init_libs() !dbg !405 { +define void @_init_libs() !dbg !697 { entry: - %"$gasrem_3872" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3873" = icmp ugt i64 5, %"$gasrem_3872" - br i1 %"$gascmp_3873", label %"$out_of_gas_3874", label %"$have_gas_3875" - -"$out_of_gas_3874": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_3875" - -"$have_gas_3875": ; preds = %"$out_of_gas_3874", %entry - %"$consume_3876" = sub i64 %"$gasrem_3872", 5 - store i64 %"$consume_3876", i64* @_gasrem, align 8 - store %Int32 { i32 5 }, %Int32* @"$_gas_charge_acc_3", align 4, !dbg !407 - %"$gasrem_3877" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3878" = icmp ugt i64 5, %"$gasrem_3877" - br i1 %"$gascmp_3878", label %"$out_of_gas_3879", label %"$have_gas_3880" + %"$gasrem_3946" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3947" = icmp ugt i64 5, %"$gasrem_3946" + br i1 %"$gascmp_3947", label %"$out_of_gas_3948", label %"$have_gas_3949" -"$out_of_gas_3879": ; preds = %"$have_gas_3875" +"$out_of_gas_3948": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_3880" + br label %"$have_gas_3949" -"$have_gas_3880": ; preds = %"$out_of_gas_3879", %"$have_gas_3875" - %"$consume_3881" = sub i64 %"$gasrem_3877", 5 - store i64 %"$consume_3881", i64* @_gasrem, align 8 - store %Int32 { i32 5 }, %Int32* @"$_gas_charge_accBoolUtils_1", align 4, !dbg !407 - %"$gasrem_3882" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3883" = icmp ugt i64 1, %"$gasrem_3882" - br i1 %"$gascmp_3883", label %"$out_of_gas_3884", label %"$have_gas_3885" +"$have_gas_3949": ; preds = %"$out_of_gas_3948", %entry + %"$consume_3950" = sub i64 %"$gasrem_3946", 5 + store i64 %"$consume_3950", i64* @_gasrem, align 8 + store %Int32 { i32 5 }, %Int32* @"$_gas_charge_acc_3", align 4, !dbg !699 + %"$gasrem_3951" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3952" = icmp ugt i64 5, %"$gasrem_3951" + br i1 %"$gascmp_3952", label %"$out_of_gas_3953", label %"$have_gas_3954" -"$out_of_gas_3884": ; preds = %"$have_gas_3880" +"$out_of_gas_3953": ; preds = %"$have_gas_3949" call void @_out_of_gas() - br label %"$have_gas_3885" + br label %"$have_gas_3954" -"$have_gas_3885": ; preds = %"$out_of_gas_3884", %"$have_gas_3880" - %"$consume_3886" = sub i64 %"$gasrem_3882", 1 - store i64 %"$consume_3886", 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_205_env_660"*, %TName_Bool*)* @"$fundef_205" 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 !408 - %"$gasrem_3890" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3891" = icmp ugt i64 1, %"$gasrem_3890" - br i1 %"$gascmp_3891", label %"$out_of_gas_3892", label %"$have_gas_3893" +"$have_gas_3954": ; preds = %"$out_of_gas_3953", %"$have_gas_3949" + %"$consume_3955" = sub i64 %"$gasrem_3951", 5 + store i64 %"$consume_3955", i64* @_gasrem, align 8 + store %Int32 { i32 5 }, %Int32* @"$_gas_charge_accBoolUtils_1", align 4, !dbg !699 + %"$gasrem_3956" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3957" = icmp ugt i64 1, %"$gasrem_3956" + br i1 %"$gascmp_3957", label %"$out_of_gas_3958", label %"$have_gas_3959" -"$out_of_gas_3892": ; preds = %"$have_gas_3885" - call void @_out_of_gas() - br label %"$have_gas_3893" +"$out_of_gas_3958": ; preds = %"$have_gas_3954" + call void @_out_of_gas() + br label %"$have_gas_3959" + +"$have_gas_3959": ; preds = %"$out_of_gas_3958", %"$have_gas_3954" + %"$consume_3960" = sub i64 %"$gasrem_3956", 1 + store i64 %"$consume_3960", 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_205_env_660"*, %TName_Bool*)* @"$fundef_205" 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 !700 + %"$gasrem_3964" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3965" = icmp ugt i64 1, %"$gasrem_3964" + br i1 %"$gascmp_3965", label %"$out_of_gas_3966", label %"$have_gas_3967" -"$have_gas_3893": ; preds = %"$out_of_gas_3892", %"$have_gas_3885" - %"$consume_3894" = sub i64 %"$gasrem_3890", 1 - store i64 %"$consume_3894", 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_201_env_658"*, %TName_Bool*)* @"$fundef_201" 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 !409 - %"$gasrem_3898" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3899" = icmp ugt i64 1, %"$gasrem_3898" - br i1 %"$gascmp_3899", label %"$out_of_gas_3900", label %"$have_gas_3901" - -"$out_of_gas_3900": ; preds = %"$have_gas_3893" - call void @_out_of_gas() - br label %"$have_gas_3901" - -"$have_gas_3901": ; preds = %"$out_of_gas_3900", %"$have_gas_3893" - %"$consume_3902" = sub i64 %"$gasrem_3898", 1 - store i64 %"$consume_3902", i64* @_gasrem, align 8 - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } { %TName_Bool* (i8*, %TName_Bool*)* bitcast (%TName_Bool* (%"$$fundef_199_env_656"*, %TName_Bool*)* @"$fundef_199" to %TName_Bool* (i8*, %TName_Bool*)*), i8* null }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* @BoolUtils.negb, align 8, !dbg !410 - %"$gasrem_3906" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3907" = icmp ugt i64 20, %"$gasrem_3906" - br i1 %"$gascmp_3907", label %"$out_of_gas_3908", label %"$have_gas_3909" - -"$out_of_gas_3908": ; preds = %"$have_gas_3901" - call void @_out_of_gas() - br label %"$have_gas_3909" - -"$have_gas_3909": ; preds = %"$out_of_gas_3908", %"$have_gas_3901" - %"$consume_3910" = sub i64 %"$gasrem_3906", 20 - store i64 %"$consume_3910", i64* @_gasrem, align 8 - store %Int32 { i32 20 }, %Int32* @"$_gas_charge_accListUtils_2", align 4, !dbg !407 - %"$gasrem_3911" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3912" = icmp ugt i64 3, %"$gasrem_3911" - br i1 %"$gascmp_3912", label %"$out_of_gas_3913", label %"$have_gas_3914" - -"$out_of_gas_3913": ; preds = %"$have_gas_3909" - call void @_out_of_gas() - br label %"$have_gas_3914" - -"$have_gas_3914": ; preds = %"$out_of_gas_3913", %"$have_gas_3909" - %"$consume_3915" = sub i64 %"$gasrem_3911", 3 - store i64 %"$consume_3915", i64* @_gasrem, align 8 - store %Int32 { i32 3 }, %Int32* @"$_gas_charge_accRegistryLib_0", align 4, !dbg !407 - %"$gasrem_3916" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3917" = icmp ugt i64 1, %"$gasrem_3916" - br i1 %"$gascmp_3917", label %"$out_of_gas_3918", label %"$have_gas_3919" - -"$out_of_gas_3918": ; preds = %"$have_gas_3914" - call void @_out_of_gas() - br label %"$have_gas_3919" - -"$have_gas_3919": ; preds = %"$out_of_gas_3918", %"$have_gas_3914" - %"$consume_3920" = sub i64 %"$gasrem_3916", 1 - store i64 %"$consume_3920", i64* @_gasrem, align 8 - store [20 x i8] zeroinitializer, [20 x i8]* @ud-registry.zeroByStr20, align 1, !dbg !411 - %"$gasrem_3921" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3922" = icmp ugt i64 1, %"$gasrem_3921" - br i1 %"$gascmp_3922", label %"$out_of_gas_3923", label %"$have_gas_3924" - -"$out_of_gas_3923": ; preds = %"$have_gas_3919" - call void @_out_of_gas() - br label %"$have_gas_3924" - -"$have_gas_3924": ; preds = %"$out_of_gas_3923", %"$have_gas_3919" - %"$consume_3925" = sub i64 %"$gasrem_3921", 1 - store i64 %"$consume_3925", i64* @_gasrem, align 8 - %"$adtval_3926_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_3926_salloc" = call i8* @_salloc(i8* %"$adtval_3926_load", i64 1) - %"$adtval_3926" = bitcast i8* %"$adtval_3926_salloc" to %CName_Nil_ByStr20* - %"$adtgep_3927" = getelementptr inbounds %CName_Nil_ByStr20, %CName_Nil_ByStr20* %"$adtval_3926", i32 0, i32 0 - store i8 1, i8* %"$adtgep_3927", align 1 - %"$adtptr_3928" = bitcast %CName_Nil_ByStr20* %"$adtval_3926" to %TName_List_ByStr20* - store %TName_List_ByStr20* %"$adtptr_3928", %TName_List_ByStr20** @ud-registry.nilByStr20, align 8, !dbg !412 - %"$gasrem_3929" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3930" = icmp ugt i64 1, %"$gasrem_3929" - br i1 %"$gascmp_3930", label %"$out_of_gas_3931", label %"$have_gas_3932" - -"$out_of_gas_3931": ; preds = %"$have_gas_3924" - call void @_out_of_gas() - br label %"$have_gas_3932" - -"$have_gas_3932": ; preds = %"$out_of_gas_3931", %"$have_gas_3924" - %"$consume_3933" = sub i64 %"$gasrem_3929", 1 - store i64 %"$consume_3933", i64* @_gasrem, align 8 - %"$adtval_3934_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_3934_salloc" = call i8* @_salloc(i8* %"$adtval_3934_load", i64 1) - %"$adtval_3934" = bitcast i8* %"$adtval_3934_salloc" to %CName_Nil_Message* - %"$adtgep_3935" = getelementptr inbounds %CName_Nil_Message, %CName_Nil_Message* %"$adtval_3934", i32 0, i32 0 - store i8 1, i8* %"$adtgep_3935", align 1 - %"$adtptr_3936" = bitcast %CName_Nil_Message* %"$adtval_3934" to %TName_List_Message* - store %TName_List_Message* %"$adtptr_3936", %TName_List_Message** @ud-registry.nilMessage, align 8, !dbg !413 - %"$gasrem_3937" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3938" = icmp ugt i64 1, %"$gasrem_3937" - br i1 %"$gascmp_3938", label %"$out_of_gas_3939", label %"$have_gas_3940" - -"$out_of_gas_3939": ; preds = %"$have_gas_3932" - call void @_out_of_gas() - br label %"$have_gas_3940" - -"$have_gas_3940": ; preds = %"$out_of_gas_3939", %"$have_gas_3932" - %"$consume_3941" = sub i64 %"$gasrem_3937", 1 - store i64 %"$consume_3941", i64* @_gasrem, align 8 - %"$$fundef_415_envp_3942_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_415_envp_3942_salloc" = call i8* @_salloc(i8* %"$$fundef_415_envp_3942_load", i64 8) - %"$$fundef_415_envp_3942" = bitcast i8* %"$$fundef_415_envp_3942_salloc" to %"$$fundef_415_env_655"* - %"$$fundef_415_env_voidp_3944" = bitcast %"$$fundef_415_env_655"* %"$$fundef_415_envp_3942" to i8* - %"$$fundef_415_cloval_3945" = insertvalue { %TName_List_Message* (i8*, i8*)*, i8* } { %TName_List_Message* (i8*, i8*)* bitcast (%TName_List_Message* (%"$$fundef_415_env_655"*, i8*)* @"$fundef_415" to %TName_List_Message* (i8*, i8*)*), i8* undef }, i8* %"$$fundef_415_env_voidp_3944", 1 - %"$$fundef_415_env_ud-registry.nilMessage_3946" = getelementptr inbounds %"$$fundef_415_env_655", %"$$fundef_415_env_655"* %"$$fundef_415_envp_3942", i32 0, i32 0 - %"$ud-registry.nilMessage_3947" = load %TName_List_Message*, %TName_List_Message** @ud-registry.nilMessage, align 8 - store %TName_List_Message* %"$ud-registry.nilMessage_3947", %TName_List_Message** %"$$fundef_415_env_ud-registry.nilMessage_3946", align 8 - store { %TName_List_Message* (i8*, i8*)*, i8* } %"$$fundef_415_cloval_3945", { %TName_List_Message* (i8*, i8*)*, i8* }* @ud-registry.oneMsg, align 8, !dbg !414 - %"$gasrem_3948" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3949" = icmp ugt i64 1, %"$gasrem_3948" - br i1 %"$gascmp_3949", label %"$out_of_gas_3950", label %"$have_gas_3951" - -"$out_of_gas_3950": ; preds = %"$have_gas_3940" - call void @_out_of_gas() - br label %"$have_gas_3951" - -"$have_gas_3951": ; preds = %"$out_of_gas_3950", %"$have_gas_3940" - %"$consume_3952" = sub i64 %"$gasrem_3948", 1 - store i64 %"$consume_3952", i64* @_gasrem, align 8 +"$out_of_gas_3966": ; preds = %"$have_gas_3959" + call void @_out_of_gas() + br label %"$have_gas_3967" + +"$have_gas_3967": ; preds = %"$out_of_gas_3966", %"$have_gas_3959" + %"$consume_3968" = sub i64 %"$gasrem_3964", 1 + store i64 %"$consume_3968", 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_201_env_658"*, %TName_Bool*)* @"$fundef_201" 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 !701 + %"$gasrem_3972" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3973" = icmp ugt i64 1, %"$gasrem_3972" + br i1 %"$gascmp_3973", label %"$out_of_gas_3974", label %"$have_gas_3975" + +"$out_of_gas_3974": ; preds = %"$have_gas_3967" + call void @_out_of_gas() + br label %"$have_gas_3975" + +"$have_gas_3975": ; preds = %"$out_of_gas_3974", %"$have_gas_3967" + %"$consume_3976" = sub i64 %"$gasrem_3972", 1 + store i64 %"$consume_3976", i64* @_gasrem, align 8 + store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } { %TName_Bool* (i8*, %TName_Bool*)* bitcast (%TName_Bool* (%"$$fundef_199_env_656"*, %TName_Bool*)* @"$fundef_199" to %TName_Bool* (i8*, %TName_Bool*)*), i8* null }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* @BoolUtils.negb, align 8, !dbg !702 + %"$gasrem_3980" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3981" = icmp ugt i64 20, %"$gasrem_3980" + br i1 %"$gascmp_3981", label %"$out_of_gas_3982", label %"$have_gas_3983" + +"$out_of_gas_3982": ; preds = %"$have_gas_3975" + call void @_out_of_gas() + br label %"$have_gas_3983" + +"$have_gas_3983": ; preds = %"$out_of_gas_3982", %"$have_gas_3975" + %"$consume_3984" = sub i64 %"$gasrem_3980", 20 + store i64 %"$consume_3984", i64* @_gasrem, align 8 + store %Int32 { i32 20 }, %Int32* @"$_gas_charge_accListUtils_2", align 4, !dbg !699 + %"$gasrem_3985" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3986" = icmp ugt i64 3, %"$gasrem_3985" + br i1 %"$gascmp_3986", label %"$out_of_gas_3987", label %"$have_gas_3988" + +"$out_of_gas_3987": ; preds = %"$have_gas_3983" + call void @_out_of_gas() + br label %"$have_gas_3988" + +"$have_gas_3988": ; preds = %"$out_of_gas_3987", %"$have_gas_3983" + %"$consume_3989" = sub i64 %"$gasrem_3985", 3 + store i64 %"$consume_3989", i64* @_gasrem, align 8 + store %Int32 { i32 3 }, %Int32* @"$_gas_charge_accRegistryLib_0", align 4, !dbg !699 + %"$gasrem_3990" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3991" = icmp ugt i64 1, %"$gasrem_3990" + br i1 %"$gascmp_3991", label %"$out_of_gas_3992", label %"$have_gas_3993" + +"$out_of_gas_3992": ; preds = %"$have_gas_3988" + call void @_out_of_gas() + br label %"$have_gas_3993" + +"$have_gas_3993": ; preds = %"$out_of_gas_3992", %"$have_gas_3988" + %"$consume_3994" = sub i64 %"$gasrem_3990", 1 + store i64 %"$consume_3994", i64* @_gasrem, align 8 + store [20 x i8] zeroinitializer, [20 x i8]* @ud-registry.zeroByStr20, align 1, !dbg !703 + %"$gasrem_3995" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3996" = icmp ugt i64 1, %"$gasrem_3995" + br i1 %"$gascmp_3996", label %"$out_of_gas_3997", label %"$have_gas_3998" + +"$out_of_gas_3997": ; preds = %"$have_gas_3993" + call void @_out_of_gas() + br label %"$have_gas_3998" + +"$have_gas_3998": ; preds = %"$out_of_gas_3997", %"$have_gas_3993" + %"$consume_3999" = sub i64 %"$gasrem_3995", 1 + store i64 %"$consume_3999", i64* @_gasrem, align 8 + %"$adtval_4000_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_4000_salloc" = call i8* @_salloc(i8* %"$adtval_4000_load", i64 1) + %"$adtval_4000" = bitcast i8* %"$adtval_4000_salloc" to %CName_Nil_ByStr20* + %"$adtgep_4001" = getelementptr inbounds %CName_Nil_ByStr20, %CName_Nil_ByStr20* %"$adtval_4000", i32 0, i32 0 + store i8 1, i8* %"$adtgep_4001", align 1 + %"$adtptr_4002" = bitcast %CName_Nil_ByStr20* %"$adtval_4000" to %TName_List_ByStr20* + store %TName_List_ByStr20* %"$adtptr_4002", %TName_List_ByStr20** @ud-registry.nilByStr20, align 8, !dbg !704 + %"$gasrem_4003" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4004" = icmp ugt i64 1, %"$gasrem_4003" + br i1 %"$gascmp_4004", label %"$out_of_gas_4005", label %"$have_gas_4006" + +"$out_of_gas_4005": ; preds = %"$have_gas_3998" + call void @_out_of_gas() + br label %"$have_gas_4006" + +"$have_gas_4006": ; preds = %"$out_of_gas_4005", %"$have_gas_3998" + %"$consume_4007" = sub i64 %"$gasrem_4003", 1 + store i64 %"$consume_4007", i64* @_gasrem, align 8 + %"$adtval_4008_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_4008_salloc" = call i8* @_salloc(i8* %"$adtval_4008_load", i64 1) + %"$adtval_4008" = bitcast i8* %"$adtval_4008_salloc" to %CName_Nil_Message* + %"$adtgep_4009" = getelementptr inbounds %CName_Nil_Message, %CName_Nil_Message* %"$adtval_4008", i32 0, i32 0 + store i8 1, i8* %"$adtgep_4009", align 1 + %"$adtptr_4010" = bitcast %CName_Nil_Message* %"$adtval_4008" to %TName_List_Message* + store %TName_List_Message* %"$adtptr_4010", %TName_List_Message** @ud-registry.nilMessage, align 8, !dbg !705 + %"$gasrem_4011" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4012" = icmp ugt i64 1, %"$gasrem_4011" + br i1 %"$gascmp_4012", label %"$out_of_gas_4013", label %"$have_gas_4014" + +"$out_of_gas_4013": ; preds = %"$have_gas_4006" + call void @_out_of_gas() + br label %"$have_gas_4014" + +"$have_gas_4014": ; preds = %"$out_of_gas_4013", %"$have_gas_4006" + %"$consume_4015" = sub i64 %"$gasrem_4011", 1 + store i64 %"$consume_4015", i64* @_gasrem, align 8 + %"$$fundef_415_envp_4016_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_415_envp_4016_salloc" = call i8* @_salloc(i8* %"$$fundef_415_envp_4016_load", i64 8) + %"$$fundef_415_envp_4016" = bitcast i8* %"$$fundef_415_envp_4016_salloc" to %"$$fundef_415_env_655"* + %"$$fundef_415_env_voidp_4018" = bitcast %"$$fundef_415_env_655"* %"$$fundef_415_envp_4016" to i8* + %"$$fundef_415_cloval_4019" = insertvalue { %TName_List_Message* (i8*, i8*)*, i8* } { %TName_List_Message* (i8*, i8*)* bitcast (%TName_List_Message* (%"$$fundef_415_env_655"*, i8*)* @"$fundef_415" to %TName_List_Message* (i8*, i8*)*), i8* undef }, i8* %"$$fundef_415_env_voidp_4018", 1 + %"$$fundef_415_env_ud-registry.nilMessage_4020" = getelementptr inbounds %"$$fundef_415_env_655", %"$$fundef_415_env_655"* %"$$fundef_415_envp_4016", i32 0, i32 0 + %"$ud-registry.nilMessage_4021" = load %TName_List_Message*, %TName_List_Message** @ud-registry.nilMessage, align 8 + store %TName_List_Message* %"$ud-registry.nilMessage_4021", %TName_List_Message** %"$$fundef_415_env_ud-registry.nilMessage_4020", align 8 + store { %TName_List_Message* (i8*, i8*)*, i8* } %"$$fundef_415_cloval_4019", { %TName_List_Message* (i8*, i8*)*, i8* }* @ud-registry.oneMsg, align 8, !dbg !706 + %"$gasrem_4022" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4023" = icmp ugt i64 1, %"$gasrem_4022" + br i1 %"$gascmp_4023", label %"$out_of_gas_4024", label %"$have_gas_4025" + +"$out_of_gas_4024": ; preds = %"$have_gas_4014" + call void @_out_of_gas() + br label %"$have_gas_4025" + +"$have_gas_4025": ; preds = %"$out_of_gas_4024", %"$have_gas_4014" + %"$consume_4026" = sub i64 %"$gasrem_4022", 1 + store i64 %"$consume_4026", i64* @_gasrem, 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* } { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)* bitcast ({ %TName_Bool* (i8*, [20 x i8]*)*, i8* } (%"$$fundef_373_env_654"*, [20 x i8]*)* @"$fundef_373" 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 !415 + 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_373_env_654"*, [20 x i8]*)* @"$fundef_373" 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 !707 %ListUtils.list_mem = alloca { i8*, i8* }*, align 8 %ListUtils.list_exists = alloca { i8*, i8* }*, align 8 %ListUtils.list_find = alloca { i8*, i8* }*, align 8 %list_foldk = alloca { i8*, i8* }*, align 8 - %"$dyndisp_table_3959_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$dyndisp_table_3959_salloc_salloc" = call i8* @_salloc(i8* %"$dyndisp_table_3959_salloc_load", i64 48) - %"$dyndisp_table_3959_salloc" = bitcast i8* %"$dyndisp_table_3959_salloc_salloc" to [3 x { i8*, i8* }]* - %"$dyndisp_table_3959" = bitcast [3 x { i8*, i8* }]* %"$dyndisp_table_3959_salloc" to { i8*, i8* }* - %"$dyndisp_gep_3960" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_3959", i32 0 - %"$dyndisp_pcast_3961" = bitcast { i8*, i8* }* %"$dyndisp_gep_3960" to { { i8*, i8* }* (i8*)*, i8* }* - store { { i8*, i8* }* (i8*)*, i8* } { { i8*, i8* }* (i8*)* bitcast ({ i8*, i8* }* (%"$$fundef_377_env_652"*)* @"$fundef_377" to { i8*, i8* }* (i8*)*), i8* null }, { { i8*, i8* }* (i8*)*, i8* }* %"$dyndisp_pcast_3961", align 8 - store { i8*, i8* }* %"$dyndisp_table_3959", { i8*, i8* }** %list_foldk, align 8, !dbg !416 - %"$$fundef_389_envp_3962_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_389_envp_3962_salloc" = call i8* @_salloc(i8* %"$$fundef_389_envp_3962_load", i64 8) - %"$$fundef_389_envp_3962" = bitcast i8* %"$$fundef_389_envp_3962_salloc" to %"$$fundef_389_env_646"* - %"$$fundef_389_env_voidp_3964" = bitcast %"$$fundef_389_env_646"* %"$$fundef_389_envp_3962" to i8* - %"$$fundef_389_cloval_3965" = 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_389_env_646"*)* @"$fundef_389" to { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*), i8* undef }, i8* %"$$fundef_389_env_voidp_3964", 1 - %"$$fundef_389_env_list_foldk_3966" = getelementptr inbounds %"$$fundef_389_env_646", %"$$fundef_389_env_646"* %"$$fundef_389_envp_3962", i32 0, i32 0 - %"$list_foldk_3967" = load { i8*, i8* }*, { i8*, i8* }** %list_foldk, align 8 - store { i8*, i8* }* %"$list_foldk_3967", { i8*, i8* }** %"$$fundef_389_env_list_foldk_3966", align 8 - %"$dyndisp_table_3968_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$dyndisp_table_3968_salloc_salloc" = call i8* @_salloc(i8* %"$dyndisp_table_3968_salloc_load", i64 48) - %"$dyndisp_table_3968_salloc" = bitcast i8* %"$dyndisp_table_3968_salloc_salloc" to [3 x { i8*, i8* }]* - %"$dyndisp_table_3968" = bitcast [3 x { i8*, i8* }]* %"$dyndisp_table_3968_salloc" to { i8*, i8* }* - %"$dyndisp_gep_3969" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_3968", i32 0 - %"$dyndisp_pcast_3970" = bitcast { i8*, i8* }* %"$dyndisp_gep_3969" 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_389_cloval_3965", { { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*, i8* }* %"$dyndisp_pcast_3970", align 8 - store { i8*, i8* }* %"$dyndisp_table_3968", { i8*, i8* }** %ListUtils.list_find, align 8, !dbg !417 - %"$$fundef_399_envp_3971_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_399_envp_3971_salloc" = call i8* @_salloc(i8* %"$$fundef_399_envp_3971_load", i64 8) - %"$$fundef_399_envp_3971" = bitcast i8* %"$$fundef_399_envp_3971_salloc" to %"$$fundef_399_env_641"* - %"$$fundef_399_env_voidp_3973" = bitcast %"$$fundef_399_env_641"* %"$$fundef_399_envp_3971" to i8* - %"$$fundef_399_cloval_3974" = 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_399_env_641"*)* @"$fundef_399" to { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*), i8* undef }, i8* %"$$fundef_399_env_voidp_3973", 1 - %"$$fundef_399_env_ListUtils.list_find_3975" = getelementptr inbounds %"$$fundef_399_env_641", %"$$fundef_399_env_641"* %"$$fundef_399_envp_3971", i32 0, i32 0 - %"$ListUtils.list_find_3976" = load { i8*, i8* }*, { i8*, i8* }** %ListUtils.list_find, align 8 - store { i8*, i8* }* %"$ListUtils.list_find_3976", { i8*, i8* }** %"$$fundef_399_env_ListUtils.list_find_3975", align 8 - %"$dyndisp_table_3977_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$dyndisp_table_3977_salloc_salloc" = call i8* @_salloc(i8* %"$dyndisp_table_3977_salloc_load", i64 48) - %"$dyndisp_table_3977_salloc" = bitcast i8* %"$dyndisp_table_3977_salloc_salloc" to [3 x { i8*, i8* }]* - %"$dyndisp_table_3977" = bitcast [3 x { i8*, i8* }]* %"$dyndisp_table_3977_salloc" to { i8*, i8* }* - %"$dyndisp_gep_3978" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_3977", i32 0 - %"$dyndisp_pcast_3979" = bitcast { i8*, i8* }* %"$dyndisp_gep_3978" 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_399_cloval_3974", { { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*, i8* }* %"$dyndisp_pcast_3979", align 8 - store { i8*, i8* }* %"$dyndisp_table_3977", { i8*, i8* }** %ListUtils.list_exists, align 8, !dbg !418 - %"$$fundef_405_envp_3980_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_405_envp_3980_salloc" = call i8* @_salloc(i8* %"$$fundef_405_envp_3980_load", i64 8) - %"$$fundef_405_envp_3980" = bitcast i8* %"$$fundef_405_envp_3980_salloc" to %"$$fundef_405_env_638"* - %"$$fundef_405_env_voidp_3982" = bitcast %"$$fundef_405_env_638"* %"$$fundef_405_envp_3980" to i8* - %"$$fundef_405_cloval_3983" = 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_405_env_638"*)* @"$fundef_405" 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_405_env_voidp_3982", 1 - %"$$fundef_405_env_ListUtils.list_exists_3984" = getelementptr inbounds %"$$fundef_405_env_638", %"$$fundef_405_env_638"* %"$$fundef_405_envp_3980", i32 0, i32 0 - %"$ListUtils.list_exists_3985" = load { i8*, i8* }*, { i8*, i8* }** %ListUtils.list_exists, align 8 - store { i8*, i8* }* %"$ListUtils.list_exists_3985", { i8*, i8* }** %"$$fundef_405_env_ListUtils.list_exists_3984", align 8 - %"$dyndisp_table_3986_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$dyndisp_table_3986_salloc_salloc" = call i8* @_salloc(i8* %"$dyndisp_table_3986_salloc_load", i64 48) - %"$dyndisp_table_3986_salloc" = bitcast i8* %"$dyndisp_table_3986_salloc_salloc" to [3 x { i8*, i8* }]* - %"$dyndisp_table_3986" = bitcast [3 x { i8*, i8* }]* %"$dyndisp_table_3986_salloc" to { i8*, i8* }* - %"$dyndisp_gep_3987" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_3986", i32 0 - %"$dyndisp_pcast_3988" = bitcast { i8*, i8* }* %"$dyndisp_gep_3987" 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_405_cloval_3983", { { { { %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_3988", align 8 - store { i8*, i8* }* %"$dyndisp_table_3986", { i8*, i8* }** %ListUtils.list_mem, align 8, !dbg !419 - %"$$fundef_411_envp_3989_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_411_envp_3989_salloc" = call i8* @_salloc(i8* %"$$fundef_411_envp_3989_load", i64 24) - %"$$fundef_411_envp_3989" = bitcast i8* %"$$fundef_411_envp_3989_salloc" to %"$$fundef_411_env_635"* - %"$$fundef_411_env_voidp_3991" = bitcast %"$$fundef_411_env_635"* %"$$fundef_411_envp_3989" to i8* - %"$$fundef_411_cloval_3992" = 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_411_env_635"*, %TName_List_ByStr20*)* @"$fundef_411" to { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*), i8* undef }, i8* %"$$fundef_411_env_voidp_3991", 1 - %"$$fundef_411_env_ListUtils.list_mem_3993" = getelementptr inbounds %"$$fundef_411_env_635", %"$$fundef_411_env_635"* %"$$fundef_411_envp_3989", i32 0, i32 0 - %"$ListUtils.list_mem_3994" = load { i8*, i8* }*, { i8*, i8* }** %ListUtils.list_mem, align 8 - store { i8*, i8* }* %"$ListUtils.list_mem_3994", { i8*, i8* }** %"$$fundef_411_env_ListUtils.list_mem_3993", align 8 - %"$$fundef_411_env_ud-registry.eqByStr20_3995" = getelementptr inbounds %"$$fundef_411_env_635", %"$$fundef_411_env_635"* %"$$fundef_411_envp_3989", i32 0, i32 1 - %"$ud-registry.eqByStr20_3996" = 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_3996", { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* }* %"$$fundef_411_env_ud-registry.eqByStr20_3995", align 8 - store { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } %"$$fundef_411_cloval_3992", { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }* @ud-registry.listByStr20Contains, align 8, !dbg !420 - %"$gasrem_3997" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3998" = icmp ugt i64 1, %"$gasrem_3997" - br i1 %"$gascmp_3998", label %"$out_of_gas_3999", label %"$have_gas_4000" - -"$out_of_gas_3999": ; preds = %"$have_gas_3951" - call void @_out_of_gas() - br label %"$have_gas_4000" - -"$have_gas_4000": ; preds = %"$out_of_gas_3999", %"$have_gas_3951" - %"$consume_4001" = sub i64 %"$gasrem_3997", 1 - store i64 %"$consume_4001", i64* @_gasrem, align 8 + %"$dyndisp_table_4033_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$dyndisp_table_4033_salloc_salloc" = call i8* @_salloc(i8* %"$dyndisp_table_4033_salloc_load", i64 48) + %"$dyndisp_table_4033_salloc" = bitcast i8* %"$dyndisp_table_4033_salloc_salloc" to [3 x { i8*, i8* }]* + %"$dyndisp_table_4033" = bitcast [3 x { i8*, i8* }]* %"$dyndisp_table_4033_salloc" to { i8*, i8* }* + %"$dyndisp_gep_4034" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_4033", i32 0 + %"$dyndisp_pcast_4035" = bitcast { i8*, i8* }* %"$dyndisp_gep_4034" to { { i8*, i8* }* (i8*)*, i8* }* + store { { i8*, i8* }* (i8*)*, i8* } { { i8*, i8* }* (i8*)* bitcast ({ i8*, i8* }* (%"$$fundef_377_env_652"*)* @"$fundef_377" to { i8*, i8* }* (i8*)*), i8* null }, { { i8*, i8* }* (i8*)*, i8* }* %"$dyndisp_pcast_4035", align 8 + store { i8*, i8* }* %"$dyndisp_table_4033", { i8*, i8* }** %list_foldk, align 8, !dbg !708 + %"$$fundef_389_envp_4036_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_389_envp_4036_salloc" = call i8* @_salloc(i8* %"$$fundef_389_envp_4036_load", i64 8) + %"$$fundef_389_envp_4036" = bitcast i8* %"$$fundef_389_envp_4036_salloc" to %"$$fundef_389_env_646"* + %"$$fundef_389_env_voidp_4038" = bitcast %"$$fundef_389_env_646"* %"$$fundef_389_envp_4036" to i8* + %"$$fundef_389_cloval_4039" = 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_389_env_646"*)* @"$fundef_389" to { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*), i8* undef }, i8* %"$$fundef_389_env_voidp_4038", 1 + %"$$fundef_389_env_list_foldk_4040" = getelementptr inbounds %"$$fundef_389_env_646", %"$$fundef_389_env_646"* %"$$fundef_389_envp_4036", i32 0, i32 0 + %"$list_foldk_4041" = load { i8*, i8* }*, { i8*, i8* }** %list_foldk, align 8 + store { i8*, i8* }* %"$list_foldk_4041", { i8*, i8* }** %"$$fundef_389_env_list_foldk_4040", align 8 + %"$dyndisp_table_4042_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$dyndisp_table_4042_salloc_salloc" = call i8* @_salloc(i8* %"$dyndisp_table_4042_salloc_load", i64 48) + %"$dyndisp_table_4042_salloc" = bitcast i8* %"$dyndisp_table_4042_salloc_salloc" to [3 x { i8*, i8* }]* + %"$dyndisp_table_4042" = bitcast [3 x { i8*, i8* }]* %"$dyndisp_table_4042_salloc" to { i8*, i8* }* + %"$dyndisp_gep_4043" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_4042", i32 0 + %"$dyndisp_pcast_4044" = bitcast { i8*, i8* }* %"$dyndisp_gep_4043" 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_389_cloval_4039", { { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*, i8* }* %"$dyndisp_pcast_4044", align 8 + store { i8*, i8* }* %"$dyndisp_table_4042", { i8*, i8* }** %ListUtils.list_find, align 8, !dbg !709 + %"$$fundef_399_envp_4045_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_399_envp_4045_salloc" = call i8* @_salloc(i8* %"$$fundef_399_envp_4045_load", i64 8) + %"$$fundef_399_envp_4045" = bitcast i8* %"$$fundef_399_envp_4045_salloc" to %"$$fundef_399_env_641"* + %"$$fundef_399_env_voidp_4047" = bitcast %"$$fundef_399_env_641"* %"$$fundef_399_envp_4045" to i8* + %"$$fundef_399_cloval_4048" = 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_399_env_641"*)* @"$fundef_399" to { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*), i8* undef }, i8* %"$$fundef_399_env_voidp_4047", 1 + %"$$fundef_399_env_ListUtils.list_find_4049" = getelementptr inbounds %"$$fundef_399_env_641", %"$$fundef_399_env_641"* %"$$fundef_399_envp_4045", i32 0, i32 0 + %"$ListUtils.list_find_4050" = load { i8*, i8* }*, { i8*, i8* }** %ListUtils.list_find, align 8 + store { i8*, i8* }* %"$ListUtils.list_find_4050", { i8*, i8* }** %"$$fundef_399_env_ListUtils.list_find_4049", align 8 + %"$dyndisp_table_4051_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$dyndisp_table_4051_salloc_salloc" = call i8* @_salloc(i8* %"$dyndisp_table_4051_salloc_load", i64 48) + %"$dyndisp_table_4051_salloc" = bitcast i8* %"$dyndisp_table_4051_salloc_salloc" to [3 x { i8*, i8* }]* + %"$dyndisp_table_4051" = bitcast [3 x { i8*, i8* }]* %"$dyndisp_table_4051_salloc" to { i8*, i8* }* + %"$dyndisp_gep_4052" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_4051", i32 0 + %"$dyndisp_pcast_4053" = bitcast { i8*, i8* }* %"$dyndisp_gep_4052" 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_399_cloval_4048", { { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*, i8* }* %"$dyndisp_pcast_4053", align 8 + store { i8*, i8* }* %"$dyndisp_table_4051", { i8*, i8* }** %ListUtils.list_exists, align 8, !dbg !710 + %"$$fundef_405_envp_4054_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_405_envp_4054_salloc" = call i8* @_salloc(i8* %"$$fundef_405_envp_4054_load", i64 8) + %"$$fundef_405_envp_4054" = bitcast i8* %"$$fundef_405_envp_4054_salloc" to %"$$fundef_405_env_638"* + %"$$fundef_405_env_voidp_4056" = bitcast %"$$fundef_405_env_638"* %"$$fundef_405_envp_4054" to i8* + %"$$fundef_405_cloval_4057" = 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_405_env_638"*)* @"$fundef_405" 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_405_env_voidp_4056", 1 + %"$$fundef_405_env_ListUtils.list_exists_4058" = getelementptr inbounds %"$$fundef_405_env_638", %"$$fundef_405_env_638"* %"$$fundef_405_envp_4054", i32 0, i32 0 + %"$ListUtils.list_exists_4059" = load { i8*, i8* }*, { i8*, i8* }** %ListUtils.list_exists, align 8 + store { i8*, i8* }* %"$ListUtils.list_exists_4059", { i8*, i8* }** %"$$fundef_405_env_ListUtils.list_exists_4058", align 8 + %"$dyndisp_table_4060_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$dyndisp_table_4060_salloc_salloc" = call i8* @_salloc(i8* %"$dyndisp_table_4060_salloc_load", i64 48) + %"$dyndisp_table_4060_salloc" = bitcast i8* %"$dyndisp_table_4060_salloc_salloc" to [3 x { i8*, i8* }]* + %"$dyndisp_table_4060" = bitcast [3 x { i8*, i8* }]* %"$dyndisp_table_4060_salloc" to { i8*, i8* }* + %"$dyndisp_gep_4061" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_4060", i32 0 + %"$dyndisp_pcast_4062" = bitcast { i8*, i8* }* %"$dyndisp_gep_4061" 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_405_cloval_4057", { { { { %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_4062", align 8 + store { i8*, i8* }* %"$dyndisp_table_4060", { i8*, i8* }** %ListUtils.list_mem, align 8, !dbg !711 + %"$$fundef_411_envp_4063_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_411_envp_4063_salloc" = call i8* @_salloc(i8* %"$$fundef_411_envp_4063_load", i64 24) + %"$$fundef_411_envp_4063" = bitcast i8* %"$$fundef_411_envp_4063_salloc" to %"$$fundef_411_env_635"* + %"$$fundef_411_env_voidp_4065" = bitcast %"$$fundef_411_env_635"* %"$$fundef_411_envp_4063" to i8* + %"$$fundef_411_cloval_4066" = 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_411_env_635"*, %TName_List_ByStr20*)* @"$fundef_411" to { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*), i8* undef }, i8* %"$$fundef_411_env_voidp_4065", 1 + %"$$fundef_411_env_ListUtils.list_mem_4067" = getelementptr inbounds %"$$fundef_411_env_635", %"$$fundef_411_env_635"* %"$$fundef_411_envp_4063", i32 0, i32 0 + %"$ListUtils.list_mem_4068" = load { i8*, i8* }*, { i8*, i8* }** %ListUtils.list_mem, align 8 + store { i8*, i8* }* %"$ListUtils.list_mem_4068", { i8*, i8* }** %"$$fundef_411_env_ListUtils.list_mem_4067", align 8 + %"$$fundef_411_env_ud-registry.eqByStr20_4069" = getelementptr inbounds %"$$fundef_411_env_635", %"$$fundef_411_env_635"* %"$$fundef_411_envp_4063", i32 0, i32 1 + %"$ud-registry.eqByStr20_4070" = 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_4070", { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* }* %"$$fundef_411_env_ud-registry.eqByStr20_4069", align 8 + store { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } %"$$fundef_411_cloval_4066", { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }* @ud-registry.listByStr20Contains, align 8, !dbg !712 + %"$gasrem_4071" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4072" = icmp ugt i64 1, %"$gasrem_4071" + br i1 %"$gascmp_4072", label %"$out_of_gas_4073", label %"$have_gas_4074" + +"$out_of_gas_4073": ; preds = %"$have_gas_4025" + call void @_out_of_gas() + br label %"$have_gas_4074" + +"$have_gas_4074": ; preds = %"$out_of_gas_4073", %"$have_gas_4025" + %"$consume_4075" = sub i64 %"$gasrem_4071", 1 + store i64 %"$consume_4075", i64* @_gasrem, align 8 %"$ud-registry.listByStr20Contains_9" = alloca { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }, align 8 %"$ud-registry.eqByStr20_4" = 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* } { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)* bitcast ({ %TName_Bool* (i8*, [20 x i8]*)*, i8* } (%"$$fundef_325_env_633"*, [20 x i8]*)* @"$fundef_325" 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_4", align 8, !dbg !415 + 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_325_env_633"*, [20 x i8]*)* @"$fundef_325" 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_4", align 8, !dbg !707 %"$ListUtils.list_mem_8" = alloca { i8*, i8* }*, align 8 %"$ListUtils.list_exists_7" = alloca { i8*, i8* }*, align 8 %"$ListUtils.list_find_6" = alloca { i8*, i8* }*, align 8 %"$list_foldk_5" = alloca { i8*, i8* }*, align 8 - %"$dyndisp_table_4008_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$dyndisp_table_4008_salloc_salloc" = call i8* @_salloc(i8* %"$dyndisp_table_4008_salloc_load", i64 48) - %"$dyndisp_table_4008_salloc" = bitcast i8* %"$dyndisp_table_4008_salloc_salloc" to [3 x { i8*, i8* }]* - %"$dyndisp_table_4008" = bitcast [3 x { i8*, i8* }]* %"$dyndisp_table_4008_salloc" to { i8*, i8* }* - %"$dyndisp_gep_4009" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_4008", i32 0 - %"$dyndisp_pcast_4010" = bitcast { i8*, i8* }* %"$dyndisp_gep_4009" to { { i8*, i8* }* (i8*)*, i8* }* - store { { i8*, i8* }* (i8*)*, i8* } { { i8*, i8* }* (i8*)* bitcast ({ i8*, i8* }* (%"$$fundef_329_env_631"*)* @"$fundef_329" to { i8*, i8* }* (i8*)*), i8* null }, { { i8*, i8* }* (i8*)*, i8* }* %"$dyndisp_pcast_4010", align 8 - store { i8*, i8* }* %"$dyndisp_table_4008", { i8*, i8* }** %"$list_foldk_5", align 8, !dbg !416 - %"$$fundef_341_envp_4011_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_341_envp_4011_salloc" = call i8* @_salloc(i8* %"$$fundef_341_envp_4011_load", i64 8) - %"$$fundef_341_envp_4011" = bitcast i8* %"$$fundef_341_envp_4011_salloc" to %"$$fundef_341_env_625"* - %"$$fundef_341_env_voidp_4013" = bitcast %"$$fundef_341_env_625"* %"$$fundef_341_envp_4011" to i8* - %"$$fundef_341_cloval_4014" = 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_341_env_625"*)* @"$fundef_341" to { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*), i8* undef }, i8* %"$$fundef_341_env_voidp_4013", 1 - %"$$fundef_341_env_$list_foldk_5_4015" = getelementptr inbounds %"$$fundef_341_env_625", %"$$fundef_341_env_625"* %"$$fundef_341_envp_4011", i32 0, i32 0 - %"$$list_foldk_5_4016" = load { i8*, i8* }*, { i8*, i8* }** %"$list_foldk_5", align 8 - store { i8*, i8* }* %"$$list_foldk_5_4016", { i8*, i8* }** %"$$fundef_341_env_$list_foldk_5_4015", align 8 - %"$dyndisp_table_4017_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$dyndisp_table_4017_salloc_salloc" = call i8* @_salloc(i8* %"$dyndisp_table_4017_salloc_load", i64 48) - %"$dyndisp_table_4017_salloc" = bitcast i8* %"$dyndisp_table_4017_salloc_salloc" to [3 x { i8*, i8* }]* - %"$dyndisp_table_4017" = bitcast [3 x { i8*, i8* }]* %"$dyndisp_table_4017_salloc" to { i8*, i8* }* - %"$dyndisp_gep_4018" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_4017", i32 0 - %"$dyndisp_pcast_4019" = bitcast { i8*, i8* }* %"$dyndisp_gep_4018" 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_341_cloval_4014", { { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*, i8* }* %"$dyndisp_pcast_4019", align 8 - store { i8*, i8* }* %"$dyndisp_table_4017", { i8*, i8* }** %"$ListUtils.list_find_6", align 8, !dbg !417 - %"$$fundef_351_envp_4020_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_351_envp_4020_salloc" = call i8* @_salloc(i8* %"$$fundef_351_envp_4020_load", i64 8) - %"$$fundef_351_envp_4020" = bitcast i8* %"$$fundef_351_envp_4020_salloc" to %"$$fundef_351_env_620"* - %"$$fundef_351_env_voidp_4022" = bitcast %"$$fundef_351_env_620"* %"$$fundef_351_envp_4020" to i8* - %"$$fundef_351_cloval_4023" = 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_351_env_620"*)* @"$fundef_351" to { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*), i8* undef }, i8* %"$$fundef_351_env_voidp_4022", 1 - %"$$fundef_351_env_$ListUtils.list_find_6_4024" = getelementptr inbounds %"$$fundef_351_env_620", %"$$fundef_351_env_620"* %"$$fundef_351_envp_4020", i32 0, i32 0 - %"$$ListUtils.list_find_6_4025" = load { i8*, i8* }*, { i8*, i8* }** %"$ListUtils.list_find_6", align 8 - store { i8*, i8* }* %"$$ListUtils.list_find_6_4025", { i8*, i8* }** %"$$fundef_351_env_$ListUtils.list_find_6_4024", align 8 - %"$dyndisp_table_4026_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$dyndisp_table_4026_salloc_salloc" = call i8* @_salloc(i8* %"$dyndisp_table_4026_salloc_load", i64 48) - %"$dyndisp_table_4026_salloc" = bitcast i8* %"$dyndisp_table_4026_salloc_salloc" to [3 x { i8*, i8* }]* - %"$dyndisp_table_4026" = bitcast [3 x { i8*, i8* }]* %"$dyndisp_table_4026_salloc" to { i8*, i8* }* - %"$dyndisp_gep_4027" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_4026", i32 0 - %"$dyndisp_pcast_4028" = bitcast { i8*, i8* }* %"$dyndisp_gep_4027" 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_351_cloval_4023", { { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*, i8* }* %"$dyndisp_pcast_4028", align 8 - store { i8*, i8* }* %"$dyndisp_table_4026", { i8*, i8* }** %"$ListUtils.list_exists_7", align 8, !dbg !418 - %"$$fundef_357_envp_4029_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_357_envp_4029_salloc" = call i8* @_salloc(i8* %"$$fundef_357_envp_4029_load", i64 8) - %"$$fundef_357_envp_4029" = bitcast i8* %"$$fundef_357_envp_4029_salloc" to %"$$fundef_357_env_617"* - %"$$fundef_357_env_voidp_4031" = bitcast %"$$fundef_357_env_617"* %"$$fundef_357_envp_4029" to i8* - %"$$fundef_357_cloval_4032" = 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_357_env_617"*)* @"$fundef_357" 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_357_env_voidp_4031", 1 - %"$$fundef_357_env_$ListUtils.list_exists_7_4033" = getelementptr inbounds %"$$fundef_357_env_617", %"$$fundef_357_env_617"* %"$$fundef_357_envp_4029", i32 0, i32 0 - %"$$ListUtils.list_exists_7_4034" = load { i8*, i8* }*, { i8*, i8* }** %"$ListUtils.list_exists_7", align 8 - store { i8*, i8* }* %"$$ListUtils.list_exists_7_4034", { i8*, i8* }** %"$$fundef_357_env_$ListUtils.list_exists_7_4033", align 8 - %"$dyndisp_table_4035_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$dyndisp_table_4035_salloc_salloc" = call i8* @_salloc(i8* %"$dyndisp_table_4035_salloc_load", i64 48) - %"$dyndisp_table_4035_salloc" = bitcast i8* %"$dyndisp_table_4035_salloc_salloc" to [3 x { i8*, i8* }]* - %"$dyndisp_table_4035" = bitcast [3 x { i8*, i8* }]* %"$dyndisp_table_4035_salloc" to { i8*, i8* }* - %"$dyndisp_gep_4036" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_4035", i32 0 - %"$dyndisp_pcast_4037" = bitcast { i8*, i8* }* %"$dyndisp_gep_4036" 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_357_cloval_4032", { { { { %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_4037", align 8 - store { i8*, i8* }* %"$dyndisp_table_4035", { i8*, i8* }** %"$ListUtils.list_mem_8", align 8, !dbg !419 - %"$$fundef_363_envp_4038_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_363_envp_4038_salloc" = call i8* @_salloc(i8* %"$$fundef_363_envp_4038_load", i64 24) - %"$$fundef_363_envp_4038" = bitcast i8* %"$$fundef_363_envp_4038_salloc" to %"$$fundef_363_env_614"* - %"$$fundef_363_env_voidp_4040" = bitcast %"$$fundef_363_env_614"* %"$$fundef_363_envp_4038" to i8* - %"$$fundef_363_cloval_4041" = 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_363_env_614"*, %TName_List_ByStr20*)* @"$fundef_363" to { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*), i8* undef }, i8* %"$$fundef_363_env_voidp_4040", 1 - %"$$fundef_363_env_$ListUtils.list_mem_8_4042" = getelementptr inbounds %"$$fundef_363_env_614", %"$$fundef_363_env_614"* %"$$fundef_363_envp_4038", i32 0, i32 0 - %"$$ListUtils.list_mem_8_4043" = load { i8*, i8* }*, { i8*, i8* }** %"$ListUtils.list_mem_8", align 8 - store { i8*, i8* }* %"$$ListUtils.list_mem_8_4043", { i8*, i8* }** %"$$fundef_363_env_$ListUtils.list_mem_8_4042", align 8 - %"$$fundef_363_env_$ud-registry.eqByStr20_4_4044" = getelementptr inbounds %"$$fundef_363_env_614", %"$$fundef_363_env_614"* %"$$fundef_363_envp_4038", i32 0, i32 1 - %"$$ud-registry.eqByStr20_4_4045" = 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_4", align 8 - store { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.eqByStr20_4_4045", { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* }* %"$$fundef_363_env_$ud-registry.eqByStr20_4_4044", align 8 - store { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } %"$$fundef_363_cloval_4041", { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }* %"$ud-registry.listByStr20Contains_9", align 8, !dbg !420 + %"$dyndisp_table_4082_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$dyndisp_table_4082_salloc_salloc" = call i8* @_salloc(i8* %"$dyndisp_table_4082_salloc_load", i64 48) + %"$dyndisp_table_4082_salloc" = bitcast i8* %"$dyndisp_table_4082_salloc_salloc" to [3 x { i8*, i8* }]* + %"$dyndisp_table_4082" = bitcast [3 x { i8*, i8* }]* %"$dyndisp_table_4082_salloc" to { i8*, i8* }* + %"$dyndisp_gep_4083" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_4082", i32 0 + %"$dyndisp_pcast_4084" = bitcast { i8*, i8* }* %"$dyndisp_gep_4083" to { { i8*, i8* }* (i8*)*, i8* }* + store { { i8*, i8* }* (i8*)*, i8* } { { i8*, i8* }* (i8*)* bitcast ({ i8*, i8* }* (%"$$fundef_329_env_631"*)* @"$fundef_329" to { i8*, i8* }* (i8*)*), i8* null }, { { i8*, i8* }* (i8*)*, i8* }* %"$dyndisp_pcast_4084", align 8 + store { i8*, i8* }* %"$dyndisp_table_4082", { i8*, i8* }** %"$list_foldk_5", align 8, !dbg !708 + %"$$fundef_341_envp_4085_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_341_envp_4085_salloc" = call i8* @_salloc(i8* %"$$fundef_341_envp_4085_load", i64 8) + %"$$fundef_341_envp_4085" = bitcast i8* %"$$fundef_341_envp_4085_salloc" to %"$$fundef_341_env_625"* + %"$$fundef_341_env_voidp_4087" = bitcast %"$$fundef_341_env_625"* %"$$fundef_341_envp_4085" to i8* + %"$$fundef_341_cloval_4088" = 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_341_env_625"*)* @"$fundef_341" to { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*), i8* undef }, i8* %"$$fundef_341_env_voidp_4087", 1 + %"$$fundef_341_env_$list_foldk_5_4089" = getelementptr inbounds %"$$fundef_341_env_625", %"$$fundef_341_env_625"* %"$$fundef_341_envp_4085", i32 0, i32 0 + %"$$list_foldk_5_4090" = load { i8*, i8* }*, { i8*, i8* }** %"$list_foldk_5", align 8 + store { i8*, i8* }* %"$$list_foldk_5_4090", { i8*, i8* }** %"$$fundef_341_env_$list_foldk_5_4089", align 8 + %"$dyndisp_table_4091_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$dyndisp_table_4091_salloc_salloc" = call i8* @_salloc(i8* %"$dyndisp_table_4091_salloc_load", i64 48) + %"$dyndisp_table_4091_salloc" = bitcast i8* %"$dyndisp_table_4091_salloc_salloc" to [3 x { i8*, i8* }]* + %"$dyndisp_table_4091" = bitcast [3 x { i8*, i8* }]* %"$dyndisp_table_4091_salloc" to { i8*, i8* }* + %"$dyndisp_gep_4092" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_4091", i32 0 + %"$dyndisp_pcast_4093" = bitcast { i8*, i8* }* %"$dyndisp_gep_4092" 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_341_cloval_4088", { { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*, i8* }* %"$dyndisp_pcast_4093", align 8 + store { i8*, i8* }* %"$dyndisp_table_4091", { i8*, i8* }** %"$ListUtils.list_find_6", align 8, !dbg !709 + %"$$fundef_351_envp_4094_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_351_envp_4094_salloc" = call i8* @_salloc(i8* %"$$fundef_351_envp_4094_load", i64 8) + %"$$fundef_351_envp_4094" = bitcast i8* %"$$fundef_351_envp_4094_salloc" to %"$$fundef_351_env_620"* + %"$$fundef_351_env_voidp_4096" = bitcast %"$$fundef_351_env_620"* %"$$fundef_351_envp_4094" to i8* + %"$$fundef_351_cloval_4097" = 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_351_env_620"*)* @"$fundef_351" to { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*), i8* undef }, i8* %"$$fundef_351_env_voidp_4096", 1 + %"$$fundef_351_env_$ListUtils.list_find_6_4098" = getelementptr inbounds %"$$fundef_351_env_620", %"$$fundef_351_env_620"* %"$$fundef_351_envp_4094", i32 0, i32 0 + %"$$ListUtils.list_find_6_4099" = load { i8*, i8* }*, { i8*, i8* }** %"$ListUtils.list_find_6", align 8 + store { i8*, i8* }* %"$$ListUtils.list_find_6_4099", { i8*, i8* }** %"$$fundef_351_env_$ListUtils.list_find_6_4098", align 8 + %"$dyndisp_table_4100_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$dyndisp_table_4100_salloc_salloc" = call i8* @_salloc(i8* %"$dyndisp_table_4100_salloc_load", i64 48) + %"$dyndisp_table_4100_salloc" = bitcast i8* %"$dyndisp_table_4100_salloc_salloc" to [3 x { i8*, i8* }]* + %"$dyndisp_table_4100" = bitcast [3 x { i8*, i8* }]* %"$dyndisp_table_4100_salloc" to { i8*, i8* }* + %"$dyndisp_gep_4101" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_4100", i32 0 + %"$dyndisp_pcast_4102" = bitcast { i8*, i8* }* %"$dyndisp_gep_4101" 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_351_cloval_4097", { { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*, i8* }* %"$dyndisp_pcast_4102", align 8 + store { i8*, i8* }* %"$dyndisp_table_4100", { i8*, i8* }** %"$ListUtils.list_exists_7", align 8, !dbg !710 + %"$$fundef_357_envp_4103_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_357_envp_4103_salloc" = call i8* @_salloc(i8* %"$$fundef_357_envp_4103_load", i64 8) + %"$$fundef_357_envp_4103" = bitcast i8* %"$$fundef_357_envp_4103_salloc" to %"$$fundef_357_env_617"* + %"$$fundef_357_env_voidp_4105" = bitcast %"$$fundef_357_env_617"* %"$$fundef_357_envp_4103" to i8* + %"$$fundef_357_cloval_4106" = 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_357_env_617"*)* @"$fundef_357" 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_357_env_voidp_4105", 1 + %"$$fundef_357_env_$ListUtils.list_exists_7_4107" = getelementptr inbounds %"$$fundef_357_env_617", %"$$fundef_357_env_617"* %"$$fundef_357_envp_4103", i32 0, i32 0 + %"$$ListUtils.list_exists_7_4108" = load { i8*, i8* }*, { i8*, i8* }** %"$ListUtils.list_exists_7", align 8 + store { i8*, i8* }* %"$$ListUtils.list_exists_7_4108", { i8*, i8* }** %"$$fundef_357_env_$ListUtils.list_exists_7_4107", align 8 + %"$dyndisp_table_4109_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$dyndisp_table_4109_salloc_salloc" = call i8* @_salloc(i8* %"$dyndisp_table_4109_salloc_load", i64 48) + %"$dyndisp_table_4109_salloc" = bitcast i8* %"$dyndisp_table_4109_salloc_salloc" to [3 x { i8*, i8* }]* + %"$dyndisp_table_4109" = bitcast [3 x { i8*, i8* }]* %"$dyndisp_table_4109_salloc" to { i8*, i8* }* + %"$dyndisp_gep_4110" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_4109", i32 0 + %"$dyndisp_pcast_4111" = bitcast { i8*, i8* }* %"$dyndisp_gep_4110" 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_357_cloval_4106", { { { { %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_4111", align 8 + store { i8*, i8* }* %"$dyndisp_table_4109", { i8*, i8* }** %"$ListUtils.list_mem_8", align 8, !dbg !711 + %"$$fundef_363_envp_4112_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_363_envp_4112_salloc" = call i8* @_salloc(i8* %"$$fundef_363_envp_4112_load", i64 24) + %"$$fundef_363_envp_4112" = bitcast i8* %"$$fundef_363_envp_4112_salloc" to %"$$fundef_363_env_614"* + %"$$fundef_363_env_voidp_4114" = bitcast %"$$fundef_363_env_614"* %"$$fundef_363_envp_4112" to i8* + %"$$fundef_363_cloval_4115" = 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_363_env_614"*, %TName_List_ByStr20*)* @"$fundef_363" to { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*), i8* undef }, i8* %"$$fundef_363_env_voidp_4114", 1 + %"$$fundef_363_env_$ListUtils.list_mem_8_4116" = getelementptr inbounds %"$$fundef_363_env_614", %"$$fundef_363_env_614"* %"$$fundef_363_envp_4112", i32 0, i32 0 + %"$$ListUtils.list_mem_8_4117" = load { i8*, i8* }*, { i8*, i8* }** %"$ListUtils.list_mem_8", align 8 + store { i8*, i8* }* %"$$ListUtils.list_mem_8_4117", { i8*, i8* }** %"$$fundef_363_env_$ListUtils.list_mem_8_4116", align 8 + %"$$fundef_363_env_$ud-registry.eqByStr20_4_4118" = getelementptr inbounds %"$$fundef_363_env_614", %"$$fundef_363_env_614"* %"$$fundef_363_envp_4112", i32 0, i32 1 + %"$$ud-registry.eqByStr20_4_4119" = 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_4", align 8 + store { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.eqByStr20_4_4119", { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* }* %"$$fundef_363_env_$ud-registry.eqByStr20_4_4118", align 8 + store { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } %"$$fundef_363_cloval_4115", { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }* %"$ud-registry.listByStr20Contains_9", align 8, !dbg !712 %"$BoolUtils.negb_10" = alloca { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, align 8 - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } { %TName_Bool* (i8*, %TName_Bool*)* bitcast (%TName_Bool* (%"$$fundef_367_env_612"*, %TName_Bool*)* @"$fundef_367" to %TName_Bool* (i8*, %TName_Bool*)*), i8* null }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.negb_10", align 8, !dbg !410 - %"$$fundef_369_envp_4049_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_369_envp_4049_salloc" = call i8* @_salloc(i8* %"$$fundef_369_envp_4049_load", i64 32) - %"$$fundef_369_envp_4049" = bitcast i8* %"$$fundef_369_envp_4049_salloc" to %"$$fundef_369_env_611"* - %"$$fundef_369_env_voidp_4051" = bitcast %"$$fundef_369_env_611"* %"$$fundef_369_envp_4049" to i8* - %"$$fundef_369_cloval_4052" = 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_369_env_611"*, %TName_List_ByStr20*)* @"$fundef_369" to { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*), i8* undef }, i8* %"$$fundef_369_env_voidp_4051", 1 - %"$$fundef_369_env_$BoolUtils.negb_10_4053" = getelementptr inbounds %"$$fundef_369_env_611", %"$$fundef_369_env_611"* %"$$fundef_369_envp_4049", i32 0, i32 0 - %"$$BoolUtils.negb_10_4054" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.negb_10", align 8 - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.negb_10_4054", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$$fundef_369_env_$BoolUtils.negb_10_4053", align 8 - %"$$fundef_369_env_$ud-registry.listByStr20Contains_9_4055" = getelementptr inbounds %"$$fundef_369_env_611", %"$$fundef_369_env_611"* %"$$fundef_369_envp_4049", i32 0, i32 1 - %"$$ud-registry.listByStr20Contains_9_4056" = 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_9", align 8 - store { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } %"$$ud-registry.listByStr20Contains_9_4056", { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }* %"$$fundef_369_env_$ud-registry.listByStr20Contains_9_4055", align 8 - store { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } %"$$fundef_369_cloval_4052", { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }* @ud-registry.listByStr20Excludes, align 8, !dbg !421 - %"$gasrem_4057" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4058" = icmp ugt i64 1, %"$gasrem_4057" - br i1 %"$gascmp_4058", label %"$out_of_gas_4059", label %"$have_gas_4060" - -"$out_of_gas_4059": ; preds = %"$have_gas_4000" - call void @_out_of_gas() - br label %"$have_gas_4060" - -"$have_gas_4060": ; preds = %"$out_of_gas_4059", %"$have_gas_4000" - %"$consume_4061" = sub i64 %"$gasrem_4057", 1 - store i64 %"$consume_4061", i64* @_gasrem, align 8 + store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } { %TName_Bool* (i8*, %TName_Bool*)* bitcast (%TName_Bool* (%"$$fundef_367_env_612"*, %TName_Bool*)* @"$fundef_367" to %TName_Bool* (i8*, %TName_Bool*)*), i8* null }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.negb_10", align 8, !dbg !702 + %"$$fundef_369_envp_4123_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_369_envp_4123_salloc" = call i8* @_salloc(i8* %"$$fundef_369_envp_4123_load", i64 32) + %"$$fundef_369_envp_4123" = bitcast i8* %"$$fundef_369_envp_4123_salloc" to %"$$fundef_369_env_611"* + %"$$fundef_369_env_voidp_4125" = bitcast %"$$fundef_369_env_611"* %"$$fundef_369_envp_4123" to i8* + %"$$fundef_369_cloval_4126" = 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_369_env_611"*, %TName_List_ByStr20*)* @"$fundef_369" to { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*), i8* undef }, i8* %"$$fundef_369_env_voidp_4125", 1 + %"$$fundef_369_env_$BoolUtils.negb_10_4127" = getelementptr inbounds %"$$fundef_369_env_611", %"$$fundef_369_env_611"* %"$$fundef_369_envp_4123", i32 0, i32 0 + %"$$BoolUtils.negb_10_4128" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.negb_10", align 8 + store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.negb_10_4128", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$$fundef_369_env_$BoolUtils.negb_10_4127", align 8 + %"$$fundef_369_env_$ud-registry.listByStr20Contains_9_4129" = getelementptr inbounds %"$$fundef_369_env_611", %"$$fundef_369_env_611"* %"$$fundef_369_envp_4123", i32 0, i32 1 + %"$$ud-registry.listByStr20Contains_9_4130" = 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_9", align 8 + store { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } %"$$ud-registry.listByStr20Contains_9_4130", { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }* %"$$fundef_369_env_$ud-registry.listByStr20Contains_9_4129", align 8 + store { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } %"$$fundef_369_cloval_4126", { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }* @ud-registry.listByStr20Excludes, align 8, !dbg !713 + %"$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_4133": ; preds = %"$have_gas_4074" + call void @_out_of_gas() + br label %"$have_gas_4134" + +"$have_gas_4134": ; preds = %"$out_of_gas_4133", %"$have_gas_4074" + %"$consume_4135" = sub i64 %"$gasrem_4131", 1 + store i64 %"$consume_4135", i64* @_gasrem, align 8 %ListUtils.list_filter = alloca { i8*, i8* }*, align 8 %list_foldr = alloca { i8*, i8* }*, align 8 - %"$dyndisp_table_4065_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$dyndisp_table_4065_salloc_salloc" = call i8* @_salloc(i8* %"$dyndisp_table_4065_salloc_load", i64 48) - %"$dyndisp_table_4065_salloc" = bitcast i8* %"$dyndisp_table_4065_salloc_salloc" to [3 x { i8*, i8* }]* - %"$dyndisp_table_4065" = bitcast [3 x { i8*, i8* }]* %"$dyndisp_table_4065_salloc" to { i8*, i8* }* - %"$dyndisp_gep_4066" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_4065", i32 0 - %"$dyndisp_pcast_4067" = bitcast { i8*, i8* }* %"$dyndisp_gep_4066" to { { i8*, i8* }* (i8*)*, i8* }* - store { { i8*, i8* }* (i8*)*, i8* } { { i8*, i8* }* (i8*)* bitcast ({ i8*, i8* }* (%"$$fundef_299_env_609"*)* @"$fundef_299" to { i8*, i8* }* (i8*)*), i8* null }, { { i8*, i8* }* (i8*)*, i8* }* %"$dyndisp_pcast_4067", align 8 - store { i8*, i8* }* %"$dyndisp_table_4065", { i8*, i8* }** %list_foldr, align 8, !dbg !416 - %"$$fundef_309_envp_4068_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_309_envp_4068_salloc" = call i8* @_salloc(i8* %"$$fundef_309_envp_4068_load", i64 8) - %"$$fundef_309_envp_4068" = bitcast i8* %"$$fundef_309_envp_4068_salloc" to %"$$fundef_309_env_604"* - %"$$fundef_309_env_voidp_4070" = bitcast %"$$fundef_309_env_604"* %"$$fundef_309_envp_4068" to i8* - %"$$fundef_309_cloval_4071" = 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_309_env_604"*)* @"$fundef_309" to { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*), i8* undef }, i8* %"$$fundef_309_env_voidp_4070", 1 - %"$$fundef_309_env_list_foldr_4072" = getelementptr inbounds %"$$fundef_309_env_604", %"$$fundef_309_env_604"* %"$$fundef_309_envp_4068", i32 0, i32 0 - %"$list_foldr_4073" = load { i8*, i8* }*, { i8*, i8* }** %list_foldr, align 8 - store { i8*, i8* }* %"$list_foldr_4073", { i8*, i8* }** %"$$fundef_309_env_list_foldr_4072", align 8 - %"$dyndisp_table_4074_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$dyndisp_table_4074_salloc_salloc" = call i8* @_salloc(i8* %"$dyndisp_table_4074_salloc_load", i64 48) - %"$dyndisp_table_4074_salloc" = bitcast i8* %"$dyndisp_table_4074_salloc_salloc" to [3 x { i8*, i8* }]* - %"$dyndisp_table_4074" = bitcast [3 x { i8*, i8* }]* %"$dyndisp_table_4074_salloc" to { i8*, i8* }* - %"$dyndisp_gep_4075" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_4074", i32 0 - %"$dyndisp_pcast_4076" = bitcast { i8*, i8* }* %"$dyndisp_gep_4075" 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_309_cloval_4071", { { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*, i8* }* %"$dyndisp_pcast_4076", align 8 - store { i8*, i8* }* %"$dyndisp_table_4074", { i8*, i8* }** %ListUtils.list_filter, align 8, !dbg !422 + %"$dyndisp_table_4139_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$dyndisp_table_4139_salloc_salloc" = call i8* @_salloc(i8* %"$dyndisp_table_4139_salloc_load", i64 48) + %"$dyndisp_table_4139_salloc" = bitcast i8* %"$dyndisp_table_4139_salloc_salloc" to [3 x { i8*, i8* }]* + %"$dyndisp_table_4139" = bitcast [3 x { i8*, i8* }]* %"$dyndisp_table_4139_salloc" to { i8*, i8* }* + %"$dyndisp_gep_4140" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_4139", i32 0 + %"$dyndisp_pcast_4141" = bitcast { i8*, i8* }* %"$dyndisp_gep_4140" to { { i8*, i8* }* (i8*)*, i8* }* + store { { i8*, i8* }* (i8*)*, i8* } { { i8*, i8* }* (i8*)* bitcast ({ i8*, i8* }* (%"$$fundef_299_env_609"*)* @"$fundef_299" to { i8*, i8* }* (i8*)*), i8* null }, { { i8*, i8* }* (i8*)*, i8* }* %"$dyndisp_pcast_4141", align 8 + store { i8*, i8* }* %"$dyndisp_table_4139", { i8*, i8* }** %list_foldr, align 8, !dbg !708 + %"$$fundef_309_envp_4142_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_309_envp_4142_salloc" = call i8* @_salloc(i8* %"$$fundef_309_envp_4142_load", i64 8) + %"$$fundef_309_envp_4142" = bitcast i8* %"$$fundef_309_envp_4142_salloc" to %"$$fundef_309_env_604"* + %"$$fundef_309_env_voidp_4144" = bitcast %"$$fundef_309_env_604"* %"$$fundef_309_envp_4142" to i8* + %"$$fundef_309_cloval_4145" = 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_309_env_604"*)* @"$fundef_309" to { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*), i8* undef }, i8* %"$$fundef_309_env_voidp_4144", 1 + %"$$fundef_309_env_list_foldr_4146" = getelementptr inbounds %"$$fundef_309_env_604", %"$$fundef_309_env_604"* %"$$fundef_309_envp_4142", i32 0, i32 0 + %"$list_foldr_4147" = load { i8*, i8* }*, { i8*, i8* }** %list_foldr, align 8 + store { i8*, i8* }* %"$list_foldr_4147", { i8*, i8* }** %"$$fundef_309_env_list_foldr_4146", align 8 + %"$dyndisp_table_4148_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$dyndisp_table_4148_salloc_salloc" = call i8* @_salloc(i8* %"$dyndisp_table_4148_salloc_load", i64 48) + %"$dyndisp_table_4148_salloc" = bitcast i8* %"$dyndisp_table_4148_salloc_salloc" to [3 x { i8*, i8* }]* + %"$dyndisp_table_4148" = bitcast [3 x { i8*, i8* }]* %"$dyndisp_table_4148_salloc" to { i8*, i8* }* + %"$dyndisp_gep_4149" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_4148", i32 0 + %"$dyndisp_pcast_4150" = bitcast { i8*, i8* }* %"$dyndisp_gep_4149" 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_309_cloval_4145", { { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*, i8* }* %"$dyndisp_pcast_4150", align 8 + store { i8*, i8* }* %"$dyndisp_table_4148", { i8*, i8* }** %ListUtils.list_filter, align 8, !dbg !714 %"$BoolUtils.negb_11" = alloca { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, align 8 - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } { %TName_Bool* (i8*, %TName_Bool*)* bitcast (%TName_Bool* (%"$$fundef_317_env_600"*, %TName_Bool*)* @"$fundef_317" to %TName_Bool* (i8*, %TName_Bool*)*), i8* null }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.negb_11", align 8, !dbg !410 - %"$$fundef_319_envp_4080_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_319_envp_4080_salloc" = call i8* @_salloc(i8* %"$$fundef_319_envp_4080_load", i64 24) - %"$$fundef_319_envp_4080" = bitcast i8* %"$$fundef_319_envp_4080_salloc" to %"$$fundef_319_env_599"* - %"$$fundef_319_env_voidp_4082" = bitcast %"$$fundef_319_env_599"* %"$$fundef_319_envp_4080" to i8* - %"$$fundef_319_cloval_4083" = 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_319_env_599"*, %TName_List_ByStr20*)* @"$fundef_319" to { %TName_List_ByStr20* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*), i8* undef }, i8* %"$$fundef_319_env_voidp_4082", 1 - %"$$fundef_319_env_$BoolUtils.negb_11_4084" = getelementptr inbounds %"$$fundef_319_env_599", %"$$fundef_319_env_599"* %"$$fundef_319_envp_4080", i32 0, i32 0 - %"$$BoolUtils.negb_11_4085" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.negb_11", align 8 - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.negb_11_4085", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$$fundef_319_env_$BoolUtils.negb_11_4084", align 8 - %"$$fundef_319_env_ListUtils.list_filter_4086" = getelementptr inbounds %"$$fundef_319_env_599", %"$$fundef_319_env_599"* %"$$fundef_319_envp_4080", i32 0, i32 1 - %"$ListUtils.list_filter_4087" = load { i8*, i8* }*, { i8*, i8* }** %ListUtils.list_filter, align 8 - store { i8*, i8* }* %"$ListUtils.list_filter_4087", { i8*, i8* }** %"$$fundef_319_env_ListUtils.list_filter_4086", align 8 - store { { %TName_List_ByStr20* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } %"$$fundef_319_cloval_4083", { { %TName_List_ByStr20* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }* @ud-registry.listByStr20FilterOut, align 8, !dbg !423 - %"$gasrem_4088" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4089" = icmp ugt i64 1, %"$gasrem_4088" - br i1 %"$gascmp_4089", label %"$out_of_gas_4090", label %"$have_gas_4091" - -"$out_of_gas_4090": ; preds = %"$have_gas_4060" - call void @_out_of_gas() - br label %"$have_gas_4091" - -"$have_gas_4091": ; preds = %"$out_of_gas_4090", %"$have_gas_4060" - %"$consume_4092" = sub i64 %"$gasrem_4088", 1 - store i64 %"$consume_4092", 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_295_env_596"*, %TName_Bool*)* @"$fundef_295" 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 !424 - %"$gasrem_4096" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4097" = icmp ugt i64 1, %"$gasrem_4096" - br i1 %"$gascmp_4097", label %"$out_of_gas_4098", label %"$have_gas_4099" - -"$out_of_gas_4098": ; preds = %"$have_gas_4091" - call void @_out_of_gas() - br label %"$have_gas_4099" - -"$have_gas_4099": ; preds = %"$out_of_gas_4098", %"$have_gas_4091" - %"$consume_4100" = sub i64 %"$gasrem_4096", 1 - store i64 %"$consume_4100", 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_291_env_594"*, [20 x i8]*)* @"$fundef_291" 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 !425 - %"$gasrem_4104" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4105" = icmp ugt i64 1, %"$gasrem_4104" - br i1 %"$gascmp_4105", label %"$out_of_gas_4106", label %"$have_gas_4107" - -"$out_of_gas_4106": ; preds = %"$have_gas_4099" - call void @_out_of_gas() - br label %"$have_gas_4107" - -"$have_gas_4107": ; preds = %"$out_of_gas_4106", %"$have_gas_4099" - %"$consume_4108" = sub i64 %"$gasrem_4104", 1 - store i64 %"$consume_4108", 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_285_env_592"*, [20 x i8]*)* @"$fundef_285" 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 !426 - %"$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_4107" - call void @_out_of_gas() - br label %"$have_gas_4115" - -"$have_gas_4115": ; preds = %"$out_of_gas_4114", %"$have_gas_4107" - %"$consume_4116" = sub i64 %"$gasrem_4112", 1 - store i64 %"$consume_4116", i64* @_gasrem, align 8 - store { i8* (i8*, [20 x i8]*)*, i8* } { i8* (i8*, [20 x i8]*)* bitcast (i8* (%"$$fundef_283_env_589"*, [20 x i8]*)* @"$fundef_283" to i8* (i8*, [20 x i8]*)*), i8* null }, { i8* (i8*, [20 x i8]*)*, i8* }* @ud-registry.eApproved, align 8, !dbg !427 - %"$gasrem_4120" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4121" = icmp ugt i64 1, %"$gasrem_4120" - br i1 %"$gascmp_4121", label %"$out_of_gas_4122", label %"$have_gas_4123" - -"$out_of_gas_4122": ; preds = %"$have_gas_4115" - call void @_out_of_gas() - br label %"$have_gas_4123" - -"$have_gas_4123": ; preds = %"$out_of_gas_4122", %"$have_gas_4115" - %"$consume_4124" = sub i64 %"$gasrem_4120", 1 - store i64 %"$consume_4124", i64* @_gasrem, align 8 - store { i8* (i8*, [20 x i8]*)*, i8* } { i8* (i8*, [20 x i8]*)* bitcast (i8* (%"$$fundef_281_env_588"*, [20 x i8]*)* @"$fundef_281" to i8* (i8*, [20 x i8]*)*), i8* null }, { i8* (i8*, [20 x i8]*)*, i8* }* @ud-registry.eNewRegistrar, align 8, !dbg !428 - %"$gasrem_4128" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4129" = icmp ugt i64 1, %"$gasrem_4128" - br i1 %"$gascmp_4129", label %"$out_of_gas_4130", label %"$have_gas_4131" - -"$out_of_gas_4130": ; preds = %"$have_gas_4123" - call void @_out_of_gas() - br label %"$have_gas_4131" - -"$have_gas_4131": ; preds = %"$out_of_gas_4130", %"$have_gas_4123" - %"$consume_4132" = sub i64 %"$gasrem_4128", 1 - store i64 %"$consume_4132", 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_277_env_587"*, [32 x i8]*)* @"$fundef_277" 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 !429 - %"$gasrem_4136" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4137" = icmp ugt i64 1, %"$gasrem_4136" - br i1 %"$gascmp_4137", label %"$out_of_gas_4138", label %"$have_gas_4139" - -"$out_of_gas_4138": ; preds = %"$have_gas_4131" - call void @_out_of_gas() - br label %"$have_gas_4139" - -"$have_gas_4139": ; preds = %"$out_of_gas_4138", %"$have_gas_4131" - %"$consume_4140" = sub i64 %"$gasrem_4136", 1 - store i64 %"$consume_4140", 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_271_env_585"*, [32 x i8]*)* @"$fundef_271" 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 !430 - %"$gasrem_4144" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4145" = icmp ugt i64 1, %"$gasrem_4144" - br i1 %"$gascmp_4145", label %"$out_of_gas_4146", label %"$have_gas_4147" - -"$out_of_gas_4146": ; preds = %"$have_gas_4139" - call void @_out_of_gas() - br label %"$have_gas_4147" - -"$have_gas_4147": ; preds = %"$out_of_gas_4146", %"$have_gas_4139" - %"$consume_4148" = sub i64 %"$gasrem_4144", 1 - store i64 %"$consume_4148", i64* @_gasrem, align 8 - store { i8* (i8*, %String)*, i8* } { i8* (i8*, %String)* bitcast (i8* (%"$$fundef_269_env_582"*, %String)* @"$fundef_269" to i8* (i8*, %String)*), i8* null }, { i8* (i8*, %String)*, i8* }* @ud-registry.eError, align 8, !dbg !431 - %"$gasrem_4152" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4153" = icmp ugt i64 1, %"$gasrem_4152" - br i1 %"$gascmp_4153", label %"$out_of_gas_4154", label %"$have_gas_4155" - -"$out_of_gas_4154": ; preds = %"$have_gas_4147" - call void @_out_of_gas() - br label %"$have_gas_4155" - -"$have_gas_4155": ; preds = %"$out_of_gas_4154", %"$have_gas_4147" - %"$consume_4156" = sub i64 %"$gasrem_4152", 1 - store i64 %"$consume_4156", i64* @_gasrem, align 8 - %"$$fundef_267_envp_4157_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_267_envp_4157_salloc" = call i8* @_salloc(i8* %"$$fundef_267_envp_4157_load", i64 20) - %"$$fundef_267_envp_4157" = bitcast i8* %"$$fundef_267_envp_4157_salloc" to %"$$fundef_267_env_581"* - %"$$fundef_267_env_voidp_4159" = bitcast %"$$fundef_267_env_581"* %"$$fundef_267_envp_4157" to i8* - %"$$fundef_267_cloval_4160" = 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_267_env_581"*, [20 x i8]*, %TName_Option_ud-registry.Record*)* @"$fundef_267" to void (i8*, [20 x i8]*, %TName_Option_ud-registry.Record*)*), i8* undef }, i8* %"$$fundef_267_env_voidp_4159", 1 - %"$$fundef_267_env_ud-registry.zeroByStr20_4161" = getelementptr inbounds %"$$fundef_267_env_581", %"$$fundef_267_env_581"* %"$$fundef_267_envp_4157", i32 0, i32 0 - %"$ud-registry.zeroByStr20_4162" = load [20 x i8], [20 x i8]* @ud-registry.zeroByStr20, align 1 - store [20 x i8] %"$ud-registry.zeroByStr20_4162", [20 x i8]* %"$$fundef_267_env_ud-registry.zeroByStr20_4161", align 1 - store { void (i8*, [20 x i8]*, %TName_Option_ud-registry.Record*)*, i8* } %"$$fundef_267_cloval_4160", { void (i8*, [20 x i8]*, %TName_Option_ud-registry.Record*)*, i8* }* @ud-registry.recordMemberOwner, align 8, !dbg !432 - %"$gasrem_4163" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4164" = icmp ugt i64 1, %"$gasrem_4163" - br i1 %"$gascmp_4164", label %"$out_of_gas_4165", label %"$have_gas_4166" - -"$out_of_gas_4165": ; preds = %"$have_gas_4155" - call void @_out_of_gas() - br label %"$have_gas_4166" - -"$have_gas_4166": ; preds = %"$out_of_gas_4165", %"$have_gas_4155" - %"$consume_4167" = sub i64 %"$gasrem_4163", 1 - store i64 %"$consume_4167", 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_263_env_580"*, [32 x i8]*)* @"$fundef_263" 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 !433 - %"$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" - -"$out_of_gas_4173": ; preds = %"$have_gas_4166" - call void @_out_of_gas() - br label %"$have_gas_4174" - -"$have_gas_4174": ; preds = %"$out_of_gas_4173", %"$have_gas_4166" - %"$consume_4175" = sub i64 %"$gasrem_4171", 1 - store i64 %"$consume_4175", i64* @_gasrem, align 8 + store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } { %TName_Bool* (i8*, %TName_Bool*)* bitcast (%TName_Bool* (%"$$fundef_317_env_600"*, %TName_Bool*)* @"$fundef_317" to %TName_Bool* (i8*, %TName_Bool*)*), i8* null }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.negb_11", align 8, !dbg !702 + %"$$fundef_319_envp_4154_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_319_envp_4154_salloc" = call i8* @_salloc(i8* %"$$fundef_319_envp_4154_load", i64 24) + %"$$fundef_319_envp_4154" = bitcast i8* %"$$fundef_319_envp_4154_salloc" to %"$$fundef_319_env_599"* + %"$$fundef_319_env_voidp_4156" = bitcast %"$$fundef_319_env_599"* %"$$fundef_319_envp_4154" to i8* + %"$$fundef_319_cloval_4157" = 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_319_env_599"*, %TName_List_ByStr20*)* @"$fundef_319" to { %TName_List_ByStr20* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*), i8* undef }, i8* %"$$fundef_319_env_voidp_4156", 1 + %"$$fundef_319_env_$BoolUtils.negb_11_4158" = getelementptr inbounds %"$$fundef_319_env_599", %"$$fundef_319_env_599"* %"$$fundef_319_envp_4154", i32 0, i32 0 + %"$$BoolUtils.negb_11_4159" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.negb_11", align 8 + store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.negb_11_4159", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$$fundef_319_env_$BoolUtils.negb_11_4158", align 8 + %"$$fundef_319_env_ListUtils.list_filter_4160" = getelementptr inbounds %"$$fundef_319_env_599", %"$$fundef_319_env_599"* %"$$fundef_319_envp_4154", i32 0, i32 1 + %"$ListUtils.list_filter_4161" = load { i8*, i8* }*, { i8*, i8* }** %ListUtils.list_filter, align 8 + store { i8*, i8* }* %"$ListUtils.list_filter_4161", { i8*, i8* }** %"$$fundef_319_env_ListUtils.list_filter_4160", align 8 + store { { %TName_List_ByStr20* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } %"$$fundef_319_cloval_4157", { { %TName_List_ByStr20* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }* @ud-registry.listByStr20FilterOut, align 8, !dbg !715 + %"$gasrem_4162" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4163" = icmp ugt i64 1, %"$gasrem_4162" + br i1 %"$gascmp_4163", label %"$out_of_gas_4164", label %"$have_gas_4165" + +"$out_of_gas_4164": ; preds = %"$have_gas_4134" + call void @_out_of_gas() + br label %"$have_gas_4165" + +"$have_gas_4165": ; preds = %"$out_of_gas_4164", %"$have_gas_4134" + %"$consume_4166" = sub i64 %"$gasrem_4162", 1 + store i64 %"$consume_4166", 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_295_env_596"*, %TName_Bool*)* @"$fundef_295" 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 !716 + %"$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_4172": ; preds = %"$have_gas_4165" + call void @_out_of_gas() + br label %"$have_gas_4173" + +"$have_gas_4173": ; preds = %"$out_of_gas_4172", %"$have_gas_4165" + %"$consume_4174" = sub i64 %"$gasrem_4170", 1 + store i64 %"$consume_4174", 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_291_env_594"*, [20 x i8]*)* @"$fundef_291" 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 !717 + %"$gasrem_4178" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4179" = icmp ugt i64 1, %"$gasrem_4178" + br i1 %"$gascmp_4179", label %"$out_of_gas_4180", label %"$have_gas_4181" + +"$out_of_gas_4180": ; preds = %"$have_gas_4173" + call void @_out_of_gas() + br label %"$have_gas_4181" + +"$have_gas_4181": ; preds = %"$out_of_gas_4180", %"$have_gas_4173" + %"$consume_4182" = sub i64 %"$gasrem_4178", 1 + store i64 %"$consume_4182", 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_285_env_592"*, [20 x i8]*)* @"$fundef_285" 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 !718 + %"$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_4188": ; preds = %"$have_gas_4181" + call void @_out_of_gas() + br label %"$have_gas_4189" + +"$have_gas_4189": ; preds = %"$out_of_gas_4188", %"$have_gas_4181" + %"$consume_4190" = sub i64 %"$gasrem_4186", 1 + store i64 %"$consume_4190", i64* @_gasrem, align 8 + store { i8* (i8*, [20 x i8]*)*, i8* } { i8* (i8*, [20 x i8]*)* bitcast (i8* (%"$$fundef_283_env_589"*, [20 x i8]*)* @"$fundef_283" to i8* (i8*, [20 x i8]*)*), i8* null }, { i8* (i8*, [20 x i8]*)*, i8* }* @ud-registry.eApproved, align 8, !dbg !719 + %"$gasrem_4194" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4195" = icmp ugt i64 1, %"$gasrem_4194" + br i1 %"$gascmp_4195", label %"$out_of_gas_4196", label %"$have_gas_4197" + +"$out_of_gas_4196": ; preds = %"$have_gas_4189" + call void @_out_of_gas() + br label %"$have_gas_4197" + +"$have_gas_4197": ; preds = %"$out_of_gas_4196", %"$have_gas_4189" + %"$consume_4198" = sub i64 %"$gasrem_4194", 1 + store i64 %"$consume_4198", i64* @_gasrem, align 8 + store { i8* (i8*, [20 x i8]*)*, i8* } { i8* (i8*, [20 x i8]*)* bitcast (i8* (%"$$fundef_281_env_588"*, [20 x i8]*)* @"$fundef_281" to i8* (i8*, [20 x i8]*)*), i8* null }, { i8* (i8*, [20 x i8]*)*, i8* }* @ud-registry.eNewRegistrar, align 8, !dbg !720 + %"$gasrem_4202" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4203" = icmp ugt i64 1, %"$gasrem_4202" + br i1 %"$gascmp_4203", label %"$out_of_gas_4204", label %"$have_gas_4205" + +"$out_of_gas_4204": ; preds = %"$have_gas_4197" + call void @_out_of_gas() + br label %"$have_gas_4205" + +"$have_gas_4205": ; preds = %"$out_of_gas_4204", %"$have_gas_4197" + %"$consume_4206" = sub i64 %"$gasrem_4202", 1 + store i64 %"$consume_4206", 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_277_env_587"*, [32 x i8]*)* @"$fundef_277" 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 !721 + %"$gasrem_4210" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4211" = icmp ugt i64 1, %"$gasrem_4210" + br i1 %"$gascmp_4211", label %"$out_of_gas_4212", label %"$have_gas_4213" + +"$out_of_gas_4212": ; preds = %"$have_gas_4205" + call void @_out_of_gas() + br label %"$have_gas_4213" + +"$have_gas_4213": ; preds = %"$out_of_gas_4212", %"$have_gas_4205" + %"$consume_4214" = sub i64 %"$gasrem_4210", 1 + store i64 %"$consume_4214", 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_271_env_585"*, [32 x i8]*)* @"$fundef_271" 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 !722 + %"$gasrem_4218" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4219" = icmp ugt i64 1, %"$gasrem_4218" + br i1 %"$gascmp_4219", label %"$out_of_gas_4220", label %"$have_gas_4221" + +"$out_of_gas_4220": ; preds = %"$have_gas_4213" + call void @_out_of_gas() + br label %"$have_gas_4221" + +"$have_gas_4221": ; preds = %"$out_of_gas_4220", %"$have_gas_4213" + %"$consume_4222" = sub i64 %"$gasrem_4218", 1 + store i64 %"$consume_4222", i64* @_gasrem, align 8 + store { i8* (i8*, %String)*, i8* } { i8* (i8*, %String)* bitcast (i8* (%"$$fundef_269_env_582"*, %String)* @"$fundef_269" to i8* (i8*, %String)*), i8* null }, { i8* (i8*, %String)*, i8* }* @ud-registry.eError, align 8, !dbg !723 + %"$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" + +"$out_of_gas_4228": ; preds = %"$have_gas_4221" + call void @_out_of_gas() + br label %"$have_gas_4229" + +"$have_gas_4229": ; preds = %"$out_of_gas_4228", %"$have_gas_4221" + %"$consume_4230" = sub i64 %"$gasrem_4226", 1 + store i64 %"$consume_4230", i64* @_gasrem, align 8 + %"$$fundef_267_envp_4231_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_267_envp_4231_salloc" = call i8* @_salloc(i8* %"$$fundef_267_envp_4231_load", i64 20) + %"$$fundef_267_envp_4231" = bitcast i8* %"$$fundef_267_envp_4231_salloc" to %"$$fundef_267_env_581"* + %"$$fundef_267_env_voidp_4233" = bitcast %"$$fundef_267_env_581"* %"$$fundef_267_envp_4231" to i8* + %"$$fundef_267_cloval_4234" = 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_267_env_581"*, [20 x i8]*, %TName_Option_ud-registry.Record*)* @"$fundef_267" to void (i8*, [20 x i8]*, %TName_Option_ud-registry.Record*)*), i8* undef }, i8* %"$$fundef_267_env_voidp_4233", 1 + %"$$fundef_267_env_ud-registry.zeroByStr20_4235" = getelementptr inbounds %"$$fundef_267_env_581", %"$$fundef_267_env_581"* %"$$fundef_267_envp_4231", i32 0, i32 0 + %"$ud-registry.zeroByStr20_4236" = load [20 x i8], [20 x i8]* @ud-registry.zeroByStr20, align 1 + store [20 x i8] %"$ud-registry.zeroByStr20_4236", [20 x i8]* %"$$fundef_267_env_ud-registry.zeroByStr20_4235", align 1 + store { void (i8*, [20 x i8]*, %TName_Option_ud-registry.Record*)*, i8* } %"$$fundef_267_cloval_4234", { void (i8*, [20 x i8]*, %TName_Option_ud-registry.Record*)*, i8* }* @ud-registry.recordMemberOwner, align 8, !dbg !724 + %"$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" + +"$out_of_gas_4239": ; preds = %"$have_gas_4229" + call void @_out_of_gas() + br label %"$have_gas_4240" + +"$have_gas_4240": ; preds = %"$out_of_gas_4239", %"$have_gas_4229" + %"$consume_4241" = sub i64 %"$gasrem_4237", 1 + store i64 %"$consume_4241", 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_263_env_580"*, [32 x i8]*)* @"$fundef_263" 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 !725 + %"$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_4240" + call void @_out_of_gas() + br label %"$have_gas_4248" + +"$have_gas_4248": ; preds = %"$out_of_gas_4247", %"$have_gas_4240" + %"$consume_4249" = sub i64 %"$gasrem_4245", 1 + store i64 %"$consume_4249", i64* @_gasrem, align 8 %"$ud-registry.listByStr20Contains_17" = alloca { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }, align 8 %"$ud-registry.eqByStr20_12" = 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* } { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)* bitcast ({ %TName_Bool* (i8*, [20 x i8]*)*, i8* } (%"$$fundef_209_env_578"*, [20 x i8]*)* @"$fundef_209" 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_12", align 8, !dbg !415 + 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_209_env_578"*, [20 x i8]*)* @"$fundef_209" 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_12", align 8, !dbg !707 %"$ListUtils.list_mem_16" = alloca { i8*, i8* }*, align 8 %"$ListUtils.list_exists_15" = alloca { i8*, i8* }*, align 8 %"$ListUtils.list_find_14" = alloca { i8*, i8* }*, align 8 %"$list_foldk_13" = alloca { i8*, i8* }*, align 8 - %"$dyndisp_table_4182_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$dyndisp_table_4182_salloc_salloc" = call i8* @_salloc(i8* %"$dyndisp_table_4182_salloc_load", i64 48) - %"$dyndisp_table_4182_salloc" = bitcast i8* %"$dyndisp_table_4182_salloc_salloc" to [3 x { i8*, i8* }]* - %"$dyndisp_table_4182" = bitcast [3 x { i8*, i8* }]* %"$dyndisp_table_4182_salloc" to { i8*, i8* }* - %"$dyndisp_gep_4183" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_4182", i32 0 - %"$dyndisp_pcast_4184" = bitcast { i8*, i8* }* %"$dyndisp_gep_4183" to { { i8*, i8* }* (i8*)*, i8* }* - store { { i8*, i8* }* (i8*)*, i8* } { { i8*, i8* }* (i8*)* bitcast ({ i8*, i8* }* (%"$$fundef_213_env_576"*)* @"$fundef_213" to { i8*, i8* }* (i8*)*), i8* null }, { { i8*, i8* }* (i8*)*, i8* }* %"$dyndisp_pcast_4184", align 8 - store { i8*, i8* }* %"$dyndisp_table_4182", { i8*, i8* }** %"$list_foldk_13", align 8, !dbg !416 - %"$$fundef_225_envp_4185_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_225_envp_4185_salloc" = call i8* @_salloc(i8* %"$$fundef_225_envp_4185_load", i64 8) - %"$$fundef_225_envp_4185" = bitcast i8* %"$$fundef_225_envp_4185_salloc" to %"$$fundef_225_env_570"* - %"$$fundef_225_env_voidp_4187" = bitcast %"$$fundef_225_env_570"* %"$$fundef_225_envp_4185" to i8* - %"$$fundef_225_cloval_4188" = 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_225_env_570"*)* @"$fundef_225" to { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*), i8* undef }, i8* %"$$fundef_225_env_voidp_4187", 1 - %"$$fundef_225_env_$list_foldk_13_4189" = getelementptr inbounds %"$$fundef_225_env_570", %"$$fundef_225_env_570"* %"$$fundef_225_envp_4185", i32 0, i32 0 - %"$$list_foldk_13_4190" = load { i8*, i8* }*, { i8*, i8* }** %"$list_foldk_13", align 8 - store { i8*, i8* }* %"$$list_foldk_13_4190", { i8*, i8* }** %"$$fundef_225_env_$list_foldk_13_4189", align 8 - %"$dyndisp_table_4191_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$dyndisp_table_4191_salloc_salloc" = call i8* @_salloc(i8* %"$dyndisp_table_4191_salloc_load", i64 48) - %"$dyndisp_table_4191_salloc" = bitcast i8* %"$dyndisp_table_4191_salloc_salloc" to [3 x { i8*, i8* }]* - %"$dyndisp_table_4191" = bitcast [3 x { i8*, i8* }]* %"$dyndisp_table_4191_salloc" to { i8*, i8* }* - %"$dyndisp_gep_4192" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_4191", i32 0 - %"$dyndisp_pcast_4193" = bitcast { i8*, i8* }* %"$dyndisp_gep_4192" 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_225_cloval_4188", { { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*, i8* }* %"$dyndisp_pcast_4193", align 8 - store { i8*, i8* }* %"$dyndisp_table_4191", { i8*, i8* }** %"$ListUtils.list_find_14", align 8, !dbg !417 - %"$$fundef_235_envp_4194_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_235_envp_4194_salloc" = call i8* @_salloc(i8* %"$$fundef_235_envp_4194_load", i64 8) - %"$$fundef_235_envp_4194" = bitcast i8* %"$$fundef_235_envp_4194_salloc" to %"$$fundef_235_env_565"* - %"$$fundef_235_env_voidp_4196" = bitcast %"$$fundef_235_env_565"* %"$$fundef_235_envp_4194" to i8* - %"$$fundef_235_cloval_4197" = 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_235_env_565"*)* @"$fundef_235" to { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*), i8* undef }, i8* %"$$fundef_235_env_voidp_4196", 1 - %"$$fundef_235_env_$ListUtils.list_find_14_4198" = getelementptr inbounds %"$$fundef_235_env_565", %"$$fundef_235_env_565"* %"$$fundef_235_envp_4194", i32 0, i32 0 - %"$$ListUtils.list_find_14_4199" = load { i8*, i8* }*, { i8*, i8* }** %"$ListUtils.list_find_14", align 8 - store { i8*, i8* }* %"$$ListUtils.list_find_14_4199", { i8*, i8* }** %"$$fundef_235_env_$ListUtils.list_find_14_4198", align 8 - %"$dyndisp_table_4200_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$dyndisp_table_4200_salloc_salloc" = call i8* @_salloc(i8* %"$dyndisp_table_4200_salloc_load", i64 48) - %"$dyndisp_table_4200_salloc" = bitcast i8* %"$dyndisp_table_4200_salloc_salloc" to [3 x { i8*, i8* }]* - %"$dyndisp_table_4200" = bitcast [3 x { i8*, i8* }]* %"$dyndisp_table_4200_salloc" to { i8*, i8* }* - %"$dyndisp_gep_4201" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_4200", i32 0 - %"$dyndisp_pcast_4202" = bitcast { i8*, i8* }* %"$dyndisp_gep_4201" 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_235_cloval_4197", { { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*, i8* }* %"$dyndisp_pcast_4202", align 8 - store { i8*, i8* }* %"$dyndisp_table_4200", { i8*, i8* }** %"$ListUtils.list_exists_15", align 8, !dbg !418 - %"$$fundef_241_envp_4203_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_241_envp_4203_salloc" = call i8* @_salloc(i8* %"$$fundef_241_envp_4203_load", i64 8) - %"$$fundef_241_envp_4203" = bitcast i8* %"$$fundef_241_envp_4203_salloc" to %"$$fundef_241_env_562"* - %"$$fundef_241_env_voidp_4205" = bitcast %"$$fundef_241_env_562"* %"$$fundef_241_envp_4203" to i8* - %"$$fundef_241_cloval_4206" = 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_241_env_562"*)* @"$fundef_241" 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_241_env_voidp_4205", 1 - %"$$fundef_241_env_$ListUtils.list_exists_15_4207" = getelementptr inbounds %"$$fundef_241_env_562", %"$$fundef_241_env_562"* %"$$fundef_241_envp_4203", i32 0, i32 0 - %"$$ListUtils.list_exists_15_4208" = load { i8*, i8* }*, { i8*, i8* }** %"$ListUtils.list_exists_15", align 8 - store { i8*, i8* }* %"$$ListUtils.list_exists_15_4208", { i8*, i8* }** %"$$fundef_241_env_$ListUtils.list_exists_15_4207", align 8 - %"$dyndisp_table_4209_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$dyndisp_table_4209_salloc_salloc" = call i8* @_salloc(i8* %"$dyndisp_table_4209_salloc_load", i64 48) - %"$dyndisp_table_4209_salloc" = bitcast i8* %"$dyndisp_table_4209_salloc_salloc" to [3 x { i8*, i8* }]* - %"$dyndisp_table_4209" = bitcast [3 x { i8*, i8* }]* %"$dyndisp_table_4209_salloc" to { i8*, i8* }* - %"$dyndisp_gep_4210" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_4209", i32 0 - %"$dyndisp_pcast_4211" = bitcast { i8*, i8* }* %"$dyndisp_gep_4210" 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_241_cloval_4206", { { { { %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_4211", align 8 - store { i8*, i8* }* %"$dyndisp_table_4209", { i8*, i8* }** %"$ListUtils.list_mem_16", align 8, !dbg !419 - %"$$fundef_247_envp_4212_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_247_envp_4212_salloc" = call i8* @_salloc(i8* %"$$fundef_247_envp_4212_load", i64 24) - %"$$fundef_247_envp_4212" = bitcast i8* %"$$fundef_247_envp_4212_salloc" to %"$$fundef_247_env_559"* - %"$$fundef_247_env_voidp_4214" = bitcast %"$$fundef_247_env_559"* %"$$fundef_247_envp_4212" to i8* - %"$$fundef_247_cloval_4215" = 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_247_env_559"*, %TName_List_ByStr20*)* @"$fundef_247" to { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*), i8* undef }, i8* %"$$fundef_247_env_voidp_4214", 1 - %"$$fundef_247_env_$ListUtils.list_mem_16_4216" = getelementptr inbounds %"$$fundef_247_env_559", %"$$fundef_247_env_559"* %"$$fundef_247_envp_4212", i32 0, i32 0 - %"$$ListUtils.list_mem_16_4217" = load { i8*, i8* }*, { i8*, i8* }** %"$ListUtils.list_mem_16", align 8 - store { i8*, i8* }* %"$$ListUtils.list_mem_16_4217", { i8*, i8* }** %"$$fundef_247_env_$ListUtils.list_mem_16_4216", align 8 - %"$$fundef_247_env_$ud-registry.eqByStr20_12_4218" = getelementptr inbounds %"$$fundef_247_env_559", %"$$fundef_247_env_559"* %"$$fundef_247_envp_4212", i32 0, i32 1 - %"$$ud-registry.eqByStr20_12_4219" = 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_12", align 8 - store { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.eqByStr20_12_4219", { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* }* %"$$fundef_247_env_$ud-registry.eqByStr20_12_4218", align 8 - store { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } %"$$fundef_247_cloval_4215", { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }* %"$ud-registry.listByStr20Contains_17", align 8, !dbg !420 + %"$dyndisp_table_4256_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$dyndisp_table_4256_salloc_salloc" = call i8* @_salloc(i8* %"$dyndisp_table_4256_salloc_load", i64 48) + %"$dyndisp_table_4256_salloc" = bitcast i8* %"$dyndisp_table_4256_salloc_salloc" to [3 x { i8*, i8* }]* + %"$dyndisp_table_4256" = bitcast [3 x { i8*, i8* }]* %"$dyndisp_table_4256_salloc" to { i8*, i8* }* + %"$dyndisp_gep_4257" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_4256", i32 0 + %"$dyndisp_pcast_4258" = bitcast { i8*, i8* }* %"$dyndisp_gep_4257" to { { i8*, i8* }* (i8*)*, i8* }* + store { { i8*, i8* }* (i8*)*, i8* } { { i8*, i8* }* (i8*)* bitcast ({ i8*, i8* }* (%"$$fundef_213_env_576"*)* @"$fundef_213" to { i8*, i8* }* (i8*)*), i8* null }, { { i8*, i8* }* (i8*)*, i8* }* %"$dyndisp_pcast_4258", align 8 + store { i8*, i8* }* %"$dyndisp_table_4256", { i8*, i8* }** %"$list_foldk_13", align 8, !dbg !708 + %"$$fundef_225_envp_4259_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_225_envp_4259_salloc" = call i8* @_salloc(i8* %"$$fundef_225_envp_4259_load", i64 8) + %"$$fundef_225_envp_4259" = bitcast i8* %"$$fundef_225_envp_4259_salloc" to %"$$fundef_225_env_570"* + %"$$fundef_225_env_voidp_4261" = bitcast %"$$fundef_225_env_570"* %"$$fundef_225_envp_4259" to i8* + %"$$fundef_225_cloval_4262" = 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_225_env_570"*)* @"$fundef_225" to { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*), i8* undef }, i8* %"$$fundef_225_env_voidp_4261", 1 + %"$$fundef_225_env_$list_foldk_13_4263" = getelementptr inbounds %"$$fundef_225_env_570", %"$$fundef_225_env_570"* %"$$fundef_225_envp_4259", i32 0, i32 0 + %"$$list_foldk_13_4264" = load { i8*, i8* }*, { i8*, i8* }** %"$list_foldk_13", align 8 + store { i8*, i8* }* %"$$list_foldk_13_4264", { i8*, i8* }** %"$$fundef_225_env_$list_foldk_13_4263", align 8 + %"$dyndisp_table_4265_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$dyndisp_table_4265_salloc_salloc" = call i8* @_salloc(i8* %"$dyndisp_table_4265_salloc_load", i64 48) + %"$dyndisp_table_4265_salloc" = bitcast i8* %"$dyndisp_table_4265_salloc_salloc" to [3 x { i8*, i8* }]* + %"$dyndisp_table_4265" = bitcast [3 x { i8*, i8* }]* %"$dyndisp_table_4265_salloc" to { i8*, i8* }* + %"$dyndisp_gep_4266" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_4265", i32 0 + %"$dyndisp_pcast_4267" = bitcast { i8*, i8* }* %"$dyndisp_gep_4266" 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_225_cloval_4262", { { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*, i8* }* %"$dyndisp_pcast_4267", align 8 + store { i8*, i8* }* %"$dyndisp_table_4265", { i8*, i8* }** %"$ListUtils.list_find_14", align 8, !dbg !709 + %"$$fundef_235_envp_4268_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_235_envp_4268_salloc" = call i8* @_salloc(i8* %"$$fundef_235_envp_4268_load", i64 8) + %"$$fundef_235_envp_4268" = bitcast i8* %"$$fundef_235_envp_4268_salloc" to %"$$fundef_235_env_565"* + %"$$fundef_235_env_voidp_4270" = bitcast %"$$fundef_235_env_565"* %"$$fundef_235_envp_4268" to i8* + %"$$fundef_235_cloval_4271" = 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_235_env_565"*)* @"$fundef_235" to { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*), i8* undef }, i8* %"$$fundef_235_env_voidp_4270", 1 + %"$$fundef_235_env_$ListUtils.list_find_14_4272" = getelementptr inbounds %"$$fundef_235_env_565", %"$$fundef_235_env_565"* %"$$fundef_235_envp_4268", i32 0, i32 0 + %"$$ListUtils.list_find_14_4273" = load { i8*, i8* }*, { i8*, i8* }** %"$ListUtils.list_find_14", align 8 + store { i8*, i8* }* %"$$ListUtils.list_find_14_4273", { i8*, i8* }** %"$$fundef_235_env_$ListUtils.list_find_14_4272", align 8 + %"$dyndisp_table_4274_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$dyndisp_table_4274_salloc_salloc" = call i8* @_salloc(i8* %"$dyndisp_table_4274_salloc_load", i64 48) + %"$dyndisp_table_4274_salloc" = bitcast i8* %"$dyndisp_table_4274_salloc_salloc" to [3 x { i8*, i8* }]* + %"$dyndisp_table_4274" = bitcast [3 x { i8*, i8* }]* %"$dyndisp_table_4274_salloc" to { i8*, i8* }* + %"$dyndisp_gep_4275" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_4274", i32 0 + %"$dyndisp_pcast_4276" = bitcast { i8*, i8* }* %"$dyndisp_gep_4275" 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_235_cloval_4271", { { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*, i8* }* %"$dyndisp_pcast_4276", align 8 + store { i8*, i8* }* %"$dyndisp_table_4274", { i8*, i8* }** %"$ListUtils.list_exists_15", align 8, !dbg !710 + %"$$fundef_241_envp_4277_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_241_envp_4277_salloc" = call i8* @_salloc(i8* %"$$fundef_241_envp_4277_load", i64 8) + %"$$fundef_241_envp_4277" = bitcast i8* %"$$fundef_241_envp_4277_salloc" to %"$$fundef_241_env_562"* + %"$$fundef_241_env_voidp_4279" = bitcast %"$$fundef_241_env_562"* %"$$fundef_241_envp_4277" to i8* + %"$$fundef_241_cloval_4280" = 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_241_env_562"*)* @"$fundef_241" 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_241_env_voidp_4279", 1 + %"$$fundef_241_env_$ListUtils.list_exists_15_4281" = getelementptr inbounds %"$$fundef_241_env_562", %"$$fundef_241_env_562"* %"$$fundef_241_envp_4277", i32 0, i32 0 + %"$$ListUtils.list_exists_15_4282" = load { i8*, i8* }*, { i8*, i8* }** %"$ListUtils.list_exists_15", align 8 + store { i8*, i8* }* %"$$ListUtils.list_exists_15_4282", { i8*, i8* }** %"$$fundef_241_env_$ListUtils.list_exists_15_4281", align 8 + %"$dyndisp_table_4283_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$dyndisp_table_4283_salloc_salloc" = call i8* @_salloc(i8* %"$dyndisp_table_4283_salloc_load", i64 48) + %"$dyndisp_table_4283_salloc" = bitcast i8* %"$dyndisp_table_4283_salloc_salloc" to [3 x { i8*, i8* }]* + %"$dyndisp_table_4283" = bitcast [3 x { i8*, i8* }]* %"$dyndisp_table_4283_salloc" to { i8*, i8* }* + %"$dyndisp_gep_4284" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_4283", i32 0 + %"$dyndisp_pcast_4285" = bitcast { i8*, i8* }* %"$dyndisp_gep_4284" 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_241_cloval_4280", { { { { %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_4285", align 8 + store { i8*, i8* }* %"$dyndisp_table_4283", { i8*, i8* }** %"$ListUtils.list_mem_16", align 8, !dbg !711 + %"$$fundef_247_envp_4286_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_247_envp_4286_salloc" = call i8* @_salloc(i8* %"$$fundef_247_envp_4286_load", i64 24) + %"$$fundef_247_envp_4286" = bitcast i8* %"$$fundef_247_envp_4286_salloc" to %"$$fundef_247_env_559"* + %"$$fundef_247_env_voidp_4288" = bitcast %"$$fundef_247_env_559"* %"$$fundef_247_envp_4286" to i8* + %"$$fundef_247_cloval_4289" = 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_247_env_559"*, %TName_List_ByStr20*)* @"$fundef_247" to { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*), i8* undef }, i8* %"$$fundef_247_env_voidp_4288", 1 + %"$$fundef_247_env_$ListUtils.list_mem_16_4290" = getelementptr inbounds %"$$fundef_247_env_559", %"$$fundef_247_env_559"* %"$$fundef_247_envp_4286", i32 0, i32 0 + %"$$ListUtils.list_mem_16_4291" = load { i8*, i8* }*, { i8*, i8* }** %"$ListUtils.list_mem_16", align 8 + store { i8*, i8* }* %"$$ListUtils.list_mem_16_4291", { i8*, i8* }** %"$$fundef_247_env_$ListUtils.list_mem_16_4290", align 8 + %"$$fundef_247_env_$ud-registry.eqByStr20_12_4292" = getelementptr inbounds %"$$fundef_247_env_559", %"$$fundef_247_env_559"* %"$$fundef_247_envp_4286", i32 0, i32 1 + %"$$ud-registry.eqByStr20_12_4293" = 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_12", align 8 + store { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.eqByStr20_12_4293", { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* }* %"$$fundef_247_env_$ud-registry.eqByStr20_12_4292", align 8 + store { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } %"$$fundef_247_cloval_4289", { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }* %"$ud-registry.listByStr20Contains_17", align 8, !dbg !712 %"$BoolUtils.orb_18" = alloca { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }, 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_251_env_557"*, %TName_Bool*)* @"$fundef_251" to { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*), i8* null }, { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.orb_18", align 8, !dbg !409 - %"$$fundef_255_envp_4223_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_255_envp_4223_salloc" = call i8* @_salloc(i8* %"$$fundef_255_envp_4223_load", i64 32) - %"$$fundef_255_envp_4223" = bitcast i8* %"$$fundef_255_envp_4223_salloc" to %"$$fundef_255_env_555"* - %"$$fundef_255_env_voidp_4225" = bitcast %"$$fundef_255_env_555"* %"$$fundef_255_envp_4223" to i8* - %"$$fundef_255_cloval_4226" = 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_255_env_555"*, [20 x i8]*)* @"$fundef_255" 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_255_env_voidp_4225", 1 - %"$$fundef_255_env_$BoolUtils.orb_18_4227" = getelementptr inbounds %"$$fundef_255_env_555", %"$$fundef_255_env_555"* %"$$fundef_255_envp_4223", i32 0, i32 0 - %"$$BoolUtils.orb_18_4228" = load { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }, { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.orb_18", align 8 - store { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.orb_18_4228", { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }* %"$$fundef_255_env_$BoolUtils.orb_18_4227", align 8 - %"$$fundef_255_env_$ud-registry.listByStr20Contains_17_4229" = getelementptr inbounds %"$$fundef_255_env_555", %"$$fundef_255_env_555"* %"$$fundef_255_envp_4223", i32 0, i32 1 - %"$$ud-registry.listByStr20Contains_17_4230" = 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_17", align 8 - store { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } %"$$ud-registry.listByStr20Contains_17_4230", { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }* %"$$fundef_255_env_$ud-registry.listByStr20Contains_17_4229", 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_255_cloval_4226", { { { { %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 !434 + 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_251_env_557"*, %TName_Bool*)* @"$fundef_251" to { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*), i8* null }, { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.orb_18", align 8, !dbg !701 + %"$$fundef_255_envp_4297_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_255_envp_4297_salloc" = call i8* @_salloc(i8* %"$$fundef_255_envp_4297_load", i64 32) + %"$$fundef_255_envp_4297" = bitcast i8* %"$$fundef_255_envp_4297_salloc" to %"$$fundef_255_env_555"* + %"$$fundef_255_env_voidp_4299" = bitcast %"$$fundef_255_env_555"* %"$$fundef_255_envp_4297" to i8* + %"$$fundef_255_cloval_4300" = 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_255_env_555"*, [20 x i8]*)* @"$fundef_255" 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_255_env_voidp_4299", 1 + %"$$fundef_255_env_$BoolUtils.orb_18_4301" = getelementptr inbounds %"$$fundef_255_env_555", %"$$fundef_255_env_555"* %"$$fundef_255_envp_4297", i32 0, i32 0 + %"$$BoolUtils.orb_18_4302" = load { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }, { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.orb_18", align 8 + store { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.orb_18_4302", { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }* %"$$fundef_255_env_$BoolUtils.orb_18_4301", align 8 + %"$$fundef_255_env_$ud-registry.listByStr20Contains_17_4303" = getelementptr inbounds %"$$fundef_255_env_555", %"$$fundef_255_env_555"* %"$$fundef_255_envp_4297", i32 0, i32 1 + %"$$ud-registry.listByStr20Contains_17_4304" = 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_17", align 8 + store { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } %"$$ud-registry.listByStr20Contains_17_4304", { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }* %"$$fundef_255_env_$ud-registry.listByStr20Contains_17_4303", 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_255_cloval_4300", { { { { %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 !726 ret void } -define void @_deploy_ops() !dbg !435 { +define void @_deploy_ops() !dbg !727 { entry: - %"$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_4305" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4306" = icmp ugt i64 1, %"$gasrem_4305" + br i1 %"$gascmp_4306", label %"$out_of_gas_4307", label %"$have_gas_4308" -"$out_of_gas_4233": ; preds = %entry +"$out_of_gas_4307": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_4234" + br label %"$have_gas_4308" -"$have_gas_4234": ; preds = %"$out_of_gas_4233", %entry - %"$consume_4235" = sub i64 %"$gasrem_4231", 1 - store i64 %"$consume_4235", i64* @_gasrem, align 8 +"$have_gas_4308": ; preds = %"$out_of_gas_4307", %entry + %"$consume_4309" = sub i64 %"$gasrem_4305", 1 + store i64 %"$consume_4309", i64* @_gasrem, align 8 %"$records_417" = alloca %Map_ByStr32_ud-registry.Record*, align 8 - %"$gasrem_4236" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4237" = icmp ugt i64 1, %"$gasrem_4236" - br i1 %"$gascmp_4237", label %"$out_of_gas_4238", label %"$have_gas_4239" + call void @llvm.dbg.declare(metadata %Map_ByStr32_ud-registry.Record** %"$records_417", metadata !728, metadata !DIExpression()), !dbg !731 + %"$gasrem_4310" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4311" = icmp ugt i64 1, %"$gasrem_4310" + br i1 %"$gascmp_4311", label %"$out_of_gas_4312", label %"$have_gas_4313" -"$out_of_gas_4238": ; preds = %"$have_gas_4234" +"$out_of_gas_4312": ; preds = %"$have_gas_4308" call void @_out_of_gas() - br label %"$have_gas_4239" + br label %"$have_gas_4313" -"$have_gas_4239": ; preds = %"$out_of_gas_4238", %"$have_gas_4234" - %"$consume_4240" = sub i64 %"$gasrem_4236", 1 - store i64 %"$consume_4240", i64* @_gasrem, align 8 +"$have_gas_4313": ; preds = %"$out_of_gas_4312", %"$have_gas_4308" + %"$consume_4314" = sub i64 %"$gasrem_4310", 1 + store i64 %"$consume_4314", i64* @_gasrem, align 8 %empty = alloca %Map_ByStr32_ud-registry.Record*, align 8 - %"$gasrem_4241" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4242" = icmp ugt i64 1, %"$gasrem_4241" - br i1 %"$gascmp_4242", label %"$out_of_gas_4243", label %"$have_gas_4244" + call void @llvm.dbg.declare(metadata %Map_ByStr32_ud-registry.Record** %empty, metadata !732, metadata !DIExpression()), !dbg !733 + %"$gasrem_4315" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4316" = icmp ugt i64 1, %"$gasrem_4315" + br i1 %"$gascmp_4316", label %"$out_of_gas_4317", label %"$have_gas_4318" -"$out_of_gas_4243": ; preds = %"$have_gas_4239" +"$out_of_gas_4317": ; preds = %"$have_gas_4313" call void @_out_of_gas() - br label %"$have_gas_4244" + br label %"$have_gas_4318" -"$have_gas_4244": ; preds = %"$out_of_gas_4243", %"$have_gas_4239" - %"$consume_4245" = sub i64 %"$gasrem_4241", 1 - store i64 %"$consume_4245", i64* @_gasrem, align 8 - %"$execptr_load_4246" = load i8*, i8** @_execptr, align 8 - %"$_new_empty_map_call_4247" = call i8* @_new_empty_map(i8* %"$execptr_load_4246") - %"$_new_empty_map_4248" = bitcast i8* %"$_new_empty_map_call_4247" to %Map_ByStr32_ud-registry.Record* - store %Map_ByStr32_ud-registry.Record* %"$_new_empty_map_4248", %Map_ByStr32_ud-registry.Record** %empty, align 8, !dbg !436 - %"$gasrem_4249" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4250" = icmp ugt i64 1, %"$gasrem_4249" - br i1 %"$gascmp_4250", label %"$out_of_gas_4251", label %"$have_gas_4252" +"$have_gas_4318": ; preds = %"$out_of_gas_4317", %"$have_gas_4313" + %"$consume_4319" = sub i64 %"$gasrem_4315", 1 + store i64 %"$consume_4319", i64* @_gasrem, align 8 + %"$execptr_load_4320" = load i8*, i8** @_execptr, align 8 + %"$_new_empty_map_call_4321" = call i8* @_new_empty_map(i8* %"$execptr_load_4320") + %"$_new_empty_map_4322" = bitcast i8* %"$_new_empty_map_call_4321" to %Map_ByStr32_ud-registry.Record* + store %Map_ByStr32_ud-registry.Record* %"$_new_empty_map_4322", %Map_ByStr32_ud-registry.Record** %empty, align 8, !dbg !734 + %"$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_4251": ; preds = %"$have_gas_4244" +"$out_of_gas_4325": ; preds = %"$have_gas_4318" call void @_out_of_gas() - br label %"$have_gas_4252" + br label %"$have_gas_4326" -"$have_gas_4252": ; preds = %"$out_of_gas_4251", %"$have_gas_4244" - %"$consume_4253" = sub i64 %"$gasrem_4249", 1 - store i64 %"$consume_4253", i64* @_gasrem, align 8 +"$have_gas_4326": ; preds = %"$out_of_gas_4325", %"$have_gas_4318" + %"$consume_4327" = sub i64 %"$gasrem_4323", 1 + store i64 %"$consume_4327", i64* @_gasrem, align 8 %rootRecord = alloca %TName_ud-registry.Record*, align 8 - %"$gasrem_4254" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4255" = icmp ugt i64 1, %"$gasrem_4254" - br i1 %"$gascmp_4255", label %"$out_of_gas_4256", label %"$have_gas_4257" - -"$out_of_gas_4256": ; preds = %"$have_gas_4252" - call void @_out_of_gas() - br label %"$have_gas_4257" - -"$have_gas_4257": ; preds = %"$out_of_gas_4256", %"$have_gas_4252" - %"$consume_4258" = sub i64 %"$gasrem_4254", 1 - store i64 %"$consume_4258", i64* @_gasrem, align 8 - %"$initialOwner_4259" = load [20 x i8], [20 x i8]* @_cparam_initialOwner, align 1 - %"$ud-registry.zeroByStr20_4260" = load [20 x i8], [20 x i8]* @ud-registry.zeroByStr20, align 1 - %"$adtval_4261_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_4261_salloc" = call i8* @_salloc(i8* %"$adtval_4261_load", i64 41) - %"$adtval_4261" = bitcast i8* %"$adtval_4261_salloc" to %CName_ud-registry.Record* - %"$adtgep_4262" = getelementptr inbounds %CName_ud-registry.Record, %CName_ud-registry.Record* %"$adtval_4261", i32 0, i32 0 - store i8 0, i8* %"$adtgep_4262", align 1 - %"$adtgep_4263" = getelementptr inbounds %CName_ud-registry.Record, %CName_ud-registry.Record* %"$adtval_4261", i32 0, i32 1 - store [20 x i8] %"$initialOwner_4259", [20 x i8]* %"$adtgep_4263", align 1 - %"$adtgep_4264" = getelementptr inbounds %CName_ud-registry.Record, %CName_ud-registry.Record* %"$adtval_4261", i32 0, i32 2 - store [20 x i8] %"$ud-registry.zeroByStr20_4260", [20 x i8]* %"$adtgep_4264", align 1 - %"$adtptr_4265" = bitcast %CName_ud-registry.Record* %"$adtval_4261" to %TName_ud-registry.Record* - store %TName_ud-registry.Record* %"$adtptr_4265", %TName_ud-registry.Record** %rootRecord, align 8, !dbg !437 - %"$empty_4266" = load %Map_ByStr32_ud-registry.Record*, %Map_ByStr32_ud-registry.Record** %empty, align 8 - %"$$empty_4266_4267" = bitcast %Map_ByStr32_ud-registry.Record* %"$empty_4266" to i8* - %"$_lengthof_call_4268" = call i64 @_lengthof(%_TyDescrTy_Typ* @"$TyDescr_Map_472", i8* %"$$empty_4266_4267") - %"$gasadd_4269" = add i64 1, %"$_lengthof_call_4268" - %"$gasrem_4270" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4271" = icmp ugt i64 %"$gasadd_4269", %"$gasrem_4270" - br i1 %"$gascmp_4271", label %"$out_of_gas_4272", label %"$have_gas_4273" - -"$out_of_gas_4272": ; preds = %"$have_gas_4257" - call void @_out_of_gas() - br label %"$have_gas_4273" - -"$have_gas_4273": ; preds = %"$out_of_gas_4272", %"$have_gas_4257" - %"$consume_4274" = sub i64 %"$gasrem_4270", %"$gasadd_4269" - store i64 %"$consume_4274", i64* @_gasrem, align 8 - %"$execptr_load_4275" = load i8*, i8** @_execptr, align 8 - %"$empty_4276" = load %Map_ByStr32_ud-registry.Record*, %Map_ByStr32_ud-registry.Record** %empty, align 8 - %"$$empty_4276_4277" = bitcast %Map_ByStr32_ud-registry.Record* %"$empty_4276" to i8* - %"$put_rootNode_4278" = alloca [32 x i8], align 1 - %"$rootNode_4279" = load [32 x i8], [32 x i8]* @_cparam_rootNode, align 1 - store [32 x i8] %"$rootNode_4279", [32 x i8]* %"$put_rootNode_4278", align 1 - %"$$put_rootNode_4278_4280" = bitcast [32 x i8]* %"$put_rootNode_4278" to i8* - %"$rootRecord_4281" = load %TName_ud-registry.Record*, %TName_ud-registry.Record** %rootRecord, align 8 - %"$$rootRecord_4281_4282" = bitcast %TName_ud-registry.Record* %"$rootRecord_4281" to i8* - %"$put_call_4283" = call i8* @_put(i8* %"$execptr_load_4275", %_TyDescrTy_Typ* @"$TyDescr_Map_472", i8* %"$$empty_4276_4277", i8* %"$$put_rootNode_4278_4280", i8* %"$$rootRecord_4281_4282"), !dbg !438 - %"$put_4284" = bitcast i8* %"$put_call_4283" to %Map_ByStr32_ud-registry.Record* - store %Map_ByStr32_ud-registry.Record* %"$put_4284", %Map_ByStr32_ud-registry.Record** %"$records_417", align 8, !dbg !438 - %"$execptr_load_4285" = load i8*, i8** @_execptr, align 8 - %"$$records_417_4287" = load %Map_ByStr32_ud-registry.Record*, %Map_ByStr32_ud-registry.Record** %"$records_417", align 8 - %"$update_value_4288" = bitcast %Map_ByStr32_ud-registry.Record* %"$$records_417_4287" to i8* - call void @_update_field(i8* %"$execptr_load_4285", i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$records_4286", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_472", i32 0, i8* null, i8* %"$update_value_4288"), !dbg !436 + call void @llvm.dbg.declare(metadata %TName_ud-registry.Record** %rootRecord, metadata !735, metadata !DIExpression()), !dbg !738 + %"$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_4330": ; preds = %"$have_gas_4326" + call void @_out_of_gas() + br label %"$have_gas_4331" + +"$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 + %"$initialOwner_4333" = load [20 x i8], [20 x i8]* @_cparam_initialOwner, align 1 + %"$ud-registry.zeroByStr20_4334" = load [20 x i8], [20 x i8]* @ud-registry.zeroByStr20, align 1 + %"$adtval_4335_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_4335_salloc" = call i8* @_salloc(i8* %"$adtval_4335_load", i64 41) + %"$adtval_4335" = bitcast i8* %"$adtval_4335_salloc" to %CName_ud-registry.Record* + %"$adtgep_4336" = getelementptr inbounds %CName_ud-registry.Record, %CName_ud-registry.Record* %"$adtval_4335", i32 0, i32 0 + store i8 0, i8* %"$adtgep_4336", align 1 + %"$adtgep_4337" = getelementptr inbounds %CName_ud-registry.Record, %CName_ud-registry.Record* %"$adtval_4335", i32 0, i32 1 + store [20 x i8] %"$initialOwner_4333", [20 x i8]* %"$adtgep_4337", align 1 + %"$adtgep_4338" = getelementptr inbounds %CName_ud-registry.Record, %CName_ud-registry.Record* %"$adtval_4335", i32 0, i32 2 + store [20 x i8] %"$ud-registry.zeroByStr20_4334", [20 x i8]* %"$adtgep_4338", align 1 + %"$adtptr_4339" = bitcast %CName_ud-registry.Record* %"$adtval_4335" to %TName_ud-registry.Record* + store %TName_ud-registry.Record* %"$adtptr_4339", %TName_ud-registry.Record** %rootRecord, align 8, !dbg !739 + %"$empty_4340" = load %Map_ByStr32_ud-registry.Record*, %Map_ByStr32_ud-registry.Record** %empty, align 8 + %"$$empty_4340_4341" = bitcast %Map_ByStr32_ud-registry.Record* %"$empty_4340" to i8* + %"$_lengthof_call_4342" = call i64 @_lengthof(%_TyDescrTy_Typ* @"$TyDescr_Map_472", i8* %"$$empty_4340_4341") + %"$gasadd_4343" = add i64 1, %"$_lengthof_call_4342" + %"$gasrem_4344" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4345" = icmp ugt i64 %"$gasadd_4343", %"$gasrem_4344" + br i1 %"$gascmp_4345", label %"$out_of_gas_4346", label %"$have_gas_4347" + +"$out_of_gas_4346": ; preds = %"$have_gas_4331" + call void @_out_of_gas() + br label %"$have_gas_4347" + +"$have_gas_4347": ; preds = %"$out_of_gas_4346", %"$have_gas_4331" + %"$consume_4348" = sub i64 %"$gasrem_4344", %"$gasadd_4343" + store i64 %"$consume_4348", i64* @_gasrem, align 8 + %"$execptr_load_4349" = load i8*, i8** @_execptr, align 8 + %"$empty_4350" = load %Map_ByStr32_ud-registry.Record*, %Map_ByStr32_ud-registry.Record** %empty, align 8 + %"$$empty_4350_4351" = bitcast %Map_ByStr32_ud-registry.Record* %"$empty_4350" to i8* + %"$put_rootNode_4352" = alloca [32 x i8], align 1 + %"$rootNode_4353" = load [32 x i8], [32 x i8]* @_cparam_rootNode, align 1 + store [32 x i8] %"$rootNode_4353", [32 x i8]* %"$put_rootNode_4352", align 1 + %"$$put_rootNode_4352_4354" = bitcast [32 x i8]* %"$put_rootNode_4352" to i8* + %"$rootRecord_4355" = load %TName_ud-registry.Record*, %TName_ud-registry.Record** %rootRecord, align 8 + %"$$rootRecord_4355_4356" = bitcast %TName_ud-registry.Record* %"$rootRecord_4355" to i8* + %"$put_call_4357" = call i8* @_put(i8* %"$execptr_load_4349", %_TyDescrTy_Typ* @"$TyDescr_Map_472", i8* %"$$empty_4350_4351", i8* %"$$put_rootNode_4352_4354", i8* %"$$rootRecord_4355_4356"), !dbg !740 + %"$put_4358" = bitcast i8* %"$put_call_4357" to %Map_ByStr32_ud-registry.Record* + store %Map_ByStr32_ud-registry.Record* %"$put_4358", %Map_ByStr32_ud-registry.Record** %"$records_417", align 8, !dbg !740 + %"$execptr_load_4359" = load i8*, i8** @_execptr, align 8 + %"$$records_417_4361" = load %Map_ByStr32_ud-registry.Record*, %Map_ByStr32_ud-registry.Record** %"$records_417", align 8 + %"$update_value_4362" = bitcast %Map_ByStr32_ud-registry.Record* %"$$records_417_4361" to i8* + call void @_update_field(i8* %"$execptr_load_4359", i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$records_4360", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_472", i32 0, i8* null, i8* %"$update_value_4362"), !dbg !734 %"$registrar_418" = alloca [20 x i8], align 1 - %"$gasrem_4289" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4290" = icmp ugt i64 1, %"$gasrem_4289" - br i1 %"$gascmp_4290", label %"$out_of_gas_4291", label %"$have_gas_4292" - -"$out_of_gas_4291": ; preds = %"$have_gas_4273" - call void @_out_of_gas() - br label %"$have_gas_4292" - -"$have_gas_4292": ; preds = %"$out_of_gas_4291", %"$have_gas_4273" - %"$consume_4293" = sub i64 %"$gasrem_4289", 1 - store i64 %"$consume_4293", i64* @_gasrem, align 8 - %"$ud-registry.zeroByStr20_4294" = load [20 x i8], [20 x i8]* @ud-registry.zeroByStr20, align 1 - store [20 x i8] %"$ud-registry.zeroByStr20_4294", [20 x i8]* %"$registrar_418", align 1, !dbg !439 - %"$execptr_load_4295" = load i8*, i8** @_execptr, align 8 - %"$$registrar_418_4297" = load [20 x i8], [20 x i8]* %"$registrar_418", align 1 - %"$update_value_4298" = alloca [20 x i8], align 1 - store [20 x i8] %"$$registrar_418_4297", [20 x i8]* %"$update_value_4298", align 1 - %"$update_value_4299" = bitcast [20 x i8]* %"$update_value_4298" to i8* - call void @_update_field(i8* %"$execptr_load_4295", i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$registrar_4296", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Bystr20_458", i32 0, i8* null, i8* %"$update_value_4299"), !dbg !439 + call void @llvm.dbg.declare(metadata [20 x i8]* %"$registrar_418", metadata !741, metadata !DIExpression()), !dbg !742 + %"$gasrem_4363" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4364" = icmp ugt i64 1, %"$gasrem_4363" + br i1 %"$gascmp_4364", label %"$out_of_gas_4365", label %"$have_gas_4366" + +"$out_of_gas_4365": ; preds = %"$have_gas_4347" + call void @_out_of_gas() + br label %"$have_gas_4366" + +"$have_gas_4366": ; preds = %"$out_of_gas_4365", %"$have_gas_4347" + %"$consume_4367" = sub i64 %"$gasrem_4363", 1 + store i64 %"$consume_4367", i64* @_gasrem, align 8 + %"$ud-registry.zeroByStr20_4368" = load [20 x i8], [20 x i8]* @ud-registry.zeroByStr20, align 1 + store [20 x i8] %"$ud-registry.zeroByStr20_4368", [20 x i8]* %"$registrar_418", align 1, !dbg !743 + %"$execptr_load_4369" = load i8*, i8** @_execptr, align 8 + %"$$registrar_418_4371" = load [20 x i8], [20 x i8]* %"$registrar_418", align 1 + %"$update_value_4372" = alloca [20 x i8], align 1 + store [20 x i8] %"$$registrar_418_4371", [20 x i8]* %"$update_value_4372", align 1 + %"$update_value_4373" = bitcast [20 x i8]* %"$update_value_4372" to i8* + call void @_update_field(i8* %"$execptr_load_4369", i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$registrar_4370", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Bystr20_458", i32 0, i8* null, i8* %"$update_value_4373"), !dbg !743 %"$approvals_419" = alloca %Map_ByStr32_ByStr20*, align 8 - %"$gasrem_4300" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4301" = icmp ugt i64 1, %"$gasrem_4300" - br i1 %"$gascmp_4301", label %"$out_of_gas_4302", label %"$have_gas_4303" - -"$out_of_gas_4302": ; preds = %"$have_gas_4292" - call void @_out_of_gas() - br label %"$have_gas_4303" - -"$have_gas_4303": ; preds = %"$out_of_gas_4302", %"$have_gas_4292" - %"$consume_4304" = sub i64 %"$gasrem_4300", 1 - store i64 %"$consume_4304", i64* @_gasrem, align 8 - %"$execptr_load_4305" = load i8*, i8** @_execptr, align 8 - %"$_new_empty_map_call_4306" = call i8* @_new_empty_map(i8* %"$execptr_load_4305") - %"$_new_empty_map_4307" = bitcast i8* %"$_new_empty_map_call_4306" to %Map_ByStr32_ByStr20* - store %Map_ByStr32_ByStr20* %"$_new_empty_map_4307", %Map_ByStr32_ByStr20** %"$approvals_419", align 8, !dbg !440 - %"$execptr_load_4308" = load i8*, i8** @_execptr, align 8 - %"$$approvals_419_4310" = load %Map_ByStr32_ByStr20*, %Map_ByStr32_ByStr20** %"$approvals_419", align 8 - %"$update_value_4311" = bitcast %Map_ByStr32_ByStr20* %"$$approvals_419_4310" to i8* - call void @_update_field(i8* %"$execptr_load_4308", i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$approvals_4309", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_471", i32 0, i8* null, i8* %"$update_value_4311"), !dbg !440 + call void @llvm.dbg.declare(metadata %Map_ByStr32_ByStr20** %"$approvals_419", metadata !744, metadata !DIExpression()), !dbg !747 + %"$gasrem_4374" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4375" = icmp ugt i64 1, %"$gasrem_4374" + br i1 %"$gascmp_4375", label %"$out_of_gas_4376", label %"$have_gas_4377" + +"$out_of_gas_4376": ; preds = %"$have_gas_4366" + call void @_out_of_gas() + br label %"$have_gas_4377" + +"$have_gas_4377": ; preds = %"$out_of_gas_4376", %"$have_gas_4366" + %"$consume_4378" = sub i64 %"$gasrem_4374", 1 + store i64 %"$consume_4378", i64* @_gasrem, align 8 + %"$execptr_load_4379" = load i8*, i8** @_execptr, align 8 + %"$_new_empty_map_call_4380" = call i8* @_new_empty_map(i8* %"$execptr_load_4379") + %"$_new_empty_map_4381" = bitcast i8* %"$_new_empty_map_call_4380" to %Map_ByStr32_ByStr20* + store %Map_ByStr32_ByStr20* %"$_new_empty_map_4381", %Map_ByStr32_ByStr20** %"$approvals_419", align 8, !dbg !748 + %"$execptr_load_4382" = load i8*, i8** @_execptr, align 8 + %"$$approvals_419_4384" = load %Map_ByStr32_ByStr20*, %Map_ByStr32_ByStr20** %"$approvals_419", align 8 + %"$update_value_4385" = bitcast %Map_ByStr32_ByStr20* %"$$approvals_419_4384" to i8* + call void @_update_field(i8* %"$execptr_load_4382", i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$approvals_4383", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_471", i32 0, i8* null, i8* %"$update_value_4385"), !dbg !748 %"$operators_420" = alloca %"Map_ByStr20_List_(ByStr20)"*, 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_4314": ; preds = %"$have_gas_4303" - call void @_out_of_gas() - br label %"$have_gas_4315" - -"$have_gas_4315": ; preds = %"$out_of_gas_4314", %"$have_gas_4303" - %"$consume_4316" = sub i64 %"$gasrem_4312", 1 - store i64 %"$consume_4316", i64* @_gasrem, align 8 - %"$execptr_load_4317" = load i8*, i8** @_execptr, align 8 - %"$_new_empty_map_call_4318" = call i8* @_new_empty_map(i8* %"$execptr_load_4317") - %"$_new_empty_map_4319" = bitcast i8* %"$_new_empty_map_call_4318" to %"Map_ByStr20_List_(ByStr20)"* - store %"Map_ByStr20_List_(ByStr20)"* %"$_new_empty_map_4319", %"Map_ByStr20_List_(ByStr20)"** %"$operators_420", align 8, !dbg !441 - %"$execptr_load_4320" = load i8*, i8** @_execptr, align 8 - %"$$operators_420_4322" = load %"Map_ByStr20_List_(ByStr20)"*, %"Map_ByStr20_List_(ByStr20)"** %"$operators_420", align 8 - %"$update_value_4323" = bitcast %"Map_ByStr20_List_(ByStr20)"* %"$$operators_420_4322" to i8* - call void @_update_field(i8* %"$execptr_load_4320", i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$operators_4321", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_470", i32 0, i8* null, i8* %"$update_value_4323"), !dbg !441 + call void @llvm.dbg.declare(metadata %"Map_ByStr20_List_(ByStr20)"** %"$operators_420", metadata !749, metadata !DIExpression()), !dbg !752 + %"$gasrem_4386" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4387" = icmp ugt i64 1, %"$gasrem_4386" + br i1 %"$gascmp_4387", label %"$out_of_gas_4388", label %"$have_gas_4389" + +"$out_of_gas_4388": ; preds = %"$have_gas_4377" + call void @_out_of_gas() + br label %"$have_gas_4389" + +"$have_gas_4389": ; preds = %"$out_of_gas_4388", %"$have_gas_4377" + %"$consume_4390" = sub i64 %"$gasrem_4386", 1 + store i64 %"$consume_4390", i64* @_gasrem, align 8 + %"$execptr_load_4391" = load i8*, i8** @_execptr, align 8 + %"$_new_empty_map_call_4392" = call i8* @_new_empty_map(i8* %"$execptr_load_4391") + %"$_new_empty_map_4393" = bitcast i8* %"$_new_empty_map_call_4392" to %"Map_ByStr20_List_(ByStr20)"* + store %"Map_ByStr20_List_(ByStr20)"* %"$_new_empty_map_4393", %"Map_ByStr20_List_(ByStr20)"** %"$operators_420", align 8, !dbg !753 + %"$execptr_load_4394" = load i8*, i8** @_execptr, align 8 + %"$$operators_420_4396" = load %"Map_ByStr20_List_(ByStr20)"*, %"Map_ByStr20_List_(ByStr20)"** %"$operators_420", align 8 + %"$update_value_4397" = bitcast %"Map_ByStr20_List_(ByStr20)"* %"$$operators_420_4396" to i8* + call void @_update_field(i8* %"$execptr_load_4394", i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$operators_4395", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_470", i32 0, i8* null, i8* %"$update_value_4397"), !dbg !753 %"$admins_421" = alloca %TName_List_ByStr20*, 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_4315" - call void @_out_of_gas() - br label %"$have_gas_4327" - -"$have_gas_4327": ; preds = %"$out_of_gas_4326", %"$have_gas_4315" - %"$consume_4328" = sub i64 %"$gasrem_4324", 1 - store i64 %"$consume_4328", i64* @_gasrem, align 8 - %"$initialOwner_4329" = load [20 x i8], [20 x i8]* @_cparam_initialOwner, align 1 - %"$ud-registry.nilByStr20_4330" = load %TName_List_ByStr20*, %TName_List_ByStr20** @ud-registry.nilByStr20, align 8 - %"$adtval_4331_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_4331_salloc" = call i8* @_salloc(i8* %"$adtval_4331_load", i64 29) - %"$adtval_4331" = bitcast i8* %"$adtval_4331_salloc" to %CName_Cons_ByStr20* - %"$adtgep_4332" = getelementptr inbounds %CName_Cons_ByStr20, %CName_Cons_ByStr20* %"$adtval_4331", i32 0, i32 0 - store i8 0, i8* %"$adtgep_4332", align 1 - %"$adtgep_4333" = getelementptr inbounds %CName_Cons_ByStr20, %CName_Cons_ByStr20* %"$adtval_4331", i32 0, i32 1 - store [20 x i8] %"$initialOwner_4329", [20 x i8]* %"$adtgep_4333", align 1 - %"$adtgep_4334" = getelementptr inbounds %CName_Cons_ByStr20, %CName_Cons_ByStr20* %"$adtval_4331", i32 0, i32 2 - store %TName_List_ByStr20* %"$ud-registry.nilByStr20_4330", %TName_List_ByStr20** %"$adtgep_4334", align 8 - %"$adtptr_4335" = bitcast %CName_Cons_ByStr20* %"$adtval_4331" to %TName_List_ByStr20* - store %TName_List_ByStr20* %"$adtptr_4335", %TName_List_ByStr20** %"$admins_421", align 8, !dbg !442 - %"$execptr_load_4336" = load i8*, i8** @_execptr, align 8 - %"$$admins_421_4338" = load %TName_List_ByStr20*, %TName_List_ByStr20** %"$admins_421", align 8 - %"$update_value_4339" = bitcast %TName_List_ByStr20* %"$$admins_421_4338" to i8* - call void @_update_field(i8* %"$execptr_load_4336", i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$admins_4337", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_ADT_List_ByStr20_466", i32 0, i8* null, i8* %"$update_value_4339"), !dbg !442 + call void @llvm.dbg.declare(metadata %TName_List_ByStr20** %"$admins_421", metadata !754, metadata !DIExpression()), !dbg !755 + %"$gasrem_4398" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4399" = icmp ugt i64 1, %"$gasrem_4398" + br i1 %"$gascmp_4399", label %"$out_of_gas_4400", label %"$have_gas_4401" + +"$out_of_gas_4400": ; preds = %"$have_gas_4389" + call void @_out_of_gas() + br label %"$have_gas_4401" + +"$have_gas_4401": ; preds = %"$out_of_gas_4400", %"$have_gas_4389" + %"$consume_4402" = sub i64 %"$gasrem_4398", 1 + store i64 %"$consume_4402", i64* @_gasrem, align 8 + %"$initialOwner_4403" = load [20 x i8], [20 x i8]* @_cparam_initialOwner, align 1 + %"$ud-registry.nilByStr20_4404" = load %TName_List_ByStr20*, %TName_List_ByStr20** @ud-registry.nilByStr20, align 8 + %"$adtval_4405_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_4405_salloc" = call i8* @_salloc(i8* %"$adtval_4405_load", i64 29) + %"$adtval_4405" = bitcast i8* %"$adtval_4405_salloc" to %CName_Cons_ByStr20* + %"$adtgep_4406" = getelementptr inbounds %CName_Cons_ByStr20, %CName_Cons_ByStr20* %"$adtval_4405", i32 0, i32 0 + store i8 0, i8* %"$adtgep_4406", align 1 + %"$adtgep_4407" = getelementptr inbounds %CName_Cons_ByStr20, %CName_Cons_ByStr20* %"$adtval_4405", i32 0, i32 1 + store [20 x i8] %"$initialOwner_4403", [20 x i8]* %"$adtgep_4407", align 1 + %"$adtgep_4408" = getelementptr inbounds %CName_Cons_ByStr20, %CName_Cons_ByStr20* %"$adtval_4405", i32 0, i32 2 + store %TName_List_ByStr20* %"$ud-registry.nilByStr20_4404", %TName_List_ByStr20** %"$adtgep_4408", align 8 + %"$adtptr_4409" = bitcast %CName_Cons_ByStr20* %"$adtval_4405" to %TName_List_ByStr20* + store %TName_List_ByStr20* %"$adtptr_4409", %TName_List_ByStr20** %"$admins_421", align 8, !dbg !756 + %"$execptr_load_4410" = load i8*, i8** @_execptr, align 8 + %"$$admins_421_4412" = load %TName_List_ByStr20*, %TName_List_ByStr20** %"$admins_421", align 8 + %"$update_value_4413" = bitcast %TName_List_ByStr20* %"$$admins_421_4412" to i8* + call void @_update_field(i8* %"$execptr_load_4410", i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$admins_4411", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_ADT_List_ByStr20_466", i32 0, i8* null, i8* %"$update_value_4413"), !dbg !756 ret void } @@ -8047,447 +8368,476 @@ declare i8* @_put(i8*, %_TyDescrTy_Typ*, i8*, i8*, i8*) declare void @_update_field(i8*, i8*, %_TyDescrTy_Typ*, i32, i8*, i8*) -define internal void @"$setAdmin_4340"(%Uint128 %_amount, [20 x i8]* %"$_origin_4341", [20 x i8]* %"$_sender_4342", [20 x i8]* %"$address_4343", %TName_Bool* %isApproved) !dbg !443 { -entry: - %_origin = load [20 x i8], [20 x i8]* %"$_origin_4341", align 1 - %_sender = load [20 x i8], [20 x i8]* %"$_sender_4342", align 1 - %address = load [20 x i8], [20 x i8]* %"$address_4343", align 1 +define internal void @"$setAdmin_4414"(%Uint128 %_amount, [20 x i8]* %"$_origin_4415", [20 x i8]* %"$_sender_4416", [20 x i8]* %"$address_4417", %TName_Bool* %isApproved) !dbg !757 { +entry: + %"$isApproved_4647" = alloca %TName_Bool*, align 8 + store %TName_Bool* %isApproved, %TName_Bool** %"$isApproved_4647", align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$isApproved_4647", metadata !758, metadata !DIExpression()), !dbg !759 + %"$address_4646" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$address_4417", [20 x i8]** %"$address_4646", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$address_4646", metadata !760, metadata !DIExpression()), !dbg !761 + %"$_sender_4645" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_sender_4416", [20 x i8]** %"$_sender_4645", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_sender_4645", metadata !762, metadata !DIExpression()), !dbg !764 + %"$_origin_4644" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_origin_4415", [20 x i8]** %"$_origin_4644", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_origin_4644", metadata !765, metadata !DIExpression()), !dbg !764 + %"$_amount_4643" = alloca %Uint128, align 8 + store %Uint128 %_amount, %Uint128* %"$_amount_4643", align 8 + call void @llvm.dbg.declare(metadata %Uint128* %"$_amount_4643", metadata !766, metadata !DIExpression()), !dbg !764 + %_origin = load [20 x i8], [20 x i8]* %"$_origin_4415", align 1 + %_sender = load [20 x i8], [20 x i8]* %"$_sender_4416", align 1 + %address = load [20 x i8], [20 x i8]* %"$address_4417", align 1 %currentAdmins = alloca %TName_List_ByStr20*, align 8 - %"$execptr_load_4345" = load i8*, i8** @_execptr, align 8 - %"$currentAdmins_call_4346" = call i8* @_fetch_field(i8* %"$execptr_load_4345", i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$admins_4344", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_ADT_List_ByStr20_466", i32 0, i8* null, i32 1), !dbg !444 - %"$currentAdmins_4347" = bitcast i8* %"$currentAdmins_call_4346" to %TName_List_ByStr20* - store %TName_List_ByStr20* %"$currentAdmins_4347", %TName_List_ByStr20** %currentAdmins, align 8 - %"$currentAdmins_4348" = load %TName_List_ByStr20*, %TName_List_ByStr20** %currentAdmins, align 8 - %"$$currentAdmins_4348_4349" = bitcast %TName_List_ByStr20* %"$currentAdmins_4348" to i8* - %"$_literal_cost_call_4350" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_List_ByStr20_466", i8* %"$$currentAdmins_4348_4349") - %"$gasadd_4351" = add i64 %"$_literal_cost_call_4350", 0 - %"$gasrem_4352" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4353" = icmp ugt i64 %"$gasadd_4351", %"$gasrem_4352" - br i1 %"$gascmp_4353", label %"$out_of_gas_4354", label %"$have_gas_4355" - -"$out_of_gas_4354": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_4355" - -"$have_gas_4355": ; preds = %"$out_of_gas_4354", %entry - %"$consume_4356" = sub i64 %"$gasrem_4352", %"$gasadd_4351" - store i64 %"$consume_4356", i64* @_gasrem, 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" - -"$out_of_gas_4359": ; preds = %"$have_gas_4355" - call void @_out_of_gas() - br label %"$have_gas_4360" - -"$have_gas_4360": ; preds = %"$out_of_gas_4359", %"$have_gas_4355" - %"$consume_4361" = sub i64 %"$gasrem_4357", 1 - store i64 %"$consume_4361", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_List_ByStr20** %currentAdmins, metadata !768, metadata !DIExpression()), !dbg !769 + %"$execptr_load_4419" = load i8*, i8** @_execptr, align 8 + %"$currentAdmins_call_4420" = call i8* @_fetch_field(i8* %"$execptr_load_4419", i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$admins_4418", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_ADT_List_ByStr20_466", i32 0, i8* null, i32 1), !dbg !769 + %"$currentAdmins_4421" = bitcast i8* %"$currentAdmins_call_4420" to %TName_List_ByStr20* + store %TName_List_ByStr20* %"$currentAdmins_4421", %TName_List_ByStr20** %currentAdmins, align 8 + %"$currentAdmins_4422" = load %TName_List_ByStr20*, %TName_List_ByStr20** %currentAdmins, align 8 + %"$$currentAdmins_4422_4423" = bitcast %TName_List_ByStr20* %"$currentAdmins_4422" to i8* + %"$_literal_cost_call_4424" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_List_ByStr20_466", i8* %"$$currentAdmins_4422_4423") + %"$gasadd_4425" = add i64 %"$_literal_cost_call_4424", 0 + %"$gasrem_4426" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4427" = icmp ugt i64 %"$gasadd_4425", %"$gasrem_4426" + br i1 %"$gascmp_4427", label %"$out_of_gas_4428", label %"$have_gas_4429" + +"$out_of_gas_4428": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_4429" + +"$have_gas_4429": ; preds = %"$out_of_gas_4428", %entry + %"$consume_4430" = sub i64 %"$gasrem_4426", %"$gasadd_4425" + store i64 %"$consume_4430", i64* @_gasrem, align 8 + %"$gasrem_4431" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4432" = icmp ugt i64 1, %"$gasrem_4431" + br i1 %"$gascmp_4432", label %"$out_of_gas_4433", label %"$have_gas_4434" + +"$out_of_gas_4433": ; preds = %"$have_gas_4429" + call void @_out_of_gas() + br label %"$have_gas_4434" + +"$have_gas_4434": ; preds = %"$out_of_gas_4433", %"$have_gas_4429" + %"$consume_4435" = sub i64 %"$gasrem_4431", 1 + store i64 %"$consume_4435", i64* @_gasrem, align 8 %isSenderAdmin = alloca %TName_Bool*, 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" + call void @llvm.dbg.declare(metadata %TName_Bool** %isSenderAdmin, metadata !770, metadata !DIExpression()), !dbg !771 + %"$gasrem_4436" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4437" = icmp ugt i64 1, %"$gasrem_4436" + br i1 %"$gascmp_4437", label %"$out_of_gas_4438", label %"$have_gas_4439" -"$out_of_gas_4364": ; preds = %"$have_gas_4360" +"$out_of_gas_4438": ; preds = %"$have_gas_4434" call void @_out_of_gas() - br label %"$have_gas_4365" + br label %"$have_gas_4439" -"$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 +"$have_gas_4439": ; preds = %"$out_of_gas_4438", %"$have_gas_4434" + %"$consume_4440" = sub i64 %"$gasrem_4436", 1 + store i64 %"$consume_4440", i64* @_gasrem, align 8 %"$ud-registry.listByStr20Contains_107" = alloca { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, align 8 - %"$ud-registry.listByStr20Contains_4367" = 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_4368" = extractvalue { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } %"$ud-registry.listByStr20Contains_4367", 0 - %"$ud-registry.listByStr20Contains_envptr_4369" = extractvalue { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } %"$ud-registry.listByStr20Contains_4367", 1 - %"$currentAdmins_4370" = load %TName_List_ByStr20*, %TName_List_ByStr20** %currentAdmins, align 8 - %"$ud-registry.listByStr20Contains_call_4371" = call { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$ud-registry.listByStr20Contains_fptr_4368"(i8* %"$ud-registry.listByStr20Contains_envptr_4369", %TName_List_ByStr20* %"$currentAdmins_4370"), !dbg !445 - store { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$ud-registry.listByStr20Contains_call_4371", { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %"$ud-registry.listByStr20Contains_107", align 8, !dbg !445 + %"$ud-registry.listByStr20Contains_4441" = 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_4442" = extractvalue { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } %"$ud-registry.listByStr20Contains_4441", 0 + %"$ud-registry.listByStr20Contains_envptr_4443" = extractvalue { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } %"$ud-registry.listByStr20Contains_4441", 1 + %"$currentAdmins_4444" = load %TName_List_ByStr20*, %TName_List_ByStr20** %currentAdmins, align 8 + %"$ud-registry.listByStr20Contains_call_4445" = call { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$ud-registry.listByStr20Contains_fptr_4442"(i8* %"$ud-registry.listByStr20Contains_envptr_4443", %TName_List_ByStr20* %"$currentAdmins_4444"), !dbg !772 + store { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$ud-registry.listByStr20Contains_call_4445", { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %"$ud-registry.listByStr20Contains_107", align 8, !dbg !772 %"$ud-registry.listByStr20Contains_108" = alloca %TName_Bool*, align 8 - %"$$ud-registry.listByStr20Contains_107_4372" = load { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %"$ud-registry.listByStr20Contains_107", align 8 - %"$$ud-registry.listByStr20Contains_107_fptr_4373" = extractvalue { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.listByStr20Contains_107_4372", 0 - %"$$ud-registry.listByStr20Contains_107_envptr_4374" = extractvalue { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.listByStr20Contains_107_4372", 1 - %"$$ud-registry.listByStr20Contains_107__sender_4375" = alloca [20 x i8], align 1 - store [20 x i8] %_sender, [20 x i8]* %"$$ud-registry.listByStr20Contains_107__sender_4375", align 1 - %"$$ud-registry.listByStr20Contains_107_call_4376" = call %TName_Bool* %"$$ud-registry.listByStr20Contains_107_fptr_4373"(i8* %"$$ud-registry.listByStr20Contains_107_envptr_4374", [20 x i8]* %"$$ud-registry.listByStr20Contains_107__sender_4375"), !dbg !445 - store %TName_Bool* %"$$ud-registry.listByStr20Contains_107_call_4376", %TName_Bool** %"$ud-registry.listByStr20Contains_108", align 8, !dbg !445 - %"$$ud-registry.listByStr20Contains_108_4377" = load %TName_Bool*, %TName_Bool** %"$ud-registry.listByStr20Contains_108", align 8 - store %TName_Bool* %"$$ud-registry.listByStr20Contains_108_4377", %TName_Bool** %isSenderAdmin, align 8, !dbg !445 - %"$gasrem_4378" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4379" = icmp ugt i64 2, %"$gasrem_4378" - br i1 %"$gascmp_4379", label %"$out_of_gas_4380", label %"$have_gas_4381" - -"$out_of_gas_4380": ; preds = %"$have_gas_4365" - call void @_out_of_gas() - br label %"$have_gas_4381" - -"$have_gas_4381": ; preds = %"$out_of_gas_4380", %"$have_gas_4365" - %"$consume_4382" = sub i64 %"$gasrem_4378", 2 - store i64 %"$consume_4382", i64* @_gasrem, align 8 - %"$isSenderAdmin_4384" = load %TName_Bool*, %TName_Bool** %isSenderAdmin, align 8 - %"$isSenderAdmin_tag_4385" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$isSenderAdmin_4384", i32 0, i32 0 - %"$isSenderAdmin_tag_4386" = load i8, i8* %"$isSenderAdmin_tag_4385", align 1 - switch i8 %"$isSenderAdmin_tag_4386", label %"$empty_default_4387" [ - i8 0, label %"$True_4388" - i8 1, label %"$False_4530" - ], !dbg !446 - -"$True_4388": ; preds = %"$have_gas_4381" - %"$isSenderAdmin_4389" = bitcast %TName_Bool* %"$isSenderAdmin_4384" to %CName_True* - %"$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 = %"$True_4388" - call void @_out_of_gas() - br label %"$have_gas_4393" - -"$have_gas_4393": ; preds = %"$out_of_gas_4392", %"$True_4388" - %"$consume_4394" = sub i64 %"$gasrem_4390", 1 - store i64 %"$consume_4394", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$ud-registry.listByStr20Contains_108", metadata !773, metadata !DIExpression()), !dbg !772 + %"$$ud-registry.listByStr20Contains_107_4446" = load { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %"$ud-registry.listByStr20Contains_107", align 8 + %"$$ud-registry.listByStr20Contains_107_fptr_4447" = extractvalue { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.listByStr20Contains_107_4446", 0 + %"$$ud-registry.listByStr20Contains_107_envptr_4448" = extractvalue { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.listByStr20Contains_107_4446", 1 + %"$$ud-registry.listByStr20Contains_107__sender_4449" = alloca [20 x i8], align 1 + store [20 x i8] %_sender, [20 x i8]* %"$$ud-registry.listByStr20Contains_107__sender_4449", align 1 + %"$$ud-registry.listByStr20Contains_107_call_4450" = call %TName_Bool* %"$$ud-registry.listByStr20Contains_107_fptr_4447"(i8* %"$$ud-registry.listByStr20Contains_107_envptr_4448", [20 x i8]* %"$$ud-registry.listByStr20Contains_107__sender_4449"), !dbg !772 + store %TName_Bool* %"$$ud-registry.listByStr20Contains_107_call_4450", %TName_Bool** %"$ud-registry.listByStr20Contains_108", align 8, !dbg !772 + %"$$ud-registry.listByStr20Contains_108_4451" = load %TName_Bool*, %TName_Bool** %"$ud-registry.listByStr20Contains_108", align 8 + store %TName_Bool* %"$$ud-registry.listByStr20Contains_108_4451", %TName_Bool** %isSenderAdmin, align 8, !dbg !772 + %"$gasrem_4452" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4453" = icmp ugt i64 2, %"$gasrem_4452" + br i1 %"$gascmp_4453", label %"$out_of_gas_4454", label %"$have_gas_4455" + +"$out_of_gas_4454": ; preds = %"$have_gas_4439" + call void @_out_of_gas() + br label %"$have_gas_4455" + +"$have_gas_4455": ; preds = %"$out_of_gas_4454", %"$have_gas_4439" + %"$consume_4456" = sub i64 %"$gasrem_4452", 2 + store i64 %"$consume_4456", i64* @_gasrem, align 8 + %"$isSenderAdmin_4458" = load %TName_Bool*, %TName_Bool** %isSenderAdmin, align 8 + %"$isSenderAdmin_tag_4459" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$isSenderAdmin_4458", i32 0, i32 0 + %"$isSenderAdmin_tag_4460" = load i8, i8* %"$isSenderAdmin_tag_4459", align 1 + switch i8 %"$isSenderAdmin_tag_4460", label %"$empty_default_4461" [ + i8 0, label %"$True_4462" + i8 1, label %"$False_4604" + ], !dbg !774 + +"$True_4462": ; preds = %"$have_gas_4455" + %"$isSenderAdmin_4463" = bitcast %TName_Bool* %"$isSenderAdmin_4458" to %CName_True* + %"$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 = %"$True_4462" + call void @_out_of_gas() + br label %"$have_gas_4467" + +"$have_gas_4467": ; preds = %"$out_of_gas_4466", %"$True_4462" + %"$consume_4468" = sub i64 %"$gasrem_4464", 1 + store i64 %"$consume_4468", i64* @_gasrem, align 8 %needsToChange = alloca %TName_Bool*, align 8 - %"$gasrem_4395" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4396" = icmp ugt i64 1, %"$gasrem_4395" - br i1 %"$gascmp_4396", label %"$out_of_gas_4397", label %"$have_gas_4398" + call void @llvm.dbg.declare(metadata %TName_Bool** %needsToChange, metadata !775, metadata !DIExpression()), !dbg !778 + %"$gasrem_4469" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4470" = icmp ugt i64 1, %"$gasrem_4469" + br i1 %"$gascmp_4470", label %"$out_of_gas_4471", label %"$have_gas_4472" -"$out_of_gas_4397": ; preds = %"$have_gas_4393" +"$out_of_gas_4471": ; preds = %"$have_gas_4467" call void @_out_of_gas() - br label %"$have_gas_4398" + br label %"$have_gas_4472" -"$have_gas_4398": ; preds = %"$out_of_gas_4397", %"$have_gas_4393" - %"$consume_4399" = sub i64 %"$gasrem_4395", 1 - store i64 %"$consume_4399", i64* @_gasrem, align 8 +"$have_gas_4472": ; preds = %"$out_of_gas_4471", %"$have_gas_4467" + %"$consume_4473" = sub i64 %"$gasrem_4469", 1 + store i64 %"$consume_4473", i64* @_gasrem, align 8 %b = alloca %TName_Bool*, align 8 - %"$gasrem_4400" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4401" = icmp ugt i64 1, %"$gasrem_4400" - br i1 %"$gascmp_4401", label %"$out_of_gas_4402", label %"$have_gas_4403" + call void @llvm.dbg.declare(metadata %TName_Bool** %b, metadata !779, metadata !DIExpression()), !dbg !780 + %"$gasrem_4474" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4475" = icmp ugt i64 1, %"$gasrem_4474" + br i1 %"$gascmp_4475", label %"$out_of_gas_4476", label %"$have_gas_4477" -"$out_of_gas_4402": ; preds = %"$have_gas_4398" +"$out_of_gas_4476": ; preds = %"$have_gas_4472" call void @_out_of_gas() - br label %"$have_gas_4403" + br label %"$have_gas_4477" -"$have_gas_4403": ; preds = %"$out_of_gas_4402", %"$have_gas_4398" - %"$consume_4404" = sub i64 %"$gasrem_4400", 1 - store i64 %"$consume_4404", i64* @_gasrem, align 8 +"$have_gas_4477": ; preds = %"$out_of_gas_4476", %"$have_gas_4472" + %"$consume_4478" = sub i64 %"$gasrem_4474", 1 + store i64 %"$consume_4478", i64* @_gasrem, align 8 %"$ud-registry.listByStr20Excludes_102" = alloca { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, align 8 - %"$ud-registry.listByStr20Excludes_4405" = 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_4406" = extractvalue { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } %"$ud-registry.listByStr20Excludes_4405", 0 - %"$ud-registry.listByStr20Excludes_envptr_4407" = extractvalue { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } %"$ud-registry.listByStr20Excludes_4405", 1 - %"$currentAdmins_4408" = load %TName_List_ByStr20*, %TName_List_ByStr20** %currentAdmins, align 8 - %"$ud-registry.listByStr20Excludes_call_4409" = call { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$ud-registry.listByStr20Excludes_fptr_4406"(i8* %"$ud-registry.listByStr20Excludes_envptr_4407", %TName_List_ByStr20* %"$currentAdmins_4408"), !dbg !447 - store { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$ud-registry.listByStr20Excludes_call_4409", { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %"$ud-registry.listByStr20Excludes_102", align 8, !dbg !447 + %"$ud-registry.listByStr20Excludes_4479" = 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_4480" = extractvalue { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } %"$ud-registry.listByStr20Excludes_4479", 0 + %"$ud-registry.listByStr20Excludes_envptr_4481" = extractvalue { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } %"$ud-registry.listByStr20Excludes_4479", 1 + %"$currentAdmins_4482" = load %TName_List_ByStr20*, %TName_List_ByStr20** %currentAdmins, align 8 + %"$ud-registry.listByStr20Excludes_call_4483" = call { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$ud-registry.listByStr20Excludes_fptr_4480"(i8* %"$ud-registry.listByStr20Excludes_envptr_4481", %TName_List_ByStr20* %"$currentAdmins_4482"), !dbg !781 + store { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$ud-registry.listByStr20Excludes_call_4483", { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %"$ud-registry.listByStr20Excludes_102", align 8, !dbg !781 %"$ud-registry.listByStr20Excludes_103" = alloca %TName_Bool*, align 8 - %"$$ud-registry.listByStr20Excludes_102_4410" = load { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %"$ud-registry.listByStr20Excludes_102", align 8 - %"$$ud-registry.listByStr20Excludes_102_fptr_4411" = extractvalue { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.listByStr20Excludes_102_4410", 0 - %"$$ud-registry.listByStr20Excludes_102_envptr_4412" = extractvalue { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.listByStr20Excludes_102_4410", 1 - %"$$ud-registry.listByStr20Excludes_102_address_4413" = alloca [20 x i8], align 1 - store [20 x i8] %address, [20 x i8]* %"$$ud-registry.listByStr20Excludes_102_address_4413", align 1 - %"$$ud-registry.listByStr20Excludes_102_call_4414" = call %TName_Bool* %"$$ud-registry.listByStr20Excludes_102_fptr_4411"(i8* %"$$ud-registry.listByStr20Excludes_102_envptr_4412", [20 x i8]* %"$$ud-registry.listByStr20Excludes_102_address_4413"), !dbg !447 - store %TName_Bool* %"$$ud-registry.listByStr20Excludes_102_call_4414", %TName_Bool** %"$ud-registry.listByStr20Excludes_103", align 8, !dbg !447 - %"$$ud-registry.listByStr20Excludes_103_4415" = load %TName_Bool*, %TName_Bool** %"$ud-registry.listByStr20Excludes_103", align 8 - store %TName_Bool* %"$$ud-registry.listByStr20Excludes_103_4415", %TName_Bool** %b, align 8, !dbg !447 - %"$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 = %"$have_gas_4403" - call void @_out_of_gas() - br label %"$have_gas_4419" - -"$have_gas_4419": ; preds = %"$out_of_gas_4418", %"$have_gas_4403" - %"$consume_4420" = sub i64 %"$gasrem_4416", 1 - store i64 %"$consume_4420", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$ud-registry.listByStr20Excludes_103", metadata !782, metadata !DIExpression()), !dbg !781 + %"$$ud-registry.listByStr20Excludes_102_4484" = load { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %"$ud-registry.listByStr20Excludes_102", align 8 + %"$$ud-registry.listByStr20Excludes_102_fptr_4485" = extractvalue { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.listByStr20Excludes_102_4484", 0 + %"$$ud-registry.listByStr20Excludes_102_envptr_4486" = extractvalue { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.listByStr20Excludes_102_4484", 1 + %"$$ud-registry.listByStr20Excludes_102_address_4487" = alloca [20 x i8], align 1 + store [20 x i8] %address, [20 x i8]* %"$$ud-registry.listByStr20Excludes_102_address_4487", align 1 + %"$$ud-registry.listByStr20Excludes_102_call_4488" = call %TName_Bool* %"$$ud-registry.listByStr20Excludes_102_fptr_4485"(i8* %"$$ud-registry.listByStr20Excludes_102_envptr_4486", [20 x i8]* %"$$ud-registry.listByStr20Excludes_102_address_4487"), !dbg !781 + store %TName_Bool* %"$$ud-registry.listByStr20Excludes_102_call_4488", %TName_Bool** %"$ud-registry.listByStr20Excludes_103", align 8, !dbg !781 + %"$$ud-registry.listByStr20Excludes_103_4489" = load %TName_Bool*, %TName_Bool** %"$ud-registry.listByStr20Excludes_103", align 8 + store %TName_Bool* %"$$ud-registry.listByStr20Excludes_103_4489", %TName_Bool** %b, align 8, !dbg !781 + %"$gasrem_4490" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4491" = icmp ugt i64 1, %"$gasrem_4490" + br i1 %"$gascmp_4491", label %"$out_of_gas_4492", label %"$have_gas_4493" + +"$out_of_gas_4492": ; preds = %"$have_gas_4477" + call void @_out_of_gas() + br label %"$have_gas_4493" + +"$have_gas_4493": ; preds = %"$out_of_gas_4492", %"$have_gas_4477" + %"$consume_4494" = sub i64 %"$gasrem_4490", 1 + store i64 %"$consume_4494", i64* @_gasrem, align 8 %"$ud-registry.xandb_104" = alloca { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, align 8 - %"$ud-registry.xandb_4421" = 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_4422" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$ud-registry.xandb_4421", 0 - %"$ud-registry.xandb_envptr_4423" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$ud-registry.xandb_4421", 1 - %"$b_4424" = load %TName_Bool*, %TName_Bool** %b, align 8 - %"$ud-registry.xandb_call_4425" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$ud-registry.xandb_fptr_4422"(i8* %"$ud-registry.xandb_envptr_4423", %TName_Bool* %"$b_4424"), !dbg !450 - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$ud-registry.xandb_call_4425", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$ud-registry.xandb_104", align 8, !dbg !450 + %"$ud-registry.xandb_4495" = 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_4496" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$ud-registry.xandb_4495", 0 + %"$ud-registry.xandb_envptr_4497" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$ud-registry.xandb_4495", 1 + %"$b_4498" = load %TName_Bool*, %TName_Bool** %b, align 8 + %"$ud-registry.xandb_call_4499" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$ud-registry.xandb_fptr_4496"(i8* %"$ud-registry.xandb_envptr_4497", %TName_Bool* %"$b_4498"), !dbg !783 + store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$ud-registry.xandb_call_4499", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$ud-registry.xandb_104", align 8, !dbg !783 %"$ud-registry.xandb_105" = alloca %TName_Bool*, align 8 - %"$$ud-registry.xandb_104_4426" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$ud-registry.xandb_104", align 8 - %"$$ud-registry.xandb_104_fptr_4427" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$ud-registry.xandb_104_4426", 0 - %"$$ud-registry.xandb_104_envptr_4428" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$ud-registry.xandb_104_4426", 1 - %"$$ud-registry.xandb_104_call_4429" = call %TName_Bool* %"$$ud-registry.xandb_104_fptr_4427"(i8* %"$$ud-registry.xandb_104_envptr_4428", %TName_Bool* %isApproved), !dbg !450 - store %TName_Bool* %"$$ud-registry.xandb_104_call_4429", %TName_Bool** %"$ud-registry.xandb_105", align 8, !dbg !450 - %"$$ud-registry.xandb_105_4430" = load %TName_Bool*, %TName_Bool** %"$ud-registry.xandb_105", align 8 - store %TName_Bool* %"$$ud-registry.xandb_105_4430", %TName_Bool** %needsToChange, align 8, !dbg !450 - %"$gasrem_4431" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4432" = icmp ugt i64 2, %"$gasrem_4431" - br i1 %"$gascmp_4432", label %"$out_of_gas_4433", label %"$have_gas_4434" + call void @llvm.dbg.declare(metadata %TName_Bool** %"$ud-registry.xandb_105", metadata !784, metadata !DIExpression()), !dbg !783 + %"$$ud-registry.xandb_104_4500" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$ud-registry.xandb_104", align 8 + %"$$ud-registry.xandb_104_fptr_4501" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$ud-registry.xandb_104_4500", 0 + %"$$ud-registry.xandb_104_envptr_4502" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$ud-registry.xandb_104_4500", 1 + %"$$ud-registry.xandb_104_call_4503" = call %TName_Bool* %"$$ud-registry.xandb_104_fptr_4501"(i8* %"$$ud-registry.xandb_104_envptr_4502", %TName_Bool* %isApproved), !dbg !783 + store %TName_Bool* %"$$ud-registry.xandb_104_call_4503", %TName_Bool** %"$ud-registry.xandb_105", align 8, !dbg !783 + %"$$ud-registry.xandb_105_4504" = load %TName_Bool*, %TName_Bool** %"$ud-registry.xandb_105", align 8 + store %TName_Bool* %"$$ud-registry.xandb_105_4504", %TName_Bool** %needsToChange, align 8, !dbg !783 + %"$gasrem_4505" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4506" = icmp ugt i64 2, %"$gasrem_4505" + br i1 %"$gascmp_4506", label %"$out_of_gas_4507", label %"$have_gas_4508" -"$out_of_gas_4433": ; preds = %"$have_gas_4419" +"$out_of_gas_4507": ; preds = %"$have_gas_4493" call void @_out_of_gas() - br label %"$have_gas_4434" + br label %"$have_gas_4508" -"$have_gas_4434": ; preds = %"$out_of_gas_4433", %"$have_gas_4419" - %"$consume_4435" = sub i64 %"$gasrem_4431", 2 - store i64 %"$consume_4435", i64* @_gasrem, align 8 - %"$needsToChange_4437" = load %TName_Bool*, %TName_Bool** %needsToChange, align 8 - %"$needsToChange_tag_4438" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$needsToChange_4437", i32 0, i32 0 - %"$needsToChange_tag_4439" = load i8, i8* %"$needsToChange_tag_4438", align 1 - switch i8 %"$needsToChange_tag_4439", label %"$default_4440" [ - i8 0, label %"$True_4441" - ], !dbg !451 - -"$True_4441": ; preds = %"$have_gas_4434" - %"$needsToChange_4442" = bitcast %TName_Bool* %"$needsToChange_4437" to %CName_True* - %"$gasrem_4443" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4444" = icmp ugt i64 1, %"$gasrem_4443" - br i1 %"$gascmp_4444", label %"$out_of_gas_4445", label %"$have_gas_4446" - -"$out_of_gas_4445": ; preds = %"$True_4441" - call void @_out_of_gas() - br label %"$have_gas_4446" - -"$have_gas_4446": ; preds = %"$out_of_gas_4445", %"$True_4441" - %"$consume_4447" = sub i64 %"$gasrem_4443", 1 - store i64 %"$consume_4447", i64* @_gasrem, align 8 +"$have_gas_4508": ; preds = %"$out_of_gas_4507", %"$have_gas_4493" + %"$consume_4509" = sub i64 %"$gasrem_4505", 2 + store i64 %"$consume_4509", i64* @_gasrem, align 8 + %"$needsToChange_4511" = load %TName_Bool*, %TName_Bool** %needsToChange, align 8 + %"$needsToChange_tag_4512" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$needsToChange_4511", i32 0, i32 0 + %"$needsToChange_tag_4513" = load i8, i8* %"$needsToChange_tag_4512", align 1 + switch i8 %"$needsToChange_tag_4513", label %"$default_4514" [ + i8 0, label %"$True_4515" + ], !dbg !785 + +"$True_4515": ; preds = %"$have_gas_4508" + %"$needsToChange_4516" = bitcast %TName_Bool* %"$needsToChange_4511" to %CName_True* + %"$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 = %"$True_4515" + call void @_out_of_gas() + br label %"$have_gas_4520" + +"$have_gas_4520": ; preds = %"$out_of_gas_4519", %"$True_4515" + %"$consume_4521" = sub i64 %"$gasrem_4517", 1 + store i64 %"$consume_4521", i64* @_gasrem, align 8 %newAdmins = alloca %TName_List_ByStr20*, align 8 - %"$gasrem_4448" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4449" = icmp ugt i64 2, %"$gasrem_4448" - br i1 %"$gascmp_4449", label %"$out_of_gas_4450", label %"$have_gas_4451" - -"$out_of_gas_4450": ; preds = %"$have_gas_4446" - call void @_out_of_gas() - br label %"$have_gas_4451" - -"$have_gas_4451": ; preds = %"$out_of_gas_4450", %"$have_gas_4446" - %"$consume_4452" = sub i64 %"$gasrem_4448", 2 - store i64 %"$consume_4452", i64* @_gasrem, align 8 - %"$isApproved_tag_4454" = getelementptr inbounds %TName_Bool, %TName_Bool* %isApproved, i32 0, i32 0 - %"$isApproved_tag_4455" = load i8, i8* %"$isApproved_tag_4454", align 1 - switch i8 %"$isApproved_tag_4455", label %"$empty_default_4456" [ - i8 0, label %"$True_4457" - i8 1, label %"$False_4470" - ], !dbg !452 - -"$True_4457": ; preds = %"$have_gas_4451" - %"$isApproved_4458" = bitcast %TName_Bool* %isApproved to %CName_True* - %"$gasrem_4459" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4460" = icmp ugt i64 1, %"$gasrem_4459" - br i1 %"$gascmp_4460", label %"$out_of_gas_4461", label %"$have_gas_4462" - -"$out_of_gas_4461": ; preds = %"$True_4457" - call void @_out_of_gas() - br label %"$have_gas_4462" - -"$have_gas_4462": ; preds = %"$out_of_gas_4461", %"$True_4457" - %"$consume_4463" = sub i64 %"$gasrem_4459", 1 - store i64 %"$consume_4463", i64* @_gasrem, align 8 - %"$currentAdmins_4464" = load %TName_List_ByStr20*, %TName_List_ByStr20** %currentAdmins, align 8 - %"$adtval_4465_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_4465_salloc" = call i8* @_salloc(i8* %"$adtval_4465_load", i64 29) - %"$adtval_4465" = bitcast i8* %"$adtval_4465_salloc" to %CName_Cons_ByStr20* - %"$adtgep_4466" = getelementptr inbounds %CName_Cons_ByStr20, %CName_Cons_ByStr20* %"$adtval_4465", i32 0, i32 0 - store i8 0, i8* %"$adtgep_4466", align 1 - %"$adtgep_4467" = getelementptr inbounds %CName_Cons_ByStr20, %CName_Cons_ByStr20* %"$adtval_4465", i32 0, i32 1 - store [20 x i8] %address, [20 x i8]* %"$adtgep_4467", align 1 - %"$adtgep_4468" = getelementptr inbounds %CName_Cons_ByStr20, %CName_Cons_ByStr20* %"$adtval_4465", i32 0, i32 2 - store %TName_List_ByStr20* %"$currentAdmins_4464", %TName_List_ByStr20** %"$adtgep_4468", align 8 - %"$adtptr_4469" = bitcast %CName_Cons_ByStr20* %"$adtval_4465" to %TName_List_ByStr20* - store %TName_List_ByStr20* %"$adtptr_4469", %TName_List_ByStr20** %newAdmins, align 8, !dbg !455 - br label %"$matchsucc_4453" - -"$False_4470": ; preds = %"$have_gas_4451" - %"$isApproved_4471" = bitcast %TName_Bool* %isApproved to %CName_False* - %"$gasrem_4472" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4473" = icmp ugt i64 1, %"$gasrem_4472" - br i1 %"$gascmp_4473", label %"$out_of_gas_4474", label %"$have_gas_4475" - -"$out_of_gas_4474": ; preds = %"$False_4470" - call void @_out_of_gas() - br label %"$have_gas_4475" - -"$have_gas_4475": ; preds = %"$out_of_gas_4474", %"$False_4470" - %"$consume_4476" = sub i64 %"$gasrem_4472", 1 - store i64 %"$consume_4476", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_List_ByStr20** %newAdmins, metadata !786, metadata !DIExpression()), !dbg !789 + %"$gasrem_4522" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4523" = icmp ugt i64 2, %"$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", 2 + store i64 %"$consume_4526", i64* @_gasrem, align 8 + %"$isApproved_tag_4528" = getelementptr inbounds %TName_Bool, %TName_Bool* %isApproved, i32 0, i32 0 + %"$isApproved_tag_4529" = load i8, i8* %"$isApproved_tag_4528", align 1 + switch i8 %"$isApproved_tag_4529", label %"$empty_default_4530" [ + i8 0, label %"$True_4531" + i8 1, label %"$False_4544" + ], !dbg !790 + +"$True_4531": ; preds = %"$have_gas_4525" + %"$isApproved_4532" = bitcast %TName_Bool* %isApproved to %CName_True* + %"$gasrem_4533" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4534" = icmp ugt i64 1, %"$gasrem_4533" + br i1 %"$gascmp_4534", label %"$out_of_gas_4535", label %"$have_gas_4536" + +"$out_of_gas_4535": ; preds = %"$True_4531" + call void @_out_of_gas() + br label %"$have_gas_4536" + +"$have_gas_4536": ; preds = %"$out_of_gas_4535", %"$True_4531" + %"$consume_4537" = sub i64 %"$gasrem_4533", 1 + store i64 %"$consume_4537", i64* @_gasrem, align 8 + %"$currentAdmins_4538" = load %TName_List_ByStr20*, %TName_List_ByStr20** %currentAdmins, align 8 + %"$adtval_4539_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_4539_salloc" = call i8* @_salloc(i8* %"$adtval_4539_load", i64 29) + %"$adtval_4539" = bitcast i8* %"$adtval_4539_salloc" to %CName_Cons_ByStr20* + %"$adtgep_4540" = getelementptr inbounds %CName_Cons_ByStr20, %CName_Cons_ByStr20* %"$adtval_4539", i32 0, i32 0 + store i8 0, i8* %"$adtgep_4540", align 1 + %"$adtgep_4541" = getelementptr inbounds %CName_Cons_ByStr20, %CName_Cons_ByStr20* %"$adtval_4539", i32 0, i32 1 + store [20 x i8] %address, [20 x i8]* %"$adtgep_4541", align 1 + %"$adtgep_4542" = getelementptr inbounds %CName_Cons_ByStr20, %CName_Cons_ByStr20* %"$adtval_4539", i32 0, i32 2 + store %TName_List_ByStr20* %"$currentAdmins_4538", %TName_List_ByStr20** %"$adtgep_4542", align 8 + %"$adtptr_4543" = bitcast %CName_Cons_ByStr20* %"$adtval_4539" to %TName_List_ByStr20* + store %TName_List_ByStr20* %"$adtptr_4543", %TName_List_ByStr20** %newAdmins, align 8, !dbg !791 + br label %"$matchsucc_4527" + +"$False_4544": ; preds = %"$have_gas_4525" + %"$isApproved_4545" = bitcast %TName_Bool* %isApproved to %CName_False* + %"$gasrem_4546" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4547" = icmp ugt i64 1, %"$gasrem_4546" + br i1 %"$gascmp_4547", label %"$out_of_gas_4548", label %"$have_gas_4549" + +"$out_of_gas_4548": ; preds = %"$False_4544" + call void @_out_of_gas() + br label %"$have_gas_4549" + +"$have_gas_4549": ; preds = %"$out_of_gas_4548", %"$False_4544" + %"$consume_4550" = sub i64 %"$gasrem_4546", 1 + store i64 %"$consume_4550", i64* @_gasrem, align 8 %"$ud-registry.listByStr20FilterOut_100" = alloca { %TName_List_ByStr20* (i8*, [20 x i8]*)*, i8* }, align 8 - %"$ud-registry.listByStr20FilterOut_4477" = 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_4478" = extractvalue { { %TName_List_ByStr20* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } %"$ud-registry.listByStr20FilterOut_4477", 0 - %"$ud-registry.listByStr20FilterOut_envptr_4479" = extractvalue { { %TName_List_ByStr20* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } %"$ud-registry.listByStr20FilterOut_4477", 1 - %"$currentAdmins_4480" = load %TName_List_ByStr20*, %TName_List_ByStr20** %currentAdmins, align 8 - %"$ud-registry.listByStr20FilterOut_call_4481" = call { %TName_List_ByStr20* (i8*, [20 x i8]*)*, i8* } %"$ud-registry.listByStr20FilterOut_fptr_4478"(i8* %"$ud-registry.listByStr20FilterOut_envptr_4479", %TName_List_ByStr20* %"$currentAdmins_4480"), !dbg !458 - store { %TName_List_ByStr20* (i8*, [20 x i8]*)*, i8* } %"$ud-registry.listByStr20FilterOut_call_4481", { %TName_List_ByStr20* (i8*, [20 x i8]*)*, i8* }* %"$ud-registry.listByStr20FilterOut_100", align 8, !dbg !458 + %"$ud-registry.listByStr20FilterOut_4551" = 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_4552" = extractvalue { { %TName_List_ByStr20* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } %"$ud-registry.listByStr20FilterOut_4551", 0 + %"$ud-registry.listByStr20FilterOut_envptr_4553" = extractvalue { { %TName_List_ByStr20* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } %"$ud-registry.listByStr20FilterOut_4551", 1 + %"$currentAdmins_4554" = load %TName_List_ByStr20*, %TName_List_ByStr20** %currentAdmins, align 8 + %"$ud-registry.listByStr20FilterOut_call_4555" = call { %TName_List_ByStr20* (i8*, [20 x i8]*)*, i8* } %"$ud-registry.listByStr20FilterOut_fptr_4552"(i8* %"$ud-registry.listByStr20FilterOut_envptr_4553", %TName_List_ByStr20* %"$currentAdmins_4554"), !dbg !794 + store { %TName_List_ByStr20* (i8*, [20 x i8]*)*, i8* } %"$ud-registry.listByStr20FilterOut_call_4555", { %TName_List_ByStr20* (i8*, [20 x i8]*)*, i8* }* %"$ud-registry.listByStr20FilterOut_100", align 8, !dbg !794 %"$ud-registry.listByStr20FilterOut_101" = alloca %TName_List_ByStr20*, align 8 - %"$$ud-registry.listByStr20FilterOut_100_4482" = load { %TName_List_ByStr20* (i8*, [20 x i8]*)*, i8* }, { %TName_List_ByStr20* (i8*, [20 x i8]*)*, i8* }* %"$ud-registry.listByStr20FilterOut_100", align 8 - %"$$ud-registry.listByStr20FilterOut_100_fptr_4483" = extractvalue { %TName_List_ByStr20* (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.listByStr20FilterOut_100_4482", 0 - %"$$ud-registry.listByStr20FilterOut_100_envptr_4484" = extractvalue { %TName_List_ByStr20* (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.listByStr20FilterOut_100_4482", 1 - %"$$ud-registry.listByStr20FilterOut_100_address_4485" = alloca [20 x i8], align 1 - store [20 x i8] %address, [20 x i8]* %"$$ud-registry.listByStr20FilterOut_100_address_4485", align 1 - %"$$ud-registry.listByStr20FilterOut_100_call_4486" = call %TName_List_ByStr20* %"$$ud-registry.listByStr20FilterOut_100_fptr_4483"(i8* %"$$ud-registry.listByStr20FilterOut_100_envptr_4484", [20 x i8]* %"$$ud-registry.listByStr20FilterOut_100_address_4485"), !dbg !458 - store %TName_List_ByStr20* %"$$ud-registry.listByStr20FilterOut_100_call_4486", %TName_List_ByStr20** %"$ud-registry.listByStr20FilterOut_101", align 8, !dbg !458 - %"$$ud-registry.listByStr20FilterOut_101_4487" = load %TName_List_ByStr20*, %TName_List_ByStr20** %"$ud-registry.listByStr20FilterOut_101", align 8 - store %TName_List_ByStr20* %"$$ud-registry.listByStr20FilterOut_101_4487", %TName_List_ByStr20** %newAdmins, align 8, !dbg !458 - br label %"$matchsucc_4453" - -"$empty_default_4456": ; preds = %"$have_gas_4451" - br label %"$matchsucc_4453" - -"$matchsucc_4453": ; preds = %"$have_gas_4475", %"$have_gas_4462", %"$empty_default_4456" - %"$newAdmins_4488" = load %TName_List_ByStr20*, %TName_List_ByStr20** %newAdmins, align 8 - %"$$newAdmins_4488_4489" = bitcast %TName_List_ByStr20* %"$newAdmins_4488" to i8* - %"$_literal_cost_call_4490" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_List_ByStr20_466", i8* %"$$newAdmins_4488_4489") - %"$gasrem_4491" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4492" = icmp ugt i64 %"$_literal_cost_call_4490", %"$gasrem_4491" - br i1 %"$gascmp_4492", label %"$out_of_gas_4493", label %"$have_gas_4494" - -"$out_of_gas_4493": ; preds = %"$matchsucc_4453" - call void @_out_of_gas() - br label %"$have_gas_4494" - -"$have_gas_4494": ; preds = %"$out_of_gas_4493", %"$matchsucc_4453" - %"$consume_4495" = sub i64 %"$gasrem_4491", %"$_literal_cost_call_4490" - store i64 %"$consume_4495", i64* @_gasrem, align 8 - %"$execptr_load_4496" = load i8*, i8** @_execptr, align 8 - %"$newAdmins_4498" = load %TName_List_ByStr20*, %TName_List_ByStr20** %newAdmins, align 8 - %"$update_value_4499" = bitcast %TName_List_ByStr20* %"$newAdmins_4498" to i8* - call void @_update_field(i8* %"$execptr_load_4496", i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$admins_4497", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_ADT_List_ByStr20_466", i32 0, i8* null, i8* %"$update_value_4499"), !dbg !460 - %"$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_4494" - call void @_out_of_gas() - br label %"$have_gas_4503" - -"$have_gas_4503": ; preds = %"$out_of_gas_4502", %"$have_gas_4494" - %"$consume_4504" = sub i64 %"$gasrem_4500", 1 - store i64 %"$consume_4504", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_List_ByStr20** %"$ud-registry.listByStr20FilterOut_101", metadata !796, metadata !DIExpression()), !dbg !794 + %"$$ud-registry.listByStr20FilterOut_100_4556" = load { %TName_List_ByStr20* (i8*, [20 x i8]*)*, i8* }, { %TName_List_ByStr20* (i8*, [20 x i8]*)*, i8* }* %"$ud-registry.listByStr20FilterOut_100", align 8 + %"$$ud-registry.listByStr20FilterOut_100_fptr_4557" = extractvalue { %TName_List_ByStr20* (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.listByStr20FilterOut_100_4556", 0 + %"$$ud-registry.listByStr20FilterOut_100_envptr_4558" = extractvalue { %TName_List_ByStr20* (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.listByStr20FilterOut_100_4556", 1 + %"$$ud-registry.listByStr20FilterOut_100_address_4559" = alloca [20 x i8], align 1 + store [20 x i8] %address, [20 x i8]* %"$$ud-registry.listByStr20FilterOut_100_address_4559", align 1 + %"$$ud-registry.listByStr20FilterOut_100_call_4560" = call %TName_List_ByStr20* %"$$ud-registry.listByStr20FilterOut_100_fptr_4557"(i8* %"$$ud-registry.listByStr20FilterOut_100_envptr_4558", [20 x i8]* %"$$ud-registry.listByStr20FilterOut_100_address_4559"), !dbg !794 + store %TName_List_ByStr20* %"$$ud-registry.listByStr20FilterOut_100_call_4560", %TName_List_ByStr20** %"$ud-registry.listByStr20FilterOut_101", align 8, !dbg !794 + %"$$ud-registry.listByStr20FilterOut_101_4561" = load %TName_List_ByStr20*, %TName_List_ByStr20** %"$ud-registry.listByStr20FilterOut_101", align 8 + store %TName_List_ByStr20* %"$$ud-registry.listByStr20FilterOut_101_4561", %TName_List_ByStr20** %newAdmins, align 8, !dbg !794 + br label %"$matchsucc_4527" + +"$empty_default_4530": ; preds = %"$have_gas_4525" + br label %"$matchsucc_4527" + +"$matchsucc_4527": ; preds = %"$have_gas_4549", %"$have_gas_4536", %"$empty_default_4530" + %"$newAdmins_4562" = load %TName_List_ByStr20*, %TName_List_ByStr20** %newAdmins, align 8 + %"$$newAdmins_4562_4563" = bitcast %TName_List_ByStr20* %"$newAdmins_4562" to i8* + %"$_literal_cost_call_4564" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_List_ByStr20_466", i8* %"$$newAdmins_4562_4563") + %"$gasrem_4565" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4566" = icmp ugt i64 %"$_literal_cost_call_4564", %"$gasrem_4565" + br i1 %"$gascmp_4566", label %"$out_of_gas_4567", label %"$have_gas_4568" + +"$out_of_gas_4567": ; preds = %"$matchsucc_4527" + call void @_out_of_gas() + br label %"$have_gas_4568" + +"$have_gas_4568": ; preds = %"$out_of_gas_4567", %"$matchsucc_4527" + %"$consume_4569" = sub i64 %"$gasrem_4565", %"$_literal_cost_call_4564" + store i64 %"$consume_4569", i64* @_gasrem, align 8 + %"$execptr_load_4570" = load i8*, i8** @_execptr, align 8 + %"$newAdmins_4572" = load %TName_List_ByStr20*, %TName_List_ByStr20** %newAdmins, align 8 + %"$update_value_4573" = bitcast %TName_List_ByStr20* %"$newAdmins_4572" to i8* + call void @_update_field(i8* %"$execptr_load_4570", i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$admins_4571", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_ADT_List_ByStr20_466", i32 0, i8* null, i8* %"$update_value_4573"), !dbg !797 + %"$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_4568" + call void @_out_of_gas() + br label %"$have_gas_4577" + +"$have_gas_4577": ; preds = %"$out_of_gas_4576", %"$have_gas_4568" + %"$consume_4578" = sub i64 %"$gasrem_4574", 1 + store i64 %"$consume_4578", i64* @_gasrem, align 8 %e = alloca i8*, 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" + call void @llvm.dbg.declare(metadata i8** %e, metadata !798, metadata !DIExpression()), !dbg !799 + %"$gasrem_4579" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4580" = icmp ugt i64 1, %"$gasrem_4579" + br i1 %"$gascmp_4580", label %"$out_of_gas_4581", label %"$have_gas_4582" -"$out_of_gas_4507": ; preds = %"$have_gas_4503" +"$out_of_gas_4581": ; preds = %"$have_gas_4577" call void @_out_of_gas() - br label %"$have_gas_4508" + br label %"$have_gas_4582" -"$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 +"$have_gas_4582": ; preds = %"$out_of_gas_4581", %"$have_gas_4577" + %"$consume_4583" = sub i64 %"$gasrem_4579", 1 + store i64 %"$consume_4583", i64* @_gasrem, align 8 %"$ud-registry.eAdminSet_98" = alloca { i8* (i8*, %TName_Bool*)*, i8* }, align 8 - %"$ud-registry.eAdminSet_4510" = 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_4511" = extractvalue { { i8* (i8*, %TName_Bool*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$ud-registry.eAdminSet_4510", 0 - %"$ud-registry.eAdminSet_envptr_4512" = extractvalue { { i8* (i8*, %TName_Bool*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$ud-registry.eAdminSet_4510", 1 - %"$ud-registry.eAdminSet_address_4513" = alloca [20 x i8], align 1 - store [20 x i8] %address, [20 x i8]* %"$ud-registry.eAdminSet_address_4513", align 1 - %"$ud-registry.eAdminSet_call_4514" = call { i8* (i8*, %TName_Bool*)*, i8* } %"$ud-registry.eAdminSet_fptr_4511"(i8* %"$ud-registry.eAdminSet_envptr_4512", [20 x i8]* %"$ud-registry.eAdminSet_address_4513"), !dbg !461 - store { i8* (i8*, %TName_Bool*)*, i8* } %"$ud-registry.eAdminSet_call_4514", { i8* (i8*, %TName_Bool*)*, i8* }* %"$ud-registry.eAdminSet_98", align 8, !dbg !461 + %"$ud-registry.eAdminSet_4584" = 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_4585" = extractvalue { { i8* (i8*, %TName_Bool*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$ud-registry.eAdminSet_4584", 0 + %"$ud-registry.eAdminSet_envptr_4586" = extractvalue { { i8* (i8*, %TName_Bool*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$ud-registry.eAdminSet_4584", 1 + %"$ud-registry.eAdminSet_address_4587" = alloca [20 x i8], align 1 + store [20 x i8] %address, [20 x i8]* %"$ud-registry.eAdminSet_address_4587", align 1 + %"$ud-registry.eAdminSet_call_4588" = call { i8* (i8*, %TName_Bool*)*, i8* } %"$ud-registry.eAdminSet_fptr_4585"(i8* %"$ud-registry.eAdminSet_envptr_4586", [20 x i8]* %"$ud-registry.eAdminSet_address_4587"), !dbg !800 + store { i8* (i8*, %TName_Bool*)*, i8* } %"$ud-registry.eAdminSet_call_4588", { i8* (i8*, %TName_Bool*)*, i8* }* %"$ud-registry.eAdminSet_98", align 8, !dbg !800 %"$ud-registry.eAdminSet_99" = alloca i8*, align 8 - %"$$ud-registry.eAdminSet_98_4515" = load { i8* (i8*, %TName_Bool*)*, i8* }, { i8* (i8*, %TName_Bool*)*, i8* }* %"$ud-registry.eAdminSet_98", align 8 - %"$$ud-registry.eAdminSet_98_fptr_4516" = extractvalue { i8* (i8*, %TName_Bool*)*, i8* } %"$$ud-registry.eAdminSet_98_4515", 0 - %"$$ud-registry.eAdminSet_98_envptr_4517" = extractvalue { i8* (i8*, %TName_Bool*)*, i8* } %"$$ud-registry.eAdminSet_98_4515", 1 - %"$$ud-registry.eAdminSet_98_call_4518" = call i8* %"$$ud-registry.eAdminSet_98_fptr_4516"(i8* %"$$ud-registry.eAdminSet_98_envptr_4517", %TName_Bool* %isApproved), !dbg !461 - store i8* %"$$ud-registry.eAdminSet_98_call_4518", i8** %"$ud-registry.eAdminSet_99", align 8, !dbg !461 - %"$$ud-registry.eAdminSet_99_4519" = load i8*, i8** %"$ud-registry.eAdminSet_99", align 8 - store i8* %"$$ud-registry.eAdminSet_99_4519", i8** %e, align 8, !dbg !461 - %"$e_4520" = load i8*, i8** %e, align 8 - %"$_literal_cost_call_4522" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Event_446", i8* %"$e_4520") - %"$gasrem_4523" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4524" = icmp ugt i64 %"$_literal_cost_call_4522", %"$gasrem_4523" - br i1 %"$gascmp_4524", label %"$out_of_gas_4525", label %"$have_gas_4526" - -"$out_of_gas_4525": ; preds = %"$have_gas_4508" - call void @_out_of_gas() - br label %"$have_gas_4526" - -"$have_gas_4526": ; preds = %"$out_of_gas_4525", %"$have_gas_4508" - %"$consume_4527" = sub i64 %"$gasrem_4523", %"$_literal_cost_call_4522" - store i64 %"$consume_4527", i64* @_gasrem, align 8 - %"$execptr_load_4528" = load i8*, i8** @_execptr, align 8 - %"$e_4529" = load i8*, i8** %e, align 8 - call void @_event(i8* %"$execptr_load_4528", %_TyDescrTy_Typ* @"$TyDescr_Event_446", i8* %"$e_4529"), !dbg !462 - br label %"$matchsucc_4436" - -"$default_4440": ; preds = %"$have_gas_4434" + call void @llvm.dbg.declare(metadata i8** %"$ud-registry.eAdminSet_99", metadata !801, metadata !DIExpression()), !dbg !800 + %"$$ud-registry.eAdminSet_98_4589" = load { i8* (i8*, %TName_Bool*)*, i8* }, { i8* (i8*, %TName_Bool*)*, i8* }* %"$ud-registry.eAdminSet_98", align 8 + %"$$ud-registry.eAdminSet_98_fptr_4590" = extractvalue { i8* (i8*, %TName_Bool*)*, i8* } %"$$ud-registry.eAdminSet_98_4589", 0 + %"$$ud-registry.eAdminSet_98_envptr_4591" = extractvalue { i8* (i8*, %TName_Bool*)*, i8* } %"$$ud-registry.eAdminSet_98_4589", 1 + %"$$ud-registry.eAdminSet_98_call_4592" = call i8* %"$$ud-registry.eAdminSet_98_fptr_4590"(i8* %"$$ud-registry.eAdminSet_98_envptr_4591", %TName_Bool* %isApproved), !dbg !800 + store i8* %"$$ud-registry.eAdminSet_98_call_4592", i8** %"$ud-registry.eAdminSet_99", align 8, !dbg !800 + %"$$ud-registry.eAdminSet_99_4593" = load i8*, i8** %"$ud-registry.eAdminSet_99", align 8 + store i8* %"$$ud-registry.eAdminSet_99_4593", i8** %e, align 8, !dbg !800 + %"$e_4594" = load i8*, i8** %e, align 8 + %"$_literal_cost_call_4596" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Event_446", i8* %"$e_4594") + %"$gasrem_4597" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4598" = icmp ugt i64 %"$_literal_cost_call_4596", %"$gasrem_4597" + br i1 %"$gascmp_4598", label %"$out_of_gas_4599", label %"$have_gas_4600" + +"$out_of_gas_4599": ; preds = %"$have_gas_4582" + call void @_out_of_gas() + br label %"$have_gas_4600" + +"$have_gas_4600": ; preds = %"$out_of_gas_4599", %"$have_gas_4582" + %"$consume_4601" = sub i64 %"$gasrem_4597", %"$_literal_cost_call_4596" + store i64 %"$consume_4601", i64* @_gasrem, align 8 + %"$execptr_load_4602" = load i8*, i8** @_execptr, align 8 + %"$e_4603" = load i8*, i8** %e, align 8 + call void @_event(i8* %"$execptr_load_4602", %_TyDescrTy_Typ* @"$TyDescr_Event_446", i8* %"$e_4603"), !dbg !802 + br label %"$matchsucc_4510" + +"$default_4514": ; preds = %"$have_gas_4508" br label %"$joinp_25" -"$joinp_25": ; preds = %"$default_4440" - br label %"$matchsucc_4436" +"$joinp_25": ; preds = %"$default_4514" + br label %"$matchsucc_4510" -"$matchsucc_4436": ; preds = %"$have_gas_4526", %"$joinp_25" - br label %"$matchsucc_4383" +"$matchsucc_4510": ; preds = %"$have_gas_4600", %"$joinp_25" + br label %"$matchsucc_4457" -"$False_4530": ; preds = %"$have_gas_4381" - %"$isSenderAdmin_4531" = bitcast %TName_Bool* %"$isSenderAdmin_4384" to %CName_False* - %"$gasrem_4532" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4533" = icmp ugt i64 1, %"$gasrem_4532" - br i1 %"$gascmp_4533", label %"$out_of_gas_4534", label %"$have_gas_4535" +"$False_4604": ; preds = %"$have_gas_4455" + %"$isSenderAdmin_4605" = bitcast %TName_Bool* %"$isSenderAdmin_4458" to %CName_False* + %"$gasrem_4606" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4607" = icmp ugt i64 1, %"$gasrem_4606" + br i1 %"$gascmp_4607", label %"$out_of_gas_4608", label %"$have_gas_4609" -"$out_of_gas_4534": ; preds = %"$False_4530" +"$out_of_gas_4608": ; preds = %"$False_4604" call void @_out_of_gas() - br label %"$have_gas_4535" + br label %"$have_gas_4609" -"$have_gas_4535": ; preds = %"$out_of_gas_4534", %"$False_4530" - %"$consume_4536" = sub i64 %"$gasrem_4532", 1 - store i64 %"$consume_4536", i64* @_gasrem, align 8 +"$have_gas_4609": ; preds = %"$out_of_gas_4608", %"$False_4604" + %"$consume_4610" = sub i64 %"$gasrem_4606", 1 + store i64 %"$consume_4610", i64* @_gasrem, align 8 %e1 = alloca i8*, align 8 - %"$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" + call void @llvm.dbg.declare(metadata i8** %e1, metadata !803, metadata !DIExpression()), !dbg !805 + %"$gasrem_4611" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4612" = icmp ugt i64 1, %"$gasrem_4611" + br i1 %"$gascmp_4612", label %"$out_of_gas_4613", label %"$have_gas_4614" -"$out_of_gas_4539": ; preds = %"$have_gas_4535" +"$out_of_gas_4613": ; preds = %"$have_gas_4609" call void @_out_of_gas() - br label %"$have_gas_4540" + br label %"$have_gas_4614" -"$have_gas_4540": ; preds = %"$out_of_gas_4539", %"$have_gas_4535" - %"$consume_4541" = sub i64 %"$gasrem_4537", 1 - store i64 %"$consume_4541", i64* @_gasrem, align 8 +"$have_gas_4614": ; preds = %"$out_of_gas_4613", %"$have_gas_4609" + %"$consume_4615" = sub i64 %"$gasrem_4611", 1 + store i64 %"$consume_4615", i64* @_gasrem, align 8 %m = alloca %String, align 8 - %"$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" + call void @llvm.dbg.declare(metadata %String* %m, metadata !806, metadata !DIExpression()), !dbg !807 + %"$gasrem_4616" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4617" = icmp ugt i64 1, %"$gasrem_4616" + br i1 %"$gascmp_4617", label %"$out_of_gas_4618", label %"$have_gas_4619" -"$out_of_gas_4544": ; preds = %"$have_gas_4540" +"$out_of_gas_4618": ; preds = %"$have_gas_4614" call void @_out_of_gas() - br label %"$have_gas_4545" + br label %"$have_gas_4619" -"$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 - store %String { i8* getelementptr inbounds ([26 x i8], [26 x i8]* @"$stringlit_4547", i32 0, i32 0), i32 26 }, %String* %m, align 8, !dbg !463 - %"$gasrem_4548" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4549" = icmp ugt i64 1, %"$gasrem_4548" - br i1 %"$gascmp_4549", label %"$out_of_gas_4550", label %"$have_gas_4551" +"$have_gas_4619": ; preds = %"$out_of_gas_4618", %"$have_gas_4614" + %"$consume_4620" = sub i64 %"$gasrem_4616", 1 + store i64 %"$consume_4620", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([26 x i8], [26 x i8]* @"$stringlit_4621", i32 0, i32 0), i32 26 }, %String* %m, align 8, !dbg !808 + %"$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_4550": ; preds = %"$have_gas_4545" +"$out_of_gas_4624": ; preds = %"$have_gas_4619" call void @_out_of_gas() - br label %"$have_gas_4551" + br label %"$have_gas_4625" -"$have_gas_4551": ; preds = %"$out_of_gas_4550", %"$have_gas_4545" - %"$consume_4552" = sub i64 %"$gasrem_4548", 1 - store i64 %"$consume_4552", i64* @_gasrem, align 8 +"$have_gas_4625": ; preds = %"$out_of_gas_4624", %"$have_gas_4619" + %"$consume_4626" = sub i64 %"$gasrem_4622", 1 + store i64 %"$consume_4626", i64* @_gasrem, align 8 %"$ud-registry.eError_106" = alloca i8*, align 8 - %"$ud-registry.eError_4553" = load { i8* (i8*, %String)*, i8* }, { i8* (i8*, %String)*, i8* }* @ud-registry.eError, align 8 - %"$ud-registry.eError_fptr_4554" = extractvalue { i8* (i8*, %String)*, i8* } %"$ud-registry.eError_4553", 0 - %"$ud-registry.eError_envptr_4555" = extractvalue { i8* (i8*, %String)*, i8* } %"$ud-registry.eError_4553", 1 - %"$m_4556" = load %String, %String* %m, align 8 - %"$ud-registry.eError_call_4557" = call i8* %"$ud-registry.eError_fptr_4554"(i8* %"$ud-registry.eError_envptr_4555", %String %"$m_4556"), !dbg !465 - store i8* %"$ud-registry.eError_call_4557", i8** %"$ud-registry.eError_106", align 8, !dbg !465 - %"$$ud-registry.eError_106_4558" = load i8*, i8** %"$ud-registry.eError_106", align 8 - store i8* %"$$ud-registry.eError_106_4558", i8** %e1, align 8, !dbg !465 - %"$e_4559" = load i8*, i8** %e1, align 8 - %"$_literal_cost_call_4561" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Event_446", i8* %"$e_4559") - %"$gasrem_4562" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4563" = icmp ugt i64 %"$_literal_cost_call_4561", %"$gasrem_4562" - br i1 %"$gascmp_4563", label %"$out_of_gas_4564", label %"$have_gas_4565" - -"$out_of_gas_4564": ; preds = %"$have_gas_4551" - call void @_out_of_gas() - br label %"$have_gas_4565" - -"$have_gas_4565": ; preds = %"$out_of_gas_4564", %"$have_gas_4551" - %"$consume_4566" = sub i64 %"$gasrem_4562", %"$_literal_cost_call_4561" - store i64 %"$consume_4566", i64* @_gasrem, align 8 - %"$execptr_load_4567" = load i8*, i8** @_execptr, align 8 - %"$e_4568" = load i8*, i8** %e1, align 8 - call void @_event(i8* %"$execptr_load_4567", %_TyDescrTy_Typ* @"$TyDescr_Event_446", i8* %"$e_4568"), !dbg !466 - br label %"$matchsucc_4383" - -"$empty_default_4387": ; preds = %"$have_gas_4381" - br label %"$matchsucc_4383" - -"$matchsucc_4383": ; preds = %"$have_gas_4565", %"$matchsucc_4436", %"$empty_default_4387" + call void @llvm.dbg.declare(metadata i8** %"$ud-registry.eError_106", metadata !809, metadata !DIExpression()), !dbg !810 + %"$ud-registry.eError_4627" = load { i8* (i8*, %String)*, i8* }, { i8* (i8*, %String)*, i8* }* @ud-registry.eError, align 8 + %"$ud-registry.eError_fptr_4628" = extractvalue { i8* (i8*, %String)*, i8* } %"$ud-registry.eError_4627", 0 + %"$ud-registry.eError_envptr_4629" = extractvalue { i8* (i8*, %String)*, i8* } %"$ud-registry.eError_4627", 1 + %"$m_4630" = load %String, %String* %m, align 8 + %"$ud-registry.eError_call_4631" = call i8* %"$ud-registry.eError_fptr_4628"(i8* %"$ud-registry.eError_envptr_4629", %String %"$m_4630"), !dbg !810 + store i8* %"$ud-registry.eError_call_4631", i8** %"$ud-registry.eError_106", align 8, !dbg !810 + %"$$ud-registry.eError_106_4632" = load i8*, i8** %"$ud-registry.eError_106", align 8 + store i8* %"$$ud-registry.eError_106_4632", i8** %e1, align 8, !dbg !810 + %"$e_4633" = load i8*, i8** %e1, align 8 + %"$_literal_cost_call_4635" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Event_446", i8* %"$e_4633") + %"$gasrem_4636" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4637" = icmp ugt i64 %"$_literal_cost_call_4635", %"$gasrem_4636" + br i1 %"$gascmp_4637", label %"$out_of_gas_4638", label %"$have_gas_4639" + +"$out_of_gas_4638": ; preds = %"$have_gas_4625" + call void @_out_of_gas() + br label %"$have_gas_4639" + +"$have_gas_4639": ; preds = %"$out_of_gas_4638", %"$have_gas_4625" + %"$consume_4640" = sub i64 %"$gasrem_4636", %"$_literal_cost_call_4635" + store i64 %"$consume_4640", i64* @_gasrem, align 8 + %"$execptr_load_4641" = load i8*, i8** @_execptr, align 8 + %"$e_4642" = load i8*, i8** %e1, align 8 + call void @_event(i8* %"$execptr_load_4641", %_TyDescrTy_Typ* @"$TyDescr_Event_446", i8* %"$e_4642"), !dbg !811 + br label %"$matchsucc_4457" + +"$empty_default_4461": ; preds = %"$have_gas_4455" + br label %"$matchsucc_4457" + +"$matchsucc_4457": ; preds = %"$have_gas_4639", %"$matchsucc_4510", %"$empty_default_4461" ret void } @@ -8495,261 +8845,125 @@ declare i8* @_fetch_field(i8*, i8*, %_TyDescrTy_Typ*, i32, i8*, i32) declare void @_event(i8*, %_TyDescrTy_Typ*, i8*) -define void @setAdmin(i8* %0) !dbg !467 { -entry: - %"$_amount_4570" = getelementptr i8, i8* %0, i32 0 - %"$_amount_4571" = bitcast i8* %"$_amount_4570" to %Uint128* - %_amount = load %Uint128, %Uint128* %"$_amount_4571", align 8 - %"$_origin_4572" = getelementptr i8, i8* %0, i32 16 - %"$_origin_4573" = bitcast i8* %"$_origin_4572" to [20 x i8]* - %"$_sender_4574" = getelementptr i8, i8* %0, i32 36 - %"$_sender_4575" = bitcast i8* %"$_sender_4574" to [20 x i8]* - %"$address_4576" = getelementptr i8, i8* %0, i32 56 - %"$address_4577" = bitcast i8* %"$address_4576" to [20 x i8]* - %"$isApproved_4578" = getelementptr i8, i8* %0, i32 76 - %"$isApproved_4579" = bitcast i8* %"$isApproved_4578" to %TName_Bool** - %isApproved = load %TName_Bool*, %TName_Bool** %"$isApproved_4579", align 8 - call void @"$setAdmin_4340"(%Uint128 %_amount, [20 x i8]* %"$_origin_4573", [20 x i8]* %"$_sender_4575", [20 x i8]* %"$address_4577", %TName_Bool* %isApproved), !dbg !468 +define void @setAdmin(i8* %0) !dbg !812 { +entry: + %"$_amount_4649" = getelementptr i8, i8* %0, i32 0 + %"$_amount_4650" = bitcast i8* %"$_amount_4649" to %Uint128* + %_amount = load %Uint128, %Uint128* %"$_amount_4650", align 8 + %"$_origin_4651" = getelementptr i8, i8* %0, i32 16 + %"$_origin_4652" = bitcast i8* %"$_origin_4651" to [20 x i8]* + %"$_sender_4653" = getelementptr i8, i8* %0, i32 36 + %"$_sender_4654" = bitcast i8* %"$_sender_4653" to [20 x i8]* + %"$address_4655" = getelementptr i8, i8* %0, i32 56 + %"$address_4656" = bitcast i8* %"$address_4655" to [20 x i8]* + %"$isApproved_4657" = getelementptr i8, i8* %0, i32 76 + %"$isApproved_4658" = bitcast i8* %"$isApproved_4657" to %TName_Bool** + %isApproved = load %TName_Bool*, %TName_Bool** %"$isApproved_4658", align 8 + call void @"$setAdmin_4414"(%Uint128 %_amount, [20 x i8]* %"$_origin_4652", [20 x i8]* %"$_sender_4654", [20 x i8]* %"$address_4656", %TName_Bool* %isApproved), !dbg !813 ret void } -define internal void @"$approve_4580"(%Uint128 %_amount, [20 x i8]* %"$_origin_4581", [20 x i8]* %"$_sender_4582", [32 x i8]* %"$node_4583", [20 x i8]* %"$address_4584") !dbg !469 { -entry: - %_origin = load [20 x i8], [20 x i8]* %"$_origin_4581", align 1 - %_sender = load [20 x i8], [20 x i8]* %"$_sender_4582", align 1 - %node = load [32 x i8], [32 x i8]* %"$node_4583", align 1 - %address = load [20 x i8], [20 x i8]* %"$address_4584", align 1 +define internal void @"$approve_4659"(%Uint128 %_amount, [20 x i8]* %"$_origin_4660", [20 x i8]* %"$_sender_4661", [32 x i8]* %"$node_4662", [20 x i8]* %"$address_4663") !dbg !814 { +entry: + %"$address_4906" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$address_4663", [20 x i8]** %"$address_4906", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$address_4906", metadata !815, metadata !DIExpression()), !dbg !816 + %"$node_4905" = alloca [32 x i8]*, align 8 + store [32 x i8]* %"$node_4662", [32 x i8]** %"$node_4905", align 8 + call void @llvm.dbg.declare(metadata [32 x i8]** %"$node_4905", metadata !817, metadata !DIExpression()), !dbg !818 + %"$_sender_4904" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_sender_4661", [20 x i8]** %"$_sender_4904", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_sender_4904", metadata !819, metadata !DIExpression()), !dbg !820 + %"$_origin_4903" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_origin_4660", [20 x i8]** %"$_origin_4903", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_origin_4903", metadata !821, metadata !DIExpression()), !dbg !820 + %"$_amount_4902" = alloca %Uint128, align 8 + store %Uint128 %_amount, %Uint128* %"$_amount_4902", align 8 + call void @llvm.dbg.declare(metadata %Uint128* %"$_amount_4902", metadata !822, metadata !DIExpression()), !dbg !820 + %_origin = load [20 x i8], [20 x i8]* %"$_origin_4660", align 1 + %_sender = load [20 x i8], [20 x i8]* %"$_sender_4661", align 1 + %node = load [32 x i8], [32 x i8]* %"$node_4662", align 1 + %address = load [20 x i8], [20 x i8]* %"$address_4663", align 1 %maybeRecord = alloca %TName_Option_ud-registry.Record*, align 8 - %"$indices_buf_4585_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$indices_buf_4585_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_4585_salloc_load", i64 32) - %"$indices_buf_4585_salloc" = bitcast i8* %"$indices_buf_4585_salloc_salloc" to [32 x i8]* - %"$indices_buf_4585" = bitcast [32 x i8]* %"$indices_buf_4585_salloc" to i8* - %"$indices_gep_4586" = getelementptr i8, i8* %"$indices_buf_4585", i32 0 - %indices_cast = bitcast i8* %"$indices_gep_4586" to [32 x i8]* + call void @llvm.dbg.declare(metadata %TName_Option_ud-registry.Record** %maybeRecord, metadata !823, metadata !DIExpression()), !dbg !824 + %"$indices_buf_4664_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$indices_buf_4664_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_4664_salloc_load", i64 32) + %"$indices_buf_4664_salloc" = bitcast i8* %"$indices_buf_4664_salloc_salloc" to [32 x i8]* + %"$indices_buf_4664" = bitcast [32 x i8]* %"$indices_buf_4664_salloc" to i8* + %"$indices_gep_4665" = getelementptr i8, i8* %"$indices_buf_4664", i32 0 + %indices_cast = bitcast i8* %"$indices_gep_4665" to [32 x i8]* store [32 x i8] %node, [32 x i8]* %indices_cast, align 1 - %"$execptr_load_4588" = load i8*, i8** @_execptr, align 8 - %"$maybeRecord_call_4589" = call i8* @_fetch_field(i8* %"$execptr_load_4588", i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$records_4587", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_472", i32 1, i8* %"$indices_buf_4585", i32 1), !dbg !470 - %"$maybeRecord_4590" = bitcast i8* %"$maybeRecord_call_4589" to %TName_Option_ud-registry.Record* - store %TName_Option_ud-registry.Record* %"$maybeRecord_4590", %TName_Option_ud-registry.Record** %maybeRecord, align 8 - %"$maybeRecord_4591" = load %TName_Option_ud-registry.Record*, %TName_Option_ud-registry.Record** %maybeRecord, align 8 - %"$$maybeRecord_4591_4592" = bitcast %TName_Option_ud-registry.Record* %"$maybeRecord_4591" to i8* - %"$_literal_cost_call_4593" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_ud-registry.Record_463", i8* %"$$maybeRecord_4591_4592") - %"$gasadd_4594" = add i64 %"$_literal_cost_call_4593", 0 - %"$gasadd_4595" = add i64 %"$gasadd_4594", 1 - %"$gasrem_4596" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4597" = icmp ugt i64 %"$gasadd_4595", %"$gasrem_4596" - br i1 %"$gascmp_4597", label %"$out_of_gas_4598", label %"$have_gas_4599" - -"$out_of_gas_4598": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_4599" - -"$have_gas_4599": ; preds = %"$out_of_gas_4598", %entry - %"$consume_4600" = sub i64 %"$gasrem_4596", %"$gasadd_4595" - store i64 %"$consume_4600", i64* @_gasrem, align 8 - %"$gasrem_4601" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4602" = icmp ugt i64 1, %"$gasrem_4601" - br i1 %"$gascmp_4602", label %"$out_of_gas_4603", label %"$have_gas_4604" - -"$out_of_gas_4603": ; preds = %"$have_gas_4599" - call void @_out_of_gas() - br label %"$have_gas_4604" - -"$have_gas_4604": ; preds = %"$out_of_gas_4603", %"$have_gas_4599" - %"$consume_4605" = sub i64 %"$gasrem_4601", 1 - store i64 %"$consume_4605", i64* @_gasrem, align 8 + %"$execptr_load_4667" = load i8*, i8** @_execptr, align 8 + %"$maybeRecord_call_4668" = call i8* @_fetch_field(i8* %"$execptr_load_4667", i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$records_4666", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_472", i32 1, i8* %"$indices_buf_4664", i32 1), !dbg !824 + %"$maybeRecord_4669" = bitcast i8* %"$maybeRecord_call_4668" to %TName_Option_ud-registry.Record* + store %TName_Option_ud-registry.Record* %"$maybeRecord_4669", %TName_Option_ud-registry.Record** %maybeRecord, align 8 + %"$maybeRecord_4670" = load %TName_Option_ud-registry.Record*, %TName_Option_ud-registry.Record** %maybeRecord, align 8 + %"$$maybeRecord_4670_4671" = bitcast %TName_Option_ud-registry.Record* %"$maybeRecord_4670" to i8* + %"$_literal_cost_call_4672" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_ud-registry.Record_463", i8* %"$$maybeRecord_4670_4671") + %"$gasadd_4673" = add i64 %"$_literal_cost_call_4672", 0 + %"$gasadd_4674" = add i64 %"$gasadd_4673", 1 + %"$gasrem_4675" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4676" = icmp ugt i64 %"$gasadd_4674", %"$gasrem_4675" + br i1 %"$gascmp_4676", label %"$out_of_gas_4677", label %"$have_gas_4678" + +"$out_of_gas_4677": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_4678" + +"$have_gas_4678": ; preds = %"$out_of_gas_4677", %entry + %"$consume_4679" = sub i64 %"$gasrem_4675", %"$gasadd_4674" + store i64 %"$consume_4679", i64* @_gasrem, align 8 + %"$gasrem_4680" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4681" = icmp ugt i64 1, %"$gasrem_4680" + br i1 %"$gascmp_4681", label %"$out_of_gas_4682", label %"$have_gas_4683" + +"$out_of_gas_4682": ; preds = %"$have_gas_4678" + call void @_out_of_gas() + br label %"$have_gas_4683" + +"$have_gas_4683": ; preds = %"$out_of_gas_4682", %"$have_gas_4678" + %"$consume_4684" = sub i64 %"$gasrem_4680", 1 + store i64 %"$consume_4684", i64* @_gasrem, align 8 %recordOwner = alloca [20 x i8], align 1 - %"$gasrem_4606" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4607" = icmp ugt i64 1, %"$gasrem_4606" - br i1 %"$gascmp_4607", label %"$out_of_gas_4608", label %"$have_gas_4609" - -"$out_of_gas_4608": ; preds = %"$have_gas_4604" - call void @_out_of_gas() - br label %"$have_gas_4609" - -"$have_gas_4609": ; preds = %"$out_of_gas_4608", %"$have_gas_4604" - %"$consume_4610" = sub i64 %"$gasrem_4606", 1 - store i64 %"$consume_4610", i64* @_gasrem, align 8 - %"$ud-registry.recordMemberOwner_112" = alloca [20 x i8], align 1 - %"$ud-registry.recordMemberOwner_4611" = 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_4612" = extractvalue { void (i8*, [20 x i8]*, %TName_Option_ud-registry.Record*)*, i8* } %"$ud-registry.recordMemberOwner_4611", 0 - %"$ud-registry.recordMemberOwner_envptr_4613" = extractvalue { void (i8*, [20 x i8]*, %TName_Option_ud-registry.Record*)*, i8* } %"$ud-registry.recordMemberOwner_4611", 1 - %"$maybeRecord_4614" = load %TName_Option_ud-registry.Record*, %TName_Option_ud-registry.Record** %maybeRecord, align 8 - %"$ud-registry.recordMemberOwner_retalloca_4615" = alloca [20 x i8], align 1 - call void %"$ud-registry.recordMemberOwner_fptr_4612"(i8* %"$ud-registry.recordMemberOwner_envptr_4613", [20 x i8]* %"$ud-registry.recordMemberOwner_retalloca_4615", %TName_Option_ud-registry.Record* %"$maybeRecord_4614"), !dbg !471 - %"$ud-registry.recordMemberOwner_ret_4616" = load [20 x i8], [20 x i8]* %"$ud-registry.recordMemberOwner_retalloca_4615", align 1 - store [20 x i8] %"$ud-registry.recordMemberOwner_ret_4616", [20 x i8]* %"$ud-registry.recordMemberOwner_112", align 1, !dbg !471 - %"$$ud-registry.recordMemberOwner_112_4617" = load [20 x i8], [20 x i8]* %"$ud-registry.recordMemberOwner_112", align 1 - store [20 x i8] %"$$ud-registry.recordMemberOwner_112_4617", [20 x i8]* %recordOwner, align 1, !dbg !471 - %"$gasrem_4618" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4619" = icmp ugt i64 1, %"$gasrem_4618" - br i1 %"$gascmp_4619", label %"$out_of_gas_4620", label %"$have_gas_4621" - -"$out_of_gas_4620": ; preds = %"$have_gas_4609" - call void @_out_of_gas() - br label %"$have_gas_4621" - -"$have_gas_4621": ; preds = %"$out_of_gas_4620", %"$have_gas_4609" - %"$consume_4622" = sub i64 %"$gasrem_4618", 1 - store i64 %"$consume_4622", i64* @_gasrem, align 8 - %isSenderNodeOwner = alloca %TName_Bool*, align 8 - %"$gasrem_4623" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4624" = icmp ugt i64 20, %"$gasrem_4623" - br i1 %"$gascmp_4624", label %"$out_of_gas_4625", label %"$have_gas_4626" - -"$out_of_gas_4625": ; preds = %"$have_gas_4621" - call void @_out_of_gas() - br label %"$have_gas_4626" - -"$have_gas_4626": ; preds = %"$out_of_gas_4625", %"$have_gas_4621" - %"$consume_4627" = sub i64 %"$gasrem_4623", 20 - store i64 %"$consume_4627", i64* @_gasrem, align 8 - %"$execptr_load_4628" = load i8*, i8** @_execptr, align 8 - %"$eq__sender_4629" = alloca [20 x i8], align 1 - store [20 x i8] %_sender, [20 x i8]* %"$eq__sender_4629", align 1 - %"$$eq__sender_4629_4630" = bitcast [20 x i8]* %"$eq__sender_4629" to i8* - %"$eq_recordOwner_4631" = alloca [20 x i8], align 1 - %"$recordOwner_4632" = load [20 x i8], [20 x i8]* %recordOwner, align 1 - store [20 x i8] %"$recordOwner_4632", [20 x i8]* %"$eq_recordOwner_4631", align 1 - %"$$eq_recordOwner_4631_4633" = bitcast [20 x i8]* %"$eq_recordOwner_4631" to i8* - %"$eq_call_4634" = call %TName_Bool* @_eq_ByStrX(i8* %"$execptr_load_4628", i32 20, i8* %"$$eq__sender_4629_4630", i8* %"$$eq_recordOwner_4631_4633"), !dbg !472 - store %TName_Bool* %"$eq_call_4634", %TName_Bool** %isSenderNodeOwner, align 8, !dbg !472 - %"$gasrem_4636" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4637" = icmp ugt i64 2, %"$gasrem_4636" - br i1 %"$gascmp_4637", label %"$out_of_gas_4638", label %"$have_gas_4639" - -"$out_of_gas_4638": ; preds = %"$have_gas_4626" - call void @_out_of_gas() - br label %"$have_gas_4639" - -"$have_gas_4639": ; preds = %"$out_of_gas_4638", %"$have_gas_4626" - %"$consume_4640" = sub i64 %"$gasrem_4636", 2 - store i64 %"$consume_4640", i64* @_gasrem, align 8 - %"$isSenderNodeOwner_4642" = load %TName_Bool*, %TName_Bool** %isSenderNodeOwner, align 8 - %"$isSenderNodeOwner_tag_4643" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$isSenderNodeOwner_4642", i32 0, i32 0 - %"$isSenderNodeOwner_tag_4644" = load i8, i8* %"$isSenderNodeOwner_tag_4643", align 1 - switch i8 %"$isSenderNodeOwner_tag_4644", label %"$empty_default_4645" [ - i8 0, label %"$True_4646" - i8 1, label %"$False_4784" - ], !dbg !473 - -"$True_4646": ; preds = %"$have_gas_4639" - %"$isSenderNodeOwner_4647" = bitcast %TName_Bool* %"$isSenderNodeOwner_4642" to %CName_True* - %maybeApproved = alloca %TName_Option_ByStr20*, align 8 - %"$indices_buf_4648_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$indices_buf_4648_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_4648_salloc_load", i64 32) - %"$indices_buf_4648_salloc" = bitcast i8* %"$indices_buf_4648_salloc_salloc" to [32 x i8]* - %"$indices_buf_4648" = bitcast [32 x i8]* %"$indices_buf_4648_salloc" to i8* - %"$indices_gep_4649" = getelementptr i8, i8* %"$indices_buf_4648", i32 0 - %indices_cast1 = bitcast i8* %"$indices_gep_4649" to [32 x i8]* - store [32 x i8] %node, [32 x i8]* %indices_cast1, align 1 - %"$execptr_load_4651" = load i8*, i8** @_execptr, align 8 - %"$maybeApproved_call_4652" = call i8* @_fetch_field(i8* %"$execptr_load_4651", i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$approvals_4650", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_471", i32 1, i8* %"$indices_buf_4648", i32 1), !dbg !474 - %"$maybeApproved_4653" = bitcast i8* %"$maybeApproved_call_4652" to %TName_Option_ByStr20* - store %TName_Option_ByStr20* %"$maybeApproved_4653", %TName_Option_ByStr20** %maybeApproved, align 8 - %"$maybeApproved_4654" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %maybeApproved, align 8 - %"$$maybeApproved_4654_4655" = bitcast %TName_Option_ByStr20* %"$maybeApproved_4654" to i8* - %"$_literal_cost_call_4656" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_ByStr20_464", i8* %"$$maybeApproved_4654_4655") - %"$gasadd_4657" = add i64 %"$_literal_cost_call_4656", 0 - %"$gasadd_4658" = add i64 %"$gasadd_4657", 1 - %"$gasrem_4659" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4660" = icmp ugt i64 %"$gasadd_4658", %"$gasrem_4659" - br i1 %"$gascmp_4660", label %"$out_of_gas_4661", label %"$have_gas_4662" - -"$out_of_gas_4661": ; preds = %"$True_4646" - call void @_out_of_gas() - br label %"$have_gas_4662" - -"$have_gas_4662": ; preds = %"$out_of_gas_4661", %"$True_4646" - %"$consume_4663" = sub i64 %"$gasrem_4659", %"$gasadd_4658" - store i64 %"$consume_4663", i64* @_gasrem, align 8 - %"$gasrem_4664" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4665" = icmp ugt i64 1, %"$gasrem_4664" - br i1 %"$gascmp_4665", label %"$out_of_gas_4666", label %"$have_gas_4667" - -"$out_of_gas_4666": ; preds = %"$have_gas_4662" - call void @_out_of_gas() - br label %"$have_gas_4667" - -"$have_gas_4667": ; preds = %"$out_of_gas_4666", %"$have_gas_4662" - %"$consume_4668" = sub i64 %"$gasrem_4664", 1 - store i64 %"$consume_4668", i64* @_gasrem, align 8 - %currentlyApproved = alloca [20 x i8], align 1 - %"$gasrem_4669" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4670" = icmp ugt i64 2, %"$gasrem_4669" - br i1 %"$gascmp_4670", label %"$out_of_gas_4671", label %"$have_gas_4672" - -"$out_of_gas_4671": ; preds = %"$have_gas_4667" - call void @_out_of_gas() - br label %"$have_gas_4672" - -"$have_gas_4672": ; preds = %"$out_of_gas_4671", %"$have_gas_4667" - %"$consume_4673" = sub i64 %"$gasrem_4669", 2 - store i64 %"$consume_4673", i64* @_gasrem, align 8 - %"$maybeApproved_4675" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %maybeApproved, align 8 - %"$maybeApproved_tag_4676" = getelementptr inbounds %TName_Option_ByStr20, %TName_Option_ByStr20* %"$maybeApproved_4675", i32 0, i32 0 - %"$maybeApproved_tag_4677" = load i8, i8* %"$maybeApproved_tag_4676", align 1 - switch i8 %"$maybeApproved_tag_4677", label %"$empty_default_4678" [ - i8 1, label %"$None_4679" - i8 0, label %"$Some_4687" - ], !dbg !477 - -"$None_4679": ; preds = %"$have_gas_4672" - %"$maybeApproved_4680" = bitcast %TName_Option_ByStr20* %"$maybeApproved_4675" to %CName_None_ByStr20* - %"$gasrem_4681" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4682" = icmp ugt i64 1, %"$gasrem_4681" - br i1 %"$gascmp_4682", label %"$out_of_gas_4683", label %"$have_gas_4684" - -"$out_of_gas_4683": ; preds = %"$None_4679" - call void @_out_of_gas() - br label %"$have_gas_4684" - -"$have_gas_4684": ; preds = %"$out_of_gas_4683", %"$None_4679" - %"$consume_4685" = sub i64 %"$gasrem_4681", 1 - store i64 %"$consume_4685", i64* @_gasrem, align 8 - %"$ud-registry.zeroByStr20_4686" = load [20 x i8], [20 x i8]* @ud-registry.zeroByStr20, align 1 - store [20 x i8] %"$ud-registry.zeroByStr20_4686", [20 x i8]* %currentlyApproved, align 1, !dbg !478 - br label %"$matchsucc_4674" - -"$Some_4687": ; preds = %"$have_gas_4672" - %"$maybeApproved_4688" = bitcast %TName_Option_ByStr20* %"$maybeApproved_4675" to %CName_Some_ByStr20* - %"$approved_gep_4689" = getelementptr inbounds %CName_Some_ByStr20, %CName_Some_ByStr20* %"$maybeApproved_4688", i32 0, i32 1 - %"$approved_load_4690" = load [20 x i8], [20 x i8]* %"$approved_gep_4689", align 1 - %approved = alloca [20 x i8], align 1 - store [20 x i8] %"$approved_load_4690", [20 x i8]* %approved, align 1 - %"$gasrem_4691" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4692" = icmp ugt i64 1, %"$gasrem_4691" - br i1 %"$gascmp_4692", label %"$out_of_gas_4693", label %"$have_gas_4694" + call void @llvm.dbg.declare(metadata [20 x i8]* %recordOwner, metadata !825, metadata !DIExpression()), !dbg !826 + %"$gasrem_4685" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4686" = icmp ugt i64 1, %"$gasrem_4685" + br i1 %"$gascmp_4686", label %"$out_of_gas_4687", label %"$have_gas_4688" -"$out_of_gas_4693": ; preds = %"$Some_4687" +"$out_of_gas_4687": ; preds = %"$have_gas_4683" call void @_out_of_gas() - br label %"$have_gas_4694" + br label %"$have_gas_4688" -"$have_gas_4694": ; preds = %"$out_of_gas_4693", %"$Some_4687" - %"$consume_4695" = sub i64 %"$gasrem_4691", 1 - store i64 %"$consume_4695", i64* @_gasrem, align 8 - %"$approved_4696" = load [20 x i8], [20 x i8]* %approved, align 1 - store [20 x i8] %"$approved_4696", [20 x i8]* %currentlyApproved, align 1, !dbg !481 - br label %"$matchsucc_4674" - -"$empty_default_4678": ; preds = %"$have_gas_4672" - br label %"$matchsucc_4674" - -"$matchsucc_4674": ; preds = %"$have_gas_4694", %"$have_gas_4684", %"$empty_default_4678" +"$have_gas_4688": ; preds = %"$out_of_gas_4687", %"$have_gas_4683" + %"$consume_4689" = sub i64 %"$gasrem_4685", 1 + store i64 %"$consume_4689", i64* @_gasrem, align 8 + %"$ud-registry.recordMemberOwner_112" = alloca [20 x i8], align 1 + call void @llvm.dbg.declare(metadata [20 x i8]* %"$ud-registry.recordMemberOwner_112", metadata !827, metadata !DIExpression()), !dbg !828 + %"$ud-registry.recordMemberOwner_4690" = 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_4691" = extractvalue { void (i8*, [20 x i8]*, %TName_Option_ud-registry.Record*)*, i8* } %"$ud-registry.recordMemberOwner_4690", 0 + %"$ud-registry.recordMemberOwner_envptr_4692" = extractvalue { void (i8*, [20 x i8]*, %TName_Option_ud-registry.Record*)*, i8* } %"$ud-registry.recordMemberOwner_4690", 1 + %"$maybeRecord_4693" = load %TName_Option_ud-registry.Record*, %TName_Option_ud-registry.Record** %maybeRecord, align 8 + %"$ud-registry.recordMemberOwner_retalloca_4694" = alloca [20 x i8], align 1 + call void %"$ud-registry.recordMemberOwner_fptr_4691"(i8* %"$ud-registry.recordMemberOwner_envptr_4692", [20 x i8]* %"$ud-registry.recordMemberOwner_retalloca_4694", %TName_Option_ud-registry.Record* %"$maybeRecord_4693"), !dbg !828 + %"$ud-registry.recordMemberOwner_ret_4695" = load [20 x i8], [20 x i8]* %"$ud-registry.recordMemberOwner_retalloca_4694", align 1 + store [20 x i8] %"$ud-registry.recordMemberOwner_ret_4695", [20 x i8]* %"$ud-registry.recordMemberOwner_112", align 1, !dbg !828 + %"$$ud-registry.recordMemberOwner_112_4696" = load [20 x i8], [20 x i8]* %"$ud-registry.recordMemberOwner_112", align 1 + store [20 x i8] %"$$ud-registry.recordMemberOwner_112_4696", [20 x i8]* %recordOwner, align 1, !dbg !828 %"$gasrem_4697" = load i64, i64* @_gasrem, align 8 %"$gascmp_4698" = icmp ugt i64 1, %"$gasrem_4697" br i1 %"$gascmp_4698", label %"$out_of_gas_4699", label %"$have_gas_4700" -"$out_of_gas_4699": ; preds = %"$matchsucc_4674" +"$out_of_gas_4699": ; preds = %"$have_gas_4688" call void @_out_of_gas() br label %"$have_gas_4700" -"$have_gas_4700": ; preds = %"$out_of_gas_4699", %"$matchsucc_4674" +"$have_gas_4700": ; preds = %"$out_of_gas_4699", %"$have_gas_4688" %"$consume_4701" = sub i64 %"$gasrem_4697", 1 store i64 %"$consume_4701", i64* @_gasrem, align 8 - %needsToChange = alloca %TName_Bool*, align 8 + %isSenderNodeOwner = alloca %TName_Bool*, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %isSenderNodeOwner, metadata !829, metadata !DIExpression()), !dbg !830 %"$gasrem_4702" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4703" = icmp ugt i64 1, %"$gasrem_4702" + %"$gascmp_4703" = icmp ugt i64 20, %"$gasrem_4702" br i1 %"$gascmp_4703", label %"$out_of_gas_4704", label %"$have_gas_4705" "$out_of_gas_4704": ; preds = %"$have_gas_4700" @@ -8757,5868 +8971,6968 @@ entry: br label %"$have_gas_4705" "$have_gas_4705": ; preds = %"$out_of_gas_4704", %"$have_gas_4700" - %"$consume_4706" = sub i64 %"$gasrem_4702", 1 + %"$consume_4706" = sub i64 %"$gasrem_4702", 20 store i64 %"$consume_4706", i64* @_gasrem, align 8 + %"$execptr_load_4707" = load i8*, i8** @_execptr, align 8 + %"$eq__sender_4708" = alloca [20 x i8], align 1 + store [20 x i8] %_sender, [20 x i8]* %"$eq__sender_4708", align 1 + %"$$eq__sender_4708_4709" = bitcast [20 x i8]* %"$eq__sender_4708" to i8* + %"$eq_recordOwner_4710" = alloca [20 x i8], align 1 + %"$recordOwner_4711" = load [20 x i8], [20 x i8]* %recordOwner, align 1 + store [20 x i8] %"$recordOwner_4711", [20 x i8]* %"$eq_recordOwner_4710", align 1 + %"$$eq_recordOwner_4710_4712" = bitcast [20 x i8]* %"$eq_recordOwner_4710" to i8* + %"$eq_call_4713" = call %TName_Bool* @_eq_ByStrX(i8* %"$execptr_load_4707", i32 20, i8* %"$$eq__sender_4708_4709", i8* %"$$eq_recordOwner_4710_4712"), !dbg !831 + store %TName_Bool* %"$eq_call_4713", %TName_Bool** %isSenderNodeOwner, align 8, !dbg !831 + %"$gasrem_4715" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4716" = icmp ugt i64 2, %"$gasrem_4715" + br i1 %"$gascmp_4716", label %"$out_of_gas_4717", label %"$have_gas_4718" + +"$out_of_gas_4717": ; preds = %"$have_gas_4705" + call void @_out_of_gas() + br label %"$have_gas_4718" + +"$have_gas_4718": ; preds = %"$out_of_gas_4717", %"$have_gas_4705" + %"$consume_4719" = sub i64 %"$gasrem_4715", 2 + store i64 %"$consume_4719", i64* @_gasrem, align 8 + %"$isSenderNodeOwner_4721" = load %TName_Bool*, %TName_Bool** %isSenderNodeOwner, align 8 + %"$isSenderNodeOwner_tag_4722" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$isSenderNodeOwner_4721", i32 0, i32 0 + %"$isSenderNodeOwner_tag_4723" = load i8, i8* %"$isSenderNodeOwner_tag_4722", align 1 + switch i8 %"$isSenderNodeOwner_tag_4723", label %"$empty_default_4724" [ + i8 0, label %"$True_4725" + i8 1, label %"$False_4863" + ], !dbg !832 + +"$True_4725": ; preds = %"$have_gas_4718" + %"$isSenderNodeOwner_4726" = bitcast %TName_Bool* %"$isSenderNodeOwner_4721" to %CName_True* + %maybeApproved = alloca %TName_Option_ByStr20*, align 8 + call void @llvm.dbg.declare(metadata %TName_Option_ByStr20** %maybeApproved, metadata !833, metadata !DIExpression()), !dbg !836 + %"$indices_buf_4727_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$indices_buf_4727_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_4727_salloc_load", i64 32) + %"$indices_buf_4727_salloc" = bitcast i8* %"$indices_buf_4727_salloc_salloc" to [32 x i8]* + %"$indices_buf_4727" = bitcast [32 x i8]* %"$indices_buf_4727_salloc" to i8* + %"$indices_gep_4728" = getelementptr i8, i8* %"$indices_buf_4727", i32 0 + %indices_cast1 = bitcast i8* %"$indices_gep_4728" to [32 x i8]* + store [32 x i8] %node, [32 x i8]* %indices_cast1, align 1 + %"$execptr_load_4730" = load i8*, i8** @_execptr, align 8 + %"$maybeApproved_call_4731" = call i8* @_fetch_field(i8* %"$execptr_load_4730", i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$approvals_4729", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_471", i32 1, i8* %"$indices_buf_4727", i32 1), !dbg !836 + %"$maybeApproved_4732" = bitcast i8* %"$maybeApproved_call_4731" to %TName_Option_ByStr20* + store %TName_Option_ByStr20* %"$maybeApproved_4732", %TName_Option_ByStr20** %maybeApproved, align 8 + %"$maybeApproved_4733" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %maybeApproved, align 8 + %"$$maybeApproved_4733_4734" = bitcast %TName_Option_ByStr20* %"$maybeApproved_4733" to i8* + %"$_literal_cost_call_4735" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_ByStr20_464", i8* %"$$maybeApproved_4733_4734") + %"$gasadd_4736" = add i64 %"$_literal_cost_call_4735", 0 + %"$gasadd_4737" = add i64 %"$gasadd_4736", 1 + %"$gasrem_4738" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4739" = icmp ugt i64 %"$gasadd_4737", %"$gasrem_4738" + br i1 %"$gascmp_4739", label %"$out_of_gas_4740", label %"$have_gas_4741" + +"$out_of_gas_4740": ; preds = %"$True_4725" + call void @_out_of_gas() + br label %"$have_gas_4741" + +"$have_gas_4741": ; preds = %"$out_of_gas_4740", %"$True_4725" + %"$consume_4742" = sub i64 %"$gasrem_4738", %"$gasadd_4737" + store i64 %"$consume_4742", i64* @_gasrem, 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" + +"$out_of_gas_4745": ; preds = %"$have_gas_4741" + call void @_out_of_gas() + br label %"$have_gas_4746" + +"$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 + %currentlyApproved = alloca [20 x i8], align 1 + call void @llvm.dbg.declare(metadata [20 x i8]* %currentlyApproved, metadata !837, metadata !DIExpression()), !dbg !838 + %"$gasrem_4748" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4749" = icmp ugt i64 2, %"$gasrem_4748" + br i1 %"$gascmp_4749", label %"$out_of_gas_4750", label %"$have_gas_4751" + +"$out_of_gas_4750": ; preds = %"$have_gas_4746" + call void @_out_of_gas() + br label %"$have_gas_4751" + +"$have_gas_4751": ; preds = %"$out_of_gas_4750", %"$have_gas_4746" + %"$consume_4752" = sub i64 %"$gasrem_4748", 2 + store i64 %"$consume_4752", i64* @_gasrem, align 8 + %"$maybeApproved_4754" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %maybeApproved, align 8 + %"$maybeApproved_tag_4755" = getelementptr inbounds %TName_Option_ByStr20, %TName_Option_ByStr20* %"$maybeApproved_4754", i32 0, i32 0 + %"$maybeApproved_tag_4756" = load i8, i8* %"$maybeApproved_tag_4755", align 1 + switch i8 %"$maybeApproved_tag_4756", label %"$empty_default_4757" [ + i8 1, label %"$None_4758" + i8 0, label %"$Some_4766" + ], !dbg !839 + +"$None_4758": ; preds = %"$have_gas_4751" + %"$maybeApproved_4759" = bitcast %TName_Option_ByStr20* %"$maybeApproved_4754" to %CName_None_ByStr20* + %"$gasrem_4760" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4761" = icmp ugt i64 1, %"$gasrem_4760" + br i1 %"$gascmp_4761", label %"$out_of_gas_4762", label %"$have_gas_4763" + +"$out_of_gas_4762": ; preds = %"$None_4758" + call void @_out_of_gas() + br label %"$have_gas_4763" + +"$have_gas_4763": ; preds = %"$out_of_gas_4762", %"$None_4758" + %"$consume_4764" = sub i64 %"$gasrem_4760", 1 + store i64 %"$consume_4764", i64* @_gasrem, align 8 + %"$ud-registry.zeroByStr20_4765" = load [20 x i8], [20 x i8]* @ud-registry.zeroByStr20, align 1 + store [20 x i8] %"$ud-registry.zeroByStr20_4765", [20 x i8]* %currentlyApproved, align 1, !dbg !840 + br label %"$matchsucc_4753" + +"$Some_4766": ; preds = %"$have_gas_4751" + %"$maybeApproved_4767" = bitcast %TName_Option_ByStr20* %"$maybeApproved_4754" to %CName_Some_ByStr20* + %"$approved_gep_4768" = getelementptr inbounds %CName_Some_ByStr20, %CName_Some_ByStr20* %"$maybeApproved_4767", i32 0, i32 1 + %"$approved_load_4769" = load [20 x i8], [20 x i8]* %"$approved_gep_4768", align 1 + %approved = alloca [20 x i8], align 1 + store [20 x i8] %"$approved_load_4769", [20 x i8]* %approved, 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_4772": ; preds = %"$Some_4766" + call void @_out_of_gas() + br label %"$have_gas_4773" + +"$have_gas_4773": ; preds = %"$out_of_gas_4772", %"$Some_4766" + %"$consume_4774" = sub i64 %"$gasrem_4770", 1 + store i64 %"$consume_4774", i64* @_gasrem, align 8 + %"$approved_4775" = load [20 x i8], [20 x i8]* %approved, align 1 + store [20 x i8] %"$approved_4775", [20 x i8]* %currentlyApproved, align 1, !dbg !843 + br label %"$matchsucc_4753" + +"$empty_default_4757": ; preds = %"$have_gas_4751" + br label %"$matchsucc_4753" + +"$matchsucc_4753": ; preds = %"$have_gas_4773", %"$have_gas_4763", %"$empty_default_4757" + %"$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 = %"$matchsucc_4753" + call void @_out_of_gas() + br label %"$have_gas_4779" + +"$have_gas_4779": ; preds = %"$out_of_gas_4778", %"$matchsucc_4753" + %"$consume_4780" = sub i64 %"$gasrem_4776", 1 + store i64 %"$consume_4780", i64* @_gasrem, align 8 + %needsToChange = alloca %TName_Bool*, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %needsToChange, metadata !845, metadata !DIExpression()), !dbg !846 + %"$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 %b = alloca %TName_Bool*, align 8 - %"$gasrem_4707" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4708" = icmp ugt i64 20, %"$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", 20 - store i64 %"$consume_4711", i64* @_gasrem, align 8 - %"$execptr_load_4712" = load i8*, i8** @_execptr, align 8 - %"$eq_currentlyApproved_4713" = alloca [20 x i8], align 1 - %"$currentlyApproved_4714" = load [20 x i8], [20 x i8]* %currentlyApproved, align 1 - store [20 x i8] %"$currentlyApproved_4714", [20 x i8]* %"$eq_currentlyApproved_4713", align 1 - %"$$eq_currentlyApproved_4713_4715" = bitcast [20 x i8]* %"$eq_currentlyApproved_4713" to i8* - %"$eq_address_4716" = alloca [20 x i8], align 1 - store [20 x i8] %address, [20 x i8]* %"$eq_address_4716", align 1 - %"$$eq_address_4716_4717" = bitcast [20 x i8]* %"$eq_address_4716" to i8* - %"$eq_call_4718" = call %TName_Bool* @_eq_ByStrX(i8* %"$execptr_load_4712", i32 20, i8* %"$$eq_currentlyApproved_4713_4715", i8* %"$$eq_address_4716_4717"), !dbg !483 - store %TName_Bool* %"$eq_call_4718", %TName_Bool** %b, align 8, !dbg !483 - %"$gasrem_4720" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4721" = icmp ugt i64 1, %"$gasrem_4720" - br i1 %"$gascmp_4721", label %"$out_of_gas_4722", label %"$have_gas_4723" - -"$out_of_gas_4722": ; preds = %"$have_gas_4710" - call void @_out_of_gas() - br label %"$have_gas_4723" - -"$have_gas_4723": ; preds = %"$out_of_gas_4722", %"$have_gas_4710" - %"$consume_4724" = sub i64 %"$gasrem_4720", 1 - store i64 %"$consume_4724", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %b, metadata !847, metadata !DIExpression()), !dbg !848 + %"$gasrem_4786" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4787" = icmp ugt i64 20, %"$gasrem_4786" + br i1 %"$gascmp_4787", label %"$out_of_gas_4788", label %"$have_gas_4789" + +"$out_of_gas_4788": ; preds = %"$have_gas_4784" + call void @_out_of_gas() + br label %"$have_gas_4789" + +"$have_gas_4789": ; preds = %"$out_of_gas_4788", %"$have_gas_4784" + %"$consume_4790" = sub i64 %"$gasrem_4786", 20 + store i64 %"$consume_4790", i64* @_gasrem, align 8 + %"$execptr_load_4791" = load i8*, i8** @_execptr, align 8 + %"$eq_currentlyApproved_4792" = alloca [20 x i8], align 1 + %"$currentlyApproved_4793" = load [20 x i8], [20 x i8]* %currentlyApproved, align 1 + store [20 x i8] %"$currentlyApproved_4793", [20 x i8]* %"$eq_currentlyApproved_4792", align 1 + %"$$eq_currentlyApproved_4792_4794" = bitcast [20 x i8]* %"$eq_currentlyApproved_4792" to i8* + %"$eq_address_4795" = alloca [20 x i8], align 1 + store [20 x i8] %address, [20 x i8]* %"$eq_address_4795", align 1 + %"$$eq_address_4795_4796" = bitcast [20 x i8]* %"$eq_address_4795" to i8* + %"$eq_call_4797" = call %TName_Bool* @_eq_ByStrX(i8* %"$execptr_load_4791", i32 20, i8* %"$$eq_currentlyApproved_4792_4794", i8* %"$$eq_address_4795_4796"), !dbg !849 + store %TName_Bool* %"$eq_call_4797", %TName_Bool** %b, align 8, !dbg !849 + %"$gasrem_4799" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4800" = icmp ugt i64 1, %"$gasrem_4799" + br i1 %"$gascmp_4800", label %"$out_of_gas_4801", label %"$have_gas_4802" + +"$out_of_gas_4801": ; preds = %"$have_gas_4789" + call void @_out_of_gas() + br label %"$have_gas_4802" + +"$have_gas_4802": ; preds = %"$out_of_gas_4801", %"$have_gas_4789" + %"$consume_4803" = sub i64 %"$gasrem_4799", 1 + store i64 %"$consume_4803", i64* @_gasrem, align 8 %"$BoolUtils.negb_110" = alloca %TName_Bool*, align 8 - %"$BoolUtils.negb_4725" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* @BoolUtils.negb, align 8 - %"$BoolUtils.negb_fptr_4726" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.negb_4725", 0 - %"$BoolUtils.negb_envptr_4727" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.negb_4725", 1 - %"$b_4728" = load %TName_Bool*, %TName_Bool** %b, align 8 - %"$BoolUtils.negb_call_4729" = call %TName_Bool* %"$BoolUtils.negb_fptr_4726"(i8* %"$BoolUtils.negb_envptr_4727", %TName_Bool* %"$b_4728"), !dbg !484 - store %TName_Bool* %"$BoolUtils.negb_call_4729", %TName_Bool** %"$BoolUtils.negb_110", align 8, !dbg !484 - %"$$BoolUtils.negb_110_4730" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.negb_110", align 8 - store %TName_Bool* %"$$BoolUtils.negb_110_4730", %TName_Bool** %needsToChange, align 8, !dbg !484 - %"$gasrem_4731" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4732" = icmp ugt i64 2, %"$gasrem_4731" - br i1 %"$gascmp_4732", label %"$out_of_gas_4733", label %"$have_gas_4734" - -"$out_of_gas_4733": ; preds = %"$have_gas_4723" - call void @_out_of_gas() - br label %"$have_gas_4734" - -"$have_gas_4734": ; preds = %"$out_of_gas_4733", %"$have_gas_4723" - %"$consume_4735" = sub i64 %"$gasrem_4731", 2 - store i64 %"$consume_4735", i64* @_gasrem, align 8 - %"$needsToChange_4737" = load %TName_Bool*, %TName_Bool** %needsToChange, align 8 - %"$needsToChange_tag_4738" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$needsToChange_4737", i32 0, i32 0 - %"$needsToChange_tag_4739" = load i8, i8* %"$needsToChange_tag_4738", align 1 - switch i8 %"$needsToChange_tag_4739", label %"$default_4740" [ - i8 0, label %"$True_4741" - ], !dbg !485 - -"$True_4741": ; preds = %"$have_gas_4734" - %"$needsToChange_4742" = bitcast %TName_Bool* %"$needsToChange_4737" to %CName_True* - %"$_literal_cost_address_4743" = alloca [20 x i8], align 1 - store [20 x i8] %address, [20 x i8]* %"$_literal_cost_address_4743", align 1 - %"$$_literal_cost_address_4743_4744" = bitcast [20 x i8]* %"$_literal_cost_address_4743" to i8* - %"$_literal_cost_call_4745" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Bystr20_458", i8* %"$$_literal_cost_address_4743_4744") - %"$gasadd_4746" = add i64 %"$_literal_cost_call_4745", 1 - %"$gasrem_4747" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4748" = icmp ugt i64 %"$gasadd_4746", %"$gasrem_4747" - br i1 %"$gascmp_4748", label %"$out_of_gas_4749", label %"$have_gas_4750" - -"$out_of_gas_4749": ; preds = %"$True_4741" - call void @_out_of_gas() - br label %"$have_gas_4750" - -"$have_gas_4750": ; preds = %"$out_of_gas_4749", %"$True_4741" - %"$consume_4751" = sub i64 %"$gasrem_4747", %"$gasadd_4746" - store i64 %"$consume_4751", i64* @_gasrem, align 8 - %"$indices_buf_4752_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$indices_buf_4752_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_4752_salloc_load", i64 32) - %"$indices_buf_4752_salloc" = bitcast i8* %"$indices_buf_4752_salloc_salloc" to [32 x i8]* - %"$indices_buf_4752" = bitcast [32 x i8]* %"$indices_buf_4752_salloc" to i8* - %"$indices_gep_4753" = getelementptr i8, i8* %"$indices_buf_4752", i32 0 - %indices_cast2 = bitcast i8* %"$indices_gep_4753" to [32 x i8]* + call void @llvm.dbg.declare(metadata %TName_Bool** %"$BoolUtils.negb_110", metadata !850, metadata !DIExpression()), !dbg !851 + %"$BoolUtils.negb_4804" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* @BoolUtils.negb, align 8 + %"$BoolUtils.negb_fptr_4805" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.negb_4804", 0 + %"$BoolUtils.negb_envptr_4806" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.negb_4804", 1 + %"$b_4807" = load %TName_Bool*, %TName_Bool** %b, align 8 + %"$BoolUtils.negb_call_4808" = call %TName_Bool* %"$BoolUtils.negb_fptr_4805"(i8* %"$BoolUtils.negb_envptr_4806", %TName_Bool* %"$b_4807"), !dbg !851 + store %TName_Bool* %"$BoolUtils.negb_call_4808", %TName_Bool** %"$BoolUtils.negb_110", align 8, !dbg !851 + %"$$BoolUtils.negb_110_4809" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.negb_110", align 8 + store %TName_Bool* %"$$BoolUtils.negb_110_4809", %TName_Bool** %needsToChange, align 8, !dbg !851 + %"$gasrem_4810" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4811" = icmp ugt i64 2, %"$gasrem_4810" + br i1 %"$gascmp_4811", label %"$out_of_gas_4812", label %"$have_gas_4813" + +"$out_of_gas_4812": ; preds = %"$have_gas_4802" + call void @_out_of_gas() + br label %"$have_gas_4813" + +"$have_gas_4813": ; preds = %"$out_of_gas_4812", %"$have_gas_4802" + %"$consume_4814" = sub i64 %"$gasrem_4810", 2 + store i64 %"$consume_4814", i64* @_gasrem, align 8 + %"$needsToChange_4816" = load %TName_Bool*, %TName_Bool** %needsToChange, align 8 + %"$needsToChange_tag_4817" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$needsToChange_4816", i32 0, i32 0 + %"$needsToChange_tag_4818" = load i8, i8* %"$needsToChange_tag_4817", align 1 + switch i8 %"$needsToChange_tag_4818", label %"$default_4819" [ + i8 0, label %"$True_4820" + ], !dbg !852 + +"$True_4820": ; preds = %"$have_gas_4813" + %"$needsToChange_4821" = bitcast %TName_Bool* %"$needsToChange_4816" to %CName_True* + %"$_literal_cost_address_4822" = alloca [20 x i8], align 1 + store [20 x i8] %address, [20 x i8]* %"$_literal_cost_address_4822", align 1 + %"$$_literal_cost_address_4822_4823" = bitcast [20 x i8]* %"$_literal_cost_address_4822" to i8* + %"$_literal_cost_call_4824" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Bystr20_458", i8* %"$$_literal_cost_address_4822_4823") + %"$gasadd_4825" = add i64 %"$_literal_cost_call_4824", 1 + %"$gasrem_4826" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4827" = icmp ugt i64 %"$gasadd_4825", %"$gasrem_4826" + br i1 %"$gascmp_4827", label %"$out_of_gas_4828", label %"$have_gas_4829" + +"$out_of_gas_4828": ; preds = %"$True_4820" + call void @_out_of_gas() + br label %"$have_gas_4829" + +"$have_gas_4829": ; preds = %"$out_of_gas_4828", %"$True_4820" + %"$consume_4830" = sub i64 %"$gasrem_4826", %"$gasadd_4825" + store i64 %"$consume_4830", i64* @_gasrem, align 8 + %"$indices_buf_4831_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$indices_buf_4831_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_4831_salloc_load", i64 32) + %"$indices_buf_4831_salloc" = bitcast i8* %"$indices_buf_4831_salloc_salloc" to [32 x i8]* + %"$indices_buf_4831" = bitcast [32 x i8]* %"$indices_buf_4831_salloc" to i8* + %"$indices_gep_4832" = getelementptr i8, i8* %"$indices_buf_4831", i32 0 + %indices_cast2 = bitcast i8* %"$indices_gep_4832" to [32 x i8]* store [32 x i8] %node, [32 x i8]* %indices_cast2, align 1 - %"$execptr_load_4754" = load i8*, i8** @_execptr, align 8 - %"$update_value_4756" = alloca [20 x i8], align 1 - store [20 x i8] %address, [20 x i8]* %"$update_value_4756", align 1 - %"$update_value_4757" = bitcast [20 x i8]* %"$update_value_4756" to i8* - call void @_update_field(i8* %"$execptr_load_4754", i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$approvals_4755", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_471", i32 1, i8* %"$indices_buf_4752", i8* %"$update_value_4757"), !dbg !486 - %"$gasrem_4758" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4759" = icmp ugt i64 1, %"$gasrem_4758" - br i1 %"$gascmp_4759", label %"$out_of_gas_4760", label %"$have_gas_4761" - -"$out_of_gas_4760": ; preds = %"$have_gas_4750" - call void @_out_of_gas() - br label %"$have_gas_4761" - -"$have_gas_4761": ; preds = %"$out_of_gas_4760", %"$have_gas_4750" - %"$consume_4762" = sub i64 %"$gasrem_4758", 1 - store i64 %"$consume_4762", i64* @_gasrem, align 8 + %"$execptr_load_4833" = load i8*, i8** @_execptr, align 8 + %"$update_value_4835" = alloca [20 x i8], align 1 + store [20 x i8] %address, [20 x i8]* %"$update_value_4835", align 1 + %"$update_value_4836" = bitcast [20 x i8]* %"$update_value_4835" to i8* + call void @_update_field(i8* %"$execptr_load_4833", i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$approvals_4834", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_471", i32 1, i8* %"$indices_buf_4831", i8* %"$update_value_4836"), !dbg !853 + %"$gasrem_4837" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4838" = icmp ugt i64 1, %"$gasrem_4837" + br i1 %"$gascmp_4838", label %"$out_of_gas_4839", label %"$have_gas_4840" + +"$out_of_gas_4839": ; preds = %"$have_gas_4829" + call void @_out_of_gas() + br label %"$have_gas_4840" + +"$have_gas_4840": ; preds = %"$out_of_gas_4839", %"$have_gas_4829" + %"$consume_4841" = sub i64 %"$gasrem_4837", 1 + store i64 %"$consume_4841", i64* @_gasrem, align 8 %e = alloca i8*, align 8 - %"$gasrem_4763" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4764" = icmp ugt i64 1, %"$gasrem_4763" - br i1 %"$gascmp_4764", label %"$out_of_gas_4765", label %"$have_gas_4766" + call void @llvm.dbg.declare(metadata i8** %e, metadata !856, metadata !DIExpression()), !dbg !857 + %"$gasrem_4842" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4843" = icmp ugt i64 1, %"$gasrem_4842" + br i1 %"$gascmp_4843", label %"$out_of_gas_4844", label %"$have_gas_4845" -"$out_of_gas_4765": ; preds = %"$have_gas_4761" +"$out_of_gas_4844": ; preds = %"$have_gas_4840" call void @_out_of_gas() - br label %"$have_gas_4766" + br label %"$have_gas_4845" -"$have_gas_4766": ; preds = %"$out_of_gas_4765", %"$have_gas_4761" - %"$consume_4767" = sub i64 %"$gasrem_4763", 1 - store i64 %"$consume_4767", i64* @_gasrem, align 8 +"$have_gas_4845": ; preds = %"$out_of_gas_4844", %"$have_gas_4840" + %"$consume_4846" = sub i64 %"$gasrem_4842", 1 + store i64 %"$consume_4846", i64* @_gasrem, align 8 %"$ud-registry.eApproved_109" = alloca i8*, align 8 - %"$ud-registry.eApproved_4768" = load { i8* (i8*, [20 x i8]*)*, i8* }, { i8* (i8*, [20 x i8]*)*, i8* }* @ud-registry.eApproved, align 8 - %"$ud-registry.eApproved_fptr_4769" = extractvalue { i8* (i8*, [20 x i8]*)*, i8* } %"$ud-registry.eApproved_4768", 0 - %"$ud-registry.eApproved_envptr_4770" = extractvalue { i8* (i8*, [20 x i8]*)*, i8* } %"$ud-registry.eApproved_4768", 1 - %"$ud-registry.eApproved_address_4771" = alloca [20 x i8], align 1 - store [20 x i8] %address, [20 x i8]* %"$ud-registry.eApproved_address_4771", align 1 - %"$ud-registry.eApproved_call_4772" = call i8* %"$ud-registry.eApproved_fptr_4769"(i8* %"$ud-registry.eApproved_envptr_4770", [20 x i8]* %"$ud-registry.eApproved_address_4771"), !dbg !489 - store i8* %"$ud-registry.eApproved_call_4772", i8** %"$ud-registry.eApproved_109", align 8, !dbg !489 - %"$$ud-registry.eApproved_109_4773" = load i8*, i8** %"$ud-registry.eApproved_109", align 8 - store i8* %"$$ud-registry.eApproved_109_4773", i8** %e, align 8, !dbg !489 - %"$e_4774" = load i8*, i8** %e, align 8 - %"$_literal_cost_call_4776" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Event_446", i8* %"$e_4774") - %"$gasrem_4777" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4778" = icmp ugt i64 %"$_literal_cost_call_4776", %"$gasrem_4777" - br i1 %"$gascmp_4778", label %"$out_of_gas_4779", label %"$have_gas_4780" - -"$out_of_gas_4779": ; preds = %"$have_gas_4766" - call void @_out_of_gas() - br label %"$have_gas_4780" - -"$have_gas_4780": ; preds = %"$out_of_gas_4779", %"$have_gas_4766" - %"$consume_4781" = sub i64 %"$gasrem_4777", %"$_literal_cost_call_4776" - store i64 %"$consume_4781", i64* @_gasrem, align 8 - %"$execptr_load_4782" = load i8*, i8** @_execptr, align 8 - %"$e_4783" = load i8*, i8** %e, align 8 - call void @_event(i8* %"$execptr_load_4782", %_TyDescrTy_Typ* @"$TyDescr_Event_446", i8* %"$e_4783"), !dbg !490 - br label %"$matchsucc_4736" - -"$default_4740": ; preds = %"$have_gas_4734" + call void @llvm.dbg.declare(metadata i8** %"$ud-registry.eApproved_109", metadata !858, metadata !DIExpression()), !dbg !859 + %"$ud-registry.eApproved_4847" = load { i8* (i8*, [20 x i8]*)*, i8* }, { i8* (i8*, [20 x i8]*)*, i8* }* @ud-registry.eApproved, align 8 + %"$ud-registry.eApproved_fptr_4848" = extractvalue { i8* (i8*, [20 x i8]*)*, i8* } %"$ud-registry.eApproved_4847", 0 + %"$ud-registry.eApproved_envptr_4849" = extractvalue { i8* (i8*, [20 x i8]*)*, i8* } %"$ud-registry.eApproved_4847", 1 + %"$ud-registry.eApproved_address_4850" = alloca [20 x i8], align 1 + store [20 x i8] %address, [20 x i8]* %"$ud-registry.eApproved_address_4850", align 1 + %"$ud-registry.eApproved_call_4851" = call i8* %"$ud-registry.eApproved_fptr_4848"(i8* %"$ud-registry.eApproved_envptr_4849", [20 x i8]* %"$ud-registry.eApproved_address_4850"), !dbg !859 + store i8* %"$ud-registry.eApproved_call_4851", i8** %"$ud-registry.eApproved_109", align 8, !dbg !859 + %"$$ud-registry.eApproved_109_4852" = load i8*, i8** %"$ud-registry.eApproved_109", align 8 + store i8* %"$$ud-registry.eApproved_109_4852", i8** %e, align 8, !dbg !859 + %"$e_4853" = load i8*, i8** %e, align 8 + %"$_literal_cost_call_4855" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Event_446", i8* %"$e_4853") + %"$gasrem_4856" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4857" = icmp ugt i64 %"$_literal_cost_call_4855", %"$gasrem_4856" + br i1 %"$gascmp_4857", label %"$out_of_gas_4858", label %"$have_gas_4859" + +"$out_of_gas_4858": ; preds = %"$have_gas_4845" + call void @_out_of_gas() + br label %"$have_gas_4859" + +"$have_gas_4859": ; preds = %"$out_of_gas_4858", %"$have_gas_4845" + %"$consume_4860" = sub i64 %"$gasrem_4856", %"$_literal_cost_call_4855" + store i64 %"$consume_4860", i64* @_gasrem, align 8 + %"$execptr_load_4861" = load i8*, i8** @_execptr, align 8 + %"$e_4862" = load i8*, i8** %e, align 8 + call void @_event(i8* %"$execptr_load_4861", %_TyDescrTy_Typ* @"$TyDescr_Event_446", i8* %"$e_4862"), !dbg !860 + br label %"$matchsucc_4815" + +"$default_4819": ; preds = %"$have_gas_4813" br label %"$joinp_26" -"$joinp_26": ; preds = %"$default_4740" - br label %"$matchsucc_4736" +"$joinp_26": ; preds = %"$default_4819" + br label %"$matchsucc_4815" -"$matchsucc_4736": ; preds = %"$have_gas_4780", %"$joinp_26" - br label %"$matchsucc_4641" +"$matchsucc_4815": ; preds = %"$have_gas_4859", %"$joinp_26" + br label %"$matchsucc_4720" -"$False_4784": ; preds = %"$have_gas_4639" - %"$isSenderNodeOwner_4785" = bitcast %TName_Bool* %"$isSenderNodeOwner_4642" to %CName_False* - %"$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" +"$False_4863": ; preds = %"$have_gas_4718" + %"$isSenderNodeOwner_4864" = bitcast %TName_Bool* %"$isSenderNodeOwner_4721" to %CName_False* + %"$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" -"$out_of_gas_4788": ; preds = %"$False_4784" +"$out_of_gas_4867": ; preds = %"$False_4863" call void @_out_of_gas() - br label %"$have_gas_4789" + br label %"$have_gas_4868" -"$have_gas_4789": ; preds = %"$out_of_gas_4788", %"$False_4784" - %"$consume_4790" = sub i64 %"$gasrem_4786", 1 - store i64 %"$consume_4790", i64* @_gasrem, align 8 +"$have_gas_4868": ; preds = %"$out_of_gas_4867", %"$False_4863" + %"$consume_4869" = sub i64 %"$gasrem_4865", 1 + store i64 %"$consume_4869", i64* @_gasrem, align 8 %e3 = alloca i8*, align 8 - %"$gasrem_4791" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4792" = icmp ugt i64 1, %"$gasrem_4791" - br i1 %"$gascmp_4792", label %"$out_of_gas_4793", label %"$have_gas_4794" + call void @llvm.dbg.declare(metadata i8** %e3, metadata !861, metadata !DIExpression()), !dbg !863 + %"$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_4793": ; preds = %"$have_gas_4789" +"$out_of_gas_4872": ; preds = %"$have_gas_4868" call void @_out_of_gas() - br label %"$have_gas_4794" + br label %"$have_gas_4873" -"$have_gas_4794": ; preds = %"$out_of_gas_4793", %"$have_gas_4789" - %"$consume_4795" = sub i64 %"$gasrem_4791", 1 - store i64 %"$consume_4795", i64* @_gasrem, align 8 +"$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 %m = alloca %String, align 8 - %"$gasrem_4796" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4797" = icmp ugt i64 1, %"$gasrem_4796" - br i1 %"$gascmp_4797", label %"$out_of_gas_4798", label %"$have_gas_4799" + call void @llvm.dbg.declare(metadata %String* %m, metadata !864, metadata !DIExpression()), !dbg !865 + %"$gasrem_4875" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4876" = icmp ugt i64 1, %"$gasrem_4875" + br i1 %"$gascmp_4876", label %"$out_of_gas_4877", label %"$have_gas_4878" -"$out_of_gas_4798": ; preds = %"$have_gas_4794" +"$out_of_gas_4877": ; preds = %"$have_gas_4873" call void @_out_of_gas() - br label %"$have_gas_4799" + br label %"$have_gas_4878" -"$have_gas_4799": ; preds = %"$out_of_gas_4798", %"$have_gas_4794" - %"$consume_4800" = sub i64 %"$gasrem_4796", 1 - store i64 %"$consume_4800", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([21 x i8], [21 x i8]* @"$stringlit_4801", i32 0, i32 0), i32 21 }, %String* %m, align 8, !dbg !491 - %"$gasrem_4802" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4803" = icmp ugt i64 1, %"$gasrem_4802" - br i1 %"$gascmp_4803", label %"$out_of_gas_4804", label %"$have_gas_4805" +"$have_gas_4878": ; preds = %"$out_of_gas_4877", %"$have_gas_4873" + %"$consume_4879" = sub i64 %"$gasrem_4875", 1 + store i64 %"$consume_4879", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([21 x i8], [21 x i8]* @"$stringlit_4880", i32 0, i32 0), i32 21 }, %String* %m, align 8, !dbg !866 + %"$gasrem_4881" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4882" = icmp ugt i64 1, %"$gasrem_4881" + br i1 %"$gascmp_4882", label %"$out_of_gas_4883", label %"$have_gas_4884" -"$out_of_gas_4804": ; preds = %"$have_gas_4799" +"$out_of_gas_4883": ; preds = %"$have_gas_4878" call void @_out_of_gas() - br label %"$have_gas_4805" + br label %"$have_gas_4884" -"$have_gas_4805": ; preds = %"$out_of_gas_4804", %"$have_gas_4799" - %"$consume_4806" = sub i64 %"$gasrem_4802", 1 - store i64 %"$consume_4806", i64* @_gasrem, align 8 +"$have_gas_4884": ; preds = %"$out_of_gas_4883", %"$have_gas_4878" + %"$consume_4885" = sub i64 %"$gasrem_4881", 1 + store i64 %"$consume_4885", i64* @_gasrem, align 8 %"$ud-registry.eError_111" = alloca i8*, align 8 - %"$ud-registry.eError_4807" = load { i8* (i8*, %String)*, i8* }, { i8* (i8*, %String)*, i8* }* @ud-registry.eError, align 8 - %"$ud-registry.eError_fptr_4808" = extractvalue { i8* (i8*, %String)*, i8* } %"$ud-registry.eError_4807", 0 - %"$ud-registry.eError_envptr_4809" = extractvalue { i8* (i8*, %String)*, i8* } %"$ud-registry.eError_4807", 1 - %"$m_4810" = load %String, %String* %m, align 8 - %"$ud-registry.eError_call_4811" = call i8* %"$ud-registry.eError_fptr_4808"(i8* %"$ud-registry.eError_envptr_4809", %String %"$m_4810"), !dbg !493 - store i8* %"$ud-registry.eError_call_4811", i8** %"$ud-registry.eError_111", align 8, !dbg !493 - %"$$ud-registry.eError_111_4812" = load i8*, i8** %"$ud-registry.eError_111", align 8 - store i8* %"$$ud-registry.eError_111_4812", i8** %e3, align 8, !dbg !493 - %"$e_4813" = load i8*, i8** %e3, align 8 - %"$_literal_cost_call_4815" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Event_446", i8* %"$e_4813") - %"$gasrem_4816" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4817" = icmp ugt i64 %"$_literal_cost_call_4815", %"$gasrem_4816" - br i1 %"$gascmp_4817", label %"$out_of_gas_4818", label %"$have_gas_4819" - -"$out_of_gas_4818": ; preds = %"$have_gas_4805" - call void @_out_of_gas() - br label %"$have_gas_4819" - -"$have_gas_4819": ; preds = %"$out_of_gas_4818", %"$have_gas_4805" - %"$consume_4820" = sub i64 %"$gasrem_4816", %"$_literal_cost_call_4815" - store i64 %"$consume_4820", i64* @_gasrem, align 8 - %"$execptr_load_4821" = load i8*, i8** @_execptr, align 8 - %"$e_4822" = load i8*, i8** %e3, align 8 - call void @_event(i8* %"$execptr_load_4821", %_TyDescrTy_Typ* @"$TyDescr_Event_446", i8* %"$e_4822"), !dbg !494 - br label %"$matchsucc_4641" - -"$empty_default_4645": ; preds = %"$have_gas_4639" - br label %"$matchsucc_4641" - -"$matchsucc_4641": ; preds = %"$have_gas_4819", %"$matchsucc_4736", %"$empty_default_4645" + call void @llvm.dbg.declare(metadata i8** %"$ud-registry.eError_111", metadata !867, metadata !DIExpression()), !dbg !868 + %"$ud-registry.eError_4886" = load { i8* (i8*, %String)*, i8* }, { i8* (i8*, %String)*, i8* }* @ud-registry.eError, align 8 + %"$ud-registry.eError_fptr_4887" = extractvalue { i8* (i8*, %String)*, i8* } %"$ud-registry.eError_4886", 0 + %"$ud-registry.eError_envptr_4888" = extractvalue { i8* (i8*, %String)*, i8* } %"$ud-registry.eError_4886", 1 + %"$m_4889" = load %String, %String* %m, align 8 + %"$ud-registry.eError_call_4890" = call i8* %"$ud-registry.eError_fptr_4887"(i8* %"$ud-registry.eError_envptr_4888", %String %"$m_4889"), !dbg !868 + store i8* %"$ud-registry.eError_call_4890", i8** %"$ud-registry.eError_111", align 8, !dbg !868 + %"$$ud-registry.eError_111_4891" = load i8*, i8** %"$ud-registry.eError_111", align 8 + store i8* %"$$ud-registry.eError_111_4891", i8** %e3, align 8, !dbg !868 + %"$e_4892" = load i8*, i8** %e3, align 8 + %"$_literal_cost_call_4894" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Event_446", i8* %"$e_4892") + %"$gasrem_4895" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4896" = icmp ugt i64 %"$_literal_cost_call_4894", %"$gasrem_4895" + br i1 %"$gascmp_4896", label %"$out_of_gas_4897", label %"$have_gas_4898" + +"$out_of_gas_4897": ; preds = %"$have_gas_4884" + call void @_out_of_gas() + br label %"$have_gas_4898" + +"$have_gas_4898": ; preds = %"$out_of_gas_4897", %"$have_gas_4884" + %"$consume_4899" = sub i64 %"$gasrem_4895", %"$_literal_cost_call_4894" + store i64 %"$consume_4899", i64* @_gasrem, align 8 + %"$execptr_load_4900" = load i8*, i8** @_execptr, align 8 + %"$e_4901" = load i8*, i8** %e3, align 8 + call void @_event(i8* %"$execptr_load_4900", %_TyDescrTy_Typ* @"$TyDescr_Event_446", i8* %"$e_4901"), !dbg !869 + br label %"$matchsucc_4720" + +"$empty_default_4724": ; preds = %"$have_gas_4718" + br label %"$matchsucc_4720" + +"$matchsucc_4720": ; preds = %"$have_gas_4898", %"$matchsucc_4815", %"$empty_default_4724" ret void } -define void @approve(i8* %0) !dbg !495 { -entry: - %"$_amount_4824" = getelementptr i8, i8* %0, i32 0 - %"$_amount_4825" = bitcast i8* %"$_amount_4824" to %Uint128* - %_amount = load %Uint128, %Uint128* %"$_amount_4825", align 8 - %"$_origin_4826" = getelementptr i8, i8* %0, i32 16 - %"$_origin_4827" = bitcast i8* %"$_origin_4826" to [20 x i8]* - %"$_sender_4828" = getelementptr i8, i8* %0, i32 36 - %"$_sender_4829" = bitcast i8* %"$_sender_4828" to [20 x i8]* - %"$node_4830" = getelementptr i8, i8* %0, i32 56 - %"$node_4831" = bitcast i8* %"$node_4830" to [32 x i8]* - %"$address_4832" = getelementptr i8, i8* %0, i32 88 - %"$address_4833" = bitcast i8* %"$address_4832" to [20 x i8]* - call void @"$approve_4580"(%Uint128 %_amount, [20 x i8]* %"$_origin_4827", [20 x i8]* %"$_sender_4829", [32 x i8]* %"$node_4831", [20 x i8]* %"$address_4833"), !dbg !496 +define void @approve(i8* %0) !dbg !870 { +entry: + %"$_amount_4908" = getelementptr i8, i8* %0, i32 0 + %"$_amount_4909" = bitcast i8* %"$_amount_4908" to %Uint128* + %_amount = load %Uint128, %Uint128* %"$_amount_4909", align 8 + %"$_origin_4910" = getelementptr i8, i8* %0, i32 16 + %"$_origin_4911" = bitcast i8* %"$_origin_4910" to [20 x i8]* + %"$_sender_4912" = getelementptr i8, i8* %0, i32 36 + %"$_sender_4913" = bitcast i8* %"$_sender_4912" to [20 x i8]* + %"$node_4914" = getelementptr i8, i8* %0, i32 56 + %"$node_4915" = bitcast i8* %"$node_4914" to [32 x i8]* + %"$address_4916" = getelementptr i8, i8* %0, i32 88 + %"$address_4917" = bitcast i8* %"$address_4916" to [20 x i8]* + call void @"$approve_4659"(%Uint128 %_amount, [20 x i8]* %"$_origin_4911", [20 x i8]* %"$_sender_4913", [32 x i8]* %"$node_4915", [20 x i8]* %"$address_4917"), !dbg !871 ret void } -define internal void @"$approveFor_4834"(%Uint128 %_amount, [20 x i8]* %"$_origin_4835", [20 x i8]* %"$_sender_4836", [20 x i8]* %"$address_4837", %TName_Bool* %isApproved) !dbg !497 { -entry: - %_origin = load [20 x i8], [20 x i8]* %"$_origin_4835", align 1 - %_sender = load [20 x i8], [20 x i8]* %"$_sender_4836", align 1 - %address = load [20 x i8], [20 x i8]* %"$address_4837", align 1 +define internal void @"$approveFor_4918"(%Uint128 %_amount, [20 x i8]* %"$_origin_4919", [20 x i8]* %"$_sender_4920", [20 x i8]* %"$address_4921", %TName_Bool* %isApproved) !dbg !872 { +entry: + %"$isApproved_5123" = alloca %TName_Bool*, align 8 + store %TName_Bool* %isApproved, %TName_Bool** %"$isApproved_5123", align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$isApproved_5123", metadata !873, metadata !DIExpression()), !dbg !874 + %"$address_5122" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$address_4921", [20 x i8]** %"$address_5122", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$address_5122", metadata !875, metadata !DIExpression()), !dbg !876 + %"$_sender_5121" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_sender_4920", [20 x i8]** %"$_sender_5121", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_sender_5121", metadata !877, metadata !DIExpression()), !dbg !878 + %"$_origin_5120" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_origin_4919", [20 x i8]** %"$_origin_5120", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_origin_5120", metadata !879, metadata !DIExpression()), !dbg !878 + %"$_amount_5119" = alloca %Uint128, align 8 + store %Uint128 %_amount, %Uint128* %"$_amount_5119", align 8 + call void @llvm.dbg.declare(metadata %Uint128* %"$_amount_5119", metadata !880, metadata !DIExpression()), !dbg !878 + %_origin = load [20 x i8], [20 x i8]* %"$_origin_4919", align 1 + %_sender = load [20 x i8], [20 x i8]* %"$_sender_4920", align 1 + %address = load [20 x i8], [20 x i8]* %"$address_4921", align 1 %maybeOperators = alloca %"TName_Option_List_(ByStr20)"*, align 8 - %"$indices_buf_4838_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$indices_buf_4838_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_4838_salloc_load", i64 20) - %"$indices_buf_4838_salloc" = bitcast i8* %"$indices_buf_4838_salloc_salloc" to [20 x i8]* - %"$indices_buf_4838" = bitcast [20 x i8]* %"$indices_buf_4838_salloc" to i8* - %"$indices_gep_4839" = getelementptr i8, i8* %"$indices_buf_4838", i32 0 - %indices_cast = bitcast i8* %"$indices_gep_4839" to [20 x i8]* + call void @llvm.dbg.declare(metadata %"TName_Option_List_(ByStr20)"** %maybeOperators, metadata !881, metadata !DIExpression()), !dbg !882 + %"$indices_buf_4922_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$indices_buf_4922_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_4922_salloc_load", i64 20) + %"$indices_buf_4922_salloc" = bitcast i8* %"$indices_buf_4922_salloc_salloc" to [20 x i8]* + %"$indices_buf_4922" = bitcast [20 x i8]* %"$indices_buf_4922_salloc" to i8* + %"$indices_gep_4923" = getelementptr i8, i8* %"$indices_buf_4922", i32 0 + %indices_cast = bitcast i8* %"$indices_gep_4923" to [20 x i8]* store [20 x i8] %_sender, [20 x i8]* %indices_cast, align 1 - %"$execptr_load_4841" = load i8*, i8** @_execptr, align 8 - %"$maybeOperators_call_4842" = call i8* @_fetch_field(i8* %"$execptr_load_4841", i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$operators_4840", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_470", i32 1, i8* %"$indices_buf_4838", i32 1), !dbg !498 - %"$maybeOperators_4843" = bitcast i8* %"$maybeOperators_call_4842" to %"TName_Option_List_(ByStr20)"* - store %"TName_Option_List_(ByStr20)"* %"$maybeOperators_4843", %"TName_Option_List_(ByStr20)"** %maybeOperators, align 8 - %"$maybeOperators_4844" = load %"TName_Option_List_(ByStr20)"*, %"TName_Option_List_(ByStr20)"** %maybeOperators, align 8 - %"$$maybeOperators_4844_4845" = bitcast %"TName_Option_List_(ByStr20)"* %"$maybeOperators_4844" to i8* - %"$_literal_cost_call_4846" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_List_(ByStr20)_462", i8* %"$$maybeOperators_4844_4845") - %"$gasadd_4847" = add i64 %"$_literal_cost_call_4846", 0 - %"$gasadd_4848" = add i64 %"$gasadd_4847", 1 - %"$gasrem_4849" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4850" = icmp ugt i64 %"$gasadd_4848", %"$gasrem_4849" - br i1 %"$gascmp_4850", label %"$out_of_gas_4851", label %"$have_gas_4852" - -"$out_of_gas_4851": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_4852" - -"$have_gas_4852": ; preds = %"$out_of_gas_4851", %entry - %"$consume_4853" = sub i64 %"$gasrem_4849", %"$gasadd_4848" - store i64 %"$consume_4853", i64* @_gasrem, align 8 - %"$gasrem_4854" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4855" = icmp ugt i64 1, %"$gasrem_4854" - br i1 %"$gascmp_4855", label %"$out_of_gas_4856", label %"$have_gas_4857" - -"$out_of_gas_4856": ; preds = %"$have_gas_4852" - call void @_out_of_gas() - br label %"$have_gas_4857" - -"$have_gas_4857": ; preds = %"$out_of_gas_4856", %"$have_gas_4852" - %"$consume_4858" = sub i64 %"$gasrem_4854", 1 - store i64 %"$consume_4858", i64* @_gasrem, align 8 + %"$execptr_load_4925" = load i8*, i8** @_execptr, align 8 + %"$maybeOperators_call_4926" = call i8* @_fetch_field(i8* %"$execptr_load_4925", i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$operators_4924", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_470", i32 1, i8* %"$indices_buf_4922", i32 1), !dbg !882 + %"$maybeOperators_4927" = bitcast i8* %"$maybeOperators_call_4926" to %"TName_Option_List_(ByStr20)"* + store %"TName_Option_List_(ByStr20)"* %"$maybeOperators_4927", %"TName_Option_List_(ByStr20)"** %maybeOperators, align 8 + %"$maybeOperators_4928" = load %"TName_Option_List_(ByStr20)"*, %"TName_Option_List_(ByStr20)"** %maybeOperators, align 8 + %"$$maybeOperators_4928_4929" = bitcast %"TName_Option_List_(ByStr20)"* %"$maybeOperators_4928" to i8* + %"$_literal_cost_call_4930" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_List_(ByStr20)_462", i8* %"$$maybeOperators_4928_4929") + %"$gasadd_4931" = add i64 %"$_literal_cost_call_4930", 0 + %"$gasadd_4932" = add i64 %"$gasadd_4931", 1 + %"$gasrem_4933" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4934" = icmp ugt i64 %"$gasadd_4932", %"$gasrem_4933" + br i1 %"$gascmp_4934", label %"$out_of_gas_4935", label %"$have_gas_4936" + +"$out_of_gas_4935": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_4936" + +"$have_gas_4936": ; preds = %"$out_of_gas_4935", %entry + %"$consume_4937" = sub i64 %"$gasrem_4933", %"$gasadd_4932" + store i64 %"$consume_4937", i64* @_gasrem, align 8 + %"$gasrem_4938" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4939" = icmp ugt i64 1, %"$gasrem_4938" + br i1 %"$gascmp_4939", label %"$out_of_gas_4940", label %"$have_gas_4941" + +"$out_of_gas_4940": ; preds = %"$have_gas_4936" + call void @_out_of_gas() + br label %"$have_gas_4941" + +"$have_gas_4941": ; preds = %"$out_of_gas_4940", %"$have_gas_4936" + %"$consume_4942" = sub i64 %"$gasrem_4938", 1 + store i64 %"$consume_4942", i64* @_gasrem, align 8 %currentOperators = alloca %TName_List_ByStr20*, align 8 - %"$gasrem_4859" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4860" = icmp ugt i64 2, %"$gasrem_4859" - br i1 %"$gascmp_4860", label %"$out_of_gas_4861", label %"$have_gas_4862" - -"$out_of_gas_4861": ; preds = %"$have_gas_4857" - call void @_out_of_gas() - br label %"$have_gas_4862" - -"$have_gas_4862": ; preds = %"$out_of_gas_4861", %"$have_gas_4857" - %"$consume_4863" = sub i64 %"$gasrem_4859", 2 - store i64 %"$consume_4863", i64* @_gasrem, align 8 - %"$maybeOperators_4865" = load %"TName_Option_List_(ByStr20)"*, %"TName_Option_List_(ByStr20)"** %maybeOperators, align 8 - %"$maybeOperators_tag_4866" = getelementptr inbounds %"TName_Option_List_(ByStr20)", %"TName_Option_List_(ByStr20)"* %"$maybeOperators_4865", i32 0, i32 0 - %"$maybeOperators_tag_4867" = load i8, i8* %"$maybeOperators_tag_4866", align 1 - switch i8 %"$maybeOperators_tag_4867", label %"$empty_default_4868" [ - i8 1, label %"$None_4869" - i8 0, label %"$Some_4877" - ], !dbg !499 - -"$None_4869": ; preds = %"$have_gas_4862" - %"$maybeOperators_4870" = bitcast %"TName_Option_List_(ByStr20)"* %"$maybeOperators_4865" to %"CName_None_List_(ByStr20)"* - %"$gasrem_4871" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4872" = icmp ugt i64 1, %"$gasrem_4871" - br i1 %"$gascmp_4872", label %"$out_of_gas_4873", label %"$have_gas_4874" - -"$out_of_gas_4873": ; preds = %"$None_4869" - call void @_out_of_gas() - br label %"$have_gas_4874" - -"$have_gas_4874": ; preds = %"$out_of_gas_4873", %"$None_4869" - %"$consume_4875" = sub i64 %"$gasrem_4871", 1 - store i64 %"$consume_4875", i64* @_gasrem, align 8 - %"$ud-registry.nilByStr20_4876" = load %TName_List_ByStr20*, %TName_List_ByStr20** @ud-registry.nilByStr20, align 8 - store %TName_List_ByStr20* %"$ud-registry.nilByStr20_4876", %TName_List_ByStr20** %currentOperators, align 8, !dbg !500 - br label %"$matchsucc_4864" - -"$Some_4877": ; preds = %"$have_gas_4862" - %"$maybeOperators_4878" = bitcast %"TName_Option_List_(ByStr20)"* %"$maybeOperators_4865" to %"CName_Some_List_(ByStr20)"* - %"$ops_gep_4879" = getelementptr inbounds %"CName_Some_List_(ByStr20)", %"CName_Some_List_(ByStr20)"* %"$maybeOperators_4878", i32 0, i32 1 - %"$ops_load_4880" = load %TName_List_ByStr20*, %TName_List_ByStr20** %"$ops_gep_4879", align 8 + call void @llvm.dbg.declare(metadata %TName_List_ByStr20** %currentOperators, metadata !883, metadata !DIExpression()), !dbg !884 + %"$gasrem_4943" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4944" = icmp ugt i64 2, %"$gasrem_4943" + br i1 %"$gascmp_4944", label %"$out_of_gas_4945", label %"$have_gas_4946" + +"$out_of_gas_4945": ; preds = %"$have_gas_4941" + call void @_out_of_gas() + br label %"$have_gas_4946" + +"$have_gas_4946": ; preds = %"$out_of_gas_4945", %"$have_gas_4941" + %"$consume_4947" = sub i64 %"$gasrem_4943", 2 + store i64 %"$consume_4947", i64* @_gasrem, align 8 + %"$maybeOperators_4949" = load %"TName_Option_List_(ByStr20)"*, %"TName_Option_List_(ByStr20)"** %maybeOperators, align 8 + %"$maybeOperators_tag_4950" = getelementptr inbounds %"TName_Option_List_(ByStr20)", %"TName_Option_List_(ByStr20)"* %"$maybeOperators_4949", i32 0, i32 0 + %"$maybeOperators_tag_4951" = load i8, i8* %"$maybeOperators_tag_4950", align 1 + switch i8 %"$maybeOperators_tag_4951", label %"$empty_default_4952" [ + i8 1, label %"$None_4953" + i8 0, label %"$Some_4961" + ], !dbg !885 + +"$None_4953": ; preds = %"$have_gas_4946" + %"$maybeOperators_4954" = bitcast %"TName_Option_List_(ByStr20)"* %"$maybeOperators_4949" to %"CName_None_List_(ByStr20)"* + %"$gasrem_4955" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4956" = icmp ugt i64 1, %"$gasrem_4955" + br i1 %"$gascmp_4956", label %"$out_of_gas_4957", label %"$have_gas_4958" + +"$out_of_gas_4957": ; preds = %"$None_4953" + call void @_out_of_gas() + br label %"$have_gas_4958" + +"$have_gas_4958": ; preds = %"$out_of_gas_4957", %"$None_4953" + %"$consume_4959" = sub i64 %"$gasrem_4955", 1 + store i64 %"$consume_4959", i64* @_gasrem, align 8 + %"$ud-registry.nilByStr20_4960" = load %TName_List_ByStr20*, %TName_List_ByStr20** @ud-registry.nilByStr20, align 8 + store %TName_List_ByStr20* %"$ud-registry.nilByStr20_4960", %TName_List_ByStr20** %currentOperators, align 8, !dbg !886 + br label %"$matchsucc_4948" + +"$Some_4961": ; preds = %"$have_gas_4946" + %"$maybeOperators_4962" = bitcast %"TName_Option_List_(ByStr20)"* %"$maybeOperators_4949" to %"CName_Some_List_(ByStr20)"* + %"$ops_gep_4963" = getelementptr inbounds %"CName_Some_List_(ByStr20)", %"CName_Some_List_(ByStr20)"* %"$maybeOperators_4962", i32 0, i32 1 + %"$ops_load_4964" = load %TName_List_ByStr20*, %TName_List_ByStr20** %"$ops_gep_4963", align 8 %ops = alloca %TName_List_ByStr20*, align 8 - store %TName_List_ByStr20* %"$ops_load_4880", %TName_List_ByStr20** %ops, align 8 - %"$gasrem_4881" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4882" = icmp ugt i64 1, %"$gasrem_4881" - br i1 %"$gascmp_4882", label %"$out_of_gas_4883", label %"$have_gas_4884" + store %TName_List_ByStr20* %"$ops_load_4964", %TName_List_ByStr20** %ops, align 8 + %"$gasrem_4965" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4966" = icmp ugt i64 1, %"$gasrem_4965" + br i1 %"$gascmp_4966", label %"$out_of_gas_4967", label %"$have_gas_4968" -"$out_of_gas_4883": ; preds = %"$Some_4877" +"$out_of_gas_4967": ; preds = %"$Some_4961" call void @_out_of_gas() - br label %"$have_gas_4884" + br label %"$have_gas_4968" -"$have_gas_4884": ; preds = %"$out_of_gas_4883", %"$Some_4877" - %"$consume_4885" = sub i64 %"$gasrem_4881", 1 - store i64 %"$consume_4885", i64* @_gasrem, align 8 - %"$ops_4886" = load %TName_List_ByStr20*, %TName_List_ByStr20** %ops, align 8 - store %TName_List_ByStr20* %"$ops_4886", %TName_List_ByStr20** %currentOperators, align 8, !dbg !503 - br label %"$matchsucc_4864" +"$have_gas_4968": ; preds = %"$out_of_gas_4967", %"$Some_4961" + %"$consume_4969" = sub i64 %"$gasrem_4965", 1 + store i64 %"$consume_4969", i64* @_gasrem, align 8 + %"$ops_4970" = load %TName_List_ByStr20*, %TName_List_ByStr20** %ops, align 8 + store %TName_List_ByStr20* %"$ops_4970", %TName_List_ByStr20** %currentOperators, align 8, !dbg !889 + br label %"$matchsucc_4948" -"$empty_default_4868": ; preds = %"$have_gas_4862" - br label %"$matchsucc_4864" +"$empty_default_4952": ; preds = %"$have_gas_4946" + br label %"$matchsucc_4948" -"$matchsucc_4864": ; preds = %"$have_gas_4884", %"$have_gas_4874", %"$empty_default_4868" - %"$gasrem_4887" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4888" = icmp ugt i64 1, %"$gasrem_4887" - br i1 %"$gascmp_4888", label %"$out_of_gas_4889", label %"$have_gas_4890" +"$matchsucc_4948": ; preds = %"$have_gas_4968", %"$have_gas_4958", %"$empty_default_4952" + %"$gasrem_4971" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4972" = icmp ugt i64 1, %"$gasrem_4971" + br i1 %"$gascmp_4972", label %"$out_of_gas_4973", label %"$have_gas_4974" -"$out_of_gas_4889": ; preds = %"$matchsucc_4864" +"$out_of_gas_4973": ; preds = %"$matchsucc_4948" call void @_out_of_gas() - br label %"$have_gas_4890" + br label %"$have_gas_4974" -"$have_gas_4890": ; preds = %"$out_of_gas_4889", %"$matchsucc_4864" - %"$consume_4891" = sub i64 %"$gasrem_4887", 1 - store i64 %"$consume_4891", i64* @_gasrem, align 8 +"$have_gas_4974": ; preds = %"$out_of_gas_4973", %"$matchsucc_4948" + %"$consume_4975" = sub i64 %"$gasrem_4971", 1 + store i64 %"$consume_4975", i64* @_gasrem, align 8 %needsToChange = alloca %TName_Bool*, align 8 - %"$gasrem_4892" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4893" = icmp ugt i64 1, %"$gasrem_4892" - br i1 %"$gascmp_4893", label %"$out_of_gas_4894", label %"$have_gas_4895" + call void @llvm.dbg.declare(metadata %TName_Bool** %needsToChange, metadata !891, metadata !DIExpression()), !dbg !892 + %"$gasrem_4976" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4977" = icmp ugt i64 1, %"$gasrem_4976" + br i1 %"$gascmp_4977", label %"$out_of_gas_4978", label %"$have_gas_4979" -"$out_of_gas_4894": ; preds = %"$have_gas_4890" +"$out_of_gas_4978": ; preds = %"$have_gas_4974" call void @_out_of_gas() - br label %"$have_gas_4895" + br label %"$have_gas_4979" -"$have_gas_4895": ; preds = %"$out_of_gas_4894", %"$have_gas_4890" - %"$consume_4896" = sub i64 %"$gasrem_4892", 1 - store i64 %"$consume_4896", i64* @_gasrem, align 8 +"$have_gas_4979": ; preds = %"$out_of_gas_4978", %"$have_gas_4974" + %"$consume_4980" = sub i64 %"$gasrem_4976", 1 + store i64 %"$consume_4980", i64* @_gasrem, align 8 %b = alloca %TName_Bool*, align 8 - %"$gasrem_4897" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4898" = icmp ugt i64 1, %"$gasrem_4897" - br i1 %"$gascmp_4898", label %"$out_of_gas_4899", label %"$have_gas_4900" + call void @llvm.dbg.declare(metadata %TName_Bool** %b, metadata !893, metadata !DIExpression()), !dbg !894 + %"$gasrem_4981" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4982" = icmp ugt i64 1, %"$gasrem_4981" + br i1 %"$gascmp_4982", label %"$out_of_gas_4983", label %"$have_gas_4984" -"$out_of_gas_4899": ; preds = %"$have_gas_4895" +"$out_of_gas_4983": ; preds = %"$have_gas_4979" call void @_out_of_gas() - br label %"$have_gas_4900" + br label %"$have_gas_4984" -"$have_gas_4900": ; preds = %"$out_of_gas_4899", %"$have_gas_4895" - %"$consume_4901" = sub i64 %"$gasrem_4897", 1 - store i64 %"$consume_4901", i64* @_gasrem, align 8 +"$have_gas_4984": ; preds = %"$out_of_gas_4983", %"$have_gas_4979" + %"$consume_4985" = sub i64 %"$gasrem_4981", 1 + store i64 %"$consume_4985", i64* @_gasrem, align 8 %"$ud-registry.listByStr20Excludes_118" = alloca { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, align 8 - %"$ud-registry.listByStr20Excludes_4902" = 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_4903" = extractvalue { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } %"$ud-registry.listByStr20Excludes_4902", 0 - %"$ud-registry.listByStr20Excludes_envptr_4904" = extractvalue { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } %"$ud-registry.listByStr20Excludes_4902", 1 - %"$currentOperators_4905" = load %TName_List_ByStr20*, %TName_List_ByStr20** %currentOperators, align 8 - %"$ud-registry.listByStr20Excludes_call_4906" = call { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$ud-registry.listByStr20Excludes_fptr_4903"(i8* %"$ud-registry.listByStr20Excludes_envptr_4904", %TName_List_ByStr20* %"$currentOperators_4905"), !dbg !505 - store { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$ud-registry.listByStr20Excludes_call_4906", { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %"$ud-registry.listByStr20Excludes_118", align 8, !dbg !505 + %"$ud-registry.listByStr20Excludes_4986" = 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_4987" = extractvalue { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } %"$ud-registry.listByStr20Excludes_4986", 0 + %"$ud-registry.listByStr20Excludes_envptr_4988" = extractvalue { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } %"$ud-registry.listByStr20Excludes_4986", 1 + %"$currentOperators_4989" = load %TName_List_ByStr20*, %TName_List_ByStr20** %currentOperators, align 8 + %"$ud-registry.listByStr20Excludes_call_4990" = call { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$ud-registry.listByStr20Excludes_fptr_4987"(i8* %"$ud-registry.listByStr20Excludes_envptr_4988", %TName_List_ByStr20* %"$currentOperators_4989"), !dbg !895 + store { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$ud-registry.listByStr20Excludes_call_4990", { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %"$ud-registry.listByStr20Excludes_118", align 8, !dbg !895 %"$ud-registry.listByStr20Excludes_119" = alloca %TName_Bool*, align 8 - %"$$ud-registry.listByStr20Excludes_118_4907" = load { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %"$ud-registry.listByStr20Excludes_118", align 8 - %"$$ud-registry.listByStr20Excludes_118_fptr_4908" = extractvalue { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.listByStr20Excludes_118_4907", 0 - %"$$ud-registry.listByStr20Excludes_118_envptr_4909" = extractvalue { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.listByStr20Excludes_118_4907", 1 - %"$$ud-registry.listByStr20Excludes_118_address_4910" = alloca [20 x i8], align 1 - store [20 x i8] %address, [20 x i8]* %"$$ud-registry.listByStr20Excludes_118_address_4910", align 1 - %"$$ud-registry.listByStr20Excludes_118_call_4911" = call %TName_Bool* %"$$ud-registry.listByStr20Excludes_118_fptr_4908"(i8* %"$$ud-registry.listByStr20Excludes_118_envptr_4909", [20 x i8]* %"$$ud-registry.listByStr20Excludes_118_address_4910"), !dbg !505 - store %TName_Bool* %"$$ud-registry.listByStr20Excludes_118_call_4911", %TName_Bool** %"$ud-registry.listByStr20Excludes_119", align 8, !dbg !505 - %"$$ud-registry.listByStr20Excludes_119_4912" = load %TName_Bool*, %TName_Bool** %"$ud-registry.listByStr20Excludes_119", align 8 - store %TName_Bool* %"$$ud-registry.listByStr20Excludes_119_4912", %TName_Bool** %b, align 8, !dbg !505 - %"$gasrem_4913" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4914" = icmp ugt i64 1, %"$gasrem_4913" - br i1 %"$gascmp_4914", label %"$out_of_gas_4915", label %"$have_gas_4916" - -"$out_of_gas_4915": ; preds = %"$have_gas_4900" - call void @_out_of_gas() - br label %"$have_gas_4916" - -"$have_gas_4916": ; preds = %"$out_of_gas_4915", %"$have_gas_4900" - %"$consume_4917" = sub i64 %"$gasrem_4913", 1 - store i64 %"$consume_4917", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$ud-registry.listByStr20Excludes_119", metadata !896, metadata !DIExpression()), !dbg !895 + %"$$ud-registry.listByStr20Excludes_118_4991" = load { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %"$ud-registry.listByStr20Excludes_118", align 8 + %"$$ud-registry.listByStr20Excludes_118_fptr_4992" = extractvalue { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.listByStr20Excludes_118_4991", 0 + %"$$ud-registry.listByStr20Excludes_118_envptr_4993" = extractvalue { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.listByStr20Excludes_118_4991", 1 + %"$$ud-registry.listByStr20Excludes_118_address_4994" = alloca [20 x i8], align 1 + store [20 x i8] %address, [20 x i8]* %"$$ud-registry.listByStr20Excludes_118_address_4994", align 1 + %"$$ud-registry.listByStr20Excludes_118_call_4995" = call %TName_Bool* %"$$ud-registry.listByStr20Excludes_118_fptr_4992"(i8* %"$$ud-registry.listByStr20Excludes_118_envptr_4993", [20 x i8]* %"$$ud-registry.listByStr20Excludes_118_address_4994"), !dbg !895 + store %TName_Bool* %"$$ud-registry.listByStr20Excludes_118_call_4995", %TName_Bool** %"$ud-registry.listByStr20Excludes_119", align 8, !dbg !895 + %"$$ud-registry.listByStr20Excludes_119_4996" = load %TName_Bool*, %TName_Bool** %"$ud-registry.listByStr20Excludes_119", align 8 + store %TName_Bool* %"$$ud-registry.listByStr20Excludes_119_4996", %TName_Bool** %b, align 8, !dbg !895 + %"$gasrem_4997" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4998" = icmp ugt i64 1, %"$gasrem_4997" + br i1 %"$gascmp_4998", label %"$out_of_gas_4999", label %"$have_gas_5000" + +"$out_of_gas_4999": ; preds = %"$have_gas_4984" + call void @_out_of_gas() + br label %"$have_gas_5000" + +"$have_gas_5000": ; preds = %"$out_of_gas_4999", %"$have_gas_4984" + %"$consume_5001" = sub i64 %"$gasrem_4997", 1 + store i64 %"$consume_5001", i64* @_gasrem, align 8 %"$ud-registry.xandb_120" = alloca { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, align 8 - %"$ud-registry.xandb_4918" = 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_4919" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$ud-registry.xandb_4918", 0 - %"$ud-registry.xandb_envptr_4920" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$ud-registry.xandb_4918", 1 - %"$b_4921" = load %TName_Bool*, %TName_Bool** %b, align 8 - %"$ud-registry.xandb_call_4922" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$ud-registry.xandb_fptr_4919"(i8* %"$ud-registry.xandb_envptr_4920", %TName_Bool* %"$b_4921"), !dbg !506 - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$ud-registry.xandb_call_4922", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$ud-registry.xandb_120", align 8, !dbg !506 + %"$ud-registry.xandb_5002" = 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_5003" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$ud-registry.xandb_5002", 0 + %"$ud-registry.xandb_envptr_5004" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$ud-registry.xandb_5002", 1 + %"$b_5005" = load %TName_Bool*, %TName_Bool** %b, align 8 + %"$ud-registry.xandb_call_5006" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$ud-registry.xandb_fptr_5003"(i8* %"$ud-registry.xandb_envptr_5004", %TName_Bool* %"$b_5005"), !dbg !897 + store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$ud-registry.xandb_call_5006", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$ud-registry.xandb_120", align 8, !dbg !897 %"$ud-registry.xandb_121" = alloca %TName_Bool*, align 8 - %"$$ud-registry.xandb_120_4923" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$ud-registry.xandb_120", align 8 - %"$$ud-registry.xandb_120_fptr_4924" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$ud-registry.xandb_120_4923", 0 - %"$$ud-registry.xandb_120_envptr_4925" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$ud-registry.xandb_120_4923", 1 - %"$$ud-registry.xandb_120_call_4926" = call %TName_Bool* %"$$ud-registry.xandb_120_fptr_4924"(i8* %"$$ud-registry.xandb_120_envptr_4925", %TName_Bool* %isApproved), !dbg !506 - store %TName_Bool* %"$$ud-registry.xandb_120_call_4926", %TName_Bool** %"$ud-registry.xandb_121", align 8, !dbg !506 - %"$$ud-registry.xandb_121_4927" = load %TName_Bool*, %TName_Bool** %"$ud-registry.xandb_121", align 8 - store %TName_Bool* %"$$ud-registry.xandb_121_4927", %TName_Bool** %needsToChange, align 8, !dbg !506 - %"$gasrem_4928" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4929" = icmp ugt i64 2, %"$gasrem_4928" - br i1 %"$gascmp_4929", label %"$out_of_gas_4930", label %"$have_gas_4931" - -"$out_of_gas_4930": ; preds = %"$have_gas_4916" - call void @_out_of_gas() - br label %"$have_gas_4931" - -"$have_gas_4931": ; preds = %"$out_of_gas_4930", %"$have_gas_4916" - %"$consume_4932" = sub i64 %"$gasrem_4928", 2 - store i64 %"$consume_4932", i64* @_gasrem, align 8 - %"$needsToChange_4934" = load %TName_Bool*, %TName_Bool** %needsToChange, align 8 - %"$needsToChange_tag_4935" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$needsToChange_4934", i32 0, i32 0 - %"$needsToChange_tag_4936" = load i8, i8* %"$needsToChange_tag_4935", align 1 - switch i8 %"$needsToChange_tag_4936", label %"$default_4937" [ - i8 0, label %"$True_4938" - ], !dbg !507 - -"$True_4938": ; preds = %"$have_gas_4931" - %"$needsToChange_4939" = bitcast %TName_Bool* %"$needsToChange_4934" to %CName_True* - %"$gasrem_4940" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4941" = icmp ugt i64 1, %"$gasrem_4940" - br i1 %"$gascmp_4941", label %"$out_of_gas_4942", label %"$have_gas_4943" - -"$out_of_gas_4942": ; preds = %"$True_4938" - call void @_out_of_gas() - br label %"$have_gas_4943" - -"$have_gas_4943": ; preds = %"$out_of_gas_4942", %"$True_4938" - %"$consume_4944" = sub i64 %"$gasrem_4940", 1 - store i64 %"$consume_4944", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$ud-registry.xandb_121", metadata !898, metadata !DIExpression()), !dbg !897 + %"$$ud-registry.xandb_120_5007" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$ud-registry.xandb_120", align 8 + %"$$ud-registry.xandb_120_fptr_5008" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$ud-registry.xandb_120_5007", 0 + %"$$ud-registry.xandb_120_envptr_5009" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$ud-registry.xandb_120_5007", 1 + %"$$ud-registry.xandb_120_call_5010" = call %TName_Bool* %"$$ud-registry.xandb_120_fptr_5008"(i8* %"$$ud-registry.xandb_120_envptr_5009", %TName_Bool* %isApproved), !dbg !897 + store %TName_Bool* %"$$ud-registry.xandb_120_call_5010", %TName_Bool** %"$ud-registry.xandb_121", align 8, !dbg !897 + %"$$ud-registry.xandb_121_5011" = load %TName_Bool*, %TName_Bool** %"$ud-registry.xandb_121", align 8 + store %TName_Bool* %"$$ud-registry.xandb_121_5011", %TName_Bool** %needsToChange, align 8, !dbg !897 + %"$gasrem_5012" = load i64, i64* @_gasrem, align 8 + %"$gascmp_5013" = icmp ugt i64 2, %"$gasrem_5012" + br i1 %"$gascmp_5013", label %"$out_of_gas_5014", label %"$have_gas_5015" + +"$out_of_gas_5014": ; preds = %"$have_gas_5000" + call void @_out_of_gas() + br label %"$have_gas_5015" + +"$have_gas_5015": ; preds = %"$out_of_gas_5014", %"$have_gas_5000" + %"$consume_5016" = sub i64 %"$gasrem_5012", 2 + store i64 %"$consume_5016", i64* @_gasrem, align 8 + %"$needsToChange_5018" = load %TName_Bool*, %TName_Bool** %needsToChange, align 8 + %"$needsToChange_tag_5019" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$needsToChange_5018", i32 0, i32 0 + %"$needsToChange_tag_5020" = load i8, i8* %"$needsToChange_tag_5019", align 1 + switch i8 %"$needsToChange_tag_5020", label %"$default_5021" [ + i8 0, label %"$True_5022" + ], !dbg !899 + +"$True_5022": ; preds = %"$have_gas_5015" + %"$needsToChange_5023" = bitcast %TName_Bool* %"$needsToChange_5018" to %CName_True* + %"$gasrem_5024" = load i64, i64* @_gasrem, align 8 + %"$gascmp_5025" = icmp ugt i64 1, %"$gasrem_5024" + br i1 %"$gascmp_5025", label %"$out_of_gas_5026", label %"$have_gas_5027" + +"$out_of_gas_5026": ; preds = %"$True_5022" + call void @_out_of_gas() + br label %"$have_gas_5027" + +"$have_gas_5027": ; preds = %"$out_of_gas_5026", %"$True_5022" + %"$consume_5028" = sub i64 %"$gasrem_5024", 1 + store i64 %"$consume_5028", i64* @_gasrem, align 8 %newOperators = alloca %TName_List_ByStr20*, align 8 - %"$gasrem_4945" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4946" = icmp ugt i64 2, %"$gasrem_4945" - br i1 %"$gascmp_4946", label %"$out_of_gas_4947", label %"$have_gas_4948" - -"$out_of_gas_4947": ; preds = %"$have_gas_4943" - call void @_out_of_gas() - br label %"$have_gas_4948" - -"$have_gas_4948": ; preds = %"$out_of_gas_4947", %"$have_gas_4943" - %"$consume_4949" = sub i64 %"$gasrem_4945", 2 - store i64 %"$consume_4949", i64* @_gasrem, align 8 - %"$isApproved_tag_4951" = getelementptr inbounds %TName_Bool, %TName_Bool* %isApproved, i32 0, i32 0 - %"$isApproved_tag_4952" = load i8, i8* %"$isApproved_tag_4951", align 1 - switch i8 %"$isApproved_tag_4952", label %"$empty_default_4953" [ - i8 0, label %"$True_4954" - i8 1, label %"$False_4967" - ], !dbg !508 - -"$True_4954": ; preds = %"$have_gas_4948" - %"$isApproved_4955" = bitcast %TName_Bool* %isApproved to %CName_True* - %"$gasrem_4956" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4957" = icmp ugt i64 1, %"$gasrem_4956" - br i1 %"$gascmp_4957", label %"$out_of_gas_4958", label %"$have_gas_4959" - -"$out_of_gas_4958": ; preds = %"$True_4954" - call void @_out_of_gas() - br label %"$have_gas_4959" - -"$have_gas_4959": ; preds = %"$out_of_gas_4958", %"$True_4954" - %"$consume_4960" = sub i64 %"$gasrem_4956", 1 - store i64 %"$consume_4960", i64* @_gasrem, align 8 - %"$currentOperators_4961" = load %TName_List_ByStr20*, %TName_List_ByStr20** %currentOperators, align 8 - %"$adtval_4962_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_4962_salloc" = call i8* @_salloc(i8* %"$adtval_4962_load", i64 29) - %"$adtval_4962" = bitcast i8* %"$adtval_4962_salloc" to %CName_Cons_ByStr20* - %"$adtgep_4963" = getelementptr inbounds %CName_Cons_ByStr20, %CName_Cons_ByStr20* %"$adtval_4962", i32 0, i32 0 - store i8 0, i8* %"$adtgep_4963", align 1 - %"$adtgep_4964" = getelementptr inbounds %CName_Cons_ByStr20, %CName_Cons_ByStr20* %"$adtval_4962", i32 0, i32 1 - store [20 x i8] %address, [20 x i8]* %"$adtgep_4964", align 1 - %"$adtgep_4965" = getelementptr inbounds %CName_Cons_ByStr20, %CName_Cons_ByStr20* %"$adtval_4962", i32 0, i32 2 - store %TName_List_ByStr20* %"$currentOperators_4961", %TName_List_ByStr20** %"$adtgep_4965", align 8 - %"$adtptr_4966" = bitcast %CName_Cons_ByStr20* %"$adtval_4962" to %TName_List_ByStr20* - store %TName_List_ByStr20* %"$adtptr_4966", %TName_List_ByStr20** %newOperators, align 8, !dbg !511 - br label %"$matchsucc_4950" - -"$False_4967": ; preds = %"$have_gas_4948" - %"$isApproved_4968" = bitcast %TName_Bool* %isApproved to %CName_False* - %"$gasrem_4969" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4970" = icmp ugt i64 1, %"$gasrem_4969" - br i1 %"$gascmp_4970", label %"$out_of_gas_4971", label %"$have_gas_4972" - -"$out_of_gas_4971": ; preds = %"$False_4967" - call void @_out_of_gas() - br label %"$have_gas_4972" - -"$have_gas_4972": ; preds = %"$out_of_gas_4971", %"$False_4967" - %"$consume_4973" = sub i64 %"$gasrem_4969", 1 - store i64 %"$consume_4973", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_List_ByStr20** %newOperators, metadata !900, metadata !DIExpression()), !dbg !903 + %"$gasrem_5029" = load i64, i64* @_gasrem, align 8 + %"$gascmp_5030" = icmp ugt i64 2, %"$gasrem_5029" + br i1 %"$gascmp_5030", label %"$out_of_gas_5031", label %"$have_gas_5032" + +"$out_of_gas_5031": ; preds = %"$have_gas_5027" + call void @_out_of_gas() + br label %"$have_gas_5032" + +"$have_gas_5032": ; preds = %"$out_of_gas_5031", %"$have_gas_5027" + %"$consume_5033" = sub i64 %"$gasrem_5029", 2 + store i64 %"$consume_5033", i64* @_gasrem, align 8 + %"$isApproved_tag_5035" = getelementptr inbounds %TName_Bool, %TName_Bool* %isApproved, i32 0, i32 0 + %"$isApproved_tag_5036" = load i8, i8* %"$isApproved_tag_5035", align 1 + switch i8 %"$isApproved_tag_5036", label %"$empty_default_5037" [ + i8 0, label %"$True_5038" + i8 1, label %"$False_5051" + ], !dbg !904 + +"$True_5038": ; preds = %"$have_gas_5032" + %"$isApproved_5039" = bitcast %TName_Bool* %isApproved to %CName_True* + %"$gasrem_5040" = load i64, i64* @_gasrem, align 8 + %"$gascmp_5041" = icmp ugt i64 1, %"$gasrem_5040" + br i1 %"$gascmp_5041", label %"$out_of_gas_5042", label %"$have_gas_5043" + +"$out_of_gas_5042": ; preds = %"$True_5038" + call void @_out_of_gas() + br label %"$have_gas_5043" + +"$have_gas_5043": ; preds = %"$out_of_gas_5042", %"$True_5038" + %"$consume_5044" = sub i64 %"$gasrem_5040", 1 + store i64 %"$consume_5044", i64* @_gasrem, align 8 + %"$currentOperators_5045" = load %TName_List_ByStr20*, %TName_List_ByStr20** %currentOperators, align 8 + %"$adtval_5046_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_5046_salloc" = call i8* @_salloc(i8* %"$adtval_5046_load", i64 29) + %"$adtval_5046" = bitcast i8* %"$adtval_5046_salloc" to %CName_Cons_ByStr20* + %"$adtgep_5047" = getelementptr inbounds %CName_Cons_ByStr20, %CName_Cons_ByStr20* %"$adtval_5046", i32 0, i32 0 + store i8 0, i8* %"$adtgep_5047", align 1 + %"$adtgep_5048" = getelementptr inbounds %CName_Cons_ByStr20, %CName_Cons_ByStr20* %"$adtval_5046", i32 0, i32 1 + store [20 x i8] %address, [20 x i8]* %"$adtgep_5048", align 1 + %"$adtgep_5049" = getelementptr inbounds %CName_Cons_ByStr20, %CName_Cons_ByStr20* %"$adtval_5046", i32 0, i32 2 + store %TName_List_ByStr20* %"$currentOperators_5045", %TName_List_ByStr20** %"$adtgep_5049", align 8 + %"$adtptr_5050" = bitcast %CName_Cons_ByStr20* %"$adtval_5046" to %TName_List_ByStr20* + store %TName_List_ByStr20* %"$adtptr_5050", %TName_List_ByStr20** %newOperators, align 8, !dbg !905 + br label %"$matchsucc_5034" + +"$False_5051": ; preds = %"$have_gas_5032" + %"$isApproved_5052" = bitcast %TName_Bool* %isApproved to %CName_False* + %"$gasrem_5053" = load i64, i64* @_gasrem, align 8 + %"$gascmp_5054" = icmp ugt i64 1, %"$gasrem_5053" + br i1 %"$gascmp_5054", label %"$out_of_gas_5055", label %"$have_gas_5056" + +"$out_of_gas_5055": ; preds = %"$False_5051" + call void @_out_of_gas() + br label %"$have_gas_5056" + +"$have_gas_5056": ; preds = %"$out_of_gas_5055", %"$False_5051" + %"$consume_5057" = sub i64 %"$gasrem_5053", 1 + store i64 %"$consume_5057", i64* @_gasrem, align 8 %"$ud-registry.listByStr20FilterOut_116" = alloca { %TName_List_ByStr20* (i8*, [20 x i8]*)*, i8* }, align 8 - %"$ud-registry.listByStr20FilterOut_4974" = 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_4975" = extractvalue { { %TName_List_ByStr20* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } %"$ud-registry.listByStr20FilterOut_4974", 0 - %"$ud-registry.listByStr20FilterOut_envptr_4976" = extractvalue { { %TName_List_ByStr20* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } %"$ud-registry.listByStr20FilterOut_4974", 1 - %"$currentOperators_4977" = load %TName_List_ByStr20*, %TName_List_ByStr20** %currentOperators, align 8 - %"$ud-registry.listByStr20FilterOut_call_4978" = call { %TName_List_ByStr20* (i8*, [20 x i8]*)*, i8* } %"$ud-registry.listByStr20FilterOut_fptr_4975"(i8* %"$ud-registry.listByStr20FilterOut_envptr_4976", %TName_List_ByStr20* %"$currentOperators_4977"), !dbg !514 - store { %TName_List_ByStr20* (i8*, [20 x i8]*)*, i8* } %"$ud-registry.listByStr20FilterOut_call_4978", { %TName_List_ByStr20* (i8*, [20 x i8]*)*, i8* }* %"$ud-registry.listByStr20FilterOut_116", align 8, !dbg !514 + %"$ud-registry.listByStr20FilterOut_5058" = 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_5059" = extractvalue { { %TName_List_ByStr20* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } %"$ud-registry.listByStr20FilterOut_5058", 0 + %"$ud-registry.listByStr20FilterOut_envptr_5060" = extractvalue { { %TName_List_ByStr20* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } %"$ud-registry.listByStr20FilterOut_5058", 1 + %"$currentOperators_5061" = load %TName_List_ByStr20*, %TName_List_ByStr20** %currentOperators, align 8 + %"$ud-registry.listByStr20FilterOut_call_5062" = call { %TName_List_ByStr20* (i8*, [20 x i8]*)*, i8* } %"$ud-registry.listByStr20FilterOut_fptr_5059"(i8* %"$ud-registry.listByStr20FilterOut_envptr_5060", %TName_List_ByStr20* %"$currentOperators_5061"), !dbg !908 + store { %TName_List_ByStr20* (i8*, [20 x i8]*)*, i8* } %"$ud-registry.listByStr20FilterOut_call_5062", { %TName_List_ByStr20* (i8*, [20 x i8]*)*, i8* }* %"$ud-registry.listByStr20FilterOut_116", align 8, !dbg !908 %"$ud-registry.listByStr20FilterOut_117" = alloca %TName_List_ByStr20*, align 8 - %"$$ud-registry.listByStr20FilterOut_116_4979" = load { %TName_List_ByStr20* (i8*, [20 x i8]*)*, i8* }, { %TName_List_ByStr20* (i8*, [20 x i8]*)*, i8* }* %"$ud-registry.listByStr20FilterOut_116", align 8 - %"$$ud-registry.listByStr20FilterOut_116_fptr_4980" = extractvalue { %TName_List_ByStr20* (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.listByStr20FilterOut_116_4979", 0 - %"$$ud-registry.listByStr20FilterOut_116_envptr_4981" = extractvalue { %TName_List_ByStr20* (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.listByStr20FilterOut_116_4979", 1 - %"$$ud-registry.listByStr20FilterOut_116_address_4982" = alloca [20 x i8], align 1 - store [20 x i8] %address, [20 x i8]* %"$$ud-registry.listByStr20FilterOut_116_address_4982", align 1 - %"$$ud-registry.listByStr20FilterOut_116_call_4983" = call %TName_List_ByStr20* %"$$ud-registry.listByStr20FilterOut_116_fptr_4980"(i8* %"$$ud-registry.listByStr20FilterOut_116_envptr_4981", [20 x i8]* %"$$ud-registry.listByStr20FilterOut_116_address_4982"), !dbg !514 - store %TName_List_ByStr20* %"$$ud-registry.listByStr20FilterOut_116_call_4983", %TName_List_ByStr20** %"$ud-registry.listByStr20FilterOut_117", align 8, !dbg !514 - %"$$ud-registry.listByStr20FilterOut_117_4984" = load %TName_List_ByStr20*, %TName_List_ByStr20** %"$ud-registry.listByStr20FilterOut_117", align 8 - store %TName_List_ByStr20* %"$$ud-registry.listByStr20FilterOut_117_4984", %TName_List_ByStr20** %newOperators, align 8, !dbg !514 - br label %"$matchsucc_4950" - -"$empty_default_4953": ; preds = %"$have_gas_4948" - br label %"$matchsucc_4950" - -"$matchsucc_4950": ; preds = %"$have_gas_4972", %"$have_gas_4959", %"$empty_default_4953" - %"$newOperators_4985" = load %TName_List_ByStr20*, %TName_List_ByStr20** %newOperators, align 8 - %"$$newOperators_4985_4986" = bitcast %TName_List_ByStr20* %"$newOperators_4985" to i8* - %"$_literal_cost_call_4987" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_List_ByStr20_466", i8* %"$$newOperators_4985_4986") - %"$gasadd_4988" = add i64 %"$_literal_cost_call_4987", 1 - %"$gasrem_4989" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4990" = icmp ugt i64 %"$gasadd_4988", %"$gasrem_4989" - br i1 %"$gascmp_4990", label %"$out_of_gas_4991", label %"$have_gas_4992" - -"$out_of_gas_4991": ; preds = %"$matchsucc_4950" - call void @_out_of_gas() - br label %"$have_gas_4992" - -"$have_gas_4992": ; preds = %"$out_of_gas_4991", %"$matchsucc_4950" - %"$consume_4993" = sub i64 %"$gasrem_4989", %"$gasadd_4988" - store i64 %"$consume_4993", i64* @_gasrem, align 8 - %"$indices_buf_4994_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$indices_buf_4994_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_4994_salloc_load", i64 20) - %"$indices_buf_4994_salloc" = bitcast i8* %"$indices_buf_4994_salloc_salloc" to [20 x i8]* - %"$indices_buf_4994" = bitcast [20 x i8]* %"$indices_buf_4994_salloc" to i8* - %"$indices_gep_4995" = getelementptr i8, i8* %"$indices_buf_4994", i32 0 - %indices_cast1 = bitcast i8* %"$indices_gep_4995" to [20 x i8]* + call void @llvm.dbg.declare(metadata %TName_List_ByStr20** %"$ud-registry.listByStr20FilterOut_117", metadata !910, metadata !DIExpression()), !dbg !908 + %"$$ud-registry.listByStr20FilterOut_116_5063" = load { %TName_List_ByStr20* (i8*, [20 x i8]*)*, i8* }, { %TName_List_ByStr20* (i8*, [20 x i8]*)*, i8* }* %"$ud-registry.listByStr20FilterOut_116", align 8 + %"$$ud-registry.listByStr20FilterOut_116_fptr_5064" = extractvalue { %TName_List_ByStr20* (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.listByStr20FilterOut_116_5063", 0 + %"$$ud-registry.listByStr20FilterOut_116_envptr_5065" = extractvalue { %TName_List_ByStr20* (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.listByStr20FilterOut_116_5063", 1 + %"$$ud-registry.listByStr20FilterOut_116_address_5066" = alloca [20 x i8], align 1 + store [20 x i8] %address, [20 x i8]* %"$$ud-registry.listByStr20FilterOut_116_address_5066", align 1 + %"$$ud-registry.listByStr20FilterOut_116_call_5067" = call %TName_List_ByStr20* %"$$ud-registry.listByStr20FilterOut_116_fptr_5064"(i8* %"$$ud-registry.listByStr20FilterOut_116_envptr_5065", [20 x i8]* %"$$ud-registry.listByStr20FilterOut_116_address_5066"), !dbg !908 + store %TName_List_ByStr20* %"$$ud-registry.listByStr20FilterOut_116_call_5067", %TName_List_ByStr20** %"$ud-registry.listByStr20FilterOut_117", align 8, !dbg !908 + %"$$ud-registry.listByStr20FilterOut_117_5068" = load %TName_List_ByStr20*, %TName_List_ByStr20** %"$ud-registry.listByStr20FilterOut_117", align 8 + store %TName_List_ByStr20* %"$$ud-registry.listByStr20FilterOut_117_5068", %TName_List_ByStr20** %newOperators, align 8, !dbg !908 + br label %"$matchsucc_5034" + +"$empty_default_5037": ; preds = %"$have_gas_5032" + br label %"$matchsucc_5034" + +"$matchsucc_5034": ; preds = %"$have_gas_5056", %"$have_gas_5043", %"$empty_default_5037" + %"$newOperators_5069" = load %TName_List_ByStr20*, %TName_List_ByStr20** %newOperators, align 8 + %"$$newOperators_5069_5070" = bitcast %TName_List_ByStr20* %"$newOperators_5069" to i8* + %"$_literal_cost_call_5071" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_List_ByStr20_466", i8* %"$$newOperators_5069_5070") + %"$gasadd_5072" = add i64 %"$_literal_cost_call_5071", 1 + %"$gasrem_5073" = load i64, i64* @_gasrem, align 8 + %"$gascmp_5074" = icmp ugt i64 %"$gasadd_5072", %"$gasrem_5073" + br i1 %"$gascmp_5074", label %"$out_of_gas_5075", label %"$have_gas_5076" + +"$out_of_gas_5075": ; preds = %"$matchsucc_5034" + call void @_out_of_gas() + br label %"$have_gas_5076" + +"$have_gas_5076": ; preds = %"$out_of_gas_5075", %"$matchsucc_5034" + %"$consume_5077" = sub i64 %"$gasrem_5073", %"$gasadd_5072" + store i64 %"$consume_5077", i64* @_gasrem, align 8 + %"$indices_buf_5078_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$indices_buf_5078_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_5078_salloc_load", i64 20) + %"$indices_buf_5078_salloc" = bitcast i8* %"$indices_buf_5078_salloc_salloc" to [20 x i8]* + %"$indices_buf_5078" = bitcast [20 x i8]* %"$indices_buf_5078_salloc" to i8* + %"$indices_gep_5079" = getelementptr i8, i8* %"$indices_buf_5078", i32 0 + %indices_cast1 = bitcast i8* %"$indices_gep_5079" to [20 x i8]* store [20 x i8] %_sender, [20 x i8]* %indices_cast1, align 1 - %"$execptr_load_4996" = load i8*, i8** @_execptr, align 8 - %"$newOperators_4998" = load %TName_List_ByStr20*, %TName_List_ByStr20** %newOperators, align 8 - %"$update_value_4999" = bitcast %TName_List_ByStr20* %"$newOperators_4998" to i8* - call void @_update_field(i8* %"$execptr_load_4996", i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$operators_4997", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_470", i32 1, i8* %"$indices_buf_4994", i8* %"$update_value_4999"), !dbg !516 - %"$gasrem_5000" = load i64, i64* @_gasrem, align 8 - %"$gascmp_5001" = icmp ugt i64 1, %"$gasrem_5000" - br i1 %"$gascmp_5001", label %"$out_of_gas_5002", label %"$have_gas_5003" + %"$execptr_load_5080" = load i8*, i8** @_execptr, align 8 + %"$newOperators_5082" = load %TName_List_ByStr20*, %TName_List_ByStr20** %newOperators, align 8 + %"$update_value_5083" = bitcast %TName_List_ByStr20* %"$newOperators_5082" to i8* + call void @_update_field(i8* %"$execptr_load_5080", i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$operators_5081", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_470", i32 1, i8* %"$indices_buf_5078", i8* %"$update_value_5083"), !dbg !911 + %"$gasrem_5084" = load i64, i64* @_gasrem, align 8 + %"$gascmp_5085" = icmp ugt i64 1, %"$gasrem_5084" + br i1 %"$gascmp_5085", label %"$out_of_gas_5086", label %"$have_gas_5087" -"$out_of_gas_5002": ; preds = %"$have_gas_4992" +"$out_of_gas_5086": ; preds = %"$have_gas_5076" call void @_out_of_gas() - br label %"$have_gas_5003" + br label %"$have_gas_5087" -"$have_gas_5003": ; preds = %"$out_of_gas_5002", %"$have_gas_4992" - %"$consume_5004" = sub i64 %"$gasrem_5000", 1 - store i64 %"$consume_5004", i64* @_gasrem, align 8 +"$have_gas_5087": ; preds = %"$out_of_gas_5086", %"$have_gas_5076" + %"$consume_5088" = sub i64 %"$gasrem_5084", 1 + store i64 %"$consume_5088", i64* @_gasrem, align 8 %e = alloca i8*, align 8 - %"$gasrem_5005" = load i64, i64* @_gasrem, align 8 - %"$gascmp_5006" = icmp ugt i64 1, %"$gasrem_5005" - br i1 %"$gascmp_5006", label %"$out_of_gas_5007", label %"$have_gas_5008" + call void @llvm.dbg.declare(metadata i8** %e, metadata !912, metadata !DIExpression()), !dbg !913 + %"$gasrem_5089" = load i64, i64* @_gasrem, align 8 + %"$gascmp_5090" = icmp ugt i64 1, %"$gasrem_5089" + br i1 %"$gascmp_5090", label %"$out_of_gas_5091", label %"$have_gas_5092" -"$out_of_gas_5007": ; preds = %"$have_gas_5003" +"$out_of_gas_5091": ; preds = %"$have_gas_5087" call void @_out_of_gas() - br label %"$have_gas_5008" + br label %"$have_gas_5092" -"$have_gas_5008": ; preds = %"$out_of_gas_5007", %"$have_gas_5003" - %"$consume_5009" = sub i64 %"$gasrem_5005", 1 - store i64 %"$consume_5009", i64* @_gasrem, align 8 +"$have_gas_5092": ; preds = %"$out_of_gas_5091", %"$have_gas_5087" + %"$consume_5093" = sub i64 %"$gasrem_5089", 1 + store i64 %"$consume_5093", i64* @_gasrem, align 8 %"$ud-registry.eApprovedFor_113" = alloca { { i8* (i8*, %TName_Bool*)*, i8* } (i8*, [20 x i8]*)*, i8* }, align 8 - %"$ud-registry.eApprovedFor_5010" = 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_5011" = extractvalue { { { i8* (i8*, %TName_Bool*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$ud-registry.eApprovedFor_5010", 0 - %"$ud-registry.eApprovedFor_envptr_5012" = extractvalue { { { i8* (i8*, %TName_Bool*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$ud-registry.eApprovedFor_5010", 1 - %"$ud-registry.eApprovedFor__sender_5013" = alloca [20 x i8], align 1 - store [20 x i8] %_sender, [20 x i8]* %"$ud-registry.eApprovedFor__sender_5013", align 1 - %"$ud-registry.eApprovedFor_call_5014" = call { { i8* (i8*, %TName_Bool*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$ud-registry.eApprovedFor_fptr_5011"(i8* %"$ud-registry.eApprovedFor_envptr_5012", [20 x i8]* %"$ud-registry.eApprovedFor__sender_5013"), !dbg !517 - store { { i8* (i8*, %TName_Bool*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$ud-registry.eApprovedFor_call_5014", { { i8* (i8*, %TName_Bool*)*, i8* } (i8*, [20 x i8]*)*, i8* }* %"$ud-registry.eApprovedFor_113", align 8, !dbg !517 + %"$ud-registry.eApprovedFor_5094" = 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_5095" = extractvalue { { { i8* (i8*, %TName_Bool*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$ud-registry.eApprovedFor_5094", 0 + %"$ud-registry.eApprovedFor_envptr_5096" = extractvalue { { { i8* (i8*, %TName_Bool*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$ud-registry.eApprovedFor_5094", 1 + %"$ud-registry.eApprovedFor__sender_5097" = alloca [20 x i8], align 1 + store [20 x i8] %_sender, [20 x i8]* %"$ud-registry.eApprovedFor__sender_5097", align 1 + %"$ud-registry.eApprovedFor_call_5098" = call { { i8* (i8*, %TName_Bool*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$ud-registry.eApprovedFor_fptr_5095"(i8* %"$ud-registry.eApprovedFor_envptr_5096", [20 x i8]* %"$ud-registry.eApprovedFor__sender_5097"), !dbg !914 + store { { i8* (i8*, %TName_Bool*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$ud-registry.eApprovedFor_call_5098", { { i8* (i8*, %TName_Bool*)*, i8* } (i8*, [20 x i8]*)*, i8* }* %"$ud-registry.eApprovedFor_113", align 8, !dbg !914 %"$ud-registry.eApprovedFor_114" = alloca { i8* (i8*, %TName_Bool*)*, i8* }, align 8 - %"$$ud-registry.eApprovedFor_113_5015" = load { { i8* (i8*, %TName_Bool*)*, i8* } (i8*, [20 x i8]*)*, i8* }, { { i8* (i8*, %TName_Bool*)*, i8* } (i8*, [20 x i8]*)*, i8* }* %"$ud-registry.eApprovedFor_113", align 8 - %"$$ud-registry.eApprovedFor_113_fptr_5016" = extractvalue { { i8* (i8*, %TName_Bool*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.eApprovedFor_113_5015", 0 - %"$$ud-registry.eApprovedFor_113_envptr_5017" = extractvalue { { i8* (i8*, %TName_Bool*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.eApprovedFor_113_5015", 1 - %"$$ud-registry.eApprovedFor_113_address_5018" = alloca [20 x i8], align 1 - store [20 x i8] %address, [20 x i8]* %"$$ud-registry.eApprovedFor_113_address_5018", align 1 - %"$$ud-registry.eApprovedFor_113_call_5019" = call { i8* (i8*, %TName_Bool*)*, i8* } %"$$ud-registry.eApprovedFor_113_fptr_5016"(i8* %"$$ud-registry.eApprovedFor_113_envptr_5017", [20 x i8]* %"$$ud-registry.eApprovedFor_113_address_5018"), !dbg !517 - store { i8* (i8*, %TName_Bool*)*, i8* } %"$$ud-registry.eApprovedFor_113_call_5019", { i8* (i8*, %TName_Bool*)*, i8* }* %"$ud-registry.eApprovedFor_114", align 8, !dbg !517 + %"$$ud-registry.eApprovedFor_113_5099" = load { { i8* (i8*, %TName_Bool*)*, i8* } (i8*, [20 x i8]*)*, i8* }, { { i8* (i8*, %TName_Bool*)*, i8* } (i8*, [20 x i8]*)*, i8* }* %"$ud-registry.eApprovedFor_113", align 8 + %"$$ud-registry.eApprovedFor_113_fptr_5100" = extractvalue { { i8* (i8*, %TName_Bool*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.eApprovedFor_113_5099", 0 + %"$$ud-registry.eApprovedFor_113_envptr_5101" = extractvalue { { i8* (i8*, %TName_Bool*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.eApprovedFor_113_5099", 1 + %"$$ud-registry.eApprovedFor_113_address_5102" = alloca [20 x i8], align 1 + store [20 x i8] %address, [20 x i8]* %"$$ud-registry.eApprovedFor_113_address_5102", align 1 + %"$$ud-registry.eApprovedFor_113_call_5103" = call { i8* (i8*, %TName_Bool*)*, i8* } %"$$ud-registry.eApprovedFor_113_fptr_5100"(i8* %"$$ud-registry.eApprovedFor_113_envptr_5101", [20 x i8]* %"$$ud-registry.eApprovedFor_113_address_5102"), !dbg !914 + store { i8* (i8*, %TName_Bool*)*, i8* } %"$$ud-registry.eApprovedFor_113_call_5103", { i8* (i8*, %TName_Bool*)*, i8* }* %"$ud-registry.eApprovedFor_114", align 8, !dbg !914 %"$ud-registry.eApprovedFor_115" = alloca i8*, align 8 - %"$$ud-registry.eApprovedFor_114_5020" = load { i8* (i8*, %TName_Bool*)*, i8* }, { i8* (i8*, %TName_Bool*)*, i8* }* %"$ud-registry.eApprovedFor_114", align 8 - %"$$ud-registry.eApprovedFor_114_fptr_5021" = extractvalue { i8* (i8*, %TName_Bool*)*, i8* } %"$$ud-registry.eApprovedFor_114_5020", 0 - %"$$ud-registry.eApprovedFor_114_envptr_5022" = extractvalue { i8* (i8*, %TName_Bool*)*, i8* } %"$$ud-registry.eApprovedFor_114_5020", 1 - %"$$ud-registry.eApprovedFor_114_call_5023" = call i8* %"$$ud-registry.eApprovedFor_114_fptr_5021"(i8* %"$$ud-registry.eApprovedFor_114_envptr_5022", %TName_Bool* %isApproved), !dbg !517 - store i8* %"$$ud-registry.eApprovedFor_114_call_5023", i8** %"$ud-registry.eApprovedFor_115", align 8, !dbg !517 - %"$$ud-registry.eApprovedFor_115_5024" = load i8*, i8** %"$ud-registry.eApprovedFor_115", align 8 - store i8* %"$$ud-registry.eApprovedFor_115_5024", i8** %e, align 8, !dbg !517 - %"$e_5025" = load i8*, i8** %e, align 8 - %"$_literal_cost_call_5027" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Event_446", i8* %"$e_5025") - %"$gasrem_5028" = load i64, i64* @_gasrem, align 8 - %"$gascmp_5029" = icmp ugt i64 %"$_literal_cost_call_5027", %"$gasrem_5028" - br i1 %"$gascmp_5029", label %"$out_of_gas_5030", label %"$have_gas_5031" - -"$out_of_gas_5030": ; preds = %"$have_gas_5008" - call void @_out_of_gas() - br label %"$have_gas_5031" - -"$have_gas_5031": ; preds = %"$out_of_gas_5030", %"$have_gas_5008" - %"$consume_5032" = sub i64 %"$gasrem_5028", %"$_literal_cost_call_5027" - store i64 %"$consume_5032", i64* @_gasrem, align 8 - %"$execptr_load_5033" = load i8*, i8** @_execptr, align 8 - %"$e_5034" = load i8*, i8** %e, align 8 - call void @_event(i8* %"$execptr_load_5033", %_TyDescrTy_Typ* @"$TyDescr_Event_446", i8* %"$e_5034"), !dbg !518 - br label %"$matchsucc_4933" - -"$default_4937": ; preds = %"$have_gas_4931" + call void @llvm.dbg.declare(metadata i8** %"$ud-registry.eApprovedFor_115", metadata !915, metadata !DIExpression()), !dbg !914 + %"$$ud-registry.eApprovedFor_114_5104" = load { i8* (i8*, %TName_Bool*)*, i8* }, { i8* (i8*, %TName_Bool*)*, i8* }* %"$ud-registry.eApprovedFor_114", align 8 + %"$$ud-registry.eApprovedFor_114_fptr_5105" = extractvalue { i8* (i8*, %TName_Bool*)*, i8* } %"$$ud-registry.eApprovedFor_114_5104", 0 + %"$$ud-registry.eApprovedFor_114_envptr_5106" = extractvalue { i8* (i8*, %TName_Bool*)*, i8* } %"$$ud-registry.eApprovedFor_114_5104", 1 + %"$$ud-registry.eApprovedFor_114_call_5107" = call i8* %"$$ud-registry.eApprovedFor_114_fptr_5105"(i8* %"$$ud-registry.eApprovedFor_114_envptr_5106", %TName_Bool* %isApproved), !dbg !914 + store i8* %"$$ud-registry.eApprovedFor_114_call_5107", i8** %"$ud-registry.eApprovedFor_115", align 8, !dbg !914 + %"$$ud-registry.eApprovedFor_115_5108" = load i8*, i8** %"$ud-registry.eApprovedFor_115", align 8 + store i8* %"$$ud-registry.eApprovedFor_115_5108", i8** %e, align 8, !dbg !914 + %"$e_5109" = load i8*, i8** %e, align 8 + %"$_literal_cost_call_5111" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Event_446", i8* %"$e_5109") + %"$gasrem_5112" = load i64, i64* @_gasrem, align 8 + %"$gascmp_5113" = icmp ugt i64 %"$_literal_cost_call_5111", %"$gasrem_5112" + br i1 %"$gascmp_5113", label %"$out_of_gas_5114", label %"$have_gas_5115" + +"$out_of_gas_5114": ; preds = %"$have_gas_5092" + call void @_out_of_gas() + br label %"$have_gas_5115" + +"$have_gas_5115": ; preds = %"$out_of_gas_5114", %"$have_gas_5092" + %"$consume_5116" = sub i64 %"$gasrem_5112", %"$_literal_cost_call_5111" + store i64 %"$consume_5116", i64* @_gasrem, align 8 + %"$execptr_load_5117" = load i8*, i8** @_execptr, align 8 + %"$e_5118" = load i8*, i8** %e, align 8 + call void @_event(i8* %"$execptr_load_5117", %_TyDescrTy_Typ* @"$TyDescr_Event_446", i8* %"$e_5118"), !dbg !916 + br label %"$matchsucc_5017" + +"$default_5021": ; preds = %"$have_gas_5015" br label %"$joinp_27" -"$joinp_27": ; preds = %"$default_4937" - br label %"$matchsucc_4933" +"$joinp_27": ; preds = %"$default_5021" + br label %"$matchsucc_5017" -"$matchsucc_4933": ; preds = %"$have_gas_5031", %"$joinp_27" +"$matchsucc_5017": ; preds = %"$have_gas_5115", %"$joinp_27" ret void } -define void @approveFor(i8* %0) !dbg !519 { -entry: - %"$_amount_5036" = getelementptr i8, i8* %0, i32 0 - %"$_amount_5037" = bitcast i8* %"$_amount_5036" to %Uint128* - %_amount = load %Uint128, %Uint128* %"$_amount_5037", align 8 - %"$_origin_5038" = getelementptr i8, i8* %0, i32 16 - %"$_origin_5039" = bitcast i8* %"$_origin_5038" to [20 x i8]* - %"$_sender_5040" = getelementptr i8, i8* %0, i32 36 - %"$_sender_5041" = bitcast i8* %"$_sender_5040" to [20 x i8]* - %"$address_5042" = getelementptr i8, i8* %0, i32 56 - %"$address_5043" = bitcast i8* %"$address_5042" to [20 x i8]* - %"$isApproved_5044" = getelementptr i8, i8* %0, i32 76 - %"$isApproved_5045" = bitcast i8* %"$isApproved_5044" to %TName_Bool** - %isApproved = load %TName_Bool*, %TName_Bool** %"$isApproved_5045", align 8 - call void @"$approveFor_4834"(%Uint128 %_amount, [20 x i8]* %"$_origin_5039", [20 x i8]* %"$_sender_5041", [20 x i8]* %"$address_5043", %TName_Bool* %isApproved), !dbg !520 +define void @approveFor(i8* %0) !dbg !917 { +entry: + %"$_amount_5125" = getelementptr i8, i8* %0, i32 0 + %"$_amount_5126" = bitcast i8* %"$_amount_5125" to %Uint128* + %_amount = load %Uint128, %Uint128* %"$_amount_5126", align 8 + %"$_origin_5127" = getelementptr i8, i8* %0, i32 16 + %"$_origin_5128" = bitcast i8* %"$_origin_5127" to [20 x i8]* + %"$_sender_5129" = getelementptr i8, i8* %0, i32 36 + %"$_sender_5130" = bitcast i8* %"$_sender_5129" to [20 x i8]* + %"$address_5131" = getelementptr i8, i8* %0, i32 56 + %"$address_5132" = bitcast i8* %"$address_5131" to [20 x i8]* + %"$isApproved_5133" = getelementptr i8, i8* %0, i32 76 + %"$isApproved_5134" = bitcast i8* %"$isApproved_5133" to %TName_Bool** + %isApproved = load %TName_Bool*, %TName_Bool** %"$isApproved_5134", align 8 + call void @"$approveFor_4918"(%Uint128 %_amount, [20 x i8]* %"$_origin_5128", [20 x i8]* %"$_sender_5130", [20 x i8]* %"$address_5132", %TName_Bool* %isApproved), !dbg !918 ret void } -define internal void @"$configureNode_5046"(%Uint128 %_amount, [20 x i8]* %"$_origin_5047", [20 x i8]* %"$_sender_5048", [32 x i8]* %"$node_5049", [20 x i8]* %"$owner_5050", [20 x i8]* %"$resolver_5051") !dbg !521 { -entry: - %_origin = load [20 x i8], [20 x i8]* %"$_origin_5047", align 1 - %_sender = load [20 x i8], [20 x i8]* %"$_sender_5048", align 1 - %node = load [32 x i8], [32 x i8]* %"$node_5049", align 1 - %owner = load [20 x i8], [20 x i8]* %"$owner_5050", align 1 - %resolver = load [20 x i8], [20 x i8]* %"$resolver_5051", align 1 +define internal void @"$configureNode_5135"(%Uint128 %_amount, [20 x i8]* %"$_origin_5136", [20 x i8]* %"$_sender_5137", [32 x i8]* %"$node_5138", [20 x i8]* %"$owner_5139", [20 x i8]* %"$resolver_5140") !dbg !919 { +entry: + %"$resolver_5510" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$resolver_5140", [20 x i8]** %"$resolver_5510", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$resolver_5510", metadata !920, metadata !DIExpression()), !dbg !921 + %"$owner_5509" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$owner_5139", [20 x i8]** %"$owner_5509", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$owner_5509", metadata !922, metadata !DIExpression()), !dbg !923 + %"$node_5508" = alloca [32 x i8]*, align 8 + store [32 x i8]* %"$node_5138", [32 x i8]** %"$node_5508", align 8 + call void @llvm.dbg.declare(metadata [32 x i8]** %"$node_5508", metadata !924, metadata !DIExpression()), !dbg !925 + %"$_sender_5507" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_sender_5137", [20 x i8]** %"$_sender_5507", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_sender_5507", metadata !926, metadata !DIExpression()), !dbg !927 + %"$_origin_5506" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_origin_5136", [20 x i8]** %"$_origin_5506", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_origin_5506", metadata !928, metadata !DIExpression()), !dbg !927 + %"$_amount_5505" = alloca %Uint128, align 8 + store %Uint128 %_amount, %Uint128* %"$_amount_5505", align 8 + call void @llvm.dbg.declare(metadata %Uint128* %"$_amount_5505", metadata !929, metadata !DIExpression()), !dbg !927 + %_origin = load [20 x i8], [20 x i8]* %"$_origin_5136", align 1 + %_sender = load [20 x i8], [20 x i8]* %"$_sender_5137", align 1 + %node = load [32 x i8], [32 x i8]* %"$node_5138", align 1 + %owner = load [20 x i8], [20 x i8]* %"$owner_5139", align 1 + %resolver = load [20 x i8], [20 x i8]* %"$resolver_5140", align 1 %maybeRecord = alloca %TName_Option_ud-registry.Record*, align 8 - %"$indices_buf_5052_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$indices_buf_5052_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_5052_salloc_load", i64 32) - %"$indices_buf_5052_salloc" = bitcast i8* %"$indices_buf_5052_salloc_salloc" to [32 x i8]* - %"$indices_buf_5052" = bitcast [32 x i8]* %"$indices_buf_5052_salloc" to i8* - %"$indices_gep_5053" = getelementptr i8, i8* %"$indices_buf_5052", i32 0 - %indices_cast = bitcast i8* %"$indices_gep_5053" to [32 x i8]* + call void @llvm.dbg.declare(metadata %TName_Option_ud-registry.Record** %maybeRecord, metadata !930, metadata !DIExpression()), !dbg !931 + %"$indices_buf_5141_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$indices_buf_5141_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_5141_salloc_load", i64 32) + %"$indices_buf_5141_salloc" = bitcast i8* %"$indices_buf_5141_salloc_salloc" to [32 x i8]* + %"$indices_buf_5141" = bitcast [32 x i8]* %"$indices_buf_5141_salloc" to i8* + %"$indices_gep_5142" = getelementptr i8, i8* %"$indices_buf_5141", i32 0 + %indices_cast = bitcast i8* %"$indices_gep_5142" to [32 x i8]* store [32 x i8] %node, [32 x i8]* %indices_cast, align 1 - %"$execptr_load_5055" = load i8*, i8** @_execptr, align 8 - %"$maybeRecord_call_5056" = call i8* @_fetch_field(i8* %"$execptr_load_5055", i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$records_5054", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_472", i32 1, i8* %"$indices_buf_5052", i32 1), !dbg !522 - %"$maybeRecord_5057" = bitcast i8* %"$maybeRecord_call_5056" to %TName_Option_ud-registry.Record* - store %TName_Option_ud-registry.Record* %"$maybeRecord_5057", %TName_Option_ud-registry.Record** %maybeRecord, align 8 - %"$maybeRecord_5058" = load %TName_Option_ud-registry.Record*, %TName_Option_ud-registry.Record** %maybeRecord, align 8 - %"$$maybeRecord_5058_5059" = bitcast %TName_Option_ud-registry.Record* %"$maybeRecord_5058" to i8* - %"$_literal_cost_call_5060" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_ud-registry.Record_463", i8* %"$$maybeRecord_5058_5059") - %"$gasadd_5061" = add i64 %"$_literal_cost_call_5060", 0 - %"$gasadd_5062" = add i64 %"$gasadd_5061", 1 - %"$gasrem_5063" = load i64, i64* @_gasrem, align 8 - %"$gascmp_5064" = icmp ugt i64 %"$gasadd_5062", %"$gasrem_5063" - br i1 %"$gascmp_5064", label %"$out_of_gas_5065", label %"$have_gas_5066" - -"$out_of_gas_5065": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_5066" - -"$have_gas_5066": ; preds = %"$out_of_gas_5065", %entry - %"$consume_5067" = sub i64 %"$gasrem_5063", %"$gasadd_5062" - store i64 %"$consume_5067", i64* @_gasrem, align 8 + %"$execptr_load_5144" = load i8*, i8** @_execptr, align 8 + %"$maybeRecord_call_5145" = call i8* @_fetch_field(i8* %"$execptr_load_5144", i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$records_5143", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_472", i32 1, i8* %"$indices_buf_5141", i32 1), !dbg !931 + %"$maybeRecord_5146" = bitcast i8* %"$maybeRecord_call_5145" to %TName_Option_ud-registry.Record* + store %TName_Option_ud-registry.Record* %"$maybeRecord_5146", %TName_Option_ud-registry.Record** %maybeRecord, align 8 + %"$maybeRecord_5147" = load %TName_Option_ud-registry.Record*, %TName_Option_ud-registry.Record** %maybeRecord, align 8 + %"$$maybeRecord_5147_5148" = bitcast %TName_Option_ud-registry.Record* %"$maybeRecord_5147" to i8* + %"$_literal_cost_call_5149" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_ud-registry.Record_463", i8* %"$$maybeRecord_5147_5148") + %"$gasadd_5150" = add i64 %"$_literal_cost_call_5149", 0 + %"$gasadd_5151" = add i64 %"$gasadd_5150", 1 + %"$gasrem_5152" = load i64, i64* @_gasrem, align 8 + %"$gascmp_5153" = icmp ugt i64 %"$gasadd_5151", %"$gasrem_5152" + br i1 %"$gascmp_5153", label %"$out_of_gas_5154", label %"$have_gas_5155" + +"$out_of_gas_5154": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_5155" + +"$have_gas_5155": ; preds = %"$out_of_gas_5154", %entry + %"$consume_5156" = sub i64 %"$gasrem_5152", %"$gasadd_5151" + store i64 %"$consume_5156", i64* @_gasrem, align 8 %maybeApproved = alloca %TName_Option_ByStr20*, align 8 - %"$indices_buf_5068_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$indices_buf_5068_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_5068_salloc_load", i64 32) - %"$indices_buf_5068_salloc" = bitcast i8* %"$indices_buf_5068_salloc_salloc" to [32 x i8]* - %"$indices_buf_5068" = bitcast [32 x i8]* %"$indices_buf_5068_salloc" to i8* - %"$indices_gep_5069" = getelementptr i8, i8* %"$indices_buf_5068", i32 0 - %indices_cast1 = bitcast i8* %"$indices_gep_5069" to [32 x i8]* + call void @llvm.dbg.declare(metadata %TName_Option_ByStr20** %maybeApproved, metadata !932, metadata !DIExpression()), !dbg !933 + %"$indices_buf_5157_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$indices_buf_5157_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_5157_salloc_load", i64 32) + %"$indices_buf_5157_salloc" = bitcast i8* %"$indices_buf_5157_salloc_salloc" to [32 x i8]* + %"$indices_buf_5157" = bitcast [32 x i8]* %"$indices_buf_5157_salloc" to i8* + %"$indices_gep_5158" = getelementptr i8, i8* %"$indices_buf_5157", i32 0 + %indices_cast1 = bitcast i8* %"$indices_gep_5158" to [32 x i8]* store [32 x i8] %node, [32 x i8]* %indices_cast1, align 1 - %"$execptr_load_5071" = load i8*, i8** @_execptr, align 8 - %"$maybeApproved_call_5072" = call i8* @_fetch_field(i8* %"$execptr_load_5071", i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$approvals_5070", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_471", i32 1, i8* %"$indices_buf_5068", i32 1), !dbg !523 - %"$maybeApproved_5073" = bitcast i8* %"$maybeApproved_call_5072" to %TName_Option_ByStr20* - store %TName_Option_ByStr20* %"$maybeApproved_5073", %TName_Option_ByStr20** %maybeApproved, align 8 - %"$maybeApproved_5074" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %maybeApproved, align 8 - %"$$maybeApproved_5074_5075" = bitcast %TName_Option_ByStr20* %"$maybeApproved_5074" to i8* - %"$_literal_cost_call_5076" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_ByStr20_464", i8* %"$$maybeApproved_5074_5075") - %"$gasadd_5077" = add i64 %"$_literal_cost_call_5076", 0 - %"$gasadd_5078" = add i64 %"$gasadd_5077", 1 - %"$gasrem_5079" = load i64, i64* @_gasrem, align 8 - %"$gascmp_5080" = icmp ugt i64 %"$gasadd_5078", %"$gasrem_5079" - br i1 %"$gascmp_5080", label %"$out_of_gas_5081", label %"$have_gas_5082" - -"$out_of_gas_5081": ; preds = %"$have_gas_5066" - call void @_out_of_gas() - br label %"$have_gas_5082" - -"$have_gas_5082": ; preds = %"$out_of_gas_5081", %"$have_gas_5066" - %"$consume_5083" = sub i64 %"$gasrem_5079", %"$gasadd_5078" - store i64 %"$consume_5083", i64* @_gasrem, align 8 - %"$gasrem_5084" = load i64, i64* @_gasrem, align 8 - %"$gascmp_5085" = icmp ugt i64 1, %"$gasrem_5084" - br i1 %"$gascmp_5085", label %"$out_of_gas_5086", label %"$have_gas_5087" - -"$out_of_gas_5086": ; preds = %"$have_gas_5082" - call void @_out_of_gas() - br label %"$have_gas_5087" - -"$have_gas_5087": ; preds = %"$out_of_gas_5086", %"$have_gas_5082" - %"$consume_5088" = sub i64 %"$gasrem_5084", 1 - store i64 %"$consume_5088", i64* @_gasrem, align 8 + %"$execptr_load_5160" = load i8*, i8** @_execptr, align 8 + %"$maybeApproved_call_5161" = call i8* @_fetch_field(i8* %"$execptr_load_5160", i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$approvals_5159", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_471", i32 1, i8* %"$indices_buf_5157", i32 1), !dbg !933 + %"$maybeApproved_5162" = bitcast i8* %"$maybeApproved_call_5161" to %TName_Option_ByStr20* + store %TName_Option_ByStr20* %"$maybeApproved_5162", %TName_Option_ByStr20** %maybeApproved, align 8 + %"$maybeApproved_5163" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %maybeApproved, align 8 + %"$$maybeApproved_5163_5164" = bitcast %TName_Option_ByStr20* %"$maybeApproved_5163" to i8* + %"$_literal_cost_call_5165" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_ByStr20_464", i8* %"$$maybeApproved_5163_5164") + %"$gasadd_5166" = add i64 %"$_literal_cost_call_5165", 0 + %"$gasadd_5167" = add i64 %"$gasadd_5166", 1 + %"$gasrem_5168" = load i64, i64* @_gasrem, align 8 + %"$gascmp_5169" = icmp ugt i64 %"$gasadd_5167", %"$gasrem_5168" + br i1 %"$gascmp_5169", label %"$out_of_gas_5170", label %"$have_gas_5171" + +"$out_of_gas_5170": ; preds = %"$have_gas_5155" + call void @_out_of_gas() + br label %"$have_gas_5171" + +"$have_gas_5171": ; preds = %"$out_of_gas_5170", %"$have_gas_5155" + %"$consume_5172" = sub i64 %"$gasrem_5168", %"$gasadd_5167" + store i64 %"$consume_5172", i64* @_gasrem, align 8 + %"$gasrem_5173" = load i64, i64* @_gasrem, align 8 + %"$gascmp_5174" = icmp ugt i64 1, %"$gasrem_5173" + br i1 %"$gascmp_5174", label %"$out_of_gas_5175", label %"$have_gas_5176" + +"$out_of_gas_5175": ; preds = %"$have_gas_5171" + call void @_out_of_gas() + br label %"$have_gas_5176" + +"$have_gas_5176": ; preds = %"$out_of_gas_5175", %"$have_gas_5171" + %"$consume_5177" = sub i64 %"$gasrem_5173", 1 + store i64 %"$consume_5177", i64* @_gasrem, align 8 %recordOwner = alloca [20 x i8], align 1 - %"$gasrem_5089" = load i64, i64* @_gasrem, align 8 - %"$gascmp_5090" = icmp ugt i64 1, %"$gasrem_5089" - br i1 %"$gascmp_5090", label %"$out_of_gas_5091", label %"$have_gas_5092" + call void @llvm.dbg.declare(metadata [20 x i8]* %recordOwner, metadata !934, metadata !DIExpression()), !dbg !935 + %"$gasrem_5178" = load i64, i64* @_gasrem, align 8 + %"$gascmp_5179" = icmp ugt i64 1, %"$gasrem_5178" + br i1 %"$gascmp_5179", label %"$out_of_gas_5180", label %"$have_gas_5181" -"$out_of_gas_5091": ; preds = %"$have_gas_5087" +"$out_of_gas_5180": ; preds = %"$have_gas_5176" call void @_out_of_gas() - br label %"$have_gas_5092" + br label %"$have_gas_5181" -"$have_gas_5092": ; preds = %"$out_of_gas_5091", %"$have_gas_5087" - %"$consume_5093" = sub i64 %"$gasrem_5089", 1 - store i64 %"$consume_5093", i64* @_gasrem, align 8 +"$have_gas_5181": ; preds = %"$out_of_gas_5180", %"$have_gas_5176" + %"$consume_5182" = sub i64 %"$gasrem_5178", 1 + store i64 %"$consume_5182", i64* @_gasrem, align 8 %"$ud-registry.recordMemberOwner_132" = alloca [20 x i8], align 1 - %"$ud-registry.recordMemberOwner_5094" = 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_5095" = extractvalue { void (i8*, [20 x i8]*, %TName_Option_ud-registry.Record*)*, i8* } %"$ud-registry.recordMemberOwner_5094", 0 - %"$ud-registry.recordMemberOwner_envptr_5096" = extractvalue { void (i8*, [20 x i8]*, %TName_Option_ud-registry.Record*)*, i8* } %"$ud-registry.recordMemberOwner_5094", 1 - %"$maybeRecord_5097" = load %TName_Option_ud-registry.Record*, %TName_Option_ud-registry.Record** %maybeRecord, align 8 - %"$ud-registry.recordMemberOwner_retalloca_5098" = alloca [20 x i8], align 1 - call void %"$ud-registry.recordMemberOwner_fptr_5095"(i8* %"$ud-registry.recordMemberOwner_envptr_5096", [20 x i8]* %"$ud-registry.recordMemberOwner_retalloca_5098", %TName_Option_ud-registry.Record* %"$maybeRecord_5097"), !dbg !524 - %"$ud-registry.recordMemberOwner_ret_5099" = load [20 x i8], [20 x i8]* %"$ud-registry.recordMemberOwner_retalloca_5098", align 1 - store [20 x i8] %"$ud-registry.recordMemberOwner_ret_5099", [20 x i8]* %"$ud-registry.recordMemberOwner_132", align 1, !dbg !524 - %"$$ud-registry.recordMemberOwner_132_5100" = load [20 x i8], [20 x i8]* %"$ud-registry.recordMemberOwner_132", align 1 - store [20 x i8] %"$$ud-registry.recordMemberOwner_132_5100", [20 x i8]* %recordOwner, align 1, !dbg !524 + call void @llvm.dbg.declare(metadata [20 x i8]* %"$ud-registry.recordMemberOwner_132", metadata !936, metadata !DIExpression()), !dbg !937 + %"$ud-registry.recordMemberOwner_5183" = 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_5184" = extractvalue { void (i8*, [20 x i8]*, %TName_Option_ud-registry.Record*)*, i8* } %"$ud-registry.recordMemberOwner_5183", 0 + %"$ud-registry.recordMemberOwner_envptr_5185" = extractvalue { void (i8*, [20 x i8]*, %TName_Option_ud-registry.Record*)*, i8* } %"$ud-registry.recordMemberOwner_5183", 1 + %"$maybeRecord_5186" = load %TName_Option_ud-registry.Record*, %TName_Option_ud-registry.Record** %maybeRecord, align 8 + %"$ud-registry.recordMemberOwner_retalloca_5187" = alloca [20 x i8], align 1 + call void %"$ud-registry.recordMemberOwner_fptr_5184"(i8* %"$ud-registry.recordMemberOwner_envptr_5185", [20 x i8]* %"$ud-registry.recordMemberOwner_retalloca_5187", %TName_Option_ud-registry.Record* %"$maybeRecord_5186"), !dbg !937 + %"$ud-registry.recordMemberOwner_ret_5188" = load [20 x i8], [20 x i8]* %"$ud-registry.recordMemberOwner_retalloca_5187", align 1 + store [20 x i8] %"$ud-registry.recordMemberOwner_ret_5188", [20 x i8]* %"$ud-registry.recordMemberOwner_132", align 1, !dbg !937 + %"$$ud-registry.recordMemberOwner_132_5189" = load [20 x i8], [20 x i8]* %"$ud-registry.recordMemberOwner_132", align 1 + store [20 x i8] %"$$ud-registry.recordMemberOwner_132_5189", [20 x i8]* %recordOwner, align 1, !dbg !937 %maybeOperators = alloca %"TName_Option_List_(ByStr20)"*, align 8 - %"$indices_buf_5101_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$indices_buf_5101_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_5101_salloc_load", i64 20) - %"$indices_buf_5101_salloc" = bitcast i8* %"$indices_buf_5101_salloc_salloc" to [20 x i8]* - %"$indices_buf_5101" = bitcast [20 x i8]* %"$indices_buf_5101_salloc" to i8* - %"$recordOwner_5102" = load [20 x i8], [20 x i8]* %recordOwner, align 1 - %"$indices_gep_5103" = getelementptr i8, i8* %"$indices_buf_5101", i32 0 - %indices_cast2 = bitcast i8* %"$indices_gep_5103" to [20 x i8]* - store [20 x i8] %"$recordOwner_5102", [20 x i8]* %indices_cast2, align 1 - %"$execptr_load_5105" = load i8*, i8** @_execptr, align 8 - %"$maybeOperators_call_5106" = call i8* @_fetch_field(i8* %"$execptr_load_5105", i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$operators_5104", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_470", i32 1, i8* %"$indices_buf_5101", i32 1), !dbg !525 - %"$maybeOperators_5107" = bitcast i8* %"$maybeOperators_call_5106" to %"TName_Option_List_(ByStr20)"* - store %"TName_Option_List_(ByStr20)"* %"$maybeOperators_5107", %"TName_Option_List_(ByStr20)"** %maybeOperators, align 8 - %"$maybeOperators_5108" = load %"TName_Option_List_(ByStr20)"*, %"TName_Option_List_(ByStr20)"** %maybeOperators, align 8 - %"$$maybeOperators_5108_5109" = bitcast %"TName_Option_List_(ByStr20)"* %"$maybeOperators_5108" to i8* - %"$_literal_cost_call_5110" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_List_(ByStr20)_462", i8* %"$$maybeOperators_5108_5109") - %"$gasadd_5111" = add i64 %"$_literal_cost_call_5110", 0 - %"$gasadd_5112" = add i64 %"$gasadd_5111", 1 - %"$gasrem_5113" = load i64, i64* @_gasrem, align 8 - %"$gascmp_5114" = icmp ugt i64 %"$gasadd_5112", %"$gasrem_5113" - br i1 %"$gascmp_5114", label %"$out_of_gas_5115", label %"$have_gas_5116" - -"$out_of_gas_5115": ; preds = %"$have_gas_5092" - call void @_out_of_gas() - br label %"$have_gas_5116" - -"$have_gas_5116": ; preds = %"$out_of_gas_5115", %"$have_gas_5092" - %"$consume_5117" = sub i64 %"$gasrem_5113", %"$gasadd_5112" - store i64 %"$consume_5117", i64* @_gasrem, align 8 - %"$gasrem_5118" = load i64, i64* @_gasrem, align 8 - %"$gascmp_5119" = icmp ugt i64 1, %"$gasrem_5118" - br i1 %"$gascmp_5119", label %"$out_of_gas_5120", label %"$have_gas_5121" - -"$out_of_gas_5120": ; preds = %"$have_gas_5116" - call void @_out_of_gas() - br label %"$have_gas_5121" - -"$have_gas_5121": ; preds = %"$out_of_gas_5120", %"$have_gas_5116" - %"$consume_5122" = sub i64 %"$gasrem_5118", 1 - store i64 %"$consume_5122", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %"TName_Option_List_(ByStr20)"** %maybeOperators, metadata !938, metadata !DIExpression()), !dbg !939 + %"$indices_buf_5190_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$indices_buf_5190_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_5190_salloc_load", i64 20) + %"$indices_buf_5190_salloc" = bitcast i8* %"$indices_buf_5190_salloc_salloc" to [20 x i8]* + %"$indices_buf_5190" = bitcast [20 x i8]* %"$indices_buf_5190_salloc" to i8* + %"$recordOwner_5191" = load [20 x i8], [20 x i8]* %recordOwner, align 1 + %"$indices_gep_5192" = getelementptr i8, i8* %"$indices_buf_5190", i32 0 + %indices_cast2 = bitcast i8* %"$indices_gep_5192" to [20 x i8]* + store [20 x i8] %"$recordOwner_5191", [20 x i8]* %indices_cast2, align 1 + %"$execptr_load_5194" = load i8*, i8** @_execptr, align 8 + %"$maybeOperators_call_5195" = call i8* @_fetch_field(i8* %"$execptr_load_5194", i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$operators_5193", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_470", i32 1, i8* %"$indices_buf_5190", i32 1), !dbg !939 + %"$maybeOperators_5196" = bitcast i8* %"$maybeOperators_call_5195" to %"TName_Option_List_(ByStr20)"* + store %"TName_Option_List_(ByStr20)"* %"$maybeOperators_5196", %"TName_Option_List_(ByStr20)"** %maybeOperators, align 8 + %"$maybeOperators_5197" = load %"TName_Option_List_(ByStr20)"*, %"TName_Option_List_(ByStr20)"** %maybeOperators, align 8 + %"$$maybeOperators_5197_5198" = bitcast %"TName_Option_List_(ByStr20)"* %"$maybeOperators_5197" to i8* + %"$_literal_cost_call_5199" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_List_(ByStr20)_462", i8* %"$$maybeOperators_5197_5198") + %"$gasadd_5200" = add i64 %"$_literal_cost_call_5199", 0 + %"$gasadd_5201" = add i64 %"$gasadd_5200", 1 + %"$gasrem_5202" = load i64, i64* @_gasrem, align 8 + %"$gascmp_5203" = icmp ugt i64 %"$gasadd_5201", %"$gasrem_5202" + br i1 %"$gascmp_5203", label %"$out_of_gas_5204", label %"$have_gas_5205" + +"$out_of_gas_5204": ; preds = %"$have_gas_5181" + call void @_out_of_gas() + br label %"$have_gas_5205" + +"$have_gas_5205": ; preds = %"$out_of_gas_5204", %"$have_gas_5181" + %"$consume_5206" = sub i64 %"$gasrem_5202", %"$gasadd_5201" + store i64 %"$consume_5206", i64* @_gasrem, align 8 + %"$gasrem_5207" = load i64, i64* @_gasrem, align 8 + %"$gascmp_5208" = icmp ugt i64 1, %"$gasrem_5207" + br i1 %"$gascmp_5208", label %"$out_of_gas_5209", label %"$have_gas_5210" + +"$out_of_gas_5209": ; preds = %"$have_gas_5205" + call void @_out_of_gas() + br label %"$have_gas_5210" + +"$have_gas_5210": ; preds = %"$out_of_gas_5209", %"$have_gas_5205" + %"$consume_5211" = sub i64 %"$gasrem_5207", 1 + store i64 %"$consume_5211", i64* @_gasrem, align 8 %isSenderOAO = alloca %TName_Bool*, align 8 - %"$gasrem_5123" = load i64, i64* @_gasrem, align 8 - %"$gascmp_5124" = icmp ugt i64 1, %"$gasrem_5123" - br i1 %"$gascmp_5124", label %"$out_of_gas_5125", label %"$have_gas_5126" + call void @llvm.dbg.declare(metadata %TName_Bool** %isSenderOAO, metadata !940, metadata !DIExpression()), !dbg !941 + %"$gasrem_5212" = load i64, i64* @_gasrem, align 8 + %"$gascmp_5213" = icmp ugt i64 1, %"$gasrem_5212" + br i1 %"$gascmp_5213", label %"$out_of_gas_5214", label %"$have_gas_5215" -"$out_of_gas_5125": ; preds = %"$have_gas_5121" +"$out_of_gas_5214": ; preds = %"$have_gas_5210" call void @_out_of_gas() - br label %"$have_gas_5126" + br label %"$have_gas_5215" -"$have_gas_5126": ; preds = %"$out_of_gas_5125", %"$have_gas_5121" - %"$consume_5127" = sub i64 %"$gasrem_5123", 1 - store i64 %"$consume_5127", i64* @_gasrem, align 8 +"$have_gas_5215": ; preds = %"$out_of_gas_5214", %"$have_gas_5210" + %"$consume_5216" = sub i64 %"$gasrem_5212", 1 + store i64 %"$consume_5216", i64* @_gasrem, align 8 %"$ud-registry.getIsOAO_128" = alloca { { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* }, align 8 - %"$ud-registry.getIsOAO_5128" = 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_5129" = 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_5128", 0 - %"$ud-registry.getIsOAO_envptr_5130" = 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_5128", 1 - %"$ud-registry.getIsOAO__sender_5131" = alloca [20 x i8], align 1 - store [20 x i8] %_sender, [20 x i8]* %"$ud-registry.getIsOAO__sender_5131", align 1 - %"$ud-registry.getIsOAO_call_5132" = call { { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$ud-registry.getIsOAO_fptr_5129"(i8* %"$ud-registry.getIsOAO_envptr_5130", [20 x i8]* %"$ud-registry.getIsOAO__sender_5131"), !dbg !526 - store { { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$ud-registry.getIsOAO_call_5132", { { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* }* %"$ud-registry.getIsOAO_128", align 8, !dbg !526 + %"$ud-registry.getIsOAO_5217" = 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_5218" = 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_5217", 0 + %"$ud-registry.getIsOAO_envptr_5219" = 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_5217", 1 + %"$ud-registry.getIsOAO__sender_5220" = alloca [20 x i8], align 1 + store [20 x i8] %_sender, [20 x i8]* %"$ud-registry.getIsOAO__sender_5220", align 1 + %"$ud-registry.getIsOAO_call_5221" = call { { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$ud-registry.getIsOAO_fptr_5218"(i8* %"$ud-registry.getIsOAO_envptr_5219", [20 x i8]* %"$ud-registry.getIsOAO__sender_5220"), !dbg !942 + store { { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$ud-registry.getIsOAO_call_5221", { { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* }* %"$ud-registry.getIsOAO_128", align 8, !dbg !942 %"$ud-registry.getIsOAO_129" = alloca { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }, align 8 - %"$$ud-registry.getIsOAO_128_5133" = 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_128", align 8 - %"$$ud-registry.getIsOAO_128_fptr_5134" = extractvalue { { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.getIsOAO_128_5133", 0 - %"$$ud-registry.getIsOAO_128_envptr_5135" = extractvalue { { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.getIsOAO_128_5133", 1 - %"$$ud-registry.getIsOAO_128_recordOwner_5136" = alloca [20 x i8], align 1 - %"$recordOwner_5137" = load [20 x i8], [20 x i8]* %recordOwner, align 1 - store [20 x i8] %"$recordOwner_5137", [20 x i8]* %"$$ud-registry.getIsOAO_128_recordOwner_5136", align 1 - %"$$ud-registry.getIsOAO_128_call_5138" = call { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } %"$$ud-registry.getIsOAO_128_fptr_5134"(i8* %"$$ud-registry.getIsOAO_128_envptr_5135", [20 x i8]* %"$$ud-registry.getIsOAO_128_recordOwner_5136"), !dbg !526 - store { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } %"$$ud-registry.getIsOAO_128_call_5138", { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }* %"$ud-registry.getIsOAO_129", align 8, !dbg !526 + %"$$ud-registry.getIsOAO_128_5222" = 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_128", align 8 + %"$$ud-registry.getIsOAO_128_fptr_5223" = extractvalue { { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.getIsOAO_128_5222", 0 + %"$$ud-registry.getIsOAO_128_envptr_5224" = extractvalue { { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.getIsOAO_128_5222", 1 + %"$$ud-registry.getIsOAO_128_recordOwner_5225" = alloca [20 x i8], align 1 + %"$recordOwner_5226" = load [20 x i8], [20 x i8]* %recordOwner, align 1 + store [20 x i8] %"$recordOwner_5226", [20 x i8]* %"$$ud-registry.getIsOAO_128_recordOwner_5225", align 1 + %"$$ud-registry.getIsOAO_128_call_5227" = call { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } %"$$ud-registry.getIsOAO_128_fptr_5223"(i8* %"$$ud-registry.getIsOAO_128_envptr_5224", [20 x i8]* %"$$ud-registry.getIsOAO_128_recordOwner_5225"), !dbg !942 + store { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } %"$$ud-registry.getIsOAO_128_call_5227", { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }* %"$ud-registry.getIsOAO_129", align 8, !dbg !942 %"$ud-registry.getIsOAO_130" = alloca { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* }, align 8 - %"$$ud-registry.getIsOAO_129_5139" = 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_129", align 8 - %"$$ud-registry.getIsOAO_129_fptr_5140" = extractvalue { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } %"$$ud-registry.getIsOAO_129_5139", 0 - %"$$ud-registry.getIsOAO_129_envptr_5141" = extractvalue { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } %"$$ud-registry.getIsOAO_129_5139", 1 - %"$maybeApproved_5142" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %maybeApproved, align 8 - %"$$ud-registry.getIsOAO_129_call_5143" = call { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } %"$$ud-registry.getIsOAO_129_fptr_5140"(i8* %"$$ud-registry.getIsOAO_129_envptr_5141", %TName_Option_ByStr20* %"$maybeApproved_5142"), !dbg !526 - store { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } %"$$ud-registry.getIsOAO_129_call_5143", { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* }* %"$ud-registry.getIsOAO_130", align 8, !dbg !526 + %"$$ud-registry.getIsOAO_129_5228" = 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_129", align 8 + %"$$ud-registry.getIsOAO_129_fptr_5229" = extractvalue { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } %"$$ud-registry.getIsOAO_129_5228", 0 + %"$$ud-registry.getIsOAO_129_envptr_5230" = extractvalue { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } %"$$ud-registry.getIsOAO_129_5228", 1 + %"$maybeApproved_5231" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %maybeApproved, align 8 + %"$$ud-registry.getIsOAO_129_call_5232" = call { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } %"$$ud-registry.getIsOAO_129_fptr_5229"(i8* %"$$ud-registry.getIsOAO_129_envptr_5230", %TName_Option_ByStr20* %"$maybeApproved_5231"), !dbg !942 + store { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } %"$$ud-registry.getIsOAO_129_call_5232", { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* }* %"$ud-registry.getIsOAO_130", align 8, !dbg !942 %"$ud-registry.getIsOAO_131" = alloca %TName_Bool*, align 8 - %"$$ud-registry.getIsOAO_130_5144" = load { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* }, { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* }* %"$ud-registry.getIsOAO_130", align 8 - %"$$ud-registry.getIsOAO_130_fptr_5145" = extractvalue { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } %"$$ud-registry.getIsOAO_130_5144", 0 - %"$$ud-registry.getIsOAO_130_envptr_5146" = extractvalue { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } %"$$ud-registry.getIsOAO_130_5144", 1 - %"$maybeOperators_5147" = load %"TName_Option_List_(ByStr20)"*, %"TName_Option_List_(ByStr20)"** %maybeOperators, align 8 - %"$$ud-registry.getIsOAO_130_call_5148" = call %TName_Bool* %"$$ud-registry.getIsOAO_130_fptr_5145"(i8* %"$$ud-registry.getIsOAO_130_envptr_5146", %"TName_Option_List_(ByStr20)"* %"$maybeOperators_5147"), !dbg !526 - store %TName_Bool* %"$$ud-registry.getIsOAO_130_call_5148", %TName_Bool** %"$ud-registry.getIsOAO_131", align 8, !dbg !526 - %"$$ud-registry.getIsOAO_131_5149" = load %TName_Bool*, %TName_Bool** %"$ud-registry.getIsOAO_131", align 8 - store %TName_Bool* %"$$ud-registry.getIsOAO_131_5149", %TName_Bool** %isSenderOAO, align 8, !dbg !526 - %"$gasrem_5150" = load i64, i64* @_gasrem, align 8 - %"$gascmp_5151" = icmp ugt i64 2, %"$gasrem_5150" - br i1 %"$gascmp_5151", label %"$out_of_gas_5152", label %"$have_gas_5153" - -"$out_of_gas_5152": ; preds = %"$have_gas_5126" - call void @_out_of_gas() - br label %"$have_gas_5153" - -"$have_gas_5153": ; preds = %"$out_of_gas_5152", %"$have_gas_5126" - %"$consume_5154" = sub i64 %"$gasrem_5150", 2 - store i64 %"$consume_5154", i64* @_gasrem, align 8 - %"$isSenderOAO_5156" = load %TName_Bool*, %TName_Bool** %isSenderOAO, align 8 - %"$isSenderOAO_tag_5157" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$isSenderOAO_5156", i32 0, i32 0 - %"$isSenderOAO_tag_5158" = load i8, i8* %"$isSenderOAO_tag_5157", align 1 - switch i8 %"$isSenderOAO_tag_5158", label %"$empty_default_5159" [ - i8 0, label %"$True_5160" - i8 1, label %"$False_5302" - ], !dbg !527 - -"$True_5160": ; preds = %"$have_gas_5153" - %"$isSenderOAO_5161" = bitcast %TName_Bool* %"$isSenderOAO_5156" to %CName_True* - %"$gasrem_5162" = load i64, i64* @_gasrem, align 8 - %"$gascmp_5163" = icmp ugt i64 1, %"$gasrem_5162" - br i1 %"$gascmp_5163", label %"$out_of_gas_5164", label %"$have_gas_5165" - -"$out_of_gas_5164": ; preds = %"$True_5160" - call void @_out_of_gas() - br label %"$have_gas_5165" - -"$have_gas_5165": ; preds = %"$out_of_gas_5164", %"$True_5160" - %"$consume_5166" = sub i64 %"$gasrem_5162", 1 - store i64 %"$consume_5166", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$ud-registry.getIsOAO_131", metadata !943, metadata !DIExpression()), !dbg !942 + %"$$ud-registry.getIsOAO_130_5233" = load { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* }, { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* }* %"$ud-registry.getIsOAO_130", align 8 + %"$$ud-registry.getIsOAO_130_fptr_5234" = extractvalue { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } %"$$ud-registry.getIsOAO_130_5233", 0 + %"$$ud-registry.getIsOAO_130_envptr_5235" = extractvalue { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } %"$$ud-registry.getIsOAO_130_5233", 1 + %"$maybeOperators_5236" = load %"TName_Option_List_(ByStr20)"*, %"TName_Option_List_(ByStr20)"** %maybeOperators, align 8 + %"$$ud-registry.getIsOAO_130_call_5237" = call %TName_Bool* %"$$ud-registry.getIsOAO_130_fptr_5234"(i8* %"$$ud-registry.getIsOAO_130_envptr_5235", %"TName_Option_List_(ByStr20)"* %"$maybeOperators_5236"), !dbg !942 + store %TName_Bool* %"$$ud-registry.getIsOAO_130_call_5237", %TName_Bool** %"$ud-registry.getIsOAO_131", align 8, !dbg !942 + %"$$ud-registry.getIsOAO_131_5238" = load %TName_Bool*, %TName_Bool** %"$ud-registry.getIsOAO_131", align 8 + store %TName_Bool* %"$$ud-registry.getIsOAO_131_5238", %TName_Bool** %isSenderOAO, align 8, !dbg !942 + %"$gasrem_5239" = load i64, i64* @_gasrem, align 8 + %"$gascmp_5240" = icmp ugt i64 2, %"$gasrem_5239" + br i1 %"$gascmp_5240", label %"$out_of_gas_5241", label %"$have_gas_5242" + +"$out_of_gas_5241": ; preds = %"$have_gas_5215" + call void @_out_of_gas() + br label %"$have_gas_5242" + +"$have_gas_5242": ; preds = %"$out_of_gas_5241", %"$have_gas_5215" + %"$consume_5243" = sub i64 %"$gasrem_5239", 2 + store i64 %"$consume_5243", i64* @_gasrem, align 8 + %"$isSenderOAO_5245" = load %TName_Bool*, %TName_Bool** %isSenderOAO, align 8 + %"$isSenderOAO_tag_5246" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$isSenderOAO_5245", i32 0, i32 0 + %"$isSenderOAO_tag_5247" = load i8, i8* %"$isSenderOAO_tag_5246", align 1 + switch i8 %"$isSenderOAO_tag_5247", label %"$empty_default_5248" [ + i8 0, label %"$True_5249" + i8 1, label %"$False_5391" + ], !dbg !944 + +"$True_5249": ; preds = %"$have_gas_5242" + %"$isSenderOAO_5250" = bitcast %TName_Bool* %"$isSenderOAO_5245" to %CName_True* + %"$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 = %"$True_5249" + call void @_out_of_gas() + br label %"$have_gas_5254" + +"$have_gas_5254": ; preds = %"$out_of_gas_5253", %"$True_5249" + %"$consume_5255" = sub i64 %"$gasrem_5251", 1 + store i64 %"$consume_5255", i64* @_gasrem, align 8 %newRecord = alloca %TName_ud-registry.Record*, align 8 - %"$gasrem_5167" = load i64, i64* @_gasrem, align 8 - %"$gascmp_5168" = icmp ugt i64 1, %"$gasrem_5167" - br i1 %"$gascmp_5168", label %"$out_of_gas_5169", label %"$have_gas_5170" - -"$out_of_gas_5169": ; preds = %"$have_gas_5165" - call void @_out_of_gas() - br label %"$have_gas_5170" - -"$have_gas_5170": ; preds = %"$out_of_gas_5169", %"$have_gas_5165" - %"$consume_5171" = sub i64 %"$gasrem_5167", 1 - store i64 %"$consume_5171", i64* @_gasrem, align 8 - %"$adtval_5172_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_5172_salloc" = call i8* @_salloc(i8* %"$adtval_5172_load", i64 41) - %"$adtval_5172" = bitcast i8* %"$adtval_5172_salloc" to %CName_ud-registry.Record* - %"$adtgep_5173" = getelementptr inbounds %CName_ud-registry.Record, %CName_ud-registry.Record* %"$adtval_5172", i32 0, i32 0 - store i8 0, i8* %"$adtgep_5173", align 1 - %"$adtgep_5174" = getelementptr inbounds %CName_ud-registry.Record, %CName_ud-registry.Record* %"$adtval_5172", i32 0, i32 1 - store [20 x i8] %owner, [20 x i8]* %"$adtgep_5174", align 1 - %"$adtgep_5175" = getelementptr inbounds %CName_ud-registry.Record, %CName_ud-registry.Record* %"$adtval_5172", i32 0, i32 2 - store [20 x i8] %resolver, [20 x i8]* %"$adtgep_5175", align 1 - %"$adtptr_5176" = bitcast %CName_ud-registry.Record* %"$adtval_5172" to %TName_ud-registry.Record* - store %TName_ud-registry.Record* %"$adtptr_5176", %TName_ud-registry.Record** %newRecord, align 8, !dbg !528 - %"$newRecord_5177" = load %TName_ud-registry.Record*, %TName_ud-registry.Record** %newRecord, align 8 - %"$$newRecord_5177_5178" = bitcast %TName_ud-registry.Record* %"$newRecord_5177" to i8* - %"$_literal_cost_call_5179" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_ud-registry.Record_465", i8* %"$$newRecord_5177_5178") - %"$gasadd_5180" = add i64 %"$_literal_cost_call_5179", 1 - %"$gasrem_5181" = load i64, i64* @_gasrem, align 8 - %"$gascmp_5182" = icmp ugt i64 %"$gasadd_5180", %"$gasrem_5181" - br i1 %"$gascmp_5182", label %"$out_of_gas_5183", label %"$have_gas_5184" - -"$out_of_gas_5183": ; preds = %"$have_gas_5170" - call void @_out_of_gas() - br label %"$have_gas_5184" - -"$have_gas_5184": ; preds = %"$out_of_gas_5183", %"$have_gas_5170" - %"$consume_5185" = sub i64 %"$gasrem_5181", %"$gasadd_5180" - store i64 %"$consume_5185", i64* @_gasrem, align 8 - %"$indices_buf_5186_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$indices_buf_5186_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_5186_salloc_load", i64 32) - %"$indices_buf_5186_salloc" = bitcast i8* %"$indices_buf_5186_salloc_salloc" to [32 x i8]* - %"$indices_buf_5186" = bitcast [32 x i8]* %"$indices_buf_5186_salloc" to i8* - %"$indices_gep_5187" = getelementptr i8, i8* %"$indices_buf_5186", i32 0 - %indices_cast3 = bitcast i8* %"$indices_gep_5187" to [32 x i8]* + call void @llvm.dbg.declare(metadata %TName_ud-registry.Record** %newRecord, metadata !945, metadata !DIExpression()), !dbg !948 + %"$gasrem_5256" = load i64, i64* @_gasrem, align 8 + %"$gascmp_5257" = icmp ugt i64 1, %"$gasrem_5256" + br i1 %"$gascmp_5257", label %"$out_of_gas_5258", label %"$have_gas_5259" + +"$out_of_gas_5258": ; preds = %"$have_gas_5254" + call void @_out_of_gas() + br label %"$have_gas_5259" + +"$have_gas_5259": ; preds = %"$out_of_gas_5258", %"$have_gas_5254" + %"$consume_5260" = sub i64 %"$gasrem_5256", 1 + store i64 %"$consume_5260", i64* @_gasrem, align 8 + %"$adtval_5261_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_5261_salloc" = call i8* @_salloc(i8* %"$adtval_5261_load", i64 41) + %"$adtval_5261" = bitcast i8* %"$adtval_5261_salloc" to %CName_ud-registry.Record* + %"$adtgep_5262" = getelementptr inbounds %CName_ud-registry.Record, %CName_ud-registry.Record* %"$adtval_5261", i32 0, i32 0 + store i8 0, i8* %"$adtgep_5262", align 1 + %"$adtgep_5263" = getelementptr inbounds %CName_ud-registry.Record, %CName_ud-registry.Record* %"$adtval_5261", i32 0, i32 1 + store [20 x i8] %owner, [20 x i8]* %"$adtgep_5263", align 1 + %"$adtgep_5264" = getelementptr inbounds %CName_ud-registry.Record, %CName_ud-registry.Record* %"$adtval_5261", i32 0, i32 2 + store [20 x i8] %resolver, [20 x i8]* %"$adtgep_5264", align 1 + %"$adtptr_5265" = bitcast %CName_ud-registry.Record* %"$adtval_5261" to %TName_ud-registry.Record* + store %TName_ud-registry.Record* %"$adtptr_5265", %TName_ud-registry.Record** %newRecord, align 8, !dbg !949 + %"$newRecord_5266" = load %TName_ud-registry.Record*, %TName_ud-registry.Record** %newRecord, align 8 + %"$$newRecord_5266_5267" = bitcast %TName_ud-registry.Record* %"$newRecord_5266" to i8* + %"$_literal_cost_call_5268" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_ud-registry.Record_465", i8* %"$$newRecord_5266_5267") + %"$gasadd_5269" = add i64 %"$_literal_cost_call_5268", 1 + %"$gasrem_5270" = load i64, i64* @_gasrem, align 8 + %"$gascmp_5271" = icmp ugt i64 %"$gasadd_5269", %"$gasrem_5270" + br i1 %"$gascmp_5271", label %"$out_of_gas_5272", label %"$have_gas_5273" + +"$out_of_gas_5272": ; preds = %"$have_gas_5259" + call void @_out_of_gas() + br label %"$have_gas_5273" + +"$have_gas_5273": ; preds = %"$out_of_gas_5272", %"$have_gas_5259" + %"$consume_5274" = sub i64 %"$gasrem_5270", %"$gasadd_5269" + store i64 %"$consume_5274", i64* @_gasrem, align 8 + %"$indices_buf_5275_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$indices_buf_5275_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_5275_salloc_load", i64 32) + %"$indices_buf_5275_salloc" = bitcast i8* %"$indices_buf_5275_salloc_salloc" to [32 x i8]* + %"$indices_buf_5275" = bitcast [32 x i8]* %"$indices_buf_5275_salloc" to i8* + %"$indices_gep_5276" = getelementptr i8, i8* %"$indices_buf_5275", i32 0 + %indices_cast3 = bitcast i8* %"$indices_gep_5276" to [32 x i8]* store [32 x i8] %node, [32 x i8]* %indices_cast3, align 1 - %"$execptr_load_5188" = load i8*, i8** @_execptr, align 8 - %"$newRecord_5190" = load %TName_ud-registry.Record*, %TName_ud-registry.Record** %newRecord, align 8 - %"$update_value_5191" = bitcast %TName_ud-registry.Record* %"$newRecord_5190" to i8* - call void @_update_field(i8* %"$execptr_load_5188", i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$records_5189", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_472", i32 1, i8* %"$indices_buf_5186", i8* %"$update_value_5191"), !dbg !531 - %"$gasrem_5192" = load i64, i64* @_gasrem, align 8 - %"$gascmp_5193" = icmp ugt i64 1, %"$gasrem_5192" - br i1 %"$gascmp_5193", label %"$out_of_gas_5194", label %"$have_gas_5195" + %"$execptr_load_5277" = load i8*, i8** @_execptr, align 8 + %"$newRecord_5279" = load %TName_ud-registry.Record*, %TName_ud-registry.Record** %newRecord, align 8 + %"$update_value_5280" = bitcast %TName_ud-registry.Record* %"$newRecord_5279" to i8* + call void @_update_field(i8* %"$execptr_load_5277", i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$records_5278", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_472", i32 1, i8* %"$indices_buf_5275", i8* %"$update_value_5280"), !dbg !950 + %"$gasrem_5281" = load i64, i64* @_gasrem, align 8 + %"$gascmp_5282" = icmp ugt i64 1, %"$gasrem_5281" + br i1 %"$gascmp_5282", label %"$out_of_gas_5283", label %"$have_gas_5284" -"$out_of_gas_5194": ; preds = %"$have_gas_5184" +"$out_of_gas_5283": ; preds = %"$have_gas_5273" call void @_out_of_gas() - br label %"$have_gas_5195" + br label %"$have_gas_5284" -"$have_gas_5195": ; preds = %"$out_of_gas_5194", %"$have_gas_5184" - %"$consume_5196" = sub i64 %"$gasrem_5192", 1 - store i64 %"$consume_5196", i64* @_gasrem, align 8 +"$have_gas_5284": ; preds = %"$out_of_gas_5283", %"$have_gas_5273" + %"$consume_5285" = sub i64 %"$gasrem_5281", 1 + store i64 %"$consume_5285", i64* @_gasrem, align 8 %e = alloca i8*, align 8 - %"$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" + call void @llvm.dbg.declare(metadata i8** %e, metadata !951, metadata !DIExpression()), !dbg !952 + %"$gasrem_5286" = load i64, i64* @_gasrem, align 8 + %"$gascmp_5287" = icmp ugt i64 1, %"$gasrem_5286" + br i1 %"$gascmp_5287", label %"$out_of_gas_5288", label %"$have_gas_5289" -"$out_of_gas_5199": ; preds = %"$have_gas_5195" +"$out_of_gas_5288": ; preds = %"$have_gas_5284" call void @_out_of_gas() - br label %"$have_gas_5200" + br label %"$have_gas_5289" -"$have_gas_5200": ; preds = %"$out_of_gas_5199", %"$have_gas_5195" - %"$consume_5201" = sub i64 %"$gasrem_5197", 1 - store i64 %"$consume_5201", i64* @_gasrem, align 8 +"$have_gas_5289": ; preds = %"$out_of_gas_5288", %"$have_gas_5284" + %"$consume_5290" = sub i64 %"$gasrem_5286", 1 + store i64 %"$consume_5290", i64* @_gasrem, align 8 %"$ud-registry.eConfigured_123" = alloca { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* }, align 8 - %"$ud-registry.eConfigured_5202" = 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_5203" = extractvalue { { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, [32 x i8]*)*, i8* } %"$ud-registry.eConfigured_5202", 0 - %"$ud-registry.eConfigured_envptr_5204" = extractvalue { { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, [32 x i8]*)*, i8* } %"$ud-registry.eConfigured_5202", 1 - %"$ud-registry.eConfigured_node_5205" = alloca [32 x i8], align 1 - store [32 x i8] %node, [32 x i8]* %"$ud-registry.eConfigured_node_5205", align 1 - %"$ud-registry.eConfigured_call_5206" = call { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$ud-registry.eConfigured_fptr_5203"(i8* %"$ud-registry.eConfigured_envptr_5204", [32 x i8]* %"$ud-registry.eConfigured_node_5205"), !dbg !532 - store { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$ud-registry.eConfigured_call_5206", { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* }* %"$ud-registry.eConfigured_123", align 8, !dbg !532 + %"$ud-registry.eConfigured_5291" = 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_5292" = extractvalue { { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, [32 x i8]*)*, i8* } %"$ud-registry.eConfigured_5291", 0 + %"$ud-registry.eConfigured_envptr_5293" = extractvalue { { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, [32 x i8]*)*, i8* } %"$ud-registry.eConfigured_5291", 1 + %"$ud-registry.eConfigured_node_5294" = alloca [32 x i8], align 1 + store [32 x i8] %node, [32 x i8]* %"$ud-registry.eConfigured_node_5294", align 1 + %"$ud-registry.eConfigured_call_5295" = call { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$ud-registry.eConfigured_fptr_5292"(i8* %"$ud-registry.eConfigured_envptr_5293", [32 x i8]* %"$ud-registry.eConfigured_node_5294"), !dbg !953 + store { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$ud-registry.eConfigured_call_5295", { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* }* %"$ud-registry.eConfigured_123", align 8, !dbg !953 %"$ud-registry.eConfigured_124" = alloca { i8* (i8*, [20 x i8]*)*, i8* }, align 8 - %"$$ud-registry.eConfigured_123_5207" = 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_123", align 8 - %"$$ud-registry.eConfigured_123_fptr_5208" = extractvalue { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.eConfigured_123_5207", 0 - %"$$ud-registry.eConfigured_123_envptr_5209" = extractvalue { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.eConfigured_123_5207", 1 - %"$$ud-registry.eConfigured_123_owner_5210" = alloca [20 x i8], align 1 - store [20 x i8] %owner, [20 x i8]* %"$$ud-registry.eConfigured_123_owner_5210", align 1 - %"$$ud-registry.eConfigured_123_call_5211" = call { i8* (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.eConfigured_123_fptr_5208"(i8* %"$$ud-registry.eConfigured_123_envptr_5209", [20 x i8]* %"$$ud-registry.eConfigured_123_owner_5210"), !dbg !532 - store { i8* (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.eConfigured_123_call_5211", { i8* (i8*, [20 x i8]*)*, i8* }* %"$ud-registry.eConfigured_124", align 8, !dbg !532 + %"$$ud-registry.eConfigured_123_5296" = 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_123", align 8 + %"$$ud-registry.eConfigured_123_fptr_5297" = extractvalue { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.eConfigured_123_5296", 0 + %"$$ud-registry.eConfigured_123_envptr_5298" = extractvalue { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.eConfigured_123_5296", 1 + %"$$ud-registry.eConfigured_123_owner_5299" = alloca [20 x i8], align 1 + store [20 x i8] %owner, [20 x i8]* %"$$ud-registry.eConfigured_123_owner_5299", align 1 + %"$$ud-registry.eConfigured_123_call_5300" = call { i8* (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.eConfigured_123_fptr_5297"(i8* %"$$ud-registry.eConfigured_123_envptr_5298", [20 x i8]* %"$$ud-registry.eConfigured_123_owner_5299"), !dbg !953 + store { i8* (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.eConfigured_123_call_5300", { i8* (i8*, [20 x i8]*)*, i8* }* %"$ud-registry.eConfigured_124", align 8, !dbg !953 %"$ud-registry.eConfigured_125" = alloca i8*, align 8 - %"$$ud-registry.eConfigured_124_5212" = load { i8* (i8*, [20 x i8]*)*, i8* }, { i8* (i8*, [20 x i8]*)*, i8* }* %"$ud-registry.eConfigured_124", align 8 - %"$$ud-registry.eConfigured_124_fptr_5213" = extractvalue { i8* (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.eConfigured_124_5212", 0 - %"$$ud-registry.eConfigured_124_envptr_5214" = extractvalue { i8* (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.eConfigured_124_5212", 1 - %"$$ud-registry.eConfigured_124_resolver_5215" = alloca [20 x i8], align 1 - store [20 x i8] %resolver, [20 x i8]* %"$$ud-registry.eConfigured_124_resolver_5215", align 1 - %"$$ud-registry.eConfigured_124_call_5216" = call i8* %"$$ud-registry.eConfigured_124_fptr_5213"(i8* %"$$ud-registry.eConfigured_124_envptr_5214", [20 x i8]* %"$$ud-registry.eConfigured_124_resolver_5215"), !dbg !532 - store i8* %"$$ud-registry.eConfigured_124_call_5216", i8** %"$ud-registry.eConfigured_125", align 8, !dbg !532 - %"$$ud-registry.eConfigured_125_5217" = load i8*, i8** %"$ud-registry.eConfigured_125", align 8 - store i8* %"$$ud-registry.eConfigured_125_5217", i8** %e, align 8, !dbg !532 - %"$e_5218" = load i8*, i8** %e, align 8 - %"$_literal_cost_call_5220" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Event_446", i8* %"$e_5218") - %"$gasrem_5221" = load i64, i64* @_gasrem, align 8 - %"$gascmp_5222" = icmp ugt i64 %"$_literal_cost_call_5220", %"$gasrem_5221" - br i1 %"$gascmp_5222", label %"$out_of_gas_5223", label %"$have_gas_5224" - -"$out_of_gas_5223": ; preds = %"$have_gas_5200" - call void @_out_of_gas() - br label %"$have_gas_5224" - -"$have_gas_5224": ; preds = %"$out_of_gas_5223", %"$have_gas_5200" - %"$consume_5225" = sub i64 %"$gasrem_5221", %"$_literal_cost_call_5220" - store i64 %"$consume_5225", i64* @_gasrem, align 8 - %"$execptr_load_5226" = load i8*, i8** @_execptr, align 8 - %"$e_5227" = load i8*, i8** %e, align 8 - call void @_event(i8* %"$execptr_load_5226", %_TyDescrTy_Typ* @"$TyDescr_Event_446", i8* %"$e_5227"), !dbg !533 - %"$gasrem_5228" = load i64, i64* @_gasrem, align 8 - %"$gascmp_5229" = icmp ugt i64 1, %"$gasrem_5228" - br i1 %"$gascmp_5229", label %"$out_of_gas_5230", label %"$have_gas_5231" - -"$out_of_gas_5230": ; preds = %"$have_gas_5224" - call void @_out_of_gas() - br label %"$have_gas_5231" - -"$have_gas_5231": ; preds = %"$out_of_gas_5230", %"$have_gas_5224" - %"$consume_5232" = sub i64 %"$gasrem_5228", 1 - store i64 %"$consume_5232", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata i8** %"$ud-registry.eConfigured_125", metadata !954, metadata !DIExpression()), !dbg !953 + %"$$ud-registry.eConfigured_124_5301" = load { i8* (i8*, [20 x i8]*)*, i8* }, { i8* (i8*, [20 x i8]*)*, i8* }* %"$ud-registry.eConfigured_124", align 8 + %"$$ud-registry.eConfigured_124_fptr_5302" = extractvalue { i8* (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.eConfigured_124_5301", 0 + %"$$ud-registry.eConfigured_124_envptr_5303" = extractvalue { i8* (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.eConfigured_124_5301", 1 + %"$$ud-registry.eConfigured_124_resolver_5304" = alloca [20 x i8], align 1 + store [20 x i8] %resolver, [20 x i8]* %"$$ud-registry.eConfigured_124_resolver_5304", align 1 + %"$$ud-registry.eConfigured_124_call_5305" = call i8* %"$$ud-registry.eConfigured_124_fptr_5302"(i8* %"$$ud-registry.eConfigured_124_envptr_5303", [20 x i8]* %"$$ud-registry.eConfigured_124_resolver_5304"), !dbg !953 + store i8* %"$$ud-registry.eConfigured_124_call_5305", i8** %"$ud-registry.eConfigured_125", align 8, !dbg !953 + %"$$ud-registry.eConfigured_125_5306" = load i8*, i8** %"$ud-registry.eConfigured_125", align 8 + store i8* %"$$ud-registry.eConfigured_125_5306", i8** %e, align 8, !dbg !953 + %"$e_5307" = load i8*, i8** %e, align 8 + %"$_literal_cost_call_5309" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Event_446", i8* %"$e_5307") + %"$gasrem_5310" = load i64, i64* @_gasrem, align 8 + %"$gascmp_5311" = icmp ugt i64 %"$_literal_cost_call_5309", %"$gasrem_5310" + br i1 %"$gascmp_5311", label %"$out_of_gas_5312", label %"$have_gas_5313" + +"$out_of_gas_5312": ; preds = %"$have_gas_5289" + call void @_out_of_gas() + br label %"$have_gas_5313" + +"$have_gas_5313": ; preds = %"$out_of_gas_5312", %"$have_gas_5289" + %"$consume_5314" = sub i64 %"$gasrem_5310", %"$_literal_cost_call_5309" + store i64 %"$consume_5314", i64* @_gasrem, align 8 + %"$execptr_load_5315" = load i8*, i8** @_execptr, align 8 + %"$e_5316" = load i8*, i8** %e, align 8 + call void @_event(i8* %"$execptr_load_5315", %_TyDescrTy_Typ* @"$TyDescr_Event_446", i8* %"$e_5316"), !dbg !955 + %"$gasrem_5317" = load i64, i64* @_gasrem, align 8 + %"$gascmp_5318" = icmp ugt i64 1, %"$gasrem_5317" + br i1 %"$gascmp_5318", label %"$out_of_gas_5319", label %"$have_gas_5320" + +"$out_of_gas_5319": ; preds = %"$have_gas_5313" + call void @_out_of_gas() + br label %"$have_gas_5320" + +"$have_gas_5320": ; preds = %"$out_of_gas_5319", %"$have_gas_5313" + %"$consume_5321" = sub i64 %"$gasrem_5317", 1 + store i64 %"$consume_5321", i64* @_gasrem, align 8 %msgs = alloca %TName_List_Message*, align 8 - %"$gasrem_5233" = load i64, i64* @_gasrem, align 8 - %"$gascmp_5234" = icmp ugt i64 1, %"$gasrem_5233" - br i1 %"$gascmp_5234", label %"$out_of_gas_5235", label %"$have_gas_5236" + call void @llvm.dbg.declare(metadata %TName_List_Message** %msgs, metadata !956, metadata !DIExpression()), !dbg !957 + %"$gasrem_5322" = load i64, i64* @_gasrem, align 8 + %"$gascmp_5323" = icmp ugt i64 1, %"$gasrem_5322" + br i1 %"$gascmp_5323", label %"$out_of_gas_5324", label %"$have_gas_5325" -"$out_of_gas_5235": ; preds = %"$have_gas_5231" +"$out_of_gas_5324": ; preds = %"$have_gas_5320" call void @_out_of_gas() - br label %"$have_gas_5236" + br label %"$have_gas_5325" -"$have_gas_5236": ; preds = %"$out_of_gas_5235", %"$have_gas_5231" - %"$consume_5237" = sub i64 %"$gasrem_5233", 1 - store i64 %"$consume_5237", i64* @_gasrem, align 8 +"$have_gas_5325": ; preds = %"$out_of_gas_5324", %"$have_gas_5320" + %"$consume_5326" = sub i64 %"$gasrem_5322", 1 + store i64 %"$consume_5326", i64* @_gasrem, align 8 %m = alloca i8*, align 8 - %"$gasrem_5238" = load i64, i64* @_gasrem, align 8 - %"$gascmp_5239" = icmp ugt i64 1, %"$gasrem_5238" - br i1 %"$gascmp_5239", label %"$out_of_gas_5240", label %"$have_gas_5241" - -"$out_of_gas_5240": ; preds = %"$have_gas_5236" - call void @_out_of_gas() - br label %"$have_gas_5241" - -"$have_gas_5241": ; preds = %"$out_of_gas_5240", %"$have_gas_5236" - %"$consume_5242" = sub i64 %"$gasrem_5238", 1 - store i64 %"$consume_5242", i64* @_gasrem, align 8 - %"$msgobj_5243_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$msgobj_5243_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_5243_salloc_load", i64 225) - %"$msgobj_5243_salloc" = bitcast i8* %"$msgobj_5243_salloc_salloc" to [225 x i8]* - %"$msgobj_5243" = bitcast [225 x i8]* %"$msgobj_5243_salloc" to i8* - store i8 5, i8* %"$msgobj_5243", align 1 - %"$msgobj_fname_5245" = getelementptr i8, i8* %"$msgobj_5243", i32 1 - %"$msgobj_fname_5246" = bitcast i8* %"$msgobj_fname_5245" to %String* - store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_5244", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_5246", align 8 - %"$msgobj_td_5247" = getelementptr i8, i8* %"$msgobj_5243", i32 17 - %"$msgobj_td_5248" = bitcast i8* %"$msgobj_td_5247" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_String_440", %_TyDescrTy_Typ** %"$msgobj_td_5248", align 8 - %"$msgobj_v_5250" = getelementptr i8, i8* %"$msgobj_5243", i32 25 - %"$msgobj_v_5251" = bitcast i8* %"$msgobj_v_5250" to %String* - store %String { i8* getelementptr inbounds ([18 x i8], [18 x i8]* @"$stringlit_5249", i32 0, i32 0), i32 18 }, %String* %"$msgobj_v_5251", align 8 - %"$msgobj_fname_5253" = getelementptr i8, i8* %"$msgobj_5243", i32 41 - %"$msgobj_fname_5254" = bitcast i8* %"$msgobj_fname_5253" to %String* - store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_5252", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_5254", align 8 - %"$msgobj_td_5255" = getelementptr i8, i8* %"$msgobj_5243", i32 57 - %"$msgobj_td_5256" = bitcast i8* %"$msgobj_td_5255" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Bystr32_456", %_TyDescrTy_Typ** %"$msgobj_td_5256", align 8 - %"$msgobj_v_5257" = getelementptr i8, i8* %"$msgobj_5243", i32 65 - %"$msgobj_v_5258" = bitcast i8* %"$msgobj_v_5257" to [32 x i8]* - store [32 x i8] %node, [32 x i8]* %"$msgobj_v_5258", align 1 - %"$msgobj_fname_5260" = getelementptr i8, i8* %"$msgobj_5243", i32 97 - %"$msgobj_fname_5261" = bitcast i8* %"$msgobj_fname_5260" to %String* - store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_5259", i32 0, i32 0), i32 5 }, %String* %"$msgobj_fname_5261", align 8 - %"$msgobj_td_5262" = getelementptr i8, i8* %"$msgobj_5243", i32 113 - %"$msgobj_td_5263" = bitcast i8* %"$msgobj_td_5262" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_458", %_TyDescrTy_Typ** %"$msgobj_td_5263", align 8 - %"$msgobj_v_5264" = getelementptr i8, i8* %"$msgobj_5243", i32 121 - %"$msgobj_v_5265" = bitcast i8* %"$msgobj_v_5264" to [20 x i8]* - store [20 x i8] %owner, [20 x i8]* %"$msgobj_v_5265", align 1 - %"$msgobj_fname_5267" = getelementptr i8, i8* %"$msgobj_5243", i32 141 - %"$msgobj_fname_5268" = bitcast i8* %"$msgobj_fname_5267" to %String* - store %String { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$stringlit_5266", i32 0, i32 0), i32 7 }, %String* %"$msgobj_fname_5268", align 8 - %"$msgobj_td_5269" = getelementptr i8, i8* %"$msgobj_5243", i32 157 - %"$msgobj_td_5270" = bitcast i8* %"$msgobj_td_5269" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Uint128_434", %_TyDescrTy_Typ** %"$msgobj_td_5270", align 8 - %"$msgobj_v_5271" = getelementptr i8, i8* %"$msgobj_5243", i32 165 - %"$msgobj_v_5272" = bitcast i8* %"$msgobj_v_5271" to %Uint128* - store %Uint128 zeroinitializer, %Uint128* %"$msgobj_v_5272", align 8 - %"$msgobj_fname_5274" = getelementptr i8, i8* %"$msgobj_5243", i32 181 - %"$msgobj_fname_5275" = bitcast i8* %"$msgobj_fname_5274" to %String* - store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_5273", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_5275", align 8 - %"$msgobj_td_5276" = getelementptr i8, i8* %"$msgobj_5243", i32 197 - %"$msgobj_td_5277" = bitcast i8* %"$msgobj_td_5276" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_458", %_TyDescrTy_Typ** %"$msgobj_td_5277", align 8 - %"$msgobj_v_5278" = getelementptr i8, i8* %"$msgobj_5243", i32 205 - %"$msgobj_v_5279" = bitcast i8* %"$msgobj_v_5278" to [20 x i8]* - store [20 x i8] %_sender, [20 x i8]* %"$msgobj_v_5279", align 1 - store i8* %"$msgobj_5243", i8** %m, align 8, !dbg !534 - %"$gasrem_5281" = load i64, i64* @_gasrem, align 8 - %"$gascmp_5282" = icmp ugt i64 1, %"$gasrem_5281" - br i1 %"$gascmp_5282", label %"$out_of_gas_5283", label %"$have_gas_5284" - -"$out_of_gas_5283": ; preds = %"$have_gas_5241" - call void @_out_of_gas() - br label %"$have_gas_5284" - -"$have_gas_5284": ; preds = %"$out_of_gas_5283", %"$have_gas_5241" - %"$consume_5285" = sub i64 %"$gasrem_5281", 1 - store i64 %"$consume_5285", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata i8** %m, metadata !958, metadata !DIExpression()), !dbg !959 + %"$gasrem_5327" = load i64, i64* @_gasrem, align 8 + %"$gascmp_5328" = icmp ugt i64 1, %"$gasrem_5327" + br i1 %"$gascmp_5328", label %"$out_of_gas_5329", label %"$have_gas_5330" + +"$out_of_gas_5329": ; preds = %"$have_gas_5325" + call void @_out_of_gas() + br label %"$have_gas_5330" + +"$have_gas_5330": ; preds = %"$out_of_gas_5329", %"$have_gas_5325" + %"$consume_5331" = sub i64 %"$gasrem_5327", 1 + store i64 %"$consume_5331", i64* @_gasrem, align 8 + %"$msgobj_5332_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$msgobj_5332_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_5332_salloc_load", i64 225) + %"$msgobj_5332_salloc" = bitcast i8* %"$msgobj_5332_salloc_salloc" to [225 x i8]* + %"$msgobj_5332" = bitcast [225 x i8]* %"$msgobj_5332_salloc" to i8* + store i8 5, i8* %"$msgobj_5332", align 1 + %"$msgobj_fname_5334" = getelementptr i8, i8* %"$msgobj_5332", i32 1 + %"$msgobj_fname_5335" = bitcast i8* %"$msgobj_fname_5334" to %String* + store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_5333", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_5335", align 8 + %"$msgobj_td_5336" = getelementptr i8, i8* %"$msgobj_5332", i32 17 + %"$msgobj_td_5337" = bitcast i8* %"$msgobj_td_5336" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_String_440", %_TyDescrTy_Typ** %"$msgobj_td_5337", align 8 + %"$msgobj_v_5339" = getelementptr i8, i8* %"$msgobj_5332", i32 25 + %"$msgobj_v_5340" = bitcast i8* %"$msgobj_v_5339" to %String* + store %String { i8* getelementptr inbounds ([18 x i8], [18 x i8]* @"$stringlit_5338", i32 0, i32 0), i32 18 }, %String* %"$msgobj_v_5340", align 8 + %"$msgobj_fname_5342" = getelementptr i8, i8* %"$msgobj_5332", i32 41 + %"$msgobj_fname_5343" = bitcast i8* %"$msgobj_fname_5342" to %String* + store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_5341", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_5343", align 8 + %"$msgobj_td_5344" = getelementptr i8, i8* %"$msgobj_5332", i32 57 + %"$msgobj_td_5345" = bitcast i8* %"$msgobj_td_5344" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Bystr32_456", %_TyDescrTy_Typ** %"$msgobj_td_5345", align 8 + %"$msgobj_v_5346" = getelementptr i8, i8* %"$msgobj_5332", i32 65 + %"$msgobj_v_5347" = bitcast i8* %"$msgobj_v_5346" to [32 x i8]* + store [32 x i8] %node, [32 x i8]* %"$msgobj_v_5347", align 1 + %"$msgobj_fname_5349" = getelementptr i8, i8* %"$msgobj_5332", i32 97 + %"$msgobj_fname_5350" = bitcast i8* %"$msgobj_fname_5349" to %String* + store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_5348", i32 0, i32 0), i32 5 }, %String* %"$msgobj_fname_5350", align 8 + %"$msgobj_td_5351" = getelementptr i8, i8* %"$msgobj_5332", i32 113 + %"$msgobj_td_5352" = bitcast i8* %"$msgobj_td_5351" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_458", %_TyDescrTy_Typ** %"$msgobj_td_5352", align 8 + %"$msgobj_v_5353" = getelementptr i8, i8* %"$msgobj_5332", i32 121 + %"$msgobj_v_5354" = bitcast i8* %"$msgobj_v_5353" to [20 x i8]* + store [20 x i8] %owner, [20 x i8]* %"$msgobj_v_5354", align 1 + %"$msgobj_fname_5356" = getelementptr i8, i8* %"$msgobj_5332", i32 141 + %"$msgobj_fname_5357" = bitcast i8* %"$msgobj_fname_5356" to %String* + store %String { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$stringlit_5355", i32 0, i32 0), i32 7 }, %String* %"$msgobj_fname_5357", align 8 + %"$msgobj_td_5358" = getelementptr i8, i8* %"$msgobj_5332", i32 157 + %"$msgobj_td_5359" = bitcast i8* %"$msgobj_td_5358" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Uint128_434", %_TyDescrTy_Typ** %"$msgobj_td_5359", align 8 + %"$msgobj_v_5360" = getelementptr i8, i8* %"$msgobj_5332", i32 165 + %"$msgobj_v_5361" = bitcast i8* %"$msgobj_v_5360" to %Uint128* + store %Uint128 zeroinitializer, %Uint128* %"$msgobj_v_5361", align 8 + %"$msgobj_fname_5363" = getelementptr i8, i8* %"$msgobj_5332", i32 181 + %"$msgobj_fname_5364" = bitcast i8* %"$msgobj_fname_5363" to %String* + store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_5362", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_5364", align 8 + %"$msgobj_td_5365" = getelementptr i8, i8* %"$msgobj_5332", i32 197 + %"$msgobj_td_5366" = bitcast i8* %"$msgobj_td_5365" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_458", %_TyDescrTy_Typ** %"$msgobj_td_5366", align 8 + %"$msgobj_v_5367" = getelementptr i8, i8* %"$msgobj_5332", i32 205 + %"$msgobj_v_5368" = bitcast i8* %"$msgobj_v_5367" to [20 x i8]* + store [20 x i8] %_sender, [20 x i8]* %"$msgobj_v_5368", align 1 + store i8* %"$msgobj_5332", i8** %m, align 8, !dbg !960 + %"$gasrem_5370" = load i64, i64* @_gasrem, align 8 + %"$gascmp_5371" = icmp ugt i64 1, %"$gasrem_5370" + br i1 %"$gascmp_5371", label %"$out_of_gas_5372", label %"$have_gas_5373" + +"$out_of_gas_5372": ; preds = %"$have_gas_5330" + call void @_out_of_gas() + br label %"$have_gas_5373" + +"$have_gas_5373": ; preds = %"$out_of_gas_5372", %"$have_gas_5330" + %"$consume_5374" = sub i64 %"$gasrem_5370", 1 + store i64 %"$consume_5374", i64* @_gasrem, align 8 %"$ud-registry.oneMsg_122" = alloca %TName_List_Message*, align 8 - %"$ud-registry.oneMsg_5286" = load { %TName_List_Message* (i8*, i8*)*, i8* }, { %TName_List_Message* (i8*, i8*)*, i8* }* @ud-registry.oneMsg, align 8 - %"$ud-registry.oneMsg_fptr_5287" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$ud-registry.oneMsg_5286", 0 - %"$ud-registry.oneMsg_envptr_5288" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$ud-registry.oneMsg_5286", 1 - %"$m_5289" = load i8*, i8** %m, align 8 - %"$ud-registry.oneMsg_call_5290" = call %TName_List_Message* %"$ud-registry.oneMsg_fptr_5287"(i8* %"$ud-registry.oneMsg_envptr_5288", i8* %"$m_5289"), !dbg !535 - store %TName_List_Message* %"$ud-registry.oneMsg_call_5290", %TName_List_Message** %"$ud-registry.oneMsg_122", align 8, !dbg !535 - %"$$ud-registry.oneMsg_122_5291" = load %TName_List_Message*, %TName_List_Message** %"$ud-registry.oneMsg_122", align 8 - store %TName_List_Message* %"$$ud-registry.oneMsg_122_5291", %TName_List_Message** %msgs, align 8, !dbg !535 - %"$msgs_5292" = load %TName_List_Message*, %TName_List_Message** %msgs, align 8 - %"$$msgs_5292_5293" = bitcast %TName_List_Message* %"$msgs_5292" to i8* - %"$_literal_cost_call_5294" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_467", i8* %"$$msgs_5292_5293") - %"$gasrem_5295" = load i64, i64* @_gasrem, align 8 - %"$gascmp_5296" = icmp ugt i64 %"$_literal_cost_call_5294", %"$gasrem_5295" - br i1 %"$gascmp_5296", label %"$out_of_gas_5297", label %"$have_gas_5298" - -"$out_of_gas_5297": ; preds = %"$have_gas_5284" - call void @_out_of_gas() - br label %"$have_gas_5298" - -"$have_gas_5298": ; preds = %"$out_of_gas_5297", %"$have_gas_5284" - %"$consume_5299" = sub i64 %"$gasrem_5295", %"$_literal_cost_call_5294" - store i64 %"$consume_5299", i64* @_gasrem, align 8 - %"$execptr_load_5300" = load i8*, i8** @_execptr, align 8 - %"$msgs_5301" = load %TName_List_Message*, %TName_List_Message** %msgs, align 8 - call void @_send(i8* %"$execptr_load_5300", %_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_467", %TName_List_Message* %"$msgs_5301"), !dbg !536 - br label %"$matchsucc_5155" - -"$False_5302": ; preds = %"$have_gas_5153" - %"$isSenderOAO_5303" = bitcast %TName_Bool* %"$isSenderOAO_5156" to %CName_False* - %"$gasrem_5304" = load i64, i64* @_gasrem, align 8 - %"$gascmp_5305" = icmp ugt i64 1, %"$gasrem_5304" - br i1 %"$gascmp_5305", label %"$out_of_gas_5306", label %"$have_gas_5307" - -"$out_of_gas_5306": ; preds = %"$False_5302" - call void @_out_of_gas() - br label %"$have_gas_5307" - -"$have_gas_5307": ; preds = %"$out_of_gas_5306", %"$False_5302" - %"$consume_5308" = sub i64 %"$gasrem_5304", 1 - store i64 %"$consume_5308", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_List_Message** %"$ud-registry.oneMsg_122", metadata !961, metadata !DIExpression()), !dbg !962 + %"$ud-registry.oneMsg_5375" = load { %TName_List_Message* (i8*, i8*)*, i8* }, { %TName_List_Message* (i8*, i8*)*, i8* }* @ud-registry.oneMsg, align 8 + %"$ud-registry.oneMsg_fptr_5376" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$ud-registry.oneMsg_5375", 0 + %"$ud-registry.oneMsg_envptr_5377" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$ud-registry.oneMsg_5375", 1 + %"$m_5378" = load i8*, i8** %m, align 8 + %"$ud-registry.oneMsg_call_5379" = call %TName_List_Message* %"$ud-registry.oneMsg_fptr_5376"(i8* %"$ud-registry.oneMsg_envptr_5377", i8* %"$m_5378"), !dbg !962 + store %TName_List_Message* %"$ud-registry.oneMsg_call_5379", %TName_List_Message** %"$ud-registry.oneMsg_122", align 8, !dbg !962 + %"$$ud-registry.oneMsg_122_5380" = load %TName_List_Message*, %TName_List_Message** %"$ud-registry.oneMsg_122", align 8 + store %TName_List_Message* %"$$ud-registry.oneMsg_122_5380", %TName_List_Message** %msgs, align 8, !dbg !962 + %"$msgs_5381" = load %TName_List_Message*, %TName_List_Message** %msgs, align 8 + %"$$msgs_5381_5382" = bitcast %TName_List_Message* %"$msgs_5381" to i8* + %"$_literal_cost_call_5383" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_467", i8* %"$$msgs_5381_5382") + %"$gasrem_5384" = load i64, i64* @_gasrem, align 8 + %"$gascmp_5385" = icmp ugt i64 %"$_literal_cost_call_5383", %"$gasrem_5384" + br i1 %"$gascmp_5385", label %"$out_of_gas_5386", label %"$have_gas_5387" + +"$out_of_gas_5386": ; preds = %"$have_gas_5373" + call void @_out_of_gas() + br label %"$have_gas_5387" + +"$have_gas_5387": ; preds = %"$out_of_gas_5386", %"$have_gas_5373" + %"$consume_5388" = sub i64 %"$gasrem_5384", %"$_literal_cost_call_5383" + store i64 %"$consume_5388", i64* @_gasrem, align 8 + %"$execptr_load_5389" = load i8*, i8** @_execptr, align 8 + %"$msgs_5390" = load %TName_List_Message*, %TName_List_Message** %msgs, align 8 + call void @_send(i8* %"$execptr_load_5389", %_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_467", %TName_List_Message* %"$msgs_5390"), !dbg !963 + br label %"$matchsucc_5244" + +"$False_5391": ; preds = %"$have_gas_5242" + %"$isSenderOAO_5392" = bitcast %TName_Bool* %"$isSenderOAO_5245" to %CName_False* + %"$gasrem_5393" = load i64, i64* @_gasrem, align 8 + %"$gascmp_5394" = icmp ugt i64 1, %"$gasrem_5393" + br i1 %"$gascmp_5394", label %"$out_of_gas_5395", label %"$have_gas_5396" + +"$out_of_gas_5395": ; preds = %"$False_5391" + call void @_out_of_gas() + br label %"$have_gas_5396" + +"$have_gas_5396": ; preds = %"$out_of_gas_5395", %"$False_5391" + %"$consume_5397" = sub i64 %"$gasrem_5393", 1 + store i64 %"$consume_5397", i64* @_gasrem, align 8 %e4 = alloca i8*, align 8 - %"$gasrem_5309" = load i64, i64* @_gasrem, align 8 - %"$gascmp_5310" = icmp ugt i64 1, %"$gasrem_5309" - br i1 %"$gascmp_5310", label %"$out_of_gas_5311", label %"$have_gas_5312" + call void @llvm.dbg.declare(metadata i8** %e4, metadata !964, metadata !DIExpression()), !dbg !966 + %"$gasrem_5398" = load i64, i64* @_gasrem, align 8 + %"$gascmp_5399" = icmp ugt i64 1, %"$gasrem_5398" + br i1 %"$gascmp_5399", label %"$out_of_gas_5400", label %"$have_gas_5401" -"$out_of_gas_5311": ; preds = %"$have_gas_5307" +"$out_of_gas_5400": ; preds = %"$have_gas_5396" call void @_out_of_gas() - br label %"$have_gas_5312" + br label %"$have_gas_5401" -"$have_gas_5312": ; preds = %"$out_of_gas_5311", %"$have_gas_5307" - %"$consume_5313" = sub i64 %"$gasrem_5309", 1 - store i64 %"$consume_5313", i64* @_gasrem, align 8 +"$have_gas_5401": ; preds = %"$out_of_gas_5400", %"$have_gas_5396" + %"$consume_5402" = sub i64 %"$gasrem_5398", 1 + store i64 %"$consume_5402", i64* @_gasrem, align 8 %m5 = alloca %String, align 8 - %"$gasrem_5314" = load i64, i64* @_gasrem, align 8 - %"$gascmp_5315" = icmp ugt i64 1, %"$gasrem_5314" - br i1 %"$gascmp_5315", label %"$out_of_gas_5316", label %"$have_gas_5317" + call void @llvm.dbg.declare(metadata %String* %m5, metadata !967, metadata !DIExpression()), !dbg !968 + %"$gasrem_5403" = load i64, i64* @_gasrem, align 8 + %"$gascmp_5404" = icmp ugt i64 1, %"$gasrem_5403" + br i1 %"$gascmp_5404", label %"$out_of_gas_5405", label %"$have_gas_5406" -"$out_of_gas_5316": ; preds = %"$have_gas_5312" +"$out_of_gas_5405": ; preds = %"$have_gas_5401" call void @_out_of_gas() - br label %"$have_gas_5317" + br label %"$have_gas_5406" -"$have_gas_5317": ; preds = %"$out_of_gas_5316", %"$have_gas_5312" - %"$consume_5318" = sub i64 %"$gasrem_5314", 1 - store i64 %"$consume_5318", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([43 x i8], [43 x i8]* @"$stringlit_5319", i32 0, i32 0), i32 43 }, %String* %m5, align 8, !dbg !537 - %"$gasrem_5320" = load i64, i64* @_gasrem, align 8 - %"$gascmp_5321" = icmp ugt i64 1, %"$gasrem_5320" - br i1 %"$gascmp_5321", label %"$out_of_gas_5322", label %"$have_gas_5323" +"$have_gas_5406": ; preds = %"$out_of_gas_5405", %"$have_gas_5401" + %"$consume_5407" = sub i64 %"$gasrem_5403", 1 + store i64 %"$consume_5407", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([43 x i8], [43 x i8]* @"$stringlit_5408", i32 0, i32 0), i32 43 }, %String* %m5, align 8, !dbg !969 + %"$gasrem_5409" = load i64, i64* @_gasrem, align 8 + %"$gascmp_5410" = icmp ugt i64 1, %"$gasrem_5409" + br i1 %"$gascmp_5410", label %"$out_of_gas_5411", label %"$have_gas_5412" -"$out_of_gas_5322": ; preds = %"$have_gas_5317" +"$out_of_gas_5411": ; preds = %"$have_gas_5406" call void @_out_of_gas() - br label %"$have_gas_5323" + br label %"$have_gas_5412" -"$have_gas_5323": ; preds = %"$out_of_gas_5322", %"$have_gas_5317" - %"$consume_5324" = sub i64 %"$gasrem_5320", 1 - store i64 %"$consume_5324", i64* @_gasrem, align 8 +"$have_gas_5412": ; preds = %"$out_of_gas_5411", %"$have_gas_5406" + %"$consume_5413" = sub i64 %"$gasrem_5409", 1 + store i64 %"$consume_5413", i64* @_gasrem, align 8 %"$ud-registry.eError_127" = alloca i8*, align 8 - %"$ud-registry.eError_5325" = load { i8* (i8*, %String)*, i8* }, { i8* (i8*, %String)*, i8* }* @ud-registry.eError, align 8 - %"$ud-registry.eError_fptr_5326" = extractvalue { i8* (i8*, %String)*, i8* } %"$ud-registry.eError_5325", 0 - %"$ud-registry.eError_envptr_5327" = extractvalue { i8* (i8*, %String)*, i8* } %"$ud-registry.eError_5325", 1 - %"$m_5328" = load %String, %String* %m5, align 8 - %"$ud-registry.eError_call_5329" = call i8* %"$ud-registry.eError_fptr_5326"(i8* %"$ud-registry.eError_envptr_5327", %String %"$m_5328"), !dbg !539 - store i8* %"$ud-registry.eError_call_5329", i8** %"$ud-registry.eError_127", align 8, !dbg !539 - %"$$ud-registry.eError_127_5330" = load i8*, i8** %"$ud-registry.eError_127", align 8 - store i8* %"$$ud-registry.eError_127_5330", i8** %e4, align 8, !dbg !539 - %"$e_5331" = load i8*, i8** %e4, align 8 - %"$_literal_cost_call_5333" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Event_446", i8* %"$e_5331") - %"$gasrem_5334" = load i64, i64* @_gasrem, align 8 - %"$gascmp_5335" = icmp ugt i64 %"$_literal_cost_call_5333", %"$gasrem_5334" - br i1 %"$gascmp_5335", label %"$out_of_gas_5336", label %"$have_gas_5337" - -"$out_of_gas_5336": ; preds = %"$have_gas_5323" - call void @_out_of_gas() - br label %"$have_gas_5337" - -"$have_gas_5337": ; preds = %"$out_of_gas_5336", %"$have_gas_5323" - %"$consume_5338" = sub i64 %"$gasrem_5334", %"$_literal_cost_call_5333" - store i64 %"$consume_5338", i64* @_gasrem, align 8 - %"$execptr_load_5339" = load i8*, i8** @_execptr, align 8 - %"$e_5340" = load i8*, i8** %e4, align 8 - call void @_event(i8* %"$execptr_load_5339", %_TyDescrTy_Typ* @"$TyDescr_Event_446", i8* %"$e_5340"), !dbg !540 - %"$gasrem_5341" = load i64, i64* @_gasrem, align 8 - %"$gascmp_5342" = icmp ugt i64 1, %"$gasrem_5341" - br i1 %"$gascmp_5342", label %"$out_of_gas_5343", label %"$have_gas_5344" - -"$out_of_gas_5343": ; preds = %"$have_gas_5337" - call void @_out_of_gas() - br label %"$have_gas_5344" - -"$have_gas_5344": ; preds = %"$out_of_gas_5343", %"$have_gas_5337" - %"$consume_5345" = sub i64 %"$gasrem_5341", 1 - store i64 %"$consume_5345", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata i8** %"$ud-registry.eError_127", metadata !970, metadata !DIExpression()), !dbg !971 + %"$ud-registry.eError_5414" = load { i8* (i8*, %String)*, i8* }, { i8* (i8*, %String)*, i8* }* @ud-registry.eError, align 8 + %"$ud-registry.eError_fptr_5415" = extractvalue { i8* (i8*, %String)*, i8* } %"$ud-registry.eError_5414", 0 + %"$ud-registry.eError_envptr_5416" = extractvalue { i8* (i8*, %String)*, i8* } %"$ud-registry.eError_5414", 1 + %"$m_5417" = load %String, %String* %m5, align 8 + %"$ud-registry.eError_call_5418" = call i8* %"$ud-registry.eError_fptr_5415"(i8* %"$ud-registry.eError_envptr_5416", %String %"$m_5417"), !dbg !971 + store i8* %"$ud-registry.eError_call_5418", i8** %"$ud-registry.eError_127", align 8, !dbg !971 + %"$$ud-registry.eError_127_5419" = load i8*, i8** %"$ud-registry.eError_127", align 8 + store i8* %"$$ud-registry.eError_127_5419", i8** %e4, align 8, !dbg !971 + %"$e_5420" = load i8*, i8** %e4, align 8 + %"$_literal_cost_call_5422" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Event_446", i8* %"$e_5420") + %"$gasrem_5423" = load i64, i64* @_gasrem, align 8 + %"$gascmp_5424" = icmp ugt i64 %"$_literal_cost_call_5422", %"$gasrem_5423" + br i1 %"$gascmp_5424", label %"$out_of_gas_5425", label %"$have_gas_5426" + +"$out_of_gas_5425": ; preds = %"$have_gas_5412" + call void @_out_of_gas() + br label %"$have_gas_5426" + +"$have_gas_5426": ; preds = %"$out_of_gas_5425", %"$have_gas_5412" + %"$consume_5427" = sub i64 %"$gasrem_5423", %"$_literal_cost_call_5422" + store i64 %"$consume_5427", i64* @_gasrem, align 8 + %"$execptr_load_5428" = load i8*, i8** @_execptr, align 8 + %"$e_5429" = load i8*, i8** %e4, align 8 + call void @_event(i8* %"$execptr_load_5428", %_TyDescrTy_Typ* @"$TyDescr_Event_446", i8* %"$e_5429"), !dbg !972 + %"$gasrem_5430" = load i64, i64* @_gasrem, align 8 + %"$gascmp_5431" = icmp ugt i64 1, %"$gasrem_5430" + br i1 %"$gascmp_5431", label %"$out_of_gas_5432", label %"$have_gas_5433" + +"$out_of_gas_5432": ; preds = %"$have_gas_5426" + call void @_out_of_gas() + br label %"$have_gas_5433" + +"$have_gas_5433": ; preds = %"$out_of_gas_5432", %"$have_gas_5426" + %"$consume_5434" = sub i64 %"$gasrem_5430", 1 + store i64 %"$consume_5434", i64* @_gasrem, align 8 %msgs6 = alloca %TName_List_Message*, align 8 - %"$gasrem_5346" = load i64, i64* @_gasrem, align 8 - %"$gascmp_5347" = icmp ugt i64 1, %"$gasrem_5346" - br i1 %"$gascmp_5347", label %"$out_of_gas_5348", label %"$have_gas_5349" + call void @llvm.dbg.declare(metadata %TName_List_Message** %msgs6, metadata !973, metadata !DIExpression()), !dbg !974 + %"$gasrem_5435" = load i64, i64* @_gasrem, align 8 + %"$gascmp_5436" = icmp ugt i64 1, %"$gasrem_5435" + br i1 %"$gascmp_5436", label %"$out_of_gas_5437", label %"$have_gas_5438" -"$out_of_gas_5348": ; preds = %"$have_gas_5344" +"$out_of_gas_5437": ; preds = %"$have_gas_5433" call void @_out_of_gas() - br label %"$have_gas_5349" + br label %"$have_gas_5438" -"$have_gas_5349": ; preds = %"$out_of_gas_5348", %"$have_gas_5344" - %"$consume_5350" = sub i64 %"$gasrem_5346", 1 - store i64 %"$consume_5350", i64* @_gasrem, align 8 +"$have_gas_5438": ; preds = %"$out_of_gas_5437", %"$have_gas_5433" + %"$consume_5439" = sub i64 %"$gasrem_5435", 1 + store i64 %"$consume_5439", i64* @_gasrem, align 8 %"$m_19" = alloca i8*, align 8 - %"$gasrem_5351" = load i64, i64* @_gasrem, align 8 - %"$gascmp_5352" = icmp ugt i64 1, %"$gasrem_5351" - br i1 %"$gascmp_5352", label %"$out_of_gas_5353", label %"$have_gas_5354" - -"$out_of_gas_5353": ; preds = %"$have_gas_5349" - call void @_out_of_gas() - br label %"$have_gas_5354" - -"$have_gas_5354": ; preds = %"$out_of_gas_5353", %"$have_gas_5349" - %"$consume_5355" = sub i64 %"$gasrem_5351", 1 - store i64 %"$consume_5355", i64* @_gasrem, align 8 - %"$msgobj_5356_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$msgobj_5356_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_5356_salloc_load", i64 225) - %"$msgobj_5356_salloc" = bitcast i8* %"$msgobj_5356_salloc_salloc" to [225 x i8]* - %"$msgobj_5356" = bitcast [225 x i8]* %"$msgobj_5356_salloc" to i8* - store i8 5, i8* %"$msgobj_5356", align 1 - %"$msgobj_fname_5358" = getelementptr i8, i8* %"$msgobj_5356", i32 1 - %"$msgobj_fname_5359" = bitcast i8* %"$msgobj_fname_5358" to %String* - store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_5357", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_5359", align 8 - %"$msgobj_td_5360" = getelementptr i8, i8* %"$msgobj_5356", i32 17 - %"$msgobj_td_5361" = bitcast i8* %"$msgobj_td_5360" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_String_440", %_TyDescrTy_Typ** %"$msgobj_td_5361", align 8 - %"$msgobj_v_5363" = getelementptr i8, i8* %"$msgobj_5356", i32 25 - %"$msgobj_v_5364" = bitcast i8* %"$msgobj_v_5363" to %String* - store %String { i8* getelementptr inbounds ([18 x i8], [18 x i8]* @"$stringlit_5362", i32 0, i32 0), i32 18 }, %String* %"$msgobj_v_5364", align 8 - %"$msgobj_fname_5366" = getelementptr i8, i8* %"$msgobj_5356", i32 41 - %"$msgobj_fname_5367" = bitcast i8* %"$msgobj_fname_5366" to %String* - store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_5365", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_5367", align 8 - %"$msgobj_td_5368" = getelementptr i8, i8* %"$msgobj_5356", i32 57 - %"$msgobj_td_5369" = bitcast i8* %"$msgobj_td_5368" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Bystr32_456", %_TyDescrTy_Typ** %"$msgobj_td_5369", align 8 - %"$msgobj_v_5370" = getelementptr i8, i8* %"$msgobj_5356", i32 65 - %"$msgobj_v_5371" = bitcast i8* %"$msgobj_v_5370" to [32 x i8]* - store [32 x i8] %node, [32 x i8]* %"$msgobj_v_5371", align 1 - %"$msgobj_fname_5373" = getelementptr i8, i8* %"$msgobj_5356", i32 97 - %"$msgobj_fname_5374" = bitcast i8* %"$msgobj_fname_5373" to %String* - store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_5372", i32 0, i32 0), i32 5 }, %String* %"$msgobj_fname_5374", align 8 - %"$msgobj_td_5375" = getelementptr i8, i8* %"$msgobj_5356", i32 113 - %"$msgobj_td_5376" = bitcast i8* %"$msgobj_td_5375" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_458", %_TyDescrTy_Typ** %"$msgobj_td_5376", align 8 - %"$recordOwner_5377" = load [20 x i8], [20 x i8]* %recordOwner, align 1 - %"$msgobj_v_5378" = getelementptr i8, i8* %"$msgobj_5356", i32 121 - %"$msgobj_v_5379" = bitcast i8* %"$msgobj_v_5378" to [20 x i8]* - store [20 x i8] %"$recordOwner_5377", [20 x i8]* %"$msgobj_v_5379", align 1 - %"$msgobj_fname_5381" = getelementptr i8, i8* %"$msgobj_5356", i32 141 - %"$msgobj_fname_5382" = bitcast i8* %"$msgobj_fname_5381" to %String* - store %String { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$stringlit_5380", i32 0, i32 0), i32 7 }, %String* %"$msgobj_fname_5382", align 8 - %"$msgobj_td_5383" = getelementptr i8, i8* %"$msgobj_5356", i32 157 - %"$msgobj_td_5384" = bitcast i8* %"$msgobj_td_5383" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Uint128_434", %_TyDescrTy_Typ** %"$msgobj_td_5384", align 8 - %"$msgobj_v_5385" = getelementptr i8, i8* %"$msgobj_5356", i32 165 - %"$msgobj_v_5386" = bitcast i8* %"$msgobj_v_5385" to %Uint128* - store %Uint128 zeroinitializer, %Uint128* %"$msgobj_v_5386", align 8 - %"$msgobj_fname_5388" = getelementptr i8, i8* %"$msgobj_5356", i32 181 - %"$msgobj_fname_5389" = bitcast i8* %"$msgobj_fname_5388" to %String* - store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_5387", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_5389", align 8 - %"$msgobj_td_5390" = getelementptr i8, i8* %"$msgobj_5356", i32 197 - %"$msgobj_td_5391" = bitcast i8* %"$msgobj_td_5390" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_458", %_TyDescrTy_Typ** %"$msgobj_td_5391", align 8 - %"$msgobj_v_5392" = getelementptr i8, i8* %"$msgobj_5356", i32 205 - %"$msgobj_v_5393" = bitcast i8* %"$msgobj_v_5392" to [20 x i8]* - store [20 x i8] %_sender, [20 x i8]* %"$msgobj_v_5393", align 1 - store i8* %"$msgobj_5356", i8** %"$m_19", align 8, !dbg !541 - %"$gasrem_5395" = load i64, i64* @_gasrem, align 8 - %"$gascmp_5396" = icmp ugt i64 1, %"$gasrem_5395" - br i1 %"$gascmp_5396", label %"$out_of_gas_5397", label %"$have_gas_5398" - -"$out_of_gas_5397": ; preds = %"$have_gas_5354" - call void @_out_of_gas() - br label %"$have_gas_5398" - -"$have_gas_5398": ; preds = %"$out_of_gas_5397", %"$have_gas_5354" - %"$consume_5399" = sub i64 %"$gasrem_5395", 1 - store i64 %"$consume_5399", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata i8** %"$m_19", metadata !975, metadata !DIExpression()), !dbg !976 + %"$gasrem_5440" = load i64, i64* @_gasrem, align 8 + %"$gascmp_5441" = icmp ugt i64 1, %"$gasrem_5440" + br i1 %"$gascmp_5441", label %"$out_of_gas_5442", label %"$have_gas_5443" + +"$out_of_gas_5442": ; preds = %"$have_gas_5438" + call void @_out_of_gas() + br label %"$have_gas_5443" + +"$have_gas_5443": ; preds = %"$out_of_gas_5442", %"$have_gas_5438" + %"$consume_5444" = sub i64 %"$gasrem_5440", 1 + store i64 %"$consume_5444", i64* @_gasrem, align 8 + %"$msgobj_5445_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$msgobj_5445_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_5445_salloc_load", i64 225) + %"$msgobj_5445_salloc" = bitcast i8* %"$msgobj_5445_salloc_salloc" to [225 x i8]* + %"$msgobj_5445" = bitcast [225 x i8]* %"$msgobj_5445_salloc" to i8* + store i8 5, i8* %"$msgobj_5445", align 1 + %"$msgobj_fname_5447" = getelementptr i8, i8* %"$msgobj_5445", i32 1 + %"$msgobj_fname_5448" = bitcast i8* %"$msgobj_fname_5447" to %String* + store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_5446", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_5448", align 8 + %"$msgobj_td_5449" = getelementptr i8, i8* %"$msgobj_5445", i32 17 + %"$msgobj_td_5450" = bitcast i8* %"$msgobj_td_5449" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_String_440", %_TyDescrTy_Typ** %"$msgobj_td_5450", align 8 + %"$msgobj_v_5452" = getelementptr i8, i8* %"$msgobj_5445", i32 25 + %"$msgobj_v_5453" = bitcast i8* %"$msgobj_v_5452" to %String* + store %String { i8* getelementptr inbounds ([18 x i8], [18 x i8]* @"$stringlit_5451", i32 0, i32 0), i32 18 }, %String* %"$msgobj_v_5453", align 8 + %"$msgobj_fname_5455" = getelementptr i8, i8* %"$msgobj_5445", i32 41 + %"$msgobj_fname_5456" = bitcast i8* %"$msgobj_fname_5455" to %String* + store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_5454", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_5456", align 8 + %"$msgobj_td_5457" = getelementptr i8, i8* %"$msgobj_5445", i32 57 + %"$msgobj_td_5458" = bitcast i8* %"$msgobj_td_5457" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Bystr32_456", %_TyDescrTy_Typ** %"$msgobj_td_5458", align 8 + %"$msgobj_v_5459" = getelementptr i8, i8* %"$msgobj_5445", i32 65 + %"$msgobj_v_5460" = bitcast i8* %"$msgobj_v_5459" to [32 x i8]* + store [32 x i8] %node, [32 x i8]* %"$msgobj_v_5460", align 1 + %"$msgobj_fname_5462" = getelementptr i8, i8* %"$msgobj_5445", i32 97 + %"$msgobj_fname_5463" = bitcast i8* %"$msgobj_fname_5462" to %String* + store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_5461", i32 0, i32 0), i32 5 }, %String* %"$msgobj_fname_5463", align 8 + %"$msgobj_td_5464" = getelementptr i8, i8* %"$msgobj_5445", i32 113 + %"$msgobj_td_5465" = bitcast i8* %"$msgobj_td_5464" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_458", %_TyDescrTy_Typ** %"$msgobj_td_5465", align 8 + %"$recordOwner_5466" = load [20 x i8], [20 x i8]* %recordOwner, align 1 + %"$msgobj_v_5467" = getelementptr i8, i8* %"$msgobj_5445", i32 121 + %"$msgobj_v_5468" = bitcast i8* %"$msgobj_v_5467" to [20 x i8]* + store [20 x i8] %"$recordOwner_5466", [20 x i8]* %"$msgobj_v_5468", align 1 + %"$msgobj_fname_5470" = getelementptr i8, i8* %"$msgobj_5445", i32 141 + %"$msgobj_fname_5471" = bitcast i8* %"$msgobj_fname_5470" to %String* + store %String { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$stringlit_5469", i32 0, i32 0), i32 7 }, %String* %"$msgobj_fname_5471", align 8 + %"$msgobj_td_5472" = getelementptr i8, i8* %"$msgobj_5445", i32 157 + %"$msgobj_td_5473" = bitcast i8* %"$msgobj_td_5472" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Uint128_434", %_TyDescrTy_Typ** %"$msgobj_td_5473", align 8 + %"$msgobj_v_5474" = getelementptr i8, i8* %"$msgobj_5445", i32 165 + %"$msgobj_v_5475" = bitcast i8* %"$msgobj_v_5474" to %Uint128* + store %Uint128 zeroinitializer, %Uint128* %"$msgobj_v_5475", align 8 + %"$msgobj_fname_5477" = getelementptr i8, i8* %"$msgobj_5445", i32 181 + %"$msgobj_fname_5478" = bitcast i8* %"$msgobj_fname_5477" to %String* + store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_5476", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_5478", align 8 + %"$msgobj_td_5479" = getelementptr i8, i8* %"$msgobj_5445", i32 197 + %"$msgobj_td_5480" = bitcast i8* %"$msgobj_td_5479" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_458", %_TyDescrTy_Typ** %"$msgobj_td_5480", align 8 + %"$msgobj_v_5481" = getelementptr i8, i8* %"$msgobj_5445", i32 205 + %"$msgobj_v_5482" = bitcast i8* %"$msgobj_v_5481" to [20 x i8]* + store [20 x i8] %_sender, [20 x i8]* %"$msgobj_v_5482", align 1 + store i8* %"$msgobj_5445", i8** %"$m_19", align 8, !dbg !977 + %"$gasrem_5484" = load i64, i64* @_gasrem, align 8 + %"$gascmp_5485" = icmp ugt i64 1, %"$gasrem_5484" + br i1 %"$gascmp_5485", label %"$out_of_gas_5486", label %"$have_gas_5487" + +"$out_of_gas_5486": ; preds = %"$have_gas_5443" + call void @_out_of_gas() + br label %"$have_gas_5487" + +"$have_gas_5487": ; preds = %"$out_of_gas_5486", %"$have_gas_5443" + %"$consume_5488" = sub i64 %"$gasrem_5484", 1 + store i64 %"$consume_5488", i64* @_gasrem, align 8 %"$ud-registry.oneMsg_126" = alloca %TName_List_Message*, align 8 - %"$ud-registry.oneMsg_5400" = load { %TName_List_Message* (i8*, i8*)*, i8* }, { %TName_List_Message* (i8*, i8*)*, i8* }* @ud-registry.oneMsg, align 8 - %"$ud-registry.oneMsg_fptr_5401" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$ud-registry.oneMsg_5400", 0 - %"$ud-registry.oneMsg_envptr_5402" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$ud-registry.oneMsg_5400", 1 - %"$$m_19_5403" = load i8*, i8** %"$m_19", align 8 - %"$ud-registry.oneMsg_call_5404" = call %TName_List_Message* %"$ud-registry.oneMsg_fptr_5401"(i8* %"$ud-registry.oneMsg_envptr_5402", i8* %"$$m_19_5403"), !dbg !542 - store %TName_List_Message* %"$ud-registry.oneMsg_call_5404", %TName_List_Message** %"$ud-registry.oneMsg_126", align 8, !dbg !542 - %"$$ud-registry.oneMsg_126_5405" = load %TName_List_Message*, %TName_List_Message** %"$ud-registry.oneMsg_126", align 8 - store %TName_List_Message* %"$$ud-registry.oneMsg_126_5405", %TName_List_Message** %msgs6, align 8, !dbg !542 - %"$msgs_5406" = load %TName_List_Message*, %TName_List_Message** %msgs6, align 8 - %"$$msgs_5406_5407" = bitcast %TName_List_Message* %"$msgs_5406" to i8* - %"$_literal_cost_call_5408" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_467", i8* %"$$msgs_5406_5407") - %"$gasrem_5409" = load i64, i64* @_gasrem, align 8 - %"$gascmp_5410" = icmp ugt i64 %"$_literal_cost_call_5408", %"$gasrem_5409" - br i1 %"$gascmp_5410", label %"$out_of_gas_5411", label %"$have_gas_5412" - -"$out_of_gas_5411": ; preds = %"$have_gas_5398" - call void @_out_of_gas() - br label %"$have_gas_5412" - -"$have_gas_5412": ; preds = %"$out_of_gas_5411", %"$have_gas_5398" - %"$consume_5413" = sub i64 %"$gasrem_5409", %"$_literal_cost_call_5408" - store i64 %"$consume_5413", i64* @_gasrem, align 8 - %"$execptr_load_5414" = load i8*, i8** @_execptr, align 8 - %"$msgs_5415" = load %TName_List_Message*, %TName_List_Message** %msgs6, align 8 - call void @_send(i8* %"$execptr_load_5414", %_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_467", %TName_List_Message* %"$msgs_5415"), !dbg !543 - br label %"$matchsucc_5155" - -"$empty_default_5159": ; preds = %"$have_gas_5153" - br label %"$matchsucc_5155" - -"$matchsucc_5155": ; preds = %"$have_gas_5412", %"$have_gas_5298", %"$empty_default_5159" + call void @llvm.dbg.declare(metadata %TName_List_Message** %"$ud-registry.oneMsg_126", metadata !978, metadata !DIExpression()), !dbg !979 + %"$ud-registry.oneMsg_5489" = load { %TName_List_Message* (i8*, i8*)*, i8* }, { %TName_List_Message* (i8*, i8*)*, i8* }* @ud-registry.oneMsg, align 8 + %"$ud-registry.oneMsg_fptr_5490" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$ud-registry.oneMsg_5489", 0 + %"$ud-registry.oneMsg_envptr_5491" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$ud-registry.oneMsg_5489", 1 + %"$$m_19_5492" = load i8*, i8** %"$m_19", align 8 + %"$ud-registry.oneMsg_call_5493" = call %TName_List_Message* %"$ud-registry.oneMsg_fptr_5490"(i8* %"$ud-registry.oneMsg_envptr_5491", i8* %"$$m_19_5492"), !dbg !979 + store %TName_List_Message* %"$ud-registry.oneMsg_call_5493", %TName_List_Message** %"$ud-registry.oneMsg_126", align 8, !dbg !979 + %"$$ud-registry.oneMsg_126_5494" = load %TName_List_Message*, %TName_List_Message** %"$ud-registry.oneMsg_126", align 8 + store %TName_List_Message* %"$$ud-registry.oneMsg_126_5494", %TName_List_Message** %msgs6, align 8, !dbg !979 + %"$msgs_5495" = load %TName_List_Message*, %TName_List_Message** %msgs6, align 8 + %"$$msgs_5495_5496" = bitcast %TName_List_Message* %"$msgs_5495" to i8* + %"$_literal_cost_call_5497" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_467", i8* %"$$msgs_5495_5496") + %"$gasrem_5498" = load i64, i64* @_gasrem, align 8 + %"$gascmp_5499" = icmp ugt i64 %"$_literal_cost_call_5497", %"$gasrem_5498" + br i1 %"$gascmp_5499", label %"$out_of_gas_5500", label %"$have_gas_5501" + +"$out_of_gas_5500": ; preds = %"$have_gas_5487" + call void @_out_of_gas() + br label %"$have_gas_5501" + +"$have_gas_5501": ; preds = %"$out_of_gas_5500", %"$have_gas_5487" + %"$consume_5502" = sub i64 %"$gasrem_5498", %"$_literal_cost_call_5497" + store i64 %"$consume_5502", i64* @_gasrem, align 8 + %"$execptr_load_5503" = load i8*, i8** @_execptr, align 8 + %"$msgs_5504" = load %TName_List_Message*, %TName_List_Message** %msgs6, align 8 + call void @_send(i8* %"$execptr_load_5503", %_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_467", %TName_List_Message* %"$msgs_5504"), !dbg !980 + br label %"$matchsucc_5244" + +"$empty_default_5248": ; preds = %"$have_gas_5242" + br label %"$matchsucc_5244" + +"$matchsucc_5244": ; preds = %"$have_gas_5501", %"$have_gas_5387", %"$empty_default_5248" ret void } declare void @_send(i8*, %_TyDescrTy_Typ*, %TName_List_Message*) -define void @configureNode(i8* %0) !dbg !544 { -entry: - %"$_amount_5417" = getelementptr i8, i8* %0, i32 0 - %"$_amount_5418" = bitcast i8* %"$_amount_5417" to %Uint128* - %_amount = load %Uint128, %Uint128* %"$_amount_5418", align 8 - %"$_origin_5419" = getelementptr i8, i8* %0, i32 16 - %"$_origin_5420" = bitcast i8* %"$_origin_5419" to [20 x i8]* - %"$_sender_5421" = getelementptr i8, i8* %0, i32 36 - %"$_sender_5422" = bitcast i8* %"$_sender_5421" to [20 x i8]* - %"$node_5423" = getelementptr i8, i8* %0, i32 56 - %"$node_5424" = bitcast i8* %"$node_5423" to [32 x i8]* - %"$owner_5425" = getelementptr i8, i8* %0, i32 88 - %"$owner_5426" = bitcast i8* %"$owner_5425" to [20 x i8]* - %"$resolver_5427" = getelementptr i8, i8* %0, i32 108 - %"$resolver_5428" = bitcast i8* %"$resolver_5427" to [20 x i8]* - call void @"$configureNode_5046"(%Uint128 %_amount, [20 x i8]* %"$_origin_5420", [20 x i8]* %"$_sender_5422", [32 x i8]* %"$node_5424", [20 x i8]* %"$owner_5426", [20 x i8]* %"$resolver_5428"), !dbg !545 +define void @configureNode(i8* %0) !dbg !981 { +entry: + %"$_amount_5512" = getelementptr i8, i8* %0, i32 0 + %"$_amount_5513" = bitcast i8* %"$_amount_5512" to %Uint128* + %_amount = load %Uint128, %Uint128* %"$_amount_5513", align 8 + %"$_origin_5514" = getelementptr i8, i8* %0, i32 16 + %"$_origin_5515" = bitcast i8* %"$_origin_5514" to [20 x i8]* + %"$_sender_5516" = getelementptr i8, i8* %0, i32 36 + %"$_sender_5517" = bitcast i8* %"$_sender_5516" to [20 x i8]* + %"$node_5518" = getelementptr i8, i8* %0, i32 56 + %"$node_5519" = bitcast i8* %"$node_5518" to [32 x i8]* + %"$owner_5520" = getelementptr i8, i8* %0, i32 88 + %"$owner_5521" = bitcast i8* %"$owner_5520" to [20 x i8]* + %"$resolver_5522" = getelementptr i8, i8* %0, i32 108 + %"$resolver_5523" = bitcast i8* %"$resolver_5522" to [20 x i8]* + call void @"$configureNode_5135"(%Uint128 %_amount, [20 x i8]* %"$_origin_5515", [20 x i8]* %"$_sender_5517", [32 x i8]* %"$node_5519", [20 x i8]* %"$owner_5521", [20 x i8]* %"$resolver_5523"), !dbg !982 ret void } -define internal void @"$configureResolver_5429"(%Uint128 %_amount, [20 x i8]* %"$_origin_5430", [20 x i8]* %"$_sender_5431", [32 x i8]* %"$node_5432", [20 x i8]* %"$resolver_5433") !dbg !546 { -entry: - %_origin = load [20 x i8], [20 x i8]* %"$_origin_5430", align 1 - %_sender = load [20 x i8], [20 x i8]* %"$_sender_5431", align 1 - %node = load [32 x i8], [32 x i8]* %"$node_5432", align 1 - %resolver = load [20 x i8], [20 x i8]* %"$resolver_5433", align 1 +define internal void @"$configureResolver_5524"(%Uint128 %_amount, [20 x i8]* %"$_origin_5525", [20 x i8]* %"$_sender_5526", [32 x i8]* %"$node_5527", [20 x i8]* %"$resolver_5528") !dbg !983 { +entry: + %"$resolver_5750" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$resolver_5528", [20 x i8]** %"$resolver_5750", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$resolver_5750", metadata !984, metadata !DIExpression()), !dbg !985 + %"$node_5749" = alloca [32 x i8]*, align 8 + store [32 x i8]* %"$node_5527", [32 x i8]** %"$node_5749", align 8 + call void @llvm.dbg.declare(metadata [32 x i8]** %"$node_5749", metadata !986, metadata !DIExpression()), !dbg !987 + %"$_sender_5748" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_sender_5526", [20 x i8]** %"$_sender_5748", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_sender_5748", metadata !988, metadata !DIExpression()), !dbg !989 + %"$_origin_5747" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_origin_5525", [20 x i8]** %"$_origin_5747", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_origin_5747", metadata !990, metadata !DIExpression()), !dbg !989 + %"$_amount_5746" = alloca %Uint128, align 8 + store %Uint128 %_amount, %Uint128* %"$_amount_5746", align 8 + call void @llvm.dbg.declare(metadata %Uint128* %"$_amount_5746", metadata !991, metadata !DIExpression()), !dbg !989 + %_origin = load [20 x i8], [20 x i8]* %"$_origin_5525", align 1 + %_sender = load [20 x i8], [20 x i8]* %"$_sender_5526", align 1 + %node = load [32 x i8], [32 x i8]* %"$node_5527", align 1 + %resolver = load [20 x i8], [20 x i8]* %"$resolver_5528", align 1 %maybeRecord = alloca %TName_Option_ud-registry.Record*, align 8 - %"$indices_buf_5434_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$indices_buf_5434_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_5434_salloc_load", i64 32) - %"$indices_buf_5434_salloc" = bitcast i8* %"$indices_buf_5434_salloc_salloc" to [32 x i8]* - %"$indices_buf_5434" = bitcast [32 x i8]* %"$indices_buf_5434_salloc" to i8* - %"$indices_gep_5435" = getelementptr i8, i8* %"$indices_buf_5434", i32 0 - %indices_cast = bitcast i8* %"$indices_gep_5435" to [32 x i8]* + call void @llvm.dbg.declare(metadata %TName_Option_ud-registry.Record** %maybeRecord, metadata !992, metadata !DIExpression()), !dbg !993 + %"$indices_buf_5529_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$indices_buf_5529_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_5529_salloc_load", i64 32) + %"$indices_buf_5529_salloc" = bitcast i8* %"$indices_buf_5529_salloc_salloc" to [32 x i8]* + %"$indices_buf_5529" = bitcast [32 x i8]* %"$indices_buf_5529_salloc" to i8* + %"$indices_gep_5530" = getelementptr i8, i8* %"$indices_buf_5529", i32 0 + %indices_cast = bitcast i8* %"$indices_gep_5530" to [32 x i8]* store [32 x i8] %node, [32 x i8]* %indices_cast, align 1 - %"$execptr_load_5437" = load i8*, i8** @_execptr, align 8 - %"$maybeRecord_call_5438" = call i8* @_fetch_field(i8* %"$execptr_load_5437", i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$records_5436", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_472", i32 1, i8* %"$indices_buf_5434", i32 1), !dbg !547 - %"$maybeRecord_5439" = bitcast i8* %"$maybeRecord_call_5438" to %TName_Option_ud-registry.Record* - store %TName_Option_ud-registry.Record* %"$maybeRecord_5439", %TName_Option_ud-registry.Record** %maybeRecord, align 8 - %"$maybeRecord_5440" = load %TName_Option_ud-registry.Record*, %TName_Option_ud-registry.Record** %maybeRecord, align 8 - %"$$maybeRecord_5440_5441" = bitcast %TName_Option_ud-registry.Record* %"$maybeRecord_5440" to i8* - %"$_literal_cost_call_5442" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_ud-registry.Record_463", i8* %"$$maybeRecord_5440_5441") - %"$gasadd_5443" = add i64 %"$_literal_cost_call_5442", 0 - %"$gasadd_5444" = add i64 %"$gasadd_5443", 1 - %"$gasrem_5445" = load i64, i64* @_gasrem, align 8 - %"$gascmp_5446" = icmp ugt i64 %"$gasadd_5444", %"$gasrem_5445" - br i1 %"$gascmp_5446", label %"$out_of_gas_5447", label %"$have_gas_5448" - -"$out_of_gas_5447": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_5448" - -"$have_gas_5448": ; preds = %"$out_of_gas_5447", %entry - %"$consume_5449" = sub i64 %"$gasrem_5445", %"$gasadd_5444" - store i64 %"$consume_5449", i64* @_gasrem, align 8 + %"$execptr_load_5532" = load i8*, i8** @_execptr, align 8 + %"$maybeRecord_call_5533" = call i8* @_fetch_field(i8* %"$execptr_load_5532", i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$records_5531", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_472", i32 1, i8* %"$indices_buf_5529", i32 1), !dbg !993 + %"$maybeRecord_5534" = bitcast i8* %"$maybeRecord_call_5533" to %TName_Option_ud-registry.Record* + store %TName_Option_ud-registry.Record* %"$maybeRecord_5534", %TName_Option_ud-registry.Record** %maybeRecord, align 8 + %"$maybeRecord_5535" = load %TName_Option_ud-registry.Record*, %TName_Option_ud-registry.Record** %maybeRecord, align 8 + %"$$maybeRecord_5535_5536" = bitcast %TName_Option_ud-registry.Record* %"$maybeRecord_5535" to i8* + %"$_literal_cost_call_5537" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_ud-registry.Record_463", i8* %"$$maybeRecord_5535_5536") + %"$gasadd_5538" = add i64 %"$_literal_cost_call_5537", 0 + %"$gasadd_5539" = add i64 %"$gasadd_5538", 1 + %"$gasrem_5540" = load i64, i64* @_gasrem, align 8 + %"$gascmp_5541" = icmp ugt i64 %"$gasadd_5539", %"$gasrem_5540" + br i1 %"$gascmp_5541", label %"$out_of_gas_5542", label %"$have_gas_5543" + +"$out_of_gas_5542": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_5543" + +"$have_gas_5543": ; preds = %"$out_of_gas_5542", %entry + %"$consume_5544" = sub i64 %"$gasrem_5540", %"$gasadd_5539" + store i64 %"$consume_5544", i64* @_gasrem, align 8 %maybeApproved = alloca %TName_Option_ByStr20*, align 8 - %"$indices_buf_5450_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$indices_buf_5450_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_5450_salloc_load", i64 32) - %"$indices_buf_5450_salloc" = bitcast i8* %"$indices_buf_5450_salloc_salloc" to [32 x i8]* - %"$indices_buf_5450" = bitcast [32 x i8]* %"$indices_buf_5450_salloc" to i8* - %"$indices_gep_5451" = getelementptr i8, i8* %"$indices_buf_5450", i32 0 - %indices_cast1 = bitcast i8* %"$indices_gep_5451" to [32 x i8]* + call void @llvm.dbg.declare(metadata %TName_Option_ByStr20** %maybeApproved, metadata !994, metadata !DIExpression()), !dbg !995 + %"$indices_buf_5545_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$indices_buf_5545_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_5545_salloc_load", i64 32) + %"$indices_buf_5545_salloc" = bitcast i8* %"$indices_buf_5545_salloc_salloc" to [32 x i8]* + %"$indices_buf_5545" = bitcast [32 x i8]* %"$indices_buf_5545_salloc" to i8* + %"$indices_gep_5546" = getelementptr i8, i8* %"$indices_buf_5545", i32 0 + %indices_cast1 = bitcast i8* %"$indices_gep_5546" to [32 x i8]* store [32 x i8] %node, [32 x i8]* %indices_cast1, align 1 - %"$execptr_load_5453" = load i8*, i8** @_execptr, align 8 - %"$maybeApproved_call_5454" = call i8* @_fetch_field(i8* %"$execptr_load_5453", i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$approvals_5452", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_471", i32 1, i8* %"$indices_buf_5450", i32 1), !dbg !548 - %"$maybeApproved_5455" = bitcast i8* %"$maybeApproved_call_5454" to %TName_Option_ByStr20* - store %TName_Option_ByStr20* %"$maybeApproved_5455", %TName_Option_ByStr20** %maybeApproved, align 8 - %"$maybeApproved_5456" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %maybeApproved, align 8 - %"$$maybeApproved_5456_5457" = bitcast %TName_Option_ByStr20* %"$maybeApproved_5456" to i8* - %"$_literal_cost_call_5458" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_ByStr20_464", i8* %"$$maybeApproved_5456_5457") - %"$gasadd_5459" = add i64 %"$_literal_cost_call_5458", 0 - %"$gasadd_5460" = add i64 %"$gasadd_5459", 1 - %"$gasrem_5461" = load i64, i64* @_gasrem, align 8 - %"$gascmp_5462" = icmp ugt i64 %"$gasadd_5460", %"$gasrem_5461" - br i1 %"$gascmp_5462", label %"$out_of_gas_5463", label %"$have_gas_5464" - -"$out_of_gas_5463": ; preds = %"$have_gas_5448" - call void @_out_of_gas() - br label %"$have_gas_5464" - -"$have_gas_5464": ; preds = %"$out_of_gas_5463", %"$have_gas_5448" - %"$consume_5465" = sub i64 %"$gasrem_5461", %"$gasadd_5460" - store i64 %"$consume_5465", i64* @_gasrem, align 8 - %"$gasrem_5466" = load i64, i64* @_gasrem, align 8 - %"$gascmp_5467" = icmp ugt i64 1, %"$gasrem_5466" - br i1 %"$gascmp_5467", label %"$out_of_gas_5468", label %"$have_gas_5469" - -"$out_of_gas_5468": ; preds = %"$have_gas_5464" - call void @_out_of_gas() - br label %"$have_gas_5469" - -"$have_gas_5469": ; preds = %"$out_of_gas_5468", %"$have_gas_5464" - %"$consume_5470" = sub i64 %"$gasrem_5466", 1 - store i64 %"$consume_5470", i64* @_gasrem, align 8 + %"$execptr_load_5548" = load i8*, i8** @_execptr, align 8 + %"$maybeApproved_call_5549" = call i8* @_fetch_field(i8* %"$execptr_load_5548", i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$approvals_5547", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_471", i32 1, i8* %"$indices_buf_5545", i32 1), !dbg !995 + %"$maybeApproved_5550" = bitcast i8* %"$maybeApproved_call_5549" to %TName_Option_ByStr20* + store %TName_Option_ByStr20* %"$maybeApproved_5550", %TName_Option_ByStr20** %maybeApproved, align 8 + %"$maybeApproved_5551" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %maybeApproved, align 8 + %"$$maybeApproved_5551_5552" = bitcast %TName_Option_ByStr20* %"$maybeApproved_5551" to i8* + %"$_literal_cost_call_5553" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_ByStr20_464", i8* %"$$maybeApproved_5551_5552") + %"$gasadd_5554" = add i64 %"$_literal_cost_call_5553", 0 + %"$gasadd_5555" = add i64 %"$gasadd_5554", 1 + %"$gasrem_5556" = load i64, i64* @_gasrem, align 8 + %"$gascmp_5557" = icmp ugt i64 %"$gasadd_5555", %"$gasrem_5556" + br i1 %"$gascmp_5557", label %"$out_of_gas_5558", label %"$have_gas_5559" + +"$out_of_gas_5558": ; preds = %"$have_gas_5543" + call void @_out_of_gas() + br label %"$have_gas_5559" + +"$have_gas_5559": ; preds = %"$out_of_gas_5558", %"$have_gas_5543" + %"$consume_5560" = sub i64 %"$gasrem_5556", %"$gasadd_5555" + store i64 %"$consume_5560", i64* @_gasrem, align 8 + %"$gasrem_5561" = load i64, i64* @_gasrem, align 8 + %"$gascmp_5562" = icmp ugt i64 1, %"$gasrem_5561" + br i1 %"$gascmp_5562", label %"$out_of_gas_5563", label %"$have_gas_5564" + +"$out_of_gas_5563": ; preds = %"$have_gas_5559" + call void @_out_of_gas() + br label %"$have_gas_5564" + +"$have_gas_5564": ; preds = %"$out_of_gas_5563", %"$have_gas_5559" + %"$consume_5565" = sub i64 %"$gasrem_5561", 1 + store i64 %"$consume_5565", i64* @_gasrem, align 8 %recordOwner = alloca [20 x i8], align 1 - %"$gasrem_5471" = load i64, i64* @_gasrem, align 8 - %"$gascmp_5472" = icmp ugt i64 1, %"$gasrem_5471" - br i1 %"$gascmp_5472", label %"$out_of_gas_5473", label %"$have_gas_5474" + call void @llvm.dbg.declare(metadata [20 x i8]* %recordOwner, metadata !996, metadata !DIExpression()), !dbg !997 + %"$gasrem_5566" = load i64, i64* @_gasrem, align 8 + %"$gascmp_5567" = icmp ugt i64 1, %"$gasrem_5566" + br i1 %"$gascmp_5567", label %"$out_of_gas_5568", label %"$have_gas_5569" -"$out_of_gas_5473": ; preds = %"$have_gas_5469" +"$out_of_gas_5568": ; preds = %"$have_gas_5564" call void @_out_of_gas() - br label %"$have_gas_5474" + br label %"$have_gas_5569" -"$have_gas_5474": ; preds = %"$out_of_gas_5473", %"$have_gas_5469" - %"$consume_5475" = sub i64 %"$gasrem_5471", 1 - store i64 %"$consume_5475", i64* @_gasrem, align 8 +"$have_gas_5569": ; preds = %"$out_of_gas_5568", %"$have_gas_5564" + %"$consume_5570" = sub i64 %"$gasrem_5566", 1 + store i64 %"$consume_5570", i64* @_gasrem, align 8 %"$ud-registry.recordMemberOwner_141" = alloca [20 x i8], align 1 - %"$ud-registry.recordMemberOwner_5476" = 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_5477" = extractvalue { void (i8*, [20 x i8]*, %TName_Option_ud-registry.Record*)*, i8* } %"$ud-registry.recordMemberOwner_5476", 0 - %"$ud-registry.recordMemberOwner_envptr_5478" = extractvalue { void (i8*, [20 x i8]*, %TName_Option_ud-registry.Record*)*, i8* } %"$ud-registry.recordMemberOwner_5476", 1 - %"$maybeRecord_5479" = load %TName_Option_ud-registry.Record*, %TName_Option_ud-registry.Record** %maybeRecord, align 8 - %"$ud-registry.recordMemberOwner_retalloca_5480" = alloca [20 x i8], align 1 - call void %"$ud-registry.recordMemberOwner_fptr_5477"(i8* %"$ud-registry.recordMemberOwner_envptr_5478", [20 x i8]* %"$ud-registry.recordMemberOwner_retalloca_5480", %TName_Option_ud-registry.Record* %"$maybeRecord_5479"), !dbg !549 - %"$ud-registry.recordMemberOwner_ret_5481" = load [20 x i8], [20 x i8]* %"$ud-registry.recordMemberOwner_retalloca_5480", align 1 - store [20 x i8] %"$ud-registry.recordMemberOwner_ret_5481", [20 x i8]* %"$ud-registry.recordMemberOwner_141", align 1, !dbg !549 - %"$$ud-registry.recordMemberOwner_141_5482" = load [20 x i8], [20 x i8]* %"$ud-registry.recordMemberOwner_141", align 1 - store [20 x i8] %"$$ud-registry.recordMemberOwner_141_5482", [20 x i8]* %recordOwner, align 1, !dbg !549 + call void @llvm.dbg.declare(metadata [20 x i8]* %"$ud-registry.recordMemberOwner_141", metadata !998, metadata !DIExpression()), !dbg !999 + %"$ud-registry.recordMemberOwner_5571" = 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_5572" = extractvalue { void (i8*, [20 x i8]*, %TName_Option_ud-registry.Record*)*, i8* } %"$ud-registry.recordMemberOwner_5571", 0 + %"$ud-registry.recordMemberOwner_envptr_5573" = extractvalue { void (i8*, [20 x i8]*, %TName_Option_ud-registry.Record*)*, i8* } %"$ud-registry.recordMemberOwner_5571", 1 + %"$maybeRecord_5574" = load %TName_Option_ud-registry.Record*, %TName_Option_ud-registry.Record** %maybeRecord, align 8 + %"$ud-registry.recordMemberOwner_retalloca_5575" = alloca [20 x i8], align 1 + call void %"$ud-registry.recordMemberOwner_fptr_5572"(i8* %"$ud-registry.recordMemberOwner_envptr_5573", [20 x i8]* %"$ud-registry.recordMemberOwner_retalloca_5575", %TName_Option_ud-registry.Record* %"$maybeRecord_5574"), !dbg !999 + %"$ud-registry.recordMemberOwner_ret_5576" = load [20 x i8], [20 x i8]* %"$ud-registry.recordMemberOwner_retalloca_5575", align 1 + store [20 x i8] %"$ud-registry.recordMemberOwner_ret_5576", [20 x i8]* %"$ud-registry.recordMemberOwner_141", align 1, !dbg !999 + %"$$ud-registry.recordMemberOwner_141_5577" = load [20 x i8], [20 x i8]* %"$ud-registry.recordMemberOwner_141", align 1 + store [20 x i8] %"$$ud-registry.recordMemberOwner_141_5577", [20 x i8]* %recordOwner, align 1, !dbg !999 %maybeOperators = alloca %"TName_Option_List_(ByStr20)"*, align 8 - %"$indices_buf_5483_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$indices_buf_5483_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_5483_salloc_load", i64 20) - %"$indices_buf_5483_salloc" = bitcast i8* %"$indices_buf_5483_salloc_salloc" to [20 x i8]* - %"$indices_buf_5483" = bitcast [20 x i8]* %"$indices_buf_5483_salloc" to i8* - %"$recordOwner_5484" = load [20 x i8], [20 x i8]* %recordOwner, align 1 - %"$indices_gep_5485" = getelementptr i8, i8* %"$indices_buf_5483", i32 0 - %indices_cast2 = bitcast i8* %"$indices_gep_5485" to [20 x i8]* - store [20 x i8] %"$recordOwner_5484", [20 x i8]* %indices_cast2, align 1 - %"$execptr_load_5487" = load i8*, i8** @_execptr, align 8 - %"$maybeOperators_call_5488" = call i8* @_fetch_field(i8* %"$execptr_load_5487", i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$operators_5486", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_470", i32 1, i8* %"$indices_buf_5483", i32 1), !dbg !550 - %"$maybeOperators_5489" = bitcast i8* %"$maybeOperators_call_5488" to %"TName_Option_List_(ByStr20)"* - store %"TName_Option_List_(ByStr20)"* %"$maybeOperators_5489", %"TName_Option_List_(ByStr20)"** %maybeOperators, align 8 - %"$maybeOperators_5490" = load %"TName_Option_List_(ByStr20)"*, %"TName_Option_List_(ByStr20)"** %maybeOperators, align 8 - %"$$maybeOperators_5490_5491" = bitcast %"TName_Option_List_(ByStr20)"* %"$maybeOperators_5490" to i8* - %"$_literal_cost_call_5492" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_List_(ByStr20)_462", i8* %"$$maybeOperators_5490_5491") - %"$gasadd_5493" = add i64 %"$_literal_cost_call_5492", 0 - %"$gasadd_5494" = add i64 %"$gasadd_5493", 1 - %"$gasrem_5495" = load i64, i64* @_gasrem, align 8 - %"$gascmp_5496" = icmp ugt i64 %"$gasadd_5494", %"$gasrem_5495" - br i1 %"$gascmp_5496", label %"$out_of_gas_5497", label %"$have_gas_5498" - -"$out_of_gas_5497": ; preds = %"$have_gas_5474" - call void @_out_of_gas() - br label %"$have_gas_5498" - -"$have_gas_5498": ; preds = %"$out_of_gas_5497", %"$have_gas_5474" - %"$consume_5499" = sub i64 %"$gasrem_5495", %"$gasadd_5494" - store i64 %"$consume_5499", i64* @_gasrem, align 8 - %"$gasrem_5500" = load i64, i64* @_gasrem, align 8 - %"$gascmp_5501" = icmp ugt i64 1, %"$gasrem_5500" - br i1 %"$gascmp_5501", label %"$out_of_gas_5502", label %"$have_gas_5503" - -"$out_of_gas_5502": ; preds = %"$have_gas_5498" - call void @_out_of_gas() - br label %"$have_gas_5503" - -"$have_gas_5503": ; preds = %"$out_of_gas_5502", %"$have_gas_5498" - %"$consume_5504" = sub i64 %"$gasrem_5500", 1 - store i64 %"$consume_5504", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %"TName_Option_List_(ByStr20)"** %maybeOperators, metadata !1000, metadata !DIExpression()), !dbg !1001 + %"$indices_buf_5578_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$indices_buf_5578_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_5578_salloc_load", i64 20) + %"$indices_buf_5578_salloc" = bitcast i8* %"$indices_buf_5578_salloc_salloc" to [20 x i8]* + %"$indices_buf_5578" = bitcast [20 x i8]* %"$indices_buf_5578_salloc" to i8* + %"$recordOwner_5579" = load [20 x i8], [20 x i8]* %recordOwner, align 1 + %"$indices_gep_5580" = getelementptr i8, i8* %"$indices_buf_5578", i32 0 + %indices_cast2 = bitcast i8* %"$indices_gep_5580" to [20 x i8]* + store [20 x i8] %"$recordOwner_5579", [20 x i8]* %indices_cast2, align 1 + %"$execptr_load_5582" = load i8*, i8** @_execptr, align 8 + %"$maybeOperators_call_5583" = call i8* @_fetch_field(i8* %"$execptr_load_5582", i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$operators_5581", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_470", i32 1, i8* %"$indices_buf_5578", i32 1), !dbg !1001 + %"$maybeOperators_5584" = bitcast i8* %"$maybeOperators_call_5583" to %"TName_Option_List_(ByStr20)"* + store %"TName_Option_List_(ByStr20)"* %"$maybeOperators_5584", %"TName_Option_List_(ByStr20)"** %maybeOperators, align 8 + %"$maybeOperators_5585" = load %"TName_Option_List_(ByStr20)"*, %"TName_Option_List_(ByStr20)"** %maybeOperators, align 8 + %"$$maybeOperators_5585_5586" = bitcast %"TName_Option_List_(ByStr20)"* %"$maybeOperators_5585" to i8* + %"$_literal_cost_call_5587" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_List_(ByStr20)_462", i8* %"$$maybeOperators_5585_5586") + %"$gasadd_5588" = add i64 %"$_literal_cost_call_5587", 0 + %"$gasadd_5589" = add i64 %"$gasadd_5588", 1 + %"$gasrem_5590" = load i64, i64* @_gasrem, align 8 + %"$gascmp_5591" = icmp ugt i64 %"$gasadd_5589", %"$gasrem_5590" + br i1 %"$gascmp_5591", label %"$out_of_gas_5592", label %"$have_gas_5593" + +"$out_of_gas_5592": ; preds = %"$have_gas_5569" + call void @_out_of_gas() + br label %"$have_gas_5593" + +"$have_gas_5593": ; preds = %"$out_of_gas_5592", %"$have_gas_5569" + %"$consume_5594" = sub i64 %"$gasrem_5590", %"$gasadd_5589" + store i64 %"$consume_5594", i64* @_gasrem, align 8 + %"$gasrem_5595" = load i64, i64* @_gasrem, align 8 + %"$gascmp_5596" = icmp ugt i64 1, %"$gasrem_5595" + br i1 %"$gascmp_5596", label %"$out_of_gas_5597", label %"$have_gas_5598" + +"$out_of_gas_5597": ; preds = %"$have_gas_5593" + call void @_out_of_gas() + br label %"$have_gas_5598" + +"$have_gas_5598": ; preds = %"$out_of_gas_5597", %"$have_gas_5593" + %"$consume_5599" = sub i64 %"$gasrem_5595", 1 + store i64 %"$consume_5599", i64* @_gasrem, align 8 %isSenderOAO = alloca %TName_Bool*, align 8 - %"$gasrem_5505" = load i64, i64* @_gasrem, align 8 - %"$gascmp_5506" = icmp ugt i64 1, %"$gasrem_5505" - br i1 %"$gascmp_5506", label %"$out_of_gas_5507", label %"$have_gas_5508" + call void @llvm.dbg.declare(metadata %TName_Bool** %isSenderOAO, metadata !1002, metadata !DIExpression()), !dbg !1003 + %"$gasrem_5600" = load i64, i64* @_gasrem, align 8 + %"$gascmp_5601" = icmp ugt i64 1, %"$gasrem_5600" + br i1 %"$gascmp_5601", label %"$out_of_gas_5602", label %"$have_gas_5603" -"$out_of_gas_5507": ; preds = %"$have_gas_5503" +"$out_of_gas_5602": ; preds = %"$have_gas_5598" call void @_out_of_gas() - br label %"$have_gas_5508" + br label %"$have_gas_5603" -"$have_gas_5508": ; preds = %"$out_of_gas_5507", %"$have_gas_5503" - %"$consume_5509" = sub i64 %"$gasrem_5505", 1 - store i64 %"$consume_5509", i64* @_gasrem, align 8 +"$have_gas_5603": ; preds = %"$out_of_gas_5602", %"$have_gas_5598" + %"$consume_5604" = sub i64 %"$gasrem_5600", 1 + store i64 %"$consume_5604", i64* @_gasrem, align 8 %"$ud-registry.getIsOAO_137" = alloca { { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* }, align 8 - %"$ud-registry.getIsOAO_5510" = 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_5511" = 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_5510", 0 - %"$ud-registry.getIsOAO_envptr_5512" = 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_5510", 1 - %"$ud-registry.getIsOAO__sender_5513" = alloca [20 x i8], align 1 - store [20 x i8] %_sender, [20 x i8]* %"$ud-registry.getIsOAO__sender_5513", align 1 - %"$ud-registry.getIsOAO_call_5514" = call { { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$ud-registry.getIsOAO_fptr_5511"(i8* %"$ud-registry.getIsOAO_envptr_5512", [20 x i8]* %"$ud-registry.getIsOAO__sender_5513"), !dbg !551 - store { { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$ud-registry.getIsOAO_call_5514", { { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* }* %"$ud-registry.getIsOAO_137", align 8, !dbg !551 + %"$ud-registry.getIsOAO_5605" = 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_5606" = 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_5605", 0 + %"$ud-registry.getIsOAO_envptr_5607" = 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_5605", 1 + %"$ud-registry.getIsOAO__sender_5608" = alloca [20 x i8], align 1 + store [20 x i8] %_sender, [20 x i8]* %"$ud-registry.getIsOAO__sender_5608", align 1 + %"$ud-registry.getIsOAO_call_5609" = call { { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$ud-registry.getIsOAO_fptr_5606"(i8* %"$ud-registry.getIsOAO_envptr_5607", [20 x i8]* %"$ud-registry.getIsOAO__sender_5608"), !dbg !1004 + store { { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$ud-registry.getIsOAO_call_5609", { { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* }* %"$ud-registry.getIsOAO_137", align 8, !dbg !1004 %"$ud-registry.getIsOAO_138" = alloca { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }, align 8 - %"$$ud-registry.getIsOAO_137_5515" = 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_137", align 8 - %"$$ud-registry.getIsOAO_137_fptr_5516" = extractvalue { { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.getIsOAO_137_5515", 0 - %"$$ud-registry.getIsOAO_137_envptr_5517" = extractvalue { { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.getIsOAO_137_5515", 1 - %"$$ud-registry.getIsOAO_137_recordOwner_5518" = alloca [20 x i8], align 1 - %"$recordOwner_5519" = load [20 x i8], [20 x i8]* %recordOwner, align 1 - store [20 x i8] %"$recordOwner_5519", [20 x i8]* %"$$ud-registry.getIsOAO_137_recordOwner_5518", align 1 - %"$$ud-registry.getIsOAO_137_call_5520" = call { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } %"$$ud-registry.getIsOAO_137_fptr_5516"(i8* %"$$ud-registry.getIsOAO_137_envptr_5517", [20 x i8]* %"$$ud-registry.getIsOAO_137_recordOwner_5518"), !dbg !551 - store { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } %"$$ud-registry.getIsOAO_137_call_5520", { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }* %"$ud-registry.getIsOAO_138", align 8, !dbg !551 + %"$$ud-registry.getIsOAO_137_5610" = 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_137", align 8 + %"$$ud-registry.getIsOAO_137_fptr_5611" = extractvalue { { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.getIsOAO_137_5610", 0 + %"$$ud-registry.getIsOAO_137_envptr_5612" = extractvalue { { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.getIsOAO_137_5610", 1 + %"$$ud-registry.getIsOAO_137_recordOwner_5613" = alloca [20 x i8], align 1 + %"$recordOwner_5614" = load [20 x i8], [20 x i8]* %recordOwner, align 1 + store [20 x i8] %"$recordOwner_5614", [20 x i8]* %"$$ud-registry.getIsOAO_137_recordOwner_5613", align 1 + %"$$ud-registry.getIsOAO_137_call_5615" = call { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } %"$$ud-registry.getIsOAO_137_fptr_5611"(i8* %"$$ud-registry.getIsOAO_137_envptr_5612", [20 x i8]* %"$$ud-registry.getIsOAO_137_recordOwner_5613"), !dbg !1004 + store { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } %"$$ud-registry.getIsOAO_137_call_5615", { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }* %"$ud-registry.getIsOAO_138", align 8, !dbg !1004 %"$ud-registry.getIsOAO_139" = alloca { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* }, align 8 - %"$$ud-registry.getIsOAO_138_5521" = 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_138", align 8 - %"$$ud-registry.getIsOAO_138_fptr_5522" = extractvalue { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } %"$$ud-registry.getIsOAO_138_5521", 0 - %"$$ud-registry.getIsOAO_138_envptr_5523" = extractvalue { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } %"$$ud-registry.getIsOAO_138_5521", 1 - %"$maybeApproved_5524" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %maybeApproved, align 8 - %"$$ud-registry.getIsOAO_138_call_5525" = call { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } %"$$ud-registry.getIsOAO_138_fptr_5522"(i8* %"$$ud-registry.getIsOAO_138_envptr_5523", %TName_Option_ByStr20* %"$maybeApproved_5524"), !dbg !551 - store { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } %"$$ud-registry.getIsOAO_138_call_5525", { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* }* %"$ud-registry.getIsOAO_139", align 8, !dbg !551 + %"$$ud-registry.getIsOAO_138_5616" = 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_138", align 8 + %"$$ud-registry.getIsOAO_138_fptr_5617" = extractvalue { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } %"$$ud-registry.getIsOAO_138_5616", 0 + %"$$ud-registry.getIsOAO_138_envptr_5618" = extractvalue { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } %"$$ud-registry.getIsOAO_138_5616", 1 + %"$maybeApproved_5619" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %maybeApproved, align 8 + %"$$ud-registry.getIsOAO_138_call_5620" = call { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } %"$$ud-registry.getIsOAO_138_fptr_5617"(i8* %"$$ud-registry.getIsOAO_138_envptr_5618", %TName_Option_ByStr20* %"$maybeApproved_5619"), !dbg !1004 + store { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } %"$$ud-registry.getIsOAO_138_call_5620", { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* }* %"$ud-registry.getIsOAO_139", align 8, !dbg !1004 %"$ud-registry.getIsOAO_140" = alloca %TName_Bool*, align 8 - %"$$ud-registry.getIsOAO_139_5526" = load { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* }, { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* }* %"$ud-registry.getIsOAO_139", align 8 - %"$$ud-registry.getIsOAO_139_fptr_5527" = extractvalue { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } %"$$ud-registry.getIsOAO_139_5526", 0 - %"$$ud-registry.getIsOAO_139_envptr_5528" = extractvalue { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } %"$$ud-registry.getIsOAO_139_5526", 1 - %"$maybeOperators_5529" = load %"TName_Option_List_(ByStr20)"*, %"TName_Option_List_(ByStr20)"** %maybeOperators, align 8 - %"$$ud-registry.getIsOAO_139_call_5530" = call %TName_Bool* %"$$ud-registry.getIsOAO_139_fptr_5527"(i8* %"$$ud-registry.getIsOAO_139_envptr_5528", %"TName_Option_List_(ByStr20)"* %"$maybeOperators_5529"), !dbg !551 - store %TName_Bool* %"$$ud-registry.getIsOAO_139_call_5530", %TName_Bool** %"$ud-registry.getIsOAO_140", align 8, !dbg !551 - %"$$ud-registry.getIsOAO_140_5531" = load %TName_Bool*, %TName_Bool** %"$ud-registry.getIsOAO_140", align 8 - store %TName_Bool* %"$$ud-registry.getIsOAO_140_5531", %TName_Bool** %isSenderOAO, align 8, !dbg !551 - %"$gasrem_5532" = load i64, i64* @_gasrem, align 8 - %"$gascmp_5533" = icmp ugt i64 2, %"$gasrem_5532" - br i1 %"$gascmp_5533", label %"$out_of_gas_5534", label %"$have_gas_5535" - -"$out_of_gas_5534": ; preds = %"$have_gas_5508" - call void @_out_of_gas() - br label %"$have_gas_5535" - -"$have_gas_5535": ; preds = %"$out_of_gas_5534", %"$have_gas_5508" - %"$consume_5536" = sub i64 %"$gasrem_5532", 2 - store i64 %"$consume_5536", i64* @_gasrem, align 8 - %"$isSenderOAO_5538" = load %TName_Bool*, %TName_Bool** %isSenderOAO, align 8 - %"$isSenderOAO_tag_5539" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$isSenderOAO_5538", i32 0, i32 0 - %"$isSenderOAO_tag_5540" = load i8, i8* %"$isSenderOAO_tag_5539", align 1 - switch i8 %"$isSenderOAO_tag_5540", label %"$empty_default_5541" [ - i8 0, label %"$True_5542" - i8 1, label %"$False_5612" - ], !dbg !552 - -"$True_5542": ; preds = %"$have_gas_5535" - %"$isSenderOAO_5543" = bitcast %TName_Bool* %"$isSenderOAO_5538" to %CName_True* - %"$gasrem_5544" = load i64, i64* @_gasrem, align 8 - %"$gascmp_5545" = icmp ugt i64 1, %"$gasrem_5544" - br i1 %"$gascmp_5545", label %"$out_of_gas_5546", label %"$have_gas_5547" - -"$out_of_gas_5546": ; preds = %"$True_5542" - call void @_out_of_gas() - br label %"$have_gas_5547" - -"$have_gas_5547": ; preds = %"$out_of_gas_5546", %"$True_5542" - %"$consume_5548" = sub i64 %"$gasrem_5544", 1 - store i64 %"$consume_5548", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$ud-registry.getIsOAO_140", metadata !1005, metadata !DIExpression()), !dbg !1004 + %"$$ud-registry.getIsOAO_139_5621" = load { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* }, { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* }* %"$ud-registry.getIsOAO_139", align 8 + %"$$ud-registry.getIsOAO_139_fptr_5622" = extractvalue { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } %"$$ud-registry.getIsOAO_139_5621", 0 + %"$$ud-registry.getIsOAO_139_envptr_5623" = extractvalue { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } %"$$ud-registry.getIsOAO_139_5621", 1 + %"$maybeOperators_5624" = load %"TName_Option_List_(ByStr20)"*, %"TName_Option_List_(ByStr20)"** %maybeOperators, align 8 + %"$$ud-registry.getIsOAO_139_call_5625" = call %TName_Bool* %"$$ud-registry.getIsOAO_139_fptr_5622"(i8* %"$$ud-registry.getIsOAO_139_envptr_5623", %"TName_Option_List_(ByStr20)"* %"$maybeOperators_5624"), !dbg !1004 + store %TName_Bool* %"$$ud-registry.getIsOAO_139_call_5625", %TName_Bool** %"$ud-registry.getIsOAO_140", align 8, !dbg !1004 + %"$$ud-registry.getIsOAO_140_5626" = load %TName_Bool*, %TName_Bool** %"$ud-registry.getIsOAO_140", align 8 + store %TName_Bool* %"$$ud-registry.getIsOAO_140_5626", %TName_Bool** %isSenderOAO, align 8, !dbg !1004 + %"$gasrem_5627" = load i64, i64* @_gasrem, align 8 + %"$gascmp_5628" = icmp ugt i64 2, %"$gasrem_5627" + br i1 %"$gascmp_5628", label %"$out_of_gas_5629", label %"$have_gas_5630" + +"$out_of_gas_5629": ; preds = %"$have_gas_5603" + call void @_out_of_gas() + br label %"$have_gas_5630" + +"$have_gas_5630": ; preds = %"$out_of_gas_5629", %"$have_gas_5603" + %"$consume_5631" = sub i64 %"$gasrem_5627", 2 + store i64 %"$consume_5631", i64* @_gasrem, align 8 + %"$isSenderOAO_5633" = load %TName_Bool*, %TName_Bool** %isSenderOAO, align 8 + %"$isSenderOAO_tag_5634" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$isSenderOAO_5633", i32 0, i32 0 + %"$isSenderOAO_tag_5635" = load i8, i8* %"$isSenderOAO_tag_5634", align 1 + switch i8 %"$isSenderOAO_tag_5635", label %"$empty_default_5636" [ + i8 0, label %"$True_5637" + i8 1, label %"$False_5707" + ], !dbg !1006 + +"$True_5637": ; preds = %"$have_gas_5630" + %"$isSenderOAO_5638" = bitcast %TName_Bool* %"$isSenderOAO_5633" to %CName_True* + %"$gasrem_5639" = load i64, i64* @_gasrem, align 8 + %"$gascmp_5640" = icmp ugt i64 1, %"$gasrem_5639" + br i1 %"$gascmp_5640", label %"$out_of_gas_5641", label %"$have_gas_5642" + +"$out_of_gas_5641": ; preds = %"$True_5637" + call void @_out_of_gas() + br label %"$have_gas_5642" + +"$have_gas_5642": ; preds = %"$out_of_gas_5641", %"$True_5637" + %"$consume_5643" = sub i64 %"$gasrem_5639", 1 + store i64 %"$consume_5643", i64* @_gasrem, align 8 %newRecord = alloca %TName_ud-registry.Record*, align 8 - %"$gasrem_5549" = load i64, i64* @_gasrem, align 8 - %"$gascmp_5550" = icmp ugt i64 1, %"$gasrem_5549" - br i1 %"$gascmp_5550", label %"$out_of_gas_5551", label %"$have_gas_5552" - -"$out_of_gas_5551": ; preds = %"$have_gas_5547" - call void @_out_of_gas() - br label %"$have_gas_5552" - -"$have_gas_5552": ; preds = %"$out_of_gas_5551", %"$have_gas_5547" - %"$consume_5553" = sub i64 %"$gasrem_5549", 1 - store i64 %"$consume_5553", i64* @_gasrem, align 8 - %"$recordOwner_5554" = load [20 x i8], [20 x i8]* %recordOwner, align 1 - %"$adtval_5555_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_5555_salloc" = call i8* @_salloc(i8* %"$adtval_5555_load", i64 41) - %"$adtval_5555" = bitcast i8* %"$adtval_5555_salloc" to %CName_ud-registry.Record* - %"$adtgep_5556" = getelementptr inbounds %CName_ud-registry.Record, %CName_ud-registry.Record* %"$adtval_5555", i32 0, i32 0 - store i8 0, i8* %"$adtgep_5556", align 1 - %"$adtgep_5557" = getelementptr inbounds %CName_ud-registry.Record, %CName_ud-registry.Record* %"$adtval_5555", i32 0, i32 1 - store [20 x i8] %"$recordOwner_5554", [20 x i8]* %"$adtgep_5557", align 1 - %"$adtgep_5558" = getelementptr inbounds %CName_ud-registry.Record, %CName_ud-registry.Record* %"$adtval_5555", i32 0, i32 2 - store [20 x i8] %resolver, [20 x i8]* %"$adtgep_5558", align 1 - %"$adtptr_5559" = bitcast %CName_ud-registry.Record* %"$adtval_5555" to %TName_ud-registry.Record* - store %TName_ud-registry.Record* %"$adtptr_5559", %TName_ud-registry.Record** %newRecord, align 8, !dbg !553 - %"$newRecord_5560" = load %TName_ud-registry.Record*, %TName_ud-registry.Record** %newRecord, align 8 - %"$$newRecord_5560_5561" = bitcast %TName_ud-registry.Record* %"$newRecord_5560" to i8* - %"$_literal_cost_call_5562" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_ud-registry.Record_465", i8* %"$$newRecord_5560_5561") - %"$gasadd_5563" = add i64 %"$_literal_cost_call_5562", 1 - %"$gasrem_5564" = load i64, i64* @_gasrem, align 8 - %"$gascmp_5565" = icmp ugt i64 %"$gasadd_5563", %"$gasrem_5564" - br i1 %"$gascmp_5565", label %"$out_of_gas_5566", label %"$have_gas_5567" - -"$out_of_gas_5566": ; preds = %"$have_gas_5552" - call void @_out_of_gas() - br label %"$have_gas_5567" - -"$have_gas_5567": ; preds = %"$out_of_gas_5566", %"$have_gas_5552" - %"$consume_5568" = sub i64 %"$gasrem_5564", %"$gasadd_5563" - store i64 %"$consume_5568", i64* @_gasrem, align 8 - %"$indices_buf_5569_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$indices_buf_5569_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_5569_salloc_load", i64 32) - %"$indices_buf_5569_salloc" = bitcast i8* %"$indices_buf_5569_salloc_salloc" to [32 x i8]* - %"$indices_buf_5569" = bitcast [32 x i8]* %"$indices_buf_5569_salloc" to i8* - %"$indices_gep_5570" = getelementptr i8, i8* %"$indices_buf_5569", i32 0 - %indices_cast3 = bitcast i8* %"$indices_gep_5570" to [32 x i8]* + call void @llvm.dbg.declare(metadata %TName_ud-registry.Record** %newRecord, metadata !1007, metadata !DIExpression()), !dbg !1010 + %"$gasrem_5644" = load i64, i64* @_gasrem, align 8 + %"$gascmp_5645" = icmp ugt i64 1, %"$gasrem_5644" + br i1 %"$gascmp_5645", label %"$out_of_gas_5646", label %"$have_gas_5647" + +"$out_of_gas_5646": ; preds = %"$have_gas_5642" + call void @_out_of_gas() + br label %"$have_gas_5647" + +"$have_gas_5647": ; preds = %"$out_of_gas_5646", %"$have_gas_5642" + %"$consume_5648" = sub i64 %"$gasrem_5644", 1 + store i64 %"$consume_5648", i64* @_gasrem, align 8 + %"$recordOwner_5649" = load [20 x i8], [20 x i8]* %recordOwner, align 1 + %"$adtval_5650_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_5650_salloc" = call i8* @_salloc(i8* %"$adtval_5650_load", i64 41) + %"$adtval_5650" = bitcast i8* %"$adtval_5650_salloc" to %CName_ud-registry.Record* + %"$adtgep_5651" = getelementptr inbounds %CName_ud-registry.Record, %CName_ud-registry.Record* %"$adtval_5650", i32 0, i32 0 + store i8 0, i8* %"$adtgep_5651", align 1 + %"$adtgep_5652" = getelementptr inbounds %CName_ud-registry.Record, %CName_ud-registry.Record* %"$adtval_5650", i32 0, i32 1 + store [20 x i8] %"$recordOwner_5649", [20 x i8]* %"$adtgep_5652", align 1 + %"$adtgep_5653" = getelementptr inbounds %CName_ud-registry.Record, %CName_ud-registry.Record* %"$adtval_5650", i32 0, i32 2 + store [20 x i8] %resolver, [20 x i8]* %"$adtgep_5653", align 1 + %"$adtptr_5654" = bitcast %CName_ud-registry.Record* %"$adtval_5650" to %TName_ud-registry.Record* + store %TName_ud-registry.Record* %"$adtptr_5654", %TName_ud-registry.Record** %newRecord, align 8, !dbg !1011 + %"$newRecord_5655" = load %TName_ud-registry.Record*, %TName_ud-registry.Record** %newRecord, align 8 + %"$$newRecord_5655_5656" = bitcast %TName_ud-registry.Record* %"$newRecord_5655" to i8* + %"$_literal_cost_call_5657" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_ud-registry.Record_465", i8* %"$$newRecord_5655_5656") + %"$gasadd_5658" = add i64 %"$_literal_cost_call_5657", 1 + %"$gasrem_5659" = load i64, i64* @_gasrem, align 8 + %"$gascmp_5660" = icmp ugt i64 %"$gasadd_5658", %"$gasrem_5659" + br i1 %"$gascmp_5660", label %"$out_of_gas_5661", label %"$have_gas_5662" + +"$out_of_gas_5661": ; preds = %"$have_gas_5647" + call void @_out_of_gas() + br label %"$have_gas_5662" + +"$have_gas_5662": ; preds = %"$out_of_gas_5661", %"$have_gas_5647" + %"$consume_5663" = sub i64 %"$gasrem_5659", %"$gasadd_5658" + store i64 %"$consume_5663", i64* @_gasrem, align 8 + %"$indices_buf_5664_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$indices_buf_5664_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_5664_salloc_load", i64 32) + %"$indices_buf_5664_salloc" = bitcast i8* %"$indices_buf_5664_salloc_salloc" to [32 x i8]* + %"$indices_buf_5664" = bitcast [32 x i8]* %"$indices_buf_5664_salloc" to i8* + %"$indices_gep_5665" = getelementptr i8, i8* %"$indices_buf_5664", i32 0 + %indices_cast3 = bitcast i8* %"$indices_gep_5665" to [32 x i8]* store [32 x i8] %node, [32 x i8]* %indices_cast3, align 1 - %"$execptr_load_5571" = load i8*, i8** @_execptr, align 8 - %"$newRecord_5573" = load %TName_ud-registry.Record*, %TName_ud-registry.Record** %newRecord, align 8 - %"$update_value_5574" = bitcast %TName_ud-registry.Record* %"$newRecord_5573" to i8* - call void @_update_field(i8* %"$execptr_load_5571", i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$records_5572", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_472", i32 1, i8* %"$indices_buf_5569", i8* %"$update_value_5574"), !dbg !556 - %"$gasrem_5575" = load i64, i64* @_gasrem, align 8 - %"$gascmp_5576" = icmp ugt i64 1, %"$gasrem_5575" - br i1 %"$gascmp_5576", label %"$out_of_gas_5577", label %"$have_gas_5578" + %"$execptr_load_5666" = load i8*, i8** @_execptr, align 8 + %"$newRecord_5668" = load %TName_ud-registry.Record*, %TName_ud-registry.Record** %newRecord, align 8 + %"$update_value_5669" = bitcast %TName_ud-registry.Record* %"$newRecord_5668" to i8* + call void @_update_field(i8* %"$execptr_load_5666", i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$records_5667", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_472", i32 1, i8* %"$indices_buf_5664", i8* %"$update_value_5669"), !dbg !1012 + %"$gasrem_5670" = load i64, i64* @_gasrem, align 8 + %"$gascmp_5671" = icmp ugt i64 1, %"$gasrem_5670" + br i1 %"$gascmp_5671", label %"$out_of_gas_5672", label %"$have_gas_5673" -"$out_of_gas_5577": ; preds = %"$have_gas_5567" +"$out_of_gas_5672": ; preds = %"$have_gas_5662" call void @_out_of_gas() - br label %"$have_gas_5578" + br label %"$have_gas_5673" -"$have_gas_5578": ; preds = %"$out_of_gas_5577", %"$have_gas_5567" - %"$consume_5579" = sub i64 %"$gasrem_5575", 1 - store i64 %"$consume_5579", i64* @_gasrem, align 8 +"$have_gas_5673": ; preds = %"$out_of_gas_5672", %"$have_gas_5662" + %"$consume_5674" = sub i64 %"$gasrem_5670", 1 + store i64 %"$consume_5674", i64* @_gasrem, align 8 %e = alloca i8*, align 8 - %"$gasrem_5580" = load i64, i64* @_gasrem, align 8 - %"$gascmp_5581" = icmp ugt i64 1, %"$gasrem_5580" - br i1 %"$gascmp_5581", label %"$out_of_gas_5582", label %"$have_gas_5583" + call void @llvm.dbg.declare(metadata i8** %e, metadata !1013, metadata !DIExpression()), !dbg !1014 + %"$gasrem_5675" = load i64, i64* @_gasrem, align 8 + %"$gascmp_5676" = icmp ugt i64 1, %"$gasrem_5675" + br i1 %"$gascmp_5676", label %"$out_of_gas_5677", label %"$have_gas_5678" -"$out_of_gas_5582": ; preds = %"$have_gas_5578" +"$out_of_gas_5677": ; preds = %"$have_gas_5673" call void @_out_of_gas() - br label %"$have_gas_5583" + br label %"$have_gas_5678" -"$have_gas_5583": ; preds = %"$out_of_gas_5582", %"$have_gas_5578" - %"$consume_5584" = sub i64 %"$gasrem_5580", 1 - store i64 %"$consume_5584", i64* @_gasrem, align 8 +"$have_gas_5678": ; preds = %"$out_of_gas_5677", %"$have_gas_5673" + %"$consume_5679" = sub i64 %"$gasrem_5675", 1 + store i64 %"$consume_5679", i64* @_gasrem, align 8 %"$ud-registry.eConfigured_133" = alloca { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* }, align 8 - %"$ud-registry.eConfigured_5585" = 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_5586" = extractvalue { { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, [32 x i8]*)*, i8* } %"$ud-registry.eConfigured_5585", 0 - %"$ud-registry.eConfigured_envptr_5587" = extractvalue { { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, [32 x i8]*)*, i8* } %"$ud-registry.eConfigured_5585", 1 - %"$ud-registry.eConfigured_node_5588" = alloca [32 x i8], align 1 - store [32 x i8] %node, [32 x i8]* %"$ud-registry.eConfigured_node_5588", align 1 - %"$ud-registry.eConfigured_call_5589" = call { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$ud-registry.eConfigured_fptr_5586"(i8* %"$ud-registry.eConfigured_envptr_5587", [32 x i8]* %"$ud-registry.eConfigured_node_5588"), !dbg !557 - store { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$ud-registry.eConfigured_call_5589", { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* }* %"$ud-registry.eConfigured_133", align 8, !dbg !557 + %"$ud-registry.eConfigured_5680" = 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_5681" = extractvalue { { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, [32 x i8]*)*, i8* } %"$ud-registry.eConfigured_5680", 0 + %"$ud-registry.eConfigured_envptr_5682" = extractvalue { { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, [32 x i8]*)*, i8* } %"$ud-registry.eConfigured_5680", 1 + %"$ud-registry.eConfigured_node_5683" = alloca [32 x i8], align 1 + store [32 x i8] %node, [32 x i8]* %"$ud-registry.eConfigured_node_5683", align 1 + %"$ud-registry.eConfigured_call_5684" = call { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$ud-registry.eConfigured_fptr_5681"(i8* %"$ud-registry.eConfigured_envptr_5682", [32 x i8]* %"$ud-registry.eConfigured_node_5683"), !dbg !1015 + store { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$ud-registry.eConfigured_call_5684", { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* }* %"$ud-registry.eConfigured_133", align 8, !dbg !1015 %"$ud-registry.eConfigured_134" = alloca { i8* (i8*, [20 x i8]*)*, i8* }, align 8 - %"$$ud-registry.eConfigured_133_5590" = 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_133", align 8 - %"$$ud-registry.eConfigured_133_fptr_5591" = extractvalue { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.eConfigured_133_5590", 0 - %"$$ud-registry.eConfigured_133_envptr_5592" = extractvalue { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.eConfigured_133_5590", 1 - %"$$ud-registry.eConfigured_133_recordOwner_5593" = alloca [20 x i8], align 1 - %"$recordOwner_5594" = load [20 x i8], [20 x i8]* %recordOwner, align 1 - store [20 x i8] %"$recordOwner_5594", [20 x i8]* %"$$ud-registry.eConfigured_133_recordOwner_5593", align 1 - %"$$ud-registry.eConfigured_133_call_5595" = call { i8* (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.eConfigured_133_fptr_5591"(i8* %"$$ud-registry.eConfigured_133_envptr_5592", [20 x i8]* %"$$ud-registry.eConfigured_133_recordOwner_5593"), !dbg !557 - store { i8* (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.eConfigured_133_call_5595", { i8* (i8*, [20 x i8]*)*, i8* }* %"$ud-registry.eConfigured_134", align 8, !dbg !557 + %"$$ud-registry.eConfigured_133_5685" = 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_133", align 8 + %"$$ud-registry.eConfigured_133_fptr_5686" = extractvalue { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.eConfigured_133_5685", 0 + %"$$ud-registry.eConfigured_133_envptr_5687" = extractvalue { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.eConfigured_133_5685", 1 + %"$$ud-registry.eConfigured_133_recordOwner_5688" = alloca [20 x i8], align 1 + %"$recordOwner_5689" = load [20 x i8], [20 x i8]* %recordOwner, align 1 + store [20 x i8] %"$recordOwner_5689", [20 x i8]* %"$$ud-registry.eConfigured_133_recordOwner_5688", align 1 + %"$$ud-registry.eConfigured_133_call_5690" = call { i8* (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.eConfigured_133_fptr_5686"(i8* %"$$ud-registry.eConfigured_133_envptr_5687", [20 x i8]* %"$$ud-registry.eConfigured_133_recordOwner_5688"), !dbg !1015 + store { i8* (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.eConfigured_133_call_5690", { i8* (i8*, [20 x i8]*)*, i8* }* %"$ud-registry.eConfigured_134", align 8, !dbg !1015 %"$ud-registry.eConfigured_135" = alloca i8*, align 8 - %"$$ud-registry.eConfigured_134_5596" = load { i8* (i8*, [20 x i8]*)*, i8* }, { i8* (i8*, [20 x i8]*)*, i8* }* %"$ud-registry.eConfigured_134", align 8 - %"$$ud-registry.eConfigured_134_fptr_5597" = extractvalue { i8* (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.eConfigured_134_5596", 0 - %"$$ud-registry.eConfigured_134_envptr_5598" = extractvalue { i8* (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.eConfigured_134_5596", 1 - %"$$ud-registry.eConfigured_134_resolver_5599" = alloca [20 x i8], align 1 - store [20 x i8] %resolver, [20 x i8]* %"$$ud-registry.eConfigured_134_resolver_5599", align 1 - %"$$ud-registry.eConfigured_134_call_5600" = call i8* %"$$ud-registry.eConfigured_134_fptr_5597"(i8* %"$$ud-registry.eConfigured_134_envptr_5598", [20 x i8]* %"$$ud-registry.eConfigured_134_resolver_5599"), !dbg !557 - store i8* %"$$ud-registry.eConfigured_134_call_5600", i8** %"$ud-registry.eConfigured_135", align 8, !dbg !557 - %"$$ud-registry.eConfigured_135_5601" = load i8*, i8** %"$ud-registry.eConfigured_135", align 8 - store i8* %"$$ud-registry.eConfigured_135_5601", i8** %e, align 8, !dbg !557 - %"$e_5602" = load i8*, i8** %e, align 8 - %"$_literal_cost_call_5604" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Event_446", i8* %"$e_5602") - %"$gasrem_5605" = load i64, i64* @_gasrem, align 8 - %"$gascmp_5606" = icmp ugt i64 %"$_literal_cost_call_5604", %"$gasrem_5605" - br i1 %"$gascmp_5606", label %"$out_of_gas_5607", label %"$have_gas_5608" - -"$out_of_gas_5607": ; preds = %"$have_gas_5583" - call void @_out_of_gas() - br label %"$have_gas_5608" - -"$have_gas_5608": ; preds = %"$out_of_gas_5607", %"$have_gas_5583" - %"$consume_5609" = sub i64 %"$gasrem_5605", %"$_literal_cost_call_5604" - store i64 %"$consume_5609", i64* @_gasrem, align 8 - %"$execptr_load_5610" = load i8*, i8** @_execptr, align 8 - %"$e_5611" = load i8*, i8** %e, align 8 - call void @_event(i8* %"$execptr_load_5610", %_TyDescrTy_Typ* @"$TyDescr_Event_446", i8* %"$e_5611"), !dbg !558 - br label %"$matchsucc_5537" - -"$False_5612": ; preds = %"$have_gas_5535" - %"$isSenderOAO_5613" = bitcast %TName_Bool* %"$isSenderOAO_5538" to %CName_False* - %"$gasrem_5614" = load i64, i64* @_gasrem, align 8 - %"$gascmp_5615" = icmp ugt i64 1, %"$gasrem_5614" - br i1 %"$gascmp_5615", label %"$out_of_gas_5616", label %"$have_gas_5617" - -"$out_of_gas_5616": ; preds = %"$False_5612" - call void @_out_of_gas() - br label %"$have_gas_5617" - -"$have_gas_5617": ; preds = %"$out_of_gas_5616", %"$False_5612" - %"$consume_5618" = sub i64 %"$gasrem_5614", 1 - store i64 %"$consume_5618", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata i8** %"$ud-registry.eConfigured_135", metadata !1016, metadata !DIExpression()), !dbg !1015 + %"$$ud-registry.eConfigured_134_5691" = load { i8* (i8*, [20 x i8]*)*, i8* }, { i8* (i8*, [20 x i8]*)*, i8* }* %"$ud-registry.eConfigured_134", align 8 + %"$$ud-registry.eConfigured_134_fptr_5692" = extractvalue { i8* (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.eConfigured_134_5691", 0 + %"$$ud-registry.eConfigured_134_envptr_5693" = extractvalue { i8* (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.eConfigured_134_5691", 1 + %"$$ud-registry.eConfigured_134_resolver_5694" = alloca [20 x i8], align 1 + store [20 x i8] %resolver, [20 x i8]* %"$$ud-registry.eConfigured_134_resolver_5694", align 1 + %"$$ud-registry.eConfigured_134_call_5695" = call i8* %"$$ud-registry.eConfigured_134_fptr_5692"(i8* %"$$ud-registry.eConfigured_134_envptr_5693", [20 x i8]* %"$$ud-registry.eConfigured_134_resolver_5694"), !dbg !1015 + store i8* %"$$ud-registry.eConfigured_134_call_5695", i8** %"$ud-registry.eConfigured_135", align 8, !dbg !1015 + %"$$ud-registry.eConfigured_135_5696" = load i8*, i8** %"$ud-registry.eConfigured_135", align 8 + store i8* %"$$ud-registry.eConfigured_135_5696", i8** %e, align 8, !dbg !1015 + %"$e_5697" = load i8*, i8** %e, align 8 + %"$_literal_cost_call_5699" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Event_446", i8* %"$e_5697") + %"$gasrem_5700" = load i64, i64* @_gasrem, align 8 + %"$gascmp_5701" = icmp ugt i64 %"$_literal_cost_call_5699", %"$gasrem_5700" + br i1 %"$gascmp_5701", label %"$out_of_gas_5702", label %"$have_gas_5703" + +"$out_of_gas_5702": ; preds = %"$have_gas_5678" + call void @_out_of_gas() + br label %"$have_gas_5703" + +"$have_gas_5703": ; preds = %"$out_of_gas_5702", %"$have_gas_5678" + %"$consume_5704" = sub i64 %"$gasrem_5700", %"$_literal_cost_call_5699" + store i64 %"$consume_5704", i64* @_gasrem, align 8 + %"$execptr_load_5705" = load i8*, i8** @_execptr, align 8 + %"$e_5706" = load i8*, i8** %e, align 8 + call void @_event(i8* %"$execptr_load_5705", %_TyDescrTy_Typ* @"$TyDescr_Event_446", i8* %"$e_5706"), !dbg !1017 + br label %"$matchsucc_5632" + +"$False_5707": ; preds = %"$have_gas_5630" + %"$isSenderOAO_5708" = bitcast %TName_Bool* %"$isSenderOAO_5633" to %CName_False* + %"$gasrem_5709" = load i64, i64* @_gasrem, align 8 + %"$gascmp_5710" = icmp ugt i64 1, %"$gasrem_5709" + br i1 %"$gascmp_5710", label %"$out_of_gas_5711", label %"$have_gas_5712" + +"$out_of_gas_5711": ; preds = %"$False_5707" + call void @_out_of_gas() + br label %"$have_gas_5712" + +"$have_gas_5712": ; preds = %"$out_of_gas_5711", %"$False_5707" + %"$consume_5713" = sub i64 %"$gasrem_5709", 1 + store i64 %"$consume_5713", i64* @_gasrem, align 8 %e4 = alloca i8*, align 8 - %"$gasrem_5619" = load i64, i64* @_gasrem, align 8 - %"$gascmp_5620" = icmp ugt i64 1, %"$gasrem_5619" - br i1 %"$gascmp_5620", label %"$out_of_gas_5621", label %"$have_gas_5622" + call void @llvm.dbg.declare(metadata i8** %e4, metadata !1018, metadata !DIExpression()), !dbg !1020 + %"$gasrem_5714" = load i64, i64* @_gasrem, align 8 + %"$gascmp_5715" = icmp ugt i64 1, %"$gasrem_5714" + br i1 %"$gascmp_5715", label %"$out_of_gas_5716", label %"$have_gas_5717" -"$out_of_gas_5621": ; preds = %"$have_gas_5617" +"$out_of_gas_5716": ; preds = %"$have_gas_5712" call void @_out_of_gas() - br label %"$have_gas_5622" + br label %"$have_gas_5717" -"$have_gas_5622": ; preds = %"$out_of_gas_5621", %"$have_gas_5617" - %"$consume_5623" = sub i64 %"$gasrem_5619", 1 - store i64 %"$consume_5623", i64* @_gasrem, align 8 +"$have_gas_5717": ; preds = %"$out_of_gas_5716", %"$have_gas_5712" + %"$consume_5718" = sub i64 %"$gasrem_5714", 1 + store i64 %"$consume_5718", i64* @_gasrem, align 8 %m = alloca %String, align 8 - %"$gasrem_5624" = load i64, i64* @_gasrem, align 8 - %"$gascmp_5625" = icmp ugt i64 1, %"$gasrem_5624" - br i1 %"$gascmp_5625", label %"$out_of_gas_5626", label %"$have_gas_5627" + call void @llvm.dbg.declare(metadata %String* %m, metadata !1021, metadata !DIExpression()), !dbg !1022 + %"$gasrem_5719" = load i64, i64* @_gasrem, align 8 + %"$gascmp_5720" = icmp ugt i64 1, %"$gasrem_5719" + br i1 %"$gascmp_5720", label %"$out_of_gas_5721", label %"$have_gas_5722" -"$out_of_gas_5626": ; preds = %"$have_gas_5622" +"$out_of_gas_5721": ; preds = %"$have_gas_5717" call void @_out_of_gas() - br label %"$have_gas_5627" + br label %"$have_gas_5722" -"$have_gas_5627": ; preds = %"$out_of_gas_5626", %"$have_gas_5622" - %"$consume_5628" = sub i64 %"$gasrem_5624", 1 - store i64 %"$consume_5628", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([43 x i8], [43 x i8]* @"$stringlit_5629", i32 0, i32 0), i32 43 }, %String* %m, align 8, !dbg !559 - %"$gasrem_5630" = load i64, i64* @_gasrem, align 8 - %"$gascmp_5631" = icmp ugt i64 1, %"$gasrem_5630" - br i1 %"$gascmp_5631", label %"$out_of_gas_5632", label %"$have_gas_5633" +"$have_gas_5722": ; preds = %"$out_of_gas_5721", %"$have_gas_5717" + %"$consume_5723" = sub i64 %"$gasrem_5719", 1 + store i64 %"$consume_5723", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([43 x i8], [43 x i8]* @"$stringlit_5724", i32 0, i32 0), i32 43 }, %String* %m, align 8, !dbg !1023 + %"$gasrem_5725" = load i64, i64* @_gasrem, align 8 + %"$gascmp_5726" = icmp ugt i64 1, %"$gasrem_5725" + br i1 %"$gascmp_5726", label %"$out_of_gas_5727", label %"$have_gas_5728" -"$out_of_gas_5632": ; preds = %"$have_gas_5627" +"$out_of_gas_5727": ; preds = %"$have_gas_5722" call void @_out_of_gas() - br label %"$have_gas_5633" + br label %"$have_gas_5728" -"$have_gas_5633": ; preds = %"$out_of_gas_5632", %"$have_gas_5627" - %"$consume_5634" = sub i64 %"$gasrem_5630", 1 - store i64 %"$consume_5634", i64* @_gasrem, align 8 +"$have_gas_5728": ; preds = %"$out_of_gas_5727", %"$have_gas_5722" + %"$consume_5729" = sub i64 %"$gasrem_5725", 1 + store i64 %"$consume_5729", i64* @_gasrem, align 8 %"$ud-registry.eError_136" = alloca i8*, align 8 - %"$ud-registry.eError_5635" = load { i8* (i8*, %String)*, i8* }, { i8* (i8*, %String)*, i8* }* @ud-registry.eError, align 8 - %"$ud-registry.eError_fptr_5636" = extractvalue { i8* (i8*, %String)*, i8* } %"$ud-registry.eError_5635", 0 - %"$ud-registry.eError_envptr_5637" = extractvalue { i8* (i8*, %String)*, i8* } %"$ud-registry.eError_5635", 1 - %"$m_5638" = load %String, %String* %m, align 8 - %"$ud-registry.eError_call_5639" = call i8* %"$ud-registry.eError_fptr_5636"(i8* %"$ud-registry.eError_envptr_5637", %String %"$m_5638"), !dbg !561 - store i8* %"$ud-registry.eError_call_5639", i8** %"$ud-registry.eError_136", align 8, !dbg !561 - %"$$ud-registry.eError_136_5640" = load i8*, i8** %"$ud-registry.eError_136", align 8 - store i8* %"$$ud-registry.eError_136_5640", i8** %e4, align 8, !dbg !561 - %"$e_5641" = load i8*, i8** %e4, align 8 - %"$_literal_cost_call_5643" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Event_446", i8* %"$e_5641") - %"$gasrem_5644" = load i64, i64* @_gasrem, align 8 - %"$gascmp_5645" = icmp ugt i64 %"$_literal_cost_call_5643", %"$gasrem_5644" - br i1 %"$gascmp_5645", label %"$out_of_gas_5646", label %"$have_gas_5647" - -"$out_of_gas_5646": ; preds = %"$have_gas_5633" - call void @_out_of_gas() - br label %"$have_gas_5647" - -"$have_gas_5647": ; preds = %"$out_of_gas_5646", %"$have_gas_5633" - %"$consume_5648" = sub i64 %"$gasrem_5644", %"$_literal_cost_call_5643" - store i64 %"$consume_5648", i64* @_gasrem, align 8 - %"$execptr_load_5649" = load i8*, i8** @_execptr, align 8 - %"$e_5650" = load i8*, i8** %e4, align 8 - call void @_event(i8* %"$execptr_load_5649", %_TyDescrTy_Typ* @"$TyDescr_Event_446", i8* %"$e_5650"), !dbg !562 - br label %"$matchsucc_5537" - -"$empty_default_5541": ; preds = %"$have_gas_5535" - br label %"$matchsucc_5537" - -"$matchsucc_5537": ; preds = %"$have_gas_5647", %"$have_gas_5608", %"$empty_default_5541" + call void @llvm.dbg.declare(metadata i8** %"$ud-registry.eError_136", metadata !1024, metadata !DIExpression()), !dbg !1025 + %"$ud-registry.eError_5730" = load { i8* (i8*, %String)*, i8* }, { i8* (i8*, %String)*, i8* }* @ud-registry.eError, align 8 + %"$ud-registry.eError_fptr_5731" = extractvalue { i8* (i8*, %String)*, i8* } %"$ud-registry.eError_5730", 0 + %"$ud-registry.eError_envptr_5732" = extractvalue { i8* (i8*, %String)*, i8* } %"$ud-registry.eError_5730", 1 + %"$m_5733" = load %String, %String* %m, align 8 + %"$ud-registry.eError_call_5734" = call i8* %"$ud-registry.eError_fptr_5731"(i8* %"$ud-registry.eError_envptr_5732", %String %"$m_5733"), !dbg !1025 + store i8* %"$ud-registry.eError_call_5734", i8** %"$ud-registry.eError_136", align 8, !dbg !1025 + %"$$ud-registry.eError_136_5735" = load i8*, i8** %"$ud-registry.eError_136", align 8 + store i8* %"$$ud-registry.eError_136_5735", i8** %e4, align 8, !dbg !1025 + %"$e_5736" = load i8*, i8** %e4, align 8 + %"$_literal_cost_call_5738" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Event_446", i8* %"$e_5736") + %"$gasrem_5739" = load i64, i64* @_gasrem, align 8 + %"$gascmp_5740" = icmp ugt i64 %"$_literal_cost_call_5738", %"$gasrem_5739" + br i1 %"$gascmp_5740", label %"$out_of_gas_5741", label %"$have_gas_5742" + +"$out_of_gas_5741": ; preds = %"$have_gas_5728" + call void @_out_of_gas() + br label %"$have_gas_5742" + +"$have_gas_5742": ; preds = %"$out_of_gas_5741", %"$have_gas_5728" + %"$consume_5743" = sub i64 %"$gasrem_5739", %"$_literal_cost_call_5738" + store i64 %"$consume_5743", i64* @_gasrem, align 8 + %"$execptr_load_5744" = load i8*, i8** @_execptr, align 8 + %"$e_5745" = load i8*, i8** %e4, align 8 + call void @_event(i8* %"$execptr_load_5744", %_TyDescrTy_Typ* @"$TyDescr_Event_446", i8* %"$e_5745"), !dbg !1026 + br label %"$matchsucc_5632" + +"$empty_default_5636": ; preds = %"$have_gas_5630" + br label %"$matchsucc_5632" + +"$matchsucc_5632": ; preds = %"$have_gas_5742", %"$have_gas_5703", %"$empty_default_5636" ret void } -define void @configureResolver(i8* %0) !dbg !563 { -entry: - %"$_amount_5652" = getelementptr i8, i8* %0, i32 0 - %"$_amount_5653" = bitcast i8* %"$_amount_5652" to %Uint128* - %_amount = load %Uint128, %Uint128* %"$_amount_5653", align 8 - %"$_origin_5654" = getelementptr i8, i8* %0, i32 16 - %"$_origin_5655" = bitcast i8* %"$_origin_5654" to [20 x i8]* - %"$_sender_5656" = getelementptr i8, i8* %0, i32 36 - %"$_sender_5657" = bitcast i8* %"$_sender_5656" to [20 x i8]* - %"$node_5658" = getelementptr i8, i8* %0, i32 56 - %"$node_5659" = bitcast i8* %"$node_5658" to [32 x i8]* - %"$resolver_5660" = getelementptr i8, i8* %0, i32 88 - %"$resolver_5661" = bitcast i8* %"$resolver_5660" to [20 x i8]* - call void @"$configureResolver_5429"(%Uint128 %_amount, [20 x i8]* %"$_origin_5655", [20 x i8]* %"$_sender_5657", [32 x i8]* %"$node_5659", [20 x i8]* %"$resolver_5661"), !dbg !564 +define void @configureResolver(i8* %0) !dbg !1027 { +entry: + %"$_amount_5752" = getelementptr i8, i8* %0, i32 0 + %"$_amount_5753" = bitcast i8* %"$_amount_5752" to %Uint128* + %_amount = load %Uint128, %Uint128* %"$_amount_5753", align 8 + %"$_origin_5754" = getelementptr i8, i8* %0, i32 16 + %"$_origin_5755" = bitcast i8* %"$_origin_5754" to [20 x i8]* + %"$_sender_5756" = getelementptr i8, i8* %0, i32 36 + %"$_sender_5757" = bitcast i8* %"$_sender_5756" to [20 x i8]* + %"$node_5758" = getelementptr i8, i8* %0, i32 56 + %"$node_5759" = bitcast i8* %"$node_5758" to [32 x i8]* + %"$resolver_5760" = getelementptr i8, i8* %0, i32 88 + %"$resolver_5761" = bitcast i8* %"$resolver_5760" to [20 x i8]* + call void @"$configureResolver_5524"(%Uint128 %_amount, [20 x i8]* %"$_origin_5755", [20 x i8]* %"$_sender_5757", [32 x i8]* %"$node_5759", [20 x i8]* %"$resolver_5761"), !dbg !1028 ret void } -define internal void @"$transfer_5662"(%Uint128 %_amount, [20 x i8]* %"$_origin_5663", [20 x i8]* %"$_sender_5664", [32 x i8]* %"$node_5665", [20 x i8]* %"$owner_5666") !dbg !565 { -entry: - %_origin = load [20 x i8], [20 x i8]* %"$_origin_5663", align 1 - %_sender = load [20 x i8], [20 x i8]* %"$_sender_5664", align 1 - %node = load [32 x i8], [32 x i8]* %"$node_5665", align 1 - %owner = load [20 x i8], [20 x i8]* %"$owner_5666", align 1 +define internal void @"$transfer_5762"(%Uint128 %_amount, [20 x i8]* %"$_origin_5763", [20 x i8]* %"$_sender_5764", [32 x i8]* %"$node_5765", [20 x i8]* %"$owner_5766") !dbg !1029 { +entry: + %"$owner_6145" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$owner_5766", [20 x i8]** %"$owner_6145", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$owner_6145", metadata !1030, metadata !DIExpression()), !dbg !1031 + %"$node_6144" = alloca [32 x i8]*, align 8 + store [32 x i8]* %"$node_5765", [32 x i8]** %"$node_6144", align 8 + call void @llvm.dbg.declare(metadata [32 x i8]** %"$node_6144", metadata !1032, metadata !DIExpression()), !dbg !1033 + %"$_sender_6143" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_sender_5764", [20 x i8]** %"$_sender_6143", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_sender_6143", metadata !1034, metadata !DIExpression()), !dbg !1035 + %"$_origin_6142" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_origin_5763", [20 x i8]** %"$_origin_6142", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_origin_6142", metadata !1036, metadata !DIExpression()), !dbg !1035 + %"$_amount_6141" = alloca %Uint128, align 8 + store %Uint128 %_amount, %Uint128* %"$_amount_6141", align 8 + call void @llvm.dbg.declare(metadata %Uint128* %"$_amount_6141", metadata !1037, metadata !DIExpression()), !dbg !1035 + %_origin = load [20 x i8], [20 x i8]* %"$_origin_5763", align 1 + %_sender = load [20 x i8], [20 x i8]* %"$_sender_5764", align 1 + %node = load [32 x i8], [32 x i8]* %"$node_5765", align 1 + %owner = load [20 x i8], [20 x i8]* %"$owner_5766", align 1 %maybeRecord = alloca %TName_Option_ud-registry.Record*, align 8 - %"$indices_buf_5667_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$indices_buf_5667_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_5667_salloc_load", i64 32) - %"$indices_buf_5667_salloc" = bitcast i8* %"$indices_buf_5667_salloc_salloc" to [32 x i8]* - %"$indices_buf_5667" = bitcast [32 x i8]* %"$indices_buf_5667_salloc" to i8* - %"$indices_gep_5668" = getelementptr i8, i8* %"$indices_buf_5667", i32 0 - %indices_cast = bitcast i8* %"$indices_gep_5668" to [32 x i8]* + call void @llvm.dbg.declare(metadata %TName_Option_ud-registry.Record** %maybeRecord, metadata !1038, metadata !DIExpression()), !dbg !1039 + %"$indices_buf_5767_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$indices_buf_5767_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_5767_salloc_load", i64 32) + %"$indices_buf_5767_salloc" = bitcast i8* %"$indices_buf_5767_salloc_salloc" to [32 x i8]* + %"$indices_buf_5767" = bitcast [32 x i8]* %"$indices_buf_5767_salloc" to i8* + %"$indices_gep_5768" = getelementptr i8, i8* %"$indices_buf_5767", i32 0 + %indices_cast = bitcast i8* %"$indices_gep_5768" to [32 x i8]* store [32 x i8] %node, [32 x i8]* %indices_cast, align 1 - %"$execptr_load_5670" = load i8*, i8** @_execptr, align 8 - %"$maybeRecord_call_5671" = call i8* @_fetch_field(i8* %"$execptr_load_5670", i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$records_5669", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_472", i32 1, i8* %"$indices_buf_5667", i32 1), !dbg !566 - %"$maybeRecord_5672" = bitcast i8* %"$maybeRecord_call_5671" to %TName_Option_ud-registry.Record* - store %TName_Option_ud-registry.Record* %"$maybeRecord_5672", %TName_Option_ud-registry.Record** %maybeRecord, align 8 - %"$maybeRecord_5673" = load %TName_Option_ud-registry.Record*, %TName_Option_ud-registry.Record** %maybeRecord, align 8 - %"$$maybeRecord_5673_5674" = bitcast %TName_Option_ud-registry.Record* %"$maybeRecord_5673" to i8* - %"$_literal_cost_call_5675" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_ud-registry.Record_463", i8* %"$$maybeRecord_5673_5674") - %"$gasadd_5676" = add i64 %"$_literal_cost_call_5675", 0 - %"$gasadd_5677" = add i64 %"$gasadd_5676", 1 - %"$gasrem_5678" = load i64, i64* @_gasrem, align 8 - %"$gascmp_5679" = icmp ugt i64 %"$gasadd_5677", %"$gasrem_5678" - br i1 %"$gascmp_5679", label %"$out_of_gas_5680", label %"$have_gas_5681" - -"$out_of_gas_5680": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_5681" - -"$have_gas_5681": ; preds = %"$out_of_gas_5680", %entry - %"$consume_5682" = sub i64 %"$gasrem_5678", %"$gasadd_5677" - store i64 %"$consume_5682", i64* @_gasrem, align 8 + %"$execptr_load_5770" = load i8*, i8** @_execptr, align 8 + %"$maybeRecord_call_5771" = call i8* @_fetch_field(i8* %"$execptr_load_5770", i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$records_5769", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_472", i32 1, i8* %"$indices_buf_5767", i32 1), !dbg !1039 + %"$maybeRecord_5772" = bitcast i8* %"$maybeRecord_call_5771" to %TName_Option_ud-registry.Record* + store %TName_Option_ud-registry.Record* %"$maybeRecord_5772", %TName_Option_ud-registry.Record** %maybeRecord, align 8 + %"$maybeRecord_5773" = load %TName_Option_ud-registry.Record*, %TName_Option_ud-registry.Record** %maybeRecord, align 8 + %"$$maybeRecord_5773_5774" = bitcast %TName_Option_ud-registry.Record* %"$maybeRecord_5773" to i8* + %"$_literal_cost_call_5775" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_ud-registry.Record_463", i8* %"$$maybeRecord_5773_5774") + %"$gasadd_5776" = add i64 %"$_literal_cost_call_5775", 0 + %"$gasadd_5777" = add i64 %"$gasadd_5776", 1 + %"$gasrem_5778" = load i64, i64* @_gasrem, align 8 + %"$gascmp_5779" = icmp ugt i64 %"$gasadd_5777", %"$gasrem_5778" + br i1 %"$gascmp_5779", label %"$out_of_gas_5780", label %"$have_gas_5781" + +"$out_of_gas_5780": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_5781" + +"$have_gas_5781": ; preds = %"$out_of_gas_5780", %entry + %"$consume_5782" = sub i64 %"$gasrem_5778", %"$gasadd_5777" + store i64 %"$consume_5782", i64* @_gasrem, align 8 %maybeApproved = alloca %TName_Option_ByStr20*, align 8 - %"$indices_buf_5683_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$indices_buf_5683_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_5683_salloc_load", i64 32) - %"$indices_buf_5683_salloc" = bitcast i8* %"$indices_buf_5683_salloc_salloc" to [32 x i8]* - %"$indices_buf_5683" = bitcast [32 x i8]* %"$indices_buf_5683_salloc" to i8* - %"$indices_gep_5684" = getelementptr i8, i8* %"$indices_buf_5683", i32 0 - %indices_cast1 = bitcast i8* %"$indices_gep_5684" to [32 x i8]* + call void @llvm.dbg.declare(metadata %TName_Option_ByStr20** %maybeApproved, metadata !1040, metadata !DIExpression()), !dbg !1041 + %"$indices_buf_5783_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$indices_buf_5783_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_5783_salloc_load", i64 32) + %"$indices_buf_5783_salloc" = bitcast i8* %"$indices_buf_5783_salloc_salloc" to [32 x i8]* + %"$indices_buf_5783" = bitcast [32 x i8]* %"$indices_buf_5783_salloc" to i8* + %"$indices_gep_5784" = getelementptr i8, i8* %"$indices_buf_5783", i32 0 + %indices_cast1 = bitcast i8* %"$indices_gep_5784" to [32 x i8]* store [32 x i8] %node, [32 x i8]* %indices_cast1, align 1 - %"$execptr_load_5686" = load i8*, i8** @_execptr, align 8 - %"$maybeApproved_call_5687" = call i8* @_fetch_field(i8* %"$execptr_load_5686", i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$approvals_5685", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_471", i32 1, i8* %"$indices_buf_5683", i32 1), !dbg !567 - %"$maybeApproved_5688" = bitcast i8* %"$maybeApproved_call_5687" to %TName_Option_ByStr20* - store %TName_Option_ByStr20* %"$maybeApproved_5688", %TName_Option_ByStr20** %maybeApproved, align 8 - %"$maybeApproved_5689" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %maybeApproved, align 8 - %"$$maybeApproved_5689_5690" = bitcast %TName_Option_ByStr20* %"$maybeApproved_5689" to i8* - %"$_literal_cost_call_5691" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_ByStr20_464", i8* %"$$maybeApproved_5689_5690") - %"$gasadd_5692" = add i64 %"$_literal_cost_call_5691", 0 - %"$gasadd_5693" = add i64 %"$gasadd_5692", 1 - %"$gasrem_5694" = load i64, i64* @_gasrem, align 8 - %"$gascmp_5695" = icmp ugt i64 %"$gasadd_5693", %"$gasrem_5694" - br i1 %"$gascmp_5695", label %"$out_of_gas_5696", label %"$have_gas_5697" - -"$out_of_gas_5696": ; preds = %"$have_gas_5681" - call void @_out_of_gas() - br label %"$have_gas_5697" - -"$have_gas_5697": ; preds = %"$out_of_gas_5696", %"$have_gas_5681" - %"$consume_5698" = sub i64 %"$gasrem_5694", %"$gasadd_5693" - store i64 %"$consume_5698", i64* @_gasrem, align 8 - %"$gasrem_5699" = load i64, i64* @_gasrem, align 8 - %"$gascmp_5700" = icmp ugt i64 1, %"$gasrem_5699" - br i1 %"$gascmp_5700", label %"$out_of_gas_5701", label %"$have_gas_5702" - -"$out_of_gas_5701": ; preds = %"$have_gas_5697" - call void @_out_of_gas() - br label %"$have_gas_5702" - -"$have_gas_5702": ; preds = %"$out_of_gas_5701", %"$have_gas_5697" - %"$consume_5703" = sub i64 %"$gasrem_5699", 1 - store i64 %"$consume_5703", i64* @_gasrem, align 8 + %"$execptr_load_5786" = load i8*, i8** @_execptr, align 8 + %"$maybeApproved_call_5787" = call i8* @_fetch_field(i8* %"$execptr_load_5786", i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$approvals_5785", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_471", i32 1, i8* %"$indices_buf_5783", i32 1), !dbg !1041 + %"$maybeApproved_5788" = bitcast i8* %"$maybeApproved_call_5787" to %TName_Option_ByStr20* + store %TName_Option_ByStr20* %"$maybeApproved_5788", %TName_Option_ByStr20** %maybeApproved, align 8 + %"$maybeApproved_5789" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %maybeApproved, align 8 + %"$$maybeApproved_5789_5790" = bitcast %TName_Option_ByStr20* %"$maybeApproved_5789" to i8* + %"$_literal_cost_call_5791" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_ByStr20_464", i8* %"$$maybeApproved_5789_5790") + %"$gasadd_5792" = add i64 %"$_literal_cost_call_5791", 0 + %"$gasadd_5793" = add i64 %"$gasadd_5792", 1 + %"$gasrem_5794" = load i64, i64* @_gasrem, align 8 + %"$gascmp_5795" = icmp ugt i64 %"$gasadd_5793", %"$gasrem_5794" + br i1 %"$gascmp_5795", label %"$out_of_gas_5796", label %"$have_gas_5797" + +"$out_of_gas_5796": ; preds = %"$have_gas_5781" + call void @_out_of_gas() + br label %"$have_gas_5797" + +"$have_gas_5797": ; preds = %"$out_of_gas_5796", %"$have_gas_5781" + %"$consume_5798" = sub i64 %"$gasrem_5794", %"$gasadd_5793" + store i64 %"$consume_5798", i64* @_gasrem, align 8 + %"$gasrem_5799" = load i64, i64* @_gasrem, align 8 + %"$gascmp_5800" = icmp ugt i64 1, %"$gasrem_5799" + br i1 %"$gascmp_5800", label %"$out_of_gas_5801", label %"$have_gas_5802" + +"$out_of_gas_5801": ; preds = %"$have_gas_5797" + call void @_out_of_gas() + br label %"$have_gas_5802" + +"$have_gas_5802": ; preds = %"$out_of_gas_5801", %"$have_gas_5797" + %"$consume_5803" = sub i64 %"$gasrem_5799", 1 + store i64 %"$consume_5803", i64* @_gasrem, align 8 %recordOwner = alloca [20 x i8], align 1 - %"$gasrem_5704" = load i64, i64* @_gasrem, align 8 - %"$gascmp_5705" = icmp ugt i64 1, %"$gasrem_5704" - br i1 %"$gascmp_5705", label %"$out_of_gas_5706", label %"$have_gas_5707" + call void @llvm.dbg.declare(metadata [20 x i8]* %recordOwner, metadata !1042, metadata !DIExpression()), !dbg !1043 + %"$gasrem_5804" = load i64, i64* @_gasrem, align 8 + %"$gascmp_5805" = icmp ugt i64 1, %"$gasrem_5804" + br i1 %"$gascmp_5805", label %"$out_of_gas_5806", label %"$have_gas_5807" -"$out_of_gas_5706": ; preds = %"$have_gas_5702" +"$out_of_gas_5806": ; preds = %"$have_gas_5802" call void @_out_of_gas() - br label %"$have_gas_5707" + br label %"$have_gas_5807" -"$have_gas_5707": ; preds = %"$out_of_gas_5706", %"$have_gas_5702" - %"$consume_5708" = sub i64 %"$gasrem_5704", 1 - store i64 %"$consume_5708", i64* @_gasrem, align 8 +"$have_gas_5807": ; preds = %"$out_of_gas_5806", %"$have_gas_5802" + %"$consume_5808" = sub i64 %"$gasrem_5804", 1 + store i64 %"$consume_5808", i64* @_gasrem, align 8 %"$ud-registry.recordMemberOwner_152" = alloca [20 x i8], align 1 - %"$ud-registry.recordMemberOwner_5709" = 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_5710" = extractvalue { void (i8*, [20 x i8]*, %TName_Option_ud-registry.Record*)*, i8* } %"$ud-registry.recordMemberOwner_5709", 0 - %"$ud-registry.recordMemberOwner_envptr_5711" = extractvalue { void (i8*, [20 x i8]*, %TName_Option_ud-registry.Record*)*, i8* } %"$ud-registry.recordMemberOwner_5709", 1 - %"$maybeRecord_5712" = load %TName_Option_ud-registry.Record*, %TName_Option_ud-registry.Record** %maybeRecord, align 8 - %"$ud-registry.recordMemberOwner_retalloca_5713" = alloca [20 x i8], align 1 - call void %"$ud-registry.recordMemberOwner_fptr_5710"(i8* %"$ud-registry.recordMemberOwner_envptr_5711", [20 x i8]* %"$ud-registry.recordMemberOwner_retalloca_5713", %TName_Option_ud-registry.Record* %"$maybeRecord_5712"), !dbg !568 - %"$ud-registry.recordMemberOwner_ret_5714" = load [20 x i8], [20 x i8]* %"$ud-registry.recordMemberOwner_retalloca_5713", align 1 - store [20 x i8] %"$ud-registry.recordMemberOwner_ret_5714", [20 x i8]* %"$ud-registry.recordMemberOwner_152", align 1, !dbg !568 - %"$$ud-registry.recordMemberOwner_152_5715" = load [20 x i8], [20 x i8]* %"$ud-registry.recordMemberOwner_152", align 1 - store [20 x i8] %"$$ud-registry.recordMemberOwner_152_5715", [20 x i8]* %recordOwner, align 1, !dbg !568 + call void @llvm.dbg.declare(metadata [20 x i8]* %"$ud-registry.recordMemberOwner_152", metadata !1044, metadata !DIExpression()), !dbg !1045 + %"$ud-registry.recordMemberOwner_5809" = 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_5810" = extractvalue { void (i8*, [20 x i8]*, %TName_Option_ud-registry.Record*)*, i8* } %"$ud-registry.recordMemberOwner_5809", 0 + %"$ud-registry.recordMemberOwner_envptr_5811" = extractvalue { void (i8*, [20 x i8]*, %TName_Option_ud-registry.Record*)*, i8* } %"$ud-registry.recordMemberOwner_5809", 1 + %"$maybeRecord_5812" = load %TName_Option_ud-registry.Record*, %TName_Option_ud-registry.Record** %maybeRecord, align 8 + %"$ud-registry.recordMemberOwner_retalloca_5813" = alloca [20 x i8], align 1 + call void %"$ud-registry.recordMemberOwner_fptr_5810"(i8* %"$ud-registry.recordMemberOwner_envptr_5811", [20 x i8]* %"$ud-registry.recordMemberOwner_retalloca_5813", %TName_Option_ud-registry.Record* %"$maybeRecord_5812"), !dbg !1045 + %"$ud-registry.recordMemberOwner_ret_5814" = load [20 x i8], [20 x i8]* %"$ud-registry.recordMemberOwner_retalloca_5813", align 1 + store [20 x i8] %"$ud-registry.recordMemberOwner_ret_5814", [20 x i8]* %"$ud-registry.recordMemberOwner_152", align 1, !dbg !1045 + %"$$ud-registry.recordMemberOwner_152_5815" = load [20 x i8], [20 x i8]* %"$ud-registry.recordMemberOwner_152", align 1 + store [20 x i8] %"$$ud-registry.recordMemberOwner_152_5815", [20 x i8]* %recordOwner, align 1, !dbg !1045 %maybeOperators = alloca %"TName_Option_List_(ByStr20)"*, align 8 - %"$indices_buf_5716_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$indices_buf_5716_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_5716_salloc_load", i64 20) - %"$indices_buf_5716_salloc" = bitcast i8* %"$indices_buf_5716_salloc_salloc" to [20 x i8]* - %"$indices_buf_5716" = bitcast [20 x i8]* %"$indices_buf_5716_salloc" to i8* - %"$recordOwner_5717" = load [20 x i8], [20 x i8]* %recordOwner, align 1 - %"$indices_gep_5718" = getelementptr i8, i8* %"$indices_buf_5716", i32 0 - %indices_cast2 = bitcast i8* %"$indices_gep_5718" to [20 x i8]* - store [20 x i8] %"$recordOwner_5717", [20 x i8]* %indices_cast2, align 1 - %"$execptr_load_5720" = load i8*, i8** @_execptr, align 8 - %"$maybeOperators_call_5721" = call i8* @_fetch_field(i8* %"$execptr_load_5720", i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$operators_5719", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_470", i32 1, i8* %"$indices_buf_5716", i32 1), !dbg !569 - %"$maybeOperators_5722" = bitcast i8* %"$maybeOperators_call_5721" to %"TName_Option_List_(ByStr20)"* - store %"TName_Option_List_(ByStr20)"* %"$maybeOperators_5722", %"TName_Option_List_(ByStr20)"** %maybeOperators, align 8 - %"$maybeOperators_5723" = load %"TName_Option_List_(ByStr20)"*, %"TName_Option_List_(ByStr20)"** %maybeOperators, align 8 - %"$$maybeOperators_5723_5724" = bitcast %"TName_Option_List_(ByStr20)"* %"$maybeOperators_5723" to i8* - %"$_literal_cost_call_5725" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_List_(ByStr20)_462", i8* %"$$maybeOperators_5723_5724") - %"$gasadd_5726" = add i64 %"$_literal_cost_call_5725", 0 - %"$gasadd_5727" = add i64 %"$gasadd_5726", 1 - %"$gasrem_5728" = load i64, i64* @_gasrem, align 8 - %"$gascmp_5729" = icmp ugt i64 %"$gasadd_5727", %"$gasrem_5728" - br i1 %"$gascmp_5729", label %"$out_of_gas_5730", label %"$have_gas_5731" - -"$out_of_gas_5730": ; preds = %"$have_gas_5707" - call void @_out_of_gas() - br label %"$have_gas_5731" - -"$have_gas_5731": ; preds = %"$out_of_gas_5730", %"$have_gas_5707" - %"$consume_5732" = sub i64 %"$gasrem_5728", %"$gasadd_5727" - store i64 %"$consume_5732", i64* @_gasrem, align 8 - %"$gasrem_5733" = load i64, i64* @_gasrem, align 8 - %"$gascmp_5734" = icmp ugt i64 1, %"$gasrem_5733" - br i1 %"$gascmp_5734", label %"$out_of_gas_5735", label %"$have_gas_5736" - -"$out_of_gas_5735": ; preds = %"$have_gas_5731" - call void @_out_of_gas() - br label %"$have_gas_5736" - -"$have_gas_5736": ; preds = %"$out_of_gas_5735", %"$have_gas_5731" - %"$consume_5737" = sub i64 %"$gasrem_5733", 1 - store i64 %"$consume_5737", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %"TName_Option_List_(ByStr20)"** %maybeOperators, metadata !1046, metadata !DIExpression()), !dbg !1047 + %"$indices_buf_5816_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$indices_buf_5816_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_5816_salloc_load", i64 20) + %"$indices_buf_5816_salloc" = bitcast i8* %"$indices_buf_5816_salloc_salloc" to [20 x i8]* + %"$indices_buf_5816" = bitcast [20 x i8]* %"$indices_buf_5816_salloc" to i8* + %"$recordOwner_5817" = load [20 x i8], [20 x i8]* %recordOwner, align 1 + %"$indices_gep_5818" = getelementptr i8, i8* %"$indices_buf_5816", i32 0 + %indices_cast2 = bitcast i8* %"$indices_gep_5818" to [20 x i8]* + store [20 x i8] %"$recordOwner_5817", [20 x i8]* %indices_cast2, align 1 + %"$execptr_load_5820" = load i8*, i8** @_execptr, align 8 + %"$maybeOperators_call_5821" = call i8* @_fetch_field(i8* %"$execptr_load_5820", i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$operators_5819", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_470", i32 1, i8* %"$indices_buf_5816", i32 1), !dbg !1047 + %"$maybeOperators_5822" = bitcast i8* %"$maybeOperators_call_5821" to %"TName_Option_List_(ByStr20)"* + store %"TName_Option_List_(ByStr20)"* %"$maybeOperators_5822", %"TName_Option_List_(ByStr20)"** %maybeOperators, align 8 + %"$maybeOperators_5823" = load %"TName_Option_List_(ByStr20)"*, %"TName_Option_List_(ByStr20)"** %maybeOperators, align 8 + %"$$maybeOperators_5823_5824" = bitcast %"TName_Option_List_(ByStr20)"* %"$maybeOperators_5823" to i8* + %"$_literal_cost_call_5825" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_List_(ByStr20)_462", i8* %"$$maybeOperators_5823_5824") + %"$gasadd_5826" = add i64 %"$_literal_cost_call_5825", 0 + %"$gasadd_5827" = add i64 %"$gasadd_5826", 1 + %"$gasrem_5828" = load i64, i64* @_gasrem, align 8 + %"$gascmp_5829" = icmp ugt i64 %"$gasadd_5827", %"$gasrem_5828" + br i1 %"$gascmp_5829", label %"$out_of_gas_5830", label %"$have_gas_5831" + +"$out_of_gas_5830": ; preds = %"$have_gas_5807" + call void @_out_of_gas() + br label %"$have_gas_5831" + +"$have_gas_5831": ; preds = %"$out_of_gas_5830", %"$have_gas_5807" + %"$consume_5832" = sub i64 %"$gasrem_5828", %"$gasadd_5827" + store i64 %"$consume_5832", i64* @_gasrem, align 8 + %"$gasrem_5833" = load i64, i64* @_gasrem, align 8 + %"$gascmp_5834" = icmp ugt i64 1, %"$gasrem_5833" + br i1 %"$gascmp_5834", label %"$out_of_gas_5835", label %"$have_gas_5836" + +"$out_of_gas_5835": ; preds = %"$have_gas_5831" + call void @_out_of_gas() + br label %"$have_gas_5836" + +"$have_gas_5836": ; preds = %"$out_of_gas_5835", %"$have_gas_5831" + %"$consume_5837" = sub i64 %"$gasrem_5833", 1 + store i64 %"$consume_5837", i64* @_gasrem, align 8 %isSenderOAO = alloca %TName_Bool*, align 8 - %"$gasrem_5738" = load i64, i64* @_gasrem, align 8 - %"$gascmp_5739" = icmp ugt i64 1, %"$gasrem_5738" - br i1 %"$gascmp_5739", label %"$out_of_gas_5740", label %"$have_gas_5741" + call void @llvm.dbg.declare(metadata %TName_Bool** %isSenderOAO, metadata !1048, metadata !DIExpression()), !dbg !1049 + %"$gasrem_5838" = load i64, i64* @_gasrem, align 8 + %"$gascmp_5839" = icmp ugt i64 1, %"$gasrem_5838" + br i1 %"$gascmp_5839", label %"$out_of_gas_5840", label %"$have_gas_5841" -"$out_of_gas_5740": ; preds = %"$have_gas_5736" +"$out_of_gas_5840": ; preds = %"$have_gas_5836" call void @_out_of_gas() - br label %"$have_gas_5741" + br label %"$have_gas_5841" -"$have_gas_5741": ; preds = %"$out_of_gas_5740", %"$have_gas_5736" - %"$consume_5742" = sub i64 %"$gasrem_5738", 1 - store i64 %"$consume_5742", i64* @_gasrem, align 8 +"$have_gas_5841": ; preds = %"$out_of_gas_5840", %"$have_gas_5836" + %"$consume_5842" = sub i64 %"$gasrem_5838", 1 + store i64 %"$consume_5842", i64* @_gasrem, align 8 %"$ud-registry.getIsOAO_148" = alloca { { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* }, align 8 - %"$ud-registry.getIsOAO_5743" = 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_5744" = 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_5743", 0 - %"$ud-registry.getIsOAO_envptr_5745" = 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_5743", 1 - %"$ud-registry.getIsOAO__sender_5746" = alloca [20 x i8], align 1 - store [20 x i8] %_sender, [20 x i8]* %"$ud-registry.getIsOAO__sender_5746", align 1 - %"$ud-registry.getIsOAO_call_5747" = call { { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$ud-registry.getIsOAO_fptr_5744"(i8* %"$ud-registry.getIsOAO_envptr_5745", [20 x i8]* %"$ud-registry.getIsOAO__sender_5746"), !dbg !570 - store { { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$ud-registry.getIsOAO_call_5747", { { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* }* %"$ud-registry.getIsOAO_148", align 8, !dbg !570 + %"$ud-registry.getIsOAO_5843" = 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_5844" = 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_5843", 0 + %"$ud-registry.getIsOAO_envptr_5845" = 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_5843", 1 + %"$ud-registry.getIsOAO__sender_5846" = alloca [20 x i8], align 1 + store [20 x i8] %_sender, [20 x i8]* %"$ud-registry.getIsOAO__sender_5846", align 1 + %"$ud-registry.getIsOAO_call_5847" = call { { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$ud-registry.getIsOAO_fptr_5844"(i8* %"$ud-registry.getIsOAO_envptr_5845", [20 x i8]* %"$ud-registry.getIsOAO__sender_5846"), !dbg !1050 + store { { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$ud-registry.getIsOAO_call_5847", { { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* }* %"$ud-registry.getIsOAO_148", align 8, !dbg !1050 %"$ud-registry.getIsOAO_149" = alloca { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }, align 8 - %"$$ud-registry.getIsOAO_148_5748" = 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_148", align 8 - %"$$ud-registry.getIsOAO_148_fptr_5749" = extractvalue { { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.getIsOAO_148_5748", 0 - %"$$ud-registry.getIsOAO_148_envptr_5750" = extractvalue { { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.getIsOAO_148_5748", 1 - %"$$ud-registry.getIsOAO_148_recordOwner_5751" = alloca [20 x i8], align 1 - %"$recordOwner_5752" = load [20 x i8], [20 x i8]* %recordOwner, align 1 - store [20 x i8] %"$recordOwner_5752", [20 x i8]* %"$$ud-registry.getIsOAO_148_recordOwner_5751", align 1 - %"$$ud-registry.getIsOAO_148_call_5753" = call { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } %"$$ud-registry.getIsOAO_148_fptr_5749"(i8* %"$$ud-registry.getIsOAO_148_envptr_5750", [20 x i8]* %"$$ud-registry.getIsOAO_148_recordOwner_5751"), !dbg !570 - store { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } %"$$ud-registry.getIsOAO_148_call_5753", { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }* %"$ud-registry.getIsOAO_149", align 8, !dbg !570 + %"$$ud-registry.getIsOAO_148_5848" = 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_148", align 8 + %"$$ud-registry.getIsOAO_148_fptr_5849" = extractvalue { { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.getIsOAO_148_5848", 0 + %"$$ud-registry.getIsOAO_148_envptr_5850" = extractvalue { { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.getIsOAO_148_5848", 1 + %"$$ud-registry.getIsOAO_148_recordOwner_5851" = alloca [20 x i8], align 1 + %"$recordOwner_5852" = load [20 x i8], [20 x i8]* %recordOwner, align 1 + store [20 x i8] %"$recordOwner_5852", [20 x i8]* %"$$ud-registry.getIsOAO_148_recordOwner_5851", align 1 + %"$$ud-registry.getIsOAO_148_call_5853" = call { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } %"$$ud-registry.getIsOAO_148_fptr_5849"(i8* %"$$ud-registry.getIsOAO_148_envptr_5850", [20 x i8]* %"$$ud-registry.getIsOAO_148_recordOwner_5851"), !dbg !1050 + store { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } %"$$ud-registry.getIsOAO_148_call_5853", { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }* %"$ud-registry.getIsOAO_149", align 8, !dbg !1050 %"$ud-registry.getIsOAO_150" = alloca { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* }, align 8 - %"$$ud-registry.getIsOAO_149_5754" = 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_149", align 8 - %"$$ud-registry.getIsOAO_149_fptr_5755" = extractvalue { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } %"$$ud-registry.getIsOAO_149_5754", 0 - %"$$ud-registry.getIsOAO_149_envptr_5756" = extractvalue { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } %"$$ud-registry.getIsOAO_149_5754", 1 - %"$maybeApproved_5757" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %maybeApproved, align 8 - %"$$ud-registry.getIsOAO_149_call_5758" = call { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } %"$$ud-registry.getIsOAO_149_fptr_5755"(i8* %"$$ud-registry.getIsOAO_149_envptr_5756", %TName_Option_ByStr20* %"$maybeApproved_5757"), !dbg !570 - store { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } %"$$ud-registry.getIsOAO_149_call_5758", { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* }* %"$ud-registry.getIsOAO_150", align 8, !dbg !570 + %"$$ud-registry.getIsOAO_149_5854" = 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_149", align 8 + %"$$ud-registry.getIsOAO_149_fptr_5855" = extractvalue { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } %"$$ud-registry.getIsOAO_149_5854", 0 + %"$$ud-registry.getIsOAO_149_envptr_5856" = extractvalue { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } %"$$ud-registry.getIsOAO_149_5854", 1 + %"$maybeApproved_5857" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %maybeApproved, align 8 + %"$$ud-registry.getIsOAO_149_call_5858" = call { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } %"$$ud-registry.getIsOAO_149_fptr_5855"(i8* %"$$ud-registry.getIsOAO_149_envptr_5856", %TName_Option_ByStr20* %"$maybeApproved_5857"), !dbg !1050 + store { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } %"$$ud-registry.getIsOAO_149_call_5858", { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* }* %"$ud-registry.getIsOAO_150", align 8, !dbg !1050 %"$ud-registry.getIsOAO_151" = alloca %TName_Bool*, align 8 - %"$$ud-registry.getIsOAO_150_5759" = load { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* }, { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* }* %"$ud-registry.getIsOAO_150", align 8 - %"$$ud-registry.getIsOAO_150_fptr_5760" = extractvalue { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } %"$$ud-registry.getIsOAO_150_5759", 0 - %"$$ud-registry.getIsOAO_150_envptr_5761" = extractvalue { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } %"$$ud-registry.getIsOAO_150_5759", 1 - %"$maybeOperators_5762" = load %"TName_Option_List_(ByStr20)"*, %"TName_Option_List_(ByStr20)"** %maybeOperators, align 8 - %"$$ud-registry.getIsOAO_150_call_5763" = call %TName_Bool* %"$$ud-registry.getIsOAO_150_fptr_5760"(i8* %"$$ud-registry.getIsOAO_150_envptr_5761", %"TName_Option_List_(ByStr20)"* %"$maybeOperators_5762"), !dbg !570 - store %TName_Bool* %"$$ud-registry.getIsOAO_150_call_5763", %TName_Bool** %"$ud-registry.getIsOAO_151", align 8, !dbg !570 - %"$$ud-registry.getIsOAO_151_5764" = load %TName_Bool*, %TName_Bool** %"$ud-registry.getIsOAO_151", align 8 - store %TName_Bool* %"$$ud-registry.getIsOAO_151_5764", %TName_Bool** %isSenderOAO, align 8, !dbg !570 - %"$gasrem_5765" = load i64, i64* @_gasrem, align 8 - %"$gascmp_5766" = icmp ugt i64 2, %"$gasrem_5765" - br i1 %"$gascmp_5766", label %"$out_of_gas_5767", label %"$have_gas_5768" - -"$out_of_gas_5767": ; preds = %"$have_gas_5741" - call void @_out_of_gas() - br label %"$have_gas_5768" - -"$have_gas_5768": ; preds = %"$out_of_gas_5767", %"$have_gas_5741" - %"$consume_5769" = sub i64 %"$gasrem_5765", 2 - store i64 %"$consume_5769", i64* @_gasrem, align 8 - %"$isSenderOAO_5771" = load %TName_Bool*, %TName_Bool** %isSenderOAO, align 8 - %"$isSenderOAO_tag_5772" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$isSenderOAO_5771", i32 0, i32 0 - %"$isSenderOAO_tag_5773" = load i8, i8* %"$isSenderOAO_tag_5772", align 1 - switch i8 %"$isSenderOAO_tag_5773", label %"$empty_default_5774" [ - i8 0, label %"$True_5775" - i8 1, label %"$False_5928" - ], !dbg !571 - -"$True_5775": ; preds = %"$have_gas_5768" - %"$isSenderOAO_5776" = bitcast %TName_Bool* %"$isSenderOAO_5771" to %CName_True* - %"$gasrem_5777" = load i64, i64* @_gasrem, align 8 - %"$gascmp_5778" = icmp ugt i64 1, %"$gasrem_5777" - br i1 %"$gascmp_5778", label %"$out_of_gas_5779", label %"$have_gas_5780" - -"$out_of_gas_5779": ; preds = %"$True_5775" - call void @_out_of_gas() - br label %"$have_gas_5780" - -"$have_gas_5780": ; preds = %"$out_of_gas_5779", %"$True_5775" - %"$consume_5781" = sub i64 %"$gasrem_5777", 1 - store i64 %"$consume_5781", i64* @_gasrem, align 8 - %"$indices_buf_5782_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$indices_buf_5782_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_5782_salloc_load", i64 32) - %"$indices_buf_5782_salloc" = bitcast i8* %"$indices_buf_5782_salloc_salloc" to [32 x i8]* - %"$indices_buf_5782" = bitcast [32 x i8]* %"$indices_buf_5782_salloc" to i8* - %"$indices_gep_5783" = getelementptr i8, i8* %"$indices_buf_5782", i32 0 - %indices_cast3 = bitcast i8* %"$indices_gep_5783" to [32 x i8]* + call void @llvm.dbg.declare(metadata %TName_Bool** %"$ud-registry.getIsOAO_151", metadata !1051, metadata !DIExpression()), !dbg !1050 + %"$$ud-registry.getIsOAO_150_5859" = load { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* }, { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* }* %"$ud-registry.getIsOAO_150", align 8 + %"$$ud-registry.getIsOAO_150_fptr_5860" = extractvalue { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } %"$$ud-registry.getIsOAO_150_5859", 0 + %"$$ud-registry.getIsOAO_150_envptr_5861" = extractvalue { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } %"$$ud-registry.getIsOAO_150_5859", 1 + %"$maybeOperators_5862" = load %"TName_Option_List_(ByStr20)"*, %"TName_Option_List_(ByStr20)"** %maybeOperators, align 8 + %"$$ud-registry.getIsOAO_150_call_5863" = call %TName_Bool* %"$$ud-registry.getIsOAO_150_fptr_5860"(i8* %"$$ud-registry.getIsOAO_150_envptr_5861", %"TName_Option_List_(ByStr20)"* %"$maybeOperators_5862"), !dbg !1050 + store %TName_Bool* %"$$ud-registry.getIsOAO_150_call_5863", %TName_Bool** %"$ud-registry.getIsOAO_151", align 8, !dbg !1050 + %"$$ud-registry.getIsOAO_151_5864" = load %TName_Bool*, %TName_Bool** %"$ud-registry.getIsOAO_151", align 8 + store %TName_Bool* %"$$ud-registry.getIsOAO_151_5864", %TName_Bool** %isSenderOAO, align 8, !dbg !1050 + %"$gasrem_5865" = load i64, i64* @_gasrem, align 8 + %"$gascmp_5866" = icmp ugt i64 2, %"$gasrem_5865" + br i1 %"$gascmp_5866", label %"$out_of_gas_5867", label %"$have_gas_5868" + +"$out_of_gas_5867": ; preds = %"$have_gas_5841" + call void @_out_of_gas() + br label %"$have_gas_5868" + +"$have_gas_5868": ; preds = %"$out_of_gas_5867", %"$have_gas_5841" + %"$consume_5869" = sub i64 %"$gasrem_5865", 2 + store i64 %"$consume_5869", i64* @_gasrem, align 8 + %"$isSenderOAO_5871" = load %TName_Bool*, %TName_Bool** %isSenderOAO, align 8 + %"$isSenderOAO_tag_5872" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$isSenderOAO_5871", i32 0, i32 0 + %"$isSenderOAO_tag_5873" = load i8, i8* %"$isSenderOAO_tag_5872", align 1 + switch i8 %"$isSenderOAO_tag_5873", label %"$empty_default_5874" [ + i8 0, label %"$True_5875" + i8 1, label %"$False_6028" + ], !dbg !1052 + +"$True_5875": ; preds = %"$have_gas_5868" + %"$isSenderOAO_5876" = bitcast %TName_Bool* %"$isSenderOAO_5871" to %CName_True* + %"$gasrem_5877" = load i64, i64* @_gasrem, align 8 + %"$gascmp_5878" = icmp ugt i64 1, %"$gasrem_5877" + br i1 %"$gascmp_5878", label %"$out_of_gas_5879", label %"$have_gas_5880" + +"$out_of_gas_5879": ; preds = %"$True_5875" + call void @_out_of_gas() + br label %"$have_gas_5880" + +"$have_gas_5880": ; preds = %"$out_of_gas_5879", %"$True_5875" + %"$consume_5881" = sub i64 %"$gasrem_5877", 1 + store i64 %"$consume_5881", i64* @_gasrem, align 8 + %"$indices_buf_5882_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$indices_buf_5882_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_5882_salloc_load", i64 32) + %"$indices_buf_5882_salloc" = bitcast i8* %"$indices_buf_5882_salloc_salloc" to [32 x i8]* + %"$indices_buf_5882" = bitcast [32 x i8]* %"$indices_buf_5882_salloc" to i8* + %"$indices_gep_5883" = getelementptr i8, i8* %"$indices_buf_5882", i32 0 + %indices_cast3 = bitcast i8* %"$indices_gep_5883" to [32 x i8]* store [32 x i8] %node, [32 x i8]* %indices_cast3, align 1 - %"$execptr_load_5784" = load i8*, i8** @_execptr, align 8 - call void @_update_field(i8* %"$execptr_load_5784", i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$approvals_5785", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_471", i32 1, i8* %"$indices_buf_5782", i8* null), !dbg !572 - %"$gasrem_5786" = load i64, i64* @_gasrem, align 8 - %"$gascmp_5787" = icmp ugt i64 1, %"$gasrem_5786" - br i1 %"$gascmp_5787", label %"$out_of_gas_5788", label %"$have_gas_5789" + %"$execptr_load_5884" = load i8*, i8** @_execptr, align 8 + call void @_update_field(i8* %"$execptr_load_5884", i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$approvals_5885", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_471", i32 1, i8* %"$indices_buf_5882", i8* null), !dbg !1053 + %"$gasrem_5886" = load i64, i64* @_gasrem, align 8 + %"$gascmp_5887" = icmp ugt i64 1, %"$gasrem_5886" + br i1 %"$gascmp_5887", label %"$out_of_gas_5888", label %"$have_gas_5889" -"$out_of_gas_5788": ; preds = %"$have_gas_5780" +"$out_of_gas_5888": ; preds = %"$have_gas_5880" call void @_out_of_gas() - br label %"$have_gas_5789" + br label %"$have_gas_5889" -"$have_gas_5789": ; preds = %"$out_of_gas_5788", %"$have_gas_5780" - %"$consume_5790" = sub i64 %"$gasrem_5786", 1 - store i64 %"$consume_5790", i64* @_gasrem, align 8 +"$have_gas_5889": ; preds = %"$out_of_gas_5888", %"$have_gas_5880" + %"$consume_5890" = sub i64 %"$gasrem_5886", 1 + store i64 %"$consume_5890", i64* @_gasrem, align 8 %newRecord = alloca %TName_ud-registry.Record*, align 8 - %"$gasrem_5791" = load i64, i64* @_gasrem, align 8 - %"$gascmp_5792" = icmp ugt i64 1, %"$gasrem_5791" - br i1 %"$gascmp_5792", label %"$out_of_gas_5793", label %"$have_gas_5794" - -"$out_of_gas_5793": ; preds = %"$have_gas_5789" - call void @_out_of_gas() - br label %"$have_gas_5794" - -"$have_gas_5794": ; preds = %"$out_of_gas_5793", %"$have_gas_5789" - %"$consume_5795" = sub i64 %"$gasrem_5791", 1 - store i64 %"$consume_5795", i64* @_gasrem, align 8 - %"$ud-registry.zeroByStr20_5796" = load [20 x i8], [20 x i8]* @ud-registry.zeroByStr20, align 1 - %"$adtval_5797_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_5797_salloc" = call i8* @_salloc(i8* %"$adtval_5797_load", i64 41) - %"$adtval_5797" = bitcast i8* %"$adtval_5797_salloc" to %CName_ud-registry.Record* - %"$adtgep_5798" = getelementptr inbounds %CName_ud-registry.Record, %CName_ud-registry.Record* %"$adtval_5797", i32 0, i32 0 - store i8 0, i8* %"$adtgep_5798", align 1 - %"$adtgep_5799" = getelementptr inbounds %CName_ud-registry.Record, %CName_ud-registry.Record* %"$adtval_5797", i32 0, i32 1 - store [20 x i8] %owner, [20 x i8]* %"$adtgep_5799", align 1 - %"$adtgep_5800" = getelementptr inbounds %CName_ud-registry.Record, %CName_ud-registry.Record* %"$adtval_5797", i32 0, i32 2 - store [20 x i8] %"$ud-registry.zeroByStr20_5796", [20 x i8]* %"$adtgep_5800", align 1 - %"$adtptr_5801" = bitcast %CName_ud-registry.Record* %"$adtval_5797" to %TName_ud-registry.Record* - store %TName_ud-registry.Record* %"$adtptr_5801", %TName_ud-registry.Record** %newRecord, align 8, !dbg !575 - %"$newRecord_5802" = load %TName_ud-registry.Record*, %TName_ud-registry.Record** %newRecord, align 8 - %"$$newRecord_5802_5803" = bitcast %TName_ud-registry.Record* %"$newRecord_5802" to i8* - %"$_literal_cost_call_5804" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_ud-registry.Record_465", i8* %"$$newRecord_5802_5803") - %"$gasadd_5805" = add i64 %"$_literal_cost_call_5804", 1 - %"$gasrem_5806" = load i64, i64* @_gasrem, align 8 - %"$gascmp_5807" = icmp ugt i64 %"$gasadd_5805", %"$gasrem_5806" - br i1 %"$gascmp_5807", label %"$out_of_gas_5808", label %"$have_gas_5809" - -"$out_of_gas_5808": ; preds = %"$have_gas_5794" - call void @_out_of_gas() - br label %"$have_gas_5809" - -"$have_gas_5809": ; preds = %"$out_of_gas_5808", %"$have_gas_5794" - %"$consume_5810" = sub i64 %"$gasrem_5806", %"$gasadd_5805" - store i64 %"$consume_5810", i64* @_gasrem, align 8 - %"$indices_buf_5811_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$indices_buf_5811_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_5811_salloc_load", i64 32) - %"$indices_buf_5811_salloc" = bitcast i8* %"$indices_buf_5811_salloc_salloc" to [32 x i8]* - %"$indices_buf_5811" = bitcast [32 x i8]* %"$indices_buf_5811_salloc" to i8* - %"$indices_gep_5812" = getelementptr i8, i8* %"$indices_buf_5811", i32 0 - %indices_cast4 = bitcast i8* %"$indices_gep_5812" to [32 x i8]* + call void @llvm.dbg.declare(metadata %TName_ud-registry.Record** %newRecord, metadata !1056, metadata !DIExpression()), !dbg !1057 + %"$gasrem_5891" = load i64, i64* @_gasrem, align 8 + %"$gascmp_5892" = icmp ugt i64 1, %"$gasrem_5891" + br i1 %"$gascmp_5892", label %"$out_of_gas_5893", label %"$have_gas_5894" + +"$out_of_gas_5893": ; preds = %"$have_gas_5889" + call void @_out_of_gas() + br label %"$have_gas_5894" + +"$have_gas_5894": ; preds = %"$out_of_gas_5893", %"$have_gas_5889" + %"$consume_5895" = sub i64 %"$gasrem_5891", 1 + store i64 %"$consume_5895", i64* @_gasrem, align 8 + %"$ud-registry.zeroByStr20_5896" = load [20 x i8], [20 x i8]* @ud-registry.zeroByStr20, align 1 + %"$adtval_5897_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_5897_salloc" = call i8* @_salloc(i8* %"$adtval_5897_load", i64 41) + %"$adtval_5897" = bitcast i8* %"$adtval_5897_salloc" to %CName_ud-registry.Record* + %"$adtgep_5898" = getelementptr inbounds %CName_ud-registry.Record, %CName_ud-registry.Record* %"$adtval_5897", i32 0, i32 0 + store i8 0, i8* %"$adtgep_5898", align 1 + %"$adtgep_5899" = getelementptr inbounds %CName_ud-registry.Record, %CName_ud-registry.Record* %"$adtval_5897", i32 0, i32 1 + store [20 x i8] %owner, [20 x i8]* %"$adtgep_5899", align 1 + %"$adtgep_5900" = getelementptr inbounds %CName_ud-registry.Record, %CName_ud-registry.Record* %"$adtval_5897", i32 0, i32 2 + store [20 x i8] %"$ud-registry.zeroByStr20_5896", [20 x i8]* %"$adtgep_5900", align 1 + %"$adtptr_5901" = bitcast %CName_ud-registry.Record* %"$adtval_5897" to %TName_ud-registry.Record* + store %TName_ud-registry.Record* %"$adtptr_5901", %TName_ud-registry.Record** %newRecord, align 8, !dbg !1058 + %"$newRecord_5902" = load %TName_ud-registry.Record*, %TName_ud-registry.Record** %newRecord, align 8 + %"$$newRecord_5902_5903" = bitcast %TName_ud-registry.Record* %"$newRecord_5902" to i8* + %"$_literal_cost_call_5904" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_ud-registry.Record_465", i8* %"$$newRecord_5902_5903") + %"$gasadd_5905" = add i64 %"$_literal_cost_call_5904", 1 + %"$gasrem_5906" = load i64, i64* @_gasrem, align 8 + %"$gascmp_5907" = icmp ugt i64 %"$gasadd_5905", %"$gasrem_5906" + br i1 %"$gascmp_5907", label %"$out_of_gas_5908", label %"$have_gas_5909" + +"$out_of_gas_5908": ; preds = %"$have_gas_5894" + call void @_out_of_gas() + br label %"$have_gas_5909" + +"$have_gas_5909": ; preds = %"$out_of_gas_5908", %"$have_gas_5894" + %"$consume_5910" = sub i64 %"$gasrem_5906", %"$gasadd_5905" + store i64 %"$consume_5910", i64* @_gasrem, align 8 + %"$indices_buf_5911_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$indices_buf_5911_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_5911_salloc_load", i64 32) + %"$indices_buf_5911_salloc" = bitcast i8* %"$indices_buf_5911_salloc_salloc" to [32 x i8]* + %"$indices_buf_5911" = bitcast [32 x i8]* %"$indices_buf_5911_salloc" to i8* + %"$indices_gep_5912" = getelementptr i8, i8* %"$indices_buf_5911", i32 0 + %indices_cast4 = bitcast i8* %"$indices_gep_5912" to [32 x i8]* store [32 x i8] %node, [32 x i8]* %indices_cast4, align 1 - %"$execptr_load_5813" = load i8*, i8** @_execptr, align 8 - %"$newRecord_5815" = load %TName_ud-registry.Record*, %TName_ud-registry.Record** %newRecord, align 8 - %"$update_value_5816" = bitcast %TName_ud-registry.Record* %"$newRecord_5815" to i8* - call void @_update_field(i8* %"$execptr_load_5813", i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$records_5814", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_472", i32 1, i8* %"$indices_buf_5811", i8* %"$update_value_5816"), !dbg !576 - %"$gasrem_5817" = load i64, i64* @_gasrem, align 8 - %"$gascmp_5818" = icmp ugt i64 1, %"$gasrem_5817" - br i1 %"$gascmp_5818", label %"$out_of_gas_5819", label %"$have_gas_5820" + %"$execptr_load_5913" = load i8*, i8** @_execptr, align 8 + %"$newRecord_5915" = load %TName_ud-registry.Record*, %TName_ud-registry.Record** %newRecord, align 8 + %"$update_value_5916" = bitcast %TName_ud-registry.Record* %"$newRecord_5915" to i8* + call void @_update_field(i8* %"$execptr_load_5913", i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$records_5914", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_472", i32 1, i8* %"$indices_buf_5911", i8* %"$update_value_5916"), !dbg !1059 + %"$gasrem_5917" = load i64, i64* @_gasrem, align 8 + %"$gascmp_5918" = icmp ugt i64 1, %"$gasrem_5917" + br i1 %"$gascmp_5918", label %"$out_of_gas_5919", label %"$have_gas_5920" -"$out_of_gas_5819": ; preds = %"$have_gas_5809" +"$out_of_gas_5919": ; preds = %"$have_gas_5909" call void @_out_of_gas() - br label %"$have_gas_5820" + br label %"$have_gas_5920" -"$have_gas_5820": ; preds = %"$out_of_gas_5819", %"$have_gas_5809" - %"$consume_5821" = sub i64 %"$gasrem_5817", 1 - store i64 %"$consume_5821", i64* @_gasrem, align 8 +"$have_gas_5920": ; preds = %"$out_of_gas_5919", %"$have_gas_5909" + %"$consume_5921" = sub i64 %"$gasrem_5917", 1 + store i64 %"$consume_5921", i64* @_gasrem, align 8 %e = alloca i8*, align 8 - %"$gasrem_5822" = load i64, i64* @_gasrem, align 8 - %"$gascmp_5823" = icmp ugt i64 1, %"$gasrem_5822" - br i1 %"$gascmp_5823", label %"$out_of_gas_5824", label %"$have_gas_5825" + call void @llvm.dbg.declare(metadata i8** %e, metadata !1060, metadata !DIExpression()), !dbg !1061 + %"$gasrem_5922" = load i64, i64* @_gasrem, align 8 + %"$gascmp_5923" = icmp ugt i64 1, %"$gasrem_5922" + br i1 %"$gascmp_5923", label %"$out_of_gas_5924", label %"$have_gas_5925" -"$out_of_gas_5824": ; preds = %"$have_gas_5820" +"$out_of_gas_5924": ; preds = %"$have_gas_5920" call void @_out_of_gas() - br label %"$have_gas_5825" + br label %"$have_gas_5925" -"$have_gas_5825": ; preds = %"$out_of_gas_5824", %"$have_gas_5820" - %"$consume_5826" = sub i64 %"$gasrem_5822", 1 - store i64 %"$consume_5826", i64* @_gasrem, align 8 +"$have_gas_5925": ; preds = %"$out_of_gas_5924", %"$have_gas_5920" + %"$consume_5926" = sub i64 %"$gasrem_5922", 1 + store i64 %"$consume_5926", 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_5827" = 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_5828" = extractvalue { { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, [32 x i8]*)*, i8* } %"$ud-registry.eConfigured_5827", 0 - %"$ud-registry.eConfigured_envptr_5829" = extractvalue { { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, [32 x i8]*)*, i8* } %"$ud-registry.eConfigured_5827", 1 - %"$ud-registry.eConfigured_node_5830" = alloca [32 x i8], align 1 - store [32 x i8] %node, [32 x i8]* %"$ud-registry.eConfigured_node_5830", align 1 - %"$ud-registry.eConfigured_call_5831" = call { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$ud-registry.eConfigured_fptr_5828"(i8* %"$ud-registry.eConfigured_envptr_5829", [32 x i8]* %"$ud-registry.eConfigured_node_5830"), !dbg !577 - store { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$ud-registry.eConfigured_call_5831", { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* }* %"$ud-registry.eConfigured_143", align 8, !dbg !577 + %"$ud-registry.eConfigured_5927" = 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_5928" = extractvalue { { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, [32 x i8]*)*, i8* } %"$ud-registry.eConfigured_5927", 0 + %"$ud-registry.eConfigured_envptr_5929" = extractvalue { { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, [32 x i8]*)*, i8* } %"$ud-registry.eConfigured_5927", 1 + %"$ud-registry.eConfigured_node_5930" = alloca [32 x i8], align 1 + store [32 x i8] %node, [32 x i8]* %"$ud-registry.eConfigured_node_5930", align 1 + %"$ud-registry.eConfigured_call_5931" = call { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$ud-registry.eConfigured_fptr_5928"(i8* %"$ud-registry.eConfigured_envptr_5929", [32 x i8]* %"$ud-registry.eConfigured_node_5930"), !dbg !1062 + store { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$ud-registry.eConfigured_call_5931", { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* }* %"$ud-registry.eConfigured_143", align 8, !dbg !1062 %"$ud-registry.eConfigured_144" = alloca { i8* (i8*, [20 x i8]*)*, i8* }, align 8 - %"$$ud-registry.eConfigured_143_5832" = 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_5833" = extractvalue { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.eConfigured_143_5832", 0 - %"$$ud-registry.eConfigured_143_envptr_5834" = extractvalue { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.eConfigured_143_5832", 1 - %"$$ud-registry.eConfigured_143_owner_5835" = alloca [20 x i8], align 1 - store [20 x i8] %owner, [20 x i8]* %"$$ud-registry.eConfigured_143_owner_5835", align 1 - %"$$ud-registry.eConfigured_143_call_5836" = call { i8* (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.eConfigured_143_fptr_5833"(i8* %"$$ud-registry.eConfigured_143_envptr_5834", [20 x i8]* %"$$ud-registry.eConfigured_143_owner_5835"), !dbg !577 - store { i8* (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.eConfigured_143_call_5836", { i8* (i8*, [20 x i8]*)*, i8* }* %"$ud-registry.eConfigured_144", align 8, !dbg !577 + %"$$ud-registry.eConfigured_143_5932" = 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_5933" = extractvalue { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.eConfigured_143_5932", 0 + %"$$ud-registry.eConfigured_143_envptr_5934" = extractvalue { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.eConfigured_143_5932", 1 + %"$$ud-registry.eConfigured_143_owner_5935" = alloca [20 x i8], align 1 + store [20 x i8] %owner, [20 x i8]* %"$$ud-registry.eConfigured_143_owner_5935", align 1 + %"$$ud-registry.eConfigured_143_call_5936" = call { i8* (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.eConfigured_143_fptr_5933"(i8* %"$$ud-registry.eConfigured_143_envptr_5934", [20 x i8]* %"$$ud-registry.eConfigured_143_owner_5935"), !dbg !1062 + store { i8* (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.eConfigured_143_call_5936", { i8* (i8*, [20 x i8]*)*, i8* }* %"$ud-registry.eConfigured_144", align 8, !dbg !1062 %"$ud-registry.eConfigured_145" = alloca i8*, align 8 - %"$$ud-registry.eConfigured_144_5837" = load { i8* (i8*, [20 x i8]*)*, i8* }, { i8* (i8*, [20 x i8]*)*, i8* }* %"$ud-registry.eConfigured_144", align 8 - %"$$ud-registry.eConfigured_144_fptr_5838" = extractvalue { i8* (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.eConfigured_144_5837", 0 - %"$$ud-registry.eConfigured_144_envptr_5839" = extractvalue { i8* (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.eConfigured_144_5837", 1 - %"$$ud-registry.eConfigured_144_ud-registry.zeroByStr20_5840" = alloca [20 x i8], align 1 - %"$ud-registry.zeroByStr20_5841" = load [20 x i8], [20 x i8]* @ud-registry.zeroByStr20, align 1 - store [20 x i8] %"$ud-registry.zeroByStr20_5841", [20 x i8]* %"$$ud-registry.eConfigured_144_ud-registry.zeroByStr20_5840", align 1 - %"$$ud-registry.eConfigured_144_call_5842" = call i8* %"$$ud-registry.eConfigured_144_fptr_5838"(i8* %"$$ud-registry.eConfigured_144_envptr_5839", [20 x i8]* %"$$ud-registry.eConfigured_144_ud-registry.zeroByStr20_5840"), !dbg !577 - store i8* %"$$ud-registry.eConfigured_144_call_5842", i8** %"$ud-registry.eConfigured_145", align 8, !dbg !577 - %"$$ud-registry.eConfigured_145_5843" = load i8*, i8** %"$ud-registry.eConfigured_145", align 8 - store i8* %"$$ud-registry.eConfigured_145_5843", i8** %e, align 8, !dbg !577 - %"$e_5844" = load i8*, i8** %e, align 8 - %"$_literal_cost_call_5846" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Event_446", i8* %"$e_5844") - %"$gasrem_5847" = load i64, i64* @_gasrem, align 8 - %"$gascmp_5848" = icmp ugt i64 %"$_literal_cost_call_5846", %"$gasrem_5847" - br i1 %"$gascmp_5848", label %"$out_of_gas_5849", label %"$have_gas_5850" - -"$out_of_gas_5849": ; preds = %"$have_gas_5825" - call void @_out_of_gas() - br label %"$have_gas_5850" - -"$have_gas_5850": ; preds = %"$out_of_gas_5849", %"$have_gas_5825" - %"$consume_5851" = sub i64 %"$gasrem_5847", %"$_literal_cost_call_5846" - store i64 %"$consume_5851", i64* @_gasrem, align 8 - %"$execptr_load_5852" = load i8*, i8** @_execptr, align 8 - %"$e_5853" = load i8*, i8** %e, align 8 - call void @_event(i8* %"$execptr_load_5852", %_TyDescrTy_Typ* @"$TyDescr_Event_446", i8* %"$e_5853"), !dbg !578 - %"$gasrem_5854" = load i64, i64* @_gasrem, align 8 - %"$gascmp_5855" = icmp ugt i64 1, %"$gasrem_5854" - br i1 %"$gascmp_5855", label %"$out_of_gas_5856", label %"$have_gas_5857" - -"$out_of_gas_5856": ; preds = %"$have_gas_5850" - call void @_out_of_gas() - br label %"$have_gas_5857" - -"$have_gas_5857": ; preds = %"$out_of_gas_5856", %"$have_gas_5850" - %"$consume_5858" = sub i64 %"$gasrem_5854", 1 - store i64 %"$consume_5858", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata i8** %"$ud-registry.eConfigured_145", metadata !1063, metadata !DIExpression()), !dbg !1062 + %"$$ud-registry.eConfigured_144_5937" = load { i8* (i8*, [20 x i8]*)*, i8* }, { i8* (i8*, [20 x i8]*)*, i8* }* %"$ud-registry.eConfigured_144", align 8 + %"$$ud-registry.eConfigured_144_fptr_5938" = extractvalue { i8* (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.eConfigured_144_5937", 0 + %"$$ud-registry.eConfigured_144_envptr_5939" = extractvalue { i8* (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.eConfigured_144_5937", 1 + %"$$ud-registry.eConfigured_144_ud-registry.zeroByStr20_5940" = alloca [20 x i8], align 1 + %"$ud-registry.zeroByStr20_5941" = load [20 x i8], [20 x i8]* @ud-registry.zeroByStr20, align 1 + store [20 x i8] %"$ud-registry.zeroByStr20_5941", [20 x i8]* %"$$ud-registry.eConfigured_144_ud-registry.zeroByStr20_5940", align 1 + %"$$ud-registry.eConfigured_144_call_5942" = call i8* %"$$ud-registry.eConfigured_144_fptr_5938"(i8* %"$$ud-registry.eConfigured_144_envptr_5939", [20 x i8]* %"$$ud-registry.eConfigured_144_ud-registry.zeroByStr20_5940"), !dbg !1062 + store i8* %"$$ud-registry.eConfigured_144_call_5942", i8** %"$ud-registry.eConfigured_145", align 8, !dbg !1062 + %"$$ud-registry.eConfigured_145_5943" = load i8*, i8** %"$ud-registry.eConfigured_145", align 8 + store i8* %"$$ud-registry.eConfigured_145_5943", i8** %e, align 8, !dbg !1062 + %"$e_5944" = load i8*, i8** %e, align 8 + %"$_literal_cost_call_5946" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Event_446", i8* %"$e_5944") + %"$gasrem_5947" = load i64, i64* @_gasrem, align 8 + %"$gascmp_5948" = icmp ugt i64 %"$_literal_cost_call_5946", %"$gasrem_5947" + br i1 %"$gascmp_5948", label %"$out_of_gas_5949", label %"$have_gas_5950" + +"$out_of_gas_5949": ; preds = %"$have_gas_5925" + call void @_out_of_gas() + br label %"$have_gas_5950" + +"$have_gas_5950": ; preds = %"$out_of_gas_5949", %"$have_gas_5925" + %"$consume_5951" = sub i64 %"$gasrem_5947", %"$_literal_cost_call_5946" + store i64 %"$consume_5951", i64* @_gasrem, align 8 + %"$execptr_load_5952" = load i8*, i8** @_execptr, align 8 + %"$e_5953" = load i8*, i8** %e, align 8 + call void @_event(i8* %"$execptr_load_5952", %_TyDescrTy_Typ* @"$TyDescr_Event_446", i8* %"$e_5953"), !dbg !1064 + %"$gasrem_5954" = load i64, i64* @_gasrem, align 8 + %"$gascmp_5955" = icmp ugt i64 1, %"$gasrem_5954" + br i1 %"$gascmp_5955", label %"$out_of_gas_5956", label %"$have_gas_5957" + +"$out_of_gas_5956": ; preds = %"$have_gas_5950" + call void @_out_of_gas() + br label %"$have_gas_5957" + +"$have_gas_5957": ; preds = %"$out_of_gas_5956", %"$have_gas_5950" + %"$consume_5958" = sub i64 %"$gasrem_5954", 1 + store i64 %"$consume_5958", i64* @_gasrem, align 8 %msgs = alloca %TName_List_Message*, align 8 - %"$gasrem_5859" = load i64, i64* @_gasrem, align 8 - %"$gascmp_5860" = icmp ugt i64 1, %"$gasrem_5859" - br i1 %"$gascmp_5860", label %"$out_of_gas_5861", label %"$have_gas_5862" + call void @llvm.dbg.declare(metadata %TName_List_Message** %msgs, metadata !1065, metadata !DIExpression()), !dbg !1066 + %"$gasrem_5959" = load i64, i64* @_gasrem, align 8 + %"$gascmp_5960" = icmp ugt i64 1, %"$gasrem_5959" + br i1 %"$gascmp_5960", label %"$out_of_gas_5961", label %"$have_gas_5962" -"$out_of_gas_5861": ; preds = %"$have_gas_5857" +"$out_of_gas_5961": ; preds = %"$have_gas_5957" call void @_out_of_gas() - br label %"$have_gas_5862" + br label %"$have_gas_5962" -"$have_gas_5862": ; preds = %"$out_of_gas_5861", %"$have_gas_5857" - %"$consume_5863" = sub i64 %"$gasrem_5859", 1 - store i64 %"$consume_5863", i64* @_gasrem, align 8 +"$have_gas_5962": ; preds = %"$out_of_gas_5961", %"$have_gas_5957" + %"$consume_5963" = sub i64 %"$gasrem_5959", 1 + store i64 %"$consume_5963", i64* @_gasrem, align 8 %m = alloca i8*, align 8 - %"$gasrem_5864" = load i64, i64* @_gasrem, align 8 - %"$gascmp_5865" = icmp ugt i64 1, %"$gasrem_5864" - br i1 %"$gascmp_5865", label %"$out_of_gas_5866", label %"$have_gas_5867" - -"$out_of_gas_5866": ; preds = %"$have_gas_5862" - call void @_out_of_gas() - br label %"$have_gas_5867" - -"$have_gas_5867": ; preds = %"$out_of_gas_5866", %"$have_gas_5862" - %"$consume_5868" = sub i64 %"$gasrem_5864", 1 - store i64 %"$consume_5868", i64* @_gasrem, align 8 - %"$msgobj_5869_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$msgobj_5869_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_5869_salloc_load", i64 225) - %"$msgobj_5869_salloc" = bitcast i8* %"$msgobj_5869_salloc_salloc" to [225 x i8]* - %"$msgobj_5869" = bitcast [225 x i8]* %"$msgobj_5869_salloc" to i8* - store i8 5, i8* %"$msgobj_5869", align 1 - %"$msgobj_fname_5871" = getelementptr i8, i8* %"$msgobj_5869", i32 1 - %"$msgobj_fname_5872" = bitcast i8* %"$msgobj_fname_5871" to %String* - store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_5870", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_5872", align 8 - %"$msgobj_td_5873" = getelementptr i8, i8* %"$msgobj_5869", i32 17 - %"$msgobj_td_5874" = bitcast i8* %"$msgobj_td_5873" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_String_440", %_TyDescrTy_Typ** %"$msgobj_td_5874", align 8 - %"$msgobj_v_5876" = getelementptr i8, i8* %"$msgobj_5869", i32 25 - %"$msgobj_v_5877" = bitcast i8* %"$msgobj_v_5876" to %String* - store %String { i8* getelementptr inbounds ([17 x i8], [17 x i8]* @"$stringlit_5875", i32 0, i32 0), i32 17 }, %String* %"$msgobj_v_5877", align 8 - %"$msgobj_fname_5879" = getelementptr i8, i8* %"$msgobj_5869", i32 41 - %"$msgobj_fname_5880" = bitcast i8* %"$msgobj_fname_5879" to %String* - store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_5878", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_5880", align 8 - %"$msgobj_td_5881" = getelementptr i8, i8* %"$msgobj_5869", i32 57 - %"$msgobj_td_5882" = bitcast i8* %"$msgobj_td_5881" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Bystr32_456", %_TyDescrTy_Typ** %"$msgobj_td_5882", align 8 - %"$msgobj_v_5883" = getelementptr i8, i8* %"$msgobj_5869", i32 65 - %"$msgobj_v_5884" = bitcast i8* %"$msgobj_v_5883" to [32 x i8]* - store [32 x i8] %node, [32 x i8]* %"$msgobj_v_5884", align 1 - %"$msgobj_fname_5886" = getelementptr i8, i8* %"$msgobj_5869", i32 97 - %"$msgobj_fname_5887" = bitcast i8* %"$msgobj_fname_5886" to %String* - store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_5885", i32 0, i32 0), i32 5 }, %String* %"$msgobj_fname_5887", align 8 - %"$msgobj_td_5888" = getelementptr i8, i8* %"$msgobj_5869", i32 113 - %"$msgobj_td_5889" = bitcast i8* %"$msgobj_td_5888" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_458", %_TyDescrTy_Typ** %"$msgobj_td_5889", align 8 - %"$msgobj_v_5890" = getelementptr i8, i8* %"$msgobj_5869", i32 121 - %"$msgobj_v_5891" = bitcast i8* %"$msgobj_v_5890" to [20 x i8]* - store [20 x i8] %owner, [20 x i8]* %"$msgobj_v_5891", align 1 - %"$msgobj_fname_5893" = getelementptr i8, i8* %"$msgobj_5869", i32 141 - %"$msgobj_fname_5894" = bitcast i8* %"$msgobj_fname_5893" to %String* - store %String { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$stringlit_5892", i32 0, i32 0), i32 7 }, %String* %"$msgobj_fname_5894", align 8 - %"$msgobj_td_5895" = getelementptr i8, i8* %"$msgobj_5869", i32 157 - %"$msgobj_td_5896" = bitcast i8* %"$msgobj_td_5895" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Uint128_434", %_TyDescrTy_Typ** %"$msgobj_td_5896", align 8 - %"$msgobj_v_5897" = getelementptr i8, i8* %"$msgobj_5869", i32 165 - %"$msgobj_v_5898" = bitcast i8* %"$msgobj_v_5897" to %Uint128* - store %Uint128 zeroinitializer, %Uint128* %"$msgobj_v_5898", align 8 - %"$msgobj_fname_5900" = getelementptr i8, i8* %"$msgobj_5869", i32 181 - %"$msgobj_fname_5901" = bitcast i8* %"$msgobj_fname_5900" to %String* - store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_5899", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_5901", align 8 - %"$msgobj_td_5902" = getelementptr i8, i8* %"$msgobj_5869", i32 197 - %"$msgobj_td_5903" = bitcast i8* %"$msgobj_td_5902" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_458", %_TyDescrTy_Typ** %"$msgobj_td_5903", align 8 - %"$msgobj_v_5904" = getelementptr i8, i8* %"$msgobj_5869", i32 205 - %"$msgobj_v_5905" = bitcast i8* %"$msgobj_v_5904" to [20 x i8]* - store [20 x i8] %_sender, [20 x i8]* %"$msgobj_v_5905", align 1 - store i8* %"$msgobj_5869", i8** %m, align 8, !dbg !579 - %"$gasrem_5907" = load i64, i64* @_gasrem, align 8 - %"$gascmp_5908" = icmp ugt i64 1, %"$gasrem_5907" - br i1 %"$gascmp_5908", label %"$out_of_gas_5909", label %"$have_gas_5910" - -"$out_of_gas_5909": ; preds = %"$have_gas_5867" - call void @_out_of_gas() - br label %"$have_gas_5910" - -"$have_gas_5910": ; preds = %"$out_of_gas_5909", %"$have_gas_5867" - %"$consume_5911" = sub i64 %"$gasrem_5907", 1 - store i64 %"$consume_5911", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata i8** %m, metadata !1067, metadata !DIExpression()), !dbg !1068 + %"$gasrem_5964" = load i64, i64* @_gasrem, align 8 + %"$gascmp_5965" = icmp ugt i64 1, %"$gasrem_5964" + br i1 %"$gascmp_5965", label %"$out_of_gas_5966", label %"$have_gas_5967" + +"$out_of_gas_5966": ; preds = %"$have_gas_5962" + call void @_out_of_gas() + br label %"$have_gas_5967" + +"$have_gas_5967": ; preds = %"$out_of_gas_5966", %"$have_gas_5962" + %"$consume_5968" = sub i64 %"$gasrem_5964", 1 + store i64 %"$consume_5968", i64* @_gasrem, align 8 + %"$msgobj_5969_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$msgobj_5969_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_5969_salloc_load", i64 225) + %"$msgobj_5969_salloc" = bitcast i8* %"$msgobj_5969_salloc_salloc" to [225 x i8]* + %"$msgobj_5969" = bitcast [225 x i8]* %"$msgobj_5969_salloc" to i8* + store i8 5, i8* %"$msgobj_5969", align 1 + %"$msgobj_fname_5971" = getelementptr i8, i8* %"$msgobj_5969", i32 1 + %"$msgobj_fname_5972" = bitcast i8* %"$msgobj_fname_5971" to %String* + store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_5970", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_5972", align 8 + %"$msgobj_td_5973" = getelementptr i8, i8* %"$msgobj_5969", i32 17 + %"$msgobj_td_5974" = bitcast i8* %"$msgobj_td_5973" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_String_440", %_TyDescrTy_Typ** %"$msgobj_td_5974", align 8 + %"$msgobj_v_5976" = getelementptr i8, i8* %"$msgobj_5969", i32 25 + %"$msgobj_v_5977" = bitcast i8* %"$msgobj_v_5976" to %String* + store %String { i8* getelementptr inbounds ([17 x i8], [17 x i8]* @"$stringlit_5975", i32 0, i32 0), i32 17 }, %String* %"$msgobj_v_5977", align 8 + %"$msgobj_fname_5979" = getelementptr i8, i8* %"$msgobj_5969", i32 41 + %"$msgobj_fname_5980" = bitcast i8* %"$msgobj_fname_5979" to %String* + store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_5978", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_5980", align 8 + %"$msgobj_td_5981" = getelementptr i8, i8* %"$msgobj_5969", i32 57 + %"$msgobj_td_5982" = bitcast i8* %"$msgobj_td_5981" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Bystr32_456", %_TyDescrTy_Typ** %"$msgobj_td_5982", align 8 + %"$msgobj_v_5983" = getelementptr i8, i8* %"$msgobj_5969", i32 65 + %"$msgobj_v_5984" = bitcast i8* %"$msgobj_v_5983" to [32 x i8]* + store [32 x i8] %node, [32 x i8]* %"$msgobj_v_5984", align 1 + %"$msgobj_fname_5986" = getelementptr i8, i8* %"$msgobj_5969", i32 97 + %"$msgobj_fname_5987" = bitcast i8* %"$msgobj_fname_5986" to %String* + store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_5985", i32 0, i32 0), i32 5 }, %String* %"$msgobj_fname_5987", align 8 + %"$msgobj_td_5988" = getelementptr i8, i8* %"$msgobj_5969", i32 113 + %"$msgobj_td_5989" = bitcast i8* %"$msgobj_td_5988" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_458", %_TyDescrTy_Typ** %"$msgobj_td_5989", align 8 + %"$msgobj_v_5990" = getelementptr i8, i8* %"$msgobj_5969", i32 121 + %"$msgobj_v_5991" = bitcast i8* %"$msgobj_v_5990" to [20 x i8]* + store [20 x i8] %owner, [20 x i8]* %"$msgobj_v_5991", align 1 + %"$msgobj_fname_5993" = getelementptr i8, i8* %"$msgobj_5969", i32 141 + %"$msgobj_fname_5994" = bitcast i8* %"$msgobj_fname_5993" to %String* + store %String { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$stringlit_5992", i32 0, i32 0), i32 7 }, %String* %"$msgobj_fname_5994", align 8 + %"$msgobj_td_5995" = getelementptr i8, i8* %"$msgobj_5969", i32 157 + %"$msgobj_td_5996" = bitcast i8* %"$msgobj_td_5995" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Uint128_434", %_TyDescrTy_Typ** %"$msgobj_td_5996", align 8 + %"$msgobj_v_5997" = getelementptr i8, i8* %"$msgobj_5969", i32 165 + %"$msgobj_v_5998" = bitcast i8* %"$msgobj_v_5997" to %Uint128* + store %Uint128 zeroinitializer, %Uint128* %"$msgobj_v_5998", align 8 + %"$msgobj_fname_6000" = getelementptr i8, i8* %"$msgobj_5969", i32 181 + %"$msgobj_fname_6001" = bitcast i8* %"$msgobj_fname_6000" to %String* + store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_5999", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_6001", align 8 + %"$msgobj_td_6002" = getelementptr i8, i8* %"$msgobj_5969", i32 197 + %"$msgobj_td_6003" = bitcast i8* %"$msgobj_td_6002" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_458", %_TyDescrTy_Typ** %"$msgobj_td_6003", align 8 + %"$msgobj_v_6004" = getelementptr i8, i8* %"$msgobj_5969", i32 205 + %"$msgobj_v_6005" = bitcast i8* %"$msgobj_v_6004" to [20 x i8]* + store [20 x i8] %_sender, [20 x i8]* %"$msgobj_v_6005", align 1 + store i8* %"$msgobj_5969", i8** %m, align 8, !dbg !1069 + %"$gasrem_6007" = load i64, i64* @_gasrem, align 8 + %"$gascmp_6008" = icmp ugt i64 1, %"$gasrem_6007" + br i1 %"$gascmp_6008", label %"$out_of_gas_6009", label %"$have_gas_6010" + +"$out_of_gas_6009": ; preds = %"$have_gas_5967" + call void @_out_of_gas() + br label %"$have_gas_6010" + +"$have_gas_6010": ; preds = %"$out_of_gas_6009", %"$have_gas_5967" + %"$consume_6011" = sub i64 %"$gasrem_6007", 1 + store i64 %"$consume_6011", i64* @_gasrem, align 8 %"$ud-registry.oneMsg_142" = alloca %TName_List_Message*, align 8 - %"$ud-registry.oneMsg_5912" = load { %TName_List_Message* (i8*, i8*)*, i8* }, { %TName_List_Message* (i8*, i8*)*, i8* }* @ud-registry.oneMsg, align 8 - %"$ud-registry.oneMsg_fptr_5913" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$ud-registry.oneMsg_5912", 0 - %"$ud-registry.oneMsg_envptr_5914" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$ud-registry.oneMsg_5912", 1 - %"$m_5915" = load i8*, i8** %m, align 8 - %"$ud-registry.oneMsg_call_5916" = call %TName_List_Message* %"$ud-registry.oneMsg_fptr_5913"(i8* %"$ud-registry.oneMsg_envptr_5914", i8* %"$m_5915"), !dbg !580 - store %TName_List_Message* %"$ud-registry.oneMsg_call_5916", %TName_List_Message** %"$ud-registry.oneMsg_142", align 8, !dbg !580 - %"$$ud-registry.oneMsg_142_5917" = load %TName_List_Message*, %TName_List_Message** %"$ud-registry.oneMsg_142", align 8 - store %TName_List_Message* %"$$ud-registry.oneMsg_142_5917", %TName_List_Message** %msgs, align 8, !dbg !580 - %"$msgs_5918" = load %TName_List_Message*, %TName_List_Message** %msgs, align 8 - %"$$msgs_5918_5919" = bitcast %TName_List_Message* %"$msgs_5918" to i8* - %"$_literal_cost_call_5920" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_467", i8* %"$$msgs_5918_5919") - %"$gasrem_5921" = load i64, i64* @_gasrem, align 8 - %"$gascmp_5922" = icmp ugt i64 %"$_literal_cost_call_5920", %"$gasrem_5921" - br i1 %"$gascmp_5922", label %"$out_of_gas_5923", label %"$have_gas_5924" - -"$out_of_gas_5923": ; preds = %"$have_gas_5910" - call void @_out_of_gas() - br label %"$have_gas_5924" - -"$have_gas_5924": ; preds = %"$out_of_gas_5923", %"$have_gas_5910" - %"$consume_5925" = sub i64 %"$gasrem_5921", %"$_literal_cost_call_5920" - store i64 %"$consume_5925", i64* @_gasrem, align 8 - %"$execptr_load_5926" = load i8*, i8** @_execptr, align 8 - %"$msgs_5927" = load %TName_List_Message*, %TName_List_Message** %msgs, align 8 - call void @_send(i8* %"$execptr_load_5926", %_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_467", %TName_List_Message* %"$msgs_5927"), !dbg !581 - br label %"$matchsucc_5770" - -"$False_5928": ; preds = %"$have_gas_5768" - %"$isSenderOAO_5929" = bitcast %TName_Bool* %"$isSenderOAO_5771" to %CName_False* - %"$gasrem_5930" = load i64, i64* @_gasrem, align 8 - %"$gascmp_5931" = icmp ugt i64 1, %"$gasrem_5930" - br i1 %"$gascmp_5931", label %"$out_of_gas_5932", label %"$have_gas_5933" - -"$out_of_gas_5932": ; preds = %"$False_5928" - call void @_out_of_gas() - br label %"$have_gas_5933" - -"$have_gas_5933": ; preds = %"$out_of_gas_5932", %"$False_5928" - %"$consume_5934" = sub i64 %"$gasrem_5930", 1 - store i64 %"$consume_5934", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_List_Message** %"$ud-registry.oneMsg_142", metadata !1070, metadata !DIExpression()), !dbg !1071 + %"$ud-registry.oneMsg_6012" = load { %TName_List_Message* (i8*, i8*)*, i8* }, { %TName_List_Message* (i8*, i8*)*, i8* }* @ud-registry.oneMsg, align 8 + %"$ud-registry.oneMsg_fptr_6013" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$ud-registry.oneMsg_6012", 0 + %"$ud-registry.oneMsg_envptr_6014" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$ud-registry.oneMsg_6012", 1 + %"$m_6015" = load i8*, i8** %m, align 8 + %"$ud-registry.oneMsg_call_6016" = call %TName_List_Message* %"$ud-registry.oneMsg_fptr_6013"(i8* %"$ud-registry.oneMsg_envptr_6014", i8* %"$m_6015"), !dbg !1071 + store %TName_List_Message* %"$ud-registry.oneMsg_call_6016", %TName_List_Message** %"$ud-registry.oneMsg_142", align 8, !dbg !1071 + %"$$ud-registry.oneMsg_142_6017" = load %TName_List_Message*, %TName_List_Message** %"$ud-registry.oneMsg_142", align 8 + store %TName_List_Message* %"$$ud-registry.oneMsg_142_6017", %TName_List_Message** %msgs, align 8, !dbg !1071 + %"$msgs_6018" = load %TName_List_Message*, %TName_List_Message** %msgs, align 8 + %"$$msgs_6018_6019" = bitcast %TName_List_Message* %"$msgs_6018" to i8* + %"$_literal_cost_call_6020" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_467", i8* %"$$msgs_6018_6019") + %"$gasrem_6021" = load i64, i64* @_gasrem, align 8 + %"$gascmp_6022" = icmp ugt i64 %"$_literal_cost_call_6020", %"$gasrem_6021" + br i1 %"$gascmp_6022", label %"$out_of_gas_6023", label %"$have_gas_6024" + +"$out_of_gas_6023": ; preds = %"$have_gas_6010" + call void @_out_of_gas() + br label %"$have_gas_6024" + +"$have_gas_6024": ; preds = %"$out_of_gas_6023", %"$have_gas_6010" + %"$consume_6025" = sub i64 %"$gasrem_6021", %"$_literal_cost_call_6020" + store i64 %"$consume_6025", i64* @_gasrem, align 8 + %"$execptr_load_6026" = load i8*, i8** @_execptr, align 8 + %"$msgs_6027" = load %TName_List_Message*, %TName_List_Message** %msgs, align 8 + call void @_send(i8* %"$execptr_load_6026", %_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_467", %TName_List_Message* %"$msgs_6027"), !dbg !1072 + br label %"$matchsucc_5870" + +"$False_6028": ; preds = %"$have_gas_5868" + %"$isSenderOAO_6029" = bitcast %TName_Bool* %"$isSenderOAO_5871" to %CName_False* + %"$gasrem_6030" = load i64, i64* @_gasrem, align 8 + %"$gascmp_6031" = icmp ugt i64 1, %"$gasrem_6030" + br i1 %"$gascmp_6031", label %"$out_of_gas_6032", label %"$have_gas_6033" + +"$out_of_gas_6032": ; preds = %"$False_6028" + call void @_out_of_gas() + br label %"$have_gas_6033" + +"$have_gas_6033": ; preds = %"$out_of_gas_6032", %"$False_6028" + %"$consume_6034" = sub i64 %"$gasrem_6030", 1 + store i64 %"$consume_6034", i64* @_gasrem, align 8 %e5 = alloca i8*, align 8 - %"$gasrem_5935" = load i64, i64* @_gasrem, align 8 - %"$gascmp_5936" = icmp ugt i64 1, %"$gasrem_5935" - br i1 %"$gascmp_5936", label %"$out_of_gas_5937", label %"$have_gas_5938" + call void @llvm.dbg.declare(metadata i8** %e5, metadata !1073, metadata !DIExpression()), !dbg !1075 + %"$gasrem_6035" = load i64, i64* @_gasrem, align 8 + %"$gascmp_6036" = icmp ugt i64 1, %"$gasrem_6035" + br i1 %"$gascmp_6036", label %"$out_of_gas_6037", label %"$have_gas_6038" -"$out_of_gas_5937": ; preds = %"$have_gas_5933" +"$out_of_gas_6037": ; preds = %"$have_gas_6033" call void @_out_of_gas() - br label %"$have_gas_5938" + br label %"$have_gas_6038" -"$have_gas_5938": ; preds = %"$out_of_gas_5937", %"$have_gas_5933" - %"$consume_5939" = sub i64 %"$gasrem_5935", 1 - store i64 %"$consume_5939", i64* @_gasrem, align 8 +"$have_gas_6038": ; preds = %"$out_of_gas_6037", %"$have_gas_6033" + %"$consume_6039" = sub i64 %"$gasrem_6035", 1 + store i64 %"$consume_6039", i64* @_gasrem, align 8 %m6 = alloca %String, align 8 - %"$gasrem_5940" = load i64, i64* @_gasrem, align 8 - %"$gascmp_5941" = icmp ugt i64 1, %"$gasrem_5940" - br i1 %"$gascmp_5941", label %"$out_of_gas_5942", label %"$have_gas_5943" + call void @llvm.dbg.declare(metadata %String* %m6, metadata !1076, metadata !DIExpression()), !dbg !1077 + %"$gasrem_6040" = load i64, i64* @_gasrem, align 8 + %"$gascmp_6041" = icmp ugt i64 1, %"$gasrem_6040" + br i1 %"$gascmp_6041", label %"$out_of_gas_6042", label %"$have_gas_6043" -"$out_of_gas_5942": ; preds = %"$have_gas_5938" +"$out_of_gas_6042": ; preds = %"$have_gas_6038" call void @_out_of_gas() - br label %"$have_gas_5943" + br label %"$have_gas_6043" -"$have_gas_5943": ; preds = %"$out_of_gas_5942", %"$have_gas_5938" - %"$consume_5944" = sub i64 %"$gasrem_5940", 1 - store i64 %"$consume_5944", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([43 x i8], [43 x i8]* @"$stringlit_5945", i32 0, i32 0), i32 43 }, %String* %m6, align 8, !dbg !582 - %"$gasrem_5946" = load i64, i64* @_gasrem, align 8 - %"$gascmp_5947" = icmp ugt i64 1, %"$gasrem_5946" - br i1 %"$gascmp_5947", label %"$out_of_gas_5948", label %"$have_gas_5949" +"$have_gas_6043": ; preds = %"$out_of_gas_6042", %"$have_gas_6038" + %"$consume_6044" = sub i64 %"$gasrem_6040", 1 + store i64 %"$consume_6044", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([43 x i8], [43 x i8]* @"$stringlit_6045", i32 0, i32 0), i32 43 }, %String* %m6, align 8, !dbg !1078 + %"$gasrem_6046" = load i64, i64* @_gasrem, align 8 + %"$gascmp_6047" = icmp ugt i64 1, %"$gasrem_6046" + br i1 %"$gascmp_6047", label %"$out_of_gas_6048", label %"$have_gas_6049" -"$out_of_gas_5948": ; preds = %"$have_gas_5943" +"$out_of_gas_6048": ; preds = %"$have_gas_6043" call void @_out_of_gas() - br label %"$have_gas_5949" + br label %"$have_gas_6049" -"$have_gas_5949": ; preds = %"$out_of_gas_5948", %"$have_gas_5943" - %"$consume_5950" = sub i64 %"$gasrem_5946", 1 - store i64 %"$consume_5950", i64* @_gasrem, align 8 +"$have_gas_6049": ; preds = %"$out_of_gas_6048", %"$have_gas_6043" + %"$consume_6050" = sub i64 %"$gasrem_6046", 1 + store i64 %"$consume_6050", i64* @_gasrem, align 8 %"$ud-registry.eError_147" = alloca i8*, align 8 - %"$ud-registry.eError_5951" = load { i8* (i8*, %String)*, i8* }, { i8* (i8*, %String)*, i8* }* @ud-registry.eError, align 8 - %"$ud-registry.eError_fptr_5952" = extractvalue { i8* (i8*, %String)*, i8* } %"$ud-registry.eError_5951", 0 - %"$ud-registry.eError_envptr_5953" = extractvalue { i8* (i8*, %String)*, i8* } %"$ud-registry.eError_5951", 1 - %"$m_5954" = load %String, %String* %m6, align 8 - %"$ud-registry.eError_call_5955" = call i8* %"$ud-registry.eError_fptr_5952"(i8* %"$ud-registry.eError_envptr_5953", %String %"$m_5954"), !dbg !584 - store i8* %"$ud-registry.eError_call_5955", i8** %"$ud-registry.eError_147", align 8, !dbg !584 - %"$$ud-registry.eError_147_5956" = load i8*, i8** %"$ud-registry.eError_147", align 8 - store i8* %"$$ud-registry.eError_147_5956", i8** %e5, align 8, !dbg !584 - %"$e_5957" = load i8*, i8** %e5, align 8 - %"$_literal_cost_call_5959" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Event_446", i8* %"$e_5957") - %"$gasrem_5960" = load i64, i64* @_gasrem, align 8 - %"$gascmp_5961" = icmp ugt i64 %"$_literal_cost_call_5959", %"$gasrem_5960" - br i1 %"$gascmp_5961", label %"$out_of_gas_5962", label %"$have_gas_5963" - -"$out_of_gas_5962": ; preds = %"$have_gas_5949" - call void @_out_of_gas() - br label %"$have_gas_5963" - -"$have_gas_5963": ; preds = %"$out_of_gas_5962", %"$have_gas_5949" - %"$consume_5964" = sub i64 %"$gasrem_5960", %"$_literal_cost_call_5959" - store i64 %"$consume_5964", i64* @_gasrem, align 8 - %"$execptr_load_5965" = load i8*, i8** @_execptr, align 8 - %"$e_5966" = load i8*, i8** %e5, align 8 - call void @_event(i8* %"$execptr_load_5965", %_TyDescrTy_Typ* @"$TyDescr_Event_446", i8* %"$e_5966"), !dbg !585 - %"$gasrem_5967" = load i64, i64* @_gasrem, align 8 - %"$gascmp_5968" = icmp ugt i64 1, %"$gasrem_5967" - br i1 %"$gascmp_5968", label %"$out_of_gas_5969", label %"$have_gas_5970" - -"$out_of_gas_5969": ; preds = %"$have_gas_5963" - call void @_out_of_gas() - br label %"$have_gas_5970" - -"$have_gas_5970": ; preds = %"$out_of_gas_5969", %"$have_gas_5963" - %"$consume_5971" = sub i64 %"$gasrem_5967", 1 - store i64 %"$consume_5971", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata i8** %"$ud-registry.eError_147", metadata !1079, metadata !DIExpression()), !dbg !1080 + %"$ud-registry.eError_6051" = load { i8* (i8*, %String)*, i8* }, { i8* (i8*, %String)*, i8* }* @ud-registry.eError, align 8 + %"$ud-registry.eError_fptr_6052" = extractvalue { i8* (i8*, %String)*, i8* } %"$ud-registry.eError_6051", 0 + %"$ud-registry.eError_envptr_6053" = extractvalue { i8* (i8*, %String)*, i8* } %"$ud-registry.eError_6051", 1 + %"$m_6054" = load %String, %String* %m6, align 8 + %"$ud-registry.eError_call_6055" = call i8* %"$ud-registry.eError_fptr_6052"(i8* %"$ud-registry.eError_envptr_6053", %String %"$m_6054"), !dbg !1080 + store i8* %"$ud-registry.eError_call_6055", i8** %"$ud-registry.eError_147", align 8, !dbg !1080 + %"$$ud-registry.eError_147_6056" = load i8*, i8** %"$ud-registry.eError_147", align 8 + store i8* %"$$ud-registry.eError_147_6056", i8** %e5, align 8, !dbg !1080 + %"$e_6057" = load i8*, i8** %e5, align 8 + %"$_literal_cost_call_6059" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Event_446", i8* %"$e_6057") + %"$gasrem_6060" = load i64, i64* @_gasrem, align 8 + %"$gascmp_6061" = icmp ugt i64 %"$_literal_cost_call_6059", %"$gasrem_6060" + br i1 %"$gascmp_6061", label %"$out_of_gas_6062", label %"$have_gas_6063" + +"$out_of_gas_6062": ; preds = %"$have_gas_6049" + call void @_out_of_gas() + br label %"$have_gas_6063" + +"$have_gas_6063": ; preds = %"$out_of_gas_6062", %"$have_gas_6049" + %"$consume_6064" = sub i64 %"$gasrem_6060", %"$_literal_cost_call_6059" + store i64 %"$consume_6064", i64* @_gasrem, align 8 + %"$execptr_load_6065" = load i8*, i8** @_execptr, align 8 + %"$e_6066" = load i8*, i8** %e5, align 8 + call void @_event(i8* %"$execptr_load_6065", %_TyDescrTy_Typ* @"$TyDescr_Event_446", i8* %"$e_6066"), !dbg !1081 + %"$gasrem_6067" = load i64, i64* @_gasrem, align 8 + %"$gascmp_6068" = icmp ugt i64 1, %"$gasrem_6067" + br i1 %"$gascmp_6068", label %"$out_of_gas_6069", label %"$have_gas_6070" + +"$out_of_gas_6069": ; preds = %"$have_gas_6063" + call void @_out_of_gas() + br label %"$have_gas_6070" + +"$have_gas_6070": ; preds = %"$out_of_gas_6069", %"$have_gas_6063" + %"$consume_6071" = sub i64 %"$gasrem_6067", 1 + store i64 %"$consume_6071", i64* @_gasrem, align 8 %msgs7 = alloca %TName_List_Message*, align 8 - %"$gasrem_5972" = load i64, i64* @_gasrem, align 8 - %"$gascmp_5973" = icmp ugt i64 1, %"$gasrem_5972" - br i1 %"$gascmp_5973", label %"$out_of_gas_5974", label %"$have_gas_5975" + call void @llvm.dbg.declare(metadata %TName_List_Message** %msgs7, metadata !1082, metadata !DIExpression()), !dbg !1083 + %"$gasrem_6072" = load i64, i64* @_gasrem, align 8 + %"$gascmp_6073" = icmp ugt i64 1, %"$gasrem_6072" + br i1 %"$gascmp_6073", label %"$out_of_gas_6074", label %"$have_gas_6075" -"$out_of_gas_5974": ; preds = %"$have_gas_5970" +"$out_of_gas_6074": ; preds = %"$have_gas_6070" call void @_out_of_gas() - br label %"$have_gas_5975" + br label %"$have_gas_6075" -"$have_gas_5975": ; preds = %"$out_of_gas_5974", %"$have_gas_5970" - %"$consume_5976" = sub i64 %"$gasrem_5972", 1 - store i64 %"$consume_5976", i64* @_gasrem, align 8 +"$have_gas_6075": ; preds = %"$out_of_gas_6074", %"$have_gas_6070" + %"$consume_6076" = sub i64 %"$gasrem_6072", 1 + store i64 %"$consume_6076", i64* @_gasrem, align 8 %"$m_20" = alloca i8*, align 8 - %"$gasrem_5977" = load i64, i64* @_gasrem, align 8 - %"$gascmp_5978" = icmp ugt i64 1, %"$gasrem_5977" - br i1 %"$gascmp_5978", label %"$out_of_gas_5979", label %"$have_gas_5980" - -"$out_of_gas_5979": ; preds = %"$have_gas_5975" - call void @_out_of_gas() - br label %"$have_gas_5980" - -"$have_gas_5980": ; preds = %"$out_of_gas_5979", %"$have_gas_5975" - %"$consume_5981" = sub i64 %"$gasrem_5977", 1 - store i64 %"$consume_5981", i64* @_gasrem, align 8 - %"$msgobj_5982_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$msgobj_5982_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_5982_salloc_load", i64 225) - %"$msgobj_5982_salloc" = bitcast i8* %"$msgobj_5982_salloc_salloc" to [225 x i8]* - %"$msgobj_5982" = bitcast [225 x i8]* %"$msgobj_5982_salloc" to i8* - store i8 5, i8* %"$msgobj_5982", align 1 - %"$msgobj_fname_5984" = getelementptr i8, i8* %"$msgobj_5982", i32 1 - %"$msgobj_fname_5985" = bitcast i8* %"$msgobj_fname_5984" to %String* - store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_5983", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_5985", align 8 - %"$msgobj_td_5986" = getelementptr i8, i8* %"$msgobj_5982", i32 17 - %"$msgobj_td_5987" = bitcast i8* %"$msgobj_td_5986" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_String_440", %_TyDescrTy_Typ** %"$msgobj_td_5987", align 8 - %"$msgobj_v_5989" = getelementptr i8, i8* %"$msgobj_5982", i32 25 - %"$msgobj_v_5990" = bitcast i8* %"$msgobj_v_5989" to %String* - store %String { i8* getelementptr inbounds ([17 x i8], [17 x i8]* @"$stringlit_5988", i32 0, i32 0), i32 17 }, %String* %"$msgobj_v_5990", align 8 - %"$msgobj_fname_5992" = getelementptr i8, i8* %"$msgobj_5982", i32 41 - %"$msgobj_fname_5993" = bitcast i8* %"$msgobj_fname_5992" to %String* - store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_5991", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_5993", align 8 - %"$msgobj_td_5994" = getelementptr i8, i8* %"$msgobj_5982", i32 57 - %"$msgobj_td_5995" = bitcast i8* %"$msgobj_td_5994" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Bystr32_456", %_TyDescrTy_Typ** %"$msgobj_td_5995", align 8 - %"$msgobj_v_5996" = getelementptr i8, i8* %"$msgobj_5982", i32 65 - %"$msgobj_v_5997" = bitcast i8* %"$msgobj_v_5996" to [32 x i8]* - store [32 x i8] %node, [32 x i8]* %"$msgobj_v_5997", align 1 - %"$msgobj_fname_5999" = getelementptr i8, i8* %"$msgobj_5982", i32 97 - %"$msgobj_fname_6000" = bitcast i8* %"$msgobj_fname_5999" to %String* - store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_5998", i32 0, i32 0), i32 5 }, %String* %"$msgobj_fname_6000", align 8 - %"$msgobj_td_6001" = getelementptr i8, i8* %"$msgobj_5982", i32 113 - %"$msgobj_td_6002" = bitcast i8* %"$msgobj_td_6001" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_458", %_TyDescrTy_Typ** %"$msgobj_td_6002", align 8 - %"$msgobj_v_6003" = getelementptr i8, i8* %"$msgobj_5982", i32 121 - %"$msgobj_v_6004" = bitcast i8* %"$msgobj_v_6003" to [20 x i8]* - store [20 x i8] %owner, [20 x i8]* %"$msgobj_v_6004", align 1 - %"$msgobj_fname_6006" = getelementptr i8, i8* %"$msgobj_5982", i32 141 - %"$msgobj_fname_6007" = bitcast i8* %"$msgobj_fname_6006" to %String* - store %String { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$stringlit_6005", i32 0, i32 0), i32 7 }, %String* %"$msgobj_fname_6007", align 8 - %"$msgobj_td_6008" = getelementptr i8, i8* %"$msgobj_5982", i32 157 - %"$msgobj_td_6009" = bitcast i8* %"$msgobj_td_6008" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Uint128_434", %_TyDescrTy_Typ** %"$msgobj_td_6009", align 8 - %"$msgobj_v_6010" = getelementptr i8, i8* %"$msgobj_5982", i32 165 - %"$msgobj_v_6011" = bitcast i8* %"$msgobj_v_6010" to %Uint128* - store %Uint128 zeroinitializer, %Uint128* %"$msgobj_v_6011", align 8 - %"$msgobj_fname_6013" = getelementptr i8, i8* %"$msgobj_5982", i32 181 - %"$msgobj_fname_6014" = bitcast i8* %"$msgobj_fname_6013" to %String* - store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_6012", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_6014", align 8 - %"$msgobj_td_6015" = getelementptr i8, i8* %"$msgobj_5982", i32 197 - %"$msgobj_td_6016" = bitcast i8* %"$msgobj_td_6015" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_458", %_TyDescrTy_Typ** %"$msgobj_td_6016", align 8 - %"$msgobj_v_6017" = getelementptr i8, i8* %"$msgobj_5982", i32 205 - %"$msgobj_v_6018" = bitcast i8* %"$msgobj_v_6017" to [20 x i8]* - store [20 x i8] %_sender, [20 x i8]* %"$msgobj_v_6018", align 1 - store i8* %"$msgobj_5982", i8** %"$m_20", align 8, !dbg !586 - %"$gasrem_6020" = load i64, i64* @_gasrem, align 8 - %"$gascmp_6021" = icmp ugt i64 1, %"$gasrem_6020" - br i1 %"$gascmp_6021", label %"$out_of_gas_6022", label %"$have_gas_6023" - -"$out_of_gas_6022": ; preds = %"$have_gas_5980" - call void @_out_of_gas() - br label %"$have_gas_6023" - -"$have_gas_6023": ; preds = %"$out_of_gas_6022", %"$have_gas_5980" - %"$consume_6024" = sub i64 %"$gasrem_6020", 1 - store i64 %"$consume_6024", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata i8** %"$m_20", metadata !1084, metadata !DIExpression()), !dbg !1085 + %"$gasrem_6077" = load i64, i64* @_gasrem, align 8 + %"$gascmp_6078" = icmp ugt i64 1, %"$gasrem_6077" + br i1 %"$gascmp_6078", label %"$out_of_gas_6079", label %"$have_gas_6080" + +"$out_of_gas_6079": ; preds = %"$have_gas_6075" + call void @_out_of_gas() + br label %"$have_gas_6080" + +"$have_gas_6080": ; preds = %"$out_of_gas_6079", %"$have_gas_6075" + %"$consume_6081" = sub i64 %"$gasrem_6077", 1 + store i64 %"$consume_6081", i64* @_gasrem, align 8 + %"$msgobj_6082_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$msgobj_6082_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_6082_salloc_load", i64 225) + %"$msgobj_6082_salloc" = bitcast i8* %"$msgobj_6082_salloc_salloc" to [225 x i8]* + %"$msgobj_6082" = bitcast [225 x i8]* %"$msgobj_6082_salloc" to i8* + store i8 5, i8* %"$msgobj_6082", align 1 + %"$msgobj_fname_6084" = getelementptr i8, i8* %"$msgobj_6082", i32 1 + %"$msgobj_fname_6085" = bitcast i8* %"$msgobj_fname_6084" to %String* + store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_6083", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_6085", align 8 + %"$msgobj_td_6086" = getelementptr i8, i8* %"$msgobj_6082", i32 17 + %"$msgobj_td_6087" = bitcast i8* %"$msgobj_td_6086" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_String_440", %_TyDescrTy_Typ** %"$msgobj_td_6087", align 8 + %"$msgobj_v_6089" = getelementptr i8, i8* %"$msgobj_6082", i32 25 + %"$msgobj_v_6090" = bitcast i8* %"$msgobj_v_6089" to %String* + store %String { i8* getelementptr inbounds ([17 x i8], [17 x i8]* @"$stringlit_6088", i32 0, i32 0), i32 17 }, %String* %"$msgobj_v_6090", align 8 + %"$msgobj_fname_6092" = getelementptr i8, i8* %"$msgobj_6082", i32 41 + %"$msgobj_fname_6093" = bitcast i8* %"$msgobj_fname_6092" to %String* + store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_6091", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_6093", align 8 + %"$msgobj_td_6094" = getelementptr i8, i8* %"$msgobj_6082", i32 57 + %"$msgobj_td_6095" = bitcast i8* %"$msgobj_td_6094" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Bystr32_456", %_TyDescrTy_Typ** %"$msgobj_td_6095", align 8 + %"$msgobj_v_6096" = getelementptr i8, i8* %"$msgobj_6082", i32 65 + %"$msgobj_v_6097" = bitcast i8* %"$msgobj_v_6096" to [32 x i8]* + store [32 x i8] %node, [32 x i8]* %"$msgobj_v_6097", align 1 + %"$msgobj_fname_6099" = getelementptr i8, i8* %"$msgobj_6082", i32 97 + %"$msgobj_fname_6100" = bitcast i8* %"$msgobj_fname_6099" to %String* + store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_6098", i32 0, i32 0), i32 5 }, %String* %"$msgobj_fname_6100", align 8 + %"$msgobj_td_6101" = getelementptr i8, i8* %"$msgobj_6082", i32 113 + %"$msgobj_td_6102" = bitcast i8* %"$msgobj_td_6101" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_458", %_TyDescrTy_Typ** %"$msgobj_td_6102", align 8 + %"$msgobj_v_6103" = getelementptr i8, i8* %"$msgobj_6082", i32 121 + %"$msgobj_v_6104" = bitcast i8* %"$msgobj_v_6103" to [20 x i8]* + store [20 x i8] %owner, [20 x i8]* %"$msgobj_v_6104", align 1 + %"$msgobj_fname_6106" = getelementptr i8, i8* %"$msgobj_6082", i32 141 + %"$msgobj_fname_6107" = bitcast i8* %"$msgobj_fname_6106" to %String* + store %String { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$stringlit_6105", i32 0, i32 0), i32 7 }, %String* %"$msgobj_fname_6107", align 8 + %"$msgobj_td_6108" = getelementptr i8, i8* %"$msgobj_6082", i32 157 + %"$msgobj_td_6109" = bitcast i8* %"$msgobj_td_6108" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Uint128_434", %_TyDescrTy_Typ** %"$msgobj_td_6109", align 8 + %"$msgobj_v_6110" = getelementptr i8, i8* %"$msgobj_6082", i32 165 + %"$msgobj_v_6111" = bitcast i8* %"$msgobj_v_6110" to %Uint128* + store %Uint128 zeroinitializer, %Uint128* %"$msgobj_v_6111", align 8 + %"$msgobj_fname_6113" = getelementptr i8, i8* %"$msgobj_6082", i32 181 + %"$msgobj_fname_6114" = bitcast i8* %"$msgobj_fname_6113" to %String* + store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_6112", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_6114", align 8 + %"$msgobj_td_6115" = getelementptr i8, i8* %"$msgobj_6082", i32 197 + %"$msgobj_td_6116" = bitcast i8* %"$msgobj_td_6115" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_458", %_TyDescrTy_Typ** %"$msgobj_td_6116", align 8 + %"$msgobj_v_6117" = getelementptr i8, i8* %"$msgobj_6082", i32 205 + %"$msgobj_v_6118" = bitcast i8* %"$msgobj_v_6117" to [20 x i8]* + store [20 x i8] %_sender, [20 x i8]* %"$msgobj_v_6118", align 1 + store i8* %"$msgobj_6082", i8** %"$m_20", align 8, !dbg !1086 + %"$gasrem_6120" = load i64, i64* @_gasrem, align 8 + %"$gascmp_6121" = icmp ugt i64 1, %"$gasrem_6120" + br i1 %"$gascmp_6121", label %"$out_of_gas_6122", label %"$have_gas_6123" + +"$out_of_gas_6122": ; preds = %"$have_gas_6080" + call void @_out_of_gas() + br label %"$have_gas_6123" + +"$have_gas_6123": ; preds = %"$out_of_gas_6122", %"$have_gas_6080" + %"$consume_6124" = sub i64 %"$gasrem_6120", 1 + store i64 %"$consume_6124", i64* @_gasrem, align 8 %"$ud-registry.oneMsg_146" = alloca %TName_List_Message*, align 8 - %"$ud-registry.oneMsg_6025" = load { %TName_List_Message* (i8*, i8*)*, i8* }, { %TName_List_Message* (i8*, i8*)*, i8* }* @ud-registry.oneMsg, align 8 - %"$ud-registry.oneMsg_fptr_6026" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$ud-registry.oneMsg_6025", 0 - %"$ud-registry.oneMsg_envptr_6027" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$ud-registry.oneMsg_6025", 1 - %"$$m_20_6028" = load i8*, i8** %"$m_20", align 8 - %"$ud-registry.oneMsg_call_6029" = call %TName_List_Message* %"$ud-registry.oneMsg_fptr_6026"(i8* %"$ud-registry.oneMsg_envptr_6027", i8* %"$$m_20_6028"), !dbg !587 - store %TName_List_Message* %"$ud-registry.oneMsg_call_6029", %TName_List_Message** %"$ud-registry.oneMsg_146", align 8, !dbg !587 - %"$$ud-registry.oneMsg_146_6030" = load %TName_List_Message*, %TName_List_Message** %"$ud-registry.oneMsg_146", align 8 - store %TName_List_Message* %"$$ud-registry.oneMsg_146_6030", %TName_List_Message** %msgs7, align 8, !dbg !587 - %"$msgs_6031" = load %TName_List_Message*, %TName_List_Message** %msgs7, align 8 - %"$$msgs_6031_6032" = bitcast %TName_List_Message* %"$msgs_6031" to i8* - %"$_literal_cost_call_6033" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_467", i8* %"$$msgs_6031_6032") - %"$gasrem_6034" = load i64, i64* @_gasrem, align 8 - %"$gascmp_6035" = icmp ugt i64 %"$_literal_cost_call_6033", %"$gasrem_6034" - br i1 %"$gascmp_6035", label %"$out_of_gas_6036", label %"$have_gas_6037" - -"$out_of_gas_6036": ; preds = %"$have_gas_6023" - call void @_out_of_gas() - br label %"$have_gas_6037" - -"$have_gas_6037": ; preds = %"$out_of_gas_6036", %"$have_gas_6023" - %"$consume_6038" = sub i64 %"$gasrem_6034", %"$_literal_cost_call_6033" - store i64 %"$consume_6038", i64* @_gasrem, align 8 - %"$execptr_load_6039" = load i8*, i8** @_execptr, align 8 - %"$msgs_6040" = load %TName_List_Message*, %TName_List_Message** %msgs7, align 8 - call void @_send(i8* %"$execptr_load_6039", %_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_467", %TName_List_Message* %"$msgs_6040"), !dbg !588 - br label %"$matchsucc_5770" - -"$empty_default_5774": ; preds = %"$have_gas_5768" - br label %"$matchsucc_5770" - -"$matchsucc_5770": ; preds = %"$have_gas_6037", %"$have_gas_5924", %"$empty_default_5774" + call void @llvm.dbg.declare(metadata %TName_List_Message** %"$ud-registry.oneMsg_146", metadata !1087, metadata !DIExpression()), !dbg !1088 + %"$ud-registry.oneMsg_6125" = load { %TName_List_Message* (i8*, i8*)*, i8* }, { %TName_List_Message* (i8*, i8*)*, i8* }* @ud-registry.oneMsg, align 8 + %"$ud-registry.oneMsg_fptr_6126" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$ud-registry.oneMsg_6125", 0 + %"$ud-registry.oneMsg_envptr_6127" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$ud-registry.oneMsg_6125", 1 + %"$$m_20_6128" = load i8*, i8** %"$m_20", align 8 + %"$ud-registry.oneMsg_call_6129" = call %TName_List_Message* %"$ud-registry.oneMsg_fptr_6126"(i8* %"$ud-registry.oneMsg_envptr_6127", i8* %"$$m_20_6128"), !dbg !1088 + store %TName_List_Message* %"$ud-registry.oneMsg_call_6129", %TName_List_Message** %"$ud-registry.oneMsg_146", align 8, !dbg !1088 + %"$$ud-registry.oneMsg_146_6130" = load %TName_List_Message*, %TName_List_Message** %"$ud-registry.oneMsg_146", align 8 + store %TName_List_Message* %"$$ud-registry.oneMsg_146_6130", %TName_List_Message** %msgs7, align 8, !dbg !1088 + %"$msgs_6131" = load %TName_List_Message*, %TName_List_Message** %msgs7, align 8 + %"$$msgs_6131_6132" = bitcast %TName_List_Message* %"$msgs_6131" to i8* + %"$_literal_cost_call_6133" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_467", i8* %"$$msgs_6131_6132") + %"$gasrem_6134" = load i64, i64* @_gasrem, align 8 + %"$gascmp_6135" = icmp ugt i64 %"$_literal_cost_call_6133", %"$gasrem_6134" + br i1 %"$gascmp_6135", label %"$out_of_gas_6136", label %"$have_gas_6137" + +"$out_of_gas_6136": ; preds = %"$have_gas_6123" + call void @_out_of_gas() + br label %"$have_gas_6137" + +"$have_gas_6137": ; preds = %"$out_of_gas_6136", %"$have_gas_6123" + %"$consume_6138" = sub i64 %"$gasrem_6134", %"$_literal_cost_call_6133" + store i64 %"$consume_6138", i64* @_gasrem, align 8 + %"$execptr_load_6139" = load i8*, i8** @_execptr, align 8 + %"$msgs_6140" = load %TName_List_Message*, %TName_List_Message** %msgs7, align 8 + call void @_send(i8* %"$execptr_load_6139", %_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_467", %TName_List_Message* %"$msgs_6140"), !dbg !1089 + br label %"$matchsucc_5870" + +"$empty_default_5874": ; preds = %"$have_gas_5868" + br label %"$matchsucc_5870" + +"$matchsucc_5870": ; preds = %"$have_gas_6137", %"$have_gas_6024", %"$empty_default_5874" ret void } -define void @transfer(i8* %0) !dbg !589 { -entry: - %"$_amount_6042" = getelementptr i8, i8* %0, i32 0 - %"$_amount_6043" = bitcast i8* %"$_amount_6042" to %Uint128* - %_amount = load %Uint128, %Uint128* %"$_amount_6043", align 8 - %"$_origin_6044" = getelementptr i8, i8* %0, i32 16 - %"$_origin_6045" = bitcast i8* %"$_origin_6044" to [20 x i8]* - %"$_sender_6046" = getelementptr i8, i8* %0, i32 36 - %"$_sender_6047" = bitcast i8* %"$_sender_6046" to [20 x i8]* - %"$node_6048" = getelementptr i8, i8* %0, i32 56 - %"$node_6049" = bitcast i8* %"$node_6048" to [32 x i8]* - %"$owner_6050" = getelementptr i8, i8* %0, i32 88 - %"$owner_6051" = bitcast i8* %"$owner_6050" to [20 x i8]* - call void @"$transfer_5662"(%Uint128 %_amount, [20 x i8]* %"$_origin_6045", [20 x i8]* %"$_sender_6047", [32 x i8]* %"$node_6049", [20 x i8]* %"$owner_6051"), !dbg !590 +define void @transfer(i8* %0) !dbg !1090 { +entry: + %"$_amount_6147" = getelementptr i8, i8* %0, i32 0 + %"$_amount_6148" = bitcast i8* %"$_amount_6147" to %Uint128* + %_amount = load %Uint128, %Uint128* %"$_amount_6148", align 8 + %"$_origin_6149" = getelementptr i8, i8* %0, i32 16 + %"$_origin_6150" = bitcast i8* %"$_origin_6149" to [20 x i8]* + %"$_sender_6151" = getelementptr i8, i8* %0, i32 36 + %"$_sender_6152" = bitcast i8* %"$_sender_6151" to [20 x i8]* + %"$node_6153" = getelementptr i8, i8* %0, i32 56 + %"$node_6154" = bitcast i8* %"$node_6153" to [32 x i8]* + %"$owner_6155" = getelementptr i8, i8* %0, i32 88 + %"$owner_6156" = bitcast i8* %"$owner_6155" to [20 x i8]* + call void @"$transfer_5762"(%Uint128 %_amount, [20 x i8]* %"$_origin_6150", [20 x i8]* %"$_sender_6152", [32 x i8]* %"$node_6154", [20 x i8]* %"$owner_6156"), !dbg !1091 ret void } -define internal void @"$assign_6052"(%Uint128 %_amount, [20 x i8]* %"$_origin_6053", [20 x i8]* %"$_sender_6054", [32 x i8]* %"$parent_6055", %String %label, [20 x i8]* %"$owner_6056") !dbg !591 { -entry: - %_origin = load [20 x i8], [20 x i8]* %"$_origin_6053", align 1 - %_sender = load [20 x i8], [20 x i8]* %"$_sender_6054", align 1 - %parent = load [32 x i8], [32 x i8]* %"$parent_6055", align 1 - %owner = load [20 x i8], [20 x i8]* %"$owner_6056", align 1 +define internal void @"$assign_6157"(%Uint128 %_amount, [20 x i8]* %"$_origin_6158", [20 x i8]* %"$_sender_6159", [32 x i8]* %"$parent_6160", %String %label, [20 x i8]* %"$owner_6161") !dbg !1092 { +entry: + %"$owner_6639" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$owner_6161", [20 x i8]** %"$owner_6639", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$owner_6639", metadata !1093, metadata !DIExpression()), !dbg !1094 + %"$label_6638" = alloca %String, align 8 + store %String %label, %String* %"$label_6638", align 8 + call void @llvm.dbg.declare(metadata %String* %"$label_6638", metadata !1095, metadata !DIExpression()), !dbg !1096 + %"$parent_6637" = alloca [32 x i8]*, align 8 + store [32 x i8]* %"$parent_6160", [32 x i8]** %"$parent_6637", align 8 + call void @llvm.dbg.declare(metadata [32 x i8]** %"$parent_6637", metadata !1097, metadata !DIExpression()), !dbg !1098 + %"$_sender_6636" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_sender_6159", [20 x i8]** %"$_sender_6636", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_sender_6636", metadata !1099, metadata !DIExpression()), !dbg !1100 + %"$_origin_6635" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_origin_6158", [20 x i8]** %"$_origin_6635", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_origin_6635", metadata !1101, metadata !DIExpression()), !dbg !1100 + %"$_amount_6634" = alloca %Uint128, align 8 + store %Uint128 %_amount, %Uint128* %"$_amount_6634", align 8 + call void @llvm.dbg.declare(metadata %Uint128* %"$_amount_6634", metadata !1102, metadata !DIExpression()), !dbg !1100 + %_origin = load [20 x i8], [20 x i8]* %"$_origin_6158", align 1 + %_sender = load [20 x i8], [20 x i8]* %"$_sender_6159", align 1 + %parent = load [32 x i8], [32 x i8]* %"$parent_6160", align 1 + %owner = load [20 x i8], [20 x i8]* %"$owner_6161", align 1 %maybeRecord = alloca %TName_Option_ud-registry.Record*, align 8 - %"$indices_buf_6057_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$indices_buf_6057_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_6057_salloc_load", i64 32) - %"$indices_buf_6057_salloc" = bitcast i8* %"$indices_buf_6057_salloc_salloc" to [32 x i8]* - %"$indices_buf_6057" = bitcast [32 x i8]* %"$indices_buf_6057_salloc" to i8* - %"$indices_gep_6058" = getelementptr i8, i8* %"$indices_buf_6057", i32 0 - %indices_cast = bitcast i8* %"$indices_gep_6058" to [32 x i8]* + call void @llvm.dbg.declare(metadata %TName_Option_ud-registry.Record** %maybeRecord, metadata !1103, metadata !DIExpression()), !dbg !1104 + %"$indices_buf_6162_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$indices_buf_6162_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_6162_salloc_load", i64 32) + %"$indices_buf_6162_salloc" = bitcast i8* %"$indices_buf_6162_salloc_salloc" to [32 x i8]* + %"$indices_buf_6162" = bitcast [32 x i8]* %"$indices_buf_6162_salloc" to i8* + %"$indices_gep_6163" = getelementptr i8, i8* %"$indices_buf_6162", i32 0 + %indices_cast = bitcast i8* %"$indices_gep_6163" to [32 x i8]* store [32 x i8] %parent, [32 x i8]* %indices_cast, align 1 - %"$execptr_load_6060" = load i8*, i8** @_execptr, align 8 - %"$maybeRecord_call_6061" = call i8* @_fetch_field(i8* %"$execptr_load_6060", i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$records_6059", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_472", i32 1, i8* %"$indices_buf_6057", i32 1), !dbg !592 - %"$maybeRecord_6062" = bitcast i8* %"$maybeRecord_call_6061" to %TName_Option_ud-registry.Record* - store %TName_Option_ud-registry.Record* %"$maybeRecord_6062", %TName_Option_ud-registry.Record** %maybeRecord, align 8 - %"$maybeRecord_6063" = load %TName_Option_ud-registry.Record*, %TName_Option_ud-registry.Record** %maybeRecord, align 8 - %"$$maybeRecord_6063_6064" = bitcast %TName_Option_ud-registry.Record* %"$maybeRecord_6063" to i8* - %"$_literal_cost_call_6065" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_ud-registry.Record_463", i8* %"$$maybeRecord_6063_6064") - %"$gasadd_6066" = add i64 %"$_literal_cost_call_6065", 0 - %"$gasadd_6067" = add i64 %"$gasadd_6066", 1 - %"$gasrem_6068" = load i64, i64* @_gasrem, align 8 - %"$gascmp_6069" = icmp ugt i64 %"$gasadd_6067", %"$gasrem_6068" - br i1 %"$gascmp_6069", label %"$out_of_gas_6070", label %"$have_gas_6071" - -"$out_of_gas_6070": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_6071" - -"$have_gas_6071": ; preds = %"$out_of_gas_6070", %entry - %"$consume_6072" = sub i64 %"$gasrem_6068", %"$gasadd_6067" - store i64 %"$consume_6072", i64* @_gasrem, align 8 + %"$execptr_load_6165" = load i8*, i8** @_execptr, align 8 + %"$maybeRecord_call_6166" = call i8* @_fetch_field(i8* %"$execptr_load_6165", i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$records_6164", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_472", i32 1, i8* %"$indices_buf_6162", i32 1), !dbg !1104 + %"$maybeRecord_6167" = bitcast i8* %"$maybeRecord_call_6166" to %TName_Option_ud-registry.Record* + store %TName_Option_ud-registry.Record* %"$maybeRecord_6167", %TName_Option_ud-registry.Record** %maybeRecord, align 8 + %"$maybeRecord_6168" = load %TName_Option_ud-registry.Record*, %TName_Option_ud-registry.Record** %maybeRecord, align 8 + %"$$maybeRecord_6168_6169" = bitcast %TName_Option_ud-registry.Record* %"$maybeRecord_6168" to i8* + %"$_literal_cost_call_6170" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_ud-registry.Record_463", i8* %"$$maybeRecord_6168_6169") + %"$gasadd_6171" = add i64 %"$_literal_cost_call_6170", 0 + %"$gasadd_6172" = add i64 %"$gasadd_6171", 1 + %"$gasrem_6173" = load i64, i64* @_gasrem, align 8 + %"$gascmp_6174" = icmp ugt i64 %"$gasadd_6172", %"$gasrem_6173" + br i1 %"$gascmp_6174", label %"$out_of_gas_6175", label %"$have_gas_6176" + +"$out_of_gas_6175": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_6176" + +"$have_gas_6176": ; preds = %"$out_of_gas_6175", %entry + %"$consume_6177" = sub i64 %"$gasrem_6173", %"$gasadd_6172" + store i64 %"$consume_6177", i64* @_gasrem, align 8 %maybeApproved = alloca %TName_Option_ByStr20*, align 8 - %"$indices_buf_6073_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$indices_buf_6073_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_6073_salloc_load", i64 32) - %"$indices_buf_6073_salloc" = bitcast i8* %"$indices_buf_6073_salloc_salloc" to [32 x i8]* - %"$indices_buf_6073" = bitcast [32 x i8]* %"$indices_buf_6073_salloc" to i8* - %"$indices_gep_6074" = getelementptr i8, i8* %"$indices_buf_6073", i32 0 - %indices_cast1 = bitcast i8* %"$indices_gep_6074" to [32 x i8]* + call void @llvm.dbg.declare(metadata %TName_Option_ByStr20** %maybeApproved, metadata !1105, metadata !DIExpression()), !dbg !1106 + %"$indices_buf_6178_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$indices_buf_6178_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_6178_salloc_load", i64 32) + %"$indices_buf_6178_salloc" = bitcast i8* %"$indices_buf_6178_salloc_salloc" to [32 x i8]* + %"$indices_buf_6178" = bitcast [32 x i8]* %"$indices_buf_6178_salloc" to i8* + %"$indices_gep_6179" = getelementptr i8, i8* %"$indices_buf_6178", i32 0 + %indices_cast1 = bitcast i8* %"$indices_gep_6179" to [32 x i8]* store [32 x i8] %parent, [32 x i8]* %indices_cast1, align 1 - %"$execptr_load_6076" = load i8*, i8** @_execptr, align 8 - %"$maybeApproved_call_6077" = call i8* @_fetch_field(i8* %"$execptr_load_6076", i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$approvals_6075", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_471", i32 1, i8* %"$indices_buf_6073", i32 1), !dbg !593 - %"$maybeApproved_6078" = bitcast i8* %"$maybeApproved_call_6077" to %TName_Option_ByStr20* - store %TName_Option_ByStr20* %"$maybeApproved_6078", %TName_Option_ByStr20** %maybeApproved, align 8 - %"$maybeApproved_6079" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %maybeApproved, align 8 - %"$$maybeApproved_6079_6080" = bitcast %TName_Option_ByStr20* %"$maybeApproved_6079" to i8* - %"$_literal_cost_call_6081" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_ByStr20_464", i8* %"$$maybeApproved_6079_6080") - %"$gasadd_6082" = add i64 %"$_literal_cost_call_6081", 0 - %"$gasadd_6083" = add i64 %"$gasadd_6082", 1 - %"$gasrem_6084" = load i64, i64* @_gasrem, align 8 - %"$gascmp_6085" = icmp ugt i64 %"$gasadd_6083", %"$gasrem_6084" - br i1 %"$gascmp_6085", label %"$out_of_gas_6086", label %"$have_gas_6087" - -"$out_of_gas_6086": ; preds = %"$have_gas_6071" - call void @_out_of_gas() - br label %"$have_gas_6087" - -"$have_gas_6087": ; preds = %"$out_of_gas_6086", %"$have_gas_6071" - %"$consume_6088" = sub i64 %"$gasrem_6084", %"$gasadd_6083" - store i64 %"$consume_6088", i64* @_gasrem, align 8 - %"$gasrem_6089" = load i64, i64* @_gasrem, align 8 - %"$gascmp_6090" = icmp ugt i64 1, %"$gasrem_6089" - br i1 %"$gascmp_6090", label %"$out_of_gas_6091", label %"$have_gas_6092" - -"$out_of_gas_6091": ; preds = %"$have_gas_6087" - call void @_out_of_gas() - br label %"$have_gas_6092" - -"$have_gas_6092": ; preds = %"$out_of_gas_6091", %"$have_gas_6087" - %"$consume_6093" = sub i64 %"$gasrem_6089", 1 - store i64 %"$consume_6093", i64* @_gasrem, align 8 + %"$execptr_load_6181" = load i8*, i8** @_execptr, align 8 + %"$maybeApproved_call_6182" = call i8* @_fetch_field(i8* %"$execptr_load_6181", i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$approvals_6180", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_471", i32 1, i8* %"$indices_buf_6178", i32 1), !dbg !1106 + %"$maybeApproved_6183" = bitcast i8* %"$maybeApproved_call_6182" to %TName_Option_ByStr20* + store %TName_Option_ByStr20* %"$maybeApproved_6183", %TName_Option_ByStr20** %maybeApproved, align 8 + %"$maybeApproved_6184" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %maybeApproved, align 8 + %"$$maybeApproved_6184_6185" = bitcast %TName_Option_ByStr20* %"$maybeApproved_6184" to i8* + %"$_literal_cost_call_6186" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_ByStr20_464", i8* %"$$maybeApproved_6184_6185") + %"$gasadd_6187" = add i64 %"$_literal_cost_call_6186", 0 + %"$gasadd_6188" = add i64 %"$gasadd_6187", 1 + %"$gasrem_6189" = load i64, i64* @_gasrem, align 8 + %"$gascmp_6190" = icmp ugt i64 %"$gasadd_6188", %"$gasrem_6189" + br i1 %"$gascmp_6190", label %"$out_of_gas_6191", label %"$have_gas_6192" + +"$out_of_gas_6191": ; preds = %"$have_gas_6176" + call void @_out_of_gas() + br label %"$have_gas_6192" + +"$have_gas_6192": ; preds = %"$out_of_gas_6191", %"$have_gas_6176" + %"$consume_6193" = sub i64 %"$gasrem_6189", %"$gasadd_6188" + store i64 %"$consume_6193", i64* @_gasrem, align 8 + %"$gasrem_6194" = load i64, i64* @_gasrem, align 8 + %"$gascmp_6195" = icmp ugt i64 1, %"$gasrem_6194" + br i1 %"$gascmp_6195", label %"$out_of_gas_6196", label %"$have_gas_6197" + +"$out_of_gas_6196": ; preds = %"$have_gas_6192" + call void @_out_of_gas() + br label %"$have_gas_6197" + +"$have_gas_6197": ; preds = %"$out_of_gas_6196", %"$have_gas_6192" + %"$consume_6198" = sub i64 %"$gasrem_6194", 1 + store i64 %"$consume_6198", i64* @_gasrem, align 8 %recordOwner = alloca [20 x i8], align 1 - %"$gasrem_6094" = load i64, i64* @_gasrem, align 8 - %"$gascmp_6095" = icmp ugt i64 1, %"$gasrem_6094" - br i1 %"$gascmp_6095", label %"$out_of_gas_6096", label %"$have_gas_6097" + call void @llvm.dbg.declare(metadata [20 x i8]* %recordOwner, metadata !1107, metadata !DIExpression()), !dbg !1108 + %"$gasrem_6199" = load i64, i64* @_gasrem, align 8 + %"$gascmp_6200" = icmp ugt i64 1, %"$gasrem_6199" + br i1 %"$gascmp_6200", label %"$out_of_gas_6201", label %"$have_gas_6202" -"$out_of_gas_6096": ; preds = %"$have_gas_6092" +"$out_of_gas_6201": ; preds = %"$have_gas_6197" call void @_out_of_gas() - br label %"$have_gas_6097" + br label %"$have_gas_6202" -"$have_gas_6097": ; preds = %"$out_of_gas_6096", %"$have_gas_6092" - %"$consume_6098" = sub i64 %"$gasrem_6094", 1 - store i64 %"$consume_6098", i64* @_gasrem, align 8 +"$have_gas_6202": ; preds = %"$out_of_gas_6201", %"$have_gas_6197" + %"$consume_6203" = sub i64 %"$gasrem_6199", 1 + store i64 %"$consume_6203", i64* @_gasrem, align 8 %"$ud-registry.recordMemberOwner_167" = alloca [20 x i8], align 1 - %"$ud-registry.recordMemberOwner_6099" = 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_6100" = extractvalue { void (i8*, [20 x i8]*, %TName_Option_ud-registry.Record*)*, i8* } %"$ud-registry.recordMemberOwner_6099", 0 - %"$ud-registry.recordMemberOwner_envptr_6101" = extractvalue { void (i8*, [20 x i8]*, %TName_Option_ud-registry.Record*)*, i8* } %"$ud-registry.recordMemberOwner_6099", 1 - %"$maybeRecord_6102" = load %TName_Option_ud-registry.Record*, %TName_Option_ud-registry.Record** %maybeRecord, align 8 - %"$ud-registry.recordMemberOwner_retalloca_6103" = alloca [20 x i8], align 1 - call void %"$ud-registry.recordMemberOwner_fptr_6100"(i8* %"$ud-registry.recordMemberOwner_envptr_6101", [20 x i8]* %"$ud-registry.recordMemberOwner_retalloca_6103", %TName_Option_ud-registry.Record* %"$maybeRecord_6102"), !dbg !594 - %"$ud-registry.recordMemberOwner_ret_6104" = load [20 x i8], [20 x i8]* %"$ud-registry.recordMemberOwner_retalloca_6103", align 1 - store [20 x i8] %"$ud-registry.recordMemberOwner_ret_6104", [20 x i8]* %"$ud-registry.recordMemberOwner_167", align 1, !dbg !594 - %"$$ud-registry.recordMemberOwner_167_6105" = load [20 x i8], [20 x i8]* %"$ud-registry.recordMemberOwner_167", align 1 - store [20 x i8] %"$$ud-registry.recordMemberOwner_167_6105", [20 x i8]* %recordOwner, align 1, !dbg !594 + call void @llvm.dbg.declare(metadata [20 x i8]* %"$ud-registry.recordMemberOwner_167", metadata !1109, metadata !DIExpression()), !dbg !1110 + %"$ud-registry.recordMemberOwner_6204" = 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_6205" = extractvalue { void (i8*, [20 x i8]*, %TName_Option_ud-registry.Record*)*, i8* } %"$ud-registry.recordMemberOwner_6204", 0 + %"$ud-registry.recordMemberOwner_envptr_6206" = extractvalue { void (i8*, [20 x i8]*, %TName_Option_ud-registry.Record*)*, i8* } %"$ud-registry.recordMemberOwner_6204", 1 + %"$maybeRecord_6207" = load %TName_Option_ud-registry.Record*, %TName_Option_ud-registry.Record** %maybeRecord, align 8 + %"$ud-registry.recordMemberOwner_retalloca_6208" = alloca [20 x i8], align 1 + call void %"$ud-registry.recordMemberOwner_fptr_6205"(i8* %"$ud-registry.recordMemberOwner_envptr_6206", [20 x i8]* %"$ud-registry.recordMemberOwner_retalloca_6208", %TName_Option_ud-registry.Record* %"$maybeRecord_6207"), !dbg !1110 + %"$ud-registry.recordMemberOwner_ret_6209" = load [20 x i8], [20 x i8]* %"$ud-registry.recordMemberOwner_retalloca_6208", align 1 + store [20 x i8] %"$ud-registry.recordMemberOwner_ret_6209", [20 x i8]* %"$ud-registry.recordMemberOwner_167", align 1, !dbg !1110 + %"$$ud-registry.recordMemberOwner_167_6210" = load [20 x i8], [20 x i8]* %"$ud-registry.recordMemberOwner_167", align 1 + store [20 x i8] %"$$ud-registry.recordMemberOwner_167_6210", [20 x i8]* %recordOwner, align 1, !dbg !1110 %maybeOperators = alloca %"TName_Option_List_(ByStr20)"*, align 8 - %"$indices_buf_6106_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$indices_buf_6106_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_6106_salloc_load", i64 20) - %"$indices_buf_6106_salloc" = bitcast i8* %"$indices_buf_6106_salloc_salloc" to [20 x i8]* - %"$indices_buf_6106" = bitcast [20 x i8]* %"$indices_buf_6106_salloc" to i8* - %"$recordOwner_6107" = load [20 x i8], [20 x i8]* %recordOwner, align 1 - %"$indices_gep_6108" = getelementptr i8, i8* %"$indices_buf_6106", i32 0 - %indices_cast2 = bitcast i8* %"$indices_gep_6108" to [20 x i8]* - store [20 x i8] %"$recordOwner_6107", [20 x i8]* %indices_cast2, align 1 - %"$execptr_load_6110" = load i8*, i8** @_execptr, align 8 - %"$maybeOperators_call_6111" = call i8* @_fetch_field(i8* %"$execptr_load_6110", i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$operators_6109", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_470", i32 1, i8* %"$indices_buf_6106", i32 1), !dbg !595 - %"$maybeOperators_6112" = bitcast i8* %"$maybeOperators_call_6111" to %"TName_Option_List_(ByStr20)"* - store %"TName_Option_List_(ByStr20)"* %"$maybeOperators_6112", %"TName_Option_List_(ByStr20)"** %maybeOperators, align 8 - %"$maybeOperators_6113" = load %"TName_Option_List_(ByStr20)"*, %"TName_Option_List_(ByStr20)"** %maybeOperators, align 8 - %"$$maybeOperators_6113_6114" = bitcast %"TName_Option_List_(ByStr20)"* %"$maybeOperators_6113" to i8* - %"$_literal_cost_call_6115" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_List_(ByStr20)_462", i8* %"$$maybeOperators_6113_6114") - %"$gasadd_6116" = add i64 %"$_literal_cost_call_6115", 0 - %"$gasadd_6117" = add i64 %"$gasadd_6116", 1 - %"$gasrem_6118" = load i64, i64* @_gasrem, align 8 - %"$gascmp_6119" = icmp ugt i64 %"$gasadd_6117", %"$gasrem_6118" - br i1 %"$gascmp_6119", label %"$out_of_gas_6120", label %"$have_gas_6121" - -"$out_of_gas_6120": ; preds = %"$have_gas_6097" - call void @_out_of_gas() - br label %"$have_gas_6121" - -"$have_gas_6121": ; preds = %"$out_of_gas_6120", %"$have_gas_6097" - %"$consume_6122" = sub i64 %"$gasrem_6118", %"$gasadd_6117" - store i64 %"$consume_6122", i64* @_gasrem, align 8 - %"$gasrem_6123" = load i64, i64* @_gasrem, align 8 - %"$gascmp_6124" = icmp ugt i64 1, %"$gasrem_6123" - br i1 %"$gascmp_6124", label %"$out_of_gas_6125", label %"$have_gas_6126" - -"$out_of_gas_6125": ; preds = %"$have_gas_6121" - call void @_out_of_gas() - br label %"$have_gas_6126" - -"$have_gas_6126": ; preds = %"$out_of_gas_6125", %"$have_gas_6121" - %"$consume_6127" = sub i64 %"$gasrem_6123", 1 - store i64 %"$consume_6127", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %"TName_Option_List_(ByStr20)"** %maybeOperators, metadata !1111, metadata !DIExpression()), !dbg !1112 + %"$indices_buf_6211_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$indices_buf_6211_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_6211_salloc_load", i64 20) + %"$indices_buf_6211_salloc" = bitcast i8* %"$indices_buf_6211_salloc_salloc" to [20 x i8]* + %"$indices_buf_6211" = bitcast [20 x i8]* %"$indices_buf_6211_salloc" to i8* + %"$recordOwner_6212" = load [20 x i8], [20 x i8]* %recordOwner, align 1 + %"$indices_gep_6213" = getelementptr i8, i8* %"$indices_buf_6211", i32 0 + %indices_cast2 = bitcast i8* %"$indices_gep_6213" to [20 x i8]* + store [20 x i8] %"$recordOwner_6212", [20 x i8]* %indices_cast2, align 1 + %"$execptr_load_6215" = load i8*, i8** @_execptr, align 8 + %"$maybeOperators_call_6216" = call i8* @_fetch_field(i8* %"$execptr_load_6215", i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$operators_6214", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_470", i32 1, i8* %"$indices_buf_6211", i32 1), !dbg !1112 + %"$maybeOperators_6217" = bitcast i8* %"$maybeOperators_call_6216" to %"TName_Option_List_(ByStr20)"* + store %"TName_Option_List_(ByStr20)"* %"$maybeOperators_6217", %"TName_Option_List_(ByStr20)"** %maybeOperators, align 8 + %"$maybeOperators_6218" = load %"TName_Option_List_(ByStr20)"*, %"TName_Option_List_(ByStr20)"** %maybeOperators, align 8 + %"$$maybeOperators_6218_6219" = bitcast %"TName_Option_List_(ByStr20)"* %"$maybeOperators_6218" to i8* + %"$_literal_cost_call_6220" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_List_(ByStr20)_462", i8* %"$$maybeOperators_6218_6219") + %"$gasadd_6221" = add i64 %"$_literal_cost_call_6220", 0 + %"$gasadd_6222" = add i64 %"$gasadd_6221", 1 + %"$gasrem_6223" = load i64, i64* @_gasrem, align 8 + %"$gascmp_6224" = icmp ugt i64 %"$gasadd_6222", %"$gasrem_6223" + br i1 %"$gascmp_6224", label %"$out_of_gas_6225", label %"$have_gas_6226" + +"$out_of_gas_6225": ; preds = %"$have_gas_6202" + call void @_out_of_gas() + br label %"$have_gas_6226" + +"$have_gas_6226": ; preds = %"$out_of_gas_6225", %"$have_gas_6202" + %"$consume_6227" = sub i64 %"$gasrem_6223", %"$gasadd_6222" + store i64 %"$consume_6227", i64* @_gasrem, align 8 + %"$gasrem_6228" = load i64, i64* @_gasrem, align 8 + %"$gascmp_6229" = icmp ugt i64 1, %"$gasrem_6228" + br i1 %"$gascmp_6229", label %"$out_of_gas_6230", label %"$have_gas_6231" + +"$out_of_gas_6230": ; preds = %"$have_gas_6226" + call void @_out_of_gas() + br label %"$have_gas_6231" + +"$have_gas_6231": ; preds = %"$out_of_gas_6230", %"$have_gas_6226" + %"$consume_6232" = sub i64 %"$gasrem_6228", 1 + store i64 %"$consume_6232", i64* @_gasrem, align 8 %isSenderOAO = alloca %TName_Bool*, align 8 - %"$gasrem_6128" = load i64, i64* @_gasrem, align 8 - %"$gascmp_6129" = icmp ugt i64 1, %"$gasrem_6128" - br i1 %"$gascmp_6129", label %"$out_of_gas_6130", label %"$have_gas_6131" + call void @llvm.dbg.declare(metadata %TName_Bool** %isSenderOAO, metadata !1113, metadata !DIExpression()), !dbg !1114 + %"$gasrem_6233" = load i64, i64* @_gasrem, align 8 + %"$gascmp_6234" = icmp ugt i64 1, %"$gasrem_6233" + br i1 %"$gascmp_6234", label %"$out_of_gas_6235", label %"$have_gas_6236" -"$out_of_gas_6130": ; preds = %"$have_gas_6126" +"$out_of_gas_6235": ; preds = %"$have_gas_6231" call void @_out_of_gas() - br label %"$have_gas_6131" + br label %"$have_gas_6236" -"$have_gas_6131": ; preds = %"$out_of_gas_6130", %"$have_gas_6126" - %"$consume_6132" = sub i64 %"$gasrem_6128", 1 - store i64 %"$consume_6132", i64* @_gasrem, align 8 +"$have_gas_6236": ; preds = %"$out_of_gas_6235", %"$have_gas_6231" + %"$consume_6237" = sub i64 %"$gasrem_6233", 1 + store i64 %"$consume_6237", i64* @_gasrem, align 8 %"$ud-registry.getIsOAO_163" = alloca { { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* }, align 8 - %"$ud-registry.getIsOAO_6133" = 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_6134" = 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_6133", 0 - %"$ud-registry.getIsOAO_envptr_6135" = 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_6133", 1 - %"$ud-registry.getIsOAO__sender_6136" = alloca [20 x i8], align 1 - store [20 x i8] %_sender, [20 x i8]* %"$ud-registry.getIsOAO__sender_6136", align 1 - %"$ud-registry.getIsOAO_call_6137" = call { { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$ud-registry.getIsOAO_fptr_6134"(i8* %"$ud-registry.getIsOAO_envptr_6135", [20 x i8]* %"$ud-registry.getIsOAO__sender_6136"), !dbg !596 - store { { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$ud-registry.getIsOAO_call_6137", { { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* }* %"$ud-registry.getIsOAO_163", align 8, !dbg !596 + %"$ud-registry.getIsOAO_6238" = 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_6239" = 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_6238", 0 + %"$ud-registry.getIsOAO_envptr_6240" = 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_6238", 1 + %"$ud-registry.getIsOAO__sender_6241" = alloca [20 x i8], align 1 + store [20 x i8] %_sender, [20 x i8]* %"$ud-registry.getIsOAO__sender_6241", align 1 + %"$ud-registry.getIsOAO_call_6242" = call { { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$ud-registry.getIsOAO_fptr_6239"(i8* %"$ud-registry.getIsOAO_envptr_6240", [20 x i8]* %"$ud-registry.getIsOAO__sender_6241"), !dbg !1115 + store { { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$ud-registry.getIsOAO_call_6242", { { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* }* %"$ud-registry.getIsOAO_163", align 8, !dbg !1115 %"$ud-registry.getIsOAO_164" = alloca { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }, align 8 - %"$$ud-registry.getIsOAO_163_6138" = 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_163", align 8 - %"$$ud-registry.getIsOAO_163_fptr_6139" = extractvalue { { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.getIsOAO_163_6138", 0 - %"$$ud-registry.getIsOAO_163_envptr_6140" = extractvalue { { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.getIsOAO_163_6138", 1 - %"$$ud-registry.getIsOAO_163_recordOwner_6141" = alloca [20 x i8], align 1 - %"$recordOwner_6142" = load [20 x i8], [20 x i8]* %recordOwner, align 1 - store [20 x i8] %"$recordOwner_6142", [20 x i8]* %"$$ud-registry.getIsOAO_163_recordOwner_6141", align 1 - %"$$ud-registry.getIsOAO_163_call_6143" = call { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } %"$$ud-registry.getIsOAO_163_fptr_6139"(i8* %"$$ud-registry.getIsOAO_163_envptr_6140", [20 x i8]* %"$$ud-registry.getIsOAO_163_recordOwner_6141"), !dbg !596 - store { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } %"$$ud-registry.getIsOAO_163_call_6143", { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }* %"$ud-registry.getIsOAO_164", align 8, !dbg !596 + %"$$ud-registry.getIsOAO_163_6243" = 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_163", align 8 + %"$$ud-registry.getIsOAO_163_fptr_6244" = extractvalue { { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.getIsOAO_163_6243", 0 + %"$$ud-registry.getIsOAO_163_envptr_6245" = extractvalue { { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.getIsOAO_163_6243", 1 + %"$$ud-registry.getIsOAO_163_recordOwner_6246" = alloca [20 x i8], align 1 + %"$recordOwner_6247" = load [20 x i8], [20 x i8]* %recordOwner, align 1 + store [20 x i8] %"$recordOwner_6247", [20 x i8]* %"$$ud-registry.getIsOAO_163_recordOwner_6246", align 1 + %"$$ud-registry.getIsOAO_163_call_6248" = call { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } %"$$ud-registry.getIsOAO_163_fptr_6244"(i8* %"$$ud-registry.getIsOAO_163_envptr_6245", [20 x i8]* %"$$ud-registry.getIsOAO_163_recordOwner_6246"), !dbg !1115 + store { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } %"$$ud-registry.getIsOAO_163_call_6248", { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }* %"$ud-registry.getIsOAO_164", align 8, !dbg !1115 %"$ud-registry.getIsOAO_165" = alloca { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* }, align 8 - %"$$ud-registry.getIsOAO_164_6144" = 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_164", align 8 - %"$$ud-registry.getIsOAO_164_fptr_6145" = extractvalue { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } %"$$ud-registry.getIsOAO_164_6144", 0 - %"$$ud-registry.getIsOAO_164_envptr_6146" = extractvalue { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } %"$$ud-registry.getIsOAO_164_6144", 1 - %"$maybeApproved_6147" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %maybeApproved, align 8 - %"$$ud-registry.getIsOAO_164_call_6148" = call { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } %"$$ud-registry.getIsOAO_164_fptr_6145"(i8* %"$$ud-registry.getIsOAO_164_envptr_6146", %TName_Option_ByStr20* %"$maybeApproved_6147"), !dbg !596 - store { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } %"$$ud-registry.getIsOAO_164_call_6148", { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* }* %"$ud-registry.getIsOAO_165", align 8, !dbg !596 + %"$$ud-registry.getIsOAO_164_6249" = 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_164", align 8 + %"$$ud-registry.getIsOAO_164_fptr_6250" = extractvalue { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } %"$$ud-registry.getIsOAO_164_6249", 0 + %"$$ud-registry.getIsOAO_164_envptr_6251" = extractvalue { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } %"$$ud-registry.getIsOAO_164_6249", 1 + %"$maybeApproved_6252" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %maybeApproved, align 8 + %"$$ud-registry.getIsOAO_164_call_6253" = call { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } %"$$ud-registry.getIsOAO_164_fptr_6250"(i8* %"$$ud-registry.getIsOAO_164_envptr_6251", %TName_Option_ByStr20* %"$maybeApproved_6252"), !dbg !1115 + store { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } %"$$ud-registry.getIsOAO_164_call_6253", { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* }* %"$ud-registry.getIsOAO_165", align 8, !dbg !1115 %"$ud-registry.getIsOAO_166" = alloca %TName_Bool*, align 8 - %"$$ud-registry.getIsOAO_165_6149" = load { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* }, { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* }* %"$ud-registry.getIsOAO_165", align 8 - %"$$ud-registry.getIsOAO_165_fptr_6150" = extractvalue { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } %"$$ud-registry.getIsOAO_165_6149", 0 - %"$$ud-registry.getIsOAO_165_envptr_6151" = extractvalue { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } %"$$ud-registry.getIsOAO_165_6149", 1 - %"$maybeOperators_6152" = load %"TName_Option_List_(ByStr20)"*, %"TName_Option_List_(ByStr20)"** %maybeOperators, align 8 - %"$$ud-registry.getIsOAO_165_call_6153" = call %TName_Bool* %"$$ud-registry.getIsOAO_165_fptr_6150"(i8* %"$$ud-registry.getIsOAO_165_envptr_6151", %"TName_Option_List_(ByStr20)"* %"$maybeOperators_6152"), !dbg !596 - store %TName_Bool* %"$$ud-registry.getIsOAO_165_call_6153", %TName_Bool** %"$ud-registry.getIsOAO_166", align 8, !dbg !596 - %"$$ud-registry.getIsOAO_166_6154" = load %TName_Bool*, %TName_Bool** %"$ud-registry.getIsOAO_166", align 8 - store %TName_Bool* %"$$ud-registry.getIsOAO_166_6154", %TName_Bool** %isSenderOAO, align 8, !dbg !596 - %"$gasrem_6155" = load i64, i64* @_gasrem, align 8 - %"$gascmp_6156" = icmp ugt i64 2, %"$gasrem_6155" - br i1 %"$gascmp_6156", label %"$out_of_gas_6157", label %"$have_gas_6158" - -"$out_of_gas_6157": ; preds = %"$have_gas_6131" - call void @_out_of_gas() - br label %"$have_gas_6158" - -"$have_gas_6158": ; preds = %"$out_of_gas_6157", %"$have_gas_6131" - %"$consume_6159" = sub i64 %"$gasrem_6155", 2 - store i64 %"$consume_6159", i64* @_gasrem, align 8 - %"$isSenderOAO_6161" = load %TName_Bool*, %TName_Bool** %isSenderOAO, align 8 - %"$isSenderOAO_tag_6162" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$isSenderOAO_6161", i32 0, i32 0 - %"$isSenderOAO_tag_6163" = load i8, i8* %"$isSenderOAO_tag_6162", align 1 - switch i8 %"$isSenderOAO_tag_6163", label %"$empty_default_6164" [ - i8 0, label %"$True_6165" - i8 1, label %"$False_6408" - ], !dbg !597 - -"$True_6165": ; preds = %"$have_gas_6158" - %"$isSenderOAO_6166" = bitcast %TName_Bool* %"$isSenderOAO_6161" to %CName_True* - %"$gasrem_6167" = load i64, i64* @_gasrem, align 8 - %"$gascmp_6168" = icmp ugt i64 1, %"$gasrem_6167" - br i1 %"$gascmp_6168", label %"$out_of_gas_6169", label %"$have_gas_6170" - -"$out_of_gas_6169": ; preds = %"$True_6165" - call void @_out_of_gas() - br label %"$have_gas_6170" - -"$have_gas_6170": ; preds = %"$out_of_gas_6169", %"$True_6165" - %"$consume_6171" = sub i64 %"$gasrem_6167", 1 - store i64 %"$consume_6171", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$ud-registry.getIsOAO_166", metadata !1116, metadata !DIExpression()), !dbg !1115 + %"$$ud-registry.getIsOAO_165_6254" = load { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* }, { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* }* %"$ud-registry.getIsOAO_165", align 8 + %"$$ud-registry.getIsOAO_165_fptr_6255" = extractvalue { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } %"$$ud-registry.getIsOAO_165_6254", 0 + %"$$ud-registry.getIsOAO_165_envptr_6256" = extractvalue { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } %"$$ud-registry.getIsOAO_165_6254", 1 + %"$maybeOperators_6257" = load %"TName_Option_List_(ByStr20)"*, %"TName_Option_List_(ByStr20)"** %maybeOperators, align 8 + %"$$ud-registry.getIsOAO_165_call_6258" = call %TName_Bool* %"$$ud-registry.getIsOAO_165_fptr_6255"(i8* %"$$ud-registry.getIsOAO_165_envptr_6256", %"TName_Option_List_(ByStr20)"* %"$maybeOperators_6257"), !dbg !1115 + store %TName_Bool* %"$$ud-registry.getIsOAO_165_call_6258", %TName_Bool** %"$ud-registry.getIsOAO_166", align 8, !dbg !1115 + %"$$ud-registry.getIsOAO_166_6259" = load %TName_Bool*, %TName_Bool** %"$ud-registry.getIsOAO_166", align 8 + store %TName_Bool* %"$$ud-registry.getIsOAO_166_6259", %TName_Bool** %isSenderOAO, align 8, !dbg !1115 + %"$gasrem_6260" = load i64, i64* @_gasrem, align 8 + %"$gascmp_6261" = icmp ugt i64 2, %"$gasrem_6260" + br i1 %"$gascmp_6261", label %"$out_of_gas_6262", label %"$have_gas_6263" + +"$out_of_gas_6262": ; preds = %"$have_gas_6236" + call void @_out_of_gas() + br label %"$have_gas_6263" + +"$have_gas_6263": ; preds = %"$out_of_gas_6262", %"$have_gas_6236" + %"$consume_6264" = sub i64 %"$gasrem_6260", 2 + store i64 %"$consume_6264", i64* @_gasrem, align 8 + %"$isSenderOAO_6266" = load %TName_Bool*, %TName_Bool** %isSenderOAO, align 8 + %"$isSenderOAO_tag_6267" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$isSenderOAO_6266", i32 0, i32 0 + %"$isSenderOAO_tag_6268" = load i8, i8* %"$isSenderOAO_tag_6267", align 1 + switch i8 %"$isSenderOAO_tag_6268", label %"$empty_default_6269" [ + i8 0, label %"$True_6270" + i8 1, label %"$False_6513" + ], !dbg !1117 + +"$True_6270": ; preds = %"$have_gas_6263" + %"$isSenderOAO_6271" = bitcast %TName_Bool* %"$isSenderOAO_6266" to %CName_True* + %"$gasrem_6272" = load i64, i64* @_gasrem, align 8 + %"$gascmp_6273" = icmp ugt i64 1, %"$gasrem_6272" + br i1 %"$gascmp_6273", label %"$out_of_gas_6274", label %"$have_gas_6275" + +"$out_of_gas_6274": ; preds = %"$True_6270" + call void @_out_of_gas() + br label %"$have_gas_6275" + +"$have_gas_6275": ; preds = %"$out_of_gas_6274", %"$True_6270" + %"$consume_6276" = sub i64 %"$gasrem_6272", 1 + store i64 %"$consume_6276", i64* @_gasrem, align 8 %node = alloca [32 x i8], align 1 - %"$gasrem_6172" = load i64, i64* @_gasrem, align 8 - %"$gascmp_6173" = icmp ugt i64 1, %"$gasrem_6172" - br i1 %"$gascmp_6173", label %"$out_of_gas_6174", label %"$have_gas_6175" + call void @llvm.dbg.declare(metadata [32 x i8]* %node, metadata !1118, metadata !DIExpression()), !dbg !1121 + %"$gasrem_6277" = load i64, i64* @_gasrem, align 8 + %"$gascmp_6278" = icmp ugt i64 1, %"$gasrem_6277" + br i1 %"$gascmp_6278", label %"$out_of_gas_6279", label %"$have_gas_6280" -"$out_of_gas_6174": ; preds = %"$have_gas_6170" +"$out_of_gas_6279": ; preds = %"$have_gas_6275" call void @_out_of_gas() - br label %"$have_gas_6175" + br label %"$have_gas_6280" -"$have_gas_6175": ; preds = %"$out_of_gas_6174", %"$have_gas_6170" - %"$consume_6176" = sub i64 %"$gasrem_6172", 1 - store i64 %"$consume_6176", i64* @_gasrem, align 8 +"$have_gas_6280": ; preds = %"$out_of_gas_6279", %"$have_gas_6275" + %"$consume_6281" = sub i64 %"$gasrem_6277", 1 + store i64 %"$consume_6281", i64* @_gasrem, align 8 %"$ud-registry.parentLabelToNode_159" = alloca { void (i8*, [32 x i8]*, %String)*, i8* }, align 8 - %"$ud-registry.parentLabelToNode_6177" = 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_6178" = extractvalue { { void (i8*, [32 x i8]*, %String)*, i8* } (i8*, [32 x i8]*)*, i8* } %"$ud-registry.parentLabelToNode_6177", 0 - %"$ud-registry.parentLabelToNode_envptr_6179" = extractvalue { { void (i8*, [32 x i8]*, %String)*, i8* } (i8*, [32 x i8]*)*, i8* } %"$ud-registry.parentLabelToNode_6177", 1 - %"$ud-registry.parentLabelToNode_parent_6180" = alloca [32 x i8], align 1 - store [32 x i8] %parent, [32 x i8]* %"$ud-registry.parentLabelToNode_parent_6180", align 1 - %"$ud-registry.parentLabelToNode_call_6181" = call { void (i8*, [32 x i8]*, %String)*, i8* } %"$ud-registry.parentLabelToNode_fptr_6178"(i8* %"$ud-registry.parentLabelToNode_envptr_6179", [32 x i8]* %"$ud-registry.parentLabelToNode_parent_6180"), !dbg !598 - store { void (i8*, [32 x i8]*, %String)*, i8* } %"$ud-registry.parentLabelToNode_call_6181", { void (i8*, [32 x i8]*, %String)*, i8* }* %"$ud-registry.parentLabelToNode_159", align 8, !dbg !598 + %"$ud-registry.parentLabelToNode_6282" = 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_6283" = extractvalue { { void (i8*, [32 x i8]*, %String)*, i8* } (i8*, [32 x i8]*)*, i8* } %"$ud-registry.parentLabelToNode_6282", 0 + %"$ud-registry.parentLabelToNode_envptr_6284" = extractvalue { { void (i8*, [32 x i8]*, %String)*, i8* } (i8*, [32 x i8]*)*, i8* } %"$ud-registry.parentLabelToNode_6282", 1 + %"$ud-registry.parentLabelToNode_parent_6285" = alloca [32 x i8], align 1 + store [32 x i8] %parent, [32 x i8]* %"$ud-registry.parentLabelToNode_parent_6285", align 1 + %"$ud-registry.parentLabelToNode_call_6286" = call { void (i8*, [32 x i8]*, %String)*, i8* } %"$ud-registry.parentLabelToNode_fptr_6283"(i8* %"$ud-registry.parentLabelToNode_envptr_6284", [32 x i8]* %"$ud-registry.parentLabelToNode_parent_6285"), !dbg !1122 + store { void (i8*, [32 x i8]*, %String)*, i8* } %"$ud-registry.parentLabelToNode_call_6286", { void (i8*, [32 x i8]*, %String)*, i8* }* %"$ud-registry.parentLabelToNode_159", align 8, !dbg !1122 %"$ud-registry.parentLabelToNode_160" = alloca [32 x i8], align 1 - %"$$ud-registry.parentLabelToNode_159_6182" = load { void (i8*, [32 x i8]*, %String)*, i8* }, { void (i8*, [32 x i8]*, %String)*, i8* }* %"$ud-registry.parentLabelToNode_159", align 8 - %"$$ud-registry.parentLabelToNode_159_fptr_6183" = extractvalue { void (i8*, [32 x i8]*, %String)*, i8* } %"$$ud-registry.parentLabelToNode_159_6182", 0 - %"$$ud-registry.parentLabelToNode_159_envptr_6184" = extractvalue { void (i8*, [32 x i8]*, %String)*, i8* } %"$$ud-registry.parentLabelToNode_159_6182", 1 - %"$$ud-registry.parentLabelToNode_159_retalloca_6185" = alloca [32 x i8], align 1 - call void %"$$ud-registry.parentLabelToNode_159_fptr_6183"(i8* %"$$ud-registry.parentLabelToNode_159_envptr_6184", [32 x i8]* %"$$ud-registry.parentLabelToNode_159_retalloca_6185", %String %label), !dbg !598 - %"$$ud-registry.parentLabelToNode_159_ret_6186" = load [32 x i8], [32 x i8]* %"$$ud-registry.parentLabelToNode_159_retalloca_6185", align 1 - store [32 x i8] %"$$ud-registry.parentLabelToNode_159_ret_6186", [32 x i8]* %"$ud-registry.parentLabelToNode_160", align 1, !dbg !598 - %"$$ud-registry.parentLabelToNode_160_6187" = load [32 x i8], [32 x i8]* %"$ud-registry.parentLabelToNode_160", align 1 - store [32 x i8] %"$$ud-registry.parentLabelToNode_160_6187", [32 x i8]* %node, align 1, !dbg !598 + call void @llvm.dbg.declare(metadata [32 x i8]* %"$ud-registry.parentLabelToNode_160", metadata !1123, metadata !DIExpression()), !dbg !1122 + %"$$ud-registry.parentLabelToNode_159_6287" = load { void (i8*, [32 x i8]*, %String)*, i8* }, { void (i8*, [32 x i8]*, %String)*, i8* }* %"$ud-registry.parentLabelToNode_159", align 8 + %"$$ud-registry.parentLabelToNode_159_fptr_6288" = extractvalue { void (i8*, [32 x i8]*, %String)*, i8* } %"$$ud-registry.parentLabelToNode_159_6287", 0 + %"$$ud-registry.parentLabelToNode_159_envptr_6289" = extractvalue { void (i8*, [32 x i8]*, %String)*, i8* } %"$$ud-registry.parentLabelToNode_159_6287", 1 + %"$$ud-registry.parentLabelToNode_159_retalloca_6290" = alloca [32 x i8], align 1 + call void %"$$ud-registry.parentLabelToNode_159_fptr_6288"(i8* %"$$ud-registry.parentLabelToNode_159_envptr_6289", [32 x i8]* %"$$ud-registry.parentLabelToNode_159_retalloca_6290", %String %label), !dbg !1122 + %"$$ud-registry.parentLabelToNode_159_ret_6291" = load [32 x i8], [32 x i8]* %"$$ud-registry.parentLabelToNode_159_retalloca_6290", align 1 + store [32 x i8] %"$$ud-registry.parentLabelToNode_159_ret_6291", [32 x i8]* %"$ud-registry.parentLabelToNode_160", align 1, !dbg !1122 + %"$$ud-registry.parentLabelToNode_160_6292" = load [32 x i8], [32 x i8]* %"$ud-registry.parentLabelToNode_160", align 1 + store [32 x i8] %"$$ud-registry.parentLabelToNode_160_6292", [32 x i8]* %node, align 1, !dbg !1122 %recordExists = alloca %TName_Bool*, align 8 - %"$indices_buf_6188_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$indices_buf_6188_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_6188_salloc_load", i64 32) - %"$indices_buf_6188_salloc" = bitcast i8* %"$indices_buf_6188_salloc_salloc" to [32 x i8]* - %"$indices_buf_6188" = bitcast [32 x i8]* %"$indices_buf_6188_salloc" to i8* - %"$node_6189" = load [32 x i8], [32 x i8]* %node, align 1 - %"$indices_gep_6190" = getelementptr i8, i8* %"$indices_buf_6188", i32 0 - %indices_cast3 = bitcast i8* %"$indices_gep_6190" to [32 x i8]* - store [32 x i8] %"$node_6189", [32 x i8]* %indices_cast3, align 1 - %"$execptr_load_6192" = load i8*, i8** @_execptr, align 8 - %"$recordExists_call_6193" = call i8* @_fetch_field(i8* %"$execptr_load_6192", i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$records_6191", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_472", i32 1, i8* %"$indices_buf_6188", i32 0), !dbg !601 - %"$recordExists_6194" = bitcast i8* %"$recordExists_call_6193" to %TName_Bool* - store %TName_Bool* %"$recordExists_6194", %TName_Bool** %recordExists, align 8 - %"$recordExists_6195" = load %TName_Bool*, %TName_Bool** %recordExists, align 8 - %"$$recordExists_6195_6196" = bitcast %TName_Bool* %"$recordExists_6195" to i8* - %"$_literal_cost_call_6197" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_468", i8* %"$$recordExists_6195_6196") - %"$gasadd_6198" = add i64 %"$_literal_cost_call_6197", 0 - %"$gasadd_6199" = add i64 %"$gasadd_6198", 1 - %"$gasrem_6200" = load i64, i64* @_gasrem, align 8 - %"$gascmp_6201" = icmp ugt i64 %"$gasadd_6199", %"$gasrem_6200" - br i1 %"$gascmp_6201", label %"$out_of_gas_6202", label %"$have_gas_6203" - -"$out_of_gas_6202": ; preds = %"$have_gas_6175" - call void @_out_of_gas() - br label %"$have_gas_6203" - -"$have_gas_6203": ; preds = %"$out_of_gas_6202", %"$have_gas_6175" - %"$consume_6204" = sub i64 %"$gasrem_6200", %"$gasadd_6199" - store i64 %"$consume_6204", i64* @_gasrem, align 8 - %"$gasrem_6205" = load i64, i64* @_gasrem, align 8 - %"$gascmp_6206" = icmp ugt i64 2, %"$gasrem_6205" - br i1 %"$gascmp_6206", label %"$out_of_gas_6207", label %"$have_gas_6208" - -"$out_of_gas_6207": ; preds = %"$have_gas_6203" - call void @_out_of_gas() - br label %"$have_gas_6208" - -"$have_gas_6208": ; preds = %"$out_of_gas_6207", %"$have_gas_6203" - %"$consume_6209" = sub i64 %"$gasrem_6205", 2 - store i64 %"$consume_6209", i64* @_gasrem, align 8 - %"$recordExists_6211" = load %TName_Bool*, %TName_Bool** %recordExists, align 8 - %"$recordExists_tag_6212" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$recordExists_6211", i32 0, i32 0 - %"$recordExists_tag_6213" = load i8, i8* %"$recordExists_tag_6212", align 1 - switch i8 %"$recordExists_tag_6213", label %"$default_6214" [ - i8 1, label %"$False_6215" - ], !dbg !602 - -"$False_6215": ; preds = %"$have_gas_6208" - %"$recordExists_6216" = bitcast %TName_Bool* %"$recordExists_6211" to %CName_False* - %"$gasrem_6217" = load i64, i64* @_gasrem, align 8 - %"$gascmp_6218" = icmp ugt i64 1, %"$gasrem_6217" - br i1 %"$gascmp_6218", label %"$out_of_gas_6219", label %"$have_gas_6220" - -"$out_of_gas_6219": ; preds = %"$False_6215" - call void @_out_of_gas() - br label %"$have_gas_6220" - -"$have_gas_6220": ; preds = %"$out_of_gas_6219", %"$False_6215" - %"$consume_6221" = sub i64 %"$gasrem_6217", 1 - store i64 %"$consume_6221", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %recordExists, metadata !1124, metadata !DIExpression()), !dbg !1125 + %"$indices_buf_6293_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$indices_buf_6293_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_6293_salloc_load", i64 32) + %"$indices_buf_6293_salloc" = bitcast i8* %"$indices_buf_6293_salloc_salloc" to [32 x i8]* + %"$indices_buf_6293" = bitcast [32 x i8]* %"$indices_buf_6293_salloc" to i8* + %"$node_6294" = load [32 x i8], [32 x i8]* %node, align 1 + %"$indices_gep_6295" = getelementptr i8, i8* %"$indices_buf_6293", i32 0 + %indices_cast3 = bitcast i8* %"$indices_gep_6295" to [32 x i8]* + store [32 x i8] %"$node_6294", [32 x i8]* %indices_cast3, align 1 + %"$execptr_load_6297" = load i8*, i8** @_execptr, align 8 + %"$recordExists_call_6298" = call i8* @_fetch_field(i8* %"$execptr_load_6297", i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$records_6296", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_472", i32 1, i8* %"$indices_buf_6293", i32 0), !dbg !1125 + %"$recordExists_6299" = bitcast i8* %"$recordExists_call_6298" to %TName_Bool* + store %TName_Bool* %"$recordExists_6299", %TName_Bool** %recordExists, align 8 + %"$recordExists_6300" = load %TName_Bool*, %TName_Bool** %recordExists, align 8 + %"$$recordExists_6300_6301" = bitcast %TName_Bool* %"$recordExists_6300" to i8* + %"$_literal_cost_call_6302" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_468", i8* %"$$recordExists_6300_6301") + %"$gasadd_6303" = add i64 %"$_literal_cost_call_6302", 0 + %"$gasadd_6304" = add i64 %"$gasadd_6303", 1 + %"$gasrem_6305" = load i64, i64* @_gasrem, align 8 + %"$gascmp_6306" = icmp ugt i64 %"$gasadd_6304", %"$gasrem_6305" + br i1 %"$gascmp_6306", label %"$out_of_gas_6307", label %"$have_gas_6308" + +"$out_of_gas_6307": ; preds = %"$have_gas_6280" + call void @_out_of_gas() + br label %"$have_gas_6308" + +"$have_gas_6308": ; preds = %"$out_of_gas_6307", %"$have_gas_6280" + %"$consume_6309" = sub i64 %"$gasrem_6305", %"$gasadd_6304" + store i64 %"$consume_6309", i64* @_gasrem, align 8 + %"$gasrem_6310" = load i64, i64* @_gasrem, align 8 + %"$gascmp_6311" = icmp ugt i64 2, %"$gasrem_6310" + br i1 %"$gascmp_6311", label %"$out_of_gas_6312", label %"$have_gas_6313" + +"$out_of_gas_6312": ; preds = %"$have_gas_6308" + call void @_out_of_gas() + br label %"$have_gas_6313" + +"$have_gas_6313": ; preds = %"$out_of_gas_6312", %"$have_gas_6308" + %"$consume_6314" = sub i64 %"$gasrem_6310", 2 + store i64 %"$consume_6314", i64* @_gasrem, align 8 + %"$recordExists_6316" = load %TName_Bool*, %TName_Bool** %recordExists, align 8 + %"$recordExists_tag_6317" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$recordExists_6316", i32 0, i32 0 + %"$recordExists_tag_6318" = load i8, i8* %"$recordExists_tag_6317", align 1 + switch i8 %"$recordExists_tag_6318", label %"$default_6319" [ + i8 1, label %"$False_6320" + ], !dbg !1126 + +"$False_6320": ; preds = %"$have_gas_6313" + %"$recordExists_6321" = bitcast %TName_Bool* %"$recordExists_6316" to %CName_False* + %"$gasrem_6322" = load i64, i64* @_gasrem, align 8 + %"$gascmp_6323" = icmp ugt i64 1, %"$gasrem_6322" + br i1 %"$gascmp_6323", label %"$out_of_gas_6324", label %"$have_gas_6325" + +"$out_of_gas_6324": ; preds = %"$False_6320" + call void @_out_of_gas() + br label %"$have_gas_6325" + +"$have_gas_6325": ; preds = %"$out_of_gas_6324", %"$False_6320" + %"$consume_6326" = sub i64 %"$gasrem_6322", 1 + store i64 %"$consume_6326", i64* @_gasrem, align 8 %e = alloca i8*, align 8 - %"$gasrem_6222" = load i64, i64* @_gasrem, align 8 - %"$gascmp_6223" = icmp ugt i64 1, %"$gasrem_6222" - br i1 %"$gascmp_6223", label %"$out_of_gas_6224", label %"$have_gas_6225" + call void @llvm.dbg.declare(metadata i8** %e, metadata !1127, metadata !DIExpression()), !dbg !1130 + %"$gasrem_6327" = load i64, i64* @_gasrem, align 8 + %"$gascmp_6328" = icmp ugt i64 1, %"$gasrem_6327" + br i1 %"$gascmp_6328", label %"$out_of_gas_6329", label %"$have_gas_6330" -"$out_of_gas_6224": ; preds = %"$have_gas_6220" +"$out_of_gas_6329": ; preds = %"$have_gas_6325" call void @_out_of_gas() - br label %"$have_gas_6225" + br label %"$have_gas_6330" -"$have_gas_6225": ; preds = %"$out_of_gas_6224", %"$have_gas_6220" - %"$consume_6226" = sub i64 %"$gasrem_6222", 1 - store i64 %"$consume_6226", i64* @_gasrem, align 8 +"$have_gas_6330": ; preds = %"$out_of_gas_6329", %"$have_gas_6325" + %"$consume_6331" = sub i64 %"$gasrem_6327", 1 + store i64 %"$consume_6331", i64* @_gasrem, align 8 %"$ud-registry.eNewDomain_157" = alloca { i8* (i8*, %String)*, i8* }, align 8 - %"$ud-registry.eNewDomain_6227" = 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_6228" = extractvalue { { i8* (i8*, %String)*, i8* } (i8*, [32 x i8]*)*, i8* } %"$ud-registry.eNewDomain_6227", 0 - %"$ud-registry.eNewDomain_envptr_6229" = extractvalue { { i8* (i8*, %String)*, i8* } (i8*, [32 x i8]*)*, i8* } %"$ud-registry.eNewDomain_6227", 1 - %"$ud-registry.eNewDomain_parent_6230" = alloca [32 x i8], align 1 - store [32 x i8] %parent, [32 x i8]* %"$ud-registry.eNewDomain_parent_6230", align 1 - %"$ud-registry.eNewDomain_call_6231" = call { i8* (i8*, %String)*, i8* } %"$ud-registry.eNewDomain_fptr_6228"(i8* %"$ud-registry.eNewDomain_envptr_6229", [32 x i8]* %"$ud-registry.eNewDomain_parent_6230"), !dbg !603 - store { i8* (i8*, %String)*, i8* } %"$ud-registry.eNewDomain_call_6231", { i8* (i8*, %String)*, i8* }* %"$ud-registry.eNewDomain_157", align 8, !dbg !603 + %"$ud-registry.eNewDomain_6332" = 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_6333" = extractvalue { { i8* (i8*, %String)*, i8* } (i8*, [32 x i8]*)*, i8* } %"$ud-registry.eNewDomain_6332", 0 + %"$ud-registry.eNewDomain_envptr_6334" = extractvalue { { i8* (i8*, %String)*, i8* } (i8*, [32 x i8]*)*, i8* } %"$ud-registry.eNewDomain_6332", 1 + %"$ud-registry.eNewDomain_parent_6335" = alloca [32 x i8], align 1 + store [32 x i8] %parent, [32 x i8]* %"$ud-registry.eNewDomain_parent_6335", align 1 + %"$ud-registry.eNewDomain_call_6336" = call { i8* (i8*, %String)*, i8* } %"$ud-registry.eNewDomain_fptr_6333"(i8* %"$ud-registry.eNewDomain_envptr_6334", [32 x i8]* %"$ud-registry.eNewDomain_parent_6335"), !dbg !1131 + store { i8* (i8*, %String)*, i8* } %"$ud-registry.eNewDomain_call_6336", { i8* (i8*, %String)*, i8* }* %"$ud-registry.eNewDomain_157", align 8, !dbg !1131 %"$ud-registry.eNewDomain_158" = alloca i8*, align 8 - %"$$ud-registry.eNewDomain_157_6232" = load { i8* (i8*, %String)*, i8* }, { i8* (i8*, %String)*, i8* }* %"$ud-registry.eNewDomain_157", align 8 - %"$$ud-registry.eNewDomain_157_fptr_6233" = extractvalue { i8* (i8*, %String)*, i8* } %"$$ud-registry.eNewDomain_157_6232", 0 - %"$$ud-registry.eNewDomain_157_envptr_6234" = extractvalue { i8* (i8*, %String)*, i8* } %"$$ud-registry.eNewDomain_157_6232", 1 - %"$$ud-registry.eNewDomain_157_call_6235" = call i8* %"$$ud-registry.eNewDomain_157_fptr_6233"(i8* %"$$ud-registry.eNewDomain_157_envptr_6234", %String %label), !dbg !603 - store i8* %"$$ud-registry.eNewDomain_157_call_6235", i8** %"$ud-registry.eNewDomain_158", align 8, !dbg !603 - %"$$ud-registry.eNewDomain_158_6236" = load i8*, i8** %"$ud-registry.eNewDomain_158", align 8 - store i8* %"$$ud-registry.eNewDomain_158_6236", i8** %e, align 8, !dbg !603 - %"$e_6237" = load i8*, i8** %e, align 8 - %"$_literal_cost_call_6239" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Event_446", i8* %"$e_6237") - %"$gasrem_6240" = load i64, i64* @_gasrem, align 8 - %"$gascmp_6241" = icmp ugt i64 %"$_literal_cost_call_6239", %"$gasrem_6240" - br i1 %"$gascmp_6241", label %"$out_of_gas_6242", label %"$have_gas_6243" - -"$out_of_gas_6242": ; preds = %"$have_gas_6225" - call void @_out_of_gas() - br label %"$have_gas_6243" - -"$have_gas_6243": ; preds = %"$out_of_gas_6242", %"$have_gas_6225" - %"$consume_6244" = sub i64 %"$gasrem_6240", %"$_literal_cost_call_6239" - store i64 %"$consume_6244", i64* @_gasrem, align 8 - %"$execptr_load_6245" = load i8*, i8** @_execptr, align 8 - %"$e_6246" = load i8*, i8** %e, align 8 - call void @_event(i8* %"$execptr_load_6245", %_TyDescrTy_Typ* @"$TyDescr_Event_446", i8* %"$e_6246"), !dbg !606 - br label %"$matchsucc_6210" - -"$default_6214": ; preds = %"$have_gas_6208" + call void @llvm.dbg.declare(metadata i8** %"$ud-registry.eNewDomain_158", metadata !1132, metadata !DIExpression()), !dbg !1131 + %"$$ud-registry.eNewDomain_157_6337" = load { i8* (i8*, %String)*, i8* }, { i8* (i8*, %String)*, i8* }* %"$ud-registry.eNewDomain_157", align 8 + %"$$ud-registry.eNewDomain_157_fptr_6338" = extractvalue { i8* (i8*, %String)*, i8* } %"$$ud-registry.eNewDomain_157_6337", 0 + %"$$ud-registry.eNewDomain_157_envptr_6339" = extractvalue { i8* (i8*, %String)*, i8* } %"$$ud-registry.eNewDomain_157_6337", 1 + %"$$ud-registry.eNewDomain_157_call_6340" = call i8* %"$$ud-registry.eNewDomain_157_fptr_6338"(i8* %"$$ud-registry.eNewDomain_157_envptr_6339", %String %label), !dbg !1131 + store i8* %"$$ud-registry.eNewDomain_157_call_6340", i8** %"$ud-registry.eNewDomain_158", align 8, !dbg !1131 + %"$$ud-registry.eNewDomain_158_6341" = load i8*, i8** %"$ud-registry.eNewDomain_158", align 8 + store i8* %"$$ud-registry.eNewDomain_158_6341", i8** %e, align 8, !dbg !1131 + %"$e_6342" = load i8*, i8** %e, align 8 + %"$_literal_cost_call_6344" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Event_446", i8* %"$e_6342") + %"$gasrem_6345" = load i64, i64* @_gasrem, align 8 + %"$gascmp_6346" = icmp ugt i64 %"$_literal_cost_call_6344", %"$gasrem_6345" + br i1 %"$gascmp_6346", label %"$out_of_gas_6347", label %"$have_gas_6348" + +"$out_of_gas_6347": ; preds = %"$have_gas_6330" + call void @_out_of_gas() + br label %"$have_gas_6348" + +"$have_gas_6348": ; preds = %"$out_of_gas_6347", %"$have_gas_6330" + %"$consume_6349" = sub i64 %"$gasrem_6345", %"$_literal_cost_call_6344" + store i64 %"$consume_6349", i64* @_gasrem, align 8 + %"$execptr_load_6350" = load i8*, i8** @_execptr, align 8 + %"$e_6351" = load i8*, i8** %e, align 8 + call void @_event(i8* %"$execptr_load_6350", %_TyDescrTy_Typ* @"$TyDescr_Event_446", i8* %"$e_6351"), !dbg !1133 + br label %"$matchsucc_6315" + +"$default_6319": ; preds = %"$have_gas_6313" br label %"$joinp_28" -"$joinp_28": ; preds = %"$default_6214" - br label %"$matchsucc_6210" - -"$matchsucc_6210": ; preds = %"$have_gas_6243", %"$joinp_28" - %"$gasrem_6247" = load i64, i64* @_gasrem, align 8 - %"$gascmp_6248" = icmp ugt i64 1, %"$gasrem_6247" - br i1 %"$gascmp_6248", label %"$out_of_gas_6249", label %"$have_gas_6250" - -"$out_of_gas_6249": ; preds = %"$matchsucc_6210" - call void @_out_of_gas() - br label %"$have_gas_6250" - -"$have_gas_6250": ; preds = %"$out_of_gas_6249", %"$matchsucc_6210" - %"$consume_6251" = sub i64 %"$gasrem_6247", 1 - store i64 %"$consume_6251", i64* @_gasrem, align 8 - %"$indices_buf_6252_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$indices_buf_6252_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_6252_salloc_load", i64 32) - %"$indices_buf_6252_salloc" = bitcast i8* %"$indices_buf_6252_salloc_salloc" to [32 x i8]* - %"$indices_buf_6252" = bitcast [32 x i8]* %"$indices_buf_6252_salloc" to i8* - %"$node_6253" = load [32 x i8], [32 x i8]* %node, align 1 - %"$indices_gep_6254" = getelementptr i8, i8* %"$indices_buf_6252", i32 0 - %indices_cast4 = bitcast i8* %"$indices_gep_6254" to [32 x i8]* - store [32 x i8] %"$node_6253", [32 x i8]* %indices_cast4, align 1 - %"$execptr_load_6255" = load i8*, i8** @_execptr, align 8 - call void @_update_field(i8* %"$execptr_load_6255", i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$approvals_6256", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_471", i32 1, i8* %"$indices_buf_6252", i8* null), !dbg !607 - %"$gasrem_6257" = load i64, i64* @_gasrem, align 8 - %"$gascmp_6258" = icmp ugt i64 1, %"$gasrem_6257" - br i1 %"$gascmp_6258", label %"$out_of_gas_6259", label %"$have_gas_6260" - -"$out_of_gas_6259": ; preds = %"$have_gas_6250" - call void @_out_of_gas() - br label %"$have_gas_6260" - -"$have_gas_6260": ; preds = %"$out_of_gas_6259", %"$have_gas_6250" - %"$consume_6261" = sub i64 %"$gasrem_6257", 1 - store i64 %"$consume_6261", i64* @_gasrem, align 8 +"$joinp_28": ; preds = %"$default_6319" + br label %"$matchsucc_6315" + +"$matchsucc_6315": ; preds = %"$have_gas_6348", %"$joinp_28" + %"$gasrem_6352" = load i64, i64* @_gasrem, align 8 + %"$gascmp_6353" = icmp ugt i64 1, %"$gasrem_6352" + br i1 %"$gascmp_6353", label %"$out_of_gas_6354", label %"$have_gas_6355" + +"$out_of_gas_6354": ; preds = %"$matchsucc_6315" + call void @_out_of_gas() + br label %"$have_gas_6355" + +"$have_gas_6355": ; preds = %"$out_of_gas_6354", %"$matchsucc_6315" + %"$consume_6356" = sub i64 %"$gasrem_6352", 1 + store i64 %"$consume_6356", i64* @_gasrem, align 8 + %"$indices_buf_6357_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$indices_buf_6357_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_6357_salloc_load", i64 32) + %"$indices_buf_6357_salloc" = bitcast i8* %"$indices_buf_6357_salloc_salloc" to [32 x i8]* + %"$indices_buf_6357" = bitcast [32 x i8]* %"$indices_buf_6357_salloc" to i8* + %"$node_6358" = load [32 x i8], [32 x i8]* %node, align 1 + %"$indices_gep_6359" = getelementptr i8, i8* %"$indices_buf_6357", i32 0 + %indices_cast4 = bitcast i8* %"$indices_gep_6359" to [32 x i8]* + store [32 x i8] %"$node_6358", [32 x i8]* %indices_cast4, align 1 + %"$execptr_load_6360" = load i8*, i8** @_execptr, align 8 + call void @_update_field(i8* %"$execptr_load_6360", i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$approvals_6361", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_471", i32 1, i8* %"$indices_buf_6357", i8* null), !dbg !1134 + %"$gasrem_6362" = load i64, i64* @_gasrem, align 8 + %"$gascmp_6363" = icmp ugt i64 1, %"$gasrem_6362" + br i1 %"$gascmp_6363", label %"$out_of_gas_6364", label %"$have_gas_6365" + +"$out_of_gas_6364": ; preds = %"$have_gas_6355" + call void @_out_of_gas() + br label %"$have_gas_6365" + +"$have_gas_6365": ; preds = %"$out_of_gas_6364", %"$have_gas_6355" + %"$consume_6366" = sub i64 %"$gasrem_6362", 1 + store i64 %"$consume_6366", i64* @_gasrem, align 8 %newRecord = alloca %TName_ud-registry.Record*, align 8 - %"$gasrem_6262" = load i64, i64* @_gasrem, align 8 - %"$gascmp_6263" = icmp ugt i64 1, %"$gasrem_6262" - br i1 %"$gascmp_6263", label %"$out_of_gas_6264", label %"$have_gas_6265" - -"$out_of_gas_6264": ; preds = %"$have_gas_6260" - call void @_out_of_gas() - br label %"$have_gas_6265" - -"$have_gas_6265": ; preds = %"$out_of_gas_6264", %"$have_gas_6260" - %"$consume_6266" = sub i64 %"$gasrem_6262", 1 - store i64 %"$consume_6266", i64* @_gasrem, align 8 - %"$ud-registry.zeroByStr20_6267" = load [20 x i8], [20 x i8]* @ud-registry.zeroByStr20, align 1 - %"$adtval_6268_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_6268_salloc" = call i8* @_salloc(i8* %"$adtval_6268_load", i64 41) - %"$adtval_6268" = bitcast i8* %"$adtval_6268_salloc" to %CName_ud-registry.Record* - %"$adtgep_6269" = getelementptr inbounds %CName_ud-registry.Record, %CName_ud-registry.Record* %"$adtval_6268", i32 0, i32 0 - store i8 0, i8* %"$adtgep_6269", align 1 - %"$adtgep_6270" = getelementptr inbounds %CName_ud-registry.Record, %CName_ud-registry.Record* %"$adtval_6268", i32 0, i32 1 - store [20 x i8] %owner, [20 x i8]* %"$adtgep_6270", align 1 - %"$adtgep_6271" = getelementptr inbounds %CName_ud-registry.Record, %CName_ud-registry.Record* %"$adtval_6268", i32 0, i32 2 - store [20 x i8] %"$ud-registry.zeroByStr20_6267", [20 x i8]* %"$adtgep_6271", align 1 - %"$adtptr_6272" = bitcast %CName_ud-registry.Record* %"$adtval_6268" to %TName_ud-registry.Record* - store %TName_ud-registry.Record* %"$adtptr_6272", %TName_ud-registry.Record** %newRecord, align 8, !dbg !608 - %"$newRecord_6273" = load %TName_ud-registry.Record*, %TName_ud-registry.Record** %newRecord, align 8 - %"$$newRecord_6273_6274" = bitcast %TName_ud-registry.Record* %"$newRecord_6273" to i8* - %"$_literal_cost_call_6275" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_ud-registry.Record_465", i8* %"$$newRecord_6273_6274") - %"$gasadd_6276" = add i64 %"$_literal_cost_call_6275", 1 - %"$gasrem_6277" = load i64, i64* @_gasrem, align 8 - %"$gascmp_6278" = icmp ugt i64 %"$gasadd_6276", %"$gasrem_6277" - br i1 %"$gascmp_6278", label %"$out_of_gas_6279", label %"$have_gas_6280" - -"$out_of_gas_6279": ; preds = %"$have_gas_6265" - call void @_out_of_gas() - br label %"$have_gas_6280" - -"$have_gas_6280": ; preds = %"$out_of_gas_6279", %"$have_gas_6265" - %"$consume_6281" = sub i64 %"$gasrem_6277", %"$gasadd_6276" - store i64 %"$consume_6281", i64* @_gasrem, align 8 - %"$indices_buf_6282_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$indices_buf_6282_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_6282_salloc_load", i64 32) - %"$indices_buf_6282_salloc" = bitcast i8* %"$indices_buf_6282_salloc_salloc" to [32 x i8]* - %"$indices_buf_6282" = bitcast [32 x i8]* %"$indices_buf_6282_salloc" to i8* - %"$node_6283" = load [32 x i8], [32 x i8]* %node, align 1 - %"$indices_gep_6284" = getelementptr i8, i8* %"$indices_buf_6282", i32 0 - %indices_cast5 = bitcast i8* %"$indices_gep_6284" to [32 x i8]* - store [32 x i8] %"$node_6283", [32 x i8]* %indices_cast5, align 1 - %"$execptr_load_6285" = load i8*, i8** @_execptr, align 8 - %"$newRecord_6287" = load %TName_ud-registry.Record*, %TName_ud-registry.Record** %newRecord, align 8 - %"$update_value_6288" = bitcast %TName_ud-registry.Record* %"$newRecord_6287" to i8* - call void @_update_field(i8* %"$execptr_load_6285", i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$records_6286", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_472", i32 1, i8* %"$indices_buf_6282", i8* %"$update_value_6288"), !dbg !609 - %"$gasrem_6289" = load i64, i64* @_gasrem, align 8 - %"$gascmp_6290" = icmp ugt i64 1, %"$gasrem_6289" - br i1 %"$gascmp_6290", label %"$out_of_gas_6291", label %"$have_gas_6292" - -"$out_of_gas_6291": ; preds = %"$have_gas_6280" - call void @_out_of_gas() - br label %"$have_gas_6292" - -"$have_gas_6292": ; preds = %"$out_of_gas_6291", %"$have_gas_6280" - %"$consume_6293" = sub i64 %"$gasrem_6289", 1 - store i64 %"$consume_6293", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_ud-registry.Record** %newRecord, metadata !1135, metadata !DIExpression()), !dbg !1136 + %"$gasrem_6367" = load i64, i64* @_gasrem, align 8 + %"$gascmp_6368" = icmp ugt i64 1, %"$gasrem_6367" + br i1 %"$gascmp_6368", label %"$out_of_gas_6369", label %"$have_gas_6370" + +"$out_of_gas_6369": ; preds = %"$have_gas_6365" + call void @_out_of_gas() + br label %"$have_gas_6370" + +"$have_gas_6370": ; preds = %"$out_of_gas_6369", %"$have_gas_6365" + %"$consume_6371" = sub i64 %"$gasrem_6367", 1 + store i64 %"$consume_6371", i64* @_gasrem, align 8 + %"$ud-registry.zeroByStr20_6372" = load [20 x i8], [20 x i8]* @ud-registry.zeroByStr20, align 1 + %"$adtval_6373_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_6373_salloc" = call i8* @_salloc(i8* %"$adtval_6373_load", i64 41) + %"$adtval_6373" = bitcast i8* %"$adtval_6373_salloc" to %CName_ud-registry.Record* + %"$adtgep_6374" = getelementptr inbounds %CName_ud-registry.Record, %CName_ud-registry.Record* %"$adtval_6373", i32 0, i32 0 + store i8 0, i8* %"$adtgep_6374", align 1 + %"$adtgep_6375" = getelementptr inbounds %CName_ud-registry.Record, %CName_ud-registry.Record* %"$adtval_6373", i32 0, i32 1 + store [20 x i8] %owner, [20 x i8]* %"$adtgep_6375", align 1 + %"$adtgep_6376" = getelementptr inbounds %CName_ud-registry.Record, %CName_ud-registry.Record* %"$adtval_6373", i32 0, i32 2 + store [20 x i8] %"$ud-registry.zeroByStr20_6372", [20 x i8]* %"$adtgep_6376", align 1 + %"$adtptr_6377" = bitcast %CName_ud-registry.Record* %"$adtval_6373" to %TName_ud-registry.Record* + store %TName_ud-registry.Record* %"$adtptr_6377", %TName_ud-registry.Record** %newRecord, align 8, !dbg !1137 + %"$newRecord_6378" = load %TName_ud-registry.Record*, %TName_ud-registry.Record** %newRecord, align 8 + %"$$newRecord_6378_6379" = bitcast %TName_ud-registry.Record* %"$newRecord_6378" to i8* + %"$_literal_cost_call_6380" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_ud-registry.Record_465", i8* %"$$newRecord_6378_6379") + %"$gasadd_6381" = add i64 %"$_literal_cost_call_6380", 1 + %"$gasrem_6382" = load i64, i64* @_gasrem, align 8 + %"$gascmp_6383" = icmp ugt i64 %"$gasadd_6381", %"$gasrem_6382" + br i1 %"$gascmp_6383", label %"$out_of_gas_6384", label %"$have_gas_6385" + +"$out_of_gas_6384": ; preds = %"$have_gas_6370" + call void @_out_of_gas() + br label %"$have_gas_6385" + +"$have_gas_6385": ; preds = %"$out_of_gas_6384", %"$have_gas_6370" + %"$consume_6386" = sub i64 %"$gasrem_6382", %"$gasadd_6381" + store i64 %"$consume_6386", i64* @_gasrem, align 8 + %"$indices_buf_6387_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$indices_buf_6387_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_6387_salloc_load", i64 32) + %"$indices_buf_6387_salloc" = bitcast i8* %"$indices_buf_6387_salloc_salloc" to [32 x i8]* + %"$indices_buf_6387" = bitcast [32 x i8]* %"$indices_buf_6387_salloc" to i8* + %"$node_6388" = load [32 x i8], [32 x i8]* %node, align 1 + %"$indices_gep_6389" = getelementptr i8, i8* %"$indices_buf_6387", i32 0 + %indices_cast5 = bitcast i8* %"$indices_gep_6389" to [32 x i8]* + store [32 x i8] %"$node_6388", [32 x i8]* %indices_cast5, align 1 + %"$execptr_load_6390" = load i8*, i8** @_execptr, align 8 + %"$newRecord_6392" = load %TName_ud-registry.Record*, %TName_ud-registry.Record** %newRecord, align 8 + %"$update_value_6393" = bitcast %TName_ud-registry.Record* %"$newRecord_6392" to i8* + call void @_update_field(i8* %"$execptr_load_6390", i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$records_6391", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_472", i32 1, i8* %"$indices_buf_6387", i8* %"$update_value_6393"), !dbg !1138 + %"$gasrem_6394" = load i64, i64* @_gasrem, align 8 + %"$gascmp_6395" = icmp ugt i64 1, %"$gasrem_6394" + br i1 %"$gascmp_6395", label %"$out_of_gas_6396", label %"$have_gas_6397" + +"$out_of_gas_6396": ; preds = %"$have_gas_6385" + call void @_out_of_gas() + br label %"$have_gas_6397" + +"$have_gas_6397": ; preds = %"$out_of_gas_6396", %"$have_gas_6385" + %"$consume_6398" = sub i64 %"$gasrem_6394", 1 + store i64 %"$consume_6398", i64* @_gasrem, align 8 %e6 = alloca i8*, align 8 - %"$gasrem_6294" = load i64, i64* @_gasrem, align 8 - %"$gascmp_6295" = icmp ugt i64 1, %"$gasrem_6294" - br i1 %"$gascmp_6295", label %"$out_of_gas_6296", label %"$have_gas_6297" + call void @llvm.dbg.declare(metadata i8** %e6, metadata !1139, metadata !DIExpression()), !dbg !1140 + %"$gasrem_6399" = load i64, i64* @_gasrem, align 8 + %"$gascmp_6400" = icmp ugt i64 1, %"$gasrem_6399" + br i1 %"$gascmp_6400", label %"$out_of_gas_6401", label %"$have_gas_6402" -"$out_of_gas_6296": ; preds = %"$have_gas_6292" +"$out_of_gas_6401": ; preds = %"$have_gas_6397" call void @_out_of_gas() - br label %"$have_gas_6297" + br label %"$have_gas_6402" -"$have_gas_6297": ; preds = %"$out_of_gas_6296", %"$have_gas_6292" - %"$consume_6298" = sub i64 %"$gasrem_6294", 1 - store i64 %"$consume_6298", i64* @_gasrem, align 8 +"$have_gas_6402": ; preds = %"$out_of_gas_6401", %"$have_gas_6397" + %"$consume_6403" = sub i64 %"$gasrem_6399", 1 + store i64 %"$consume_6403", i64* @_gasrem, align 8 %"$ud-registry.eConfigured_154" = alloca { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* }, align 8 - %"$ud-registry.eConfigured_6299" = 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_6300" = extractvalue { { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, [32 x i8]*)*, i8* } %"$ud-registry.eConfigured_6299", 0 - %"$ud-registry.eConfigured_envptr_6301" = extractvalue { { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, [32 x i8]*)*, i8* } %"$ud-registry.eConfigured_6299", 1 - %"$ud-registry.eConfigured_node_6302" = alloca [32 x i8], align 1 - %"$node_6303" = load [32 x i8], [32 x i8]* %node, align 1 - store [32 x i8] %"$node_6303", [32 x i8]* %"$ud-registry.eConfigured_node_6302", align 1 - %"$ud-registry.eConfigured_call_6304" = call { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$ud-registry.eConfigured_fptr_6300"(i8* %"$ud-registry.eConfigured_envptr_6301", [32 x i8]* %"$ud-registry.eConfigured_node_6302"), !dbg !610 - store { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$ud-registry.eConfigured_call_6304", { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* }* %"$ud-registry.eConfigured_154", align 8, !dbg !610 + %"$ud-registry.eConfigured_6404" = 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_6405" = extractvalue { { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, [32 x i8]*)*, i8* } %"$ud-registry.eConfigured_6404", 0 + %"$ud-registry.eConfigured_envptr_6406" = extractvalue { { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, [32 x i8]*)*, i8* } %"$ud-registry.eConfigured_6404", 1 + %"$ud-registry.eConfigured_node_6407" = alloca [32 x i8], align 1 + %"$node_6408" = load [32 x i8], [32 x i8]* %node, align 1 + store [32 x i8] %"$node_6408", [32 x i8]* %"$ud-registry.eConfigured_node_6407", align 1 + %"$ud-registry.eConfigured_call_6409" = call { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$ud-registry.eConfigured_fptr_6405"(i8* %"$ud-registry.eConfigured_envptr_6406", [32 x i8]* %"$ud-registry.eConfigured_node_6407"), !dbg !1141 + store { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$ud-registry.eConfigured_call_6409", { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* }* %"$ud-registry.eConfigured_154", align 8, !dbg !1141 %"$ud-registry.eConfigured_155" = alloca { i8* (i8*, [20 x i8]*)*, i8* }, align 8 - %"$$ud-registry.eConfigured_154_6305" = 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_154", align 8 - %"$$ud-registry.eConfigured_154_fptr_6306" = extractvalue { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.eConfigured_154_6305", 0 - %"$$ud-registry.eConfigured_154_envptr_6307" = extractvalue { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.eConfigured_154_6305", 1 - %"$$ud-registry.eConfigured_154_owner_6308" = alloca [20 x i8], align 1 - store [20 x i8] %owner, [20 x i8]* %"$$ud-registry.eConfigured_154_owner_6308", align 1 - %"$$ud-registry.eConfigured_154_call_6309" = call { i8* (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.eConfigured_154_fptr_6306"(i8* %"$$ud-registry.eConfigured_154_envptr_6307", [20 x i8]* %"$$ud-registry.eConfigured_154_owner_6308"), !dbg !610 - store { i8* (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.eConfigured_154_call_6309", { i8* (i8*, [20 x i8]*)*, i8* }* %"$ud-registry.eConfigured_155", align 8, !dbg !610 + %"$$ud-registry.eConfigured_154_6410" = 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_154", align 8 + %"$$ud-registry.eConfigured_154_fptr_6411" = extractvalue { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.eConfigured_154_6410", 0 + %"$$ud-registry.eConfigured_154_envptr_6412" = extractvalue { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.eConfigured_154_6410", 1 + %"$$ud-registry.eConfigured_154_owner_6413" = alloca [20 x i8], align 1 + store [20 x i8] %owner, [20 x i8]* %"$$ud-registry.eConfigured_154_owner_6413", align 1 + %"$$ud-registry.eConfigured_154_call_6414" = call { i8* (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.eConfigured_154_fptr_6411"(i8* %"$$ud-registry.eConfigured_154_envptr_6412", [20 x i8]* %"$$ud-registry.eConfigured_154_owner_6413"), !dbg !1141 + store { i8* (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.eConfigured_154_call_6414", { i8* (i8*, [20 x i8]*)*, i8* }* %"$ud-registry.eConfigured_155", align 8, !dbg !1141 %"$ud-registry.eConfigured_156" = alloca i8*, align 8 - %"$$ud-registry.eConfigured_155_6310" = load { i8* (i8*, [20 x i8]*)*, i8* }, { i8* (i8*, [20 x i8]*)*, i8* }* %"$ud-registry.eConfigured_155", align 8 - %"$$ud-registry.eConfigured_155_fptr_6311" = extractvalue { i8* (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.eConfigured_155_6310", 0 - %"$$ud-registry.eConfigured_155_envptr_6312" = extractvalue { i8* (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.eConfigured_155_6310", 1 - %"$$ud-registry.eConfigured_155_ud-registry.zeroByStr20_6313" = alloca [20 x i8], align 1 - %"$ud-registry.zeroByStr20_6314" = load [20 x i8], [20 x i8]* @ud-registry.zeroByStr20, align 1 - store [20 x i8] %"$ud-registry.zeroByStr20_6314", [20 x i8]* %"$$ud-registry.eConfigured_155_ud-registry.zeroByStr20_6313", align 1 - %"$$ud-registry.eConfigured_155_call_6315" = call i8* %"$$ud-registry.eConfigured_155_fptr_6311"(i8* %"$$ud-registry.eConfigured_155_envptr_6312", [20 x i8]* %"$$ud-registry.eConfigured_155_ud-registry.zeroByStr20_6313"), !dbg !610 - store i8* %"$$ud-registry.eConfigured_155_call_6315", i8** %"$ud-registry.eConfigured_156", align 8, !dbg !610 - %"$$ud-registry.eConfigured_156_6316" = load i8*, i8** %"$ud-registry.eConfigured_156", align 8 - store i8* %"$$ud-registry.eConfigured_156_6316", i8** %e6, align 8, !dbg !610 - %"$e_6317" = load i8*, i8** %e6, align 8 - %"$_literal_cost_call_6319" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Event_446", i8* %"$e_6317") - %"$gasrem_6320" = load i64, i64* @_gasrem, align 8 - %"$gascmp_6321" = icmp ugt i64 %"$_literal_cost_call_6319", %"$gasrem_6320" - br i1 %"$gascmp_6321", label %"$out_of_gas_6322", label %"$have_gas_6323" - -"$out_of_gas_6322": ; preds = %"$have_gas_6297" - call void @_out_of_gas() - br label %"$have_gas_6323" - -"$have_gas_6323": ; preds = %"$out_of_gas_6322", %"$have_gas_6297" - %"$consume_6324" = sub i64 %"$gasrem_6320", %"$_literal_cost_call_6319" - store i64 %"$consume_6324", i64* @_gasrem, align 8 - %"$execptr_load_6325" = load i8*, i8** @_execptr, align 8 - %"$e_6326" = load i8*, i8** %e6, align 8 - call void @_event(i8* %"$execptr_load_6325", %_TyDescrTy_Typ* @"$TyDescr_Event_446", i8* %"$e_6326"), !dbg !611 - %"$gasrem_6327" = load i64, i64* @_gasrem, align 8 - %"$gascmp_6328" = icmp ugt i64 1, %"$gasrem_6327" - br i1 %"$gascmp_6328", label %"$out_of_gas_6329", label %"$have_gas_6330" - -"$out_of_gas_6329": ; preds = %"$have_gas_6323" - call void @_out_of_gas() - br label %"$have_gas_6330" - -"$have_gas_6330": ; preds = %"$out_of_gas_6329", %"$have_gas_6323" - %"$consume_6331" = sub i64 %"$gasrem_6327", 1 - store i64 %"$consume_6331", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata i8** %"$ud-registry.eConfigured_156", metadata !1142, metadata !DIExpression()), !dbg !1141 + %"$$ud-registry.eConfigured_155_6415" = load { i8* (i8*, [20 x i8]*)*, i8* }, { i8* (i8*, [20 x i8]*)*, i8* }* %"$ud-registry.eConfigured_155", align 8 + %"$$ud-registry.eConfigured_155_fptr_6416" = extractvalue { i8* (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.eConfigured_155_6415", 0 + %"$$ud-registry.eConfigured_155_envptr_6417" = extractvalue { i8* (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.eConfigured_155_6415", 1 + %"$$ud-registry.eConfigured_155_ud-registry.zeroByStr20_6418" = alloca [20 x i8], align 1 + %"$ud-registry.zeroByStr20_6419" = load [20 x i8], [20 x i8]* @ud-registry.zeroByStr20, align 1 + store [20 x i8] %"$ud-registry.zeroByStr20_6419", [20 x i8]* %"$$ud-registry.eConfigured_155_ud-registry.zeroByStr20_6418", align 1 + %"$$ud-registry.eConfigured_155_call_6420" = call i8* %"$$ud-registry.eConfigured_155_fptr_6416"(i8* %"$$ud-registry.eConfigured_155_envptr_6417", [20 x i8]* %"$$ud-registry.eConfigured_155_ud-registry.zeroByStr20_6418"), !dbg !1141 + store i8* %"$$ud-registry.eConfigured_155_call_6420", i8** %"$ud-registry.eConfigured_156", align 8, !dbg !1141 + %"$$ud-registry.eConfigured_156_6421" = load i8*, i8** %"$ud-registry.eConfigured_156", align 8 + store i8* %"$$ud-registry.eConfigured_156_6421", i8** %e6, align 8, !dbg !1141 + %"$e_6422" = load i8*, i8** %e6, align 8 + %"$_literal_cost_call_6424" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Event_446", i8* %"$e_6422") + %"$gasrem_6425" = load i64, i64* @_gasrem, align 8 + %"$gascmp_6426" = icmp ugt i64 %"$_literal_cost_call_6424", %"$gasrem_6425" + br i1 %"$gascmp_6426", label %"$out_of_gas_6427", label %"$have_gas_6428" + +"$out_of_gas_6427": ; preds = %"$have_gas_6402" + call void @_out_of_gas() + br label %"$have_gas_6428" + +"$have_gas_6428": ; preds = %"$out_of_gas_6427", %"$have_gas_6402" + %"$consume_6429" = sub i64 %"$gasrem_6425", %"$_literal_cost_call_6424" + store i64 %"$consume_6429", i64* @_gasrem, align 8 + %"$execptr_load_6430" = load i8*, i8** @_execptr, align 8 + %"$e_6431" = load i8*, i8** %e6, align 8 + call void @_event(i8* %"$execptr_load_6430", %_TyDescrTy_Typ* @"$TyDescr_Event_446", i8* %"$e_6431"), !dbg !1143 + %"$gasrem_6432" = load i64, i64* @_gasrem, align 8 + %"$gascmp_6433" = icmp ugt i64 1, %"$gasrem_6432" + br i1 %"$gascmp_6433", label %"$out_of_gas_6434", label %"$have_gas_6435" + +"$out_of_gas_6434": ; preds = %"$have_gas_6428" + call void @_out_of_gas() + br label %"$have_gas_6435" + +"$have_gas_6435": ; preds = %"$out_of_gas_6434", %"$have_gas_6428" + %"$consume_6436" = sub i64 %"$gasrem_6432", 1 + store i64 %"$consume_6436", i64* @_gasrem, align 8 %msgs = alloca %TName_List_Message*, align 8 - %"$gasrem_6332" = load i64, i64* @_gasrem, align 8 - %"$gascmp_6333" = icmp ugt i64 1, %"$gasrem_6332" - br i1 %"$gascmp_6333", label %"$out_of_gas_6334", label %"$have_gas_6335" + call void @llvm.dbg.declare(metadata %TName_List_Message** %msgs, metadata !1144, metadata !DIExpression()), !dbg !1145 + %"$gasrem_6437" = load i64, i64* @_gasrem, align 8 + %"$gascmp_6438" = icmp ugt i64 1, %"$gasrem_6437" + br i1 %"$gascmp_6438", label %"$out_of_gas_6439", label %"$have_gas_6440" -"$out_of_gas_6334": ; preds = %"$have_gas_6330" +"$out_of_gas_6439": ; preds = %"$have_gas_6435" call void @_out_of_gas() - br label %"$have_gas_6335" + br label %"$have_gas_6440" -"$have_gas_6335": ; preds = %"$out_of_gas_6334", %"$have_gas_6330" - %"$consume_6336" = sub i64 %"$gasrem_6332", 1 - store i64 %"$consume_6336", i64* @_gasrem, align 8 +"$have_gas_6440": ; preds = %"$out_of_gas_6439", %"$have_gas_6435" + %"$consume_6441" = sub i64 %"$gasrem_6437", 1 + store i64 %"$consume_6441", i64* @_gasrem, align 8 %m = alloca i8*, align 8 - %"$gasrem_6337" = load i64, i64* @_gasrem, align 8 - %"$gascmp_6338" = icmp ugt i64 1, %"$gasrem_6337" - br i1 %"$gascmp_6338", label %"$out_of_gas_6339", label %"$have_gas_6340" - -"$out_of_gas_6339": ; preds = %"$have_gas_6335" - call void @_out_of_gas() - br label %"$have_gas_6340" - -"$have_gas_6340": ; preds = %"$out_of_gas_6339", %"$have_gas_6335" - %"$consume_6341" = sub i64 %"$gasrem_6337", 1 - store i64 %"$consume_6341", i64* @_gasrem, align 8 - %"$msgobj_6342_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$msgobj_6342_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_6342_salloc_load", i64 265) - %"$msgobj_6342_salloc" = bitcast i8* %"$msgobj_6342_salloc_salloc" to [265 x i8]* - %"$msgobj_6342" = bitcast [265 x i8]* %"$msgobj_6342_salloc" to i8* - store i8 6, i8* %"$msgobj_6342", align 1 - %"$msgobj_fname_6344" = getelementptr i8, i8* %"$msgobj_6342", i32 1 - %"$msgobj_fname_6345" = bitcast i8* %"$msgobj_fname_6344" to %String* - store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_6343", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_6345", align 8 - %"$msgobj_td_6346" = getelementptr i8, i8* %"$msgobj_6342", i32 17 - %"$msgobj_td_6347" = bitcast i8* %"$msgobj_td_6346" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_String_440", %_TyDescrTy_Typ** %"$msgobj_td_6347", align 8 - %"$msgobj_v_6349" = getelementptr i8, i8* %"$msgobj_6342", i32 25 - %"$msgobj_v_6350" = bitcast i8* %"$msgobj_v_6349" to %String* - store %String { i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$stringlit_6348", i32 0, i32 0), i32 15 }, %String* %"$msgobj_v_6350", align 8 - %"$msgobj_fname_6352" = getelementptr i8, i8* %"$msgobj_6342", i32 41 - %"$msgobj_fname_6353" = bitcast i8* %"$msgobj_fname_6352" to %String* - store %String { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$stringlit_6351", i32 0, i32 0), i32 6 }, %String* %"$msgobj_fname_6353", align 8 - %"$msgobj_td_6354" = getelementptr i8, i8* %"$msgobj_6342", i32 57 - %"$msgobj_td_6355" = bitcast i8* %"$msgobj_td_6354" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Bystr32_456", %_TyDescrTy_Typ** %"$msgobj_td_6355", align 8 - %"$msgobj_v_6356" = getelementptr i8, i8* %"$msgobj_6342", i32 65 - %"$msgobj_v_6357" = bitcast i8* %"$msgobj_v_6356" to [32 x i8]* - store [32 x i8] %parent, [32 x i8]* %"$msgobj_v_6357", align 1 - %"$msgobj_fname_6359" = getelementptr i8, i8* %"$msgobj_6342", i32 97 - %"$msgobj_fname_6360" = bitcast i8* %"$msgobj_fname_6359" to %String* - store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_6358", i32 0, i32 0), i32 5 }, %String* %"$msgobj_fname_6360", align 8 - %"$msgobj_td_6361" = getelementptr i8, i8* %"$msgobj_6342", i32 113 - %"$msgobj_td_6362" = bitcast i8* %"$msgobj_td_6361" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_String_440", %_TyDescrTy_Typ** %"$msgobj_td_6362", align 8 - %"$msgobj_v_6363" = getelementptr i8, i8* %"$msgobj_6342", i32 121 - %"$msgobj_v_6364" = bitcast i8* %"$msgobj_v_6363" to %String* - store %String %label, %String* %"$msgobj_v_6364", align 8 - %"$msgobj_fname_6366" = getelementptr i8, i8* %"$msgobj_6342", i32 137 - %"$msgobj_fname_6367" = bitcast i8* %"$msgobj_fname_6366" to %String* - store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_6365", i32 0, i32 0), i32 5 }, %String* %"$msgobj_fname_6367", align 8 - %"$msgobj_td_6368" = getelementptr i8, i8* %"$msgobj_6342", i32 153 - %"$msgobj_td_6369" = bitcast i8* %"$msgobj_td_6368" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_458", %_TyDescrTy_Typ** %"$msgobj_td_6369", align 8 - %"$msgobj_v_6370" = getelementptr i8, i8* %"$msgobj_6342", i32 161 - %"$msgobj_v_6371" = bitcast i8* %"$msgobj_v_6370" to [20 x i8]* - store [20 x i8] %owner, [20 x i8]* %"$msgobj_v_6371", align 1 - %"$msgobj_fname_6373" = getelementptr i8, i8* %"$msgobj_6342", i32 181 - %"$msgobj_fname_6374" = bitcast i8* %"$msgobj_fname_6373" to %String* - store %String { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$stringlit_6372", i32 0, i32 0), i32 7 }, %String* %"$msgobj_fname_6374", align 8 - %"$msgobj_td_6375" = getelementptr i8, i8* %"$msgobj_6342", i32 197 - %"$msgobj_td_6376" = bitcast i8* %"$msgobj_td_6375" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Uint128_434", %_TyDescrTy_Typ** %"$msgobj_td_6376", align 8 - %"$msgobj_v_6377" = getelementptr i8, i8* %"$msgobj_6342", i32 205 - %"$msgobj_v_6378" = bitcast i8* %"$msgobj_v_6377" to %Uint128* - store %Uint128 zeroinitializer, %Uint128* %"$msgobj_v_6378", align 8 - %"$msgobj_fname_6380" = getelementptr i8, i8* %"$msgobj_6342", i32 221 - %"$msgobj_fname_6381" = bitcast i8* %"$msgobj_fname_6380" to %String* - store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_6379", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_6381", align 8 - %"$msgobj_td_6382" = getelementptr i8, i8* %"$msgobj_6342", i32 237 - %"$msgobj_td_6383" = bitcast i8* %"$msgobj_td_6382" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_458", %_TyDescrTy_Typ** %"$msgobj_td_6383", align 8 - %"$msgobj_v_6384" = getelementptr i8, i8* %"$msgobj_6342", i32 245 - %"$msgobj_v_6385" = bitcast i8* %"$msgobj_v_6384" to [20 x i8]* - store [20 x i8] %_sender, [20 x i8]* %"$msgobj_v_6385", align 1 - store i8* %"$msgobj_6342", i8** %m, align 8, !dbg !612 - %"$gasrem_6387" = load i64, i64* @_gasrem, align 8 - %"$gascmp_6388" = icmp ugt i64 1, %"$gasrem_6387" - br i1 %"$gascmp_6388", label %"$out_of_gas_6389", label %"$have_gas_6390" - -"$out_of_gas_6389": ; preds = %"$have_gas_6340" - call void @_out_of_gas() - br label %"$have_gas_6390" - -"$have_gas_6390": ; preds = %"$out_of_gas_6389", %"$have_gas_6340" - %"$consume_6391" = sub i64 %"$gasrem_6387", 1 - store i64 %"$consume_6391", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata i8** %m, metadata !1146, metadata !DIExpression()), !dbg !1147 + %"$gasrem_6442" = load i64, i64* @_gasrem, align 8 + %"$gascmp_6443" = icmp ugt i64 1, %"$gasrem_6442" + br i1 %"$gascmp_6443", label %"$out_of_gas_6444", label %"$have_gas_6445" + +"$out_of_gas_6444": ; preds = %"$have_gas_6440" + call void @_out_of_gas() + br label %"$have_gas_6445" + +"$have_gas_6445": ; preds = %"$out_of_gas_6444", %"$have_gas_6440" + %"$consume_6446" = sub i64 %"$gasrem_6442", 1 + store i64 %"$consume_6446", i64* @_gasrem, align 8 + %"$msgobj_6447_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$msgobj_6447_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_6447_salloc_load", i64 265) + %"$msgobj_6447_salloc" = bitcast i8* %"$msgobj_6447_salloc_salloc" to [265 x i8]* + %"$msgobj_6447" = bitcast [265 x i8]* %"$msgobj_6447_salloc" to i8* + store i8 6, i8* %"$msgobj_6447", align 1 + %"$msgobj_fname_6449" = getelementptr i8, i8* %"$msgobj_6447", i32 1 + %"$msgobj_fname_6450" = bitcast i8* %"$msgobj_fname_6449" to %String* + store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_6448", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_6450", align 8 + %"$msgobj_td_6451" = getelementptr i8, i8* %"$msgobj_6447", i32 17 + %"$msgobj_td_6452" = bitcast i8* %"$msgobj_td_6451" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_String_440", %_TyDescrTy_Typ** %"$msgobj_td_6452", align 8 + %"$msgobj_v_6454" = getelementptr i8, i8* %"$msgobj_6447", i32 25 + %"$msgobj_v_6455" = bitcast i8* %"$msgobj_v_6454" to %String* + store %String { i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$stringlit_6453", i32 0, i32 0), i32 15 }, %String* %"$msgobj_v_6455", align 8 + %"$msgobj_fname_6457" = getelementptr i8, i8* %"$msgobj_6447", i32 41 + %"$msgobj_fname_6458" = bitcast i8* %"$msgobj_fname_6457" to %String* + store %String { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$stringlit_6456", i32 0, i32 0), i32 6 }, %String* %"$msgobj_fname_6458", align 8 + %"$msgobj_td_6459" = getelementptr i8, i8* %"$msgobj_6447", i32 57 + %"$msgobj_td_6460" = bitcast i8* %"$msgobj_td_6459" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Bystr32_456", %_TyDescrTy_Typ** %"$msgobj_td_6460", align 8 + %"$msgobj_v_6461" = getelementptr i8, i8* %"$msgobj_6447", i32 65 + %"$msgobj_v_6462" = bitcast i8* %"$msgobj_v_6461" to [32 x i8]* + store [32 x i8] %parent, [32 x i8]* %"$msgobj_v_6462", align 1 + %"$msgobj_fname_6464" = getelementptr i8, i8* %"$msgobj_6447", i32 97 + %"$msgobj_fname_6465" = bitcast i8* %"$msgobj_fname_6464" to %String* + store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_6463", i32 0, i32 0), i32 5 }, %String* %"$msgobj_fname_6465", align 8 + %"$msgobj_td_6466" = getelementptr i8, i8* %"$msgobj_6447", i32 113 + %"$msgobj_td_6467" = bitcast i8* %"$msgobj_td_6466" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_String_440", %_TyDescrTy_Typ** %"$msgobj_td_6467", align 8 + %"$msgobj_v_6468" = getelementptr i8, i8* %"$msgobj_6447", i32 121 + %"$msgobj_v_6469" = bitcast i8* %"$msgobj_v_6468" to %String* + store %String %label, %String* %"$msgobj_v_6469", align 8 + %"$msgobj_fname_6471" = getelementptr i8, i8* %"$msgobj_6447", i32 137 + %"$msgobj_fname_6472" = bitcast i8* %"$msgobj_fname_6471" to %String* + store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_6470", i32 0, i32 0), i32 5 }, %String* %"$msgobj_fname_6472", align 8 + %"$msgobj_td_6473" = getelementptr i8, i8* %"$msgobj_6447", i32 153 + %"$msgobj_td_6474" = bitcast i8* %"$msgobj_td_6473" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_458", %_TyDescrTy_Typ** %"$msgobj_td_6474", align 8 + %"$msgobj_v_6475" = getelementptr i8, i8* %"$msgobj_6447", i32 161 + %"$msgobj_v_6476" = bitcast i8* %"$msgobj_v_6475" to [20 x i8]* + store [20 x i8] %owner, [20 x i8]* %"$msgobj_v_6476", align 1 + %"$msgobj_fname_6478" = getelementptr i8, i8* %"$msgobj_6447", i32 181 + %"$msgobj_fname_6479" = bitcast i8* %"$msgobj_fname_6478" to %String* + store %String { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$stringlit_6477", i32 0, i32 0), i32 7 }, %String* %"$msgobj_fname_6479", align 8 + %"$msgobj_td_6480" = getelementptr i8, i8* %"$msgobj_6447", i32 197 + %"$msgobj_td_6481" = bitcast i8* %"$msgobj_td_6480" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Uint128_434", %_TyDescrTy_Typ** %"$msgobj_td_6481", align 8 + %"$msgobj_v_6482" = getelementptr i8, i8* %"$msgobj_6447", i32 205 + %"$msgobj_v_6483" = bitcast i8* %"$msgobj_v_6482" to %Uint128* + store %Uint128 zeroinitializer, %Uint128* %"$msgobj_v_6483", align 8 + %"$msgobj_fname_6485" = getelementptr i8, i8* %"$msgobj_6447", i32 221 + %"$msgobj_fname_6486" = bitcast i8* %"$msgobj_fname_6485" to %String* + store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_6484", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_6486", align 8 + %"$msgobj_td_6487" = getelementptr i8, i8* %"$msgobj_6447", i32 237 + %"$msgobj_td_6488" = bitcast i8* %"$msgobj_td_6487" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_458", %_TyDescrTy_Typ** %"$msgobj_td_6488", align 8 + %"$msgobj_v_6489" = getelementptr i8, i8* %"$msgobj_6447", i32 245 + %"$msgobj_v_6490" = bitcast i8* %"$msgobj_v_6489" to [20 x i8]* + store [20 x i8] %_sender, [20 x i8]* %"$msgobj_v_6490", align 1 + store i8* %"$msgobj_6447", i8** %m, align 8, !dbg !1148 + %"$gasrem_6492" = load i64, i64* @_gasrem, align 8 + %"$gascmp_6493" = icmp ugt i64 1, %"$gasrem_6492" + br i1 %"$gascmp_6493", label %"$out_of_gas_6494", label %"$have_gas_6495" + +"$out_of_gas_6494": ; preds = %"$have_gas_6445" + call void @_out_of_gas() + br label %"$have_gas_6495" + +"$have_gas_6495": ; preds = %"$out_of_gas_6494", %"$have_gas_6445" + %"$consume_6496" = sub i64 %"$gasrem_6492", 1 + store i64 %"$consume_6496", i64* @_gasrem, align 8 %"$ud-registry.oneMsg_153" = alloca %TName_List_Message*, align 8 - %"$ud-registry.oneMsg_6392" = load { %TName_List_Message* (i8*, i8*)*, i8* }, { %TName_List_Message* (i8*, i8*)*, i8* }* @ud-registry.oneMsg, align 8 - %"$ud-registry.oneMsg_fptr_6393" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$ud-registry.oneMsg_6392", 0 - %"$ud-registry.oneMsg_envptr_6394" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$ud-registry.oneMsg_6392", 1 - %"$m_6395" = load i8*, i8** %m, align 8 - %"$ud-registry.oneMsg_call_6396" = call %TName_List_Message* %"$ud-registry.oneMsg_fptr_6393"(i8* %"$ud-registry.oneMsg_envptr_6394", i8* %"$m_6395"), !dbg !613 - store %TName_List_Message* %"$ud-registry.oneMsg_call_6396", %TName_List_Message** %"$ud-registry.oneMsg_153", align 8, !dbg !613 - %"$$ud-registry.oneMsg_153_6397" = load %TName_List_Message*, %TName_List_Message** %"$ud-registry.oneMsg_153", align 8 - store %TName_List_Message* %"$$ud-registry.oneMsg_153_6397", %TName_List_Message** %msgs, align 8, !dbg !613 - %"$msgs_6398" = load %TName_List_Message*, %TName_List_Message** %msgs, align 8 - %"$$msgs_6398_6399" = bitcast %TName_List_Message* %"$msgs_6398" to i8* - %"$_literal_cost_call_6400" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_467", i8* %"$$msgs_6398_6399") - %"$gasrem_6401" = load i64, i64* @_gasrem, align 8 - %"$gascmp_6402" = icmp ugt i64 %"$_literal_cost_call_6400", %"$gasrem_6401" - br i1 %"$gascmp_6402", label %"$out_of_gas_6403", label %"$have_gas_6404" - -"$out_of_gas_6403": ; preds = %"$have_gas_6390" - call void @_out_of_gas() - br label %"$have_gas_6404" - -"$have_gas_6404": ; preds = %"$out_of_gas_6403", %"$have_gas_6390" - %"$consume_6405" = sub i64 %"$gasrem_6401", %"$_literal_cost_call_6400" - store i64 %"$consume_6405", i64* @_gasrem, align 8 - %"$execptr_load_6406" = load i8*, i8** @_execptr, align 8 - %"$msgs_6407" = load %TName_List_Message*, %TName_List_Message** %msgs, align 8 - call void @_send(i8* %"$execptr_load_6406", %_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_467", %TName_List_Message* %"$msgs_6407"), !dbg !614 - br label %"$matchsucc_6160" - -"$False_6408": ; preds = %"$have_gas_6158" - %"$isSenderOAO_6409" = bitcast %TName_Bool* %"$isSenderOAO_6161" to %CName_False* - %"$gasrem_6410" = load i64, i64* @_gasrem, align 8 - %"$gascmp_6411" = icmp ugt i64 1, %"$gasrem_6410" - br i1 %"$gascmp_6411", label %"$out_of_gas_6412", label %"$have_gas_6413" - -"$out_of_gas_6412": ; preds = %"$False_6408" - call void @_out_of_gas() - br label %"$have_gas_6413" - -"$have_gas_6413": ; preds = %"$out_of_gas_6412", %"$False_6408" - %"$consume_6414" = sub i64 %"$gasrem_6410", 1 - store i64 %"$consume_6414", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_List_Message** %"$ud-registry.oneMsg_153", metadata !1149, metadata !DIExpression()), !dbg !1150 + %"$ud-registry.oneMsg_6497" = load { %TName_List_Message* (i8*, i8*)*, i8* }, { %TName_List_Message* (i8*, i8*)*, i8* }* @ud-registry.oneMsg, align 8 + %"$ud-registry.oneMsg_fptr_6498" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$ud-registry.oneMsg_6497", 0 + %"$ud-registry.oneMsg_envptr_6499" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$ud-registry.oneMsg_6497", 1 + %"$m_6500" = load i8*, i8** %m, align 8 + %"$ud-registry.oneMsg_call_6501" = call %TName_List_Message* %"$ud-registry.oneMsg_fptr_6498"(i8* %"$ud-registry.oneMsg_envptr_6499", i8* %"$m_6500"), !dbg !1150 + store %TName_List_Message* %"$ud-registry.oneMsg_call_6501", %TName_List_Message** %"$ud-registry.oneMsg_153", align 8, !dbg !1150 + %"$$ud-registry.oneMsg_153_6502" = load %TName_List_Message*, %TName_List_Message** %"$ud-registry.oneMsg_153", align 8 + store %TName_List_Message* %"$$ud-registry.oneMsg_153_6502", %TName_List_Message** %msgs, align 8, !dbg !1150 + %"$msgs_6503" = load %TName_List_Message*, %TName_List_Message** %msgs, align 8 + %"$$msgs_6503_6504" = bitcast %TName_List_Message* %"$msgs_6503" to i8* + %"$_literal_cost_call_6505" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_467", i8* %"$$msgs_6503_6504") + %"$gasrem_6506" = load i64, i64* @_gasrem, align 8 + %"$gascmp_6507" = icmp ugt i64 %"$_literal_cost_call_6505", %"$gasrem_6506" + br i1 %"$gascmp_6507", label %"$out_of_gas_6508", label %"$have_gas_6509" + +"$out_of_gas_6508": ; preds = %"$have_gas_6495" + call void @_out_of_gas() + br label %"$have_gas_6509" + +"$have_gas_6509": ; preds = %"$out_of_gas_6508", %"$have_gas_6495" + %"$consume_6510" = sub i64 %"$gasrem_6506", %"$_literal_cost_call_6505" + store i64 %"$consume_6510", i64* @_gasrem, align 8 + %"$execptr_load_6511" = load i8*, i8** @_execptr, align 8 + %"$msgs_6512" = load %TName_List_Message*, %TName_List_Message** %msgs, align 8 + call void @_send(i8* %"$execptr_load_6511", %_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_467", %TName_List_Message* %"$msgs_6512"), !dbg !1151 + br label %"$matchsucc_6265" + +"$False_6513": ; preds = %"$have_gas_6263" + %"$isSenderOAO_6514" = bitcast %TName_Bool* %"$isSenderOAO_6266" to %CName_False* + %"$gasrem_6515" = load i64, i64* @_gasrem, align 8 + %"$gascmp_6516" = icmp ugt i64 1, %"$gasrem_6515" + br i1 %"$gascmp_6516", label %"$out_of_gas_6517", label %"$have_gas_6518" + +"$out_of_gas_6517": ; preds = %"$False_6513" + call void @_out_of_gas() + br label %"$have_gas_6518" + +"$have_gas_6518": ; preds = %"$out_of_gas_6517", %"$False_6513" + %"$consume_6519" = sub i64 %"$gasrem_6515", 1 + store i64 %"$consume_6519", i64* @_gasrem, align 8 %e7 = alloca i8*, align 8 - %"$gasrem_6415" = load i64, i64* @_gasrem, align 8 - %"$gascmp_6416" = icmp ugt i64 1, %"$gasrem_6415" - br i1 %"$gascmp_6416", label %"$out_of_gas_6417", label %"$have_gas_6418" + call void @llvm.dbg.declare(metadata i8** %e7, metadata !1152, metadata !DIExpression()), !dbg !1154 + %"$gasrem_6520" = load i64, i64* @_gasrem, align 8 + %"$gascmp_6521" = icmp ugt i64 1, %"$gasrem_6520" + br i1 %"$gascmp_6521", label %"$out_of_gas_6522", label %"$have_gas_6523" -"$out_of_gas_6417": ; preds = %"$have_gas_6413" +"$out_of_gas_6522": ; preds = %"$have_gas_6518" call void @_out_of_gas() - br label %"$have_gas_6418" + br label %"$have_gas_6523" -"$have_gas_6418": ; preds = %"$out_of_gas_6417", %"$have_gas_6413" - %"$consume_6419" = sub i64 %"$gasrem_6415", 1 - store i64 %"$consume_6419", i64* @_gasrem, align 8 +"$have_gas_6523": ; preds = %"$out_of_gas_6522", %"$have_gas_6518" + %"$consume_6524" = sub i64 %"$gasrem_6520", 1 + store i64 %"$consume_6524", i64* @_gasrem, align 8 %m8 = alloca %String, align 8 - %"$gasrem_6420" = load i64, i64* @_gasrem, align 8 - %"$gascmp_6421" = icmp ugt i64 1, %"$gasrem_6420" - br i1 %"$gascmp_6421", label %"$out_of_gas_6422", label %"$have_gas_6423" + call void @llvm.dbg.declare(metadata %String* %m8, metadata !1155, metadata !DIExpression()), !dbg !1156 + %"$gasrem_6525" = load i64, i64* @_gasrem, align 8 + %"$gascmp_6526" = icmp ugt i64 1, %"$gasrem_6525" + br i1 %"$gascmp_6526", label %"$out_of_gas_6527", label %"$have_gas_6528" -"$out_of_gas_6422": ; preds = %"$have_gas_6418" +"$out_of_gas_6527": ; preds = %"$have_gas_6523" call void @_out_of_gas() - br label %"$have_gas_6423" + br label %"$have_gas_6528" -"$have_gas_6423": ; preds = %"$out_of_gas_6422", %"$have_gas_6418" - %"$consume_6424" = sub i64 %"$gasrem_6420", 1 - store i64 %"$consume_6424", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([45 x i8], [45 x i8]* @"$stringlit_6425", i32 0, i32 0), i32 45 }, %String* %m8, align 8, !dbg !615 - %"$gasrem_6426" = load i64, i64* @_gasrem, align 8 - %"$gascmp_6427" = icmp ugt i64 1, %"$gasrem_6426" - br i1 %"$gascmp_6427", label %"$out_of_gas_6428", label %"$have_gas_6429" +"$have_gas_6528": ; preds = %"$out_of_gas_6527", %"$have_gas_6523" + %"$consume_6529" = sub i64 %"$gasrem_6525", 1 + store i64 %"$consume_6529", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([45 x i8], [45 x i8]* @"$stringlit_6530", i32 0, i32 0), i32 45 }, %String* %m8, align 8, !dbg !1157 + %"$gasrem_6531" = load i64, i64* @_gasrem, align 8 + %"$gascmp_6532" = icmp ugt i64 1, %"$gasrem_6531" + br i1 %"$gascmp_6532", label %"$out_of_gas_6533", label %"$have_gas_6534" -"$out_of_gas_6428": ; preds = %"$have_gas_6423" +"$out_of_gas_6533": ; preds = %"$have_gas_6528" call void @_out_of_gas() - br label %"$have_gas_6429" + br label %"$have_gas_6534" -"$have_gas_6429": ; preds = %"$out_of_gas_6428", %"$have_gas_6423" - %"$consume_6430" = sub i64 %"$gasrem_6426", 1 - store i64 %"$consume_6430", i64* @_gasrem, align 8 +"$have_gas_6534": ; preds = %"$out_of_gas_6533", %"$have_gas_6528" + %"$consume_6535" = sub i64 %"$gasrem_6531", 1 + store i64 %"$consume_6535", i64* @_gasrem, align 8 %"$ud-registry.eError_162" = alloca i8*, align 8 - %"$ud-registry.eError_6431" = load { i8* (i8*, %String)*, i8* }, { i8* (i8*, %String)*, i8* }* @ud-registry.eError, align 8 - %"$ud-registry.eError_fptr_6432" = extractvalue { i8* (i8*, %String)*, i8* } %"$ud-registry.eError_6431", 0 - %"$ud-registry.eError_envptr_6433" = extractvalue { i8* (i8*, %String)*, i8* } %"$ud-registry.eError_6431", 1 - %"$m_6434" = load %String, %String* %m8, align 8 - %"$ud-registry.eError_call_6435" = call i8* %"$ud-registry.eError_fptr_6432"(i8* %"$ud-registry.eError_envptr_6433", %String %"$m_6434"), !dbg !617 - store i8* %"$ud-registry.eError_call_6435", i8** %"$ud-registry.eError_162", align 8, !dbg !617 - %"$$ud-registry.eError_162_6436" = load i8*, i8** %"$ud-registry.eError_162", align 8 - store i8* %"$$ud-registry.eError_162_6436", i8** %e7, align 8, !dbg !617 - %"$e_6437" = load i8*, i8** %e7, align 8 - %"$_literal_cost_call_6439" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Event_446", i8* %"$e_6437") - %"$gasrem_6440" = load i64, i64* @_gasrem, align 8 - %"$gascmp_6441" = icmp ugt i64 %"$_literal_cost_call_6439", %"$gasrem_6440" - br i1 %"$gascmp_6441", label %"$out_of_gas_6442", label %"$have_gas_6443" - -"$out_of_gas_6442": ; preds = %"$have_gas_6429" - call void @_out_of_gas() - br label %"$have_gas_6443" - -"$have_gas_6443": ; preds = %"$out_of_gas_6442", %"$have_gas_6429" - %"$consume_6444" = sub i64 %"$gasrem_6440", %"$_literal_cost_call_6439" - store i64 %"$consume_6444", i64* @_gasrem, align 8 - %"$execptr_load_6445" = load i8*, i8** @_execptr, align 8 - %"$e_6446" = load i8*, i8** %e7, align 8 - call void @_event(i8* %"$execptr_load_6445", %_TyDescrTy_Typ* @"$TyDescr_Event_446", i8* %"$e_6446"), !dbg !618 - %"$gasrem_6447" = load i64, i64* @_gasrem, align 8 - %"$gascmp_6448" = icmp ugt i64 1, %"$gasrem_6447" - br i1 %"$gascmp_6448", label %"$out_of_gas_6449", label %"$have_gas_6450" - -"$out_of_gas_6449": ; preds = %"$have_gas_6443" - call void @_out_of_gas() - br label %"$have_gas_6450" - -"$have_gas_6450": ; preds = %"$out_of_gas_6449", %"$have_gas_6443" - %"$consume_6451" = sub i64 %"$gasrem_6447", 1 - store i64 %"$consume_6451", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata i8** %"$ud-registry.eError_162", metadata !1158, metadata !DIExpression()), !dbg !1159 + %"$ud-registry.eError_6536" = load { i8* (i8*, %String)*, i8* }, { i8* (i8*, %String)*, i8* }* @ud-registry.eError, align 8 + %"$ud-registry.eError_fptr_6537" = extractvalue { i8* (i8*, %String)*, i8* } %"$ud-registry.eError_6536", 0 + %"$ud-registry.eError_envptr_6538" = extractvalue { i8* (i8*, %String)*, i8* } %"$ud-registry.eError_6536", 1 + %"$m_6539" = load %String, %String* %m8, align 8 + %"$ud-registry.eError_call_6540" = call i8* %"$ud-registry.eError_fptr_6537"(i8* %"$ud-registry.eError_envptr_6538", %String %"$m_6539"), !dbg !1159 + store i8* %"$ud-registry.eError_call_6540", i8** %"$ud-registry.eError_162", align 8, !dbg !1159 + %"$$ud-registry.eError_162_6541" = load i8*, i8** %"$ud-registry.eError_162", align 8 + store i8* %"$$ud-registry.eError_162_6541", i8** %e7, align 8, !dbg !1159 + %"$e_6542" = load i8*, i8** %e7, align 8 + %"$_literal_cost_call_6544" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Event_446", i8* %"$e_6542") + %"$gasrem_6545" = load i64, i64* @_gasrem, align 8 + %"$gascmp_6546" = icmp ugt i64 %"$_literal_cost_call_6544", %"$gasrem_6545" + br i1 %"$gascmp_6546", label %"$out_of_gas_6547", label %"$have_gas_6548" + +"$out_of_gas_6547": ; preds = %"$have_gas_6534" + call void @_out_of_gas() + br label %"$have_gas_6548" + +"$have_gas_6548": ; preds = %"$out_of_gas_6547", %"$have_gas_6534" + %"$consume_6549" = sub i64 %"$gasrem_6545", %"$_literal_cost_call_6544" + store i64 %"$consume_6549", i64* @_gasrem, align 8 + %"$execptr_load_6550" = load i8*, i8** @_execptr, align 8 + %"$e_6551" = load i8*, i8** %e7, align 8 + call void @_event(i8* %"$execptr_load_6550", %_TyDescrTy_Typ* @"$TyDescr_Event_446", i8* %"$e_6551"), !dbg !1160 + %"$gasrem_6552" = load i64, i64* @_gasrem, align 8 + %"$gascmp_6553" = icmp ugt i64 1, %"$gasrem_6552" + br i1 %"$gascmp_6553", label %"$out_of_gas_6554", label %"$have_gas_6555" + +"$out_of_gas_6554": ; preds = %"$have_gas_6548" + call void @_out_of_gas() + br label %"$have_gas_6555" + +"$have_gas_6555": ; preds = %"$out_of_gas_6554", %"$have_gas_6548" + %"$consume_6556" = sub i64 %"$gasrem_6552", 1 + store i64 %"$consume_6556", i64* @_gasrem, align 8 %msgs9 = alloca %TName_List_Message*, align 8 - %"$gasrem_6452" = load i64, i64* @_gasrem, align 8 - %"$gascmp_6453" = icmp ugt i64 1, %"$gasrem_6452" - br i1 %"$gascmp_6453", label %"$out_of_gas_6454", label %"$have_gas_6455" + call void @llvm.dbg.declare(metadata %TName_List_Message** %msgs9, metadata !1161, metadata !DIExpression()), !dbg !1162 + %"$gasrem_6557" = load i64, i64* @_gasrem, align 8 + %"$gascmp_6558" = icmp ugt i64 1, %"$gasrem_6557" + br i1 %"$gascmp_6558", label %"$out_of_gas_6559", label %"$have_gas_6560" -"$out_of_gas_6454": ; preds = %"$have_gas_6450" +"$out_of_gas_6559": ; preds = %"$have_gas_6555" call void @_out_of_gas() - br label %"$have_gas_6455" + br label %"$have_gas_6560" -"$have_gas_6455": ; preds = %"$out_of_gas_6454", %"$have_gas_6450" - %"$consume_6456" = sub i64 %"$gasrem_6452", 1 - store i64 %"$consume_6456", i64* @_gasrem, align 8 +"$have_gas_6560": ; preds = %"$out_of_gas_6559", %"$have_gas_6555" + %"$consume_6561" = sub i64 %"$gasrem_6557", 1 + store i64 %"$consume_6561", i64* @_gasrem, align 8 %"$m_21" = alloca i8*, align 8 - %"$gasrem_6457" = load i64, i64* @_gasrem, align 8 - %"$gascmp_6458" = icmp ugt i64 1, %"$gasrem_6457" - br i1 %"$gascmp_6458", label %"$out_of_gas_6459", label %"$have_gas_6460" - -"$out_of_gas_6459": ; preds = %"$have_gas_6455" - call void @_out_of_gas() - br label %"$have_gas_6460" - -"$have_gas_6460": ; preds = %"$out_of_gas_6459", %"$have_gas_6455" - %"$consume_6461" = sub i64 %"$gasrem_6457", 1 - store i64 %"$consume_6461", i64* @_gasrem, align 8 - %"$msgobj_6462_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$msgobj_6462_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_6462_salloc_load", i64 265) - %"$msgobj_6462_salloc" = bitcast i8* %"$msgobj_6462_salloc_salloc" to [265 x i8]* - %"$msgobj_6462" = bitcast [265 x i8]* %"$msgobj_6462_salloc" to i8* - store i8 6, i8* %"$msgobj_6462", align 1 - %"$msgobj_fname_6464" = getelementptr i8, i8* %"$msgobj_6462", i32 1 - %"$msgobj_fname_6465" = bitcast i8* %"$msgobj_fname_6464" to %String* - store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_6463", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_6465", align 8 - %"$msgobj_td_6466" = getelementptr i8, i8* %"$msgobj_6462", i32 17 - %"$msgobj_td_6467" = bitcast i8* %"$msgobj_td_6466" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_String_440", %_TyDescrTy_Typ** %"$msgobj_td_6467", align 8 - %"$msgobj_v_6469" = getelementptr i8, i8* %"$msgobj_6462", i32 25 - %"$msgobj_v_6470" = bitcast i8* %"$msgobj_v_6469" to %String* - store %String { i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$stringlit_6468", i32 0, i32 0), i32 15 }, %String* %"$msgobj_v_6470", align 8 - %"$msgobj_fname_6472" = getelementptr i8, i8* %"$msgobj_6462", i32 41 - %"$msgobj_fname_6473" = bitcast i8* %"$msgobj_fname_6472" to %String* - store %String { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$stringlit_6471", i32 0, i32 0), i32 6 }, %String* %"$msgobj_fname_6473", align 8 - %"$msgobj_td_6474" = getelementptr i8, i8* %"$msgobj_6462", i32 57 - %"$msgobj_td_6475" = bitcast i8* %"$msgobj_td_6474" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Bystr32_456", %_TyDescrTy_Typ** %"$msgobj_td_6475", align 8 - %"$msgobj_v_6476" = getelementptr i8, i8* %"$msgobj_6462", i32 65 - %"$msgobj_v_6477" = bitcast i8* %"$msgobj_v_6476" to [32 x i8]* - store [32 x i8] %parent, [32 x i8]* %"$msgobj_v_6477", align 1 - %"$msgobj_fname_6479" = getelementptr i8, i8* %"$msgobj_6462", i32 97 - %"$msgobj_fname_6480" = bitcast i8* %"$msgobj_fname_6479" to %String* - store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_6478", i32 0, i32 0), i32 5 }, %String* %"$msgobj_fname_6480", align 8 - %"$msgobj_td_6481" = getelementptr i8, i8* %"$msgobj_6462", i32 113 - %"$msgobj_td_6482" = bitcast i8* %"$msgobj_td_6481" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_String_440", %_TyDescrTy_Typ** %"$msgobj_td_6482", align 8 - %"$msgobj_v_6483" = getelementptr i8, i8* %"$msgobj_6462", i32 121 - %"$msgobj_v_6484" = bitcast i8* %"$msgobj_v_6483" to %String* - store %String %label, %String* %"$msgobj_v_6484", align 8 - %"$msgobj_fname_6486" = getelementptr i8, i8* %"$msgobj_6462", i32 137 - %"$msgobj_fname_6487" = bitcast i8* %"$msgobj_fname_6486" to %String* - store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_6485", i32 0, i32 0), i32 5 }, %String* %"$msgobj_fname_6487", align 8 - %"$msgobj_td_6488" = getelementptr i8, i8* %"$msgobj_6462", i32 153 - %"$msgobj_td_6489" = bitcast i8* %"$msgobj_td_6488" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_458", %_TyDescrTy_Typ** %"$msgobj_td_6489", align 8 - %"$recordOwner_6490" = load [20 x i8], [20 x i8]* %recordOwner, align 1 - %"$msgobj_v_6491" = getelementptr i8, i8* %"$msgobj_6462", i32 161 - %"$msgobj_v_6492" = bitcast i8* %"$msgobj_v_6491" to [20 x i8]* - store [20 x i8] %"$recordOwner_6490", [20 x i8]* %"$msgobj_v_6492", align 1 - %"$msgobj_fname_6494" = getelementptr i8, i8* %"$msgobj_6462", i32 181 - %"$msgobj_fname_6495" = bitcast i8* %"$msgobj_fname_6494" to %String* - store %String { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$stringlit_6493", i32 0, i32 0), i32 7 }, %String* %"$msgobj_fname_6495", align 8 - %"$msgobj_td_6496" = getelementptr i8, i8* %"$msgobj_6462", i32 197 - %"$msgobj_td_6497" = bitcast i8* %"$msgobj_td_6496" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Uint128_434", %_TyDescrTy_Typ** %"$msgobj_td_6497", align 8 - %"$msgobj_v_6498" = getelementptr i8, i8* %"$msgobj_6462", i32 205 - %"$msgobj_v_6499" = bitcast i8* %"$msgobj_v_6498" to %Uint128* - store %Uint128 zeroinitializer, %Uint128* %"$msgobj_v_6499", align 8 - %"$msgobj_fname_6501" = getelementptr i8, i8* %"$msgobj_6462", i32 221 - %"$msgobj_fname_6502" = bitcast i8* %"$msgobj_fname_6501" to %String* - store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_6500", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_6502", align 8 - %"$msgobj_td_6503" = getelementptr i8, i8* %"$msgobj_6462", i32 237 - %"$msgobj_td_6504" = bitcast i8* %"$msgobj_td_6503" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_458", %_TyDescrTy_Typ** %"$msgobj_td_6504", align 8 - %"$msgobj_v_6505" = getelementptr i8, i8* %"$msgobj_6462", i32 245 - %"$msgobj_v_6506" = bitcast i8* %"$msgobj_v_6505" to [20 x i8]* - store [20 x i8] %_sender, [20 x i8]* %"$msgobj_v_6506", align 1 - store i8* %"$msgobj_6462", i8** %"$m_21", align 8, !dbg !619 - %"$gasrem_6508" = load i64, i64* @_gasrem, align 8 - %"$gascmp_6509" = icmp ugt i64 1, %"$gasrem_6508" - br i1 %"$gascmp_6509", label %"$out_of_gas_6510", label %"$have_gas_6511" - -"$out_of_gas_6510": ; preds = %"$have_gas_6460" - call void @_out_of_gas() - br label %"$have_gas_6511" - -"$have_gas_6511": ; preds = %"$out_of_gas_6510", %"$have_gas_6460" - %"$consume_6512" = sub i64 %"$gasrem_6508", 1 - store i64 %"$consume_6512", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata i8** %"$m_21", metadata !1163, metadata !DIExpression()), !dbg !1164 + %"$gasrem_6562" = load i64, i64* @_gasrem, align 8 + %"$gascmp_6563" = icmp ugt i64 1, %"$gasrem_6562" + br i1 %"$gascmp_6563", label %"$out_of_gas_6564", label %"$have_gas_6565" + +"$out_of_gas_6564": ; preds = %"$have_gas_6560" + call void @_out_of_gas() + br label %"$have_gas_6565" + +"$have_gas_6565": ; preds = %"$out_of_gas_6564", %"$have_gas_6560" + %"$consume_6566" = sub i64 %"$gasrem_6562", 1 + store i64 %"$consume_6566", i64* @_gasrem, align 8 + %"$msgobj_6567_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$msgobj_6567_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_6567_salloc_load", i64 265) + %"$msgobj_6567_salloc" = bitcast i8* %"$msgobj_6567_salloc_salloc" to [265 x i8]* + %"$msgobj_6567" = bitcast [265 x i8]* %"$msgobj_6567_salloc" to i8* + store i8 6, i8* %"$msgobj_6567", align 1 + %"$msgobj_fname_6569" = getelementptr i8, i8* %"$msgobj_6567", i32 1 + %"$msgobj_fname_6570" = bitcast i8* %"$msgobj_fname_6569" to %String* + store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_6568", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_6570", align 8 + %"$msgobj_td_6571" = getelementptr i8, i8* %"$msgobj_6567", i32 17 + %"$msgobj_td_6572" = bitcast i8* %"$msgobj_td_6571" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_String_440", %_TyDescrTy_Typ** %"$msgobj_td_6572", align 8 + %"$msgobj_v_6574" = getelementptr i8, i8* %"$msgobj_6567", i32 25 + %"$msgobj_v_6575" = bitcast i8* %"$msgobj_v_6574" to %String* + store %String { i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$stringlit_6573", i32 0, i32 0), i32 15 }, %String* %"$msgobj_v_6575", align 8 + %"$msgobj_fname_6577" = getelementptr i8, i8* %"$msgobj_6567", i32 41 + %"$msgobj_fname_6578" = bitcast i8* %"$msgobj_fname_6577" to %String* + store %String { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$stringlit_6576", i32 0, i32 0), i32 6 }, %String* %"$msgobj_fname_6578", align 8 + %"$msgobj_td_6579" = getelementptr i8, i8* %"$msgobj_6567", i32 57 + %"$msgobj_td_6580" = bitcast i8* %"$msgobj_td_6579" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Bystr32_456", %_TyDescrTy_Typ** %"$msgobj_td_6580", align 8 + %"$msgobj_v_6581" = getelementptr i8, i8* %"$msgobj_6567", i32 65 + %"$msgobj_v_6582" = bitcast i8* %"$msgobj_v_6581" to [32 x i8]* + store [32 x i8] %parent, [32 x i8]* %"$msgobj_v_6582", align 1 + %"$msgobj_fname_6584" = getelementptr i8, i8* %"$msgobj_6567", i32 97 + %"$msgobj_fname_6585" = bitcast i8* %"$msgobj_fname_6584" to %String* + store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_6583", i32 0, i32 0), i32 5 }, %String* %"$msgobj_fname_6585", align 8 + %"$msgobj_td_6586" = getelementptr i8, i8* %"$msgobj_6567", i32 113 + %"$msgobj_td_6587" = bitcast i8* %"$msgobj_td_6586" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_String_440", %_TyDescrTy_Typ** %"$msgobj_td_6587", align 8 + %"$msgobj_v_6588" = getelementptr i8, i8* %"$msgobj_6567", i32 121 + %"$msgobj_v_6589" = bitcast i8* %"$msgobj_v_6588" to %String* + store %String %label, %String* %"$msgobj_v_6589", align 8 + %"$msgobj_fname_6591" = getelementptr i8, i8* %"$msgobj_6567", i32 137 + %"$msgobj_fname_6592" = bitcast i8* %"$msgobj_fname_6591" to %String* + store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_6590", i32 0, i32 0), i32 5 }, %String* %"$msgobj_fname_6592", align 8 + %"$msgobj_td_6593" = getelementptr i8, i8* %"$msgobj_6567", i32 153 + %"$msgobj_td_6594" = bitcast i8* %"$msgobj_td_6593" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_458", %_TyDescrTy_Typ** %"$msgobj_td_6594", align 8 + %"$recordOwner_6595" = load [20 x i8], [20 x i8]* %recordOwner, align 1 + %"$msgobj_v_6596" = getelementptr i8, i8* %"$msgobj_6567", i32 161 + %"$msgobj_v_6597" = bitcast i8* %"$msgobj_v_6596" to [20 x i8]* + store [20 x i8] %"$recordOwner_6595", [20 x i8]* %"$msgobj_v_6597", align 1 + %"$msgobj_fname_6599" = getelementptr i8, i8* %"$msgobj_6567", i32 181 + %"$msgobj_fname_6600" = bitcast i8* %"$msgobj_fname_6599" to %String* + store %String { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$stringlit_6598", i32 0, i32 0), i32 7 }, %String* %"$msgobj_fname_6600", align 8 + %"$msgobj_td_6601" = getelementptr i8, i8* %"$msgobj_6567", i32 197 + %"$msgobj_td_6602" = bitcast i8* %"$msgobj_td_6601" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Uint128_434", %_TyDescrTy_Typ** %"$msgobj_td_6602", align 8 + %"$msgobj_v_6603" = getelementptr i8, i8* %"$msgobj_6567", i32 205 + %"$msgobj_v_6604" = bitcast i8* %"$msgobj_v_6603" to %Uint128* + store %Uint128 zeroinitializer, %Uint128* %"$msgobj_v_6604", align 8 + %"$msgobj_fname_6606" = getelementptr i8, i8* %"$msgobj_6567", i32 221 + %"$msgobj_fname_6607" = bitcast i8* %"$msgobj_fname_6606" to %String* + store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_6605", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_6607", align 8 + %"$msgobj_td_6608" = getelementptr i8, i8* %"$msgobj_6567", i32 237 + %"$msgobj_td_6609" = bitcast i8* %"$msgobj_td_6608" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_458", %_TyDescrTy_Typ** %"$msgobj_td_6609", align 8 + %"$msgobj_v_6610" = getelementptr i8, i8* %"$msgobj_6567", i32 245 + %"$msgobj_v_6611" = bitcast i8* %"$msgobj_v_6610" to [20 x i8]* + store [20 x i8] %_sender, [20 x i8]* %"$msgobj_v_6611", align 1 + store i8* %"$msgobj_6567", i8** %"$m_21", align 8, !dbg !1165 + %"$gasrem_6613" = load i64, i64* @_gasrem, align 8 + %"$gascmp_6614" = icmp ugt i64 1, %"$gasrem_6613" + br i1 %"$gascmp_6614", label %"$out_of_gas_6615", label %"$have_gas_6616" + +"$out_of_gas_6615": ; preds = %"$have_gas_6565" + call void @_out_of_gas() + br label %"$have_gas_6616" + +"$have_gas_6616": ; preds = %"$out_of_gas_6615", %"$have_gas_6565" + %"$consume_6617" = sub i64 %"$gasrem_6613", 1 + store i64 %"$consume_6617", i64* @_gasrem, align 8 %"$ud-registry.oneMsg_161" = alloca %TName_List_Message*, align 8 - %"$ud-registry.oneMsg_6513" = load { %TName_List_Message* (i8*, i8*)*, i8* }, { %TName_List_Message* (i8*, i8*)*, i8* }* @ud-registry.oneMsg, align 8 - %"$ud-registry.oneMsg_fptr_6514" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$ud-registry.oneMsg_6513", 0 - %"$ud-registry.oneMsg_envptr_6515" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$ud-registry.oneMsg_6513", 1 - %"$$m_21_6516" = load i8*, i8** %"$m_21", align 8 - %"$ud-registry.oneMsg_call_6517" = call %TName_List_Message* %"$ud-registry.oneMsg_fptr_6514"(i8* %"$ud-registry.oneMsg_envptr_6515", i8* %"$$m_21_6516"), !dbg !620 - store %TName_List_Message* %"$ud-registry.oneMsg_call_6517", %TName_List_Message** %"$ud-registry.oneMsg_161", align 8, !dbg !620 - %"$$ud-registry.oneMsg_161_6518" = load %TName_List_Message*, %TName_List_Message** %"$ud-registry.oneMsg_161", align 8 - store %TName_List_Message* %"$$ud-registry.oneMsg_161_6518", %TName_List_Message** %msgs9, align 8, !dbg !620 - %"$msgs_6519" = load %TName_List_Message*, %TName_List_Message** %msgs9, align 8 - %"$$msgs_6519_6520" = bitcast %TName_List_Message* %"$msgs_6519" to i8* - %"$_literal_cost_call_6521" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_467", i8* %"$$msgs_6519_6520") - %"$gasrem_6522" = load i64, i64* @_gasrem, align 8 - %"$gascmp_6523" = icmp ugt i64 %"$_literal_cost_call_6521", %"$gasrem_6522" - br i1 %"$gascmp_6523", label %"$out_of_gas_6524", label %"$have_gas_6525" - -"$out_of_gas_6524": ; preds = %"$have_gas_6511" - call void @_out_of_gas() - br label %"$have_gas_6525" - -"$have_gas_6525": ; preds = %"$out_of_gas_6524", %"$have_gas_6511" - %"$consume_6526" = sub i64 %"$gasrem_6522", %"$_literal_cost_call_6521" - store i64 %"$consume_6526", i64* @_gasrem, align 8 - %"$execptr_load_6527" = load i8*, i8** @_execptr, align 8 - %"$msgs_6528" = load %TName_List_Message*, %TName_List_Message** %msgs9, align 8 - call void @_send(i8* %"$execptr_load_6527", %_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_467", %TName_List_Message* %"$msgs_6528"), !dbg !621 - br label %"$matchsucc_6160" - -"$empty_default_6164": ; preds = %"$have_gas_6158" - br label %"$matchsucc_6160" - -"$matchsucc_6160": ; preds = %"$have_gas_6525", %"$have_gas_6404", %"$empty_default_6164" + call void @llvm.dbg.declare(metadata %TName_List_Message** %"$ud-registry.oneMsg_161", metadata !1166, metadata !DIExpression()), !dbg !1167 + %"$ud-registry.oneMsg_6618" = load { %TName_List_Message* (i8*, i8*)*, i8* }, { %TName_List_Message* (i8*, i8*)*, i8* }* @ud-registry.oneMsg, align 8 + %"$ud-registry.oneMsg_fptr_6619" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$ud-registry.oneMsg_6618", 0 + %"$ud-registry.oneMsg_envptr_6620" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$ud-registry.oneMsg_6618", 1 + %"$$m_21_6621" = load i8*, i8** %"$m_21", align 8 + %"$ud-registry.oneMsg_call_6622" = call %TName_List_Message* %"$ud-registry.oneMsg_fptr_6619"(i8* %"$ud-registry.oneMsg_envptr_6620", i8* %"$$m_21_6621"), !dbg !1167 + store %TName_List_Message* %"$ud-registry.oneMsg_call_6622", %TName_List_Message** %"$ud-registry.oneMsg_161", align 8, !dbg !1167 + %"$$ud-registry.oneMsg_161_6623" = load %TName_List_Message*, %TName_List_Message** %"$ud-registry.oneMsg_161", align 8 + store %TName_List_Message* %"$$ud-registry.oneMsg_161_6623", %TName_List_Message** %msgs9, align 8, !dbg !1167 + %"$msgs_6624" = load %TName_List_Message*, %TName_List_Message** %msgs9, align 8 + %"$$msgs_6624_6625" = bitcast %TName_List_Message* %"$msgs_6624" to i8* + %"$_literal_cost_call_6626" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_467", i8* %"$$msgs_6624_6625") + %"$gasrem_6627" = load i64, i64* @_gasrem, align 8 + %"$gascmp_6628" = icmp ugt i64 %"$_literal_cost_call_6626", %"$gasrem_6627" + br i1 %"$gascmp_6628", label %"$out_of_gas_6629", label %"$have_gas_6630" + +"$out_of_gas_6629": ; preds = %"$have_gas_6616" + call void @_out_of_gas() + br label %"$have_gas_6630" + +"$have_gas_6630": ; preds = %"$out_of_gas_6629", %"$have_gas_6616" + %"$consume_6631" = sub i64 %"$gasrem_6627", %"$_literal_cost_call_6626" + store i64 %"$consume_6631", i64* @_gasrem, align 8 + %"$execptr_load_6632" = load i8*, i8** @_execptr, align 8 + %"$msgs_6633" = load %TName_List_Message*, %TName_List_Message** %msgs9, align 8 + call void @_send(i8* %"$execptr_load_6632", %_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_467", %TName_List_Message* %"$msgs_6633"), !dbg !1168 + br label %"$matchsucc_6265" + +"$empty_default_6269": ; preds = %"$have_gas_6263" + br label %"$matchsucc_6265" + +"$matchsucc_6265": ; preds = %"$have_gas_6630", %"$have_gas_6509", %"$empty_default_6269" ret void } -define void @assign(i8* %0) !dbg !622 { -entry: - %"$_amount_6530" = getelementptr i8, i8* %0, i32 0 - %"$_amount_6531" = bitcast i8* %"$_amount_6530" to %Uint128* - %_amount = load %Uint128, %Uint128* %"$_amount_6531", align 8 - %"$_origin_6532" = getelementptr i8, i8* %0, i32 16 - %"$_origin_6533" = bitcast i8* %"$_origin_6532" to [20 x i8]* - %"$_sender_6534" = getelementptr i8, i8* %0, i32 36 - %"$_sender_6535" = bitcast i8* %"$_sender_6534" to [20 x i8]* - %"$parent_6536" = getelementptr i8, i8* %0, i32 56 - %"$parent_6537" = bitcast i8* %"$parent_6536" to [32 x i8]* - %"$label_6538" = getelementptr i8, i8* %0, i32 88 - %"$label_6539" = bitcast i8* %"$label_6538" to %String* - %label = load %String, %String* %"$label_6539", align 8 - %"$owner_6540" = getelementptr i8, i8* %0, i32 104 - %"$owner_6541" = bitcast i8* %"$owner_6540" to [20 x i8]* - call void @"$assign_6052"(%Uint128 %_amount, [20 x i8]* %"$_origin_6533", [20 x i8]* %"$_sender_6535", [32 x i8]* %"$parent_6537", %String %label, [20 x i8]* %"$owner_6541"), !dbg !623 +define void @assign(i8* %0) !dbg !1169 { +entry: + %"$_amount_6641" = getelementptr i8, i8* %0, i32 0 + %"$_amount_6642" = bitcast i8* %"$_amount_6641" to %Uint128* + %_amount = load %Uint128, %Uint128* %"$_amount_6642", align 8 + %"$_origin_6643" = getelementptr i8, i8* %0, i32 16 + %"$_origin_6644" = bitcast i8* %"$_origin_6643" to [20 x i8]* + %"$_sender_6645" = getelementptr i8, i8* %0, i32 36 + %"$_sender_6646" = bitcast i8* %"$_sender_6645" to [20 x i8]* + %"$parent_6647" = getelementptr i8, i8* %0, i32 56 + %"$parent_6648" = bitcast i8* %"$parent_6647" to [32 x i8]* + %"$label_6649" = getelementptr i8, i8* %0, i32 88 + %"$label_6650" = bitcast i8* %"$label_6649" to %String* + %label = load %String, %String* %"$label_6650", align 8 + %"$owner_6651" = getelementptr i8, i8* %0, i32 104 + %"$owner_6652" = bitcast i8* %"$owner_6651" to [20 x i8]* + call void @"$assign_6157"(%Uint128 %_amount, [20 x i8]* %"$_origin_6644", [20 x i8]* %"$_sender_6646", [32 x i8]* %"$parent_6648", %String %label, [20 x i8]* %"$owner_6652"), !dbg !1170 ret void } -define internal void @"$bestow_6542"(%Uint128 %_amount, [20 x i8]* %"$_origin_6543", [20 x i8]* %"$_sender_6544", %String %label, [20 x i8]* %"$owner_6545", [20 x i8]* %"$resolver_6546") !dbg !624 { -entry: - %_origin = load [20 x i8], [20 x i8]* %"$_origin_6543", align 1 - %_sender = load [20 x i8], [20 x i8]* %"$_sender_6544", align 1 - %owner = load [20 x i8], [20 x i8]* %"$owner_6545", align 1 - %resolver = load [20 x i8], [20 x i8]* %"$resolver_6546", align 1 +define internal void @"$bestow_6653"(%Uint128 %_amount, [20 x i8]* %"$_origin_6654", [20 x i8]* %"$_sender_6655", %String %label, [20 x i8]* %"$owner_6656", [20 x i8]* %"$resolver_6657") !dbg !1171 { +entry: + %"$resolver_7087" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$resolver_6657", [20 x i8]** %"$resolver_7087", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$resolver_7087", metadata !1172, metadata !DIExpression()), !dbg !1173 + %"$owner_7086" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$owner_6656", [20 x i8]** %"$owner_7086", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$owner_7086", metadata !1174, metadata !DIExpression()), !dbg !1175 + %"$label_7085" = alloca %String, align 8 + store %String %label, %String* %"$label_7085", align 8 + call void @llvm.dbg.declare(metadata %String* %"$label_7085", metadata !1176, metadata !DIExpression()), !dbg !1177 + %"$_sender_7084" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_sender_6655", [20 x i8]** %"$_sender_7084", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_sender_7084", metadata !1178, metadata !DIExpression()), !dbg !1179 + %"$_origin_7083" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_origin_6654", [20 x i8]** %"$_origin_7083", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_origin_7083", metadata !1180, metadata !DIExpression()), !dbg !1179 + %"$_amount_7082" = alloca %Uint128, align 8 + store %Uint128 %_amount, %Uint128* %"$_amount_7082", align 8 + call void @llvm.dbg.declare(metadata %Uint128* %"$_amount_7082", metadata !1181, metadata !DIExpression()), !dbg !1179 + %_origin = load [20 x i8], [20 x i8]* %"$_origin_6654", align 1 + %_sender = load [20 x i8], [20 x i8]* %"$_sender_6655", align 1 + %owner = load [20 x i8], [20 x i8]* %"$owner_6656", align 1 + %resolver = load [20 x i8], [20 x i8]* %"$resolver_6657", align 1 %currentAdmins = alloca %TName_List_ByStr20*, align 8 - %"$execptr_load_6548" = load i8*, i8** @_execptr, align 8 - %"$currentAdmins_call_6549" = call i8* @_fetch_field(i8* %"$execptr_load_6548", i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$admins_6547", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_ADT_List_ByStr20_466", i32 0, i8* null, i32 1), !dbg !625 - %"$currentAdmins_6550" = bitcast i8* %"$currentAdmins_call_6549" to %TName_List_ByStr20* - store %TName_List_ByStr20* %"$currentAdmins_6550", %TName_List_ByStr20** %currentAdmins, align 8 - %"$currentAdmins_6551" = load %TName_List_ByStr20*, %TName_List_ByStr20** %currentAdmins, align 8 - %"$$currentAdmins_6551_6552" = bitcast %TName_List_ByStr20* %"$currentAdmins_6551" to i8* - %"$_literal_cost_call_6553" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_List_ByStr20_466", i8* %"$$currentAdmins_6551_6552") - %"$gasadd_6554" = add i64 %"$_literal_cost_call_6553", 0 - %"$gasrem_6555" = load i64, i64* @_gasrem, align 8 - %"$gascmp_6556" = icmp ugt i64 %"$gasadd_6554", %"$gasrem_6555" - br i1 %"$gascmp_6556", label %"$out_of_gas_6557", label %"$have_gas_6558" - -"$out_of_gas_6557": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_6558" - -"$have_gas_6558": ; preds = %"$out_of_gas_6557", %entry - %"$consume_6559" = sub i64 %"$gasrem_6555", %"$gasadd_6554" - store i64 %"$consume_6559", i64* @_gasrem, align 8 - %"$gasrem_6560" = load i64, i64* @_gasrem, align 8 - %"$gascmp_6561" = icmp ugt i64 1, %"$gasrem_6560" - br i1 %"$gascmp_6561", label %"$out_of_gas_6562", label %"$have_gas_6563" - -"$out_of_gas_6562": ; preds = %"$have_gas_6558" - call void @_out_of_gas() - br label %"$have_gas_6563" - -"$have_gas_6563": ; preds = %"$out_of_gas_6562", %"$have_gas_6558" - %"$consume_6564" = sub i64 %"$gasrem_6560", 1 - store i64 %"$consume_6564", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_List_ByStr20** %currentAdmins, metadata !1182, metadata !DIExpression()), !dbg !1183 + %"$execptr_load_6659" = load i8*, i8** @_execptr, align 8 + %"$currentAdmins_call_6660" = call i8* @_fetch_field(i8* %"$execptr_load_6659", i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$admins_6658", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_ADT_List_ByStr20_466", i32 0, i8* null, i32 1), !dbg !1183 + %"$currentAdmins_6661" = bitcast i8* %"$currentAdmins_call_6660" to %TName_List_ByStr20* + store %TName_List_ByStr20* %"$currentAdmins_6661", %TName_List_ByStr20** %currentAdmins, align 8 + %"$currentAdmins_6662" = load %TName_List_ByStr20*, %TName_List_ByStr20** %currentAdmins, align 8 + %"$$currentAdmins_6662_6663" = bitcast %TName_List_ByStr20* %"$currentAdmins_6662" to i8* + %"$_literal_cost_call_6664" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_List_ByStr20_466", i8* %"$$currentAdmins_6662_6663") + %"$gasadd_6665" = add i64 %"$_literal_cost_call_6664", 0 + %"$gasrem_6666" = load i64, i64* @_gasrem, align 8 + %"$gascmp_6667" = icmp ugt i64 %"$gasadd_6665", %"$gasrem_6666" + br i1 %"$gascmp_6667", label %"$out_of_gas_6668", label %"$have_gas_6669" + +"$out_of_gas_6668": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_6669" + +"$have_gas_6669": ; preds = %"$out_of_gas_6668", %entry + %"$consume_6670" = sub i64 %"$gasrem_6666", %"$gasadd_6665" + store i64 %"$consume_6670", i64* @_gasrem, align 8 + %"$gasrem_6671" = load i64, i64* @_gasrem, align 8 + %"$gascmp_6672" = icmp ugt i64 1, %"$gasrem_6671" + br i1 %"$gascmp_6672", label %"$out_of_gas_6673", label %"$have_gas_6674" + +"$out_of_gas_6673": ; preds = %"$have_gas_6669" + call void @_out_of_gas() + br label %"$have_gas_6674" + +"$have_gas_6674": ; preds = %"$out_of_gas_6673", %"$have_gas_6669" + %"$consume_6675" = sub i64 %"$gasrem_6671", 1 + store i64 %"$consume_6675", i64* @_gasrem, align 8 %node = alloca [32 x i8], align 1 - %"$gasrem_6565" = load i64, i64* @_gasrem, align 8 - %"$gascmp_6566" = icmp ugt i64 1, %"$gasrem_6565" - br i1 %"$gascmp_6566", label %"$out_of_gas_6567", label %"$have_gas_6568" + call void @llvm.dbg.declare(metadata [32 x i8]* %node, metadata !1184, metadata !DIExpression()), !dbg !1185 + %"$gasrem_6676" = load i64, i64* @_gasrem, align 8 + %"$gascmp_6677" = icmp ugt i64 1, %"$gasrem_6676" + br i1 %"$gascmp_6677", label %"$out_of_gas_6678", label %"$have_gas_6679" -"$out_of_gas_6567": ; preds = %"$have_gas_6563" +"$out_of_gas_6678": ; preds = %"$have_gas_6674" call void @_out_of_gas() - br label %"$have_gas_6568" + br label %"$have_gas_6679" -"$have_gas_6568": ; preds = %"$out_of_gas_6567", %"$have_gas_6563" - %"$consume_6569" = sub i64 %"$gasrem_6565", 1 - store i64 %"$consume_6569", i64* @_gasrem, align 8 +"$have_gas_6679": ; preds = %"$out_of_gas_6678", %"$have_gas_6674" + %"$consume_6680" = sub i64 %"$gasrem_6676", 1 + store i64 %"$consume_6680", i64* @_gasrem, align 8 %"$ud-registry.parentLabelToNode_185" = alloca { void (i8*, [32 x i8]*, %String)*, i8* }, align 8 - %"$ud-registry.parentLabelToNode_6570" = 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_6571" = extractvalue { { void (i8*, [32 x i8]*, %String)*, i8* } (i8*, [32 x i8]*)*, i8* } %"$ud-registry.parentLabelToNode_6570", 0 - %"$ud-registry.parentLabelToNode_envptr_6572" = extractvalue { { void (i8*, [32 x i8]*, %String)*, i8* } (i8*, [32 x i8]*)*, i8* } %"$ud-registry.parentLabelToNode_6570", 1 - %"$ud-registry.parentLabelToNode_rootNode_6573" = alloca [32 x i8], align 1 - %"$rootNode_6574" = load [32 x i8], [32 x i8]* @_cparam_rootNode, align 1 - store [32 x i8] %"$rootNode_6574", [32 x i8]* %"$ud-registry.parentLabelToNode_rootNode_6573", align 1 - %"$ud-registry.parentLabelToNode_call_6575" = call { void (i8*, [32 x i8]*, %String)*, i8* } %"$ud-registry.parentLabelToNode_fptr_6571"(i8* %"$ud-registry.parentLabelToNode_envptr_6572", [32 x i8]* %"$ud-registry.parentLabelToNode_rootNode_6573"), !dbg !626 - store { void (i8*, [32 x i8]*, %String)*, i8* } %"$ud-registry.parentLabelToNode_call_6575", { void (i8*, [32 x i8]*, %String)*, i8* }* %"$ud-registry.parentLabelToNode_185", align 8, !dbg !626 + %"$ud-registry.parentLabelToNode_6681" = 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_6682" = extractvalue { { void (i8*, [32 x i8]*, %String)*, i8* } (i8*, [32 x i8]*)*, i8* } %"$ud-registry.parentLabelToNode_6681", 0 + %"$ud-registry.parentLabelToNode_envptr_6683" = extractvalue { { void (i8*, [32 x i8]*, %String)*, i8* } (i8*, [32 x i8]*)*, i8* } %"$ud-registry.parentLabelToNode_6681", 1 + %"$ud-registry.parentLabelToNode_rootNode_6684" = alloca [32 x i8], align 1 + %"$rootNode_6685" = load [32 x i8], [32 x i8]* @_cparam_rootNode, align 1 + store [32 x i8] %"$rootNode_6685", [32 x i8]* %"$ud-registry.parentLabelToNode_rootNode_6684", align 1 + %"$ud-registry.parentLabelToNode_call_6686" = call { void (i8*, [32 x i8]*, %String)*, i8* } %"$ud-registry.parentLabelToNode_fptr_6682"(i8* %"$ud-registry.parentLabelToNode_envptr_6683", [32 x i8]* %"$ud-registry.parentLabelToNode_rootNode_6684"), !dbg !1186 + store { void (i8*, [32 x i8]*, %String)*, i8* } %"$ud-registry.parentLabelToNode_call_6686", { void (i8*, [32 x i8]*, %String)*, i8* }* %"$ud-registry.parentLabelToNode_185", align 8, !dbg !1186 %"$ud-registry.parentLabelToNode_186" = alloca [32 x i8], align 1 - %"$$ud-registry.parentLabelToNode_185_6576" = load { void (i8*, [32 x i8]*, %String)*, i8* }, { void (i8*, [32 x i8]*, %String)*, i8* }* %"$ud-registry.parentLabelToNode_185", align 8 - %"$$ud-registry.parentLabelToNode_185_fptr_6577" = extractvalue { void (i8*, [32 x i8]*, %String)*, i8* } %"$$ud-registry.parentLabelToNode_185_6576", 0 - %"$$ud-registry.parentLabelToNode_185_envptr_6578" = extractvalue { void (i8*, [32 x i8]*, %String)*, i8* } %"$$ud-registry.parentLabelToNode_185_6576", 1 - %"$$ud-registry.parentLabelToNode_185_retalloca_6579" = alloca [32 x i8], align 1 - call void %"$$ud-registry.parentLabelToNode_185_fptr_6577"(i8* %"$$ud-registry.parentLabelToNode_185_envptr_6578", [32 x i8]* %"$$ud-registry.parentLabelToNode_185_retalloca_6579", %String %label), !dbg !626 - %"$$ud-registry.parentLabelToNode_185_ret_6580" = load [32 x i8], [32 x i8]* %"$$ud-registry.parentLabelToNode_185_retalloca_6579", align 1 - store [32 x i8] %"$$ud-registry.parentLabelToNode_185_ret_6580", [32 x i8]* %"$ud-registry.parentLabelToNode_186", align 1, !dbg !626 - %"$$ud-registry.parentLabelToNode_186_6581" = load [32 x i8], [32 x i8]* %"$ud-registry.parentLabelToNode_186", align 1 - store [32 x i8] %"$$ud-registry.parentLabelToNode_186_6581", [32 x i8]* %node, align 1, !dbg !626 + call void @llvm.dbg.declare(metadata [32 x i8]* %"$ud-registry.parentLabelToNode_186", metadata !1187, metadata !DIExpression()), !dbg !1186 + %"$$ud-registry.parentLabelToNode_185_6687" = load { void (i8*, [32 x i8]*, %String)*, i8* }, { void (i8*, [32 x i8]*, %String)*, i8* }* %"$ud-registry.parentLabelToNode_185", align 8 + %"$$ud-registry.parentLabelToNode_185_fptr_6688" = extractvalue { void (i8*, [32 x i8]*, %String)*, i8* } %"$$ud-registry.parentLabelToNode_185_6687", 0 + %"$$ud-registry.parentLabelToNode_185_envptr_6689" = extractvalue { void (i8*, [32 x i8]*, %String)*, i8* } %"$$ud-registry.parentLabelToNode_185_6687", 1 + %"$$ud-registry.parentLabelToNode_185_retalloca_6690" = alloca [32 x i8], align 1 + call void %"$$ud-registry.parentLabelToNode_185_fptr_6688"(i8* %"$$ud-registry.parentLabelToNode_185_envptr_6689", [32 x i8]* %"$$ud-registry.parentLabelToNode_185_retalloca_6690", %String %label), !dbg !1186 + %"$$ud-registry.parentLabelToNode_185_ret_6691" = load [32 x i8], [32 x i8]* %"$$ud-registry.parentLabelToNode_185_retalloca_6690", align 1 + store [32 x i8] %"$$ud-registry.parentLabelToNode_185_ret_6691", [32 x i8]* %"$ud-registry.parentLabelToNode_186", align 1, !dbg !1186 + %"$$ud-registry.parentLabelToNode_186_6692" = load [32 x i8], [32 x i8]* %"$ud-registry.parentLabelToNode_186", align 1 + store [32 x i8] %"$$ud-registry.parentLabelToNode_186_6692", [32 x i8]* %node, align 1, !dbg !1186 %recordExists = alloca %TName_Bool*, align 8 - %"$indices_buf_6582_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$indices_buf_6582_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_6582_salloc_load", i64 32) - %"$indices_buf_6582_salloc" = bitcast i8* %"$indices_buf_6582_salloc_salloc" to [32 x i8]* - %"$indices_buf_6582" = bitcast [32 x i8]* %"$indices_buf_6582_salloc" to i8* - %"$node_6583" = load [32 x i8], [32 x i8]* %node, align 1 - %"$indices_gep_6584" = getelementptr i8, i8* %"$indices_buf_6582", i32 0 - %indices_cast = bitcast i8* %"$indices_gep_6584" to [32 x i8]* - store [32 x i8] %"$node_6583", [32 x i8]* %indices_cast, align 1 - %"$execptr_load_6586" = load i8*, i8** @_execptr, align 8 - %"$recordExists_call_6587" = call i8* @_fetch_field(i8* %"$execptr_load_6586", i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$records_6585", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_472", i32 1, i8* %"$indices_buf_6582", i32 0), !dbg !627 - %"$recordExists_6588" = bitcast i8* %"$recordExists_call_6587" to %TName_Bool* - store %TName_Bool* %"$recordExists_6588", %TName_Bool** %recordExists, align 8 - %"$recordExists_6589" = load %TName_Bool*, %TName_Bool** %recordExists, align 8 - %"$$recordExists_6589_6590" = bitcast %TName_Bool* %"$recordExists_6589" to i8* - %"$_literal_cost_call_6591" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_468", i8* %"$$recordExists_6589_6590") - %"$gasadd_6592" = add i64 %"$_literal_cost_call_6591", 0 - %"$gasadd_6593" = add i64 %"$gasadd_6592", 1 - %"$gasrem_6594" = load i64, i64* @_gasrem, align 8 - %"$gascmp_6595" = icmp ugt i64 %"$gasadd_6593", %"$gasrem_6594" - br i1 %"$gascmp_6595", label %"$out_of_gas_6596", label %"$have_gas_6597" - -"$out_of_gas_6596": ; preds = %"$have_gas_6568" - call void @_out_of_gas() - br label %"$have_gas_6597" - -"$have_gas_6597": ; preds = %"$out_of_gas_6596", %"$have_gas_6568" - %"$consume_6598" = sub i64 %"$gasrem_6594", %"$gasadd_6593" - store i64 %"$consume_6598", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %recordExists, metadata !1188, metadata !DIExpression()), !dbg !1189 + %"$indices_buf_6693_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$indices_buf_6693_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_6693_salloc_load", i64 32) + %"$indices_buf_6693_salloc" = bitcast i8* %"$indices_buf_6693_salloc_salloc" to [32 x i8]* + %"$indices_buf_6693" = bitcast [32 x i8]* %"$indices_buf_6693_salloc" to i8* + %"$node_6694" = load [32 x i8], [32 x i8]* %node, align 1 + %"$indices_gep_6695" = getelementptr i8, i8* %"$indices_buf_6693", i32 0 + %indices_cast = bitcast i8* %"$indices_gep_6695" to [32 x i8]* + store [32 x i8] %"$node_6694", [32 x i8]* %indices_cast, align 1 + %"$execptr_load_6697" = load i8*, i8** @_execptr, align 8 + %"$recordExists_call_6698" = call i8* @_fetch_field(i8* %"$execptr_load_6697", i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$records_6696", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_472", i32 1, i8* %"$indices_buf_6693", i32 0), !dbg !1189 + %"$recordExists_6699" = bitcast i8* %"$recordExists_call_6698" to %TName_Bool* + store %TName_Bool* %"$recordExists_6699", %TName_Bool** %recordExists, align 8 + %"$recordExists_6700" = load %TName_Bool*, %TName_Bool** %recordExists, align 8 + %"$$recordExists_6700_6701" = bitcast %TName_Bool* %"$recordExists_6700" to i8* + %"$_literal_cost_call_6702" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_468", i8* %"$$recordExists_6700_6701") + %"$gasadd_6703" = add i64 %"$_literal_cost_call_6702", 0 + %"$gasadd_6704" = add i64 %"$gasadd_6703", 1 + %"$gasrem_6705" = load i64, i64* @_gasrem, align 8 + %"$gascmp_6706" = icmp ugt i64 %"$gasadd_6704", %"$gasrem_6705" + br i1 %"$gascmp_6706", label %"$out_of_gas_6707", label %"$have_gas_6708" + +"$out_of_gas_6707": ; preds = %"$have_gas_6679" + call void @_out_of_gas() + br label %"$have_gas_6708" + +"$have_gas_6708": ; preds = %"$out_of_gas_6707", %"$have_gas_6679" + %"$consume_6709" = sub i64 %"$gasrem_6705", %"$gasadd_6704" + store i64 %"$consume_6709", i64* @_gasrem, align 8 %maybeRecord = alloca %TName_Option_ud-registry.Record*, align 8 - %"$indices_buf_6599_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$indices_buf_6599_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_6599_salloc_load", i64 32) - %"$indices_buf_6599_salloc" = bitcast i8* %"$indices_buf_6599_salloc_salloc" to [32 x i8]* - %"$indices_buf_6599" = bitcast [32 x i8]* %"$indices_buf_6599_salloc" to i8* - %"$node_6600" = load [32 x i8], [32 x i8]* %node, align 1 - %"$indices_gep_6601" = getelementptr i8, i8* %"$indices_buf_6599", i32 0 - %indices_cast1 = bitcast i8* %"$indices_gep_6601" to [32 x i8]* - store [32 x i8] %"$node_6600", [32 x i8]* %indices_cast1, align 1 - %"$execptr_load_6603" = load i8*, i8** @_execptr, align 8 - %"$maybeRecord_call_6604" = call i8* @_fetch_field(i8* %"$execptr_load_6603", i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$records_6602", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_472", i32 1, i8* %"$indices_buf_6599", i32 1), !dbg !628 - %"$maybeRecord_6605" = bitcast i8* %"$maybeRecord_call_6604" to %TName_Option_ud-registry.Record* - store %TName_Option_ud-registry.Record* %"$maybeRecord_6605", %TName_Option_ud-registry.Record** %maybeRecord, align 8 - %"$maybeRecord_6606" = load %TName_Option_ud-registry.Record*, %TName_Option_ud-registry.Record** %maybeRecord, align 8 - %"$$maybeRecord_6606_6607" = bitcast %TName_Option_ud-registry.Record* %"$maybeRecord_6606" to i8* - %"$_literal_cost_call_6608" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_ud-registry.Record_463", i8* %"$$maybeRecord_6606_6607") - %"$gasadd_6609" = add i64 %"$_literal_cost_call_6608", 0 - %"$gasadd_6610" = add i64 %"$gasadd_6609", 1 - %"$gasrem_6611" = load i64, i64* @_gasrem, align 8 - %"$gascmp_6612" = icmp ugt i64 %"$gasadd_6610", %"$gasrem_6611" - br i1 %"$gascmp_6612", label %"$out_of_gas_6613", label %"$have_gas_6614" - -"$out_of_gas_6613": ; preds = %"$have_gas_6597" - call void @_out_of_gas() - br label %"$have_gas_6614" - -"$have_gas_6614": ; preds = %"$out_of_gas_6613", %"$have_gas_6597" - %"$consume_6615" = sub i64 %"$gasrem_6611", %"$gasadd_6610" - store i64 %"$consume_6615", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Option_ud-registry.Record** %maybeRecord, metadata !1190, metadata !DIExpression()), !dbg !1191 + %"$indices_buf_6710_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$indices_buf_6710_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_6710_salloc_load", i64 32) + %"$indices_buf_6710_salloc" = bitcast i8* %"$indices_buf_6710_salloc_salloc" to [32 x i8]* + %"$indices_buf_6710" = bitcast [32 x i8]* %"$indices_buf_6710_salloc" to i8* + %"$node_6711" = load [32 x i8], [32 x i8]* %node, align 1 + %"$indices_gep_6712" = getelementptr i8, i8* %"$indices_buf_6710", i32 0 + %indices_cast1 = bitcast i8* %"$indices_gep_6712" to [32 x i8]* + store [32 x i8] %"$node_6711", [32 x i8]* %indices_cast1, align 1 + %"$execptr_load_6714" = load i8*, i8** @_execptr, align 8 + %"$maybeRecord_call_6715" = call i8* @_fetch_field(i8* %"$execptr_load_6714", i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$records_6713", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_472", i32 1, i8* %"$indices_buf_6710", i32 1), !dbg !1191 + %"$maybeRecord_6716" = bitcast i8* %"$maybeRecord_call_6715" to %TName_Option_ud-registry.Record* + store %TName_Option_ud-registry.Record* %"$maybeRecord_6716", %TName_Option_ud-registry.Record** %maybeRecord, align 8 + %"$maybeRecord_6717" = load %TName_Option_ud-registry.Record*, %TName_Option_ud-registry.Record** %maybeRecord, align 8 + %"$$maybeRecord_6717_6718" = bitcast %TName_Option_ud-registry.Record* %"$maybeRecord_6717" to i8* + %"$_literal_cost_call_6719" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_ud-registry.Record_463", i8* %"$$maybeRecord_6717_6718") + %"$gasadd_6720" = add i64 %"$_literal_cost_call_6719", 0 + %"$gasadd_6721" = add i64 %"$gasadd_6720", 1 + %"$gasrem_6722" = load i64, i64* @_gasrem, align 8 + %"$gascmp_6723" = icmp ugt i64 %"$gasadd_6721", %"$gasrem_6722" + br i1 %"$gascmp_6723", label %"$out_of_gas_6724", label %"$have_gas_6725" + +"$out_of_gas_6724": ; preds = %"$have_gas_6708" + call void @_out_of_gas() + br label %"$have_gas_6725" + +"$have_gas_6725": ; preds = %"$out_of_gas_6724", %"$have_gas_6708" + %"$consume_6726" = sub i64 %"$gasrem_6722", %"$gasadd_6721" + store i64 %"$consume_6726", i64* @_gasrem, align 8 %currentRegistrar = alloca [20 x i8], align 1 - %"$execptr_load_6617" = load i8*, i8** @_execptr, align 8 - %"$currentRegistrar_call_6618" = call i8* @_fetch_field(i8* %"$execptr_load_6617", i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$registrar_6616", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Bystr20_458", i32 0, i8* null, i32 1), !dbg !629 - %"$currentRegistrar_6619" = bitcast i8* %"$currentRegistrar_call_6618" to [20 x i8]* - %"$currentRegistrar_6620" = load [20 x i8], [20 x i8]* %"$currentRegistrar_6619", align 1 - store [20 x i8] %"$currentRegistrar_6620", [20 x i8]* %currentRegistrar, align 1 - %"$_literal_cost_currentRegistrar_6621" = alloca [20 x i8], align 1 - %"$currentRegistrar_6622" = load [20 x i8], [20 x i8]* %currentRegistrar, align 1 - store [20 x i8] %"$currentRegistrar_6622", [20 x i8]* %"$_literal_cost_currentRegistrar_6621", align 1 - %"$$_literal_cost_currentRegistrar_6621_6623" = bitcast [20 x i8]* %"$_literal_cost_currentRegistrar_6621" to i8* - %"$_literal_cost_call_6624" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Bystr20_458", i8* %"$$_literal_cost_currentRegistrar_6621_6623") - %"$gasadd_6625" = add i64 %"$_literal_cost_call_6624", 0 - %"$gasrem_6626" = load i64, i64* @_gasrem, align 8 - %"$gascmp_6627" = icmp ugt i64 %"$gasadd_6625", %"$gasrem_6626" - br i1 %"$gascmp_6627", label %"$out_of_gas_6628", label %"$have_gas_6629" - -"$out_of_gas_6628": ; preds = %"$have_gas_6614" - call void @_out_of_gas() - br label %"$have_gas_6629" - -"$have_gas_6629": ; preds = %"$out_of_gas_6628", %"$have_gas_6614" - %"$consume_6630" = sub i64 %"$gasrem_6626", %"$gasadd_6625" - store i64 %"$consume_6630", i64* @_gasrem, align 8 - %"$gasrem_6631" = load i64, i64* @_gasrem, align 8 - %"$gascmp_6632" = icmp ugt i64 1, %"$gasrem_6631" - br i1 %"$gascmp_6632", label %"$out_of_gas_6633", label %"$have_gas_6634" - -"$out_of_gas_6633": ; preds = %"$have_gas_6629" - call void @_out_of_gas() - br label %"$have_gas_6634" - -"$have_gas_6634": ; preds = %"$out_of_gas_6633", %"$have_gas_6629" - %"$consume_6635" = sub i64 %"$gasrem_6631", 1 - store i64 %"$consume_6635", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata [20 x i8]* %currentRegistrar, metadata !1192, metadata !DIExpression()), !dbg !1193 + %"$execptr_load_6728" = load i8*, i8** @_execptr, align 8 + %"$currentRegistrar_call_6729" = call i8* @_fetch_field(i8* %"$execptr_load_6728", i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$registrar_6727", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Bystr20_458", i32 0, i8* null, i32 1), !dbg !1193 + %"$currentRegistrar_6730" = bitcast i8* %"$currentRegistrar_call_6729" to [20 x i8]* + %"$currentRegistrar_6731" = load [20 x i8], [20 x i8]* %"$currentRegistrar_6730", align 1 + store [20 x i8] %"$currentRegistrar_6731", [20 x i8]* %currentRegistrar, align 1 + %"$_literal_cost_currentRegistrar_6732" = alloca [20 x i8], align 1 + %"$currentRegistrar_6733" = load [20 x i8], [20 x i8]* %currentRegistrar, align 1 + store [20 x i8] %"$currentRegistrar_6733", [20 x i8]* %"$_literal_cost_currentRegistrar_6732", align 1 + %"$$_literal_cost_currentRegistrar_6732_6734" = bitcast [20 x i8]* %"$_literal_cost_currentRegistrar_6732" to i8* + %"$_literal_cost_call_6735" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Bystr20_458", i8* %"$$_literal_cost_currentRegistrar_6732_6734") + %"$gasadd_6736" = add i64 %"$_literal_cost_call_6735", 0 + %"$gasrem_6737" = load i64, i64* @_gasrem, align 8 + %"$gascmp_6738" = icmp ugt i64 %"$gasadd_6736", %"$gasrem_6737" + br i1 %"$gascmp_6738", label %"$out_of_gas_6739", label %"$have_gas_6740" + +"$out_of_gas_6739": ; preds = %"$have_gas_6725" + call void @_out_of_gas() + br label %"$have_gas_6740" + +"$have_gas_6740": ; preds = %"$out_of_gas_6739", %"$have_gas_6725" + %"$consume_6741" = sub i64 %"$gasrem_6737", %"$gasadd_6736" + store i64 %"$consume_6741", i64* @_gasrem, align 8 + %"$gasrem_6742" = load i64, i64* @_gasrem, align 8 + %"$gascmp_6743" = icmp ugt i64 1, %"$gasrem_6742" + br i1 %"$gascmp_6743", label %"$out_of_gas_6744", label %"$have_gas_6745" + +"$out_of_gas_6744": ; preds = %"$have_gas_6740" + call void @_out_of_gas() + br label %"$have_gas_6745" + +"$have_gas_6745": ; preds = %"$out_of_gas_6744", %"$have_gas_6740" + %"$consume_6746" = sub i64 %"$gasrem_6742", 1 + store i64 %"$consume_6746", i64* @_gasrem, align 8 %isOk = alloca %TName_Bool*, align 8 - %"$gasrem_6636" = load i64, i64* @_gasrem, align 8 - %"$gascmp_6637" = icmp ugt i64 1, %"$gasrem_6636" - br i1 %"$gascmp_6637", label %"$out_of_gas_6638", label %"$have_gas_6639" + call void @llvm.dbg.declare(metadata %TName_Bool** %isOk, metadata !1194, metadata !DIExpression()), !dbg !1195 + %"$gasrem_6747" = load i64, i64* @_gasrem, align 8 + %"$gascmp_6748" = icmp ugt i64 1, %"$gasrem_6747" + br i1 %"$gascmp_6748", label %"$out_of_gas_6749", label %"$have_gas_6750" -"$out_of_gas_6638": ; preds = %"$have_gas_6634" +"$out_of_gas_6749": ; preds = %"$have_gas_6745" call void @_out_of_gas() - br label %"$have_gas_6639" + br label %"$have_gas_6750" -"$have_gas_6639": ; preds = %"$out_of_gas_6638", %"$have_gas_6634" - %"$consume_6640" = sub i64 %"$gasrem_6636", 1 - store i64 %"$consume_6640", i64* @_gasrem, align 8 +"$have_gas_6750": ; preds = %"$out_of_gas_6749", %"$have_gas_6745" + %"$consume_6751" = sub i64 %"$gasrem_6747", 1 + store i64 %"$consume_6751", i64* @_gasrem, align 8 %isSenderAdmin = alloca %TName_Bool*, align 8 - %"$gasrem_6641" = load i64, i64* @_gasrem, align 8 - %"$gascmp_6642" = icmp ugt i64 1, %"$gasrem_6641" - br i1 %"$gascmp_6642", label %"$out_of_gas_6643", label %"$have_gas_6644" + call void @llvm.dbg.declare(metadata %TName_Bool** %isSenderAdmin, metadata !1196, metadata !DIExpression()), !dbg !1197 + %"$gasrem_6752" = load i64, i64* @_gasrem, align 8 + %"$gascmp_6753" = icmp ugt i64 1, %"$gasrem_6752" + br i1 %"$gascmp_6753", label %"$out_of_gas_6754", label %"$have_gas_6755" -"$out_of_gas_6643": ; preds = %"$have_gas_6639" +"$out_of_gas_6754": ; preds = %"$have_gas_6750" call void @_out_of_gas() - br label %"$have_gas_6644" + br label %"$have_gas_6755" -"$have_gas_6644": ; preds = %"$out_of_gas_6643", %"$have_gas_6639" - %"$consume_6645" = sub i64 %"$gasrem_6641", 1 - store i64 %"$consume_6645", i64* @_gasrem, align 8 +"$have_gas_6755": ; preds = %"$out_of_gas_6754", %"$have_gas_6750" + %"$consume_6756" = sub i64 %"$gasrem_6752", 1 + store i64 %"$consume_6756", i64* @_gasrem, align 8 %"$ud-registry.listByStr20Contains_174" = alloca { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, align 8 - %"$ud-registry.listByStr20Contains_6646" = 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_6647" = extractvalue { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } %"$ud-registry.listByStr20Contains_6646", 0 - %"$ud-registry.listByStr20Contains_envptr_6648" = extractvalue { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } %"$ud-registry.listByStr20Contains_6646", 1 - %"$currentAdmins_6649" = load %TName_List_ByStr20*, %TName_List_ByStr20** %currentAdmins, align 8 - %"$ud-registry.listByStr20Contains_call_6650" = call { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$ud-registry.listByStr20Contains_fptr_6647"(i8* %"$ud-registry.listByStr20Contains_envptr_6648", %TName_List_ByStr20* %"$currentAdmins_6649"), !dbg !630 - store { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$ud-registry.listByStr20Contains_call_6650", { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %"$ud-registry.listByStr20Contains_174", align 8, !dbg !630 + %"$ud-registry.listByStr20Contains_6757" = 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_6758" = extractvalue { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } %"$ud-registry.listByStr20Contains_6757", 0 + %"$ud-registry.listByStr20Contains_envptr_6759" = extractvalue { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } %"$ud-registry.listByStr20Contains_6757", 1 + %"$currentAdmins_6760" = load %TName_List_ByStr20*, %TName_List_ByStr20** %currentAdmins, align 8 + %"$ud-registry.listByStr20Contains_call_6761" = call { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$ud-registry.listByStr20Contains_fptr_6758"(i8* %"$ud-registry.listByStr20Contains_envptr_6759", %TName_List_ByStr20* %"$currentAdmins_6760"), !dbg !1198 + store { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$ud-registry.listByStr20Contains_call_6761", { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %"$ud-registry.listByStr20Contains_174", align 8, !dbg !1198 %"$ud-registry.listByStr20Contains_175" = alloca %TName_Bool*, align 8 - %"$$ud-registry.listByStr20Contains_174_6651" = load { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %"$ud-registry.listByStr20Contains_174", align 8 - %"$$ud-registry.listByStr20Contains_174_fptr_6652" = extractvalue { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.listByStr20Contains_174_6651", 0 - %"$$ud-registry.listByStr20Contains_174_envptr_6653" = extractvalue { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.listByStr20Contains_174_6651", 1 - %"$$ud-registry.listByStr20Contains_174__sender_6654" = alloca [20 x i8], align 1 - store [20 x i8] %_sender, [20 x i8]* %"$$ud-registry.listByStr20Contains_174__sender_6654", align 1 - %"$$ud-registry.listByStr20Contains_174_call_6655" = call %TName_Bool* %"$$ud-registry.listByStr20Contains_174_fptr_6652"(i8* %"$$ud-registry.listByStr20Contains_174_envptr_6653", [20 x i8]* %"$$ud-registry.listByStr20Contains_174__sender_6654"), !dbg !630 - store %TName_Bool* %"$$ud-registry.listByStr20Contains_174_call_6655", %TName_Bool** %"$ud-registry.listByStr20Contains_175", align 8, !dbg !630 - %"$$ud-registry.listByStr20Contains_175_6656" = load %TName_Bool*, %TName_Bool** %"$ud-registry.listByStr20Contains_175", align 8 - store %TName_Bool* %"$$ud-registry.listByStr20Contains_175_6656", %TName_Bool** %isSenderAdmin, align 8, !dbg !630 - %"$gasrem_6657" = load i64, i64* @_gasrem, align 8 - %"$gascmp_6658" = icmp ugt i64 1, %"$gasrem_6657" - br i1 %"$gascmp_6658", label %"$out_of_gas_6659", label %"$have_gas_6660" - -"$out_of_gas_6659": ; preds = %"$have_gas_6644" - call void @_out_of_gas() - br label %"$have_gas_6660" - -"$have_gas_6660": ; preds = %"$out_of_gas_6659", %"$have_gas_6644" - %"$consume_6661" = sub i64 %"$gasrem_6657", 1 - store i64 %"$consume_6661", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$ud-registry.listByStr20Contains_175", metadata !1199, metadata !DIExpression()), !dbg !1198 + %"$$ud-registry.listByStr20Contains_174_6762" = load { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %"$ud-registry.listByStr20Contains_174", align 8 + %"$$ud-registry.listByStr20Contains_174_fptr_6763" = extractvalue { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.listByStr20Contains_174_6762", 0 + %"$$ud-registry.listByStr20Contains_174_envptr_6764" = extractvalue { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.listByStr20Contains_174_6762", 1 + %"$$ud-registry.listByStr20Contains_174__sender_6765" = alloca [20 x i8], align 1 + store [20 x i8] %_sender, [20 x i8]* %"$$ud-registry.listByStr20Contains_174__sender_6765", align 1 + %"$$ud-registry.listByStr20Contains_174_call_6766" = call %TName_Bool* %"$$ud-registry.listByStr20Contains_174_fptr_6763"(i8* %"$$ud-registry.listByStr20Contains_174_envptr_6764", [20 x i8]* %"$$ud-registry.listByStr20Contains_174__sender_6765"), !dbg !1198 + store %TName_Bool* %"$$ud-registry.listByStr20Contains_174_call_6766", %TName_Bool** %"$ud-registry.listByStr20Contains_175", align 8, !dbg !1198 + %"$$ud-registry.listByStr20Contains_175_6767" = load %TName_Bool*, %TName_Bool** %"$ud-registry.listByStr20Contains_175", align 8 + store %TName_Bool* %"$$ud-registry.listByStr20Contains_175_6767", %TName_Bool** %isSenderAdmin, align 8, !dbg !1198 + %"$gasrem_6768" = load i64, i64* @_gasrem, align 8 + %"$gascmp_6769" = icmp ugt i64 1, %"$gasrem_6768" + br i1 %"$gascmp_6769", label %"$out_of_gas_6770", label %"$have_gas_6771" + +"$out_of_gas_6770": ; preds = %"$have_gas_6755" + call void @_out_of_gas() + br label %"$have_gas_6771" + +"$have_gas_6771": ; preds = %"$out_of_gas_6770", %"$have_gas_6755" + %"$consume_6772" = sub i64 %"$gasrem_6768", 1 + store i64 %"$consume_6772", i64* @_gasrem, align 8 %isSenderRegistrar = alloca %TName_Bool*, align 8 - %"$gasrem_6662" = load i64, i64* @_gasrem, align 8 - %"$gascmp_6663" = icmp ugt i64 20, %"$gasrem_6662" - br i1 %"$gascmp_6663", label %"$out_of_gas_6664", label %"$have_gas_6665" - -"$out_of_gas_6664": ; preds = %"$have_gas_6660" - call void @_out_of_gas() - br label %"$have_gas_6665" - -"$have_gas_6665": ; preds = %"$out_of_gas_6664", %"$have_gas_6660" - %"$consume_6666" = sub i64 %"$gasrem_6662", 20 - store i64 %"$consume_6666", i64* @_gasrem, align 8 - %"$execptr_load_6667" = load i8*, i8** @_execptr, align 8 - %"$eq_currentRegistrar_6668" = alloca [20 x i8], align 1 - %"$currentRegistrar_6669" = load [20 x i8], [20 x i8]* %currentRegistrar, align 1 - store [20 x i8] %"$currentRegistrar_6669", [20 x i8]* %"$eq_currentRegistrar_6668", align 1 - %"$$eq_currentRegistrar_6668_6670" = bitcast [20 x i8]* %"$eq_currentRegistrar_6668" to i8* - %"$eq__sender_6671" = alloca [20 x i8], align 1 - store [20 x i8] %_sender, [20 x i8]* %"$eq__sender_6671", align 1 - %"$$eq__sender_6671_6672" = bitcast [20 x i8]* %"$eq__sender_6671" to i8* - %"$eq_call_6673" = call %TName_Bool* @_eq_ByStrX(i8* %"$execptr_load_6667", i32 20, i8* %"$$eq_currentRegistrar_6668_6670", i8* %"$$eq__sender_6671_6672"), !dbg !631 - store %TName_Bool* %"$eq_call_6673", %TName_Bool** %isSenderRegistrar, align 8, !dbg !631 - %"$gasrem_6675" = load i64, i64* @_gasrem, align 8 - %"$gascmp_6676" = icmp ugt i64 1, %"$gasrem_6675" - br i1 %"$gascmp_6676", label %"$out_of_gas_6677", label %"$have_gas_6678" - -"$out_of_gas_6677": ; preds = %"$have_gas_6665" - call void @_out_of_gas() - br label %"$have_gas_6678" - -"$have_gas_6678": ; preds = %"$out_of_gas_6677", %"$have_gas_6665" - %"$consume_6679" = sub i64 %"$gasrem_6675", 1 - store i64 %"$consume_6679", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %isSenderRegistrar, metadata !1200, metadata !DIExpression()), !dbg !1201 + %"$gasrem_6773" = load i64, i64* @_gasrem, align 8 + %"$gascmp_6774" = icmp ugt i64 20, %"$gasrem_6773" + br i1 %"$gascmp_6774", label %"$out_of_gas_6775", label %"$have_gas_6776" + +"$out_of_gas_6775": ; preds = %"$have_gas_6771" + call void @_out_of_gas() + br label %"$have_gas_6776" + +"$have_gas_6776": ; preds = %"$out_of_gas_6775", %"$have_gas_6771" + %"$consume_6777" = sub i64 %"$gasrem_6773", 20 + store i64 %"$consume_6777", i64* @_gasrem, align 8 + %"$execptr_load_6778" = load i8*, i8** @_execptr, align 8 + %"$eq_currentRegistrar_6779" = alloca [20 x i8], align 1 + %"$currentRegistrar_6780" = load [20 x i8], [20 x i8]* %currentRegistrar, align 1 + store [20 x i8] %"$currentRegistrar_6780", [20 x i8]* %"$eq_currentRegistrar_6779", align 1 + %"$$eq_currentRegistrar_6779_6781" = bitcast [20 x i8]* %"$eq_currentRegistrar_6779" to i8* + %"$eq__sender_6782" = alloca [20 x i8], align 1 + store [20 x i8] %_sender, [20 x i8]* %"$eq__sender_6782", align 1 + %"$$eq__sender_6782_6783" = bitcast [20 x i8]* %"$eq__sender_6782" to i8* + %"$eq_call_6784" = call %TName_Bool* @_eq_ByStrX(i8* %"$execptr_load_6778", i32 20, i8* %"$$eq_currentRegistrar_6779_6781", i8* %"$$eq__sender_6782_6783"), !dbg !1202 + store %TName_Bool* %"$eq_call_6784", %TName_Bool** %isSenderRegistrar, align 8, !dbg !1202 + %"$gasrem_6786" = load i64, i64* @_gasrem, align 8 + %"$gascmp_6787" = icmp ugt i64 1, %"$gasrem_6786" + br i1 %"$gascmp_6787", label %"$out_of_gas_6788", label %"$have_gas_6789" + +"$out_of_gas_6788": ; preds = %"$have_gas_6776" + call void @_out_of_gas() + br label %"$have_gas_6789" + +"$have_gas_6789": ; preds = %"$out_of_gas_6788", %"$have_gas_6776" + %"$consume_6790" = sub i64 %"$gasrem_6786", 1 + store i64 %"$consume_6790", i64* @_gasrem, align 8 %isOkSender = alloca %TName_Bool*, align 8 - %"$gasrem_6680" = load i64, i64* @_gasrem, align 8 - %"$gascmp_6681" = icmp ugt i64 1, %"$gasrem_6680" - br i1 %"$gascmp_6681", label %"$out_of_gas_6682", label %"$have_gas_6683" + call void @llvm.dbg.declare(metadata %TName_Bool** %isOkSender, metadata !1203, metadata !DIExpression()), !dbg !1204 + %"$gasrem_6791" = load i64, i64* @_gasrem, align 8 + %"$gascmp_6792" = icmp ugt i64 1, %"$gasrem_6791" + br i1 %"$gascmp_6792", label %"$out_of_gas_6793", label %"$have_gas_6794" -"$out_of_gas_6682": ; preds = %"$have_gas_6678" +"$out_of_gas_6793": ; preds = %"$have_gas_6789" call void @_out_of_gas() - br label %"$have_gas_6683" + br label %"$have_gas_6794" -"$have_gas_6683": ; preds = %"$out_of_gas_6682", %"$have_gas_6678" - %"$consume_6684" = sub i64 %"$gasrem_6680", 1 - store i64 %"$consume_6684", i64* @_gasrem, align 8 +"$have_gas_6794": ; preds = %"$out_of_gas_6793", %"$have_gas_6789" + %"$consume_6795" = sub i64 %"$gasrem_6791", 1 + store i64 %"$consume_6795", i64* @_gasrem, align 8 %"$BoolUtils.orb_176" = alloca { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, align 8 - %"$BoolUtils.orb_6685" = 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_6686" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.orb_6685", 0 - %"$BoolUtils.orb_envptr_6687" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.orb_6685", 1 - %"$isSenderRegistrar_6688" = load %TName_Bool*, %TName_Bool** %isSenderRegistrar, align 8 - %"$BoolUtils.orb_call_6689" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.orb_fptr_6686"(i8* %"$BoolUtils.orb_envptr_6687", %TName_Bool* %"$isSenderRegistrar_6688"), !dbg !632 - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.orb_call_6689", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.orb_176", align 8, !dbg !632 + %"$BoolUtils.orb_6796" = 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_6797" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.orb_6796", 0 + %"$BoolUtils.orb_envptr_6798" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.orb_6796", 1 + %"$isSenderRegistrar_6799" = load %TName_Bool*, %TName_Bool** %isSenderRegistrar, align 8 + %"$BoolUtils.orb_call_6800" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.orb_fptr_6797"(i8* %"$BoolUtils.orb_envptr_6798", %TName_Bool* %"$isSenderRegistrar_6799"), !dbg !1205 + store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.orb_call_6800", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.orb_176", align 8, !dbg !1205 %"$BoolUtils.orb_177" = alloca %TName_Bool*, align 8 - %"$$BoolUtils.orb_176_6690" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.orb_176", align 8 - %"$$BoolUtils.orb_176_fptr_6691" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.orb_176_6690", 0 - %"$$BoolUtils.orb_176_envptr_6692" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.orb_176_6690", 1 - %"$isSenderAdmin_6693" = load %TName_Bool*, %TName_Bool** %isSenderAdmin, align 8 - %"$$BoolUtils.orb_176_call_6694" = call %TName_Bool* %"$$BoolUtils.orb_176_fptr_6691"(i8* %"$$BoolUtils.orb_176_envptr_6692", %TName_Bool* %"$isSenderAdmin_6693"), !dbg !632 - store %TName_Bool* %"$$BoolUtils.orb_176_call_6694", %TName_Bool** %"$BoolUtils.orb_177", align 8, !dbg !632 - %"$$BoolUtils.orb_177_6695" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.orb_177", align 8 - store %TName_Bool* %"$$BoolUtils.orb_177_6695", %TName_Bool** %isOkSender, align 8, !dbg !632 - %"$gasrem_6696" = load i64, i64* @_gasrem, align 8 - %"$gascmp_6697" = icmp ugt i64 1, %"$gasrem_6696" - br i1 %"$gascmp_6697", label %"$out_of_gas_6698", label %"$have_gas_6699" - -"$out_of_gas_6698": ; preds = %"$have_gas_6683" - call void @_out_of_gas() - br label %"$have_gas_6699" - -"$have_gas_6699": ; preds = %"$out_of_gas_6698", %"$have_gas_6683" - %"$consume_6700" = sub i64 %"$gasrem_6696", 1 - store i64 %"$consume_6700", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$BoolUtils.orb_177", metadata !1206, metadata !DIExpression()), !dbg !1205 + %"$$BoolUtils.orb_176_6801" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.orb_176", align 8 + %"$$BoolUtils.orb_176_fptr_6802" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.orb_176_6801", 0 + %"$$BoolUtils.orb_176_envptr_6803" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.orb_176_6801", 1 + %"$isSenderAdmin_6804" = load %TName_Bool*, %TName_Bool** %isSenderAdmin, align 8 + %"$$BoolUtils.orb_176_call_6805" = call %TName_Bool* %"$$BoolUtils.orb_176_fptr_6802"(i8* %"$$BoolUtils.orb_176_envptr_6803", %TName_Bool* %"$isSenderAdmin_6804"), !dbg !1205 + store %TName_Bool* %"$$BoolUtils.orb_176_call_6805", %TName_Bool** %"$BoolUtils.orb_177", align 8, !dbg !1205 + %"$$BoolUtils.orb_177_6806" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.orb_177", align 8 + store %TName_Bool* %"$$BoolUtils.orb_177_6806", %TName_Bool** %isOkSender, align 8, !dbg !1205 + %"$gasrem_6807" = load i64, i64* @_gasrem, align 8 + %"$gascmp_6808" = icmp ugt i64 1, %"$gasrem_6807" + br i1 %"$gascmp_6808", label %"$out_of_gas_6809", label %"$have_gas_6810" + +"$out_of_gas_6809": ; preds = %"$have_gas_6794" + call void @_out_of_gas() + br label %"$have_gas_6810" + +"$have_gas_6810": ; preds = %"$out_of_gas_6809", %"$have_gas_6794" + %"$consume_6811" = sub i64 %"$gasrem_6807", 1 + store i64 %"$consume_6811", i64* @_gasrem, align 8 %recordOwner = alloca [20 x i8], align 1 - %"$gasrem_6701" = load i64, i64* @_gasrem, align 8 - %"$gascmp_6702" = icmp ugt i64 1, %"$gasrem_6701" - br i1 %"$gascmp_6702", label %"$out_of_gas_6703", label %"$have_gas_6704" + call void @llvm.dbg.declare(metadata [20 x i8]* %recordOwner, metadata !1207, metadata !DIExpression()), !dbg !1208 + %"$gasrem_6812" = load i64, i64* @_gasrem, align 8 + %"$gascmp_6813" = icmp ugt i64 1, %"$gasrem_6812" + br i1 %"$gascmp_6813", label %"$out_of_gas_6814", label %"$have_gas_6815" -"$out_of_gas_6703": ; preds = %"$have_gas_6699" +"$out_of_gas_6814": ; preds = %"$have_gas_6810" call void @_out_of_gas() - br label %"$have_gas_6704" + br label %"$have_gas_6815" -"$have_gas_6704": ; preds = %"$out_of_gas_6703", %"$have_gas_6699" - %"$consume_6705" = sub i64 %"$gasrem_6701", 1 - store i64 %"$consume_6705", i64* @_gasrem, align 8 +"$have_gas_6815": ; preds = %"$out_of_gas_6814", %"$have_gas_6810" + %"$consume_6816" = sub i64 %"$gasrem_6812", 1 + store i64 %"$consume_6816", i64* @_gasrem, align 8 %"$ud-registry.recordMemberOwner_178" = alloca [20 x i8], align 1 - %"$ud-registry.recordMemberOwner_6706" = 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_6707" = extractvalue { void (i8*, [20 x i8]*, %TName_Option_ud-registry.Record*)*, i8* } %"$ud-registry.recordMemberOwner_6706", 0 - %"$ud-registry.recordMemberOwner_envptr_6708" = extractvalue { void (i8*, [20 x i8]*, %TName_Option_ud-registry.Record*)*, i8* } %"$ud-registry.recordMemberOwner_6706", 1 - %"$maybeRecord_6709" = load %TName_Option_ud-registry.Record*, %TName_Option_ud-registry.Record** %maybeRecord, align 8 - %"$ud-registry.recordMemberOwner_retalloca_6710" = alloca [20 x i8], align 1 - call void %"$ud-registry.recordMemberOwner_fptr_6707"(i8* %"$ud-registry.recordMemberOwner_envptr_6708", [20 x i8]* %"$ud-registry.recordMemberOwner_retalloca_6710", %TName_Option_ud-registry.Record* %"$maybeRecord_6709"), !dbg !633 - %"$ud-registry.recordMemberOwner_ret_6711" = load [20 x i8], [20 x i8]* %"$ud-registry.recordMemberOwner_retalloca_6710", align 1 - store [20 x i8] %"$ud-registry.recordMemberOwner_ret_6711", [20 x i8]* %"$ud-registry.recordMemberOwner_178", align 1, !dbg !633 - %"$$ud-registry.recordMemberOwner_178_6712" = load [20 x i8], [20 x i8]* %"$ud-registry.recordMemberOwner_178", align 1 - store [20 x i8] %"$$ud-registry.recordMemberOwner_178_6712", [20 x i8]* %recordOwner, align 1, !dbg !633 - %"$gasrem_6713" = load i64, i64* @_gasrem, align 8 - %"$gascmp_6714" = icmp ugt i64 1, %"$gasrem_6713" - br i1 %"$gascmp_6714", label %"$out_of_gas_6715", label %"$have_gas_6716" - -"$out_of_gas_6715": ; preds = %"$have_gas_6704" - call void @_out_of_gas() - br label %"$have_gas_6716" - -"$have_gas_6716": ; preds = %"$out_of_gas_6715", %"$have_gas_6704" - %"$consume_6717" = sub i64 %"$gasrem_6713", 1 - store i64 %"$consume_6717", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata [20 x i8]* %"$ud-registry.recordMemberOwner_178", metadata !1209, metadata !DIExpression()), !dbg !1210 + %"$ud-registry.recordMemberOwner_6817" = 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_6818" = extractvalue { void (i8*, [20 x i8]*, %TName_Option_ud-registry.Record*)*, i8* } %"$ud-registry.recordMemberOwner_6817", 0 + %"$ud-registry.recordMemberOwner_envptr_6819" = extractvalue { void (i8*, [20 x i8]*, %TName_Option_ud-registry.Record*)*, i8* } %"$ud-registry.recordMemberOwner_6817", 1 + %"$maybeRecord_6820" = load %TName_Option_ud-registry.Record*, %TName_Option_ud-registry.Record** %maybeRecord, align 8 + %"$ud-registry.recordMemberOwner_retalloca_6821" = alloca [20 x i8], align 1 + call void %"$ud-registry.recordMemberOwner_fptr_6818"(i8* %"$ud-registry.recordMemberOwner_envptr_6819", [20 x i8]* %"$ud-registry.recordMemberOwner_retalloca_6821", %TName_Option_ud-registry.Record* %"$maybeRecord_6820"), !dbg !1210 + %"$ud-registry.recordMemberOwner_ret_6822" = load [20 x i8], [20 x i8]* %"$ud-registry.recordMemberOwner_retalloca_6821", align 1 + store [20 x i8] %"$ud-registry.recordMemberOwner_ret_6822", [20 x i8]* %"$ud-registry.recordMemberOwner_178", align 1, !dbg !1210 + %"$$ud-registry.recordMemberOwner_178_6823" = load [20 x i8], [20 x i8]* %"$ud-registry.recordMemberOwner_178", align 1 + store [20 x i8] %"$$ud-registry.recordMemberOwner_178_6823", [20 x i8]* %recordOwner, align 1, !dbg !1210 + %"$gasrem_6824" = load i64, i64* @_gasrem, align 8 + %"$gascmp_6825" = icmp ugt i64 1, %"$gasrem_6824" + br i1 %"$gascmp_6825", label %"$out_of_gas_6826", label %"$have_gas_6827" + +"$out_of_gas_6826": ; preds = %"$have_gas_6815" + call void @_out_of_gas() + br label %"$have_gas_6827" + +"$have_gas_6827": ; preds = %"$out_of_gas_6826", %"$have_gas_6815" + %"$consume_6828" = sub i64 %"$gasrem_6824", 1 + store i64 %"$consume_6828", i64* @_gasrem, align 8 %recordIsUnowned = alloca %TName_Bool*, align 8 - %"$gasrem_6718" = load i64, i64* @_gasrem, align 8 - %"$gascmp_6719" = icmp ugt i64 20, %"$gasrem_6718" - br i1 %"$gascmp_6719", label %"$out_of_gas_6720", label %"$have_gas_6721" - -"$out_of_gas_6720": ; preds = %"$have_gas_6716" - call void @_out_of_gas() - br label %"$have_gas_6721" - -"$have_gas_6721": ; preds = %"$out_of_gas_6720", %"$have_gas_6716" - %"$consume_6722" = sub i64 %"$gasrem_6718", 20 - store i64 %"$consume_6722", i64* @_gasrem, align 8 - %"$execptr_load_6723" = load i8*, i8** @_execptr, align 8 - %"$eq_recordOwner_6724" = alloca [20 x i8], align 1 - %"$recordOwner_6725" = load [20 x i8], [20 x i8]* %recordOwner, align 1 - store [20 x i8] %"$recordOwner_6725", [20 x i8]* %"$eq_recordOwner_6724", align 1 - %"$$eq_recordOwner_6724_6726" = bitcast [20 x i8]* %"$eq_recordOwner_6724" to i8* - %"$eq_ud-registry.zeroByStr20_6727" = alloca [20 x i8], align 1 - %"$ud-registry.zeroByStr20_6728" = load [20 x i8], [20 x i8]* @ud-registry.zeroByStr20, align 1 - store [20 x i8] %"$ud-registry.zeroByStr20_6728", [20 x i8]* %"$eq_ud-registry.zeroByStr20_6727", align 1 - %"$$eq_ud-registry.zeroByStr20_6727_6729" = bitcast [20 x i8]* %"$eq_ud-registry.zeroByStr20_6727" to i8* - %"$eq_call_6730" = call %TName_Bool* @_eq_ByStrX(i8* %"$execptr_load_6723", i32 20, i8* %"$$eq_recordOwner_6724_6726", i8* %"$$eq_ud-registry.zeroByStr20_6727_6729"), !dbg !634 - store %TName_Bool* %"$eq_call_6730", %TName_Bool** %recordIsUnowned, align 8, !dbg !634 - %"$gasrem_6732" = load i64, i64* @_gasrem, align 8 - %"$gascmp_6733" = icmp ugt i64 1, %"$gasrem_6732" - br i1 %"$gascmp_6733", label %"$out_of_gas_6734", label %"$have_gas_6735" - -"$out_of_gas_6734": ; preds = %"$have_gas_6721" - call void @_out_of_gas() - br label %"$have_gas_6735" - -"$have_gas_6735": ; preds = %"$out_of_gas_6734", %"$have_gas_6721" - %"$consume_6736" = sub i64 %"$gasrem_6732", 1 - store i64 %"$consume_6736", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %recordIsUnowned, metadata !1211, metadata !DIExpression()), !dbg !1212 + %"$gasrem_6829" = load i64, i64* @_gasrem, align 8 + %"$gascmp_6830" = icmp ugt i64 20, %"$gasrem_6829" + br i1 %"$gascmp_6830", label %"$out_of_gas_6831", label %"$have_gas_6832" + +"$out_of_gas_6831": ; preds = %"$have_gas_6827" + call void @_out_of_gas() + br label %"$have_gas_6832" + +"$have_gas_6832": ; preds = %"$out_of_gas_6831", %"$have_gas_6827" + %"$consume_6833" = sub i64 %"$gasrem_6829", 20 + store i64 %"$consume_6833", i64* @_gasrem, align 8 + %"$execptr_load_6834" = load i8*, i8** @_execptr, align 8 + %"$eq_recordOwner_6835" = alloca [20 x i8], align 1 + %"$recordOwner_6836" = load [20 x i8], [20 x i8]* %recordOwner, align 1 + store [20 x i8] %"$recordOwner_6836", [20 x i8]* %"$eq_recordOwner_6835", align 1 + %"$$eq_recordOwner_6835_6837" = bitcast [20 x i8]* %"$eq_recordOwner_6835" to i8* + %"$eq_ud-registry.zeroByStr20_6838" = alloca [20 x i8], align 1 + %"$ud-registry.zeroByStr20_6839" = load [20 x i8], [20 x i8]* @ud-registry.zeroByStr20, align 1 + store [20 x i8] %"$ud-registry.zeroByStr20_6839", [20 x i8]* %"$eq_ud-registry.zeroByStr20_6838", align 1 + %"$$eq_ud-registry.zeroByStr20_6838_6840" = bitcast [20 x i8]* %"$eq_ud-registry.zeroByStr20_6838" to i8* + %"$eq_call_6841" = call %TName_Bool* @_eq_ByStrX(i8* %"$execptr_load_6834", i32 20, i8* %"$$eq_recordOwner_6835_6837", i8* %"$$eq_ud-registry.zeroByStr20_6838_6840"), !dbg !1213 + store %TName_Bool* %"$eq_call_6841", %TName_Bool** %recordIsUnowned, align 8, !dbg !1213 + %"$gasrem_6843" = load i64, i64* @_gasrem, align 8 + %"$gascmp_6844" = icmp ugt i64 1, %"$gasrem_6843" + br i1 %"$gascmp_6844", label %"$out_of_gas_6845", label %"$have_gas_6846" + +"$out_of_gas_6845": ; preds = %"$have_gas_6832" + call void @_out_of_gas() + br label %"$have_gas_6846" + +"$have_gas_6846": ; preds = %"$out_of_gas_6845", %"$have_gas_6832" + %"$consume_6847" = sub i64 %"$gasrem_6843", 1 + store i64 %"$consume_6847", i64* @_gasrem, align 8 %recordIsOwnedByRegistrar = alloca %TName_Bool*, align 8 - %"$gasrem_6737" = load i64, i64* @_gasrem, align 8 - %"$gascmp_6738" = icmp ugt i64 20, %"$gasrem_6737" - br i1 %"$gascmp_6738", label %"$out_of_gas_6739", label %"$have_gas_6740" - -"$out_of_gas_6739": ; preds = %"$have_gas_6735" - call void @_out_of_gas() - br label %"$have_gas_6740" - -"$have_gas_6740": ; preds = %"$out_of_gas_6739", %"$have_gas_6735" - %"$consume_6741" = sub i64 %"$gasrem_6737", 20 - store i64 %"$consume_6741", i64* @_gasrem, align 8 - %"$execptr_load_6742" = load i8*, i8** @_execptr, align 8 - %"$eq_recordOwner_6743" = alloca [20 x i8], align 1 - %"$recordOwner_6744" = load [20 x i8], [20 x i8]* %recordOwner, align 1 - store [20 x i8] %"$recordOwner_6744", [20 x i8]* %"$eq_recordOwner_6743", align 1 - %"$$eq_recordOwner_6743_6745" = bitcast [20 x i8]* %"$eq_recordOwner_6743" to i8* - %"$eq_currentRegistrar_6746" = alloca [20 x i8], align 1 - %"$currentRegistrar_6747" = load [20 x i8], [20 x i8]* %currentRegistrar, align 1 - store [20 x i8] %"$currentRegistrar_6747", [20 x i8]* %"$eq_currentRegistrar_6746", align 1 - %"$$eq_currentRegistrar_6746_6748" = bitcast [20 x i8]* %"$eq_currentRegistrar_6746" to i8* - %"$eq_call_6749" = call %TName_Bool* @_eq_ByStrX(i8* %"$execptr_load_6742", i32 20, i8* %"$$eq_recordOwner_6743_6745", i8* %"$$eq_currentRegistrar_6746_6748"), !dbg !635 - store %TName_Bool* %"$eq_call_6749", %TName_Bool** %recordIsOwnedByRegistrar, align 8, !dbg !635 - %"$gasrem_6751" = load i64, i64* @_gasrem, align 8 - %"$gascmp_6752" = icmp ugt i64 1, %"$gasrem_6751" - br i1 %"$gascmp_6752", label %"$out_of_gas_6753", label %"$have_gas_6754" - -"$out_of_gas_6753": ; preds = %"$have_gas_6740" - call void @_out_of_gas() - br label %"$have_gas_6754" - -"$have_gas_6754": ; preds = %"$out_of_gas_6753", %"$have_gas_6740" - %"$consume_6755" = sub i64 %"$gasrem_6751", 1 - store i64 %"$consume_6755", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %recordIsOwnedByRegistrar, metadata !1214, metadata !DIExpression()), !dbg !1215 + %"$gasrem_6848" = load i64, i64* @_gasrem, align 8 + %"$gascmp_6849" = icmp ugt i64 20, %"$gasrem_6848" + br i1 %"$gascmp_6849", label %"$out_of_gas_6850", label %"$have_gas_6851" + +"$out_of_gas_6850": ; preds = %"$have_gas_6846" + call void @_out_of_gas() + br label %"$have_gas_6851" + +"$have_gas_6851": ; preds = %"$out_of_gas_6850", %"$have_gas_6846" + %"$consume_6852" = sub i64 %"$gasrem_6848", 20 + store i64 %"$consume_6852", i64* @_gasrem, align 8 + %"$execptr_load_6853" = load i8*, i8** @_execptr, align 8 + %"$eq_recordOwner_6854" = alloca [20 x i8], align 1 + %"$recordOwner_6855" = load [20 x i8], [20 x i8]* %recordOwner, align 1 + store [20 x i8] %"$recordOwner_6855", [20 x i8]* %"$eq_recordOwner_6854", align 1 + %"$$eq_recordOwner_6854_6856" = bitcast [20 x i8]* %"$eq_recordOwner_6854" to i8* + %"$eq_currentRegistrar_6857" = alloca [20 x i8], align 1 + %"$currentRegistrar_6858" = load [20 x i8], [20 x i8]* %currentRegistrar, align 1 + store [20 x i8] %"$currentRegistrar_6858", [20 x i8]* %"$eq_currentRegistrar_6857", align 1 + %"$$eq_currentRegistrar_6857_6859" = bitcast [20 x i8]* %"$eq_currentRegistrar_6857" to i8* + %"$eq_call_6860" = call %TName_Bool* @_eq_ByStrX(i8* %"$execptr_load_6853", i32 20, i8* %"$$eq_recordOwner_6854_6856", i8* %"$$eq_currentRegistrar_6857_6859"), !dbg !1216 + store %TName_Bool* %"$eq_call_6860", %TName_Bool** %recordIsOwnedByRegistrar, align 8, !dbg !1216 + %"$gasrem_6862" = load i64, i64* @_gasrem, align 8 + %"$gascmp_6863" = icmp ugt i64 1, %"$gasrem_6862" + br i1 %"$gascmp_6863", label %"$out_of_gas_6864", label %"$have_gas_6865" + +"$out_of_gas_6864": ; preds = %"$have_gas_6851" + call void @_out_of_gas() + br label %"$have_gas_6865" + +"$have_gas_6865": ; preds = %"$out_of_gas_6864", %"$have_gas_6851" + %"$consume_6866" = sub i64 %"$gasrem_6862", 1 + store i64 %"$consume_6866", i64* @_gasrem, align 8 %isRegistrarSenderAndOwned = alloca %TName_Bool*, align 8 - %"$gasrem_6756" = load i64, i64* @_gasrem, align 8 - %"$gascmp_6757" = icmp ugt i64 1, %"$gasrem_6756" - br i1 %"$gascmp_6757", label %"$out_of_gas_6758", label %"$have_gas_6759" + call void @llvm.dbg.declare(metadata %TName_Bool** %isRegistrarSenderAndOwned, metadata !1217, metadata !DIExpression()), !dbg !1218 + %"$gasrem_6867" = load i64, i64* @_gasrem, align 8 + %"$gascmp_6868" = icmp ugt i64 1, %"$gasrem_6867" + br i1 %"$gascmp_6868", label %"$out_of_gas_6869", label %"$have_gas_6870" -"$out_of_gas_6758": ; preds = %"$have_gas_6754" +"$out_of_gas_6869": ; preds = %"$have_gas_6865" call void @_out_of_gas() - br label %"$have_gas_6759" + br label %"$have_gas_6870" -"$have_gas_6759": ; preds = %"$out_of_gas_6758", %"$have_gas_6754" - %"$consume_6760" = sub i64 %"$gasrem_6756", 1 - store i64 %"$consume_6760", i64* @_gasrem, align 8 +"$have_gas_6870": ; preds = %"$out_of_gas_6869", %"$have_gas_6865" + %"$consume_6871" = sub i64 %"$gasrem_6867", 1 + store i64 %"$consume_6871", i64* @_gasrem, align 8 %"$BoolUtils.andb_179" = alloca { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, align 8 - %"$BoolUtils.andb_6761" = 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_6762" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_6761", 0 - %"$BoolUtils.andb_envptr_6763" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_6761", 1 - %"$recordIsOwnedByRegistrar_6764" = load %TName_Bool*, %TName_Bool** %recordIsOwnedByRegistrar, align 8 - %"$BoolUtils.andb_call_6765" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_6762"(i8* %"$BoolUtils.andb_envptr_6763", %TName_Bool* %"$recordIsOwnedByRegistrar_6764"), !dbg !636 - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_6765", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_179", align 8, !dbg !636 + %"$BoolUtils.andb_6872" = 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_6873" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_6872", 0 + %"$BoolUtils.andb_envptr_6874" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_6872", 1 + %"$recordIsOwnedByRegistrar_6875" = load %TName_Bool*, %TName_Bool** %recordIsOwnedByRegistrar, align 8 + %"$BoolUtils.andb_call_6876" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_6873"(i8* %"$BoolUtils.andb_envptr_6874", %TName_Bool* %"$recordIsOwnedByRegistrar_6875"), !dbg !1219 + store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_6876", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_179", align 8, !dbg !1219 %"$BoolUtils.andb_180" = alloca %TName_Bool*, align 8 - %"$$BoolUtils.andb_179_6766" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_179", align 8 - %"$$BoolUtils.andb_179_fptr_6767" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_179_6766", 0 - %"$$BoolUtils.andb_179_envptr_6768" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_179_6766", 1 - %"$isSenderRegistrar_6769" = load %TName_Bool*, %TName_Bool** %isSenderRegistrar, align 8 - %"$$BoolUtils.andb_179_call_6770" = call %TName_Bool* %"$$BoolUtils.andb_179_fptr_6767"(i8* %"$$BoolUtils.andb_179_envptr_6768", %TName_Bool* %"$isSenderRegistrar_6769"), !dbg !636 - store %TName_Bool* %"$$BoolUtils.andb_179_call_6770", %TName_Bool** %"$BoolUtils.andb_180", align 8, !dbg !636 - %"$$BoolUtils.andb_180_6771" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_180", align 8 - store %TName_Bool* %"$$BoolUtils.andb_180_6771", %TName_Bool** %isRegistrarSenderAndOwned, align 8, !dbg !636 - %"$gasrem_6772" = load i64, i64* @_gasrem, align 8 - %"$gascmp_6773" = icmp ugt i64 1, %"$gasrem_6772" - br i1 %"$gascmp_6773", label %"$out_of_gas_6774", label %"$have_gas_6775" - -"$out_of_gas_6774": ; preds = %"$have_gas_6759" - call void @_out_of_gas() - br label %"$have_gas_6775" - -"$have_gas_6775": ; preds = %"$out_of_gas_6774", %"$have_gas_6759" - %"$consume_6776" = sub i64 %"$gasrem_6772", 1 - store i64 %"$consume_6776", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$BoolUtils.andb_180", metadata !1220, metadata !DIExpression()), !dbg !1219 + %"$$BoolUtils.andb_179_6877" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_179", align 8 + %"$$BoolUtils.andb_179_fptr_6878" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_179_6877", 0 + %"$$BoolUtils.andb_179_envptr_6879" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_179_6877", 1 + %"$isSenderRegistrar_6880" = load %TName_Bool*, %TName_Bool** %isSenderRegistrar, align 8 + %"$$BoolUtils.andb_179_call_6881" = call %TName_Bool* %"$$BoolUtils.andb_179_fptr_6878"(i8* %"$$BoolUtils.andb_179_envptr_6879", %TName_Bool* %"$isSenderRegistrar_6880"), !dbg !1219 + store %TName_Bool* %"$$BoolUtils.andb_179_call_6881", %TName_Bool** %"$BoolUtils.andb_180", align 8, !dbg !1219 + %"$$BoolUtils.andb_180_6882" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_180", align 8 + store %TName_Bool* %"$$BoolUtils.andb_180_6882", %TName_Bool** %isRegistrarSenderAndOwned, align 8, !dbg !1219 + %"$gasrem_6883" = load i64, i64* @_gasrem, align 8 + %"$gascmp_6884" = icmp ugt i64 1, %"$gasrem_6883" + br i1 %"$gascmp_6884", label %"$out_of_gas_6885", label %"$have_gas_6886" + +"$out_of_gas_6885": ; preds = %"$have_gas_6870" + call void @_out_of_gas() + br label %"$have_gas_6886" + +"$have_gas_6886": ; preds = %"$out_of_gas_6885", %"$have_gas_6870" + %"$consume_6887" = sub i64 %"$gasrem_6883", 1 + store i64 %"$consume_6887", i64* @_gasrem, align 8 %isOkRecordOwner = alloca %TName_Bool*, align 8 - %"$gasrem_6777" = load i64, i64* @_gasrem, align 8 - %"$gascmp_6778" = icmp ugt i64 1, %"$gasrem_6777" - br i1 %"$gascmp_6778", label %"$out_of_gas_6779", label %"$have_gas_6780" + call void @llvm.dbg.declare(metadata %TName_Bool** %isOkRecordOwner, metadata !1221, metadata !DIExpression()), !dbg !1222 + %"$gasrem_6888" = load i64, i64* @_gasrem, align 8 + %"$gascmp_6889" = icmp ugt i64 1, %"$gasrem_6888" + br i1 %"$gascmp_6889", label %"$out_of_gas_6890", label %"$have_gas_6891" -"$out_of_gas_6779": ; preds = %"$have_gas_6775" +"$out_of_gas_6890": ; preds = %"$have_gas_6886" call void @_out_of_gas() - br label %"$have_gas_6780" + br label %"$have_gas_6891" -"$have_gas_6780": ; preds = %"$out_of_gas_6779", %"$have_gas_6775" - %"$consume_6781" = sub i64 %"$gasrem_6777", 1 - store i64 %"$consume_6781", i64* @_gasrem, align 8 +"$have_gas_6891": ; preds = %"$out_of_gas_6890", %"$have_gas_6886" + %"$consume_6892" = sub i64 %"$gasrem_6888", 1 + store i64 %"$consume_6892", i64* @_gasrem, align 8 %"$BoolUtils.orb_181" = alloca { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, align 8 - %"$BoolUtils.orb_6782" = 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_6783" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.orb_6782", 0 - %"$BoolUtils.orb_envptr_6784" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.orb_6782", 1 - %"$recordIsUnowned_6785" = load %TName_Bool*, %TName_Bool** %recordIsUnowned, align 8 - %"$BoolUtils.orb_call_6786" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.orb_fptr_6783"(i8* %"$BoolUtils.orb_envptr_6784", %TName_Bool* %"$recordIsUnowned_6785"), !dbg !637 - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.orb_call_6786", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.orb_181", align 8, !dbg !637 + %"$BoolUtils.orb_6893" = 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_6894" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.orb_6893", 0 + %"$BoolUtils.orb_envptr_6895" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.orb_6893", 1 + %"$recordIsUnowned_6896" = load %TName_Bool*, %TName_Bool** %recordIsUnowned, align 8 + %"$BoolUtils.orb_call_6897" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.orb_fptr_6894"(i8* %"$BoolUtils.orb_envptr_6895", %TName_Bool* %"$recordIsUnowned_6896"), !dbg !1223 + store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.orb_call_6897", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.orb_181", align 8, !dbg !1223 %"$BoolUtils.orb_182" = alloca %TName_Bool*, align 8 - %"$$BoolUtils.orb_181_6787" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.orb_181", align 8 - %"$$BoolUtils.orb_181_fptr_6788" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.orb_181_6787", 0 - %"$$BoolUtils.orb_181_envptr_6789" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.orb_181_6787", 1 - %"$isRegistrarSenderAndOwned_6790" = load %TName_Bool*, %TName_Bool** %isRegistrarSenderAndOwned, align 8 - %"$$BoolUtils.orb_181_call_6791" = call %TName_Bool* %"$$BoolUtils.orb_181_fptr_6788"(i8* %"$$BoolUtils.orb_181_envptr_6789", %TName_Bool* %"$isRegistrarSenderAndOwned_6790"), !dbg !637 - store %TName_Bool* %"$$BoolUtils.orb_181_call_6791", %TName_Bool** %"$BoolUtils.orb_182", align 8, !dbg !637 - %"$$BoolUtils.orb_182_6792" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.orb_182", align 8 - store %TName_Bool* %"$$BoolUtils.orb_182_6792", %TName_Bool** %isOkRecordOwner, align 8, !dbg !637 - %"$gasrem_6793" = load i64, i64* @_gasrem, align 8 - %"$gascmp_6794" = icmp ugt i64 1, %"$gasrem_6793" - br i1 %"$gascmp_6794", label %"$out_of_gas_6795", label %"$have_gas_6796" - -"$out_of_gas_6795": ; preds = %"$have_gas_6780" - call void @_out_of_gas() - br label %"$have_gas_6796" - -"$have_gas_6796": ; preds = %"$out_of_gas_6795", %"$have_gas_6780" - %"$consume_6797" = sub i64 %"$gasrem_6793", 1 - store i64 %"$consume_6797", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$BoolUtils.orb_182", metadata !1224, metadata !DIExpression()), !dbg !1223 + %"$$BoolUtils.orb_181_6898" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.orb_181", align 8 + %"$$BoolUtils.orb_181_fptr_6899" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.orb_181_6898", 0 + %"$$BoolUtils.orb_181_envptr_6900" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.orb_181_6898", 1 + %"$isRegistrarSenderAndOwned_6901" = load %TName_Bool*, %TName_Bool** %isRegistrarSenderAndOwned, align 8 + %"$$BoolUtils.orb_181_call_6902" = call %TName_Bool* %"$$BoolUtils.orb_181_fptr_6899"(i8* %"$$BoolUtils.orb_181_envptr_6900", %TName_Bool* %"$isRegistrarSenderAndOwned_6901"), !dbg !1223 + store %TName_Bool* %"$$BoolUtils.orb_181_call_6902", %TName_Bool** %"$BoolUtils.orb_182", align 8, !dbg !1223 + %"$$BoolUtils.orb_182_6903" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.orb_182", align 8 + store %TName_Bool* %"$$BoolUtils.orb_182_6903", %TName_Bool** %isOkRecordOwner, align 8, !dbg !1223 + %"$gasrem_6904" = load i64, i64* @_gasrem, align 8 + %"$gascmp_6905" = icmp ugt i64 1, %"$gasrem_6904" + br i1 %"$gascmp_6905", label %"$out_of_gas_6906", label %"$have_gas_6907" + +"$out_of_gas_6906": ; preds = %"$have_gas_6891" + call void @_out_of_gas() + br label %"$have_gas_6907" + +"$have_gas_6907": ; preds = %"$out_of_gas_6906", %"$have_gas_6891" + %"$consume_6908" = sub i64 %"$gasrem_6904", 1 + store i64 %"$consume_6908", i64* @_gasrem, align 8 %"$BoolUtils.andb_183" = alloca { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, align 8 - %"$BoolUtils.andb_6798" = 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_6799" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_6798", 0 - %"$BoolUtils.andb_envptr_6800" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_6798", 1 - %"$isOkSender_6801" = load %TName_Bool*, %TName_Bool** %isOkSender, align 8 - %"$BoolUtils.andb_call_6802" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_6799"(i8* %"$BoolUtils.andb_envptr_6800", %TName_Bool* %"$isOkSender_6801"), !dbg !638 - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_6802", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_183", align 8, !dbg !638 + %"$BoolUtils.andb_6909" = 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_6910" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_6909", 0 + %"$BoolUtils.andb_envptr_6911" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_6909", 1 + %"$isOkSender_6912" = load %TName_Bool*, %TName_Bool** %isOkSender, align 8 + %"$BoolUtils.andb_call_6913" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_6910"(i8* %"$BoolUtils.andb_envptr_6911", %TName_Bool* %"$isOkSender_6912"), !dbg !1225 + store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_6913", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_183", align 8, !dbg !1225 %"$BoolUtils.andb_184" = alloca %TName_Bool*, align 8 - %"$$BoolUtils.andb_183_6803" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_183", align 8 - %"$$BoolUtils.andb_183_fptr_6804" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_183_6803", 0 - %"$$BoolUtils.andb_183_envptr_6805" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_183_6803", 1 - %"$isOkRecordOwner_6806" = load %TName_Bool*, %TName_Bool** %isOkRecordOwner, align 8 - %"$$BoolUtils.andb_183_call_6807" = call %TName_Bool* %"$$BoolUtils.andb_183_fptr_6804"(i8* %"$$BoolUtils.andb_183_envptr_6805", %TName_Bool* %"$isOkRecordOwner_6806"), !dbg !638 - store %TName_Bool* %"$$BoolUtils.andb_183_call_6807", %TName_Bool** %"$BoolUtils.andb_184", align 8, !dbg !638 - %"$$BoolUtils.andb_184_6808" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_184", align 8 - store %TName_Bool* %"$$BoolUtils.andb_184_6808", %TName_Bool** %isOk, align 8, !dbg !638 - %"$gasrem_6809" = load i64, i64* @_gasrem, align 8 - %"$gascmp_6810" = icmp ugt i64 2, %"$gasrem_6809" - br i1 %"$gascmp_6810", label %"$out_of_gas_6811", label %"$have_gas_6812" - -"$out_of_gas_6811": ; preds = %"$have_gas_6796" - call void @_out_of_gas() - br label %"$have_gas_6812" - -"$have_gas_6812": ; preds = %"$out_of_gas_6811", %"$have_gas_6796" - %"$consume_6813" = sub i64 %"$gasrem_6809", 2 - store i64 %"$consume_6813", i64* @_gasrem, align 8 - %"$isOk_6815" = load %TName_Bool*, %TName_Bool** %isOk, align 8 - %"$isOk_tag_6816" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$isOk_6815", i32 0, i32 0 - %"$isOk_tag_6817" = load i8, i8* %"$isOk_tag_6816", align 1 - switch i8 %"$isOk_tag_6817", label %"$empty_default_6818" [ - i8 0, label %"$True_6819" - i8 1, label %"$False_6932" - ], !dbg !639 - -"$True_6819": ; preds = %"$have_gas_6812" - %"$isOk_6820" = bitcast %TName_Bool* %"$isOk_6815" to %CName_True* - %"$gasrem_6821" = load i64, i64* @_gasrem, align 8 - %"$gascmp_6822" = icmp ugt i64 2, %"$gasrem_6821" - br i1 %"$gascmp_6822", label %"$out_of_gas_6823", label %"$have_gas_6824" - -"$out_of_gas_6823": ; preds = %"$True_6819" - call void @_out_of_gas() - br label %"$have_gas_6824" - -"$have_gas_6824": ; preds = %"$out_of_gas_6823", %"$True_6819" - %"$consume_6825" = sub i64 %"$gasrem_6821", 2 - store i64 %"$consume_6825", i64* @_gasrem, align 8 - %"$recordExists_6827" = load %TName_Bool*, %TName_Bool** %recordExists, align 8 - %"$recordExists_tag_6828" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$recordExists_6827", i32 0, i32 0 - %"$recordExists_tag_6829" = load i8, i8* %"$recordExists_tag_6828", align 1 - switch i8 %"$recordExists_tag_6829", label %"$default_6830" [ - i8 1, label %"$False_6831" - ], !dbg !640 - -"$False_6831": ; preds = %"$have_gas_6824" - %"$recordExists_6832" = bitcast %TName_Bool* %"$recordExists_6827" to %CName_False* - %"$gasrem_6833" = load i64, i64* @_gasrem, align 8 - %"$gascmp_6834" = icmp ugt i64 1, %"$gasrem_6833" - br i1 %"$gascmp_6834", label %"$out_of_gas_6835", label %"$have_gas_6836" - -"$out_of_gas_6835": ; preds = %"$False_6831" - call void @_out_of_gas() - br label %"$have_gas_6836" - -"$have_gas_6836": ; preds = %"$out_of_gas_6835", %"$False_6831" - %"$consume_6837" = sub i64 %"$gasrem_6833", 1 - store i64 %"$consume_6837", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$BoolUtils.andb_184", metadata !1226, metadata !DIExpression()), !dbg !1225 + %"$$BoolUtils.andb_183_6914" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_183", align 8 + %"$$BoolUtils.andb_183_fptr_6915" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_183_6914", 0 + %"$$BoolUtils.andb_183_envptr_6916" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_183_6914", 1 + %"$isOkRecordOwner_6917" = load %TName_Bool*, %TName_Bool** %isOkRecordOwner, align 8 + %"$$BoolUtils.andb_183_call_6918" = call %TName_Bool* %"$$BoolUtils.andb_183_fptr_6915"(i8* %"$$BoolUtils.andb_183_envptr_6916", %TName_Bool* %"$isOkRecordOwner_6917"), !dbg !1225 + store %TName_Bool* %"$$BoolUtils.andb_183_call_6918", %TName_Bool** %"$BoolUtils.andb_184", align 8, !dbg !1225 + %"$$BoolUtils.andb_184_6919" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_184", align 8 + store %TName_Bool* %"$$BoolUtils.andb_184_6919", %TName_Bool** %isOk, align 8, !dbg !1225 + %"$gasrem_6920" = load i64, i64* @_gasrem, align 8 + %"$gascmp_6921" = icmp ugt i64 2, %"$gasrem_6920" + br i1 %"$gascmp_6921", label %"$out_of_gas_6922", label %"$have_gas_6923" + +"$out_of_gas_6922": ; preds = %"$have_gas_6907" + call void @_out_of_gas() + br label %"$have_gas_6923" + +"$have_gas_6923": ; preds = %"$out_of_gas_6922", %"$have_gas_6907" + %"$consume_6924" = sub i64 %"$gasrem_6920", 2 + store i64 %"$consume_6924", i64* @_gasrem, align 8 + %"$isOk_6926" = load %TName_Bool*, %TName_Bool** %isOk, align 8 + %"$isOk_tag_6927" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$isOk_6926", i32 0, i32 0 + %"$isOk_tag_6928" = load i8, i8* %"$isOk_tag_6927", align 1 + switch i8 %"$isOk_tag_6928", label %"$empty_default_6929" [ + i8 0, label %"$True_6930" + i8 1, label %"$False_7043" + ], !dbg !1227 + +"$True_6930": ; preds = %"$have_gas_6923" + %"$isOk_6931" = bitcast %TName_Bool* %"$isOk_6926" to %CName_True* + %"$gasrem_6932" = load i64, i64* @_gasrem, align 8 + %"$gascmp_6933" = icmp ugt i64 2, %"$gasrem_6932" + br i1 %"$gascmp_6933", label %"$out_of_gas_6934", label %"$have_gas_6935" + +"$out_of_gas_6934": ; preds = %"$True_6930" + call void @_out_of_gas() + br label %"$have_gas_6935" + +"$have_gas_6935": ; preds = %"$out_of_gas_6934", %"$True_6930" + %"$consume_6936" = sub i64 %"$gasrem_6932", 2 + store i64 %"$consume_6936", i64* @_gasrem, align 8 + %"$recordExists_6938" = load %TName_Bool*, %TName_Bool** %recordExists, align 8 + %"$recordExists_tag_6939" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$recordExists_6938", i32 0, i32 0 + %"$recordExists_tag_6940" = load i8, i8* %"$recordExists_tag_6939", align 1 + switch i8 %"$recordExists_tag_6940", label %"$default_6941" [ + i8 1, label %"$False_6942" + ], !dbg !1228 + +"$False_6942": ; preds = %"$have_gas_6935" + %"$recordExists_6943" = bitcast %TName_Bool* %"$recordExists_6938" to %CName_False* + %"$gasrem_6944" = load i64, i64* @_gasrem, align 8 + %"$gascmp_6945" = icmp ugt i64 1, %"$gasrem_6944" + br i1 %"$gascmp_6945", label %"$out_of_gas_6946", label %"$have_gas_6947" + +"$out_of_gas_6946": ; preds = %"$False_6942" + call void @_out_of_gas() + br label %"$have_gas_6947" + +"$have_gas_6947": ; preds = %"$out_of_gas_6946", %"$False_6942" + %"$consume_6948" = sub i64 %"$gasrem_6944", 1 + store i64 %"$consume_6948", i64* @_gasrem, align 8 %e = alloca i8*, align 8 - %"$gasrem_6838" = load i64, i64* @_gasrem, align 8 - %"$gascmp_6839" = icmp ugt i64 1, %"$gasrem_6838" - br i1 %"$gascmp_6839", label %"$out_of_gas_6840", label %"$have_gas_6841" + call void @llvm.dbg.declare(metadata i8** %e, metadata !1231, metadata !DIExpression()), !dbg !1234 + %"$gasrem_6949" = load i64, i64* @_gasrem, align 8 + %"$gascmp_6950" = icmp ugt i64 1, %"$gasrem_6949" + br i1 %"$gascmp_6950", label %"$out_of_gas_6951", label %"$have_gas_6952" -"$out_of_gas_6840": ; preds = %"$have_gas_6836" +"$out_of_gas_6951": ; preds = %"$have_gas_6947" call void @_out_of_gas() - br label %"$have_gas_6841" + br label %"$have_gas_6952" -"$have_gas_6841": ; preds = %"$out_of_gas_6840", %"$have_gas_6836" - %"$consume_6842" = sub i64 %"$gasrem_6838", 1 - store i64 %"$consume_6842", i64* @_gasrem, align 8 +"$have_gas_6952": ; preds = %"$out_of_gas_6951", %"$have_gas_6947" + %"$consume_6953" = sub i64 %"$gasrem_6949", 1 + store i64 %"$consume_6953", i64* @_gasrem, align 8 %"$ud-registry.eNewDomain_171" = alloca { i8* (i8*, %String)*, i8* }, align 8 - %"$ud-registry.eNewDomain_6843" = 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_6844" = extractvalue { { i8* (i8*, %String)*, i8* } (i8*, [32 x i8]*)*, i8* } %"$ud-registry.eNewDomain_6843", 0 - %"$ud-registry.eNewDomain_envptr_6845" = extractvalue { { i8* (i8*, %String)*, i8* } (i8*, [32 x i8]*)*, i8* } %"$ud-registry.eNewDomain_6843", 1 - %"$ud-registry.eNewDomain_rootNode_6846" = alloca [32 x i8], align 1 - %"$rootNode_6847" = load [32 x i8], [32 x i8]* @_cparam_rootNode, align 1 - store [32 x i8] %"$rootNode_6847", [32 x i8]* %"$ud-registry.eNewDomain_rootNode_6846", align 1 - %"$ud-registry.eNewDomain_call_6848" = call { i8* (i8*, %String)*, i8* } %"$ud-registry.eNewDomain_fptr_6844"(i8* %"$ud-registry.eNewDomain_envptr_6845", [32 x i8]* %"$ud-registry.eNewDomain_rootNode_6846"), !dbg !643 - store { i8* (i8*, %String)*, i8* } %"$ud-registry.eNewDomain_call_6848", { i8* (i8*, %String)*, i8* }* %"$ud-registry.eNewDomain_171", align 8, !dbg !643 + %"$ud-registry.eNewDomain_6954" = 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_6955" = extractvalue { { i8* (i8*, %String)*, i8* } (i8*, [32 x i8]*)*, i8* } %"$ud-registry.eNewDomain_6954", 0 + %"$ud-registry.eNewDomain_envptr_6956" = extractvalue { { i8* (i8*, %String)*, i8* } (i8*, [32 x i8]*)*, i8* } %"$ud-registry.eNewDomain_6954", 1 + %"$ud-registry.eNewDomain_rootNode_6957" = alloca [32 x i8], align 1 + %"$rootNode_6958" = load [32 x i8], [32 x i8]* @_cparam_rootNode, align 1 + store [32 x i8] %"$rootNode_6958", [32 x i8]* %"$ud-registry.eNewDomain_rootNode_6957", align 1 + %"$ud-registry.eNewDomain_call_6959" = call { i8* (i8*, %String)*, i8* } %"$ud-registry.eNewDomain_fptr_6955"(i8* %"$ud-registry.eNewDomain_envptr_6956", [32 x i8]* %"$ud-registry.eNewDomain_rootNode_6957"), !dbg !1235 + store { i8* (i8*, %String)*, i8* } %"$ud-registry.eNewDomain_call_6959", { i8* (i8*, %String)*, i8* }* %"$ud-registry.eNewDomain_171", align 8, !dbg !1235 %"$ud-registry.eNewDomain_172" = alloca i8*, align 8 - %"$$ud-registry.eNewDomain_171_6849" = load { i8* (i8*, %String)*, i8* }, { i8* (i8*, %String)*, i8* }* %"$ud-registry.eNewDomain_171", align 8 - %"$$ud-registry.eNewDomain_171_fptr_6850" = extractvalue { i8* (i8*, %String)*, i8* } %"$$ud-registry.eNewDomain_171_6849", 0 - %"$$ud-registry.eNewDomain_171_envptr_6851" = extractvalue { i8* (i8*, %String)*, i8* } %"$$ud-registry.eNewDomain_171_6849", 1 - %"$$ud-registry.eNewDomain_171_call_6852" = call i8* %"$$ud-registry.eNewDomain_171_fptr_6850"(i8* %"$$ud-registry.eNewDomain_171_envptr_6851", %String %label), !dbg !643 - store i8* %"$$ud-registry.eNewDomain_171_call_6852", i8** %"$ud-registry.eNewDomain_172", align 8, !dbg !643 - %"$$ud-registry.eNewDomain_172_6853" = load i8*, i8** %"$ud-registry.eNewDomain_172", align 8 - store i8* %"$$ud-registry.eNewDomain_172_6853", i8** %e, align 8, !dbg !643 - %"$e_6854" = load i8*, i8** %e, align 8 - %"$_literal_cost_call_6856" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Event_446", i8* %"$e_6854") - %"$gasrem_6857" = load i64, i64* @_gasrem, align 8 - %"$gascmp_6858" = icmp ugt i64 %"$_literal_cost_call_6856", %"$gasrem_6857" - br i1 %"$gascmp_6858", label %"$out_of_gas_6859", label %"$have_gas_6860" - -"$out_of_gas_6859": ; preds = %"$have_gas_6841" - call void @_out_of_gas() - br label %"$have_gas_6860" - -"$have_gas_6860": ; preds = %"$out_of_gas_6859", %"$have_gas_6841" - %"$consume_6861" = sub i64 %"$gasrem_6857", %"$_literal_cost_call_6856" - store i64 %"$consume_6861", i64* @_gasrem, align 8 - %"$execptr_load_6862" = load i8*, i8** @_execptr, align 8 - %"$e_6863" = load i8*, i8** %e, align 8 - call void @_event(i8* %"$execptr_load_6862", %_TyDescrTy_Typ* @"$TyDescr_Event_446", i8* %"$e_6863"), !dbg !646 - br label %"$matchsucc_6826" - -"$default_6830": ; preds = %"$have_gas_6824" + call void @llvm.dbg.declare(metadata i8** %"$ud-registry.eNewDomain_172", metadata !1236, metadata !DIExpression()), !dbg !1235 + %"$$ud-registry.eNewDomain_171_6960" = load { i8* (i8*, %String)*, i8* }, { i8* (i8*, %String)*, i8* }* %"$ud-registry.eNewDomain_171", align 8 + %"$$ud-registry.eNewDomain_171_fptr_6961" = extractvalue { i8* (i8*, %String)*, i8* } %"$$ud-registry.eNewDomain_171_6960", 0 + %"$$ud-registry.eNewDomain_171_envptr_6962" = extractvalue { i8* (i8*, %String)*, i8* } %"$$ud-registry.eNewDomain_171_6960", 1 + %"$$ud-registry.eNewDomain_171_call_6963" = call i8* %"$$ud-registry.eNewDomain_171_fptr_6961"(i8* %"$$ud-registry.eNewDomain_171_envptr_6962", %String %label), !dbg !1235 + store i8* %"$$ud-registry.eNewDomain_171_call_6963", i8** %"$ud-registry.eNewDomain_172", align 8, !dbg !1235 + %"$$ud-registry.eNewDomain_172_6964" = load i8*, i8** %"$ud-registry.eNewDomain_172", align 8 + store i8* %"$$ud-registry.eNewDomain_172_6964", i8** %e, align 8, !dbg !1235 + %"$e_6965" = load i8*, i8** %e, align 8 + %"$_literal_cost_call_6967" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Event_446", i8* %"$e_6965") + %"$gasrem_6968" = load i64, i64* @_gasrem, align 8 + %"$gascmp_6969" = icmp ugt i64 %"$_literal_cost_call_6967", %"$gasrem_6968" + br i1 %"$gascmp_6969", label %"$out_of_gas_6970", label %"$have_gas_6971" + +"$out_of_gas_6970": ; preds = %"$have_gas_6952" + call void @_out_of_gas() + br label %"$have_gas_6971" + +"$have_gas_6971": ; preds = %"$out_of_gas_6970", %"$have_gas_6952" + %"$consume_6972" = sub i64 %"$gasrem_6968", %"$_literal_cost_call_6967" + store i64 %"$consume_6972", i64* @_gasrem, align 8 + %"$execptr_load_6973" = load i8*, i8** @_execptr, align 8 + %"$e_6974" = load i8*, i8** %e, align 8 + call void @_event(i8* %"$execptr_load_6973", %_TyDescrTy_Typ* @"$TyDescr_Event_446", i8* %"$e_6974"), !dbg !1237 + br label %"$matchsucc_6937" + +"$default_6941": ; preds = %"$have_gas_6935" br label %"$joinp_29" -"$joinp_29": ; preds = %"$default_6830" - br label %"$matchsucc_6826" +"$joinp_29": ; preds = %"$default_6941" + br label %"$matchsucc_6937" -"$matchsucc_6826": ; preds = %"$have_gas_6860", %"$joinp_29" - %"$gasrem_6864" = load i64, i64* @_gasrem, align 8 - %"$gascmp_6865" = icmp ugt i64 1, %"$gasrem_6864" - br i1 %"$gascmp_6865", label %"$out_of_gas_6866", label %"$have_gas_6867" +"$matchsucc_6937": ; preds = %"$have_gas_6971", %"$joinp_29" + %"$gasrem_6975" = load i64, i64* @_gasrem, align 8 + %"$gascmp_6976" = icmp ugt i64 1, %"$gasrem_6975" + br i1 %"$gascmp_6976", label %"$out_of_gas_6977", label %"$have_gas_6978" -"$out_of_gas_6866": ; preds = %"$matchsucc_6826" +"$out_of_gas_6977": ; preds = %"$matchsucc_6937" call void @_out_of_gas() - br label %"$have_gas_6867" + br label %"$have_gas_6978" -"$have_gas_6867": ; preds = %"$out_of_gas_6866", %"$matchsucc_6826" - %"$consume_6868" = sub i64 %"$gasrem_6864", 1 - store i64 %"$consume_6868", i64* @_gasrem, align 8 +"$have_gas_6978": ; preds = %"$out_of_gas_6977", %"$matchsucc_6937" + %"$consume_6979" = sub i64 %"$gasrem_6975", 1 + store i64 %"$consume_6979", i64* @_gasrem, align 8 %newRecord = alloca %TName_ud-registry.Record*, align 8 - %"$gasrem_6869" = load i64, i64* @_gasrem, align 8 - %"$gascmp_6870" = icmp ugt i64 1, %"$gasrem_6869" - br i1 %"$gascmp_6870", label %"$out_of_gas_6871", label %"$have_gas_6872" - -"$out_of_gas_6871": ; preds = %"$have_gas_6867" - call void @_out_of_gas() - br label %"$have_gas_6872" - -"$have_gas_6872": ; preds = %"$out_of_gas_6871", %"$have_gas_6867" - %"$consume_6873" = sub i64 %"$gasrem_6869", 1 - store i64 %"$consume_6873", i64* @_gasrem, align 8 - %"$adtval_6874_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_6874_salloc" = call i8* @_salloc(i8* %"$adtval_6874_load", i64 41) - %"$adtval_6874" = bitcast i8* %"$adtval_6874_salloc" to %CName_ud-registry.Record* - %"$adtgep_6875" = getelementptr inbounds %CName_ud-registry.Record, %CName_ud-registry.Record* %"$adtval_6874", i32 0, i32 0 - store i8 0, i8* %"$adtgep_6875", align 1 - %"$adtgep_6876" = getelementptr inbounds %CName_ud-registry.Record, %CName_ud-registry.Record* %"$adtval_6874", i32 0, i32 1 - store [20 x i8] %owner, [20 x i8]* %"$adtgep_6876", align 1 - %"$adtgep_6877" = getelementptr inbounds %CName_ud-registry.Record, %CName_ud-registry.Record* %"$adtval_6874", i32 0, i32 2 - store [20 x i8] %resolver, [20 x i8]* %"$adtgep_6877", align 1 - %"$adtptr_6878" = bitcast %CName_ud-registry.Record* %"$adtval_6874" to %TName_ud-registry.Record* - store %TName_ud-registry.Record* %"$adtptr_6878", %TName_ud-registry.Record** %newRecord, align 8, !dbg !647 - %"$newRecord_6879" = load %TName_ud-registry.Record*, %TName_ud-registry.Record** %newRecord, align 8 - %"$$newRecord_6879_6880" = bitcast %TName_ud-registry.Record* %"$newRecord_6879" to i8* - %"$_literal_cost_call_6881" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_ud-registry.Record_465", i8* %"$$newRecord_6879_6880") - %"$gasadd_6882" = add i64 %"$_literal_cost_call_6881", 1 - %"$gasrem_6883" = load i64, i64* @_gasrem, align 8 - %"$gascmp_6884" = icmp ugt i64 %"$gasadd_6882", %"$gasrem_6883" - br i1 %"$gascmp_6884", label %"$out_of_gas_6885", label %"$have_gas_6886" + call void @llvm.dbg.declare(metadata %TName_ud-registry.Record** %newRecord, metadata !1238, metadata !DIExpression()), !dbg !1239 + %"$gasrem_6980" = load i64, i64* @_gasrem, align 8 + %"$gascmp_6981" = icmp ugt i64 1, %"$gasrem_6980" + br i1 %"$gascmp_6981", label %"$out_of_gas_6982", label %"$have_gas_6983" + +"$out_of_gas_6982": ; preds = %"$have_gas_6978" + call void @_out_of_gas() + br label %"$have_gas_6983" + +"$have_gas_6983": ; preds = %"$out_of_gas_6982", %"$have_gas_6978" + %"$consume_6984" = sub i64 %"$gasrem_6980", 1 + store i64 %"$consume_6984", i64* @_gasrem, align 8 + %"$adtval_6985_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_6985_salloc" = call i8* @_salloc(i8* %"$adtval_6985_load", i64 41) + %"$adtval_6985" = bitcast i8* %"$adtval_6985_salloc" to %CName_ud-registry.Record* + %"$adtgep_6986" = getelementptr inbounds %CName_ud-registry.Record, %CName_ud-registry.Record* %"$adtval_6985", i32 0, i32 0 + store i8 0, i8* %"$adtgep_6986", align 1 + %"$adtgep_6987" = getelementptr inbounds %CName_ud-registry.Record, %CName_ud-registry.Record* %"$adtval_6985", i32 0, i32 1 + store [20 x i8] %owner, [20 x i8]* %"$adtgep_6987", align 1 + %"$adtgep_6988" = getelementptr inbounds %CName_ud-registry.Record, %CName_ud-registry.Record* %"$adtval_6985", i32 0, i32 2 + store [20 x i8] %resolver, [20 x i8]* %"$adtgep_6988", align 1 + %"$adtptr_6989" = bitcast %CName_ud-registry.Record* %"$adtval_6985" to %TName_ud-registry.Record* + store %TName_ud-registry.Record* %"$adtptr_6989", %TName_ud-registry.Record** %newRecord, align 8, !dbg !1240 + %"$newRecord_6990" = load %TName_ud-registry.Record*, %TName_ud-registry.Record** %newRecord, align 8 + %"$$newRecord_6990_6991" = bitcast %TName_ud-registry.Record* %"$newRecord_6990" to i8* + %"$_literal_cost_call_6992" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_ud-registry.Record_465", i8* %"$$newRecord_6990_6991") + %"$gasadd_6993" = add i64 %"$_literal_cost_call_6992", 1 + %"$gasrem_6994" = load i64, i64* @_gasrem, align 8 + %"$gascmp_6995" = icmp ugt i64 %"$gasadd_6993", %"$gasrem_6994" + br i1 %"$gascmp_6995", label %"$out_of_gas_6996", label %"$have_gas_6997" + +"$out_of_gas_6996": ; preds = %"$have_gas_6983" + call void @_out_of_gas() + br label %"$have_gas_6997" + +"$have_gas_6997": ; preds = %"$out_of_gas_6996", %"$have_gas_6983" + %"$consume_6998" = sub i64 %"$gasrem_6994", %"$gasadd_6993" + store i64 %"$consume_6998", i64* @_gasrem, align 8 + %"$indices_buf_6999_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$indices_buf_6999_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_6999_salloc_load", i64 32) + %"$indices_buf_6999_salloc" = bitcast i8* %"$indices_buf_6999_salloc_salloc" to [32 x i8]* + %"$indices_buf_6999" = bitcast [32 x i8]* %"$indices_buf_6999_salloc" to i8* + %"$node_7000" = load [32 x i8], [32 x i8]* %node, align 1 + %"$indices_gep_7001" = getelementptr i8, i8* %"$indices_buf_6999", i32 0 + %indices_cast2 = bitcast i8* %"$indices_gep_7001" to [32 x i8]* + store [32 x i8] %"$node_7000", [32 x i8]* %indices_cast2, align 1 + %"$execptr_load_7002" = load i8*, i8** @_execptr, align 8 + %"$newRecord_7004" = load %TName_ud-registry.Record*, %TName_ud-registry.Record** %newRecord, align 8 + %"$update_value_7005" = bitcast %TName_ud-registry.Record* %"$newRecord_7004" to i8* + call void @_update_field(i8* %"$execptr_load_7002", i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$records_7003", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_472", i32 1, i8* %"$indices_buf_6999", i8* %"$update_value_7005"), !dbg !1241 + %"$gasrem_7006" = load i64, i64* @_gasrem, align 8 + %"$gascmp_7007" = icmp ugt i64 1, %"$gasrem_7006" + br i1 %"$gascmp_7007", label %"$out_of_gas_7008", label %"$have_gas_7009" -"$out_of_gas_6885": ; preds = %"$have_gas_6872" +"$out_of_gas_7008": ; preds = %"$have_gas_6997" call void @_out_of_gas() - br label %"$have_gas_6886" + br label %"$have_gas_7009" -"$have_gas_6886": ; preds = %"$out_of_gas_6885", %"$have_gas_6872" - %"$consume_6887" = sub i64 %"$gasrem_6883", %"$gasadd_6882" - store i64 %"$consume_6887", i64* @_gasrem, align 8 - %"$indices_buf_6888_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$indices_buf_6888_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_6888_salloc_load", i64 32) - %"$indices_buf_6888_salloc" = bitcast i8* %"$indices_buf_6888_salloc_salloc" to [32 x i8]* - %"$indices_buf_6888" = bitcast [32 x i8]* %"$indices_buf_6888_salloc" to i8* - %"$node_6889" = load [32 x i8], [32 x i8]* %node, align 1 - %"$indices_gep_6890" = getelementptr i8, i8* %"$indices_buf_6888", i32 0 - %indices_cast2 = bitcast i8* %"$indices_gep_6890" to [32 x i8]* - store [32 x i8] %"$node_6889", [32 x i8]* %indices_cast2, align 1 - %"$execptr_load_6891" = load i8*, i8** @_execptr, align 8 - %"$newRecord_6893" = load %TName_ud-registry.Record*, %TName_ud-registry.Record** %newRecord, align 8 - %"$update_value_6894" = bitcast %TName_ud-registry.Record* %"$newRecord_6893" to i8* - call void @_update_field(i8* %"$execptr_load_6891", i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$records_6892", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_472", i32 1, i8* %"$indices_buf_6888", i8* %"$update_value_6894"), !dbg !648 - %"$gasrem_6895" = load i64, i64* @_gasrem, align 8 - %"$gascmp_6896" = icmp ugt i64 1, %"$gasrem_6895" - br i1 %"$gascmp_6896", label %"$out_of_gas_6897", label %"$have_gas_6898" - -"$out_of_gas_6897": ; preds = %"$have_gas_6886" - call void @_out_of_gas() - br label %"$have_gas_6898" - -"$have_gas_6898": ; preds = %"$out_of_gas_6897", %"$have_gas_6886" - %"$consume_6899" = sub i64 %"$gasrem_6895", 1 - store i64 %"$consume_6899", i64* @_gasrem, align 8 +"$have_gas_7009": ; preds = %"$out_of_gas_7008", %"$have_gas_6997" + %"$consume_7010" = sub i64 %"$gasrem_7006", 1 + store i64 %"$consume_7010", i64* @_gasrem, align 8 %e3 = alloca i8*, align 8 - %"$gasrem_6900" = load i64, i64* @_gasrem, align 8 - %"$gascmp_6901" = icmp ugt i64 1, %"$gasrem_6900" - br i1 %"$gascmp_6901", label %"$out_of_gas_6902", label %"$have_gas_6903" + call void @llvm.dbg.declare(metadata i8** %e3, metadata !1242, metadata !DIExpression()), !dbg !1243 + %"$gasrem_7011" = load i64, i64* @_gasrem, align 8 + %"$gascmp_7012" = icmp ugt i64 1, %"$gasrem_7011" + br i1 %"$gascmp_7012", label %"$out_of_gas_7013", label %"$have_gas_7014" -"$out_of_gas_6902": ; preds = %"$have_gas_6898" +"$out_of_gas_7013": ; preds = %"$have_gas_7009" call void @_out_of_gas() - br label %"$have_gas_6903" + br label %"$have_gas_7014" -"$have_gas_6903": ; preds = %"$out_of_gas_6902", %"$have_gas_6898" - %"$consume_6904" = sub i64 %"$gasrem_6900", 1 - store i64 %"$consume_6904", i64* @_gasrem, align 8 +"$have_gas_7014": ; preds = %"$out_of_gas_7013", %"$have_gas_7009" + %"$consume_7015" = sub i64 %"$gasrem_7011", 1 + store i64 %"$consume_7015", i64* @_gasrem, align 8 %"$ud-registry.eConfigured_168" = alloca { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* }, align 8 - %"$ud-registry.eConfigured_6905" = 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_6906" = extractvalue { { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, [32 x i8]*)*, i8* } %"$ud-registry.eConfigured_6905", 0 - %"$ud-registry.eConfigured_envptr_6907" = extractvalue { { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, [32 x i8]*)*, i8* } %"$ud-registry.eConfigured_6905", 1 - %"$ud-registry.eConfigured_node_6908" = alloca [32 x i8], align 1 - %"$node_6909" = load [32 x i8], [32 x i8]* %node, align 1 - store [32 x i8] %"$node_6909", [32 x i8]* %"$ud-registry.eConfigured_node_6908", align 1 - %"$ud-registry.eConfigured_call_6910" = call { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$ud-registry.eConfigured_fptr_6906"(i8* %"$ud-registry.eConfigured_envptr_6907", [32 x i8]* %"$ud-registry.eConfigured_node_6908"), !dbg !649 - store { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$ud-registry.eConfigured_call_6910", { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* }* %"$ud-registry.eConfigured_168", align 8, !dbg !649 + %"$ud-registry.eConfigured_7016" = 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_7017" = extractvalue { { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, [32 x i8]*)*, i8* } %"$ud-registry.eConfigured_7016", 0 + %"$ud-registry.eConfigured_envptr_7018" = extractvalue { { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, [32 x i8]*)*, i8* } %"$ud-registry.eConfigured_7016", 1 + %"$ud-registry.eConfigured_node_7019" = alloca [32 x i8], align 1 + %"$node_7020" = load [32 x i8], [32 x i8]* %node, align 1 + store [32 x i8] %"$node_7020", [32 x i8]* %"$ud-registry.eConfigured_node_7019", align 1 + %"$ud-registry.eConfigured_call_7021" = call { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$ud-registry.eConfigured_fptr_7017"(i8* %"$ud-registry.eConfigured_envptr_7018", [32 x i8]* %"$ud-registry.eConfigured_node_7019"), !dbg !1244 + store { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$ud-registry.eConfigured_call_7021", { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* }* %"$ud-registry.eConfigured_168", align 8, !dbg !1244 %"$ud-registry.eConfigured_169" = alloca { i8* (i8*, [20 x i8]*)*, i8* }, align 8 - %"$$ud-registry.eConfigured_168_6911" = 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_168", align 8 - %"$$ud-registry.eConfigured_168_fptr_6912" = extractvalue { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.eConfigured_168_6911", 0 - %"$$ud-registry.eConfigured_168_envptr_6913" = extractvalue { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.eConfigured_168_6911", 1 - %"$$ud-registry.eConfigured_168_owner_6914" = alloca [20 x i8], align 1 - store [20 x i8] %owner, [20 x i8]* %"$$ud-registry.eConfigured_168_owner_6914", align 1 - %"$$ud-registry.eConfigured_168_call_6915" = call { i8* (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.eConfigured_168_fptr_6912"(i8* %"$$ud-registry.eConfigured_168_envptr_6913", [20 x i8]* %"$$ud-registry.eConfigured_168_owner_6914"), !dbg !649 - store { i8* (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.eConfigured_168_call_6915", { i8* (i8*, [20 x i8]*)*, i8* }* %"$ud-registry.eConfigured_169", align 8, !dbg !649 + %"$$ud-registry.eConfigured_168_7022" = 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_168", align 8 + %"$$ud-registry.eConfigured_168_fptr_7023" = extractvalue { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.eConfigured_168_7022", 0 + %"$$ud-registry.eConfigured_168_envptr_7024" = extractvalue { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.eConfigured_168_7022", 1 + %"$$ud-registry.eConfigured_168_owner_7025" = alloca [20 x i8], align 1 + store [20 x i8] %owner, [20 x i8]* %"$$ud-registry.eConfigured_168_owner_7025", align 1 + %"$$ud-registry.eConfigured_168_call_7026" = call { i8* (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.eConfigured_168_fptr_7023"(i8* %"$$ud-registry.eConfigured_168_envptr_7024", [20 x i8]* %"$$ud-registry.eConfigured_168_owner_7025"), !dbg !1244 + store { i8* (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.eConfigured_168_call_7026", { i8* (i8*, [20 x i8]*)*, i8* }* %"$ud-registry.eConfigured_169", align 8, !dbg !1244 %"$ud-registry.eConfigured_170" = alloca i8*, align 8 - %"$$ud-registry.eConfigured_169_6916" = load { i8* (i8*, [20 x i8]*)*, i8* }, { i8* (i8*, [20 x i8]*)*, i8* }* %"$ud-registry.eConfigured_169", align 8 - %"$$ud-registry.eConfigured_169_fptr_6917" = extractvalue { i8* (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.eConfigured_169_6916", 0 - %"$$ud-registry.eConfigured_169_envptr_6918" = extractvalue { i8* (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.eConfigured_169_6916", 1 - %"$$ud-registry.eConfigured_169_resolver_6919" = alloca [20 x i8], align 1 - store [20 x i8] %resolver, [20 x i8]* %"$$ud-registry.eConfigured_169_resolver_6919", align 1 - %"$$ud-registry.eConfigured_169_call_6920" = call i8* %"$$ud-registry.eConfigured_169_fptr_6917"(i8* %"$$ud-registry.eConfigured_169_envptr_6918", [20 x i8]* %"$$ud-registry.eConfigured_169_resolver_6919"), !dbg !649 - store i8* %"$$ud-registry.eConfigured_169_call_6920", i8** %"$ud-registry.eConfigured_170", align 8, !dbg !649 - %"$$ud-registry.eConfigured_170_6921" = load i8*, i8** %"$ud-registry.eConfigured_170", align 8 - store i8* %"$$ud-registry.eConfigured_170_6921", i8** %e3, align 8, !dbg !649 - %"$e_6922" = load i8*, i8** %e3, align 8 - %"$_literal_cost_call_6924" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Event_446", i8* %"$e_6922") - %"$gasrem_6925" = load i64, i64* @_gasrem, align 8 - %"$gascmp_6926" = icmp ugt i64 %"$_literal_cost_call_6924", %"$gasrem_6925" - br i1 %"$gascmp_6926", label %"$out_of_gas_6927", label %"$have_gas_6928" - -"$out_of_gas_6927": ; preds = %"$have_gas_6903" - call void @_out_of_gas() - br label %"$have_gas_6928" - -"$have_gas_6928": ; preds = %"$out_of_gas_6927", %"$have_gas_6903" - %"$consume_6929" = sub i64 %"$gasrem_6925", %"$_literal_cost_call_6924" - store i64 %"$consume_6929", i64* @_gasrem, align 8 - %"$execptr_load_6930" = load i8*, i8** @_execptr, align 8 - %"$e_6931" = load i8*, i8** %e3, align 8 - call void @_event(i8* %"$execptr_load_6930", %_TyDescrTy_Typ* @"$TyDescr_Event_446", i8* %"$e_6931"), !dbg !650 - br label %"$matchsucc_6814" - -"$False_6932": ; preds = %"$have_gas_6812" - %"$isOk_6933" = bitcast %TName_Bool* %"$isOk_6815" to %CName_False* - %"$gasrem_6934" = load i64, i64* @_gasrem, align 8 - %"$gascmp_6935" = icmp ugt i64 1, %"$gasrem_6934" - br i1 %"$gascmp_6935", label %"$out_of_gas_6936", label %"$have_gas_6937" - -"$out_of_gas_6936": ; preds = %"$False_6932" - call void @_out_of_gas() - br label %"$have_gas_6937" - -"$have_gas_6937": ; preds = %"$out_of_gas_6936", %"$False_6932" - %"$consume_6938" = sub i64 %"$gasrem_6934", 1 - store i64 %"$consume_6938", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata i8** %"$ud-registry.eConfigured_170", metadata !1245, metadata !DIExpression()), !dbg !1244 + %"$$ud-registry.eConfigured_169_7027" = load { i8* (i8*, [20 x i8]*)*, i8* }, { i8* (i8*, [20 x i8]*)*, i8* }* %"$ud-registry.eConfigured_169", align 8 + %"$$ud-registry.eConfigured_169_fptr_7028" = extractvalue { i8* (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.eConfigured_169_7027", 0 + %"$$ud-registry.eConfigured_169_envptr_7029" = extractvalue { i8* (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.eConfigured_169_7027", 1 + %"$$ud-registry.eConfigured_169_resolver_7030" = alloca [20 x i8], align 1 + store [20 x i8] %resolver, [20 x i8]* %"$$ud-registry.eConfigured_169_resolver_7030", align 1 + %"$$ud-registry.eConfigured_169_call_7031" = call i8* %"$$ud-registry.eConfigured_169_fptr_7028"(i8* %"$$ud-registry.eConfigured_169_envptr_7029", [20 x i8]* %"$$ud-registry.eConfigured_169_resolver_7030"), !dbg !1244 + store i8* %"$$ud-registry.eConfigured_169_call_7031", i8** %"$ud-registry.eConfigured_170", align 8, !dbg !1244 + %"$$ud-registry.eConfigured_170_7032" = load i8*, i8** %"$ud-registry.eConfigured_170", align 8 + store i8* %"$$ud-registry.eConfigured_170_7032", i8** %e3, align 8, !dbg !1244 + %"$e_7033" = load i8*, i8** %e3, align 8 + %"$_literal_cost_call_7035" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Event_446", i8* %"$e_7033") + %"$gasrem_7036" = load i64, i64* @_gasrem, align 8 + %"$gascmp_7037" = icmp ugt i64 %"$_literal_cost_call_7035", %"$gasrem_7036" + br i1 %"$gascmp_7037", label %"$out_of_gas_7038", label %"$have_gas_7039" + +"$out_of_gas_7038": ; preds = %"$have_gas_7014" + call void @_out_of_gas() + br label %"$have_gas_7039" + +"$have_gas_7039": ; preds = %"$out_of_gas_7038", %"$have_gas_7014" + %"$consume_7040" = sub i64 %"$gasrem_7036", %"$_literal_cost_call_7035" + store i64 %"$consume_7040", i64* @_gasrem, align 8 + %"$execptr_load_7041" = load i8*, i8** @_execptr, align 8 + %"$e_7042" = load i8*, i8** %e3, align 8 + call void @_event(i8* %"$execptr_load_7041", %_TyDescrTy_Typ* @"$TyDescr_Event_446", i8* %"$e_7042"), !dbg !1246 + br label %"$matchsucc_6925" + +"$False_7043": ; preds = %"$have_gas_6923" + %"$isOk_7044" = bitcast %TName_Bool* %"$isOk_6926" to %CName_False* + %"$gasrem_7045" = load i64, i64* @_gasrem, align 8 + %"$gascmp_7046" = icmp ugt i64 1, %"$gasrem_7045" + br i1 %"$gascmp_7046", label %"$out_of_gas_7047", label %"$have_gas_7048" + +"$out_of_gas_7047": ; preds = %"$False_7043" + call void @_out_of_gas() + br label %"$have_gas_7048" + +"$have_gas_7048": ; preds = %"$out_of_gas_7047", %"$False_7043" + %"$consume_7049" = sub i64 %"$gasrem_7045", 1 + store i64 %"$consume_7049", i64* @_gasrem, align 8 %e4 = alloca i8*, align 8 - %"$gasrem_6939" = load i64, i64* @_gasrem, align 8 - %"$gascmp_6940" = icmp ugt i64 1, %"$gasrem_6939" - br i1 %"$gascmp_6940", label %"$out_of_gas_6941", label %"$have_gas_6942" + call void @llvm.dbg.declare(metadata i8** %e4, metadata !1247, metadata !DIExpression()), !dbg !1249 + %"$gasrem_7050" = load i64, i64* @_gasrem, align 8 + %"$gascmp_7051" = icmp ugt i64 1, %"$gasrem_7050" + br i1 %"$gascmp_7051", label %"$out_of_gas_7052", label %"$have_gas_7053" -"$out_of_gas_6941": ; preds = %"$have_gas_6937" +"$out_of_gas_7052": ; preds = %"$have_gas_7048" call void @_out_of_gas() - br label %"$have_gas_6942" + br label %"$have_gas_7053" -"$have_gas_6942": ; preds = %"$out_of_gas_6941", %"$have_gas_6937" - %"$consume_6943" = sub i64 %"$gasrem_6939", 1 - store i64 %"$consume_6943", i64* @_gasrem, align 8 +"$have_gas_7053": ; preds = %"$out_of_gas_7052", %"$have_gas_7048" + %"$consume_7054" = sub i64 %"$gasrem_7050", 1 + store i64 %"$consume_7054", i64* @_gasrem, align 8 %m = alloca %String, align 8 - %"$gasrem_6944" = load i64, i64* @_gasrem, align 8 - %"$gascmp_6945" = icmp ugt i64 1, %"$gasrem_6944" - br i1 %"$gascmp_6945", label %"$out_of_gas_6946", label %"$have_gas_6947" + call void @llvm.dbg.declare(metadata %String* %m, metadata !1250, metadata !DIExpression()), !dbg !1251 + %"$gasrem_7055" = load i64, i64* @_gasrem, align 8 + %"$gascmp_7056" = icmp ugt i64 1, %"$gasrem_7055" + br i1 %"$gascmp_7056", label %"$out_of_gas_7057", label %"$have_gas_7058" -"$out_of_gas_6946": ; preds = %"$have_gas_6942" +"$out_of_gas_7057": ; preds = %"$have_gas_7053" call void @_out_of_gas() - br label %"$have_gas_6947" + br label %"$have_gas_7058" -"$have_gas_6947": ; preds = %"$out_of_gas_6946", %"$have_gas_6942" - %"$consume_6948" = sub i64 %"$gasrem_6944", 1 - store i64 %"$consume_6948", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([12 x i8], [12 x i8]* @"$stringlit_6949", i32 0, i32 0), i32 12 }, %String* %m, align 8, !dbg !651 - %"$gasrem_6950" = load i64, i64* @_gasrem, align 8 - %"$gascmp_6951" = icmp ugt i64 1, %"$gasrem_6950" - br i1 %"$gascmp_6951", label %"$out_of_gas_6952", label %"$have_gas_6953" +"$have_gas_7058": ; preds = %"$out_of_gas_7057", %"$have_gas_7053" + %"$consume_7059" = sub i64 %"$gasrem_7055", 1 + store i64 %"$consume_7059", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([12 x i8], [12 x i8]* @"$stringlit_7060", i32 0, i32 0), i32 12 }, %String* %m, align 8, !dbg !1252 + %"$gasrem_7061" = load i64, i64* @_gasrem, align 8 + %"$gascmp_7062" = icmp ugt i64 1, %"$gasrem_7061" + br i1 %"$gascmp_7062", label %"$out_of_gas_7063", label %"$have_gas_7064" -"$out_of_gas_6952": ; preds = %"$have_gas_6947" +"$out_of_gas_7063": ; preds = %"$have_gas_7058" call void @_out_of_gas() - br label %"$have_gas_6953" + br label %"$have_gas_7064" -"$have_gas_6953": ; preds = %"$out_of_gas_6952", %"$have_gas_6947" - %"$consume_6954" = sub i64 %"$gasrem_6950", 1 - store i64 %"$consume_6954", i64* @_gasrem, align 8 +"$have_gas_7064": ; preds = %"$out_of_gas_7063", %"$have_gas_7058" + %"$consume_7065" = sub i64 %"$gasrem_7061", 1 + store i64 %"$consume_7065", i64* @_gasrem, align 8 %"$ud-registry.eError_173" = alloca i8*, align 8 - %"$ud-registry.eError_6955" = load { i8* (i8*, %String)*, i8* }, { i8* (i8*, %String)*, i8* }* @ud-registry.eError, align 8 - %"$ud-registry.eError_fptr_6956" = extractvalue { i8* (i8*, %String)*, i8* } %"$ud-registry.eError_6955", 0 - %"$ud-registry.eError_envptr_6957" = extractvalue { i8* (i8*, %String)*, i8* } %"$ud-registry.eError_6955", 1 - %"$m_6958" = load %String, %String* %m, align 8 - %"$ud-registry.eError_call_6959" = call i8* %"$ud-registry.eError_fptr_6956"(i8* %"$ud-registry.eError_envptr_6957", %String %"$m_6958"), !dbg !653 - store i8* %"$ud-registry.eError_call_6959", i8** %"$ud-registry.eError_173", align 8, !dbg !653 - %"$$ud-registry.eError_173_6960" = load i8*, i8** %"$ud-registry.eError_173", align 8 - store i8* %"$$ud-registry.eError_173_6960", i8** %e4, align 8, !dbg !653 - %"$e_6961" = load i8*, i8** %e4, align 8 - %"$_literal_cost_call_6963" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Event_446", i8* %"$e_6961") - %"$gasrem_6964" = load i64, i64* @_gasrem, align 8 - %"$gascmp_6965" = icmp ugt i64 %"$_literal_cost_call_6963", %"$gasrem_6964" - br i1 %"$gascmp_6965", label %"$out_of_gas_6966", label %"$have_gas_6967" - -"$out_of_gas_6966": ; preds = %"$have_gas_6953" - call void @_out_of_gas() - br label %"$have_gas_6967" - -"$have_gas_6967": ; preds = %"$out_of_gas_6966", %"$have_gas_6953" - %"$consume_6968" = sub i64 %"$gasrem_6964", %"$_literal_cost_call_6963" - store i64 %"$consume_6968", i64* @_gasrem, align 8 - %"$execptr_load_6969" = load i8*, i8** @_execptr, align 8 - %"$e_6970" = load i8*, i8** %e4, align 8 - call void @_event(i8* %"$execptr_load_6969", %_TyDescrTy_Typ* @"$TyDescr_Event_446", i8* %"$e_6970"), !dbg !654 - br label %"$matchsucc_6814" - -"$empty_default_6818": ; preds = %"$have_gas_6812" - br label %"$matchsucc_6814" - -"$matchsucc_6814": ; preds = %"$have_gas_6967", %"$have_gas_6928", %"$empty_default_6818" + call void @llvm.dbg.declare(metadata i8** %"$ud-registry.eError_173", metadata !1253, metadata !DIExpression()), !dbg !1254 + %"$ud-registry.eError_7066" = load { i8* (i8*, %String)*, i8* }, { i8* (i8*, %String)*, i8* }* @ud-registry.eError, align 8 + %"$ud-registry.eError_fptr_7067" = extractvalue { i8* (i8*, %String)*, i8* } %"$ud-registry.eError_7066", 0 + %"$ud-registry.eError_envptr_7068" = extractvalue { i8* (i8*, %String)*, i8* } %"$ud-registry.eError_7066", 1 + %"$m_7069" = load %String, %String* %m, align 8 + %"$ud-registry.eError_call_7070" = call i8* %"$ud-registry.eError_fptr_7067"(i8* %"$ud-registry.eError_envptr_7068", %String %"$m_7069"), !dbg !1254 + store i8* %"$ud-registry.eError_call_7070", i8** %"$ud-registry.eError_173", align 8, !dbg !1254 + %"$$ud-registry.eError_173_7071" = load i8*, i8** %"$ud-registry.eError_173", align 8 + store i8* %"$$ud-registry.eError_173_7071", i8** %e4, align 8, !dbg !1254 + %"$e_7072" = load i8*, i8** %e4, align 8 + %"$_literal_cost_call_7074" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Event_446", i8* %"$e_7072") + %"$gasrem_7075" = load i64, i64* @_gasrem, align 8 + %"$gascmp_7076" = icmp ugt i64 %"$_literal_cost_call_7074", %"$gasrem_7075" + br i1 %"$gascmp_7076", label %"$out_of_gas_7077", label %"$have_gas_7078" + +"$out_of_gas_7077": ; preds = %"$have_gas_7064" + call void @_out_of_gas() + br label %"$have_gas_7078" + +"$have_gas_7078": ; preds = %"$out_of_gas_7077", %"$have_gas_7064" + %"$consume_7079" = sub i64 %"$gasrem_7075", %"$_literal_cost_call_7074" + store i64 %"$consume_7079", i64* @_gasrem, align 8 + %"$execptr_load_7080" = load i8*, i8** @_execptr, align 8 + %"$e_7081" = load i8*, i8** %e4, align 8 + call void @_event(i8* %"$execptr_load_7080", %_TyDescrTy_Typ* @"$TyDescr_Event_446", i8* %"$e_7081"), !dbg !1255 + br label %"$matchsucc_6925" + +"$empty_default_6929": ; preds = %"$have_gas_6923" + br label %"$matchsucc_6925" + +"$matchsucc_6925": ; preds = %"$have_gas_7078", %"$have_gas_7039", %"$empty_default_6929" ret void } -define void @bestow(i8* %0) !dbg !655 { -entry: - %"$_amount_6972" = getelementptr i8, i8* %0, i32 0 - %"$_amount_6973" = bitcast i8* %"$_amount_6972" to %Uint128* - %_amount = load %Uint128, %Uint128* %"$_amount_6973", align 8 - %"$_origin_6974" = getelementptr i8, i8* %0, i32 16 - %"$_origin_6975" = bitcast i8* %"$_origin_6974" to [20 x i8]* - %"$_sender_6976" = getelementptr i8, i8* %0, i32 36 - %"$_sender_6977" = bitcast i8* %"$_sender_6976" to [20 x i8]* - %"$label_6978" = getelementptr i8, i8* %0, i32 56 - %"$label_6979" = bitcast i8* %"$label_6978" to %String* - %label = load %String, %String* %"$label_6979", align 8 - %"$owner_6980" = getelementptr i8, i8* %0, i32 72 - %"$owner_6981" = bitcast i8* %"$owner_6980" to [20 x i8]* - %"$resolver_6982" = getelementptr i8, i8* %0, i32 92 - %"$resolver_6983" = bitcast i8* %"$resolver_6982" to [20 x i8]* - call void @"$bestow_6542"(%Uint128 %_amount, [20 x i8]* %"$_origin_6975", [20 x i8]* %"$_sender_6977", %String %label, [20 x i8]* %"$owner_6981", [20 x i8]* %"$resolver_6983"), !dbg !656 +define void @bestow(i8* %0) !dbg !1256 { +entry: + %"$_amount_7089" = getelementptr i8, i8* %0, i32 0 + %"$_amount_7090" = bitcast i8* %"$_amount_7089" to %Uint128* + %_amount = load %Uint128, %Uint128* %"$_amount_7090", align 8 + %"$_origin_7091" = getelementptr i8, i8* %0, i32 16 + %"$_origin_7092" = bitcast i8* %"$_origin_7091" to [20 x i8]* + %"$_sender_7093" = getelementptr i8, i8* %0, i32 36 + %"$_sender_7094" = bitcast i8* %"$_sender_7093" to [20 x i8]* + %"$label_7095" = getelementptr i8, i8* %0, i32 56 + %"$label_7096" = bitcast i8* %"$label_7095" to %String* + %label = load %String, %String* %"$label_7096", align 8 + %"$owner_7097" = getelementptr i8, i8* %0, i32 72 + %"$owner_7098" = bitcast i8* %"$owner_7097" to [20 x i8]* + %"$resolver_7099" = getelementptr i8, i8* %0, i32 92 + %"$resolver_7100" = bitcast i8* %"$resolver_7099" to [20 x i8]* + call void @"$bestow_6653"(%Uint128 %_amount, [20 x i8]* %"$_origin_7092", [20 x i8]* %"$_sender_7094", %String %label, [20 x i8]* %"$owner_7098", [20 x i8]* %"$resolver_7100"), !dbg !1257 ret void } -define internal void @"$setRegistrar_6984"(%Uint128 %_amount, [20 x i8]* %"$_origin_6985", [20 x i8]* %"$_sender_6986", [20 x i8]* %"$address_6987") !dbg !657 { -entry: - %_origin = load [20 x i8], [20 x i8]* %"$_origin_6985", align 1 - %_sender = load [20 x i8], [20 x i8]* %"$_sender_6986", align 1 - %address = load [20 x i8], [20 x i8]* %"$address_6987", align 1 +define internal void @"$setRegistrar_7101"(%Uint128 %_amount, [20 x i8]* %"$_origin_7102", [20 x i8]* %"$_sender_7103", [20 x i8]* %"$address_7104") !dbg !1258 { +entry: + %"$address_7192" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$address_7104", [20 x i8]** %"$address_7192", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$address_7192", metadata !1259, metadata !DIExpression()), !dbg !1260 + %"$_sender_7191" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_sender_7103", [20 x i8]** %"$_sender_7191", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_sender_7191", metadata !1261, metadata !DIExpression()), !dbg !1262 + %"$_origin_7190" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_origin_7102", [20 x i8]** %"$_origin_7190", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_origin_7190", metadata !1263, metadata !DIExpression()), !dbg !1262 + %"$_amount_7189" = alloca %Uint128, align 8 + store %Uint128 %_amount, %Uint128* %"$_amount_7189", align 8 + call void @llvm.dbg.declare(metadata %Uint128* %"$_amount_7189", metadata !1264, metadata !DIExpression()), !dbg !1262 + %_origin = load [20 x i8], [20 x i8]* %"$_origin_7102", align 1 + %_sender = load [20 x i8], [20 x i8]* %"$_sender_7103", align 1 + %address = load [20 x i8], [20 x i8]* %"$address_7104", align 1 %currentAdmins = alloca %TName_List_ByStr20*, align 8 - %"$execptr_load_6989" = load i8*, i8** @_execptr, align 8 - %"$currentAdmins_call_6990" = call i8* @_fetch_field(i8* %"$execptr_load_6989", i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$admins_6988", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_ADT_List_ByStr20_466", i32 0, i8* null, i32 1), !dbg !658 - %"$currentAdmins_6991" = bitcast i8* %"$currentAdmins_call_6990" to %TName_List_ByStr20* - store %TName_List_ByStr20* %"$currentAdmins_6991", %TName_List_ByStr20** %currentAdmins, align 8 - %"$currentAdmins_6992" = load %TName_List_ByStr20*, %TName_List_ByStr20** %currentAdmins, align 8 - %"$$currentAdmins_6992_6993" = bitcast %TName_List_ByStr20* %"$currentAdmins_6992" to i8* - %"$_literal_cost_call_6994" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_List_ByStr20_466", i8* %"$$currentAdmins_6992_6993") - %"$gasadd_6995" = add i64 %"$_literal_cost_call_6994", 0 - %"$gasrem_6996" = load i64, i64* @_gasrem, align 8 - %"$gascmp_6997" = icmp ugt i64 %"$gasadd_6995", %"$gasrem_6996" - br i1 %"$gascmp_6997", label %"$out_of_gas_6998", label %"$have_gas_6999" - -"$out_of_gas_6998": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_6999" - -"$have_gas_6999": ; preds = %"$out_of_gas_6998", %entry - %"$consume_7000" = sub i64 %"$gasrem_6996", %"$gasadd_6995" - store i64 %"$consume_7000", i64* @_gasrem, align 8 - %"$gasrem_7001" = load i64, i64* @_gasrem, align 8 - %"$gascmp_7002" = icmp ugt i64 1, %"$gasrem_7001" - br i1 %"$gascmp_7002", label %"$out_of_gas_7003", label %"$have_gas_7004" - -"$out_of_gas_7003": ; preds = %"$have_gas_6999" - call void @_out_of_gas() - br label %"$have_gas_7004" - -"$have_gas_7004": ; preds = %"$out_of_gas_7003", %"$have_gas_6999" - %"$consume_7005" = sub i64 %"$gasrem_7001", 1 - store i64 %"$consume_7005", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_List_ByStr20** %currentAdmins, metadata !1265, metadata !DIExpression()), !dbg !1266 + %"$execptr_load_7106" = load i8*, i8** @_execptr, align 8 + %"$currentAdmins_call_7107" = call i8* @_fetch_field(i8* %"$execptr_load_7106", i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$admins_7105", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_ADT_List_ByStr20_466", i32 0, i8* null, i32 1), !dbg !1266 + %"$currentAdmins_7108" = bitcast i8* %"$currentAdmins_call_7107" to %TName_List_ByStr20* + store %TName_List_ByStr20* %"$currentAdmins_7108", %TName_List_ByStr20** %currentAdmins, align 8 + %"$currentAdmins_7109" = load %TName_List_ByStr20*, %TName_List_ByStr20** %currentAdmins, align 8 + %"$$currentAdmins_7109_7110" = bitcast %TName_List_ByStr20* %"$currentAdmins_7109" to i8* + %"$_literal_cost_call_7111" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_List_ByStr20_466", i8* %"$$currentAdmins_7109_7110") + %"$gasadd_7112" = add i64 %"$_literal_cost_call_7111", 0 + %"$gasrem_7113" = load i64, i64* @_gasrem, align 8 + %"$gascmp_7114" = icmp ugt i64 %"$gasadd_7112", %"$gasrem_7113" + br i1 %"$gascmp_7114", label %"$out_of_gas_7115", label %"$have_gas_7116" + +"$out_of_gas_7115": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_7116" + +"$have_gas_7116": ; preds = %"$out_of_gas_7115", %entry + %"$consume_7117" = sub i64 %"$gasrem_7113", %"$gasadd_7112" + store i64 %"$consume_7117", i64* @_gasrem, align 8 + %"$gasrem_7118" = load i64, i64* @_gasrem, align 8 + %"$gascmp_7119" = icmp ugt i64 1, %"$gasrem_7118" + br i1 %"$gascmp_7119", label %"$out_of_gas_7120", label %"$have_gas_7121" + +"$out_of_gas_7120": ; preds = %"$have_gas_7116" + call void @_out_of_gas() + br label %"$have_gas_7121" + +"$have_gas_7121": ; preds = %"$out_of_gas_7120", %"$have_gas_7116" + %"$consume_7122" = sub i64 %"$gasrem_7118", 1 + store i64 %"$consume_7122", i64* @_gasrem, align 8 %isOk = alloca %TName_Bool*, align 8 - %"$gasrem_7006" = load i64, i64* @_gasrem, align 8 - %"$gascmp_7007" = icmp ugt i64 1, %"$gasrem_7006" - br i1 %"$gascmp_7007", label %"$out_of_gas_7008", label %"$have_gas_7009" + call void @llvm.dbg.declare(metadata %TName_Bool** %isOk, metadata !1267, metadata !DIExpression()), !dbg !1268 + %"$gasrem_7123" = load i64, i64* @_gasrem, align 8 + %"$gascmp_7124" = icmp ugt i64 1, %"$gasrem_7123" + br i1 %"$gascmp_7124", label %"$out_of_gas_7125", label %"$have_gas_7126" -"$out_of_gas_7008": ; preds = %"$have_gas_7004" +"$out_of_gas_7125": ; preds = %"$have_gas_7121" call void @_out_of_gas() - br label %"$have_gas_7009" + br label %"$have_gas_7126" -"$have_gas_7009": ; preds = %"$out_of_gas_7008", %"$have_gas_7004" - %"$consume_7010" = sub i64 %"$gasrem_7006", 1 - store i64 %"$consume_7010", i64* @_gasrem, align 8 +"$have_gas_7126": ; preds = %"$out_of_gas_7125", %"$have_gas_7121" + %"$consume_7127" = sub i64 %"$gasrem_7123", 1 + store i64 %"$consume_7127", i64* @_gasrem, align 8 %"$ud-registry.listByStr20Contains_188" = alloca { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, align 8 - %"$ud-registry.listByStr20Contains_7011" = 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_7012" = extractvalue { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } %"$ud-registry.listByStr20Contains_7011", 0 - %"$ud-registry.listByStr20Contains_envptr_7013" = extractvalue { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } %"$ud-registry.listByStr20Contains_7011", 1 - %"$currentAdmins_7014" = load %TName_List_ByStr20*, %TName_List_ByStr20** %currentAdmins, align 8 - %"$ud-registry.listByStr20Contains_call_7015" = call { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$ud-registry.listByStr20Contains_fptr_7012"(i8* %"$ud-registry.listByStr20Contains_envptr_7013", %TName_List_ByStr20* %"$currentAdmins_7014"), !dbg !659 - store { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$ud-registry.listByStr20Contains_call_7015", { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %"$ud-registry.listByStr20Contains_188", align 8, !dbg !659 + %"$ud-registry.listByStr20Contains_7128" = 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_7129" = extractvalue { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } %"$ud-registry.listByStr20Contains_7128", 0 + %"$ud-registry.listByStr20Contains_envptr_7130" = extractvalue { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } %"$ud-registry.listByStr20Contains_7128", 1 + %"$currentAdmins_7131" = load %TName_List_ByStr20*, %TName_List_ByStr20** %currentAdmins, align 8 + %"$ud-registry.listByStr20Contains_call_7132" = call { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$ud-registry.listByStr20Contains_fptr_7129"(i8* %"$ud-registry.listByStr20Contains_envptr_7130", %TName_List_ByStr20* %"$currentAdmins_7131"), !dbg !1269 + store { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$ud-registry.listByStr20Contains_call_7132", { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %"$ud-registry.listByStr20Contains_188", align 8, !dbg !1269 %"$ud-registry.listByStr20Contains_189" = alloca %TName_Bool*, align 8 - %"$$ud-registry.listByStr20Contains_188_7016" = load { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %"$ud-registry.listByStr20Contains_188", align 8 - %"$$ud-registry.listByStr20Contains_188_fptr_7017" = extractvalue { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.listByStr20Contains_188_7016", 0 - %"$$ud-registry.listByStr20Contains_188_envptr_7018" = extractvalue { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.listByStr20Contains_188_7016", 1 - %"$$ud-registry.listByStr20Contains_188__sender_7019" = alloca [20 x i8], align 1 - store [20 x i8] %_sender, [20 x i8]* %"$$ud-registry.listByStr20Contains_188__sender_7019", align 1 - %"$$ud-registry.listByStr20Contains_188_call_7020" = call %TName_Bool* %"$$ud-registry.listByStr20Contains_188_fptr_7017"(i8* %"$$ud-registry.listByStr20Contains_188_envptr_7018", [20 x i8]* %"$$ud-registry.listByStr20Contains_188__sender_7019"), !dbg !659 - store %TName_Bool* %"$$ud-registry.listByStr20Contains_188_call_7020", %TName_Bool** %"$ud-registry.listByStr20Contains_189", align 8, !dbg !659 - %"$$ud-registry.listByStr20Contains_189_7021" = load %TName_Bool*, %TName_Bool** %"$ud-registry.listByStr20Contains_189", align 8 - store %TName_Bool* %"$$ud-registry.listByStr20Contains_189_7021", %TName_Bool** %isOk, align 8, !dbg !659 - %"$gasrem_7022" = load i64, i64* @_gasrem, align 8 - %"$gascmp_7023" = icmp ugt i64 2, %"$gasrem_7022" - br i1 %"$gascmp_7023", label %"$out_of_gas_7024", label %"$have_gas_7025" - -"$out_of_gas_7024": ; preds = %"$have_gas_7009" - call void @_out_of_gas() - br label %"$have_gas_7025" - -"$have_gas_7025": ; preds = %"$out_of_gas_7024", %"$have_gas_7009" - %"$consume_7026" = sub i64 %"$gasrem_7022", 2 - store i64 %"$consume_7026", i64* @_gasrem, align 8 - %"$isOk_7028" = load %TName_Bool*, %TName_Bool** %isOk, align 8 - %"$isOk_tag_7029" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$isOk_7028", i32 0, i32 0 - %"$isOk_tag_7030" = load i8, i8* %"$isOk_tag_7029", align 1 - switch i8 %"$isOk_tag_7030", label %"$default_7031" [ - i8 0, label %"$True_7032" - ], !dbg !660 - -"$True_7032": ; preds = %"$have_gas_7025" - %"$isOk_7033" = bitcast %TName_Bool* %"$isOk_7028" to %CName_True* - %"$gasrem_7034" = load i64, i64* @_gasrem, align 8 - %"$gascmp_7035" = icmp ugt i64 1, %"$gasrem_7034" - br i1 %"$gascmp_7035", label %"$out_of_gas_7036", label %"$have_gas_7037" - -"$out_of_gas_7036": ; preds = %"$True_7032" - call void @_out_of_gas() - br label %"$have_gas_7037" - -"$have_gas_7037": ; preds = %"$out_of_gas_7036", %"$True_7032" - %"$consume_7038" = sub i64 %"$gasrem_7034", 1 - store i64 %"$consume_7038", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$ud-registry.listByStr20Contains_189", metadata !1270, metadata !DIExpression()), !dbg !1269 + %"$$ud-registry.listByStr20Contains_188_7133" = load { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %"$ud-registry.listByStr20Contains_188", align 8 + %"$$ud-registry.listByStr20Contains_188_fptr_7134" = extractvalue { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.listByStr20Contains_188_7133", 0 + %"$$ud-registry.listByStr20Contains_188_envptr_7135" = extractvalue { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.listByStr20Contains_188_7133", 1 + %"$$ud-registry.listByStr20Contains_188__sender_7136" = alloca [20 x i8], align 1 + store [20 x i8] %_sender, [20 x i8]* %"$$ud-registry.listByStr20Contains_188__sender_7136", align 1 + %"$$ud-registry.listByStr20Contains_188_call_7137" = call %TName_Bool* %"$$ud-registry.listByStr20Contains_188_fptr_7134"(i8* %"$$ud-registry.listByStr20Contains_188_envptr_7135", [20 x i8]* %"$$ud-registry.listByStr20Contains_188__sender_7136"), !dbg !1269 + store %TName_Bool* %"$$ud-registry.listByStr20Contains_188_call_7137", %TName_Bool** %"$ud-registry.listByStr20Contains_189", align 8, !dbg !1269 + %"$$ud-registry.listByStr20Contains_189_7138" = load %TName_Bool*, %TName_Bool** %"$ud-registry.listByStr20Contains_189", align 8 + store %TName_Bool* %"$$ud-registry.listByStr20Contains_189_7138", %TName_Bool** %isOk, align 8, !dbg !1269 + %"$gasrem_7139" = load i64, i64* @_gasrem, align 8 + %"$gascmp_7140" = icmp ugt i64 2, %"$gasrem_7139" + br i1 %"$gascmp_7140", label %"$out_of_gas_7141", label %"$have_gas_7142" + +"$out_of_gas_7141": ; preds = %"$have_gas_7126" + call void @_out_of_gas() + br label %"$have_gas_7142" + +"$have_gas_7142": ; preds = %"$out_of_gas_7141", %"$have_gas_7126" + %"$consume_7143" = sub i64 %"$gasrem_7139", 2 + store i64 %"$consume_7143", i64* @_gasrem, align 8 + %"$isOk_7145" = load %TName_Bool*, %TName_Bool** %isOk, align 8 + %"$isOk_tag_7146" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$isOk_7145", i32 0, i32 0 + %"$isOk_tag_7147" = load i8, i8* %"$isOk_tag_7146", align 1 + switch i8 %"$isOk_tag_7147", label %"$default_7148" [ + i8 0, label %"$True_7149" + ], !dbg !1271 + +"$True_7149": ; preds = %"$have_gas_7142" + %"$isOk_7150" = bitcast %TName_Bool* %"$isOk_7145" to %CName_True* + %"$gasrem_7151" = load i64, i64* @_gasrem, align 8 + %"$gascmp_7152" = icmp ugt i64 1, %"$gasrem_7151" + br i1 %"$gascmp_7152", label %"$out_of_gas_7153", label %"$have_gas_7154" + +"$out_of_gas_7153": ; preds = %"$True_7149" + call void @_out_of_gas() + br label %"$have_gas_7154" + +"$have_gas_7154": ; preds = %"$out_of_gas_7153", %"$True_7149" + %"$consume_7155" = sub i64 %"$gasrem_7151", 1 + store i64 %"$consume_7155", i64* @_gasrem, align 8 %e = alloca i8*, align 8 - %"$gasrem_7039" = load i64, i64* @_gasrem, align 8 - %"$gascmp_7040" = icmp ugt i64 1, %"$gasrem_7039" - br i1 %"$gascmp_7040", label %"$out_of_gas_7041", label %"$have_gas_7042" + call void @llvm.dbg.declare(metadata i8** %e, metadata !1272, metadata !DIExpression()), !dbg !1275 + %"$gasrem_7156" = load i64, i64* @_gasrem, align 8 + %"$gascmp_7157" = icmp ugt i64 1, %"$gasrem_7156" + br i1 %"$gascmp_7157", label %"$out_of_gas_7158", label %"$have_gas_7159" -"$out_of_gas_7041": ; preds = %"$have_gas_7037" +"$out_of_gas_7158": ; preds = %"$have_gas_7154" call void @_out_of_gas() - br label %"$have_gas_7042" + br label %"$have_gas_7159" -"$have_gas_7042": ; preds = %"$out_of_gas_7041", %"$have_gas_7037" - %"$consume_7043" = sub i64 %"$gasrem_7039", 1 - store i64 %"$consume_7043", i64* @_gasrem, align 8 +"$have_gas_7159": ; preds = %"$out_of_gas_7158", %"$have_gas_7154" + %"$consume_7160" = sub i64 %"$gasrem_7156", 1 + store i64 %"$consume_7160", i64* @_gasrem, align 8 %"$ud-registry.eNewRegistrar_187" = alloca i8*, align 8 - %"$ud-registry.eNewRegistrar_7044" = load { i8* (i8*, [20 x i8]*)*, i8* }, { i8* (i8*, [20 x i8]*)*, i8* }* @ud-registry.eNewRegistrar, align 8 - %"$ud-registry.eNewRegistrar_fptr_7045" = extractvalue { i8* (i8*, [20 x i8]*)*, i8* } %"$ud-registry.eNewRegistrar_7044", 0 - %"$ud-registry.eNewRegistrar_envptr_7046" = extractvalue { i8* (i8*, [20 x i8]*)*, i8* } %"$ud-registry.eNewRegistrar_7044", 1 - %"$ud-registry.eNewRegistrar_address_7047" = alloca [20 x i8], align 1 - store [20 x i8] %address, [20 x i8]* %"$ud-registry.eNewRegistrar_address_7047", align 1 - %"$ud-registry.eNewRegistrar_call_7048" = call i8* %"$ud-registry.eNewRegistrar_fptr_7045"(i8* %"$ud-registry.eNewRegistrar_envptr_7046", [20 x i8]* %"$ud-registry.eNewRegistrar_address_7047"), !dbg !661 - store i8* %"$ud-registry.eNewRegistrar_call_7048", i8** %"$ud-registry.eNewRegistrar_187", align 8, !dbg !661 - %"$$ud-registry.eNewRegistrar_187_7049" = load i8*, i8** %"$ud-registry.eNewRegistrar_187", align 8 - store i8* %"$$ud-registry.eNewRegistrar_187_7049", i8** %e, align 8, !dbg !661 - %"$e_7050" = load i8*, i8** %e, align 8 - %"$_literal_cost_call_7052" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Event_446", i8* %"$e_7050") - %"$gasrem_7053" = load i64, i64* @_gasrem, align 8 - %"$gascmp_7054" = icmp ugt i64 %"$_literal_cost_call_7052", %"$gasrem_7053" - br i1 %"$gascmp_7054", label %"$out_of_gas_7055", label %"$have_gas_7056" - -"$out_of_gas_7055": ; preds = %"$have_gas_7042" - call void @_out_of_gas() - br label %"$have_gas_7056" - -"$have_gas_7056": ; preds = %"$out_of_gas_7055", %"$have_gas_7042" - %"$consume_7057" = sub i64 %"$gasrem_7053", %"$_literal_cost_call_7052" - store i64 %"$consume_7057", i64* @_gasrem, align 8 - %"$execptr_load_7058" = load i8*, i8** @_execptr, align 8 - %"$e_7059" = load i8*, i8** %e, align 8 - call void @_event(i8* %"$execptr_load_7058", %_TyDescrTy_Typ* @"$TyDescr_Event_446", i8* %"$e_7059"), !dbg !664 - %"$_literal_cost_address_7060" = alloca [20 x i8], align 1 - store [20 x i8] %address, [20 x i8]* %"$_literal_cost_address_7060", align 1 - %"$$_literal_cost_address_7060_7061" = bitcast [20 x i8]* %"$_literal_cost_address_7060" to i8* - %"$_literal_cost_call_7062" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Bystr20_458", i8* %"$$_literal_cost_address_7060_7061") - %"$gasrem_7063" = load i64, i64* @_gasrem, align 8 - %"$gascmp_7064" = icmp ugt i64 %"$_literal_cost_call_7062", %"$gasrem_7063" - br i1 %"$gascmp_7064", label %"$out_of_gas_7065", label %"$have_gas_7066" - -"$out_of_gas_7065": ; preds = %"$have_gas_7056" - call void @_out_of_gas() - br label %"$have_gas_7066" - -"$have_gas_7066": ; preds = %"$out_of_gas_7065", %"$have_gas_7056" - %"$consume_7067" = sub i64 %"$gasrem_7063", %"$_literal_cost_call_7062" - store i64 %"$consume_7067", i64* @_gasrem, align 8 - %"$execptr_load_7068" = load i8*, i8** @_execptr, align 8 - %"$update_value_7070" = alloca [20 x i8], align 1 - store [20 x i8] %address, [20 x i8]* %"$update_value_7070", align 1 - %"$update_value_7071" = bitcast [20 x i8]* %"$update_value_7070" to i8* - call void @_update_field(i8* %"$execptr_load_7068", i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$registrar_7069", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Bystr20_458", i32 0, i8* null, i8* %"$update_value_7071"), !dbg !665 - br label %"$matchsucc_7027" - -"$default_7031": ; preds = %"$have_gas_7025" + call void @llvm.dbg.declare(metadata i8** %"$ud-registry.eNewRegistrar_187", metadata !1276, metadata !DIExpression()), !dbg !1277 + %"$ud-registry.eNewRegistrar_7161" = load { i8* (i8*, [20 x i8]*)*, i8* }, { i8* (i8*, [20 x i8]*)*, i8* }* @ud-registry.eNewRegistrar, align 8 + %"$ud-registry.eNewRegistrar_fptr_7162" = extractvalue { i8* (i8*, [20 x i8]*)*, i8* } %"$ud-registry.eNewRegistrar_7161", 0 + %"$ud-registry.eNewRegistrar_envptr_7163" = extractvalue { i8* (i8*, [20 x i8]*)*, i8* } %"$ud-registry.eNewRegistrar_7161", 1 + %"$ud-registry.eNewRegistrar_address_7164" = alloca [20 x i8], align 1 + store [20 x i8] %address, [20 x i8]* %"$ud-registry.eNewRegistrar_address_7164", align 1 + %"$ud-registry.eNewRegistrar_call_7165" = call i8* %"$ud-registry.eNewRegistrar_fptr_7162"(i8* %"$ud-registry.eNewRegistrar_envptr_7163", [20 x i8]* %"$ud-registry.eNewRegistrar_address_7164"), !dbg !1277 + store i8* %"$ud-registry.eNewRegistrar_call_7165", i8** %"$ud-registry.eNewRegistrar_187", align 8, !dbg !1277 + %"$$ud-registry.eNewRegistrar_187_7166" = load i8*, i8** %"$ud-registry.eNewRegistrar_187", align 8 + store i8* %"$$ud-registry.eNewRegistrar_187_7166", i8** %e, align 8, !dbg !1277 + %"$e_7167" = load i8*, i8** %e, align 8 + %"$_literal_cost_call_7169" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Event_446", i8* %"$e_7167") + %"$gasrem_7170" = load i64, i64* @_gasrem, align 8 + %"$gascmp_7171" = icmp ugt i64 %"$_literal_cost_call_7169", %"$gasrem_7170" + br i1 %"$gascmp_7171", label %"$out_of_gas_7172", label %"$have_gas_7173" + +"$out_of_gas_7172": ; preds = %"$have_gas_7159" + call void @_out_of_gas() + br label %"$have_gas_7173" + +"$have_gas_7173": ; preds = %"$out_of_gas_7172", %"$have_gas_7159" + %"$consume_7174" = sub i64 %"$gasrem_7170", %"$_literal_cost_call_7169" + store i64 %"$consume_7174", i64* @_gasrem, align 8 + %"$execptr_load_7175" = load i8*, i8** @_execptr, align 8 + %"$e_7176" = load i8*, i8** %e, align 8 + call void @_event(i8* %"$execptr_load_7175", %_TyDescrTy_Typ* @"$TyDescr_Event_446", i8* %"$e_7176"), !dbg !1278 + %"$_literal_cost_address_7177" = alloca [20 x i8], align 1 + store [20 x i8] %address, [20 x i8]* %"$_literal_cost_address_7177", align 1 + %"$$_literal_cost_address_7177_7178" = bitcast [20 x i8]* %"$_literal_cost_address_7177" to i8* + %"$_literal_cost_call_7179" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Bystr20_458", i8* %"$$_literal_cost_address_7177_7178") + %"$gasrem_7180" = load i64, i64* @_gasrem, align 8 + %"$gascmp_7181" = icmp ugt i64 %"$_literal_cost_call_7179", %"$gasrem_7180" + br i1 %"$gascmp_7181", label %"$out_of_gas_7182", label %"$have_gas_7183" + +"$out_of_gas_7182": ; preds = %"$have_gas_7173" + call void @_out_of_gas() + br label %"$have_gas_7183" + +"$have_gas_7183": ; preds = %"$out_of_gas_7182", %"$have_gas_7173" + %"$consume_7184" = sub i64 %"$gasrem_7180", %"$_literal_cost_call_7179" + store i64 %"$consume_7184", i64* @_gasrem, align 8 + %"$execptr_load_7185" = load i8*, i8** @_execptr, align 8 + %"$update_value_7187" = alloca [20 x i8], align 1 + store [20 x i8] %address, [20 x i8]* %"$update_value_7187", align 1 + %"$update_value_7188" = bitcast [20 x i8]* %"$update_value_7187" to i8* + call void @_update_field(i8* %"$execptr_load_7185", i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$registrar_7186", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Bystr20_458", i32 0, i8* null, i8* %"$update_value_7188"), !dbg !1279 + br label %"$matchsucc_7144" + +"$default_7148": ; preds = %"$have_gas_7142" br label %"$joinp_30" -"$joinp_30": ; preds = %"$default_7031" - br label %"$matchsucc_7027" +"$joinp_30": ; preds = %"$default_7148" + br label %"$matchsucc_7144" -"$matchsucc_7027": ; preds = %"$have_gas_7066", %"$joinp_30" +"$matchsucc_7144": ; preds = %"$have_gas_7183", %"$joinp_30" ret void } -define void @setRegistrar(i8* %0) !dbg !666 { +define void @setRegistrar(i8* %0) !dbg !1280 { entry: - %"$_amount_7073" = getelementptr i8, i8* %0, i32 0 - %"$_amount_7074" = bitcast i8* %"$_amount_7073" to %Uint128* - %_amount = load %Uint128, %Uint128* %"$_amount_7074", align 8 - %"$_origin_7075" = getelementptr i8, i8* %0, i32 16 - %"$_origin_7076" = bitcast i8* %"$_origin_7075" to [20 x i8]* - %"$_sender_7077" = getelementptr i8, i8* %0, i32 36 - %"$_sender_7078" = bitcast i8* %"$_sender_7077" to [20 x i8]* - %"$address_7079" = getelementptr i8, i8* %0, i32 56 - %"$address_7080" = bitcast i8* %"$address_7079" to [20 x i8]* - call void @"$setRegistrar_6984"(%Uint128 %_amount, [20 x i8]* %"$_origin_7076", [20 x i8]* %"$_sender_7078", [20 x i8]* %"$address_7080"), !dbg !667 + %"$_amount_7194" = getelementptr i8, i8* %0, i32 0 + %"$_amount_7195" = bitcast i8* %"$_amount_7194" to %Uint128* + %_amount = load %Uint128, %Uint128* %"$_amount_7195", align 8 + %"$_origin_7196" = getelementptr i8, i8* %0, i32 16 + %"$_origin_7197" = bitcast i8* %"$_origin_7196" to [20 x i8]* + %"$_sender_7198" = getelementptr i8, i8* %0, i32 36 + %"$_sender_7199" = bitcast i8* %"$_sender_7198" to [20 x i8]* + %"$address_7200" = getelementptr i8, i8* %0, i32 56 + %"$address_7201" = bitcast i8* %"$address_7200" to [20 x i8]* + call void @"$setRegistrar_7101"(%Uint128 %_amount, [20 x i8]* %"$_origin_7197", [20 x i8]* %"$_sender_7199", [20 x i8]* %"$address_7201"), !dbg !1281 ret void } -define internal void @"$register_7081"(%Uint128 %_amount, [20 x i8]* %"$_origin_7082", [20 x i8]* %"$_sender_7083", [32 x i8]* %"$parent_7084", %String %label) !dbg !668 { -entry: - %_origin = load [20 x i8], [20 x i8]* %"$_origin_7082", align 1 - %_sender = load [20 x i8], [20 x i8]* %"$_sender_7083", align 1 - %parent = load [32 x i8], [32 x i8]* %"$parent_7084", align 1 - %"$gasrem_7085" = load i64, i64* @_gasrem, align 8 - %"$gascmp_7086" = icmp ugt i64 1, %"$gasrem_7085" - br i1 %"$gascmp_7086", label %"$out_of_gas_7087", label %"$have_gas_7088" - -"$out_of_gas_7087": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_7088" - -"$have_gas_7088": ; preds = %"$out_of_gas_7087", %entry - %"$consume_7089" = sub i64 %"$gasrem_7085", 1 - store i64 %"$consume_7089", i64* @_gasrem, align 8 +define internal void @"$register_7202"(%Uint128 %_amount, [20 x i8]* %"$_origin_7203", [20 x i8]* %"$_sender_7204", [32 x i8]* %"$parent_7205", %String %label) !dbg !1282 { +entry: + %"$label_7499" = alloca %String, align 8 + store %String %label, %String* %"$label_7499", align 8 + call void @llvm.dbg.declare(metadata %String* %"$label_7499", metadata !1283, metadata !DIExpression()), !dbg !1284 + %"$parent_7498" = alloca [32 x i8]*, align 8 + store [32 x i8]* %"$parent_7205", [32 x i8]** %"$parent_7498", align 8 + call void @llvm.dbg.declare(metadata [32 x i8]** %"$parent_7498", metadata !1285, metadata !DIExpression()), !dbg !1286 + %"$_sender_7497" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_sender_7204", [20 x i8]** %"$_sender_7497", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_sender_7497", metadata !1287, metadata !DIExpression()), !dbg !1288 + %"$_origin_7496" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_origin_7203", [20 x i8]** %"$_origin_7496", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_origin_7496", metadata !1289, metadata !DIExpression()), !dbg !1288 + %"$_amount_7495" = alloca %Uint128, align 8 + store %Uint128 %_amount, %Uint128* %"$_amount_7495", align 8 + call void @llvm.dbg.declare(metadata %Uint128* %"$_amount_7495", metadata !1290, metadata !DIExpression()), !dbg !1288 + %_origin = load [20 x i8], [20 x i8]* %"$_origin_7203", align 1 + %_sender = load [20 x i8], [20 x i8]* %"$_sender_7204", align 1 + %parent = load [32 x i8], [32 x i8]* %"$parent_7205", align 1 + %"$gasrem_7206" = load i64, i64* @_gasrem, align 8 + %"$gascmp_7207" = icmp ugt i64 1, %"$gasrem_7206" + br i1 %"$gascmp_7207", label %"$out_of_gas_7208", label %"$have_gas_7209" + +"$out_of_gas_7208": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_7209" + +"$have_gas_7209": ; preds = %"$out_of_gas_7208", %entry + %"$consume_7210" = sub i64 %"$gasrem_7206", 1 + store i64 %"$consume_7210", i64* @_gasrem, align 8 %node = alloca [32 x i8], align 1 - %"$gasrem_7090" = load i64, i64* @_gasrem, align 8 - %"$gascmp_7091" = icmp ugt i64 1, %"$gasrem_7090" - br i1 %"$gascmp_7091", label %"$out_of_gas_7092", label %"$have_gas_7093" + call void @llvm.dbg.declare(metadata [32 x i8]* %node, metadata !1291, metadata !DIExpression()), !dbg !1292 + %"$gasrem_7211" = load i64, i64* @_gasrem, align 8 + %"$gascmp_7212" = icmp ugt i64 1, %"$gasrem_7211" + br i1 %"$gascmp_7212", label %"$out_of_gas_7213", label %"$have_gas_7214" -"$out_of_gas_7092": ; preds = %"$have_gas_7088" +"$out_of_gas_7213": ; preds = %"$have_gas_7209" call void @_out_of_gas() - br label %"$have_gas_7093" + br label %"$have_gas_7214" -"$have_gas_7093": ; preds = %"$out_of_gas_7092", %"$have_gas_7088" - %"$consume_7094" = sub i64 %"$gasrem_7090", 1 - store i64 %"$consume_7094", i64* @_gasrem, align 8 +"$have_gas_7214": ; preds = %"$out_of_gas_7213", %"$have_gas_7209" + %"$consume_7215" = sub i64 %"$gasrem_7211", 1 + store i64 %"$consume_7215", i64* @_gasrem, align 8 %"$ud-registry.parentLabelToNode_194" = alloca { void (i8*, [32 x i8]*, %String)*, i8* }, align 8 - %"$ud-registry.parentLabelToNode_7095" = 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_7096" = extractvalue { { void (i8*, [32 x i8]*, %String)*, i8* } (i8*, [32 x i8]*)*, i8* } %"$ud-registry.parentLabelToNode_7095", 0 - %"$ud-registry.parentLabelToNode_envptr_7097" = extractvalue { { void (i8*, [32 x i8]*, %String)*, i8* } (i8*, [32 x i8]*)*, i8* } %"$ud-registry.parentLabelToNode_7095", 1 - %"$ud-registry.parentLabelToNode_parent_7098" = alloca [32 x i8], align 1 - store [32 x i8] %parent, [32 x i8]* %"$ud-registry.parentLabelToNode_parent_7098", align 1 - %"$ud-registry.parentLabelToNode_call_7099" = call { void (i8*, [32 x i8]*, %String)*, i8* } %"$ud-registry.parentLabelToNode_fptr_7096"(i8* %"$ud-registry.parentLabelToNode_envptr_7097", [32 x i8]* %"$ud-registry.parentLabelToNode_parent_7098"), !dbg !669 - store { void (i8*, [32 x i8]*, %String)*, i8* } %"$ud-registry.parentLabelToNode_call_7099", { void (i8*, [32 x i8]*, %String)*, i8* }* %"$ud-registry.parentLabelToNode_194", align 8, !dbg !669 + %"$ud-registry.parentLabelToNode_7216" = 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_7217" = extractvalue { { void (i8*, [32 x i8]*, %String)*, i8* } (i8*, [32 x i8]*)*, i8* } %"$ud-registry.parentLabelToNode_7216", 0 + %"$ud-registry.parentLabelToNode_envptr_7218" = extractvalue { { void (i8*, [32 x i8]*, %String)*, i8* } (i8*, [32 x i8]*)*, i8* } %"$ud-registry.parentLabelToNode_7216", 1 + %"$ud-registry.parentLabelToNode_parent_7219" = alloca [32 x i8], align 1 + store [32 x i8] %parent, [32 x i8]* %"$ud-registry.parentLabelToNode_parent_7219", align 1 + %"$ud-registry.parentLabelToNode_call_7220" = call { void (i8*, [32 x i8]*, %String)*, i8* } %"$ud-registry.parentLabelToNode_fptr_7217"(i8* %"$ud-registry.parentLabelToNode_envptr_7218", [32 x i8]* %"$ud-registry.parentLabelToNode_parent_7219"), !dbg !1293 + store { void (i8*, [32 x i8]*, %String)*, i8* } %"$ud-registry.parentLabelToNode_call_7220", { void (i8*, [32 x i8]*, %String)*, i8* }* %"$ud-registry.parentLabelToNode_194", align 8, !dbg !1293 %"$ud-registry.parentLabelToNode_195" = alloca [32 x i8], align 1 - %"$$ud-registry.parentLabelToNode_194_7100" = load { void (i8*, [32 x i8]*, %String)*, i8* }, { void (i8*, [32 x i8]*, %String)*, i8* }* %"$ud-registry.parentLabelToNode_194", align 8 - %"$$ud-registry.parentLabelToNode_194_fptr_7101" = extractvalue { void (i8*, [32 x i8]*, %String)*, i8* } %"$$ud-registry.parentLabelToNode_194_7100", 0 - %"$$ud-registry.parentLabelToNode_194_envptr_7102" = extractvalue { void (i8*, [32 x i8]*, %String)*, i8* } %"$$ud-registry.parentLabelToNode_194_7100", 1 - %"$$ud-registry.parentLabelToNode_194_retalloca_7103" = alloca [32 x i8], align 1 - call void %"$$ud-registry.parentLabelToNode_194_fptr_7101"(i8* %"$$ud-registry.parentLabelToNode_194_envptr_7102", [32 x i8]* %"$$ud-registry.parentLabelToNode_194_retalloca_7103", %String %label), !dbg !669 - %"$$ud-registry.parentLabelToNode_194_ret_7104" = load [32 x i8], [32 x i8]* %"$$ud-registry.parentLabelToNode_194_retalloca_7103", align 1 - store [32 x i8] %"$$ud-registry.parentLabelToNode_194_ret_7104", [32 x i8]* %"$ud-registry.parentLabelToNode_195", align 1, !dbg !669 - %"$$ud-registry.parentLabelToNode_195_7105" = load [32 x i8], [32 x i8]* %"$ud-registry.parentLabelToNode_195", align 1 - store [32 x i8] %"$$ud-registry.parentLabelToNode_195_7105", [32 x i8]* %node, align 1, !dbg !669 + call void @llvm.dbg.declare(metadata [32 x i8]* %"$ud-registry.parentLabelToNode_195", metadata !1294, metadata !DIExpression()), !dbg !1293 + %"$$ud-registry.parentLabelToNode_194_7221" = load { void (i8*, [32 x i8]*, %String)*, i8* }, { void (i8*, [32 x i8]*, %String)*, i8* }* %"$ud-registry.parentLabelToNode_194", align 8 + %"$$ud-registry.parentLabelToNode_194_fptr_7222" = extractvalue { void (i8*, [32 x i8]*, %String)*, i8* } %"$$ud-registry.parentLabelToNode_194_7221", 0 + %"$$ud-registry.parentLabelToNode_194_envptr_7223" = extractvalue { void (i8*, [32 x i8]*, %String)*, i8* } %"$$ud-registry.parentLabelToNode_194_7221", 1 + %"$$ud-registry.parentLabelToNode_194_retalloca_7224" = alloca [32 x i8], align 1 + call void %"$$ud-registry.parentLabelToNode_194_fptr_7222"(i8* %"$$ud-registry.parentLabelToNode_194_envptr_7223", [32 x i8]* %"$$ud-registry.parentLabelToNode_194_retalloca_7224", %String %label), !dbg !1293 + %"$$ud-registry.parentLabelToNode_194_ret_7225" = load [32 x i8], [32 x i8]* %"$$ud-registry.parentLabelToNode_194_retalloca_7224", align 1 + store [32 x i8] %"$$ud-registry.parentLabelToNode_194_ret_7225", [32 x i8]* %"$ud-registry.parentLabelToNode_195", align 1, !dbg !1293 + %"$$ud-registry.parentLabelToNode_195_7226" = load [32 x i8], [32 x i8]* %"$ud-registry.parentLabelToNode_195", align 1 + store [32 x i8] %"$$ud-registry.parentLabelToNode_195_7226", [32 x i8]* %node, align 1, !dbg !1293 %maybeRecord = alloca %TName_Option_ud-registry.Record*, align 8 - %"$indices_buf_7106_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$indices_buf_7106_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_7106_salloc_load", i64 32) - %"$indices_buf_7106_salloc" = bitcast i8* %"$indices_buf_7106_salloc_salloc" to [32 x i8]* - %"$indices_buf_7106" = bitcast [32 x i8]* %"$indices_buf_7106_salloc" to i8* - %"$node_7107" = load [32 x i8], [32 x i8]* %node, align 1 - %"$indices_gep_7108" = getelementptr i8, i8* %"$indices_buf_7106", i32 0 - %indices_cast = bitcast i8* %"$indices_gep_7108" to [32 x i8]* - store [32 x i8] %"$node_7107", [32 x i8]* %indices_cast, align 1 - %"$execptr_load_7110" = load i8*, i8** @_execptr, align 8 - %"$maybeRecord_call_7111" = call i8* @_fetch_field(i8* %"$execptr_load_7110", i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$records_7109", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_472", i32 1, i8* %"$indices_buf_7106", i32 1), !dbg !670 - %"$maybeRecord_7112" = bitcast i8* %"$maybeRecord_call_7111" to %TName_Option_ud-registry.Record* - store %TName_Option_ud-registry.Record* %"$maybeRecord_7112", %TName_Option_ud-registry.Record** %maybeRecord, align 8 - %"$maybeRecord_7113" = load %TName_Option_ud-registry.Record*, %TName_Option_ud-registry.Record** %maybeRecord, align 8 - %"$$maybeRecord_7113_7114" = bitcast %TName_Option_ud-registry.Record* %"$maybeRecord_7113" to i8* - %"$_literal_cost_call_7115" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_ud-registry.Record_463", i8* %"$$maybeRecord_7113_7114") - %"$gasadd_7116" = add i64 %"$_literal_cost_call_7115", 0 - %"$gasadd_7117" = add i64 %"$gasadd_7116", 1 - %"$gasrem_7118" = load i64, i64* @_gasrem, align 8 - %"$gascmp_7119" = icmp ugt i64 %"$gasadd_7117", %"$gasrem_7118" - br i1 %"$gascmp_7119", label %"$out_of_gas_7120", label %"$have_gas_7121" - -"$out_of_gas_7120": ; preds = %"$have_gas_7093" - call void @_out_of_gas() - br label %"$have_gas_7121" - -"$have_gas_7121": ; preds = %"$out_of_gas_7120", %"$have_gas_7093" - %"$consume_7122" = sub i64 %"$gasrem_7118", %"$gasadd_7117" - store i64 %"$consume_7122", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Option_ud-registry.Record** %maybeRecord, metadata !1295, metadata !DIExpression()), !dbg !1296 + %"$indices_buf_7227_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$indices_buf_7227_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_7227_salloc_load", i64 32) + %"$indices_buf_7227_salloc" = bitcast i8* %"$indices_buf_7227_salloc_salloc" to [32 x i8]* + %"$indices_buf_7227" = bitcast [32 x i8]* %"$indices_buf_7227_salloc" to i8* + %"$node_7228" = load [32 x i8], [32 x i8]* %node, align 1 + %"$indices_gep_7229" = getelementptr i8, i8* %"$indices_buf_7227", i32 0 + %indices_cast = bitcast i8* %"$indices_gep_7229" to [32 x i8]* + store [32 x i8] %"$node_7228", [32 x i8]* %indices_cast, align 1 + %"$execptr_load_7231" = load i8*, i8** @_execptr, align 8 + %"$maybeRecord_call_7232" = call i8* @_fetch_field(i8* %"$execptr_load_7231", i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$records_7230", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_472", i32 1, i8* %"$indices_buf_7227", i32 1), !dbg !1296 + %"$maybeRecord_7233" = bitcast i8* %"$maybeRecord_call_7232" to %TName_Option_ud-registry.Record* + store %TName_Option_ud-registry.Record* %"$maybeRecord_7233", %TName_Option_ud-registry.Record** %maybeRecord, align 8 + %"$maybeRecord_7234" = load %TName_Option_ud-registry.Record*, %TName_Option_ud-registry.Record** %maybeRecord, align 8 + %"$$maybeRecord_7234_7235" = bitcast %TName_Option_ud-registry.Record* %"$maybeRecord_7234" to i8* + %"$_literal_cost_call_7236" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_ud-registry.Record_463", i8* %"$$maybeRecord_7234_7235") + %"$gasadd_7237" = add i64 %"$_literal_cost_call_7236", 0 + %"$gasadd_7238" = add i64 %"$gasadd_7237", 1 + %"$gasrem_7239" = load i64, i64* @_gasrem, align 8 + %"$gascmp_7240" = icmp ugt i64 %"$gasadd_7238", %"$gasrem_7239" + br i1 %"$gascmp_7240", label %"$out_of_gas_7241", label %"$have_gas_7242" + +"$out_of_gas_7241": ; preds = %"$have_gas_7214" + call void @_out_of_gas() + br label %"$have_gas_7242" + +"$have_gas_7242": ; preds = %"$out_of_gas_7241", %"$have_gas_7214" + %"$consume_7243" = sub i64 %"$gasrem_7239", %"$gasadd_7238" + store i64 %"$consume_7243", i64* @_gasrem, align 8 %maybeApproved = alloca %TName_Option_ByStr20*, align 8 - %"$indices_buf_7123_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$indices_buf_7123_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_7123_salloc_load", i64 32) - %"$indices_buf_7123_salloc" = bitcast i8* %"$indices_buf_7123_salloc_salloc" to [32 x i8]* - %"$indices_buf_7123" = bitcast [32 x i8]* %"$indices_buf_7123_salloc" to i8* - %"$node_7124" = load [32 x i8], [32 x i8]* %node, align 1 - %"$indices_gep_7125" = getelementptr i8, i8* %"$indices_buf_7123", i32 0 - %indices_cast1 = bitcast i8* %"$indices_gep_7125" to [32 x i8]* - store [32 x i8] %"$node_7124", [32 x i8]* %indices_cast1, align 1 - %"$execptr_load_7127" = load i8*, i8** @_execptr, align 8 - %"$maybeApproved_call_7128" = call i8* @_fetch_field(i8* %"$execptr_load_7127", i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$approvals_7126", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_471", i32 1, i8* %"$indices_buf_7123", i32 1), !dbg !671 - %"$maybeApproved_7129" = bitcast i8* %"$maybeApproved_call_7128" to %TName_Option_ByStr20* - store %TName_Option_ByStr20* %"$maybeApproved_7129", %TName_Option_ByStr20** %maybeApproved, align 8 - %"$maybeApproved_7130" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %maybeApproved, align 8 - %"$$maybeApproved_7130_7131" = bitcast %TName_Option_ByStr20* %"$maybeApproved_7130" to i8* - %"$_literal_cost_call_7132" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_ByStr20_464", i8* %"$$maybeApproved_7130_7131") - %"$gasadd_7133" = add i64 %"$_literal_cost_call_7132", 0 - %"$gasadd_7134" = add i64 %"$gasadd_7133", 1 - %"$gasrem_7135" = load i64, i64* @_gasrem, align 8 - %"$gascmp_7136" = icmp ugt i64 %"$gasadd_7134", %"$gasrem_7135" - br i1 %"$gascmp_7136", label %"$out_of_gas_7137", label %"$have_gas_7138" - -"$out_of_gas_7137": ; preds = %"$have_gas_7121" - call void @_out_of_gas() - br label %"$have_gas_7138" - -"$have_gas_7138": ; preds = %"$out_of_gas_7137", %"$have_gas_7121" - %"$consume_7139" = sub i64 %"$gasrem_7135", %"$gasadd_7134" - store i64 %"$consume_7139", i64* @_gasrem, align 8 - %"$gasrem_7140" = load i64, i64* @_gasrem, align 8 - %"$gascmp_7141" = icmp ugt i64 1, %"$gasrem_7140" - br i1 %"$gascmp_7141", label %"$out_of_gas_7142", label %"$have_gas_7143" - -"$out_of_gas_7142": ; preds = %"$have_gas_7138" - call void @_out_of_gas() - br label %"$have_gas_7143" - -"$have_gas_7143": ; preds = %"$out_of_gas_7142", %"$have_gas_7138" - %"$consume_7144" = sub i64 %"$gasrem_7140", 1 - store i64 %"$consume_7144", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Option_ByStr20** %maybeApproved, metadata !1297, metadata !DIExpression()), !dbg !1298 + %"$indices_buf_7244_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$indices_buf_7244_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_7244_salloc_load", i64 32) + %"$indices_buf_7244_salloc" = bitcast i8* %"$indices_buf_7244_salloc_salloc" to [32 x i8]* + %"$indices_buf_7244" = bitcast [32 x i8]* %"$indices_buf_7244_salloc" to i8* + %"$node_7245" = load [32 x i8], [32 x i8]* %node, align 1 + %"$indices_gep_7246" = getelementptr i8, i8* %"$indices_buf_7244", i32 0 + %indices_cast1 = bitcast i8* %"$indices_gep_7246" to [32 x i8]* + store [32 x i8] %"$node_7245", [32 x i8]* %indices_cast1, align 1 + %"$execptr_load_7248" = load i8*, i8** @_execptr, align 8 + %"$maybeApproved_call_7249" = call i8* @_fetch_field(i8* %"$execptr_load_7248", i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$approvals_7247", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_471", i32 1, i8* %"$indices_buf_7244", i32 1), !dbg !1298 + %"$maybeApproved_7250" = bitcast i8* %"$maybeApproved_call_7249" to %TName_Option_ByStr20* + store %TName_Option_ByStr20* %"$maybeApproved_7250", %TName_Option_ByStr20** %maybeApproved, align 8 + %"$maybeApproved_7251" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %maybeApproved, align 8 + %"$$maybeApproved_7251_7252" = bitcast %TName_Option_ByStr20* %"$maybeApproved_7251" to i8* + %"$_literal_cost_call_7253" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_ByStr20_464", i8* %"$$maybeApproved_7251_7252") + %"$gasadd_7254" = add i64 %"$_literal_cost_call_7253", 0 + %"$gasadd_7255" = add i64 %"$gasadd_7254", 1 + %"$gasrem_7256" = load i64, i64* @_gasrem, align 8 + %"$gascmp_7257" = icmp ugt i64 %"$gasadd_7255", %"$gasrem_7256" + br i1 %"$gascmp_7257", label %"$out_of_gas_7258", label %"$have_gas_7259" + +"$out_of_gas_7258": ; preds = %"$have_gas_7242" + call void @_out_of_gas() + br label %"$have_gas_7259" + +"$have_gas_7259": ; preds = %"$out_of_gas_7258", %"$have_gas_7242" + %"$consume_7260" = sub i64 %"$gasrem_7256", %"$gasadd_7255" + store i64 %"$consume_7260", i64* @_gasrem, align 8 + %"$gasrem_7261" = load i64, i64* @_gasrem, align 8 + %"$gascmp_7262" = icmp ugt i64 1, %"$gasrem_7261" + br i1 %"$gascmp_7262", label %"$out_of_gas_7263", label %"$have_gas_7264" + +"$out_of_gas_7263": ; preds = %"$have_gas_7259" + call void @_out_of_gas() + br label %"$have_gas_7264" + +"$have_gas_7264": ; preds = %"$out_of_gas_7263", %"$have_gas_7259" + %"$consume_7265" = sub i64 %"$gasrem_7261", 1 + store i64 %"$consume_7265", i64* @_gasrem, align 8 %recordOwner = alloca [20 x i8], align 1 - %"$gasrem_7145" = load i64, i64* @_gasrem, align 8 - %"$gascmp_7146" = icmp ugt i64 1, %"$gasrem_7145" - br i1 %"$gascmp_7146", label %"$out_of_gas_7147", label %"$have_gas_7148" + call void @llvm.dbg.declare(metadata [20 x i8]* %recordOwner, metadata !1299, metadata !DIExpression()), !dbg !1300 + %"$gasrem_7266" = load i64, i64* @_gasrem, align 8 + %"$gascmp_7267" = icmp ugt i64 1, %"$gasrem_7266" + br i1 %"$gascmp_7267", label %"$out_of_gas_7268", label %"$have_gas_7269" -"$out_of_gas_7147": ; preds = %"$have_gas_7143" +"$out_of_gas_7268": ; preds = %"$have_gas_7264" call void @_out_of_gas() - br label %"$have_gas_7148" + br label %"$have_gas_7269" -"$have_gas_7148": ; preds = %"$out_of_gas_7147", %"$have_gas_7143" - %"$consume_7149" = sub i64 %"$gasrem_7145", 1 - store i64 %"$consume_7149", i64* @_gasrem, align 8 +"$have_gas_7269": ; preds = %"$out_of_gas_7268", %"$have_gas_7264" + %"$consume_7270" = sub i64 %"$gasrem_7266", 1 + store i64 %"$consume_7270", i64* @_gasrem, align 8 %"$ud-registry.recordMemberOwner_193" = alloca [20 x i8], align 1 - %"$ud-registry.recordMemberOwner_7150" = 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_7151" = extractvalue { void (i8*, [20 x i8]*, %TName_Option_ud-registry.Record*)*, i8* } %"$ud-registry.recordMemberOwner_7150", 0 - %"$ud-registry.recordMemberOwner_envptr_7152" = extractvalue { void (i8*, [20 x i8]*, %TName_Option_ud-registry.Record*)*, i8* } %"$ud-registry.recordMemberOwner_7150", 1 - %"$maybeRecord_7153" = load %TName_Option_ud-registry.Record*, %TName_Option_ud-registry.Record** %maybeRecord, align 8 - %"$ud-registry.recordMemberOwner_retalloca_7154" = alloca [20 x i8], align 1 - call void %"$ud-registry.recordMemberOwner_fptr_7151"(i8* %"$ud-registry.recordMemberOwner_envptr_7152", [20 x i8]* %"$ud-registry.recordMemberOwner_retalloca_7154", %TName_Option_ud-registry.Record* %"$maybeRecord_7153"), !dbg !672 - %"$ud-registry.recordMemberOwner_ret_7155" = load [20 x i8], [20 x i8]* %"$ud-registry.recordMemberOwner_retalloca_7154", align 1 - store [20 x i8] %"$ud-registry.recordMemberOwner_ret_7155", [20 x i8]* %"$ud-registry.recordMemberOwner_193", align 1, !dbg !672 - %"$$ud-registry.recordMemberOwner_193_7156" = load [20 x i8], [20 x i8]* %"$ud-registry.recordMemberOwner_193", align 1 - store [20 x i8] %"$$ud-registry.recordMemberOwner_193_7156", [20 x i8]* %recordOwner, align 1, !dbg !672 - %"$gasrem_7157" = load i64, i64* @_gasrem, align 8 - %"$gascmp_7158" = icmp ugt i64 1, %"$gasrem_7157" - br i1 %"$gascmp_7158", label %"$out_of_gas_7159", label %"$have_gas_7160" - -"$out_of_gas_7159": ; preds = %"$have_gas_7148" - call void @_out_of_gas() - br label %"$have_gas_7160" - -"$have_gas_7160": ; preds = %"$out_of_gas_7159", %"$have_gas_7148" - %"$consume_7161" = sub i64 %"$gasrem_7157", 1 - store i64 %"$consume_7161", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata [20 x i8]* %"$ud-registry.recordMemberOwner_193", metadata !1301, metadata !DIExpression()), !dbg !1302 + %"$ud-registry.recordMemberOwner_7271" = 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_7272" = extractvalue { void (i8*, [20 x i8]*, %TName_Option_ud-registry.Record*)*, i8* } %"$ud-registry.recordMemberOwner_7271", 0 + %"$ud-registry.recordMemberOwner_envptr_7273" = extractvalue { void (i8*, [20 x i8]*, %TName_Option_ud-registry.Record*)*, i8* } %"$ud-registry.recordMemberOwner_7271", 1 + %"$maybeRecord_7274" = load %TName_Option_ud-registry.Record*, %TName_Option_ud-registry.Record** %maybeRecord, align 8 + %"$ud-registry.recordMemberOwner_retalloca_7275" = alloca [20 x i8], align 1 + call void %"$ud-registry.recordMemberOwner_fptr_7272"(i8* %"$ud-registry.recordMemberOwner_envptr_7273", [20 x i8]* %"$ud-registry.recordMemberOwner_retalloca_7275", %TName_Option_ud-registry.Record* %"$maybeRecord_7274"), !dbg !1302 + %"$ud-registry.recordMemberOwner_ret_7276" = load [20 x i8], [20 x i8]* %"$ud-registry.recordMemberOwner_retalloca_7275", align 1 + store [20 x i8] %"$ud-registry.recordMemberOwner_ret_7276", [20 x i8]* %"$ud-registry.recordMemberOwner_193", align 1, !dbg !1302 + %"$$ud-registry.recordMemberOwner_193_7277" = load [20 x i8], [20 x i8]* %"$ud-registry.recordMemberOwner_193", align 1 + store [20 x i8] %"$$ud-registry.recordMemberOwner_193_7277", [20 x i8]* %recordOwner, align 1, !dbg !1302 + %"$gasrem_7278" = load i64, i64* @_gasrem, align 8 + %"$gascmp_7279" = icmp ugt i64 1, %"$gasrem_7278" + br i1 %"$gascmp_7279", label %"$out_of_gas_7280", label %"$have_gas_7281" + +"$out_of_gas_7280": ; preds = %"$have_gas_7269" + call void @_out_of_gas() + br label %"$have_gas_7281" + +"$have_gas_7281": ; preds = %"$out_of_gas_7280", %"$have_gas_7269" + %"$consume_7282" = sub i64 %"$gasrem_7278", 1 + store i64 %"$consume_7282", i64* @_gasrem, align 8 %approved = alloca [20 x i8], align 1 - %"$gasrem_7162" = load i64, i64* @_gasrem, align 8 - %"$gascmp_7163" = icmp ugt i64 2, %"$gasrem_7162" - br i1 %"$gascmp_7163", label %"$out_of_gas_7164", label %"$have_gas_7165" - -"$out_of_gas_7164": ; preds = %"$have_gas_7160" - call void @_out_of_gas() - br label %"$have_gas_7165" - -"$have_gas_7165": ; preds = %"$out_of_gas_7164", %"$have_gas_7160" - %"$consume_7166" = sub i64 %"$gasrem_7162", 2 - store i64 %"$consume_7166", i64* @_gasrem, align 8 - %"$maybeApproved_7168" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %maybeApproved, align 8 - %"$maybeApproved_tag_7169" = getelementptr inbounds %TName_Option_ByStr20, %TName_Option_ByStr20* %"$maybeApproved_7168", i32 0, i32 0 - %"$maybeApproved_tag_7170" = load i8, i8* %"$maybeApproved_tag_7169", align 1 - switch i8 %"$maybeApproved_tag_7170", label %"$empty_default_7171" [ - i8 1, label %"$None_7172" - i8 0, label %"$Some_7180" - ], !dbg !673 - -"$None_7172": ; preds = %"$have_gas_7165" - %"$maybeApproved_7173" = bitcast %TName_Option_ByStr20* %"$maybeApproved_7168" to %CName_None_ByStr20* - %"$gasrem_7174" = load i64, i64* @_gasrem, align 8 - %"$gascmp_7175" = icmp ugt i64 1, %"$gasrem_7174" - br i1 %"$gascmp_7175", label %"$out_of_gas_7176", label %"$have_gas_7177" - -"$out_of_gas_7176": ; preds = %"$None_7172" - call void @_out_of_gas() - br label %"$have_gas_7177" - -"$have_gas_7177": ; preds = %"$out_of_gas_7176", %"$None_7172" - %"$consume_7178" = sub i64 %"$gasrem_7174", 1 - store i64 %"$consume_7178", i64* @_gasrem, align 8 - %"$ud-registry.zeroByStr20_7179" = load [20 x i8], [20 x i8]* @ud-registry.zeroByStr20, align 1 - store [20 x i8] %"$ud-registry.zeroByStr20_7179", [20 x i8]* %approved, align 1, !dbg !674 - br label %"$matchsucc_7167" - -"$Some_7180": ; preds = %"$have_gas_7165" - %"$maybeApproved_7181" = bitcast %TName_Option_ByStr20* %"$maybeApproved_7168" to %CName_Some_ByStr20* - %"$approved_gep_7182" = getelementptr inbounds %CName_Some_ByStr20, %CName_Some_ByStr20* %"$maybeApproved_7181", i32 0, i32 1 - %"$approved_load_7183" = load [20 x i8], [20 x i8]* %"$approved_gep_7182", align 1 + call void @llvm.dbg.declare(metadata [20 x i8]* %approved, metadata !1303, metadata !DIExpression()), !dbg !1304 + %"$gasrem_7283" = load i64, i64* @_gasrem, align 8 + %"$gascmp_7284" = icmp ugt i64 2, %"$gasrem_7283" + br i1 %"$gascmp_7284", label %"$out_of_gas_7285", label %"$have_gas_7286" + +"$out_of_gas_7285": ; preds = %"$have_gas_7281" + call void @_out_of_gas() + br label %"$have_gas_7286" + +"$have_gas_7286": ; preds = %"$out_of_gas_7285", %"$have_gas_7281" + %"$consume_7287" = sub i64 %"$gasrem_7283", 2 + store i64 %"$consume_7287", i64* @_gasrem, align 8 + %"$maybeApproved_7289" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %maybeApproved, align 8 + %"$maybeApproved_tag_7290" = getelementptr inbounds %TName_Option_ByStr20, %TName_Option_ByStr20* %"$maybeApproved_7289", i32 0, i32 0 + %"$maybeApproved_tag_7291" = load i8, i8* %"$maybeApproved_tag_7290", align 1 + switch i8 %"$maybeApproved_tag_7291", label %"$empty_default_7292" [ + i8 1, label %"$None_7293" + i8 0, label %"$Some_7301" + ], !dbg !1305 + +"$None_7293": ; preds = %"$have_gas_7286" + %"$maybeApproved_7294" = bitcast %TName_Option_ByStr20* %"$maybeApproved_7289" to %CName_None_ByStr20* + %"$gasrem_7295" = load i64, i64* @_gasrem, align 8 + %"$gascmp_7296" = icmp ugt i64 1, %"$gasrem_7295" + br i1 %"$gascmp_7296", label %"$out_of_gas_7297", label %"$have_gas_7298" + +"$out_of_gas_7297": ; preds = %"$None_7293" + call void @_out_of_gas() + br label %"$have_gas_7298" + +"$have_gas_7298": ; preds = %"$out_of_gas_7297", %"$None_7293" + %"$consume_7299" = sub i64 %"$gasrem_7295", 1 + store i64 %"$consume_7299", i64* @_gasrem, align 8 + %"$ud-registry.zeroByStr20_7300" = load [20 x i8], [20 x i8]* @ud-registry.zeroByStr20, align 1 + store [20 x i8] %"$ud-registry.zeroByStr20_7300", [20 x i8]* %approved, align 1, !dbg !1306 + br label %"$matchsucc_7288" + +"$Some_7301": ; preds = %"$have_gas_7286" + %"$maybeApproved_7302" = bitcast %TName_Option_ByStr20* %"$maybeApproved_7289" to %CName_Some_ByStr20* + %"$approved_gep_7303" = getelementptr inbounds %CName_Some_ByStr20, %CName_Some_ByStr20* %"$maybeApproved_7302", i32 0, i32 1 + %"$approved_load_7304" = load [20 x i8], [20 x i8]* %"$approved_gep_7303", align 1 %approved2 = alloca [20 x i8], align 1 - store [20 x i8] %"$approved_load_7183", [20 x i8]* %approved2, align 1 - %"$gasrem_7184" = load i64, i64* @_gasrem, align 8 - %"$gascmp_7185" = icmp ugt i64 1, %"$gasrem_7184" - br i1 %"$gascmp_7185", label %"$out_of_gas_7186", label %"$have_gas_7187" + store [20 x i8] %"$approved_load_7304", [20 x i8]* %approved2, align 1 + %"$gasrem_7305" = load i64, i64* @_gasrem, align 8 + %"$gascmp_7306" = icmp ugt i64 1, %"$gasrem_7305" + br i1 %"$gascmp_7306", label %"$out_of_gas_7307", label %"$have_gas_7308" -"$out_of_gas_7186": ; preds = %"$Some_7180" +"$out_of_gas_7307": ; preds = %"$Some_7301" call void @_out_of_gas() - br label %"$have_gas_7187" + br label %"$have_gas_7308" -"$have_gas_7187": ; preds = %"$out_of_gas_7186", %"$Some_7180" - %"$consume_7188" = sub i64 %"$gasrem_7184", 1 - store i64 %"$consume_7188", i64* @_gasrem, align 8 - %"$approved_7189" = load [20 x i8], [20 x i8]* %approved2, align 1 - store [20 x i8] %"$approved_7189", [20 x i8]* %approved2, align 1, !dbg !677 - br label %"$matchsucc_7167" +"$have_gas_7308": ; preds = %"$out_of_gas_7307", %"$Some_7301" + %"$consume_7309" = sub i64 %"$gasrem_7305", 1 + store i64 %"$consume_7309", i64* @_gasrem, align 8 + %"$approved_7310" = load [20 x i8], [20 x i8]* %approved2, align 1 + store [20 x i8] %"$approved_7310", [20 x i8]* %approved2, align 1, !dbg !1309 + br label %"$matchsucc_7288" -"$empty_default_7171": ; preds = %"$have_gas_7165" - br label %"$matchsucc_7167" +"$empty_default_7292": ; preds = %"$have_gas_7286" + br label %"$matchsucc_7288" -"$matchsucc_7167": ; preds = %"$have_gas_7187", %"$have_gas_7177", %"$empty_default_7171" +"$matchsucc_7288": ; preds = %"$have_gas_7308", %"$have_gas_7298", %"$empty_default_7292" %currentRegistrar = alloca [20 x i8], align 1 - %"$execptr_load_7191" = load i8*, i8** @_execptr, align 8 - %"$currentRegistrar_call_7192" = call i8* @_fetch_field(i8* %"$execptr_load_7191", i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$registrar_7190", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Bystr20_458", i32 0, i8* null, i32 1), !dbg !679 - %"$currentRegistrar_7193" = bitcast i8* %"$currentRegistrar_call_7192" to [20 x i8]* - %"$currentRegistrar_7194" = load [20 x i8], [20 x i8]* %"$currentRegistrar_7193", align 1 - store [20 x i8] %"$currentRegistrar_7194", [20 x i8]* %currentRegistrar, align 1 - %"$_literal_cost_currentRegistrar_7195" = alloca [20 x i8], align 1 - %"$currentRegistrar_7196" = load [20 x i8], [20 x i8]* %currentRegistrar, align 1 - store [20 x i8] %"$currentRegistrar_7196", [20 x i8]* %"$_literal_cost_currentRegistrar_7195", align 1 - %"$$_literal_cost_currentRegistrar_7195_7197" = bitcast [20 x i8]* %"$_literal_cost_currentRegistrar_7195" to i8* - %"$_literal_cost_call_7198" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Bystr20_458", i8* %"$$_literal_cost_currentRegistrar_7195_7197") - %"$gasadd_7199" = add i64 %"$_literal_cost_call_7198", 0 - %"$gasrem_7200" = load i64, i64* @_gasrem, align 8 - %"$gascmp_7201" = icmp ugt i64 %"$gasadd_7199", %"$gasrem_7200" - br i1 %"$gascmp_7201", label %"$out_of_gas_7202", label %"$have_gas_7203" - -"$out_of_gas_7202": ; preds = %"$matchsucc_7167" - call void @_out_of_gas() - br label %"$have_gas_7203" - -"$have_gas_7203": ; preds = %"$out_of_gas_7202", %"$matchsucc_7167" - %"$consume_7204" = sub i64 %"$gasrem_7200", %"$gasadd_7199" - store i64 %"$consume_7204", i64* @_gasrem, align 8 - %"$gasrem_7205" = load i64, i64* @_gasrem, align 8 - %"$gascmp_7206" = icmp ugt i64 1, %"$gasrem_7205" - br i1 %"$gascmp_7206", label %"$out_of_gas_7207", label %"$have_gas_7208" - -"$out_of_gas_7207": ; preds = %"$have_gas_7203" - call void @_out_of_gas() - br label %"$have_gas_7208" - -"$have_gas_7208": ; preds = %"$out_of_gas_7207", %"$have_gas_7203" - %"$consume_7209" = sub i64 %"$gasrem_7205", 1 - store i64 %"$consume_7209", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata [20 x i8]* %currentRegistrar, metadata !1311, metadata !DIExpression()), !dbg !1312 + %"$execptr_load_7312" = load i8*, i8** @_execptr, align 8 + %"$currentRegistrar_call_7313" = call i8* @_fetch_field(i8* %"$execptr_load_7312", i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$registrar_7311", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Bystr20_458", i32 0, i8* null, i32 1), !dbg !1312 + %"$currentRegistrar_7314" = bitcast i8* %"$currentRegistrar_call_7313" to [20 x i8]* + %"$currentRegistrar_7315" = load [20 x i8], [20 x i8]* %"$currentRegistrar_7314", align 1 + store [20 x i8] %"$currentRegistrar_7315", [20 x i8]* %currentRegistrar, align 1 + %"$_literal_cost_currentRegistrar_7316" = alloca [20 x i8], align 1 + %"$currentRegistrar_7317" = load [20 x i8], [20 x i8]* %currentRegistrar, align 1 + store [20 x i8] %"$currentRegistrar_7317", [20 x i8]* %"$_literal_cost_currentRegistrar_7316", align 1 + %"$$_literal_cost_currentRegistrar_7316_7318" = bitcast [20 x i8]* %"$_literal_cost_currentRegistrar_7316" to i8* + %"$_literal_cost_call_7319" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Bystr20_458", i8* %"$$_literal_cost_currentRegistrar_7316_7318") + %"$gasadd_7320" = add i64 %"$_literal_cost_call_7319", 0 + %"$gasrem_7321" = load i64, i64* @_gasrem, align 8 + %"$gascmp_7322" = icmp ugt i64 %"$gasadd_7320", %"$gasrem_7321" + br i1 %"$gascmp_7322", label %"$out_of_gas_7323", label %"$have_gas_7324" + +"$out_of_gas_7323": ; preds = %"$matchsucc_7288" + call void @_out_of_gas() + br label %"$have_gas_7324" + +"$have_gas_7324": ; preds = %"$out_of_gas_7323", %"$matchsucc_7288" + %"$consume_7325" = sub i64 %"$gasrem_7321", %"$gasadd_7320" + store i64 %"$consume_7325", i64* @_gasrem, align 8 + %"$gasrem_7326" = load i64, i64* @_gasrem, align 8 + %"$gascmp_7327" = icmp ugt i64 1, %"$gasrem_7326" + br i1 %"$gascmp_7327", label %"$out_of_gas_7328", label %"$have_gas_7329" + +"$out_of_gas_7328": ; preds = %"$have_gas_7324" + call void @_out_of_gas() + br label %"$have_gas_7329" + +"$have_gas_7329": ; preds = %"$out_of_gas_7328", %"$have_gas_7324" + %"$consume_7330" = sub i64 %"$gasrem_7326", 1 + store i64 %"$consume_7330", i64* @_gasrem, align 8 %isOk = alloca %TName_Bool*, align 8 - %"$gasrem_7210" = load i64, i64* @_gasrem, align 8 - %"$gascmp_7211" = icmp ugt i64 1, %"$gasrem_7210" - br i1 %"$gascmp_7211", label %"$out_of_gas_7212", label %"$have_gas_7213" + call void @llvm.dbg.declare(metadata %TName_Bool** %isOk, metadata !1313, metadata !DIExpression()), !dbg !1314 + %"$gasrem_7331" = load i64, i64* @_gasrem, align 8 + %"$gascmp_7332" = icmp ugt i64 1, %"$gasrem_7331" + br i1 %"$gascmp_7332", label %"$out_of_gas_7333", label %"$have_gas_7334" -"$out_of_gas_7212": ; preds = %"$have_gas_7208" +"$out_of_gas_7333": ; preds = %"$have_gas_7329" call void @_out_of_gas() - br label %"$have_gas_7213" + br label %"$have_gas_7334" -"$have_gas_7213": ; preds = %"$out_of_gas_7212", %"$have_gas_7208" - %"$consume_7214" = sub i64 %"$gasrem_7210", 1 - store i64 %"$consume_7214", i64* @_gasrem, align 8 +"$have_gas_7334": ; preds = %"$out_of_gas_7333", %"$have_gas_7329" + %"$consume_7335" = sub i64 %"$gasrem_7331", 1 + store i64 %"$consume_7335", i64* @_gasrem, align 8 %isRecordUnowned = alloca %TName_Bool*, align 8 - %"$gasrem_7215" = load i64, i64* @_gasrem, align 8 - %"$gascmp_7216" = icmp ugt i64 20, %"$gasrem_7215" - br i1 %"$gascmp_7216", label %"$out_of_gas_7217", label %"$have_gas_7218" - -"$out_of_gas_7217": ; preds = %"$have_gas_7213" - call void @_out_of_gas() - br label %"$have_gas_7218" - -"$have_gas_7218": ; preds = %"$out_of_gas_7217", %"$have_gas_7213" - %"$consume_7219" = sub i64 %"$gasrem_7215", 20 - store i64 %"$consume_7219", i64* @_gasrem, align 8 - %"$execptr_load_7220" = load i8*, i8** @_execptr, align 8 - %"$eq_recordOwner_7221" = alloca [20 x i8], align 1 - %"$recordOwner_7222" = load [20 x i8], [20 x i8]* %recordOwner, align 1 - store [20 x i8] %"$recordOwner_7222", [20 x i8]* %"$eq_recordOwner_7221", align 1 - %"$$eq_recordOwner_7221_7223" = bitcast [20 x i8]* %"$eq_recordOwner_7221" to i8* - %"$eq_ud-registry.zeroByStr20_7224" = alloca [20 x i8], align 1 - %"$ud-registry.zeroByStr20_7225" = load [20 x i8], [20 x i8]* @ud-registry.zeroByStr20, align 1 - store [20 x i8] %"$ud-registry.zeroByStr20_7225", [20 x i8]* %"$eq_ud-registry.zeroByStr20_7224", align 1 - %"$$eq_ud-registry.zeroByStr20_7224_7226" = bitcast [20 x i8]* %"$eq_ud-registry.zeroByStr20_7224" to i8* - %"$eq_call_7227" = call %TName_Bool* @_eq_ByStrX(i8* %"$execptr_load_7220", i32 20, i8* %"$$eq_recordOwner_7221_7223", i8* %"$$eq_ud-registry.zeroByStr20_7224_7226"), !dbg !680 - store %TName_Bool* %"$eq_call_7227", %TName_Bool** %isRecordUnowned, align 8, !dbg !680 - %"$gasrem_7229" = load i64, i64* @_gasrem, align 8 - %"$gascmp_7230" = icmp ugt i64 1, %"$gasrem_7229" - br i1 %"$gascmp_7230", label %"$out_of_gas_7231", label %"$have_gas_7232" - -"$out_of_gas_7231": ; preds = %"$have_gas_7218" - call void @_out_of_gas() - br label %"$have_gas_7232" - -"$have_gas_7232": ; preds = %"$out_of_gas_7231", %"$have_gas_7218" - %"$consume_7233" = sub i64 %"$gasrem_7229", 1 - store i64 %"$consume_7233", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %isRecordUnowned, metadata !1315, metadata !DIExpression()), !dbg !1316 + %"$gasrem_7336" = load i64, i64* @_gasrem, align 8 + %"$gascmp_7337" = icmp ugt i64 20, %"$gasrem_7336" + br i1 %"$gascmp_7337", label %"$out_of_gas_7338", label %"$have_gas_7339" + +"$out_of_gas_7338": ; preds = %"$have_gas_7334" + call void @_out_of_gas() + br label %"$have_gas_7339" + +"$have_gas_7339": ; preds = %"$out_of_gas_7338", %"$have_gas_7334" + %"$consume_7340" = sub i64 %"$gasrem_7336", 20 + store i64 %"$consume_7340", i64* @_gasrem, align 8 + %"$execptr_load_7341" = load i8*, i8** @_execptr, align 8 + %"$eq_recordOwner_7342" = alloca [20 x i8], align 1 + %"$recordOwner_7343" = load [20 x i8], [20 x i8]* %recordOwner, align 1 + store [20 x i8] %"$recordOwner_7343", [20 x i8]* %"$eq_recordOwner_7342", align 1 + %"$$eq_recordOwner_7342_7344" = bitcast [20 x i8]* %"$eq_recordOwner_7342" to i8* + %"$eq_ud-registry.zeroByStr20_7345" = alloca [20 x i8], align 1 + %"$ud-registry.zeroByStr20_7346" = load [20 x i8], [20 x i8]* @ud-registry.zeroByStr20, align 1 + store [20 x i8] %"$ud-registry.zeroByStr20_7346", [20 x i8]* %"$eq_ud-registry.zeroByStr20_7345", align 1 + %"$$eq_ud-registry.zeroByStr20_7345_7347" = bitcast [20 x i8]* %"$eq_ud-registry.zeroByStr20_7345" to i8* + %"$eq_call_7348" = call %TName_Bool* @_eq_ByStrX(i8* %"$execptr_load_7341", i32 20, i8* %"$$eq_recordOwner_7342_7344", i8* %"$$eq_ud-registry.zeroByStr20_7345_7347"), !dbg !1317 + store %TName_Bool* %"$eq_call_7348", %TName_Bool** %isRecordUnowned, align 8, !dbg !1317 + %"$gasrem_7350" = load i64, i64* @_gasrem, align 8 + %"$gascmp_7351" = icmp ugt i64 1, %"$gasrem_7350" + br i1 %"$gascmp_7351", label %"$out_of_gas_7352", label %"$have_gas_7353" + +"$out_of_gas_7352": ; preds = %"$have_gas_7339" + call void @_out_of_gas() + br label %"$have_gas_7353" + +"$have_gas_7353": ; preds = %"$out_of_gas_7352", %"$have_gas_7339" + %"$consume_7354" = sub i64 %"$gasrem_7350", 1 + store i64 %"$consume_7354", i64* @_gasrem, align 8 %isUnapproved = alloca %TName_Bool*, align 8 - %"$gasrem_7234" = load i64, i64* @_gasrem, align 8 - %"$gascmp_7235" = icmp ugt i64 20, %"$gasrem_7234" - br i1 %"$gascmp_7235", label %"$out_of_gas_7236", label %"$have_gas_7237" - -"$out_of_gas_7236": ; preds = %"$have_gas_7232" - call void @_out_of_gas() - br label %"$have_gas_7237" - -"$have_gas_7237": ; preds = %"$out_of_gas_7236", %"$have_gas_7232" - %"$consume_7238" = sub i64 %"$gasrem_7234", 20 - store i64 %"$consume_7238", i64* @_gasrem, align 8 - %"$execptr_load_7239" = load i8*, i8** @_execptr, align 8 - %"$eq_approved_7240" = alloca [20 x i8], align 1 - %"$approved_7241" = load [20 x i8], [20 x i8]* %approved, align 1 - store [20 x i8] %"$approved_7241", [20 x i8]* %"$eq_approved_7240", align 1 - %"$$eq_approved_7240_7242" = bitcast [20 x i8]* %"$eq_approved_7240" to i8* - %"$eq_ud-registry.zeroByStr20_7243" = alloca [20 x i8], align 1 - %"$ud-registry.zeroByStr20_7244" = load [20 x i8], [20 x i8]* @ud-registry.zeroByStr20, align 1 - store [20 x i8] %"$ud-registry.zeroByStr20_7244", [20 x i8]* %"$eq_ud-registry.zeroByStr20_7243", align 1 - %"$$eq_ud-registry.zeroByStr20_7243_7245" = bitcast [20 x i8]* %"$eq_ud-registry.zeroByStr20_7243" to i8* - %"$eq_call_7246" = call %TName_Bool* @_eq_ByStrX(i8* %"$execptr_load_7239", i32 20, i8* %"$$eq_approved_7240_7242", i8* %"$$eq_ud-registry.zeroByStr20_7243_7245"), !dbg !681 - store %TName_Bool* %"$eq_call_7246", %TName_Bool** %isUnapproved, align 8, !dbg !681 - %"$gasrem_7248" = load i64, i64* @_gasrem, align 8 - %"$gascmp_7249" = icmp ugt i64 1, %"$gasrem_7248" - br i1 %"$gascmp_7249", label %"$out_of_gas_7250", label %"$have_gas_7251" - -"$out_of_gas_7250": ; preds = %"$have_gas_7237" - call void @_out_of_gas() - br label %"$have_gas_7251" - -"$have_gas_7251": ; preds = %"$out_of_gas_7250", %"$have_gas_7237" - %"$consume_7252" = sub i64 %"$gasrem_7248", 1 - store i64 %"$consume_7252", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %isUnapproved, metadata !1318, metadata !DIExpression()), !dbg !1319 + %"$gasrem_7355" = load i64, i64* @_gasrem, align 8 + %"$gascmp_7356" = icmp ugt i64 20, %"$gasrem_7355" + br i1 %"$gascmp_7356", label %"$out_of_gas_7357", label %"$have_gas_7358" + +"$out_of_gas_7357": ; preds = %"$have_gas_7353" + call void @_out_of_gas() + br label %"$have_gas_7358" + +"$have_gas_7358": ; preds = %"$out_of_gas_7357", %"$have_gas_7353" + %"$consume_7359" = sub i64 %"$gasrem_7355", 20 + store i64 %"$consume_7359", i64* @_gasrem, align 8 + %"$execptr_load_7360" = load i8*, i8** @_execptr, align 8 + %"$eq_approved_7361" = alloca [20 x i8], align 1 + %"$approved_7362" = load [20 x i8], [20 x i8]* %approved, align 1 + store [20 x i8] %"$approved_7362", [20 x i8]* %"$eq_approved_7361", align 1 + %"$$eq_approved_7361_7363" = bitcast [20 x i8]* %"$eq_approved_7361" to i8* + %"$eq_ud-registry.zeroByStr20_7364" = alloca [20 x i8], align 1 + %"$ud-registry.zeroByStr20_7365" = load [20 x i8], [20 x i8]* @ud-registry.zeroByStr20, align 1 + store [20 x i8] %"$ud-registry.zeroByStr20_7365", [20 x i8]* %"$eq_ud-registry.zeroByStr20_7364", align 1 + %"$$eq_ud-registry.zeroByStr20_7364_7366" = bitcast [20 x i8]* %"$eq_ud-registry.zeroByStr20_7364" to i8* + %"$eq_call_7367" = call %TName_Bool* @_eq_ByStrX(i8* %"$execptr_load_7360", i32 20, i8* %"$$eq_approved_7361_7363", i8* %"$$eq_ud-registry.zeroByStr20_7364_7366"), !dbg !1320 + store %TName_Bool* %"$eq_call_7367", %TName_Bool** %isUnapproved, align 8, !dbg !1320 + %"$gasrem_7369" = load i64, i64* @_gasrem, align 8 + %"$gascmp_7370" = icmp ugt i64 1, %"$gasrem_7369" + br i1 %"$gascmp_7370", label %"$out_of_gas_7371", label %"$have_gas_7372" + +"$out_of_gas_7371": ; preds = %"$have_gas_7358" + call void @_out_of_gas() + br label %"$have_gas_7372" + +"$have_gas_7372": ; preds = %"$out_of_gas_7371", %"$have_gas_7358" + %"$consume_7373" = sub i64 %"$gasrem_7369", 1 + store i64 %"$consume_7373", i64* @_gasrem, align 8 %"$BoolUtils.andb_191" = alloca { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, align 8 - %"$BoolUtils.andb_7253" = 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_7254" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_7253", 0 - %"$BoolUtils.andb_envptr_7255" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_7253", 1 - %"$isRecordUnowned_7256" = load %TName_Bool*, %TName_Bool** %isRecordUnowned, align 8 - %"$BoolUtils.andb_call_7257" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_7254"(i8* %"$BoolUtils.andb_envptr_7255", %TName_Bool* %"$isRecordUnowned_7256"), !dbg !682 - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_7257", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_191", align 8, !dbg !682 + %"$BoolUtils.andb_7374" = 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_7375" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_7374", 0 + %"$BoolUtils.andb_envptr_7376" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_7374", 1 + %"$isRecordUnowned_7377" = load %TName_Bool*, %TName_Bool** %isRecordUnowned, align 8 + %"$BoolUtils.andb_call_7378" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_7375"(i8* %"$BoolUtils.andb_envptr_7376", %TName_Bool* %"$isRecordUnowned_7377"), !dbg !1321 + store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_7378", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_191", align 8, !dbg !1321 %"$BoolUtils.andb_192" = alloca %TName_Bool*, align 8 - %"$$BoolUtils.andb_191_7258" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_191", align 8 - %"$$BoolUtils.andb_191_fptr_7259" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_191_7258", 0 - %"$$BoolUtils.andb_191_envptr_7260" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_191_7258", 1 - %"$isUnapproved_7261" = load %TName_Bool*, %TName_Bool** %isUnapproved, align 8 - %"$$BoolUtils.andb_191_call_7262" = call %TName_Bool* %"$$BoolUtils.andb_191_fptr_7259"(i8* %"$$BoolUtils.andb_191_envptr_7260", %TName_Bool* %"$isUnapproved_7261"), !dbg !682 - store %TName_Bool* %"$$BoolUtils.andb_191_call_7262", %TName_Bool** %"$BoolUtils.andb_192", align 8, !dbg !682 - %"$$BoolUtils.andb_192_7263" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_192", align 8 - store %TName_Bool* %"$$BoolUtils.andb_192_7263", %TName_Bool** %isOk, align 8, !dbg !682 - %"$gasrem_7264" = load i64, i64* @_gasrem, align 8 - %"$gascmp_7265" = icmp ugt i64 2, %"$gasrem_7264" - br i1 %"$gascmp_7265", label %"$out_of_gas_7266", label %"$have_gas_7267" - -"$out_of_gas_7266": ; preds = %"$have_gas_7251" - call void @_out_of_gas() - br label %"$have_gas_7267" - -"$have_gas_7267": ; preds = %"$out_of_gas_7266", %"$have_gas_7251" - %"$consume_7268" = sub i64 %"$gasrem_7264", 2 - store i64 %"$consume_7268", i64* @_gasrem, align 8 - %"$isOk_7270" = load %TName_Bool*, %TName_Bool** %isOk, align 8 - %"$isOk_tag_7271" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$isOk_7270", i32 0, i32 0 - %"$isOk_tag_7272" = load i8, i8* %"$isOk_tag_7271", align 1 - switch i8 %"$isOk_tag_7272", label %"$empty_default_7273" [ - i8 0, label %"$True_7274" - i8 1, label %"$False_7372" - ], !dbg !683 - -"$True_7274": ; preds = %"$have_gas_7267" - %"$isOk_7275" = bitcast %TName_Bool* %"$isOk_7270" to %CName_True* - %"$gasrem_7276" = load i64, i64* @_gasrem, align 8 - %"$gascmp_7277" = icmp ugt i64 1, %"$gasrem_7276" - br i1 %"$gascmp_7277", label %"$out_of_gas_7278", label %"$have_gas_7279" - -"$out_of_gas_7278": ; preds = %"$True_7274" - call void @_out_of_gas() - br label %"$have_gas_7279" - -"$have_gas_7279": ; preds = %"$out_of_gas_7278", %"$True_7274" - %"$consume_7280" = sub i64 %"$gasrem_7276", 1 - store i64 %"$consume_7280", i64* @_gasrem, align 8 - %"$execptr_load_7281" = load i8*, i8** @_execptr, align 8 - call void @_accept(i8* %"$execptr_load_7281"), !dbg !684 - %"$gasrem_7282" = load i64, i64* @_gasrem, align 8 - %"$gascmp_7283" = icmp ugt i64 1, %"$gasrem_7282" - br i1 %"$gascmp_7283", label %"$out_of_gas_7284", label %"$have_gas_7285" - -"$out_of_gas_7284": ; preds = %"$have_gas_7279" - call void @_out_of_gas() - br label %"$have_gas_7285" - -"$have_gas_7285": ; preds = %"$out_of_gas_7284", %"$have_gas_7279" - %"$consume_7286" = sub i64 %"$gasrem_7282", 1 - store i64 %"$consume_7286", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$BoolUtils.andb_192", metadata !1322, metadata !DIExpression()), !dbg !1321 + %"$$BoolUtils.andb_191_7379" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_191", align 8 + %"$$BoolUtils.andb_191_fptr_7380" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_191_7379", 0 + %"$$BoolUtils.andb_191_envptr_7381" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_191_7379", 1 + %"$isUnapproved_7382" = load %TName_Bool*, %TName_Bool** %isUnapproved, align 8 + %"$$BoolUtils.andb_191_call_7383" = call %TName_Bool* %"$$BoolUtils.andb_191_fptr_7380"(i8* %"$$BoolUtils.andb_191_envptr_7381", %TName_Bool* %"$isUnapproved_7382"), !dbg !1321 + store %TName_Bool* %"$$BoolUtils.andb_191_call_7383", %TName_Bool** %"$BoolUtils.andb_192", align 8, !dbg !1321 + %"$$BoolUtils.andb_192_7384" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_192", align 8 + store %TName_Bool* %"$$BoolUtils.andb_192_7384", %TName_Bool** %isOk, align 8, !dbg !1321 + %"$gasrem_7385" = load i64, i64* @_gasrem, align 8 + %"$gascmp_7386" = icmp ugt i64 2, %"$gasrem_7385" + br i1 %"$gascmp_7386", label %"$out_of_gas_7387", label %"$have_gas_7388" + +"$out_of_gas_7387": ; preds = %"$have_gas_7372" + call void @_out_of_gas() + br label %"$have_gas_7388" + +"$have_gas_7388": ; preds = %"$out_of_gas_7387", %"$have_gas_7372" + %"$consume_7389" = sub i64 %"$gasrem_7385", 2 + store i64 %"$consume_7389", i64* @_gasrem, align 8 + %"$isOk_7391" = load %TName_Bool*, %TName_Bool** %isOk, align 8 + %"$isOk_tag_7392" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$isOk_7391", i32 0, i32 0 + %"$isOk_tag_7393" = load i8, i8* %"$isOk_tag_7392", align 1 + switch i8 %"$isOk_tag_7393", label %"$empty_default_7394" [ + i8 0, label %"$True_7395" + i8 1, label %"$False_7493" + ], !dbg !1323 + +"$True_7395": ; preds = %"$have_gas_7388" + %"$isOk_7396" = bitcast %TName_Bool* %"$isOk_7391" to %CName_True* + %"$gasrem_7397" = load i64, i64* @_gasrem, align 8 + %"$gascmp_7398" = icmp ugt i64 1, %"$gasrem_7397" + br i1 %"$gascmp_7398", label %"$out_of_gas_7399", label %"$have_gas_7400" + +"$out_of_gas_7399": ; preds = %"$True_7395" + call void @_out_of_gas() + br label %"$have_gas_7400" + +"$have_gas_7400": ; preds = %"$out_of_gas_7399", %"$True_7395" + %"$consume_7401" = sub i64 %"$gasrem_7397", 1 + store i64 %"$consume_7401", i64* @_gasrem, align 8 + %"$execptr_load_7402" = load i8*, i8** @_execptr, align 8 + call void @_accept(i8* %"$execptr_load_7402"), !dbg !1324 + %"$gasrem_7403" = load i64, i64* @_gasrem, align 8 + %"$gascmp_7404" = icmp ugt i64 1, %"$gasrem_7403" + br i1 %"$gascmp_7404", label %"$out_of_gas_7405", label %"$have_gas_7406" + +"$out_of_gas_7405": ; preds = %"$have_gas_7400" + call void @_out_of_gas() + br label %"$have_gas_7406" + +"$have_gas_7406": ; preds = %"$out_of_gas_7405", %"$have_gas_7400" + %"$consume_7407" = sub i64 %"$gasrem_7403", 1 + store i64 %"$consume_7407", i64* @_gasrem, align 8 %msgs = alloca %TName_List_Message*, align 8 - %"$gasrem_7287" = load i64, i64* @_gasrem, align 8 - %"$gascmp_7288" = icmp ugt i64 1, %"$gasrem_7287" - br i1 %"$gascmp_7288", label %"$out_of_gas_7289", label %"$have_gas_7290" + call void @llvm.dbg.declare(metadata %TName_List_Message** %msgs, metadata !1327, metadata !DIExpression()), !dbg !1328 + %"$gasrem_7408" = load i64, i64* @_gasrem, align 8 + %"$gascmp_7409" = icmp ugt i64 1, %"$gasrem_7408" + br i1 %"$gascmp_7409", label %"$out_of_gas_7410", label %"$have_gas_7411" -"$out_of_gas_7289": ; preds = %"$have_gas_7285" +"$out_of_gas_7410": ; preds = %"$have_gas_7406" call void @_out_of_gas() - br label %"$have_gas_7290" + br label %"$have_gas_7411" -"$have_gas_7290": ; preds = %"$out_of_gas_7289", %"$have_gas_7285" - %"$consume_7291" = sub i64 %"$gasrem_7287", 1 - store i64 %"$consume_7291", i64* @_gasrem, align 8 +"$have_gas_7411": ; preds = %"$out_of_gas_7410", %"$have_gas_7406" + %"$consume_7412" = sub i64 %"$gasrem_7408", 1 + store i64 %"$consume_7412", i64* @_gasrem, align 8 %m = alloca i8*, align 8 - %"$gasrem_7292" = load i64, i64* @_gasrem, align 8 - %"$gascmp_7293" = icmp ugt i64 1, %"$gasrem_7292" - br i1 %"$gascmp_7293", label %"$out_of_gas_7294", label %"$have_gas_7295" - -"$out_of_gas_7294": ; preds = %"$have_gas_7290" - call void @_out_of_gas() - br label %"$have_gas_7295" - -"$have_gas_7295": ; preds = %"$out_of_gas_7294", %"$have_gas_7290" - %"$consume_7296" = sub i64 %"$gasrem_7292", 1 - store i64 %"$consume_7296", i64* @_gasrem, align 8 - %"$msgobj_7297_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$msgobj_7297_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_7297_salloc_load", i64 321) - %"$msgobj_7297_salloc" = bitcast i8* %"$msgobj_7297_salloc_salloc" to [321 x i8]* - %"$msgobj_7297" = bitcast [321 x i8]* %"$msgobj_7297_salloc" to i8* - store i8 7, i8* %"$msgobj_7297", align 1 - %"$msgobj_fname_7299" = getelementptr i8, i8* %"$msgobj_7297", i32 1 - %"$msgobj_fname_7300" = bitcast i8* %"$msgobj_fname_7299" to %String* - store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_7298", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_7300", align 8 - %"$msgobj_td_7301" = getelementptr i8, i8* %"$msgobj_7297", i32 17 - %"$msgobj_td_7302" = bitcast i8* %"$msgobj_td_7301" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_String_440", %_TyDescrTy_Typ** %"$msgobj_td_7302", align 8 - %"$msgobj_v_7304" = getelementptr i8, i8* %"$msgobj_7297", i32 25 - %"$msgobj_v_7305" = bitcast i8* %"$msgobj_v_7304" to %String* - store %String { i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$stringlit_7303", i32 0, i32 0), i32 8 }, %String* %"$msgobj_v_7305", align 8 - %"$msgobj_fname_7307" = getelementptr i8, i8* %"$msgobj_7297", i32 41 - %"$msgobj_fname_7308" = bitcast i8* %"$msgobj_fname_7307" to %String* - store %String { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$stringlit_7306", i32 0, i32 0), i32 7 }, %String* %"$msgobj_fname_7308", align 8 - %"$msgobj_td_7309" = getelementptr i8, i8* %"$msgobj_7297", i32 57 - %"$msgobj_td_7310" = bitcast i8* %"$msgobj_td_7309" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Uint128_434", %_TyDescrTy_Typ** %"$msgobj_td_7310", align 8 - %"$msgobj_v_7311" = getelementptr i8, i8* %"$msgobj_7297", i32 65 - %"$msgobj_v_7312" = bitcast i8* %"$msgobj_v_7311" to %Uint128* - store %Uint128 %_amount, %Uint128* %"$msgobj_v_7312", align 8 - %"$msgobj_fname_7314" = getelementptr i8, i8* %"$msgobj_7297", i32 81 - %"$msgobj_fname_7315" = bitcast i8* %"$msgobj_fname_7314" to %String* - store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_7313", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_7315", align 8 - %"$msgobj_td_7316" = getelementptr i8, i8* %"$msgobj_7297", i32 97 - %"$msgobj_td_7317" = bitcast i8* %"$msgobj_td_7316" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_458", %_TyDescrTy_Typ** %"$msgobj_td_7317", align 8 - %"$currentRegistrar_7318" = load [20 x i8], [20 x i8]* %currentRegistrar, align 1 - %"$msgobj_v_7319" = getelementptr i8, i8* %"$msgobj_7297", i32 105 - %"$msgobj_v_7320" = bitcast i8* %"$msgobj_v_7319" to [20 x i8]* - store [20 x i8] %"$currentRegistrar_7318", [20 x i8]* %"$msgobj_v_7320", align 1 - %"$msgobj_fname_7322" = getelementptr i8, i8* %"$msgobj_7297", i32 125 - %"$msgobj_fname_7323" = bitcast i8* %"$msgobj_fname_7322" to %String* - store %String { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$stringlit_7321", i32 0, i32 0), i32 6 }, %String* %"$msgobj_fname_7323", align 8 - %"$msgobj_td_7324" = getelementptr i8, i8* %"$msgobj_7297", i32 141 - %"$msgobj_td_7325" = bitcast i8* %"$msgobj_td_7324" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_458", %_TyDescrTy_Typ** %"$msgobj_td_7325", align 8 - %"$msgobj_v_7326" = getelementptr i8, i8* %"$msgobj_7297", i32 149 - %"$msgobj_v_7327" = bitcast i8* %"$msgobj_v_7326" to [20 x i8]* - store [20 x i8] %_sender, [20 x i8]* %"$msgobj_v_7327", align 1 - %"$msgobj_fname_7329" = getelementptr i8, i8* %"$msgobj_7297", i32 169 - %"$msgobj_fname_7330" = bitcast i8* %"$msgobj_fname_7329" to %String* - store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_7328", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_7330", align 8 - %"$msgobj_td_7331" = getelementptr i8, i8* %"$msgobj_7297", i32 185 - %"$msgobj_td_7332" = bitcast i8* %"$msgobj_td_7331" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Bystr32_456", %_TyDescrTy_Typ** %"$msgobj_td_7332", align 8 - %"$node_7333" = load [32 x i8], [32 x i8]* %node, align 1 - %"$msgobj_v_7334" = getelementptr i8, i8* %"$msgobj_7297", i32 193 - %"$msgobj_v_7335" = bitcast i8* %"$msgobj_v_7334" to [32 x i8]* - store [32 x i8] %"$node_7333", [32 x i8]* %"$msgobj_v_7335", align 1 - %"$msgobj_fname_7337" = getelementptr i8, i8* %"$msgobj_7297", i32 225 - %"$msgobj_fname_7338" = bitcast i8* %"$msgobj_fname_7337" to %String* - store %String { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$stringlit_7336", i32 0, i32 0), i32 6 }, %String* %"$msgobj_fname_7338", align 8 - %"$msgobj_td_7339" = getelementptr i8, i8* %"$msgobj_7297", i32 241 - %"$msgobj_td_7340" = bitcast i8* %"$msgobj_td_7339" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Bystr32_456", %_TyDescrTy_Typ** %"$msgobj_td_7340", align 8 - %"$msgobj_v_7341" = getelementptr i8, i8* %"$msgobj_7297", i32 249 - %"$msgobj_v_7342" = bitcast i8* %"$msgobj_v_7341" to [32 x i8]* - store [32 x i8] %parent, [32 x i8]* %"$msgobj_v_7342", align 1 - %"$msgobj_fname_7344" = getelementptr i8, i8* %"$msgobj_7297", i32 281 - %"$msgobj_fname_7345" = bitcast i8* %"$msgobj_fname_7344" to %String* - store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_7343", i32 0, i32 0), i32 5 }, %String* %"$msgobj_fname_7345", align 8 - %"$msgobj_td_7346" = getelementptr i8, i8* %"$msgobj_7297", i32 297 - %"$msgobj_td_7347" = bitcast i8* %"$msgobj_td_7346" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_String_440", %_TyDescrTy_Typ** %"$msgobj_td_7347", align 8 - %"$msgobj_v_7348" = getelementptr i8, i8* %"$msgobj_7297", i32 305 - %"$msgobj_v_7349" = bitcast i8* %"$msgobj_v_7348" to %String* - store %String %label, %String* %"$msgobj_v_7349", align 8 - store i8* %"$msgobj_7297", i8** %m, align 8, !dbg !687 - %"$gasrem_7351" = load i64, i64* @_gasrem, align 8 - %"$gascmp_7352" = icmp ugt i64 1, %"$gasrem_7351" - br i1 %"$gascmp_7352", label %"$out_of_gas_7353", label %"$have_gas_7354" - -"$out_of_gas_7353": ; preds = %"$have_gas_7295" - call void @_out_of_gas() - br label %"$have_gas_7354" - -"$have_gas_7354": ; preds = %"$out_of_gas_7353", %"$have_gas_7295" - %"$consume_7355" = sub i64 %"$gasrem_7351", 1 - store i64 %"$consume_7355", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata i8** %m, metadata !1329, metadata !DIExpression()), !dbg !1330 + %"$gasrem_7413" = load i64, i64* @_gasrem, align 8 + %"$gascmp_7414" = icmp ugt i64 1, %"$gasrem_7413" + br i1 %"$gascmp_7414", label %"$out_of_gas_7415", label %"$have_gas_7416" + +"$out_of_gas_7415": ; preds = %"$have_gas_7411" + call void @_out_of_gas() + br label %"$have_gas_7416" + +"$have_gas_7416": ; preds = %"$out_of_gas_7415", %"$have_gas_7411" + %"$consume_7417" = sub i64 %"$gasrem_7413", 1 + store i64 %"$consume_7417", i64* @_gasrem, align 8 + %"$msgobj_7418_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$msgobj_7418_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_7418_salloc_load", i64 321) + %"$msgobj_7418_salloc" = bitcast i8* %"$msgobj_7418_salloc_salloc" to [321 x i8]* + %"$msgobj_7418" = bitcast [321 x i8]* %"$msgobj_7418_salloc" to i8* + store i8 7, i8* %"$msgobj_7418", align 1 + %"$msgobj_fname_7420" = getelementptr i8, i8* %"$msgobj_7418", i32 1 + %"$msgobj_fname_7421" = bitcast i8* %"$msgobj_fname_7420" to %String* + store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_7419", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_7421", align 8 + %"$msgobj_td_7422" = getelementptr i8, i8* %"$msgobj_7418", i32 17 + %"$msgobj_td_7423" = bitcast i8* %"$msgobj_td_7422" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_String_440", %_TyDescrTy_Typ** %"$msgobj_td_7423", align 8 + %"$msgobj_v_7425" = getelementptr i8, i8* %"$msgobj_7418", i32 25 + %"$msgobj_v_7426" = bitcast i8* %"$msgobj_v_7425" to %String* + store %String { i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$stringlit_7424", i32 0, i32 0), i32 8 }, %String* %"$msgobj_v_7426", align 8 + %"$msgobj_fname_7428" = getelementptr i8, i8* %"$msgobj_7418", i32 41 + %"$msgobj_fname_7429" = bitcast i8* %"$msgobj_fname_7428" to %String* + store %String { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$stringlit_7427", i32 0, i32 0), i32 7 }, %String* %"$msgobj_fname_7429", align 8 + %"$msgobj_td_7430" = getelementptr i8, i8* %"$msgobj_7418", i32 57 + %"$msgobj_td_7431" = bitcast i8* %"$msgobj_td_7430" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Uint128_434", %_TyDescrTy_Typ** %"$msgobj_td_7431", align 8 + %"$msgobj_v_7432" = getelementptr i8, i8* %"$msgobj_7418", i32 65 + %"$msgobj_v_7433" = bitcast i8* %"$msgobj_v_7432" to %Uint128* + store %Uint128 %_amount, %Uint128* %"$msgobj_v_7433", align 8 + %"$msgobj_fname_7435" = getelementptr i8, i8* %"$msgobj_7418", i32 81 + %"$msgobj_fname_7436" = bitcast i8* %"$msgobj_fname_7435" to %String* + store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_7434", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_7436", align 8 + %"$msgobj_td_7437" = getelementptr i8, i8* %"$msgobj_7418", i32 97 + %"$msgobj_td_7438" = bitcast i8* %"$msgobj_td_7437" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_458", %_TyDescrTy_Typ** %"$msgobj_td_7438", align 8 + %"$currentRegistrar_7439" = load [20 x i8], [20 x i8]* %currentRegistrar, align 1 + %"$msgobj_v_7440" = getelementptr i8, i8* %"$msgobj_7418", i32 105 + %"$msgobj_v_7441" = bitcast i8* %"$msgobj_v_7440" to [20 x i8]* + store [20 x i8] %"$currentRegistrar_7439", [20 x i8]* %"$msgobj_v_7441", align 1 + %"$msgobj_fname_7443" = getelementptr i8, i8* %"$msgobj_7418", i32 125 + %"$msgobj_fname_7444" = bitcast i8* %"$msgobj_fname_7443" to %String* + store %String { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$stringlit_7442", i32 0, i32 0), i32 6 }, %String* %"$msgobj_fname_7444", align 8 + %"$msgobj_td_7445" = getelementptr i8, i8* %"$msgobj_7418", i32 141 + %"$msgobj_td_7446" = bitcast i8* %"$msgobj_td_7445" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_458", %_TyDescrTy_Typ** %"$msgobj_td_7446", align 8 + %"$msgobj_v_7447" = getelementptr i8, i8* %"$msgobj_7418", i32 149 + %"$msgobj_v_7448" = bitcast i8* %"$msgobj_v_7447" to [20 x i8]* + store [20 x i8] %_sender, [20 x i8]* %"$msgobj_v_7448", align 1 + %"$msgobj_fname_7450" = getelementptr i8, i8* %"$msgobj_7418", i32 169 + %"$msgobj_fname_7451" = bitcast i8* %"$msgobj_fname_7450" to %String* + store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_7449", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_7451", align 8 + %"$msgobj_td_7452" = getelementptr i8, i8* %"$msgobj_7418", i32 185 + %"$msgobj_td_7453" = bitcast i8* %"$msgobj_td_7452" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Bystr32_456", %_TyDescrTy_Typ** %"$msgobj_td_7453", align 8 + %"$node_7454" = load [32 x i8], [32 x i8]* %node, align 1 + %"$msgobj_v_7455" = getelementptr i8, i8* %"$msgobj_7418", i32 193 + %"$msgobj_v_7456" = bitcast i8* %"$msgobj_v_7455" to [32 x i8]* + store [32 x i8] %"$node_7454", [32 x i8]* %"$msgobj_v_7456", align 1 + %"$msgobj_fname_7458" = getelementptr i8, i8* %"$msgobj_7418", i32 225 + %"$msgobj_fname_7459" = bitcast i8* %"$msgobj_fname_7458" to %String* + store %String { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$stringlit_7457", i32 0, i32 0), i32 6 }, %String* %"$msgobj_fname_7459", align 8 + %"$msgobj_td_7460" = getelementptr i8, i8* %"$msgobj_7418", i32 241 + %"$msgobj_td_7461" = bitcast i8* %"$msgobj_td_7460" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Bystr32_456", %_TyDescrTy_Typ** %"$msgobj_td_7461", align 8 + %"$msgobj_v_7462" = getelementptr i8, i8* %"$msgobj_7418", i32 249 + %"$msgobj_v_7463" = bitcast i8* %"$msgobj_v_7462" to [32 x i8]* + store [32 x i8] %parent, [32 x i8]* %"$msgobj_v_7463", align 1 + %"$msgobj_fname_7465" = getelementptr i8, i8* %"$msgobj_7418", i32 281 + %"$msgobj_fname_7466" = bitcast i8* %"$msgobj_fname_7465" to %String* + store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_7464", i32 0, i32 0), i32 5 }, %String* %"$msgobj_fname_7466", align 8 + %"$msgobj_td_7467" = getelementptr i8, i8* %"$msgobj_7418", i32 297 + %"$msgobj_td_7468" = bitcast i8* %"$msgobj_td_7467" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_String_440", %_TyDescrTy_Typ** %"$msgobj_td_7468", align 8 + %"$msgobj_v_7469" = getelementptr i8, i8* %"$msgobj_7418", i32 305 + %"$msgobj_v_7470" = bitcast i8* %"$msgobj_v_7469" to %String* + store %String %label, %String* %"$msgobj_v_7470", align 8 + store i8* %"$msgobj_7418", i8** %m, align 8, !dbg !1331 + %"$gasrem_7472" = load i64, i64* @_gasrem, align 8 + %"$gascmp_7473" = icmp ugt i64 1, %"$gasrem_7472" + br i1 %"$gascmp_7473", label %"$out_of_gas_7474", label %"$have_gas_7475" + +"$out_of_gas_7474": ; preds = %"$have_gas_7416" + call void @_out_of_gas() + br label %"$have_gas_7475" + +"$have_gas_7475": ; preds = %"$out_of_gas_7474", %"$have_gas_7416" + %"$consume_7476" = sub i64 %"$gasrem_7472", 1 + store i64 %"$consume_7476", i64* @_gasrem, align 8 %"$ud-registry.oneMsg_190" = alloca %TName_List_Message*, align 8 - %"$ud-registry.oneMsg_7356" = load { %TName_List_Message* (i8*, i8*)*, i8* }, { %TName_List_Message* (i8*, i8*)*, i8* }* @ud-registry.oneMsg, align 8 - %"$ud-registry.oneMsg_fptr_7357" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$ud-registry.oneMsg_7356", 0 - %"$ud-registry.oneMsg_envptr_7358" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$ud-registry.oneMsg_7356", 1 - %"$m_7359" = load i8*, i8** %m, align 8 - %"$ud-registry.oneMsg_call_7360" = call %TName_List_Message* %"$ud-registry.oneMsg_fptr_7357"(i8* %"$ud-registry.oneMsg_envptr_7358", i8* %"$m_7359"), !dbg !688 - store %TName_List_Message* %"$ud-registry.oneMsg_call_7360", %TName_List_Message** %"$ud-registry.oneMsg_190", align 8, !dbg !688 - %"$$ud-registry.oneMsg_190_7361" = load %TName_List_Message*, %TName_List_Message** %"$ud-registry.oneMsg_190", align 8 - store %TName_List_Message* %"$$ud-registry.oneMsg_190_7361", %TName_List_Message** %msgs, align 8, !dbg !688 - %"$msgs_7362" = load %TName_List_Message*, %TName_List_Message** %msgs, align 8 - %"$$msgs_7362_7363" = bitcast %TName_List_Message* %"$msgs_7362" to i8* - %"$_literal_cost_call_7364" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_467", i8* %"$$msgs_7362_7363") - %"$gasrem_7365" = load i64, i64* @_gasrem, align 8 - %"$gascmp_7366" = icmp ugt i64 %"$_literal_cost_call_7364", %"$gasrem_7365" - br i1 %"$gascmp_7366", label %"$out_of_gas_7367", label %"$have_gas_7368" - -"$out_of_gas_7367": ; preds = %"$have_gas_7354" - call void @_out_of_gas() - br label %"$have_gas_7368" - -"$have_gas_7368": ; preds = %"$out_of_gas_7367", %"$have_gas_7354" - %"$consume_7369" = sub i64 %"$gasrem_7365", %"$_literal_cost_call_7364" - store i64 %"$consume_7369", i64* @_gasrem, align 8 - %"$execptr_load_7370" = load i8*, i8** @_execptr, align 8 - %"$msgs_7371" = load %TName_List_Message*, %TName_List_Message** %msgs, align 8 - call void @_send(i8* %"$execptr_load_7370", %_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_467", %TName_List_Message* %"$msgs_7371"), !dbg !689 - br label %"$matchsucc_7269" - -"$False_7372": ; preds = %"$have_gas_7267" - %"$isOk_7373" = bitcast %TName_Bool* %"$isOk_7270" to %CName_False* - br label %"$matchsucc_7269" - -"$empty_default_7273": ; preds = %"$have_gas_7267" - br label %"$matchsucc_7269" - -"$matchsucc_7269": ; preds = %"$False_7372", %"$have_gas_7368", %"$empty_default_7273" + call void @llvm.dbg.declare(metadata %TName_List_Message** %"$ud-registry.oneMsg_190", metadata !1332, metadata !DIExpression()), !dbg !1333 + %"$ud-registry.oneMsg_7477" = load { %TName_List_Message* (i8*, i8*)*, i8* }, { %TName_List_Message* (i8*, i8*)*, i8* }* @ud-registry.oneMsg, align 8 + %"$ud-registry.oneMsg_fptr_7478" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$ud-registry.oneMsg_7477", 0 + %"$ud-registry.oneMsg_envptr_7479" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$ud-registry.oneMsg_7477", 1 + %"$m_7480" = load i8*, i8** %m, align 8 + %"$ud-registry.oneMsg_call_7481" = call %TName_List_Message* %"$ud-registry.oneMsg_fptr_7478"(i8* %"$ud-registry.oneMsg_envptr_7479", i8* %"$m_7480"), !dbg !1333 + store %TName_List_Message* %"$ud-registry.oneMsg_call_7481", %TName_List_Message** %"$ud-registry.oneMsg_190", align 8, !dbg !1333 + %"$$ud-registry.oneMsg_190_7482" = load %TName_List_Message*, %TName_List_Message** %"$ud-registry.oneMsg_190", align 8 + store %TName_List_Message* %"$$ud-registry.oneMsg_190_7482", %TName_List_Message** %msgs, align 8, !dbg !1333 + %"$msgs_7483" = load %TName_List_Message*, %TName_List_Message** %msgs, align 8 + %"$$msgs_7483_7484" = bitcast %TName_List_Message* %"$msgs_7483" to i8* + %"$_literal_cost_call_7485" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_467", i8* %"$$msgs_7483_7484") + %"$gasrem_7486" = load i64, i64* @_gasrem, align 8 + %"$gascmp_7487" = icmp ugt i64 %"$_literal_cost_call_7485", %"$gasrem_7486" + br i1 %"$gascmp_7487", label %"$out_of_gas_7488", label %"$have_gas_7489" + +"$out_of_gas_7488": ; preds = %"$have_gas_7475" + call void @_out_of_gas() + br label %"$have_gas_7489" + +"$have_gas_7489": ; preds = %"$out_of_gas_7488", %"$have_gas_7475" + %"$consume_7490" = sub i64 %"$gasrem_7486", %"$_literal_cost_call_7485" + store i64 %"$consume_7490", i64* @_gasrem, align 8 + %"$execptr_load_7491" = load i8*, i8** @_execptr, align 8 + %"$msgs_7492" = load %TName_List_Message*, %TName_List_Message** %msgs, align 8 + call void @_send(i8* %"$execptr_load_7491", %_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_467", %TName_List_Message* %"$msgs_7492"), !dbg !1334 + br label %"$matchsucc_7390" + +"$False_7493": ; preds = %"$have_gas_7388" + %"$isOk_7494" = bitcast %TName_Bool* %"$isOk_7391" to %CName_False* + br label %"$matchsucc_7390" + +"$empty_default_7394": ; preds = %"$have_gas_7388" + br label %"$matchsucc_7390" + +"$matchsucc_7390": ; preds = %"$False_7493", %"$have_gas_7489", %"$empty_default_7394" ret void } declare void @_accept(i8*) -define void @register(i8* %0) !dbg !690 { -entry: - %"$_amount_7375" = getelementptr i8, i8* %0, i32 0 - %"$_amount_7376" = bitcast i8* %"$_amount_7375" to %Uint128* - %_amount = load %Uint128, %Uint128* %"$_amount_7376", align 8 - %"$_origin_7377" = getelementptr i8, i8* %0, i32 16 - %"$_origin_7378" = bitcast i8* %"$_origin_7377" to [20 x i8]* - %"$_sender_7379" = getelementptr i8, i8* %0, i32 36 - %"$_sender_7380" = bitcast i8* %"$_sender_7379" to [20 x i8]* - %"$parent_7381" = getelementptr i8, i8* %0, i32 56 - %"$parent_7382" = bitcast i8* %"$parent_7381" to [32 x i8]* - %"$label_7383" = getelementptr i8, i8* %0, i32 88 - %"$label_7384" = bitcast i8* %"$label_7383" to %String* - %label = load %String, %String* %"$label_7384", align 8 - call void @"$register_7081"(%Uint128 %_amount, [20 x i8]* %"$_origin_7378", [20 x i8]* %"$_sender_7380", [32 x i8]* %"$parent_7382", %String %label), !dbg !691 +define void @register(i8* %0) !dbg !1335 { +entry: + %"$_amount_7501" = getelementptr i8, i8* %0, i32 0 + %"$_amount_7502" = bitcast i8* %"$_amount_7501" to %Uint128* + %_amount = load %Uint128, %Uint128* %"$_amount_7502", align 8 + %"$_origin_7503" = getelementptr i8, i8* %0, i32 16 + %"$_origin_7504" = bitcast i8* %"$_origin_7503" to [20 x i8]* + %"$_sender_7505" = getelementptr i8, i8* %0, i32 36 + %"$_sender_7506" = bitcast i8* %"$_sender_7505" to [20 x i8]* + %"$parent_7507" = getelementptr i8, i8* %0, i32 56 + %"$parent_7508" = bitcast i8* %"$parent_7507" to [32 x i8]* + %"$label_7509" = getelementptr i8, i8* %0, i32 88 + %"$label_7510" = bitcast i8* %"$label_7509" to %String* + %label = load %String, %String* %"$label_7510", align 8 + call void @"$register_7202"(%Uint128 %_amount, [20 x i8]* %"$_origin_7504", [20 x i8]* %"$_sender_7506", [32 x i8]* %"$parent_7508", %String %label), !dbg !1336 ret void } -define internal void @"$onResolverConfigured_7385"(%Uint128 %_amount, [20 x i8]* %"$_origin_7386", [20 x i8]* %"$_sender_7387", [32 x i8]* %"$node_7388") !dbg !692 { -entry: - %_origin = load [20 x i8], [20 x i8]* %"$_origin_7386", align 1 - %_sender = load [20 x i8], [20 x i8]* %"$_sender_7387", align 1 - %node = load [32 x i8], [32 x i8]* %"$node_7388", align 1 +define internal void @"$onResolverConfigured_7511"(%Uint128 %_amount, [20 x i8]* %"$_origin_7512", [20 x i8]* %"$_sender_7513", [32 x i8]* %"$node_7514") !dbg !1337 { +entry: + %"$node_7636" = alloca [32 x i8]*, align 8 + store [32 x i8]* %"$node_7514", [32 x i8]** %"$node_7636", align 8 + call void @llvm.dbg.declare(metadata [32 x i8]** %"$node_7636", metadata !1338, metadata !DIExpression()), !dbg !1339 + %"$_sender_7635" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_sender_7513", [20 x i8]** %"$_sender_7635", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_sender_7635", metadata !1340, metadata !DIExpression()), !dbg !1341 + %"$_origin_7634" = alloca [20 x i8]*, align 8 + store [20 x i8]* %"$_origin_7512", [20 x i8]** %"$_origin_7634", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$_origin_7634", metadata !1342, metadata !DIExpression()), !dbg !1341 + %"$_amount_7633" = alloca %Uint128, align 8 + store %Uint128 %_amount, %Uint128* %"$_amount_7633", align 8 + call void @llvm.dbg.declare(metadata %Uint128* %"$_amount_7633", metadata !1343, metadata !DIExpression()), !dbg !1341 + %_origin = load [20 x i8], [20 x i8]* %"$_origin_7512", align 1 + %_sender = load [20 x i8], [20 x i8]* %"$_sender_7513", align 1 + %node = load [32 x i8], [32 x i8]* %"$node_7514", align 1 %maybeRecord = alloca %TName_Option_ud-registry.Record*, align 8 - %"$indices_buf_7389_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$indices_buf_7389_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_7389_salloc_load", i64 32) - %"$indices_buf_7389_salloc" = bitcast i8* %"$indices_buf_7389_salloc_salloc" to [32 x i8]* - %"$indices_buf_7389" = bitcast [32 x i8]* %"$indices_buf_7389_salloc" to i8* - %"$indices_gep_7390" = getelementptr i8, i8* %"$indices_buf_7389", i32 0 - %indices_cast = bitcast i8* %"$indices_gep_7390" to [32 x i8]* + call void @llvm.dbg.declare(metadata %TName_Option_ud-registry.Record** %maybeRecord, metadata !1344, metadata !DIExpression()), !dbg !1345 + %"$indices_buf_7515_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$indices_buf_7515_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_7515_salloc_load", i64 32) + %"$indices_buf_7515_salloc" = bitcast i8* %"$indices_buf_7515_salloc_salloc" to [32 x i8]* + %"$indices_buf_7515" = bitcast [32 x i8]* %"$indices_buf_7515_salloc" to i8* + %"$indices_gep_7516" = getelementptr i8, i8* %"$indices_buf_7515", i32 0 + %indices_cast = bitcast i8* %"$indices_gep_7516" to [32 x i8]* store [32 x i8] %node, [32 x i8]* %indices_cast, align 1 - %"$execptr_load_7392" = load i8*, i8** @_execptr, align 8 - %"$maybeRecord_call_7393" = call i8* @_fetch_field(i8* %"$execptr_load_7392", i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$records_7391", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_472", i32 1, i8* %"$indices_buf_7389", i32 1), !dbg !693 - %"$maybeRecord_7394" = bitcast i8* %"$maybeRecord_call_7393" to %TName_Option_ud-registry.Record* - store %TName_Option_ud-registry.Record* %"$maybeRecord_7394", %TName_Option_ud-registry.Record** %maybeRecord, align 8 - %"$maybeRecord_7395" = load %TName_Option_ud-registry.Record*, %TName_Option_ud-registry.Record** %maybeRecord, align 8 - %"$$maybeRecord_7395_7396" = bitcast %TName_Option_ud-registry.Record* %"$maybeRecord_7395" to i8* - %"$_literal_cost_call_7397" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_ud-registry.Record_463", i8* %"$$maybeRecord_7395_7396") - %"$gasadd_7398" = add i64 %"$_literal_cost_call_7397", 0 - %"$gasadd_7399" = add i64 %"$gasadd_7398", 1 - %"$gasrem_7400" = load i64, i64* @_gasrem, align 8 - %"$gascmp_7401" = icmp ugt i64 %"$gasadd_7399", %"$gasrem_7400" - br i1 %"$gascmp_7401", label %"$out_of_gas_7402", label %"$have_gas_7403" - -"$out_of_gas_7402": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_7403" - -"$have_gas_7403": ; preds = %"$out_of_gas_7402", %entry - %"$consume_7404" = sub i64 %"$gasrem_7400", %"$gasadd_7399" - store i64 %"$consume_7404", i64* @_gasrem, align 8 - %"$gasrem_7405" = load i64, i64* @_gasrem, align 8 - %"$gascmp_7406" = icmp ugt i64 2, %"$gasrem_7405" - br i1 %"$gascmp_7406", label %"$out_of_gas_7407", label %"$have_gas_7408" - -"$out_of_gas_7407": ; preds = %"$have_gas_7403" - call void @_out_of_gas() - br label %"$have_gas_7408" - -"$have_gas_7408": ; preds = %"$out_of_gas_7407", %"$have_gas_7403" - %"$consume_7409" = sub i64 %"$gasrem_7405", 2 - store i64 %"$consume_7409", i64* @_gasrem, align 8 - %"$maybeRecord_7411" = load %TName_Option_ud-registry.Record*, %TName_Option_ud-registry.Record** %maybeRecord, align 8 - %"$maybeRecord_tag_7412" = getelementptr inbounds %TName_Option_ud-registry.Record, %TName_Option_ud-registry.Record* %"$maybeRecord_7411", i32 0, i32 0 - %"$maybeRecord_tag_7413" = load i8, i8* %"$maybeRecord_tag_7412", align 1 - switch i8 %"$maybeRecord_tag_7413", label %"$empty_default_7414" [ - i8 1, label %"$None_7415" - i8 0, label %"$Some_7417" - ], !dbg !694 - -"$None_7415": ; preds = %"$have_gas_7408" - %"$maybeRecord_7416" = bitcast %TName_Option_ud-registry.Record* %"$maybeRecord_7411" to %CName_None_ud-registry.Record* - br label %"$matchsucc_7410" - -"$Some_7417": ; preds = %"$have_gas_7408" - %"$maybeRecord_7418" = bitcast %TName_Option_ud-registry.Record* %"$maybeRecord_7411" to %CName_Some_ud-registry.Record* - %"$record_gep_7419" = getelementptr inbounds %CName_Some_ud-registry.Record, %CName_Some_ud-registry.Record* %"$maybeRecord_7418", i32 0, i32 1 - %"$record_load_7420" = load %TName_ud-registry.Record*, %TName_ud-registry.Record** %"$record_gep_7419", align 8 + %"$execptr_load_7518" = load i8*, i8** @_execptr, align 8 + %"$maybeRecord_call_7519" = call i8* @_fetch_field(i8* %"$execptr_load_7518", i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$records_7517", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_472", i32 1, i8* %"$indices_buf_7515", i32 1), !dbg !1345 + %"$maybeRecord_7520" = bitcast i8* %"$maybeRecord_call_7519" to %TName_Option_ud-registry.Record* + store %TName_Option_ud-registry.Record* %"$maybeRecord_7520", %TName_Option_ud-registry.Record** %maybeRecord, align 8 + %"$maybeRecord_7521" = load %TName_Option_ud-registry.Record*, %TName_Option_ud-registry.Record** %maybeRecord, align 8 + %"$$maybeRecord_7521_7522" = bitcast %TName_Option_ud-registry.Record* %"$maybeRecord_7521" to i8* + %"$_literal_cost_call_7523" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_ud-registry.Record_463", i8* %"$$maybeRecord_7521_7522") + %"$gasadd_7524" = add i64 %"$_literal_cost_call_7523", 0 + %"$gasadd_7525" = add i64 %"$gasadd_7524", 1 + %"$gasrem_7526" = load i64, i64* @_gasrem, align 8 + %"$gascmp_7527" = icmp ugt i64 %"$gasadd_7525", %"$gasrem_7526" + br i1 %"$gascmp_7527", label %"$out_of_gas_7528", label %"$have_gas_7529" + +"$out_of_gas_7528": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_7529" + +"$have_gas_7529": ; preds = %"$out_of_gas_7528", %entry + %"$consume_7530" = sub i64 %"$gasrem_7526", %"$gasadd_7525" + store i64 %"$consume_7530", i64* @_gasrem, align 8 + %"$gasrem_7531" = load i64, i64* @_gasrem, align 8 + %"$gascmp_7532" = icmp ugt i64 2, %"$gasrem_7531" + br i1 %"$gascmp_7532", label %"$out_of_gas_7533", label %"$have_gas_7534" + +"$out_of_gas_7533": ; preds = %"$have_gas_7529" + call void @_out_of_gas() + br label %"$have_gas_7534" + +"$have_gas_7534": ; preds = %"$out_of_gas_7533", %"$have_gas_7529" + %"$consume_7535" = sub i64 %"$gasrem_7531", 2 + store i64 %"$consume_7535", i64* @_gasrem, align 8 + %"$maybeRecord_7537" = load %TName_Option_ud-registry.Record*, %TName_Option_ud-registry.Record** %maybeRecord, align 8 + %"$maybeRecord_tag_7538" = getelementptr inbounds %TName_Option_ud-registry.Record, %TName_Option_ud-registry.Record* %"$maybeRecord_7537", i32 0, i32 0 + %"$maybeRecord_tag_7539" = load i8, i8* %"$maybeRecord_tag_7538", align 1 + switch i8 %"$maybeRecord_tag_7539", label %"$empty_default_7540" [ + i8 1, label %"$None_7541" + i8 0, label %"$Some_7543" + ], !dbg !1346 + +"$None_7541": ; preds = %"$have_gas_7534" + %"$maybeRecord_7542" = bitcast %TName_Option_ud-registry.Record* %"$maybeRecord_7537" to %CName_None_ud-registry.Record* + br label %"$matchsucc_7536" + +"$Some_7543": ; preds = %"$have_gas_7534" + %"$maybeRecord_7544" = bitcast %TName_Option_ud-registry.Record* %"$maybeRecord_7537" to %CName_Some_ud-registry.Record* + %"$record_gep_7545" = getelementptr inbounds %CName_Some_ud-registry.Record, %CName_Some_ud-registry.Record* %"$maybeRecord_7544", i32 0, i32 1 + %"$record_load_7546" = load %TName_ud-registry.Record*, %TName_ud-registry.Record** %"$record_gep_7545", align 8 %record = alloca %TName_ud-registry.Record*, align 8 - store %TName_ud-registry.Record* %"$record_load_7420", %TName_ud-registry.Record** %record, align 8 - %"$gasrem_7421" = load i64, i64* @_gasrem, align 8 - %"$gascmp_7422" = icmp ugt i64 1, %"$gasrem_7421" - br i1 %"$gascmp_7422", label %"$out_of_gas_7423", label %"$have_gas_7424" - -"$out_of_gas_7423": ; preds = %"$Some_7417" - call void @_out_of_gas() - br label %"$have_gas_7424" - -"$have_gas_7424": ; preds = %"$out_of_gas_7423", %"$Some_7417" - %"$consume_7425" = sub i64 %"$gasrem_7421", 1 - store i64 %"$consume_7425", i64* @_gasrem, align 8 - %"$record_7427" = load %TName_ud-registry.Record*, %TName_ud-registry.Record** %record, align 8 - %"$record_tag_7428" = getelementptr inbounds %TName_ud-registry.Record, %TName_ud-registry.Record* %"$record_7427", i32 0, i32 0 - %"$record_tag_7429" = load i8, i8* %"$record_tag_7428", align 1 - switch i8 %"$record_tag_7429", label %"$empty_default_7430" [ - i8 0, label %"$ud-registry.Record_7431" - ], !dbg !695 - -"$ud-registry.Record_7431": ; preds = %"$have_gas_7424" - %"$record_7432" = bitcast %TName_ud-registry.Record* %"$record_7427" to %CName_ud-registry.Record* - %"$owner_gep_7433" = getelementptr inbounds %CName_ud-registry.Record, %CName_ud-registry.Record* %"$record_7432", i32 0, i32 1 - %"$owner_load_7434" = load [20 x i8], [20 x i8]* %"$owner_gep_7433", align 1 + store %TName_ud-registry.Record* %"$record_load_7546", %TName_ud-registry.Record** %record, align 8 + %"$gasrem_7547" = load i64, i64* @_gasrem, align 8 + %"$gascmp_7548" = icmp ugt i64 1, %"$gasrem_7547" + br i1 %"$gascmp_7548", label %"$out_of_gas_7549", label %"$have_gas_7550" + +"$out_of_gas_7549": ; preds = %"$Some_7543" + call void @_out_of_gas() + br label %"$have_gas_7550" + +"$have_gas_7550": ; preds = %"$out_of_gas_7549", %"$Some_7543" + %"$consume_7551" = sub i64 %"$gasrem_7547", 1 + store i64 %"$consume_7551", i64* @_gasrem, align 8 + %"$record_7553" = load %TName_ud-registry.Record*, %TName_ud-registry.Record** %record, align 8 + %"$record_tag_7554" = getelementptr inbounds %TName_ud-registry.Record, %TName_ud-registry.Record* %"$record_7553", i32 0, i32 0 + %"$record_tag_7555" = load i8, i8* %"$record_tag_7554", align 1 + switch i8 %"$record_tag_7555", label %"$empty_default_7556" [ + i8 0, label %"$ud-registry.Record_7557" + ], !dbg !1347 + +"$ud-registry.Record_7557": ; preds = %"$have_gas_7550" + %"$record_7558" = bitcast %TName_ud-registry.Record* %"$record_7553" to %CName_ud-registry.Record* + %"$owner_gep_7559" = getelementptr inbounds %CName_ud-registry.Record, %CName_ud-registry.Record* %"$record_7558", i32 0, i32 1 + %"$owner_load_7560" = load [20 x i8], [20 x i8]* %"$owner_gep_7559", align 1 %owner = alloca [20 x i8], align 1 - store [20 x i8] %"$owner_load_7434", [20 x i8]* %owner, align 1 - %"$resolver_gep_7435" = getelementptr inbounds %CName_ud-registry.Record, %CName_ud-registry.Record* %"$record_7432", i32 0, i32 2 - %"$resolver_load_7436" = load [20 x i8], [20 x i8]* %"$resolver_gep_7435", align 1 + store [20 x i8] %"$owner_load_7560", [20 x i8]* %owner, align 1 + %"$resolver_gep_7561" = getelementptr inbounds %CName_ud-registry.Record, %CName_ud-registry.Record* %"$record_7558", i32 0, i32 2 + %"$resolver_load_7562" = load [20 x i8], [20 x i8]* %"$resolver_gep_7561", align 1 %resolver = alloca [20 x i8], align 1 - store [20 x i8] %"$resolver_load_7436", [20 x i8]* %resolver, align 1 - %"$gasrem_7437" = load i64, i64* @_gasrem, align 8 - %"$gascmp_7438" = icmp ugt i64 1, %"$gasrem_7437" - br i1 %"$gascmp_7438", label %"$out_of_gas_7439", label %"$have_gas_7440" + store [20 x i8] %"$resolver_load_7562", [20 x i8]* %resolver, align 1 + %"$gasrem_7563" = load i64, i64* @_gasrem, align 8 + %"$gascmp_7564" = icmp ugt i64 1, %"$gasrem_7563" + br i1 %"$gascmp_7564", label %"$out_of_gas_7565", label %"$have_gas_7566" -"$out_of_gas_7439": ; preds = %"$ud-registry.Record_7431" +"$out_of_gas_7565": ; preds = %"$ud-registry.Record_7557" call void @_out_of_gas() - br label %"$have_gas_7440" + br label %"$have_gas_7566" -"$have_gas_7440": ; preds = %"$out_of_gas_7439", %"$ud-registry.Record_7431" - %"$consume_7441" = sub i64 %"$gasrem_7437", 1 - store i64 %"$consume_7441", i64* @_gasrem, align 8 +"$have_gas_7566": ; preds = %"$out_of_gas_7565", %"$ud-registry.Record_7557" + %"$consume_7567" = sub i64 %"$gasrem_7563", 1 + store i64 %"$consume_7567", i64* @_gasrem, align 8 %isOk = alloca %TName_Bool*, align 8 - %"$gasrem_7442" = load i64, i64* @_gasrem, align 8 - %"$gascmp_7443" = icmp ugt i64 20, %"$gasrem_7442" - br i1 %"$gascmp_7443", label %"$out_of_gas_7444", label %"$have_gas_7445" - -"$out_of_gas_7444": ; preds = %"$have_gas_7440" - call void @_out_of_gas() - br label %"$have_gas_7445" - -"$have_gas_7445": ; preds = %"$out_of_gas_7444", %"$have_gas_7440" - %"$consume_7446" = sub i64 %"$gasrem_7442", 20 - store i64 %"$consume_7446", i64* @_gasrem, align 8 - %"$execptr_load_7447" = load i8*, i8** @_execptr, align 8 - %"$eq_resolver_7448" = alloca [20 x i8], align 1 - %"$resolver_7449" = load [20 x i8], [20 x i8]* %resolver, align 1 - store [20 x i8] %"$resolver_7449", [20 x i8]* %"$eq_resolver_7448", align 1 - %"$$eq_resolver_7448_7450" = bitcast [20 x i8]* %"$eq_resolver_7448" to i8* - %"$eq__sender_7451" = alloca [20 x i8], align 1 - store [20 x i8] %_sender, [20 x i8]* %"$eq__sender_7451", align 1 - %"$$eq__sender_7451_7452" = bitcast [20 x i8]* %"$eq__sender_7451" to i8* - %"$eq_call_7453" = call %TName_Bool* @_eq_ByStrX(i8* %"$execptr_load_7447", i32 20, i8* %"$$eq_resolver_7448_7450", i8* %"$$eq__sender_7451_7452"), !dbg !698 - store %TName_Bool* %"$eq_call_7453", %TName_Bool** %isOk, align 8, !dbg !698 - %"$gasrem_7455" = load i64, i64* @_gasrem, align 8 - %"$gascmp_7456" = icmp ugt i64 2, %"$gasrem_7455" - br i1 %"$gascmp_7456", label %"$out_of_gas_7457", label %"$have_gas_7458" - -"$out_of_gas_7457": ; preds = %"$have_gas_7445" - call void @_out_of_gas() - br label %"$have_gas_7458" - -"$have_gas_7458": ; preds = %"$out_of_gas_7457", %"$have_gas_7445" - %"$consume_7459" = sub i64 %"$gasrem_7455", 2 - store i64 %"$consume_7459", i64* @_gasrem, align 8 - %"$isOk_7461" = load %TName_Bool*, %TName_Bool** %isOk, align 8 - %"$isOk_tag_7462" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$isOk_7461", i32 0, i32 0 - %"$isOk_tag_7463" = load i8, i8* %"$isOk_tag_7462", align 1 - switch i8 %"$isOk_tag_7463", label %"$empty_default_7464" [ - i8 0, label %"$True_7465" - i8 1, label %"$False_7505" - ], !dbg !701 - -"$True_7465": ; preds = %"$have_gas_7458" - %"$isOk_7466" = bitcast %TName_Bool* %"$isOk_7461" to %CName_True* - %"$gasrem_7467" = load i64, i64* @_gasrem, align 8 - %"$gascmp_7468" = icmp ugt i64 1, %"$gasrem_7467" - br i1 %"$gascmp_7468", label %"$out_of_gas_7469", label %"$have_gas_7470" - -"$out_of_gas_7469": ; preds = %"$True_7465" - call void @_out_of_gas() - br label %"$have_gas_7470" - -"$have_gas_7470": ; preds = %"$out_of_gas_7469", %"$True_7465" - %"$consume_7471" = sub i64 %"$gasrem_7467", 1 - store i64 %"$consume_7471", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %isOk, metadata !1350, metadata !DIExpression()), !dbg !1353 + %"$gasrem_7568" = load i64, i64* @_gasrem, align 8 + %"$gascmp_7569" = icmp ugt i64 20, %"$gasrem_7568" + br i1 %"$gascmp_7569", label %"$out_of_gas_7570", label %"$have_gas_7571" + +"$out_of_gas_7570": ; preds = %"$have_gas_7566" + call void @_out_of_gas() + br label %"$have_gas_7571" + +"$have_gas_7571": ; preds = %"$out_of_gas_7570", %"$have_gas_7566" + %"$consume_7572" = sub i64 %"$gasrem_7568", 20 + store i64 %"$consume_7572", i64* @_gasrem, align 8 + %"$execptr_load_7573" = load i8*, i8** @_execptr, align 8 + %"$eq_resolver_7574" = alloca [20 x i8], align 1 + %"$resolver_7575" = load [20 x i8], [20 x i8]* %resolver, align 1 + store [20 x i8] %"$resolver_7575", [20 x i8]* %"$eq_resolver_7574", align 1 + %"$$eq_resolver_7574_7576" = bitcast [20 x i8]* %"$eq_resolver_7574" to i8* + %"$eq__sender_7577" = alloca [20 x i8], align 1 + store [20 x i8] %_sender, [20 x i8]* %"$eq__sender_7577", align 1 + %"$$eq__sender_7577_7578" = bitcast [20 x i8]* %"$eq__sender_7577" to i8* + %"$eq_call_7579" = call %TName_Bool* @_eq_ByStrX(i8* %"$execptr_load_7573", i32 20, i8* %"$$eq_resolver_7574_7576", i8* %"$$eq__sender_7577_7578"), !dbg !1354 + store %TName_Bool* %"$eq_call_7579", %TName_Bool** %isOk, align 8, !dbg !1354 + %"$gasrem_7581" = load i64, i64* @_gasrem, align 8 + %"$gascmp_7582" = icmp ugt i64 2, %"$gasrem_7581" + br i1 %"$gascmp_7582", label %"$out_of_gas_7583", label %"$have_gas_7584" + +"$out_of_gas_7583": ; preds = %"$have_gas_7571" + call void @_out_of_gas() + br label %"$have_gas_7584" + +"$have_gas_7584": ; preds = %"$out_of_gas_7583", %"$have_gas_7571" + %"$consume_7585" = sub i64 %"$gasrem_7581", 2 + store i64 %"$consume_7585", i64* @_gasrem, align 8 + %"$isOk_7587" = load %TName_Bool*, %TName_Bool** %isOk, align 8 + %"$isOk_tag_7588" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$isOk_7587", i32 0, i32 0 + %"$isOk_tag_7589" = load i8, i8* %"$isOk_tag_7588", align 1 + switch i8 %"$isOk_tag_7589", label %"$empty_default_7590" [ + i8 0, label %"$True_7591" + i8 1, label %"$False_7631" + ], !dbg !1355 + +"$True_7591": ; preds = %"$have_gas_7584" + %"$isOk_7592" = bitcast %TName_Bool* %"$isOk_7587" to %CName_True* + %"$gasrem_7593" = load i64, i64* @_gasrem, align 8 + %"$gascmp_7594" = icmp ugt i64 1, %"$gasrem_7593" + br i1 %"$gascmp_7594", label %"$out_of_gas_7595", label %"$have_gas_7596" + +"$out_of_gas_7595": ; preds = %"$True_7591" + call void @_out_of_gas() + br label %"$have_gas_7596" + +"$have_gas_7596": ; preds = %"$out_of_gas_7595", %"$True_7591" + %"$consume_7597" = sub i64 %"$gasrem_7593", 1 + store i64 %"$consume_7597", i64* @_gasrem, align 8 %e = alloca i8*, align 8 - %"$gasrem_7472" = load i64, i64* @_gasrem, align 8 - %"$gascmp_7473" = icmp ugt i64 1, %"$gasrem_7472" - br i1 %"$gascmp_7473", label %"$out_of_gas_7474", label %"$have_gas_7475" + call void @llvm.dbg.declare(metadata i8** %e, metadata !1356, metadata !DIExpression()), !dbg !1359 + %"$gasrem_7598" = load i64, i64* @_gasrem, align 8 + %"$gascmp_7599" = icmp ugt i64 1, %"$gasrem_7598" + br i1 %"$gascmp_7599", label %"$out_of_gas_7600", label %"$have_gas_7601" -"$out_of_gas_7474": ; preds = %"$have_gas_7470" +"$out_of_gas_7600": ; preds = %"$have_gas_7596" call void @_out_of_gas() - br label %"$have_gas_7475" + br label %"$have_gas_7601" -"$have_gas_7475": ; preds = %"$out_of_gas_7474", %"$have_gas_7470" - %"$consume_7476" = sub i64 %"$gasrem_7472", 1 - store i64 %"$consume_7476", i64* @_gasrem, align 8 +"$have_gas_7601": ; preds = %"$out_of_gas_7600", %"$have_gas_7596" + %"$consume_7602" = sub i64 %"$gasrem_7598", 1 + store i64 %"$consume_7602", i64* @_gasrem, align 8 %"$ud-registry.eConfigured_196" = alloca { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* }, align 8 - %"$ud-registry.eConfigured_7477" = 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_7478" = extractvalue { { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, [32 x i8]*)*, i8* } %"$ud-registry.eConfigured_7477", 0 - %"$ud-registry.eConfigured_envptr_7479" = extractvalue { { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, [32 x i8]*)*, i8* } %"$ud-registry.eConfigured_7477", 1 - %"$ud-registry.eConfigured_node_7480" = alloca [32 x i8], align 1 - store [32 x i8] %node, [32 x i8]* %"$ud-registry.eConfigured_node_7480", align 1 - %"$ud-registry.eConfigured_call_7481" = call { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$ud-registry.eConfigured_fptr_7478"(i8* %"$ud-registry.eConfigured_envptr_7479", [32 x i8]* %"$ud-registry.eConfigured_node_7480"), !dbg !702 - store { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$ud-registry.eConfigured_call_7481", { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* }* %"$ud-registry.eConfigured_196", align 8, !dbg !702 + %"$ud-registry.eConfigured_7603" = 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_7604" = extractvalue { { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, [32 x i8]*)*, i8* } %"$ud-registry.eConfigured_7603", 0 + %"$ud-registry.eConfigured_envptr_7605" = extractvalue { { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, [32 x i8]*)*, i8* } %"$ud-registry.eConfigured_7603", 1 + %"$ud-registry.eConfigured_node_7606" = alloca [32 x i8], align 1 + store [32 x i8] %node, [32 x i8]* %"$ud-registry.eConfigured_node_7606", align 1 + %"$ud-registry.eConfigured_call_7607" = call { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$ud-registry.eConfigured_fptr_7604"(i8* %"$ud-registry.eConfigured_envptr_7605", [32 x i8]* %"$ud-registry.eConfigured_node_7606"), !dbg !1360 + store { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$ud-registry.eConfigured_call_7607", { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* }* %"$ud-registry.eConfigured_196", align 8, !dbg !1360 %"$ud-registry.eConfigured_197" = alloca { i8* (i8*, [20 x i8]*)*, i8* }, align 8 - %"$$ud-registry.eConfigured_196_7482" = 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_196", align 8 - %"$$ud-registry.eConfigured_196_fptr_7483" = extractvalue { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.eConfigured_196_7482", 0 - %"$$ud-registry.eConfigured_196_envptr_7484" = extractvalue { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.eConfigured_196_7482", 1 - %"$$ud-registry.eConfigured_196_owner_7485" = alloca [20 x i8], align 1 - %"$owner_7486" = load [20 x i8], [20 x i8]* %owner, align 1 - store [20 x i8] %"$owner_7486", [20 x i8]* %"$$ud-registry.eConfigured_196_owner_7485", align 1 - %"$$ud-registry.eConfigured_196_call_7487" = call { i8* (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.eConfigured_196_fptr_7483"(i8* %"$$ud-registry.eConfigured_196_envptr_7484", [20 x i8]* %"$$ud-registry.eConfigured_196_owner_7485"), !dbg !702 - store { i8* (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.eConfigured_196_call_7487", { i8* (i8*, [20 x i8]*)*, i8* }* %"$ud-registry.eConfigured_197", align 8, !dbg !702 + %"$$ud-registry.eConfigured_196_7608" = 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_196", align 8 + %"$$ud-registry.eConfigured_196_fptr_7609" = extractvalue { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.eConfigured_196_7608", 0 + %"$$ud-registry.eConfigured_196_envptr_7610" = extractvalue { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.eConfigured_196_7608", 1 + %"$$ud-registry.eConfigured_196_owner_7611" = alloca [20 x i8], align 1 + %"$owner_7612" = load [20 x i8], [20 x i8]* %owner, align 1 + store [20 x i8] %"$owner_7612", [20 x i8]* %"$$ud-registry.eConfigured_196_owner_7611", align 1 + %"$$ud-registry.eConfigured_196_call_7613" = call { i8* (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.eConfigured_196_fptr_7609"(i8* %"$$ud-registry.eConfigured_196_envptr_7610", [20 x i8]* %"$$ud-registry.eConfigured_196_owner_7611"), !dbg !1360 + store { i8* (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.eConfigured_196_call_7613", { i8* (i8*, [20 x i8]*)*, i8* }* %"$ud-registry.eConfigured_197", align 8, !dbg !1360 %"$ud-registry.eConfigured_198" = alloca i8*, align 8 - %"$$ud-registry.eConfigured_197_7488" = load { i8* (i8*, [20 x i8]*)*, i8* }, { i8* (i8*, [20 x i8]*)*, i8* }* %"$ud-registry.eConfigured_197", align 8 - %"$$ud-registry.eConfigured_197_fptr_7489" = extractvalue { i8* (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.eConfigured_197_7488", 0 - %"$$ud-registry.eConfigured_197_envptr_7490" = extractvalue { i8* (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.eConfigured_197_7488", 1 - %"$$ud-registry.eConfigured_197_resolver_7491" = alloca [20 x i8], align 1 - %"$resolver_7492" = load [20 x i8], [20 x i8]* %resolver, align 1 - store [20 x i8] %"$resolver_7492", [20 x i8]* %"$$ud-registry.eConfigured_197_resolver_7491", align 1 - %"$$ud-registry.eConfigured_197_call_7493" = call i8* %"$$ud-registry.eConfigured_197_fptr_7489"(i8* %"$$ud-registry.eConfigured_197_envptr_7490", [20 x i8]* %"$$ud-registry.eConfigured_197_resolver_7491"), !dbg !702 - store i8* %"$$ud-registry.eConfigured_197_call_7493", i8** %"$ud-registry.eConfigured_198", align 8, !dbg !702 - %"$$ud-registry.eConfigured_198_7494" = load i8*, i8** %"$ud-registry.eConfigured_198", align 8 - store i8* %"$$ud-registry.eConfigured_198_7494", i8** %e, align 8, !dbg !702 - %"$e_7495" = load i8*, i8** %e, align 8 - %"$_literal_cost_call_7497" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Event_446", i8* %"$e_7495") - %"$gasrem_7498" = load i64, i64* @_gasrem, align 8 - %"$gascmp_7499" = icmp ugt i64 %"$_literal_cost_call_7497", %"$gasrem_7498" - br i1 %"$gascmp_7499", label %"$out_of_gas_7500", label %"$have_gas_7501" - -"$out_of_gas_7500": ; preds = %"$have_gas_7475" - call void @_out_of_gas() - br label %"$have_gas_7501" - -"$have_gas_7501": ; preds = %"$out_of_gas_7500", %"$have_gas_7475" - %"$consume_7502" = sub i64 %"$gasrem_7498", %"$_literal_cost_call_7497" - store i64 %"$consume_7502", i64* @_gasrem, align 8 - %"$execptr_load_7503" = load i8*, i8** @_execptr, align 8 - %"$e_7504" = load i8*, i8** %e, align 8 - call void @_event(i8* %"$execptr_load_7503", %_TyDescrTy_Typ* @"$TyDescr_Event_446", i8* %"$e_7504"), !dbg !705 - br label %"$matchsucc_7460" - -"$False_7505": ; preds = %"$have_gas_7458" - %"$isOk_7506" = bitcast %TName_Bool* %"$isOk_7461" to %CName_False* - br label %"$matchsucc_7460" - -"$empty_default_7464": ; preds = %"$have_gas_7458" - br label %"$matchsucc_7460" - -"$matchsucc_7460": ; preds = %"$False_7505", %"$have_gas_7501", %"$empty_default_7464" - br label %"$matchsucc_7426" - -"$empty_default_7430": ; preds = %"$have_gas_7424" - br label %"$matchsucc_7426" - -"$matchsucc_7426": ; preds = %"$matchsucc_7460", %"$empty_default_7430" - br label %"$matchsucc_7410" - -"$empty_default_7414": ; preds = %"$have_gas_7408" - br label %"$matchsucc_7410" - -"$matchsucc_7410": ; preds = %"$matchsucc_7426", %"$None_7415", %"$empty_default_7414" + call void @llvm.dbg.declare(metadata i8** %"$ud-registry.eConfigured_198", metadata !1361, metadata !DIExpression()), !dbg !1360 + %"$$ud-registry.eConfigured_197_7614" = load { i8* (i8*, [20 x i8]*)*, i8* }, { i8* (i8*, [20 x i8]*)*, i8* }* %"$ud-registry.eConfigured_197", align 8 + %"$$ud-registry.eConfigured_197_fptr_7615" = extractvalue { i8* (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.eConfigured_197_7614", 0 + %"$$ud-registry.eConfigured_197_envptr_7616" = extractvalue { i8* (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.eConfigured_197_7614", 1 + %"$$ud-registry.eConfigured_197_resolver_7617" = alloca [20 x i8], align 1 + %"$resolver_7618" = load [20 x i8], [20 x i8]* %resolver, align 1 + store [20 x i8] %"$resolver_7618", [20 x i8]* %"$$ud-registry.eConfigured_197_resolver_7617", align 1 + %"$$ud-registry.eConfigured_197_call_7619" = call i8* %"$$ud-registry.eConfigured_197_fptr_7615"(i8* %"$$ud-registry.eConfigured_197_envptr_7616", [20 x i8]* %"$$ud-registry.eConfigured_197_resolver_7617"), !dbg !1360 + store i8* %"$$ud-registry.eConfigured_197_call_7619", i8** %"$ud-registry.eConfigured_198", align 8, !dbg !1360 + %"$$ud-registry.eConfigured_198_7620" = load i8*, i8** %"$ud-registry.eConfigured_198", align 8 + store i8* %"$$ud-registry.eConfigured_198_7620", i8** %e, align 8, !dbg !1360 + %"$e_7621" = load i8*, i8** %e, align 8 + %"$_literal_cost_call_7623" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Event_446", i8* %"$e_7621") + %"$gasrem_7624" = load i64, i64* @_gasrem, align 8 + %"$gascmp_7625" = icmp ugt i64 %"$_literal_cost_call_7623", %"$gasrem_7624" + br i1 %"$gascmp_7625", label %"$out_of_gas_7626", label %"$have_gas_7627" + +"$out_of_gas_7626": ; preds = %"$have_gas_7601" + call void @_out_of_gas() + br label %"$have_gas_7627" + +"$have_gas_7627": ; preds = %"$out_of_gas_7626", %"$have_gas_7601" + %"$consume_7628" = sub i64 %"$gasrem_7624", %"$_literal_cost_call_7623" + store i64 %"$consume_7628", i64* @_gasrem, align 8 + %"$execptr_load_7629" = load i8*, i8** @_execptr, align 8 + %"$e_7630" = load i8*, i8** %e, align 8 + call void @_event(i8* %"$execptr_load_7629", %_TyDescrTy_Typ* @"$TyDescr_Event_446", i8* %"$e_7630"), !dbg !1362 + br label %"$matchsucc_7586" + +"$False_7631": ; preds = %"$have_gas_7584" + %"$isOk_7632" = bitcast %TName_Bool* %"$isOk_7587" to %CName_False* + br label %"$matchsucc_7586" + +"$empty_default_7590": ; preds = %"$have_gas_7584" + br label %"$matchsucc_7586" + +"$matchsucc_7586": ; preds = %"$False_7631", %"$have_gas_7627", %"$empty_default_7590" + br label %"$matchsucc_7552" + +"$empty_default_7556": ; preds = %"$have_gas_7550" + br label %"$matchsucc_7552" + +"$matchsucc_7552": ; preds = %"$matchsucc_7586", %"$empty_default_7556" + br label %"$matchsucc_7536" + +"$empty_default_7540": ; preds = %"$have_gas_7534" + br label %"$matchsucc_7536" + +"$matchsucc_7536": ; preds = %"$matchsucc_7552", %"$None_7541", %"$empty_default_7540" ret void } -define void @onResolverConfigured(i8* %0) !dbg !706 { +define void @onResolverConfigured(i8* %0) !dbg !1363 { entry: - %"$_amount_7508" = getelementptr i8, i8* %0, i32 0 - %"$_amount_7509" = bitcast i8* %"$_amount_7508" to %Uint128* - %_amount = load %Uint128, %Uint128* %"$_amount_7509", align 8 - %"$_origin_7510" = getelementptr i8, i8* %0, i32 16 - %"$_origin_7511" = bitcast i8* %"$_origin_7510" to [20 x i8]* - %"$_sender_7512" = getelementptr i8, i8* %0, i32 36 - %"$_sender_7513" = bitcast i8* %"$_sender_7512" to [20 x i8]* - %"$node_7514" = getelementptr i8, i8* %0, i32 56 - %"$node_7515" = bitcast i8* %"$node_7514" to [32 x i8]* - call void @"$onResolverConfigured_7385"(%Uint128 %_amount, [20 x i8]* %"$_origin_7511", [20 x i8]* %"$_sender_7513", [32 x i8]* %"$node_7515"), !dbg !707 + %"$_amount_7638" = getelementptr i8, i8* %0, i32 0 + %"$_amount_7639" = bitcast i8* %"$_amount_7638" to %Uint128* + %_amount = load %Uint128, %Uint128* %"$_amount_7639", align 8 + %"$_origin_7640" = getelementptr i8, i8* %0, i32 16 + %"$_origin_7641" = bitcast i8* %"$_origin_7640" to [20 x i8]* + %"$_sender_7642" = getelementptr i8, i8* %0, i32 36 + %"$_sender_7643" = bitcast i8* %"$_sender_7642" to [20 x i8]* + %"$node_7644" = getelementptr i8, i8* %0, i32 56 + %"$node_7645" = bitcast i8* %"$node_7644" to [32 x i8]* + call void @"$onResolverConfigured_7511"(%Uint128 %_amount, [20 x i8]* %"$_origin_7641", [20 x i8]* %"$_sender_7643", [32 x i8]* %"$node_7645"), !dbg !1364 ret void } +attributes #0 = { nocallback nofree nosync nounwind readnone speculatable willreturn } + !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) +!1 = distinct !DICompileUnit(language: DW_LANG_C89, file: !2, producer: "Scilla Compiler", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false) !2 = !DIFile(filename: "ud-registry.scilla", directory: "codegen/contr") -!3 = !{} -!4 = distinct !DISubprogram(name: "$fundef_261", linkageName: "$fundef_261", scope: !2, file: !2, line: 100, type: !5, scopeLine: 100, 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: 100, column: 19, scope: !4) -!9 = !DILocation(line: 102, column: 7, scope: !4) -!10 = !DILocation(line: 103, column: 17, scope: !11) -!11 = distinct !DILexicalBlock(scope: !12, file: !2, line: 103, column: 9) -!12 = distinct !DILexicalBlock(scope: !4, file: !2, line: 102, column: 7) -!13 = !DILocation(line: 104, column: 26, scope: !14) -!14 = distinct !DILexicalBlock(scope: !12, file: !2, line: 104, column: 9) -!15 = !DILocation(line: 106, column: 22, scope: !4) -!16 = !DILocation(line: 107, column: 15, scope: !17) -!17 = distinct !DILexicalBlock(scope: !18, file: !2, line: 107, column: 7) -!18 = distinct !DILexicalBlock(scope: !4, file: !2, line: 106, column: 22) -!19 = !DILocation(line: 108, column: 25, scope: !20) -!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_259", linkageName: "$fundef_259", 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_257", linkageName: "$fundef_257", 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_255", linkageName: "$fundef_255", 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_253", linkageName: "$fundef_253", scope: !30, file: !30, line: 15, type: !5, scopeLine: 15, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!30 = !DIFile(filename: "BoolUtils.scillib", directory: "../src/stdlib") -!31 = !DILocation(line: 15, column: 5, scope: !29) -!32 = !DILocation(line: 16, column: 16, scope: !33) -!33 = distinct !DILexicalBlock(scope: !34, file: !30, line: 16, column: 7) -!34 = distinct !DILexicalBlock(scope: !29, file: !30, line: 15, column: 5) -!35 = !DILocation(line: 17, column: 16, scope: !36) -!36 = distinct !DILexicalBlock(scope: !34, file: !30, line: 17, column: 7) -!37 = distinct !DISubprogram(name: "$fundef_251", linkageName: "$fundef_251", scope: !30, file: !30, line: 14, type: !5, scopeLine: 14, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!38 = !DILocation(line: 15, column: 5, scope: !37) -!39 = distinct !DISubprogram(name: "$fundef_249", linkageName: "$fundef_249", scope: !2, file: !2, line: 22, type: !5, scopeLine: 22, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!40 = !DILocation(line: 22, column: 27, scope: !39) -!41 = !DILocation(line: 22, column: 26, scope: !39) -!42 = !DILocation(line: 23, column: 7, scope: !39) -!43 = distinct !DISubprogram(name: "$fundef_247", linkageName: "$fundef_247", scope: !2, file: !2, line: 21, type: !5, scopeLine: 21, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!44 = !DILocation(line: 22, column: 5, scope: !43) -!45 = distinct !DISubprogram(name: "$fundef_245", linkageName: "$fundef_245", scope: !46, file: !46, line: 252, type: !5, scopeLine: 252, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!46 = !DIFile(filename: "ListUtils.scillib", directory: "../src/stdlib") -!47 = !DILocation(line: 252, column: 19, scope: !45) -!48 = !DILocation(line: 253, column: 15, scope: !45) -!49 = !DILocation(line: 253, column: 14, scope: !45) -!50 = !DILocation(line: 254, column: 5, scope: !45) -!51 = distinct !DISubprogram(name: "$fundef_243", linkageName: "$fundef_243", scope: !46, file: !46, line: 251, type: !5, scopeLine: 251, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!52 = !DILocation(line: 252, column: 5, scope: !51) -!53 = distinct !DISubprogram(name: "$fundef_241", linkageName: "$fundef_241", scope: !46, file: !46, line: 251, type: !5, scopeLine: 251, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!54 = !DILocation(line: 251, column: 33, scope: !53) -!55 = distinct !DISubprogram(name: "$fundef_239", linkageName: "$fundef_239", scope: !46, file: !46, line: 241, type: !5, scopeLine: 241, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!56 = !DILocation(line: 241, column: 17, scope: !55) -!57 = !DILocation(line: 241, column: 16, scope: !55) -!58 = !DILocation(line: 242, column: 18, scope: !55) -!59 = !DILocation(line: 243, column: 5, scope: !55) -!60 = !DILocation(line: 244, column: 17, scope: !61) -!61 = distinct !DILexicalBlock(scope: !62, file: !46, line: 244, column: 7) -!62 = distinct !DILexicalBlock(scope: !55, file: !46, line: 243, column: 5) -!63 = !DILocation(line: 245, column: 15, scope: !64) -!64 = distinct !DILexicalBlock(scope: !62, file: !46, line: 245, column: 7) -!65 = distinct !DISubprogram(name: "$fundef_237", linkageName: "$fundef_237", scope: !46, file: !46, line: 240, type: !5, scopeLine: 240, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!66 = !DILocation(line: 241, column: 5, scope: !65) -!67 = distinct !DISubprogram(name: "$fundef_235", linkageName: "$fundef_235", scope: !46, file: !46, line: 240, type: !5, scopeLine: 240, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!68 = !DILocation(line: 240, column: 27, scope: !67) -!69 = distinct !DISubprogram(name: "$fundef_233", linkageName: "$fundef_233", scope: !46, file: !46, line: 230, type: !5, scopeLine: 230, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!70 = !DILocation(line: 230, column: 19, scope: !69) -!71 = !DILocation(line: 231, column: 9, scope: !69) -!72 = !DILocation(line: 232, column: 19, scope: !73) -!73 = distinct !DILexicalBlock(scope: !74, file: !46, line: 232, column: 11) -!74 = distinct !DILexicalBlock(scope: !69, file: !46, line: 231, column: 9) -!75 = !DILocation(line: 233, column: 20, scope: !76) -!76 = distinct !DILexicalBlock(scope: !74, file: !46, line: 233, column: 11) -!77 = distinct !DISubprogram(name: "$fundef_231", linkageName: "$fundef_231", scope: !46, file: !46, line: 229, type: !5, scopeLine: 229, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!78 = !DILocation(line: 230, column: 9, scope: !77) -!79 = distinct !DISubprogram(name: "$fundef_229", linkageName: "$fundef_229", scope: !46, file: !46, line: 228, type: !5, scopeLine: 228, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!80 = !DILocation(line: 229, column: 7, scope: !79) -!81 = distinct !DISubprogram(name: "$fundef_227", linkageName: "$fundef_227", scope: !46, file: !46, line: 224, type: !5, scopeLine: 224, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!82 = !DILocation(line: 224, column: 18, scope: !81) -!83 = !DILocation(line: 224, column: 17, scope: !81) -!84 = !DILocation(line: 225, column: 16, scope: !81) -!85 = !DILocation(line: 228, column: 35, scope: !81) -!86 = !DILocation(line: 235, column: 5, scope: !81) -!87 = distinct !DISubprogram(name: "$fundef_225", linkageName: "$fundef_225", scope: !46, file: !46, line: 224, type: !5, scopeLine: 224, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!88 = !DILocation(line: 224, column: 5, scope: !87) -!89 = distinct !DISubprogram(name: "$fundef_223", linkageName: "$fundef_223", scope: !90, file: !90, line: 1, type: !5, scopeLine: 1, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!90 = !DIFile(filename: "Prelude", directory: ".") -!91 = !DILocation(line: 1, column: 94, scope: !89) -!92 = distinct !DISubprogram(name: "$fundef_221", linkageName: "$fundef_221", scope: !90, file: !90, line: 1, type: !5, scopeLine: 1, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!93 = !DILocation(line: 1, column: 37, scope: !92) -!94 = !DILocation(line: 1, column: 94, scope: !95) -!95 = distinct !DILexicalBlock(scope: !96, file: !90, line: 1, column: 52) -!96 = distinct !DILexicalBlock(scope: !92, file: !90, line: 1, column: 37) -!97 = !DILocation(line: 1, column: 106, scope: !95) -!98 = !DILocation(line: 1, column: 129, scope: !99) -!99 = distinct !DILexicalBlock(scope: !96, file: !90, line: 1, column: 122) -!100 = distinct !DISubprogram(name: "$fundef_219", linkageName: "$fundef_219", scope: !90, file: !90, line: 1, type: !5, scopeLine: 1, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!101 = !DILocation(line: 1, column: 37, scope: !100) -!102 = distinct !DISubprogram(name: "$fundef_217", linkageName: "$fundef_217", scope: !90, file: !90, line: 1, type: !5, scopeLine: 1, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!103 = !DILocation(line: 1, column: 17, scope: !102) -!104 = distinct !DISubprogram(name: "$fundef_215", linkageName: "$fundef_215", scope: !90, file: !90, line: 1, type: !5, scopeLine: 1, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!105 = !DILocation(line: 1, column: 17, scope: !104) -!106 = distinct !DISubprogram(name: "$fundef_213", linkageName: "$fundef_213", scope: !90, file: !90, line: 1, type: !5, scopeLine: 1, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!107 = !DILocation(line: 1, column: 17, scope: !106) -!108 = distinct !DISubprogram(name: "$fundef_211", linkageName: "$fundef_211", scope: !2, file: !2, line: 18, type: !5, scopeLine: 18, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!109 = !DILocation(line: 18, column: 5, scope: !108) -!110 = distinct !DISubprogram(name: "$fundef_209", linkageName: "$fundef_209", scope: !2, file: !2, line: 17, type: !5, scopeLine: 17, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!111 = !DILocation(line: 18, column: 5, scope: !110) -!112 = distinct !DISubprogram(name: "$fundef_265", linkageName: "$fundef_265", scope: !2, file: !2, line: 92, type: !5, scopeLine: 92, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!113 = !DILocation(line: 92, column: 21, scope: !112) -!114 = !DILocation(line: 93, column: 21, scope: !112) -!115 = !DILocation(line: 94, column: 7, scope: !112) -!116 = distinct !DISubprogram(name: "$fundef_263", linkageName: "$fundef_263", scope: !2, file: !2, line: 91, type: !5, scopeLine: 91, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!117 = !DILocation(line: 92, column: 5, scope: !116) -!118 = distinct !DISubprogram(name: "$fundef_267", linkageName: "$fundef_267", scope: !2, file: !2, line: 82, type: !5, scopeLine: 82, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!119 = !DILocation(line: 82, column: 5, scope: !118) -!120 = !DILocation(line: 83, column: 15, scope: !121) -!121 = distinct !DILexicalBlock(scope: !122, file: !2, line: 83, column: 7) -!122 = distinct !DILexicalBlock(scope: !118, file: !2, line: 82, column: 5) -!123 = !DILocation(line: 85, column: 7, scope: !124) -!124 = distinct !DILexicalBlock(scope: !122, file: !2, line: 84, column: 7) -!125 = !DILocation(line: 86, column: 34, scope: !126) -!126 = distinct !DILexicalBlock(scope: !127, file: !2, line: 86, column: 9) -!127 = distinct !DILexicalBlock(scope: !124, file: !2, line: 85, column: 7) -!128 = distinct !DISubprogram(name: "$fundef_269", linkageName: "$fundef_269", scope: !2, file: !2, line: 77, type: !5, scopeLine: 77, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!129 = !DILocation(line: 77, column: 5, scope: !128) -!130 = distinct !DISubprogram(name: "$fundef_275", linkageName: "$fundef_275", scope: !2, file: !2, line: 74, type: !5, scopeLine: 74, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!131 = !DILocation(line: 74, column: 5, scope: !130) -!132 = distinct !DISubprogram(name: "$fundef_273", linkageName: "$fundef_273", scope: !2, file: !2, line: 73, type: !5, scopeLine: 73, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!133 = !DILocation(line: 74, column: 5, scope: !132) -!134 = distinct !DISubprogram(name: "$fundef_271", linkageName: "$fundef_271", scope: !2, file: !2, line: 72, type: !5, scopeLine: 72, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!135 = !DILocation(line: 73, column: 3, scope: !134) -!136 = distinct !DISubprogram(name: "$fundef_279", linkageName: "$fundef_279", scope: !2, file: !2, line: 69, type: !5, scopeLine: 69, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!137 = !DILocation(line: 69, column: 5, scope: !136) -!138 = distinct !DISubprogram(name: "$fundef_277", linkageName: "$fundef_277", scope: !2, file: !2, line: 68, type: !5, scopeLine: 68, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!139 = !DILocation(line: 69, column: 5, scope: !138) -!140 = distinct !DISubprogram(name: "$fundef_281", linkageName: "$fundef_281", scope: !2, file: !2, line: 65, type: !5, scopeLine: 65, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!141 = !DILocation(line: 65, column: 5, scope: !140) -!142 = distinct !DISubprogram(name: "$fundef_283", linkageName: "$fundef_283", scope: !2, file: !2, line: 62, type: !5, scopeLine: 62, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!143 = !DILocation(line: 62, column: 5, scope: !142) -!144 = distinct !DISubprogram(name: "$fundef_289", linkageName: "$fundef_289", scope: !2, file: !2, line: 59, type: !5, scopeLine: 59, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!145 = !DILocation(line: 59, column: 5, scope: !144) -!146 = distinct !DISubprogram(name: "$fundef_287", linkageName: "$fundef_287", scope: !2, file: !2, line: 58, type: !5, scopeLine: 58, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!147 = !DILocation(line: 59, column: 5, scope: !146) -!148 = distinct !DISubprogram(name: "$fundef_285", linkageName: "$fundef_285", scope: !2, file: !2, line: 57, type: !5, scopeLine: 57, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!149 = !DILocation(line: 58, column: 3, scope: !148) -!150 = distinct !DISubprogram(name: "$fundef_293", linkageName: "$fundef_293", scope: !2, file: !2, line: 54, type: !5, scopeLine: 54, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!151 = !DILocation(line: 54, column: 5, scope: !150) -!152 = distinct !DISubprogram(name: "$fundef_291", linkageName: "$fundef_291", scope: !2, file: !2, line: 53, type: !5, scopeLine: 53, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!153 = !DILocation(line: 54, column: 5, scope: !152) -!154 = distinct !DISubprogram(name: "$fundef_297", linkageName: "$fundef_297", scope: !2, file: !2, line: 39, type: !5, scopeLine: 39, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!155 = !DILocation(line: 39, column: 5, scope: !154) -!156 = !DILocation(line: 41, column: 7, scope: !157) -!157 = distinct !DILexicalBlock(scope: !158, file: !2, line: 40, column: 7) -!158 = distinct !DILexicalBlock(scope: !154, file: !2, line: 39, column: 5) -!159 = !DILocation(line: 42, column: 17, scope: !160) -!160 = distinct !DILexicalBlock(scope: !161, file: !2, line: 42, column: 9) -!161 = distinct !DILexicalBlock(scope: !157, file: !2, line: 41, column: 7) -!162 = !DILocation(line: 43, column: 18, scope: !163) -!163 = distinct !DILexicalBlock(scope: !161, file: !2, line: 43, column: 9) -!164 = !DILocation(line: 46, column: 7, scope: !165) -!165 = distinct !DILexicalBlock(scope: !158, file: !2, line: 45, column: 7) -!166 = !DILocation(line: 47, column: 17, scope: !167) -!167 = distinct !DILexicalBlock(scope: !168, file: !2, line: 47, column: 9) -!168 = distinct !DILexicalBlock(scope: !165, file: !2, line: 46, column: 7) -!169 = !DILocation(line: 48, column: 18, scope: !170) -!170 = distinct !DILexicalBlock(scope: !168, file: !2, line: 48, column: 9) -!171 = distinct !DISubprogram(name: "$fundef_295", linkageName: "$fundef_295", scope: !2, file: !2, line: 38, type: !5, scopeLine: 38, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!172 = !DILocation(line: 39, column: 5, scope: !171) -!173 = distinct !DISubprogram(name: "$fundef_323", linkageName: "$fundef_323", scope: !2, file: !2, line: 33, type: !5, scopeLine: 33, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!174 = !DILocation(line: 33, column: 15, scope: !173) -!175 = !DILocation(line: 34, column: 8, scope: !173) -!176 = distinct !DISubprogram(name: "$fundef_321", linkageName: "$fundef_321", scope: !2, file: !2, line: 31, type: !5, scopeLine: 31, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!177 = !DILocation(line: 31, column: 30, scope: !176) -!178 = !DILocation(line: 31, column: 29, scope: !176) -!179 = !DILocation(line: 33, column: 7, scope: !176) -!180 = !DILocation(line: 35, column: 7, scope: !176) -!181 = distinct !DISubprogram(name: "$fundef_319", linkageName: "$fundef_319", scope: !2, file: !2, line: 30, type: !5, scopeLine: 30, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!182 = !DILocation(line: 31, column: 5, scope: !181) -!183 = distinct !DISubprogram(name: "$fundef_317", linkageName: "$fundef_317", scope: !30, file: !30, line: 22, type: !5, scopeLine: 22, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!184 = !DILocation(line: 22, column: 5, scope: !183) -!185 = !DILocation(line: 23, column: 15, scope: !186) -!186 = distinct !DILexicalBlock(scope: !187, file: !30, line: 23, column: 7) -!187 = distinct !DILexicalBlock(scope: !183, file: !30, line: 22, column: 5) -!188 = !DILocation(line: 24, column: 16, scope: !189) -!189 = distinct !DILexicalBlock(scope: !187, file: !30, line: 24, column: 7) -!190 = distinct !DISubprogram(name: "$fundef_315", linkageName: "$fundef_315", scope: !46, file: !46, line: 40, type: !5, scopeLine: 40, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!191 = !DILocation(line: 40, column: 16, scope: !190) -!192 = !DILocation(line: 41, column: 7, scope: !190) -!193 = !DILocation(line: 42, column: 17, scope: !194) -!194 = distinct !DILexicalBlock(scope: !195, file: !46, line: 42, column: 9) -!195 = distinct !DILexicalBlock(scope: !190, file: !46, line: 41, column: 7) -!196 = !DILocation(line: 43, column: 18, scope: !197) -!197 = distinct !DILexicalBlock(scope: !195, file: !46, line: 43, column: 9) -!198 = distinct !DISubprogram(name: "$fundef_313", linkageName: "$fundef_313", scope: !46, file: !46, line: 39, type: !5, scopeLine: 39, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!199 = !DILocation(line: 40, column: 7, scope: !198) -!200 = distinct !DISubprogram(name: "$fundef_311", linkageName: "$fundef_311", scope: !46, file: !46, line: 38, type: !5, scopeLine: 38, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!201 = !DILocation(line: 38, column: 18, scope: !200) -!202 = !DILocation(line: 38, column: 17, scope: !200) -!203 = !DILocation(line: 39, column: 32, scope: !200) -!204 = !DILocation(line: 45, column: 16, scope: !200) -!205 = !DILocation(line: 46, column: 5, scope: !200) -!206 = distinct !DISubprogram(name: "$fundef_309", linkageName: "$fundef_309", scope: !46, file: !46, line: 38, type: !5, scopeLine: 38, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!207 = !DILocation(line: 38, column: 5, scope: !206) -!208 = distinct !DISubprogram(name: "$fundef_307", linkageName: "$fundef_307", scope: !90, file: !90, 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: 74, scope: !211) -!211 = distinct !DILexicalBlock(scope: !212, file: !90, line: 1, column: 52) -!212 = distinct !DILexicalBlock(scope: !208, file: !90, line: 1, column: 37) -!213 = !DILocation(line: 1, column: 83, scope: !211) -!214 = !DILocation(line: 1, column: 100, scope: !215) -!215 = distinct !DILexicalBlock(scope: !212, file: !90, line: 1, column: 93) -!216 = distinct !DISubprogram(name: "$fundef_305", linkageName: "$fundef_305", scope: !90, file: !90, 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_303", linkageName: "$fundef_303", scope: !90, file: !90, 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_301", linkageName: "$fundef_301", scope: !90, file: !90, 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_299", linkageName: "$fundef_299", scope: !90, file: !90, 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_371", linkageName: "$fundef_371", scope: !2, file: !2, line: 27, type: !5, scopeLine: 27, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!225 = !DILocation(line: 27, column: 13, scope: !224) -!226 = !DILocation(line: 27, column: 44, scope: !224) -!227 = distinct !DISubprogram(name: "$fundef_369", linkageName: "$fundef_369", scope: !2, file: !2, line: 26, type: !5, scopeLine: 26, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!228 = !DILocation(line: 27, column: 5, scope: !227) -!229 = distinct !DISubprogram(name: "$fundef_367", linkageName: "$fundef_367", scope: !30, file: !30, line: 22, type: !5, scopeLine: 22, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!230 = !DILocation(line: 22, column: 5, scope: !229) -!231 = !DILocation(line: 23, column: 15, scope: !232) -!232 = distinct !DILexicalBlock(scope: !233, file: !30, line: 23, column: 7) -!233 = distinct !DILexicalBlock(scope: !229, file: !30, line: 22, column: 5) -!234 = !DILocation(line: 24, column: 16, scope: !235) -!235 = distinct !DILexicalBlock(scope: !233, file: !30, line: 24, column: 7) -!236 = distinct !DISubprogram(name: "$fundef_365", linkageName: "$fundef_365", scope: !2, file: !2, line: 22, type: !5, scopeLine: 22, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!237 = !DILocation(line: 22, column: 27, scope: !236) -!238 = !DILocation(line: 22, column: 26, scope: !236) -!239 = !DILocation(line: 23, column: 7, scope: !236) -!240 = distinct !DISubprogram(name: "$fundef_363", linkageName: "$fundef_363", scope: !2, file: !2, line: 21, type: !5, scopeLine: 21, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!241 = !DILocation(line: 22, column: 5, scope: !240) -!242 = distinct !DISubprogram(name: "$fundef_361", linkageName: "$fundef_361", scope: !46, file: !46, line: 252, type: !5, scopeLine: 252, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!243 = !DILocation(line: 252, column: 19, scope: !242) -!244 = !DILocation(line: 253, column: 15, scope: !242) -!245 = !DILocation(line: 253, column: 14, scope: !242) -!246 = !DILocation(line: 254, column: 5, scope: !242) -!247 = distinct !DISubprogram(name: "$fundef_359", linkageName: "$fundef_359", scope: !46, file: !46, line: 251, type: !5, scopeLine: 251, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!248 = !DILocation(line: 252, column: 5, scope: !247) -!249 = distinct !DISubprogram(name: "$fundef_357", linkageName: "$fundef_357", scope: !46, file: !46, line: 251, type: !5, scopeLine: 251, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!250 = !DILocation(line: 251, column: 33, scope: !249) -!251 = distinct !DISubprogram(name: "$fundef_355", linkageName: "$fundef_355", scope: !46, file: !46, line: 241, type: !5, scopeLine: 241, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!252 = !DILocation(line: 241, column: 17, scope: !251) -!253 = !DILocation(line: 241, column: 16, scope: !251) -!254 = !DILocation(line: 242, column: 18, scope: !251) -!255 = !DILocation(line: 243, column: 5, scope: !251) -!256 = !DILocation(line: 244, column: 17, scope: !257) -!257 = distinct !DILexicalBlock(scope: !258, file: !46, line: 244, column: 7) -!258 = distinct !DILexicalBlock(scope: !251, file: !46, line: 243, column: 5) -!259 = !DILocation(line: 245, column: 15, scope: !260) -!260 = distinct !DILexicalBlock(scope: !258, file: !46, line: 245, column: 7) -!261 = distinct !DISubprogram(name: "$fundef_353", linkageName: "$fundef_353", scope: !46, file: !46, line: 240, type: !5, scopeLine: 240, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!262 = !DILocation(line: 241, column: 5, scope: !261) -!263 = distinct !DISubprogram(name: "$fundef_351", linkageName: "$fundef_351", scope: !46, file: !46, line: 240, type: !5, scopeLine: 240, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!264 = !DILocation(line: 240, column: 27, scope: !263) -!265 = distinct !DISubprogram(name: "$fundef_349", linkageName: "$fundef_349", scope: !46, file: !46, line: 230, type: !5, scopeLine: 230, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!266 = !DILocation(line: 230, column: 19, scope: !265) -!267 = !DILocation(line: 231, column: 9, scope: !265) -!268 = !DILocation(line: 232, column: 19, scope: !269) -!269 = distinct !DILexicalBlock(scope: !270, file: !46, line: 232, column: 11) -!270 = distinct !DILexicalBlock(scope: !265, file: !46, line: 231, column: 9) -!271 = !DILocation(line: 233, column: 20, scope: !272) -!272 = distinct !DILexicalBlock(scope: !270, file: !46, line: 233, column: 11) -!273 = distinct !DISubprogram(name: "$fundef_347", linkageName: "$fundef_347", scope: !46, file: !46, line: 229, type: !5, scopeLine: 229, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!274 = !DILocation(line: 230, column: 9, scope: !273) -!275 = distinct !DISubprogram(name: "$fundef_345", linkageName: "$fundef_345", scope: !46, file: !46, line: 228, type: !5, scopeLine: 228, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!276 = !DILocation(line: 229, column: 7, scope: !275) -!277 = distinct !DISubprogram(name: "$fundef_343", linkageName: "$fundef_343", scope: !46, file: !46, line: 224, type: !5, scopeLine: 224, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!278 = !DILocation(line: 224, column: 18, scope: !277) -!279 = !DILocation(line: 224, column: 17, scope: !277) -!280 = !DILocation(line: 225, column: 16, scope: !277) -!281 = !DILocation(line: 228, column: 35, scope: !277) -!282 = !DILocation(line: 235, column: 5, scope: !277) -!283 = distinct !DISubprogram(name: "$fundef_341", linkageName: "$fundef_341", scope: !46, file: !46, line: 224, type: !5, scopeLine: 224, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!284 = !DILocation(line: 224, column: 5, scope: !283) -!285 = distinct !DISubprogram(name: "$fundef_339", linkageName: "$fundef_339", scope: !90, file: !90, line: 1, type: !5, scopeLine: 1, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!286 = !DILocation(line: 1, column: 94, scope: !285) -!287 = distinct !DISubprogram(name: "$fundef_337", linkageName: "$fundef_337", scope: !90, file: !90, line: 1, type: !5, scopeLine: 1, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!288 = !DILocation(line: 1, column: 37, scope: !287) -!289 = !DILocation(line: 1, column: 94, scope: !290) -!290 = distinct !DILexicalBlock(scope: !291, file: !90, line: 1, column: 52) -!291 = distinct !DILexicalBlock(scope: !287, file: !90, line: 1, column: 37) -!292 = !DILocation(line: 1, column: 106, scope: !290) -!293 = !DILocation(line: 1, column: 129, scope: !294) -!294 = distinct !DILexicalBlock(scope: !291, file: !90, line: 1, column: 122) -!295 = distinct !DISubprogram(name: "$fundef_335", linkageName: "$fundef_335", scope: !90, file: !90, line: 1, type: !5, scopeLine: 1, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!296 = !DILocation(line: 1, column: 37, scope: !295) -!297 = distinct !DISubprogram(name: "$fundef_333", linkageName: "$fundef_333", scope: !90, file: !90, line: 1, type: !5, scopeLine: 1, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!298 = !DILocation(line: 1, column: 17, scope: !297) -!299 = distinct !DISubprogram(name: "$fundef_331", linkageName: "$fundef_331", scope: !90, file: !90, line: 1, type: !5, scopeLine: 1, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!300 = !DILocation(line: 1, column: 17, scope: !299) -!301 = distinct !DISubprogram(name: "$fundef_329", linkageName: "$fundef_329", scope: !90, file: !90, line: 1, type: !5, scopeLine: 1, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!302 = !DILocation(line: 1, column: 17, scope: !301) -!303 = distinct !DISubprogram(name: "$fundef_327", linkageName: "$fundef_327", scope: !2, file: !2, line: 18, type: !5, scopeLine: 18, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!304 = !DILocation(line: 18, column: 5, scope: !303) -!305 = distinct !DISubprogram(name: "$fundef_325", linkageName: "$fundef_325", scope: !2, file: !2, line: 17, type: !5, scopeLine: 17, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!306 = !DILocation(line: 18, column: 5, scope: !305) -!307 = distinct !DISubprogram(name: "$fundef_413", linkageName: "$fundef_413", scope: !2, file: !2, line: 22, type: !5, scopeLine: 22, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!308 = !DILocation(line: 22, column: 27, scope: !307) -!309 = !DILocation(line: 22, column: 26, scope: !307) -!310 = !DILocation(line: 23, column: 7, scope: !307) -!311 = distinct !DISubprogram(name: "$fundef_411", linkageName: "$fundef_411", scope: !2, file: !2, line: 21, type: !5, scopeLine: 21, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!312 = !DILocation(line: 22, column: 5, scope: !311) -!313 = distinct !DISubprogram(name: "$fundef_409", linkageName: "$fundef_409", scope: !46, file: !46, line: 252, type: !5, scopeLine: 252, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!314 = !DILocation(line: 252, column: 19, scope: !313) -!315 = !DILocation(line: 253, column: 15, scope: !313) -!316 = !DILocation(line: 253, column: 14, scope: !313) -!317 = !DILocation(line: 254, column: 5, scope: !313) -!318 = distinct !DISubprogram(name: "$fundef_407", linkageName: "$fundef_407", scope: !46, file: !46, line: 251, type: !5, scopeLine: 251, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!319 = !DILocation(line: 252, column: 5, scope: !318) -!320 = distinct !DISubprogram(name: "$fundef_405", linkageName: "$fundef_405", scope: !46, file: !46, line: 251, type: !5, scopeLine: 251, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!321 = !DILocation(line: 251, column: 33, scope: !320) -!322 = distinct !DISubprogram(name: "$fundef_403", linkageName: "$fundef_403", scope: !46, file: !46, line: 241, type: !5, scopeLine: 241, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!323 = !DILocation(line: 241, column: 17, scope: !322) -!324 = !DILocation(line: 241, column: 16, scope: !322) -!325 = !DILocation(line: 242, column: 18, scope: !322) -!326 = !DILocation(line: 243, column: 5, scope: !322) -!327 = !DILocation(line: 244, column: 17, scope: !328) -!328 = distinct !DILexicalBlock(scope: !329, file: !46, line: 244, column: 7) -!329 = distinct !DILexicalBlock(scope: !322, file: !46, line: 243, column: 5) -!330 = !DILocation(line: 245, column: 15, scope: !331) -!331 = distinct !DILexicalBlock(scope: !329, file: !46, line: 245, column: 7) -!332 = distinct !DISubprogram(name: "$fundef_401", linkageName: "$fundef_401", scope: !46, file: !46, line: 240, type: !5, scopeLine: 240, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!333 = !DILocation(line: 241, column: 5, scope: !332) -!334 = distinct !DISubprogram(name: "$fundef_399", linkageName: "$fundef_399", scope: !46, file: !46, line: 240, type: !5, scopeLine: 240, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!335 = !DILocation(line: 240, column: 27, scope: !334) -!336 = distinct !DISubprogram(name: "$fundef_397", linkageName: "$fundef_397", scope: !46, file: !46, line: 230, type: !5, scopeLine: 230, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!337 = !DILocation(line: 230, column: 19, scope: !336) -!338 = !DILocation(line: 231, column: 9, scope: !336) -!339 = !DILocation(line: 232, column: 19, scope: !340) -!340 = distinct !DILexicalBlock(scope: !341, file: !46, line: 232, column: 11) -!341 = distinct !DILexicalBlock(scope: !336, file: !46, line: 231, column: 9) -!342 = !DILocation(line: 233, column: 20, scope: !343) -!343 = distinct !DILexicalBlock(scope: !341, file: !46, line: 233, column: 11) -!344 = distinct !DISubprogram(name: "$fundef_395", linkageName: "$fundef_395", scope: !46, file: !46, line: 229, type: !5, scopeLine: 229, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!345 = !DILocation(line: 230, column: 9, scope: !344) -!346 = distinct !DISubprogram(name: "$fundef_393", linkageName: "$fundef_393", scope: !46, file: !46, line: 228, type: !5, scopeLine: 228, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!347 = !DILocation(line: 229, column: 7, scope: !346) -!348 = distinct !DISubprogram(name: "$fundef_391", linkageName: "$fundef_391", scope: !46, file: !46, line: 224, type: !5, scopeLine: 224, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!349 = !DILocation(line: 224, column: 18, scope: !348) -!350 = !DILocation(line: 224, column: 17, scope: !348) -!351 = !DILocation(line: 225, column: 16, scope: !348) -!352 = !DILocation(line: 228, column: 35, scope: !348) -!353 = !DILocation(line: 235, column: 5, scope: !348) -!354 = distinct !DISubprogram(name: "$fundef_389", linkageName: "$fundef_389", scope: !46, file: !46, line: 224, type: !5, scopeLine: 224, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!355 = !DILocation(line: 224, column: 5, scope: !354) -!356 = distinct !DISubprogram(name: "$fundef_387", linkageName: "$fundef_387", scope: !90, file: !90, line: 1, type: !5, scopeLine: 1, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!357 = !DILocation(line: 1, column: 94, scope: !356) -!358 = distinct !DISubprogram(name: "$fundef_385", linkageName: "$fundef_385", scope: !90, file: !90, line: 1, type: !5, scopeLine: 1, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!359 = !DILocation(line: 1, column: 37, scope: !358) -!360 = !DILocation(line: 1, column: 94, scope: !361) -!361 = distinct !DILexicalBlock(scope: !362, file: !90, line: 1, column: 52) -!362 = distinct !DILexicalBlock(scope: !358, file: !90, line: 1, column: 37) -!363 = !DILocation(line: 1, column: 106, scope: !361) -!364 = !DILocation(line: 1, column: 129, scope: !365) -!365 = distinct !DILexicalBlock(scope: !362, file: !90, line: 1, column: 122) -!366 = distinct !DISubprogram(name: "$fundef_383", linkageName: "$fundef_383", scope: !90, file: !90, line: 1, type: !5, scopeLine: 1, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!367 = !DILocation(line: 1, column: 37, scope: !366) -!368 = distinct !DISubprogram(name: "$fundef_381", linkageName: "$fundef_381", scope: !90, file: !90, line: 1, type: !5, scopeLine: 1, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!369 = !DILocation(line: 1, column: 17, scope: !368) -!370 = distinct !DISubprogram(name: "$fundef_379", linkageName: "$fundef_379", scope: !90, file: !90, line: 1, type: !5, scopeLine: 1, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!371 = !DILocation(line: 1, column: 17, scope: !370) -!372 = distinct !DISubprogram(name: "$fundef_377", linkageName: "$fundef_377", scope: !90, file: !90, line: 1, type: !5, scopeLine: 1, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!373 = !DILocation(line: 1, column: 17, scope: !372) -!374 = distinct !DISubprogram(name: "$fundef_375", linkageName: "$fundef_375", scope: !2, file: !2, line: 18, type: !5, scopeLine: 18, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!375 = !DILocation(line: 18, column: 5, scope: !374) -!376 = distinct !DISubprogram(name: "$fundef_373", linkageName: "$fundef_373", scope: !2, file: !2, line: 17, type: !5, scopeLine: 17, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!377 = !DILocation(line: 18, column: 5, scope: !376) -!378 = distinct !DISubprogram(name: "$fundef_415", linkageName: "$fundef_415", scope: !2, file: !2, line: 14, type: !5, scopeLine: 14, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!379 = !DILocation(line: 14, column: 5, scope: !378) -!380 = distinct !DISubprogram(name: "$fundef_199", linkageName: "$fundef_199", scope: !30, file: !30, line: 22, type: !5, scopeLine: 22, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!381 = !DILocation(line: 22, column: 5, scope: !380) -!382 = !DILocation(line: 23, column: 15, scope: !383) -!383 = distinct !DILexicalBlock(scope: !384, file: !30, line: 23, column: 7) -!384 = distinct !DILexicalBlock(scope: !380, file: !30, line: 22, column: 5) -!385 = !DILocation(line: 24, column: 16, scope: !386) -!386 = distinct !DILexicalBlock(scope: !384, file: !30, line: 24, column: 7) -!387 = distinct !DISubprogram(name: "$fundef_203", linkageName: "$fundef_203", scope: !30, file: !30, line: 15, type: !5, scopeLine: 15, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!388 = !DILocation(line: 15, column: 5, scope: !387) -!389 = !DILocation(line: 16, column: 16, scope: !390) -!390 = distinct !DILexicalBlock(scope: !391, file: !30, line: 16, column: 7) -!391 = distinct !DILexicalBlock(scope: !387, file: !30, line: 15, column: 5) -!392 = !DILocation(line: 17, column: 16, scope: !393) -!393 = distinct !DILexicalBlock(scope: !391, file: !30, line: 17, column: 7) -!394 = distinct !DISubprogram(name: "$fundef_201", linkageName: "$fundef_201", scope: !30, file: !30, line: 14, type: !5, scopeLine: 14, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!395 = !DILocation(line: 15, column: 5, scope: !394) -!396 = distinct !DISubprogram(name: "$fundef_207", linkageName: "$fundef_207", scope: !30, file: !30, line: 8, type: !5, scopeLine: 8, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!397 = !DILocation(line: 8, column: 5, scope: !396) -!398 = !DILocation(line: 9, column: 16, scope: !399) -!399 = distinct !DILexicalBlock(scope: !400, file: !30, line: 9, column: 7) -!400 = distinct !DILexicalBlock(scope: !396, file: !30, line: 8, column: 5) -!401 = !DILocation(line: 10, column: 16, scope: !402) -!402 = distinct !DILexicalBlock(scope: !400, file: !30, line: 10, column: 7) -!403 = distinct !DISubprogram(name: "$fundef_205", linkageName: "$fundef_205", scope: !30, file: !30, line: 7, type: !5, scopeLine: 7, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!404 = !DILocation(line: 8, column: 5, scope: !403) -!405 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !406, file: !406, type: !5, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!406 = !DIFile(filename: ".", directory: ".") -!407 = !DILocation(line: 0, scope: !405) -!408 = !DILocation(line: 7, column: 3, scope: !405) -!409 = !DILocation(line: 14, column: 21, scope: !405) -!410 = !DILocation(line: 22, column: 5, scope: !405) -!411 = !DILocation(line: 7, column: 19, scope: !405) -!412 = !DILocation(line: 10, column: 18, scope: !405) -!413 = !DILocation(line: 11, column: 18, scope: !405) -!414 = !DILocation(line: 14, column: 5, scope: !405) -!415 = !DILocation(line: 17, column: 3, scope: !405) -!416 = !DILocation(line: 1, column: 17, scope: !405) -!417 = !DILocation(line: 222, column: 3, scope: !405) -!418 = !DILocation(line: 239, column: 3, scope: !405) -!419 = !DILocation(line: 250, column: 3, scope: !405) -!420 = !DILocation(line: 21, column: 3, scope: !405) -!421 = !DILocation(line: 26, column: 3, scope: !405) -!422 = !DILocation(line: 36, column: 3, scope: !405) -!423 = !DILocation(line: 30, column: 3, scope: !405) -!424 = !DILocation(line: 38, column: 3, scope: !405) -!425 = !DILocation(line: 53, column: 3, scope: !405) -!426 = !DILocation(line: 57, column: 3, scope: !405) -!427 = !DILocation(line: 62, column: 5, scope: !405) -!428 = !DILocation(line: 65, column: 5, scope: !405) -!429 = !DILocation(line: 68, column: 3, scope: !405) -!430 = !DILocation(line: 72, column: 3, scope: !405) -!431 = !DILocation(line: 77, column: 5, scope: !405) -!432 = !DILocation(line: 82, column: 5, scope: !405) -!433 = !DILocation(line: 91, column: 3, scope: !405) -!434 = !DILocation(line: 97, column: 3, scope: !405) -!435 = distinct !DISubprogram(name: "_deploy_ops", linkageName: "_deploy_ops", scope: !406, file: !406, type: !5, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!436 = !DILocation(line: 114, column: 15, scope: !435) -!437 = !DILocation(line: 115, column: 20, scope: !435) -!438 = !DILocation(line: 116, column: 5, scope: !435) -!439 = !DILocation(line: 117, column: 28, scope: !435) -!440 = !DILocation(line: 118, column: 40, scope: !435) -!441 = !DILocation(line: 119, column: 47, scope: !435) -!442 = !DILocation(line: 120, column: 30, scope: !435) -!443 = distinct !DISubprogram(name: "setAdmin", linkageName: "setAdmin", scope: !2, file: !2, line: 121, type: !5, scopeLine: 121, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!444 = !DILocation(line: 122, column: 3, scope: !443) -!445 = !DILocation(line: 123, column: 19, scope: !443) -!446 = !DILocation(line: 124, column: 3, scope: !443) -!447 = !DILocation(line: 127, column: 15, scope: !448) -!448 = distinct !DILexicalBlock(scope: !449, file: !2, line: 125, column: 5) -!449 = distinct !DILexicalBlock(scope: !443, file: !2, line: 124, column: 3) -!450 = !DILocation(line: 127, column: 60, scope: !448) -!451 = !DILocation(line: 128, column: 5, scope: !448) -!452 = !DILocation(line: 130, column: 19, scope: !453) -!453 = distinct !DILexicalBlock(scope: !454, file: !2, line: 129, column: 7) -!454 = distinct !DILexicalBlock(scope: !448, file: !2, line: 128, column: 5) -!455 = !DILocation(line: 131, column: 19, scope: !456) -!456 = distinct !DILexicalBlock(scope: !457, file: !2, line: 131, column: 11) -!457 = distinct !DILexicalBlock(scope: !453, file: !2, line: 130, column: 19) -!458 = !DILocation(line: 132, column: 20, scope: !459) -!459 = distinct !DILexicalBlock(scope: !457, file: !2, line: 132, column: 11) -!460 = !DILocation(line: 134, column: 7, scope: !453) -!461 = !DILocation(line: 135, column: 11, scope: !453) -!462 = !DILocation(line: 136, column: 7, scope: !453) -!463 = !DILocation(line: 140, column: 44, scope: !464) -!464 = distinct !DILexicalBlock(scope: !449, file: !2, line: 139, column: 5) -!465 = !DILocation(line: 140, column: 49, scope: !464) -!466 = !DILocation(line: 141, column: 5, scope: !464) -!467 = distinct !DISubprogram(name: "setAdmin", linkageName: "setAdmin", scope: !2, file: !2, line: 121, type: !5, scopeLine: 121, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!468 = !DILocation(line: 121, column: 12, scope: !467) -!469 = distinct !DISubprogram(name: "approve", linkageName: "approve", scope: !2, file: !2, line: 144, type: !5, scopeLine: 144, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!470 = !DILocation(line: 145, column: 3, scope: !469) -!471 = !DILocation(line: 146, column: 17, scope: !469) -!472 = !DILocation(line: 147, column: 23, scope: !469) -!473 = !DILocation(line: 148, column: 3, scope: !469) -!474 = !DILocation(line: 150, column: 5, scope: !475) -!475 = distinct !DILexicalBlock(scope: !476, file: !2, line: 149, column: 5) -!476 = distinct !DILexicalBlock(scope: !469, file: !2, line: 148, column: 3) -!477 = !DILocation(line: 151, column: 25, scope: !475) -!478 = !DILocation(line: 152, column: 17, scope: !479) -!479 = distinct !DILexicalBlock(scope: !480, file: !2, line: 152, column: 9) -!480 = distinct !DILexicalBlock(scope: !475, file: !2, line: 151, column: 25) -!481 = !DILocation(line: 153, column: 26, scope: !482) -!482 = distinct !DILexicalBlock(scope: !480, file: !2, line: 153, column: 9) -!483 = !DILocation(line: 155, column: 29, scope: !475) -!484 = !DILocation(line: 155, column: 69, scope: !475) -!485 = !DILocation(line: 156, column: 5, scope: !475) -!486 = !DILocation(line: 158, column: 7, scope: !487) -!487 = distinct !DILexicalBlock(scope: !488, file: !2, line: 157, column: 7) -!488 = distinct !DILexicalBlock(scope: !475, file: !2, line: 156, column: 5) -!489 = !DILocation(line: 159, column: 11, scope: !487) -!490 = !DILocation(line: 160, column: 7, scope: !487) -!491 = !DILocation(line: 164, column: 39, scope: !492) -!492 = distinct !DILexicalBlock(scope: !476, file: !2, line: 163, column: 5) -!493 = !DILocation(line: 164, column: 44, scope: !492) -!494 = !DILocation(line: 165, column: 5, scope: !492) -!495 = distinct !DISubprogram(name: "approve", linkageName: "approve", scope: !2, file: !2, line: 144, type: !5, scopeLine: 144, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!496 = !DILocation(line: 144, column: 12, scope: !495) -!497 = distinct !DISubprogram(name: "approveFor", linkageName: "approveFor", scope: !2, file: !2, line: 168, type: !5, scopeLine: 168, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!498 = !DILocation(line: 169, column: 3, scope: !497) -!499 = !DILocation(line: 170, column: 22, scope: !497) -!500 = !DILocation(line: 171, column: 15, scope: !501) -!501 = distinct !DILexicalBlock(scope: !502, file: !2, line: 171, column: 7) -!502 = distinct !DILexicalBlock(scope: !497, file: !2, line: 170, column: 22) -!503 = !DILocation(line: 172, column: 19, scope: !504) -!504 = distinct !DILexicalBlock(scope: !502, file: !2, line: 172, column: 7) -!505 = !DILocation(line: 174, column: 27, scope: !497) -!506 = !DILocation(line: 175, column: 5, scope: !497) -!507 = !DILocation(line: 176, column: 3, scope: !497) -!508 = !DILocation(line: 178, column: 20, scope: !509) -!509 = distinct !DILexicalBlock(scope: !510, file: !2, line: 177, column: 5) -!510 = distinct !DILexicalBlock(scope: !497, file: !2, line: 176, column: 3) -!511 = !DILocation(line: 179, column: 17, scope: !512) -!512 = distinct !DILexicalBlock(scope: !513, file: !2, line: 179, column: 9) -!513 = distinct !DILexicalBlock(scope: !509, file: !2, line: 178, column: 20) -!514 = !DILocation(line: 180, column: 18, scope: !515) -!515 = distinct !DILexicalBlock(scope: !513, file: !2, line: 180, column: 9) -!516 = !DILocation(line: 182, column: 5, scope: !509) -!517 = !DILocation(line: 183, column: 9, scope: !509) -!518 = !DILocation(line: 184, column: 5, scope: !509) -!519 = distinct !DISubprogram(name: "approveFor", linkageName: "approveFor", scope: !2, file: !2, line: 168, type: !5, scopeLine: 168, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!520 = !DILocation(line: 168, column: 12, scope: !519) -!521 = distinct !DISubprogram(name: "configureNode", linkageName: "configureNode", scope: !2, file: !2, line: 188, type: !5, scopeLine: 188, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!522 = !DILocation(line: 189, column: 3, scope: !521) -!523 = !DILocation(line: 190, column: 3, scope: !521) -!524 = !DILocation(line: 191, column: 17, scope: !521) -!525 = !DILocation(line: 192, column: 3, scope: !521) -!526 = !DILocation(line: 193, column: 17, scope: !521) -!527 = !DILocation(line: 194, column: 3, scope: !521) -!528 = !DILocation(line: 196, column: 17, scope: !529) -!529 = distinct !DILexicalBlock(scope: !530, file: !2, line: 195, column: 5) -!530 = distinct !DILexicalBlock(scope: !521, file: !2, line: 194, column: 3) -!531 = !DILocation(line: 197, column: 5, scope: !529) -!532 = !DILocation(line: 198, column: 9, scope: !529) -!533 = !DILocation(line: 199, column: 5, scope: !529) -!534 = !DILocation(line: 200, column: 20, scope: !529) -!535 = !DILocation(line: 202, column: 10, scope: !529) -!536 = !DILocation(line: 203, column: 5, scope: !529) -!537 = !DILocation(line: 205, column: 61, scope: !538) -!538 = distinct !DILexicalBlock(scope: !530, file: !2, line: 204, column: 5) -!539 = !DILocation(line: 205, column: 66, scope: !538) -!540 = !DILocation(line: 206, column: 5, scope: !538) -!541 = !DILocation(line: 207, column: 20, scope: !538) -!542 = !DILocation(line: 209, column: 10, scope: !538) -!543 = !DILocation(line: 210, column: 5, scope: !538) -!544 = distinct !DISubprogram(name: "configureNode", linkageName: "configureNode", scope: !2, file: !2, line: 188, type: !5, scopeLine: 188, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!545 = !DILocation(line: 188, column: 12, scope: !544) -!546 = distinct !DISubprogram(name: "configureResolver", linkageName: "configureResolver", scope: !2, file: !2, line: 213, type: !5, scopeLine: 213, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!547 = !DILocation(line: 214, column: 3, scope: !546) -!548 = !DILocation(line: 215, column: 3, scope: !546) -!549 = !DILocation(line: 216, column: 17, scope: !546) -!550 = !DILocation(line: 217, column: 3, scope: !546) -!551 = !DILocation(line: 218, column: 17, scope: !546) -!552 = !DILocation(line: 219, column: 3, scope: !546) -!553 = !DILocation(line: 221, column: 17, scope: !554) -!554 = distinct !DILexicalBlock(scope: !555, file: !2, line: 220, column: 5) -!555 = distinct !DILexicalBlock(scope: !546, file: !2, line: 219, column: 3) -!556 = !DILocation(line: 222, column: 5, scope: !554) -!557 = !DILocation(line: 223, column: 9, scope: !554) -!558 = !DILocation(line: 224, column: 5, scope: !554) -!559 = !DILocation(line: 226, column: 61, scope: !560) -!560 = distinct !DILexicalBlock(scope: !555, file: !2, line: 225, column: 5) -!561 = !DILocation(line: 226, column: 66, scope: !560) -!562 = !DILocation(line: 227, column: 5, scope: !560) -!563 = distinct !DISubprogram(name: "configureResolver", linkageName: "configureResolver", scope: !2, file: !2, line: 213, type: !5, scopeLine: 213, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!564 = !DILocation(line: 213, column: 12, scope: !563) -!565 = distinct !DISubprogram(name: "transfer", linkageName: "transfer", scope: !2, file: !2, line: 230, type: !5, scopeLine: 230, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!566 = !DILocation(line: 231, column: 3, scope: !565) -!567 = !DILocation(line: 232, column: 3, scope: !565) -!568 = !DILocation(line: 233, column: 17, scope: !565) -!569 = !DILocation(line: 234, column: 3, scope: !565) -!570 = !DILocation(line: 235, column: 17, scope: !565) -!571 = !DILocation(line: 236, column: 3, scope: !565) -!572 = !DILocation(line: 238, column: 5, scope: !573) -!573 = distinct !DILexicalBlock(scope: !574, file: !2, line: 237, column: 5) -!574 = distinct !DILexicalBlock(scope: !565, file: !2, line: 236, column: 3) -!575 = !DILocation(line: 239, column: 17, scope: !573) -!576 = !DILocation(line: 240, column: 5, scope: !573) -!577 = !DILocation(line: 241, column: 9, scope: !573) -!578 = !DILocation(line: 242, column: 5, scope: !573) -!579 = !DILocation(line: 243, column: 20, scope: !573) -!580 = !DILocation(line: 245, column: 10, scope: !573) -!581 = !DILocation(line: 246, column: 5, scope: !573) -!582 = !DILocation(line: 248, column: 61, scope: !583) -!583 = distinct !DILexicalBlock(scope: !574, file: !2, line: 247, column: 5) -!584 = !DILocation(line: 248, column: 66, scope: !583) -!585 = !DILocation(line: 249, column: 5, scope: !583) -!586 = !DILocation(line: 250, column: 20, scope: !583) -!587 = !DILocation(line: 252, column: 10, scope: !583) -!588 = !DILocation(line: 253, column: 5, scope: !583) -!589 = distinct !DISubprogram(name: "transfer", linkageName: "transfer", scope: !2, file: !2, line: 230, type: !5, scopeLine: 230, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!590 = !DILocation(line: 230, column: 12, scope: !589) -!591 = distinct !DISubprogram(name: "assign", linkageName: "assign", scope: !2, file: !2, line: 256, type: !5, scopeLine: 256, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!592 = !DILocation(line: 257, column: 3, scope: !591) -!593 = !DILocation(line: 258, column: 3, scope: !591) -!594 = !DILocation(line: 259, column: 17, scope: !591) -!595 = !DILocation(line: 260, column: 3, scope: !591) -!596 = !DILocation(line: 261, column: 17, scope: !591) -!597 = !DILocation(line: 262, column: 3, scope: !591) -!598 = !DILocation(line: 264, column: 12, scope: !599) -!599 = distinct !DILexicalBlock(scope: !600, file: !2, line: 263, column: 5) -!600 = distinct !DILexicalBlock(scope: !591, file: !2, line: 262, column: 3) -!601 = !DILocation(line: 265, column: 5, scope: !599) -!602 = !DILocation(line: 266, column: 5, scope: !599) -!603 = !DILocation(line: 268, column: 11, scope: !604) -!604 = distinct !DILexicalBlock(scope: !605, file: !2, line: 267, column: 7) -!605 = distinct !DILexicalBlock(scope: !599, file: !2, line: 266, column: 5) -!606 = !DILocation(line: 269, column: 7, scope: !604) -!607 = !DILocation(line: 272, column: 5, scope: !599) -!608 = !DILocation(line: 273, column: 17, scope: !599) -!609 = !DILocation(line: 274, column: 5, scope: !599) -!610 = !DILocation(line: 275, column: 9, scope: !599) -!611 = !DILocation(line: 276, column: 5, scope: !599) -!612 = !DILocation(line: 277, column: 20, scope: !599) -!613 = !DILocation(line: 279, column: 10, scope: !599) -!614 = !DILocation(line: 280, column: 5, scope: !599) -!615 = !DILocation(line: 282, column: 63, scope: !616) -!616 = distinct !DILexicalBlock(scope: !600, file: !2, line: 281, column: 5) -!617 = !DILocation(line: 282, column: 68, scope: !616) -!618 = !DILocation(line: 283, column: 5, scope: !616) -!619 = !DILocation(line: 284, column: 20, scope: !616) -!620 = !DILocation(line: 286, column: 10, scope: !616) -!621 = !DILocation(line: 287, column: 5, scope: !616) -!622 = distinct !DISubprogram(name: "assign", linkageName: "assign", scope: !2, file: !2, line: 256, type: !5, scopeLine: 256, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!623 = !DILocation(line: 256, column: 12, scope: !622) -!624 = distinct !DISubprogram(name: "bestow", linkageName: "bestow", scope: !2, file: !2, line: 290, type: !5, scopeLine: 290, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!625 = !DILocation(line: 291, column: 3, scope: !624) -!626 = !DILocation(line: 292, column: 10, scope: !624) -!627 = !DILocation(line: 293, column: 3, scope: !624) -!628 = !DILocation(line: 294, column: 3, scope: !624) -!629 = !DILocation(line: 295, column: 3, scope: !624) -!630 = !DILocation(line: 297, column: 25, scope: !624) -!631 = !DILocation(line: 298, column: 29, scope: !624) -!632 = !DILocation(line: 299, column: 22, scope: !624) -!633 = !DILocation(line: 300, column: 23, scope: !624) -!634 = !DILocation(line: 301, column: 27, scope: !624) -!635 = !DILocation(line: 302, column: 36, scope: !624) -!636 = !DILocation(line: 303, column: 37, scope: !624) -!637 = !DILocation(line: 304, column: 27, scope: !624) -!638 = !DILocation(line: 305, column: 7, scope: !624) -!639 = !DILocation(line: 306, column: 3, scope: !624) -!640 = !DILocation(line: 308, column: 5, scope: !641) -!641 = distinct !DILexicalBlock(scope: !642, file: !2, line: 307, column: 5) -!642 = distinct !DILexicalBlock(scope: !624, file: !2, line: 306, column: 3) -!643 = !DILocation(line: 310, column: 11, scope: !644) -!644 = distinct !DILexicalBlock(scope: !645, file: !2, line: 309, column: 7) -!645 = distinct !DILexicalBlock(scope: !641, file: !2, line: 308, column: 5) -!646 = !DILocation(line: 311, column: 7, scope: !644) -!647 = !DILocation(line: 314, column: 17, scope: !641) -!648 = !DILocation(line: 315, column: 5, scope: !641) -!649 = !DILocation(line: 316, column: 9, scope: !641) -!650 = !DILocation(line: 317, column: 5, scope: !641) -!651 = !DILocation(line: 319, column: 30, scope: !652) -!652 = distinct !DILexicalBlock(scope: !642, file: !2, line: 318, column: 5) -!653 = !DILocation(line: 319, column: 35, scope: !652) -!654 = !DILocation(line: 320, column: 5, scope: !652) -!655 = distinct !DISubprogram(name: "bestow", linkageName: "bestow", scope: !2, file: !2, line: 290, type: !5, scopeLine: 290, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!656 = !DILocation(line: 290, column: 12, scope: !655) -!657 = distinct !DISubprogram(name: "setRegistrar", linkageName: "setRegistrar", scope: !2, file: !2, line: 323, type: !5, scopeLine: 323, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!658 = !DILocation(line: 324, column: 3, scope: !657) -!659 = !DILocation(line: 325, column: 10, scope: !657) -!660 = !DILocation(line: 326, column: 3, scope: !657) -!661 = !DILocation(line: 328, column: 9, scope: !662) -!662 = distinct !DILexicalBlock(scope: !663, file: !2, line: 327, column: 5) -!663 = distinct !DILexicalBlock(scope: !657, file: !2, line: 326, column: 3) -!664 = !DILocation(line: 329, column: 5, scope: !662) -!665 = !DILocation(line: 330, column: 5, scope: !662) -!666 = distinct !DISubprogram(name: "setRegistrar", linkageName: "setRegistrar", scope: !2, file: !2, line: 323, type: !5, scopeLine: 323, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!667 = !DILocation(line: 323, column: 12, scope: !666) -!668 = distinct !DISubprogram(name: "register", linkageName: "register", scope: !2, file: !2, line: 334, type: !5, scopeLine: 334, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!669 = !DILocation(line: 335, column: 10, scope: !668) -!670 = !DILocation(line: 336, column: 3, scope: !668) -!671 = !DILocation(line: 337, column: 3, scope: !668) -!672 = !DILocation(line: 338, column: 17, scope: !668) -!673 = !DILocation(line: 340, column: 5, scope: !668) -!674 = !DILocation(line: 341, column: 15, scope: !675) -!675 = distinct !DILexicalBlock(scope: !676, file: !2, line: 341, column: 7) -!676 = distinct !DILexicalBlock(scope: !668, file: !2, line: 340, column: 5) -!677 = !DILocation(line: 342, column: 24, scope: !678) -!678 = distinct !DILexicalBlock(scope: !676, file: !2, line: 342, column: 7) -!679 = !DILocation(line: 344, column: 3, scope: !668) -!680 = !DILocation(line: 346, column: 27, scope: !668) -!681 = !DILocation(line: 347, column: 24, scope: !668) -!682 = !DILocation(line: 348, column: 7, scope: !668) -!683 = !DILocation(line: 349, column: 3, scope: !668) -!684 = !DILocation(line: 351, column: 5, scope: !685) -!685 = distinct !DILexicalBlock(scope: !686, file: !2, line: 350, column: 5) -!686 = distinct !DILexicalBlock(scope: !668, file: !2, line: 349, column: 3) -!687 = !DILocation(line: 353, column: 15, scope: !685) -!688 = !DILocation(line: 355, column: 9, scope: !685) -!689 = !DILocation(line: 356, column: 5, scope: !685) -!690 = distinct !DISubprogram(name: "register", linkageName: "register", scope: !2, file: !2, line: 334, type: !5, scopeLine: 334, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!691 = !DILocation(line: 334, column: 12, scope: !690) -!692 = distinct !DISubprogram(name: "onResolverConfigured", linkageName: "onResolverConfigured", scope: !2, file: !2, line: 360, type: !5, scopeLine: 360, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!693 = !DILocation(line: 361, column: 3, scope: !692) -!694 = !DILocation(line: 362, column: 3, scope: !692) -!695 = !DILocation(line: 365, column: 5, scope: !696) -!696 = distinct !DILexicalBlock(scope: !697, file: !2, line: 364, column: 5) -!697 = distinct !DILexicalBlock(scope: !692, file: !2, line: 362, column: 3) -!698 = !DILocation(line: 367, column: 14, scope: !699) -!699 = distinct !DILexicalBlock(scope: !700, file: !2, line: 366, column: 7) -!700 = distinct !DILexicalBlock(scope: !696, file: !2, line: 365, column: 5) -!701 = !DILocation(line: 368, column: 7, scope: !699) -!702 = !DILocation(line: 370, column: 13, scope: !703) -!703 = distinct !DILexicalBlock(scope: !704, file: !2, line: 369, column: 9) -!704 = distinct !DILexicalBlock(scope: !699, file: !2, line: 368, column: 7) -!705 = !DILocation(line: 371, column: 9, scope: !703) -!706 = distinct !DISubprogram(name: "onResolverConfigured", linkageName: "onResolverConfigured", scope: !2, file: !2, line: 360, type: !5, scopeLine: 360, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!707 = !DILocation(line: 360, column: 12, scope: !706) +!3 = distinct !DISubprogram(name: "$fundef_261", linkageName: "$fundef_261", scope: !2, file: !2, line: 100, type: !4, scopeLine: 100, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!4 = !DISubroutineType(types: !5) +!5 = !{!6} +!6 = !DIBasicType(tag: DW_TAG_unspecified_type, name: "void") +!7 = !{} +!8 = !DILocalVariable(name: "maybeOperators", scope: !3, file: !2, line: 99, type: !9) +!9 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "Option (List (ByStr20))", baseType: !10, size: 8, align: 8, dwarfAddressSpace: 0) +!10 = !DIBasicType(name: "Option (List (ByStr20))", size: 8) +!11 = !DILocation(line: 99, column: 7, scope: !3) +!12 = !DILocalVariable(name: "$retval_262", scope: !3, file: !2, line: 100, type: !13) +!13 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "Bool", baseType: !14, size: 8, align: 8, dwarfAddressSpace: 0) +!14 = !DIBasicType(name: "Bool", size: 8) +!15 = !DILocation(line: 100, column: 5, scope: !3) +!16 = !DILocalVariable(name: "isOwner", scope: !3, file: !2, line: 100, type: !13) +!17 = !DILocation(line: 100, column: 9, scope: !3) +!18 = !DILocation(line: 100, column: 19, scope: !3) +!19 = !DILocalVariable(name: "isApproved", scope: !3, file: !2, line: 101, type: !13) +!20 = !DILocation(line: 101, column: 9, scope: !3) +!21 = !DILocation(line: 102, column: 7, scope: !3) +!22 = !DILocation(line: 103, column: 17, scope: !23) +!23 = distinct !DILexicalBlock(scope: !24, file: !2, line: 103, column: 9) +!24 = distinct !DILexicalBlock(scope: !3, file: !2, line: 102, column: 7) +!25 = !DILocation(line: 104, column: 26, scope: !26) +!26 = distinct !DILexicalBlock(scope: !24, file: !2, line: 104, column: 9) +!27 = !DILocalVariable(name: "isOperator", scope: !3, file: !2, line: 106, type: !13) +!28 = !DILocation(line: 106, column: 9, scope: !3) +!29 = !DILocation(line: 106, column: 22, scope: !3) +!30 = !DILocation(line: 107, column: 15, scope: !31) +!31 = distinct !DILexicalBlock(scope: !32, file: !2, line: 107, column: 7) +!32 = distinct !DILexicalBlock(scope: !3, file: !2, line: 106, column: 22) +!33 = !DILocation(line: 108, column: 25, scope: !34) +!34 = distinct !DILexicalBlock(scope: !32, file: !2, line: 108, column: 7) +!35 = !DILocalVariable(name: "$$ud-registry.listByStr20Contains_17_93", scope: !34, file: !2, line: 108, type: !13) +!36 = !DILocalVariable(name: "b1", scope: !3, file: !2, line: 110, type: !13) +!37 = !DILocation(line: 110, column: 9, scope: !3) +!38 = !DILocation(line: 110, column: 14, scope: !3) +!39 = !DILocalVariable(name: "$$BoolUtils.orb_18_95", scope: !3, file: !2, line: 110, type: !13) +!40 = !DILocation(line: 110, column: 40, scope: !3) +!41 = !DILocalVariable(name: "$$BoolUtils.orb_18_97", scope: !3, file: !2, line: 110, type: !13) +!42 = distinct !DISubprogram(name: "$fundef_259", linkageName: "$fundef_259", scope: !2, file: !2, line: 99, type: !4, scopeLine: 99, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!43 = !DILocalVariable(name: "maybeApproved", scope: !42, file: !2, line: 98, type: !44) +!44 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "Option (ByStr20)", baseType: !45, size: 8, align: 8, dwarfAddressSpace: 0) +!45 = !DIBasicType(name: "Option (ByStr20)", size: 8) +!46 = !DILocation(line: 98, column: 7, scope: !42) +!47 = !DILocation(line: 100, column: 5, scope: !42) +!48 = distinct !DISubprogram(name: "$fundef_257", linkageName: "$fundef_257", scope: !2, file: !2, line: 98, type: !4, scopeLine: 98, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!49 = !DILocalVariable(name: "recordOwner", scope: !48, file: !2, line: 97, type: !50) +!50 = !DIBasicType(name: "ByStr20", size: 20) +!51 = !DILocation(line: 97, column: 7, scope: !48) +!52 = !DILocation(line: 99, column: 3, scope: !48) +!53 = distinct !DISubprogram(name: "$fundef_255", linkageName: "$fundef_255", scope: !2, file: !2, line: 97, type: !4, scopeLine: 97, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!54 = !DILocalVariable(name: "sender", scope: !53, file: !2, line: 96, type: !50) +!55 = !DILocation(line: 96, column: 7, scope: !53) +!56 = !DILocation(line: 98, column: 3, scope: !53) +!57 = distinct !DISubprogram(name: "$fundef_253", linkageName: "$fundef_253", scope: !58, file: !58, line: 15, type: !4, scopeLine: 15, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!58 = !DIFile(filename: "BoolUtils.scillib", directory: "../src/stdlib") +!59 = !DILocalVariable(name: "c", scope: !57, file: !58, line: 14, type: !13) +!60 = !DILocation(line: 14, column: 26, scope: !57) +!61 = !DILocalVariable(name: "$retval_254", scope: !57, file: !58, line: 15, type: !13) +!62 = !DILocation(line: 15, column: 5, scope: !57) +!63 = !DILocation(line: 16, column: 16, scope: !64) +!64 = distinct !DILexicalBlock(scope: !65, file: !58, line: 16, column: 7) +!65 = distinct !DILexicalBlock(scope: !57, file: !58, line: 15, column: 5) +!66 = !DILocation(line: 17, column: 16, scope: !67) +!67 = distinct !DILexicalBlock(scope: !65, file: !58, line: 17, column: 7) +!68 = distinct !DISubprogram(name: "$fundef_251", linkageName: "$fundef_251", scope: !58, file: !58, line: 14, type: !4, scopeLine: 14, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!69 = !DILocalVariable(name: "b", scope: !68, file: !58, line: 14, type: !13) +!70 = !DILocation(line: 14, column: 8, scope: !68) +!71 = !DILocation(line: 15, column: 5, scope: !68) +!72 = distinct !DISubprogram(name: "$fundef_249", linkageName: "$fundef_249", scope: !2, file: !2, line: 22, type: !4, scopeLine: 22, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!73 = !DILocalVariable(name: "bs", scope: !72, file: !2, line: 21, type: !50) +!74 = !DILocation(line: 21, column: 7, scope: !72) +!75 = !DILocalVariable(name: "$retval_250", scope: !72, file: !2, line: 22, type: !13) +!76 = !DILocation(line: 22, column: 5, scope: !72) +!77 = !DILocation(line: 22, column: 27, scope: !72) +!78 = !DILocation(line: 22, column: 26, scope: !72) +!79 = !DILocation(line: 23, column: 7, scope: !72) +!80 = !DILocalVariable(name: "$listMemByStr20_91", scope: !72, file: !2, line: 23, type: !13) +!81 = distinct !DISubprogram(name: "$fundef_247", linkageName: "$fundef_247", scope: !2, file: !2, line: 21, type: !4, scopeLine: 21, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!82 = !DILocalVariable(name: "list", scope: !81, file: !2, line: 20, type: !83) +!83 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "List (ByStr20)", baseType: !84, size: 8, align: 8, dwarfAddressSpace: 0) +!84 = !DIBasicType(name: "List (ByStr20)", size: 8) +!85 = !DILocation(line: 20, column: 7, scope: !81) +!86 = !DILocation(line: 22, column: 5, scope: !81) +!87 = distinct !DISubprogram(name: "$fundef_245", linkageName: "$fundef_245", scope: !88, file: !88, line: 252, type: !4, scopeLine: 252, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!88 = !DIFile(filename: "ListUtils.scillib", directory: "../src/stdlib") +!89 = !DILocalVariable(name: "m", scope: !87, file: !88, line: 251, type: !50) +!90 = !DILocation(line: 251, column: 38, scope: !87) +!91 = !DILocation(line: 252, column: 19, scope: !87) +!92 = !DILocation(line: 253, column: 15, scope: !87) +!93 = !DILocation(line: 253, column: 14, scope: !87) +!94 = !DILocation(line: 254, column: 5, scope: !87) +!95 = distinct !DISubprogram(name: "$fundef_243", linkageName: "$fundef_243", scope: !88, file: !88, line: 251, type: !4, scopeLine: 251, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!96 = !DILocation(line: 252, column: 5, scope: !95) +!97 = distinct !DISubprogram(name: "$fundef_241", linkageName: "$fundef_241", scope: !88, file: !88, line: 251, type: !4, scopeLine: 251, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!98 = !DILocation(line: 251, column: 33, scope: !97) +!99 = distinct !DISubprogram(name: "$fundef_239", linkageName: "$fundef_239", scope: !88, file: !88, line: 241, type: !4, scopeLine: 241, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!100 = !DILocalVariable(name: "ls", scope: !99, file: !88, line: 240, type: !83) +!101 = !DILocation(line: 240, column: 32, scope: !99) +!102 = !DILocalVariable(name: "$retval_240", scope: !99, file: !88, line: 241, type: !13) +!103 = !DILocation(line: 241, column: 5, scope: !99) +!104 = !DILocation(line: 241, column: 17, scope: !99) +!105 = !DILocation(line: 241, column: 16, scope: !99) +!106 = !DILocalVariable(name: "search", scope: !99, file: !88, line: 242, type: !44) +!107 = !DILocation(line: 242, column: 9, scope: !99) +!108 = !DILocation(line: 242, column: 18, scope: !99) +!109 = !DILocalVariable(name: "$find_86", scope: !99, file: !88, line: 242, type: !44) +!110 = !DILocation(line: 243, column: 5, scope: !99) +!111 = !DILocation(line: 244, column: 17, scope: !112) +!112 = distinct !DILexicalBlock(scope: !113, file: !88, line: 244, column: 7) +!113 = distinct !DILexicalBlock(scope: !99, file: !88, line: 243, column: 5) +!114 = !DILocation(line: 245, column: 15, scope: !115) +!115 = distinct !DILexicalBlock(scope: !113, file: !88, line: 245, column: 7) +!116 = distinct !DISubprogram(name: "$fundef_237", linkageName: "$fundef_237", scope: !88, file: !88, line: 240, type: !4, scopeLine: 240, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!117 = !DILocation(line: 241, column: 5, scope: !116) +!118 = distinct !DISubprogram(name: "$fundef_235", linkageName: "$fundef_235", scope: !88, file: !88, line: 240, type: !4, scopeLine: 240, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!119 = !DILocation(line: 240, column: 27, scope: !118) +!120 = distinct !DISubprogram(name: "$fundef_233", linkageName: "$fundef_233", scope: !88, file: !88, line: 230, type: !4, scopeLine: 230, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!121 = !DILocalVariable(name: "$retval_234", scope: !120, file: !88, line: 230, type: !44) +!122 = !DILocation(line: 230, column: 9, scope: !120) +!123 = !DILocalVariable(name: "p_x", scope: !120, file: !88, line: 230, type: !13) +!124 = !DILocation(line: 230, column: 13, scope: !120) +!125 = !DILocalVariable(name: "$p_81", scope: !120, file: !88, line: 230, type: !13) +!126 = !DILocation(line: 230, column: 19, scope: !120) +!127 = !DILocation(line: 231, column: 9, scope: !120) +!128 = !DILocation(line: 232, column: 19, scope: !129) +!129 = distinct !DILexicalBlock(scope: !130, file: !88, line: 232, column: 11) +!130 = distinct !DILexicalBlock(scope: !120, file: !88, line: 231, column: 9) +!131 = !DILocalVariable(name: "$recurse_82", scope: !132, file: !88, line: 233, type: !44) +!132 = distinct !DILexicalBlock(scope: !130, file: !88, line: 233, column: 11) +!133 = !DILocation(line: 233, column: 20, scope: !132) +!134 = distinct !DISubprogram(name: "$fundef_231", linkageName: "$fundef_231", scope: !88, file: !88, line: 229, type: !4, scopeLine: 229, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!135 = !DILocalVariable(name: "x", scope: !134, file: !88, line: 228, type: !50) +!136 = !DILocation(line: 228, column: 40, scope: !134) +!137 = !DILocation(line: 230, column: 9, scope: !134) +!138 = distinct !DISubprogram(name: "$fundef_229", linkageName: "$fundef_229", scope: !88, file: !88, line: 228, type: !4, scopeLine: 228, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!139 = !DILocalVariable(name: "ignore", scope: !138, file: !88, line: 228, type: !44) +!140 = !DILocation(line: 228, column: 12, scope: !138) +!141 = !DILocation(line: 229, column: 7, scope: !138) +!142 = distinct !DISubprogram(name: "$fundef_227", linkageName: "$fundef_227", scope: !88, file: !88, line: 224, type: !4, scopeLine: 224, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!143 = !DILocation(line: 224, column: 18, scope: !142) +!144 = !DILocation(line: 224, column: 17, scope: !142) +!145 = !DILocalVariable(name: "init", scope: !142, file: !88, line: 225, type: !44) +!146 = !DILocation(line: 225, column: 9, scope: !142) +!147 = !DILocation(line: 225, column: 16, scope: !142) +!148 = !DILocation(line: 228, column: 35, scope: !142) +!149 = !DILocation(line: 235, column: 5, scope: !142) +!150 = distinct !DISubprogram(name: "$fundef_225", linkageName: "$fundef_225", scope: !88, file: !88, line: 224, type: !4, scopeLine: 224, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!151 = !DILocation(line: 224, column: 5, scope: !150) +!152 = distinct !DISubprogram(name: "$fundef_223", linkageName: "$fundef_223", scope: !153, file: !153, line: 1, type: !4, scopeLine: 1, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!153 = !DIFile(filename: "Prelude", directory: ".") +!154 = !DILocalVariable(name: "k", scope: !152, file: !153, line: 1, type: !44) +!155 = !DILocation(line: 1, column: 83, scope: !152) +!156 = !DILocalVariable(name: "$retval_224", scope: !152, file: !153, line: 1, type: !44) +!157 = !DILocation(line: 1, column: 94, scope: !152) +!158 = !DILocalVariable(name: "$g_77", scope: !152, file: !153, line: 1, type: !44) +!159 = distinct !DISubprogram(name: "$fundef_221", linkageName: "$fundef_221", scope: !153, file: !153, line: 1, type: !4, scopeLine: 1, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!160 = !DILocalVariable(name: "l", scope: !159, file: !153, line: 1, type: !83) +!161 = !DILocation(line: 1, column: 22, scope: !159) +!162 = !DILocalVariable(name: "$retval_222", scope: !159, file: !153, line: 1, type: !44) +!163 = !DILocation(line: 1, column: 37, scope: !159) +!164 = !DILocation(line: 1, column: 94, scope: !165) +!165 = distinct !DILexicalBlock(scope: !166, file: !153, line: 1, column: 52) +!166 = distinct !DILexicalBlock(scope: !159, file: !153, line: 1, column: 37) +!167 = !DILocation(line: 1, column: 106, scope: !165) +!168 = !DILocalVariable(name: "$f_80", scope: !165, file: !153, line: 1, type: !44) +!169 = !DILocation(line: 1, column: 129, scope: !170) +!170 = distinct !DILexicalBlock(scope: !166, file: !153, line: 1, column: 122) +!171 = distinct !DISubprogram(name: "$fundef_219", linkageName: "$fundef_219", scope: !153, file: !153, line: 1, type: !4, scopeLine: 1, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!172 = !DILocalVariable(name: "z", scope: !171, file: !153, line: 1, type: !44) +!173 = !DILocation(line: 1, column: 6, scope: !171) +!174 = !DILocation(line: 1, column: 37, scope: !171) +!175 = distinct !DISubprogram(name: "$fundef_217", linkageName: "$fundef_217", scope: !153, file: !153, line: 1, type: !4, scopeLine: 1, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!176 = !DILocation(line: 1, column: 17, scope: !175) +!177 = distinct !DISubprogram(name: "$fundef_215", linkageName: "$fundef_215", scope: !153, file: !153, line: 1, type: !4, scopeLine: 1, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!178 = !DILocation(line: 1, column: 17, scope: !177) +!179 = distinct !DISubprogram(name: "$fundef_213", linkageName: "$fundef_213", scope: !153, file: !153, line: 1, type: !4, scopeLine: 1, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!180 = !DILocation(line: 1, column: 17, scope: !179) +!181 = distinct !DISubprogram(name: "$fundef_211", linkageName: "$fundef_211", scope: !2, file: !2, line: 18, type: !4, scopeLine: 18, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!182 = !DILocalVariable(name: "bs2", scope: !181, file: !2, line: 17, type: !50) +!183 = !DILocation(line: 17, column: 7, scope: !181) +!184 = !DILocalVariable(name: "$retval_212", scope: !181, file: !2, line: 18, type: !13) +!185 = !DILocation(line: 18, column: 5, scope: !181) +!186 = distinct !DISubprogram(name: "$fundef_209", linkageName: "$fundef_209", scope: !2, file: !2, line: 17, type: !4, scopeLine: 17, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!187 = !DILocalVariable(name: "bs1", scope: !186, file: !2, line: 16, type: !50) +!188 = !DILocation(line: 16, column: 7, scope: !186) +!189 = !DILocation(line: 18, column: 5, scope: !186) +!190 = distinct !DISubprogram(name: "$fundef_265", linkageName: "$fundef_265", scope: !2, file: !2, line: 92, type: !4, scopeLine: 92, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!191 = !DILocalVariable(name: "label", scope: !190, file: !2, line: 91, type: !192) +!192 = !DIBasicType(name: "String", size: 16) +!193 = !DILocation(line: 91, column: 7, scope: !190) +!194 = !DILocalVariable(name: "$retval_266", scope: !190, file: !2, line: 92, type: !195) +!195 = !DIBasicType(name: "ByStr32", size: 32) +!196 = !DILocation(line: 92, column: 5, scope: !190) +!197 = !DILocalVariable(name: "labelHash", scope: !190, file: !2, line: 92, type: !195) +!198 = !DILocation(line: 92, column: 9, scope: !190) +!199 = !DILocation(line: 92, column: 21, scope: !190) +!200 = !DILocalVariable(name: "nodeInput", scope: !190, file: !2, line: 93, type: !201) +!201 = !DIBasicType(name: "ByStr64", size: 64) +!202 = !DILocation(line: 93, column: 9, scope: !190) +!203 = !DILocation(line: 93, column: 21, scope: !190) +!204 = !DILocation(line: 94, column: 7, scope: !190) +!205 = distinct !DISubprogram(name: "$fundef_263", linkageName: "$fundef_263", scope: !2, file: !2, line: 91, type: !4, scopeLine: 91, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!206 = !DILocalVariable(name: "parent", scope: !205, file: !2, line: 90, type: !195) +!207 = !DILocation(line: 90, column: 7, scope: !205) +!208 = !DILocation(line: 92, column: 5, scope: !205) +!209 = distinct !DISubprogram(name: "$fundef_267", linkageName: "$fundef_267", scope: !2, file: !2, line: 82, type: !4, scopeLine: 82, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!210 = !DILocalVariable(name: "maybeRecord", scope: !209, file: !2, line: 81, type: !211) +!211 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "Option (ud-registry.Record)", baseType: !212, size: 8, align: 8, dwarfAddressSpace: 0) +!212 = !DIBasicType(name: "Option (ud-registry.Record)", size: 8) +!213 = !DILocation(line: 81, column: 7, scope: !209) +!214 = !DILocalVariable(name: "$retval_268", scope: !209, file: !2, line: 82, type: !50) +!215 = !DILocation(line: 82, column: 5, scope: !209) +!216 = !DILocation(line: 83, column: 15, scope: !217) +!217 = distinct !DILexicalBlock(scope: !218, file: !2, line: 83, column: 7) +!218 = distinct !DILexicalBlock(scope: !209, file: !2, line: 82, column: 5) +!219 = !DILocation(line: 85, column: 7, scope: !220) +!220 = distinct !DILexicalBlock(scope: !218, file: !2, line: 84, column: 7) +!221 = !DILocation(line: 86, column: 34, scope: !222) +!222 = distinct !DILexicalBlock(scope: !223, file: !2, line: 86, column: 9) +!223 = distinct !DILexicalBlock(scope: !220, file: !2, line: 85, column: 7) +!224 = distinct !DISubprogram(name: "$fundef_269", linkageName: "$fundef_269", scope: !2, file: !2, line: 77, type: !4, scopeLine: 77, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!225 = !DILocalVariable(name: "msg", scope: !224, file: !2, line: 76, type: !192) +!226 = !DILocation(line: 76, column: 7, scope: !224) +!227 = !DILocalVariable(name: "$retval_270", scope: !224, file: !2, line: 77, type: !228) +!228 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "Event", baseType: !229, size: 8, align: 8, dwarfAddressSpace: 0) +!229 = !DIBasicType(name: "Event", size: 8) +!230 = !DILocation(line: 77, column: 5, scope: !224) +!231 = distinct !DISubprogram(name: "$fundef_275", linkageName: "$fundef_275", scope: !2, file: !2, line: 74, type: !4, scopeLine: 74, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!232 = !DILocalVariable(name: "resolver", scope: !231, file: !2, line: 73, type: !50) +!233 = !DILocation(line: 73, column: 7, scope: !231) +!234 = !DILocalVariable(name: "$retval_276", scope: !231, file: !2, line: 74, type: !228) +!235 = !DILocation(line: 74, column: 5, scope: !231) +!236 = distinct !DISubprogram(name: "$fundef_273", linkageName: "$fundef_273", scope: !2, file: !2, line: 73, type: !4, scopeLine: 73, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!237 = !DILocalVariable(name: "owner", scope: !236, file: !2, line: 72, type: !50) +!238 = !DILocation(line: 72, column: 7, scope: !236) +!239 = !DILocation(line: 74, column: 5, scope: !236) +!240 = distinct !DISubprogram(name: "$fundef_271", linkageName: "$fundef_271", scope: !2, file: !2, line: 72, type: !4, scopeLine: 72, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!241 = !DILocalVariable(name: "node", scope: !240, file: !2, line: 71, type: !195) +!242 = !DILocation(line: 71, column: 7, scope: !240) +!243 = !DILocation(line: 73, column: 3, scope: !240) +!244 = distinct !DISubprogram(name: "$fundef_279", linkageName: "$fundef_279", scope: !2, file: !2, line: 69, type: !4, scopeLine: 69, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!245 = !DILocalVariable(name: "label", scope: !244, file: !2, line: 68, type: !192) +!246 = !DILocation(line: 68, column: 7, scope: !244) +!247 = !DILocalVariable(name: "$retval_280", scope: !244, file: !2, line: 69, type: !228) +!248 = !DILocation(line: 69, column: 5, scope: !244) +!249 = distinct !DISubprogram(name: "$fundef_277", linkageName: "$fundef_277", scope: !2, file: !2, line: 68, type: !4, scopeLine: 68, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!250 = !DILocalVariable(name: "parent", scope: !249, file: !2, line: 67, type: !195) +!251 = !DILocation(line: 67, column: 7, scope: !249) +!252 = !DILocation(line: 69, column: 5, scope: !249) +!253 = distinct !DISubprogram(name: "$fundef_281", linkageName: "$fundef_281", scope: !2, file: !2, line: 65, type: !4, scopeLine: 65, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!254 = !DILocalVariable(name: "address", scope: !253, file: !2, line: 64, type: !50) +!255 = !DILocation(line: 64, column: 7, scope: !253) +!256 = !DILocalVariable(name: "$retval_282", scope: !253, file: !2, line: 65, type: !228) +!257 = !DILocation(line: 65, column: 5, scope: !253) +!258 = distinct !DISubprogram(name: "$fundef_283", linkageName: "$fundef_283", scope: !2, file: !2, line: 62, type: !4, scopeLine: 62, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!259 = !DILocalVariable(name: "address", scope: !258, file: !2, line: 61, type: !50) +!260 = !DILocation(line: 61, column: 7, scope: !258) +!261 = !DILocalVariable(name: "$retval_284", scope: !258, file: !2, line: 62, type: !228) +!262 = !DILocation(line: 62, column: 5, scope: !258) +!263 = distinct !DISubprogram(name: "$fundef_289", linkageName: "$fundef_289", scope: !2, file: !2, line: 59, type: !4, scopeLine: 59, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!264 = !DILocalVariable(name: "isApproved", scope: !263, file: !2, line: 58, type: !13) +!265 = !DILocation(line: 58, column: 7, scope: !263) +!266 = !DILocalVariable(name: "$retval_290", scope: !263, file: !2, line: 59, type: !228) +!267 = !DILocation(line: 59, column: 5, scope: !263) +!268 = distinct !DISubprogram(name: "$fundef_287", linkageName: "$fundef_287", scope: !2, file: !2, line: 58, type: !4, scopeLine: 58, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!269 = !DILocalVariable(name: "operator", scope: !268, file: !2, line: 57, type: !50) +!270 = !DILocation(line: 57, column: 7, scope: !268) +!271 = !DILocation(line: 59, column: 5, scope: !268) +!272 = distinct !DISubprogram(name: "$fundef_285", linkageName: "$fundef_285", scope: !2, file: !2, line: 57, type: !4, scopeLine: 57, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!273 = !DILocalVariable(name: "user", scope: !272, file: !2, line: 56, type: !50) +!274 = !DILocation(line: 56, column: 7, scope: !272) +!275 = !DILocation(line: 58, column: 3, scope: !272) +!276 = distinct !DISubprogram(name: "$fundef_293", linkageName: "$fundef_293", scope: !2, file: !2, line: 54, type: !4, scopeLine: 54, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!277 = !DILocalVariable(name: "isApproved", scope: !276, file: !2, line: 53, type: !13) +!278 = !DILocation(line: 53, column: 7, scope: !276) +!279 = !DILocalVariable(name: "$retval_294", scope: !276, file: !2, line: 54, type: !228) +!280 = !DILocation(line: 54, column: 5, scope: !276) +!281 = distinct !DISubprogram(name: "$fundef_291", linkageName: "$fundef_291", scope: !2, file: !2, line: 53, type: !4, scopeLine: 53, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!282 = !DILocalVariable(name: "address", scope: !281, file: !2, line: 52, type: !50) +!283 = !DILocation(line: 52, column: 7, scope: !281) +!284 = !DILocation(line: 54, column: 5, scope: !281) +!285 = distinct !DISubprogram(name: "$fundef_297", linkageName: "$fundef_297", scope: !2, file: !2, line: 39, type: !4, scopeLine: 39, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!286 = !DILocalVariable(name: "b2", scope: !285, file: !2, line: 38, type: !13) +!287 = !DILocation(line: 38, column: 7, scope: !285) +!288 = !DILocalVariable(name: "$retval_298", scope: !285, file: !2, line: 39, type: !13) +!289 = !DILocation(line: 39, column: 5, scope: !285) +!290 = !DILocation(line: 41, column: 7, scope: !291) +!291 = distinct !DILexicalBlock(scope: !292, file: !2, line: 40, column: 7) +!292 = distinct !DILexicalBlock(scope: !285, file: !2, line: 39, column: 5) +!293 = !DILocation(line: 42, column: 17, scope: !294) +!294 = distinct !DILexicalBlock(scope: !295, file: !2, line: 42, column: 9) +!295 = distinct !DILexicalBlock(scope: !291, file: !2, line: 41, column: 7) +!296 = !DILocation(line: 43, column: 18, scope: !297) +!297 = distinct !DILexicalBlock(scope: !295, file: !2, line: 43, column: 9) +!298 = !DILocation(line: 46, column: 7, scope: !299) +!299 = distinct !DILexicalBlock(scope: !292, file: !2, line: 45, column: 7) +!300 = !DILocation(line: 47, column: 17, scope: !301) +!301 = distinct !DILexicalBlock(scope: !302, file: !2, line: 47, column: 9) +!302 = distinct !DILexicalBlock(scope: !299, file: !2, line: 46, column: 7) +!303 = !DILocation(line: 48, column: 18, scope: !304) +!304 = distinct !DILexicalBlock(scope: !302, file: !2, line: 48, column: 9) +!305 = distinct !DISubprogram(name: "$fundef_295", linkageName: "$fundef_295", scope: !2, file: !2, line: 38, type: !4, scopeLine: 38, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!306 = !DILocalVariable(name: "b1", scope: !305, file: !2, line: 37, type: !13) +!307 = !DILocation(line: 37, column: 7, scope: !305) +!308 = !DILocation(line: 39, column: 5, scope: !305) +!309 = distinct !DISubprogram(name: "$fundef_323", linkageName: "$fundef_323", scope: !2, file: !2, line: 33, type: !4, scopeLine: 33, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!310 = !DILocalVariable(name: "v", scope: !309, file: !2, line: 32, type: !50) +!311 = !DILocation(line: 32, column: 18, scope: !309) +!312 = !DILocalVariable(name: "$retval_324", scope: !309, file: !2, line: 33, type: !13) +!313 = !DILocation(line: 33, column: 7, scope: !309) +!314 = !DILocalVariable(name: "b", scope: !309, file: !2, line: 33, type: !13) +!315 = !DILocation(line: 33, column: 11, scope: !309) +!316 = !DILocation(line: 33, column: 15, scope: !309) +!317 = !DILocalVariable(name: "$$BoolUtils.negb_11_73", scope: !309, file: !2, line: 34, type: !13) +!318 = !DILocation(line: 34, column: 8, scope: !309) +!319 = distinct !DISubprogram(name: "$fundef_321", linkageName: "$fundef_321", scope: !2, file: !2, line: 31, type: !4, scopeLine: 31, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!320 = !DILocalVariable(name: "bs", scope: !319, file: !2, line: 30, type: !50) +!321 = !DILocation(line: 30, column: 7, scope: !319) +!322 = !DILocalVariable(name: "$retval_322", scope: !319, file: !2, line: 31, type: !83) +!323 = !DILocation(line: 31, column: 5, scope: !319) +!324 = !DILocation(line: 31, column: 30, scope: !319) +!325 = !DILocation(line: 31, column: 29, scope: !319) +!326 = !DILocation(line: 33, column: 7, scope: !319) +!327 = !DILocation(line: 35, column: 7, scope: !319) +!328 = !DILocalVariable(name: "$listByStr20Filter_75", scope: !319, file: !2, line: 35, type: !83) +!329 = distinct !DISubprogram(name: "$fundef_319", linkageName: "$fundef_319", scope: !2, file: !2, line: 30, type: !4, scopeLine: 30, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!330 = !DILocalVariable(name: "list", scope: !329, file: !2, line: 29, type: !83) +!331 = !DILocation(line: 29, column: 7, scope: !329) +!332 = !DILocation(line: 31, column: 5, scope: !329) +!333 = distinct !DISubprogram(name: "$fundef_317", linkageName: "$fundef_317", scope: !58, file: !58, line: 22, type: !4, scopeLine: 22, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!334 = !DILocalVariable(name: "b", scope: !333, file: !58, line: 21, type: !13) +!335 = !DILocation(line: 21, column: 8, scope: !333) +!336 = !DILocalVariable(name: "$retval_318", scope: !333, file: !58, line: 22, type: !13) +!337 = !DILocation(line: 22, column: 5, scope: !333) +!338 = !DILocation(line: 23, column: 15, scope: !339) +!339 = distinct !DILexicalBlock(scope: !340, file: !58, line: 23, column: 7) +!340 = distinct !DILexicalBlock(scope: !333, file: !58, line: 22, column: 5) +!341 = !DILocation(line: 24, column: 16, scope: !342) +!342 = distinct !DILexicalBlock(scope: !340, file: !58, line: 24, column: 7) +!343 = distinct !DISubprogram(name: "$fundef_315", linkageName: "$fundef_315", scope: !88, file: !88, line: 40, type: !4, scopeLine: 40, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!344 = !DILocalVariable(name: "z", scope: !343, file: !88, line: 39, type: !83) +!345 = !DILocation(line: 39, column: 37, scope: !343) +!346 = !DILocalVariable(name: "$retval_316", scope: !343, file: !88, line: 40, type: !83) +!347 = !DILocation(line: 40, column: 7, scope: !343) +!348 = !DILocalVariable(name: "h1", scope: !343, file: !88, line: 40, type: !13) +!349 = !DILocation(line: 40, column: 11, scope: !343) +!350 = !DILocalVariable(name: "$f_70", scope: !343, file: !88, line: 40, type: !13) +!351 = !DILocation(line: 40, column: 16, scope: !343) +!352 = !DILocation(line: 41, column: 7, scope: !343) +!353 = !DILocation(line: 42, column: 17, scope: !354) +!354 = distinct !DILexicalBlock(scope: !355, file: !88, line: 42, column: 9) +!355 = distinct !DILexicalBlock(scope: !343, file: !88, line: 41, column: 7) +!356 = !DILocation(line: 43, column: 18, scope: !357) +!357 = distinct !DILexicalBlock(scope: !355, file: !88, line: 43, column: 9) +!358 = distinct !DISubprogram(name: "$fundef_313", linkageName: "$fundef_313", scope: !88, file: !88, line: 39, type: !4, scopeLine: 39, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!359 = !DILocalVariable(name: "h", scope: !358, file: !88, line: 39, type: !50) +!360 = !DILocation(line: 39, column: 21, scope: !358) +!361 = !DILocation(line: 40, column: 7, scope: !358) +!362 = distinct !DISubprogram(name: "$fundef_311", linkageName: "$fundef_311", scope: !88, file: !88, line: 38, type: !4, scopeLine: 38, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!363 = !DILocation(line: 38, column: 18, scope: !362) +!364 = !DILocation(line: 38, column: 17, scope: !362) +!365 = !DILocation(line: 39, column: 32, scope: !362) +!366 = !DILocalVariable(name: "init", scope: !362, file: !88, line: 45, type: !83) +!367 = !DILocation(line: 45, column: 9, scope: !362) +!368 = !DILocation(line: 45, column: 16, scope: !362) +!369 = !DILocation(line: 46, column: 5, scope: !362) +!370 = distinct !DISubprogram(name: "$fundef_309", linkageName: "$fundef_309", scope: !88, file: !88, line: 38, type: !4, scopeLine: 38, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!371 = !DILocation(line: 38, column: 5, scope: !370) +!372 = distinct !DISubprogram(name: "$fundef_307", linkageName: "$fundef_307", scope: !153, file: !153, line: 1, type: !4, scopeLine: 1, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!373 = !DILocalVariable(name: "l", scope: !372, file: !153, line: 1, type: !83) +!374 = !DILocation(line: 1, column: 22, scope: !372) +!375 = !DILocalVariable(name: "$retval_308", scope: !372, file: !153, line: 1, type: !83) +!376 = !DILocation(line: 1, column: 37, scope: !372) +!377 = !DILocalVariable(name: "res", scope: !378, file: !153, line: 1, type: !83) +!378 = distinct !DILexicalBlock(scope: !379, file: !153, line: 1, column: 52) +!379 = distinct !DILexicalBlock(scope: !372, file: !153, line: 1, column: 37) +!380 = !DILocation(line: 1, column: 68, scope: !378) +!381 = !DILocation(line: 1, column: 74, scope: !378) +!382 = !DILocalVariable(name: "$g_67", scope: !378, file: !153, line: 1, type: !83) +!383 = !DILocation(line: 1, column: 83, scope: !378) +!384 = !DILocalVariable(name: "$f_69", scope: !378, file: !153, line: 1, type: !83) +!385 = !DILocation(line: 1, column: 100, scope: !386) +!386 = distinct !DILexicalBlock(scope: !379, file: !153, line: 1, column: 93) +!387 = distinct !DISubprogram(name: "$fundef_305", linkageName: "$fundef_305", scope: !153, file: !153, line: 1, type: !4, scopeLine: 1, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!388 = !DILocalVariable(name: "z", scope: !387, file: !153, line: 1, type: !83) +!389 = !DILocation(line: 1, column: 6, scope: !387) +!390 = !DILocation(line: 1, column: 37, scope: !387) +!391 = distinct !DISubprogram(name: "$fundef_303", linkageName: "$fundef_303", scope: !153, file: !153, line: 1, type: !4, scopeLine: 1, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!392 = !DILocation(line: 1, column: 17, scope: !391) +!393 = distinct !DISubprogram(name: "$fundef_301", linkageName: "$fundef_301", scope: !153, file: !153, line: 1, type: !4, scopeLine: 1, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!394 = !DILocation(line: 1, column: 17, scope: !393) +!395 = distinct !DISubprogram(name: "$fundef_299", linkageName: "$fundef_299", scope: !153, file: !153, line: 1, type: !4, scopeLine: 1, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!396 = !DILocation(line: 1, column: 17, scope: !395) +!397 = distinct !DISubprogram(name: "$fundef_371", linkageName: "$fundef_371", scope: !2, file: !2, line: 27, type: !4, scopeLine: 27, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!398 = !DILocalVariable(name: "bs", scope: !397, file: !2, line: 26, type: !50) +!399 = !DILocation(line: 26, column: 7, scope: !397) +!400 = !DILocalVariable(name: "$retval_372", scope: !397, file: !2, line: 27, type: !13) +!401 = !DILocation(line: 27, column: 5, scope: !397) +!402 = !DILocalVariable(name: "b", scope: !397, file: !2, line: 27, type: !13) +!403 = !DILocation(line: 27, column: 9, scope: !397) +!404 = !DILocation(line: 27, column: 13, scope: !397) +!405 = !DILocalVariable(name: "$$ud-registry.listByStr20Contains_9_64", scope: !397, file: !2, line: 27, type: !13) +!406 = !DILocalVariable(name: "$$BoolUtils.negb_10_65", scope: !397, file: !2, line: 27, type: !13) +!407 = !DILocation(line: 27, column: 44, scope: !397) +!408 = distinct !DISubprogram(name: "$fundef_369", linkageName: "$fundef_369", scope: !2, file: !2, line: 26, type: !4, scopeLine: 26, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!409 = !DILocalVariable(name: "list", scope: !408, file: !2, line: 25, type: !83) +!410 = !DILocation(line: 25, column: 7, scope: !408) +!411 = !DILocation(line: 27, column: 5, scope: !408) +!412 = distinct !DISubprogram(name: "$fundef_367", linkageName: "$fundef_367", scope: !58, file: !58, line: 22, type: !4, scopeLine: 22, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!413 = !DILocalVariable(name: "b", scope: !412, file: !58, line: 21, type: !13) +!414 = !DILocation(line: 21, column: 8, scope: !412) +!415 = !DILocalVariable(name: "$retval_368", scope: !412, file: !58, line: 22, type: !13) +!416 = !DILocation(line: 22, column: 5, scope: !412) +!417 = !DILocation(line: 23, column: 15, scope: !418) +!418 = distinct !DILexicalBlock(scope: !419, file: !58, line: 23, column: 7) +!419 = distinct !DILexicalBlock(scope: !412, file: !58, line: 22, column: 5) +!420 = !DILocation(line: 24, column: 16, scope: !421) +!421 = distinct !DILexicalBlock(scope: !419, file: !58, line: 24, column: 7) +!422 = distinct !DISubprogram(name: "$fundef_365", linkageName: "$fundef_365", scope: !2, file: !2, line: 22, type: !4, scopeLine: 22, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!423 = !DILocalVariable(name: "bs", scope: !422, file: !2, line: 21, type: !50) +!424 = !DILocation(line: 21, column: 7, scope: !422) +!425 = !DILocalVariable(name: "$retval_366", scope: !422, file: !2, line: 22, type: !13) +!426 = !DILocation(line: 22, column: 5, scope: !422) +!427 = !DILocation(line: 22, column: 27, scope: !422) +!428 = !DILocation(line: 22, column: 26, scope: !422) +!429 = !DILocation(line: 23, column: 7, scope: !422) +!430 = !DILocalVariable(name: "$listMemByStr20_62", scope: !422, file: !2, line: 23, type: !13) +!431 = distinct !DISubprogram(name: "$fundef_363", linkageName: "$fundef_363", scope: !2, file: !2, line: 21, type: !4, scopeLine: 21, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!432 = !DILocalVariable(name: "list", scope: !431, file: !2, line: 20, type: !83) +!433 = !DILocation(line: 20, column: 7, scope: !431) +!434 = !DILocation(line: 22, column: 5, scope: !431) +!435 = distinct !DISubprogram(name: "$fundef_361", linkageName: "$fundef_361", scope: !88, file: !88, line: 252, type: !4, scopeLine: 252, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!436 = !DILocalVariable(name: "m", scope: !435, file: !88, line: 251, type: !50) +!437 = !DILocation(line: 251, column: 38, scope: !435) +!438 = !DILocation(line: 252, column: 19, scope: !435) +!439 = !DILocation(line: 253, column: 15, scope: !435) +!440 = !DILocation(line: 253, column: 14, scope: !435) +!441 = !DILocation(line: 254, column: 5, scope: !435) +!442 = distinct !DISubprogram(name: "$fundef_359", linkageName: "$fundef_359", scope: !88, file: !88, line: 251, type: !4, scopeLine: 251, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!443 = !DILocation(line: 252, column: 5, scope: !442) +!444 = distinct !DISubprogram(name: "$fundef_357", linkageName: "$fundef_357", scope: !88, file: !88, line: 251, type: !4, scopeLine: 251, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!445 = !DILocation(line: 251, column: 33, scope: !444) +!446 = distinct !DISubprogram(name: "$fundef_355", linkageName: "$fundef_355", scope: !88, file: !88, line: 241, type: !4, scopeLine: 241, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!447 = !DILocalVariable(name: "ls", scope: !446, file: !88, line: 240, type: !83) +!448 = !DILocation(line: 240, column: 32, scope: !446) +!449 = !DILocalVariable(name: "$retval_356", scope: !446, file: !88, line: 241, type: !13) +!450 = !DILocation(line: 241, column: 5, scope: !446) +!451 = !DILocation(line: 241, column: 17, scope: !446) +!452 = !DILocation(line: 241, column: 16, scope: !446) +!453 = !DILocalVariable(name: "search", scope: !446, file: !88, line: 242, type: !44) +!454 = !DILocation(line: 242, column: 9, scope: !446) +!455 = !DILocation(line: 242, column: 18, scope: !446) +!456 = !DILocalVariable(name: "$find_57", scope: !446, file: !88, line: 242, type: !44) +!457 = !DILocation(line: 243, column: 5, scope: !446) +!458 = !DILocation(line: 244, column: 17, scope: !459) +!459 = distinct !DILexicalBlock(scope: !460, file: !88, line: 244, column: 7) +!460 = distinct !DILexicalBlock(scope: !446, file: !88, line: 243, column: 5) +!461 = !DILocation(line: 245, column: 15, scope: !462) +!462 = distinct !DILexicalBlock(scope: !460, file: !88, line: 245, column: 7) +!463 = distinct !DISubprogram(name: "$fundef_353", linkageName: "$fundef_353", scope: !88, file: !88, line: 240, type: !4, scopeLine: 240, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!464 = !DILocation(line: 241, column: 5, scope: !463) +!465 = distinct !DISubprogram(name: "$fundef_351", linkageName: "$fundef_351", scope: !88, file: !88, line: 240, type: !4, scopeLine: 240, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!466 = !DILocation(line: 240, column: 27, scope: !465) +!467 = distinct !DISubprogram(name: "$fundef_349", linkageName: "$fundef_349", scope: !88, file: !88, line: 230, type: !4, scopeLine: 230, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!468 = !DILocalVariable(name: "$retval_350", scope: !467, file: !88, line: 230, type: !44) +!469 = !DILocation(line: 230, column: 9, scope: !467) +!470 = !DILocalVariable(name: "p_x", scope: !467, file: !88, line: 230, type: !13) +!471 = !DILocation(line: 230, column: 13, scope: !467) +!472 = !DILocalVariable(name: "$p_52", scope: !467, file: !88, line: 230, type: !13) +!473 = !DILocation(line: 230, column: 19, scope: !467) +!474 = !DILocation(line: 231, column: 9, scope: !467) +!475 = !DILocation(line: 232, column: 19, scope: !476) +!476 = distinct !DILexicalBlock(scope: !477, file: !88, line: 232, column: 11) +!477 = distinct !DILexicalBlock(scope: !467, file: !88, line: 231, column: 9) +!478 = !DILocalVariable(name: "$recurse_53", scope: !479, file: !88, line: 233, type: !44) +!479 = distinct !DILexicalBlock(scope: !477, file: !88, line: 233, column: 11) +!480 = !DILocation(line: 233, column: 20, scope: !479) +!481 = distinct !DISubprogram(name: "$fundef_347", linkageName: "$fundef_347", scope: !88, file: !88, line: 229, type: !4, scopeLine: 229, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!482 = !DILocalVariable(name: "x", scope: !481, file: !88, line: 228, type: !50) +!483 = !DILocation(line: 228, column: 40, scope: !481) +!484 = !DILocation(line: 230, column: 9, scope: !481) +!485 = distinct !DISubprogram(name: "$fundef_345", linkageName: "$fundef_345", scope: !88, file: !88, line: 228, type: !4, scopeLine: 228, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!486 = !DILocalVariable(name: "ignore", scope: !485, file: !88, line: 228, type: !44) +!487 = !DILocation(line: 228, column: 12, scope: !485) +!488 = !DILocation(line: 229, column: 7, scope: !485) +!489 = distinct !DISubprogram(name: "$fundef_343", linkageName: "$fundef_343", scope: !88, file: !88, line: 224, type: !4, scopeLine: 224, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!490 = !DILocation(line: 224, column: 18, scope: !489) +!491 = !DILocation(line: 224, column: 17, scope: !489) +!492 = !DILocalVariable(name: "init", scope: !489, file: !88, line: 225, type: !44) +!493 = !DILocation(line: 225, column: 9, scope: !489) +!494 = !DILocation(line: 225, column: 16, scope: !489) +!495 = !DILocation(line: 228, column: 35, scope: !489) +!496 = !DILocation(line: 235, column: 5, scope: !489) +!497 = distinct !DISubprogram(name: "$fundef_341", linkageName: "$fundef_341", scope: !88, file: !88, line: 224, type: !4, scopeLine: 224, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!498 = !DILocation(line: 224, column: 5, scope: !497) +!499 = distinct !DISubprogram(name: "$fundef_339", linkageName: "$fundef_339", scope: !153, file: !153, line: 1, type: !4, scopeLine: 1, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!500 = !DILocalVariable(name: "k", scope: !499, file: !153, line: 1, type: !44) +!501 = !DILocation(line: 1, column: 83, scope: !499) +!502 = !DILocalVariable(name: "$retval_340", scope: !499, file: !153, line: 1, type: !44) +!503 = !DILocation(line: 1, column: 94, scope: !499) +!504 = !DILocalVariable(name: "$g_48", scope: !499, file: !153, line: 1, type: !44) +!505 = distinct !DISubprogram(name: "$fundef_337", linkageName: "$fundef_337", scope: !153, file: !153, line: 1, type: !4, scopeLine: 1, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!506 = !DILocalVariable(name: "l", scope: !505, file: !153, line: 1, type: !83) +!507 = !DILocation(line: 1, column: 22, scope: !505) +!508 = !DILocalVariable(name: "$retval_338", scope: !505, file: !153, line: 1, type: !44) +!509 = !DILocation(line: 1, column: 37, scope: !505) +!510 = !DILocation(line: 1, column: 94, scope: !511) +!511 = distinct !DILexicalBlock(scope: !512, file: !153, line: 1, column: 52) +!512 = distinct !DILexicalBlock(scope: !505, file: !153, line: 1, column: 37) +!513 = !DILocation(line: 1, column: 106, scope: !511) +!514 = !DILocalVariable(name: "$f_51", scope: !511, file: !153, line: 1, type: !44) +!515 = !DILocation(line: 1, column: 129, scope: !516) +!516 = distinct !DILexicalBlock(scope: !512, file: !153, line: 1, column: 122) +!517 = distinct !DISubprogram(name: "$fundef_335", linkageName: "$fundef_335", scope: !153, file: !153, line: 1, type: !4, scopeLine: 1, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!518 = !DILocalVariable(name: "z", scope: !517, file: !153, line: 1, type: !44) +!519 = !DILocation(line: 1, column: 6, scope: !517) +!520 = !DILocation(line: 1, column: 37, scope: !517) +!521 = distinct !DISubprogram(name: "$fundef_333", linkageName: "$fundef_333", scope: !153, file: !153, line: 1, type: !4, scopeLine: 1, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!522 = !DILocation(line: 1, column: 17, scope: !521) +!523 = distinct !DISubprogram(name: "$fundef_331", linkageName: "$fundef_331", scope: !153, file: !153, line: 1, type: !4, scopeLine: 1, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!524 = !DILocation(line: 1, column: 17, scope: !523) +!525 = distinct !DISubprogram(name: "$fundef_329", linkageName: "$fundef_329", scope: !153, file: !153, line: 1, type: !4, scopeLine: 1, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!526 = !DILocation(line: 1, column: 17, scope: !525) +!527 = distinct !DISubprogram(name: "$fundef_327", linkageName: "$fundef_327", scope: !2, file: !2, line: 18, type: !4, scopeLine: 18, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!528 = !DILocalVariable(name: "bs2", scope: !527, file: !2, line: 17, type: !50) +!529 = !DILocation(line: 17, column: 7, scope: !527) +!530 = !DILocalVariable(name: "$retval_328", scope: !527, file: !2, line: 18, type: !13) +!531 = !DILocation(line: 18, column: 5, scope: !527) +!532 = distinct !DISubprogram(name: "$fundef_325", linkageName: "$fundef_325", scope: !2, file: !2, line: 17, type: !4, scopeLine: 17, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!533 = !DILocalVariable(name: "bs1", scope: !532, file: !2, line: 16, type: !50) +!534 = !DILocation(line: 16, column: 7, scope: !532) +!535 = !DILocation(line: 18, column: 5, scope: !532) +!536 = distinct !DISubprogram(name: "$fundef_413", linkageName: "$fundef_413", scope: !2, file: !2, line: 22, type: !4, scopeLine: 22, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!537 = !DILocalVariable(name: "bs", scope: !536, file: !2, line: 21, type: !50) +!538 = !DILocation(line: 21, column: 7, scope: !536) +!539 = !DILocalVariable(name: "$retval_414", scope: !536, file: !2, line: 22, type: !13) +!540 = !DILocation(line: 22, column: 5, scope: !536) +!541 = !DILocation(line: 22, column: 27, scope: !536) +!542 = !DILocation(line: 22, column: 26, scope: !536) +!543 = !DILocation(line: 23, column: 7, scope: !536) +!544 = !DILocalVariable(name: "$listMemByStr20_46", scope: !536, file: !2, line: 23, type: !13) +!545 = distinct !DISubprogram(name: "$fundef_411", linkageName: "$fundef_411", scope: !2, file: !2, line: 21, type: !4, scopeLine: 21, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!546 = !DILocalVariable(name: "list", scope: !545, file: !2, line: 20, type: !83) +!547 = !DILocation(line: 20, column: 7, scope: !545) +!548 = !DILocation(line: 22, column: 5, scope: !545) +!549 = distinct !DISubprogram(name: "$fundef_409", linkageName: "$fundef_409", scope: !88, file: !88, line: 252, type: !4, scopeLine: 252, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!550 = !DILocalVariable(name: "m", scope: !549, file: !88, line: 251, type: !50) +!551 = !DILocation(line: 251, column: 38, scope: !549) +!552 = !DILocation(line: 252, column: 19, scope: !549) +!553 = !DILocation(line: 253, column: 15, scope: !549) +!554 = !DILocation(line: 253, column: 14, scope: !549) +!555 = !DILocation(line: 254, column: 5, scope: !549) +!556 = distinct !DISubprogram(name: "$fundef_407", linkageName: "$fundef_407", scope: !88, file: !88, line: 251, type: !4, scopeLine: 251, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!557 = !DILocation(line: 252, column: 5, scope: !556) +!558 = distinct !DISubprogram(name: "$fundef_405", linkageName: "$fundef_405", scope: !88, file: !88, line: 251, type: !4, scopeLine: 251, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!559 = !DILocation(line: 251, column: 33, scope: !558) +!560 = distinct !DISubprogram(name: "$fundef_403", linkageName: "$fundef_403", scope: !88, file: !88, line: 241, type: !4, scopeLine: 241, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!561 = !DILocalVariable(name: "ls", scope: !560, file: !88, line: 240, type: !83) +!562 = !DILocation(line: 240, column: 32, scope: !560) +!563 = !DILocalVariable(name: "$retval_404", scope: !560, file: !88, line: 241, type: !13) +!564 = !DILocation(line: 241, column: 5, scope: !560) +!565 = !DILocation(line: 241, column: 17, scope: !560) +!566 = !DILocation(line: 241, column: 16, scope: !560) +!567 = !DILocalVariable(name: "search", scope: !560, file: !88, line: 242, type: !44) +!568 = !DILocation(line: 242, column: 9, scope: !560) +!569 = !DILocation(line: 242, column: 18, scope: !560) +!570 = !DILocalVariable(name: "$find_41", scope: !560, file: !88, line: 242, type: !44) +!571 = !DILocation(line: 243, column: 5, scope: !560) +!572 = !DILocation(line: 244, column: 17, scope: !573) +!573 = distinct !DILexicalBlock(scope: !574, file: !88, line: 244, column: 7) +!574 = distinct !DILexicalBlock(scope: !560, file: !88, line: 243, column: 5) +!575 = !DILocation(line: 245, column: 15, scope: !576) +!576 = distinct !DILexicalBlock(scope: !574, file: !88, line: 245, column: 7) +!577 = distinct !DISubprogram(name: "$fundef_401", linkageName: "$fundef_401", scope: !88, file: !88, line: 240, type: !4, scopeLine: 240, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!578 = !DILocation(line: 241, column: 5, scope: !577) +!579 = distinct !DISubprogram(name: "$fundef_399", linkageName: "$fundef_399", scope: !88, file: !88, line: 240, type: !4, scopeLine: 240, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!580 = !DILocation(line: 240, column: 27, scope: !579) +!581 = distinct !DISubprogram(name: "$fundef_397", linkageName: "$fundef_397", scope: !88, file: !88, line: 230, type: !4, scopeLine: 230, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!582 = !DILocalVariable(name: "$retval_398", scope: !581, file: !88, line: 230, type: !44) +!583 = !DILocation(line: 230, column: 9, scope: !581) +!584 = !DILocalVariable(name: "p_x", scope: !581, file: !88, line: 230, type: !13) +!585 = !DILocation(line: 230, column: 13, scope: !581) +!586 = !DILocalVariable(name: "$p_36", scope: !581, file: !88, line: 230, type: !13) +!587 = !DILocation(line: 230, column: 19, scope: !581) +!588 = !DILocation(line: 231, column: 9, scope: !581) +!589 = !DILocation(line: 232, column: 19, scope: !590) +!590 = distinct !DILexicalBlock(scope: !591, file: !88, line: 232, column: 11) +!591 = distinct !DILexicalBlock(scope: !581, file: !88, line: 231, column: 9) +!592 = !DILocalVariable(name: "$recurse_37", scope: !593, file: !88, line: 233, type: !44) +!593 = distinct !DILexicalBlock(scope: !591, file: !88, line: 233, column: 11) +!594 = !DILocation(line: 233, column: 20, scope: !593) +!595 = distinct !DISubprogram(name: "$fundef_395", linkageName: "$fundef_395", scope: !88, file: !88, line: 229, type: !4, scopeLine: 229, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!596 = !DILocalVariable(name: "x", scope: !595, file: !88, line: 228, type: !50) +!597 = !DILocation(line: 228, column: 40, scope: !595) +!598 = !DILocation(line: 230, column: 9, scope: !595) +!599 = distinct !DISubprogram(name: "$fundef_393", linkageName: "$fundef_393", scope: !88, file: !88, line: 228, type: !4, scopeLine: 228, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!600 = !DILocalVariable(name: "ignore", scope: !599, file: !88, line: 228, type: !44) +!601 = !DILocation(line: 228, column: 12, scope: !599) +!602 = !DILocation(line: 229, column: 7, scope: !599) +!603 = distinct !DISubprogram(name: "$fundef_391", linkageName: "$fundef_391", scope: !88, file: !88, line: 224, type: !4, scopeLine: 224, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!604 = !DILocation(line: 224, column: 18, scope: !603) +!605 = !DILocation(line: 224, column: 17, scope: !603) +!606 = !DILocalVariable(name: "init", scope: !603, file: !88, line: 225, type: !44) +!607 = !DILocation(line: 225, column: 9, scope: !603) +!608 = !DILocation(line: 225, column: 16, scope: !603) +!609 = !DILocation(line: 228, column: 35, scope: !603) +!610 = !DILocation(line: 235, column: 5, scope: !603) +!611 = distinct !DISubprogram(name: "$fundef_389", linkageName: "$fundef_389", scope: !88, file: !88, line: 224, type: !4, scopeLine: 224, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!612 = !DILocation(line: 224, column: 5, scope: !611) +!613 = distinct !DISubprogram(name: "$fundef_387", linkageName: "$fundef_387", scope: !153, file: !153, line: 1, type: !4, scopeLine: 1, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!614 = !DILocalVariable(name: "k", scope: !613, file: !153, line: 1, type: !44) +!615 = !DILocation(line: 1, column: 83, scope: !613) +!616 = !DILocalVariable(name: "$retval_388", scope: !613, file: !153, line: 1, type: !44) +!617 = !DILocation(line: 1, column: 94, scope: !613) +!618 = !DILocalVariable(name: "$g_32", scope: !613, file: !153, line: 1, type: !44) +!619 = distinct !DISubprogram(name: "$fundef_385", linkageName: "$fundef_385", scope: !153, file: !153, line: 1, type: !4, scopeLine: 1, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!620 = !DILocalVariable(name: "l", scope: !619, file: !153, line: 1, type: !83) +!621 = !DILocation(line: 1, column: 22, scope: !619) +!622 = !DILocalVariable(name: "$retval_386", scope: !619, file: !153, line: 1, type: !44) +!623 = !DILocation(line: 1, column: 37, scope: !619) +!624 = !DILocation(line: 1, column: 94, scope: !625) +!625 = distinct !DILexicalBlock(scope: !626, file: !153, line: 1, column: 52) +!626 = distinct !DILexicalBlock(scope: !619, file: !153, line: 1, column: 37) +!627 = !DILocation(line: 1, column: 106, scope: !625) +!628 = !DILocalVariable(name: "$f_35", scope: !625, file: !153, line: 1, type: !44) +!629 = !DILocation(line: 1, column: 129, scope: !630) +!630 = distinct !DILexicalBlock(scope: !626, file: !153, line: 1, column: 122) +!631 = distinct !DISubprogram(name: "$fundef_383", linkageName: "$fundef_383", scope: !153, file: !153, line: 1, type: !4, scopeLine: 1, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!632 = !DILocalVariable(name: "z", scope: !631, file: !153, line: 1, type: !44) +!633 = !DILocation(line: 1, column: 6, scope: !631) +!634 = !DILocation(line: 1, column: 37, scope: !631) +!635 = distinct !DISubprogram(name: "$fundef_381", linkageName: "$fundef_381", scope: !153, file: !153, line: 1, type: !4, scopeLine: 1, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!636 = !DILocation(line: 1, column: 17, scope: !635) +!637 = distinct !DISubprogram(name: "$fundef_379", linkageName: "$fundef_379", scope: !153, file: !153, line: 1, type: !4, scopeLine: 1, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!638 = !DILocation(line: 1, column: 17, scope: !637) +!639 = distinct !DISubprogram(name: "$fundef_377", linkageName: "$fundef_377", scope: !153, file: !153, line: 1, type: !4, scopeLine: 1, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!640 = !DILocation(line: 1, column: 17, scope: !639) +!641 = distinct !DISubprogram(name: "$fundef_375", linkageName: "$fundef_375", scope: !2, file: !2, line: 18, type: !4, scopeLine: 18, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!642 = !DILocalVariable(name: "bs2", scope: !641, file: !2, line: 17, type: !50) +!643 = !DILocation(line: 17, column: 7, scope: !641) +!644 = !DILocalVariable(name: "$retval_376", scope: !641, file: !2, line: 18, type: !13) +!645 = !DILocation(line: 18, column: 5, scope: !641) +!646 = distinct !DISubprogram(name: "$fundef_373", linkageName: "$fundef_373", scope: !2, file: !2, line: 17, type: !4, scopeLine: 17, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!647 = !DILocalVariable(name: "bs1", scope: !646, file: !2, line: 16, type: !50) +!648 = !DILocation(line: 16, column: 7, scope: !646) +!649 = !DILocation(line: 18, column: 5, scope: !646) +!650 = distinct !DISubprogram(name: "$fundef_415", linkageName: "$fundef_415", scope: !2, file: !2, line: 14, type: !4, scopeLine: 14, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!651 = !DILocalVariable(name: "msg", scope: !650, file: !2, line: 13, type: !652) +!652 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "Message", baseType: !653, size: 8, align: 8, dwarfAddressSpace: 0) +!653 = !DIBasicType(name: "Message", size: 8) +!654 = !DILocation(line: 13, column: 7, scope: !650) +!655 = !DILocalVariable(name: "$retval_416", scope: !650, file: !2, line: 14, type: !656) +!656 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "List (Message)", baseType: !657, size: 8, align: 8, dwarfAddressSpace: 0) +!657 = !DIBasicType(name: "List (Message)", size: 8) +!658 = !DILocation(line: 14, column: 5, scope: !650) +!659 = distinct !DISubprogram(name: "$fundef_199", linkageName: "$fundef_199", scope: !58, file: !58, line: 22, type: !4, scopeLine: 22, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!660 = !DILocalVariable(name: "b", scope: !659, file: !58, line: 21, type: !13) +!661 = !DILocation(line: 21, column: 8, scope: !659) +!662 = !DILocalVariable(name: "$retval_200", scope: !659, file: !58, line: 22, type: !13) +!663 = !DILocation(line: 22, column: 5, scope: !659) +!664 = !DILocation(line: 23, column: 15, scope: !665) +!665 = distinct !DILexicalBlock(scope: !666, file: !58, line: 23, column: 7) +!666 = distinct !DILexicalBlock(scope: !659, file: !58, line: 22, column: 5) +!667 = !DILocation(line: 24, column: 16, scope: !668) +!668 = distinct !DILexicalBlock(scope: !666, file: !58, line: 24, column: 7) +!669 = distinct !DISubprogram(name: "$fundef_203", linkageName: "$fundef_203", scope: !58, file: !58, line: 15, type: !4, scopeLine: 15, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!670 = !DILocalVariable(name: "c", scope: !669, file: !58, line: 14, type: !13) +!671 = !DILocation(line: 14, column: 26, scope: !669) +!672 = !DILocalVariable(name: "$retval_204", scope: !669, file: !58, line: 15, type: !13) +!673 = !DILocation(line: 15, column: 5, scope: !669) +!674 = !DILocation(line: 16, column: 16, scope: !675) +!675 = distinct !DILexicalBlock(scope: !676, file: !58, line: 16, column: 7) +!676 = distinct !DILexicalBlock(scope: !669, file: !58, line: 15, column: 5) +!677 = !DILocation(line: 17, column: 16, scope: !678) +!678 = distinct !DILexicalBlock(scope: !676, file: !58, line: 17, column: 7) +!679 = distinct !DISubprogram(name: "$fundef_201", linkageName: "$fundef_201", scope: !58, file: !58, line: 14, type: !4, scopeLine: 14, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!680 = !DILocalVariable(name: "b", scope: !679, file: !58, line: 14, type: !13) +!681 = !DILocation(line: 14, column: 8, scope: !679) +!682 = !DILocation(line: 15, column: 5, scope: !679) +!683 = distinct !DISubprogram(name: "$fundef_207", linkageName: "$fundef_207", scope: !58, file: !58, line: 8, type: !4, scopeLine: 8, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!684 = !DILocalVariable(name: "c", scope: !683, file: !58, line: 7, type: !13) +!685 = !DILocation(line: 7, column: 8, scope: !683) +!686 = !DILocalVariable(name: "$retval_208", scope: !683, file: !58, line: 8, type: !13) +!687 = !DILocation(line: 8, column: 5, scope: !683) +!688 = !DILocation(line: 9, column: 16, scope: !689) +!689 = distinct !DILexicalBlock(scope: !690, file: !58, line: 9, column: 7) +!690 = distinct !DILexicalBlock(scope: !683, file: !58, line: 8, column: 5) +!691 = !DILocation(line: 10, column: 16, scope: !692) +!692 = distinct !DILexicalBlock(scope: !690, file: !58, line: 10, column: 7) +!693 = distinct !DISubprogram(name: "$fundef_205", linkageName: "$fundef_205", scope: !58, file: !58, line: 7, type: !4, scopeLine: 7, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!694 = !DILocalVariable(name: "b", scope: !693, file: !58, line: 6, type: !13) +!695 = !DILocation(line: 6, column: 8, scope: !693) +!696 = !DILocation(line: 8, column: 5, scope: !693) +!697 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !698, file: !698, type: !4, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!698 = !DIFile(filename: ".", directory: ".") +!699 = !DILocation(line: 0, scope: !697) +!700 = !DILocation(line: 7, column: 3, scope: !697) +!701 = !DILocation(line: 14, column: 21, scope: !697) +!702 = !DILocation(line: 22, column: 5, scope: !697) +!703 = !DILocation(line: 7, column: 19, scope: !697) +!704 = !DILocation(line: 10, column: 18, scope: !697) +!705 = !DILocation(line: 11, column: 18, scope: !697) +!706 = !DILocation(line: 14, column: 5, scope: !697) +!707 = !DILocation(line: 17, column: 3, scope: !697) +!708 = !DILocation(line: 1, column: 17, scope: !697) +!709 = !DILocation(line: 222, column: 3, scope: !697) +!710 = !DILocation(line: 239, column: 3, scope: !697) +!711 = !DILocation(line: 250, column: 3, scope: !697) +!712 = !DILocation(line: 21, column: 3, scope: !697) +!713 = !DILocation(line: 26, column: 3, scope: !697) +!714 = !DILocation(line: 36, column: 3, scope: !697) +!715 = !DILocation(line: 30, column: 3, scope: !697) +!716 = !DILocation(line: 38, column: 3, scope: !697) +!717 = !DILocation(line: 53, column: 3, scope: !697) +!718 = !DILocation(line: 57, column: 3, scope: !697) +!719 = !DILocation(line: 62, column: 5, scope: !697) +!720 = !DILocation(line: 65, column: 5, scope: !697) +!721 = !DILocation(line: 68, column: 3, scope: !697) +!722 = !DILocation(line: 72, column: 3, scope: !697) +!723 = !DILocation(line: 77, column: 5, scope: !697) +!724 = !DILocation(line: 82, column: 5, scope: !697) +!725 = !DILocation(line: 91, column: 3, scope: !697) +!726 = !DILocation(line: 97, column: 3, scope: !697) +!727 = distinct !DISubprogram(name: "_deploy_ops", linkageName: "_deploy_ops", scope: !698, file: !698, type: !4, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!728 = !DILocalVariable(name: "$records_417", scope: !727, file: !2, line: 113, type: !729) +!729 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "Map (ByStr32) (ud-registry.Record)", baseType: !730, size: 8, align: 8, dwarfAddressSpace: 0) +!730 = !DIBasicType(name: "Map (ByStr32) (ud-registry.Record)", size: 8) +!731 = !DILocation(line: 113, column: 7, scope: !727) +!732 = !DILocalVariable(name: "empty", scope: !727, file: !2, line: 114, type: !729) +!733 = !DILocation(line: 114, column: 7, scope: !727) +!734 = !DILocation(line: 114, column: 15, scope: !727) +!735 = !DILocalVariable(name: "rootRecord", scope: !727, file: !2, line: 115, type: !736) +!736 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "ud-registry.Record", baseType: !737, size: 8, align: 8, dwarfAddressSpace: 0) +!737 = !DIBasicType(name: "ud-registry.Record", size: 8) +!738 = !DILocation(line: 115, column: 7, scope: !727) +!739 = !DILocation(line: 115, column: 20, scope: !727) +!740 = !DILocation(line: 116, column: 5, scope: !727) +!741 = !DILocalVariable(name: "$registrar_418", scope: !727, file: !2, line: 117, type: !50) +!742 = !DILocation(line: 117, column: 7, scope: !727) +!743 = !DILocation(line: 117, column: 28, scope: !727) +!744 = !DILocalVariable(name: "$approvals_419", scope: !727, file: !2, line: 118, type: !745) +!745 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "Map (ByStr32) (ByStr20)", baseType: !746, size: 8, align: 8, dwarfAddressSpace: 0) +!746 = !DIBasicType(name: "Map (ByStr32) (ByStr20)", size: 8) +!747 = !DILocation(line: 118, column: 7, scope: !727) +!748 = !DILocation(line: 118, column: 40, scope: !727) +!749 = !DILocalVariable(name: "$operators_420", scope: !727, file: !2, line: 119, type: !750) +!750 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "Map (ByStr20) (List (ByStr20))", baseType: !751, size: 8, align: 8, dwarfAddressSpace: 0) +!751 = !DIBasicType(name: "Map (ByStr20) (List (ByStr20))", size: 8) +!752 = !DILocation(line: 119, column: 7, scope: !727) +!753 = !DILocation(line: 119, column: 47, scope: !727) +!754 = !DILocalVariable(name: "$admins_421", scope: !727, file: !2, line: 120, type: !83) +!755 = !DILocation(line: 120, column: 7, scope: !727) +!756 = !DILocation(line: 120, column: 30, scope: !727) +!757 = distinct !DISubprogram(name: "setAdmin", linkageName: "setAdmin", scope: !2, file: !2, line: 121, type: !4, scopeLine: 121, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!758 = !DILocalVariable(name: "isApproved", scope: !757, file: !2, line: 121, type: !13) +!759 = !DILocation(line: 121, column: 39, scope: !757) +!760 = !DILocalVariable(name: "address", scope: !757, file: !2, line: 121, type: !50) +!761 = !DILocation(line: 121, column: 21, scope: !757) +!762 = !DILocalVariable(name: "_sender", scope: !757, file: !2, line: 121, type: !763) +!763 = !DIBasicType(name: "ByStr20 with end", size: 20) +!764 = !DILocation(line: 121, column: 12, scope: !757) +!765 = !DILocalVariable(name: "_origin", scope: !757, file: !2, line: 121, type: !763) +!766 = !DILocalVariable(name: "_amount", scope: !757, file: !2, line: 121, type: !767) +!767 = !DIBasicType(name: "Uint128", size: 16) +!768 = !DILocalVariable(name: "currentAdmins", scope: !757, file: !2, line: 122, type: !83) +!769 = !DILocation(line: 122, column: 3, scope: !757) +!770 = !DILocalVariable(name: "isSenderAdmin", scope: !757, file: !2, line: 123, type: !13) +!771 = !DILocation(line: 123, column: 3, scope: !757) +!772 = !DILocation(line: 123, column: 19, scope: !757) +!773 = !DILocalVariable(name: "$ud-registry.listByStr20Contains_108", scope: !757, file: !2, line: 123, type: !13) +!774 = !DILocation(line: 124, column: 3, scope: !757) +!775 = !DILocalVariable(name: "needsToChange", scope: !776, file: !2, line: 126, type: !13) +!776 = distinct !DILexicalBlock(scope: !777, file: !2, line: 125, column: 5) +!777 = distinct !DILexicalBlock(scope: !757, file: !2, line: 124, column: 3) +!778 = !DILocation(line: 126, column: 5, scope: !776) +!779 = !DILocalVariable(name: "b", scope: !776, file: !2, line: 127, type: !13) +!780 = !DILocation(line: 127, column: 11, scope: !776) +!781 = !DILocation(line: 127, column: 15, scope: !776) +!782 = !DILocalVariable(name: "$ud-registry.listByStr20Excludes_103", scope: !776, file: !2, line: 127, type: !13) +!783 = !DILocation(line: 127, column: 60, scope: !776) +!784 = !DILocalVariable(name: "$ud-registry.xandb_105", scope: !776, file: !2, line: 127, type: !13) +!785 = !DILocation(line: 128, column: 5, scope: !776) +!786 = !DILocalVariable(name: "newAdmins", scope: !787, file: !2, line: 130, type: !83) +!787 = distinct !DILexicalBlock(scope: !788, file: !2, line: 129, column: 7) +!788 = distinct !DILexicalBlock(scope: !776, file: !2, line: 128, column: 5) +!789 = !DILocation(line: 130, column: 7, scope: !787) +!790 = !DILocation(line: 130, column: 19, scope: !787) +!791 = !DILocation(line: 131, column: 19, scope: !792) +!792 = distinct !DILexicalBlock(scope: !793, file: !2, line: 131, column: 11) +!793 = distinct !DILexicalBlock(scope: !787, file: !2, line: 130, column: 19) +!794 = !DILocation(line: 132, column: 20, scope: !795) +!795 = distinct !DILexicalBlock(scope: !793, file: !2, line: 132, column: 11) +!796 = !DILocalVariable(name: "$ud-registry.listByStr20FilterOut_101", scope: !795, file: !2, line: 132, type: !83) +!797 = !DILocation(line: 134, column: 7, scope: !787) +!798 = !DILocalVariable(name: "e", scope: !787, file: !2, line: 135, type: !228) +!799 = !DILocation(line: 135, column: 7, scope: !787) +!800 = !DILocation(line: 135, column: 11, scope: !787) +!801 = !DILocalVariable(name: "$ud-registry.eAdminSet_99", scope: !787, file: !2, line: 135, type: !228) +!802 = !DILocation(line: 136, column: 7, scope: !787) +!803 = !DILocalVariable(name: "e", scope: !804, file: !2, line: 140, type: !228) +!804 = distinct !DILexicalBlock(scope: !777, file: !2, line: 139, column: 5) +!805 = !DILocation(line: 140, column: 5, scope: !804) +!806 = !DILocalVariable(name: "m", scope: !804, file: !2, line: 140, type: !192) +!807 = !DILocation(line: 140, column: 13, scope: !804) +!808 = !DILocation(line: 140, column: 44, scope: !804) +!809 = !DILocalVariable(name: "$ud-registry.eError_106", scope: !804, file: !2, line: 140, type: !228) +!810 = !DILocation(line: 140, column: 49, scope: !804) +!811 = !DILocation(line: 141, column: 5, scope: !804) +!812 = distinct !DISubprogram(name: "setAdmin", linkageName: "setAdmin", scope: !2, file: !2, line: 121, type: !4, scopeLine: 121, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!813 = !DILocation(line: 121, column: 12, scope: !812) +!814 = distinct !DISubprogram(name: "approve", linkageName: "approve", scope: !2, file: !2, line: 144, type: !4, scopeLine: 144, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!815 = !DILocalVariable(name: "address", scope: !814, file: !2, line: 144, type: !50) +!816 = !DILocation(line: 144, column: 35, scope: !814) +!817 = !DILocalVariable(name: "node", scope: !814, file: !2, line: 144, type: !195) +!818 = !DILocation(line: 144, column: 20, scope: !814) +!819 = !DILocalVariable(name: "_sender", scope: !814, file: !2, line: 144, type: !763) +!820 = !DILocation(line: 144, column: 12, scope: !814) +!821 = !DILocalVariable(name: "_origin", scope: !814, file: !2, line: 144, type: !763) +!822 = !DILocalVariable(name: "_amount", scope: !814, file: !2, line: 144, type: !767) +!823 = !DILocalVariable(name: "maybeRecord", scope: !814, file: !2, line: 145, type: !211) +!824 = !DILocation(line: 145, column: 3, scope: !814) +!825 = !DILocalVariable(name: "recordOwner", scope: !814, file: !2, line: 146, type: !50) +!826 = !DILocation(line: 146, column: 3, scope: !814) +!827 = !DILocalVariable(name: "$ud-registry.recordMemberOwner_112", scope: !814, file: !2, line: 146, type: !50) +!828 = !DILocation(line: 146, column: 17, scope: !814) +!829 = !DILocalVariable(name: "isSenderNodeOwner", scope: !814, file: !2, line: 147, type: !13) +!830 = !DILocation(line: 147, column: 3, scope: !814) +!831 = !DILocation(line: 147, column: 23, scope: !814) +!832 = !DILocation(line: 148, column: 3, scope: !814) +!833 = !DILocalVariable(name: "maybeApproved", scope: !834, file: !2, line: 150, type: !44) +!834 = distinct !DILexicalBlock(scope: !835, file: !2, line: 149, column: 5) +!835 = distinct !DILexicalBlock(scope: !814, file: !2, line: 148, column: 3) +!836 = !DILocation(line: 150, column: 5, scope: !834) +!837 = !DILocalVariable(name: "currentlyApproved", scope: !834, file: !2, line: 151, type: !50) +!838 = !DILocation(line: 151, column: 5, scope: !834) +!839 = !DILocation(line: 151, column: 25, scope: !834) +!840 = !DILocation(line: 152, column: 17, scope: !841) +!841 = distinct !DILexicalBlock(scope: !842, file: !2, line: 152, column: 9) +!842 = distinct !DILexicalBlock(scope: !834, file: !2, line: 151, column: 25) +!843 = !DILocation(line: 153, column: 26, scope: !844) +!844 = distinct !DILexicalBlock(scope: !842, file: !2, line: 153, column: 9) +!845 = !DILocalVariable(name: "needsToChange", scope: !834, file: !2, line: 155, type: !13) +!846 = !DILocation(line: 155, column: 5, scope: !834) +!847 = !DILocalVariable(name: "b", scope: !834, file: !2, line: 155, type: !13) +!848 = !DILocation(line: 155, column: 25, scope: !834) +!849 = !DILocation(line: 155, column: 29, scope: !834) +!850 = !DILocalVariable(name: "$BoolUtils.negb_110", scope: !834, file: !2, line: 155, type: !13) +!851 = !DILocation(line: 155, column: 69, scope: !834) +!852 = !DILocation(line: 156, column: 5, scope: !834) +!853 = !DILocation(line: 158, column: 7, scope: !854) +!854 = distinct !DILexicalBlock(scope: !855, file: !2, line: 157, column: 7) +!855 = distinct !DILexicalBlock(scope: !834, file: !2, line: 156, column: 5) +!856 = !DILocalVariable(name: "e", scope: !854, file: !2, line: 159, type: !228) +!857 = !DILocation(line: 159, column: 7, scope: !854) +!858 = !DILocalVariable(name: "$ud-registry.eApproved_109", scope: !854, file: !2, line: 159, type: !228) +!859 = !DILocation(line: 159, column: 11, scope: !854) +!860 = !DILocation(line: 160, column: 7, scope: !854) +!861 = !DILocalVariable(name: "e", scope: !862, file: !2, line: 164, type: !228) +!862 = distinct !DILexicalBlock(scope: !835, file: !2, line: 163, column: 5) +!863 = !DILocation(line: 164, column: 5, scope: !862) +!864 = !DILocalVariable(name: "m", scope: !862, file: !2, line: 164, type: !192) +!865 = !DILocation(line: 164, column: 13, scope: !862) +!866 = !DILocation(line: 164, column: 39, scope: !862) +!867 = !DILocalVariable(name: "$ud-registry.eError_111", scope: !862, file: !2, line: 164, type: !228) +!868 = !DILocation(line: 164, column: 44, scope: !862) +!869 = !DILocation(line: 165, column: 5, scope: !862) +!870 = distinct !DISubprogram(name: "approve", linkageName: "approve", scope: !2, file: !2, line: 144, type: !4, scopeLine: 144, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!871 = !DILocation(line: 144, column: 12, scope: !870) +!872 = distinct !DISubprogram(name: "approveFor", linkageName: "approveFor", scope: !2, file: !2, line: 168, type: !4, scopeLine: 168, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!873 = !DILocalVariable(name: "isApproved", scope: !872, file: !2, line: 168, type: !13) +!874 = !DILocation(line: 168, column: 41, scope: !872) +!875 = !DILocalVariable(name: "address", scope: !872, file: !2, line: 168, type: !50) +!876 = !DILocation(line: 168, column: 23, scope: !872) +!877 = !DILocalVariable(name: "_sender", scope: !872, file: !2, line: 168, type: !763) +!878 = !DILocation(line: 168, column: 12, scope: !872) +!879 = !DILocalVariable(name: "_origin", scope: !872, file: !2, line: 168, type: !763) +!880 = !DILocalVariable(name: "_amount", scope: !872, file: !2, line: 168, type: !767) +!881 = !DILocalVariable(name: "maybeOperators", scope: !872, file: !2, line: 169, type: !9) +!882 = !DILocation(line: 169, column: 3, scope: !872) +!883 = !DILocalVariable(name: "currentOperators", scope: !872, file: !2, line: 170, type: !83) +!884 = !DILocation(line: 170, column: 3, scope: !872) +!885 = !DILocation(line: 170, column: 22, scope: !872) +!886 = !DILocation(line: 171, column: 15, scope: !887) +!887 = distinct !DILexicalBlock(scope: !888, file: !2, line: 171, column: 7) +!888 = distinct !DILexicalBlock(scope: !872, file: !2, line: 170, column: 22) +!889 = !DILocation(line: 172, column: 19, scope: !890) +!890 = distinct !DILexicalBlock(scope: !888, file: !2, line: 172, column: 7) +!891 = !DILocalVariable(name: "needsToChange", scope: !872, file: !2, line: 174, type: !13) +!892 = !DILocation(line: 174, column: 3, scope: !872) +!893 = !DILocalVariable(name: "b", scope: !872, file: !2, line: 174, type: !13) +!894 = !DILocation(line: 174, column: 23, scope: !872) +!895 = !DILocation(line: 174, column: 27, scope: !872) +!896 = !DILocalVariable(name: "$ud-registry.listByStr20Excludes_119", scope: !872, file: !2, line: 174, type: !13) +!897 = !DILocation(line: 175, column: 5, scope: !872) +!898 = !DILocalVariable(name: "$ud-registry.xandb_121", scope: !872, file: !2, line: 175, type: !13) +!899 = !DILocation(line: 176, column: 3, scope: !872) +!900 = !DILocalVariable(name: "newOperators", scope: !901, file: !2, line: 178, type: !83) +!901 = distinct !DILexicalBlock(scope: !902, file: !2, line: 177, column: 5) +!902 = distinct !DILexicalBlock(scope: !872, file: !2, line: 176, column: 3) +!903 = !DILocation(line: 178, column: 5, scope: !901) +!904 = !DILocation(line: 178, column: 20, scope: !901) +!905 = !DILocation(line: 179, column: 17, scope: !906) +!906 = distinct !DILexicalBlock(scope: !907, file: !2, line: 179, column: 9) +!907 = distinct !DILexicalBlock(scope: !901, file: !2, line: 178, column: 20) +!908 = !DILocation(line: 180, column: 18, scope: !909) +!909 = distinct !DILexicalBlock(scope: !907, file: !2, line: 180, column: 9) +!910 = !DILocalVariable(name: "$ud-registry.listByStr20FilterOut_117", scope: !909, file: !2, line: 180, type: !83) +!911 = !DILocation(line: 182, column: 5, scope: !901) +!912 = !DILocalVariable(name: "e", scope: !901, file: !2, line: 183, type: !228) +!913 = !DILocation(line: 183, column: 5, scope: !901) +!914 = !DILocation(line: 183, column: 9, scope: !901) +!915 = !DILocalVariable(name: "$ud-registry.eApprovedFor_115", scope: !901, file: !2, line: 183, type: !228) +!916 = !DILocation(line: 184, column: 5, scope: !901) +!917 = distinct !DISubprogram(name: "approveFor", linkageName: "approveFor", scope: !2, file: !2, line: 168, type: !4, scopeLine: 168, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!918 = !DILocation(line: 168, column: 12, scope: !917) +!919 = distinct !DISubprogram(name: "configureNode", linkageName: "configureNode", scope: !2, file: !2, line: 188, type: !4, scopeLine: 188, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!920 = !DILocalVariable(name: "resolver", scope: !919, file: !2, line: 188, type: !50) +!921 = !DILocation(line: 188, column: 57, scope: !919) +!922 = !DILocalVariable(name: "owner", scope: !919, file: !2, line: 188, type: !50) +!923 = !DILocation(line: 188, column: 41, scope: !919) +!924 = !DILocalVariable(name: "node", scope: !919, file: !2, line: 188, type: !195) +!925 = !DILocation(line: 188, column: 26, scope: !919) +!926 = !DILocalVariable(name: "_sender", scope: !919, file: !2, line: 188, type: !763) +!927 = !DILocation(line: 188, column: 12, scope: !919) +!928 = !DILocalVariable(name: "_origin", scope: !919, file: !2, line: 188, type: !763) +!929 = !DILocalVariable(name: "_amount", scope: !919, file: !2, line: 188, type: !767) +!930 = !DILocalVariable(name: "maybeRecord", scope: !919, file: !2, line: 189, type: !211) +!931 = !DILocation(line: 189, column: 3, scope: !919) +!932 = !DILocalVariable(name: "maybeApproved", scope: !919, file: !2, line: 190, type: !44) +!933 = !DILocation(line: 190, column: 3, scope: !919) +!934 = !DILocalVariable(name: "recordOwner", scope: !919, file: !2, line: 191, type: !50) +!935 = !DILocation(line: 191, column: 3, scope: !919) +!936 = !DILocalVariable(name: "$ud-registry.recordMemberOwner_132", scope: !919, file: !2, line: 191, type: !50) +!937 = !DILocation(line: 191, column: 17, scope: !919) +!938 = !DILocalVariable(name: "maybeOperators", scope: !919, file: !2, line: 192, type: !9) +!939 = !DILocation(line: 192, column: 3, scope: !919) +!940 = !DILocalVariable(name: "isSenderOAO", scope: !919, file: !2, line: 193, type: !13) +!941 = !DILocation(line: 193, column: 3, scope: !919) +!942 = !DILocation(line: 193, column: 17, scope: !919) +!943 = !DILocalVariable(name: "$ud-registry.getIsOAO_131", scope: !919, file: !2, line: 193, type: !13) +!944 = !DILocation(line: 194, column: 3, scope: !919) +!945 = !DILocalVariable(name: "newRecord", scope: !946, file: !2, line: 196, type: !736) +!946 = distinct !DILexicalBlock(scope: !947, file: !2, line: 195, column: 5) +!947 = distinct !DILexicalBlock(scope: !919, file: !2, line: 194, column: 3) +!948 = !DILocation(line: 196, column: 5, scope: !946) +!949 = !DILocation(line: 196, column: 17, scope: !946) +!950 = !DILocation(line: 197, column: 5, scope: !946) +!951 = !DILocalVariable(name: "e", scope: !946, file: !2, line: 198, type: !228) +!952 = !DILocation(line: 198, column: 5, scope: !946) +!953 = !DILocation(line: 198, column: 9, scope: !946) +!954 = !DILocalVariable(name: "$ud-registry.eConfigured_125", scope: !946, file: !2, line: 198, type: !228) +!955 = !DILocation(line: 199, column: 5, scope: !946) +!956 = !DILocalVariable(name: "msgs", scope: !946, file: !2, line: 200, type: !656) +!957 = !DILocation(line: 200, column: 5, scope: !946) +!958 = !DILocalVariable(name: "m", scope: !946, file: !2, line: 200, type: !652) +!959 = !DILocation(line: 200, column: 16, scope: !946) +!960 = !DILocation(line: 200, column: 20, scope: !946) +!961 = !DILocalVariable(name: "$ud-registry.oneMsg_122", scope: !946, file: !2, line: 202, type: !656) +!962 = !DILocation(line: 202, column: 10, scope: !946) +!963 = !DILocation(line: 203, column: 5, scope: !946) +!964 = !DILocalVariable(name: "e", scope: !965, file: !2, line: 205, type: !228) +!965 = distinct !DILexicalBlock(scope: !947, file: !2, line: 204, column: 5) +!966 = !DILocation(line: 205, column: 5, scope: !965) +!967 = !DILocalVariable(name: "m", scope: !965, file: !2, line: 205, type: !192) +!968 = !DILocation(line: 205, column: 13, scope: !965) +!969 = !DILocation(line: 205, column: 61, scope: !965) +!970 = !DILocalVariable(name: "$ud-registry.eError_127", scope: !965, file: !2, line: 205, type: !228) +!971 = !DILocation(line: 205, column: 66, scope: !965) +!972 = !DILocation(line: 206, column: 5, scope: !965) +!973 = !DILocalVariable(name: "msgs", scope: !965, file: !2, line: 207, type: !656) +!974 = !DILocation(line: 207, column: 5, scope: !965) +!975 = !DILocalVariable(name: "$m_19", scope: !965, file: !2, line: 207, type: !652) +!976 = !DILocation(line: 207, column: 16, scope: !965) +!977 = !DILocation(line: 207, column: 20, scope: !965) +!978 = !DILocalVariable(name: "$ud-registry.oneMsg_126", scope: !965, file: !2, line: 209, type: !656) +!979 = !DILocation(line: 209, column: 10, scope: !965) +!980 = !DILocation(line: 210, column: 5, scope: !965) +!981 = distinct !DISubprogram(name: "configureNode", linkageName: "configureNode", scope: !2, file: !2, line: 188, type: !4, scopeLine: 188, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!982 = !DILocation(line: 188, column: 12, scope: !981) +!983 = distinct !DISubprogram(name: "configureResolver", linkageName: "configureResolver", scope: !2, file: !2, line: 213, type: !4, scopeLine: 213, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!984 = !DILocalVariable(name: "resolver", scope: !983, file: !2, line: 213, type: !50) +!985 = !DILocation(line: 213, column: 45, scope: !983) +!986 = !DILocalVariable(name: "node", scope: !983, file: !2, line: 213, type: !195) +!987 = !DILocation(line: 213, column: 30, scope: !983) +!988 = !DILocalVariable(name: "_sender", scope: !983, file: !2, line: 213, type: !763) +!989 = !DILocation(line: 213, column: 12, scope: !983) +!990 = !DILocalVariable(name: "_origin", scope: !983, file: !2, line: 213, type: !763) +!991 = !DILocalVariable(name: "_amount", scope: !983, file: !2, line: 213, type: !767) +!992 = !DILocalVariable(name: "maybeRecord", scope: !983, file: !2, line: 214, type: !211) +!993 = !DILocation(line: 214, column: 3, scope: !983) +!994 = !DILocalVariable(name: "maybeApproved", scope: !983, file: !2, line: 215, type: !44) +!995 = !DILocation(line: 215, column: 3, scope: !983) +!996 = !DILocalVariable(name: "recordOwner", scope: !983, file: !2, line: 216, type: !50) +!997 = !DILocation(line: 216, column: 3, scope: !983) +!998 = !DILocalVariable(name: "$ud-registry.recordMemberOwner_141", scope: !983, file: !2, line: 216, type: !50) +!999 = !DILocation(line: 216, column: 17, scope: !983) +!1000 = !DILocalVariable(name: "maybeOperators", scope: !983, file: !2, line: 217, type: !9) +!1001 = !DILocation(line: 217, column: 3, scope: !983) +!1002 = !DILocalVariable(name: "isSenderOAO", scope: !983, file: !2, line: 218, type: !13) +!1003 = !DILocation(line: 218, column: 3, scope: !983) +!1004 = !DILocation(line: 218, column: 17, scope: !983) +!1005 = !DILocalVariable(name: "$ud-registry.getIsOAO_140", scope: !983, file: !2, line: 218, type: !13) +!1006 = !DILocation(line: 219, column: 3, scope: !983) +!1007 = !DILocalVariable(name: "newRecord", scope: !1008, file: !2, line: 221, type: !736) +!1008 = distinct !DILexicalBlock(scope: !1009, file: !2, line: 220, column: 5) +!1009 = distinct !DILexicalBlock(scope: !983, file: !2, line: 219, column: 3) +!1010 = !DILocation(line: 221, column: 5, scope: !1008) +!1011 = !DILocation(line: 221, column: 17, scope: !1008) +!1012 = !DILocation(line: 222, column: 5, scope: !1008) +!1013 = !DILocalVariable(name: "e", scope: !1008, file: !2, line: 223, type: !228) +!1014 = !DILocation(line: 223, column: 5, scope: !1008) +!1015 = !DILocation(line: 223, column: 9, scope: !1008) +!1016 = !DILocalVariable(name: "$ud-registry.eConfigured_135", scope: !1008, file: !2, line: 223, type: !228) +!1017 = !DILocation(line: 224, column: 5, scope: !1008) +!1018 = !DILocalVariable(name: "e", scope: !1019, file: !2, line: 226, type: !228) +!1019 = distinct !DILexicalBlock(scope: !1009, file: !2, line: 225, column: 5) +!1020 = !DILocation(line: 226, column: 5, scope: !1019) +!1021 = !DILocalVariable(name: "m", scope: !1019, file: !2, line: 226, type: !192) +!1022 = !DILocation(line: 226, column: 13, scope: !1019) +!1023 = !DILocation(line: 226, column: 61, scope: !1019) +!1024 = !DILocalVariable(name: "$ud-registry.eError_136", scope: !1019, file: !2, line: 226, type: !228) +!1025 = !DILocation(line: 226, column: 66, scope: !1019) +!1026 = !DILocation(line: 227, column: 5, scope: !1019) +!1027 = distinct !DISubprogram(name: "configureResolver", linkageName: "configureResolver", scope: !2, file: !2, line: 213, type: !4, scopeLine: 213, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!1028 = !DILocation(line: 213, column: 12, scope: !1027) +!1029 = distinct !DISubprogram(name: "transfer", linkageName: "transfer", scope: !2, file: !2, line: 230, type: !4, scopeLine: 230, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!1030 = !DILocalVariable(name: "owner", scope: !1029, file: !2, line: 230, type: !50) +!1031 = !DILocation(line: 230, column: 36, scope: !1029) +!1032 = !DILocalVariable(name: "node", scope: !1029, file: !2, line: 230, type: !195) +!1033 = !DILocation(line: 230, column: 21, scope: !1029) +!1034 = !DILocalVariable(name: "_sender", scope: !1029, file: !2, line: 230, type: !763) +!1035 = !DILocation(line: 230, column: 12, scope: !1029) +!1036 = !DILocalVariable(name: "_origin", scope: !1029, file: !2, line: 230, type: !763) +!1037 = !DILocalVariable(name: "_amount", scope: !1029, file: !2, line: 230, type: !767) +!1038 = !DILocalVariable(name: "maybeRecord", scope: !1029, file: !2, line: 231, type: !211) +!1039 = !DILocation(line: 231, column: 3, scope: !1029) +!1040 = !DILocalVariable(name: "maybeApproved", scope: !1029, file: !2, line: 232, type: !44) +!1041 = !DILocation(line: 232, column: 3, scope: !1029) +!1042 = !DILocalVariable(name: "recordOwner", scope: !1029, file: !2, line: 233, type: !50) +!1043 = !DILocation(line: 233, column: 3, scope: !1029) +!1044 = !DILocalVariable(name: "$ud-registry.recordMemberOwner_152", scope: !1029, file: !2, line: 233, type: !50) +!1045 = !DILocation(line: 233, column: 17, scope: !1029) +!1046 = !DILocalVariable(name: "maybeOperators", scope: !1029, file: !2, line: 234, type: !9) +!1047 = !DILocation(line: 234, column: 3, scope: !1029) +!1048 = !DILocalVariable(name: "isSenderOAO", scope: !1029, file: !2, line: 235, type: !13) +!1049 = !DILocation(line: 235, column: 3, scope: !1029) +!1050 = !DILocation(line: 235, column: 17, scope: !1029) +!1051 = !DILocalVariable(name: "$ud-registry.getIsOAO_151", scope: !1029, file: !2, line: 235, type: !13) +!1052 = !DILocation(line: 236, column: 3, scope: !1029) +!1053 = !DILocation(line: 238, column: 5, scope: !1054) +!1054 = distinct !DILexicalBlock(scope: !1055, file: !2, line: 237, column: 5) +!1055 = distinct !DILexicalBlock(scope: !1029, file: !2, line: 236, column: 3) +!1056 = !DILocalVariable(name: "newRecord", scope: !1054, file: !2, line: 239, type: !736) +!1057 = !DILocation(line: 239, column: 5, scope: !1054) +!1058 = !DILocation(line: 239, column: 17, scope: !1054) +!1059 = !DILocation(line: 240, column: 5, scope: !1054) +!1060 = !DILocalVariable(name: "e", scope: !1054, file: !2, line: 241, type: !228) +!1061 = !DILocation(line: 241, column: 5, scope: !1054) +!1062 = !DILocation(line: 241, column: 9, scope: !1054) +!1063 = !DILocalVariable(name: "$ud-registry.eConfigured_145", scope: !1054, file: !2, line: 241, type: !228) +!1064 = !DILocation(line: 242, column: 5, scope: !1054) +!1065 = !DILocalVariable(name: "msgs", scope: !1054, file: !2, line: 243, type: !656) +!1066 = !DILocation(line: 243, column: 5, scope: !1054) +!1067 = !DILocalVariable(name: "m", scope: !1054, file: !2, line: 243, type: !652) +!1068 = !DILocation(line: 243, column: 16, scope: !1054) +!1069 = !DILocation(line: 243, column: 20, scope: !1054) +!1070 = !DILocalVariable(name: "$ud-registry.oneMsg_142", scope: !1054, file: !2, line: 245, type: !656) +!1071 = !DILocation(line: 245, column: 10, scope: !1054) +!1072 = !DILocation(line: 246, column: 5, scope: !1054) +!1073 = !DILocalVariable(name: "e", scope: !1074, file: !2, line: 248, type: !228) +!1074 = distinct !DILexicalBlock(scope: !1055, file: !2, line: 247, column: 5) +!1075 = !DILocation(line: 248, column: 5, scope: !1074) +!1076 = !DILocalVariable(name: "m", scope: !1074, file: !2, line: 248, type: !192) +!1077 = !DILocation(line: 248, column: 13, scope: !1074) +!1078 = !DILocation(line: 248, column: 61, scope: !1074) +!1079 = !DILocalVariable(name: "$ud-registry.eError_147", scope: !1074, file: !2, line: 248, type: !228) +!1080 = !DILocation(line: 248, column: 66, scope: !1074) +!1081 = !DILocation(line: 249, column: 5, scope: !1074) +!1082 = !DILocalVariable(name: "msgs", scope: !1074, file: !2, line: 250, type: !656) +!1083 = !DILocation(line: 250, column: 5, scope: !1074) +!1084 = !DILocalVariable(name: "$m_20", scope: !1074, file: !2, line: 250, type: !652) +!1085 = !DILocation(line: 250, column: 16, scope: !1074) +!1086 = !DILocation(line: 250, column: 20, scope: !1074) +!1087 = !DILocalVariable(name: "$ud-registry.oneMsg_146", scope: !1074, file: !2, line: 252, type: !656) +!1088 = !DILocation(line: 252, column: 10, scope: !1074) +!1089 = !DILocation(line: 253, column: 5, scope: !1074) +!1090 = distinct !DISubprogram(name: "transfer", linkageName: "transfer", scope: !2, file: !2, line: 230, type: !4, scopeLine: 230, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!1091 = !DILocation(line: 230, column: 12, scope: !1090) +!1092 = distinct !DISubprogram(name: "assign", linkageName: "assign", scope: !2, file: !2, line: 256, type: !4, scopeLine: 256, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!1093 = !DILocalVariable(name: "owner", scope: !1092, file: !2, line: 256, type: !50) +!1094 = !DILocation(line: 256, column: 51, scope: !1092) +!1095 = !DILocalVariable(name: "label", scope: !1092, file: !2, line: 256, type: !192) +!1096 = !DILocation(line: 256, column: 36, scope: !1092) +!1097 = !DILocalVariable(name: "parent", scope: !1092, file: !2, line: 256, type: !195) +!1098 = !DILocation(line: 256, column: 19, scope: !1092) +!1099 = !DILocalVariable(name: "_sender", scope: !1092, file: !2, line: 256, type: !763) +!1100 = !DILocation(line: 256, column: 12, scope: !1092) +!1101 = !DILocalVariable(name: "_origin", scope: !1092, file: !2, line: 256, type: !763) +!1102 = !DILocalVariable(name: "_amount", scope: !1092, file: !2, line: 256, type: !767) +!1103 = !DILocalVariable(name: "maybeRecord", scope: !1092, file: !2, line: 257, type: !211) +!1104 = !DILocation(line: 257, column: 3, scope: !1092) +!1105 = !DILocalVariable(name: "maybeApproved", scope: !1092, file: !2, line: 258, type: !44) +!1106 = !DILocation(line: 258, column: 3, scope: !1092) +!1107 = !DILocalVariable(name: "recordOwner", scope: !1092, file: !2, line: 259, type: !50) +!1108 = !DILocation(line: 259, column: 3, scope: !1092) +!1109 = !DILocalVariable(name: "$ud-registry.recordMemberOwner_167", scope: !1092, file: !2, line: 259, type: !50) +!1110 = !DILocation(line: 259, column: 17, scope: !1092) +!1111 = !DILocalVariable(name: "maybeOperators", scope: !1092, file: !2, line: 260, type: !9) +!1112 = !DILocation(line: 260, column: 3, scope: !1092) +!1113 = !DILocalVariable(name: "isSenderOAO", scope: !1092, file: !2, line: 261, type: !13) +!1114 = !DILocation(line: 261, column: 3, scope: !1092) +!1115 = !DILocation(line: 261, column: 17, scope: !1092) +!1116 = !DILocalVariable(name: "$ud-registry.getIsOAO_166", scope: !1092, file: !2, line: 261, type: !13) +!1117 = !DILocation(line: 262, column: 3, scope: !1092) +!1118 = !DILocalVariable(name: "node", scope: !1119, file: !2, line: 264, type: !195) +!1119 = distinct !DILexicalBlock(scope: !1120, file: !2, line: 263, column: 5) +!1120 = distinct !DILexicalBlock(scope: !1092, file: !2, line: 262, column: 3) +!1121 = !DILocation(line: 264, column: 5, scope: !1119) +!1122 = !DILocation(line: 264, column: 12, scope: !1119) +!1123 = !DILocalVariable(name: "$ud-registry.parentLabelToNode_160", scope: !1119, file: !2, line: 264, type: !195) +!1124 = !DILocalVariable(name: "recordExists", scope: !1119, file: !2, line: 265, type: !13) +!1125 = !DILocation(line: 265, column: 5, scope: !1119) +!1126 = !DILocation(line: 266, column: 5, scope: !1119) +!1127 = !DILocalVariable(name: "e", scope: !1128, file: !2, line: 268, type: !228) +!1128 = distinct !DILexicalBlock(scope: !1129, file: !2, line: 267, column: 7) +!1129 = distinct !DILexicalBlock(scope: !1119, file: !2, line: 266, column: 5) +!1130 = !DILocation(line: 268, column: 7, scope: !1128) +!1131 = !DILocation(line: 268, column: 11, scope: !1128) +!1132 = !DILocalVariable(name: "$ud-registry.eNewDomain_158", scope: !1128, file: !2, line: 268, type: !228) +!1133 = !DILocation(line: 269, column: 7, scope: !1128) +!1134 = !DILocation(line: 272, column: 5, scope: !1119) +!1135 = !DILocalVariable(name: "newRecord", scope: !1119, file: !2, line: 273, type: !736) +!1136 = !DILocation(line: 273, column: 5, scope: !1119) +!1137 = !DILocation(line: 273, column: 17, scope: !1119) +!1138 = !DILocation(line: 274, column: 5, scope: !1119) +!1139 = !DILocalVariable(name: "e", scope: !1119, file: !2, line: 275, type: !228) +!1140 = !DILocation(line: 275, column: 5, scope: !1119) +!1141 = !DILocation(line: 275, column: 9, scope: !1119) +!1142 = !DILocalVariable(name: "$ud-registry.eConfigured_156", scope: !1119, file: !2, line: 275, type: !228) +!1143 = !DILocation(line: 276, column: 5, scope: !1119) +!1144 = !DILocalVariable(name: "msgs", scope: !1119, file: !2, line: 277, type: !656) +!1145 = !DILocation(line: 277, column: 5, scope: !1119) +!1146 = !DILocalVariable(name: "m", scope: !1119, file: !2, line: 277, type: !652) +!1147 = !DILocation(line: 277, column: 16, scope: !1119) +!1148 = !DILocation(line: 277, column: 20, scope: !1119) +!1149 = !DILocalVariable(name: "$ud-registry.oneMsg_153", scope: !1119, file: !2, line: 279, type: !656) +!1150 = !DILocation(line: 279, column: 10, scope: !1119) +!1151 = !DILocation(line: 280, column: 5, scope: !1119) +!1152 = !DILocalVariable(name: "e", scope: !1153, file: !2, line: 282, type: !228) +!1153 = distinct !DILexicalBlock(scope: !1120, file: !2, line: 281, column: 5) +!1154 = !DILocation(line: 282, column: 5, scope: !1153) +!1155 = !DILocalVariable(name: "m", scope: !1153, file: !2, line: 282, type: !192) +!1156 = !DILocation(line: 282, column: 13, scope: !1153) +!1157 = !DILocation(line: 282, column: 63, scope: !1153) +!1158 = !DILocalVariable(name: "$ud-registry.eError_162", scope: !1153, file: !2, line: 282, type: !228) +!1159 = !DILocation(line: 282, column: 68, scope: !1153) +!1160 = !DILocation(line: 283, column: 5, scope: !1153) +!1161 = !DILocalVariable(name: "msgs", scope: !1153, file: !2, line: 284, type: !656) +!1162 = !DILocation(line: 284, column: 5, scope: !1153) +!1163 = !DILocalVariable(name: "$m_21", scope: !1153, file: !2, line: 284, type: !652) +!1164 = !DILocation(line: 284, column: 16, scope: !1153) +!1165 = !DILocation(line: 284, column: 20, scope: !1153) +!1166 = !DILocalVariable(name: "$ud-registry.oneMsg_161", scope: !1153, file: !2, line: 286, type: !656) +!1167 = !DILocation(line: 286, column: 10, scope: !1153) +!1168 = !DILocation(line: 287, column: 5, scope: !1153) +!1169 = distinct !DISubprogram(name: "assign", linkageName: "assign", scope: !2, file: !2, line: 256, type: !4, scopeLine: 256, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!1170 = !DILocation(line: 256, column: 12, scope: !1169) +!1171 = distinct !DISubprogram(name: "bestow", linkageName: "bestow", scope: !2, file: !2, line: 290, type: !4, scopeLine: 290, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!1172 = !DILocalVariable(name: "resolver", scope: !1171, file: !2, line: 290, type: !50) +!1173 = !DILocation(line: 290, column: 50, scope: !1171) +!1174 = !DILocalVariable(name: "owner", scope: !1171, file: !2, line: 290, type: !50) +!1175 = !DILocation(line: 290, column: 34, scope: !1171) +!1176 = !DILocalVariable(name: "label", scope: !1171, file: !2, line: 290, type: !192) +!1177 = !DILocation(line: 290, column: 19, scope: !1171) +!1178 = !DILocalVariable(name: "_sender", scope: !1171, file: !2, line: 290, type: !763) +!1179 = !DILocation(line: 290, column: 12, scope: !1171) +!1180 = !DILocalVariable(name: "_origin", scope: !1171, file: !2, line: 290, type: !763) +!1181 = !DILocalVariable(name: "_amount", scope: !1171, file: !2, line: 290, type: !767) +!1182 = !DILocalVariable(name: "currentAdmins", scope: !1171, file: !2, line: 291, type: !83) +!1183 = !DILocation(line: 291, column: 3, scope: !1171) +!1184 = !DILocalVariable(name: "node", scope: !1171, file: !2, line: 292, type: !195) +!1185 = !DILocation(line: 292, column: 3, scope: !1171) +!1186 = !DILocation(line: 292, column: 10, scope: !1171) +!1187 = !DILocalVariable(name: "$ud-registry.parentLabelToNode_186", scope: !1171, file: !2, line: 292, type: !195) +!1188 = !DILocalVariable(name: "recordExists", scope: !1171, file: !2, line: 293, type: !13) +!1189 = !DILocation(line: 293, column: 3, scope: !1171) +!1190 = !DILocalVariable(name: "maybeRecord", scope: !1171, file: !2, line: 294, type: !211) +!1191 = !DILocation(line: 294, column: 3, scope: !1171) +!1192 = !DILocalVariable(name: "currentRegistrar", scope: !1171, file: !2, line: 295, type: !50) +!1193 = !DILocation(line: 295, column: 3, scope: !1171) +!1194 = !DILocalVariable(name: "isOk", scope: !1171, file: !2, line: 296, type: !13) +!1195 = !DILocation(line: 296, column: 3, scope: !1171) +!1196 = !DILocalVariable(name: "isSenderAdmin", scope: !1171, file: !2, line: 297, type: !13) +!1197 = !DILocation(line: 297, column: 9, scope: !1171) +!1198 = !DILocation(line: 297, column: 25, scope: !1171) +!1199 = !DILocalVariable(name: "$ud-registry.listByStr20Contains_175", scope: !1171, file: !2, line: 297, type: !13) +!1200 = !DILocalVariable(name: "isSenderRegistrar", scope: !1171, file: !2, line: 298, type: !13) +!1201 = !DILocation(line: 298, column: 9, scope: !1171) +!1202 = !DILocation(line: 298, column: 29, scope: !1171) +!1203 = !DILocalVariable(name: "isOkSender", scope: !1171, file: !2, line: 299, type: !13) +!1204 = !DILocation(line: 299, column: 9, scope: !1171) +!1205 = !DILocation(line: 299, column: 22, scope: !1171) +!1206 = !DILocalVariable(name: "$BoolUtils.orb_177", scope: !1171, file: !2, line: 299, type: !13) +!1207 = !DILocalVariable(name: "recordOwner", scope: !1171, file: !2, line: 300, type: !50) +!1208 = !DILocation(line: 300, column: 9, scope: !1171) +!1209 = !DILocalVariable(name: "$ud-registry.recordMemberOwner_178", scope: !1171, file: !2, line: 300, type: !50) +!1210 = !DILocation(line: 300, column: 23, scope: !1171) +!1211 = !DILocalVariable(name: "recordIsUnowned", scope: !1171, file: !2, line: 301, type: !13) +!1212 = !DILocation(line: 301, column: 9, scope: !1171) +!1213 = !DILocation(line: 301, column: 27, scope: !1171) +!1214 = !DILocalVariable(name: "recordIsOwnedByRegistrar", scope: !1171, file: !2, line: 302, type: !13) +!1215 = !DILocation(line: 302, column: 9, scope: !1171) +!1216 = !DILocation(line: 302, column: 36, scope: !1171) +!1217 = !DILocalVariable(name: "isRegistrarSenderAndOwned", scope: !1171, file: !2, line: 303, type: !13) +!1218 = !DILocation(line: 303, column: 9, scope: !1171) +!1219 = !DILocation(line: 303, column: 37, scope: !1171) +!1220 = !DILocalVariable(name: "$BoolUtils.andb_180", scope: !1171, file: !2, line: 303, type: !13) +!1221 = !DILocalVariable(name: "isOkRecordOwner", scope: !1171, file: !2, line: 304, type: !13) +!1222 = !DILocation(line: 304, column: 9, scope: !1171) +!1223 = !DILocation(line: 304, column: 27, scope: !1171) +!1224 = !DILocalVariable(name: "$BoolUtils.orb_182", scope: !1171, file: !2, line: 304, type: !13) +!1225 = !DILocation(line: 305, column: 7, scope: !1171) +!1226 = !DILocalVariable(name: "$BoolUtils.andb_184", scope: !1171, file: !2, line: 305, type: !13) +!1227 = !DILocation(line: 306, column: 3, scope: !1171) +!1228 = !DILocation(line: 308, column: 5, scope: !1229) +!1229 = distinct !DILexicalBlock(scope: !1230, file: !2, line: 307, column: 5) +!1230 = distinct !DILexicalBlock(scope: !1171, file: !2, line: 306, column: 3) +!1231 = !DILocalVariable(name: "e", scope: !1232, file: !2, line: 310, type: !228) +!1232 = distinct !DILexicalBlock(scope: !1233, file: !2, line: 309, column: 7) +!1233 = distinct !DILexicalBlock(scope: !1229, file: !2, line: 308, column: 5) +!1234 = !DILocation(line: 310, column: 7, scope: !1232) +!1235 = !DILocation(line: 310, column: 11, scope: !1232) +!1236 = !DILocalVariable(name: "$ud-registry.eNewDomain_172", scope: !1232, file: !2, line: 310, type: !228) +!1237 = !DILocation(line: 311, column: 7, scope: !1232) +!1238 = !DILocalVariable(name: "newRecord", scope: !1229, file: !2, line: 314, type: !736) +!1239 = !DILocation(line: 314, column: 5, scope: !1229) +!1240 = !DILocation(line: 314, column: 17, scope: !1229) +!1241 = !DILocation(line: 315, column: 5, scope: !1229) +!1242 = !DILocalVariable(name: "e", scope: !1229, file: !2, line: 316, type: !228) +!1243 = !DILocation(line: 316, column: 5, scope: !1229) +!1244 = !DILocation(line: 316, column: 9, scope: !1229) +!1245 = !DILocalVariable(name: "$ud-registry.eConfigured_170", scope: !1229, file: !2, line: 316, type: !228) +!1246 = !DILocation(line: 317, column: 5, scope: !1229) +!1247 = !DILocalVariable(name: "e", scope: !1248, file: !2, line: 319, type: !228) +!1248 = distinct !DILexicalBlock(scope: !1230, file: !2, line: 318, column: 5) +!1249 = !DILocation(line: 319, column: 5, scope: !1248) +!1250 = !DILocalVariable(name: "m", scope: !1248, file: !2, line: 319, type: !192) +!1251 = !DILocation(line: 319, column: 13, scope: !1248) +!1252 = !DILocation(line: 319, column: 30, scope: !1248) +!1253 = !DILocalVariable(name: "$ud-registry.eError_173", scope: !1248, file: !2, line: 319, type: !228) +!1254 = !DILocation(line: 319, column: 35, scope: !1248) +!1255 = !DILocation(line: 320, column: 5, scope: !1248) +!1256 = distinct !DISubprogram(name: "bestow", linkageName: "bestow", scope: !2, file: !2, line: 290, type: !4, scopeLine: 290, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!1257 = !DILocation(line: 290, column: 12, scope: !1256) +!1258 = distinct !DISubprogram(name: "setRegistrar", linkageName: "setRegistrar", scope: !2, file: !2, line: 323, type: !4, scopeLine: 323, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!1259 = !DILocalVariable(name: "address", scope: !1258, file: !2, line: 323, type: !50) +!1260 = !DILocation(line: 323, column: 25, scope: !1258) +!1261 = !DILocalVariable(name: "_sender", scope: !1258, file: !2, line: 323, type: !763) +!1262 = !DILocation(line: 323, column: 12, scope: !1258) +!1263 = !DILocalVariable(name: "_origin", scope: !1258, file: !2, line: 323, type: !763) +!1264 = !DILocalVariable(name: "_amount", scope: !1258, file: !2, line: 323, type: !767) +!1265 = !DILocalVariable(name: "currentAdmins", scope: !1258, file: !2, line: 324, type: !83) +!1266 = !DILocation(line: 324, column: 3, scope: !1258) +!1267 = !DILocalVariable(name: "isOk", scope: !1258, file: !2, line: 325, type: !13) +!1268 = !DILocation(line: 325, column: 3, scope: !1258) +!1269 = !DILocation(line: 325, column: 10, scope: !1258) +!1270 = !DILocalVariable(name: "$ud-registry.listByStr20Contains_189", scope: !1258, file: !2, line: 325, type: !13) +!1271 = !DILocation(line: 326, column: 3, scope: !1258) +!1272 = !DILocalVariable(name: "e", scope: !1273, file: !2, line: 328, type: !228) +!1273 = distinct !DILexicalBlock(scope: !1274, file: !2, line: 327, column: 5) +!1274 = distinct !DILexicalBlock(scope: !1258, file: !2, line: 326, column: 3) +!1275 = !DILocation(line: 328, column: 5, scope: !1273) +!1276 = !DILocalVariable(name: "$ud-registry.eNewRegistrar_187", scope: !1273, file: !2, line: 328, type: !228) +!1277 = !DILocation(line: 328, column: 9, scope: !1273) +!1278 = !DILocation(line: 329, column: 5, scope: !1273) +!1279 = !DILocation(line: 330, column: 5, scope: !1273) +!1280 = distinct !DISubprogram(name: "setRegistrar", linkageName: "setRegistrar", scope: !2, file: !2, line: 323, type: !4, scopeLine: 323, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!1281 = !DILocation(line: 323, column: 12, scope: !1280) +!1282 = distinct !DISubprogram(name: "register", linkageName: "register", scope: !2, file: !2, line: 334, type: !4, scopeLine: 334, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!1283 = !DILocalVariable(name: "label", scope: !1282, file: !2, line: 334, type: !192) +!1284 = !DILocation(line: 334, column: 38, scope: !1282) +!1285 = !DILocalVariable(name: "parent", scope: !1282, file: !2, line: 334, type: !195) +!1286 = !DILocation(line: 334, column: 21, scope: !1282) +!1287 = !DILocalVariable(name: "_sender", scope: !1282, file: !2, line: 334, type: !763) +!1288 = !DILocation(line: 334, column: 12, scope: !1282) +!1289 = !DILocalVariable(name: "_origin", scope: !1282, file: !2, line: 334, type: !763) +!1290 = !DILocalVariable(name: "_amount", scope: !1282, file: !2, line: 334, type: !767) +!1291 = !DILocalVariable(name: "node", scope: !1282, file: !2, line: 335, type: !195) +!1292 = !DILocation(line: 335, column: 3, scope: !1282) +!1293 = !DILocation(line: 335, column: 10, scope: !1282) +!1294 = !DILocalVariable(name: "$ud-registry.parentLabelToNode_195", scope: !1282, file: !2, line: 335, type: !195) +!1295 = !DILocalVariable(name: "maybeRecord", scope: !1282, file: !2, line: 336, type: !211) +!1296 = !DILocation(line: 336, column: 3, scope: !1282) +!1297 = !DILocalVariable(name: "maybeApproved", scope: !1282, file: !2, line: 337, type: !44) +!1298 = !DILocation(line: 337, column: 3, scope: !1282) +!1299 = !DILocalVariable(name: "recordOwner", scope: !1282, file: !2, line: 338, type: !50) +!1300 = !DILocation(line: 338, column: 3, scope: !1282) +!1301 = !DILocalVariable(name: "$ud-registry.recordMemberOwner_193", scope: !1282, file: !2, line: 338, type: !50) +!1302 = !DILocation(line: 338, column: 17, scope: !1282) +!1303 = !DILocalVariable(name: "approved", scope: !1282, file: !2, line: 339, type: !50) +!1304 = !DILocation(line: 339, column: 3, scope: !1282) +!1305 = !DILocation(line: 340, column: 5, scope: !1282) +!1306 = !DILocation(line: 341, column: 15, scope: !1307) +!1307 = distinct !DILexicalBlock(scope: !1308, file: !2, line: 341, column: 7) +!1308 = distinct !DILexicalBlock(scope: !1282, file: !2, line: 340, column: 5) +!1309 = !DILocation(line: 342, column: 24, scope: !1310) +!1310 = distinct !DILexicalBlock(scope: !1308, file: !2, line: 342, column: 7) +!1311 = !DILocalVariable(name: "currentRegistrar", scope: !1282, file: !2, line: 344, type: !50) +!1312 = !DILocation(line: 344, column: 3, scope: !1282) +!1313 = !DILocalVariable(name: "isOk", scope: !1282, file: !2, line: 345, type: !13) +!1314 = !DILocation(line: 345, column: 3, scope: !1282) +!1315 = !DILocalVariable(name: "isRecordUnowned", scope: !1282, file: !2, line: 346, type: !13) +!1316 = !DILocation(line: 346, column: 9, scope: !1282) +!1317 = !DILocation(line: 346, column: 27, scope: !1282) +!1318 = !DILocalVariable(name: "isUnapproved", scope: !1282, file: !2, line: 347, type: !13) +!1319 = !DILocation(line: 347, column: 9, scope: !1282) +!1320 = !DILocation(line: 347, column: 24, scope: !1282) +!1321 = !DILocation(line: 348, column: 7, scope: !1282) +!1322 = !DILocalVariable(name: "$BoolUtils.andb_192", scope: !1282, file: !2, line: 348, type: !13) +!1323 = !DILocation(line: 349, column: 3, scope: !1282) +!1324 = !DILocation(line: 351, column: 5, scope: !1325) +!1325 = distinct !DILexicalBlock(scope: !1326, file: !2, line: 350, column: 5) +!1326 = distinct !DILexicalBlock(scope: !1282, file: !2, line: 349, column: 3) +!1327 = !DILocalVariable(name: "msgs", scope: !1325, file: !2, line: 352, type: !656) +!1328 = !DILocation(line: 352, column: 5, scope: !1325) +!1329 = !DILocalVariable(name: "m", scope: !1325, file: !2, line: 353, type: !652) +!1330 = !DILocation(line: 353, column: 11, scope: !1325) +!1331 = !DILocation(line: 353, column: 15, scope: !1325) +!1332 = !DILocalVariable(name: "$ud-registry.oneMsg_190", scope: !1325, file: !2, line: 355, type: !656) +!1333 = !DILocation(line: 355, column: 9, scope: !1325) +!1334 = !DILocation(line: 356, column: 5, scope: !1325) +!1335 = distinct !DISubprogram(name: "register", linkageName: "register", scope: !2, file: !2, line: 334, type: !4, scopeLine: 334, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!1336 = !DILocation(line: 334, column: 12, scope: !1335) +!1337 = distinct !DISubprogram(name: "onResolverConfigured", linkageName: "onResolverConfigured", scope: !2, file: !2, line: 360, type: !4, scopeLine: 360, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!1338 = !DILocalVariable(name: "node", scope: !1337, file: !2, line: 360, type: !195) +!1339 = !DILocation(line: 360, column: 33, scope: !1337) +!1340 = !DILocalVariable(name: "_sender", scope: !1337, file: !2, line: 360, type: !763) +!1341 = !DILocation(line: 360, column: 12, scope: !1337) +!1342 = !DILocalVariable(name: "_origin", scope: !1337, file: !2, line: 360, type: !763) +!1343 = !DILocalVariable(name: "_amount", scope: !1337, file: !2, line: 360, type: !767) +!1344 = !DILocalVariable(name: "maybeRecord", scope: !1337, file: !2, line: 361, type: !211) +!1345 = !DILocation(line: 361, column: 3, scope: !1337) +!1346 = !DILocation(line: 362, column: 3, scope: !1337) +!1347 = !DILocation(line: 365, column: 5, scope: !1348) +!1348 = distinct !DILexicalBlock(scope: !1349, file: !2, line: 364, column: 5) +!1349 = distinct !DILexicalBlock(scope: !1337, file: !2, line: 362, column: 3) +!1350 = !DILocalVariable(name: "isOk", scope: !1351, file: !2, line: 367, type: !13) +!1351 = distinct !DILexicalBlock(scope: !1352, file: !2, line: 366, column: 7) +!1352 = distinct !DILexicalBlock(scope: !1348, file: !2, line: 365, column: 5) +!1353 = !DILocation(line: 367, column: 7, scope: !1351) +!1354 = !DILocation(line: 367, column: 14, scope: !1351) +!1355 = !DILocation(line: 368, column: 7, scope: !1351) +!1356 = !DILocalVariable(name: "e", scope: !1357, file: !2, line: 370, type: !228) +!1357 = distinct !DILexicalBlock(scope: !1358, file: !2, line: 369, column: 9) +!1358 = distinct !DILexicalBlock(scope: !1351, file: !2, line: 368, column: 7) +!1359 = !DILocation(line: 370, column: 9, scope: !1357) +!1360 = !DILocation(line: 370, column: 13, scope: !1357) +!1361 = !DILocalVariable(name: "$ud-registry.eConfigured_198", scope: !1357, file: !2, line: 370, type: !228) +!1362 = !DILocation(line: 371, column: 9, scope: !1357) +!1363 = distinct !DISubprogram(name: "onResolverConfigured", linkageName: "onResolverConfigured", scope: !2, file: !2, line: 360, type: !4, scopeLine: 360, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!1364 = !DILocation(line: 360, column: 12, scope: !1363) diff --git a/testsuite/contr/ud-registry.ll b/testsuite/contr/ud-registry.ll index cf42ad23..669cd6c1 100644 --- a/testsuite/contr/ud-registry.ll +++ b/testsuite/contr/ud-registry.ll @@ -4,7 +4,7 @@ ; 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-pc-linux-gnu" +target triple = "x86_64-unknown-linux-gnu" %"$TyDescrTy_PrimTyp_422" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/testsuite/expr/ackermann.dbg.ll b/testsuite/expr/ackermann.dbg.ll index 1aa25865..c6071af9 100644 --- a/testsuite/expr/ackermann.dbg.ll +++ b/testsuite/expr/ackermann.dbg.ll @@ -105,7 +105,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-pc-linux-gnu" +target triple = "x86_64-unknown-linux-gnu" %"$TyDescrTy_PrimTyp_172" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } @@ -118,9 +118,9 @@ target triple = "x86_64-pc-linux-gnu" %TName_Nat = type { i8, %CName_Zero*, %CName_Succ* } %CName_Zero = type <{ i8 }> %CName_Succ = type <{ i8, %TName_Nat* }> -%"$ParamDescr_2423" = type { %ParamDescrString, %_TyDescrTy_Typ* } +%"$ParamDescr_2440" = type { %ParamDescrString, %_TyDescrTy_Typ* } %ParamDescrString = type { i8*, i32 } -%"$TransDescr_2424" = type { %ParamDescrString, i32, %"$ParamDescr_2423"* } +%"$TransDescr_2441" = type { %ParamDescrString, i32, %"$ParamDescr_2440"* } %"$$fundef_170_env_222" = type { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }, { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*, i8* }, { %TName_Nat* (i8*, %TName_Nat*)*, i8* } } %"$$fundef_168_env_223" = type { { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }, %TName_Nat* } %"$$fundef_166_env_224" = type { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }, %TName_Nat* } @@ -208,912 +208,948 @@ target triple = "x86_64-pc-linux-gnu" @"$_gas_charge_accPairUtils_4" = global %Int32 zeroinitializer @_tydescr_table = constant [16 x %_TyDescrTy_Typ*] [%_TyDescrTy_Typ* @"$TyDescr_Event_196", %_TyDescrTy_Typ* @"$TyDescr_Int64_178", %_TyDescrTy_Typ* @"$TyDescr_ADT_Nat_206", %_TyDescrTy_Typ* @"$TyDescr_Uint256_188", %_TyDescrTy_Typ* @"$TyDescr_Uint32_176", %_TyDescrTy_Typ* @"$TyDescr_Uint64_180", %_TyDescrTy_Typ* @"$TyDescr_Bnum_192", %_TyDescrTy_Typ* @"$TyDescr_Uint128_184", %_TyDescrTy_Typ* @"$TyDescr_Exception_198", %_TyDescrTy_Typ* @"$TyDescr_String_190", %_TyDescrTy_Typ* @"$TyDescr_Int256_186", %_TyDescrTy_Typ* @"$TyDescr_Int128_182", %_TyDescrTy_Typ* @"$TyDescr_Bystr_202", %_TyDescrTy_Typ* @"$TyDescr_ReplicateContr_200", %_TyDescrTy_Typ* @"$TyDescr_Message_194", %_TyDescrTy_Typ* @"$TyDescr_Int32_174"] @_tydescr_table_length = constant i32 16 -@_contract_parameters = constant [0 x %"$ParamDescr_2423"] zeroinitializer +@_contract_parameters = constant [0 x %"$ParamDescr_2440"] zeroinitializer @_contract_parameters_length = constant i32 0 -@_transition_parameters = constant [0 x %"$TransDescr_2424"] zeroinitializer +@_transition_parameters = constant [0 x %"$TransDescr_2441"] zeroinitializer @_transition_parameters_length = constant i32 0 -define internal { %TName_Nat* (i8*, %TName_Nat*)*, i8* } @"$fundef_170"(%"$$fundef_170_env_222"* %0, %TName_Nat* %1) !dbg !4 { +define internal { %TName_Nat* (i8*, %TName_Nat*)*, i8* } @"$fundef_170"(%"$$fundef_170_env_222"* %0, %TName_Nat* %1) !dbg !3 { entry: - %"$$fundef_170_env_f_1042" = getelementptr inbounds %"$$fundef_170_env_222", %"$$fundef_170_env_222"* %0, i32 0, i32 0 - %"$f_envload_1043" = load { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }* %"$$fundef_170_env_f_1042", align 8 + %"$n_1085" = alloca %TName_Nat*, align 8 + store %TName_Nat* %1, %TName_Nat** %"$n_1085", align 8 + call void @llvm.dbg.declare(metadata %TName_Nat** %"$n_1085", metadata !8, metadata !DIExpression()), !dbg !11 + %"$$fundef_170_env_f_1058" = getelementptr inbounds %"$$fundef_170_env_222", %"$$fundef_170_env_222"* %0, i32 0, i32 0 + %"$f_envload_1059" = load { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }* %"$$fundef_170_env_f_1058", align 8 %f = alloca { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }, align 8 - store { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } %"$f_envload_1043", { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }* %f, align 8 - %"$$fundef_170_env_iter_nat_nat_1044" = getelementptr inbounds %"$$fundef_170_env_222", %"$$fundef_170_env_222"* %0, i32 0, i32 1 - %"$iter_nat_nat_envload_1045" = load { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*, i8* }, { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*, i8* }* %"$$fundef_170_env_iter_nat_nat_1044", align 8 + store { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } %"$f_envload_1059", { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }* %f, align 8 + %"$$fundef_170_env_iter_nat_nat_1060" = getelementptr inbounds %"$$fundef_170_env_222", %"$$fundef_170_env_222"* %0, i32 0, i32 1 + %"$iter_nat_nat_envload_1061" = load { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*, i8* }, { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*, i8* }* %"$$fundef_170_env_iter_nat_nat_1060", align 8 %iter_nat_nat = alloca { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*, i8* }, align 8 - store { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*, i8* } %"$iter_nat_nat_envload_1045", { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*, i8* }* %iter_nat_nat, align 8 - %"$$fundef_170_env_nat_succ_1046" = getelementptr inbounds %"$$fundef_170_env_222", %"$$fundef_170_env_222"* %0, i32 0, i32 2 - %"$nat_succ_envload_1047" = load { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$$fundef_170_env_nat_succ_1046", align 8 + store { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*, i8* } %"$iter_nat_nat_envload_1061", { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*, i8* }* %iter_nat_nat, align 8 + %"$$fundef_170_env_nat_succ_1062" = getelementptr inbounds %"$$fundef_170_env_222", %"$$fundef_170_env_222"* %0, i32 0, i32 2 + %"$nat_succ_envload_1063" = load { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$$fundef_170_env_nat_succ_1062", align 8 %nat_succ = alloca { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, align 8 - store { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$nat_succ_envload_1047", { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %nat_succ, align 8 + store { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$nat_succ_envload_1063", { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %nat_succ, align 8 %"$retval_171" = alloca { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, 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" + %"$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_1050": ; preds = %entry +"$out_of_gas_1066": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_1051" + br label %"$have_gas_1067" -"$have_gas_1051": ; preds = %"$out_of_gas_1050", %entry - %"$consume_1052" = sub i64 %"$gasrem_1048", 1 - store i64 %"$consume_1052", i64* @_gasrem, align 8 +"$have_gas_1067": ; preds = %"$out_of_gas_1066", %entry + %"$consume_1068" = sub i64 %"$gasrem_1064", 1 + store i64 %"$consume_1068", i64* @_gasrem, align 8 %"$iter_nat_nat_44" = alloca { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, %TName_Nat*)*, i8* }, align 8 - %"$iter_nat_nat_1053" = load { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*, i8* }, { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*, i8* }* %iter_nat_nat, align 8 - %"$iter_nat_nat_fptr_1054" = extractvalue { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*, i8* } %"$iter_nat_nat_1053", 0 - %"$iter_nat_nat_envptr_1055" = extractvalue { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*, i8* } %"$iter_nat_nat_1053", 1 - %"$f_1056" = load { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }* %f, align 8 - %"$iter_nat_nat_call_1057" = call { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, %TName_Nat*)*, i8* } %"$iter_nat_nat_fptr_1054"(i8* %"$iter_nat_nat_envptr_1055", { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } %"$f_1056"), !dbg !8 - store { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, %TName_Nat*)*, i8* } %"$iter_nat_nat_call_1057", { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, %TName_Nat*)*, i8* }* %"$iter_nat_nat_44", align 8, !dbg !8 + %"$iter_nat_nat_1069" = load { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*, i8* }, { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*, i8* }* %iter_nat_nat, align 8 + %"$iter_nat_nat_fptr_1070" = extractvalue { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*, i8* } %"$iter_nat_nat_1069", 0 + %"$iter_nat_nat_envptr_1071" = extractvalue { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*, i8* } %"$iter_nat_nat_1069", 1 + %"$f_1072" = load { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }* %f, align 8 + %"$iter_nat_nat_call_1073" = call { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, %TName_Nat*)*, i8* } %"$iter_nat_nat_fptr_1070"(i8* %"$iter_nat_nat_envptr_1071", { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } %"$f_1072"), !dbg !12 + store { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, %TName_Nat*)*, i8* } %"$iter_nat_nat_call_1073", { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, %TName_Nat*)*, i8* }* %"$iter_nat_nat_44", align 8, !dbg !12 %"$iter_nat_nat_45" = alloca { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }, align 8 - %"$$iter_nat_nat_44_1058" = load { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, %TName_Nat*)*, i8* }, { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, %TName_Nat*)*, i8* }* %"$iter_nat_nat_44", align 8 - %"$$iter_nat_nat_44_fptr_1059" = extractvalue { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, %TName_Nat*)*, i8* } %"$$iter_nat_nat_44_1058", 0 - %"$$iter_nat_nat_44_envptr_1060" = extractvalue { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, %TName_Nat*)*, i8* } %"$$iter_nat_nat_44_1058", 1 - %"$$iter_nat_nat_44_call_1061" = call { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } %"$$iter_nat_nat_44_fptr_1059"(i8* %"$$iter_nat_nat_44_envptr_1060", %TName_Nat* %1), !dbg !8 - store { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } %"$$iter_nat_nat_44_call_1061", { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }* %"$iter_nat_nat_45", align 8, !dbg !8 + %"$$iter_nat_nat_44_1074" = load { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, %TName_Nat*)*, i8* }, { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, %TName_Nat*)*, i8* }* %"$iter_nat_nat_44", align 8 + %"$$iter_nat_nat_44_fptr_1075" = extractvalue { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, %TName_Nat*)*, i8* } %"$$iter_nat_nat_44_1074", 0 + %"$$iter_nat_nat_44_envptr_1076" = extractvalue { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, %TName_Nat*)*, i8* } %"$$iter_nat_nat_44_1074", 1 + %"$$iter_nat_nat_44_call_1077" = call { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } %"$$iter_nat_nat_44_fptr_1075"(i8* %"$$iter_nat_nat_44_envptr_1076", %TName_Nat* %1), !dbg !12 + store { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } %"$$iter_nat_nat_44_call_1077", { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }* %"$iter_nat_nat_45", align 8, !dbg !12 %"$iter_nat_nat_46" = alloca { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, align 8 - %"$$iter_nat_nat_45_1062" = load { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }* %"$iter_nat_nat_45", align 8 - %"$$iter_nat_nat_45_fptr_1063" = extractvalue { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } %"$$iter_nat_nat_45_1062", 0 - %"$$iter_nat_nat_45_envptr_1064" = extractvalue { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } %"$$iter_nat_nat_45_1062", 1 - %"$nat_succ_1065" = load { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %nat_succ, align 8 - %"$$iter_nat_nat_45_call_1066" = call { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$$iter_nat_nat_45_fptr_1063"(i8* %"$$iter_nat_nat_45_envptr_1064", { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$nat_succ_1065"), !dbg !8 - store { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$$iter_nat_nat_45_call_1066", { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$iter_nat_nat_46", align 8, !dbg !8 - %"$$iter_nat_nat_46_1067" = load { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$iter_nat_nat_46", align 8 - store { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$$iter_nat_nat_46_1067", { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$retval_171", align 8, !dbg !8 - %"$$retval_171_1068" = load { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$retval_171", align 8 - ret { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$$retval_171_1068" + %"$$iter_nat_nat_45_1078" = load { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }* %"$iter_nat_nat_45", align 8 + %"$$iter_nat_nat_45_fptr_1079" = extractvalue { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } %"$$iter_nat_nat_45_1078", 0 + %"$$iter_nat_nat_45_envptr_1080" = extractvalue { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } %"$$iter_nat_nat_45_1078", 1 + %"$nat_succ_1081" = load { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %nat_succ, align 8 + %"$$iter_nat_nat_45_call_1082" = call { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$$iter_nat_nat_45_fptr_1079"(i8* %"$$iter_nat_nat_45_envptr_1080", { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$nat_succ_1081"), !dbg !12 + store { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$$iter_nat_nat_45_call_1082", { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$iter_nat_nat_46", align 8, !dbg !12 + %"$$iter_nat_nat_46_1083" = load { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$iter_nat_nat_46", align 8 + store { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$$iter_nat_nat_46_1083", { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$retval_171", align 8, !dbg !12 + %"$$retval_171_1084" = load { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$retval_171", align 8 + ret { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$$retval_171_1084" } -define internal %TName_Nat* @"$fundef_168"(%"$$fundef_168_env_223"* %0, %TName_Nat* %1) !dbg !9 { +define internal %TName_Nat* @"$fundef_168"(%"$$fundef_168_env_223"* %0, %TName_Nat* %1) !dbg !13 { entry: - %"$$fundef_168_env_ack_1015" = getelementptr inbounds %"$$fundef_168_env_223", %"$$fundef_168_env_223"* %0, i32 0, i32 0 - %"$ack_envload_1016" = load { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$$fundef_168_env_ack_1015", align 8 + %"$n_1057" = alloca %TName_Nat*, align 8 + store %TName_Nat* %1, %TName_Nat** %"$n_1057", align 8 + call void @llvm.dbg.declare(metadata %TName_Nat** %"$n_1057", metadata !14, metadata !DIExpression()), !dbg !15 + %"$$fundef_168_env_ack_1030" = getelementptr inbounds %"$$fundef_168_env_223", %"$$fundef_168_env_223"* %0, i32 0, i32 0 + %"$ack_envload_1031" = load { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$$fundef_168_env_ack_1030", align 8 %ack = alloca { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, align 8 - store { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$ack_envload_1016", { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %ack, align 8 - %"$$fundef_168_env_iter_nat_1017" = getelementptr inbounds %"$$fundef_168_env_223", %"$$fundef_168_env_223"* %0, i32 0, i32 1 - %"$iter_nat_envload_1018" = load { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }, { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }* %"$$fundef_168_env_iter_nat_1017", align 8 + store { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$ack_envload_1031", { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %ack, align 8 + %"$$fundef_168_env_iter_nat_1032" = getelementptr inbounds %"$$fundef_168_env_223", %"$$fundef_168_env_223"* %0, i32 0, i32 1 + %"$iter_nat_envload_1033" = load { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }, { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }* %"$$fundef_168_env_iter_nat_1032", align 8 %iter_nat = alloca { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }, align 8 - store { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } %"$iter_nat_envload_1018", { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }* %iter_nat, align 8 - %"$$fundef_168_env_x0_1019" = getelementptr inbounds %"$$fundef_168_env_223", %"$$fundef_168_env_223"* %0, i32 0, i32 2 - %"$x0_envload_1020" = load %TName_Nat*, %TName_Nat** %"$$fundef_168_env_x0_1019", align 8 + store { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } %"$iter_nat_envload_1033", { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }* %iter_nat, align 8 + %"$$fundef_168_env_x0_1034" = getelementptr inbounds %"$$fundef_168_env_223", %"$$fundef_168_env_223"* %0, i32 0, i32 2 + %"$x0_envload_1035" = load %TName_Nat*, %TName_Nat** %"$$fundef_168_env_x0_1034", align 8 %x0 = alloca %TName_Nat*, align 8 - store %TName_Nat* %"$x0_envload_1020", %TName_Nat** %x0, align 8 + store %TName_Nat* %"$x0_envload_1035", %TName_Nat** %x0, align 8 %"$retval_169" = alloca %TName_Nat*, align 8 - %"$gasrem_1021" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1022" = icmp ugt i64 1, %"$gasrem_1021" - br i1 %"$gascmp_1022", label %"$out_of_gas_1023", label %"$have_gas_1024" + call void @llvm.dbg.declare(metadata %TName_Nat** %"$retval_169", metadata !16, metadata !DIExpression()), !dbg !17 + %"$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_1023": ; preds = %entry +"$out_of_gas_1038": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_1024" + br label %"$have_gas_1039" -"$have_gas_1024": ; preds = %"$out_of_gas_1023", %entry - %"$consume_1025" = sub i64 %"$gasrem_1021", 1 - store i64 %"$consume_1025", i64* @_gasrem, align 8 +"$have_gas_1039": ; preds = %"$out_of_gas_1038", %entry + %"$consume_1040" = sub i64 %"$gasrem_1036", 1 + store i64 %"$consume_1040", i64* @_gasrem, align 8 %"$iter_nat_41" = alloca { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }, align 8 - %"$iter_nat_1026" = load { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }, { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }* %iter_nat, align 8 - %"$iter_nat_fptr_1027" = extractvalue { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } %"$iter_nat_1026", 0 - %"$iter_nat_envptr_1028" = extractvalue { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } %"$iter_nat_1026", 1 - %"$ack_1029" = load { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %ack, align 8 - %"$iter_nat_call_1030" = call { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$iter_nat_fptr_1027"(i8* %"$iter_nat_envptr_1028", { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$ack_1029"), !dbg !10 - store { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$iter_nat_call_1030", { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }* %"$iter_nat_41", align 8, !dbg !10 + %"$iter_nat_1041" = load { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }, { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }* %iter_nat, align 8 + %"$iter_nat_fptr_1042" = extractvalue { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } %"$iter_nat_1041", 0 + %"$iter_nat_envptr_1043" = extractvalue { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } %"$iter_nat_1041", 1 + %"$ack_1044" = load { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %ack, align 8 + %"$iter_nat_call_1045" = call { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$iter_nat_fptr_1042"(i8* %"$iter_nat_envptr_1043", { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$ack_1044"), !dbg !17 + store { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$iter_nat_call_1045", { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }* %"$iter_nat_41", align 8, !dbg !17 %"$iter_nat_42" = alloca { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, align 8 - %"$$iter_nat_41_1031" = load { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }* %"$iter_nat_41", align 8 - %"$$iter_nat_41_fptr_1032" = extractvalue { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$$iter_nat_41_1031", 0 - %"$$iter_nat_41_envptr_1033" = extractvalue { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$$iter_nat_41_1031", 1 - %"$$iter_nat_41_call_1034" = call { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$$iter_nat_41_fptr_1032"(i8* %"$$iter_nat_41_envptr_1033", %TName_Nat* %1), !dbg !10 - store { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$$iter_nat_41_call_1034", { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$iter_nat_42", align 8, !dbg !10 + %"$$iter_nat_41_1046" = load { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }* %"$iter_nat_41", align 8 + %"$$iter_nat_41_fptr_1047" = extractvalue { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$$iter_nat_41_1046", 0 + %"$$iter_nat_41_envptr_1048" = extractvalue { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$$iter_nat_41_1046", 1 + %"$$iter_nat_41_call_1049" = call { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$$iter_nat_41_fptr_1047"(i8* %"$$iter_nat_41_envptr_1048", %TName_Nat* %1), !dbg !17 + store { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$$iter_nat_41_call_1049", { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$iter_nat_42", align 8, !dbg !17 %"$iter_nat_43" = alloca %TName_Nat*, align 8 - %"$$iter_nat_42_1035" = load { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$iter_nat_42", align 8 - %"$$iter_nat_42_fptr_1036" = extractvalue { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$$iter_nat_42_1035", 0 - %"$$iter_nat_42_envptr_1037" = extractvalue { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$$iter_nat_42_1035", 1 - %"$x0_1038" = load %TName_Nat*, %TName_Nat** %x0, align 8 - %"$$iter_nat_42_call_1039" = call %TName_Nat* %"$$iter_nat_42_fptr_1036"(i8* %"$$iter_nat_42_envptr_1037", %TName_Nat* %"$x0_1038"), !dbg !10 - store %TName_Nat* %"$$iter_nat_42_call_1039", %TName_Nat** %"$iter_nat_43", align 8, !dbg !10 - %"$$iter_nat_43_1040" = load %TName_Nat*, %TName_Nat** %"$iter_nat_43", align 8 - store %TName_Nat* %"$$iter_nat_43_1040", %TName_Nat** %"$retval_169", align 8, !dbg !10 - %"$$retval_169_1041" = load %TName_Nat*, %TName_Nat** %"$retval_169", align 8 - ret %TName_Nat* %"$$retval_169_1041" + call void @llvm.dbg.declare(metadata %TName_Nat** %"$iter_nat_43", metadata !18, metadata !DIExpression()), !dbg !17 + %"$$iter_nat_42_1050" = load { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$iter_nat_42", align 8 + %"$$iter_nat_42_fptr_1051" = extractvalue { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$$iter_nat_42_1050", 0 + %"$$iter_nat_42_envptr_1052" = extractvalue { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$$iter_nat_42_1050", 1 + %"$x0_1053" = load %TName_Nat*, %TName_Nat** %x0, align 8 + %"$$iter_nat_42_call_1054" = call %TName_Nat* %"$$iter_nat_42_fptr_1051"(i8* %"$$iter_nat_42_envptr_1052", %TName_Nat* %"$x0_1053"), !dbg !17 + store %TName_Nat* %"$$iter_nat_42_call_1054", %TName_Nat** %"$iter_nat_43", align 8, !dbg !17 + %"$$iter_nat_43_1055" = load %TName_Nat*, %TName_Nat** %"$iter_nat_43", align 8 + store %TName_Nat* %"$$iter_nat_43_1055", %TName_Nat** %"$retval_169", align 8, !dbg !17 + %"$$retval_169_1056" = load %TName_Nat*, %TName_Nat** %"$retval_169", align 8 + ret %TName_Nat* %"$$retval_169_1056" } -define internal { %TName_Nat* (i8*, %TName_Nat*)*, i8* } @"$fundef_166"(%"$$fundef_166_env_224"* %0, { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %1) !dbg !11 { +define internal { %TName_Nat* (i8*, %TName_Nat*)*, i8* } @"$fundef_166"(%"$$fundef_166_env_224"* %0, { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %1) !dbg !19 { entry: - %"$$fundef_166_env_iter_nat_981" = getelementptr inbounds %"$$fundef_166_env_224", %"$$fundef_166_env_224"* %0, i32 0, i32 0 - %"$iter_nat_envload_982" = load { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }, { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }* %"$$fundef_166_env_iter_nat_981", align 8 + %"$$fundef_166_env_iter_nat_996" = getelementptr inbounds %"$$fundef_166_env_224", %"$$fundef_166_env_224"* %0, i32 0, i32 0 + %"$iter_nat_envload_997" = load { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }, { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }* %"$$fundef_166_env_iter_nat_996", align 8 %iter_nat = alloca { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }, align 8 - store { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } %"$iter_nat_envload_982", { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }* %iter_nat, align 8 - %"$$fundef_166_env_one_983" = getelementptr inbounds %"$$fundef_166_env_224", %"$$fundef_166_env_224"* %0, i32 0, i32 1 - %"$one_envload_984" = load %TName_Nat*, %TName_Nat** %"$$fundef_166_env_one_983", align 8 + store { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } %"$iter_nat_envload_997", { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }* %iter_nat, align 8 + %"$$fundef_166_env_one_998" = getelementptr inbounds %"$$fundef_166_env_224", %"$$fundef_166_env_224"* %0, i32 0, i32 1 + %"$one_envload_999" = load %TName_Nat*, %TName_Nat** %"$$fundef_166_env_one_998", align 8 %one = alloca %TName_Nat*, align 8 - store %TName_Nat* %"$one_envload_984", %TName_Nat** %one, align 8 + store %TName_Nat* %"$one_envload_999", %TName_Nat** %one, align 8 %"$retval_167" = alloca { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, align 8 - %"$gasrem_985" = load i64, i64* @_gasrem, align 8 - %"$gascmp_986" = icmp ugt i64 1, %"$gasrem_985" - br i1 %"$gascmp_986", label %"$out_of_gas_987", label %"$have_gas_988" - -"$out_of_gas_987": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_988" - -"$have_gas_988": ; preds = %"$out_of_gas_987", %entry - %"$consume_989" = sub i64 %"$gasrem_985", 1 - store i64 %"$consume_989", i64* @_gasrem, align 8 - %x0 = alloca %TName_Nat*, align 8 - %"$gasrem_990" = load i64, i64* @_gasrem, align 8 - %"$gascmp_991" = icmp ugt i64 1, %"$gasrem_990" - br i1 %"$gascmp_991", label %"$out_of_gas_992", label %"$have_gas_993" - -"$out_of_gas_992": ; preds = %"$have_gas_988" - call void @_out_of_gas() - br label %"$have_gas_993" - -"$have_gas_993": ; preds = %"$out_of_gas_992", %"$have_gas_988" - %"$consume_994" = sub i64 %"$gasrem_990", 1 - store i64 %"$consume_994", i64* @_gasrem, align 8 - %"$ack_40" = alloca %TName_Nat*, align 8 - %"$ack_fptr_995" = extractvalue { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %1, 0 - %"$ack_envptr_996" = extractvalue { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %1, 1 - %"$one_997" = load %TName_Nat*, %TName_Nat** %one, align 8 - %"$ack_call_998" = call %TName_Nat* %"$ack_fptr_995"(i8* %"$ack_envptr_996", %TName_Nat* %"$one_997"), !dbg !12 - store %TName_Nat* %"$ack_call_998", %TName_Nat** %"$ack_40", align 8, !dbg !12 - %"$$ack_40_999" = load %TName_Nat*, %TName_Nat** %"$ack_40", align 8 - store %TName_Nat* %"$$ack_40_999", %TName_Nat** %x0, align 8, !dbg !12 %"$gasrem_1000" = load i64, i64* @_gasrem, align 8 %"$gascmp_1001" = icmp ugt i64 1, %"$gasrem_1000" br i1 %"$gascmp_1001", label %"$out_of_gas_1002", label %"$have_gas_1003" -"$out_of_gas_1002": ; preds = %"$have_gas_993" +"$out_of_gas_1002": ; preds = %entry call void @_out_of_gas() br label %"$have_gas_1003" -"$have_gas_1003": ; preds = %"$out_of_gas_1002", %"$have_gas_993" +"$have_gas_1003": ; preds = %"$out_of_gas_1002", %entry %"$consume_1004" = sub i64 %"$gasrem_1000", 1 store i64 %"$consume_1004", i64* @_gasrem, align 8 - %"$$fundef_168_envp_1005_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_168_envp_1005_salloc" = call i8* @_salloc(i8* %"$$fundef_168_envp_1005_load", i64 40) - %"$$fundef_168_envp_1005" = bitcast i8* %"$$fundef_168_envp_1005_salloc" to %"$$fundef_168_env_223"* - %"$$fundef_168_env_voidp_1007" = bitcast %"$$fundef_168_env_223"* %"$$fundef_168_envp_1005" to i8* - %"$$fundef_168_cloval_1008" = insertvalue { %TName_Nat* (i8*, %TName_Nat*)*, i8* } { %TName_Nat* (i8*, %TName_Nat*)* bitcast (%TName_Nat* (%"$$fundef_168_env_223"*, %TName_Nat*)* @"$fundef_168" to %TName_Nat* (i8*, %TName_Nat*)*), i8* undef }, i8* %"$$fundef_168_env_voidp_1007", 1 - %"$$fundef_168_env_ack_1009" = getelementptr inbounds %"$$fundef_168_env_223", %"$$fundef_168_env_223"* %"$$fundef_168_envp_1005", i32 0, i32 0 - store { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %1, { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$$fundef_168_env_ack_1009", align 8 - %"$$fundef_168_env_iter_nat_1010" = getelementptr inbounds %"$$fundef_168_env_223", %"$$fundef_168_env_223"* %"$$fundef_168_envp_1005", i32 0, i32 1 - %"$iter_nat_1011" = load { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }, { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }* %iter_nat, align 8 - store { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } %"$iter_nat_1011", { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }* %"$$fundef_168_env_iter_nat_1010", align 8 - %"$$fundef_168_env_x0_1012" = getelementptr inbounds %"$$fundef_168_env_223", %"$$fundef_168_env_223"* %"$$fundef_168_envp_1005", i32 0, i32 2 - %"$x0_1013" = load %TName_Nat*, %TName_Nat** %x0, align 8 - store %TName_Nat* %"$x0_1013", %TName_Nat** %"$$fundef_168_env_x0_1012", align 8 - store { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$$fundef_168_cloval_1008", { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$retval_167", align 8, !dbg !13 - %"$$retval_167_1014" = load { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$retval_167", align 8 - ret { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$$retval_167_1014" + %x0 = alloca %TName_Nat*, align 8 + call void @llvm.dbg.declare(metadata %TName_Nat** %x0, metadata !20, metadata !DIExpression()), !dbg !21 + %"$gasrem_1005" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1006" = icmp ugt i64 1, %"$gasrem_1005" + br i1 %"$gascmp_1006", label %"$out_of_gas_1007", label %"$have_gas_1008" + +"$out_of_gas_1007": ; preds = %"$have_gas_1003" + call void @_out_of_gas() + br label %"$have_gas_1008" + +"$have_gas_1008": ; preds = %"$out_of_gas_1007", %"$have_gas_1003" + %"$consume_1009" = sub i64 %"$gasrem_1005", 1 + store i64 %"$consume_1009", i64* @_gasrem, align 8 + %"$ack_40" = alloca %TName_Nat*, align 8 + call void @llvm.dbg.declare(metadata %TName_Nat** %"$ack_40", metadata !22, metadata !DIExpression()), !dbg !23 + %"$ack_fptr_1010" = extractvalue { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %1, 0 + %"$ack_envptr_1011" = extractvalue { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %1, 1 + %"$one_1012" = load %TName_Nat*, %TName_Nat** %one, align 8 + %"$ack_call_1013" = call %TName_Nat* %"$ack_fptr_1010"(i8* %"$ack_envptr_1011", %TName_Nat* %"$one_1012"), !dbg !23 + store %TName_Nat* %"$ack_call_1013", %TName_Nat** %"$ack_40", align 8, !dbg !23 + %"$$ack_40_1014" = load %TName_Nat*, %TName_Nat** %"$ack_40", align 8 + store %TName_Nat* %"$$ack_40_1014", %TName_Nat** %x0, align 8, !dbg !23 + %"$gasrem_1015" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1016" = icmp ugt i64 1, %"$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", 1 + store i64 %"$consume_1019", i64* @_gasrem, align 8 + %"$$fundef_168_envp_1020_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_168_envp_1020_salloc" = call i8* @_salloc(i8* %"$$fundef_168_envp_1020_load", i64 40) + %"$$fundef_168_envp_1020" = bitcast i8* %"$$fundef_168_envp_1020_salloc" to %"$$fundef_168_env_223"* + %"$$fundef_168_env_voidp_1022" = bitcast %"$$fundef_168_env_223"* %"$$fundef_168_envp_1020" to i8* + %"$$fundef_168_cloval_1023" = insertvalue { %TName_Nat* (i8*, %TName_Nat*)*, i8* } { %TName_Nat* (i8*, %TName_Nat*)* bitcast (%TName_Nat* (%"$$fundef_168_env_223"*, %TName_Nat*)* @"$fundef_168" to %TName_Nat* (i8*, %TName_Nat*)*), i8* undef }, i8* %"$$fundef_168_env_voidp_1022", 1 + %"$$fundef_168_env_ack_1024" = getelementptr inbounds %"$$fundef_168_env_223", %"$$fundef_168_env_223"* %"$$fundef_168_envp_1020", i32 0, i32 0 + store { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %1, { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$$fundef_168_env_ack_1024", align 8 + %"$$fundef_168_env_iter_nat_1025" = getelementptr inbounds %"$$fundef_168_env_223", %"$$fundef_168_env_223"* %"$$fundef_168_envp_1020", i32 0, i32 1 + %"$iter_nat_1026" = load { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }, { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }* %iter_nat, align 8 + store { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } %"$iter_nat_1026", { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }* %"$$fundef_168_env_iter_nat_1025", align 8 + %"$$fundef_168_env_x0_1027" = getelementptr inbounds %"$$fundef_168_env_223", %"$$fundef_168_env_223"* %"$$fundef_168_envp_1020", i32 0, i32 2 + %"$x0_1028" = load %TName_Nat*, %TName_Nat** %x0, align 8 + store %TName_Nat* %"$x0_1028", %TName_Nat** %"$$fundef_168_env_x0_1027", align 8 + store { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$$fundef_168_cloval_1023", { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$retval_167", align 8, !dbg !24 + %"$$retval_167_1029" = load { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$retval_167", align 8 + ret { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$$retval_167_1029" } -define internal %TName_Nat* @"$fundef_164"(%"$$fundef_164_env_225"* %0, %TName_Nat* %1) !dbg !14 { +define internal %TName_Nat* @"$fundef_164"(%"$$fundef_164_env_225"* %0, %TName_Nat* %1) !dbg !25 { entry: - %"$$fundef_164_env_f_965" = getelementptr inbounds %"$$fundef_164_env_225", %"$$fundef_164_env_225"* %0, i32 0, i32 0 - %"$f_envload_966" = load { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$$fundef_164_env_f_965", align 8 + %"$unused_995" = alloca %TName_Nat*, align 8 + store %TName_Nat* %1, %TName_Nat** %"$unused_995", align 8 + call void @llvm.dbg.declare(metadata %TName_Nat** %"$unused_995", metadata !26, metadata !DIExpression()), !dbg !27 + %"$$fundef_164_env_f_979" = getelementptr inbounds %"$$fundef_164_env_225", %"$$fundef_164_env_225"* %0, i32 0, i32 0 + %"$f_envload_980" = load { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$$fundef_164_env_f_979", align 8 %f = alloca { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, align 8 - store { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$f_envload_966", { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %f, align 8 - %"$$fundef_164_env_x_967" = getelementptr inbounds %"$$fundef_164_env_225", %"$$fundef_164_env_225"* %0, i32 0, i32 1 - %"$x_envload_968" = load %TName_Nat*, %TName_Nat** %"$$fundef_164_env_x_967", align 8 + store { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$f_envload_980", { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %f, align 8 + %"$$fundef_164_env_x_981" = getelementptr inbounds %"$$fundef_164_env_225", %"$$fundef_164_env_225"* %0, i32 0, i32 1 + %"$x_envload_982" = load %TName_Nat*, %TName_Nat** %"$$fundef_164_env_x_981", align 8 %x = alloca %TName_Nat*, align 8 - store %TName_Nat* %"$x_envload_968", %TName_Nat** %x, align 8 + store %TName_Nat* %"$x_envload_982", %TName_Nat** %x, align 8 %"$retval_165" = alloca %TName_Nat*, align 8 - %"$gasrem_969" = load i64, i64* @_gasrem, align 8 - %"$gascmp_970" = icmp ugt i64 1, %"$gasrem_969" - br i1 %"$gascmp_970", label %"$out_of_gas_971", label %"$have_gas_972" + call void @llvm.dbg.declare(metadata %TName_Nat** %"$retval_165", metadata !28, metadata !DIExpression()), !dbg !29 + %"$gasrem_983" = load i64, i64* @_gasrem, align 8 + %"$gascmp_984" = icmp ugt i64 1, %"$gasrem_983" + br i1 %"$gascmp_984", label %"$out_of_gas_985", label %"$have_gas_986" -"$out_of_gas_971": ; preds = %entry +"$out_of_gas_985": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_972" + br label %"$have_gas_986" -"$have_gas_972": ; preds = %"$out_of_gas_971", %entry - %"$consume_973" = sub i64 %"$gasrem_969", 1 - store i64 %"$consume_973", i64* @_gasrem, align 8 +"$have_gas_986": ; preds = %"$out_of_gas_985", %entry + %"$consume_987" = sub i64 %"$gasrem_983", 1 + store i64 %"$consume_987", i64* @_gasrem, align 8 %"$f_36" = alloca %TName_Nat*, align 8 - %"$f_974" = load { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %f, align 8 - %"$f_fptr_975" = extractvalue { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$f_974", 0 - %"$f_envptr_976" = extractvalue { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$f_974", 1 - %"$x_977" = load %TName_Nat*, %TName_Nat** %x, align 8 - %"$f_call_978" = call %TName_Nat* %"$f_fptr_975"(i8* %"$f_envptr_976", %TName_Nat* %"$x_977"), !dbg !15 - store %TName_Nat* %"$f_call_978", %TName_Nat** %"$f_36", align 8, !dbg !15 - %"$$f_36_979" = load %TName_Nat*, %TName_Nat** %"$f_36", align 8 - store %TName_Nat* %"$$f_36_979", %TName_Nat** %"$retval_165", align 8, !dbg !15 - %"$$retval_165_980" = load %TName_Nat*, %TName_Nat** %"$retval_165", align 8 - ret %TName_Nat* %"$$retval_165_980" + call void @llvm.dbg.declare(metadata %TName_Nat** %"$f_36", metadata !30, metadata !DIExpression()), !dbg !29 + %"$f_988" = load { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %f, align 8 + %"$f_fptr_989" = extractvalue { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$f_988", 0 + %"$f_envptr_990" = extractvalue { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$f_988", 1 + %"$x_991" = load %TName_Nat*, %TName_Nat** %x, align 8 + %"$f_call_992" = call %TName_Nat* %"$f_fptr_989"(i8* %"$f_envptr_990", %TName_Nat* %"$x_991"), !dbg !29 + store %TName_Nat* %"$f_call_992", %TName_Nat** %"$f_36", align 8, !dbg !29 + %"$$f_36_993" = load %TName_Nat*, %TName_Nat** %"$f_36", align 8 + store %TName_Nat* %"$$f_36_993", %TName_Nat** %"$retval_165", align 8, !dbg !29 + %"$$retval_165_994" = load %TName_Nat*, %TName_Nat** %"$retval_165", align 8 + ret %TName_Nat* %"$$retval_165_994" } -define internal { %TName_Nat* (i8*, %TName_Nat*)*, i8* } @"$fundef_162"(%"$$fundef_162_env_226"* %0, %TName_Nat* %1) !dbg !16 { +define internal { %TName_Nat* (i8*, %TName_Nat*)*, i8* } @"$fundef_162"(%"$$fundef_162_env_226"* %0, %TName_Nat* %1) !dbg !31 { entry: - %"$$fundef_162_env_f_950" = getelementptr inbounds %"$$fundef_162_env_226", %"$$fundef_162_env_226"* %0, i32 0, i32 0 - %"$f_envload_951" = load { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$$fundef_162_env_f_950", align 8 + %"$x_978" = alloca %TName_Nat*, align 8 + store %TName_Nat* %1, %TName_Nat** %"$x_978", align 8 + call void @llvm.dbg.declare(metadata %TName_Nat** %"$x_978", metadata !32, metadata !DIExpression()), !dbg !33 + %"$$fundef_162_env_f_963" = getelementptr inbounds %"$$fundef_162_env_226", %"$$fundef_162_env_226"* %0, i32 0, i32 0 + %"$f_envload_964" = load { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$$fundef_162_env_f_963", align 8 %f = alloca { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, align 8 - store { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$f_envload_951", { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %f, align 8 + store { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$f_envload_964", { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %f, align 8 %"$retval_163" = alloca { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, 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" - -"$out_of_gas_954": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_955" - -"$have_gas_955": ; preds = %"$out_of_gas_954", %entry - %"$consume_956" = sub i64 %"$gasrem_952", 1 - store i64 %"$consume_956", i64* @_gasrem, align 8 - %"$$fundef_164_envp_957_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_164_envp_957_salloc" = call i8* @_salloc(i8* %"$$fundef_164_envp_957_load", i64 24) - %"$$fundef_164_envp_957" = bitcast i8* %"$$fundef_164_envp_957_salloc" to %"$$fundef_164_env_225"* - %"$$fundef_164_env_voidp_959" = bitcast %"$$fundef_164_env_225"* %"$$fundef_164_envp_957" to i8* - %"$$fundef_164_cloval_960" = insertvalue { %TName_Nat* (i8*, %TName_Nat*)*, i8* } { %TName_Nat* (i8*, %TName_Nat*)* bitcast (%TName_Nat* (%"$$fundef_164_env_225"*, %TName_Nat*)* @"$fundef_164" to %TName_Nat* (i8*, %TName_Nat*)*), i8* undef }, i8* %"$$fundef_164_env_voidp_959", 1 - %"$$fundef_164_env_f_961" = getelementptr inbounds %"$$fundef_164_env_225", %"$$fundef_164_env_225"* %"$$fundef_164_envp_957", i32 0, i32 0 - %"$f_962" = load { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %f, align 8 - store { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$f_962", { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$$fundef_164_env_f_961", align 8 - %"$$fundef_164_env_x_963" = getelementptr inbounds %"$$fundef_164_env_225", %"$$fundef_164_env_225"* %"$$fundef_164_envp_957", i32 0, i32 1 - store %TName_Nat* %1, %TName_Nat** %"$$fundef_164_env_x_963", align 8 - store { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$$fundef_164_cloval_960", { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$retval_163", align 8, !dbg !17 - %"$$retval_163_964" = load { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$retval_163", align 8 - ret { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$$retval_163_964" + %"$gasrem_965" = load i64, i64* @_gasrem, align 8 + %"$gascmp_966" = icmp ugt i64 1, %"$gasrem_965" + br i1 %"$gascmp_966", label %"$out_of_gas_967", label %"$have_gas_968" + +"$out_of_gas_967": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_968" + +"$have_gas_968": ; preds = %"$out_of_gas_967", %entry + %"$consume_969" = sub i64 %"$gasrem_965", 1 + store i64 %"$consume_969", i64* @_gasrem, align 8 + %"$$fundef_164_envp_970_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_164_envp_970_salloc" = call i8* @_salloc(i8* %"$$fundef_164_envp_970_load", i64 24) + %"$$fundef_164_envp_970" = bitcast i8* %"$$fundef_164_envp_970_salloc" to %"$$fundef_164_env_225"* + %"$$fundef_164_env_voidp_972" = bitcast %"$$fundef_164_env_225"* %"$$fundef_164_envp_970" to i8* + %"$$fundef_164_cloval_973" = insertvalue { %TName_Nat* (i8*, %TName_Nat*)*, i8* } { %TName_Nat* (i8*, %TName_Nat*)* bitcast (%TName_Nat* (%"$$fundef_164_env_225"*, %TName_Nat*)* @"$fundef_164" to %TName_Nat* (i8*, %TName_Nat*)*), i8* undef }, i8* %"$$fundef_164_env_voidp_972", 1 + %"$$fundef_164_env_f_974" = getelementptr inbounds %"$$fundef_164_env_225", %"$$fundef_164_env_225"* %"$$fundef_164_envp_970", i32 0, i32 0 + %"$f_975" = load { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %f, align 8 + store { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$f_975", { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$$fundef_164_env_f_974", align 8 + %"$$fundef_164_env_x_976" = getelementptr inbounds %"$$fundef_164_env_225", %"$$fundef_164_env_225"* %"$$fundef_164_envp_970", i32 0, i32 1 + store %TName_Nat* %1, %TName_Nat** %"$$fundef_164_env_x_976", align 8 + store { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$$fundef_164_cloval_973", { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$retval_163", align 8, !dbg !34 + %"$$retval_163_977" = load { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$retval_163", align 8 + ret { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$$retval_163_977" } -define internal %TName_Nat* @"$fundef_160"(%"$$fundef_160_env_227"* %0, %TName_Nat* %1) !dbg !18 { +define internal %TName_Nat* @"$fundef_160"(%"$$fundef_160_env_227"* %0, %TName_Nat* %1) !dbg !35 { entry: - %"$$fundef_160_env_f_890" = getelementptr inbounds %"$$fundef_160_env_227", %"$$fundef_160_env_227"* %0, i32 0, i32 0 - %"$f_envload_891" = load { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$$fundef_160_env_f_890", align 8 + %"$x0_962" = alloca %TName_Nat*, align 8 + store %TName_Nat* %1, %TName_Nat** %"$x0_962", align 8 + call void @llvm.dbg.declare(metadata %TName_Nat** %"$x0_962", metadata !36, metadata !DIExpression()), !dbg !37 + %"$$fundef_160_env_f_902" = getelementptr inbounds %"$$fundef_160_env_227", %"$$fundef_160_env_227"* %0, i32 0, i32 0 + %"$f_envload_903" = load { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$$fundef_160_env_f_902", align 8 %f = alloca { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, align 8 - store { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$f_envload_891", { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %f, align 8 - %"$$fundef_160_env_n_892" = getelementptr inbounds %"$$fundef_160_env_227", %"$$fundef_160_env_227"* %0, i32 0, i32 1 - %"$n_envload_893" = load %TName_Nat*, %TName_Nat** %"$$fundef_160_env_n_892", align 8 + store { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$f_envload_903", { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %f, align 8 + %"$$fundef_160_env_n_904" = getelementptr inbounds %"$$fundef_160_env_227", %"$$fundef_160_env_227"* %0, i32 0, i32 1 + %"$n_envload_905" = load %TName_Nat*, %TName_Nat** %"$$fundef_160_env_n_904", align 8 %n = alloca %TName_Nat*, align 8 - store %TName_Nat* %"$n_envload_893", %TName_Nat** %n, align 8 - %"$$fundef_160_env_nat_fold_894" = getelementptr inbounds %"$$fundef_160_env_227", %"$$fundef_160_env_227"* %0, i32 0, i32 2 - %"$nat_fold_envload_895" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_160_env_nat_fold_894", align 8 + store %TName_Nat* %"$n_envload_905", %TName_Nat** %n, align 8 + %"$$fundef_160_env_nat_fold_906" = getelementptr inbounds %"$$fundef_160_env_227", %"$$fundef_160_env_227"* %0, i32 0, i32 2 + %"$nat_fold_envload_907" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_160_env_nat_fold_906", align 8 %nat_fold = alloca { i8*, i8* }*, align 8 - store { i8*, i8* }* %"$nat_fold_envload_895", { i8*, i8* }** %nat_fold, align 8 + store { i8*, i8* }* %"$nat_fold_envload_907", { i8*, i8* }** %nat_fold, align 8 %"$retval_161" = alloca %TName_Nat*, align 8 - %"$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" + call void @llvm.dbg.declare(metadata %TName_Nat** %"$retval_161", metadata !38, metadata !DIExpression()), !dbg !39 + %"$gasrem_908" = load i64, i64* @_gasrem, align 8 + %"$gascmp_909" = icmp ugt i64 1, %"$gasrem_908" + br i1 %"$gascmp_909", label %"$out_of_gas_910", label %"$have_gas_911" -"$out_of_gas_898": ; preds = %entry +"$out_of_gas_910": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_899" + br label %"$have_gas_911" -"$have_gas_899": ; preds = %"$out_of_gas_898", %entry - %"$consume_900" = sub i64 %"$gasrem_896", 1 - store i64 %"$consume_900", i64* @_gasrem, align 8 +"$have_gas_911": ; preds = %"$out_of_gas_910", %entry + %"$consume_912" = sub i64 %"$gasrem_908", 1 + store i64 %"$consume_912", i64* @_gasrem, align 8 %folder = alloca { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* })*, i8* }, align 8 - %"$gasrem_901" = load i64, i64* @_gasrem, align 8 - %"$gascmp_902" = icmp ugt i64 1, %"$gasrem_901" - br i1 %"$gascmp_902", label %"$out_of_gas_903", label %"$have_gas_904" - -"$out_of_gas_903": ; preds = %"$have_gas_899" - call void @_out_of_gas() - br label %"$have_gas_904" - -"$have_gas_904": ; preds = %"$out_of_gas_903", %"$have_gas_899" - %"$consume_905" = sub i64 %"$gasrem_901", 1 - store i64 %"$consume_905", i64* @_gasrem, align 8 - %"$nat_fold_906" = load { i8*, i8* }*, { i8*, i8* }** %nat_fold, align 8 - %"$nat_fold_907" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$nat_fold_906", i32 2 - %"$nat_fold_908" = bitcast { i8*, i8* }* %"$nat_fold_907" to { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*)*, i8* }* - %"$nat_fold_909" = load { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*)*, i8* }, { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*)*, i8* }* %"$nat_fold_908", align 8 - %"$nat_fold_fptr_910" = extractvalue { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*)*, i8* } %"$nat_fold_909", 0 - %"$nat_fold_envptr_911" = extractvalue { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*)*, i8* } %"$nat_fold_909", 1 - %"$nat_fold_call_912" = call { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* })*, i8* } %"$nat_fold_fptr_910"(i8* %"$nat_fold_envptr_911"), !dbg !19 - store { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* })*, i8* } %"$nat_fold_call_912", { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* })*, i8* }* %folder, align 8, !dbg !20 %"$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_915": ; preds = %"$have_gas_904" +"$out_of_gas_915": ; preds = %"$have_gas_911" call void @_out_of_gas() br label %"$have_gas_916" -"$have_gas_916": ; preds = %"$out_of_gas_915", %"$have_gas_904" +"$have_gas_916": ; preds = %"$out_of_gas_915", %"$have_gas_911" %"$consume_917" = sub i64 %"$gasrem_913", 1 store i64 %"$consume_917", i64* @_gasrem, align 8 + %"$nat_fold_918" = load { i8*, i8* }*, { i8*, i8* }** %nat_fold, align 8 + %"$nat_fold_919" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$nat_fold_918", i32 2 + %"$nat_fold_920" = bitcast { i8*, i8* }* %"$nat_fold_919" to { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*)*, i8* }* + %"$nat_fold_921" = load { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*)*, i8* }, { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*)*, i8* }* %"$nat_fold_920", align 8 + %"$nat_fold_fptr_922" = extractvalue { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*)*, i8* } %"$nat_fold_921", 0 + %"$nat_fold_envptr_923" = extractvalue { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*)*, i8* } %"$nat_fold_921", 1 + %"$nat_fold_call_924" = call { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* })*, i8* } %"$nat_fold_fptr_922"(i8* %"$nat_fold_envptr_923"), !dbg !40 + store { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* })*, i8* } %"$nat_fold_call_924", { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* })*, i8* }* %folder, align 8, !dbg !41 + %"$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" + +"$out_of_gas_927": ; preds = %"$have_gas_916" + call void @_out_of_gas() + br label %"$have_gas_928" + +"$have_gas_928": ; preds = %"$out_of_gas_927", %"$have_gas_916" + %"$consume_929" = sub i64 %"$gasrem_925", 1 + store i64 %"$consume_929", i64* @_gasrem, align 8 %step = alloca { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }, 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_916" - call void @_out_of_gas() - br label %"$have_gas_921" - -"$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 - %"$$fundef_162_envp_923_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_162_envp_923_salloc" = call i8* @_salloc(i8* %"$$fundef_162_envp_923_load", i64 16) - %"$$fundef_162_envp_923" = bitcast i8* %"$$fundef_162_envp_923_salloc" to %"$$fundef_162_env_226"* - %"$$fundef_162_env_voidp_925" = bitcast %"$$fundef_162_env_226"* %"$$fundef_162_envp_923" to i8* - %"$$fundef_162_cloval_926" = insertvalue { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)* bitcast ({ %TName_Nat* (i8*, %TName_Nat*)*, i8* } (%"$$fundef_162_env_226"*, %TName_Nat*)* @"$fundef_162" to { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*), i8* undef }, i8* %"$$fundef_162_env_voidp_925", 1 - %"$$fundef_162_env_f_927" = getelementptr inbounds %"$$fundef_162_env_226", %"$$fundef_162_env_226"* %"$$fundef_162_envp_923", i32 0, i32 0 - %"$f_928" = load { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %f, align 8 - store { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$f_928", { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$$fundef_162_env_f_927", align 8 - store { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$$fundef_162_cloval_926", { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }* %step, align 8, !dbg !21 - %"$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_931": ; preds = %"$have_gas_921" - call void @_out_of_gas() - br label %"$have_gas_932" - -"$have_gas_932": ; preds = %"$out_of_gas_931", %"$have_gas_921" - %"$consume_933" = sub i64 %"$gasrem_929", 1 - store i64 %"$consume_933", i64* @_gasrem, 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" + +"$out_of_gas_932": ; preds = %"$have_gas_928" + call void @_out_of_gas() + br label %"$have_gas_933" + +"$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 + %"$$fundef_162_envp_935_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_162_envp_935_salloc" = call i8* @_salloc(i8* %"$$fundef_162_envp_935_load", i64 16) + %"$$fundef_162_envp_935" = bitcast i8* %"$$fundef_162_envp_935_salloc" to %"$$fundef_162_env_226"* + %"$$fundef_162_env_voidp_937" = bitcast %"$$fundef_162_env_226"* %"$$fundef_162_envp_935" to i8* + %"$$fundef_162_cloval_938" = insertvalue { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)* bitcast ({ %TName_Nat* (i8*, %TName_Nat*)*, i8* } (%"$$fundef_162_env_226"*, %TName_Nat*)* @"$fundef_162" to { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*), i8* undef }, i8* %"$$fundef_162_env_voidp_937", 1 + %"$$fundef_162_env_f_939" = getelementptr inbounds %"$$fundef_162_env_226", %"$$fundef_162_env_226"* %"$$fundef_162_envp_935", i32 0, i32 0 + %"$f_940" = load { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %f, align 8 + store { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$f_940", { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$$fundef_162_env_f_939", align 8 + store { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$$fundef_162_cloval_938", { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }* %step, align 8, !dbg !42 + %"$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" + +"$out_of_gas_943": ; preds = %"$have_gas_933" + call void @_out_of_gas() + br label %"$have_gas_944" + +"$have_gas_944": ; preds = %"$out_of_gas_943", %"$have_gas_933" + %"$consume_945" = sub i64 %"$gasrem_941", 1 + store i64 %"$consume_945", i64* @_gasrem, align 8 %"$folder_37" = alloca { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }, align 8 - %"$folder_934" = load { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* })*, i8* }, { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* })*, i8* }* %folder, align 8 - %"$folder_fptr_935" = extractvalue { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* })*, i8* } %"$folder_934", 0 - %"$folder_envptr_936" = extractvalue { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* })*, i8* } %"$folder_934", 1 - %"$step_937" = load { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }* %step, align 8 - %"$folder_call_938" = call { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$folder_fptr_935"(i8* %"$folder_envptr_936", { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$step_937"), !dbg !22 - store { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$folder_call_938", { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }* %"$folder_37", align 8, !dbg !22 + %"$folder_946" = load { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* })*, i8* }, { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* })*, i8* }* %folder, align 8 + %"$folder_fptr_947" = extractvalue { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* })*, i8* } %"$folder_946", 0 + %"$folder_envptr_948" = extractvalue { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* })*, i8* } %"$folder_946", 1 + %"$step_949" = load { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }* %step, align 8 + %"$folder_call_950" = call { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$folder_fptr_947"(i8* %"$folder_envptr_948", { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$step_949"), !dbg !43 + store { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$folder_call_950", { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }* %"$folder_37", align 8, !dbg !43 %"$folder_38" = alloca { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, align 8 - %"$$folder_37_939" = load { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }* %"$folder_37", align 8 - %"$$folder_37_fptr_940" = extractvalue { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$$folder_37_939", 0 - %"$$folder_37_envptr_941" = extractvalue { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$$folder_37_939", 1 - %"$$folder_37_call_942" = call { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$$folder_37_fptr_940"(i8* %"$$folder_37_envptr_941", %TName_Nat* %1), !dbg !22 - store { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$$folder_37_call_942", { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$folder_38", align 8, !dbg !22 + %"$$folder_37_951" = load { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }* %"$folder_37", align 8 + %"$$folder_37_fptr_952" = extractvalue { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$$folder_37_951", 0 + %"$$folder_37_envptr_953" = extractvalue { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$$folder_37_951", 1 + %"$$folder_37_call_954" = call { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$$folder_37_fptr_952"(i8* %"$$folder_37_envptr_953", %TName_Nat* %1), !dbg !43 + store { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$$folder_37_call_954", { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$folder_38", align 8, !dbg !43 %"$folder_39" = alloca %TName_Nat*, align 8 - %"$$folder_38_943" = load { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$folder_38", align 8 - %"$$folder_38_fptr_944" = extractvalue { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$$folder_38_943", 0 - %"$$folder_38_envptr_945" = extractvalue { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$$folder_38_943", 1 - %"$n_946" = load %TName_Nat*, %TName_Nat** %n, align 8 - %"$$folder_38_call_947" = call %TName_Nat* %"$$folder_38_fptr_944"(i8* %"$$folder_38_envptr_945", %TName_Nat* %"$n_946"), !dbg !22 - store %TName_Nat* %"$$folder_38_call_947", %TName_Nat** %"$folder_39", align 8, !dbg !22 - %"$$folder_39_948" = load %TName_Nat*, %TName_Nat** %"$folder_39", align 8 - store %TName_Nat* %"$$folder_39_948", %TName_Nat** %"$retval_161", align 8, !dbg !22 - %"$$retval_161_949" = load %TName_Nat*, %TName_Nat** %"$retval_161", align 8 - ret %TName_Nat* %"$$retval_161_949" + call void @llvm.dbg.declare(metadata %TName_Nat** %"$folder_39", metadata !44, metadata !DIExpression()), !dbg !43 + %"$$folder_38_955" = load { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$folder_38", align 8 + %"$$folder_38_fptr_956" = extractvalue { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$$folder_38_955", 0 + %"$$folder_38_envptr_957" = extractvalue { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$$folder_38_955", 1 + %"$n_958" = load %TName_Nat*, %TName_Nat** %n, align 8 + %"$$folder_38_call_959" = call %TName_Nat* %"$$folder_38_fptr_956"(i8* %"$$folder_38_envptr_957", %TName_Nat* %"$n_958"), !dbg !43 + store %TName_Nat* %"$$folder_38_call_959", %TName_Nat** %"$folder_39", align 8, !dbg !43 + %"$$folder_39_960" = load %TName_Nat*, %TName_Nat** %"$folder_39", align 8 + store %TName_Nat* %"$$folder_39_960", %TName_Nat** %"$retval_161", align 8, !dbg !43 + %"$$retval_161_961" = load %TName_Nat*, %TName_Nat** %"$retval_161", align 8 + ret %TName_Nat* %"$$retval_161_961" } -define internal { %TName_Nat* (i8*, %TName_Nat*)*, i8* } @"$fundef_158"(%"$$fundef_158_env_228"* %0, %TName_Nat* %1) !dbg !23 { +define internal { %TName_Nat* (i8*, %TName_Nat*)*, i8* } @"$fundef_158"(%"$$fundef_158_env_228"* %0, %TName_Nat* %1) !dbg !45 { entry: - %"$$fundef_158_env_f_871" = getelementptr inbounds %"$$fundef_158_env_228", %"$$fundef_158_env_228"* %0, i32 0, i32 0 - %"$f_envload_872" = load { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$$fundef_158_env_f_871", align 8 + %"$n_901" = alloca %TName_Nat*, align 8 + store %TName_Nat* %1, %TName_Nat** %"$n_901", align 8 + call void @llvm.dbg.declare(metadata %TName_Nat** %"$n_901", metadata !46, metadata !DIExpression()), !dbg !47 + %"$$fundef_158_env_f_882" = getelementptr inbounds %"$$fundef_158_env_228", %"$$fundef_158_env_228"* %0, i32 0, i32 0 + %"$f_envload_883" = load { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$$fundef_158_env_f_882", align 8 %f = alloca { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, align 8 - store { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$f_envload_872", { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %f, align 8 - %"$$fundef_158_env_nat_fold_873" = getelementptr inbounds %"$$fundef_158_env_228", %"$$fundef_158_env_228"* %0, i32 0, i32 1 - %"$nat_fold_envload_874" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_158_env_nat_fold_873", align 8 + store { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$f_envload_883", { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %f, align 8 + %"$$fundef_158_env_nat_fold_884" = getelementptr inbounds %"$$fundef_158_env_228", %"$$fundef_158_env_228"* %0, i32 0, i32 1 + %"$nat_fold_envload_885" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_158_env_nat_fold_884", align 8 %nat_fold = alloca { i8*, i8* }*, align 8 - store { i8*, i8* }* %"$nat_fold_envload_874", { i8*, i8* }** %nat_fold, align 8 + store { i8*, i8* }* %"$nat_fold_envload_885", { i8*, i8* }** %nat_fold, align 8 %"$retval_159" = alloca { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, align 8 - %"$gasrem_875" = load i64, i64* @_gasrem, align 8 - %"$gascmp_876" = icmp ugt i64 1, %"$gasrem_875" - br i1 %"$gascmp_876", label %"$out_of_gas_877", label %"$have_gas_878" - -"$out_of_gas_877": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_878" - -"$have_gas_878": ; preds = %"$out_of_gas_877", %entry - %"$consume_879" = sub i64 %"$gasrem_875", 1 - store i64 %"$consume_879", i64* @_gasrem, align 8 - %"$$fundef_160_envp_880_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_160_envp_880_salloc" = call i8* @_salloc(i8* %"$$fundef_160_envp_880_load", i64 32) - %"$$fundef_160_envp_880" = bitcast i8* %"$$fundef_160_envp_880_salloc" to %"$$fundef_160_env_227"* - %"$$fundef_160_env_voidp_882" = bitcast %"$$fundef_160_env_227"* %"$$fundef_160_envp_880" to i8* - %"$$fundef_160_cloval_883" = insertvalue { %TName_Nat* (i8*, %TName_Nat*)*, i8* } { %TName_Nat* (i8*, %TName_Nat*)* bitcast (%TName_Nat* (%"$$fundef_160_env_227"*, %TName_Nat*)* @"$fundef_160" to %TName_Nat* (i8*, %TName_Nat*)*), i8* undef }, i8* %"$$fundef_160_env_voidp_882", 1 - %"$$fundef_160_env_f_884" = getelementptr inbounds %"$$fundef_160_env_227", %"$$fundef_160_env_227"* %"$$fundef_160_envp_880", i32 0, i32 0 - %"$f_885" = load { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %f, align 8 - store { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$f_885", { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$$fundef_160_env_f_884", align 8 - %"$$fundef_160_env_n_886" = getelementptr inbounds %"$$fundef_160_env_227", %"$$fundef_160_env_227"* %"$$fundef_160_envp_880", i32 0, i32 1 - store %TName_Nat* %1, %TName_Nat** %"$$fundef_160_env_n_886", align 8 - %"$$fundef_160_env_nat_fold_887" = getelementptr inbounds %"$$fundef_160_env_227", %"$$fundef_160_env_227"* %"$$fundef_160_envp_880", i32 0, i32 2 - %"$nat_fold_888" = load { i8*, i8* }*, { i8*, i8* }** %nat_fold, align 8 - store { i8*, i8* }* %"$nat_fold_888", { i8*, i8* }** %"$$fundef_160_env_nat_fold_887", align 8 - store { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$$fundef_160_cloval_883", { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$retval_159", align 8, !dbg !24 - %"$$retval_159_889" = load { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$retval_159", align 8 - ret { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$$retval_159_889" + %"$gasrem_886" = load i64, i64* @_gasrem, align 8 + %"$gascmp_887" = icmp ugt i64 1, %"$gasrem_886" + br i1 %"$gascmp_887", label %"$out_of_gas_888", label %"$have_gas_889" + +"$out_of_gas_888": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_889" + +"$have_gas_889": ; preds = %"$out_of_gas_888", %entry + %"$consume_890" = sub i64 %"$gasrem_886", 1 + store i64 %"$consume_890", i64* @_gasrem, align 8 + %"$$fundef_160_envp_891_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_160_envp_891_salloc" = call i8* @_salloc(i8* %"$$fundef_160_envp_891_load", i64 32) + %"$$fundef_160_envp_891" = bitcast i8* %"$$fundef_160_envp_891_salloc" to %"$$fundef_160_env_227"* + %"$$fundef_160_env_voidp_893" = bitcast %"$$fundef_160_env_227"* %"$$fundef_160_envp_891" to i8* + %"$$fundef_160_cloval_894" = insertvalue { %TName_Nat* (i8*, %TName_Nat*)*, i8* } { %TName_Nat* (i8*, %TName_Nat*)* bitcast (%TName_Nat* (%"$$fundef_160_env_227"*, %TName_Nat*)* @"$fundef_160" to %TName_Nat* (i8*, %TName_Nat*)*), i8* undef }, i8* %"$$fundef_160_env_voidp_893", 1 + %"$$fundef_160_env_f_895" = getelementptr inbounds %"$$fundef_160_env_227", %"$$fundef_160_env_227"* %"$$fundef_160_envp_891", i32 0, i32 0 + %"$f_896" = load { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %f, align 8 + store { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$f_896", { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$$fundef_160_env_f_895", align 8 + %"$$fundef_160_env_n_897" = getelementptr inbounds %"$$fundef_160_env_227", %"$$fundef_160_env_227"* %"$$fundef_160_envp_891", i32 0, i32 1 + store %TName_Nat* %1, %TName_Nat** %"$$fundef_160_env_n_897", align 8 + %"$$fundef_160_env_nat_fold_898" = getelementptr inbounds %"$$fundef_160_env_227", %"$$fundef_160_env_227"* %"$$fundef_160_envp_891", i32 0, i32 2 + %"$nat_fold_899" = load { i8*, i8* }*, { i8*, i8* }** %nat_fold, align 8 + store { i8*, i8* }* %"$nat_fold_899", { i8*, i8* }** %"$$fundef_160_env_nat_fold_898", align 8 + store { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$$fundef_160_cloval_894", { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$retval_159", align 8, !dbg !48 + %"$$retval_159_900" = load { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$retval_159", align 8 + ret { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$$retval_159_900" } -define internal { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } @"$fundef_156"(%"$$fundef_156_env_229"* %0, { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %1) !dbg !25 { +define internal { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } @"$fundef_156"(%"$$fundef_156_env_229"* %0, { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %1) !dbg !49 { entry: - %"$$fundef_156_env_nat_fold_856" = getelementptr inbounds %"$$fundef_156_env_229", %"$$fundef_156_env_229"* %0, i32 0, i32 0 - %"$nat_fold_envload_857" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_156_env_nat_fold_856", align 8 + %"$$fundef_156_env_nat_fold_867" = getelementptr inbounds %"$$fundef_156_env_229", %"$$fundef_156_env_229"* %0, i32 0, i32 0 + %"$nat_fold_envload_868" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_156_env_nat_fold_867", align 8 %nat_fold = alloca { i8*, i8* }*, align 8 - store { i8*, i8* }* %"$nat_fold_envload_857", { i8*, i8* }** %nat_fold, align 8 + store { i8*, i8* }* %"$nat_fold_envload_868", { i8*, i8* }** %nat_fold, align 8 %"$retval_157" = alloca { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, 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_158_envp_863_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_158_envp_863_salloc" = call i8* @_salloc(i8* %"$$fundef_158_envp_863_load", i64 24) - %"$$fundef_158_envp_863" = bitcast i8* %"$$fundef_158_envp_863_salloc" to %"$$fundef_158_env_228"* - %"$$fundef_158_env_voidp_865" = bitcast %"$$fundef_158_env_228"* %"$$fundef_158_envp_863" to i8* - %"$$fundef_158_cloval_866" = insertvalue { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)* bitcast ({ %TName_Nat* (i8*, %TName_Nat*)*, i8* } (%"$$fundef_158_env_228"*, %TName_Nat*)* @"$fundef_158" to { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*), i8* undef }, i8* %"$$fundef_158_env_voidp_865", 1 - %"$$fundef_158_env_f_867" = getelementptr inbounds %"$$fundef_158_env_228", %"$$fundef_158_env_228"* %"$$fundef_158_envp_863", i32 0, i32 0 - store { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %1, { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$$fundef_158_env_f_867", align 8 - %"$$fundef_158_env_nat_fold_868" = getelementptr inbounds %"$$fundef_158_env_228", %"$$fundef_158_env_228"* %"$$fundef_158_envp_863", i32 0, i32 1 - %"$nat_fold_869" = load { i8*, i8* }*, { i8*, i8* }** %nat_fold, align 8 - store { i8*, i8* }* %"$nat_fold_869", { i8*, i8* }** %"$$fundef_158_env_nat_fold_868", align 8 - store { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$$fundef_158_cloval_866", { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }* %"$retval_157", align 8, !dbg !26 - %"$$retval_157_870" = load { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }* %"$retval_157", align 8 - ret { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$$retval_157_870" + %"$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 = %entry + call void @_out_of_gas() + br label %"$have_gas_872" + +"$have_gas_872": ; preds = %"$out_of_gas_871", %entry + %"$consume_873" = sub i64 %"$gasrem_869", 1 + store i64 %"$consume_873", i64* @_gasrem, align 8 + %"$$fundef_158_envp_874_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_158_envp_874_salloc" = call i8* @_salloc(i8* %"$$fundef_158_envp_874_load", i64 24) + %"$$fundef_158_envp_874" = bitcast i8* %"$$fundef_158_envp_874_salloc" to %"$$fundef_158_env_228"* + %"$$fundef_158_env_voidp_876" = bitcast %"$$fundef_158_env_228"* %"$$fundef_158_envp_874" to i8* + %"$$fundef_158_cloval_877" = insertvalue { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)* bitcast ({ %TName_Nat* (i8*, %TName_Nat*)*, i8* } (%"$$fundef_158_env_228"*, %TName_Nat*)* @"$fundef_158" to { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*), i8* undef }, i8* %"$$fundef_158_env_voidp_876", 1 + %"$$fundef_158_env_f_878" = getelementptr inbounds %"$$fundef_158_env_228", %"$$fundef_158_env_228"* %"$$fundef_158_envp_874", i32 0, i32 0 + store { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %1, { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$$fundef_158_env_f_878", align 8 + %"$$fundef_158_env_nat_fold_879" = getelementptr inbounds %"$$fundef_158_env_228", %"$$fundef_158_env_228"* %"$$fundef_158_envp_874", i32 0, i32 1 + %"$nat_fold_880" = load { i8*, i8* }*, { i8*, i8* }** %nat_fold, align 8 + store { i8*, i8* }* %"$nat_fold_880", { i8*, i8* }** %"$$fundef_158_env_nat_fold_879", align 8 + store { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$$fundef_158_cloval_877", { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }* %"$retval_157", align 8, !dbg !50 + %"$$retval_157_881" = load { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }* %"$retval_157", align 8 + ret { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$$retval_157_881" } -define internal { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } @"$fundef_154"(%"$$fundef_154_env_230"* %0) !dbg !27 { +define internal { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } @"$fundef_154"(%"$$fundef_154_env_230"* %0) !dbg !51 { entry: - %"$$fundef_154_env_nat_fold_842" = getelementptr inbounds %"$$fundef_154_env_230", %"$$fundef_154_env_230"* %0, i32 0, i32 0 - %"$nat_fold_envload_843" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_154_env_nat_fold_842", align 8 + %"$$fundef_154_env_nat_fold_853" = getelementptr inbounds %"$$fundef_154_env_230", %"$$fundef_154_env_230"* %0, i32 0, i32 0 + %"$nat_fold_envload_854" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_154_env_nat_fold_853", align 8 %nat_fold = alloca { i8*, i8* }*, align 8 - store { i8*, i8* }* %"$nat_fold_envload_843", { i8*, i8* }** %nat_fold, align 8 + store { i8*, i8* }* %"$nat_fold_envload_854", { i8*, i8* }** %nat_fold, align 8 %"$retval_155" = alloca { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }, align 8 - %"$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_846": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_847" - -"$have_gas_847": ; preds = %"$out_of_gas_846", %entry - %"$consume_848" = sub i64 %"$gasrem_844", 1 - store i64 %"$consume_848", i64* @_gasrem, align 8 - %"$$fundef_156_envp_849_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_156_envp_849_salloc" = call i8* @_salloc(i8* %"$$fundef_156_envp_849_load", i64 8) - %"$$fundef_156_envp_849" = bitcast i8* %"$$fundef_156_envp_849_salloc" to %"$$fundef_156_env_229"* - %"$$fundef_156_env_voidp_851" = bitcast %"$$fundef_156_env_229"* %"$$fundef_156_envp_849" to i8* - %"$$fundef_156_cloval_852" = insertvalue { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })* bitcast ({ { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (%"$$fundef_156_env_229"*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })* @"$fundef_156" to { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*), i8* undef }, i8* %"$$fundef_156_env_voidp_851", 1 - %"$$fundef_156_env_nat_fold_853" = getelementptr inbounds %"$$fundef_156_env_229", %"$$fundef_156_env_229"* %"$$fundef_156_envp_849", i32 0, i32 0 - %"$nat_fold_854" = load { i8*, i8* }*, { i8*, i8* }** %nat_fold, align 8 - store { i8*, i8* }* %"$nat_fold_854", { i8*, i8* }** %"$$fundef_156_env_nat_fold_853", align 8 - store { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } %"$$fundef_156_cloval_852", { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }* %"$retval_155", align 8, !dbg !28 - %"$$retval_155_855" = load { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }, { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }* %"$retval_155", align 8 - ret { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } %"$$retval_155_855" + %"$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 = %entry + call void @_out_of_gas() + br label %"$have_gas_858" + +"$have_gas_858": ; preds = %"$out_of_gas_857", %entry + %"$consume_859" = sub i64 %"$gasrem_855", 1 + store i64 %"$consume_859", i64* @_gasrem, align 8 + %"$$fundef_156_envp_860_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_156_envp_860_salloc" = call i8* @_salloc(i8* %"$$fundef_156_envp_860_load", i64 8) + %"$$fundef_156_envp_860" = bitcast i8* %"$$fundef_156_envp_860_salloc" to %"$$fundef_156_env_229"* + %"$$fundef_156_env_voidp_862" = bitcast %"$$fundef_156_env_229"* %"$$fundef_156_envp_860" to i8* + %"$$fundef_156_cloval_863" = insertvalue { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })* bitcast ({ { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (%"$$fundef_156_env_229"*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })* @"$fundef_156" to { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*), i8* undef }, i8* %"$$fundef_156_env_voidp_862", 1 + %"$$fundef_156_env_nat_fold_864" = getelementptr inbounds %"$$fundef_156_env_229", %"$$fundef_156_env_229"* %"$$fundef_156_envp_860", i32 0, i32 0 + %"$nat_fold_865" = load { i8*, i8* }*, { i8*, i8* }** %nat_fold, align 8 + store { i8*, i8* }* %"$nat_fold_865", { i8*, i8* }** %"$$fundef_156_env_nat_fold_864", align 8 + store { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } %"$$fundef_156_cloval_863", { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }* %"$retval_155", align 8, !dbg !52 + %"$$retval_155_866" = load { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }, { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }* %"$retval_155", align 8 + ret { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } %"$$retval_155_866" } -define internal { %TName_Nat* (i8*, %TName_Nat*)*, i8* } @"$fundef_152"(%"$$fundef_152_env_231"* %0, %TName_Nat* %1) !dbg !29 { +define internal { %TName_Nat* (i8*, %TName_Nat*)*, i8* } @"$fundef_152"(%"$$fundef_152_env_231"* %0, %TName_Nat* %1) !dbg !53 { entry: - %"$$fundef_152_env_f_826" = getelementptr inbounds %"$$fundef_152_env_231", %"$$fundef_152_env_231"* %0, i32 0, i32 0 - %"$f_envload_827" = load { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }* %"$$fundef_152_env_f_826", align 8 + %"$unused_852" = alloca %TName_Nat*, align 8 + store %TName_Nat* %1, %TName_Nat** %"$unused_852", align 8 + call void @llvm.dbg.declare(metadata %TName_Nat** %"$unused_852", metadata !54, metadata !DIExpression()), !dbg !55 + %"$$fundef_152_env_f_836" = getelementptr inbounds %"$$fundef_152_env_231", %"$$fundef_152_env_231"* %0, i32 0, i32 0 + %"$f_envload_837" = load { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }* %"$$fundef_152_env_f_836", align 8 %f = alloca { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }, align 8 - store { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } %"$f_envload_827", { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }* %f, align 8 - %"$$fundef_152_env_x_828" = getelementptr inbounds %"$$fundef_152_env_231", %"$$fundef_152_env_231"* %0, i32 0, i32 1 - %"$x_envload_829" = load { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$$fundef_152_env_x_828", align 8 + store { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } %"$f_envload_837", { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }* %f, align 8 + %"$$fundef_152_env_x_838" = getelementptr inbounds %"$$fundef_152_env_231", %"$$fundef_152_env_231"* %0, i32 0, i32 1 + %"$x_envload_839" = load { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$$fundef_152_env_x_838", align 8 %x = alloca { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, align 8 - store { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$x_envload_829", { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %x, align 8 + store { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$x_envload_839", { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %x, align 8 %"$retval_153" = alloca { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, align 8 - %"$gasrem_830" = load i64, i64* @_gasrem, align 8 - %"$gascmp_831" = icmp ugt i64 1, %"$gasrem_830" - br i1 %"$gascmp_831", label %"$out_of_gas_832", label %"$have_gas_833" + %"$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_832": ; preds = %entry +"$out_of_gas_842": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_833" + br label %"$have_gas_843" -"$have_gas_833": ; preds = %"$out_of_gas_832", %entry - %"$consume_834" = sub i64 %"$gasrem_830", 1 - store i64 %"$consume_834", i64* @_gasrem, align 8 +"$have_gas_843": ; preds = %"$out_of_gas_842", %entry + %"$consume_844" = sub i64 %"$gasrem_840", 1 + store i64 %"$consume_844", i64* @_gasrem, align 8 %"$f_36" = alloca { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, align 8 - %"$f_835" = load { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }* %f, align 8 - %"$f_fptr_836" = extractvalue { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } %"$f_835", 0 - %"$f_envptr_837" = extractvalue { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } %"$f_835", 1 - %"$x_838" = load { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %x, align 8 - %"$f_call_839" = call { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$f_fptr_836"(i8* %"$f_envptr_837", { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$x_838"), !dbg !30 - store { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$f_call_839", { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$f_36", align 8, !dbg !30 - %"$$f_36_840" = load { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$f_36", align 8 - store { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$$f_36_840", { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$retval_153", align 8, !dbg !30 - %"$$retval_153_841" = load { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$retval_153", align 8 - ret { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$$retval_153_841" + %"$f_845" = load { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }* %f, align 8 + %"$f_fptr_846" = extractvalue { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } %"$f_845", 0 + %"$f_envptr_847" = extractvalue { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } %"$f_845", 1 + %"$x_848" = load { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %x, align 8 + %"$f_call_849" = call { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$f_fptr_846"(i8* %"$f_envptr_847", { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$x_848"), !dbg !56 + store { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$f_call_849", { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$f_36", align 8, !dbg !56 + %"$$f_36_850" = load { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$f_36", align 8 + store { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$$f_36_850", { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$retval_153", align 8, !dbg !56 + %"$$retval_153_851" = load { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$retval_153", align 8 + ret { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$$retval_153_851" } -define internal { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } @"$fundef_150"(%"$$fundef_150_env_232"* %0, { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %1) !dbg !31 { +define internal { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } @"$fundef_150"(%"$$fundef_150_env_232"* %0, { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %1) !dbg !57 { entry: - %"$$fundef_150_env_f_811" = getelementptr inbounds %"$$fundef_150_env_232", %"$$fundef_150_env_232"* %0, i32 0, i32 0 - %"$f_envload_812" = load { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }* %"$$fundef_150_env_f_811", align 8 + %"$$fundef_150_env_f_821" = getelementptr inbounds %"$$fundef_150_env_232", %"$$fundef_150_env_232"* %0, i32 0, i32 0 + %"$f_envload_822" = load { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }* %"$$fundef_150_env_f_821", align 8 %f = alloca { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }, align 8 - store { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } %"$f_envload_812", { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }* %f, align 8 + store { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } %"$f_envload_822", { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }* %f, align 8 %"$retval_151" = alloca { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }, align 8 - %"$gasrem_813" = load i64, i64* @_gasrem, align 8 - %"$gascmp_814" = icmp ugt i64 1, %"$gasrem_813" - br i1 %"$gascmp_814", label %"$out_of_gas_815", label %"$have_gas_816" - -"$out_of_gas_815": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_816" - -"$have_gas_816": ; preds = %"$out_of_gas_815", %entry - %"$consume_817" = sub i64 %"$gasrem_813", 1 - store i64 %"$consume_817", i64* @_gasrem, align 8 - %"$$fundef_152_envp_818_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_152_envp_818_salloc" = call i8* @_salloc(i8* %"$$fundef_152_envp_818_load", i64 32) - %"$$fundef_152_envp_818" = bitcast i8* %"$$fundef_152_envp_818_salloc" to %"$$fundef_152_env_231"* - %"$$fundef_152_env_voidp_820" = bitcast %"$$fundef_152_env_231"* %"$$fundef_152_envp_818" to i8* - %"$$fundef_152_cloval_821" = insertvalue { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)* bitcast ({ %TName_Nat* (i8*, %TName_Nat*)*, i8* } (%"$$fundef_152_env_231"*, %TName_Nat*)* @"$fundef_152" to { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*), i8* undef }, i8* %"$$fundef_152_env_voidp_820", 1 - %"$$fundef_152_env_f_822" = getelementptr inbounds %"$$fundef_152_env_231", %"$$fundef_152_env_231"* %"$$fundef_152_envp_818", i32 0, i32 0 - %"$f_823" = load { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }* %f, align 8 - store { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } %"$f_823", { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }* %"$$fundef_152_env_f_822", align 8 - %"$$fundef_152_env_x_824" = getelementptr inbounds %"$$fundef_152_env_231", %"$$fundef_152_env_231"* %"$$fundef_152_envp_818", i32 0, i32 1 - store { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %1, { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$$fundef_152_env_x_824", align 8 - store { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$$fundef_152_cloval_821", { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }* %"$retval_151", align 8, !dbg !32 - %"$$retval_151_825" = load { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }* %"$retval_151", align 8 - ret { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$$retval_151_825" + %"$gasrem_823" = load i64, i64* @_gasrem, align 8 + %"$gascmp_824" = icmp ugt i64 1, %"$gasrem_823" + br i1 %"$gascmp_824", label %"$out_of_gas_825", label %"$have_gas_826" + +"$out_of_gas_825": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_826" + +"$have_gas_826": ; preds = %"$out_of_gas_825", %entry + %"$consume_827" = sub i64 %"$gasrem_823", 1 + store i64 %"$consume_827", i64* @_gasrem, align 8 + %"$$fundef_152_envp_828_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_152_envp_828_salloc" = call i8* @_salloc(i8* %"$$fundef_152_envp_828_load", i64 32) + %"$$fundef_152_envp_828" = bitcast i8* %"$$fundef_152_envp_828_salloc" to %"$$fundef_152_env_231"* + %"$$fundef_152_env_voidp_830" = bitcast %"$$fundef_152_env_231"* %"$$fundef_152_envp_828" to i8* + %"$$fundef_152_cloval_831" = insertvalue { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)* bitcast ({ %TName_Nat* (i8*, %TName_Nat*)*, i8* } (%"$$fundef_152_env_231"*, %TName_Nat*)* @"$fundef_152" to { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*), i8* undef }, i8* %"$$fundef_152_env_voidp_830", 1 + %"$$fundef_152_env_f_832" = getelementptr inbounds %"$$fundef_152_env_231", %"$$fundef_152_env_231"* %"$$fundef_152_envp_828", i32 0, i32 0 + %"$f_833" = load { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }* %f, align 8 + store { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } %"$f_833", { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }* %"$$fundef_152_env_f_832", align 8 + %"$$fundef_152_env_x_834" = getelementptr inbounds %"$$fundef_152_env_231", %"$$fundef_152_env_231"* %"$$fundef_152_envp_828", i32 0, i32 1 + store { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %1, { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$$fundef_152_env_x_834", align 8 + store { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$$fundef_152_cloval_831", { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }* %"$retval_151", align 8, !dbg !58 + %"$$retval_151_835" = load { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }* %"$retval_151", align 8 + ret { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$$retval_151_835" } -define internal { %TName_Nat* (i8*, %TName_Nat*)*, i8* } @"$fundef_148"(%"$$fundef_148_env_233"* %0, { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %1) !dbg !33 { +define internal { %TName_Nat* (i8*, %TName_Nat*)*, i8* } @"$fundef_148"(%"$$fundef_148_env_233"* %0, { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %1) !dbg !59 { entry: - %"$$fundef_148_env_f_751" = getelementptr inbounds %"$$fundef_148_env_233", %"$$fundef_148_env_233"* %0, i32 0, i32 0 - %"$f_envload_752" = load { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }* %"$$fundef_148_env_f_751", align 8 + %"$$fundef_148_env_f_761" = getelementptr inbounds %"$$fundef_148_env_233", %"$$fundef_148_env_233"* %0, i32 0, i32 0 + %"$f_envload_762" = load { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }* %"$$fundef_148_env_f_761", align 8 %f = alloca { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }, align 8 - store { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } %"$f_envload_752", { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }* %f, align 8 - %"$$fundef_148_env_n_753" = getelementptr inbounds %"$$fundef_148_env_233", %"$$fundef_148_env_233"* %0, i32 0, i32 1 - %"$n_envload_754" = load %TName_Nat*, %TName_Nat** %"$$fundef_148_env_n_753", align 8 + store { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } %"$f_envload_762", { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }* %f, align 8 + %"$$fundef_148_env_n_763" = getelementptr inbounds %"$$fundef_148_env_233", %"$$fundef_148_env_233"* %0, i32 0, i32 1 + %"$n_envload_764" = load %TName_Nat*, %TName_Nat** %"$$fundef_148_env_n_763", align 8 %n = alloca %TName_Nat*, align 8 - store %TName_Nat* %"$n_envload_754", %TName_Nat** %n, align 8 - %"$$fundef_148_env_nat_fold_755" = getelementptr inbounds %"$$fundef_148_env_233", %"$$fundef_148_env_233"* %0, i32 0, i32 2 - %"$nat_fold_envload_756" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_148_env_nat_fold_755", align 8 + store %TName_Nat* %"$n_envload_764", %TName_Nat** %n, align 8 + %"$$fundef_148_env_nat_fold_765" = getelementptr inbounds %"$$fundef_148_env_233", %"$$fundef_148_env_233"* %0, i32 0, i32 2 + %"$nat_fold_envload_766" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_148_env_nat_fold_765", align 8 %nat_fold = alloca { i8*, i8* }*, align 8 - store { i8*, i8* }* %"$nat_fold_envload_756", { i8*, i8* }** %nat_fold, align 8 + store { i8*, i8* }* %"$nat_fold_envload_766", { i8*, i8* }** %nat_fold, align 8 %"$retval_149" = alloca { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, align 8 - %"$gasrem_757" = load i64, i64* @_gasrem, align 8 - %"$gascmp_758" = icmp ugt i64 1, %"$gasrem_757" - br i1 %"$gascmp_758", label %"$out_of_gas_759", label %"$have_gas_760" + %"$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_759": ; preds = %entry +"$out_of_gas_769": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_760" + br label %"$have_gas_770" -"$have_gas_760": ; preds = %"$out_of_gas_759", %entry - %"$consume_761" = sub i64 %"$gasrem_757", 1 - store i64 %"$consume_761", 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 %folder = alloca { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*, i8* }, 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_760" - call void @_out_of_gas() - br label %"$have_gas_765" - -"$have_gas_765": ; preds = %"$out_of_gas_764", %"$have_gas_760" - %"$consume_766" = sub i64 %"$gasrem_762", 1 - store i64 %"$consume_766", i64* @_gasrem, align 8 - %"$nat_fold_767" = load { i8*, i8* }*, { i8*, i8* }** %nat_fold, align 8 - %"$nat_fold_768" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$nat_fold_767", i32 1 - %"$nat_fold_769" = bitcast { i8*, i8* }* %"$nat_fold_768" to { { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*, i8* } (i8*)*, i8* }* - %"$nat_fold_770" = load { { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*, i8* } (i8*)*, i8* }, { { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*, i8* } (i8*)*, i8* }* %"$nat_fold_769", align 8 - %"$nat_fold_fptr_771" = extractvalue { { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*, i8* } (i8*)*, i8* } %"$nat_fold_770", 0 - %"$nat_fold_envptr_772" = extractvalue { { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*, i8* } (i8*)*, i8* } %"$nat_fold_770", 1 - %"$nat_fold_call_773" = call { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*, i8* } %"$nat_fold_fptr_771"(i8* %"$nat_fold_envptr_772"), !dbg !34 - store { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*, i8* } %"$nat_fold_call_773", { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*, i8* }* %folder, align 8, !dbg !35 - %"$gasrem_774" = load i64, i64* @_gasrem, align 8 - %"$gascmp_775" = icmp ugt i64 1, %"$gasrem_774" - br i1 %"$gascmp_775", label %"$out_of_gas_776", label %"$have_gas_777" - -"$out_of_gas_776": ; preds = %"$have_gas_765" - call void @_out_of_gas() - br label %"$have_gas_777" - -"$have_gas_777": ; preds = %"$out_of_gas_776", %"$have_gas_765" - %"$consume_778" = sub i64 %"$gasrem_774", 1 - store i64 %"$consume_778", 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 + %"$nat_fold_777" = load { i8*, i8* }*, { i8*, i8* }** %nat_fold, align 8 + %"$nat_fold_778" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$nat_fold_777", i32 1 + %"$nat_fold_779" = bitcast { i8*, i8* }* %"$nat_fold_778" to { { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*, i8* } (i8*)*, i8* }* + %"$nat_fold_780" = load { { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*, i8* } (i8*)*, i8* }, { { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*, i8* } (i8*)*, i8* }* %"$nat_fold_779", align 8 + %"$nat_fold_fptr_781" = extractvalue { { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*, i8* } (i8*)*, i8* } %"$nat_fold_780", 0 + %"$nat_fold_envptr_782" = extractvalue { { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*, i8* } (i8*)*, i8* } %"$nat_fold_780", 1 + %"$nat_fold_call_783" = call { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*, i8* } %"$nat_fold_fptr_781"(i8* %"$nat_fold_envptr_782"), !dbg !60 + store { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*, i8* } %"$nat_fold_call_783", { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*, i8* }* %folder, align 8, !dbg !61 + %"$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" + +"$out_of_gas_786": ; preds = %"$have_gas_775" + call void @_out_of_gas() + br label %"$have_gas_787" + +"$have_gas_787": ; preds = %"$out_of_gas_786", %"$have_gas_775" + %"$consume_788" = sub i64 %"$gasrem_784", 1 + store i64 %"$consume_788", i64* @_gasrem, align 8 %step = alloca { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }, align 8 - %"$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 = %"$have_gas_777" - call void @_out_of_gas() - br label %"$have_gas_782" - -"$have_gas_782": ; preds = %"$out_of_gas_781", %"$have_gas_777" - %"$consume_783" = sub i64 %"$gasrem_779", 1 - store i64 %"$consume_783", i64* @_gasrem, align 8 - %"$$fundef_150_envp_784_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_150_envp_784_salloc" = call i8* @_salloc(i8* %"$$fundef_150_envp_784_load", i64 16) - %"$$fundef_150_envp_784" = bitcast i8* %"$$fundef_150_envp_784_salloc" to %"$$fundef_150_env_232"* - %"$$fundef_150_env_voidp_786" = bitcast %"$$fundef_150_env_232"* %"$$fundef_150_envp_784" to i8* - %"$$fundef_150_cloval_787" = insertvalue { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })* bitcast ({ { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (%"$$fundef_150_env_232"*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })* @"$fundef_150" to { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*), i8* undef }, i8* %"$$fundef_150_env_voidp_786", 1 - %"$$fundef_150_env_f_788" = getelementptr inbounds %"$$fundef_150_env_232", %"$$fundef_150_env_232"* %"$$fundef_150_envp_784", i32 0, i32 0 - %"$f_789" = load { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }* %f, align 8 - store { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } %"$f_789", { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }* %"$$fundef_150_env_f_788", align 8 - store { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } %"$$fundef_150_cloval_787", { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }* %step, align 8, !dbg !36 - %"$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" - -"$out_of_gas_792": ; preds = %"$have_gas_782" - call void @_out_of_gas() - br label %"$have_gas_793" - -"$have_gas_793": ; preds = %"$out_of_gas_792", %"$have_gas_782" - %"$consume_794" = sub i64 %"$gasrem_790", 1 - store i64 %"$consume_794", i64* @_gasrem, 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 + %"$$fundef_150_envp_794_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_150_envp_794_salloc" = call i8* @_salloc(i8* %"$$fundef_150_envp_794_load", i64 16) + %"$$fundef_150_envp_794" = bitcast i8* %"$$fundef_150_envp_794_salloc" to %"$$fundef_150_env_232"* + %"$$fundef_150_env_voidp_796" = bitcast %"$$fundef_150_env_232"* %"$$fundef_150_envp_794" to i8* + %"$$fundef_150_cloval_797" = insertvalue { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })* bitcast ({ { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (%"$$fundef_150_env_232"*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })* @"$fundef_150" to { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*), i8* undef }, i8* %"$$fundef_150_env_voidp_796", 1 + %"$$fundef_150_env_f_798" = getelementptr inbounds %"$$fundef_150_env_232", %"$$fundef_150_env_232"* %"$$fundef_150_envp_794", i32 0, i32 0 + %"$f_799" = load { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }* %f, align 8 + store { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } %"$f_799", { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }* %"$$fundef_150_env_f_798", align 8 + store { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } %"$$fundef_150_cloval_797", { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }* %step, align 8, !dbg !62 + %"$gasrem_800" = load i64, i64* @_gasrem, align 8 + %"$gascmp_801" = icmp ugt i64 1, %"$gasrem_800" + br i1 %"$gascmp_801", label %"$out_of_gas_802", label %"$have_gas_803" + +"$out_of_gas_802": ; preds = %"$have_gas_792" + call void @_out_of_gas() + br label %"$have_gas_803" + +"$have_gas_803": ; preds = %"$out_of_gas_802", %"$have_gas_792" + %"$consume_804" = sub i64 %"$gasrem_800", 1 + store i64 %"$consume_804", i64* @_gasrem, align 8 %"$folder_37" = alloca { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }, align 8 - %"$folder_795" = load { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*, i8* }, { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*, i8* }* %folder, align 8 - %"$folder_fptr_796" = extractvalue { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*, i8* } %"$folder_795", 0 - %"$folder_envptr_797" = extractvalue { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*, i8* } %"$folder_795", 1 - %"$step_798" = load { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }, { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }* %step, align 8 - %"$folder_call_799" = call { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } %"$folder_fptr_796"(i8* %"$folder_envptr_797", { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } %"$step_798"), !dbg !37 - store { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } %"$folder_call_799", { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }* %"$folder_37", align 8, !dbg !37 + %"$folder_805" = load { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*, i8* }, { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*, i8* }* %folder, align 8 + %"$folder_fptr_806" = extractvalue { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*, i8* } %"$folder_805", 0 + %"$folder_envptr_807" = extractvalue { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*, i8* } %"$folder_805", 1 + %"$step_808" = load { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }, { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }* %step, align 8 + %"$folder_call_809" = call { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } %"$folder_fptr_806"(i8* %"$folder_envptr_807", { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } %"$step_808"), !dbg !63 + store { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } %"$folder_call_809", { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }* %"$folder_37", align 8, !dbg !63 %"$folder_38" = alloca { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }, align 8 - %"$$folder_37_800" = load { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }, { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }* %"$folder_37", align 8 - %"$$folder_37_fptr_801" = extractvalue { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } %"$$folder_37_800", 0 - %"$$folder_37_envptr_802" = extractvalue { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } %"$$folder_37_800", 1 - %"$$folder_37_call_803" = call { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$$folder_37_fptr_801"(i8* %"$$folder_37_envptr_802", { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %1), !dbg !37 - store { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$$folder_37_call_803", { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }* %"$folder_38", align 8, !dbg !37 + %"$$folder_37_810" = load { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }, { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }* %"$folder_37", align 8 + %"$$folder_37_fptr_811" = extractvalue { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } %"$$folder_37_810", 0 + %"$$folder_37_envptr_812" = extractvalue { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } %"$$folder_37_810", 1 + %"$$folder_37_call_813" = call { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$$folder_37_fptr_811"(i8* %"$$folder_37_envptr_812", { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %1), !dbg !63 + store { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$$folder_37_call_813", { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }* %"$folder_38", align 8, !dbg !63 %"$folder_39" = alloca { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, align 8 - %"$$folder_38_804" = load { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }* %"$folder_38", align 8 - %"$$folder_38_fptr_805" = extractvalue { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$$folder_38_804", 0 - %"$$folder_38_envptr_806" = extractvalue { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$$folder_38_804", 1 - %"$n_807" = load %TName_Nat*, %TName_Nat** %n, align 8 - %"$$folder_38_call_808" = call { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$$folder_38_fptr_805"(i8* %"$$folder_38_envptr_806", %TName_Nat* %"$n_807"), !dbg !37 - store { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$$folder_38_call_808", { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$folder_39", align 8, !dbg !37 - %"$$folder_39_809" = load { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$folder_39", align 8 - store { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$$folder_39_809", { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$retval_149", align 8, !dbg !37 - %"$$retval_149_810" = load { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$retval_149", align 8 - ret { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$$retval_149_810" + %"$$folder_38_814" = load { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }* %"$folder_38", align 8 + %"$$folder_38_fptr_815" = extractvalue { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$$folder_38_814", 0 + %"$$folder_38_envptr_816" = extractvalue { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$$folder_38_814", 1 + %"$n_817" = load %TName_Nat*, %TName_Nat** %n, align 8 + %"$$folder_38_call_818" = call { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$$folder_38_fptr_815"(i8* %"$$folder_38_envptr_816", %TName_Nat* %"$n_817"), !dbg !63 + store { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$$folder_38_call_818", { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$folder_39", align 8, !dbg !63 + %"$$folder_39_819" = load { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$folder_39", align 8 + store { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$$folder_39_819", { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$retval_149", align 8, !dbg !63 + %"$$retval_149_820" = load { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$retval_149", align 8 + ret { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$$retval_149_820" } -define internal { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } @"$fundef_146"(%"$$fundef_146_env_234"* %0, %TName_Nat* %1) !dbg !38 { +define internal { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } @"$fundef_146"(%"$$fundef_146_env_234"* %0, %TName_Nat* %1) !dbg !64 { entry: - %"$$fundef_146_env_f_732" = getelementptr inbounds %"$$fundef_146_env_234", %"$$fundef_146_env_234"* %0, i32 0, i32 0 - %"$f_envload_733" = load { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }* %"$$fundef_146_env_f_732", align 8 + %"$n_760" = alloca %TName_Nat*, align 8 + store %TName_Nat* %1, %TName_Nat** %"$n_760", align 8 + call void @llvm.dbg.declare(metadata %TName_Nat** %"$n_760", metadata !65, metadata !DIExpression()), !dbg !66 + %"$$fundef_146_env_f_741" = getelementptr inbounds %"$$fundef_146_env_234", %"$$fundef_146_env_234"* %0, i32 0, i32 0 + %"$f_envload_742" = load { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }* %"$$fundef_146_env_f_741", align 8 %f = alloca { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }, align 8 - store { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } %"$f_envload_733", { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }* %f, align 8 - %"$$fundef_146_env_nat_fold_734" = getelementptr inbounds %"$$fundef_146_env_234", %"$$fundef_146_env_234"* %0, i32 0, i32 1 - %"$nat_fold_envload_735" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_146_env_nat_fold_734", align 8 + store { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } %"$f_envload_742", { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }* %f, align 8 + %"$$fundef_146_env_nat_fold_743" = getelementptr inbounds %"$$fundef_146_env_234", %"$$fundef_146_env_234"* %0, i32 0, i32 1 + %"$nat_fold_envload_744" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_146_env_nat_fold_743", align 8 %nat_fold = alloca { i8*, i8* }*, align 8 - store { i8*, i8* }* %"$nat_fold_envload_735", { i8*, i8* }** %nat_fold, align 8 + store { i8*, i8* }* %"$nat_fold_envload_744", { i8*, i8* }** %nat_fold, align 8 %"$retval_147" = alloca { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }, 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 = %entry - call void @_out_of_gas() - br label %"$have_gas_739" - -"$have_gas_739": ; preds = %"$out_of_gas_738", %entry - %"$consume_740" = sub i64 %"$gasrem_736", 1 - store i64 %"$consume_740", i64* @_gasrem, align 8 - %"$$fundef_148_envp_741_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_148_envp_741_salloc" = call i8* @_salloc(i8* %"$$fundef_148_envp_741_load", i64 32) - %"$$fundef_148_envp_741" = bitcast i8* %"$$fundef_148_envp_741_salloc" to %"$$fundef_148_env_233"* - %"$$fundef_148_env_voidp_743" = bitcast %"$$fundef_148_env_233"* %"$$fundef_148_envp_741" to i8* - %"$$fundef_148_cloval_744" = insertvalue { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })* bitcast ({ %TName_Nat* (i8*, %TName_Nat*)*, i8* } (%"$$fundef_148_env_233"*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })* @"$fundef_148" to { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*), i8* undef }, i8* %"$$fundef_148_env_voidp_743", 1 - %"$$fundef_148_env_f_745" = getelementptr inbounds %"$$fundef_148_env_233", %"$$fundef_148_env_233"* %"$$fundef_148_envp_741", i32 0, i32 0 - %"$f_746" = load { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }* %f, align 8 - store { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } %"$f_746", { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }* %"$$fundef_148_env_f_745", align 8 - %"$$fundef_148_env_n_747" = getelementptr inbounds %"$$fundef_148_env_233", %"$$fundef_148_env_233"* %"$$fundef_148_envp_741", i32 0, i32 1 - store %TName_Nat* %1, %TName_Nat** %"$$fundef_148_env_n_747", align 8 - %"$$fundef_148_env_nat_fold_748" = getelementptr inbounds %"$$fundef_148_env_233", %"$$fundef_148_env_233"* %"$$fundef_148_envp_741", i32 0, i32 2 - %"$nat_fold_749" = load { i8*, i8* }*, { i8*, i8* }** %nat_fold, align 8 - store { i8*, i8* }* %"$nat_fold_749", { i8*, i8* }** %"$$fundef_148_env_nat_fold_748", align 8 - store { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } %"$$fundef_148_cloval_744", { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }* %"$retval_147", align 8, !dbg !39 - %"$$retval_147_750" = load { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }* %"$retval_147", align 8 - ret { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } %"$$retval_147_750" + %"$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 = %entry + call void @_out_of_gas() + br label %"$have_gas_748" + +"$have_gas_748": ; preds = %"$out_of_gas_747", %entry + %"$consume_749" = sub i64 %"$gasrem_745", 1 + store i64 %"$consume_749", i64* @_gasrem, align 8 + %"$$fundef_148_envp_750_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_148_envp_750_salloc" = call i8* @_salloc(i8* %"$$fundef_148_envp_750_load", i64 32) + %"$$fundef_148_envp_750" = bitcast i8* %"$$fundef_148_envp_750_salloc" to %"$$fundef_148_env_233"* + %"$$fundef_148_env_voidp_752" = bitcast %"$$fundef_148_env_233"* %"$$fundef_148_envp_750" to i8* + %"$$fundef_148_cloval_753" = insertvalue { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })* bitcast ({ %TName_Nat* (i8*, %TName_Nat*)*, i8* } (%"$$fundef_148_env_233"*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })* @"$fundef_148" to { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*), i8* undef }, i8* %"$$fundef_148_env_voidp_752", 1 + %"$$fundef_148_env_f_754" = getelementptr inbounds %"$$fundef_148_env_233", %"$$fundef_148_env_233"* %"$$fundef_148_envp_750", i32 0, i32 0 + %"$f_755" = load { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }* %f, align 8 + store { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } %"$f_755", { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }* %"$$fundef_148_env_f_754", align 8 + %"$$fundef_148_env_n_756" = getelementptr inbounds %"$$fundef_148_env_233", %"$$fundef_148_env_233"* %"$$fundef_148_envp_750", i32 0, i32 1 + store %TName_Nat* %1, %TName_Nat** %"$$fundef_148_env_n_756", align 8 + %"$$fundef_148_env_nat_fold_757" = getelementptr inbounds %"$$fundef_148_env_233", %"$$fundef_148_env_233"* %"$$fundef_148_envp_750", i32 0, i32 2 + %"$nat_fold_758" = load { i8*, i8* }*, { i8*, i8* }** %nat_fold, align 8 + store { i8*, i8* }* %"$nat_fold_758", { i8*, i8* }** %"$$fundef_148_env_nat_fold_757", align 8 + store { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } %"$$fundef_148_cloval_753", { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }* %"$retval_147", align 8, !dbg !67 + %"$$retval_147_759" = load { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }* %"$retval_147", align 8 + ret { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } %"$$retval_147_759" } -define internal { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, %TName_Nat*)*, i8* } @"$fundef_144"(%"$$fundef_144_env_235"* %0, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } %1) !dbg !40 { +define internal { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, %TName_Nat*)*, i8* } @"$fundef_144"(%"$$fundef_144_env_235"* %0, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } %1) !dbg !68 { entry: - %"$$fundef_144_env_nat_fold_717" = getelementptr inbounds %"$$fundef_144_env_235", %"$$fundef_144_env_235"* %0, i32 0, i32 0 - %"$nat_fold_envload_718" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_144_env_nat_fold_717", align 8 + %"$$fundef_144_env_nat_fold_726" = getelementptr inbounds %"$$fundef_144_env_235", %"$$fundef_144_env_235"* %0, i32 0, i32 0 + %"$nat_fold_envload_727" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_144_env_nat_fold_726", align 8 %nat_fold = alloca { i8*, i8* }*, align 8 - store { i8*, i8* }* %"$nat_fold_envload_718", { i8*, i8* }** %nat_fold, align 8 + store { i8*, i8* }* %"$nat_fold_envload_727", { i8*, i8* }** %nat_fold, align 8 %"$retval_145" = alloca { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, %TName_Nat*)*, i8* }, 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 = %entry - call void @_out_of_gas() - br label %"$have_gas_722" - -"$have_gas_722": ; preds = %"$out_of_gas_721", %entry - %"$consume_723" = sub i64 %"$gasrem_719", 1 - store i64 %"$consume_723", i64* @_gasrem, align 8 - %"$$fundef_146_envp_724_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_146_envp_724_salloc" = call i8* @_salloc(i8* %"$$fundef_146_envp_724_load", i64 24) - %"$$fundef_146_envp_724" = bitcast i8* %"$$fundef_146_envp_724_salloc" to %"$$fundef_146_env_234"* - %"$$fundef_146_env_voidp_726" = bitcast %"$$fundef_146_env_234"* %"$$fundef_146_envp_724" to i8* - %"$$fundef_146_cloval_727" = insertvalue { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, %TName_Nat*)*, i8* } { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, %TName_Nat*)* bitcast ({ { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (%"$$fundef_146_env_234"*, %TName_Nat*)* @"$fundef_146" to { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, %TName_Nat*)*), i8* undef }, i8* %"$$fundef_146_env_voidp_726", 1 - %"$$fundef_146_env_f_728" = getelementptr inbounds %"$$fundef_146_env_234", %"$$fundef_146_env_234"* %"$$fundef_146_envp_724", i32 0, i32 0 - store { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } %1, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }* %"$$fundef_146_env_f_728", align 8 - %"$$fundef_146_env_nat_fold_729" = getelementptr inbounds %"$$fundef_146_env_234", %"$$fundef_146_env_234"* %"$$fundef_146_envp_724", i32 0, i32 1 - %"$nat_fold_730" = load { i8*, i8* }*, { i8*, i8* }** %nat_fold, align 8 - store { i8*, i8* }* %"$nat_fold_730", { i8*, i8* }** %"$$fundef_146_env_nat_fold_729", align 8 - store { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, %TName_Nat*)*, i8* } %"$$fundef_146_cloval_727", { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, %TName_Nat*)*, i8* }* %"$retval_145", align 8, !dbg !41 - %"$$retval_145_731" = load { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, %TName_Nat*)*, i8* }, { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, %TName_Nat*)*, i8* }* %"$retval_145", align 8 - ret { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, %TName_Nat*)*, i8* } %"$$retval_145_731" + %"$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_730": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_731" + +"$have_gas_731": ; preds = %"$out_of_gas_730", %entry + %"$consume_732" = sub i64 %"$gasrem_728", 1 + store i64 %"$consume_732", i64* @_gasrem, align 8 + %"$$fundef_146_envp_733_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_146_envp_733_salloc" = call i8* @_salloc(i8* %"$$fundef_146_envp_733_load", i64 24) + %"$$fundef_146_envp_733" = bitcast i8* %"$$fundef_146_envp_733_salloc" to %"$$fundef_146_env_234"* + %"$$fundef_146_env_voidp_735" = bitcast %"$$fundef_146_env_234"* %"$$fundef_146_envp_733" to i8* + %"$$fundef_146_cloval_736" = insertvalue { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, %TName_Nat*)*, i8* } { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, %TName_Nat*)* bitcast ({ { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (%"$$fundef_146_env_234"*, %TName_Nat*)* @"$fundef_146" to { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, %TName_Nat*)*), i8* undef }, i8* %"$$fundef_146_env_voidp_735", 1 + %"$$fundef_146_env_f_737" = getelementptr inbounds %"$$fundef_146_env_234", %"$$fundef_146_env_234"* %"$$fundef_146_envp_733", i32 0, i32 0 + store { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } %1, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }* %"$$fundef_146_env_f_737", align 8 + %"$$fundef_146_env_nat_fold_738" = getelementptr inbounds %"$$fundef_146_env_234", %"$$fundef_146_env_234"* %"$$fundef_146_envp_733", i32 0, i32 1 + %"$nat_fold_739" = load { i8*, i8* }*, { i8*, i8* }** %nat_fold, align 8 + store { i8*, i8* }* %"$nat_fold_739", { i8*, i8* }** %"$$fundef_146_env_nat_fold_738", align 8 + store { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, %TName_Nat*)*, i8* } %"$$fundef_146_cloval_736", { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, %TName_Nat*)*, i8* }* %"$retval_145", align 8, !dbg !69 + %"$$retval_145_740" = load { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, %TName_Nat*)*, i8* }, { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, %TName_Nat*)*, i8* }* %"$retval_145", align 8 + ret { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, %TName_Nat*)*, i8* } %"$$retval_145_740" } -define internal { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*, i8* } @"$fundef_142"(%"$$fundef_142_env_236"* %0) !dbg !42 { +define internal { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*, i8* } @"$fundef_142"(%"$$fundef_142_env_236"* %0) !dbg !70 { entry: - %"$$fundef_142_env_nat_fold_703" = getelementptr inbounds %"$$fundef_142_env_236", %"$$fundef_142_env_236"* %0, i32 0, i32 0 - %"$nat_fold_envload_704" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_142_env_nat_fold_703", align 8 + %"$$fundef_142_env_nat_fold_712" = getelementptr inbounds %"$$fundef_142_env_236", %"$$fundef_142_env_236"* %0, i32 0, i32 0 + %"$nat_fold_envload_713" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_142_env_nat_fold_712", align 8 %nat_fold = alloca { i8*, i8* }*, align 8 - store { i8*, i8* }* %"$nat_fold_envload_704", { i8*, i8* }** %nat_fold, align 8 + store { i8*, i8* }* %"$nat_fold_envload_713", { i8*, i8* }** %nat_fold, align 8 %"$retval_143" = alloca { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*, i8* }, align 8 - %"$gasrem_705" = load i64, i64* @_gasrem, align 8 - %"$gascmp_706" = icmp ugt i64 1, %"$gasrem_705" - br i1 %"$gascmp_706", label %"$out_of_gas_707", label %"$have_gas_708" - -"$out_of_gas_707": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_708" - -"$have_gas_708": ; preds = %"$out_of_gas_707", %entry - %"$consume_709" = sub i64 %"$gasrem_705", 1 - store i64 %"$consume_709", i64* @_gasrem, align 8 - %"$$fundef_144_envp_710_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_144_envp_710_salloc" = call i8* @_salloc(i8* %"$$fundef_144_envp_710_load", i64 8) - %"$$fundef_144_envp_710" = bitcast i8* %"$$fundef_144_envp_710_salloc" to %"$$fundef_144_env_235"* - %"$$fundef_144_env_voidp_712" = bitcast %"$$fundef_144_env_235"* %"$$fundef_144_envp_710" to i8* - %"$$fundef_144_cloval_713" = insertvalue { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*, i8* } { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })* bitcast ({ { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, %TName_Nat*)*, i8* } (%"$$fundef_144_env_235"*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })* @"$fundef_144" to { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*), i8* undef }, i8* %"$$fundef_144_env_voidp_712", 1 - %"$$fundef_144_env_nat_fold_714" = getelementptr inbounds %"$$fundef_144_env_235", %"$$fundef_144_env_235"* %"$$fundef_144_envp_710", i32 0, i32 0 - %"$nat_fold_715" = load { i8*, i8* }*, { i8*, i8* }** %nat_fold, align 8 - store { i8*, i8* }* %"$nat_fold_715", { i8*, i8* }** %"$$fundef_144_env_nat_fold_714", align 8 - store { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*, i8* } %"$$fundef_144_cloval_713", { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*, i8* }* %"$retval_143", align 8, !dbg !43 - %"$$retval_143_716" = load { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*, i8* }, { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*, i8* }* %"$retval_143", align 8 - ret { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*, i8* } %"$$retval_143_716" + %"$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 = %entry + call void @_out_of_gas() + br label %"$have_gas_717" + +"$have_gas_717": ; preds = %"$out_of_gas_716", %entry + %"$consume_718" = sub i64 %"$gasrem_714", 1 + store i64 %"$consume_718", i64* @_gasrem, align 8 + %"$$fundef_144_envp_719_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_144_envp_719_salloc" = call i8* @_salloc(i8* %"$$fundef_144_envp_719_load", i64 8) + %"$$fundef_144_envp_719" = bitcast i8* %"$$fundef_144_envp_719_salloc" to %"$$fundef_144_env_235"* + %"$$fundef_144_env_voidp_721" = bitcast %"$$fundef_144_env_235"* %"$$fundef_144_envp_719" to i8* + %"$$fundef_144_cloval_722" = insertvalue { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*, i8* } { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })* bitcast ({ { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, %TName_Nat*)*, i8* } (%"$$fundef_144_env_235"*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })* @"$fundef_144" to { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*), i8* undef }, i8* %"$$fundef_144_env_voidp_721", 1 + %"$$fundef_144_env_nat_fold_723" = getelementptr inbounds %"$$fundef_144_env_235", %"$$fundef_144_env_235"* %"$$fundef_144_envp_719", i32 0, i32 0 + %"$nat_fold_724" = load { i8*, i8* }*, { i8*, i8* }** %nat_fold, align 8 + store { i8*, i8* }* %"$nat_fold_724", { i8*, i8* }** %"$$fundef_144_env_nat_fold_723", align 8 + store { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*, i8* } %"$$fundef_144_cloval_722", { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*, i8* }* %"$retval_143", align 8, !dbg !71 + %"$$retval_143_725" = load { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*, i8* }, { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*, i8* }* %"$retval_143", align 8 + ret { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*, i8* } %"$$retval_143_725" } -define internal %TName_Nat* @"$fundef_140"(%"$$fundef_140_env_237"* %0, %TName_Nat* %1) !dbg !44 { +define internal %TName_Nat* @"$fundef_140"(%"$$fundef_140_env_237"* %0, %TName_Nat* %1) !dbg !72 { entry: + %"$n_711" = alloca %TName_Nat*, align 8 + store %TName_Nat* %1, %TName_Nat** %"$n_711", align 8 + call void @llvm.dbg.declare(metadata %TName_Nat** %"$n_711", metadata !73, metadata !DIExpression()), !dbg !74 %"$retval_141" = alloca %TName_Nat*, 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 = %entry - call void @_out_of_gas() - br label %"$have_gas_696" - -"$have_gas_696": ; preds = %"$out_of_gas_695", %entry - %"$consume_697" = sub i64 %"$gasrem_693", 1 - store i64 %"$consume_697", i64* @_gasrem, align 8 - %"$adtval_698_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_698_salloc" = call i8* @_salloc(i8* %"$adtval_698_load", i64 9) - %"$adtval_698" = bitcast i8* %"$adtval_698_salloc" to %CName_Succ* - %"$adtgep_699" = getelementptr inbounds %CName_Succ, %CName_Succ* %"$adtval_698", i32 0, i32 0 - store i8 1, i8* %"$adtgep_699", align 1 - %"$adtgep_700" = getelementptr inbounds %CName_Succ, %CName_Succ* %"$adtval_698", i32 0, i32 1 - store %TName_Nat* %1, %TName_Nat** %"$adtgep_700", align 8 - %"$adtptr_701" = bitcast %CName_Succ* %"$adtval_698" to %TName_Nat* - store %TName_Nat* %"$adtptr_701", %TName_Nat** %"$retval_141", align 8, !dbg !45 - %"$$retval_141_702" = load %TName_Nat*, %TName_Nat** %"$retval_141", align 8 - ret %TName_Nat* %"$$retval_141_702" + call void @llvm.dbg.declare(metadata %TName_Nat** %"$retval_141", metadata !75, metadata !DIExpression()), !dbg !76 + %"$gasrem_701" = load i64, i64* @_gasrem, align 8 + %"$gascmp_702" = icmp ugt i64 1, %"$gasrem_701" + br i1 %"$gascmp_702", label %"$out_of_gas_703", label %"$have_gas_704" + +"$out_of_gas_703": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_704" + +"$have_gas_704": ; preds = %"$out_of_gas_703", %entry + %"$consume_705" = sub i64 %"$gasrem_701", 1 + store i64 %"$consume_705", i64* @_gasrem, align 8 + %"$adtval_706_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_706_salloc" = call i8* @_salloc(i8* %"$adtval_706_load", i64 9) + %"$adtval_706" = bitcast i8* %"$adtval_706_salloc" to %CName_Succ* + %"$adtgep_707" = getelementptr inbounds %CName_Succ, %CName_Succ* %"$adtval_706", i32 0, i32 0 + store i8 1, i8* %"$adtgep_707", align 1 + %"$adtgep_708" = getelementptr inbounds %CName_Succ, %CName_Succ* %"$adtval_706", i32 0, i32 1 + store %TName_Nat* %1, %TName_Nat** %"$adtgep_708", align 8 + %"$adtptr_709" = bitcast %CName_Succ* %"$adtval_706" to %TName_Nat* + store %TName_Nat* %"$adtptr_709", %TName_Nat** %"$retval_141", align 8, !dbg !76 + %"$$retval_141_710" = load %TName_Nat*, %TName_Nat** %"$retval_141", align 8 + ret %TName_Nat* %"$$retval_141_710" } -define internal %Uint32 @"$fundef_137"(%"$$fundef_137_env_238"* %0, %TName_Nat* %1) !dbg !46 { +define internal %Uint32 @"$fundef_137"(%"$$fundef_137_env_238"* %0, %TName_Nat* %1) !dbg !77 { entry: - %"$$fundef_137_env_one_int_680" = getelementptr inbounds %"$$fundef_137_env_238", %"$$fundef_137_env_238"* %0, i32 0, i32 0 - %"$one_int_envload_681" = load %Uint32, %Uint32* %"$$fundef_137_env_one_int_680", align 4 + %"$ignore_700" = alloca %TName_Nat*, align 8 + store %TName_Nat* %1, %TName_Nat** %"$ignore_700", align 8 + call void @llvm.dbg.declare(metadata %TName_Nat** %"$ignore_700", metadata !79, metadata !DIExpression()), !dbg !80 + %"$$fundef_137_env_one_int_687" = getelementptr inbounds %"$$fundef_137_env_238", %"$$fundef_137_env_238"* %0, i32 0, i32 0 + %"$one_int_envload_688" = load %Uint32, %Uint32* %"$$fundef_137_env_one_int_687", align 4 %one_int = alloca %Uint32, align 8 - store %Uint32 %"$one_int_envload_681", %Uint32* %one_int, align 4 - %"$$fundef_137_env_z_682" = getelementptr inbounds %"$$fundef_137_env_238", %"$$fundef_137_env_238"* %0, i32 0, i32 1 - %"$z_envload_683" = load %Uint32, %Uint32* %"$$fundef_137_env_z_682", align 4 + store %Uint32 %"$one_int_envload_688", %Uint32* %one_int, align 4 + %"$$fundef_137_env_z_689" = getelementptr inbounds %"$$fundef_137_env_238", %"$$fundef_137_env_238"* %0, i32 0, i32 1 + %"$z_envload_690" = load %Uint32, %Uint32* %"$$fundef_137_env_z_689", align 4 %z = alloca %Uint32, align 8 - store %Uint32 %"$z_envload_683", %Uint32* %z, align 4 + store %Uint32 %"$z_envload_690", %Uint32* %z, align 4 %"$retval_138" = alloca %Uint32, align 8 - %"$gasrem_684" = load i64, i64* @_gasrem, align 8 - %"$gascmp_685" = icmp ugt i64 4, %"$gasrem_684" - br i1 %"$gascmp_685", label %"$out_of_gas_686", label %"$have_gas_687" - -"$out_of_gas_686": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_687" - -"$have_gas_687": ; preds = %"$out_of_gas_686", %entry - %"$consume_688" = sub i64 %"$gasrem_684", 4 - store i64 %"$consume_688", i64* @_gasrem, align 8 - %"$z_689" = load %Uint32, %Uint32* %z, align 4 - %"$one_int_690" = load %Uint32, %Uint32* %one_int, align 4 - %"$add_call_691" = call %Uint32 @_add_Uint32(%Uint32 %"$z_689", %Uint32 %"$one_int_690"), !dbg !48 - store %Uint32 %"$add_call_691", %Uint32* %"$retval_138", align 4, !dbg !48 - %"$$retval_138_692" = load %Uint32, %Uint32* %"$retval_138", align 4 - ret %Uint32 %"$$retval_138_692" + call void @llvm.dbg.declare(metadata %Uint32* %"$retval_138", metadata !81, metadata !DIExpression()), !dbg !83 + %"$gasrem_691" = load i64, i64* @_gasrem, align 8 + %"$gascmp_692" = icmp ugt i64 4, %"$gasrem_691" + br i1 %"$gascmp_692", label %"$out_of_gas_693", label %"$have_gas_694" + +"$out_of_gas_693": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_694" + +"$have_gas_694": ; preds = %"$out_of_gas_693", %entry + %"$consume_695" = sub i64 %"$gasrem_691", 4 + store i64 %"$consume_695", i64* @_gasrem, align 8 + %"$z_696" = load %Uint32, %Uint32* %z, align 4 + %"$one_int_697" = load %Uint32, %Uint32* %one_int, align 4 + %"$add_call_698" = call %Uint32 @_add_Uint32(%Uint32 %"$z_696", %Uint32 %"$one_int_697"), !dbg !83 + store %Uint32 %"$add_call_698", %Uint32* %"$retval_138", align 4, !dbg !83 + %"$$retval_138_699" = load %Uint32, %Uint32* %"$retval_138", align 4 + ret %Uint32 %"$$retval_138_699" } -define internal { %Uint32 (i8*, %TName_Nat*)*, i8* } @"$fundef_135"(%"$$fundef_135_env_239"* %0, %Uint32 %1) !dbg !49 { +define internal { %Uint32 (i8*, %TName_Nat*)*, i8* } @"$fundef_135"(%"$$fundef_135_env_239"* %0, %Uint32 %1) !dbg !84 { entry: - %"$$fundef_135_env_one_int_665" = getelementptr inbounds %"$$fundef_135_env_239", %"$$fundef_135_env_239"* %0, i32 0, i32 0 - %"$one_int_envload_666" = load %Uint32, %Uint32* %"$$fundef_135_env_one_int_665", align 4 + %"$z_686" = alloca %Uint32, align 8 + store %Uint32 %1, %Uint32* %"$z_686", align 4 + call void @llvm.dbg.declare(metadata %Uint32* %"$z_686", metadata !85, metadata !DIExpression()), !dbg !86 + %"$$fundef_135_env_one_int_671" = getelementptr inbounds %"$$fundef_135_env_239", %"$$fundef_135_env_239"* %0, i32 0, i32 0 + %"$one_int_envload_672" = load %Uint32, %Uint32* %"$$fundef_135_env_one_int_671", align 4 %one_int = alloca %Uint32, align 8 - store %Uint32 %"$one_int_envload_666", %Uint32* %one_int, align 4 + store %Uint32 %"$one_int_envload_672", %Uint32* %one_int, align 4 %"$retval_136" = alloca { %Uint32 (i8*, %TName_Nat*)*, i8* }, align 8 - %"$gasrem_667" = load i64, i64* @_gasrem, align 8 - %"$gascmp_668" = icmp ugt i64 1, %"$gasrem_667" - br i1 %"$gascmp_668", label %"$out_of_gas_669", label %"$have_gas_670" - -"$out_of_gas_669": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_670" - -"$have_gas_670": ; preds = %"$out_of_gas_669", %entry - %"$consume_671" = sub i64 %"$gasrem_667", 1 - store i64 %"$consume_671", i64* @_gasrem, align 8 - %"$$fundef_137_envp_672_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_137_envp_672_salloc" = call i8* @_salloc(i8* %"$$fundef_137_envp_672_load", i64 8) - %"$$fundef_137_envp_672" = bitcast i8* %"$$fundef_137_envp_672_salloc" to %"$$fundef_137_env_238"* - %"$$fundef_137_env_voidp_674" = bitcast %"$$fundef_137_env_238"* %"$$fundef_137_envp_672" to i8* - %"$$fundef_137_cloval_675" = insertvalue { %Uint32 (i8*, %TName_Nat*)*, i8* } { %Uint32 (i8*, %TName_Nat*)* bitcast (%Uint32 (%"$$fundef_137_env_238"*, %TName_Nat*)* @"$fundef_137" to %Uint32 (i8*, %TName_Nat*)*), i8* undef }, i8* %"$$fundef_137_env_voidp_674", 1 - %"$$fundef_137_env_one_int_676" = getelementptr inbounds %"$$fundef_137_env_238", %"$$fundef_137_env_238"* %"$$fundef_137_envp_672", i32 0, i32 0 - %"$one_int_677" = load %Uint32, %Uint32* %one_int, align 4 - store %Uint32 %"$one_int_677", %Uint32* %"$$fundef_137_env_one_int_676", align 4 - %"$$fundef_137_env_z_678" = getelementptr inbounds %"$$fundef_137_env_238", %"$$fundef_137_env_238"* %"$$fundef_137_envp_672", i32 0, i32 1 - store %Uint32 %1, %Uint32* %"$$fundef_137_env_z_678", align 4 - store { %Uint32 (i8*, %TName_Nat*)*, i8* } %"$$fundef_137_cloval_675", { %Uint32 (i8*, %TName_Nat*)*, i8* }* %"$retval_136", align 8, !dbg !50 - %"$$retval_136_679" = load { %Uint32 (i8*, %TName_Nat*)*, i8* }, { %Uint32 (i8*, %TName_Nat*)*, i8* }* %"$retval_136", align 8 - ret { %Uint32 (i8*, %TName_Nat*)*, i8* } %"$$retval_136_679" + %"$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 = %entry + call void @_out_of_gas() + br label %"$have_gas_676" + +"$have_gas_676": ; preds = %"$out_of_gas_675", %entry + %"$consume_677" = sub i64 %"$gasrem_673", 1 + store i64 %"$consume_677", i64* @_gasrem, align 8 + %"$$fundef_137_envp_678_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_137_envp_678_salloc" = call i8* @_salloc(i8* %"$$fundef_137_envp_678_load", i64 8) + %"$$fundef_137_envp_678" = bitcast i8* %"$$fundef_137_envp_678_salloc" to %"$$fundef_137_env_238"* + %"$$fundef_137_env_voidp_680" = bitcast %"$$fundef_137_env_238"* %"$$fundef_137_envp_678" to i8* + %"$$fundef_137_cloval_681" = insertvalue { %Uint32 (i8*, %TName_Nat*)*, i8* } { %Uint32 (i8*, %TName_Nat*)* bitcast (%Uint32 (%"$$fundef_137_env_238"*, %TName_Nat*)* @"$fundef_137" to %Uint32 (i8*, %TName_Nat*)*), i8* undef }, i8* %"$$fundef_137_env_voidp_680", 1 + %"$$fundef_137_env_one_int_682" = getelementptr inbounds %"$$fundef_137_env_238", %"$$fundef_137_env_238"* %"$$fundef_137_envp_678", i32 0, i32 0 + %"$one_int_683" = load %Uint32, %Uint32* %one_int, align 4 + store %Uint32 %"$one_int_683", %Uint32* %"$$fundef_137_env_one_int_682", align 4 + %"$$fundef_137_env_z_684" = getelementptr inbounds %"$$fundef_137_env_238", %"$$fundef_137_env_238"* %"$$fundef_137_envp_678", i32 0, i32 1 + store %Uint32 %1, %Uint32* %"$$fundef_137_env_z_684", align 4 + store { %Uint32 (i8*, %TName_Nat*)*, i8* } %"$$fundef_137_cloval_681", { %Uint32 (i8*, %TName_Nat*)*, i8* }* %"$retval_136", align 8, !dbg !87 + %"$$retval_136_685" = load { %Uint32 (i8*, %TName_Nat*)*, i8* }, { %Uint32 (i8*, %TName_Nat*)*, i8* }* %"$retval_136", align 8 + ret { %Uint32 (i8*, %TName_Nat*)*, i8* } %"$$retval_136_685" } -define internal %Uint32 @"$fundef_133"(%"$$fundef_133_env_240"* %0, %TName_Nat* %1) !dbg !51 { +define internal %Uint32 @"$fundef_133"(%"$$fundef_133_env_240"* %0, %TName_Nat* %1) !dbg !88 { entry: - %"$$fundef_133_env_$nat_fold_6_589" = getelementptr inbounds %"$$fundef_133_env_240", %"$$fundef_133_env_240"* %0, i32 0, i32 0 - %"$$nat_fold_6_envload_590" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_133_env_$nat_fold_6_589", align 8 + %"$n_670" = alloca %TName_Nat*, align 8 + store %TName_Nat* %1, %TName_Nat** %"$n_670", align 8 + call void @llvm.dbg.declare(metadata %TName_Nat** %"$n_670", metadata !89, metadata !DIExpression()), !dbg !90 + %"$$fundef_133_env_$nat_fold_6_594" = getelementptr inbounds %"$$fundef_133_env_240", %"$$fundef_133_env_240"* %0, i32 0, i32 0 + %"$$nat_fold_6_envload_595" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_133_env_$nat_fold_6_594", align 8 %"$nat_fold_6" = alloca { i8*, i8* }*, align 8 - store { i8*, i8* }* %"$$nat_fold_6_envload_590", { i8*, i8* }** %"$nat_fold_6", align 8 + store { i8*, i8* }* %"$$nat_fold_6_envload_595", { i8*, i8* }** %"$nat_fold_6", align 8 %"$retval_134" = alloca %Uint32, align 8 - %"$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_593": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_594" - -"$have_gas_594": ; preds = %"$out_of_gas_593", %entry - %"$consume_595" = sub i64 %"$gasrem_591", 1 - store i64 %"$consume_595", i64* @_gasrem, align 8 - %fold = alloca { { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* })*, i8* }, align 8 + call void @llvm.dbg.declare(metadata %Uint32* %"$retval_134", metadata !91, metadata !DIExpression()), !dbg !92 %"$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_598": ; preds = %"$have_gas_594" +"$out_of_gas_598": ; preds = %entry call void @_out_of_gas() br label %"$have_gas_599" -"$have_gas_599": ; preds = %"$out_of_gas_598", %"$have_gas_594" +"$have_gas_599": ; preds = %"$out_of_gas_598", %entry %"$consume_600" = sub i64 %"$gasrem_596", 1 store i64 %"$consume_600", i64* @_gasrem, align 8 - %"$$nat_fold_6_601" = load { i8*, i8* }*, { i8*, i8* }** %"$nat_fold_6", align 8 - %"$$nat_fold_6_602" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$$nat_fold_6_601", i32 0 - %"$$nat_fold_6_603" = bitcast { i8*, i8* }* %"$$nat_fold_6_602" to { { { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* }* - %"$$nat_fold_6_604" = load { { { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* }, { { { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* }* %"$$nat_fold_6_603", align 8 - %"$$nat_fold_6_fptr_605" = extractvalue { { { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* } %"$$nat_fold_6_604", 0 - %"$$nat_fold_6_envptr_606" = extractvalue { { { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* } %"$$nat_fold_6_604", 1 - %"$$nat_fold_6_call_607" = call { { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } %"$$nat_fold_6_fptr_605"(i8* %"$$nat_fold_6_envptr_606"), !dbg !52 - store { { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } %"$$nat_fold_6_call_607", { { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* })*, i8* }* %fold, align 8, !dbg !53 - %"$gasrem_608" = load i64, i64* @_gasrem, align 8 - %"$gascmp_609" = icmp ugt i64 1, %"$gasrem_608" - br i1 %"$gascmp_609", label %"$out_of_gas_610", label %"$have_gas_611" - -"$out_of_gas_610": ; preds = %"$have_gas_599" - call void @_out_of_gas() - br label %"$have_gas_611" - -"$have_gas_611": ; preds = %"$out_of_gas_610", %"$have_gas_599" - %"$consume_612" = sub i64 %"$gasrem_608", 1 - store i64 %"$consume_612", i64* @_gasrem, align 8 - %one_int = alloca %Uint32, align 8 + %fold = alloca { { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* })*, i8* }, align 8 + %"$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_603": ; preds = %"$have_gas_599" + call void @_out_of_gas() + br label %"$have_gas_604" + +"$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 + %"$$nat_fold_6_606" = load { i8*, i8* }*, { i8*, i8* }** %"$nat_fold_6", align 8 + %"$$nat_fold_6_607" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$$nat_fold_6_606", i32 0 + %"$$nat_fold_6_608" = bitcast { i8*, i8* }* %"$$nat_fold_6_607" to { { { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* }* + %"$$nat_fold_6_609" = load { { { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* }, { { { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* }* %"$$nat_fold_6_608", align 8 + %"$$nat_fold_6_fptr_610" = extractvalue { { { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* } %"$$nat_fold_6_609", 0 + %"$$nat_fold_6_envptr_611" = extractvalue { { { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* } %"$$nat_fold_6_609", 1 + %"$$nat_fold_6_call_612" = call { { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } %"$$nat_fold_6_fptr_610"(i8* %"$$nat_fold_6_envptr_611"), !dbg !93 + store { { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } %"$$nat_fold_6_call_612", { { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* })*, i8* }* %fold, align 8, !dbg !94 %"$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 = %"$have_gas_611" +"$out_of_gas_615": ; preds = %"$have_gas_604" call void @_out_of_gas() br label %"$have_gas_616" -"$have_gas_616": ; preds = %"$out_of_gas_615", %"$have_gas_611" +"$have_gas_616": ; preds = %"$out_of_gas_615", %"$have_gas_604" %"$consume_617" = sub i64 %"$gasrem_613", 1 store i64 %"$consume_617", i64* @_gasrem, align 8 - store %Uint32 { i32 1 }, %Uint32* %one_int, align 4, !dbg !54 + %one_int = alloca %Uint32, align 8 + call void @llvm.dbg.declare(metadata %Uint32* %one_int, metadata !95, metadata !DIExpression()), !dbg !96 %"$gasrem_618" = load i64, i64* @_gasrem, align 8 %"$gascmp_619" = icmp ugt i64 1, %"$gasrem_618" br i1 %"$gascmp_619", label %"$out_of_gas_620", label %"$have_gas_621" @@ -1125,7 +1161,7 @@ entry: "$have_gas_621": ; preds = %"$out_of_gas_620", %"$have_gas_616" %"$consume_622" = sub i64 %"$gasrem_618", 1 store i64 %"$consume_622", i64* @_gasrem, align 8 - %f = alloca { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* }, align 8 + store %Uint32 { i32 1 }, %Uint32* %one_int, align 4, !dbg !97 %"$gasrem_623" = load i64, i64* @_gasrem, align 8 %"$gascmp_624" = icmp ugt i64 1, %"$gasrem_623" br i1 %"$gascmp_624", label %"$out_of_gas_625", label %"$have_gas_626" @@ -1137,39 +1173,40 @@ entry: "$have_gas_626": ; preds = %"$out_of_gas_625", %"$have_gas_621" %"$consume_627" = sub i64 %"$gasrem_623", 1 store i64 %"$consume_627", i64* @_gasrem, align 8 - %"$$fundef_135_envp_628_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_135_envp_628_salloc" = call i8* @_salloc(i8* %"$$fundef_135_envp_628_load", i64 4) - %"$$fundef_135_envp_628" = bitcast i8* %"$$fundef_135_envp_628_salloc" to %"$$fundef_135_env_239"* - %"$$fundef_135_env_voidp_630" = bitcast %"$$fundef_135_env_239"* %"$$fundef_135_envp_628" to i8* - %"$$fundef_135_cloval_631" = insertvalue { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* } { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)* bitcast ({ %Uint32 (i8*, %TName_Nat*)*, i8* } (%"$$fundef_135_env_239"*, %Uint32)* @"$fundef_135" to { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*), i8* undef }, i8* %"$$fundef_135_env_voidp_630", 1 - %"$$fundef_135_env_one_int_632" = getelementptr inbounds %"$$fundef_135_env_239", %"$$fundef_135_env_239"* %"$$fundef_135_envp_628", i32 0, i32 0 - %"$one_int_633" = load %Uint32, %Uint32* %one_int, align 4 - store %Uint32 %"$one_int_633", %Uint32* %"$$fundef_135_env_one_int_632", align 4 - store { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* } %"$$fundef_135_cloval_631", { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* }* %f, align 8, !dbg !55 - %"$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" - -"$out_of_gas_636": ; preds = %"$have_gas_626" - call void @_out_of_gas() - br label %"$have_gas_637" - -"$have_gas_637": ; preds = %"$out_of_gas_636", %"$have_gas_626" - %"$consume_638" = sub i64 %"$gasrem_634", 1 - store i64 %"$consume_638", i64* @_gasrem, align 8 - %zero_int = alloca %Uint32, align 8 + %f = alloca { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* }, 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_626" + call void @_out_of_gas() + br label %"$have_gas_631" + +"$have_gas_631": ; preds = %"$out_of_gas_630", %"$have_gas_626" + %"$consume_632" = sub i64 %"$gasrem_628", 1 + store i64 %"$consume_632", i64* @_gasrem, align 8 + %"$$fundef_135_envp_633_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_135_envp_633_salloc" = call i8* @_salloc(i8* %"$$fundef_135_envp_633_load", i64 4) + %"$$fundef_135_envp_633" = bitcast i8* %"$$fundef_135_envp_633_salloc" to %"$$fundef_135_env_239"* + %"$$fundef_135_env_voidp_635" = bitcast %"$$fundef_135_env_239"* %"$$fundef_135_envp_633" to i8* + %"$$fundef_135_cloval_636" = insertvalue { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* } { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)* bitcast ({ %Uint32 (i8*, %TName_Nat*)*, i8* } (%"$$fundef_135_env_239"*, %Uint32)* @"$fundef_135" to { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*), i8* undef }, i8* %"$$fundef_135_env_voidp_635", 1 + %"$$fundef_135_env_one_int_637" = getelementptr inbounds %"$$fundef_135_env_239", %"$$fundef_135_env_239"* %"$$fundef_135_envp_633", i32 0, i32 0 + %"$one_int_638" = load %Uint32, %Uint32* %one_int, align 4 + store %Uint32 %"$one_int_638", %Uint32* %"$$fundef_135_env_one_int_637", align 4 + store { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* } %"$$fundef_135_cloval_636", { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* }* %f, align 8, !dbg !98 %"$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" +"$out_of_gas_641": ; preds = %"$have_gas_631" call void @_out_of_gas() br label %"$have_gas_642" -"$have_gas_642": ; preds = %"$out_of_gas_641", %"$have_gas_637" +"$have_gas_642": ; preds = %"$out_of_gas_641", %"$have_gas_631" %"$consume_643" = sub i64 %"$gasrem_639", 1 store i64 %"$consume_643", i64* @_gasrem, align 8 - store %Uint32 zeroinitializer, %Uint32* %zero_int, align 4, !dbg !56 + %zero_int = alloca %Uint32, align 8 + call void @llvm.dbg.declare(metadata %Uint32* %zero_int, metadata !99, metadata !DIExpression()), !dbg !100 %"$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" @@ -1181,502 +1218,538 @@ entry: "$have_gas_647": ; preds = %"$out_of_gas_646", %"$have_gas_642" %"$consume_648" = sub i64 %"$gasrem_644", 1 store i64 %"$consume_648", i64* @_gasrem, align 8 + store %Uint32 zeroinitializer, %Uint32* %zero_int, align 4, !dbg !101 + %"$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_647" + call void @_out_of_gas() + br label %"$have_gas_652" + +"$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 %"$fold_33" = alloca { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* }, align 8 - %"$fold_649" = load { { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* })*, i8* }, { { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* })*, i8* }* %fold, align 8 - %"$fold_fptr_650" = extractvalue { { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } %"$fold_649", 0 - %"$fold_envptr_651" = extractvalue { { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } %"$fold_649", 1 - %"$f_652" = load { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* }* %f, align 8 - %"$fold_call_653" = call { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* } %"$fold_fptr_650"(i8* %"$fold_envptr_651", { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* } %"$f_652"), !dbg !57 - store { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* } %"$fold_call_653", { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* }* %"$fold_33", align 8, !dbg !57 + %"$fold_654" = load { { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* })*, i8* }, { { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* })*, i8* }* %fold, align 8 + %"$fold_fptr_655" = extractvalue { { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } %"$fold_654", 0 + %"$fold_envptr_656" = extractvalue { { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } %"$fold_654", 1 + %"$f_657" = load { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* }* %f, align 8 + %"$fold_call_658" = call { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* } %"$fold_fptr_655"(i8* %"$fold_envptr_656", { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* } %"$f_657"), !dbg !102 + store { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* } %"$fold_call_658", { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* }* %"$fold_33", align 8, !dbg !102 %"$fold_34" = alloca { %Uint32 (i8*, %TName_Nat*)*, i8* }, align 8 - %"$$fold_33_654" = load { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* }* %"$fold_33", align 8 - %"$$fold_33_fptr_655" = extractvalue { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* } %"$$fold_33_654", 0 - %"$$fold_33_envptr_656" = extractvalue { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* } %"$$fold_33_654", 1 - %"$zero_int_657" = load %Uint32, %Uint32* %zero_int, align 4 - %"$$fold_33_call_658" = call { %Uint32 (i8*, %TName_Nat*)*, i8* } %"$$fold_33_fptr_655"(i8* %"$$fold_33_envptr_656", %Uint32 %"$zero_int_657"), !dbg !57 - store { %Uint32 (i8*, %TName_Nat*)*, i8* } %"$$fold_33_call_658", { %Uint32 (i8*, %TName_Nat*)*, i8* }* %"$fold_34", align 8, !dbg !57 + %"$$fold_33_659" = load { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* }* %"$fold_33", align 8 + %"$$fold_33_fptr_660" = extractvalue { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* } %"$$fold_33_659", 0 + %"$$fold_33_envptr_661" = extractvalue { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* } %"$$fold_33_659", 1 + %"$zero_int_662" = load %Uint32, %Uint32* %zero_int, align 4 + %"$$fold_33_call_663" = call { %Uint32 (i8*, %TName_Nat*)*, i8* } %"$$fold_33_fptr_660"(i8* %"$$fold_33_envptr_661", %Uint32 %"$zero_int_662"), !dbg !102 + store { %Uint32 (i8*, %TName_Nat*)*, i8* } %"$$fold_33_call_663", { %Uint32 (i8*, %TName_Nat*)*, i8* }* %"$fold_34", align 8, !dbg !102 %"$fold_35" = alloca %Uint32, align 8 - %"$$fold_34_659" = load { %Uint32 (i8*, %TName_Nat*)*, i8* }, { %Uint32 (i8*, %TName_Nat*)*, i8* }* %"$fold_34", align 8 - %"$$fold_34_fptr_660" = extractvalue { %Uint32 (i8*, %TName_Nat*)*, i8* } %"$$fold_34_659", 0 - %"$$fold_34_envptr_661" = extractvalue { %Uint32 (i8*, %TName_Nat*)*, i8* } %"$$fold_34_659", 1 - %"$$fold_34_call_662" = call %Uint32 %"$$fold_34_fptr_660"(i8* %"$$fold_34_envptr_661", %TName_Nat* %1), !dbg !57 - store %Uint32 %"$$fold_34_call_662", %Uint32* %"$fold_35", align 4, !dbg !57 - %"$$fold_35_663" = load %Uint32, %Uint32* %"$fold_35", align 4 - store %Uint32 %"$$fold_35_663", %Uint32* %"$retval_134", align 4, !dbg !57 - %"$$retval_134_664" = load %Uint32, %Uint32* %"$retval_134", align 4 - ret %Uint32 %"$$retval_134_664" + call void @llvm.dbg.declare(metadata %Uint32* %"$fold_35", metadata !103, metadata !DIExpression()), !dbg !102 + %"$$fold_34_664" = load { %Uint32 (i8*, %TName_Nat*)*, i8* }, { %Uint32 (i8*, %TName_Nat*)*, i8* }* %"$fold_34", align 8 + %"$$fold_34_fptr_665" = extractvalue { %Uint32 (i8*, %TName_Nat*)*, i8* } %"$$fold_34_664", 0 + %"$$fold_34_envptr_666" = extractvalue { %Uint32 (i8*, %TName_Nat*)*, i8* } %"$$fold_34_664", 1 + %"$$fold_34_call_667" = call %Uint32 %"$$fold_34_fptr_665"(i8* %"$$fold_34_envptr_666", %TName_Nat* %1), !dbg !102 + store %Uint32 %"$$fold_34_call_667", %Uint32* %"$fold_35", align 4, !dbg !102 + %"$$fold_35_668" = load %Uint32, %Uint32* %"$fold_35", align 4 + store %Uint32 %"$$fold_35_668", %Uint32* %"$retval_134", align 4, !dbg !102 + %"$$retval_134_669" = load %Uint32, %Uint32* %"$retval_134", align 4 + ret %Uint32 %"$$retval_134_669" } -define internal %Uint32 @"$fundef_131"(%"$$fundef_131_env_241"* %0, %TName_Nat* %1) !dbg !58 { +define internal %Uint32 @"$fundef_131"(%"$$fundef_131_env_241"* %0, %TName_Nat* %1) !dbg !104 { entry: - %"$$fundef_131_env_f0_524" = getelementptr inbounds %"$$fundef_131_env_241", %"$$fundef_131_env_241"* %0, i32 0, i32 0 - %"$f0_envload_525" = load %Uint32, %Uint32* %"$$fundef_131_env_f0_524", align 4 + %"$n_593" = alloca %TName_Nat*, align 8 + store %TName_Nat* %1, %TName_Nat** %"$n_593", align 8 + call void @llvm.dbg.declare(metadata %TName_Nat** %"$n_593", metadata !106, metadata !DIExpression()), !dbg !107 + %"$$fundef_131_env_f0_528" = getelementptr inbounds %"$$fundef_131_env_241", %"$$fundef_131_env_241"* %0, i32 0, i32 0 + %"$f0_envload_529" = load %Uint32, %Uint32* %"$$fundef_131_env_f0_528", align 4 %f0 = alloca %Uint32, align 8 - store %Uint32 %"$f0_envload_525", %Uint32* %f0, align 4 - %"$$fundef_131_env_fn_526" = getelementptr inbounds %"$$fundef_131_env_241", %"$$fundef_131_env_241"* %0, i32 0, i32 1 - %"$fn_envload_527" = load { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* }* %"$$fundef_131_env_fn_526", align 8 + store %Uint32 %"$f0_envload_529", %Uint32* %f0, align 4 + %"$$fundef_131_env_fn_530" = getelementptr inbounds %"$$fundef_131_env_241", %"$$fundef_131_env_241"* %0, i32 0, i32 1 + %"$fn_envload_531" = load { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* }* %"$$fundef_131_env_fn_530", align 8 %fn = alloca { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* }, align 8 - store { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* } %"$fn_envload_527", { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* }* %fn, align 8 - %"$$fundef_131_env_g_528" = getelementptr inbounds %"$$fundef_131_env_241", %"$$fundef_131_env_241"* %0, i32 0, i32 2 - %"$g_envload_529" = load { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* }* %"$$fundef_131_env_g_528", align 8 + store { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* } %"$fn_envload_531", { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* }* %fn, align 8 + %"$$fundef_131_env_g_532" = getelementptr inbounds %"$$fundef_131_env_241", %"$$fundef_131_env_241"* %0, i32 0, i32 2 + %"$g_envload_533" = load { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* }* %"$$fundef_131_env_g_532", align 8 %g = alloca { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* }, align 8 - store { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* } %"$g_envload_529", { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* }* %g, align 8 + store { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* } %"$g_envload_533", { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* }* %g, align 8 %"$retval_132" = alloca %Uint32, align 8 - %"$gasrem_530" = load i64, i64* @_gasrem, align 8 - %"$gascmp_531" = icmp ugt i64 2, %"$gasrem_530" - br i1 %"$gascmp_531", label %"$out_of_gas_532", label %"$have_gas_533" - -"$out_of_gas_532": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_533" - -"$have_gas_533": ; preds = %"$out_of_gas_532", %entry - %"$consume_534" = sub i64 %"$gasrem_530", 2 - store i64 %"$consume_534", i64* @_gasrem, align 8 - %"$n_tag_536" = getelementptr inbounds %TName_Nat, %TName_Nat* %1, i32 0, i32 0 - %"$n_tag_537" = load i8, i8* %"$n_tag_536", align 1 - switch i8 %"$n_tag_537", label %"$empty_default_538" [ - i8 1, label %"$Succ_539" - i8 0, label %"$Zero_580" - ], !dbg !60 - -"$Succ_539": ; preds = %"$have_gas_533" - %"$n_540" = bitcast %TName_Nat* %1 to %CName_Succ* - %"$n1_gep_541" = getelementptr inbounds %CName_Succ, %CName_Succ* %"$n_540", i32 0, i32 1 - %"$n1_load_542" = load %TName_Nat*, %TName_Nat** %"$n1_gep_541", align 8 + call void @llvm.dbg.declare(metadata %Uint32* %"$retval_132", metadata !108, metadata !DIExpression()), !dbg !109 + %"$gasrem_534" = load i64, i64* @_gasrem, align 8 + %"$gascmp_535" = icmp ugt i64 2, %"$gasrem_534" + br i1 %"$gascmp_535", label %"$out_of_gas_536", label %"$have_gas_537" + +"$out_of_gas_536": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_537" + +"$have_gas_537": ; preds = %"$out_of_gas_536", %entry + %"$consume_538" = sub i64 %"$gasrem_534", 2 + store i64 %"$consume_538", i64* @_gasrem, align 8 + %"$n_tag_540" = getelementptr inbounds %TName_Nat, %TName_Nat* %1, i32 0, i32 0 + %"$n_tag_541" = load i8, i8* %"$n_tag_540", align 1 + switch i8 %"$n_tag_541", label %"$empty_default_542" [ + i8 1, label %"$Succ_543" + i8 0, label %"$Zero_584" + ], !dbg !109 + +"$Succ_543": ; preds = %"$have_gas_537" + %"$n_544" = bitcast %TName_Nat* %1 to %CName_Succ* + %"$n1_gep_545" = getelementptr inbounds %CName_Succ, %CName_Succ* %"$n_544", i32 0, i32 1 + %"$n1_load_546" = load %TName_Nat*, %TName_Nat** %"$n1_gep_545", align 8 %n1 = alloca %TName_Nat*, align 8 - store %TName_Nat* %"$n1_load_542", %TName_Nat** %n1, 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" + store %TName_Nat* %"$n1_load_546", %TName_Nat** %n1, 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_545": ; preds = %"$Succ_539" +"$out_of_gas_549": ; preds = %"$Succ_543" call void @_out_of_gas() - br label %"$have_gas_546" + br label %"$have_gas_550" -"$have_gas_546": ; preds = %"$out_of_gas_545", %"$Succ_539" - %"$consume_547" = sub i64 %"$gasrem_543", 1 - store i64 %"$consume_547", i64* @_gasrem, align 8 +"$have_gas_550": ; preds = %"$out_of_gas_549", %"$Succ_543" + %"$consume_551" = sub i64 %"$gasrem_547", 1 + store i64 %"$consume_551", i64* @_gasrem, align 8 %res = alloca %Uint32, 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" + call void @llvm.dbg.declare(metadata %Uint32* %res, metadata !110, metadata !DIExpression()), !dbg !113 + %"$gasrem_552" = load i64, i64* @_gasrem, align 8 + %"$gascmp_553" = icmp ugt i64 1, %"$gasrem_552" + br i1 %"$gascmp_553", label %"$out_of_gas_554", label %"$have_gas_555" -"$out_of_gas_550": ; preds = %"$have_gas_546" +"$out_of_gas_554": ; preds = %"$have_gas_550" call void @_out_of_gas() - br label %"$have_gas_551" + br label %"$have_gas_555" -"$have_gas_551": ; preds = %"$out_of_gas_550", %"$have_gas_546" - %"$consume_552" = sub i64 %"$gasrem_548", 1 - store i64 %"$consume_552", i64* @_gasrem, align 8 +"$have_gas_555": ; preds = %"$out_of_gas_554", %"$have_gas_550" + %"$consume_556" = sub i64 %"$gasrem_552", 1 + store i64 %"$consume_556", i64* @_gasrem, align 8 %"$fn_29" = alloca { %Uint32 (i8*, %TName_Nat*)*, i8* }, align 8 - %"$fn_553" = load { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* }* %fn, align 8 - %"$fn_fptr_554" = extractvalue { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* } %"$fn_553", 0 - %"$fn_envptr_555" = extractvalue { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* } %"$fn_553", 1 - %"$f0_556" = load %Uint32, %Uint32* %f0, align 4 - %"$fn_call_557" = call { %Uint32 (i8*, %TName_Nat*)*, i8* } %"$fn_fptr_554"(i8* %"$fn_envptr_555", %Uint32 %"$f0_556"), !dbg !61 - store { %Uint32 (i8*, %TName_Nat*)*, i8* } %"$fn_call_557", { %Uint32 (i8*, %TName_Nat*)*, i8* }* %"$fn_29", align 8, !dbg !61 + %"$fn_557" = load { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* }* %fn, align 8 + %"$fn_fptr_558" = extractvalue { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* } %"$fn_557", 0 + %"$fn_envptr_559" = extractvalue { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* } %"$fn_557", 1 + %"$f0_560" = load %Uint32, %Uint32* %f0, align 4 + %"$fn_call_561" = call { %Uint32 (i8*, %TName_Nat*)*, i8* } %"$fn_fptr_558"(i8* %"$fn_envptr_559", %Uint32 %"$f0_560"), !dbg !114 + store { %Uint32 (i8*, %TName_Nat*)*, i8* } %"$fn_call_561", { %Uint32 (i8*, %TName_Nat*)*, i8* }* %"$fn_29", align 8, !dbg !114 %"$fn_30" = alloca %Uint32, align 8 - %"$$fn_29_558" = load { %Uint32 (i8*, %TName_Nat*)*, i8* }, { %Uint32 (i8*, %TName_Nat*)*, i8* }* %"$fn_29", align 8 - %"$$fn_29_fptr_559" = extractvalue { %Uint32 (i8*, %TName_Nat*)*, i8* } %"$$fn_29_558", 0 - %"$$fn_29_envptr_560" = extractvalue { %Uint32 (i8*, %TName_Nat*)*, i8* } %"$$fn_29_558", 1 - %"$n1_561" = load %TName_Nat*, %TName_Nat** %n1, align 8 - %"$$fn_29_call_562" = call %Uint32 %"$$fn_29_fptr_559"(i8* %"$$fn_29_envptr_560", %TName_Nat* %"$n1_561"), !dbg !61 - store %Uint32 %"$$fn_29_call_562", %Uint32* %"$fn_30", align 4, !dbg !61 - %"$$fn_30_563" = load %Uint32, %Uint32* %"$fn_30", align 4 - store %Uint32 %"$$fn_30_563", %Uint32* %res, align 4, !dbg !61 - %"$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_551" - call void @_out_of_gas() - br label %"$have_gas_567" - -"$have_gas_567": ; preds = %"$out_of_gas_566", %"$have_gas_551" - %"$consume_568" = sub i64 %"$gasrem_564", 1 - store i64 %"$consume_568", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %Uint32* %"$fn_30", metadata !115, metadata !DIExpression()), !dbg !114 + %"$$fn_29_562" = load { %Uint32 (i8*, %TName_Nat*)*, i8* }, { %Uint32 (i8*, %TName_Nat*)*, i8* }* %"$fn_29", align 8 + %"$$fn_29_fptr_563" = extractvalue { %Uint32 (i8*, %TName_Nat*)*, i8* } %"$$fn_29_562", 0 + %"$$fn_29_envptr_564" = extractvalue { %Uint32 (i8*, %TName_Nat*)*, i8* } %"$$fn_29_562", 1 + %"$n1_565" = load %TName_Nat*, %TName_Nat** %n1, align 8 + %"$$fn_29_call_566" = call %Uint32 %"$$fn_29_fptr_563"(i8* %"$$fn_29_envptr_564", %TName_Nat* %"$n1_565"), !dbg !114 + store %Uint32 %"$$fn_29_call_566", %Uint32* %"$fn_30", align 4, !dbg !114 + %"$$fn_30_567" = load %Uint32, %Uint32* %"$fn_30", align 4 + store %Uint32 %"$$fn_30_567", %Uint32* %res, align 4, !dbg !114 + %"$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" + +"$out_of_gas_570": ; preds = %"$have_gas_555" + call void @_out_of_gas() + br label %"$have_gas_571" + +"$have_gas_571": ; preds = %"$out_of_gas_570", %"$have_gas_555" + %"$consume_572" = sub i64 %"$gasrem_568", 1 + store i64 %"$consume_572", i64* @_gasrem, align 8 %"$g_31" = alloca { %Uint32 (i8*, %TName_Nat*)*, i8* }, align 8 - %"$g_569" = load { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* }* %g, align 8 - %"$g_fptr_570" = extractvalue { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* } %"$g_569", 0 - %"$g_envptr_571" = extractvalue { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* } %"$g_569", 1 - %"$res_572" = load %Uint32, %Uint32* %res, align 4 - %"$g_call_573" = call { %Uint32 (i8*, %TName_Nat*)*, i8* } %"$g_fptr_570"(i8* %"$g_envptr_571", %Uint32 %"$res_572"), !dbg !64 - store { %Uint32 (i8*, %TName_Nat*)*, i8* } %"$g_call_573", { %Uint32 (i8*, %TName_Nat*)*, i8* }* %"$g_31", align 8, !dbg !64 + %"$g_573" = load { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* }* %g, align 8 + %"$g_fptr_574" = extractvalue { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* } %"$g_573", 0 + %"$g_envptr_575" = extractvalue { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* } %"$g_573", 1 + %"$res_576" = load %Uint32, %Uint32* %res, align 4 + %"$g_call_577" = call { %Uint32 (i8*, %TName_Nat*)*, i8* } %"$g_fptr_574"(i8* %"$g_envptr_575", %Uint32 %"$res_576"), !dbg !116 + store { %Uint32 (i8*, %TName_Nat*)*, i8* } %"$g_call_577", { %Uint32 (i8*, %TName_Nat*)*, i8* }* %"$g_31", align 8, !dbg !116 %"$g_32" = alloca %Uint32, align 8 - %"$$g_31_574" = load { %Uint32 (i8*, %TName_Nat*)*, i8* }, { %Uint32 (i8*, %TName_Nat*)*, i8* }* %"$g_31", align 8 - %"$$g_31_fptr_575" = extractvalue { %Uint32 (i8*, %TName_Nat*)*, i8* } %"$$g_31_574", 0 - %"$$g_31_envptr_576" = extractvalue { %Uint32 (i8*, %TName_Nat*)*, i8* } %"$$g_31_574", 1 - %"$n1_577" = load %TName_Nat*, %TName_Nat** %n1, align 8 - %"$$g_31_call_578" = call %Uint32 %"$$g_31_fptr_575"(i8* %"$$g_31_envptr_576", %TName_Nat* %"$n1_577"), !dbg !64 - store %Uint32 %"$$g_31_call_578", %Uint32* %"$g_32", align 4, !dbg !64 - %"$$g_32_579" = load %Uint32, %Uint32* %"$g_32", align 4 - store %Uint32 %"$$g_32_579", %Uint32* %"$retval_132", align 4, !dbg !64 - br label %"$matchsucc_535" - -"$Zero_580": ; preds = %"$have_gas_533" - %"$n_581" = bitcast %TName_Nat* %1 to %CName_Zero* - %"$gasrem_582" = load i64, i64* @_gasrem, align 8 - %"$gascmp_583" = icmp ugt i64 1, %"$gasrem_582" - br i1 %"$gascmp_583", label %"$out_of_gas_584", label %"$have_gas_585" - -"$out_of_gas_584": ; preds = %"$Zero_580" - call void @_out_of_gas() - br label %"$have_gas_585" - -"$have_gas_585": ; preds = %"$out_of_gas_584", %"$Zero_580" - %"$consume_586" = sub i64 %"$gasrem_582", 1 - store i64 %"$consume_586", i64* @_gasrem, align 8 - %"$f0_587" = load %Uint32, %Uint32* %f0, align 4 - store %Uint32 %"$f0_587", %Uint32* %"$retval_132", align 4, !dbg !65 - br label %"$matchsucc_535" - -"$empty_default_538": ; preds = %"$have_gas_533" - br label %"$matchsucc_535" - -"$matchsucc_535": ; preds = %"$have_gas_585", %"$have_gas_567", %"$empty_default_538" - %"$$retval_132_588" = load %Uint32, %Uint32* %"$retval_132", align 4 - ret %Uint32 %"$$retval_132_588" + call void @llvm.dbg.declare(metadata %Uint32* %"$g_32", metadata !117, metadata !DIExpression()), !dbg !116 + %"$$g_31_578" = load { %Uint32 (i8*, %TName_Nat*)*, i8* }, { %Uint32 (i8*, %TName_Nat*)*, i8* }* %"$g_31", align 8 + %"$$g_31_fptr_579" = extractvalue { %Uint32 (i8*, %TName_Nat*)*, i8* } %"$$g_31_578", 0 + %"$$g_31_envptr_580" = extractvalue { %Uint32 (i8*, %TName_Nat*)*, i8* } %"$$g_31_578", 1 + %"$n1_581" = load %TName_Nat*, %TName_Nat** %n1, align 8 + %"$$g_31_call_582" = call %Uint32 %"$$g_31_fptr_579"(i8* %"$$g_31_envptr_580", %TName_Nat* %"$n1_581"), !dbg !116 + store %Uint32 %"$$g_31_call_582", %Uint32* %"$g_32", align 4, !dbg !116 + %"$$g_32_583" = load %Uint32, %Uint32* %"$g_32", align 4 + store %Uint32 %"$$g_32_583", %Uint32* %"$retval_132", align 4, !dbg !116 + br label %"$matchsucc_539" + +"$Zero_584": ; preds = %"$have_gas_537" + %"$n_585" = bitcast %TName_Nat* %1 to %CName_Zero* + %"$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 = %"$Zero_584" + call void @_out_of_gas() + br label %"$have_gas_589" + +"$have_gas_589": ; preds = %"$out_of_gas_588", %"$Zero_584" + %"$consume_590" = sub i64 %"$gasrem_586", 1 + store i64 %"$consume_590", i64* @_gasrem, align 8 + %"$f0_591" = load %Uint32, %Uint32* %f0, align 4 + store %Uint32 %"$f0_591", %Uint32* %"$retval_132", align 4, !dbg !118 + br label %"$matchsucc_539" + +"$empty_default_542": ; preds = %"$have_gas_537" + br label %"$matchsucc_539" + +"$matchsucc_539": ; preds = %"$have_gas_589", %"$have_gas_571", %"$empty_default_542" + %"$$retval_132_592" = load %Uint32, %Uint32* %"$retval_132", align 4 + ret %Uint32 %"$$retval_132_592" } -define internal { %Uint32 (i8*, %TName_Nat*)*, i8* } @"$fundef_129"(%"$$fundef_129_env_242"* %0, %Uint32 %1) !dbg !67 { +define internal { %Uint32 (i8*, %TName_Nat*)*, i8* } @"$fundef_129"(%"$$fundef_129_env_242"* %0, %Uint32 %1) !dbg !120 { entry: - %"$$fundef_129_env_fn_500" = getelementptr inbounds %"$$fundef_129_env_242", %"$$fundef_129_env_242"* %0, i32 0, i32 0 - %"$fn_envload_501" = load { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* }* %"$$fundef_129_env_fn_500", align 8 + %"$f0_527" = alloca %Uint32, align 8 + store %Uint32 %1, %Uint32* %"$f0_527", align 4 + call void @llvm.dbg.declare(metadata %Uint32* %"$f0_527", metadata !121, metadata !DIExpression()), !dbg !122 + %"$$fundef_129_env_fn_503" = getelementptr inbounds %"$$fundef_129_env_242", %"$$fundef_129_env_242"* %0, i32 0, i32 0 + %"$fn_envload_504" = load { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* }* %"$$fundef_129_env_fn_503", align 8 %fn = alloca { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* }, align 8 - store { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* } %"$fn_envload_501", { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* }* %fn, align 8 - %"$$fundef_129_env_g_502" = getelementptr inbounds %"$$fundef_129_env_242", %"$$fundef_129_env_242"* %0, i32 0, i32 1 - %"$g_envload_503" = load { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* }* %"$$fundef_129_env_g_502", align 8 + store { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* } %"$fn_envload_504", { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* }* %fn, align 8 + %"$$fundef_129_env_g_505" = getelementptr inbounds %"$$fundef_129_env_242", %"$$fundef_129_env_242"* %0, i32 0, i32 1 + %"$g_envload_506" = load { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* }* %"$$fundef_129_env_g_505", align 8 %g = alloca { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* }, align 8 - store { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* } %"$g_envload_503", { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* }* %g, align 8 + store { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* } %"$g_envload_506", { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* }* %g, align 8 %"$retval_130" = alloca { %Uint32 (i8*, %TName_Nat*)*, i8* }, align 8 - %"$gasrem_504" = load i64, i64* @_gasrem, align 8 - %"$gascmp_505" = icmp ugt i64 1, %"$gasrem_504" - br i1 %"$gascmp_505", label %"$out_of_gas_506", label %"$have_gas_507" - -"$out_of_gas_506": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_507" - -"$have_gas_507": ; preds = %"$out_of_gas_506", %entry - %"$consume_508" = sub i64 %"$gasrem_504", 1 - store i64 %"$consume_508", i64* @_gasrem, align 8 - %"$gasrem_509" = load i64, i64* @_gasrem, align 8 - %"$gascmp_510" = icmp ugt i64 1, %"$gasrem_509" - br i1 %"$gascmp_510", label %"$out_of_gas_511", label %"$have_gas_512" - -"$out_of_gas_511": ; preds = %"$have_gas_507" - call void @_out_of_gas() - br label %"$have_gas_512" - -"$have_gas_512": ; preds = %"$out_of_gas_511", %"$have_gas_507" - %"$consume_513" = sub i64 %"$gasrem_509", 1 - store i64 %"$consume_513", i64* @_gasrem, align 8 - %"$$fundef_131_envp_514_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_131_envp_514_salloc" = call i8* @_salloc(i8* %"$$fundef_131_envp_514_load", i64 40) - %"$$fundef_131_envp_514" = bitcast i8* %"$$fundef_131_envp_514_salloc" to %"$$fundef_131_env_241"* - %"$$fundef_131_env_voidp_516" = bitcast %"$$fundef_131_env_241"* %"$$fundef_131_envp_514" to i8* - %"$$fundef_131_cloval_517" = insertvalue { %Uint32 (i8*, %TName_Nat*)*, i8* } { %Uint32 (i8*, %TName_Nat*)* bitcast (%Uint32 (%"$$fundef_131_env_241"*, %TName_Nat*)* @"$fundef_131" to %Uint32 (i8*, %TName_Nat*)*), i8* undef }, i8* %"$$fundef_131_env_voidp_516", 1 - %"$$fundef_131_env_f0_518" = getelementptr inbounds %"$$fundef_131_env_241", %"$$fundef_131_env_241"* %"$$fundef_131_envp_514", i32 0, i32 0 - store %Uint32 %1, %Uint32* %"$$fundef_131_env_f0_518", align 4 - %"$$fundef_131_env_fn_519" = getelementptr inbounds %"$$fundef_131_env_241", %"$$fundef_131_env_241"* %"$$fundef_131_envp_514", i32 0, i32 1 - %"$fn_520" = load { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* }* %fn, align 8 - store { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* } %"$fn_520", { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* }* %"$$fundef_131_env_fn_519", align 8 - %"$$fundef_131_env_g_521" = getelementptr inbounds %"$$fundef_131_env_241", %"$$fundef_131_env_241"* %"$$fundef_131_envp_514", i32 0, i32 2 - %"$g_522" = load { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* }* %g, align 8 - store { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* } %"$g_522", { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* }* %"$$fundef_131_env_g_521", align 8 - store { %Uint32 (i8*, %TName_Nat*)*, i8* } %"$$fundef_131_cloval_517", { %Uint32 (i8*, %TName_Nat*)*, i8* }* %"$retval_130", align 8, !dbg !68 - %"$$retval_130_523" = load { %Uint32 (i8*, %TName_Nat*)*, i8* }, { %Uint32 (i8*, %TName_Nat*)*, i8* }* %"$retval_130", align 8 - ret { %Uint32 (i8*, %TName_Nat*)*, i8* } %"$$retval_130_523" + %"$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 = %entry + call void @_out_of_gas() + br label %"$have_gas_510" + +"$have_gas_510": ; preds = %"$out_of_gas_509", %entry + %"$consume_511" = sub i64 %"$gasrem_507", 1 + store i64 %"$consume_511", 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 + %"$$fundef_131_envp_517_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_131_envp_517_salloc" = call i8* @_salloc(i8* %"$$fundef_131_envp_517_load", i64 40) + %"$$fundef_131_envp_517" = bitcast i8* %"$$fundef_131_envp_517_salloc" to %"$$fundef_131_env_241"* + %"$$fundef_131_env_voidp_519" = bitcast %"$$fundef_131_env_241"* %"$$fundef_131_envp_517" to i8* + %"$$fundef_131_cloval_520" = insertvalue { %Uint32 (i8*, %TName_Nat*)*, i8* } { %Uint32 (i8*, %TName_Nat*)* bitcast (%Uint32 (%"$$fundef_131_env_241"*, %TName_Nat*)* @"$fundef_131" to %Uint32 (i8*, %TName_Nat*)*), i8* undef }, i8* %"$$fundef_131_env_voidp_519", 1 + %"$$fundef_131_env_f0_521" = getelementptr inbounds %"$$fundef_131_env_241", %"$$fundef_131_env_241"* %"$$fundef_131_envp_517", i32 0, i32 0 + store %Uint32 %1, %Uint32* %"$$fundef_131_env_f0_521", align 4 + %"$$fundef_131_env_fn_522" = getelementptr inbounds %"$$fundef_131_env_241", %"$$fundef_131_env_241"* %"$$fundef_131_envp_517", i32 0, i32 1 + %"$fn_523" = load { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* }* %fn, align 8 + store { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* } %"$fn_523", { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* }* %"$$fundef_131_env_fn_522", align 8 + %"$$fundef_131_env_g_524" = getelementptr inbounds %"$$fundef_131_env_241", %"$$fundef_131_env_241"* %"$$fundef_131_envp_517", i32 0, i32 2 + %"$g_525" = load { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* }* %g, align 8 + store { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* } %"$g_525", { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* }* %"$$fundef_131_env_g_524", align 8 + store { %Uint32 (i8*, %TName_Nat*)*, i8* } %"$$fundef_131_cloval_520", { %Uint32 (i8*, %TName_Nat*)*, i8* }* %"$retval_130", align 8, !dbg !123 + %"$$retval_130_526" = load { %Uint32 (i8*, %TName_Nat*)*, i8* }, { %Uint32 (i8*, %TName_Nat*)*, i8* }* %"$retval_130", align 8 + ret { %Uint32 (i8*, %TName_Nat*)*, i8* } %"$$retval_130_526" } -define internal { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* } @"$fundef_127"(%"$$fundef_127_env_243"* %0, { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* } %1) !dbg !69 { +define internal { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* } @"$fundef_127"(%"$$fundef_127_env_243"* %0, { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* } %1) !dbg !124 { entry: %"$retval_128" = alloca { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* }, 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 = %entry - call void @_out_of_gas() - br label %"$have_gas_489" - -"$have_gas_489": ; preds = %"$out_of_gas_488", %entry - %"$consume_490" = sub i64 %"$gasrem_486", 1 - store i64 %"$consume_490", i64* @_gasrem, align 8 - %"$$fundef_129_envp_491_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_129_envp_491_salloc" = call i8* @_salloc(i8* %"$$fundef_129_envp_491_load", i64 32) - %"$$fundef_129_envp_491" = bitcast i8* %"$$fundef_129_envp_491_salloc" to %"$$fundef_129_env_242"* - %"$$fundef_129_env_voidp_493" = bitcast %"$$fundef_129_env_242"* %"$$fundef_129_envp_491" to i8* - %"$$fundef_129_cloval_494" = insertvalue { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* } { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)* bitcast ({ %Uint32 (i8*, %TName_Nat*)*, i8* } (%"$$fundef_129_env_242"*, %Uint32)* @"$fundef_129" to { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*), i8* undef }, i8* %"$$fundef_129_env_voidp_493", 1 + %"$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 + %"$$fundef_129_envp_494_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_129_envp_494_salloc" = call i8* @_salloc(i8* %"$$fundef_129_envp_494_load", i64 32) + %"$$fundef_129_envp_494" = bitcast i8* %"$$fundef_129_envp_494_salloc" to %"$$fundef_129_env_242"* + %"$$fundef_129_env_voidp_496" = bitcast %"$$fundef_129_env_242"* %"$$fundef_129_envp_494" to i8* + %"$$fundef_129_cloval_497" = insertvalue { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* } { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)* bitcast ({ %Uint32 (i8*, %TName_Nat*)*, i8* } (%"$$fundef_129_env_242"*, %Uint32)* @"$fundef_129" to { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*), i8* undef }, i8* %"$$fundef_129_env_voidp_496", 1 %g = alloca { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* }, align 8 - store { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* } %"$$fundef_129_cloval_494", { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* }* %g, align 8, !dbg !70 - %"$$fundef_129_env_fn_495" = getelementptr inbounds %"$$fundef_129_env_242", %"$$fundef_129_env_242"* %"$$fundef_129_envp_491", i32 0, i32 0 - store { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* } %1, { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* }* %"$$fundef_129_env_fn_495", align 8 - %"$$fundef_129_env_g_496" = getelementptr inbounds %"$$fundef_129_env_242", %"$$fundef_129_env_242"* %"$$fundef_129_envp_491", i32 0, i32 1 - %"$g_497" = load { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* }* %g, align 8 - store { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* } %"$g_497", { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* }* %"$$fundef_129_env_g_496", align 8 - %"$g_498" = load { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* }* %g, align 8 - store { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* } %"$g_498", { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* }* %"$retval_128", align 8, !dbg !70 - %"$$retval_128_499" = load { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* }* %"$retval_128", align 8 - ret { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* } %"$$retval_128_499" + store { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* } %"$$fundef_129_cloval_497", { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* }* %g, align 8, !dbg !125 + %"$$fundef_129_env_fn_498" = getelementptr inbounds %"$$fundef_129_env_242", %"$$fundef_129_env_242"* %"$$fundef_129_envp_494", i32 0, i32 0 + store { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* } %1, { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* }* %"$$fundef_129_env_fn_498", align 8 + %"$$fundef_129_env_g_499" = getelementptr inbounds %"$$fundef_129_env_242", %"$$fundef_129_env_242"* %"$$fundef_129_envp_494", i32 0, i32 1 + %"$g_500" = load { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* }* %g, align 8 + store { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* } %"$g_500", { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* }* %"$$fundef_129_env_g_499", align 8 + %"$g_501" = load { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* }* %g, align 8 + store { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* } %"$g_501", { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* }* %"$retval_128", align 8, !dbg !125 + %"$$retval_128_502" = load { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* }* %"$retval_128", align 8 + ret { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* } %"$$retval_128_502" } -define internal { { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } @"$fundef_125"(%"$$fundef_125_env_244"* %0) !dbg !71 { +define internal { { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } @"$fundef_125"(%"$$fundef_125_env_244"* %0) !dbg !126 { entry: %"$retval_126" = alloca { { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* })*, i8* }, align 8 - %"$gasrem_477" = load i64, i64* @_gasrem, align 8 - %"$gascmp_478" = icmp ugt i64 1, %"$gasrem_477" - br i1 %"$gascmp_478", label %"$out_of_gas_479", label %"$have_gas_480" + %"$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_479": ; preds = %entry +"$out_of_gas_482": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_480" + br label %"$have_gas_483" -"$have_gas_480": ; preds = %"$out_of_gas_479", %entry - %"$consume_481" = sub i64 %"$gasrem_477", 1 - store i64 %"$consume_481", i64* @_gasrem, align 8 - store { { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } { { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* })* bitcast ({ { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* } (%"$$fundef_127_env_243"*, { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* })* @"$fundef_127" to { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* })*), i8* null }, { { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* })*, i8* }* %"$retval_126", align 8, !dbg !72 - %"$$retval_126_485" = load { { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* })*, i8* }, { { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* })*, i8* }* %"$retval_126", align 8 - ret { { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } %"$$retval_126_485" +"$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 { { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } { { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* })* bitcast ({ { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* } (%"$$fundef_127_env_243"*, { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* })* @"$fundef_127" to { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* })*), i8* null }, { { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* })*, i8* }* %"$retval_126", align 8, !dbg !127 + %"$$retval_126_488" = load { { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* })*, i8* }, { { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* })*, i8* }* %"$retval_126", align 8 + ret { { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } %"$$retval_126_488" } -define internal %TName_Nat* @"$fundef_123"(%"$$fundef_123_env_245"* %0, %TName_Nat* %1) !dbg !73 { +define internal %TName_Nat* @"$fundef_123"(%"$$fundef_123_env_245"* %0, %TName_Nat* %1) !dbg !128 { entry: - %"$$fundef_123_env_f0_412" = getelementptr inbounds %"$$fundef_123_env_245", %"$$fundef_123_env_245"* %0, i32 0, i32 0 - %"$f0_envload_413" = load %TName_Nat*, %TName_Nat** %"$$fundef_123_env_f0_412", align 8 + %"$n_479" = alloca %TName_Nat*, align 8 + store %TName_Nat* %1, %TName_Nat** %"$n_479", align 8 + call void @llvm.dbg.declare(metadata %TName_Nat** %"$n_479", metadata !129, metadata !DIExpression()), !dbg !130 + %"$$fundef_123_env_f0_414" = getelementptr inbounds %"$$fundef_123_env_245", %"$$fundef_123_env_245"* %0, i32 0, i32 0 + %"$f0_envload_415" = load %TName_Nat*, %TName_Nat** %"$$fundef_123_env_f0_414", align 8 %f0 = alloca %TName_Nat*, align 8 - store %TName_Nat* %"$f0_envload_413", %TName_Nat** %f0, align 8 - %"$$fundef_123_env_fn_414" = getelementptr inbounds %"$$fundef_123_env_245", %"$$fundef_123_env_245"* %0, i32 0, i32 1 - %"$fn_envload_415" = load { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }* %"$$fundef_123_env_fn_414", align 8 + store %TName_Nat* %"$f0_envload_415", %TName_Nat** %f0, align 8 + %"$$fundef_123_env_fn_416" = getelementptr inbounds %"$$fundef_123_env_245", %"$$fundef_123_env_245"* %0, i32 0, i32 1 + %"$fn_envload_417" = load { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }* %"$$fundef_123_env_fn_416", align 8 %fn = alloca { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }, align 8 - store { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$fn_envload_415", { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }* %fn, align 8 - %"$$fundef_123_env_g_416" = getelementptr inbounds %"$$fundef_123_env_245", %"$$fundef_123_env_245"* %0, i32 0, i32 2 - %"$g_envload_417" = load { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }* %"$$fundef_123_env_g_416", align 8 + store { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$fn_envload_417", { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }* %fn, align 8 + %"$$fundef_123_env_g_418" = getelementptr inbounds %"$$fundef_123_env_245", %"$$fundef_123_env_245"* %0, i32 0, i32 2 + %"$g_envload_419" = load { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }* %"$$fundef_123_env_g_418", align 8 %g = alloca { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }, align 8 - store { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$g_envload_417", { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }* %g, align 8 + store { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$g_envload_419", { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }* %g, align 8 %"$retval_124" = alloca %TName_Nat*, align 8 - %"$gasrem_418" = load i64, i64* @_gasrem, align 8 - %"$gascmp_419" = icmp ugt i64 2, %"$gasrem_418" - br i1 %"$gascmp_419", label %"$out_of_gas_420", label %"$have_gas_421" - -"$out_of_gas_420": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_421" - -"$have_gas_421": ; preds = %"$out_of_gas_420", %entry - %"$consume_422" = sub i64 %"$gasrem_418", 2 - store i64 %"$consume_422", i64* @_gasrem, align 8 - %"$n_tag_424" = getelementptr inbounds %TName_Nat, %TName_Nat* %1, i32 0, i32 0 - %"$n_tag_425" = load i8, i8* %"$n_tag_424", align 1 - switch i8 %"$n_tag_425", label %"$empty_default_426" [ - i8 1, label %"$Succ_427" - i8 0, label %"$Zero_468" - ], !dbg !74 - -"$Succ_427": ; preds = %"$have_gas_421" - %"$n_428" = bitcast %TName_Nat* %1 to %CName_Succ* - %"$n1_gep_429" = getelementptr inbounds %CName_Succ, %CName_Succ* %"$n_428", i32 0, i32 1 - %"$n1_load_430" = load %TName_Nat*, %TName_Nat** %"$n1_gep_429", align 8 + call void @llvm.dbg.declare(metadata %TName_Nat** %"$retval_124", metadata !131, metadata !DIExpression()), !dbg !132 + %"$gasrem_420" = load i64, i64* @_gasrem, align 8 + %"$gascmp_421" = icmp ugt i64 2, %"$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", 2 + store i64 %"$consume_424", i64* @_gasrem, align 8 + %"$n_tag_426" = getelementptr inbounds %TName_Nat, %TName_Nat* %1, i32 0, i32 0 + %"$n_tag_427" = load i8, i8* %"$n_tag_426", align 1 + switch i8 %"$n_tag_427", label %"$empty_default_428" [ + i8 1, label %"$Succ_429" + i8 0, label %"$Zero_470" + ], !dbg !132 + +"$Succ_429": ; preds = %"$have_gas_423" + %"$n_430" = bitcast %TName_Nat* %1 to %CName_Succ* + %"$n1_gep_431" = getelementptr inbounds %CName_Succ, %CName_Succ* %"$n_430", i32 0, i32 1 + %"$n1_load_432" = load %TName_Nat*, %TName_Nat** %"$n1_gep_431", align 8 %n1 = alloca %TName_Nat*, align 8 - store %TName_Nat* %"$n1_load_430", %TName_Nat** %n1, align 8 - %"$gasrem_431" = load i64, i64* @_gasrem, align 8 - %"$gascmp_432" = icmp ugt i64 1, %"$gasrem_431" - br i1 %"$gascmp_432", label %"$out_of_gas_433", label %"$have_gas_434" + store %TName_Nat* %"$n1_load_432", %TName_Nat** %n1, 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_433": ; preds = %"$Succ_427" +"$out_of_gas_435": ; preds = %"$Succ_429" call void @_out_of_gas() - br label %"$have_gas_434" + br label %"$have_gas_436" -"$have_gas_434": ; preds = %"$out_of_gas_433", %"$Succ_427" - %"$consume_435" = sub i64 %"$gasrem_431", 1 - store i64 %"$consume_435", i64* @_gasrem, align 8 +"$have_gas_436": ; preds = %"$out_of_gas_435", %"$Succ_429" + %"$consume_437" = sub i64 %"$gasrem_433", 1 + store i64 %"$consume_437", i64* @_gasrem, align 8 %res = alloca %TName_Nat*, 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" + call void @llvm.dbg.declare(metadata %TName_Nat** %res, metadata !133, metadata !DIExpression()), !dbg !136 + %"$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_438": ; preds = %"$have_gas_434" +"$out_of_gas_440": ; preds = %"$have_gas_436" call void @_out_of_gas() - br label %"$have_gas_439" + br label %"$have_gas_441" -"$have_gas_439": ; preds = %"$out_of_gas_438", %"$have_gas_434" - %"$consume_440" = sub i64 %"$gasrem_436", 1 - store i64 %"$consume_440", i64* @_gasrem, align 8 +"$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 %"$fn_25" = alloca { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, align 8 - %"$fn_441" = load { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }* %fn, align 8 - %"$fn_fptr_442" = extractvalue { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$fn_441", 0 - %"$fn_envptr_443" = extractvalue { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$fn_441", 1 - %"$f0_444" = load %TName_Nat*, %TName_Nat** %f0, align 8 - %"$fn_call_445" = call { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$fn_fptr_442"(i8* %"$fn_envptr_443", %TName_Nat* %"$f0_444"), !dbg !75 - store { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$fn_call_445", { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$fn_25", align 8, !dbg !75 + %"$fn_443" = load { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }* %fn, align 8 + %"$fn_fptr_444" = extractvalue { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$fn_443", 0 + %"$fn_envptr_445" = extractvalue { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$fn_443", 1 + %"$f0_446" = load %TName_Nat*, %TName_Nat** %f0, align 8 + %"$fn_call_447" = call { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$fn_fptr_444"(i8* %"$fn_envptr_445", %TName_Nat* %"$f0_446"), !dbg !137 + store { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$fn_call_447", { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$fn_25", align 8, !dbg !137 %"$fn_26" = alloca %TName_Nat*, align 8 - %"$$fn_25_446" = load { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$fn_25", align 8 - %"$$fn_25_fptr_447" = extractvalue { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$$fn_25_446", 0 - %"$$fn_25_envptr_448" = extractvalue { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$$fn_25_446", 1 - %"$n1_449" = load %TName_Nat*, %TName_Nat** %n1, align 8 - %"$$fn_25_call_450" = call %TName_Nat* %"$$fn_25_fptr_447"(i8* %"$$fn_25_envptr_448", %TName_Nat* %"$n1_449"), !dbg !75 - store %TName_Nat* %"$$fn_25_call_450", %TName_Nat** %"$fn_26", align 8, !dbg !75 - %"$$fn_26_451" = load %TName_Nat*, %TName_Nat** %"$fn_26", align 8 - store %TName_Nat* %"$$fn_26_451", %TName_Nat** %res, align 8, !dbg !75 - %"$gasrem_452" = load i64, i64* @_gasrem, align 8 - %"$gascmp_453" = icmp ugt i64 1, %"$gasrem_452" - br i1 %"$gascmp_453", label %"$out_of_gas_454", label %"$have_gas_455" - -"$out_of_gas_454": ; preds = %"$have_gas_439" - call void @_out_of_gas() - br label %"$have_gas_455" - -"$have_gas_455": ; preds = %"$out_of_gas_454", %"$have_gas_439" - %"$consume_456" = sub i64 %"$gasrem_452", 1 - store i64 %"$consume_456", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Nat** %"$fn_26", metadata !138, metadata !DIExpression()), !dbg !137 + %"$$fn_25_448" = load { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$fn_25", align 8 + %"$$fn_25_fptr_449" = extractvalue { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$$fn_25_448", 0 + %"$$fn_25_envptr_450" = extractvalue { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$$fn_25_448", 1 + %"$n1_451" = load %TName_Nat*, %TName_Nat** %n1, align 8 + %"$$fn_25_call_452" = call %TName_Nat* %"$$fn_25_fptr_449"(i8* %"$$fn_25_envptr_450", %TName_Nat* %"$n1_451"), !dbg !137 + store %TName_Nat* %"$$fn_25_call_452", %TName_Nat** %"$fn_26", align 8, !dbg !137 + %"$$fn_26_453" = load %TName_Nat*, %TName_Nat** %"$fn_26", align 8 + store %TName_Nat* %"$$fn_26_453", %TName_Nat** %res, align 8, !dbg !137 + %"$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_441" + call void @_out_of_gas() + br label %"$have_gas_457" + +"$have_gas_457": ; preds = %"$out_of_gas_456", %"$have_gas_441" + %"$consume_458" = sub i64 %"$gasrem_454", 1 + store i64 %"$consume_458", i64* @_gasrem, align 8 %"$g_27" = alloca { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, align 8 - %"$g_457" = load { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }* %g, align 8 - %"$g_fptr_458" = extractvalue { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$g_457", 0 - %"$g_envptr_459" = extractvalue { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$g_457", 1 - %"$res_460" = load %TName_Nat*, %TName_Nat** %res, align 8 - %"$g_call_461" = call { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$g_fptr_458"(i8* %"$g_envptr_459", %TName_Nat* %"$res_460"), !dbg !78 - store { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$g_call_461", { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$g_27", align 8, !dbg !78 + %"$g_459" = load { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }* %g, align 8 + %"$g_fptr_460" = extractvalue { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$g_459", 0 + %"$g_envptr_461" = extractvalue { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$g_459", 1 + %"$res_462" = load %TName_Nat*, %TName_Nat** %res, align 8 + %"$g_call_463" = call { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$g_fptr_460"(i8* %"$g_envptr_461", %TName_Nat* %"$res_462"), !dbg !139 + store { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$g_call_463", { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$g_27", align 8, !dbg !139 %"$g_28" = alloca %TName_Nat*, align 8 - %"$$g_27_462" = load { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$g_27", align 8 - %"$$g_27_fptr_463" = extractvalue { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$$g_27_462", 0 - %"$$g_27_envptr_464" = extractvalue { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$$g_27_462", 1 - %"$n1_465" = load %TName_Nat*, %TName_Nat** %n1, align 8 - %"$$g_27_call_466" = call %TName_Nat* %"$$g_27_fptr_463"(i8* %"$$g_27_envptr_464", %TName_Nat* %"$n1_465"), !dbg !78 - store %TName_Nat* %"$$g_27_call_466", %TName_Nat** %"$g_28", align 8, !dbg !78 - %"$$g_28_467" = load %TName_Nat*, %TName_Nat** %"$g_28", align 8 - store %TName_Nat* %"$$g_28_467", %TName_Nat** %"$retval_124", align 8, !dbg !78 - br label %"$matchsucc_423" - -"$Zero_468": ; preds = %"$have_gas_421" - %"$n_469" = bitcast %TName_Nat* %1 to %CName_Zero* - %"$gasrem_470" = load i64, i64* @_gasrem, align 8 - %"$gascmp_471" = icmp ugt i64 1, %"$gasrem_470" - br i1 %"$gascmp_471", label %"$out_of_gas_472", label %"$have_gas_473" - -"$out_of_gas_472": ; preds = %"$Zero_468" - call void @_out_of_gas() - br label %"$have_gas_473" - -"$have_gas_473": ; preds = %"$out_of_gas_472", %"$Zero_468" - %"$consume_474" = sub i64 %"$gasrem_470", 1 - store i64 %"$consume_474", i64* @_gasrem, align 8 - %"$f0_475" = load %TName_Nat*, %TName_Nat** %f0, align 8 - store %TName_Nat* %"$f0_475", %TName_Nat** %"$retval_124", align 8, !dbg !79 - br label %"$matchsucc_423" - -"$empty_default_426": ; preds = %"$have_gas_421" - br label %"$matchsucc_423" - -"$matchsucc_423": ; preds = %"$have_gas_473", %"$have_gas_455", %"$empty_default_426" - %"$$retval_124_476" = load %TName_Nat*, %TName_Nat** %"$retval_124", align 8 - ret %TName_Nat* %"$$retval_124_476" + call void @llvm.dbg.declare(metadata %TName_Nat** %"$g_28", metadata !140, metadata !DIExpression()), !dbg !139 + %"$$g_27_464" = load { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$g_27", align 8 + %"$$g_27_fptr_465" = extractvalue { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$$g_27_464", 0 + %"$$g_27_envptr_466" = extractvalue { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$$g_27_464", 1 + %"$n1_467" = load %TName_Nat*, %TName_Nat** %n1, align 8 + %"$$g_27_call_468" = call %TName_Nat* %"$$g_27_fptr_465"(i8* %"$$g_27_envptr_466", %TName_Nat* %"$n1_467"), !dbg !139 + store %TName_Nat* %"$$g_27_call_468", %TName_Nat** %"$g_28", align 8, !dbg !139 + %"$$g_28_469" = load %TName_Nat*, %TName_Nat** %"$g_28", align 8 + store %TName_Nat* %"$$g_28_469", %TName_Nat** %"$retval_124", align 8, !dbg !139 + br label %"$matchsucc_425" + +"$Zero_470": ; preds = %"$have_gas_423" + %"$n_471" = bitcast %TName_Nat* %1 to %CName_Zero* + %"$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" + +"$out_of_gas_474": ; preds = %"$Zero_470" + call void @_out_of_gas() + br label %"$have_gas_475" + +"$have_gas_475": ; preds = %"$out_of_gas_474", %"$Zero_470" + %"$consume_476" = sub i64 %"$gasrem_472", 1 + store i64 %"$consume_476", i64* @_gasrem, align 8 + %"$f0_477" = load %TName_Nat*, %TName_Nat** %f0, align 8 + store %TName_Nat* %"$f0_477", %TName_Nat** %"$retval_124", align 8, !dbg !141 + br label %"$matchsucc_425" + +"$empty_default_428": ; preds = %"$have_gas_423" + br label %"$matchsucc_425" + +"$matchsucc_425": ; preds = %"$have_gas_475", %"$have_gas_457", %"$empty_default_428" + %"$$retval_124_478" = load %TName_Nat*, %TName_Nat** %"$retval_124", align 8 + ret %TName_Nat* %"$$retval_124_478" } -define internal { %TName_Nat* (i8*, %TName_Nat*)*, i8* } @"$fundef_121"(%"$$fundef_121_env_246"* %0, %TName_Nat* %1) !dbg !81 { +define internal { %TName_Nat* (i8*, %TName_Nat*)*, i8* } @"$fundef_121"(%"$$fundef_121_env_246"* %0, %TName_Nat* %1) !dbg !143 { entry: - %"$$fundef_121_env_fn_388" = getelementptr inbounds %"$$fundef_121_env_246", %"$$fundef_121_env_246"* %0, i32 0, i32 0 - %"$fn_envload_389" = load { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }* %"$$fundef_121_env_fn_388", align 8 + %"$f0_413" = alloca %TName_Nat*, align 8 + store %TName_Nat* %1, %TName_Nat** %"$f0_413", align 8 + call void @llvm.dbg.declare(metadata %TName_Nat** %"$f0_413", metadata !144, metadata !DIExpression()), !dbg !145 + %"$$fundef_121_env_fn_389" = getelementptr inbounds %"$$fundef_121_env_246", %"$$fundef_121_env_246"* %0, i32 0, i32 0 + %"$fn_envload_390" = load { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }* %"$$fundef_121_env_fn_389", align 8 %fn = alloca { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }, align 8 - store { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$fn_envload_389", { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }* %fn, align 8 - %"$$fundef_121_env_g_390" = getelementptr inbounds %"$$fundef_121_env_246", %"$$fundef_121_env_246"* %0, i32 0, i32 1 - %"$g_envload_391" = load { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }* %"$$fundef_121_env_g_390", align 8 + store { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$fn_envload_390", { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }* %fn, align 8 + %"$$fundef_121_env_g_391" = getelementptr inbounds %"$$fundef_121_env_246", %"$$fundef_121_env_246"* %0, i32 0, i32 1 + %"$g_envload_392" = load { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }* %"$$fundef_121_env_g_391", align 8 %g = alloca { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }, align 8 - store { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$g_envload_391", { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }* %g, align 8 + store { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$g_envload_392", { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }* %g, align 8 %"$retval_122" = alloca { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, align 8 - %"$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 = %entry - call void @_out_of_gas() - br label %"$have_gas_395" - -"$have_gas_395": ; preds = %"$out_of_gas_394", %entry - %"$consume_396" = sub i64 %"$gasrem_392", 1 - store i64 %"$consume_396", i64* @_gasrem, align 8 - %"$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 = %"$have_gas_395" - call void @_out_of_gas() - br label %"$have_gas_400" - -"$have_gas_400": ; preds = %"$out_of_gas_399", %"$have_gas_395" - %"$consume_401" = sub i64 %"$gasrem_397", 1 - store i64 %"$consume_401", i64* @_gasrem, align 8 - %"$$fundef_123_envp_402_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_123_envp_402_salloc" = call i8* @_salloc(i8* %"$$fundef_123_envp_402_load", i64 40) - %"$$fundef_123_envp_402" = bitcast i8* %"$$fundef_123_envp_402_salloc" to %"$$fundef_123_env_245"* - %"$$fundef_123_env_voidp_404" = bitcast %"$$fundef_123_env_245"* %"$$fundef_123_envp_402" to i8* - %"$$fundef_123_cloval_405" = insertvalue { %TName_Nat* (i8*, %TName_Nat*)*, i8* } { %TName_Nat* (i8*, %TName_Nat*)* bitcast (%TName_Nat* (%"$$fundef_123_env_245"*, %TName_Nat*)* @"$fundef_123" to %TName_Nat* (i8*, %TName_Nat*)*), i8* undef }, i8* %"$$fundef_123_env_voidp_404", 1 - %"$$fundef_123_env_f0_406" = getelementptr inbounds %"$$fundef_123_env_245", %"$$fundef_123_env_245"* %"$$fundef_123_envp_402", i32 0, i32 0 - store %TName_Nat* %1, %TName_Nat** %"$$fundef_123_env_f0_406", align 8 - %"$$fundef_123_env_fn_407" = getelementptr inbounds %"$$fundef_123_env_245", %"$$fundef_123_env_245"* %"$$fundef_123_envp_402", i32 0, i32 1 - %"$fn_408" = load { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }* %fn, align 8 - store { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$fn_408", { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }* %"$$fundef_123_env_fn_407", align 8 - %"$$fundef_123_env_g_409" = getelementptr inbounds %"$$fundef_123_env_245", %"$$fundef_123_env_245"* %"$$fundef_123_envp_402", i32 0, i32 2 - %"$g_410" = load { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }* %g, align 8 - store { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$g_410", { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }* %"$$fundef_123_env_g_409", align 8 - store { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$$fundef_123_cloval_405", { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$retval_122", align 8, !dbg !82 - %"$$retval_122_411" = load { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$retval_122", align 8 - ret { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$$retval_122_411" + %"$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 + call void @_out_of_gas() + br label %"$have_gas_396" + +"$have_gas_396": ; preds = %"$out_of_gas_395", %entry + %"$consume_397" = sub i64 %"$gasrem_393", 1 + store i64 %"$consume_397", i64* @_gasrem, 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 + %"$$fundef_123_envp_403_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_123_envp_403_salloc" = call i8* @_salloc(i8* %"$$fundef_123_envp_403_load", i64 40) + %"$$fundef_123_envp_403" = bitcast i8* %"$$fundef_123_envp_403_salloc" to %"$$fundef_123_env_245"* + %"$$fundef_123_env_voidp_405" = bitcast %"$$fundef_123_env_245"* %"$$fundef_123_envp_403" to i8* + %"$$fundef_123_cloval_406" = insertvalue { %TName_Nat* (i8*, %TName_Nat*)*, i8* } { %TName_Nat* (i8*, %TName_Nat*)* bitcast (%TName_Nat* (%"$$fundef_123_env_245"*, %TName_Nat*)* @"$fundef_123" to %TName_Nat* (i8*, %TName_Nat*)*), i8* undef }, i8* %"$$fundef_123_env_voidp_405", 1 + %"$$fundef_123_env_f0_407" = getelementptr inbounds %"$$fundef_123_env_245", %"$$fundef_123_env_245"* %"$$fundef_123_envp_403", i32 0, i32 0 + store %TName_Nat* %1, %TName_Nat** %"$$fundef_123_env_f0_407", align 8 + %"$$fundef_123_env_fn_408" = getelementptr inbounds %"$$fundef_123_env_245", %"$$fundef_123_env_245"* %"$$fundef_123_envp_403", i32 0, i32 1 + %"$fn_409" = load { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }* %fn, align 8 + store { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$fn_409", { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }* %"$$fundef_123_env_fn_408", align 8 + %"$$fundef_123_env_g_410" = getelementptr inbounds %"$$fundef_123_env_245", %"$$fundef_123_env_245"* %"$$fundef_123_envp_403", i32 0, i32 2 + %"$g_411" = load { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }* %g, align 8 + store { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$g_411", { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }* %"$$fundef_123_env_g_410", align 8 + store { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$$fundef_123_cloval_406", { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$retval_122", align 8, !dbg !146 + %"$$retval_122_412" = load { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$retval_122", align 8 + ret { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$$retval_122_412" } -define internal { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } @"$fundef_119"(%"$$fundef_119_env_247"* %0, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %1) !dbg !83 { +define internal { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } @"$fundef_119"(%"$$fundef_119_env_247"* %0, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %1) !dbg !147 { entry: %"$retval_120" = alloca { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }, align 8 - %"$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 = %entry - call void @_out_of_gas() - br label %"$have_gas_377" - -"$have_gas_377": ; preds = %"$out_of_gas_376", %entry - %"$consume_378" = sub i64 %"$gasrem_374", 1 - store i64 %"$consume_378", i64* @_gasrem, align 8 - %"$$fundef_121_envp_379_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_121_envp_379_salloc" = call i8* @_salloc(i8* %"$$fundef_121_envp_379_load", i64 32) - %"$$fundef_121_envp_379" = bitcast i8* %"$$fundef_121_envp_379_salloc" to %"$$fundef_121_env_246"* - %"$$fundef_121_env_voidp_381" = bitcast %"$$fundef_121_env_246"* %"$$fundef_121_envp_379" to i8* - %"$$fundef_121_cloval_382" = insertvalue { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)* bitcast ({ %TName_Nat* (i8*, %TName_Nat*)*, i8* } (%"$$fundef_121_env_246"*, %TName_Nat*)* @"$fundef_121" to { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*), i8* undef }, i8* %"$$fundef_121_env_voidp_381", 1 + %"$gasrem_375" = load i64, i64* @_gasrem, align 8 + %"$gascmp_376" = icmp ugt i64 1, %"$gasrem_375" + br i1 %"$gascmp_376", label %"$out_of_gas_377", label %"$have_gas_378" + +"$out_of_gas_377": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_378" + +"$have_gas_378": ; preds = %"$out_of_gas_377", %entry + %"$consume_379" = sub i64 %"$gasrem_375", 1 + store i64 %"$consume_379", i64* @_gasrem, align 8 + %"$$fundef_121_envp_380_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_121_envp_380_salloc" = call i8* @_salloc(i8* %"$$fundef_121_envp_380_load", i64 32) + %"$$fundef_121_envp_380" = bitcast i8* %"$$fundef_121_envp_380_salloc" to %"$$fundef_121_env_246"* + %"$$fundef_121_env_voidp_382" = bitcast %"$$fundef_121_env_246"* %"$$fundef_121_envp_380" to i8* + %"$$fundef_121_cloval_383" = insertvalue { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)* bitcast ({ %TName_Nat* (i8*, %TName_Nat*)*, i8* } (%"$$fundef_121_env_246"*, %TName_Nat*)* @"$fundef_121" to { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*), i8* undef }, i8* %"$$fundef_121_env_voidp_382", 1 %g = alloca { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }, align 8 - store { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$$fundef_121_cloval_382", { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }* %g, align 8, !dbg !84 - %"$$fundef_121_env_fn_383" = getelementptr inbounds %"$$fundef_121_env_246", %"$$fundef_121_env_246"* %"$$fundef_121_envp_379", i32 0, i32 0 - store { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %1, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }* %"$$fundef_121_env_fn_383", align 8 - %"$$fundef_121_env_g_384" = getelementptr inbounds %"$$fundef_121_env_246", %"$$fundef_121_env_246"* %"$$fundef_121_envp_379", i32 0, i32 1 - %"$g_385" = load { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }* %g, align 8 - store { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$g_385", { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }* %"$$fundef_121_env_g_384", align 8 + store { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$$fundef_121_cloval_383", { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }* %g, align 8, !dbg !148 + %"$$fundef_121_env_fn_384" = getelementptr inbounds %"$$fundef_121_env_246", %"$$fundef_121_env_246"* %"$$fundef_121_envp_380", i32 0, i32 0 + store { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %1, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }* %"$$fundef_121_env_fn_384", align 8 + %"$$fundef_121_env_g_385" = getelementptr inbounds %"$$fundef_121_env_246", %"$$fundef_121_env_246"* %"$$fundef_121_envp_380", i32 0, i32 1 %"$g_386" = load { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }* %g, align 8 - store { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$g_386", { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }* %"$retval_120", align 8, !dbg !84 - %"$$retval_120_387" = load { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }* %"$retval_120", align 8 - ret { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$$retval_120_387" + store { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$g_386", { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }* %"$$fundef_121_env_g_385", align 8 + %"$g_387" = load { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }* %g, align 8 + store { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$g_387", { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }* %"$retval_120", align 8, !dbg !148 + %"$$retval_120_388" = load { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }* %"$retval_120", align 8 + ret { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$$retval_120_388" } -define internal { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* })*, i8* } @"$fundef_117"(%"$$fundef_117_env_248"* %0) !dbg !85 { +define internal { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* })*, i8* } @"$fundef_117"(%"$$fundef_117_env_248"* %0) !dbg !149 { entry: %"$retval_118" = alloca { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* })*, i8* }, align 8 - %"$gasrem_365" = load i64, i64* @_gasrem, align 8 - %"$gascmp_366" = icmp ugt i64 1, %"$gasrem_365" - br i1 %"$gascmp_366", label %"$out_of_gas_367", label %"$have_gas_368" + %"$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_367": ; preds = %entry +"$out_of_gas_368": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_368" + br label %"$have_gas_369" -"$have_gas_368": ; preds = %"$out_of_gas_367", %entry - %"$consume_369" = sub i64 %"$gasrem_365", 1 - store i64 %"$consume_369", i64* @_gasrem, align 8 - store { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* })*, i8* } { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* })* bitcast ({ { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (%"$$fundef_119_env_247"*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* })* @"$fundef_119" to { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* })*), i8* null }, { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* })*, i8* }* %"$retval_118", align 8, !dbg !86 - %"$$retval_118_373" = load { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* })*, i8* }, { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* })*, i8* }* %"$retval_118", align 8 - ret { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* })*, i8* } %"$$retval_118_373" +"$have_gas_369": ; preds = %"$out_of_gas_368", %entry + %"$consume_370" = sub i64 %"$gasrem_366", 1 + store i64 %"$consume_370", i64* @_gasrem, align 8 + store { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* })*, i8* } { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* })* bitcast ({ { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (%"$$fundef_119_env_247"*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* })* @"$fundef_119" to { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* })*), i8* null }, { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* })*, i8* }* %"$retval_118", align 8, !dbg !150 + %"$$retval_118_374" = load { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* })*, i8* }, { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* })*, i8* }* %"$retval_118", align 8 + ret { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* })*, i8* } %"$$retval_118_374" } -define internal { %TName_Nat* (i8*, %TName_Nat*)*, i8* } @"$fundef_115"(%"$$fundef_115_env_249"* %0, %TName_Nat* %1) !dbg !87 { +define internal { %TName_Nat* (i8*, %TName_Nat*)*, i8* } @"$fundef_115"(%"$$fundef_115_env_249"* %0, %TName_Nat* %1) !dbg !151 { entry: + %"$n_365" = alloca %TName_Nat*, align 8 + store %TName_Nat* %1, %TName_Nat** %"$n_365", align 8 + call void @llvm.dbg.declare(metadata %TName_Nat** %"$n_365", metadata !152, metadata !DIExpression()), !dbg !153 %"$$fundef_115_env_f0_300" = getelementptr inbounds %"$$fundef_115_env_249", %"$$fundef_115_env_249"* %0, i32 0, i32 0 %"$f0_envload_301" = load { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$$fundef_115_env_f0_300", align 8 %f0 = alloca { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, align 8 @@ -1706,7 +1779,7 @@ entry: switch i8 %"$n_tag_313", label %"$empty_default_314" [ i8 1, label %"$Succ_315" i8 0, label %"$Zero_356" - ], !dbg !88 + ], !dbg !154 "$Succ_315": ; preds = %"$have_gas_309" %"$n_316" = bitcast %TName_Nat* %1 to %CName_Succ* @@ -1742,17 +1815,17 @@ entry: %"$fn_fptr_330" = extractvalue { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } %"$fn_329", 0 %"$fn_envptr_331" = extractvalue { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } %"$fn_329", 1 %"$f0_332" = load { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %f0, align 8 - %"$fn_call_333" = call { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$fn_fptr_330"(i8* %"$fn_envptr_331", { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$f0_332"), !dbg !89 - store { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$fn_call_333", { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }* %"$fn_25", align 8, !dbg !89 + %"$fn_call_333" = call { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$fn_fptr_330"(i8* %"$fn_envptr_331", { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$f0_332"), !dbg !155 + store { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$fn_call_333", { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }* %"$fn_25", align 8, !dbg !155 %"$fn_26" = alloca { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, align 8 %"$$fn_25_334" = load { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }* %"$fn_25", align 8 %"$$fn_25_fptr_335" = extractvalue { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$$fn_25_334", 0 %"$$fn_25_envptr_336" = extractvalue { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$$fn_25_334", 1 %"$n1_337" = load %TName_Nat*, %TName_Nat** %n1, align 8 - %"$$fn_25_call_338" = call { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$$fn_25_fptr_335"(i8* %"$$fn_25_envptr_336", %TName_Nat* %"$n1_337"), !dbg !89 - store { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$$fn_25_call_338", { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$fn_26", align 8, !dbg !89 + %"$$fn_25_call_338" = call { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$$fn_25_fptr_335"(i8* %"$$fn_25_envptr_336", %TName_Nat* %"$n1_337"), !dbg !155 + store { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$$fn_25_call_338", { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$fn_26", align 8, !dbg !155 %"$$fn_26_339" = load { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$fn_26", align 8 - store { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$$fn_26_339", { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %res, align 8, !dbg !89 + store { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$$fn_26_339", { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %res, align 8, !dbg !155 %"$gasrem_340" = load i64, i64* @_gasrem, align 8 %"$gascmp_341" = icmp ugt i64 1, %"$gasrem_340" br i1 %"$gascmp_341", label %"$out_of_gas_342", label %"$have_gas_343" @@ -1769,17 +1842,17 @@ entry: %"$g_fptr_346" = extractvalue { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } %"$g_345", 0 %"$g_envptr_347" = extractvalue { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } %"$g_345", 1 %"$res_348" = load { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %res, align 8 - %"$g_call_349" = call { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$g_fptr_346"(i8* %"$g_envptr_347", { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$res_348"), !dbg !92 - store { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$g_call_349", { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }* %"$g_27", align 8, !dbg !92 + %"$g_call_349" = call { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$g_fptr_346"(i8* %"$g_envptr_347", { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$res_348"), !dbg !158 + store { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$g_call_349", { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }* %"$g_27", align 8, !dbg !158 %"$g_28" = alloca { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, align 8 %"$$g_27_350" = load { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }* %"$g_27", align 8 %"$$g_27_fptr_351" = extractvalue { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$$g_27_350", 0 %"$$g_27_envptr_352" = extractvalue { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$$g_27_350", 1 %"$n1_353" = load %TName_Nat*, %TName_Nat** %n1, align 8 - %"$$g_27_call_354" = call { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$$g_27_fptr_351"(i8* %"$$g_27_envptr_352", %TName_Nat* %"$n1_353"), !dbg !92 - store { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$$g_27_call_354", { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$g_28", align 8, !dbg !92 + %"$$g_27_call_354" = call { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$$g_27_fptr_351"(i8* %"$$g_27_envptr_352", %TName_Nat* %"$n1_353"), !dbg !158 + store { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$$g_27_call_354", { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$g_28", align 8, !dbg !158 %"$$g_28_355" = load { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$g_28", align 8 - store { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$$g_28_355", { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$retval_116", align 8, !dbg !92 + store { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$$g_28_355", { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$retval_116", align 8, !dbg !158 br label %"$matchsucc_311" "$Zero_356": ; preds = %"$have_gas_309" @@ -1796,7 +1869,7 @@ entry: %"$consume_362" = sub i64 %"$gasrem_358", 1 store i64 %"$consume_362", i64* @_gasrem, align 8 %"$f0_363" = load { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %f0, align 8 - store { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$f0_363", { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$retval_116", align 8, !dbg !93 + store { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$f0_363", { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$retval_116", align 8, !dbg !159 br label %"$matchsucc_311" "$empty_default_314": ; preds = %"$have_gas_309" @@ -1807,7 +1880,7 @@ entry: ret { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$$retval_116_364" } -define internal { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } @"$fundef_113"(%"$$fundef_113_env_250"* %0, { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %1) !dbg !95 { +define internal { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } @"$fundef_113"(%"$$fundef_113_env_250"* %0, { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %1) !dbg !161 { entry: %"$$fundef_113_env_fn_276" = getelementptr inbounds %"$$fundef_113_env_250", %"$$fundef_113_env_250"* %0, i32 0, i32 0 %"$fn_envload_277" = load { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }, { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }* %"$$fundef_113_env_fn_276", align 8 @@ -1853,12 +1926,12 @@ entry: %"$$fundef_115_env_g_297" = getelementptr inbounds %"$$fundef_115_env_249", %"$$fundef_115_env_249"* %"$$fundef_115_envp_290", i32 0, i32 2 %"$g_298" = load { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }, { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }* %g, align 8 store { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } %"$g_298", { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }* %"$$fundef_115_env_g_297", align 8 - store { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$$fundef_115_cloval_293", { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }* %"$retval_114", align 8, !dbg !96 + store { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$$fundef_115_cloval_293", { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }* %"$retval_114", align 8, !dbg !162 %"$$retval_114_299" = load { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }* %"$retval_114", align 8 ret { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$$retval_114_299" } -define internal { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } @"$fundef_111"(%"$$fundef_111_env_251"* %0, { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } %1) !dbg !97 { +define internal { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } @"$fundef_111"(%"$$fundef_111_env_251"* %0, { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } %1) !dbg !163 { entry: %"$retval_112" = alloca { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }, align 8 %"$gasrem_262" = load i64, i64* @_gasrem, align 8 @@ -1878,19 +1951,19 @@ entry: %"$$fundef_113_env_voidp_269" = bitcast %"$$fundef_113_env_250"* %"$$fundef_113_envp_267" to i8* %"$$fundef_113_cloval_270" = insertvalue { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })* bitcast ({ { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (%"$$fundef_113_env_250"*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })* @"$fundef_113" to { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*), i8* undef }, i8* %"$$fundef_113_env_voidp_269", 1 %g = alloca { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }, align 8 - store { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } %"$$fundef_113_cloval_270", { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }* %g, align 8, !dbg !98 + store { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } %"$$fundef_113_cloval_270", { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }* %g, align 8, !dbg !164 %"$$fundef_113_env_fn_271" = getelementptr inbounds %"$$fundef_113_env_250", %"$$fundef_113_env_250"* %"$$fundef_113_envp_267", i32 0, i32 0 store { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } %1, { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }* %"$$fundef_113_env_fn_271", align 8 %"$$fundef_113_env_g_272" = getelementptr inbounds %"$$fundef_113_env_250", %"$$fundef_113_env_250"* %"$$fundef_113_envp_267", i32 0, i32 1 %"$g_273" = load { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }, { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }* %g, align 8 store { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } %"$g_273", { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }* %"$$fundef_113_env_g_272", align 8 %"$g_274" = load { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }, { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }* %g, align 8 - store { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } %"$g_274", { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }* %"$retval_112", align 8, !dbg !98 + store { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } %"$g_274", { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }* %"$retval_112", align 8, !dbg !164 %"$$retval_112_275" = load { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }, { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }* %"$retval_112", align 8 ret { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } %"$$retval_112_275" } -define internal { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*, i8* } @"$fundef_109"(%"$$fundef_109_env_252"* %0) !dbg !99 { +define internal { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*, i8* } @"$fundef_109"(%"$$fundef_109_env_252"* %0) !dbg !165 { entry: %"$retval_110" = alloca { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*, i8* }, align 8 %"$gasrem_253" = load i64, i64* @_gasrem, align 8 @@ -1904,7 +1977,7 @@ entry: "$have_gas_256": ; preds = %"$out_of_gas_255", %entry %"$consume_257" = sub i64 %"$gasrem_253", 1 store i64 %"$consume_257", i64* @_gasrem, align 8 - store { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*, i8* } { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })* bitcast ({ { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (%"$$fundef_111_env_251"*, { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })* @"$fundef_111" to { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*), i8* null }, { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*, i8* }* %"$retval_110", align 8, !dbg !100 + store { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*, i8* } { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })* bitcast ({ { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (%"$$fundef_111_env_251"*, { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })* @"$fundef_111" to { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*), i8* null }, { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*, i8* }* %"$retval_110", align 8, !dbg !166 %"$$retval_110_261" = load { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*, i8* }, { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*, i8* }* %"$retval_110", align 8 ret { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*, i8* } %"$$retval_110_261" } @@ -1913,262 +1986,235 @@ declare void @_out_of_gas() declare i8* @_salloc(i8*, i64) +; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn +declare void @llvm.dbg.declare(metadata, metadata, metadata) #0 + declare %Uint32 @_add_Uint32(%Uint32, %Uint32) -define void @_init_libs() !dbg !101 { +define void @_init_libs() !dbg !167 { entry: - %"$gasrem_1069" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1070" = icmp ugt i64 4, %"$gasrem_1069" - br i1 %"$gascmp_1070", label %"$out_of_gas_1071", label %"$have_gas_1072" - -"$out_of_gas_1071": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_1072" - -"$have_gas_1072": ; preds = %"$out_of_gas_1071", %entry - %"$consume_1073" = sub i64 %"$gasrem_1069", 4 - store i64 %"$consume_1073", i64* @_gasrem, align 8 - store %Int32 { i32 4 }, %Int32* @"$_gas_charge_accrec_lib_5", align 4, !dbg !103 - %"$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 - %"$dyndisp_table_1085_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$dyndisp_table_1085_salloc_salloc" = call i8* @_salloc(i8* %"$dyndisp_table_1085_salloc_load", i64 48) - %"$dyndisp_table_1085_salloc" = bitcast i8* %"$dyndisp_table_1085_salloc_salloc" to [3 x { i8*, i8* }]* - %"$dyndisp_table_1085" = bitcast [3 x { i8*, i8* }]* %"$dyndisp_table_1085_salloc" to { i8*, i8* }* - %"$dyndisp_gep_1086" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_1085", i32 1 - %"$dyndisp_pcast_1087" = bitcast { i8*, i8* }* %"$dyndisp_gep_1086" to { { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*, i8* } (i8*)*, i8* }* - store { { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*, i8* } (i8*)*, i8* } { { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*, i8* } (i8*)* bitcast ({ { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*, i8* } (%"$$fundef_109_env_252"*)* @"$fundef_109" to { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*, i8* } (i8*)*), i8* null }, { { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*, i8* } (i8*)*, i8* }* %"$dyndisp_pcast_1087", align 8 - %"$dyndisp_gep_1088" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_1085", i32 2 - %"$dyndisp_pcast_1089" = bitcast { i8*, i8* }* %"$dyndisp_gep_1088" to { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*)*, i8* }* - store { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*)*, i8* } { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*)* bitcast ({ { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* })*, i8* } (%"$$fundef_117_env_248"*)* @"$fundef_117" to { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*)*), i8* null }, { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*)*, i8* }* %"$dyndisp_pcast_1089", align 8 - store { i8*, i8* }* %"$dyndisp_table_1085", { i8*, i8* }** @nat_fold, align 8, !dbg !104 - %"$gasrem_1090" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1091" = icmp ugt i64 8, %"$gasrem_1090" - br i1 %"$gascmp_1091", label %"$out_of_gas_1092", label %"$have_gas_1093" - -"$out_of_gas_1092": ; preds = %"$have_gas_1077" - call void @_out_of_gas() - br label %"$have_gas_1093" - -"$have_gas_1093": ; preds = %"$out_of_gas_1092", %"$have_gas_1077" - %"$consume_1094" = sub i64 %"$gasrem_1090", 8 - store i64 %"$consume_1094", i64* @_gasrem, align 8 - store %Int32 { i32 8 }, %Int32* @"$_gas_charge_accBoolUtils_0", align 4, !dbg !103 - %"$gasrem_1095" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1096" = icmp ugt i64 196, %"$gasrem_1095" - br i1 %"$gascmp_1096", label %"$out_of_gas_1097", label %"$have_gas_1098" - -"$out_of_gas_1097": ; preds = %"$have_gas_1093" - call void @_out_of_gas() - br label %"$have_gas_1098" - -"$have_gas_1098": ; preds = %"$out_of_gas_1097", %"$have_gas_1093" - %"$consume_1099" = sub i64 %"$gasrem_1095", 196 - store i64 %"$consume_1099", i64* @_gasrem, align 8 - store %Int32 { i32 196 }, %Int32* @"$_gas_charge_accIntUtils_1", align 4, !dbg !103 - %"$gasrem_1100" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1101" = icmp ugt i64 20, %"$gasrem_1100" - br i1 %"$gascmp_1101", label %"$out_of_gas_1102", label %"$have_gas_1103" - -"$out_of_gas_1102": ; preds = %"$have_gas_1098" - call void @_out_of_gas() - br label %"$have_gas_1103" - -"$have_gas_1103": ; preds = %"$out_of_gas_1102", %"$have_gas_1098" - %"$consume_1104" = sub i64 %"$gasrem_1100", 20 - store i64 %"$consume_1104", i64* @_gasrem, align 8 - store %Int32 { i32 20 }, %Int32* @"$_gas_charge_accListUtils_2", align 4, !dbg !103 - %"$gasrem_1105" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1106" = icmp ugt i64 11, %"$gasrem_1105" - br i1 %"$gascmp_1106", label %"$out_of_gas_1107", label %"$have_gas_1108" - -"$out_of_gas_1107": ; preds = %"$have_gas_1103" - call void @_out_of_gas() - br label %"$have_gas_1108" - -"$have_gas_1108": ; preds = %"$out_of_gas_1107", %"$have_gas_1103" - %"$consume_1109" = sub i64 %"$gasrem_1105", 11 - store i64 %"$consume_1109", i64* @_gasrem, align 8 - store %Int32 { i32 11 }, %Int32* @"$_gas_charge_accNatUtils_3", align 4, !dbg !103 - %"$gasrem_1110" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1111" = icmp ugt i64 1, %"$gasrem_1110" - br i1 %"$gascmp_1111", label %"$out_of_gas_1112", label %"$have_gas_1113" - -"$out_of_gas_1112": ; preds = %"$have_gas_1108" - call void @_out_of_gas() - br label %"$have_gas_1113" - -"$have_gas_1113": ; preds = %"$out_of_gas_1112", %"$have_gas_1108" - %"$consume_1114" = sub i64 %"$gasrem_1110", 1 - store i64 %"$consume_1114", i64* @_gasrem, align 8 - %"$nat_fold_6" = alloca { i8*, i8* }*, align 8 - %"$dyndisp_table_1118_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$dyndisp_table_1118_salloc_salloc" = call i8* @_salloc(i8* %"$dyndisp_table_1118_salloc_load", i64 48) - %"$dyndisp_table_1118_salloc" = bitcast i8* %"$dyndisp_table_1118_salloc_salloc" to [3 x { i8*, i8* }]* - %"$dyndisp_table_1118" = bitcast [3 x { i8*, i8* }]* %"$dyndisp_table_1118_salloc" to { i8*, i8* }* - %"$dyndisp_gep_1119" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_1118", i32 0 - %"$dyndisp_pcast_1120" = bitcast { i8*, i8* }* %"$dyndisp_gep_1119" to { { { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* }* - store { { { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* } { { { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } (i8*)* bitcast ({ { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } (%"$$fundef_125_env_244"*)* @"$fundef_125" to { { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } (i8*)*), i8* null }, { { { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* }* %"$dyndisp_pcast_1120", align 8 - store { i8*, i8* }* %"$dyndisp_table_1118", { i8*, i8* }** %"$nat_fold_6", align 8, !dbg !104 - %"$$fundef_133_envp_1121_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_133_envp_1121_salloc" = call i8* @_salloc(i8* %"$$fundef_133_envp_1121_load", i64 8) - %"$$fundef_133_envp_1121" = bitcast i8* %"$$fundef_133_envp_1121_salloc" to %"$$fundef_133_env_240"* - %"$$fundef_133_env_voidp_1123" = bitcast %"$$fundef_133_env_240"* %"$$fundef_133_envp_1121" to i8* - %"$$fundef_133_cloval_1124" = insertvalue { %Uint32 (i8*, %TName_Nat*)*, i8* } { %Uint32 (i8*, %TName_Nat*)* bitcast (%Uint32 (%"$$fundef_133_env_240"*, %TName_Nat*)* @"$fundef_133" to %Uint32 (i8*, %TName_Nat*)*), i8* undef }, i8* %"$$fundef_133_env_voidp_1123", 1 - %"$$fundef_133_env_$nat_fold_6_1125" = getelementptr inbounds %"$$fundef_133_env_240", %"$$fundef_133_env_240"* %"$$fundef_133_envp_1121", i32 0, i32 0 - %"$$nat_fold_6_1126" = load { i8*, i8* }*, { i8*, i8* }** %"$nat_fold_6", align 8 - store { i8*, i8* }* %"$$nat_fold_6_1126", { i8*, i8* }** %"$$fundef_133_env_$nat_fold_6_1125", align 8 - store { %Uint32 (i8*, %TName_Nat*)*, i8* } %"$$fundef_133_cloval_1124", { %Uint32 (i8*, %TName_Nat*)*, i8* }* @NatUtils.nat_to_int, align 8, !dbg !105 + %"$gasrem_1086" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1087" = icmp ugt i64 4, %"$gasrem_1086" + br i1 %"$gascmp_1087", label %"$out_of_gas_1088", label %"$have_gas_1089" + +"$out_of_gas_1088": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_1089" + +"$have_gas_1089": ; preds = %"$out_of_gas_1088", %entry + %"$consume_1090" = sub i64 %"$gasrem_1086", 4 + store i64 %"$consume_1090", i64* @_gasrem, align 8 + store %Int32 { i32 4 }, %Int32* @"$_gas_charge_accrec_lib_5", align 4, !dbg !169 + %"$gasrem_1091" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1092" = icmp ugt i64 1, %"$gasrem_1091" + br i1 %"$gascmp_1092", label %"$out_of_gas_1093", label %"$have_gas_1094" + +"$out_of_gas_1093": ; preds = %"$have_gas_1089" + call void @_out_of_gas() + br label %"$have_gas_1094" + +"$have_gas_1094": ; preds = %"$out_of_gas_1093", %"$have_gas_1089" + %"$consume_1095" = sub i64 %"$gasrem_1091", 1 + store i64 %"$consume_1095", i64* @_gasrem, align 8 + %"$dyndisp_table_1102_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$dyndisp_table_1102_salloc_salloc" = call i8* @_salloc(i8* %"$dyndisp_table_1102_salloc_load", i64 48) + %"$dyndisp_table_1102_salloc" = bitcast i8* %"$dyndisp_table_1102_salloc_salloc" to [3 x { i8*, i8* }]* + %"$dyndisp_table_1102" = bitcast [3 x { i8*, i8* }]* %"$dyndisp_table_1102_salloc" to { i8*, i8* }* + %"$dyndisp_gep_1103" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_1102", i32 1 + %"$dyndisp_pcast_1104" = bitcast { i8*, i8* }* %"$dyndisp_gep_1103" to { { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*, i8* } (i8*)*, i8* }* + store { { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*, i8* } (i8*)*, i8* } { { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*, i8* } (i8*)* bitcast ({ { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*, i8* } (%"$$fundef_109_env_252"*)* @"$fundef_109" to { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*, i8* } (i8*)*), i8* null }, { { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*, i8* } (i8*)*, i8* }* %"$dyndisp_pcast_1104", align 8 + %"$dyndisp_gep_1105" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_1102", i32 2 + %"$dyndisp_pcast_1106" = bitcast { i8*, i8* }* %"$dyndisp_gep_1105" to { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*)*, i8* }* + store { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*)*, i8* } { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*)* bitcast ({ { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* })*, i8* } (%"$$fundef_117_env_248"*)* @"$fundef_117" to { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*)*), i8* null }, { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*)*, i8* }* %"$dyndisp_pcast_1106", align 8 + store { i8*, i8* }* %"$dyndisp_table_1102", { i8*, i8* }** @nat_fold, align 8, !dbg !170 + %"$gasrem_1107" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1108" = icmp ugt i64 8, %"$gasrem_1107" + br i1 %"$gascmp_1108", label %"$out_of_gas_1109", label %"$have_gas_1110" + +"$out_of_gas_1109": ; preds = %"$have_gas_1094" + call void @_out_of_gas() + br label %"$have_gas_1110" + +"$have_gas_1110": ; preds = %"$out_of_gas_1109", %"$have_gas_1094" + %"$consume_1111" = sub i64 %"$gasrem_1107", 8 + store i64 %"$consume_1111", i64* @_gasrem, align 8 + store %Int32 { i32 8 }, %Int32* @"$_gas_charge_accBoolUtils_0", align 4, !dbg !169 + %"$gasrem_1112" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1113" = icmp ugt i64 196, %"$gasrem_1112" + br i1 %"$gascmp_1113", label %"$out_of_gas_1114", label %"$have_gas_1115" + +"$out_of_gas_1114": ; preds = %"$have_gas_1110" + call void @_out_of_gas() + br label %"$have_gas_1115" + +"$have_gas_1115": ; preds = %"$out_of_gas_1114", %"$have_gas_1110" + %"$consume_1116" = sub i64 %"$gasrem_1112", 196 + store i64 %"$consume_1116", i64* @_gasrem, align 8 + store %Int32 { i32 196 }, %Int32* @"$_gas_charge_accIntUtils_1", align 4, !dbg !169 + %"$gasrem_1117" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1118" = icmp ugt i64 20, %"$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", 20 + store i64 %"$consume_1121", i64* @_gasrem, align 8 + store %Int32 { i32 20 }, %Int32* @"$_gas_charge_accListUtils_2", align 4, !dbg !169 + %"$gasrem_1122" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1123" = icmp ugt i64 11, %"$gasrem_1122" + br i1 %"$gascmp_1123", label %"$out_of_gas_1124", label %"$have_gas_1125" + +"$out_of_gas_1124": ; preds = %"$have_gas_1120" + call void @_out_of_gas() + br label %"$have_gas_1125" + +"$have_gas_1125": ; preds = %"$out_of_gas_1124", %"$have_gas_1120" + %"$consume_1126" = sub i64 %"$gasrem_1122", 11 + store i64 %"$consume_1126", i64* @_gasrem, align 8 + store %Int32 { i32 11 }, %Int32* @"$_gas_charge_accNatUtils_3", align 4, !dbg !169 %"$gasrem_1127" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1128" = icmp ugt i64 2, %"$gasrem_1127" + %"$gascmp_1128" = icmp ugt i64 1, %"$gasrem_1127" br i1 %"$gascmp_1128", label %"$out_of_gas_1129", label %"$have_gas_1130" -"$out_of_gas_1129": ; preds = %"$have_gas_1113" +"$out_of_gas_1129": ; preds = %"$have_gas_1125" call void @_out_of_gas() br label %"$have_gas_1130" -"$have_gas_1130": ; preds = %"$out_of_gas_1129", %"$have_gas_1113" - %"$consume_1131" = sub i64 %"$gasrem_1127", 2 +"$have_gas_1130": ; preds = %"$out_of_gas_1129", %"$have_gas_1125" + %"$consume_1131" = sub i64 %"$gasrem_1127", 1 store i64 %"$consume_1131", i64* @_gasrem, align 8 - store %Int32 { i32 2 }, %Int32* @"$_gas_charge_accPairUtils_4", align 4, !dbg !103 + %"$nat_fold_6" = alloca { i8*, i8* }*, align 8 + %"$dyndisp_table_1135_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$dyndisp_table_1135_salloc_salloc" = call i8* @_salloc(i8* %"$dyndisp_table_1135_salloc_load", i64 48) + %"$dyndisp_table_1135_salloc" = bitcast i8* %"$dyndisp_table_1135_salloc_salloc" to [3 x { i8*, i8* }]* + %"$dyndisp_table_1135" = bitcast [3 x { i8*, i8* }]* %"$dyndisp_table_1135_salloc" to { i8*, i8* }* + %"$dyndisp_gep_1136" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_1135", i32 0 + %"$dyndisp_pcast_1137" = bitcast { i8*, i8* }* %"$dyndisp_gep_1136" to { { { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* }* + store { { { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* } { { { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } (i8*)* bitcast ({ { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } (%"$$fundef_125_env_244"*)* @"$fundef_125" to { { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } (i8*)*), i8* null }, { { { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* }* %"$dyndisp_pcast_1137", align 8 + store { i8*, i8* }* %"$dyndisp_table_1135", { i8*, i8* }** %"$nat_fold_6", align 8, !dbg !170 + %"$$fundef_133_envp_1138_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_133_envp_1138_salloc" = call i8* @_salloc(i8* %"$$fundef_133_envp_1138_load", i64 8) + %"$$fundef_133_envp_1138" = bitcast i8* %"$$fundef_133_envp_1138_salloc" to %"$$fundef_133_env_240"* + %"$$fundef_133_env_voidp_1140" = bitcast %"$$fundef_133_env_240"* %"$$fundef_133_envp_1138" to i8* + %"$$fundef_133_cloval_1141" = insertvalue { %Uint32 (i8*, %TName_Nat*)*, i8* } { %Uint32 (i8*, %TName_Nat*)* bitcast (%Uint32 (%"$$fundef_133_env_240"*, %TName_Nat*)* @"$fundef_133" to %Uint32 (i8*, %TName_Nat*)*), i8* undef }, i8* %"$$fundef_133_env_voidp_1140", 1 + %"$$fundef_133_env_$nat_fold_6_1142" = getelementptr inbounds %"$$fundef_133_env_240", %"$$fundef_133_env_240"* %"$$fundef_133_envp_1138", i32 0, i32 0 + %"$$nat_fold_6_1143" = load { i8*, i8* }*, { i8*, i8* }** %"$nat_fold_6", align 8 + store { i8*, i8* }* %"$$nat_fold_6_1143", { i8*, i8* }** %"$$fundef_133_env_$nat_fold_6_1142", align 8 + store { %Uint32 (i8*, %TName_Nat*)*, i8* } %"$$fundef_133_cloval_1141", { %Uint32 (i8*, %TName_Nat*)*, i8* }* @NatUtils.nat_to_int, align 8, !dbg !171 + %"$gasrem_1144" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1145" = icmp ugt i64 2, %"$gasrem_1144" + br i1 %"$gascmp_1145", label %"$out_of_gas_1146", label %"$have_gas_1147" + +"$out_of_gas_1146": ; preds = %"$have_gas_1130" + call void @_out_of_gas() + br label %"$have_gas_1147" + +"$have_gas_1147": ; preds = %"$out_of_gas_1146", %"$have_gas_1130" + %"$consume_1148" = sub i64 %"$gasrem_1144", 2 + store i64 %"$consume_1148", i64* @_gasrem, align 8 + store %Int32 { i32 2 }, %Int32* @"$_gas_charge_accPairUtils_4", align 4, !dbg !169 ret void } -define internal %Uint32 @_scilla_expr_fun(i8* %0) !dbg !106 { +define internal %Uint32 @_scilla_expr_fun(i8* %0) !dbg !172 { entry: %"$expr_139" = alloca %Uint32, 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" + call void @llvm.dbg.declare(metadata %Uint32* %"$expr_139", metadata !173, metadata !DIExpression()), !dbg !174 + %"$gasrem_1149" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1150" = icmp ugt i64 1, %"$gasrem_1149" + br i1 %"$gascmp_1150", label %"$out_of_gas_1151", label %"$have_gas_1152" -"$out_of_gas_1134": ; preds = %entry +"$out_of_gas_1151": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_1135" + br label %"$have_gas_1152" -"$have_gas_1135": ; preds = %"$out_of_gas_1134", %entry - %"$consume_1136" = sub i64 %"$gasrem_1132", 1 - store i64 %"$consume_1136", i64* @_gasrem, align 8 +"$have_gas_1152": ; preds = %"$out_of_gas_1151", %entry + %"$consume_1153" = sub i64 %"$gasrem_1149", 1 + store i64 %"$consume_1153", i64* @_gasrem, align 8 %nat_succ = alloca { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, align 8 - %"$gasrem_1137" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1138" = icmp ugt i64 1, %"$gasrem_1137" - br i1 %"$gascmp_1138", label %"$out_of_gas_1139", label %"$have_gas_1140" + %"$gasrem_1154" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1155" = icmp ugt i64 1, %"$gasrem_1154" + br i1 %"$gascmp_1155", label %"$out_of_gas_1156", label %"$have_gas_1157" -"$out_of_gas_1139": ; preds = %"$have_gas_1135" +"$out_of_gas_1156": ; preds = %"$have_gas_1152" call void @_out_of_gas() - br label %"$have_gas_1140" + br label %"$have_gas_1157" -"$have_gas_1140": ; preds = %"$out_of_gas_1139", %"$have_gas_1135" - %"$consume_1141" = sub i64 %"$gasrem_1137", 1 - store i64 %"$consume_1141", i64* @_gasrem, align 8 - store { %TName_Nat* (i8*, %TName_Nat*)*, i8* } { %TName_Nat* (i8*, %TName_Nat*)* bitcast (%TName_Nat* (%"$$fundef_140_env_237"*, %TName_Nat*)* @"$fundef_140" to %TName_Nat* (i8*, %TName_Nat*)*), i8* null }, { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %nat_succ, align 8, !dbg !107 - %"$gasrem_1145" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1146" = icmp ugt i64 1, %"$gasrem_1145" - br i1 %"$gascmp_1146", label %"$out_of_gas_1147", label %"$have_gas_1148" +"$have_gas_1157": ; preds = %"$out_of_gas_1156", %"$have_gas_1152" + %"$consume_1158" = sub i64 %"$gasrem_1154", 1 + store i64 %"$consume_1158", i64* @_gasrem, align 8 + store { %TName_Nat* (i8*, %TName_Nat*)*, i8* } { %TName_Nat* (i8*, %TName_Nat*)* bitcast (%TName_Nat* (%"$$fundef_140_env_237"*, %TName_Nat*)* @"$fundef_140" to %TName_Nat* (i8*, %TName_Nat*)*), i8* null }, { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %nat_succ, align 8, !dbg !175 + %"$gasrem_1162" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1163" = icmp ugt i64 1, %"$gasrem_1162" + br i1 %"$gascmp_1163", label %"$out_of_gas_1164", label %"$have_gas_1165" -"$out_of_gas_1147": ; preds = %"$have_gas_1140" +"$out_of_gas_1164": ; preds = %"$have_gas_1157" call void @_out_of_gas() - br label %"$have_gas_1148" + br label %"$have_gas_1165" -"$have_gas_1148": ; preds = %"$out_of_gas_1147", %"$have_gas_1140" - %"$consume_1149" = sub i64 %"$gasrem_1145", 1 - store i64 %"$consume_1149", i64* @_gasrem, align 8 +"$have_gas_1165": ; preds = %"$out_of_gas_1164", %"$have_gas_1157" + %"$consume_1166" = sub i64 %"$gasrem_1162", 1 + store i64 %"$consume_1166", i64* @_gasrem, align 8 %nat_iter = alloca { i8*, i8* }*, align 8 - %"$gasrem_1150" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1151" = icmp ugt i64 1, %"$gasrem_1150" - br i1 %"$gascmp_1151", label %"$out_of_gas_1152", label %"$have_gas_1153" - -"$out_of_gas_1152": ; preds = %"$have_gas_1148" - call void @_out_of_gas() - br label %"$have_gas_1153" - -"$have_gas_1153": ; preds = %"$out_of_gas_1152", %"$have_gas_1148" - %"$consume_1154" = sub i64 %"$gasrem_1150", 1 - store i64 %"$consume_1154", i64* @_gasrem, align 8 - %"$$fundef_142_envp_1155_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_142_envp_1155_salloc" = call i8* @_salloc(i8* %"$$fundef_142_envp_1155_load", i64 8) - %"$$fundef_142_envp_1155" = bitcast i8* %"$$fundef_142_envp_1155_salloc" to %"$$fundef_142_env_236"* - %"$$fundef_142_env_voidp_1157" = bitcast %"$$fundef_142_env_236"* %"$$fundef_142_envp_1155" to i8* - %"$$fundef_142_cloval_1158" = insertvalue { { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*, i8* } (i8*)*, i8* } { { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*, i8* } (i8*)* bitcast ({ { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*, i8* } (%"$$fundef_142_env_236"*)* @"$fundef_142" to { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*, i8* } (i8*)*), i8* undef }, i8* %"$$fundef_142_env_voidp_1157", 1 - %"$$fundef_142_env_nat_fold_1159" = getelementptr inbounds %"$$fundef_142_env_236", %"$$fundef_142_env_236"* %"$$fundef_142_envp_1155", i32 0, i32 0 - %"$nat_fold_1160" = load { i8*, i8* }*, { i8*, i8* }** @nat_fold, align 8 - store { i8*, i8* }* %"$nat_fold_1160", { i8*, i8* }** %"$$fundef_142_env_nat_fold_1159", align 8 - %"$$fundef_154_env_voidp_1162" = bitcast %"$$fundef_142_env_236"* %"$$fundef_142_envp_1155" to i8* - %"$$fundef_154_cloval_1163" = insertvalue { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*)*, i8* } { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*)* bitcast ({ { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (%"$$fundef_154_env_230"*)* @"$fundef_154" to { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*)*), i8* undef }, i8* %"$$fundef_154_env_voidp_1162", 1 - %"$dyndisp_table_1164_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$dyndisp_table_1164_salloc_salloc" = call i8* @_salloc(i8* %"$dyndisp_table_1164_salloc_load", i64 48) - %"$dyndisp_table_1164_salloc" = bitcast i8* %"$dyndisp_table_1164_salloc_salloc" to [3 x { i8*, i8* }]* - %"$dyndisp_table_1164" = bitcast [3 x { i8*, i8* }]* %"$dyndisp_table_1164_salloc" to { i8*, i8* }* - %"$dyndisp_gep_1165" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_1164", i32 1 - %"$dyndisp_pcast_1166" = bitcast { i8*, i8* }* %"$dyndisp_gep_1165" to { { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*, i8* } (i8*)*, i8* }* - store { { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*, i8* } (i8*)*, i8* } %"$$fundef_142_cloval_1158", { { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*, i8* } (i8*)*, i8* }* %"$dyndisp_pcast_1166", align 8 - %"$dyndisp_gep_1167" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_1164", i32 2 - %"$dyndisp_pcast_1168" = bitcast { i8*, i8* }* %"$dyndisp_gep_1167" to { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*)*, i8* }* - store { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*)*, i8* } %"$$fundef_154_cloval_1163", { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*)*, i8* }* %"$dyndisp_pcast_1168", align 8 - store { i8*, i8* }* %"$dyndisp_table_1164", { i8*, i8* }** %nat_iter, align 8, !dbg !108 - %"$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 = %"$have_gas_1153" - call void @_out_of_gas() - br label %"$have_gas_1172" - -"$have_gas_1172": ; preds = %"$out_of_gas_1171", %"$have_gas_1153" - %"$consume_1173" = sub i64 %"$gasrem_1169", 1 - store i64 %"$consume_1173", i64* @_gasrem, align 8 + %"$gasrem_1167" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1168" = icmp ugt i64 1, %"$gasrem_1167" + br i1 %"$gascmp_1168", label %"$out_of_gas_1169", label %"$have_gas_1170" + +"$out_of_gas_1169": ; preds = %"$have_gas_1165" + call void @_out_of_gas() + br label %"$have_gas_1170" + +"$have_gas_1170": ; preds = %"$out_of_gas_1169", %"$have_gas_1165" + %"$consume_1171" = sub i64 %"$gasrem_1167", 1 + store i64 %"$consume_1171", i64* @_gasrem, align 8 + %"$$fundef_142_envp_1172_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_142_envp_1172_salloc" = call i8* @_salloc(i8* %"$$fundef_142_envp_1172_load", i64 8) + %"$$fundef_142_envp_1172" = bitcast i8* %"$$fundef_142_envp_1172_salloc" to %"$$fundef_142_env_236"* + %"$$fundef_142_env_voidp_1174" = bitcast %"$$fundef_142_env_236"* %"$$fundef_142_envp_1172" to i8* + %"$$fundef_142_cloval_1175" = insertvalue { { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*, i8* } (i8*)*, i8* } { { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*, i8* } (i8*)* bitcast ({ { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*, i8* } (%"$$fundef_142_env_236"*)* @"$fundef_142" to { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*, i8* } (i8*)*), i8* undef }, i8* %"$$fundef_142_env_voidp_1174", 1 + %"$$fundef_142_env_nat_fold_1176" = getelementptr inbounds %"$$fundef_142_env_236", %"$$fundef_142_env_236"* %"$$fundef_142_envp_1172", i32 0, i32 0 + %"$nat_fold_1177" = load { i8*, i8* }*, { i8*, i8* }** @nat_fold, align 8 + store { i8*, i8* }* %"$nat_fold_1177", { i8*, i8* }** %"$$fundef_142_env_nat_fold_1176", align 8 + %"$$fundef_154_env_voidp_1179" = bitcast %"$$fundef_142_env_236"* %"$$fundef_142_envp_1172" to i8* + %"$$fundef_154_cloval_1180" = insertvalue { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*)*, i8* } { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*)* bitcast ({ { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (%"$$fundef_154_env_230"*)* @"$fundef_154" to { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*)*), i8* undef }, i8* %"$$fundef_154_env_voidp_1179", 1 + %"$dyndisp_table_1181_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$dyndisp_table_1181_salloc_salloc" = call i8* @_salloc(i8* %"$dyndisp_table_1181_salloc_load", i64 48) + %"$dyndisp_table_1181_salloc" = bitcast i8* %"$dyndisp_table_1181_salloc_salloc" to [3 x { i8*, i8* }]* + %"$dyndisp_table_1181" = bitcast [3 x { i8*, i8* }]* %"$dyndisp_table_1181_salloc" to { i8*, i8* }* + %"$dyndisp_gep_1182" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_1181", i32 1 + %"$dyndisp_pcast_1183" = bitcast { i8*, i8* }* %"$dyndisp_gep_1182" to { { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*, i8* } (i8*)*, i8* }* + store { { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*, i8* } (i8*)*, i8* } %"$$fundef_142_cloval_1175", { { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*, i8* } (i8*)*, i8* }* %"$dyndisp_pcast_1183", align 8 + %"$dyndisp_gep_1184" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_1181", i32 2 + %"$dyndisp_pcast_1185" = bitcast { i8*, i8* }* %"$dyndisp_gep_1184" to { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*)*, i8* }* + store { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*)*, i8* } %"$$fundef_154_cloval_1180", { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*)*, i8* }* %"$dyndisp_pcast_1185", align 8 + store { i8*, i8* }* %"$dyndisp_table_1181", { i8*, i8* }** %nat_iter, align 8, !dbg !176 + %"$gasrem_1186" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1187" = icmp ugt i64 1, %"$gasrem_1186" + br i1 %"$gascmp_1187", label %"$out_of_gas_1188", label %"$have_gas_1189" + +"$out_of_gas_1188": ; preds = %"$have_gas_1170" + call void @_out_of_gas() + br label %"$have_gas_1189" + +"$have_gas_1189": ; preds = %"$out_of_gas_1188", %"$have_gas_1170" + %"$consume_1190" = sub i64 %"$gasrem_1186", 1 + store i64 %"$consume_1190", i64* @_gasrem, align 8 %ackermann = alloca { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, 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 - %iter_nat = alloca { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }, 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_1177" - call void @_out_of_gas() - br label %"$have_gas_1182" - -"$have_gas_1182": ; preds = %"$out_of_gas_1181", %"$have_gas_1177" - %"$consume_1183" = sub i64 %"$gasrem_1179", 1 - store i64 %"$consume_1183", i64* @_gasrem, align 8 - %"$nat_iter_1184" = load { i8*, i8* }*, { i8*, i8* }** %nat_iter, align 8 - %"$nat_iter_1185" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$nat_iter_1184", i32 2 - %"$nat_iter_1186" = bitcast { i8*, i8* }* %"$nat_iter_1185" to { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*)*, i8* }* - %"$nat_iter_1187" = load { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*)*, i8* }, { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*)*, i8* }* %"$nat_iter_1186", align 8 - %"$nat_iter_fptr_1188" = extractvalue { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*)*, i8* } %"$nat_iter_1187", 0 - %"$nat_iter_envptr_1189" = extractvalue { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*)*, i8* } %"$nat_iter_1187", 1 - %"$nat_iter_call_1190" = call { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } %"$nat_iter_fptr_1188"(i8* %"$nat_iter_envptr_1189"), !dbg !109 - store { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } %"$nat_iter_call_1190", { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }* %iter_nat, align 8, !dbg !110 %"$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_1193": ; preds = %"$have_gas_1182" +"$out_of_gas_1193": ; preds = %"$have_gas_1189" call void @_out_of_gas() br label %"$have_gas_1194" -"$have_gas_1194": ; preds = %"$out_of_gas_1193", %"$have_gas_1182" +"$have_gas_1194": ; preds = %"$out_of_gas_1193", %"$have_gas_1189" %"$consume_1195" = sub i64 %"$gasrem_1191", 1 store i64 %"$consume_1195", i64* @_gasrem, align 8 - %iter_nat_nat = alloca { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*, i8* }, align 8 + %iter_nat = alloca { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }, 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" @@ -2181,13 +2227,13 @@ entry: %"$consume_1200" = sub i64 %"$gasrem_1196", 1 store i64 %"$consume_1200", i64* @_gasrem, align 8 %"$nat_iter_1201" = load { i8*, i8* }*, { i8*, i8* }** %nat_iter, align 8 - %"$nat_iter_1202" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$nat_iter_1201", i32 1 - %"$nat_iter_1203" = bitcast { i8*, i8* }* %"$nat_iter_1202" to { { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*, i8* } (i8*)*, i8* }* - %"$nat_iter_1204" = load { { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*, i8* } (i8*)*, i8* }, { { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*, i8* } (i8*)*, i8* }* %"$nat_iter_1203", align 8 - %"$nat_iter_fptr_1205" = extractvalue { { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*, i8* } (i8*)*, i8* } %"$nat_iter_1204", 0 - %"$nat_iter_envptr_1206" = extractvalue { { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*, i8* } (i8*)*, i8* } %"$nat_iter_1204", 1 - %"$nat_iter_call_1207" = call { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*, i8* } %"$nat_iter_fptr_1205"(i8* %"$nat_iter_envptr_1206"), !dbg !111 - store { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*, i8* } %"$nat_iter_call_1207", { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*, i8* }* %iter_nat_nat, align 8, !dbg !112 + %"$nat_iter_1202" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$nat_iter_1201", i32 2 + %"$nat_iter_1203" = bitcast { i8*, i8* }* %"$nat_iter_1202" to { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*)*, i8* }* + %"$nat_iter_1204" = load { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*)*, i8* }, { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*)*, i8* }* %"$nat_iter_1203", align 8 + %"$nat_iter_fptr_1205" = extractvalue { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*)*, i8* } %"$nat_iter_1204", 0 + %"$nat_iter_envptr_1206" = extractvalue { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*)*, i8* } %"$nat_iter_1204", 1 + %"$nat_iter_call_1207" = call { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } %"$nat_iter_fptr_1205"(i8* %"$nat_iter_envptr_1206"), !dbg !177 + store { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } %"$nat_iter_call_1207", { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }* %iter_nat, align 8, !dbg !178 %"$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" @@ -2199,7 +2245,7 @@ entry: "$have_gas_1211": ; preds = %"$out_of_gas_1210", %"$have_gas_1199" %"$consume_1212" = sub i64 %"$gasrem_1208", 1 store i64 %"$consume_1212", i64* @_gasrem, align 8 - %zero = alloca %TName_Nat*, align 8 + %iter_nat_nat = alloca { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*, i8* }, align 8 %"$gasrem_1213" = load i64, i64* @_gasrem, align 8 %"$gascmp_1214" = icmp ugt i64 1, %"$gasrem_1213" br i1 %"$gascmp_1214", label %"$out_of_gas_1215", label %"$have_gas_1216" @@ -2211,271 +2257,280 @@ entry: "$have_gas_1216": ; preds = %"$out_of_gas_1215", %"$have_gas_1211" %"$consume_1217" = sub i64 %"$gasrem_1213", 1 store i64 %"$consume_1217", i64* @_gasrem, align 8 - %"$adtval_1218_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_1218_salloc" = call i8* @_salloc(i8* %"$adtval_1218_load", i64 1) - %"$adtval_1218" = bitcast i8* %"$adtval_1218_salloc" to %CName_Zero* - %"$adtgep_1219" = getelementptr inbounds %CName_Zero, %CName_Zero* %"$adtval_1218", i32 0, i32 0 - store i8 0, i8* %"$adtgep_1219", align 1 - %"$adtptr_1220" = bitcast %CName_Zero* %"$adtval_1218" to %TName_Nat* - store %TName_Nat* %"$adtptr_1220", %TName_Nat** %zero, align 8, !dbg !113 - %"$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" - -"$out_of_gas_1223": ; preds = %"$have_gas_1216" - call void @_out_of_gas() - br label %"$have_gas_1224" - -"$have_gas_1224": ; preds = %"$out_of_gas_1223", %"$have_gas_1216" - %"$consume_1225" = sub i64 %"$gasrem_1221", 1 - store i64 %"$consume_1225", i64* @_gasrem, align 8 + %"$nat_iter_1218" = load { i8*, i8* }*, { i8*, i8* }** %nat_iter, align 8 + %"$nat_iter_1219" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$nat_iter_1218", i32 1 + %"$nat_iter_1220" = bitcast { i8*, i8* }* %"$nat_iter_1219" to { { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*, i8* } (i8*)*, i8* }* + %"$nat_iter_1221" = load { { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*, i8* } (i8*)*, i8* }, { { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*, i8* } (i8*)*, i8* }* %"$nat_iter_1220", align 8 + %"$nat_iter_fptr_1222" = extractvalue { { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*, i8* } (i8*)*, i8* } %"$nat_iter_1221", 0 + %"$nat_iter_envptr_1223" = extractvalue { { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*, i8* } (i8*)*, i8* } %"$nat_iter_1221", 1 + %"$nat_iter_call_1224" = call { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*, i8* } %"$nat_iter_fptr_1222"(i8* %"$nat_iter_envptr_1223"), !dbg !179 + store { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*, i8* } %"$nat_iter_call_1224", { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*, i8* }* %iter_nat_nat, align 8, !dbg !180 + %"$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" + +"$out_of_gas_1227": ; preds = %"$have_gas_1216" + call void @_out_of_gas() + br label %"$have_gas_1228" + +"$have_gas_1228": ; preds = %"$out_of_gas_1227", %"$have_gas_1216" + %"$consume_1229" = sub i64 %"$gasrem_1225", 1 + store i64 %"$consume_1229", i64* @_gasrem, align 8 + %zero = alloca %TName_Nat*, align 8 + call void @llvm.dbg.declare(metadata %TName_Nat** %zero, metadata !181, metadata !DIExpression()), !dbg !182 + %"$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" + +"$out_of_gas_1232": ; preds = %"$have_gas_1228" + call void @_out_of_gas() + br label %"$have_gas_1233" + +"$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 + %"$adtval_1235_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_1235_salloc" = call i8* @_salloc(i8* %"$adtval_1235_load", i64 1) + %"$adtval_1235" = bitcast i8* %"$adtval_1235_salloc" to %CName_Zero* + %"$adtgep_1236" = getelementptr inbounds %CName_Zero, %CName_Zero* %"$adtval_1235", i32 0, i32 0 + store i8 0, i8* %"$adtgep_1236", align 1 + %"$adtptr_1237" = bitcast %CName_Zero* %"$adtval_1235" to %TName_Nat* + store %TName_Nat* %"$adtptr_1237", %TName_Nat** %zero, align 8, !dbg !183 + %"$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_1233" + call void @_out_of_gas() + br label %"$have_gas_1241" + +"$have_gas_1241": ; preds = %"$out_of_gas_1240", %"$have_gas_1233" + %"$consume_1242" = sub i64 %"$gasrem_1238", 1 + store i64 %"$consume_1242", i64* @_gasrem, align 8 %one = alloca %TName_Nat*, 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 - %"$zero_1231" = load %TName_Nat*, %TName_Nat** %zero, align 8 - %"$adtval_1232_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_1232_salloc" = call i8* @_salloc(i8* %"$adtval_1232_load", i64 9) - %"$adtval_1232" = bitcast i8* %"$adtval_1232_salloc" to %CName_Succ* - %"$adtgep_1233" = getelementptr inbounds %CName_Succ, %CName_Succ* %"$adtval_1232", i32 0, i32 0 - store i8 1, i8* %"$adtgep_1233", align 1 - %"$adtgep_1234" = getelementptr inbounds %CName_Succ, %CName_Succ* %"$adtval_1232", i32 0, i32 1 - store %TName_Nat* %"$zero_1231", %TName_Nat** %"$adtgep_1234", align 8 - %"$adtptr_1235" = bitcast %CName_Succ* %"$adtval_1232" to %TName_Nat* - store %TName_Nat* %"$adtptr_1235", %TName_Nat** %one, align 8, !dbg !114 - %"$gasrem_1236" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1237" = icmp ugt i64 1, %"$gasrem_1236" - br i1 %"$gascmp_1237", label %"$out_of_gas_1238", label %"$have_gas_1239" - -"$out_of_gas_1238": ; preds = %"$have_gas_1229" - call void @_out_of_gas() - br label %"$have_gas_1239" - -"$have_gas_1239": ; preds = %"$out_of_gas_1238", %"$have_gas_1229" - %"$consume_1240" = sub i64 %"$gasrem_1236", 1 - store i64 %"$consume_1240", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Nat** %one, metadata !184, metadata !DIExpression()), !dbg !185 + %"$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" + +"$out_of_gas_1245": ; preds = %"$have_gas_1241" + call void @_out_of_gas() + br label %"$have_gas_1246" + +"$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 + %"$zero_1248" = load %TName_Nat*, %TName_Nat** %zero, align 8 + %"$adtval_1249_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_1249_salloc" = call i8* @_salloc(i8* %"$adtval_1249_load", i64 9) + %"$adtval_1249" = bitcast i8* %"$adtval_1249_salloc" to %CName_Succ* + %"$adtgep_1250" = getelementptr inbounds %CName_Succ, %CName_Succ* %"$adtval_1249", i32 0, i32 0 + store i8 1, i8* %"$adtgep_1250", align 1 + %"$adtgep_1251" = getelementptr inbounds %CName_Succ, %CName_Succ* %"$adtval_1249", i32 0, i32 1 + store %TName_Nat* %"$zero_1248", %TName_Nat** %"$adtgep_1251", align 8 + %"$adtptr_1252" = bitcast %CName_Succ* %"$adtval_1249" to %TName_Nat* + store %TName_Nat* %"$adtptr_1252", %TName_Nat** %one, align 8, !dbg !186 + %"$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_1255": ; preds = %"$have_gas_1246" + call void @_out_of_gas() + br label %"$have_gas_1256" + +"$have_gas_1256": ; preds = %"$out_of_gas_1255", %"$have_gas_1246" + %"$consume_1257" = sub i64 %"$gasrem_1253", 1 + store i64 %"$consume_1257", i64* @_gasrem, align 8 %f = alloca { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }, align 8 - %"$gasrem_1241" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1242" = icmp ugt i64 1, %"$gasrem_1241" - br i1 %"$gascmp_1242", label %"$out_of_gas_1243", label %"$have_gas_1244" - -"$out_of_gas_1243": ; preds = %"$have_gas_1239" - call void @_out_of_gas() - br label %"$have_gas_1244" - -"$have_gas_1244": ; preds = %"$out_of_gas_1243", %"$have_gas_1239" - %"$consume_1245" = sub i64 %"$gasrem_1241", 1 - store i64 %"$consume_1245", i64* @_gasrem, align 8 - %"$$fundef_166_envp_1246_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_166_envp_1246_salloc" = call i8* @_salloc(i8* %"$$fundef_166_envp_1246_load", i64 24) - %"$$fundef_166_envp_1246" = bitcast i8* %"$$fundef_166_envp_1246_salloc" to %"$$fundef_166_env_224"* - %"$$fundef_166_env_voidp_1248" = bitcast %"$$fundef_166_env_224"* %"$$fundef_166_envp_1246" to i8* - %"$$fundef_166_cloval_1249" = insertvalue { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })* bitcast ({ %TName_Nat* (i8*, %TName_Nat*)*, i8* } (%"$$fundef_166_env_224"*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })* @"$fundef_166" to { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*), i8* undef }, i8* %"$$fundef_166_env_voidp_1248", 1 - %"$$fundef_166_env_iter_nat_1250" = getelementptr inbounds %"$$fundef_166_env_224", %"$$fundef_166_env_224"* %"$$fundef_166_envp_1246", i32 0, i32 0 - %"$iter_nat_1251" = load { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }, { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }* %iter_nat, align 8 - store { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } %"$iter_nat_1251", { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }* %"$$fundef_166_env_iter_nat_1250", align 8 - %"$$fundef_166_env_one_1252" = getelementptr inbounds %"$$fundef_166_env_224", %"$$fundef_166_env_224"* %"$$fundef_166_envp_1246", i32 0, i32 1 - %"$one_1253" = load %TName_Nat*, %TName_Nat** %one, align 8 - store %TName_Nat* %"$one_1253", %TName_Nat** %"$$fundef_166_env_one_1252", align 8 - store { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } %"$$fundef_166_cloval_1249", { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }* %f, align 8, !dbg !115 - %"$gasrem_1254" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1255" = icmp ugt i64 1, %"$gasrem_1254" - br i1 %"$gascmp_1255", label %"$out_of_gas_1256", label %"$have_gas_1257" - -"$out_of_gas_1256": ; preds = %"$have_gas_1244" - call void @_out_of_gas() - br label %"$have_gas_1257" - -"$have_gas_1257": ; preds = %"$out_of_gas_1256", %"$have_gas_1244" - %"$consume_1258" = sub i64 %"$gasrem_1254", 1 - store i64 %"$consume_1258", i64* @_gasrem, align 8 - %"$$fundef_170_envp_1259_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_170_envp_1259_salloc" = call i8* @_salloc(i8* %"$$fundef_170_envp_1259_load", i64 48) - %"$$fundef_170_envp_1259" = bitcast i8* %"$$fundef_170_envp_1259_salloc" to %"$$fundef_170_env_222"* - %"$$fundef_170_env_voidp_1261" = bitcast %"$$fundef_170_env_222"* %"$$fundef_170_envp_1259" to i8* - %"$$fundef_170_cloval_1262" = insertvalue { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)* bitcast ({ %TName_Nat* (i8*, %TName_Nat*)*, i8* } (%"$$fundef_170_env_222"*, %TName_Nat*)* @"$fundef_170" to { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*), i8* undef }, i8* %"$$fundef_170_env_voidp_1261", 1 - %"$$fundef_170_env_f_1263" = getelementptr inbounds %"$$fundef_170_env_222", %"$$fundef_170_env_222"* %"$$fundef_170_envp_1259", i32 0, i32 0 - %"$f_1264" = load { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }* %f, align 8 - store { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } %"$f_1264", { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }* %"$$fundef_170_env_f_1263", align 8 - %"$$fundef_170_env_iter_nat_nat_1265" = getelementptr inbounds %"$$fundef_170_env_222", %"$$fundef_170_env_222"* %"$$fundef_170_envp_1259", i32 0, i32 1 - %"$iter_nat_nat_1266" = load { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*, i8* }, { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*, i8* }* %iter_nat_nat, align 8 - store { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*, i8* } %"$iter_nat_nat_1266", { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*, i8* }* %"$$fundef_170_env_iter_nat_nat_1265", align 8 - %"$$fundef_170_env_nat_succ_1267" = getelementptr inbounds %"$$fundef_170_env_222", %"$$fundef_170_env_222"* %"$$fundef_170_envp_1259", i32 0, i32 2 - %"$nat_succ_1268" = load { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %nat_succ, align 8 - store { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$nat_succ_1268", { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$$fundef_170_env_nat_succ_1267", align 8 - store { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$$fundef_170_cloval_1262", { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }* %ackermann, align 8, !dbg !116 - %"$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" - -"$out_of_gas_1271": ; preds = %"$have_gas_1257" - call void @_out_of_gas() - br label %"$have_gas_1272" - -"$have_gas_1272": ; preds = %"$out_of_gas_1271", %"$have_gas_1257" - %"$consume_1273" = sub i64 %"$gasrem_1269", 1 - store i64 %"$consume_1273", i64* @_gasrem, align 8 + %"$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_1260": ; preds = %"$have_gas_1256" + call void @_out_of_gas() + br label %"$have_gas_1261" + +"$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 + %"$$fundef_166_envp_1263_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_166_envp_1263_salloc" = call i8* @_salloc(i8* %"$$fundef_166_envp_1263_load", i64 24) + %"$$fundef_166_envp_1263" = bitcast i8* %"$$fundef_166_envp_1263_salloc" to %"$$fundef_166_env_224"* + %"$$fundef_166_env_voidp_1265" = bitcast %"$$fundef_166_env_224"* %"$$fundef_166_envp_1263" to i8* + %"$$fundef_166_cloval_1266" = insertvalue { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })* bitcast ({ %TName_Nat* (i8*, %TName_Nat*)*, i8* } (%"$$fundef_166_env_224"*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })* @"$fundef_166" to { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*), i8* undef }, i8* %"$$fundef_166_env_voidp_1265", 1 + %"$$fundef_166_env_iter_nat_1267" = getelementptr inbounds %"$$fundef_166_env_224", %"$$fundef_166_env_224"* %"$$fundef_166_envp_1263", i32 0, i32 0 + %"$iter_nat_1268" = load { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }, { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }* %iter_nat, align 8 + store { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } %"$iter_nat_1268", { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }* %"$$fundef_166_env_iter_nat_1267", align 8 + %"$$fundef_166_env_one_1269" = getelementptr inbounds %"$$fundef_166_env_224", %"$$fundef_166_env_224"* %"$$fundef_166_envp_1263", i32 0, i32 1 + %"$one_1270" = load %TName_Nat*, %TName_Nat** %one, align 8 + store %TName_Nat* %"$one_1270", %TName_Nat** %"$$fundef_166_env_one_1269", align 8 + store { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } %"$$fundef_166_cloval_1266", { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }* %f, align 8, !dbg !187 + %"$gasrem_1271" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1272" = icmp ugt i64 1, %"$gasrem_1271" + br i1 %"$gascmp_1272", label %"$out_of_gas_1273", label %"$have_gas_1274" + +"$out_of_gas_1273": ; preds = %"$have_gas_1261" + call void @_out_of_gas() + br label %"$have_gas_1274" + +"$have_gas_1274": ; preds = %"$out_of_gas_1273", %"$have_gas_1261" + %"$consume_1275" = sub i64 %"$gasrem_1271", 1 + store i64 %"$consume_1275", i64* @_gasrem, align 8 + %"$$fundef_170_envp_1276_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_170_envp_1276_salloc" = call i8* @_salloc(i8* %"$$fundef_170_envp_1276_load", i64 48) + %"$$fundef_170_envp_1276" = bitcast i8* %"$$fundef_170_envp_1276_salloc" to %"$$fundef_170_env_222"* + %"$$fundef_170_env_voidp_1278" = bitcast %"$$fundef_170_env_222"* %"$$fundef_170_envp_1276" to i8* + %"$$fundef_170_cloval_1279" = insertvalue { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)* bitcast ({ %TName_Nat* (i8*, %TName_Nat*)*, i8* } (%"$$fundef_170_env_222"*, %TName_Nat*)* @"$fundef_170" to { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*), i8* undef }, i8* %"$$fundef_170_env_voidp_1278", 1 + %"$$fundef_170_env_f_1280" = getelementptr inbounds %"$$fundef_170_env_222", %"$$fundef_170_env_222"* %"$$fundef_170_envp_1276", i32 0, i32 0 + %"$f_1281" = load { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }* %f, align 8 + store { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } %"$f_1281", { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }* %"$$fundef_170_env_f_1280", align 8 + %"$$fundef_170_env_iter_nat_nat_1282" = getelementptr inbounds %"$$fundef_170_env_222", %"$$fundef_170_env_222"* %"$$fundef_170_envp_1276", i32 0, i32 1 + %"$iter_nat_nat_1283" = load { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*, i8* }, { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*, i8* }* %iter_nat_nat, align 8 + store { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*, i8* } %"$iter_nat_nat_1283", { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*, i8* }* %"$$fundef_170_env_iter_nat_nat_1282", align 8 + %"$$fundef_170_env_nat_succ_1284" = getelementptr inbounds %"$$fundef_170_env_222", %"$$fundef_170_env_222"* %"$$fundef_170_envp_1276", i32 0, i32 2 + %"$nat_succ_1285" = load { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %nat_succ, align 8 + store { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$nat_succ_1285", { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$$fundef_170_env_nat_succ_1284", align 8 + store { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$$fundef_170_cloval_1279", { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }* %ackermann, align 8, !dbg !188 + %"$gasrem_1286" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1287" = icmp ugt i64 1, %"$gasrem_1286" + br i1 %"$gascmp_1287", label %"$out_of_gas_1288", label %"$have_gas_1289" + +"$out_of_gas_1288": ; preds = %"$have_gas_1274" + call void @_out_of_gas() + br label %"$have_gas_1289" + +"$have_gas_1289": ; preds = %"$out_of_gas_1288", %"$have_gas_1274" + %"$consume_1290" = sub i64 %"$gasrem_1286", 1 + store i64 %"$consume_1290", i64* @_gasrem, align 8 %uint0 = alloca %Uint32, 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" + call void @llvm.dbg.declare(metadata %Uint32* %uint0, metadata !189, metadata !DIExpression()), !dbg !190 + %"$gasrem_1291" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1292" = icmp ugt i64 1, %"$gasrem_1291" + br i1 %"$gascmp_1292", label %"$out_of_gas_1293", label %"$have_gas_1294" -"$out_of_gas_1276": ; preds = %"$have_gas_1272" +"$out_of_gas_1293": ; preds = %"$have_gas_1289" call void @_out_of_gas() - br label %"$have_gas_1277" + br label %"$have_gas_1294" -"$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 %Uint32 zeroinitializer, %Uint32* %uint0, align 4, !dbg !117 - %"$gasrem_1279" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1280" = icmp ugt i64 1, %"$gasrem_1279" - br i1 %"$gascmp_1280", label %"$out_of_gas_1281", label %"$have_gas_1282" +"$have_gas_1294": ; preds = %"$out_of_gas_1293", %"$have_gas_1289" + %"$consume_1295" = sub i64 %"$gasrem_1291", 1 + store i64 %"$consume_1295", i64* @_gasrem, align 8 + store %Uint32 zeroinitializer, %Uint32* %uint0, align 4, !dbg !191 + %"$gasrem_1296" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1297" = icmp ugt i64 1, %"$gasrem_1296" + br i1 %"$gascmp_1297", label %"$out_of_gas_1298", label %"$have_gas_1299" -"$out_of_gas_1281": ; preds = %"$have_gas_1277" +"$out_of_gas_1298": ; preds = %"$have_gas_1294" call void @_out_of_gas() - br label %"$have_gas_1282" + br label %"$have_gas_1299" -"$have_gas_1282": ; preds = %"$out_of_gas_1281", %"$have_gas_1277" - %"$consume_1283" = sub i64 %"$gasrem_1279", 1 - store i64 %"$consume_1283", i64* @_gasrem, align 8 +"$have_gas_1299": ; preds = %"$out_of_gas_1298", %"$have_gas_1294" + %"$consume_1300" = sub i64 %"$gasrem_1296", 1 + store i64 %"$consume_1300", i64* @_gasrem, align 8 %uint1 = alloca %Uint32, align 8 - %"$gasrem_1284" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1285" = icmp ugt i64 1, %"$gasrem_1284" - br i1 %"$gascmp_1285", label %"$out_of_gas_1286", label %"$have_gas_1287" + call void @llvm.dbg.declare(metadata %Uint32* %uint1, metadata !192, metadata !DIExpression()), !dbg !193 + %"$gasrem_1301" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1302" = icmp ugt i64 1, %"$gasrem_1301" + br i1 %"$gascmp_1302", label %"$out_of_gas_1303", label %"$have_gas_1304" -"$out_of_gas_1286": ; preds = %"$have_gas_1282" +"$out_of_gas_1303": ; preds = %"$have_gas_1299" call void @_out_of_gas() - br label %"$have_gas_1287" + br label %"$have_gas_1304" -"$have_gas_1287": ; preds = %"$out_of_gas_1286", %"$have_gas_1282" - %"$consume_1288" = sub i64 %"$gasrem_1284", 1 - store i64 %"$consume_1288", i64* @_gasrem, align 8 - store %Uint32 { i32 1 }, %Uint32* %uint1, align 4, !dbg !118 - %"$gasrem_1289" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1290" = icmp ugt i64 1, %"$gasrem_1289" - br i1 %"$gascmp_1290", label %"$out_of_gas_1291", label %"$have_gas_1292" +"$have_gas_1304": ; preds = %"$out_of_gas_1303", %"$have_gas_1299" + %"$consume_1305" = sub i64 %"$gasrem_1301", 1 + store i64 %"$consume_1305", i64* @_gasrem, align 8 + store %Uint32 { i32 1 }, %Uint32* %uint1, align 4, !dbg !194 + %"$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_1291": ; preds = %"$have_gas_1287" +"$out_of_gas_1308": ; preds = %"$have_gas_1304" call void @_out_of_gas() - br label %"$have_gas_1292" + br label %"$have_gas_1309" -"$have_gas_1292": ; preds = %"$out_of_gas_1291", %"$have_gas_1287" - %"$consume_1293" = sub i64 %"$gasrem_1289", 1 - store i64 %"$consume_1293", i64* @_gasrem, align 8 +"$have_gas_1309": ; preds = %"$out_of_gas_1308", %"$have_gas_1304" + %"$consume_1310" = sub i64 %"$gasrem_1306", 1 + store i64 %"$consume_1310", i64* @_gasrem, align 8 %uint2 = alloca %Uint32, align 8 - %"$gasrem_1294" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1295" = icmp ugt i64 1, %"$gasrem_1294" - br i1 %"$gascmp_1295", label %"$out_of_gas_1296", label %"$have_gas_1297" + call void @llvm.dbg.declare(metadata %Uint32* %uint2, metadata !195, metadata !DIExpression()), !dbg !196 + %"$gasrem_1311" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1312" = icmp ugt i64 1, %"$gasrem_1311" + br i1 %"$gascmp_1312", label %"$out_of_gas_1313", label %"$have_gas_1314" -"$out_of_gas_1296": ; preds = %"$have_gas_1292" +"$out_of_gas_1313": ; preds = %"$have_gas_1309" call void @_out_of_gas() - br label %"$have_gas_1297" + br label %"$have_gas_1314" -"$have_gas_1297": ; preds = %"$out_of_gas_1296", %"$have_gas_1292" - %"$consume_1298" = sub i64 %"$gasrem_1294", 1 - store i64 %"$consume_1298", i64* @_gasrem, align 8 - store %Uint32 { i32 2 }, %Uint32* %uint2, align 4, !dbg !119 - %"$gasrem_1299" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1300" = icmp ugt i64 1, %"$gasrem_1299" - br i1 %"$gascmp_1300", label %"$out_of_gas_1301", label %"$have_gas_1302" +"$have_gas_1314": ; preds = %"$out_of_gas_1313", %"$have_gas_1309" + %"$consume_1315" = sub i64 %"$gasrem_1311", 1 + store i64 %"$consume_1315", i64* @_gasrem, align 8 + store %Uint32 { i32 2 }, %Uint32* %uint2, align 4, !dbg !197 + %"$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_1301": ; preds = %"$have_gas_1297" +"$out_of_gas_1318": ; preds = %"$have_gas_1314" call void @_out_of_gas() - br label %"$have_gas_1302" + br label %"$have_gas_1319" -"$have_gas_1302": ; preds = %"$out_of_gas_1301", %"$have_gas_1297" - %"$consume_1303" = sub i64 %"$gasrem_1299", 1 - store i64 %"$consume_1303", i64* @_gasrem, align 8 +"$have_gas_1319": ; preds = %"$out_of_gas_1318", %"$have_gas_1314" + %"$consume_1320" = sub i64 %"$gasrem_1316", 1 + store i64 %"$consume_1320", i64* @_gasrem, align 8 %uint3 = alloca %Uint32, align 8 - %"$gasrem_1304" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1305" = icmp ugt i64 1, %"$gasrem_1304" - br i1 %"$gascmp_1305", label %"$out_of_gas_1306", label %"$have_gas_1307" + call void @llvm.dbg.declare(metadata %Uint32* %uint3, metadata !198, metadata !DIExpression()), !dbg !199 + %"$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_1306": ; preds = %"$have_gas_1302" +"$out_of_gas_1323": ; preds = %"$have_gas_1319" call void @_out_of_gas() - br label %"$have_gas_1307" + br label %"$have_gas_1324" -"$have_gas_1307": ; preds = %"$out_of_gas_1306", %"$have_gas_1302" - %"$consume_1308" = sub i64 %"$gasrem_1304", 1 - store i64 %"$consume_1308", i64* @_gasrem, align 8 - store %Uint32 { i32 3 }, %Uint32* %uint3, align 4, !dbg !120 - %"$gasrem_1309" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1310" = icmp ugt i64 1, %"$gasrem_1309" - br i1 %"$gascmp_1310", label %"$out_of_gas_1311", label %"$have_gas_1312" +"$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 + store %Uint32 { i32 3 }, %Uint32* %uint3, align 4, !dbg !200 + %"$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_1311": ; preds = %"$have_gas_1307" +"$out_of_gas_1328": ; preds = %"$have_gas_1324" call void @_out_of_gas() - br label %"$have_gas_1312" + br label %"$have_gas_1329" -"$have_gas_1312": ; preds = %"$out_of_gas_1311", %"$have_gas_1307" - %"$consume_1313" = sub i64 %"$gasrem_1309", 1 - store i64 %"$consume_1313", i64* @_gasrem, align 8 +"$have_gas_1329": ; preds = %"$out_of_gas_1328", %"$have_gas_1324" + %"$consume_1330" = sub i64 %"$gasrem_1326", 1 + store i64 %"$consume_1330", i64* @_gasrem, align 8 %uint4 = alloca %Uint32, align 8 - %"$gasrem_1314" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1315" = icmp ugt i64 1, %"$gasrem_1314" - br i1 %"$gascmp_1315", label %"$out_of_gas_1316", label %"$have_gas_1317" + call void @llvm.dbg.declare(metadata %Uint32* %uint4, metadata !201, metadata !DIExpression()), !dbg !202 + %"$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_1316": ; preds = %"$have_gas_1312" +"$out_of_gas_1333": ; preds = %"$have_gas_1329" call void @_out_of_gas() - br label %"$have_gas_1317" - -"$have_gas_1317": ; preds = %"$out_of_gas_1316", %"$have_gas_1312" - %"$consume_1318" = sub i64 %"$gasrem_1314", 1 - store i64 %"$consume_1318", i64* @_gasrem, align 8 - store %Uint32 { i32 4 }, %Uint32* %uint4, align 4, !dbg !121 - %"$gasrem_1319" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1320" = icmp ugt i64 1, %"$gasrem_1319" - br i1 %"$gascmp_1320", label %"$out_of_gas_1321", label %"$have_gas_1322" + br label %"$have_gas_1334" -"$out_of_gas_1321": ; preds = %"$have_gas_1317" - call void @_out_of_gas() - br label %"$have_gas_1322" - -"$have_gas_1322": ; preds = %"$out_of_gas_1321", %"$have_gas_1317" - %"$consume_1323" = sub i64 %"$gasrem_1319", 1 - store i64 %"$consume_1323", i64* @_gasrem, align 8 - %n0 = alloca %TName_Nat*, align 8 - %"$uint0_1324" = load %Uint32, %Uint32* %uint0, align 4 - %"$valueof_1325" = extractvalue %Uint32 %"$uint0_1324", 0 - %"$valueof_1326" = zext i32 %"$valueof_1325" to i64 - %"$gasrem_1327" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1328" = icmp ugt i64 %"$valueof_1326", %"$gasrem_1327" - br i1 %"$gascmp_1328", label %"$out_of_gas_1329", label %"$have_gas_1330" - -"$out_of_gas_1329": ; preds = %"$have_gas_1322" - call void @_out_of_gas() - br label %"$have_gas_1330" - -"$have_gas_1330": ; preds = %"$out_of_gas_1329", %"$have_gas_1322" - %"$consume_1331" = sub i64 %"$gasrem_1327", %"$valueof_1326" - store i64 %"$consume_1331", i64* @_gasrem, align 8 - %"$execptr_load_1332" = load i8*, i8** @_execptr, align 8 - %"$uint0_1333" = load %Uint32, %Uint32* %uint0, align 4 - %"$to_nat_call_1334" = call %TName_Nat* @_to_nat(i8* %"$execptr_load_1332", %Uint32 %"$uint0_1333"), !dbg !122 - store %TName_Nat* %"$to_nat_call_1334", %TName_Nat** %n0, align 8, !dbg !122 +"$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 + store %Uint32 { i32 4 }, %Uint32* %uint4, align 4, !dbg !203 %"$gasrem_1336" = load i64, i64* @_gasrem, align 8 %"$gascmp_1337" = icmp ugt i64 1, %"$gasrem_1336" br i1 %"$gascmp_1337", label %"$out_of_gas_1338", label %"$have_gas_1339" -"$out_of_gas_1338": ; preds = %"$have_gas_1330" +"$out_of_gas_1338": ; preds = %"$have_gas_1334" call void @_out_of_gas() br label %"$have_gas_1339" -"$have_gas_1339": ; preds = %"$out_of_gas_1338", %"$have_gas_1330" +"$have_gas_1339": ; preds = %"$out_of_gas_1338", %"$have_gas_1334" %"$consume_1340" = sub i64 %"$gasrem_1336", 1 store i64 %"$consume_1340", i64* @_gasrem, align 8 - %n1 = alloca %TName_Nat*, align 8 - %"$uint1_1341" = load %Uint32, %Uint32* %uint1, align 4 - %"$valueof_1342" = extractvalue %Uint32 %"$uint1_1341", 0 + %n0 = alloca %TName_Nat*, align 8 + call void @llvm.dbg.declare(metadata %TName_Nat** %n0, metadata !204, metadata !DIExpression()), !dbg !205 + %"$uint0_1341" = load %Uint32, %Uint32* %uint0, align 4 + %"$valueof_1342" = extractvalue %Uint32 %"$uint0_1341", 0 %"$valueof_1343" = zext i32 %"$valueof_1342" to i64 %"$gasrem_1344" = load i64, i64* @_gasrem, align 8 %"$gascmp_1345" = icmp ugt i64 %"$valueof_1343", %"$gasrem_1344" @@ -2489,9 +2544,9 @@ entry: %"$consume_1348" = sub i64 %"$gasrem_1344", %"$valueof_1343" store i64 %"$consume_1348", i64* @_gasrem, align 8 %"$execptr_load_1349" = load i8*, i8** @_execptr, align 8 - %"$uint1_1350" = load %Uint32, %Uint32* %uint1, align 4 - %"$to_nat_call_1351" = call %TName_Nat* @_to_nat(i8* %"$execptr_load_1349", %Uint32 %"$uint1_1350"), !dbg !123 - store %TName_Nat* %"$to_nat_call_1351", %TName_Nat** %n1, align 8, !dbg !123 + %"$uint0_1350" = load %Uint32, %Uint32* %uint0, align 4 + %"$to_nat_call_1351" = call %TName_Nat* @_to_nat(i8* %"$execptr_load_1349", %Uint32 %"$uint0_1350"), !dbg !206 + store %TName_Nat* %"$to_nat_call_1351", %TName_Nat** %n0, align 8, !dbg !206 %"$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" @@ -2503,9 +2558,10 @@ entry: "$have_gas_1356": ; preds = %"$out_of_gas_1355", %"$have_gas_1347" %"$consume_1357" = sub i64 %"$gasrem_1353", 1 store i64 %"$consume_1357", i64* @_gasrem, align 8 - %n2 = alloca %TName_Nat*, align 8 - %"$uint2_1358" = load %Uint32, %Uint32* %uint2, align 4 - %"$valueof_1359" = extractvalue %Uint32 %"$uint2_1358", 0 + %n1 = alloca %TName_Nat*, align 8 + call void @llvm.dbg.declare(metadata %TName_Nat** %n1, metadata !207, metadata !DIExpression()), !dbg !208 + %"$uint1_1358" = load %Uint32, %Uint32* %uint1, align 4 + %"$valueof_1359" = extractvalue %Uint32 %"$uint1_1358", 0 %"$valueof_1360" = zext i32 %"$valueof_1359" to i64 %"$gasrem_1361" = load i64, i64* @_gasrem, align 8 %"$gascmp_1362" = icmp ugt i64 %"$valueof_1360", %"$gasrem_1361" @@ -2519,9 +2575,9 @@ entry: %"$consume_1365" = sub i64 %"$gasrem_1361", %"$valueof_1360" store i64 %"$consume_1365", i64* @_gasrem, align 8 %"$execptr_load_1366" = load i8*, i8** @_execptr, align 8 - %"$uint2_1367" = load %Uint32, %Uint32* %uint2, align 4 - %"$to_nat_call_1368" = call %TName_Nat* @_to_nat(i8* %"$execptr_load_1366", %Uint32 %"$uint2_1367"), !dbg !124 - store %TName_Nat* %"$to_nat_call_1368", %TName_Nat** %n2, align 8, !dbg !124 + %"$uint1_1367" = load %Uint32, %Uint32* %uint1, align 4 + %"$to_nat_call_1368" = call %TName_Nat* @_to_nat(i8* %"$execptr_load_1366", %Uint32 %"$uint1_1367"), !dbg !209 + store %TName_Nat* %"$to_nat_call_1368", %TName_Nat** %n1, align 8, !dbg !209 %"$gasrem_1370" = load i64, i64* @_gasrem, align 8 %"$gascmp_1371" = icmp ugt i64 1, %"$gasrem_1370" br i1 %"$gascmp_1371", label %"$out_of_gas_1372", label %"$have_gas_1373" @@ -2533,9 +2589,10 @@ entry: "$have_gas_1373": ; preds = %"$out_of_gas_1372", %"$have_gas_1364" %"$consume_1374" = sub i64 %"$gasrem_1370", 1 store i64 %"$consume_1374", i64* @_gasrem, align 8 - %n3 = alloca %TName_Nat*, align 8 - %"$uint3_1375" = load %Uint32, %Uint32* %uint3, align 4 - %"$valueof_1376" = extractvalue %Uint32 %"$uint3_1375", 0 + %n2 = alloca %TName_Nat*, align 8 + call void @llvm.dbg.declare(metadata %TName_Nat** %n2, metadata !210, metadata !DIExpression()), !dbg !211 + %"$uint2_1375" = load %Uint32, %Uint32* %uint2, align 4 + %"$valueof_1376" = extractvalue %Uint32 %"$uint2_1375", 0 %"$valueof_1377" = zext i32 %"$valueof_1376" to i64 %"$gasrem_1378" = load i64, i64* @_gasrem, align 8 %"$gascmp_1379" = icmp ugt i64 %"$valueof_1377", %"$gasrem_1378" @@ -2549,9 +2606,9 @@ entry: %"$consume_1382" = sub i64 %"$gasrem_1378", %"$valueof_1377" store i64 %"$consume_1382", i64* @_gasrem, align 8 %"$execptr_load_1383" = load i8*, i8** @_execptr, align 8 - %"$uint3_1384" = load %Uint32, %Uint32* %uint3, align 4 - %"$to_nat_call_1385" = call %TName_Nat* @_to_nat(i8* %"$execptr_load_1383", %Uint32 %"$uint3_1384"), !dbg !125 - store %TName_Nat* %"$to_nat_call_1385", %TName_Nat** %n3, align 8, !dbg !125 + %"$uint2_1384" = load %Uint32, %Uint32* %uint2, align 4 + %"$to_nat_call_1385" = call %TName_Nat* @_to_nat(i8* %"$execptr_load_1383", %Uint32 %"$uint2_1384"), !dbg !212 + store %TName_Nat* %"$to_nat_call_1385", %TName_Nat** %n2, align 8, !dbg !212 %"$gasrem_1387" = load i64, i64* @_gasrem, align 8 %"$gascmp_1388" = icmp ugt i64 1, %"$gasrem_1387" br i1 %"$gascmp_1388", label %"$out_of_gas_1389", label %"$have_gas_1390" @@ -2563,9 +2620,10 @@ entry: "$have_gas_1390": ; preds = %"$out_of_gas_1389", %"$have_gas_1381" %"$consume_1391" = sub i64 %"$gasrem_1387", 1 store i64 %"$consume_1391", i64* @_gasrem, align 8 - %n4 = alloca %TName_Nat*, align 8 - %"$uint4_1392" = load %Uint32, %Uint32* %uint4, align 4 - %"$valueof_1393" = extractvalue %Uint32 %"$uint4_1392", 0 + %n3 = alloca %TName_Nat*, align 8 + call void @llvm.dbg.declare(metadata %TName_Nat** %n3, metadata !213, metadata !DIExpression()), !dbg !214 + %"$uint3_1392" = load %Uint32, %Uint32* %uint3, align 4 + %"$valueof_1393" = extractvalue %Uint32 %"$uint3_1392", 0 %"$valueof_1394" = zext i32 %"$valueof_1393" to i64 %"$gasrem_1395" = load i64, i64* @_gasrem, align 8 %"$gascmp_1396" = icmp ugt i64 %"$valueof_1394", %"$gasrem_1395" @@ -2579,9 +2637,9 @@ entry: %"$consume_1399" = sub i64 %"$gasrem_1395", %"$valueof_1394" store i64 %"$consume_1399", i64* @_gasrem, align 8 %"$execptr_load_1400" = load i8*, i8** @_execptr, align 8 - %"$uint4_1401" = load %Uint32, %Uint32* %uint4, align 4 - %"$to_nat_call_1402" = call %TName_Nat* @_to_nat(i8* %"$execptr_load_1400", %Uint32 %"$uint4_1401"), !dbg !126 - store %TName_Nat* %"$to_nat_call_1402", %TName_Nat** %n4, align 8, !dbg !126 + %"$uint3_1401" = load %Uint32, %Uint32* %uint3, align 4 + %"$to_nat_call_1402" = call %TName_Nat* @_to_nat(i8* %"$execptr_load_1400", %Uint32 %"$uint3_1401"), !dbg !215 + store %TName_Nat* %"$to_nat_call_1402", %TName_Nat** %n3, align 8, !dbg !215 %"$gasrem_1404" = load i64, i64* @_gasrem, align 8 %"$gascmp_1405" = icmp ugt i64 1, %"$gasrem_1404" br i1 %"$gascmp_1405", label %"$out_of_gas_1406", label %"$have_gas_1407" @@ -2593,1982 +2651,2114 @@ entry: "$have_gas_1407": ; preds = %"$out_of_gas_1406", %"$have_gas_1398" %"$consume_1408" = sub i64 %"$gasrem_1404", 1 store i64 %"$consume_1408", i64* @_gasrem, align 8 + %n4 = alloca %TName_Nat*, align 8 + call void @llvm.dbg.declare(metadata %TName_Nat** %n4, metadata !216, metadata !DIExpression()), !dbg !217 + %"$uint4_1409" = load %Uint32, %Uint32* %uint4, align 4 + %"$valueof_1410" = extractvalue %Uint32 %"$uint4_1409", 0 + %"$valueof_1411" = zext i32 %"$valueof_1410" to i64 + %"$gasrem_1412" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1413" = icmp ugt i64 %"$valueof_1411", %"$gasrem_1412" + br i1 %"$gascmp_1413", label %"$out_of_gas_1414", label %"$have_gas_1415" + +"$out_of_gas_1414": ; preds = %"$have_gas_1407" + call void @_out_of_gas() + br label %"$have_gas_1415" + +"$have_gas_1415": ; preds = %"$out_of_gas_1414", %"$have_gas_1407" + %"$consume_1416" = sub i64 %"$gasrem_1412", %"$valueof_1411" + store i64 %"$consume_1416", i64* @_gasrem, align 8 + %"$execptr_load_1417" = load i8*, i8** @_execptr, align 8 + %"$uint4_1418" = load %Uint32, %Uint32* %uint4, align 4 + %"$to_nat_call_1419" = call %TName_Nat* @_to_nat(i8* %"$execptr_load_1417", %Uint32 %"$uint4_1418"), !dbg !218 + store %TName_Nat* %"$to_nat_call_1419", %TName_Nat** %n4, align 8, !dbg !218 + %"$gasrem_1421" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1422" = icmp ugt i64 1, %"$gasrem_1421" + br i1 %"$gascmp_1422", label %"$out_of_gas_1423", label %"$have_gas_1424" + +"$out_of_gas_1423": ; preds = %"$have_gas_1415" + call void @_out_of_gas() + br label %"$have_gas_1424" + +"$have_gas_1424": ; preds = %"$out_of_gas_1423", %"$have_gas_1415" + %"$consume_1425" = sub i64 %"$gasrem_1421", 1 + store i64 %"$consume_1425", i64* @_gasrem, align 8 %ack00 = alloca %TName_Nat*, align 8 - %"$gasrem_1409" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1410" = icmp ugt i64 1, %"$gasrem_1409" - br i1 %"$gascmp_1410", label %"$out_of_gas_1411", label %"$have_gas_1412" + call void @llvm.dbg.declare(metadata %TName_Nat** %ack00, metadata !219, metadata !DIExpression()), !dbg !220 + %"$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" -"$out_of_gas_1411": ; preds = %"$have_gas_1407" +"$out_of_gas_1428": ; preds = %"$have_gas_1424" call void @_out_of_gas() - br label %"$have_gas_1412" + br label %"$have_gas_1429" -"$have_gas_1412": ; preds = %"$out_of_gas_1411", %"$have_gas_1407" - %"$consume_1413" = sub i64 %"$gasrem_1409", 1 - store i64 %"$consume_1413", i64* @_gasrem, align 8 +"$have_gas_1429": ; preds = %"$out_of_gas_1428", %"$have_gas_1424" + %"$consume_1430" = sub i64 %"$gasrem_1426", 1 + store i64 %"$consume_1430", i64* @_gasrem, align 8 %"$ackermann_47" = alloca { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, align 8 - %"$ackermann_1414" = load { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }* %ackermann, align 8 - %"$ackermann_fptr_1415" = extractvalue { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$ackermann_1414", 0 - %"$ackermann_envptr_1416" = extractvalue { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$ackermann_1414", 1 - %"$n0_1417" = load %TName_Nat*, %TName_Nat** %n0, align 8 - %"$ackermann_call_1418" = call { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$ackermann_fptr_1415"(i8* %"$ackermann_envptr_1416", %TName_Nat* %"$n0_1417"), !dbg !127 - store { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$ackermann_call_1418", { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$ackermann_47", align 8, !dbg !127 + %"$ackermann_1431" = load { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }* %ackermann, align 8 + %"$ackermann_fptr_1432" = extractvalue { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$ackermann_1431", 0 + %"$ackermann_envptr_1433" = extractvalue { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$ackermann_1431", 1 + %"$n0_1434" = load %TName_Nat*, %TName_Nat** %n0, align 8 + %"$ackermann_call_1435" = call { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$ackermann_fptr_1432"(i8* %"$ackermann_envptr_1433", %TName_Nat* %"$n0_1434"), !dbg !221 + store { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$ackermann_call_1435", { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$ackermann_47", align 8, !dbg !221 %"$ackermann_48" = alloca %TName_Nat*, align 8 - %"$$ackermann_47_1419" = load { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$ackermann_47", align 8 - %"$$ackermann_47_fptr_1420" = extractvalue { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$$ackermann_47_1419", 0 - %"$$ackermann_47_envptr_1421" = extractvalue { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$$ackermann_47_1419", 1 - %"$n0_1422" = load %TName_Nat*, %TName_Nat** %n0, align 8 - %"$$ackermann_47_call_1423" = call %TName_Nat* %"$$ackermann_47_fptr_1420"(i8* %"$$ackermann_47_envptr_1421", %TName_Nat* %"$n0_1422"), !dbg !127 - store %TName_Nat* %"$$ackermann_47_call_1423", %TName_Nat** %"$ackermann_48", align 8, !dbg !127 - %"$$ackermann_48_1424" = load %TName_Nat*, %TName_Nat** %"$ackermann_48", align 8 - store %TName_Nat* %"$$ackermann_48_1424", %TName_Nat** %ack00, align 8, !dbg !127 - %"$gasrem_1425" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1426" = icmp ugt i64 1, %"$gasrem_1425" - br i1 %"$gascmp_1426", label %"$out_of_gas_1427", label %"$have_gas_1428" - -"$out_of_gas_1427": ; preds = %"$have_gas_1412" - call void @_out_of_gas() - br label %"$have_gas_1428" - -"$have_gas_1428": ; preds = %"$out_of_gas_1427", %"$have_gas_1412" - %"$consume_1429" = sub i64 %"$gasrem_1425", 1 - store i64 %"$consume_1429", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Nat** %"$ackermann_48", metadata !222, metadata !DIExpression()), !dbg !221 + %"$$ackermann_47_1436" = load { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$ackermann_47", align 8 + %"$$ackermann_47_fptr_1437" = extractvalue { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$$ackermann_47_1436", 0 + %"$$ackermann_47_envptr_1438" = extractvalue { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$$ackermann_47_1436", 1 + %"$n0_1439" = load %TName_Nat*, %TName_Nat** %n0, align 8 + %"$$ackermann_47_call_1440" = call %TName_Nat* %"$$ackermann_47_fptr_1437"(i8* %"$$ackermann_47_envptr_1438", %TName_Nat* %"$n0_1439"), !dbg !221 + store %TName_Nat* %"$$ackermann_47_call_1440", %TName_Nat** %"$ackermann_48", align 8, !dbg !221 + %"$$ackermann_48_1441" = load %TName_Nat*, %TName_Nat** %"$ackermann_48", align 8 + store %TName_Nat* %"$$ackermann_48_1441", %TName_Nat** %ack00, align 8, !dbg !221 + %"$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 = %"$have_gas_1429" + call void @_out_of_gas() + br label %"$have_gas_1445" + +"$have_gas_1445": ; preds = %"$out_of_gas_1444", %"$have_gas_1429" + %"$consume_1446" = sub i64 %"$gasrem_1442", 1 + store i64 %"$consume_1446", i64* @_gasrem, align 8 %ack01 = alloca %TName_Nat*, align 8 - %"$gasrem_1430" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1431" = icmp ugt i64 1, %"$gasrem_1430" - br i1 %"$gascmp_1431", label %"$out_of_gas_1432", label %"$have_gas_1433" + call void @llvm.dbg.declare(metadata %TName_Nat** %ack01, metadata !223, metadata !DIExpression()), !dbg !224 + %"$gasrem_1447" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1448" = icmp ugt i64 1, %"$gasrem_1447" + br i1 %"$gascmp_1448", label %"$out_of_gas_1449", label %"$have_gas_1450" -"$out_of_gas_1432": ; preds = %"$have_gas_1428" +"$out_of_gas_1449": ; preds = %"$have_gas_1445" call void @_out_of_gas() - br label %"$have_gas_1433" + br label %"$have_gas_1450" -"$have_gas_1433": ; preds = %"$out_of_gas_1432", %"$have_gas_1428" - %"$consume_1434" = sub i64 %"$gasrem_1430", 1 - store i64 %"$consume_1434", i64* @_gasrem, align 8 +"$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 %"$ackermann_49" = alloca { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, align 8 - %"$ackermann_1435" = load { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }* %ackermann, align 8 - %"$ackermann_fptr_1436" = extractvalue { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$ackermann_1435", 0 - %"$ackermann_envptr_1437" = extractvalue { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$ackermann_1435", 1 - %"$n0_1438" = load %TName_Nat*, %TName_Nat** %n0, align 8 - %"$ackermann_call_1439" = call { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$ackermann_fptr_1436"(i8* %"$ackermann_envptr_1437", %TName_Nat* %"$n0_1438"), !dbg !128 - store { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$ackermann_call_1439", { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$ackermann_49", align 8, !dbg !128 + %"$ackermann_1452" = load { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }* %ackermann, align 8 + %"$ackermann_fptr_1453" = extractvalue { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$ackermann_1452", 0 + %"$ackermann_envptr_1454" = extractvalue { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$ackermann_1452", 1 + %"$n0_1455" = load %TName_Nat*, %TName_Nat** %n0, align 8 + %"$ackermann_call_1456" = call { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$ackermann_fptr_1453"(i8* %"$ackermann_envptr_1454", %TName_Nat* %"$n0_1455"), !dbg !225 + store { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$ackermann_call_1456", { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$ackermann_49", align 8, !dbg !225 %"$ackermann_50" = alloca %TName_Nat*, align 8 - %"$$ackermann_49_1440" = load { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$ackermann_49", align 8 - %"$$ackermann_49_fptr_1441" = extractvalue { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$$ackermann_49_1440", 0 - %"$$ackermann_49_envptr_1442" = extractvalue { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$$ackermann_49_1440", 1 - %"$n1_1443" = load %TName_Nat*, %TName_Nat** %n1, align 8 - %"$$ackermann_49_call_1444" = call %TName_Nat* %"$$ackermann_49_fptr_1441"(i8* %"$$ackermann_49_envptr_1442", %TName_Nat* %"$n1_1443"), !dbg !128 - store %TName_Nat* %"$$ackermann_49_call_1444", %TName_Nat** %"$ackermann_50", align 8, !dbg !128 - %"$$ackermann_50_1445" = load %TName_Nat*, %TName_Nat** %"$ackermann_50", align 8 - store %TName_Nat* %"$$ackermann_50_1445", %TName_Nat** %ack01, align 8, !dbg !128 - %"$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_1433" - call void @_out_of_gas() - br label %"$have_gas_1449" - -"$have_gas_1449": ; preds = %"$out_of_gas_1448", %"$have_gas_1433" - %"$consume_1450" = sub i64 %"$gasrem_1446", 1 - store i64 %"$consume_1450", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Nat** %"$ackermann_50", metadata !226, metadata !DIExpression()), !dbg !225 + %"$$ackermann_49_1457" = load { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$ackermann_49", align 8 + %"$$ackermann_49_fptr_1458" = extractvalue { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$$ackermann_49_1457", 0 + %"$$ackermann_49_envptr_1459" = extractvalue { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$$ackermann_49_1457", 1 + %"$n1_1460" = load %TName_Nat*, %TName_Nat** %n1, align 8 + %"$$ackermann_49_call_1461" = call %TName_Nat* %"$$ackermann_49_fptr_1458"(i8* %"$$ackermann_49_envptr_1459", %TName_Nat* %"$n1_1460"), !dbg !225 + store %TName_Nat* %"$$ackermann_49_call_1461", %TName_Nat** %"$ackermann_50", align 8, !dbg !225 + %"$$ackermann_50_1462" = load %TName_Nat*, %TName_Nat** %"$ackermann_50", align 8 + store %TName_Nat* %"$$ackermann_50_1462", %TName_Nat** %ack01, align 8, !dbg !225 + %"$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 = %"$have_gas_1450" + call void @_out_of_gas() + br label %"$have_gas_1466" + +"$have_gas_1466": ; preds = %"$out_of_gas_1465", %"$have_gas_1450" + %"$consume_1467" = sub i64 %"$gasrem_1463", 1 + store i64 %"$consume_1467", i64* @_gasrem, align 8 %ack02 = alloca %TName_Nat*, align 8 - %"$gasrem_1451" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1452" = icmp ugt i64 1, %"$gasrem_1451" - br i1 %"$gascmp_1452", label %"$out_of_gas_1453", label %"$have_gas_1454" + call void @llvm.dbg.declare(metadata %TName_Nat** %ack02, metadata !227, metadata !DIExpression()), !dbg !228 + %"$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_1453": ; preds = %"$have_gas_1449" +"$out_of_gas_1470": ; preds = %"$have_gas_1466" call void @_out_of_gas() - br label %"$have_gas_1454" + br label %"$have_gas_1471" -"$have_gas_1454": ; preds = %"$out_of_gas_1453", %"$have_gas_1449" - %"$consume_1455" = sub i64 %"$gasrem_1451", 1 - store i64 %"$consume_1455", i64* @_gasrem, align 8 +"$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 %"$ackermann_51" = alloca { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, align 8 - %"$ackermann_1456" = load { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }* %ackermann, align 8 - %"$ackermann_fptr_1457" = extractvalue { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$ackermann_1456", 0 - %"$ackermann_envptr_1458" = extractvalue { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$ackermann_1456", 1 - %"$n0_1459" = load %TName_Nat*, %TName_Nat** %n0, align 8 - %"$ackermann_call_1460" = call { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$ackermann_fptr_1457"(i8* %"$ackermann_envptr_1458", %TName_Nat* %"$n0_1459"), !dbg !129 - store { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$ackermann_call_1460", { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$ackermann_51", align 8, !dbg !129 + %"$ackermann_1473" = load { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }* %ackermann, align 8 + %"$ackermann_fptr_1474" = extractvalue { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$ackermann_1473", 0 + %"$ackermann_envptr_1475" = extractvalue { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$ackermann_1473", 1 + %"$n0_1476" = load %TName_Nat*, %TName_Nat** %n0, align 8 + %"$ackermann_call_1477" = call { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$ackermann_fptr_1474"(i8* %"$ackermann_envptr_1475", %TName_Nat* %"$n0_1476"), !dbg !229 + store { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$ackermann_call_1477", { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$ackermann_51", align 8, !dbg !229 %"$ackermann_52" = alloca %TName_Nat*, align 8 - %"$$ackermann_51_1461" = load { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$ackermann_51", align 8 - %"$$ackermann_51_fptr_1462" = extractvalue { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$$ackermann_51_1461", 0 - %"$$ackermann_51_envptr_1463" = extractvalue { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$$ackermann_51_1461", 1 - %"$n2_1464" = load %TName_Nat*, %TName_Nat** %n2, align 8 - %"$$ackermann_51_call_1465" = call %TName_Nat* %"$$ackermann_51_fptr_1462"(i8* %"$$ackermann_51_envptr_1463", %TName_Nat* %"$n2_1464"), !dbg !129 - store %TName_Nat* %"$$ackermann_51_call_1465", %TName_Nat** %"$ackermann_52", align 8, !dbg !129 - %"$$ackermann_52_1466" = load %TName_Nat*, %TName_Nat** %"$ackermann_52", align 8 - store %TName_Nat* %"$$ackermann_52_1466", %TName_Nat** %ack02, align 8, !dbg !129 - %"$gasrem_1467" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1468" = icmp ugt i64 1, %"$gasrem_1467" - br i1 %"$gascmp_1468", label %"$out_of_gas_1469", label %"$have_gas_1470" - -"$out_of_gas_1469": ; preds = %"$have_gas_1454" - call void @_out_of_gas() - br label %"$have_gas_1470" - -"$have_gas_1470": ; preds = %"$out_of_gas_1469", %"$have_gas_1454" - %"$consume_1471" = sub i64 %"$gasrem_1467", 1 - store i64 %"$consume_1471", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Nat** %"$ackermann_52", metadata !230, metadata !DIExpression()), !dbg !229 + %"$$ackermann_51_1478" = load { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$ackermann_51", align 8 + %"$$ackermann_51_fptr_1479" = extractvalue { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$$ackermann_51_1478", 0 + %"$$ackermann_51_envptr_1480" = extractvalue { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$$ackermann_51_1478", 1 + %"$n2_1481" = load %TName_Nat*, %TName_Nat** %n2, align 8 + %"$$ackermann_51_call_1482" = call %TName_Nat* %"$$ackermann_51_fptr_1479"(i8* %"$$ackermann_51_envptr_1480", %TName_Nat* %"$n2_1481"), !dbg !229 + store %TName_Nat* %"$$ackermann_51_call_1482", %TName_Nat** %"$ackermann_52", align 8, !dbg !229 + %"$$ackermann_52_1483" = load %TName_Nat*, %TName_Nat** %"$ackermann_52", align 8 + store %TName_Nat* %"$$ackermann_52_1483", %TName_Nat** %ack02, align 8, !dbg !229 + %"$gasrem_1484" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1485" = icmp ugt i64 1, %"$gasrem_1484" + br i1 %"$gascmp_1485", label %"$out_of_gas_1486", label %"$have_gas_1487" + +"$out_of_gas_1486": ; preds = %"$have_gas_1471" + call void @_out_of_gas() + br label %"$have_gas_1487" + +"$have_gas_1487": ; preds = %"$out_of_gas_1486", %"$have_gas_1471" + %"$consume_1488" = sub i64 %"$gasrem_1484", 1 + store i64 %"$consume_1488", i64* @_gasrem, align 8 %ack03 = alloca %TName_Nat*, align 8 - %"$gasrem_1472" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1473" = icmp ugt i64 1, %"$gasrem_1472" - br i1 %"$gascmp_1473", label %"$out_of_gas_1474", label %"$have_gas_1475" + call void @llvm.dbg.declare(metadata %TName_Nat** %ack03, metadata !231, metadata !DIExpression()), !dbg !232 + %"$gasrem_1489" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1490" = icmp ugt i64 1, %"$gasrem_1489" + br i1 %"$gascmp_1490", label %"$out_of_gas_1491", label %"$have_gas_1492" -"$out_of_gas_1474": ; preds = %"$have_gas_1470" +"$out_of_gas_1491": ; preds = %"$have_gas_1487" call void @_out_of_gas() - br label %"$have_gas_1475" + br label %"$have_gas_1492" -"$have_gas_1475": ; preds = %"$out_of_gas_1474", %"$have_gas_1470" - %"$consume_1476" = sub i64 %"$gasrem_1472", 1 - store i64 %"$consume_1476", i64* @_gasrem, align 8 +"$have_gas_1492": ; preds = %"$out_of_gas_1491", %"$have_gas_1487" + %"$consume_1493" = sub i64 %"$gasrem_1489", 1 + store i64 %"$consume_1493", i64* @_gasrem, align 8 %"$ackermann_53" = alloca { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, align 8 - %"$ackermann_1477" = load { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }* %ackermann, align 8 - %"$ackermann_fptr_1478" = extractvalue { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$ackermann_1477", 0 - %"$ackermann_envptr_1479" = extractvalue { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$ackermann_1477", 1 - %"$n0_1480" = load %TName_Nat*, %TName_Nat** %n0, align 8 - %"$ackermann_call_1481" = call { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$ackermann_fptr_1478"(i8* %"$ackermann_envptr_1479", %TName_Nat* %"$n0_1480"), !dbg !130 - store { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$ackermann_call_1481", { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$ackermann_53", align 8, !dbg !130 + %"$ackermann_1494" = load { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }* %ackermann, align 8 + %"$ackermann_fptr_1495" = extractvalue { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$ackermann_1494", 0 + %"$ackermann_envptr_1496" = extractvalue { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$ackermann_1494", 1 + %"$n0_1497" = load %TName_Nat*, %TName_Nat** %n0, align 8 + %"$ackermann_call_1498" = call { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$ackermann_fptr_1495"(i8* %"$ackermann_envptr_1496", %TName_Nat* %"$n0_1497"), !dbg !233 + store { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$ackermann_call_1498", { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$ackermann_53", align 8, !dbg !233 %"$ackermann_54" = alloca %TName_Nat*, align 8 - %"$$ackermann_53_1482" = load { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$ackermann_53", align 8 - %"$$ackermann_53_fptr_1483" = extractvalue { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$$ackermann_53_1482", 0 - %"$$ackermann_53_envptr_1484" = extractvalue { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$$ackermann_53_1482", 1 - %"$n3_1485" = load %TName_Nat*, %TName_Nat** %n3, align 8 - %"$$ackermann_53_call_1486" = call %TName_Nat* %"$$ackermann_53_fptr_1483"(i8* %"$$ackermann_53_envptr_1484", %TName_Nat* %"$n3_1485"), !dbg !130 - store %TName_Nat* %"$$ackermann_53_call_1486", %TName_Nat** %"$ackermann_54", align 8, !dbg !130 - %"$$ackermann_54_1487" = load %TName_Nat*, %TName_Nat** %"$ackermann_54", align 8 - store %TName_Nat* %"$$ackermann_54_1487", %TName_Nat** %ack03, align 8, !dbg !130 - %"$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_1490": ; preds = %"$have_gas_1475" - call void @_out_of_gas() - br label %"$have_gas_1491" - -"$have_gas_1491": ; preds = %"$out_of_gas_1490", %"$have_gas_1475" - %"$consume_1492" = sub i64 %"$gasrem_1488", 1 - store i64 %"$consume_1492", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Nat** %"$ackermann_54", metadata !234, metadata !DIExpression()), !dbg !233 + %"$$ackermann_53_1499" = load { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$ackermann_53", align 8 + %"$$ackermann_53_fptr_1500" = extractvalue { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$$ackermann_53_1499", 0 + %"$$ackermann_53_envptr_1501" = extractvalue { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$$ackermann_53_1499", 1 + %"$n3_1502" = load %TName_Nat*, %TName_Nat** %n3, align 8 + %"$$ackermann_53_call_1503" = call %TName_Nat* %"$$ackermann_53_fptr_1500"(i8* %"$$ackermann_53_envptr_1501", %TName_Nat* %"$n3_1502"), !dbg !233 + store %TName_Nat* %"$$ackermann_53_call_1503", %TName_Nat** %"$ackermann_54", align 8, !dbg !233 + %"$$ackermann_54_1504" = load %TName_Nat*, %TName_Nat** %"$ackermann_54", align 8 + store %TName_Nat* %"$$ackermann_54_1504", %TName_Nat** %ack03, align 8, !dbg !233 + %"$gasrem_1505" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1506" = icmp ugt i64 1, %"$gasrem_1505" + br i1 %"$gascmp_1506", label %"$out_of_gas_1507", label %"$have_gas_1508" + +"$out_of_gas_1507": ; preds = %"$have_gas_1492" + call void @_out_of_gas() + br label %"$have_gas_1508" + +"$have_gas_1508": ; preds = %"$out_of_gas_1507", %"$have_gas_1492" + %"$consume_1509" = sub i64 %"$gasrem_1505", 1 + store i64 %"$consume_1509", i64* @_gasrem, align 8 %ack04 = alloca %TName_Nat*, align 8 - %"$gasrem_1493" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1494" = icmp ugt i64 1, %"$gasrem_1493" - br i1 %"$gascmp_1494", label %"$out_of_gas_1495", label %"$have_gas_1496" + call void @llvm.dbg.declare(metadata %TName_Nat** %ack04, metadata !235, metadata !DIExpression()), !dbg !236 + %"$gasrem_1510" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1511" = icmp ugt i64 1, %"$gasrem_1510" + br i1 %"$gascmp_1511", label %"$out_of_gas_1512", label %"$have_gas_1513" -"$out_of_gas_1495": ; preds = %"$have_gas_1491" +"$out_of_gas_1512": ; preds = %"$have_gas_1508" call void @_out_of_gas() - br label %"$have_gas_1496" + br label %"$have_gas_1513" -"$have_gas_1496": ; preds = %"$out_of_gas_1495", %"$have_gas_1491" - %"$consume_1497" = sub i64 %"$gasrem_1493", 1 - store i64 %"$consume_1497", i64* @_gasrem, align 8 +"$have_gas_1513": ; preds = %"$out_of_gas_1512", %"$have_gas_1508" + %"$consume_1514" = sub i64 %"$gasrem_1510", 1 + store i64 %"$consume_1514", i64* @_gasrem, align 8 %"$ackermann_55" = alloca { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, align 8 - %"$ackermann_1498" = load { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }* %ackermann, align 8 - %"$ackermann_fptr_1499" = extractvalue { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$ackermann_1498", 0 - %"$ackermann_envptr_1500" = extractvalue { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$ackermann_1498", 1 - %"$n0_1501" = load %TName_Nat*, %TName_Nat** %n0, align 8 - %"$ackermann_call_1502" = call { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$ackermann_fptr_1499"(i8* %"$ackermann_envptr_1500", %TName_Nat* %"$n0_1501"), !dbg !131 - store { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$ackermann_call_1502", { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$ackermann_55", align 8, !dbg !131 + %"$ackermann_1515" = load { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }* %ackermann, align 8 + %"$ackermann_fptr_1516" = extractvalue { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$ackermann_1515", 0 + %"$ackermann_envptr_1517" = extractvalue { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$ackermann_1515", 1 + %"$n0_1518" = load %TName_Nat*, %TName_Nat** %n0, align 8 + %"$ackermann_call_1519" = call { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$ackermann_fptr_1516"(i8* %"$ackermann_envptr_1517", %TName_Nat* %"$n0_1518"), !dbg !237 + store { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$ackermann_call_1519", { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$ackermann_55", align 8, !dbg !237 %"$ackermann_56" = alloca %TName_Nat*, align 8 - %"$$ackermann_55_1503" = load { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$ackermann_55", align 8 - %"$$ackermann_55_fptr_1504" = extractvalue { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$$ackermann_55_1503", 0 - %"$$ackermann_55_envptr_1505" = extractvalue { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$$ackermann_55_1503", 1 - %"$n4_1506" = load %TName_Nat*, %TName_Nat** %n4, align 8 - %"$$ackermann_55_call_1507" = call %TName_Nat* %"$$ackermann_55_fptr_1504"(i8* %"$$ackermann_55_envptr_1505", %TName_Nat* %"$n4_1506"), !dbg !131 - store %TName_Nat* %"$$ackermann_55_call_1507", %TName_Nat** %"$ackermann_56", align 8, !dbg !131 - %"$$ackermann_56_1508" = load %TName_Nat*, %TName_Nat** %"$ackermann_56", align 8 - store %TName_Nat* %"$$ackermann_56_1508", %TName_Nat** %ack04, align 8, !dbg !131 - %"$gasrem_1509" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1510" = icmp ugt i64 1, %"$gasrem_1509" - br i1 %"$gascmp_1510", label %"$out_of_gas_1511", label %"$have_gas_1512" - -"$out_of_gas_1511": ; preds = %"$have_gas_1496" - call void @_out_of_gas() - br label %"$have_gas_1512" - -"$have_gas_1512": ; preds = %"$out_of_gas_1511", %"$have_gas_1496" - %"$consume_1513" = sub i64 %"$gasrem_1509", 1 - store i64 %"$consume_1513", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Nat** %"$ackermann_56", metadata !238, metadata !DIExpression()), !dbg !237 + %"$$ackermann_55_1520" = load { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$ackermann_55", align 8 + %"$$ackermann_55_fptr_1521" = extractvalue { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$$ackermann_55_1520", 0 + %"$$ackermann_55_envptr_1522" = extractvalue { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$$ackermann_55_1520", 1 + %"$n4_1523" = load %TName_Nat*, %TName_Nat** %n4, align 8 + %"$$ackermann_55_call_1524" = call %TName_Nat* %"$$ackermann_55_fptr_1521"(i8* %"$$ackermann_55_envptr_1522", %TName_Nat* %"$n4_1523"), !dbg !237 + store %TName_Nat* %"$$ackermann_55_call_1524", %TName_Nat** %"$ackermann_56", align 8, !dbg !237 + %"$$ackermann_56_1525" = load %TName_Nat*, %TName_Nat** %"$ackermann_56", align 8 + store %TName_Nat* %"$$ackermann_56_1525", %TName_Nat** %ack04, align 8, !dbg !237 + %"$gasrem_1526" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1527" = icmp ugt i64 1, %"$gasrem_1526" + br i1 %"$gascmp_1527", label %"$out_of_gas_1528", label %"$have_gas_1529" + +"$out_of_gas_1528": ; preds = %"$have_gas_1513" + call void @_out_of_gas() + br label %"$have_gas_1529" + +"$have_gas_1529": ; preds = %"$out_of_gas_1528", %"$have_gas_1513" + %"$consume_1530" = sub i64 %"$gasrem_1526", 1 + store i64 %"$consume_1530", i64* @_gasrem, align 8 %ack10 = alloca %TName_Nat*, align 8 - %"$gasrem_1514" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1515" = icmp ugt i64 1, %"$gasrem_1514" - br i1 %"$gascmp_1515", label %"$out_of_gas_1516", label %"$have_gas_1517" + call void @llvm.dbg.declare(metadata %TName_Nat** %ack10, metadata !239, metadata !DIExpression()), !dbg !240 + %"$gasrem_1531" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1532" = icmp ugt i64 1, %"$gasrem_1531" + br i1 %"$gascmp_1532", label %"$out_of_gas_1533", label %"$have_gas_1534" -"$out_of_gas_1516": ; preds = %"$have_gas_1512" +"$out_of_gas_1533": ; preds = %"$have_gas_1529" call void @_out_of_gas() - br label %"$have_gas_1517" + br label %"$have_gas_1534" -"$have_gas_1517": ; preds = %"$out_of_gas_1516", %"$have_gas_1512" - %"$consume_1518" = sub i64 %"$gasrem_1514", 1 - store i64 %"$consume_1518", i64* @_gasrem, align 8 +"$have_gas_1534": ; preds = %"$out_of_gas_1533", %"$have_gas_1529" + %"$consume_1535" = sub i64 %"$gasrem_1531", 1 + store i64 %"$consume_1535", i64* @_gasrem, align 8 %"$ackermann_57" = alloca { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, align 8 - %"$ackermann_1519" = load { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }* %ackermann, align 8 - %"$ackermann_fptr_1520" = extractvalue { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$ackermann_1519", 0 - %"$ackermann_envptr_1521" = extractvalue { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$ackermann_1519", 1 - %"$n1_1522" = load %TName_Nat*, %TName_Nat** %n1, align 8 - %"$ackermann_call_1523" = call { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$ackermann_fptr_1520"(i8* %"$ackermann_envptr_1521", %TName_Nat* %"$n1_1522"), !dbg !132 - store { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$ackermann_call_1523", { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$ackermann_57", align 8, !dbg !132 + %"$ackermann_1536" = load { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }* %ackermann, align 8 + %"$ackermann_fptr_1537" = extractvalue { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$ackermann_1536", 0 + %"$ackermann_envptr_1538" = extractvalue { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$ackermann_1536", 1 + %"$n1_1539" = load %TName_Nat*, %TName_Nat** %n1, align 8 + %"$ackermann_call_1540" = call { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$ackermann_fptr_1537"(i8* %"$ackermann_envptr_1538", %TName_Nat* %"$n1_1539"), !dbg !241 + store { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$ackermann_call_1540", { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$ackermann_57", align 8, !dbg !241 %"$ackermann_58" = alloca %TName_Nat*, align 8 - %"$$ackermann_57_1524" = load { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$ackermann_57", align 8 - %"$$ackermann_57_fptr_1525" = extractvalue { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$$ackermann_57_1524", 0 - %"$$ackermann_57_envptr_1526" = extractvalue { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$$ackermann_57_1524", 1 - %"$n0_1527" = load %TName_Nat*, %TName_Nat** %n0, align 8 - %"$$ackermann_57_call_1528" = call %TName_Nat* %"$$ackermann_57_fptr_1525"(i8* %"$$ackermann_57_envptr_1526", %TName_Nat* %"$n0_1527"), !dbg !132 - store %TName_Nat* %"$$ackermann_57_call_1528", %TName_Nat** %"$ackermann_58", align 8, !dbg !132 - %"$$ackermann_58_1529" = load %TName_Nat*, %TName_Nat** %"$ackermann_58", align 8 - store %TName_Nat* %"$$ackermann_58_1529", %TName_Nat** %ack10, align 8, !dbg !132 - %"$gasrem_1530" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1531" = icmp ugt i64 1, %"$gasrem_1530" - br i1 %"$gascmp_1531", label %"$out_of_gas_1532", label %"$have_gas_1533" - -"$out_of_gas_1532": ; preds = %"$have_gas_1517" - call void @_out_of_gas() - br label %"$have_gas_1533" - -"$have_gas_1533": ; preds = %"$out_of_gas_1532", %"$have_gas_1517" - %"$consume_1534" = sub i64 %"$gasrem_1530", 1 - store i64 %"$consume_1534", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Nat** %"$ackermann_58", metadata !242, metadata !DIExpression()), !dbg !241 + %"$$ackermann_57_1541" = load { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$ackermann_57", align 8 + %"$$ackermann_57_fptr_1542" = extractvalue { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$$ackermann_57_1541", 0 + %"$$ackermann_57_envptr_1543" = extractvalue { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$$ackermann_57_1541", 1 + %"$n0_1544" = load %TName_Nat*, %TName_Nat** %n0, align 8 + %"$$ackermann_57_call_1545" = call %TName_Nat* %"$$ackermann_57_fptr_1542"(i8* %"$$ackermann_57_envptr_1543", %TName_Nat* %"$n0_1544"), !dbg !241 + store %TName_Nat* %"$$ackermann_57_call_1545", %TName_Nat** %"$ackermann_58", align 8, !dbg !241 + %"$$ackermann_58_1546" = load %TName_Nat*, %TName_Nat** %"$ackermann_58", align 8 + store %TName_Nat* %"$$ackermann_58_1546", %TName_Nat** %ack10, align 8, !dbg !241 + %"$gasrem_1547" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1548" = icmp ugt i64 1, %"$gasrem_1547" + br i1 %"$gascmp_1548", label %"$out_of_gas_1549", label %"$have_gas_1550" + +"$out_of_gas_1549": ; preds = %"$have_gas_1534" + call void @_out_of_gas() + br label %"$have_gas_1550" + +"$have_gas_1550": ; preds = %"$out_of_gas_1549", %"$have_gas_1534" + %"$consume_1551" = sub i64 %"$gasrem_1547", 1 + store i64 %"$consume_1551", i64* @_gasrem, align 8 %ack11 = alloca %TName_Nat*, align 8 - %"$gasrem_1535" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1536" = icmp ugt i64 1, %"$gasrem_1535" - br i1 %"$gascmp_1536", label %"$out_of_gas_1537", label %"$have_gas_1538" + call void @llvm.dbg.declare(metadata %TName_Nat** %ack11, metadata !243, metadata !DIExpression()), !dbg !244 + %"$gasrem_1552" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1553" = icmp ugt i64 1, %"$gasrem_1552" + br i1 %"$gascmp_1553", label %"$out_of_gas_1554", label %"$have_gas_1555" -"$out_of_gas_1537": ; preds = %"$have_gas_1533" +"$out_of_gas_1554": ; preds = %"$have_gas_1550" call void @_out_of_gas() - br label %"$have_gas_1538" + br label %"$have_gas_1555" -"$have_gas_1538": ; preds = %"$out_of_gas_1537", %"$have_gas_1533" - %"$consume_1539" = sub i64 %"$gasrem_1535", 1 - store i64 %"$consume_1539", i64* @_gasrem, align 8 +"$have_gas_1555": ; preds = %"$out_of_gas_1554", %"$have_gas_1550" + %"$consume_1556" = sub i64 %"$gasrem_1552", 1 + store i64 %"$consume_1556", i64* @_gasrem, align 8 %"$ackermann_59" = alloca { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, align 8 - %"$ackermann_1540" = load { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }* %ackermann, align 8 - %"$ackermann_fptr_1541" = extractvalue { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$ackermann_1540", 0 - %"$ackermann_envptr_1542" = extractvalue { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$ackermann_1540", 1 - %"$n1_1543" = load %TName_Nat*, %TName_Nat** %n1, align 8 - %"$ackermann_call_1544" = call { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$ackermann_fptr_1541"(i8* %"$ackermann_envptr_1542", %TName_Nat* %"$n1_1543"), !dbg !133 - store { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$ackermann_call_1544", { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$ackermann_59", align 8, !dbg !133 + %"$ackermann_1557" = load { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }* %ackermann, align 8 + %"$ackermann_fptr_1558" = extractvalue { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$ackermann_1557", 0 + %"$ackermann_envptr_1559" = extractvalue { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$ackermann_1557", 1 + %"$n1_1560" = load %TName_Nat*, %TName_Nat** %n1, align 8 + %"$ackermann_call_1561" = call { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$ackermann_fptr_1558"(i8* %"$ackermann_envptr_1559", %TName_Nat* %"$n1_1560"), !dbg !245 + store { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$ackermann_call_1561", { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$ackermann_59", align 8, !dbg !245 %"$ackermann_60" = alloca %TName_Nat*, align 8 - %"$$ackermann_59_1545" = load { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$ackermann_59", align 8 - %"$$ackermann_59_fptr_1546" = extractvalue { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$$ackermann_59_1545", 0 - %"$$ackermann_59_envptr_1547" = extractvalue { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$$ackermann_59_1545", 1 - %"$n1_1548" = load %TName_Nat*, %TName_Nat** %n1, align 8 - %"$$ackermann_59_call_1549" = call %TName_Nat* %"$$ackermann_59_fptr_1546"(i8* %"$$ackermann_59_envptr_1547", %TName_Nat* %"$n1_1548"), !dbg !133 - store %TName_Nat* %"$$ackermann_59_call_1549", %TName_Nat** %"$ackermann_60", align 8, !dbg !133 - %"$$ackermann_60_1550" = load %TName_Nat*, %TName_Nat** %"$ackermann_60", align 8 - store %TName_Nat* %"$$ackermann_60_1550", %TName_Nat** %ack11, align 8, !dbg !133 - %"$gasrem_1551" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1552" = icmp ugt i64 1, %"$gasrem_1551" - br i1 %"$gascmp_1552", label %"$out_of_gas_1553", label %"$have_gas_1554" - -"$out_of_gas_1553": ; preds = %"$have_gas_1538" - call void @_out_of_gas() - br label %"$have_gas_1554" - -"$have_gas_1554": ; preds = %"$out_of_gas_1553", %"$have_gas_1538" - %"$consume_1555" = sub i64 %"$gasrem_1551", 1 - store i64 %"$consume_1555", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Nat** %"$ackermann_60", metadata !246, metadata !DIExpression()), !dbg !245 + %"$$ackermann_59_1562" = load { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$ackermann_59", align 8 + %"$$ackermann_59_fptr_1563" = extractvalue { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$$ackermann_59_1562", 0 + %"$$ackermann_59_envptr_1564" = extractvalue { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$$ackermann_59_1562", 1 + %"$n1_1565" = load %TName_Nat*, %TName_Nat** %n1, align 8 + %"$$ackermann_59_call_1566" = call %TName_Nat* %"$$ackermann_59_fptr_1563"(i8* %"$$ackermann_59_envptr_1564", %TName_Nat* %"$n1_1565"), !dbg !245 + store %TName_Nat* %"$$ackermann_59_call_1566", %TName_Nat** %"$ackermann_60", align 8, !dbg !245 + %"$$ackermann_60_1567" = load %TName_Nat*, %TName_Nat** %"$ackermann_60", align 8 + store %TName_Nat* %"$$ackermann_60_1567", %TName_Nat** %ack11, align 8, !dbg !245 + %"$gasrem_1568" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1569" = icmp ugt i64 1, %"$gasrem_1568" + br i1 %"$gascmp_1569", label %"$out_of_gas_1570", label %"$have_gas_1571" + +"$out_of_gas_1570": ; preds = %"$have_gas_1555" + call void @_out_of_gas() + br label %"$have_gas_1571" + +"$have_gas_1571": ; preds = %"$out_of_gas_1570", %"$have_gas_1555" + %"$consume_1572" = sub i64 %"$gasrem_1568", 1 + store i64 %"$consume_1572", i64* @_gasrem, align 8 %ack12 = alloca %TName_Nat*, align 8 - %"$gasrem_1556" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1557" = icmp ugt i64 1, %"$gasrem_1556" - br i1 %"$gascmp_1557", label %"$out_of_gas_1558", label %"$have_gas_1559" + call void @llvm.dbg.declare(metadata %TName_Nat** %ack12, metadata !247, metadata !DIExpression()), !dbg !248 + %"$gasrem_1573" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1574" = icmp ugt i64 1, %"$gasrem_1573" + br i1 %"$gascmp_1574", label %"$out_of_gas_1575", label %"$have_gas_1576" -"$out_of_gas_1558": ; preds = %"$have_gas_1554" +"$out_of_gas_1575": ; preds = %"$have_gas_1571" call void @_out_of_gas() - br label %"$have_gas_1559" + br label %"$have_gas_1576" -"$have_gas_1559": ; preds = %"$out_of_gas_1558", %"$have_gas_1554" - %"$consume_1560" = sub i64 %"$gasrem_1556", 1 - store i64 %"$consume_1560", i64* @_gasrem, align 8 +"$have_gas_1576": ; preds = %"$out_of_gas_1575", %"$have_gas_1571" + %"$consume_1577" = sub i64 %"$gasrem_1573", 1 + store i64 %"$consume_1577", i64* @_gasrem, align 8 %"$ackermann_61" = alloca { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, align 8 - %"$ackermann_1561" = load { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }* %ackermann, align 8 - %"$ackermann_fptr_1562" = extractvalue { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$ackermann_1561", 0 - %"$ackermann_envptr_1563" = extractvalue { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$ackermann_1561", 1 - %"$n1_1564" = load %TName_Nat*, %TName_Nat** %n1, align 8 - %"$ackermann_call_1565" = call { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$ackermann_fptr_1562"(i8* %"$ackermann_envptr_1563", %TName_Nat* %"$n1_1564"), !dbg !134 - store { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$ackermann_call_1565", { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$ackermann_61", align 8, !dbg !134 + %"$ackermann_1578" = load { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }* %ackermann, align 8 + %"$ackermann_fptr_1579" = extractvalue { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$ackermann_1578", 0 + %"$ackermann_envptr_1580" = extractvalue { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$ackermann_1578", 1 + %"$n1_1581" = load %TName_Nat*, %TName_Nat** %n1, align 8 + %"$ackermann_call_1582" = call { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$ackermann_fptr_1579"(i8* %"$ackermann_envptr_1580", %TName_Nat* %"$n1_1581"), !dbg !249 + store { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$ackermann_call_1582", { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$ackermann_61", align 8, !dbg !249 %"$ackermann_62" = alloca %TName_Nat*, align 8 - %"$$ackermann_61_1566" = load { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$ackermann_61", align 8 - %"$$ackermann_61_fptr_1567" = extractvalue { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$$ackermann_61_1566", 0 - %"$$ackermann_61_envptr_1568" = extractvalue { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$$ackermann_61_1566", 1 - %"$n2_1569" = load %TName_Nat*, %TName_Nat** %n2, align 8 - %"$$ackermann_61_call_1570" = call %TName_Nat* %"$$ackermann_61_fptr_1567"(i8* %"$$ackermann_61_envptr_1568", %TName_Nat* %"$n2_1569"), !dbg !134 - store %TName_Nat* %"$$ackermann_61_call_1570", %TName_Nat** %"$ackermann_62", align 8, !dbg !134 - %"$$ackermann_62_1571" = load %TName_Nat*, %TName_Nat** %"$ackermann_62", align 8 - store %TName_Nat* %"$$ackermann_62_1571", %TName_Nat** %ack12, align 8, !dbg !134 - %"$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_1559" - call void @_out_of_gas() - br label %"$have_gas_1575" - -"$have_gas_1575": ; preds = %"$out_of_gas_1574", %"$have_gas_1559" - %"$consume_1576" = sub i64 %"$gasrem_1572", 1 - store i64 %"$consume_1576", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Nat** %"$ackermann_62", metadata !250, metadata !DIExpression()), !dbg !249 + %"$$ackermann_61_1583" = load { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$ackermann_61", align 8 + %"$$ackermann_61_fptr_1584" = extractvalue { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$$ackermann_61_1583", 0 + %"$$ackermann_61_envptr_1585" = extractvalue { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$$ackermann_61_1583", 1 + %"$n2_1586" = load %TName_Nat*, %TName_Nat** %n2, align 8 + %"$$ackermann_61_call_1587" = call %TName_Nat* %"$$ackermann_61_fptr_1584"(i8* %"$$ackermann_61_envptr_1585", %TName_Nat* %"$n2_1586"), !dbg !249 + store %TName_Nat* %"$$ackermann_61_call_1587", %TName_Nat** %"$ackermann_62", align 8, !dbg !249 + %"$$ackermann_62_1588" = load %TName_Nat*, %TName_Nat** %"$ackermann_62", align 8 + store %TName_Nat* %"$$ackermann_62_1588", %TName_Nat** %ack12, align 8, !dbg !249 + %"$gasrem_1589" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1590" = icmp ugt i64 1, %"$gasrem_1589" + br i1 %"$gascmp_1590", label %"$out_of_gas_1591", label %"$have_gas_1592" + +"$out_of_gas_1591": ; preds = %"$have_gas_1576" + call void @_out_of_gas() + br label %"$have_gas_1592" + +"$have_gas_1592": ; preds = %"$out_of_gas_1591", %"$have_gas_1576" + %"$consume_1593" = sub i64 %"$gasrem_1589", 1 + store i64 %"$consume_1593", i64* @_gasrem, align 8 %ack13 = alloca %TName_Nat*, align 8 - %"$gasrem_1577" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1578" = icmp ugt i64 1, %"$gasrem_1577" - br i1 %"$gascmp_1578", label %"$out_of_gas_1579", label %"$have_gas_1580" + call void @llvm.dbg.declare(metadata %TName_Nat** %ack13, metadata !251, metadata !DIExpression()), !dbg !252 + %"$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_1579": ; preds = %"$have_gas_1575" +"$out_of_gas_1596": ; preds = %"$have_gas_1592" call void @_out_of_gas() - br label %"$have_gas_1580" + br label %"$have_gas_1597" -"$have_gas_1580": ; preds = %"$out_of_gas_1579", %"$have_gas_1575" - %"$consume_1581" = sub i64 %"$gasrem_1577", 1 - store i64 %"$consume_1581", i64* @_gasrem, align 8 +"$have_gas_1597": ; preds = %"$out_of_gas_1596", %"$have_gas_1592" + %"$consume_1598" = sub i64 %"$gasrem_1594", 1 + store i64 %"$consume_1598", i64* @_gasrem, align 8 %"$ackermann_63" = alloca { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, align 8 - %"$ackermann_1582" = load { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }* %ackermann, align 8 - %"$ackermann_fptr_1583" = extractvalue { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$ackermann_1582", 0 - %"$ackermann_envptr_1584" = extractvalue { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$ackermann_1582", 1 - %"$n1_1585" = load %TName_Nat*, %TName_Nat** %n1, align 8 - %"$ackermann_call_1586" = call { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$ackermann_fptr_1583"(i8* %"$ackermann_envptr_1584", %TName_Nat* %"$n1_1585"), !dbg !135 - store { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$ackermann_call_1586", { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$ackermann_63", align 8, !dbg !135 + %"$ackermann_1599" = load { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }* %ackermann, align 8 + %"$ackermann_fptr_1600" = extractvalue { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$ackermann_1599", 0 + %"$ackermann_envptr_1601" = extractvalue { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$ackermann_1599", 1 + %"$n1_1602" = load %TName_Nat*, %TName_Nat** %n1, align 8 + %"$ackermann_call_1603" = call { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$ackermann_fptr_1600"(i8* %"$ackermann_envptr_1601", %TName_Nat* %"$n1_1602"), !dbg !253 + store { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$ackermann_call_1603", { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$ackermann_63", align 8, !dbg !253 %"$ackermann_64" = alloca %TName_Nat*, align 8 - %"$$ackermann_63_1587" = load { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$ackermann_63", align 8 - %"$$ackermann_63_fptr_1588" = extractvalue { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$$ackermann_63_1587", 0 - %"$$ackermann_63_envptr_1589" = extractvalue { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$$ackermann_63_1587", 1 - %"$n3_1590" = load %TName_Nat*, %TName_Nat** %n3, align 8 - %"$$ackermann_63_call_1591" = call %TName_Nat* %"$$ackermann_63_fptr_1588"(i8* %"$$ackermann_63_envptr_1589", %TName_Nat* %"$n3_1590"), !dbg !135 - store %TName_Nat* %"$$ackermann_63_call_1591", %TName_Nat** %"$ackermann_64", align 8, !dbg !135 - %"$$ackermann_64_1592" = load %TName_Nat*, %TName_Nat** %"$ackermann_64", align 8 - store %TName_Nat* %"$$ackermann_64_1592", %TName_Nat** %ack13, align 8, !dbg !135 - %"$gasrem_1593" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1594" = icmp ugt i64 1, %"$gasrem_1593" - br i1 %"$gascmp_1594", label %"$out_of_gas_1595", label %"$have_gas_1596" - -"$out_of_gas_1595": ; preds = %"$have_gas_1580" - call void @_out_of_gas() - br label %"$have_gas_1596" - -"$have_gas_1596": ; preds = %"$out_of_gas_1595", %"$have_gas_1580" - %"$consume_1597" = sub i64 %"$gasrem_1593", 1 - store i64 %"$consume_1597", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Nat** %"$ackermann_64", metadata !254, metadata !DIExpression()), !dbg !253 + %"$$ackermann_63_1604" = load { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$ackermann_63", align 8 + %"$$ackermann_63_fptr_1605" = extractvalue { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$$ackermann_63_1604", 0 + %"$$ackermann_63_envptr_1606" = extractvalue { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$$ackermann_63_1604", 1 + %"$n3_1607" = load %TName_Nat*, %TName_Nat** %n3, align 8 + %"$$ackermann_63_call_1608" = call %TName_Nat* %"$$ackermann_63_fptr_1605"(i8* %"$$ackermann_63_envptr_1606", %TName_Nat* %"$n3_1607"), !dbg !253 + store %TName_Nat* %"$$ackermann_63_call_1608", %TName_Nat** %"$ackermann_64", align 8, !dbg !253 + %"$$ackermann_64_1609" = load %TName_Nat*, %TName_Nat** %"$ackermann_64", align 8 + store %TName_Nat* %"$$ackermann_64_1609", %TName_Nat** %ack13, align 8, !dbg !253 + %"$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 = %"$have_gas_1597" + call void @_out_of_gas() + br label %"$have_gas_1613" + +"$have_gas_1613": ; preds = %"$out_of_gas_1612", %"$have_gas_1597" + %"$consume_1614" = sub i64 %"$gasrem_1610", 1 + store i64 %"$consume_1614", i64* @_gasrem, align 8 %ack14 = alloca %TName_Nat*, 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" + call void @llvm.dbg.declare(metadata %TName_Nat** %ack14, metadata !255, metadata !DIExpression()), !dbg !256 + %"$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" -"$out_of_gas_1600": ; preds = %"$have_gas_1596" +"$out_of_gas_1617": ; preds = %"$have_gas_1613" call void @_out_of_gas() - br label %"$have_gas_1601" + br label %"$have_gas_1618" -"$have_gas_1601": ; preds = %"$out_of_gas_1600", %"$have_gas_1596" - %"$consume_1602" = sub i64 %"$gasrem_1598", 1 - store i64 %"$consume_1602", i64* @_gasrem, align 8 +"$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 %"$ackermann_65" = alloca { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, align 8 - %"$ackermann_1603" = load { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }* %ackermann, align 8 - %"$ackermann_fptr_1604" = extractvalue { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$ackermann_1603", 0 - %"$ackermann_envptr_1605" = extractvalue { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$ackermann_1603", 1 - %"$n1_1606" = load %TName_Nat*, %TName_Nat** %n1, align 8 - %"$ackermann_call_1607" = call { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$ackermann_fptr_1604"(i8* %"$ackermann_envptr_1605", %TName_Nat* %"$n1_1606"), !dbg !136 - store { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$ackermann_call_1607", { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$ackermann_65", align 8, !dbg !136 + %"$ackermann_1620" = load { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }* %ackermann, align 8 + %"$ackermann_fptr_1621" = extractvalue { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$ackermann_1620", 0 + %"$ackermann_envptr_1622" = extractvalue { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$ackermann_1620", 1 + %"$n1_1623" = load %TName_Nat*, %TName_Nat** %n1, align 8 + %"$ackermann_call_1624" = call { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$ackermann_fptr_1621"(i8* %"$ackermann_envptr_1622", %TName_Nat* %"$n1_1623"), !dbg !257 + store { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$ackermann_call_1624", { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$ackermann_65", align 8, !dbg !257 %"$ackermann_66" = alloca %TName_Nat*, align 8 - %"$$ackermann_65_1608" = load { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$ackermann_65", align 8 - %"$$ackermann_65_fptr_1609" = extractvalue { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$$ackermann_65_1608", 0 - %"$$ackermann_65_envptr_1610" = extractvalue { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$$ackermann_65_1608", 1 - %"$n4_1611" = load %TName_Nat*, %TName_Nat** %n4, align 8 - %"$$ackermann_65_call_1612" = call %TName_Nat* %"$$ackermann_65_fptr_1609"(i8* %"$$ackermann_65_envptr_1610", %TName_Nat* %"$n4_1611"), !dbg !136 - store %TName_Nat* %"$$ackermann_65_call_1612", %TName_Nat** %"$ackermann_66", align 8, !dbg !136 - %"$$ackermann_66_1613" = load %TName_Nat*, %TName_Nat** %"$ackermann_66", align 8 - store %TName_Nat* %"$$ackermann_66_1613", %TName_Nat** %ack14, align 8, !dbg !136 - %"$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_1601" - call void @_out_of_gas() - br label %"$have_gas_1617" - -"$have_gas_1617": ; preds = %"$out_of_gas_1616", %"$have_gas_1601" - %"$consume_1618" = sub i64 %"$gasrem_1614", 1 - store i64 %"$consume_1618", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Nat** %"$ackermann_66", metadata !258, metadata !DIExpression()), !dbg !257 + %"$$ackermann_65_1625" = load { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$ackermann_65", align 8 + %"$$ackermann_65_fptr_1626" = extractvalue { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$$ackermann_65_1625", 0 + %"$$ackermann_65_envptr_1627" = extractvalue { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$$ackermann_65_1625", 1 + %"$n4_1628" = load %TName_Nat*, %TName_Nat** %n4, align 8 + %"$$ackermann_65_call_1629" = call %TName_Nat* %"$$ackermann_65_fptr_1626"(i8* %"$$ackermann_65_envptr_1627", %TName_Nat* %"$n4_1628"), !dbg !257 + store %TName_Nat* %"$$ackermann_65_call_1629", %TName_Nat** %"$ackermann_66", align 8, !dbg !257 + %"$$ackermann_66_1630" = load %TName_Nat*, %TName_Nat** %"$ackermann_66", align 8 + store %TName_Nat* %"$$ackermann_66_1630", %TName_Nat** %ack14, align 8, !dbg !257 + %"$gasrem_1631" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1632" = icmp ugt i64 1, %"$gasrem_1631" + br i1 %"$gascmp_1632", label %"$out_of_gas_1633", label %"$have_gas_1634" + +"$out_of_gas_1633": ; preds = %"$have_gas_1618" + call void @_out_of_gas() + br label %"$have_gas_1634" + +"$have_gas_1634": ; preds = %"$out_of_gas_1633", %"$have_gas_1618" + %"$consume_1635" = sub i64 %"$gasrem_1631", 1 + store i64 %"$consume_1635", i64* @_gasrem, align 8 %ack20 = alloca %TName_Nat*, align 8 - %"$gasrem_1619" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1620" = icmp ugt i64 1, %"$gasrem_1619" - br i1 %"$gascmp_1620", label %"$out_of_gas_1621", label %"$have_gas_1622" + call void @llvm.dbg.declare(metadata %TName_Nat** %ack20, metadata !259, metadata !DIExpression()), !dbg !260 + %"$gasrem_1636" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1637" = icmp ugt i64 1, %"$gasrem_1636" + br i1 %"$gascmp_1637", label %"$out_of_gas_1638", label %"$have_gas_1639" -"$out_of_gas_1621": ; preds = %"$have_gas_1617" +"$out_of_gas_1638": ; preds = %"$have_gas_1634" call void @_out_of_gas() - br label %"$have_gas_1622" + br label %"$have_gas_1639" -"$have_gas_1622": ; preds = %"$out_of_gas_1621", %"$have_gas_1617" - %"$consume_1623" = sub i64 %"$gasrem_1619", 1 - store i64 %"$consume_1623", i64* @_gasrem, align 8 +"$have_gas_1639": ; preds = %"$out_of_gas_1638", %"$have_gas_1634" + %"$consume_1640" = sub i64 %"$gasrem_1636", 1 + store i64 %"$consume_1640", i64* @_gasrem, align 8 %"$ackermann_67" = alloca { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, align 8 - %"$ackermann_1624" = load { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }* %ackermann, align 8 - %"$ackermann_fptr_1625" = extractvalue { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$ackermann_1624", 0 - %"$ackermann_envptr_1626" = extractvalue { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$ackermann_1624", 1 - %"$n2_1627" = load %TName_Nat*, %TName_Nat** %n2, align 8 - %"$ackermann_call_1628" = call { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$ackermann_fptr_1625"(i8* %"$ackermann_envptr_1626", %TName_Nat* %"$n2_1627"), !dbg !137 - store { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$ackermann_call_1628", { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$ackermann_67", align 8, !dbg !137 + %"$ackermann_1641" = load { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }* %ackermann, align 8 + %"$ackermann_fptr_1642" = extractvalue { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$ackermann_1641", 0 + %"$ackermann_envptr_1643" = extractvalue { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$ackermann_1641", 1 + %"$n2_1644" = load %TName_Nat*, %TName_Nat** %n2, align 8 + %"$ackermann_call_1645" = call { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$ackermann_fptr_1642"(i8* %"$ackermann_envptr_1643", %TName_Nat* %"$n2_1644"), !dbg !261 + store { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$ackermann_call_1645", { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$ackermann_67", align 8, !dbg !261 %"$ackermann_68" = alloca %TName_Nat*, align 8 - %"$$ackermann_67_1629" = load { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$ackermann_67", align 8 - %"$$ackermann_67_fptr_1630" = extractvalue { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$$ackermann_67_1629", 0 - %"$$ackermann_67_envptr_1631" = extractvalue { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$$ackermann_67_1629", 1 - %"$n0_1632" = load %TName_Nat*, %TName_Nat** %n0, align 8 - %"$$ackermann_67_call_1633" = call %TName_Nat* %"$$ackermann_67_fptr_1630"(i8* %"$$ackermann_67_envptr_1631", %TName_Nat* %"$n0_1632"), !dbg !137 - store %TName_Nat* %"$$ackermann_67_call_1633", %TName_Nat** %"$ackermann_68", align 8, !dbg !137 - %"$$ackermann_68_1634" = load %TName_Nat*, %TName_Nat** %"$ackermann_68", align 8 - store %TName_Nat* %"$$ackermann_68_1634", %TName_Nat** %ack20, align 8, !dbg !137 - %"$gasrem_1635" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1636" = icmp ugt i64 1, %"$gasrem_1635" - br i1 %"$gascmp_1636", label %"$out_of_gas_1637", label %"$have_gas_1638" - -"$out_of_gas_1637": ; preds = %"$have_gas_1622" - call void @_out_of_gas() - br label %"$have_gas_1638" - -"$have_gas_1638": ; preds = %"$out_of_gas_1637", %"$have_gas_1622" - %"$consume_1639" = sub i64 %"$gasrem_1635", 1 - store i64 %"$consume_1639", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Nat** %"$ackermann_68", metadata !262, metadata !DIExpression()), !dbg !261 + %"$$ackermann_67_1646" = load { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$ackermann_67", align 8 + %"$$ackermann_67_fptr_1647" = extractvalue { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$$ackermann_67_1646", 0 + %"$$ackermann_67_envptr_1648" = extractvalue { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$$ackermann_67_1646", 1 + %"$n0_1649" = load %TName_Nat*, %TName_Nat** %n0, align 8 + %"$$ackermann_67_call_1650" = call %TName_Nat* %"$$ackermann_67_fptr_1647"(i8* %"$$ackermann_67_envptr_1648", %TName_Nat* %"$n0_1649"), !dbg !261 + store %TName_Nat* %"$$ackermann_67_call_1650", %TName_Nat** %"$ackermann_68", align 8, !dbg !261 + %"$$ackermann_68_1651" = load %TName_Nat*, %TName_Nat** %"$ackermann_68", align 8 + store %TName_Nat* %"$$ackermann_68_1651", %TName_Nat** %ack20, align 8, !dbg !261 + %"$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 = %"$have_gas_1639" + call void @_out_of_gas() + br label %"$have_gas_1655" + +"$have_gas_1655": ; preds = %"$out_of_gas_1654", %"$have_gas_1639" + %"$consume_1656" = sub i64 %"$gasrem_1652", 1 + store i64 %"$consume_1656", i64* @_gasrem, align 8 %ack21 = alloca %TName_Nat*, align 8 - %"$gasrem_1640" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1641" = icmp ugt i64 1, %"$gasrem_1640" - br i1 %"$gascmp_1641", label %"$out_of_gas_1642", label %"$have_gas_1643" + call void @llvm.dbg.declare(metadata %TName_Nat** %ack21, metadata !263, metadata !DIExpression()), !dbg !264 + %"$gasrem_1657" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1658" = icmp ugt i64 1, %"$gasrem_1657" + br i1 %"$gascmp_1658", label %"$out_of_gas_1659", label %"$have_gas_1660" -"$out_of_gas_1642": ; preds = %"$have_gas_1638" +"$out_of_gas_1659": ; preds = %"$have_gas_1655" call void @_out_of_gas() - br label %"$have_gas_1643" + br label %"$have_gas_1660" -"$have_gas_1643": ; preds = %"$out_of_gas_1642", %"$have_gas_1638" - %"$consume_1644" = sub i64 %"$gasrem_1640", 1 - store i64 %"$consume_1644", i64* @_gasrem, align 8 +"$have_gas_1660": ; preds = %"$out_of_gas_1659", %"$have_gas_1655" + %"$consume_1661" = sub i64 %"$gasrem_1657", 1 + store i64 %"$consume_1661", i64* @_gasrem, align 8 %"$ackermann_69" = alloca { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, align 8 - %"$ackermann_1645" = load { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }* %ackermann, align 8 - %"$ackermann_fptr_1646" = extractvalue { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$ackermann_1645", 0 - %"$ackermann_envptr_1647" = extractvalue { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$ackermann_1645", 1 - %"$n2_1648" = load %TName_Nat*, %TName_Nat** %n2, align 8 - %"$ackermann_call_1649" = call { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$ackermann_fptr_1646"(i8* %"$ackermann_envptr_1647", %TName_Nat* %"$n2_1648"), !dbg !138 - store { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$ackermann_call_1649", { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$ackermann_69", align 8, !dbg !138 + %"$ackermann_1662" = load { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }* %ackermann, align 8 + %"$ackermann_fptr_1663" = extractvalue { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$ackermann_1662", 0 + %"$ackermann_envptr_1664" = extractvalue { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$ackermann_1662", 1 + %"$n2_1665" = load %TName_Nat*, %TName_Nat** %n2, align 8 + %"$ackermann_call_1666" = call { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$ackermann_fptr_1663"(i8* %"$ackermann_envptr_1664", %TName_Nat* %"$n2_1665"), !dbg !265 + store { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$ackermann_call_1666", { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$ackermann_69", align 8, !dbg !265 %"$ackermann_70" = alloca %TName_Nat*, align 8 - %"$$ackermann_69_1650" = load { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$ackermann_69", align 8 - %"$$ackermann_69_fptr_1651" = extractvalue { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$$ackermann_69_1650", 0 - %"$$ackermann_69_envptr_1652" = extractvalue { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$$ackermann_69_1650", 1 - %"$n1_1653" = load %TName_Nat*, %TName_Nat** %n1, align 8 - %"$$ackermann_69_call_1654" = call %TName_Nat* %"$$ackermann_69_fptr_1651"(i8* %"$$ackermann_69_envptr_1652", %TName_Nat* %"$n1_1653"), !dbg !138 - store %TName_Nat* %"$$ackermann_69_call_1654", %TName_Nat** %"$ackermann_70", align 8, !dbg !138 - %"$$ackermann_70_1655" = load %TName_Nat*, %TName_Nat** %"$ackermann_70", align 8 - store %TName_Nat* %"$$ackermann_70_1655", %TName_Nat** %ack21, align 8, !dbg !138 - %"$gasrem_1656" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1657" = icmp ugt i64 1, %"$gasrem_1656" - br i1 %"$gascmp_1657", label %"$out_of_gas_1658", label %"$have_gas_1659" - -"$out_of_gas_1658": ; preds = %"$have_gas_1643" - call void @_out_of_gas() - br label %"$have_gas_1659" - -"$have_gas_1659": ; preds = %"$out_of_gas_1658", %"$have_gas_1643" - %"$consume_1660" = sub i64 %"$gasrem_1656", 1 - store i64 %"$consume_1660", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Nat** %"$ackermann_70", metadata !266, metadata !DIExpression()), !dbg !265 + %"$$ackermann_69_1667" = load { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$ackermann_69", align 8 + %"$$ackermann_69_fptr_1668" = extractvalue { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$$ackermann_69_1667", 0 + %"$$ackermann_69_envptr_1669" = extractvalue { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$$ackermann_69_1667", 1 + %"$n1_1670" = load %TName_Nat*, %TName_Nat** %n1, align 8 + %"$$ackermann_69_call_1671" = call %TName_Nat* %"$$ackermann_69_fptr_1668"(i8* %"$$ackermann_69_envptr_1669", %TName_Nat* %"$n1_1670"), !dbg !265 + store %TName_Nat* %"$$ackermann_69_call_1671", %TName_Nat** %"$ackermann_70", align 8, !dbg !265 + %"$$ackermann_70_1672" = load %TName_Nat*, %TName_Nat** %"$ackermann_70", align 8 + store %TName_Nat* %"$$ackermann_70_1672", %TName_Nat** %ack21, align 8, !dbg !265 + %"$gasrem_1673" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1674" = icmp ugt i64 1, %"$gasrem_1673" + br i1 %"$gascmp_1674", label %"$out_of_gas_1675", label %"$have_gas_1676" + +"$out_of_gas_1675": ; preds = %"$have_gas_1660" + call void @_out_of_gas() + br label %"$have_gas_1676" + +"$have_gas_1676": ; preds = %"$out_of_gas_1675", %"$have_gas_1660" + %"$consume_1677" = sub i64 %"$gasrem_1673", 1 + store i64 %"$consume_1677", i64* @_gasrem, align 8 %ack22 = alloca %TName_Nat*, align 8 - %"$gasrem_1661" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1662" = icmp ugt i64 1, %"$gasrem_1661" - br i1 %"$gascmp_1662", label %"$out_of_gas_1663", label %"$have_gas_1664" + call void @llvm.dbg.declare(metadata %TName_Nat** %ack22, metadata !267, metadata !DIExpression()), !dbg !268 + %"$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_1663": ; preds = %"$have_gas_1659" +"$out_of_gas_1680": ; preds = %"$have_gas_1676" call void @_out_of_gas() - br label %"$have_gas_1664" + br label %"$have_gas_1681" -"$have_gas_1664": ; preds = %"$out_of_gas_1663", %"$have_gas_1659" - %"$consume_1665" = sub i64 %"$gasrem_1661", 1 - store i64 %"$consume_1665", i64* @_gasrem, align 8 +"$have_gas_1681": ; preds = %"$out_of_gas_1680", %"$have_gas_1676" + %"$consume_1682" = sub i64 %"$gasrem_1678", 1 + store i64 %"$consume_1682", i64* @_gasrem, align 8 %"$ackermann_71" = alloca { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, align 8 - %"$ackermann_1666" = load { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }* %ackermann, align 8 - %"$ackermann_fptr_1667" = extractvalue { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$ackermann_1666", 0 - %"$ackermann_envptr_1668" = extractvalue { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$ackermann_1666", 1 - %"$n2_1669" = load %TName_Nat*, %TName_Nat** %n2, align 8 - %"$ackermann_call_1670" = call { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$ackermann_fptr_1667"(i8* %"$ackermann_envptr_1668", %TName_Nat* %"$n2_1669"), !dbg !139 - store { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$ackermann_call_1670", { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$ackermann_71", align 8, !dbg !139 + %"$ackermann_1683" = load { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }* %ackermann, align 8 + %"$ackermann_fptr_1684" = extractvalue { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$ackermann_1683", 0 + %"$ackermann_envptr_1685" = extractvalue { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$ackermann_1683", 1 + %"$n2_1686" = load %TName_Nat*, %TName_Nat** %n2, align 8 + %"$ackermann_call_1687" = call { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$ackermann_fptr_1684"(i8* %"$ackermann_envptr_1685", %TName_Nat* %"$n2_1686"), !dbg !269 + store { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$ackermann_call_1687", { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$ackermann_71", align 8, !dbg !269 %"$ackermann_72" = alloca %TName_Nat*, align 8 - %"$$ackermann_71_1671" = load { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$ackermann_71", align 8 - %"$$ackermann_71_fptr_1672" = extractvalue { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$$ackermann_71_1671", 0 - %"$$ackermann_71_envptr_1673" = extractvalue { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$$ackermann_71_1671", 1 - %"$n2_1674" = load %TName_Nat*, %TName_Nat** %n2, align 8 - %"$$ackermann_71_call_1675" = call %TName_Nat* %"$$ackermann_71_fptr_1672"(i8* %"$$ackermann_71_envptr_1673", %TName_Nat* %"$n2_1674"), !dbg !139 - store %TName_Nat* %"$$ackermann_71_call_1675", %TName_Nat** %"$ackermann_72", align 8, !dbg !139 - %"$$ackermann_72_1676" = load %TName_Nat*, %TName_Nat** %"$ackermann_72", align 8 - store %TName_Nat* %"$$ackermann_72_1676", %TName_Nat** %ack22, align 8, !dbg !139 - %"$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" - -"$out_of_gas_1679": ; preds = %"$have_gas_1664" - call void @_out_of_gas() - br label %"$have_gas_1680" - -"$have_gas_1680": ; preds = %"$out_of_gas_1679", %"$have_gas_1664" - %"$consume_1681" = sub i64 %"$gasrem_1677", 1 - store i64 %"$consume_1681", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Nat** %"$ackermann_72", metadata !270, metadata !DIExpression()), !dbg !269 + %"$$ackermann_71_1688" = load { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$ackermann_71", align 8 + %"$$ackermann_71_fptr_1689" = extractvalue { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$$ackermann_71_1688", 0 + %"$$ackermann_71_envptr_1690" = extractvalue { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$$ackermann_71_1688", 1 + %"$n2_1691" = load %TName_Nat*, %TName_Nat** %n2, align 8 + %"$$ackermann_71_call_1692" = call %TName_Nat* %"$$ackermann_71_fptr_1689"(i8* %"$$ackermann_71_envptr_1690", %TName_Nat* %"$n2_1691"), !dbg !269 + store %TName_Nat* %"$$ackermann_71_call_1692", %TName_Nat** %"$ackermann_72", align 8, !dbg !269 + %"$$ackermann_72_1693" = load %TName_Nat*, %TName_Nat** %"$ackermann_72", align 8 + store %TName_Nat* %"$$ackermann_72_1693", %TName_Nat** %ack22, align 8, !dbg !269 + %"$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" + +"$out_of_gas_1696": ; preds = %"$have_gas_1681" + call void @_out_of_gas() + br label %"$have_gas_1697" + +"$have_gas_1697": ; preds = %"$out_of_gas_1696", %"$have_gas_1681" + %"$consume_1698" = sub i64 %"$gasrem_1694", 1 + store i64 %"$consume_1698", i64* @_gasrem, align 8 %ack23 = alloca %TName_Nat*, align 8 - %"$gasrem_1682" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1683" = icmp ugt i64 1, %"$gasrem_1682" - br i1 %"$gascmp_1683", label %"$out_of_gas_1684", label %"$have_gas_1685" + call void @llvm.dbg.declare(metadata %TName_Nat** %ack23, metadata !271, metadata !DIExpression()), !dbg !272 + %"$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" -"$out_of_gas_1684": ; preds = %"$have_gas_1680" +"$out_of_gas_1701": ; preds = %"$have_gas_1697" call void @_out_of_gas() - br label %"$have_gas_1685" + br label %"$have_gas_1702" -"$have_gas_1685": ; preds = %"$out_of_gas_1684", %"$have_gas_1680" - %"$consume_1686" = sub i64 %"$gasrem_1682", 1 - store i64 %"$consume_1686", i64* @_gasrem, align 8 +"$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 %"$ackermann_73" = alloca { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, align 8 - %"$ackermann_1687" = load { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }* %ackermann, align 8 - %"$ackermann_fptr_1688" = extractvalue { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$ackermann_1687", 0 - %"$ackermann_envptr_1689" = extractvalue { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$ackermann_1687", 1 - %"$n2_1690" = load %TName_Nat*, %TName_Nat** %n2, align 8 - %"$ackermann_call_1691" = call { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$ackermann_fptr_1688"(i8* %"$ackermann_envptr_1689", %TName_Nat* %"$n2_1690"), !dbg !140 - store { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$ackermann_call_1691", { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$ackermann_73", align 8, !dbg !140 + %"$ackermann_1704" = load { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }* %ackermann, align 8 + %"$ackermann_fptr_1705" = extractvalue { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$ackermann_1704", 0 + %"$ackermann_envptr_1706" = extractvalue { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$ackermann_1704", 1 + %"$n2_1707" = load %TName_Nat*, %TName_Nat** %n2, align 8 + %"$ackermann_call_1708" = call { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$ackermann_fptr_1705"(i8* %"$ackermann_envptr_1706", %TName_Nat* %"$n2_1707"), !dbg !273 + store { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$ackermann_call_1708", { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$ackermann_73", align 8, !dbg !273 %"$ackermann_74" = alloca %TName_Nat*, align 8 - %"$$ackermann_73_1692" = load { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$ackermann_73", align 8 - %"$$ackermann_73_fptr_1693" = extractvalue { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$$ackermann_73_1692", 0 - %"$$ackermann_73_envptr_1694" = extractvalue { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$$ackermann_73_1692", 1 - %"$n3_1695" = load %TName_Nat*, %TName_Nat** %n3, align 8 - %"$$ackermann_73_call_1696" = call %TName_Nat* %"$$ackermann_73_fptr_1693"(i8* %"$$ackermann_73_envptr_1694", %TName_Nat* %"$n3_1695"), !dbg !140 - store %TName_Nat* %"$$ackermann_73_call_1696", %TName_Nat** %"$ackermann_74", align 8, !dbg !140 - %"$$ackermann_74_1697" = load %TName_Nat*, %TName_Nat** %"$ackermann_74", align 8 - store %TName_Nat* %"$$ackermann_74_1697", %TName_Nat** %ack23, align 8, !dbg !140 - %"$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 = %"$have_gas_1685" - call void @_out_of_gas() - br label %"$have_gas_1701" - -"$have_gas_1701": ; preds = %"$out_of_gas_1700", %"$have_gas_1685" - %"$consume_1702" = sub i64 %"$gasrem_1698", 1 - store i64 %"$consume_1702", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Nat** %"$ackermann_74", metadata !274, metadata !DIExpression()), !dbg !273 + %"$$ackermann_73_1709" = load { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$ackermann_73", align 8 + %"$$ackermann_73_fptr_1710" = extractvalue { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$$ackermann_73_1709", 0 + %"$$ackermann_73_envptr_1711" = extractvalue { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$$ackermann_73_1709", 1 + %"$n3_1712" = load %TName_Nat*, %TName_Nat** %n3, align 8 + %"$$ackermann_73_call_1713" = call %TName_Nat* %"$$ackermann_73_fptr_1710"(i8* %"$$ackermann_73_envptr_1711", %TName_Nat* %"$n3_1712"), !dbg !273 + store %TName_Nat* %"$$ackermann_73_call_1713", %TName_Nat** %"$ackermann_74", align 8, !dbg !273 + %"$$ackermann_74_1714" = load %TName_Nat*, %TName_Nat** %"$ackermann_74", align 8 + store %TName_Nat* %"$$ackermann_74_1714", %TName_Nat** %ack23, align 8, !dbg !273 + %"$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_1717": ; preds = %"$have_gas_1702" + call void @_out_of_gas() + br label %"$have_gas_1718" + +"$have_gas_1718": ; preds = %"$out_of_gas_1717", %"$have_gas_1702" + %"$consume_1719" = sub i64 %"$gasrem_1715", 1 + store i64 %"$consume_1719", i64* @_gasrem, align 8 %ack24 = alloca %TName_Nat*, align 8 - %"$gasrem_1703" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1704" = icmp ugt i64 1, %"$gasrem_1703" - br i1 %"$gascmp_1704", label %"$out_of_gas_1705", label %"$have_gas_1706" + call void @llvm.dbg.declare(metadata %TName_Nat** %ack24, metadata !275, metadata !DIExpression()), !dbg !276 + %"$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_1705": ; preds = %"$have_gas_1701" +"$out_of_gas_1722": ; preds = %"$have_gas_1718" call void @_out_of_gas() - br label %"$have_gas_1706" + br label %"$have_gas_1723" -"$have_gas_1706": ; preds = %"$out_of_gas_1705", %"$have_gas_1701" - %"$consume_1707" = sub i64 %"$gasrem_1703", 1 - store i64 %"$consume_1707", i64* @_gasrem, align 8 +"$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 %"$ackermann_75" = alloca { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, align 8 - %"$ackermann_1708" = load { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }* %ackermann, align 8 - %"$ackermann_fptr_1709" = extractvalue { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$ackermann_1708", 0 - %"$ackermann_envptr_1710" = extractvalue { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$ackermann_1708", 1 - %"$n2_1711" = load %TName_Nat*, %TName_Nat** %n2, align 8 - %"$ackermann_call_1712" = call { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$ackermann_fptr_1709"(i8* %"$ackermann_envptr_1710", %TName_Nat* %"$n2_1711"), !dbg !141 - store { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$ackermann_call_1712", { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$ackermann_75", align 8, !dbg !141 + %"$ackermann_1725" = load { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }* %ackermann, align 8 + %"$ackermann_fptr_1726" = extractvalue { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$ackermann_1725", 0 + %"$ackermann_envptr_1727" = extractvalue { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$ackermann_1725", 1 + %"$n2_1728" = load %TName_Nat*, %TName_Nat** %n2, align 8 + %"$ackermann_call_1729" = call { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$ackermann_fptr_1726"(i8* %"$ackermann_envptr_1727", %TName_Nat* %"$n2_1728"), !dbg !277 + store { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$ackermann_call_1729", { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$ackermann_75", align 8, !dbg !277 %"$ackermann_76" = alloca %TName_Nat*, align 8 - %"$$ackermann_75_1713" = load { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$ackermann_75", align 8 - %"$$ackermann_75_fptr_1714" = extractvalue { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$$ackermann_75_1713", 0 - %"$$ackermann_75_envptr_1715" = extractvalue { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$$ackermann_75_1713", 1 - %"$n4_1716" = load %TName_Nat*, %TName_Nat** %n4, align 8 - %"$$ackermann_75_call_1717" = call %TName_Nat* %"$$ackermann_75_fptr_1714"(i8* %"$$ackermann_75_envptr_1715", %TName_Nat* %"$n4_1716"), !dbg !141 - store %TName_Nat* %"$$ackermann_75_call_1717", %TName_Nat** %"$ackermann_76", align 8, !dbg !141 - %"$$ackermann_76_1718" = load %TName_Nat*, %TName_Nat** %"$ackermann_76", align 8 - store %TName_Nat* %"$$ackermann_76_1718", %TName_Nat** %ack24, align 8, !dbg !141 - %"$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 = %"$have_gas_1706" - call void @_out_of_gas() - br label %"$have_gas_1722" - -"$have_gas_1722": ; preds = %"$out_of_gas_1721", %"$have_gas_1706" - %"$consume_1723" = sub i64 %"$gasrem_1719", 1 - store i64 %"$consume_1723", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Nat** %"$ackermann_76", metadata !278, metadata !DIExpression()), !dbg !277 + %"$$ackermann_75_1730" = load { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$ackermann_75", align 8 + %"$$ackermann_75_fptr_1731" = extractvalue { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$$ackermann_75_1730", 0 + %"$$ackermann_75_envptr_1732" = extractvalue { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$$ackermann_75_1730", 1 + %"$n4_1733" = load %TName_Nat*, %TName_Nat** %n4, align 8 + %"$$ackermann_75_call_1734" = call %TName_Nat* %"$$ackermann_75_fptr_1731"(i8* %"$$ackermann_75_envptr_1732", %TName_Nat* %"$n4_1733"), !dbg !277 + store %TName_Nat* %"$$ackermann_75_call_1734", %TName_Nat** %"$ackermann_76", align 8, !dbg !277 + %"$$ackermann_76_1735" = load %TName_Nat*, %TName_Nat** %"$ackermann_76", align 8 + store %TName_Nat* %"$$ackermann_76_1735", %TName_Nat** %ack24, align 8, !dbg !277 + %"$gasrem_1736" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1737" = icmp ugt i64 1, %"$gasrem_1736" + br i1 %"$gascmp_1737", label %"$out_of_gas_1738", label %"$have_gas_1739" + +"$out_of_gas_1738": ; preds = %"$have_gas_1723" + call void @_out_of_gas() + br label %"$have_gas_1739" + +"$have_gas_1739": ; preds = %"$out_of_gas_1738", %"$have_gas_1723" + %"$consume_1740" = sub i64 %"$gasrem_1736", 1 + store i64 %"$consume_1740", i64* @_gasrem, align 8 %ack30 = alloca %TName_Nat*, align 8 - %"$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" + call void @llvm.dbg.declare(metadata %TName_Nat** %ack30, metadata !279, metadata !DIExpression()), !dbg !280 + %"$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_1726": ; preds = %"$have_gas_1722" +"$out_of_gas_1743": ; preds = %"$have_gas_1739" call void @_out_of_gas() - br label %"$have_gas_1727" + br label %"$have_gas_1744" -"$have_gas_1727": ; preds = %"$out_of_gas_1726", %"$have_gas_1722" - %"$consume_1728" = sub i64 %"$gasrem_1724", 1 - store i64 %"$consume_1728", i64* @_gasrem, align 8 +"$have_gas_1744": ; preds = %"$out_of_gas_1743", %"$have_gas_1739" + %"$consume_1745" = sub i64 %"$gasrem_1741", 1 + store i64 %"$consume_1745", i64* @_gasrem, align 8 %"$ackermann_77" = alloca { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, align 8 - %"$ackermann_1729" = load { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }* %ackermann, align 8 - %"$ackermann_fptr_1730" = extractvalue { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$ackermann_1729", 0 - %"$ackermann_envptr_1731" = extractvalue { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$ackermann_1729", 1 - %"$n3_1732" = load %TName_Nat*, %TName_Nat** %n3, align 8 - %"$ackermann_call_1733" = call { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$ackermann_fptr_1730"(i8* %"$ackermann_envptr_1731", %TName_Nat* %"$n3_1732"), !dbg !142 - store { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$ackermann_call_1733", { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$ackermann_77", align 8, !dbg !142 + %"$ackermann_1746" = load { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }* %ackermann, align 8 + %"$ackermann_fptr_1747" = extractvalue { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$ackermann_1746", 0 + %"$ackermann_envptr_1748" = extractvalue { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$ackermann_1746", 1 + %"$n3_1749" = load %TName_Nat*, %TName_Nat** %n3, align 8 + %"$ackermann_call_1750" = call { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$ackermann_fptr_1747"(i8* %"$ackermann_envptr_1748", %TName_Nat* %"$n3_1749"), !dbg !281 + store { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$ackermann_call_1750", { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$ackermann_77", align 8, !dbg !281 %"$ackermann_78" = alloca %TName_Nat*, align 8 - %"$$ackermann_77_1734" = load { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$ackermann_77", align 8 - %"$$ackermann_77_fptr_1735" = extractvalue { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$$ackermann_77_1734", 0 - %"$$ackermann_77_envptr_1736" = extractvalue { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$$ackermann_77_1734", 1 - %"$n0_1737" = load %TName_Nat*, %TName_Nat** %n0, align 8 - %"$$ackermann_77_call_1738" = call %TName_Nat* %"$$ackermann_77_fptr_1735"(i8* %"$$ackermann_77_envptr_1736", %TName_Nat* %"$n0_1737"), !dbg !142 - store %TName_Nat* %"$$ackermann_77_call_1738", %TName_Nat** %"$ackermann_78", align 8, !dbg !142 - %"$$ackermann_78_1739" = load %TName_Nat*, %TName_Nat** %"$ackermann_78", align 8 - store %TName_Nat* %"$$ackermann_78_1739", %TName_Nat** %ack30, align 8, !dbg !142 - %"$gasrem_1740" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1741" = icmp ugt i64 1, %"$gasrem_1740" - br i1 %"$gascmp_1741", label %"$out_of_gas_1742", label %"$have_gas_1743" - -"$out_of_gas_1742": ; preds = %"$have_gas_1727" - call void @_out_of_gas() - br label %"$have_gas_1743" - -"$have_gas_1743": ; preds = %"$out_of_gas_1742", %"$have_gas_1727" - %"$consume_1744" = sub i64 %"$gasrem_1740", 1 - store i64 %"$consume_1744", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Nat** %"$ackermann_78", metadata !282, metadata !DIExpression()), !dbg !281 + %"$$ackermann_77_1751" = load { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$ackermann_77", align 8 + %"$$ackermann_77_fptr_1752" = extractvalue { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$$ackermann_77_1751", 0 + %"$$ackermann_77_envptr_1753" = extractvalue { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$$ackermann_77_1751", 1 + %"$n0_1754" = load %TName_Nat*, %TName_Nat** %n0, align 8 + %"$$ackermann_77_call_1755" = call %TName_Nat* %"$$ackermann_77_fptr_1752"(i8* %"$$ackermann_77_envptr_1753", %TName_Nat* %"$n0_1754"), !dbg !281 + store %TName_Nat* %"$$ackermann_77_call_1755", %TName_Nat** %"$ackermann_78", align 8, !dbg !281 + %"$$ackermann_78_1756" = load %TName_Nat*, %TName_Nat** %"$ackermann_78", align 8 + store %TName_Nat* %"$$ackermann_78_1756", %TName_Nat** %ack30, align 8, !dbg !281 + %"$gasrem_1757" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1758" = icmp ugt i64 1, %"$gasrem_1757" + br i1 %"$gascmp_1758", label %"$out_of_gas_1759", label %"$have_gas_1760" + +"$out_of_gas_1759": ; preds = %"$have_gas_1744" + call void @_out_of_gas() + br label %"$have_gas_1760" + +"$have_gas_1760": ; preds = %"$out_of_gas_1759", %"$have_gas_1744" + %"$consume_1761" = sub i64 %"$gasrem_1757", 1 + store i64 %"$consume_1761", i64* @_gasrem, align 8 %ack31 = alloca %TName_Nat*, align 8 - %"$gasrem_1745" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1746" = icmp ugt i64 1, %"$gasrem_1745" - br i1 %"$gascmp_1746", label %"$out_of_gas_1747", label %"$have_gas_1748" + call void @llvm.dbg.declare(metadata %TName_Nat** %ack31, metadata !283, metadata !DIExpression()), !dbg !284 + %"$gasrem_1762" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1763" = icmp ugt i64 1, %"$gasrem_1762" + br i1 %"$gascmp_1763", label %"$out_of_gas_1764", label %"$have_gas_1765" -"$out_of_gas_1747": ; preds = %"$have_gas_1743" +"$out_of_gas_1764": ; preds = %"$have_gas_1760" call void @_out_of_gas() - br label %"$have_gas_1748" + br label %"$have_gas_1765" -"$have_gas_1748": ; preds = %"$out_of_gas_1747", %"$have_gas_1743" - %"$consume_1749" = sub i64 %"$gasrem_1745", 1 - store i64 %"$consume_1749", i64* @_gasrem, align 8 +"$have_gas_1765": ; preds = %"$out_of_gas_1764", %"$have_gas_1760" + %"$consume_1766" = sub i64 %"$gasrem_1762", 1 + store i64 %"$consume_1766", i64* @_gasrem, align 8 %"$ackermann_79" = alloca { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, align 8 - %"$ackermann_1750" = load { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }* %ackermann, align 8 - %"$ackermann_fptr_1751" = extractvalue { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$ackermann_1750", 0 - %"$ackermann_envptr_1752" = extractvalue { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$ackermann_1750", 1 - %"$n3_1753" = load %TName_Nat*, %TName_Nat** %n3, align 8 - %"$ackermann_call_1754" = call { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$ackermann_fptr_1751"(i8* %"$ackermann_envptr_1752", %TName_Nat* %"$n3_1753"), !dbg !143 - store { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$ackermann_call_1754", { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$ackermann_79", align 8, !dbg !143 + %"$ackermann_1767" = load { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }* %ackermann, align 8 + %"$ackermann_fptr_1768" = extractvalue { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$ackermann_1767", 0 + %"$ackermann_envptr_1769" = extractvalue { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$ackermann_1767", 1 + %"$n3_1770" = load %TName_Nat*, %TName_Nat** %n3, align 8 + %"$ackermann_call_1771" = call { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$ackermann_fptr_1768"(i8* %"$ackermann_envptr_1769", %TName_Nat* %"$n3_1770"), !dbg !285 + store { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$ackermann_call_1771", { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$ackermann_79", align 8, !dbg !285 %"$ackermann_80" = alloca %TName_Nat*, align 8 - %"$$ackermann_79_1755" = load { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$ackermann_79", align 8 - %"$$ackermann_79_fptr_1756" = extractvalue { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$$ackermann_79_1755", 0 - %"$$ackermann_79_envptr_1757" = extractvalue { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$$ackermann_79_1755", 1 - %"$n1_1758" = load %TName_Nat*, %TName_Nat** %n1, align 8 - %"$$ackermann_79_call_1759" = call %TName_Nat* %"$$ackermann_79_fptr_1756"(i8* %"$$ackermann_79_envptr_1757", %TName_Nat* %"$n1_1758"), !dbg !143 - store %TName_Nat* %"$$ackermann_79_call_1759", %TName_Nat** %"$ackermann_80", align 8, !dbg !143 - %"$$ackermann_80_1760" = load %TName_Nat*, %TName_Nat** %"$ackermann_80", align 8 - store %TName_Nat* %"$$ackermann_80_1760", %TName_Nat** %ack31, align 8, !dbg !143 - %"$gasrem_1761" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1762" = icmp ugt i64 1, %"$gasrem_1761" - br i1 %"$gascmp_1762", label %"$out_of_gas_1763", label %"$have_gas_1764" - -"$out_of_gas_1763": ; preds = %"$have_gas_1748" - call void @_out_of_gas() - br label %"$have_gas_1764" - -"$have_gas_1764": ; preds = %"$out_of_gas_1763", %"$have_gas_1748" - %"$consume_1765" = sub i64 %"$gasrem_1761", 1 - store i64 %"$consume_1765", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Nat** %"$ackermann_80", metadata !286, metadata !DIExpression()), !dbg !285 + %"$$ackermann_79_1772" = load { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$ackermann_79", align 8 + %"$$ackermann_79_fptr_1773" = extractvalue { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$$ackermann_79_1772", 0 + %"$$ackermann_79_envptr_1774" = extractvalue { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$$ackermann_79_1772", 1 + %"$n1_1775" = load %TName_Nat*, %TName_Nat** %n1, align 8 + %"$$ackermann_79_call_1776" = call %TName_Nat* %"$$ackermann_79_fptr_1773"(i8* %"$$ackermann_79_envptr_1774", %TName_Nat* %"$n1_1775"), !dbg !285 + store %TName_Nat* %"$$ackermann_79_call_1776", %TName_Nat** %"$ackermann_80", align 8, !dbg !285 + %"$$ackermann_80_1777" = load %TName_Nat*, %TName_Nat** %"$ackermann_80", align 8 + store %TName_Nat* %"$$ackermann_80_1777", %TName_Nat** %ack31, align 8, !dbg !285 + %"$gasrem_1778" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1779" = icmp ugt i64 1, %"$gasrem_1778" + br i1 %"$gascmp_1779", label %"$out_of_gas_1780", label %"$have_gas_1781" + +"$out_of_gas_1780": ; preds = %"$have_gas_1765" + call void @_out_of_gas() + br label %"$have_gas_1781" + +"$have_gas_1781": ; preds = %"$out_of_gas_1780", %"$have_gas_1765" + %"$consume_1782" = sub i64 %"$gasrem_1778", 1 + store i64 %"$consume_1782", i64* @_gasrem, align 8 %ack32 = alloca %TName_Nat*, align 8 - %"$gasrem_1766" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1767" = icmp ugt i64 1, %"$gasrem_1766" - br i1 %"$gascmp_1767", label %"$out_of_gas_1768", label %"$have_gas_1769" + call void @llvm.dbg.declare(metadata %TName_Nat** %ack32, metadata !287, metadata !DIExpression()), !dbg !288 + %"$gasrem_1783" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1784" = icmp ugt i64 1, %"$gasrem_1783" + br i1 %"$gascmp_1784", label %"$out_of_gas_1785", label %"$have_gas_1786" -"$out_of_gas_1768": ; preds = %"$have_gas_1764" +"$out_of_gas_1785": ; preds = %"$have_gas_1781" call void @_out_of_gas() - br label %"$have_gas_1769" + br label %"$have_gas_1786" -"$have_gas_1769": ; preds = %"$out_of_gas_1768", %"$have_gas_1764" - %"$consume_1770" = sub i64 %"$gasrem_1766", 1 - store i64 %"$consume_1770", i64* @_gasrem, align 8 +"$have_gas_1786": ; preds = %"$out_of_gas_1785", %"$have_gas_1781" + %"$consume_1787" = sub i64 %"$gasrem_1783", 1 + store i64 %"$consume_1787", i64* @_gasrem, align 8 %"$ackermann_81" = alloca { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, align 8 - %"$ackermann_1771" = load { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }* %ackermann, align 8 - %"$ackermann_fptr_1772" = extractvalue { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$ackermann_1771", 0 - %"$ackermann_envptr_1773" = extractvalue { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$ackermann_1771", 1 - %"$n3_1774" = load %TName_Nat*, %TName_Nat** %n3, align 8 - %"$ackermann_call_1775" = call { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$ackermann_fptr_1772"(i8* %"$ackermann_envptr_1773", %TName_Nat* %"$n3_1774"), !dbg !144 - store { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$ackermann_call_1775", { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$ackermann_81", align 8, !dbg !144 + %"$ackermann_1788" = load { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }* %ackermann, align 8 + %"$ackermann_fptr_1789" = extractvalue { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$ackermann_1788", 0 + %"$ackermann_envptr_1790" = extractvalue { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$ackermann_1788", 1 + %"$n3_1791" = load %TName_Nat*, %TName_Nat** %n3, align 8 + %"$ackermann_call_1792" = call { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$ackermann_fptr_1789"(i8* %"$ackermann_envptr_1790", %TName_Nat* %"$n3_1791"), !dbg !289 + store { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$ackermann_call_1792", { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$ackermann_81", align 8, !dbg !289 %"$ackermann_82" = alloca %TName_Nat*, align 8 - %"$$ackermann_81_1776" = load { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$ackermann_81", align 8 - %"$$ackermann_81_fptr_1777" = extractvalue { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$$ackermann_81_1776", 0 - %"$$ackermann_81_envptr_1778" = extractvalue { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$$ackermann_81_1776", 1 - %"$n2_1779" = load %TName_Nat*, %TName_Nat** %n2, align 8 - %"$$ackermann_81_call_1780" = call %TName_Nat* %"$$ackermann_81_fptr_1777"(i8* %"$$ackermann_81_envptr_1778", %TName_Nat* %"$n2_1779"), !dbg !144 - store %TName_Nat* %"$$ackermann_81_call_1780", %TName_Nat** %"$ackermann_82", align 8, !dbg !144 - %"$$ackermann_82_1781" = load %TName_Nat*, %TName_Nat** %"$ackermann_82", align 8 - store %TName_Nat* %"$$ackermann_82_1781", %TName_Nat** %ack32, align 8, !dbg !144 - %"$gasrem_1782" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1783" = icmp ugt i64 1, %"$gasrem_1782" - br i1 %"$gascmp_1783", label %"$out_of_gas_1784", label %"$have_gas_1785" - -"$out_of_gas_1784": ; preds = %"$have_gas_1769" - call void @_out_of_gas() - br label %"$have_gas_1785" - -"$have_gas_1785": ; preds = %"$out_of_gas_1784", %"$have_gas_1769" - %"$consume_1786" = sub i64 %"$gasrem_1782", 1 - store i64 %"$consume_1786", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Nat** %"$ackermann_82", metadata !290, metadata !DIExpression()), !dbg !289 + %"$$ackermann_81_1793" = load { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$ackermann_81", align 8 + %"$$ackermann_81_fptr_1794" = extractvalue { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$$ackermann_81_1793", 0 + %"$$ackermann_81_envptr_1795" = extractvalue { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$$ackermann_81_1793", 1 + %"$n2_1796" = load %TName_Nat*, %TName_Nat** %n2, align 8 + %"$$ackermann_81_call_1797" = call %TName_Nat* %"$$ackermann_81_fptr_1794"(i8* %"$$ackermann_81_envptr_1795", %TName_Nat* %"$n2_1796"), !dbg !289 + store %TName_Nat* %"$$ackermann_81_call_1797", %TName_Nat** %"$ackermann_82", align 8, !dbg !289 + %"$$ackermann_82_1798" = load %TName_Nat*, %TName_Nat** %"$ackermann_82", align 8 + store %TName_Nat* %"$$ackermann_82_1798", %TName_Nat** %ack32, align 8, !dbg !289 + %"$gasrem_1799" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1800" = icmp ugt i64 1, %"$gasrem_1799" + br i1 %"$gascmp_1800", label %"$out_of_gas_1801", label %"$have_gas_1802" + +"$out_of_gas_1801": ; preds = %"$have_gas_1786" + call void @_out_of_gas() + br label %"$have_gas_1802" + +"$have_gas_1802": ; preds = %"$out_of_gas_1801", %"$have_gas_1786" + %"$consume_1803" = sub i64 %"$gasrem_1799", 1 + store i64 %"$consume_1803", i64* @_gasrem, align 8 %ack33 = alloca %TName_Nat*, align 8 - %"$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" + call void @llvm.dbg.declare(metadata %TName_Nat** %ack33, metadata !291, metadata !DIExpression()), !dbg !292 + %"$gasrem_1804" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1805" = icmp ugt i64 1, %"$gasrem_1804" + br i1 %"$gascmp_1805", label %"$out_of_gas_1806", label %"$have_gas_1807" -"$out_of_gas_1789": ; preds = %"$have_gas_1785" +"$out_of_gas_1806": ; preds = %"$have_gas_1802" call void @_out_of_gas() - br label %"$have_gas_1790" + br label %"$have_gas_1807" -"$have_gas_1790": ; preds = %"$out_of_gas_1789", %"$have_gas_1785" - %"$consume_1791" = sub i64 %"$gasrem_1787", 1 - store i64 %"$consume_1791", i64* @_gasrem, align 8 +"$have_gas_1807": ; preds = %"$out_of_gas_1806", %"$have_gas_1802" + %"$consume_1808" = sub i64 %"$gasrem_1804", 1 + store i64 %"$consume_1808", i64* @_gasrem, align 8 %"$ackermann_83" = alloca { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, align 8 - %"$ackermann_1792" = load { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }* %ackermann, align 8 - %"$ackermann_fptr_1793" = extractvalue { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$ackermann_1792", 0 - %"$ackermann_envptr_1794" = extractvalue { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$ackermann_1792", 1 - %"$n3_1795" = load %TName_Nat*, %TName_Nat** %n3, align 8 - %"$ackermann_call_1796" = call { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$ackermann_fptr_1793"(i8* %"$ackermann_envptr_1794", %TName_Nat* %"$n3_1795"), !dbg !145 - store { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$ackermann_call_1796", { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$ackermann_83", align 8, !dbg !145 + %"$ackermann_1809" = load { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }* %ackermann, align 8 + %"$ackermann_fptr_1810" = extractvalue { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$ackermann_1809", 0 + %"$ackermann_envptr_1811" = extractvalue { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$ackermann_1809", 1 + %"$n3_1812" = load %TName_Nat*, %TName_Nat** %n3, align 8 + %"$ackermann_call_1813" = call { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$ackermann_fptr_1810"(i8* %"$ackermann_envptr_1811", %TName_Nat* %"$n3_1812"), !dbg !293 + store { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$ackermann_call_1813", { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$ackermann_83", align 8, !dbg !293 %"$ackermann_84" = alloca %TName_Nat*, align 8 - %"$$ackermann_83_1797" = load { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$ackermann_83", align 8 - %"$$ackermann_83_fptr_1798" = extractvalue { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$$ackermann_83_1797", 0 - %"$$ackermann_83_envptr_1799" = extractvalue { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$$ackermann_83_1797", 1 - %"$n3_1800" = load %TName_Nat*, %TName_Nat** %n3, align 8 - %"$$ackermann_83_call_1801" = call %TName_Nat* %"$$ackermann_83_fptr_1798"(i8* %"$$ackermann_83_envptr_1799", %TName_Nat* %"$n3_1800"), !dbg !145 - store %TName_Nat* %"$$ackermann_83_call_1801", %TName_Nat** %"$ackermann_84", align 8, !dbg !145 - %"$$ackermann_84_1802" = load %TName_Nat*, %TName_Nat** %"$ackermann_84", align 8 - store %TName_Nat* %"$$ackermann_84_1802", %TName_Nat** %ack33, align 8, !dbg !145 - %"$gasrem_1803" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1804" = icmp ugt i64 1, %"$gasrem_1803" - br i1 %"$gascmp_1804", label %"$out_of_gas_1805", label %"$have_gas_1806" - -"$out_of_gas_1805": ; preds = %"$have_gas_1790" - call void @_out_of_gas() - br label %"$have_gas_1806" - -"$have_gas_1806": ; preds = %"$out_of_gas_1805", %"$have_gas_1790" - %"$consume_1807" = sub i64 %"$gasrem_1803", 1 - store i64 %"$consume_1807", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Nat** %"$ackermann_84", metadata !294, metadata !DIExpression()), !dbg !293 + %"$$ackermann_83_1814" = load { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$ackermann_83", align 8 + %"$$ackermann_83_fptr_1815" = extractvalue { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$$ackermann_83_1814", 0 + %"$$ackermann_83_envptr_1816" = extractvalue { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$$ackermann_83_1814", 1 + %"$n3_1817" = load %TName_Nat*, %TName_Nat** %n3, align 8 + %"$$ackermann_83_call_1818" = call %TName_Nat* %"$$ackermann_83_fptr_1815"(i8* %"$$ackermann_83_envptr_1816", %TName_Nat* %"$n3_1817"), !dbg !293 + store %TName_Nat* %"$$ackermann_83_call_1818", %TName_Nat** %"$ackermann_84", align 8, !dbg !293 + %"$$ackermann_84_1819" = load %TName_Nat*, %TName_Nat** %"$ackermann_84", align 8 + store %TName_Nat* %"$$ackermann_84_1819", %TName_Nat** %ack33, align 8, !dbg !293 + %"$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_1807" + call void @_out_of_gas() + br label %"$have_gas_1823" + +"$have_gas_1823": ; preds = %"$out_of_gas_1822", %"$have_gas_1807" + %"$consume_1824" = sub i64 %"$gasrem_1820", 1 + store i64 %"$consume_1824", i64* @_gasrem, align 8 %ack34 = alloca %TName_Nat*, align 8 - %"$gasrem_1808" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1809" = icmp ugt i64 1, %"$gasrem_1808" - br i1 %"$gascmp_1809", label %"$out_of_gas_1810", label %"$have_gas_1811" + call void @llvm.dbg.declare(metadata %TName_Nat** %ack34, metadata !295, metadata !DIExpression()), !dbg !296 + %"$gasrem_1825" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1826" = icmp ugt i64 1, %"$gasrem_1825" + br i1 %"$gascmp_1826", label %"$out_of_gas_1827", label %"$have_gas_1828" -"$out_of_gas_1810": ; preds = %"$have_gas_1806" +"$out_of_gas_1827": ; preds = %"$have_gas_1823" call void @_out_of_gas() - br label %"$have_gas_1811" + br label %"$have_gas_1828" -"$have_gas_1811": ; preds = %"$out_of_gas_1810", %"$have_gas_1806" - %"$consume_1812" = sub i64 %"$gasrem_1808", 1 - store i64 %"$consume_1812", i64* @_gasrem, align 8 +"$have_gas_1828": ; preds = %"$out_of_gas_1827", %"$have_gas_1823" + %"$consume_1829" = sub i64 %"$gasrem_1825", 1 + store i64 %"$consume_1829", i64* @_gasrem, align 8 %"$ackermann_85" = alloca { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, align 8 - %"$ackermann_1813" = load { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }* %ackermann, align 8 - %"$ackermann_fptr_1814" = extractvalue { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$ackermann_1813", 0 - %"$ackermann_envptr_1815" = extractvalue { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$ackermann_1813", 1 - %"$n3_1816" = load %TName_Nat*, %TName_Nat** %n3, align 8 - %"$ackermann_call_1817" = call { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$ackermann_fptr_1814"(i8* %"$ackermann_envptr_1815", %TName_Nat* %"$n3_1816"), !dbg !146 - store { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$ackermann_call_1817", { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$ackermann_85", align 8, !dbg !146 + %"$ackermann_1830" = load { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }* %ackermann, align 8 + %"$ackermann_fptr_1831" = extractvalue { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$ackermann_1830", 0 + %"$ackermann_envptr_1832" = extractvalue { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$ackermann_1830", 1 + %"$n3_1833" = load %TName_Nat*, %TName_Nat** %n3, align 8 + %"$ackermann_call_1834" = call { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$ackermann_fptr_1831"(i8* %"$ackermann_envptr_1832", %TName_Nat* %"$n3_1833"), !dbg !297 + store { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$ackermann_call_1834", { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$ackermann_85", align 8, !dbg !297 %"$ackermann_86" = alloca %TName_Nat*, align 8 - %"$$ackermann_85_1818" = load { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$ackermann_85", align 8 - %"$$ackermann_85_fptr_1819" = extractvalue { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$$ackermann_85_1818", 0 - %"$$ackermann_85_envptr_1820" = extractvalue { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$$ackermann_85_1818", 1 - %"$n4_1821" = load %TName_Nat*, %TName_Nat** %n4, align 8 - %"$$ackermann_85_call_1822" = call %TName_Nat* %"$$ackermann_85_fptr_1819"(i8* %"$$ackermann_85_envptr_1820", %TName_Nat* %"$n4_1821"), !dbg !146 - store %TName_Nat* %"$$ackermann_85_call_1822", %TName_Nat** %"$ackermann_86", align 8, !dbg !146 - %"$$ackermann_86_1823" = load %TName_Nat*, %TName_Nat** %"$ackermann_86", align 8 - store %TName_Nat* %"$$ackermann_86_1823", %TName_Nat** %ack34, align 8, !dbg !146 - %"$gasrem_1824" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1825" = icmp ugt i64 1, %"$gasrem_1824" - br i1 %"$gascmp_1825", label %"$out_of_gas_1826", label %"$have_gas_1827" - -"$out_of_gas_1826": ; preds = %"$have_gas_1811" - call void @_out_of_gas() - br label %"$have_gas_1827" - -"$have_gas_1827": ; preds = %"$out_of_gas_1826", %"$have_gas_1811" - %"$consume_1828" = sub i64 %"$gasrem_1824", 1 - store i64 %"$consume_1828", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Nat** %"$ackermann_86", metadata !298, metadata !DIExpression()), !dbg !297 + %"$$ackermann_85_1835" = load { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$ackermann_85", align 8 + %"$$ackermann_85_fptr_1836" = extractvalue { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$$ackermann_85_1835", 0 + %"$$ackermann_85_envptr_1837" = extractvalue { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$$ackermann_85_1835", 1 + %"$n4_1838" = load %TName_Nat*, %TName_Nat** %n4, align 8 + %"$$ackermann_85_call_1839" = call %TName_Nat* %"$$ackermann_85_fptr_1836"(i8* %"$$ackermann_85_envptr_1837", %TName_Nat* %"$n4_1838"), !dbg !297 + store %TName_Nat* %"$$ackermann_85_call_1839", %TName_Nat** %"$ackermann_86", align 8, !dbg !297 + %"$$ackermann_86_1840" = load %TName_Nat*, %TName_Nat** %"$ackermann_86", align 8 + store %TName_Nat* %"$$ackermann_86_1840", %TName_Nat** %ack34, align 8, !dbg !297 + %"$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 = %"$have_gas_1828" + call void @_out_of_gas() + br label %"$have_gas_1844" + +"$have_gas_1844": ; preds = %"$out_of_gas_1843", %"$have_gas_1828" + %"$consume_1845" = sub i64 %"$gasrem_1841", 1 + store i64 %"$consume_1845", i64* @_gasrem, align 8 %ack40 = alloca %TName_Nat*, align 8 - %"$gasrem_1829" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1830" = icmp ugt i64 1, %"$gasrem_1829" - br i1 %"$gascmp_1830", label %"$out_of_gas_1831", label %"$have_gas_1832" + call void @llvm.dbg.declare(metadata %TName_Nat** %ack40, metadata !299, metadata !DIExpression()), !dbg !300 + %"$gasrem_1846" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1847" = icmp ugt i64 1, %"$gasrem_1846" + br i1 %"$gascmp_1847", label %"$out_of_gas_1848", label %"$have_gas_1849" -"$out_of_gas_1831": ; preds = %"$have_gas_1827" +"$out_of_gas_1848": ; preds = %"$have_gas_1844" call void @_out_of_gas() - br label %"$have_gas_1832" + br label %"$have_gas_1849" -"$have_gas_1832": ; preds = %"$out_of_gas_1831", %"$have_gas_1827" - %"$consume_1833" = sub i64 %"$gasrem_1829", 1 - store i64 %"$consume_1833", i64* @_gasrem, align 8 +"$have_gas_1849": ; preds = %"$out_of_gas_1848", %"$have_gas_1844" + %"$consume_1850" = sub i64 %"$gasrem_1846", 1 + store i64 %"$consume_1850", i64* @_gasrem, align 8 %"$ackermann_87" = alloca { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, align 8 - %"$ackermann_1834" = load { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }* %ackermann, align 8 - %"$ackermann_fptr_1835" = extractvalue { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$ackermann_1834", 0 - %"$ackermann_envptr_1836" = extractvalue { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$ackermann_1834", 1 - %"$n4_1837" = load %TName_Nat*, %TName_Nat** %n4, align 8 - %"$ackermann_call_1838" = call { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$ackermann_fptr_1835"(i8* %"$ackermann_envptr_1836", %TName_Nat* %"$n4_1837"), !dbg !147 - store { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$ackermann_call_1838", { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$ackermann_87", align 8, !dbg !147 + %"$ackermann_1851" = load { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }* %ackermann, align 8 + %"$ackermann_fptr_1852" = extractvalue { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$ackermann_1851", 0 + %"$ackermann_envptr_1853" = extractvalue { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$ackermann_1851", 1 + %"$n4_1854" = load %TName_Nat*, %TName_Nat** %n4, align 8 + %"$ackermann_call_1855" = call { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$ackermann_fptr_1852"(i8* %"$ackermann_envptr_1853", %TName_Nat* %"$n4_1854"), !dbg !301 + store { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$ackermann_call_1855", { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$ackermann_87", align 8, !dbg !301 %"$ackermann_88" = alloca %TName_Nat*, align 8 - %"$$ackermann_87_1839" = load { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$ackermann_87", align 8 - %"$$ackermann_87_fptr_1840" = extractvalue { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$$ackermann_87_1839", 0 - %"$$ackermann_87_envptr_1841" = extractvalue { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$$ackermann_87_1839", 1 - %"$n0_1842" = load %TName_Nat*, %TName_Nat** %n0, align 8 - %"$$ackermann_87_call_1843" = call %TName_Nat* %"$$ackermann_87_fptr_1840"(i8* %"$$ackermann_87_envptr_1841", %TName_Nat* %"$n0_1842"), !dbg !147 - store %TName_Nat* %"$$ackermann_87_call_1843", %TName_Nat** %"$ackermann_88", align 8, !dbg !147 - %"$$ackermann_88_1844" = load %TName_Nat*, %TName_Nat** %"$ackermann_88", align 8 - store %TName_Nat* %"$$ackermann_88_1844", %TName_Nat** %ack40, align 8, !dbg !147 - %"$gasrem_1845" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1846" = icmp ugt i64 1, %"$gasrem_1845" - br i1 %"$gascmp_1846", label %"$out_of_gas_1847", label %"$have_gas_1848" - -"$out_of_gas_1847": ; preds = %"$have_gas_1832" - call void @_out_of_gas() - br label %"$have_gas_1848" - -"$have_gas_1848": ; preds = %"$out_of_gas_1847", %"$have_gas_1832" - %"$consume_1849" = sub i64 %"$gasrem_1845", 1 - store i64 %"$consume_1849", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Nat** %"$ackermann_88", metadata !302, metadata !DIExpression()), !dbg !301 + %"$$ackermann_87_1856" = load { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$ackermann_87", align 8 + %"$$ackermann_87_fptr_1857" = extractvalue { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$$ackermann_87_1856", 0 + %"$$ackermann_87_envptr_1858" = extractvalue { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$$ackermann_87_1856", 1 + %"$n0_1859" = load %TName_Nat*, %TName_Nat** %n0, align 8 + %"$$ackermann_87_call_1860" = call %TName_Nat* %"$$ackermann_87_fptr_1857"(i8* %"$$ackermann_87_envptr_1858", %TName_Nat* %"$n0_1859"), !dbg !301 + store %TName_Nat* %"$$ackermann_87_call_1860", %TName_Nat** %"$ackermann_88", align 8, !dbg !301 + %"$$ackermann_88_1861" = load %TName_Nat*, %TName_Nat** %"$ackermann_88", align 8 + store %TName_Nat* %"$$ackermann_88_1861", %TName_Nat** %ack40, align 8, !dbg !301 + %"$gasrem_1862" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1863" = icmp ugt i64 1, %"$gasrem_1862" + br i1 %"$gascmp_1863", label %"$out_of_gas_1864", label %"$have_gas_1865" + +"$out_of_gas_1864": ; preds = %"$have_gas_1849" + call void @_out_of_gas() + br label %"$have_gas_1865" + +"$have_gas_1865": ; preds = %"$out_of_gas_1864", %"$have_gas_1849" + %"$consume_1866" = sub i64 %"$gasrem_1862", 1 + store i64 %"$consume_1866", i64* @_gasrem, align 8 %int01 = alloca %Uint32, align 8 - %"$gasrem_1850" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1851" = icmp ugt i64 1, %"$gasrem_1850" - br i1 %"$gascmp_1851", label %"$out_of_gas_1852", label %"$have_gas_1853" + call void @llvm.dbg.declare(metadata %Uint32* %int01, metadata !303, metadata !DIExpression()), !dbg !304 + %"$gasrem_1867" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1868" = icmp ugt i64 1, %"$gasrem_1867" + br i1 %"$gascmp_1868", label %"$out_of_gas_1869", label %"$have_gas_1870" -"$out_of_gas_1852": ; preds = %"$have_gas_1848" +"$out_of_gas_1869": ; preds = %"$have_gas_1865" call void @_out_of_gas() - br label %"$have_gas_1853" + br label %"$have_gas_1870" -"$have_gas_1853": ; preds = %"$out_of_gas_1852", %"$have_gas_1848" - %"$consume_1854" = sub i64 %"$gasrem_1850", 1 - store i64 %"$consume_1854", i64* @_gasrem, align 8 +"$have_gas_1870": ; preds = %"$out_of_gas_1869", %"$have_gas_1865" + %"$consume_1871" = sub i64 %"$gasrem_1867", 1 + store i64 %"$consume_1871", i64* @_gasrem, align 8 %"$NatUtils.nat_to_int_89" = alloca %Uint32, align 8 - %"$NatUtils.nat_to_int_1855" = load { %Uint32 (i8*, %TName_Nat*)*, i8* }, { %Uint32 (i8*, %TName_Nat*)*, i8* }* @NatUtils.nat_to_int, align 8 - %"$NatUtils.nat_to_int_fptr_1856" = extractvalue { %Uint32 (i8*, %TName_Nat*)*, i8* } %"$NatUtils.nat_to_int_1855", 0 - %"$NatUtils.nat_to_int_envptr_1857" = extractvalue { %Uint32 (i8*, %TName_Nat*)*, i8* } %"$NatUtils.nat_to_int_1855", 1 - %"$ack00_1858" = load %TName_Nat*, %TName_Nat** %ack00, align 8 - %"$NatUtils.nat_to_int_call_1859" = call %Uint32 %"$NatUtils.nat_to_int_fptr_1856"(i8* %"$NatUtils.nat_to_int_envptr_1857", %TName_Nat* %"$ack00_1858"), !dbg !148 - store %Uint32 %"$NatUtils.nat_to_int_call_1859", %Uint32* %"$NatUtils.nat_to_int_89", align 4, !dbg !148 - %"$$NatUtils.nat_to_int_89_1860" = load %Uint32, %Uint32* %"$NatUtils.nat_to_int_89", align 4 - store %Uint32 %"$$NatUtils.nat_to_int_89_1860", %Uint32* %int01, align 4, !dbg !148 - %"$gasrem_1861" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1862" = icmp ugt i64 1, %"$gasrem_1861" - br i1 %"$gascmp_1862", label %"$out_of_gas_1863", label %"$have_gas_1864" - -"$out_of_gas_1863": ; preds = %"$have_gas_1853" - call void @_out_of_gas() - br label %"$have_gas_1864" - -"$have_gas_1864": ; preds = %"$out_of_gas_1863", %"$have_gas_1853" - %"$consume_1865" = sub i64 %"$gasrem_1861", 1 - store i64 %"$consume_1865", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %Uint32* %"$NatUtils.nat_to_int_89", metadata !305, metadata !DIExpression()), !dbg !306 + %"$NatUtils.nat_to_int_1872" = load { %Uint32 (i8*, %TName_Nat*)*, i8* }, { %Uint32 (i8*, %TName_Nat*)*, i8* }* @NatUtils.nat_to_int, align 8 + %"$NatUtils.nat_to_int_fptr_1873" = extractvalue { %Uint32 (i8*, %TName_Nat*)*, i8* } %"$NatUtils.nat_to_int_1872", 0 + %"$NatUtils.nat_to_int_envptr_1874" = extractvalue { %Uint32 (i8*, %TName_Nat*)*, i8* } %"$NatUtils.nat_to_int_1872", 1 + %"$ack00_1875" = load %TName_Nat*, %TName_Nat** %ack00, align 8 + %"$NatUtils.nat_to_int_call_1876" = call %Uint32 %"$NatUtils.nat_to_int_fptr_1873"(i8* %"$NatUtils.nat_to_int_envptr_1874", %TName_Nat* %"$ack00_1875"), !dbg !306 + store %Uint32 %"$NatUtils.nat_to_int_call_1876", %Uint32* %"$NatUtils.nat_to_int_89", align 4, !dbg !306 + %"$$NatUtils.nat_to_int_89_1877" = load %Uint32, %Uint32* %"$NatUtils.nat_to_int_89", align 4 + store %Uint32 %"$$NatUtils.nat_to_int_89_1877", %Uint32* %int01, align 4, !dbg !306 + %"$gasrem_1878" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1879" = icmp ugt i64 1, %"$gasrem_1878" + br i1 %"$gascmp_1879", label %"$out_of_gas_1880", label %"$have_gas_1881" + +"$out_of_gas_1880": ; preds = %"$have_gas_1870" + call void @_out_of_gas() + br label %"$have_gas_1881" + +"$have_gas_1881": ; preds = %"$out_of_gas_1880", %"$have_gas_1870" + %"$consume_1882" = sub i64 %"$gasrem_1878", 1 + store i64 %"$consume_1882", i64* @_gasrem, align 8 %int02 = alloca %Uint32, align 8 - %"$gasrem_1866" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1867" = icmp ugt i64 1, %"$gasrem_1866" - br i1 %"$gascmp_1867", label %"$out_of_gas_1868", label %"$have_gas_1869" + call void @llvm.dbg.declare(metadata %Uint32* %int02, metadata !307, metadata !DIExpression()), !dbg !308 + %"$gasrem_1883" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1884" = icmp ugt i64 1, %"$gasrem_1883" + br i1 %"$gascmp_1884", label %"$out_of_gas_1885", label %"$have_gas_1886" -"$out_of_gas_1868": ; preds = %"$have_gas_1864" +"$out_of_gas_1885": ; preds = %"$have_gas_1881" call void @_out_of_gas() - br label %"$have_gas_1869" + br label %"$have_gas_1886" -"$have_gas_1869": ; preds = %"$out_of_gas_1868", %"$have_gas_1864" - %"$consume_1870" = sub i64 %"$gasrem_1866", 1 - store i64 %"$consume_1870", i64* @_gasrem, align 8 +"$have_gas_1886": ; preds = %"$out_of_gas_1885", %"$have_gas_1881" + %"$consume_1887" = sub i64 %"$gasrem_1883", 1 + store i64 %"$consume_1887", i64* @_gasrem, align 8 %"$NatUtils.nat_to_int_90" = alloca %Uint32, align 8 - %"$NatUtils.nat_to_int_1871" = load { %Uint32 (i8*, %TName_Nat*)*, i8* }, { %Uint32 (i8*, %TName_Nat*)*, i8* }* @NatUtils.nat_to_int, align 8 - %"$NatUtils.nat_to_int_fptr_1872" = extractvalue { %Uint32 (i8*, %TName_Nat*)*, i8* } %"$NatUtils.nat_to_int_1871", 0 - %"$NatUtils.nat_to_int_envptr_1873" = extractvalue { %Uint32 (i8*, %TName_Nat*)*, i8* } %"$NatUtils.nat_to_int_1871", 1 - %"$ack02_1874" = load %TName_Nat*, %TName_Nat** %ack02, align 8 - %"$NatUtils.nat_to_int_call_1875" = call %Uint32 %"$NatUtils.nat_to_int_fptr_1872"(i8* %"$NatUtils.nat_to_int_envptr_1873", %TName_Nat* %"$ack02_1874"), !dbg !149 - store %Uint32 %"$NatUtils.nat_to_int_call_1875", %Uint32* %"$NatUtils.nat_to_int_90", align 4, !dbg !149 - %"$$NatUtils.nat_to_int_90_1876" = load %Uint32, %Uint32* %"$NatUtils.nat_to_int_90", align 4 - store %Uint32 %"$$NatUtils.nat_to_int_90_1876", %Uint32* %int02, align 4, !dbg !149 - %"$gasrem_1877" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1878" = icmp ugt i64 1, %"$gasrem_1877" - br i1 %"$gascmp_1878", label %"$out_of_gas_1879", label %"$have_gas_1880" - -"$out_of_gas_1879": ; preds = %"$have_gas_1869" - call void @_out_of_gas() - br label %"$have_gas_1880" - -"$have_gas_1880": ; preds = %"$out_of_gas_1879", %"$have_gas_1869" - %"$consume_1881" = sub i64 %"$gasrem_1877", 1 - store i64 %"$consume_1881", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %Uint32* %"$NatUtils.nat_to_int_90", metadata !309, metadata !DIExpression()), !dbg !310 + %"$NatUtils.nat_to_int_1888" = load { %Uint32 (i8*, %TName_Nat*)*, i8* }, { %Uint32 (i8*, %TName_Nat*)*, i8* }* @NatUtils.nat_to_int, align 8 + %"$NatUtils.nat_to_int_fptr_1889" = extractvalue { %Uint32 (i8*, %TName_Nat*)*, i8* } %"$NatUtils.nat_to_int_1888", 0 + %"$NatUtils.nat_to_int_envptr_1890" = extractvalue { %Uint32 (i8*, %TName_Nat*)*, i8* } %"$NatUtils.nat_to_int_1888", 1 + %"$ack02_1891" = load %TName_Nat*, %TName_Nat** %ack02, align 8 + %"$NatUtils.nat_to_int_call_1892" = call %Uint32 %"$NatUtils.nat_to_int_fptr_1889"(i8* %"$NatUtils.nat_to_int_envptr_1890", %TName_Nat* %"$ack02_1891"), !dbg !310 + store %Uint32 %"$NatUtils.nat_to_int_call_1892", %Uint32* %"$NatUtils.nat_to_int_90", align 4, !dbg !310 + %"$$NatUtils.nat_to_int_90_1893" = load %Uint32, %Uint32* %"$NatUtils.nat_to_int_90", align 4 + store %Uint32 %"$$NatUtils.nat_to_int_90_1893", %Uint32* %int02, align 4, !dbg !310 + %"$gasrem_1894" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1895" = icmp ugt i64 1, %"$gasrem_1894" + br i1 %"$gascmp_1895", label %"$out_of_gas_1896", label %"$have_gas_1897" + +"$out_of_gas_1896": ; preds = %"$have_gas_1886" + call void @_out_of_gas() + br label %"$have_gas_1897" + +"$have_gas_1897": ; preds = %"$out_of_gas_1896", %"$have_gas_1886" + %"$consume_1898" = sub i64 %"$gasrem_1894", 1 + store i64 %"$consume_1898", i64* @_gasrem, align 8 %int03 = alloca %Uint32, 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" + call void @llvm.dbg.declare(metadata %Uint32* %int03, metadata !311, metadata !DIExpression()), !dbg !312 + %"$gasrem_1899" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1900" = icmp ugt i64 1, %"$gasrem_1899" + br i1 %"$gascmp_1900", label %"$out_of_gas_1901", label %"$have_gas_1902" -"$out_of_gas_1884": ; preds = %"$have_gas_1880" +"$out_of_gas_1901": ; preds = %"$have_gas_1897" call void @_out_of_gas() - br label %"$have_gas_1885" + br label %"$have_gas_1902" -"$have_gas_1885": ; preds = %"$out_of_gas_1884", %"$have_gas_1880" - %"$consume_1886" = sub i64 %"$gasrem_1882", 1 - store i64 %"$consume_1886", i64* @_gasrem, align 8 +"$have_gas_1902": ; preds = %"$out_of_gas_1901", %"$have_gas_1897" + %"$consume_1903" = sub i64 %"$gasrem_1899", 1 + store i64 %"$consume_1903", i64* @_gasrem, align 8 %"$NatUtils.nat_to_int_91" = alloca %Uint32, align 8 - %"$NatUtils.nat_to_int_1887" = load { %Uint32 (i8*, %TName_Nat*)*, i8* }, { %Uint32 (i8*, %TName_Nat*)*, i8* }* @NatUtils.nat_to_int, align 8 - %"$NatUtils.nat_to_int_fptr_1888" = extractvalue { %Uint32 (i8*, %TName_Nat*)*, i8* } %"$NatUtils.nat_to_int_1887", 0 - %"$NatUtils.nat_to_int_envptr_1889" = extractvalue { %Uint32 (i8*, %TName_Nat*)*, i8* } %"$NatUtils.nat_to_int_1887", 1 - %"$ack03_1890" = load %TName_Nat*, %TName_Nat** %ack03, align 8 - %"$NatUtils.nat_to_int_call_1891" = call %Uint32 %"$NatUtils.nat_to_int_fptr_1888"(i8* %"$NatUtils.nat_to_int_envptr_1889", %TName_Nat* %"$ack03_1890"), !dbg !150 - store %Uint32 %"$NatUtils.nat_to_int_call_1891", %Uint32* %"$NatUtils.nat_to_int_91", align 4, !dbg !150 - %"$$NatUtils.nat_to_int_91_1892" = load %Uint32, %Uint32* %"$NatUtils.nat_to_int_91", align 4 - store %Uint32 %"$$NatUtils.nat_to_int_91_1892", %Uint32* %int03, align 4, !dbg !150 - %"$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" - -"$out_of_gas_1895": ; preds = %"$have_gas_1885" - call void @_out_of_gas() - br label %"$have_gas_1896" - -"$have_gas_1896": ; preds = %"$out_of_gas_1895", %"$have_gas_1885" - %"$consume_1897" = sub i64 %"$gasrem_1893", 1 - store i64 %"$consume_1897", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %Uint32* %"$NatUtils.nat_to_int_91", metadata !313, metadata !DIExpression()), !dbg !314 + %"$NatUtils.nat_to_int_1904" = load { %Uint32 (i8*, %TName_Nat*)*, i8* }, { %Uint32 (i8*, %TName_Nat*)*, i8* }* @NatUtils.nat_to_int, align 8 + %"$NatUtils.nat_to_int_fptr_1905" = extractvalue { %Uint32 (i8*, %TName_Nat*)*, i8* } %"$NatUtils.nat_to_int_1904", 0 + %"$NatUtils.nat_to_int_envptr_1906" = extractvalue { %Uint32 (i8*, %TName_Nat*)*, i8* } %"$NatUtils.nat_to_int_1904", 1 + %"$ack03_1907" = load %TName_Nat*, %TName_Nat** %ack03, align 8 + %"$NatUtils.nat_to_int_call_1908" = call %Uint32 %"$NatUtils.nat_to_int_fptr_1905"(i8* %"$NatUtils.nat_to_int_envptr_1906", %TName_Nat* %"$ack03_1907"), !dbg !314 + store %Uint32 %"$NatUtils.nat_to_int_call_1908", %Uint32* %"$NatUtils.nat_to_int_91", align 4, !dbg !314 + %"$$NatUtils.nat_to_int_91_1909" = load %Uint32, %Uint32* %"$NatUtils.nat_to_int_91", align 4 + store %Uint32 %"$$NatUtils.nat_to_int_91_1909", %Uint32* %int03, align 4, !dbg !314 + %"$gasrem_1910" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1911" = icmp ugt i64 1, %"$gasrem_1910" + br i1 %"$gascmp_1911", label %"$out_of_gas_1912", label %"$have_gas_1913" + +"$out_of_gas_1912": ; preds = %"$have_gas_1902" + call void @_out_of_gas() + br label %"$have_gas_1913" + +"$have_gas_1913": ; preds = %"$out_of_gas_1912", %"$have_gas_1902" + %"$consume_1914" = sub i64 %"$gasrem_1910", 1 + store i64 %"$consume_1914", i64* @_gasrem, align 8 %int04 = alloca %Uint32, 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" + call void @llvm.dbg.declare(metadata %Uint32* %int04, metadata !315, metadata !DIExpression()), !dbg !316 + %"$gasrem_1915" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1916" = icmp ugt i64 1, %"$gasrem_1915" + br i1 %"$gascmp_1916", label %"$out_of_gas_1917", label %"$have_gas_1918" -"$out_of_gas_1900": ; preds = %"$have_gas_1896" +"$out_of_gas_1917": ; preds = %"$have_gas_1913" call void @_out_of_gas() - br label %"$have_gas_1901" + br label %"$have_gas_1918" -"$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 +"$have_gas_1918": ; preds = %"$out_of_gas_1917", %"$have_gas_1913" + %"$consume_1919" = sub i64 %"$gasrem_1915", 1 + store i64 %"$consume_1919", i64* @_gasrem, align 8 %"$NatUtils.nat_to_int_92" = alloca %Uint32, align 8 - %"$NatUtils.nat_to_int_1903" = load { %Uint32 (i8*, %TName_Nat*)*, i8* }, { %Uint32 (i8*, %TName_Nat*)*, i8* }* @NatUtils.nat_to_int, align 8 - %"$NatUtils.nat_to_int_fptr_1904" = extractvalue { %Uint32 (i8*, %TName_Nat*)*, i8* } %"$NatUtils.nat_to_int_1903", 0 - %"$NatUtils.nat_to_int_envptr_1905" = extractvalue { %Uint32 (i8*, %TName_Nat*)*, i8* } %"$NatUtils.nat_to_int_1903", 1 - %"$ack04_1906" = load %TName_Nat*, %TName_Nat** %ack04, align 8 - %"$NatUtils.nat_to_int_call_1907" = call %Uint32 %"$NatUtils.nat_to_int_fptr_1904"(i8* %"$NatUtils.nat_to_int_envptr_1905", %TName_Nat* %"$ack04_1906"), !dbg !151 - store %Uint32 %"$NatUtils.nat_to_int_call_1907", %Uint32* %"$NatUtils.nat_to_int_92", align 4, !dbg !151 - %"$$NatUtils.nat_to_int_92_1908" = load %Uint32, %Uint32* %"$NatUtils.nat_to_int_92", align 4 - store %Uint32 %"$$NatUtils.nat_to_int_92_1908", %Uint32* %int04, align 4, !dbg !151 - %"$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" - -"$out_of_gas_1911": ; preds = %"$have_gas_1901" - call void @_out_of_gas() - br label %"$have_gas_1912" - -"$have_gas_1912": ; preds = %"$out_of_gas_1911", %"$have_gas_1901" - %"$consume_1913" = sub i64 %"$gasrem_1909", 1 - store i64 %"$consume_1913", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %Uint32* %"$NatUtils.nat_to_int_92", metadata !317, metadata !DIExpression()), !dbg !318 + %"$NatUtils.nat_to_int_1920" = load { %Uint32 (i8*, %TName_Nat*)*, i8* }, { %Uint32 (i8*, %TName_Nat*)*, i8* }* @NatUtils.nat_to_int, align 8 + %"$NatUtils.nat_to_int_fptr_1921" = extractvalue { %Uint32 (i8*, %TName_Nat*)*, i8* } %"$NatUtils.nat_to_int_1920", 0 + %"$NatUtils.nat_to_int_envptr_1922" = extractvalue { %Uint32 (i8*, %TName_Nat*)*, i8* } %"$NatUtils.nat_to_int_1920", 1 + %"$ack04_1923" = load %TName_Nat*, %TName_Nat** %ack04, align 8 + %"$NatUtils.nat_to_int_call_1924" = call %Uint32 %"$NatUtils.nat_to_int_fptr_1921"(i8* %"$NatUtils.nat_to_int_envptr_1922", %TName_Nat* %"$ack04_1923"), !dbg !318 + store %Uint32 %"$NatUtils.nat_to_int_call_1924", %Uint32* %"$NatUtils.nat_to_int_92", align 4, !dbg !318 + %"$$NatUtils.nat_to_int_92_1925" = load %Uint32, %Uint32* %"$NatUtils.nat_to_int_92", align 4 + store %Uint32 %"$$NatUtils.nat_to_int_92_1925", %Uint32* %int04, align 4, !dbg !318 + %"$gasrem_1926" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1927" = icmp ugt i64 1, %"$gasrem_1926" + br i1 %"$gascmp_1927", label %"$out_of_gas_1928", label %"$have_gas_1929" + +"$out_of_gas_1928": ; preds = %"$have_gas_1918" + call void @_out_of_gas() + br label %"$have_gas_1929" + +"$have_gas_1929": ; preds = %"$out_of_gas_1928", %"$have_gas_1918" + %"$consume_1930" = sub i64 %"$gasrem_1926", 1 + store i64 %"$consume_1930", i64* @_gasrem, align 8 %int10 = alloca %Uint32, align 8 - %"$gasrem_1914" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1915" = icmp ugt i64 1, %"$gasrem_1914" - br i1 %"$gascmp_1915", label %"$out_of_gas_1916", label %"$have_gas_1917" + call void @llvm.dbg.declare(metadata %Uint32* %int10, metadata !319, metadata !DIExpression()), !dbg !320 + %"$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_1916": ; preds = %"$have_gas_1912" +"$out_of_gas_1933": ; preds = %"$have_gas_1929" call void @_out_of_gas() - br label %"$have_gas_1917" + br label %"$have_gas_1934" -"$have_gas_1917": ; preds = %"$out_of_gas_1916", %"$have_gas_1912" - %"$consume_1918" = sub i64 %"$gasrem_1914", 1 - store i64 %"$consume_1918", i64* @_gasrem, align 8 +"$have_gas_1934": ; preds = %"$out_of_gas_1933", %"$have_gas_1929" + %"$consume_1935" = sub i64 %"$gasrem_1931", 1 + store i64 %"$consume_1935", i64* @_gasrem, align 8 %"$NatUtils.nat_to_int_93" = alloca %Uint32, align 8 - %"$NatUtils.nat_to_int_1919" = load { %Uint32 (i8*, %TName_Nat*)*, i8* }, { %Uint32 (i8*, %TName_Nat*)*, i8* }* @NatUtils.nat_to_int, align 8 - %"$NatUtils.nat_to_int_fptr_1920" = extractvalue { %Uint32 (i8*, %TName_Nat*)*, i8* } %"$NatUtils.nat_to_int_1919", 0 - %"$NatUtils.nat_to_int_envptr_1921" = extractvalue { %Uint32 (i8*, %TName_Nat*)*, i8* } %"$NatUtils.nat_to_int_1919", 1 - %"$ack10_1922" = load %TName_Nat*, %TName_Nat** %ack10, align 8 - %"$NatUtils.nat_to_int_call_1923" = call %Uint32 %"$NatUtils.nat_to_int_fptr_1920"(i8* %"$NatUtils.nat_to_int_envptr_1921", %TName_Nat* %"$ack10_1922"), !dbg !152 - store %Uint32 %"$NatUtils.nat_to_int_call_1923", %Uint32* %"$NatUtils.nat_to_int_93", align 4, !dbg !152 - %"$$NatUtils.nat_to_int_93_1924" = load %Uint32, %Uint32* %"$NatUtils.nat_to_int_93", align 4 - store %Uint32 %"$$NatUtils.nat_to_int_93_1924", %Uint32* %int10, align 4, !dbg !152 - %"$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 = %"$have_gas_1917" - call void @_out_of_gas() - br label %"$have_gas_1928" - -"$have_gas_1928": ; preds = %"$out_of_gas_1927", %"$have_gas_1917" - %"$consume_1929" = sub i64 %"$gasrem_1925", 1 - store i64 %"$consume_1929", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %Uint32* %"$NatUtils.nat_to_int_93", metadata !321, metadata !DIExpression()), !dbg !322 + %"$NatUtils.nat_to_int_1936" = load { %Uint32 (i8*, %TName_Nat*)*, i8* }, { %Uint32 (i8*, %TName_Nat*)*, i8* }* @NatUtils.nat_to_int, align 8 + %"$NatUtils.nat_to_int_fptr_1937" = extractvalue { %Uint32 (i8*, %TName_Nat*)*, i8* } %"$NatUtils.nat_to_int_1936", 0 + %"$NatUtils.nat_to_int_envptr_1938" = extractvalue { %Uint32 (i8*, %TName_Nat*)*, i8* } %"$NatUtils.nat_to_int_1936", 1 + %"$ack10_1939" = load %TName_Nat*, %TName_Nat** %ack10, align 8 + %"$NatUtils.nat_to_int_call_1940" = call %Uint32 %"$NatUtils.nat_to_int_fptr_1937"(i8* %"$NatUtils.nat_to_int_envptr_1938", %TName_Nat* %"$ack10_1939"), !dbg !322 + store %Uint32 %"$NatUtils.nat_to_int_call_1940", %Uint32* %"$NatUtils.nat_to_int_93", align 4, !dbg !322 + %"$$NatUtils.nat_to_int_93_1941" = load %Uint32, %Uint32* %"$NatUtils.nat_to_int_93", align 4 + store %Uint32 %"$$NatUtils.nat_to_int_93_1941", %Uint32* %int10, align 4, !dbg !322 + %"$gasrem_1942" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1943" = icmp ugt i64 1, %"$gasrem_1942" + br i1 %"$gascmp_1943", label %"$out_of_gas_1944", label %"$have_gas_1945" + +"$out_of_gas_1944": ; preds = %"$have_gas_1934" + call void @_out_of_gas() + br label %"$have_gas_1945" + +"$have_gas_1945": ; preds = %"$out_of_gas_1944", %"$have_gas_1934" + %"$consume_1946" = sub i64 %"$gasrem_1942", 1 + store i64 %"$consume_1946", i64* @_gasrem, align 8 %int11 = alloca %Uint32, align 8 - %"$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" + call void @llvm.dbg.declare(metadata %Uint32* %int11, metadata !323, metadata !DIExpression()), !dbg !324 + %"$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_1932": ; preds = %"$have_gas_1928" +"$out_of_gas_1949": ; preds = %"$have_gas_1945" call void @_out_of_gas() - br label %"$have_gas_1933" + br label %"$have_gas_1950" -"$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 +"$have_gas_1950": ; preds = %"$out_of_gas_1949", %"$have_gas_1945" + %"$consume_1951" = sub i64 %"$gasrem_1947", 1 + store i64 %"$consume_1951", i64* @_gasrem, align 8 %"$NatUtils.nat_to_int_94" = alloca %Uint32, align 8 - %"$NatUtils.nat_to_int_1935" = load { %Uint32 (i8*, %TName_Nat*)*, i8* }, { %Uint32 (i8*, %TName_Nat*)*, i8* }* @NatUtils.nat_to_int, align 8 - %"$NatUtils.nat_to_int_fptr_1936" = extractvalue { %Uint32 (i8*, %TName_Nat*)*, i8* } %"$NatUtils.nat_to_int_1935", 0 - %"$NatUtils.nat_to_int_envptr_1937" = extractvalue { %Uint32 (i8*, %TName_Nat*)*, i8* } %"$NatUtils.nat_to_int_1935", 1 - %"$ack11_1938" = load %TName_Nat*, %TName_Nat** %ack11, align 8 - %"$NatUtils.nat_to_int_call_1939" = call %Uint32 %"$NatUtils.nat_to_int_fptr_1936"(i8* %"$NatUtils.nat_to_int_envptr_1937", %TName_Nat* %"$ack11_1938"), !dbg !153 - store %Uint32 %"$NatUtils.nat_to_int_call_1939", %Uint32* %"$NatUtils.nat_to_int_94", align 4, !dbg !153 - %"$$NatUtils.nat_to_int_94_1940" = load %Uint32, %Uint32* %"$NatUtils.nat_to_int_94", align 4 - store %Uint32 %"$$NatUtils.nat_to_int_94_1940", %Uint32* %int11, align 4, !dbg !153 - %"$gasrem_1941" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1942" = icmp ugt i64 1, %"$gasrem_1941" - br i1 %"$gascmp_1942", label %"$out_of_gas_1943", label %"$have_gas_1944" - -"$out_of_gas_1943": ; preds = %"$have_gas_1933" - call void @_out_of_gas() - br label %"$have_gas_1944" - -"$have_gas_1944": ; preds = %"$out_of_gas_1943", %"$have_gas_1933" - %"$consume_1945" = sub i64 %"$gasrem_1941", 1 - store i64 %"$consume_1945", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %Uint32* %"$NatUtils.nat_to_int_94", metadata !325, metadata !DIExpression()), !dbg !326 + %"$NatUtils.nat_to_int_1952" = load { %Uint32 (i8*, %TName_Nat*)*, i8* }, { %Uint32 (i8*, %TName_Nat*)*, i8* }* @NatUtils.nat_to_int, align 8 + %"$NatUtils.nat_to_int_fptr_1953" = extractvalue { %Uint32 (i8*, %TName_Nat*)*, i8* } %"$NatUtils.nat_to_int_1952", 0 + %"$NatUtils.nat_to_int_envptr_1954" = extractvalue { %Uint32 (i8*, %TName_Nat*)*, i8* } %"$NatUtils.nat_to_int_1952", 1 + %"$ack11_1955" = load %TName_Nat*, %TName_Nat** %ack11, align 8 + %"$NatUtils.nat_to_int_call_1956" = call %Uint32 %"$NatUtils.nat_to_int_fptr_1953"(i8* %"$NatUtils.nat_to_int_envptr_1954", %TName_Nat* %"$ack11_1955"), !dbg !326 + store %Uint32 %"$NatUtils.nat_to_int_call_1956", %Uint32* %"$NatUtils.nat_to_int_94", align 4, !dbg !326 + %"$$NatUtils.nat_to_int_94_1957" = load %Uint32, %Uint32* %"$NatUtils.nat_to_int_94", align 4 + store %Uint32 %"$$NatUtils.nat_to_int_94_1957", %Uint32* %int11, align 4, !dbg !326 + %"$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_1960": ; preds = %"$have_gas_1950" + call void @_out_of_gas() + br label %"$have_gas_1961" + +"$have_gas_1961": ; preds = %"$out_of_gas_1960", %"$have_gas_1950" + %"$consume_1962" = sub i64 %"$gasrem_1958", 1 + store i64 %"$consume_1962", i64* @_gasrem, align 8 %int12 = alloca %Uint32, align 8 - %"$gasrem_1946" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1947" = icmp ugt i64 1, %"$gasrem_1946" - br i1 %"$gascmp_1947", label %"$out_of_gas_1948", label %"$have_gas_1949" + call void @llvm.dbg.declare(metadata %Uint32* %int12, metadata !327, metadata !DIExpression()), !dbg !328 + %"$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_1948": ; preds = %"$have_gas_1944" +"$out_of_gas_1965": ; preds = %"$have_gas_1961" call void @_out_of_gas() - br label %"$have_gas_1949" + br label %"$have_gas_1966" -"$have_gas_1949": ; preds = %"$out_of_gas_1948", %"$have_gas_1944" - %"$consume_1950" = sub i64 %"$gasrem_1946", 1 - store i64 %"$consume_1950", i64* @_gasrem, 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 %"$NatUtils.nat_to_int_95" = alloca %Uint32, align 8 - %"$NatUtils.nat_to_int_1951" = load { %Uint32 (i8*, %TName_Nat*)*, i8* }, { %Uint32 (i8*, %TName_Nat*)*, i8* }* @NatUtils.nat_to_int, align 8 - %"$NatUtils.nat_to_int_fptr_1952" = extractvalue { %Uint32 (i8*, %TName_Nat*)*, i8* } %"$NatUtils.nat_to_int_1951", 0 - %"$NatUtils.nat_to_int_envptr_1953" = extractvalue { %Uint32 (i8*, %TName_Nat*)*, i8* } %"$NatUtils.nat_to_int_1951", 1 - %"$ack12_1954" = load %TName_Nat*, %TName_Nat** %ack12, align 8 - %"$NatUtils.nat_to_int_call_1955" = call %Uint32 %"$NatUtils.nat_to_int_fptr_1952"(i8* %"$NatUtils.nat_to_int_envptr_1953", %TName_Nat* %"$ack12_1954"), !dbg !154 - store %Uint32 %"$NatUtils.nat_to_int_call_1955", %Uint32* %"$NatUtils.nat_to_int_95", align 4, !dbg !154 - %"$$NatUtils.nat_to_int_95_1956" = load %Uint32, %Uint32* %"$NatUtils.nat_to_int_95", align 4 - store %Uint32 %"$$NatUtils.nat_to_int_95_1956", %Uint32* %int12, align 4, !dbg !154 - %"$gasrem_1957" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1958" = icmp ugt i64 1, %"$gasrem_1957" - br i1 %"$gascmp_1958", label %"$out_of_gas_1959", label %"$have_gas_1960" - -"$out_of_gas_1959": ; preds = %"$have_gas_1949" - call void @_out_of_gas() - br label %"$have_gas_1960" - -"$have_gas_1960": ; preds = %"$out_of_gas_1959", %"$have_gas_1949" - %"$consume_1961" = sub i64 %"$gasrem_1957", 1 - store i64 %"$consume_1961", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %Uint32* %"$NatUtils.nat_to_int_95", metadata !329, metadata !DIExpression()), !dbg !330 + %"$NatUtils.nat_to_int_1968" = load { %Uint32 (i8*, %TName_Nat*)*, i8* }, { %Uint32 (i8*, %TName_Nat*)*, i8* }* @NatUtils.nat_to_int, align 8 + %"$NatUtils.nat_to_int_fptr_1969" = extractvalue { %Uint32 (i8*, %TName_Nat*)*, i8* } %"$NatUtils.nat_to_int_1968", 0 + %"$NatUtils.nat_to_int_envptr_1970" = extractvalue { %Uint32 (i8*, %TName_Nat*)*, i8* } %"$NatUtils.nat_to_int_1968", 1 + %"$ack12_1971" = load %TName_Nat*, %TName_Nat** %ack12, align 8 + %"$NatUtils.nat_to_int_call_1972" = call %Uint32 %"$NatUtils.nat_to_int_fptr_1969"(i8* %"$NatUtils.nat_to_int_envptr_1970", %TName_Nat* %"$ack12_1971"), !dbg !330 + store %Uint32 %"$NatUtils.nat_to_int_call_1972", %Uint32* %"$NatUtils.nat_to_int_95", align 4, !dbg !330 + %"$$NatUtils.nat_to_int_95_1973" = load %Uint32, %Uint32* %"$NatUtils.nat_to_int_95", align 4 + store %Uint32 %"$$NatUtils.nat_to_int_95_1973", %Uint32* %int12, align 4, !dbg !330 + %"$gasrem_1974" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1975" = icmp ugt i64 1, %"$gasrem_1974" + br i1 %"$gascmp_1975", label %"$out_of_gas_1976", label %"$have_gas_1977" + +"$out_of_gas_1976": ; preds = %"$have_gas_1966" + call void @_out_of_gas() + br label %"$have_gas_1977" + +"$have_gas_1977": ; preds = %"$out_of_gas_1976", %"$have_gas_1966" + %"$consume_1978" = sub i64 %"$gasrem_1974", 1 + store i64 %"$consume_1978", i64* @_gasrem, align 8 %int13 = alloca %Uint32, align 8 - %"$gasrem_1962" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1963" = icmp ugt i64 1, %"$gasrem_1962" - br i1 %"$gascmp_1963", label %"$out_of_gas_1964", label %"$have_gas_1965" + call void @llvm.dbg.declare(metadata %Uint32* %int13, metadata !331, metadata !DIExpression()), !dbg !332 + %"$gasrem_1979" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1980" = icmp ugt i64 1, %"$gasrem_1979" + br i1 %"$gascmp_1980", label %"$out_of_gas_1981", label %"$have_gas_1982" -"$out_of_gas_1964": ; preds = %"$have_gas_1960" +"$out_of_gas_1981": ; preds = %"$have_gas_1977" call void @_out_of_gas() - br label %"$have_gas_1965" + br label %"$have_gas_1982" -"$have_gas_1965": ; preds = %"$out_of_gas_1964", %"$have_gas_1960" - %"$consume_1966" = sub i64 %"$gasrem_1962", 1 - store i64 %"$consume_1966", i64* @_gasrem, align 8 +"$have_gas_1982": ; preds = %"$out_of_gas_1981", %"$have_gas_1977" + %"$consume_1983" = sub i64 %"$gasrem_1979", 1 + store i64 %"$consume_1983", i64* @_gasrem, align 8 %"$NatUtils.nat_to_int_96" = alloca %Uint32, align 8 - %"$NatUtils.nat_to_int_1967" = load { %Uint32 (i8*, %TName_Nat*)*, i8* }, { %Uint32 (i8*, %TName_Nat*)*, i8* }* @NatUtils.nat_to_int, align 8 - %"$NatUtils.nat_to_int_fptr_1968" = extractvalue { %Uint32 (i8*, %TName_Nat*)*, i8* } %"$NatUtils.nat_to_int_1967", 0 - %"$NatUtils.nat_to_int_envptr_1969" = extractvalue { %Uint32 (i8*, %TName_Nat*)*, i8* } %"$NatUtils.nat_to_int_1967", 1 - %"$ack13_1970" = load %TName_Nat*, %TName_Nat** %ack13, align 8 - %"$NatUtils.nat_to_int_call_1971" = call %Uint32 %"$NatUtils.nat_to_int_fptr_1968"(i8* %"$NatUtils.nat_to_int_envptr_1969", %TName_Nat* %"$ack13_1970"), !dbg !155 - store %Uint32 %"$NatUtils.nat_to_int_call_1971", %Uint32* %"$NatUtils.nat_to_int_96", align 4, !dbg !155 - %"$$NatUtils.nat_to_int_96_1972" = load %Uint32, %Uint32* %"$NatUtils.nat_to_int_96", align 4 - store %Uint32 %"$$NatUtils.nat_to_int_96_1972", %Uint32* %int13, align 4, !dbg !155 - %"$gasrem_1973" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1974" = icmp ugt i64 1, %"$gasrem_1973" - br i1 %"$gascmp_1974", label %"$out_of_gas_1975", label %"$have_gas_1976" - -"$out_of_gas_1975": ; preds = %"$have_gas_1965" - call void @_out_of_gas() - br label %"$have_gas_1976" - -"$have_gas_1976": ; preds = %"$out_of_gas_1975", %"$have_gas_1965" - %"$consume_1977" = sub i64 %"$gasrem_1973", 1 - store i64 %"$consume_1977", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %Uint32* %"$NatUtils.nat_to_int_96", metadata !333, metadata !DIExpression()), !dbg !334 + %"$NatUtils.nat_to_int_1984" = load { %Uint32 (i8*, %TName_Nat*)*, i8* }, { %Uint32 (i8*, %TName_Nat*)*, i8* }* @NatUtils.nat_to_int, align 8 + %"$NatUtils.nat_to_int_fptr_1985" = extractvalue { %Uint32 (i8*, %TName_Nat*)*, i8* } %"$NatUtils.nat_to_int_1984", 0 + %"$NatUtils.nat_to_int_envptr_1986" = extractvalue { %Uint32 (i8*, %TName_Nat*)*, i8* } %"$NatUtils.nat_to_int_1984", 1 + %"$ack13_1987" = load %TName_Nat*, %TName_Nat** %ack13, align 8 + %"$NatUtils.nat_to_int_call_1988" = call %Uint32 %"$NatUtils.nat_to_int_fptr_1985"(i8* %"$NatUtils.nat_to_int_envptr_1986", %TName_Nat* %"$ack13_1987"), !dbg !334 + store %Uint32 %"$NatUtils.nat_to_int_call_1988", %Uint32* %"$NatUtils.nat_to_int_96", align 4, !dbg !334 + %"$$NatUtils.nat_to_int_96_1989" = load %Uint32, %Uint32* %"$NatUtils.nat_to_int_96", align 4 + store %Uint32 %"$$NatUtils.nat_to_int_96_1989", %Uint32* %int13, align 4, !dbg !334 + %"$gasrem_1990" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1991" = icmp ugt i64 1, %"$gasrem_1990" + br i1 %"$gascmp_1991", label %"$out_of_gas_1992", label %"$have_gas_1993" + +"$out_of_gas_1992": ; preds = %"$have_gas_1982" + call void @_out_of_gas() + br label %"$have_gas_1993" + +"$have_gas_1993": ; preds = %"$out_of_gas_1992", %"$have_gas_1982" + %"$consume_1994" = sub i64 %"$gasrem_1990", 1 + store i64 %"$consume_1994", i64* @_gasrem, align 8 %int14 = alloca %Uint32, align 8 - %"$gasrem_1978" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1979" = icmp ugt i64 1, %"$gasrem_1978" - br i1 %"$gascmp_1979", label %"$out_of_gas_1980", label %"$have_gas_1981" + call void @llvm.dbg.declare(metadata %Uint32* %int14, metadata !335, metadata !DIExpression()), !dbg !336 + %"$gasrem_1995" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1996" = icmp ugt i64 1, %"$gasrem_1995" + br i1 %"$gascmp_1996", label %"$out_of_gas_1997", label %"$have_gas_1998" -"$out_of_gas_1980": ; preds = %"$have_gas_1976" +"$out_of_gas_1997": ; preds = %"$have_gas_1993" call void @_out_of_gas() - br label %"$have_gas_1981" + br label %"$have_gas_1998" -"$have_gas_1981": ; preds = %"$out_of_gas_1980", %"$have_gas_1976" - %"$consume_1982" = sub i64 %"$gasrem_1978", 1 - store i64 %"$consume_1982", i64* @_gasrem, align 8 +"$have_gas_1998": ; preds = %"$out_of_gas_1997", %"$have_gas_1993" + %"$consume_1999" = sub i64 %"$gasrem_1995", 1 + store i64 %"$consume_1999", i64* @_gasrem, align 8 %"$NatUtils.nat_to_int_97" = alloca %Uint32, align 8 - %"$NatUtils.nat_to_int_1983" = load { %Uint32 (i8*, %TName_Nat*)*, i8* }, { %Uint32 (i8*, %TName_Nat*)*, i8* }* @NatUtils.nat_to_int, align 8 - %"$NatUtils.nat_to_int_fptr_1984" = extractvalue { %Uint32 (i8*, %TName_Nat*)*, i8* } %"$NatUtils.nat_to_int_1983", 0 - %"$NatUtils.nat_to_int_envptr_1985" = extractvalue { %Uint32 (i8*, %TName_Nat*)*, i8* } %"$NatUtils.nat_to_int_1983", 1 - %"$ack14_1986" = load %TName_Nat*, %TName_Nat** %ack14, align 8 - %"$NatUtils.nat_to_int_call_1987" = call %Uint32 %"$NatUtils.nat_to_int_fptr_1984"(i8* %"$NatUtils.nat_to_int_envptr_1985", %TName_Nat* %"$ack14_1986"), !dbg !156 - store %Uint32 %"$NatUtils.nat_to_int_call_1987", %Uint32* %"$NatUtils.nat_to_int_97", align 4, !dbg !156 - %"$$NatUtils.nat_to_int_97_1988" = load %Uint32, %Uint32* %"$NatUtils.nat_to_int_97", align 4 - store %Uint32 %"$$NatUtils.nat_to_int_97_1988", %Uint32* %int14, align 4, !dbg !156 - %"$gasrem_1989" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1990" = icmp ugt i64 1, %"$gasrem_1989" - br i1 %"$gascmp_1990", label %"$out_of_gas_1991", label %"$have_gas_1992" - -"$out_of_gas_1991": ; preds = %"$have_gas_1981" - call void @_out_of_gas() - br label %"$have_gas_1992" - -"$have_gas_1992": ; preds = %"$out_of_gas_1991", %"$have_gas_1981" - %"$consume_1993" = sub i64 %"$gasrem_1989", 1 - store i64 %"$consume_1993", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %Uint32* %"$NatUtils.nat_to_int_97", metadata !337, metadata !DIExpression()), !dbg !338 + %"$NatUtils.nat_to_int_2000" = load { %Uint32 (i8*, %TName_Nat*)*, i8* }, { %Uint32 (i8*, %TName_Nat*)*, i8* }* @NatUtils.nat_to_int, align 8 + %"$NatUtils.nat_to_int_fptr_2001" = extractvalue { %Uint32 (i8*, %TName_Nat*)*, i8* } %"$NatUtils.nat_to_int_2000", 0 + %"$NatUtils.nat_to_int_envptr_2002" = extractvalue { %Uint32 (i8*, %TName_Nat*)*, i8* } %"$NatUtils.nat_to_int_2000", 1 + %"$ack14_2003" = load %TName_Nat*, %TName_Nat** %ack14, align 8 + %"$NatUtils.nat_to_int_call_2004" = call %Uint32 %"$NatUtils.nat_to_int_fptr_2001"(i8* %"$NatUtils.nat_to_int_envptr_2002", %TName_Nat* %"$ack14_2003"), !dbg !338 + store %Uint32 %"$NatUtils.nat_to_int_call_2004", %Uint32* %"$NatUtils.nat_to_int_97", align 4, !dbg !338 + %"$$NatUtils.nat_to_int_97_2005" = load %Uint32, %Uint32* %"$NatUtils.nat_to_int_97", align 4 + store %Uint32 %"$$NatUtils.nat_to_int_97_2005", %Uint32* %int14, align 4, !dbg !338 + %"$gasrem_2006" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2007" = icmp ugt i64 1, %"$gasrem_2006" + br i1 %"$gascmp_2007", label %"$out_of_gas_2008", label %"$have_gas_2009" + +"$out_of_gas_2008": ; preds = %"$have_gas_1998" + call void @_out_of_gas() + br label %"$have_gas_2009" + +"$have_gas_2009": ; preds = %"$out_of_gas_2008", %"$have_gas_1998" + %"$consume_2010" = sub i64 %"$gasrem_2006", 1 + store i64 %"$consume_2010", i64* @_gasrem, align 8 %int20 = alloca %Uint32, align 8 - %"$gasrem_1994" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1995" = icmp ugt i64 1, %"$gasrem_1994" - br i1 %"$gascmp_1995", label %"$out_of_gas_1996", label %"$have_gas_1997" + call void @llvm.dbg.declare(metadata %Uint32* %int20, metadata !339, metadata !DIExpression()), !dbg !340 + %"$gasrem_2011" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2012" = icmp ugt i64 1, %"$gasrem_2011" + br i1 %"$gascmp_2012", label %"$out_of_gas_2013", label %"$have_gas_2014" -"$out_of_gas_1996": ; preds = %"$have_gas_1992" +"$out_of_gas_2013": ; preds = %"$have_gas_2009" call void @_out_of_gas() - br label %"$have_gas_1997" + br label %"$have_gas_2014" -"$have_gas_1997": ; preds = %"$out_of_gas_1996", %"$have_gas_1992" - %"$consume_1998" = sub i64 %"$gasrem_1994", 1 - store i64 %"$consume_1998", i64* @_gasrem, align 8 +"$have_gas_2014": ; preds = %"$out_of_gas_2013", %"$have_gas_2009" + %"$consume_2015" = sub i64 %"$gasrem_2011", 1 + store i64 %"$consume_2015", i64* @_gasrem, align 8 %"$NatUtils.nat_to_int_98" = alloca %Uint32, align 8 - %"$NatUtils.nat_to_int_1999" = load { %Uint32 (i8*, %TName_Nat*)*, i8* }, { %Uint32 (i8*, %TName_Nat*)*, i8* }* @NatUtils.nat_to_int, align 8 - %"$NatUtils.nat_to_int_fptr_2000" = extractvalue { %Uint32 (i8*, %TName_Nat*)*, i8* } %"$NatUtils.nat_to_int_1999", 0 - %"$NatUtils.nat_to_int_envptr_2001" = extractvalue { %Uint32 (i8*, %TName_Nat*)*, i8* } %"$NatUtils.nat_to_int_1999", 1 - %"$ack20_2002" = load %TName_Nat*, %TName_Nat** %ack20, align 8 - %"$NatUtils.nat_to_int_call_2003" = call %Uint32 %"$NatUtils.nat_to_int_fptr_2000"(i8* %"$NatUtils.nat_to_int_envptr_2001", %TName_Nat* %"$ack20_2002"), !dbg !157 - store %Uint32 %"$NatUtils.nat_to_int_call_2003", %Uint32* %"$NatUtils.nat_to_int_98", align 4, !dbg !157 - %"$$NatUtils.nat_to_int_98_2004" = load %Uint32, %Uint32* %"$NatUtils.nat_to_int_98", align 4 - store %Uint32 %"$$NatUtils.nat_to_int_98_2004", %Uint32* %int20, align 4, !dbg !157 - %"$gasrem_2005" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2006" = icmp ugt i64 1, %"$gasrem_2005" - br i1 %"$gascmp_2006", label %"$out_of_gas_2007", label %"$have_gas_2008" - -"$out_of_gas_2007": ; preds = %"$have_gas_1997" - call void @_out_of_gas() - br label %"$have_gas_2008" - -"$have_gas_2008": ; preds = %"$out_of_gas_2007", %"$have_gas_1997" - %"$consume_2009" = sub i64 %"$gasrem_2005", 1 - store i64 %"$consume_2009", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %Uint32* %"$NatUtils.nat_to_int_98", metadata !341, metadata !DIExpression()), !dbg !342 + %"$NatUtils.nat_to_int_2016" = load { %Uint32 (i8*, %TName_Nat*)*, i8* }, { %Uint32 (i8*, %TName_Nat*)*, i8* }* @NatUtils.nat_to_int, align 8 + %"$NatUtils.nat_to_int_fptr_2017" = extractvalue { %Uint32 (i8*, %TName_Nat*)*, i8* } %"$NatUtils.nat_to_int_2016", 0 + %"$NatUtils.nat_to_int_envptr_2018" = extractvalue { %Uint32 (i8*, %TName_Nat*)*, i8* } %"$NatUtils.nat_to_int_2016", 1 + %"$ack20_2019" = load %TName_Nat*, %TName_Nat** %ack20, align 8 + %"$NatUtils.nat_to_int_call_2020" = call %Uint32 %"$NatUtils.nat_to_int_fptr_2017"(i8* %"$NatUtils.nat_to_int_envptr_2018", %TName_Nat* %"$ack20_2019"), !dbg !342 + store %Uint32 %"$NatUtils.nat_to_int_call_2020", %Uint32* %"$NatUtils.nat_to_int_98", align 4, !dbg !342 + %"$$NatUtils.nat_to_int_98_2021" = load %Uint32, %Uint32* %"$NatUtils.nat_to_int_98", align 4 + store %Uint32 %"$$NatUtils.nat_to_int_98_2021", %Uint32* %int20, align 4, !dbg !342 + %"$gasrem_2022" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2023" = icmp ugt i64 1, %"$gasrem_2022" + br i1 %"$gascmp_2023", label %"$out_of_gas_2024", label %"$have_gas_2025" + +"$out_of_gas_2024": ; preds = %"$have_gas_2014" + call void @_out_of_gas() + br label %"$have_gas_2025" + +"$have_gas_2025": ; preds = %"$out_of_gas_2024", %"$have_gas_2014" + %"$consume_2026" = sub i64 %"$gasrem_2022", 1 + store i64 %"$consume_2026", i64* @_gasrem, align 8 %int21 = alloca %Uint32, align 8 - %"$gasrem_2010" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2011" = icmp ugt i64 1, %"$gasrem_2010" - br i1 %"$gascmp_2011", label %"$out_of_gas_2012", label %"$have_gas_2013" + call void @llvm.dbg.declare(metadata %Uint32* %int21, metadata !343, metadata !DIExpression()), !dbg !344 + %"$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_2012": ; preds = %"$have_gas_2008" +"$out_of_gas_2029": ; preds = %"$have_gas_2025" call void @_out_of_gas() - br label %"$have_gas_2013" + br label %"$have_gas_2030" -"$have_gas_2013": ; preds = %"$out_of_gas_2012", %"$have_gas_2008" - %"$consume_2014" = sub i64 %"$gasrem_2010", 1 - store i64 %"$consume_2014", i64* @_gasrem, align 8 +"$have_gas_2030": ; preds = %"$out_of_gas_2029", %"$have_gas_2025" + %"$consume_2031" = sub i64 %"$gasrem_2027", 1 + store i64 %"$consume_2031", i64* @_gasrem, align 8 %"$NatUtils.nat_to_int_99" = alloca %Uint32, align 8 - %"$NatUtils.nat_to_int_2015" = load { %Uint32 (i8*, %TName_Nat*)*, i8* }, { %Uint32 (i8*, %TName_Nat*)*, i8* }* @NatUtils.nat_to_int, align 8 - %"$NatUtils.nat_to_int_fptr_2016" = extractvalue { %Uint32 (i8*, %TName_Nat*)*, i8* } %"$NatUtils.nat_to_int_2015", 0 - %"$NatUtils.nat_to_int_envptr_2017" = extractvalue { %Uint32 (i8*, %TName_Nat*)*, i8* } %"$NatUtils.nat_to_int_2015", 1 - %"$ack21_2018" = load %TName_Nat*, %TName_Nat** %ack21, align 8 - %"$NatUtils.nat_to_int_call_2019" = call %Uint32 %"$NatUtils.nat_to_int_fptr_2016"(i8* %"$NatUtils.nat_to_int_envptr_2017", %TName_Nat* %"$ack21_2018"), !dbg !158 - store %Uint32 %"$NatUtils.nat_to_int_call_2019", %Uint32* %"$NatUtils.nat_to_int_99", align 4, !dbg !158 - %"$$NatUtils.nat_to_int_99_2020" = load %Uint32, %Uint32* %"$NatUtils.nat_to_int_99", align 4 - store %Uint32 %"$$NatUtils.nat_to_int_99_2020", %Uint32* %int21, align 4, !dbg !158 - %"$gasrem_2021" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2022" = icmp ugt i64 1, %"$gasrem_2021" - br i1 %"$gascmp_2022", label %"$out_of_gas_2023", label %"$have_gas_2024" - -"$out_of_gas_2023": ; preds = %"$have_gas_2013" - call void @_out_of_gas() - br label %"$have_gas_2024" - -"$have_gas_2024": ; preds = %"$out_of_gas_2023", %"$have_gas_2013" - %"$consume_2025" = sub i64 %"$gasrem_2021", 1 - store i64 %"$consume_2025", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %Uint32* %"$NatUtils.nat_to_int_99", metadata !345, metadata !DIExpression()), !dbg !346 + %"$NatUtils.nat_to_int_2032" = load { %Uint32 (i8*, %TName_Nat*)*, i8* }, { %Uint32 (i8*, %TName_Nat*)*, i8* }* @NatUtils.nat_to_int, align 8 + %"$NatUtils.nat_to_int_fptr_2033" = extractvalue { %Uint32 (i8*, %TName_Nat*)*, i8* } %"$NatUtils.nat_to_int_2032", 0 + %"$NatUtils.nat_to_int_envptr_2034" = extractvalue { %Uint32 (i8*, %TName_Nat*)*, i8* } %"$NatUtils.nat_to_int_2032", 1 + %"$ack21_2035" = load %TName_Nat*, %TName_Nat** %ack21, align 8 + %"$NatUtils.nat_to_int_call_2036" = call %Uint32 %"$NatUtils.nat_to_int_fptr_2033"(i8* %"$NatUtils.nat_to_int_envptr_2034", %TName_Nat* %"$ack21_2035"), !dbg !346 + store %Uint32 %"$NatUtils.nat_to_int_call_2036", %Uint32* %"$NatUtils.nat_to_int_99", align 4, !dbg !346 + %"$$NatUtils.nat_to_int_99_2037" = load %Uint32, %Uint32* %"$NatUtils.nat_to_int_99", align 4 + store %Uint32 %"$$NatUtils.nat_to_int_99_2037", %Uint32* %int21, align 4, !dbg !346 + %"$gasrem_2038" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2039" = icmp ugt i64 1, %"$gasrem_2038" + br i1 %"$gascmp_2039", label %"$out_of_gas_2040", label %"$have_gas_2041" + +"$out_of_gas_2040": ; preds = %"$have_gas_2030" + call void @_out_of_gas() + br label %"$have_gas_2041" + +"$have_gas_2041": ; preds = %"$out_of_gas_2040", %"$have_gas_2030" + %"$consume_2042" = sub i64 %"$gasrem_2038", 1 + store i64 %"$consume_2042", i64* @_gasrem, align 8 %int22 = alloca %Uint32, align 8 - %"$gasrem_2026" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2027" = icmp ugt i64 1, %"$gasrem_2026" - br i1 %"$gascmp_2027", label %"$out_of_gas_2028", label %"$have_gas_2029" + call void @llvm.dbg.declare(metadata %Uint32* %int22, metadata !347, metadata !DIExpression()), !dbg !348 + %"$gasrem_2043" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2044" = icmp ugt i64 1, %"$gasrem_2043" + br i1 %"$gascmp_2044", label %"$out_of_gas_2045", label %"$have_gas_2046" -"$out_of_gas_2028": ; preds = %"$have_gas_2024" +"$out_of_gas_2045": ; preds = %"$have_gas_2041" call void @_out_of_gas() - br label %"$have_gas_2029" + br label %"$have_gas_2046" -"$have_gas_2029": ; preds = %"$out_of_gas_2028", %"$have_gas_2024" - %"$consume_2030" = sub i64 %"$gasrem_2026", 1 - store i64 %"$consume_2030", i64* @_gasrem, align 8 +"$have_gas_2046": ; preds = %"$out_of_gas_2045", %"$have_gas_2041" + %"$consume_2047" = sub i64 %"$gasrem_2043", 1 + store i64 %"$consume_2047", i64* @_gasrem, align 8 %"$NatUtils.nat_to_int_100" = alloca %Uint32, align 8 - %"$NatUtils.nat_to_int_2031" = load { %Uint32 (i8*, %TName_Nat*)*, i8* }, { %Uint32 (i8*, %TName_Nat*)*, i8* }* @NatUtils.nat_to_int, align 8 - %"$NatUtils.nat_to_int_fptr_2032" = extractvalue { %Uint32 (i8*, %TName_Nat*)*, i8* } %"$NatUtils.nat_to_int_2031", 0 - %"$NatUtils.nat_to_int_envptr_2033" = extractvalue { %Uint32 (i8*, %TName_Nat*)*, i8* } %"$NatUtils.nat_to_int_2031", 1 - %"$ack22_2034" = load %TName_Nat*, %TName_Nat** %ack22, align 8 - %"$NatUtils.nat_to_int_call_2035" = call %Uint32 %"$NatUtils.nat_to_int_fptr_2032"(i8* %"$NatUtils.nat_to_int_envptr_2033", %TName_Nat* %"$ack22_2034"), !dbg !159 - store %Uint32 %"$NatUtils.nat_to_int_call_2035", %Uint32* %"$NatUtils.nat_to_int_100", align 4, !dbg !159 - %"$$NatUtils.nat_to_int_100_2036" = load %Uint32, %Uint32* %"$NatUtils.nat_to_int_100", align 4 - store %Uint32 %"$$NatUtils.nat_to_int_100_2036", %Uint32* %int22, align 4, !dbg !159 - %"$gasrem_2037" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2038" = icmp ugt i64 1, %"$gasrem_2037" - br i1 %"$gascmp_2038", label %"$out_of_gas_2039", label %"$have_gas_2040" - -"$out_of_gas_2039": ; preds = %"$have_gas_2029" - call void @_out_of_gas() - br label %"$have_gas_2040" - -"$have_gas_2040": ; preds = %"$out_of_gas_2039", %"$have_gas_2029" - %"$consume_2041" = sub i64 %"$gasrem_2037", 1 - store i64 %"$consume_2041", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %Uint32* %"$NatUtils.nat_to_int_100", metadata !349, metadata !DIExpression()), !dbg !350 + %"$NatUtils.nat_to_int_2048" = load { %Uint32 (i8*, %TName_Nat*)*, i8* }, { %Uint32 (i8*, %TName_Nat*)*, i8* }* @NatUtils.nat_to_int, align 8 + %"$NatUtils.nat_to_int_fptr_2049" = extractvalue { %Uint32 (i8*, %TName_Nat*)*, i8* } %"$NatUtils.nat_to_int_2048", 0 + %"$NatUtils.nat_to_int_envptr_2050" = extractvalue { %Uint32 (i8*, %TName_Nat*)*, i8* } %"$NatUtils.nat_to_int_2048", 1 + %"$ack22_2051" = load %TName_Nat*, %TName_Nat** %ack22, align 8 + %"$NatUtils.nat_to_int_call_2052" = call %Uint32 %"$NatUtils.nat_to_int_fptr_2049"(i8* %"$NatUtils.nat_to_int_envptr_2050", %TName_Nat* %"$ack22_2051"), !dbg !350 + store %Uint32 %"$NatUtils.nat_to_int_call_2052", %Uint32* %"$NatUtils.nat_to_int_100", align 4, !dbg !350 + %"$$NatUtils.nat_to_int_100_2053" = load %Uint32, %Uint32* %"$NatUtils.nat_to_int_100", align 4 + store %Uint32 %"$$NatUtils.nat_to_int_100_2053", %Uint32* %int22, align 4, !dbg !350 + %"$gasrem_2054" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2055" = icmp ugt i64 1, %"$gasrem_2054" + br i1 %"$gascmp_2055", label %"$out_of_gas_2056", label %"$have_gas_2057" + +"$out_of_gas_2056": ; preds = %"$have_gas_2046" + call void @_out_of_gas() + br label %"$have_gas_2057" + +"$have_gas_2057": ; preds = %"$out_of_gas_2056", %"$have_gas_2046" + %"$consume_2058" = sub i64 %"$gasrem_2054", 1 + store i64 %"$consume_2058", i64* @_gasrem, align 8 %int23 = alloca %Uint32, align 8 - %"$gasrem_2042" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2043" = icmp ugt i64 1, %"$gasrem_2042" - br i1 %"$gascmp_2043", label %"$out_of_gas_2044", label %"$have_gas_2045" + call void @llvm.dbg.declare(metadata %Uint32* %int23, metadata !351, metadata !DIExpression()), !dbg !352 + %"$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_2044": ; preds = %"$have_gas_2040" +"$out_of_gas_2061": ; preds = %"$have_gas_2057" call void @_out_of_gas() - br label %"$have_gas_2045" + br label %"$have_gas_2062" -"$have_gas_2045": ; preds = %"$out_of_gas_2044", %"$have_gas_2040" - %"$consume_2046" = sub i64 %"$gasrem_2042", 1 - store i64 %"$consume_2046", i64* @_gasrem, align 8 +"$have_gas_2062": ; preds = %"$out_of_gas_2061", %"$have_gas_2057" + %"$consume_2063" = sub i64 %"$gasrem_2059", 1 + store i64 %"$consume_2063", i64* @_gasrem, align 8 %"$NatUtils.nat_to_int_101" = alloca %Uint32, align 8 - %"$NatUtils.nat_to_int_2047" = load { %Uint32 (i8*, %TName_Nat*)*, i8* }, { %Uint32 (i8*, %TName_Nat*)*, i8* }* @NatUtils.nat_to_int, align 8 - %"$NatUtils.nat_to_int_fptr_2048" = extractvalue { %Uint32 (i8*, %TName_Nat*)*, i8* } %"$NatUtils.nat_to_int_2047", 0 - %"$NatUtils.nat_to_int_envptr_2049" = extractvalue { %Uint32 (i8*, %TName_Nat*)*, i8* } %"$NatUtils.nat_to_int_2047", 1 - %"$ack23_2050" = load %TName_Nat*, %TName_Nat** %ack23, align 8 - %"$NatUtils.nat_to_int_call_2051" = call %Uint32 %"$NatUtils.nat_to_int_fptr_2048"(i8* %"$NatUtils.nat_to_int_envptr_2049", %TName_Nat* %"$ack23_2050"), !dbg !160 - store %Uint32 %"$NatUtils.nat_to_int_call_2051", %Uint32* %"$NatUtils.nat_to_int_101", align 4, !dbg !160 - %"$$NatUtils.nat_to_int_101_2052" = load %Uint32, %Uint32* %"$NatUtils.nat_to_int_101", align 4 - store %Uint32 %"$$NatUtils.nat_to_int_101_2052", %Uint32* %int23, align 4, !dbg !160 - %"$gasrem_2053" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2054" = icmp ugt i64 1, %"$gasrem_2053" - br i1 %"$gascmp_2054", label %"$out_of_gas_2055", label %"$have_gas_2056" - -"$out_of_gas_2055": ; preds = %"$have_gas_2045" - call void @_out_of_gas() - br label %"$have_gas_2056" - -"$have_gas_2056": ; preds = %"$out_of_gas_2055", %"$have_gas_2045" - %"$consume_2057" = sub i64 %"$gasrem_2053", 1 - store i64 %"$consume_2057", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %Uint32* %"$NatUtils.nat_to_int_101", metadata !353, metadata !DIExpression()), !dbg !354 + %"$NatUtils.nat_to_int_2064" = load { %Uint32 (i8*, %TName_Nat*)*, i8* }, { %Uint32 (i8*, %TName_Nat*)*, i8* }* @NatUtils.nat_to_int, align 8 + %"$NatUtils.nat_to_int_fptr_2065" = extractvalue { %Uint32 (i8*, %TName_Nat*)*, i8* } %"$NatUtils.nat_to_int_2064", 0 + %"$NatUtils.nat_to_int_envptr_2066" = extractvalue { %Uint32 (i8*, %TName_Nat*)*, i8* } %"$NatUtils.nat_to_int_2064", 1 + %"$ack23_2067" = load %TName_Nat*, %TName_Nat** %ack23, align 8 + %"$NatUtils.nat_to_int_call_2068" = call %Uint32 %"$NatUtils.nat_to_int_fptr_2065"(i8* %"$NatUtils.nat_to_int_envptr_2066", %TName_Nat* %"$ack23_2067"), !dbg !354 + store %Uint32 %"$NatUtils.nat_to_int_call_2068", %Uint32* %"$NatUtils.nat_to_int_101", align 4, !dbg !354 + %"$$NatUtils.nat_to_int_101_2069" = load %Uint32, %Uint32* %"$NatUtils.nat_to_int_101", align 4 + store %Uint32 %"$$NatUtils.nat_to_int_101_2069", %Uint32* %int23, align 4, !dbg !354 + %"$gasrem_2070" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2071" = icmp ugt i64 1, %"$gasrem_2070" + br i1 %"$gascmp_2071", label %"$out_of_gas_2072", label %"$have_gas_2073" + +"$out_of_gas_2072": ; preds = %"$have_gas_2062" + call void @_out_of_gas() + br label %"$have_gas_2073" + +"$have_gas_2073": ; preds = %"$out_of_gas_2072", %"$have_gas_2062" + %"$consume_2074" = sub i64 %"$gasrem_2070", 1 + store i64 %"$consume_2074", i64* @_gasrem, align 8 %int24 = alloca %Uint32, 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" + call void @llvm.dbg.declare(metadata %Uint32* %int24, metadata !355, metadata !DIExpression()), !dbg !356 + %"$gasrem_2075" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2076" = icmp ugt i64 1, %"$gasrem_2075" + br i1 %"$gascmp_2076", label %"$out_of_gas_2077", label %"$have_gas_2078" -"$out_of_gas_2060": ; preds = %"$have_gas_2056" +"$out_of_gas_2077": ; preds = %"$have_gas_2073" call void @_out_of_gas() - br label %"$have_gas_2061" + br label %"$have_gas_2078" -"$have_gas_2061": ; preds = %"$out_of_gas_2060", %"$have_gas_2056" - %"$consume_2062" = sub i64 %"$gasrem_2058", 1 - store i64 %"$consume_2062", i64* @_gasrem, align 8 +"$have_gas_2078": ; preds = %"$out_of_gas_2077", %"$have_gas_2073" + %"$consume_2079" = sub i64 %"$gasrem_2075", 1 + store i64 %"$consume_2079", i64* @_gasrem, align 8 %"$NatUtils.nat_to_int_102" = alloca %Uint32, align 8 - %"$NatUtils.nat_to_int_2063" = load { %Uint32 (i8*, %TName_Nat*)*, i8* }, { %Uint32 (i8*, %TName_Nat*)*, i8* }* @NatUtils.nat_to_int, align 8 - %"$NatUtils.nat_to_int_fptr_2064" = extractvalue { %Uint32 (i8*, %TName_Nat*)*, i8* } %"$NatUtils.nat_to_int_2063", 0 - %"$NatUtils.nat_to_int_envptr_2065" = extractvalue { %Uint32 (i8*, %TName_Nat*)*, i8* } %"$NatUtils.nat_to_int_2063", 1 - %"$ack23_2066" = load %TName_Nat*, %TName_Nat** %ack23, align 8 - %"$NatUtils.nat_to_int_call_2067" = call %Uint32 %"$NatUtils.nat_to_int_fptr_2064"(i8* %"$NatUtils.nat_to_int_envptr_2065", %TName_Nat* %"$ack23_2066"), !dbg !161 - store %Uint32 %"$NatUtils.nat_to_int_call_2067", %Uint32* %"$NatUtils.nat_to_int_102", align 4, !dbg !161 - %"$$NatUtils.nat_to_int_102_2068" = load %Uint32, %Uint32* %"$NatUtils.nat_to_int_102", align 4 - store %Uint32 %"$$NatUtils.nat_to_int_102_2068", %Uint32* %int24, align 4, !dbg !161 - %"$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 = %"$have_gas_2061" - call void @_out_of_gas() - br label %"$have_gas_2072" - -"$have_gas_2072": ; preds = %"$out_of_gas_2071", %"$have_gas_2061" - %"$consume_2073" = sub i64 %"$gasrem_2069", 1 - store i64 %"$consume_2073", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %Uint32* %"$NatUtils.nat_to_int_102", metadata !357, metadata !DIExpression()), !dbg !358 + %"$NatUtils.nat_to_int_2080" = load { %Uint32 (i8*, %TName_Nat*)*, i8* }, { %Uint32 (i8*, %TName_Nat*)*, i8* }* @NatUtils.nat_to_int, align 8 + %"$NatUtils.nat_to_int_fptr_2081" = extractvalue { %Uint32 (i8*, %TName_Nat*)*, i8* } %"$NatUtils.nat_to_int_2080", 0 + %"$NatUtils.nat_to_int_envptr_2082" = extractvalue { %Uint32 (i8*, %TName_Nat*)*, i8* } %"$NatUtils.nat_to_int_2080", 1 + %"$ack23_2083" = load %TName_Nat*, %TName_Nat** %ack23, align 8 + %"$NatUtils.nat_to_int_call_2084" = call %Uint32 %"$NatUtils.nat_to_int_fptr_2081"(i8* %"$NatUtils.nat_to_int_envptr_2082", %TName_Nat* %"$ack23_2083"), !dbg !358 + store %Uint32 %"$NatUtils.nat_to_int_call_2084", %Uint32* %"$NatUtils.nat_to_int_102", align 4, !dbg !358 + %"$$NatUtils.nat_to_int_102_2085" = load %Uint32, %Uint32* %"$NatUtils.nat_to_int_102", align 4 + store %Uint32 %"$$NatUtils.nat_to_int_102_2085", %Uint32* %int24, align 4, !dbg !358 + %"$gasrem_2086" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2087" = icmp ugt i64 1, %"$gasrem_2086" + br i1 %"$gascmp_2087", label %"$out_of_gas_2088", label %"$have_gas_2089" + +"$out_of_gas_2088": ; preds = %"$have_gas_2078" + call void @_out_of_gas() + br label %"$have_gas_2089" + +"$have_gas_2089": ; preds = %"$out_of_gas_2088", %"$have_gas_2078" + %"$consume_2090" = sub i64 %"$gasrem_2086", 1 + store i64 %"$consume_2090", i64* @_gasrem, align 8 %int30 = alloca %Uint32, 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" + call void @llvm.dbg.declare(metadata %Uint32* %int30, metadata !359, metadata !DIExpression()), !dbg !360 + %"$gasrem_2091" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2092" = icmp ugt i64 1, %"$gasrem_2091" + br i1 %"$gascmp_2092", label %"$out_of_gas_2093", label %"$have_gas_2094" -"$out_of_gas_2076": ; preds = %"$have_gas_2072" +"$out_of_gas_2093": ; preds = %"$have_gas_2089" call void @_out_of_gas() - br label %"$have_gas_2077" + br label %"$have_gas_2094" -"$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 +"$have_gas_2094": ; preds = %"$out_of_gas_2093", %"$have_gas_2089" + %"$consume_2095" = sub i64 %"$gasrem_2091", 1 + store i64 %"$consume_2095", i64* @_gasrem, align 8 %"$NatUtils.nat_to_int_103" = alloca %Uint32, align 8 - %"$NatUtils.nat_to_int_2079" = load { %Uint32 (i8*, %TName_Nat*)*, i8* }, { %Uint32 (i8*, %TName_Nat*)*, i8* }* @NatUtils.nat_to_int, align 8 - %"$NatUtils.nat_to_int_fptr_2080" = extractvalue { %Uint32 (i8*, %TName_Nat*)*, i8* } %"$NatUtils.nat_to_int_2079", 0 - %"$NatUtils.nat_to_int_envptr_2081" = extractvalue { %Uint32 (i8*, %TName_Nat*)*, i8* } %"$NatUtils.nat_to_int_2079", 1 - %"$ack30_2082" = load %TName_Nat*, %TName_Nat** %ack30, align 8 - %"$NatUtils.nat_to_int_call_2083" = call %Uint32 %"$NatUtils.nat_to_int_fptr_2080"(i8* %"$NatUtils.nat_to_int_envptr_2081", %TName_Nat* %"$ack30_2082"), !dbg !162 - store %Uint32 %"$NatUtils.nat_to_int_call_2083", %Uint32* %"$NatUtils.nat_to_int_103", align 4, !dbg !162 - %"$$NatUtils.nat_to_int_103_2084" = load %Uint32, %Uint32* %"$NatUtils.nat_to_int_103", align 4 - store %Uint32 %"$$NatUtils.nat_to_int_103_2084", %Uint32* %int30, align 4, !dbg !162 - %"$gasrem_2085" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2086" = icmp ugt i64 1, %"$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", 1 - store i64 %"$consume_2089", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %Uint32* %"$NatUtils.nat_to_int_103", metadata !361, metadata !DIExpression()), !dbg !362 + %"$NatUtils.nat_to_int_2096" = load { %Uint32 (i8*, %TName_Nat*)*, i8* }, { %Uint32 (i8*, %TName_Nat*)*, i8* }* @NatUtils.nat_to_int, align 8 + %"$NatUtils.nat_to_int_fptr_2097" = extractvalue { %Uint32 (i8*, %TName_Nat*)*, i8* } %"$NatUtils.nat_to_int_2096", 0 + %"$NatUtils.nat_to_int_envptr_2098" = extractvalue { %Uint32 (i8*, %TName_Nat*)*, i8* } %"$NatUtils.nat_to_int_2096", 1 + %"$ack30_2099" = load %TName_Nat*, %TName_Nat** %ack30, align 8 + %"$NatUtils.nat_to_int_call_2100" = call %Uint32 %"$NatUtils.nat_to_int_fptr_2097"(i8* %"$NatUtils.nat_to_int_envptr_2098", %TName_Nat* %"$ack30_2099"), !dbg !362 + store %Uint32 %"$NatUtils.nat_to_int_call_2100", %Uint32* %"$NatUtils.nat_to_int_103", align 4, !dbg !362 + %"$$NatUtils.nat_to_int_103_2101" = load %Uint32, %Uint32* %"$NatUtils.nat_to_int_103", align 4 + store %Uint32 %"$$NatUtils.nat_to_int_103_2101", %Uint32* %int30, align 4, !dbg !362 + %"$gasrem_2102" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2103" = icmp ugt i64 1, %"$gasrem_2102" + br i1 %"$gascmp_2103", label %"$out_of_gas_2104", label %"$have_gas_2105" + +"$out_of_gas_2104": ; preds = %"$have_gas_2094" + call void @_out_of_gas() + br label %"$have_gas_2105" + +"$have_gas_2105": ; preds = %"$out_of_gas_2104", %"$have_gas_2094" + %"$consume_2106" = sub i64 %"$gasrem_2102", 1 + store i64 %"$consume_2106", i64* @_gasrem, align 8 %int31 = alloca %Uint32, align 8 - %"$gasrem_2090" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2091" = icmp ugt i64 1, %"$gasrem_2090" - br i1 %"$gascmp_2091", label %"$out_of_gas_2092", label %"$have_gas_2093" + call void @llvm.dbg.declare(metadata %Uint32* %int31, metadata !363, metadata !DIExpression()), !dbg !364 + %"$gasrem_2107" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2108" = icmp ugt i64 1, %"$gasrem_2107" + br i1 %"$gascmp_2108", label %"$out_of_gas_2109", label %"$have_gas_2110" -"$out_of_gas_2092": ; preds = %"$have_gas_2088" +"$out_of_gas_2109": ; preds = %"$have_gas_2105" call void @_out_of_gas() - br label %"$have_gas_2093" + br label %"$have_gas_2110" -"$have_gas_2093": ; preds = %"$out_of_gas_2092", %"$have_gas_2088" - %"$consume_2094" = sub i64 %"$gasrem_2090", 1 - store i64 %"$consume_2094", i64* @_gasrem, align 8 +"$have_gas_2110": ; preds = %"$out_of_gas_2109", %"$have_gas_2105" + %"$consume_2111" = sub i64 %"$gasrem_2107", 1 + store i64 %"$consume_2111", i64* @_gasrem, align 8 %"$NatUtils.nat_to_int_104" = alloca %Uint32, align 8 - %"$NatUtils.nat_to_int_2095" = load { %Uint32 (i8*, %TName_Nat*)*, i8* }, { %Uint32 (i8*, %TName_Nat*)*, i8* }* @NatUtils.nat_to_int, align 8 - %"$NatUtils.nat_to_int_fptr_2096" = extractvalue { %Uint32 (i8*, %TName_Nat*)*, i8* } %"$NatUtils.nat_to_int_2095", 0 - %"$NatUtils.nat_to_int_envptr_2097" = extractvalue { %Uint32 (i8*, %TName_Nat*)*, i8* } %"$NatUtils.nat_to_int_2095", 1 - %"$ack31_2098" = load %TName_Nat*, %TName_Nat** %ack31, align 8 - %"$NatUtils.nat_to_int_call_2099" = call %Uint32 %"$NatUtils.nat_to_int_fptr_2096"(i8* %"$NatUtils.nat_to_int_envptr_2097", %TName_Nat* %"$ack31_2098"), !dbg !163 - store %Uint32 %"$NatUtils.nat_to_int_call_2099", %Uint32* %"$NatUtils.nat_to_int_104", align 4, !dbg !163 - %"$$NatUtils.nat_to_int_104_2100" = load %Uint32, %Uint32* %"$NatUtils.nat_to_int_104", align 4 - store %Uint32 %"$$NatUtils.nat_to_int_104_2100", %Uint32* %int31, align 4, !dbg !163 - %"$gasrem_2101" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2102" = icmp ugt i64 1, %"$gasrem_2101" - br i1 %"$gascmp_2102", label %"$out_of_gas_2103", label %"$have_gas_2104" - -"$out_of_gas_2103": ; preds = %"$have_gas_2093" - call void @_out_of_gas() - br label %"$have_gas_2104" - -"$have_gas_2104": ; preds = %"$out_of_gas_2103", %"$have_gas_2093" - %"$consume_2105" = sub i64 %"$gasrem_2101", 1 - store i64 %"$consume_2105", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %Uint32* %"$NatUtils.nat_to_int_104", metadata !365, metadata !DIExpression()), !dbg !366 + %"$NatUtils.nat_to_int_2112" = load { %Uint32 (i8*, %TName_Nat*)*, i8* }, { %Uint32 (i8*, %TName_Nat*)*, i8* }* @NatUtils.nat_to_int, align 8 + %"$NatUtils.nat_to_int_fptr_2113" = extractvalue { %Uint32 (i8*, %TName_Nat*)*, i8* } %"$NatUtils.nat_to_int_2112", 0 + %"$NatUtils.nat_to_int_envptr_2114" = extractvalue { %Uint32 (i8*, %TName_Nat*)*, i8* } %"$NatUtils.nat_to_int_2112", 1 + %"$ack31_2115" = load %TName_Nat*, %TName_Nat** %ack31, align 8 + %"$NatUtils.nat_to_int_call_2116" = call %Uint32 %"$NatUtils.nat_to_int_fptr_2113"(i8* %"$NatUtils.nat_to_int_envptr_2114", %TName_Nat* %"$ack31_2115"), !dbg !366 + store %Uint32 %"$NatUtils.nat_to_int_call_2116", %Uint32* %"$NatUtils.nat_to_int_104", align 4, !dbg !366 + %"$$NatUtils.nat_to_int_104_2117" = load %Uint32, %Uint32* %"$NatUtils.nat_to_int_104", align 4 + store %Uint32 %"$$NatUtils.nat_to_int_104_2117", %Uint32* %int31, align 4, !dbg !366 + %"$gasrem_2118" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2119" = icmp ugt i64 1, %"$gasrem_2118" + br i1 %"$gascmp_2119", label %"$out_of_gas_2120", label %"$have_gas_2121" + +"$out_of_gas_2120": ; preds = %"$have_gas_2110" + call void @_out_of_gas() + br label %"$have_gas_2121" + +"$have_gas_2121": ; preds = %"$out_of_gas_2120", %"$have_gas_2110" + %"$consume_2122" = sub i64 %"$gasrem_2118", 1 + store i64 %"$consume_2122", i64* @_gasrem, align 8 %int32 = alloca %Uint32, align 8 - %"$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" + call void @llvm.dbg.declare(metadata %Uint32* %int32, metadata !367, metadata !DIExpression()), !dbg !368 + %"$gasrem_2123" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2124" = icmp ugt i64 1, %"$gasrem_2123" + br i1 %"$gascmp_2124", label %"$out_of_gas_2125", label %"$have_gas_2126" -"$out_of_gas_2108": ; preds = %"$have_gas_2104" +"$out_of_gas_2125": ; preds = %"$have_gas_2121" call void @_out_of_gas() - br label %"$have_gas_2109" + br label %"$have_gas_2126" -"$have_gas_2109": ; preds = %"$out_of_gas_2108", %"$have_gas_2104" - %"$consume_2110" = sub i64 %"$gasrem_2106", 1 - store i64 %"$consume_2110", i64* @_gasrem, align 8 +"$have_gas_2126": ; preds = %"$out_of_gas_2125", %"$have_gas_2121" + %"$consume_2127" = sub i64 %"$gasrem_2123", 1 + store i64 %"$consume_2127", i64* @_gasrem, align 8 %"$NatUtils.nat_to_int_105" = alloca %Uint32, align 8 - %"$NatUtils.nat_to_int_2111" = load { %Uint32 (i8*, %TName_Nat*)*, i8* }, { %Uint32 (i8*, %TName_Nat*)*, i8* }* @NatUtils.nat_to_int, align 8 - %"$NatUtils.nat_to_int_fptr_2112" = extractvalue { %Uint32 (i8*, %TName_Nat*)*, i8* } %"$NatUtils.nat_to_int_2111", 0 - %"$NatUtils.nat_to_int_envptr_2113" = extractvalue { %Uint32 (i8*, %TName_Nat*)*, i8* } %"$NatUtils.nat_to_int_2111", 1 - %"$ack32_2114" = load %TName_Nat*, %TName_Nat** %ack32, align 8 - %"$NatUtils.nat_to_int_call_2115" = call %Uint32 %"$NatUtils.nat_to_int_fptr_2112"(i8* %"$NatUtils.nat_to_int_envptr_2113", %TName_Nat* %"$ack32_2114"), !dbg !164 - store %Uint32 %"$NatUtils.nat_to_int_call_2115", %Uint32* %"$NatUtils.nat_to_int_105", align 4, !dbg !164 - %"$$NatUtils.nat_to_int_105_2116" = load %Uint32, %Uint32* %"$NatUtils.nat_to_int_105", align 4 - store %Uint32 %"$$NatUtils.nat_to_int_105_2116", %Uint32* %int32, align 4, !dbg !164 - %"$gasrem_2117" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2118" = icmp ugt i64 1, %"$gasrem_2117" - br i1 %"$gascmp_2118", label %"$out_of_gas_2119", label %"$have_gas_2120" - -"$out_of_gas_2119": ; preds = %"$have_gas_2109" - call void @_out_of_gas() - br label %"$have_gas_2120" - -"$have_gas_2120": ; preds = %"$out_of_gas_2119", %"$have_gas_2109" - %"$consume_2121" = sub i64 %"$gasrem_2117", 1 - store i64 %"$consume_2121", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %Uint32* %"$NatUtils.nat_to_int_105", metadata !369, metadata !DIExpression()), !dbg !370 + %"$NatUtils.nat_to_int_2128" = load { %Uint32 (i8*, %TName_Nat*)*, i8* }, { %Uint32 (i8*, %TName_Nat*)*, i8* }* @NatUtils.nat_to_int, align 8 + %"$NatUtils.nat_to_int_fptr_2129" = extractvalue { %Uint32 (i8*, %TName_Nat*)*, i8* } %"$NatUtils.nat_to_int_2128", 0 + %"$NatUtils.nat_to_int_envptr_2130" = extractvalue { %Uint32 (i8*, %TName_Nat*)*, i8* } %"$NatUtils.nat_to_int_2128", 1 + %"$ack32_2131" = load %TName_Nat*, %TName_Nat** %ack32, align 8 + %"$NatUtils.nat_to_int_call_2132" = call %Uint32 %"$NatUtils.nat_to_int_fptr_2129"(i8* %"$NatUtils.nat_to_int_envptr_2130", %TName_Nat* %"$ack32_2131"), !dbg !370 + store %Uint32 %"$NatUtils.nat_to_int_call_2132", %Uint32* %"$NatUtils.nat_to_int_105", align 4, !dbg !370 + %"$$NatUtils.nat_to_int_105_2133" = load %Uint32, %Uint32* %"$NatUtils.nat_to_int_105", align 4 + store %Uint32 %"$$NatUtils.nat_to_int_105_2133", %Uint32* %int32, align 4, !dbg !370 + %"$gasrem_2134" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2135" = icmp ugt i64 1, %"$gasrem_2134" + br i1 %"$gascmp_2135", label %"$out_of_gas_2136", label %"$have_gas_2137" + +"$out_of_gas_2136": ; preds = %"$have_gas_2126" + call void @_out_of_gas() + br label %"$have_gas_2137" + +"$have_gas_2137": ; preds = %"$out_of_gas_2136", %"$have_gas_2126" + %"$consume_2138" = sub i64 %"$gasrem_2134", 1 + store i64 %"$consume_2138", i64* @_gasrem, align 8 %int33 = alloca %Uint32, align 8 - %"$gasrem_2122" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2123" = icmp ugt i64 1, %"$gasrem_2122" - br i1 %"$gascmp_2123", label %"$out_of_gas_2124", label %"$have_gas_2125" + call void @llvm.dbg.declare(metadata %Uint32* %int33, metadata !371, metadata !DIExpression()), !dbg !372 + %"$gasrem_2139" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2140" = icmp ugt i64 1, %"$gasrem_2139" + br i1 %"$gascmp_2140", label %"$out_of_gas_2141", label %"$have_gas_2142" -"$out_of_gas_2124": ; preds = %"$have_gas_2120" +"$out_of_gas_2141": ; preds = %"$have_gas_2137" call void @_out_of_gas() - br label %"$have_gas_2125" + br label %"$have_gas_2142" -"$have_gas_2125": ; preds = %"$out_of_gas_2124", %"$have_gas_2120" - %"$consume_2126" = sub i64 %"$gasrem_2122", 1 - store i64 %"$consume_2126", i64* @_gasrem, align 8 +"$have_gas_2142": ; preds = %"$out_of_gas_2141", %"$have_gas_2137" + %"$consume_2143" = sub i64 %"$gasrem_2139", 1 + store i64 %"$consume_2143", i64* @_gasrem, align 8 %"$NatUtils.nat_to_int_106" = alloca %Uint32, align 8 - %"$NatUtils.nat_to_int_2127" = load { %Uint32 (i8*, %TName_Nat*)*, i8* }, { %Uint32 (i8*, %TName_Nat*)*, i8* }* @NatUtils.nat_to_int, align 8 - %"$NatUtils.nat_to_int_fptr_2128" = extractvalue { %Uint32 (i8*, %TName_Nat*)*, i8* } %"$NatUtils.nat_to_int_2127", 0 - %"$NatUtils.nat_to_int_envptr_2129" = extractvalue { %Uint32 (i8*, %TName_Nat*)*, i8* } %"$NatUtils.nat_to_int_2127", 1 - %"$ack33_2130" = load %TName_Nat*, %TName_Nat** %ack33, align 8 - %"$NatUtils.nat_to_int_call_2131" = call %Uint32 %"$NatUtils.nat_to_int_fptr_2128"(i8* %"$NatUtils.nat_to_int_envptr_2129", %TName_Nat* %"$ack33_2130"), !dbg !165 - store %Uint32 %"$NatUtils.nat_to_int_call_2131", %Uint32* %"$NatUtils.nat_to_int_106", align 4, !dbg !165 - %"$$NatUtils.nat_to_int_106_2132" = load %Uint32, %Uint32* %"$NatUtils.nat_to_int_106", align 4 - store %Uint32 %"$$NatUtils.nat_to_int_106_2132", %Uint32* %int33, align 4, !dbg !165 - %"$gasrem_2133" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2134" = icmp ugt i64 1, %"$gasrem_2133" - br i1 %"$gascmp_2134", label %"$out_of_gas_2135", label %"$have_gas_2136" - -"$out_of_gas_2135": ; preds = %"$have_gas_2125" - call void @_out_of_gas() - br label %"$have_gas_2136" - -"$have_gas_2136": ; preds = %"$out_of_gas_2135", %"$have_gas_2125" - %"$consume_2137" = sub i64 %"$gasrem_2133", 1 - store i64 %"$consume_2137", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %Uint32* %"$NatUtils.nat_to_int_106", metadata !373, metadata !DIExpression()), !dbg !374 + %"$NatUtils.nat_to_int_2144" = load { %Uint32 (i8*, %TName_Nat*)*, i8* }, { %Uint32 (i8*, %TName_Nat*)*, i8* }* @NatUtils.nat_to_int, align 8 + %"$NatUtils.nat_to_int_fptr_2145" = extractvalue { %Uint32 (i8*, %TName_Nat*)*, i8* } %"$NatUtils.nat_to_int_2144", 0 + %"$NatUtils.nat_to_int_envptr_2146" = extractvalue { %Uint32 (i8*, %TName_Nat*)*, i8* } %"$NatUtils.nat_to_int_2144", 1 + %"$ack33_2147" = load %TName_Nat*, %TName_Nat** %ack33, align 8 + %"$NatUtils.nat_to_int_call_2148" = call %Uint32 %"$NatUtils.nat_to_int_fptr_2145"(i8* %"$NatUtils.nat_to_int_envptr_2146", %TName_Nat* %"$ack33_2147"), !dbg !374 + store %Uint32 %"$NatUtils.nat_to_int_call_2148", %Uint32* %"$NatUtils.nat_to_int_106", align 4, !dbg !374 + %"$$NatUtils.nat_to_int_106_2149" = load %Uint32, %Uint32* %"$NatUtils.nat_to_int_106", align 4 + store %Uint32 %"$$NatUtils.nat_to_int_106_2149", %Uint32* %int33, align 4, !dbg !374 + %"$gasrem_2150" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2151" = icmp ugt i64 1, %"$gasrem_2150" + br i1 %"$gascmp_2151", label %"$out_of_gas_2152", label %"$have_gas_2153" + +"$out_of_gas_2152": ; preds = %"$have_gas_2142" + call void @_out_of_gas() + br label %"$have_gas_2153" + +"$have_gas_2153": ; preds = %"$out_of_gas_2152", %"$have_gas_2142" + %"$consume_2154" = sub i64 %"$gasrem_2150", 1 + store i64 %"$consume_2154", i64* @_gasrem, align 8 %int34 = alloca %Uint32, 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" + call void @llvm.dbg.declare(metadata %Uint32* %int34, metadata !375, metadata !DIExpression()), !dbg !376 + %"$gasrem_2155" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2156" = icmp ugt i64 1, %"$gasrem_2155" + br i1 %"$gascmp_2156", label %"$out_of_gas_2157", label %"$have_gas_2158" -"$out_of_gas_2140": ; preds = %"$have_gas_2136" +"$out_of_gas_2157": ; preds = %"$have_gas_2153" call void @_out_of_gas() - br label %"$have_gas_2141" + br label %"$have_gas_2158" -"$have_gas_2141": ; preds = %"$out_of_gas_2140", %"$have_gas_2136" - %"$consume_2142" = sub i64 %"$gasrem_2138", 1 - store i64 %"$consume_2142", i64* @_gasrem, align 8 +"$have_gas_2158": ; preds = %"$out_of_gas_2157", %"$have_gas_2153" + %"$consume_2159" = sub i64 %"$gasrem_2155", 1 + store i64 %"$consume_2159", i64* @_gasrem, align 8 %"$NatUtils.nat_to_int_107" = alloca %Uint32, align 8 - %"$NatUtils.nat_to_int_2143" = load { %Uint32 (i8*, %TName_Nat*)*, i8* }, { %Uint32 (i8*, %TName_Nat*)*, i8* }* @NatUtils.nat_to_int, align 8 - %"$NatUtils.nat_to_int_fptr_2144" = extractvalue { %Uint32 (i8*, %TName_Nat*)*, i8* } %"$NatUtils.nat_to_int_2143", 0 - %"$NatUtils.nat_to_int_envptr_2145" = extractvalue { %Uint32 (i8*, %TName_Nat*)*, i8* } %"$NatUtils.nat_to_int_2143", 1 - %"$ack34_2146" = load %TName_Nat*, %TName_Nat** %ack34, align 8 - %"$NatUtils.nat_to_int_call_2147" = call %Uint32 %"$NatUtils.nat_to_int_fptr_2144"(i8* %"$NatUtils.nat_to_int_envptr_2145", %TName_Nat* %"$ack34_2146"), !dbg !166 - store %Uint32 %"$NatUtils.nat_to_int_call_2147", %Uint32* %"$NatUtils.nat_to_int_107", align 4, !dbg !166 - %"$$NatUtils.nat_to_int_107_2148" = load %Uint32, %Uint32* %"$NatUtils.nat_to_int_107", align 4 - store %Uint32 %"$$NatUtils.nat_to_int_107_2148", %Uint32* %int34, align 4, !dbg !166 - %"$gasrem_2149" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2150" = icmp ugt i64 1, %"$gasrem_2149" - br i1 %"$gascmp_2150", label %"$out_of_gas_2151", label %"$have_gas_2152" - -"$out_of_gas_2151": ; preds = %"$have_gas_2141" - call void @_out_of_gas() - br label %"$have_gas_2152" - -"$have_gas_2152": ; preds = %"$out_of_gas_2151", %"$have_gas_2141" - %"$consume_2153" = sub i64 %"$gasrem_2149", 1 - store i64 %"$consume_2153", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %Uint32* %"$NatUtils.nat_to_int_107", metadata !377, metadata !DIExpression()), !dbg !378 + %"$NatUtils.nat_to_int_2160" = load { %Uint32 (i8*, %TName_Nat*)*, i8* }, { %Uint32 (i8*, %TName_Nat*)*, i8* }* @NatUtils.nat_to_int, align 8 + %"$NatUtils.nat_to_int_fptr_2161" = extractvalue { %Uint32 (i8*, %TName_Nat*)*, i8* } %"$NatUtils.nat_to_int_2160", 0 + %"$NatUtils.nat_to_int_envptr_2162" = extractvalue { %Uint32 (i8*, %TName_Nat*)*, i8* } %"$NatUtils.nat_to_int_2160", 1 + %"$ack34_2163" = load %TName_Nat*, %TName_Nat** %ack34, align 8 + %"$NatUtils.nat_to_int_call_2164" = call %Uint32 %"$NatUtils.nat_to_int_fptr_2161"(i8* %"$NatUtils.nat_to_int_envptr_2162", %TName_Nat* %"$ack34_2163"), !dbg !378 + store %Uint32 %"$NatUtils.nat_to_int_call_2164", %Uint32* %"$NatUtils.nat_to_int_107", align 4, !dbg !378 + %"$$NatUtils.nat_to_int_107_2165" = load %Uint32, %Uint32* %"$NatUtils.nat_to_int_107", align 4 + store %Uint32 %"$$NatUtils.nat_to_int_107_2165", %Uint32* %int34, align 4, !dbg !378 + %"$gasrem_2166" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2167" = icmp ugt i64 1, %"$gasrem_2166" + br i1 %"$gascmp_2167", label %"$out_of_gas_2168", label %"$have_gas_2169" + +"$out_of_gas_2168": ; preds = %"$have_gas_2158" + call void @_out_of_gas() + br label %"$have_gas_2169" + +"$have_gas_2169": ; preds = %"$out_of_gas_2168", %"$have_gas_2158" + %"$consume_2170" = sub i64 %"$gasrem_2166", 1 + store i64 %"$consume_2170", i64* @_gasrem, align 8 %int40 = alloca %Uint32, align 8 - %"$gasrem_2154" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2155" = icmp ugt i64 1, %"$gasrem_2154" - br i1 %"$gascmp_2155", label %"$out_of_gas_2156", label %"$have_gas_2157" + call void @llvm.dbg.declare(metadata %Uint32* %int40, metadata !379, metadata !DIExpression()), !dbg !380 + %"$gasrem_2171" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2172" = icmp ugt i64 1, %"$gasrem_2171" + br i1 %"$gascmp_2172", label %"$out_of_gas_2173", label %"$have_gas_2174" -"$out_of_gas_2156": ; preds = %"$have_gas_2152" +"$out_of_gas_2173": ; preds = %"$have_gas_2169" call void @_out_of_gas() - br label %"$have_gas_2157" + br label %"$have_gas_2174" -"$have_gas_2157": ; preds = %"$out_of_gas_2156", %"$have_gas_2152" - %"$consume_2158" = sub i64 %"$gasrem_2154", 1 - store i64 %"$consume_2158", i64* @_gasrem, align 8 +"$have_gas_2174": ; preds = %"$out_of_gas_2173", %"$have_gas_2169" + %"$consume_2175" = sub i64 %"$gasrem_2171", 1 + store i64 %"$consume_2175", i64* @_gasrem, align 8 %"$NatUtils.nat_to_int_108" = alloca %Uint32, align 8 - %"$NatUtils.nat_to_int_2159" = load { %Uint32 (i8*, %TName_Nat*)*, i8* }, { %Uint32 (i8*, %TName_Nat*)*, i8* }* @NatUtils.nat_to_int, align 8 - %"$NatUtils.nat_to_int_fptr_2160" = extractvalue { %Uint32 (i8*, %TName_Nat*)*, i8* } %"$NatUtils.nat_to_int_2159", 0 - %"$NatUtils.nat_to_int_envptr_2161" = extractvalue { %Uint32 (i8*, %TName_Nat*)*, i8* } %"$NatUtils.nat_to_int_2159", 1 - %"$ack40_2162" = load %TName_Nat*, %TName_Nat** %ack40, align 8 - %"$NatUtils.nat_to_int_call_2163" = call %Uint32 %"$NatUtils.nat_to_int_fptr_2160"(i8* %"$NatUtils.nat_to_int_envptr_2161", %TName_Nat* %"$ack40_2162"), !dbg !167 - store %Uint32 %"$NatUtils.nat_to_int_call_2163", %Uint32* %"$NatUtils.nat_to_int_108", align 4, !dbg !167 - %"$$NatUtils.nat_to_int_108_2164" = load %Uint32, %Uint32* %"$NatUtils.nat_to_int_108", align 4 - store %Uint32 %"$$NatUtils.nat_to_int_108_2164", %Uint32* %int40, align 4, !dbg !167 - %"$gasrem_2165" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2166" = icmp ugt i64 1, %"$gasrem_2165" - br i1 %"$gascmp_2166", label %"$out_of_gas_2167", label %"$have_gas_2168" - -"$out_of_gas_2167": ; preds = %"$have_gas_2157" - call void @_out_of_gas() - br label %"$have_gas_2168" - -"$have_gas_2168": ; preds = %"$out_of_gas_2167", %"$have_gas_2157" - %"$consume_2169" = sub i64 %"$gasrem_2165", 1 - store i64 %"$consume_2169", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %Uint32* %"$NatUtils.nat_to_int_108", metadata !381, metadata !DIExpression()), !dbg !382 + %"$NatUtils.nat_to_int_2176" = load { %Uint32 (i8*, %TName_Nat*)*, i8* }, { %Uint32 (i8*, %TName_Nat*)*, i8* }* @NatUtils.nat_to_int, align 8 + %"$NatUtils.nat_to_int_fptr_2177" = extractvalue { %Uint32 (i8*, %TName_Nat*)*, i8* } %"$NatUtils.nat_to_int_2176", 0 + %"$NatUtils.nat_to_int_envptr_2178" = extractvalue { %Uint32 (i8*, %TName_Nat*)*, i8* } %"$NatUtils.nat_to_int_2176", 1 + %"$ack40_2179" = load %TName_Nat*, %TName_Nat** %ack40, align 8 + %"$NatUtils.nat_to_int_call_2180" = call %Uint32 %"$NatUtils.nat_to_int_fptr_2177"(i8* %"$NatUtils.nat_to_int_envptr_2178", %TName_Nat* %"$ack40_2179"), !dbg !382 + store %Uint32 %"$NatUtils.nat_to_int_call_2180", %Uint32* %"$NatUtils.nat_to_int_108", align 4, !dbg !382 + %"$$NatUtils.nat_to_int_108_2181" = load %Uint32, %Uint32* %"$NatUtils.nat_to_int_108", align 4 + store %Uint32 %"$$NatUtils.nat_to_int_108_2181", %Uint32* %int40, align 4, !dbg !382 + %"$gasrem_2182" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2183" = icmp ugt i64 1, %"$gasrem_2182" + br i1 %"$gascmp_2183", label %"$out_of_gas_2184", label %"$have_gas_2185" + +"$out_of_gas_2184": ; preds = %"$have_gas_2174" + call void @_out_of_gas() + br label %"$have_gas_2185" + +"$have_gas_2185": ; preds = %"$out_of_gas_2184", %"$have_gas_2174" + %"$consume_2186" = sub i64 %"$gasrem_2182", 1 + store i64 %"$consume_2186", i64* @_gasrem, align 8 %sum = alloca %Uint32, align 8 - %"$gasrem_2170" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2171" = icmp ugt i64 4, %"$gasrem_2170" - br i1 %"$gascmp_2171", label %"$out_of_gas_2172", label %"$have_gas_2173" + call void @llvm.dbg.declare(metadata %Uint32* %sum, metadata !383, metadata !DIExpression()), !dbg !384 + %"$gasrem_2187" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2188" = icmp ugt i64 4, %"$gasrem_2187" + br i1 %"$gascmp_2188", label %"$out_of_gas_2189", label %"$have_gas_2190" -"$out_of_gas_2172": ; preds = %"$have_gas_2168" +"$out_of_gas_2189": ; preds = %"$have_gas_2185" call void @_out_of_gas() - br label %"$have_gas_2173" + br label %"$have_gas_2190" -"$have_gas_2173": ; preds = %"$out_of_gas_2172", %"$have_gas_2168" - %"$consume_2174" = sub i64 %"$gasrem_2170", 4 - store i64 %"$consume_2174", i64* @_gasrem, align 8 - %"$int01_2175" = load %Uint32, %Uint32* %int01, align 4 - %"$int02_2176" = load %Uint32, %Uint32* %int02, align 4 - %"$add_call_2177" = call %Uint32 @_add_Uint32(%Uint32 %"$int01_2175", %Uint32 %"$int02_2176"), !dbg !168 - store %Uint32 %"$add_call_2177", %Uint32* %sum, align 4, !dbg !168 - %"$gasrem_2178" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2179" = icmp ugt i64 1, %"$gasrem_2178" - br i1 %"$gascmp_2179", label %"$out_of_gas_2180", label %"$have_gas_2181" +"$have_gas_2190": ; preds = %"$out_of_gas_2189", %"$have_gas_2185" + %"$consume_2191" = sub i64 %"$gasrem_2187", 4 + store i64 %"$consume_2191", i64* @_gasrem, align 8 + %"$int01_2192" = load %Uint32, %Uint32* %int01, align 4 + %"$int02_2193" = load %Uint32, %Uint32* %int02, align 4 + %"$add_call_2194" = call %Uint32 @_add_Uint32(%Uint32 %"$int01_2192", %Uint32 %"$int02_2193"), !dbg !385 + store %Uint32 %"$add_call_2194", %Uint32* %sum, align 4, !dbg !385 + %"$gasrem_2195" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2196" = icmp ugt i64 1, %"$gasrem_2195" + br i1 %"$gascmp_2196", label %"$out_of_gas_2197", label %"$have_gas_2198" -"$out_of_gas_2180": ; preds = %"$have_gas_2173" +"$out_of_gas_2197": ; preds = %"$have_gas_2190" call void @_out_of_gas() - br label %"$have_gas_2181" + br label %"$have_gas_2198" -"$have_gas_2181": ; preds = %"$out_of_gas_2180", %"$have_gas_2173" - %"$consume_2182" = sub i64 %"$gasrem_2178", 1 - store i64 %"$consume_2182", i64* @_gasrem, align 8 +"$have_gas_2198": ; preds = %"$out_of_gas_2197", %"$have_gas_2190" + %"$consume_2199" = sub i64 %"$gasrem_2195", 1 + store i64 %"$consume_2199", i64* @_gasrem, align 8 %"$sum_7" = alloca %Uint32, align 8 - %"$gasrem_2183" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2184" = icmp ugt i64 4, %"$gasrem_2183" - br i1 %"$gascmp_2184", label %"$out_of_gas_2185", label %"$have_gas_2186" + call void @llvm.dbg.declare(metadata %Uint32* %"$sum_7", metadata !386, metadata !DIExpression()), !dbg !387 + %"$gasrem_2200" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2201" = icmp ugt i64 4, %"$gasrem_2200" + br i1 %"$gascmp_2201", label %"$out_of_gas_2202", label %"$have_gas_2203" -"$out_of_gas_2185": ; preds = %"$have_gas_2181" +"$out_of_gas_2202": ; preds = %"$have_gas_2198" call void @_out_of_gas() - br label %"$have_gas_2186" + br label %"$have_gas_2203" -"$have_gas_2186": ; preds = %"$out_of_gas_2185", %"$have_gas_2181" - %"$consume_2187" = sub i64 %"$gasrem_2183", 4 - store i64 %"$consume_2187", i64* @_gasrem, align 8 - %"$sum_2188" = load %Uint32, %Uint32* %sum, align 4 - %"$int03_2189" = load %Uint32, %Uint32* %int03, align 4 - %"$add_call_2190" = call %Uint32 @_add_Uint32(%Uint32 %"$sum_2188", %Uint32 %"$int03_2189"), !dbg !169 - store %Uint32 %"$add_call_2190", %Uint32* %"$sum_7", align 4, !dbg !169 - %"$gasrem_2191" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2192" = icmp ugt i64 1, %"$gasrem_2191" - br i1 %"$gascmp_2192", label %"$out_of_gas_2193", label %"$have_gas_2194" +"$have_gas_2203": ; preds = %"$out_of_gas_2202", %"$have_gas_2198" + %"$consume_2204" = sub i64 %"$gasrem_2200", 4 + store i64 %"$consume_2204", i64* @_gasrem, align 8 + %"$sum_2205" = load %Uint32, %Uint32* %sum, align 4 + %"$int03_2206" = load %Uint32, %Uint32* %int03, align 4 + %"$add_call_2207" = call %Uint32 @_add_Uint32(%Uint32 %"$sum_2205", %Uint32 %"$int03_2206"), !dbg !388 + store %Uint32 %"$add_call_2207", %Uint32* %"$sum_7", align 4, !dbg !388 + %"$gasrem_2208" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2209" = icmp ugt i64 1, %"$gasrem_2208" + br i1 %"$gascmp_2209", label %"$out_of_gas_2210", label %"$have_gas_2211" -"$out_of_gas_2193": ; preds = %"$have_gas_2186" +"$out_of_gas_2210": ; preds = %"$have_gas_2203" call void @_out_of_gas() - br label %"$have_gas_2194" + br label %"$have_gas_2211" -"$have_gas_2194": ; preds = %"$out_of_gas_2193", %"$have_gas_2186" - %"$consume_2195" = sub i64 %"$gasrem_2191", 1 - store i64 %"$consume_2195", i64* @_gasrem, align 8 +"$have_gas_2211": ; preds = %"$out_of_gas_2210", %"$have_gas_2203" + %"$consume_2212" = sub i64 %"$gasrem_2208", 1 + store i64 %"$consume_2212", i64* @_gasrem, align 8 %"$sum_8" = alloca %Uint32, align 8 - %"$gasrem_2196" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2197" = icmp ugt i64 4, %"$gasrem_2196" - br i1 %"$gascmp_2197", label %"$out_of_gas_2198", label %"$have_gas_2199" + call void @llvm.dbg.declare(metadata %Uint32* %"$sum_8", metadata !389, metadata !DIExpression()), !dbg !390 + %"$gasrem_2213" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2214" = icmp ugt i64 4, %"$gasrem_2213" + br i1 %"$gascmp_2214", label %"$out_of_gas_2215", label %"$have_gas_2216" -"$out_of_gas_2198": ; preds = %"$have_gas_2194" +"$out_of_gas_2215": ; preds = %"$have_gas_2211" call void @_out_of_gas() - br label %"$have_gas_2199" + br label %"$have_gas_2216" -"$have_gas_2199": ; preds = %"$out_of_gas_2198", %"$have_gas_2194" - %"$consume_2200" = sub i64 %"$gasrem_2196", 4 - store i64 %"$consume_2200", i64* @_gasrem, align 8 - %"$$sum_7_2201" = load %Uint32, %Uint32* %"$sum_7", align 4 - %"$int04_2202" = load %Uint32, %Uint32* %int04, align 4 - %"$add_call_2203" = call %Uint32 @_add_Uint32(%Uint32 %"$$sum_7_2201", %Uint32 %"$int04_2202"), !dbg !170 - store %Uint32 %"$add_call_2203", %Uint32* %"$sum_8", align 4, !dbg !170 - %"$gasrem_2204" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2205" = icmp ugt i64 1, %"$gasrem_2204" - br i1 %"$gascmp_2205", label %"$out_of_gas_2206", label %"$have_gas_2207" +"$have_gas_2216": ; preds = %"$out_of_gas_2215", %"$have_gas_2211" + %"$consume_2217" = sub i64 %"$gasrem_2213", 4 + store i64 %"$consume_2217", i64* @_gasrem, align 8 + %"$$sum_7_2218" = load %Uint32, %Uint32* %"$sum_7", align 4 + %"$int04_2219" = load %Uint32, %Uint32* %int04, align 4 + %"$add_call_2220" = call %Uint32 @_add_Uint32(%Uint32 %"$$sum_7_2218", %Uint32 %"$int04_2219"), !dbg !391 + store %Uint32 %"$add_call_2220", %Uint32* %"$sum_8", align 4, !dbg !391 + %"$gasrem_2221" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2222" = icmp ugt i64 1, %"$gasrem_2221" + br i1 %"$gascmp_2222", label %"$out_of_gas_2223", label %"$have_gas_2224" -"$out_of_gas_2206": ; preds = %"$have_gas_2199" +"$out_of_gas_2223": ; preds = %"$have_gas_2216" call void @_out_of_gas() - br label %"$have_gas_2207" + br label %"$have_gas_2224" -"$have_gas_2207": ; preds = %"$out_of_gas_2206", %"$have_gas_2199" - %"$consume_2208" = sub i64 %"$gasrem_2204", 1 - store i64 %"$consume_2208", i64* @_gasrem, align 8 +"$have_gas_2224": ; preds = %"$out_of_gas_2223", %"$have_gas_2216" + %"$consume_2225" = sub i64 %"$gasrem_2221", 1 + store i64 %"$consume_2225", i64* @_gasrem, align 8 %"$sum_9" = alloca %Uint32, align 8 - %"$gasrem_2209" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2210" = icmp ugt i64 4, %"$gasrem_2209" - br i1 %"$gascmp_2210", label %"$out_of_gas_2211", label %"$have_gas_2212" + call void @llvm.dbg.declare(metadata %Uint32* %"$sum_9", metadata !392, metadata !DIExpression()), !dbg !393 + %"$gasrem_2226" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2227" = icmp ugt i64 4, %"$gasrem_2226" + br i1 %"$gascmp_2227", label %"$out_of_gas_2228", label %"$have_gas_2229" -"$out_of_gas_2211": ; preds = %"$have_gas_2207" +"$out_of_gas_2228": ; preds = %"$have_gas_2224" call void @_out_of_gas() - br label %"$have_gas_2212" + br label %"$have_gas_2229" -"$have_gas_2212": ; preds = %"$out_of_gas_2211", %"$have_gas_2207" - %"$consume_2213" = sub i64 %"$gasrem_2209", 4 - store i64 %"$consume_2213", i64* @_gasrem, align 8 - %"$$sum_8_2214" = load %Uint32, %Uint32* %"$sum_8", align 4 - %"$int10_2215" = load %Uint32, %Uint32* %int10, align 4 - %"$add_call_2216" = call %Uint32 @_add_Uint32(%Uint32 %"$$sum_8_2214", %Uint32 %"$int10_2215"), !dbg !171 - store %Uint32 %"$add_call_2216", %Uint32* %"$sum_9", align 4, !dbg !171 - %"$gasrem_2217" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2218" = icmp ugt i64 1, %"$gasrem_2217" - br i1 %"$gascmp_2218", label %"$out_of_gas_2219", label %"$have_gas_2220" +"$have_gas_2229": ; preds = %"$out_of_gas_2228", %"$have_gas_2224" + %"$consume_2230" = sub i64 %"$gasrem_2226", 4 + store i64 %"$consume_2230", i64* @_gasrem, align 8 + %"$$sum_8_2231" = load %Uint32, %Uint32* %"$sum_8", align 4 + %"$int10_2232" = load %Uint32, %Uint32* %int10, align 4 + %"$add_call_2233" = call %Uint32 @_add_Uint32(%Uint32 %"$$sum_8_2231", %Uint32 %"$int10_2232"), !dbg !394 + store %Uint32 %"$add_call_2233", %Uint32* %"$sum_9", align 4, !dbg !394 + %"$gasrem_2234" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2235" = icmp ugt i64 1, %"$gasrem_2234" + br i1 %"$gascmp_2235", label %"$out_of_gas_2236", label %"$have_gas_2237" -"$out_of_gas_2219": ; preds = %"$have_gas_2212" +"$out_of_gas_2236": ; preds = %"$have_gas_2229" call void @_out_of_gas() - br label %"$have_gas_2220" + br label %"$have_gas_2237" -"$have_gas_2220": ; preds = %"$out_of_gas_2219", %"$have_gas_2212" - %"$consume_2221" = sub i64 %"$gasrem_2217", 1 - store i64 %"$consume_2221", i64* @_gasrem, align 8 +"$have_gas_2237": ; preds = %"$out_of_gas_2236", %"$have_gas_2229" + %"$consume_2238" = sub i64 %"$gasrem_2234", 1 + store i64 %"$consume_2238", i64* @_gasrem, align 8 %"$sum_10" = alloca %Uint32, align 8 - %"$gasrem_2222" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2223" = icmp ugt i64 4, %"$gasrem_2222" - br i1 %"$gascmp_2223", label %"$out_of_gas_2224", label %"$have_gas_2225" + call void @llvm.dbg.declare(metadata %Uint32* %"$sum_10", metadata !395, metadata !DIExpression()), !dbg !396 + %"$gasrem_2239" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2240" = icmp ugt i64 4, %"$gasrem_2239" + br i1 %"$gascmp_2240", label %"$out_of_gas_2241", label %"$have_gas_2242" -"$out_of_gas_2224": ; preds = %"$have_gas_2220" +"$out_of_gas_2241": ; preds = %"$have_gas_2237" call void @_out_of_gas() - br label %"$have_gas_2225" + br label %"$have_gas_2242" -"$have_gas_2225": ; preds = %"$out_of_gas_2224", %"$have_gas_2220" - %"$consume_2226" = sub i64 %"$gasrem_2222", 4 - store i64 %"$consume_2226", i64* @_gasrem, align 8 - %"$$sum_9_2227" = load %Uint32, %Uint32* %"$sum_9", align 4 - %"$int11_2228" = load %Uint32, %Uint32* %int11, align 4 - %"$add_call_2229" = call %Uint32 @_add_Uint32(%Uint32 %"$$sum_9_2227", %Uint32 %"$int11_2228"), !dbg !172 - store %Uint32 %"$add_call_2229", %Uint32* %"$sum_10", align 4, !dbg !172 - %"$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" +"$have_gas_2242": ; preds = %"$out_of_gas_2241", %"$have_gas_2237" + %"$consume_2243" = sub i64 %"$gasrem_2239", 4 + store i64 %"$consume_2243", i64* @_gasrem, align 8 + %"$$sum_9_2244" = load %Uint32, %Uint32* %"$sum_9", align 4 + %"$int11_2245" = load %Uint32, %Uint32* %int11, align 4 + %"$add_call_2246" = call %Uint32 @_add_Uint32(%Uint32 %"$$sum_9_2244", %Uint32 %"$int11_2245"), !dbg !397 + store %Uint32 %"$add_call_2246", %Uint32* %"$sum_10", align 4, !dbg !397 + %"$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" -"$out_of_gas_2232": ; preds = %"$have_gas_2225" +"$out_of_gas_2249": ; preds = %"$have_gas_2242" call void @_out_of_gas() - br label %"$have_gas_2233" + br label %"$have_gas_2250" -"$have_gas_2233": ; preds = %"$out_of_gas_2232", %"$have_gas_2225" - %"$consume_2234" = sub i64 %"$gasrem_2230", 1 - store i64 %"$consume_2234", i64* @_gasrem, align 8 +"$have_gas_2250": ; preds = %"$out_of_gas_2249", %"$have_gas_2242" + %"$consume_2251" = sub i64 %"$gasrem_2247", 1 + store i64 %"$consume_2251", i64* @_gasrem, align 8 %"$sum_11" = alloca %Uint32, align 8 - %"$gasrem_2235" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2236" = icmp ugt i64 4, %"$gasrem_2235" - br i1 %"$gascmp_2236", label %"$out_of_gas_2237", label %"$have_gas_2238" + call void @llvm.dbg.declare(metadata %Uint32* %"$sum_11", metadata !398, metadata !DIExpression()), !dbg !399 + %"$gasrem_2252" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2253" = icmp ugt i64 4, %"$gasrem_2252" + br i1 %"$gascmp_2253", label %"$out_of_gas_2254", label %"$have_gas_2255" -"$out_of_gas_2237": ; preds = %"$have_gas_2233" +"$out_of_gas_2254": ; preds = %"$have_gas_2250" call void @_out_of_gas() - br label %"$have_gas_2238" + br label %"$have_gas_2255" -"$have_gas_2238": ; preds = %"$out_of_gas_2237", %"$have_gas_2233" - %"$consume_2239" = sub i64 %"$gasrem_2235", 4 - store i64 %"$consume_2239", i64* @_gasrem, align 8 - %"$$sum_10_2240" = load %Uint32, %Uint32* %"$sum_10", align 4 - %"$int12_2241" = load %Uint32, %Uint32* %int12, align 4 - %"$add_call_2242" = call %Uint32 @_add_Uint32(%Uint32 %"$$sum_10_2240", %Uint32 %"$int12_2241"), !dbg !173 - store %Uint32 %"$add_call_2242", %Uint32* %"$sum_11", align 4, !dbg !173 - %"$gasrem_2243" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2244" = icmp ugt i64 1, %"$gasrem_2243" - br i1 %"$gascmp_2244", label %"$out_of_gas_2245", label %"$have_gas_2246" +"$have_gas_2255": ; preds = %"$out_of_gas_2254", %"$have_gas_2250" + %"$consume_2256" = sub i64 %"$gasrem_2252", 4 + store i64 %"$consume_2256", i64* @_gasrem, align 8 + %"$$sum_10_2257" = load %Uint32, %Uint32* %"$sum_10", align 4 + %"$int12_2258" = load %Uint32, %Uint32* %int12, align 4 + %"$add_call_2259" = call %Uint32 @_add_Uint32(%Uint32 %"$$sum_10_2257", %Uint32 %"$int12_2258"), !dbg !400 + store %Uint32 %"$add_call_2259", %Uint32* %"$sum_11", align 4, !dbg !400 + %"$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_2245": ; preds = %"$have_gas_2238" +"$out_of_gas_2262": ; preds = %"$have_gas_2255" call void @_out_of_gas() - br label %"$have_gas_2246" + br label %"$have_gas_2263" -"$have_gas_2246": ; preds = %"$out_of_gas_2245", %"$have_gas_2238" - %"$consume_2247" = sub i64 %"$gasrem_2243", 1 - store i64 %"$consume_2247", i64* @_gasrem, align 8 +"$have_gas_2263": ; preds = %"$out_of_gas_2262", %"$have_gas_2255" + %"$consume_2264" = sub i64 %"$gasrem_2260", 1 + store i64 %"$consume_2264", i64* @_gasrem, align 8 %"$sum_12" = alloca %Uint32, align 8 - %"$gasrem_2248" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2249" = icmp ugt i64 4, %"$gasrem_2248" - br i1 %"$gascmp_2249", label %"$out_of_gas_2250", label %"$have_gas_2251" + call void @llvm.dbg.declare(metadata %Uint32* %"$sum_12", metadata !401, metadata !DIExpression()), !dbg !402 + %"$gasrem_2265" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2266" = icmp ugt i64 4, %"$gasrem_2265" + br i1 %"$gascmp_2266", label %"$out_of_gas_2267", label %"$have_gas_2268" -"$out_of_gas_2250": ; preds = %"$have_gas_2246" +"$out_of_gas_2267": ; preds = %"$have_gas_2263" call void @_out_of_gas() - br label %"$have_gas_2251" + br label %"$have_gas_2268" -"$have_gas_2251": ; preds = %"$out_of_gas_2250", %"$have_gas_2246" - %"$consume_2252" = sub i64 %"$gasrem_2248", 4 - store i64 %"$consume_2252", i64* @_gasrem, align 8 - %"$$sum_11_2253" = load %Uint32, %Uint32* %"$sum_11", align 4 - %"$int13_2254" = load %Uint32, %Uint32* %int13, align 4 - %"$add_call_2255" = call %Uint32 @_add_Uint32(%Uint32 %"$$sum_11_2253", %Uint32 %"$int13_2254"), !dbg !174 - store %Uint32 %"$add_call_2255", %Uint32* %"$sum_12", align 4, !dbg !174 - %"$gasrem_2256" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2257" = icmp ugt i64 1, %"$gasrem_2256" - br i1 %"$gascmp_2257", label %"$out_of_gas_2258", label %"$have_gas_2259" +"$have_gas_2268": ; preds = %"$out_of_gas_2267", %"$have_gas_2263" + %"$consume_2269" = sub i64 %"$gasrem_2265", 4 + store i64 %"$consume_2269", i64* @_gasrem, align 8 + %"$$sum_11_2270" = load %Uint32, %Uint32* %"$sum_11", align 4 + %"$int13_2271" = load %Uint32, %Uint32* %int13, align 4 + %"$add_call_2272" = call %Uint32 @_add_Uint32(%Uint32 %"$$sum_11_2270", %Uint32 %"$int13_2271"), !dbg !403 + store %Uint32 %"$add_call_2272", %Uint32* %"$sum_12", align 4, !dbg !403 + %"$gasrem_2273" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2274" = icmp ugt i64 1, %"$gasrem_2273" + br i1 %"$gascmp_2274", label %"$out_of_gas_2275", label %"$have_gas_2276" -"$out_of_gas_2258": ; preds = %"$have_gas_2251" +"$out_of_gas_2275": ; preds = %"$have_gas_2268" call void @_out_of_gas() - br label %"$have_gas_2259" + br label %"$have_gas_2276" -"$have_gas_2259": ; preds = %"$out_of_gas_2258", %"$have_gas_2251" - %"$consume_2260" = sub i64 %"$gasrem_2256", 1 - store i64 %"$consume_2260", i64* @_gasrem, align 8 +"$have_gas_2276": ; preds = %"$out_of_gas_2275", %"$have_gas_2268" + %"$consume_2277" = sub i64 %"$gasrem_2273", 1 + store i64 %"$consume_2277", i64* @_gasrem, align 8 %"$sum_13" = alloca %Uint32, align 8 - %"$gasrem_2261" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2262" = icmp ugt i64 4, %"$gasrem_2261" - br i1 %"$gascmp_2262", label %"$out_of_gas_2263", label %"$have_gas_2264" + call void @llvm.dbg.declare(metadata %Uint32* %"$sum_13", metadata !404, metadata !DIExpression()), !dbg !405 + %"$gasrem_2278" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2279" = icmp ugt i64 4, %"$gasrem_2278" + br i1 %"$gascmp_2279", label %"$out_of_gas_2280", label %"$have_gas_2281" -"$out_of_gas_2263": ; preds = %"$have_gas_2259" +"$out_of_gas_2280": ; preds = %"$have_gas_2276" call void @_out_of_gas() - br label %"$have_gas_2264" + br label %"$have_gas_2281" -"$have_gas_2264": ; preds = %"$out_of_gas_2263", %"$have_gas_2259" - %"$consume_2265" = sub i64 %"$gasrem_2261", 4 - store i64 %"$consume_2265", i64* @_gasrem, align 8 - %"$$sum_12_2266" = load %Uint32, %Uint32* %"$sum_12", align 4 - %"$int14_2267" = load %Uint32, %Uint32* %int14, align 4 - %"$add_call_2268" = call %Uint32 @_add_Uint32(%Uint32 %"$$sum_12_2266", %Uint32 %"$int14_2267"), !dbg !175 - store %Uint32 %"$add_call_2268", %Uint32* %"$sum_13", align 4, !dbg !175 - %"$gasrem_2269" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2270" = icmp ugt i64 1, %"$gasrem_2269" - br i1 %"$gascmp_2270", label %"$out_of_gas_2271", label %"$have_gas_2272" +"$have_gas_2281": ; preds = %"$out_of_gas_2280", %"$have_gas_2276" + %"$consume_2282" = sub i64 %"$gasrem_2278", 4 + store i64 %"$consume_2282", i64* @_gasrem, align 8 + %"$$sum_12_2283" = load %Uint32, %Uint32* %"$sum_12", align 4 + %"$int14_2284" = load %Uint32, %Uint32* %int14, align 4 + %"$add_call_2285" = call %Uint32 @_add_Uint32(%Uint32 %"$$sum_12_2283", %Uint32 %"$int14_2284"), !dbg !406 + store %Uint32 %"$add_call_2285", %Uint32* %"$sum_13", align 4, !dbg !406 + %"$gasrem_2286" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2287" = icmp ugt i64 1, %"$gasrem_2286" + br i1 %"$gascmp_2287", label %"$out_of_gas_2288", label %"$have_gas_2289" -"$out_of_gas_2271": ; preds = %"$have_gas_2264" +"$out_of_gas_2288": ; preds = %"$have_gas_2281" call void @_out_of_gas() - br label %"$have_gas_2272" + br label %"$have_gas_2289" -"$have_gas_2272": ; preds = %"$out_of_gas_2271", %"$have_gas_2264" - %"$consume_2273" = sub i64 %"$gasrem_2269", 1 - store i64 %"$consume_2273", i64* @_gasrem, align 8 +"$have_gas_2289": ; preds = %"$out_of_gas_2288", %"$have_gas_2281" + %"$consume_2290" = sub i64 %"$gasrem_2286", 1 + store i64 %"$consume_2290", i64* @_gasrem, align 8 %"$sum_14" = alloca %Uint32, align 8 - %"$gasrem_2274" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2275" = icmp ugt i64 4, %"$gasrem_2274" - br i1 %"$gascmp_2275", label %"$out_of_gas_2276", label %"$have_gas_2277" + call void @llvm.dbg.declare(metadata %Uint32* %"$sum_14", metadata !407, metadata !DIExpression()), !dbg !408 + %"$gasrem_2291" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2292" = icmp ugt i64 4, %"$gasrem_2291" + br i1 %"$gascmp_2292", label %"$out_of_gas_2293", label %"$have_gas_2294" -"$out_of_gas_2276": ; preds = %"$have_gas_2272" +"$out_of_gas_2293": ; preds = %"$have_gas_2289" call void @_out_of_gas() - br label %"$have_gas_2277" + br label %"$have_gas_2294" -"$have_gas_2277": ; preds = %"$out_of_gas_2276", %"$have_gas_2272" - %"$consume_2278" = sub i64 %"$gasrem_2274", 4 - store i64 %"$consume_2278", i64* @_gasrem, align 8 - %"$$sum_13_2279" = load %Uint32, %Uint32* %"$sum_13", align 4 - %"$int20_2280" = load %Uint32, %Uint32* %int20, align 4 - %"$add_call_2281" = call %Uint32 @_add_Uint32(%Uint32 %"$$sum_13_2279", %Uint32 %"$int20_2280"), !dbg !176 - store %Uint32 %"$add_call_2281", %Uint32* %"$sum_14", align 4, !dbg !176 - %"$gasrem_2282" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2283" = icmp ugt i64 1, %"$gasrem_2282" - br i1 %"$gascmp_2283", label %"$out_of_gas_2284", label %"$have_gas_2285" +"$have_gas_2294": ; preds = %"$out_of_gas_2293", %"$have_gas_2289" + %"$consume_2295" = sub i64 %"$gasrem_2291", 4 + store i64 %"$consume_2295", i64* @_gasrem, align 8 + %"$$sum_13_2296" = load %Uint32, %Uint32* %"$sum_13", align 4 + %"$int20_2297" = load %Uint32, %Uint32* %int20, align 4 + %"$add_call_2298" = call %Uint32 @_add_Uint32(%Uint32 %"$$sum_13_2296", %Uint32 %"$int20_2297"), !dbg !409 + store %Uint32 %"$add_call_2298", %Uint32* %"$sum_14", align 4, !dbg !409 + %"$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_2284": ; preds = %"$have_gas_2277" +"$out_of_gas_2301": ; preds = %"$have_gas_2294" call void @_out_of_gas() - br label %"$have_gas_2285" + br label %"$have_gas_2302" -"$have_gas_2285": ; preds = %"$out_of_gas_2284", %"$have_gas_2277" - %"$consume_2286" = sub i64 %"$gasrem_2282", 1 - store i64 %"$consume_2286", i64* @_gasrem, align 8 +"$have_gas_2302": ; preds = %"$out_of_gas_2301", %"$have_gas_2294" + %"$consume_2303" = sub i64 %"$gasrem_2299", 1 + store i64 %"$consume_2303", i64* @_gasrem, align 8 %"$sum_15" = alloca %Uint32, align 8 - %"$gasrem_2287" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2288" = icmp ugt i64 4, %"$gasrem_2287" - br i1 %"$gascmp_2288", label %"$out_of_gas_2289", label %"$have_gas_2290" + call void @llvm.dbg.declare(metadata %Uint32* %"$sum_15", metadata !410, metadata !DIExpression()), !dbg !411 + %"$gasrem_2304" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2305" = icmp ugt i64 4, %"$gasrem_2304" + br i1 %"$gascmp_2305", label %"$out_of_gas_2306", label %"$have_gas_2307" -"$out_of_gas_2289": ; preds = %"$have_gas_2285" +"$out_of_gas_2306": ; preds = %"$have_gas_2302" call void @_out_of_gas() - br label %"$have_gas_2290" + br label %"$have_gas_2307" -"$have_gas_2290": ; preds = %"$out_of_gas_2289", %"$have_gas_2285" - %"$consume_2291" = sub i64 %"$gasrem_2287", 4 - store i64 %"$consume_2291", i64* @_gasrem, align 8 - %"$$sum_14_2292" = load %Uint32, %Uint32* %"$sum_14", align 4 - %"$int21_2293" = load %Uint32, %Uint32* %int21, align 4 - %"$add_call_2294" = call %Uint32 @_add_Uint32(%Uint32 %"$$sum_14_2292", %Uint32 %"$int21_2293"), !dbg !177 - store %Uint32 %"$add_call_2294", %Uint32* %"$sum_15", align 4, !dbg !177 - %"$gasrem_2295" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2296" = icmp ugt i64 1, %"$gasrem_2295" - br i1 %"$gascmp_2296", label %"$out_of_gas_2297", label %"$have_gas_2298" +"$have_gas_2307": ; preds = %"$out_of_gas_2306", %"$have_gas_2302" + %"$consume_2308" = sub i64 %"$gasrem_2304", 4 + store i64 %"$consume_2308", i64* @_gasrem, align 8 + %"$$sum_14_2309" = load %Uint32, %Uint32* %"$sum_14", align 4 + %"$int21_2310" = load %Uint32, %Uint32* %int21, align 4 + %"$add_call_2311" = call %Uint32 @_add_Uint32(%Uint32 %"$$sum_14_2309", %Uint32 %"$int21_2310"), !dbg !412 + store %Uint32 %"$add_call_2311", %Uint32* %"$sum_15", align 4, !dbg !412 + %"$gasrem_2312" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2313" = icmp ugt i64 1, %"$gasrem_2312" + br i1 %"$gascmp_2313", label %"$out_of_gas_2314", label %"$have_gas_2315" -"$out_of_gas_2297": ; preds = %"$have_gas_2290" +"$out_of_gas_2314": ; preds = %"$have_gas_2307" call void @_out_of_gas() - br label %"$have_gas_2298" + br label %"$have_gas_2315" -"$have_gas_2298": ; preds = %"$out_of_gas_2297", %"$have_gas_2290" - %"$consume_2299" = sub i64 %"$gasrem_2295", 1 - store i64 %"$consume_2299", i64* @_gasrem, align 8 +"$have_gas_2315": ; preds = %"$out_of_gas_2314", %"$have_gas_2307" + %"$consume_2316" = sub i64 %"$gasrem_2312", 1 + store i64 %"$consume_2316", i64* @_gasrem, align 8 %"$sum_16" = alloca %Uint32, align 8 - %"$gasrem_2300" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2301" = icmp ugt i64 4, %"$gasrem_2300" - br i1 %"$gascmp_2301", label %"$out_of_gas_2302", label %"$have_gas_2303" + call void @llvm.dbg.declare(metadata %Uint32* %"$sum_16", metadata !413, metadata !DIExpression()), !dbg !414 + %"$gasrem_2317" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2318" = icmp ugt i64 4, %"$gasrem_2317" + br i1 %"$gascmp_2318", label %"$out_of_gas_2319", label %"$have_gas_2320" -"$out_of_gas_2302": ; preds = %"$have_gas_2298" +"$out_of_gas_2319": ; preds = %"$have_gas_2315" call void @_out_of_gas() - br label %"$have_gas_2303" + br label %"$have_gas_2320" -"$have_gas_2303": ; preds = %"$out_of_gas_2302", %"$have_gas_2298" - %"$consume_2304" = sub i64 %"$gasrem_2300", 4 - store i64 %"$consume_2304", i64* @_gasrem, align 8 - %"$$sum_15_2305" = load %Uint32, %Uint32* %"$sum_15", align 4 - %"$int22_2306" = load %Uint32, %Uint32* %int22, align 4 - %"$add_call_2307" = call %Uint32 @_add_Uint32(%Uint32 %"$$sum_15_2305", %Uint32 %"$int22_2306"), !dbg !178 - store %Uint32 %"$add_call_2307", %Uint32* %"$sum_16", align 4, !dbg !178 - %"$gasrem_2308" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2309" = icmp ugt i64 1, %"$gasrem_2308" - br i1 %"$gascmp_2309", label %"$out_of_gas_2310", label %"$have_gas_2311" +"$have_gas_2320": ; preds = %"$out_of_gas_2319", %"$have_gas_2315" + %"$consume_2321" = sub i64 %"$gasrem_2317", 4 + store i64 %"$consume_2321", i64* @_gasrem, align 8 + %"$$sum_15_2322" = load %Uint32, %Uint32* %"$sum_15", align 4 + %"$int22_2323" = load %Uint32, %Uint32* %int22, align 4 + %"$add_call_2324" = call %Uint32 @_add_Uint32(%Uint32 %"$$sum_15_2322", %Uint32 %"$int22_2323"), !dbg !415 + store %Uint32 %"$add_call_2324", %Uint32* %"$sum_16", align 4, !dbg !415 + %"$gasrem_2325" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2326" = icmp ugt i64 1, %"$gasrem_2325" + br i1 %"$gascmp_2326", label %"$out_of_gas_2327", label %"$have_gas_2328" -"$out_of_gas_2310": ; preds = %"$have_gas_2303" +"$out_of_gas_2327": ; preds = %"$have_gas_2320" call void @_out_of_gas() - br label %"$have_gas_2311" + br label %"$have_gas_2328" -"$have_gas_2311": ; preds = %"$out_of_gas_2310", %"$have_gas_2303" - %"$consume_2312" = sub i64 %"$gasrem_2308", 1 - store i64 %"$consume_2312", i64* @_gasrem, align 8 +"$have_gas_2328": ; preds = %"$out_of_gas_2327", %"$have_gas_2320" + %"$consume_2329" = sub i64 %"$gasrem_2325", 1 + store i64 %"$consume_2329", i64* @_gasrem, align 8 %"$sum_17" = alloca %Uint32, align 8 - %"$gasrem_2313" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2314" = icmp ugt i64 4, %"$gasrem_2313" - br i1 %"$gascmp_2314", label %"$out_of_gas_2315", label %"$have_gas_2316" + call void @llvm.dbg.declare(metadata %Uint32* %"$sum_17", metadata !416, metadata !DIExpression()), !dbg !417 + %"$gasrem_2330" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2331" = icmp ugt i64 4, %"$gasrem_2330" + br i1 %"$gascmp_2331", label %"$out_of_gas_2332", label %"$have_gas_2333" -"$out_of_gas_2315": ; preds = %"$have_gas_2311" +"$out_of_gas_2332": ; preds = %"$have_gas_2328" call void @_out_of_gas() - br label %"$have_gas_2316" + br label %"$have_gas_2333" -"$have_gas_2316": ; preds = %"$out_of_gas_2315", %"$have_gas_2311" - %"$consume_2317" = sub i64 %"$gasrem_2313", 4 - store i64 %"$consume_2317", i64* @_gasrem, align 8 - %"$$sum_16_2318" = load %Uint32, %Uint32* %"$sum_16", align 4 - %"$int23_2319" = load %Uint32, %Uint32* %int23, align 4 - %"$add_call_2320" = call %Uint32 @_add_Uint32(%Uint32 %"$$sum_16_2318", %Uint32 %"$int23_2319"), !dbg !179 - store %Uint32 %"$add_call_2320", %Uint32* %"$sum_17", align 4, !dbg !179 - %"$gasrem_2321" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2322" = icmp ugt i64 1, %"$gasrem_2321" - br i1 %"$gascmp_2322", label %"$out_of_gas_2323", label %"$have_gas_2324" +"$have_gas_2333": ; preds = %"$out_of_gas_2332", %"$have_gas_2328" + %"$consume_2334" = sub i64 %"$gasrem_2330", 4 + store i64 %"$consume_2334", i64* @_gasrem, align 8 + %"$$sum_16_2335" = load %Uint32, %Uint32* %"$sum_16", align 4 + %"$int23_2336" = load %Uint32, %Uint32* %int23, align 4 + %"$add_call_2337" = call %Uint32 @_add_Uint32(%Uint32 %"$$sum_16_2335", %Uint32 %"$int23_2336"), !dbg !418 + store %Uint32 %"$add_call_2337", %Uint32* %"$sum_17", align 4, !dbg !418 + %"$gasrem_2338" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2339" = icmp ugt i64 1, %"$gasrem_2338" + br i1 %"$gascmp_2339", label %"$out_of_gas_2340", label %"$have_gas_2341" -"$out_of_gas_2323": ; preds = %"$have_gas_2316" +"$out_of_gas_2340": ; preds = %"$have_gas_2333" call void @_out_of_gas() - br label %"$have_gas_2324" + br label %"$have_gas_2341" -"$have_gas_2324": ; preds = %"$out_of_gas_2323", %"$have_gas_2316" - %"$consume_2325" = sub i64 %"$gasrem_2321", 1 - store i64 %"$consume_2325", i64* @_gasrem, align 8 +"$have_gas_2341": ; preds = %"$out_of_gas_2340", %"$have_gas_2333" + %"$consume_2342" = sub i64 %"$gasrem_2338", 1 + store i64 %"$consume_2342", i64* @_gasrem, align 8 %"$sum_18" = alloca %Uint32, align 8 - %"$gasrem_2326" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2327" = icmp ugt i64 4, %"$gasrem_2326" - br i1 %"$gascmp_2327", label %"$out_of_gas_2328", label %"$have_gas_2329" + call void @llvm.dbg.declare(metadata %Uint32* %"$sum_18", metadata !419, metadata !DIExpression()), !dbg !420 + %"$gasrem_2343" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2344" = icmp ugt i64 4, %"$gasrem_2343" + br i1 %"$gascmp_2344", label %"$out_of_gas_2345", label %"$have_gas_2346" -"$out_of_gas_2328": ; preds = %"$have_gas_2324" +"$out_of_gas_2345": ; preds = %"$have_gas_2341" call void @_out_of_gas() - br label %"$have_gas_2329" + br label %"$have_gas_2346" -"$have_gas_2329": ; preds = %"$out_of_gas_2328", %"$have_gas_2324" - %"$consume_2330" = sub i64 %"$gasrem_2326", 4 - store i64 %"$consume_2330", i64* @_gasrem, align 8 - %"$$sum_17_2331" = load %Uint32, %Uint32* %"$sum_17", align 4 - %"$int24_2332" = load %Uint32, %Uint32* %int24, align 4 - %"$add_call_2333" = call %Uint32 @_add_Uint32(%Uint32 %"$$sum_17_2331", %Uint32 %"$int24_2332"), !dbg !180 - store %Uint32 %"$add_call_2333", %Uint32* %"$sum_18", align 4, !dbg !180 - %"$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" +"$have_gas_2346": ; preds = %"$out_of_gas_2345", %"$have_gas_2341" + %"$consume_2347" = sub i64 %"$gasrem_2343", 4 + store i64 %"$consume_2347", i64* @_gasrem, align 8 + %"$$sum_17_2348" = load %Uint32, %Uint32* %"$sum_17", align 4 + %"$int24_2349" = load %Uint32, %Uint32* %int24, align 4 + %"$add_call_2350" = call %Uint32 @_add_Uint32(%Uint32 %"$$sum_17_2348", %Uint32 %"$int24_2349"), !dbg !421 + store %Uint32 %"$add_call_2350", %Uint32* %"$sum_18", align 4, !dbg !421 + %"$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_2336": ; preds = %"$have_gas_2329" +"$out_of_gas_2353": ; preds = %"$have_gas_2346" call void @_out_of_gas() - br label %"$have_gas_2337" + br label %"$have_gas_2354" -"$have_gas_2337": ; preds = %"$out_of_gas_2336", %"$have_gas_2329" - %"$consume_2338" = sub i64 %"$gasrem_2334", 1 - store i64 %"$consume_2338", i64* @_gasrem, align 8 +"$have_gas_2354": ; preds = %"$out_of_gas_2353", %"$have_gas_2346" + %"$consume_2355" = sub i64 %"$gasrem_2351", 1 + store i64 %"$consume_2355", i64* @_gasrem, align 8 %"$sum_19" = alloca %Uint32, align 8 - %"$gasrem_2339" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2340" = icmp ugt i64 4, %"$gasrem_2339" - br i1 %"$gascmp_2340", label %"$out_of_gas_2341", label %"$have_gas_2342" + call void @llvm.dbg.declare(metadata %Uint32* %"$sum_19", metadata !422, metadata !DIExpression()), !dbg !423 + %"$gasrem_2356" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2357" = icmp ugt i64 4, %"$gasrem_2356" + br i1 %"$gascmp_2357", label %"$out_of_gas_2358", label %"$have_gas_2359" -"$out_of_gas_2341": ; preds = %"$have_gas_2337" +"$out_of_gas_2358": ; preds = %"$have_gas_2354" call void @_out_of_gas() - br label %"$have_gas_2342" + br label %"$have_gas_2359" -"$have_gas_2342": ; preds = %"$out_of_gas_2341", %"$have_gas_2337" - %"$consume_2343" = sub i64 %"$gasrem_2339", 4 - store i64 %"$consume_2343", i64* @_gasrem, align 8 - %"$$sum_18_2344" = load %Uint32, %Uint32* %"$sum_18", align 4 - %"$int30_2345" = load %Uint32, %Uint32* %int30, align 4 - %"$add_call_2346" = call %Uint32 @_add_Uint32(%Uint32 %"$$sum_18_2344", %Uint32 %"$int30_2345"), !dbg !181 - store %Uint32 %"$add_call_2346", %Uint32* %"$sum_19", align 4, !dbg !181 - %"$gasrem_2347" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2348" = icmp ugt i64 1, %"$gasrem_2347" - br i1 %"$gascmp_2348", label %"$out_of_gas_2349", label %"$have_gas_2350" +"$have_gas_2359": ; preds = %"$out_of_gas_2358", %"$have_gas_2354" + %"$consume_2360" = sub i64 %"$gasrem_2356", 4 + store i64 %"$consume_2360", i64* @_gasrem, align 8 + %"$$sum_18_2361" = load %Uint32, %Uint32* %"$sum_18", align 4 + %"$int30_2362" = load %Uint32, %Uint32* %int30, align 4 + %"$add_call_2363" = call %Uint32 @_add_Uint32(%Uint32 %"$$sum_18_2361", %Uint32 %"$int30_2362"), !dbg !424 + store %Uint32 %"$add_call_2363", %Uint32* %"$sum_19", align 4, !dbg !424 + %"$gasrem_2364" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2365" = icmp ugt i64 1, %"$gasrem_2364" + br i1 %"$gascmp_2365", label %"$out_of_gas_2366", label %"$have_gas_2367" -"$out_of_gas_2349": ; preds = %"$have_gas_2342" +"$out_of_gas_2366": ; preds = %"$have_gas_2359" call void @_out_of_gas() - br label %"$have_gas_2350" + br label %"$have_gas_2367" -"$have_gas_2350": ; preds = %"$out_of_gas_2349", %"$have_gas_2342" - %"$consume_2351" = sub i64 %"$gasrem_2347", 1 - store i64 %"$consume_2351", i64* @_gasrem, align 8 +"$have_gas_2367": ; preds = %"$out_of_gas_2366", %"$have_gas_2359" + %"$consume_2368" = sub i64 %"$gasrem_2364", 1 + store i64 %"$consume_2368", i64* @_gasrem, align 8 %"$sum_20" = alloca %Uint32, align 8 - %"$gasrem_2352" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2353" = icmp ugt i64 4, %"$gasrem_2352" - br i1 %"$gascmp_2353", label %"$out_of_gas_2354", label %"$have_gas_2355" + call void @llvm.dbg.declare(metadata %Uint32* %"$sum_20", metadata !425, metadata !DIExpression()), !dbg !426 + %"$gasrem_2369" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2370" = icmp ugt i64 4, %"$gasrem_2369" + br i1 %"$gascmp_2370", label %"$out_of_gas_2371", label %"$have_gas_2372" -"$out_of_gas_2354": ; preds = %"$have_gas_2350" +"$out_of_gas_2371": ; preds = %"$have_gas_2367" call void @_out_of_gas() - br label %"$have_gas_2355" + br label %"$have_gas_2372" -"$have_gas_2355": ; preds = %"$out_of_gas_2354", %"$have_gas_2350" - %"$consume_2356" = sub i64 %"$gasrem_2352", 4 - store i64 %"$consume_2356", i64* @_gasrem, align 8 - %"$$sum_19_2357" = load %Uint32, %Uint32* %"$sum_19", align 4 - %"$int31_2358" = load %Uint32, %Uint32* %int31, align 4 - %"$add_call_2359" = call %Uint32 @_add_Uint32(%Uint32 %"$$sum_19_2357", %Uint32 %"$int31_2358"), !dbg !182 - store %Uint32 %"$add_call_2359", %Uint32* %"$sum_20", align 4, !dbg !182 - %"$gasrem_2360" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2361" = icmp ugt i64 1, %"$gasrem_2360" - br i1 %"$gascmp_2361", label %"$out_of_gas_2362", label %"$have_gas_2363" +"$have_gas_2372": ; preds = %"$out_of_gas_2371", %"$have_gas_2367" + %"$consume_2373" = sub i64 %"$gasrem_2369", 4 + store i64 %"$consume_2373", i64* @_gasrem, align 8 + %"$$sum_19_2374" = load %Uint32, %Uint32* %"$sum_19", align 4 + %"$int31_2375" = load %Uint32, %Uint32* %int31, align 4 + %"$add_call_2376" = call %Uint32 @_add_Uint32(%Uint32 %"$$sum_19_2374", %Uint32 %"$int31_2375"), !dbg !427 + store %Uint32 %"$add_call_2376", %Uint32* %"$sum_20", align 4, !dbg !427 + %"$gasrem_2377" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2378" = icmp ugt i64 1, %"$gasrem_2377" + br i1 %"$gascmp_2378", label %"$out_of_gas_2379", label %"$have_gas_2380" -"$out_of_gas_2362": ; preds = %"$have_gas_2355" +"$out_of_gas_2379": ; preds = %"$have_gas_2372" call void @_out_of_gas() - br label %"$have_gas_2363" + br label %"$have_gas_2380" -"$have_gas_2363": ; preds = %"$out_of_gas_2362", %"$have_gas_2355" - %"$consume_2364" = sub i64 %"$gasrem_2360", 1 - store i64 %"$consume_2364", i64* @_gasrem, align 8 +"$have_gas_2380": ; preds = %"$out_of_gas_2379", %"$have_gas_2372" + %"$consume_2381" = sub i64 %"$gasrem_2377", 1 + store i64 %"$consume_2381", i64* @_gasrem, align 8 %"$sum_21" = alloca %Uint32, align 8 - %"$gasrem_2365" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2366" = icmp ugt i64 4, %"$gasrem_2365" - br i1 %"$gascmp_2366", label %"$out_of_gas_2367", label %"$have_gas_2368" + call void @llvm.dbg.declare(metadata %Uint32* %"$sum_21", metadata !428, metadata !DIExpression()), !dbg !429 + %"$gasrem_2382" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2383" = icmp ugt i64 4, %"$gasrem_2382" + br i1 %"$gascmp_2383", label %"$out_of_gas_2384", label %"$have_gas_2385" -"$out_of_gas_2367": ; preds = %"$have_gas_2363" +"$out_of_gas_2384": ; preds = %"$have_gas_2380" call void @_out_of_gas() - br label %"$have_gas_2368" + br label %"$have_gas_2385" -"$have_gas_2368": ; preds = %"$out_of_gas_2367", %"$have_gas_2363" - %"$consume_2369" = sub i64 %"$gasrem_2365", 4 - store i64 %"$consume_2369", i64* @_gasrem, align 8 - %"$$sum_20_2370" = load %Uint32, %Uint32* %"$sum_20", align 4 - %"$int32_2371" = load %Uint32, %Uint32* %int32, align 4 - %"$add_call_2372" = call %Uint32 @_add_Uint32(%Uint32 %"$$sum_20_2370", %Uint32 %"$int32_2371"), !dbg !183 - store %Uint32 %"$add_call_2372", %Uint32* %"$sum_21", align 4, !dbg !183 - %"$gasrem_2373" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2374" = icmp ugt i64 1, %"$gasrem_2373" - br i1 %"$gascmp_2374", label %"$out_of_gas_2375", label %"$have_gas_2376" +"$have_gas_2385": ; preds = %"$out_of_gas_2384", %"$have_gas_2380" + %"$consume_2386" = sub i64 %"$gasrem_2382", 4 + store i64 %"$consume_2386", i64* @_gasrem, align 8 + %"$$sum_20_2387" = load %Uint32, %Uint32* %"$sum_20", align 4 + %"$int32_2388" = load %Uint32, %Uint32* %int32, align 4 + %"$add_call_2389" = call %Uint32 @_add_Uint32(%Uint32 %"$$sum_20_2387", %Uint32 %"$int32_2388"), !dbg !430 + store %Uint32 %"$add_call_2389", %Uint32* %"$sum_21", align 4, !dbg !430 + %"$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_2375": ; preds = %"$have_gas_2368" +"$out_of_gas_2392": ; preds = %"$have_gas_2385" call void @_out_of_gas() - br label %"$have_gas_2376" + br label %"$have_gas_2393" -"$have_gas_2376": ; preds = %"$out_of_gas_2375", %"$have_gas_2368" - %"$consume_2377" = sub i64 %"$gasrem_2373", 1 - store i64 %"$consume_2377", i64* @_gasrem, align 8 +"$have_gas_2393": ; preds = %"$out_of_gas_2392", %"$have_gas_2385" + %"$consume_2394" = sub i64 %"$gasrem_2390", 1 + store i64 %"$consume_2394", i64* @_gasrem, align 8 %"$sum_22" = alloca %Uint32, align 8 - %"$gasrem_2378" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2379" = icmp ugt i64 4, %"$gasrem_2378" - br i1 %"$gascmp_2379", label %"$out_of_gas_2380", label %"$have_gas_2381" + call void @llvm.dbg.declare(metadata %Uint32* %"$sum_22", metadata !431, metadata !DIExpression()), !dbg !432 + %"$gasrem_2395" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2396" = icmp ugt i64 4, %"$gasrem_2395" + br i1 %"$gascmp_2396", label %"$out_of_gas_2397", label %"$have_gas_2398" -"$out_of_gas_2380": ; preds = %"$have_gas_2376" +"$out_of_gas_2397": ; preds = %"$have_gas_2393" call void @_out_of_gas() - br label %"$have_gas_2381" + br label %"$have_gas_2398" -"$have_gas_2381": ; preds = %"$out_of_gas_2380", %"$have_gas_2376" - %"$consume_2382" = sub i64 %"$gasrem_2378", 4 - store i64 %"$consume_2382", i64* @_gasrem, align 8 - %"$$sum_21_2383" = load %Uint32, %Uint32* %"$sum_21", align 4 - %"$int33_2384" = load %Uint32, %Uint32* %int33, align 4 - %"$add_call_2385" = call %Uint32 @_add_Uint32(%Uint32 %"$$sum_21_2383", %Uint32 %"$int33_2384"), !dbg !184 - store %Uint32 %"$add_call_2385", %Uint32* %"$sum_22", align 4, !dbg !184 - %"$gasrem_2386" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2387" = icmp ugt i64 1, %"$gasrem_2386" - br i1 %"$gascmp_2387", label %"$out_of_gas_2388", label %"$have_gas_2389" +"$have_gas_2398": ; preds = %"$out_of_gas_2397", %"$have_gas_2393" + %"$consume_2399" = sub i64 %"$gasrem_2395", 4 + store i64 %"$consume_2399", i64* @_gasrem, align 8 + %"$$sum_21_2400" = load %Uint32, %Uint32* %"$sum_21", align 4 + %"$int33_2401" = load %Uint32, %Uint32* %int33, align 4 + %"$add_call_2402" = call %Uint32 @_add_Uint32(%Uint32 %"$$sum_21_2400", %Uint32 %"$int33_2401"), !dbg !433 + store %Uint32 %"$add_call_2402", %Uint32* %"$sum_22", align 4, !dbg !433 + %"$gasrem_2403" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2404" = icmp ugt i64 1, %"$gasrem_2403" + br i1 %"$gascmp_2404", label %"$out_of_gas_2405", label %"$have_gas_2406" -"$out_of_gas_2388": ; preds = %"$have_gas_2381" +"$out_of_gas_2405": ; preds = %"$have_gas_2398" call void @_out_of_gas() - br label %"$have_gas_2389" + br label %"$have_gas_2406" -"$have_gas_2389": ; preds = %"$out_of_gas_2388", %"$have_gas_2381" - %"$consume_2390" = sub i64 %"$gasrem_2386", 1 - store i64 %"$consume_2390", i64* @_gasrem, align 8 +"$have_gas_2406": ; preds = %"$out_of_gas_2405", %"$have_gas_2398" + %"$consume_2407" = sub i64 %"$gasrem_2403", 1 + store i64 %"$consume_2407", i64* @_gasrem, align 8 %"$sum_23" = alloca %Uint32, align 8 - %"$gasrem_2391" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2392" = icmp ugt i64 4, %"$gasrem_2391" - br i1 %"$gascmp_2392", label %"$out_of_gas_2393", label %"$have_gas_2394" + call void @llvm.dbg.declare(metadata %Uint32* %"$sum_23", metadata !434, metadata !DIExpression()), !dbg !435 + %"$gasrem_2408" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2409" = icmp ugt i64 4, %"$gasrem_2408" + br i1 %"$gascmp_2409", label %"$out_of_gas_2410", label %"$have_gas_2411" -"$out_of_gas_2393": ; preds = %"$have_gas_2389" +"$out_of_gas_2410": ; preds = %"$have_gas_2406" call void @_out_of_gas() - br label %"$have_gas_2394" + br label %"$have_gas_2411" -"$have_gas_2394": ; preds = %"$out_of_gas_2393", %"$have_gas_2389" - %"$consume_2395" = sub i64 %"$gasrem_2391", 4 - store i64 %"$consume_2395", i64* @_gasrem, align 8 - %"$$sum_22_2396" = load %Uint32, %Uint32* %"$sum_22", align 4 - %"$int34_2397" = load %Uint32, %Uint32* %int34, align 4 - %"$add_call_2398" = call %Uint32 @_add_Uint32(%Uint32 %"$$sum_22_2396", %Uint32 %"$int34_2397"), !dbg !185 - store %Uint32 %"$add_call_2398", %Uint32* %"$sum_23", align 4, !dbg !185 - %"$gasrem_2399" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2400" = icmp ugt i64 1, %"$gasrem_2399" - br i1 %"$gascmp_2400", label %"$out_of_gas_2401", label %"$have_gas_2402" +"$have_gas_2411": ; preds = %"$out_of_gas_2410", %"$have_gas_2406" + %"$consume_2412" = sub i64 %"$gasrem_2408", 4 + store i64 %"$consume_2412", i64* @_gasrem, align 8 + %"$$sum_22_2413" = load %Uint32, %Uint32* %"$sum_22", align 4 + %"$int34_2414" = load %Uint32, %Uint32* %int34, align 4 + %"$add_call_2415" = call %Uint32 @_add_Uint32(%Uint32 %"$$sum_22_2413", %Uint32 %"$int34_2414"), !dbg !436 + store %Uint32 %"$add_call_2415", %Uint32* %"$sum_23", align 4, !dbg !436 + %"$gasrem_2416" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2417" = icmp ugt i64 1, %"$gasrem_2416" + br i1 %"$gascmp_2417", label %"$out_of_gas_2418", label %"$have_gas_2419" -"$out_of_gas_2401": ; preds = %"$have_gas_2394" +"$out_of_gas_2418": ; preds = %"$have_gas_2411" call void @_out_of_gas() - br label %"$have_gas_2402" + br label %"$have_gas_2419" -"$have_gas_2402": ; preds = %"$out_of_gas_2401", %"$have_gas_2394" - %"$consume_2403" = sub i64 %"$gasrem_2399", 1 - store i64 %"$consume_2403", i64* @_gasrem, align 8 +"$have_gas_2419": ; preds = %"$out_of_gas_2418", %"$have_gas_2411" + %"$consume_2420" = sub i64 %"$gasrem_2416", 1 + store i64 %"$consume_2420", i64* @_gasrem, align 8 %"$sum_24" = alloca %Uint32, align 8 - %"$gasrem_2404" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2405" = icmp ugt i64 4, %"$gasrem_2404" - br i1 %"$gascmp_2405", label %"$out_of_gas_2406", label %"$have_gas_2407" - -"$out_of_gas_2406": ; preds = %"$have_gas_2402" - call void @_out_of_gas() - br label %"$have_gas_2407" - -"$have_gas_2407": ; preds = %"$out_of_gas_2406", %"$have_gas_2402" - %"$consume_2408" = sub i64 %"$gasrem_2404", 4 - store i64 %"$consume_2408", i64* @_gasrem, align 8 - %"$$sum_23_2409" = load %Uint32, %Uint32* %"$sum_23", align 4 - %"$int40_2410" = load %Uint32, %Uint32* %int40, align 4 - %"$add_call_2411" = call %Uint32 @_add_Uint32(%Uint32 %"$$sum_23_2409", %Uint32 %"$int40_2410"), !dbg !186 - store %Uint32 %"$add_call_2411", %Uint32* %"$sum_24", align 4, !dbg !186 - %"$gasrem_2412" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2413" = icmp ugt i64 1, %"$gasrem_2412" - br i1 %"$gascmp_2413", label %"$out_of_gas_2414", label %"$have_gas_2415" - -"$out_of_gas_2414": ; preds = %"$have_gas_2407" - call void @_out_of_gas() - br label %"$have_gas_2415" - -"$have_gas_2415": ; preds = %"$out_of_gas_2414", %"$have_gas_2407" - %"$consume_2416" = sub i64 %"$gasrem_2412", 1 - store i64 %"$consume_2416", i64* @_gasrem, align 8 - %"$$sum_24_2417" = load %Uint32, %Uint32* %"$sum_24", align 4 - store %Uint32 %"$$sum_24_2417", %Uint32* %"$expr_139", align 4, !dbg !187 - %"$$expr_139_2418" = load %Uint32, %Uint32* %"$expr_139", align 4 - ret %Uint32 %"$$expr_139_2418" + call void @llvm.dbg.declare(metadata %Uint32* %"$sum_24", metadata !437, metadata !DIExpression()), !dbg !438 + %"$gasrem_2421" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2422" = icmp ugt i64 4, %"$gasrem_2421" + br i1 %"$gascmp_2422", label %"$out_of_gas_2423", label %"$have_gas_2424" + +"$out_of_gas_2423": ; preds = %"$have_gas_2419" + call void @_out_of_gas() + br label %"$have_gas_2424" + +"$have_gas_2424": ; preds = %"$out_of_gas_2423", %"$have_gas_2419" + %"$consume_2425" = sub i64 %"$gasrem_2421", 4 + store i64 %"$consume_2425", i64* @_gasrem, align 8 + %"$$sum_23_2426" = load %Uint32, %Uint32* %"$sum_23", align 4 + %"$int40_2427" = load %Uint32, %Uint32* %int40, align 4 + %"$add_call_2428" = call %Uint32 @_add_Uint32(%Uint32 %"$$sum_23_2426", %Uint32 %"$int40_2427"), !dbg !439 + store %Uint32 %"$add_call_2428", %Uint32* %"$sum_24", align 4, !dbg !439 + %"$gasrem_2429" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2430" = icmp ugt i64 1, %"$gasrem_2429" + br i1 %"$gascmp_2430", label %"$out_of_gas_2431", label %"$have_gas_2432" + +"$out_of_gas_2431": ; preds = %"$have_gas_2424" + call void @_out_of_gas() + br label %"$have_gas_2432" + +"$have_gas_2432": ; preds = %"$out_of_gas_2431", %"$have_gas_2424" + %"$consume_2433" = sub i64 %"$gasrem_2429", 1 + store i64 %"$consume_2433", i64* @_gasrem, align 8 + %"$$sum_24_2434" = load %Uint32, %Uint32* %"$sum_24", align 4 + store %Uint32 %"$$sum_24_2434", %Uint32* %"$expr_139", align 4, !dbg !440 + %"$$expr_139_2435" = load %Uint32, %Uint32* %"$expr_139", align 4 + ret %Uint32 %"$$expr_139_2435" } declare %TName_Nat* @_to_nat(i8*, %Uint32) @@ -4577,203 +4767,458 @@ declare void @_print_scilla_val(i8*, %_TyDescrTy_Typ*, i8*) define void @scilla_main() { entry: - %"$exprval_2419" = call %Uint32 @_scilla_expr_fun(i8* null) - %"$pval_2420" = alloca %Uint32, align 8 - %"$memvoidcast_2421" = bitcast %Uint32* %"$pval_2420" to i8* - store %Uint32 %"$exprval_2419", %Uint32* %"$pval_2420", align 4 - %"$execptr_load_2422" = load i8*, i8** @_execptr, align 8 - call void @_print_scilla_val(i8* %"$execptr_load_2422", %_TyDescrTy_Typ* @"$TyDescr_Uint32_176", i8* %"$memvoidcast_2421") + %"$exprval_2436" = call %Uint32 @_scilla_expr_fun(i8* null) + %"$pval_2437" = alloca %Uint32, align 8 + %"$memvoidcast_2438" = bitcast %Uint32* %"$pval_2437" to i8* + store %Uint32 %"$exprval_2436", %Uint32* %"$pval_2437", align 4 + %"$execptr_load_2439" = load i8*, i8** @_execptr, align 8 + call void @_print_scilla_val(i8* %"$execptr_load_2439", %_TyDescrTy_Typ* @"$TyDescr_Uint32_176", i8* %"$memvoidcast_2438") ret void } +attributes #0 = { nocallback nofree nosync nounwind readnone speculatable willreturn } + !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) +!1 = distinct !DICompileUnit(language: DW_LANG_C89, file: !2, producer: "Scilla Compiler", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false) !2 = !DIFile(filename: "ackermann.scilexp", directory: "codegen/expr") -!3 = !{} -!4 = distinct !DISubprogram(name: "$fundef_170", linkageName: "$fundef_170", scope: !2, file: !2, line: 25, type: !5, scopeLine: 25, 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: 25, column: 23, scope: !4) -!9 = distinct !DISubprogram(name: "$fundef_168", linkageName: "$fundef_168", scope: !2, file: !2, line: 24, type: !5, scopeLine: 24, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!10 = !DILocation(line: 24, column: 22, scope: !9) -!11 = distinct !DISubprogram(name: "$fundef_166", linkageName: "$fundef_166", scope: !2, file: !2, line: 23, type: !5, scopeLine: 23, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!12 = !DILocation(line: 23, column: 14, scope: !11) -!13 = !DILocation(line: 24, column: 22, scope: !11) -!14 = distinct !DISubprogram(name: "$fundef_164", linkageName: "$fundef_164", scope: !2, file: !2, line: 13, type: !5, scopeLine: 13, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!15 = !DILocation(line: 13, column: 52, scope: !14) -!16 = distinct !DISubprogram(name: "$fundef_162", linkageName: "$fundef_162", scope: !2, file: !2, line: 13, type: !5, scopeLine: 13, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!17 = !DILocation(line: 13, column: 52, scope: !16) -!18 = distinct !DISubprogram(name: "$fundef_160", linkageName: "$fundef_160", scope: !2, file: !2, line: 12, type: !5, scopeLine: 12, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!19 = !DILocation(line: 12, column: 17, scope: !18) -!20 = !DILocation(line: 12, column: 16, scope: !18) -!21 = !DILocation(line: 13, column: 30, scope: !18) -!22 = !DILocation(line: 14, column: 3, scope: !18) -!23 = distinct !DISubprogram(name: "$fundef_158", linkageName: "$fundef_158", scope: !2, file: !2, line: 11, type: !5, scopeLine: 11, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!24 = !DILocation(line: 12, column: 3, scope: !23) -!25 = distinct !DISubprogram(name: "$fundef_156", linkageName: "$fundef_156", scope: !2, file: !2, line: 10, type: !5, scopeLine: 10, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!26 = !DILocation(line: 11, column: 3, scope: !25) -!27 = distinct !DISubprogram(name: "$fundef_154", linkageName: "$fundef_154", scope: !2, file: !2, line: 10, type: !5, scopeLine: 10, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!28 = !DILocation(line: 10, column: 3, scope: !27) -!29 = distinct !DISubprogram(name: "$fundef_152", linkageName: "$fundef_152", scope: !2, file: !2, line: 13, type: !5, scopeLine: 13, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!30 = !DILocation(line: 13, column: 52, scope: !29) -!31 = distinct !DISubprogram(name: "$fundef_150", linkageName: "$fundef_150", scope: !2, file: !2, line: 13, type: !5, scopeLine: 13, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!32 = !DILocation(line: 13, column: 52, scope: !31) -!33 = distinct !DISubprogram(name: "$fundef_148", linkageName: "$fundef_148", scope: !2, file: !2, line: 12, type: !5, scopeLine: 12, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!34 = !DILocation(line: 12, column: 17, scope: !33) -!35 = !DILocation(line: 12, column: 16, scope: !33) -!36 = !DILocation(line: 13, column: 30, scope: !33) -!37 = !DILocation(line: 14, column: 3, scope: !33) -!38 = distinct !DISubprogram(name: "$fundef_146", linkageName: "$fundef_146", scope: !2, file: !2, line: 11, type: !5, scopeLine: 11, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!39 = !DILocation(line: 12, column: 3, scope: !38) -!40 = distinct !DISubprogram(name: "$fundef_144", linkageName: "$fundef_144", scope: !2, file: !2, line: 10, type: !5, scopeLine: 10, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!41 = !DILocation(line: 11, column: 3, scope: !40) -!42 = distinct !DISubprogram(name: "$fundef_142", linkageName: "$fundef_142", scope: !2, file: !2, line: 10, type: !5, scopeLine: 10, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!43 = !DILocation(line: 10, column: 3, scope: !42) -!44 = distinct !DISubprogram(name: "$fundef_140", linkageName: "$fundef_140", scope: !2, file: !2, line: 3, type: !5, scopeLine: 3, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!45 = !DILocation(line: 3, column: 20, scope: !44) -!46 = distinct !DISubprogram(name: "$fundef_137", linkageName: "$fundef_137", scope: !47, file: !47, line: 55, type: !5, scopeLine: 55, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!47 = !DIFile(filename: "NatUtils.scillib", directory: "../src/stdlib") -!48 = !DILocation(line: 55, column: 7, scope: !46) -!49 = distinct !DISubprogram(name: "$fundef_135", linkageName: "$fundef_135", scope: !47, file: !47, line: 54, type: !5, scopeLine: 54, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!50 = !DILocation(line: 55, column: 7, scope: !49) -!51 = distinct !DISubprogram(name: "$fundef_133", linkageName: "$fundef_133", scope: !47, file: !47, line: 52, type: !5, scopeLine: 52, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!52 = !DILocation(line: 52, column: 17, scope: !51) -!53 = !DILocation(line: 52, column: 16, scope: !51) -!54 = !DILocation(line: 53, column: 19, scope: !51) -!55 = !DILocation(line: 54, column: 33, scope: !51) -!56 = !DILocation(line: 56, column: 20, scope: !51) -!57 = !DILocation(line: 57, column: 5, scope: !51) -!58 = distinct !DISubprogram(name: "$fundef_131", linkageName: "$fundef_131", scope: !59, file: !59, line: 1, type: !5, scopeLine: 1, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!59 = !DIFile(filename: "Prelude", directory: ".") -!60 = !DILocation(line: 1, column: 34, scope: !58) -!61 = !DILocation(line: 1, column: 71, scope: !62) -!62 = distinct !DILexicalBlock(scope: !63, file: !59, line: 1, column: 50) -!63 = distinct !DILexicalBlock(scope: !58, file: !59, line: 1, column: 34) -!64 = !DILocation(line: 1, column: 86, scope: !62) -!65 = !DILocation(line: 1, column: 106, scope: !66) -!66 = distinct !DILexicalBlock(scope: !63, file: !59, line: 1, column: 98) -!67 = distinct !DISubprogram(name: "$fundef_129", linkageName: "$fundef_129", scope: !59, file: !59, line: 1, type: !5, scopeLine: 1, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!68 = !DILocation(line: 1, column: 34, scope: !67) -!69 = distinct !DISubprogram(name: "$fundef_127", linkageName: "$fundef_127", scope: !59, file: !59, line: 1, type: !5, scopeLine: 1, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!70 = !DILocation(line: 1, column: 18, scope: !69) -!71 = distinct !DISubprogram(name: "$fundef_125", linkageName: "$fundef_125", scope: !59, file: !59, line: 1, type: !5, scopeLine: 1, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!72 = !DILocation(line: 1, column: 18, scope: !71) -!73 = distinct !DISubprogram(name: "$fundef_123", linkageName: "$fundef_123", scope: !59, file: !59, line: 1, type: !5, scopeLine: 1, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!74 = !DILocation(line: 1, column: 34, scope: !73) -!75 = !DILocation(line: 1, column: 71, scope: !76) -!76 = distinct !DILexicalBlock(scope: !77, file: !59, line: 1, column: 50) -!77 = distinct !DILexicalBlock(scope: !73, file: !59, line: 1, column: 34) -!78 = !DILocation(line: 1, column: 86, scope: !76) -!79 = !DILocation(line: 1, column: 106, scope: !80) -!80 = distinct !DILexicalBlock(scope: !77, file: !59, line: 1, column: 98) -!81 = distinct !DISubprogram(name: "$fundef_121", linkageName: "$fundef_121", scope: !59, file: !59, line: 1, type: !5, scopeLine: 1, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!82 = !DILocation(line: 1, column: 34, scope: !81) -!83 = distinct !DISubprogram(name: "$fundef_119", linkageName: "$fundef_119", scope: !59, file: !59, line: 1, type: !5, scopeLine: 1, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!84 = !DILocation(line: 1, column: 18, scope: !83) -!85 = distinct !DISubprogram(name: "$fundef_117", linkageName: "$fundef_117", scope: !59, file: !59, line: 1, type: !5, scopeLine: 1, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!86 = !DILocation(line: 1, column: 18, scope: !85) -!87 = distinct !DISubprogram(name: "$fundef_115", linkageName: "$fundef_115", scope: !59, file: !59, line: 1, type: !5, scopeLine: 1, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!88 = !DILocation(line: 1, column: 34, scope: !87) -!89 = !DILocation(line: 1, column: 71, scope: !90) -!90 = distinct !DILexicalBlock(scope: !91, file: !59, line: 1, column: 50) -!91 = distinct !DILexicalBlock(scope: !87, file: !59, line: 1, column: 34) -!92 = !DILocation(line: 1, column: 86, scope: !90) -!93 = !DILocation(line: 1, column: 106, scope: !94) -!94 = distinct !DILexicalBlock(scope: !91, file: !59, line: 1, column: 98) -!95 = distinct !DISubprogram(name: "$fundef_113", linkageName: "$fundef_113", scope: !59, file: !59, line: 1, type: !5, scopeLine: 1, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!96 = !DILocation(line: 1, column: 34, scope: !95) -!97 = distinct !DISubprogram(name: "$fundef_111", linkageName: "$fundef_111", scope: !59, file: !59, line: 1, type: !5, scopeLine: 1, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!98 = !DILocation(line: 1, column: 18, scope: !97) -!99 = distinct !DISubprogram(name: "$fundef_109", linkageName: "$fundef_109", scope: !59, file: !59, line: 1, type: !5, scopeLine: 1, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!100 = !DILocation(line: 1, column: 18, scope: !99) -!101 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !102, file: !102, type: !5, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!102 = !DIFile(filename: ".", directory: ".") -!103 = !DILocation(line: 0, scope: !101) -!104 = !DILocation(line: 1, column: 18, scope: !101) -!105 = !DILocation(line: 52, column: 5, scope: !101) -!106 = 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) -!107 = !DILocation(line: 3, column: 20, scope: !106) -!108 = !DILocation(line: 8, column: 3, scope: !106) -!109 = !DILocation(line: 18, column: 19, scope: !106) -!110 = !DILocation(line: 18, column: 18, scope: !106) -!111 = !DILocation(line: 19, column: 23, scope: !106) -!112 = !DILocation(line: 19, column: 22, scope: !106) -!113 = !DILocation(line: 20, column: 14, scope: !106) -!114 = !DILocation(line: 21, column: 13, scope: !106) -!115 = !DILocation(line: 23, column: 5, scope: !106) -!116 = !DILocation(line: 25, column: 23, scope: !106) -!117 = !DILocation(line: 29, column: 13, scope: !106) -!118 = !DILocation(line: 30, column: 13, scope: !106) -!119 = !DILocation(line: 31, column: 13, scope: !106) -!120 = !DILocation(line: 32, column: 13, scope: !106) -!121 = !DILocation(line: 33, column: 13, scope: !106) -!122 = !DILocation(line: 35, column: 10, scope: !106) -!123 = !DILocation(line: 36, column: 10, scope: !106) -!124 = !DILocation(line: 37, column: 10, scope: !106) -!125 = !DILocation(line: 38, column: 10, scope: !106) -!126 = !DILocation(line: 39, column: 10, scope: !106) -!127 = !DILocation(line: 41, column: 13, scope: !106) -!128 = !DILocation(line: 42, column: 13, scope: !106) -!129 = !DILocation(line: 43, column: 13, scope: !106) -!130 = !DILocation(line: 44, column: 13, scope: !106) -!131 = !DILocation(line: 45, column: 13, scope: !106) -!132 = !DILocation(line: 46, column: 13, scope: !106) -!133 = !DILocation(line: 47, column: 13, scope: !106) -!134 = !DILocation(line: 48, column: 13, scope: !106) -!135 = !DILocation(line: 49, column: 13, scope: !106) -!136 = !DILocation(line: 50, column: 13, scope: !106) -!137 = !DILocation(line: 51, column: 13, scope: !106) -!138 = !DILocation(line: 52, column: 13, scope: !106) -!139 = !DILocation(line: 53, column: 13, scope: !106) -!140 = !DILocation(line: 54, column: 13, scope: !106) -!141 = !DILocation(line: 55, column: 13, scope: !106) -!142 = !DILocation(line: 56, column: 13, scope: !106) -!143 = !DILocation(line: 57, column: 13, scope: !106) -!144 = !DILocation(line: 58, column: 13, scope: !106) -!145 = !DILocation(line: 59, column: 13, scope: !106) -!146 = !DILocation(line: 60, column: 13, scope: !106) -!147 = !DILocation(line: 61, column: 13, scope: !106) -!148 = !DILocation(line: 63, column: 13, scope: !106) -!149 = !DILocation(line: 64, column: 13, scope: !106) -!150 = !DILocation(line: 65, column: 13, scope: !106) -!151 = !DILocation(line: 66, column: 13, scope: !106) -!152 = !DILocation(line: 67, column: 13, scope: !106) -!153 = !DILocation(line: 68, column: 13, scope: !106) -!154 = !DILocation(line: 69, column: 13, scope: !106) -!155 = !DILocation(line: 70, column: 13, scope: !106) -!156 = !DILocation(line: 71, column: 13, scope: !106) -!157 = !DILocation(line: 72, column: 13, scope: !106) -!158 = !DILocation(line: 73, column: 13, scope: !106) -!159 = !DILocation(line: 74, column: 13, scope: !106) -!160 = !DILocation(line: 75, column: 13, scope: !106) -!161 = !DILocation(line: 76, column: 13, scope: !106) -!162 = !DILocation(line: 77, column: 13, scope: !106) -!163 = !DILocation(line: 78, column: 13, scope: !106) -!164 = !DILocation(line: 79, column: 13, scope: !106) -!165 = !DILocation(line: 80, column: 13, scope: !106) -!166 = !DILocation(line: 81, column: 13, scope: !106) -!167 = !DILocation(line: 82, column: 13, scope: !106) -!168 = !DILocation(line: 84, column: 11, scope: !106) -!169 = !DILocation(line: 85, column: 11, scope: !106) -!170 = !DILocation(line: 86, column: 11, scope: !106) -!171 = !DILocation(line: 87, column: 11, scope: !106) -!172 = !DILocation(line: 88, column: 11, scope: !106) -!173 = !DILocation(line: 89, column: 11, scope: !106) -!174 = !DILocation(line: 90, column: 11, scope: !106) -!175 = !DILocation(line: 91, column: 11, scope: !106) -!176 = !DILocation(line: 92, column: 11, scope: !106) -!177 = !DILocation(line: 93, column: 11, scope: !106) -!178 = !DILocation(line: 94, column: 11, scope: !106) -!179 = !DILocation(line: 95, column: 11, scope: !106) -!180 = !DILocation(line: 96, column: 11, scope: !106) -!181 = !DILocation(line: 97, column: 11, scope: !106) -!182 = !DILocation(line: 98, column: 11, scope: !106) -!183 = !DILocation(line: 99, column: 11, scope: !106) -!184 = !DILocation(line: 100, column: 11, scope: !106) -!185 = !DILocation(line: 101, column: 11, scope: !106) -!186 = !DILocation(line: 102, column: 11, scope: !106) -!187 = !DILocation(line: 104, column: 1, scope: !106) +!3 = distinct !DISubprogram(name: "$fundef_170", linkageName: "$fundef_170", scope: !2, file: !2, line: 25, type: !4, scopeLine: 25, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!4 = !DISubroutineType(types: !5) +!5 = !{!6} +!6 = !DIBasicType(tag: DW_TAG_unspecified_type, name: "void") +!7 = !{} +!8 = !DILocalVariable(name: "n", scope: !3, file: !2, line: 25, type: !9) +!9 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "Nat", baseType: !10, size: 8, align: 8, dwarfAddressSpace: 0) +!10 = !DIBasicType(name: "Nat", size: 8) +!11 = !DILocation(line: 25, column: 11, scope: !3) +!12 = !DILocation(line: 25, column: 23, scope: !3) +!13 = distinct !DISubprogram(name: "$fundef_168", linkageName: "$fundef_168", scope: !2, file: !2, line: 24, type: !4, scopeLine: 24, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!14 = !DILocalVariable(name: "n", scope: !13, file: !2, line: 24, type: !9) +!15 = !DILocation(line: 24, column: 10, scope: !13) +!16 = !DILocalVariable(name: "$retval_169", scope: !13, file: !2, line: 24, type: !9) +!17 = !DILocation(line: 24, column: 22, scope: !13) +!18 = !DILocalVariable(name: "$iter_nat_43", scope: !13, file: !2, line: 24, type: !9) +!19 = distinct !DISubprogram(name: "$fundef_166", linkageName: "$fundef_166", scope: !2, file: !2, line: 23, type: !4, scopeLine: 23, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!20 = !DILocalVariable(name: "x0", scope: !19, file: !2, line: 23, type: !9) +!21 = !DILocation(line: 23, column: 9, scope: !19) +!22 = !DILocalVariable(name: "$ack_40", scope: !19, file: !2, line: 23, type: !9) +!23 = !DILocation(line: 23, column: 14, scope: !19) +!24 = !DILocation(line: 24, column: 22, scope: !19) +!25 = distinct !DISubprogram(name: "$fundef_164", linkageName: "$fundef_164", scope: !2, file: !2, line: 13, type: !4, scopeLine: 13, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!26 = !DILocalVariable(name: "unused", scope: !25, file: !2, line: 13, type: !9) +!27 = !DILocation(line: 13, column: 35, scope: !25) +!28 = !DILocalVariable(name: "$retval_165", scope: !25, file: !2, line: 13, type: !9) +!29 = !DILocation(line: 13, column: 52, scope: !25) +!30 = !DILocalVariable(name: "$f_36", scope: !25, file: !2, line: 13, type: !9) +!31 = distinct !DISubprogram(name: "$fundef_162", linkageName: "$fundef_162", scope: !2, file: !2, line: 13, type: !4, scopeLine: 13, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!32 = !DILocalVariable(name: "x", scope: !31, file: !2, line: 13, type: !9) +!33 = !DILocation(line: 13, column: 19, scope: !31) +!34 = !DILocation(line: 13, column: 52, scope: !31) +!35 = distinct !DISubprogram(name: "$fundef_160", linkageName: "$fundef_160", scope: !2, file: !2, line: 12, type: !4, scopeLine: 12, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!36 = !DILocalVariable(name: "x0", scope: !35, file: !2, line: 11, type: !9) +!37 = !DILocation(line: 11, column: 8, scope: !35) +!38 = !DILocalVariable(name: "$retval_161", scope: !35, file: !2, line: 12, type: !9) +!39 = !DILocation(line: 12, column: 3, scope: !35) +!40 = !DILocation(line: 12, column: 17, scope: !35) +!41 = !DILocation(line: 12, column: 16, scope: !35) +!42 = !DILocation(line: 13, column: 30, scope: !35) +!43 = !DILocation(line: 14, column: 3, scope: !35) +!44 = !DILocalVariable(name: "$folder_39", scope: !35, file: !2, line: 14, type: !9) +!45 = distinct !DISubprogram(name: "$fundef_158", linkageName: "$fundef_158", scope: !2, file: !2, line: 11, type: !4, scopeLine: 11, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!46 = !DILocalVariable(name: "n", scope: !45, file: !2, line: 10, type: !9) +!47 = !DILocation(line: 10, column: 8, scope: !45) +!48 = !DILocation(line: 12, column: 3, scope: !45) +!49 = distinct !DISubprogram(name: "$fundef_156", linkageName: "$fundef_156", scope: !2, file: !2, line: 10, type: !4, scopeLine: 10, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!50 = !DILocation(line: 11, column: 3, scope: !49) +!51 = distinct !DISubprogram(name: "$fundef_154", linkageName: "$fundef_154", scope: !2, file: !2, line: 10, type: !4, scopeLine: 10, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!52 = !DILocation(line: 10, column: 3, scope: !51) +!53 = distinct !DISubprogram(name: "$fundef_152", linkageName: "$fundef_152", scope: !2, file: !2, line: 13, type: !4, scopeLine: 13, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!54 = !DILocalVariable(name: "unused", scope: !53, file: !2, line: 13, type: !9) +!55 = !DILocation(line: 13, column: 35, scope: !53) +!56 = !DILocation(line: 13, column: 52, scope: !53) +!57 = distinct !DISubprogram(name: "$fundef_150", linkageName: "$fundef_150", scope: !2, file: !2, line: 13, type: !4, scopeLine: 13, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!58 = !DILocation(line: 13, column: 52, scope: !57) +!59 = distinct !DISubprogram(name: "$fundef_148", linkageName: "$fundef_148", scope: !2, file: !2, line: 12, type: !4, scopeLine: 12, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!60 = !DILocation(line: 12, column: 17, scope: !59) +!61 = !DILocation(line: 12, column: 16, scope: !59) +!62 = !DILocation(line: 13, column: 30, scope: !59) +!63 = !DILocation(line: 14, column: 3, scope: !59) +!64 = distinct !DISubprogram(name: "$fundef_146", linkageName: "$fundef_146", scope: !2, file: !2, line: 11, type: !4, scopeLine: 11, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!65 = !DILocalVariable(name: "n", scope: !64, file: !2, line: 10, type: !9) +!66 = !DILocation(line: 10, column: 8, scope: !64) +!67 = !DILocation(line: 12, column: 3, scope: !64) +!68 = distinct !DISubprogram(name: "$fundef_144", linkageName: "$fundef_144", scope: !2, file: !2, line: 10, type: !4, scopeLine: 10, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!69 = !DILocation(line: 11, column: 3, scope: !68) +!70 = distinct !DISubprogram(name: "$fundef_142", linkageName: "$fundef_142", scope: !2, file: !2, line: 10, type: !4, scopeLine: 10, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!71 = !DILocation(line: 10, column: 3, scope: !70) +!72 = distinct !DISubprogram(name: "$fundef_140", linkageName: "$fundef_140", scope: !2, file: !2, line: 3, type: !4, scopeLine: 3, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!73 = !DILocalVariable(name: "n", scope: !72, file: !2, line: 3, type: !9) +!74 = !DILocation(line: 3, column: 8, scope: !72) +!75 = !DILocalVariable(name: "$retval_141", scope: !72, file: !2, line: 3, type: !9) +!76 = !DILocation(line: 3, column: 20, scope: !72) +!77 = distinct !DISubprogram(name: "$fundef_137", linkageName: "$fundef_137", scope: !78, file: !78, line: 55, type: !4, scopeLine: 55, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!78 = !DIFile(filename: "NatUtils.scillib", directory: "../src/stdlib") +!79 = !DILocalVariable(name: "ignore", scope: !77, file: !78, line: 54, type: !9) +!80 = !DILocation(line: 54, column: 38, scope: !77) +!81 = !DILocalVariable(name: "$retval_138", scope: !77, file: !78, line: 55, type: !82) +!82 = !DIBasicType(name: "Uint32", size: 4) +!83 = !DILocation(line: 55, column: 7, scope: !77) +!84 = distinct !DISubprogram(name: "$fundef_135", linkageName: "$fundef_135", scope: !78, file: !78, line: 54, type: !4, scopeLine: 54, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!85 = !DILocalVariable(name: "z", scope: !84, file: !78, line: 54, type: !82) +!86 = !DILocation(line: 54, column: 18, scope: !84) +!87 = !DILocation(line: 55, column: 7, scope: !84) +!88 = distinct !DISubprogram(name: "$fundef_133", linkageName: "$fundef_133", scope: !78, file: !78, line: 52, type: !4, scopeLine: 52, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!89 = !DILocalVariable(name: "n", scope: !88, file: !78, line: 51, type: !9) +!90 = !DILocation(line: 51, column: 8, scope: !88) +!91 = !DILocalVariable(name: "$retval_134", scope: !88, file: !78, line: 52, type: !82) +!92 = !DILocation(line: 52, column: 5, scope: !88) +!93 = !DILocation(line: 52, column: 17, scope: !88) +!94 = !DILocation(line: 52, column: 16, scope: !88) +!95 = !DILocalVariable(name: "one_int", scope: !88, file: !78, line: 53, type: !82) +!96 = !DILocation(line: 53, column: 9, scope: !88) +!97 = !DILocation(line: 53, column: 19, scope: !88) +!98 = !DILocation(line: 54, column: 33, scope: !88) +!99 = !DILocalVariable(name: "zero_int", scope: !88, file: !78, line: 56, type: !82) +!100 = !DILocation(line: 56, column: 9, scope: !88) +!101 = !DILocation(line: 56, column: 20, scope: !88) +!102 = !DILocation(line: 57, column: 5, scope: !88) +!103 = !DILocalVariable(name: "$fold_35", scope: !88, file: !78, line: 57, type: !82) +!104 = distinct !DISubprogram(name: "$fundef_131", linkageName: "$fundef_131", scope: !105, file: !105, line: 1, type: !4, scopeLine: 1, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!105 = !DIFile(filename: "Prelude", directory: ".") +!106 = !DILocalVariable(name: "n", scope: !104, file: !105, line: 1, type: !9) +!107 = !DILocation(line: 1, column: 23, scope: !104) +!108 = !DILocalVariable(name: "$retval_132", scope: !104, file: !105, line: 1, type: !82) +!109 = !DILocation(line: 1, column: 34, scope: !104) +!110 = !DILocalVariable(name: "res", scope: !111, file: !105, line: 1, type: !82) +!111 = distinct !DILexicalBlock(scope: !112, file: !105, line: 1, column: 50) +!112 = distinct !DILexicalBlock(scope: !104, file: !105, line: 1, column: 34) +!113 = !DILocation(line: 1, column: 65, scope: !111) +!114 = !DILocation(line: 1, column: 71, scope: !111) +!115 = !DILocalVariable(name: "$fn_30", scope: !111, file: !105, line: 1, type: !82) +!116 = !DILocation(line: 1, column: 86, scope: !111) +!117 = !DILocalVariable(name: "$g_32", scope: !111, file: !105, line: 1, type: !82) +!118 = !DILocation(line: 1, column: 106, scope: !119) +!119 = distinct !DILexicalBlock(scope: !112, file: !105, line: 1, column: 98) +!120 = distinct !DISubprogram(name: "$fundef_129", linkageName: "$fundef_129", scope: !105, file: !105, line: 1, type: !4, scopeLine: 1, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!121 = !DILocalVariable(name: "f0", scope: !120, file: !105, line: 1, type: !82) +!122 = !DILocation(line: 1, column: 6, scope: !120) +!123 = !DILocation(line: 1, column: 34, scope: !120) +!124 = distinct !DISubprogram(name: "$fundef_127", linkageName: "$fundef_127", scope: !105, file: !105, line: 1, type: !4, scopeLine: 1, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!125 = !DILocation(line: 1, column: 18, scope: !124) +!126 = distinct !DISubprogram(name: "$fundef_125", linkageName: "$fundef_125", scope: !105, file: !105, line: 1, type: !4, scopeLine: 1, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!127 = !DILocation(line: 1, column: 18, scope: !126) +!128 = distinct !DISubprogram(name: "$fundef_123", linkageName: "$fundef_123", scope: !105, file: !105, line: 1, type: !4, scopeLine: 1, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!129 = !DILocalVariable(name: "n", scope: !128, file: !105, line: 1, type: !9) +!130 = !DILocation(line: 1, column: 23, scope: !128) +!131 = !DILocalVariable(name: "$retval_124", scope: !128, file: !105, line: 1, type: !9) +!132 = !DILocation(line: 1, column: 34, scope: !128) +!133 = !DILocalVariable(name: "res", scope: !134, file: !105, line: 1, type: !9) +!134 = distinct !DILexicalBlock(scope: !135, file: !105, line: 1, column: 50) +!135 = distinct !DILexicalBlock(scope: !128, file: !105, line: 1, column: 34) +!136 = !DILocation(line: 1, column: 65, scope: !134) +!137 = !DILocation(line: 1, column: 71, scope: !134) +!138 = !DILocalVariable(name: "$fn_26", scope: !134, file: !105, line: 1, type: !9) +!139 = !DILocation(line: 1, column: 86, scope: !134) +!140 = !DILocalVariable(name: "$g_28", scope: !134, file: !105, line: 1, type: !9) +!141 = !DILocation(line: 1, column: 106, scope: !142) +!142 = distinct !DILexicalBlock(scope: !135, file: !105, line: 1, column: 98) +!143 = distinct !DISubprogram(name: "$fundef_121", linkageName: "$fundef_121", scope: !105, file: !105, line: 1, type: !4, scopeLine: 1, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!144 = !DILocalVariable(name: "f0", scope: !143, file: !105, line: 1, type: !9) +!145 = !DILocation(line: 1, column: 6, scope: !143) +!146 = !DILocation(line: 1, column: 34, scope: !143) +!147 = distinct !DISubprogram(name: "$fundef_119", linkageName: "$fundef_119", scope: !105, file: !105, line: 1, type: !4, scopeLine: 1, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!148 = !DILocation(line: 1, column: 18, scope: !147) +!149 = distinct !DISubprogram(name: "$fundef_117", linkageName: "$fundef_117", scope: !105, file: !105, line: 1, type: !4, scopeLine: 1, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!150 = !DILocation(line: 1, column: 18, scope: !149) +!151 = distinct !DISubprogram(name: "$fundef_115", linkageName: "$fundef_115", scope: !105, file: !105, line: 1, type: !4, scopeLine: 1, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!152 = !DILocalVariable(name: "n", scope: !151, file: !105, line: 1, type: !9) +!153 = !DILocation(line: 1, column: 23, scope: !151) +!154 = !DILocation(line: 1, column: 34, scope: !151) +!155 = !DILocation(line: 1, column: 71, scope: !156) +!156 = distinct !DILexicalBlock(scope: !157, file: !105, line: 1, column: 50) +!157 = distinct !DILexicalBlock(scope: !151, file: !105, line: 1, column: 34) +!158 = !DILocation(line: 1, column: 86, scope: !156) +!159 = !DILocation(line: 1, column: 106, scope: !160) +!160 = distinct !DILexicalBlock(scope: !157, file: !105, line: 1, column: 98) +!161 = distinct !DISubprogram(name: "$fundef_113", linkageName: "$fundef_113", scope: !105, file: !105, line: 1, type: !4, scopeLine: 1, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!162 = !DILocation(line: 1, column: 34, scope: !161) +!163 = distinct !DISubprogram(name: "$fundef_111", linkageName: "$fundef_111", scope: !105, file: !105, line: 1, type: !4, scopeLine: 1, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!164 = !DILocation(line: 1, column: 18, scope: !163) +!165 = distinct !DISubprogram(name: "$fundef_109", linkageName: "$fundef_109", scope: !105, file: !105, line: 1, type: !4, scopeLine: 1, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!166 = !DILocation(line: 1, column: 18, scope: !165) +!167 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !168, file: !168, type: !4, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!168 = !DIFile(filename: ".", directory: ".") +!169 = !DILocation(line: 0, scope: !167) +!170 = !DILocation(line: 1, column: 18, scope: !167) +!171 = !DILocation(line: 52, column: 5, scope: !167) +!172 = distinct !DISubprogram(name: "_scilla_expr_fun", linkageName: "_scilla_expr_fun", scope: !2, file: !2, line: 3, type: !4, scopeLine: 3, spFlags: DISPFlagDefinition, unit: !1, retainedNodes: !7) +!173 = !DILocalVariable(name: "$expr_139", scope: !172, file: !2, line: 3, type: !82) +!174 = !DILocation(line: 3, column: 3, scope: !172) +!175 = !DILocation(line: 3, column: 20, scope: !172) +!176 = !DILocation(line: 8, column: 3, scope: !172) +!177 = !DILocation(line: 18, column: 19, scope: !172) +!178 = !DILocation(line: 18, column: 18, scope: !172) +!179 = !DILocation(line: 19, column: 23, scope: !172) +!180 = !DILocation(line: 19, column: 22, scope: !172) +!181 = !DILocalVariable(name: "zero", scope: !172, file: !2, line: 20, type: !9) +!182 = !DILocation(line: 20, column: 7, scope: !172) +!183 = !DILocation(line: 20, column: 14, scope: !172) +!184 = !DILocalVariable(name: "one", scope: !172, file: !2, line: 21, type: !9) +!185 = !DILocation(line: 21, column: 7, scope: !172) +!186 = !DILocation(line: 21, column: 13, scope: !172) +!187 = !DILocation(line: 23, column: 5, scope: !172) +!188 = !DILocation(line: 25, column: 23, scope: !172) +!189 = !DILocalVariable(name: "uint0", scope: !172, file: !2, line: 29, type: !82) +!190 = !DILocation(line: 29, column: 5, scope: !172) +!191 = !DILocation(line: 29, column: 13, scope: !172) +!192 = !DILocalVariable(name: "uint1", scope: !172, file: !2, line: 30, type: !82) +!193 = !DILocation(line: 30, column: 5, scope: !172) +!194 = !DILocation(line: 30, column: 13, scope: !172) +!195 = !DILocalVariable(name: "uint2", scope: !172, file: !2, line: 31, type: !82) +!196 = !DILocation(line: 31, column: 5, scope: !172) +!197 = !DILocation(line: 31, column: 13, scope: !172) +!198 = !DILocalVariable(name: "uint3", scope: !172, file: !2, line: 32, type: !82) +!199 = !DILocation(line: 32, column: 5, scope: !172) +!200 = !DILocation(line: 32, column: 13, scope: !172) +!201 = !DILocalVariable(name: "uint4", scope: !172, file: !2, line: 33, type: !82) +!202 = !DILocation(line: 33, column: 5, scope: !172) +!203 = !DILocation(line: 33, column: 13, scope: !172) +!204 = !DILocalVariable(name: "n0", scope: !172, file: !2, line: 35, type: !9) +!205 = !DILocation(line: 35, column: 5, scope: !172) +!206 = !DILocation(line: 35, column: 10, scope: !172) +!207 = !DILocalVariable(name: "n1", scope: !172, file: !2, line: 36, type: !9) +!208 = !DILocation(line: 36, column: 5, scope: !172) +!209 = !DILocation(line: 36, column: 10, scope: !172) +!210 = !DILocalVariable(name: "n2", scope: !172, file: !2, line: 37, type: !9) +!211 = !DILocation(line: 37, column: 5, scope: !172) +!212 = !DILocation(line: 37, column: 10, scope: !172) +!213 = !DILocalVariable(name: "n3", scope: !172, file: !2, line: 38, type: !9) +!214 = !DILocation(line: 38, column: 5, scope: !172) +!215 = !DILocation(line: 38, column: 10, scope: !172) +!216 = !DILocalVariable(name: "n4", scope: !172, file: !2, line: 39, type: !9) +!217 = !DILocation(line: 39, column: 5, scope: !172) +!218 = !DILocation(line: 39, column: 10, scope: !172) +!219 = !DILocalVariable(name: "ack00", scope: !172, file: !2, line: 41, type: !9) +!220 = !DILocation(line: 41, column: 5, scope: !172) +!221 = !DILocation(line: 41, column: 13, scope: !172) +!222 = !DILocalVariable(name: "$ackermann_48", scope: !172, file: !2, line: 41, type: !9) +!223 = !DILocalVariable(name: "ack01", scope: !172, file: !2, line: 42, type: !9) +!224 = !DILocation(line: 42, column: 5, scope: !172) +!225 = !DILocation(line: 42, column: 13, scope: !172) +!226 = !DILocalVariable(name: "$ackermann_50", scope: !172, file: !2, line: 42, type: !9) +!227 = !DILocalVariable(name: "ack02", scope: !172, file: !2, line: 43, type: !9) +!228 = !DILocation(line: 43, column: 5, scope: !172) +!229 = !DILocation(line: 43, column: 13, scope: !172) +!230 = !DILocalVariable(name: "$ackermann_52", scope: !172, file: !2, line: 43, type: !9) +!231 = !DILocalVariable(name: "ack03", scope: !172, file: !2, line: 44, type: !9) +!232 = !DILocation(line: 44, column: 5, scope: !172) +!233 = !DILocation(line: 44, column: 13, scope: !172) +!234 = !DILocalVariable(name: "$ackermann_54", scope: !172, file: !2, line: 44, type: !9) +!235 = !DILocalVariable(name: "ack04", scope: !172, file: !2, line: 45, type: !9) +!236 = !DILocation(line: 45, column: 5, scope: !172) +!237 = !DILocation(line: 45, column: 13, scope: !172) +!238 = !DILocalVariable(name: "$ackermann_56", scope: !172, file: !2, line: 45, type: !9) +!239 = !DILocalVariable(name: "ack10", scope: !172, file: !2, line: 46, type: !9) +!240 = !DILocation(line: 46, column: 5, scope: !172) +!241 = !DILocation(line: 46, column: 13, scope: !172) +!242 = !DILocalVariable(name: "$ackermann_58", scope: !172, file: !2, line: 46, type: !9) +!243 = !DILocalVariable(name: "ack11", scope: !172, file: !2, line: 47, type: !9) +!244 = !DILocation(line: 47, column: 5, scope: !172) +!245 = !DILocation(line: 47, column: 13, scope: !172) +!246 = !DILocalVariable(name: "$ackermann_60", scope: !172, file: !2, line: 47, type: !9) +!247 = !DILocalVariable(name: "ack12", scope: !172, file: !2, line: 48, type: !9) +!248 = !DILocation(line: 48, column: 5, scope: !172) +!249 = !DILocation(line: 48, column: 13, scope: !172) +!250 = !DILocalVariable(name: "$ackermann_62", scope: !172, file: !2, line: 48, type: !9) +!251 = !DILocalVariable(name: "ack13", scope: !172, file: !2, line: 49, type: !9) +!252 = !DILocation(line: 49, column: 5, scope: !172) +!253 = !DILocation(line: 49, column: 13, scope: !172) +!254 = !DILocalVariable(name: "$ackermann_64", scope: !172, file: !2, line: 49, type: !9) +!255 = !DILocalVariable(name: "ack14", scope: !172, file: !2, line: 50, type: !9) +!256 = !DILocation(line: 50, column: 5, scope: !172) +!257 = !DILocation(line: 50, column: 13, scope: !172) +!258 = !DILocalVariable(name: "$ackermann_66", scope: !172, file: !2, line: 50, type: !9) +!259 = !DILocalVariable(name: "ack20", scope: !172, file: !2, line: 51, type: !9) +!260 = !DILocation(line: 51, column: 5, scope: !172) +!261 = !DILocation(line: 51, column: 13, scope: !172) +!262 = !DILocalVariable(name: "$ackermann_68", scope: !172, file: !2, line: 51, type: !9) +!263 = !DILocalVariable(name: "ack21", scope: !172, file: !2, line: 52, type: !9) +!264 = !DILocation(line: 52, column: 5, scope: !172) +!265 = !DILocation(line: 52, column: 13, scope: !172) +!266 = !DILocalVariable(name: "$ackermann_70", scope: !172, file: !2, line: 52, type: !9) +!267 = !DILocalVariable(name: "ack22", scope: !172, file: !2, line: 53, type: !9) +!268 = !DILocation(line: 53, column: 5, scope: !172) +!269 = !DILocation(line: 53, column: 13, scope: !172) +!270 = !DILocalVariable(name: "$ackermann_72", scope: !172, file: !2, line: 53, type: !9) +!271 = !DILocalVariable(name: "ack23", scope: !172, file: !2, line: 54, type: !9) +!272 = !DILocation(line: 54, column: 5, scope: !172) +!273 = !DILocation(line: 54, column: 13, scope: !172) +!274 = !DILocalVariable(name: "$ackermann_74", scope: !172, file: !2, line: 54, type: !9) +!275 = !DILocalVariable(name: "ack24", scope: !172, file: !2, line: 55, type: !9) +!276 = !DILocation(line: 55, column: 5, scope: !172) +!277 = !DILocation(line: 55, column: 13, scope: !172) +!278 = !DILocalVariable(name: "$ackermann_76", scope: !172, file: !2, line: 55, type: !9) +!279 = !DILocalVariable(name: "ack30", scope: !172, file: !2, line: 56, type: !9) +!280 = !DILocation(line: 56, column: 5, scope: !172) +!281 = !DILocation(line: 56, column: 13, scope: !172) +!282 = !DILocalVariable(name: "$ackermann_78", scope: !172, file: !2, line: 56, type: !9) +!283 = !DILocalVariable(name: "ack31", scope: !172, file: !2, line: 57, type: !9) +!284 = !DILocation(line: 57, column: 5, scope: !172) +!285 = !DILocation(line: 57, column: 13, scope: !172) +!286 = !DILocalVariable(name: "$ackermann_80", scope: !172, file: !2, line: 57, type: !9) +!287 = !DILocalVariable(name: "ack32", scope: !172, file: !2, line: 58, type: !9) +!288 = !DILocation(line: 58, column: 5, scope: !172) +!289 = !DILocation(line: 58, column: 13, scope: !172) +!290 = !DILocalVariable(name: "$ackermann_82", scope: !172, file: !2, line: 58, type: !9) +!291 = !DILocalVariable(name: "ack33", scope: !172, file: !2, line: 59, type: !9) +!292 = !DILocation(line: 59, column: 5, scope: !172) +!293 = !DILocation(line: 59, column: 13, scope: !172) +!294 = !DILocalVariable(name: "$ackermann_84", scope: !172, file: !2, line: 59, type: !9) +!295 = !DILocalVariable(name: "ack34", scope: !172, file: !2, line: 60, type: !9) +!296 = !DILocation(line: 60, column: 5, scope: !172) +!297 = !DILocation(line: 60, column: 13, scope: !172) +!298 = !DILocalVariable(name: "$ackermann_86", scope: !172, file: !2, line: 60, type: !9) +!299 = !DILocalVariable(name: "ack40", scope: !172, file: !2, line: 61, type: !9) +!300 = !DILocation(line: 61, column: 5, scope: !172) +!301 = !DILocation(line: 61, column: 13, scope: !172) +!302 = !DILocalVariable(name: "$ackermann_88", scope: !172, file: !2, line: 61, type: !9) +!303 = !DILocalVariable(name: "int01", scope: !172, file: !2, line: 63, type: !82) +!304 = !DILocation(line: 63, column: 5, scope: !172) +!305 = !DILocalVariable(name: "$NatUtils.nat_to_int_89", scope: !172, file: !2, line: 63, type: !82) +!306 = !DILocation(line: 63, column: 13, scope: !172) +!307 = !DILocalVariable(name: "int02", scope: !172, file: !2, line: 64, type: !82) +!308 = !DILocation(line: 64, column: 5, scope: !172) +!309 = !DILocalVariable(name: "$NatUtils.nat_to_int_90", scope: !172, file: !2, line: 64, type: !82) +!310 = !DILocation(line: 64, column: 13, scope: !172) +!311 = !DILocalVariable(name: "int03", scope: !172, file: !2, line: 65, type: !82) +!312 = !DILocation(line: 65, column: 5, scope: !172) +!313 = !DILocalVariable(name: "$NatUtils.nat_to_int_91", scope: !172, file: !2, line: 65, type: !82) +!314 = !DILocation(line: 65, column: 13, scope: !172) +!315 = !DILocalVariable(name: "int04", scope: !172, file: !2, line: 66, type: !82) +!316 = !DILocation(line: 66, column: 5, scope: !172) +!317 = !DILocalVariable(name: "$NatUtils.nat_to_int_92", scope: !172, file: !2, line: 66, type: !82) +!318 = !DILocation(line: 66, column: 13, scope: !172) +!319 = !DILocalVariable(name: "int10", scope: !172, file: !2, line: 67, type: !82) +!320 = !DILocation(line: 67, column: 5, scope: !172) +!321 = !DILocalVariable(name: "$NatUtils.nat_to_int_93", scope: !172, file: !2, line: 67, type: !82) +!322 = !DILocation(line: 67, column: 13, scope: !172) +!323 = !DILocalVariable(name: "int11", scope: !172, file: !2, line: 68, type: !82) +!324 = !DILocation(line: 68, column: 5, scope: !172) +!325 = !DILocalVariable(name: "$NatUtils.nat_to_int_94", scope: !172, file: !2, line: 68, type: !82) +!326 = !DILocation(line: 68, column: 13, scope: !172) +!327 = !DILocalVariable(name: "int12", scope: !172, file: !2, line: 69, type: !82) +!328 = !DILocation(line: 69, column: 5, scope: !172) +!329 = !DILocalVariable(name: "$NatUtils.nat_to_int_95", scope: !172, file: !2, line: 69, type: !82) +!330 = !DILocation(line: 69, column: 13, scope: !172) +!331 = !DILocalVariable(name: "int13", scope: !172, file: !2, line: 70, type: !82) +!332 = !DILocation(line: 70, column: 5, scope: !172) +!333 = !DILocalVariable(name: "$NatUtils.nat_to_int_96", scope: !172, file: !2, line: 70, type: !82) +!334 = !DILocation(line: 70, column: 13, scope: !172) +!335 = !DILocalVariable(name: "int14", scope: !172, file: !2, line: 71, type: !82) +!336 = !DILocation(line: 71, column: 5, scope: !172) +!337 = !DILocalVariable(name: "$NatUtils.nat_to_int_97", scope: !172, file: !2, line: 71, type: !82) +!338 = !DILocation(line: 71, column: 13, scope: !172) +!339 = !DILocalVariable(name: "int20", scope: !172, file: !2, line: 72, type: !82) +!340 = !DILocation(line: 72, column: 5, scope: !172) +!341 = !DILocalVariable(name: "$NatUtils.nat_to_int_98", scope: !172, file: !2, line: 72, type: !82) +!342 = !DILocation(line: 72, column: 13, scope: !172) +!343 = !DILocalVariable(name: "int21", scope: !172, file: !2, line: 73, type: !82) +!344 = !DILocation(line: 73, column: 5, scope: !172) +!345 = !DILocalVariable(name: "$NatUtils.nat_to_int_99", scope: !172, file: !2, line: 73, type: !82) +!346 = !DILocation(line: 73, column: 13, scope: !172) +!347 = !DILocalVariable(name: "int22", scope: !172, file: !2, line: 74, type: !82) +!348 = !DILocation(line: 74, column: 5, scope: !172) +!349 = !DILocalVariable(name: "$NatUtils.nat_to_int_100", scope: !172, file: !2, line: 74, type: !82) +!350 = !DILocation(line: 74, column: 13, scope: !172) +!351 = !DILocalVariable(name: "int23", scope: !172, file: !2, line: 75, type: !82) +!352 = !DILocation(line: 75, column: 5, scope: !172) +!353 = !DILocalVariable(name: "$NatUtils.nat_to_int_101", scope: !172, file: !2, line: 75, type: !82) +!354 = !DILocation(line: 75, column: 13, scope: !172) +!355 = !DILocalVariable(name: "int24", scope: !172, file: !2, line: 76, type: !82) +!356 = !DILocation(line: 76, column: 5, scope: !172) +!357 = !DILocalVariable(name: "$NatUtils.nat_to_int_102", scope: !172, file: !2, line: 76, type: !82) +!358 = !DILocation(line: 76, column: 13, scope: !172) +!359 = !DILocalVariable(name: "int30", scope: !172, file: !2, line: 77, type: !82) +!360 = !DILocation(line: 77, column: 5, scope: !172) +!361 = !DILocalVariable(name: "$NatUtils.nat_to_int_103", scope: !172, file: !2, line: 77, type: !82) +!362 = !DILocation(line: 77, column: 13, scope: !172) +!363 = !DILocalVariable(name: "int31", scope: !172, file: !2, line: 78, type: !82) +!364 = !DILocation(line: 78, column: 5, scope: !172) +!365 = !DILocalVariable(name: "$NatUtils.nat_to_int_104", scope: !172, file: !2, line: 78, type: !82) +!366 = !DILocation(line: 78, column: 13, scope: !172) +!367 = !DILocalVariable(name: "int32", scope: !172, file: !2, line: 79, type: !82) +!368 = !DILocation(line: 79, column: 5, scope: !172) +!369 = !DILocalVariable(name: "$NatUtils.nat_to_int_105", scope: !172, file: !2, line: 79, type: !82) +!370 = !DILocation(line: 79, column: 13, scope: !172) +!371 = !DILocalVariable(name: "int33", scope: !172, file: !2, line: 80, type: !82) +!372 = !DILocation(line: 80, column: 5, scope: !172) +!373 = !DILocalVariable(name: "$NatUtils.nat_to_int_106", scope: !172, file: !2, line: 80, type: !82) +!374 = !DILocation(line: 80, column: 13, scope: !172) +!375 = !DILocalVariable(name: "int34", scope: !172, file: !2, line: 81, type: !82) +!376 = !DILocation(line: 81, column: 5, scope: !172) +!377 = !DILocalVariable(name: "$NatUtils.nat_to_int_107", scope: !172, file: !2, line: 81, type: !82) +!378 = !DILocation(line: 81, column: 13, scope: !172) +!379 = !DILocalVariable(name: "int40", scope: !172, file: !2, line: 82, type: !82) +!380 = !DILocation(line: 82, column: 5, scope: !172) +!381 = !DILocalVariable(name: "$NatUtils.nat_to_int_108", scope: !172, file: !2, line: 82, type: !82) +!382 = !DILocation(line: 82, column: 13, scope: !172) +!383 = !DILocalVariable(name: "sum", scope: !172, file: !2, line: 84, type: !82) +!384 = !DILocation(line: 84, column: 5, scope: !172) +!385 = !DILocation(line: 84, column: 11, scope: !172) +!386 = !DILocalVariable(name: "$sum_7", scope: !172, file: !2, line: 85, type: !82) +!387 = !DILocation(line: 85, column: 5, scope: !172) +!388 = !DILocation(line: 85, column: 11, scope: !172) +!389 = !DILocalVariable(name: "$sum_8", scope: !172, file: !2, line: 86, type: !82) +!390 = !DILocation(line: 86, column: 5, scope: !172) +!391 = !DILocation(line: 86, column: 11, scope: !172) +!392 = !DILocalVariable(name: "$sum_9", scope: !172, file: !2, line: 87, type: !82) +!393 = !DILocation(line: 87, column: 5, scope: !172) +!394 = !DILocation(line: 87, column: 11, scope: !172) +!395 = !DILocalVariable(name: "$sum_10", scope: !172, file: !2, line: 88, type: !82) +!396 = !DILocation(line: 88, column: 5, scope: !172) +!397 = !DILocation(line: 88, column: 11, scope: !172) +!398 = !DILocalVariable(name: "$sum_11", scope: !172, file: !2, line: 89, type: !82) +!399 = !DILocation(line: 89, column: 5, scope: !172) +!400 = !DILocation(line: 89, column: 11, scope: !172) +!401 = !DILocalVariable(name: "$sum_12", scope: !172, file: !2, line: 90, type: !82) +!402 = !DILocation(line: 90, column: 5, scope: !172) +!403 = !DILocation(line: 90, column: 11, scope: !172) +!404 = !DILocalVariable(name: "$sum_13", scope: !172, file: !2, line: 91, type: !82) +!405 = !DILocation(line: 91, column: 5, scope: !172) +!406 = !DILocation(line: 91, column: 11, scope: !172) +!407 = !DILocalVariable(name: "$sum_14", scope: !172, file: !2, line: 92, type: !82) +!408 = !DILocation(line: 92, column: 5, scope: !172) +!409 = !DILocation(line: 92, column: 11, scope: !172) +!410 = !DILocalVariable(name: "$sum_15", scope: !172, file: !2, line: 93, type: !82) +!411 = !DILocation(line: 93, column: 5, scope: !172) +!412 = !DILocation(line: 93, column: 11, scope: !172) +!413 = !DILocalVariable(name: "$sum_16", scope: !172, file: !2, line: 94, type: !82) +!414 = !DILocation(line: 94, column: 5, scope: !172) +!415 = !DILocation(line: 94, column: 11, scope: !172) +!416 = !DILocalVariable(name: "$sum_17", scope: !172, file: !2, line: 95, type: !82) +!417 = !DILocation(line: 95, column: 5, scope: !172) +!418 = !DILocation(line: 95, column: 11, scope: !172) +!419 = !DILocalVariable(name: "$sum_18", scope: !172, file: !2, line: 96, type: !82) +!420 = !DILocation(line: 96, column: 5, scope: !172) +!421 = !DILocation(line: 96, column: 11, scope: !172) +!422 = !DILocalVariable(name: "$sum_19", scope: !172, file: !2, line: 97, type: !82) +!423 = !DILocation(line: 97, column: 5, scope: !172) +!424 = !DILocation(line: 97, column: 11, scope: !172) +!425 = !DILocalVariable(name: "$sum_20", scope: !172, file: !2, line: 98, type: !82) +!426 = !DILocation(line: 98, column: 5, scope: !172) +!427 = !DILocation(line: 98, column: 11, scope: !172) +!428 = !DILocalVariable(name: "$sum_21", scope: !172, file: !2, line: 99, type: !82) +!429 = !DILocation(line: 99, column: 5, scope: !172) +!430 = !DILocation(line: 99, column: 11, scope: !172) +!431 = !DILocalVariable(name: "$sum_22", scope: !172, file: !2, line: 100, type: !82) +!432 = !DILocation(line: 100, column: 5, scope: !172) +!433 = !DILocation(line: 100, column: 11, scope: !172) +!434 = !DILocalVariable(name: "$sum_23", scope: !172, file: !2, line: 101, type: !82) +!435 = !DILocation(line: 101, column: 5, scope: !172) +!436 = !DILocation(line: 101, column: 11, scope: !172) +!437 = !DILocalVariable(name: "$sum_24", scope: !172, file: !2, line: 102, type: !82) +!438 = !DILocation(line: 102, column: 5, scope: !172) +!439 = !DILocation(line: 102, column: 11, scope: !172) +!440 = !DILocation(line: 104, column: 1, scope: !172) diff --git a/testsuite/expr/ackermann.ll b/testsuite/expr/ackermann.ll index 21cfdaf3..e39c161d 100644 --- a/testsuite/expr/ackermann.ll +++ b/testsuite/expr/ackermann.ll @@ -105,7 +105,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-pc-linux-gnu" +target triple = "x86_64-unknown-linux-gnu" %"$TyDescrTy_PrimTyp_172" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/testsuite/expr/ackermann_3_7.dbg.ll b/testsuite/expr/ackermann_3_7.dbg.ll index 4f861f6a..b3f19f51 100644 --- a/testsuite/expr/ackermann_3_7.dbg.ll +++ b/testsuite/expr/ackermann_3_7.dbg.ll @@ -38,7 +38,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-pc-linux-gnu" +target triple = "x86_64-unknown-linux-gnu" %"$TyDescrTy_PrimTyp_95" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } @@ -51,9 +51,9 @@ target triple = "x86_64-pc-linux-gnu" %TName_Nat = type { i8, %CName_Zero*, %CName_Succ* } %CName_Zero = type <{ i8 }> %CName_Succ = type <{ i8, %TName_Nat* }> -%"$ParamDescr_1294" = type { %ParamDescrString, %_TyDescrTy_Typ* } +%"$ParamDescr_1311" = type { %ParamDescrString, %_TyDescrTy_Typ* } %ParamDescrString = type { i8*, i32 } -%"$TransDescr_1295" = type { %ParamDescrString, i32, %"$ParamDescr_1294"* } +%"$TransDescr_1312" = type { %ParamDescrString, i32, %"$ParamDescr_1311"* } %"$$fundef_93_env_145" = type { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }, { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*, i8* }, { %TName_Nat* (i8*, %TName_Nat*)*, i8* } } %"$$fundef_91_env_146" = type { { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }, %TName_Nat* } %"$$fundef_89_env_147" = type { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }, %TName_Nat* } @@ -141,912 +141,948 @@ target triple = "x86_64-pc-linux-gnu" @"$_gas_charge_accPairUtils_4" = global %Int32 zeroinitializer @_tydescr_table = constant [16 x %_TyDescrTy_Typ*] [%_TyDescrTy_Typ* @"$TyDescr_Event_119", %_TyDescrTy_Typ* @"$TyDescr_Int64_101", %_TyDescrTy_Typ* @"$TyDescr_ADT_Nat_129", %_TyDescrTy_Typ* @"$TyDescr_Uint256_111", %_TyDescrTy_Typ* @"$TyDescr_Uint32_99", %_TyDescrTy_Typ* @"$TyDescr_Uint64_103", %_TyDescrTy_Typ* @"$TyDescr_Bnum_115", %_TyDescrTy_Typ* @"$TyDescr_Uint128_107", %_TyDescrTy_Typ* @"$TyDescr_Exception_121", %_TyDescrTy_Typ* @"$TyDescr_String_113", %_TyDescrTy_Typ* @"$TyDescr_Int256_109", %_TyDescrTy_Typ* @"$TyDescr_Int128_105", %_TyDescrTy_Typ* @"$TyDescr_Bystr_125", %_TyDescrTy_Typ* @"$TyDescr_ReplicateContr_123", %_TyDescrTy_Typ* @"$TyDescr_Message_117", %_TyDescrTy_Typ* @"$TyDescr_Int32_97"] @_tydescr_table_length = constant i32 16 -@_contract_parameters = constant [0 x %"$ParamDescr_1294"] zeroinitializer +@_contract_parameters = constant [0 x %"$ParamDescr_1311"] zeroinitializer @_contract_parameters_length = constant i32 0 -@_transition_parameters = constant [0 x %"$TransDescr_1295"] zeroinitializer +@_transition_parameters = constant [0 x %"$TransDescr_1312"] zeroinitializer @_transition_parameters_length = constant i32 0 -define internal { %TName_Nat* (i8*, %TName_Nat*)*, i8* } @"$fundef_93"(%"$$fundef_93_env_145"* %0, %TName_Nat* %1) !dbg !4 { +define internal { %TName_Nat* (i8*, %TName_Nat*)*, i8* } @"$fundef_93"(%"$$fundef_93_env_145"* %0, %TName_Nat* %1) !dbg !3 { entry: - %"$$fundef_93_env_f_965" = getelementptr inbounds %"$$fundef_93_env_145", %"$$fundef_93_env_145"* %0, i32 0, i32 0 - %"$f_envload_966" = load { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }* %"$$fundef_93_env_f_965", align 8 + %"$n_1008" = alloca %TName_Nat*, align 8 + store %TName_Nat* %1, %TName_Nat** %"$n_1008", align 8 + call void @llvm.dbg.declare(metadata %TName_Nat** %"$n_1008", metadata !8, metadata !DIExpression()), !dbg !11 + %"$$fundef_93_env_f_981" = getelementptr inbounds %"$$fundef_93_env_145", %"$$fundef_93_env_145"* %0, i32 0, i32 0 + %"$f_envload_982" = load { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }* %"$$fundef_93_env_f_981", align 8 %f = alloca { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }, align 8 - store { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } %"$f_envload_966", { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }* %f, align 8 - %"$$fundef_93_env_iter_nat_nat_967" = getelementptr inbounds %"$$fundef_93_env_145", %"$$fundef_93_env_145"* %0, i32 0, i32 1 - %"$iter_nat_nat_envload_968" = load { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*, i8* }, { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*, i8* }* %"$$fundef_93_env_iter_nat_nat_967", align 8 + store { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } %"$f_envload_982", { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }* %f, align 8 + %"$$fundef_93_env_iter_nat_nat_983" = getelementptr inbounds %"$$fundef_93_env_145", %"$$fundef_93_env_145"* %0, i32 0, i32 1 + %"$iter_nat_nat_envload_984" = load { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*, i8* }, { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*, i8* }* %"$$fundef_93_env_iter_nat_nat_983", align 8 %iter_nat_nat = alloca { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*, i8* }, align 8 - store { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*, i8* } %"$iter_nat_nat_envload_968", { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*, i8* }* %iter_nat_nat, align 8 - %"$$fundef_93_env_nat_succ_969" = getelementptr inbounds %"$$fundef_93_env_145", %"$$fundef_93_env_145"* %0, i32 0, i32 2 - %"$nat_succ_envload_970" = load { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$$fundef_93_env_nat_succ_969", align 8 + store { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*, i8* } %"$iter_nat_nat_envload_984", { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*, i8* }* %iter_nat_nat, align 8 + %"$$fundef_93_env_nat_succ_985" = getelementptr inbounds %"$$fundef_93_env_145", %"$$fundef_93_env_145"* %0, i32 0, i32 2 + %"$nat_succ_envload_986" = load { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$$fundef_93_env_nat_succ_985", align 8 %nat_succ = alloca { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, align 8 - store { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$nat_succ_envload_970", { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %nat_succ, align 8 + store { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$nat_succ_envload_986", { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %nat_succ, align 8 %"$retval_94" = alloca { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, align 8 - %"$gasrem_971" = load i64, i64* @_gasrem, align 8 - %"$gascmp_972" = icmp ugt i64 1, %"$gasrem_971" - br i1 %"$gascmp_972", label %"$out_of_gas_973", label %"$have_gas_974" + %"$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_973": ; preds = %entry +"$out_of_gas_989": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_974" + br label %"$have_gas_990" -"$have_gas_974": ; preds = %"$out_of_gas_973", %entry - %"$consume_975" = sub i64 %"$gasrem_971", 1 - store i64 %"$consume_975", i64* @_gasrem, align 8 +"$have_gas_990": ; preds = %"$out_of_gas_989", %entry + %"$consume_991" = sub i64 %"$gasrem_987", 1 + store i64 %"$consume_991", i64* @_gasrem, align 8 %"$iter_nat_nat_26" = alloca { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, %TName_Nat*)*, i8* }, align 8 - %"$iter_nat_nat_976" = load { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*, i8* }, { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*, i8* }* %iter_nat_nat, align 8 - %"$iter_nat_nat_fptr_977" = extractvalue { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*, i8* } %"$iter_nat_nat_976", 0 - %"$iter_nat_nat_envptr_978" = extractvalue { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*, i8* } %"$iter_nat_nat_976", 1 - %"$f_979" = load { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }* %f, align 8 - %"$iter_nat_nat_call_980" = call { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, %TName_Nat*)*, i8* } %"$iter_nat_nat_fptr_977"(i8* %"$iter_nat_nat_envptr_978", { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } %"$f_979"), !dbg !8 - store { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, %TName_Nat*)*, i8* } %"$iter_nat_nat_call_980", { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, %TName_Nat*)*, i8* }* %"$iter_nat_nat_26", align 8, !dbg !8 + %"$iter_nat_nat_992" = load { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*, i8* }, { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*, i8* }* %iter_nat_nat, align 8 + %"$iter_nat_nat_fptr_993" = extractvalue { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*, i8* } %"$iter_nat_nat_992", 0 + %"$iter_nat_nat_envptr_994" = extractvalue { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*, i8* } %"$iter_nat_nat_992", 1 + %"$f_995" = load { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }* %f, align 8 + %"$iter_nat_nat_call_996" = call { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, %TName_Nat*)*, i8* } %"$iter_nat_nat_fptr_993"(i8* %"$iter_nat_nat_envptr_994", { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } %"$f_995"), !dbg !12 + store { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, %TName_Nat*)*, i8* } %"$iter_nat_nat_call_996", { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, %TName_Nat*)*, i8* }* %"$iter_nat_nat_26", align 8, !dbg !12 %"$iter_nat_nat_27" = alloca { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }, align 8 - %"$$iter_nat_nat_26_981" = load { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, %TName_Nat*)*, i8* }, { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, %TName_Nat*)*, i8* }* %"$iter_nat_nat_26", align 8 - %"$$iter_nat_nat_26_fptr_982" = extractvalue { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, %TName_Nat*)*, i8* } %"$$iter_nat_nat_26_981", 0 - %"$$iter_nat_nat_26_envptr_983" = extractvalue { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, %TName_Nat*)*, i8* } %"$$iter_nat_nat_26_981", 1 - %"$$iter_nat_nat_26_call_984" = call { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } %"$$iter_nat_nat_26_fptr_982"(i8* %"$$iter_nat_nat_26_envptr_983", %TName_Nat* %1), !dbg !8 - store { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } %"$$iter_nat_nat_26_call_984", { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }* %"$iter_nat_nat_27", align 8, !dbg !8 + %"$$iter_nat_nat_26_997" = load { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, %TName_Nat*)*, i8* }, { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, %TName_Nat*)*, i8* }* %"$iter_nat_nat_26", align 8 + %"$$iter_nat_nat_26_fptr_998" = extractvalue { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, %TName_Nat*)*, i8* } %"$$iter_nat_nat_26_997", 0 + %"$$iter_nat_nat_26_envptr_999" = extractvalue { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, %TName_Nat*)*, i8* } %"$$iter_nat_nat_26_997", 1 + %"$$iter_nat_nat_26_call_1000" = call { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } %"$$iter_nat_nat_26_fptr_998"(i8* %"$$iter_nat_nat_26_envptr_999", %TName_Nat* %1), !dbg !12 + store { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } %"$$iter_nat_nat_26_call_1000", { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }* %"$iter_nat_nat_27", align 8, !dbg !12 %"$iter_nat_nat_28" = alloca { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, align 8 - %"$$iter_nat_nat_27_985" = load { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }* %"$iter_nat_nat_27", align 8 - %"$$iter_nat_nat_27_fptr_986" = extractvalue { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } %"$$iter_nat_nat_27_985", 0 - %"$$iter_nat_nat_27_envptr_987" = extractvalue { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } %"$$iter_nat_nat_27_985", 1 - %"$nat_succ_988" = load { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %nat_succ, align 8 - %"$$iter_nat_nat_27_call_989" = call { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$$iter_nat_nat_27_fptr_986"(i8* %"$$iter_nat_nat_27_envptr_987", { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$nat_succ_988"), !dbg !8 - store { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$$iter_nat_nat_27_call_989", { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$iter_nat_nat_28", align 8, !dbg !8 - %"$$iter_nat_nat_28_990" = load { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$iter_nat_nat_28", align 8 - store { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$$iter_nat_nat_28_990", { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$retval_94", align 8, !dbg !8 - %"$$retval_94_991" = load { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$retval_94", align 8 - ret { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$$retval_94_991" + %"$$iter_nat_nat_27_1001" = load { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }* %"$iter_nat_nat_27", align 8 + %"$$iter_nat_nat_27_fptr_1002" = extractvalue { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } %"$$iter_nat_nat_27_1001", 0 + %"$$iter_nat_nat_27_envptr_1003" = extractvalue { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } %"$$iter_nat_nat_27_1001", 1 + %"$nat_succ_1004" = load { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %nat_succ, align 8 + %"$$iter_nat_nat_27_call_1005" = call { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$$iter_nat_nat_27_fptr_1002"(i8* %"$$iter_nat_nat_27_envptr_1003", { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$nat_succ_1004"), !dbg !12 + store { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$$iter_nat_nat_27_call_1005", { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$iter_nat_nat_28", align 8, !dbg !12 + %"$$iter_nat_nat_28_1006" = load { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$iter_nat_nat_28", align 8 + store { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$$iter_nat_nat_28_1006", { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$retval_94", align 8, !dbg !12 + %"$$retval_94_1007" = load { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$retval_94", align 8 + ret { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$$retval_94_1007" } -define internal %TName_Nat* @"$fundef_91"(%"$$fundef_91_env_146"* %0, %TName_Nat* %1) !dbg !9 { +define internal %TName_Nat* @"$fundef_91"(%"$$fundef_91_env_146"* %0, %TName_Nat* %1) !dbg !13 { entry: - %"$$fundef_91_env_ack_938" = getelementptr inbounds %"$$fundef_91_env_146", %"$$fundef_91_env_146"* %0, i32 0, i32 0 - %"$ack_envload_939" = load { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$$fundef_91_env_ack_938", align 8 + %"$n_980" = alloca %TName_Nat*, align 8 + store %TName_Nat* %1, %TName_Nat** %"$n_980", align 8 + call void @llvm.dbg.declare(metadata %TName_Nat** %"$n_980", metadata !14, metadata !DIExpression()), !dbg !15 + %"$$fundef_91_env_ack_953" = getelementptr inbounds %"$$fundef_91_env_146", %"$$fundef_91_env_146"* %0, i32 0, i32 0 + %"$ack_envload_954" = load { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$$fundef_91_env_ack_953", align 8 %ack = alloca { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, align 8 - store { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$ack_envload_939", { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %ack, align 8 - %"$$fundef_91_env_iter_nat_940" = getelementptr inbounds %"$$fundef_91_env_146", %"$$fundef_91_env_146"* %0, i32 0, i32 1 - %"$iter_nat_envload_941" = load { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }, { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }* %"$$fundef_91_env_iter_nat_940", align 8 + store { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$ack_envload_954", { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %ack, align 8 + %"$$fundef_91_env_iter_nat_955" = getelementptr inbounds %"$$fundef_91_env_146", %"$$fundef_91_env_146"* %0, i32 0, i32 1 + %"$iter_nat_envload_956" = load { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }, { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }* %"$$fundef_91_env_iter_nat_955", align 8 %iter_nat = alloca { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }, align 8 - store { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } %"$iter_nat_envload_941", { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }* %iter_nat, align 8 - %"$$fundef_91_env_x0_942" = getelementptr inbounds %"$$fundef_91_env_146", %"$$fundef_91_env_146"* %0, i32 0, i32 2 - %"$x0_envload_943" = load %TName_Nat*, %TName_Nat** %"$$fundef_91_env_x0_942", align 8 + store { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } %"$iter_nat_envload_956", { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }* %iter_nat, align 8 + %"$$fundef_91_env_x0_957" = getelementptr inbounds %"$$fundef_91_env_146", %"$$fundef_91_env_146"* %0, i32 0, i32 2 + %"$x0_envload_958" = load %TName_Nat*, %TName_Nat** %"$$fundef_91_env_x0_957", align 8 %x0 = alloca %TName_Nat*, align 8 - store %TName_Nat* %"$x0_envload_943", %TName_Nat** %x0, align 8 + store %TName_Nat* %"$x0_envload_958", %TName_Nat** %x0, align 8 %"$retval_92" = alloca %TName_Nat*, align 8 - %"$gasrem_944" = load i64, i64* @_gasrem, align 8 - %"$gascmp_945" = icmp ugt i64 1, %"$gasrem_944" - br i1 %"$gascmp_945", label %"$out_of_gas_946", label %"$have_gas_947" + call void @llvm.dbg.declare(metadata %TName_Nat** %"$retval_92", metadata !16, metadata !DIExpression()), !dbg !17 + %"$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" -"$out_of_gas_946": ; preds = %entry +"$out_of_gas_961": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_947" + br label %"$have_gas_962" -"$have_gas_947": ; preds = %"$out_of_gas_946", %entry - %"$consume_948" = sub i64 %"$gasrem_944", 1 - store i64 %"$consume_948", i64* @_gasrem, align 8 +"$have_gas_962": ; preds = %"$out_of_gas_961", %entry + %"$consume_963" = sub i64 %"$gasrem_959", 1 + store i64 %"$consume_963", i64* @_gasrem, align 8 %"$iter_nat_23" = alloca { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }, align 8 - %"$iter_nat_949" = load { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }, { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }* %iter_nat, align 8 - %"$iter_nat_fptr_950" = extractvalue { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } %"$iter_nat_949", 0 - %"$iter_nat_envptr_951" = extractvalue { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } %"$iter_nat_949", 1 - %"$ack_952" = load { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %ack, align 8 - %"$iter_nat_call_953" = call { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$iter_nat_fptr_950"(i8* %"$iter_nat_envptr_951", { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$ack_952"), !dbg !10 - store { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$iter_nat_call_953", { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }* %"$iter_nat_23", align 8, !dbg !10 + %"$iter_nat_964" = load { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }, { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }* %iter_nat, align 8 + %"$iter_nat_fptr_965" = extractvalue { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } %"$iter_nat_964", 0 + %"$iter_nat_envptr_966" = extractvalue { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } %"$iter_nat_964", 1 + %"$ack_967" = load { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %ack, align 8 + %"$iter_nat_call_968" = call { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$iter_nat_fptr_965"(i8* %"$iter_nat_envptr_966", { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$ack_967"), !dbg !17 + store { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$iter_nat_call_968", { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }* %"$iter_nat_23", align 8, !dbg !17 %"$iter_nat_24" = alloca { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, align 8 - %"$$iter_nat_23_954" = load { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }* %"$iter_nat_23", align 8 - %"$$iter_nat_23_fptr_955" = extractvalue { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$$iter_nat_23_954", 0 - %"$$iter_nat_23_envptr_956" = extractvalue { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$$iter_nat_23_954", 1 - %"$$iter_nat_23_call_957" = call { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$$iter_nat_23_fptr_955"(i8* %"$$iter_nat_23_envptr_956", %TName_Nat* %1), !dbg !10 - store { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$$iter_nat_23_call_957", { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$iter_nat_24", align 8, !dbg !10 + %"$$iter_nat_23_969" = load { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }* %"$iter_nat_23", align 8 + %"$$iter_nat_23_fptr_970" = extractvalue { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$$iter_nat_23_969", 0 + %"$$iter_nat_23_envptr_971" = extractvalue { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$$iter_nat_23_969", 1 + %"$$iter_nat_23_call_972" = call { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$$iter_nat_23_fptr_970"(i8* %"$$iter_nat_23_envptr_971", %TName_Nat* %1), !dbg !17 + store { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$$iter_nat_23_call_972", { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$iter_nat_24", align 8, !dbg !17 %"$iter_nat_25" = alloca %TName_Nat*, align 8 - %"$$iter_nat_24_958" = load { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$iter_nat_24", align 8 - %"$$iter_nat_24_fptr_959" = extractvalue { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$$iter_nat_24_958", 0 - %"$$iter_nat_24_envptr_960" = extractvalue { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$$iter_nat_24_958", 1 - %"$x0_961" = load %TName_Nat*, %TName_Nat** %x0, align 8 - %"$$iter_nat_24_call_962" = call %TName_Nat* %"$$iter_nat_24_fptr_959"(i8* %"$$iter_nat_24_envptr_960", %TName_Nat* %"$x0_961"), !dbg !10 - store %TName_Nat* %"$$iter_nat_24_call_962", %TName_Nat** %"$iter_nat_25", align 8, !dbg !10 - %"$$iter_nat_25_963" = load %TName_Nat*, %TName_Nat** %"$iter_nat_25", align 8 - store %TName_Nat* %"$$iter_nat_25_963", %TName_Nat** %"$retval_92", align 8, !dbg !10 - %"$$retval_92_964" = load %TName_Nat*, %TName_Nat** %"$retval_92", align 8 - ret %TName_Nat* %"$$retval_92_964" + call void @llvm.dbg.declare(metadata %TName_Nat** %"$iter_nat_25", metadata !18, metadata !DIExpression()), !dbg !17 + %"$$iter_nat_24_973" = load { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$iter_nat_24", align 8 + %"$$iter_nat_24_fptr_974" = extractvalue { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$$iter_nat_24_973", 0 + %"$$iter_nat_24_envptr_975" = extractvalue { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$$iter_nat_24_973", 1 + %"$x0_976" = load %TName_Nat*, %TName_Nat** %x0, align 8 + %"$$iter_nat_24_call_977" = call %TName_Nat* %"$$iter_nat_24_fptr_974"(i8* %"$$iter_nat_24_envptr_975", %TName_Nat* %"$x0_976"), !dbg !17 + store %TName_Nat* %"$$iter_nat_24_call_977", %TName_Nat** %"$iter_nat_25", align 8, !dbg !17 + %"$$iter_nat_25_978" = load %TName_Nat*, %TName_Nat** %"$iter_nat_25", align 8 + store %TName_Nat* %"$$iter_nat_25_978", %TName_Nat** %"$retval_92", align 8, !dbg !17 + %"$$retval_92_979" = load %TName_Nat*, %TName_Nat** %"$retval_92", align 8 + ret %TName_Nat* %"$$retval_92_979" } -define internal { %TName_Nat* (i8*, %TName_Nat*)*, i8* } @"$fundef_89"(%"$$fundef_89_env_147"* %0, { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %1) !dbg !11 { +define internal { %TName_Nat* (i8*, %TName_Nat*)*, i8* } @"$fundef_89"(%"$$fundef_89_env_147"* %0, { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %1) !dbg !19 { entry: - %"$$fundef_89_env_iter_nat_904" = getelementptr inbounds %"$$fundef_89_env_147", %"$$fundef_89_env_147"* %0, i32 0, i32 0 - %"$iter_nat_envload_905" = load { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }, { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }* %"$$fundef_89_env_iter_nat_904", align 8 + %"$$fundef_89_env_iter_nat_919" = getelementptr inbounds %"$$fundef_89_env_147", %"$$fundef_89_env_147"* %0, i32 0, i32 0 + %"$iter_nat_envload_920" = load { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }, { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }* %"$$fundef_89_env_iter_nat_919", align 8 %iter_nat = alloca { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }, align 8 - store { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } %"$iter_nat_envload_905", { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }* %iter_nat, align 8 - %"$$fundef_89_env_one_906" = getelementptr inbounds %"$$fundef_89_env_147", %"$$fundef_89_env_147"* %0, i32 0, i32 1 - %"$one_envload_907" = load %TName_Nat*, %TName_Nat** %"$$fundef_89_env_one_906", align 8 + store { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } %"$iter_nat_envload_920", { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }* %iter_nat, align 8 + %"$$fundef_89_env_one_921" = getelementptr inbounds %"$$fundef_89_env_147", %"$$fundef_89_env_147"* %0, i32 0, i32 1 + %"$one_envload_922" = load %TName_Nat*, %TName_Nat** %"$$fundef_89_env_one_921", align 8 %one = alloca %TName_Nat*, align 8 - store %TName_Nat* %"$one_envload_907", %TName_Nat** %one, align 8 + store %TName_Nat* %"$one_envload_922", %TName_Nat** %one, align 8 %"$retval_90" = alloca { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, align 8 - %"$gasrem_908" = load i64, i64* @_gasrem, align 8 - %"$gascmp_909" = icmp ugt i64 1, %"$gasrem_908" - br i1 %"$gascmp_909", label %"$out_of_gas_910", label %"$have_gas_911" - -"$out_of_gas_910": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_911" - -"$have_gas_911": ; preds = %"$out_of_gas_910", %entry - %"$consume_912" = sub i64 %"$gasrem_908", 1 - store i64 %"$consume_912", i64* @_gasrem, align 8 - %x0 = alloca %TName_Nat*, 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_915": ; preds = %"$have_gas_911" - call void @_out_of_gas() - br label %"$have_gas_916" - -"$have_gas_916": ; preds = %"$out_of_gas_915", %"$have_gas_911" - %"$consume_917" = sub i64 %"$gasrem_913", 1 - store i64 %"$consume_917", i64* @_gasrem, align 8 - %"$ack_22" = alloca %TName_Nat*, align 8 - %"$ack_fptr_918" = extractvalue { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %1, 0 - %"$ack_envptr_919" = extractvalue { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %1, 1 - %"$one_920" = load %TName_Nat*, %TName_Nat** %one, align 8 - %"$ack_call_921" = call %TName_Nat* %"$ack_fptr_918"(i8* %"$ack_envptr_919", %TName_Nat* %"$one_920"), !dbg !12 - store %TName_Nat* %"$ack_call_921", %TName_Nat** %"$ack_22", align 8, !dbg !12 - %"$$ack_22_922" = load %TName_Nat*, %TName_Nat** %"$ack_22", align 8 - store %TName_Nat* %"$$ack_22_922", %TName_Nat** %x0, align 8, !dbg !12 %"$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_916" +"$out_of_gas_925": ; preds = %entry call void @_out_of_gas() br label %"$have_gas_926" -"$have_gas_926": ; preds = %"$out_of_gas_925", %"$have_gas_916" +"$have_gas_926": ; preds = %"$out_of_gas_925", %entry %"$consume_927" = sub i64 %"$gasrem_923", 1 store i64 %"$consume_927", i64* @_gasrem, align 8 - %"$$fundef_91_envp_928_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_91_envp_928_salloc" = call i8* @_salloc(i8* %"$$fundef_91_envp_928_load", i64 40) - %"$$fundef_91_envp_928" = bitcast i8* %"$$fundef_91_envp_928_salloc" to %"$$fundef_91_env_146"* - %"$$fundef_91_env_voidp_930" = bitcast %"$$fundef_91_env_146"* %"$$fundef_91_envp_928" to i8* - %"$$fundef_91_cloval_931" = insertvalue { %TName_Nat* (i8*, %TName_Nat*)*, i8* } { %TName_Nat* (i8*, %TName_Nat*)* bitcast (%TName_Nat* (%"$$fundef_91_env_146"*, %TName_Nat*)* @"$fundef_91" to %TName_Nat* (i8*, %TName_Nat*)*), i8* undef }, i8* %"$$fundef_91_env_voidp_930", 1 - %"$$fundef_91_env_ack_932" = getelementptr inbounds %"$$fundef_91_env_146", %"$$fundef_91_env_146"* %"$$fundef_91_envp_928", i32 0, i32 0 - store { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %1, { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$$fundef_91_env_ack_932", align 8 - %"$$fundef_91_env_iter_nat_933" = getelementptr inbounds %"$$fundef_91_env_146", %"$$fundef_91_env_146"* %"$$fundef_91_envp_928", i32 0, i32 1 - %"$iter_nat_934" = load { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }, { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }* %iter_nat, align 8 - store { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } %"$iter_nat_934", { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }* %"$$fundef_91_env_iter_nat_933", align 8 - %"$$fundef_91_env_x0_935" = getelementptr inbounds %"$$fundef_91_env_146", %"$$fundef_91_env_146"* %"$$fundef_91_envp_928", i32 0, i32 2 - %"$x0_936" = load %TName_Nat*, %TName_Nat** %x0, align 8 - store %TName_Nat* %"$x0_936", %TName_Nat** %"$$fundef_91_env_x0_935", align 8 - store { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$$fundef_91_cloval_931", { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$retval_90", align 8, !dbg !13 - %"$$retval_90_937" = load { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$retval_90", align 8 - ret { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$$retval_90_937" + %x0 = alloca %TName_Nat*, align 8 + call void @llvm.dbg.declare(metadata %TName_Nat** %x0, metadata !20, metadata !DIExpression()), !dbg !21 + %"$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 = %"$have_gas_926" + call void @_out_of_gas() + br label %"$have_gas_931" + +"$have_gas_931": ; preds = %"$out_of_gas_930", %"$have_gas_926" + %"$consume_932" = sub i64 %"$gasrem_928", 1 + store i64 %"$consume_932", i64* @_gasrem, align 8 + %"$ack_22" = alloca %TName_Nat*, align 8 + call void @llvm.dbg.declare(metadata %TName_Nat** %"$ack_22", metadata !22, metadata !DIExpression()), !dbg !23 + %"$ack_fptr_933" = extractvalue { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %1, 0 + %"$ack_envptr_934" = extractvalue { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %1, 1 + %"$one_935" = load %TName_Nat*, %TName_Nat** %one, align 8 + %"$ack_call_936" = call %TName_Nat* %"$ack_fptr_933"(i8* %"$ack_envptr_934", %TName_Nat* %"$one_935"), !dbg !23 + store %TName_Nat* %"$ack_call_936", %TName_Nat** %"$ack_22", align 8, !dbg !23 + %"$$ack_22_937" = load %TName_Nat*, %TName_Nat** %"$ack_22", align 8 + store %TName_Nat* %"$$ack_22_937", %TName_Nat** %x0, align 8, !dbg !23 + %"$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_931" + call void @_out_of_gas() + br label %"$have_gas_941" + +"$have_gas_941": ; preds = %"$out_of_gas_940", %"$have_gas_931" + %"$consume_942" = sub i64 %"$gasrem_938", 1 + store i64 %"$consume_942", i64* @_gasrem, align 8 + %"$$fundef_91_envp_943_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_91_envp_943_salloc" = call i8* @_salloc(i8* %"$$fundef_91_envp_943_load", i64 40) + %"$$fundef_91_envp_943" = bitcast i8* %"$$fundef_91_envp_943_salloc" to %"$$fundef_91_env_146"* + %"$$fundef_91_env_voidp_945" = bitcast %"$$fundef_91_env_146"* %"$$fundef_91_envp_943" to i8* + %"$$fundef_91_cloval_946" = insertvalue { %TName_Nat* (i8*, %TName_Nat*)*, i8* } { %TName_Nat* (i8*, %TName_Nat*)* bitcast (%TName_Nat* (%"$$fundef_91_env_146"*, %TName_Nat*)* @"$fundef_91" to %TName_Nat* (i8*, %TName_Nat*)*), i8* undef }, i8* %"$$fundef_91_env_voidp_945", 1 + %"$$fundef_91_env_ack_947" = getelementptr inbounds %"$$fundef_91_env_146", %"$$fundef_91_env_146"* %"$$fundef_91_envp_943", i32 0, i32 0 + store { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %1, { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$$fundef_91_env_ack_947", align 8 + %"$$fundef_91_env_iter_nat_948" = getelementptr inbounds %"$$fundef_91_env_146", %"$$fundef_91_env_146"* %"$$fundef_91_envp_943", i32 0, i32 1 + %"$iter_nat_949" = load { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }, { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }* %iter_nat, align 8 + store { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } %"$iter_nat_949", { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }* %"$$fundef_91_env_iter_nat_948", align 8 + %"$$fundef_91_env_x0_950" = getelementptr inbounds %"$$fundef_91_env_146", %"$$fundef_91_env_146"* %"$$fundef_91_envp_943", i32 0, i32 2 + %"$x0_951" = load %TName_Nat*, %TName_Nat** %x0, align 8 + store %TName_Nat* %"$x0_951", %TName_Nat** %"$$fundef_91_env_x0_950", align 8 + store { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$$fundef_91_cloval_946", { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$retval_90", align 8, !dbg !24 + %"$$retval_90_952" = load { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$retval_90", align 8 + ret { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$$retval_90_952" } -define internal %TName_Nat* @"$fundef_87"(%"$$fundef_87_env_148"* %0, %TName_Nat* %1) !dbg !14 { +define internal %TName_Nat* @"$fundef_87"(%"$$fundef_87_env_148"* %0, %TName_Nat* %1) !dbg !25 { entry: - %"$$fundef_87_env_f_888" = getelementptr inbounds %"$$fundef_87_env_148", %"$$fundef_87_env_148"* %0, i32 0, i32 0 - %"$f_envload_889" = load { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$$fundef_87_env_f_888", align 8 + %"$unused_918" = alloca %TName_Nat*, align 8 + store %TName_Nat* %1, %TName_Nat** %"$unused_918", align 8 + call void @llvm.dbg.declare(metadata %TName_Nat** %"$unused_918", metadata !26, metadata !DIExpression()), !dbg !27 + %"$$fundef_87_env_f_902" = getelementptr inbounds %"$$fundef_87_env_148", %"$$fundef_87_env_148"* %0, i32 0, i32 0 + %"$f_envload_903" = load { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$$fundef_87_env_f_902", align 8 %f = alloca { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, align 8 - store { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$f_envload_889", { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %f, align 8 - %"$$fundef_87_env_x_890" = getelementptr inbounds %"$$fundef_87_env_148", %"$$fundef_87_env_148"* %0, i32 0, i32 1 - %"$x_envload_891" = load %TName_Nat*, %TName_Nat** %"$$fundef_87_env_x_890", align 8 + store { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$f_envload_903", { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %f, align 8 + %"$$fundef_87_env_x_904" = getelementptr inbounds %"$$fundef_87_env_148", %"$$fundef_87_env_148"* %0, i32 0, i32 1 + %"$x_envload_905" = load %TName_Nat*, %TName_Nat** %"$$fundef_87_env_x_904", align 8 %x = alloca %TName_Nat*, align 8 - store %TName_Nat* %"$x_envload_891", %TName_Nat** %x, align 8 + store %TName_Nat* %"$x_envload_905", %TName_Nat** %x, align 8 %"$retval_88" = alloca %TName_Nat*, align 8 - %"$gasrem_892" = load i64, i64* @_gasrem, align 8 - %"$gascmp_893" = icmp ugt i64 1, %"$gasrem_892" - br i1 %"$gascmp_893", label %"$out_of_gas_894", label %"$have_gas_895" + call void @llvm.dbg.declare(metadata %TName_Nat** %"$retval_88", metadata !28, metadata !DIExpression()), !dbg !29 + %"$gasrem_906" = load i64, i64* @_gasrem, align 8 + %"$gascmp_907" = icmp ugt i64 1, %"$gasrem_906" + br i1 %"$gascmp_907", label %"$out_of_gas_908", label %"$have_gas_909" -"$out_of_gas_894": ; preds = %entry +"$out_of_gas_908": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_895" + br label %"$have_gas_909" -"$have_gas_895": ; preds = %"$out_of_gas_894", %entry - %"$consume_896" = sub i64 %"$gasrem_892", 1 - store i64 %"$consume_896", i64* @_gasrem, align 8 +"$have_gas_909": ; preds = %"$out_of_gas_908", %entry + %"$consume_910" = sub i64 %"$gasrem_906", 1 + store i64 %"$consume_910", i64* @_gasrem, align 8 %"$f_18" = alloca %TName_Nat*, align 8 - %"$f_897" = load { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %f, align 8 - %"$f_fptr_898" = extractvalue { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$f_897", 0 - %"$f_envptr_899" = extractvalue { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$f_897", 1 - %"$x_900" = load %TName_Nat*, %TName_Nat** %x, align 8 - %"$f_call_901" = call %TName_Nat* %"$f_fptr_898"(i8* %"$f_envptr_899", %TName_Nat* %"$x_900"), !dbg !15 - store %TName_Nat* %"$f_call_901", %TName_Nat** %"$f_18", align 8, !dbg !15 - %"$$f_18_902" = load %TName_Nat*, %TName_Nat** %"$f_18", align 8 - store %TName_Nat* %"$$f_18_902", %TName_Nat** %"$retval_88", align 8, !dbg !15 - %"$$retval_88_903" = load %TName_Nat*, %TName_Nat** %"$retval_88", align 8 - ret %TName_Nat* %"$$retval_88_903" + call void @llvm.dbg.declare(metadata %TName_Nat** %"$f_18", metadata !30, metadata !DIExpression()), !dbg !29 + %"$f_911" = load { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %f, align 8 + %"$f_fptr_912" = extractvalue { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$f_911", 0 + %"$f_envptr_913" = extractvalue { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$f_911", 1 + %"$x_914" = load %TName_Nat*, %TName_Nat** %x, align 8 + %"$f_call_915" = call %TName_Nat* %"$f_fptr_912"(i8* %"$f_envptr_913", %TName_Nat* %"$x_914"), !dbg !29 + store %TName_Nat* %"$f_call_915", %TName_Nat** %"$f_18", align 8, !dbg !29 + %"$$f_18_916" = load %TName_Nat*, %TName_Nat** %"$f_18", align 8 + store %TName_Nat* %"$$f_18_916", %TName_Nat** %"$retval_88", align 8, !dbg !29 + %"$$retval_88_917" = load %TName_Nat*, %TName_Nat** %"$retval_88", align 8 + ret %TName_Nat* %"$$retval_88_917" } -define internal { %TName_Nat* (i8*, %TName_Nat*)*, i8* } @"$fundef_85"(%"$$fundef_85_env_149"* %0, %TName_Nat* %1) !dbg !16 { +define internal { %TName_Nat* (i8*, %TName_Nat*)*, i8* } @"$fundef_85"(%"$$fundef_85_env_149"* %0, %TName_Nat* %1) !dbg !31 { entry: - %"$$fundef_85_env_f_873" = getelementptr inbounds %"$$fundef_85_env_149", %"$$fundef_85_env_149"* %0, i32 0, i32 0 - %"$f_envload_874" = load { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$$fundef_85_env_f_873", align 8 + %"$x_901" = alloca %TName_Nat*, align 8 + store %TName_Nat* %1, %TName_Nat** %"$x_901", align 8 + call void @llvm.dbg.declare(metadata %TName_Nat** %"$x_901", metadata !32, metadata !DIExpression()), !dbg !33 + %"$$fundef_85_env_f_886" = getelementptr inbounds %"$$fundef_85_env_149", %"$$fundef_85_env_149"* %0, i32 0, i32 0 + %"$f_envload_887" = load { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$$fundef_85_env_f_886", align 8 %f = alloca { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, align 8 - store { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$f_envload_874", { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %f, align 8 + store { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$f_envload_887", { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %f, align 8 %"$retval_86" = alloca { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, align 8 - %"$gasrem_875" = load i64, i64* @_gasrem, align 8 - %"$gascmp_876" = icmp ugt i64 1, %"$gasrem_875" - br i1 %"$gascmp_876", label %"$out_of_gas_877", label %"$have_gas_878" - -"$out_of_gas_877": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_878" - -"$have_gas_878": ; preds = %"$out_of_gas_877", %entry - %"$consume_879" = sub i64 %"$gasrem_875", 1 - store i64 %"$consume_879", i64* @_gasrem, align 8 - %"$$fundef_87_envp_880_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_87_envp_880_salloc" = call i8* @_salloc(i8* %"$$fundef_87_envp_880_load", i64 24) - %"$$fundef_87_envp_880" = bitcast i8* %"$$fundef_87_envp_880_salloc" to %"$$fundef_87_env_148"* - %"$$fundef_87_env_voidp_882" = bitcast %"$$fundef_87_env_148"* %"$$fundef_87_envp_880" to i8* - %"$$fundef_87_cloval_883" = insertvalue { %TName_Nat* (i8*, %TName_Nat*)*, i8* } { %TName_Nat* (i8*, %TName_Nat*)* bitcast (%TName_Nat* (%"$$fundef_87_env_148"*, %TName_Nat*)* @"$fundef_87" to %TName_Nat* (i8*, %TName_Nat*)*), i8* undef }, i8* %"$$fundef_87_env_voidp_882", 1 - %"$$fundef_87_env_f_884" = getelementptr inbounds %"$$fundef_87_env_148", %"$$fundef_87_env_148"* %"$$fundef_87_envp_880", i32 0, i32 0 - %"$f_885" = load { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %f, align 8 - store { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$f_885", { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$$fundef_87_env_f_884", align 8 - %"$$fundef_87_env_x_886" = getelementptr inbounds %"$$fundef_87_env_148", %"$$fundef_87_env_148"* %"$$fundef_87_envp_880", i32 0, i32 1 - store %TName_Nat* %1, %TName_Nat** %"$$fundef_87_env_x_886", align 8 - store { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$$fundef_87_cloval_883", { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$retval_86", align 8, !dbg !17 - %"$$retval_86_887" = load { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$retval_86", align 8 - ret { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$$retval_86_887" + %"$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 = %entry + call void @_out_of_gas() + br label %"$have_gas_891" + +"$have_gas_891": ; preds = %"$out_of_gas_890", %entry + %"$consume_892" = sub i64 %"$gasrem_888", 1 + store i64 %"$consume_892", i64* @_gasrem, align 8 + %"$$fundef_87_envp_893_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_87_envp_893_salloc" = call i8* @_salloc(i8* %"$$fundef_87_envp_893_load", i64 24) + %"$$fundef_87_envp_893" = bitcast i8* %"$$fundef_87_envp_893_salloc" to %"$$fundef_87_env_148"* + %"$$fundef_87_env_voidp_895" = bitcast %"$$fundef_87_env_148"* %"$$fundef_87_envp_893" to i8* + %"$$fundef_87_cloval_896" = insertvalue { %TName_Nat* (i8*, %TName_Nat*)*, i8* } { %TName_Nat* (i8*, %TName_Nat*)* bitcast (%TName_Nat* (%"$$fundef_87_env_148"*, %TName_Nat*)* @"$fundef_87" to %TName_Nat* (i8*, %TName_Nat*)*), i8* undef }, i8* %"$$fundef_87_env_voidp_895", 1 + %"$$fundef_87_env_f_897" = getelementptr inbounds %"$$fundef_87_env_148", %"$$fundef_87_env_148"* %"$$fundef_87_envp_893", i32 0, i32 0 + %"$f_898" = load { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %f, align 8 + store { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$f_898", { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$$fundef_87_env_f_897", align 8 + %"$$fundef_87_env_x_899" = getelementptr inbounds %"$$fundef_87_env_148", %"$$fundef_87_env_148"* %"$$fundef_87_envp_893", i32 0, i32 1 + store %TName_Nat* %1, %TName_Nat** %"$$fundef_87_env_x_899", align 8 + store { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$$fundef_87_cloval_896", { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$retval_86", align 8, !dbg !34 + %"$$retval_86_900" = load { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$retval_86", align 8 + ret { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$$retval_86_900" } -define internal %TName_Nat* @"$fundef_83"(%"$$fundef_83_env_150"* %0, %TName_Nat* %1) !dbg !18 { +define internal %TName_Nat* @"$fundef_83"(%"$$fundef_83_env_150"* %0, %TName_Nat* %1) !dbg !35 { entry: - %"$$fundef_83_env_f_813" = getelementptr inbounds %"$$fundef_83_env_150", %"$$fundef_83_env_150"* %0, i32 0, i32 0 - %"$f_envload_814" = load { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$$fundef_83_env_f_813", align 8 + %"$x0_885" = alloca %TName_Nat*, align 8 + store %TName_Nat* %1, %TName_Nat** %"$x0_885", align 8 + call void @llvm.dbg.declare(metadata %TName_Nat** %"$x0_885", metadata !36, metadata !DIExpression()), !dbg !37 + %"$$fundef_83_env_f_825" = getelementptr inbounds %"$$fundef_83_env_150", %"$$fundef_83_env_150"* %0, i32 0, i32 0 + %"$f_envload_826" = load { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$$fundef_83_env_f_825", align 8 %f = alloca { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, align 8 - store { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$f_envload_814", { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %f, align 8 - %"$$fundef_83_env_n_815" = getelementptr inbounds %"$$fundef_83_env_150", %"$$fundef_83_env_150"* %0, i32 0, i32 1 - %"$n_envload_816" = load %TName_Nat*, %TName_Nat** %"$$fundef_83_env_n_815", align 8 + store { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$f_envload_826", { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %f, align 8 + %"$$fundef_83_env_n_827" = getelementptr inbounds %"$$fundef_83_env_150", %"$$fundef_83_env_150"* %0, i32 0, i32 1 + %"$n_envload_828" = load %TName_Nat*, %TName_Nat** %"$$fundef_83_env_n_827", align 8 %n = alloca %TName_Nat*, align 8 - store %TName_Nat* %"$n_envload_816", %TName_Nat** %n, align 8 - %"$$fundef_83_env_nat_fold_817" = getelementptr inbounds %"$$fundef_83_env_150", %"$$fundef_83_env_150"* %0, i32 0, i32 2 - %"$nat_fold_envload_818" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_83_env_nat_fold_817", align 8 + store %TName_Nat* %"$n_envload_828", %TName_Nat** %n, align 8 + %"$$fundef_83_env_nat_fold_829" = getelementptr inbounds %"$$fundef_83_env_150", %"$$fundef_83_env_150"* %0, i32 0, i32 2 + %"$nat_fold_envload_830" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_83_env_nat_fold_829", align 8 %nat_fold = alloca { i8*, i8* }*, align 8 - store { i8*, i8* }* %"$nat_fold_envload_818", { i8*, i8* }** %nat_fold, align 8 + store { i8*, i8* }* %"$nat_fold_envload_830", { i8*, i8* }** %nat_fold, align 8 %"$retval_84" = alloca %TName_Nat*, align 8 - %"$gasrem_819" = load i64, i64* @_gasrem, align 8 - %"$gascmp_820" = icmp ugt i64 1, %"$gasrem_819" - br i1 %"$gascmp_820", label %"$out_of_gas_821", label %"$have_gas_822" + call void @llvm.dbg.declare(metadata %TName_Nat** %"$retval_84", metadata !38, metadata !DIExpression()), !dbg !39 + %"$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_821": ; preds = %entry +"$out_of_gas_833": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_822" + br label %"$have_gas_834" -"$have_gas_822": ; preds = %"$out_of_gas_821", %entry - %"$consume_823" = sub i64 %"$gasrem_819", 1 - store i64 %"$consume_823", i64* @_gasrem, align 8 +"$have_gas_834": ; preds = %"$out_of_gas_833", %entry + %"$consume_835" = sub i64 %"$gasrem_831", 1 + store i64 %"$consume_835", i64* @_gasrem, align 8 %folder = alloca { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* })*, i8* }, align 8 - %"$gasrem_824" = load i64, i64* @_gasrem, align 8 - %"$gascmp_825" = icmp ugt i64 1, %"$gasrem_824" - br i1 %"$gascmp_825", label %"$out_of_gas_826", label %"$have_gas_827" - -"$out_of_gas_826": ; preds = %"$have_gas_822" - call void @_out_of_gas() - br label %"$have_gas_827" - -"$have_gas_827": ; preds = %"$out_of_gas_826", %"$have_gas_822" - %"$consume_828" = sub i64 %"$gasrem_824", 1 - store i64 %"$consume_828", i64* @_gasrem, align 8 - %"$nat_fold_829" = load { i8*, i8* }*, { i8*, i8* }** %nat_fold, align 8 - %"$nat_fold_830" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$nat_fold_829", i32 2 - %"$nat_fold_831" = bitcast { i8*, i8* }* %"$nat_fold_830" to { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*)*, i8* }* - %"$nat_fold_832" = load { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*)*, i8* }, { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*)*, i8* }* %"$nat_fold_831", align 8 - %"$nat_fold_fptr_833" = extractvalue { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*)*, i8* } %"$nat_fold_832", 0 - %"$nat_fold_envptr_834" = extractvalue { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*)*, i8* } %"$nat_fold_832", 1 - %"$nat_fold_call_835" = call { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* })*, i8* } %"$nat_fold_fptr_833"(i8* %"$nat_fold_envptr_834"), !dbg !19 - store { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* })*, i8* } %"$nat_fold_call_835", { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* })*, i8* }* %folder, align 8, !dbg !20 %"$gasrem_836" = load i64, i64* @_gasrem, align 8 %"$gascmp_837" = icmp ugt i64 1, %"$gasrem_836" br i1 %"$gascmp_837", label %"$out_of_gas_838", label %"$have_gas_839" -"$out_of_gas_838": ; preds = %"$have_gas_827" +"$out_of_gas_838": ; preds = %"$have_gas_834" call void @_out_of_gas() br label %"$have_gas_839" -"$have_gas_839": ; preds = %"$out_of_gas_838", %"$have_gas_827" +"$have_gas_839": ; preds = %"$out_of_gas_838", %"$have_gas_834" %"$consume_840" = sub i64 %"$gasrem_836", 1 store i64 %"$consume_840", i64* @_gasrem, align 8 + %"$nat_fold_841" = load { i8*, i8* }*, { i8*, i8* }** %nat_fold, align 8 + %"$nat_fold_842" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$nat_fold_841", i32 2 + %"$nat_fold_843" = bitcast { i8*, i8* }* %"$nat_fold_842" to { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*)*, i8* }* + %"$nat_fold_844" = load { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*)*, i8* }, { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*)*, i8* }* %"$nat_fold_843", align 8 + %"$nat_fold_fptr_845" = extractvalue { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*)*, i8* } %"$nat_fold_844", 0 + %"$nat_fold_envptr_846" = extractvalue { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*)*, i8* } %"$nat_fold_844", 1 + %"$nat_fold_call_847" = call { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* })*, i8* } %"$nat_fold_fptr_845"(i8* %"$nat_fold_envptr_846"), !dbg !40 + store { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* })*, i8* } %"$nat_fold_call_847", { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* })*, i8* }* %folder, align 8, !dbg !41 + %"$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 = %"$have_gas_839" + call void @_out_of_gas() + br label %"$have_gas_851" + +"$have_gas_851": ; preds = %"$out_of_gas_850", %"$have_gas_839" + %"$consume_852" = sub i64 %"$gasrem_848", 1 + store i64 %"$consume_852", i64* @_gasrem, align 8 %step = alloca { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }, 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_839" - call void @_out_of_gas() - br label %"$have_gas_844" - -"$have_gas_844": ; preds = %"$out_of_gas_843", %"$have_gas_839" - %"$consume_845" = sub i64 %"$gasrem_841", 1 - store i64 %"$consume_845", i64* @_gasrem, align 8 - %"$$fundef_85_envp_846_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_85_envp_846_salloc" = call i8* @_salloc(i8* %"$$fundef_85_envp_846_load", i64 16) - %"$$fundef_85_envp_846" = bitcast i8* %"$$fundef_85_envp_846_salloc" to %"$$fundef_85_env_149"* - %"$$fundef_85_env_voidp_848" = bitcast %"$$fundef_85_env_149"* %"$$fundef_85_envp_846" to i8* - %"$$fundef_85_cloval_849" = insertvalue { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)* bitcast ({ %TName_Nat* (i8*, %TName_Nat*)*, i8* } (%"$$fundef_85_env_149"*, %TName_Nat*)* @"$fundef_85" to { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*), i8* undef }, i8* %"$$fundef_85_env_voidp_848", 1 - %"$$fundef_85_env_f_850" = getelementptr inbounds %"$$fundef_85_env_149", %"$$fundef_85_env_149"* %"$$fundef_85_envp_846", i32 0, i32 0 - %"$f_851" = load { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %f, align 8 - store { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$f_851", { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$$fundef_85_env_f_850", align 8 - store { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$$fundef_85_cloval_849", { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }* %step, align 8, !dbg !21 - %"$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_844" - call void @_out_of_gas() - br label %"$have_gas_855" - -"$have_gas_855": ; preds = %"$out_of_gas_854", %"$have_gas_844" - %"$consume_856" = sub i64 %"$gasrem_852", 1 - store i64 %"$consume_856", i64* @_gasrem, align 8 + %"$gasrem_853" = load i64, i64* @_gasrem, align 8 + %"$gascmp_854" = icmp ugt i64 1, %"$gasrem_853" + br i1 %"$gascmp_854", label %"$out_of_gas_855", label %"$have_gas_856" + +"$out_of_gas_855": ; preds = %"$have_gas_851" + call void @_out_of_gas() + br label %"$have_gas_856" + +"$have_gas_856": ; preds = %"$out_of_gas_855", %"$have_gas_851" + %"$consume_857" = sub i64 %"$gasrem_853", 1 + store i64 %"$consume_857", i64* @_gasrem, align 8 + %"$$fundef_85_envp_858_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_85_envp_858_salloc" = call i8* @_salloc(i8* %"$$fundef_85_envp_858_load", i64 16) + %"$$fundef_85_envp_858" = bitcast i8* %"$$fundef_85_envp_858_salloc" to %"$$fundef_85_env_149"* + %"$$fundef_85_env_voidp_860" = bitcast %"$$fundef_85_env_149"* %"$$fundef_85_envp_858" to i8* + %"$$fundef_85_cloval_861" = insertvalue { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)* bitcast ({ %TName_Nat* (i8*, %TName_Nat*)*, i8* } (%"$$fundef_85_env_149"*, %TName_Nat*)* @"$fundef_85" to { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*), i8* undef }, i8* %"$$fundef_85_env_voidp_860", 1 + %"$$fundef_85_env_f_862" = getelementptr inbounds %"$$fundef_85_env_149", %"$$fundef_85_env_149"* %"$$fundef_85_envp_858", i32 0, i32 0 + %"$f_863" = load { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %f, align 8 + store { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$f_863", { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$$fundef_85_env_f_862", align 8 + store { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$$fundef_85_cloval_861", { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }* %step, align 8, !dbg !42 + %"$gasrem_864" = load i64, i64* @_gasrem, align 8 + %"$gascmp_865" = icmp ugt i64 1, %"$gasrem_864" + br i1 %"$gascmp_865", label %"$out_of_gas_866", label %"$have_gas_867" + +"$out_of_gas_866": ; preds = %"$have_gas_856" + call void @_out_of_gas() + br label %"$have_gas_867" + +"$have_gas_867": ; preds = %"$out_of_gas_866", %"$have_gas_856" + %"$consume_868" = sub i64 %"$gasrem_864", 1 + store i64 %"$consume_868", i64* @_gasrem, align 8 %"$folder_19" = alloca { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }, align 8 - %"$folder_857" = load { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* })*, i8* }, { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* })*, i8* }* %folder, align 8 - %"$folder_fptr_858" = extractvalue { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* })*, i8* } %"$folder_857", 0 - %"$folder_envptr_859" = extractvalue { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* })*, i8* } %"$folder_857", 1 - %"$step_860" = load { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }* %step, align 8 - %"$folder_call_861" = call { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$folder_fptr_858"(i8* %"$folder_envptr_859", { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$step_860"), !dbg !22 - store { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$folder_call_861", { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }* %"$folder_19", align 8, !dbg !22 + %"$folder_869" = load { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* })*, i8* }, { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* })*, i8* }* %folder, align 8 + %"$folder_fptr_870" = extractvalue { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* })*, i8* } %"$folder_869", 0 + %"$folder_envptr_871" = extractvalue { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* })*, i8* } %"$folder_869", 1 + %"$step_872" = load { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }* %step, align 8 + %"$folder_call_873" = call { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$folder_fptr_870"(i8* %"$folder_envptr_871", { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$step_872"), !dbg !43 + store { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$folder_call_873", { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }* %"$folder_19", align 8, !dbg !43 %"$folder_20" = alloca { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, align 8 - %"$$folder_19_862" = load { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }* %"$folder_19", align 8 - %"$$folder_19_fptr_863" = extractvalue { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$$folder_19_862", 0 - %"$$folder_19_envptr_864" = extractvalue { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$$folder_19_862", 1 - %"$$folder_19_call_865" = call { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$$folder_19_fptr_863"(i8* %"$$folder_19_envptr_864", %TName_Nat* %1), !dbg !22 - store { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$$folder_19_call_865", { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$folder_20", align 8, !dbg !22 + %"$$folder_19_874" = load { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }* %"$folder_19", align 8 + %"$$folder_19_fptr_875" = extractvalue { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$$folder_19_874", 0 + %"$$folder_19_envptr_876" = extractvalue { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$$folder_19_874", 1 + %"$$folder_19_call_877" = call { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$$folder_19_fptr_875"(i8* %"$$folder_19_envptr_876", %TName_Nat* %1), !dbg !43 + store { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$$folder_19_call_877", { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$folder_20", align 8, !dbg !43 %"$folder_21" = alloca %TName_Nat*, align 8 - %"$$folder_20_866" = load { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$folder_20", align 8 - %"$$folder_20_fptr_867" = extractvalue { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$$folder_20_866", 0 - %"$$folder_20_envptr_868" = extractvalue { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$$folder_20_866", 1 - %"$n_869" = load %TName_Nat*, %TName_Nat** %n, align 8 - %"$$folder_20_call_870" = call %TName_Nat* %"$$folder_20_fptr_867"(i8* %"$$folder_20_envptr_868", %TName_Nat* %"$n_869"), !dbg !22 - store %TName_Nat* %"$$folder_20_call_870", %TName_Nat** %"$folder_21", align 8, !dbg !22 - %"$$folder_21_871" = load %TName_Nat*, %TName_Nat** %"$folder_21", align 8 - store %TName_Nat* %"$$folder_21_871", %TName_Nat** %"$retval_84", align 8, !dbg !22 - %"$$retval_84_872" = load %TName_Nat*, %TName_Nat** %"$retval_84", align 8 - ret %TName_Nat* %"$$retval_84_872" + call void @llvm.dbg.declare(metadata %TName_Nat** %"$folder_21", metadata !44, metadata !DIExpression()), !dbg !43 + %"$$folder_20_878" = load { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$folder_20", align 8 + %"$$folder_20_fptr_879" = extractvalue { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$$folder_20_878", 0 + %"$$folder_20_envptr_880" = extractvalue { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$$folder_20_878", 1 + %"$n_881" = load %TName_Nat*, %TName_Nat** %n, align 8 + %"$$folder_20_call_882" = call %TName_Nat* %"$$folder_20_fptr_879"(i8* %"$$folder_20_envptr_880", %TName_Nat* %"$n_881"), !dbg !43 + store %TName_Nat* %"$$folder_20_call_882", %TName_Nat** %"$folder_21", align 8, !dbg !43 + %"$$folder_21_883" = load %TName_Nat*, %TName_Nat** %"$folder_21", align 8 + store %TName_Nat* %"$$folder_21_883", %TName_Nat** %"$retval_84", align 8, !dbg !43 + %"$$retval_84_884" = load %TName_Nat*, %TName_Nat** %"$retval_84", align 8 + ret %TName_Nat* %"$$retval_84_884" } -define internal { %TName_Nat* (i8*, %TName_Nat*)*, i8* } @"$fundef_81"(%"$$fundef_81_env_151"* %0, %TName_Nat* %1) !dbg !23 { +define internal { %TName_Nat* (i8*, %TName_Nat*)*, i8* } @"$fundef_81"(%"$$fundef_81_env_151"* %0, %TName_Nat* %1) !dbg !45 { entry: - %"$$fundef_81_env_f_794" = getelementptr inbounds %"$$fundef_81_env_151", %"$$fundef_81_env_151"* %0, i32 0, i32 0 - %"$f_envload_795" = load { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$$fundef_81_env_f_794", align 8 + %"$n_824" = alloca %TName_Nat*, align 8 + store %TName_Nat* %1, %TName_Nat** %"$n_824", align 8 + call void @llvm.dbg.declare(metadata %TName_Nat** %"$n_824", metadata !46, metadata !DIExpression()), !dbg !47 + %"$$fundef_81_env_f_805" = getelementptr inbounds %"$$fundef_81_env_151", %"$$fundef_81_env_151"* %0, i32 0, i32 0 + %"$f_envload_806" = load { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$$fundef_81_env_f_805", align 8 %f = alloca { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, align 8 - store { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$f_envload_795", { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %f, align 8 - %"$$fundef_81_env_nat_fold_796" = getelementptr inbounds %"$$fundef_81_env_151", %"$$fundef_81_env_151"* %0, i32 0, i32 1 - %"$nat_fold_envload_797" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_81_env_nat_fold_796", align 8 + store { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$f_envload_806", { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %f, align 8 + %"$$fundef_81_env_nat_fold_807" = getelementptr inbounds %"$$fundef_81_env_151", %"$$fundef_81_env_151"* %0, i32 0, i32 1 + %"$nat_fold_envload_808" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_81_env_nat_fold_807", align 8 %nat_fold = alloca { i8*, i8* }*, align 8 - store { i8*, i8* }* %"$nat_fold_envload_797", { i8*, i8* }** %nat_fold, align 8 + store { i8*, i8* }* %"$nat_fold_envload_808", { i8*, i8* }** %nat_fold, align 8 %"$retval_82" = alloca { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, 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_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", 1 - store i64 %"$consume_802", i64* @_gasrem, align 8 - %"$$fundef_83_envp_803_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_83_envp_803_salloc" = call i8* @_salloc(i8* %"$$fundef_83_envp_803_load", i64 32) - %"$$fundef_83_envp_803" = bitcast i8* %"$$fundef_83_envp_803_salloc" to %"$$fundef_83_env_150"* - %"$$fundef_83_env_voidp_805" = bitcast %"$$fundef_83_env_150"* %"$$fundef_83_envp_803" to i8* - %"$$fundef_83_cloval_806" = insertvalue { %TName_Nat* (i8*, %TName_Nat*)*, i8* } { %TName_Nat* (i8*, %TName_Nat*)* bitcast (%TName_Nat* (%"$$fundef_83_env_150"*, %TName_Nat*)* @"$fundef_83" to %TName_Nat* (i8*, %TName_Nat*)*), i8* undef }, i8* %"$$fundef_83_env_voidp_805", 1 - %"$$fundef_83_env_f_807" = getelementptr inbounds %"$$fundef_83_env_150", %"$$fundef_83_env_150"* %"$$fundef_83_envp_803", i32 0, i32 0 - %"$f_808" = load { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %f, align 8 - store { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$f_808", { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$$fundef_83_env_f_807", align 8 - %"$$fundef_83_env_n_809" = getelementptr inbounds %"$$fundef_83_env_150", %"$$fundef_83_env_150"* %"$$fundef_83_envp_803", i32 0, i32 1 - store %TName_Nat* %1, %TName_Nat** %"$$fundef_83_env_n_809", align 8 - %"$$fundef_83_env_nat_fold_810" = getelementptr inbounds %"$$fundef_83_env_150", %"$$fundef_83_env_150"* %"$$fundef_83_envp_803", i32 0, i32 2 - %"$nat_fold_811" = load { i8*, i8* }*, { i8*, i8* }** %nat_fold, align 8 - store { i8*, i8* }* %"$nat_fold_811", { i8*, i8* }** %"$$fundef_83_env_nat_fold_810", align 8 - store { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$$fundef_83_cloval_806", { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$retval_82", align 8, !dbg !24 - %"$$retval_82_812" = load { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$retval_82", align 8 - ret { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$$retval_82_812" + %"$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 = %entry + call void @_out_of_gas() + br label %"$have_gas_812" + +"$have_gas_812": ; preds = %"$out_of_gas_811", %entry + %"$consume_813" = sub i64 %"$gasrem_809", 1 + store i64 %"$consume_813", i64* @_gasrem, align 8 + %"$$fundef_83_envp_814_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_83_envp_814_salloc" = call i8* @_salloc(i8* %"$$fundef_83_envp_814_load", i64 32) + %"$$fundef_83_envp_814" = bitcast i8* %"$$fundef_83_envp_814_salloc" to %"$$fundef_83_env_150"* + %"$$fundef_83_env_voidp_816" = bitcast %"$$fundef_83_env_150"* %"$$fundef_83_envp_814" to i8* + %"$$fundef_83_cloval_817" = insertvalue { %TName_Nat* (i8*, %TName_Nat*)*, i8* } { %TName_Nat* (i8*, %TName_Nat*)* bitcast (%TName_Nat* (%"$$fundef_83_env_150"*, %TName_Nat*)* @"$fundef_83" to %TName_Nat* (i8*, %TName_Nat*)*), i8* undef }, i8* %"$$fundef_83_env_voidp_816", 1 + %"$$fundef_83_env_f_818" = getelementptr inbounds %"$$fundef_83_env_150", %"$$fundef_83_env_150"* %"$$fundef_83_envp_814", i32 0, i32 0 + %"$f_819" = load { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %f, align 8 + store { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$f_819", { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$$fundef_83_env_f_818", align 8 + %"$$fundef_83_env_n_820" = getelementptr inbounds %"$$fundef_83_env_150", %"$$fundef_83_env_150"* %"$$fundef_83_envp_814", i32 0, i32 1 + store %TName_Nat* %1, %TName_Nat** %"$$fundef_83_env_n_820", align 8 + %"$$fundef_83_env_nat_fold_821" = getelementptr inbounds %"$$fundef_83_env_150", %"$$fundef_83_env_150"* %"$$fundef_83_envp_814", i32 0, i32 2 + %"$nat_fold_822" = load { i8*, i8* }*, { i8*, i8* }** %nat_fold, align 8 + store { i8*, i8* }* %"$nat_fold_822", { i8*, i8* }** %"$$fundef_83_env_nat_fold_821", align 8 + store { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$$fundef_83_cloval_817", { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$retval_82", align 8, !dbg !48 + %"$$retval_82_823" = load { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$retval_82", align 8 + ret { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$$retval_82_823" } -define internal { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } @"$fundef_79"(%"$$fundef_79_env_152"* %0, { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %1) !dbg !25 { +define internal { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } @"$fundef_79"(%"$$fundef_79_env_152"* %0, { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %1) !dbg !49 { entry: - %"$$fundef_79_env_nat_fold_779" = getelementptr inbounds %"$$fundef_79_env_152", %"$$fundef_79_env_152"* %0, i32 0, i32 0 - %"$nat_fold_envload_780" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_79_env_nat_fold_779", align 8 + %"$$fundef_79_env_nat_fold_790" = getelementptr inbounds %"$$fundef_79_env_152", %"$$fundef_79_env_152"* %0, i32 0, i32 0 + %"$nat_fold_envload_791" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_79_env_nat_fold_790", align 8 %nat_fold = alloca { i8*, i8* }*, align 8 - store { i8*, i8* }* %"$nat_fold_envload_780", { i8*, i8* }** %nat_fold, align 8 + store { i8*, i8* }* %"$nat_fold_envload_791", { i8*, i8* }** %nat_fold, align 8 %"$retval_80" = alloca { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, 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_81_envp_786_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_81_envp_786_salloc" = call i8* @_salloc(i8* %"$$fundef_81_envp_786_load", i64 24) - %"$$fundef_81_envp_786" = bitcast i8* %"$$fundef_81_envp_786_salloc" to %"$$fundef_81_env_151"* - %"$$fundef_81_env_voidp_788" = bitcast %"$$fundef_81_env_151"* %"$$fundef_81_envp_786" to i8* - %"$$fundef_81_cloval_789" = insertvalue { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)* bitcast ({ %TName_Nat* (i8*, %TName_Nat*)*, i8* } (%"$$fundef_81_env_151"*, %TName_Nat*)* @"$fundef_81" to { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*), i8* undef }, i8* %"$$fundef_81_env_voidp_788", 1 - %"$$fundef_81_env_f_790" = getelementptr inbounds %"$$fundef_81_env_151", %"$$fundef_81_env_151"* %"$$fundef_81_envp_786", i32 0, i32 0 - store { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %1, { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$$fundef_81_env_f_790", align 8 - %"$$fundef_81_env_nat_fold_791" = getelementptr inbounds %"$$fundef_81_env_151", %"$$fundef_81_env_151"* %"$$fundef_81_envp_786", i32 0, i32 1 - %"$nat_fold_792" = load { i8*, i8* }*, { i8*, i8* }** %nat_fold, align 8 - store { i8*, i8* }* %"$nat_fold_792", { i8*, i8* }** %"$$fundef_81_env_nat_fold_791", align 8 - store { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$$fundef_81_cloval_789", { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }* %"$retval_80", align 8, !dbg !26 - %"$$retval_80_793" = load { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }* %"$retval_80", align 8 - ret { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$$retval_80_793" + %"$gasrem_792" = load i64, i64* @_gasrem, align 8 + %"$gascmp_793" = icmp ugt i64 1, %"$gasrem_792" + br i1 %"$gascmp_793", label %"$out_of_gas_794", label %"$have_gas_795" + +"$out_of_gas_794": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_795" + +"$have_gas_795": ; preds = %"$out_of_gas_794", %entry + %"$consume_796" = sub i64 %"$gasrem_792", 1 + store i64 %"$consume_796", i64* @_gasrem, align 8 + %"$$fundef_81_envp_797_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_81_envp_797_salloc" = call i8* @_salloc(i8* %"$$fundef_81_envp_797_load", i64 24) + %"$$fundef_81_envp_797" = bitcast i8* %"$$fundef_81_envp_797_salloc" to %"$$fundef_81_env_151"* + %"$$fundef_81_env_voidp_799" = bitcast %"$$fundef_81_env_151"* %"$$fundef_81_envp_797" to i8* + %"$$fundef_81_cloval_800" = insertvalue { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)* bitcast ({ %TName_Nat* (i8*, %TName_Nat*)*, i8* } (%"$$fundef_81_env_151"*, %TName_Nat*)* @"$fundef_81" to { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*), i8* undef }, i8* %"$$fundef_81_env_voidp_799", 1 + %"$$fundef_81_env_f_801" = getelementptr inbounds %"$$fundef_81_env_151", %"$$fundef_81_env_151"* %"$$fundef_81_envp_797", i32 0, i32 0 + store { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %1, { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$$fundef_81_env_f_801", align 8 + %"$$fundef_81_env_nat_fold_802" = getelementptr inbounds %"$$fundef_81_env_151", %"$$fundef_81_env_151"* %"$$fundef_81_envp_797", i32 0, i32 1 + %"$nat_fold_803" = load { i8*, i8* }*, { i8*, i8* }** %nat_fold, align 8 + store { i8*, i8* }* %"$nat_fold_803", { i8*, i8* }** %"$$fundef_81_env_nat_fold_802", align 8 + store { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$$fundef_81_cloval_800", { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }* %"$retval_80", align 8, !dbg !50 + %"$$retval_80_804" = load { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }* %"$retval_80", align 8 + ret { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$$retval_80_804" } -define internal { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } @"$fundef_77"(%"$$fundef_77_env_153"* %0) !dbg !27 { +define internal { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } @"$fundef_77"(%"$$fundef_77_env_153"* %0) !dbg !51 { entry: - %"$$fundef_77_env_nat_fold_765" = getelementptr inbounds %"$$fundef_77_env_153", %"$$fundef_77_env_153"* %0, i32 0, i32 0 - %"$nat_fold_envload_766" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_77_env_nat_fold_765", align 8 + %"$$fundef_77_env_nat_fold_776" = getelementptr inbounds %"$$fundef_77_env_153", %"$$fundef_77_env_153"* %0, i32 0, i32 0 + %"$nat_fold_envload_777" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_77_env_nat_fold_776", align 8 %nat_fold = alloca { i8*, i8* }*, align 8 - store { i8*, i8* }* %"$nat_fold_envload_766", { i8*, i8* }** %nat_fold, align 8 + store { i8*, i8* }* %"$nat_fold_envload_777", { i8*, i8* }** %nat_fold, align 8 %"$retval_78" = alloca { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, 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_79_envp_772_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_79_envp_772_salloc" = call i8* @_salloc(i8* %"$$fundef_79_envp_772_load", i64 8) - %"$$fundef_79_envp_772" = bitcast i8* %"$$fundef_79_envp_772_salloc" to %"$$fundef_79_env_152"* - %"$$fundef_79_env_voidp_774" = bitcast %"$$fundef_79_env_152"* %"$$fundef_79_envp_772" to i8* - %"$$fundef_79_cloval_775" = insertvalue { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })* bitcast ({ { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (%"$$fundef_79_env_152"*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })* @"$fundef_79" to { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*), i8* undef }, i8* %"$$fundef_79_env_voidp_774", 1 - %"$$fundef_79_env_nat_fold_776" = getelementptr inbounds %"$$fundef_79_env_152", %"$$fundef_79_env_152"* %"$$fundef_79_envp_772", i32 0, i32 0 - %"$nat_fold_777" = load { i8*, i8* }*, { i8*, i8* }** %nat_fold, align 8 - store { i8*, i8* }* %"$nat_fold_777", { i8*, i8* }** %"$$fundef_79_env_nat_fold_776", align 8 - store { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } %"$$fundef_79_cloval_775", { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }* %"$retval_78", align 8, !dbg !28 - %"$$retval_78_778" = load { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }, { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }* %"$retval_78", align 8 - ret { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } %"$$retval_78_778" + %"$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 = %entry + call void @_out_of_gas() + br label %"$have_gas_781" + +"$have_gas_781": ; preds = %"$out_of_gas_780", %entry + %"$consume_782" = sub i64 %"$gasrem_778", 1 + store i64 %"$consume_782", i64* @_gasrem, align 8 + %"$$fundef_79_envp_783_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_79_envp_783_salloc" = call i8* @_salloc(i8* %"$$fundef_79_envp_783_load", i64 8) + %"$$fundef_79_envp_783" = bitcast i8* %"$$fundef_79_envp_783_salloc" to %"$$fundef_79_env_152"* + %"$$fundef_79_env_voidp_785" = bitcast %"$$fundef_79_env_152"* %"$$fundef_79_envp_783" to i8* + %"$$fundef_79_cloval_786" = insertvalue { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })* bitcast ({ { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (%"$$fundef_79_env_152"*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })* @"$fundef_79" to { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*), i8* undef }, i8* %"$$fundef_79_env_voidp_785", 1 + %"$$fundef_79_env_nat_fold_787" = getelementptr inbounds %"$$fundef_79_env_152", %"$$fundef_79_env_152"* %"$$fundef_79_envp_783", i32 0, i32 0 + %"$nat_fold_788" = load { i8*, i8* }*, { i8*, i8* }** %nat_fold, align 8 + store { i8*, i8* }* %"$nat_fold_788", { i8*, i8* }** %"$$fundef_79_env_nat_fold_787", align 8 + store { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } %"$$fundef_79_cloval_786", { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }* %"$retval_78", align 8, !dbg !52 + %"$$retval_78_789" = load { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }, { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }* %"$retval_78", align 8 + ret { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } %"$$retval_78_789" } -define internal { %TName_Nat* (i8*, %TName_Nat*)*, i8* } @"$fundef_75"(%"$$fundef_75_env_154"* %0, %TName_Nat* %1) !dbg !29 { +define internal { %TName_Nat* (i8*, %TName_Nat*)*, i8* } @"$fundef_75"(%"$$fundef_75_env_154"* %0, %TName_Nat* %1) !dbg !53 { entry: - %"$$fundef_75_env_f_749" = getelementptr inbounds %"$$fundef_75_env_154", %"$$fundef_75_env_154"* %0, i32 0, i32 0 - %"$f_envload_750" = load { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }* %"$$fundef_75_env_f_749", align 8 + %"$unused_775" = alloca %TName_Nat*, align 8 + store %TName_Nat* %1, %TName_Nat** %"$unused_775", align 8 + call void @llvm.dbg.declare(metadata %TName_Nat** %"$unused_775", metadata !54, metadata !DIExpression()), !dbg !55 + %"$$fundef_75_env_f_759" = getelementptr inbounds %"$$fundef_75_env_154", %"$$fundef_75_env_154"* %0, i32 0, i32 0 + %"$f_envload_760" = load { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }* %"$$fundef_75_env_f_759", align 8 %f = alloca { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }, align 8 - store { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } %"$f_envload_750", { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }* %f, align 8 - %"$$fundef_75_env_x_751" = getelementptr inbounds %"$$fundef_75_env_154", %"$$fundef_75_env_154"* %0, i32 0, i32 1 - %"$x_envload_752" = load { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$$fundef_75_env_x_751", align 8 + store { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } %"$f_envload_760", { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }* %f, align 8 + %"$$fundef_75_env_x_761" = getelementptr inbounds %"$$fundef_75_env_154", %"$$fundef_75_env_154"* %0, i32 0, i32 1 + %"$x_envload_762" = load { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$$fundef_75_env_x_761", align 8 %x = alloca { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, align 8 - store { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$x_envload_752", { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %x, align 8 + store { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$x_envload_762", { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %x, align 8 %"$retval_76" = alloca { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, 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" + %"$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_755": ; preds = %entry +"$out_of_gas_765": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_756" + br label %"$have_gas_766" -"$have_gas_756": ; preds = %"$out_of_gas_755", %entry - %"$consume_757" = sub i64 %"$gasrem_753", 1 - store i64 %"$consume_757", i64* @_gasrem, align 8 +"$have_gas_766": ; preds = %"$out_of_gas_765", %entry + %"$consume_767" = sub i64 %"$gasrem_763", 1 + store i64 %"$consume_767", i64* @_gasrem, align 8 %"$f_18" = alloca { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, align 8 - %"$f_758" = load { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }* %f, align 8 - %"$f_fptr_759" = extractvalue { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } %"$f_758", 0 - %"$f_envptr_760" = extractvalue { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } %"$f_758", 1 - %"$x_761" = load { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %x, align 8 - %"$f_call_762" = call { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$f_fptr_759"(i8* %"$f_envptr_760", { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$x_761"), !dbg !30 - store { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$f_call_762", { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$f_18", align 8, !dbg !30 - %"$$f_18_763" = load { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$f_18", align 8 - store { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$$f_18_763", { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$retval_76", align 8, !dbg !30 - %"$$retval_76_764" = load { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$retval_76", align 8 - ret { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$$retval_76_764" + %"$f_768" = load { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }* %f, align 8 + %"$f_fptr_769" = extractvalue { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } %"$f_768", 0 + %"$f_envptr_770" = extractvalue { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } %"$f_768", 1 + %"$x_771" = load { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %x, align 8 + %"$f_call_772" = call { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$f_fptr_769"(i8* %"$f_envptr_770", { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$x_771"), !dbg !56 + store { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$f_call_772", { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$f_18", align 8, !dbg !56 + %"$$f_18_773" = load { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$f_18", align 8 + store { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$$f_18_773", { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$retval_76", align 8, !dbg !56 + %"$$retval_76_774" = load { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$retval_76", align 8 + ret { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$$retval_76_774" } -define internal { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } @"$fundef_73"(%"$$fundef_73_env_155"* %0, { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %1) !dbg !31 { +define internal { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } @"$fundef_73"(%"$$fundef_73_env_155"* %0, { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %1) !dbg !57 { entry: - %"$$fundef_73_env_f_734" = getelementptr inbounds %"$$fundef_73_env_155", %"$$fundef_73_env_155"* %0, i32 0, i32 0 - %"$f_envload_735" = load { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }* %"$$fundef_73_env_f_734", align 8 + %"$$fundef_73_env_f_744" = getelementptr inbounds %"$$fundef_73_env_155", %"$$fundef_73_env_155"* %0, i32 0, i32 0 + %"$f_envload_745" = load { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }* %"$$fundef_73_env_f_744", align 8 %f = alloca { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }, align 8 - store { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } %"$f_envload_735", { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }* %f, align 8 + store { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } %"$f_envload_745", { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }* %f, align 8 %"$retval_74" = alloca { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }, 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 = %entry - call void @_out_of_gas() - br label %"$have_gas_739" - -"$have_gas_739": ; preds = %"$out_of_gas_738", %entry - %"$consume_740" = sub i64 %"$gasrem_736", 1 - store i64 %"$consume_740", i64* @_gasrem, align 8 - %"$$fundef_75_envp_741_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_75_envp_741_salloc" = call i8* @_salloc(i8* %"$$fundef_75_envp_741_load", i64 32) - %"$$fundef_75_envp_741" = bitcast i8* %"$$fundef_75_envp_741_salloc" to %"$$fundef_75_env_154"* - %"$$fundef_75_env_voidp_743" = bitcast %"$$fundef_75_env_154"* %"$$fundef_75_envp_741" to i8* - %"$$fundef_75_cloval_744" = insertvalue { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)* bitcast ({ %TName_Nat* (i8*, %TName_Nat*)*, i8* } (%"$$fundef_75_env_154"*, %TName_Nat*)* @"$fundef_75" to { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*), i8* undef }, i8* %"$$fundef_75_env_voidp_743", 1 - %"$$fundef_75_env_f_745" = getelementptr inbounds %"$$fundef_75_env_154", %"$$fundef_75_env_154"* %"$$fundef_75_envp_741", i32 0, i32 0 - %"$f_746" = load { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }* %f, align 8 - store { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } %"$f_746", { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }* %"$$fundef_75_env_f_745", align 8 - %"$$fundef_75_env_x_747" = getelementptr inbounds %"$$fundef_75_env_154", %"$$fundef_75_env_154"* %"$$fundef_75_envp_741", i32 0, i32 1 - store { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %1, { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$$fundef_75_env_x_747", align 8 - store { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$$fundef_75_cloval_744", { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }* %"$retval_74", align 8, !dbg !32 - %"$$retval_74_748" = load { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }* %"$retval_74", align 8 - ret { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$$retval_74_748" + %"$gasrem_746" = load i64, i64* @_gasrem, align 8 + %"$gascmp_747" = icmp ugt i64 1, %"$gasrem_746" + br i1 %"$gascmp_747", label %"$out_of_gas_748", label %"$have_gas_749" + +"$out_of_gas_748": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_749" + +"$have_gas_749": ; preds = %"$out_of_gas_748", %entry + %"$consume_750" = sub i64 %"$gasrem_746", 1 + store i64 %"$consume_750", i64* @_gasrem, align 8 + %"$$fundef_75_envp_751_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_75_envp_751_salloc" = call i8* @_salloc(i8* %"$$fundef_75_envp_751_load", i64 32) + %"$$fundef_75_envp_751" = bitcast i8* %"$$fundef_75_envp_751_salloc" to %"$$fundef_75_env_154"* + %"$$fundef_75_env_voidp_753" = bitcast %"$$fundef_75_env_154"* %"$$fundef_75_envp_751" to i8* + %"$$fundef_75_cloval_754" = insertvalue { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)* bitcast ({ %TName_Nat* (i8*, %TName_Nat*)*, i8* } (%"$$fundef_75_env_154"*, %TName_Nat*)* @"$fundef_75" to { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*), i8* undef }, i8* %"$$fundef_75_env_voidp_753", 1 + %"$$fundef_75_env_f_755" = getelementptr inbounds %"$$fundef_75_env_154", %"$$fundef_75_env_154"* %"$$fundef_75_envp_751", i32 0, i32 0 + %"$f_756" = load { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }* %f, align 8 + store { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } %"$f_756", { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }* %"$$fundef_75_env_f_755", align 8 + %"$$fundef_75_env_x_757" = getelementptr inbounds %"$$fundef_75_env_154", %"$$fundef_75_env_154"* %"$$fundef_75_envp_751", i32 0, i32 1 + store { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %1, { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$$fundef_75_env_x_757", align 8 + store { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$$fundef_75_cloval_754", { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }* %"$retval_74", align 8, !dbg !58 + %"$$retval_74_758" = load { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }* %"$retval_74", align 8 + ret { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$$retval_74_758" } -define internal { %TName_Nat* (i8*, %TName_Nat*)*, i8* } @"$fundef_71"(%"$$fundef_71_env_156"* %0, { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %1) !dbg !33 { +define internal { %TName_Nat* (i8*, %TName_Nat*)*, i8* } @"$fundef_71"(%"$$fundef_71_env_156"* %0, { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %1) !dbg !59 { entry: - %"$$fundef_71_env_f_674" = getelementptr inbounds %"$$fundef_71_env_156", %"$$fundef_71_env_156"* %0, i32 0, i32 0 - %"$f_envload_675" = load { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }* %"$$fundef_71_env_f_674", align 8 + %"$$fundef_71_env_f_684" = getelementptr inbounds %"$$fundef_71_env_156", %"$$fundef_71_env_156"* %0, i32 0, i32 0 + %"$f_envload_685" = load { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }* %"$$fundef_71_env_f_684", align 8 %f = alloca { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }, align 8 - store { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } %"$f_envload_675", { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }* %f, align 8 - %"$$fundef_71_env_n_676" = getelementptr inbounds %"$$fundef_71_env_156", %"$$fundef_71_env_156"* %0, i32 0, i32 1 - %"$n_envload_677" = load %TName_Nat*, %TName_Nat** %"$$fundef_71_env_n_676", align 8 + store { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } %"$f_envload_685", { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }* %f, align 8 + %"$$fundef_71_env_n_686" = getelementptr inbounds %"$$fundef_71_env_156", %"$$fundef_71_env_156"* %0, i32 0, i32 1 + %"$n_envload_687" = load %TName_Nat*, %TName_Nat** %"$$fundef_71_env_n_686", align 8 %n = alloca %TName_Nat*, align 8 - store %TName_Nat* %"$n_envload_677", %TName_Nat** %n, align 8 - %"$$fundef_71_env_nat_fold_678" = getelementptr inbounds %"$$fundef_71_env_156", %"$$fundef_71_env_156"* %0, i32 0, i32 2 - %"$nat_fold_envload_679" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_71_env_nat_fold_678", align 8 + store %TName_Nat* %"$n_envload_687", %TName_Nat** %n, align 8 + %"$$fundef_71_env_nat_fold_688" = getelementptr inbounds %"$$fundef_71_env_156", %"$$fundef_71_env_156"* %0, i32 0, i32 2 + %"$nat_fold_envload_689" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_71_env_nat_fold_688", align 8 %nat_fold = alloca { i8*, i8* }*, align 8 - store { i8*, i8* }* %"$nat_fold_envload_679", { i8*, i8* }** %nat_fold, align 8 + store { i8*, i8* }* %"$nat_fold_envload_689", { i8*, i8* }** %nat_fold, align 8 %"$retval_72" = alloca { %TName_Nat* (i8*, %TName_Nat*)*, 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" + %"$gasrem_690" = load i64, i64* @_gasrem, align 8 + %"$gascmp_691" = icmp ugt i64 1, %"$gasrem_690" + br i1 %"$gascmp_691", label %"$out_of_gas_692", label %"$have_gas_693" -"$out_of_gas_682": ; preds = %entry +"$out_of_gas_692": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_683" + br label %"$have_gas_693" -"$have_gas_683": ; preds = %"$out_of_gas_682", %entry - %"$consume_684" = sub i64 %"$gasrem_680", 1 - store i64 %"$consume_684", i64* @_gasrem, align 8 +"$have_gas_693": ; preds = %"$out_of_gas_692", %entry + %"$consume_694" = sub i64 %"$gasrem_690", 1 + store i64 %"$consume_694", i64* @_gasrem, align 8 %folder = alloca { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*, i8* }, 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_683" - call void @_out_of_gas() - br label %"$have_gas_688" - -"$have_gas_688": ; preds = %"$out_of_gas_687", %"$have_gas_683" - %"$consume_689" = sub i64 %"$gasrem_685", 1 - store i64 %"$consume_689", i64* @_gasrem, align 8 - %"$nat_fold_690" = load { i8*, i8* }*, { i8*, i8* }** %nat_fold, align 8 - %"$nat_fold_691" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$nat_fold_690", i32 1 - %"$nat_fold_692" = bitcast { i8*, i8* }* %"$nat_fold_691" to { { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*, i8* } (i8*)*, i8* }* - %"$nat_fold_693" = load { { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*, i8* } (i8*)*, i8* }, { { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*, i8* } (i8*)*, i8* }* %"$nat_fold_692", align 8 - %"$nat_fold_fptr_694" = extractvalue { { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*, i8* } (i8*)*, i8* } %"$nat_fold_693", 0 - %"$nat_fold_envptr_695" = extractvalue { { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*, i8* } (i8*)*, i8* } %"$nat_fold_693", 1 - %"$nat_fold_call_696" = call { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*, i8* } %"$nat_fold_fptr_694"(i8* %"$nat_fold_envptr_695"), !dbg !34 - store { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*, i8* } %"$nat_fold_call_696", { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*, i8* }* %folder, align 8, !dbg !35 - %"$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 = %"$have_gas_688" - call void @_out_of_gas() - br label %"$have_gas_700" - -"$have_gas_700": ; preds = %"$out_of_gas_699", %"$have_gas_688" - %"$consume_701" = sub i64 %"$gasrem_697", 1 - store i64 %"$consume_701", i64* @_gasrem, align 8 + %"$gasrem_695" = load i64, i64* @_gasrem, align 8 + %"$gascmp_696" = icmp ugt i64 1, %"$gasrem_695" + br i1 %"$gascmp_696", label %"$out_of_gas_697", label %"$have_gas_698" + +"$out_of_gas_697": ; preds = %"$have_gas_693" + call void @_out_of_gas() + br label %"$have_gas_698" + +"$have_gas_698": ; preds = %"$out_of_gas_697", %"$have_gas_693" + %"$consume_699" = sub i64 %"$gasrem_695", 1 + store i64 %"$consume_699", i64* @_gasrem, align 8 + %"$nat_fold_700" = load { i8*, i8* }*, { i8*, i8* }** %nat_fold, align 8 + %"$nat_fold_701" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$nat_fold_700", i32 1 + %"$nat_fold_702" = bitcast { i8*, i8* }* %"$nat_fold_701" to { { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*, i8* } (i8*)*, i8* }* + %"$nat_fold_703" = load { { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*, i8* } (i8*)*, i8* }, { { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*, i8* } (i8*)*, i8* }* %"$nat_fold_702", align 8 + %"$nat_fold_fptr_704" = extractvalue { { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*, i8* } (i8*)*, i8* } %"$nat_fold_703", 0 + %"$nat_fold_envptr_705" = extractvalue { { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*, i8* } (i8*)*, i8* } %"$nat_fold_703", 1 + %"$nat_fold_call_706" = call { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*, i8* } %"$nat_fold_fptr_704"(i8* %"$nat_fold_envptr_705"), !dbg !60 + store { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*, i8* } %"$nat_fold_call_706", { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*, i8* }* %folder, align 8, !dbg !61 + %"$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_698" + call void @_out_of_gas() + br label %"$have_gas_710" + +"$have_gas_710": ; preds = %"$out_of_gas_709", %"$have_gas_698" + %"$consume_711" = sub i64 %"$gasrem_707", 1 + store i64 %"$consume_711", i64* @_gasrem, align 8 %step = alloca { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }, align 8 - %"$gasrem_702" = load i64, i64* @_gasrem, align 8 - %"$gascmp_703" = icmp ugt i64 1, %"$gasrem_702" - br i1 %"$gascmp_703", label %"$out_of_gas_704", label %"$have_gas_705" - -"$out_of_gas_704": ; preds = %"$have_gas_700" - call void @_out_of_gas() - br label %"$have_gas_705" - -"$have_gas_705": ; preds = %"$out_of_gas_704", %"$have_gas_700" - %"$consume_706" = sub i64 %"$gasrem_702", 1 - store i64 %"$consume_706", i64* @_gasrem, align 8 - %"$$fundef_73_envp_707_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_73_envp_707_salloc" = call i8* @_salloc(i8* %"$$fundef_73_envp_707_load", i64 16) - %"$$fundef_73_envp_707" = bitcast i8* %"$$fundef_73_envp_707_salloc" to %"$$fundef_73_env_155"* - %"$$fundef_73_env_voidp_709" = bitcast %"$$fundef_73_env_155"* %"$$fundef_73_envp_707" to i8* - %"$$fundef_73_cloval_710" = insertvalue { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })* bitcast ({ { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (%"$$fundef_73_env_155"*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })* @"$fundef_73" to { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*), i8* undef }, i8* %"$$fundef_73_env_voidp_709", 1 - %"$$fundef_73_env_f_711" = getelementptr inbounds %"$$fundef_73_env_155", %"$$fundef_73_env_155"* %"$$fundef_73_envp_707", i32 0, i32 0 - %"$f_712" = load { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }* %f, align 8 - store { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } %"$f_712", { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }* %"$$fundef_73_env_f_711", align 8 - store { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } %"$$fundef_73_cloval_710", { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }* %step, align 8, !dbg !36 - %"$gasrem_713" = load i64, i64* @_gasrem, align 8 - %"$gascmp_714" = icmp ugt i64 1, %"$gasrem_713" - br i1 %"$gascmp_714", label %"$out_of_gas_715", label %"$have_gas_716" - -"$out_of_gas_715": ; preds = %"$have_gas_705" - call void @_out_of_gas() - br label %"$have_gas_716" - -"$have_gas_716": ; preds = %"$out_of_gas_715", %"$have_gas_705" - %"$consume_717" = sub i64 %"$gasrem_713", 1 - store i64 %"$consume_717", 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 + %"$$fundef_73_envp_717_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_73_envp_717_salloc" = call i8* @_salloc(i8* %"$$fundef_73_envp_717_load", i64 16) + %"$$fundef_73_envp_717" = bitcast i8* %"$$fundef_73_envp_717_salloc" to %"$$fundef_73_env_155"* + %"$$fundef_73_env_voidp_719" = bitcast %"$$fundef_73_env_155"* %"$$fundef_73_envp_717" to i8* + %"$$fundef_73_cloval_720" = insertvalue { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })* bitcast ({ { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (%"$$fundef_73_env_155"*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })* @"$fundef_73" to { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*), i8* undef }, i8* %"$$fundef_73_env_voidp_719", 1 + %"$$fundef_73_env_f_721" = getelementptr inbounds %"$$fundef_73_env_155", %"$$fundef_73_env_155"* %"$$fundef_73_envp_717", i32 0, i32 0 + %"$f_722" = load { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }* %f, align 8 + store { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } %"$f_722", { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }* %"$$fundef_73_env_f_721", align 8 + store { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } %"$$fundef_73_cloval_720", { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }* %step, align 8, !dbg !62 + %"$gasrem_723" = load i64, i64* @_gasrem, align 8 + %"$gascmp_724" = icmp ugt i64 1, %"$gasrem_723" + br i1 %"$gascmp_724", label %"$out_of_gas_725", label %"$have_gas_726" + +"$out_of_gas_725": ; preds = %"$have_gas_715" + call void @_out_of_gas() + br label %"$have_gas_726" + +"$have_gas_726": ; preds = %"$out_of_gas_725", %"$have_gas_715" + %"$consume_727" = sub i64 %"$gasrem_723", 1 + store i64 %"$consume_727", i64* @_gasrem, align 8 %"$folder_19" = alloca { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }, align 8 - %"$folder_718" = load { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*, i8* }, { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*, i8* }* %folder, align 8 - %"$folder_fptr_719" = extractvalue { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*, i8* } %"$folder_718", 0 - %"$folder_envptr_720" = extractvalue { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*, i8* } %"$folder_718", 1 - %"$step_721" = load { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }, { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }* %step, align 8 - %"$folder_call_722" = call { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } %"$folder_fptr_719"(i8* %"$folder_envptr_720", { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } %"$step_721"), !dbg !37 - store { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } %"$folder_call_722", { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }* %"$folder_19", align 8, !dbg !37 + %"$folder_728" = load { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*, i8* }, { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*, i8* }* %folder, align 8 + %"$folder_fptr_729" = extractvalue { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*, i8* } %"$folder_728", 0 + %"$folder_envptr_730" = extractvalue { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*, i8* } %"$folder_728", 1 + %"$step_731" = load { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }, { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }* %step, align 8 + %"$folder_call_732" = call { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } %"$folder_fptr_729"(i8* %"$folder_envptr_730", { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } %"$step_731"), !dbg !63 + store { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } %"$folder_call_732", { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }* %"$folder_19", align 8, !dbg !63 %"$folder_20" = alloca { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }, align 8 - %"$$folder_19_723" = load { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }, { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }* %"$folder_19", align 8 - %"$$folder_19_fptr_724" = extractvalue { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } %"$$folder_19_723", 0 - %"$$folder_19_envptr_725" = extractvalue { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } %"$$folder_19_723", 1 - %"$$folder_19_call_726" = call { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$$folder_19_fptr_724"(i8* %"$$folder_19_envptr_725", { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %1), !dbg !37 - store { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$$folder_19_call_726", { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }* %"$folder_20", align 8, !dbg !37 + %"$$folder_19_733" = load { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }, { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }* %"$folder_19", align 8 + %"$$folder_19_fptr_734" = extractvalue { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } %"$$folder_19_733", 0 + %"$$folder_19_envptr_735" = extractvalue { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } %"$$folder_19_733", 1 + %"$$folder_19_call_736" = call { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$$folder_19_fptr_734"(i8* %"$$folder_19_envptr_735", { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %1), !dbg !63 + store { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$$folder_19_call_736", { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }* %"$folder_20", align 8, !dbg !63 %"$folder_21" = alloca { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, align 8 - %"$$folder_20_727" = load { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }* %"$folder_20", align 8 - %"$$folder_20_fptr_728" = extractvalue { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$$folder_20_727", 0 - %"$$folder_20_envptr_729" = extractvalue { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$$folder_20_727", 1 - %"$n_730" = load %TName_Nat*, %TName_Nat** %n, align 8 - %"$$folder_20_call_731" = call { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$$folder_20_fptr_728"(i8* %"$$folder_20_envptr_729", %TName_Nat* %"$n_730"), !dbg !37 - store { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$$folder_20_call_731", { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$folder_21", align 8, !dbg !37 - %"$$folder_21_732" = load { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$folder_21", align 8 - store { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$$folder_21_732", { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$retval_72", align 8, !dbg !37 - %"$$retval_72_733" = load { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$retval_72", align 8 - ret { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$$retval_72_733" + %"$$folder_20_737" = load { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }* %"$folder_20", align 8 + %"$$folder_20_fptr_738" = extractvalue { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$$folder_20_737", 0 + %"$$folder_20_envptr_739" = extractvalue { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$$folder_20_737", 1 + %"$n_740" = load %TName_Nat*, %TName_Nat** %n, align 8 + %"$$folder_20_call_741" = call { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$$folder_20_fptr_738"(i8* %"$$folder_20_envptr_739", %TName_Nat* %"$n_740"), !dbg !63 + store { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$$folder_20_call_741", { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$folder_21", align 8, !dbg !63 + %"$$folder_21_742" = load { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$folder_21", align 8 + store { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$$folder_21_742", { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$retval_72", align 8, !dbg !63 + %"$$retval_72_743" = load { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$retval_72", align 8 + ret { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$$retval_72_743" } -define internal { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } @"$fundef_69"(%"$$fundef_69_env_157"* %0, %TName_Nat* %1) !dbg !38 { +define internal { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } @"$fundef_69"(%"$$fundef_69_env_157"* %0, %TName_Nat* %1) !dbg !64 { entry: - %"$$fundef_69_env_f_655" = getelementptr inbounds %"$$fundef_69_env_157", %"$$fundef_69_env_157"* %0, i32 0, i32 0 - %"$f_envload_656" = load { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }* %"$$fundef_69_env_f_655", align 8 + %"$n_683" = alloca %TName_Nat*, align 8 + store %TName_Nat* %1, %TName_Nat** %"$n_683", align 8 + call void @llvm.dbg.declare(metadata %TName_Nat** %"$n_683", metadata !65, metadata !DIExpression()), !dbg !66 + %"$$fundef_69_env_f_664" = getelementptr inbounds %"$$fundef_69_env_157", %"$$fundef_69_env_157"* %0, i32 0, i32 0 + %"$f_envload_665" = load { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }* %"$$fundef_69_env_f_664", align 8 %f = alloca { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }, align 8 - store { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } %"$f_envload_656", { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }* %f, align 8 - %"$$fundef_69_env_nat_fold_657" = getelementptr inbounds %"$$fundef_69_env_157", %"$$fundef_69_env_157"* %0, i32 0, i32 1 - %"$nat_fold_envload_658" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_69_env_nat_fold_657", align 8 + store { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } %"$f_envload_665", { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }* %f, align 8 + %"$$fundef_69_env_nat_fold_666" = getelementptr inbounds %"$$fundef_69_env_157", %"$$fundef_69_env_157"* %0, i32 0, i32 1 + %"$nat_fold_envload_667" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_69_env_nat_fold_666", align 8 %nat_fold = alloca { i8*, i8* }*, align 8 - store { i8*, i8* }* %"$nat_fold_envload_658", { i8*, i8* }** %nat_fold, align 8 + store { i8*, i8* }* %"$nat_fold_envload_667", { i8*, i8* }** %nat_fold, align 8 %"$retval_70" = alloca { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }, align 8 - %"$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 = %entry - call void @_out_of_gas() - br label %"$have_gas_662" - -"$have_gas_662": ; preds = %"$out_of_gas_661", %entry - %"$consume_663" = sub i64 %"$gasrem_659", 1 - store i64 %"$consume_663", i64* @_gasrem, align 8 - %"$$fundef_71_envp_664_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_71_envp_664_salloc" = call i8* @_salloc(i8* %"$$fundef_71_envp_664_load", i64 32) - %"$$fundef_71_envp_664" = bitcast i8* %"$$fundef_71_envp_664_salloc" to %"$$fundef_71_env_156"* - %"$$fundef_71_env_voidp_666" = bitcast %"$$fundef_71_env_156"* %"$$fundef_71_envp_664" to i8* - %"$$fundef_71_cloval_667" = insertvalue { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })* bitcast ({ %TName_Nat* (i8*, %TName_Nat*)*, i8* } (%"$$fundef_71_env_156"*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })* @"$fundef_71" to { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*), i8* undef }, i8* %"$$fundef_71_env_voidp_666", 1 - %"$$fundef_71_env_f_668" = getelementptr inbounds %"$$fundef_71_env_156", %"$$fundef_71_env_156"* %"$$fundef_71_envp_664", i32 0, i32 0 - %"$f_669" = load { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }* %f, align 8 - store { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } %"$f_669", { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }* %"$$fundef_71_env_f_668", align 8 - %"$$fundef_71_env_n_670" = getelementptr inbounds %"$$fundef_71_env_156", %"$$fundef_71_env_156"* %"$$fundef_71_envp_664", i32 0, i32 1 - store %TName_Nat* %1, %TName_Nat** %"$$fundef_71_env_n_670", align 8 - %"$$fundef_71_env_nat_fold_671" = getelementptr inbounds %"$$fundef_71_env_156", %"$$fundef_71_env_156"* %"$$fundef_71_envp_664", i32 0, i32 2 - %"$nat_fold_672" = load { i8*, i8* }*, { i8*, i8* }** %nat_fold, align 8 - store { i8*, i8* }* %"$nat_fold_672", { i8*, i8* }** %"$$fundef_71_env_nat_fold_671", align 8 - store { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } %"$$fundef_71_cloval_667", { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }* %"$retval_70", align 8, !dbg !39 - %"$$retval_70_673" = load { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }* %"$retval_70", align 8 - ret { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } %"$$retval_70_673" + %"$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 = %entry + call void @_out_of_gas() + br label %"$have_gas_671" + +"$have_gas_671": ; preds = %"$out_of_gas_670", %entry + %"$consume_672" = sub i64 %"$gasrem_668", 1 + store i64 %"$consume_672", i64* @_gasrem, align 8 + %"$$fundef_71_envp_673_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_71_envp_673_salloc" = call i8* @_salloc(i8* %"$$fundef_71_envp_673_load", i64 32) + %"$$fundef_71_envp_673" = bitcast i8* %"$$fundef_71_envp_673_salloc" to %"$$fundef_71_env_156"* + %"$$fundef_71_env_voidp_675" = bitcast %"$$fundef_71_env_156"* %"$$fundef_71_envp_673" to i8* + %"$$fundef_71_cloval_676" = insertvalue { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })* bitcast ({ %TName_Nat* (i8*, %TName_Nat*)*, i8* } (%"$$fundef_71_env_156"*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })* @"$fundef_71" to { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*), i8* undef }, i8* %"$$fundef_71_env_voidp_675", 1 + %"$$fundef_71_env_f_677" = getelementptr inbounds %"$$fundef_71_env_156", %"$$fundef_71_env_156"* %"$$fundef_71_envp_673", i32 0, i32 0 + %"$f_678" = load { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }* %f, align 8 + store { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } %"$f_678", { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }* %"$$fundef_71_env_f_677", align 8 + %"$$fundef_71_env_n_679" = getelementptr inbounds %"$$fundef_71_env_156", %"$$fundef_71_env_156"* %"$$fundef_71_envp_673", i32 0, i32 1 + store %TName_Nat* %1, %TName_Nat** %"$$fundef_71_env_n_679", align 8 + %"$$fundef_71_env_nat_fold_680" = getelementptr inbounds %"$$fundef_71_env_156", %"$$fundef_71_env_156"* %"$$fundef_71_envp_673", i32 0, i32 2 + %"$nat_fold_681" = load { i8*, i8* }*, { i8*, i8* }** %nat_fold, align 8 + store { i8*, i8* }* %"$nat_fold_681", { i8*, i8* }** %"$$fundef_71_env_nat_fold_680", align 8 + store { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } %"$$fundef_71_cloval_676", { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }* %"$retval_70", align 8, !dbg !67 + %"$$retval_70_682" = load { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }* %"$retval_70", align 8 + ret { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } %"$$retval_70_682" } -define internal { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, %TName_Nat*)*, i8* } @"$fundef_67"(%"$$fundef_67_env_158"* %0, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } %1) !dbg !40 { +define internal { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, %TName_Nat*)*, i8* } @"$fundef_67"(%"$$fundef_67_env_158"* %0, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } %1) !dbg !68 { entry: - %"$$fundef_67_env_nat_fold_640" = getelementptr inbounds %"$$fundef_67_env_158", %"$$fundef_67_env_158"* %0, i32 0, i32 0 - %"$nat_fold_envload_641" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_67_env_nat_fold_640", align 8 + %"$$fundef_67_env_nat_fold_649" = getelementptr inbounds %"$$fundef_67_env_158", %"$$fundef_67_env_158"* %0, i32 0, i32 0 + %"$nat_fold_envload_650" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_67_env_nat_fold_649", align 8 %nat_fold = alloca { i8*, i8* }*, align 8 - store { i8*, i8* }* %"$nat_fold_envload_641", { i8*, i8* }** %nat_fold, align 8 + store { i8*, i8* }* %"$nat_fold_envload_650", { i8*, i8* }** %nat_fold, align 8 %"$retval_68" = alloca { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, %TName_Nat*)*, i8* }, align 8 - %"$gasrem_642" = load i64, i64* @_gasrem, align 8 - %"$gascmp_643" = icmp ugt i64 1, %"$gasrem_642" - br i1 %"$gascmp_643", label %"$out_of_gas_644", label %"$have_gas_645" - -"$out_of_gas_644": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_645" - -"$have_gas_645": ; preds = %"$out_of_gas_644", %entry - %"$consume_646" = sub i64 %"$gasrem_642", 1 - store i64 %"$consume_646", i64* @_gasrem, align 8 - %"$$fundef_69_envp_647_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_69_envp_647_salloc" = call i8* @_salloc(i8* %"$$fundef_69_envp_647_load", i64 24) - %"$$fundef_69_envp_647" = bitcast i8* %"$$fundef_69_envp_647_salloc" to %"$$fundef_69_env_157"* - %"$$fundef_69_env_voidp_649" = bitcast %"$$fundef_69_env_157"* %"$$fundef_69_envp_647" to i8* - %"$$fundef_69_cloval_650" = insertvalue { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, %TName_Nat*)*, i8* } { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, %TName_Nat*)* bitcast ({ { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (%"$$fundef_69_env_157"*, %TName_Nat*)* @"$fundef_69" to { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, %TName_Nat*)*), i8* undef }, i8* %"$$fundef_69_env_voidp_649", 1 - %"$$fundef_69_env_f_651" = getelementptr inbounds %"$$fundef_69_env_157", %"$$fundef_69_env_157"* %"$$fundef_69_envp_647", i32 0, i32 0 - store { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } %1, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }* %"$$fundef_69_env_f_651", align 8 - %"$$fundef_69_env_nat_fold_652" = getelementptr inbounds %"$$fundef_69_env_157", %"$$fundef_69_env_157"* %"$$fundef_69_envp_647", i32 0, i32 1 - %"$nat_fold_653" = load { i8*, i8* }*, { i8*, i8* }** %nat_fold, align 8 - store { i8*, i8* }* %"$nat_fold_653", { i8*, i8* }** %"$$fundef_69_env_nat_fold_652", align 8 - store { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, %TName_Nat*)*, i8* } %"$$fundef_69_cloval_650", { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, %TName_Nat*)*, i8* }* %"$retval_68", align 8, !dbg !41 - %"$$retval_68_654" = load { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, %TName_Nat*)*, i8* }, { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, %TName_Nat*)*, i8* }* %"$retval_68", align 8 - ret { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, %TName_Nat*)*, i8* } %"$$retval_68_654" + %"$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 = %entry + call void @_out_of_gas() + br label %"$have_gas_654" + +"$have_gas_654": ; preds = %"$out_of_gas_653", %entry + %"$consume_655" = sub i64 %"$gasrem_651", 1 + store i64 %"$consume_655", i64* @_gasrem, align 8 + %"$$fundef_69_envp_656_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_69_envp_656_salloc" = call i8* @_salloc(i8* %"$$fundef_69_envp_656_load", i64 24) + %"$$fundef_69_envp_656" = bitcast i8* %"$$fundef_69_envp_656_salloc" to %"$$fundef_69_env_157"* + %"$$fundef_69_env_voidp_658" = bitcast %"$$fundef_69_env_157"* %"$$fundef_69_envp_656" to i8* + %"$$fundef_69_cloval_659" = insertvalue { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, %TName_Nat*)*, i8* } { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, %TName_Nat*)* bitcast ({ { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (%"$$fundef_69_env_157"*, %TName_Nat*)* @"$fundef_69" to { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, %TName_Nat*)*), i8* undef }, i8* %"$$fundef_69_env_voidp_658", 1 + %"$$fundef_69_env_f_660" = getelementptr inbounds %"$$fundef_69_env_157", %"$$fundef_69_env_157"* %"$$fundef_69_envp_656", i32 0, i32 0 + store { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } %1, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }* %"$$fundef_69_env_f_660", align 8 + %"$$fundef_69_env_nat_fold_661" = getelementptr inbounds %"$$fundef_69_env_157", %"$$fundef_69_env_157"* %"$$fundef_69_envp_656", i32 0, i32 1 + %"$nat_fold_662" = load { i8*, i8* }*, { i8*, i8* }** %nat_fold, align 8 + store { i8*, i8* }* %"$nat_fold_662", { i8*, i8* }** %"$$fundef_69_env_nat_fold_661", align 8 + store { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, %TName_Nat*)*, i8* } %"$$fundef_69_cloval_659", { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, %TName_Nat*)*, i8* }* %"$retval_68", align 8, !dbg !69 + %"$$retval_68_663" = load { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, %TName_Nat*)*, i8* }, { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, %TName_Nat*)*, i8* }* %"$retval_68", align 8 + ret { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, %TName_Nat*)*, i8* } %"$$retval_68_663" } -define internal { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*, i8* } @"$fundef_65"(%"$$fundef_65_env_159"* %0) !dbg !42 { +define internal { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*, i8* } @"$fundef_65"(%"$$fundef_65_env_159"* %0) !dbg !70 { entry: - %"$$fundef_65_env_nat_fold_626" = getelementptr inbounds %"$$fundef_65_env_159", %"$$fundef_65_env_159"* %0, i32 0, i32 0 - %"$nat_fold_envload_627" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_65_env_nat_fold_626", align 8 + %"$$fundef_65_env_nat_fold_635" = getelementptr inbounds %"$$fundef_65_env_159", %"$$fundef_65_env_159"* %0, i32 0, i32 0 + %"$nat_fold_envload_636" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_65_env_nat_fold_635", align 8 %nat_fold = alloca { i8*, i8* }*, align 8 - store { i8*, i8* }* %"$nat_fold_envload_627", { i8*, i8* }** %nat_fold, align 8 + store { i8*, i8* }* %"$nat_fold_envload_636", { i8*, i8* }** %nat_fold, align 8 %"$retval_66" = alloca { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*, i8* }, 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 = %entry - call void @_out_of_gas() - br label %"$have_gas_631" - -"$have_gas_631": ; preds = %"$out_of_gas_630", %entry - %"$consume_632" = sub i64 %"$gasrem_628", 1 - store i64 %"$consume_632", i64* @_gasrem, align 8 - %"$$fundef_67_envp_633_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_67_envp_633_salloc" = call i8* @_salloc(i8* %"$$fundef_67_envp_633_load", i64 8) - %"$$fundef_67_envp_633" = bitcast i8* %"$$fundef_67_envp_633_salloc" to %"$$fundef_67_env_158"* - %"$$fundef_67_env_voidp_635" = bitcast %"$$fundef_67_env_158"* %"$$fundef_67_envp_633" to i8* - %"$$fundef_67_cloval_636" = insertvalue { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*, i8* } { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })* bitcast ({ { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, %TName_Nat*)*, i8* } (%"$$fundef_67_env_158"*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })* @"$fundef_67" to { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*), i8* undef }, i8* %"$$fundef_67_env_voidp_635", 1 - %"$$fundef_67_env_nat_fold_637" = getelementptr inbounds %"$$fundef_67_env_158", %"$$fundef_67_env_158"* %"$$fundef_67_envp_633", i32 0, i32 0 - %"$nat_fold_638" = load { i8*, i8* }*, { i8*, i8* }** %nat_fold, align 8 - store { i8*, i8* }* %"$nat_fold_638", { i8*, i8* }** %"$$fundef_67_env_nat_fold_637", align 8 - store { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*, i8* } %"$$fundef_67_cloval_636", { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*, i8* }* %"$retval_66", align 8, !dbg !43 - %"$$retval_66_639" = load { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*, i8* }, { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*, i8* }* %"$retval_66", align 8 - ret { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*, i8* } %"$$retval_66_639" + %"$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 = %entry + call void @_out_of_gas() + br label %"$have_gas_640" + +"$have_gas_640": ; preds = %"$out_of_gas_639", %entry + %"$consume_641" = sub i64 %"$gasrem_637", 1 + store i64 %"$consume_641", i64* @_gasrem, align 8 + %"$$fundef_67_envp_642_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_67_envp_642_salloc" = call i8* @_salloc(i8* %"$$fundef_67_envp_642_load", i64 8) + %"$$fundef_67_envp_642" = bitcast i8* %"$$fundef_67_envp_642_salloc" to %"$$fundef_67_env_158"* + %"$$fundef_67_env_voidp_644" = bitcast %"$$fundef_67_env_158"* %"$$fundef_67_envp_642" to i8* + %"$$fundef_67_cloval_645" = insertvalue { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*, i8* } { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })* bitcast ({ { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, %TName_Nat*)*, i8* } (%"$$fundef_67_env_158"*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })* @"$fundef_67" to { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*), i8* undef }, i8* %"$$fundef_67_env_voidp_644", 1 + %"$$fundef_67_env_nat_fold_646" = getelementptr inbounds %"$$fundef_67_env_158", %"$$fundef_67_env_158"* %"$$fundef_67_envp_642", i32 0, i32 0 + %"$nat_fold_647" = load { i8*, i8* }*, { i8*, i8* }** %nat_fold, align 8 + store { i8*, i8* }* %"$nat_fold_647", { i8*, i8* }** %"$$fundef_67_env_nat_fold_646", align 8 + store { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*, i8* } %"$$fundef_67_cloval_645", { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*, i8* }* %"$retval_66", align 8, !dbg !71 + %"$$retval_66_648" = load { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*, i8* }, { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*, i8* }* %"$retval_66", align 8 + ret { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*, i8* } %"$$retval_66_648" } -define internal %TName_Nat* @"$fundef_63"(%"$$fundef_63_env_160"* %0, %TName_Nat* %1) !dbg !44 { +define internal %TName_Nat* @"$fundef_63"(%"$$fundef_63_env_160"* %0, %TName_Nat* %1) !dbg !72 { entry: + %"$n_634" = alloca %TName_Nat*, align 8 + store %TName_Nat* %1, %TName_Nat** %"$n_634", align 8 + call void @llvm.dbg.declare(metadata %TName_Nat** %"$n_634", metadata !73, metadata !DIExpression()), !dbg !74 %"$retval_64" = alloca %TName_Nat*, 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 - %"$adtval_621_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_621_salloc" = call i8* @_salloc(i8* %"$adtval_621_load", i64 9) - %"$adtval_621" = bitcast i8* %"$adtval_621_salloc" to %CName_Succ* - %"$adtgep_622" = getelementptr inbounds %CName_Succ, %CName_Succ* %"$adtval_621", i32 0, i32 0 - store i8 1, i8* %"$adtgep_622", align 1 - %"$adtgep_623" = getelementptr inbounds %CName_Succ, %CName_Succ* %"$adtval_621", i32 0, i32 1 - store %TName_Nat* %1, %TName_Nat** %"$adtgep_623", align 8 - %"$adtptr_624" = bitcast %CName_Succ* %"$adtval_621" to %TName_Nat* - store %TName_Nat* %"$adtptr_624", %TName_Nat** %"$retval_64", align 8, !dbg !45 - %"$$retval_64_625" = load %TName_Nat*, %TName_Nat** %"$retval_64", align 8 - ret %TName_Nat* %"$$retval_64_625" + call void @llvm.dbg.declare(metadata %TName_Nat** %"$retval_64", metadata !75, metadata !DIExpression()), !dbg !76 + %"$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" + +"$out_of_gas_626": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_627" + +"$have_gas_627": ; preds = %"$out_of_gas_626", %entry + %"$consume_628" = sub i64 %"$gasrem_624", 1 + store i64 %"$consume_628", i64* @_gasrem, align 8 + %"$adtval_629_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_629_salloc" = call i8* @_salloc(i8* %"$adtval_629_load", i64 9) + %"$adtval_629" = bitcast i8* %"$adtval_629_salloc" to %CName_Succ* + %"$adtgep_630" = getelementptr inbounds %CName_Succ, %CName_Succ* %"$adtval_629", i32 0, i32 0 + store i8 1, i8* %"$adtgep_630", align 1 + %"$adtgep_631" = getelementptr inbounds %CName_Succ, %CName_Succ* %"$adtval_629", i32 0, i32 1 + store %TName_Nat* %1, %TName_Nat** %"$adtgep_631", align 8 + %"$adtptr_632" = bitcast %CName_Succ* %"$adtval_629" to %TName_Nat* + store %TName_Nat* %"$adtptr_632", %TName_Nat** %"$retval_64", align 8, !dbg !76 + %"$$retval_64_633" = load %TName_Nat*, %TName_Nat** %"$retval_64", align 8 + ret %TName_Nat* %"$$retval_64_633" } -define internal %Uint32 @"$fundef_60"(%"$$fundef_60_env_161"* %0, %TName_Nat* %1) !dbg !46 { +define internal %Uint32 @"$fundef_60"(%"$$fundef_60_env_161"* %0, %TName_Nat* %1) !dbg !77 { entry: - %"$$fundef_60_env_one_int_603" = getelementptr inbounds %"$$fundef_60_env_161", %"$$fundef_60_env_161"* %0, i32 0, i32 0 - %"$one_int_envload_604" = load %Uint32, %Uint32* %"$$fundef_60_env_one_int_603", align 4 + %"$ignore_623" = alloca %TName_Nat*, align 8 + store %TName_Nat* %1, %TName_Nat** %"$ignore_623", align 8 + call void @llvm.dbg.declare(metadata %TName_Nat** %"$ignore_623", metadata !79, metadata !DIExpression()), !dbg !80 + %"$$fundef_60_env_one_int_610" = getelementptr inbounds %"$$fundef_60_env_161", %"$$fundef_60_env_161"* %0, i32 0, i32 0 + %"$one_int_envload_611" = load %Uint32, %Uint32* %"$$fundef_60_env_one_int_610", align 4 %one_int = alloca %Uint32, align 8 - store %Uint32 %"$one_int_envload_604", %Uint32* %one_int, align 4 - %"$$fundef_60_env_z_605" = getelementptr inbounds %"$$fundef_60_env_161", %"$$fundef_60_env_161"* %0, i32 0, i32 1 - %"$z_envload_606" = load %Uint32, %Uint32* %"$$fundef_60_env_z_605", align 4 + store %Uint32 %"$one_int_envload_611", %Uint32* %one_int, align 4 + %"$$fundef_60_env_z_612" = getelementptr inbounds %"$$fundef_60_env_161", %"$$fundef_60_env_161"* %0, i32 0, i32 1 + %"$z_envload_613" = load %Uint32, %Uint32* %"$$fundef_60_env_z_612", align 4 %z = alloca %Uint32, align 8 - store %Uint32 %"$z_envload_606", %Uint32* %z, align 4 + store %Uint32 %"$z_envload_613", %Uint32* %z, align 4 %"$retval_61" = alloca %Uint32, align 8 - %"$gasrem_607" = load i64, i64* @_gasrem, align 8 - %"$gascmp_608" = icmp ugt i64 4, %"$gasrem_607" - br i1 %"$gascmp_608", label %"$out_of_gas_609", label %"$have_gas_610" - -"$out_of_gas_609": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_610" - -"$have_gas_610": ; preds = %"$out_of_gas_609", %entry - %"$consume_611" = sub i64 %"$gasrem_607", 4 - store i64 %"$consume_611", i64* @_gasrem, align 8 - %"$z_612" = load %Uint32, %Uint32* %z, align 4 - %"$one_int_613" = load %Uint32, %Uint32* %one_int, align 4 - %"$add_call_614" = call %Uint32 @_add_Uint32(%Uint32 %"$z_612", %Uint32 %"$one_int_613"), !dbg !48 - store %Uint32 %"$add_call_614", %Uint32* %"$retval_61", align 4, !dbg !48 - %"$$retval_61_615" = load %Uint32, %Uint32* %"$retval_61", align 4 - ret %Uint32 %"$$retval_61_615" + call void @llvm.dbg.declare(metadata %Uint32* %"$retval_61", metadata !81, metadata !DIExpression()), !dbg !83 + %"$gasrem_614" = load i64, i64* @_gasrem, align 8 + %"$gascmp_615" = icmp ugt i64 4, %"$gasrem_614" + br i1 %"$gascmp_615", label %"$out_of_gas_616", label %"$have_gas_617" + +"$out_of_gas_616": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_617" + +"$have_gas_617": ; preds = %"$out_of_gas_616", %entry + %"$consume_618" = sub i64 %"$gasrem_614", 4 + store i64 %"$consume_618", i64* @_gasrem, align 8 + %"$z_619" = load %Uint32, %Uint32* %z, align 4 + %"$one_int_620" = load %Uint32, %Uint32* %one_int, align 4 + %"$add_call_621" = call %Uint32 @_add_Uint32(%Uint32 %"$z_619", %Uint32 %"$one_int_620"), !dbg !83 + store %Uint32 %"$add_call_621", %Uint32* %"$retval_61", align 4, !dbg !83 + %"$$retval_61_622" = load %Uint32, %Uint32* %"$retval_61", align 4 + ret %Uint32 %"$$retval_61_622" } -define internal { %Uint32 (i8*, %TName_Nat*)*, i8* } @"$fundef_58"(%"$$fundef_58_env_162"* %0, %Uint32 %1) !dbg !49 { +define internal { %Uint32 (i8*, %TName_Nat*)*, i8* } @"$fundef_58"(%"$$fundef_58_env_162"* %0, %Uint32 %1) !dbg !84 { entry: - %"$$fundef_58_env_one_int_588" = getelementptr inbounds %"$$fundef_58_env_162", %"$$fundef_58_env_162"* %0, i32 0, i32 0 - %"$one_int_envload_589" = load %Uint32, %Uint32* %"$$fundef_58_env_one_int_588", align 4 + %"$z_609" = alloca %Uint32, align 8 + store %Uint32 %1, %Uint32* %"$z_609", align 4 + call void @llvm.dbg.declare(metadata %Uint32* %"$z_609", metadata !85, metadata !DIExpression()), !dbg !86 + %"$$fundef_58_env_one_int_594" = getelementptr inbounds %"$$fundef_58_env_162", %"$$fundef_58_env_162"* %0, i32 0, i32 0 + %"$one_int_envload_595" = load %Uint32, %Uint32* %"$$fundef_58_env_one_int_594", align 4 %one_int = alloca %Uint32, align 8 - store %Uint32 %"$one_int_envload_589", %Uint32* %one_int, align 4 + store %Uint32 %"$one_int_envload_595", %Uint32* %one_int, align 4 %"$retval_59" = alloca { %Uint32 (i8*, %TName_Nat*)*, i8* }, 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" - -"$out_of_gas_592": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_593" - -"$have_gas_593": ; preds = %"$out_of_gas_592", %entry - %"$consume_594" = sub i64 %"$gasrem_590", 1 - store i64 %"$consume_594", i64* @_gasrem, align 8 - %"$$fundef_60_envp_595_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_60_envp_595_salloc" = call i8* @_salloc(i8* %"$$fundef_60_envp_595_load", i64 8) - %"$$fundef_60_envp_595" = bitcast i8* %"$$fundef_60_envp_595_salloc" to %"$$fundef_60_env_161"* - %"$$fundef_60_env_voidp_597" = bitcast %"$$fundef_60_env_161"* %"$$fundef_60_envp_595" to i8* - %"$$fundef_60_cloval_598" = insertvalue { %Uint32 (i8*, %TName_Nat*)*, i8* } { %Uint32 (i8*, %TName_Nat*)* bitcast (%Uint32 (%"$$fundef_60_env_161"*, %TName_Nat*)* @"$fundef_60" to %Uint32 (i8*, %TName_Nat*)*), i8* undef }, i8* %"$$fundef_60_env_voidp_597", 1 - %"$$fundef_60_env_one_int_599" = getelementptr inbounds %"$$fundef_60_env_161", %"$$fundef_60_env_161"* %"$$fundef_60_envp_595", i32 0, i32 0 - %"$one_int_600" = load %Uint32, %Uint32* %one_int, align 4 - store %Uint32 %"$one_int_600", %Uint32* %"$$fundef_60_env_one_int_599", align 4 - %"$$fundef_60_env_z_601" = getelementptr inbounds %"$$fundef_60_env_161", %"$$fundef_60_env_161"* %"$$fundef_60_envp_595", i32 0, i32 1 - store %Uint32 %1, %Uint32* %"$$fundef_60_env_z_601", align 4 - store { %Uint32 (i8*, %TName_Nat*)*, i8* } %"$$fundef_60_cloval_598", { %Uint32 (i8*, %TName_Nat*)*, i8* }* %"$retval_59", align 8, !dbg !50 - %"$$retval_59_602" = load { %Uint32 (i8*, %TName_Nat*)*, i8* }, { %Uint32 (i8*, %TName_Nat*)*, i8* }* %"$retval_59", align 8 - ret { %Uint32 (i8*, %TName_Nat*)*, i8* } %"$$retval_59_602" + %"$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_598": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_599" + +"$have_gas_599": ; preds = %"$out_of_gas_598", %entry + %"$consume_600" = sub i64 %"$gasrem_596", 1 + store i64 %"$consume_600", i64* @_gasrem, align 8 + %"$$fundef_60_envp_601_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_60_envp_601_salloc" = call i8* @_salloc(i8* %"$$fundef_60_envp_601_load", i64 8) + %"$$fundef_60_envp_601" = bitcast i8* %"$$fundef_60_envp_601_salloc" to %"$$fundef_60_env_161"* + %"$$fundef_60_env_voidp_603" = bitcast %"$$fundef_60_env_161"* %"$$fundef_60_envp_601" to i8* + %"$$fundef_60_cloval_604" = insertvalue { %Uint32 (i8*, %TName_Nat*)*, i8* } { %Uint32 (i8*, %TName_Nat*)* bitcast (%Uint32 (%"$$fundef_60_env_161"*, %TName_Nat*)* @"$fundef_60" to %Uint32 (i8*, %TName_Nat*)*), i8* undef }, i8* %"$$fundef_60_env_voidp_603", 1 + %"$$fundef_60_env_one_int_605" = getelementptr inbounds %"$$fundef_60_env_161", %"$$fundef_60_env_161"* %"$$fundef_60_envp_601", i32 0, i32 0 + %"$one_int_606" = load %Uint32, %Uint32* %one_int, align 4 + store %Uint32 %"$one_int_606", %Uint32* %"$$fundef_60_env_one_int_605", align 4 + %"$$fundef_60_env_z_607" = getelementptr inbounds %"$$fundef_60_env_161", %"$$fundef_60_env_161"* %"$$fundef_60_envp_601", i32 0, i32 1 + store %Uint32 %1, %Uint32* %"$$fundef_60_env_z_607", align 4 + store { %Uint32 (i8*, %TName_Nat*)*, i8* } %"$$fundef_60_cloval_604", { %Uint32 (i8*, %TName_Nat*)*, i8* }* %"$retval_59", align 8, !dbg !87 + %"$$retval_59_608" = load { %Uint32 (i8*, %TName_Nat*)*, i8* }, { %Uint32 (i8*, %TName_Nat*)*, i8* }* %"$retval_59", align 8 + ret { %Uint32 (i8*, %TName_Nat*)*, i8* } %"$$retval_59_608" } -define internal %Uint32 @"$fundef_56"(%"$$fundef_56_env_163"* %0, %TName_Nat* %1) !dbg !51 { +define internal %Uint32 @"$fundef_56"(%"$$fundef_56_env_163"* %0, %TName_Nat* %1) !dbg !88 { entry: - %"$$fundef_56_env_$nat_fold_6_512" = getelementptr inbounds %"$$fundef_56_env_163", %"$$fundef_56_env_163"* %0, i32 0, i32 0 - %"$$nat_fold_6_envload_513" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_56_env_$nat_fold_6_512", align 8 + %"$n_593" = alloca %TName_Nat*, align 8 + store %TName_Nat* %1, %TName_Nat** %"$n_593", align 8 + call void @llvm.dbg.declare(metadata %TName_Nat** %"$n_593", metadata !89, metadata !DIExpression()), !dbg !90 + %"$$fundef_56_env_$nat_fold_6_517" = getelementptr inbounds %"$$fundef_56_env_163", %"$$fundef_56_env_163"* %0, i32 0, i32 0 + %"$$nat_fold_6_envload_518" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_56_env_$nat_fold_6_517", align 8 %"$nat_fold_6" = alloca { i8*, i8* }*, align 8 - store { i8*, i8* }* %"$$nat_fold_6_envload_513", { i8*, i8* }** %"$nat_fold_6", align 8 + store { i8*, i8* }* %"$$nat_fold_6_envload_518", { i8*, i8* }** %"$nat_fold_6", align 8 %"$retval_57" = alloca %Uint32, align 8 - %"$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 = %entry - call void @_out_of_gas() - br label %"$have_gas_517" - -"$have_gas_517": ; preds = %"$out_of_gas_516", %entry - %"$consume_518" = sub i64 %"$gasrem_514", 1 - store i64 %"$consume_518", i64* @_gasrem, align 8 - %fold = alloca { { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* })*, i8* }, align 8 + call void @llvm.dbg.declare(metadata %Uint32* %"$retval_57", metadata !91, metadata !DIExpression()), !dbg !92 %"$gasrem_519" = load i64, i64* @_gasrem, align 8 %"$gascmp_520" = icmp ugt i64 1, %"$gasrem_519" br i1 %"$gascmp_520", label %"$out_of_gas_521", label %"$have_gas_522" -"$out_of_gas_521": ; preds = %"$have_gas_517" +"$out_of_gas_521": ; preds = %entry call void @_out_of_gas() br label %"$have_gas_522" -"$have_gas_522": ; preds = %"$out_of_gas_521", %"$have_gas_517" +"$have_gas_522": ; preds = %"$out_of_gas_521", %entry %"$consume_523" = sub i64 %"$gasrem_519", 1 store i64 %"$consume_523", i64* @_gasrem, align 8 - %"$$nat_fold_6_524" = load { i8*, i8* }*, { i8*, i8* }** %"$nat_fold_6", align 8 - %"$$nat_fold_6_525" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$$nat_fold_6_524", i32 0 - %"$$nat_fold_6_526" = bitcast { i8*, i8* }* %"$$nat_fold_6_525" to { { { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* }* - %"$$nat_fold_6_527" = load { { { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* }, { { { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* }* %"$$nat_fold_6_526", align 8 - %"$$nat_fold_6_fptr_528" = extractvalue { { { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* } %"$$nat_fold_6_527", 0 - %"$$nat_fold_6_envptr_529" = extractvalue { { { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* } %"$$nat_fold_6_527", 1 - %"$$nat_fold_6_call_530" = call { { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } %"$$nat_fold_6_fptr_528"(i8* %"$$nat_fold_6_envptr_529"), !dbg !52 - store { { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } %"$$nat_fold_6_call_530", { { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* })*, i8* }* %fold, align 8, !dbg !53 - %"$gasrem_531" = load i64, i64* @_gasrem, align 8 - %"$gascmp_532" = icmp ugt i64 1, %"$gasrem_531" - br i1 %"$gascmp_532", label %"$out_of_gas_533", label %"$have_gas_534" - -"$out_of_gas_533": ; preds = %"$have_gas_522" - call void @_out_of_gas() - br label %"$have_gas_534" - -"$have_gas_534": ; preds = %"$out_of_gas_533", %"$have_gas_522" - %"$consume_535" = sub i64 %"$gasrem_531", 1 - store i64 %"$consume_535", i64* @_gasrem, align 8 - %one_int = alloca %Uint32, align 8 + %fold = alloca { { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* })*, i8* }, align 8 + %"$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 = %"$have_gas_522" + call void @_out_of_gas() + br label %"$have_gas_527" + +"$have_gas_527": ; preds = %"$out_of_gas_526", %"$have_gas_522" + %"$consume_528" = sub i64 %"$gasrem_524", 1 + store i64 %"$consume_528", i64* @_gasrem, align 8 + %"$$nat_fold_6_529" = load { i8*, i8* }*, { i8*, i8* }** %"$nat_fold_6", align 8 + %"$$nat_fold_6_530" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$$nat_fold_6_529", i32 0 + %"$$nat_fold_6_531" = bitcast { i8*, i8* }* %"$$nat_fold_6_530" to { { { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* }* + %"$$nat_fold_6_532" = load { { { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* }, { { { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* }* %"$$nat_fold_6_531", align 8 + %"$$nat_fold_6_fptr_533" = extractvalue { { { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* } %"$$nat_fold_6_532", 0 + %"$$nat_fold_6_envptr_534" = extractvalue { { { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* } %"$$nat_fold_6_532", 1 + %"$$nat_fold_6_call_535" = call { { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } %"$$nat_fold_6_fptr_533"(i8* %"$$nat_fold_6_envptr_534"), !dbg !93 + store { { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } %"$$nat_fold_6_call_535", { { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* })*, i8* }* %fold, align 8, !dbg !94 %"$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_538": ; preds = %"$have_gas_534" +"$out_of_gas_538": ; preds = %"$have_gas_527" call void @_out_of_gas() br label %"$have_gas_539" -"$have_gas_539": ; preds = %"$out_of_gas_538", %"$have_gas_534" +"$have_gas_539": ; preds = %"$out_of_gas_538", %"$have_gas_527" %"$consume_540" = sub i64 %"$gasrem_536", 1 store i64 %"$consume_540", i64* @_gasrem, align 8 - store %Uint32 { i32 1 }, %Uint32* %one_int, align 4, !dbg !54 + %one_int = alloca %Uint32, align 8 + call void @llvm.dbg.declare(metadata %Uint32* %one_int, metadata !95, metadata !DIExpression()), !dbg !96 %"$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" @@ -1058,7 +1094,7 @@ entry: "$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 - %f = alloca { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* }, align 8 + store %Uint32 { i32 1 }, %Uint32* %one_int, align 4, !dbg !97 %"$gasrem_546" = load i64, i64* @_gasrem, align 8 %"$gascmp_547" = icmp ugt i64 1, %"$gasrem_546" br i1 %"$gascmp_547", label %"$out_of_gas_548", label %"$have_gas_549" @@ -1070,39 +1106,40 @@ entry: "$have_gas_549": ; preds = %"$out_of_gas_548", %"$have_gas_544" %"$consume_550" = sub i64 %"$gasrem_546", 1 store i64 %"$consume_550", i64* @_gasrem, align 8 - %"$$fundef_58_envp_551_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_58_envp_551_salloc" = call i8* @_salloc(i8* %"$$fundef_58_envp_551_load", i64 4) - %"$$fundef_58_envp_551" = bitcast i8* %"$$fundef_58_envp_551_salloc" to %"$$fundef_58_env_162"* - %"$$fundef_58_env_voidp_553" = bitcast %"$$fundef_58_env_162"* %"$$fundef_58_envp_551" to i8* - %"$$fundef_58_cloval_554" = insertvalue { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* } { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)* bitcast ({ %Uint32 (i8*, %TName_Nat*)*, i8* } (%"$$fundef_58_env_162"*, %Uint32)* @"$fundef_58" to { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*), i8* undef }, i8* %"$$fundef_58_env_voidp_553", 1 - %"$$fundef_58_env_one_int_555" = getelementptr inbounds %"$$fundef_58_env_162", %"$$fundef_58_env_162"* %"$$fundef_58_envp_551", i32 0, i32 0 - %"$one_int_556" = load %Uint32, %Uint32* %one_int, align 4 - store %Uint32 %"$one_int_556", %Uint32* %"$$fundef_58_env_one_int_555", align 4 - store { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* } %"$$fundef_58_cloval_554", { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* }* %f, align 8, !dbg !55 - %"$gasrem_557" = load i64, i64* @_gasrem, align 8 - %"$gascmp_558" = icmp ugt i64 1, %"$gasrem_557" - br i1 %"$gascmp_558", label %"$out_of_gas_559", label %"$have_gas_560" - -"$out_of_gas_559": ; preds = %"$have_gas_549" - call void @_out_of_gas() - br label %"$have_gas_560" - -"$have_gas_560": ; preds = %"$out_of_gas_559", %"$have_gas_549" - %"$consume_561" = sub i64 %"$gasrem_557", 1 - store i64 %"$consume_561", i64* @_gasrem, align 8 - %zero_int = alloca %Uint32, align 8 + %f = alloca { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* }, align 8 + %"$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_553": ; preds = %"$have_gas_549" + call void @_out_of_gas() + br label %"$have_gas_554" + +"$have_gas_554": ; preds = %"$out_of_gas_553", %"$have_gas_549" + %"$consume_555" = sub i64 %"$gasrem_551", 1 + store i64 %"$consume_555", i64* @_gasrem, align 8 + %"$$fundef_58_envp_556_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_58_envp_556_salloc" = call i8* @_salloc(i8* %"$$fundef_58_envp_556_load", i64 4) + %"$$fundef_58_envp_556" = bitcast i8* %"$$fundef_58_envp_556_salloc" to %"$$fundef_58_env_162"* + %"$$fundef_58_env_voidp_558" = bitcast %"$$fundef_58_env_162"* %"$$fundef_58_envp_556" to i8* + %"$$fundef_58_cloval_559" = insertvalue { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* } { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)* bitcast ({ %Uint32 (i8*, %TName_Nat*)*, i8* } (%"$$fundef_58_env_162"*, %Uint32)* @"$fundef_58" to { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*), i8* undef }, i8* %"$$fundef_58_env_voidp_558", 1 + %"$$fundef_58_env_one_int_560" = getelementptr inbounds %"$$fundef_58_env_162", %"$$fundef_58_env_162"* %"$$fundef_58_envp_556", i32 0, i32 0 + %"$one_int_561" = load %Uint32, %Uint32* %one_int, align 4 + store %Uint32 %"$one_int_561", %Uint32* %"$$fundef_58_env_one_int_560", align 4 + store { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* } %"$$fundef_58_cloval_559", { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* }* %f, align 8, !dbg !98 %"$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_564": ; preds = %"$have_gas_560" +"$out_of_gas_564": ; preds = %"$have_gas_554" call void @_out_of_gas() br label %"$have_gas_565" -"$have_gas_565": ; preds = %"$out_of_gas_564", %"$have_gas_560" +"$have_gas_565": ; preds = %"$out_of_gas_564", %"$have_gas_554" %"$consume_566" = sub i64 %"$gasrem_562", 1 store i64 %"$consume_566", i64* @_gasrem, align 8 - store %Uint32 zeroinitializer, %Uint32* %zero_int, align 4, !dbg !56 + %zero_int = alloca %Uint32, align 8 + call void @llvm.dbg.declare(metadata %Uint32* %zero_int, metadata !99, metadata !DIExpression()), !dbg !100 %"$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" @@ -1114,502 +1151,538 @@ entry: "$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 %Uint32 zeroinitializer, %Uint32* %zero_int, align 4, !dbg !101 + %"$gasrem_572" = load i64, i64* @_gasrem, align 8 + %"$gascmp_573" = icmp ugt i64 1, %"$gasrem_572" + br i1 %"$gascmp_573", label %"$out_of_gas_574", label %"$have_gas_575" + +"$out_of_gas_574": ; preds = %"$have_gas_570" + call void @_out_of_gas() + br label %"$have_gas_575" + +"$have_gas_575": ; preds = %"$out_of_gas_574", %"$have_gas_570" + %"$consume_576" = sub i64 %"$gasrem_572", 1 + store i64 %"$consume_576", i64* @_gasrem, align 8 %"$fold_15" = alloca { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* }, align 8 - %"$fold_572" = load { { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* })*, i8* }, { { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* })*, i8* }* %fold, align 8 - %"$fold_fptr_573" = extractvalue { { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } %"$fold_572", 0 - %"$fold_envptr_574" = extractvalue { { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } %"$fold_572", 1 - %"$f_575" = load { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* }* %f, align 8 - %"$fold_call_576" = call { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* } %"$fold_fptr_573"(i8* %"$fold_envptr_574", { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* } %"$f_575"), !dbg !57 - store { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* } %"$fold_call_576", { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* }* %"$fold_15", align 8, !dbg !57 + %"$fold_577" = load { { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* })*, i8* }, { { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* })*, i8* }* %fold, align 8 + %"$fold_fptr_578" = extractvalue { { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } %"$fold_577", 0 + %"$fold_envptr_579" = extractvalue { { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } %"$fold_577", 1 + %"$f_580" = load { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* }* %f, align 8 + %"$fold_call_581" = call { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* } %"$fold_fptr_578"(i8* %"$fold_envptr_579", { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* } %"$f_580"), !dbg !102 + store { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* } %"$fold_call_581", { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* }* %"$fold_15", align 8, !dbg !102 %"$fold_16" = alloca { %Uint32 (i8*, %TName_Nat*)*, i8* }, align 8 - %"$$fold_15_577" = load { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* }* %"$fold_15", align 8 - %"$$fold_15_fptr_578" = extractvalue { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* } %"$$fold_15_577", 0 - %"$$fold_15_envptr_579" = extractvalue { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* } %"$$fold_15_577", 1 - %"$zero_int_580" = load %Uint32, %Uint32* %zero_int, align 4 - %"$$fold_15_call_581" = call { %Uint32 (i8*, %TName_Nat*)*, i8* } %"$$fold_15_fptr_578"(i8* %"$$fold_15_envptr_579", %Uint32 %"$zero_int_580"), !dbg !57 - store { %Uint32 (i8*, %TName_Nat*)*, i8* } %"$$fold_15_call_581", { %Uint32 (i8*, %TName_Nat*)*, i8* }* %"$fold_16", align 8, !dbg !57 + %"$$fold_15_582" = load { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* }* %"$fold_15", align 8 + %"$$fold_15_fptr_583" = extractvalue { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* } %"$$fold_15_582", 0 + %"$$fold_15_envptr_584" = extractvalue { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* } %"$$fold_15_582", 1 + %"$zero_int_585" = load %Uint32, %Uint32* %zero_int, align 4 + %"$$fold_15_call_586" = call { %Uint32 (i8*, %TName_Nat*)*, i8* } %"$$fold_15_fptr_583"(i8* %"$$fold_15_envptr_584", %Uint32 %"$zero_int_585"), !dbg !102 + store { %Uint32 (i8*, %TName_Nat*)*, i8* } %"$$fold_15_call_586", { %Uint32 (i8*, %TName_Nat*)*, i8* }* %"$fold_16", align 8, !dbg !102 %"$fold_17" = alloca %Uint32, align 8 - %"$$fold_16_582" = load { %Uint32 (i8*, %TName_Nat*)*, i8* }, { %Uint32 (i8*, %TName_Nat*)*, i8* }* %"$fold_16", align 8 - %"$$fold_16_fptr_583" = extractvalue { %Uint32 (i8*, %TName_Nat*)*, i8* } %"$$fold_16_582", 0 - %"$$fold_16_envptr_584" = extractvalue { %Uint32 (i8*, %TName_Nat*)*, i8* } %"$$fold_16_582", 1 - %"$$fold_16_call_585" = call %Uint32 %"$$fold_16_fptr_583"(i8* %"$$fold_16_envptr_584", %TName_Nat* %1), !dbg !57 - store %Uint32 %"$$fold_16_call_585", %Uint32* %"$fold_17", align 4, !dbg !57 - %"$$fold_17_586" = load %Uint32, %Uint32* %"$fold_17", align 4 - store %Uint32 %"$$fold_17_586", %Uint32* %"$retval_57", align 4, !dbg !57 - %"$$retval_57_587" = load %Uint32, %Uint32* %"$retval_57", align 4 - ret %Uint32 %"$$retval_57_587" + call void @llvm.dbg.declare(metadata %Uint32* %"$fold_17", metadata !103, metadata !DIExpression()), !dbg !102 + %"$$fold_16_587" = load { %Uint32 (i8*, %TName_Nat*)*, i8* }, { %Uint32 (i8*, %TName_Nat*)*, i8* }* %"$fold_16", align 8 + %"$$fold_16_fptr_588" = extractvalue { %Uint32 (i8*, %TName_Nat*)*, i8* } %"$$fold_16_587", 0 + %"$$fold_16_envptr_589" = extractvalue { %Uint32 (i8*, %TName_Nat*)*, i8* } %"$$fold_16_587", 1 + %"$$fold_16_call_590" = call %Uint32 %"$$fold_16_fptr_588"(i8* %"$$fold_16_envptr_589", %TName_Nat* %1), !dbg !102 + store %Uint32 %"$$fold_16_call_590", %Uint32* %"$fold_17", align 4, !dbg !102 + %"$$fold_17_591" = load %Uint32, %Uint32* %"$fold_17", align 4 + store %Uint32 %"$$fold_17_591", %Uint32* %"$retval_57", align 4, !dbg !102 + %"$$retval_57_592" = load %Uint32, %Uint32* %"$retval_57", align 4 + ret %Uint32 %"$$retval_57_592" } -define internal %Uint32 @"$fundef_54"(%"$$fundef_54_env_164"* %0, %TName_Nat* %1) !dbg !58 { +define internal %Uint32 @"$fundef_54"(%"$$fundef_54_env_164"* %0, %TName_Nat* %1) !dbg !104 { entry: - %"$$fundef_54_env_f0_447" = getelementptr inbounds %"$$fundef_54_env_164", %"$$fundef_54_env_164"* %0, i32 0, i32 0 - %"$f0_envload_448" = load %Uint32, %Uint32* %"$$fundef_54_env_f0_447", align 4 + %"$n_516" = alloca %TName_Nat*, align 8 + store %TName_Nat* %1, %TName_Nat** %"$n_516", align 8 + call void @llvm.dbg.declare(metadata %TName_Nat** %"$n_516", metadata !106, metadata !DIExpression()), !dbg !107 + %"$$fundef_54_env_f0_451" = getelementptr inbounds %"$$fundef_54_env_164", %"$$fundef_54_env_164"* %0, i32 0, i32 0 + %"$f0_envload_452" = load %Uint32, %Uint32* %"$$fundef_54_env_f0_451", align 4 %f0 = alloca %Uint32, align 8 - store %Uint32 %"$f0_envload_448", %Uint32* %f0, align 4 - %"$$fundef_54_env_fn_449" = getelementptr inbounds %"$$fundef_54_env_164", %"$$fundef_54_env_164"* %0, i32 0, i32 1 - %"$fn_envload_450" = load { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* }* %"$$fundef_54_env_fn_449", align 8 + store %Uint32 %"$f0_envload_452", %Uint32* %f0, align 4 + %"$$fundef_54_env_fn_453" = getelementptr inbounds %"$$fundef_54_env_164", %"$$fundef_54_env_164"* %0, i32 0, i32 1 + %"$fn_envload_454" = load { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* }* %"$$fundef_54_env_fn_453", align 8 %fn = alloca { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* }, align 8 - store { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* } %"$fn_envload_450", { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* }* %fn, align 8 - %"$$fundef_54_env_g_451" = getelementptr inbounds %"$$fundef_54_env_164", %"$$fundef_54_env_164"* %0, i32 0, i32 2 - %"$g_envload_452" = load { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* }* %"$$fundef_54_env_g_451", align 8 + store { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* } %"$fn_envload_454", { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* }* %fn, align 8 + %"$$fundef_54_env_g_455" = getelementptr inbounds %"$$fundef_54_env_164", %"$$fundef_54_env_164"* %0, i32 0, i32 2 + %"$g_envload_456" = load { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* }* %"$$fundef_54_env_g_455", align 8 %g = alloca { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* }, align 8 - store { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* } %"$g_envload_452", { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* }* %g, align 8 + store { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* } %"$g_envload_456", { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* }* %g, align 8 %"$retval_55" = alloca %Uint32, align 8 - %"$gasrem_453" = load i64, i64* @_gasrem, align 8 - %"$gascmp_454" = icmp ugt i64 2, %"$gasrem_453" - br i1 %"$gascmp_454", label %"$out_of_gas_455", label %"$have_gas_456" - -"$out_of_gas_455": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_456" - -"$have_gas_456": ; preds = %"$out_of_gas_455", %entry - %"$consume_457" = sub i64 %"$gasrem_453", 2 - store i64 %"$consume_457", i64* @_gasrem, align 8 - %"$n_tag_459" = getelementptr inbounds %TName_Nat, %TName_Nat* %1, i32 0, i32 0 - %"$n_tag_460" = load i8, i8* %"$n_tag_459", align 1 - switch i8 %"$n_tag_460", label %"$empty_default_461" [ - i8 1, label %"$Succ_462" - i8 0, label %"$Zero_503" - ], !dbg !60 - -"$Succ_462": ; preds = %"$have_gas_456" - %"$n_463" = bitcast %TName_Nat* %1 to %CName_Succ* - %"$n1_gep_464" = getelementptr inbounds %CName_Succ, %CName_Succ* %"$n_463", i32 0, i32 1 - %"$n1_load_465" = load %TName_Nat*, %TName_Nat** %"$n1_gep_464", align 8 + call void @llvm.dbg.declare(metadata %Uint32* %"$retval_55", metadata !108, metadata !DIExpression()), !dbg !109 + %"$gasrem_457" = load i64, i64* @_gasrem, align 8 + %"$gascmp_458" = icmp ugt i64 2, %"$gasrem_457" + br i1 %"$gascmp_458", label %"$out_of_gas_459", label %"$have_gas_460" + +"$out_of_gas_459": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_460" + +"$have_gas_460": ; preds = %"$out_of_gas_459", %entry + %"$consume_461" = sub i64 %"$gasrem_457", 2 + store i64 %"$consume_461", i64* @_gasrem, align 8 + %"$n_tag_463" = getelementptr inbounds %TName_Nat, %TName_Nat* %1, i32 0, i32 0 + %"$n_tag_464" = load i8, i8* %"$n_tag_463", align 1 + switch i8 %"$n_tag_464", label %"$empty_default_465" [ + i8 1, label %"$Succ_466" + i8 0, label %"$Zero_507" + ], !dbg !109 + +"$Succ_466": ; preds = %"$have_gas_460" + %"$n_467" = bitcast %TName_Nat* %1 to %CName_Succ* + %"$n1_gep_468" = getelementptr inbounds %CName_Succ, %CName_Succ* %"$n_467", i32 0, i32 1 + %"$n1_load_469" = load %TName_Nat*, %TName_Nat** %"$n1_gep_468", align 8 %n1 = alloca %TName_Nat*, align 8 - store %TName_Nat* %"$n1_load_465", %TName_Nat** %n1, 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" + store %TName_Nat* %"$n1_load_469", %TName_Nat** %n1, align 8 + %"$gasrem_470" = load i64, i64* @_gasrem, align 8 + %"$gascmp_471" = icmp ugt i64 1, %"$gasrem_470" + br i1 %"$gascmp_471", label %"$out_of_gas_472", label %"$have_gas_473" -"$out_of_gas_468": ; preds = %"$Succ_462" +"$out_of_gas_472": ; preds = %"$Succ_466" call void @_out_of_gas() - br label %"$have_gas_469" + br label %"$have_gas_473" -"$have_gas_469": ; preds = %"$out_of_gas_468", %"$Succ_462" - %"$consume_470" = sub i64 %"$gasrem_466", 1 - store i64 %"$consume_470", i64* @_gasrem, align 8 +"$have_gas_473": ; preds = %"$out_of_gas_472", %"$Succ_466" + %"$consume_474" = sub i64 %"$gasrem_470", 1 + store i64 %"$consume_474", i64* @_gasrem, align 8 %res = alloca %Uint32, 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" + call void @llvm.dbg.declare(metadata %Uint32* %res, metadata !110, metadata !DIExpression()), !dbg !113 + %"$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_473": ; preds = %"$have_gas_469" +"$out_of_gas_477": ; preds = %"$have_gas_473" call void @_out_of_gas() - br label %"$have_gas_474" + br label %"$have_gas_478" -"$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 +"$have_gas_478": ; preds = %"$out_of_gas_477", %"$have_gas_473" + %"$consume_479" = sub i64 %"$gasrem_475", 1 + store i64 %"$consume_479", i64* @_gasrem, align 8 %"$fn_11" = alloca { %Uint32 (i8*, %TName_Nat*)*, i8* }, align 8 - %"$fn_476" = load { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* }* %fn, align 8 - %"$fn_fptr_477" = extractvalue { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* } %"$fn_476", 0 - %"$fn_envptr_478" = extractvalue { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* } %"$fn_476", 1 - %"$f0_479" = load %Uint32, %Uint32* %f0, align 4 - %"$fn_call_480" = call { %Uint32 (i8*, %TName_Nat*)*, i8* } %"$fn_fptr_477"(i8* %"$fn_envptr_478", %Uint32 %"$f0_479"), !dbg !61 - store { %Uint32 (i8*, %TName_Nat*)*, i8* } %"$fn_call_480", { %Uint32 (i8*, %TName_Nat*)*, i8* }* %"$fn_11", align 8, !dbg !61 + %"$fn_480" = load { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* }* %fn, align 8 + %"$fn_fptr_481" = extractvalue { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* } %"$fn_480", 0 + %"$fn_envptr_482" = extractvalue { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* } %"$fn_480", 1 + %"$f0_483" = load %Uint32, %Uint32* %f0, align 4 + %"$fn_call_484" = call { %Uint32 (i8*, %TName_Nat*)*, i8* } %"$fn_fptr_481"(i8* %"$fn_envptr_482", %Uint32 %"$f0_483"), !dbg !114 + store { %Uint32 (i8*, %TName_Nat*)*, i8* } %"$fn_call_484", { %Uint32 (i8*, %TName_Nat*)*, i8* }* %"$fn_11", align 8, !dbg !114 %"$fn_12" = alloca %Uint32, align 8 - %"$$fn_11_481" = load { %Uint32 (i8*, %TName_Nat*)*, i8* }, { %Uint32 (i8*, %TName_Nat*)*, i8* }* %"$fn_11", align 8 - %"$$fn_11_fptr_482" = extractvalue { %Uint32 (i8*, %TName_Nat*)*, i8* } %"$$fn_11_481", 0 - %"$$fn_11_envptr_483" = extractvalue { %Uint32 (i8*, %TName_Nat*)*, i8* } %"$$fn_11_481", 1 - %"$n1_484" = load %TName_Nat*, %TName_Nat** %n1, align 8 - %"$$fn_11_call_485" = call %Uint32 %"$$fn_11_fptr_482"(i8* %"$$fn_11_envptr_483", %TName_Nat* %"$n1_484"), !dbg !61 - store %Uint32 %"$$fn_11_call_485", %Uint32* %"$fn_12", align 4, !dbg !61 - %"$$fn_12_486" = load %Uint32, %Uint32* %"$fn_12", align 4 - store %Uint32 %"$$fn_12_486", %Uint32* %res, align 4, !dbg !61 - %"$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_489": ; preds = %"$have_gas_474" - call void @_out_of_gas() - br label %"$have_gas_490" - -"$have_gas_490": ; preds = %"$out_of_gas_489", %"$have_gas_474" - %"$consume_491" = sub i64 %"$gasrem_487", 1 - store i64 %"$consume_491", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %Uint32* %"$fn_12", metadata !115, metadata !DIExpression()), !dbg !114 + %"$$fn_11_485" = load { %Uint32 (i8*, %TName_Nat*)*, i8* }, { %Uint32 (i8*, %TName_Nat*)*, i8* }* %"$fn_11", align 8 + %"$$fn_11_fptr_486" = extractvalue { %Uint32 (i8*, %TName_Nat*)*, i8* } %"$$fn_11_485", 0 + %"$$fn_11_envptr_487" = extractvalue { %Uint32 (i8*, %TName_Nat*)*, i8* } %"$$fn_11_485", 1 + %"$n1_488" = load %TName_Nat*, %TName_Nat** %n1, align 8 + %"$$fn_11_call_489" = call %Uint32 %"$$fn_11_fptr_486"(i8* %"$$fn_11_envptr_487", %TName_Nat* %"$n1_488"), !dbg !114 + store %Uint32 %"$$fn_11_call_489", %Uint32* %"$fn_12", align 4, !dbg !114 + %"$$fn_12_490" = load %Uint32, %Uint32* %"$fn_12", align 4 + store %Uint32 %"$$fn_12_490", %Uint32* %res, align 4, !dbg !114 + %"$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_478" + call void @_out_of_gas() + br label %"$have_gas_494" + +"$have_gas_494": ; preds = %"$out_of_gas_493", %"$have_gas_478" + %"$consume_495" = sub i64 %"$gasrem_491", 1 + store i64 %"$consume_495", i64* @_gasrem, align 8 %"$g_13" = alloca { %Uint32 (i8*, %TName_Nat*)*, i8* }, align 8 - %"$g_492" = load { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* }* %g, align 8 - %"$g_fptr_493" = extractvalue { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* } %"$g_492", 0 - %"$g_envptr_494" = extractvalue { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* } %"$g_492", 1 - %"$res_495" = load %Uint32, %Uint32* %res, align 4 - %"$g_call_496" = call { %Uint32 (i8*, %TName_Nat*)*, i8* } %"$g_fptr_493"(i8* %"$g_envptr_494", %Uint32 %"$res_495"), !dbg !64 - store { %Uint32 (i8*, %TName_Nat*)*, i8* } %"$g_call_496", { %Uint32 (i8*, %TName_Nat*)*, i8* }* %"$g_13", align 8, !dbg !64 + %"$g_496" = load { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* }* %g, align 8 + %"$g_fptr_497" = extractvalue { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* } %"$g_496", 0 + %"$g_envptr_498" = extractvalue { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* } %"$g_496", 1 + %"$res_499" = load %Uint32, %Uint32* %res, align 4 + %"$g_call_500" = call { %Uint32 (i8*, %TName_Nat*)*, i8* } %"$g_fptr_497"(i8* %"$g_envptr_498", %Uint32 %"$res_499"), !dbg !116 + store { %Uint32 (i8*, %TName_Nat*)*, i8* } %"$g_call_500", { %Uint32 (i8*, %TName_Nat*)*, i8* }* %"$g_13", align 8, !dbg !116 %"$g_14" = alloca %Uint32, align 8 - %"$$g_13_497" = load { %Uint32 (i8*, %TName_Nat*)*, i8* }, { %Uint32 (i8*, %TName_Nat*)*, i8* }* %"$g_13", align 8 - %"$$g_13_fptr_498" = extractvalue { %Uint32 (i8*, %TName_Nat*)*, i8* } %"$$g_13_497", 0 - %"$$g_13_envptr_499" = extractvalue { %Uint32 (i8*, %TName_Nat*)*, i8* } %"$$g_13_497", 1 - %"$n1_500" = load %TName_Nat*, %TName_Nat** %n1, align 8 - %"$$g_13_call_501" = call %Uint32 %"$$g_13_fptr_498"(i8* %"$$g_13_envptr_499", %TName_Nat* %"$n1_500"), !dbg !64 - store %Uint32 %"$$g_13_call_501", %Uint32* %"$g_14", align 4, !dbg !64 - %"$$g_14_502" = load %Uint32, %Uint32* %"$g_14", align 4 - store %Uint32 %"$$g_14_502", %Uint32* %"$retval_55", align 4, !dbg !64 - br label %"$matchsucc_458" - -"$Zero_503": ; preds = %"$have_gas_456" - %"$n_504" = bitcast %TName_Nat* %1 to %CName_Zero* - %"$gasrem_505" = load i64, i64* @_gasrem, align 8 - %"$gascmp_506" = icmp ugt i64 1, %"$gasrem_505" - br i1 %"$gascmp_506", label %"$out_of_gas_507", label %"$have_gas_508" - -"$out_of_gas_507": ; preds = %"$Zero_503" - call void @_out_of_gas() - br label %"$have_gas_508" - -"$have_gas_508": ; preds = %"$out_of_gas_507", %"$Zero_503" - %"$consume_509" = sub i64 %"$gasrem_505", 1 - store i64 %"$consume_509", i64* @_gasrem, align 8 - %"$f0_510" = load %Uint32, %Uint32* %f0, align 4 - store %Uint32 %"$f0_510", %Uint32* %"$retval_55", align 4, !dbg !65 - br label %"$matchsucc_458" - -"$empty_default_461": ; preds = %"$have_gas_456" - br label %"$matchsucc_458" - -"$matchsucc_458": ; preds = %"$have_gas_508", %"$have_gas_490", %"$empty_default_461" - %"$$retval_55_511" = load %Uint32, %Uint32* %"$retval_55", align 4 - ret %Uint32 %"$$retval_55_511" + call void @llvm.dbg.declare(metadata %Uint32* %"$g_14", metadata !117, metadata !DIExpression()), !dbg !116 + %"$$g_13_501" = load { %Uint32 (i8*, %TName_Nat*)*, i8* }, { %Uint32 (i8*, %TName_Nat*)*, i8* }* %"$g_13", align 8 + %"$$g_13_fptr_502" = extractvalue { %Uint32 (i8*, %TName_Nat*)*, i8* } %"$$g_13_501", 0 + %"$$g_13_envptr_503" = extractvalue { %Uint32 (i8*, %TName_Nat*)*, i8* } %"$$g_13_501", 1 + %"$n1_504" = load %TName_Nat*, %TName_Nat** %n1, align 8 + %"$$g_13_call_505" = call %Uint32 %"$$g_13_fptr_502"(i8* %"$$g_13_envptr_503", %TName_Nat* %"$n1_504"), !dbg !116 + store %Uint32 %"$$g_13_call_505", %Uint32* %"$g_14", align 4, !dbg !116 + %"$$g_14_506" = load %Uint32, %Uint32* %"$g_14", align 4 + store %Uint32 %"$$g_14_506", %Uint32* %"$retval_55", align 4, !dbg !116 + br label %"$matchsucc_462" + +"$Zero_507": ; preds = %"$have_gas_460" + %"$n_508" = bitcast %TName_Nat* %1 to %CName_Zero* + %"$gasrem_509" = load i64, i64* @_gasrem, align 8 + %"$gascmp_510" = icmp ugt i64 1, %"$gasrem_509" + br i1 %"$gascmp_510", label %"$out_of_gas_511", label %"$have_gas_512" + +"$out_of_gas_511": ; preds = %"$Zero_507" + call void @_out_of_gas() + br label %"$have_gas_512" + +"$have_gas_512": ; preds = %"$out_of_gas_511", %"$Zero_507" + %"$consume_513" = sub i64 %"$gasrem_509", 1 + store i64 %"$consume_513", i64* @_gasrem, align 8 + %"$f0_514" = load %Uint32, %Uint32* %f0, align 4 + store %Uint32 %"$f0_514", %Uint32* %"$retval_55", align 4, !dbg !118 + br label %"$matchsucc_462" + +"$empty_default_465": ; preds = %"$have_gas_460" + br label %"$matchsucc_462" + +"$matchsucc_462": ; preds = %"$have_gas_512", %"$have_gas_494", %"$empty_default_465" + %"$$retval_55_515" = load %Uint32, %Uint32* %"$retval_55", align 4 + ret %Uint32 %"$$retval_55_515" } -define internal { %Uint32 (i8*, %TName_Nat*)*, i8* } @"$fundef_52"(%"$$fundef_52_env_165"* %0, %Uint32 %1) !dbg !67 { +define internal { %Uint32 (i8*, %TName_Nat*)*, i8* } @"$fundef_52"(%"$$fundef_52_env_165"* %0, %Uint32 %1) !dbg !120 { entry: - %"$$fundef_52_env_fn_423" = getelementptr inbounds %"$$fundef_52_env_165", %"$$fundef_52_env_165"* %0, i32 0, i32 0 - %"$fn_envload_424" = load { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* }* %"$$fundef_52_env_fn_423", align 8 + %"$f0_450" = alloca %Uint32, align 8 + store %Uint32 %1, %Uint32* %"$f0_450", align 4 + call void @llvm.dbg.declare(metadata %Uint32* %"$f0_450", metadata !121, metadata !DIExpression()), !dbg !122 + %"$$fundef_52_env_fn_426" = getelementptr inbounds %"$$fundef_52_env_165", %"$$fundef_52_env_165"* %0, i32 0, i32 0 + %"$fn_envload_427" = load { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* }* %"$$fundef_52_env_fn_426", align 8 %fn = alloca { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* }, align 8 - store { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* } %"$fn_envload_424", { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* }* %fn, align 8 - %"$$fundef_52_env_g_425" = getelementptr inbounds %"$$fundef_52_env_165", %"$$fundef_52_env_165"* %0, i32 0, i32 1 - %"$g_envload_426" = load { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* }* %"$$fundef_52_env_g_425", align 8 + store { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* } %"$fn_envload_427", { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* }* %fn, align 8 + %"$$fundef_52_env_g_428" = getelementptr inbounds %"$$fundef_52_env_165", %"$$fundef_52_env_165"* %0, i32 0, i32 1 + %"$g_envload_429" = load { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* }* %"$$fundef_52_env_g_428", align 8 %g = alloca { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* }, align 8 - store { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* } %"$g_envload_426", { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* }* %g, align 8 + store { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* } %"$g_envload_429", { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* }* %g, align 8 %"$retval_53" = alloca { %Uint32 (i8*, %TName_Nat*)*, 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" - -"$out_of_gas_429": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_430" - -"$have_gas_430": ; preds = %"$out_of_gas_429", %entry - %"$consume_431" = sub i64 %"$gasrem_427", 1 - store i64 %"$consume_431", i64* @_gasrem, align 8 - %"$gasrem_432" = load i64, i64* @_gasrem, align 8 - %"$gascmp_433" = icmp ugt i64 1, %"$gasrem_432" - br i1 %"$gascmp_433", label %"$out_of_gas_434", label %"$have_gas_435" - -"$out_of_gas_434": ; preds = %"$have_gas_430" - call void @_out_of_gas() - br label %"$have_gas_435" - -"$have_gas_435": ; preds = %"$out_of_gas_434", %"$have_gas_430" - %"$consume_436" = sub i64 %"$gasrem_432", 1 - store i64 %"$consume_436", i64* @_gasrem, align 8 - %"$$fundef_54_envp_437_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_54_envp_437_salloc" = call i8* @_salloc(i8* %"$$fundef_54_envp_437_load", i64 40) - %"$$fundef_54_envp_437" = bitcast i8* %"$$fundef_54_envp_437_salloc" to %"$$fundef_54_env_164"* - %"$$fundef_54_env_voidp_439" = bitcast %"$$fundef_54_env_164"* %"$$fundef_54_envp_437" to i8* - %"$$fundef_54_cloval_440" = insertvalue { %Uint32 (i8*, %TName_Nat*)*, i8* } { %Uint32 (i8*, %TName_Nat*)* bitcast (%Uint32 (%"$$fundef_54_env_164"*, %TName_Nat*)* @"$fundef_54" to %Uint32 (i8*, %TName_Nat*)*), i8* undef }, i8* %"$$fundef_54_env_voidp_439", 1 - %"$$fundef_54_env_f0_441" = getelementptr inbounds %"$$fundef_54_env_164", %"$$fundef_54_env_164"* %"$$fundef_54_envp_437", i32 0, i32 0 - store %Uint32 %1, %Uint32* %"$$fundef_54_env_f0_441", align 4 - %"$$fundef_54_env_fn_442" = getelementptr inbounds %"$$fundef_54_env_164", %"$$fundef_54_env_164"* %"$$fundef_54_envp_437", i32 0, i32 1 - %"$fn_443" = load { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* }* %fn, align 8 - store { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* } %"$fn_443", { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* }* %"$$fundef_54_env_fn_442", align 8 - %"$$fundef_54_env_g_444" = getelementptr inbounds %"$$fundef_54_env_164", %"$$fundef_54_env_164"* %"$$fundef_54_envp_437", i32 0, i32 2 - %"$g_445" = load { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* }* %g, align 8 - store { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* } %"$g_445", { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* }* %"$$fundef_54_env_g_444", align 8 - store { %Uint32 (i8*, %TName_Nat*)*, i8* } %"$$fundef_54_cloval_440", { %Uint32 (i8*, %TName_Nat*)*, i8* }* %"$retval_53", align 8, !dbg !68 - %"$$retval_53_446" = load { %Uint32 (i8*, %TName_Nat*)*, i8* }, { %Uint32 (i8*, %TName_Nat*)*, i8* }* %"$retval_53", align 8 - ret { %Uint32 (i8*, %TName_Nat*)*, i8* } %"$$retval_53_446" + %"$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 + %"$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_437": ; preds = %"$have_gas_433" + call void @_out_of_gas() + br label %"$have_gas_438" + +"$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 + %"$$fundef_54_envp_440_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_54_envp_440_salloc" = call i8* @_salloc(i8* %"$$fundef_54_envp_440_load", i64 40) + %"$$fundef_54_envp_440" = bitcast i8* %"$$fundef_54_envp_440_salloc" to %"$$fundef_54_env_164"* + %"$$fundef_54_env_voidp_442" = bitcast %"$$fundef_54_env_164"* %"$$fundef_54_envp_440" to i8* + %"$$fundef_54_cloval_443" = insertvalue { %Uint32 (i8*, %TName_Nat*)*, i8* } { %Uint32 (i8*, %TName_Nat*)* bitcast (%Uint32 (%"$$fundef_54_env_164"*, %TName_Nat*)* @"$fundef_54" to %Uint32 (i8*, %TName_Nat*)*), i8* undef }, i8* %"$$fundef_54_env_voidp_442", 1 + %"$$fundef_54_env_f0_444" = getelementptr inbounds %"$$fundef_54_env_164", %"$$fundef_54_env_164"* %"$$fundef_54_envp_440", i32 0, i32 0 + store %Uint32 %1, %Uint32* %"$$fundef_54_env_f0_444", align 4 + %"$$fundef_54_env_fn_445" = getelementptr inbounds %"$$fundef_54_env_164", %"$$fundef_54_env_164"* %"$$fundef_54_envp_440", i32 0, i32 1 + %"$fn_446" = load { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* }* %fn, align 8 + store { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* } %"$fn_446", { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* }* %"$$fundef_54_env_fn_445", align 8 + %"$$fundef_54_env_g_447" = getelementptr inbounds %"$$fundef_54_env_164", %"$$fundef_54_env_164"* %"$$fundef_54_envp_440", i32 0, i32 2 + %"$g_448" = load { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* }* %g, align 8 + store { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* } %"$g_448", { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* }* %"$$fundef_54_env_g_447", align 8 + store { %Uint32 (i8*, %TName_Nat*)*, i8* } %"$$fundef_54_cloval_443", { %Uint32 (i8*, %TName_Nat*)*, i8* }* %"$retval_53", align 8, !dbg !123 + %"$$retval_53_449" = load { %Uint32 (i8*, %TName_Nat*)*, i8* }, { %Uint32 (i8*, %TName_Nat*)*, i8* }* %"$retval_53", align 8 + ret { %Uint32 (i8*, %TName_Nat*)*, i8* } %"$$retval_53_449" } -define internal { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* } @"$fundef_50"(%"$$fundef_50_env_166"* %0, { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* } %1) !dbg !69 { +define internal { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* } @"$fundef_50"(%"$$fundef_50_env_166"* %0, { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* } %1) !dbg !124 { entry: %"$retval_51" = alloca { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* }, 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" - -"$out_of_gas_411": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_412" - -"$have_gas_412": ; preds = %"$out_of_gas_411", %entry - %"$consume_413" = sub i64 %"$gasrem_409", 1 - store i64 %"$consume_413", i64* @_gasrem, align 8 - %"$$fundef_52_envp_414_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_52_envp_414_salloc" = call i8* @_salloc(i8* %"$$fundef_52_envp_414_load", i64 32) - %"$$fundef_52_envp_414" = bitcast i8* %"$$fundef_52_envp_414_salloc" to %"$$fundef_52_env_165"* - %"$$fundef_52_env_voidp_416" = bitcast %"$$fundef_52_env_165"* %"$$fundef_52_envp_414" to i8* - %"$$fundef_52_cloval_417" = insertvalue { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* } { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)* bitcast ({ %Uint32 (i8*, %TName_Nat*)*, i8* } (%"$$fundef_52_env_165"*, %Uint32)* @"$fundef_52" to { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*), i8* undef }, i8* %"$$fundef_52_env_voidp_416", 1 + %"$gasrem_412" = load i64, i64* @_gasrem, align 8 + %"$gascmp_413" = icmp ugt i64 1, %"$gasrem_412" + br i1 %"$gascmp_413", label %"$out_of_gas_414", label %"$have_gas_415" + +"$out_of_gas_414": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_415" + +"$have_gas_415": ; preds = %"$out_of_gas_414", %entry + %"$consume_416" = sub i64 %"$gasrem_412", 1 + store i64 %"$consume_416", i64* @_gasrem, align 8 + %"$$fundef_52_envp_417_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_52_envp_417_salloc" = call i8* @_salloc(i8* %"$$fundef_52_envp_417_load", i64 32) + %"$$fundef_52_envp_417" = bitcast i8* %"$$fundef_52_envp_417_salloc" to %"$$fundef_52_env_165"* + %"$$fundef_52_env_voidp_419" = bitcast %"$$fundef_52_env_165"* %"$$fundef_52_envp_417" to i8* + %"$$fundef_52_cloval_420" = insertvalue { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* } { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)* bitcast ({ %Uint32 (i8*, %TName_Nat*)*, i8* } (%"$$fundef_52_env_165"*, %Uint32)* @"$fundef_52" to { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*), i8* undef }, i8* %"$$fundef_52_env_voidp_419", 1 %g = alloca { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* }, align 8 - store { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* } %"$$fundef_52_cloval_417", { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* }* %g, align 8, !dbg !70 - %"$$fundef_52_env_fn_418" = getelementptr inbounds %"$$fundef_52_env_165", %"$$fundef_52_env_165"* %"$$fundef_52_envp_414", i32 0, i32 0 - store { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* } %1, { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* }* %"$$fundef_52_env_fn_418", align 8 - %"$$fundef_52_env_g_419" = getelementptr inbounds %"$$fundef_52_env_165", %"$$fundef_52_env_165"* %"$$fundef_52_envp_414", i32 0, i32 1 - %"$g_420" = load { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* }* %g, align 8 - store { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* } %"$g_420", { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* }* %"$$fundef_52_env_g_419", align 8 - %"$g_421" = load { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* }* %g, align 8 - store { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* } %"$g_421", { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* }* %"$retval_51", align 8, !dbg !70 - %"$$retval_51_422" = load { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* }* %"$retval_51", align 8 - ret { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* } %"$$retval_51_422" + store { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* } %"$$fundef_52_cloval_420", { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* }* %g, align 8, !dbg !125 + %"$$fundef_52_env_fn_421" = getelementptr inbounds %"$$fundef_52_env_165", %"$$fundef_52_env_165"* %"$$fundef_52_envp_417", i32 0, i32 0 + store { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* } %1, { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* }* %"$$fundef_52_env_fn_421", align 8 + %"$$fundef_52_env_g_422" = getelementptr inbounds %"$$fundef_52_env_165", %"$$fundef_52_env_165"* %"$$fundef_52_envp_417", i32 0, i32 1 + %"$g_423" = load { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* }* %g, align 8 + store { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* } %"$g_423", { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* }* %"$$fundef_52_env_g_422", align 8 + %"$g_424" = load { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* }* %g, align 8 + store { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* } %"$g_424", { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* }* %"$retval_51", align 8, !dbg !125 + %"$$retval_51_425" = load { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* }* %"$retval_51", align 8 + ret { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* } %"$$retval_51_425" } -define internal { { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } @"$fundef_48"(%"$$fundef_48_env_167"* %0) !dbg !71 { +define internal { { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } @"$fundef_48"(%"$$fundef_48_env_167"* %0) !dbg !126 { entry: %"$retval_49" = alloca { { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* })*, i8* }, align 8 - %"$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" + %"$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_402": ; preds = %entry +"$out_of_gas_405": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_403" + br label %"$have_gas_406" -"$have_gas_403": ; preds = %"$out_of_gas_402", %entry - %"$consume_404" = sub i64 %"$gasrem_400", 1 - store i64 %"$consume_404", i64* @_gasrem, align 8 - store { { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } { { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* })* bitcast ({ { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* } (%"$$fundef_50_env_166"*, { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* })* @"$fundef_50" to { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* })*), i8* null }, { { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* })*, i8* }* %"$retval_49", align 8, !dbg !72 - %"$$retval_49_408" = load { { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* })*, i8* }, { { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* })*, i8* }* %"$retval_49", align 8 - ret { { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } %"$$retval_49_408" +"$have_gas_406": ; preds = %"$out_of_gas_405", %entry + %"$consume_407" = sub i64 %"$gasrem_403", 1 + store i64 %"$consume_407", i64* @_gasrem, align 8 + store { { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } { { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* })* bitcast ({ { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* } (%"$$fundef_50_env_166"*, { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* })* @"$fundef_50" to { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* })*), i8* null }, { { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* })*, i8* }* %"$retval_49", align 8, !dbg !127 + %"$$retval_49_411" = load { { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* })*, i8* }, { { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* })*, i8* }* %"$retval_49", align 8 + ret { { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } %"$$retval_49_411" } -define internal %TName_Nat* @"$fundef_46"(%"$$fundef_46_env_168"* %0, %TName_Nat* %1) !dbg !73 { +define internal %TName_Nat* @"$fundef_46"(%"$$fundef_46_env_168"* %0, %TName_Nat* %1) !dbg !128 { entry: - %"$$fundef_46_env_f0_335" = getelementptr inbounds %"$$fundef_46_env_168", %"$$fundef_46_env_168"* %0, i32 0, i32 0 - %"$f0_envload_336" = load %TName_Nat*, %TName_Nat** %"$$fundef_46_env_f0_335", align 8 + %"$n_402" = alloca %TName_Nat*, align 8 + store %TName_Nat* %1, %TName_Nat** %"$n_402", align 8 + call void @llvm.dbg.declare(metadata %TName_Nat** %"$n_402", metadata !129, metadata !DIExpression()), !dbg !130 + %"$$fundef_46_env_f0_337" = getelementptr inbounds %"$$fundef_46_env_168", %"$$fundef_46_env_168"* %0, i32 0, i32 0 + %"$f0_envload_338" = load %TName_Nat*, %TName_Nat** %"$$fundef_46_env_f0_337", align 8 %f0 = alloca %TName_Nat*, align 8 - store %TName_Nat* %"$f0_envload_336", %TName_Nat** %f0, align 8 - %"$$fundef_46_env_fn_337" = getelementptr inbounds %"$$fundef_46_env_168", %"$$fundef_46_env_168"* %0, i32 0, i32 1 - %"$fn_envload_338" = load { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }* %"$$fundef_46_env_fn_337", align 8 + store %TName_Nat* %"$f0_envload_338", %TName_Nat** %f0, align 8 + %"$$fundef_46_env_fn_339" = getelementptr inbounds %"$$fundef_46_env_168", %"$$fundef_46_env_168"* %0, i32 0, i32 1 + %"$fn_envload_340" = load { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }* %"$$fundef_46_env_fn_339", align 8 %fn = alloca { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }, align 8 - store { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$fn_envload_338", { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }* %fn, align 8 - %"$$fundef_46_env_g_339" = getelementptr inbounds %"$$fundef_46_env_168", %"$$fundef_46_env_168"* %0, i32 0, i32 2 - %"$g_envload_340" = load { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }* %"$$fundef_46_env_g_339", align 8 + store { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$fn_envload_340", { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }* %fn, align 8 + %"$$fundef_46_env_g_341" = getelementptr inbounds %"$$fundef_46_env_168", %"$$fundef_46_env_168"* %0, i32 0, i32 2 + %"$g_envload_342" = load { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }* %"$$fundef_46_env_g_341", align 8 %g = alloca { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }, align 8 - store { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$g_envload_340", { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }* %g, align 8 + store { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$g_envload_342", { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }* %g, align 8 %"$retval_47" = alloca %TName_Nat*, align 8 - %"$gasrem_341" = load i64, i64* @_gasrem, align 8 - %"$gascmp_342" = icmp ugt i64 2, %"$gasrem_341" - br i1 %"$gascmp_342", label %"$out_of_gas_343", label %"$have_gas_344" - -"$out_of_gas_343": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_344" - -"$have_gas_344": ; preds = %"$out_of_gas_343", %entry - %"$consume_345" = sub i64 %"$gasrem_341", 2 - store i64 %"$consume_345", i64* @_gasrem, align 8 - %"$n_tag_347" = getelementptr inbounds %TName_Nat, %TName_Nat* %1, i32 0, i32 0 - %"$n_tag_348" = load i8, i8* %"$n_tag_347", align 1 - switch i8 %"$n_tag_348", label %"$empty_default_349" [ - i8 1, label %"$Succ_350" - i8 0, label %"$Zero_391" - ], !dbg !74 - -"$Succ_350": ; preds = %"$have_gas_344" - %"$n_351" = bitcast %TName_Nat* %1 to %CName_Succ* - %"$n1_gep_352" = getelementptr inbounds %CName_Succ, %CName_Succ* %"$n_351", i32 0, i32 1 - %"$n1_load_353" = load %TName_Nat*, %TName_Nat** %"$n1_gep_352", align 8 + call void @llvm.dbg.declare(metadata %TName_Nat** %"$retval_47", metadata !131, metadata !DIExpression()), !dbg !132 + %"$gasrem_343" = load i64, i64* @_gasrem, align 8 + %"$gascmp_344" = icmp ugt i64 2, %"$gasrem_343" + br i1 %"$gascmp_344", label %"$out_of_gas_345", label %"$have_gas_346" + +"$out_of_gas_345": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_346" + +"$have_gas_346": ; preds = %"$out_of_gas_345", %entry + %"$consume_347" = sub i64 %"$gasrem_343", 2 + store i64 %"$consume_347", i64* @_gasrem, align 8 + %"$n_tag_349" = getelementptr inbounds %TName_Nat, %TName_Nat* %1, i32 0, i32 0 + %"$n_tag_350" = load i8, i8* %"$n_tag_349", align 1 + switch i8 %"$n_tag_350", label %"$empty_default_351" [ + i8 1, label %"$Succ_352" + i8 0, label %"$Zero_393" + ], !dbg !132 + +"$Succ_352": ; preds = %"$have_gas_346" + %"$n_353" = bitcast %TName_Nat* %1 to %CName_Succ* + %"$n1_gep_354" = getelementptr inbounds %CName_Succ, %CName_Succ* %"$n_353", i32 0, i32 1 + %"$n1_load_355" = load %TName_Nat*, %TName_Nat** %"$n1_gep_354", align 8 %n1 = alloca %TName_Nat*, align 8 - store %TName_Nat* %"$n1_load_353", %TName_Nat** %n1, 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" + store %TName_Nat* %"$n1_load_355", %TName_Nat** %n1, 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_356": ; preds = %"$Succ_350" +"$out_of_gas_358": ; preds = %"$Succ_352" call void @_out_of_gas() - br label %"$have_gas_357" + br label %"$have_gas_359" -"$have_gas_357": ; preds = %"$out_of_gas_356", %"$Succ_350" - %"$consume_358" = sub i64 %"$gasrem_354", 1 - store i64 %"$consume_358", i64* @_gasrem, align 8 +"$have_gas_359": ; preds = %"$out_of_gas_358", %"$Succ_352" + %"$consume_360" = sub i64 %"$gasrem_356", 1 + store i64 %"$consume_360", i64* @_gasrem, align 8 %res = alloca %TName_Nat*, align 8 - %"$gasrem_359" = load i64, i64* @_gasrem, align 8 - %"$gascmp_360" = icmp ugt i64 1, %"$gasrem_359" - br i1 %"$gascmp_360", label %"$out_of_gas_361", label %"$have_gas_362" + call void @llvm.dbg.declare(metadata %TName_Nat** %res, metadata !133, metadata !DIExpression()), !dbg !136 + %"$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_361": ; preds = %"$have_gas_357" +"$out_of_gas_363": ; preds = %"$have_gas_359" call void @_out_of_gas() - br label %"$have_gas_362" + br label %"$have_gas_364" -"$have_gas_362": ; preds = %"$out_of_gas_361", %"$have_gas_357" - %"$consume_363" = sub i64 %"$gasrem_359", 1 - store i64 %"$consume_363", i64* @_gasrem, align 8 +"$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 %"$fn_7" = alloca { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, align 8 - %"$fn_364" = load { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }* %fn, align 8 - %"$fn_fptr_365" = extractvalue { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$fn_364", 0 - %"$fn_envptr_366" = extractvalue { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$fn_364", 1 - %"$f0_367" = load %TName_Nat*, %TName_Nat** %f0, align 8 - %"$fn_call_368" = call { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$fn_fptr_365"(i8* %"$fn_envptr_366", %TName_Nat* %"$f0_367"), !dbg !75 - store { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$fn_call_368", { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$fn_7", align 8, !dbg !75 + %"$fn_366" = load { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }* %fn, align 8 + %"$fn_fptr_367" = extractvalue { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$fn_366", 0 + %"$fn_envptr_368" = extractvalue { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$fn_366", 1 + %"$f0_369" = load %TName_Nat*, %TName_Nat** %f0, align 8 + %"$fn_call_370" = call { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$fn_fptr_367"(i8* %"$fn_envptr_368", %TName_Nat* %"$f0_369"), !dbg !137 + store { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$fn_call_370", { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$fn_7", align 8, !dbg !137 %"$fn_8" = alloca %TName_Nat*, align 8 - %"$$fn_7_369" = load { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$fn_7", align 8 - %"$$fn_7_fptr_370" = extractvalue { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$$fn_7_369", 0 - %"$$fn_7_envptr_371" = extractvalue { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$$fn_7_369", 1 - %"$n1_372" = load %TName_Nat*, %TName_Nat** %n1, align 8 - %"$$fn_7_call_373" = call %TName_Nat* %"$$fn_7_fptr_370"(i8* %"$$fn_7_envptr_371", %TName_Nat* %"$n1_372"), !dbg !75 - store %TName_Nat* %"$$fn_7_call_373", %TName_Nat** %"$fn_8", align 8, !dbg !75 - %"$$fn_8_374" = load %TName_Nat*, %TName_Nat** %"$fn_8", align 8 - store %TName_Nat* %"$$fn_8_374", %TName_Nat** %res, align 8, !dbg !75 - %"$gasrem_375" = load i64, i64* @_gasrem, align 8 - %"$gascmp_376" = icmp ugt i64 1, %"$gasrem_375" - br i1 %"$gascmp_376", label %"$out_of_gas_377", label %"$have_gas_378" - -"$out_of_gas_377": ; preds = %"$have_gas_362" - call void @_out_of_gas() - br label %"$have_gas_378" - -"$have_gas_378": ; preds = %"$out_of_gas_377", %"$have_gas_362" - %"$consume_379" = sub i64 %"$gasrem_375", 1 - store i64 %"$consume_379", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Nat** %"$fn_8", metadata !138, metadata !DIExpression()), !dbg !137 + %"$$fn_7_371" = load { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$fn_7", align 8 + %"$$fn_7_fptr_372" = extractvalue { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$$fn_7_371", 0 + %"$$fn_7_envptr_373" = extractvalue { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$$fn_7_371", 1 + %"$n1_374" = load %TName_Nat*, %TName_Nat** %n1, align 8 + %"$$fn_7_call_375" = call %TName_Nat* %"$$fn_7_fptr_372"(i8* %"$$fn_7_envptr_373", %TName_Nat* %"$n1_374"), !dbg !137 + store %TName_Nat* %"$$fn_7_call_375", %TName_Nat** %"$fn_8", align 8, !dbg !137 + %"$$fn_8_376" = load %TName_Nat*, %TName_Nat** %"$fn_8", align 8 + store %TName_Nat* %"$$fn_8_376", %TName_Nat** %res, align 8, !dbg !137 + %"$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_364" + call void @_out_of_gas() + br label %"$have_gas_380" + +"$have_gas_380": ; preds = %"$out_of_gas_379", %"$have_gas_364" + %"$consume_381" = sub i64 %"$gasrem_377", 1 + store i64 %"$consume_381", i64* @_gasrem, align 8 %"$g_9" = alloca { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, align 8 - %"$g_380" = load { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }* %g, align 8 - %"$g_fptr_381" = extractvalue { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$g_380", 0 - %"$g_envptr_382" = extractvalue { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$g_380", 1 - %"$res_383" = load %TName_Nat*, %TName_Nat** %res, align 8 - %"$g_call_384" = call { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$g_fptr_381"(i8* %"$g_envptr_382", %TName_Nat* %"$res_383"), !dbg !78 - store { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$g_call_384", { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$g_9", align 8, !dbg !78 + %"$g_382" = load { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }* %g, align 8 + %"$g_fptr_383" = extractvalue { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$g_382", 0 + %"$g_envptr_384" = extractvalue { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$g_382", 1 + %"$res_385" = load %TName_Nat*, %TName_Nat** %res, align 8 + %"$g_call_386" = call { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$g_fptr_383"(i8* %"$g_envptr_384", %TName_Nat* %"$res_385"), !dbg !139 + store { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$g_call_386", { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$g_9", align 8, !dbg !139 %"$g_10" = alloca %TName_Nat*, align 8 - %"$$g_9_385" = load { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$g_9", align 8 - %"$$g_9_fptr_386" = extractvalue { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$$g_9_385", 0 - %"$$g_9_envptr_387" = extractvalue { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$$g_9_385", 1 - %"$n1_388" = load %TName_Nat*, %TName_Nat** %n1, align 8 - %"$$g_9_call_389" = call %TName_Nat* %"$$g_9_fptr_386"(i8* %"$$g_9_envptr_387", %TName_Nat* %"$n1_388"), !dbg !78 - store %TName_Nat* %"$$g_9_call_389", %TName_Nat** %"$g_10", align 8, !dbg !78 - %"$$g_10_390" = load %TName_Nat*, %TName_Nat** %"$g_10", align 8 - store %TName_Nat* %"$$g_10_390", %TName_Nat** %"$retval_47", align 8, !dbg !78 - br label %"$matchsucc_346" - -"$Zero_391": ; preds = %"$have_gas_344" - %"$n_392" = bitcast %TName_Nat* %1 to %CName_Zero* - %"$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 = %"$Zero_391" - call void @_out_of_gas() - br label %"$have_gas_396" - -"$have_gas_396": ; preds = %"$out_of_gas_395", %"$Zero_391" - %"$consume_397" = sub i64 %"$gasrem_393", 1 - store i64 %"$consume_397", i64* @_gasrem, align 8 - %"$f0_398" = load %TName_Nat*, %TName_Nat** %f0, align 8 - store %TName_Nat* %"$f0_398", %TName_Nat** %"$retval_47", align 8, !dbg !79 - br label %"$matchsucc_346" - -"$empty_default_349": ; preds = %"$have_gas_344" - br label %"$matchsucc_346" - -"$matchsucc_346": ; preds = %"$have_gas_396", %"$have_gas_378", %"$empty_default_349" - %"$$retval_47_399" = load %TName_Nat*, %TName_Nat** %"$retval_47", align 8 - ret %TName_Nat* %"$$retval_47_399" + call void @llvm.dbg.declare(metadata %TName_Nat** %"$g_10", metadata !140, metadata !DIExpression()), !dbg !139 + %"$$g_9_387" = load { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$g_9", align 8 + %"$$g_9_fptr_388" = extractvalue { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$$g_9_387", 0 + %"$$g_9_envptr_389" = extractvalue { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$$g_9_387", 1 + %"$n1_390" = load %TName_Nat*, %TName_Nat** %n1, align 8 + %"$$g_9_call_391" = call %TName_Nat* %"$$g_9_fptr_388"(i8* %"$$g_9_envptr_389", %TName_Nat* %"$n1_390"), !dbg !139 + store %TName_Nat* %"$$g_9_call_391", %TName_Nat** %"$g_10", align 8, !dbg !139 + %"$$g_10_392" = load %TName_Nat*, %TName_Nat** %"$g_10", align 8 + store %TName_Nat* %"$$g_10_392", %TName_Nat** %"$retval_47", align 8, !dbg !139 + br label %"$matchsucc_348" + +"$Zero_393": ; preds = %"$have_gas_346" + %"$n_394" = bitcast %TName_Nat* %1 to %CName_Zero* + %"$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 = %"$Zero_393" + call void @_out_of_gas() + br label %"$have_gas_398" + +"$have_gas_398": ; preds = %"$out_of_gas_397", %"$Zero_393" + %"$consume_399" = sub i64 %"$gasrem_395", 1 + store i64 %"$consume_399", i64* @_gasrem, align 8 + %"$f0_400" = load %TName_Nat*, %TName_Nat** %f0, align 8 + store %TName_Nat* %"$f0_400", %TName_Nat** %"$retval_47", align 8, !dbg !141 + br label %"$matchsucc_348" + +"$empty_default_351": ; preds = %"$have_gas_346" + br label %"$matchsucc_348" + +"$matchsucc_348": ; preds = %"$have_gas_398", %"$have_gas_380", %"$empty_default_351" + %"$$retval_47_401" = load %TName_Nat*, %TName_Nat** %"$retval_47", align 8 + ret %TName_Nat* %"$$retval_47_401" } -define internal { %TName_Nat* (i8*, %TName_Nat*)*, i8* } @"$fundef_44"(%"$$fundef_44_env_169"* %0, %TName_Nat* %1) !dbg !81 { +define internal { %TName_Nat* (i8*, %TName_Nat*)*, i8* } @"$fundef_44"(%"$$fundef_44_env_169"* %0, %TName_Nat* %1) !dbg !143 { entry: - %"$$fundef_44_env_fn_311" = getelementptr inbounds %"$$fundef_44_env_169", %"$$fundef_44_env_169"* %0, i32 0, i32 0 - %"$fn_envload_312" = load { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }* %"$$fundef_44_env_fn_311", align 8 + %"$f0_336" = alloca %TName_Nat*, align 8 + store %TName_Nat* %1, %TName_Nat** %"$f0_336", align 8 + call void @llvm.dbg.declare(metadata %TName_Nat** %"$f0_336", metadata !144, metadata !DIExpression()), !dbg !145 + %"$$fundef_44_env_fn_312" = getelementptr inbounds %"$$fundef_44_env_169", %"$$fundef_44_env_169"* %0, i32 0, i32 0 + %"$fn_envload_313" = load { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }* %"$$fundef_44_env_fn_312", align 8 %fn = alloca { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }, align 8 - store { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$fn_envload_312", { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }* %fn, align 8 - %"$$fundef_44_env_g_313" = getelementptr inbounds %"$$fundef_44_env_169", %"$$fundef_44_env_169"* %0, i32 0, i32 1 - %"$g_envload_314" = load { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }* %"$$fundef_44_env_g_313", align 8 + store { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$fn_envload_313", { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }* %fn, align 8 + %"$$fundef_44_env_g_314" = getelementptr inbounds %"$$fundef_44_env_169", %"$$fundef_44_env_169"* %0, i32 0, i32 1 + %"$g_envload_315" = load { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }* %"$$fundef_44_env_g_314", align 8 %g = alloca { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }, align 8 - store { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$g_envload_314", { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }* %g, align 8 + store { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$g_envload_315", { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }* %g, align 8 %"$retval_45" = alloca { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, align 8 - %"$gasrem_315" = load i64, i64* @_gasrem, align 8 - %"$gascmp_316" = icmp ugt i64 1, %"$gasrem_315" - br i1 %"$gascmp_316", label %"$out_of_gas_317", label %"$have_gas_318" - -"$out_of_gas_317": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_318" - -"$have_gas_318": ; preds = %"$out_of_gas_317", %entry - %"$consume_319" = sub i64 %"$gasrem_315", 1 - store i64 %"$consume_319", i64* @_gasrem, align 8 - %"$gasrem_320" = load i64, i64* @_gasrem, align 8 - %"$gascmp_321" = icmp ugt i64 1, %"$gasrem_320" - br i1 %"$gascmp_321", label %"$out_of_gas_322", label %"$have_gas_323" - -"$out_of_gas_322": ; preds = %"$have_gas_318" - call void @_out_of_gas() - br label %"$have_gas_323" - -"$have_gas_323": ; preds = %"$out_of_gas_322", %"$have_gas_318" - %"$consume_324" = sub i64 %"$gasrem_320", 1 - store i64 %"$consume_324", i64* @_gasrem, align 8 - %"$$fundef_46_envp_325_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_46_envp_325_salloc" = call i8* @_salloc(i8* %"$$fundef_46_envp_325_load", i64 40) - %"$$fundef_46_envp_325" = bitcast i8* %"$$fundef_46_envp_325_salloc" to %"$$fundef_46_env_168"* - %"$$fundef_46_env_voidp_327" = bitcast %"$$fundef_46_env_168"* %"$$fundef_46_envp_325" to i8* - %"$$fundef_46_cloval_328" = insertvalue { %TName_Nat* (i8*, %TName_Nat*)*, i8* } { %TName_Nat* (i8*, %TName_Nat*)* bitcast (%TName_Nat* (%"$$fundef_46_env_168"*, %TName_Nat*)* @"$fundef_46" to %TName_Nat* (i8*, %TName_Nat*)*), i8* undef }, i8* %"$$fundef_46_env_voidp_327", 1 - %"$$fundef_46_env_f0_329" = getelementptr inbounds %"$$fundef_46_env_168", %"$$fundef_46_env_168"* %"$$fundef_46_envp_325", i32 0, i32 0 - store %TName_Nat* %1, %TName_Nat** %"$$fundef_46_env_f0_329", align 8 - %"$$fundef_46_env_fn_330" = getelementptr inbounds %"$$fundef_46_env_168", %"$$fundef_46_env_168"* %"$$fundef_46_envp_325", i32 0, i32 1 - %"$fn_331" = load { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }* %fn, align 8 - store { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$fn_331", { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }* %"$$fundef_46_env_fn_330", align 8 - %"$$fundef_46_env_g_332" = getelementptr inbounds %"$$fundef_46_env_168", %"$$fundef_46_env_168"* %"$$fundef_46_envp_325", i32 0, i32 2 - %"$g_333" = load { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }* %g, align 8 - store { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$g_333", { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }* %"$$fundef_46_env_g_332", align 8 - store { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$$fundef_46_cloval_328", { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$retval_45", align 8, !dbg !82 - %"$$retval_45_334" = load { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$retval_45", align 8 - ret { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$$retval_45_334" + %"$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 + %"$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 = %"$have_gas_319" + call void @_out_of_gas() + br label %"$have_gas_324" + +"$have_gas_324": ; preds = %"$out_of_gas_323", %"$have_gas_319" + %"$consume_325" = sub i64 %"$gasrem_321", 1 + store i64 %"$consume_325", i64* @_gasrem, align 8 + %"$$fundef_46_envp_326_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_46_envp_326_salloc" = call i8* @_salloc(i8* %"$$fundef_46_envp_326_load", i64 40) + %"$$fundef_46_envp_326" = bitcast i8* %"$$fundef_46_envp_326_salloc" to %"$$fundef_46_env_168"* + %"$$fundef_46_env_voidp_328" = bitcast %"$$fundef_46_env_168"* %"$$fundef_46_envp_326" to i8* + %"$$fundef_46_cloval_329" = insertvalue { %TName_Nat* (i8*, %TName_Nat*)*, i8* } { %TName_Nat* (i8*, %TName_Nat*)* bitcast (%TName_Nat* (%"$$fundef_46_env_168"*, %TName_Nat*)* @"$fundef_46" to %TName_Nat* (i8*, %TName_Nat*)*), i8* undef }, i8* %"$$fundef_46_env_voidp_328", 1 + %"$$fundef_46_env_f0_330" = getelementptr inbounds %"$$fundef_46_env_168", %"$$fundef_46_env_168"* %"$$fundef_46_envp_326", i32 0, i32 0 + store %TName_Nat* %1, %TName_Nat** %"$$fundef_46_env_f0_330", align 8 + %"$$fundef_46_env_fn_331" = getelementptr inbounds %"$$fundef_46_env_168", %"$$fundef_46_env_168"* %"$$fundef_46_envp_326", i32 0, i32 1 + %"$fn_332" = load { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }* %fn, align 8 + store { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$fn_332", { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }* %"$$fundef_46_env_fn_331", align 8 + %"$$fundef_46_env_g_333" = getelementptr inbounds %"$$fundef_46_env_168", %"$$fundef_46_env_168"* %"$$fundef_46_envp_326", i32 0, i32 2 + %"$g_334" = load { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }* %g, align 8 + store { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$g_334", { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }* %"$$fundef_46_env_g_333", align 8 + store { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$$fundef_46_cloval_329", { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$retval_45", align 8, !dbg !146 + %"$$retval_45_335" = load { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$retval_45", align 8 + ret { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$$retval_45_335" } -define internal { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } @"$fundef_42"(%"$$fundef_42_env_170"* %0, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %1) !dbg !83 { +define internal { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } @"$fundef_42"(%"$$fundef_42_env_170"* %0, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %1) !dbg !147 { entry: %"$retval_43" = alloca { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }, 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 = %entry - call void @_out_of_gas() - br label %"$have_gas_300" - -"$have_gas_300": ; preds = %"$out_of_gas_299", %entry - %"$consume_301" = sub i64 %"$gasrem_297", 1 - store i64 %"$consume_301", i64* @_gasrem, align 8 - %"$$fundef_44_envp_302_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_44_envp_302_salloc" = call i8* @_salloc(i8* %"$$fundef_44_envp_302_load", i64 32) - %"$$fundef_44_envp_302" = bitcast i8* %"$$fundef_44_envp_302_salloc" to %"$$fundef_44_env_169"* - %"$$fundef_44_env_voidp_304" = bitcast %"$$fundef_44_env_169"* %"$$fundef_44_envp_302" to i8* - %"$$fundef_44_cloval_305" = insertvalue { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)* bitcast ({ %TName_Nat* (i8*, %TName_Nat*)*, i8* } (%"$$fundef_44_env_169"*, %TName_Nat*)* @"$fundef_44" to { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*), i8* undef }, i8* %"$$fundef_44_env_voidp_304", 1 + %"$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 = %entry + call void @_out_of_gas() + br label %"$have_gas_301" + +"$have_gas_301": ; preds = %"$out_of_gas_300", %entry + %"$consume_302" = sub i64 %"$gasrem_298", 1 + store i64 %"$consume_302", i64* @_gasrem, align 8 + %"$$fundef_44_envp_303_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_44_envp_303_salloc" = call i8* @_salloc(i8* %"$$fundef_44_envp_303_load", i64 32) + %"$$fundef_44_envp_303" = bitcast i8* %"$$fundef_44_envp_303_salloc" to %"$$fundef_44_env_169"* + %"$$fundef_44_env_voidp_305" = bitcast %"$$fundef_44_env_169"* %"$$fundef_44_envp_303" to i8* + %"$$fundef_44_cloval_306" = insertvalue { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)* bitcast ({ %TName_Nat* (i8*, %TName_Nat*)*, i8* } (%"$$fundef_44_env_169"*, %TName_Nat*)* @"$fundef_44" to { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*), i8* undef }, i8* %"$$fundef_44_env_voidp_305", 1 %g = alloca { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }, align 8 - store { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$$fundef_44_cloval_305", { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }* %g, align 8, !dbg !84 - %"$$fundef_44_env_fn_306" = getelementptr inbounds %"$$fundef_44_env_169", %"$$fundef_44_env_169"* %"$$fundef_44_envp_302", i32 0, i32 0 - store { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %1, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }* %"$$fundef_44_env_fn_306", align 8 - %"$$fundef_44_env_g_307" = getelementptr inbounds %"$$fundef_44_env_169", %"$$fundef_44_env_169"* %"$$fundef_44_envp_302", i32 0, i32 1 - %"$g_308" = load { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }* %g, align 8 - store { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$g_308", { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }* %"$$fundef_44_env_g_307", align 8 + store { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$$fundef_44_cloval_306", { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }* %g, align 8, !dbg !148 + %"$$fundef_44_env_fn_307" = getelementptr inbounds %"$$fundef_44_env_169", %"$$fundef_44_env_169"* %"$$fundef_44_envp_303", i32 0, i32 0 + store { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %1, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }* %"$$fundef_44_env_fn_307", align 8 + %"$$fundef_44_env_g_308" = getelementptr inbounds %"$$fundef_44_env_169", %"$$fundef_44_env_169"* %"$$fundef_44_envp_303", i32 0, i32 1 %"$g_309" = load { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }* %g, align 8 - store { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$g_309", { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }* %"$retval_43", align 8, !dbg !84 - %"$$retval_43_310" = load { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }* %"$retval_43", align 8 - ret { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$$retval_43_310" + store { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$g_309", { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }* %"$$fundef_44_env_g_308", align 8 + %"$g_310" = load { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }* %g, align 8 + store { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$g_310", { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }* %"$retval_43", align 8, !dbg !148 + %"$$retval_43_311" = load { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }* %"$retval_43", align 8 + ret { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$$retval_43_311" } -define internal { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* })*, i8* } @"$fundef_40"(%"$$fundef_40_env_171"* %0) !dbg !85 { +define internal { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* })*, i8* } @"$fundef_40"(%"$$fundef_40_env_171"* %0) !dbg !149 { entry: %"$retval_41" = alloca { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, 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" + %"$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_290": ; preds = %entry +"$out_of_gas_291": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_291" + br label %"$have_gas_292" -"$have_gas_291": ; preds = %"$out_of_gas_290", %entry - %"$consume_292" = sub i64 %"$gasrem_288", 1 - store i64 %"$consume_292", i64* @_gasrem, align 8 - store { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* })*, i8* } { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* })* bitcast ({ { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (%"$$fundef_42_env_170"*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* })* @"$fundef_42" to { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* })*), i8* null }, { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* })*, i8* }* %"$retval_41", align 8, !dbg !86 - %"$$retval_41_296" = load { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* })*, i8* }, { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* })*, i8* }* %"$retval_41", align 8 - ret { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* })*, i8* } %"$$retval_41_296" +"$have_gas_292": ; preds = %"$out_of_gas_291", %entry + %"$consume_293" = sub i64 %"$gasrem_289", 1 + store i64 %"$consume_293", i64* @_gasrem, align 8 + store { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* })*, i8* } { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* })* bitcast ({ { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (%"$$fundef_42_env_170"*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* })* @"$fundef_42" to { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* })*), i8* null }, { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* })*, i8* }* %"$retval_41", align 8, !dbg !150 + %"$$retval_41_297" = load { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* })*, i8* }, { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* })*, i8* }* %"$retval_41", align 8 + ret { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* })*, i8* } %"$$retval_41_297" } -define internal { %TName_Nat* (i8*, %TName_Nat*)*, i8* } @"$fundef_38"(%"$$fundef_38_env_172"* %0, %TName_Nat* %1) !dbg !87 { +define internal { %TName_Nat* (i8*, %TName_Nat*)*, i8* } @"$fundef_38"(%"$$fundef_38_env_172"* %0, %TName_Nat* %1) !dbg !151 { entry: + %"$n_288" = alloca %TName_Nat*, align 8 + store %TName_Nat* %1, %TName_Nat** %"$n_288", align 8 + call void @llvm.dbg.declare(metadata %TName_Nat** %"$n_288", metadata !152, metadata !DIExpression()), !dbg !153 %"$$fundef_38_env_f0_223" = getelementptr inbounds %"$$fundef_38_env_172", %"$$fundef_38_env_172"* %0, i32 0, i32 0 %"$f0_envload_224" = load { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$$fundef_38_env_f0_223", align 8 %f0 = alloca { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, align 8 @@ -1639,7 +1712,7 @@ entry: switch i8 %"$n_tag_236", label %"$empty_default_237" [ i8 1, label %"$Succ_238" i8 0, label %"$Zero_279" - ], !dbg !88 + ], !dbg !154 "$Succ_238": ; preds = %"$have_gas_232" %"$n_239" = bitcast %TName_Nat* %1 to %CName_Succ* @@ -1675,17 +1748,17 @@ entry: %"$fn_fptr_253" = extractvalue { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } %"$fn_252", 0 %"$fn_envptr_254" = extractvalue { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } %"$fn_252", 1 %"$f0_255" = load { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %f0, align 8 - %"$fn_call_256" = call { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$fn_fptr_253"(i8* %"$fn_envptr_254", { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$f0_255"), !dbg !89 - store { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$fn_call_256", { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }* %"$fn_7", align 8, !dbg !89 + %"$fn_call_256" = call { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$fn_fptr_253"(i8* %"$fn_envptr_254", { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$f0_255"), !dbg !155 + store { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$fn_call_256", { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }* %"$fn_7", align 8, !dbg !155 %"$fn_8" = alloca { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, align 8 %"$$fn_7_257" = load { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }* %"$fn_7", align 8 %"$$fn_7_fptr_258" = extractvalue { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$$fn_7_257", 0 %"$$fn_7_envptr_259" = extractvalue { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$$fn_7_257", 1 %"$n1_260" = load %TName_Nat*, %TName_Nat** %n1, align 8 - %"$$fn_7_call_261" = call { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$$fn_7_fptr_258"(i8* %"$$fn_7_envptr_259", %TName_Nat* %"$n1_260"), !dbg !89 - store { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$$fn_7_call_261", { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$fn_8", align 8, !dbg !89 + %"$$fn_7_call_261" = call { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$$fn_7_fptr_258"(i8* %"$$fn_7_envptr_259", %TName_Nat* %"$n1_260"), !dbg !155 + store { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$$fn_7_call_261", { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$fn_8", align 8, !dbg !155 %"$$fn_8_262" = load { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$fn_8", align 8 - store { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$$fn_8_262", { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %res, align 8, !dbg !89 + store { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$$fn_8_262", { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %res, align 8, !dbg !155 %"$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" @@ -1702,17 +1775,17 @@ entry: %"$g_fptr_269" = extractvalue { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } %"$g_268", 0 %"$g_envptr_270" = extractvalue { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } %"$g_268", 1 %"$res_271" = load { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %res, align 8 - %"$g_call_272" = call { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$g_fptr_269"(i8* %"$g_envptr_270", { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$res_271"), !dbg !92 - store { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$g_call_272", { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }* %"$g_9", align 8, !dbg !92 + %"$g_call_272" = call { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$g_fptr_269"(i8* %"$g_envptr_270", { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$res_271"), !dbg !158 + store { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$g_call_272", { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }* %"$g_9", align 8, !dbg !158 %"$g_10" = alloca { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, align 8 %"$$g_9_273" = load { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }* %"$g_9", align 8 %"$$g_9_fptr_274" = extractvalue { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$$g_9_273", 0 %"$$g_9_envptr_275" = extractvalue { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$$g_9_273", 1 %"$n1_276" = load %TName_Nat*, %TName_Nat** %n1, align 8 - %"$$g_9_call_277" = call { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$$g_9_fptr_274"(i8* %"$$g_9_envptr_275", %TName_Nat* %"$n1_276"), !dbg !92 - store { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$$g_9_call_277", { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$g_10", align 8, !dbg !92 + %"$$g_9_call_277" = call { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$$g_9_fptr_274"(i8* %"$$g_9_envptr_275", %TName_Nat* %"$n1_276"), !dbg !158 + store { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$$g_9_call_277", { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$g_10", align 8, !dbg !158 %"$$g_10_278" = load { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$g_10", align 8 - store { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$$g_10_278", { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$retval_39", align 8, !dbg !92 + store { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$$g_10_278", { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$retval_39", align 8, !dbg !158 br label %"$matchsucc_234" "$Zero_279": ; preds = %"$have_gas_232" @@ -1729,7 +1802,7 @@ entry: %"$consume_285" = sub i64 %"$gasrem_281", 1 store i64 %"$consume_285", i64* @_gasrem, align 8 %"$f0_286" = load { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %f0, align 8 - store { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$f0_286", { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$retval_39", align 8, !dbg !93 + store { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$f0_286", { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$retval_39", align 8, !dbg !159 br label %"$matchsucc_234" "$empty_default_237": ; preds = %"$have_gas_232" @@ -1740,7 +1813,7 @@ entry: ret { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$$retval_39_287" } -define internal { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } @"$fundef_36"(%"$$fundef_36_env_173"* %0, { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %1) !dbg !95 { +define internal { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } @"$fundef_36"(%"$$fundef_36_env_173"* %0, { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %1) !dbg !161 { entry: %"$$fundef_36_env_fn_199" = getelementptr inbounds %"$$fundef_36_env_173", %"$$fundef_36_env_173"* %0, i32 0, i32 0 %"$fn_envload_200" = load { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }, { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }* %"$$fundef_36_env_fn_199", align 8 @@ -1786,12 +1859,12 @@ entry: %"$$fundef_38_env_g_220" = getelementptr inbounds %"$$fundef_38_env_172", %"$$fundef_38_env_172"* %"$$fundef_38_envp_213", i32 0, i32 2 %"$g_221" = load { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }, { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }* %g, align 8 store { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } %"$g_221", { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }* %"$$fundef_38_env_g_220", align 8 - store { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$$fundef_38_cloval_216", { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }* %"$retval_37", align 8, !dbg !96 + store { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$$fundef_38_cloval_216", { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }* %"$retval_37", align 8, !dbg !162 %"$$retval_37_222" = load { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }* %"$retval_37", align 8 ret { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$$retval_37_222" } -define internal { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } @"$fundef_34"(%"$$fundef_34_env_174"* %0, { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } %1) !dbg !97 { +define internal { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } @"$fundef_34"(%"$$fundef_34_env_174"* %0, { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } %1) !dbg !163 { entry: %"$retval_35" = alloca { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }, align 8 %"$gasrem_185" = load i64, i64* @_gasrem, align 8 @@ -1811,19 +1884,19 @@ entry: %"$$fundef_36_env_voidp_192" = bitcast %"$$fundef_36_env_173"* %"$$fundef_36_envp_190" to i8* %"$$fundef_36_cloval_193" = insertvalue { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })* bitcast ({ { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (%"$$fundef_36_env_173"*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })* @"$fundef_36" to { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*), i8* undef }, i8* %"$$fundef_36_env_voidp_192", 1 %g = alloca { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }, align 8 - store { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } %"$$fundef_36_cloval_193", { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }* %g, align 8, !dbg !98 + store { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } %"$$fundef_36_cloval_193", { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }* %g, align 8, !dbg !164 %"$$fundef_36_env_fn_194" = getelementptr inbounds %"$$fundef_36_env_173", %"$$fundef_36_env_173"* %"$$fundef_36_envp_190", i32 0, i32 0 store { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } %1, { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }* %"$$fundef_36_env_fn_194", align 8 %"$$fundef_36_env_g_195" = getelementptr inbounds %"$$fundef_36_env_173", %"$$fundef_36_env_173"* %"$$fundef_36_envp_190", i32 0, i32 1 %"$g_196" = load { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }, { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }* %g, align 8 store { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } %"$g_196", { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }* %"$$fundef_36_env_g_195", align 8 %"$g_197" = load { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }, { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }* %g, align 8 - store { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } %"$g_197", { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }* %"$retval_35", align 8, !dbg !98 + store { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } %"$g_197", { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }* %"$retval_35", align 8, !dbg !164 %"$$retval_35_198" = load { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }, { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }* %"$retval_35", align 8 ret { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } %"$$retval_35_198" } -define internal { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*, i8* } @"$fundef_32"(%"$$fundef_32_env_175"* %0) !dbg !99 { +define internal { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*, i8* } @"$fundef_32"(%"$$fundef_32_env_175"* %0) !dbg !165 { entry: %"$retval_33" = alloca { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*, i8* }, align 8 %"$gasrem_176" = load i64, i64* @_gasrem, align 8 @@ -1837,7 +1910,7 @@ entry: "$have_gas_179": ; preds = %"$out_of_gas_178", %entry %"$consume_180" = sub i64 %"$gasrem_176", 1 store i64 %"$consume_180", i64* @_gasrem, align 8 - store { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*, i8* } { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })* bitcast ({ { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (%"$$fundef_34_env_174"*, { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })* @"$fundef_34" to { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*), i8* null }, { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*, i8* }* %"$retval_33", align 8, !dbg !100 + store { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*, i8* } { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })* bitcast ({ { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (%"$$fundef_34_env_174"*, { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })* @"$fundef_34" to { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*), i8* null }, { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*, i8* }* %"$retval_33", align 8, !dbg !166 %"$$retval_33_184" = load { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*, i8* }, { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*, i8* }* %"$retval_33", align 8 ret { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*, i8* } %"$$retval_33_184" } @@ -1846,262 +1919,235 @@ declare void @_out_of_gas() declare i8* @_salloc(i8*, i64) +; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn +declare void @llvm.dbg.declare(metadata, metadata, metadata) #0 + declare %Uint32 @_add_Uint32(%Uint32, %Uint32) -define void @_init_libs() !dbg !101 { +define void @_init_libs() !dbg !167 { entry: - %"$gasrem_992" = load i64, i64* @_gasrem, align 8 - %"$gascmp_993" = icmp ugt i64 4, %"$gasrem_992" - br i1 %"$gascmp_993", label %"$out_of_gas_994", label %"$have_gas_995" - -"$out_of_gas_994": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_995" - -"$have_gas_995": ; preds = %"$out_of_gas_994", %entry - %"$consume_996" = sub i64 %"$gasrem_992", 4 - store i64 %"$consume_996", i64* @_gasrem, align 8 - store %Int32 { i32 4 }, %Int32* @"$_gas_charge_accrec_lib_5", align 4, !dbg !103 - %"$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_995" - call void @_out_of_gas() - br label %"$have_gas_1000" - -"$have_gas_1000": ; preds = %"$out_of_gas_999", %"$have_gas_995" - %"$consume_1001" = sub i64 %"$gasrem_997", 1 - store i64 %"$consume_1001", i64* @_gasrem, align 8 - %"$dyndisp_table_1008_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$dyndisp_table_1008_salloc_salloc" = call i8* @_salloc(i8* %"$dyndisp_table_1008_salloc_load", i64 48) - %"$dyndisp_table_1008_salloc" = bitcast i8* %"$dyndisp_table_1008_salloc_salloc" to [3 x { i8*, i8* }]* - %"$dyndisp_table_1008" = bitcast [3 x { i8*, i8* }]* %"$dyndisp_table_1008_salloc" to { i8*, i8* }* - %"$dyndisp_gep_1009" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_1008", i32 1 - %"$dyndisp_pcast_1010" = bitcast { i8*, i8* }* %"$dyndisp_gep_1009" to { { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*, i8* } (i8*)*, i8* }* - store { { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*, i8* } (i8*)*, i8* } { { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*, i8* } (i8*)* bitcast ({ { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*, i8* } (%"$$fundef_32_env_175"*)* @"$fundef_32" to { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*, i8* } (i8*)*), i8* null }, { { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*, i8* } (i8*)*, i8* }* %"$dyndisp_pcast_1010", align 8 - %"$dyndisp_gep_1011" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_1008", i32 2 - %"$dyndisp_pcast_1012" = bitcast { i8*, i8* }* %"$dyndisp_gep_1011" to { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*)*, i8* }* - store { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*)*, i8* } { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*)* bitcast ({ { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* })*, i8* } (%"$$fundef_40_env_171"*)* @"$fundef_40" to { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*)*), i8* null }, { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*)*, i8* }* %"$dyndisp_pcast_1012", align 8 - store { i8*, i8* }* %"$dyndisp_table_1008", { i8*, i8* }** @nat_fold, align 8, !dbg !104 - %"$gasrem_1013" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1014" = icmp ugt i64 8, %"$gasrem_1013" - br i1 %"$gascmp_1014", label %"$out_of_gas_1015", label %"$have_gas_1016" - -"$out_of_gas_1015": ; preds = %"$have_gas_1000" - call void @_out_of_gas() - br label %"$have_gas_1016" - -"$have_gas_1016": ; preds = %"$out_of_gas_1015", %"$have_gas_1000" - %"$consume_1017" = sub i64 %"$gasrem_1013", 8 - store i64 %"$consume_1017", i64* @_gasrem, align 8 - store %Int32 { i32 8 }, %Int32* @"$_gas_charge_accBoolUtils_0", align 4, !dbg !103 - %"$gasrem_1018" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1019" = icmp ugt i64 196, %"$gasrem_1018" - br i1 %"$gascmp_1019", label %"$out_of_gas_1020", label %"$have_gas_1021" - -"$out_of_gas_1020": ; preds = %"$have_gas_1016" - call void @_out_of_gas() - br label %"$have_gas_1021" - -"$have_gas_1021": ; preds = %"$out_of_gas_1020", %"$have_gas_1016" - %"$consume_1022" = sub i64 %"$gasrem_1018", 196 - store i64 %"$consume_1022", i64* @_gasrem, align 8 - store %Int32 { i32 196 }, %Int32* @"$_gas_charge_accIntUtils_1", align 4, !dbg !103 - %"$gasrem_1023" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1024" = icmp ugt i64 20, %"$gasrem_1023" - br i1 %"$gascmp_1024", label %"$out_of_gas_1025", label %"$have_gas_1026" - -"$out_of_gas_1025": ; preds = %"$have_gas_1021" - call void @_out_of_gas() - br label %"$have_gas_1026" - -"$have_gas_1026": ; preds = %"$out_of_gas_1025", %"$have_gas_1021" - %"$consume_1027" = sub i64 %"$gasrem_1023", 20 - store i64 %"$consume_1027", i64* @_gasrem, align 8 - store %Int32 { i32 20 }, %Int32* @"$_gas_charge_accListUtils_2", align 4, !dbg !103 - %"$gasrem_1028" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1029" = icmp ugt i64 11, %"$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", 11 - store i64 %"$consume_1032", i64* @_gasrem, align 8 - store %Int32 { i32 11 }, %Int32* @"$_gas_charge_accNatUtils_3", align 4, !dbg !103 - %"$gasrem_1033" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1034" = icmp ugt i64 1, %"$gasrem_1033" - br i1 %"$gascmp_1034", label %"$out_of_gas_1035", label %"$have_gas_1036" - -"$out_of_gas_1035": ; preds = %"$have_gas_1031" - call void @_out_of_gas() - br label %"$have_gas_1036" - -"$have_gas_1036": ; preds = %"$out_of_gas_1035", %"$have_gas_1031" - %"$consume_1037" = sub i64 %"$gasrem_1033", 1 - store i64 %"$consume_1037", i64* @_gasrem, align 8 - %"$nat_fold_6" = alloca { i8*, i8* }*, align 8 - %"$dyndisp_table_1041_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$dyndisp_table_1041_salloc_salloc" = call i8* @_salloc(i8* %"$dyndisp_table_1041_salloc_load", i64 48) - %"$dyndisp_table_1041_salloc" = bitcast i8* %"$dyndisp_table_1041_salloc_salloc" to [3 x { i8*, i8* }]* - %"$dyndisp_table_1041" = bitcast [3 x { i8*, i8* }]* %"$dyndisp_table_1041_salloc" to { i8*, i8* }* - %"$dyndisp_gep_1042" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_1041", i32 0 - %"$dyndisp_pcast_1043" = bitcast { i8*, i8* }* %"$dyndisp_gep_1042" to { { { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* }* - store { { { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* } { { { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } (i8*)* bitcast ({ { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } (%"$$fundef_48_env_167"*)* @"$fundef_48" to { { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } (i8*)*), i8* null }, { { { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* }* %"$dyndisp_pcast_1043", align 8 - store { i8*, i8* }* %"$dyndisp_table_1041", { i8*, i8* }** %"$nat_fold_6", align 8, !dbg !104 - %"$$fundef_56_envp_1044_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_56_envp_1044_salloc" = call i8* @_salloc(i8* %"$$fundef_56_envp_1044_load", i64 8) - %"$$fundef_56_envp_1044" = bitcast i8* %"$$fundef_56_envp_1044_salloc" to %"$$fundef_56_env_163"* - %"$$fundef_56_env_voidp_1046" = bitcast %"$$fundef_56_env_163"* %"$$fundef_56_envp_1044" to i8* - %"$$fundef_56_cloval_1047" = insertvalue { %Uint32 (i8*, %TName_Nat*)*, i8* } { %Uint32 (i8*, %TName_Nat*)* bitcast (%Uint32 (%"$$fundef_56_env_163"*, %TName_Nat*)* @"$fundef_56" to %Uint32 (i8*, %TName_Nat*)*), i8* undef }, i8* %"$$fundef_56_env_voidp_1046", 1 - %"$$fundef_56_env_$nat_fold_6_1048" = getelementptr inbounds %"$$fundef_56_env_163", %"$$fundef_56_env_163"* %"$$fundef_56_envp_1044", i32 0, i32 0 - %"$$nat_fold_6_1049" = load { i8*, i8* }*, { i8*, i8* }** %"$nat_fold_6", align 8 - store { i8*, i8* }* %"$$nat_fold_6_1049", { i8*, i8* }** %"$$fundef_56_env_$nat_fold_6_1048", align 8 - store { %Uint32 (i8*, %TName_Nat*)*, i8* } %"$$fundef_56_cloval_1047", { %Uint32 (i8*, %TName_Nat*)*, i8* }* @NatUtils.nat_to_int, align 8, !dbg !105 + %"$gasrem_1009" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1010" = icmp ugt i64 4, %"$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", 4 + store i64 %"$consume_1013", i64* @_gasrem, align 8 + store %Int32 { i32 4 }, %Int32* @"$_gas_charge_accrec_lib_5", align 4, !dbg !169 + %"$gasrem_1014" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1015" = icmp ugt i64 1, %"$gasrem_1014" + br i1 %"$gascmp_1015", label %"$out_of_gas_1016", label %"$have_gas_1017" + +"$out_of_gas_1016": ; preds = %"$have_gas_1012" + call void @_out_of_gas() + br label %"$have_gas_1017" + +"$have_gas_1017": ; preds = %"$out_of_gas_1016", %"$have_gas_1012" + %"$consume_1018" = sub i64 %"$gasrem_1014", 1 + store i64 %"$consume_1018", i64* @_gasrem, align 8 + %"$dyndisp_table_1025_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$dyndisp_table_1025_salloc_salloc" = call i8* @_salloc(i8* %"$dyndisp_table_1025_salloc_load", i64 48) + %"$dyndisp_table_1025_salloc" = bitcast i8* %"$dyndisp_table_1025_salloc_salloc" to [3 x { i8*, i8* }]* + %"$dyndisp_table_1025" = bitcast [3 x { i8*, i8* }]* %"$dyndisp_table_1025_salloc" to { i8*, i8* }* + %"$dyndisp_gep_1026" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_1025", i32 1 + %"$dyndisp_pcast_1027" = bitcast { i8*, i8* }* %"$dyndisp_gep_1026" to { { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*, i8* } (i8*)*, i8* }* + store { { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*, i8* } (i8*)*, i8* } { { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*, i8* } (i8*)* bitcast ({ { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*, i8* } (%"$$fundef_32_env_175"*)* @"$fundef_32" to { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*, i8* } (i8*)*), i8* null }, { { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*, i8* } (i8*)*, i8* }* %"$dyndisp_pcast_1027", align 8 + %"$dyndisp_gep_1028" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_1025", i32 2 + %"$dyndisp_pcast_1029" = bitcast { i8*, i8* }* %"$dyndisp_gep_1028" to { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*)*, i8* }* + store { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*)*, i8* } { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*)* bitcast ({ { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* })*, i8* } (%"$$fundef_40_env_171"*)* @"$fundef_40" to { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*)*), i8* null }, { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*)*, i8* }* %"$dyndisp_pcast_1029", align 8 + store { i8*, i8* }* %"$dyndisp_table_1025", { i8*, i8* }** @nat_fold, align 8, !dbg !170 + %"$gasrem_1030" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1031" = icmp ugt i64 8, %"$gasrem_1030" + br i1 %"$gascmp_1031", label %"$out_of_gas_1032", label %"$have_gas_1033" + +"$out_of_gas_1032": ; preds = %"$have_gas_1017" + call void @_out_of_gas() + br label %"$have_gas_1033" + +"$have_gas_1033": ; preds = %"$out_of_gas_1032", %"$have_gas_1017" + %"$consume_1034" = sub i64 %"$gasrem_1030", 8 + store i64 %"$consume_1034", i64* @_gasrem, align 8 + store %Int32 { i32 8 }, %Int32* @"$_gas_charge_accBoolUtils_0", align 4, !dbg !169 + %"$gasrem_1035" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1036" = icmp ugt i64 196, %"$gasrem_1035" + br i1 %"$gascmp_1036", label %"$out_of_gas_1037", label %"$have_gas_1038" + +"$out_of_gas_1037": ; preds = %"$have_gas_1033" + call void @_out_of_gas() + br label %"$have_gas_1038" + +"$have_gas_1038": ; preds = %"$out_of_gas_1037", %"$have_gas_1033" + %"$consume_1039" = sub i64 %"$gasrem_1035", 196 + store i64 %"$consume_1039", i64* @_gasrem, align 8 + store %Int32 { i32 196 }, %Int32* @"$_gas_charge_accIntUtils_1", align 4, !dbg !169 + %"$gasrem_1040" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1041" = icmp ugt i64 20, %"$gasrem_1040" + br i1 %"$gascmp_1041", label %"$out_of_gas_1042", label %"$have_gas_1043" + +"$out_of_gas_1042": ; preds = %"$have_gas_1038" + call void @_out_of_gas() + br label %"$have_gas_1043" + +"$have_gas_1043": ; preds = %"$out_of_gas_1042", %"$have_gas_1038" + %"$consume_1044" = sub i64 %"$gasrem_1040", 20 + store i64 %"$consume_1044", i64* @_gasrem, align 8 + store %Int32 { i32 20 }, %Int32* @"$_gas_charge_accListUtils_2", align 4, !dbg !169 + %"$gasrem_1045" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1046" = icmp ugt i64 11, %"$gasrem_1045" + br i1 %"$gascmp_1046", label %"$out_of_gas_1047", label %"$have_gas_1048" + +"$out_of_gas_1047": ; preds = %"$have_gas_1043" + call void @_out_of_gas() + br label %"$have_gas_1048" + +"$have_gas_1048": ; preds = %"$out_of_gas_1047", %"$have_gas_1043" + %"$consume_1049" = sub i64 %"$gasrem_1045", 11 + store i64 %"$consume_1049", i64* @_gasrem, align 8 + store %Int32 { i32 11 }, %Int32* @"$_gas_charge_accNatUtils_3", align 4, !dbg !169 %"$gasrem_1050" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1051" = icmp ugt i64 2, %"$gasrem_1050" + %"$gascmp_1051" = icmp ugt i64 1, %"$gasrem_1050" br i1 %"$gascmp_1051", label %"$out_of_gas_1052", label %"$have_gas_1053" -"$out_of_gas_1052": ; preds = %"$have_gas_1036" +"$out_of_gas_1052": ; preds = %"$have_gas_1048" call void @_out_of_gas() br label %"$have_gas_1053" -"$have_gas_1053": ; preds = %"$out_of_gas_1052", %"$have_gas_1036" - %"$consume_1054" = sub i64 %"$gasrem_1050", 2 +"$have_gas_1053": ; preds = %"$out_of_gas_1052", %"$have_gas_1048" + %"$consume_1054" = sub i64 %"$gasrem_1050", 1 store i64 %"$consume_1054", i64* @_gasrem, align 8 - store %Int32 { i32 2 }, %Int32* @"$_gas_charge_accPairUtils_4", align 4, !dbg !103 + %"$nat_fold_6" = alloca { i8*, i8* }*, align 8 + %"$dyndisp_table_1058_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$dyndisp_table_1058_salloc_salloc" = call i8* @_salloc(i8* %"$dyndisp_table_1058_salloc_load", i64 48) + %"$dyndisp_table_1058_salloc" = bitcast i8* %"$dyndisp_table_1058_salloc_salloc" to [3 x { i8*, i8* }]* + %"$dyndisp_table_1058" = bitcast [3 x { i8*, i8* }]* %"$dyndisp_table_1058_salloc" to { i8*, i8* }* + %"$dyndisp_gep_1059" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_1058", i32 0 + %"$dyndisp_pcast_1060" = bitcast { i8*, i8* }* %"$dyndisp_gep_1059" to { { { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* }* + store { { { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* } { { { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } (i8*)* bitcast ({ { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } (%"$$fundef_48_env_167"*)* @"$fundef_48" to { { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } (i8*)*), i8* null }, { { { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %TName_Nat*)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* }* %"$dyndisp_pcast_1060", align 8 + store { i8*, i8* }* %"$dyndisp_table_1058", { i8*, i8* }** %"$nat_fold_6", align 8, !dbg !170 + %"$$fundef_56_envp_1061_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_56_envp_1061_salloc" = call i8* @_salloc(i8* %"$$fundef_56_envp_1061_load", i64 8) + %"$$fundef_56_envp_1061" = bitcast i8* %"$$fundef_56_envp_1061_salloc" to %"$$fundef_56_env_163"* + %"$$fundef_56_env_voidp_1063" = bitcast %"$$fundef_56_env_163"* %"$$fundef_56_envp_1061" to i8* + %"$$fundef_56_cloval_1064" = insertvalue { %Uint32 (i8*, %TName_Nat*)*, i8* } { %Uint32 (i8*, %TName_Nat*)* bitcast (%Uint32 (%"$$fundef_56_env_163"*, %TName_Nat*)* @"$fundef_56" to %Uint32 (i8*, %TName_Nat*)*), i8* undef }, i8* %"$$fundef_56_env_voidp_1063", 1 + %"$$fundef_56_env_$nat_fold_6_1065" = getelementptr inbounds %"$$fundef_56_env_163", %"$$fundef_56_env_163"* %"$$fundef_56_envp_1061", i32 0, i32 0 + %"$$nat_fold_6_1066" = load { i8*, i8* }*, { i8*, i8* }** %"$nat_fold_6", align 8 + store { i8*, i8* }* %"$$nat_fold_6_1066", { i8*, i8* }** %"$$fundef_56_env_$nat_fold_6_1065", align 8 + store { %Uint32 (i8*, %TName_Nat*)*, i8* } %"$$fundef_56_cloval_1064", { %Uint32 (i8*, %TName_Nat*)*, i8* }* @NatUtils.nat_to_int, align 8, !dbg !171 + %"$gasrem_1067" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1068" = icmp ugt i64 2, %"$gasrem_1067" + br i1 %"$gascmp_1068", label %"$out_of_gas_1069", label %"$have_gas_1070" + +"$out_of_gas_1069": ; preds = %"$have_gas_1053" + call void @_out_of_gas() + br label %"$have_gas_1070" + +"$have_gas_1070": ; preds = %"$out_of_gas_1069", %"$have_gas_1053" + %"$consume_1071" = sub i64 %"$gasrem_1067", 2 + store i64 %"$consume_1071", i64* @_gasrem, align 8 + store %Int32 { i32 2 }, %Int32* @"$_gas_charge_accPairUtils_4", align 4, !dbg !169 ret void } -define internal %Uint32 @_scilla_expr_fun(i8* %0) !dbg !106 { +define internal %Uint32 @_scilla_expr_fun(i8* %0) !dbg !172 { entry: %"$expr_62" = alloca %Uint32, align 8 - %"$gasrem_1055" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1056" = icmp ugt i64 1, %"$gasrem_1055" - br i1 %"$gascmp_1056", label %"$out_of_gas_1057", label %"$have_gas_1058" + call void @llvm.dbg.declare(metadata %Uint32* %"$expr_62", metadata !173, metadata !DIExpression()), !dbg !174 + %"$gasrem_1072" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1073" = icmp ugt i64 1, %"$gasrem_1072" + br i1 %"$gascmp_1073", label %"$out_of_gas_1074", label %"$have_gas_1075" -"$out_of_gas_1057": ; preds = %entry +"$out_of_gas_1074": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_1058" + br label %"$have_gas_1075" -"$have_gas_1058": ; preds = %"$out_of_gas_1057", %entry - %"$consume_1059" = sub i64 %"$gasrem_1055", 1 - store i64 %"$consume_1059", i64* @_gasrem, align 8 +"$have_gas_1075": ; preds = %"$out_of_gas_1074", %entry + %"$consume_1076" = sub i64 %"$gasrem_1072", 1 + store i64 %"$consume_1076", i64* @_gasrem, align 8 %nat_succ = alloca { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, 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" + %"$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_1062": ; preds = %"$have_gas_1058" +"$out_of_gas_1079": ; preds = %"$have_gas_1075" call void @_out_of_gas() - br label %"$have_gas_1063" + br label %"$have_gas_1080" -"$have_gas_1063": ; preds = %"$out_of_gas_1062", %"$have_gas_1058" - %"$consume_1064" = sub i64 %"$gasrem_1060", 1 - store i64 %"$consume_1064", i64* @_gasrem, align 8 - store { %TName_Nat* (i8*, %TName_Nat*)*, i8* } { %TName_Nat* (i8*, %TName_Nat*)* bitcast (%TName_Nat* (%"$$fundef_63_env_160"*, %TName_Nat*)* @"$fundef_63" to %TName_Nat* (i8*, %TName_Nat*)*), i8* null }, { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %nat_succ, align 8, !dbg !107 - %"$gasrem_1068" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1069" = icmp ugt i64 1, %"$gasrem_1068" - br i1 %"$gascmp_1069", label %"$out_of_gas_1070", label %"$have_gas_1071" +"$have_gas_1080": ; preds = %"$out_of_gas_1079", %"$have_gas_1075" + %"$consume_1081" = sub i64 %"$gasrem_1077", 1 + store i64 %"$consume_1081", i64* @_gasrem, align 8 + store { %TName_Nat* (i8*, %TName_Nat*)*, i8* } { %TName_Nat* (i8*, %TName_Nat*)* bitcast (%TName_Nat* (%"$$fundef_63_env_160"*, %TName_Nat*)* @"$fundef_63" to %TName_Nat* (i8*, %TName_Nat*)*), i8* null }, { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %nat_succ, align 8, !dbg !175 + %"$gasrem_1085" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1086" = icmp ugt i64 1, %"$gasrem_1085" + br i1 %"$gascmp_1086", label %"$out_of_gas_1087", label %"$have_gas_1088" -"$out_of_gas_1070": ; preds = %"$have_gas_1063" +"$out_of_gas_1087": ; preds = %"$have_gas_1080" call void @_out_of_gas() - br label %"$have_gas_1071" + br label %"$have_gas_1088" -"$have_gas_1071": ; preds = %"$out_of_gas_1070", %"$have_gas_1063" - %"$consume_1072" = sub i64 %"$gasrem_1068", 1 - store i64 %"$consume_1072", i64* @_gasrem, align 8 +"$have_gas_1088": ; preds = %"$out_of_gas_1087", %"$have_gas_1080" + %"$consume_1089" = sub i64 %"$gasrem_1085", 1 + store i64 %"$consume_1089", i64* @_gasrem, align 8 %nat_iter = alloca { i8*, i8* }*, align 8 - %"$gasrem_1073" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1074" = icmp ugt i64 1, %"$gasrem_1073" - br i1 %"$gascmp_1074", label %"$out_of_gas_1075", label %"$have_gas_1076" - -"$out_of_gas_1075": ; preds = %"$have_gas_1071" - call void @_out_of_gas() - br label %"$have_gas_1076" - -"$have_gas_1076": ; preds = %"$out_of_gas_1075", %"$have_gas_1071" - %"$consume_1077" = sub i64 %"$gasrem_1073", 1 - store i64 %"$consume_1077", i64* @_gasrem, align 8 - %"$$fundef_65_envp_1078_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_65_envp_1078_salloc" = call i8* @_salloc(i8* %"$$fundef_65_envp_1078_load", i64 8) - %"$$fundef_65_envp_1078" = bitcast i8* %"$$fundef_65_envp_1078_salloc" to %"$$fundef_65_env_159"* - %"$$fundef_65_env_voidp_1080" = bitcast %"$$fundef_65_env_159"* %"$$fundef_65_envp_1078" to i8* - %"$$fundef_65_cloval_1081" = insertvalue { { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*, i8* } (i8*)*, i8* } { { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*, i8* } (i8*)* bitcast ({ { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*, i8* } (%"$$fundef_65_env_159"*)* @"$fundef_65" to { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*, i8* } (i8*)*), i8* undef }, i8* %"$$fundef_65_env_voidp_1080", 1 - %"$$fundef_65_env_nat_fold_1082" = getelementptr inbounds %"$$fundef_65_env_159", %"$$fundef_65_env_159"* %"$$fundef_65_envp_1078", i32 0, i32 0 - %"$nat_fold_1083" = load { i8*, i8* }*, { i8*, i8* }** @nat_fold, align 8 - store { i8*, i8* }* %"$nat_fold_1083", { i8*, i8* }** %"$$fundef_65_env_nat_fold_1082", align 8 - %"$$fundef_77_env_voidp_1085" = bitcast %"$$fundef_65_env_159"* %"$$fundef_65_envp_1078" to i8* - %"$$fundef_77_cloval_1086" = insertvalue { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*)*, i8* } { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*)* bitcast ({ { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (%"$$fundef_77_env_153"*)* @"$fundef_77" to { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*)*), i8* undef }, i8* %"$$fundef_77_env_voidp_1085", 1 - %"$dyndisp_table_1087_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$dyndisp_table_1087_salloc_salloc" = call i8* @_salloc(i8* %"$dyndisp_table_1087_salloc_load", i64 48) - %"$dyndisp_table_1087_salloc" = bitcast i8* %"$dyndisp_table_1087_salloc_salloc" to [3 x { i8*, i8* }]* - %"$dyndisp_table_1087" = bitcast [3 x { i8*, i8* }]* %"$dyndisp_table_1087_salloc" to { i8*, i8* }* - %"$dyndisp_gep_1088" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_1087", i32 1 - %"$dyndisp_pcast_1089" = bitcast { i8*, i8* }* %"$dyndisp_gep_1088" to { { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*, i8* } (i8*)*, i8* }* - store { { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*, i8* } (i8*)*, i8* } %"$$fundef_65_cloval_1081", { { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*, i8* } (i8*)*, i8* }* %"$dyndisp_pcast_1089", align 8 - %"$dyndisp_gep_1090" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_1087", i32 2 - %"$dyndisp_pcast_1091" = bitcast { i8*, i8* }* %"$dyndisp_gep_1090" to { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*)*, i8* }* - store { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*)*, i8* } %"$$fundef_77_cloval_1086", { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*)*, i8* }* %"$dyndisp_pcast_1091", align 8 - store { i8*, i8* }* %"$dyndisp_table_1087", { i8*, i8* }** %nat_iter, align 8, !dbg !108 - %"$gasrem_1092" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1093" = icmp ugt i64 1, %"$gasrem_1092" - br i1 %"$gascmp_1093", label %"$out_of_gas_1094", label %"$have_gas_1095" - -"$out_of_gas_1094": ; preds = %"$have_gas_1076" - call void @_out_of_gas() - br label %"$have_gas_1095" - -"$have_gas_1095": ; preds = %"$out_of_gas_1094", %"$have_gas_1076" - %"$consume_1096" = sub i64 %"$gasrem_1092", 1 - store i64 %"$consume_1096", i64* @_gasrem, align 8 + %"$gasrem_1090" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1091" = icmp ugt i64 1, %"$gasrem_1090" + br i1 %"$gascmp_1091", label %"$out_of_gas_1092", label %"$have_gas_1093" + +"$out_of_gas_1092": ; preds = %"$have_gas_1088" + call void @_out_of_gas() + br label %"$have_gas_1093" + +"$have_gas_1093": ; preds = %"$out_of_gas_1092", %"$have_gas_1088" + %"$consume_1094" = sub i64 %"$gasrem_1090", 1 + store i64 %"$consume_1094", i64* @_gasrem, align 8 + %"$$fundef_65_envp_1095_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_65_envp_1095_salloc" = call i8* @_salloc(i8* %"$$fundef_65_envp_1095_load", i64 8) + %"$$fundef_65_envp_1095" = bitcast i8* %"$$fundef_65_envp_1095_salloc" to %"$$fundef_65_env_159"* + %"$$fundef_65_env_voidp_1097" = bitcast %"$$fundef_65_env_159"* %"$$fundef_65_envp_1095" to i8* + %"$$fundef_65_cloval_1098" = insertvalue { { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*, i8* } (i8*)*, i8* } { { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*, i8* } (i8*)* bitcast ({ { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*, i8* } (%"$$fundef_65_env_159"*)* @"$fundef_65" to { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*, i8* } (i8*)*), i8* undef }, i8* %"$$fundef_65_env_voidp_1097", 1 + %"$$fundef_65_env_nat_fold_1099" = getelementptr inbounds %"$$fundef_65_env_159", %"$$fundef_65_env_159"* %"$$fundef_65_envp_1095", i32 0, i32 0 + %"$nat_fold_1100" = load { i8*, i8* }*, { i8*, i8* }** @nat_fold, align 8 + store { i8*, i8* }* %"$nat_fold_1100", { i8*, i8* }** %"$$fundef_65_env_nat_fold_1099", align 8 + %"$$fundef_77_env_voidp_1102" = bitcast %"$$fundef_65_env_159"* %"$$fundef_65_envp_1095" to i8* + %"$$fundef_77_cloval_1103" = insertvalue { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*)*, i8* } { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*)* bitcast ({ { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (%"$$fundef_77_env_153"*)* @"$fundef_77" to { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*)*), i8* undef }, i8* %"$$fundef_77_env_voidp_1102", 1 + %"$dyndisp_table_1104_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$dyndisp_table_1104_salloc_salloc" = call i8* @_salloc(i8* %"$dyndisp_table_1104_salloc_load", i64 48) + %"$dyndisp_table_1104_salloc" = bitcast i8* %"$dyndisp_table_1104_salloc_salloc" to [3 x { i8*, i8* }]* + %"$dyndisp_table_1104" = bitcast [3 x { i8*, i8* }]* %"$dyndisp_table_1104_salloc" to { i8*, i8* }* + %"$dyndisp_gep_1105" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_1104", i32 1 + %"$dyndisp_pcast_1106" = bitcast { i8*, i8* }* %"$dyndisp_gep_1105" to { { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*, i8* } (i8*)*, i8* }* + store { { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*, i8* } (i8*)*, i8* } %"$$fundef_65_cloval_1098", { { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*, i8* } (i8*)*, i8* }* %"$dyndisp_pcast_1106", align 8 + %"$dyndisp_gep_1107" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_1104", i32 2 + %"$dyndisp_pcast_1108" = bitcast { i8*, i8* }* %"$dyndisp_gep_1107" to { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*)*, i8* }* + store { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*)*, i8* } %"$$fundef_77_cloval_1103", { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*)*, i8* }* %"$dyndisp_pcast_1108", align 8 + store { i8*, i8* }* %"$dyndisp_table_1104", { i8*, i8* }** %nat_iter, align 8, !dbg !176 + %"$gasrem_1109" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1110" = icmp ugt i64 1, %"$gasrem_1109" + br i1 %"$gascmp_1110", label %"$out_of_gas_1111", label %"$have_gas_1112" + +"$out_of_gas_1111": ; preds = %"$have_gas_1093" + call void @_out_of_gas() + br label %"$have_gas_1112" + +"$have_gas_1112": ; preds = %"$out_of_gas_1111", %"$have_gas_1093" + %"$consume_1113" = sub i64 %"$gasrem_1109", 1 + store i64 %"$consume_1113", i64* @_gasrem, align 8 %ackermann = alloca { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, 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 = %"$have_gas_1095" - call void @_out_of_gas() - br label %"$have_gas_1100" - -"$have_gas_1100": ; preds = %"$out_of_gas_1099", %"$have_gas_1095" - %"$consume_1101" = sub i64 %"$gasrem_1097", 1 - store i64 %"$consume_1101", i64* @_gasrem, align 8 - %iter_nat = alloca { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }, align 8 - %"$gasrem_1102" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1103" = icmp ugt i64 1, %"$gasrem_1102" - br i1 %"$gascmp_1103", label %"$out_of_gas_1104", label %"$have_gas_1105" - -"$out_of_gas_1104": ; preds = %"$have_gas_1100" - call void @_out_of_gas() - br label %"$have_gas_1105" - -"$have_gas_1105": ; preds = %"$out_of_gas_1104", %"$have_gas_1100" - %"$consume_1106" = sub i64 %"$gasrem_1102", 1 - store i64 %"$consume_1106", i64* @_gasrem, align 8 - %"$nat_iter_1107" = load { i8*, i8* }*, { i8*, i8* }** %nat_iter, align 8 - %"$nat_iter_1108" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$nat_iter_1107", i32 2 - %"$nat_iter_1109" = bitcast { i8*, i8* }* %"$nat_iter_1108" to { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*)*, i8* }* - %"$nat_iter_1110" = load { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*)*, i8* }, { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*)*, i8* }* %"$nat_iter_1109", align 8 - %"$nat_iter_fptr_1111" = extractvalue { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*)*, i8* } %"$nat_iter_1110", 0 - %"$nat_iter_envptr_1112" = extractvalue { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*)*, i8* } %"$nat_iter_1110", 1 - %"$nat_iter_call_1113" = call { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } %"$nat_iter_fptr_1111"(i8* %"$nat_iter_envptr_1112"), !dbg !109 - store { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } %"$nat_iter_call_1113", { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }* %iter_nat, align 8, !dbg !110 %"$gasrem_1114" = load i64, i64* @_gasrem, align 8 %"$gascmp_1115" = icmp ugt i64 1, %"$gasrem_1114" br i1 %"$gascmp_1115", label %"$out_of_gas_1116", label %"$have_gas_1117" -"$out_of_gas_1116": ; preds = %"$have_gas_1105" +"$out_of_gas_1116": ; preds = %"$have_gas_1112" call void @_out_of_gas() br label %"$have_gas_1117" -"$have_gas_1117": ; preds = %"$out_of_gas_1116", %"$have_gas_1105" +"$have_gas_1117": ; preds = %"$out_of_gas_1116", %"$have_gas_1112" %"$consume_1118" = sub i64 %"$gasrem_1114", 1 store i64 %"$consume_1118", i64* @_gasrem, align 8 - %iter_nat_nat = alloca { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*, i8* }, align 8 + %iter_nat = alloca { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }, align 8 %"$gasrem_1119" = load i64, i64* @_gasrem, align 8 %"$gascmp_1120" = icmp ugt i64 1, %"$gasrem_1119" br i1 %"$gascmp_1120", label %"$out_of_gas_1121", label %"$have_gas_1122" @@ -2114,13 +2160,13 @@ entry: %"$consume_1123" = sub i64 %"$gasrem_1119", 1 store i64 %"$consume_1123", i64* @_gasrem, align 8 %"$nat_iter_1124" = load { i8*, i8* }*, { i8*, i8* }** %nat_iter, align 8 - %"$nat_iter_1125" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$nat_iter_1124", i32 1 - %"$nat_iter_1126" = bitcast { i8*, i8* }* %"$nat_iter_1125" to { { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*, i8* } (i8*)*, i8* }* - %"$nat_iter_1127" = load { { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*, i8* } (i8*)*, i8* }, { { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*, i8* } (i8*)*, i8* }* %"$nat_iter_1126", align 8 - %"$nat_iter_fptr_1128" = extractvalue { { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*, i8* } (i8*)*, i8* } %"$nat_iter_1127", 0 - %"$nat_iter_envptr_1129" = extractvalue { { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*, i8* } (i8*)*, i8* } %"$nat_iter_1127", 1 - %"$nat_iter_call_1130" = call { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*, i8* } %"$nat_iter_fptr_1128"(i8* %"$nat_iter_envptr_1129"), !dbg !111 - store { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*, i8* } %"$nat_iter_call_1130", { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*, i8* }* %iter_nat_nat, align 8, !dbg !112 + %"$nat_iter_1125" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$nat_iter_1124", i32 2 + %"$nat_iter_1126" = bitcast { i8*, i8* }* %"$nat_iter_1125" to { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*)*, i8* }* + %"$nat_iter_1127" = load { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*)*, i8* }, { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*)*, i8* }* %"$nat_iter_1126", align 8 + %"$nat_iter_fptr_1128" = extractvalue { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*)*, i8* } %"$nat_iter_1127", 0 + %"$nat_iter_envptr_1129" = extractvalue { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*)*, i8* } %"$nat_iter_1127", 1 + %"$nat_iter_call_1130" = call { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } %"$nat_iter_fptr_1128"(i8* %"$nat_iter_envptr_1129"), !dbg !177 + store { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } %"$nat_iter_call_1130", { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }* %iter_nat, align 8, !dbg !178 %"$gasrem_1131" = load i64, i64* @_gasrem, align 8 %"$gascmp_1132" = icmp ugt i64 1, %"$gasrem_1131" br i1 %"$gascmp_1132", label %"$out_of_gas_1133", label %"$have_gas_1134" @@ -2132,7 +2178,7 @@ entry: "$have_gas_1134": ; preds = %"$out_of_gas_1133", %"$have_gas_1122" %"$consume_1135" = sub i64 %"$gasrem_1131", 1 store i64 %"$consume_1135", i64* @_gasrem, align 8 - %zero = alloca %TName_Nat*, align 8 + %iter_nat_nat = alloca { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*, i8* }, 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" @@ -2144,199 +2190,205 @@ entry: "$have_gas_1139": ; preds = %"$out_of_gas_1138", %"$have_gas_1134" %"$consume_1140" = sub i64 %"$gasrem_1136", 1 store i64 %"$consume_1140", i64* @_gasrem, align 8 - %"$adtval_1141_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_1141_salloc" = call i8* @_salloc(i8* %"$adtval_1141_load", i64 1) - %"$adtval_1141" = bitcast i8* %"$adtval_1141_salloc" to %CName_Zero* - %"$adtgep_1142" = getelementptr inbounds %CName_Zero, %CName_Zero* %"$adtval_1141", i32 0, i32 0 - store i8 0, i8* %"$adtgep_1142", align 1 - %"$adtptr_1143" = bitcast %CName_Zero* %"$adtval_1141" to %TName_Nat* - store %TName_Nat* %"$adtptr_1143", %TName_Nat** %zero, align 8, !dbg !113 - %"$gasrem_1144" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1145" = icmp ugt i64 1, %"$gasrem_1144" - br i1 %"$gascmp_1145", label %"$out_of_gas_1146", label %"$have_gas_1147" - -"$out_of_gas_1146": ; preds = %"$have_gas_1139" - call void @_out_of_gas() - br label %"$have_gas_1147" - -"$have_gas_1147": ; preds = %"$out_of_gas_1146", %"$have_gas_1139" - %"$consume_1148" = sub i64 %"$gasrem_1144", 1 - store i64 %"$consume_1148", i64* @_gasrem, align 8 + %"$nat_iter_1141" = load { i8*, i8* }*, { i8*, i8* }** %nat_iter, align 8 + %"$nat_iter_1142" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$nat_iter_1141", i32 1 + %"$nat_iter_1143" = bitcast { i8*, i8* }* %"$nat_iter_1142" to { { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*, i8* } (i8*)*, i8* }* + %"$nat_iter_1144" = load { { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*, i8* } (i8*)*, i8* }, { { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*, i8* } (i8*)*, i8* }* %"$nat_iter_1143", align 8 + %"$nat_iter_fptr_1145" = extractvalue { { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*, i8* } (i8*)*, i8* } %"$nat_iter_1144", 0 + %"$nat_iter_envptr_1146" = extractvalue { { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*, i8* } (i8*)*, i8* } %"$nat_iter_1144", 1 + %"$nat_iter_call_1147" = call { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*, i8* } %"$nat_iter_fptr_1145"(i8* %"$nat_iter_envptr_1146"), !dbg !179 + store { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*, i8* } %"$nat_iter_call_1147", { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*, i8* }* %iter_nat_nat, align 8, !dbg !180 + %"$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_1139" + call void @_out_of_gas() + br label %"$have_gas_1151" + +"$have_gas_1151": ; preds = %"$out_of_gas_1150", %"$have_gas_1139" + %"$consume_1152" = sub i64 %"$gasrem_1148", 1 + store i64 %"$consume_1152", i64* @_gasrem, align 8 + %zero = alloca %TName_Nat*, align 8 + call void @llvm.dbg.declare(metadata %TName_Nat** %zero, metadata !181, metadata !DIExpression()), !dbg !182 + %"$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 + %"$adtval_1158_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_1158_salloc" = call i8* @_salloc(i8* %"$adtval_1158_load", i64 1) + %"$adtval_1158" = bitcast i8* %"$adtval_1158_salloc" to %CName_Zero* + %"$adtgep_1159" = getelementptr inbounds %CName_Zero, %CName_Zero* %"$adtval_1158", i32 0, i32 0 + store i8 0, i8* %"$adtgep_1159", align 1 + %"$adtptr_1160" = bitcast %CName_Zero* %"$adtval_1158" to %TName_Nat* + store %TName_Nat* %"$adtptr_1160", %TName_Nat** %zero, align 8, !dbg !183 + %"$gasrem_1161" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1162" = icmp ugt i64 1, %"$gasrem_1161" + br i1 %"$gascmp_1162", label %"$out_of_gas_1163", label %"$have_gas_1164" + +"$out_of_gas_1163": ; preds = %"$have_gas_1156" + call void @_out_of_gas() + br label %"$have_gas_1164" + +"$have_gas_1164": ; preds = %"$out_of_gas_1163", %"$have_gas_1156" + %"$consume_1165" = sub i64 %"$gasrem_1161", 1 + store i64 %"$consume_1165", i64* @_gasrem, align 8 %one = alloca %TName_Nat*, align 8 - %"$gasrem_1149" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1150" = icmp ugt i64 1, %"$gasrem_1149" - br i1 %"$gascmp_1150", label %"$out_of_gas_1151", label %"$have_gas_1152" - -"$out_of_gas_1151": ; preds = %"$have_gas_1147" - call void @_out_of_gas() - br label %"$have_gas_1152" - -"$have_gas_1152": ; preds = %"$out_of_gas_1151", %"$have_gas_1147" - %"$consume_1153" = sub i64 %"$gasrem_1149", 1 - store i64 %"$consume_1153", i64* @_gasrem, align 8 - %"$zero_1154" = load %TName_Nat*, %TName_Nat** %zero, align 8 - %"$adtval_1155_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_1155_salloc" = call i8* @_salloc(i8* %"$adtval_1155_load", i64 9) - %"$adtval_1155" = bitcast i8* %"$adtval_1155_salloc" to %CName_Succ* - %"$adtgep_1156" = getelementptr inbounds %CName_Succ, %CName_Succ* %"$adtval_1155", i32 0, i32 0 - store i8 1, i8* %"$adtgep_1156", align 1 - %"$adtgep_1157" = getelementptr inbounds %CName_Succ, %CName_Succ* %"$adtval_1155", i32 0, i32 1 - store %TName_Nat* %"$zero_1154", %TName_Nat** %"$adtgep_1157", align 8 - %"$adtptr_1158" = bitcast %CName_Succ* %"$adtval_1155" to %TName_Nat* - store %TName_Nat* %"$adtptr_1158", %TName_Nat** %one, align 8, !dbg !114 - %"$gasrem_1159" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1160" = icmp ugt i64 1, %"$gasrem_1159" - br i1 %"$gascmp_1160", label %"$out_of_gas_1161", label %"$have_gas_1162" - -"$out_of_gas_1161": ; preds = %"$have_gas_1152" - call void @_out_of_gas() - br label %"$have_gas_1162" - -"$have_gas_1162": ; preds = %"$out_of_gas_1161", %"$have_gas_1152" - %"$consume_1163" = sub i64 %"$gasrem_1159", 1 - store i64 %"$consume_1163", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Nat** %one, metadata !184, metadata !DIExpression()), !dbg !185 + %"$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_1164" + call void @_out_of_gas() + br label %"$have_gas_1169" + +"$have_gas_1169": ; preds = %"$out_of_gas_1168", %"$have_gas_1164" + %"$consume_1170" = sub i64 %"$gasrem_1166", 1 + store i64 %"$consume_1170", i64* @_gasrem, align 8 + %"$zero_1171" = load %TName_Nat*, %TName_Nat** %zero, align 8 + %"$adtval_1172_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_1172_salloc" = call i8* @_salloc(i8* %"$adtval_1172_load", i64 9) + %"$adtval_1172" = bitcast i8* %"$adtval_1172_salloc" to %CName_Succ* + %"$adtgep_1173" = getelementptr inbounds %CName_Succ, %CName_Succ* %"$adtval_1172", i32 0, i32 0 + store i8 1, i8* %"$adtgep_1173", align 1 + %"$adtgep_1174" = getelementptr inbounds %CName_Succ, %CName_Succ* %"$adtval_1172", i32 0, i32 1 + store %TName_Nat* %"$zero_1171", %TName_Nat** %"$adtgep_1174", align 8 + %"$adtptr_1175" = bitcast %CName_Succ* %"$adtval_1172" to %TName_Nat* + store %TName_Nat* %"$adtptr_1175", %TName_Nat** %one, align 8, !dbg !186 + %"$gasrem_1176" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1177" = icmp ugt i64 1, %"$gasrem_1176" + br i1 %"$gascmp_1177", label %"$out_of_gas_1178", label %"$have_gas_1179" + +"$out_of_gas_1178": ; preds = %"$have_gas_1169" + call void @_out_of_gas() + br label %"$have_gas_1179" + +"$have_gas_1179": ; preds = %"$out_of_gas_1178", %"$have_gas_1169" + %"$consume_1180" = sub i64 %"$gasrem_1176", 1 + store i64 %"$consume_1180", i64* @_gasrem, align 8 %f = alloca { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }, align 8 - %"$gasrem_1164" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1165" = icmp ugt i64 1, %"$gasrem_1164" - br i1 %"$gascmp_1165", label %"$out_of_gas_1166", label %"$have_gas_1167" - -"$out_of_gas_1166": ; preds = %"$have_gas_1162" - call void @_out_of_gas() - br label %"$have_gas_1167" - -"$have_gas_1167": ; preds = %"$out_of_gas_1166", %"$have_gas_1162" - %"$consume_1168" = sub i64 %"$gasrem_1164", 1 - store i64 %"$consume_1168", i64* @_gasrem, align 8 - %"$$fundef_89_envp_1169_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_89_envp_1169_salloc" = call i8* @_salloc(i8* %"$$fundef_89_envp_1169_load", i64 24) - %"$$fundef_89_envp_1169" = bitcast i8* %"$$fundef_89_envp_1169_salloc" to %"$$fundef_89_env_147"* - %"$$fundef_89_env_voidp_1171" = bitcast %"$$fundef_89_env_147"* %"$$fundef_89_envp_1169" to i8* - %"$$fundef_89_cloval_1172" = insertvalue { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })* bitcast ({ %TName_Nat* (i8*, %TName_Nat*)*, i8* } (%"$$fundef_89_env_147"*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })* @"$fundef_89" to { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*), i8* undef }, i8* %"$$fundef_89_env_voidp_1171", 1 - %"$$fundef_89_env_iter_nat_1173" = getelementptr inbounds %"$$fundef_89_env_147", %"$$fundef_89_env_147"* %"$$fundef_89_envp_1169", i32 0, i32 0 - %"$iter_nat_1174" = load { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }, { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }* %iter_nat, align 8 - store { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } %"$iter_nat_1174", { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }* %"$$fundef_89_env_iter_nat_1173", align 8 - %"$$fundef_89_env_one_1175" = getelementptr inbounds %"$$fundef_89_env_147", %"$$fundef_89_env_147"* %"$$fundef_89_envp_1169", i32 0, i32 1 - %"$one_1176" = load %TName_Nat*, %TName_Nat** %one, align 8 - store %TName_Nat* %"$one_1176", %TName_Nat** %"$$fundef_89_env_one_1175", align 8 - store { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } %"$$fundef_89_cloval_1172", { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }* %f, align 8, !dbg !115 - %"$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 = %"$have_gas_1167" - call void @_out_of_gas() - br label %"$have_gas_1180" - -"$have_gas_1180": ; preds = %"$out_of_gas_1179", %"$have_gas_1167" - %"$consume_1181" = sub i64 %"$gasrem_1177", 1 - store i64 %"$consume_1181", i64* @_gasrem, align 8 - %"$$fundef_93_envp_1182_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_93_envp_1182_salloc" = call i8* @_salloc(i8* %"$$fundef_93_envp_1182_load", i64 48) - %"$$fundef_93_envp_1182" = bitcast i8* %"$$fundef_93_envp_1182_salloc" to %"$$fundef_93_env_145"* - %"$$fundef_93_env_voidp_1184" = bitcast %"$$fundef_93_env_145"* %"$$fundef_93_envp_1182" to i8* - %"$$fundef_93_cloval_1185" = insertvalue { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)* bitcast ({ %TName_Nat* (i8*, %TName_Nat*)*, i8* } (%"$$fundef_93_env_145"*, %TName_Nat*)* @"$fundef_93" to { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*), i8* undef }, i8* %"$$fundef_93_env_voidp_1184", 1 - %"$$fundef_93_env_f_1186" = getelementptr inbounds %"$$fundef_93_env_145", %"$$fundef_93_env_145"* %"$$fundef_93_envp_1182", i32 0, i32 0 - %"$f_1187" = load { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }* %f, align 8 - store { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } %"$f_1187", { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }* %"$$fundef_93_env_f_1186", align 8 - %"$$fundef_93_env_iter_nat_nat_1188" = getelementptr inbounds %"$$fundef_93_env_145", %"$$fundef_93_env_145"* %"$$fundef_93_envp_1182", i32 0, i32 1 - %"$iter_nat_nat_1189" = load { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*, i8* }, { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*, i8* }* %iter_nat_nat, align 8 - store { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*, i8* } %"$iter_nat_nat_1189", { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*, i8* }* %"$$fundef_93_env_iter_nat_nat_1188", align 8 - %"$$fundef_93_env_nat_succ_1190" = getelementptr inbounds %"$$fundef_93_env_145", %"$$fundef_93_env_145"* %"$$fundef_93_envp_1182", i32 0, i32 2 - %"$nat_succ_1191" = load { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %nat_succ, align 8 - store { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$nat_succ_1191", { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$$fundef_93_env_nat_succ_1190", align 8 - store { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$$fundef_93_cloval_1185", { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }* %ackermann, align 8, !dbg !116 - %"$gasrem_1192" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1193" = icmp ugt i64 1, %"$gasrem_1192" - br i1 %"$gascmp_1193", label %"$out_of_gas_1194", label %"$have_gas_1195" - -"$out_of_gas_1194": ; preds = %"$have_gas_1180" - call void @_out_of_gas() - br label %"$have_gas_1195" - -"$have_gas_1195": ; preds = %"$out_of_gas_1194", %"$have_gas_1180" - %"$consume_1196" = sub i64 %"$gasrem_1192", 1 - store i64 %"$consume_1196", i64* @_gasrem, align 8 + %"$gasrem_1181" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1182" = icmp ugt i64 1, %"$gasrem_1181" + br i1 %"$gascmp_1182", label %"$out_of_gas_1183", label %"$have_gas_1184" + +"$out_of_gas_1183": ; preds = %"$have_gas_1179" + call void @_out_of_gas() + br label %"$have_gas_1184" + +"$have_gas_1184": ; preds = %"$out_of_gas_1183", %"$have_gas_1179" + %"$consume_1185" = sub i64 %"$gasrem_1181", 1 + store i64 %"$consume_1185", i64* @_gasrem, align 8 + %"$$fundef_89_envp_1186_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_89_envp_1186_salloc" = call i8* @_salloc(i8* %"$$fundef_89_envp_1186_load", i64 24) + %"$$fundef_89_envp_1186" = bitcast i8* %"$$fundef_89_envp_1186_salloc" to %"$$fundef_89_env_147"* + %"$$fundef_89_env_voidp_1188" = bitcast %"$$fundef_89_env_147"* %"$$fundef_89_envp_1186" to i8* + %"$$fundef_89_cloval_1189" = insertvalue { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })* bitcast ({ %TName_Nat* (i8*, %TName_Nat*)*, i8* } (%"$$fundef_89_env_147"*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })* @"$fundef_89" to { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*), i8* undef }, i8* %"$$fundef_89_env_voidp_1188", 1 + %"$$fundef_89_env_iter_nat_1190" = getelementptr inbounds %"$$fundef_89_env_147", %"$$fundef_89_env_147"* %"$$fundef_89_envp_1186", i32 0, i32 0 + %"$iter_nat_1191" = load { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }, { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }* %iter_nat, align 8 + store { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } %"$iter_nat_1191", { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }* %"$$fundef_89_env_iter_nat_1190", align 8 + %"$$fundef_89_env_one_1192" = getelementptr inbounds %"$$fundef_89_env_147", %"$$fundef_89_env_147"* %"$$fundef_89_envp_1186", i32 0, i32 1 + %"$one_1193" = load %TName_Nat*, %TName_Nat** %one, align 8 + store %TName_Nat* %"$one_1193", %TName_Nat** %"$$fundef_89_env_one_1192", align 8 + store { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } %"$$fundef_89_cloval_1189", { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }* %f, align 8, !dbg !187 + %"$gasrem_1194" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1195" = icmp ugt i64 1, %"$gasrem_1194" + br i1 %"$gascmp_1195", label %"$out_of_gas_1196", label %"$have_gas_1197" + +"$out_of_gas_1196": ; preds = %"$have_gas_1184" + call void @_out_of_gas() + br label %"$have_gas_1197" + +"$have_gas_1197": ; preds = %"$out_of_gas_1196", %"$have_gas_1184" + %"$consume_1198" = sub i64 %"$gasrem_1194", 1 + store i64 %"$consume_1198", i64* @_gasrem, align 8 + %"$$fundef_93_envp_1199_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_93_envp_1199_salloc" = call i8* @_salloc(i8* %"$$fundef_93_envp_1199_load", i64 48) + %"$$fundef_93_envp_1199" = bitcast i8* %"$$fundef_93_envp_1199_salloc" to %"$$fundef_93_env_145"* + %"$$fundef_93_env_voidp_1201" = bitcast %"$$fundef_93_env_145"* %"$$fundef_93_envp_1199" to i8* + %"$$fundef_93_cloval_1202" = insertvalue { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)* bitcast ({ %TName_Nat* (i8*, %TName_Nat*)*, i8* } (%"$$fundef_93_env_145"*, %TName_Nat*)* @"$fundef_93" to { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*), i8* undef }, i8* %"$$fundef_93_env_voidp_1201", 1 + %"$$fundef_93_env_f_1203" = getelementptr inbounds %"$$fundef_93_env_145", %"$$fundef_93_env_145"* %"$$fundef_93_envp_1199", i32 0, i32 0 + %"$f_1204" = load { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }* %f, align 8 + store { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } %"$f_1204", { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* }* %"$$fundef_93_env_f_1203", align 8 + %"$$fundef_93_env_iter_nat_nat_1205" = getelementptr inbounds %"$$fundef_93_env_145", %"$$fundef_93_env_145"* %"$$fundef_93_envp_1199", i32 0, i32 1 + %"$iter_nat_nat_1206" = load { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*, i8* }, { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*, i8* }* %iter_nat_nat, align 8 + store { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*, i8* } %"$iter_nat_nat_1206", { { { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* } (i8*, %TName_Nat*)*, i8* } (i8*, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, { %TName_Nat* (i8*, %TName_Nat*)*, i8* })*, i8* })*, i8* }* %"$$fundef_93_env_iter_nat_nat_1205", align 8 + %"$$fundef_93_env_nat_succ_1207" = getelementptr inbounds %"$$fundef_93_env_145", %"$$fundef_93_env_145"* %"$$fundef_93_envp_1199", i32 0, i32 2 + %"$nat_succ_1208" = load { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %nat_succ, align 8 + store { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$nat_succ_1208", { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$$fundef_93_env_nat_succ_1207", align 8 + store { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$$fundef_93_cloval_1202", { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }* %ackermann, align 8, !dbg !188 + %"$gasrem_1209" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1210" = icmp ugt i64 1, %"$gasrem_1209" + br i1 %"$gascmp_1210", label %"$out_of_gas_1211", label %"$have_gas_1212" + +"$out_of_gas_1211": ; preds = %"$have_gas_1197" + call void @_out_of_gas() + br label %"$have_gas_1212" + +"$have_gas_1212": ; preds = %"$out_of_gas_1211", %"$have_gas_1197" + %"$consume_1213" = sub i64 %"$gasrem_1209", 1 + store i64 %"$consume_1213", i64* @_gasrem, align 8 %uintM = alloca %Uint32, align 8 - %"$gasrem_1197" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1198" = icmp ugt i64 1, %"$gasrem_1197" - br i1 %"$gascmp_1198", label %"$out_of_gas_1199", label %"$have_gas_1200" + call void @llvm.dbg.declare(metadata %Uint32* %uintM, metadata !189, metadata !DIExpression()), !dbg !190 + %"$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" -"$out_of_gas_1199": ; preds = %"$have_gas_1195" +"$out_of_gas_1216": ; preds = %"$have_gas_1212" call void @_out_of_gas() - br label %"$have_gas_1200" + br label %"$have_gas_1217" -"$have_gas_1200": ; preds = %"$out_of_gas_1199", %"$have_gas_1195" - %"$consume_1201" = sub i64 %"$gasrem_1197", 1 - store i64 %"$consume_1201", i64* @_gasrem, align 8 - store %Uint32 { i32 3 }, %Uint32* %uintM, align 4, !dbg !117 - %"$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" +"$have_gas_1217": ; preds = %"$out_of_gas_1216", %"$have_gas_1212" + %"$consume_1218" = sub i64 %"$gasrem_1214", 1 + store i64 %"$consume_1218", i64* @_gasrem, align 8 + store %Uint32 { i32 3 }, %Uint32* %uintM, align 4, !dbg !191 + %"$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" -"$out_of_gas_1204": ; preds = %"$have_gas_1200" +"$out_of_gas_1221": ; preds = %"$have_gas_1217" call void @_out_of_gas() - br label %"$have_gas_1205" + br label %"$have_gas_1222" -"$have_gas_1205": ; preds = %"$out_of_gas_1204", %"$have_gas_1200" - %"$consume_1206" = sub i64 %"$gasrem_1202", 1 - store i64 %"$consume_1206", i64* @_gasrem, align 8 +"$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 %uintN = alloca %Uint32, align 8 - %"$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_1209": ; preds = %"$have_gas_1205" - call void @_out_of_gas() - br label %"$have_gas_1210" + call void @llvm.dbg.declare(metadata %Uint32* %uintN, metadata !192, metadata !DIExpression()), !dbg !193 + %"$gasrem_1224" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1225" = icmp ugt i64 1, %"$gasrem_1224" + br i1 %"$gascmp_1225", label %"$out_of_gas_1226", label %"$have_gas_1227" -"$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 %Uint32 { i32 7 }, %Uint32* %uintN, align 4, !dbg !118 - %"$gasrem_1212" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1213" = icmp ugt i64 1, %"$gasrem_1212" - br i1 %"$gascmp_1213", label %"$out_of_gas_1214", label %"$have_gas_1215" - -"$out_of_gas_1214": ; preds = %"$have_gas_1210" +"$out_of_gas_1226": ; preds = %"$have_gas_1222" call void @_out_of_gas() - br label %"$have_gas_1215" + br label %"$have_gas_1227" -"$have_gas_1215": ; preds = %"$out_of_gas_1214", %"$have_gas_1210" - %"$consume_1216" = sub i64 %"$gasrem_1212", 1 - store i64 %"$consume_1216", i64* @_gasrem, align 8 - %m = alloca %TName_Nat*, align 8 - %"$uintM_1217" = load %Uint32, %Uint32* %uintM, align 4 - %"$valueof_1218" = extractvalue %Uint32 %"$uintM_1217", 0 - %"$valueof_1219" = zext i32 %"$valueof_1218" to i64 - %"$gasrem_1220" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1221" = icmp ugt i64 %"$valueof_1219", %"$gasrem_1220" - br i1 %"$gascmp_1221", label %"$out_of_gas_1222", label %"$have_gas_1223" - -"$out_of_gas_1222": ; preds = %"$have_gas_1215" - call void @_out_of_gas() - br label %"$have_gas_1223" - -"$have_gas_1223": ; preds = %"$out_of_gas_1222", %"$have_gas_1215" - %"$consume_1224" = sub i64 %"$gasrem_1220", %"$valueof_1219" - store i64 %"$consume_1224", i64* @_gasrem, align 8 - %"$execptr_load_1225" = load i8*, i8** @_execptr, align 8 - %"$uintM_1226" = load %Uint32, %Uint32* %uintM, align 4 - %"$to_nat_call_1227" = call %TName_Nat* @_to_nat(i8* %"$execptr_load_1225", %Uint32 %"$uintM_1226"), !dbg !119 - store %TName_Nat* %"$to_nat_call_1227", %TName_Nat** %m, align 8, !dbg !119 +"$have_gas_1227": ; preds = %"$out_of_gas_1226", %"$have_gas_1222" + %"$consume_1228" = sub i64 %"$gasrem_1224", 1 + store i64 %"$consume_1228", i64* @_gasrem, align 8 + store %Uint32 { i32 7 }, %Uint32* %uintN, align 4, !dbg !194 %"$gasrem_1229" = load i64, i64* @_gasrem, align 8 %"$gascmp_1230" = icmp ugt i64 1, %"$gasrem_1229" br i1 %"$gascmp_1230", label %"$out_of_gas_1231", label %"$have_gas_1232" -"$out_of_gas_1231": ; preds = %"$have_gas_1223" +"$out_of_gas_1231": ; preds = %"$have_gas_1227" call void @_out_of_gas() br label %"$have_gas_1232" -"$have_gas_1232": ; preds = %"$out_of_gas_1231", %"$have_gas_1223" +"$have_gas_1232": ; preds = %"$out_of_gas_1231", %"$have_gas_1227" %"$consume_1233" = sub i64 %"$gasrem_1229", 1 store i64 %"$consume_1233", i64* @_gasrem, align 8 - %n = alloca %TName_Nat*, align 8 - %"$uintN_1234" = load %Uint32, %Uint32* %uintN, align 4 - %"$valueof_1235" = extractvalue %Uint32 %"$uintN_1234", 0 + %m = alloca %TName_Nat*, align 8 + call void @llvm.dbg.declare(metadata %TName_Nat** %m, metadata !195, metadata !DIExpression()), !dbg !196 + %"$uintM_1234" = load %Uint32, %Uint32* %uintM, align 4 + %"$valueof_1235" = extractvalue %Uint32 %"$uintM_1234", 0 %"$valueof_1236" = zext i32 %"$valueof_1235" to i64 %"$gasrem_1237" = load i64, i64* @_gasrem, align 8 %"$gascmp_1238" = icmp ugt i64 %"$valueof_1236", %"$gasrem_1237" @@ -2350,9 +2402,9 @@ entry: %"$consume_1241" = sub i64 %"$gasrem_1237", %"$valueof_1236" store i64 %"$consume_1241", i64* @_gasrem, align 8 %"$execptr_load_1242" = load i8*, i8** @_execptr, align 8 - %"$uintN_1243" = load %Uint32, %Uint32* %uintN, align 4 - %"$to_nat_call_1244" = call %TName_Nat* @_to_nat(i8* %"$execptr_load_1242", %Uint32 %"$uintN_1243"), !dbg !120 - store %TName_Nat* %"$to_nat_call_1244", %TName_Nat** %n, align 8, !dbg !120 + %"$uintM_1243" = load %Uint32, %Uint32* %uintM, align 4 + %"$to_nat_call_1244" = call %TName_Nat* @_to_nat(i8* %"$execptr_load_1242", %Uint32 %"$uintM_1243"), !dbg !197 + store %TName_Nat* %"$to_nat_call_1244", %TName_Nat** %m, align 8, !dbg !197 %"$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" @@ -2364,81 +2416,116 @@ entry: "$have_gas_1249": ; preds = %"$out_of_gas_1248", %"$have_gas_1240" %"$consume_1250" = sub i64 %"$gasrem_1246", 1 store i64 %"$consume_1250", i64* @_gasrem, align 8 + %n = alloca %TName_Nat*, align 8 + call void @llvm.dbg.declare(metadata %TName_Nat** %n, metadata !198, metadata !DIExpression()), !dbg !199 + %"$uintN_1251" = load %Uint32, %Uint32* %uintN, align 4 + %"$valueof_1252" = extractvalue %Uint32 %"$uintN_1251", 0 + %"$valueof_1253" = zext i32 %"$valueof_1252" to i64 + %"$gasrem_1254" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1255" = icmp ugt i64 %"$valueof_1253", %"$gasrem_1254" + br i1 %"$gascmp_1255", label %"$out_of_gas_1256", label %"$have_gas_1257" + +"$out_of_gas_1256": ; preds = %"$have_gas_1249" + call void @_out_of_gas() + br label %"$have_gas_1257" + +"$have_gas_1257": ; preds = %"$out_of_gas_1256", %"$have_gas_1249" + %"$consume_1258" = sub i64 %"$gasrem_1254", %"$valueof_1253" + store i64 %"$consume_1258", i64* @_gasrem, align 8 + %"$execptr_load_1259" = load i8*, i8** @_execptr, align 8 + %"$uintN_1260" = load %Uint32, %Uint32* %uintN, align 4 + %"$to_nat_call_1261" = call %TName_Nat* @_to_nat(i8* %"$execptr_load_1259", %Uint32 %"$uintN_1260"), !dbg !200 + store %TName_Nat* %"$to_nat_call_1261", %TName_Nat** %n, align 8, !dbg !200 + %"$gasrem_1263" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1264" = icmp ugt i64 1, %"$gasrem_1263" + br i1 %"$gascmp_1264", label %"$out_of_gas_1265", label %"$have_gas_1266" + +"$out_of_gas_1265": ; preds = %"$have_gas_1257" + call void @_out_of_gas() + br label %"$have_gas_1266" + +"$have_gas_1266": ; preds = %"$out_of_gas_1265", %"$have_gas_1257" + %"$consume_1267" = sub i64 %"$gasrem_1263", 1 + store i64 %"$consume_1267", i64* @_gasrem, align 8 %ack00 = alloca %TName_Nat*, align 8 - %"$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" + call void @llvm.dbg.declare(metadata %TName_Nat** %ack00, metadata !201, metadata !DIExpression()), !dbg !202 + %"$gasrem_1268" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1269" = icmp ugt i64 1, %"$gasrem_1268" + br i1 %"$gascmp_1269", label %"$out_of_gas_1270", label %"$have_gas_1271" -"$out_of_gas_1253": ; preds = %"$have_gas_1249" +"$out_of_gas_1270": ; preds = %"$have_gas_1266" call void @_out_of_gas() - br label %"$have_gas_1254" + br label %"$have_gas_1271" -"$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 +"$have_gas_1271": ; preds = %"$out_of_gas_1270", %"$have_gas_1266" + %"$consume_1272" = sub i64 %"$gasrem_1268", 1 + store i64 %"$consume_1272", i64* @_gasrem, align 8 %"$ackermann_29" = alloca { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, align 8 - %"$ackermann_1256" = load { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }* %ackermann, align 8 - %"$ackermann_fptr_1257" = extractvalue { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$ackermann_1256", 0 - %"$ackermann_envptr_1258" = extractvalue { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$ackermann_1256", 1 - %"$m_1259" = load %TName_Nat*, %TName_Nat** %m, align 8 - %"$ackermann_call_1260" = call { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$ackermann_fptr_1257"(i8* %"$ackermann_envptr_1258", %TName_Nat* %"$m_1259"), !dbg !121 - store { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$ackermann_call_1260", { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$ackermann_29", align 8, !dbg !121 + %"$ackermann_1273" = load { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }, { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* }* %ackermann, align 8 + %"$ackermann_fptr_1274" = extractvalue { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$ackermann_1273", 0 + %"$ackermann_envptr_1275" = extractvalue { { %TName_Nat* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Nat*)*, i8* } %"$ackermann_1273", 1 + %"$m_1276" = load %TName_Nat*, %TName_Nat** %m, align 8 + %"$ackermann_call_1277" = call { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$ackermann_fptr_1274"(i8* %"$ackermann_envptr_1275", %TName_Nat* %"$m_1276"), !dbg !203 + store { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$ackermann_call_1277", { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$ackermann_29", align 8, !dbg !203 %"$ackermann_30" = alloca %TName_Nat*, align 8 - %"$$ackermann_29_1261" = load { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$ackermann_29", align 8 - %"$$ackermann_29_fptr_1262" = extractvalue { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$$ackermann_29_1261", 0 - %"$$ackermann_29_envptr_1263" = extractvalue { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$$ackermann_29_1261", 1 - %"$n_1264" = load %TName_Nat*, %TName_Nat** %n, align 8 - %"$$ackermann_29_call_1265" = call %TName_Nat* %"$$ackermann_29_fptr_1262"(i8* %"$$ackermann_29_envptr_1263", %TName_Nat* %"$n_1264"), !dbg !121 - store %TName_Nat* %"$$ackermann_29_call_1265", %TName_Nat** %"$ackermann_30", align 8, !dbg !121 - %"$$ackermann_30_1266" = load %TName_Nat*, %TName_Nat** %"$ackermann_30", align 8 - store %TName_Nat* %"$$ackermann_30_1266", %TName_Nat** %ack00, align 8, !dbg !121 - %"$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_1254" - call void @_out_of_gas() - br label %"$have_gas_1270" - -"$have_gas_1270": ; preds = %"$out_of_gas_1269", %"$have_gas_1254" - %"$consume_1271" = sub i64 %"$gasrem_1267", 1 - store i64 %"$consume_1271", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Nat** %"$ackermann_30", metadata !204, metadata !DIExpression()), !dbg !203 + %"$$ackermann_29_1278" = load { %TName_Nat* (i8*, %TName_Nat*)*, i8* }, { %TName_Nat* (i8*, %TName_Nat*)*, i8* }* %"$ackermann_29", align 8 + %"$$ackermann_29_fptr_1279" = extractvalue { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$$ackermann_29_1278", 0 + %"$$ackermann_29_envptr_1280" = extractvalue { %TName_Nat* (i8*, %TName_Nat*)*, i8* } %"$$ackermann_29_1278", 1 + %"$n_1281" = load %TName_Nat*, %TName_Nat** %n, align 8 + %"$$ackermann_29_call_1282" = call %TName_Nat* %"$$ackermann_29_fptr_1279"(i8* %"$$ackermann_29_envptr_1280", %TName_Nat* %"$n_1281"), !dbg !203 + store %TName_Nat* %"$$ackermann_29_call_1282", %TName_Nat** %"$ackermann_30", align 8, !dbg !203 + %"$$ackermann_30_1283" = load %TName_Nat*, %TName_Nat** %"$ackermann_30", align 8 + store %TName_Nat* %"$$ackermann_30_1283", %TName_Nat** %ack00, align 8, !dbg !203 + %"$gasrem_1284" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1285" = icmp ugt i64 1, %"$gasrem_1284" + br i1 %"$gascmp_1285", label %"$out_of_gas_1286", label %"$have_gas_1287" + +"$out_of_gas_1286": ; preds = %"$have_gas_1271" + call void @_out_of_gas() + br label %"$have_gas_1287" + +"$have_gas_1287": ; preds = %"$out_of_gas_1286", %"$have_gas_1271" + %"$consume_1288" = sub i64 %"$gasrem_1284", 1 + store i64 %"$consume_1288", i64* @_gasrem, align 8 %int01 = alloca %Uint32, align 8 - %"$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" + call void @llvm.dbg.declare(metadata %Uint32* %int01, metadata !205, metadata !DIExpression()), !dbg !206 + %"$gasrem_1289" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1290" = icmp ugt i64 1, %"$gasrem_1289" + br i1 %"$gascmp_1290", label %"$out_of_gas_1291", label %"$have_gas_1292" -"$out_of_gas_1274": ; preds = %"$have_gas_1270" +"$out_of_gas_1291": ; preds = %"$have_gas_1287" call void @_out_of_gas() - br label %"$have_gas_1275" + br label %"$have_gas_1292" -"$have_gas_1275": ; preds = %"$out_of_gas_1274", %"$have_gas_1270" - %"$consume_1276" = sub i64 %"$gasrem_1272", 1 - store i64 %"$consume_1276", i64* @_gasrem, align 8 +"$have_gas_1292": ; preds = %"$out_of_gas_1291", %"$have_gas_1287" + %"$consume_1293" = sub i64 %"$gasrem_1289", 1 + store i64 %"$consume_1293", i64* @_gasrem, align 8 %"$NatUtils.nat_to_int_31" = alloca %Uint32, align 8 - %"$NatUtils.nat_to_int_1277" = load { %Uint32 (i8*, %TName_Nat*)*, i8* }, { %Uint32 (i8*, %TName_Nat*)*, i8* }* @NatUtils.nat_to_int, align 8 - %"$NatUtils.nat_to_int_fptr_1278" = extractvalue { %Uint32 (i8*, %TName_Nat*)*, i8* } %"$NatUtils.nat_to_int_1277", 0 - %"$NatUtils.nat_to_int_envptr_1279" = extractvalue { %Uint32 (i8*, %TName_Nat*)*, i8* } %"$NatUtils.nat_to_int_1277", 1 - %"$ack00_1280" = load %TName_Nat*, %TName_Nat** %ack00, align 8 - %"$NatUtils.nat_to_int_call_1281" = call %Uint32 %"$NatUtils.nat_to_int_fptr_1278"(i8* %"$NatUtils.nat_to_int_envptr_1279", %TName_Nat* %"$ack00_1280"), !dbg !122 - store %Uint32 %"$NatUtils.nat_to_int_call_1281", %Uint32* %"$NatUtils.nat_to_int_31", align 4, !dbg !122 - %"$$NatUtils.nat_to_int_31_1282" = load %Uint32, %Uint32* %"$NatUtils.nat_to_int_31", align 4 - store %Uint32 %"$$NatUtils.nat_to_int_31_1282", %Uint32* %int01, align 4, !dbg !122 - %"$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_1275" - call void @_out_of_gas() - br label %"$have_gas_1286" - -"$have_gas_1286": ; preds = %"$out_of_gas_1285", %"$have_gas_1275" - %"$consume_1287" = sub i64 %"$gasrem_1283", 1 - store i64 %"$consume_1287", i64* @_gasrem, align 8 - %"$int01_1288" = load %Uint32, %Uint32* %int01, align 4 - store %Uint32 %"$int01_1288", %Uint32* %"$expr_62", align 4, !dbg !123 - %"$$expr_62_1289" = load %Uint32, %Uint32* %"$expr_62", align 4 - ret %Uint32 %"$$expr_62_1289" + call void @llvm.dbg.declare(metadata %Uint32* %"$NatUtils.nat_to_int_31", metadata !207, metadata !DIExpression()), !dbg !208 + %"$NatUtils.nat_to_int_1294" = load { %Uint32 (i8*, %TName_Nat*)*, i8* }, { %Uint32 (i8*, %TName_Nat*)*, i8* }* @NatUtils.nat_to_int, align 8 + %"$NatUtils.nat_to_int_fptr_1295" = extractvalue { %Uint32 (i8*, %TName_Nat*)*, i8* } %"$NatUtils.nat_to_int_1294", 0 + %"$NatUtils.nat_to_int_envptr_1296" = extractvalue { %Uint32 (i8*, %TName_Nat*)*, i8* } %"$NatUtils.nat_to_int_1294", 1 + %"$ack00_1297" = load %TName_Nat*, %TName_Nat** %ack00, align 8 + %"$NatUtils.nat_to_int_call_1298" = call %Uint32 %"$NatUtils.nat_to_int_fptr_1295"(i8* %"$NatUtils.nat_to_int_envptr_1296", %TName_Nat* %"$ack00_1297"), !dbg !208 + store %Uint32 %"$NatUtils.nat_to_int_call_1298", %Uint32* %"$NatUtils.nat_to_int_31", align 4, !dbg !208 + %"$$NatUtils.nat_to_int_31_1299" = load %Uint32, %Uint32* %"$NatUtils.nat_to_int_31", align 4 + store %Uint32 %"$$NatUtils.nat_to_int_31_1299", %Uint32* %int01, align 4, !dbg !208 + %"$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_1292" + call void @_out_of_gas() + br label %"$have_gas_1303" + +"$have_gas_1303": ; preds = %"$out_of_gas_1302", %"$have_gas_1292" + %"$consume_1304" = sub i64 %"$gasrem_1300", 1 + store i64 %"$consume_1304", i64* @_gasrem, align 8 + %"$int01_1305" = load %Uint32, %Uint32* %int01, align 4 + store %Uint32 %"$int01_1305", %Uint32* %"$expr_62", align 4, !dbg !209 + %"$$expr_62_1306" = load %Uint32, %Uint32* %"$expr_62", align 4 + ret %Uint32 %"$$expr_62_1306" } declare %TName_Nat* @_to_nat(i8*, %Uint32) @@ -2447,139 +2534,227 @@ declare void @_print_scilla_val(i8*, %_TyDescrTy_Typ*, i8*) define void @scilla_main() { entry: - %"$exprval_1290" = call %Uint32 @_scilla_expr_fun(i8* null) - %"$pval_1291" = alloca %Uint32, align 8 - %"$memvoidcast_1292" = bitcast %Uint32* %"$pval_1291" to i8* - store %Uint32 %"$exprval_1290", %Uint32* %"$pval_1291", align 4 - %"$execptr_load_1293" = load i8*, i8** @_execptr, align 8 - call void @_print_scilla_val(i8* %"$execptr_load_1293", %_TyDescrTy_Typ* @"$TyDescr_Uint32_99", i8* %"$memvoidcast_1292") + %"$exprval_1307" = call %Uint32 @_scilla_expr_fun(i8* null) + %"$pval_1308" = alloca %Uint32, align 8 + %"$memvoidcast_1309" = bitcast %Uint32* %"$pval_1308" to i8* + store %Uint32 %"$exprval_1307", %Uint32* %"$pval_1308", align 4 + %"$execptr_load_1310" = load i8*, i8** @_execptr, align 8 + call void @_print_scilla_val(i8* %"$execptr_load_1310", %_TyDescrTy_Typ* @"$TyDescr_Uint32_99", i8* %"$memvoidcast_1309") ret void } +attributes #0 = { nocallback nofree nosync nounwind readnone speculatable willreturn } + !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) +!1 = distinct !DICompileUnit(language: DW_LANG_C89, file: !2, producer: "Scilla Compiler", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false) !2 = !DIFile(filename: "ackermann_3_7.scilexp", directory: "codegen/expr") -!3 = !{} -!4 = distinct !DISubprogram(name: "$fundef_93", linkageName: "$fundef_93", scope: !2, file: !2, line: 25, type: !5, scopeLine: 25, 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: 25, column: 23, scope: !4) -!9 = distinct !DISubprogram(name: "$fundef_91", linkageName: "$fundef_91", scope: !2, file: !2, line: 24, type: !5, scopeLine: 24, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!10 = !DILocation(line: 24, column: 22, scope: !9) -!11 = distinct !DISubprogram(name: "$fundef_89", linkageName: "$fundef_89", scope: !2, file: !2, line: 23, type: !5, scopeLine: 23, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!12 = !DILocation(line: 23, column: 14, scope: !11) -!13 = !DILocation(line: 24, column: 22, scope: !11) -!14 = distinct !DISubprogram(name: "$fundef_87", linkageName: "$fundef_87", scope: !2, file: !2, line: 13, type: !5, scopeLine: 13, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!15 = !DILocation(line: 13, column: 52, scope: !14) -!16 = distinct !DISubprogram(name: "$fundef_85", linkageName: "$fundef_85", scope: !2, file: !2, line: 13, type: !5, scopeLine: 13, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!17 = !DILocation(line: 13, column: 52, scope: !16) -!18 = distinct !DISubprogram(name: "$fundef_83", linkageName: "$fundef_83", scope: !2, file: !2, line: 12, type: !5, scopeLine: 12, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!19 = !DILocation(line: 12, column: 17, scope: !18) -!20 = !DILocation(line: 12, column: 16, scope: !18) -!21 = !DILocation(line: 13, column: 30, scope: !18) -!22 = !DILocation(line: 14, column: 3, scope: !18) -!23 = distinct !DISubprogram(name: "$fundef_81", linkageName: "$fundef_81", scope: !2, file: !2, line: 11, type: !5, scopeLine: 11, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!24 = !DILocation(line: 12, column: 3, scope: !23) -!25 = distinct !DISubprogram(name: "$fundef_79", linkageName: "$fundef_79", scope: !2, file: !2, line: 10, type: !5, scopeLine: 10, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!26 = !DILocation(line: 11, column: 3, scope: !25) -!27 = distinct !DISubprogram(name: "$fundef_77", linkageName: "$fundef_77", scope: !2, file: !2, line: 10, type: !5, scopeLine: 10, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!28 = !DILocation(line: 10, column: 3, scope: !27) -!29 = distinct !DISubprogram(name: "$fundef_75", linkageName: "$fundef_75", scope: !2, file: !2, line: 13, type: !5, scopeLine: 13, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!30 = !DILocation(line: 13, column: 52, scope: !29) -!31 = distinct !DISubprogram(name: "$fundef_73", linkageName: "$fundef_73", scope: !2, file: !2, line: 13, type: !5, scopeLine: 13, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!32 = !DILocation(line: 13, column: 52, scope: !31) -!33 = distinct !DISubprogram(name: "$fundef_71", linkageName: "$fundef_71", scope: !2, file: !2, line: 12, type: !5, scopeLine: 12, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!34 = !DILocation(line: 12, column: 17, scope: !33) -!35 = !DILocation(line: 12, column: 16, scope: !33) -!36 = !DILocation(line: 13, column: 30, scope: !33) -!37 = !DILocation(line: 14, column: 3, scope: !33) -!38 = distinct !DISubprogram(name: "$fundef_69", linkageName: "$fundef_69", scope: !2, file: !2, line: 11, type: !5, scopeLine: 11, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!39 = !DILocation(line: 12, column: 3, scope: !38) -!40 = distinct !DISubprogram(name: "$fundef_67", linkageName: "$fundef_67", scope: !2, file: !2, line: 10, type: !5, scopeLine: 10, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!41 = !DILocation(line: 11, column: 3, scope: !40) -!42 = distinct !DISubprogram(name: "$fundef_65", linkageName: "$fundef_65", scope: !2, file: !2, line: 10, type: !5, scopeLine: 10, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!43 = !DILocation(line: 10, column: 3, scope: !42) -!44 = distinct !DISubprogram(name: "$fundef_63", linkageName: "$fundef_63", scope: !2, file: !2, line: 3, type: !5, scopeLine: 3, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!45 = !DILocation(line: 3, column: 20, scope: !44) -!46 = distinct !DISubprogram(name: "$fundef_60", linkageName: "$fundef_60", scope: !47, file: !47, line: 55, type: !5, scopeLine: 55, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!47 = !DIFile(filename: "NatUtils.scillib", directory: "../src/stdlib") -!48 = !DILocation(line: 55, column: 7, scope: !46) -!49 = distinct !DISubprogram(name: "$fundef_58", linkageName: "$fundef_58", scope: !47, file: !47, line: 54, type: !5, scopeLine: 54, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!50 = !DILocation(line: 55, column: 7, scope: !49) -!51 = distinct !DISubprogram(name: "$fundef_56", linkageName: "$fundef_56", scope: !47, file: !47, line: 52, type: !5, scopeLine: 52, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!52 = !DILocation(line: 52, column: 17, scope: !51) -!53 = !DILocation(line: 52, column: 16, scope: !51) -!54 = !DILocation(line: 53, column: 19, scope: !51) -!55 = !DILocation(line: 54, column: 33, scope: !51) -!56 = !DILocation(line: 56, column: 20, scope: !51) -!57 = !DILocation(line: 57, column: 5, scope: !51) -!58 = distinct !DISubprogram(name: "$fundef_54", linkageName: "$fundef_54", scope: !59, file: !59, line: 1, type: !5, scopeLine: 1, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!59 = !DIFile(filename: "Prelude", directory: ".") -!60 = !DILocation(line: 1, column: 34, scope: !58) -!61 = !DILocation(line: 1, column: 71, scope: !62) -!62 = distinct !DILexicalBlock(scope: !63, file: !59, line: 1, column: 50) -!63 = distinct !DILexicalBlock(scope: !58, file: !59, line: 1, column: 34) -!64 = !DILocation(line: 1, column: 86, scope: !62) -!65 = !DILocation(line: 1, column: 106, scope: !66) -!66 = distinct !DILexicalBlock(scope: !63, file: !59, line: 1, column: 98) -!67 = distinct !DISubprogram(name: "$fundef_52", linkageName: "$fundef_52", scope: !59, file: !59, line: 1, type: !5, scopeLine: 1, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!68 = !DILocation(line: 1, column: 34, scope: !67) -!69 = distinct !DISubprogram(name: "$fundef_50", linkageName: "$fundef_50", scope: !59, file: !59, line: 1, type: !5, scopeLine: 1, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!70 = !DILocation(line: 1, column: 18, scope: !69) -!71 = distinct !DISubprogram(name: "$fundef_48", linkageName: "$fundef_48", scope: !59, file: !59, line: 1, type: !5, scopeLine: 1, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!72 = !DILocation(line: 1, column: 18, scope: !71) -!73 = distinct !DISubprogram(name: "$fundef_46", linkageName: "$fundef_46", scope: !59, file: !59, line: 1, type: !5, scopeLine: 1, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!74 = !DILocation(line: 1, column: 34, scope: !73) -!75 = !DILocation(line: 1, column: 71, scope: !76) -!76 = distinct !DILexicalBlock(scope: !77, file: !59, line: 1, column: 50) -!77 = distinct !DILexicalBlock(scope: !73, file: !59, line: 1, column: 34) -!78 = !DILocation(line: 1, column: 86, scope: !76) -!79 = !DILocation(line: 1, column: 106, scope: !80) -!80 = distinct !DILexicalBlock(scope: !77, file: !59, line: 1, column: 98) -!81 = distinct !DISubprogram(name: "$fundef_44", linkageName: "$fundef_44", scope: !59, file: !59, line: 1, type: !5, scopeLine: 1, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!82 = !DILocation(line: 1, column: 34, scope: !81) -!83 = distinct !DISubprogram(name: "$fundef_42", linkageName: "$fundef_42", scope: !59, file: !59, line: 1, type: !5, scopeLine: 1, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!84 = !DILocation(line: 1, column: 18, scope: !83) -!85 = distinct !DISubprogram(name: "$fundef_40", linkageName: "$fundef_40", scope: !59, file: !59, line: 1, type: !5, scopeLine: 1, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!86 = !DILocation(line: 1, column: 18, scope: !85) -!87 = distinct !DISubprogram(name: "$fundef_38", linkageName: "$fundef_38", scope: !59, file: !59, line: 1, type: !5, scopeLine: 1, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!88 = !DILocation(line: 1, column: 34, scope: !87) -!89 = !DILocation(line: 1, column: 71, scope: !90) -!90 = distinct !DILexicalBlock(scope: !91, file: !59, line: 1, column: 50) -!91 = distinct !DILexicalBlock(scope: !87, file: !59, line: 1, column: 34) -!92 = !DILocation(line: 1, column: 86, scope: !90) -!93 = !DILocation(line: 1, column: 106, scope: !94) -!94 = distinct !DILexicalBlock(scope: !91, file: !59, line: 1, column: 98) -!95 = distinct !DISubprogram(name: "$fundef_36", linkageName: "$fundef_36", scope: !59, file: !59, line: 1, type: !5, scopeLine: 1, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!96 = !DILocation(line: 1, column: 34, scope: !95) -!97 = distinct !DISubprogram(name: "$fundef_34", linkageName: "$fundef_34", scope: !59, file: !59, line: 1, type: !5, scopeLine: 1, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!98 = !DILocation(line: 1, column: 18, scope: !97) -!99 = distinct !DISubprogram(name: "$fundef_32", linkageName: "$fundef_32", scope: !59, file: !59, line: 1, type: !5, scopeLine: 1, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!100 = !DILocation(line: 1, column: 18, scope: !99) -!101 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !102, file: !102, type: !5, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!102 = !DIFile(filename: ".", directory: ".") -!103 = !DILocation(line: 0, scope: !101) -!104 = !DILocation(line: 1, column: 18, scope: !101) -!105 = !DILocation(line: 52, column: 5, scope: !101) -!106 = 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) -!107 = !DILocation(line: 3, column: 20, scope: !106) -!108 = !DILocation(line: 8, column: 3, scope: !106) -!109 = !DILocation(line: 18, column: 19, scope: !106) -!110 = !DILocation(line: 18, column: 18, scope: !106) -!111 = !DILocation(line: 19, column: 23, scope: !106) -!112 = !DILocation(line: 19, column: 22, scope: !106) -!113 = !DILocation(line: 20, column: 14, scope: !106) -!114 = !DILocation(line: 21, column: 13, scope: !106) -!115 = !DILocation(line: 23, column: 5, scope: !106) -!116 = !DILocation(line: 25, column: 23, scope: !106) -!117 = !DILocation(line: 29, column: 13, scope: !106) -!118 = !DILocation(line: 30, column: 13, scope: !106) -!119 = !DILocation(line: 32, column: 9, scope: !106) -!120 = !DILocation(line: 33, column: 9, scope: !106) -!121 = !DILocation(line: 35, column: 13, scope: !106) -!122 = !DILocation(line: 36, column: 13, scope: !106) -!123 = !DILocation(line: 37, column: 1, scope: !106) +!3 = distinct !DISubprogram(name: "$fundef_93", linkageName: "$fundef_93", scope: !2, file: !2, line: 25, type: !4, scopeLine: 25, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!4 = !DISubroutineType(types: !5) +!5 = !{!6} +!6 = !DIBasicType(tag: DW_TAG_unspecified_type, name: "void") +!7 = !{} +!8 = !DILocalVariable(name: "n", scope: !3, file: !2, line: 25, type: !9) +!9 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "Nat", baseType: !10, size: 8, align: 8, dwarfAddressSpace: 0) +!10 = !DIBasicType(name: "Nat", size: 8) +!11 = !DILocation(line: 25, column: 11, scope: !3) +!12 = !DILocation(line: 25, column: 23, scope: !3) +!13 = distinct !DISubprogram(name: "$fundef_91", linkageName: "$fundef_91", scope: !2, file: !2, line: 24, type: !4, scopeLine: 24, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!14 = !DILocalVariable(name: "n", scope: !13, file: !2, line: 24, type: !9) +!15 = !DILocation(line: 24, column: 10, scope: !13) +!16 = !DILocalVariable(name: "$retval_92", scope: !13, file: !2, line: 24, type: !9) +!17 = !DILocation(line: 24, column: 22, scope: !13) +!18 = !DILocalVariable(name: "$iter_nat_25", scope: !13, file: !2, line: 24, type: !9) +!19 = distinct !DISubprogram(name: "$fundef_89", linkageName: "$fundef_89", scope: !2, file: !2, line: 23, type: !4, scopeLine: 23, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!20 = !DILocalVariable(name: "x0", scope: !19, file: !2, line: 23, type: !9) +!21 = !DILocation(line: 23, column: 9, scope: !19) +!22 = !DILocalVariable(name: "$ack_22", scope: !19, file: !2, line: 23, type: !9) +!23 = !DILocation(line: 23, column: 14, scope: !19) +!24 = !DILocation(line: 24, column: 22, scope: !19) +!25 = distinct !DISubprogram(name: "$fundef_87", linkageName: "$fundef_87", scope: !2, file: !2, line: 13, type: !4, scopeLine: 13, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!26 = !DILocalVariable(name: "unused", scope: !25, file: !2, line: 13, type: !9) +!27 = !DILocation(line: 13, column: 35, scope: !25) +!28 = !DILocalVariable(name: "$retval_88", scope: !25, file: !2, line: 13, type: !9) +!29 = !DILocation(line: 13, column: 52, scope: !25) +!30 = !DILocalVariable(name: "$f_18", scope: !25, file: !2, line: 13, type: !9) +!31 = distinct !DISubprogram(name: "$fundef_85", linkageName: "$fundef_85", scope: !2, file: !2, line: 13, type: !4, scopeLine: 13, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!32 = !DILocalVariable(name: "x", scope: !31, file: !2, line: 13, type: !9) +!33 = !DILocation(line: 13, column: 19, scope: !31) +!34 = !DILocation(line: 13, column: 52, scope: !31) +!35 = distinct !DISubprogram(name: "$fundef_83", linkageName: "$fundef_83", scope: !2, file: !2, line: 12, type: !4, scopeLine: 12, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!36 = !DILocalVariable(name: "x0", scope: !35, file: !2, line: 11, type: !9) +!37 = !DILocation(line: 11, column: 8, scope: !35) +!38 = !DILocalVariable(name: "$retval_84", scope: !35, file: !2, line: 12, type: !9) +!39 = !DILocation(line: 12, column: 3, scope: !35) +!40 = !DILocation(line: 12, column: 17, scope: !35) +!41 = !DILocation(line: 12, column: 16, scope: !35) +!42 = !DILocation(line: 13, column: 30, scope: !35) +!43 = !DILocation(line: 14, column: 3, scope: !35) +!44 = !DILocalVariable(name: "$folder_21", scope: !35, file: !2, line: 14, type: !9) +!45 = distinct !DISubprogram(name: "$fundef_81", linkageName: "$fundef_81", scope: !2, file: !2, line: 11, type: !4, scopeLine: 11, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!46 = !DILocalVariable(name: "n", scope: !45, file: !2, line: 10, type: !9) +!47 = !DILocation(line: 10, column: 8, scope: !45) +!48 = !DILocation(line: 12, column: 3, scope: !45) +!49 = distinct !DISubprogram(name: "$fundef_79", linkageName: "$fundef_79", scope: !2, file: !2, line: 10, type: !4, scopeLine: 10, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!50 = !DILocation(line: 11, column: 3, scope: !49) +!51 = distinct !DISubprogram(name: "$fundef_77", linkageName: "$fundef_77", scope: !2, file: !2, line: 10, type: !4, scopeLine: 10, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!52 = !DILocation(line: 10, column: 3, scope: !51) +!53 = distinct !DISubprogram(name: "$fundef_75", linkageName: "$fundef_75", scope: !2, file: !2, line: 13, type: !4, scopeLine: 13, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!54 = !DILocalVariable(name: "unused", scope: !53, file: !2, line: 13, type: !9) +!55 = !DILocation(line: 13, column: 35, scope: !53) +!56 = !DILocation(line: 13, column: 52, scope: !53) +!57 = distinct !DISubprogram(name: "$fundef_73", linkageName: "$fundef_73", scope: !2, file: !2, line: 13, type: !4, scopeLine: 13, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!58 = !DILocation(line: 13, column: 52, scope: !57) +!59 = distinct !DISubprogram(name: "$fundef_71", linkageName: "$fundef_71", scope: !2, file: !2, line: 12, type: !4, scopeLine: 12, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!60 = !DILocation(line: 12, column: 17, scope: !59) +!61 = !DILocation(line: 12, column: 16, scope: !59) +!62 = !DILocation(line: 13, column: 30, scope: !59) +!63 = !DILocation(line: 14, column: 3, scope: !59) +!64 = distinct !DISubprogram(name: "$fundef_69", linkageName: "$fundef_69", scope: !2, file: !2, line: 11, type: !4, scopeLine: 11, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!65 = !DILocalVariable(name: "n", scope: !64, file: !2, line: 10, type: !9) +!66 = !DILocation(line: 10, column: 8, scope: !64) +!67 = !DILocation(line: 12, column: 3, scope: !64) +!68 = distinct !DISubprogram(name: "$fundef_67", linkageName: "$fundef_67", scope: !2, file: !2, line: 10, type: !4, scopeLine: 10, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!69 = !DILocation(line: 11, column: 3, scope: !68) +!70 = distinct !DISubprogram(name: "$fundef_65", linkageName: "$fundef_65", scope: !2, file: !2, line: 10, type: !4, scopeLine: 10, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!71 = !DILocation(line: 10, column: 3, scope: !70) +!72 = distinct !DISubprogram(name: "$fundef_63", linkageName: "$fundef_63", scope: !2, file: !2, line: 3, type: !4, scopeLine: 3, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!73 = !DILocalVariable(name: "n", scope: !72, file: !2, line: 3, type: !9) +!74 = !DILocation(line: 3, column: 8, scope: !72) +!75 = !DILocalVariable(name: "$retval_64", scope: !72, file: !2, line: 3, type: !9) +!76 = !DILocation(line: 3, column: 20, scope: !72) +!77 = distinct !DISubprogram(name: "$fundef_60", linkageName: "$fundef_60", scope: !78, file: !78, line: 55, type: !4, scopeLine: 55, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!78 = !DIFile(filename: "NatUtils.scillib", directory: "../src/stdlib") +!79 = !DILocalVariable(name: "ignore", scope: !77, file: !78, line: 54, type: !9) +!80 = !DILocation(line: 54, column: 38, scope: !77) +!81 = !DILocalVariable(name: "$retval_61", scope: !77, file: !78, line: 55, type: !82) +!82 = !DIBasicType(name: "Uint32", size: 4) +!83 = !DILocation(line: 55, column: 7, scope: !77) +!84 = distinct !DISubprogram(name: "$fundef_58", linkageName: "$fundef_58", scope: !78, file: !78, line: 54, type: !4, scopeLine: 54, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!85 = !DILocalVariable(name: "z", scope: !84, file: !78, line: 54, type: !82) +!86 = !DILocation(line: 54, column: 18, scope: !84) +!87 = !DILocation(line: 55, column: 7, scope: !84) +!88 = distinct !DISubprogram(name: "$fundef_56", linkageName: "$fundef_56", scope: !78, file: !78, line: 52, type: !4, scopeLine: 52, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!89 = !DILocalVariable(name: "n", scope: !88, file: !78, line: 51, type: !9) +!90 = !DILocation(line: 51, column: 8, scope: !88) +!91 = !DILocalVariable(name: "$retval_57", scope: !88, file: !78, line: 52, type: !82) +!92 = !DILocation(line: 52, column: 5, scope: !88) +!93 = !DILocation(line: 52, column: 17, scope: !88) +!94 = !DILocation(line: 52, column: 16, scope: !88) +!95 = !DILocalVariable(name: "one_int", scope: !88, file: !78, line: 53, type: !82) +!96 = !DILocation(line: 53, column: 9, scope: !88) +!97 = !DILocation(line: 53, column: 19, scope: !88) +!98 = !DILocation(line: 54, column: 33, scope: !88) +!99 = !DILocalVariable(name: "zero_int", scope: !88, file: !78, line: 56, type: !82) +!100 = !DILocation(line: 56, column: 9, scope: !88) +!101 = !DILocation(line: 56, column: 20, scope: !88) +!102 = !DILocation(line: 57, column: 5, scope: !88) +!103 = !DILocalVariable(name: "$fold_17", scope: !88, file: !78, line: 57, type: !82) +!104 = distinct !DISubprogram(name: "$fundef_54", linkageName: "$fundef_54", scope: !105, file: !105, line: 1, type: !4, scopeLine: 1, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!105 = !DIFile(filename: "Prelude", directory: ".") +!106 = !DILocalVariable(name: "n", scope: !104, file: !105, line: 1, type: !9) +!107 = !DILocation(line: 1, column: 23, scope: !104) +!108 = !DILocalVariable(name: "$retval_55", scope: !104, file: !105, line: 1, type: !82) +!109 = !DILocation(line: 1, column: 34, scope: !104) +!110 = !DILocalVariable(name: "res", scope: !111, file: !105, line: 1, type: !82) +!111 = distinct !DILexicalBlock(scope: !112, file: !105, line: 1, column: 50) +!112 = distinct !DILexicalBlock(scope: !104, file: !105, line: 1, column: 34) +!113 = !DILocation(line: 1, column: 65, scope: !111) +!114 = !DILocation(line: 1, column: 71, scope: !111) +!115 = !DILocalVariable(name: "$fn_12", scope: !111, file: !105, line: 1, type: !82) +!116 = !DILocation(line: 1, column: 86, scope: !111) +!117 = !DILocalVariable(name: "$g_14", scope: !111, file: !105, line: 1, type: !82) +!118 = !DILocation(line: 1, column: 106, scope: !119) +!119 = distinct !DILexicalBlock(scope: !112, file: !105, line: 1, column: 98) +!120 = distinct !DISubprogram(name: "$fundef_52", linkageName: "$fundef_52", scope: !105, file: !105, line: 1, type: !4, scopeLine: 1, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!121 = !DILocalVariable(name: "f0", scope: !120, file: !105, line: 1, type: !82) +!122 = !DILocation(line: 1, column: 6, scope: !120) +!123 = !DILocation(line: 1, column: 34, scope: !120) +!124 = distinct !DISubprogram(name: "$fundef_50", linkageName: "$fundef_50", scope: !105, file: !105, line: 1, type: !4, scopeLine: 1, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!125 = !DILocation(line: 1, column: 18, scope: !124) +!126 = distinct !DISubprogram(name: "$fundef_48", linkageName: "$fundef_48", scope: !105, file: !105, line: 1, type: !4, scopeLine: 1, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!127 = !DILocation(line: 1, column: 18, scope: !126) +!128 = distinct !DISubprogram(name: "$fundef_46", linkageName: "$fundef_46", scope: !105, file: !105, line: 1, type: !4, scopeLine: 1, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!129 = !DILocalVariable(name: "n", scope: !128, file: !105, line: 1, type: !9) +!130 = !DILocation(line: 1, column: 23, scope: !128) +!131 = !DILocalVariable(name: "$retval_47", scope: !128, file: !105, line: 1, type: !9) +!132 = !DILocation(line: 1, column: 34, scope: !128) +!133 = !DILocalVariable(name: "res", scope: !134, file: !105, line: 1, type: !9) +!134 = distinct !DILexicalBlock(scope: !135, file: !105, line: 1, column: 50) +!135 = distinct !DILexicalBlock(scope: !128, file: !105, line: 1, column: 34) +!136 = !DILocation(line: 1, column: 65, scope: !134) +!137 = !DILocation(line: 1, column: 71, scope: !134) +!138 = !DILocalVariable(name: "$fn_8", scope: !134, file: !105, line: 1, type: !9) +!139 = !DILocation(line: 1, column: 86, scope: !134) +!140 = !DILocalVariable(name: "$g_10", scope: !134, file: !105, line: 1, type: !9) +!141 = !DILocation(line: 1, column: 106, scope: !142) +!142 = distinct !DILexicalBlock(scope: !135, file: !105, line: 1, column: 98) +!143 = distinct !DISubprogram(name: "$fundef_44", linkageName: "$fundef_44", scope: !105, file: !105, line: 1, type: !4, scopeLine: 1, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!144 = !DILocalVariable(name: "f0", scope: !143, file: !105, line: 1, type: !9) +!145 = !DILocation(line: 1, column: 6, scope: !143) +!146 = !DILocation(line: 1, column: 34, scope: !143) +!147 = distinct !DISubprogram(name: "$fundef_42", linkageName: "$fundef_42", scope: !105, file: !105, line: 1, type: !4, scopeLine: 1, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!148 = !DILocation(line: 1, column: 18, scope: !147) +!149 = distinct !DISubprogram(name: "$fundef_40", linkageName: "$fundef_40", scope: !105, file: !105, line: 1, type: !4, scopeLine: 1, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!150 = !DILocation(line: 1, column: 18, scope: !149) +!151 = distinct !DISubprogram(name: "$fundef_38", linkageName: "$fundef_38", scope: !105, file: !105, line: 1, type: !4, scopeLine: 1, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!152 = !DILocalVariable(name: "n", scope: !151, file: !105, line: 1, type: !9) +!153 = !DILocation(line: 1, column: 23, scope: !151) +!154 = !DILocation(line: 1, column: 34, scope: !151) +!155 = !DILocation(line: 1, column: 71, scope: !156) +!156 = distinct !DILexicalBlock(scope: !157, file: !105, line: 1, column: 50) +!157 = distinct !DILexicalBlock(scope: !151, file: !105, line: 1, column: 34) +!158 = !DILocation(line: 1, column: 86, scope: !156) +!159 = !DILocation(line: 1, column: 106, scope: !160) +!160 = distinct !DILexicalBlock(scope: !157, file: !105, line: 1, column: 98) +!161 = distinct !DISubprogram(name: "$fundef_36", linkageName: "$fundef_36", scope: !105, file: !105, line: 1, type: !4, scopeLine: 1, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!162 = !DILocation(line: 1, column: 34, scope: !161) +!163 = distinct !DISubprogram(name: "$fundef_34", linkageName: "$fundef_34", scope: !105, file: !105, line: 1, type: !4, scopeLine: 1, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!164 = !DILocation(line: 1, column: 18, scope: !163) +!165 = distinct !DISubprogram(name: "$fundef_32", linkageName: "$fundef_32", scope: !105, file: !105, line: 1, type: !4, scopeLine: 1, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!166 = !DILocation(line: 1, column: 18, scope: !165) +!167 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !168, file: !168, type: !4, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!168 = !DIFile(filename: ".", directory: ".") +!169 = !DILocation(line: 0, scope: !167) +!170 = !DILocation(line: 1, column: 18, scope: !167) +!171 = !DILocation(line: 52, column: 5, scope: !167) +!172 = distinct !DISubprogram(name: "_scilla_expr_fun", linkageName: "_scilla_expr_fun", scope: !2, file: !2, line: 3, type: !4, scopeLine: 3, spFlags: DISPFlagDefinition, unit: !1, retainedNodes: !7) +!173 = !DILocalVariable(name: "$expr_62", scope: !172, file: !2, line: 3, type: !82) +!174 = !DILocation(line: 3, column: 3, scope: !172) +!175 = !DILocation(line: 3, column: 20, scope: !172) +!176 = !DILocation(line: 8, column: 3, scope: !172) +!177 = !DILocation(line: 18, column: 19, scope: !172) +!178 = !DILocation(line: 18, column: 18, scope: !172) +!179 = !DILocation(line: 19, column: 23, scope: !172) +!180 = !DILocation(line: 19, column: 22, scope: !172) +!181 = !DILocalVariable(name: "zero", scope: !172, file: !2, line: 20, type: !9) +!182 = !DILocation(line: 20, column: 7, scope: !172) +!183 = !DILocation(line: 20, column: 14, scope: !172) +!184 = !DILocalVariable(name: "one", scope: !172, file: !2, line: 21, type: !9) +!185 = !DILocation(line: 21, column: 7, scope: !172) +!186 = !DILocation(line: 21, column: 13, scope: !172) +!187 = !DILocation(line: 23, column: 5, scope: !172) +!188 = !DILocation(line: 25, column: 23, scope: !172) +!189 = !DILocalVariable(name: "uintM", scope: !172, file: !2, line: 29, type: !82) +!190 = !DILocation(line: 29, column: 5, scope: !172) +!191 = !DILocation(line: 29, column: 13, scope: !172) +!192 = !DILocalVariable(name: "uintN", scope: !172, file: !2, line: 30, type: !82) +!193 = !DILocation(line: 30, column: 5, scope: !172) +!194 = !DILocation(line: 30, column: 13, scope: !172) +!195 = !DILocalVariable(name: "m", scope: !172, file: !2, line: 32, type: !9) +!196 = !DILocation(line: 32, column: 5, scope: !172) +!197 = !DILocation(line: 32, column: 9, scope: !172) +!198 = !DILocalVariable(name: "n", scope: !172, file: !2, line: 33, type: !9) +!199 = !DILocation(line: 33, column: 5, scope: !172) +!200 = !DILocation(line: 33, column: 9, scope: !172) +!201 = !DILocalVariable(name: "ack00", scope: !172, file: !2, line: 35, type: !9) +!202 = !DILocation(line: 35, column: 5, scope: !172) +!203 = !DILocation(line: 35, column: 13, scope: !172) +!204 = !DILocalVariable(name: "$ackermann_30", scope: !172, file: !2, line: 35, type: !9) +!205 = !DILocalVariable(name: "int01", scope: !172, file: !2, line: 36, type: !82) +!206 = !DILocation(line: 36, column: 5, scope: !172) +!207 = !DILocalVariable(name: "$NatUtils.nat_to_int_31", scope: !172, file: !2, line: 36, type: !82) +!208 = !DILocation(line: 36, column: 13, scope: !172) +!209 = !DILocation(line: 37, column: 1, scope: !172) diff --git a/testsuite/expr/ackermann_3_7.ll b/testsuite/expr/ackermann_3_7.ll index 1abe18ec..377dfbc8 100644 --- a/testsuite/expr/ackermann_3_7.ll +++ b/testsuite/expr/ackermann_3_7.ll @@ -38,7 +38,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-pc-linux-gnu" +target triple = "x86_64-unknown-linux-gnu" %"$TyDescrTy_PrimTyp_95" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/testsuite/expr/adt-fun.dbg.ll b/testsuite/expr/adt-fun.dbg.ll index 8d72c0f1..b74771de 100644 --- a/testsuite/expr/adt-fun.dbg.ll +++ b/testsuite/expr/adt-fun.dbg.ll @@ -8,7 +8,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-pc-linux-gnu" +target triple = "x86_64-unknown-linux-gnu" %"$TyDescrTy_PrimTyp_10" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } @@ -17,9 +17,9 @@ target triple = "x86_64-pc-linux-gnu" %"$TyDescrTy_ADTTyp_Specl_41" = type { %_TyDescrTy_Typ**, %"$TyDescrTy_ADTTyp_Constr_43"**, %"$TyDescrTy_ADTTyp_42"* } %"$TyDescrTy_ADTTyp_Constr_43" = type { %TyDescrString, i32, %_TyDescrTy_Typ** } %Int32 = type { i32 } -%"$ParamDescr_154" = type { %ParamDescrString, %_TyDescrTy_Typ* } +%"$ParamDescr_155" = type { %ParamDescrString, %_TyDescrTy_Typ* } %ParamDescrString = type { i8*, i32 } -%"$TransDescr_155" = type { %ParamDescrString, i32, %"$ParamDescr_154"* } +%"$TransDescr_156" = type { %ParamDescrString, i32, %"$ParamDescr_155"* } %TName_List_Int32 = type { i8, %CName_Cons_Int32*, %CName_Nil_Int32* } %CName_Cons_Int32 = type <{ i8, %Int32, %TName_List_Int32* }> %CName_Nil_Int32 = type <{ i8 }> @@ -78,14 +78,18 @@ target triple = "x86_64-pc-linux-gnu" @"$_gas_charge_accPairUtils_4" = global %Int32 zeroinitializer @_tydescr_table = constant [16 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_40", %_TyDescrTy_Typ* @"$TyDescr_ReplicateContr_38", %_TyDescrTy_Typ* @"$TyDescr_Message_32", %_TyDescrTy_Typ* @"$TyDescr_ADT_List_Int32_44", %_TyDescrTy_Typ* @"$TyDescr_Int32_12"] @_tydescr_table_length = constant i32 16 -@_contract_parameters = constant [0 x %"$ParamDescr_154"] zeroinitializer +@_contract_parameters = constant [0 x %"$ParamDescr_155"] zeroinitializer @_contract_parameters_length = constant i32 0 -@_transition_parameters = constant [0 x %"$TransDescr_155"] zeroinitializer +@_transition_parameters = constant [0 x %"$TransDescr_156"] zeroinitializer @_transition_parameters_length = constant i32 0 -define internal %TName_List_Int32* @"$fundef_8"(%"$$fundef_8_env_60"* %0, %Int32 %1) !dbg !4 { +define internal %TName_List_Int32* @"$fundef_8"(%"$$fundef_8_env_60"* %0, %Int32 %1) !dbg !3 { entry: + %"$a_86" = alloca %Int32, align 8 + store %Int32 %1, %Int32* %"$a_86", align 4 + call void @llvm.dbg.declare(metadata %Int32* %"$a_86", metadata !8, metadata !DIExpression()), !dbg !10 %"$retval_9" = alloca %TName_List_Int32*, align 8 + call void @llvm.dbg.declare(metadata %TName_List_Int32** %"$retval_9", metadata !11, metadata !DIExpression()), !dbg !14 %"$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" @@ -98,6 +102,7 @@ entry: %"$consume_65" = sub i64 %"$gasrem_61", 1 store i64 %"$consume_65", i64* @_gasrem, align 8 %n = alloca %TName_List_Int32*, align 8 + call void @llvm.dbg.declare(metadata %TName_List_Int32** %n, metadata !15, metadata !DIExpression()), !dbg !16 %"$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" @@ -115,7 +120,7 @@ entry: %"$adtgep_72" = getelementptr inbounds %CName_Nil_Int32, %CName_Nil_Int32* %"$adtval_71", i32 0, i32 0 store i8 1, i8* %"$adtgep_72", align 1 %"$adtptr_73" = bitcast %CName_Nil_Int32* %"$adtval_71" to %TName_List_Int32* - store %TName_List_Int32* %"$adtptr_73", %TName_List_Int32** %n, align 8, !dbg !8 + store %TName_List_Int32* %"$adtptr_73", %TName_List_Int32** %n, align 8, !dbg !17 %"$gasrem_74" = load i64, i64* @_gasrem, align 8 %"$gascmp_75" = icmp ugt i64 1, %"$gasrem_74" br i1 %"$gascmp_75", label %"$out_of_gas_76", label %"$have_gas_77" @@ -138,195 +143,217 @@ entry: %"$adtgep_83" = getelementptr inbounds %CName_Cons_Int32, %CName_Cons_Int32* %"$adtval_80", i32 0, i32 2 store %TName_List_Int32* %"$n_79", %TName_List_Int32** %"$adtgep_83", align 8 %"$adtptr_84" = bitcast %CName_Cons_Int32* %"$adtval_80" to %TName_List_Int32* - store %TName_List_Int32* %"$adtptr_84", %TName_List_Int32** %"$retval_9", align 8, !dbg !9 + store %TName_List_Int32* %"$adtptr_84", %TName_List_Int32** %"$retval_9", align 8, !dbg !18 %"$$retval_9_85" = load %TName_List_Int32*, %TName_List_Int32** %"$retval_9", align 8 ret %TName_List_Int32* %"$$retval_9_85" } +; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn +declare void @llvm.dbg.declare(metadata, metadata, metadata) #0 + declare void @_out_of_gas() declare i8* @_salloc(i8*, i64) -define void @_init_libs() !dbg !10 { +define void @_init_libs() !dbg !19 { entry: - %"$gasrem_86" = load i64, i64* @_gasrem, align 8 - %"$gascmp_87" = icmp ugt i64 5, %"$gasrem_86" - br i1 %"$gascmp_87", label %"$out_of_gas_88", label %"$have_gas_89" + %"$gasrem_87" = load i64, i64* @_gasrem, align 8 + %"$gascmp_88" = icmp ugt i64 5, %"$gasrem_87" + br i1 %"$gascmp_88", label %"$out_of_gas_89", label %"$have_gas_90" -"$out_of_gas_88": ; preds = %entry +"$out_of_gas_89": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_89" + br label %"$have_gas_90" -"$have_gas_89": ; preds = %"$out_of_gas_88", %entry - %"$consume_90" = sub i64 %"$gasrem_86", 5 - store i64 %"$consume_90", i64* @_gasrem, align 8 - store %Int32 { i32 5 }, %Int32* @"$_gas_charge_accrec_lib_5", align 4, !dbg !12 - %"$gasrem_91" = load i64, i64* @_gasrem, align 8 - %"$gascmp_92" = icmp ugt i64 8, %"$gasrem_91" - br i1 %"$gascmp_92", label %"$out_of_gas_93", label %"$have_gas_94" +"$have_gas_90": ; preds = %"$out_of_gas_89", %entry + %"$consume_91" = sub i64 %"$gasrem_87", 5 + store i64 %"$consume_91", i64* @_gasrem, align 8 + store %Int32 { i32 5 }, %Int32* @"$_gas_charge_accrec_lib_5", align 4, !dbg !21 + %"$gasrem_92" = load i64, i64* @_gasrem, align 8 + %"$gascmp_93" = icmp ugt i64 8, %"$gasrem_92" + br i1 %"$gascmp_93", label %"$out_of_gas_94", label %"$have_gas_95" -"$out_of_gas_93": ; preds = %"$have_gas_89" +"$out_of_gas_94": ; preds = %"$have_gas_90" call void @_out_of_gas() - br label %"$have_gas_94" + br label %"$have_gas_95" -"$have_gas_94": ; preds = %"$out_of_gas_93", %"$have_gas_89" - %"$consume_95" = sub i64 %"$gasrem_91", 8 - store i64 %"$consume_95", i64* @_gasrem, align 8 - store %Int32 { i32 8 }, %Int32* @"$_gas_charge_accBoolUtils_0", align 4, !dbg !12 - %"$gasrem_96" = load i64, i64* @_gasrem, align 8 - %"$gascmp_97" = icmp ugt i64 196, %"$gasrem_96" - br i1 %"$gascmp_97", label %"$out_of_gas_98", label %"$have_gas_99" +"$have_gas_95": ; preds = %"$out_of_gas_94", %"$have_gas_90" + %"$consume_96" = sub i64 %"$gasrem_92", 8 + store i64 %"$consume_96", i64* @_gasrem, align 8 + store %Int32 { i32 8 }, %Int32* @"$_gas_charge_accBoolUtils_0", align 4, !dbg !21 + %"$gasrem_97" = load i64, i64* @_gasrem, align 8 + %"$gascmp_98" = icmp ugt i64 196, %"$gasrem_97" + br i1 %"$gascmp_98", label %"$out_of_gas_99", label %"$have_gas_100" -"$out_of_gas_98": ; preds = %"$have_gas_94" +"$out_of_gas_99": ; preds = %"$have_gas_95" call void @_out_of_gas() - br label %"$have_gas_99" + br label %"$have_gas_100" -"$have_gas_99": ; preds = %"$out_of_gas_98", %"$have_gas_94" - %"$consume_100" = sub i64 %"$gasrem_96", 196 - store i64 %"$consume_100", i64* @_gasrem, align 8 - store %Int32 { i32 196 }, %Int32* @"$_gas_charge_accIntUtils_1", align 4, !dbg !12 - %"$gasrem_101" = load i64, i64* @_gasrem, align 8 - %"$gascmp_102" = icmp ugt i64 20, %"$gasrem_101" - br i1 %"$gascmp_102", label %"$out_of_gas_103", label %"$have_gas_104" +"$have_gas_100": ; preds = %"$out_of_gas_99", %"$have_gas_95" + %"$consume_101" = sub i64 %"$gasrem_97", 196 + store i64 %"$consume_101", i64* @_gasrem, align 8 + store %Int32 { i32 196 }, %Int32* @"$_gas_charge_accIntUtils_1", align 4, !dbg !21 + %"$gasrem_102" = load i64, i64* @_gasrem, align 8 + %"$gascmp_103" = icmp ugt i64 20, %"$gasrem_102" + br i1 %"$gascmp_103", label %"$out_of_gas_104", label %"$have_gas_105" -"$out_of_gas_103": ; preds = %"$have_gas_99" +"$out_of_gas_104": ; preds = %"$have_gas_100" call void @_out_of_gas() - br label %"$have_gas_104" + br label %"$have_gas_105" -"$have_gas_104": ; preds = %"$out_of_gas_103", %"$have_gas_99" - %"$consume_105" = sub i64 %"$gasrem_101", 20 - store i64 %"$consume_105", i64* @_gasrem, align 8 - store %Int32 { i32 20 }, %Int32* @"$_gas_charge_accListUtils_2", align 4, !dbg !12 - %"$gasrem_106" = load i64, i64* @_gasrem, align 8 - %"$gascmp_107" = icmp ugt i64 12, %"$gasrem_106" - br i1 %"$gascmp_107", label %"$out_of_gas_108", label %"$have_gas_109" +"$have_gas_105": ; preds = %"$out_of_gas_104", %"$have_gas_100" + %"$consume_106" = sub i64 %"$gasrem_102", 20 + store i64 %"$consume_106", i64* @_gasrem, align 8 + store %Int32 { i32 20 }, %Int32* @"$_gas_charge_accListUtils_2", align 4, !dbg !21 + %"$gasrem_107" = load i64, i64* @_gasrem, align 8 + %"$gascmp_108" = icmp ugt i64 12, %"$gasrem_107" + br i1 %"$gascmp_108", label %"$out_of_gas_109", label %"$have_gas_110" -"$out_of_gas_108": ; preds = %"$have_gas_104" +"$out_of_gas_109": ; preds = %"$have_gas_105" call void @_out_of_gas() - br label %"$have_gas_109" + br label %"$have_gas_110" -"$have_gas_109": ; preds = %"$out_of_gas_108", %"$have_gas_104" - %"$consume_110" = sub i64 %"$gasrem_106", 12 - store i64 %"$consume_110", i64* @_gasrem, align 8 - store %Int32 { i32 12 }, %Int32* @"$_gas_charge_accNatUtils_3", align 4, !dbg !12 - %"$gasrem_111" = load i64, i64* @_gasrem, align 8 - %"$gascmp_112" = icmp ugt i64 2, %"$gasrem_111" - br i1 %"$gascmp_112", label %"$out_of_gas_113", label %"$have_gas_114" +"$have_gas_110": ; preds = %"$out_of_gas_109", %"$have_gas_105" + %"$consume_111" = sub i64 %"$gasrem_107", 12 + store i64 %"$consume_111", i64* @_gasrem, align 8 + store %Int32 { i32 12 }, %Int32* @"$_gas_charge_accNatUtils_3", align 4, !dbg !21 + %"$gasrem_112" = load i64, i64* @_gasrem, align 8 + %"$gascmp_113" = icmp ugt i64 2, %"$gasrem_112" + br i1 %"$gascmp_113", label %"$out_of_gas_114", label %"$have_gas_115" -"$out_of_gas_113": ; preds = %"$have_gas_109" +"$out_of_gas_114": ; preds = %"$have_gas_110" call void @_out_of_gas() - br label %"$have_gas_114" + br label %"$have_gas_115" -"$have_gas_114": ; preds = %"$out_of_gas_113", %"$have_gas_109" - %"$consume_115" = sub i64 %"$gasrem_111", 2 - store i64 %"$consume_115", i64* @_gasrem, align 8 - store %Int32 { i32 2 }, %Int32* @"$_gas_charge_accPairUtils_4", align 4, !dbg !12 +"$have_gas_115": ; preds = %"$out_of_gas_114", %"$have_gas_110" + %"$consume_116" = sub i64 %"$gasrem_112", 2 + store i64 %"$consume_116", i64* @_gasrem, align 8 + store %Int32 { i32 2 }, %Int32* @"$_gas_charge_accPairUtils_4", align 4, !dbg !21 ret void } -define internal %TName_List_Int32* @_scilla_expr_fun(i8* %0) !dbg !13 { +define internal %TName_List_Int32* @_scilla_expr_fun(i8* %0) !dbg !22 { entry: %"$expr_7" = alloca %TName_List_Int32*, 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" + call void @llvm.dbg.declare(metadata %TName_List_Int32** %"$expr_7", metadata !23, metadata !DIExpression()), !dbg !24 + %"$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_118": ; preds = %entry +"$out_of_gas_119": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_119" + br label %"$have_gas_120" -"$have_gas_119": ; preds = %"$out_of_gas_118", %entry - %"$consume_120" = sub i64 %"$gasrem_116", 1 - store i64 %"$consume_120", i64* @_gasrem, align 8 +"$have_gas_120": ; preds = %"$out_of_gas_119", %entry + %"$consume_121" = sub i64 %"$gasrem_117", 1 + store i64 %"$consume_121", i64* @_gasrem, align 8 %f = alloca { %TName_List_Int32* (i8*, %Int32)*, 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" + %"$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_123": ; preds = %"$have_gas_119" +"$out_of_gas_124": ; preds = %"$have_gas_120" call void @_out_of_gas() - br label %"$have_gas_124" + br label %"$have_gas_125" -"$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 { %TName_List_Int32* (i8*, %Int32)*, i8* } { %TName_List_Int32* (i8*, %Int32)* bitcast (%TName_List_Int32* (%"$$fundef_8_env_60"*, %Int32)* @"$fundef_8" to %TName_List_Int32* (i8*, %Int32)*), i8* null }, { %TName_List_Int32* (i8*, %Int32)*, i8* }* %f, align 8, !dbg !14 - %"$gasrem_129" = load i64, i64* @_gasrem, align 8 - %"$gascmp_130" = icmp ugt i64 1, %"$gasrem_129" - br i1 %"$gascmp_130", label %"$out_of_gas_131", label %"$have_gas_132" +"$have_gas_125": ; preds = %"$out_of_gas_124", %"$have_gas_120" + %"$consume_126" = sub i64 %"$gasrem_122", 1 + store i64 %"$consume_126", i64* @_gasrem, align 8 + store { %TName_List_Int32* (i8*, %Int32)*, i8* } { %TName_List_Int32* (i8*, %Int32)* bitcast (%TName_List_Int32* (%"$$fundef_8_env_60"*, %Int32)* @"$fundef_8" to %TName_List_Int32* (i8*, %Int32)*), i8* null }, { %TName_List_Int32* (i8*, %Int32)*, i8* }* %f, align 8, !dbg !25 + %"$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_131": ; preds = %"$have_gas_124" +"$out_of_gas_132": ; preds = %"$have_gas_125" call void @_out_of_gas() - br label %"$have_gas_132" + br label %"$have_gas_133" -"$have_gas_132": ; preds = %"$out_of_gas_131", %"$have_gas_124" - %"$consume_133" = sub i64 %"$gasrem_129", 1 - store i64 %"$consume_133", i64* @_gasrem, align 8 +"$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 %i = alloca %Int32, align 8 - %"$gasrem_134" = load i64, i64* @_gasrem, align 8 - %"$gascmp_135" = icmp ugt i64 1, %"$gasrem_134" - br i1 %"$gascmp_135", label %"$out_of_gas_136", label %"$have_gas_137" + call void @llvm.dbg.declare(metadata %Int32* %i, metadata !26, metadata !DIExpression()), !dbg !27 + %"$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_136": ; preds = %"$have_gas_132" +"$out_of_gas_137": ; preds = %"$have_gas_133" call void @_out_of_gas() - br label %"$have_gas_137" + br label %"$have_gas_138" -"$have_gas_137": ; preds = %"$out_of_gas_136", %"$have_gas_132" - %"$consume_138" = sub i64 %"$gasrem_134", 1 - store i64 %"$consume_138", i64* @_gasrem, align 8 - store %Int32 zeroinitializer, %Int32* %i, align 4, !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" +"$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 zeroinitializer, %Int32* %i, align 4, !dbg !28 + %"$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_141": ; preds = %"$have_gas_137" +"$out_of_gas_142": ; preds = %"$have_gas_138" call void @_out_of_gas() - br label %"$have_gas_142" + br label %"$have_gas_143" -"$have_gas_142": ; preds = %"$out_of_gas_141", %"$have_gas_137" - %"$consume_143" = sub i64 %"$gasrem_139", 1 - store i64 %"$consume_143", i64* @_gasrem, align 8 +"$have_gas_143": ; preds = %"$out_of_gas_142", %"$have_gas_138" + %"$consume_144" = sub i64 %"$gasrem_140", 1 + store i64 %"$consume_144", i64* @_gasrem, align 8 %"$f_6" = alloca %TName_List_Int32*, align 8 - %"$f_144" = load { %TName_List_Int32* (i8*, %Int32)*, i8* }, { %TName_List_Int32* (i8*, %Int32)*, i8* }* %f, align 8 - %"$f_fptr_145" = extractvalue { %TName_List_Int32* (i8*, %Int32)*, i8* } %"$f_144", 0 - %"$f_envptr_146" = extractvalue { %TName_List_Int32* (i8*, %Int32)*, i8* } %"$f_144", 1 - %"$i_147" = load %Int32, %Int32* %i, align 4 - %"$f_call_148" = call %TName_List_Int32* %"$f_fptr_145"(i8* %"$f_envptr_146", %Int32 %"$i_147"), !dbg !16 - store %TName_List_Int32* %"$f_call_148", %TName_List_Int32** %"$f_6", align 8, !dbg !16 - %"$$f_6_149" = load %TName_List_Int32*, %TName_List_Int32** %"$f_6", align 8 - store %TName_List_Int32* %"$$f_6_149", %TName_List_Int32** %"$expr_7", align 8, !dbg !16 - %"$$expr_7_150" = load %TName_List_Int32*, %TName_List_Int32** %"$expr_7", align 8 - ret %TName_List_Int32* %"$$expr_7_150" + call void @llvm.dbg.declare(metadata %TName_List_Int32** %"$f_6", metadata !29, metadata !DIExpression()), !dbg !30 + %"$f_145" = load { %TName_List_Int32* (i8*, %Int32)*, i8* }, { %TName_List_Int32* (i8*, %Int32)*, i8* }* %f, align 8 + %"$f_fptr_146" = extractvalue { %TName_List_Int32* (i8*, %Int32)*, i8* } %"$f_145", 0 + %"$f_envptr_147" = extractvalue { %TName_List_Int32* (i8*, %Int32)*, i8* } %"$f_145", 1 + %"$i_148" = load %Int32, %Int32* %i, align 4 + %"$f_call_149" = call %TName_List_Int32* %"$f_fptr_146"(i8* %"$f_envptr_147", %Int32 %"$i_148"), !dbg !30 + store %TName_List_Int32* %"$f_call_149", %TName_List_Int32** %"$f_6", align 8, !dbg !30 + %"$$f_6_150" = load %TName_List_Int32*, %TName_List_Int32** %"$f_6", align 8 + store %TName_List_Int32* %"$$f_6_150", %TName_List_Int32** %"$expr_7", align 8, !dbg !30 + %"$$expr_7_151" = load %TName_List_Int32*, %TName_List_Int32** %"$expr_7", align 8 + ret %TName_List_Int32* %"$$expr_7_151" } declare void @_print_scilla_val(i8*, %_TyDescrTy_Typ*, i8*) define void @scilla_main() { entry: - %"$exprval_151" = call %TName_List_Int32* @_scilla_expr_fun(i8* null) - %"$memvoidcast_152" = bitcast %TName_List_Int32* %"$exprval_151" to i8* - %"$execptr_load_153" = load i8*, i8** @_execptr, align 8 - call void @_print_scilla_val(i8* %"$execptr_load_153", %_TyDescrTy_Typ* @"$TyDescr_ADT_List_Int32_44", i8* %"$memvoidcast_152") + %"$exprval_152" = call %TName_List_Int32* @_scilla_expr_fun(i8* null) + %"$memvoidcast_153" = bitcast %TName_List_Int32* %"$exprval_152" to i8* + %"$execptr_load_154" = load i8*, i8** @_execptr, align 8 + call void @_print_scilla_val(i8* %"$execptr_load_154", %_TyDescrTy_Typ* @"$TyDescr_ADT_List_Int32_44", i8* %"$memvoidcast_153") ret void } +attributes #0 = { nocallback nofree nosync nounwind readnone speculatable willreturn } + !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) +!1 = distinct !DICompileUnit(language: DW_LANG_C89, file: !2, producer: "Scilla Compiler", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false) !2 = !DIFile(filename: "adt-fun.scilexp", directory: "codegen/expr") -!3 = !{} -!4 = distinct !DISubprogram(name: "$fundef_8", linkageName: "$fundef_8", scope: !2, file: !2, line: 3, type: !5, scopeLine: 3, 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: 3, column: 13, scope: !4) -!9 = !DILocation(line: 4, column: 5, scope: !4) -!10 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !11, file: !11, type: !5, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!11 = !DIFile(filename: ".", directory: ".") -!12 = !DILocation(line: 0, scope: !10) -!13 = 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) -!14 = !DILocation(line: 3, column: 5, scope: !13) -!15 = !DILocation(line: 6, column: 9, scope: !13) -!16 = !DILocation(line: 7, column: 1, scope: !13) +!3 = distinct !DISubprogram(name: "$fundef_8", linkageName: "$fundef_8", scope: !2, file: !2, line: 3, type: !4, scopeLine: 3, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!4 = !DISubroutineType(types: !5) +!5 = !{!6} +!6 = !DIBasicType(tag: DW_TAG_unspecified_type, name: "void") +!7 = !{} +!8 = !DILocalVariable(name: "a", scope: !3, file: !2, line: 2, type: !9) +!9 = !DIBasicType(name: "Int32", size: 4) +!10 = !DILocation(line: 2, column: 8, scope: !3) +!11 = !DILocalVariable(name: "$retval_9", scope: !3, file: !2, line: 3, type: !12) +!12 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "List (Int32)", baseType: !13, size: 8, align: 8, dwarfAddressSpace: 0) +!13 = !DIBasicType(name: "List (Int32)", size: 8) +!14 = !DILocation(line: 3, column: 5, scope: !3) +!15 = !DILocalVariable(name: "n", scope: !3, file: !2, line: 3, type: !12) +!16 = !DILocation(line: 3, column: 9, scope: !3) +!17 = !DILocation(line: 3, column: 13, scope: !3) +!18 = !DILocation(line: 4, column: 5, scope: !3) +!19 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !20, file: !20, type: !4, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!20 = !DIFile(filename: ".", directory: ".") +!21 = !DILocation(line: 0, scope: !19) +!22 = distinct !DISubprogram(name: "_scilla_expr_fun", linkageName: "_scilla_expr_fun", scope: !2, file: !2, line: 2, type: !4, scopeLine: 2, spFlags: DISPFlagDefinition, unit: !1, retainedNodes: !7) +!23 = !DILocalVariable(name: "$expr_7", scope: !22, file: !2, line: 2, type: !12) +!24 = !DILocation(line: 2, column: 3, scope: !22) +!25 = !DILocation(line: 3, column: 5, scope: !22) +!26 = !DILocalVariable(name: "i", scope: !22, file: !2, line: 6, type: !9) +!27 = !DILocation(line: 6, column: 5, scope: !22) +!28 = !DILocation(line: 6, column: 9, scope: !22) +!29 = !DILocalVariable(name: "$f_6", scope: !22, file: !2, line: 7, type: !12) +!30 = !DILocation(line: 7, column: 1, scope: !22) diff --git a/testsuite/expr/adt-fun.ll b/testsuite/expr/adt-fun.ll index d6f2d1ca..7612f2f8 100644 --- a/testsuite/expr/adt-fun.ll +++ b/testsuite/expr/adt-fun.ll @@ -8,7 +8,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-pc-linux-gnu" +target triple = "x86_64-unknown-linux-gnu" %"$TyDescrTy_PrimTyp_10" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/testsuite/expr/builtin-ecdsa_recover.dbg.ll b/testsuite/expr/builtin-ecdsa_recover.dbg.ll index 6a6d44e7..87c85ce9 100644 --- a/testsuite/expr/builtin-ecdsa_recover.dbg.ll +++ b/testsuite/expr/builtin-ecdsa_recover.dbg.ll @@ -43,7 +43,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-pc-linux-gnu" +target triple = "x86_64-unknown-linux-gnu" %"$TyDescrTy_PrimTyp_21" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } @@ -52,9 +52,9 @@ target triple = "x86_64-pc-linux-gnu" %"$TyDescrTy_ADTTyp_Specl_62" = type { %_TyDescrTy_Typ**, %"$TyDescrTy_ADTTyp_Constr_64"**, %"$TyDescrTy_ADTTyp_63"* } %"$TyDescrTy_ADTTyp_Constr_64" = type { %TyDescrString, i32, %_TyDescrTy_Typ** } %Int32 = type { i32 } -%"$ParamDescr_607" = type { %ParamDescrString, %_TyDescrTy_Typ* } +%"$ParamDescr_611" = type { %ParamDescrString, %_TyDescrTy_Typ* } %ParamDescrString = type { i8*, i32 } -%"$TransDescr_608" = type { %ParamDescrString, i32, %"$ParamDescr_607"* } +%"$TransDescr_612" = type { %ParamDescrString, i32, %"$ParamDescr_611"* } %"$$fundef_19_env_94" = type {} %Bystr = type { i8*, i32 } %"$$fundef_17_env_95" = type { %Bystr, [64 x i8] } @@ -144,633 +144,662 @@ target triple = "x86_64-pc-linux-gnu" @"$_gas_charge_accPairUtils_4" = global %Int32 zeroinitializer @_tydescr_table = constant [22 x %_TyDescrTy_Typ*] [%_TyDescrTy_Typ* @"$TyDescr_Event_45", %_TyDescrTy_Typ* @"$TyDescr_Int64_27", %_TyDescrTy_Typ* @"$TyDescr_ADT_Option_ByStr20_66", %_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_65", %_TyDescrTy_Typ* @"$TyDescr_Bystr20_61", %_TyDescrTy_Typ* @"$TyDescr_Uint256_37", %_TyDescrTy_Typ* @"$TyDescr_Uint32_25", %_TyDescrTy_Typ* @"$TyDescr_Bystr64_59", %_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_Bystr65_57", %_TyDescrTy_Typ* @"$TyDescr_Bystr32_55", %_TyDescrTy_Typ* @"$TyDescr_Int256_35", %_TyDescrTy_Typ* @"$TyDescr_Int128_31", %_TyDescrTy_Typ* @"$TyDescr_Bystr_51", %_TyDescrTy_Typ* @"$TyDescr_ReplicateContr_49", %_TyDescrTy_Typ* @"$TyDescr_Message_43", %_TyDescrTy_Typ* @"$TyDescr_Bystr1591_53", %_TyDescrTy_Typ* @"$TyDescr_Int32_23"] @_tydescr_table_length = constant i32 22 -@_contract_parameters = constant [0 x %"$ParamDescr_607"] zeroinitializer +@_contract_parameters = constant [0 x %"$ParamDescr_611"] zeroinitializer @_contract_parameters_length = constant i32 0 -@_transition_parameters = constant [0 x %"$TransDescr_608"] zeroinitializer +@_transition_parameters = constant [0 x %"$TransDescr_612"] zeroinitializer @_transition_parameters_length = constant i32 0 -define internal %Bystr @"$fundef_19"(%"$$fundef_19_env_94"* %0, %Bystr %1) !dbg !4 { +define internal %Bystr @"$fundef_19"(%"$$fundef_19_env_94"* %0, %Bystr %1) !dbg !3 { entry: + %"$header_437" = alloca %Bystr, align 8 + store %Bystr %1, %Bystr* %"$header_437", align 8 + call void @llvm.dbg.declare(metadata %Bystr* %"$header_437", metadata !8, metadata !DIExpression()), !dbg !10 %"$retval_20" = alloca %Bystr, 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" + call void @llvm.dbg.declare(metadata %Bystr* %"$retval_20", metadata !11, metadata !DIExpression()), !dbg !12 + %"$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_373": ; preds = %entry +"$out_of_gas_376": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_374" + br label %"$have_gas_377" -"$have_gas_374": ; preds = %"$out_of_gas_373", %entry - %"$consume_375" = sub i64 %"$gasrem_371", 1 - store i64 %"$consume_375", i64* @_gasrem, align 8 +"$have_gas_377": ; preds = %"$out_of_gas_376", %entry + %"$consume_378" = sub i64 %"$gasrem_374", 1 + store i64 %"$consume_378", i64* @_gasrem, align 8 %h1 = alloca [32 x i8], align 1 - %"$_literal_cost_header_376" = alloca %Bystr, align 8 - store %Bystr %1, %Bystr* %"$_literal_cost_header_376", align 8 - %"$$_literal_cost_header_376_377" = bitcast %Bystr* %"$_literal_cost_header_376" to i8* - %"$_literal_cost_call_378" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Bystr_51", i8* %"$$_literal_cost_header_376_377") - %"$gasadd_379" = add i64 %"$_literal_cost_call_378", 0 - %"$gasdivceil_380" = urem i64 %"$gasadd_379", 960 - %"$gasdivceil_381" = udiv i64 %"$gasadd_379", 960 - %"$gasdivceil_382" = icmp eq i64 %"$gasdivceil_380", 0 - %"$gasdivceil_383" = add i64 %"$gasdivceil_381", 1 - %"$gasdivceil_384" = select i1 %"$gasdivceil_382", i64 %"$gasdivceil_381", i64 %"$gasdivceil_383" - %"$gasrem_385" = load i64, i64* @_gasrem, align 8 - %"$gascmp_386" = icmp ugt i64 %"$gasdivceil_384", %"$gasrem_385" - br i1 %"$gascmp_386", label %"$out_of_gas_387", label %"$have_gas_388" - -"$out_of_gas_387": ; preds = %"$have_gas_374" + call void @llvm.dbg.declare(metadata [32 x i8]* %h1, metadata !13, metadata !DIExpression()), !dbg !15 + %"$_literal_cost_header_379" = alloca %Bystr, align 8 + store %Bystr %1, %Bystr* %"$_literal_cost_header_379", align 8 + %"$$_literal_cost_header_379_380" = bitcast %Bystr* %"$_literal_cost_header_379" to i8* + %"$_literal_cost_call_381" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Bystr_51", i8* %"$$_literal_cost_header_379_380") + %"$gasadd_382" = add i64 %"$_literal_cost_call_381", 0 + %"$gasdivceil_383" = urem i64 %"$gasadd_382", 960 + %"$gasdivceil_384" = udiv i64 %"$gasadd_382", 960 + %"$gasdivceil_385" = icmp eq i64 %"$gasdivceil_383", 0 + %"$gasdivceil_386" = add i64 %"$gasdivceil_384", 1 + %"$gasdivceil_387" = select i1 %"$gasdivceil_385", i64 %"$gasdivceil_384", i64 %"$gasdivceil_386" + %"$gasrem_388" = load i64, i64* @_gasrem, align 8 + %"$gascmp_389" = icmp ugt i64 %"$gasdivceil_387", %"$gasrem_388" + br i1 %"$gascmp_389", label %"$out_of_gas_390", label %"$have_gas_391" + +"$out_of_gas_390": ; preds = %"$have_gas_377" call void @_out_of_gas() - br label %"$have_gas_388" - -"$have_gas_388": ; preds = %"$out_of_gas_387", %"$have_gas_374" - %"$consume_389" = sub i64 %"$gasrem_385", %"$gasdivceil_384" - store i64 %"$consume_389", i64* @_gasrem, align 8 - %"$execptr_load_390" = load i8*, i8** @_execptr, align 8 - %"$sha256hash_header_391" = alloca %Bystr, align 8 - store %Bystr %1, %Bystr* %"$sha256hash_header_391", align 8 - %"$$sha256hash_header_391_392" = bitcast %Bystr* %"$sha256hash_header_391" to i8* - %"$sha256hash_call_393" = call [32 x i8]* @_sha256hash(i8* %"$execptr_load_390", %_TyDescrTy_Typ* @"$TyDescr_Bystr_51", i8* %"$$sha256hash_header_391_392"), !dbg !8 - %"$sha256hash_395" = load [32 x i8], [32 x i8]* %"$sha256hash_call_393", align 1 - store [32 x i8] %"$sha256hash_395", [32 x i8]* %h1, align 1, !dbg !8 - %"$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 = %"$have_gas_388" + br label %"$have_gas_391" + +"$have_gas_391": ; preds = %"$out_of_gas_390", %"$have_gas_377" + %"$consume_392" = sub i64 %"$gasrem_388", %"$gasdivceil_387" + store i64 %"$consume_392", i64* @_gasrem, align 8 + %"$execptr_load_393" = load i8*, i8** @_execptr, align 8 + %"$sha256hash_header_394" = alloca %Bystr, align 8 + store %Bystr %1, %Bystr* %"$sha256hash_header_394", align 8 + %"$$sha256hash_header_394_395" = bitcast %Bystr* %"$sha256hash_header_394" to i8* + %"$sha256hash_call_396" = call [32 x i8]* @_sha256hash(i8* %"$execptr_load_393", %_TyDescrTy_Typ* @"$TyDescr_Bystr_51", i8* %"$$sha256hash_header_394_395"), !dbg !16 + %"$sha256hash_398" = load [32 x i8], [32 x i8]* %"$sha256hash_call_396", align 1 + store [32 x i8] %"$sha256hash_398", [32 x i8]* %h1, align 1, !dbg !16 + %"$gasrem_399" = load i64, i64* @_gasrem, align 8 + %"$gascmp_400" = icmp ugt i64 1, %"$gasrem_399" + br i1 %"$gascmp_400", label %"$out_of_gas_401", label %"$have_gas_402" + +"$out_of_gas_401": ; preds = %"$have_gas_391" call void @_out_of_gas() - br label %"$have_gas_399" + br label %"$have_gas_402" -"$have_gas_399": ; preds = %"$out_of_gas_398", %"$have_gas_388" - %"$consume_400" = sub i64 %"$gasrem_396", 1 - store i64 %"$consume_400", i64* @_gasrem, align 8 +"$have_gas_402": ; preds = %"$out_of_gas_401", %"$have_gas_391" + %"$consume_403" = sub i64 %"$gasrem_399", 1 + store i64 %"$consume_403", i64* @_gasrem, align 8 %h2 = alloca [32 x i8], align 1 - %"$_literal_cost_h1_401" = alloca [32 x i8], align 1 - %"$h1_402" = load [32 x i8], [32 x i8]* %h1, align 1 - store [32 x i8] %"$h1_402", [32 x i8]* %"$_literal_cost_h1_401", align 1 - %"$$_literal_cost_h1_401_403" = bitcast [32 x i8]* %"$_literal_cost_h1_401" to i8* - %"$_literal_cost_call_404" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Bystr32_55", i8* %"$$_literal_cost_h1_401_403") - %"$gasadd_405" = add i64 %"$_literal_cost_call_404", 0 - %"$gasdivceil_406" = urem i64 %"$gasadd_405", 960 - %"$gasdivceil_407" = udiv i64 %"$gasadd_405", 960 - %"$gasdivceil_408" = icmp eq i64 %"$gasdivceil_406", 0 - %"$gasdivceil_409" = add i64 %"$gasdivceil_407", 1 - %"$gasdivceil_410" = select i1 %"$gasdivceil_408", i64 %"$gasdivceil_407", i64 %"$gasdivceil_409" - %"$gasrem_411" = load i64, i64* @_gasrem, align 8 - %"$gascmp_412" = icmp ugt i64 %"$gasdivceil_410", %"$gasrem_411" - br i1 %"$gascmp_412", label %"$out_of_gas_413", label %"$have_gas_414" - -"$out_of_gas_413": ; preds = %"$have_gas_399" + call void @llvm.dbg.declare(metadata [32 x i8]* %h2, metadata !17, metadata !DIExpression()), !dbg !18 + %"$_literal_cost_h1_404" = alloca [32 x i8], align 1 + %"$h1_405" = load [32 x i8], [32 x i8]* %h1, align 1 + store [32 x i8] %"$h1_405", [32 x i8]* %"$_literal_cost_h1_404", align 1 + %"$$_literal_cost_h1_404_406" = bitcast [32 x i8]* %"$_literal_cost_h1_404" to i8* + %"$_literal_cost_call_407" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Bystr32_55", i8* %"$$_literal_cost_h1_404_406") + %"$gasadd_408" = add i64 %"$_literal_cost_call_407", 0 + %"$gasdivceil_409" = urem i64 %"$gasadd_408", 960 + %"$gasdivceil_410" = udiv i64 %"$gasadd_408", 960 + %"$gasdivceil_411" = icmp eq i64 %"$gasdivceil_409", 0 + %"$gasdivceil_412" = add i64 %"$gasdivceil_410", 1 + %"$gasdivceil_413" = select i1 %"$gasdivceil_411", i64 %"$gasdivceil_410", i64 %"$gasdivceil_412" + %"$gasrem_414" = load i64, i64* @_gasrem, align 8 + %"$gascmp_415" = icmp ugt i64 %"$gasdivceil_413", %"$gasrem_414" + br i1 %"$gascmp_415", label %"$out_of_gas_416", label %"$have_gas_417" + +"$out_of_gas_416": ; preds = %"$have_gas_402" call void @_out_of_gas() - br label %"$have_gas_414" - -"$have_gas_414": ; preds = %"$out_of_gas_413", %"$have_gas_399" - %"$consume_415" = sub i64 %"$gasrem_411", %"$gasdivceil_410" - store i64 %"$consume_415", i64* @_gasrem, align 8 - %"$execptr_load_416" = load i8*, i8** @_execptr, align 8 - %"$sha256hash_h1_417" = alloca [32 x i8], align 1 - %"$h1_418" = load [32 x i8], [32 x i8]* %h1, align 1 - store [32 x i8] %"$h1_418", [32 x i8]* %"$sha256hash_h1_417", align 1 - %"$$sha256hash_h1_417_419" = bitcast [32 x i8]* %"$sha256hash_h1_417" to i8* - %"$sha256hash_call_420" = call [32 x i8]* @_sha256hash(i8* %"$execptr_load_416", %_TyDescrTy_Typ* @"$TyDescr_Bystr32_55", i8* %"$$sha256hash_h1_417_419"), !dbg !9 - %"$sha256hash_422" = load [32 x i8], [32 x i8]* %"$sha256hash_call_420", align 1 - store [32 x i8] %"$sha256hash_422", [32 x i8]* %h2, align 1, !dbg !9 - %"$gasrem_423" = load i64, i64* @_gasrem, align 8 - %"$gascmp_424" = icmp ugt i64 32, %"$gasrem_423" - br i1 %"$gascmp_424", label %"$out_of_gas_425", label %"$have_gas_426" - -"$out_of_gas_425": ; preds = %"$have_gas_414" + br label %"$have_gas_417" + +"$have_gas_417": ; preds = %"$out_of_gas_416", %"$have_gas_402" + %"$consume_418" = sub i64 %"$gasrem_414", %"$gasdivceil_413" + store i64 %"$consume_418", i64* @_gasrem, align 8 + %"$execptr_load_419" = load i8*, i8** @_execptr, align 8 + %"$sha256hash_h1_420" = alloca [32 x i8], align 1 + %"$h1_421" = load [32 x i8], [32 x i8]* %h1, align 1 + store [32 x i8] %"$h1_421", [32 x i8]* %"$sha256hash_h1_420", align 1 + %"$$sha256hash_h1_420_422" = bitcast [32 x i8]* %"$sha256hash_h1_420" to i8* + %"$sha256hash_call_423" = call [32 x i8]* @_sha256hash(i8* %"$execptr_load_419", %_TyDescrTy_Typ* @"$TyDescr_Bystr32_55", i8* %"$$sha256hash_h1_420_422"), !dbg !19 + %"$sha256hash_425" = load [32 x i8], [32 x i8]* %"$sha256hash_call_423", align 1 + store [32 x i8] %"$sha256hash_425", [32 x i8]* %h2, align 1, !dbg !19 + %"$gasrem_426" = load i64, i64* @_gasrem, align 8 + %"$gascmp_427" = icmp ugt i64 32, %"$gasrem_426" + br i1 %"$gascmp_427", label %"$out_of_gas_428", label %"$have_gas_429" + +"$out_of_gas_428": ; preds = %"$have_gas_417" call void @_out_of_gas() - br label %"$have_gas_426" - -"$have_gas_426": ; preds = %"$out_of_gas_425", %"$have_gas_414" - %"$consume_427" = sub i64 %"$gasrem_423", 32 - store i64 %"$consume_427", i64* @_gasrem, align 8 - %"$execptr_load_428" = load i8*, i8** @_execptr, align 8 - %"$to_bystr_h2_429" = alloca [32 x i8], align 1 - %"$h2_430" = load [32 x i8], [32 x i8]* %h2, align 1 - store [32 x i8] %"$h2_430", [32 x i8]* %"$to_bystr_h2_429", align 1 - %"$$to_bystr_h2_429_431" = bitcast [32 x i8]* %"$to_bystr_h2_429" to i8* - %"$to_bystr_call_432" = call %Bystr @_to_bystr(i8* %"$execptr_load_428", i32 32, i8* %"$$to_bystr_h2_429_431"), !dbg !10 - store %Bystr %"$to_bystr_call_432", %Bystr* %"$retval_20", align 8, !dbg !10 - %"$$retval_20_433" = load %Bystr, %Bystr* %"$retval_20", align 8 - ret %Bystr %"$$retval_20_433" + br label %"$have_gas_429" + +"$have_gas_429": ; preds = %"$out_of_gas_428", %"$have_gas_417" + %"$consume_430" = sub i64 %"$gasrem_426", 32 + store i64 %"$consume_430", i64* @_gasrem, align 8 + %"$execptr_load_431" = load i8*, i8** @_execptr, align 8 + %"$to_bystr_h2_432" = alloca [32 x i8], align 1 + %"$h2_433" = load [32 x i8], [32 x i8]* %h2, align 1 + store [32 x i8] %"$h2_433", [32 x i8]* %"$to_bystr_h2_432", align 1 + %"$$to_bystr_h2_432_434" = bitcast [32 x i8]* %"$to_bystr_h2_432" to i8* + %"$to_bystr_call_435" = call %Bystr @_to_bystr(i8* %"$execptr_load_431", i32 32, i8* %"$$to_bystr_h2_432_434"), !dbg !20 + store %Bystr %"$to_bystr_call_435", %Bystr* %"$retval_20", align 8, !dbg !20 + %"$$retval_20_436" = load %Bystr, %Bystr* %"$retval_20", align 8 + ret %Bystr %"$$retval_20_436" } -define internal void @"$fundef_17"(%"$$fundef_17_env_95"* %0, [20 x i8]* %1, %Uint32 %2) !dbg !11 { +define internal void @"$fundef_17"(%"$$fundef_17_env_95"* %0, [20 x i8]* %1, %Uint32 %2) !dbg !21 { entry: - %"$$fundef_17_env_msg_124" = getelementptr inbounds %"$$fundef_17_env_95", %"$$fundef_17_env_95"* %0, i32 0, i32 0 - %"$msg_envload_125" = load %Bystr, %Bystr* %"$$fundef_17_env_msg_124", align 8 + %"$recid_373" = alloca %Uint32, align 8 + store %Uint32 %2, %Uint32* %"$recid_373", align 4 + call void @llvm.dbg.declare(metadata %Uint32* %"$recid_373", metadata !22, metadata !DIExpression()), !dbg !24 + %"$$fundef_17_env_msg_126" = getelementptr inbounds %"$$fundef_17_env_95", %"$$fundef_17_env_95"* %0, i32 0, i32 0 + %"$msg_envload_127" = load %Bystr, %Bystr* %"$$fundef_17_env_msg_126", align 8 %msg = alloca %Bystr, align 8 - store %Bystr %"$msg_envload_125", %Bystr* %msg, align 8 - %"$$fundef_17_env_sig_126" = getelementptr inbounds %"$$fundef_17_env_95", %"$$fundef_17_env_95"* %0, i32 0, i32 1 - %"$sig_envload_127" = load [64 x i8], [64 x i8]* %"$$fundef_17_env_sig_126", align 1 + store %Bystr %"$msg_envload_127", %Bystr* %msg, align 8 + %"$$fundef_17_env_sig_128" = getelementptr inbounds %"$$fundef_17_env_95", %"$$fundef_17_env_95"* %0, i32 0, i32 1 + %"$sig_envload_129" = load [64 x i8], [64 x i8]* %"$$fundef_17_env_sig_128", align 1 %sig = alloca [64 x i8], align 1 - store [64 x i8] %"$sig_envload_127", [64 x i8]* %sig, align 1 + store [64 x i8] %"$sig_envload_129", [64 x i8]* %sig, align 1 %"$retval_18" = alloca [20 x i8], align 1 - %"$gasrem_128" = load i64, i64* @_gasrem, align 8 - %"$gascmp_129" = icmp ugt i64 1, %"$gasrem_128" - br i1 %"$gascmp_129", label %"$out_of_gas_130", label %"$have_gas_131" + call void @llvm.dbg.declare(metadata [20 x i8]* %"$retval_18", metadata !25, metadata !DIExpression()), !dbg !27 + %"$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_130": ; preds = %entry +"$out_of_gas_132": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_131" + br label %"$have_gas_133" -"$have_gas_131": ; preds = %"$out_of_gas_130", %entry - %"$consume_132" = sub i64 %"$gasrem_128", 1 - store i64 %"$consume_132", i64* @_gasrem, align 8 +"$have_gas_133": ; preds = %"$out_of_gas_132", %entry + %"$consume_134" = sub i64 %"$gasrem_130", 1 + store i64 %"$consume_134", i64* @_gasrem, align 8 %pk = alloca [65 x i8], align 1 - %"$_literal_cost_msg_133" = alloca %Bystr, align 8 - %"$msg_134" = load %Bystr, %Bystr* %msg, align 8 - store %Bystr %"$msg_134", %Bystr* %"$_literal_cost_msg_133", align 8 - %"$$_literal_cost_msg_133_135" = bitcast %Bystr* %"$_literal_cost_msg_133" to i8* - %"$_literal_cost_call_136" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Bystr_51", i8* %"$$_literal_cost_msg_133_135") - %"$gasadd_137" = add i64 %"$_literal_cost_call_136", 0 - %"$gasdivceil_138" = urem i64 %"$gasadd_137", 960 - %"$gasdivceil_139" = udiv i64 %"$gasadd_137", 960 - %"$gasdivceil_140" = icmp eq i64 %"$gasdivceil_138", 0 - %"$gasdivceil_141" = add i64 %"$gasdivceil_139", 1 - %"$gasdivceil_142" = select i1 %"$gasdivceil_140", i64 %"$gasdivceil_139", i64 %"$gasdivceil_141" - %"$gasrem_143" = load i64, i64* @_gasrem, align 8 - %"$gascmp_144" = icmp ugt i64 %"$gasdivceil_142", %"$gasrem_143" - br i1 %"$gascmp_144", label %"$out_of_gas_145", label %"$have_gas_146" - -"$out_of_gas_145": ; preds = %"$have_gas_131" + call void @llvm.dbg.declare(metadata [65 x i8]* %pk, metadata !28, metadata !DIExpression()), !dbg !30 + %"$_literal_cost_msg_135" = alloca %Bystr, align 8 + %"$msg_136" = load %Bystr, %Bystr* %msg, align 8 + store %Bystr %"$msg_136", %Bystr* %"$_literal_cost_msg_135", align 8 + %"$$_literal_cost_msg_135_137" = bitcast %Bystr* %"$_literal_cost_msg_135" to i8* + %"$_literal_cost_call_138" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Bystr_51", i8* %"$$_literal_cost_msg_135_137") + %"$gasadd_139" = add i64 %"$_literal_cost_call_138", 0 + %"$gasdivceil_140" = urem i64 %"$gasadd_139", 960 + %"$gasdivceil_141" = udiv i64 %"$gasadd_139", 960 + %"$gasdivceil_142" = icmp eq i64 %"$gasdivceil_140", 0 + %"$gasdivceil_143" = add i64 %"$gasdivceil_141", 1 + %"$gasdivceil_144" = select i1 %"$gasdivceil_142", i64 %"$gasdivceil_141", i64 %"$gasdivceil_143" + %"$gasrem_145" = load i64, i64* @_gasrem, align 8 + %"$gascmp_146" = icmp ugt i64 %"$gasdivceil_144", %"$gasrem_145" + br i1 %"$gascmp_146", label %"$out_of_gas_147", label %"$have_gas_148" + +"$out_of_gas_147": ; preds = %"$have_gas_133" call void @_out_of_gas() - br label %"$have_gas_146" - -"$have_gas_146": ; preds = %"$out_of_gas_145", %"$have_gas_131" - %"$consume_147" = sub i64 %"$gasrem_143", %"$gasdivceil_142" - store i64 %"$consume_147", i64* @_gasrem, align 8 - %"$execptr_load_148" = load i8*, i8** @_execptr, align 8 - %"$msg_149" = load %Bystr, %Bystr* %msg, align 8 - %"$ecdsa_recover_pk_sig_150" = alloca [64 x i8], align 1 - %"$sig_151" = load [64 x i8], [64 x i8]* %sig, align 1 - store [64 x i8] %"$sig_151", [64 x i8]* %"$ecdsa_recover_pk_sig_150", align 1 - %"$ecdsa_recover_pk_call_152" = call [65 x i8]* @_ecdsa_recover_pk(i8* %"$execptr_load_148", %Bystr %"$msg_149", [64 x i8]* %"$ecdsa_recover_pk_sig_150", %Uint32 %2), !dbg !12 - %"$ecdsa_recover_pk_154" = load [65 x i8], [65 x i8]* %"$ecdsa_recover_pk_call_152", align 1 - store [65 x i8] %"$ecdsa_recover_pk_154", [65 x i8]* %pk, align 1, !dbg !12 - %"$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 = %"$have_gas_146" + br label %"$have_gas_148" + +"$have_gas_148": ; preds = %"$out_of_gas_147", %"$have_gas_133" + %"$consume_149" = sub i64 %"$gasrem_145", %"$gasdivceil_144" + store i64 %"$consume_149", i64* @_gasrem, align 8 + %"$execptr_load_150" = load i8*, i8** @_execptr, align 8 + %"$msg_151" = load %Bystr, %Bystr* %msg, align 8 + %"$ecdsa_recover_pk_sig_152" = alloca [64 x i8], align 1 + %"$sig_153" = load [64 x i8], [64 x i8]* %sig, align 1 + store [64 x i8] %"$sig_153", [64 x i8]* %"$ecdsa_recover_pk_sig_152", align 1 + %"$ecdsa_recover_pk_call_154" = call [65 x i8]* @_ecdsa_recover_pk(i8* %"$execptr_load_150", %Bystr %"$msg_151", [64 x i8]* %"$ecdsa_recover_pk_sig_152", %Uint32 %2), !dbg !31 + %"$ecdsa_recover_pk_156" = load [65 x i8], [65 x i8]* %"$ecdsa_recover_pk_call_154", align 1 + store [65 x i8] %"$ecdsa_recover_pk_156", [65 x i8]* %pk, align 1, !dbg !31 + %"$gasrem_157" = load i64, i64* @_gasrem, align 8 + %"$gascmp_158" = icmp ugt i64 1, %"$gasrem_157" + br i1 %"$gascmp_158", label %"$out_of_gas_159", label %"$have_gas_160" + +"$out_of_gas_159": ; preds = %"$have_gas_148" call void @_out_of_gas() - br label %"$have_gas_158" + br label %"$have_gas_160" -"$have_gas_158": ; preds = %"$out_of_gas_157", %"$have_gas_146" - %"$consume_159" = sub i64 %"$gasrem_155", 1 - store i64 %"$consume_159", i64* @_gasrem, align 8 +"$have_gas_160": ; preds = %"$out_of_gas_159", %"$have_gas_148" + %"$consume_161" = sub i64 %"$gasrem_157", 1 + store i64 %"$consume_161", i64* @_gasrem, align 8 %pos = alloca %Uint32, align 8 - %"$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" + call void @llvm.dbg.declare(metadata %Uint32* %pos, metadata !32, metadata !DIExpression()), !dbg !33 + %"$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_162": ; preds = %"$have_gas_158" +"$out_of_gas_164": ; preds = %"$have_gas_160" call void @_out_of_gas() - br label %"$have_gas_163" + br label %"$have_gas_165" -"$have_gas_163": ; preds = %"$out_of_gas_162", %"$have_gas_158" - %"$consume_164" = sub i64 %"$gasrem_160", 1 - store i64 %"$consume_164", i64* @_gasrem, align 8 - store %Uint32 { i32 1 }, %Uint32* %pos, align 4, !dbg !13 - %"$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" +"$have_gas_165": ; preds = %"$out_of_gas_164", %"$have_gas_160" + %"$consume_166" = sub i64 %"$gasrem_162", 1 + store i64 %"$consume_166", i64* @_gasrem, align 8 + store %Uint32 { i32 1 }, %Uint32* %pos, align 4, !dbg !34 + %"$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_167": ; preds = %"$have_gas_163" +"$out_of_gas_169": ; preds = %"$have_gas_165" call void @_out_of_gas() - br label %"$have_gas_168" + br label %"$have_gas_170" -"$have_gas_168": ; preds = %"$out_of_gas_167", %"$have_gas_163" - %"$consume_169" = sub i64 %"$gasrem_165", 1 - store i64 %"$consume_169", i64* @_gasrem, align 8 +"$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 %len = alloca %Uint32, align 8 - %"$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" + call void @llvm.dbg.declare(metadata %Uint32* %len, metadata !35, metadata !DIExpression()), !dbg !36 + %"$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_172": ; preds = %"$have_gas_168" +"$out_of_gas_174": ; preds = %"$have_gas_170" call void @_out_of_gas() - br label %"$have_gas_173" + br label %"$have_gas_175" -"$have_gas_173": ; preds = %"$out_of_gas_172", %"$have_gas_168" - %"$consume_174" = sub i64 %"$gasrem_170", 1 - store i64 %"$consume_174", i64* @_gasrem, align 8 - store %Uint32 { i32 64 }, %Uint32* %len, align 4, !dbg !14 - %"$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" +"$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 + store %Uint32 { i32 64 }, %Uint32* %len, align 4, !dbg !37 + %"$gasrem_177" = load i64, i64* @_gasrem, align 8 + %"$gascmp_178" = icmp ugt i64 1, %"$gasrem_177" + br i1 %"$gascmp_178", label %"$out_of_gas_179", label %"$have_gas_180" -"$out_of_gas_177": ; preds = %"$have_gas_173" +"$out_of_gas_179": ; preds = %"$have_gas_175" call void @_out_of_gas() - br label %"$have_gas_178" + br label %"$have_gas_180" -"$have_gas_178": ; preds = %"$out_of_gas_177", %"$have_gas_173" - %"$consume_179" = sub i64 %"$gasrem_175", 1 - store i64 %"$consume_179", i64* @_gasrem, align 8 +"$have_gas_180": ; preds = %"$out_of_gas_179", %"$have_gas_175" + %"$consume_181" = sub i64 %"$gasrem_177", 1 + store i64 %"$consume_181", i64* @_gasrem, align 8 %pk_bs = alloca %Bystr, align 8 - %"$gasrem_180" = load i64, i64* @_gasrem, align 8 - %"$gascmp_181" = icmp ugt i64 65, %"$gasrem_180" - br i1 %"$gascmp_181", label %"$out_of_gas_182", label %"$have_gas_183" + call void @llvm.dbg.declare(metadata %Bystr* %pk_bs, metadata !38, metadata !DIExpression()), !dbg !39 + %"$gasrem_182" = load i64, i64* @_gasrem, align 8 + %"$gascmp_183" = icmp ugt i64 65, %"$gasrem_182" + br i1 %"$gascmp_183", label %"$out_of_gas_184", label %"$have_gas_185" -"$out_of_gas_182": ; preds = %"$have_gas_178" +"$out_of_gas_184": ; preds = %"$have_gas_180" call void @_out_of_gas() - br label %"$have_gas_183" - -"$have_gas_183": ; preds = %"$out_of_gas_182", %"$have_gas_178" - %"$consume_184" = sub i64 %"$gasrem_180", 65 - store i64 %"$consume_184", i64* @_gasrem, align 8 - %"$execptr_load_185" = load i8*, i8** @_execptr, align 8 - %"$to_bystr_pk_186" = alloca [65 x i8], align 1 - %"$pk_187" = load [65 x i8], [65 x i8]* %pk, align 1 - store [65 x i8] %"$pk_187", [65 x i8]* %"$to_bystr_pk_186", align 1 - %"$$to_bystr_pk_186_188" = bitcast [65 x i8]* %"$to_bystr_pk_186" to i8* - %"$to_bystr_call_189" = call %Bystr @_to_bystr(i8* %"$execptr_load_185", i32 65, i8* %"$$to_bystr_pk_186_188"), !dbg !15 - store %Bystr %"$to_bystr_call_189", %Bystr* %pk_bs, align 8, !dbg !15 - %"$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 = %"$have_gas_183" + br label %"$have_gas_185" + +"$have_gas_185": ; preds = %"$out_of_gas_184", %"$have_gas_180" + %"$consume_186" = sub i64 %"$gasrem_182", 65 + store i64 %"$consume_186", i64* @_gasrem, align 8 + %"$execptr_load_187" = load i8*, i8** @_execptr, align 8 + %"$to_bystr_pk_188" = alloca [65 x i8], align 1 + %"$pk_189" = load [65 x i8], [65 x i8]* %pk, align 1 + store [65 x i8] %"$pk_189", [65 x i8]* %"$to_bystr_pk_188", align 1 + %"$$to_bystr_pk_188_190" = bitcast [65 x i8]* %"$to_bystr_pk_188" to i8* + %"$to_bystr_call_191" = call %Bystr @_to_bystr(i8* %"$execptr_load_187", i32 65, i8* %"$$to_bystr_pk_188_190"), !dbg !40 + store %Bystr %"$to_bystr_call_191", %Bystr* %pk_bs, align 8, !dbg !40 + %"$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_185" call void @_out_of_gas() - br label %"$have_gas_193" + br label %"$have_gas_195" -"$have_gas_193": ; preds = %"$out_of_gas_192", %"$have_gas_183" - %"$consume_194" = sub i64 %"$gasrem_190", 1 - store i64 %"$consume_194", i64* @_gasrem, align 8 +"$have_gas_195": ; preds = %"$out_of_gas_194", %"$have_gas_185" + %"$consume_196" = sub i64 %"$gasrem_192", 1 + store i64 %"$consume_196", i64* @_gasrem, align 8 %pk_ = alloca %Bystr, align 8 - %"$_literal_cost_pk_bs_195" = alloca %Bystr, align 8 - %"$pk_bs_196" = load %Bystr, %Bystr* %pk_bs, align 8 - store %Bystr %"$pk_bs_196", %Bystr* %"$_literal_cost_pk_bs_195", align 8 - %"$$_literal_cost_pk_bs_195_197" = bitcast %Bystr* %"$_literal_cost_pk_bs_195" to i8* - %"$_literal_cost_call_198" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Bystr_51", i8* %"$$_literal_cost_pk_bs_195_197") - %"$pos_199" = load %Uint32, %Uint32* %pos, align 4 - %"$valueof_200" = extractvalue %Uint32 %"$pos_199", 0 - %"$valueof_201" = zext i32 %"$valueof_200" to i64 - %"$len_202" = load %Uint32, %Uint32* %len, align 4 - %"$valueof_203" = extractvalue %Uint32 %"$len_202", 0 - %"$valueof_204" = zext i32 %"$valueof_203" to i64 - %"$gasadd_205" = add i64 %"$valueof_201", %"$valueof_204" - %"$gasmin_206" = call i64 @llvm.umin.i64(i64 %"$_literal_cost_call_198", i64 %"$gasadd_205") - %"$gasrem_207" = load i64, i64* @_gasrem, align 8 - %"$gascmp_208" = icmp ugt i64 %"$gasmin_206", %"$gasrem_207" - br i1 %"$gascmp_208", label %"$out_of_gas_209", label %"$have_gas_210" - -"$out_of_gas_209": ; preds = %"$have_gas_193" + call void @llvm.dbg.declare(metadata %Bystr* %pk_, metadata !41, metadata !DIExpression()), !dbg !42 + %"$_literal_cost_pk_bs_197" = alloca %Bystr, align 8 + %"$pk_bs_198" = load %Bystr, %Bystr* %pk_bs, align 8 + store %Bystr %"$pk_bs_198", %Bystr* %"$_literal_cost_pk_bs_197", align 8 + %"$$_literal_cost_pk_bs_197_199" = bitcast %Bystr* %"$_literal_cost_pk_bs_197" to i8* + %"$_literal_cost_call_200" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Bystr_51", i8* %"$$_literal_cost_pk_bs_197_199") + %"$pos_201" = load %Uint32, %Uint32* %pos, align 4 + %"$valueof_202" = extractvalue %Uint32 %"$pos_201", 0 + %"$valueof_203" = zext i32 %"$valueof_202" to i64 + %"$len_204" = load %Uint32, %Uint32* %len, align 4 + %"$valueof_205" = extractvalue %Uint32 %"$len_204", 0 + %"$valueof_206" = zext i32 %"$valueof_205" to i64 + %"$gasadd_207" = add i64 %"$valueof_203", %"$valueof_206" + %"$gasmin_208" = call i64 @llvm.umin.i64(i64 %"$_literal_cost_call_200", i64 %"$gasadd_207") + %"$gasrem_209" = load i64, i64* @_gasrem, align 8 + %"$gascmp_210" = icmp ugt i64 %"$gasmin_208", %"$gasrem_209" + br i1 %"$gascmp_210", label %"$out_of_gas_211", label %"$have_gas_212" + +"$out_of_gas_211": ; preds = %"$have_gas_195" call void @_out_of_gas() - br label %"$have_gas_210" - -"$have_gas_210": ; preds = %"$out_of_gas_209", %"$have_gas_193" - %"$consume_211" = sub i64 %"$gasrem_207", %"$gasmin_206" - store i64 %"$consume_211", i64* @_gasrem, align 8 - %"$execptr_load_212" = load i8*, i8** @_execptr, align 8 - %"$pk_bs_213" = load %Bystr, %Bystr* %pk_bs, align 8 - %"$pos_214" = load %Uint32, %Uint32* %pos, align 4 - %"$len_215" = load %Uint32, %Uint32* %len, align 4 - %"$substr_call_216" = call %Bystr @_substr_ByStr(i8* %"$execptr_load_212", %Bystr %"$pk_bs_213", %Uint32 %"$pos_214", %Uint32 %"$len_215"), !dbg !16 - store %Bystr %"$substr_call_216", %Bystr* %pk_, align 8, !dbg !16 - %"$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" + br label %"$have_gas_212" + +"$have_gas_212": ; preds = %"$out_of_gas_211", %"$have_gas_195" + %"$consume_213" = sub i64 %"$gasrem_209", %"$gasmin_208" + store i64 %"$consume_213", i64* @_gasrem, align 8 + %"$execptr_load_214" = load i8*, i8** @_execptr, align 8 + %"$pk_bs_215" = load %Bystr, %Bystr* %pk_bs, align 8 + %"$pos_216" = load %Uint32, %Uint32* %pos, align 4 + %"$len_217" = load %Uint32, %Uint32* %len, align 4 + %"$substr_call_218" = call %Bystr @_substr_ByStr(i8* %"$execptr_load_214", %Bystr %"$pk_bs_215", %Uint32 %"$pos_216", %Uint32 %"$len_217"), !dbg !43 + store %Bystr %"$substr_call_218", %Bystr* %pk_, align 8, !dbg !43 + %"$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 = %"$have_gas_212" call void @_out_of_gas() - br label %"$have_gas_220" + br label %"$have_gas_222" -"$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 +"$have_gas_222": ; preds = %"$out_of_gas_221", %"$have_gas_212" + %"$consume_223" = sub i64 %"$gasrem_219", 1 + store i64 %"$consume_223", i64* @_gasrem, align 8 %pkHash = alloca [32 x i8], align 1 - %"$_literal_cost_pk__222" = alloca %Bystr, align 8 - %"$pk__223" = load %Bystr, %Bystr* %pk_, align 8 - store %Bystr %"$pk__223", %Bystr* %"$_literal_cost_pk__222", align 8 - %"$$_literal_cost_pk__222_224" = bitcast %Bystr* %"$_literal_cost_pk__222" to i8* - %"$_literal_cost_call_225" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Bystr_51", i8* %"$$_literal_cost_pk__222_224") - %"$gasadd_226" = add i64 %"$_literal_cost_call_225", 0 - %"$gasdivceil_227" = urem i64 %"$gasadd_226", 2040 - %"$gasdivceil_228" = udiv i64 %"$gasadd_226", 2040 - %"$gasdivceil_229" = icmp eq i64 %"$gasdivceil_227", 0 - %"$gasdivceil_230" = add i64 %"$gasdivceil_228", 1 - %"$gasdivceil_231" = select i1 %"$gasdivceil_229", i64 %"$gasdivceil_228", i64 %"$gasdivceil_230" - %"$gasrem_232" = load i64, i64* @_gasrem, align 8 - %"$gascmp_233" = icmp ugt i64 %"$gasdivceil_231", %"$gasrem_232" - br i1 %"$gascmp_233", label %"$out_of_gas_234", label %"$have_gas_235" - -"$out_of_gas_234": ; preds = %"$have_gas_220" + call void @llvm.dbg.declare(metadata [32 x i8]* %pkHash, metadata !44, metadata !DIExpression()), !dbg !45 + %"$_literal_cost_pk__224" = alloca %Bystr, align 8 + %"$pk__225" = load %Bystr, %Bystr* %pk_, align 8 + store %Bystr %"$pk__225", %Bystr* %"$_literal_cost_pk__224", align 8 + %"$$_literal_cost_pk__224_226" = bitcast %Bystr* %"$_literal_cost_pk__224" to i8* + %"$_literal_cost_call_227" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Bystr_51", i8* %"$$_literal_cost_pk__224_226") + %"$gasadd_228" = add i64 %"$_literal_cost_call_227", 0 + %"$gasdivceil_229" = urem i64 %"$gasadd_228", 2040 + %"$gasdivceil_230" = udiv i64 %"$gasadd_228", 2040 + %"$gasdivceil_231" = icmp eq i64 %"$gasdivceil_229", 0 + %"$gasdivceil_232" = add i64 %"$gasdivceil_230", 1 + %"$gasdivceil_233" = select i1 %"$gasdivceil_231", i64 %"$gasdivceil_230", i64 %"$gasdivceil_232" + %"$gasrem_234" = load i64, i64* @_gasrem, align 8 + %"$gascmp_235" = icmp ugt i64 %"$gasdivceil_233", %"$gasrem_234" + br i1 %"$gascmp_235", label %"$out_of_gas_236", label %"$have_gas_237" + +"$out_of_gas_236": ; preds = %"$have_gas_222" call void @_out_of_gas() - br label %"$have_gas_235" - -"$have_gas_235": ; preds = %"$out_of_gas_234", %"$have_gas_220" - %"$consume_236" = sub i64 %"$gasrem_232", %"$gasdivceil_231" - store i64 %"$consume_236", i64* @_gasrem, align 8 - %"$execptr_load_237" = load i8*, i8** @_execptr, align 8 - %"$keccak256hash_pk__238" = alloca %Bystr, align 8 - %"$pk__239" = load %Bystr, %Bystr* %pk_, align 8 - store %Bystr %"$pk__239", %Bystr* %"$keccak256hash_pk__238", align 8 - %"$$keccak256hash_pk__238_240" = bitcast %Bystr* %"$keccak256hash_pk__238" to i8* - %"$keccak256hash_call_241" = call [32 x i8]* @_keccak256hash(i8* %"$execptr_load_237", %_TyDescrTy_Typ* @"$TyDescr_Bystr_51", i8* %"$$keccak256hash_pk__238_240"), !dbg !17 - %"$keccak256hash_243" = load [32 x i8], [32 x i8]* %"$keccak256hash_call_241", align 1 - store [32 x i8] %"$keccak256hash_243", [32 x i8]* %pkHash, align 1, !dbg !17 - %"$gasrem_244" = load i64, i64* @_gasrem, align 8 - %"$gascmp_245" = icmp ugt i64 1, %"$gasrem_244" - br i1 %"$gascmp_245", label %"$out_of_gas_246", label %"$have_gas_247" - -"$out_of_gas_246": ; preds = %"$have_gas_235" + br label %"$have_gas_237" + +"$have_gas_237": ; preds = %"$out_of_gas_236", %"$have_gas_222" + %"$consume_238" = sub i64 %"$gasrem_234", %"$gasdivceil_233" + store i64 %"$consume_238", i64* @_gasrem, align 8 + %"$execptr_load_239" = load i8*, i8** @_execptr, align 8 + %"$keccak256hash_pk__240" = alloca %Bystr, align 8 + %"$pk__241" = load %Bystr, %Bystr* %pk_, align 8 + store %Bystr %"$pk__241", %Bystr* %"$keccak256hash_pk__240", align 8 + %"$$keccak256hash_pk__240_242" = bitcast %Bystr* %"$keccak256hash_pk__240" to i8* + %"$keccak256hash_call_243" = call [32 x i8]* @_keccak256hash(i8* %"$execptr_load_239", %_TyDescrTy_Typ* @"$TyDescr_Bystr_51", i8* %"$$keccak256hash_pk__240_242"), !dbg !46 + %"$keccak256hash_245" = load [32 x i8], [32 x i8]* %"$keccak256hash_call_243", align 1 + store [32 x i8] %"$keccak256hash_245", [32 x i8]* %pkHash, align 1, !dbg !46 + %"$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_237" call void @_out_of_gas() - br label %"$have_gas_247" + br label %"$have_gas_249" -"$have_gas_247": ; preds = %"$out_of_gas_246", %"$have_gas_235" - %"$consume_248" = sub i64 %"$gasrem_244", 1 - store i64 %"$consume_248", i64* @_gasrem, align 8 +"$have_gas_249": ; preds = %"$out_of_gas_248", %"$have_gas_237" + %"$consume_250" = sub i64 %"$gasrem_246", 1 + store i64 %"$consume_250", i64* @_gasrem, align 8 %pkHash_bs = alloca %Bystr, align 8 - %"$gasrem_249" = load i64, i64* @_gasrem, align 8 - %"$gascmp_250" = icmp ugt i64 32, %"$gasrem_249" - br i1 %"$gascmp_250", label %"$out_of_gas_251", label %"$have_gas_252" + call void @llvm.dbg.declare(metadata %Bystr* %pkHash_bs, metadata !47, metadata !DIExpression()), !dbg !48 + %"$gasrem_251" = load i64, i64* @_gasrem, align 8 + %"$gascmp_252" = icmp ugt i64 32, %"$gasrem_251" + br i1 %"$gascmp_252", label %"$out_of_gas_253", label %"$have_gas_254" -"$out_of_gas_251": ; preds = %"$have_gas_247" +"$out_of_gas_253": ; preds = %"$have_gas_249" call void @_out_of_gas() - br label %"$have_gas_252" - -"$have_gas_252": ; preds = %"$out_of_gas_251", %"$have_gas_247" - %"$consume_253" = sub i64 %"$gasrem_249", 32 - store i64 %"$consume_253", i64* @_gasrem, align 8 - %"$execptr_load_254" = load i8*, i8** @_execptr, align 8 - %"$to_bystr_pkHash_255" = alloca [32 x i8], align 1 - %"$pkHash_256" = load [32 x i8], [32 x i8]* %pkHash, align 1 - store [32 x i8] %"$pkHash_256", [32 x i8]* %"$to_bystr_pkHash_255", align 1 - %"$$to_bystr_pkHash_255_257" = bitcast [32 x i8]* %"$to_bystr_pkHash_255" to i8* - %"$to_bystr_call_258" = call %Bystr @_to_bystr(i8* %"$execptr_load_254", i32 32, i8* %"$$to_bystr_pkHash_255_257"), !dbg !18 - store %Bystr %"$to_bystr_call_258", %Bystr* %pkHash_bs, align 8, !dbg !18 - %"$gasrem_259" = load i64, i64* @_gasrem, align 8 - %"$gascmp_260" = icmp ugt i64 1, %"$gasrem_259" - br i1 %"$gascmp_260", label %"$out_of_gas_261", label %"$have_gas_262" - -"$out_of_gas_261": ; preds = %"$have_gas_252" + br label %"$have_gas_254" + +"$have_gas_254": ; preds = %"$out_of_gas_253", %"$have_gas_249" + %"$consume_255" = sub i64 %"$gasrem_251", 32 + store i64 %"$consume_255", i64* @_gasrem, align 8 + %"$execptr_load_256" = load i8*, i8** @_execptr, align 8 + %"$to_bystr_pkHash_257" = alloca [32 x i8], align 1 + %"$pkHash_258" = load [32 x i8], [32 x i8]* %pkHash, align 1 + store [32 x i8] %"$pkHash_258", [32 x i8]* %"$to_bystr_pkHash_257", align 1 + %"$$to_bystr_pkHash_257_259" = bitcast [32 x i8]* %"$to_bystr_pkHash_257" to i8* + %"$to_bystr_call_260" = call %Bystr @_to_bystr(i8* %"$execptr_load_256", i32 32, i8* %"$$to_bystr_pkHash_257_259"), !dbg !49 + store %Bystr %"$to_bystr_call_260", %Bystr* %pkHash_bs, align 8, !dbg !49 + %"$gasrem_261" = load i64, i64* @_gasrem, align 8 + %"$gascmp_262" = icmp ugt i64 1, %"$gasrem_261" + br i1 %"$gascmp_262", label %"$out_of_gas_263", label %"$have_gas_264" + +"$out_of_gas_263": ; preds = %"$have_gas_254" call void @_out_of_gas() - br label %"$have_gas_262" + br label %"$have_gas_264" -"$have_gas_262": ; preds = %"$out_of_gas_261", %"$have_gas_252" - %"$consume_263" = sub i64 %"$gasrem_259", 1 - store i64 %"$consume_263", i64* @_gasrem, align 8 +"$have_gas_264": ; preds = %"$out_of_gas_263", %"$have_gas_254" + %"$consume_265" = sub i64 %"$gasrem_261", 1 + store i64 %"$consume_265", i64* @_gasrem, align 8 %"$pos_6" = 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" + call void @llvm.dbg.declare(metadata %Uint32* %"$pos_6", metadata !50, metadata !DIExpression()), !dbg !51 + %"$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_266": ; preds = %"$have_gas_262" +"$out_of_gas_268": ; preds = %"$have_gas_264" call void @_out_of_gas() - br label %"$have_gas_267" + br label %"$have_gas_269" -"$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 12 }, %Uint32* %"$pos_6", align 4, !dbg !19 - %"$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" +"$have_gas_269": ; preds = %"$out_of_gas_268", %"$have_gas_264" + %"$consume_270" = sub i64 %"$gasrem_266", 1 + store i64 %"$consume_270", i64* @_gasrem, align 8 + store %Uint32 { i32 12 }, %Uint32* %"$pos_6", align 4, !dbg !52 + %"$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_271": ; preds = %"$have_gas_267" +"$out_of_gas_273": ; preds = %"$have_gas_269" call void @_out_of_gas() - br label %"$have_gas_272" + br label %"$have_gas_274" -"$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 +"$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 %"$len_7" = alloca %Uint32, align 8 - %"$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" + call void @llvm.dbg.declare(metadata %Uint32* %"$len_7", metadata !53, metadata !DIExpression()), !dbg !54 + %"$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_276": ; preds = %"$have_gas_272" +"$out_of_gas_278": ; preds = %"$have_gas_274" call void @_out_of_gas() - br label %"$have_gas_277" + br label %"$have_gas_279" -"$have_gas_277": ; preds = %"$out_of_gas_276", %"$have_gas_272" - %"$consume_278" = sub i64 %"$gasrem_274", 1 - store i64 %"$consume_278", i64* @_gasrem, align 8 - store %Uint32 { i32 20 }, %Uint32* %"$len_7", align 4, !dbg !20 - %"$gasrem_279" = load i64, i64* @_gasrem, align 8 - %"$gascmp_280" = icmp ugt i64 1, %"$gasrem_279" - br i1 %"$gascmp_280", label %"$out_of_gas_281", label %"$have_gas_282" +"$have_gas_279": ; preds = %"$out_of_gas_278", %"$have_gas_274" + %"$consume_280" = sub i64 %"$gasrem_276", 1 + store i64 %"$consume_280", i64* @_gasrem, align 8 + store %Uint32 { i32 20 }, %Uint32* %"$len_7", align 4, !dbg !55 + %"$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_281": ; preds = %"$have_gas_277" +"$out_of_gas_283": ; preds = %"$have_gas_279" call void @_out_of_gas() - br label %"$have_gas_282" + br label %"$have_gas_284" -"$have_gas_282": ; preds = %"$out_of_gas_281", %"$have_gas_277" - %"$consume_283" = sub i64 %"$gasrem_279", 1 - store i64 %"$consume_283", i64* @_gasrem, align 8 +"$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 %addr_bs = alloca %Bystr, align 8 - %"$_literal_cost_pkHash_bs_284" = alloca %Bystr, align 8 - %"$pkHash_bs_285" = load %Bystr, %Bystr* %pkHash_bs, align 8 - store %Bystr %"$pkHash_bs_285", %Bystr* %"$_literal_cost_pkHash_bs_284", align 8 - %"$$_literal_cost_pkHash_bs_284_286" = bitcast %Bystr* %"$_literal_cost_pkHash_bs_284" to i8* - %"$_literal_cost_call_287" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Bystr_51", i8* %"$$_literal_cost_pkHash_bs_284_286") - %"$$pos_6_288" = load %Uint32, %Uint32* %"$pos_6", align 4 - %"$valueof_289" = extractvalue %Uint32 %"$$pos_6_288", 0 - %"$valueof_290" = zext i32 %"$valueof_289" to i64 - %"$$len_7_291" = load %Uint32, %Uint32* %"$len_7", align 4 - %"$valueof_292" = extractvalue %Uint32 %"$$len_7_291", 0 - %"$valueof_293" = zext i32 %"$valueof_292" to i64 - %"$gasadd_294" = add i64 %"$valueof_290", %"$valueof_293" - %"$gasmin_295" = call i64 @llvm.umin.i64(i64 %"$_literal_cost_call_287", i64 %"$gasadd_294") - %"$gasrem_296" = load i64, i64* @_gasrem, align 8 - %"$gascmp_297" = icmp ugt i64 %"$gasmin_295", %"$gasrem_296" - br i1 %"$gascmp_297", label %"$out_of_gas_298", label %"$have_gas_299" - -"$out_of_gas_298": ; preds = %"$have_gas_282" + call void @llvm.dbg.declare(metadata %Bystr* %addr_bs, metadata !56, metadata !DIExpression()), !dbg !57 + %"$_literal_cost_pkHash_bs_286" = alloca %Bystr, align 8 + %"$pkHash_bs_287" = load %Bystr, %Bystr* %pkHash_bs, align 8 + store %Bystr %"$pkHash_bs_287", %Bystr* %"$_literal_cost_pkHash_bs_286", align 8 + %"$$_literal_cost_pkHash_bs_286_288" = bitcast %Bystr* %"$_literal_cost_pkHash_bs_286" to i8* + %"$_literal_cost_call_289" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Bystr_51", i8* %"$$_literal_cost_pkHash_bs_286_288") + %"$$pos_6_290" = load %Uint32, %Uint32* %"$pos_6", align 4 + %"$valueof_291" = extractvalue %Uint32 %"$$pos_6_290", 0 + %"$valueof_292" = zext i32 %"$valueof_291" to i64 + %"$$len_7_293" = load %Uint32, %Uint32* %"$len_7", align 4 + %"$valueof_294" = extractvalue %Uint32 %"$$len_7_293", 0 + %"$valueof_295" = zext i32 %"$valueof_294" to i64 + %"$gasadd_296" = add i64 %"$valueof_292", %"$valueof_295" + %"$gasmin_297" = call i64 @llvm.umin.i64(i64 %"$_literal_cost_call_289", i64 %"$gasadd_296") + %"$gasrem_298" = load i64, i64* @_gasrem, align 8 + %"$gascmp_299" = icmp ugt i64 %"$gasmin_297", %"$gasrem_298" + br i1 %"$gascmp_299", label %"$out_of_gas_300", label %"$have_gas_301" + +"$out_of_gas_300": ; preds = %"$have_gas_284" call void @_out_of_gas() - br label %"$have_gas_299" - -"$have_gas_299": ; preds = %"$out_of_gas_298", %"$have_gas_282" - %"$consume_300" = sub i64 %"$gasrem_296", %"$gasmin_295" - store i64 %"$consume_300", i64* @_gasrem, align 8 - %"$execptr_load_301" = load i8*, i8** @_execptr, align 8 - %"$pkHash_bs_302" = load %Bystr, %Bystr* %pkHash_bs, align 8 - %"$$pos_6_303" = load %Uint32, %Uint32* %"$pos_6", align 4 - %"$$len_7_304" = load %Uint32, %Uint32* %"$len_7", align 4 - %"$substr_call_305" = call %Bystr @_substr_ByStr(i8* %"$execptr_load_301", %Bystr %"$pkHash_bs_302", %Uint32 %"$$pos_6_303", %Uint32 %"$$len_7_304"), !dbg !21 - store %Bystr %"$substr_call_305", %Bystr* %addr_bs, align 8, !dbg !21 - %"$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_308": ; preds = %"$have_gas_299" + br label %"$have_gas_301" + +"$have_gas_301": ; preds = %"$out_of_gas_300", %"$have_gas_284" + %"$consume_302" = sub i64 %"$gasrem_298", %"$gasmin_297" + store i64 %"$consume_302", i64* @_gasrem, align 8 + %"$execptr_load_303" = load i8*, i8** @_execptr, align 8 + %"$pkHash_bs_304" = load %Bystr, %Bystr* %pkHash_bs, align 8 + %"$$pos_6_305" = load %Uint32, %Uint32* %"$pos_6", align 4 + %"$$len_7_306" = load %Uint32, %Uint32* %"$len_7", align 4 + %"$substr_call_307" = call %Bystr @_substr_ByStr(i8* %"$execptr_load_303", %Bystr %"$pkHash_bs_304", %Uint32 %"$$pos_6_305", %Uint32 %"$$len_7_306"), !dbg !58 + store %Bystr %"$substr_call_307", %Bystr* %addr_bs, align 8, !dbg !58 + %"$gasrem_308" = load i64, i64* @_gasrem, align 8 + %"$gascmp_309" = icmp ugt i64 1, %"$gasrem_308" + br i1 %"$gascmp_309", label %"$out_of_gas_310", label %"$have_gas_311" + +"$out_of_gas_310": ; preds = %"$have_gas_301" call void @_out_of_gas() - br label %"$have_gas_309" + br label %"$have_gas_311" -"$have_gas_309": ; preds = %"$out_of_gas_308", %"$have_gas_299" - %"$consume_310" = sub i64 %"$gasrem_306", 1 - store i64 %"$consume_310", i64* @_gasrem, align 8 +"$have_gas_311": ; preds = %"$out_of_gas_310", %"$have_gas_301" + %"$consume_312" = sub i64 %"$gasrem_308", 1 + store i64 %"$consume_312", i64* @_gasrem, align 8 %addr_opt = alloca %TName_Option_ByStr20*, align 8 - %"$gasrem_311" = load i64, i64* @_gasrem, align 8 - %"$gascmp_312" = icmp ugt i64 20, %"$gasrem_311" - br i1 %"$gascmp_312", label %"$out_of_gas_313", label %"$have_gas_314" + call void @llvm.dbg.declare(metadata %TName_Option_ByStr20** %addr_opt, metadata !59, metadata !DIExpression()), !dbg !62 + %"$gasrem_313" = load i64, i64* @_gasrem, align 8 + %"$gascmp_314" = icmp ugt i64 20, %"$gasrem_313" + br i1 %"$gascmp_314", label %"$out_of_gas_315", label %"$have_gas_316" -"$out_of_gas_313": ; preds = %"$have_gas_309" +"$out_of_gas_315": ; preds = %"$have_gas_311" call void @_out_of_gas() - br label %"$have_gas_314" - -"$have_gas_314": ; preds = %"$out_of_gas_313", %"$have_gas_309" - %"$consume_315" = sub i64 %"$gasrem_311", 20 - store i64 %"$consume_315", i64* @_gasrem, align 8 - %"$execptr_load_316" = load i8*, i8** @_execptr, align 8 - %"$addr_bs_317" = load %Bystr, %Bystr* %addr_bs, align 8 - %"$to_bystr20_call_318" = call i8* @_bystr_to_bystrx(i8* %"$execptr_load_316", i32 20, %Bystr %"$addr_bs_317"), !dbg !22 - %"$to_bystr20_319" = bitcast i8* %"$to_bystr20_call_318" to %TName_Option_ByStr20* - store %TName_Option_ByStr20* %"$to_bystr20_319", %TName_Option_ByStr20** %addr_opt, align 8, !dbg !22 - %"$gasrem_320" = load i64, i64* @_gasrem, align 8 - %"$gascmp_321" = icmp ugt i64 2, %"$gasrem_320" - br i1 %"$gascmp_321", label %"$out_of_gas_322", label %"$have_gas_323" - -"$out_of_gas_322": ; preds = %"$have_gas_314" + br label %"$have_gas_316" + +"$have_gas_316": ; preds = %"$out_of_gas_315", %"$have_gas_311" + %"$consume_317" = sub i64 %"$gasrem_313", 20 + store i64 %"$consume_317", i64* @_gasrem, align 8 + %"$execptr_load_318" = load i8*, i8** @_execptr, align 8 + %"$addr_bs_319" = load %Bystr, %Bystr* %addr_bs, align 8 + %"$to_bystr20_call_320" = call i8* @_bystr_to_bystrx(i8* %"$execptr_load_318", i32 20, %Bystr %"$addr_bs_319"), !dbg !63 + %"$to_bystr20_321" = bitcast i8* %"$to_bystr20_call_320" to %TName_Option_ByStr20* + store %TName_Option_ByStr20* %"$to_bystr20_321", %TName_Option_ByStr20** %addr_opt, align 8, !dbg !63 + %"$gasrem_322" = load i64, i64* @_gasrem, align 8 + %"$gascmp_323" = icmp ugt i64 2, %"$gasrem_322" + br i1 %"$gascmp_323", label %"$out_of_gas_324", label %"$have_gas_325" + +"$out_of_gas_324": ; preds = %"$have_gas_316" call void @_out_of_gas() - br label %"$have_gas_323" - -"$have_gas_323": ; preds = %"$out_of_gas_322", %"$have_gas_314" - %"$consume_324" = sub i64 %"$gasrem_320", 2 - store i64 %"$consume_324", i64* @_gasrem, align 8 - %"$addr_opt_326" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %addr_opt, align 8 - %"$addr_opt_tag_327" = getelementptr inbounds %TName_Option_ByStr20, %TName_Option_ByStr20* %"$addr_opt_326", i32 0, i32 0 - %"$addr_opt_tag_328" = load i8, i8* %"$addr_opt_tag_327", align 1 - switch i8 %"$addr_opt_tag_328", label %"$empty_default_329" [ - i8 0, label %"$Some_330" - i8 1, label %"$None_340" - ], !dbg !23 - -"$Some_330": ; preds = %"$have_gas_323" - %"$addr_opt_331" = bitcast %TName_Option_ByStr20* %"$addr_opt_326" to %CName_Some_ByStr20* - %"$addr_gep_332" = getelementptr inbounds %CName_Some_ByStr20, %CName_Some_ByStr20* %"$addr_opt_331", i32 0, i32 1 - %"$addr_load_333" = load [20 x i8], [20 x i8]* %"$addr_gep_332", align 1 + br label %"$have_gas_325" + +"$have_gas_325": ; preds = %"$out_of_gas_324", %"$have_gas_316" + %"$consume_326" = sub i64 %"$gasrem_322", 2 + store i64 %"$consume_326", i64* @_gasrem, align 8 + %"$addr_opt_328" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %addr_opt, align 8 + %"$addr_opt_tag_329" = getelementptr inbounds %TName_Option_ByStr20, %TName_Option_ByStr20* %"$addr_opt_328", i32 0, i32 0 + %"$addr_opt_tag_330" = load i8, i8* %"$addr_opt_tag_329", align 1 + switch i8 %"$addr_opt_tag_330", label %"$empty_default_331" [ + i8 0, label %"$Some_332" + i8 1, label %"$None_342" + ], !dbg !64 + +"$Some_332": ; preds = %"$have_gas_325" + %"$addr_opt_333" = bitcast %TName_Option_ByStr20* %"$addr_opt_328" to %CName_Some_ByStr20* + %"$addr_gep_334" = getelementptr inbounds %CName_Some_ByStr20, %CName_Some_ByStr20* %"$addr_opt_333", i32 0, i32 1 + %"$addr_load_335" = load [20 x i8], [20 x i8]* %"$addr_gep_334", align 1 %addr = alloca [20 x i8], align 1 - store [20 x i8] %"$addr_load_333", [20 x i8]* %addr, align 1 - %"$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" + store [20 x i8] %"$addr_load_335", [20 x i8]* %addr, align 1 + %"$gasrem_336" = load i64, i64* @_gasrem, align 8 + %"$gascmp_337" = icmp ugt i64 1, %"$gasrem_336" + br i1 %"$gascmp_337", label %"$out_of_gas_338", label %"$have_gas_339" -"$out_of_gas_336": ; preds = %"$Some_330" +"$out_of_gas_338": ; preds = %"$Some_332" call void @_out_of_gas() - br label %"$have_gas_337" - -"$have_gas_337": ; preds = %"$out_of_gas_336", %"$Some_330" - %"$consume_338" = sub i64 %"$gasrem_334", 1 - store i64 %"$consume_338", i64* @_gasrem, align 8 - %"$addr_339" = load [20 x i8], [20 x i8]* %addr, align 1 - store [20 x i8] %"$addr_339", [20 x i8]* %"$retval_18", align 1, !dbg !24 - br label %"$matchsucc_325" - -"$None_340": ; preds = %"$have_gas_323" - %"$addr_opt_341" = bitcast %TName_Option_ByStr20* %"$addr_opt_326" to %CName_None_ByStr20* - %"$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" - -"$out_of_gas_344": ; preds = %"$None_340" + br label %"$have_gas_339" + +"$have_gas_339": ; preds = %"$out_of_gas_338", %"$Some_332" + %"$consume_340" = sub i64 %"$gasrem_336", 1 + store i64 %"$consume_340", i64* @_gasrem, align 8 + %"$addr_341" = load [20 x i8], [20 x i8]* %addr, align 1 + store [20 x i8] %"$addr_341", [20 x i8]* %"$retval_18", align 1, !dbg !65 + br label %"$matchsucc_327" + +"$None_342": ; preds = %"$have_gas_325" + %"$addr_opt_343" = bitcast %TName_Option_ByStr20* %"$addr_opt_328" to %CName_None_ByStr20* + %"$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_346": ; preds = %"$None_342" call void @_out_of_gas() - br label %"$have_gas_345" + br label %"$have_gas_347" -"$have_gas_345": ; preds = %"$out_of_gas_344", %"$None_340" - %"$consume_346" = sub i64 %"$gasrem_342", 1 - store i64 %"$consume_346", i64* @_gasrem, align 8 +"$have_gas_347": ; preds = %"$out_of_gas_346", %"$None_342" + %"$consume_348" = sub i64 %"$gasrem_344", 1 + store i64 %"$consume_348", i64* @_gasrem, align 8 %zero = alloca %Uint32, 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" + call void @llvm.dbg.declare(metadata %Uint32* %zero, metadata !68, metadata !DIExpression()), !dbg !70 + %"$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_349": ; preds = %"$have_gas_345" +"$out_of_gas_351": ; preds = %"$have_gas_347" call void @_out_of_gas() - br label %"$have_gas_350" + br label %"$have_gas_352" -"$have_gas_350": ; preds = %"$out_of_gas_349", %"$have_gas_345" - %"$consume_351" = sub i64 %"$gasrem_347", 1 - store i64 %"$consume_351", i64* @_gasrem, align 8 - store %Uint32 zeroinitializer, %Uint32* %zero, align 4, !dbg !27 - %"$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" +"$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 + store %Uint32 zeroinitializer, %Uint32* %zero, align 4, !dbg !71 + %"$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" -"$out_of_gas_354": ; preds = %"$have_gas_350" +"$out_of_gas_356": ; preds = %"$have_gas_352" call void @_out_of_gas() - br label %"$have_gas_355" + br label %"$have_gas_357" -"$have_gas_355": ; preds = %"$out_of_gas_354", %"$have_gas_350" - %"$consume_356" = sub i64 %"$gasrem_352", 1 - store i64 %"$consume_356", i64* @_gasrem, align 8 +"$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 %ignore = alloca %Uint32, align 8 - %"$gasrem_357" = load i64, i64* @_gasrem, align 8 - %"$gascmp_358" = icmp ugt i64 20, %"$gasrem_357" - br i1 %"$gascmp_358", label %"$out_of_gas_359", label %"$have_gas_360" + call void @llvm.dbg.declare(metadata %Uint32* %ignore, metadata !72, metadata !DIExpression()), !dbg !73 + %"$gasrem_359" = load i64, i64* @_gasrem, align 8 + %"$gascmp_360" = icmp ugt i64 20, %"$gasrem_359" + br i1 %"$gascmp_360", label %"$out_of_gas_361", label %"$have_gas_362" -"$out_of_gas_359": ; preds = %"$have_gas_355" +"$out_of_gas_361": ; preds = %"$have_gas_357" call void @_out_of_gas() - br label %"$have_gas_360" - -"$have_gas_360": ; preds = %"$out_of_gas_359", %"$have_gas_355" - %"$consume_361" = sub i64 %"$gasrem_357", 20 - store i64 %"$consume_361", i64* @_gasrem, align 8 - %"$zero_362" = load %Uint32, %Uint32* %zero, align 4 - %"$zero_363" = load %Uint32, %Uint32* %zero, align 4 - %"$div_call_364" = call %Uint32 @_div_Uint32(%Uint32 %"$zero_362", %Uint32 %"$zero_363"), !dbg !29 - store %Uint32 %"$div_call_364", %Uint32* %ignore, align 4, !dbg !29 - %"$gasrem_365" = load i64, i64* @_gasrem, align 8 - %"$gascmp_366" = icmp ugt i64 1, %"$gasrem_365" - br i1 %"$gascmp_366", label %"$out_of_gas_367", label %"$have_gas_368" - -"$out_of_gas_367": ; preds = %"$have_gas_360" + br label %"$have_gas_362" + +"$have_gas_362": ; preds = %"$out_of_gas_361", %"$have_gas_357" + %"$consume_363" = sub i64 %"$gasrem_359", 20 + store i64 %"$consume_363", i64* @_gasrem, align 8 + %"$zero_364" = load %Uint32, %Uint32* %zero, align 4 + %"$zero_365" = load %Uint32, %Uint32* %zero, align 4 + %"$div_call_366" = call %Uint32 @_div_Uint32(%Uint32 %"$zero_364", %Uint32 %"$zero_365"), !dbg !74 + store %Uint32 %"$div_call_366", %Uint32* %ignore, align 4, !dbg !74 + %"$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_362" call void @_out_of_gas() - br label %"$have_gas_368" + br label %"$have_gas_370" -"$have_gas_368": ; preds = %"$out_of_gas_367", %"$have_gas_360" - %"$consume_369" = sub i64 %"$gasrem_365", 1 - store i64 %"$consume_369", i64* @_gasrem, align 8 - store [20 x i8] zeroinitializer, [20 x i8]* %"$retval_18", align 1, !dbg !30 - br label %"$matchsucc_325" +"$have_gas_370": ; preds = %"$out_of_gas_369", %"$have_gas_362" + %"$consume_371" = sub i64 %"$gasrem_367", 1 + store i64 %"$consume_371", i64* @_gasrem, align 8 + store [20 x i8] zeroinitializer, [20 x i8]* %"$retval_18", align 1, !dbg !75 + br label %"$matchsucc_327" -"$empty_default_329": ; preds = %"$have_gas_323" - br label %"$matchsucc_325" +"$empty_default_331": ; preds = %"$have_gas_325" + br label %"$matchsucc_327" -"$matchsucc_325": ; preds = %"$have_gas_368", %"$have_gas_337", %"$empty_default_329" - %"$$retval_18_370" = load [20 x i8], [20 x i8]* %"$retval_18", align 1 - store [20 x i8] %"$$retval_18_370", [20 x i8]* %1, align 1 +"$matchsucc_327": ; preds = %"$have_gas_370", %"$have_gas_339", %"$empty_default_331" + %"$$retval_18_372" = load [20 x i8], [20 x i8]* %"$retval_18", align 1 + store [20 x i8] %"$$retval_18_372", [20 x i8]* %1, align 1 ret void } -define internal { void (i8*, [20 x i8]*, %Uint32)*, i8* } @"$fundef_15"(%"$$fundef_15_env_96"* %0, [64 x i8]* %1) !dbg !31 { +define internal { void (i8*, [20 x i8]*, %Uint32)*, i8* } @"$fundef_15"(%"$$fundef_15_env_96"* %0, [64 x i8]* %1) !dbg !76 { entry: + %"$sig_125" = alloca [64 x i8]*, align 8 + store [64 x i8]* %1, [64 x i8]** %"$sig_125", align 8 + call void @llvm.dbg.declare(metadata [64 x i8]** %"$sig_125", metadata !77, metadata !DIExpression()), !dbg !79 %sig = load [64 x i8], [64 x i8]* %1, align 1 - %"$$fundef_15_env_msg_109" = getelementptr inbounds %"$$fundef_15_env_96", %"$$fundef_15_env_96"* %0, i32 0, i32 0 - %"$msg_envload_110" = load %Bystr, %Bystr* %"$$fundef_15_env_msg_109", align 8 + %"$$fundef_15_env_msg_110" = getelementptr inbounds %"$$fundef_15_env_96", %"$$fundef_15_env_96"* %0, i32 0, i32 0 + %"$msg_envload_111" = load %Bystr, %Bystr* %"$$fundef_15_env_msg_110", align 8 %msg = alloca %Bystr, align 8 - store %Bystr %"$msg_envload_110", %Bystr* %msg, align 8 + store %Bystr %"$msg_envload_111", %Bystr* %msg, align 8 %"$retval_16" = alloca { void (i8*, [20 x i8]*, %Uint32)*, i8* }, align 8 - %"$gasrem_111" = load i64, i64* @_gasrem, align 8 - %"$gascmp_112" = icmp ugt i64 1, %"$gasrem_111" - br i1 %"$gascmp_112", label %"$out_of_gas_113", label %"$have_gas_114" + %"$gasrem_112" = load i64, i64* @_gasrem, align 8 + %"$gascmp_113" = icmp ugt i64 1, %"$gasrem_112" + br i1 %"$gascmp_113", label %"$out_of_gas_114", label %"$have_gas_115" -"$out_of_gas_113": ; preds = %entry +"$out_of_gas_114": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_114" - -"$have_gas_114": ; preds = %"$out_of_gas_113", %entry - %"$consume_115" = sub i64 %"$gasrem_111", 1 - store i64 %"$consume_115", i64* @_gasrem, align 8 - %"$$fundef_17_envp_116_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_17_envp_116_salloc" = call i8* @_salloc(i8* %"$$fundef_17_envp_116_load", i64 80) - %"$$fundef_17_envp_116" = bitcast i8* %"$$fundef_17_envp_116_salloc" to %"$$fundef_17_env_95"* - %"$$fundef_17_env_voidp_118" = bitcast %"$$fundef_17_env_95"* %"$$fundef_17_envp_116" to i8* - %"$$fundef_17_cloval_119" = insertvalue { void (i8*, [20 x i8]*, %Uint32)*, i8* } { void (i8*, [20 x i8]*, %Uint32)* bitcast (void (%"$$fundef_17_env_95"*, [20 x i8]*, %Uint32)* @"$fundef_17" to void (i8*, [20 x i8]*, %Uint32)*), i8* undef }, i8* %"$$fundef_17_env_voidp_118", 1 - %"$$fundef_17_env_msg_120" = getelementptr inbounds %"$$fundef_17_env_95", %"$$fundef_17_env_95"* %"$$fundef_17_envp_116", i32 0, i32 0 - %"$msg_121" = load %Bystr, %Bystr* %msg, align 8 - store %Bystr %"$msg_121", %Bystr* %"$$fundef_17_env_msg_120", align 8 - %"$$fundef_17_env_sig_122" = getelementptr inbounds %"$$fundef_17_env_95", %"$$fundef_17_env_95"* %"$$fundef_17_envp_116", i32 0, i32 1 - store [64 x i8] %sig, [64 x i8]* %"$$fundef_17_env_sig_122", align 1 - store { void (i8*, [20 x i8]*, %Uint32)*, i8* } %"$$fundef_17_cloval_119", { void (i8*, [20 x i8]*, %Uint32)*, i8* }* %"$retval_16", align 8, !dbg !32 - %"$$retval_16_123" = load { void (i8*, [20 x i8]*, %Uint32)*, i8* }, { void (i8*, [20 x i8]*, %Uint32)*, i8* }* %"$retval_16", align 8 - ret { void (i8*, [20 x i8]*, %Uint32)*, i8* } %"$$retval_16_123" + br label %"$have_gas_115" + +"$have_gas_115": ; preds = %"$out_of_gas_114", %entry + %"$consume_116" = sub i64 %"$gasrem_112", 1 + store i64 %"$consume_116", i64* @_gasrem, align 8 + %"$$fundef_17_envp_117_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_17_envp_117_salloc" = call i8* @_salloc(i8* %"$$fundef_17_envp_117_load", i64 80) + %"$$fundef_17_envp_117" = bitcast i8* %"$$fundef_17_envp_117_salloc" to %"$$fundef_17_env_95"* + %"$$fundef_17_env_voidp_119" = bitcast %"$$fundef_17_env_95"* %"$$fundef_17_envp_117" to i8* + %"$$fundef_17_cloval_120" = insertvalue { void (i8*, [20 x i8]*, %Uint32)*, i8* } { void (i8*, [20 x i8]*, %Uint32)* bitcast (void (%"$$fundef_17_env_95"*, [20 x i8]*, %Uint32)* @"$fundef_17" to void (i8*, [20 x i8]*, %Uint32)*), i8* undef }, i8* %"$$fundef_17_env_voidp_119", 1 + %"$$fundef_17_env_msg_121" = getelementptr inbounds %"$$fundef_17_env_95", %"$$fundef_17_env_95"* %"$$fundef_17_envp_117", i32 0, i32 0 + %"$msg_122" = load %Bystr, %Bystr* %msg, align 8 + store %Bystr %"$msg_122", %Bystr* %"$$fundef_17_env_msg_121", align 8 + %"$$fundef_17_env_sig_123" = getelementptr inbounds %"$$fundef_17_env_95", %"$$fundef_17_env_95"* %"$$fundef_17_envp_117", i32 0, i32 1 + store [64 x i8] %sig, [64 x i8]* %"$$fundef_17_env_sig_123", align 1 + store { void (i8*, [20 x i8]*, %Uint32)*, i8* } %"$$fundef_17_cloval_120", { void (i8*, [20 x i8]*, %Uint32)*, i8* }* %"$retval_16", align 8, !dbg !80 + %"$$retval_16_124" = load { void (i8*, [20 x i8]*, %Uint32)*, i8* }, { void (i8*, [20 x i8]*, %Uint32)*, i8* }* %"$retval_16", align 8 + ret { void (i8*, [20 x i8]*, %Uint32)*, i8* } %"$$retval_16_124" } -define internal { { void (i8*, [20 x i8]*, %Uint32)*, i8* } (i8*, [64 x i8]*)*, i8* } @"$fundef_13"(%"$$fundef_13_env_97"* %0, %Bystr %1) !dbg !33 { +define internal { { void (i8*, [20 x i8]*, %Uint32)*, i8* } (i8*, [64 x i8]*)*, i8* } @"$fundef_13"(%"$$fundef_13_env_97"* %0, %Bystr %1) !dbg !81 { entry: + %"$msg_109" = alloca %Bystr, align 8 + store %Bystr %1, %Bystr* %"$msg_109", align 8 + call void @llvm.dbg.declare(metadata %Bystr* %"$msg_109", metadata !82, metadata !DIExpression()), !dbg !83 %"$retval_14" = alloca { { void (i8*, [20 x i8]*, %Uint32)*, i8* } (i8*, [64 x i8]*)*, i8* }, align 8 %"$gasrem_98" = load i64, i64* @_gasrem, align 8 %"$gascmp_99" = icmp ugt i64 1, %"$gasrem_98" @@ -790,7 +819,7 @@ entry: %"$$fundef_15_cloval_106" = 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_15_env_96"*, [64 x i8]*)* @"$fundef_15" to { void (i8*, [20 x i8]*, %Uint32)*, i8* } (i8*, [64 x i8]*)*), i8* undef }, i8* %"$$fundef_15_env_voidp_105", 1 %"$$fundef_15_env_msg_107" = getelementptr inbounds %"$$fundef_15_env_96", %"$$fundef_15_env_96"* %"$$fundef_15_envp_103", i32 0, i32 0 store %Bystr %1, %Bystr* %"$$fundef_15_env_msg_107", align 8 - store { { void (i8*, [20 x i8]*, %Uint32)*, i8* } (i8*, [64 x i8]*)*, i8* } %"$$fundef_15_cloval_106", { { void (i8*, [20 x i8]*, %Uint32)*, i8* } (i8*, [64 x i8]*)*, i8* }* %"$retval_14", align 8, !dbg !34 + store { { void (i8*, [20 x i8]*, %Uint32)*, i8* } (i8*, [64 x i8]*)*, i8* } %"$$fundef_15_cloval_106", { { void (i8*, [20 x i8]*, %Uint32)*, i8* } (i8*, [64 x i8]*)*, i8* }* %"$retval_14", align 8, !dbg !84 %"$$retval_14_108" = 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_14", align 8 ret { { void (i8*, [20 x i8]*, %Uint32)*, i8* } (i8*, [64 x i8]*)*, i8* } %"$$retval_14_108" } @@ -799,13 +828,16 @@ declare void @_out_of_gas() declare i8* @_salloc(i8*, i64) +; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn +declare void @llvm.dbg.declare(metadata, metadata, metadata) #0 + declare i64 @_literal_cost(%_TyDescrTy_Typ*, i8*) declare [65 x i8]* @_ecdsa_recover_pk(i8*, %Bystr, [64 x i8]*, %Uint32) declare %Bystr @_to_bystr(i8*, i32, i8*) -; Function Attrs: nofree nosync nounwind readnone speculatable willreturn +; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn declare i64 @llvm.umin.i64(i64, i64) #0 declare %Bystr @_substr_ByStr(i8*, %Bystr, %Uint32, %Uint32) @@ -818,366 +850,376 @@ declare %Uint32 @_div_Uint32(%Uint32, %Uint32) declare [32 x i8]* @_sha256hash(i8*, %_TyDescrTy_Typ*, i8*) -define void @_init_libs() !dbg !35 { +define void @_init_libs() !dbg !85 { entry: - %"$gasrem_434" = load i64, i64* @_gasrem, align 8 - %"$gascmp_435" = icmp ugt i64 5, %"$gasrem_434" - br i1 %"$gascmp_435", label %"$out_of_gas_436", label %"$have_gas_437" + %"$gasrem_438" = load i64, i64* @_gasrem, align 8 + %"$gascmp_439" = icmp ugt i64 5, %"$gasrem_438" + br i1 %"$gascmp_439", label %"$out_of_gas_440", label %"$have_gas_441" -"$out_of_gas_436": ; preds = %entry +"$out_of_gas_440": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_437" + br label %"$have_gas_441" -"$have_gas_437": ; preds = %"$out_of_gas_436", %entry - %"$consume_438" = sub i64 %"$gasrem_434", 5 - store i64 %"$consume_438", i64* @_gasrem, align 8 - store %Int32 { i32 5 }, %Int32* @"$_gas_charge_accrec_lib_5", align 4, !dbg !37 - %"$gasrem_439" = load i64, i64* @_gasrem, align 8 - %"$gascmp_440" = icmp ugt i64 8, %"$gasrem_439" - br i1 %"$gascmp_440", label %"$out_of_gas_441", label %"$have_gas_442" +"$have_gas_441": ; preds = %"$out_of_gas_440", %entry + %"$consume_442" = sub i64 %"$gasrem_438", 5 + store i64 %"$consume_442", i64* @_gasrem, align 8 + store %Int32 { i32 5 }, %Int32* @"$_gas_charge_accrec_lib_5", align 4, !dbg !87 + %"$gasrem_443" = load i64, i64* @_gasrem, align 8 + %"$gascmp_444" = icmp ugt i64 8, %"$gasrem_443" + br i1 %"$gascmp_444", label %"$out_of_gas_445", label %"$have_gas_446" -"$out_of_gas_441": ; preds = %"$have_gas_437" +"$out_of_gas_445": ; preds = %"$have_gas_441" call void @_out_of_gas() - br label %"$have_gas_442" + br label %"$have_gas_446" -"$have_gas_442": ; preds = %"$out_of_gas_441", %"$have_gas_437" - %"$consume_443" = sub i64 %"$gasrem_439", 8 - store i64 %"$consume_443", i64* @_gasrem, align 8 - store %Int32 { i32 8 }, %Int32* @"$_gas_charge_accBoolUtils_0", align 4, !dbg !37 - %"$gasrem_444" = load i64, i64* @_gasrem, align 8 - %"$gascmp_445" = icmp ugt i64 196, %"$gasrem_444" - br i1 %"$gascmp_445", label %"$out_of_gas_446", label %"$have_gas_447" +"$have_gas_446": ; preds = %"$out_of_gas_445", %"$have_gas_441" + %"$consume_447" = sub i64 %"$gasrem_443", 8 + store i64 %"$consume_447", i64* @_gasrem, align 8 + store %Int32 { i32 8 }, %Int32* @"$_gas_charge_accBoolUtils_0", align 4, !dbg !87 + %"$gasrem_448" = load i64, i64* @_gasrem, align 8 + %"$gascmp_449" = icmp ugt i64 196, %"$gasrem_448" + br i1 %"$gascmp_449", label %"$out_of_gas_450", label %"$have_gas_451" -"$out_of_gas_446": ; preds = %"$have_gas_442" +"$out_of_gas_450": ; preds = %"$have_gas_446" call void @_out_of_gas() - br label %"$have_gas_447" + br label %"$have_gas_451" -"$have_gas_447": ; preds = %"$out_of_gas_446", %"$have_gas_442" - %"$consume_448" = sub i64 %"$gasrem_444", 196 - store i64 %"$consume_448", i64* @_gasrem, align 8 - store %Int32 { i32 196 }, %Int32* @"$_gas_charge_accIntUtils_1", align 4, !dbg !37 - %"$gasrem_449" = load i64, i64* @_gasrem, align 8 - %"$gascmp_450" = icmp ugt i64 20, %"$gasrem_449" - br i1 %"$gascmp_450", label %"$out_of_gas_451", label %"$have_gas_452" +"$have_gas_451": ; preds = %"$out_of_gas_450", %"$have_gas_446" + %"$consume_452" = sub i64 %"$gasrem_448", 196 + store i64 %"$consume_452", i64* @_gasrem, align 8 + store %Int32 { i32 196 }, %Int32* @"$_gas_charge_accIntUtils_1", align 4, !dbg !87 + %"$gasrem_453" = load i64, i64* @_gasrem, align 8 + %"$gascmp_454" = icmp ugt i64 20, %"$gasrem_453" + br i1 %"$gascmp_454", label %"$out_of_gas_455", label %"$have_gas_456" -"$out_of_gas_451": ; preds = %"$have_gas_447" +"$out_of_gas_455": ; preds = %"$have_gas_451" call void @_out_of_gas() - br label %"$have_gas_452" + br label %"$have_gas_456" -"$have_gas_452": ; preds = %"$out_of_gas_451", %"$have_gas_447" - %"$consume_453" = sub i64 %"$gasrem_449", 20 - store i64 %"$consume_453", i64* @_gasrem, align 8 - store %Int32 { i32 20 }, %Int32* @"$_gas_charge_accListUtils_2", align 4, !dbg !37 - %"$gasrem_454" = load i64, i64* @_gasrem, align 8 - %"$gascmp_455" = icmp ugt i64 12, %"$gasrem_454" - br i1 %"$gascmp_455", label %"$out_of_gas_456", label %"$have_gas_457" +"$have_gas_456": ; preds = %"$out_of_gas_455", %"$have_gas_451" + %"$consume_457" = sub i64 %"$gasrem_453", 20 + store i64 %"$consume_457", i64* @_gasrem, align 8 + store %Int32 { i32 20 }, %Int32* @"$_gas_charge_accListUtils_2", align 4, !dbg !87 + %"$gasrem_458" = load i64, i64* @_gasrem, align 8 + %"$gascmp_459" = icmp ugt i64 12, %"$gasrem_458" + br i1 %"$gascmp_459", label %"$out_of_gas_460", label %"$have_gas_461" -"$out_of_gas_456": ; preds = %"$have_gas_452" +"$out_of_gas_460": ; preds = %"$have_gas_456" call void @_out_of_gas() - br label %"$have_gas_457" + br label %"$have_gas_461" -"$have_gas_457": ; preds = %"$out_of_gas_456", %"$have_gas_452" - %"$consume_458" = sub i64 %"$gasrem_454", 12 - store i64 %"$consume_458", i64* @_gasrem, align 8 - store %Int32 { i32 12 }, %Int32* @"$_gas_charge_accNatUtils_3", align 4, !dbg !37 - %"$gasrem_459" = load i64, i64* @_gasrem, align 8 - %"$gascmp_460" = icmp ugt i64 2, %"$gasrem_459" - br i1 %"$gascmp_460", label %"$out_of_gas_461", label %"$have_gas_462" +"$have_gas_461": ; preds = %"$out_of_gas_460", %"$have_gas_456" + %"$consume_462" = sub i64 %"$gasrem_458", 12 + store i64 %"$consume_462", i64* @_gasrem, align 8 + store %Int32 { i32 12 }, %Int32* @"$_gas_charge_accNatUtils_3", align 4, !dbg !87 + %"$gasrem_463" = load i64, i64* @_gasrem, align 8 + %"$gascmp_464" = icmp ugt i64 2, %"$gasrem_463" + br i1 %"$gascmp_464", label %"$out_of_gas_465", label %"$have_gas_466" -"$out_of_gas_461": ; preds = %"$have_gas_457" +"$out_of_gas_465": ; preds = %"$have_gas_461" call void @_out_of_gas() - br label %"$have_gas_462" + br label %"$have_gas_466" -"$have_gas_462": ; preds = %"$out_of_gas_461", %"$have_gas_457" - %"$consume_463" = sub i64 %"$gasrem_459", 2 - store i64 %"$consume_463", i64* @_gasrem, align 8 - store %Int32 { i32 2 }, %Int32* @"$_gas_charge_accPairUtils_4", align 4, !dbg !37 +"$have_gas_466": ; preds = %"$out_of_gas_465", %"$have_gas_461" + %"$consume_467" = sub i64 %"$gasrem_463", 2 + store i64 %"$consume_467", i64* @_gasrem, align 8 + store %Int32 { i32 2 }, %Int32* @"$_gas_charge_accPairUtils_4", align 4, !dbg !87 ret void } -define internal %TName_Bool* @_scilla_expr_fun(i8* %0) !dbg !38 { +define internal %TName_Bool* @_scilla_expr_fun(i8* %0) !dbg !88 { entry: %"$expr_12" = alloca %TName_Bool*, 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" + call void @llvm.dbg.declare(metadata %TName_Bool** %"$expr_12", metadata !89, metadata !DIExpression()), !dbg !92 + %"$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_466": ; preds = %entry +"$out_of_gas_470": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_467" + br label %"$have_gas_471" -"$have_gas_467": ; preds = %"$out_of_gas_466", %entry - %"$consume_468" = sub i64 %"$gasrem_464", 1 - store i64 %"$consume_468", i64* @_gasrem, align 8 +"$have_gas_471": ; preds = %"$out_of_gas_470", %entry + %"$consume_472" = sub i64 %"$gasrem_468", 1 + store i64 %"$consume_472", i64* @_gasrem, align 8 %ecrecover = alloca { { { void (i8*, [20 x i8]*, %Uint32)*, i8* } (i8*, [64 x i8]*)*, i8* } (i8*, %Bystr)*, 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" + %"$gasrem_473" = load i64, i64* @_gasrem, align 8 + %"$gascmp_474" = icmp ugt i64 1, %"$gasrem_473" + br i1 %"$gascmp_474", label %"$out_of_gas_475", label %"$have_gas_476" -"$out_of_gas_471": ; preds = %"$have_gas_467" +"$out_of_gas_475": ; preds = %"$have_gas_471" call void @_out_of_gas() - br label %"$have_gas_472" + br label %"$have_gas_476" -"$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 - 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_13_env_97"*, %Bystr)* @"$fundef_13" 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 !39 - %"$gasrem_477" = load i64, i64* @_gasrem, align 8 - %"$gascmp_478" = icmp ugt i64 1, %"$gasrem_477" - br i1 %"$gascmp_478", label %"$out_of_gas_479", label %"$have_gas_480" +"$have_gas_476": ; preds = %"$out_of_gas_475", %"$have_gas_471" + %"$consume_477" = sub i64 %"$gasrem_473", 1 + store i64 %"$consume_477", 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_13_env_97"*, %Bystr)* @"$fundef_13" 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 !93 + %"$gasrem_481" = load i64, i64* @_gasrem, align 8 + %"$gascmp_482" = icmp ugt i64 1, %"$gasrem_481" + br i1 %"$gascmp_482", label %"$out_of_gas_483", label %"$have_gas_484" -"$out_of_gas_479": ; preds = %"$have_gas_472" +"$out_of_gas_483": ; preds = %"$have_gas_476" call void @_out_of_gas() - br label %"$have_gas_480" + br label %"$have_gas_484" -"$have_gas_480": ; preds = %"$out_of_gas_479", %"$have_gas_472" - %"$consume_481" = sub i64 %"$gasrem_477", 1 - store i64 %"$consume_481", i64* @_gasrem, align 8 +"$have_gas_484": ; preds = %"$out_of_gas_483", %"$have_gas_476" + %"$consume_485" = sub i64 %"$gasrem_481", 1 + store i64 %"$consume_485", i64* @_gasrem, align 8 %header_hash = alloca { %Bystr (i8*, %Bystr)*, i8* }, align 8 - %"$gasrem_482" = load i64, i64* @_gasrem, align 8 - %"$gascmp_483" = icmp ugt i64 1, %"$gasrem_482" - br i1 %"$gascmp_483", label %"$out_of_gas_484", label %"$have_gas_485" + %"$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_484": ; preds = %"$have_gas_480" +"$out_of_gas_488": ; preds = %"$have_gas_484" call void @_out_of_gas() - br label %"$have_gas_485" + br label %"$have_gas_489" -"$have_gas_485": ; preds = %"$out_of_gas_484", %"$have_gas_480" - %"$consume_486" = sub i64 %"$gasrem_482", 1 - store i64 %"$consume_486", i64* @_gasrem, align 8 - store { %Bystr (i8*, %Bystr)*, i8* } { %Bystr (i8*, %Bystr)* bitcast (%Bystr (%"$$fundef_19_env_94"*, %Bystr)* @"$fundef_19" to %Bystr (i8*, %Bystr)*), i8* null }, { %Bystr (i8*, %Bystr)*, i8* }* %header_hash, align 8, !dbg !40 - %"$gasrem_490" = load i64, i64* @_gasrem, align 8 - %"$gascmp_491" = icmp ugt i64 1, %"$gasrem_490" - br i1 %"$gascmp_491", label %"$out_of_gas_492", label %"$have_gas_493" +"$have_gas_489": ; preds = %"$out_of_gas_488", %"$have_gas_484" + %"$consume_490" = sub i64 %"$gasrem_486", 1 + store i64 %"$consume_490", i64* @_gasrem, align 8 + store { %Bystr (i8*, %Bystr)*, i8* } { %Bystr (i8*, %Bystr)* bitcast (%Bystr (%"$$fundef_19_env_94"*, %Bystr)* @"$fundef_19" to %Bystr (i8*, %Bystr)*), i8* null }, { %Bystr (i8*, %Bystr)*, i8* }* %header_hash, align 8, !dbg !94 + %"$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_492": ; preds = %"$have_gas_485" +"$out_of_gas_496": ; preds = %"$have_gas_489" call void @_out_of_gas() - br label %"$have_gas_493" + br label %"$have_gas_497" -"$have_gas_493": ; preds = %"$out_of_gas_492", %"$have_gas_485" - %"$consume_494" = sub i64 %"$gasrem_490", 1 - store i64 %"$consume_494", i64* @_gasrem, align 8 +"$have_gas_497": ; preds = %"$out_of_gas_496", %"$have_gas_489" + %"$consume_498" = sub i64 %"$gasrem_494", 1 + store i64 %"$consume_498", i64* @_gasrem, align 8 %sig = alloca [64 x i8], align 1 - %"$gasrem_495" = load i64, i64* @_gasrem, align 8 - %"$gascmp_496" = icmp ugt i64 1, %"$gasrem_495" - br i1 %"$gascmp_496", label %"$out_of_gas_497", label %"$have_gas_498" + call void @llvm.dbg.declare(metadata [64 x i8]* %sig, metadata !95, metadata !DIExpression()), !dbg !96 + %"$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_497": ; preds = %"$have_gas_493" +"$out_of_gas_501": ; preds = %"$have_gas_497" call void @_out_of_gas() - br label %"$have_gas_498" + br label %"$have_gas_502" -"$have_gas_498": ; preds = %"$out_of_gas_497", %"$have_gas_493" - %"$consume_499" = sub i64 %"$gasrem_495", 1 - store i64 %"$consume_499", 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 !41 - %"$gasrem_500" = load i64, i64* @_gasrem, align 8 - %"$gascmp_501" = icmp ugt i64 1, %"$gasrem_500" - br i1 %"$gascmp_501", label %"$out_of_gas_502", label %"$have_gas_503" +"$have_gas_502": ; preds = %"$out_of_gas_501", %"$have_gas_497" + %"$consume_503" = sub i64 %"$gasrem_499", 1 + store i64 %"$consume_503", 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 !97 + %"$gasrem_504" = load i64, i64* @_gasrem, align 8 + %"$gascmp_505" = icmp ugt i64 1, %"$gasrem_504" + br i1 %"$gascmp_505", label %"$out_of_gas_506", label %"$have_gas_507" -"$out_of_gas_502": ; preds = %"$have_gas_498" +"$out_of_gas_506": ; preds = %"$have_gas_502" call void @_out_of_gas() - br label %"$have_gas_503" + br label %"$have_gas_507" -"$have_gas_503": ; preds = %"$out_of_gas_502", %"$have_gas_498" - %"$consume_504" = sub i64 %"$gasrem_500", 1 - store i64 %"$consume_504", i64* @_gasrem, align 8 +"$have_gas_507": ; preds = %"$out_of_gas_506", %"$have_gas_502" + %"$consume_508" = sub i64 %"$gasrem_504", 1 + store i64 %"$consume_508", i64* @_gasrem, align 8 %msg = alloca [1591 x i8], align 1 - %"$gasrem_505" = load i64, i64* @_gasrem, align 8 - %"$gascmp_506" = icmp ugt i64 1, %"$gasrem_505" - br i1 %"$gascmp_506", label %"$out_of_gas_507", label %"$have_gas_508" + call void @llvm.dbg.declare(metadata [1591 x i8]* %msg, metadata !98, metadata !DIExpression()), !dbg !100 + %"$gasrem_509" = load i64, i64* @_gasrem, align 8 + %"$gascmp_510" = icmp ugt i64 1, %"$gasrem_509" + br i1 %"$gascmp_510", label %"$out_of_gas_511", label %"$have_gas_512" -"$out_of_gas_507": ; preds = %"$have_gas_503" +"$out_of_gas_511": ; preds = %"$have_gas_507" call void @_out_of_gas() - br label %"$have_gas_508" + br label %"$have_gas_512" -"$have_gas_508": ; preds = %"$out_of_gas_507", %"$have_gas_503" - %"$consume_509" = sub i64 %"$gasrem_505", 1 - store i64 %"$consume_509", 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 !42 - %"$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" +"$have_gas_512": ; preds = %"$out_of_gas_511", %"$have_gas_507" + %"$consume_513" = sub i64 %"$gasrem_509", 1 + store i64 %"$consume_513", 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 !101 + %"$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_512": ; preds = %"$have_gas_508" +"$out_of_gas_516": ; preds = %"$have_gas_512" call void @_out_of_gas() - br label %"$have_gas_513" + br label %"$have_gas_517" -"$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 +"$have_gas_517": ; preds = %"$out_of_gas_516", %"$have_gas_512" + %"$consume_518" = sub i64 %"$gasrem_514", 1 + store i64 %"$consume_518", i64* @_gasrem, align 8 %addr_gold = alloca [20 x i8], align 1 - %"$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" + call void @llvm.dbg.declare(metadata [20 x i8]* %addr_gold, metadata !102, metadata !DIExpression()), !dbg !103 + %"$gasrem_519" = load i64, i64* @_gasrem, align 8 + %"$gascmp_520" = icmp ugt i64 1, %"$gasrem_519" + br i1 %"$gascmp_520", label %"$out_of_gas_521", label %"$have_gas_522" -"$out_of_gas_517": ; preds = %"$have_gas_513" +"$out_of_gas_521": ; preds = %"$have_gas_517" call void @_out_of_gas() - br label %"$have_gas_518" + br label %"$have_gas_522" -"$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 [20 x i8] c"\A4*N\85\03M[\EB\C2%t=\A4\00\CCL\0ECrz", [20 x i8]* %addr_gold, align 1, !dbg !43 - %"$gasrem_520" = load i64, i64* @_gasrem, align 8 - %"$gascmp_521" = icmp ugt i64 1, %"$gasrem_520" - br i1 %"$gascmp_521", label %"$out_of_gas_522", label %"$have_gas_523" +"$have_gas_522": ; preds = %"$out_of_gas_521", %"$have_gas_517" + %"$consume_523" = sub i64 %"$gasrem_519", 1 + store i64 %"$consume_523", 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 !104 + %"$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_522": ; preds = %"$have_gas_518" +"$out_of_gas_526": ; preds = %"$have_gas_522" call void @_out_of_gas() - br label %"$have_gas_523" + br label %"$have_gas_527" -"$have_gas_523": ; preds = %"$out_of_gas_522", %"$have_gas_518" - %"$consume_524" = sub i64 %"$gasrem_520", 1 - store i64 %"$consume_524", i64* @_gasrem, align 8 +"$have_gas_527": ; preds = %"$out_of_gas_526", %"$have_gas_522" + %"$consume_528" = sub i64 %"$gasrem_524", 1 + store i64 %"$consume_528", i64* @_gasrem, align 8 %msg_bs = alloca %Bystr, align 8 - %"$gasrem_525" = load i64, i64* @_gasrem, align 8 - %"$gascmp_526" = icmp ugt i64 1591, %"$gasrem_525" - br i1 %"$gascmp_526", label %"$out_of_gas_527", label %"$have_gas_528" + call void @llvm.dbg.declare(metadata %Bystr* %msg_bs, metadata !105, metadata !DIExpression()), !dbg !106 + %"$gasrem_529" = load i64, i64* @_gasrem, align 8 + %"$gascmp_530" = icmp ugt i64 1591, %"$gasrem_529" + br i1 %"$gascmp_530", label %"$out_of_gas_531", label %"$have_gas_532" -"$out_of_gas_527": ; preds = %"$have_gas_523" +"$out_of_gas_531": ; preds = %"$have_gas_527" call void @_out_of_gas() - br label %"$have_gas_528" - -"$have_gas_528": ; preds = %"$out_of_gas_527", %"$have_gas_523" - %"$consume_529" = sub i64 %"$gasrem_525", 1591 - store i64 %"$consume_529", i64* @_gasrem, align 8 - %"$execptr_load_530" = load i8*, i8** @_execptr, align 8 - %"$to_bystr_msg_531" = alloca [1591 x i8], align 1 - %"$msg_532" = load [1591 x i8], [1591 x i8]* %msg, align 1 - store [1591 x i8] %"$msg_532", [1591 x i8]* %"$to_bystr_msg_531", align 1 - %"$$to_bystr_msg_531_533" = bitcast [1591 x i8]* %"$to_bystr_msg_531" to i8* - %"$to_bystr_call_534" = call %Bystr @_to_bystr(i8* %"$execptr_load_530", i32 1591, i8* %"$$to_bystr_msg_531_533"), !dbg !44 - store %Bystr %"$to_bystr_call_534", %Bystr* %msg_bs, align 8, !dbg !44 - %"$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_537": ; preds = %"$have_gas_528" + br label %"$have_gas_532" + +"$have_gas_532": ; preds = %"$out_of_gas_531", %"$have_gas_527" + %"$consume_533" = sub i64 %"$gasrem_529", 1591 + store i64 %"$consume_533", i64* @_gasrem, align 8 + %"$execptr_load_534" = load i8*, i8** @_execptr, align 8 + %"$to_bystr_msg_535" = alloca [1591 x i8], align 1 + %"$msg_536" = load [1591 x i8], [1591 x i8]* %msg, align 1 + store [1591 x i8] %"$msg_536", [1591 x i8]* %"$to_bystr_msg_535", align 1 + %"$$to_bystr_msg_535_537" = bitcast [1591 x i8]* %"$to_bystr_msg_535" to i8* + %"$to_bystr_call_538" = call %Bystr @_to_bystr(i8* %"$execptr_load_534", i32 1591, i8* %"$$to_bystr_msg_535_537"), !dbg !107 + store %Bystr %"$to_bystr_call_538", %Bystr* %msg_bs, align 8, !dbg !107 + %"$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_532" call void @_out_of_gas() - br label %"$have_gas_538" + br label %"$have_gas_542" -"$have_gas_538": ; preds = %"$out_of_gas_537", %"$have_gas_528" - %"$consume_539" = sub i64 %"$gasrem_535", 1 - store i64 %"$consume_539", i64* @_gasrem, align 8 +"$have_gas_542": ; preds = %"$out_of_gas_541", %"$have_gas_532" + %"$consume_543" = sub i64 %"$gasrem_539", 1 + store i64 %"$consume_543", i64* @_gasrem, align 8 %msg_hashed = alloca %Bystr, 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" + call void @llvm.dbg.declare(metadata %Bystr* %msg_hashed, metadata !108, metadata !DIExpression()), !dbg !109 + %"$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_542": ; preds = %"$have_gas_538" +"$out_of_gas_546": ; preds = %"$have_gas_542" call void @_out_of_gas() - br label %"$have_gas_543" + br label %"$have_gas_547" -"$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 +"$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 %"$header_hash_8" = alloca %Bystr, align 8 - %"$header_hash_545" = load { %Bystr (i8*, %Bystr)*, i8* }, { %Bystr (i8*, %Bystr)*, i8* }* %header_hash, align 8 - %"$header_hash_fptr_546" = extractvalue { %Bystr (i8*, %Bystr)*, i8* } %"$header_hash_545", 0 - %"$header_hash_envptr_547" = extractvalue { %Bystr (i8*, %Bystr)*, i8* } %"$header_hash_545", 1 - %"$msg_bs_548" = load %Bystr, %Bystr* %msg_bs, align 8 - %"$header_hash_call_549" = call %Bystr %"$header_hash_fptr_546"(i8* %"$header_hash_envptr_547", %Bystr %"$msg_bs_548"), !dbg !45 - store %Bystr %"$header_hash_call_549", %Bystr* %"$header_hash_8", align 8, !dbg !45 - %"$$header_hash_8_550" = load %Bystr, %Bystr* %"$header_hash_8", align 8 - store %Bystr %"$$header_hash_8_550", %Bystr* %msg_hashed, align 8, !dbg !45 - %"$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_553": ; preds = %"$have_gas_543" + call void @llvm.dbg.declare(metadata %Bystr* %"$header_hash_8", metadata !110, metadata !DIExpression()), !dbg !111 + %"$header_hash_549" = load { %Bystr (i8*, %Bystr)*, i8* }, { %Bystr (i8*, %Bystr)*, i8* }* %header_hash, align 8 + %"$header_hash_fptr_550" = extractvalue { %Bystr (i8*, %Bystr)*, i8* } %"$header_hash_549", 0 + %"$header_hash_envptr_551" = extractvalue { %Bystr (i8*, %Bystr)*, i8* } %"$header_hash_549", 1 + %"$msg_bs_552" = load %Bystr, %Bystr* %msg_bs, align 8 + %"$header_hash_call_553" = call %Bystr %"$header_hash_fptr_550"(i8* %"$header_hash_envptr_551", %Bystr %"$msg_bs_552"), !dbg !111 + store %Bystr %"$header_hash_call_553", %Bystr* %"$header_hash_8", align 8, !dbg !111 + %"$$header_hash_8_554" = load %Bystr, %Bystr* %"$header_hash_8", align 8 + store %Bystr %"$$header_hash_8_554", %Bystr* %msg_hashed, align 8, !dbg !111 + %"$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" + +"$out_of_gas_557": ; preds = %"$have_gas_547" call void @_out_of_gas() - br label %"$have_gas_554" + br label %"$have_gas_558" -"$have_gas_554": ; preds = %"$out_of_gas_553", %"$have_gas_543" - %"$consume_555" = sub i64 %"$gasrem_551", 1 - store i64 %"$consume_555", i64* @_gasrem, align 8 +"$have_gas_558": ; preds = %"$out_of_gas_557", %"$have_gas_547" + %"$consume_559" = sub i64 %"$gasrem_555", 1 + store i64 %"$consume_559", i64* @_gasrem, align 8 %recid = alloca %Uint32, 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" + call void @llvm.dbg.declare(metadata %Uint32* %recid, metadata !112, metadata !DIExpression()), !dbg !113 + %"$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_558": ; preds = %"$have_gas_554" +"$out_of_gas_562": ; preds = %"$have_gas_558" call void @_out_of_gas() - br label %"$have_gas_559" + br label %"$have_gas_563" -"$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 %Uint32 zeroinitializer, %Uint32* %recid, align 4, !dbg !46 - %"$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" +"$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 zeroinitializer, %Uint32* %recid, align 4, !dbg !114 + %"$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_563": ; preds = %"$have_gas_559" +"$out_of_gas_567": ; preds = %"$have_gas_563" call void @_out_of_gas() - br label %"$have_gas_564" + br label %"$have_gas_568" -"$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 +"$have_gas_568": ; preds = %"$out_of_gas_567", %"$have_gas_563" + %"$consume_569" = sub i64 %"$gasrem_565", 1 + store i64 %"$consume_569", i64* @_gasrem, align 8 %addr_computed = alloca [20 x i8], align 1 - %"$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" + call void @llvm.dbg.declare(metadata [20 x i8]* %addr_computed, metadata !115, metadata !DIExpression()), !dbg !116 + %"$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" -"$out_of_gas_568": ; preds = %"$have_gas_564" +"$out_of_gas_572": ; preds = %"$have_gas_568" call void @_out_of_gas() - br label %"$have_gas_569" + br label %"$have_gas_573" -"$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 +"$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 %"$ecrecover_9" = alloca { { void (i8*, [20 x i8]*, %Uint32)*, i8* } (i8*, [64 x i8]*)*, i8* }, align 8 - %"$ecrecover_571" = 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_572" = extractvalue { { { void (i8*, [20 x i8]*, %Uint32)*, i8* } (i8*, [64 x i8]*)*, i8* } (i8*, %Bystr)*, i8* } %"$ecrecover_571", 0 - %"$ecrecover_envptr_573" = extractvalue { { { void (i8*, [20 x i8]*, %Uint32)*, i8* } (i8*, [64 x i8]*)*, i8* } (i8*, %Bystr)*, i8* } %"$ecrecover_571", 1 - %"$msg_hashed_574" = load %Bystr, %Bystr* %msg_hashed, align 8 - %"$ecrecover_call_575" = call { { void (i8*, [20 x i8]*, %Uint32)*, i8* } (i8*, [64 x i8]*)*, i8* } %"$ecrecover_fptr_572"(i8* %"$ecrecover_envptr_573", %Bystr %"$msg_hashed_574"), !dbg !47 - store { { void (i8*, [20 x i8]*, %Uint32)*, i8* } (i8*, [64 x i8]*)*, i8* } %"$ecrecover_call_575", { { void (i8*, [20 x i8]*, %Uint32)*, i8* } (i8*, [64 x i8]*)*, i8* }* %"$ecrecover_9", align 8, !dbg !47 + %"$ecrecover_575" = 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_576" = extractvalue { { { void (i8*, [20 x i8]*, %Uint32)*, i8* } (i8*, [64 x i8]*)*, i8* } (i8*, %Bystr)*, i8* } %"$ecrecover_575", 0 + %"$ecrecover_envptr_577" = extractvalue { { { void (i8*, [20 x i8]*, %Uint32)*, i8* } (i8*, [64 x i8]*)*, i8* } (i8*, %Bystr)*, i8* } %"$ecrecover_575", 1 + %"$msg_hashed_578" = load %Bystr, %Bystr* %msg_hashed, align 8 + %"$ecrecover_call_579" = call { { void (i8*, [20 x i8]*, %Uint32)*, i8* } (i8*, [64 x i8]*)*, i8* } %"$ecrecover_fptr_576"(i8* %"$ecrecover_envptr_577", %Bystr %"$msg_hashed_578"), !dbg !117 + store { { void (i8*, [20 x i8]*, %Uint32)*, i8* } (i8*, [64 x i8]*)*, i8* } %"$ecrecover_call_579", { { void (i8*, [20 x i8]*, %Uint32)*, i8* } (i8*, [64 x i8]*)*, i8* }* %"$ecrecover_9", align 8, !dbg !117 %"$ecrecover_10" = alloca { void (i8*, [20 x i8]*, %Uint32)*, i8* }, align 8 - %"$$ecrecover_9_576" = 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_9", align 8 - %"$$ecrecover_9_fptr_577" = extractvalue { { void (i8*, [20 x i8]*, %Uint32)*, i8* } (i8*, [64 x i8]*)*, i8* } %"$$ecrecover_9_576", 0 - %"$$ecrecover_9_envptr_578" = extractvalue { { void (i8*, [20 x i8]*, %Uint32)*, i8* } (i8*, [64 x i8]*)*, i8* } %"$$ecrecover_9_576", 1 - %"$$ecrecover_9_sig_579" = alloca [64 x i8], align 1 - %"$sig_580" = load [64 x i8], [64 x i8]* %sig, align 1 - store [64 x i8] %"$sig_580", [64 x i8]* %"$$ecrecover_9_sig_579", align 1 - %"$$ecrecover_9_call_581" = call { void (i8*, [20 x i8]*, %Uint32)*, i8* } %"$$ecrecover_9_fptr_577"(i8* %"$$ecrecover_9_envptr_578", [64 x i8]* %"$$ecrecover_9_sig_579"), !dbg !47 - store { void (i8*, [20 x i8]*, %Uint32)*, i8* } %"$$ecrecover_9_call_581", { void (i8*, [20 x i8]*, %Uint32)*, i8* }* %"$ecrecover_10", align 8, !dbg !47 + %"$$ecrecover_9_580" = 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_9", align 8 + %"$$ecrecover_9_fptr_581" = extractvalue { { void (i8*, [20 x i8]*, %Uint32)*, i8* } (i8*, [64 x i8]*)*, i8* } %"$$ecrecover_9_580", 0 + %"$$ecrecover_9_envptr_582" = extractvalue { { void (i8*, [20 x i8]*, %Uint32)*, i8* } (i8*, [64 x i8]*)*, i8* } %"$$ecrecover_9_580", 1 + %"$$ecrecover_9_sig_583" = alloca [64 x i8], align 1 + %"$sig_584" = load [64 x i8], [64 x i8]* %sig, align 1 + store [64 x i8] %"$sig_584", [64 x i8]* %"$$ecrecover_9_sig_583", align 1 + %"$$ecrecover_9_call_585" = call { void (i8*, [20 x i8]*, %Uint32)*, i8* } %"$$ecrecover_9_fptr_581"(i8* %"$$ecrecover_9_envptr_582", [64 x i8]* %"$$ecrecover_9_sig_583"), !dbg !117 + store { void (i8*, [20 x i8]*, %Uint32)*, i8* } %"$$ecrecover_9_call_585", { void (i8*, [20 x i8]*, %Uint32)*, i8* }* %"$ecrecover_10", align 8, !dbg !117 %"$ecrecover_11" = alloca [20 x i8], align 1 - %"$$ecrecover_10_582" = load { void (i8*, [20 x i8]*, %Uint32)*, i8* }, { void (i8*, [20 x i8]*, %Uint32)*, i8* }* %"$ecrecover_10", align 8 - %"$$ecrecover_10_fptr_583" = extractvalue { void (i8*, [20 x i8]*, %Uint32)*, i8* } %"$$ecrecover_10_582", 0 - %"$$ecrecover_10_envptr_584" = extractvalue { void (i8*, [20 x i8]*, %Uint32)*, i8* } %"$$ecrecover_10_582", 1 - %"$recid_585" = load %Uint32, %Uint32* %recid, align 4 - %"$$ecrecover_10_retalloca_586" = alloca [20 x i8], align 1 - call void %"$$ecrecover_10_fptr_583"(i8* %"$$ecrecover_10_envptr_584", [20 x i8]* %"$$ecrecover_10_retalloca_586", %Uint32 %"$recid_585"), !dbg !47 - %"$$ecrecover_10_ret_587" = load [20 x i8], [20 x i8]* %"$$ecrecover_10_retalloca_586", align 1 - store [20 x i8] %"$$ecrecover_10_ret_587", [20 x i8]* %"$ecrecover_11", align 1, !dbg !47 - %"$$ecrecover_11_588" = load [20 x i8], [20 x i8]* %"$ecrecover_11", align 1 - store [20 x i8] %"$$ecrecover_11_588", [20 x i8]* %addr_computed, align 1, !dbg !47 - %"$gasrem_589" = load i64, i64* @_gasrem, align 8 - %"$gascmp_590" = icmp ugt i64 20, %"$gasrem_589" - br i1 %"$gascmp_590", label %"$out_of_gas_591", label %"$have_gas_592" - -"$out_of_gas_591": ; preds = %"$have_gas_569" + call void @llvm.dbg.declare(metadata [20 x i8]* %"$ecrecover_11", metadata !118, metadata !DIExpression()), !dbg !117 + %"$$ecrecover_10_586" = load { void (i8*, [20 x i8]*, %Uint32)*, i8* }, { void (i8*, [20 x i8]*, %Uint32)*, i8* }* %"$ecrecover_10", align 8 + %"$$ecrecover_10_fptr_587" = extractvalue { void (i8*, [20 x i8]*, %Uint32)*, i8* } %"$$ecrecover_10_586", 0 + %"$$ecrecover_10_envptr_588" = extractvalue { void (i8*, [20 x i8]*, %Uint32)*, i8* } %"$$ecrecover_10_586", 1 + %"$recid_589" = load %Uint32, %Uint32* %recid, align 4 + %"$$ecrecover_10_retalloca_590" = alloca [20 x i8], align 1 + call void %"$$ecrecover_10_fptr_587"(i8* %"$$ecrecover_10_envptr_588", [20 x i8]* %"$$ecrecover_10_retalloca_590", %Uint32 %"$recid_589"), !dbg !117 + %"$$ecrecover_10_ret_591" = load [20 x i8], [20 x i8]* %"$$ecrecover_10_retalloca_590", align 1 + store [20 x i8] %"$$ecrecover_10_ret_591", [20 x i8]* %"$ecrecover_11", align 1, !dbg !117 + %"$$ecrecover_11_592" = load [20 x i8], [20 x i8]* %"$ecrecover_11", align 1 + store [20 x i8] %"$$ecrecover_11_592", [20 x i8]* %addr_computed, align 1, !dbg !117 + %"$gasrem_593" = load i64, i64* @_gasrem, align 8 + %"$gascmp_594" = icmp ugt i64 20, %"$gasrem_593" + br i1 %"$gascmp_594", label %"$out_of_gas_595", label %"$have_gas_596" + +"$out_of_gas_595": ; preds = %"$have_gas_573" call void @_out_of_gas() - br label %"$have_gas_592" - -"$have_gas_592": ; preds = %"$out_of_gas_591", %"$have_gas_569" - %"$consume_593" = sub i64 %"$gasrem_589", 20 - store i64 %"$consume_593", i64* @_gasrem, align 8 - %"$execptr_load_594" = load i8*, i8** @_execptr, align 8 - %"$eq_addr_computed_595" = alloca [20 x i8], align 1 - %"$addr_computed_596" = load [20 x i8], [20 x i8]* %addr_computed, align 1 - store [20 x i8] %"$addr_computed_596", [20 x i8]* %"$eq_addr_computed_595", align 1 - %"$$eq_addr_computed_595_597" = bitcast [20 x i8]* %"$eq_addr_computed_595" to i8* - %"$eq_addr_gold_598" = alloca [20 x i8], align 1 - %"$addr_gold_599" = load [20 x i8], [20 x i8]* %addr_gold, align 1 - store [20 x i8] %"$addr_gold_599", [20 x i8]* %"$eq_addr_gold_598", align 1 - %"$$eq_addr_gold_598_600" = bitcast [20 x i8]* %"$eq_addr_gold_598" to i8* - %"$eq_call_601" = call %TName_Bool* @_eq_ByStrX(i8* %"$execptr_load_594", i32 20, i8* %"$$eq_addr_computed_595_597", i8* %"$$eq_addr_gold_598_600"), !dbg !48 - store %TName_Bool* %"$eq_call_601", %TName_Bool** %"$expr_12", align 8, !dbg !48 - %"$$expr_12_603" = load %TName_Bool*, %TName_Bool** %"$expr_12", align 8 - ret %TName_Bool* %"$$expr_12_603" + br label %"$have_gas_596" + +"$have_gas_596": ; preds = %"$out_of_gas_595", %"$have_gas_573" + %"$consume_597" = sub i64 %"$gasrem_593", 20 + store i64 %"$consume_597", i64* @_gasrem, align 8 + %"$execptr_load_598" = load i8*, i8** @_execptr, align 8 + %"$eq_addr_computed_599" = alloca [20 x i8], align 1 + %"$addr_computed_600" = load [20 x i8], [20 x i8]* %addr_computed, align 1 + store [20 x i8] %"$addr_computed_600", [20 x i8]* %"$eq_addr_computed_599", align 1 + %"$$eq_addr_computed_599_601" = bitcast [20 x i8]* %"$eq_addr_computed_599" to i8* + %"$eq_addr_gold_602" = alloca [20 x i8], align 1 + %"$addr_gold_603" = load [20 x i8], [20 x i8]* %addr_gold, align 1 + store [20 x i8] %"$addr_gold_603", [20 x i8]* %"$eq_addr_gold_602", align 1 + %"$$eq_addr_gold_602_604" = bitcast [20 x i8]* %"$eq_addr_gold_602" to i8* + %"$eq_call_605" = call %TName_Bool* @_eq_ByStrX(i8* %"$execptr_load_598", i32 20, i8* %"$$eq_addr_computed_599_601", i8* %"$$eq_addr_gold_602_604"), !dbg !119 + store %TName_Bool* %"$eq_call_605", %TName_Bool** %"$expr_12", align 8, !dbg !119 + %"$$expr_12_607" = load %TName_Bool*, %TName_Bool** %"$expr_12", align 8 + ret %TName_Bool* %"$$expr_12_607" } declare %TName_Bool* @_eq_ByStrX(i8*, i32, i8*, i8*) @@ -1186,64 +1228,135 @@ declare void @_print_scilla_val(i8*, %_TyDescrTy_Typ*, i8*) define void @scilla_main() { entry: - %"$exprval_604" = call %TName_Bool* @_scilla_expr_fun(i8* null) - %"$memvoidcast_605" = bitcast %TName_Bool* %"$exprval_604" to i8* - %"$execptr_load_606" = load i8*, i8** @_execptr, align 8 - call void @_print_scilla_val(i8* %"$execptr_load_606", %_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_65", i8* %"$memvoidcast_605") + %"$exprval_608" = call %TName_Bool* @_scilla_expr_fun(i8* null) + %"$memvoidcast_609" = bitcast %TName_Bool* %"$exprval_608" to i8* + %"$execptr_load_610" = load i8*, i8** @_execptr, align 8 + call void @_print_scilla_val(i8* %"$execptr_load_610", %_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_65", i8* %"$memvoidcast_609") ret void } -attributes #0 = { nofree nosync nounwind readnone speculatable willreturn } +attributes #0 = { nocallback nofree nosync nounwind readnone speculatable willreturn } !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) +!1 = distinct !DICompileUnit(language: DW_LANG_C89, file: !2, producer: "Scilla Compiler", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false) !2 = !DIFile(filename: "builtin-ecdsa_recover.scilexp", directory: "codegen/expr") -!3 = !{} -!4 = distinct !DISubprogram(name: "$fundef_19", linkageName: "$fundef_19", 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_17", linkageName: "$fundef_17", scope: !2, file: !2, line: 5, type: !5, scopeLine: 5, 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) -!15 = !DILocation(line: 8, column: 17, scope: !11) -!16 = !DILocation(line: 9, column: 15, scope: !11) -!17 = !DILocation(line: 10, column: 18, scope: !11) -!18 = !DILocation(line: 11, column: 21, scope: !11) -!19 = !DILocation(line: 12, column: 15, scope: !11) -!20 = !DILocation(line: 13, column: 15, scope: !11) -!21 = !DILocation(line: 14, column: 19, scope: !11) -!22 = !DILocation(line: 15, column: 20, scope: !11) -!23 = !DILocation(line: 16, column: 5, scope: !11) -!24 = !DILocation(line: 18, column: 7, scope: !25) -!25 = distinct !DILexicalBlock(scope: !26, file: !2, line: 17, column: 7) -!26 = distinct !DILexicalBlock(scope: !11, file: !2, line: 16, column: 5) -!27 = !DILocation(line: 20, column: 18, scope: !28) -!28 = distinct !DILexicalBlock(scope: !26, file: !2, line: 19, column: 7) -!29 = !DILocation(line: 21, column: 20, scope: !28) -!30 = !DILocation(line: 22, column: 7, scope: !28) -!31 = distinct !DISubprogram(name: "$fundef_15", linkageName: "$fundef_15", scope: !2, file: !2, line: 4, type: !5, scopeLine: 4, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!32 = !DILocation(line: 5, column: 5, scope: !31) -!33 = distinct !DISubprogram(name: "$fundef_13", linkageName: "$fundef_13", scope: !2, file: !2, line: 3, type: !5, scopeLine: 3, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!34 = !DILocation(line: 4, column: 3, scope: !33) -!35 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !36, file: !36, type: !5, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!36 = !DIFile(filename: ".", directory: ".") -!37 = !DILocation(line: 0, scope: !35) -!38 = 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) -!39 = !DILocation(line: 3, column: 3, scope: !38) -!40 = !DILocation(line: 28, column: 5, scope: !38) -!41 = !DILocation(line: 33, column: 11, scope: !38) -!42 = !DILocation(line: 34, column: 11, scope: !38) -!43 = !DILocation(line: 36, column: 17, scope: !38) -!44 = !DILocation(line: 37, column: 14, scope: !38) -!45 = !DILocation(line: 38, column: 18, scope: !38) -!46 = !DILocation(line: 39, column: 13, scope: !38) -!47 = !DILocation(line: 41, column: 21, scope: !38) -!48 = !DILocation(line: 42, column: 1, scope: !38) +!3 = distinct !DISubprogram(name: "$fundef_19", linkageName: "$fundef_19", scope: !2, file: !2, line: 28, type: !4, scopeLine: 28, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!4 = !DISubroutineType(types: !5) +!5 = !{!6} +!6 = !DIBasicType(tag: DW_TAG_unspecified_type, name: "void") +!7 = !{} +!8 = !DILocalVariable(name: "header", scope: !3, file: !2, line: 27, type: !9) +!9 = !DIBasicType(name: "ByStr", size: 16) +!10 = !DILocation(line: 27, column: 8, scope: !3) +!11 = !DILocalVariable(name: "$retval_20", scope: !3, file: !2, line: 28, type: !9) +!12 = !DILocation(line: 28, column: 5, scope: !3) +!13 = !DILocalVariable(name: "h1", scope: !3, file: !2, line: 28, type: !14) +!14 = !DIBasicType(name: "ByStr32", size: 32) +!15 = !DILocation(line: 28, column: 9, scope: !3) +!16 = !DILocation(line: 28, column: 14, scope: !3) +!17 = !DILocalVariable(name: "h2", scope: !3, file: !2, line: 29, type: !14) +!18 = !DILocation(line: 29, column: 9, scope: !3) +!19 = !DILocation(line: 29, column: 14, scope: !3) +!20 = !DILocation(line: 30, column: 5, scope: !3) +!21 = distinct !DISubprogram(name: "$fundef_17", linkageName: "$fundef_17", scope: !2, file: !2, line: 5, type: !4, scopeLine: 5, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!22 = !DILocalVariable(name: "recid", scope: !21, file: !2, line: 4, type: !23) +!23 = !DIBasicType(name: "Uint32", size: 4) +!24 = !DILocation(line: 4, column: 8, scope: !21) +!25 = !DILocalVariable(name: "$retval_18", scope: !21, file: !2, line: 5, type: !26) +!26 = !DIBasicType(name: "ByStr20", size: 20) +!27 = !DILocation(line: 5, column: 5, scope: !21) +!28 = !DILocalVariable(name: "pk", scope: !21, file: !2, line: 5, type: !29) +!29 = !DIBasicType(name: "ByStr65", size: 65) +!30 = !DILocation(line: 5, column: 9, scope: !21) +!31 = !DILocation(line: 5, column: 14, scope: !21) +!32 = !DILocalVariable(name: "pos", scope: !21, file: !2, line: 6, type: !23) +!33 = !DILocation(line: 6, column: 9, scope: !21) +!34 = !DILocation(line: 6, column: 15, scope: !21) +!35 = !DILocalVariable(name: "len", scope: !21, file: !2, line: 7, type: !23) +!36 = !DILocation(line: 7, column: 9, scope: !21) +!37 = !DILocation(line: 7, column: 15, scope: !21) +!38 = !DILocalVariable(name: "pk_bs", scope: !21, file: !2, line: 8, type: !9) +!39 = !DILocation(line: 8, column: 9, scope: !21) +!40 = !DILocation(line: 8, column: 17, scope: !21) +!41 = !DILocalVariable(name: "pk_", scope: !21, file: !2, line: 9, type: !9) +!42 = !DILocation(line: 9, column: 9, scope: !21) +!43 = !DILocation(line: 9, column: 15, scope: !21) +!44 = !DILocalVariable(name: "pkHash", scope: !21, file: !2, line: 10, type: !14) +!45 = !DILocation(line: 10, column: 9, scope: !21) +!46 = !DILocation(line: 10, column: 18, scope: !21) +!47 = !DILocalVariable(name: "pkHash_bs", scope: !21, file: !2, line: 11, type: !9) +!48 = !DILocation(line: 11, column: 9, scope: !21) +!49 = !DILocation(line: 11, column: 21, scope: !21) +!50 = !DILocalVariable(name: "$pos_6", scope: !21, file: !2, line: 12, type: !23) +!51 = !DILocation(line: 12, column: 9, scope: !21) +!52 = !DILocation(line: 12, column: 15, scope: !21) +!53 = !DILocalVariable(name: "$len_7", scope: !21, file: !2, line: 13, type: !23) +!54 = !DILocation(line: 13, column: 9, scope: !21) +!55 = !DILocation(line: 13, column: 15, scope: !21) +!56 = !DILocalVariable(name: "addr_bs", scope: !21, file: !2, line: 14, type: !9) +!57 = !DILocation(line: 14, column: 9, scope: !21) +!58 = !DILocation(line: 14, column: 19, scope: !21) +!59 = !DILocalVariable(name: "addr_opt", scope: !21, file: !2, line: 15, type: !60) +!60 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "Option (ByStr20)", baseType: !61, size: 8, align: 8, dwarfAddressSpace: 0) +!61 = !DIBasicType(name: "Option (ByStr20)", size: 8) +!62 = !DILocation(line: 15, column: 9, scope: !21) +!63 = !DILocation(line: 15, column: 20, scope: !21) +!64 = !DILocation(line: 16, column: 5, scope: !21) +!65 = !DILocation(line: 18, column: 7, scope: !66) +!66 = distinct !DILexicalBlock(scope: !67, file: !2, line: 17, column: 7) +!67 = distinct !DILexicalBlock(scope: !21, file: !2, line: 16, column: 5) +!68 = !DILocalVariable(name: "zero", scope: !69, file: !2, line: 20, type: !23) +!69 = distinct !DILexicalBlock(scope: !67, file: !2, line: 19, column: 7) +!70 = !DILocation(line: 20, column: 11, scope: !69) +!71 = !DILocation(line: 20, column: 18, scope: !69) +!72 = !DILocalVariable(name: "ignore", scope: !69, file: !2, line: 21, type: !23) +!73 = !DILocation(line: 21, column: 11, scope: !69) +!74 = !DILocation(line: 21, column: 20, scope: !69) +!75 = !DILocation(line: 22, column: 7, scope: !69) +!76 = distinct !DISubprogram(name: "$fundef_15", linkageName: "$fundef_15", scope: !2, file: !2, line: 4, type: !4, scopeLine: 4, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!77 = !DILocalVariable(name: "sig", scope: !76, file: !2, line: 3, type: !78) +!78 = !DIBasicType(name: "ByStr64", size: 64) +!79 = !DILocation(line: 3, column: 8, scope: !76) +!80 = !DILocation(line: 5, column: 5, scope: !76) +!81 = distinct !DISubprogram(name: "$fundef_13", linkageName: "$fundef_13", scope: !2, file: !2, line: 3, type: !4, scopeLine: 3, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!82 = !DILocalVariable(name: "msg", scope: !81, file: !2, line: 2, type: !9) +!83 = !DILocation(line: 2, column: 8, scope: !81) +!84 = !DILocation(line: 4, column: 3, scope: !81) +!85 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !86, file: !86, type: !4, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!86 = !DIFile(filename: ".", directory: ".") +!87 = !DILocation(line: 0, scope: !85) +!88 = distinct !DISubprogram(name: "_scilla_expr_fun", linkageName: "_scilla_expr_fun", scope: !2, file: !2, line: 2, type: !4, scopeLine: 2, spFlags: DISPFlagDefinition, unit: !1, retainedNodes: !7) +!89 = !DILocalVariable(name: "$expr_12", scope: !88, file: !2, line: 2, type: !90) +!90 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "Bool", baseType: !91, size: 8, align: 8, dwarfAddressSpace: 0) +!91 = !DIBasicType(name: "Bool", size: 8) +!92 = !DILocation(line: 2, column: 3, scope: !88) +!93 = !DILocation(line: 3, column: 3, scope: !88) +!94 = !DILocation(line: 28, column: 5, scope: !88) +!95 = !DILocalVariable(name: "sig", scope: !88, file: !2, line: 33, type: !78) +!96 = !DILocation(line: 33, column: 5, scope: !88) +!97 = !DILocation(line: 33, column: 11, scope: !88) +!98 = !DILocalVariable(name: "msg", scope: !88, file: !2, line: 34, type: !99) +!99 = !DIBasicType(name: "ByStr1591", size: 1591) +!100 = !DILocation(line: 34, column: 5, scope: !88) +!101 = !DILocation(line: 34, column: 11, scope: !88) +!102 = !DILocalVariable(name: "addr_gold", scope: !88, file: !2, line: 36, type: !26) +!103 = !DILocation(line: 36, column: 5, scope: !88) +!104 = !DILocation(line: 36, column: 17, scope: !88) +!105 = !DILocalVariable(name: "msg_bs", scope: !88, file: !2, line: 37, type: !9) +!106 = !DILocation(line: 37, column: 5, scope: !88) +!107 = !DILocation(line: 37, column: 14, scope: !88) +!108 = !DILocalVariable(name: "msg_hashed", scope: !88, file: !2, line: 38, type: !9) +!109 = !DILocation(line: 38, column: 5, scope: !88) +!110 = !DILocalVariable(name: "$header_hash_8", scope: !88, file: !2, line: 38, type: !9) +!111 = !DILocation(line: 38, column: 18, scope: !88) +!112 = !DILocalVariable(name: "recid", scope: !88, file: !2, line: 39, type: !23) +!113 = !DILocation(line: 39, column: 5, scope: !88) +!114 = !DILocation(line: 39, column: 13, scope: !88) +!115 = !DILocalVariable(name: "addr_computed", scope: !88, file: !2, line: 41, type: !26) +!116 = !DILocation(line: 41, column: 5, scope: !88) +!117 = !DILocation(line: 41, column: 21, scope: !88) +!118 = !DILocalVariable(name: "$ecrecover_11", scope: !88, file: !2, line: 41, type: !26) +!119 = !DILocation(line: 42, column: 1, scope: !88) diff --git a/testsuite/expr/builtin-ecdsa_recover.ll b/testsuite/expr/builtin-ecdsa_recover.ll index 2294ebcd..839b16d0 100644 --- a/testsuite/expr/builtin-ecdsa_recover.ll +++ b/testsuite/expr/builtin-ecdsa_recover.ll @@ -43,7 +43,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-pc-linux-gnu" +target triple = "x86_64-unknown-linux-gnu" %"$TyDescrTy_PrimTyp_21" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } @@ -805,7 +805,7 @@ declare [65 x i8]* @_ecdsa_recover_pk(i8*, %Bystr, [64 x i8]*, %Uint32) declare %Bystr @_to_bystr(i8*, i32, i8*) -; Function Attrs: nofree nosync nounwind readnone speculatable willreturn +; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn declare i64 @llvm.umin.i64(i64, i64) #0 declare %Bystr @_substr_ByStr(i8*, %Bystr, %Uint32, %Uint32) @@ -1193,4 +1193,4 @@ entry: ret void } -attributes #0 = { nofree nosync nounwind readnone speculatable willreturn } +attributes #0 = { nocallback nofree nosync nounwind readnone speculatable willreturn } diff --git a/testsuite/expr/builtin-isqrt.dbg.ll b/testsuite/expr/builtin-isqrt.dbg.ll index 76bb52ac..ca197dcc 100644 --- a/testsuite/expr/builtin-isqrt.dbg.ll +++ b/testsuite/expr/builtin-isqrt.dbg.ll @@ -34,7 +34,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-pc-linux-gnu" +target triple = "x86_64-unknown-linux-gnu" %"$TyDescrTy_PrimTyp_7" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } @@ -126,7 +126,7 @@ target triple = "x86_64-pc-linux-gnu" @_transition_parameters = constant [0 x %"$TransDescr_569"] zeroinitializer @_transition_parameters_length = constant i32 0 -define void @_init_libs() !dbg !4 { +define void @_init_libs() !dbg !3 { entry: %"$gasrem_68" = load i64, i64* @_gasrem, align 8 %"$gascmp_69" = icmp ugt i64 5, %"$gasrem_68" @@ -208,6 +208,7 @@ declare void @_out_of_gas() define internal %"TName_Pair_Uint64_Pair_(Pair_(Uint128)_(Uint256))_(Uint32)"* @_scilla_expr_fun(i8* %0) !dbg !10 { entry: %"$expr_6" = alloca %"TName_Pair_Uint64_Pair_(Pair_(Uint128)_(Uint256))_(Uint32)"*, align 8 + call void @llvm.dbg.declare(metadata %"TName_Pair_Uint64_Pair_(Pair_(Uint128)_(Uint256))_(Uint32)"** %"$expr_6", metadata !11, metadata !DIExpression()), !dbg !14 %"$gasrem_98" = load i64, i64* @_gasrem, align 8 %"$gascmp_99" = icmp ugt i64 1, %"$gasrem_98" br i1 %"$gascmp_99", label %"$out_of_gas_100", label %"$have_gas_101" @@ -220,6 +221,7 @@ entry: %"$consume_102" = sub i64 %"$gasrem_98", 1 store i64 %"$consume_102", i64* @_gasrem, align 8 %zero = alloca %Uint32, align 8 + call void @llvm.dbg.declare(metadata %Uint32* %zero, metadata !15, metadata !DIExpression()), !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" @@ -231,7 +233,7 @@ entry: "$have_gas_106": ; preds = %"$out_of_gas_105", %"$have_gas_101" %"$consume_107" = sub i64 %"$gasrem_103", 1 store i64 %"$consume_107", i64* @_gasrem, align 8 - store %Uint32 zeroinitializer, %Uint32* %zero, align 4, !dbg !11 + store %Uint32 zeroinitializer, %Uint32* %zero, align 4, !dbg !14 %"$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" @@ -244,6 +246,7 @@ entry: %"$consume_112" = sub i64 %"$gasrem_108", 1 store i64 %"$consume_112", i64* @_gasrem, align 8 %one = alloca %Uint32, align 8 + call void @llvm.dbg.declare(metadata %Uint32* %one, metadata !18, metadata !DIExpression()), !dbg !19 %"$gasrem_113" = load i64, i64* @_gasrem, align 8 %"$gascmp_114" = icmp ugt i64 1, %"$gasrem_113" br i1 %"$gascmp_114", label %"$out_of_gas_115", label %"$have_gas_116" @@ -255,7 +258,7 @@ entry: "$have_gas_116": ; preds = %"$out_of_gas_115", %"$have_gas_111" %"$consume_117" = sub i64 %"$gasrem_113", 1 store i64 %"$consume_117", i64* @_gasrem, align 8 - store %Uint32 { i32 1 }, %Uint32* %one, align 4, !dbg !12 + store %Uint32 { i32 1 }, %Uint32* %one, align 4, !dbg !20 %"$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" @@ -268,6 +271,7 @@ entry: %"$consume_122" = sub i64 %"$gasrem_118", 1 store i64 %"$consume_122", i64* @_gasrem, align 8 %two = alloca %Uint64, align 8 + call void @llvm.dbg.declare(metadata %Uint64* %two, metadata !21, metadata !DIExpression()), !dbg !23 %"$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" @@ -279,7 +283,7 @@ entry: "$have_gas_126": ; preds = %"$out_of_gas_125", %"$have_gas_121" %"$consume_127" = sub i64 %"$gasrem_123", 1 store i64 %"$consume_127", i64* @_gasrem, align 8 - store %Uint64 { i64 2 }, %Uint64* %two, align 8, !dbg !13 + store %Uint64 { i64 2 }, %Uint64* %two, align 8, !dbg !24 %"$gasrem_128" = load i64, i64* @_gasrem, align 8 %"$gascmp_129" = icmp ugt i64 1, %"$gasrem_128" br i1 %"$gascmp_129", label %"$out_of_gas_130", label %"$have_gas_131" @@ -292,6 +296,7 @@ entry: %"$consume_132" = sub i64 %"$gasrem_128", 1 store i64 %"$consume_132", i64* @_gasrem, align 8 %three = alloca %Uint32, align 8 + call void @llvm.dbg.declare(metadata %Uint32* %three, metadata !25, metadata !DIExpression()), !dbg !26 %"$gasrem_133" = load i64, i64* @_gasrem, align 8 %"$gascmp_134" = icmp ugt i64 1, %"$gasrem_133" br i1 %"$gascmp_134", label %"$out_of_gas_135", label %"$have_gas_136" @@ -303,7 +308,7 @@ entry: "$have_gas_136": ; preds = %"$out_of_gas_135", %"$have_gas_131" %"$consume_137" = sub i64 %"$gasrem_133", 1 store i64 %"$consume_137", i64* @_gasrem, align 8 - store %Uint32 { i32 3 }, %Uint32* %three, align 4, !dbg !14 + store %Uint32 { i32 3 }, %Uint32* %three, align 4, !dbg !27 %"$gasrem_138" = load i64, i64* @_gasrem, align 8 %"$gascmp_139" = icmp ugt i64 1, %"$gasrem_138" br i1 %"$gascmp_139", label %"$out_of_gas_140", label %"$have_gas_141" @@ -316,6 +321,7 @@ entry: %"$consume_142" = sub i64 %"$gasrem_138", 1 store i64 %"$consume_142", i64* @_gasrem, align 8 %four = alloca %Uint128, align 8 + call void @llvm.dbg.declare(metadata %Uint128* %four, metadata !28, metadata !DIExpression()), !dbg !30 %"$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" @@ -327,7 +333,7 @@ entry: "$have_gas_146": ; preds = %"$out_of_gas_145", %"$have_gas_141" %"$consume_147" = sub i64 %"$gasrem_143", 1 store i64 %"$consume_147", i64* @_gasrem, align 8 - store %Uint128 { i128 4 }, %Uint128* %four, align 8, !dbg !15 + store %Uint128 { i128 4 }, %Uint128* %four, align 8, !dbg !31 %"$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" @@ -340,6 +346,7 @@ entry: %"$consume_152" = sub i64 %"$gasrem_148", 1 store i64 %"$consume_152", i64* @_gasrem, align 8 %six = alloca %Uint32, align 8 + call void @llvm.dbg.declare(metadata %Uint32* %six, metadata !32, metadata !DIExpression()), !dbg !33 %"$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" @@ -351,7 +358,7 @@ entry: "$have_gas_156": ; preds = %"$out_of_gas_155", %"$have_gas_151" %"$consume_157" = sub i64 %"$gasrem_153", 1 store i64 %"$consume_157", i64* @_gasrem, align 8 - store %Uint32 { i32 6 }, %Uint32* %six, align 4, !dbg !16 + store %Uint32 { i32 6 }, %Uint32* %six, align 4, !dbg !34 %"$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" @@ -364,6 +371,7 @@ entry: %"$consume_162" = sub i64 %"$gasrem_158", 1 store i64 %"$consume_162", i64* @_gasrem, align 8 %ten = alloca %Uint32, align 8 + call void @llvm.dbg.declare(metadata %Uint32* %ten, metadata !35, metadata !DIExpression()), !dbg !36 %"$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" @@ -375,7 +383,7 @@ entry: "$have_gas_166": ; preds = %"$out_of_gas_165", %"$have_gas_161" %"$consume_167" = sub i64 %"$gasrem_163", 1 store i64 %"$consume_167", i64* @_gasrem, align 8 - store %Uint32 { i32 10 }, %Uint32* %ten, align 4, !dbg !17 + store %Uint32 { i32 10 }, %Uint32* %ten, align 4, !dbg !37 %"$gasrem_168" = load i64, i64* @_gasrem, align 8 %"$gascmp_169" = icmp ugt i64 1, %"$gasrem_168" br i1 %"$gascmp_169", label %"$out_of_gas_170", label %"$have_gas_171" @@ -388,6 +396,7 @@ entry: %"$consume_172" = sub i64 %"$gasrem_168", 1 store i64 %"$consume_172", i64* @_gasrem, align 8 %thirty_six = alloca %Uint256, align 8 + call void @llvm.dbg.declare(metadata %Uint256* %thirty_six, metadata !38, metadata !DIExpression()), !dbg !40 %"$gasrem_173" = load i64, i64* @_gasrem, align 8 %"$gascmp_174" = icmp ugt i64 1, %"$gasrem_173" br i1 %"$gascmp_174", label %"$out_of_gas_175", label %"$have_gas_176" @@ -399,7 +408,7 @@ entry: "$have_gas_176": ; preds = %"$out_of_gas_175", %"$have_gas_171" %"$consume_177" = sub i64 %"$gasrem_173", 1 store i64 %"$consume_177", i64* @_gasrem, align 8 - store %Uint256 { i256 36 }, %Uint256* %thirty_six, align 8, !dbg !18 + store %Uint256 { i256 36 }, %Uint256* %thirty_six, align 8, !dbg !41 %"$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" @@ -412,6 +421,7 @@ entry: %"$consume_182" = sub i64 %"$gasrem_178", 1 store i64 %"$consume_182", i64* @_gasrem, align 8 %uint256_max = alloca %Uint256, align 8 + call void @llvm.dbg.declare(metadata %Uint256* %uint256_max, metadata !42, metadata !DIExpression()), !dbg !43 %"$gasrem_183" = load i64, i64* @_gasrem, align 8 %"$gascmp_184" = icmp ugt i64 1, %"$gasrem_183" br i1 %"$gascmp_184", label %"$out_of_gas_185", label %"$have_gas_186" @@ -423,7 +433,7 @@ entry: "$have_gas_186": ; preds = %"$out_of_gas_185", %"$have_gas_181" %"$consume_187" = sub i64 %"$gasrem_183", 1 store i64 %"$consume_187", i64* @_gasrem, align 8 - store %Uint256 { i256 57896044618658097711785492504343953926634992332820282019728792003956564819967 }, %Uint256* %uint256_max, align 8, !dbg !19 + store %Uint256 { i256 57896044618658097711785492504343953926634992332820282019728792003956564819967 }, %Uint256* %uint256_max, align 8, !dbg !44 %"$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" @@ -436,6 +446,7 @@ entry: %"$consume_192" = sub i64 %"$gasrem_188", 1 store i64 %"$consume_192", i64* @_gasrem, align 8 %uint128_max = alloca %Uint128, align 8 + call void @llvm.dbg.declare(metadata %Uint128* %uint128_max, metadata !45, metadata !DIExpression()), !dbg !46 %"$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" @@ -447,7 +458,7 @@ entry: "$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 - store %Uint128 { i128 -1 }, %Uint128* %uint128_max, align 8, !dbg !20 + store %Uint128 { i128 -1 }, %Uint128* %uint128_max, align 8, !dbg !47 %"$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" @@ -460,6 +471,7 @@ entry: %"$consume_202" = sub i64 %"$gasrem_198", 1 store i64 %"$consume_202", i64* @_gasrem, align 8 %isqrt_zero = alloca %Uint32, align 8 + call void @llvm.dbg.declare(metadata %Uint32* %isqrt_zero, metadata !48, metadata !DIExpression()), !dbg !49 %"$zero_203" = load %Uint32, %Uint32* %zero, align 4 %"$valueof_204" = extractvalue %Uint32 %"$zero_203", 0 %"$valueof_205" = zext i32 %"$valueof_204" to i64 @@ -481,8 +493,8 @@ entry: %"$consume_216" = sub i64 %"$gasrem_212", %"$gasmul_211" store i64 %"$consume_216", i64* @_gasrem, align 8 %"$zero_217" = load %Uint32, %Uint32* %zero, align 4 - %"$isqrt_call_218" = call %Uint32 @_isqrt_Uint32(%Uint32 %"$zero_217"), !dbg !21 - store %Uint32 %"$isqrt_call_218", %Uint32* %isqrt_zero, align 4, !dbg !21 + %"$isqrt_call_218" = call %Uint32 @_isqrt_Uint32(%Uint32 %"$zero_217"), !dbg !50 + store %Uint32 %"$isqrt_call_218", %Uint32* %isqrt_zero, align 4, !dbg !50 %"$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" @@ -495,6 +507,7 @@ entry: %"$consume_223" = sub i64 %"$gasrem_219", 1 store i64 %"$consume_223", i64* @_gasrem, align 8 %isqrt_one = alloca %Uint32, align 8 + call void @llvm.dbg.declare(metadata %Uint32* %isqrt_one, metadata !51, metadata !DIExpression()), !dbg !52 %"$one_224" = load %Uint32, %Uint32* %one, align 4 %"$valueof_225" = extractvalue %Uint32 %"$one_224", 0 %"$valueof_226" = zext i32 %"$valueof_225" to i64 @@ -516,8 +529,8 @@ entry: %"$consume_237" = sub i64 %"$gasrem_233", %"$gasmul_232" store i64 %"$consume_237", i64* @_gasrem, align 8 %"$one_238" = load %Uint32, %Uint32* %one, align 4 - %"$isqrt_call_239" = call %Uint32 @_isqrt_Uint32(%Uint32 %"$one_238"), !dbg !22 - store %Uint32 %"$isqrt_call_239", %Uint32* %isqrt_one, align 4, !dbg !22 + %"$isqrt_call_239" = call %Uint32 @_isqrt_Uint32(%Uint32 %"$one_238"), !dbg !53 + store %Uint32 %"$isqrt_call_239", %Uint32* %isqrt_one, align 4, !dbg !53 %"$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" @@ -530,6 +543,7 @@ entry: %"$consume_244" = sub i64 %"$gasrem_240", 1 store i64 %"$consume_244", i64* @_gasrem, align 8 %isqrt_two = alloca %Uint64, align 8 + call void @llvm.dbg.declare(metadata %Uint64* %isqrt_two, metadata !54, metadata !DIExpression()), !dbg !55 %"$two_245" = load %Uint64, %Uint64* %two, align 8 %"$gaslogof_246" = extractvalue %Uint64 %"$two_245", 0 %"$gaslogof_247" = uitofp i64 %"$gaslogof_246" to double @@ -550,8 +564,8 @@ entry: %"$consume_257" = sub i64 %"$gasrem_253", %"$gasmul_252" store i64 %"$consume_257", i64* @_gasrem, align 8 %"$two_258" = load %Uint64, %Uint64* %two, align 8 - %"$isqrt_call_259" = call %Uint64 @_isqrt_Uint64(%Uint64 %"$two_258"), !dbg !23 - store %Uint64 %"$isqrt_call_259", %Uint64* %isqrt_two, align 8, !dbg !23 + %"$isqrt_call_259" = call %Uint64 @_isqrt_Uint64(%Uint64 %"$two_258"), !dbg !56 + store %Uint64 %"$isqrt_call_259", %Uint64* %isqrt_two, align 8, !dbg !56 %"$gasrem_260" = load i64, i64* @_gasrem, align 8 %"$gascmp_261" = icmp ugt i64 1, %"$gasrem_260" br i1 %"$gascmp_261", label %"$out_of_gas_262", label %"$have_gas_263" @@ -564,6 +578,7 @@ entry: %"$consume_264" = sub i64 %"$gasrem_260", 1 store i64 %"$consume_264", i64* @_gasrem, align 8 %isqrt_three = alloca %Uint32, align 8 + call void @llvm.dbg.declare(metadata %Uint32* %isqrt_three, metadata !57, metadata !DIExpression()), !dbg !58 %"$three_265" = load %Uint32, %Uint32* %three, align 4 %"$valueof_266" = extractvalue %Uint32 %"$three_265", 0 %"$valueof_267" = zext i32 %"$valueof_266" to i64 @@ -585,8 +600,8 @@ entry: %"$consume_278" = sub i64 %"$gasrem_274", %"$gasmul_273" store i64 %"$consume_278", i64* @_gasrem, align 8 %"$three_279" = load %Uint32, %Uint32* %three, align 4 - %"$isqrt_call_280" = call %Uint32 @_isqrt_Uint32(%Uint32 %"$three_279"), !dbg !24 - store %Uint32 %"$isqrt_call_280", %Uint32* %isqrt_three, align 4, !dbg !24 + %"$isqrt_call_280" = call %Uint32 @_isqrt_Uint32(%Uint32 %"$three_279"), !dbg !59 + store %Uint32 %"$isqrt_call_280", %Uint32* %isqrt_three, align 4, !dbg !59 %"$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" @@ -599,6 +614,7 @@ entry: %"$consume_285" = sub i64 %"$gasrem_281", 1 store i64 %"$consume_285", i64* @_gasrem, align 8 %isqrt_four = alloca %Uint128, align 8 + call void @llvm.dbg.declare(metadata %Uint128* %isqrt_four, metadata !60, metadata !DIExpression()), !dbg !61 %"$four_286" = load %Uint128, %Uint128* %four, align 8 %"$gaslogof_287" = extractvalue %Uint128 %"$four_286", 0 %"$gaslogof_288" = uitofp i128 %"$gaslogof_287" to double @@ -620,8 +636,8 @@ entry: %"$consume_299" = sub i64 %"$gasrem_295", %"$gasmul_294" store i64 %"$consume_299", i64* @_gasrem, align 8 %"$four_300" = load %Uint128, %Uint128* %four, align 8 - %"$isqrt_call_301" = call %Uint128 @_isqrt_Uint128(%Uint128 %"$four_300"), !dbg !25 - store %Uint128 %"$isqrt_call_301", %Uint128* %isqrt_four, align 8, !dbg !25 + %"$isqrt_call_301" = call %Uint128 @_isqrt_Uint128(%Uint128 %"$four_300"), !dbg !62 + store %Uint128 %"$isqrt_call_301", %Uint128* %isqrt_four, align 8, !dbg !62 %"$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" @@ -634,6 +650,7 @@ entry: %"$consume_306" = sub i64 %"$gasrem_302", 1 store i64 %"$consume_306", i64* @_gasrem, align 8 %isqrt_six = alloca %Uint32, align 8 + call void @llvm.dbg.declare(metadata %Uint32* %isqrt_six, metadata !63, metadata !DIExpression()), !dbg !64 %"$six_307" = load %Uint32, %Uint32* %six, align 4 %"$valueof_308" = extractvalue %Uint32 %"$six_307", 0 %"$valueof_309" = zext i32 %"$valueof_308" to i64 @@ -655,8 +672,8 @@ entry: %"$consume_320" = sub i64 %"$gasrem_316", %"$gasmul_315" store i64 %"$consume_320", i64* @_gasrem, align 8 %"$six_321" = load %Uint32, %Uint32* %six, align 4 - %"$isqrt_call_322" = call %Uint32 @_isqrt_Uint32(%Uint32 %"$six_321"), !dbg !26 - store %Uint32 %"$isqrt_call_322", %Uint32* %isqrt_six, align 4, !dbg !26 + %"$isqrt_call_322" = call %Uint32 @_isqrt_Uint32(%Uint32 %"$six_321"), !dbg !65 + store %Uint32 %"$isqrt_call_322", %Uint32* %isqrt_six, align 4, !dbg !65 %"$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" @@ -669,6 +686,7 @@ entry: %"$consume_327" = sub i64 %"$gasrem_323", 1 store i64 %"$consume_327", i64* @_gasrem, align 8 %isqrt_ten = alloca %Uint32, align 8 + call void @llvm.dbg.declare(metadata %Uint32* %isqrt_ten, metadata !66, metadata !DIExpression()), !dbg !67 %"$ten_328" = load %Uint32, %Uint32* %ten, align 4 %"$valueof_329" = extractvalue %Uint32 %"$ten_328", 0 %"$valueof_330" = zext i32 %"$valueof_329" to i64 @@ -690,8 +708,8 @@ entry: %"$consume_341" = sub i64 %"$gasrem_337", %"$gasmul_336" store i64 %"$consume_341", i64* @_gasrem, align 8 %"$ten_342" = load %Uint32, %Uint32* %ten, align 4 - %"$isqrt_call_343" = call %Uint32 @_isqrt_Uint32(%Uint32 %"$ten_342"), !dbg !27 - store %Uint32 %"$isqrt_call_343", %Uint32* %isqrt_ten, align 4, !dbg !27 + %"$isqrt_call_343" = call %Uint32 @_isqrt_Uint32(%Uint32 %"$ten_342"), !dbg !68 + store %Uint32 %"$isqrt_call_343", %Uint32* %isqrt_ten, align 4, !dbg !68 %"$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" @@ -704,6 +722,7 @@ entry: %"$consume_348" = sub i64 %"$gasrem_344", 1 store i64 %"$consume_348", i64* @_gasrem, align 8 %isqrt_thirty_six = alloca %Uint256, align 8 + call void @llvm.dbg.declare(metadata %Uint256* %isqrt_thirty_six, metadata !69, metadata !DIExpression()), !dbg !70 %"$thirty_six_349" = load %Uint256, %Uint256* %thirty_six, align 8 %"$gaslogof_350" = extractvalue %Uint256 %"$thirty_six_349", 0 %"$gaslogof_351" = alloca i256, align 8 @@ -738,9 +757,9 @@ entry: %"$isqrt_thirty_six_373" = alloca %Uint256, align 8 %"$thirty_six_374" = load %Uint256, %Uint256* %thirty_six, align 8 store %Uint256 %"$thirty_six_374", %Uint256* %"$isqrt_thirty_six_373", align 8 - %"$isqrt_call_375" = call %Uint256* @_isqrt_Uint256(i8* %"$execptr_load_372", %Uint256* %"$isqrt_thirty_six_373"), !dbg !28 + %"$isqrt_call_375" = call %Uint256* @_isqrt_Uint256(i8* %"$execptr_load_372", %Uint256* %"$isqrt_thirty_six_373"), !dbg !71 %"$isqrt_377" = load %Uint256, %Uint256* %"$isqrt_call_375", align 8 - store %Uint256 %"$isqrt_377", %Uint256* %isqrt_thirty_six, align 8, !dbg !28 + store %Uint256 %"$isqrt_377", %Uint256* %isqrt_thirty_six, align 8, !dbg !71 %"$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" @@ -753,6 +772,7 @@ entry: %"$consume_382" = sub i64 %"$gasrem_378", 1 store i64 %"$consume_382", i64* @_gasrem, align 8 %isqrt_uint256_max = alloca %Uint256, align 8 + call void @llvm.dbg.declare(metadata %Uint256* %isqrt_uint256_max, metadata !72, metadata !DIExpression()), !dbg !73 %"$uint256_max_383" = load %Uint256, %Uint256* %uint256_max, align 8 %"$gaslogof_384" = extractvalue %Uint256 %"$uint256_max_383", 0 %"$gaslogof_385" = alloca i256, align 8 @@ -787,9 +807,9 @@ entry: %"$isqrt_uint256_max_407" = alloca %Uint256, align 8 %"$uint256_max_408" = load %Uint256, %Uint256* %uint256_max, align 8 store %Uint256 %"$uint256_max_408", %Uint256* %"$isqrt_uint256_max_407", align 8 - %"$isqrt_call_409" = call %Uint256* @_isqrt_Uint256(i8* %"$execptr_load_406", %Uint256* %"$isqrt_uint256_max_407"), !dbg !29 + %"$isqrt_call_409" = call %Uint256* @_isqrt_Uint256(i8* %"$execptr_load_406", %Uint256* %"$isqrt_uint256_max_407"), !dbg !74 %"$isqrt_411" = load %Uint256, %Uint256* %"$isqrt_call_409", align 8 - store %Uint256 %"$isqrt_411", %Uint256* %isqrt_uint256_max, align 8, !dbg !29 + store %Uint256 %"$isqrt_411", %Uint256* %isqrt_uint256_max, align 8, !dbg !74 %"$gasrem_412" = load i64, i64* @_gasrem, align 8 %"$gascmp_413" = icmp ugt i64 1, %"$gasrem_412" br i1 %"$gascmp_413", label %"$out_of_gas_414", label %"$have_gas_415" @@ -802,6 +822,7 @@ entry: %"$consume_416" = sub i64 %"$gasrem_412", 1 store i64 %"$consume_416", i64* @_gasrem, align 8 %isqrt_uint128_max = alloca %Uint128, align 8 + call void @llvm.dbg.declare(metadata %Uint128* %isqrt_uint128_max, metadata !75, metadata !DIExpression()), !dbg !76 %"$uint128_max_417" = load %Uint128, %Uint128* %uint128_max, align 8 %"$gaslogof_418" = extractvalue %Uint128 %"$uint128_max_417", 0 %"$gaslogof_419" = uitofp i128 %"$gaslogof_418" to double @@ -823,8 +844,8 @@ entry: %"$consume_430" = sub i64 %"$gasrem_426", %"$gasmul_425" store i64 %"$consume_430", i64* @_gasrem, align 8 %"$uint128_max_431" = load %Uint128, %Uint128* %uint128_max, align 8 - %"$isqrt_call_432" = call %Uint128 @_isqrt_Uint128(%Uint128 %"$uint128_max_431"), !dbg !30 - store %Uint128 %"$isqrt_call_432", %Uint128* %isqrt_uint128_max, align 8, !dbg !30 + %"$isqrt_call_432" = call %Uint128 @_isqrt_Uint128(%Uint128 %"$uint128_max_431"), !dbg !77 + store %Uint128 %"$isqrt_call_432", %Uint128* %isqrt_uint128_max, align 8, !dbg !77 %"$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" @@ -837,6 +858,7 @@ entry: %"$consume_437" = sub i64 %"$gasrem_433", 1 store i64 %"$consume_437", i64* @_gasrem, align 8 %res1 = alloca %Uint32, align 8 + call void @llvm.dbg.declare(metadata %Uint32* %res1, metadata !78, metadata !DIExpression()), !dbg !79 %"$gasrem_438" = load i64, i64* @_gasrem, align 8 %"$gascmp_439" = icmp ugt i64 4, %"$gasrem_438" br i1 %"$gascmp_439", label %"$out_of_gas_440", label %"$have_gas_441" @@ -850,8 +872,8 @@ entry: store i64 %"$consume_442", i64* @_gasrem, align 8 %"$isqrt_zero_443" = load %Uint32, %Uint32* %isqrt_zero, align 4 %"$isqrt_one_444" = load %Uint32, %Uint32* %isqrt_one, align 4 - %"$add_call_445" = call %Uint32 @_add_Uint32(%Uint32 %"$isqrt_zero_443", %Uint32 %"$isqrt_one_444"), !dbg !31 - store %Uint32 %"$add_call_445", %Uint32* %res1, align 4, !dbg !31 + %"$add_call_445" = call %Uint32 @_add_Uint32(%Uint32 %"$isqrt_zero_443", %Uint32 %"$isqrt_one_444"), !dbg !80 + store %Uint32 %"$add_call_445", %Uint32* %res1, align 4, !dbg !80 %"$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" @@ -864,6 +886,7 @@ entry: %"$consume_450" = sub i64 %"$gasrem_446", 1 store i64 %"$consume_450", i64* @_gasrem, align 8 %res2 = alloca %Uint32, align 8 + call void @llvm.dbg.declare(metadata %Uint32* %res2, metadata !81, metadata !DIExpression()), !dbg !82 %"$gasrem_451" = load i64, i64* @_gasrem, align 8 %"$gascmp_452" = icmp ugt i64 4, %"$gasrem_451" br i1 %"$gascmp_452", label %"$out_of_gas_453", label %"$have_gas_454" @@ -877,8 +900,8 @@ entry: store i64 %"$consume_455", i64* @_gasrem, align 8 %"$isqrt_three_456" = load %Uint32, %Uint32* %isqrt_three, align 4 %"$isqrt_six_457" = load %Uint32, %Uint32* %isqrt_six, align 4 - %"$add_call_458" = call %Uint32 @_add_Uint32(%Uint32 %"$isqrt_three_456", %Uint32 %"$isqrt_six_457"), !dbg !32 - store %Uint32 %"$add_call_458", %Uint32* %res2, align 4, !dbg !32 + %"$add_call_458" = call %Uint32 @_add_Uint32(%Uint32 %"$isqrt_three_456", %Uint32 %"$isqrt_six_457"), !dbg !83 + store %Uint32 %"$add_call_458", %Uint32* %res2, align 4, !dbg !83 %"$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" @@ -891,6 +914,7 @@ entry: %"$consume_463" = sub i64 %"$gasrem_459", 1 store i64 %"$consume_463", i64* @_gasrem, align 8 %res3 = alloca %Uint32, align 8 + call void @llvm.dbg.declare(metadata %Uint32* %res3, metadata !84, metadata !DIExpression()), !dbg !85 %"$gasrem_464" = load i64, i64* @_gasrem, align 8 %"$gascmp_465" = icmp ugt i64 4, %"$gasrem_464" br i1 %"$gascmp_465", label %"$out_of_gas_466", label %"$have_gas_467" @@ -904,8 +928,8 @@ entry: store i64 %"$consume_468", i64* @_gasrem, align 8 %"$res1_469" = load %Uint32, %Uint32* %res1, align 4 %"$res2_470" = load %Uint32, %Uint32* %res2, align 4 - %"$add_call_471" = call %Uint32 @_add_Uint32(%Uint32 %"$res1_469", %Uint32 %"$res2_470"), !dbg !33 - store %Uint32 %"$add_call_471", %Uint32* %res3, align 4, !dbg !33 + %"$add_call_471" = call %Uint32 @_add_Uint32(%Uint32 %"$res1_469", %Uint32 %"$res2_470"), !dbg !86 + store %Uint32 %"$add_call_471", %Uint32* %res3, align 4, !dbg !86 %"$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" @@ -918,6 +942,7 @@ entry: %"$consume_476" = sub i64 %"$gasrem_472", 1 store i64 %"$consume_476", i64* @_gasrem, align 8 %res4 = alloca %Uint32, align 8 + call void @llvm.dbg.declare(metadata %Uint32* %res4, metadata !87, metadata !DIExpression()), !dbg !88 %"$gasrem_477" = load i64, i64* @_gasrem, align 8 %"$gascmp_478" = icmp ugt i64 4, %"$gasrem_477" br i1 %"$gascmp_478", label %"$out_of_gas_479", label %"$have_gas_480" @@ -931,8 +956,8 @@ entry: store i64 %"$consume_481", i64* @_gasrem, align 8 %"$res3_482" = load %Uint32, %Uint32* %res3, align 4 %"$isqrt_ten_483" = load %Uint32, %Uint32* %isqrt_ten, align 4 - %"$add_call_484" = call %Uint32 @_add_Uint32(%Uint32 %"$res3_482", %Uint32 %"$isqrt_ten_483"), !dbg !34 - store %Uint32 %"$add_call_484", %Uint32* %res4, align 4, !dbg !34 + %"$add_call_484" = call %Uint32 @_add_Uint32(%Uint32 %"$res3_482", %Uint32 %"$isqrt_ten_483"), !dbg !89 + store %Uint32 %"$add_call_484", %Uint32* %res4, align 4, !dbg !89 %"$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" @@ -945,6 +970,7 @@ entry: %"$consume_489" = sub i64 %"$gasrem_485", 1 store i64 %"$consume_489", i64* @_gasrem, align 8 %res5 = alloca %Uint256, align 8 + call void @llvm.dbg.declare(metadata %Uint256* %res5, metadata !90, metadata !DIExpression()), !dbg !91 %"$gasrem_491" = load i64, i64* @_gasrem, align 8 %"$gascmp_492" = icmp ugt i64 16, %"$gasrem_491" br i1 %"$gascmp_492", label %"$out_of_gas_493", label %"$have_gas_494" @@ -963,9 +989,9 @@ entry: %"$add_isqrt_uint256_max_499" = alloca %Uint256, align 8 %"$isqrt_uint256_max_500" = load %Uint256, %Uint256* %isqrt_uint256_max, align 8 store %Uint256 %"$isqrt_uint256_max_500", %Uint256* %"$add_isqrt_uint256_max_499", align 8 - %"$add_call_501" = call %Uint256* @_add_Uint256(i8* %"$execptr_load_496", %Uint256* %"$add_isqrt_thirty_six_497", %Uint256* %"$add_isqrt_uint256_max_499"), !dbg !35 + %"$add_call_501" = call %Uint256* @_add_Uint256(i8* %"$execptr_load_496", %Uint256* %"$add_isqrt_thirty_six_497", %Uint256* %"$add_isqrt_uint256_max_499"), !dbg !92 %"$add_503" = load %Uint256, %Uint256* %"$add_call_501", align 8 - store %Uint256 %"$add_503", %Uint256* %res5, align 8, !dbg !35 + store %Uint256 %"$add_503", %Uint256* %res5, align 8, !dbg !92 %"$gasrem_504" = load i64, i64* @_gasrem, align 8 %"$gascmp_505" = icmp ugt i64 1, %"$gasrem_504" br i1 %"$gascmp_505", label %"$out_of_gas_506", label %"$have_gas_507" @@ -978,6 +1004,7 @@ entry: %"$consume_508" = sub i64 %"$gasrem_504", 1 store i64 %"$consume_508", i64* @_gasrem, align 8 %res6 = alloca %Uint128, align 8 + call void @llvm.dbg.declare(metadata %Uint128* %res6, metadata !93, metadata !DIExpression()), !dbg !94 %"$gasrem_510" = load i64, i64* @_gasrem, align 8 %"$gascmp_511" = icmp ugt i64 8, %"$gasrem_510" br i1 %"$gascmp_511", label %"$out_of_gas_512", label %"$have_gas_513" @@ -991,8 +1018,8 @@ entry: store i64 %"$consume_514", i64* @_gasrem, align 8 %"$isqrt_four_515" = load %Uint128, %Uint128* %isqrt_four, align 8 %"$isqrt_uint128_max_516" = load %Uint128, %Uint128* %isqrt_uint128_max, align 8 - %"$add_call_517" = call %Uint128 @_add_Uint128(%Uint128 %"$isqrt_four_515", %Uint128 %"$isqrt_uint128_max_516"), !dbg !36 - store %Uint128 %"$add_call_517", %Uint128* %res6, align 8, !dbg !36 + %"$add_call_517" = call %Uint128 @_add_Uint128(%Uint128 %"$isqrt_four_515", %Uint128 %"$isqrt_uint128_max_516"), !dbg !95 + store %Uint128 %"$add_call_517", %Uint128* %res6, align 8, !dbg !95 %"$gasrem_518" = load i64, i64* @_gasrem, align 8 %"$gascmp_519" = icmp ugt i64 1, %"$gasrem_518" br i1 %"$gascmp_519", label %"$out_of_gas_520", label %"$have_gas_521" @@ -1005,6 +1032,7 @@ entry: %"$consume_522" = sub i64 %"$gasrem_518", 1 store i64 %"$consume_522", i64* @_gasrem, align 8 %res7 = alloca %TName_Pair_Uint128_Uint256*, align 8 + call void @llvm.dbg.declare(metadata %TName_Pair_Uint128_Uint256** %res7, metadata !96, metadata !DIExpression()), !dbg !99 %"$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" @@ -1028,7 +1056,7 @@ entry: %"$adtgep_533" = getelementptr inbounds %CName_Pair_Uint128_Uint256, %CName_Pair_Uint128_Uint256* %"$adtval_530", i32 0, i32 2 store %Uint256 %"$res5_529", %Uint256* %"$adtgep_533", align 8 %"$adtptr_534" = bitcast %CName_Pair_Uint128_Uint256* %"$adtval_530" to %TName_Pair_Uint128_Uint256* - store %TName_Pair_Uint128_Uint256* %"$adtptr_534", %TName_Pair_Uint128_Uint256** %res7, align 8, !dbg !37 + store %TName_Pair_Uint128_Uint256* %"$adtptr_534", %TName_Pair_Uint128_Uint256** %res7, align 8, !dbg !100 %"$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" @@ -1041,6 +1069,7 @@ entry: %"$consume_539" = sub i64 %"$gasrem_535", 1 store i64 %"$consume_539", i64* @_gasrem, align 8 %res8 = alloca %"TName_Pair_Pair_(Uint128)_(Uint256)_Uint32"*, align 8 + call void @llvm.dbg.declare(metadata %"TName_Pair_Pair_(Uint128)_(Uint256)_Uint32"** %res8, metadata !101, metadata !DIExpression()), !dbg !104 %"$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" @@ -1064,7 +1093,7 @@ entry: %"$adtgep_550" = getelementptr inbounds %"CName_Pair_Pair_(Uint128)_(Uint256)_Uint32", %"CName_Pair_Pair_(Uint128)_(Uint256)_Uint32"* %"$adtval_547", i32 0, i32 2 store %Uint32 %"$res4_546", %Uint32* %"$adtgep_550", align 4 %"$adtptr_551" = bitcast %"CName_Pair_Pair_(Uint128)_(Uint256)_Uint32"* %"$adtval_547" to %"TName_Pair_Pair_(Uint128)_(Uint256)_Uint32"* - store %"TName_Pair_Pair_(Uint128)_(Uint256)_Uint32"* %"$adtptr_551", %"TName_Pair_Pair_(Uint128)_(Uint256)_Uint32"** %res8, align 8, !dbg !38 + store %"TName_Pair_Pair_(Uint128)_(Uint256)_Uint32"* %"$adtptr_551", %"TName_Pair_Pair_(Uint128)_(Uint256)_Uint32"** %res8, align 8, !dbg !105 %"$gasrem_552" = load i64, i64* @_gasrem, align 8 %"$gascmp_553" = icmp ugt i64 1, %"$gasrem_552" br i1 %"$gascmp_553", label %"$out_of_gas_554", label %"$have_gas_555" @@ -1088,12 +1117,15 @@ entry: %"$adtgep_562" = getelementptr inbounds %"CName_Pair_Uint64_Pair_(Pair_(Uint128)_(Uint256))_(Uint32)", %"CName_Pair_Uint64_Pair_(Pair_(Uint128)_(Uint256))_(Uint32)"* %"$adtval_559", i32 0, i32 2 store %"TName_Pair_Pair_(Uint128)_(Uint256)_Uint32"* %"$res8_558", %"TName_Pair_Pair_(Uint128)_(Uint256)_Uint32"** %"$adtgep_562", align 8 %"$adtptr_563" = bitcast %"CName_Pair_Uint64_Pair_(Pair_(Uint128)_(Uint256))_(Uint32)"* %"$adtval_559" to %"TName_Pair_Uint64_Pair_(Pair_(Uint128)_(Uint256))_(Uint32)"* - store %"TName_Pair_Uint64_Pair_(Pair_(Uint128)_(Uint256))_(Uint32)"* %"$adtptr_563", %"TName_Pair_Uint64_Pair_(Pair_(Uint128)_(Uint256))_(Uint32)"** %"$expr_6", align 8, !dbg !39 + store %"TName_Pair_Uint64_Pair_(Pair_(Uint128)_(Uint256))_(Uint32)"* %"$adtptr_563", %"TName_Pair_Uint64_Pair_(Pair_(Uint128)_(Uint256))_(Uint32)"** %"$expr_6", align 8, !dbg !106 %"$$expr_6_564" = load %"TName_Pair_Uint64_Pair_(Pair_(Uint128)_(Uint256))_(Uint32)"*, %"TName_Pair_Uint64_Pair_(Pair_(Uint128)_(Uint256))_(Uint32)"** %"$expr_6", align 8 ret %"TName_Pair_Uint64_Pair_(Pair_(Uint128)_(Uint256))_(Uint32)"* %"$$expr_6_564" } -; Function Attrs: nofree nosync nounwind readnone speculatable willreturn +; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn +declare void @llvm.dbg.declare(metadata, metadata, metadata) #0 + +; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn declare double @llvm.log.f64(double) #0 declare %Uint32 @_isqrt_Uint32(%Uint32) @@ -1102,7 +1134,7 @@ declare %Uint64 @_isqrt_Uint64(%Uint64) declare %Uint128 @_isqrt_Uint128(%Uint128) -; Function Attrs: nofree nosync nounwind readnone speculatable willreturn +; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn declare double @llvm.pow.f64(double, double) #0 declare %Uint256* @_isqrt_Uint256(i8*, %Uint256*) @@ -1126,48 +1158,115 @@ entry: ret void } -attributes #0 = { nofree nosync nounwind readnone speculatable willreturn } +attributes #0 = { nocallback nofree nosync nounwind readnone speculatable willreturn } !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) +!1 = distinct !DICompileUnit(language: DW_LANG_C89, file: !2, producer: "Scilla Compiler", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false) !2 = !DIFile(filename: "builtin-isqrt.scilexp", directory: "codegen/expr") -!3 = !{} -!4 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !5, file: !5, type: !6, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!5 = !DIFile(filename: ".", directory: ".") -!6 = !DISubroutineType(types: !7) -!7 = !{!8} -!8 = !DIBasicType(tag: DW_TAG_unspecified_type, name: "void") -!9 = !DILocation(line: 0, scope: !4) -!10 = distinct !DISubprogram(name: "_scilla_expr_fun", linkageName: "_scilla_expr_fun", scope: !2, file: !2, line: 1, type: !6, scopeLine: 1, spFlags: DISPFlagDefinition, unit: !1, retainedNodes: !3) -!11 = !DILocation(line: 1, column: 12, scope: !10) -!12 = !DILocation(line: 2, column: 11, scope: !10) -!13 = !DILocation(line: 3, column: 11, scope: !10) -!14 = !DILocation(line: 4, column: 13, scope: !10) -!15 = !DILocation(line: 5, column: 12, scope: !10) -!16 = !DILocation(line: 6, column: 11, scope: !10) -!17 = !DILocation(line: 7, column: 11, scope: !10) -!18 = !DILocation(line: 8, column: 18, scope: !10) -!19 = !DILocation(line: 9, column: 19, scope: !10) -!20 = !DILocation(line: 10, column: 19, scope: !10) -!21 = !DILocation(line: 12, column: 18, scope: !10) -!22 = !DILocation(line: 13, column: 17, scope: !10) -!23 = !DILocation(line: 14, column: 17, scope: !10) -!24 = !DILocation(line: 15, column: 19, scope: !10) -!25 = !DILocation(line: 16, column: 18, scope: !10) -!26 = !DILocation(line: 17, column: 17, scope: !10) -!27 = !DILocation(line: 18, column: 17, scope: !10) -!28 = !DILocation(line: 19, column: 24, scope: !10) -!29 = !DILocation(line: 20, column: 25, scope: !10) -!30 = !DILocation(line: 21, column: 25, scope: !10) -!31 = !DILocation(line: 23, column: 12, scope: !10) -!32 = !DILocation(line: 24, column: 12, scope: !10) -!33 = !DILocation(line: 25, column: 12, scope: !10) -!34 = !DILocation(line: 26, column: 12, scope: !10) -!35 = !DILocation(line: 28, column: 12, scope: !10) -!36 = !DILocation(line: 29, column: 12, scope: !10) -!37 = !DILocation(line: 31, column: 12, scope: !10) -!38 = !DILocation(line: 32, column: 12, scope: !10) -!39 = !DILocation(line: 33, column: 1, scope: !10) +!3 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !4, file: !4, type: !5, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!4 = !DIFile(filename: ".", directory: ".") +!5 = !DISubroutineType(types: !6) +!6 = !{!7} +!7 = !DIBasicType(tag: DW_TAG_unspecified_type, name: "void") +!8 = !{} +!9 = !DILocation(line: 0, scope: !3) +!10 = distinct !DISubprogram(name: "_scilla_expr_fun", linkageName: "_scilla_expr_fun", scope: !2, file: !2, line: 1, type: !5, scopeLine: 1, spFlags: DISPFlagDefinition, unit: !1, retainedNodes: !8) +!11 = !DILocalVariable(name: "$expr_6", scope: !10, file: !2, line: 1, type: !12) +!12 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "Pair (Uint64) (Pair (Pair (Uint128) (Uint256)) (Uint32))", baseType: !13, size: 8, align: 8, dwarfAddressSpace: 0) +!13 = !DIBasicType(name: "Pair (Uint64) (Pair (Pair (Uint128) (Uint256)) (Uint32))", size: 8) +!14 = !DILocation(line: 1, column: 12, scope: !10) +!15 = !DILocalVariable(name: "zero", scope: !10, file: !2, line: 1, type: !16) +!16 = !DIBasicType(name: "Uint32", size: 4) +!17 = !DILocation(line: 1, column: 5, scope: !10) +!18 = !DILocalVariable(name: "one", scope: !10, file: !2, line: 2, type: !16) +!19 = !DILocation(line: 2, column: 5, scope: !10) +!20 = !DILocation(line: 2, column: 11, scope: !10) +!21 = !DILocalVariable(name: "two", scope: !10, file: !2, line: 3, type: !22) +!22 = !DIBasicType(name: "Uint64", size: 8) +!23 = !DILocation(line: 3, column: 5, scope: !10) +!24 = !DILocation(line: 3, column: 11, scope: !10) +!25 = !DILocalVariable(name: "three", scope: !10, file: !2, line: 4, type: !16) +!26 = !DILocation(line: 4, column: 5, scope: !10) +!27 = !DILocation(line: 4, column: 13, scope: !10) +!28 = !DILocalVariable(name: "four", scope: !10, file: !2, line: 5, type: !29) +!29 = !DIBasicType(name: "Uint128", size: 16) +!30 = !DILocation(line: 5, column: 5, scope: !10) +!31 = !DILocation(line: 5, column: 12, scope: !10) +!32 = !DILocalVariable(name: "six", scope: !10, file: !2, line: 6, type: !16) +!33 = !DILocation(line: 6, column: 5, scope: !10) +!34 = !DILocation(line: 6, column: 11, scope: !10) +!35 = !DILocalVariable(name: "ten", scope: !10, file: !2, line: 7, type: !16) +!36 = !DILocation(line: 7, column: 5, scope: !10) +!37 = !DILocation(line: 7, column: 11, scope: !10) +!38 = !DILocalVariable(name: "thirty_six", scope: !10, file: !2, line: 8, type: !39) +!39 = !DIBasicType(name: "Uint256", size: 32) +!40 = !DILocation(line: 8, column: 5, scope: !10) +!41 = !DILocation(line: 8, column: 18, scope: !10) +!42 = !DILocalVariable(name: "uint256_max", scope: !10, file: !2, line: 9, type: !39) +!43 = !DILocation(line: 9, column: 5, scope: !10) +!44 = !DILocation(line: 9, column: 19, scope: !10) +!45 = !DILocalVariable(name: "uint128_max", scope: !10, file: !2, line: 10, type: !29) +!46 = !DILocation(line: 10, column: 5, scope: !10) +!47 = !DILocation(line: 10, column: 19, scope: !10) +!48 = !DILocalVariable(name: "isqrt_zero", scope: !10, file: !2, line: 12, type: !16) +!49 = !DILocation(line: 12, column: 5, scope: !10) +!50 = !DILocation(line: 12, column: 18, scope: !10) +!51 = !DILocalVariable(name: "isqrt_one", scope: !10, file: !2, line: 13, type: !16) +!52 = !DILocation(line: 13, column: 5, scope: !10) +!53 = !DILocation(line: 13, column: 17, scope: !10) +!54 = !DILocalVariable(name: "isqrt_two", scope: !10, file: !2, line: 14, type: !22) +!55 = !DILocation(line: 14, column: 5, scope: !10) +!56 = !DILocation(line: 14, column: 17, scope: !10) +!57 = !DILocalVariable(name: "isqrt_three", scope: !10, file: !2, line: 15, type: !16) +!58 = !DILocation(line: 15, column: 5, scope: !10) +!59 = !DILocation(line: 15, column: 19, scope: !10) +!60 = !DILocalVariable(name: "isqrt_four", scope: !10, file: !2, line: 16, type: !29) +!61 = !DILocation(line: 16, column: 5, scope: !10) +!62 = !DILocation(line: 16, column: 18, scope: !10) +!63 = !DILocalVariable(name: "isqrt_six", scope: !10, file: !2, line: 17, type: !16) +!64 = !DILocation(line: 17, column: 5, scope: !10) +!65 = !DILocation(line: 17, column: 17, scope: !10) +!66 = !DILocalVariable(name: "isqrt_ten", scope: !10, file: !2, line: 18, type: !16) +!67 = !DILocation(line: 18, column: 5, scope: !10) +!68 = !DILocation(line: 18, column: 17, scope: !10) +!69 = !DILocalVariable(name: "isqrt_thirty_six", scope: !10, file: !2, line: 19, type: !39) +!70 = !DILocation(line: 19, column: 5, scope: !10) +!71 = !DILocation(line: 19, column: 24, scope: !10) +!72 = !DILocalVariable(name: "isqrt_uint256_max", scope: !10, file: !2, line: 20, type: !39) +!73 = !DILocation(line: 20, column: 5, scope: !10) +!74 = !DILocation(line: 20, column: 25, scope: !10) +!75 = !DILocalVariable(name: "isqrt_uint128_max", scope: !10, file: !2, line: 21, type: !29) +!76 = !DILocation(line: 21, column: 5, scope: !10) +!77 = !DILocation(line: 21, column: 25, scope: !10) +!78 = !DILocalVariable(name: "res1", scope: !10, file: !2, line: 23, type: !16) +!79 = !DILocation(line: 23, column: 5, scope: !10) +!80 = !DILocation(line: 23, column: 12, scope: !10) +!81 = !DILocalVariable(name: "res2", scope: !10, file: !2, line: 24, type: !16) +!82 = !DILocation(line: 24, column: 5, scope: !10) +!83 = !DILocation(line: 24, column: 12, scope: !10) +!84 = !DILocalVariable(name: "res3", scope: !10, file: !2, line: 25, type: !16) +!85 = !DILocation(line: 25, column: 5, scope: !10) +!86 = !DILocation(line: 25, column: 12, scope: !10) +!87 = !DILocalVariable(name: "res4", scope: !10, file: !2, line: 26, type: !16) +!88 = !DILocation(line: 26, column: 5, scope: !10) +!89 = !DILocation(line: 26, column: 12, scope: !10) +!90 = !DILocalVariable(name: "res5", scope: !10, file: !2, line: 28, type: !39) +!91 = !DILocation(line: 28, column: 5, scope: !10) +!92 = !DILocation(line: 28, column: 12, scope: !10) +!93 = !DILocalVariable(name: "res6", scope: !10, file: !2, line: 29, type: !29) +!94 = !DILocation(line: 29, column: 5, scope: !10) +!95 = !DILocation(line: 29, column: 12, scope: !10) +!96 = !DILocalVariable(name: "res7", scope: !10, file: !2, line: 31, type: !97) +!97 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "Pair (Uint128) (Uint256)", baseType: !98, size: 8, align: 8, dwarfAddressSpace: 0) +!98 = !DIBasicType(name: "Pair (Uint128) (Uint256)", size: 8) +!99 = !DILocation(line: 31, column: 5, scope: !10) +!100 = !DILocation(line: 31, column: 12, scope: !10) +!101 = !DILocalVariable(name: "res8", scope: !10, file: !2, line: 32, type: !102) +!102 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "Pair (Pair (Uint128) (Uint256)) (Uint32)", baseType: !103, size: 8, align: 8, dwarfAddressSpace: 0) +!103 = !DIBasicType(name: "Pair (Pair (Uint128) (Uint256)) (Uint32)", size: 8) +!104 = !DILocation(line: 32, column: 5, scope: !10) +!105 = !DILocation(line: 32, column: 12, scope: !10) +!106 = !DILocation(line: 33, column: 1, scope: !10) diff --git a/testsuite/expr/builtin-isqrt.ll b/testsuite/expr/builtin-isqrt.ll index 6312b2a9..605f9c70 100644 --- a/testsuite/expr/builtin-isqrt.ll +++ b/testsuite/expr/builtin-isqrt.ll @@ -34,7 +34,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-pc-linux-gnu" +target triple = "x86_64-unknown-linux-gnu" %"$TyDescrTy_PrimTyp_7" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } @@ -1093,7 +1093,7 @@ entry: ret %"TName_Pair_Uint64_Pair_(Pair_(Uint128)_(Uint256))_(Uint32)"* %"$$expr_6_564" } -; Function Attrs: nofree nosync nounwind readnone speculatable willreturn +; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn declare double @llvm.log.f64(double) #0 declare %Uint32 @_isqrt_Uint32(%Uint32) @@ -1102,7 +1102,7 @@ declare %Uint64 @_isqrt_Uint64(%Uint64) declare %Uint128 @_isqrt_Uint128(%Uint128) -; Function Attrs: nofree nosync nounwind readnone speculatable willreturn +; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn declare double @llvm.pow.f64(double, double) #0 declare %Uint256* @_isqrt_Uint256(i8*, %Uint256*) @@ -1126,4 +1126,4 @@ entry: ret void } -attributes #0 = { nofree nosync nounwind readnone speculatable willreturn } +attributes #0 = { nocallback nofree nosync nounwind readnone speculatable willreturn } diff --git a/testsuite/expr/builtin-pow.dbg.ll b/testsuite/expr/builtin-pow.dbg.ll index 7669e710..c1485fd4 100644 --- a/testsuite/expr/builtin-pow.dbg.ll +++ b/testsuite/expr/builtin-pow.dbg.ll @@ -277,7 +277,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-pc-linux-gnu" +target triple = "x86_64-unknown-linux-gnu" %"$TyDescrTy_PrimTyp_212" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } @@ -289,9 +289,9 @@ target triple = "x86_64-pc-linux-gnu" %TName_Bool = type { i8, %CName_True*, %CName_False* } %CName_True = type <{ i8 }> %CName_False = type <{ i8 }> -%"$ParamDescr_2920" = type { %ParamDescrString, %_TyDescrTy_Typ* } +%"$ParamDescr_2922" = type { %ParamDescrString, %_TyDescrTy_Typ* } %ParamDescrString = type { i8*, i32 } -%"$TransDescr_2921" = type { %ParamDescrString, i32, %"$ParamDescr_2920"* } +%"$TransDescr_2923" = type { %ParamDescrString, i32, %"$ParamDescr_2922"* } %"$$fundef_209_env_262" = type { %TName_Bool* } %"$$fundef_207_env_263" = type {} %Uint32 = type { i32 } @@ -356,85 +356,92 @@ target triple = "x86_64-pc-linux-gnu" @"$_gas_charge_accPairUtils_4" = global %Int32 zeroinitializer @_tydescr_table = constant [16 x %_TyDescrTy_Typ*] [%_TyDescrTy_Typ* @"$TyDescr_Event_236", %_TyDescrTy_Typ* @"$TyDescr_Int64_218", %_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_246", %_TyDescrTy_Typ* @"$TyDescr_Uint256_228", %_TyDescrTy_Typ* @"$TyDescr_Uint32_216", %_TyDescrTy_Typ* @"$TyDescr_Uint64_220", %_TyDescrTy_Typ* @"$TyDescr_Bnum_232", %_TyDescrTy_Typ* @"$TyDescr_Uint128_224", %_TyDescrTy_Typ* @"$TyDescr_Exception_238", %_TyDescrTy_Typ* @"$TyDescr_String_230", %_TyDescrTy_Typ* @"$TyDescr_Int256_226", %_TyDescrTy_Typ* @"$TyDescr_Int128_222", %_TyDescrTy_Typ* @"$TyDescr_Bystr_242", %_TyDescrTy_Typ* @"$TyDescr_ReplicateContr_240", %_TyDescrTy_Typ* @"$TyDescr_Message_234", %_TyDescrTy_Typ* @"$TyDescr_Int32_214"] @_tydescr_table_length = constant i32 16 -@_contract_parameters = constant [0 x %"$ParamDescr_2920"] zeroinitializer +@_contract_parameters = constant [0 x %"$ParamDescr_2922"] zeroinitializer @_contract_parameters_length = constant i32 0 -@_transition_parameters = constant [0 x %"$TransDescr_2921"] zeroinitializer +@_transition_parameters = constant [0 x %"$TransDescr_2923"] zeroinitializer @_transition_parameters_length = constant i32 0 -define internal %TName_Bool* @"$fundef_209"(%"$$fundef_209_env_262"* %0, %TName_Bool* %1) !dbg !4 { +define internal %TName_Bool* @"$fundef_209"(%"$$fundef_209_env_262"* %0, %TName_Bool* %1) !dbg !3 { entry: - %"$$fundef_209_env_b_275" = getelementptr inbounds %"$$fundef_209_env_262", %"$$fundef_209_env_262"* %0, i32 0, i32 0 - %"$b_envload_276" = load %TName_Bool*, %TName_Bool** %"$$fundef_209_env_b_275", align 8 + %"$c_306" = alloca %TName_Bool*, align 8 + store %TName_Bool* %1, %TName_Bool** %"$c_306", align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$c_306", metadata !9, metadata !DIExpression()), !dbg !12 + %"$$fundef_209_env_b_276" = getelementptr inbounds %"$$fundef_209_env_262", %"$$fundef_209_env_262"* %0, i32 0, i32 0 + %"$b_envload_277" = load %TName_Bool*, %TName_Bool** %"$$fundef_209_env_b_276", align 8 %b = alloca %TName_Bool*, align 8 - store %TName_Bool* %"$b_envload_276", %TName_Bool** %b, align 8 + store %TName_Bool* %"$b_envload_277", %TName_Bool** %b, align 8 %"$retval_210" = alloca %TName_Bool*, align 8 - %"$gasrem_277" = load i64, i64* @_gasrem, align 8 - %"$gascmp_278" = icmp ugt i64 2, %"$gasrem_277" - br i1 %"$gascmp_278", label %"$out_of_gas_279", label %"$have_gas_280" - -"$out_of_gas_279": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_280" - -"$have_gas_280": ; preds = %"$out_of_gas_279", %entry - %"$consume_281" = sub i64 %"$gasrem_277", 2 - store i64 %"$consume_281", i64* @_gasrem, align 8 - %"$b_283" = load %TName_Bool*, %TName_Bool** %b, align 8 - %"$b_tag_284" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$b_283", i32 0, i32 0 - %"$b_tag_285" = load i8, i8* %"$b_tag_284", align 1 - switch i8 %"$b_tag_285", label %"$empty_default_286" [ - i8 1, label %"$False_287" - i8 0, label %"$True_297" - ], !dbg !9 - -"$False_287": ; preds = %"$have_gas_280" - %"$b_288" = bitcast %TName_Bool* %"$b_283" to %CName_False* - %"$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 = %"$False_287" - call void @_out_of_gas() - br label %"$have_gas_292" - -"$have_gas_292": ; preds = %"$out_of_gas_291", %"$False_287" - %"$consume_293" = sub i64 %"$gasrem_289", 1 - store i64 %"$consume_293", i64* @_gasrem, align 8 - %"$adtval_294_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_294_salloc" = call i8* @_salloc(i8* %"$adtval_294_load", i64 1) - %"$adtval_294" = bitcast i8* %"$adtval_294_salloc" to %CName_False* - %"$adtgep_295" = getelementptr inbounds %CName_False, %CName_False* %"$adtval_294", i32 0, i32 0 - store i8 1, i8* %"$adtgep_295", align 1 - %"$adtptr_296" = bitcast %CName_False* %"$adtval_294" to %TName_Bool* - store %TName_Bool* %"$adtptr_296", %TName_Bool** %"$retval_210", align 8, !dbg !10 - br label %"$matchsucc_282" - -"$True_297": ; preds = %"$have_gas_280" - %"$b_298" = bitcast %TName_Bool* %"$b_283" to %CName_True* - %"$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 = %"$True_297" - call void @_out_of_gas() - br label %"$have_gas_302" - -"$have_gas_302": ; preds = %"$out_of_gas_301", %"$True_297" - %"$consume_303" = sub i64 %"$gasrem_299", 1 - store i64 %"$consume_303", i64* @_gasrem, align 8 - store %TName_Bool* %1, %TName_Bool** %"$retval_210", align 8, !dbg !13 - br label %"$matchsucc_282" - -"$empty_default_286": ; preds = %"$have_gas_280" - br label %"$matchsucc_282" - -"$matchsucc_282": ; preds = %"$have_gas_302", %"$have_gas_292", %"$empty_default_286" - %"$$retval_210_304" = load %TName_Bool*, %TName_Bool** %"$retval_210", align 8 - ret %TName_Bool* %"$$retval_210_304" + call void @llvm.dbg.declare(metadata %TName_Bool** %"$retval_210", metadata !13, metadata !DIExpression()), !dbg !14 + %"$gasrem_278" = load i64, i64* @_gasrem, align 8 + %"$gascmp_279" = icmp ugt i64 2, %"$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", 2 + store i64 %"$consume_282", i64* @_gasrem, align 8 + %"$b_284" = load %TName_Bool*, %TName_Bool** %b, align 8 + %"$b_tag_285" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$b_284", i32 0, i32 0 + %"$b_tag_286" = load i8, i8* %"$b_tag_285", align 1 + switch i8 %"$b_tag_286", label %"$empty_default_287" [ + i8 1, label %"$False_288" + i8 0, label %"$True_298" + ], !dbg !14 + +"$False_288": ; preds = %"$have_gas_281" + %"$b_289" = bitcast %TName_Bool* %"$b_284" to %CName_False* + %"$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_292": ; preds = %"$False_288" + call void @_out_of_gas() + br label %"$have_gas_293" + +"$have_gas_293": ; preds = %"$out_of_gas_292", %"$False_288" + %"$consume_294" = sub i64 %"$gasrem_290", 1 + store i64 %"$consume_294", i64* @_gasrem, align 8 + %"$adtval_295_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_295_salloc" = call i8* @_salloc(i8* %"$adtval_295_load", i64 1) + %"$adtval_295" = bitcast i8* %"$adtval_295_salloc" to %CName_False* + %"$adtgep_296" = getelementptr inbounds %CName_False, %CName_False* %"$adtval_295", i32 0, i32 0 + store i8 1, i8* %"$adtgep_296", align 1 + %"$adtptr_297" = bitcast %CName_False* %"$adtval_295" to %TName_Bool* + store %TName_Bool* %"$adtptr_297", %TName_Bool** %"$retval_210", align 8, !dbg !15 + br label %"$matchsucc_283" + +"$True_298": ; preds = %"$have_gas_281" + %"$b_299" = bitcast %TName_Bool* %"$b_284" to %CName_True* + %"$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 = %"$True_298" + call void @_out_of_gas() + br label %"$have_gas_303" + +"$have_gas_303": ; preds = %"$out_of_gas_302", %"$True_298" + %"$consume_304" = sub i64 %"$gasrem_300", 1 + store i64 %"$consume_304", i64* @_gasrem, align 8 + store %TName_Bool* %1, %TName_Bool** %"$retval_210", align 8, !dbg !18 + br label %"$matchsucc_283" + +"$empty_default_287": ; preds = %"$have_gas_281" + br label %"$matchsucc_283" + +"$matchsucc_283": ; preds = %"$have_gas_303", %"$have_gas_293", %"$empty_default_287" + %"$$retval_210_305" = load %TName_Bool*, %TName_Bool** %"$retval_210", align 8 + ret %TName_Bool* %"$$retval_210_305" } -define internal { %TName_Bool* (i8*, %TName_Bool*)*, i8* } @"$fundef_207"(%"$$fundef_207_env_263"* %0, %TName_Bool* %1) !dbg !15 { +define internal { %TName_Bool* (i8*, %TName_Bool*)*, i8* } @"$fundef_207"(%"$$fundef_207_env_263"* %0, %TName_Bool* %1) !dbg !20 { entry: + %"$b_275" = alloca %TName_Bool*, align 8 + store %TName_Bool* %1, %TName_Bool** %"$b_275", align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$b_275", metadata !21, metadata !DIExpression()), !dbg !22 %"$retval_208" = alloca { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, align 8 %"$gasrem_264" = load i64, i64* @_gasrem, align 8 %"$gascmp_265" = icmp ugt i64 1, %"$gasrem_264" @@ -454,7 +461,7 @@ entry: %"$$fundef_209_cloval_272" = insertvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } { %TName_Bool* (i8*, %TName_Bool*)* bitcast (%TName_Bool* (%"$$fundef_209_env_262"*, %TName_Bool*)* @"$fundef_209" to %TName_Bool* (i8*, %TName_Bool*)*), i8* undef }, i8* %"$$fundef_209_env_voidp_271", 1 %"$$fundef_209_env_b_273" = getelementptr inbounds %"$$fundef_209_env_262", %"$$fundef_209_env_262"* %"$$fundef_209_envp_269", i32 0, i32 0 store %TName_Bool* %1, %TName_Bool** %"$$fundef_209_env_b_273", align 8 - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$fundef_209_cloval_272", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$retval_208", align 8, !dbg !16 + store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$fundef_209_cloval_272", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$retval_208", align 8, !dbg !23 %"$$retval_208_274" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$retval_208", align 8 ret { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$retval_208_274" } @@ -463,4892 +470,5080 @@ declare void @_out_of_gas() declare i8* @_salloc(i8*, i64) -define void @_init_libs() !dbg !17 { +; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn +declare void @llvm.dbg.declare(metadata, metadata, metadata) #0 + +define void @_init_libs() !dbg !24 { entry: - %"$gasrem_305" = load i64, i64* @_gasrem, align 8 - %"$gascmp_306" = icmp ugt i64 5, %"$gasrem_305" - br i1 %"$gascmp_306", label %"$out_of_gas_307", label %"$have_gas_308" + %"$gasrem_307" = load i64, i64* @_gasrem, align 8 + %"$gascmp_308" = icmp ugt i64 5, %"$gasrem_307" + br i1 %"$gascmp_308", label %"$out_of_gas_309", label %"$have_gas_310" -"$out_of_gas_307": ; preds = %entry +"$out_of_gas_309": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_308" + br label %"$have_gas_310" -"$have_gas_308": ; preds = %"$out_of_gas_307", %entry - %"$consume_309" = sub i64 %"$gasrem_305", 5 - store i64 %"$consume_309", i64* @_gasrem, align 8 - store %Int32 { i32 5 }, %Int32* @"$_gas_charge_accrec_lib_5", align 4, !dbg !19 - %"$gasrem_310" = load i64, i64* @_gasrem, align 8 - %"$gascmp_311" = icmp ugt i64 7, %"$gasrem_310" - br i1 %"$gascmp_311", label %"$out_of_gas_312", label %"$have_gas_313" +"$have_gas_310": ; preds = %"$out_of_gas_309", %entry + %"$consume_311" = sub i64 %"$gasrem_307", 5 + store i64 %"$consume_311", i64* @_gasrem, align 8 + store %Int32 { i32 5 }, %Int32* @"$_gas_charge_accrec_lib_5", align 4, !dbg !26 + %"$gasrem_312" = load i64, i64* @_gasrem, align 8 + %"$gascmp_313" = icmp ugt i64 7, %"$gasrem_312" + br i1 %"$gascmp_313", label %"$out_of_gas_314", label %"$have_gas_315" -"$out_of_gas_312": ; preds = %"$have_gas_308" +"$out_of_gas_314": ; preds = %"$have_gas_310" call void @_out_of_gas() - br label %"$have_gas_313" + br label %"$have_gas_315" -"$have_gas_313": ; preds = %"$out_of_gas_312", %"$have_gas_308" - %"$consume_314" = sub i64 %"$gasrem_310", 7 - store i64 %"$consume_314", i64* @_gasrem, align 8 - store %Int32 { i32 7 }, %Int32* @"$_gas_charge_accBoolUtils_0", align 4, !dbg !19 - %"$gasrem_315" = load i64, i64* @_gasrem, align 8 - %"$gascmp_316" = icmp ugt i64 1, %"$gasrem_315" - br i1 %"$gascmp_316", label %"$out_of_gas_317", label %"$have_gas_318" +"$have_gas_315": ; preds = %"$out_of_gas_314", %"$have_gas_310" + %"$consume_316" = sub i64 %"$gasrem_312", 7 + store i64 %"$consume_316", i64* @_gasrem, align 8 + store %Int32 { i32 7 }, %Int32* @"$_gas_charge_accBoolUtils_0", align 4, !dbg !26 + %"$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_317": ; preds = %"$have_gas_313" +"$out_of_gas_319": ; preds = %"$have_gas_315" call void @_out_of_gas() - br label %"$have_gas_318" + br label %"$have_gas_320" -"$have_gas_318": ; preds = %"$out_of_gas_317", %"$have_gas_313" - %"$consume_319" = sub i64 %"$gasrem_315", 1 - store i64 %"$consume_319", 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_207_env_263"*, %TName_Bool*)* @"$fundef_207" 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 !20 - %"$gasrem_323" = load i64, i64* @_gasrem, align 8 - %"$gascmp_324" = icmp ugt i64 196, %"$gasrem_323" - br i1 %"$gascmp_324", label %"$out_of_gas_325", label %"$have_gas_326" +"$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 + 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_207_env_263"*, %TName_Bool*)* @"$fundef_207" 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 !27 + %"$gasrem_325" = load i64, i64* @_gasrem, align 8 + %"$gascmp_326" = icmp ugt i64 196, %"$gasrem_325" + br i1 %"$gascmp_326", label %"$out_of_gas_327", label %"$have_gas_328" -"$out_of_gas_325": ; preds = %"$have_gas_318" +"$out_of_gas_327": ; preds = %"$have_gas_320" call void @_out_of_gas() - br label %"$have_gas_326" + br label %"$have_gas_328" -"$have_gas_326": ; preds = %"$out_of_gas_325", %"$have_gas_318" - %"$consume_327" = sub i64 %"$gasrem_323", 196 - store i64 %"$consume_327", i64* @_gasrem, align 8 - store %Int32 { i32 196 }, %Int32* @"$_gas_charge_accIntUtils_1", align 4, !dbg !19 - %"$gasrem_328" = load i64, i64* @_gasrem, align 8 - %"$gascmp_329" = icmp ugt i64 20, %"$gasrem_328" - br i1 %"$gascmp_329", label %"$out_of_gas_330", label %"$have_gas_331" +"$have_gas_328": ; preds = %"$out_of_gas_327", %"$have_gas_320" + %"$consume_329" = sub i64 %"$gasrem_325", 196 + store i64 %"$consume_329", i64* @_gasrem, align 8 + store %Int32 { i32 196 }, %Int32* @"$_gas_charge_accIntUtils_1", align 4, !dbg !26 + %"$gasrem_330" = load i64, i64* @_gasrem, align 8 + %"$gascmp_331" = icmp ugt i64 20, %"$gasrem_330" + br i1 %"$gascmp_331", label %"$out_of_gas_332", label %"$have_gas_333" -"$out_of_gas_330": ; preds = %"$have_gas_326" +"$out_of_gas_332": ; preds = %"$have_gas_328" call void @_out_of_gas() - br label %"$have_gas_331" + br label %"$have_gas_333" -"$have_gas_331": ; preds = %"$out_of_gas_330", %"$have_gas_326" - %"$consume_332" = sub i64 %"$gasrem_328", 20 - store i64 %"$consume_332", i64* @_gasrem, align 8 - store %Int32 { i32 20 }, %Int32* @"$_gas_charge_accListUtils_2", align 4, !dbg !19 - %"$gasrem_333" = load i64, i64* @_gasrem, align 8 - %"$gascmp_334" = icmp ugt i64 12, %"$gasrem_333" - br i1 %"$gascmp_334", label %"$out_of_gas_335", label %"$have_gas_336" +"$have_gas_333": ; preds = %"$out_of_gas_332", %"$have_gas_328" + %"$consume_334" = sub i64 %"$gasrem_330", 20 + store i64 %"$consume_334", i64* @_gasrem, align 8 + store %Int32 { i32 20 }, %Int32* @"$_gas_charge_accListUtils_2", align 4, !dbg !26 + %"$gasrem_335" = load i64, i64* @_gasrem, align 8 + %"$gascmp_336" = icmp ugt i64 12, %"$gasrem_335" + br i1 %"$gascmp_336", label %"$out_of_gas_337", label %"$have_gas_338" -"$out_of_gas_335": ; preds = %"$have_gas_331" +"$out_of_gas_337": ; preds = %"$have_gas_333" call void @_out_of_gas() - br label %"$have_gas_336" + br label %"$have_gas_338" -"$have_gas_336": ; preds = %"$out_of_gas_335", %"$have_gas_331" - %"$consume_337" = sub i64 %"$gasrem_333", 12 - store i64 %"$consume_337", i64* @_gasrem, align 8 - store %Int32 { i32 12 }, %Int32* @"$_gas_charge_accNatUtils_3", align 4, !dbg !19 - %"$gasrem_338" = load i64, i64* @_gasrem, align 8 - %"$gascmp_339" = icmp ugt i64 2, %"$gasrem_338" - br i1 %"$gascmp_339", label %"$out_of_gas_340", label %"$have_gas_341" +"$have_gas_338": ; preds = %"$out_of_gas_337", %"$have_gas_333" + %"$consume_339" = sub i64 %"$gasrem_335", 12 + store i64 %"$consume_339", i64* @_gasrem, align 8 + store %Int32 { i32 12 }, %Int32* @"$_gas_charge_accNatUtils_3", align 4, !dbg !26 + %"$gasrem_340" = load i64, i64* @_gasrem, align 8 + %"$gascmp_341" = icmp ugt i64 2, %"$gasrem_340" + br i1 %"$gascmp_341", label %"$out_of_gas_342", label %"$have_gas_343" -"$out_of_gas_340": ; preds = %"$have_gas_336" +"$out_of_gas_342": ; preds = %"$have_gas_338" call void @_out_of_gas() - br label %"$have_gas_341" + br label %"$have_gas_343" -"$have_gas_341": ; preds = %"$out_of_gas_340", %"$have_gas_336" - %"$consume_342" = sub i64 %"$gasrem_338", 2 - store i64 %"$consume_342", i64* @_gasrem, align 8 - store %Int32 { i32 2 }, %Int32* @"$_gas_charge_accPairUtils_4", align 4, !dbg !19 +"$have_gas_343": ; preds = %"$out_of_gas_342", %"$have_gas_338" + %"$consume_344" = sub i64 %"$gasrem_340", 2 + store i64 %"$consume_344", i64* @_gasrem, align 8 + store %Int32 { i32 2 }, %Int32* @"$_gas_charge_accPairUtils_4", align 4, !dbg !26 ret void } -define internal %TName_Bool* @_scilla_expr_fun(i8* %0) !dbg !21 { +define internal %TName_Bool* @_scilla_expr_fun(i8* %0) !dbg !28 { entry: %"$expr_211" = alloca %TName_Bool*, align 8 - %"$gasrem_343" = load i64, i64* @_gasrem, align 8 - %"$gascmp_344" = icmp ugt i64 1, %"$gasrem_343" - br i1 %"$gascmp_344", label %"$out_of_gas_345", label %"$have_gas_346" + call void @llvm.dbg.declare(metadata %TName_Bool** %"$expr_211", metadata !29, metadata !DIExpression()), !dbg !30 + %"$gasrem_345" = load i64, i64* @_gasrem, align 8 + %"$gascmp_346" = icmp ugt i64 1, %"$gasrem_345" + br i1 %"$gascmp_346", label %"$out_of_gas_347", label %"$have_gas_348" -"$out_of_gas_345": ; preds = %entry +"$out_of_gas_347": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_346" + br label %"$have_gas_348" -"$have_gas_346": ; preds = %"$out_of_gas_345", %entry - %"$consume_347" = sub i64 %"$gasrem_343", 1 - store i64 %"$consume_347", i64* @_gasrem, align 8 +"$have_gas_348": ; preds = %"$out_of_gas_347", %entry + %"$consume_349" = sub i64 %"$gasrem_345", 1 + store i64 %"$consume_349", i64* @_gasrem, align 8 %p1 = alloca %Uint32, 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" + call void @llvm.dbg.declare(metadata %Uint32* %p1, metadata !31, metadata !DIExpression()), !dbg !33 + %"$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_350": ; preds = %"$have_gas_346" +"$out_of_gas_352": ; preds = %"$have_gas_348" call void @_out_of_gas() - br label %"$have_gas_351" + br label %"$have_gas_353" -"$have_gas_351": ; preds = %"$out_of_gas_350", %"$have_gas_346" - %"$consume_352" = sub i64 %"$gasrem_348", 1 - store i64 %"$consume_352", i64* @_gasrem, align 8 - store %Uint32 zeroinitializer, %Uint32* %p1, align 4, !dbg !22 - %"$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" +"$have_gas_353": ; preds = %"$out_of_gas_352", %"$have_gas_348" + %"$consume_354" = sub i64 %"$gasrem_350", 1 + store i64 %"$consume_354", i64* @_gasrem, align 8 + store %Uint32 zeroinitializer, %Uint32* %p1, align 4, !dbg !30 + %"$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" -"$out_of_gas_355": ; preds = %"$have_gas_351" +"$out_of_gas_357": ; preds = %"$have_gas_353" call void @_out_of_gas() - br label %"$have_gas_356" + br label %"$have_gas_358" -"$have_gas_356": ; preds = %"$out_of_gas_355", %"$have_gas_351" - %"$consume_357" = sub i64 %"$gasrem_353", 1 - store i64 %"$consume_357", i64* @_gasrem, align 8 +"$have_gas_358": ; preds = %"$out_of_gas_357", %"$have_gas_353" + %"$consume_359" = sub i64 %"$gasrem_355", 1 + store i64 %"$consume_359", i64* @_gasrem, align 8 %p2 = alloca %Uint32, 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" + call void @llvm.dbg.declare(metadata %Uint32* %p2, metadata !34, metadata !DIExpression()), !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" -"$out_of_gas_360": ; preds = %"$have_gas_356" +"$out_of_gas_362": ; preds = %"$have_gas_358" call void @_out_of_gas() - br label %"$have_gas_361" + br label %"$have_gas_363" -"$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 - store %Uint32 { i32 1 }, %Uint32* %p2, align 4, !dbg !23 - %"$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" +"$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 + store %Uint32 { i32 1 }, %Uint32* %p2, align 4, !dbg !36 + %"$gasrem_365" = load i64, i64* @_gasrem, align 8 + %"$gascmp_366" = icmp ugt i64 1, %"$gasrem_365" + br i1 %"$gascmp_366", label %"$out_of_gas_367", label %"$have_gas_368" -"$out_of_gas_365": ; preds = %"$have_gas_361" +"$out_of_gas_367": ; preds = %"$have_gas_363" call void @_out_of_gas() - br label %"$have_gas_366" + br label %"$have_gas_368" -"$have_gas_366": ; preds = %"$out_of_gas_365", %"$have_gas_361" - %"$consume_367" = sub i64 %"$gasrem_363", 1 - store i64 %"$consume_367", i64* @_gasrem, align 8 +"$have_gas_368": ; preds = %"$out_of_gas_367", %"$have_gas_363" + %"$consume_369" = sub i64 %"$gasrem_365", 1 + store i64 %"$consume_369", i64* @_gasrem, align 8 %p3 = alloca %Uint32, align 8 - %"$gasrem_368" = load i64, i64* @_gasrem, align 8 - %"$gascmp_369" = icmp ugt i64 1, %"$gasrem_368" - br i1 %"$gascmp_369", label %"$out_of_gas_370", label %"$have_gas_371" + call void @llvm.dbg.declare(metadata %Uint32* %p3, metadata !37, metadata !DIExpression()), !dbg !38 + %"$gasrem_370" = load i64, i64* @_gasrem, align 8 + %"$gascmp_371" = icmp ugt i64 1, %"$gasrem_370" + br i1 %"$gascmp_371", label %"$out_of_gas_372", label %"$have_gas_373" -"$out_of_gas_370": ; preds = %"$have_gas_366" +"$out_of_gas_372": ; preds = %"$have_gas_368" call void @_out_of_gas() - br label %"$have_gas_371" + br label %"$have_gas_373" -"$have_gas_371": ; preds = %"$out_of_gas_370", %"$have_gas_366" - %"$consume_372" = sub i64 %"$gasrem_368", 1 - store i64 %"$consume_372", i64* @_gasrem, align 8 - store %Uint32 { i32 4 }, %Uint32* %p3, align 4, !dbg !24 - %"$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" +"$have_gas_373": ; preds = %"$out_of_gas_372", %"$have_gas_368" + %"$consume_374" = sub i64 %"$gasrem_370", 1 + store i64 %"$consume_374", i64* @_gasrem, align 8 + store %Uint32 { i32 4 }, %Uint32* %p3, align 4, !dbg !39 + %"$gasrem_375" = load i64, i64* @_gasrem, align 8 + %"$gascmp_376" = icmp ugt i64 1, %"$gasrem_375" + br i1 %"$gascmp_376", label %"$out_of_gas_377", label %"$have_gas_378" -"$out_of_gas_375": ; preds = %"$have_gas_371" +"$out_of_gas_377": ; preds = %"$have_gas_373" call void @_out_of_gas() - br label %"$have_gas_376" + br label %"$have_gas_378" -"$have_gas_376": ; preds = %"$out_of_gas_375", %"$have_gas_371" - %"$consume_377" = sub i64 %"$gasrem_373", 1 - store i64 %"$consume_377", i64* @_gasrem, align 8 +"$have_gas_378": ; preds = %"$out_of_gas_377", %"$have_gas_373" + %"$consume_379" = sub i64 %"$gasrem_375", 1 + store i64 %"$consume_379", i64* @_gasrem, align 8 %p4 = alloca %Uint32, 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" + call void @llvm.dbg.declare(metadata %Uint32* %p4, metadata !40, metadata !DIExpression()), !dbg !41 + %"$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_380": ; preds = %"$have_gas_376" +"$out_of_gas_382": ; preds = %"$have_gas_378" call void @_out_of_gas() - br label %"$have_gas_381" + br label %"$have_gas_383" -"$have_gas_381": ; preds = %"$out_of_gas_380", %"$have_gas_376" - %"$consume_382" = sub i64 %"$gasrem_378", 1 - store i64 %"$consume_382", i64* @_gasrem, align 8 - store %Uint32 { i32 10 }, %Uint32* %p4, align 4, !dbg !25 - %"$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" +"$have_gas_383": ; preds = %"$out_of_gas_382", %"$have_gas_378" + %"$consume_384" = sub i64 %"$gasrem_380", 1 + store i64 %"$consume_384", i64* @_gasrem, align 8 + store %Uint32 { i32 10 }, %Uint32* %p4, align 4, !dbg !42 + %"$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_385": ; preds = %"$have_gas_381" +"$out_of_gas_387": ; preds = %"$have_gas_383" call void @_out_of_gas() - br label %"$have_gas_386" + br label %"$have_gas_388" -"$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 +"$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 %t1 = alloca %Uint32, 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" + call void @llvm.dbg.declare(metadata %Uint32* %t1, metadata !43, metadata !DIExpression()), !dbg !44 + %"$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_390": ; preds = %"$have_gas_386" +"$out_of_gas_392": ; preds = %"$have_gas_388" call void @_out_of_gas() - br label %"$have_gas_391" + br label %"$have_gas_393" -"$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 %Uint32 { i32 2 }, %Uint32* %t1, align 4, !dbg !26 - %"$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" +"$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 %Uint32 { i32 2 }, %Uint32* %t1, align 4, !dbg !45 + %"$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_395": ; preds = %"$have_gas_391" +"$out_of_gas_397": ; preds = %"$have_gas_393" call void @_out_of_gas() - br label %"$have_gas_396" + br label %"$have_gas_398" -"$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 +"$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 %t2 = alloca %Int32, 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" + call void @llvm.dbg.declare(metadata %Int32* %t2, metadata !46, metadata !DIExpression()), !dbg !48 + %"$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_400": ; preds = %"$have_gas_396" +"$out_of_gas_402": ; preds = %"$have_gas_398" call void @_out_of_gas() - br label %"$have_gas_401" + br label %"$have_gas_403" -"$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 %Int32 { i32 3 }, %Int32* %t2, align 4, !dbg !27 - %"$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" +"$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 3 }, %Int32* %t2, align 4, !dbg !49 + %"$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_405": ; preds = %"$have_gas_401" +"$out_of_gas_407": ; preds = %"$have_gas_403" call void @_out_of_gas() - br label %"$have_gas_406" + br label %"$have_gas_408" -"$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 +"$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 %t3 = alloca %Uint64, 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" + call void @llvm.dbg.declare(metadata %Uint64* %t3, metadata !50, metadata !DIExpression()), !dbg !52 + %"$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_410": ; preds = %"$have_gas_406" +"$out_of_gas_412": ; preds = %"$have_gas_408" call void @_out_of_gas() - br label %"$have_gas_411" + br label %"$have_gas_413" -"$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 %Uint64 { i64 100 }, %Uint64* %t3, align 8, !dbg !28 - %"$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" +"$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 %Uint64 { i64 100 }, %Uint64* %t3, align 8, !dbg !53 + %"$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_415": ; preds = %"$have_gas_411" +"$out_of_gas_417": ; preds = %"$have_gas_413" call void @_out_of_gas() - br label %"$have_gas_416" + br label %"$have_gas_418" -"$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 +"$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 %t4 = alloca %Int64, 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" + call void @llvm.dbg.declare(metadata %Int64* %t4, metadata !54, metadata !DIExpression()), !dbg !56 + %"$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_420": ; preds = %"$have_gas_416" +"$out_of_gas_422": ; preds = %"$have_gas_418" call void @_out_of_gas() - br label %"$have_gas_421" + br label %"$have_gas_423" -"$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 %Int64 { i64 -101 }, %Int64* %t4, align 8, !dbg !29 - %"$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" +"$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 %Int64 { i64 -101 }, %Int64* %t4, align 8, !dbg !57 + %"$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_425": ; preds = %"$have_gas_421" +"$out_of_gas_427": ; preds = %"$have_gas_423" call void @_out_of_gas() - br label %"$have_gas_426" + br label %"$have_gas_428" -"$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 +"$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 %t5 = alloca %Uint128, align 8 - %"$gasrem_428" = load i64, i64* @_gasrem, align 8 - %"$gascmp_429" = icmp ugt i64 1, %"$gasrem_428" - br i1 %"$gascmp_429", label %"$out_of_gas_430", label %"$have_gas_431" + call void @llvm.dbg.declare(metadata %Uint128* %t5, metadata !58, metadata !DIExpression()), !dbg !60 + %"$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_430": ; preds = %"$have_gas_426" +"$out_of_gas_432": ; preds = %"$have_gas_428" call void @_out_of_gas() - br label %"$have_gas_431" + br label %"$have_gas_433" -"$have_gas_431": ; preds = %"$out_of_gas_430", %"$have_gas_426" - %"$consume_432" = sub i64 %"$gasrem_428", 1 - store i64 %"$consume_432", i64* @_gasrem, align 8 - store %Uint128 { i128 1000 }, %Uint128* %t5, align 8, !dbg !30 - %"$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" +"$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 %Uint128 { i128 1000 }, %Uint128* %t5, align 8, !dbg !61 + %"$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_435": ; preds = %"$have_gas_431" +"$out_of_gas_437": ; preds = %"$have_gas_433" call void @_out_of_gas() - br label %"$have_gas_436" + br label %"$have_gas_438" -"$have_gas_436": ; preds = %"$out_of_gas_435", %"$have_gas_431" - %"$consume_437" = sub i64 %"$gasrem_433", 1 - store i64 %"$consume_437", 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 %t6 = alloca %Int128, 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" + call void @llvm.dbg.declare(metadata %Int128* %t6, metadata !62, metadata !DIExpression()), !dbg !64 + %"$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_440": ; preds = %"$have_gas_436" +"$out_of_gas_442": ; preds = %"$have_gas_438" call void @_out_of_gas() - br label %"$have_gas_441" + br label %"$have_gas_443" -"$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 %Int128 { i128 501 }, %Int128* %t6, align 8, !dbg !31 - %"$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_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 %Int128 { i128 501 }, %Int128* %t6, align 8, !dbg !65 + %"$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_445": ; preds = %"$have_gas_441" +"$out_of_gas_447": ; preds = %"$have_gas_443" call void @_out_of_gas() - br label %"$have_gas_446" + br label %"$have_gas_448" -"$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_448": ; preds = %"$out_of_gas_447", %"$have_gas_443" + %"$consume_449" = sub i64 %"$gasrem_445", 1 + store i64 %"$consume_449", i64* @_gasrem, align 8 %t7 = alloca %Uint256, 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" + call void @llvm.dbg.declare(metadata %Uint256* %t7, metadata !66, metadata !DIExpression()), !dbg !68 + %"$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_450": ; preds = %"$have_gas_446" +"$out_of_gas_452": ; preds = %"$have_gas_448" call void @_out_of_gas() - br label %"$have_gas_451" + br label %"$have_gas_453" -"$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 - store %Uint256 { i256 10001 }, %Uint256* %t7, align 8, !dbg !32 - %"$gasrem_453" = load i64, i64* @_gasrem, align 8 - %"$gascmp_454" = icmp ugt i64 1, %"$gasrem_453" - br i1 %"$gascmp_454", label %"$out_of_gas_455", label %"$have_gas_456" +"$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 %Uint256 { i256 10001 }, %Uint256* %t7, align 8, !dbg !69 + %"$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_455": ; preds = %"$have_gas_451" +"$out_of_gas_457": ; preds = %"$have_gas_453" call void @_out_of_gas() - br label %"$have_gas_456" + br label %"$have_gas_458" -"$have_gas_456": ; preds = %"$out_of_gas_455", %"$have_gas_451" - %"$consume_457" = sub i64 %"$gasrem_453", 1 - store i64 %"$consume_457", 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 %t8 = alloca %Int256, 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" + call void @llvm.dbg.declare(metadata %Int256* %t8, metadata !70, metadata !DIExpression()), !dbg !72 + %"$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_460": ; preds = %"$have_gas_456" +"$out_of_gas_462": ; preds = %"$have_gas_458" call void @_out_of_gas() - br label %"$have_gas_461" + br label %"$have_gas_463" -"$have_gas_461": ; preds = %"$out_of_gas_460", %"$have_gas_456" - %"$consume_462" = sub i64 %"$gasrem_458", 1 - store i64 %"$consume_462", i64* @_gasrem, align 8 - store %Int256 { i256 -10001 }, %Int256* %t8, align 8, !dbg !33 - %"$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" +"$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 %Int256 { i256 -10001 }, %Int256* %t8, align 8, !dbg !73 + %"$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" -"$out_of_gas_465": ; preds = %"$have_gas_461" +"$out_of_gas_467": ; preds = %"$have_gas_463" call void @_out_of_gas() - br label %"$have_gas_466" + br label %"$have_gas_468" -"$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 +"$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 %t9 = alloca %Int256, 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" + call void @llvm.dbg.declare(metadata %Int256* %t9, metadata !74, metadata !DIExpression()), !dbg !75 + %"$gasrem_470" = load i64, i64* @_gasrem, align 8 + %"$gascmp_471" = icmp ugt i64 1, %"$gasrem_470" + br i1 %"$gascmp_471", label %"$out_of_gas_472", label %"$have_gas_473" -"$out_of_gas_470": ; preds = %"$have_gas_466" +"$out_of_gas_472": ; preds = %"$have_gas_468" call void @_out_of_gas() - br label %"$have_gas_471" + br label %"$have_gas_473" -"$have_gas_471": ; preds = %"$out_of_gas_470", %"$have_gas_466" - %"$consume_472" = sub i64 %"$gasrem_468", 1 - store i64 %"$consume_472", i64* @_gasrem, align 8 - store %Int256 { i256 10002 }, %Int256* %t9, align 8, !dbg !34 - %"$gasrem_473" = load i64, i64* @_gasrem, align 8 - %"$gascmp_474" = icmp ugt i64 1, %"$gasrem_473" - br i1 %"$gascmp_474", label %"$out_of_gas_475", label %"$have_gas_476" +"$have_gas_473": ; preds = %"$out_of_gas_472", %"$have_gas_468" + %"$consume_474" = sub i64 %"$gasrem_470", 1 + store i64 %"$consume_474", i64* @_gasrem, align 8 + store %Int256 { i256 10002 }, %Int256* %t9, align 8, !dbg !76 + %"$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_475": ; preds = %"$have_gas_471" +"$out_of_gas_477": ; preds = %"$have_gas_473" call void @_out_of_gas() - br label %"$have_gas_476" + br label %"$have_gas_478" -"$have_gas_476": ; preds = %"$out_of_gas_475", %"$have_gas_471" - %"$consume_477" = sub i64 %"$gasrem_473", 1 - store i64 %"$consume_477", i64* @_gasrem, align 8 +"$have_gas_478": ; preds = %"$out_of_gas_477", %"$have_gas_473" + %"$consume_479" = sub i64 %"$gasrem_475", 1 + store i64 %"$consume_479", i64* @_gasrem, align 8 %res = alloca %TName_Bool*, 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" - -"$out_of_gas_480": ; preds = %"$have_gas_476" - call void @_out_of_gas() - br label %"$have_gas_481" - -"$have_gas_481": ; preds = %"$out_of_gas_480", %"$have_gas_476" - %"$consume_482" = sub i64 %"$gasrem_478", 1 - store i64 %"$consume_482", i64* @_gasrem, align 8 - %"$adtval_483_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_483_salloc" = call i8* @_salloc(i8* %"$adtval_483_load", i64 1) - %"$adtval_483" = bitcast i8* %"$adtval_483_salloc" to %CName_True* - %"$adtgep_484" = getelementptr inbounds %CName_True, %CName_True* %"$adtval_483", i32 0, i32 0 - store i8 0, i8* %"$adtgep_484", align 1 - %"$adtptr_485" = bitcast %CName_True* %"$adtval_483" to %TName_Bool* - store %TName_Bool* %"$adtptr_485", %TName_Bool** %res, align 8, !dbg !35 - %"$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_481" - call void @_out_of_gas() - br label %"$have_gas_489" - -"$have_gas_489": ; preds = %"$out_of_gas_488", %"$have_gas_481" - %"$consume_490" = sub i64 %"$gasrem_486", 1 - store i64 %"$consume_490", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %res, metadata !77, metadata !DIExpression()), !dbg !78 + %"$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 + %"$adtval_485_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_485_salloc" = call i8* @_salloc(i8* %"$adtval_485_load", i64 1) + %"$adtval_485" = bitcast i8* %"$adtval_485_salloc" to %CName_True* + %"$adtgep_486" = getelementptr inbounds %CName_True, %CName_True* %"$adtval_485", i32 0, i32 0 + store i8 0, i8* %"$adtgep_486", align 1 + %"$adtptr_487" = bitcast %CName_True* %"$adtval_485" to %TName_Bool* + store %TName_Bool* %"$adtptr_487", %TName_Bool** %res, align 8, !dbg !79 + %"$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_483" + call void @_out_of_gas() + br label %"$have_gas_491" + +"$have_gas_491": ; preds = %"$out_of_gas_490", %"$have_gas_483" + %"$consume_492" = sub i64 %"$gasrem_488", 1 + store i64 %"$consume_492", i64* @_gasrem, align 8 %p = alloca %Uint32, align 8 - %"$p1_491" = load %Uint32, %Uint32* %p1, align 4 - %"$valueof_492" = extractvalue %Uint32 %"$p1_491", 0 - %"$valueof_493" = zext i32 %"$valueof_492" to i64 - %"$gaslogof_494" = uitofp i64 %"$valueof_493" to double - %"$gaslogof_495" = fadd double %"$gaslogof_494", 1.000000e+00 - %"$gaslogof_496" = call double @llvm.log.f64(double %"$gaslogof_495") - %"$gaslogof_497" = fptoui double %"$gaslogof_496" to i64 - %"$gaslogof_498" = add i64 %"$gaslogof_497", 1 - %"$gasmul_499" = mul i64 20, %"$gaslogof_498" - %"$gasrem_500" = load i64, i64* @_gasrem, align 8 - %"$gascmp_501" = icmp ugt i64 %"$gasmul_499", %"$gasrem_500" - br i1 %"$gascmp_501", label %"$out_of_gas_502", label %"$have_gas_503" - -"$out_of_gas_502": ; preds = %"$have_gas_489" - call void @_out_of_gas() - br label %"$have_gas_503" - -"$have_gas_503": ; preds = %"$out_of_gas_502", %"$have_gas_489" - %"$consume_504" = sub i64 %"$gasrem_500", %"$gasmul_499" - store i64 %"$consume_504", i64* @_gasrem, align 8 - %"$t1_505" = load %Uint32, %Uint32* %t1, align 4 - %"$p1_506" = load %Uint32, %Uint32* %p1, align 4 - %"$pow_call_507" = call %Uint32 @_pow_Uint32(%Uint32 %"$t1_505", %Uint32 %"$p1_506"), !dbg !36 - store %Uint32 %"$pow_call_507", %Uint32* %p, align 4, !dbg !36 - %"$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" - -"$out_of_gas_510": ; preds = %"$have_gas_503" - call void @_out_of_gas() - br label %"$have_gas_511" - -"$have_gas_511": ; preds = %"$out_of_gas_510", %"$have_gas_503" - %"$consume_512" = sub i64 %"$gasrem_508", 1 - store i64 %"$consume_512", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %Uint32* %p, metadata !80, metadata !DIExpression()), !dbg !81 + %"$p1_493" = load %Uint32, %Uint32* %p1, align 4 + %"$valueof_494" = extractvalue %Uint32 %"$p1_493", 0 + %"$valueof_495" = zext i32 %"$valueof_494" to i64 + %"$gaslogof_496" = uitofp i64 %"$valueof_495" to double + %"$gaslogof_497" = fadd double %"$gaslogof_496", 1.000000e+00 + %"$gaslogof_498" = call double @llvm.log.f64(double %"$gaslogof_497") + %"$gaslogof_499" = fptoui double %"$gaslogof_498" to i64 + %"$gaslogof_500" = add i64 %"$gaslogof_499", 1 + %"$gasmul_501" = mul i64 20, %"$gaslogof_500" + %"$gasrem_502" = load i64, i64* @_gasrem, align 8 + %"$gascmp_503" = icmp ugt i64 %"$gasmul_501", %"$gasrem_502" + br i1 %"$gascmp_503", label %"$out_of_gas_504", label %"$have_gas_505" + +"$out_of_gas_504": ; preds = %"$have_gas_491" + call void @_out_of_gas() + br label %"$have_gas_505" + +"$have_gas_505": ; preds = %"$out_of_gas_504", %"$have_gas_491" + %"$consume_506" = sub i64 %"$gasrem_502", %"$gasmul_501" + store i64 %"$consume_506", i64* @_gasrem, align 8 + %"$t1_507" = load %Uint32, %Uint32* %t1, align 4 + %"$p1_508" = load %Uint32, %Uint32* %p1, align 4 + %"$pow_call_509" = call %Uint32 @_pow_Uint32(%Uint32 %"$t1_507", %Uint32 %"$p1_508"), !dbg !82 + store %Uint32 %"$pow_call_509", %Uint32* %p, align 4, !dbg !82 + %"$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_505" + call void @_out_of_gas() + br label %"$have_gas_513" + +"$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 %"$res_6" = alloca %TName_Bool*, align 8 - %"$gasrem_513" = load i64, i64* @_gasrem, align 8 - %"$gascmp_514" = icmp ugt i64 1, %"$gasrem_513" - br i1 %"$gascmp_514", label %"$out_of_gas_515", label %"$have_gas_516" + call void @llvm.dbg.declare(metadata %TName_Bool** %"$res_6", metadata !83, metadata !DIExpression()), !dbg !84 + %"$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_515": ; preds = %"$have_gas_511" +"$out_of_gas_517": ; preds = %"$have_gas_513" call void @_out_of_gas() - br label %"$have_gas_516" + br label %"$have_gas_518" -"$have_gas_516": ; preds = %"$out_of_gas_515", %"$have_gas_511" - %"$consume_517" = sub i64 %"$gasrem_513", 1 - store i64 %"$consume_517", i64* @_gasrem, align 8 +"$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 %ans = alloca %Uint32, align 8 - %"$gasrem_518" = load i64, i64* @_gasrem, align 8 - %"$gascmp_519" = icmp ugt i64 1, %"$gasrem_518" - br i1 %"$gascmp_519", label %"$out_of_gas_520", label %"$have_gas_521" + call void @llvm.dbg.declare(metadata %Uint32* %ans, metadata !85, metadata !DIExpression()), !dbg !86 + %"$gasrem_520" = load i64, i64* @_gasrem, align 8 + %"$gascmp_521" = icmp ugt i64 1, %"$gasrem_520" + br i1 %"$gascmp_521", label %"$out_of_gas_522", label %"$have_gas_523" -"$out_of_gas_520": ; preds = %"$have_gas_516" +"$out_of_gas_522": ; preds = %"$have_gas_518" call void @_out_of_gas() - br label %"$have_gas_521" + br label %"$have_gas_523" -"$have_gas_521": ; preds = %"$out_of_gas_520", %"$have_gas_516" - %"$consume_522" = sub i64 %"$gasrem_518", 1 - store i64 %"$consume_522", i64* @_gasrem, align 8 - store %Uint32 { i32 1 }, %Uint32* %ans, align 4, !dbg !37 - %"$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" +"$have_gas_523": ; preds = %"$out_of_gas_522", %"$have_gas_518" + %"$consume_524" = sub i64 %"$gasrem_520", 1 + store i64 %"$consume_524", i64* @_gasrem, align 8 + store %Uint32 { i32 1 }, %Uint32* %ans, align 4, !dbg !87 + %"$gasrem_525" = load i64, i64* @_gasrem, align 8 + %"$gascmp_526" = icmp ugt i64 1, %"$gasrem_525" + br i1 %"$gascmp_526", label %"$out_of_gas_527", label %"$have_gas_528" -"$out_of_gas_525": ; preds = %"$have_gas_521" +"$out_of_gas_527": ; preds = %"$have_gas_523" call void @_out_of_gas() - br label %"$have_gas_526" + br label %"$have_gas_528" -"$have_gas_526": ; preds = %"$out_of_gas_525", %"$have_gas_521" - %"$consume_527" = sub i64 %"$gasrem_523", 1 - store i64 %"$consume_527", i64* @_gasrem, align 8 +"$have_gas_528": ; preds = %"$out_of_gas_527", %"$have_gas_523" + %"$consume_529" = sub i64 %"$gasrem_525", 1 + store i64 %"$consume_529", i64* @_gasrem, align 8 %res_ = alloca %TName_Bool*, align 8 - %"$gasrem_528" = load i64, i64* @_gasrem, align 8 - %"$gascmp_529" = icmp ugt i64 4, %"$gasrem_528" - br i1 %"$gascmp_529", label %"$out_of_gas_530", label %"$have_gas_531" - -"$out_of_gas_530": ; preds = %"$have_gas_526" - call void @_out_of_gas() - br label %"$have_gas_531" - -"$have_gas_531": ; preds = %"$out_of_gas_530", %"$have_gas_526" - %"$consume_532" = sub i64 %"$gasrem_528", 4 - store i64 %"$consume_532", i64* @_gasrem, align 8 - %"$execptr_load_533" = load i8*, i8** @_execptr, align 8 - %"$p_534" = load %Uint32, %Uint32* %p, align 4 - %"$ans_535" = load %Uint32, %Uint32* %ans, align 4 - %"$eq_call_536" = call %TName_Bool* @_eq_Uint32(i8* %"$execptr_load_533", %Uint32 %"$p_534", %Uint32 %"$ans_535"), !dbg !38 - store %TName_Bool* %"$eq_call_536", %TName_Bool** %res_, align 8, !dbg !38 - %"$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 = %"$have_gas_531" - call void @_out_of_gas() - br label %"$have_gas_541" - -"$have_gas_541": ; preds = %"$out_of_gas_540", %"$have_gas_531" - %"$consume_542" = sub i64 %"$gasrem_538", 1 - store i64 %"$consume_542", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %res_, metadata !88, metadata !DIExpression()), !dbg !89 + %"$gasrem_530" = load i64, i64* @_gasrem, align 8 + %"$gascmp_531" = icmp ugt i64 4, %"$gasrem_530" + br i1 %"$gascmp_531", label %"$out_of_gas_532", label %"$have_gas_533" + +"$out_of_gas_532": ; preds = %"$have_gas_528" + call void @_out_of_gas() + br label %"$have_gas_533" + +"$have_gas_533": ; preds = %"$out_of_gas_532", %"$have_gas_528" + %"$consume_534" = sub i64 %"$gasrem_530", 4 + store i64 %"$consume_534", i64* @_gasrem, align 8 + %"$execptr_load_535" = load i8*, i8** @_execptr, align 8 + %"$p_536" = load %Uint32, %Uint32* %p, align 4 + %"$ans_537" = load %Uint32, %Uint32* %ans, align 4 + %"$eq_call_538" = call %TName_Bool* @_eq_Uint32(i8* %"$execptr_load_535", %Uint32 %"$p_536", %Uint32 %"$ans_537"), !dbg !90 + store %TName_Bool* %"$eq_call_538", %TName_Bool** %res_, align 8, !dbg !90 + %"$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_533" + call void @_out_of_gas() + br label %"$have_gas_543" + +"$have_gas_543": ; preds = %"$out_of_gas_542", %"$have_gas_533" + %"$consume_544" = sub i64 %"$gasrem_540", 1 + store i64 %"$consume_544", i64* @_gasrem, align 8 %"$BoolUtils.andb_139" = alloca { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, align 8 - %"$BoolUtils.andb_543" = 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_544" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_543", 0 - %"$BoolUtils.andb_envptr_545" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_543", 1 - %"$res_546" = load %TName_Bool*, %TName_Bool** %res, align 8 - %"$BoolUtils.andb_call_547" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_544"(i8* %"$BoolUtils.andb_envptr_545", %TName_Bool* %"$res_546"), !dbg !39 - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_547", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_139", align 8, !dbg !39 + %"$BoolUtils.andb_545" = 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_546" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_545", 0 + %"$BoolUtils.andb_envptr_547" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_545", 1 + %"$res_548" = load %TName_Bool*, %TName_Bool** %res, align 8 + %"$BoolUtils.andb_call_549" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_546"(i8* %"$BoolUtils.andb_envptr_547", %TName_Bool* %"$res_548"), !dbg !91 + store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_549", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_139", align 8, !dbg !91 %"$BoolUtils.andb_140" = alloca %TName_Bool*, align 8 - %"$$BoolUtils.andb_139_548" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_139", align 8 - %"$$BoolUtils.andb_139_fptr_549" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_139_548", 0 - %"$$BoolUtils.andb_139_envptr_550" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_139_548", 1 - %"$res__551" = load %TName_Bool*, %TName_Bool** %res_, align 8 - %"$$BoolUtils.andb_139_call_552" = call %TName_Bool* %"$$BoolUtils.andb_139_fptr_549"(i8* %"$$BoolUtils.andb_139_envptr_550", %TName_Bool* %"$res__551"), !dbg !39 - store %TName_Bool* %"$$BoolUtils.andb_139_call_552", %TName_Bool** %"$BoolUtils.andb_140", align 8, !dbg !39 - %"$$BoolUtils.andb_140_553" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_140", align 8 - store %TName_Bool* %"$$BoolUtils.andb_140_553", %TName_Bool** %"$res_6", align 8, !dbg !39 - %"$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_541" - call void @_out_of_gas() - br label %"$have_gas_557" - -"$have_gas_557": ; preds = %"$out_of_gas_556", %"$have_gas_541" - %"$consume_558" = sub i64 %"$gasrem_554", 1 - store i64 %"$consume_558", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$BoolUtils.andb_140", metadata !92, metadata !DIExpression()), !dbg !91 + %"$$BoolUtils.andb_139_550" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_139", align 8 + %"$$BoolUtils.andb_139_fptr_551" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_139_550", 0 + %"$$BoolUtils.andb_139_envptr_552" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_139_550", 1 + %"$res__553" = load %TName_Bool*, %TName_Bool** %res_, align 8 + %"$$BoolUtils.andb_139_call_554" = call %TName_Bool* %"$$BoolUtils.andb_139_fptr_551"(i8* %"$$BoolUtils.andb_139_envptr_552", %TName_Bool* %"$res__553"), !dbg !91 + store %TName_Bool* %"$$BoolUtils.andb_139_call_554", %TName_Bool** %"$BoolUtils.andb_140", align 8, !dbg !91 + %"$$BoolUtils.andb_140_555" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_140", align 8 + store %TName_Bool* %"$$BoolUtils.andb_140_555", %TName_Bool** %"$res_6", align 8, !dbg !91 + %"$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_543" + call void @_out_of_gas() + br label %"$have_gas_559" + +"$have_gas_559": ; preds = %"$out_of_gas_558", %"$have_gas_543" + %"$consume_560" = sub i64 %"$gasrem_556", 1 + store i64 %"$consume_560", i64* @_gasrem, align 8 %"$p_7" = alloca %Uint32, align 8 - %"$p2_559" = load %Uint32, %Uint32* %p2, align 4 - %"$valueof_560" = extractvalue %Uint32 %"$p2_559", 0 - %"$valueof_561" = zext i32 %"$valueof_560" to i64 - %"$gaslogof_562" = uitofp i64 %"$valueof_561" to double - %"$gaslogof_563" = fadd double %"$gaslogof_562", 1.000000e+00 - %"$gaslogof_564" = call double @llvm.log.f64(double %"$gaslogof_563") - %"$gaslogof_565" = fptoui double %"$gaslogof_564" to i64 - %"$gaslogof_566" = add i64 %"$gaslogof_565", 1 - %"$gasmul_567" = mul i64 20, %"$gaslogof_566" - %"$gasrem_568" = load i64, i64* @_gasrem, align 8 - %"$gascmp_569" = icmp ugt i64 %"$gasmul_567", %"$gasrem_568" - br i1 %"$gascmp_569", label %"$out_of_gas_570", label %"$have_gas_571" - -"$out_of_gas_570": ; preds = %"$have_gas_557" - call void @_out_of_gas() - br label %"$have_gas_571" - -"$have_gas_571": ; preds = %"$out_of_gas_570", %"$have_gas_557" - %"$consume_572" = sub i64 %"$gasrem_568", %"$gasmul_567" - store i64 %"$consume_572", i64* @_gasrem, align 8 - %"$t1_573" = load %Uint32, %Uint32* %t1, align 4 - %"$p2_574" = load %Uint32, %Uint32* %p2, align 4 - %"$pow_call_575" = call %Uint32 @_pow_Uint32(%Uint32 %"$t1_573", %Uint32 %"$p2_574"), !dbg !40 - store %Uint32 %"$pow_call_575", %Uint32* %"$p_7", align 4, !dbg !40 - %"$gasrem_576" = load i64, i64* @_gasrem, align 8 - %"$gascmp_577" = icmp ugt i64 1, %"$gasrem_576" - br i1 %"$gascmp_577", label %"$out_of_gas_578", label %"$have_gas_579" - -"$out_of_gas_578": ; preds = %"$have_gas_571" - call void @_out_of_gas() - br label %"$have_gas_579" - -"$have_gas_579": ; preds = %"$out_of_gas_578", %"$have_gas_571" - %"$consume_580" = sub i64 %"$gasrem_576", 1 - store i64 %"$consume_580", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %Uint32* %"$p_7", metadata !93, metadata !DIExpression()), !dbg !94 + %"$p2_561" = load %Uint32, %Uint32* %p2, align 4 + %"$valueof_562" = extractvalue %Uint32 %"$p2_561", 0 + %"$valueof_563" = zext i32 %"$valueof_562" to i64 + %"$gaslogof_564" = uitofp i64 %"$valueof_563" to double + %"$gaslogof_565" = fadd double %"$gaslogof_564", 1.000000e+00 + %"$gaslogof_566" = call double @llvm.log.f64(double %"$gaslogof_565") + %"$gaslogof_567" = fptoui double %"$gaslogof_566" to i64 + %"$gaslogof_568" = add i64 %"$gaslogof_567", 1 + %"$gasmul_569" = mul i64 20, %"$gaslogof_568" + %"$gasrem_570" = load i64, i64* @_gasrem, align 8 + %"$gascmp_571" = icmp ugt i64 %"$gasmul_569", %"$gasrem_570" + br i1 %"$gascmp_571", label %"$out_of_gas_572", label %"$have_gas_573" + +"$out_of_gas_572": ; preds = %"$have_gas_559" + call void @_out_of_gas() + br label %"$have_gas_573" + +"$have_gas_573": ; preds = %"$out_of_gas_572", %"$have_gas_559" + %"$consume_574" = sub i64 %"$gasrem_570", %"$gasmul_569" + store i64 %"$consume_574", i64* @_gasrem, align 8 + %"$t1_575" = load %Uint32, %Uint32* %t1, align 4 + %"$p2_576" = load %Uint32, %Uint32* %p2, align 4 + %"$pow_call_577" = call %Uint32 @_pow_Uint32(%Uint32 %"$t1_575", %Uint32 %"$p2_576"), !dbg !95 + store %Uint32 %"$pow_call_577", %Uint32* %"$p_7", align 4, !dbg !95 + %"$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_573" + call void @_out_of_gas() + br label %"$have_gas_581" + +"$have_gas_581": ; preds = %"$out_of_gas_580", %"$have_gas_573" + %"$consume_582" = sub i64 %"$gasrem_578", 1 + store i64 %"$consume_582", i64* @_gasrem, align 8 %"$res_10" = alloca %TName_Bool*, 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" + call void @llvm.dbg.declare(metadata %TName_Bool** %"$res_10", metadata !96, metadata !DIExpression()), !dbg !97 + %"$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" -"$out_of_gas_583": ; preds = %"$have_gas_579" +"$out_of_gas_585": ; preds = %"$have_gas_581" call void @_out_of_gas() - br label %"$have_gas_584" + br label %"$have_gas_586" -"$have_gas_584": ; preds = %"$out_of_gas_583", %"$have_gas_579" - %"$consume_585" = sub i64 %"$gasrem_581", 1 - store i64 %"$consume_585", i64* @_gasrem, align 8 +"$have_gas_586": ; preds = %"$out_of_gas_585", %"$have_gas_581" + %"$consume_587" = sub i64 %"$gasrem_583", 1 + store i64 %"$consume_587", i64* @_gasrem, align 8 %"$ans_8" = alloca %Uint32, 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" + call void @llvm.dbg.declare(metadata %Uint32* %"$ans_8", metadata !98, metadata !DIExpression()), !dbg !99 + %"$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_588": ; preds = %"$have_gas_584" +"$out_of_gas_590": ; preds = %"$have_gas_586" call void @_out_of_gas() - br label %"$have_gas_589" + br label %"$have_gas_591" -"$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 { i32 2 }, %Uint32* %"$ans_8", align 4, !dbg !41 - %"$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" +"$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 + store %Uint32 { i32 2 }, %Uint32* %"$ans_8", align 4, !dbg !100 + %"$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_593": ; preds = %"$have_gas_589" +"$out_of_gas_595": ; preds = %"$have_gas_591" call void @_out_of_gas() - br label %"$have_gas_594" + br label %"$have_gas_596" -"$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 +"$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 %"$res__9" = alloca %TName_Bool*, align 8 - %"$gasrem_596" = load i64, i64* @_gasrem, align 8 - %"$gascmp_597" = icmp ugt i64 4, %"$gasrem_596" - br i1 %"$gascmp_597", label %"$out_of_gas_598", label %"$have_gas_599" - -"$out_of_gas_598": ; preds = %"$have_gas_594" - call void @_out_of_gas() - br label %"$have_gas_599" - -"$have_gas_599": ; preds = %"$out_of_gas_598", %"$have_gas_594" - %"$consume_600" = sub i64 %"$gasrem_596", 4 - store i64 %"$consume_600", i64* @_gasrem, align 8 - %"$execptr_load_601" = load i8*, i8** @_execptr, align 8 - %"$$p_7_602" = load %Uint32, %Uint32* %"$p_7", align 4 - %"$$ans_8_603" = load %Uint32, %Uint32* %"$ans_8", align 4 - %"$eq_call_604" = call %TName_Bool* @_eq_Uint32(i8* %"$execptr_load_601", %Uint32 %"$$p_7_602", %Uint32 %"$$ans_8_603"), !dbg !42 - store %TName_Bool* %"$eq_call_604", %TName_Bool** %"$res__9", align 8, !dbg !42 - %"$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_599" - call void @_out_of_gas() - br label %"$have_gas_609" - -"$have_gas_609": ; preds = %"$out_of_gas_608", %"$have_gas_599" - %"$consume_610" = sub i64 %"$gasrem_606", 1 - store i64 %"$consume_610", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$res__9", metadata !101, metadata !DIExpression()), !dbg !102 + %"$gasrem_598" = load i64, i64* @_gasrem, align 8 + %"$gascmp_599" = icmp ugt i64 4, %"$gasrem_598" + br i1 %"$gascmp_599", label %"$out_of_gas_600", label %"$have_gas_601" + +"$out_of_gas_600": ; preds = %"$have_gas_596" + call void @_out_of_gas() + br label %"$have_gas_601" + +"$have_gas_601": ; preds = %"$out_of_gas_600", %"$have_gas_596" + %"$consume_602" = sub i64 %"$gasrem_598", 4 + store i64 %"$consume_602", i64* @_gasrem, align 8 + %"$execptr_load_603" = load i8*, i8** @_execptr, align 8 + %"$$p_7_604" = load %Uint32, %Uint32* %"$p_7", align 4 + %"$$ans_8_605" = load %Uint32, %Uint32* %"$ans_8", align 4 + %"$eq_call_606" = call %TName_Bool* @_eq_Uint32(i8* %"$execptr_load_603", %Uint32 %"$$p_7_604", %Uint32 %"$$ans_8_605"), !dbg !103 + store %TName_Bool* %"$eq_call_606", %TName_Bool** %"$res__9", align 8, !dbg !103 + %"$gasrem_608" = load i64, i64* @_gasrem, align 8 + %"$gascmp_609" = icmp ugt i64 1, %"$gasrem_608" + br i1 %"$gascmp_609", label %"$out_of_gas_610", label %"$have_gas_611" + +"$out_of_gas_610": ; preds = %"$have_gas_601" + call void @_out_of_gas() + br label %"$have_gas_611" + +"$have_gas_611": ; preds = %"$out_of_gas_610", %"$have_gas_601" + %"$consume_612" = sub i64 %"$gasrem_608", 1 + store i64 %"$consume_612", i64* @_gasrem, align 8 %"$BoolUtils.andb_141" = alloca { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, align 8 - %"$BoolUtils.andb_611" = 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_612" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_611", 0 - %"$BoolUtils.andb_envptr_613" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_611", 1 - %"$$res_6_614" = load %TName_Bool*, %TName_Bool** %"$res_6", align 8 - %"$BoolUtils.andb_call_615" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_612"(i8* %"$BoolUtils.andb_envptr_613", %TName_Bool* %"$$res_6_614"), !dbg !43 - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_615", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_141", align 8, !dbg !43 + %"$BoolUtils.andb_613" = 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_614" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_613", 0 + %"$BoolUtils.andb_envptr_615" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_613", 1 + %"$$res_6_616" = load %TName_Bool*, %TName_Bool** %"$res_6", align 8 + %"$BoolUtils.andb_call_617" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_614"(i8* %"$BoolUtils.andb_envptr_615", %TName_Bool* %"$$res_6_616"), !dbg !104 + store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_617", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_141", align 8, !dbg !104 %"$BoolUtils.andb_142" = alloca %TName_Bool*, align 8 - %"$$BoolUtils.andb_141_616" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_141", align 8 - %"$$BoolUtils.andb_141_fptr_617" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_141_616", 0 - %"$$BoolUtils.andb_141_envptr_618" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_141_616", 1 - %"$$res__9_619" = load %TName_Bool*, %TName_Bool** %"$res__9", align 8 - %"$$BoolUtils.andb_141_call_620" = call %TName_Bool* %"$$BoolUtils.andb_141_fptr_617"(i8* %"$$BoolUtils.andb_141_envptr_618", %TName_Bool* %"$$res__9_619"), !dbg !43 - store %TName_Bool* %"$$BoolUtils.andb_141_call_620", %TName_Bool** %"$BoolUtils.andb_142", align 8, !dbg !43 - %"$$BoolUtils.andb_142_621" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_142", align 8 - store %TName_Bool* %"$$BoolUtils.andb_142_621", %TName_Bool** %"$res_10", align 8, !dbg !43 - %"$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_609" - call void @_out_of_gas() - br label %"$have_gas_625" - -"$have_gas_625": ; preds = %"$out_of_gas_624", %"$have_gas_609" - %"$consume_626" = sub i64 %"$gasrem_622", 1 - store i64 %"$consume_626", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$BoolUtils.andb_142", metadata !105, metadata !DIExpression()), !dbg !104 + %"$$BoolUtils.andb_141_618" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_141", align 8 + %"$$BoolUtils.andb_141_fptr_619" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_141_618", 0 + %"$$BoolUtils.andb_141_envptr_620" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_141_618", 1 + %"$$res__9_621" = load %TName_Bool*, %TName_Bool** %"$res__9", align 8 + %"$$BoolUtils.andb_141_call_622" = call %TName_Bool* %"$$BoolUtils.andb_141_fptr_619"(i8* %"$$BoolUtils.andb_141_envptr_620", %TName_Bool* %"$$res__9_621"), !dbg !104 + store %TName_Bool* %"$$BoolUtils.andb_141_call_622", %TName_Bool** %"$BoolUtils.andb_142", align 8, !dbg !104 + %"$$BoolUtils.andb_142_623" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_142", align 8 + store %TName_Bool* %"$$BoolUtils.andb_142_623", %TName_Bool** %"$res_10", align 8, !dbg !104 + %"$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" + +"$out_of_gas_626": ; preds = %"$have_gas_611" + call void @_out_of_gas() + br label %"$have_gas_627" + +"$have_gas_627": ; preds = %"$out_of_gas_626", %"$have_gas_611" + %"$consume_628" = sub i64 %"$gasrem_624", 1 + store i64 %"$consume_628", i64* @_gasrem, align 8 %"$p_11" = alloca %Uint32, align 8 - %"$p3_627" = load %Uint32, %Uint32* %p3, align 4 - %"$valueof_628" = extractvalue %Uint32 %"$p3_627", 0 - %"$valueof_629" = zext i32 %"$valueof_628" to i64 - %"$gaslogof_630" = uitofp i64 %"$valueof_629" to double - %"$gaslogof_631" = fadd double %"$gaslogof_630", 1.000000e+00 - %"$gaslogof_632" = call double @llvm.log.f64(double %"$gaslogof_631") - %"$gaslogof_633" = fptoui double %"$gaslogof_632" to i64 - %"$gaslogof_634" = add i64 %"$gaslogof_633", 1 - %"$gasmul_635" = mul i64 20, %"$gaslogof_634" - %"$gasrem_636" = load i64, i64* @_gasrem, align 8 - %"$gascmp_637" = icmp ugt i64 %"$gasmul_635", %"$gasrem_636" - br i1 %"$gascmp_637", label %"$out_of_gas_638", label %"$have_gas_639" - -"$out_of_gas_638": ; preds = %"$have_gas_625" - call void @_out_of_gas() - br label %"$have_gas_639" - -"$have_gas_639": ; preds = %"$out_of_gas_638", %"$have_gas_625" - %"$consume_640" = sub i64 %"$gasrem_636", %"$gasmul_635" - store i64 %"$consume_640", i64* @_gasrem, align 8 - %"$t1_641" = load %Uint32, %Uint32* %t1, align 4 - %"$p3_642" = load %Uint32, %Uint32* %p3, align 4 - %"$pow_call_643" = call %Uint32 @_pow_Uint32(%Uint32 %"$t1_641", %Uint32 %"$p3_642"), !dbg !44 - store %Uint32 %"$pow_call_643", %Uint32* %"$p_11", align 4, !dbg !44 - %"$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_639" - call void @_out_of_gas() - br label %"$have_gas_647" - -"$have_gas_647": ; preds = %"$out_of_gas_646", %"$have_gas_639" - %"$consume_648" = sub i64 %"$gasrem_644", 1 - store i64 %"$consume_648", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %Uint32* %"$p_11", metadata !106, metadata !DIExpression()), !dbg !107 + %"$p3_629" = load %Uint32, %Uint32* %p3, align 4 + %"$valueof_630" = extractvalue %Uint32 %"$p3_629", 0 + %"$valueof_631" = zext i32 %"$valueof_630" to i64 + %"$gaslogof_632" = uitofp i64 %"$valueof_631" to double + %"$gaslogof_633" = fadd double %"$gaslogof_632", 1.000000e+00 + %"$gaslogof_634" = call double @llvm.log.f64(double %"$gaslogof_633") + %"$gaslogof_635" = fptoui double %"$gaslogof_634" to i64 + %"$gaslogof_636" = add i64 %"$gaslogof_635", 1 + %"$gasmul_637" = mul i64 20, %"$gaslogof_636" + %"$gasrem_638" = load i64, i64* @_gasrem, align 8 + %"$gascmp_639" = icmp ugt i64 %"$gasmul_637", %"$gasrem_638" + br i1 %"$gascmp_639", label %"$out_of_gas_640", label %"$have_gas_641" + +"$out_of_gas_640": ; preds = %"$have_gas_627" + call void @_out_of_gas() + br label %"$have_gas_641" + +"$have_gas_641": ; preds = %"$out_of_gas_640", %"$have_gas_627" + %"$consume_642" = sub i64 %"$gasrem_638", %"$gasmul_637" + store i64 %"$consume_642", i64* @_gasrem, align 8 + %"$t1_643" = load %Uint32, %Uint32* %t1, align 4 + %"$p3_644" = load %Uint32, %Uint32* %p3, align 4 + %"$pow_call_645" = call %Uint32 @_pow_Uint32(%Uint32 %"$t1_643", %Uint32 %"$p3_644"), !dbg !108 + store %Uint32 %"$pow_call_645", %Uint32* %"$p_11", align 4, !dbg !108 + %"$gasrem_646" = load i64, i64* @_gasrem, align 8 + %"$gascmp_647" = icmp ugt i64 1, %"$gasrem_646" + br i1 %"$gascmp_647", label %"$out_of_gas_648", label %"$have_gas_649" + +"$out_of_gas_648": ; preds = %"$have_gas_641" + call void @_out_of_gas() + br label %"$have_gas_649" + +"$have_gas_649": ; preds = %"$out_of_gas_648", %"$have_gas_641" + %"$consume_650" = sub i64 %"$gasrem_646", 1 + store i64 %"$consume_650", i64* @_gasrem, align 8 %"$res_14" = alloca %TName_Bool*, 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" + call void @llvm.dbg.declare(metadata %TName_Bool** %"$res_14", metadata !109, metadata !DIExpression()), !dbg !110 + %"$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_651": ; preds = %"$have_gas_647" +"$out_of_gas_653": ; preds = %"$have_gas_649" call void @_out_of_gas() - br label %"$have_gas_652" + br label %"$have_gas_654" -"$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 +"$have_gas_654": ; preds = %"$out_of_gas_653", %"$have_gas_649" + %"$consume_655" = sub i64 %"$gasrem_651", 1 + store i64 %"$consume_655", i64* @_gasrem, align 8 %"$ans_12" = alloca %Uint32, 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" + call void @llvm.dbg.declare(metadata %Uint32* %"$ans_12", metadata !111, metadata !DIExpression()), !dbg !112 + %"$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_656": ; preds = %"$have_gas_652" +"$out_of_gas_658": ; preds = %"$have_gas_654" call void @_out_of_gas() - br label %"$have_gas_657" + br label %"$have_gas_659" -"$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 - store %Uint32 { i32 16 }, %Uint32* %"$ans_12", align 4, !dbg !45 - %"$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" +"$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 %Uint32 { i32 16 }, %Uint32* %"$ans_12", align 4, !dbg !113 + %"$gasrem_661" = load i64, i64* @_gasrem, align 8 + %"$gascmp_662" = icmp ugt i64 1, %"$gasrem_661" + br i1 %"$gascmp_662", label %"$out_of_gas_663", label %"$have_gas_664" -"$out_of_gas_661": ; preds = %"$have_gas_657" +"$out_of_gas_663": ; preds = %"$have_gas_659" call void @_out_of_gas() - br label %"$have_gas_662" + br label %"$have_gas_664" -"$have_gas_662": ; preds = %"$out_of_gas_661", %"$have_gas_657" - %"$consume_663" = sub i64 %"$gasrem_659", 1 - store i64 %"$consume_663", i64* @_gasrem, align 8 +"$have_gas_664": ; preds = %"$out_of_gas_663", %"$have_gas_659" + %"$consume_665" = sub i64 %"$gasrem_661", 1 + store i64 %"$consume_665", i64* @_gasrem, align 8 %"$res__13" = alloca %TName_Bool*, align 8 - %"$gasrem_664" = load i64, i64* @_gasrem, align 8 - %"$gascmp_665" = icmp ugt i64 4, %"$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", 4 - store i64 %"$consume_668", i64* @_gasrem, align 8 - %"$execptr_load_669" = load i8*, i8** @_execptr, align 8 - %"$$p_11_670" = load %Uint32, %Uint32* %"$p_11", align 4 - %"$$ans_12_671" = load %Uint32, %Uint32* %"$ans_12", align 4 - %"$eq_call_672" = call %TName_Bool* @_eq_Uint32(i8* %"$execptr_load_669", %Uint32 %"$$p_11_670", %Uint32 %"$$ans_12_671"), !dbg !46 - store %TName_Bool* %"$eq_call_672", %TName_Bool** %"$res__13", align 8, !dbg !46 - %"$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_667" - call void @_out_of_gas() - br label %"$have_gas_677" - -"$have_gas_677": ; preds = %"$out_of_gas_676", %"$have_gas_667" - %"$consume_678" = sub i64 %"$gasrem_674", 1 - store i64 %"$consume_678", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$res__13", metadata !114, metadata !DIExpression()), !dbg !115 + %"$gasrem_666" = load i64, i64* @_gasrem, align 8 + %"$gascmp_667" = icmp ugt i64 4, %"$gasrem_666" + br i1 %"$gascmp_667", label %"$out_of_gas_668", label %"$have_gas_669" + +"$out_of_gas_668": ; preds = %"$have_gas_664" + call void @_out_of_gas() + br label %"$have_gas_669" + +"$have_gas_669": ; preds = %"$out_of_gas_668", %"$have_gas_664" + %"$consume_670" = sub i64 %"$gasrem_666", 4 + store i64 %"$consume_670", i64* @_gasrem, align 8 + %"$execptr_load_671" = load i8*, i8** @_execptr, align 8 + %"$$p_11_672" = load %Uint32, %Uint32* %"$p_11", align 4 + %"$$ans_12_673" = load %Uint32, %Uint32* %"$ans_12", align 4 + %"$eq_call_674" = call %TName_Bool* @_eq_Uint32(i8* %"$execptr_load_671", %Uint32 %"$$p_11_672", %Uint32 %"$$ans_12_673"), !dbg !116 + store %TName_Bool* %"$eq_call_674", %TName_Bool** %"$res__13", align 8, !dbg !116 + %"$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 = %"$have_gas_669" + call void @_out_of_gas() + br label %"$have_gas_679" + +"$have_gas_679": ; preds = %"$out_of_gas_678", %"$have_gas_669" + %"$consume_680" = sub i64 %"$gasrem_676", 1 + store i64 %"$consume_680", i64* @_gasrem, align 8 %"$BoolUtils.andb_143" = alloca { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, align 8 - %"$BoolUtils.andb_679" = 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_680" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_679", 0 - %"$BoolUtils.andb_envptr_681" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_679", 1 - %"$$res_10_682" = load %TName_Bool*, %TName_Bool** %"$res_10", align 8 - %"$BoolUtils.andb_call_683" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_680"(i8* %"$BoolUtils.andb_envptr_681", %TName_Bool* %"$$res_10_682"), !dbg !47 - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_683", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_143", align 8, !dbg !47 + %"$BoolUtils.andb_681" = 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_682" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_681", 0 + %"$BoolUtils.andb_envptr_683" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_681", 1 + %"$$res_10_684" = load %TName_Bool*, %TName_Bool** %"$res_10", align 8 + %"$BoolUtils.andb_call_685" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_682"(i8* %"$BoolUtils.andb_envptr_683", %TName_Bool* %"$$res_10_684"), !dbg !117 + store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_685", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_143", align 8, !dbg !117 %"$BoolUtils.andb_144" = alloca %TName_Bool*, align 8 - %"$$BoolUtils.andb_143_684" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_143", align 8 - %"$$BoolUtils.andb_143_fptr_685" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_143_684", 0 - %"$$BoolUtils.andb_143_envptr_686" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_143_684", 1 - %"$$res__13_687" = load %TName_Bool*, %TName_Bool** %"$res__13", align 8 - %"$$BoolUtils.andb_143_call_688" = call %TName_Bool* %"$$BoolUtils.andb_143_fptr_685"(i8* %"$$BoolUtils.andb_143_envptr_686", %TName_Bool* %"$$res__13_687"), !dbg !47 - store %TName_Bool* %"$$BoolUtils.andb_143_call_688", %TName_Bool** %"$BoolUtils.andb_144", align 8, !dbg !47 - %"$$BoolUtils.andb_144_689" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_144", align 8 - store %TName_Bool* %"$$BoolUtils.andb_144_689", %TName_Bool** %"$res_14", align 8, !dbg !47 - %"$gasrem_690" = load i64, i64* @_gasrem, align 8 - %"$gascmp_691" = icmp ugt i64 1, %"$gasrem_690" - br i1 %"$gascmp_691", label %"$out_of_gas_692", label %"$have_gas_693" - -"$out_of_gas_692": ; preds = %"$have_gas_677" - call void @_out_of_gas() - br label %"$have_gas_693" - -"$have_gas_693": ; preds = %"$out_of_gas_692", %"$have_gas_677" - %"$consume_694" = sub i64 %"$gasrem_690", 1 - store i64 %"$consume_694", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$BoolUtils.andb_144", metadata !118, metadata !DIExpression()), !dbg !117 + %"$$BoolUtils.andb_143_686" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_143", align 8 + %"$$BoolUtils.andb_143_fptr_687" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_143_686", 0 + %"$$BoolUtils.andb_143_envptr_688" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_143_686", 1 + %"$$res__13_689" = load %TName_Bool*, %TName_Bool** %"$res__13", align 8 + %"$$BoolUtils.andb_143_call_690" = call %TName_Bool* %"$$BoolUtils.andb_143_fptr_687"(i8* %"$$BoolUtils.andb_143_envptr_688", %TName_Bool* %"$$res__13_689"), !dbg !117 + store %TName_Bool* %"$$BoolUtils.andb_143_call_690", %TName_Bool** %"$BoolUtils.andb_144", align 8, !dbg !117 + %"$$BoolUtils.andb_144_691" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_144", align 8 + store %TName_Bool* %"$$BoolUtils.andb_144_691", %TName_Bool** %"$res_14", align 8, !dbg !117 + %"$gasrem_692" = load i64, i64* @_gasrem, align 8 + %"$gascmp_693" = icmp ugt i64 1, %"$gasrem_692" + br i1 %"$gascmp_693", label %"$out_of_gas_694", label %"$have_gas_695" + +"$out_of_gas_694": ; preds = %"$have_gas_679" + call void @_out_of_gas() + br label %"$have_gas_695" + +"$have_gas_695": ; preds = %"$out_of_gas_694", %"$have_gas_679" + %"$consume_696" = sub i64 %"$gasrem_692", 1 + store i64 %"$consume_696", i64* @_gasrem, align 8 %"$p_15" = alloca %Uint32, align 8 - %"$p4_695" = load %Uint32, %Uint32* %p4, align 4 - %"$valueof_696" = extractvalue %Uint32 %"$p4_695", 0 - %"$valueof_697" = zext i32 %"$valueof_696" to i64 - %"$gaslogof_698" = uitofp i64 %"$valueof_697" to double - %"$gaslogof_699" = fadd double %"$gaslogof_698", 1.000000e+00 - %"$gaslogof_700" = call double @llvm.log.f64(double %"$gaslogof_699") - %"$gaslogof_701" = fptoui double %"$gaslogof_700" to i64 - %"$gaslogof_702" = add i64 %"$gaslogof_701", 1 - %"$gasmul_703" = mul i64 20, %"$gaslogof_702" - %"$gasrem_704" = load i64, i64* @_gasrem, align 8 - %"$gascmp_705" = icmp ugt i64 %"$gasmul_703", %"$gasrem_704" - br i1 %"$gascmp_705", label %"$out_of_gas_706", label %"$have_gas_707" - -"$out_of_gas_706": ; preds = %"$have_gas_693" - call void @_out_of_gas() - br label %"$have_gas_707" - -"$have_gas_707": ; preds = %"$out_of_gas_706", %"$have_gas_693" - %"$consume_708" = sub i64 %"$gasrem_704", %"$gasmul_703" - store i64 %"$consume_708", i64* @_gasrem, align 8 - %"$t1_709" = load %Uint32, %Uint32* %t1, align 4 - %"$p4_710" = load %Uint32, %Uint32* %p4, align 4 - %"$pow_call_711" = call %Uint32 @_pow_Uint32(%Uint32 %"$t1_709", %Uint32 %"$p4_710"), !dbg !48 - store %Uint32 %"$pow_call_711", %Uint32* %"$p_15", align 4, !dbg !48 - %"$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_707" - call void @_out_of_gas() - br label %"$have_gas_715" - -"$have_gas_715": ; preds = %"$out_of_gas_714", %"$have_gas_707" - %"$consume_716" = sub i64 %"$gasrem_712", 1 - store i64 %"$consume_716", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %Uint32* %"$p_15", metadata !119, metadata !DIExpression()), !dbg !120 + %"$p4_697" = load %Uint32, %Uint32* %p4, align 4 + %"$valueof_698" = extractvalue %Uint32 %"$p4_697", 0 + %"$valueof_699" = zext i32 %"$valueof_698" to i64 + %"$gaslogof_700" = uitofp i64 %"$valueof_699" to double + %"$gaslogof_701" = fadd double %"$gaslogof_700", 1.000000e+00 + %"$gaslogof_702" = call double @llvm.log.f64(double %"$gaslogof_701") + %"$gaslogof_703" = fptoui double %"$gaslogof_702" to i64 + %"$gaslogof_704" = add i64 %"$gaslogof_703", 1 + %"$gasmul_705" = mul i64 20, %"$gaslogof_704" + %"$gasrem_706" = load i64, i64* @_gasrem, align 8 + %"$gascmp_707" = icmp ugt i64 %"$gasmul_705", %"$gasrem_706" + br i1 %"$gascmp_707", label %"$out_of_gas_708", label %"$have_gas_709" + +"$out_of_gas_708": ; preds = %"$have_gas_695" + call void @_out_of_gas() + br label %"$have_gas_709" + +"$have_gas_709": ; preds = %"$out_of_gas_708", %"$have_gas_695" + %"$consume_710" = sub i64 %"$gasrem_706", %"$gasmul_705" + store i64 %"$consume_710", i64* @_gasrem, align 8 + %"$t1_711" = load %Uint32, %Uint32* %t1, align 4 + %"$p4_712" = load %Uint32, %Uint32* %p4, align 4 + %"$pow_call_713" = call %Uint32 @_pow_Uint32(%Uint32 %"$t1_711", %Uint32 %"$p4_712"), !dbg !121 + store %Uint32 %"$pow_call_713", %Uint32* %"$p_15", align 4, !dbg !121 + %"$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_709" + call void @_out_of_gas() + br label %"$have_gas_717" + +"$have_gas_717": ; preds = %"$out_of_gas_716", %"$have_gas_709" + %"$consume_718" = sub i64 %"$gasrem_714", 1 + store i64 %"$consume_718", i64* @_gasrem, align 8 %"$res_18" = alloca %TName_Bool*, 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" + call void @llvm.dbg.declare(metadata %TName_Bool** %"$res_18", metadata !122, metadata !DIExpression()), !dbg !123 + %"$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_719": ; preds = %"$have_gas_715" +"$out_of_gas_721": ; preds = %"$have_gas_717" call void @_out_of_gas() - br label %"$have_gas_720" + br label %"$have_gas_722" -"$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_722": ; preds = %"$out_of_gas_721", %"$have_gas_717" + %"$consume_723" = sub i64 %"$gasrem_719", 1 + store i64 %"$consume_723", i64* @_gasrem, align 8 %"$ans_16" = alloca %Uint32, align 8 - %"$gasrem_722" = load i64, i64* @_gasrem, align 8 - %"$gascmp_723" = icmp ugt i64 1, %"$gasrem_722" - br i1 %"$gascmp_723", label %"$out_of_gas_724", label %"$have_gas_725" + call void @llvm.dbg.declare(metadata %Uint32* %"$ans_16", metadata !124, metadata !DIExpression()), !dbg !125 + %"$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_724": ; preds = %"$have_gas_720" +"$out_of_gas_726": ; preds = %"$have_gas_722" call void @_out_of_gas() - br label %"$have_gas_725" + br label %"$have_gas_727" -"$have_gas_725": ; preds = %"$out_of_gas_724", %"$have_gas_720" - %"$consume_726" = sub i64 %"$gasrem_722", 1 - store i64 %"$consume_726", i64* @_gasrem, align 8 - store %Uint32 { i32 1024 }, %Uint32* %"$ans_16", align 4, !dbg !49 - %"$gasrem_727" = load i64, i64* @_gasrem, align 8 - %"$gascmp_728" = icmp ugt i64 1, %"$gasrem_727" - br i1 %"$gascmp_728", label %"$out_of_gas_729", label %"$have_gas_730" +"$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 + store %Uint32 { i32 1024 }, %Uint32* %"$ans_16", align 4, !dbg !126 + %"$gasrem_729" = load i64, i64* @_gasrem, align 8 + %"$gascmp_730" = icmp ugt i64 1, %"$gasrem_729" + br i1 %"$gascmp_730", label %"$out_of_gas_731", label %"$have_gas_732" -"$out_of_gas_729": ; preds = %"$have_gas_725" +"$out_of_gas_731": ; preds = %"$have_gas_727" call void @_out_of_gas() - br label %"$have_gas_730" + br label %"$have_gas_732" -"$have_gas_730": ; preds = %"$out_of_gas_729", %"$have_gas_725" - %"$consume_731" = sub i64 %"$gasrem_727", 1 - store i64 %"$consume_731", i64* @_gasrem, align 8 +"$have_gas_732": ; preds = %"$out_of_gas_731", %"$have_gas_727" + %"$consume_733" = sub i64 %"$gasrem_729", 1 + store i64 %"$consume_733", i64* @_gasrem, align 8 %"$res__17" = alloca %TName_Bool*, align 8 - %"$gasrem_732" = load i64, i64* @_gasrem, align 8 - %"$gascmp_733" = icmp ugt i64 4, %"$gasrem_732" - br i1 %"$gascmp_733", label %"$out_of_gas_734", label %"$have_gas_735" - -"$out_of_gas_734": ; preds = %"$have_gas_730" - call void @_out_of_gas() - br label %"$have_gas_735" - -"$have_gas_735": ; preds = %"$out_of_gas_734", %"$have_gas_730" - %"$consume_736" = sub i64 %"$gasrem_732", 4 - store i64 %"$consume_736", i64* @_gasrem, align 8 - %"$execptr_load_737" = load i8*, i8** @_execptr, align 8 - %"$$p_15_738" = load %Uint32, %Uint32* %"$p_15", align 4 - %"$$ans_16_739" = load %Uint32, %Uint32* %"$ans_16", align 4 - %"$eq_call_740" = call %TName_Bool* @_eq_Uint32(i8* %"$execptr_load_737", %Uint32 %"$$p_15_738", %Uint32 %"$$ans_16_739"), !dbg !50 - store %TName_Bool* %"$eq_call_740", %TName_Bool** %"$res__17", align 8, !dbg !50 - %"$gasrem_742" = load i64, i64* @_gasrem, align 8 - %"$gascmp_743" = icmp ugt i64 1, %"$gasrem_742" - br i1 %"$gascmp_743", label %"$out_of_gas_744", label %"$have_gas_745" - -"$out_of_gas_744": ; preds = %"$have_gas_735" - call void @_out_of_gas() - br label %"$have_gas_745" - -"$have_gas_745": ; preds = %"$out_of_gas_744", %"$have_gas_735" - %"$consume_746" = sub i64 %"$gasrem_742", 1 - store i64 %"$consume_746", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$res__17", metadata !127, metadata !DIExpression()), !dbg !128 + %"$gasrem_734" = load i64, i64* @_gasrem, align 8 + %"$gascmp_735" = icmp ugt i64 4, %"$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", 4 + store i64 %"$consume_738", i64* @_gasrem, align 8 + %"$execptr_load_739" = load i8*, i8** @_execptr, align 8 + %"$$p_15_740" = load %Uint32, %Uint32* %"$p_15", align 4 + %"$$ans_16_741" = load %Uint32, %Uint32* %"$ans_16", align 4 + %"$eq_call_742" = call %TName_Bool* @_eq_Uint32(i8* %"$execptr_load_739", %Uint32 %"$$p_15_740", %Uint32 %"$$ans_16_741"), !dbg !129 + store %TName_Bool* %"$eq_call_742", %TName_Bool** %"$res__17", align 8, !dbg !129 + %"$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 = %"$have_gas_737" + call void @_out_of_gas() + br label %"$have_gas_747" + +"$have_gas_747": ; preds = %"$out_of_gas_746", %"$have_gas_737" + %"$consume_748" = sub i64 %"$gasrem_744", 1 + store i64 %"$consume_748", i64* @_gasrem, align 8 %"$BoolUtils.andb_145" = alloca { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, align 8 - %"$BoolUtils.andb_747" = 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_748" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_747", 0 - %"$BoolUtils.andb_envptr_749" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_747", 1 - %"$$res_14_750" = load %TName_Bool*, %TName_Bool** %"$res_14", align 8 - %"$BoolUtils.andb_call_751" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_748"(i8* %"$BoolUtils.andb_envptr_749", %TName_Bool* %"$$res_14_750"), !dbg !51 - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_751", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_145", align 8, !dbg !51 + %"$BoolUtils.andb_749" = 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_750" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_749", 0 + %"$BoolUtils.andb_envptr_751" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_749", 1 + %"$$res_14_752" = load %TName_Bool*, %TName_Bool** %"$res_14", align 8 + %"$BoolUtils.andb_call_753" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_750"(i8* %"$BoolUtils.andb_envptr_751", %TName_Bool* %"$$res_14_752"), !dbg !130 + store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_753", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_145", align 8, !dbg !130 %"$BoolUtils.andb_146" = alloca %TName_Bool*, align 8 - %"$$BoolUtils.andb_145_752" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_145", align 8 - %"$$BoolUtils.andb_145_fptr_753" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_145_752", 0 - %"$$BoolUtils.andb_145_envptr_754" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_145_752", 1 - %"$$res__17_755" = load %TName_Bool*, %TName_Bool** %"$res__17", align 8 - %"$$BoolUtils.andb_145_call_756" = call %TName_Bool* %"$$BoolUtils.andb_145_fptr_753"(i8* %"$$BoolUtils.andb_145_envptr_754", %TName_Bool* %"$$res__17_755"), !dbg !51 - store %TName_Bool* %"$$BoolUtils.andb_145_call_756", %TName_Bool** %"$BoolUtils.andb_146", align 8, !dbg !51 - %"$$BoolUtils.andb_146_757" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_146", align 8 - store %TName_Bool* %"$$BoolUtils.andb_146_757", %TName_Bool** %"$res_18", align 8, !dbg !51 - %"$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_745" - call void @_out_of_gas() - br label %"$have_gas_761" - -"$have_gas_761": ; preds = %"$out_of_gas_760", %"$have_gas_745" - %"$consume_762" = sub i64 %"$gasrem_758", 1 - store i64 %"$consume_762", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$BoolUtils.andb_146", metadata !131, metadata !DIExpression()), !dbg !130 + %"$$BoolUtils.andb_145_754" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_145", align 8 + %"$$BoolUtils.andb_145_fptr_755" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_145_754", 0 + %"$$BoolUtils.andb_145_envptr_756" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_145_754", 1 + %"$$res__17_757" = load %TName_Bool*, %TName_Bool** %"$res__17", align 8 + %"$$BoolUtils.andb_145_call_758" = call %TName_Bool* %"$$BoolUtils.andb_145_fptr_755"(i8* %"$$BoolUtils.andb_145_envptr_756", %TName_Bool* %"$$res__17_757"), !dbg !130 + store %TName_Bool* %"$$BoolUtils.andb_145_call_758", %TName_Bool** %"$BoolUtils.andb_146", align 8, !dbg !130 + %"$$BoolUtils.andb_146_759" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_146", align 8 + store %TName_Bool* %"$$BoolUtils.andb_146_759", %TName_Bool** %"$res_18", align 8, !dbg !130 + %"$gasrem_760" = load i64, i64* @_gasrem, align 8 + %"$gascmp_761" = icmp ugt i64 1, %"$gasrem_760" + br i1 %"$gascmp_761", label %"$out_of_gas_762", label %"$have_gas_763" + +"$out_of_gas_762": ; preds = %"$have_gas_747" + call void @_out_of_gas() + br label %"$have_gas_763" + +"$have_gas_763": ; preds = %"$out_of_gas_762", %"$have_gas_747" + %"$consume_764" = sub i64 %"$gasrem_760", 1 + store i64 %"$consume_764", i64* @_gasrem, align 8 %"$p_19" = alloca %Int32, align 8 - %"$p1_763" = load %Uint32, %Uint32* %p1, align 4 - %"$valueof_764" = extractvalue %Uint32 %"$p1_763", 0 - %"$valueof_765" = zext i32 %"$valueof_764" to i64 - %"$gaslogof_766" = uitofp i64 %"$valueof_765" to double - %"$gaslogof_767" = fadd double %"$gaslogof_766", 1.000000e+00 - %"$gaslogof_768" = call double @llvm.log.f64(double %"$gaslogof_767") - %"$gaslogof_769" = fptoui double %"$gaslogof_768" to i64 - %"$gaslogof_770" = add i64 %"$gaslogof_769", 1 - %"$gasmul_771" = mul i64 20, %"$gaslogof_770" - %"$gasrem_772" = load i64, i64* @_gasrem, align 8 - %"$gascmp_773" = icmp ugt i64 %"$gasmul_771", %"$gasrem_772" - br i1 %"$gascmp_773", label %"$out_of_gas_774", label %"$have_gas_775" - -"$out_of_gas_774": ; preds = %"$have_gas_761" - call void @_out_of_gas() - br label %"$have_gas_775" - -"$have_gas_775": ; preds = %"$out_of_gas_774", %"$have_gas_761" - %"$consume_776" = sub i64 %"$gasrem_772", %"$gasmul_771" - store i64 %"$consume_776", i64* @_gasrem, align 8 - %"$t2_777" = load %Int32, %Int32* %t2, align 4 - %"$p1_778" = load %Uint32, %Uint32* %p1, align 4 - %"$pow_call_779" = call %Int32 @_pow_Int32(%Int32 %"$t2_777", %Uint32 %"$p1_778"), !dbg !52 - store %Int32 %"$pow_call_779", %Int32* %"$p_19", align 4, !dbg !52 - %"$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_775" - call void @_out_of_gas() - br label %"$have_gas_783" - -"$have_gas_783": ; preds = %"$out_of_gas_782", %"$have_gas_775" - %"$consume_784" = sub i64 %"$gasrem_780", 1 - store i64 %"$consume_784", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %Int32* %"$p_19", metadata !132, metadata !DIExpression()), !dbg !133 + %"$p1_765" = load %Uint32, %Uint32* %p1, align 4 + %"$valueof_766" = extractvalue %Uint32 %"$p1_765", 0 + %"$valueof_767" = zext i32 %"$valueof_766" to i64 + %"$gaslogof_768" = uitofp i64 %"$valueof_767" to double + %"$gaslogof_769" = fadd double %"$gaslogof_768", 1.000000e+00 + %"$gaslogof_770" = call double @llvm.log.f64(double %"$gaslogof_769") + %"$gaslogof_771" = fptoui double %"$gaslogof_770" to i64 + %"$gaslogof_772" = add i64 %"$gaslogof_771", 1 + %"$gasmul_773" = mul i64 20, %"$gaslogof_772" + %"$gasrem_774" = load i64, i64* @_gasrem, align 8 + %"$gascmp_775" = icmp ugt i64 %"$gasmul_773", %"$gasrem_774" + br i1 %"$gascmp_775", label %"$out_of_gas_776", label %"$have_gas_777" + +"$out_of_gas_776": ; preds = %"$have_gas_763" + call void @_out_of_gas() + br label %"$have_gas_777" + +"$have_gas_777": ; preds = %"$out_of_gas_776", %"$have_gas_763" + %"$consume_778" = sub i64 %"$gasrem_774", %"$gasmul_773" + store i64 %"$consume_778", i64* @_gasrem, align 8 + %"$t2_779" = load %Int32, %Int32* %t2, align 4 + %"$p1_780" = load %Uint32, %Uint32* %p1, align 4 + %"$pow_call_781" = call %Int32 @_pow_Int32(%Int32 %"$t2_779", %Uint32 %"$p1_780"), !dbg !134 + store %Int32 %"$pow_call_781", %Int32* %"$p_19", align 4, !dbg !134 + %"$gasrem_782" = load i64, i64* @_gasrem, align 8 + %"$gascmp_783" = icmp ugt i64 1, %"$gasrem_782" + br i1 %"$gascmp_783", label %"$out_of_gas_784", label %"$have_gas_785" + +"$out_of_gas_784": ; preds = %"$have_gas_777" + call void @_out_of_gas() + br label %"$have_gas_785" + +"$have_gas_785": ; preds = %"$out_of_gas_784", %"$have_gas_777" + %"$consume_786" = sub i64 %"$gasrem_782", 1 + store i64 %"$consume_786", i64* @_gasrem, align 8 %"$res_22" = alloca %TName_Bool*, 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" + call void @llvm.dbg.declare(metadata %TName_Bool** %"$res_22", metadata !135, metadata !DIExpression()), !dbg !136 + %"$gasrem_787" = load i64, i64* @_gasrem, align 8 + %"$gascmp_788" = icmp ugt i64 1, %"$gasrem_787" + br i1 %"$gascmp_788", label %"$out_of_gas_789", label %"$have_gas_790" -"$out_of_gas_787": ; preds = %"$have_gas_783" +"$out_of_gas_789": ; preds = %"$have_gas_785" call void @_out_of_gas() - br label %"$have_gas_788" + br label %"$have_gas_790" -"$have_gas_788": ; preds = %"$out_of_gas_787", %"$have_gas_783" - %"$consume_789" = sub i64 %"$gasrem_785", 1 - store i64 %"$consume_789", i64* @_gasrem, align 8 +"$have_gas_790": ; preds = %"$out_of_gas_789", %"$have_gas_785" + %"$consume_791" = sub i64 %"$gasrem_787", 1 + store i64 %"$consume_791", i64* @_gasrem, align 8 %"$ans_20" = alloca %Int32, align 8 - %"$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" + call void @llvm.dbg.declare(metadata %Int32* %"$ans_20", metadata !137, metadata !DIExpression()), !dbg !138 + %"$gasrem_792" = load i64, i64* @_gasrem, align 8 + %"$gascmp_793" = icmp ugt i64 1, %"$gasrem_792" + br i1 %"$gascmp_793", label %"$out_of_gas_794", label %"$have_gas_795" -"$out_of_gas_792": ; preds = %"$have_gas_788" +"$out_of_gas_794": ; preds = %"$have_gas_790" call void @_out_of_gas() - br label %"$have_gas_793" + br label %"$have_gas_795" -"$have_gas_793": ; preds = %"$out_of_gas_792", %"$have_gas_788" - %"$consume_794" = sub i64 %"$gasrem_790", 1 - store i64 %"$consume_794", i64* @_gasrem, align 8 - store %Int32 { i32 1 }, %Int32* %"$ans_20", align 4, !dbg !53 - %"$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" +"$have_gas_795": ; preds = %"$out_of_gas_794", %"$have_gas_790" + %"$consume_796" = sub i64 %"$gasrem_792", 1 + store i64 %"$consume_796", i64* @_gasrem, align 8 + store %Int32 { i32 1 }, %Int32* %"$ans_20", align 4, !dbg !139 + %"$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_797": ; preds = %"$have_gas_793" +"$out_of_gas_799": ; preds = %"$have_gas_795" call void @_out_of_gas() - br label %"$have_gas_798" + br label %"$have_gas_800" -"$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 +"$have_gas_800": ; preds = %"$out_of_gas_799", %"$have_gas_795" + %"$consume_801" = sub i64 %"$gasrem_797", 1 + store i64 %"$consume_801", i64* @_gasrem, align 8 %"$res__21" = alloca %TName_Bool*, align 8 - %"$gasrem_800" = load i64, i64* @_gasrem, align 8 - %"$gascmp_801" = icmp ugt i64 4, %"$gasrem_800" - br i1 %"$gascmp_801", label %"$out_of_gas_802", label %"$have_gas_803" - -"$out_of_gas_802": ; preds = %"$have_gas_798" - call void @_out_of_gas() - br label %"$have_gas_803" - -"$have_gas_803": ; preds = %"$out_of_gas_802", %"$have_gas_798" - %"$consume_804" = sub i64 %"$gasrem_800", 4 - store i64 %"$consume_804", i64* @_gasrem, align 8 - %"$execptr_load_805" = load i8*, i8** @_execptr, align 8 - %"$$p_19_806" = load %Int32, %Int32* %"$p_19", align 4 - %"$$ans_20_807" = load %Int32, %Int32* %"$ans_20", align 4 - %"$eq_call_808" = call %TName_Bool* @_eq_Int32(i8* %"$execptr_load_805", %Int32 %"$$p_19_806", %Int32 %"$$ans_20_807"), !dbg !54 - store %TName_Bool* %"$eq_call_808", %TName_Bool** %"$res__21", align 8, !dbg !54 - %"$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_803" - call void @_out_of_gas() - br label %"$have_gas_813" - -"$have_gas_813": ; preds = %"$out_of_gas_812", %"$have_gas_803" - %"$consume_814" = sub i64 %"$gasrem_810", 1 - store i64 %"$consume_814", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$res__21", metadata !140, metadata !DIExpression()), !dbg !141 + %"$gasrem_802" = load i64, i64* @_gasrem, align 8 + %"$gascmp_803" = icmp ugt i64 4, %"$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", 4 + store i64 %"$consume_806", i64* @_gasrem, align 8 + %"$execptr_load_807" = load i8*, i8** @_execptr, align 8 + %"$$p_19_808" = load %Int32, %Int32* %"$p_19", align 4 + %"$$ans_20_809" = load %Int32, %Int32* %"$ans_20", align 4 + %"$eq_call_810" = call %TName_Bool* @_eq_Int32(i8* %"$execptr_load_807", %Int32 %"$$p_19_808", %Int32 %"$$ans_20_809"), !dbg !142 + store %TName_Bool* %"$eq_call_810", %TName_Bool** %"$res__21", align 8, !dbg !142 + %"$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 = %"$have_gas_805" + call void @_out_of_gas() + br label %"$have_gas_815" + +"$have_gas_815": ; preds = %"$out_of_gas_814", %"$have_gas_805" + %"$consume_816" = sub i64 %"$gasrem_812", 1 + store i64 %"$consume_816", i64* @_gasrem, align 8 %"$BoolUtils.andb_147" = alloca { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, align 8 - %"$BoolUtils.andb_815" = 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_816" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_815", 0 - %"$BoolUtils.andb_envptr_817" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_815", 1 - %"$$res_18_818" = load %TName_Bool*, %TName_Bool** %"$res_18", align 8 - %"$BoolUtils.andb_call_819" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_816"(i8* %"$BoolUtils.andb_envptr_817", %TName_Bool* %"$$res_18_818"), !dbg !55 - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_819", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_147", align 8, !dbg !55 + %"$BoolUtils.andb_817" = 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_818" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_817", 0 + %"$BoolUtils.andb_envptr_819" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_817", 1 + %"$$res_18_820" = load %TName_Bool*, %TName_Bool** %"$res_18", align 8 + %"$BoolUtils.andb_call_821" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_818"(i8* %"$BoolUtils.andb_envptr_819", %TName_Bool* %"$$res_18_820"), !dbg !143 + store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_821", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_147", align 8, !dbg !143 %"$BoolUtils.andb_148" = alloca %TName_Bool*, align 8 - %"$$BoolUtils.andb_147_820" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_147", align 8 - %"$$BoolUtils.andb_147_fptr_821" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_147_820", 0 - %"$$BoolUtils.andb_147_envptr_822" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_147_820", 1 - %"$$res__21_823" = load %TName_Bool*, %TName_Bool** %"$res__21", align 8 - %"$$BoolUtils.andb_147_call_824" = call %TName_Bool* %"$$BoolUtils.andb_147_fptr_821"(i8* %"$$BoolUtils.andb_147_envptr_822", %TName_Bool* %"$$res__21_823"), !dbg !55 - store %TName_Bool* %"$$BoolUtils.andb_147_call_824", %TName_Bool** %"$BoolUtils.andb_148", align 8, !dbg !55 - %"$$BoolUtils.andb_148_825" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_148", align 8 - store %TName_Bool* %"$$BoolUtils.andb_148_825", %TName_Bool** %"$res_22", align 8, !dbg !55 - %"$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 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$BoolUtils.andb_148", metadata !144, metadata !DIExpression()), !dbg !143 + %"$$BoolUtils.andb_147_822" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_147", align 8 + %"$$BoolUtils.andb_147_fptr_823" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_147_822", 0 + %"$$BoolUtils.andb_147_envptr_824" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_147_822", 1 + %"$$res__21_825" = load %TName_Bool*, %TName_Bool** %"$res__21", align 8 + %"$$BoolUtils.andb_147_call_826" = call %TName_Bool* %"$$BoolUtils.andb_147_fptr_823"(i8* %"$$BoolUtils.andb_147_envptr_824", %TName_Bool* %"$$res__21_825"), !dbg !143 + store %TName_Bool* %"$$BoolUtils.andb_147_call_826", %TName_Bool** %"$BoolUtils.andb_148", align 8, !dbg !143 + %"$$BoolUtils.andb_148_827" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_148", align 8 + store %TName_Bool* %"$$BoolUtils.andb_148_827", %TName_Bool** %"$res_22", align 8, !dbg !143 + %"$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_815" + call void @_out_of_gas() + br label %"$have_gas_831" + +"$have_gas_831": ; preds = %"$out_of_gas_830", %"$have_gas_815" + %"$consume_832" = sub i64 %"$gasrem_828", 1 + store i64 %"$consume_832", i64* @_gasrem, align 8 %"$p_23" = alloca %Int32, align 8 - %"$p2_831" = load %Uint32, %Uint32* %p2, align 4 - %"$valueof_832" = extractvalue %Uint32 %"$p2_831", 0 - %"$valueof_833" = zext i32 %"$valueof_832" to i64 - %"$gaslogof_834" = uitofp i64 %"$valueof_833" to double - %"$gaslogof_835" = fadd double %"$gaslogof_834", 1.000000e+00 - %"$gaslogof_836" = call double @llvm.log.f64(double %"$gaslogof_835") - %"$gaslogof_837" = fptoui double %"$gaslogof_836" to i64 - %"$gaslogof_838" = add i64 %"$gaslogof_837", 1 - %"$gasmul_839" = mul i64 20, %"$gaslogof_838" - %"$gasrem_840" = load i64, i64* @_gasrem, align 8 - %"$gascmp_841" = icmp ugt i64 %"$gasmul_839", %"$gasrem_840" - br i1 %"$gascmp_841", label %"$out_of_gas_842", label %"$have_gas_843" - -"$out_of_gas_842": ; preds = %"$have_gas_829" - call void @_out_of_gas() - br label %"$have_gas_843" - -"$have_gas_843": ; preds = %"$out_of_gas_842", %"$have_gas_829" - %"$consume_844" = sub i64 %"$gasrem_840", %"$gasmul_839" - store i64 %"$consume_844", i64* @_gasrem, align 8 - %"$t2_845" = load %Int32, %Int32* %t2, align 4 - %"$p2_846" = load %Uint32, %Uint32* %p2, align 4 - %"$pow_call_847" = call %Int32 @_pow_Int32(%Int32 %"$t2_845", %Uint32 %"$p2_846"), !dbg !56 - store %Int32 %"$pow_call_847", %Int32* %"$p_23", align 4, !dbg !56 - %"$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 = %"$have_gas_843" - call void @_out_of_gas() - br label %"$have_gas_851" - -"$have_gas_851": ; preds = %"$out_of_gas_850", %"$have_gas_843" - %"$consume_852" = sub i64 %"$gasrem_848", 1 - store i64 %"$consume_852", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %Int32* %"$p_23", metadata !145, metadata !DIExpression()), !dbg !146 + %"$p2_833" = load %Uint32, %Uint32* %p2, align 4 + %"$valueof_834" = extractvalue %Uint32 %"$p2_833", 0 + %"$valueof_835" = zext i32 %"$valueof_834" to i64 + %"$gaslogof_836" = uitofp i64 %"$valueof_835" to double + %"$gaslogof_837" = fadd double %"$gaslogof_836", 1.000000e+00 + %"$gaslogof_838" = call double @llvm.log.f64(double %"$gaslogof_837") + %"$gaslogof_839" = fptoui double %"$gaslogof_838" to i64 + %"$gaslogof_840" = add i64 %"$gaslogof_839", 1 + %"$gasmul_841" = mul i64 20, %"$gaslogof_840" + %"$gasrem_842" = load i64, i64* @_gasrem, align 8 + %"$gascmp_843" = icmp ugt i64 %"$gasmul_841", %"$gasrem_842" + br i1 %"$gascmp_843", label %"$out_of_gas_844", label %"$have_gas_845" + +"$out_of_gas_844": ; preds = %"$have_gas_831" + call void @_out_of_gas() + br label %"$have_gas_845" + +"$have_gas_845": ; preds = %"$out_of_gas_844", %"$have_gas_831" + %"$consume_846" = sub i64 %"$gasrem_842", %"$gasmul_841" + store i64 %"$consume_846", i64* @_gasrem, align 8 + %"$t2_847" = load %Int32, %Int32* %t2, align 4 + %"$p2_848" = load %Uint32, %Uint32* %p2, align 4 + %"$pow_call_849" = call %Int32 @_pow_Int32(%Int32 %"$t2_847", %Uint32 %"$p2_848"), !dbg !147 + store %Int32 %"$pow_call_849", %Int32* %"$p_23", align 4, !dbg !147 + %"$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_845" + call void @_out_of_gas() + br label %"$have_gas_853" + +"$have_gas_853": ; preds = %"$out_of_gas_852", %"$have_gas_845" + %"$consume_854" = sub i64 %"$gasrem_850", 1 + store i64 %"$consume_854", i64* @_gasrem, align 8 %"$res_26" = alloca %TName_Bool*, align 8 - %"$gasrem_853" = load i64, i64* @_gasrem, align 8 - %"$gascmp_854" = icmp ugt i64 1, %"$gasrem_853" - br i1 %"$gascmp_854", label %"$out_of_gas_855", label %"$have_gas_856" + call void @llvm.dbg.declare(metadata %TName_Bool** %"$res_26", metadata !148, metadata !DIExpression()), !dbg !149 + %"$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_855": ; preds = %"$have_gas_851" +"$out_of_gas_857": ; preds = %"$have_gas_853" call void @_out_of_gas() - br label %"$have_gas_856" + br label %"$have_gas_858" -"$have_gas_856": ; preds = %"$out_of_gas_855", %"$have_gas_851" - %"$consume_857" = sub i64 %"$gasrem_853", 1 - store i64 %"$consume_857", i64* @_gasrem, align 8 +"$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 %"$ans_24" = alloca %Int32, 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" + call void @llvm.dbg.declare(metadata %Int32* %"$ans_24", metadata !150, metadata !DIExpression()), !dbg !151 + %"$gasrem_860" = load i64, i64* @_gasrem, align 8 + %"$gascmp_861" = icmp ugt i64 1, %"$gasrem_860" + br i1 %"$gascmp_861", label %"$out_of_gas_862", label %"$have_gas_863" -"$out_of_gas_860": ; preds = %"$have_gas_856" +"$out_of_gas_862": ; preds = %"$have_gas_858" call void @_out_of_gas() - br label %"$have_gas_861" + br label %"$have_gas_863" -"$have_gas_861": ; preds = %"$out_of_gas_860", %"$have_gas_856" - %"$consume_862" = sub i64 %"$gasrem_858", 1 - store i64 %"$consume_862", i64* @_gasrem, align 8 - store %Int32 { i32 3 }, %Int32* %"$ans_24", align 4, !dbg !57 - %"$gasrem_863" = load i64, i64* @_gasrem, align 8 - %"$gascmp_864" = icmp ugt i64 1, %"$gasrem_863" - br i1 %"$gascmp_864", label %"$out_of_gas_865", label %"$have_gas_866" +"$have_gas_863": ; preds = %"$out_of_gas_862", %"$have_gas_858" + %"$consume_864" = sub i64 %"$gasrem_860", 1 + store i64 %"$consume_864", i64* @_gasrem, align 8 + store %Int32 { i32 3 }, %Int32* %"$ans_24", align 4, !dbg !152 + %"$gasrem_865" = load i64, i64* @_gasrem, align 8 + %"$gascmp_866" = icmp ugt i64 1, %"$gasrem_865" + br i1 %"$gascmp_866", label %"$out_of_gas_867", label %"$have_gas_868" -"$out_of_gas_865": ; preds = %"$have_gas_861" +"$out_of_gas_867": ; preds = %"$have_gas_863" call void @_out_of_gas() - br label %"$have_gas_866" + br label %"$have_gas_868" -"$have_gas_866": ; preds = %"$out_of_gas_865", %"$have_gas_861" - %"$consume_867" = sub i64 %"$gasrem_863", 1 - store i64 %"$consume_867", i64* @_gasrem, align 8 +"$have_gas_868": ; preds = %"$out_of_gas_867", %"$have_gas_863" + %"$consume_869" = sub i64 %"$gasrem_865", 1 + store i64 %"$consume_869", i64* @_gasrem, align 8 %"$res__25" = alloca %TName_Bool*, align 8 - %"$gasrem_868" = load i64, i64* @_gasrem, align 8 - %"$gascmp_869" = icmp ugt i64 4, %"$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", 4 - store i64 %"$consume_872", i64* @_gasrem, align 8 - %"$execptr_load_873" = load i8*, i8** @_execptr, align 8 - %"$$p_23_874" = load %Int32, %Int32* %"$p_23", align 4 - %"$$ans_24_875" = load %Int32, %Int32* %"$ans_24", align 4 - %"$eq_call_876" = call %TName_Bool* @_eq_Int32(i8* %"$execptr_load_873", %Int32 %"$$p_23_874", %Int32 %"$$ans_24_875"), !dbg !58 - store %TName_Bool* %"$eq_call_876", %TName_Bool** %"$res__25", align 8, !dbg !58 - %"$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_871" - call void @_out_of_gas() - br label %"$have_gas_881" - -"$have_gas_881": ; preds = %"$out_of_gas_880", %"$have_gas_871" - %"$consume_882" = sub i64 %"$gasrem_878", 1 - store i64 %"$consume_882", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$res__25", metadata !153, metadata !DIExpression()), !dbg !154 + %"$gasrem_870" = load i64, i64* @_gasrem, align 8 + %"$gascmp_871" = icmp ugt i64 4, %"$gasrem_870" + br i1 %"$gascmp_871", label %"$out_of_gas_872", label %"$have_gas_873" + +"$out_of_gas_872": ; preds = %"$have_gas_868" + call void @_out_of_gas() + br label %"$have_gas_873" + +"$have_gas_873": ; preds = %"$out_of_gas_872", %"$have_gas_868" + %"$consume_874" = sub i64 %"$gasrem_870", 4 + store i64 %"$consume_874", i64* @_gasrem, align 8 + %"$execptr_load_875" = load i8*, i8** @_execptr, align 8 + %"$$p_23_876" = load %Int32, %Int32* %"$p_23", align 4 + %"$$ans_24_877" = load %Int32, %Int32* %"$ans_24", align 4 + %"$eq_call_878" = call %TName_Bool* @_eq_Int32(i8* %"$execptr_load_875", %Int32 %"$$p_23_876", %Int32 %"$$ans_24_877"), !dbg !155 + store %TName_Bool* %"$eq_call_878", %TName_Bool** %"$res__25", align 8, !dbg !155 + %"$gasrem_880" = load i64, i64* @_gasrem, align 8 + %"$gascmp_881" = icmp ugt i64 1, %"$gasrem_880" + br i1 %"$gascmp_881", label %"$out_of_gas_882", label %"$have_gas_883" + +"$out_of_gas_882": ; preds = %"$have_gas_873" + call void @_out_of_gas() + br label %"$have_gas_883" + +"$have_gas_883": ; preds = %"$out_of_gas_882", %"$have_gas_873" + %"$consume_884" = sub i64 %"$gasrem_880", 1 + store i64 %"$consume_884", i64* @_gasrem, align 8 %"$BoolUtils.andb_149" = alloca { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, align 8 - %"$BoolUtils.andb_883" = 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_884" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_883", 0 - %"$BoolUtils.andb_envptr_885" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_883", 1 - %"$$res_22_886" = load %TName_Bool*, %TName_Bool** %"$res_22", align 8 - %"$BoolUtils.andb_call_887" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_884"(i8* %"$BoolUtils.andb_envptr_885", %TName_Bool* %"$$res_22_886"), !dbg !59 - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_887", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_149", align 8, !dbg !59 + %"$BoolUtils.andb_885" = 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_886" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_885", 0 + %"$BoolUtils.andb_envptr_887" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_885", 1 + %"$$res_22_888" = load %TName_Bool*, %TName_Bool** %"$res_22", align 8 + %"$BoolUtils.andb_call_889" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_886"(i8* %"$BoolUtils.andb_envptr_887", %TName_Bool* %"$$res_22_888"), !dbg !156 + store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_889", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_149", align 8, !dbg !156 %"$BoolUtils.andb_150" = alloca %TName_Bool*, align 8 - %"$$BoolUtils.andb_149_888" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_149", align 8 - %"$$BoolUtils.andb_149_fptr_889" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_149_888", 0 - %"$$BoolUtils.andb_149_envptr_890" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_149_888", 1 - %"$$res__25_891" = load %TName_Bool*, %TName_Bool** %"$res__25", align 8 - %"$$BoolUtils.andb_149_call_892" = call %TName_Bool* %"$$BoolUtils.andb_149_fptr_889"(i8* %"$$BoolUtils.andb_149_envptr_890", %TName_Bool* %"$$res__25_891"), !dbg !59 - store %TName_Bool* %"$$BoolUtils.andb_149_call_892", %TName_Bool** %"$BoolUtils.andb_150", align 8, !dbg !59 - %"$$BoolUtils.andb_150_893" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_150", align 8 - store %TName_Bool* %"$$BoolUtils.andb_150_893", %TName_Bool** %"$res_26", align 8, !dbg !59 - %"$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_881" - call void @_out_of_gas() - br label %"$have_gas_897" - -"$have_gas_897": ; preds = %"$out_of_gas_896", %"$have_gas_881" - %"$consume_898" = sub i64 %"$gasrem_894", 1 - store i64 %"$consume_898", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$BoolUtils.andb_150", metadata !157, metadata !DIExpression()), !dbg !156 + %"$$BoolUtils.andb_149_890" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_149", align 8 + %"$$BoolUtils.andb_149_fptr_891" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_149_890", 0 + %"$$BoolUtils.andb_149_envptr_892" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_149_890", 1 + %"$$res__25_893" = load %TName_Bool*, %TName_Bool** %"$res__25", align 8 + %"$$BoolUtils.andb_149_call_894" = call %TName_Bool* %"$$BoolUtils.andb_149_fptr_891"(i8* %"$$BoolUtils.andb_149_envptr_892", %TName_Bool* %"$$res__25_893"), !dbg !156 + store %TName_Bool* %"$$BoolUtils.andb_149_call_894", %TName_Bool** %"$BoolUtils.andb_150", align 8, !dbg !156 + %"$$BoolUtils.andb_150_895" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_150", align 8 + store %TName_Bool* %"$$BoolUtils.andb_150_895", %TName_Bool** %"$res_26", align 8, !dbg !156 + %"$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_898": ; preds = %"$have_gas_883" + call void @_out_of_gas() + br label %"$have_gas_899" + +"$have_gas_899": ; preds = %"$out_of_gas_898", %"$have_gas_883" + %"$consume_900" = sub i64 %"$gasrem_896", 1 + store i64 %"$consume_900", i64* @_gasrem, align 8 %"$p_27" = alloca %Int32, align 8 - %"$p3_899" = load %Uint32, %Uint32* %p3, align 4 - %"$valueof_900" = extractvalue %Uint32 %"$p3_899", 0 - %"$valueof_901" = zext i32 %"$valueof_900" to i64 - %"$gaslogof_902" = uitofp i64 %"$valueof_901" to double - %"$gaslogof_903" = fadd double %"$gaslogof_902", 1.000000e+00 - %"$gaslogof_904" = call double @llvm.log.f64(double %"$gaslogof_903") - %"$gaslogof_905" = fptoui double %"$gaslogof_904" to i64 - %"$gaslogof_906" = add i64 %"$gaslogof_905", 1 - %"$gasmul_907" = mul i64 20, %"$gaslogof_906" - %"$gasrem_908" = load i64, i64* @_gasrem, align 8 - %"$gascmp_909" = icmp ugt i64 %"$gasmul_907", %"$gasrem_908" - br i1 %"$gascmp_909", label %"$out_of_gas_910", label %"$have_gas_911" - -"$out_of_gas_910": ; preds = %"$have_gas_897" - call void @_out_of_gas() - br label %"$have_gas_911" - -"$have_gas_911": ; preds = %"$out_of_gas_910", %"$have_gas_897" - %"$consume_912" = sub i64 %"$gasrem_908", %"$gasmul_907" - store i64 %"$consume_912", i64* @_gasrem, align 8 - %"$t2_913" = load %Int32, %Int32* %t2, align 4 - %"$p3_914" = load %Uint32, %Uint32* %p3, align 4 - %"$pow_call_915" = call %Int32 @_pow_Int32(%Int32 %"$t2_913", %Uint32 %"$p3_914"), !dbg !60 - store %Int32 %"$pow_call_915", %Int32* %"$p_27", align 4, !dbg !60 - %"$gasrem_916" = load i64, i64* @_gasrem, align 8 - %"$gascmp_917" = icmp ugt i64 1, %"$gasrem_916" - br i1 %"$gascmp_917", label %"$out_of_gas_918", label %"$have_gas_919" - -"$out_of_gas_918": ; preds = %"$have_gas_911" - call void @_out_of_gas() - br label %"$have_gas_919" - -"$have_gas_919": ; preds = %"$out_of_gas_918", %"$have_gas_911" - %"$consume_920" = sub i64 %"$gasrem_916", 1 - store i64 %"$consume_920", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %Int32* %"$p_27", metadata !158, metadata !DIExpression()), !dbg !159 + %"$p3_901" = load %Uint32, %Uint32* %p3, align 4 + %"$valueof_902" = extractvalue %Uint32 %"$p3_901", 0 + %"$valueof_903" = zext i32 %"$valueof_902" to i64 + %"$gaslogof_904" = uitofp i64 %"$valueof_903" to double + %"$gaslogof_905" = fadd double %"$gaslogof_904", 1.000000e+00 + %"$gaslogof_906" = call double @llvm.log.f64(double %"$gaslogof_905") + %"$gaslogof_907" = fptoui double %"$gaslogof_906" to i64 + %"$gaslogof_908" = add i64 %"$gaslogof_907", 1 + %"$gasmul_909" = mul i64 20, %"$gaslogof_908" + %"$gasrem_910" = load i64, i64* @_gasrem, align 8 + %"$gascmp_911" = icmp ugt i64 %"$gasmul_909", %"$gasrem_910" + br i1 %"$gascmp_911", label %"$out_of_gas_912", label %"$have_gas_913" + +"$out_of_gas_912": ; preds = %"$have_gas_899" + call void @_out_of_gas() + br label %"$have_gas_913" + +"$have_gas_913": ; preds = %"$out_of_gas_912", %"$have_gas_899" + %"$consume_914" = sub i64 %"$gasrem_910", %"$gasmul_909" + store i64 %"$consume_914", i64* @_gasrem, align 8 + %"$t2_915" = load %Int32, %Int32* %t2, align 4 + %"$p3_916" = load %Uint32, %Uint32* %p3, align 4 + %"$pow_call_917" = call %Int32 @_pow_Int32(%Int32 %"$t2_915", %Uint32 %"$p3_916"), !dbg !160 + store %Int32 %"$pow_call_917", %Int32* %"$p_27", align 4, !dbg !160 + %"$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 %"$res_30" = alloca %TName_Bool*, 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" + call void @llvm.dbg.declare(metadata %TName_Bool** %"$res_30", metadata !161, metadata !DIExpression()), !dbg !162 + %"$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_923": ; preds = %"$have_gas_919" +"$out_of_gas_925": ; preds = %"$have_gas_921" call void @_out_of_gas() - br label %"$have_gas_924" + br label %"$have_gas_926" -"$have_gas_924": ; preds = %"$out_of_gas_923", %"$have_gas_919" - %"$consume_925" = sub i64 %"$gasrem_921", 1 - store i64 %"$consume_925", i64* @_gasrem, align 8 +"$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 %"$ans_28" = alloca %Int32, 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" + call void @llvm.dbg.declare(metadata %Int32* %"$ans_28", metadata !163, metadata !DIExpression()), !dbg !164 + %"$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_928": ; preds = %"$have_gas_924" +"$out_of_gas_930": ; preds = %"$have_gas_926" call void @_out_of_gas() - br label %"$have_gas_929" + br label %"$have_gas_931" -"$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 - store %Int32 { i32 81 }, %Int32* %"$ans_28", align 4, !dbg !61 - %"$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" +"$have_gas_931": ; preds = %"$out_of_gas_930", %"$have_gas_926" + %"$consume_932" = sub i64 %"$gasrem_928", 1 + store i64 %"$consume_932", i64* @_gasrem, align 8 + store %Int32 { i32 81 }, %Int32* %"$ans_28", align 4, !dbg !165 + %"$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_933": ; preds = %"$have_gas_929" +"$out_of_gas_935": ; preds = %"$have_gas_931" call void @_out_of_gas() - br label %"$have_gas_934" + br label %"$have_gas_936" -"$have_gas_934": ; preds = %"$out_of_gas_933", %"$have_gas_929" - %"$consume_935" = sub i64 %"$gasrem_931", 1 - store i64 %"$consume_935", i64* @_gasrem, align 8 +"$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 %"$res__29" = alloca %TName_Bool*, align 8 - %"$gasrem_936" = load i64, i64* @_gasrem, align 8 - %"$gascmp_937" = icmp ugt i64 4, %"$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", 4 - store i64 %"$consume_940", i64* @_gasrem, align 8 - %"$execptr_load_941" = load i8*, i8** @_execptr, align 8 - %"$$p_27_942" = load %Int32, %Int32* %"$p_27", align 4 - %"$$ans_28_943" = load %Int32, %Int32* %"$ans_28", align 4 - %"$eq_call_944" = call %TName_Bool* @_eq_Int32(i8* %"$execptr_load_941", %Int32 %"$$p_27_942", %Int32 %"$$ans_28_943"), !dbg !62 - store %TName_Bool* %"$eq_call_944", %TName_Bool** %"$res__29", align 8, !dbg !62 - %"$gasrem_946" = load i64, i64* @_gasrem, align 8 - %"$gascmp_947" = icmp ugt i64 1, %"$gasrem_946" - br i1 %"$gascmp_947", label %"$out_of_gas_948", label %"$have_gas_949" - -"$out_of_gas_948": ; preds = %"$have_gas_939" - call void @_out_of_gas() - br label %"$have_gas_949" - -"$have_gas_949": ; preds = %"$out_of_gas_948", %"$have_gas_939" - %"$consume_950" = sub i64 %"$gasrem_946", 1 - store i64 %"$consume_950", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$res__29", metadata !166, metadata !DIExpression()), !dbg !167 + %"$gasrem_938" = load i64, i64* @_gasrem, align 8 + %"$gascmp_939" = icmp ugt i64 4, %"$gasrem_938" + br i1 %"$gascmp_939", label %"$out_of_gas_940", label %"$have_gas_941" + +"$out_of_gas_940": ; preds = %"$have_gas_936" + call void @_out_of_gas() + br label %"$have_gas_941" + +"$have_gas_941": ; preds = %"$out_of_gas_940", %"$have_gas_936" + %"$consume_942" = sub i64 %"$gasrem_938", 4 + store i64 %"$consume_942", i64* @_gasrem, align 8 + %"$execptr_load_943" = load i8*, i8** @_execptr, align 8 + %"$$p_27_944" = load %Int32, %Int32* %"$p_27", align 4 + %"$$ans_28_945" = load %Int32, %Int32* %"$ans_28", align 4 + %"$eq_call_946" = call %TName_Bool* @_eq_Int32(i8* %"$execptr_load_943", %Int32 %"$$p_27_944", %Int32 %"$$ans_28_945"), !dbg !168 + store %TName_Bool* %"$eq_call_946", %TName_Bool** %"$res__29", align 8, !dbg !168 + %"$gasrem_948" = load i64, i64* @_gasrem, align 8 + %"$gascmp_949" = icmp ugt i64 1, %"$gasrem_948" + br i1 %"$gascmp_949", label %"$out_of_gas_950", label %"$have_gas_951" + +"$out_of_gas_950": ; preds = %"$have_gas_941" + call void @_out_of_gas() + br label %"$have_gas_951" + +"$have_gas_951": ; preds = %"$out_of_gas_950", %"$have_gas_941" + %"$consume_952" = sub i64 %"$gasrem_948", 1 + store i64 %"$consume_952", i64* @_gasrem, align 8 %"$BoolUtils.andb_151" = alloca { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, align 8 - %"$BoolUtils.andb_951" = 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_952" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_951", 0 - %"$BoolUtils.andb_envptr_953" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_951", 1 - %"$$res_26_954" = load %TName_Bool*, %TName_Bool** %"$res_26", align 8 - %"$BoolUtils.andb_call_955" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_952"(i8* %"$BoolUtils.andb_envptr_953", %TName_Bool* %"$$res_26_954"), !dbg !63 - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_955", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_151", align 8, !dbg !63 + %"$BoolUtils.andb_953" = 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_954" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_953", 0 + %"$BoolUtils.andb_envptr_955" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_953", 1 + %"$$res_26_956" = load %TName_Bool*, %TName_Bool** %"$res_26", align 8 + %"$BoolUtils.andb_call_957" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_954"(i8* %"$BoolUtils.andb_envptr_955", %TName_Bool* %"$$res_26_956"), !dbg !169 + store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_957", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_151", align 8, !dbg !169 %"$BoolUtils.andb_152" = alloca %TName_Bool*, align 8 - %"$$BoolUtils.andb_151_956" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_151", align 8 - %"$$BoolUtils.andb_151_fptr_957" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_151_956", 0 - %"$$BoolUtils.andb_151_envptr_958" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_151_956", 1 - %"$$res__29_959" = load %TName_Bool*, %TName_Bool** %"$res__29", align 8 - %"$$BoolUtils.andb_151_call_960" = call %TName_Bool* %"$$BoolUtils.andb_151_fptr_957"(i8* %"$$BoolUtils.andb_151_envptr_958", %TName_Bool* %"$$res__29_959"), !dbg !63 - store %TName_Bool* %"$$BoolUtils.andb_151_call_960", %TName_Bool** %"$BoolUtils.andb_152", align 8, !dbg !63 - %"$$BoolUtils.andb_152_961" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_152", align 8 - store %TName_Bool* %"$$BoolUtils.andb_152_961", %TName_Bool** %"$res_30", align 8, !dbg !63 - %"$gasrem_962" = load i64, i64* @_gasrem, align 8 - %"$gascmp_963" = icmp ugt i64 1, %"$gasrem_962" - br i1 %"$gascmp_963", label %"$out_of_gas_964", label %"$have_gas_965" - -"$out_of_gas_964": ; preds = %"$have_gas_949" - call void @_out_of_gas() - br label %"$have_gas_965" - -"$have_gas_965": ; preds = %"$out_of_gas_964", %"$have_gas_949" - %"$consume_966" = sub i64 %"$gasrem_962", 1 - store i64 %"$consume_966", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$BoolUtils.andb_152", metadata !170, metadata !DIExpression()), !dbg !169 + %"$$BoolUtils.andb_151_958" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_151", align 8 + %"$$BoolUtils.andb_151_fptr_959" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_151_958", 0 + %"$$BoolUtils.andb_151_envptr_960" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_151_958", 1 + %"$$res__29_961" = load %TName_Bool*, %TName_Bool** %"$res__29", align 8 + %"$$BoolUtils.andb_151_call_962" = call %TName_Bool* %"$$BoolUtils.andb_151_fptr_959"(i8* %"$$BoolUtils.andb_151_envptr_960", %TName_Bool* %"$$res__29_961"), !dbg !169 + store %TName_Bool* %"$$BoolUtils.andb_151_call_962", %TName_Bool** %"$BoolUtils.andb_152", align 8, !dbg !169 + %"$$BoolUtils.andb_152_963" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_152", align 8 + store %TName_Bool* %"$$BoolUtils.andb_152_963", %TName_Bool** %"$res_30", align 8, !dbg !169 + %"$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" + +"$out_of_gas_966": ; preds = %"$have_gas_951" + call void @_out_of_gas() + br label %"$have_gas_967" + +"$have_gas_967": ; preds = %"$out_of_gas_966", %"$have_gas_951" + %"$consume_968" = sub i64 %"$gasrem_964", 1 + store i64 %"$consume_968", i64* @_gasrem, align 8 %"$p_31" = alloca %Int32, align 8 - %"$p4_967" = load %Uint32, %Uint32* %p4, align 4 - %"$valueof_968" = extractvalue %Uint32 %"$p4_967", 0 - %"$valueof_969" = zext i32 %"$valueof_968" to i64 - %"$gaslogof_970" = uitofp i64 %"$valueof_969" to double - %"$gaslogof_971" = fadd double %"$gaslogof_970", 1.000000e+00 - %"$gaslogof_972" = call double @llvm.log.f64(double %"$gaslogof_971") - %"$gaslogof_973" = fptoui double %"$gaslogof_972" to i64 - %"$gaslogof_974" = add i64 %"$gaslogof_973", 1 - %"$gasmul_975" = mul i64 20, %"$gaslogof_974" - %"$gasrem_976" = load i64, i64* @_gasrem, align 8 - %"$gascmp_977" = icmp ugt i64 %"$gasmul_975", %"$gasrem_976" - br i1 %"$gascmp_977", label %"$out_of_gas_978", label %"$have_gas_979" - -"$out_of_gas_978": ; preds = %"$have_gas_965" - call void @_out_of_gas() - br label %"$have_gas_979" - -"$have_gas_979": ; preds = %"$out_of_gas_978", %"$have_gas_965" - %"$consume_980" = sub i64 %"$gasrem_976", %"$gasmul_975" - store i64 %"$consume_980", i64* @_gasrem, align 8 - %"$t2_981" = load %Int32, %Int32* %t2, align 4 - %"$p4_982" = load %Uint32, %Uint32* %p4, align 4 - %"$pow_call_983" = call %Int32 @_pow_Int32(%Int32 %"$t2_981", %Uint32 %"$p4_982"), !dbg !64 - store %Int32 %"$pow_call_983", %Int32* %"$p_31", align 4, !dbg !64 - %"$gasrem_984" = load i64, i64* @_gasrem, align 8 - %"$gascmp_985" = icmp ugt i64 1, %"$gasrem_984" - br i1 %"$gascmp_985", label %"$out_of_gas_986", label %"$have_gas_987" - -"$out_of_gas_986": ; preds = %"$have_gas_979" - call void @_out_of_gas() - br label %"$have_gas_987" - -"$have_gas_987": ; preds = %"$out_of_gas_986", %"$have_gas_979" - %"$consume_988" = sub i64 %"$gasrem_984", 1 - store i64 %"$consume_988", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %Int32* %"$p_31", metadata !171, metadata !DIExpression()), !dbg !172 + %"$p4_969" = load %Uint32, %Uint32* %p4, align 4 + %"$valueof_970" = extractvalue %Uint32 %"$p4_969", 0 + %"$valueof_971" = zext i32 %"$valueof_970" to i64 + %"$gaslogof_972" = uitofp i64 %"$valueof_971" to double + %"$gaslogof_973" = fadd double %"$gaslogof_972", 1.000000e+00 + %"$gaslogof_974" = call double @llvm.log.f64(double %"$gaslogof_973") + %"$gaslogof_975" = fptoui double %"$gaslogof_974" to i64 + %"$gaslogof_976" = add i64 %"$gaslogof_975", 1 + %"$gasmul_977" = mul i64 20, %"$gaslogof_976" + %"$gasrem_978" = load i64, i64* @_gasrem, align 8 + %"$gascmp_979" = icmp ugt i64 %"$gasmul_977", %"$gasrem_978" + br i1 %"$gascmp_979", label %"$out_of_gas_980", label %"$have_gas_981" + +"$out_of_gas_980": ; preds = %"$have_gas_967" + call void @_out_of_gas() + br label %"$have_gas_981" + +"$have_gas_981": ; preds = %"$out_of_gas_980", %"$have_gas_967" + %"$consume_982" = sub i64 %"$gasrem_978", %"$gasmul_977" + store i64 %"$consume_982", i64* @_gasrem, align 8 + %"$t2_983" = load %Int32, %Int32* %t2, align 4 + %"$p4_984" = load %Uint32, %Uint32* %p4, align 4 + %"$pow_call_985" = call %Int32 @_pow_Int32(%Int32 %"$t2_983", %Uint32 %"$p4_984"), !dbg !173 + store %Int32 %"$pow_call_985", %Int32* %"$p_31", align 4, !dbg !173 + %"$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_981" + call void @_out_of_gas() + br label %"$have_gas_989" + +"$have_gas_989": ; preds = %"$out_of_gas_988", %"$have_gas_981" + %"$consume_990" = sub i64 %"$gasrem_986", 1 + store i64 %"$consume_990", i64* @_gasrem, align 8 %"$res_34" = alloca %TName_Bool*, align 8 - %"$gasrem_989" = load i64, i64* @_gasrem, align 8 - %"$gascmp_990" = icmp ugt i64 1, %"$gasrem_989" - br i1 %"$gascmp_990", label %"$out_of_gas_991", label %"$have_gas_992" + call void @llvm.dbg.declare(metadata %TName_Bool** %"$res_34", metadata !174, metadata !DIExpression()), !dbg !175 + %"$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" -"$out_of_gas_991": ; preds = %"$have_gas_987" +"$out_of_gas_993": ; preds = %"$have_gas_989" call void @_out_of_gas() - br label %"$have_gas_992" + br label %"$have_gas_994" -"$have_gas_992": ; preds = %"$out_of_gas_991", %"$have_gas_987" - %"$consume_993" = sub i64 %"$gasrem_989", 1 - store i64 %"$consume_993", i64* @_gasrem, align 8 +"$have_gas_994": ; preds = %"$out_of_gas_993", %"$have_gas_989" + %"$consume_995" = sub i64 %"$gasrem_991", 1 + store i64 %"$consume_995", i64* @_gasrem, align 8 %"$ans_32" = alloca %Int32, align 8 - %"$gasrem_994" = load i64, i64* @_gasrem, align 8 - %"$gascmp_995" = icmp ugt i64 1, %"$gasrem_994" - br i1 %"$gascmp_995", label %"$out_of_gas_996", label %"$have_gas_997" + call void @llvm.dbg.declare(metadata %Int32* %"$ans_32", metadata !176, metadata !DIExpression()), !dbg !177 + %"$gasrem_996" = load i64, i64* @_gasrem, align 8 + %"$gascmp_997" = icmp ugt i64 1, %"$gasrem_996" + br i1 %"$gascmp_997", label %"$out_of_gas_998", label %"$have_gas_999" -"$out_of_gas_996": ; preds = %"$have_gas_992" +"$out_of_gas_998": ; preds = %"$have_gas_994" call void @_out_of_gas() - br label %"$have_gas_997" + br label %"$have_gas_999" -"$have_gas_997": ; preds = %"$out_of_gas_996", %"$have_gas_992" - %"$consume_998" = sub i64 %"$gasrem_994", 1 - store i64 %"$consume_998", i64* @_gasrem, align 8 - store %Int32 { i32 59049 }, %Int32* %"$ans_32", align 4, !dbg !65 - %"$gasrem_999" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1000" = icmp ugt i64 1, %"$gasrem_999" - br i1 %"$gascmp_1000", label %"$out_of_gas_1001", label %"$have_gas_1002" +"$have_gas_999": ; preds = %"$out_of_gas_998", %"$have_gas_994" + %"$consume_1000" = sub i64 %"$gasrem_996", 1 + store i64 %"$consume_1000", i64* @_gasrem, align 8 + store %Int32 { i32 59049 }, %Int32* %"$ans_32", align 4, !dbg !178 + %"$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_1001": ; preds = %"$have_gas_997" +"$out_of_gas_1003": ; preds = %"$have_gas_999" call void @_out_of_gas() - br label %"$have_gas_1002" + br label %"$have_gas_1004" -"$have_gas_1002": ; preds = %"$out_of_gas_1001", %"$have_gas_997" - %"$consume_1003" = sub i64 %"$gasrem_999", 1 - store i64 %"$consume_1003", i64* @_gasrem, align 8 +"$have_gas_1004": ; preds = %"$out_of_gas_1003", %"$have_gas_999" + %"$consume_1005" = sub i64 %"$gasrem_1001", 1 + store i64 %"$consume_1005", i64* @_gasrem, align 8 %"$res__33" = alloca %TName_Bool*, align 8 - %"$gasrem_1004" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1005" = icmp ugt i64 4, %"$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", 4 - store i64 %"$consume_1008", i64* @_gasrem, align 8 - %"$execptr_load_1009" = load i8*, i8** @_execptr, align 8 - %"$$p_31_1010" = load %Int32, %Int32* %"$p_31", align 4 - %"$$ans_32_1011" = load %Int32, %Int32* %"$ans_32", align 4 - %"$eq_call_1012" = call %TName_Bool* @_eq_Int32(i8* %"$execptr_load_1009", %Int32 %"$$p_31_1010", %Int32 %"$$ans_32_1011"), !dbg !66 - store %TName_Bool* %"$eq_call_1012", %TName_Bool** %"$res__33", align 8, !dbg !66 - %"$gasrem_1014" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1015" = icmp ugt i64 1, %"$gasrem_1014" - br i1 %"$gascmp_1015", label %"$out_of_gas_1016", label %"$have_gas_1017" - -"$out_of_gas_1016": ; preds = %"$have_gas_1007" - call void @_out_of_gas() - br label %"$have_gas_1017" - -"$have_gas_1017": ; preds = %"$out_of_gas_1016", %"$have_gas_1007" - %"$consume_1018" = sub i64 %"$gasrem_1014", 1 - store i64 %"$consume_1018", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$res__33", metadata !179, metadata !DIExpression()), !dbg !180 + %"$gasrem_1006" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1007" = icmp ugt i64 4, %"$gasrem_1006" + br i1 %"$gascmp_1007", label %"$out_of_gas_1008", label %"$have_gas_1009" + +"$out_of_gas_1008": ; preds = %"$have_gas_1004" + call void @_out_of_gas() + br label %"$have_gas_1009" + +"$have_gas_1009": ; preds = %"$out_of_gas_1008", %"$have_gas_1004" + %"$consume_1010" = sub i64 %"$gasrem_1006", 4 + store i64 %"$consume_1010", i64* @_gasrem, align 8 + %"$execptr_load_1011" = load i8*, i8** @_execptr, align 8 + %"$$p_31_1012" = load %Int32, %Int32* %"$p_31", align 4 + %"$$ans_32_1013" = load %Int32, %Int32* %"$ans_32", align 4 + %"$eq_call_1014" = call %TName_Bool* @_eq_Int32(i8* %"$execptr_load_1011", %Int32 %"$$p_31_1012", %Int32 %"$$ans_32_1013"), !dbg !181 + store %TName_Bool* %"$eq_call_1014", %TName_Bool** %"$res__33", align 8, !dbg !181 + %"$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 = %"$have_gas_1009" + call void @_out_of_gas() + br label %"$have_gas_1019" + +"$have_gas_1019": ; preds = %"$out_of_gas_1018", %"$have_gas_1009" + %"$consume_1020" = sub i64 %"$gasrem_1016", 1 + store i64 %"$consume_1020", i64* @_gasrem, align 8 %"$BoolUtils.andb_153" = alloca { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, align 8 - %"$BoolUtils.andb_1019" = 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_1020" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_1019", 0 - %"$BoolUtils.andb_envptr_1021" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_1019", 1 - %"$$res_30_1022" = load %TName_Bool*, %TName_Bool** %"$res_30", align 8 - %"$BoolUtils.andb_call_1023" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_1020"(i8* %"$BoolUtils.andb_envptr_1021", %TName_Bool* %"$$res_30_1022"), !dbg !67 - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_1023", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_153", align 8, !dbg !67 + %"$BoolUtils.andb_1021" = 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_1022" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_1021", 0 + %"$BoolUtils.andb_envptr_1023" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_1021", 1 + %"$$res_30_1024" = load %TName_Bool*, %TName_Bool** %"$res_30", align 8 + %"$BoolUtils.andb_call_1025" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_1022"(i8* %"$BoolUtils.andb_envptr_1023", %TName_Bool* %"$$res_30_1024"), !dbg !182 + store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_1025", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_153", align 8, !dbg !182 %"$BoolUtils.andb_154" = alloca %TName_Bool*, align 8 - %"$$BoolUtils.andb_153_1024" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_153", align 8 - %"$$BoolUtils.andb_153_fptr_1025" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_153_1024", 0 - %"$$BoolUtils.andb_153_envptr_1026" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_153_1024", 1 - %"$$res__33_1027" = load %TName_Bool*, %TName_Bool** %"$res__33", align 8 - %"$$BoolUtils.andb_153_call_1028" = call %TName_Bool* %"$$BoolUtils.andb_153_fptr_1025"(i8* %"$$BoolUtils.andb_153_envptr_1026", %TName_Bool* %"$$res__33_1027"), !dbg !67 - store %TName_Bool* %"$$BoolUtils.andb_153_call_1028", %TName_Bool** %"$BoolUtils.andb_154", align 8, !dbg !67 - %"$$BoolUtils.andb_154_1029" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_154", align 8 - store %TName_Bool* %"$$BoolUtils.andb_154_1029", %TName_Bool** %"$res_34", align 8, !dbg !67 - %"$gasrem_1030" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1031" = icmp ugt i64 1, %"$gasrem_1030" - br i1 %"$gascmp_1031", label %"$out_of_gas_1032", label %"$have_gas_1033" - -"$out_of_gas_1032": ; preds = %"$have_gas_1017" - call void @_out_of_gas() - br label %"$have_gas_1033" - -"$have_gas_1033": ; preds = %"$out_of_gas_1032", %"$have_gas_1017" - %"$consume_1034" = sub i64 %"$gasrem_1030", 1 - store i64 %"$consume_1034", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$BoolUtils.andb_154", metadata !183, metadata !DIExpression()), !dbg !182 + %"$$BoolUtils.andb_153_1026" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_153", align 8 + %"$$BoolUtils.andb_153_fptr_1027" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_153_1026", 0 + %"$$BoolUtils.andb_153_envptr_1028" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_153_1026", 1 + %"$$res__33_1029" = load %TName_Bool*, %TName_Bool** %"$res__33", align 8 + %"$$BoolUtils.andb_153_call_1030" = call %TName_Bool* %"$$BoolUtils.andb_153_fptr_1027"(i8* %"$$BoolUtils.andb_153_envptr_1028", %TName_Bool* %"$$res__33_1029"), !dbg !182 + store %TName_Bool* %"$$BoolUtils.andb_153_call_1030", %TName_Bool** %"$BoolUtils.andb_154", align 8, !dbg !182 + %"$$BoolUtils.andb_154_1031" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_154", align 8 + store %TName_Bool* %"$$BoolUtils.andb_154_1031", %TName_Bool** %"$res_34", align 8, !dbg !182 + %"$gasrem_1032" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1033" = icmp ugt i64 1, %"$gasrem_1032" + br i1 %"$gascmp_1033", label %"$out_of_gas_1034", label %"$have_gas_1035" + +"$out_of_gas_1034": ; preds = %"$have_gas_1019" + call void @_out_of_gas() + br label %"$have_gas_1035" + +"$have_gas_1035": ; preds = %"$out_of_gas_1034", %"$have_gas_1019" + %"$consume_1036" = sub i64 %"$gasrem_1032", 1 + store i64 %"$consume_1036", i64* @_gasrem, align 8 %"$p_35" = alloca %Uint64, align 8 - %"$p1_1035" = load %Uint32, %Uint32* %p1, align 4 - %"$valueof_1036" = extractvalue %Uint32 %"$p1_1035", 0 - %"$valueof_1037" = zext i32 %"$valueof_1036" to i64 - %"$gaslogof_1038" = uitofp i64 %"$valueof_1037" to double - %"$gaslogof_1039" = fadd double %"$gaslogof_1038", 1.000000e+00 - %"$gaslogof_1040" = call double @llvm.log.f64(double %"$gaslogof_1039") - %"$gaslogof_1041" = fptoui double %"$gaslogof_1040" to i64 - %"$gaslogof_1042" = add i64 %"$gaslogof_1041", 1 - %"$gasmul_1043" = mul i64 20, %"$gaslogof_1042" - %"$gasrem_1044" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1045" = icmp ugt i64 %"$gasmul_1043", %"$gasrem_1044" - br i1 %"$gascmp_1045", label %"$out_of_gas_1046", label %"$have_gas_1047" - -"$out_of_gas_1046": ; preds = %"$have_gas_1033" - call void @_out_of_gas() - br label %"$have_gas_1047" - -"$have_gas_1047": ; preds = %"$out_of_gas_1046", %"$have_gas_1033" - %"$consume_1048" = sub i64 %"$gasrem_1044", %"$gasmul_1043" - store i64 %"$consume_1048", i64* @_gasrem, align 8 - %"$t3_1049" = load %Uint64, %Uint64* %t3, align 8 - %"$p1_1050" = load %Uint32, %Uint32* %p1, align 4 - %"$pow_call_1051" = call %Uint64 @_pow_Uint64(%Uint64 %"$t3_1049", %Uint32 %"$p1_1050"), !dbg !68 - store %Uint64 %"$pow_call_1051", %Uint64* %"$p_35", align 8, !dbg !68 - %"$gasrem_1052" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1053" = icmp ugt i64 1, %"$gasrem_1052" - br i1 %"$gascmp_1053", label %"$out_of_gas_1054", label %"$have_gas_1055" - -"$out_of_gas_1054": ; preds = %"$have_gas_1047" - call void @_out_of_gas() - br label %"$have_gas_1055" - -"$have_gas_1055": ; preds = %"$out_of_gas_1054", %"$have_gas_1047" - %"$consume_1056" = sub i64 %"$gasrem_1052", 1 - store i64 %"$consume_1056", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %Uint64* %"$p_35", metadata !184, metadata !DIExpression()), !dbg !185 + %"$p1_1037" = load %Uint32, %Uint32* %p1, align 4 + %"$valueof_1038" = extractvalue %Uint32 %"$p1_1037", 0 + %"$valueof_1039" = zext i32 %"$valueof_1038" to i64 + %"$gaslogof_1040" = uitofp i64 %"$valueof_1039" to double + %"$gaslogof_1041" = fadd double %"$gaslogof_1040", 1.000000e+00 + %"$gaslogof_1042" = call double @llvm.log.f64(double %"$gaslogof_1041") + %"$gaslogof_1043" = fptoui double %"$gaslogof_1042" to i64 + %"$gaslogof_1044" = add i64 %"$gaslogof_1043", 1 + %"$gasmul_1045" = mul i64 20, %"$gaslogof_1044" + %"$gasrem_1046" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1047" = icmp ugt i64 %"$gasmul_1045", %"$gasrem_1046" + br i1 %"$gascmp_1047", label %"$out_of_gas_1048", label %"$have_gas_1049" + +"$out_of_gas_1048": ; preds = %"$have_gas_1035" + call void @_out_of_gas() + br label %"$have_gas_1049" + +"$have_gas_1049": ; preds = %"$out_of_gas_1048", %"$have_gas_1035" + %"$consume_1050" = sub i64 %"$gasrem_1046", %"$gasmul_1045" + store i64 %"$consume_1050", i64* @_gasrem, align 8 + %"$t3_1051" = load %Uint64, %Uint64* %t3, align 8 + %"$p1_1052" = load %Uint32, %Uint32* %p1, align 4 + %"$pow_call_1053" = call %Uint64 @_pow_Uint64(%Uint64 %"$t3_1051", %Uint32 %"$p1_1052"), !dbg !186 + store %Uint64 %"$pow_call_1053", %Uint64* %"$p_35", align 8, !dbg !186 + %"$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_1056": ; preds = %"$have_gas_1049" + call void @_out_of_gas() + br label %"$have_gas_1057" + +"$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 %"$res_38" = alloca %TName_Bool*, align 8 - %"$gasrem_1057" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1058" = icmp ugt i64 1, %"$gasrem_1057" - br i1 %"$gascmp_1058", label %"$out_of_gas_1059", label %"$have_gas_1060" + call void @llvm.dbg.declare(metadata %TName_Bool** %"$res_38", metadata !187, metadata !DIExpression()), !dbg !188 + %"$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_1059": ; preds = %"$have_gas_1055" +"$out_of_gas_1061": ; preds = %"$have_gas_1057" call void @_out_of_gas() - br label %"$have_gas_1060" + br label %"$have_gas_1062" -"$have_gas_1060": ; preds = %"$out_of_gas_1059", %"$have_gas_1055" - %"$consume_1061" = sub i64 %"$gasrem_1057", 1 - store i64 %"$consume_1061", i64* @_gasrem, align 8 +"$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 %"$ans_36" = alloca %Uint64, align 8 - %"$gasrem_1062" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1063" = icmp ugt i64 1, %"$gasrem_1062" - br i1 %"$gascmp_1063", label %"$out_of_gas_1064", label %"$have_gas_1065" + call void @llvm.dbg.declare(metadata %Uint64* %"$ans_36", metadata !189, metadata !DIExpression()), !dbg !190 + %"$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_1064": ; preds = %"$have_gas_1060" +"$out_of_gas_1066": ; preds = %"$have_gas_1062" call void @_out_of_gas() - br label %"$have_gas_1065" + br label %"$have_gas_1067" -"$have_gas_1065": ; preds = %"$out_of_gas_1064", %"$have_gas_1060" - %"$consume_1066" = sub i64 %"$gasrem_1062", 1 - store i64 %"$consume_1066", i64* @_gasrem, align 8 - store %Uint64 { i64 1 }, %Uint64* %"$ans_36", align 8, !dbg !69 - %"$gasrem_1067" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1068" = icmp ugt i64 1, %"$gasrem_1067" - br i1 %"$gascmp_1068", label %"$out_of_gas_1069", label %"$have_gas_1070" +"$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 + store %Uint64 { i64 1 }, %Uint64* %"$ans_36", align 8, !dbg !191 + %"$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_1069": ; preds = %"$have_gas_1065" +"$out_of_gas_1071": ; preds = %"$have_gas_1067" call void @_out_of_gas() - br label %"$have_gas_1070" + br label %"$have_gas_1072" -"$have_gas_1070": ; preds = %"$out_of_gas_1069", %"$have_gas_1065" - %"$consume_1071" = sub i64 %"$gasrem_1067", 1 - store i64 %"$consume_1071", i64* @_gasrem, align 8 +"$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 %"$res__37" = alloca %TName_Bool*, align 8 - %"$gasrem_1072" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1073" = icmp ugt i64 4, %"$gasrem_1072" - br i1 %"$gascmp_1073", label %"$out_of_gas_1074", label %"$have_gas_1075" - -"$out_of_gas_1074": ; preds = %"$have_gas_1070" - call void @_out_of_gas() - br label %"$have_gas_1075" - -"$have_gas_1075": ; preds = %"$out_of_gas_1074", %"$have_gas_1070" - %"$consume_1076" = sub i64 %"$gasrem_1072", 4 - store i64 %"$consume_1076", i64* @_gasrem, align 8 - %"$execptr_load_1077" = load i8*, i8** @_execptr, align 8 - %"$$p_35_1078" = load %Uint64, %Uint64* %"$p_35", align 8 - %"$$ans_36_1079" = load %Uint64, %Uint64* %"$ans_36", align 8 - %"$eq_call_1080" = call %TName_Bool* @_eq_Uint64(i8* %"$execptr_load_1077", %Uint64 %"$$p_35_1078", %Uint64 %"$$ans_36_1079"), !dbg !70 - store %TName_Bool* %"$eq_call_1080", %TName_Bool** %"$res__37", align 8, !dbg !70 - %"$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_1084": ; preds = %"$have_gas_1075" - call void @_out_of_gas() - br label %"$have_gas_1085" - -"$have_gas_1085": ; preds = %"$out_of_gas_1084", %"$have_gas_1075" - %"$consume_1086" = sub i64 %"$gasrem_1082", 1 - store i64 %"$consume_1086", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$res__37", metadata !192, metadata !DIExpression()), !dbg !193 + %"$gasrem_1074" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1075" = icmp ugt i64 4, %"$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", 4 + store i64 %"$consume_1078", i64* @_gasrem, align 8 + %"$execptr_load_1079" = load i8*, i8** @_execptr, align 8 + %"$$p_35_1080" = load %Uint64, %Uint64* %"$p_35", align 8 + %"$$ans_36_1081" = load %Uint64, %Uint64* %"$ans_36", align 8 + %"$eq_call_1082" = call %TName_Bool* @_eq_Uint64(i8* %"$execptr_load_1079", %Uint64 %"$$p_35_1080", %Uint64 %"$$ans_36_1081"), !dbg !194 + store %TName_Bool* %"$eq_call_1082", %TName_Bool** %"$res__37", align 8, !dbg !194 + %"$gasrem_1084" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1085" = icmp ugt i64 1, %"$gasrem_1084" + br i1 %"$gascmp_1085", label %"$out_of_gas_1086", label %"$have_gas_1087" + +"$out_of_gas_1086": ; preds = %"$have_gas_1077" + call void @_out_of_gas() + br label %"$have_gas_1087" + +"$have_gas_1087": ; preds = %"$out_of_gas_1086", %"$have_gas_1077" + %"$consume_1088" = sub i64 %"$gasrem_1084", 1 + store i64 %"$consume_1088", i64* @_gasrem, align 8 %"$BoolUtils.andb_155" = alloca { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, align 8 - %"$BoolUtils.andb_1087" = 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_1088" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_1087", 0 - %"$BoolUtils.andb_envptr_1089" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_1087", 1 - %"$$res_34_1090" = load %TName_Bool*, %TName_Bool** %"$res_34", align 8 - %"$BoolUtils.andb_call_1091" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_1088"(i8* %"$BoolUtils.andb_envptr_1089", %TName_Bool* %"$$res_34_1090"), !dbg !71 - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_1091", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_155", align 8, !dbg !71 + %"$BoolUtils.andb_1089" = 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_1090" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_1089", 0 + %"$BoolUtils.andb_envptr_1091" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_1089", 1 + %"$$res_34_1092" = load %TName_Bool*, %TName_Bool** %"$res_34", align 8 + %"$BoolUtils.andb_call_1093" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_1090"(i8* %"$BoolUtils.andb_envptr_1091", %TName_Bool* %"$$res_34_1092"), !dbg !195 + store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_1093", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_155", align 8, !dbg !195 %"$BoolUtils.andb_156" = alloca %TName_Bool*, align 8 - %"$$BoolUtils.andb_155_1092" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_155", align 8 - %"$$BoolUtils.andb_155_fptr_1093" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_155_1092", 0 - %"$$BoolUtils.andb_155_envptr_1094" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_155_1092", 1 - %"$$res__37_1095" = load %TName_Bool*, %TName_Bool** %"$res__37", align 8 - %"$$BoolUtils.andb_155_call_1096" = call %TName_Bool* %"$$BoolUtils.andb_155_fptr_1093"(i8* %"$$BoolUtils.andb_155_envptr_1094", %TName_Bool* %"$$res__37_1095"), !dbg !71 - store %TName_Bool* %"$$BoolUtils.andb_155_call_1096", %TName_Bool** %"$BoolUtils.andb_156", align 8, !dbg !71 - %"$$BoolUtils.andb_156_1097" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_156", align 8 - store %TName_Bool* %"$$BoolUtils.andb_156_1097", %TName_Bool** %"$res_38", align 8, !dbg !71 - %"$gasrem_1098" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1099" = icmp ugt i64 1, %"$gasrem_1098" - br i1 %"$gascmp_1099", label %"$out_of_gas_1100", label %"$have_gas_1101" - -"$out_of_gas_1100": ; preds = %"$have_gas_1085" - call void @_out_of_gas() - br label %"$have_gas_1101" - -"$have_gas_1101": ; preds = %"$out_of_gas_1100", %"$have_gas_1085" - %"$consume_1102" = sub i64 %"$gasrem_1098", 1 - store i64 %"$consume_1102", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$BoolUtils.andb_156", metadata !196, metadata !DIExpression()), !dbg !195 + %"$$BoolUtils.andb_155_1094" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_155", align 8 + %"$$BoolUtils.andb_155_fptr_1095" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_155_1094", 0 + %"$$BoolUtils.andb_155_envptr_1096" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_155_1094", 1 + %"$$res__37_1097" = load %TName_Bool*, %TName_Bool** %"$res__37", align 8 + %"$$BoolUtils.andb_155_call_1098" = call %TName_Bool* %"$$BoolUtils.andb_155_fptr_1095"(i8* %"$$BoolUtils.andb_155_envptr_1096", %TName_Bool* %"$$res__37_1097"), !dbg !195 + store %TName_Bool* %"$$BoolUtils.andb_155_call_1098", %TName_Bool** %"$BoolUtils.andb_156", align 8, !dbg !195 + %"$$BoolUtils.andb_156_1099" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_156", align 8 + store %TName_Bool* %"$$BoolUtils.andb_156_1099", %TName_Bool** %"$res_38", align 8, !dbg !195 + %"$gasrem_1100" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1101" = icmp ugt i64 1, %"$gasrem_1100" + br i1 %"$gascmp_1101", label %"$out_of_gas_1102", label %"$have_gas_1103" + +"$out_of_gas_1102": ; preds = %"$have_gas_1087" + call void @_out_of_gas() + br label %"$have_gas_1103" + +"$have_gas_1103": ; preds = %"$out_of_gas_1102", %"$have_gas_1087" + %"$consume_1104" = sub i64 %"$gasrem_1100", 1 + store i64 %"$consume_1104", i64* @_gasrem, align 8 %"$p_39" = alloca %Uint64, align 8 - %"$p2_1103" = load %Uint32, %Uint32* %p2, align 4 - %"$valueof_1104" = extractvalue %Uint32 %"$p2_1103", 0 - %"$valueof_1105" = zext i32 %"$valueof_1104" to i64 - %"$gaslogof_1106" = uitofp i64 %"$valueof_1105" to double - %"$gaslogof_1107" = fadd double %"$gaslogof_1106", 1.000000e+00 - %"$gaslogof_1108" = call double @llvm.log.f64(double %"$gaslogof_1107") - %"$gaslogof_1109" = fptoui double %"$gaslogof_1108" to i64 - %"$gaslogof_1110" = add i64 %"$gaslogof_1109", 1 - %"$gasmul_1111" = mul i64 20, %"$gaslogof_1110" - %"$gasrem_1112" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1113" = icmp ugt i64 %"$gasmul_1111", %"$gasrem_1112" - br i1 %"$gascmp_1113", label %"$out_of_gas_1114", label %"$have_gas_1115" - -"$out_of_gas_1114": ; preds = %"$have_gas_1101" - call void @_out_of_gas() - br label %"$have_gas_1115" - -"$have_gas_1115": ; preds = %"$out_of_gas_1114", %"$have_gas_1101" - %"$consume_1116" = sub i64 %"$gasrem_1112", %"$gasmul_1111" - store i64 %"$consume_1116", i64* @_gasrem, align 8 - %"$t3_1117" = load %Uint64, %Uint64* %t3, align 8 - %"$p2_1118" = load %Uint32, %Uint32* %p2, align 4 - %"$pow_call_1119" = call %Uint64 @_pow_Uint64(%Uint64 %"$t3_1117", %Uint32 %"$p2_1118"), !dbg !72 - store %Uint64 %"$pow_call_1119", %Uint64* %"$p_39", align 8, !dbg !72 - %"$gasrem_1120" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1121" = icmp ugt i64 1, %"$gasrem_1120" - br i1 %"$gascmp_1121", label %"$out_of_gas_1122", label %"$have_gas_1123" - -"$out_of_gas_1122": ; preds = %"$have_gas_1115" - call void @_out_of_gas() - br label %"$have_gas_1123" - -"$have_gas_1123": ; preds = %"$out_of_gas_1122", %"$have_gas_1115" - %"$consume_1124" = sub i64 %"$gasrem_1120", 1 - store i64 %"$consume_1124", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %Uint64* %"$p_39", metadata !197, metadata !DIExpression()), !dbg !198 + %"$p2_1105" = load %Uint32, %Uint32* %p2, align 4 + %"$valueof_1106" = extractvalue %Uint32 %"$p2_1105", 0 + %"$valueof_1107" = zext i32 %"$valueof_1106" to i64 + %"$gaslogof_1108" = uitofp i64 %"$valueof_1107" to double + %"$gaslogof_1109" = fadd double %"$gaslogof_1108", 1.000000e+00 + %"$gaslogof_1110" = call double @llvm.log.f64(double %"$gaslogof_1109") + %"$gaslogof_1111" = fptoui double %"$gaslogof_1110" to i64 + %"$gaslogof_1112" = add i64 %"$gaslogof_1111", 1 + %"$gasmul_1113" = mul i64 20, %"$gaslogof_1112" + %"$gasrem_1114" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1115" = icmp ugt i64 %"$gasmul_1113", %"$gasrem_1114" + br i1 %"$gascmp_1115", label %"$out_of_gas_1116", label %"$have_gas_1117" + +"$out_of_gas_1116": ; preds = %"$have_gas_1103" + call void @_out_of_gas() + br label %"$have_gas_1117" + +"$have_gas_1117": ; preds = %"$out_of_gas_1116", %"$have_gas_1103" + %"$consume_1118" = sub i64 %"$gasrem_1114", %"$gasmul_1113" + store i64 %"$consume_1118", i64* @_gasrem, align 8 + %"$t3_1119" = load %Uint64, %Uint64* %t3, align 8 + %"$p2_1120" = load %Uint32, %Uint32* %p2, align 4 + %"$pow_call_1121" = call %Uint64 @_pow_Uint64(%Uint64 %"$t3_1119", %Uint32 %"$p2_1120"), !dbg !199 + store %Uint64 %"$pow_call_1121", %Uint64* %"$p_39", align 8, !dbg !199 + %"$gasrem_1122" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1123" = icmp ugt i64 1, %"$gasrem_1122" + br i1 %"$gascmp_1123", label %"$out_of_gas_1124", label %"$have_gas_1125" + +"$out_of_gas_1124": ; preds = %"$have_gas_1117" + call void @_out_of_gas() + br label %"$have_gas_1125" + +"$have_gas_1125": ; preds = %"$out_of_gas_1124", %"$have_gas_1117" + %"$consume_1126" = sub i64 %"$gasrem_1122", 1 + store i64 %"$consume_1126", i64* @_gasrem, align 8 %"$res_42" = alloca %TName_Bool*, align 8 - %"$gasrem_1125" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1126" = icmp ugt i64 1, %"$gasrem_1125" - br i1 %"$gascmp_1126", label %"$out_of_gas_1127", label %"$have_gas_1128" + call void @llvm.dbg.declare(metadata %TName_Bool** %"$res_42", metadata !200, metadata !DIExpression()), !dbg !201 + %"$gasrem_1127" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1128" = icmp ugt i64 1, %"$gasrem_1127" + br i1 %"$gascmp_1128", label %"$out_of_gas_1129", label %"$have_gas_1130" -"$out_of_gas_1127": ; preds = %"$have_gas_1123" +"$out_of_gas_1129": ; preds = %"$have_gas_1125" call void @_out_of_gas() - br label %"$have_gas_1128" + br label %"$have_gas_1130" -"$have_gas_1128": ; preds = %"$out_of_gas_1127", %"$have_gas_1123" - %"$consume_1129" = sub i64 %"$gasrem_1125", 1 - store i64 %"$consume_1129", i64* @_gasrem, align 8 +"$have_gas_1130": ; preds = %"$out_of_gas_1129", %"$have_gas_1125" + %"$consume_1131" = sub i64 %"$gasrem_1127", 1 + store i64 %"$consume_1131", i64* @_gasrem, align 8 %"$ans_40" = alloca %Uint64, align 8 - %"$gasrem_1130" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1131" = icmp ugt i64 1, %"$gasrem_1130" - br i1 %"$gascmp_1131", label %"$out_of_gas_1132", label %"$have_gas_1133" + call void @llvm.dbg.declare(metadata %Uint64* %"$ans_40", metadata !202, metadata !DIExpression()), !dbg !203 + %"$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_1132": ; preds = %"$have_gas_1128" +"$out_of_gas_1134": ; preds = %"$have_gas_1130" call void @_out_of_gas() - br label %"$have_gas_1133" + br label %"$have_gas_1135" -"$have_gas_1133": ; preds = %"$out_of_gas_1132", %"$have_gas_1128" - %"$consume_1134" = sub i64 %"$gasrem_1130", 1 - store i64 %"$consume_1134", i64* @_gasrem, align 8 - store %Uint64 { i64 100 }, %Uint64* %"$ans_40", align 8, !dbg !73 - %"$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_1135": ; preds = %"$out_of_gas_1134", %"$have_gas_1130" + %"$consume_1136" = sub i64 %"$gasrem_1132", 1 + store i64 %"$consume_1136", i64* @_gasrem, align 8 + store %Uint64 { i64 100 }, %Uint64* %"$ans_40", align 8, !dbg !204 + %"$gasrem_1137" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1138" = icmp ugt i64 1, %"$gasrem_1137" + br i1 %"$gascmp_1138", label %"$out_of_gas_1139", label %"$have_gas_1140" -"$out_of_gas_1137": ; preds = %"$have_gas_1133" +"$out_of_gas_1139": ; preds = %"$have_gas_1135" call void @_out_of_gas() - br label %"$have_gas_1138" + br label %"$have_gas_1140" -"$have_gas_1138": ; preds = %"$out_of_gas_1137", %"$have_gas_1133" - %"$consume_1139" = sub i64 %"$gasrem_1135", 1 - store i64 %"$consume_1139", i64* @_gasrem, align 8 +"$have_gas_1140": ; preds = %"$out_of_gas_1139", %"$have_gas_1135" + %"$consume_1141" = sub i64 %"$gasrem_1137", 1 + store i64 %"$consume_1141", i64* @_gasrem, align 8 %"$res__41" = alloca %TName_Bool*, align 8 - %"$gasrem_1140" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1141" = icmp ugt i64 4, %"$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", 4 - store i64 %"$consume_1144", i64* @_gasrem, align 8 - %"$execptr_load_1145" = load i8*, i8** @_execptr, align 8 - %"$$p_39_1146" = load %Uint64, %Uint64* %"$p_39", align 8 - %"$$ans_40_1147" = load %Uint64, %Uint64* %"$ans_40", align 8 - %"$eq_call_1148" = call %TName_Bool* @_eq_Uint64(i8* %"$execptr_load_1145", %Uint64 %"$$p_39_1146", %Uint64 %"$$ans_40_1147"), !dbg !74 - store %TName_Bool* %"$eq_call_1148", %TName_Bool** %"$res__41", align 8, !dbg !74 - %"$gasrem_1150" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1151" = icmp ugt i64 1, %"$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", 1 - store i64 %"$consume_1154", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$res__41", metadata !205, metadata !DIExpression()), !dbg !206 + %"$gasrem_1142" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1143" = icmp ugt i64 4, %"$gasrem_1142" + br i1 %"$gascmp_1143", label %"$out_of_gas_1144", label %"$have_gas_1145" + +"$out_of_gas_1144": ; preds = %"$have_gas_1140" + call void @_out_of_gas() + br label %"$have_gas_1145" + +"$have_gas_1145": ; preds = %"$out_of_gas_1144", %"$have_gas_1140" + %"$consume_1146" = sub i64 %"$gasrem_1142", 4 + store i64 %"$consume_1146", i64* @_gasrem, align 8 + %"$execptr_load_1147" = load i8*, i8** @_execptr, align 8 + %"$$p_39_1148" = load %Uint64, %Uint64* %"$p_39", align 8 + %"$$ans_40_1149" = load %Uint64, %Uint64* %"$ans_40", align 8 + %"$eq_call_1150" = call %TName_Bool* @_eq_Uint64(i8* %"$execptr_load_1147", %Uint64 %"$$p_39_1148", %Uint64 %"$$ans_40_1149"), !dbg !207 + store %TName_Bool* %"$eq_call_1150", %TName_Bool** %"$res__41", align 8, !dbg !207 + %"$gasrem_1152" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1153" = icmp ugt i64 1, %"$gasrem_1152" + br i1 %"$gascmp_1153", label %"$out_of_gas_1154", label %"$have_gas_1155" + +"$out_of_gas_1154": ; preds = %"$have_gas_1145" + call void @_out_of_gas() + br label %"$have_gas_1155" + +"$have_gas_1155": ; preds = %"$out_of_gas_1154", %"$have_gas_1145" + %"$consume_1156" = sub i64 %"$gasrem_1152", 1 + store i64 %"$consume_1156", i64* @_gasrem, align 8 %"$BoolUtils.andb_157" = alloca { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, align 8 - %"$BoolUtils.andb_1155" = 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_1156" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_1155", 0 - %"$BoolUtils.andb_envptr_1157" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_1155", 1 - %"$$res_38_1158" = load %TName_Bool*, %TName_Bool** %"$res_38", align 8 - %"$BoolUtils.andb_call_1159" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_1156"(i8* %"$BoolUtils.andb_envptr_1157", %TName_Bool* %"$$res_38_1158"), !dbg !75 - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_1159", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_157", align 8, !dbg !75 + %"$BoolUtils.andb_1157" = 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_1158" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_1157", 0 + %"$BoolUtils.andb_envptr_1159" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_1157", 1 + %"$$res_38_1160" = load %TName_Bool*, %TName_Bool** %"$res_38", align 8 + %"$BoolUtils.andb_call_1161" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_1158"(i8* %"$BoolUtils.andb_envptr_1159", %TName_Bool* %"$$res_38_1160"), !dbg !208 + store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_1161", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_157", align 8, !dbg !208 %"$BoolUtils.andb_158" = alloca %TName_Bool*, align 8 - %"$$BoolUtils.andb_157_1160" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_157", align 8 - %"$$BoolUtils.andb_157_fptr_1161" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_157_1160", 0 - %"$$BoolUtils.andb_157_envptr_1162" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_157_1160", 1 - %"$$res__41_1163" = load %TName_Bool*, %TName_Bool** %"$res__41", align 8 - %"$$BoolUtils.andb_157_call_1164" = call %TName_Bool* %"$$BoolUtils.andb_157_fptr_1161"(i8* %"$$BoolUtils.andb_157_envptr_1162", %TName_Bool* %"$$res__41_1163"), !dbg !75 - store %TName_Bool* %"$$BoolUtils.andb_157_call_1164", %TName_Bool** %"$BoolUtils.andb_158", align 8, !dbg !75 - %"$$BoolUtils.andb_158_1165" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_158", align 8 - store %TName_Bool* %"$$BoolUtils.andb_158_1165", %TName_Bool** %"$res_42", align 8, !dbg !75 - %"$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 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$BoolUtils.andb_158", metadata !209, metadata !DIExpression()), !dbg !208 + %"$$BoolUtils.andb_157_1162" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_157", align 8 + %"$$BoolUtils.andb_157_fptr_1163" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_157_1162", 0 + %"$$BoolUtils.andb_157_envptr_1164" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_157_1162", 1 + %"$$res__41_1165" = load %TName_Bool*, %TName_Bool** %"$res__41", align 8 + %"$$BoolUtils.andb_157_call_1166" = call %TName_Bool* %"$$BoolUtils.andb_157_fptr_1163"(i8* %"$$BoolUtils.andb_157_envptr_1164", %TName_Bool* %"$$res__41_1165"), !dbg !208 + store %TName_Bool* %"$$BoolUtils.andb_157_call_1166", %TName_Bool** %"$BoolUtils.andb_158", align 8, !dbg !208 + %"$$BoolUtils.andb_158_1167" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_158", align 8 + store %TName_Bool* %"$$BoolUtils.andb_158_1167", %TName_Bool** %"$res_42", align 8, !dbg !208 + %"$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_1170": ; preds = %"$have_gas_1155" + call void @_out_of_gas() + br label %"$have_gas_1171" + +"$have_gas_1171": ; preds = %"$out_of_gas_1170", %"$have_gas_1155" + %"$consume_1172" = sub i64 %"$gasrem_1168", 1 + store i64 %"$consume_1172", i64* @_gasrem, align 8 %"$p_43" = alloca %Uint64, align 8 - %"$p3_1171" = load %Uint32, %Uint32* %p3, align 4 - %"$valueof_1172" = extractvalue %Uint32 %"$p3_1171", 0 - %"$valueof_1173" = zext i32 %"$valueof_1172" to i64 - %"$gaslogof_1174" = uitofp i64 %"$valueof_1173" to double - %"$gaslogof_1175" = fadd double %"$gaslogof_1174", 1.000000e+00 - %"$gaslogof_1176" = call double @llvm.log.f64(double %"$gaslogof_1175") - %"$gaslogof_1177" = fptoui double %"$gaslogof_1176" to i64 - %"$gaslogof_1178" = add i64 %"$gaslogof_1177", 1 - %"$gasmul_1179" = mul i64 20, %"$gaslogof_1178" - %"$gasrem_1180" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1181" = icmp ugt i64 %"$gasmul_1179", %"$gasrem_1180" - br i1 %"$gascmp_1181", label %"$out_of_gas_1182", label %"$have_gas_1183" - -"$out_of_gas_1182": ; preds = %"$have_gas_1169" - call void @_out_of_gas() - br label %"$have_gas_1183" - -"$have_gas_1183": ; preds = %"$out_of_gas_1182", %"$have_gas_1169" - %"$consume_1184" = sub i64 %"$gasrem_1180", %"$gasmul_1179" - store i64 %"$consume_1184", i64* @_gasrem, align 8 - %"$t3_1185" = load %Uint64, %Uint64* %t3, align 8 - %"$p3_1186" = load %Uint32, %Uint32* %p3, align 4 - %"$pow_call_1187" = call %Uint64 @_pow_Uint64(%Uint64 %"$t3_1185", %Uint32 %"$p3_1186"), !dbg !76 - store %Uint64 %"$pow_call_1187", %Uint64* %"$p_43", align 8, !dbg !76 - %"$gasrem_1188" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1189" = icmp ugt i64 1, %"$gasrem_1188" - br i1 %"$gascmp_1189", label %"$out_of_gas_1190", label %"$have_gas_1191" - -"$out_of_gas_1190": ; preds = %"$have_gas_1183" - call void @_out_of_gas() - br label %"$have_gas_1191" - -"$have_gas_1191": ; preds = %"$out_of_gas_1190", %"$have_gas_1183" - %"$consume_1192" = sub i64 %"$gasrem_1188", 1 - store i64 %"$consume_1192", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %Uint64* %"$p_43", metadata !210, metadata !DIExpression()), !dbg !211 + %"$p3_1173" = load %Uint32, %Uint32* %p3, align 4 + %"$valueof_1174" = extractvalue %Uint32 %"$p3_1173", 0 + %"$valueof_1175" = zext i32 %"$valueof_1174" to i64 + %"$gaslogof_1176" = uitofp i64 %"$valueof_1175" to double + %"$gaslogof_1177" = fadd double %"$gaslogof_1176", 1.000000e+00 + %"$gaslogof_1178" = call double @llvm.log.f64(double %"$gaslogof_1177") + %"$gaslogof_1179" = fptoui double %"$gaslogof_1178" to i64 + %"$gaslogof_1180" = add i64 %"$gaslogof_1179", 1 + %"$gasmul_1181" = mul i64 20, %"$gaslogof_1180" + %"$gasrem_1182" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1183" = icmp ugt i64 %"$gasmul_1181", %"$gasrem_1182" + br i1 %"$gascmp_1183", label %"$out_of_gas_1184", label %"$have_gas_1185" + +"$out_of_gas_1184": ; preds = %"$have_gas_1171" + call void @_out_of_gas() + br label %"$have_gas_1185" + +"$have_gas_1185": ; preds = %"$out_of_gas_1184", %"$have_gas_1171" + %"$consume_1186" = sub i64 %"$gasrem_1182", %"$gasmul_1181" + store i64 %"$consume_1186", i64* @_gasrem, align 8 + %"$t3_1187" = load %Uint64, %Uint64* %t3, align 8 + %"$p3_1188" = load %Uint32, %Uint32* %p3, align 4 + %"$pow_call_1189" = call %Uint64 @_pow_Uint64(%Uint64 %"$t3_1187", %Uint32 %"$p3_1188"), !dbg !212 + store %Uint64 %"$pow_call_1189", %Uint64* %"$p_43", align 8, !dbg !212 + %"$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 = %"$have_gas_1185" + call void @_out_of_gas() + br label %"$have_gas_1193" + +"$have_gas_1193": ; preds = %"$out_of_gas_1192", %"$have_gas_1185" + %"$consume_1194" = sub i64 %"$gasrem_1190", 1 + store i64 %"$consume_1194", i64* @_gasrem, align 8 %"$res_46" = alloca %TName_Bool*, align 8 - %"$gasrem_1193" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1194" = icmp ugt i64 1, %"$gasrem_1193" - br i1 %"$gascmp_1194", label %"$out_of_gas_1195", label %"$have_gas_1196" + call void @llvm.dbg.declare(metadata %TName_Bool** %"$res_46", metadata !213, metadata !DIExpression()), !dbg !214 + %"$gasrem_1195" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1196" = icmp ugt i64 1, %"$gasrem_1195" + br i1 %"$gascmp_1196", label %"$out_of_gas_1197", label %"$have_gas_1198" -"$out_of_gas_1195": ; preds = %"$have_gas_1191" +"$out_of_gas_1197": ; preds = %"$have_gas_1193" call void @_out_of_gas() - br label %"$have_gas_1196" + br label %"$have_gas_1198" -"$have_gas_1196": ; preds = %"$out_of_gas_1195", %"$have_gas_1191" - %"$consume_1197" = sub i64 %"$gasrem_1193", 1 - store i64 %"$consume_1197", i64* @_gasrem, align 8 +"$have_gas_1198": ; preds = %"$out_of_gas_1197", %"$have_gas_1193" + %"$consume_1199" = sub i64 %"$gasrem_1195", 1 + store i64 %"$consume_1199", i64* @_gasrem, align 8 %"$ans_44" = alloca %Uint64, align 8 - %"$gasrem_1198" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1199" = icmp ugt i64 1, %"$gasrem_1198" - br i1 %"$gascmp_1199", label %"$out_of_gas_1200", label %"$have_gas_1201" + call void @llvm.dbg.declare(metadata %Uint64* %"$ans_44", metadata !215, metadata !DIExpression()), !dbg !216 + %"$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_1200": ; preds = %"$have_gas_1196" +"$out_of_gas_1202": ; preds = %"$have_gas_1198" call void @_out_of_gas() - br label %"$have_gas_1201" + br label %"$have_gas_1203" -"$have_gas_1201": ; preds = %"$out_of_gas_1200", %"$have_gas_1196" - %"$consume_1202" = sub i64 %"$gasrem_1198", 1 - store i64 %"$consume_1202", i64* @_gasrem, align 8 - store %Uint64 { i64 100000000 }, %Uint64* %"$ans_44", align 8, !dbg !77 - %"$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" +"$have_gas_1203": ; preds = %"$out_of_gas_1202", %"$have_gas_1198" + %"$consume_1204" = sub i64 %"$gasrem_1200", 1 + store i64 %"$consume_1204", i64* @_gasrem, align 8 + store %Uint64 { i64 100000000 }, %Uint64* %"$ans_44", align 8, !dbg !217 + %"$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_1205": ; preds = %"$have_gas_1201" +"$out_of_gas_1207": ; preds = %"$have_gas_1203" call void @_out_of_gas() - br label %"$have_gas_1206" + br label %"$have_gas_1208" -"$have_gas_1206": ; preds = %"$out_of_gas_1205", %"$have_gas_1201" - %"$consume_1207" = sub i64 %"$gasrem_1203", 1 - store i64 %"$consume_1207", i64* @_gasrem, align 8 +"$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 %"$res__45" = alloca %TName_Bool*, align 8 - %"$gasrem_1208" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1209" = icmp ugt i64 4, %"$gasrem_1208" - br i1 %"$gascmp_1209", label %"$out_of_gas_1210", label %"$have_gas_1211" - -"$out_of_gas_1210": ; preds = %"$have_gas_1206" - call void @_out_of_gas() - br label %"$have_gas_1211" - -"$have_gas_1211": ; preds = %"$out_of_gas_1210", %"$have_gas_1206" - %"$consume_1212" = sub i64 %"$gasrem_1208", 4 - store i64 %"$consume_1212", i64* @_gasrem, align 8 - %"$execptr_load_1213" = load i8*, i8** @_execptr, align 8 - %"$$p_43_1214" = load %Uint64, %Uint64* %"$p_43", align 8 - %"$$ans_44_1215" = load %Uint64, %Uint64* %"$ans_44", align 8 - %"$eq_call_1216" = call %TName_Bool* @_eq_Uint64(i8* %"$execptr_load_1213", %Uint64 %"$$p_43_1214", %Uint64 %"$$ans_44_1215"), !dbg !78 - store %TName_Bool* %"$eq_call_1216", %TName_Bool** %"$res__45", align 8, !dbg !78 - %"$gasrem_1218" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1219" = icmp ugt i64 1, %"$gasrem_1218" - br i1 %"$gascmp_1219", label %"$out_of_gas_1220", label %"$have_gas_1221" - -"$out_of_gas_1220": ; preds = %"$have_gas_1211" - call void @_out_of_gas() - br label %"$have_gas_1221" - -"$have_gas_1221": ; preds = %"$out_of_gas_1220", %"$have_gas_1211" - %"$consume_1222" = sub i64 %"$gasrem_1218", 1 - store i64 %"$consume_1222", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$res__45", metadata !218, metadata !DIExpression()), !dbg !219 + %"$gasrem_1210" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1211" = icmp ugt i64 4, %"$gasrem_1210" + br i1 %"$gascmp_1211", label %"$out_of_gas_1212", label %"$have_gas_1213" + +"$out_of_gas_1212": ; preds = %"$have_gas_1208" + call void @_out_of_gas() + br label %"$have_gas_1213" + +"$have_gas_1213": ; preds = %"$out_of_gas_1212", %"$have_gas_1208" + %"$consume_1214" = sub i64 %"$gasrem_1210", 4 + store i64 %"$consume_1214", i64* @_gasrem, align 8 + %"$execptr_load_1215" = load i8*, i8** @_execptr, align 8 + %"$$p_43_1216" = load %Uint64, %Uint64* %"$p_43", align 8 + %"$$ans_44_1217" = load %Uint64, %Uint64* %"$ans_44", align 8 + %"$eq_call_1218" = call %TName_Bool* @_eq_Uint64(i8* %"$execptr_load_1215", %Uint64 %"$$p_43_1216", %Uint64 %"$$ans_44_1217"), !dbg !220 + store %TName_Bool* %"$eq_call_1218", %TName_Bool** %"$res__45", align 8, !dbg !220 + %"$gasrem_1220" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1221" = icmp ugt i64 1, %"$gasrem_1220" + br i1 %"$gascmp_1221", label %"$out_of_gas_1222", label %"$have_gas_1223" + +"$out_of_gas_1222": ; preds = %"$have_gas_1213" + call void @_out_of_gas() + br label %"$have_gas_1223" + +"$have_gas_1223": ; preds = %"$out_of_gas_1222", %"$have_gas_1213" + %"$consume_1224" = sub i64 %"$gasrem_1220", 1 + store i64 %"$consume_1224", i64* @_gasrem, align 8 %"$BoolUtils.andb_159" = alloca { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, align 8 - %"$BoolUtils.andb_1223" = 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_1224" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_1223", 0 - %"$BoolUtils.andb_envptr_1225" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_1223", 1 - %"$$res_42_1226" = load %TName_Bool*, %TName_Bool** %"$res_42", align 8 - %"$BoolUtils.andb_call_1227" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_1224"(i8* %"$BoolUtils.andb_envptr_1225", %TName_Bool* %"$$res_42_1226"), !dbg !79 - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_1227", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_159", align 8, !dbg !79 + %"$BoolUtils.andb_1225" = 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_1226" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_1225", 0 + %"$BoolUtils.andb_envptr_1227" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_1225", 1 + %"$$res_42_1228" = load %TName_Bool*, %TName_Bool** %"$res_42", align 8 + %"$BoolUtils.andb_call_1229" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_1226"(i8* %"$BoolUtils.andb_envptr_1227", %TName_Bool* %"$$res_42_1228"), !dbg !221 + store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_1229", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_159", align 8, !dbg !221 %"$BoolUtils.andb_160" = alloca %TName_Bool*, align 8 - %"$$BoolUtils.andb_159_1228" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_159", align 8 - %"$$BoolUtils.andb_159_fptr_1229" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_159_1228", 0 - %"$$BoolUtils.andb_159_envptr_1230" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_159_1228", 1 - %"$$res__45_1231" = load %TName_Bool*, %TName_Bool** %"$res__45", align 8 - %"$$BoolUtils.andb_159_call_1232" = call %TName_Bool* %"$$BoolUtils.andb_159_fptr_1229"(i8* %"$$BoolUtils.andb_159_envptr_1230", %TName_Bool* %"$$res__45_1231"), !dbg !79 - store %TName_Bool* %"$$BoolUtils.andb_159_call_1232", %TName_Bool** %"$BoolUtils.andb_160", align 8, !dbg !79 - %"$$BoolUtils.andb_160_1233" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_160", align 8 - store %TName_Bool* %"$$BoolUtils.andb_160_1233", %TName_Bool** %"$res_46", align 8, !dbg !79 - %"$gasrem_1234" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1235" = icmp ugt i64 1, %"$gasrem_1234" - br i1 %"$gascmp_1235", label %"$out_of_gas_1236", label %"$have_gas_1237" - -"$out_of_gas_1236": ; preds = %"$have_gas_1221" - call void @_out_of_gas() - br label %"$have_gas_1237" - -"$have_gas_1237": ; preds = %"$out_of_gas_1236", %"$have_gas_1221" - %"$consume_1238" = sub i64 %"$gasrem_1234", 1 - store i64 %"$consume_1238", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$BoolUtils.andb_160", metadata !222, metadata !DIExpression()), !dbg !221 + %"$$BoolUtils.andb_159_1230" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_159", align 8 + %"$$BoolUtils.andb_159_fptr_1231" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_159_1230", 0 + %"$$BoolUtils.andb_159_envptr_1232" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_159_1230", 1 + %"$$res__45_1233" = load %TName_Bool*, %TName_Bool** %"$res__45", align 8 + %"$$BoolUtils.andb_159_call_1234" = call %TName_Bool* %"$$BoolUtils.andb_159_fptr_1231"(i8* %"$$BoolUtils.andb_159_envptr_1232", %TName_Bool* %"$$res__45_1233"), !dbg !221 + store %TName_Bool* %"$$BoolUtils.andb_159_call_1234", %TName_Bool** %"$BoolUtils.andb_160", align 8, !dbg !221 + %"$$BoolUtils.andb_160_1235" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_160", align 8 + store %TName_Bool* %"$$BoolUtils.andb_160_1235", %TName_Bool** %"$res_46", align 8, !dbg !221 + %"$gasrem_1236" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1237" = icmp ugt i64 1, %"$gasrem_1236" + br i1 %"$gascmp_1237", label %"$out_of_gas_1238", label %"$have_gas_1239" + +"$out_of_gas_1238": ; preds = %"$have_gas_1223" + call void @_out_of_gas() + br label %"$have_gas_1239" + +"$have_gas_1239": ; preds = %"$out_of_gas_1238", %"$have_gas_1223" + %"$consume_1240" = sub i64 %"$gasrem_1236", 1 + store i64 %"$consume_1240", i64* @_gasrem, align 8 %"$p_47" = alloca %Int64, align 8 - %"$p1_1239" = load %Uint32, %Uint32* %p1, align 4 - %"$valueof_1240" = extractvalue %Uint32 %"$p1_1239", 0 - %"$valueof_1241" = zext i32 %"$valueof_1240" to i64 - %"$gaslogof_1242" = uitofp i64 %"$valueof_1241" to double - %"$gaslogof_1243" = fadd double %"$gaslogof_1242", 1.000000e+00 - %"$gaslogof_1244" = call double @llvm.log.f64(double %"$gaslogof_1243") - %"$gaslogof_1245" = fptoui double %"$gaslogof_1244" to i64 - %"$gaslogof_1246" = add i64 %"$gaslogof_1245", 1 - %"$gasmul_1247" = mul i64 20, %"$gaslogof_1246" - %"$gasrem_1248" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1249" = icmp ugt i64 %"$gasmul_1247", %"$gasrem_1248" - br i1 %"$gascmp_1249", label %"$out_of_gas_1250", label %"$have_gas_1251" - -"$out_of_gas_1250": ; preds = %"$have_gas_1237" - call void @_out_of_gas() - br label %"$have_gas_1251" - -"$have_gas_1251": ; preds = %"$out_of_gas_1250", %"$have_gas_1237" - %"$consume_1252" = sub i64 %"$gasrem_1248", %"$gasmul_1247" - store i64 %"$consume_1252", i64* @_gasrem, align 8 - %"$t4_1253" = load %Int64, %Int64* %t4, align 8 - %"$p1_1254" = load %Uint32, %Uint32* %p1, align 4 - %"$pow_call_1255" = call %Int64 @_pow_Int64(%Int64 %"$t4_1253", %Uint32 %"$p1_1254"), !dbg !80 - store %Int64 %"$pow_call_1255", %Int64* %"$p_47", align 8, !dbg !80 - %"$gasrem_1256" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1257" = icmp ugt i64 1, %"$gasrem_1256" - br i1 %"$gascmp_1257", label %"$out_of_gas_1258", label %"$have_gas_1259" - -"$out_of_gas_1258": ; preds = %"$have_gas_1251" - call void @_out_of_gas() - br label %"$have_gas_1259" - -"$have_gas_1259": ; preds = %"$out_of_gas_1258", %"$have_gas_1251" - %"$consume_1260" = sub i64 %"$gasrem_1256", 1 - store i64 %"$consume_1260", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %Int64* %"$p_47", metadata !223, metadata !DIExpression()), !dbg !224 + %"$p1_1241" = load %Uint32, %Uint32* %p1, align 4 + %"$valueof_1242" = extractvalue %Uint32 %"$p1_1241", 0 + %"$valueof_1243" = zext i32 %"$valueof_1242" to i64 + %"$gaslogof_1244" = uitofp i64 %"$valueof_1243" to double + %"$gaslogof_1245" = fadd double %"$gaslogof_1244", 1.000000e+00 + %"$gaslogof_1246" = call double @llvm.log.f64(double %"$gaslogof_1245") + %"$gaslogof_1247" = fptoui double %"$gaslogof_1246" to i64 + %"$gaslogof_1248" = add i64 %"$gaslogof_1247", 1 + %"$gasmul_1249" = mul i64 20, %"$gaslogof_1248" + %"$gasrem_1250" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1251" = icmp ugt i64 %"$gasmul_1249", %"$gasrem_1250" + br i1 %"$gascmp_1251", label %"$out_of_gas_1252", label %"$have_gas_1253" + +"$out_of_gas_1252": ; preds = %"$have_gas_1239" + call void @_out_of_gas() + br label %"$have_gas_1253" + +"$have_gas_1253": ; preds = %"$out_of_gas_1252", %"$have_gas_1239" + %"$consume_1254" = sub i64 %"$gasrem_1250", %"$gasmul_1249" + store i64 %"$consume_1254", i64* @_gasrem, align 8 + %"$t4_1255" = load %Int64, %Int64* %t4, align 8 + %"$p1_1256" = load %Uint32, %Uint32* %p1, align 4 + %"$pow_call_1257" = call %Int64 @_pow_Int64(%Int64 %"$t4_1255", %Uint32 %"$p1_1256"), !dbg !225 + store %Int64 %"$pow_call_1257", %Int64* %"$p_47", align 8, !dbg !225 + %"$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_1260": ; preds = %"$have_gas_1253" + call void @_out_of_gas() + br label %"$have_gas_1261" + +"$have_gas_1261": ; preds = %"$out_of_gas_1260", %"$have_gas_1253" + %"$consume_1262" = sub i64 %"$gasrem_1258", 1 + store i64 %"$consume_1262", i64* @_gasrem, align 8 %"$res_50" = alloca %TName_Bool*, align 8 - %"$gasrem_1261" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1262" = icmp ugt i64 1, %"$gasrem_1261" - br i1 %"$gascmp_1262", label %"$out_of_gas_1263", label %"$have_gas_1264" + call void @llvm.dbg.declare(metadata %TName_Bool** %"$res_50", metadata !226, metadata !DIExpression()), !dbg !227 + %"$gasrem_1263" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1264" = icmp ugt i64 1, %"$gasrem_1263" + br i1 %"$gascmp_1264", label %"$out_of_gas_1265", label %"$have_gas_1266" -"$out_of_gas_1263": ; preds = %"$have_gas_1259" +"$out_of_gas_1265": ; preds = %"$have_gas_1261" call void @_out_of_gas() - br label %"$have_gas_1264" + br label %"$have_gas_1266" -"$have_gas_1264": ; preds = %"$out_of_gas_1263", %"$have_gas_1259" - %"$consume_1265" = sub i64 %"$gasrem_1261", 1 - store i64 %"$consume_1265", i64* @_gasrem, align 8 +"$have_gas_1266": ; preds = %"$out_of_gas_1265", %"$have_gas_1261" + %"$consume_1267" = sub i64 %"$gasrem_1263", 1 + store i64 %"$consume_1267", i64* @_gasrem, align 8 %"$ans_48" = alloca %Int64, align 8 - %"$gasrem_1266" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1267" = icmp ugt i64 1, %"$gasrem_1266" - br i1 %"$gascmp_1267", label %"$out_of_gas_1268", label %"$have_gas_1269" + call void @llvm.dbg.declare(metadata %Int64* %"$ans_48", metadata !228, metadata !DIExpression()), !dbg !229 + %"$gasrem_1268" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1269" = icmp ugt i64 1, %"$gasrem_1268" + br i1 %"$gascmp_1269", label %"$out_of_gas_1270", label %"$have_gas_1271" -"$out_of_gas_1268": ; preds = %"$have_gas_1264" +"$out_of_gas_1270": ; preds = %"$have_gas_1266" call void @_out_of_gas() - br label %"$have_gas_1269" + br label %"$have_gas_1271" -"$have_gas_1269": ; preds = %"$out_of_gas_1268", %"$have_gas_1264" - %"$consume_1270" = sub i64 %"$gasrem_1266", 1 - store i64 %"$consume_1270", i64* @_gasrem, align 8 - store %Int64 { i64 1 }, %Int64* %"$ans_48", align 8, !dbg !81 - %"$gasrem_1271" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1272" = icmp ugt i64 1, %"$gasrem_1271" - br i1 %"$gascmp_1272", label %"$out_of_gas_1273", label %"$have_gas_1274" +"$have_gas_1271": ; preds = %"$out_of_gas_1270", %"$have_gas_1266" + %"$consume_1272" = sub i64 %"$gasrem_1268", 1 + store i64 %"$consume_1272", i64* @_gasrem, align 8 + store %Int64 { i64 1 }, %Int64* %"$ans_48", align 8, !dbg !230 + %"$gasrem_1273" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1274" = icmp ugt i64 1, %"$gasrem_1273" + br i1 %"$gascmp_1274", label %"$out_of_gas_1275", label %"$have_gas_1276" -"$out_of_gas_1273": ; preds = %"$have_gas_1269" +"$out_of_gas_1275": ; preds = %"$have_gas_1271" call void @_out_of_gas() - br label %"$have_gas_1274" + br label %"$have_gas_1276" -"$have_gas_1274": ; preds = %"$out_of_gas_1273", %"$have_gas_1269" - %"$consume_1275" = sub i64 %"$gasrem_1271", 1 - store i64 %"$consume_1275", i64* @_gasrem, align 8 +"$have_gas_1276": ; preds = %"$out_of_gas_1275", %"$have_gas_1271" + %"$consume_1277" = sub i64 %"$gasrem_1273", 1 + store i64 %"$consume_1277", i64* @_gasrem, align 8 %"$res__49" = alloca %TName_Bool*, align 8 - %"$gasrem_1276" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1277" = icmp ugt i64 4, %"$gasrem_1276" - br i1 %"$gascmp_1277", label %"$out_of_gas_1278", label %"$have_gas_1279" - -"$out_of_gas_1278": ; preds = %"$have_gas_1274" - call void @_out_of_gas() - br label %"$have_gas_1279" - -"$have_gas_1279": ; preds = %"$out_of_gas_1278", %"$have_gas_1274" - %"$consume_1280" = sub i64 %"$gasrem_1276", 4 - store i64 %"$consume_1280", i64* @_gasrem, align 8 - %"$execptr_load_1281" = load i8*, i8** @_execptr, align 8 - %"$$p_47_1282" = load %Int64, %Int64* %"$p_47", align 8 - %"$$ans_48_1283" = load %Int64, %Int64* %"$ans_48", align 8 - %"$eq_call_1284" = call %TName_Bool* @_eq_Int64(i8* %"$execptr_load_1281", %Int64 %"$$p_47_1282", %Int64 %"$$ans_48_1283"), !dbg !82 - store %TName_Bool* %"$eq_call_1284", %TName_Bool** %"$res__49", align 8, !dbg !82 - %"$gasrem_1286" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1287" = icmp ugt i64 1, %"$gasrem_1286" - br i1 %"$gascmp_1287", label %"$out_of_gas_1288", label %"$have_gas_1289" - -"$out_of_gas_1288": ; preds = %"$have_gas_1279" - call void @_out_of_gas() - br label %"$have_gas_1289" - -"$have_gas_1289": ; preds = %"$out_of_gas_1288", %"$have_gas_1279" - %"$consume_1290" = sub i64 %"$gasrem_1286", 1 - store i64 %"$consume_1290", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$res__49", metadata !231, metadata !DIExpression()), !dbg !232 + %"$gasrem_1278" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1279" = icmp ugt i64 4, %"$gasrem_1278" + br i1 %"$gascmp_1279", label %"$out_of_gas_1280", label %"$have_gas_1281" + +"$out_of_gas_1280": ; preds = %"$have_gas_1276" + call void @_out_of_gas() + br label %"$have_gas_1281" + +"$have_gas_1281": ; preds = %"$out_of_gas_1280", %"$have_gas_1276" + %"$consume_1282" = sub i64 %"$gasrem_1278", 4 + store i64 %"$consume_1282", i64* @_gasrem, align 8 + %"$execptr_load_1283" = load i8*, i8** @_execptr, align 8 + %"$$p_47_1284" = load %Int64, %Int64* %"$p_47", align 8 + %"$$ans_48_1285" = load %Int64, %Int64* %"$ans_48", align 8 + %"$eq_call_1286" = call %TName_Bool* @_eq_Int64(i8* %"$execptr_load_1283", %Int64 %"$$p_47_1284", %Int64 %"$$ans_48_1285"), !dbg !233 + store %TName_Bool* %"$eq_call_1286", %TName_Bool** %"$res__49", align 8, !dbg !233 + %"$gasrem_1288" = load i64, i64* @_gasrem, align 8 + %"$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_1281" + call void @_out_of_gas() + br label %"$have_gas_1291" + +"$have_gas_1291": ; preds = %"$out_of_gas_1290", %"$have_gas_1281" + %"$consume_1292" = sub i64 %"$gasrem_1288", 1 + store i64 %"$consume_1292", i64* @_gasrem, align 8 %"$BoolUtils.andb_161" = alloca { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, align 8 - %"$BoolUtils.andb_1291" = 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_1292" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_1291", 0 - %"$BoolUtils.andb_envptr_1293" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_1291", 1 - %"$$res_46_1294" = load %TName_Bool*, %TName_Bool** %"$res_46", align 8 - %"$BoolUtils.andb_call_1295" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_1292"(i8* %"$BoolUtils.andb_envptr_1293", %TName_Bool* %"$$res_46_1294"), !dbg !83 - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_1295", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_161", align 8, !dbg !83 + %"$BoolUtils.andb_1293" = 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_1294" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_1293", 0 + %"$BoolUtils.andb_envptr_1295" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_1293", 1 + %"$$res_46_1296" = load %TName_Bool*, %TName_Bool** %"$res_46", align 8 + %"$BoolUtils.andb_call_1297" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_1294"(i8* %"$BoolUtils.andb_envptr_1295", %TName_Bool* %"$$res_46_1296"), !dbg !234 + store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_1297", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_161", align 8, !dbg !234 %"$BoolUtils.andb_162" = alloca %TName_Bool*, align 8 - %"$$BoolUtils.andb_161_1296" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_161", align 8 - %"$$BoolUtils.andb_161_fptr_1297" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_161_1296", 0 - %"$$BoolUtils.andb_161_envptr_1298" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_161_1296", 1 - %"$$res__49_1299" = load %TName_Bool*, %TName_Bool** %"$res__49", align 8 - %"$$BoolUtils.andb_161_call_1300" = call %TName_Bool* %"$$BoolUtils.andb_161_fptr_1297"(i8* %"$$BoolUtils.andb_161_envptr_1298", %TName_Bool* %"$$res__49_1299"), !dbg !83 - store %TName_Bool* %"$$BoolUtils.andb_161_call_1300", %TName_Bool** %"$BoolUtils.andb_162", align 8, !dbg !83 - %"$$BoolUtils.andb_162_1301" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_162", align 8 - store %TName_Bool* %"$$BoolUtils.andb_162_1301", %TName_Bool** %"$res_50", align 8, !dbg !83 - %"$gasrem_1302" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1303" = icmp ugt i64 1, %"$gasrem_1302" - br i1 %"$gascmp_1303", label %"$out_of_gas_1304", label %"$have_gas_1305" - -"$out_of_gas_1304": ; preds = %"$have_gas_1289" - call void @_out_of_gas() - br label %"$have_gas_1305" - -"$have_gas_1305": ; preds = %"$out_of_gas_1304", %"$have_gas_1289" - %"$consume_1306" = sub i64 %"$gasrem_1302", 1 - store i64 %"$consume_1306", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$BoolUtils.andb_162", metadata !235, metadata !DIExpression()), !dbg !234 + %"$$BoolUtils.andb_161_1298" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_161", align 8 + %"$$BoolUtils.andb_161_fptr_1299" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_161_1298", 0 + %"$$BoolUtils.andb_161_envptr_1300" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_161_1298", 1 + %"$$res__49_1301" = load %TName_Bool*, %TName_Bool** %"$res__49", align 8 + %"$$BoolUtils.andb_161_call_1302" = call %TName_Bool* %"$$BoolUtils.andb_161_fptr_1299"(i8* %"$$BoolUtils.andb_161_envptr_1300", %TName_Bool* %"$$res__49_1301"), !dbg !234 + store %TName_Bool* %"$$BoolUtils.andb_161_call_1302", %TName_Bool** %"$BoolUtils.andb_162", align 8, !dbg !234 + %"$$BoolUtils.andb_162_1303" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_162", align 8 + store %TName_Bool* %"$$BoolUtils.andb_162_1303", %TName_Bool** %"$res_50", align 8, !dbg !234 + %"$gasrem_1304" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1305" = icmp ugt i64 1, %"$gasrem_1304" + br i1 %"$gascmp_1305", label %"$out_of_gas_1306", label %"$have_gas_1307" + +"$out_of_gas_1306": ; preds = %"$have_gas_1291" + call void @_out_of_gas() + br label %"$have_gas_1307" + +"$have_gas_1307": ; preds = %"$out_of_gas_1306", %"$have_gas_1291" + %"$consume_1308" = sub i64 %"$gasrem_1304", 1 + store i64 %"$consume_1308", i64* @_gasrem, align 8 %"$p_51" = alloca %Int64, align 8 - %"$p2_1307" = load %Uint32, %Uint32* %p2, align 4 - %"$valueof_1308" = extractvalue %Uint32 %"$p2_1307", 0 - %"$valueof_1309" = zext i32 %"$valueof_1308" to i64 - %"$gaslogof_1310" = uitofp i64 %"$valueof_1309" to double - %"$gaslogof_1311" = fadd double %"$gaslogof_1310", 1.000000e+00 - %"$gaslogof_1312" = call double @llvm.log.f64(double %"$gaslogof_1311") - %"$gaslogof_1313" = fptoui double %"$gaslogof_1312" to i64 - %"$gaslogof_1314" = add i64 %"$gaslogof_1313", 1 - %"$gasmul_1315" = mul i64 20, %"$gaslogof_1314" - %"$gasrem_1316" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1317" = icmp ugt i64 %"$gasmul_1315", %"$gasrem_1316" - br i1 %"$gascmp_1317", label %"$out_of_gas_1318", label %"$have_gas_1319" - -"$out_of_gas_1318": ; preds = %"$have_gas_1305" - call void @_out_of_gas() - br label %"$have_gas_1319" - -"$have_gas_1319": ; preds = %"$out_of_gas_1318", %"$have_gas_1305" - %"$consume_1320" = sub i64 %"$gasrem_1316", %"$gasmul_1315" - store i64 %"$consume_1320", i64* @_gasrem, align 8 - %"$t4_1321" = load %Int64, %Int64* %t4, align 8 - %"$p2_1322" = load %Uint32, %Uint32* %p2, align 4 - %"$pow_call_1323" = call %Int64 @_pow_Int64(%Int64 %"$t4_1321", %Uint32 %"$p2_1322"), !dbg !84 - store %Int64 %"$pow_call_1323", %Int64* %"$p_51", align 8, !dbg !84 - %"$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" - -"$out_of_gas_1326": ; preds = %"$have_gas_1319" - call void @_out_of_gas() - br label %"$have_gas_1327" - -"$have_gas_1327": ; preds = %"$out_of_gas_1326", %"$have_gas_1319" - %"$consume_1328" = sub i64 %"$gasrem_1324", 1 - store i64 %"$consume_1328", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %Int64* %"$p_51", metadata !236, metadata !DIExpression()), !dbg !237 + %"$p2_1309" = load %Uint32, %Uint32* %p2, align 4 + %"$valueof_1310" = extractvalue %Uint32 %"$p2_1309", 0 + %"$valueof_1311" = zext i32 %"$valueof_1310" to i64 + %"$gaslogof_1312" = uitofp i64 %"$valueof_1311" to double + %"$gaslogof_1313" = fadd double %"$gaslogof_1312", 1.000000e+00 + %"$gaslogof_1314" = call double @llvm.log.f64(double %"$gaslogof_1313") + %"$gaslogof_1315" = fptoui double %"$gaslogof_1314" to i64 + %"$gaslogof_1316" = add i64 %"$gaslogof_1315", 1 + %"$gasmul_1317" = mul i64 20, %"$gaslogof_1316" + %"$gasrem_1318" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1319" = icmp ugt i64 %"$gasmul_1317", %"$gasrem_1318" + br i1 %"$gascmp_1319", label %"$out_of_gas_1320", label %"$have_gas_1321" + +"$out_of_gas_1320": ; preds = %"$have_gas_1307" + call void @_out_of_gas() + br label %"$have_gas_1321" + +"$have_gas_1321": ; preds = %"$out_of_gas_1320", %"$have_gas_1307" + %"$consume_1322" = sub i64 %"$gasrem_1318", %"$gasmul_1317" + store i64 %"$consume_1322", i64* @_gasrem, align 8 + %"$t4_1323" = load %Int64, %Int64* %t4, align 8 + %"$p2_1324" = load %Uint32, %Uint32* %p2, align 4 + %"$pow_call_1325" = call %Int64 @_pow_Int64(%Int64 %"$t4_1323", %Uint32 %"$p2_1324"), !dbg !238 + store %Int64 %"$pow_call_1325", %Int64* %"$p_51", align 8, !dbg !238 + %"$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 = %"$have_gas_1321" + call void @_out_of_gas() + br label %"$have_gas_1329" + +"$have_gas_1329": ; preds = %"$out_of_gas_1328", %"$have_gas_1321" + %"$consume_1330" = sub i64 %"$gasrem_1326", 1 + store i64 %"$consume_1330", i64* @_gasrem, align 8 %"$res_54" = alloca %TName_Bool*, 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" + call void @llvm.dbg.declare(metadata %TName_Bool** %"$res_54", metadata !239, metadata !DIExpression()), !dbg !240 + %"$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_1331": ; preds = %"$have_gas_1327" +"$out_of_gas_1333": ; preds = %"$have_gas_1329" call void @_out_of_gas() - br label %"$have_gas_1332" + br label %"$have_gas_1334" -"$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_1334": ; preds = %"$out_of_gas_1333", %"$have_gas_1329" + %"$consume_1335" = sub i64 %"$gasrem_1331", 1 + store i64 %"$consume_1335", i64* @_gasrem, align 8 %"$ans_52" = alloca %Int64, align 8 - %"$gasrem_1334" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1335" = icmp ugt i64 1, %"$gasrem_1334" - br i1 %"$gascmp_1335", label %"$out_of_gas_1336", label %"$have_gas_1337" + call void @llvm.dbg.declare(metadata %Int64* %"$ans_52", metadata !241, metadata !DIExpression()), !dbg !242 + %"$gasrem_1336" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1337" = icmp ugt i64 1, %"$gasrem_1336" + br i1 %"$gascmp_1337", label %"$out_of_gas_1338", label %"$have_gas_1339" -"$out_of_gas_1336": ; preds = %"$have_gas_1332" +"$out_of_gas_1338": ; preds = %"$have_gas_1334" call void @_out_of_gas() - br label %"$have_gas_1337" + br label %"$have_gas_1339" -"$have_gas_1337": ; preds = %"$out_of_gas_1336", %"$have_gas_1332" - %"$consume_1338" = sub i64 %"$gasrem_1334", 1 - store i64 %"$consume_1338", i64* @_gasrem, align 8 - store %Int64 { i64 -101 }, %Int64* %"$ans_52", align 8, !dbg !85 - %"$gasrem_1339" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1340" = icmp ugt i64 1, %"$gasrem_1339" - br i1 %"$gascmp_1340", label %"$out_of_gas_1341", label %"$have_gas_1342" +"$have_gas_1339": ; preds = %"$out_of_gas_1338", %"$have_gas_1334" + %"$consume_1340" = sub i64 %"$gasrem_1336", 1 + store i64 %"$consume_1340", i64* @_gasrem, align 8 + store %Int64 { i64 -101 }, %Int64* %"$ans_52", align 8, !dbg !243 + %"$gasrem_1341" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1342" = icmp ugt i64 1, %"$gasrem_1341" + br i1 %"$gascmp_1342", label %"$out_of_gas_1343", label %"$have_gas_1344" -"$out_of_gas_1341": ; preds = %"$have_gas_1337" +"$out_of_gas_1343": ; preds = %"$have_gas_1339" call void @_out_of_gas() - br label %"$have_gas_1342" + br label %"$have_gas_1344" -"$have_gas_1342": ; preds = %"$out_of_gas_1341", %"$have_gas_1337" - %"$consume_1343" = sub i64 %"$gasrem_1339", 1 - store i64 %"$consume_1343", i64* @_gasrem, align 8 +"$have_gas_1344": ; preds = %"$out_of_gas_1343", %"$have_gas_1339" + %"$consume_1345" = sub i64 %"$gasrem_1341", 1 + store i64 %"$consume_1345", i64* @_gasrem, align 8 %"$res__53" = alloca %TName_Bool*, align 8 - %"$gasrem_1344" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1345" = icmp ugt i64 4, %"$gasrem_1344" - br i1 %"$gascmp_1345", label %"$out_of_gas_1346", label %"$have_gas_1347" - -"$out_of_gas_1346": ; preds = %"$have_gas_1342" - call void @_out_of_gas() - br label %"$have_gas_1347" - -"$have_gas_1347": ; preds = %"$out_of_gas_1346", %"$have_gas_1342" - %"$consume_1348" = sub i64 %"$gasrem_1344", 4 - store i64 %"$consume_1348", i64* @_gasrem, align 8 - %"$execptr_load_1349" = load i8*, i8** @_execptr, align 8 - %"$$p_51_1350" = load %Int64, %Int64* %"$p_51", align 8 - %"$$ans_52_1351" = load %Int64, %Int64* %"$ans_52", align 8 - %"$eq_call_1352" = call %TName_Bool* @_eq_Int64(i8* %"$execptr_load_1349", %Int64 %"$$p_51_1350", %Int64 %"$$ans_52_1351"), !dbg !86 - store %TName_Bool* %"$eq_call_1352", %TName_Bool** %"$res__53", align 8, !dbg !86 - %"$gasrem_1354" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1355" = icmp ugt i64 1, %"$gasrem_1354" - br i1 %"$gascmp_1355", label %"$out_of_gas_1356", label %"$have_gas_1357" - -"$out_of_gas_1356": ; preds = %"$have_gas_1347" - call void @_out_of_gas() - br label %"$have_gas_1357" - -"$have_gas_1357": ; preds = %"$out_of_gas_1356", %"$have_gas_1347" - %"$consume_1358" = sub i64 %"$gasrem_1354", 1 - store i64 %"$consume_1358", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$res__53", metadata !244, metadata !DIExpression()), !dbg !245 + %"$gasrem_1346" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1347" = icmp ugt i64 4, %"$gasrem_1346" + br i1 %"$gascmp_1347", label %"$out_of_gas_1348", label %"$have_gas_1349" + +"$out_of_gas_1348": ; preds = %"$have_gas_1344" + call void @_out_of_gas() + br label %"$have_gas_1349" + +"$have_gas_1349": ; preds = %"$out_of_gas_1348", %"$have_gas_1344" + %"$consume_1350" = sub i64 %"$gasrem_1346", 4 + store i64 %"$consume_1350", i64* @_gasrem, align 8 + %"$execptr_load_1351" = load i8*, i8** @_execptr, align 8 + %"$$p_51_1352" = load %Int64, %Int64* %"$p_51", align 8 + %"$$ans_52_1353" = load %Int64, %Int64* %"$ans_52", align 8 + %"$eq_call_1354" = call %TName_Bool* @_eq_Int64(i8* %"$execptr_load_1351", %Int64 %"$$p_51_1352", %Int64 %"$$ans_52_1353"), !dbg !246 + store %TName_Bool* %"$eq_call_1354", %TName_Bool** %"$res__53", align 8, !dbg !246 + %"$gasrem_1356" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1357" = icmp ugt i64 1, %"$gasrem_1356" + br i1 %"$gascmp_1357", label %"$out_of_gas_1358", label %"$have_gas_1359" + +"$out_of_gas_1358": ; preds = %"$have_gas_1349" + call void @_out_of_gas() + br label %"$have_gas_1359" + +"$have_gas_1359": ; preds = %"$out_of_gas_1358", %"$have_gas_1349" + %"$consume_1360" = sub i64 %"$gasrem_1356", 1 + store i64 %"$consume_1360", i64* @_gasrem, align 8 %"$BoolUtils.andb_163" = alloca { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, align 8 - %"$BoolUtils.andb_1359" = 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_1360" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_1359", 0 - %"$BoolUtils.andb_envptr_1361" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_1359", 1 - %"$$res_50_1362" = load %TName_Bool*, %TName_Bool** %"$res_50", align 8 - %"$BoolUtils.andb_call_1363" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_1360"(i8* %"$BoolUtils.andb_envptr_1361", %TName_Bool* %"$$res_50_1362"), !dbg !87 - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_1363", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_163", align 8, !dbg !87 + %"$BoolUtils.andb_1361" = 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_1362" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_1361", 0 + %"$BoolUtils.andb_envptr_1363" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_1361", 1 + %"$$res_50_1364" = load %TName_Bool*, %TName_Bool** %"$res_50", align 8 + %"$BoolUtils.andb_call_1365" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_1362"(i8* %"$BoolUtils.andb_envptr_1363", %TName_Bool* %"$$res_50_1364"), !dbg !247 + store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_1365", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_163", align 8, !dbg !247 %"$BoolUtils.andb_164" = alloca %TName_Bool*, align 8 - %"$$BoolUtils.andb_163_1364" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_163", align 8 - %"$$BoolUtils.andb_163_fptr_1365" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_163_1364", 0 - %"$$BoolUtils.andb_163_envptr_1366" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_163_1364", 1 - %"$$res__53_1367" = load %TName_Bool*, %TName_Bool** %"$res__53", align 8 - %"$$BoolUtils.andb_163_call_1368" = call %TName_Bool* %"$$BoolUtils.andb_163_fptr_1365"(i8* %"$$BoolUtils.andb_163_envptr_1366", %TName_Bool* %"$$res__53_1367"), !dbg !87 - store %TName_Bool* %"$$BoolUtils.andb_163_call_1368", %TName_Bool** %"$BoolUtils.andb_164", align 8, !dbg !87 - %"$$BoolUtils.andb_164_1369" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_164", align 8 - store %TName_Bool* %"$$BoolUtils.andb_164_1369", %TName_Bool** %"$res_54", align 8, !dbg !87 - %"$gasrem_1370" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1371" = icmp ugt i64 1, %"$gasrem_1370" - br i1 %"$gascmp_1371", label %"$out_of_gas_1372", label %"$have_gas_1373" - -"$out_of_gas_1372": ; preds = %"$have_gas_1357" - call void @_out_of_gas() - br label %"$have_gas_1373" - -"$have_gas_1373": ; preds = %"$out_of_gas_1372", %"$have_gas_1357" - %"$consume_1374" = sub i64 %"$gasrem_1370", 1 - store i64 %"$consume_1374", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$BoolUtils.andb_164", metadata !248, metadata !DIExpression()), !dbg !247 + %"$$BoolUtils.andb_163_1366" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_163", align 8 + %"$$BoolUtils.andb_163_fptr_1367" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_163_1366", 0 + %"$$BoolUtils.andb_163_envptr_1368" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_163_1366", 1 + %"$$res__53_1369" = load %TName_Bool*, %TName_Bool** %"$res__53", align 8 + %"$$BoolUtils.andb_163_call_1370" = call %TName_Bool* %"$$BoolUtils.andb_163_fptr_1367"(i8* %"$$BoolUtils.andb_163_envptr_1368", %TName_Bool* %"$$res__53_1369"), !dbg !247 + store %TName_Bool* %"$$BoolUtils.andb_163_call_1370", %TName_Bool** %"$BoolUtils.andb_164", align 8, !dbg !247 + %"$$BoolUtils.andb_164_1371" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_164", align 8 + store %TName_Bool* %"$$BoolUtils.andb_164_1371", %TName_Bool** %"$res_54", align 8, !dbg !247 + %"$gasrem_1372" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1373" = icmp ugt i64 1, %"$gasrem_1372" + br i1 %"$gascmp_1373", label %"$out_of_gas_1374", label %"$have_gas_1375" + +"$out_of_gas_1374": ; preds = %"$have_gas_1359" + call void @_out_of_gas() + br label %"$have_gas_1375" + +"$have_gas_1375": ; preds = %"$out_of_gas_1374", %"$have_gas_1359" + %"$consume_1376" = sub i64 %"$gasrem_1372", 1 + store i64 %"$consume_1376", i64* @_gasrem, align 8 %"$p_55" = alloca %Int64, align 8 - %"$p3_1375" = load %Uint32, %Uint32* %p3, align 4 - %"$valueof_1376" = extractvalue %Uint32 %"$p3_1375", 0 - %"$valueof_1377" = zext i32 %"$valueof_1376" to i64 - %"$gaslogof_1378" = uitofp i64 %"$valueof_1377" to double - %"$gaslogof_1379" = fadd double %"$gaslogof_1378", 1.000000e+00 - %"$gaslogof_1380" = call double @llvm.log.f64(double %"$gaslogof_1379") - %"$gaslogof_1381" = fptoui double %"$gaslogof_1380" to i64 - %"$gaslogof_1382" = add i64 %"$gaslogof_1381", 1 - %"$gasmul_1383" = mul i64 20, %"$gaslogof_1382" - %"$gasrem_1384" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1385" = icmp ugt i64 %"$gasmul_1383", %"$gasrem_1384" - br i1 %"$gascmp_1385", label %"$out_of_gas_1386", label %"$have_gas_1387" - -"$out_of_gas_1386": ; preds = %"$have_gas_1373" - call void @_out_of_gas() - br label %"$have_gas_1387" - -"$have_gas_1387": ; preds = %"$out_of_gas_1386", %"$have_gas_1373" - %"$consume_1388" = sub i64 %"$gasrem_1384", %"$gasmul_1383" - store i64 %"$consume_1388", i64* @_gasrem, align 8 - %"$t4_1389" = load %Int64, %Int64* %t4, align 8 - %"$p3_1390" = load %Uint32, %Uint32* %p3, align 4 - %"$pow_call_1391" = call %Int64 @_pow_Int64(%Int64 %"$t4_1389", %Uint32 %"$p3_1390"), !dbg !88 - store %Int64 %"$pow_call_1391", %Int64* %"$p_55", align 8, !dbg !88 - %"$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_1394": ; preds = %"$have_gas_1387" - call void @_out_of_gas() - br label %"$have_gas_1395" - -"$have_gas_1395": ; preds = %"$out_of_gas_1394", %"$have_gas_1387" - %"$consume_1396" = sub i64 %"$gasrem_1392", 1 - store i64 %"$consume_1396", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %Int64* %"$p_55", metadata !249, metadata !DIExpression()), !dbg !250 + %"$p3_1377" = load %Uint32, %Uint32* %p3, align 4 + %"$valueof_1378" = extractvalue %Uint32 %"$p3_1377", 0 + %"$valueof_1379" = zext i32 %"$valueof_1378" to i64 + %"$gaslogof_1380" = uitofp i64 %"$valueof_1379" to double + %"$gaslogof_1381" = fadd double %"$gaslogof_1380", 1.000000e+00 + %"$gaslogof_1382" = call double @llvm.log.f64(double %"$gaslogof_1381") + %"$gaslogof_1383" = fptoui double %"$gaslogof_1382" to i64 + %"$gaslogof_1384" = add i64 %"$gaslogof_1383", 1 + %"$gasmul_1385" = mul i64 20, %"$gaslogof_1384" + %"$gasrem_1386" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1387" = icmp ugt i64 %"$gasmul_1385", %"$gasrem_1386" + br i1 %"$gascmp_1387", label %"$out_of_gas_1388", label %"$have_gas_1389" + +"$out_of_gas_1388": ; preds = %"$have_gas_1375" + call void @_out_of_gas() + br label %"$have_gas_1389" + +"$have_gas_1389": ; preds = %"$out_of_gas_1388", %"$have_gas_1375" + %"$consume_1390" = sub i64 %"$gasrem_1386", %"$gasmul_1385" + store i64 %"$consume_1390", i64* @_gasrem, align 8 + %"$t4_1391" = load %Int64, %Int64* %t4, align 8 + %"$p3_1392" = load %Uint32, %Uint32* %p3, align 4 + %"$pow_call_1393" = call %Int64 @_pow_Int64(%Int64 %"$t4_1391", %Uint32 %"$p3_1392"), !dbg !251 + store %Int64 %"$pow_call_1393", %Int64* %"$p_55", align 8, !dbg !251 + %"$gasrem_1394" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1395" = icmp ugt i64 1, %"$gasrem_1394" + br i1 %"$gascmp_1395", label %"$out_of_gas_1396", label %"$have_gas_1397" + +"$out_of_gas_1396": ; preds = %"$have_gas_1389" + call void @_out_of_gas() + br label %"$have_gas_1397" + +"$have_gas_1397": ; preds = %"$out_of_gas_1396", %"$have_gas_1389" + %"$consume_1398" = sub i64 %"$gasrem_1394", 1 + store i64 %"$consume_1398", i64* @_gasrem, align 8 %"$res_58" = alloca %TName_Bool*, align 8 - %"$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" + call void @llvm.dbg.declare(metadata %TName_Bool** %"$res_58", metadata !252, metadata !DIExpression()), !dbg !253 + %"$gasrem_1399" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1400" = icmp ugt i64 1, %"$gasrem_1399" + br i1 %"$gascmp_1400", label %"$out_of_gas_1401", label %"$have_gas_1402" -"$out_of_gas_1399": ; preds = %"$have_gas_1395" +"$out_of_gas_1401": ; preds = %"$have_gas_1397" call void @_out_of_gas() - br label %"$have_gas_1400" + br label %"$have_gas_1402" -"$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 +"$have_gas_1402": ; preds = %"$out_of_gas_1401", %"$have_gas_1397" + %"$consume_1403" = sub i64 %"$gasrem_1399", 1 + store i64 %"$consume_1403", i64* @_gasrem, align 8 %"$ans_56" = alloca %Int64, align 8 - %"$gasrem_1402" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1403" = icmp ugt i64 1, %"$gasrem_1402" - br i1 %"$gascmp_1403", label %"$out_of_gas_1404", label %"$have_gas_1405" + call void @llvm.dbg.declare(metadata %Int64* %"$ans_56", metadata !254, metadata !DIExpression()), !dbg !255 + %"$gasrem_1404" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1405" = icmp ugt i64 1, %"$gasrem_1404" + br i1 %"$gascmp_1405", label %"$out_of_gas_1406", label %"$have_gas_1407" -"$out_of_gas_1404": ; preds = %"$have_gas_1400" +"$out_of_gas_1406": ; preds = %"$have_gas_1402" call void @_out_of_gas() - br label %"$have_gas_1405" + br label %"$have_gas_1407" -"$have_gas_1405": ; preds = %"$out_of_gas_1404", %"$have_gas_1400" - %"$consume_1406" = sub i64 %"$gasrem_1402", 1 - store i64 %"$consume_1406", i64* @_gasrem, align 8 - store %Int64 { i64 104060401 }, %Int64* %"$ans_56", align 8, !dbg !89 - %"$gasrem_1407" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1408" = icmp ugt i64 1, %"$gasrem_1407" - br i1 %"$gascmp_1408", label %"$out_of_gas_1409", label %"$have_gas_1410" +"$have_gas_1407": ; preds = %"$out_of_gas_1406", %"$have_gas_1402" + %"$consume_1408" = sub i64 %"$gasrem_1404", 1 + store i64 %"$consume_1408", i64* @_gasrem, align 8 + store %Int64 { i64 104060401 }, %Int64* %"$ans_56", align 8, !dbg !256 + %"$gasrem_1409" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1410" = icmp ugt i64 1, %"$gasrem_1409" + br i1 %"$gascmp_1410", label %"$out_of_gas_1411", label %"$have_gas_1412" -"$out_of_gas_1409": ; preds = %"$have_gas_1405" +"$out_of_gas_1411": ; preds = %"$have_gas_1407" call void @_out_of_gas() - br label %"$have_gas_1410" + br label %"$have_gas_1412" -"$have_gas_1410": ; preds = %"$out_of_gas_1409", %"$have_gas_1405" - %"$consume_1411" = sub i64 %"$gasrem_1407", 1 - store i64 %"$consume_1411", i64* @_gasrem, align 8 +"$have_gas_1412": ; preds = %"$out_of_gas_1411", %"$have_gas_1407" + %"$consume_1413" = sub i64 %"$gasrem_1409", 1 + store i64 %"$consume_1413", i64* @_gasrem, align 8 %"$res__57" = alloca %TName_Bool*, align 8 - %"$gasrem_1412" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1413" = icmp ugt i64 4, %"$gasrem_1412" - br i1 %"$gascmp_1413", label %"$out_of_gas_1414", label %"$have_gas_1415" - -"$out_of_gas_1414": ; preds = %"$have_gas_1410" - call void @_out_of_gas() - br label %"$have_gas_1415" - -"$have_gas_1415": ; preds = %"$out_of_gas_1414", %"$have_gas_1410" - %"$consume_1416" = sub i64 %"$gasrem_1412", 4 - store i64 %"$consume_1416", i64* @_gasrem, align 8 - %"$execptr_load_1417" = load i8*, i8** @_execptr, align 8 - %"$$p_55_1418" = load %Int64, %Int64* %"$p_55", align 8 - %"$$ans_56_1419" = load %Int64, %Int64* %"$ans_56", align 8 - %"$eq_call_1420" = call %TName_Bool* @_eq_Int64(i8* %"$execptr_load_1417", %Int64 %"$$p_55_1418", %Int64 %"$$ans_56_1419"), !dbg !90 - store %TName_Bool* %"$eq_call_1420", %TName_Bool** %"$res__57", align 8, !dbg !90 - %"$gasrem_1422" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1423" = icmp ugt i64 1, %"$gasrem_1422" - br i1 %"$gascmp_1423", label %"$out_of_gas_1424", label %"$have_gas_1425" - -"$out_of_gas_1424": ; preds = %"$have_gas_1415" - call void @_out_of_gas() - br label %"$have_gas_1425" - -"$have_gas_1425": ; preds = %"$out_of_gas_1424", %"$have_gas_1415" - %"$consume_1426" = sub i64 %"$gasrem_1422", 1 - store i64 %"$consume_1426", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$res__57", metadata !257, metadata !DIExpression()), !dbg !258 + %"$gasrem_1414" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1415" = icmp ugt i64 4, %"$gasrem_1414" + br i1 %"$gascmp_1415", label %"$out_of_gas_1416", label %"$have_gas_1417" + +"$out_of_gas_1416": ; preds = %"$have_gas_1412" + call void @_out_of_gas() + br label %"$have_gas_1417" + +"$have_gas_1417": ; preds = %"$out_of_gas_1416", %"$have_gas_1412" + %"$consume_1418" = sub i64 %"$gasrem_1414", 4 + store i64 %"$consume_1418", i64* @_gasrem, align 8 + %"$execptr_load_1419" = load i8*, i8** @_execptr, align 8 + %"$$p_55_1420" = load %Int64, %Int64* %"$p_55", align 8 + %"$$ans_56_1421" = load %Int64, %Int64* %"$ans_56", align 8 + %"$eq_call_1422" = call %TName_Bool* @_eq_Int64(i8* %"$execptr_load_1419", %Int64 %"$$p_55_1420", %Int64 %"$$ans_56_1421"), !dbg !259 + store %TName_Bool* %"$eq_call_1422", %TName_Bool** %"$res__57", align 8, !dbg !259 + %"$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 %"$BoolUtils.andb_165" = alloca { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, align 8 - %"$BoolUtils.andb_1427" = 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_1428" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_1427", 0 - %"$BoolUtils.andb_envptr_1429" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_1427", 1 - %"$$res_54_1430" = load %TName_Bool*, %TName_Bool** %"$res_54", align 8 - %"$BoolUtils.andb_call_1431" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_1428"(i8* %"$BoolUtils.andb_envptr_1429", %TName_Bool* %"$$res_54_1430"), !dbg !91 - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_1431", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_165", align 8, !dbg !91 + %"$BoolUtils.andb_1429" = 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_1430" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_1429", 0 + %"$BoolUtils.andb_envptr_1431" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_1429", 1 + %"$$res_54_1432" = load %TName_Bool*, %TName_Bool** %"$res_54", align 8 + %"$BoolUtils.andb_call_1433" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_1430"(i8* %"$BoolUtils.andb_envptr_1431", %TName_Bool* %"$$res_54_1432"), !dbg !260 + store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_1433", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_165", align 8, !dbg !260 %"$BoolUtils.andb_166" = alloca %TName_Bool*, align 8 - %"$$BoolUtils.andb_165_1432" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_165", align 8 - %"$$BoolUtils.andb_165_fptr_1433" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_165_1432", 0 - %"$$BoolUtils.andb_165_envptr_1434" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_165_1432", 1 - %"$$res__57_1435" = load %TName_Bool*, %TName_Bool** %"$res__57", align 8 - %"$$BoolUtils.andb_165_call_1436" = call %TName_Bool* %"$$BoolUtils.andb_165_fptr_1433"(i8* %"$$BoolUtils.andb_165_envptr_1434", %TName_Bool* %"$$res__57_1435"), !dbg !91 - store %TName_Bool* %"$$BoolUtils.andb_165_call_1436", %TName_Bool** %"$BoolUtils.andb_166", align 8, !dbg !91 - %"$$BoolUtils.andb_166_1437" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_166", align 8 - store %TName_Bool* %"$$BoolUtils.andb_166_1437", %TName_Bool** %"$res_58", align 8, !dbg !91 - %"$gasrem_1438" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1439" = icmp ugt i64 1, %"$gasrem_1438" - br i1 %"$gascmp_1439", label %"$out_of_gas_1440", label %"$have_gas_1441" - -"$out_of_gas_1440": ; preds = %"$have_gas_1425" - call void @_out_of_gas() - br label %"$have_gas_1441" - -"$have_gas_1441": ; preds = %"$out_of_gas_1440", %"$have_gas_1425" - %"$consume_1442" = sub i64 %"$gasrem_1438", 1 - store i64 %"$consume_1442", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$BoolUtils.andb_166", metadata !261, metadata !DIExpression()), !dbg !260 + %"$$BoolUtils.andb_165_1434" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_165", align 8 + %"$$BoolUtils.andb_165_fptr_1435" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_165_1434", 0 + %"$$BoolUtils.andb_165_envptr_1436" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_165_1434", 1 + %"$$res__57_1437" = load %TName_Bool*, %TName_Bool** %"$res__57", align 8 + %"$$BoolUtils.andb_165_call_1438" = call %TName_Bool* %"$$BoolUtils.andb_165_fptr_1435"(i8* %"$$BoolUtils.andb_165_envptr_1436", %TName_Bool* %"$$res__57_1437"), !dbg !260 + store %TName_Bool* %"$$BoolUtils.andb_165_call_1438", %TName_Bool** %"$BoolUtils.andb_166", align 8, !dbg !260 + %"$$BoolUtils.andb_166_1439" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_166", align 8 + store %TName_Bool* %"$$BoolUtils.andb_166_1439", %TName_Bool** %"$res_58", align 8, !dbg !260 + %"$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_1427" + call void @_out_of_gas() + br label %"$have_gas_1443" + +"$have_gas_1443": ; preds = %"$out_of_gas_1442", %"$have_gas_1427" + %"$consume_1444" = sub i64 %"$gasrem_1440", 1 + store i64 %"$consume_1444", i64* @_gasrem, align 8 %"$p_59" = alloca %Uint128, align 8 - %"$p1_1443" = load %Uint32, %Uint32* %p1, align 4 - %"$valueof_1444" = extractvalue %Uint32 %"$p1_1443", 0 - %"$valueof_1445" = zext i32 %"$valueof_1444" to i64 - %"$gaslogof_1446" = uitofp i64 %"$valueof_1445" to double - %"$gaslogof_1447" = fadd double %"$gaslogof_1446", 1.000000e+00 - %"$gaslogof_1448" = call double @llvm.log.f64(double %"$gaslogof_1447") - %"$gaslogof_1449" = fptoui double %"$gaslogof_1448" to i64 - %"$gaslogof_1450" = add i64 %"$gaslogof_1449", 1 - %"$gasmul_1451" = mul i64 20, %"$gaslogof_1450" - %"$gasmul_1452" = mul i64 %"$gasmul_1451", 2 - %"$gasrem_1453" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1454" = icmp ugt i64 %"$gasmul_1452", %"$gasrem_1453" - br i1 %"$gascmp_1454", label %"$out_of_gas_1455", label %"$have_gas_1456" - -"$out_of_gas_1455": ; preds = %"$have_gas_1441" - call void @_out_of_gas() - br label %"$have_gas_1456" - -"$have_gas_1456": ; preds = %"$out_of_gas_1455", %"$have_gas_1441" - %"$consume_1457" = sub i64 %"$gasrem_1453", %"$gasmul_1452" - store i64 %"$consume_1457", i64* @_gasrem, align 8 - %"$t5_1458" = load %Uint128, %Uint128* %t5, align 8 - %"$p1_1459" = load %Uint32, %Uint32* %p1, align 4 - %"$pow_call_1460" = call %Uint128 @_pow_Uint128(%Uint128 %"$t5_1458", %Uint32 %"$p1_1459"), !dbg !92 - store %Uint128 %"$pow_call_1460", %Uint128* %"$p_59", align 8, !dbg !92 - %"$gasrem_1461" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1462" = icmp ugt i64 1, %"$gasrem_1461" - br i1 %"$gascmp_1462", label %"$out_of_gas_1463", label %"$have_gas_1464" - -"$out_of_gas_1463": ; preds = %"$have_gas_1456" - call void @_out_of_gas() - br label %"$have_gas_1464" - -"$have_gas_1464": ; preds = %"$out_of_gas_1463", %"$have_gas_1456" - %"$consume_1465" = sub i64 %"$gasrem_1461", 1 - store i64 %"$consume_1465", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %Uint128* %"$p_59", metadata !262, metadata !DIExpression()), !dbg !263 + %"$p1_1445" = load %Uint32, %Uint32* %p1, align 4 + %"$valueof_1446" = extractvalue %Uint32 %"$p1_1445", 0 + %"$valueof_1447" = zext i32 %"$valueof_1446" to i64 + %"$gaslogof_1448" = uitofp i64 %"$valueof_1447" to double + %"$gaslogof_1449" = fadd double %"$gaslogof_1448", 1.000000e+00 + %"$gaslogof_1450" = call double @llvm.log.f64(double %"$gaslogof_1449") + %"$gaslogof_1451" = fptoui double %"$gaslogof_1450" to i64 + %"$gaslogof_1452" = add i64 %"$gaslogof_1451", 1 + %"$gasmul_1453" = mul i64 20, %"$gaslogof_1452" + %"$gasmul_1454" = mul i64 %"$gasmul_1453", 2 + %"$gasrem_1455" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1456" = icmp ugt i64 %"$gasmul_1454", %"$gasrem_1455" + br i1 %"$gascmp_1456", label %"$out_of_gas_1457", label %"$have_gas_1458" + +"$out_of_gas_1457": ; preds = %"$have_gas_1443" + call void @_out_of_gas() + br label %"$have_gas_1458" + +"$have_gas_1458": ; preds = %"$out_of_gas_1457", %"$have_gas_1443" + %"$consume_1459" = sub i64 %"$gasrem_1455", %"$gasmul_1454" + store i64 %"$consume_1459", i64* @_gasrem, align 8 + %"$t5_1460" = load %Uint128, %Uint128* %t5, align 8 + %"$p1_1461" = load %Uint32, %Uint32* %p1, align 4 + %"$pow_call_1462" = call %Uint128 @_pow_Uint128(%Uint128 %"$t5_1460", %Uint32 %"$p1_1461"), !dbg !264 + store %Uint128 %"$pow_call_1462", %Uint128* %"$p_59", align 8, !dbg !264 + %"$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 = %"$have_gas_1458" + call void @_out_of_gas() + br label %"$have_gas_1466" + +"$have_gas_1466": ; preds = %"$out_of_gas_1465", %"$have_gas_1458" + %"$consume_1467" = sub i64 %"$gasrem_1463", 1 + store i64 %"$consume_1467", i64* @_gasrem, align 8 %"$res_62" = alloca %TName_Bool*, align 8 - %"$gasrem_1466" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1467" = icmp ugt i64 1, %"$gasrem_1466" - br i1 %"$gascmp_1467", label %"$out_of_gas_1468", label %"$have_gas_1469" + call void @llvm.dbg.declare(metadata %TName_Bool** %"$res_62", metadata !265, metadata !DIExpression()), !dbg !266 + %"$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_1468": ; preds = %"$have_gas_1464" +"$out_of_gas_1470": ; preds = %"$have_gas_1466" call void @_out_of_gas() - br label %"$have_gas_1469" + br label %"$have_gas_1471" -"$have_gas_1469": ; preds = %"$out_of_gas_1468", %"$have_gas_1464" - %"$consume_1470" = sub i64 %"$gasrem_1466", 1 - store i64 %"$consume_1470", i64* @_gasrem, align 8 +"$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 %"$ans_60" = alloca %Uint128, align 8 - %"$gasrem_1471" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1472" = icmp ugt i64 1, %"$gasrem_1471" - br i1 %"$gascmp_1472", label %"$out_of_gas_1473", label %"$have_gas_1474" + call void @llvm.dbg.declare(metadata %Uint128* %"$ans_60", metadata !267, metadata !DIExpression()), !dbg !268 + %"$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_1473": ; preds = %"$have_gas_1469" +"$out_of_gas_1475": ; preds = %"$have_gas_1471" call void @_out_of_gas() - br label %"$have_gas_1474" + br label %"$have_gas_1476" -"$have_gas_1474": ; preds = %"$out_of_gas_1473", %"$have_gas_1469" - %"$consume_1475" = sub i64 %"$gasrem_1471", 1 - store i64 %"$consume_1475", i64* @_gasrem, align 8 - store %Uint128 { i128 1 }, %Uint128* %"$ans_60", align 8, !dbg !93 - %"$gasrem_1476" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1477" = icmp ugt i64 1, %"$gasrem_1476" - br i1 %"$gascmp_1477", label %"$out_of_gas_1478", label %"$have_gas_1479" +"$have_gas_1476": ; preds = %"$out_of_gas_1475", %"$have_gas_1471" + %"$consume_1477" = sub i64 %"$gasrem_1473", 1 + store i64 %"$consume_1477", i64* @_gasrem, align 8 + store %Uint128 { i128 1 }, %Uint128* %"$ans_60", align 8, !dbg !269 + %"$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_1478": ; preds = %"$have_gas_1474" +"$out_of_gas_1480": ; preds = %"$have_gas_1476" call void @_out_of_gas() - br label %"$have_gas_1479" + br label %"$have_gas_1481" -"$have_gas_1479": ; preds = %"$out_of_gas_1478", %"$have_gas_1474" - %"$consume_1480" = sub i64 %"$gasrem_1476", 1 - store i64 %"$consume_1480", i64* @_gasrem, align 8 +"$have_gas_1481": ; preds = %"$out_of_gas_1480", %"$have_gas_1476" + %"$consume_1482" = sub i64 %"$gasrem_1478", 1 + store i64 %"$consume_1482", i64* @_gasrem, align 8 %"$res__61" = alloca %TName_Bool*, align 8 - %"$gasrem_1482" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1483" = icmp ugt i64 8, %"$gasrem_1482" - br i1 %"$gascmp_1483", label %"$out_of_gas_1484", label %"$have_gas_1485" - -"$out_of_gas_1484": ; preds = %"$have_gas_1479" - call void @_out_of_gas() - br label %"$have_gas_1485" - -"$have_gas_1485": ; preds = %"$out_of_gas_1484", %"$have_gas_1479" - %"$consume_1486" = sub i64 %"$gasrem_1482", 8 - store i64 %"$consume_1486", i64* @_gasrem, align 8 - %"$execptr_load_1487" = load i8*, i8** @_execptr, align 8 - %"$$p_59_1488" = load %Uint128, %Uint128* %"$p_59", align 8 - %"$$ans_60_1489" = load %Uint128, %Uint128* %"$ans_60", align 8 - %"$eq_call_1490" = call %TName_Bool* @_eq_Uint128(i8* %"$execptr_load_1487", %Uint128 %"$$p_59_1488", %Uint128 %"$$ans_60_1489"), !dbg !94 - store %TName_Bool* %"$eq_call_1490", %TName_Bool** %"$res__61", align 8, !dbg !94 - %"$gasrem_1492" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1493" = icmp ugt i64 1, %"$gasrem_1492" - br i1 %"$gascmp_1493", label %"$out_of_gas_1494", label %"$have_gas_1495" - -"$out_of_gas_1494": ; preds = %"$have_gas_1485" - call void @_out_of_gas() - br label %"$have_gas_1495" - -"$have_gas_1495": ; preds = %"$out_of_gas_1494", %"$have_gas_1485" - %"$consume_1496" = sub i64 %"$gasrem_1492", 1 - store i64 %"$consume_1496", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$res__61", metadata !270, metadata !DIExpression()), !dbg !271 + %"$gasrem_1484" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1485" = icmp ugt i64 8, %"$gasrem_1484" + br i1 %"$gascmp_1485", label %"$out_of_gas_1486", label %"$have_gas_1487" + +"$out_of_gas_1486": ; preds = %"$have_gas_1481" + call void @_out_of_gas() + br label %"$have_gas_1487" + +"$have_gas_1487": ; preds = %"$out_of_gas_1486", %"$have_gas_1481" + %"$consume_1488" = sub i64 %"$gasrem_1484", 8 + store i64 %"$consume_1488", i64* @_gasrem, align 8 + %"$execptr_load_1489" = load i8*, i8** @_execptr, align 8 + %"$$p_59_1490" = load %Uint128, %Uint128* %"$p_59", align 8 + %"$$ans_60_1491" = load %Uint128, %Uint128* %"$ans_60", align 8 + %"$eq_call_1492" = call %TName_Bool* @_eq_Uint128(i8* %"$execptr_load_1489", %Uint128 %"$$p_59_1490", %Uint128 %"$$ans_60_1491"), !dbg !272 + store %TName_Bool* %"$eq_call_1492", %TName_Bool** %"$res__61", align 8, !dbg !272 + %"$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_1496": ; preds = %"$have_gas_1487" + call void @_out_of_gas() + br label %"$have_gas_1497" + +"$have_gas_1497": ; preds = %"$out_of_gas_1496", %"$have_gas_1487" + %"$consume_1498" = sub i64 %"$gasrem_1494", 1 + store i64 %"$consume_1498", i64* @_gasrem, align 8 %"$BoolUtils.andb_167" = alloca { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, align 8 - %"$BoolUtils.andb_1497" = 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_1498" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_1497", 0 - %"$BoolUtils.andb_envptr_1499" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_1497", 1 - %"$$res_58_1500" = load %TName_Bool*, %TName_Bool** %"$res_58", align 8 - %"$BoolUtils.andb_call_1501" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_1498"(i8* %"$BoolUtils.andb_envptr_1499", %TName_Bool* %"$$res_58_1500"), !dbg !95 - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_1501", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_167", align 8, !dbg !95 + %"$BoolUtils.andb_1499" = 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_1500" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_1499", 0 + %"$BoolUtils.andb_envptr_1501" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_1499", 1 + %"$$res_58_1502" = load %TName_Bool*, %TName_Bool** %"$res_58", align 8 + %"$BoolUtils.andb_call_1503" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_1500"(i8* %"$BoolUtils.andb_envptr_1501", %TName_Bool* %"$$res_58_1502"), !dbg !273 + store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_1503", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_167", align 8, !dbg !273 %"$BoolUtils.andb_168" = alloca %TName_Bool*, align 8 - %"$$BoolUtils.andb_167_1502" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_167", align 8 - %"$$BoolUtils.andb_167_fptr_1503" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_167_1502", 0 - %"$$BoolUtils.andb_167_envptr_1504" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_167_1502", 1 - %"$$res__61_1505" = load %TName_Bool*, %TName_Bool** %"$res__61", align 8 - %"$$BoolUtils.andb_167_call_1506" = call %TName_Bool* %"$$BoolUtils.andb_167_fptr_1503"(i8* %"$$BoolUtils.andb_167_envptr_1504", %TName_Bool* %"$$res__61_1505"), !dbg !95 - store %TName_Bool* %"$$BoolUtils.andb_167_call_1506", %TName_Bool** %"$BoolUtils.andb_168", align 8, !dbg !95 - %"$$BoolUtils.andb_168_1507" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_168", align 8 - store %TName_Bool* %"$$BoolUtils.andb_168_1507", %TName_Bool** %"$res_62", align 8, !dbg !95 - %"$gasrem_1508" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1509" = icmp ugt i64 1, %"$gasrem_1508" - br i1 %"$gascmp_1509", label %"$out_of_gas_1510", label %"$have_gas_1511" - -"$out_of_gas_1510": ; preds = %"$have_gas_1495" - call void @_out_of_gas() - br label %"$have_gas_1511" - -"$have_gas_1511": ; preds = %"$out_of_gas_1510", %"$have_gas_1495" - %"$consume_1512" = sub i64 %"$gasrem_1508", 1 - store i64 %"$consume_1512", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$BoolUtils.andb_168", metadata !274, metadata !DIExpression()), !dbg !273 + %"$$BoolUtils.andb_167_1504" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_167", align 8 + %"$$BoolUtils.andb_167_fptr_1505" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_167_1504", 0 + %"$$BoolUtils.andb_167_envptr_1506" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_167_1504", 1 + %"$$res__61_1507" = load %TName_Bool*, %TName_Bool** %"$res__61", align 8 + %"$$BoolUtils.andb_167_call_1508" = call %TName_Bool* %"$$BoolUtils.andb_167_fptr_1505"(i8* %"$$BoolUtils.andb_167_envptr_1506", %TName_Bool* %"$$res__61_1507"), !dbg !273 + store %TName_Bool* %"$$BoolUtils.andb_167_call_1508", %TName_Bool** %"$BoolUtils.andb_168", align 8, !dbg !273 + %"$$BoolUtils.andb_168_1509" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_168", align 8 + store %TName_Bool* %"$$BoolUtils.andb_168_1509", %TName_Bool** %"$res_62", align 8, !dbg !273 + %"$gasrem_1510" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1511" = icmp ugt i64 1, %"$gasrem_1510" + br i1 %"$gascmp_1511", label %"$out_of_gas_1512", label %"$have_gas_1513" + +"$out_of_gas_1512": ; preds = %"$have_gas_1497" + call void @_out_of_gas() + br label %"$have_gas_1513" + +"$have_gas_1513": ; preds = %"$out_of_gas_1512", %"$have_gas_1497" + %"$consume_1514" = sub i64 %"$gasrem_1510", 1 + store i64 %"$consume_1514", i64* @_gasrem, align 8 %"$p_63" = alloca %Uint128, align 8 - %"$p2_1513" = load %Uint32, %Uint32* %p2, align 4 - %"$valueof_1514" = extractvalue %Uint32 %"$p2_1513", 0 - %"$valueof_1515" = zext i32 %"$valueof_1514" to i64 - %"$gaslogof_1516" = uitofp i64 %"$valueof_1515" to double - %"$gaslogof_1517" = fadd double %"$gaslogof_1516", 1.000000e+00 - %"$gaslogof_1518" = call double @llvm.log.f64(double %"$gaslogof_1517") - %"$gaslogof_1519" = fptoui double %"$gaslogof_1518" to i64 - %"$gaslogof_1520" = add i64 %"$gaslogof_1519", 1 - %"$gasmul_1521" = mul i64 20, %"$gaslogof_1520" - %"$gasmul_1522" = mul i64 %"$gasmul_1521", 2 - %"$gasrem_1523" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1524" = icmp ugt i64 %"$gasmul_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", %"$gasmul_1522" - store i64 %"$consume_1527", i64* @_gasrem, align 8 - %"$t5_1528" = load %Uint128, %Uint128* %t5, align 8 - %"$p2_1529" = load %Uint32, %Uint32* %p2, align 4 - %"$pow_call_1530" = call %Uint128 @_pow_Uint128(%Uint128 %"$t5_1528", %Uint32 %"$p2_1529"), !dbg !96 - store %Uint128 %"$pow_call_1530", %Uint128* %"$p_63", align 8, !dbg !96 - %"$gasrem_1531" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1532" = icmp ugt i64 1, %"$gasrem_1531" - br i1 %"$gascmp_1532", label %"$out_of_gas_1533", label %"$have_gas_1534" - -"$out_of_gas_1533": ; preds = %"$have_gas_1526" - call void @_out_of_gas() - br label %"$have_gas_1534" - -"$have_gas_1534": ; preds = %"$out_of_gas_1533", %"$have_gas_1526" - %"$consume_1535" = sub i64 %"$gasrem_1531", 1 - store i64 %"$consume_1535", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %Uint128* %"$p_63", metadata !275, metadata !DIExpression()), !dbg !276 + %"$p2_1515" = load %Uint32, %Uint32* %p2, align 4 + %"$valueof_1516" = extractvalue %Uint32 %"$p2_1515", 0 + %"$valueof_1517" = zext i32 %"$valueof_1516" to i64 + %"$gaslogof_1518" = uitofp i64 %"$valueof_1517" to double + %"$gaslogof_1519" = fadd double %"$gaslogof_1518", 1.000000e+00 + %"$gaslogof_1520" = call double @llvm.log.f64(double %"$gaslogof_1519") + %"$gaslogof_1521" = fptoui double %"$gaslogof_1520" to i64 + %"$gaslogof_1522" = add i64 %"$gaslogof_1521", 1 + %"$gasmul_1523" = mul i64 20, %"$gaslogof_1522" + %"$gasmul_1524" = mul i64 %"$gasmul_1523", 2 + %"$gasrem_1525" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1526" = icmp ugt i64 %"$gasmul_1524", %"$gasrem_1525" + br i1 %"$gascmp_1526", label %"$out_of_gas_1527", label %"$have_gas_1528" + +"$out_of_gas_1527": ; preds = %"$have_gas_1513" + call void @_out_of_gas() + br label %"$have_gas_1528" + +"$have_gas_1528": ; preds = %"$out_of_gas_1527", %"$have_gas_1513" + %"$consume_1529" = sub i64 %"$gasrem_1525", %"$gasmul_1524" + store i64 %"$consume_1529", i64* @_gasrem, align 8 + %"$t5_1530" = load %Uint128, %Uint128* %t5, align 8 + %"$p2_1531" = load %Uint32, %Uint32* %p2, align 4 + %"$pow_call_1532" = call %Uint128 @_pow_Uint128(%Uint128 %"$t5_1530", %Uint32 %"$p2_1531"), !dbg !277 + store %Uint128 %"$pow_call_1532", %Uint128* %"$p_63", align 8, !dbg !277 + %"$gasrem_1533" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1534" = icmp ugt i64 1, %"$gasrem_1533" + br i1 %"$gascmp_1534", label %"$out_of_gas_1535", label %"$have_gas_1536" + +"$out_of_gas_1535": ; preds = %"$have_gas_1528" + call void @_out_of_gas() + br label %"$have_gas_1536" + +"$have_gas_1536": ; preds = %"$out_of_gas_1535", %"$have_gas_1528" + %"$consume_1537" = sub i64 %"$gasrem_1533", 1 + store i64 %"$consume_1537", i64* @_gasrem, align 8 %"$res_66" = alloca %TName_Bool*, 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" + call void @llvm.dbg.declare(metadata %TName_Bool** %"$res_66", metadata !278, metadata !DIExpression()), !dbg !279 + %"$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_1538": ; preds = %"$have_gas_1534" +"$out_of_gas_1540": ; preds = %"$have_gas_1536" call void @_out_of_gas() - br label %"$have_gas_1539" + br label %"$have_gas_1541" -"$have_gas_1539": ; preds = %"$out_of_gas_1538", %"$have_gas_1534" - %"$consume_1540" = sub i64 %"$gasrem_1536", 1 - store i64 %"$consume_1540", i64* @_gasrem, align 8 +"$have_gas_1541": ; preds = %"$out_of_gas_1540", %"$have_gas_1536" + %"$consume_1542" = sub i64 %"$gasrem_1538", 1 + store i64 %"$consume_1542", i64* @_gasrem, align 8 %"$ans_64" = alloca %Uint128, align 8 - %"$gasrem_1541" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1542" = icmp ugt i64 1, %"$gasrem_1541" - br i1 %"$gascmp_1542", label %"$out_of_gas_1543", label %"$have_gas_1544" + call void @llvm.dbg.declare(metadata %Uint128* %"$ans_64", metadata !280, metadata !DIExpression()), !dbg !281 + %"$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_1543": ; preds = %"$have_gas_1539" +"$out_of_gas_1545": ; preds = %"$have_gas_1541" call void @_out_of_gas() - br label %"$have_gas_1544" + br label %"$have_gas_1546" -"$have_gas_1544": ; preds = %"$out_of_gas_1543", %"$have_gas_1539" - %"$consume_1545" = sub i64 %"$gasrem_1541", 1 - store i64 %"$consume_1545", i64* @_gasrem, align 8 - store %Uint128 { i128 1000 }, %Uint128* %"$ans_64", align 8, !dbg !97 - %"$gasrem_1546" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1547" = icmp ugt i64 1, %"$gasrem_1546" - br i1 %"$gascmp_1547", label %"$out_of_gas_1548", label %"$have_gas_1549" +"$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 %Uint128 { i128 1000 }, %Uint128* %"$ans_64", align 8, !dbg !282 + %"$gasrem_1548" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1549" = icmp ugt i64 1, %"$gasrem_1548" + br i1 %"$gascmp_1549", label %"$out_of_gas_1550", label %"$have_gas_1551" -"$out_of_gas_1548": ; preds = %"$have_gas_1544" +"$out_of_gas_1550": ; preds = %"$have_gas_1546" call void @_out_of_gas() - br label %"$have_gas_1549" + br label %"$have_gas_1551" -"$have_gas_1549": ; preds = %"$out_of_gas_1548", %"$have_gas_1544" - %"$consume_1550" = sub i64 %"$gasrem_1546", 1 - store i64 %"$consume_1550", i64* @_gasrem, align 8 +"$have_gas_1551": ; preds = %"$out_of_gas_1550", %"$have_gas_1546" + %"$consume_1552" = sub i64 %"$gasrem_1548", 1 + store i64 %"$consume_1552", i64* @_gasrem, align 8 %"$res__65" = alloca %TName_Bool*, align 8 - %"$gasrem_1552" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1553" = icmp ugt i64 8, %"$gasrem_1552" - br i1 %"$gascmp_1553", label %"$out_of_gas_1554", label %"$have_gas_1555" - -"$out_of_gas_1554": ; preds = %"$have_gas_1549" - call void @_out_of_gas() - br label %"$have_gas_1555" - -"$have_gas_1555": ; preds = %"$out_of_gas_1554", %"$have_gas_1549" - %"$consume_1556" = sub i64 %"$gasrem_1552", 8 - store i64 %"$consume_1556", i64* @_gasrem, align 8 - %"$execptr_load_1557" = load i8*, i8** @_execptr, align 8 - %"$$p_63_1558" = load %Uint128, %Uint128* %"$p_63", align 8 - %"$$ans_64_1559" = load %Uint128, %Uint128* %"$ans_64", align 8 - %"$eq_call_1560" = call %TName_Bool* @_eq_Uint128(i8* %"$execptr_load_1557", %Uint128 %"$$p_63_1558", %Uint128 %"$$ans_64_1559"), !dbg !98 - store %TName_Bool* %"$eq_call_1560", %TName_Bool** %"$res__65", align 8, !dbg !98 - %"$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_1555" - call void @_out_of_gas() - br label %"$have_gas_1565" - -"$have_gas_1565": ; preds = %"$out_of_gas_1564", %"$have_gas_1555" - %"$consume_1566" = sub i64 %"$gasrem_1562", 1 - store i64 %"$consume_1566", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$res__65", metadata !283, metadata !DIExpression()), !dbg !284 + %"$gasrem_1554" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1555" = icmp ugt i64 8, %"$gasrem_1554" + br i1 %"$gascmp_1555", label %"$out_of_gas_1556", label %"$have_gas_1557" + +"$out_of_gas_1556": ; preds = %"$have_gas_1551" + call void @_out_of_gas() + br label %"$have_gas_1557" + +"$have_gas_1557": ; preds = %"$out_of_gas_1556", %"$have_gas_1551" + %"$consume_1558" = sub i64 %"$gasrem_1554", 8 + store i64 %"$consume_1558", i64* @_gasrem, align 8 + %"$execptr_load_1559" = load i8*, i8** @_execptr, align 8 + %"$$p_63_1560" = load %Uint128, %Uint128* %"$p_63", align 8 + %"$$ans_64_1561" = load %Uint128, %Uint128* %"$ans_64", align 8 + %"$eq_call_1562" = call %TName_Bool* @_eq_Uint128(i8* %"$execptr_load_1559", %Uint128 %"$$p_63_1560", %Uint128 %"$$ans_64_1561"), !dbg !285 + store %TName_Bool* %"$eq_call_1562", %TName_Bool** %"$res__65", align 8, !dbg !285 + %"$gasrem_1564" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1565" = icmp ugt i64 1, %"$gasrem_1564" + br i1 %"$gascmp_1565", label %"$out_of_gas_1566", label %"$have_gas_1567" + +"$out_of_gas_1566": ; preds = %"$have_gas_1557" + call void @_out_of_gas() + br label %"$have_gas_1567" + +"$have_gas_1567": ; preds = %"$out_of_gas_1566", %"$have_gas_1557" + %"$consume_1568" = sub i64 %"$gasrem_1564", 1 + store i64 %"$consume_1568", i64* @_gasrem, align 8 %"$BoolUtils.andb_169" = alloca { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, align 8 - %"$BoolUtils.andb_1567" = 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_1568" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_1567", 0 - %"$BoolUtils.andb_envptr_1569" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_1567", 1 - %"$$res_62_1570" = load %TName_Bool*, %TName_Bool** %"$res_62", align 8 - %"$BoolUtils.andb_call_1571" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_1568"(i8* %"$BoolUtils.andb_envptr_1569", %TName_Bool* %"$$res_62_1570"), !dbg !99 - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_1571", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_169", align 8, !dbg !99 + %"$BoolUtils.andb_1569" = 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_1570" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_1569", 0 + %"$BoolUtils.andb_envptr_1571" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_1569", 1 + %"$$res_62_1572" = load %TName_Bool*, %TName_Bool** %"$res_62", align 8 + %"$BoolUtils.andb_call_1573" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_1570"(i8* %"$BoolUtils.andb_envptr_1571", %TName_Bool* %"$$res_62_1572"), !dbg !286 + store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_1573", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_169", align 8, !dbg !286 %"$BoolUtils.andb_170" = alloca %TName_Bool*, align 8 - %"$$BoolUtils.andb_169_1572" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_169", align 8 - %"$$BoolUtils.andb_169_fptr_1573" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_169_1572", 0 - %"$$BoolUtils.andb_169_envptr_1574" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_169_1572", 1 - %"$$res__65_1575" = load %TName_Bool*, %TName_Bool** %"$res__65", align 8 - %"$$BoolUtils.andb_169_call_1576" = call %TName_Bool* %"$$BoolUtils.andb_169_fptr_1573"(i8* %"$$BoolUtils.andb_169_envptr_1574", %TName_Bool* %"$$res__65_1575"), !dbg !99 - store %TName_Bool* %"$$BoolUtils.andb_169_call_1576", %TName_Bool** %"$BoolUtils.andb_170", align 8, !dbg !99 - %"$$BoolUtils.andb_170_1577" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_170", align 8 - store %TName_Bool* %"$$BoolUtils.andb_170_1577", %TName_Bool** %"$res_66", align 8, !dbg !99 - %"$gasrem_1578" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1579" = icmp ugt i64 1, %"$gasrem_1578" - br i1 %"$gascmp_1579", label %"$out_of_gas_1580", label %"$have_gas_1581" - -"$out_of_gas_1580": ; preds = %"$have_gas_1565" - call void @_out_of_gas() - br label %"$have_gas_1581" - -"$have_gas_1581": ; preds = %"$out_of_gas_1580", %"$have_gas_1565" - %"$consume_1582" = sub i64 %"$gasrem_1578", 1 - store i64 %"$consume_1582", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$BoolUtils.andb_170", metadata !287, metadata !DIExpression()), !dbg !286 + %"$$BoolUtils.andb_169_1574" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_169", align 8 + %"$$BoolUtils.andb_169_fptr_1575" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_169_1574", 0 + %"$$BoolUtils.andb_169_envptr_1576" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_169_1574", 1 + %"$$res__65_1577" = load %TName_Bool*, %TName_Bool** %"$res__65", align 8 + %"$$BoolUtils.andb_169_call_1578" = call %TName_Bool* %"$$BoolUtils.andb_169_fptr_1575"(i8* %"$$BoolUtils.andb_169_envptr_1576", %TName_Bool* %"$$res__65_1577"), !dbg !286 + store %TName_Bool* %"$$BoolUtils.andb_169_call_1578", %TName_Bool** %"$BoolUtils.andb_170", align 8, !dbg !286 + %"$$BoolUtils.andb_170_1579" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_170", align 8 + store %TName_Bool* %"$$BoolUtils.andb_170_1579", %TName_Bool** %"$res_66", align 8, !dbg !286 + %"$gasrem_1580" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1581" = icmp ugt i64 1, %"$gasrem_1580" + br i1 %"$gascmp_1581", label %"$out_of_gas_1582", label %"$have_gas_1583" + +"$out_of_gas_1582": ; preds = %"$have_gas_1567" + call void @_out_of_gas() + br label %"$have_gas_1583" + +"$have_gas_1583": ; preds = %"$out_of_gas_1582", %"$have_gas_1567" + %"$consume_1584" = sub i64 %"$gasrem_1580", 1 + store i64 %"$consume_1584", i64* @_gasrem, align 8 %"$p_67" = alloca %Uint128, align 8 - %"$p3_1583" = load %Uint32, %Uint32* %p3, align 4 - %"$valueof_1584" = extractvalue %Uint32 %"$p3_1583", 0 - %"$valueof_1585" = zext i32 %"$valueof_1584" to i64 - %"$gaslogof_1586" = uitofp i64 %"$valueof_1585" to double - %"$gaslogof_1587" = fadd double %"$gaslogof_1586", 1.000000e+00 - %"$gaslogof_1588" = call double @llvm.log.f64(double %"$gaslogof_1587") - %"$gaslogof_1589" = fptoui double %"$gaslogof_1588" to i64 - %"$gaslogof_1590" = add i64 %"$gaslogof_1589", 1 - %"$gasmul_1591" = mul i64 20, %"$gaslogof_1590" - %"$gasmul_1592" = mul i64 %"$gasmul_1591", 2 - %"$gasrem_1593" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1594" = icmp ugt i64 %"$gasmul_1592", %"$gasrem_1593" - br i1 %"$gascmp_1594", label %"$out_of_gas_1595", label %"$have_gas_1596" - -"$out_of_gas_1595": ; preds = %"$have_gas_1581" - call void @_out_of_gas() - br label %"$have_gas_1596" - -"$have_gas_1596": ; preds = %"$out_of_gas_1595", %"$have_gas_1581" - %"$consume_1597" = sub i64 %"$gasrem_1593", %"$gasmul_1592" - store i64 %"$consume_1597", i64* @_gasrem, align 8 - %"$t5_1598" = load %Uint128, %Uint128* %t5, align 8 - %"$p3_1599" = load %Uint32, %Uint32* %p3, align 4 - %"$pow_call_1600" = call %Uint128 @_pow_Uint128(%Uint128 %"$t5_1598", %Uint32 %"$p3_1599"), !dbg !100 - store %Uint128 %"$pow_call_1600", %Uint128* %"$p_67", align 8, !dbg !100 - %"$gasrem_1601" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1602" = icmp ugt i64 1, %"$gasrem_1601" - br i1 %"$gascmp_1602", label %"$out_of_gas_1603", label %"$have_gas_1604" - -"$out_of_gas_1603": ; preds = %"$have_gas_1596" - call void @_out_of_gas() - br label %"$have_gas_1604" - -"$have_gas_1604": ; preds = %"$out_of_gas_1603", %"$have_gas_1596" - %"$consume_1605" = sub i64 %"$gasrem_1601", 1 - store i64 %"$consume_1605", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %Uint128* %"$p_67", metadata !288, metadata !DIExpression()), !dbg !289 + %"$p3_1585" = load %Uint32, %Uint32* %p3, align 4 + %"$valueof_1586" = extractvalue %Uint32 %"$p3_1585", 0 + %"$valueof_1587" = zext i32 %"$valueof_1586" to i64 + %"$gaslogof_1588" = uitofp i64 %"$valueof_1587" to double + %"$gaslogof_1589" = fadd double %"$gaslogof_1588", 1.000000e+00 + %"$gaslogof_1590" = call double @llvm.log.f64(double %"$gaslogof_1589") + %"$gaslogof_1591" = fptoui double %"$gaslogof_1590" to i64 + %"$gaslogof_1592" = add i64 %"$gaslogof_1591", 1 + %"$gasmul_1593" = mul i64 20, %"$gaslogof_1592" + %"$gasmul_1594" = mul i64 %"$gasmul_1593", 2 + %"$gasrem_1595" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1596" = icmp ugt i64 %"$gasmul_1594", %"$gasrem_1595" + br i1 %"$gascmp_1596", label %"$out_of_gas_1597", label %"$have_gas_1598" + +"$out_of_gas_1597": ; preds = %"$have_gas_1583" + call void @_out_of_gas() + br label %"$have_gas_1598" + +"$have_gas_1598": ; preds = %"$out_of_gas_1597", %"$have_gas_1583" + %"$consume_1599" = sub i64 %"$gasrem_1595", %"$gasmul_1594" + store i64 %"$consume_1599", i64* @_gasrem, align 8 + %"$t5_1600" = load %Uint128, %Uint128* %t5, align 8 + %"$p3_1601" = load %Uint32, %Uint32* %p3, align 4 + %"$pow_call_1602" = call %Uint128 @_pow_Uint128(%Uint128 %"$t5_1600", %Uint32 %"$p3_1601"), !dbg !290 + store %Uint128 %"$pow_call_1602", %Uint128* %"$p_67", align 8, !dbg !290 + %"$gasrem_1603" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1604" = icmp ugt i64 1, %"$gasrem_1603" + br i1 %"$gascmp_1604", label %"$out_of_gas_1605", label %"$have_gas_1606" + +"$out_of_gas_1605": ; preds = %"$have_gas_1598" + call void @_out_of_gas() + br label %"$have_gas_1606" + +"$have_gas_1606": ; preds = %"$out_of_gas_1605", %"$have_gas_1598" + %"$consume_1607" = sub i64 %"$gasrem_1603", 1 + store i64 %"$consume_1607", i64* @_gasrem, align 8 %"$res_70" = alloca %TName_Bool*, align 8 - %"$gasrem_1606" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1607" = icmp ugt i64 1, %"$gasrem_1606" - br i1 %"$gascmp_1607", label %"$out_of_gas_1608", label %"$have_gas_1609" + call void @llvm.dbg.declare(metadata %TName_Bool** %"$res_70", metadata !291, metadata !DIExpression()), !dbg !292 + %"$gasrem_1608" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1609" = icmp ugt i64 1, %"$gasrem_1608" + br i1 %"$gascmp_1609", label %"$out_of_gas_1610", label %"$have_gas_1611" -"$out_of_gas_1608": ; preds = %"$have_gas_1604" +"$out_of_gas_1610": ; preds = %"$have_gas_1606" call void @_out_of_gas() - br label %"$have_gas_1609" + br label %"$have_gas_1611" -"$have_gas_1609": ; preds = %"$out_of_gas_1608", %"$have_gas_1604" - %"$consume_1610" = sub i64 %"$gasrem_1606", 1 - store i64 %"$consume_1610", i64* @_gasrem, align 8 +"$have_gas_1611": ; preds = %"$out_of_gas_1610", %"$have_gas_1606" + %"$consume_1612" = sub i64 %"$gasrem_1608", 1 + store i64 %"$consume_1612", i64* @_gasrem, align 8 %"$ans_68" = alloca %Uint128, align 8 - %"$gasrem_1611" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1612" = icmp ugt i64 1, %"$gasrem_1611" - br i1 %"$gascmp_1612", label %"$out_of_gas_1613", label %"$have_gas_1614" + call void @llvm.dbg.declare(metadata %Uint128* %"$ans_68", metadata !293, metadata !DIExpression()), !dbg !294 + %"$gasrem_1613" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1614" = icmp ugt i64 1, %"$gasrem_1613" + br i1 %"$gascmp_1614", label %"$out_of_gas_1615", label %"$have_gas_1616" -"$out_of_gas_1613": ; preds = %"$have_gas_1609" +"$out_of_gas_1615": ; preds = %"$have_gas_1611" call void @_out_of_gas() - br label %"$have_gas_1614" + br label %"$have_gas_1616" -"$have_gas_1614": ; preds = %"$out_of_gas_1613", %"$have_gas_1609" - %"$consume_1615" = sub i64 %"$gasrem_1611", 1 - store i64 %"$consume_1615", i64* @_gasrem, align 8 - store %Uint128 { i128 1000000000000 }, %Uint128* %"$ans_68", align 8, !dbg !101 - %"$gasrem_1616" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1617" = icmp ugt i64 1, %"$gasrem_1616" - br i1 %"$gascmp_1617", label %"$out_of_gas_1618", label %"$have_gas_1619" +"$have_gas_1616": ; preds = %"$out_of_gas_1615", %"$have_gas_1611" + %"$consume_1617" = sub i64 %"$gasrem_1613", 1 + store i64 %"$consume_1617", i64* @_gasrem, align 8 + store %Uint128 { i128 1000000000000 }, %Uint128* %"$ans_68", align 8, !dbg !295 + %"$gasrem_1618" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1619" = icmp ugt i64 1, %"$gasrem_1618" + br i1 %"$gascmp_1619", label %"$out_of_gas_1620", label %"$have_gas_1621" -"$out_of_gas_1618": ; preds = %"$have_gas_1614" +"$out_of_gas_1620": ; preds = %"$have_gas_1616" call void @_out_of_gas() - br label %"$have_gas_1619" + br label %"$have_gas_1621" -"$have_gas_1619": ; preds = %"$out_of_gas_1618", %"$have_gas_1614" - %"$consume_1620" = sub i64 %"$gasrem_1616", 1 - store i64 %"$consume_1620", i64* @_gasrem, align 8 +"$have_gas_1621": ; preds = %"$out_of_gas_1620", %"$have_gas_1616" + %"$consume_1622" = sub i64 %"$gasrem_1618", 1 + store i64 %"$consume_1622", i64* @_gasrem, align 8 %"$res__69" = alloca %TName_Bool*, align 8 - %"$gasrem_1622" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1623" = icmp ugt i64 8, %"$gasrem_1622" - br i1 %"$gascmp_1623", label %"$out_of_gas_1624", label %"$have_gas_1625" - -"$out_of_gas_1624": ; preds = %"$have_gas_1619" - call void @_out_of_gas() - br label %"$have_gas_1625" - -"$have_gas_1625": ; preds = %"$out_of_gas_1624", %"$have_gas_1619" - %"$consume_1626" = sub i64 %"$gasrem_1622", 8 - store i64 %"$consume_1626", i64* @_gasrem, align 8 - %"$execptr_load_1627" = load i8*, i8** @_execptr, align 8 - %"$$p_67_1628" = load %Uint128, %Uint128* %"$p_67", align 8 - %"$$ans_68_1629" = load %Uint128, %Uint128* %"$ans_68", align 8 - %"$eq_call_1630" = call %TName_Bool* @_eq_Uint128(i8* %"$execptr_load_1627", %Uint128 %"$$p_67_1628", %Uint128 %"$$ans_68_1629"), !dbg !102 - store %TName_Bool* %"$eq_call_1630", %TName_Bool** %"$res__69", align 8, !dbg !102 - %"$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" - -"$out_of_gas_1634": ; preds = %"$have_gas_1625" - call void @_out_of_gas() - br label %"$have_gas_1635" - -"$have_gas_1635": ; preds = %"$out_of_gas_1634", %"$have_gas_1625" - %"$consume_1636" = sub i64 %"$gasrem_1632", 1 - store i64 %"$consume_1636", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$res__69", metadata !296, metadata !DIExpression()), !dbg !297 + %"$gasrem_1624" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1625" = icmp ugt i64 8, %"$gasrem_1624" + br i1 %"$gascmp_1625", label %"$out_of_gas_1626", label %"$have_gas_1627" + +"$out_of_gas_1626": ; preds = %"$have_gas_1621" + call void @_out_of_gas() + br label %"$have_gas_1627" + +"$have_gas_1627": ; preds = %"$out_of_gas_1626", %"$have_gas_1621" + %"$consume_1628" = sub i64 %"$gasrem_1624", 8 + store i64 %"$consume_1628", i64* @_gasrem, align 8 + %"$execptr_load_1629" = load i8*, i8** @_execptr, align 8 + %"$$p_67_1630" = load %Uint128, %Uint128* %"$p_67", align 8 + %"$$ans_68_1631" = load %Uint128, %Uint128* %"$ans_68", align 8 + %"$eq_call_1632" = call %TName_Bool* @_eq_Uint128(i8* %"$execptr_load_1629", %Uint128 %"$$p_67_1630", %Uint128 %"$$ans_68_1631"), !dbg !298 + store %TName_Bool* %"$eq_call_1632", %TName_Bool** %"$res__69", align 8, !dbg !298 + %"$gasrem_1634" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1635" = icmp ugt i64 1, %"$gasrem_1634" + br i1 %"$gascmp_1635", label %"$out_of_gas_1636", label %"$have_gas_1637" + +"$out_of_gas_1636": ; preds = %"$have_gas_1627" + call void @_out_of_gas() + br label %"$have_gas_1637" + +"$have_gas_1637": ; preds = %"$out_of_gas_1636", %"$have_gas_1627" + %"$consume_1638" = sub i64 %"$gasrem_1634", 1 + store i64 %"$consume_1638", i64* @_gasrem, align 8 %"$BoolUtils.andb_171" = alloca { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, align 8 - %"$BoolUtils.andb_1637" = 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_1638" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_1637", 0 - %"$BoolUtils.andb_envptr_1639" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_1637", 1 - %"$$res_66_1640" = load %TName_Bool*, %TName_Bool** %"$res_66", align 8 - %"$BoolUtils.andb_call_1641" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_1638"(i8* %"$BoolUtils.andb_envptr_1639", %TName_Bool* %"$$res_66_1640"), !dbg !103 - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_1641", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_171", align 8, !dbg !103 + %"$BoolUtils.andb_1639" = 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_1640" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_1639", 0 + %"$BoolUtils.andb_envptr_1641" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_1639", 1 + %"$$res_66_1642" = load %TName_Bool*, %TName_Bool** %"$res_66", align 8 + %"$BoolUtils.andb_call_1643" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_1640"(i8* %"$BoolUtils.andb_envptr_1641", %TName_Bool* %"$$res_66_1642"), !dbg !299 + store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_1643", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_171", align 8, !dbg !299 %"$BoolUtils.andb_172" = alloca %TName_Bool*, align 8 - %"$$BoolUtils.andb_171_1642" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_171", align 8 - %"$$BoolUtils.andb_171_fptr_1643" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_171_1642", 0 - %"$$BoolUtils.andb_171_envptr_1644" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_171_1642", 1 - %"$$res__69_1645" = load %TName_Bool*, %TName_Bool** %"$res__69", align 8 - %"$$BoolUtils.andb_171_call_1646" = call %TName_Bool* %"$$BoolUtils.andb_171_fptr_1643"(i8* %"$$BoolUtils.andb_171_envptr_1644", %TName_Bool* %"$$res__69_1645"), !dbg !103 - store %TName_Bool* %"$$BoolUtils.andb_171_call_1646", %TName_Bool** %"$BoolUtils.andb_172", align 8, !dbg !103 - %"$$BoolUtils.andb_172_1647" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_172", align 8 - store %TName_Bool* %"$$BoolUtils.andb_172_1647", %TName_Bool** %"$res_70", align 8, !dbg !103 - %"$gasrem_1648" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1649" = icmp ugt i64 1, %"$gasrem_1648" - br i1 %"$gascmp_1649", label %"$out_of_gas_1650", label %"$have_gas_1651" - -"$out_of_gas_1650": ; preds = %"$have_gas_1635" - call void @_out_of_gas() - br label %"$have_gas_1651" - -"$have_gas_1651": ; preds = %"$out_of_gas_1650", %"$have_gas_1635" - %"$consume_1652" = sub i64 %"$gasrem_1648", 1 - store i64 %"$consume_1652", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$BoolUtils.andb_172", metadata !300, metadata !DIExpression()), !dbg !299 + %"$$BoolUtils.andb_171_1644" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_171", align 8 + %"$$BoolUtils.andb_171_fptr_1645" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_171_1644", 0 + %"$$BoolUtils.andb_171_envptr_1646" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_171_1644", 1 + %"$$res__69_1647" = load %TName_Bool*, %TName_Bool** %"$res__69", align 8 + %"$$BoolUtils.andb_171_call_1648" = call %TName_Bool* %"$$BoolUtils.andb_171_fptr_1645"(i8* %"$$BoolUtils.andb_171_envptr_1646", %TName_Bool* %"$$res__69_1647"), !dbg !299 + store %TName_Bool* %"$$BoolUtils.andb_171_call_1648", %TName_Bool** %"$BoolUtils.andb_172", align 8, !dbg !299 + %"$$BoolUtils.andb_172_1649" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_172", align 8 + store %TName_Bool* %"$$BoolUtils.andb_172_1649", %TName_Bool** %"$res_70", align 8, !dbg !299 + %"$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" + +"$out_of_gas_1652": ; preds = %"$have_gas_1637" + call void @_out_of_gas() + br label %"$have_gas_1653" + +"$have_gas_1653": ; preds = %"$out_of_gas_1652", %"$have_gas_1637" + %"$consume_1654" = sub i64 %"$gasrem_1650", 1 + store i64 %"$consume_1654", i64* @_gasrem, align 8 %"$p_71" = alloca %Uint128, align 8 - %"$p4_1653" = load %Uint32, %Uint32* %p4, align 4 - %"$valueof_1654" = extractvalue %Uint32 %"$p4_1653", 0 - %"$valueof_1655" = zext i32 %"$valueof_1654" to i64 - %"$gaslogof_1656" = uitofp i64 %"$valueof_1655" to double - %"$gaslogof_1657" = fadd double %"$gaslogof_1656", 1.000000e+00 - %"$gaslogof_1658" = call double @llvm.log.f64(double %"$gaslogof_1657") - %"$gaslogof_1659" = fptoui double %"$gaslogof_1658" to i64 - %"$gaslogof_1660" = add i64 %"$gaslogof_1659", 1 - %"$gasmul_1661" = mul i64 20, %"$gaslogof_1660" - %"$gasmul_1662" = mul i64 %"$gasmul_1661", 2 - %"$gasrem_1663" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1664" = icmp ugt i64 %"$gasmul_1662", %"$gasrem_1663" - br i1 %"$gascmp_1664", label %"$out_of_gas_1665", label %"$have_gas_1666" - -"$out_of_gas_1665": ; preds = %"$have_gas_1651" - call void @_out_of_gas() - br label %"$have_gas_1666" - -"$have_gas_1666": ; preds = %"$out_of_gas_1665", %"$have_gas_1651" - %"$consume_1667" = sub i64 %"$gasrem_1663", %"$gasmul_1662" - store i64 %"$consume_1667", i64* @_gasrem, align 8 - %"$t5_1668" = load %Uint128, %Uint128* %t5, align 8 - %"$p4_1669" = load %Uint32, %Uint32* %p4, align 4 - %"$pow_call_1670" = call %Uint128 @_pow_Uint128(%Uint128 %"$t5_1668", %Uint32 %"$p4_1669"), !dbg !104 - store %Uint128 %"$pow_call_1670", %Uint128* %"$p_71", align 8, !dbg !104 - %"$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_1673": ; preds = %"$have_gas_1666" - call void @_out_of_gas() - br label %"$have_gas_1674" - -"$have_gas_1674": ; preds = %"$out_of_gas_1673", %"$have_gas_1666" - %"$consume_1675" = sub i64 %"$gasrem_1671", 1 - store i64 %"$consume_1675", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %Uint128* %"$p_71", metadata !301, metadata !DIExpression()), !dbg !302 + %"$p4_1655" = load %Uint32, %Uint32* %p4, align 4 + %"$valueof_1656" = extractvalue %Uint32 %"$p4_1655", 0 + %"$valueof_1657" = zext i32 %"$valueof_1656" to i64 + %"$gaslogof_1658" = uitofp i64 %"$valueof_1657" to double + %"$gaslogof_1659" = fadd double %"$gaslogof_1658", 1.000000e+00 + %"$gaslogof_1660" = call double @llvm.log.f64(double %"$gaslogof_1659") + %"$gaslogof_1661" = fptoui double %"$gaslogof_1660" to i64 + %"$gaslogof_1662" = add i64 %"$gaslogof_1661", 1 + %"$gasmul_1663" = mul i64 20, %"$gaslogof_1662" + %"$gasmul_1664" = mul i64 %"$gasmul_1663", 2 + %"$gasrem_1665" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1666" = icmp ugt i64 %"$gasmul_1664", %"$gasrem_1665" + br i1 %"$gascmp_1666", label %"$out_of_gas_1667", label %"$have_gas_1668" + +"$out_of_gas_1667": ; preds = %"$have_gas_1653" + call void @_out_of_gas() + br label %"$have_gas_1668" + +"$have_gas_1668": ; preds = %"$out_of_gas_1667", %"$have_gas_1653" + %"$consume_1669" = sub i64 %"$gasrem_1665", %"$gasmul_1664" + store i64 %"$consume_1669", i64* @_gasrem, align 8 + %"$t5_1670" = load %Uint128, %Uint128* %t5, align 8 + %"$p4_1671" = load %Uint32, %Uint32* %p4, align 4 + %"$pow_call_1672" = call %Uint128 @_pow_Uint128(%Uint128 %"$t5_1670", %Uint32 %"$p4_1671"), !dbg !303 + store %Uint128 %"$pow_call_1672", %Uint128* %"$p_71", align 8, !dbg !303 + %"$gasrem_1673" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1674" = icmp ugt i64 1, %"$gasrem_1673" + br i1 %"$gascmp_1674", label %"$out_of_gas_1675", label %"$have_gas_1676" + +"$out_of_gas_1675": ; preds = %"$have_gas_1668" + call void @_out_of_gas() + br label %"$have_gas_1676" + +"$have_gas_1676": ; preds = %"$out_of_gas_1675", %"$have_gas_1668" + %"$consume_1677" = sub i64 %"$gasrem_1673", 1 + store i64 %"$consume_1677", i64* @_gasrem, align 8 %"$res_74" = alloca %TName_Bool*, align 8 - %"$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" + call void @llvm.dbg.declare(metadata %TName_Bool** %"$res_74", metadata !304, metadata !DIExpression()), !dbg !305 + %"$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_1678": ; preds = %"$have_gas_1674" +"$out_of_gas_1680": ; preds = %"$have_gas_1676" call void @_out_of_gas() - br label %"$have_gas_1679" + br label %"$have_gas_1681" -"$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 +"$have_gas_1681": ; preds = %"$out_of_gas_1680", %"$have_gas_1676" + %"$consume_1682" = sub i64 %"$gasrem_1678", 1 + store i64 %"$consume_1682", i64* @_gasrem, align 8 %"$ans_72" = alloca %Uint128, align 8 - %"$gasrem_1681" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1682" = icmp ugt i64 1, %"$gasrem_1681" - br i1 %"$gascmp_1682", label %"$out_of_gas_1683", label %"$have_gas_1684" + call void @llvm.dbg.declare(metadata %Uint128* %"$ans_72", metadata !306, metadata !DIExpression()), !dbg !307 + %"$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_1683": ; preds = %"$have_gas_1679" +"$out_of_gas_1685": ; preds = %"$have_gas_1681" call void @_out_of_gas() - br label %"$have_gas_1684" + br label %"$have_gas_1686" -"$have_gas_1684": ; preds = %"$out_of_gas_1683", %"$have_gas_1679" - %"$consume_1685" = sub i64 %"$gasrem_1681", 1 - store i64 %"$consume_1685", i64* @_gasrem, align 8 - store %Uint128 { i128 1000000000000000000000000000000 }, %Uint128* %"$ans_72", align 8, !dbg !105 - %"$gasrem_1686" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1687" = icmp ugt i64 1, %"$gasrem_1686" - br i1 %"$gascmp_1687", label %"$out_of_gas_1688", label %"$have_gas_1689" +"$have_gas_1686": ; preds = %"$out_of_gas_1685", %"$have_gas_1681" + %"$consume_1687" = sub i64 %"$gasrem_1683", 1 + store i64 %"$consume_1687", i64* @_gasrem, align 8 + store %Uint128 { i128 1000000000000000000000000000000 }, %Uint128* %"$ans_72", align 8, !dbg !308 + %"$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_1688": ; preds = %"$have_gas_1684" +"$out_of_gas_1690": ; preds = %"$have_gas_1686" call void @_out_of_gas() - br label %"$have_gas_1689" + br label %"$have_gas_1691" -"$have_gas_1689": ; preds = %"$out_of_gas_1688", %"$have_gas_1684" - %"$consume_1690" = sub i64 %"$gasrem_1686", 1 - store i64 %"$consume_1690", i64* @_gasrem, align 8 +"$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 %"$res__73" = alloca %TName_Bool*, align 8 - %"$gasrem_1692" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1693" = icmp ugt i64 8, %"$gasrem_1692" - br i1 %"$gascmp_1693", label %"$out_of_gas_1694", label %"$have_gas_1695" - -"$out_of_gas_1694": ; preds = %"$have_gas_1689" - call void @_out_of_gas() - br label %"$have_gas_1695" - -"$have_gas_1695": ; preds = %"$out_of_gas_1694", %"$have_gas_1689" - %"$consume_1696" = sub i64 %"$gasrem_1692", 8 - store i64 %"$consume_1696", i64* @_gasrem, align 8 - %"$execptr_load_1697" = load i8*, i8** @_execptr, align 8 - %"$$p_71_1698" = load %Uint128, %Uint128* %"$p_71", align 8 - %"$$ans_72_1699" = load %Uint128, %Uint128* %"$ans_72", align 8 - %"$eq_call_1700" = call %TName_Bool* @_eq_Uint128(i8* %"$execptr_load_1697", %Uint128 %"$$p_71_1698", %Uint128 %"$$ans_72_1699"), !dbg !106 - store %TName_Bool* %"$eq_call_1700", %TName_Bool** %"$res__73", align 8, !dbg !106 - %"$gasrem_1702" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1703" = icmp ugt i64 1, %"$gasrem_1702" - br i1 %"$gascmp_1703", label %"$out_of_gas_1704", label %"$have_gas_1705" - -"$out_of_gas_1704": ; preds = %"$have_gas_1695" - call void @_out_of_gas() - br label %"$have_gas_1705" - -"$have_gas_1705": ; preds = %"$out_of_gas_1704", %"$have_gas_1695" - %"$consume_1706" = sub i64 %"$gasrem_1702", 1 - store i64 %"$consume_1706", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$res__73", metadata !309, metadata !DIExpression()), !dbg !310 + %"$gasrem_1694" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1695" = icmp ugt i64 8, %"$gasrem_1694" + br i1 %"$gascmp_1695", label %"$out_of_gas_1696", label %"$have_gas_1697" + +"$out_of_gas_1696": ; preds = %"$have_gas_1691" + call void @_out_of_gas() + br label %"$have_gas_1697" + +"$have_gas_1697": ; preds = %"$out_of_gas_1696", %"$have_gas_1691" + %"$consume_1698" = sub i64 %"$gasrem_1694", 8 + store i64 %"$consume_1698", i64* @_gasrem, align 8 + %"$execptr_load_1699" = load i8*, i8** @_execptr, align 8 + %"$$p_71_1700" = load %Uint128, %Uint128* %"$p_71", align 8 + %"$$ans_72_1701" = load %Uint128, %Uint128* %"$ans_72", align 8 + %"$eq_call_1702" = call %TName_Bool* @_eq_Uint128(i8* %"$execptr_load_1699", %Uint128 %"$$p_71_1700", %Uint128 %"$$ans_72_1701"), !dbg !311 + store %TName_Bool* %"$eq_call_1702", %TName_Bool** %"$res__73", align 8, !dbg !311 + %"$gasrem_1704" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1705" = icmp ugt i64 1, %"$gasrem_1704" + br i1 %"$gascmp_1705", label %"$out_of_gas_1706", label %"$have_gas_1707" + +"$out_of_gas_1706": ; preds = %"$have_gas_1697" + call void @_out_of_gas() + br label %"$have_gas_1707" + +"$have_gas_1707": ; preds = %"$out_of_gas_1706", %"$have_gas_1697" + %"$consume_1708" = sub i64 %"$gasrem_1704", 1 + store i64 %"$consume_1708", i64* @_gasrem, align 8 %"$BoolUtils.andb_173" = alloca { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, align 8 - %"$BoolUtils.andb_1707" = 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_1708" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_1707", 0 - %"$BoolUtils.andb_envptr_1709" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_1707", 1 - %"$$res_70_1710" = load %TName_Bool*, %TName_Bool** %"$res_70", align 8 - %"$BoolUtils.andb_call_1711" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_1708"(i8* %"$BoolUtils.andb_envptr_1709", %TName_Bool* %"$$res_70_1710"), !dbg !107 - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_1711", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_173", align 8, !dbg !107 + %"$BoolUtils.andb_1709" = 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_1710" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_1709", 0 + %"$BoolUtils.andb_envptr_1711" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_1709", 1 + %"$$res_70_1712" = load %TName_Bool*, %TName_Bool** %"$res_70", align 8 + %"$BoolUtils.andb_call_1713" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_1710"(i8* %"$BoolUtils.andb_envptr_1711", %TName_Bool* %"$$res_70_1712"), !dbg !312 + store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_1713", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_173", align 8, !dbg !312 %"$BoolUtils.andb_174" = alloca %TName_Bool*, align 8 - %"$$BoolUtils.andb_173_1712" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_173", align 8 - %"$$BoolUtils.andb_173_fptr_1713" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_173_1712", 0 - %"$$BoolUtils.andb_173_envptr_1714" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_173_1712", 1 - %"$$res__73_1715" = load %TName_Bool*, %TName_Bool** %"$res__73", align 8 - %"$$BoolUtils.andb_173_call_1716" = call %TName_Bool* %"$$BoolUtils.andb_173_fptr_1713"(i8* %"$$BoolUtils.andb_173_envptr_1714", %TName_Bool* %"$$res__73_1715"), !dbg !107 - store %TName_Bool* %"$$BoolUtils.andb_173_call_1716", %TName_Bool** %"$BoolUtils.andb_174", align 8, !dbg !107 - %"$$BoolUtils.andb_174_1717" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_174", align 8 - store %TName_Bool* %"$$BoolUtils.andb_174_1717", %TName_Bool** %"$res_74", align 8, !dbg !107 - %"$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_1705" - call void @_out_of_gas() - br label %"$have_gas_1721" - -"$have_gas_1721": ; preds = %"$out_of_gas_1720", %"$have_gas_1705" - %"$consume_1722" = sub i64 %"$gasrem_1718", 1 - store i64 %"$consume_1722", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$BoolUtils.andb_174", metadata !313, metadata !DIExpression()), !dbg !312 + %"$$BoolUtils.andb_173_1714" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_173", align 8 + %"$$BoolUtils.andb_173_fptr_1715" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_173_1714", 0 + %"$$BoolUtils.andb_173_envptr_1716" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_173_1714", 1 + %"$$res__73_1717" = load %TName_Bool*, %TName_Bool** %"$res__73", align 8 + %"$$BoolUtils.andb_173_call_1718" = call %TName_Bool* %"$$BoolUtils.andb_173_fptr_1715"(i8* %"$$BoolUtils.andb_173_envptr_1716", %TName_Bool* %"$$res__73_1717"), !dbg !312 + store %TName_Bool* %"$$BoolUtils.andb_173_call_1718", %TName_Bool** %"$BoolUtils.andb_174", align 8, !dbg !312 + %"$$BoolUtils.andb_174_1719" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_174", align 8 + store %TName_Bool* %"$$BoolUtils.andb_174_1719", %TName_Bool** %"$res_74", align 8, !dbg !312 + %"$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_1722": ; preds = %"$have_gas_1707" + call void @_out_of_gas() + br label %"$have_gas_1723" + +"$have_gas_1723": ; preds = %"$out_of_gas_1722", %"$have_gas_1707" + %"$consume_1724" = sub i64 %"$gasrem_1720", 1 + store i64 %"$consume_1724", i64* @_gasrem, align 8 %"$p_75" = alloca %Int128, align 8 - %"$p1_1723" = load %Uint32, %Uint32* %p1, align 4 - %"$valueof_1724" = extractvalue %Uint32 %"$p1_1723", 0 - %"$valueof_1725" = zext i32 %"$valueof_1724" to i64 - %"$gaslogof_1726" = uitofp i64 %"$valueof_1725" to double - %"$gaslogof_1727" = fadd double %"$gaslogof_1726", 1.000000e+00 - %"$gaslogof_1728" = call double @llvm.log.f64(double %"$gaslogof_1727") - %"$gaslogof_1729" = fptoui double %"$gaslogof_1728" to i64 - %"$gaslogof_1730" = add i64 %"$gaslogof_1729", 1 - %"$gasmul_1731" = mul i64 20, %"$gaslogof_1730" - %"$gasmul_1732" = mul i64 %"$gasmul_1731", 2 - %"$gasrem_1733" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1734" = icmp ugt i64 %"$gasmul_1732", %"$gasrem_1733" - br i1 %"$gascmp_1734", label %"$out_of_gas_1735", label %"$have_gas_1736" - -"$out_of_gas_1735": ; preds = %"$have_gas_1721" - call void @_out_of_gas() - br label %"$have_gas_1736" - -"$have_gas_1736": ; preds = %"$out_of_gas_1735", %"$have_gas_1721" - %"$consume_1737" = sub i64 %"$gasrem_1733", %"$gasmul_1732" - store i64 %"$consume_1737", i64* @_gasrem, align 8 - %"$t6_1738" = load %Int128, %Int128* %t6, align 8 - %"$p1_1739" = load %Uint32, %Uint32* %p1, align 4 - %"$pow_call_1740" = call %Int128 @_pow_Int128(%Int128 %"$t6_1738", %Uint32 %"$p1_1739"), !dbg !108 - store %Int128 %"$pow_call_1740", %Int128* %"$p_75", align 8, !dbg !108 - %"$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 = %"$have_gas_1736" - call void @_out_of_gas() - br label %"$have_gas_1744" - -"$have_gas_1744": ; preds = %"$out_of_gas_1743", %"$have_gas_1736" - %"$consume_1745" = sub i64 %"$gasrem_1741", 1 - store i64 %"$consume_1745", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %Int128* %"$p_75", metadata !314, metadata !DIExpression()), !dbg !315 + %"$p1_1725" = load %Uint32, %Uint32* %p1, align 4 + %"$valueof_1726" = extractvalue %Uint32 %"$p1_1725", 0 + %"$valueof_1727" = zext i32 %"$valueof_1726" to i64 + %"$gaslogof_1728" = uitofp i64 %"$valueof_1727" to double + %"$gaslogof_1729" = fadd double %"$gaslogof_1728", 1.000000e+00 + %"$gaslogof_1730" = call double @llvm.log.f64(double %"$gaslogof_1729") + %"$gaslogof_1731" = fptoui double %"$gaslogof_1730" to i64 + %"$gaslogof_1732" = add i64 %"$gaslogof_1731", 1 + %"$gasmul_1733" = mul i64 20, %"$gaslogof_1732" + %"$gasmul_1734" = mul i64 %"$gasmul_1733", 2 + %"$gasrem_1735" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1736" = icmp ugt i64 %"$gasmul_1734", %"$gasrem_1735" + br i1 %"$gascmp_1736", label %"$out_of_gas_1737", label %"$have_gas_1738" + +"$out_of_gas_1737": ; preds = %"$have_gas_1723" + call void @_out_of_gas() + br label %"$have_gas_1738" + +"$have_gas_1738": ; preds = %"$out_of_gas_1737", %"$have_gas_1723" + %"$consume_1739" = sub i64 %"$gasrem_1735", %"$gasmul_1734" + store i64 %"$consume_1739", i64* @_gasrem, align 8 + %"$t6_1740" = load %Int128, %Int128* %t6, align 8 + %"$p1_1741" = load %Uint32, %Uint32* %p1, align 4 + %"$pow_call_1742" = call %Int128 @_pow_Int128(%Int128 %"$t6_1740", %Uint32 %"$p1_1741"), !dbg !316 + store %Int128 %"$pow_call_1742", %Int128* %"$p_75", align 8, !dbg !316 + %"$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" + +"$out_of_gas_1745": ; preds = %"$have_gas_1738" + call void @_out_of_gas() + br label %"$have_gas_1746" + +"$have_gas_1746": ; preds = %"$out_of_gas_1745", %"$have_gas_1738" + %"$consume_1747" = sub i64 %"$gasrem_1743", 1 + store i64 %"$consume_1747", i64* @_gasrem, align 8 %"$res_78" = alloca %TName_Bool*, align 8 - %"$gasrem_1746" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1747" = icmp ugt i64 1, %"$gasrem_1746" - br i1 %"$gascmp_1747", label %"$out_of_gas_1748", label %"$have_gas_1749" + call void @llvm.dbg.declare(metadata %TName_Bool** %"$res_78", metadata !317, metadata !DIExpression()), !dbg !318 + %"$gasrem_1748" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1749" = icmp ugt i64 1, %"$gasrem_1748" + br i1 %"$gascmp_1749", label %"$out_of_gas_1750", label %"$have_gas_1751" -"$out_of_gas_1748": ; preds = %"$have_gas_1744" +"$out_of_gas_1750": ; preds = %"$have_gas_1746" call void @_out_of_gas() - br label %"$have_gas_1749" + br label %"$have_gas_1751" -"$have_gas_1749": ; preds = %"$out_of_gas_1748", %"$have_gas_1744" - %"$consume_1750" = sub i64 %"$gasrem_1746", 1 - store i64 %"$consume_1750", i64* @_gasrem, align 8 +"$have_gas_1751": ; preds = %"$out_of_gas_1750", %"$have_gas_1746" + %"$consume_1752" = sub i64 %"$gasrem_1748", 1 + store i64 %"$consume_1752", i64* @_gasrem, align 8 %"$ans_76" = alloca %Int128, align 8 - %"$gasrem_1751" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1752" = icmp ugt i64 1, %"$gasrem_1751" - br i1 %"$gascmp_1752", label %"$out_of_gas_1753", label %"$have_gas_1754" + call void @llvm.dbg.declare(metadata %Int128* %"$ans_76", metadata !319, metadata !DIExpression()), !dbg !320 + %"$gasrem_1753" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1754" = icmp ugt i64 1, %"$gasrem_1753" + br i1 %"$gascmp_1754", label %"$out_of_gas_1755", label %"$have_gas_1756" -"$out_of_gas_1753": ; preds = %"$have_gas_1749" +"$out_of_gas_1755": ; preds = %"$have_gas_1751" call void @_out_of_gas() - br label %"$have_gas_1754" + br label %"$have_gas_1756" -"$have_gas_1754": ; preds = %"$out_of_gas_1753", %"$have_gas_1749" - %"$consume_1755" = sub i64 %"$gasrem_1751", 1 - store i64 %"$consume_1755", i64* @_gasrem, align 8 - store %Int128 { i128 1 }, %Int128* %"$ans_76", align 8, !dbg !109 - %"$gasrem_1756" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1757" = icmp ugt i64 1, %"$gasrem_1756" - br i1 %"$gascmp_1757", label %"$out_of_gas_1758", label %"$have_gas_1759" +"$have_gas_1756": ; preds = %"$out_of_gas_1755", %"$have_gas_1751" + %"$consume_1757" = sub i64 %"$gasrem_1753", 1 + store i64 %"$consume_1757", i64* @_gasrem, align 8 + store %Int128 { i128 1 }, %Int128* %"$ans_76", align 8, !dbg !321 + %"$gasrem_1758" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1759" = icmp ugt i64 1, %"$gasrem_1758" + br i1 %"$gascmp_1759", label %"$out_of_gas_1760", label %"$have_gas_1761" -"$out_of_gas_1758": ; preds = %"$have_gas_1754" +"$out_of_gas_1760": ; preds = %"$have_gas_1756" call void @_out_of_gas() - br label %"$have_gas_1759" + br label %"$have_gas_1761" -"$have_gas_1759": ; preds = %"$out_of_gas_1758", %"$have_gas_1754" - %"$consume_1760" = sub i64 %"$gasrem_1756", 1 - store i64 %"$consume_1760", i64* @_gasrem, align 8 +"$have_gas_1761": ; preds = %"$out_of_gas_1760", %"$have_gas_1756" + %"$consume_1762" = sub i64 %"$gasrem_1758", 1 + store i64 %"$consume_1762", i64* @_gasrem, align 8 %"$res__77" = alloca %TName_Bool*, align 8 - %"$gasrem_1762" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1763" = icmp ugt i64 8, %"$gasrem_1762" - br i1 %"$gascmp_1763", label %"$out_of_gas_1764", label %"$have_gas_1765" - -"$out_of_gas_1764": ; preds = %"$have_gas_1759" - call void @_out_of_gas() - br label %"$have_gas_1765" - -"$have_gas_1765": ; preds = %"$out_of_gas_1764", %"$have_gas_1759" - %"$consume_1766" = sub i64 %"$gasrem_1762", 8 - store i64 %"$consume_1766", i64* @_gasrem, align 8 - %"$execptr_load_1767" = load i8*, i8** @_execptr, align 8 - %"$$p_75_1768" = load %Int128, %Int128* %"$p_75", align 8 - %"$$ans_76_1769" = load %Int128, %Int128* %"$ans_76", align 8 - %"$eq_call_1770" = call %TName_Bool* @_eq_Int128(i8* %"$execptr_load_1767", %Int128 %"$$p_75_1768", %Int128 %"$$ans_76_1769"), !dbg !110 - store %TName_Bool* %"$eq_call_1770", %TName_Bool** %"$res__77", align 8, !dbg !110 - %"$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 = %"$have_gas_1765" - call void @_out_of_gas() - br label %"$have_gas_1775" - -"$have_gas_1775": ; preds = %"$out_of_gas_1774", %"$have_gas_1765" - %"$consume_1776" = sub i64 %"$gasrem_1772", 1 - store i64 %"$consume_1776", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$res__77", metadata !322, metadata !DIExpression()), !dbg !323 + %"$gasrem_1764" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1765" = icmp ugt i64 8, %"$gasrem_1764" + br i1 %"$gascmp_1765", label %"$out_of_gas_1766", label %"$have_gas_1767" + +"$out_of_gas_1766": ; preds = %"$have_gas_1761" + call void @_out_of_gas() + br label %"$have_gas_1767" + +"$have_gas_1767": ; preds = %"$out_of_gas_1766", %"$have_gas_1761" + %"$consume_1768" = sub i64 %"$gasrem_1764", 8 + store i64 %"$consume_1768", i64* @_gasrem, align 8 + %"$execptr_load_1769" = load i8*, i8** @_execptr, align 8 + %"$$p_75_1770" = load %Int128, %Int128* %"$p_75", align 8 + %"$$ans_76_1771" = load %Int128, %Int128* %"$ans_76", align 8 + %"$eq_call_1772" = call %TName_Bool* @_eq_Int128(i8* %"$execptr_load_1769", %Int128 %"$$p_75_1770", %Int128 %"$$ans_76_1771"), !dbg !324 + store %TName_Bool* %"$eq_call_1772", %TName_Bool** %"$res__77", align 8, !dbg !324 + %"$gasrem_1774" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1775" = icmp ugt i64 1, %"$gasrem_1774" + br i1 %"$gascmp_1775", label %"$out_of_gas_1776", label %"$have_gas_1777" + +"$out_of_gas_1776": ; preds = %"$have_gas_1767" + call void @_out_of_gas() + br label %"$have_gas_1777" + +"$have_gas_1777": ; preds = %"$out_of_gas_1776", %"$have_gas_1767" + %"$consume_1778" = sub i64 %"$gasrem_1774", 1 + store i64 %"$consume_1778", i64* @_gasrem, align 8 %"$BoolUtils.andb_175" = alloca { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, align 8 - %"$BoolUtils.andb_1777" = 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_1778" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_1777", 0 - %"$BoolUtils.andb_envptr_1779" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_1777", 1 - %"$$res_74_1780" = load %TName_Bool*, %TName_Bool** %"$res_74", align 8 - %"$BoolUtils.andb_call_1781" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_1778"(i8* %"$BoolUtils.andb_envptr_1779", %TName_Bool* %"$$res_74_1780"), !dbg !111 - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_1781", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_175", align 8, !dbg !111 + %"$BoolUtils.andb_1779" = 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_1780" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_1779", 0 + %"$BoolUtils.andb_envptr_1781" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_1779", 1 + %"$$res_74_1782" = load %TName_Bool*, %TName_Bool** %"$res_74", align 8 + %"$BoolUtils.andb_call_1783" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_1780"(i8* %"$BoolUtils.andb_envptr_1781", %TName_Bool* %"$$res_74_1782"), !dbg !325 + store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_1783", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_175", align 8, !dbg !325 %"$BoolUtils.andb_176" = alloca %TName_Bool*, align 8 - %"$$BoolUtils.andb_175_1782" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_175", align 8 - %"$$BoolUtils.andb_175_fptr_1783" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_175_1782", 0 - %"$$BoolUtils.andb_175_envptr_1784" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_175_1782", 1 - %"$$res__77_1785" = load %TName_Bool*, %TName_Bool** %"$res__77", align 8 - %"$$BoolUtils.andb_175_call_1786" = call %TName_Bool* %"$$BoolUtils.andb_175_fptr_1783"(i8* %"$$BoolUtils.andb_175_envptr_1784", %TName_Bool* %"$$res__77_1785"), !dbg !111 - store %TName_Bool* %"$$BoolUtils.andb_175_call_1786", %TName_Bool** %"$BoolUtils.andb_176", align 8, !dbg !111 - %"$$BoolUtils.andb_176_1787" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_176", align 8 - store %TName_Bool* %"$$BoolUtils.andb_176_1787", %TName_Bool** %"$res_78", align 8, !dbg !111 - %"$gasrem_1788" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1789" = icmp ugt i64 1, %"$gasrem_1788" - br i1 %"$gascmp_1789", label %"$out_of_gas_1790", label %"$have_gas_1791" - -"$out_of_gas_1790": ; preds = %"$have_gas_1775" - call void @_out_of_gas() - br label %"$have_gas_1791" - -"$have_gas_1791": ; preds = %"$out_of_gas_1790", %"$have_gas_1775" - %"$consume_1792" = sub i64 %"$gasrem_1788", 1 - store i64 %"$consume_1792", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$BoolUtils.andb_176", metadata !326, metadata !DIExpression()), !dbg !325 + %"$$BoolUtils.andb_175_1784" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_175", align 8 + %"$$BoolUtils.andb_175_fptr_1785" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_175_1784", 0 + %"$$BoolUtils.andb_175_envptr_1786" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_175_1784", 1 + %"$$res__77_1787" = load %TName_Bool*, %TName_Bool** %"$res__77", align 8 + %"$$BoolUtils.andb_175_call_1788" = call %TName_Bool* %"$$BoolUtils.andb_175_fptr_1785"(i8* %"$$BoolUtils.andb_175_envptr_1786", %TName_Bool* %"$$res__77_1787"), !dbg !325 + store %TName_Bool* %"$$BoolUtils.andb_175_call_1788", %TName_Bool** %"$BoolUtils.andb_176", align 8, !dbg !325 + %"$$BoolUtils.andb_176_1789" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_176", align 8 + store %TName_Bool* %"$$BoolUtils.andb_176_1789", %TName_Bool** %"$res_78", align 8, !dbg !325 + %"$gasrem_1790" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1791" = icmp ugt i64 1, %"$gasrem_1790" + br i1 %"$gascmp_1791", label %"$out_of_gas_1792", label %"$have_gas_1793" + +"$out_of_gas_1792": ; preds = %"$have_gas_1777" + call void @_out_of_gas() + br label %"$have_gas_1793" + +"$have_gas_1793": ; preds = %"$out_of_gas_1792", %"$have_gas_1777" + %"$consume_1794" = sub i64 %"$gasrem_1790", 1 + store i64 %"$consume_1794", i64* @_gasrem, align 8 %"$p_79" = alloca %Int128, align 8 - %"$p2_1793" = load %Uint32, %Uint32* %p2, align 4 - %"$valueof_1794" = extractvalue %Uint32 %"$p2_1793", 0 - %"$valueof_1795" = zext i32 %"$valueof_1794" to i64 - %"$gaslogof_1796" = uitofp i64 %"$valueof_1795" to double - %"$gaslogof_1797" = fadd double %"$gaslogof_1796", 1.000000e+00 - %"$gaslogof_1798" = call double @llvm.log.f64(double %"$gaslogof_1797") - %"$gaslogof_1799" = fptoui double %"$gaslogof_1798" to i64 - %"$gaslogof_1800" = add i64 %"$gaslogof_1799", 1 - %"$gasmul_1801" = mul i64 20, %"$gaslogof_1800" - %"$gasmul_1802" = mul i64 %"$gasmul_1801", 2 - %"$gasrem_1803" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1804" = icmp ugt i64 %"$gasmul_1802", %"$gasrem_1803" - br i1 %"$gascmp_1804", label %"$out_of_gas_1805", label %"$have_gas_1806" - -"$out_of_gas_1805": ; preds = %"$have_gas_1791" - call void @_out_of_gas() - br label %"$have_gas_1806" - -"$have_gas_1806": ; preds = %"$out_of_gas_1805", %"$have_gas_1791" - %"$consume_1807" = sub i64 %"$gasrem_1803", %"$gasmul_1802" - store i64 %"$consume_1807", i64* @_gasrem, align 8 - %"$t6_1808" = load %Int128, %Int128* %t6, align 8 - %"$p2_1809" = load %Uint32, %Uint32* %p2, align 4 - %"$pow_call_1810" = call %Int128 @_pow_Int128(%Int128 %"$t6_1808", %Uint32 %"$p2_1809"), !dbg !112 - store %Int128 %"$pow_call_1810", %Int128* %"$p_79", align 8, !dbg !112 - %"$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_1806" - call void @_out_of_gas() - br label %"$have_gas_1814" - -"$have_gas_1814": ; preds = %"$out_of_gas_1813", %"$have_gas_1806" - %"$consume_1815" = sub i64 %"$gasrem_1811", 1 - store i64 %"$consume_1815", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %Int128* %"$p_79", metadata !327, metadata !DIExpression()), !dbg !328 + %"$p2_1795" = load %Uint32, %Uint32* %p2, align 4 + %"$valueof_1796" = extractvalue %Uint32 %"$p2_1795", 0 + %"$valueof_1797" = zext i32 %"$valueof_1796" to i64 + %"$gaslogof_1798" = uitofp i64 %"$valueof_1797" to double + %"$gaslogof_1799" = fadd double %"$gaslogof_1798", 1.000000e+00 + %"$gaslogof_1800" = call double @llvm.log.f64(double %"$gaslogof_1799") + %"$gaslogof_1801" = fptoui double %"$gaslogof_1800" to i64 + %"$gaslogof_1802" = add i64 %"$gaslogof_1801", 1 + %"$gasmul_1803" = mul i64 20, %"$gaslogof_1802" + %"$gasmul_1804" = mul i64 %"$gasmul_1803", 2 + %"$gasrem_1805" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1806" = icmp ugt i64 %"$gasmul_1804", %"$gasrem_1805" + br i1 %"$gascmp_1806", label %"$out_of_gas_1807", label %"$have_gas_1808" + +"$out_of_gas_1807": ; preds = %"$have_gas_1793" + call void @_out_of_gas() + br label %"$have_gas_1808" + +"$have_gas_1808": ; preds = %"$out_of_gas_1807", %"$have_gas_1793" + %"$consume_1809" = sub i64 %"$gasrem_1805", %"$gasmul_1804" + store i64 %"$consume_1809", i64* @_gasrem, align 8 + %"$t6_1810" = load %Int128, %Int128* %t6, align 8 + %"$p2_1811" = load %Uint32, %Uint32* %p2, align 4 + %"$pow_call_1812" = call %Int128 @_pow_Int128(%Int128 %"$t6_1810", %Uint32 %"$p2_1811"), !dbg !329 + store %Int128 %"$pow_call_1812", %Int128* %"$p_79", align 8, !dbg !329 + %"$gasrem_1813" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1814" = icmp ugt i64 1, %"$gasrem_1813" + br i1 %"$gascmp_1814", label %"$out_of_gas_1815", label %"$have_gas_1816" + +"$out_of_gas_1815": ; preds = %"$have_gas_1808" + call void @_out_of_gas() + br label %"$have_gas_1816" + +"$have_gas_1816": ; preds = %"$out_of_gas_1815", %"$have_gas_1808" + %"$consume_1817" = sub i64 %"$gasrem_1813", 1 + store i64 %"$consume_1817", i64* @_gasrem, align 8 %"$res_82" = alloca %TName_Bool*, align 8 - %"$gasrem_1816" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1817" = icmp ugt i64 1, %"$gasrem_1816" - br i1 %"$gascmp_1817", label %"$out_of_gas_1818", label %"$have_gas_1819" + call void @llvm.dbg.declare(metadata %TName_Bool** %"$res_82", metadata !330, metadata !DIExpression()), !dbg !331 + %"$gasrem_1818" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1819" = icmp ugt i64 1, %"$gasrem_1818" + br i1 %"$gascmp_1819", label %"$out_of_gas_1820", label %"$have_gas_1821" -"$out_of_gas_1818": ; preds = %"$have_gas_1814" +"$out_of_gas_1820": ; preds = %"$have_gas_1816" call void @_out_of_gas() - br label %"$have_gas_1819" + br label %"$have_gas_1821" -"$have_gas_1819": ; preds = %"$out_of_gas_1818", %"$have_gas_1814" - %"$consume_1820" = sub i64 %"$gasrem_1816", 1 - store i64 %"$consume_1820", i64* @_gasrem, align 8 +"$have_gas_1821": ; preds = %"$out_of_gas_1820", %"$have_gas_1816" + %"$consume_1822" = sub i64 %"$gasrem_1818", 1 + store i64 %"$consume_1822", i64* @_gasrem, align 8 %"$ans_80" = alloca %Int128, align 8 - %"$gasrem_1821" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1822" = icmp ugt i64 1, %"$gasrem_1821" - br i1 %"$gascmp_1822", label %"$out_of_gas_1823", label %"$have_gas_1824" + call void @llvm.dbg.declare(metadata %Int128* %"$ans_80", metadata !332, metadata !DIExpression()), !dbg !333 + %"$gasrem_1823" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1824" = icmp ugt i64 1, %"$gasrem_1823" + br i1 %"$gascmp_1824", label %"$out_of_gas_1825", label %"$have_gas_1826" -"$out_of_gas_1823": ; preds = %"$have_gas_1819" +"$out_of_gas_1825": ; preds = %"$have_gas_1821" call void @_out_of_gas() - br label %"$have_gas_1824" + br label %"$have_gas_1826" -"$have_gas_1824": ; preds = %"$out_of_gas_1823", %"$have_gas_1819" - %"$consume_1825" = sub i64 %"$gasrem_1821", 1 - store i64 %"$consume_1825", i64* @_gasrem, align 8 - store %Int128 { i128 501 }, %Int128* %"$ans_80", align 8, !dbg !113 - %"$gasrem_1826" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1827" = icmp ugt i64 1, %"$gasrem_1826" - br i1 %"$gascmp_1827", label %"$out_of_gas_1828", label %"$have_gas_1829" +"$have_gas_1826": ; preds = %"$out_of_gas_1825", %"$have_gas_1821" + %"$consume_1827" = sub i64 %"$gasrem_1823", 1 + store i64 %"$consume_1827", i64* @_gasrem, align 8 + store %Int128 { i128 501 }, %Int128* %"$ans_80", align 8, !dbg !334 + %"$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" -"$out_of_gas_1828": ; preds = %"$have_gas_1824" +"$out_of_gas_1830": ; preds = %"$have_gas_1826" call void @_out_of_gas() - br label %"$have_gas_1829" + br label %"$have_gas_1831" -"$have_gas_1829": ; preds = %"$out_of_gas_1828", %"$have_gas_1824" - %"$consume_1830" = sub i64 %"$gasrem_1826", 1 - store i64 %"$consume_1830", i64* @_gasrem, align 8 +"$have_gas_1831": ; preds = %"$out_of_gas_1830", %"$have_gas_1826" + %"$consume_1832" = sub i64 %"$gasrem_1828", 1 + store i64 %"$consume_1832", i64* @_gasrem, align 8 %"$res__81" = alloca %TName_Bool*, align 8 - %"$gasrem_1832" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1833" = icmp ugt i64 8, %"$gasrem_1832" - br i1 %"$gascmp_1833", label %"$out_of_gas_1834", label %"$have_gas_1835" - -"$out_of_gas_1834": ; preds = %"$have_gas_1829" - call void @_out_of_gas() - br label %"$have_gas_1835" - -"$have_gas_1835": ; preds = %"$out_of_gas_1834", %"$have_gas_1829" - %"$consume_1836" = sub i64 %"$gasrem_1832", 8 - store i64 %"$consume_1836", i64* @_gasrem, align 8 - %"$execptr_load_1837" = load i8*, i8** @_execptr, align 8 - %"$$p_79_1838" = load %Int128, %Int128* %"$p_79", align 8 - %"$$ans_80_1839" = load %Int128, %Int128* %"$ans_80", align 8 - %"$eq_call_1840" = call %TName_Bool* @_eq_Int128(i8* %"$execptr_load_1837", %Int128 %"$$p_79_1838", %Int128 %"$$ans_80_1839"), !dbg !114 - store %TName_Bool* %"$eq_call_1840", %TName_Bool** %"$res__81", align 8, !dbg !114 - %"$gasrem_1842" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1843" = icmp ugt i64 1, %"$gasrem_1842" - br i1 %"$gascmp_1843", label %"$out_of_gas_1844", label %"$have_gas_1845" - -"$out_of_gas_1844": ; preds = %"$have_gas_1835" - call void @_out_of_gas() - br label %"$have_gas_1845" - -"$have_gas_1845": ; preds = %"$out_of_gas_1844", %"$have_gas_1835" - %"$consume_1846" = sub i64 %"$gasrem_1842", 1 - store i64 %"$consume_1846", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$res__81", metadata !335, metadata !DIExpression()), !dbg !336 + %"$gasrem_1834" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1835" = icmp ugt i64 8, %"$gasrem_1834" + br i1 %"$gascmp_1835", label %"$out_of_gas_1836", label %"$have_gas_1837" + +"$out_of_gas_1836": ; preds = %"$have_gas_1831" + call void @_out_of_gas() + br label %"$have_gas_1837" + +"$have_gas_1837": ; preds = %"$out_of_gas_1836", %"$have_gas_1831" + %"$consume_1838" = sub i64 %"$gasrem_1834", 8 + store i64 %"$consume_1838", i64* @_gasrem, align 8 + %"$execptr_load_1839" = load i8*, i8** @_execptr, align 8 + %"$$p_79_1840" = load %Int128, %Int128* %"$p_79", align 8 + %"$$ans_80_1841" = load %Int128, %Int128* %"$ans_80", align 8 + %"$eq_call_1842" = call %TName_Bool* @_eq_Int128(i8* %"$execptr_load_1839", %Int128 %"$$p_79_1840", %Int128 %"$$ans_80_1841"), !dbg !337 + store %TName_Bool* %"$eq_call_1842", %TName_Bool** %"$res__81", align 8, !dbg !337 + %"$gasrem_1844" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1845" = icmp ugt i64 1, %"$gasrem_1844" + br i1 %"$gascmp_1845", label %"$out_of_gas_1846", label %"$have_gas_1847" + +"$out_of_gas_1846": ; preds = %"$have_gas_1837" + call void @_out_of_gas() + br label %"$have_gas_1847" + +"$have_gas_1847": ; preds = %"$out_of_gas_1846", %"$have_gas_1837" + %"$consume_1848" = sub i64 %"$gasrem_1844", 1 + store i64 %"$consume_1848", i64* @_gasrem, align 8 %"$BoolUtils.andb_177" = alloca { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, align 8 - %"$BoolUtils.andb_1847" = 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_1848" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_1847", 0 - %"$BoolUtils.andb_envptr_1849" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_1847", 1 - %"$$res_78_1850" = load %TName_Bool*, %TName_Bool** %"$res_78", align 8 - %"$BoolUtils.andb_call_1851" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_1848"(i8* %"$BoolUtils.andb_envptr_1849", %TName_Bool* %"$$res_78_1850"), !dbg !115 - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_1851", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_177", align 8, !dbg !115 + %"$BoolUtils.andb_1849" = 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_1850" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_1849", 0 + %"$BoolUtils.andb_envptr_1851" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_1849", 1 + %"$$res_78_1852" = load %TName_Bool*, %TName_Bool** %"$res_78", align 8 + %"$BoolUtils.andb_call_1853" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_1850"(i8* %"$BoolUtils.andb_envptr_1851", %TName_Bool* %"$$res_78_1852"), !dbg !338 + store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_1853", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_177", align 8, !dbg !338 %"$BoolUtils.andb_178" = alloca %TName_Bool*, align 8 - %"$$BoolUtils.andb_177_1852" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_177", align 8 - %"$$BoolUtils.andb_177_fptr_1853" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_177_1852", 0 - %"$$BoolUtils.andb_177_envptr_1854" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_177_1852", 1 - %"$$res__81_1855" = load %TName_Bool*, %TName_Bool** %"$res__81", align 8 - %"$$BoolUtils.andb_177_call_1856" = call %TName_Bool* %"$$BoolUtils.andb_177_fptr_1853"(i8* %"$$BoolUtils.andb_177_envptr_1854", %TName_Bool* %"$$res__81_1855"), !dbg !115 - store %TName_Bool* %"$$BoolUtils.andb_177_call_1856", %TName_Bool** %"$BoolUtils.andb_178", align 8, !dbg !115 - %"$$BoolUtils.andb_178_1857" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_178", align 8 - store %TName_Bool* %"$$BoolUtils.andb_178_1857", %TName_Bool** %"$res_82", align 8, !dbg !115 - %"$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 = %"$have_gas_1845" - call void @_out_of_gas() - br label %"$have_gas_1861" - -"$have_gas_1861": ; preds = %"$out_of_gas_1860", %"$have_gas_1845" - %"$consume_1862" = sub i64 %"$gasrem_1858", 1 - store i64 %"$consume_1862", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$BoolUtils.andb_178", metadata !339, metadata !DIExpression()), !dbg !338 + %"$$BoolUtils.andb_177_1854" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_177", align 8 + %"$$BoolUtils.andb_177_fptr_1855" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_177_1854", 0 + %"$$BoolUtils.andb_177_envptr_1856" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_177_1854", 1 + %"$$res__81_1857" = load %TName_Bool*, %TName_Bool** %"$res__81", align 8 + %"$$BoolUtils.andb_177_call_1858" = call %TName_Bool* %"$$BoolUtils.andb_177_fptr_1855"(i8* %"$$BoolUtils.andb_177_envptr_1856", %TName_Bool* %"$$res__81_1857"), !dbg !338 + store %TName_Bool* %"$$BoolUtils.andb_177_call_1858", %TName_Bool** %"$BoolUtils.andb_178", align 8, !dbg !338 + %"$$BoolUtils.andb_178_1859" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_178", align 8 + store %TName_Bool* %"$$BoolUtils.andb_178_1859", %TName_Bool** %"$res_82", align 8, !dbg !338 + %"$gasrem_1860" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1861" = icmp ugt i64 1, %"$gasrem_1860" + br i1 %"$gascmp_1861", label %"$out_of_gas_1862", label %"$have_gas_1863" + +"$out_of_gas_1862": ; preds = %"$have_gas_1847" + call void @_out_of_gas() + br label %"$have_gas_1863" + +"$have_gas_1863": ; preds = %"$out_of_gas_1862", %"$have_gas_1847" + %"$consume_1864" = sub i64 %"$gasrem_1860", 1 + store i64 %"$consume_1864", i64* @_gasrem, align 8 %"$p_83" = alloca %Int128, align 8 - %"$p3_1863" = load %Uint32, %Uint32* %p3, align 4 - %"$valueof_1864" = extractvalue %Uint32 %"$p3_1863", 0 - %"$valueof_1865" = zext i32 %"$valueof_1864" to i64 - %"$gaslogof_1866" = uitofp i64 %"$valueof_1865" to double - %"$gaslogof_1867" = fadd double %"$gaslogof_1866", 1.000000e+00 - %"$gaslogof_1868" = call double @llvm.log.f64(double %"$gaslogof_1867") - %"$gaslogof_1869" = fptoui double %"$gaslogof_1868" to i64 - %"$gaslogof_1870" = add i64 %"$gaslogof_1869", 1 - %"$gasmul_1871" = mul i64 20, %"$gaslogof_1870" - %"$gasmul_1872" = mul i64 %"$gasmul_1871", 2 - %"$gasrem_1873" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1874" = icmp ugt i64 %"$gasmul_1872", %"$gasrem_1873" - br i1 %"$gascmp_1874", label %"$out_of_gas_1875", label %"$have_gas_1876" - -"$out_of_gas_1875": ; preds = %"$have_gas_1861" - call void @_out_of_gas() - br label %"$have_gas_1876" - -"$have_gas_1876": ; preds = %"$out_of_gas_1875", %"$have_gas_1861" - %"$consume_1877" = sub i64 %"$gasrem_1873", %"$gasmul_1872" - store i64 %"$consume_1877", i64* @_gasrem, align 8 - %"$t6_1878" = load %Int128, %Int128* %t6, align 8 - %"$p3_1879" = load %Uint32, %Uint32* %p3, align 4 - %"$pow_call_1880" = call %Int128 @_pow_Int128(%Int128 %"$t6_1878", %Uint32 %"$p3_1879"), !dbg !116 - store %Int128 %"$pow_call_1880", %Int128* %"$p_83", align 8, !dbg !116 - %"$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_1883": ; preds = %"$have_gas_1876" - call void @_out_of_gas() - br label %"$have_gas_1884" - -"$have_gas_1884": ; preds = %"$out_of_gas_1883", %"$have_gas_1876" - %"$consume_1885" = sub i64 %"$gasrem_1881", 1 - store i64 %"$consume_1885", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %Int128* %"$p_83", metadata !340, metadata !DIExpression()), !dbg !341 + %"$p3_1865" = load %Uint32, %Uint32* %p3, align 4 + %"$valueof_1866" = extractvalue %Uint32 %"$p3_1865", 0 + %"$valueof_1867" = zext i32 %"$valueof_1866" to i64 + %"$gaslogof_1868" = uitofp i64 %"$valueof_1867" to double + %"$gaslogof_1869" = fadd double %"$gaslogof_1868", 1.000000e+00 + %"$gaslogof_1870" = call double @llvm.log.f64(double %"$gaslogof_1869") + %"$gaslogof_1871" = fptoui double %"$gaslogof_1870" to i64 + %"$gaslogof_1872" = add i64 %"$gaslogof_1871", 1 + %"$gasmul_1873" = mul i64 20, %"$gaslogof_1872" + %"$gasmul_1874" = mul i64 %"$gasmul_1873", 2 + %"$gasrem_1875" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1876" = icmp ugt i64 %"$gasmul_1874", %"$gasrem_1875" + br i1 %"$gascmp_1876", label %"$out_of_gas_1877", label %"$have_gas_1878" + +"$out_of_gas_1877": ; preds = %"$have_gas_1863" + call void @_out_of_gas() + br label %"$have_gas_1878" + +"$have_gas_1878": ; preds = %"$out_of_gas_1877", %"$have_gas_1863" + %"$consume_1879" = sub i64 %"$gasrem_1875", %"$gasmul_1874" + store i64 %"$consume_1879", i64* @_gasrem, align 8 + %"$t6_1880" = load %Int128, %Int128* %t6, align 8 + %"$p3_1881" = load %Uint32, %Uint32* %p3, align 4 + %"$pow_call_1882" = call %Int128 @_pow_Int128(%Int128 %"$t6_1880", %Uint32 %"$p3_1881"), !dbg !342 + store %Int128 %"$pow_call_1882", %Int128* %"$p_83", align 8, !dbg !342 + %"$gasrem_1883" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1884" = icmp ugt i64 1, %"$gasrem_1883" + br i1 %"$gascmp_1884", label %"$out_of_gas_1885", label %"$have_gas_1886" + +"$out_of_gas_1885": ; preds = %"$have_gas_1878" + call void @_out_of_gas() + br label %"$have_gas_1886" + +"$have_gas_1886": ; preds = %"$out_of_gas_1885", %"$have_gas_1878" + %"$consume_1887" = sub i64 %"$gasrem_1883", 1 + store i64 %"$consume_1887", i64* @_gasrem, align 8 %"$res_86" = alloca %TName_Bool*, 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" + call void @llvm.dbg.declare(metadata %TName_Bool** %"$res_86", metadata !343, metadata !DIExpression()), !dbg !344 + %"$gasrem_1888" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1889" = icmp ugt i64 1, %"$gasrem_1888" + br i1 %"$gascmp_1889", label %"$out_of_gas_1890", label %"$have_gas_1891" -"$out_of_gas_1888": ; preds = %"$have_gas_1884" +"$out_of_gas_1890": ; preds = %"$have_gas_1886" call void @_out_of_gas() - br label %"$have_gas_1889" + br label %"$have_gas_1891" -"$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 +"$have_gas_1891": ; preds = %"$out_of_gas_1890", %"$have_gas_1886" + %"$consume_1892" = sub i64 %"$gasrem_1888", 1 + store i64 %"$consume_1892", i64* @_gasrem, align 8 %"$ans_84" = alloca %Int128, align 8 - %"$gasrem_1891" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1892" = icmp ugt i64 1, %"$gasrem_1891" - br i1 %"$gascmp_1892", label %"$out_of_gas_1893", label %"$have_gas_1894" + call void @llvm.dbg.declare(metadata %Int128* %"$ans_84", metadata !345, metadata !DIExpression()), !dbg !346 + %"$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" -"$out_of_gas_1893": ; preds = %"$have_gas_1889" +"$out_of_gas_1895": ; preds = %"$have_gas_1891" call void @_out_of_gas() - br label %"$have_gas_1894" + br label %"$have_gas_1896" -"$have_gas_1894": ; preds = %"$out_of_gas_1893", %"$have_gas_1889" - %"$consume_1895" = sub i64 %"$gasrem_1891", 1 - store i64 %"$consume_1895", i64* @_gasrem, align 8 - store %Int128 { i128 63001502001 }, %Int128* %"$ans_84", align 8, !dbg !117 - %"$gasrem_1896" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1897" = icmp ugt i64 1, %"$gasrem_1896" - br i1 %"$gascmp_1897", label %"$out_of_gas_1898", label %"$have_gas_1899" +"$have_gas_1896": ; preds = %"$out_of_gas_1895", %"$have_gas_1891" + %"$consume_1897" = sub i64 %"$gasrem_1893", 1 + store i64 %"$consume_1897", i64* @_gasrem, align 8 + store %Int128 { i128 63001502001 }, %Int128* %"$ans_84", align 8, !dbg !347 + %"$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" -"$out_of_gas_1898": ; preds = %"$have_gas_1894" +"$out_of_gas_1900": ; preds = %"$have_gas_1896" call void @_out_of_gas() - br label %"$have_gas_1899" + br label %"$have_gas_1901" -"$have_gas_1899": ; preds = %"$out_of_gas_1898", %"$have_gas_1894" - %"$consume_1900" = sub i64 %"$gasrem_1896", 1 - store i64 %"$consume_1900", i64* @_gasrem, align 8 +"$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 %"$res__85" = alloca %TName_Bool*, align 8 - %"$gasrem_1902" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1903" = icmp ugt i64 8, %"$gasrem_1902" - br i1 %"$gascmp_1903", label %"$out_of_gas_1904", label %"$have_gas_1905" - -"$out_of_gas_1904": ; preds = %"$have_gas_1899" - call void @_out_of_gas() - br label %"$have_gas_1905" - -"$have_gas_1905": ; preds = %"$out_of_gas_1904", %"$have_gas_1899" - %"$consume_1906" = sub i64 %"$gasrem_1902", 8 - store i64 %"$consume_1906", i64* @_gasrem, align 8 - %"$execptr_load_1907" = load i8*, i8** @_execptr, align 8 - %"$$p_83_1908" = load %Int128, %Int128* %"$p_83", align 8 - %"$$ans_84_1909" = load %Int128, %Int128* %"$ans_84", align 8 - %"$eq_call_1910" = call %TName_Bool* @_eq_Int128(i8* %"$execptr_load_1907", %Int128 %"$$p_83_1908", %Int128 %"$$ans_84_1909"), !dbg !118 - store %TName_Bool* %"$eq_call_1910", %TName_Bool** %"$res__85", align 8, !dbg !118 - %"$gasrem_1912" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1913" = icmp ugt i64 1, %"$gasrem_1912" - br i1 %"$gascmp_1913", label %"$out_of_gas_1914", label %"$have_gas_1915" - -"$out_of_gas_1914": ; preds = %"$have_gas_1905" - call void @_out_of_gas() - br label %"$have_gas_1915" - -"$have_gas_1915": ; preds = %"$out_of_gas_1914", %"$have_gas_1905" - %"$consume_1916" = sub i64 %"$gasrem_1912", 1 - store i64 %"$consume_1916", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$res__85", metadata !348, metadata !DIExpression()), !dbg !349 + %"$gasrem_1904" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1905" = icmp ugt i64 8, %"$gasrem_1904" + br i1 %"$gascmp_1905", label %"$out_of_gas_1906", label %"$have_gas_1907" + +"$out_of_gas_1906": ; preds = %"$have_gas_1901" + call void @_out_of_gas() + br label %"$have_gas_1907" + +"$have_gas_1907": ; preds = %"$out_of_gas_1906", %"$have_gas_1901" + %"$consume_1908" = sub i64 %"$gasrem_1904", 8 + store i64 %"$consume_1908", i64* @_gasrem, align 8 + %"$execptr_load_1909" = load i8*, i8** @_execptr, align 8 + %"$$p_83_1910" = load %Int128, %Int128* %"$p_83", align 8 + %"$$ans_84_1911" = load %Int128, %Int128* %"$ans_84", align 8 + %"$eq_call_1912" = call %TName_Bool* @_eq_Int128(i8* %"$execptr_load_1909", %Int128 %"$$p_83_1910", %Int128 %"$$ans_84_1911"), !dbg !350 + store %TName_Bool* %"$eq_call_1912", %TName_Bool** %"$res__85", align 8, !dbg !350 + %"$gasrem_1914" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1915" = icmp ugt i64 1, %"$gasrem_1914" + br i1 %"$gascmp_1915", label %"$out_of_gas_1916", label %"$have_gas_1917" + +"$out_of_gas_1916": ; preds = %"$have_gas_1907" + call void @_out_of_gas() + br label %"$have_gas_1917" + +"$have_gas_1917": ; preds = %"$out_of_gas_1916", %"$have_gas_1907" + %"$consume_1918" = sub i64 %"$gasrem_1914", 1 + store i64 %"$consume_1918", i64* @_gasrem, align 8 %"$BoolUtils.andb_179" = alloca { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, align 8 - %"$BoolUtils.andb_1917" = 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_1918" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_1917", 0 - %"$BoolUtils.andb_envptr_1919" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_1917", 1 - %"$$res_82_1920" = load %TName_Bool*, %TName_Bool** %"$res_82", align 8 - %"$BoolUtils.andb_call_1921" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_1918"(i8* %"$BoolUtils.andb_envptr_1919", %TName_Bool* %"$$res_82_1920"), !dbg !119 - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_1921", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_179", align 8, !dbg !119 + %"$BoolUtils.andb_1919" = 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_1920" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_1919", 0 + %"$BoolUtils.andb_envptr_1921" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_1919", 1 + %"$$res_82_1922" = load %TName_Bool*, %TName_Bool** %"$res_82", align 8 + %"$BoolUtils.andb_call_1923" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_1920"(i8* %"$BoolUtils.andb_envptr_1921", %TName_Bool* %"$$res_82_1922"), !dbg !351 + store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_1923", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_179", align 8, !dbg !351 %"$BoolUtils.andb_180" = alloca %TName_Bool*, align 8 - %"$$BoolUtils.andb_179_1922" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_179", align 8 - %"$$BoolUtils.andb_179_fptr_1923" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_179_1922", 0 - %"$$BoolUtils.andb_179_envptr_1924" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_179_1922", 1 - %"$$res__85_1925" = load %TName_Bool*, %TName_Bool** %"$res__85", align 8 - %"$$BoolUtils.andb_179_call_1926" = call %TName_Bool* %"$$BoolUtils.andb_179_fptr_1923"(i8* %"$$BoolUtils.andb_179_envptr_1924", %TName_Bool* %"$$res__85_1925"), !dbg !119 - store %TName_Bool* %"$$BoolUtils.andb_179_call_1926", %TName_Bool** %"$BoolUtils.andb_180", align 8, !dbg !119 - %"$$BoolUtils.andb_180_1927" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_180", align 8 - store %TName_Bool* %"$$BoolUtils.andb_180_1927", %TName_Bool** %"$res_86", align 8, !dbg !119 - %"$gasrem_1928" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1929" = icmp ugt i64 1, %"$gasrem_1928" - br i1 %"$gascmp_1929", label %"$out_of_gas_1930", label %"$have_gas_1931" - -"$out_of_gas_1930": ; preds = %"$have_gas_1915" - call void @_out_of_gas() - br label %"$have_gas_1931" - -"$have_gas_1931": ; preds = %"$out_of_gas_1930", %"$have_gas_1915" - %"$consume_1932" = sub i64 %"$gasrem_1928", 1 - store i64 %"$consume_1932", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$BoolUtils.andb_180", metadata !352, metadata !DIExpression()), !dbg !351 + %"$$BoolUtils.andb_179_1924" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_179", align 8 + %"$$BoolUtils.andb_179_fptr_1925" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_179_1924", 0 + %"$$BoolUtils.andb_179_envptr_1926" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_179_1924", 1 + %"$$res__85_1927" = load %TName_Bool*, %TName_Bool** %"$res__85", align 8 + %"$$BoolUtils.andb_179_call_1928" = call %TName_Bool* %"$$BoolUtils.andb_179_fptr_1925"(i8* %"$$BoolUtils.andb_179_envptr_1926", %TName_Bool* %"$$res__85_1927"), !dbg !351 + store %TName_Bool* %"$$BoolUtils.andb_179_call_1928", %TName_Bool** %"$BoolUtils.andb_180", align 8, !dbg !351 + %"$$BoolUtils.andb_180_1929" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_180", align 8 + store %TName_Bool* %"$$BoolUtils.andb_180_1929", %TName_Bool** %"$res_86", align 8, !dbg !351 + %"$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_1932": ; preds = %"$have_gas_1917" + call void @_out_of_gas() + br label %"$have_gas_1933" + +"$have_gas_1933": ; preds = %"$out_of_gas_1932", %"$have_gas_1917" + %"$consume_1934" = sub i64 %"$gasrem_1930", 1 + store i64 %"$consume_1934", i64* @_gasrem, align 8 %"$p_87" = alloca %Int128, align 8 - %"$p4_1933" = load %Uint32, %Uint32* %p4, align 4 - %"$valueof_1934" = extractvalue %Uint32 %"$p4_1933", 0 - %"$valueof_1935" = zext i32 %"$valueof_1934" to i64 - %"$gaslogof_1936" = uitofp i64 %"$valueof_1935" to double - %"$gaslogof_1937" = fadd double %"$gaslogof_1936", 1.000000e+00 - %"$gaslogof_1938" = call double @llvm.log.f64(double %"$gaslogof_1937") - %"$gaslogof_1939" = fptoui double %"$gaslogof_1938" to i64 - %"$gaslogof_1940" = add i64 %"$gaslogof_1939", 1 - %"$gasmul_1941" = mul i64 20, %"$gaslogof_1940" - %"$gasmul_1942" = mul i64 %"$gasmul_1941", 2 - %"$gasrem_1943" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1944" = icmp ugt i64 %"$gasmul_1942", %"$gasrem_1943" - br i1 %"$gascmp_1944", label %"$out_of_gas_1945", label %"$have_gas_1946" - -"$out_of_gas_1945": ; preds = %"$have_gas_1931" - call void @_out_of_gas() - br label %"$have_gas_1946" - -"$have_gas_1946": ; preds = %"$out_of_gas_1945", %"$have_gas_1931" - %"$consume_1947" = sub i64 %"$gasrem_1943", %"$gasmul_1942" - store i64 %"$consume_1947", i64* @_gasrem, align 8 - %"$t6_1948" = load %Int128, %Int128* %t6, align 8 - %"$p4_1949" = load %Uint32, %Uint32* %p4, align 4 - %"$pow_call_1950" = call %Int128 @_pow_Int128(%Int128 %"$t6_1948", %Uint32 %"$p4_1949"), !dbg !120 - store %Int128 %"$pow_call_1950", %Int128* %"$p_87", align 8, !dbg !120 - %"$gasrem_1951" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1952" = icmp ugt i64 1, %"$gasrem_1951" - br i1 %"$gascmp_1952", label %"$out_of_gas_1953", label %"$have_gas_1954" - -"$out_of_gas_1953": ; preds = %"$have_gas_1946" - call void @_out_of_gas() - br label %"$have_gas_1954" - -"$have_gas_1954": ; preds = %"$out_of_gas_1953", %"$have_gas_1946" - %"$consume_1955" = sub i64 %"$gasrem_1951", 1 - store i64 %"$consume_1955", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %Int128* %"$p_87", metadata !353, metadata !DIExpression()), !dbg !354 + %"$p4_1935" = load %Uint32, %Uint32* %p4, align 4 + %"$valueof_1936" = extractvalue %Uint32 %"$p4_1935", 0 + %"$valueof_1937" = zext i32 %"$valueof_1936" to i64 + %"$gaslogof_1938" = uitofp i64 %"$valueof_1937" to double + %"$gaslogof_1939" = fadd double %"$gaslogof_1938", 1.000000e+00 + %"$gaslogof_1940" = call double @llvm.log.f64(double %"$gaslogof_1939") + %"$gaslogof_1941" = fptoui double %"$gaslogof_1940" to i64 + %"$gaslogof_1942" = add i64 %"$gaslogof_1941", 1 + %"$gasmul_1943" = mul i64 20, %"$gaslogof_1942" + %"$gasmul_1944" = mul i64 %"$gasmul_1943", 2 + %"$gasrem_1945" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1946" = icmp ugt i64 %"$gasmul_1944", %"$gasrem_1945" + br i1 %"$gascmp_1946", label %"$out_of_gas_1947", label %"$have_gas_1948" + +"$out_of_gas_1947": ; preds = %"$have_gas_1933" + call void @_out_of_gas() + br label %"$have_gas_1948" + +"$have_gas_1948": ; preds = %"$out_of_gas_1947", %"$have_gas_1933" + %"$consume_1949" = sub i64 %"$gasrem_1945", %"$gasmul_1944" + store i64 %"$consume_1949", i64* @_gasrem, align 8 + %"$t6_1950" = load %Int128, %Int128* %t6, align 8 + %"$p4_1951" = load %Uint32, %Uint32* %p4, align 4 + %"$pow_call_1952" = call %Int128 @_pow_Int128(%Int128 %"$t6_1950", %Uint32 %"$p4_1951"), !dbg !355 + store %Int128 %"$pow_call_1952", %Int128* %"$p_87", align 8, !dbg !355 + %"$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" + +"$out_of_gas_1955": ; preds = %"$have_gas_1948" + call void @_out_of_gas() + br label %"$have_gas_1956" + +"$have_gas_1956": ; preds = %"$out_of_gas_1955", %"$have_gas_1948" + %"$consume_1957" = sub i64 %"$gasrem_1953", 1 + store i64 %"$consume_1957", i64* @_gasrem, align 8 %"$res_90" = alloca %TName_Bool*, align 8 - %"$gasrem_1956" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1957" = icmp ugt i64 1, %"$gasrem_1956" - br i1 %"$gascmp_1957", label %"$out_of_gas_1958", label %"$have_gas_1959" + call void @llvm.dbg.declare(metadata %TName_Bool** %"$res_90", metadata !356, metadata !DIExpression()), !dbg !357 + %"$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_1958": ; preds = %"$have_gas_1954" +"$out_of_gas_1960": ; preds = %"$have_gas_1956" call void @_out_of_gas() - br label %"$have_gas_1959" + br label %"$have_gas_1961" -"$have_gas_1959": ; preds = %"$out_of_gas_1958", %"$have_gas_1954" - %"$consume_1960" = sub i64 %"$gasrem_1956", 1 - store i64 %"$consume_1960", i64* @_gasrem, align 8 +"$have_gas_1961": ; preds = %"$out_of_gas_1960", %"$have_gas_1956" + %"$consume_1962" = sub i64 %"$gasrem_1958", 1 + store i64 %"$consume_1962", i64* @_gasrem, align 8 %"$ans_88" = alloca %Int128, 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" + call void @llvm.dbg.declare(metadata %Int128* %"$ans_88", metadata !358, metadata !DIExpression()), !dbg !359 + %"$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_1963": ; preds = %"$have_gas_1959" +"$out_of_gas_1965": ; preds = %"$have_gas_1961" call void @_out_of_gas() - br label %"$have_gas_1964" + br label %"$have_gas_1966" -"$have_gas_1964": ; preds = %"$out_of_gas_1963", %"$have_gas_1959" - %"$consume_1965" = sub i64 %"$gasrem_1961", 1 - store i64 %"$consume_1965", i64* @_gasrem, align 8 - store %Int128 { i128 996270472039138140011255001 }, %Int128* %"$ans_88", align 8, !dbg !121 - %"$gasrem_1966" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1967" = icmp ugt i64 1, %"$gasrem_1966" - br i1 %"$gascmp_1967", label %"$out_of_gas_1968", label %"$have_gas_1969" +"$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 %Int128 { i128 996270472039138140011255001 }, %Int128* %"$ans_88", align 8, !dbg !360 + %"$gasrem_1968" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1969" = icmp ugt i64 1, %"$gasrem_1968" + br i1 %"$gascmp_1969", label %"$out_of_gas_1970", label %"$have_gas_1971" -"$out_of_gas_1968": ; preds = %"$have_gas_1964" +"$out_of_gas_1970": ; preds = %"$have_gas_1966" call void @_out_of_gas() - br label %"$have_gas_1969" + br label %"$have_gas_1971" -"$have_gas_1969": ; preds = %"$out_of_gas_1968", %"$have_gas_1964" - %"$consume_1970" = sub i64 %"$gasrem_1966", 1 - store i64 %"$consume_1970", i64* @_gasrem, align 8 +"$have_gas_1971": ; preds = %"$out_of_gas_1970", %"$have_gas_1966" + %"$consume_1972" = sub i64 %"$gasrem_1968", 1 + store i64 %"$consume_1972", i64* @_gasrem, align 8 %"$res__89" = alloca %TName_Bool*, align 8 - %"$gasrem_1972" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1973" = icmp ugt i64 8, %"$gasrem_1972" - br i1 %"$gascmp_1973", label %"$out_of_gas_1974", label %"$have_gas_1975" - -"$out_of_gas_1974": ; preds = %"$have_gas_1969" - call void @_out_of_gas() - br label %"$have_gas_1975" - -"$have_gas_1975": ; preds = %"$out_of_gas_1974", %"$have_gas_1969" - %"$consume_1976" = sub i64 %"$gasrem_1972", 8 - store i64 %"$consume_1976", i64* @_gasrem, align 8 - %"$execptr_load_1977" = load i8*, i8** @_execptr, align 8 - %"$$p_87_1978" = load %Int128, %Int128* %"$p_87", align 8 - %"$$ans_88_1979" = load %Int128, %Int128* %"$ans_88", align 8 - %"$eq_call_1980" = call %TName_Bool* @_eq_Int128(i8* %"$execptr_load_1977", %Int128 %"$$p_87_1978", %Int128 %"$$ans_88_1979"), !dbg !122 - store %TName_Bool* %"$eq_call_1980", %TName_Bool** %"$res__89", align 8, !dbg !122 - %"$gasrem_1982" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1983" = icmp ugt i64 1, %"$gasrem_1982" - br i1 %"$gascmp_1983", label %"$out_of_gas_1984", label %"$have_gas_1985" - -"$out_of_gas_1984": ; preds = %"$have_gas_1975" - call void @_out_of_gas() - br label %"$have_gas_1985" - -"$have_gas_1985": ; preds = %"$out_of_gas_1984", %"$have_gas_1975" - %"$consume_1986" = sub i64 %"$gasrem_1982", 1 - store i64 %"$consume_1986", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$res__89", metadata !361, metadata !DIExpression()), !dbg !362 + %"$gasrem_1974" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1975" = icmp ugt i64 8, %"$gasrem_1974" + br i1 %"$gascmp_1975", label %"$out_of_gas_1976", label %"$have_gas_1977" + +"$out_of_gas_1976": ; preds = %"$have_gas_1971" + call void @_out_of_gas() + br label %"$have_gas_1977" + +"$have_gas_1977": ; preds = %"$out_of_gas_1976", %"$have_gas_1971" + %"$consume_1978" = sub i64 %"$gasrem_1974", 8 + store i64 %"$consume_1978", i64* @_gasrem, align 8 + %"$execptr_load_1979" = load i8*, i8** @_execptr, align 8 + %"$$p_87_1980" = load %Int128, %Int128* %"$p_87", align 8 + %"$$ans_88_1981" = load %Int128, %Int128* %"$ans_88", align 8 + %"$eq_call_1982" = call %TName_Bool* @_eq_Int128(i8* %"$execptr_load_1979", %Int128 %"$$p_87_1980", %Int128 %"$$ans_88_1981"), !dbg !363 + store %TName_Bool* %"$eq_call_1982", %TName_Bool** %"$res__89", align 8, !dbg !363 + %"$gasrem_1984" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1985" = icmp ugt i64 1, %"$gasrem_1984" + br i1 %"$gascmp_1985", label %"$out_of_gas_1986", label %"$have_gas_1987" + +"$out_of_gas_1986": ; preds = %"$have_gas_1977" + call void @_out_of_gas() + br label %"$have_gas_1987" + +"$have_gas_1987": ; preds = %"$out_of_gas_1986", %"$have_gas_1977" + %"$consume_1988" = sub i64 %"$gasrem_1984", 1 + store i64 %"$consume_1988", i64* @_gasrem, align 8 %"$BoolUtils.andb_181" = alloca { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, align 8 - %"$BoolUtils.andb_1987" = 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_1988" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_1987", 0 - %"$BoolUtils.andb_envptr_1989" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_1987", 1 - %"$$res_86_1990" = load %TName_Bool*, %TName_Bool** %"$res_86", align 8 - %"$BoolUtils.andb_call_1991" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_1988"(i8* %"$BoolUtils.andb_envptr_1989", %TName_Bool* %"$$res_86_1990"), !dbg !123 - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_1991", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_181", align 8, !dbg !123 + %"$BoolUtils.andb_1989" = 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_1990" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_1989", 0 + %"$BoolUtils.andb_envptr_1991" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_1989", 1 + %"$$res_86_1992" = load %TName_Bool*, %TName_Bool** %"$res_86", align 8 + %"$BoolUtils.andb_call_1993" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_1990"(i8* %"$BoolUtils.andb_envptr_1991", %TName_Bool* %"$$res_86_1992"), !dbg !364 + store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_1993", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_181", align 8, !dbg !364 %"$BoolUtils.andb_182" = alloca %TName_Bool*, align 8 - %"$$BoolUtils.andb_181_1992" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_181", align 8 - %"$$BoolUtils.andb_181_fptr_1993" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_181_1992", 0 - %"$$BoolUtils.andb_181_envptr_1994" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_181_1992", 1 - %"$$res__89_1995" = load %TName_Bool*, %TName_Bool** %"$res__89", align 8 - %"$$BoolUtils.andb_181_call_1996" = call %TName_Bool* %"$$BoolUtils.andb_181_fptr_1993"(i8* %"$$BoolUtils.andb_181_envptr_1994", %TName_Bool* %"$$res__89_1995"), !dbg !123 - store %TName_Bool* %"$$BoolUtils.andb_181_call_1996", %TName_Bool** %"$BoolUtils.andb_182", align 8, !dbg !123 - %"$$BoolUtils.andb_182_1997" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_182", align 8 - store %TName_Bool* %"$$BoolUtils.andb_182_1997", %TName_Bool** %"$res_90", align 8, !dbg !123 - %"$gasrem_1998" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1999" = icmp ugt i64 1, %"$gasrem_1998" - br i1 %"$gascmp_1999", label %"$out_of_gas_2000", label %"$have_gas_2001" - -"$out_of_gas_2000": ; preds = %"$have_gas_1985" - call void @_out_of_gas() - br label %"$have_gas_2001" - -"$have_gas_2001": ; preds = %"$out_of_gas_2000", %"$have_gas_1985" - %"$consume_2002" = sub i64 %"$gasrem_1998", 1 - store i64 %"$consume_2002", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$BoolUtils.andb_182", metadata !365, metadata !DIExpression()), !dbg !364 + %"$$BoolUtils.andb_181_1994" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_181", align 8 + %"$$BoolUtils.andb_181_fptr_1995" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_181_1994", 0 + %"$$BoolUtils.andb_181_envptr_1996" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_181_1994", 1 + %"$$res__89_1997" = load %TName_Bool*, %TName_Bool** %"$res__89", align 8 + %"$$BoolUtils.andb_181_call_1998" = call %TName_Bool* %"$$BoolUtils.andb_181_fptr_1995"(i8* %"$$BoolUtils.andb_181_envptr_1996", %TName_Bool* %"$$res__89_1997"), !dbg !364 + store %TName_Bool* %"$$BoolUtils.andb_181_call_1998", %TName_Bool** %"$BoolUtils.andb_182", align 8, !dbg !364 + %"$$BoolUtils.andb_182_1999" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_182", align 8 + store %TName_Bool* %"$$BoolUtils.andb_182_1999", %TName_Bool** %"$res_90", align 8, !dbg !364 + %"$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 = %"$have_gas_1987" + call void @_out_of_gas() + br label %"$have_gas_2003" + +"$have_gas_2003": ; preds = %"$out_of_gas_2002", %"$have_gas_1987" + %"$consume_2004" = sub i64 %"$gasrem_2000", 1 + store i64 %"$consume_2004", i64* @_gasrem, align 8 %"$p_91" = alloca %Uint256, align 8 - %"$p1_2003" = load %Uint32, %Uint32* %p1, align 4 - %"$valueof_2004" = extractvalue %Uint32 %"$p1_2003", 0 - %"$valueof_2005" = zext i32 %"$valueof_2004" to i64 - %"$gaslogof_2006" = uitofp i64 %"$valueof_2005" to double - %"$gaslogof_2007" = fadd double %"$gaslogof_2006", 1.000000e+00 - %"$gaslogof_2008" = call double @llvm.log.f64(double %"$gaslogof_2007") - %"$gaslogof_2009" = fptoui double %"$gaslogof_2008" to i64 - %"$gaslogof_2010" = add i64 %"$gaslogof_2009", 1 - %"$gasmul_2011" = mul i64 20, %"$gaslogof_2010" - %"$gasmul_2012" = mul i64 %"$gasmul_2011", 4 - %"$gasrem_2013" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2014" = icmp ugt i64 %"$gasmul_2012", %"$gasrem_2013" - br i1 %"$gascmp_2014", label %"$out_of_gas_2015", label %"$have_gas_2016" - -"$out_of_gas_2015": ; preds = %"$have_gas_2001" - call void @_out_of_gas() - br label %"$have_gas_2016" - -"$have_gas_2016": ; preds = %"$out_of_gas_2015", %"$have_gas_2001" - %"$consume_2017" = sub i64 %"$gasrem_2013", %"$gasmul_2012" - store i64 %"$consume_2017", i64* @_gasrem, align 8 - %"$execptr_load_2018" = load i8*, i8** @_execptr, align 8 - %"$pow_t7_2019" = alloca %Uint256, align 8 - %"$t7_2020" = load %Uint256, %Uint256* %t7, align 8 - store %Uint256 %"$t7_2020", %Uint256* %"$pow_t7_2019", align 8 - %"$p1_2021" = load %Uint32, %Uint32* %p1, align 4 - %"$pow_call_2022" = call %Uint256* @_pow_Uint256(i8* %"$execptr_load_2018", %Uint256* %"$pow_t7_2019", %Uint32 %"$p1_2021"), !dbg !124 - %"$pow_2024" = load %Uint256, %Uint256* %"$pow_call_2022", align 8 - store %Uint256 %"$pow_2024", %Uint256* %"$p_91", align 8, !dbg !124 - %"$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" - -"$out_of_gas_2027": ; preds = %"$have_gas_2016" - call void @_out_of_gas() - br label %"$have_gas_2028" - -"$have_gas_2028": ; preds = %"$out_of_gas_2027", %"$have_gas_2016" - %"$consume_2029" = sub i64 %"$gasrem_2025", 1 - store i64 %"$consume_2029", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %Uint256* %"$p_91", metadata !366, metadata !DIExpression()), !dbg !367 + %"$p1_2005" = load %Uint32, %Uint32* %p1, align 4 + %"$valueof_2006" = extractvalue %Uint32 %"$p1_2005", 0 + %"$valueof_2007" = zext i32 %"$valueof_2006" to i64 + %"$gaslogof_2008" = uitofp i64 %"$valueof_2007" to double + %"$gaslogof_2009" = fadd double %"$gaslogof_2008", 1.000000e+00 + %"$gaslogof_2010" = call double @llvm.log.f64(double %"$gaslogof_2009") + %"$gaslogof_2011" = fptoui double %"$gaslogof_2010" to i64 + %"$gaslogof_2012" = add i64 %"$gaslogof_2011", 1 + %"$gasmul_2013" = mul i64 20, %"$gaslogof_2012" + %"$gasmul_2014" = mul i64 %"$gasmul_2013", 4 + %"$gasrem_2015" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2016" = icmp ugt i64 %"$gasmul_2014", %"$gasrem_2015" + br i1 %"$gascmp_2016", label %"$out_of_gas_2017", label %"$have_gas_2018" + +"$out_of_gas_2017": ; preds = %"$have_gas_2003" + call void @_out_of_gas() + br label %"$have_gas_2018" + +"$have_gas_2018": ; preds = %"$out_of_gas_2017", %"$have_gas_2003" + %"$consume_2019" = sub i64 %"$gasrem_2015", %"$gasmul_2014" + store i64 %"$consume_2019", i64* @_gasrem, align 8 + %"$execptr_load_2020" = load i8*, i8** @_execptr, align 8 + %"$pow_t7_2021" = alloca %Uint256, align 8 + %"$t7_2022" = load %Uint256, %Uint256* %t7, align 8 + store %Uint256 %"$t7_2022", %Uint256* %"$pow_t7_2021", align 8 + %"$p1_2023" = load %Uint32, %Uint32* %p1, align 4 + %"$pow_call_2024" = call %Uint256* @_pow_Uint256(i8* %"$execptr_load_2020", %Uint256* %"$pow_t7_2021", %Uint32 %"$p1_2023"), !dbg !368 + %"$pow_2026" = load %Uint256, %Uint256* %"$pow_call_2024", align 8 + store %Uint256 %"$pow_2026", %Uint256* %"$p_91", align 8, !dbg !368 + %"$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_2018" + call void @_out_of_gas() + br label %"$have_gas_2030" + +"$have_gas_2030": ; preds = %"$out_of_gas_2029", %"$have_gas_2018" + %"$consume_2031" = sub i64 %"$gasrem_2027", 1 + store i64 %"$consume_2031", i64* @_gasrem, align 8 %"$res_94" = alloca %TName_Bool*, 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" + call void @llvm.dbg.declare(metadata %TName_Bool** %"$res_94", metadata !369, metadata !DIExpression()), !dbg !370 + %"$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_2032": ; preds = %"$have_gas_2028" +"$out_of_gas_2034": ; preds = %"$have_gas_2030" call void @_out_of_gas() - br label %"$have_gas_2033" + br label %"$have_gas_2035" -"$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 +"$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 %"$ans_92" = alloca %Uint256, 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" + call void @llvm.dbg.declare(metadata %Uint256* %"$ans_92", metadata !371, metadata !DIExpression()), !dbg !372 + %"$gasrem_2037" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2038" = icmp ugt i64 1, %"$gasrem_2037" + br i1 %"$gascmp_2038", label %"$out_of_gas_2039", label %"$have_gas_2040" -"$out_of_gas_2037": ; preds = %"$have_gas_2033" +"$out_of_gas_2039": ; preds = %"$have_gas_2035" call void @_out_of_gas() - br label %"$have_gas_2038" + br label %"$have_gas_2040" -"$have_gas_2038": ; preds = %"$out_of_gas_2037", %"$have_gas_2033" - %"$consume_2039" = sub i64 %"$gasrem_2035", 1 - store i64 %"$consume_2039", i64* @_gasrem, align 8 - store %Uint256 { i256 1 }, %Uint256* %"$ans_92", align 8, !dbg !125 - %"$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" +"$have_gas_2040": ; preds = %"$out_of_gas_2039", %"$have_gas_2035" + %"$consume_2041" = sub i64 %"$gasrem_2037", 1 + store i64 %"$consume_2041", i64* @_gasrem, align 8 + store %Uint256 { i256 1 }, %Uint256* %"$ans_92", align 8, !dbg !373 + %"$gasrem_2042" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2043" = icmp ugt i64 1, %"$gasrem_2042" + br i1 %"$gascmp_2043", label %"$out_of_gas_2044", label %"$have_gas_2045" -"$out_of_gas_2042": ; preds = %"$have_gas_2038" +"$out_of_gas_2044": ; preds = %"$have_gas_2040" call void @_out_of_gas() - br label %"$have_gas_2043" + br label %"$have_gas_2045" -"$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 +"$have_gas_2045": ; preds = %"$out_of_gas_2044", %"$have_gas_2040" + %"$consume_2046" = sub i64 %"$gasrem_2042", 1 + store i64 %"$consume_2046", i64* @_gasrem, align 8 %"$res__93" = alloca %TName_Bool*, align 8 - %"$gasrem_2046" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2047" = icmp ugt i64 16, %"$gasrem_2046" - br i1 %"$gascmp_2047", label %"$out_of_gas_2048", label %"$have_gas_2049" - -"$out_of_gas_2048": ; preds = %"$have_gas_2043" - call void @_out_of_gas() - br label %"$have_gas_2049" - -"$have_gas_2049": ; preds = %"$out_of_gas_2048", %"$have_gas_2043" - %"$consume_2050" = sub i64 %"$gasrem_2046", 16 - store i64 %"$consume_2050", i64* @_gasrem, align 8 - %"$execptr_load_2051" = load i8*, i8** @_execptr, align 8 - %"$eq_$p_91_2052" = alloca %Uint256, align 8 - %"$$p_91_2053" = load %Uint256, %Uint256* %"$p_91", align 8 - store %Uint256 %"$$p_91_2053", %Uint256* %"$eq_$p_91_2052", align 8 - %"$eq_$ans_92_2054" = alloca %Uint256, align 8 - %"$$ans_92_2055" = load %Uint256, %Uint256* %"$ans_92", align 8 - store %Uint256 %"$$ans_92_2055", %Uint256* %"$eq_$ans_92_2054", align 8 - %"$eq_call_2056" = call %TName_Bool* @_eq_Uint256(i8* %"$execptr_load_2051", %Uint256* %"$eq_$p_91_2052", %Uint256* %"$eq_$ans_92_2054"), !dbg !126 - store %TName_Bool* %"$eq_call_2056", %TName_Bool** %"$res__93", align 8, !dbg !126 - %"$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" - -"$out_of_gas_2060": ; preds = %"$have_gas_2049" - call void @_out_of_gas() - br label %"$have_gas_2061" - -"$have_gas_2061": ; preds = %"$out_of_gas_2060", %"$have_gas_2049" - %"$consume_2062" = sub i64 %"$gasrem_2058", 1 - store i64 %"$consume_2062", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$res__93", metadata !374, metadata !DIExpression()), !dbg !375 + %"$gasrem_2048" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2049" = icmp ugt i64 16, %"$gasrem_2048" + br i1 %"$gascmp_2049", label %"$out_of_gas_2050", label %"$have_gas_2051" + +"$out_of_gas_2050": ; preds = %"$have_gas_2045" + call void @_out_of_gas() + br label %"$have_gas_2051" + +"$have_gas_2051": ; preds = %"$out_of_gas_2050", %"$have_gas_2045" + %"$consume_2052" = sub i64 %"$gasrem_2048", 16 + store i64 %"$consume_2052", i64* @_gasrem, align 8 + %"$execptr_load_2053" = load i8*, i8** @_execptr, align 8 + %"$eq_$p_91_2054" = alloca %Uint256, align 8 + %"$$p_91_2055" = load %Uint256, %Uint256* %"$p_91", align 8 + store %Uint256 %"$$p_91_2055", %Uint256* %"$eq_$p_91_2054", align 8 + %"$eq_$ans_92_2056" = alloca %Uint256, align 8 + %"$$ans_92_2057" = load %Uint256, %Uint256* %"$ans_92", align 8 + store %Uint256 %"$$ans_92_2057", %Uint256* %"$eq_$ans_92_2056", align 8 + %"$eq_call_2058" = call %TName_Bool* @_eq_Uint256(i8* %"$execptr_load_2053", %Uint256* %"$eq_$p_91_2054", %Uint256* %"$eq_$ans_92_2056"), !dbg !376 + store %TName_Bool* %"$eq_call_2058", %TName_Bool** %"$res__93", align 8, !dbg !376 + %"$gasrem_2060" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2061" = icmp ugt i64 1, %"$gasrem_2060" + br i1 %"$gascmp_2061", label %"$out_of_gas_2062", label %"$have_gas_2063" + +"$out_of_gas_2062": ; preds = %"$have_gas_2051" + call void @_out_of_gas() + br label %"$have_gas_2063" + +"$have_gas_2063": ; preds = %"$out_of_gas_2062", %"$have_gas_2051" + %"$consume_2064" = sub i64 %"$gasrem_2060", 1 + store i64 %"$consume_2064", i64* @_gasrem, align 8 %"$BoolUtils.andb_183" = alloca { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, align 8 - %"$BoolUtils.andb_2063" = 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_2064" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_2063", 0 - %"$BoolUtils.andb_envptr_2065" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_2063", 1 - %"$$res_90_2066" = load %TName_Bool*, %TName_Bool** %"$res_90", align 8 - %"$BoolUtils.andb_call_2067" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_2064"(i8* %"$BoolUtils.andb_envptr_2065", %TName_Bool* %"$$res_90_2066"), !dbg !127 - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_2067", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_183", align 8, !dbg !127 + %"$BoolUtils.andb_2065" = 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_2066" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_2065", 0 + %"$BoolUtils.andb_envptr_2067" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_2065", 1 + %"$$res_90_2068" = load %TName_Bool*, %TName_Bool** %"$res_90", align 8 + %"$BoolUtils.andb_call_2069" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_2066"(i8* %"$BoolUtils.andb_envptr_2067", %TName_Bool* %"$$res_90_2068"), !dbg !377 + store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_2069", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_183", align 8, !dbg !377 %"$BoolUtils.andb_184" = alloca %TName_Bool*, align 8 - %"$$BoolUtils.andb_183_2068" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_183", align 8 - %"$$BoolUtils.andb_183_fptr_2069" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_183_2068", 0 - %"$$BoolUtils.andb_183_envptr_2070" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_183_2068", 1 - %"$$res__93_2071" = load %TName_Bool*, %TName_Bool** %"$res__93", align 8 - %"$$BoolUtils.andb_183_call_2072" = call %TName_Bool* %"$$BoolUtils.andb_183_fptr_2069"(i8* %"$$BoolUtils.andb_183_envptr_2070", %TName_Bool* %"$$res__93_2071"), !dbg !127 - store %TName_Bool* %"$$BoolUtils.andb_183_call_2072", %TName_Bool** %"$BoolUtils.andb_184", align 8, !dbg !127 - %"$$BoolUtils.andb_184_2073" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_184", align 8 - store %TName_Bool* %"$$BoolUtils.andb_184_2073", %TName_Bool** %"$res_94", align 8, !dbg !127 - %"$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_2061" - call void @_out_of_gas() - br label %"$have_gas_2077" - -"$have_gas_2077": ; preds = %"$out_of_gas_2076", %"$have_gas_2061" - %"$consume_2078" = sub i64 %"$gasrem_2074", 1 - store i64 %"$consume_2078", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$BoolUtils.andb_184", metadata !378, metadata !DIExpression()), !dbg !377 + %"$$BoolUtils.andb_183_2070" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_183", align 8 + %"$$BoolUtils.andb_183_fptr_2071" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_183_2070", 0 + %"$$BoolUtils.andb_183_envptr_2072" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_183_2070", 1 + %"$$res__93_2073" = load %TName_Bool*, %TName_Bool** %"$res__93", align 8 + %"$$BoolUtils.andb_183_call_2074" = call %TName_Bool* %"$$BoolUtils.andb_183_fptr_2071"(i8* %"$$BoolUtils.andb_183_envptr_2072", %TName_Bool* %"$$res__93_2073"), !dbg !377 + store %TName_Bool* %"$$BoolUtils.andb_183_call_2074", %TName_Bool** %"$BoolUtils.andb_184", align 8, !dbg !377 + %"$$BoolUtils.andb_184_2075" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_184", align 8 + store %TName_Bool* %"$$BoolUtils.andb_184_2075", %TName_Bool** %"$res_94", align 8, !dbg !377 + %"$gasrem_2076" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2077" = icmp ugt i64 1, %"$gasrem_2076" + br i1 %"$gascmp_2077", label %"$out_of_gas_2078", label %"$have_gas_2079" + +"$out_of_gas_2078": ; preds = %"$have_gas_2063" + call void @_out_of_gas() + br label %"$have_gas_2079" + +"$have_gas_2079": ; preds = %"$out_of_gas_2078", %"$have_gas_2063" + %"$consume_2080" = sub i64 %"$gasrem_2076", 1 + store i64 %"$consume_2080", i64* @_gasrem, align 8 %"$p_95" = alloca %Uint256, align 8 - %"$p2_2079" = load %Uint32, %Uint32* %p2, align 4 - %"$valueof_2080" = extractvalue %Uint32 %"$p2_2079", 0 - %"$valueof_2081" = zext i32 %"$valueof_2080" to i64 - %"$gaslogof_2082" = uitofp i64 %"$valueof_2081" to double - %"$gaslogof_2083" = fadd double %"$gaslogof_2082", 1.000000e+00 - %"$gaslogof_2084" = call double @llvm.log.f64(double %"$gaslogof_2083") - %"$gaslogof_2085" = fptoui double %"$gaslogof_2084" to i64 - %"$gaslogof_2086" = add i64 %"$gaslogof_2085", 1 - %"$gasmul_2087" = mul i64 20, %"$gaslogof_2086" - %"$gasmul_2088" = mul i64 %"$gasmul_2087", 4 - %"$gasrem_2089" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2090" = icmp ugt i64 %"$gasmul_2088", %"$gasrem_2089" - br i1 %"$gascmp_2090", label %"$out_of_gas_2091", label %"$have_gas_2092" - -"$out_of_gas_2091": ; preds = %"$have_gas_2077" - call void @_out_of_gas() - br label %"$have_gas_2092" - -"$have_gas_2092": ; preds = %"$out_of_gas_2091", %"$have_gas_2077" - %"$consume_2093" = sub i64 %"$gasrem_2089", %"$gasmul_2088" - store i64 %"$consume_2093", i64* @_gasrem, align 8 - %"$execptr_load_2094" = load i8*, i8** @_execptr, align 8 - %"$pow_t7_2095" = alloca %Uint256, align 8 - %"$t7_2096" = load %Uint256, %Uint256* %t7, align 8 - store %Uint256 %"$t7_2096", %Uint256* %"$pow_t7_2095", align 8 - %"$p2_2097" = load %Uint32, %Uint32* %p2, align 4 - %"$pow_call_2098" = call %Uint256* @_pow_Uint256(i8* %"$execptr_load_2094", %Uint256* %"$pow_t7_2095", %Uint32 %"$p2_2097"), !dbg !128 - %"$pow_2100" = load %Uint256, %Uint256* %"$pow_call_2098", align 8 - store %Uint256 %"$pow_2100", %Uint256* %"$p_95", align 8, !dbg !128 - %"$gasrem_2101" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2102" = icmp ugt i64 1, %"$gasrem_2101" - br i1 %"$gascmp_2102", label %"$out_of_gas_2103", label %"$have_gas_2104" - -"$out_of_gas_2103": ; preds = %"$have_gas_2092" - call void @_out_of_gas() - br label %"$have_gas_2104" - -"$have_gas_2104": ; preds = %"$out_of_gas_2103", %"$have_gas_2092" - %"$consume_2105" = sub i64 %"$gasrem_2101", 1 - store i64 %"$consume_2105", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %Uint256* %"$p_95", metadata !379, metadata !DIExpression()), !dbg !380 + %"$p2_2081" = load %Uint32, %Uint32* %p2, align 4 + %"$valueof_2082" = extractvalue %Uint32 %"$p2_2081", 0 + %"$valueof_2083" = zext i32 %"$valueof_2082" to i64 + %"$gaslogof_2084" = uitofp i64 %"$valueof_2083" to double + %"$gaslogof_2085" = fadd double %"$gaslogof_2084", 1.000000e+00 + %"$gaslogof_2086" = call double @llvm.log.f64(double %"$gaslogof_2085") + %"$gaslogof_2087" = fptoui double %"$gaslogof_2086" to i64 + %"$gaslogof_2088" = add i64 %"$gaslogof_2087", 1 + %"$gasmul_2089" = mul i64 20, %"$gaslogof_2088" + %"$gasmul_2090" = mul i64 %"$gasmul_2089", 4 + %"$gasrem_2091" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2092" = icmp ugt i64 %"$gasmul_2090", %"$gasrem_2091" + br i1 %"$gascmp_2092", label %"$out_of_gas_2093", label %"$have_gas_2094" + +"$out_of_gas_2093": ; preds = %"$have_gas_2079" + call void @_out_of_gas() + br label %"$have_gas_2094" + +"$have_gas_2094": ; preds = %"$out_of_gas_2093", %"$have_gas_2079" + %"$consume_2095" = sub i64 %"$gasrem_2091", %"$gasmul_2090" + store i64 %"$consume_2095", i64* @_gasrem, align 8 + %"$execptr_load_2096" = load i8*, i8** @_execptr, align 8 + %"$pow_t7_2097" = alloca %Uint256, align 8 + %"$t7_2098" = load %Uint256, %Uint256* %t7, align 8 + store %Uint256 %"$t7_2098", %Uint256* %"$pow_t7_2097", align 8 + %"$p2_2099" = load %Uint32, %Uint32* %p2, align 4 + %"$pow_call_2100" = call %Uint256* @_pow_Uint256(i8* %"$execptr_load_2096", %Uint256* %"$pow_t7_2097", %Uint32 %"$p2_2099"), !dbg !381 + %"$pow_2102" = load %Uint256, %Uint256* %"$pow_call_2100", align 8 + store %Uint256 %"$pow_2102", %Uint256* %"$p_95", align 8, !dbg !381 + %"$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_2105": ; preds = %"$have_gas_2094" + call void @_out_of_gas() + br label %"$have_gas_2106" + +"$have_gas_2106": ; preds = %"$out_of_gas_2105", %"$have_gas_2094" + %"$consume_2107" = sub i64 %"$gasrem_2103", 1 + store i64 %"$consume_2107", i64* @_gasrem, align 8 %"$res_98" = alloca %TName_Bool*, align 8 - %"$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" + call void @llvm.dbg.declare(metadata %TName_Bool** %"$res_98", metadata !382, metadata !DIExpression()), !dbg !383 + %"$gasrem_2108" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2109" = icmp ugt i64 1, %"$gasrem_2108" + br i1 %"$gascmp_2109", label %"$out_of_gas_2110", label %"$have_gas_2111" -"$out_of_gas_2108": ; preds = %"$have_gas_2104" +"$out_of_gas_2110": ; preds = %"$have_gas_2106" call void @_out_of_gas() - br label %"$have_gas_2109" + br label %"$have_gas_2111" -"$have_gas_2109": ; preds = %"$out_of_gas_2108", %"$have_gas_2104" - %"$consume_2110" = sub i64 %"$gasrem_2106", 1 - store i64 %"$consume_2110", i64* @_gasrem, align 8 +"$have_gas_2111": ; preds = %"$out_of_gas_2110", %"$have_gas_2106" + %"$consume_2112" = sub i64 %"$gasrem_2108", 1 + store i64 %"$consume_2112", i64* @_gasrem, align 8 %"$ans_96" = alloca %Uint256, align 8 - %"$gasrem_2111" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2112" = icmp ugt i64 1, %"$gasrem_2111" - br i1 %"$gascmp_2112", label %"$out_of_gas_2113", label %"$have_gas_2114" + call void @llvm.dbg.declare(metadata %Uint256* %"$ans_96", metadata !384, metadata !DIExpression()), !dbg !385 + %"$gasrem_2113" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2114" = icmp ugt i64 1, %"$gasrem_2113" + br i1 %"$gascmp_2114", label %"$out_of_gas_2115", label %"$have_gas_2116" -"$out_of_gas_2113": ; preds = %"$have_gas_2109" +"$out_of_gas_2115": ; preds = %"$have_gas_2111" call void @_out_of_gas() - br label %"$have_gas_2114" + br label %"$have_gas_2116" -"$have_gas_2114": ; preds = %"$out_of_gas_2113", %"$have_gas_2109" - %"$consume_2115" = sub i64 %"$gasrem_2111", 1 - store i64 %"$consume_2115", i64* @_gasrem, align 8 - store %Uint256 { i256 10001 }, %Uint256* %"$ans_96", align 8, !dbg !129 - %"$gasrem_2116" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2117" = icmp ugt i64 1, %"$gasrem_2116" - br i1 %"$gascmp_2117", label %"$out_of_gas_2118", label %"$have_gas_2119" +"$have_gas_2116": ; preds = %"$out_of_gas_2115", %"$have_gas_2111" + %"$consume_2117" = sub i64 %"$gasrem_2113", 1 + store i64 %"$consume_2117", i64* @_gasrem, align 8 + store %Uint256 { i256 10001 }, %Uint256* %"$ans_96", align 8, !dbg !386 + %"$gasrem_2118" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2119" = icmp ugt i64 1, %"$gasrem_2118" + br i1 %"$gascmp_2119", label %"$out_of_gas_2120", label %"$have_gas_2121" -"$out_of_gas_2118": ; preds = %"$have_gas_2114" +"$out_of_gas_2120": ; preds = %"$have_gas_2116" call void @_out_of_gas() - br label %"$have_gas_2119" + br label %"$have_gas_2121" -"$have_gas_2119": ; preds = %"$out_of_gas_2118", %"$have_gas_2114" - %"$consume_2120" = sub i64 %"$gasrem_2116", 1 - store i64 %"$consume_2120", i64* @_gasrem, align 8 +"$have_gas_2121": ; preds = %"$out_of_gas_2120", %"$have_gas_2116" + %"$consume_2122" = sub i64 %"$gasrem_2118", 1 + store i64 %"$consume_2122", i64* @_gasrem, align 8 %"$res__97" = alloca %TName_Bool*, align 8 - %"$gasrem_2122" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2123" = icmp ugt i64 16, %"$gasrem_2122" - br i1 %"$gascmp_2123", label %"$out_of_gas_2124", label %"$have_gas_2125" - -"$out_of_gas_2124": ; preds = %"$have_gas_2119" - call void @_out_of_gas() - br label %"$have_gas_2125" - -"$have_gas_2125": ; preds = %"$out_of_gas_2124", %"$have_gas_2119" - %"$consume_2126" = sub i64 %"$gasrem_2122", 16 - store i64 %"$consume_2126", i64* @_gasrem, align 8 - %"$execptr_load_2127" = load i8*, i8** @_execptr, align 8 - %"$eq_$p_95_2128" = alloca %Uint256, align 8 - %"$$p_95_2129" = load %Uint256, %Uint256* %"$p_95", align 8 - store %Uint256 %"$$p_95_2129", %Uint256* %"$eq_$p_95_2128", align 8 - %"$eq_$ans_96_2130" = alloca %Uint256, align 8 - %"$$ans_96_2131" = load %Uint256, %Uint256* %"$ans_96", align 8 - store %Uint256 %"$$ans_96_2131", %Uint256* %"$eq_$ans_96_2130", align 8 - %"$eq_call_2132" = call %TName_Bool* @_eq_Uint256(i8* %"$execptr_load_2127", %Uint256* %"$eq_$p_95_2128", %Uint256* %"$eq_$ans_96_2130"), !dbg !130 - store %TName_Bool* %"$eq_call_2132", %TName_Bool** %"$res__97", align 8, !dbg !130 - %"$gasrem_2134" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2135" = icmp ugt i64 1, %"$gasrem_2134" - br i1 %"$gascmp_2135", label %"$out_of_gas_2136", label %"$have_gas_2137" - -"$out_of_gas_2136": ; preds = %"$have_gas_2125" - call void @_out_of_gas() - br label %"$have_gas_2137" - -"$have_gas_2137": ; preds = %"$out_of_gas_2136", %"$have_gas_2125" - %"$consume_2138" = sub i64 %"$gasrem_2134", 1 - store i64 %"$consume_2138", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$res__97", metadata !387, metadata !DIExpression()), !dbg !388 + %"$gasrem_2124" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2125" = icmp ugt i64 16, %"$gasrem_2124" + br i1 %"$gascmp_2125", label %"$out_of_gas_2126", label %"$have_gas_2127" + +"$out_of_gas_2126": ; preds = %"$have_gas_2121" + call void @_out_of_gas() + br label %"$have_gas_2127" + +"$have_gas_2127": ; preds = %"$out_of_gas_2126", %"$have_gas_2121" + %"$consume_2128" = sub i64 %"$gasrem_2124", 16 + store i64 %"$consume_2128", i64* @_gasrem, align 8 + %"$execptr_load_2129" = load i8*, i8** @_execptr, align 8 + %"$eq_$p_95_2130" = alloca %Uint256, align 8 + %"$$p_95_2131" = load %Uint256, %Uint256* %"$p_95", align 8 + store %Uint256 %"$$p_95_2131", %Uint256* %"$eq_$p_95_2130", align 8 + %"$eq_$ans_96_2132" = alloca %Uint256, align 8 + %"$$ans_96_2133" = load %Uint256, %Uint256* %"$ans_96", align 8 + store %Uint256 %"$$ans_96_2133", %Uint256* %"$eq_$ans_96_2132", align 8 + %"$eq_call_2134" = call %TName_Bool* @_eq_Uint256(i8* %"$execptr_load_2129", %Uint256* %"$eq_$p_95_2130", %Uint256* %"$eq_$ans_96_2132"), !dbg !389 + store %TName_Bool* %"$eq_call_2134", %TName_Bool** %"$res__97", align 8, !dbg !389 + %"$gasrem_2136" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2137" = icmp ugt i64 1, %"$gasrem_2136" + br i1 %"$gascmp_2137", label %"$out_of_gas_2138", label %"$have_gas_2139" + +"$out_of_gas_2138": ; preds = %"$have_gas_2127" + call void @_out_of_gas() + br label %"$have_gas_2139" + +"$have_gas_2139": ; preds = %"$out_of_gas_2138", %"$have_gas_2127" + %"$consume_2140" = sub i64 %"$gasrem_2136", 1 + store i64 %"$consume_2140", i64* @_gasrem, align 8 %"$BoolUtils.andb_185" = alloca { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, align 8 - %"$BoolUtils.andb_2139" = 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_2140" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_2139", 0 - %"$BoolUtils.andb_envptr_2141" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_2139", 1 - %"$$res_94_2142" = load %TName_Bool*, %TName_Bool** %"$res_94", align 8 - %"$BoolUtils.andb_call_2143" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_2140"(i8* %"$BoolUtils.andb_envptr_2141", %TName_Bool* %"$$res_94_2142"), !dbg !131 - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_2143", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_185", align 8, !dbg !131 + %"$BoolUtils.andb_2141" = 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_2142" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_2141", 0 + %"$BoolUtils.andb_envptr_2143" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_2141", 1 + %"$$res_94_2144" = load %TName_Bool*, %TName_Bool** %"$res_94", align 8 + %"$BoolUtils.andb_call_2145" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_2142"(i8* %"$BoolUtils.andb_envptr_2143", %TName_Bool* %"$$res_94_2144"), !dbg !390 + store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_2145", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_185", align 8, !dbg !390 %"$BoolUtils.andb_186" = alloca %TName_Bool*, align 8 - %"$$BoolUtils.andb_185_2144" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_185", align 8 - %"$$BoolUtils.andb_185_fptr_2145" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_185_2144", 0 - %"$$BoolUtils.andb_185_envptr_2146" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_185_2144", 1 - %"$$res__97_2147" = load %TName_Bool*, %TName_Bool** %"$res__97", align 8 - %"$$BoolUtils.andb_185_call_2148" = call %TName_Bool* %"$$BoolUtils.andb_185_fptr_2145"(i8* %"$$BoolUtils.andb_185_envptr_2146", %TName_Bool* %"$$res__97_2147"), !dbg !131 - store %TName_Bool* %"$$BoolUtils.andb_185_call_2148", %TName_Bool** %"$BoolUtils.andb_186", align 8, !dbg !131 - %"$$BoolUtils.andb_186_2149" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_186", align 8 - store %TName_Bool* %"$$BoolUtils.andb_186_2149", %TName_Bool** %"$res_98", align 8, !dbg !131 - %"$gasrem_2150" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2151" = icmp ugt i64 1, %"$gasrem_2150" - br i1 %"$gascmp_2151", label %"$out_of_gas_2152", label %"$have_gas_2153" - -"$out_of_gas_2152": ; preds = %"$have_gas_2137" - call void @_out_of_gas() - br label %"$have_gas_2153" - -"$have_gas_2153": ; preds = %"$out_of_gas_2152", %"$have_gas_2137" - %"$consume_2154" = sub i64 %"$gasrem_2150", 1 - store i64 %"$consume_2154", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$BoolUtils.andb_186", metadata !391, metadata !DIExpression()), !dbg !390 + %"$$BoolUtils.andb_185_2146" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_185", align 8 + %"$$BoolUtils.andb_185_fptr_2147" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_185_2146", 0 + %"$$BoolUtils.andb_185_envptr_2148" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_185_2146", 1 + %"$$res__97_2149" = load %TName_Bool*, %TName_Bool** %"$res__97", align 8 + %"$$BoolUtils.andb_185_call_2150" = call %TName_Bool* %"$$BoolUtils.andb_185_fptr_2147"(i8* %"$$BoolUtils.andb_185_envptr_2148", %TName_Bool* %"$$res__97_2149"), !dbg !390 + store %TName_Bool* %"$$BoolUtils.andb_185_call_2150", %TName_Bool** %"$BoolUtils.andb_186", align 8, !dbg !390 + %"$$BoolUtils.andb_186_2151" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_186", align 8 + store %TName_Bool* %"$$BoolUtils.andb_186_2151", %TName_Bool** %"$res_98", align 8, !dbg !390 + %"$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 = %"$have_gas_2139" + call void @_out_of_gas() + br label %"$have_gas_2155" + +"$have_gas_2155": ; preds = %"$out_of_gas_2154", %"$have_gas_2139" + %"$consume_2156" = sub i64 %"$gasrem_2152", 1 + store i64 %"$consume_2156", i64* @_gasrem, align 8 %"$p_99" = alloca %Uint256, align 8 - %"$p3_2155" = load %Uint32, %Uint32* %p3, align 4 - %"$valueof_2156" = extractvalue %Uint32 %"$p3_2155", 0 - %"$valueof_2157" = zext i32 %"$valueof_2156" to i64 - %"$gaslogof_2158" = uitofp i64 %"$valueof_2157" to double - %"$gaslogof_2159" = fadd double %"$gaslogof_2158", 1.000000e+00 - %"$gaslogof_2160" = call double @llvm.log.f64(double %"$gaslogof_2159") - %"$gaslogof_2161" = fptoui double %"$gaslogof_2160" to i64 - %"$gaslogof_2162" = add i64 %"$gaslogof_2161", 1 - %"$gasmul_2163" = mul i64 20, %"$gaslogof_2162" - %"$gasmul_2164" = mul i64 %"$gasmul_2163", 4 - %"$gasrem_2165" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2166" = icmp ugt i64 %"$gasmul_2164", %"$gasrem_2165" - br i1 %"$gascmp_2166", label %"$out_of_gas_2167", label %"$have_gas_2168" - -"$out_of_gas_2167": ; preds = %"$have_gas_2153" - call void @_out_of_gas() - br label %"$have_gas_2168" - -"$have_gas_2168": ; preds = %"$out_of_gas_2167", %"$have_gas_2153" - %"$consume_2169" = sub i64 %"$gasrem_2165", %"$gasmul_2164" - store i64 %"$consume_2169", i64* @_gasrem, align 8 - %"$execptr_load_2170" = load i8*, i8** @_execptr, align 8 - %"$pow_t7_2171" = alloca %Uint256, align 8 - %"$t7_2172" = load %Uint256, %Uint256* %t7, align 8 - store %Uint256 %"$t7_2172", %Uint256* %"$pow_t7_2171", align 8 - %"$p3_2173" = load %Uint32, %Uint32* %p3, align 4 - %"$pow_call_2174" = call %Uint256* @_pow_Uint256(i8* %"$execptr_load_2170", %Uint256* %"$pow_t7_2171", %Uint32 %"$p3_2173"), !dbg !132 - %"$pow_2176" = load %Uint256, %Uint256* %"$pow_call_2174", align 8 - store %Uint256 %"$pow_2176", %Uint256* %"$p_99", align 8, !dbg !132 - %"$gasrem_2177" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2178" = icmp ugt i64 1, %"$gasrem_2177" - br i1 %"$gascmp_2178", label %"$out_of_gas_2179", label %"$have_gas_2180" - -"$out_of_gas_2179": ; preds = %"$have_gas_2168" - call void @_out_of_gas() - br label %"$have_gas_2180" - -"$have_gas_2180": ; preds = %"$out_of_gas_2179", %"$have_gas_2168" - %"$consume_2181" = sub i64 %"$gasrem_2177", 1 - store i64 %"$consume_2181", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %Uint256* %"$p_99", metadata !392, metadata !DIExpression()), !dbg !393 + %"$p3_2157" = load %Uint32, %Uint32* %p3, align 4 + %"$valueof_2158" = extractvalue %Uint32 %"$p3_2157", 0 + %"$valueof_2159" = zext i32 %"$valueof_2158" to i64 + %"$gaslogof_2160" = uitofp i64 %"$valueof_2159" to double + %"$gaslogof_2161" = fadd double %"$gaslogof_2160", 1.000000e+00 + %"$gaslogof_2162" = call double @llvm.log.f64(double %"$gaslogof_2161") + %"$gaslogof_2163" = fptoui double %"$gaslogof_2162" to i64 + %"$gaslogof_2164" = add i64 %"$gaslogof_2163", 1 + %"$gasmul_2165" = mul i64 20, %"$gaslogof_2164" + %"$gasmul_2166" = mul i64 %"$gasmul_2165", 4 + %"$gasrem_2167" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2168" = icmp ugt i64 %"$gasmul_2166", %"$gasrem_2167" + br i1 %"$gascmp_2168", label %"$out_of_gas_2169", label %"$have_gas_2170" + +"$out_of_gas_2169": ; preds = %"$have_gas_2155" + call void @_out_of_gas() + br label %"$have_gas_2170" + +"$have_gas_2170": ; preds = %"$out_of_gas_2169", %"$have_gas_2155" + %"$consume_2171" = sub i64 %"$gasrem_2167", %"$gasmul_2166" + store i64 %"$consume_2171", i64* @_gasrem, align 8 + %"$execptr_load_2172" = load i8*, i8** @_execptr, align 8 + %"$pow_t7_2173" = alloca %Uint256, align 8 + %"$t7_2174" = load %Uint256, %Uint256* %t7, align 8 + store %Uint256 %"$t7_2174", %Uint256* %"$pow_t7_2173", align 8 + %"$p3_2175" = load %Uint32, %Uint32* %p3, align 4 + %"$pow_call_2176" = call %Uint256* @_pow_Uint256(i8* %"$execptr_load_2172", %Uint256* %"$pow_t7_2173", %Uint32 %"$p3_2175"), !dbg !394 + %"$pow_2178" = load %Uint256, %Uint256* %"$pow_call_2176", align 8 + store %Uint256 %"$pow_2178", %Uint256* %"$p_99", align 8, !dbg !394 + %"$gasrem_2179" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2180" = icmp ugt i64 1, %"$gasrem_2179" + br i1 %"$gascmp_2180", label %"$out_of_gas_2181", label %"$have_gas_2182" + +"$out_of_gas_2181": ; preds = %"$have_gas_2170" + call void @_out_of_gas() + br label %"$have_gas_2182" + +"$have_gas_2182": ; preds = %"$out_of_gas_2181", %"$have_gas_2170" + %"$consume_2183" = sub i64 %"$gasrem_2179", 1 + store i64 %"$consume_2183", i64* @_gasrem, align 8 %"$res_102" = alloca %TName_Bool*, align 8 - %"$gasrem_2182" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2183" = icmp ugt i64 1, %"$gasrem_2182" - br i1 %"$gascmp_2183", label %"$out_of_gas_2184", label %"$have_gas_2185" + call void @llvm.dbg.declare(metadata %TName_Bool** %"$res_102", metadata !395, metadata !DIExpression()), !dbg !396 + %"$gasrem_2184" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2185" = icmp ugt i64 1, %"$gasrem_2184" + br i1 %"$gascmp_2185", label %"$out_of_gas_2186", label %"$have_gas_2187" -"$out_of_gas_2184": ; preds = %"$have_gas_2180" +"$out_of_gas_2186": ; preds = %"$have_gas_2182" call void @_out_of_gas() - br label %"$have_gas_2185" + br label %"$have_gas_2187" -"$have_gas_2185": ; preds = %"$out_of_gas_2184", %"$have_gas_2180" - %"$consume_2186" = sub i64 %"$gasrem_2182", 1 - store i64 %"$consume_2186", i64* @_gasrem, align 8 +"$have_gas_2187": ; preds = %"$out_of_gas_2186", %"$have_gas_2182" + %"$consume_2188" = sub i64 %"$gasrem_2184", 1 + store i64 %"$consume_2188", i64* @_gasrem, align 8 %"$ans_100" = alloca %Uint256, 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" + call void @llvm.dbg.declare(metadata %Uint256* %"$ans_100", metadata !397, metadata !DIExpression()), !dbg !398 + %"$gasrem_2189" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2190" = icmp ugt i64 1, %"$gasrem_2189" + br i1 %"$gascmp_2190", label %"$out_of_gas_2191", label %"$have_gas_2192" -"$out_of_gas_2189": ; preds = %"$have_gas_2185" +"$out_of_gas_2191": ; preds = %"$have_gas_2187" call void @_out_of_gas() - br label %"$have_gas_2190" + br label %"$have_gas_2192" -"$have_gas_2190": ; preds = %"$out_of_gas_2189", %"$have_gas_2185" - %"$consume_2191" = sub i64 %"$gasrem_2187", 1 - store i64 %"$consume_2191", i64* @_gasrem, align 8 - store %Uint256 { i256 10004000600040001 }, %Uint256* %"$ans_100", align 8, !dbg !133 - %"$gasrem_2192" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2193" = icmp ugt i64 1, %"$gasrem_2192" - br i1 %"$gascmp_2193", label %"$out_of_gas_2194", label %"$have_gas_2195" +"$have_gas_2192": ; preds = %"$out_of_gas_2191", %"$have_gas_2187" + %"$consume_2193" = sub i64 %"$gasrem_2189", 1 + store i64 %"$consume_2193", i64* @_gasrem, align 8 + store %Uint256 { i256 10004000600040001 }, %Uint256* %"$ans_100", align 8, !dbg !399 + %"$gasrem_2194" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2195" = icmp ugt i64 1, %"$gasrem_2194" + br i1 %"$gascmp_2195", label %"$out_of_gas_2196", label %"$have_gas_2197" -"$out_of_gas_2194": ; preds = %"$have_gas_2190" +"$out_of_gas_2196": ; preds = %"$have_gas_2192" call void @_out_of_gas() - br label %"$have_gas_2195" + br label %"$have_gas_2197" -"$have_gas_2195": ; preds = %"$out_of_gas_2194", %"$have_gas_2190" - %"$consume_2196" = sub i64 %"$gasrem_2192", 1 - store i64 %"$consume_2196", i64* @_gasrem, align 8 +"$have_gas_2197": ; preds = %"$out_of_gas_2196", %"$have_gas_2192" + %"$consume_2198" = sub i64 %"$gasrem_2194", 1 + store i64 %"$consume_2198", i64* @_gasrem, align 8 %"$res__101" = alloca %TName_Bool*, align 8 - %"$gasrem_2198" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2199" = icmp ugt i64 16, %"$gasrem_2198" - br i1 %"$gascmp_2199", label %"$out_of_gas_2200", label %"$have_gas_2201" - -"$out_of_gas_2200": ; preds = %"$have_gas_2195" - call void @_out_of_gas() - br label %"$have_gas_2201" - -"$have_gas_2201": ; preds = %"$out_of_gas_2200", %"$have_gas_2195" - %"$consume_2202" = sub i64 %"$gasrem_2198", 16 - store i64 %"$consume_2202", i64* @_gasrem, align 8 - %"$execptr_load_2203" = load i8*, i8** @_execptr, align 8 - %"$eq_$p_99_2204" = alloca %Uint256, align 8 - %"$$p_99_2205" = load %Uint256, %Uint256* %"$p_99", align 8 - store %Uint256 %"$$p_99_2205", %Uint256* %"$eq_$p_99_2204", align 8 - %"$eq_$ans_100_2206" = alloca %Uint256, align 8 - %"$$ans_100_2207" = load %Uint256, %Uint256* %"$ans_100", align 8 - store %Uint256 %"$$ans_100_2207", %Uint256* %"$eq_$ans_100_2206", align 8 - %"$eq_call_2208" = call %TName_Bool* @_eq_Uint256(i8* %"$execptr_load_2203", %Uint256* %"$eq_$p_99_2204", %Uint256* %"$eq_$ans_100_2206"), !dbg !134 - store %TName_Bool* %"$eq_call_2208", %TName_Bool** %"$res__101", align 8, !dbg !134 - %"$gasrem_2210" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2211" = icmp ugt i64 1, %"$gasrem_2210" - br i1 %"$gascmp_2211", label %"$out_of_gas_2212", label %"$have_gas_2213" - -"$out_of_gas_2212": ; preds = %"$have_gas_2201" - call void @_out_of_gas() - br label %"$have_gas_2213" - -"$have_gas_2213": ; preds = %"$out_of_gas_2212", %"$have_gas_2201" - %"$consume_2214" = sub i64 %"$gasrem_2210", 1 - store i64 %"$consume_2214", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$res__101", metadata !400, metadata !DIExpression()), !dbg !401 + %"$gasrem_2200" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2201" = icmp ugt i64 16, %"$gasrem_2200" + br i1 %"$gascmp_2201", label %"$out_of_gas_2202", label %"$have_gas_2203" + +"$out_of_gas_2202": ; preds = %"$have_gas_2197" + call void @_out_of_gas() + br label %"$have_gas_2203" + +"$have_gas_2203": ; preds = %"$out_of_gas_2202", %"$have_gas_2197" + %"$consume_2204" = sub i64 %"$gasrem_2200", 16 + store i64 %"$consume_2204", i64* @_gasrem, align 8 + %"$execptr_load_2205" = load i8*, i8** @_execptr, align 8 + %"$eq_$p_99_2206" = alloca %Uint256, align 8 + %"$$p_99_2207" = load %Uint256, %Uint256* %"$p_99", align 8 + store %Uint256 %"$$p_99_2207", %Uint256* %"$eq_$p_99_2206", align 8 + %"$eq_$ans_100_2208" = alloca %Uint256, align 8 + %"$$ans_100_2209" = load %Uint256, %Uint256* %"$ans_100", align 8 + store %Uint256 %"$$ans_100_2209", %Uint256* %"$eq_$ans_100_2208", align 8 + %"$eq_call_2210" = call %TName_Bool* @_eq_Uint256(i8* %"$execptr_load_2205", %Uint256* %"$eq_$p_99_2206", %Uint256* %"$eq_$ans_100_2208"), !dbg !402 + store %TName_Bool* %"$eq_call_2210", %TName_Bool** %"$res__101", align 8, !dbg !402 + %"$gasrem_2212" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2213" = icmp ugt i64 1, %"$gasrem_2212" + br i1 %"$gascmp_2213", label %"$out_of_gas_2214", label %"$have_gas_2215" + +"$out_of_gas_2214": ; preds = %"$have_gas_2203" + call void @_out_of_gas() + br label %"$have_gas_2215" + +"$have_gas_2215": ; preds = %"$out_of_gas_2214", %"$have_gas_2203" + %"$consume_2216" = sub i64 %"$gasrem_2212", 1 + store i64 %"$consume_2216", i64* @_gasrem, align 8 %"$BoolUtils.andb_187" = alloca { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, align 8 - %"$BoolUtils.andb_2215" = 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_2216" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_2215", 0 - %"$BoolUtils.andb_envptr_2217" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_2215", 1 - %"$$res_98_2218" = load %TName_Bool*, %TName_Bool** %"$res_98", align 8 - %"$BoolUtils.andb_call_2219" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_2216"(i8* %"$BoolUtils.andb_envptr_2217", %TName_Bool* %"$$res_98_2218"), !dbg !135 - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_2219", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_187", align 8, !dbg !135 + %"$BoolUtils.andb_2217" = 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_2218" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_2217", 0 + %"$BoolUtils.andb_envptr_2219" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_2217", 1 + %"$$res_98_2220" = load %TName_Bool*, %TName_Bool** %"$res_98", align 8 + %"$BoolUtils.andb_call_2221" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_2218"(i8* %"$BoolUtils.andb_envptr_2219", %TName_Bool* %"$$res_98_2220"), !dbg !403 + store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_2221", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_187", align 8, !dbg !403 %"$BoolUtils.andb_188" = alloca %TName_Bool*, align 8 - %"$$BoolUtils.andb_187_2220" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_187", align 8 - %"$$BoolUtils.andb_187_fptr_2221" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_187_2220", 0 - %"$$BoolUtils.andb_187_envptr_2222" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_187_2220", 1 - %"$$res__101_2223" = load %TName_Bool*, %TName_Bool** %"$res__101", align 8 - %"$$BoolUtils.andb_187_call_2224" = call %TName_Bool* %"$$BoolUtils.andb_187_fptr_2221"(i8* %"$$BoolUtils.andb_187_envptr_2222", %TName_Bool* %"$$res__101_2223"), !dbg !135 - store %TName_Bool* %"$$BoolUtils.andb_187_call_2224", %TName_Bool** %"$BoolUtils.andb_188", align 8, !dbg !135 - %"$$BoolUtils.andb_188_2225" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_188", align 8 - store %TName_Bool* %"$$BoolUtils.andb_188_2225", %TName_Bool** %"$res_102", align 8, !dbg !135 - %"$gasrem_2226" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2227" = icmp ugt i64 1, %"$gasrem_2226" - br i1 %"$gascmp_2227", label %"$out_of_gas_2228", label %"$have_gas_2229" - -"$out_of_gas_2228": ; preds = %"$have_gas_2213" - call void @_out_of_gas() - br label %"$have_gas_2229" - -"$have_gas_2229": ; preds = %"$out_of_gas_2228", %"$have_gas_2213" - %"$consume_2230" = sub i64 %"$gasrem_2226", 1 - store i64 %"$consume_2230", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$BoolUtils.andb_188", metadata !404, metadata !DIExpression()), !dbg !403 + %"$$BoolUtils.andb_187_2222" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_187", align 8 + %"$$BoolUtils.andb_187_fptr_2223" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_187_2222", 0 + %"$$BoolUtils.andb_187_envptr_2224" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_187_2222", 1 + %"$$res__101_2225" = load %TName_Bool*, %TName_Bool** %"$res__101", align 8 + %"$$BoolUtils.andb_187_call_2226" = call %TName_Bool* %"$$BoolUtils.andb_187_fptr_2223"(i8* %"$$BoolUtils.andb_187_envptr_2224", %TName_Bool* %"$$res__101_2225"), !dbg !403 + store %TName_Bool* %"$$BoolUtils.andb_187_call_2226", %TName_Bool** %"$BoolUtils.andb_188", align 8, !dbg !403 + %"$$BoolUtils.andb_188_2227" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_188", align 8 + store %TName_Bool* %"$$BoolUtils.andb_188_2227", %TName_Bool** %"$res_102", align 8, !dbg !403 + %"$gasrem_2228" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2229" = icmp ugt i64 1, %"$gasrem_2228" + br i1 %"$gascmp_2229", label %"$out_of_gas_2230", label %"$have_gas_2231" + +"$out_of_gas_2230": ; preds = %"$have_gas_2215" + call void @_out_of_gas() + br label %"$have_gas_2231" + +"$have_gas_2231": ; preds = %"$out_of_gas_2230", %"$have_gas_2215" + %"$consume_2232" = sub i64 %"$gasrem_2228", 1 + store i64 %"$consume_2232", i64* @_gasrem, align 8 %"$p_103" = alloca %Uint256, align 8 - %"$p4_2231" = load %Uint32, %Uint32* %p4, align 4 - %"$valueof_2232" = extractvalue %Uint32 %"$p4_2231", 0 - %"$valueof_2233" = zext i32 %"$valueof_2232" to i64 - %"$gaslogof_2234" = uitofp i64 %"$valueof_2233" to double - %"$gaslogof_2235" = fadd double %"$gaslogof_2234", 1.000000e+00 - %"$gaslogof_2236" = call double @llvm.log.f64(double %"$gaslogof_2235") - %"$gaslogof_2237" = fptoui double %"$gaslogof_2236" to i64 - %"$gaslogof_2238" = add i64 %"$gaslogof_2237", 1 - %"$gasmul_2239" = mul i64 20, %"$gaslogof_2238" - %"$gasmul_2240" = mul i64 %"$gasmul_2239", 4 - %"$gasrem_2241" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2242" = icmp ugt i64 %"$gasmul_2240", %"$gasrem_2241" - br i1 %"$gascmp_2242", label %"$out_of_gas_2243", label %"$have_gas_2244" - -"$out_of_gas_2243": ; preds = %"$have_gas_2229" - call void @_out_of_gas() - br label %"$have_gas_2244" - -"$have_gas_2244": ; preds = %"$out_of_gas_2243", %"$have_gas_2229" - %"$consume_2245" = sub i64 %"$gasrem_2241", %"$gasmul_2240" - store i64 %"$consume_2245", i64* @_gasrem, align 8 - %"$execptr_load_2246" = load i8*, i8** @_execptr, align 8 - %"$pow_t7_2247" = alloca %Uint256, align 8 - %"$t7_2248" = load %Uint256, %Uint256* %t7, align 8 - store %Uint256 %"$t7_2248", %Uint256* %"$pow_t7_2247", align 8 - %"$p4_2249" = load %Uint32, %Uint32* %p4, align 4 - %"$pow_call_2250" = call %Uint256* @_pow_Uint256(i8* %"$execptr_load_2246", %Uint256* %"$pow_t7_2247", %Uint32 %"$p4_2249"), !dbg !136 - %"$pow_2252" = load %Uint256, %Uint256* %"$pow_call_2250", align 8 - store %Uint256 %"$pow_2252", %Uint256* %"$p_103", align 8, !dbg !136 - %"$gasrem_2253" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2254" = icmp ugt i64 1, %"$gasrem_2253" - br i1 %"$gascmp_2254", label %"$out_of_gas_2255", label %"$have_gas_2256" - -"$out_of_gas_2255": ; preds = %"$have_gas_2244" - call void @_out_of_gas() - br label %"$have_gas_2256" - -"$have_gas_2256": ; preds = %"$out_of_gas_2255", %"$have_gas_2244" - %"$consume_2257" = sub i64 %"$gasrem_2253", 1 - store i64 %"$consume_2257", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %Uint256* %"$p_103", metadata !405, metadata !DIExpression()), !dbg !406 + %"$p4_2233" = load %Uint32, %Uint32* %p4, align 4 + %"$valueof_2234" = extractvalue %Uint32 %"$p4_2233", 0 + %"$valueof_2235" = zext i32 %"$valueof_2234" to i64 + %"$gaslogof_2236" = uitofp i64 %"$valueof_2235" to double + %"$gaslogof_2237" = fadd double %"$gaslogof_2236", 1.000000e+00 + %"$gaslogof_2238" = call double @llvm.log.f64(double %"$gaslogof_2237") + %"$gaslogof_2239" = fptoui double %"$gaslogof_2238" to i64 + %"$gaslogof_2240" = add i64 %"$gaslogof_2239", 1 + %"$gasmul_2241" = mul i64 20, %"$gaslogof_2240" + %"$gasmul_2242" = mul i64 %"$gasmul_2241", 4 + %"$gasrem_2243" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2244" = icmp ugt i64 %"$gasmul_2242", %"$gasrem_2243" + br i1 %"$gascmp_2244", label %"$out_of_gas_2245", label %"$have_gas_2246" + +"$out_of_gas_2245": ; preds = %"$have_gas_2231" + call void @_out_of_gas() + br label %"$have_gas_2246" + +"$have_gas_2246": ; preds = %"$out_of_gas_2245", %"$have_gas_2231" + %"$consume_2247" = sub i64 %"$gasrem_2243", %"$gasmul_2242" + store i64 %"$consume_2247", i64* @_gasrem, align 8 + %"$execptr_load_2248" = load i8*, i8** @_execptr, align 8 + %"$pow_t7_2249" = alloca %Uint256, align 8 + %"$t7_2250" = load %Uint256, %Uint256* %t7, align 8 + store %Uint256 %"$t7_2250", %Uint256* %"$pow_t7_2249", align 8 + %"$p4_2251" = load %Uint32, %Uint32* %p4, align 4 + %"$pow_call_2252" = call %Uint256* @_pow_Uint256(i8* %"$execptr_load_2248", %Uint256* %"$pow_t7_2249", %Uint32 %"$p4_2251"), !dbg !407 + %"$pow_2254" = load %Uint256, %Uint256* %"$pow_call_2252", align 8 + store %Uint256 %"$pow_2254", %Uint256* %"$p_103", align 8, !dbg !407 + %"$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_2246" + call void @_out_of_gas() + br label %"$have_gas_2258" + +"$have_gas_2258": ; preds = %"$out_of_gas_2257", %"$have_gas_2246" + %"$consume_2259" = sub i64 %"$gasrem_2255", 1 + store i64 %"$consume_2259", i64* @_gasrem, align 8 %"$res_106" = alloca %TName_Bool*, 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" + call void @llvm.dbg.declare(metadata %TName_Bool** %"$res_106", metadata !408, metadata !DIExpression()), !dbg !409 + %"$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_2260": ; preds = %"$have_gas_2256" +"$out_of_gas_2262": ; preds = %"$have_gas_2258" call void @_out_of_gas() - br label %"$have_gas_2261" + br label %"$have_gas_2263" -"$have_gas_2261": ; preds = %"$out_of_gas_2260", %"$have_gas_2256" - %"$consume_2262" = sub i64 %"$gasrem_2258", 1 - store i64 %"$consume_2262", i64* @_gasrem, 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 %"$ans_104" = alloca %Uint256, align 8 - %"$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" + call void @llvm.dbg.declare(metadata %Uint256* %"$ans_104", metadata !410, metadata !DIExpression()), !dbg !411 + %"$gasrem_2265" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2266" = icmp ugt i64 1, %"$gasrem_2265" + br i1 %"$gascmp_2266", label %"$out_of_gas_2267", label %"$have_gas_2268" -"$out_of_gas_2265": ; preds = %"$have_gas_2261" +"$out_of_gas_2267": ; preds = %"$have_gas_2263" call void @_out_of_gas() - br label %"$have_gas_2266" + br label %"$have_gas_2268" -"$have_gas_2266": ; preds = %"$out_of_gas_2265", %"$have_gas_2261" - %"$consume_2267" = sub i64 %"$gasrem_2263", 1 - store i64 %"$consume_2267", i64* @_gasrem, align 8 - store %Uint256 { i256 10010004501200210025202100120004500100001 }, %Uint256* %"$ans_104", align 8, !dbg !137 - %"$gasrem_2268" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2269" = icmp ugt i64 1, %"$gasrem_2268" - br i1 %"$gascmp_2269", label %"$out_of_gas_2270", label %"$have_gas_2271" +"$have_gas_2268": ; preds = %"$out_of_gas_2267", %"$have_gas_2263" + %"$consume_2269" = sub i64 %"$gasrem_2265", 1 + store i64 %"$consume_2269", i64* @_gasrem, align 8 + store %Uint256 { i256 10010004501200210025202100120004500100001 }, %Uint256* %"$ans_104", align 8, !dbg !412 + %"$gasrem_2270" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2271" = icmp ugt i64 1, %"$gasrem_2270" + br i1 %"$gascmp_2271", label %"$out_of_gas_2272", label %"$have_gas_2273" -"$out_of_gas_2270": ; preds = %"$have_gas_2266" +"$out_of_gas_2272": ; preds = %"$have_gas_2268" call void @_out_of_gas() - br label %"$have_gas_2271" + br label %"$have_gas_2273" -"$have_gas_2271": ; preds = %"$out_of_gas_2270", %"$have_gas_2266" - %"$consume_2272" = sub i64 %"$gasrem_2268", 1 - store i64 %"$consume_2272", i64* @_gasrem, align 8 +"$have_gas_2273": ; preds = %"$out_of_gas_2272", %"$have_gas_2268" + %"$consume_2274" = sub i64 %"$gasrem_2270", 1 + store i64 %"$consume_2274", i64* @_gasrem, align 8 %"$res__105" = alloca %TName_Bool*, align 8 - %"$gasrem_2274" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2275" = icmp ugt i64 16, %"$gasrem_2274" - br i1 %"$gascmp_2275", label %"$out_of_gas_2276", label %"$have_gas_2277" - -"$out_of_gas_2276": ; preds = %"$have_gas_2271" - call void @_out_of_gas() - br label %"$have_gas_2277" - -"$have_gas_2277": ; preds = %"$out_of_gas_2276", %"$have_gas_2271" - %"$consume_2278" = sub i64 %"$gasrem_2274", 16 - store i64 %"$consume_2278", i64* @_gasrem, align 8 - %"$execptr_load_2279" = load i8*, i8** @_execptr, align 8 - %"$eq_$p_103_2280" = alloca %Uint256, align 8 - %"$$p_103_2281" = load %Uint256, %Uint256* %"$p_103", align 8 - store %Uint256 %"$$p_103_2281", %Uint256* %"$eq_$p_103_2280", align 8 - %"$eq_$ans_104_2282" = alloca %Uint256, align 8 - %"$$ans_104_2283" = load %Uint256, %Uint256* %"$ans_104", align 8 - store %Uint256 %"$$ans_104_2283", %Uint256* %"$eq_$ans_104_2282", align 8 - %"$eq_call_2284" = call %TName_Bool* @_eq_Uint256(i8* %"$execptr_load_2279", %Uint256* %"$eq_$p_103_2280", %Uint256* %"$eq_$ans_104_2282"), !dbg !138 - store %TName_Bool* %"$eq_call_2284", %TName_Bool** %"$res__105", align 8, !dbg !138 - %"$gasrem_2286" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2287" = icmp ugt i64 1, %"$gasrem_2286" - br i1 %"$gascmp_2287", label %"$out_of_gas_2288", label %"$have_gas_2289" - -"$out_of_gas_2288": ; preds = %"$have_gas_2277" - call void @_out_of_gas() - br label %"$have_gas_2289" - -"$have_gas_2289": ; preds = %"$out_of_gas_2288", %"$have_gas_2277" - %"$consume_2290" = sub i64 %"$gasrem_2286", 1 - store i64 %"$consume_2290", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$res__105", metadata !413, metadata !DIExpression()), !dbg !414 + %"$gasrem_2276" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2277" = icmp ugt i64 16, %"$gasrem_2276" + br i1 %"$gascmp_2277", label %"$out_of_gas_2278", label %"$have_gas_2279" + +"$out_of_gas_2278": ; preds = %"$have_gas_2273" + call void @_out_of_gas() + br label %"$have_gas_2279" + +"$have_gas_2279": ; preds = %"$out_of_gas_2278", %"$have_gas_2273" + %"$consume_2280" = sub i64 %"$gasrem_2276", 16 + store i64 %"$consume_2280", i64* @_gasrem, align 8 + %"$execptr_load_2281" = load i8*, i8** @_execptr, align 8 + %"$eq_$p_103_2282" = alloca %Uint256, align 8 + %"$$p_103_2283" = load %Uint256, %Uint256* %"$p_103", align 8 + store %Uint256 %"$$p_103_2283", %Uint256* %"$eq_$p_103_2282", align 8 + %"$eq_$ans_104_2284" = alloca %Uint256, align 8 + %"$$ans_104_2285" = load %Uint256, %Uint256* %"$ans_104", align 8 + store %Uint256 %"$$ans_104_2285", %Uint256* %"$eq_$ans_104_2284", align 8 + %"$eq_call_2286" = call %TName_Bool* @_eq_Uint256(i8* %"$execptr_load_2281", %Uint256* %"$eq_$p_103_2282", %Uint256* %"$eq_$ans_104_2284"), !dbg !415 + store %TName_Bool* %"$eq_call_2286", %TName_Bool** %"$res__105", align 8, !dbg !415 + %"$gasrem_2288" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2289" = icmp ugt i64 1, %"$gasrem_2288" + br i1 %"$gascmp_2289", label %"$out_of_gas_2290", label %"$have_gas_2291" + +"$out_of_gas_2290": ; preds = %"$have_gas_2279" + call void @_out_of_gas() + br label %"$have_gas_2291" + +"$have_gas_2291": ; preds = %"$out_of_gas_2290", %"$have_gas_2279" + %"$consume_2292" = sub i64 %"$gasrem_2288", 1 + store i64 %"$consume_2292", i64* @_gasrem, align 8 %"$BoolUtils.andb_189" = alloca { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, align 8 - %"$BoolUtils.andb_2291" = 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_2292" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_2291", 0 - %"$BoolUtils.andb_envptr_2293" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_2291", 1 - %"$$res_102_2294" = load %TName_Bool*, %TName_Bool** %"$res_102", align 8 - %"$BoolUtils.andb_call_2295" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_2292"(i8* %"$BoolUtils.andb_envptr_2293", %TName_Bool* %"$$res_102_2294"), !dbg !139 - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_2295", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_189", align 8, !dbg !139 + %"$BoolUtils.andb_2293" = 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_2294" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_2293", 0 + %"$BoolUtils.andb_envptr_2295" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_2293", 1 + %"$$res_102_2296" = load %TName_Bool*, %TName_Bool** %"$res_102", align 8 + %"$BoolUtils.andb_call_2297" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_2294"(i8* %"$BoolUtils.andb_envptr_2295", %TName_Bool* %"$$res_102_2296"), !dbg !416 + store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_2297", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_189", align 8, !dbg !416 %"$BoolUtils.andb_190" = alloca %TName_Bool*, align 8 - %"$$BoolUtils.andb_189_2296" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_189", align 8 - %"$$BoolUtils.andb_189_fptr_2297" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_189_2296", 0 - %"$$BoolUtils.andb_189_envptr_2298" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_189_2296", 1 - %"$$res__105_2299" = load %TName_Bool*, %TName_Bool** %"$res__105", align 8 - %"$$BoolUtils.andb_189_call_2300" = call %TName_Bool* %"$$BoolUtils.andb_189_fptr_2297"(i8* %"$$BoolUtils.andb_189_envptr_2298", %TName_Bool* %"$$res__105_2299"), !dbg !139 - store %TName_Bool* %"$$BoolUtils.andb_189_call_2300", %TName_Bool** %"$BoolUtils.andb_190", align 8, !dbg !139 - %"$$BoolUtils.andb_190_2301" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_190", align 8 - store %TName_Bool* %"$$BoolUtils.andb_190_2301", %TName_Bool** %"$res_106", align 8, !dbg !139 - %"$gasrem_2302" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2303" = icmp ugt i64 1, %"$gasrem_2302" - br i1 %"$gascmp_2303", label %"$out_of_gas_2304", label %"$have_gas_2305" - -"$out_of_gas_2304": ; preds = %"$have_gas_2289" - call void @_out_of_gas() - br label %"$have_gas_2305" - -"$have_gas_2305": ; preds = %"$out_of_gas_2304", %"$have_gas_2289" - %"$consume_2306" = sub i64 %"$gasrem_2302", 1 - store i64 %"$consume_2306", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$BoolUtils.andb_190", metadata !417, metadata !DIExpression()), !dbg !416 + %"$$BoolUtils.andb_189_2298" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_189", align 8 + %"$$BoolUtils.andb_189_fptr_2299" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_189_2298", 0 + %"$$BoolUtils.andb_189_envptr_2300" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_189_2298", 1 + %"$$res__105_2301" = load %TName_Bool*, %TName_Bool** %"$res__105", align 8 + %"$$BoolUtils.andb_189_call_2302" = call %TName_Bool* %"$$BoolUtils.andb_189_fptr_2299"(i8* %"$$BoolUtils.andb_189_envptr_2300", %TName_Bool* %"$$res__105_2301"), !dbg !416 + store %TName_Bool* %"$$BoolUtils.andb_189_call_2302", %TName_Bool** %"$BoolUtils.andb_190", align 8, !dbg !416 + %"$$BoolUtils.andb_190_2303" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_190", align 8 + store %TName_Bool* %"$$BoolUtils.andb_190_2303", %TName_Bool** %"$res_106", align 8, !dbg !416 + %"$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_2306": ; preds = %"$have_gas_2291" + call void @_out_of_gas() + br label %"$have_gas_2307" + +"$have_gas_2307": ; preds = %"$out_of_gas_2306", %"$have_gas_2291" + %"$consume_2308" = sub i64 %"$gasrem_2304", 1 + store i64 %"$consume_2308", i64* @_gasrem, align 8 %"$p_107" = alloca %Int256, align 8 - %"$p1_2307" = load %Uint32, %Uint32* %p1, align 4 - %"$valueof_2308" = extractvalue %Uint32 %"$p1_2307", 0 - %"$valueof_2309" = zext i32 %"$valueof_2308" to i64 - %"$gaslogof_2310" = uitofp i64 %"$valueof_2309" to double - %"$gaslogof_2311" = fadd double %"$gaslogof_2310", 1.000000e+00 - %"$gaslogof_2312" = call double @llvm.log.f64(double %"$gaslogof_2311") - %"$gaslogof_2313" = fptoui double %"$gaslogof_2312" to i64 - %"$gaslogof_2314" = add i64 %"$gaslogof_2313", 1 - %"$gasmul_2315" = mul i64 20, %"$gaslogof_2314" - %"$gasmul_2316" = mul i64 %"$gasmul_2315", 4 - %"$gasrem_2317" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2318" = icmp ugt i64 %"$gasmul_2316", %"$gasrem_2317" - br i1 %"$gascmp_2318", label %"$out_of_gas_2319", label %"$have_gas_2320" - -"$out_of_gas_2319": ; preds = %"$have_gas_2305" - call void @_out_of_gas() - br label %"$have_gas_2320" - -"$have_gas_2320": ; preds = %"$out_of_gas_2319", %"$have_gas_2305" - %"$consume_2321" = sub i64 %"$gasrem_2317", %"$gasmul_2316" - store i64 %"$consume_2321", i64* @_gasrem, align 8 - %"$execptr_load_2322" = load i8*, i8** @_execptr, align 8 - %"$pow_t8_2323" = alloca %Int256, align 8 - %"$t8_2324" = load %Int256, %Int256* %t8, align 8 - store %Int256 %"$t8_2324", %Int256* %"$pow_t8_2323", align 8 - %"$p1_2325" = load %Uint32, %Uint32* %p1, align 4 - %"$pow_call_2326" = call %Int256* @_pow_Int256(i8* %"$execptr_load_2322", %Int256* %"$pow_t8_2323", %Uint32 %"$p1_2325"), !dbg !140 - %"$pow_2328" = load %Int256, %Int256* %"$pow_call_2326", align 8 - store %Int256 %"$pow_2328", %Int256* %"$p_107", align 8, !dbg !140 - %"$gasrem_2329" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2330" = icmp ugt i64 1, %"$gasrem_2329" - br i1 %"$gascmp_2330", label %"$out_of_gas_2331", label %"$have_gas_2332" - -"$out_of_gas_2331": ; preds = %"$have_gas_2320" - call void @_out_of_gas() - br label %"$have_gas_2332" - -"$have_gas_2332": ; preds = %"$out_of_gas_2331", %"$have_gas_2320" - %"$consume_2333" = sub i64 %"$gasrem_2329", 1 - store i64 %"$consume_2333", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %Int256* %"$p_107", metadata !418, metadata !DIExpression()), !dbg !419 + %"$p1_2309" = load %Uint32, %Uint32* %p1, align 4 + %"$valueof_2310" = extractvalue %Uint32 %"$p1_2309", 0 + %"$valueof_2311" = zext i32 %"$valueof_2310" to i64 + %"$gaslogof_2312" = uitofp i64 %"$valueof_2311" to double + %"$gaslogof_2313" = fadd double %"$gaslogof_2312", 1.000000e+00 + %"$gaslogof_2314" = call double @llvm.log.f64(double %"$gaslogof_2313") + %"$gaslogof_2315" = fptoui double %"$gaslogof_2314" to i64 + %"$gaslogof_2316" = add i64 %"$gaslogof_2315", 1 + %"$gasmul_2317" = mul i64 20, %"$gaslogof_2316" + %"$gasmul_2318" = mul i64 %"$gasmul_2317", 4 + %"$gasrem_2319" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2320" = icmp ugt i64 %"$gasmul_2318", %"$gasrem_2319" + br i1 %"$gascmp_2320", label %"$out_of_gas_2321", label %"$have_gas_2322" + +"$out_of_gas_2321": ; preds = %"$have_gas_2307" + call void @_out_of_gas() + br label %"$have_gas_2322" + +"$have_gas_2322": ; preds = %"$out_of_gas_2321", %"$have_gas_2307" + %"$consume_2323" = sub i64 %"$gasrem_2319", %"$gasmul_2318" + store i64 %"$consume_2323", i64* @_gasrem, align 8 + %"$execptr_load_2324" = load i8*, i8** @_execptr, align 8 + %"$pow_t8_2325" = alloca %Int256, align 8 + %"$t8_2326" = load %Int256, %Int256* %t8, align 8 + store %Int256 %"$t8_2326", %Int256* %"$pow_t8_2325", align 8 + %"$p1_2327" = load %Uint32, %Uint32* %p1, align 4 + %"$pow_call_2328" = call %Int256* @_pow_Int256(i8* %"$execptr_load_2324", %Int256* %"$pow_t8_2325", %Uint32 %"$p1_2327"), !dbg !420 + %"$pow_2330" = load %Int256, %Int256* %"$pow_call_2328", align 8 + store %Int256 %"$pow_2330", %Int256* %"$p_107", align 8, !dbg !420 + %"$gasrem_2331" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2332" = icmp ugt i64 1, %"$gasrem_2331" + br i1 %"$gascmp_2332", label %"$out_of_gas_2333", label %"$have_gas_2334" + +"$out_of_gas_2333": ; preds = %"$have_gas_2322" + call void @_out_of_gas() + br label %"$have_gas_2334" + +"$have_gas_2334": ; preds = %"$out_of_gas_2333", %"$have_gas_2322" + %"$consume_2335" = sub i64 %"$gasrem_2331", 1 + store i64 %"$consume_2335", i64* @_gasrem, align 8 %"$res_110" = alloca %TName_Bool*, align 8 - %"$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" + call void @llvm.dbg.declare(metadata %TName_Bool** %"$res_110", metadata !421, metadata !DIExpression()), !dbg !422 + %"$gasrem_2336" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2337" = icmp ugt i64 1, %"$gasrem_2336" + br i1 %"$gascmp_2337", label %"$out_of_gas_2338", label %"$have_gas_2339" -"$out_of_gas_2336": ; preds = %"$have_gas_2332" +"$out_of_gas_2338": ; preds = %"$have_gas_2334" call void @_out_of_gas() - br label %"$have_gas_2337" + br label %"$have_gas_2339" -"$have_gas_2337": ; preds = %"$out_of_gas_2336", %"$have_gas_2332" - %"$consume_2338" = sub i64 %"$gasrem_2334", 1 - store i64 %"$consume_2338", i64* @_gasrem, align 8 +"$have_gas_2339": ; preds = %"$out_of_gas_2338", %"$have_gas_2334" + %"$consume_2340" = sub i64 %"$gasrem_2336", 1 + store i64 %"$consume_2340", i64* @_gasrem, align 8 %"$ans_108" = alloca %Int256, 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" + call void @llvm.dbg.declare(metadata %Int256* %"$ans_108", metadata !423, metadata !DIExpression()), !dbg !424 + %"$gasrem_2341" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2342" = icmp ugt i64 1, %"$gasrem_2341" + br i1 %"$gascmp_2342", label %"$out_of_gas_2343", label %"$have_gas_2344" -"$out_of_gas_2341": ; preds = %"$have_gas_2337" +"$out_of_gas_2343": ; preds = %"$have_gas_2339" call void @_out_of_gas() - br label %"$have_gas_2342" + br label %"$have_gas_2344" -"$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 - store %Int256 { i256 1 }, %Int256* %"$ans_108", align 8, !dbg !141 - %"$gasrem_2344" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2345" = icmp ugt i64 1, %"$gasrem_2344" - br i1 %"$gascmp_2345", label %"$out_of_gas_2346", label %"$have_gas_2347" +"$have_gas_2344": ; preds = %"$out_of_gas_2343", %"$have_gas_2339" + %"$consume_2345" = sub i64 %"$gasrem_2341", 1 + store i64 %"$consume_2345", i64* @_gasrem, align 8 + store %Int256 { i256 1 }, %Int256* %"$ans_108", align 8, !dbg !425 + %"$gasrem_2346" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2347" = icmp ugt i64 1, %"$gasrem_2346" + br i1 %"$gascmp_2347", label %"$out_of_gas_2348", label %"$have_gas_2349" -"$out_of_gas_2346": ; preds = %"$have_gas_2342" +"$out_of_gas_2348": ; preds = %"$have_gas_2344" call void @_out_of_gas() - br label %"$have_gas_2347" + br label %"$have_gas_2349" -"$have_gas_2347": ; preds = %"$out_of_gas_2346", %"$have_gas_2342" - %"$consume_2348" = sub i64 %"$gasrem_2344", 1 - store i64 %"$consume_2348", i64* @_gasrem, align 8 +"$have_gas_2349": ; preds = %"$out_of_gas_2348", %"$have_gas_2344" + %"$consume_2350" = sub i64 %"$gasrem_2346", 1 + store i64 %"$consume_2350", i64* @_gasrem, align 8 %"$res__109" = alloca %TName_Bool*, align 8 - %"$gasrem_2350" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2351" = icmp ugt i64 16, %"$gasrem_2350" - br i1 %"$gascmp_2351", label %"$out_of_gas_2352", label %"$have_gas_2353" - -"$out_of_gas_2352": ; preds = %"$have_gas_2347" - call void @_out_of_gas() - br label %"$have_gas_2353" - -"$have_gas_2353": ; preds = %"$out_of_gas_2352", %"$have_gas_2347" - %"$consume_2354" = sub i64 %"$gasrem_2350", 16 - store i64 %"$consume_2354", i64* @_gasrem, align 8 - %"$execptr_load_2355" = load i8*, i8** @_execptr, align 8 - %"$eq_$p_107_2356" = alloca %Int256, align 8 - %"$$p_107_2357" = load %Int256, %Int256* %"$p_107", align 8 - store %Int256 %"$$p_107_2357", %Int256* %"$eq_$p_107_2356", align 8 - %"$eq_$ans_108_2358" = alloca %Int256, align 8 - %"$$ans_108_2359" = load %Int256, %Int256* %"$ans_108", align 8 - store %Int256 %"$$ans_108_2359", %Int256* %"$eq_$ans_108_2358", align 8 - %"$eq_call_2360" = call %TName_Bool* @_eq_Int256(i8* %"$execptr_load_2355", %Int256* %"$eq_$p_107_2356", %Int256* %"$eq_$ans_108_2358"), !dbg !142 - store %TName_Bool* %"$eq_call_2360", %TName_Bool** %"$res__109", align 8, !dbg !142 - %"$gasrem_2362" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2363" = icmp ugt i64 1, %"$gasrem_2362" - br i1 %"$gascmp_2363", label %"$out_of_gas_2364", label %"$have_gas_2365" - -"$out_of_gas_2364": ; preds = %"$have_gas_2353" - call void @_out_of_gas() - br label %"$have_gas_2365" - -"$have_gas_2365": ; preds = %"$out_of_gas_2364", %"$have_gas_2353" - %"$consume_2366" = sub i64 %"$gasrem_2362", 1 - store i64 %"$consume_2366", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$res__109", metadata !426, metadata !DIExpression()), !dbg !427 + %"$gasrem_2352" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2353" = icmp ugt i64 16, %"$gasrem_2352" + br i1 %"$gascmp_2353", label %"$out_of_gas_2354", label %"$have_gas_2355" + +"$out_of_gas_2354": ; preds = %"$have_gas_2349" + call void @_out_of_gas() + br label %"$have_gas_2355" + +"$have_gas_2355": ; preds = %"$out_of_gas_2354", %"$have_gas_2349" + %"$consume_2356" = sub i64 %"$gasrem_2352", 16 + store i64 %"$consume_2356", i64* @_gasrem, align 8 + %"$execptr_load_2357" = load i8*, i8** @_execptr, align 8 + %"$eq_$p_107_2358" = alloca %Int256, align 8 + %"$$p_107_2359" = load %Int256, %Int256* %"$p_107", align 8 + store %Int256 %"$$p_107_2359", %Int256* %"$eq_$p_107_2358", align 8 + %"$eq_$ans_108_2360" = alloca %Int256, align 8 + %"$$ans_108_2361" = load %Int256, %Int256* %"$ans_108", align 8 + store %Int256 %"$$ans_108_2361", %Int256* %"$eq_$ans_108_2360", align 8 + %"$eq_call_2362" = call %TName_Bool* @_eq_Int256(i8* %"$execptr_load_2357", %Int256* %"$eq_$p_107_2358", %Int256* %"$eq_$ans_108_2360"), !dbg !428 + store %TName_Bool* %"$eq_call_2362", %TName_Bool** %"$res__109", align 8, !dbg !428 + %"$gasrem_2364" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2365" = icmp ugt i64 1, %"$gasrem_2364" + br i1 %"$gascmp_2365", label %"$out_of_gas_2366", label %"$have_gas_2367" + +"$out_of_gas_2366": ; preds = %"$have_gas_2355" + call void @_out_of_gas() + br label %"$have_gas_2367" + +"$have_gas_2367": ; preds = %"$out_of_gas_2366", %"$have_gas_2355" + %"$consume_2368" = sub i64 %"$gasrem_2364", 1 + store i64 %"$consume_2368", i64* @_gasrem, align 8 %"$BoolUtils.andb_191" = alloca { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, align 8 - %"$BoolUtils.andb_2367" = 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_2368" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_2367", 0 - %"$BoolUtils.andb_envptr_2369" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_2367", 1 - %"$$res_106_2370" = load %TName_Bool*, %TName_Bool** %"$res_106", align 8 - %"$BoolUtils.andb_call_2371" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_2368"(i8* %"$BoolUtils.andb_envptr_2369", %TName_Bool* %"$$res_106_2370"), !dbg !143 - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_2371", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_191", align 8, !dbg !143 + %"$BoolUtils.andb_2369" = 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_2370" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_2369", 0 + %"$BoolUtils.andb_envptr_2371" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_2369", 1 + %"$$res_106_2372" = load %TName_Bool*, %TName_Bool** %"$res_106", align 8 + %"$BoolUtils.andb_call_2373" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_2370"(i8* %"$BoolUtils.andb_envptr_2371", %TName_Bool* %"$$res_106_2372"), !dbg !429 + store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_2373", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_191", align 8, !dbg !429 %"$BoolUtils.andb_192" = alloca %TName_Bool*, align 8 - %"$$BoolUtils.andb_191_2372" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_191", align 8 - %"$$BoolUtils.andb_191_fptr_2373" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_191_2372", 0 - %"$$BoolUtils.andb_191_envptr_2374" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_191_2372", 1 - %"$$res__109_2375" = load %TName_Bool*, %TName_Bool** %"$res__109", align 8 - %"$$BoolUtils.andb_191_call_2376" = call %TName_Bool* %"$$BoolUtils.andb_191_fptr_2373"(i8* %"$$BoolUtils.andb_191_envptr_2374", %TName_Bool* %"$$res__109_2375"), !dbg !143 - store %TName_Bool* %"$$BoolUtils.andb_191_call_2376", %TName_Bool** %"$BoolUtils.andb_192", align 8, !dbg !143 - %"$$BoolUtils.andb_192_2377" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_192", align 8 - store %TName_Bool* %"$$BoolUtils.andb_192_2377", %TName_Bool** %"$res_110", align 8, !dbg !143 - %"$gasrem_2378" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2379" = icmp ugt i64 1, %"$gasrem_2378" - br i1 %"$gascmp_2379", label %"$out_of_gas_2380", label %"$have_gas_2381" - -"$out_of_gas_2380": ; preds = %"$have_gas_2365" - call void @_out_of_gas() - br label %"$have_gas_2381" - -"$have_gas_2381": ; preds = %"$out_of_gas_2380", %"$have_gas_2365" - %"$consume_2382" = sub i64 %"$gasrem_2378", 1 - store i64 %"$consume_2382", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$BoolUtils.andb_192", metadata !430, metadata !DIExpression()), !dbg !429 + %"$$BoolUtils.andb_191_2374" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_191", align 8 + %"$$BoolUtils.andb_191_fptr_2375" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_191_2374", 0 + %"$$BoolUtils.andb_191_envptr_2376" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_191_2374", 1 + %"$$res__109_2377" = load %TName_Bool*, %TName_Bool** %"$res__109", align 8 + %"$$BoolUtils.andb_191_call_2378" = call %TName_Bool* %"$$BoolUtils.andb_191_fptr_2375"(i8* %"$$BoolUtils.andb_191_envptr_2376", %TName_Bool* %"$$res__109_2377"), !dbg !429 + store %TName_Bool* %"$$BoolUtils.andb_191_call_2378", %TName_Bool** %"$BoolUtils.andb_192", align 8, !dbg !429 + %"$$BoolUtils.andb_192_2379" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_192", align 8 + store %TName_Bool* %"$$BoolUtils.andb_192_2379", %TName_Bool** %"$res_110", align 8, !dbg !429 + %"$gasrem_2380" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2381" = icmp ugt i64 1, %"$gasrem_2380" + br i1 %"$gascmp_2381", label %"$out_of_gas_2382", label %"$have_gas_2383" + +"$out_of_gas_2382": ; preds = %"$have_gas_2367" + call void @_out_of_gas() + br label %"$have_gas_2383" + +"$have_gas_2383": ; preds = %"$out_of_gas_2382", %"$have_gas_2367" + %"$consume_2384" = sub i64 %"$gasrem_2380", 1 + store i64 %"$consume_2384", i64* @_gasrem, align 8 %"$p_111" = alloca %Int256, align 8 - %"$p2_2383" = load %Uint32, %Uint32* %p2, align 4 - %"$valueof_2384" = extractvalue %Uint32 %"$p2_2383", 0 - %"$valueof_2385" = zext i32 %"$valueof_2384" to i64 - %"$gaslogof_2386" = uitofp i64 %"$valueof_2385" to double - %"$gaslogof_2387" = fadd double %"$gaslogof_2386", 1.000000e+00 - %"$gaslogof_2388" = call double @llvm.log.f64(double %"$gaslogof_2387") - %"$gaslogof_2389" = fptoui double %"$gaslogof_2388" to i64 - %"$gaslogof_2390" = add i64 %"$gaslogof_2389", 1 - %"$gasmul_2391" = mul i64 20, %"$gaslogof_2390" - %"$gasmul_2392" = mul i64 %"$gasmul_2391", 4 - %"$gasrem_2393" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2394" = icmp ugt i64 %"$gasmul_2392", %"$gasrem_2393" - br i1 %"$gascmp_2394", label %"$out_of_gas_2395", label %"$have_gas_2396" - -"$out_of_gas_2395": ; preds = %"$have_gas_2381" - call void @_out_of_gas() - br label %"$have_gas_2396" - -"$have_gas_2396": ; preds = %"$out_of_gas_2395", %"$have_gas_2381" - %"$consume_2397" = sub i64 %"$gasrem_2393", %"$gasmul_2392" - store i64 %"$consume_2397", i64* @_gasrem, align 8 - %"$execptr_load_2398" = load i8*, i8** @_execptr, align 8 - %"$pow_t8_2399" = alloca %Int256, align 8 - %"$t8_2400" = load %Int256, %Int256* %t8, align 8 - store %Int256 %"$t8_2400", %Int256* %"$pow_t8_2399", align 8 - %"$p2_2401" = load %Uint32, %Uint32* %p2, align 4 - %"$pow_call_2402" = call %Int256* @_pow_Int256(i8* %"$execptr_load_2398", %Int256* %"$pow_t8_2399", %Uint32 %"$p2_2401"), !dbg !144 - %"$pow_2404" = load %Int256, %Int256* %"$pow_call_2402", align 8 - store %Int256 %"$pow_2404", %Int256* %"$p_111", align 8, !dbg !144 - %"$gasrem_2405" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2406" = icmp ugt i64 1, %"$gasrem_2405" - br i1 %"$gascmp_2406", label %"$out_of_gas_2407", label %"$have_gas_2408" - -"$out_of_gas_2407": ; preds = %"$have_gas_2396" - call void @_out_of_gas() - br label %"$have_gas_2408" - -"$have_gas_2408": ; preds = %"$out_of_gas_2407", %"$have_gas_2396" - %"$consume_2409" = sub i64 %"$gasrem_2405", 1 - store i64 %"$consume_2409", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %Int256* %"$p_111", metadata !431, metadata !DIExpression()), !dbg !432 + %"$p2_2385" = load %Uint32, %Uint32* %p2, align 4 + %"$valueof_2386" = extractvalue %Uint32 %"$p2_2385", 0 + %"$valueof_2387" = zext i32 %"$valueof_2386" to i64 + %"$gaslogof_2388" = uitofp i64 %"$valueof_2387" to double + %"$gaslogof_2389" = fadd double %"$gaslogof_2388", 1.000000e+00 + %"$gaslogof_2390" = call double @llvm.log.f64(double %"$gaslogof_2389") + %"$gaslogof_2391" = fptoui double %"$gaslogof_2390" to i64 + %"$gaslogof_2392" = add i64 %"$gaslogof_2391", 1 + %"$gasmul_2393" = mul i64 20, %"$gaslogof_2392" + %"$gasmul_2394" = mul i64 %"$gasmul_2393", 4 + %"$gasrem_2395" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2396" = icmp ugt i64 %"$gasmul_2394", %"$gasrem_2395" + br i1 %"$gascmp_2396", label %"$out_of_gas_2397", label %"$have_gas_2398" + +"$out_of_gas_2397": ; preds = %"$have_gas_2383" + call void @_out_of_gas() + br label %"$have_gas_2398" + +"$have_gas_2398": ; preds = %"$out_of_gas_2397", %"$have_gas_2383" + %"$consume_2399" = sub i64 %"$gasrem_2395", %"$gasmul_2394" + store i64 %"$consume_2399", i64* @_gasrem, align 8 + %"$execptr_load_2400" = load i8*, i8** @_execptr, align 8 + %"$pow_t8_2401" = alloca %Int256, align 8 + %"$t8_2402" = load %Int256, %Int256* %t8, align 8 + store %Int256 %"$t8_2402", %Int256* %"$pow_t8_2401", align 8 + %"$p2_2403" = load %Uint32, %Uint32* %p2, align 4 + %"$pow_call_2404" = call %Int256* @_pow_Int256(i8* %"$execptr_load_2400", %Int256* %"$pow_t8_2401", %Uint32 %"$p2_2403"), !dbg !433 + %"$pow_2406" = load %Int256, %Int256* %"$pow_call_2404", align 8 + store %Int256 %"$pow_2406", %Int256* %"$p_111", align 8, !dbg !433 + %"$gasrem_2407" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2408" = icmp ugt i64 1, %"$gasrem_2407" + br i1 %"$gascmp_2408", label %"$out_of_gas_2409", label %"$have_gas_2410" + +"$out_of_gas_2409": ; preds = %"$have_gas_2398" + call void @_out_of_gas() + br label %"$have_gas_2410" + +"$have_gas_2410": ; preds = %"$out_of_gas_2409", %"$have_gas_2398" + %"$consume_2411" = sub i64 %"$gasrem_2407", 1 + store i64 %"$consume_2411", i64* @_gasrem, align 8 %"$res_114" = alloca %TName_Bool*, 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" + call void @llvm.dbg.declare(metadata %TName_Bool** %"$res_114", metadata !434, metadata !DIExpression()), !dbg !435 + %"$gasrem_2412" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2413" = icmp ugt i64 1, %"$gasrem_2412" + br i1 %"$gascmp_2413", label %"$out_of_gas_2414", label %"$have_gas_2415" -"$out_of_gas_2412": ; preds = %"$have_gas_2408" +"$out_of_gas_2414": ; preds = %"$have_gas_2410" call void @_out_of_gas() - br label %"$have_gas_2413" + br label %"$have_gas_2415" -"$have_gas_2413": ; preds = %"$out_of_gas_2412", %"$have_gas_2408" - %"$consume_2414" = sub i64 %"$gasrem_2410", 1 - store i64 %"$consume_2414", i64* @_gasrem, align 8 +"$have_gas_2415": ; preds = %"$out_of_gas_2414", %"$have_gas_2410" + %"$consume_2416" = sub i64 %"$gasrem_2412", 1 + store i64 %"$consume_2416", i64* @_gasrem, align 8 %"$ans_112" = alloca %Int256, align 8 - %"$gasrem_2415" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2416" = icmp ugt i64 1, %"$gasrem_2415" - br i1 %"$gascmp_2416", label %"$out_of_gas_2417", label %"$have_gas_2418" + call void @llvm.dbg.declare(metadata %Int256* %"$ans_112", metadata !436, metadata !DIExpression()), !dbg !437 + %"$gasrem_2417" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2418" = icmp ugt i64 1, %"$gasrem_2417" + br i1 %"$gascmp_2418", label %"$out_of_gas_2419", label %"$have_gas_2420" -"$out_of_gas_2417": ; preds = %"$have_gas_2413" +"$out_of_gas_2419": ; preds = %"$have_gas_2415" call void @_out_of_gas() - br label %"$have_gas_2418" + br label %"$have_gas_2420" -"$have_gas_2418": ; preds = %"$out_of_gas_2417", %"$have_gas_2413" - %"$consume_2419" = sub i64 %"$gasrem_2415", 1 - store i64 %"$consume_2419", i64* @_gasrem, align 8 - store %Int256 { i256 -10001 }, %Int256* %"$ans_112", align 8, !dbg !145 - %"$gasrem_2420" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2421" = icmp ugt i64 1, %"$gasrem_2420" - br i1 %"$gascmp_2421", label %"$out_of_gas_2422", label %"$have_gas_2423" +"$have_gas_2420": ; preds = %"$out_of_gas_2419", %"$have_gas_2415" + %"$consume_2421" = sub i64 %"$gasrem_2417", 1 + store i64 %"$consume_2421", i64* @_gasrem, align 8 + store %Int256 { i256 -10001 }, %Int256* %"$ans_112", align 8, !dbg !438 + %"$gasrem_2422" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2423" = icmp ugt i64 1, %"$gasrem_2422" + br i1 %"$gascmp_2423", label %"$out_of_gas_2424", label %"$have_gas_2425" -"$out_of_gas_2422": ; preds = %"$have_gas_2418" +"$out_of_gas_2424": ; preds = %"$have_gas_2420" call void @_out_of_gas() - br label %"$have_gas_2423" + br label %"$have_gas_2425" -"$have_gas_2423": ; preds = %"$out_of_gas_2422", %"$have_gas_2418" - %"$consume_2424" = sub i64 %"$gasrem_2420", 1 - store i64 %"$consume_2424", i64* @_gasrem, align 8 +"$have_gas_2425": ; preds = %"$out_of_gas_2424", %"$have_gas_2420" + %"$consume_2426" = sub i64 %"$gasrem_2422", 1 + store i64 %"$consume_2426", i64* @_gasrem, align 8 %"$res__113" = alloca %TName_Bool*, align 8 - %"$gasrem_2426" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2427" = icmp ugt i64 16, %"$gasrem_2426" - br i1 %"$gascmp_2427", label %"$out_of_gas_2428", label %"$have_gas_2429" - -"$out_of_gas_2428": ; preds = %"$have_gas_2423" - call void @_out_of_gas() - br label %"$have_gas_2429" - -"$have_gas_2429": ; preds = %"$out_of_gas_2428", %"$have_gas_2423" - %"$consume_2430" = sub i64 %"$gasrem_2426", 16 - store i64 %"$consume_2430", i64* @_gasrem, align 8 - %"$execptr_load_2431" = load i8*, i8** @_execptr, align 8 - %"$eq_$p_111_2432" = alloca %Int256, align 8 - %"$$p_111_2433" = load %Int256, %Int256* %"$p_111", align 8 - store %Int256 %"$$p_111_2433", %Int256* %"$eq_$p_111_2432", align 8 - %"$eq_$ans_112_2434" = alloca %Int256, align 8 - %"$$ans_112_2435" = load %Int256, %Int256* %"$ans_112", align 8 - store %Int256 %"$$ans_112_2435", %Int256* %"$eq_$ans_112_2434", align 8 - %"$eq_call_2436" = call %TName_Bool* @_eq_Int256(i8* %"$execptr_load_2431", %Int256* %"$eq_$p_111_2432", %Int256* %"$eq_$ans_112_2434"), !dbg !146 - store %TName_Bool* %"$eq_call_2436", %TName_Bool** %"$res__113", align 8, !dbg !146 - %"$gasrem_2438" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2439" = icmp ugt i64 1, %"$gasrem_2438" - br i1 %"$gascmp_2439", label %"$out_of_gas_2440", label %"$have_gas_2441" - -"$out_of_gas_2440": ; preds = %"$have_gas_2429" - call void @_out_of_gas() - br label %"$have_gas_2441" - -"$have_gas_2441": ; preds = %"$out_of_gas_2440", %"$have_gas_2429" - %"$consume_2442" = sub i64 %"$gasrem_2438", 1 - store i64 %"$consume_2442", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$res__113", metadata !439, metadata !DIExpression()), !dbg !440 + %"$gasrem_2428" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2429" = icmp ugt i64 16, %"$gasrem_2428" + br i1 %"$gascmp_2429", label %"$out_of_gas_2430", label %"$have_gas_2431" + +"$out_of_gas_2430": ; preds = %"$have_gas_2425" + call void @_out_of_gas() + br label %"$have_gas_2431" + +"$have_gas_2431": ; preds = %"$out_of_gas_2430", %"$have_gas_2425" + %"$consume_2432" = sub i64 %"$gasrem_2428", 16 + store i64 %"$consume_2432", i64* @_gasrem, align 8 + %"$execptr_load_2433" = load i8*, i8** @_execptr, align 8 + %"$eq_$p_111_2434" = alloca %Int256, align 8 + %"$$p_111_2435" = load %Int256, %Int256* %"$p_111", align 8 + store %Int256 %"$$p_111_2435", %Int256* %"$eq_$p_111_2434", align 8 + %"$eq_$ans_112_2436" = alloca %Int256, align 8 + %"$$ans_112_2437" = load %Int256, %Int256* %"$ans_112", align 8 + store %Int256 %"$$ans_112_2437", %Int256* %"$eq_$ans_112_2436", align 8 + %"$eq_call_2438" = call %TName_Bool* @_eq_Int256(i8* %"$execptr_load_2433", %Int256* %"$eq_$p_111_2434", %Int256* %"$eq_$ans_112_2436"), !dbg !441 + store %TName_Bool* %"$eq_call_2438", %TName_Bool** %"$res__113", align 8, !dbg !441 + %"$gasrem_2440" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2441" = icmp ugt i64 1, %"$gasrem_2440" + br i1 %"$gascmp_2441", label %"$out_of_gas_2442", label %"$have_gas_2443" + +"$out_of_gas_2442": ; preds = %"$have_gas_2431" + call void @_out_of_gas() + br label %"$have_gas_2443" + +"$have_gas_2443": ; preds = %"$out_of_gas_2442", %"$have_gas_2431" + %"$consume_2444" = sub i64 %"$gasrem_2440", 1 + store i64 %"$consume_2444", i64* @_gasrem, align 8 %"$BoolUtils.andb_193" = alloca { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, align 8 - %"$BoolUtils.andb_2443" = 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_2444" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_2443", 0 - %"$BoolUtils.andb_envptr_2445" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_2443", 1 - %"$$res_110_2446" = load %TName_Bool*, %TName_Bool** %"$res_110", align 8 - %"$BoolUtils.andb_call_2447" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_2444"(i8* %"$BoolUtils.andb_envptr_2445", %TName_Bool* %"$$res_110_2446"), !dbg !147 - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_2447", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_193", align 8, !dbg !147 + %"$BoolUtils.andb_2445" = 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_2446" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_2445", 0 + %"$BoolUtils.andb_envptr_2447" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_2445", 1 + %"$$res_110_2448" = load %TName_Bool*, %TName_Bool** %"$res_110", align 8 + %"$BoolUtils.andb_call_2449" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_2446"(i8* %"$BoolUtils.andb_envptr_2447", %TName_Bool* %"$$res_110_2448"), !dbg !442 + store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_2449", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_193", align 8, !dbg !442 %"$BoolUtils.andb_194" = alloca %TName_Bool*, align 8 - %"$$BoolUtils.andb_193_2448" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_193", align 8 - %"$$BoolUtils.andb_193_fptr_2449" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_193_2448", 0 - %"$$BoolUtils.andb_193_envptr_2450" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_193_2448", 1 - %"$$res__113_2451" = load %TName_Bool*, %TName_Bool** %"$res__113", align 8 - %"$$BoolUtils.andb_193_call_2452" = call %TName_Bool* %"$$BoolUtils.andb_193_fptr_2449"(i8* %"$$BoolUtils.andb_193_envptr_2450", %TName_Bool* %"$$res__113_2451"), !dbg !147 - store %TName_Bool* %"$$BoolUtils.andb_193_call_2452", %TName_Bool** %"$BoolUtils.andb_194", align 8, !dbg !147 - %"$$BoolUtils.andb_194_2453" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_194", align 8 - store %TName_Bool* %"$$BoolUtils.andb_194_2453", %TName_Bool** %"$res_114", align 8, !dbg !147 - %"$gasrem_2454" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2455" = icmp ugt i64 1, %"$gasrem_2454" - br i1 %"$gascmp_2455", label %"$out_of_gas_2456", label %"$have_gas_2457" - -"$out_of_gas_2456": ; preds = %"$have_gas_2441" - call void @_out_of_gas() - br label %"$have_gas_2457" - -"$have_gas_2457": ; preds = %"$out_of_gas_2456", %"$have_gas_2441" - %"$consume_2458" = sub i64 %"$gasrem_2454", 1 - store i64 %"$consume_2458", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$BoolUtils.andb_194", metadata !443, metadata !DIExpression()), !dbg !442 + %"$$BoolUtils.andb_193_2450" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_193", align 8 + %"$$BoolUtils.andb_193_fptr_2451" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_193_2450", 0 + %"$$BoolUtils.andb_193_envptr_2452" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_193_2450", 1 + %"$$res__113_2453" = load %TName_Bool*, %TName_Bool** %"$res__113", align 8 + %"$$BoolUtils.andb_193_call_2454" = call %TName_Bool* %"$$BoolUtils.andb_193_fptr_2451"(i8* %"$$BoolUtils.andb_193_envptr_2452", %TName_Bool* %"$$res__113_2453"), !dbg !442 + store %TName_Bool* %"$$BoolUtils.andb_193_call_2454", %TName_Bool** %"$BoolUtils.andb_194", align 8, !dbg !442 + %"$$BoolUtils.andb_194_2455" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_194", align 8 + store %TName_Bool* %"$$BoolUtils.andb_194_2455", %TName_Bool** %"$res_114", align 8, !dbg !442 + %"$gasrem_2456" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2457" = icmp ugt i64 1, %"$gasrem_2456" + br i1 %"$gascmp_2457", label %"$out_of_gas_2458", label %"$have_gas_2459" + +"$out_of_gas_2458": ; preds = %"$have_gas_2443" + call void @_out_of_gas() + br label %"$have_gas_2459" + +"$have_gas_2459": ; preds = %"$out_of_gas_2458", %"$have_gas_2443" + %"$consume_2460" = sub i64 %"$gasrem_2456", 1 + store i64 %"$consume_2460", i64* @_gasrem, align 8 %"$p_115" = alloca %Int256, align 8 - %"$p3_2459" = load %Uint32, %Uint32* %p3, align 4 - %"$valueof_2460" = extractvalue %Uint32 %"$p3_2459", 0 - %"$valueof_2461" = zext i32 %"$valueof_2460" to i64 - %"$gaslogof_2462" = uitofp i64 %"$valueof_2461" to double - %"$gaslogof_2463" = fadd double %"$gaslogof_2462", 1.000000e+00 - %"$gaslogof_2464" = call double @llvm.log.f64(double %"$gaslogof_2463") - %"$gaslogof_2465" = fptoui double %"$gaslogof_2464" to i64 - %"$gaslogof_2466" = add i64 %"$gaslogof_2465", 1 - %"$gasmul_2467" = mul i64 20, %"$gaslogof_2466" - %"$gasmul_2468" = mul i64 %"$gasmul_2467", 4 - %"$gasrem_2469" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2470" = icmp ugt i64 %"$gasmul_2468", %"$gasrem_2469" - br i1 %"$gascmp_2470", label %"$out_of_gas_2471", label %"$have_gas_2472" - -"$out_of_gas_2471": ; preds = %"$have_gas_2457" - call void @_out_of_gas() - br label %"$have_gas_2472" - -"$have_gas_2472": ; preds = %"$out_of_gas_2471", %"$have_gas_2457" - %"$consume_2473" = sub i64 %"$gasrem_2469", %"$gasmul_2468" - store i64 %"$consume_2473", i64* @_gasrem, align 8 - %"$execptr_load_2474" = load i8*, i8** @_execptr, align 8 - %"$pow_t8_2475" = alloca %Int256, align 8 - %"$t8_2476" = load %Int256, %Int256* %t8, align 8 - store %Int256 %"$t8_2476", %Int256* %"$pow_t8_2475", align 8 - %"$p3_2477" = load %Uint32, %Uint32* %p3, align 4 - %"$pow_call_2478" = call %Int256* @_pow_Int256(i8* %"$execptr_load_2474", %Int256* %"$pow_t8_2475", %Uint32 %"$p3_2477"), !dbg !148 - %"$pow_2480" = load %Int256, %Int256* %"$pow_call_2478", align 8 - store %Int256 %"$pow_2480", %Int256* %"$p_115", align 8, !dbg !148 - %"$gasrem_2481" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2482" = icmp ugt i64 1, %"$gasrem_2481" - br i1 %"$gascmp_2482", label %"$out_of_gas_2483", label %"$have_gas_2484" - -"$out_of_gas_2483": ; preds = %"$have_gas_2472" - call void @_out_of_gas() - br label %"$have_gas_2484" - -"$have_gas_2484": ; preds = %"$out_of_gas_2483", %"$have_gas_2472" - %"$consume_2485" = sub i64 %"$gasrem_2481", 1 - store i64 %"$consume_2485", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %Int256* %"$p_115", metadata !444, metadata !DIExpression()), !dbg !445 + %"$p3_2461" = load %Uint32, %Uint32* %p3, align 4 + %"$valueof_2462" = extractvalue %Uint32 %"$p3_2461", 0 + %"$valueof_2463" = zext i32 %"$valueof_2462" to i64 + %"$gaslogof_2464" = uitofp i64 %"$valueof_2463" to double + %"$gaslogof_2465" = fadd double %"$gaslogof_2464", 1.000000e+00 + %"$gaslogof_2466" = call double @llvm.log.f64(double %"$gaslogof_2465") + %"$gaslogof_2467" = fptoui double %"$gaslogof_2466" to i64 + %"$gaslogof_2468" = add i64 %"$gaslogof_2467", 1 + %"$gasmul_2469" = mul i64 20, %"$gaslogof_2468" + %"$gasmul_2470" = mul i64 %"$gasmul_2469", 4 + %"$gasrem_2471" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2472" = icmp ugt i64 %"$gasmul_2470", %"$gasrem_2471" + br i1 %"$gascmp_2472", label %"$out_of_gas_2473", label %"$have_gas_2474" + +"$out_of_gas_2473": ; preds = %"$have_gas_2459" + call void @_out_of_gas() + br label %"$have_gas_2474" + +"$have_gas_2474": ; preds = %"$out_of_gas_2473", %"$have_gas_2459" + %"$consume_2475" = sub i64 %"$gasrem_2471", %"$gasmul_2470" + store i64 %"$consume_2475", i64* @_gasrem, align 8 + %"$execptr_load_2476" = load i8*, i8** @_execptr, align 8 + %"$pow_t8_2477" = alloca %Int256, align 8 + %"$t8_2478" = load %Int256, %Int256* %t8, align 8 + store %Int256 %"$t8_2478", %Int256* %"$pow_t8_2477", align 8 + %"$p3_2479" = load %Uint32, %Uint32* %p3, align 4 + %"$pow_call_2480" = call %Int256* @_pow_Int256(i8* %"$execptr_load_2476", %Int256* %"$pow_t8_2477", %Uint32 %"$p3_2479"), !dbg !446 + %"$pow_2482" = load %Int256, %Int256* %"$pow_call_2480", align 8 + store %Int256 %"$pow_2482", %Int256* %"$p_115", align 8, !dbg !446 + %"$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_2474" + call void @_out_of_gas() + br label %"$have_gas_2486" + +"$have_gas_2486": ; preds = %"$out_of_gas_2485", %"$have_gas_2474" + %"$consume_2487" = sub i64 %"$gasrem_2483", 1 + store i64 %"$consume_2487", i64* @_gasrem, align 8 %"$res_118" = alloca %TName_Bool*, align 8 - %"$gasrem_2486" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2487" = icmp ugt i64 1, %"$gasrem_2486" - br i1 %"$gascmp_2487", label %"$out_of_gas_2488", label %"$have_gas_2489" + call void @llvm.dbg.declare(metadata %TName_Bool** %"$res_118", metadata !447, metadata !DIExpression()), !dbg !448 + %"$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_2488": ; preds = %"$have_gas_2484" +"$out_of_gas_2490": ; preds = %"$have_gas_2486" call void @_out_of_gas() - br label %"$have_gas_2489" + br label %"$have_gas_2491" -"$have_gas_2489": ; preds = %"$out_of_gas_2488", %"$have_gas_2484" - %"$consume_2490" = sub i64 %"$gasrem_2486", 1 - store i64 %"$consume_2490", i64* @_gasrem, align 8 +"$have_gas_2491": ; preds = %"$out_of_gas_2490", %"$have_gas_2486" + %"$consume_2492" = sub i64 %"$gasrem_2488", 1 + store i64 %"$consume_2492", i64* @_gasrem, align 8 %"$ans_116" = alloca %Int256, align 8 - %"$gasrem_2491" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2492" = icmp ugt i64 1, %"$gasrem_2491" - br i1 %"$gascmp_2492", label %"$out_of_gas_2493", label %"$have_gas_2494" + call void @llvm.dbg.declare(metadata %Int256* %"$ans_116", metadata !449, metadata !DIExpression()), !dbg !450 + %"$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_2493": ; preds = %"$have_gas_2489" +"$out_of_gas_2495": ; preds = %"$have_gas_2491" call void @_out_of_gas() - br label %"$have_gas_2494" + br label %"$have_gas_2496" -"$have_gas_2494": ; preds = %"$out_of_gas_2493", %"$have_gas_2489" - %"$consume_2495" = sub i64 %"$gasrem_2491", 1 - store i64 %"$consume_2495", i64* @_gasrem, align 8 - store %Int256 { i256 10004000600040001 }, %Int256* %"$ans_116", align 8, !dbg !149 - %"$gasrem_2496" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2497" = icmp ugt i64 1, %"$gasrem_2496" - br i1 %"$gascmp_2497", label %"$out_of_gas_2498", label %"$have_gas_2499" +"$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 %Int256 { i256 10004000600040001 }, %Int256* %"$ans_116", align 8, !dbg !451 + %"$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_2498": ; preds = %"$have_gas_2494" +"$out_of_gas_2500": ; preds = %"$have_gas_2496" call void @_out_of_gas() - br label %"$have_gas_2499" + br label %"$have_gas_2501" -"$have_gas_2499": ; preds = %"$out_of_gas_2498", %"$have_gas_2494" - %"$consume_2500" = sub i64 %"$gasrem_2496", 1 - store i64 %"$consume_2500", i64* @_gasrem, align 8 +"$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 %"$res__117" = alloca %TName_Bool*, align 8 - %"$gasrem_2502" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2503" = icmp ugt i64 16, %"$gasrem_2502" - br i1 %"$gascmp_2503", label %"$out_of_gas_2504", label %"$have_gas_2505" - -"$out_of_gas_2504": ; preds = %"$have_gas_2499" - call void @_out_of_gas() - br label %"$have_gas_2505" - -"$have_gas_2505": ; preds = %"$out_of_gas_2504", %"$have_gas_2499" - %"$consume_2506" = sub i64 %"$gasrem_2502", 16 - store i64 %"$consume_2506", i64* @_gasrem, align 8 - %"$execptr_load_2507" = load i8*, i8** @_execptr, align 8 - %"$eq_$p_115_2508" = alloca %Int256, align 8 - %"$$p_115_2509" = load %Int256, %Int256* %"$p_115", align 8 - store %Int256 %"$$p_115_2509", %Int256* %"$eq_$p_115_2508", align 8 - %"$eq_$ans_116_2510" = alloca %Int256, align 8 - %"$$ans_116_2511" = load %Int256, %Int256* %"$ans_116", align 8 - store %Int256 %"$$ans_116_2511", %Int256* %"$eq_$ans_116_2510", align 8 - %"$eq_call_2512" = call %TName_Bool* @_eq_Int256(i8* %"$execptr_load_2507", %Int256* %"$eq_$p_115_2508", %Int256* %"$eq_$ans_116_2510"), !dbg !150 - store %TName_Bool* %"$eq_call_2512", %TName_Bool** %"$res__117", align 8, !dbg !150 - %"$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_2505" - call void @_out_of_gas() - br label %"$have_gas_2517" - -"$have_gas_2517": ; preds = %"$out_of_gas_2516", %"$have_gas_2505" - %"$consume_2518" = sub i64 %"$gasrem_2514", 1 - store i64 %"$consume_2518", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$res__117", metadata !452, metadata !DIExpression()), !dbg !453 + %"$gasrem_2504" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2505" = icmp ugt i64 16, %"$gasrem_2504" + br i1 %"$gascmp_2505", label %"$out_of_gas_2506", label %"$have_gas_2507" + +"$out_of_gas_2506": ; preds = %"$have_gas_2501" + call void @_out_of_gas() + br label %"$have_gas_2507" + +"$have_gas_2507": ; preds = %"$out_of_gas_2506", %"$have_gas_2501" + %"$consume_2508" = sub i64 %"$gasrem_2504", 16 + store i64 %"$consume_2508", i64* @_gasrem, align 8 + %"$execptr_load_2509" = load i8*, i8** @_execptr, align 8 + %"$eq_$p_115_2510" = alloca %Int256, align 8 + %"$$p_115_2511" = load %Int256, %Int256* %"$p_115", align 8 + store %Int256 %"$$p_115_2511", %Int256* %"$eq_$p_115_2510", align 8 + %"$eq_$ans_116_2512" = alloca %Int256, align 8 + %"$$ans_116_2513" = load %Int256, %Int256* %"$ans_116", align 8 + store %Int256 %"$$ans_116_2513", %Int256* %"$eq_$ans_116_2512", align 8 + %"$eq_call_2514" = call %TName_Bool* @_eq_Int256(i8* %"$execptr_load_2509", %Int256* %"$eq_$p_115_2510", %Int256* %"$eq_$ans_116_2512"), !dbg !454 + store %TName_Bool* %"$eq_call_2514", %TName_Bool** %"$res__117", align 8, !dbg !454 + %"$gasrem_2516" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2517" = icmp ugt i64 1, %"$gasrem_2516" + br i1 %"$gascmp_2517", label %"$out_of_gas_2518", label %"$have_gas_2519" + +"$out_of_gas_2518": ; preds = %"$have_gas_2507" + call void @_out_of_gas() + br label %"$have_gas_2519" + +"$have_gas_2519": ; preds = %"$out_of_gas_2518", %"$have_gas_2507" + %"$consume_2520" = sub i64 %"$gasrem_2516", 1 + store i64 %"$consume_2520", i64* @_gasrem, align 8 %"$BoolUtils.andb_195" = alloca { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, align 8 - %"$BoolUtils.andb_2519" = 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_2520" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_2519", 0 - %"$BoolUtils.andb_envptr_2521" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_2519", 1 - %"$$res_114_2522" = load %TName_Bool*, %TName_Bool** %"$res_114", align 8 - %"$BoolUtils.andb_call_2523" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_2520"(i8* %"$BoolUtils.andb_envptr_2521", %TName_Bool* %"$$res_114_2522"), !dbg !151 - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_2523", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_195", align 8, !dbg !151 + %"$BoolUtils.andb_2521" = 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_2522" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_2521", 0 + %"$BoolUtils.andb_envptr_2523" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_2521", 1 + %"$$res_114_2524" = load %TName_Bool*, %TName_Bool** %"$res_114", align 8 + %"$BoolUtils.andb_call_2525" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_2522"(i8* %"$BoolUtils.andb_envptr_2523", %TName_Bool* %"$$res_114_2524"), !dbg !455 + store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_2525", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_195", align 8, !dbg !455 %"$BoolUtils.andb_196" = alloca %TName_Bool*, align 8 - %"$$BoolUtils.andb_195_2524" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_195", align 8 - %"$$BoolUtils.andb_195_fptr_2525" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_195_2524", 0 - %"$$BoolUtils.andb_195_envptr_2526" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_195_2524", 1 - %"$$res__117_2527" = load %TName_Bool*, %TName_Bool** %"$res__117", align 8 - %"$$BoolUtils.andb_195_call_2528" = call %TName_Bool* %"$$BoolUtils.andb_195_fptr_2525"(i8* %"$$BoolUtils.andb_195_envptr_2526", %TName_Bool* %"$$res__117_2527"), !dbg !151 - store %TName_Bool* %"$$BoolUtils.andb_195_call_2528", %TName_Bool** %"$BoolUtils.andb_196", align 8, !dbg !151 - %"$$BoolUtils.andb_196_2529" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_196", align 8 - store %TName_Bool* %"$$BoolUtils.andb_196_2529", %TName_Bool** %"$res_118", align 8, !dbg !151 - %"$gasrem_2530" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2531" = icmp ugt i64 1, %"$gasrem_2530" - br i1 %"$gascmp_2531", label %"$out_of_gas_2532", label %"$have_gas_2533" - -"$out_of_gas_2532": ; preds = %"$have_gas_2517" - call void @_out_of_gas() - br label %"$have_gas_2533" - -"$have_gas_2533": ; preds = %"$out_of_gas_2532", %"$have_gas_2517" - %"$consume_2534" = sub i64 %"$gasrem_2530", 1 - store i64 %"$consume_2534", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$BoolUtils.andb_196", metadata !456, metadata !DIExpression()), !dbg !455 + %"$$BoolUtils.andb_195_2526" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_195", align 8 + %"$$BoolUtils.andb_195_fptr_2527" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_195_2526", 0 + %"$$BoolUtils.andb_195_envptr_2528" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_195_2526", 1 + %"$$res__117_2529" = load %TName_Bool*, %TName_Bool** %"$res__117", align 8 + %"$$BoolUtils.andb_195_call_2530" = call %TName_Bool* %"$$BoolUtils.andb_195_fptr_2527"(i8* %"$$BoolUtils.andb_195_envptr_2528", %TName_Bool* %"$$res__117_2529"), !dbg !455 + store %TName_Bool* %"$$BoolUtils.andb_195_call_2530", %TName_Bool** %"$BoolUtils.andb_196", align 8, !dbg !455 + %"$$BoolUtils.andb_196_2531" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_196", align 8 + store %TName_Bool* %"$$BoolUtils.andb_196_2531", %TName_Bool** %"$res_118", align 8, !dbg !455 + %"$gasrem_2532" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2533" = icmp ugt i64 1, %"$gasrem_2532" + br i1 %"$gascmp_2533", label %"$out_of_gas_2534", label %"$have_gas_2535" + +"$out_of_gas_2534": ; preds = %"$have_gas_2519" + call void @_out_of_gas() + br label %"$have_gas_2535" + +"$have_gas_2535": ; preds = %"$out_of_gas_2534", %"$have_gas_2519" + %"$consume_2536" = sub i64 %"$gasrem_2532", 1 + store i64 %"$consume_2536", i64* @_gasrem, align 8 %"$p_119" = alloca %Int256, align 8 - %"$p4_2535" = load %Uint32, %Uint32* %p4, align 4 - %"$valueof_2536" = extractvalue %Uint32 %"$p4_2535", 0 - %"$valueof_2537" = zext i32 %"$valueof_2536" to i64 - %"$gaslogof_2538" = uitofp i64 %"$valueof_2537" to double - %"$gaslogof_2539" = fadd double %"$gaslogof_2538", 1.000000e+00 - %"$gaslogof_2540" = call double @llvm.log.f64(double %"$gaslogof_2539") - %"$gaslogof_2541" = fptoui double %"$gaslogof_2540" to i64 - %"$gaslogof_2542" = add i64 %"$gaslogof_2541", 1 - %"$gasmul_2543" = mul i64 20, %"$gaslogof_2542" - %"$gasmul_2544" = mul i64 %"$gasmul_2543", 4 - %"$gasrem_2545" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2546" = icmp ugt i64 %"$gasmul_2544", %"$gasrem_2545" - br i1 %"$gascmp_2546", label %"$out_of_gas_2547", label %"$have_gas_2548" - -"$out_of_gas_2547": ; preds = %"$have_gas_2533" - call void @_out_of_gas() - br label %"$have_gas_2548" - -"$have_gas_2548": ; preds = %"$out_of_gas_2547", %"$have_gas_2533" - %"$consume_2549" = sub i64 %"$gasrem_2545", %"$gasmul_2544" - store i64 %"$consume_2549", i64* @_gasrem, align 8 - %"$execptr_load_2550" = load i8*, i8** @_execptr, align 8 - %"$pow_t8_2551" = alloca %Int256, align 8 - %"$t8_2552" = load %Int256, %Int256* %t8, align 8 - store %Int256 %"$t8_2552", %Int256* %"$pow_t8_2551", align 8 - %"$p4_2553" = load %Uint32, %Uint32* %p4, align 4 - %"$pow_call_2554" = call %Int256* @_pow_Int256(i8* %"$execptr_load_2550", %Int256* %"$pow_t8_2551", %Uint32 %"$p4_2553"), !dbg !152 - %"$pow_2556" = load %Int256, %Int256* %"$pow_call_2554", align 8 - store %Int256 %"$pow_2556", %Int256* %"$p_119", align 8, !dbg !152 - %"$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" - -"$out_of_gas_2559": ; preds = %"$have_gas_2548" - call void @_out_of_gas() - br label %"$have_gas_2560" - -"$have_gas_2560": ; preds = %"$out_of_gas_2559", %"$have_gas_2548" - %"$consume_2561" = sub i64 %"$gasrem_2557", 1 - store i64 %"$consume_2561", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %Int256* %"$p_119", metadata !457, metadata !DIExpression()), !dbg !458 + %"$p4_2537" = load %Uint32, %Uint32* %p4, align 4 + %"$valueof_2538" = extractvalue %Uint32 %"$p4_2537", 0 + %"$valueof_2539" = zext i32 %"$valueof_2538" to i64 + %"$gaslogof_2540" = uitofp i64 %"$valueof_2539" to double + %"$gaslogof_2541" = fadd double %"$gaslogof_2540", 1.000000e+00 + %"$gaslogof_2542" = call double @llvm.log.f64(double %"$gaslogof_2541") + %"$gaslogof_2543" = fptoui double %"$gaslogof_2542" to i64 + %"$gaslogof_2544" = add i64 %"$gaslogof_2543", 1 + %"$gasmul_2545" = mul i64 20, %"$gaslogof_2544" + %"$gasmul_2546" = mul i64 %"$gasmul_2545", 4 + %"$gasrem_2547" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2548" = icmp ugt i64 %"$gasmul_2546", %"$gasrem_2547" + br i1 %"$gascmp_2548", label %"$out_of_gas_2549", label %"$have_gas_2550" + +"$out_of_gas_2549": ; preds = %"$have_gas_2535" + call void @_out_of_gas() + br label %"$have_gas_2550" + +"$have_gas_2550": ; preds = %"$out_of_gas_2549", %"$have_gas_2535" + %"$consume_2551" = sub i64 %"$gasrem_2547", %"$gasmul_2546" + store i64 %"$consume_2551", i64* @_gasrem, align 8 + %"$execptr_load_2552" = load i8*, i8** @_execptr, align 8 + %"$pow_t8_2553" = alloca %Int256, align 8 + %"$t8_2554" = load %Int256, %Int256* %t8, align 8 + store %Int256 %"$t8_2554", %Int256* %"$pow_t8_2553", align 8 + %"$p4_2555" = load %Uint32, %Uint32* %p4, align 4 + %"$pow_call_2556" = call %Int256* @_pow_Int256(i8* %"$execptr_load_2552", %Int256* %"$pow_t8_2553", %Uint32 %"$p4_2555"), !dbg !459 + %"$pow_2558" = load %Int256, %Int256* %"$pow_call_2556", align 8 + store %Int256 %"$pow_2558", %Int256* %"$p_119", align 8, !dbg !459 + %"$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 %"$res_122" = alloca %TName_Bool*, align 8 - %"$gasrem_2562" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2563" = icmp ugt i64 1, %"$gasrem_2562" - br i1 %"$gascmp_2563", label %"$out_of_gas_2564", label %"$have_gas_2565" + call void @llvm.dbg.declare(metadata %TName_Bool** %"$res_122", metadata !460, metadata !DIExpression()), !dbg !461 + %"$gasrem_2564" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2565" = icmp ugt i64 1, %"$gasrem_2564" + br i1 %"$gascmp_2565", label %"$out_of_gas_2566", label %"$have_gas_2567" -"$out_of_gas_2564": ; preds = %"$have_gas_2560" +"$out_of_gas_2566": ; preds = %"$have_gas_2562" call void @_out_of_gas() - br label %"$have_gas_2565" + br label %"$have_gas_2567" -"$have_gas_2565": ; preds = %"$out_of_gas_2564", %"$have_gas_2560" - %"$consume_2566" = sub i64 %"$gasrem_2562", 1 - store i64 %"$consume_2566", i64* @_gasrem, align 8 +"$have_gas_2567": ; preds = %"$out_of_gas_2566", %"$have_gas_2562" + %"$consume_2568" = sub i64 %"$gasrem_2564", 1 + store i64 %"$consume_2568", i64* @_gasrem, align 8 %"$ans_120" = alloca %Int256, align 8 - %"$gasrem_2567" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2568" = icmp ugt i64 1, %"$gasrem_2567" - br i1 %"$gascmp_2568", label %"$out_of_gas_2569", label %"$have_gas_2570" + call void @llvm.dbg.declare(metadata %Int256* %"$ans_120", metadata !462, metadata !DIExpression()), !dbg !463 + %"$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_2569": ; preds = %"$have_gas_2565" +"$out_of_gas_2571": ; preds = %"$have_gas_2567" call void @_out_of_gas() - br label %"$have_gas_2570" + br label %"$have_gas_2572" -"$have_gas_2570": ; preds = %"$out_of_gas_2569", %"$have_gas_2565" - %"$consume_2571" = sub i64 %"$gasrem_2567", 1 - store i64 %"$consume_2571", i64* @_gasrem, align 8 - store %Int256 { i256 10010004501200210025202100120004500100001 }, %Int256* %"$ans_120", align 8, !dbg !153 - %"$gasrem_2572" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2573" = icmp ugt i64 1, %"$gasrem_2572" - br i1 %"$gascmp_2573", label %"$out_of_gas_2574", label %"$have_gas_2575" +"$have_gas_2572": ; preds = %"$out_of_gas_2571", %"$have_gas_2567" + %"$consume_2573" = sub i64 %"$gasrem_2569", 1 + store i64 %"$consume_2573", i64* @_gasrem, align 8 + store %Int256 { i256 10010004501200210025202100120004500100001 }, %Int256* %"$ans_120", align 8, !dbg !464 + %"$gasrem_2574" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2575" = icmp ugt i64 1, %"$gasrem_2574" + br i1 %"$gascmp_2575", label %"$out_of_gas_2576", label %"$have_gas_2577" -"$out_of_gas_2574": ; preds = %"$have_gas_2570" +"$out_of_gas_2576": ; preds = %"$have_gas_2572" call void @_out_of_gas() - br label %"$have_gas_2575" + br label %"$have_gas_2577" -"$have_gas_2575": ; preds = %"$out_of_gas_2574", %"$have_gas_2570" - %"$consume_2576" = sub i64 %"$gasrem_2572", 1 - store i64 %"$consume_2576", i64* @_gasrem, align 8 +"$have_gas_2577": ; preds = %"$out_of_gas_2576", %"$have_gas_2572" + %"$consume_2578" = sub i64 %"$gasrem_2574", 1 + store i64 %"$consume_2578", i64* @_gasrem, align 8 %"$res__121" = alloca %TName_Bool*, align 8 - %"$gasrem_2578" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2579" = icmp ugt i64 16, %"$gasrem_2578" - br i1 %"$gascmp_2579", label %"$out_of_gas_2580", label %"$have_gas_2581" - -"$out_of_gas_2580": ; preds = %"$have_gas_2575" - call void @_out_of_gas() - br label %"$have_gas_2581" - -"$have_gas_2581": ; preds = %"$out_of_gas_2580", %"$have_gas_2575" - %"$consume_2582" = sub i64 %"$gasrem_2578", 16 - store i64 %"$consume_2582", i64* @_gasrem, align 8 - %"$execptr_load_2583" = load i8*, i8** @_execptr, align 8 - %"$eq_$p_119_2584" = alloca %Int256, align 8 - %"$$p_119_2585" = load %Int256, %Int256* %"$p_119", align 8 - store %Int256 %"$$p_119_2585", %Int256* %"$eq_$p_119_2584", align 8 - %"$eq_$ans_120_2586" = alloca %Int256, align 8 - %"$$ans_120_2587" = load %Int256, %Int256* %"$ans_120", align 8 - store %Int256 %"$$ans_120_2587", %Int256* %"$eq_$ans_120_2586", align 8 - %"$eq_call_2588" = call %TName_Bool* @_eq_Int256(i8* %"$execptr_load_2583", %Int256* %"$eq_$p_119_2584", %Int256* %"$eq_$ans_120_2586"), !dbg !154 - store %TName_Bool* %"$eq_call_2588", %TName_Bool** %"$res__121", align 8, !dbg !154 - %"$gasrem_2590" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2591" = icmp ugt i64 1, %"$gasrem_2590" - br i1 %"$gascmp_2591", label %"$out_of_gas_2592", label %"$have_gas_2593" - -"$out_of_gas_2592": ; preds = %"$have_gas_2581" - call void @_out_of_gas() - br label %"$have_gas_2593" - -"$have_gas_2593": ; preds = %"$out_of_gas_2592", %"$have_gas_2581" - %"$consume_2594" = sub i64 %"$gasrem_2590", 1 - store i64 %"$consume_2594", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$res__121", metadata !465, metadata !DIExpression()), !dbg !466 + %"$gasrem_2580" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2581" = icmp ugt i64 16, %"$gasrem_2580" + br i1 %"$gascmp_2581", label %"$out_of_gas_2582", label %"$have_gas_2583" + +"$out_of_gas_2582": ; preds = %"$have_gas_2577" + call void @_out_of_gas() + br label %"$have_gas_2583" + +"$have_gas_2583": ; preds = %"$out_of_gas_2582", %"$have_gas_2577" + %"$consume_2584" = sub i64 %"$gasrem_2580", 16 + store i64 %"$consume_2584", i64* @_gasrem, align 8 + %"$execptr_load_2585" = load i8*, i8** @_execptr, align 8 + %"$eq_$p_119_2586" = alloca %Int256, align 8 + %"$$p_119_2587" = load %Int256, %Int256* %"$p_119", align 8 + store %Int256 %"$$p_119_2587", %Int256* %"$eq_$p_119_2586", align 8 + %"$eq_$ans_120_2588" = alloca %Int256, align 8 + %"$$ans_120_2589" = load %Int256, %Int256* %"$ans_120", align 8 + store %Int256 %"$$ans_120_2589", %Int256* %"$eq_$ans_120_2588", align 8 + %"$eq_call_2590" = call %TName_Bool* @_eq_Int256(i8* %"$execptr_load_2585", %Int256* %"$eq_$p_119_2586", %Int256* %"$eq_$ans_120_2588"), !dbg !467 + store %TName_Bool* %"$eq_call_2590", %TName_Bool** %"$res__121", align 8, !dbg !467 + %"$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_2594": ; preds = %"$have_gas_2583" + call void @_out_of_gas() + br label %"$have_gas_2595" + +"$have_gas_2595": ; preds = %"$out_of_gas_2594", %"$have_gas_2583" + %"$consume_2596" = sub i64 %"$gasrem_2592", 1 + store i64 %"$consume_2596", i64* @_gasrem, align 8 %"$BoolUtils.andb_197" = alloca { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, align 8 - %"$BoolUtils.andb_2595" = 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_2596" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_2595", 0 - %"$BoolUtils.andb_envptr_2597" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_2595", 1 - %"$$res_118_2598" = load %TName_Bool*, %TName_Bool** %"$res_118", align 8 - %"$BoolUtils.andb_call_2599" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_2596"(i8* %"$BoolUtils.andb_envptr_2597", %TName_Bool* %"$$res_118_2598"), !dbg !155 - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_2599", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_197", align 8, !dbg !155 + %"$BoolUtils.andb_2597" = 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_2598" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_2597", 0 + %"$BoolUtils.andb_envptr_2599" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_2597", 1 + %"$$res_118_2600" = load %TName_Bool*, %TName_Bool** %"$res_118", align 8 + %"$BoolUtils.andb_call_2601" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_2598"(i8* %"$BoolUtils.andb_envptr_2599", %TName_Bool* %"$$res_118_2600"), !dbg !468 + store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_2601", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_197", align 8, !dbg !468 %"$BoolUtils.andb_198" = alloca %TName_Bool*, align 8 - %"$$BoolUtils.andb_197_2600" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_197", align 8 - %"$$BoolUtils.andb_197_fptr_2601" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_197_2600", 0 - %"$$BoolUtils.andb_197_envptr_2602" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_197_2600", 1 - %"$$res__121_2603" = load %TName_Bool*, %TName_Bool** %"$res__121", align 8 - %"$$BoolUtils.andb_197_call_2604" = call %TName_Bool* %"$$BoolUtils.andb_197_fptr_2601"(i8* %"$$BoolUtils.andb_197_envptr_2602", %TName_Bool* %"$$res__121_2603"), !dbg !155 - store %TName_Bool* %"$$BoolUtils.andb_197_call_2604", %TName_Bool** %"$BoolUtils.andb_198", align 8, !dbg !155 - %"$$BoolUtils.andb_198_2605" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_198", align 8 - store %TName_Bool* %"$$BoolUtils.andb_198_2605", %TName_Bool** %"$res_122", align 8, !dbg !155 - %"$gasrem_2606" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2607" = icmp ugt i64 1, %"$gasrem_2606" - br i1 %"$gascmp_2607", label %"$out_of_gas_2608", label %"$have_gas_2609" - -"$out_of_gas_2608": ; preds = %"$have_gas_2593" - call void @_out_of_gas() - br label %"$have_gas_2609" - -"$have_gas_2609": ; preds = %"$out_of_gas_2608", %"$have_gas_2593" - %"$consume_2610" = sub i64 %"$gasrem_2606", 1 - store i64 %"$consume_2610", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$BoolUtils.andb_198", metadata !469, metadata !DIExpression()), !dbg !468 + %"$$BoolUtils.andb_197_2602" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_197", align 8 + %"$$BoolUtils.andb_197_fptr_2603" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_197_2602", 0 + %"$$BoolUtils.andb_197_envptr_2604" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_197_2602", 1 + %"$$res__121_2605" = load %TName_Bool*, %TName_Bool** %"$res__121", align 8 + %"$$BoolUtils.andb_197_call_2606" = call %TName_Bool* %"$$BoolUtils.andb_197_fptr_2603"(i8* %"$$BoolUtils.andb_197_envptr_2604", %TName_Bool* %"$$res__121_2605"), !dbg !468 + store %TName_Bool* %"$$BoolUtils.andb_197_call_2606", %TName_Bool** %"$BoolUtils.andb_198", align 8, !dbg !468 + %"$$BoolUtils.andb_198_2607" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_198", align 8 + store %TName_Bool* %"$$BoolUtils.andb_198_2607", %TName_Bool** %"$res_122", align 8, !dbg !468 + %"$gasrem_2608" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2609" = icmp ugt i64 1, %"$gasrem_2608" + br i1 %"$gascmp_2609", label %"$out_of_gas_2610", label %"$have_gas_2611" + +"$out_of_gas_2610": ; preds = %"$have_gas_2595" + call void @_out_of_gas() + br label %"$have_gas_2611" + +"$have_gas_2611": ; preds = %"$out_of_gas_2610", %"$have_gas_2595" + %"$consume_2612" = sub i64 %"$gasrem_2608", 1 + store i64 %"$consume_2612", i64* @_gasrem, align 8 %"$p_123" = alloca %Int256, align 8 - %"$p1_2611" = load %Uint32, %Uint32* %p1, align 4 - %"$valueof_2612" = extractvalue %Uint32 %"$p1_2611", 0 - %"$valueof_2613" = zext i32 %"$valueof_2612" to i64 - %"$gaslogof_2614" = uitofp i64 %"$valueof_2613" to double - %"$gaslogof_2615" = fadd double %"$gaslogof_2614", 1.000000e+00 - %"$gaslogof_2616" = call double @llvm.log.f64(double %"$gaslogof_2615") - %"$gaslogof_2617" = fptoui double %"$gaslogof_2616" to i64 - %"$gaslogof_2618" = add i64 %"$gaslogof_2617", 1 - %"$gasmul_2619" = mul i64 20, %"$gaslogof_2618" - %"$gasmul_2620" = mul i64 %"$gasmul_2619", 4 - %"$gasrem_2621" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2622" = icmp ugt i64 %"$gasmul_2620", %"$gasrem_2621" - br i1 %"$gascmp_2622", label %"$out_of_gas_2623", label %"$have_gas_2624" - -"$out_of_gas_2623": ; preds = %"$have_gas_2609" - call void @_out_of_gas() - br label %"$have_gas_2624" - -"$have_gas_2624": ; preds = %"$out_of_gas_2623", %"$have_gas_2609" - %"$consume_2625" = sub i64 %"$gasrem_2621", %"$gasmul_2620" - store i64 %"$consume_2625", i64* @_gasrem, align 8 - %"$execptr_load_2626" = load i8*, i8** @_execptr, align 8 - %"$pow_t9_2627" = alloca %Int256, align 8 - %"$t9_2628" = load %Int256, %Int256* %t9, align 8 - store %Int256 %"$t9_2628", %Int256* %"$pow_t9_2627", align 8 - %"$p1_2629" = load %Uint32, %Uint32* %p1, align 4 - %"$pow_call_2630" = call %Int256* @_pow_Int256(i8* %"$execptr_load_2626", %Int256* %"$pow_t9_2627", %Uint32 %"$p1_2629"), !dbg !156 - %"$pow_2632" = load %Int256, %Int256* %"$pow_call_2630", align 8 - store %Int256 %"$pow_2632", %Int256* %"$p_123", align 8, !dbg !156 - %"$gasrem_2633" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2634" = icmp ugt i64 1, %"$gasrem_2633" - br i1 %"$gascmp_2634", label %"$out_of_gas_2635", label %"$have_gas_2636" - -"$out_of_gas_2635": ; preds = %"$have_gas_2624" - call void @_out_of_gas() - br label %"$have_gas_2636" - -"$have_gas_2636": ; preds = %"$out_of_gas_2635", %"$have_gas_2624" - %"$consume_2637" = sub i64 %"$gasrem_2633", 1 - store i64 %"$consume_2637", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %Int256* %"$p_123", metadata !470, metadata !DIExpression()), !dbg !471 + %"$p1_2613" = load %Uint32, %Uint32* %p1, align 4 + %"$valueof_2614" = extractvalue %Uint32 %"$p1_2613", 0 + %"$valueof_2615" = zext i32 %"$valueof_2614" to i64 + %"$gaslogof_2616" = uitofp i64 %"$valueof_2615" to double + %"$gaslogof_2617" = fadd double %"$gaslogof_2616", 1.000000e+00 + %"$gaslogof_2618" = call double @llvm.log.f64(double %"$gaslogof_2617") + %"$gaslogof_2619" = fptoui double %"$gaslogof_2618" to i64 + %"$gaslogof_2620" = add i64 %"$gaslogof_2619", 1 + %"$gasmul_2621" = mul i64 20, %"$gaslogof_2620" + %"$gasmul_2622" = mul i64 %"$gasmul_2621", 4 + %"$gasrem_2623" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2624" = icmp ugt i64 %"$gasmul_2622", %"$gasrem_2623" + br i1 %"$gascmp_2624", label %"$out_of_gas_2625", label %"$have_gas_2626" + +"$out_of_gas_2625": ; preds = %"$have_gas_2611" + call void @_out_of_gas() + br label %"$have_gas_2626" + +"$have_gas_2626": ; preds = %"$out_of_gas_2625", %"$have_gas_2611" + %"$consume_2627" = sub i64 %"$gasrem_2623", %"$gasmul_2622" + store i64 %"$consume_2627", i64* @_gasrem, align 8 + %"$execptr_load_2628" = load i8*, i8** @_execptr, align 8 + %"$pow_t9_2629" = alloca %Int256, align 8 + %"$t9_2630" = load %Int256, %Int256* %t9, align 8 + store %Int256 %"$t9_2630", %Int256* %"$pow_t9_2629", align 8 + %"$p1_2631" = load %Uint32, %Uint32* %p1, align 4 + %"$pow_call_2632" = call %Int256* @_pow_Int256(i8* %"$execptr_load_2628", %Int256* %"$pow_t9_2629", %Uint32 %"$p1_2631"), !dbg !472 + %"$pow_2634" = load %Int256, %Int256* %"$pow_call_2632", align 8 + store %Int256 %"$pow_2634", %Int256* %"$p_123", align 8, !dbg !472 + %"$gasrem_2635" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2636" = icmp ugt i64 1, %"$gasrem_2635" + br i1 %"$gascmp_2636", label %"$out_of_gas_2637", label %"$have_gas_2638" + +"$out_of_gas_2637": ; preds = %"$have_gas_2626" + call void @_out_of_gas() + br label %"$have_gas_2638" + +"$have_gas_2638": ; preds = %"$out_of_gas_2637", %"$have_gas_2626" + %"$consume_2639" = sub i64 %"$gasrem_2635", 1 + store i64 %"$consume_2639", i64* @_gasrem, align 8 %"$res_126" = alloca %TName_Bool*, align 8 - %"$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" + call void @llvm.dbg.declare(metadata %TName_Bool** %"$res_126", metadata !473, metadata !DIExpression()), !dbg !474 + %"$gasrem_2640" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2641" = icmp ugt i64 1, %"$gasrem_2640" + br i1 %"$gascmp_2641", label %"$out_of_gas_2642", label %"$have_gas_2643" -"$out_of_gas_2640": ; preds = %"$have_gas_2636" +"$out_of_gas_2642": ; preds = %"$have_gas_2638" call void @_out_of_gas() - br label %"$have_gas_2641" + br label %"$have_gas_2643" -"$have_gas_2641": ; preds = %"$out_of_gas_2640", %"$have_gas_2636" - %"$consume_2642" = sub i64 %"$gasrem_2638", 1 - store i64 %"$consume_2642", i64* @_gasrem, align 8 +"$have_gas_2643": ; preds = %"$out_of_gas_2642", %"$have_gas_2638" + %"$consume_2644" = sub i64 %"$gasrem_2640", 1 + store i64 %"$consume_2644", i64* @_gasrem, align 8 %"$ans_124" = alloca %Int256, align 8 - %"$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" + call void @llvm.dbg.declare(metadata %Int256* %"$ans_124", metadata !475, metadata !DIExpression()), !dbg !476 + %"$gasrem_2645" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2646" = icmp ugt i64 1, %"$gasrem_2645" + br i1 %"$gascmp_2646", label %"$out_of_gas_2647", label %"$have_gas_2648" -"$out_of_gas_2645": ; preds = %"$have_gas_2641" +"$out_of_gas_2647": ; preds = %"$have_gas_2643" call void @_out_of_gas() - br label %"$have_gas_2646" + br label %"$have_gas_2648" -"$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 - store %Int256 { i256 1 }, %Int256* %"$ans_124", align 8, !dbg !157 - %"$gasrem_2648" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2649" = icmp ugt i64 1, %"$gasrem_2648" - br i1 %"$gascmp_2649", label %"$out_of_gas_2650", label %"$have_gas_2651" +"$have_gas_2648": ; preds = %"$out_of_gas_2647", %"$have_gas_2643" + %"$consume_2649" = sub i64 %"$gasrem_2645", 1 + store i64 %"$consume_2649", i64* @_gasrem, align 8 + store %Int256 { i256 1 }, %Int256* %"$ans_124", align 8, !dbg !477 + %"$gasrem_2650" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2651" = icmp ugt i64 1, %"$gasrem_2650" + br i1 %"$gascmp_2651", label %"$out_of_gas_2652", label %"$have_gas_2653" -"$out_of_gas_2650": ; preds = %"$have_gas_2646" +"$out_of_gas_2652": ; preds = %"$have_gas_2648" call void @_out_of_gas() - br label %"$have_gas_2651" + br label %"$have_gas_2653" -"$have_gas_2651": ; preds = %"$out_of_gas_2650", %"$have_gas_2646" - %"$consume_2652" = sub i64 %"$gasrem_2648", 1 - store i64 %"$consume_2652", i64* @_gasrem, align 8 +"$have_gas_2653": ; preds = %"$out_of_gas_2652", %"$have_gas_2648" + %"$consume_2654" = sub i64 %"$gasrem_2650", 1 + store i64 %"$consume_2654", i64* @_gasrem, align 8 %"$res__125" = alloca %TName_Bool*, align 8 - %"$gasrem_2654" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2655" = icmp ugt i64 16, %"$gasrem_2654" - br i1 %"$gascmp_2655", label %"$out_of_gas_2656", label %"$have_gas_2657" - -"$out_of_gas_2656": ; preds = %"$have_gas_2651" - call void @_out_of_gas() - br label %"$have_gas_2657" - -"$have_gas_2657": ; preds = %"$out_of_gas_2656", %"$have_gas_2651" - %"$consume_2658" = sub i64 %"$gasrem_2654", 16 - store i64 %"$consume_2658", i64* @_gasrem, align 8 - %"$execptr_load_2659" = load i8*, i8** @_execptr, align 8 - %"$eq_$p_123_2660" = alloca %Int256, align 8 - %"$$p_123_2661" = load %Int256, %Int256* %"$p_123", align 8 - store %Int256 %"$$p_123_2661", %Int256* %"$eq_$p_123_2660", align 8 - %"$eq_$ans_124_2662" = alloca %Int256, align 8 - %"$$ans_124_2663" = load %Int256, %Int256* %"$ans_124", align 8 - store %Int256 %"$$ans_124_2663", %Int256* %"$eq_$ans_124_2662", align 8 - %"$eq_call_2664" = call %TName_Bool* @_eq_Int256(i8* %"$execptr_load_2659", %Int256* %"$eq_$p_123_2660", %Int256* %"$eq_$ans_124_2662"), !dbg !158 - store %TName_Bool* %"$eq_call_2664", %TName_Bool** %"$res__125", align 8, !dbg !158 - %"$gasrem_2666" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2667" = icmp ugt i64 1, %"$gasrem_2666" - br i1 %"$gascmp_2667", label %"$out_of_gas_2668", label %"$have_gas_2669" - -"$out_of_gas_2668": ; preds = %"$have_gas_2657" - call void @_out_of_gas() - br label %"$have_gas_2669" - -"$have_gas_2669": ; preds = %"$out_of_gas_2668", %"$have_gas_2657" - %"$consume_2670" = sub i64 %"$gasrem_2666", 1 - store i64 %"$consume_2670", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$res__125", metadata !478, metadata !DIExpression()), !dbg !479 + %"$gasrem_2656" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2657" = icmp ugt i64 16, %"$gasrem_2656" + br i1 %"$gascmp_2657", label %"$out_of_gas_2658", label %"$have_gas_2659" + +"$out_of_gas_2658": ; preds = %"$have_gas_2653" + call void @_out_of_gas() + br label %"$have_gas_2659" + +"$have_gas_2659": ; preds = %"$out_of_gas_2658", %"$have_gas_2653" + %"$consume_2660" = sub i64 %"$gasrem_2656", 16 + store i64 %"$consume_2660", i64* @_gasrem, align 8 + %"$execptr_load_2661" = load i8*, i8** @_execptr, align 8 + %"$eq_$p_123_2662" = alloca %Int256, align 8 + %"$$p_123_2663" = load %Int256, %Int256* %"$p_123", align 8 + store %Int256 %"$$p_123_2663", %Int256* %"$eq_$p_123_2662", align 8 + %"$eq_$ans_124_2664" = alloca %Int256, align 8 + %"$$ans_124_2665" = load %Int256, %Int256* %"$ans_124", align 8 + store %Int256 %"$$ans_124_2665", %Int256* %"$eq_$ans_124_2664", align 8 + %"$eq_call_2666" = call %TName_Bool* @_eq_Int256(i8* %"$execptr_load_2661", %Int256* %"$eq_$p_123_2662", %Int256* %"$eq_$ans_124_2664"), !dbg !480 + store %TName_Bool* %"$eq_call_2666", %TName_Bool** %"$res__125", align 8, !dbg !480 + %"$gasrem_2668" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2669" = icmp ugt i64 1, %"$gasrem_2668" + br i1 %"$gascmp_2669", label %"$out_of_gas_2670", label %"$have_gas_2671" + +"$out_of_gas_2670": ; preds = %"$have_gas_2659" + call void @_out_of_gas() + br label %"$have_gas_2671" + +"$have_gas_2671": ; preds = %"$out_of_gas_2670", %"$have_gas_2659" + %"$consume_2672" = sub i64 %"$gasrem_2668", 1 + store i64 %"$consume_2672", i64* @_gasrem, align 8 %"$BoolUtils.andb_199" = alloca { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, align 8 - %"$BoolUtils.andb_2671" = 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_2672" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_2671", 0 - %"$BoolUtils.andb_envptr_2673" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_2671", 1 - %"$$res_122_2674" = load %TName_Bool*, %TName_Bool** %"$res_122", align 8 - %"$BoolUtils.andb_call_2675" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_2672"(i8* %"$BoolUtils.andb_envptr_2673", %TName_Bool* %"$$res_122_2674"), !dbg !159 - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_2675", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_199", align 8, !dbg !159 + %"$BoolUtils.andb_2673" = 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_2674" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_2673", 0 + %"$BoolUtils.andb_envptr_2675" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_2673", 1 + %"$$res_122_2676" = load %TName_Bool*, %TName_Bool** %"$res_122", align 8 + %"$BoolUtils.andb_call_2677" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_2674"(i8* %"$BoolUtils.andb_envptr_2675", %TName_Bool* %"$$res_122_2676"), !dbg !481 + store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_2677", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_199", align 8, !dbg !481 %"$BoolUtils.andb_200" = alloca %TName_Bool*, align 8 - %"$$BoolUtils.andb_199_2676" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_199", align 8 - %"$$BoolUtils.andb_199_fptr_2677" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_199_2676", 0 - %"$$BoolUtils.andb_199_envptr_2678" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_199_2676", 1 - %"$$res__125_2679" = load %TName_Bool*, %TName_Bool** %"$res__125", align 8 - %"$$BoolUtils.andb_199_call_2680" = call %TName_Bool* %"$$BoolUtils.andb_199_fptr_2677"(i8* %"$$BoolUtils.andb_199_envptr_2678", %TName_Bool* %"$$res__125_2679"), !dbg !159 - store %TName_Bool* %"$$BoolUtils.andb_199_call_2680", %TName_Bool** %"$BoolUtils.andb_200", align 8, !dbg !159 - %"$$BoolUtils.andb_200_2681" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_200", align 8 - store %TName_Bool* %"$$BoolUtils.andb_200_2681", %TName_Bool** %"$res_126", align 8, !dbg !159 - %"$gasrem_2682" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2683" = icmp ugt i64 1, %"$gasrem_2682" - br i1 %"$gascmp_2683", label %"$out_of_gas_2684", label %"$have_gas_2685" - -"$out_of_gas_2684": ; preds = %"$have_gas_2669" - call void @_out_of_gas() - br label %"$have_gas_2685" - -"$have_gas_2685": ; preds = %"$out_of_gas_2684", %"$have_gas_2669" - %"$consume_2686" = sub i64 %"$gasrem_2682", 1 - store i64 %"$consume_2686", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$BoolUtils.andb_200", metadata !482, metadata !DIExpression()), !dbg !481 + %"$$BoolUtils.andb_199_2678" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_199", align 8 + %"$$BoolUtils.andb_199_fptr_2679" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_199_2678", 0 + %"$$BoolUtils.andb_199_envptr_2680" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_199_2678", 1 + %"$$res__125_2681" = load %TName_Bool*, %TName_Bool** %"$res__125", align 8 + %"$$BoolUtils.andb_199_call_2682" = call %TName_Bool* %"$$BoolUtils.andb_199_fptr_2679"(i8* %"$$BoolUtils.andb_199_envptr_2680", %TName_Bool* %"$$res__125_2681"), !dbg !481 + store %TName_Bool* %"$$BoolUtils.andb_199_call_2682", %TName_Bool** %"$BoolUtils.andb_200", align 8, !dbg !481 + %"$$BoolUtils.andb_200_2683" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_200", align 8 + store %TName_Bool* %"$$BoolUtils.andb_200_2683", %TName_Bool** %"$res_126", align 8, !dbg !481 + %"$gasrem_2684" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2685" = icmp ugt i64 1, %"$gasrem_2684" + br i1 %"$gascmp_2685", label %"$out_of_gas_2686", label %"$have_gas_2687" + +"$out_of_gas_2686": ; preds = %"$have_gas_2671" + call void @_out_of_gas() + br label %"$have_gas_2687" + +"$have_gas_2687": ; preds = %"$out_of_gas_2686", %"$have_gas_2671" + %"$consume_2688" = sub i64 %"$gasrem_2684", 1 + store i64 %"$consume_2688", i64* @_gasrem, align 8 %"$p_127" = alloca %Int256, align 8 - %"$p2_2687" = load %Uint32, %Uint32* %p2, align 4 - %"$valueof_2688" = extractvalue %Uint32 %"$p2_2687", 0 - %"$valueof_2689" = zext i32 %"$valueof_2688" to i64 - %"$gaslogof_2690" = uitofp i64 %"$valueof_2689" to double - %"$gaslogof_2691" = fadd double %"$gaslogof_2690", 1.000000e+00 - %"$gaslogof_2692" = call double @llvm.log.f64(double %"$gaslogof_2691") - %"$gaslogof_2693" = fptoui double %"$gaslogof_2692" to i64 - %"$gaslogof_2694" = add i64 %"$gaslogof_2693", 1 - %"$gasmul_2695" = mul i64 20, %"$gaslogof_2694" - %"$gasmul_2696" = mul i64 %"$gasmul_2695", 4 - %"$gasrem_2697" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2698" = icmp ugt i64 %"$gasmul_2696", %"$gasrem_2697" - br i1 %"$gascmp_2698", label %"$out_of_gas_2699", label %"$have_gas_2700" - -"$out_of_gas_2699": ; preds = %"$have_gas_2685" - call void @_out_of_gas() - br label %"$have_gas_2700" - -"$have_gas_2700": ; preds = %"$out_of_gas_2699", %"$have_gas_2685" - %"$consume_2701" = sub i64 %"$gasrem_2697", %"$gasmul_2696" - store i64 %"$consume_2701", i64* @_gasrem, align 8 - %"$execptr_load_2702" = load i8*, i8** @_execptr, align 8 - %"$pow_t9_2703" = alloca %Int256, align 8 - %"$t9_2704" = load %Int256, %Int256* %t9, align 8 - store %Int256 %"$t9_2704", %Int256* %"$pow_t9_2703", align 8 - %"$p2_2705" = load %Uint32, %Uint32* %p2, align 4 - %"$pow_call_2706" = call %Int256* @_pow_Int256(i8* %"$execptr_load_2702", %Int256* %"$pow_t9_2703", %Uint32 %"$p2_2705"), !dbg !160 - %"$pow_2708" = load %Int256, %Int256* %"$pow_call_2706", align 8 - store %Int256 %"$pow_2708", %Int256* %"$p_127", align 8, !dbg !160 - %"$gasrem_2709" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2710" = icmp ugt i64 1, %"$gasrem_2709" - br i1 %"$gascmp_2710", label %"$out_of_gas_2711", label %"$have_gas_2712" - -"$out_of_gas_2711": ; preds = %"$have_gas_2700" - call void @_out_of_gas() - br label %"$have_gas_2712" - -"$have_gas_2712": ; preds = %"$out_of_gas_2711", %"$have_gas_2700" - %"$consume_2713" = sub i64 %"$gasrem_2709", 1 - store i64 %"$consume_2713", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %Int256* %"$p_127", metadata !483, metadata !DIExpression()), !dbg !484 + %"$p2_2689" = load %Uint32, %Uint32* %p2, align 4 + %"$valueof_2690" = extractvalue %Uint32 %"$p2_2689", 0 + %"$valueof_2691" = zext i32 %"$valueof_2690" to i64 + %"$gaslogof_2692" = uitofp i64 %"$valueof_2691" to double + %"$gaslogof_2693" = fadd double %"$gaslogof_2692", 1.000000e+00 + %"$gaslogof_2694" = call double @llvm.log.f64(double %"$gaslogof_2693") + %"$gaslogof_2695" = fptoui double %"$gaslogof_2694" to i64 + %"$gaslogof_2696" = add i64 %"$gaslogof_2695", 1 + %"$gasmul_2697" = mul i64 20, %"$gaslogof_2696" + %"$gasmul_2698" = mul i64 %"$gasmul_2697", 4 + %"$gasrem_2699" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2700" = icmp ugt i64 %"$gasmul_2698", %"$gasrem_2699" + br i1 %"$gascmp_2700", label %"$out_of_gas_2701", label %"$have_gas_2702" + +"$out_of_gas_2701": ; preds = %"$have_gas_2687" + call void @_out_of_gas() + br label %"$have_gas_2702" + +"$have_gas_2702": ; preds = %"$out_of_gas_2701", %"$have_gas_2687" + %"$consume_2703" = sub i64 %"$gasrem_2699", %"$gasmul_2698" + store i64 %"$consume_2703", i64* @_gasrem, align 8 + %"$execptr_load_2704" = load i8*, i8** @_execptr, align 8 + %"$pow_t9_2705" = alloca %Int256, align 8 + %"$t9_2706" = load %Int256, %Int256* %t9, align 8 + store %Int256 %"$t9_2706", %Int256* %"$pow_t9_2705", align 8 + %"$p2_2707" = load %Uint32, %Uint32* %p2, align 4 + %"$pow_call_2708" = call %Int256* @_pow_Int256(i8* %"$execptr_load_2704", %Int256* %"$pow_t9_2705", %Uint32 %"$p2_2707"), !dbg !485 + %"$pow_2710" = load %Int256, %Int256* %"$pow_call_2708", align 8 + store %Int256 %"$pow_2710", %Int256* %"$p_127", align 8, !dbg !485 + %"$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_2713": ; preds = %"$have_gas_2702" + call void @_out_of_gas() + br label %"$have_gas_2714" + +"$have_gas_2714": ; preds = %"$out_of_gas_2713", %"$have_gas_2702" + %"$consume_2715" = sub i64 %"$gasrem_2711", 1 + store i64 %"$consume_2715", i64* @_gasrem, align 8 %"$res_130" = alloca %TName_Bool*, align 8 - %"$gasrem_2714" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2715" = icmp ugt i64 1, %"$gasrem_2714" - br i1 %"$gascmp_2715", label %"$out_of_gas_2716", label %"$have_gas_2717" + call void @llvm.dbg.declare(metadata %TName_Bool** %"$res_130", metadata !486, metadata !DIExpression()), !dbg !487 + %"$gasrem_2716" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2717" = icmp ugt i64 1, %"$gasrem_2716" + br i1 %"$gascmp_2717", label %"$out_of_gas_2718", label %"$have_gas_2719" -"$out_of_gas_2716": ; preds = %"$have_gas_2712" +"$out_of_gas_2718": ; preds = %"$have_gas_2714" call void @_out_of_gas() - br label %"$have_gas_2717" + br label %"$have_gas_2719" -"$have_gas_2717": ; preds = %"$out_of_gas_2716", %"$have_gas_2712" - %"$consume_2718" = sub i64 %"$gasrem_2714", 1 - store i64 %"$consume_2718", i64* @_gasrem, align 8 +"$have_gas_2719": ; preds = %"$out_of_gas_2718", %"$have_gas_2714" + %"$consume_2720" = sub i64 %"$gasrem_2716", 1 + store i64 %"$consume_2720", i64* @_gasrem, align 8 %"$ans_128" = alloca %Int256, align 8 - %"$gasrem_2719" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2720" = icmp ugt i64 1, %"$gasrem_2719" - br i1 %"$gascmp_2720", label %"$out_of_gas_2721", label %"$have_gas_2722" + call void @llvm.dbg.declare(metadata %Int256* %"$ans_128", metadata !488, metadata !DIExpression()), !dbg !489 + %"$gasrem_2721" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2722" = icmp ugt i64 1, %"$gasrem_2721" + br i1 %"$gascmp_2722", label %"$out_of_gas_2723", label %"$have_gas_2724" -"$out_of_gas_2721": ; preds = %"$have_gas_2717" +"$out_of_gas_2723": ; preds = %"$have_gas_2719" call void @_out_of_gas() - br label %"$have_gas_2722" + br label %"$have_gas_2724" -"$have_gas_2722": ; preds = %"$out_of_gas_2721", %"$have_gas_2717" - %"$consume_2723" = sub i64 %"$gasrem_2719", 1 - store i64 %"$consume_2723", i64* @_gasrem, align 8 - store %Int256 { i256 10002 }, %Int256* %"$ans_128", align 8, !dbg !161 - %"$gasrem_2724" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2725" = icmp ugt i64 1, %"$gasrem_2724" - br i1 %"$gascmp_2725", label %"$out_of_gas_2726", label %"$have_gas_2727" +"$have_gas_2724": ; preds = %"$out_of_gas_2723", %"$have_gas_2719" + %"$consume_2725" = sub i64 %"$gasrem_2721", 1 + store i64 %"$consume_2725", i64* @_gasrem, align 8 + store %Int256 { i256 10002 }, %Int256* %"$ans_128", align 8, !dbg !490 + %"$gasrem_2726" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2727" = icmp ugt i64 1, %"$gasrem_2726" + br i1 %"$gascmp_2727", label %"$out_of_gas_2728", label %"$have_gas_2729" -"$out_of_gas_2726": ; preds = %"$have_gas_2722" +"$out_of_gas_2728": ; preds = %"$have_gas_2724" call void @_out_of_gas() - br label %"$have_gas_2727" + br label %"$have_gas_2729" -"$have_gas_2727": ; preds = %"$out_of_gas_2726", %"$have_gas_2722" - %"$consume_2728" = sub i64 %"$gasrem_2724", 1 - store i64 %"$consume_2728", i64* @_gasrem, align 8 +"$have_gas_2729": ; preds = %"$out_of_gas_2728", %"$have_gas_2724" + %"$consume_2730" = sub i64 %"$gasrem_2726", 1 + store i64 %"$consume_2730", i64* @_gasrem, align 8 %"$res__129" = alloca %TName_Bool*, align 8 - %"$gasrem_2730" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2731" = icmp ugt i64 16, %"$gasrem_2730" - br i1 %"$gascmp_2731", label %"$out_of_gas_2732", label %"$have_gas_2733" - -"$out_of_gas_2732": ; preds = %"$have_gas_2727" - call void @_out_of_gas() - br label %"$have_gas_2733" - -"$have_gas_2733": ; preds = %"$out_of_gas_2732", %"$have_gas_2727" - %"$consume_2734" = sub i64 %"$gasrem_2730", 16 - store i64 %"$consume_2734", i64* @_gasrem, align 8 - %"$execptr_load_2735" = load i8*, i8** @_execptr, align 8 - %"$eq_$p_127_2736" = alloca %Int256, align 8 - %"$$p_127_2737" = load %Int256, %Int256* %"$p_127", align 8 - store %Int256 %"$$p_127_2737", %Int256* %"$eq_$p_127_2736", align 8 - %"$eq_$ans_128_2738" = alloca %Int256, align 8 - %"$$ans_128_2739" = load %Int256, %Int256* %"$ans_128", align 8 - store %Int256 %"$$ans_128_2739", %Int256* %"$eq_$ans_128_2738", align 8 - %"$eq_call_2740" = call %TName_Bool* @_eq_Int256(i8* %"$execptr_load_2735", %Int256* %"$eq_$p_127_2736", %Int256* %"$eq_$ans_128_2738"), !dbg !162 - store %TName_Bool* %"$eq_call_2740", %TName_Bool** %"$res__129", align 8, !dbg !162 - %"$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 = %"$have_gas_2733" - call void @_out_of_gas() - br label %"$have_gas_2745" - -"$have_gas_2745": ; preds = %"$out_of_gas_2744", %"$have_gas_2733" - %"$consume_2746" = sub i64 %"$gasrem_2742", 1 - store i64 %"$consume_2746", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$res__129", metadata !491, metadata !DIExpression()), !dbg !492 + %"$gasrem_2732" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2733" = icmp ugt i64 16, %"$gasrem_2732" + br i1 %"$gascmp_2733", label %"$out_of_gas_2734", label %"$have_gas_2735" + +"$out_of_gas_2734": ; preds = %"$have_gas_2729" + call void @_out_of_gas() + br label %"$have_gas_2735" + +"$have_gas_2735": ; preds = %"$out_of_gas_2734", %"$have_gas_2729" + %"$consume_2736" = sub i64 %"$gasrem_2732", 16 + store i64 %"$consume_2736", i64* @_gasrem, align 8 + %"$execptr_load_2737" = load i8*, i8** @_execptr, align 8 + %"$eq_$p_127_2738" = alloca %Int256, align 8 + %"$$p_127_2739" = load %Int256, %Int256* %"$p_127", align 8 + store %Int256 %"$$p_127_2739", %Int256* %"$eq_$p_127_2738", align 8 + %"$eq_$ans_128_2740" = alloca %Int256, align 8 + %"$$ans_128_2741" = load %Int256, %Int256* %"$ans_128", align 8 + store %Int256 %"$$ans_128_2741", %Int256* %"$eq_$ans_128_2740", align 8 + %"$eq_call_2742" = call %TName_Bool* @_eq_Int256(i8* %"$execptr_load_2737", %Int256* %"$eq_$p_127_2738", %Int256* %"$eq_$ans_128_2740"), !dbg !493 + store %TName_Bool* %"$eq_call_2742", %TName_Bool** %"$res__129", align 8, !dbg !493 + %"$gasrem_2744" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2745" = icmp ugt i64 1, %"$gasrem_2744" + br i1 %"$gascmp_2745", label %"$out_of_gas_2746", label %"$have_gas_2747" + +"$out_of_gas_2746": ; preds = %"$have_gas_2735" + call void @_out_of_gas() + br label %"$have_gas_2747" + +"$have_gas_2747": ; preds = %"$out_of_gas_2746", %"$have_gas_2735" + %"$consume_2748" = sub i64 %"$gasrem_2744", 1 + store i64 %"$consume_2748", i64* @_gasrem, align 8 %"$BoolUtils.andb_201" = alloca { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, align 8 - %"$BoolUtils.andb_2747" = 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_2748" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_2747", 0 - %"$BoolUtils.andb_envptr_2749" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_2747", 1 - %"$$res_126_2750" = load %TName_Bool*, %TName_Bool** %"$res_126", align 8 - %"$BoolUtils.andb_call_2751" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_2748"(i8* %"$BoolUtils.andb_envptr_2749", %TName_Bool* %"$$res_126_2750"), !dbg !163 - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_2751", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_201", align 8, !dbg !163 + %"$BoolUtils.andb_2749" = 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_2750" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_2749", 0 + %"$BoolUtils.andb_envptr_2751" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_2749", 1 + %"$$res_126_2752" = load %TName_Bool*, %TName_Bool** %"$res_126", align 8 + %"$BoolUtils.andb_call_2753" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_2750"(i8* %"$BoolUtils.andb_envptr_2751", %TName_Bool* %"$$res_126_2752"), !dbg !494 + store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_2753", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_201", align 8, !dbg !494 %"$BoolUtils.andb_202" = alloca %TName_Bool*, align 8 - %"$$BoolUtils.andb_201_2752" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_201", align 8 - %"$$BoolUtils.andb_201_fptr_2753" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_201_2752", 0 - %"$$BoolUtils.andb_201_envptr_2754" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_201_2752", 1 - %"$$res__129_2755" = load %TName_Bool*, %TName_Bool** %"$res__129", align 8 - %"$$BoolUtils.andb_201_call_2756" = call %TName_Bool* %"$$BoolUtils.andb_201_fptr_2753"(i8* %"$$BoolUtils.andb_201_envptr_2754", %TName_Bool* %"$$res__129_2755"), !dbg !163 - store %TName_Bool* %"$$BoolUtils.andb_201_call_2756", %TName_Bool** %"$BoolUtils.andb_202", align 8, !dbg !163 - %"$$BoolUtils.andb_202_2757" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_202", align 8 - store %TName_Bool* %"$$BoolUtils.andb_202_2757", %TName_Bool** %"$res_130", align 8, !dbg !163 - %"$gasrem_2758" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2759" = icmp ugt i64 1, %"$gasrem_2758" - br i1 %"$gascmp_2759", label %"$out_of_gas_2760", label %"$have_gas_2761" - -"$out_of_gas_2760": ; preds = %"$have_gas_2745" - call void @_out_of_gas() - br label %"$have_gas_2761" - -"$have_gas_2761": ; preds = %"$out_of_gas_2760", %"$have_gas_2745" - %"$consume_2762" = sub i64 %"$gasrem_2758", 1 - store i64 %"$consume_2762", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$BoolUtils.andb_202", metadata !495, metadata !DIExpression()), !dbg !494 + %"$$BoolUtils.andb_201_2754" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_201", align 8 + %"$$BoolUtils.andb_201_fptr_2755" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_201_2754", 0 + %"$$BoolUtils.andb_201_envptr_2756" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_201_2754", 1 + %"$$res__129_2757" = load %TName_Bool*, %TName_Bool** %"$res__129", align 8 + %"$$BoolUtils.andb_201_call_2758" = call %TName_Bool* %"$$BoolUtils.andb_201_fptr_2755"(i8* %"$$BoolUtils.andb_201_envptr_2756", %TName_Bool* %"$$res__129_2757"), !dbg !494 + store %TName_Bool* %"$$BoolUtils.andb_201_call_2758", %TName_Bool** %"$BoolUtils.andb_202", align 8, !dbg !494 + %"$$BoolUtils.andb_202_2759" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_202", align 8 + store %TName_Bool* %"$$BoolUtils.andb_202_2759", %TName_Bool** %"$res_130", align 8, !dbg !494 + %"$gasrem_2760" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2761" = icmp ugt i64 1, %"$gasrem_2760" + br i1 %"$gascmp_2761", label %"$out_of_gas_2762", label %"$have_gas_2763" + +"$out_of_gas_2762": ; preds = %"$have_gas_2747" + call void @_out_of_gas() + br label %"$have_gas_2763" + +"$have_gas_2763": ; preds = %"$out_of_gas_2762", %"$have_gas_2747" + %"$consume_2764" = sub i64 %"$gasrem_2760", 1 + store i64 %"$consume_2764", i64* @_gasrem, align 8 %"$p_131" = alloca %Int256, align 8 - %"$p3_2763" = load %Uint32, %Uint32* %p3, align 4 - %"$valueof_2764" = extractvalue %Uint32 %"$p3_2763", 0 - %"$valueof_2765" = zext i32 %"$valueof_2764" to i64 - %"$gaslogof_2766" = uitofp i64 %"$valueof_2765" to double - %"$gaslogof_2767" = fadd double %"$gaslogof_2766", 1.000000e+00 - %"$gaslogof_2768" = call double @llvm.log.f64(double %"$gaslogof_2767") - %"$gaslogof_2769" = fptoui double %"$gaslogof_2768" to i64 - %"$gaslogof_2770" = add i64 %"$gaslogof_2769", 1 - %"$gasmul_2771" = mul i64 20, %"$gaslogof_2770" - %"$gasmul_2772" = mul i64 %"$gasmul_2771", 4 - %"$gasrem_2773" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2774" = icmp ugt i64 %"$gasmul_2772", %"$gasrem_2773" - br i1 %"$gascmp_2774", label %"$out_of_gas_2775", label %"$have_gas_2776" - -"$out_of_gas_2775": ; preds = %"$have_gas_2761" - call void @_out_of_gas() - br label %"$have_gas_2776" - -"$have_gas_2776": ; preds = %"$out_of_gas_2775", %"$have_gas_2761" - %"$consume_2777" = sub i64 %"$gasrem_2773", %"$gasmul_2772" - store i64 %"$consume_2777", i64* @_gasrem, align 8 - %"$execptr_load_2778" = load i8*, i8** @_execptr, align 8 - %"$pow_t9_2779" = alloca %Int256, align 8 - %"$t9_2780" = load %Int256, %Int256* %t9, align 8 - store %Int256 %"$t9_2780", %Int256* %"$pow_t9_2779", align 8 - %"$p3_2781" = load %Uint32, %Uint32* %p3, align 4 - %"$pow_call_2782" = call %Int256* @_pow_Int256(i8* %"$execptr_load_2778", %Int256* %"$pow_t9_2779", %Uint32 %"$p3_2781"), !dbg !164 - %"$pow_2784" = load %Int256, %Int256* %"$pow_call_2782", align 8 - store %Int256 %"$pow_2784", %Int256* %"$p_131", align 8, !dbg !164 - %"$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" - -"$out_of_gas_2787": ; preds = %"$have_gas_2776" - call void @_out_of_gas() - br label %"$have_gas_2788" - -"$have_gas_2788": ; preds = %"$out_of_gas_2787", %"$have_gas_2776" - %"$consume_2789" = sub i64 %"$gasrem_2785", 1 - store i64 %"$consume_2789", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %Int256* %"$p_131", metadata !496, metadata !DIExpression()), !dbg !497 + %"$p3_2765" = load %Uint32, %Uint32* %p3, align 4 + %"$valueof_2766" = extractvalue %Uint32 %"$p3_2765", 0 + %"$valueof_2767" = zext i32 %"$valueof_2766" to i64 + %"$gaslogof_2768" = uitofp i64 %"$valueof_2767" to double + %"$gaslogof_2769" = fadd double %"$gaslogof_2768", 1.000000e+00 + %"$gaslogof_2770" = call double @llvm.log.f64(double %"$gaslogof_2769") + %"$gaslogof_2771" = fptoui double %"$gaslogof_2770" to i64 + %"$gaslogof_2772" = add i64 %"$gaslogof_2771", 1 + %"$gasmul_2773" = mul i64 20, %"$gaslogof_2772" + %"$gasmul_2774" = mul i64 %"$gasmul_2773", 4 + %"$gasrem_2775" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2776" = icmp ugt i64 %"$gasmul_2774", %"$gasrem_2775" + br i1 %"$gascmp_2776", label %"$out_of_gas_2777", label %"$have_gas_2778" + +"$out_of_gas_2777": ; preds = %"$have_gas_2763" + call void @_out_of_gas() + br label %"$have_gas_2778" + +"$have_gas_2778": ; preds = %"$out_of_gas_2777", %"$have_gas_2763" + %"$consume_2779" = sub i64 %"$gasrem_2775", %"$gasmul_2774" + store i64 %"$consume_2779", i64* @_gasrem, align 8 + %"$execptr_load_2780" = load i8*, i8** @_execptr, align 8 + %"$pow_t9_2781" = alloca %Int256, align 8 + %"$t9_2782" = load %Int256, %Int256* %t9, align 8 + store %Int256 %"$t9_2782", %Int256* %"$pow_t9_2781", align 8 + %"$p3_2783" = load %Uint32, %Uint32* %p3, align 4 + %"$pow_call_2784" = call %Int256* @_pow_Int256(i8* %"$execptr_load_2780", %Int256* %"$pow_t9_2781", %Uint32 %"$p3_2783"), !dbg !498 + %"$pow_2786" = load %Int256, %Int256* %"$pow_call_2784", align 8 + store %Int256 %"$pow_2786", %Int256* %"$p_131", align 8, !dbg !498 + %"$gasrem_2787" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2788" = icmp ugt i64 1, %"$gasrem_2787" + br i1 %"$gascmp_2788", label %"$out_of_gas_2789", label %"$have_gas_2790" + +"$out_of_gas_2789": ; preds = %"$have_gas_2778" + call void @_out_of_gas() + br label %"$have_gas_2790" + +"$have_gas_2790": ; preds = %"$out_of_gas_2789", %"$have_gas_2778" + %"$consume_2791" = sub i64 %"$gasrem_2787", 1 + store i64 %"$consume_2791", i64* @_gasrem, align 8 %"$res_134" = alloca %TName_Bool*, 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" + call void @llvm.dbg.declare(metadata %TName_Bool** %"$res_134", metadata !499, metadata !DIExpression()), !dbg !500 + %"$gasrem_2792" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2793" = icmp ugt i64 1, %"$gasrem_2792" + br i1 %"$gascmp_2793", label %"$out_of_gas_2794", label %"$have_gas_2795" -"$out_of_gas_2792": ; preds = %"$have_gas_2788" +"$out_of_gas_2794": ; preds = %"$have_gas_2790" call void @_out_of_gas() - br label %"$have_gas_2793" + br label %"$have_gas_2795" -"$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 +"$have_gas_2795": ; preds = %"$out_of_gas_2794", %"$have_gas_2790" + %"$consume_2796" = sub i64 %"$gasrem_2792", 1 + store i64 %"$consume_2796", i64* @_gasrem, align 8 %"$ans_132" = alloca %Int256, 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" + call void @llvm.dbg.declare(metadata %Int256* %"$ans_132", metadata !501, metadata !DIExpression()), !dbg !502 + %"$gasrem_2797" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2798" = icmp ugt i64 1, %"$gasrem_2797" + br i1 %"$gascmp_2798", label %"$out_of_gas_2799", label %"$have_gas_2800" -"$out_of_gas_2797": ; preds = %"$have_gas_2793" +"$out_of_gas_2799": ; preds = %"$have_gas_2795" call void @_out_of_gas() - br label %"$have_gas_2798" + br label %"$have_gas_2800" -"$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 - store %Int256 { i256 10008002400320016 }, %Int256* %"$ans_132", align 8, !dbg !165 - %"$gasrem_2800" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2801" = icmp ugt i64 1, %"$gasrem_2800" - br i1 %"$gascmp_2801", label %"$out_of_gas_2802", label %"$have_gas_2803" +"$have_gas_2800": ; preds = %"$out_of_gas_2799", %"$have_gas_2795" + %"$consume_2801" = sub i64 %"$gasrem_2797", 1 + store i64 %"$consume_2801", i64* @_gasrem, align 8 + store %Int256 { i256 10008002400320016 }, %Int256* %"$ans_132", align 8, !dbg !503 + %"$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_2802": ; preds = %"$have_gas_2798" +"$out_of_gas_2804": ; preds = %"$have_gas_2800" call void @_out_of_gas() - br label %"$have_gas_2803" + br label %"$have_gas_2805" -"$have_gas_2803": ; preds = %"$out_of_gas_2802", %"$have_gas_2798" - %"$consume_2804" = sub i64 %"$gasrem_2800", 1 - store i64 %"$consume_2804", i64* @_gasrem, align 8 +"$have_gas_2805": ; preds = %"$out_of_gas_2804", %"$have_gas_2800" + %"$consume_2806" = sub i64 %"$gasrem_2802", 1 + store i64 %"$consume_2806", i64* @_gasrem, align 8 %"$res__133" = alloca %TName_Bool*, align 8 - %"$gasrem_2806" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2807" = icmp ugt i64 16, %"$gasrem_2806" - br i1 %"$gascmp_2807", label %"$out_of_gas_2808", label %"$have_gas_2809" - -"$out_of_gas_2808": ; preds = %"$have_gas_2803" - call void @_out_of_gas() - br label %"$have_gas_2809" - -"$have_gas_2809": ; preds = %"$out_of_gas_2808", %"$have_gas_2803" - %"$consume_2810" = sub i64 %"$gasrem_2806", 16 - store i64 %"$consume_2810", i64* @_gasrem, align 8 - %"$execptr_load_2811" = load i8*, i8** @_execptr, align 8 - %"$eq_$p_131_2812" = alloca %Int256, align 8 - %"$$p_131_2813" = load %Int256, %Int256* %"$p_131", align 8 - store %Int256 %"$$p_131_2813", %Int256* %"$eq_$p_131_2812", align 8 - %"$eq_$ans_132_2814" = alloca %Int256, align 8 - %"$$ans_132_2815" = load %Int256, %Int256* %"$ans_132", align 8 - store %Int256 %"$$ans_132_2815", %Int256* %"$eq_$ans_132_2814", align 8 - %"$eq_call_2816" = call %TName_Bool* @_eq_Int256(i8* %"$execptr_load_2811", %Int256* %"$eq_$p_131_2812", %Int256* %"$eq_$ans_132_2814"), !dbg !166 - store %TName_Bool* %"$eq_call_2816", %TName_Bool** %"$res__133", align 8, !dbg !166 - %"$gasrem_2818" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2819" = icmp ugt i64 1, %"$gasrem_2818" - br i1 %"$gascmp_2819", label %"$out_of_gas_2820", label %"$have_gas_2821" - -"$out_of_gas_2820": ; preds = %"$have_gas_2809" - call void @_out_of_gas() - br label %"$have_gas_2821" - -"$have_gas_2821": ; preds = %"$out_of_gas_2820", %"$have_gas_2809" - %"$consume_2822" = sub i64 %"$gasrem_2818", 1 - store i64 %"$consume_2822", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$res__133", metadata !504, metadata !DIExpression()), !dbg !505 + %"$gasrem_2808" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2809" = icmp ugt i64 16, %"$gasrem_2808" + br i1 %"$gascmp_2809", label %"$out_of_gas_2810", label %"$have_gas_2811" + +"$out_of_gas_2810": ; preds = %"$have_gas_2805" + call void @_out_of_gas() + br label %"$have_gas_2811" + +"$have_gas_2811": ; preds = %"$out_of_gas_2810", %"$have_gas_2805" + %"$consume_2812" = sub i64 %"$gasrem_2808", 16 + store i64 %"$consume_2812", i64* @_gasrem, align 8 + %"$execptr_load_2813" = load i8*, i8** @_execptr, align 8 + %"$eq_$p_131_2814" = alloca %Int256, align 8 + %"$$p_131_2815" = load %Int256, %Int256* %"$p_131", align 8 + store %Int256 %"$$p_131_2815", %Int256* %"$eq_$p_131_2814", align 8 + %"$eq_$ans_132_2816" = alloca %Int256, align 8 + %"$$ans_132_2817" = load %Int256, %Int256* %"$ans_132", align 8 + store %Int256 %"$$ans_132_2817", %Int256* %"$eq_$ans_132_2816", align 8 + %"$eq_call_2818" = call %TName_Bool* @_eq_Int256(i8* %"$execptr_load_2813", %Int256* %"$eq_$p_131_2814", %Int256* %"$eq_$ans_132_2816"), !dbg !506 + store %TName_Bool* %"$eq_call_2818", %TName_Bool** %"$res__133", align 8, !dbg !506 + %"$gasrem_2820" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2821" = icmp ugt i64 1, %"$gasrem_2820" + br i1 %"$gascmp_2821", label %"$out_of_gas_2822", label %"$have_gas_2823" + +"$out_of_gas_2822": ; preds = %"$have_gas_2811" + call void @_out_of_gas() + br label %"$have_gas_2823" + +"$have_gas_2823": ; preds = %"$out_of_gas_2822", %"$have_gas_2811" + %"$consume_2824" = sub i64 %"$gasrem_2820", 1 + store i64 %"$consume_2824", i64* @_gasrem, align 8 %"$BoolUtils.andb_203" = alloca { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, align 8 - %"$BoolUtils.andb_2823" = 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_2824" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_2823", 0 - %"$BoolUtils.andb_envptr_2825" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_2823", 1 - %"$$res_130_2826" = load %TName_Bool*, %TName_Bool** %"$res_130", align 8 - %"$BoolUtils.andb_call_2827" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_2824"(i8* %"$BoolUtils.andb_envptr_2825", %TName_Bool* %"$$res_130_2826"), !dbg !167 - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_2827", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_203", align 8, !dbg !167 + %"$BoolUtils.andb_2825" = 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_2826" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_2825", 0 + %"$BoolUtils.andb_envptr_2827" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_2825", 1 + %"$$res_130_2828" = load %TName_Bool*, %TName_Bool** %"$res_130", align 8 + %"$BoolUtils.andb_call_2829" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_2826"(i8* %"$BoolUtils.andb_envptr_2827", %TName_Bool* %"$$res_130_2828"), !dbg !507 + store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_2829", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_203", align 8, !dbg !507 %"$BoolUtils.andb_204" = alloca %TName_Bool*, align 8 - %"$$BoolUtils.andb_203_2828" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_203", align 8 - %"$$BoolUtils.andb_203_fptr_2829" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_203_2828", 0 - %"$$BoolUtils.andb_203_envptr_2830" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_203_2828", 1 - %"$$res__133_2831" = load %TName_Bool*, %TName_Bool** %"$res__133", align 8 - %"$$BoolUtils.andb_203_call_2832" = call %TName_Bool* %"$$BoolUtils.andb_203_fptr_2829"(i8* %"$$BoolUtils.andb_203_envptr_2830", %TName_Bool* %"$$res__133_2831"), !dbg !167 - store %TName_Bool* %"$$BoolUtils.andb_203_call_2832", %TName_Bool** %"$BoolUtils.andb_204", align 8, !dbg !167 - %"$$BoolUtils.andb_204_2833" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_204", align 8 - store %TName_Bool* %"$$BoolUtils.andb_204_2833", %TName_Bool** %"$res_134", align 8, !dbg !167 - %"$gasrem_2834" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2835" = icmp ugt i64 1, %"$gasrem_2834" - br i1 %"$gascmp_2835", label %"$out_of_gas_2836", label %"$have_gas_2837" - -"$out_of_gas_2836": ; preds = %"$have_gas_2821" - call void @_out_of_gas() - br label %"$have_gas_2837" - -"$have_gas_2837": ; preds = %"$out_of_gas_2836", %"$have_gas_2821" - %"$consume_2838" = sub i64 %"$gasrem_2834", 1 - store i64 %"$consume_2838", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$BoolUtils.andb_204", metadata !508, metadata !DIExpression()), !dbg !507 + %"$$BoolUtils.andb_203_2830" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_203", align 8 + %"$$BoolUtils.andb_203_fptr_2831" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_203_2830", 0 + %"$$BoolUtils.andb_203_envptr_2832" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_203_2830", 1 + %"$$res__133_2833" = load %TName_Bool*, %TName_Bool** %"$res__133", align 8 + %"$$BoolUtils.andb_203_call_2834" = call %TName_Bool* %"$$BoolUtils.andb_203_fptr_2831"(i8* %"$$BoolUtils.andb_203_envptr_2832", %TName_Bool* %"$$res__133_2833"), !dbg !507 + store %TName_Bool* %"$$BoolUtils.andb_203_call_2834", %TName_Bool** %"$BoolUtils.andb_204", align 8, !dbg !507 + %"$$BoolUtils.andb_204_2835" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_204", align 8 + store %TName_Bool* %"$$BoolUtils.andb_204_2835", %TName_Bool** %"$res_134", align 8, !dbg !507 + %"$gasrem_2836" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2837" = icmp ugt i64 1, %"$gasrem_2836" + br i1 %"$gascmp_2837", label %"$out_of_gas_2838", label %"$have_gas_2839" + +"$out_of_gas_2838": ; preds = %"$have_gas_2823" + call void @_out_of_gas() + br label %"$have_gas_2839" + +"$have_gas_2839": ; preds = %"$out_of_gas_2838", %"$have_gas_2823" + %"$consume_2840" = sub i64 %"$gasrem_2836", 1 + store i64 %"$consume_2840", i64* @_gasrem, align 8 %"$p_135" = alloca %Int256, align 8 - %"$p4_2839" = load %Uint32, %Uint32* %p4, align 4 - %"$valueof_2840" = extractvalue %Uint32 %"$p4_2839", 0 - %"$valueof_2841" = zext i32 %"$valueof_2840" to i64 - %"$gaslogof_2842" = uitofp i64 %"$valueof_2841" to double - %"$gaslogof_2843" = fadd double %"$gaslogof_2842", 1.000000e+00 - %"$gaslogof_2844" = call double @llvm.log.f64(double %"$gaslogof_2843") - %"$gaslogof_2845" = fptoui double %"$gaslogof_2844" to i64 - %"$gaslogof_2846" = add i64 %"$gaslogof_2845", 1 - %"$gasmul_2847" = mul i64 20, %"$gaslogof_2846" - %"$gasmul_2848" = mul i64 %"$gasmul_2847", 4 - %"$gasrem_2849" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2850" = icmp ugt i64 %"$gasmul_2848", %"$gasrem_2849" - br i1 %"$gascmp_2850", label %"$out_of_gas_2851", label %"$have_gas_2852" - -"$out_of_gas_2851": ; preds = %"$have_gas_2837" - call void @_out_of_gas() - br label %"$have_gas_2852" - -"$have_gas_2852": ; preds = %"$out_of_gas_2851", %"$have_gas_2837" - %"$consume_2853" = sub i64 %"$gasrem_2849", %"$gasmul_2848" - store i64 %"$consume_2853", i64* @_gasrem, align 8 - %"$execptr_load_2854" = load i8*, i8** @_execptr, align 8 - %"$pow_t9_2855" = alloca %Int256, align 8 - %"$t9_2856" = load %Int256, %Int256* %t9, align 8 - store %Int256 %"$t9_2856", %Int256* %"$pow_t9_2855", align 8 - %"$p4_2857" = load %Uint32, %Uint32* %p4, align 4 - %"$pow_call_2858" = call %Int256* @_pow_Int256(i8* %"$execptr_load_2854", %Int256* %"$pow_t9_2855", %Uint32 %"$p4_2857"), !dbg !168 - %"$pow_2860" = load %Int256, %Int256* %"$pow_call_2858", align 8 - store %Int256 %"$pow_2860", %Int256* %"$p_135", align 8, !dbg !168 - %"$gasrem_2861" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2862" = icmp ugt i64 1, %"$gasrem_2861" - br i1 %"$gascmp_2862", label %"$out_of_gas_2863", label %"$have_gas_2864" - -"$out_of_gas_2863": ; preds = %"$have_gas_2852" - call void @_out_of_gas() - br label %"$have_gas_2864" - -"$have_gas_2864": ; preds = %"$out_of_gas_2863", %"$have_gas_2852" - %"$consume_2865" = sub i64 %"$gasrem_2861", 1 - store i64 %"$consume_2865", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %Int256* %"$p_135", metadata !509, metadata !DIExpression()), !dbg !510 + %"$p4_2841" = load %Uint32, %Uint32* %p4, align 4 + %"$valueof_2842" = extractvalue %Uint32 %"$p4_2841", 0 + %"$valueof_2843" = zext i32 %"$valueof_2842" to i64 + %"$gaslogof_2844" = uitofp i64 %"$valueof_2843" to double + %"$gaslogof_2845" = fadd double %"$gaslogof_2844", 1.000000e+00 + %"$gaslogof_2846" = call double @llvm.log.f64(double %"$gaslogof_2845") + %"$gaslogof_2847" = fptoui double %"$gaslogof_2846" to i64 + %"$gaslogof_2848" = add i64 %"$gaslogof_2847", 1 + %"$gasmul_2849" = mul i64 20, %"$gaslogof_2848" + %"$gasmul_2850" = mul i64 %"$gasmul_2849", 4 + %"$gasrem_2851" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2852" = icmp ugt i64 %"$gasmul_2850", %"$gasrem_2851" + br i1 %"$gascmp_2852", label %"$out_of_gas_2853", label %"$have_gas_2854" + +"$out_of_gas_2853": ; preds = %"$have_gas_2839" + call void @_out_of_gas() + br label %"$have_gas_2854" + +"$have_gas_2854": ; preds = %"$out_of_gas_2853", %"$have_gas_2839" + %"$consume_2855" = sub i64 %"$gasrem_2851", %"$gasmul_2850" + store i64 %"$consume_2855", i64* @_gasrem, align 8 + %"$execptr_load_2856" = load i8*, i8** @_execptr, align 8 + %"$pow_t9_2857" = alloca %Int256, align 8 + %"$t9_2858" = load %Int256, %Int256* %t9, align 8 + store %Int256 %"$t9_2858", %Int256* %"$pow_t9_2857", align 8 + %"$p4_2859" = load %Uint32, %Uint32* %p4, align 4 + %"$pow_call_2860" = call %Int256* @_pow_Int256(i8* %"$execptr_load_2856", %Int256* %"$pow_t9_2857", %Uint32 %"$p4_2859"), !dbg !511 + %"$pow_2862" = load %Int256, %Int256* %"$pow_call_2860", align 8 + store %Int256 %"$pow_2862", %Int256* %"$p_135", align 8, !dbg !511 + %"$gasrem_2863" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2864" = icmp ugt i64 1, %"$gasrem_2863" + br i1 %"$gascmp_2864", label %"$out_of_gas_2865", label %"$have_gas_2866" + +"$out_of_gas_2865": ; preds = %"$have_gas_2854" + call void @_out_of_gas() + br label %"$have_gas_2866" + +"$have_gas_2866": ; preds = %"$out_of_gas_2865", %"$have_gas_2854" + %"$consume_2867" = sub i64 %"$gasrem_2863", 1 + store i64 %"$consume_2867", i64* @_gasrem, align 8 %"$res_138" = alloca %TName_Bool*, align 8 - %"$gasrem_2866" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2867" = icmp ugt i64 1, %"$gasrem_2866" - br i1 %"$gascmp_2867", label %"$out_of_gas_2868", label %"$have_gas_2869" + call void @llvm.dbg.declare(metadata %TName_Bool** %"$res_138", metadata !512, metadata !DIExpression()), !dbg !513 + %"$gasrem_2868" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2869" = icmp ugt i64 1, %"$gasrem_2868" + br i1 %"$gascmp_2869", label %"$out_of_gas_2870", label %"$have_gas_2871" -"$out_of_gas_2868": ; preds = %"$have_gas_2864" +"$out_of_gas_2870": ; preds = %"$have_gas_2866" call void @_out_of_gas() - br label %"$have_gas_2869" + br label %"$have_gas_2871" -"$have_gas_2869": ; preds = %"$out_of_gas_2868", %"$have_gas_2864" - %"$consume_2870" = sub i64 %"$gasrem_2866", 1 - store i64 %"$consume_2870", i64* @_gasrem, align 8 +"$have_gas_2871": ; preds = %"$out_of_gas_2870", %"$have_gas_2866" + %"$consume_2872" = sub i64 %"$gasrem_2868", 1 + store i64 %"$consume_2872", i64* @_gasrem, align 8 %"$ans_136" = alloca %Int256, align 8 - %"$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" + call void @llvm.dbg.declare(metadata %Int256* %"$ans_136", metadata !514, metadata !DIExpression()), !dbg !515 + %"$gasrem_2873" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2874" = icmp ugt i64 1, %"$gasrem_2873" + br i1 %"$gascmp_2874", label %"$out_of_gas_2875", label %"$have_gas_2876" -"$out_of_gas_2873": ; preds = %"$have_gas_2869" +"$out_of_gas_2875": ; preds = %"$have_gas_2871" call void @_out_of_gas() - br label %"$have_gas_2874" + br label %"$have_gas_2876" -"$have_gas_2874": ; preds = %"$out_of_gas_2873", %"$have_gas_2869" - %"$consume_2875" = sub i64 %"$gasrem_2871", 1 - store i64 %"$consume_2875", i64* @_gasrem, align 8 - store %Int256 { i256 10020018009603360806534415361152051201024 }, %Int256* %"$ans_136", align 8, !dbg !169 - %"$gasrem_2876" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2877" = icmp ugt i64 1, %"$gasrem_2876" - br i1 %"$gascmp_2877", label %"$out_of_gas_2878", label %"$have_gas_2879" +"$have_gas_2876": ; preds = %"$out_of_gas_2875", %"$have_gas_2871" + %"$consume_2877" = sub i64 %"$gasrem_2873", 1 + store i64 %"$consume_2877", i64* @_gasrem, align 8 + store %Int256 { i256 10020018009603360806534415361152051201024 }, %Int256* %"$ans_136", align 8, !dbg !516 + %"$gasrem_2878" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2879" = icmp ugt i64 1, %"$gasrem_2878" + br i1 %"$gascmp_2879", label %"$out_of_gas_2880", label %"$have_gas_2881" -"$out_of_gas_2878": ; preds = %"$have_gas_2874" +"$out_of_gas_2880": ; preds = %"$have_gas_2876" call void @_out_of_gas() - br label %"$have_gas_2879" + br label %"$have_gas_2881" -"$have_gas_2879": ; preds = %"$out_of_gas_2878", %"$have_gas_2874" - %"$consume_2880" = sub i64 %"$gasrem_2876", 1 - store i64 %"$consume_2880", i64* @_gasrem, align 8 +"$have_gas_2881": ; preds = %"$out_of_gas_2880", %"$have_gas_2876" + %"$consume_2882" = sub i64 %"$gasrem_2878", 1 + store i64 %"$consume_2882", i64* @_gasrem, align 8 %"$res__137" = alloca %TName_Bool*, align 8 - %"$gasrem_2882" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2883" = icmp ugt i64 16, %"$gasrem_2882" - br i1 %"$gascmp_2883", label %"$out_of_gas_2884", label %"$have_gas_2885" - -"$out_of_gas_2884": ; preds = %"$have_gas_2879" - call void @_out_of_gas() - br label %"$have_gas_2885" - -"$have_gas_2885": ; preds = %"$out_of_gas_2884", %"$have_gas_2879" - %"$consume_2886" = sub i64 %"$gasrem_2882", 16 - store i64 %"$consume_2886", i64* @_gasrem, align 8 - %"$execptr_load_2887" = load i8*, i8** @_execptr, align 8 - %"$eq_$p_135_2888" = alloca %Int256, align 8 - %"$$p_135_2889" = load %Int256, %Int256* %"$p_135", align 8 - store %Int256 %"$$p_135_2889", %Int256* %"$eq_$p_135_2888", align 8 - %"$eq_$ans_136_2890" = alloca %Int256, align 8 - %"$$ans_136_2891" = load %Int256, %Int256* %"$ans_136", align 8 - store %Int256 %"$$ans_136_2891", %Int256* %"$eq_$ans_136_2890", align 8 - %"$eq_call_2892" = call %TName_Bool* @_eq_Int256(i8* %"$execptr_load_2887", %Int256* %"$eq_$p_135_2888", %Int256* %"$eq_$ans_136_2890"), !dbg !170 - store %TName_Bool* %"$eq_call_2892", %TName_Bool** %"$res__137", align 8, !dbg !170 - %"$gasrem_2894" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2895" = icmp ugt i64 1, %"$gasrem_2894" - br i1 %"$gascmp_2895", label %"$out_of_gas_2896", label %"$have_gas_2897" - -"$out_of_gas_2896": ; preds = %"$have_gas_2885" - call void @_out_of_gas() - br label %"$have_gas_2897" - -"$have_gas_2897": ; preds = %"$out_of_gas_2896", %"$have_gas_2885" - %"$consume_2898" = sub i64 %"$gasrem_2894", 1 - store i64 %"$consume_2898", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$res__137", metadata !517, metadata !DIExpression()), !dbg !518 + %"$gasrem_2884" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2885" = icmp ugt i64 16, %"$gasrem_2884" + br i1 %"$gascmp_2885", label %"$out_of_gas_2886", label %"$have_gas_2887" + +"$out_of_gas_2886": ; preds = %"$have_gas_2881" + call void @_out_of_gas() + br label %"$have_gas_2887" + +"$have_gas_2887": ; preds = %"$out_of_gas_2886", %"$have_gas_2881" + %"$consume_2888" = sub i64 %"$gasrem_2884", 16 + store i64 %"$consume_2888", i64* @_gasrem, align 8 + %"$execptr_load_2889" = load i8*, i8** @_execptr, align 8 + %"$eq_$p_135_2890" = alloca %Int256, align 8 + %"$$p_135_2891" = load %Int256, %Int256* %"$p_135", align 8 + store %Int256 %"$$p_135_2891", %Int256* %"$eq_$p_135_2890", align 8 + %"$eq_$ans_136_2892" = alloca %Int256, align 8 + %"$$ans_136_2893" = load %Int256, %Int256* %"$ans_136", align 8 + store %Int256 %"$$ans_136_2893", %Int256* %"$eq_$ans_136_2892", align 8 + %"$eq_call_2894" = call %TName_Bool* @_eq_Int256(i8* %"$execptr_load_2889", %Int256* %"$eq_$p_135_2890", %Int256* %"$eq_$ans_136_2892"), !dbg !519 + store %TName_Bool* %"$eq_call_2894", %TName_Bool** %"$res__137", align 8, !dbg !519 + %"$gasrem_2896" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2897" = icmp ugt i64 1, %"$gasrem_2896" + br i1 %"$gascmp_2897", label %"$out_of_gas_2898", label %"$have_gas_2899" + +"$out_of_gas_2898": ; preds = %"$have_gas_2887" + call void @_out_of_gas() + br label %"$have_gas_2899" + +"$have_gas_2899": ; preds = %"$out_of_gas_2898", %"$have_gas_2887" + %"$consume_2900" = sub i64 %"$gasrem_2896", 1 + store i64 %"$consume_2900", i64* @_gasrem, align 8 %"$BoolUtils.andb_205" = alloca { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, align 8 - %"$BoolUtils.andb_2899" = 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_2900" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_2899", 0 - %"$BoolUtils.andb_envptr_2901" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_2899", 1 - %"$$res_134_2902" = load %TName_Bool*, %TName_Bool** %"$res_134", align 8 - %"$BoolUtils.andb_call_2903" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_2900"(i8* %"$BoolUtils.andb_envptr_2901", %TName_Bool* %"$$res_134_2902"), !dbg !171 - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_2903", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_205", align 8, !dbg !171 + %"$BoolUtils.andb_2901" = 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_2902" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_2901", 0 + %"$BoolUtils.andb_envptr_2903" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_2901", 1 + %"$$res_134_2904" = load %TName_Bool*, %TName_Bool** %"$res_134", align 8 + %"$BoolUtils.andb_call_2905" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_2902"(i8* %"$BoolUtils.andb_envptr_2903", %TName_Bool* %"$$res_134_2904"), !dbg !520 + store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_2905", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_205", align 8, !dbg !520 %"$BoolUtils.andb_206" = alloca %TName_Bool*, align 8 - %"$$BoolUtils.andb_205_2904" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_205", align 8 - %"$$BoolUtils.andb_205_fptr_2905" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_205_2904", 0 - %"$$BoolUtils.andb_205_envptr_2906" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_205_2904", 1 - %"$$res__137_2907" = load %TName_Bool*, %TName_Bool** %"$res__137", align 8 - %"$$BoolUtils.andb_205_call_2908" = call %TName_Bool* %"$$BoolUtils.andb_205_fptr_2905"(i8* %"$$BoolUtils.andb_205_envptr_2906", %TName_Bool* %"$$res__137_2907"), !dbg !171 - store %TName_Bool* %"$$BoolUtils.andb_205_call_2908", %TName_Bool** %"$BoolUtils.andb_206", align 8, !dbg !171 - %"$$BoolUtils.andb_206_2909" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_206", align 8 - store %TName_Bool* %"$$BoolUtils.andb_206_2909", %TName_Bool** %"$res_138", align 8, !dbg !171 - %"$gasrem_2910" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2911" = icmp ugt i64 1, %"$gasrem_2910" - br i1 %"$gascmp_2911", label %"$out_of_gas_2912", label %"$have_gas_2913" - -"$out_of_gas_2912": ; preds = %"$have_gas_2897" - call void @_out_of_gas() - br label %"$have_gas_2913" - -"$have_gas_2913": ; preds = %"$out_of_gas_2912", %"$have_gas_2897" - %"$consume_2914" = sub i64 %"$gasrem_2910", 1 - store i64 %"$consume_2914", i64* @_gasrem, align 8 - %"$$res_138_2915" = load %TName_Bool*, %TName_Bool** %"$res_138", align 8 - store %TName_Bool* %"$$res_138_2915", %TName_Bool** %"$expr_211", align 8, !dbg !172 - %"$$expr_211_2916" = load %TName_Bool*, %TName_Bool** %"$expr_211", align 8 - ret %TName_Bool* %"$$expr_211_2916" + call void @llvm.dbg.declare(metadata %TName_Bool** %"$BoolUtils.andb_206", metadata !521, metadata !DIExpression()), !dbg !520 + %"$$BoolUtils.andb_205_2906" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_205", align 8 + %"$$BoolUtils.andb_205_fptr_2907" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_205_2906", 0 + %"$$BoolUtils.andb_205_envptr_2908" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_205_2906", 1 + %"$$res__137_2909" = load %TName_Bool*, %TName_Bool** %"$res__137", align 8 + %"$$BoolUtils.andb_205_call_2910" = call %TName_Bool* %"$$BoolUtils.andb_205_fptr_2907"(i8* %"$$BoolUtils.andb_205_envptr_2908", %TName_Bool* %"$$res__137_2909"), !dbg !520 + store %TName_Bool* %"$$BoolUtils.andb_205_call_2910", %TName_Bool** %"$BoolUtils.andb_206", align 8, !dbg !520 + %"$$BoolUtils.andb_206_2911" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_206", align 8 + store %TName_Bool* %"$$BoolUtils.andb_206_2911", %TName_Bool** %"$res_138", align 8, !dbg !520 + %"$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" + +"$out_of_gas_2914": ; preds = %"$have_gas_2899" + call void @_out_of_gas() + br label %"$have_gas_2915" + +"$have_gas_2915": ; preds = %"$out_of_gas_2914", %"$have_gas_2899" + %"$consume_2916" = sub i64 %"$gasrem_2912", 1 + store i64 %"$consume_2916", i64* @_gasrem, align 8 + %"$$res_138_2917" = load %TName_Bool*, %TName_Bool** %"$res_138", align 8 + store %TName_Bool* %"$$res_138_2917", %TName_Bool** %"$expr_211", align 8, !dbg !522 + %"$$expr_211_2918" = load %TName_Bool*, %TName_Bool** %"$expr_211", align 8 + ret %TName_Bool* %"$$expr_211_2918" } -; Function Attrs: nofree nosync nounwind readnone speculatable willreturn +; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn declare double @llvm.log.f64(double) #0 declare %Uint32 @_pow_Uint32(%Uint32, %Uint32) @@ -5387,188 +5582,538 @@ declare void @_print_scilla_val(i8*, %_TyDescrTy_Typ*, i8*) define void @scilla_main() { entry: - %"$exprval_2917" = call %TName_Bool* @_scilla_expr_fun(i8* null) - %"$memvoidcast_2918" = bitcast %TName_Bool* %"$exprval_2917" to i8* - %"$execptr_load_2919" = load i8*, i8** @_execptr, align 8 - call void @_print_scilla_val(i8* %"$execptr_load_2919", %_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_246", i8* %"$memvoidcast_2918") + %"$exprval_2919" = call %TName_Bool* @_scilla_expr_fun(i8* null) + %"$memvoidcast_2920" = bitcast %TName_Bool* %"$exprval_2919" to i8* + %"$execptr_load_2921" = load i8*, i8** @_execptr, align 8 + call void @_print_scilla_val(i8* %"$execptr_load_2921", %_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_246", i8* %"$memvoidcast_2920") ret void } -attributes #0 = { nofree nosync nounwind readnone speculatable willreturn } +attributes #0 = { nocallback nofree nosync nounwind readnone speculatable willreturn } !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) +!1 = distinct !DICompileUnit(language: DW_LANG_C89, file: !2, producer: "Scilla Compiler", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false) !2 = !DIFile(filename: "builtin-pow.scilexp", directory: "codegen/expr") -!3 = !{} -!4 = distinct !DISubprogram(name: "$fundef_209", linkageName: "$fundef_209", scope: !5, file: !5, line: 8, type: !6, scopeLine: 8, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!5 = !DIFile(filename: "BoolUtils.scillib", directory: "../src/stdlib") -!6 = !DISubroutineType(types: !7) -!7 = !{!8} -!8 = !DIBasicType(tag: DW_TAG_unspecified_type, name: "void") -!9 = !DILocation(line: 8, column: 5, scope: !4) -!10 = !DILocation(line: 9, column: 16, scope: !11) -!11 = distinct !DILexicalBlock(scope: !12, file: !5, line: 9, column: 7) -!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_207", linkageName: "$fundef_207", 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: 0, scope: !17) -!20 = !DILocation(line: 7, column: 3, scope: !17) -!21 = distinct !DISubprogram(name: "_scilla_expr_fun", linkageName: "_scilla_expr_fun", scope: !2, file: !2, line: 1, type: !6, scopeLine: 1, spFlags: DISPFlagDefinition, unit: !1, retainedNodes: !3) -!22 = !DILocation(line: 1, column: 10, scope: !21) -!23 = !DILocation(line: 2, column: 10, scope: !21) -!24 = !DILocation(line: 3, column: 10, scope: !21) -!25 = !DILocation(line: 4, column: 10, scope: !21) -!26 = !DILocation(line: 6, column: 10, scope: !21) -!27 = !DILocation(line: 7, column: 10, scope: !21) -!28 = !DILocation(line: 8, column: 10, scope: !21) -!29 = !DILocation(line: 9, column: 10, scope: !21) -!30 = !DILocation(line: 10, column: 10, scope: !21) -!31 = !DILocation(line: 11, column: 10, scope: !21) -!32 = !DILocation(line: 12, column: 10, scope: !21) -!33 = !DILocation(line: 13, column: 10, scope: !21) -!34 = !DILocation(line: 14, column: 10, scope: !21) -!35 = !DILocation(line: 16, column: 11, scope: !21) -!36 = !DILocation(line: 20, column: 9, scope: !21) -!37 = !DILocation(line: 22, column: 13, scope: !21) -!38 = !DILocation(line: 23, column: 14, scope: !21) -!39 = !DILocation(line: 24, column: 3, scope: !21) -!40 = !DILocation(line: 27, column: 9, scope: !21) -!41 = !DILocation(line: 29, column: 13, scope: !21) -!42 = !DILocation(line: 30, column: 14, scope: !21) -!43 = !DILocation(line: 31, column: 3, scope: !21) -!44 = !DILocation(line: 34, column: 9, scope: !21) -!45 = !DILocation(line: 36, column: 13, scope: !21) -!46 = !DILocation(line: 37, column: 14, scope: !21) -!47 = !DILocation(line: 38, column: 3, scope: !21) -!48 = !DILocation(line: 41, column: 9, scope: !21) -!49 = !DILocation(line: 43, column: 13, scope: !21) -!50 = !DILocation(line: 44, column: 14, scope: !21) -!51 = !DILocation(line: 45, column: 3, scope: !21) -!52 = !DILocation(line: 50, column: 9, scope: !21) -!53 = !DILocation(line: 52, column: 13, scope: !21) -!54 = !DILocation(line: 53, column: 14, scope: !21) -!55 = !DILocation(line: 54, column: 3, scope: !21) -!56 = !DILocation(line: 57, column: 9, scope: !21) -!57 = !DILocation(line: 59, column: 13, scope: !21) -!58 = !DILocation(line: 60, column: 14, scope: !21) -!59 = !DILocation(line: 61, column: 3, scope: !21) -!60 = !DILocation(line: 64, column: 9, scope: !21) -!61 = !DILocation(line: 66, column: 13, scope: !21) -!62 = !DILocation(line: 67, column: 14, scope: !21) -!63 = !DILocation(line: 68, column: 3, scope: !21) -!64 = !DILocation(line: 71, column: 9, scope: !21) -!65 = !DILocation(line: 73, column: 13, scope: !21) -!66 = !DILocation(line: 74, column: 14, scope: !21) -!67 = !DILocation(line: 75, column: 3, scope: !21) -!68 = !DILocation(line: 80, column: 9, scope: !21) -!69 = !DILocation(line: 82, column: 13, scope: !21) -!70 = !DILocation(line: 83, column: 14, scope: !21) -!71 = !DILocation(line: 84, column: 3, scope: !21) -!72 = !DILocation(line: 87, column: 9, scope: !21) -!73 = !DILocation(line: 89, column: 13, scope: !21) -!74 = !DILocation(line: 90, column: 14, scope: !21) -!75 = !DILocation(line: 91, column: 3, scope: !21) -!76 = !DILocation(line: 94, column: 9, scope: !21) -!77 = !DILocation(line: 96, column: 13, scope: !21) -!78 = !DILocation(line: 97, column: 14, scope: !21) -!79 = !DILocation(line: 98, column: 3, scope: !21) -!80 = !DILocation(line: 103, column: 9, scope: !21) -!81 = !DILocation(line: 105, column: 13, scope: !21) -!82 = !DILocation(line: 106, column: 14, scope: !21) -!83 = !DILocation(line: 107, column: 3, scope: !21) -!84 = !DILocation(line: 110, column: 9, scope: !21) -!85 = !DILocation(line: 112, column: 13, scope: !21) -!86 = !DILocation(line: 113, column: 14, scope: !21) -!87 = !DILocation(line: 114, column: 3, scope: !21) -!88 = !DILocation(line: 117, column: 9, scope: !21) -!89 = !DILocation(line: 119, column: 13, scope: !21) -!90 = !DILocation(line: 120, column: 14, scope: !21) -!91 = !DILocation(line: 121, column: 3, scope: !21) -!92 = !DILocation(line: 126, column: 9, scope: !21) -!93 = !DILocation(line: 128, column: 13, scope: !21) -!94 = !DILocation(line: 129, column: 14, scope: !21) -!95 = !DILocation(line: 130, column: 3, scope: !21) -!96 = !DILocation(line: 133, column: 9, scope: !21) -!97 = !DILocation(line: 135, column: 13, scope: !21) -!98 = !DILocation(line: 136, column: 14, scope: !21) -!99 = !DILocation(line: 137, column: 3, scope: !21) -!100 = !DILocation(line: 140, column: 9, scope: !21) -!101 = !DILocation(line: 142, column: 13, scope: !21) -!102 = !DILocation(line: 143, column: 14, scope: !21) -!103 = !DILocation(line: 144, column: 3, scope: !21) -!104 = !DILocation(line: 147, column: 9, scope: !21) -!105 = !DILocation(line: 149, column: 13, scope: !21) -!106 = !DILocation(line: 150, column: 14, scope: !21) -!107 = !DILocation(line: 151, column: 3, scope: !21) -!108 = !DILocation(line: 156, column: 9, scope: !21) -!109 = !DILocation(line: 158, column: 13, scope: !21) -!110 = !DILocation(line: 159, column: 14, scope: !21) -!111 = !DILocation(line: 160, column: 3, scope: !21) -!112 = !DILocation(line: 163, column: 9, scope: !21) -!113 = !DILocation(line: 165, column: 13, scope: !21) -!114 = !DILocation(line: 166, column: 14, scope: !21) -!115 = !DILocation(line: 167, column: 3, scope: !21) -!116 = !DILocation(line: 170, column: 9, scope: !21) -!117 = !DILocation(line: 172, column: 13, scope: !21) -!118 = !DILocation(line: 173, column: 14, scope: !21) -!119 = !DILocation(line: 174, column: 3, scope: !21) -!120 = !DILocation(line: 177, column: 9, scope: !21) -!121 = !DILocation(line: 179, column: 13, scope: !21) -!122 = !DILocation(line: 180, column: 14, scope: !21) -!123 = !DILocation(line: 181, column: 3, scope: !21) -!124 = !DILocation(line: 186, column: 9, scope: !21) -!125 = !DILocation(line: 188, column: 13, scope: !21) -!126 = !DILocation(line: 189, column: 14, scope: !21) -!127 = !DILocation(line: 190, column: 3, scope: !21) -!128 = !DILocation(line: 193, column: 9, scope: !21) -!129 = !DILocation(line: 195, column: 13, scope: !21) -!130 = !DILocation(line: 196, column: 14, scope: !21) -!131 = !DILocation(line: 197, column: 3, scope: !21) -!132 = !DILocation(line: 200, column: 9, scope: !21) -!133 = !DILocation(line: 202, column: 13, scope: !21) -!134 = !DILocation(line: 203, column: 14, scope: !21) -!135 = !DILocation(line: 204, column: 3, scope: !21) -!136 = !DILocation(line: 207, column: 9, scope: !21) -!137 = !DILocation(line: 209, column: 13, scope: !21) -!138 = !DILocation(line: 210, column: 14, scope: !21) -!139 = !DILocation(line: 211, column: 3, scope: !21) -!140 = !DILocation(line: 216, column: 9, scope: !21) -!141 = !DILocation(line: 218, column: 13, scope: !21) -!142 = !DILocation(line: 219, column: 14, scope: !21) -!143 = !DILocation(line: 220, column: 3, scope: !21) -!144 = !DILocation(line: 223, column: 9, scope: !21) -!145 = !DILocation(line: 225, column: 13, scope: !21) -!146 = !DILocation(line: 226, column: 14, scope: !21) -!147 = !DILocation(line: 227, column: 3, scope: !21) -!148 = !DILocation(line: 230, column: 9, scope: !21) -!149 = !DILocation(line: 232, column: 13, scope: !21) -!150 = !DILocation(line: 233, column: 14, scope: !21) -!151 = !DILocation(line: 234, column: 3, scope: !21) -!152 = !DILocation(line: 237, column: 9, scope: !21) -!153 = !DILocation(line: 239, column: 13, scope: !21) -!154 = !DILocation(line: 240, column: 14, scope: !21) -!155 = !DILocation(line: 241, column: 3, scope: !21) -!156 = !DILocation(line: 246, column: 9, scope: !21) -!157 = !DILocation(line: 248, column: 13, scope: !21) -!158 = !DILocation(line: 249, column: 14, scope: !21) -!159 = !DILocation(line: 250, column: 3, scope: !21) -!160 = !DILocation(line: 253, column: 9, scope: !21) -!161 = !DILocation(line: 255, column: 13, scope: !21) -!162 = !DILocation(line: 256, column: 14, scope: !21) -!163 = !DILocation(line: 257, column: 3, scope: !21) -!164 = !DILocation(line: 260, column: 9, scope: !21) -!165 = !DILocation(line: 262, column: 13, scope: !21) -!166 = !DILocation(line: 263, column: 14, scope: !21) -!167 = !DILocation(line: 264, column: 3, scope: !21) -!168 = !DILocation(line: 267, column: 9, scope: !21) -!169 = !DILocation(line: 269, column: 13, scope: !21) -!170 = !DILocation(line: 270, column: 14, scope: !21) -!171 = !DILocation(line: 271, column: 3, scope: !21) -!172 = !DILocation(line: 276, column: 1, scope: !21) +!3 = distinct !DISubprogram(name: "$fundef_209", linkageName: "$fundef_209", scope: !4, file: !4, line: 8, type: !5, scopeLine: 8, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!4 = !DIFile(filename: "BoolUtils.scillib", directory: "../src/stdlib") +!5 = !DISubroutineType(types: !6) +!6 = !{!7} +!7 = !DIBasicType(tag: DW_TAG_unspecified_type, name: "void") +!8 = !{} +!9 = !DILocalVariable(name: "c", scope: !3, file: !4, line: 7, type: !10) +!10 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "Bool", baseType: !11, size: 8, align: 8, dwarfAddressSpace: 0) +!11 = !DIBasicType(name: "Bool", size: 8) +!12 = !DILocation(line: 7, column: 8, scope: !3) +!13 = !DILocalVariable(name: "$retval_210", scope: !3, file: !4, line: 8, type: !10) +!14 = !DILocation(line: 8, column: 5, scope: !3) +!15 = !DILocation(line: 9, column: 16, scope: !16) +!16 = distinct !DILexicalBlock(scope: !17, file: !4, line: 9, column: 7) +!17 = distinct !DILexicalBlock(scope: !3, file: !4, line: 8, column: 5) +!18 = !DILocation(line: 10, column: 16, scope: !19) +!19 = distinct !DILexicalBlock(scope: !17, file: !4, line: 10, column: 7) +!20 = distinct !DISubprogram(name: "$fundef_207", linkageName: "$fundef_207", scope: !4, file: !4, line: 7, type: !5, scopeLine: 7, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!21 = !DILocalVariable(name: "b", scope: !20, file: !4, line: 6, type: !10) +!22 = !DILocation(line: 6, column: 8, scope: !20) +!23 = !DILocation(line: 8, column: 5, scope: !20) +!24 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !25, file: !25, type: !5, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!25 = !DIFile(filename: ".", directory: ".") +!26 = !DILocation(line: 0, scope: !24) +!27 = !DILocation(line: 7, column: 3, scope: !24) +!28 = distinct !DISubprogram(name: "_scilla_expr_fun", linkageName: "_scilla_expr_fun", scope: !2, file: !2, line: 1, type: !5, scopeLine: 1, spFlags: DISPFlagDefinition, unit: !1, retainedNodes: !8) +!29 = !DILocalVariable(name: "$expr_211", scope: !28, file: !2, line: 1, type: !10) +!30 = !DILocation(line: 1, column: 10, scope: !28) +!31 = !DILocalVariable(name: "p1", scope: !28, file: !2, line: 1, type: !32) +!32 = !DIBasicType(name: "Uint32", size: 4) +!33 = !DILocation(line: 1, column: 5, scope: !28) +!34 = !DILocalVariable(name: "p2", scope: !28, file: !2, line: 2, type: !32) +!35 = !DILocation(line: 2, column: 5, scope: !28) +!36 = !DILocation(line: 2, column: 10, scope: !28) +!37 = !DILocalVariable(name: "p3", scope: !28, file: !2, line: 3, type: !32) +!38 = !DILocation(line: 3, column: 5, scope: !28) +!39 = !DILocation(line: 3, column: 10, scope: !28) +!40 = !DILocalVariable(name: "p4", scope: !28, file: !2, line: 4, type: !32) +!41 = !DILocation(line: 4, column: 5, scope: !28) +!42 = !DILocation(line: 4, column: 10, scope: !28) +!43 = !DILocalVariable(name: "t1", scope: !28, file: !2, line: 6, type: !32) +!44 = !DILocation(line: 6, column: 5, scope: !28) +!45 = !DILocation(line: 6, column: 10, scope: !28) +!46 = !DILocalVariable(name: "t2", scope: !28, file: !2, line: 7, type: !47) +!47 = !DIBasicType(name: "Int32", size: 4) +!48 = !DILocation(line: 7, column: 5, scope: !28) +!49 = !DILocation(line: 7, column: 10, scope: !28) +!50 = !DILocalVariable(name: "t3", scope: !28, file: !2, line: 8, type: !51) +!51 = !DIBasicType(name: "Uint64", size: 8) +!52 = !DILocation(line: 8, column: 5, scope: !28) +!53 = !DILocation(line: 8, column: 10, scope: !28) +!54 = !DILocalVariable(name: "t4", scope: !28, file: !2, line: 9, type: !55) +!55 = !DIBasicType(name: "Int64", size: 8) +!56 = !DILocation(line: 9, column: 5, scope: !28) +!57 = !DILocation(line: 9, column: 10, scope: !28) +!58 = !DILocalVariable(name: "t5", scope: !28, file: !2, line: 10, type: !59) +!59 = !DIBasicType(name: "Uint128", size: 16) +!60 = !DILocation(line: 10, column: 5, scope: !28) +!61 = !DILocation(line: 10, column: 10, scope: !28) +!62 = !DILocalVariable(name: "t6", scope: !28, file: !2, line: 11, type: !63) +!63 = !DIBasicType(name: "Int128", size: 16) +!64 = !DILocation(line: 11, column: 5, scope: !28) +!65 = !DILocation(line: 11, column: 10, scope: !28) +!66 = !DILocalVariable(name: "t7", scope: !28, file: !2, line: 12, type: !67) +!67 = !DIBasicType(name: "Uint256", size: 32) +!68 = !DILocation(line: 12, column: 5, scope: !28) +!69 = !DILocation(line: 12, column: 10, scope: !28) +!70 = !DILocalVariable(name: "t8", scope: !28, file: !2, line: 13, type: !71) +!71 = !DIBasicType(name: "Int256", size: 32) +!72 = !DILocation(line: 13, column: 5, scope: !28) +!73 = !DILocation(line: 13, column: 10, scope: !28) +!74 = !DILocalVariable(name: "t9", scope: !28, file: !2, line: 14, type: !71) +!75 = !DILocation(line: 14, column: 5, scope: !28) +!76 = !DILocation(line: 14, column: 10, scope: !28) +!77 = !DILocalVariable(name: "res", scope: !28, file: !2, line: 16, type: !10) +!78 = !DILocation(line: 16, column: 5, scope: !28) +!79 = !DILocation(line: 16, column: 11, scope: !28) +!80 = !DILocalVariable(name: "p", scope: !28, file: !2, line: 20, type: !32) +!81 = !DILocation(line: 20, column: 5, scope: !28) +!82 = !DILocation(line: 20, column: 9, scope: !28) +!83 = !DILocalVariable(name: "$res_6", scope: !28, file: !2, line: 21, type: !10) +!84 = !DILocation(line: 21, column: 5, scope: !28) +!85 = !DILocalVariable(name: "ans", scope: !28, file: !2, line: 22, type: !32) +!86 = !DILocation(line: 22, column: 7, scope: !28) +!87 = !DILocation(line: 22, column: 13, scope: !28) +!88 = !DILocalVariable(name: "res_", scope: !28, file: !2, line: 23, type: !10) +!89 = !DILocation(line: 23, column: 7, scope: !28) +!90 = !DILocation(line: 23, column: 14, scope: !28) +!91 = !DILocation(line: 24, column: 3, scope: !28) +!92 = !DILocalVariable(name: "$BoolUtils.andb_140", scope: !28, file: !2, line: 24, type: !10) +!93 = !DILocalVariable(name: "$p_7", scope: !28, file: !2, line: 27, type: !32) +!94 = !DILocation(line: 27, column: 5, scope: !28) +!95 = !DILocation(line: 27, column: 9, scope: !28) +!96 = !DILocalVariable(name: "$res_10", scope: !28, file: !2, line: 28, type: !10) +!97 = !DILocation(line: 28, column: 5, scope: !28) +!98 = !DILocalVariable(name: "$ans_8", scope: !28, file: !2, line: 29, type: !32) +!99 = !DILocation(line: 29, column: 7, scope: !28) +!100 = !DILocation(line: 29, column: 13, scope: !28) +!101 = !DILocalVariable(name: "$res__9", scope: !28, file: !2, line: 30, type: !10) +!102 = !DILocation(line: 30, column: 7, scope: !28) +!103 = !DILocation(line: 30, column: 14, scope: !28) +!104 = !DILocation(line: 31, column: 3, scope: !28) +!105 = !DILocalVariable(name: "$BoolUtils.andb_142", scope: !28, file: !2, line: 31, type: !10) +!106 = !DILocalVariable(name: "$p_11", scope: !28, file: !2, line: 34, type: !32) +!107 = !DILocation(line: 34, column: 5, scope: !28) +!108 = !DILocation(line: 34, column: 9, scope: !28) +!109 = !DILocalVariable(name: "$res_14", scope: !28, file: !2, line: 35, type: !10) +!110 = !DILocation(line: 35, column: 5, scope: !28) +!111 = !DILocalVariable(name: "$ans_12", scope: !28, file: !2, line: 36, type: !32) +!112 = !DILocation(line: 36, column: 7, scope: !28) +!113 = !DILocation(line: 36, column: 13, scope: !28) +!114 = !DILocalVariable(name: "$res__13", scope: !28, file: !2, line: 37, type: !10) +!115 = !DILocation(line: 37, column: 7, scope: !28) +!116 = !DILocation(line: 37, column: 14, scope: !28) +!117 = !DILocation(line: 38, column: 3, scope: !28) +!118 = !DILocalVariable(name: "$BoolUtils.andb_144", scope: !28, file: !2, line: 38, type: !10) +!119 = !DILocalVariable(name: "$p_15", scope: !28, file: !2, line: 41, type: !32) +!120 = !DILocation(line: 41, column: 5, scope: !28) +!121 = !DILocation(line: 41, column: 9, scope: !28) +!122 = !DILocalVariable(name: "$res_18", scope: !28, file: !2, line: 42, type: !10) +!123 = !DILocation(line: 42, column: 5, scope: !28) +!124 = !DILocalVariable(name: "$ans_16", scope: !28, file: !2, line: 43, type: !32) +!125 = !DILocation(line: 43, column: 7, scope: !28) +!126 = !DILocation(line: 43, column: 13, scope: !28) +!127 = !DILocalVariable(name: "$res__17", scope: !28, file: !2, line: 44, type: !10) +!128 = !DILocation(line: 44, column: 7, scope: !28) +!129 = !DILocation(line: 44, column: 14, scope: !28) +!130 = !DILocation(line: 45, column: 3, scope: !28) +!131 = !DILocalVariable(name: "$BoolUtils.andb_146", scope: !28, file: !2, line: 45, type: !10) +!132 = !DILocalVariable(name: "$p_19", scope: !28, file: !2, line: 50, type: !47) +!133 = !DILocation(line: 50, column: 5, scope: !28) +!134 = !DILocation(line: 50, column: 9, scope: !28) +!135 = !DILocalVariable(name: "$res_22", scope: !28, file: !2, line: 51, type: !10) +!136 = !DILocation(line: 51, column: 5, scope: !28) +!137 = !DILocalVariable(name: "$ans_20", scope: !28, file: !2, line: 52, type: !47) +!138 = !DILocation(line: 52, column: 7, scope: !28) +!139 = !DILocation(line: 52, column: 13, scope: !28) +!140 = !DILocalVariable(name: "$res__21", scope: !28, file: !2, line: 53, type: !10) +!141 = !DILocation(line: 53, column: 7, scope: !28) +!142 = !DILocation(line: 53, column: 14, scope: !28) +!143 = !DILocation(line: 54, column: 3, scope: !28) +!144 = !DILocalVariable(name: "$BoolUtils.andb_148", scope: !28, file: !2, line: 54, type: !10) +!145 = !DILocalVariable(name: "$p_23", scope: !28, file: !2, line: 57, type: !47) +!146 = !DILocation(line: 57, column: 5, scope: !28) +!147 = !DILocation(line: 57, column: 9, scope: !28) +!148 = !DILocalVariable(name: "$res_26", scope: !28, file: !2, line: 58, type: !10) +!149 = !DILocation(line: 58, column: 5, scope: !28) +!150 = !DILocalVariable(name: "$ans_24", scope: !28, file: !2, line: 59, type: !47) +!151 = !DILocation(line: 59, column: 7, scope: !28) +!152 = !DILocation(line: 59, column: 13, scope: !28) +!153 = !DILocalVariable(name: "$res__25", scope: !28, file: !2, line: 60, type: !10) +!154 = !DILocation(line: 60, column: 7, scope: !28) +!155 = !DILocation(line: 60, column: 14, scope: !28) +!156 = !DILocation(line: 61, column: 3, scope: !28) +!157 = !DILocalVariable(name: "$BoolUtils.andb_150", scope: !28, file: !2, line: 61, type: !10) +!158 = !DILocalVariable(name: "$p_27", scope: !28, file: !2, line: 64, type: !47) +!159 = !DILocation(line: 64, column: 5, scope: !28) +!160 = !DILocation(line: 64, column: 9, scope: !28) +!161 = !DILocalVariable(name: "$res_30", scope: !28, file: !2, line: 65, type: !10) +!162 = !DILocation(line: 65, column: 5, scope: !28) +!163 = !DILocalVariable(name: "$ans_28", scope: !28, file: !2, line: 66, type: !47) +!164 = !DILocation(line: 66, column: 7, scope: !28) +!165 = !DILocation(line: 66, column: 13, scope: !28) +!166 = !DILocalVariable(name: "$res__29", scope: !28, file: !2, line: 67, type: !10) +!167 = !DILocation(line: 67, column: 7, scope: !28) +!168 = !DILocation(line: 67, column: 14, scope: !28) +!169 = !DILocation(line: 68, column: 3, scope: !28) +!170 = !DILocalVariable(name: "$BoolUtils.andb_152", scope: !28, file: !2, line: 68, type: !10) +!171 = !DILocalVariable(name: "$p_31", scope: !28, file: !2, line: 71, type: !47) +!172 = !DILocation(line: 71, column: 5, scope: !28) +!173 = !DILocation(line: 71, column: 9, scope: !28) +!174 = !DILocalVariable(name: "$res_34", scope: !28, file: !2, line: 72, type: !10) +!175 = !DILocation(line: 72, column: 5, scope: !28) +!176 = !DILocalVariable(name: "$ans_32", scope: !28, file: !2, line: 73, type: !47) +!177 = !DILocation(line: 73, column: 7, scope: !28) +!178 = !DILocation(line: 73, column: 13, scope: !28) +!179 = !DILocalVariable(name: "$res__33", scope: !28, file: !2, line: 74, type: !10) +!180 = !DILocation(line: 74, column: 7, scope: !28) +!181 = !DILocation(line: 74, column: 14, scope: !28) +!182 = !DILocation(line: 75, column: 3, scope: !28) +!183 = !DILocalVariable(name: "$BoolUtils.andb_154", scope: !28, file: !2, line: 75, type: !10) +!184 = !DILocalVariable(name: "$p_35", scope: !28, file: !2, line: 80, type: !51) +!185 = !DILocation(line: 80, column: 5, scope: !28) +!186 = !DILocation(line: 80, column: 9, scope: !28) +!187 = !DILocalVariable(name: "$res_38", scope: !28, file: !2, line: 81, type: !10) +!188 = !DILocation(line: 81, column: 5, scope: !28) +!189 = !DILocalVariable(name: "$ans_36", scope: !28, file: !2, line: 82, type: !51) +!190 = !DILocation(line: 82, column: 7, scope: !28) +!191 = !DILocation(line: 82, column: 13, scope: !28) +!192 = !DILocalVariable(name: "$res__37", scope: !28, file: !2, line: 83, type: !10) +!193 = !DILocation(line: 83, column: 7, scope: !28) +!194 = !DILocation(line: 83, column: 14, scope: !28) +!195 = !DILocation(line: 84, column: 3, scope: !28) +!196 = !DILocalVariable(name: "$BoolUtils.andb_156", scope: !28, file: !2, line: 84, type: !10) +!197 = !DILocalVariable(name: "$p_39", scope: !28, file: !2, line: 87, type: !51) +!198 = !DILocation(line: 87, column: 5, scope: !28) +!199 = !DILocation(line: 87, column: 9, scope: !28) +!200 = !DILocalVariable(name: "$res_42", scope: !28, file: !2, line: 88, type: !10) +!201 = !DILocation(line: 88, column: 5, scope: !28) +!202 = !DILocalVariable(name: "$ans_40", scope: !28, file: !2, line: 89, type: !51) +!203 = !DILocation(line: 89, column: 7, scope: !28) +!204 = !DILocation(line: 89, column: 13, scope: !28) +!205 = !DILocalVariable(name: "$res__41", scope: !28, file: !2, line: 90, type: !10) +!206 = !DILocation(line: 90, column: 7, scope: !28) +!207 = !DILocation(line: 90, column: 14, scope: !28) +!208 = !DILocation(line: 91, column: 3, scope: !28) +!209 = !DILocalVariable(name: "$BoolUtils.andb_158", scope: !28, file: !2, line: 91, type: !10) +!210 = !DILocalVariable(name: "$p_43", scope: !28, file: !2, line: 94, type: !51) +!211 = !DILocation(line: 94, column: 5, scope: !28) +!212 = !DILocation(line: 94, column: 9, scope: !28) +!213 = !DILocalVariable(name: "$res_46", scope: !28, file: !2, line: 95, type: !10) +!214 = !DILocation(line: 95, column: 5, scope: !28) +!215 = !DILocalVariable(name: "$ans_44", scope: !28, file: !2, line: 96, type: !51) +!216 = !DILocation(line: 96, column: 7, scope: !28) +!217 = !DILocation(line: 96, column: 13, scope: !28) +!218 = !DILocalVariable(name: "$res__45", scope: !28, file: !2, line: 97, type: !10) +!219 = !DILocation(line: 97, column: 7, scope: !28) +!220 = !DILocation(line: 97, column: 14, scope: !28) +!221 = !DILocation(line: 98, column: 3, scope: !28) +!222 = !DILocalVariable(name: "$BoolUtils.andb_160", scope: !28, file: !2, line: 98, type: !10) +!223 = !DILocalVariable(name: "$p_47", scope: !28, file: !2, line: 103, type: !55) +!224 = !DILocation(line: 103, column: 5, scope: !28) +!225 = !DILocation(line: 103, column: 9, scope: !28) +!226 = !DILocalVariable(name: "$res_50", scope: !28, file: !2, line: 104, type: !10) +!227 = !DILocation(line: 104, column: 5, scope: !28) +!228 = !DILocalVariable(name: "$ans_48", scope: !28, file: !2, line: 105, type: !55) +!229 = !DILocation(line: 105, column: 7, scope: !28) +!230 = !DILocation(line: 105, column: 13, scope: !28) +!231 = !DILocalVariable(name: "$res__49", scope: !28, file: !2, line: 106, type: !10) +!232 = !DILocation(line: 106, column: 7, scope: !28) +!233 = !DILocation(line: 106, column: 14, scope: !28) +!234 = !DILocation(line: 107, column: 3, scope: !28) +!235 = !DILocalVariable(name: "$BoolUtils.andb_162", scope: !28, file: !2, line: 107, type: !10) +!236 = !DILocalVariable(name: "$p_51", scope: !28, file: !2, line: 110, type: !55) +!237 = !DILocation(line: 110, column: 5, scope: !28) +!238 = !DILocation(line: 110, column: 9, scope: !28) +!239 = !DILocalVariable(name: "$res_54", scope: !28, file: !2, line: 111, type: !10) +!240 = !DILocation(line: 111, column: 5, scope: !28) +!241 = !DILocalVariable(name: "$ans_52", scope: !28, file: !2, line: 112, type: !55) +!242 = !DILocation(line: 112, column: 7, scope: !28) +!243 = !DILocation(line: 112, column: 13, scope: !28) +!244 = !DILocalVariable(name: "$res__53", scope: !28, file: !2, line: 113, type: !10) +!245 = !DILocation(line: 113, column: 7, scope: !28) +!246 = !DILocation(line: 113, column: 14, scope: !28) +!247 = !DILocation(line: 114, column: 3, scope: !28) +!248 = !DILocalVariable(name: "$BoolUtils.andb_164", scope: !28, file: !2, line: 114, type: !10) +!249 = !DILocalVariable(name: "$p_55", scope: !28, file: !2, line: 117, type: !55) +!250 = !DILocation(line: 117, column: 5, scope: !28) +!251 = !DILocation(line: 117, column: 9, scope: !28) +!252 = !DILocalVariable(name: "$res_58", scope: !28, file: !2, line: 118, type: !10) +!253 = !DILocation(line: 118, column: 5, scope: !28) +!254 = !DILocalVariable(name: "$ans_56", scope: !28, file: !2, line: 119, type: !55) +!255 = !DILocation(line: 119, column: 7, scope: !28) +!256 = !DILocation(line: 119, column: 13, scope: !28) +!257 = !DILocalVariable(name: "$res__57", scope: !28, file: !2, line: 120, type: !10) +!258 = !DILocation(line: 120, column: 7, scope: !28) +!259 = !DILocation(line: 120, column: 14, scope: !28) +!260 = !DILocation(line: 121, column: 3, scope: !28) +!261 = !DILocalVariable(name: "$BoolUtils.andb_166", scope: !28, file: !2, line: 121, type: !10) +!262 = !DILocalVariable(name: "$p_59", scope: !28, file: !2, line: 126, type: !59) +!263 = !DILocation(line: 126, column: 5, scope: !28) +!264 = !DILocation(line: 126, column: 9, scope: !28) +!265 = !DILocalVariable(name: "$res_62", scope: !28, file: !2, line: 127, type: !10) +!266 = !DILocation(line: 127, column: 5, scope: !28) +!267 = !DILocalVariable(name: "$ans_60", scope: !28, file: !2, line: 128, type: !59) +!268 = !DILocation(line: 128, column: 7, scope: !28) +!269 = !DILocation(line: 128, column: 13, scope: !28) +!270 = !DILocalVariable(name: "$res__61", scope: !28, file: !2, line: 129, type: !10) +!271 = !DILocation(line: 129, column: 7, scope: !28) +!272 = !DILocation(line: 129, column: 14, scope: !28) +!273 = !DILocation(line: 130, column: 3, scope: !28) +!274 = !DILocalVariable(name: "$BoolUtils.andb_168", scope: !28, file: !2, line: 130, type: !10) +!275 = !DILocalVariable(name: "$p_63", scope: !28, file: !2, line: 133, type: !59) +!276 = !DILocation(line: 133, column: 5, scope: !28) +!277 = !DILocation(line: 133, column: 9, scope: !28) +!278 = !DILocalVariable(name: "$res_66", scope: !28, file: !2, line: 134, type: !10) +!279 = !DILocation(line: 134, column: 5, scope: !28) +!280 = !DILocalVariable(name: "$ans_64", scope: !28, file: !2, line: 135, type: !59) +!281 = !DILocation(line: 135, column: 7, scope: !28) +!282 = !DILocation(line: 135, column: 13, scope: !28) +!283 = !DILocalVariable(name: "$res__65", scope: !28, file: !2, line: 136, type: !10) +!284 = !DILocation(line: 136, column: 7, scope: !28) +!285 = !DILocation(line: 136, column: 14, scope: !28) +!286 = !DILocation(line: 137, column: 3, scope: !28) +!287 = !DILocalVariable(name: "$BoolUtils.andb_170", scope: !28, file: !2, line: 137, type: !10) +!288 = !DILocalVariable(name: "$p_67", scope: !28, file: !2, line: 140, type: !59) +!289 = !DILocation(line: 140, column: 5, scope: !28) +!290 = !DILocation(line: 140, column: 9, scope: !28) +!291 = !DILocalVariable(name: "$res_70", scope: !28, file: !2, line: 141, type: !10) +!292 = !DILocation(line: 141, column: 5, scope: !28) +!293 = !DILocalVariable(name: "$ans_68", scope: !28, file: !2, line: 142, type: !59) +!294 = !DILocation(line: 142, column: 7, scope: !28) +!295 = !DILocation(line: 142, column: 13, scope: !28) +!296 = !DILocalVariable(name: "$res__69", scope: !28, file: !2, line: 143, type: !10) +!297 = !DILocation(line: 143, column: 7, scope: !28) +!298 = !DILocation(line: 143, column: 14, scope: !28) +!299 = !DILocation(line: 144, column: 3, scope: !28) +!300 = !DILocalVariable(name: "$BoolUtils.andb_172", scope: !28, file: !2, line: 144, type: !10) +!301 = !DILocalVariable(name: "$p_71", scope: !28, file: !2, line: 147, type: !59) +!302 = !DILocation(line: 147, column: 5, scope: !28) +!303 = !DILocation(line: 147, column: 9, scope: !28) +!304 = !DILocalVariable(name: "$res_74", scope: !28, file: !2, line: 148, type: !10) +!305 = !DILocation(line: 148, column: 5, scope: !28) +!306 = !DILocalVariable(name: "$ans_72", scope: !28, file: !2, line: 149, type: !59) +!307 = !DILocation(line: 149, column: 7, scope: !28) +!308 = !DILocation(line: 149, column: 13, scope: !28) +!309 = !DILocalVariable(name: "$res__73", scope: !28, file: !2, line: 150, type: !10) +!310 = !DILocation(line: 150, column: 7, scope: !28) +!311 = !DILocation(line: 150, column: 14, scope: !28) +!312 = !DILocation(line: 151, column: 3, scope: !28) +!313 = !DILocalVariable(name: "$BoolUtils.andb_174", scope: !28, file: !2, line: 151, type: !10) +!314 = !DILocalVariable(name: "$p_75", scope: !28, file: !2, line: 156, type: !63) +!315 = !DILocation(line: 156, column: 5, scope: !28) +!316 = !DILocation(line: 156, column: 9, scope: !28) +!317 = !DILocalVariable(name: "$res_78", scope: !28, file: !2, line: 157, type: !10) +!318 = !DILocation(line: 157, column: 5, scope: !28) +!319 = !DILocalVariable(name: "$ans_76", scope: !28, file: !2, line: 158, type: !63) +!320 = !DILocation(line: 158, column: 7, scope: !28) +!321 = !DILocation(line: 158, column: 13, scope: !28) +!322 = !DILocalVariable(name: "$res__77", scope: !28, file: !2, line: 159, type: !10) +!323 = !DILocation(line: 159, column: 7, scope: !28) +!324 = !DILocation(line: 159, column: 14, scope: !28) +!325 = !DILocation(line: 160, column: 3, scope: !28) +!326 = !DILocalVariable(name: "$BoolUtils.andb_176", scope: !28, file: !2, line: 160, type: !10) +!327 = !DILocalVariable(name: "$p_79", scope: !28, file: !2, line: 163, type: !63) +!328 = !DILocation(line: 163, column: 5, scope: !28) +!329 = !DILocation(line: 163, column: 9, scope: !28) +!330 = !DILocalVariable(name: "$res_82", scope: !28, file: !2, line: 164, type: !10) +!331 = !DILocation(line: 164, column: 5, scope: !28) +!332 = !DILocalVariable(name: "$ans_80", scope: !28, file: !2, line: 165, type: !63) +!333 = !DILocation(line: 165, column: 7, scope: !28) +!334 = !DILocation(line: 165, column: 13, scope: !28) +!335 = !DILocalVariable(name: "$res__81", scope: !28, file: !2, line: 166, type: !10) +!336 = !DILocation(line: 166, column: 7, scope: !28) +!337 = !DILocation(line: 166, column: 14, scope: !28) +!338 = !DILocation(line: 167, column: 3, scope: !28) +!339 = !DILocalVariable(name: "$BoolUtils.andb_178", scope: !28, file: !2, line: 167, type: !10) +!340 = !DILocalVariable(name: "$p_83", scope: !28, file: !2, line: 170, type: !63) +!341 = !DILocation(line: 170, column: 5, scope: !28) +!342 = !DILocation(line: 170, column: 9, scope: !28) +!343 = !DILocalVariable(name: "$res_86", scope: !28, file: !2, line: 171, type: !10) +!344 = !DILocation(line: 171, column: 5, scope: !28) +!345 = !DILocalVariable(name: "$ans_84", scope: !28, file: !2, line: 172, type: !63) +!346 = !DILocation(line: 172, column: 7, scope: !28) +!347 = !DILocation(line: 172, column: 13, scope: !28) +!348 = !DILocalVariable(name: "$res__85", scope: !28, file: !2, line: 173, type: !10) +!349 = !DILocation(line: 173, column: 7, scope: !28) +!350 = !DILocation(line: 173, column: 14, scope: !28) +!351 = !DILocation(line: 174, column: 3, scope: !28) +!352 = !DILocalVariable(name: "$BoolUtils.andb_180", scope: !28, file: !2, line: 174, type: !10) +!353 = !DILocalVariable(name: "$p_87", scope: !28, file: !2, line: 177, type: !63) +!354 = !DILocation(line: 177, column: 5, scope: !28) +!355 = !DILocation(line: 177, column: 9, scope: !28) +!356 = !DILocalVariable(name: "$res_90", scope: !28, file: !2, line: 178, type: !10) +!357 = !DILocation(line: 178, column: 5, scope: !28) +!358 = !DILocalVariable(name: "$ans_88", scope: !28, file: !2, line: 179, type: !63) +!359 = !DILocation(line: 179, column: 7, scope: !28) +!360 = !DILocation(line: 179, column: 13, scope: !28) +!361 = !DILocalVariable(name: "$res__89", scope: !28, file: !2, line: 180, type: !10) +!362 = !DILocation(line: 180, column: 7, scope: !28) +!363 = !DILocation(line: 180, column: 14, scope: !28) +!364 = !DILocation(line: 181, column: 3, scope: !28) +!365 = !DILocalVariable(name: "$BoolUtils.andb_182", scope: !28, file: !2, line: 181, type: !10) +!366 = !DILocalVariable(name: "$p_91", scope: !28, file: !2, line: 186, type: !67) +!367 = !DILocation(line: 186, column: 5, scope: !28) +!368 = !DILocation(line: 186, column: 9, scope: !28) +!369 = !DILocalVariable(name: "$res_94", scope: !28, file: !2, line: 187, type: !10) +!370 = !DILocation(line: 187, column: 5, scope: !28) +!371 = !DILocalVariable(name: "$ans_92", scope: !28, file: !2, line: 188, type: !67) +!372 = !DILocation(line: 188, column: 7, scope: !28) +!373 = !DILocation(line: 188, column: 13, scope: !28) +!374 = !DILocalVariable(name: "$res__93", scope: !28, file: !2, line: 189, type: !10) +!375 = !DILocation(line: 189, column: 7, scope: !28) +!376 = !DILocation(line: 189, column: 14, scope: !28) +!377 = !DILocation(line: 190, column: 3, scope: !28) +!378 = !DILocalVariable(name: "$BoolUtils.andb_184", scope: !28, file: !2, line: 190, type: !10) +!379 = !DILocalVariable(name: "$p_95", scope: !28, file: !2, line: 193, type: !67) +!380 = !DILocation(line: 193, column: 5, scope: !28) +!381 = !DILocation(line: 193, column: 9, scope: !28) +!382 = !DILocalVariable(name: "$res_98", scope: !28, file: !2, line: 194, type: !10) +!383 = !DILocation(line: 194, column: 5, scope: !28) +!384 = !DILocalVariable(name: "$ans_96", scope: !28, file: !2, line: 195, type: !67) +!385 = !DILocation(line: 195, column: 7, scope: !28) +!386 = !DILocation(line: 195, column: 13, scope: !28) +!387 = !DILocalVariable(name: "$res__97", scope: !28, file: !2, line: 196, type: !10) +!388 = !DILocation(line: 196, column: 7, scope: !28) +!389 = !DILocation(line: 196, column: 14, scope: !28) +!390 = !DILocation(line: 197, column: 3, scope: !28) +!391 = !DILocalVariable(name: "$BoolUtils.andb_186", scope: !28, file: !2, line: 197, type: !10) +!392 = !DILocalVariable(name: "$p_99", scope: !28, file: !2, line: 200, type: !67) +!393 = !DILocation(line: 200, column: 5, scope: !28) +!394 = !DILocation(line: 200, column: 9, scope: !28) +!395 = !DILocalVariable(name: "$res_102", scope: !28, file: !2, line: 201, type: !10) +!396 = !DILocation(line: 201, column: 5, scope: !28) +!397 = !DILocalVariable(name: "$ans_100", scope: !28, file: !2, line: 202, type: !67) +!398 = !DILocation(line: 202, column: 7, scope: !28) +!399 = !DILocation(line: 202, column: 13, scope: !28) +!400 = !DILocalVariable(name: "$res__101", scope: !28, file: !2, line: 203, type: !10) +!401 = !DILocation(line: 203, column: 7, scope: !28) +!402 = !DILocation(line: 203, column: 14, scope: !28) +!403 = !DILocation(line: 204, column: 3, scope: !28) +!404 = !DILocalVariable(name: "$BoolUtils.andb_188", scope: !28, file: !2, line: 204, type: !10) +!405 = !DILocalVariable(name: "$p_103", scope: !28, file: !2, line: 207, type: !67) +!406 = !DILocation(line: 207, column: 5, scope: !28) +!407 = !DILocation(line: 207, column: 9, scope: !28) +!408 = !DILocalVariable(name: "$res_106", scope: !28, file: !2, line: 208, type: !10) +!409 = !DILocation(line: 208, column: 5, scope: !28) +!410 = !DILocalVariable(name: "$ans_104", scope: !28, file: !2, line: 209, type: !67) +!411 = !DILocation(line: 209, column: 7, scope: !28) +!412 = !DILocation(line: 209, column: 13, scope: !28) +!413 = !DILocalVariable(name: "$res__105", scope: !28, file: !2, line: 210, type: !10) +!414 = !DILocation(line: 210, column: 7, scope: !28) +!415 = !DILocation(line: 210, column: 14, scope: !28) +!416 = !DILocation(line: 211, column: 3, scope: !28) +!417 = !DILocalVariable(name: "$BoolUtils.andb_190", scope: !28, file: !2, line: 211, type: !10) +!418 = !DILocalVariable(name: "$p_107", scope: !28, file: !2, line: 216, type: !71) +!419 = !DILocation(line: 216, column: 5, scope: !28) +!420 = !DILocation(line: 216, column: 9, scope: !28) +!421 = !DILocalVariable(name: "$res_110", scope: !28, file: !2, line: 217, type: !10) +!422 = !DILocation(line: 217, column: 5, scope: !28) +!423 = !DILocalVariable(name: "$ans_108", scope: !28, file: !2, line: 218, type: !71) +!424 = !DILocation(line: 218, column: 7, scope: !28) +!425 = !DILocation(line: 218, column: 13, scope: !28) +!426 = !DILocalVariable(name: "$res__109", scope: !28, file: !2, line: 219, type: !10) +!427 = !DILocation(line: 219, column: 7, scope: !28) +!428 = !DILocation(line: 219, column: 14, scope: !28) +!429 = !DILocation(line: 220, column: 3, scope: !28) +!430 = !DILocalVariable(name: "$BoolUtils.andb_192", scope: !28, file: !2, line: 220, type: !10) +!431 = !DILocalVariable(name: "$p_111", scope: !28, file: !2, line: 223, type: !71) +!432 = !DILocation(line: 223, column: 5, scope: !28) +!433 = !DILocation(line: 223, column: 9, scope: !28) +!434 = !DILocalVariable(name: "$res_114", scope: !28, file: !2, line: 224, type: !10) +!435 = !DILocation(line: 224, column: 5, scope: !28) +!436 = !DILocalVariable(name: "$ans_112", scope: !28, file: !2, line: 225, type: !71) +!437 = !DILocation(line: 225, column: 7, scope: !28) +!438 = !DILocation(line: 225, column: 13, scope: !28) +!439 = !DILocalVariable(name: "$res__113", scope: !28, file: !2, line: 226, type: !10) +!440 = !DILocation(line: 226, column: 7, scope: !28) +!441 = !DILocation(line: 226, column: 14, scope: !28) +!442 = !DILocation(line: 227, column: 3, scope: !28) +!443 = !DILocalVariable(name: "$BoolUtils.andb_194", scope: !28, file: !2, line: 227, type: !10) +!444 = !DILocalVariable(name: "$p_115", scope: !28, file: !2, line: 230, type: !71) +!445 = !DILocation(line: 230, column: 5, scope: !28) +!446 = !DILocation(line: 230, column: 9, scope: !28) +!447 = !DILocalVariable(name: "$res_118", scope: !28, file: !2, line: 231, type: !10) +!448 = !DILocation(line: 231, column: 5, scope: !28) +!449 = !DILocalVariable(name: "$ans_116", scope: !28, file: !2, line: 232, type: !71) +!450 = !DILocation(line: 232, column: 7, scope: !28) +!451 = !DILocation(line: 232, column: 13, scope: !28) +!452 = !DILocalVariable(name: "$res__117", scope: !28, file: !2, line: 233, type: !10) +!453 = !DILocation(line: 233, column: 7, scope: !28) +!454 = !DILocation(line: 233, column: 14, scope: !28) +!455 = !DILocation(line: 234, column: 3, scope: !28) +!456 = !DILocalVariable(name: "$BoolUtils.andb_196", scope: !28, file: !2, line: 234, type: !10) +!457 = !DILocalVariable(name: "$p_119", scope: !28, file: !2, line: 237, type: !71) +!458 = !DILocation(line: 237, column: 5, scope: !28) +!459 = !DILocation(line: 237, column: 9, scope: !28) +!460 = !DILocalVariable(name: "$res_122", scope: !28, file: !2, line: 238, type: !10) +!461 = !DILocation(line: 238, column: 5, scope: !28) +!462 = !DILocalVariable(name: "$ans_120", scope: !28, file: !2, line: 239, type: !71) +!463 = !DILocation(line: 239, column: 7, scope: !28) +!464 = !DILocation(line: 239, column: 13, scope: !28) +!465 = !DILocalVariable(name: "$res__121", scope: !28, file: !2, line: 240, type: !10) +!466 = !DILocation(line: 240, column: 7, scope: !28) +!467 = !DILocation(line: 240, column: 14, scope: !28) +!468 = !DILocation(line: 241, column: 3, scope: !28) +!469 = !DILocalVariable(name: "$BoolUtils.andb_198", scope: !28, file: !2, line: 241, type: !10) +!470 = !DILocalVariable(name: "$p_123", scope: !28, file: !2, line: 246, type: !71) +!471 = !DILocation(line: 246, column: 5, scope: !28) +!472 = !DILocation(line: 246, column: 9, scope: !28) +!473 = !DILocalVariable(name: "$res_126", scope: !28, file: !2, line: 247, type: !10) +!474 = !DILocation(line: 247, column: 5, scope: !28) +!475 = !DILocalVariable(name: "$ans_124", scope: !28, file: !2, line: 248, type: !71) +!476 = !DILocation(line: 248, column: 7, scope: !28) +!477 = !DILocation(line: 248, column: 13, scope: !28) +!478 = !DILocalVariable(name: "$res__125", scope: !28, file: !2, line: 249, type: !10) +!479 = !DILocation(line: 249, column: 7, scope: !28) +!480 = !DILocation(line: 249, column: 14, scope: !28) +!481 = !DILocation(line: 250, column: 3, scope: !28) +!482 = !DILocalVariable(name: "$BoolUtils.andb_200", scope: !28, file: !2, line: 250, type: !10) +!483 = !DILocalVariable(name: "$p_127", scope: !28, file: !2, line: 253, type: !71) +!484 = !DILocation(line: 253, column: 5, scope: !28) +!485 = !DILocation(line: 253, column: 9, scope: !28) +!486 = !DILocalVariable(name: "$res_130", scope: !28, file: !2, line: 254, type: !10) +!487 = !DILocation(line: 254, column: 5, scope: !28) +!488 = !DILocalVariable(name: "$ans_128", scope: !28, file: !2, line: 255, type: !71) +!489 = !DILocation(line: 255, column: 7, scope: !28) +!490 = !DILocation(line: 255, column: 13, scope: !28) +!491 = !DILocalVariable(name: "$res__129", scope: !28, file: !2, line: 256, type: !10) +!492 = !DILocation(line: 256, column: 7, scope: !28) +!493 = !DILocation(line: 256, column: 14, scope: !28) +!494 = !DILocation(line: 257, column: 3, scope: !28) +!495 = !DILocalVariable(name: "$BoolUtils.andb_202", scope: !28, file: !2, line: 257, type: !10) +!496 = !DILocalVariable(name: "$p_131", scope: !28, file: !2, line: 260, type: !71) +!497 = !DILocation(line: 260, column: 5, scope: !28) +!498 = !DILocation(line: 260, column: 9, scope: !28) +!499 = !DILocalVariable(name: "$res_134", scope: !28, file: !2, line: 261, type: !10) +!500 = !DILocation(line: 261, column: 5, scope: !28) +!501 = !DILocalVariable(name: "$ans_132", scope: !28, file: !2, line: 262, type: !71) +!502 = !DILocation(line: 262, column: 7, scope: !28) +!503 = !DILocation(line: 262, column: 13, scope: !28) +!504 = !DILocalVariable(name: "$res__133", scope: !28, file: !2, line: 263, type: !10) +!505 = !DILocation(line: 263, column: 7, scope: !28) +!506 = !DILocation(line: 263, column: 14, scope: !28) +!507 = !DILocation(line: 264, column: 3, scope: !28) +!508 = !DILocalVariable(name: "$BoolUtils.andb_204", scope: !28, file: !2, line: 264, type: !10) +!509 = !DILocalVariable(name: "$p_135", scope: !28, file: !2, line: 267, type: !71) +!510 = !DILocation(line: 267, column: 5, scope: !28) +!511 = !DILocation(line: 267, column: 9, scope: !28) +!512 = !DILocalVariable(name: "$res_138", scope: !28, file: !2, line: 268, type: !10) +!513 = !DILocation(line: 268, column: 5, scope: !28) +!514 = !DILocalVariable(name: "$ans_136", scope: !28, file: !2, line: 269, type: !71) +!515 = !DILocation(line: 269, column: 7, scope: !28) +!516 = !DILocation(line: 269, column: 13, scope: !28) +!517 = !DILocalVariable(name: "$res__137", scope: !28, file: !2, line: 270, type: !10) +!518 = !DILocation(line: 270, column: 7, scope: !28) +!519 = !DILocation(line: 270, column: 14, scope: !28) +!520 = !DILocation(line: 271, column: 3, scope: !28) +!521 = !DILocalVariable(name: "$BoolUtils.andb_206", scope: !28, file: !2, line: 271, type: !10) +!522 = !DILocation(line: 276, column: 1, scope: !28) diff --git a/testsuite/expr/builtin-pow.ll b/testsuite/expr/builtin-pow.ll index 90cdd42a..5f1e58d2 100644 --- a/testsuite/expr/builtin-pow.ll +++ b/testsuite/expr/builtin-pow.ll @@ -277,7 +277,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-pc-linux-gnu" +target triple = "x86_64-unknown-linux-gnu" %"$TyDescrTy_PrimTyp_212" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } @@ -5348,7 +5348,7 @@ entry: ret %TName_Bool* %"$$expr_211_2916" } -; Function Attrs: nofree nosync nounwind readnone speculatable willreturn +; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn declare double @llvm.log.f64(double) #0 declare %Uint32 @_pow_Uint32(%Uint32, %Uint32) @@ -5394,4 +5394,4 @@ entry: ret void } -attributes #0 = { nofree nosync nounwind readnone speculatable willreturn } +attributes #0 = { nocallback nofree nosync nounwind readnone speculatable willreturn } diff --git a/testsuite/expr/builtin-schnorr_get_address.dbg.ll b/testsuite/expr/builtin-schnorr_get_address.dbg.ll index 22cbaa31..8e558024 100644 --- a/testsuite/expr/builtin-schnorr_get_address.dbg.ll +++ b/testsuite/expr/builtin-schnorr_get_address.dbg.ll @@ -52,7 +52,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-pc-linux-gnu" +target triple = "x86_64-unknown-linux-gnu" %"$TyDescrTy_PrimTyp_40" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } @@ -64,9 +64,9 @@ target triple = "x86_64-pc-linux-gnu" %TName_Bool = type { i8, %CName_True*, %CName_False* } %CName_True = type <{ i8 }> %CName_False = type <{ i8 }> -%"$ParamDescr_1017" = type { %ParamDescrString, %_TyDescrTy_Typ* } +%"$ParamDescr_1025" = type { %ParamDescrString, %_TyDescrTy_Typ* } %ParamDescrString = type { i8*, i32 } -%"$TransDescr_1018" = type { %ParamDescrString, i32, %"$ParamDescr_1017"* } +%"$TransDescr_1026" = type { %ParamDescrString, i32, %"$ParamDescr_1025"* } %"$$fundef_33_env_94" = type { { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }, %TName_Bool*, %TName_Bool*, %TName_Bool* } %"$$fundef_31_env_95" = type { { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }, %TName_Bool*, %TName_Bool* } %"$$fundef_29_env_96" = type { { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }, %TName_Bool* } @@ -135,430 +135,462 @@ target triple = "x86_64-pc-linux-gnu" @"$_gas_charge_accPairUtils_4" = global %Int32 zeroinitializer @_tydescr_table = constant [18 x %_TyDescrTy_Typ*] [%_TyDescrTy_Typ* @"$TyDescr_Event_64", %_TyDescrTy_Typ* @"$TyDescr_Int64_46", %_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_78", %_TyDescrTy_Typ* @"$TyDescr_Bystr33_74", %_TyDescrTy_Typ* @"$TyDescr_Bystr20_72", %_TyDescrTy_Typ* @"$TyDescr_Uint256_56", %_TyDescrTy_Typ* @"$TyDescr_Uint32_44", %_TyDescrTy_Typ* @"$TyDescr_Uint64_48", %_TyDescrTy_Typ* @"$TyDescr_Bnum_60", %_TyDescrTy_Typ* @"$TyDescr_Uint128_52", %_TyDescrTy_Typ* @"$TyDescr_Exception_66", %_TyDescrTy_Typ* @"$TyDescr_String_58", %_TyDescrTy_Typ* @"$TyDescr_Int256_54", %_TyDescrTy_Typ* @"$TyDescr_Int128_50", %_TyDescrTy_Typ* @"$TyDescr_Bystr_70", %_TyDescrTy_Typ* @"$TyDescr_ReplicateContr_68", %_TyDescrTy_Typ* @"$TyDescr_Message_62", %_TyDescrTy_Typ* @"$TyDescr_Int32_42"] @_tydescr_table_length = constant i32 18 -@_contract_parameters = constant [0 x %"$ParamDescr_1017"] zeroinitializer +@_contract_parameters = constant [0 x %"$ParamDescr_1025"] zeroinitializer @_contract_parameters_length = constant i32 0 -@_transition_parameters = constant [0 x %"$TransDescr_1018"] zeroinitializer +@_transition_parameters = constant [0 x %"$TransDescr_1026"] zeroinitializer @_transition_parameters_length = constant i32 0 -define internal %TName_Bool* @"$fundef_33"(%"$$fundef_33_env_94"* %0, %TName_Bool* %1) !dbg !4 { +define internal %TName_Bool* @"$fundef_33"(%"$$fundef_33_env_94"* %0, %TName_Bool* %1) !dbg !3 { entry: - %"$$fundef_33_env_$BoolUtils.andb_6_241" = getelementptr inbounds %"$$fundef_33_env_94", %"$$fundef_33_env_94"* %0, i32 0, i32 0 - %"$$BoolUtils.andb_6_envload_242" = load { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }, { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }* %"$$fundef_33_env_$BoolUtils.andb_6_241", align 8 + %"$d_314" = alloca %TName_Bool*, align 8 + store %TName_Bool* %1, %TName_Bool** %"$d_314", align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$d_314", metadata !9, metadata !DIExpression()), !dbg !12 + %"$$fundef_33_env_$BoolUtils.andb_6_248" = getelementptr inbounds %"$$fundef_33_env_94", %"$$fundef_33_env_94"* %0, i32 0, i32 0 + %"$$BoolUtils.andb_6_envload_249" = load { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }, { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }* %"$$fundef_33_env_$BoolUtils.andb_6_248", align 8 %"$BoolUtils.andb_6" = 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.andb_6_envload_242", { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_6", align 8 - %"$$fundef_33_env_a_243" = getelementptr inbounds %"$$fundef_33_env_94", %"$$fundef_33_env_94"* %0, i32 0, i32 1 - %"$a_envload_244" = load %TName_Bool*, %TName_Bool** %"$$fundef_33_env_a_243", align 8 + store { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_6_envload_249", { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_6", align 8 + %"$$fundef_33_env_a_250" = getelementptr inbounds %"$$fundef_33_env_94", %"$$fundef_33_env_94"* %0, i32 0, i32 1 + %"$a_envload_251" = load %TName_Bool*, %TName_Bool** %"$$fundef_33_env_a_250", align 8 %a = alloca %TName_Bool*, align 8 - store %TName_Bool* %"$a_envload_244", %TName_Bool** %a, align 8 - %"$$fundef_33_env_b_245" = getelementptr inbounds %"$$fundef_33_env_94", %"$$fundef_33_env_94"* %0, i32 0, i32 2 - %"$b_envload_246" = load %TName_Bool*, %TName_Bool** %"$$fundef_33_env_b_245", align 8 + store %TName_Bool* %"$a_envload_251", %TName_Bool** %a, align 8 + %"$$fundef_33_env_b_252" = getelementptr inbounds %"$$fundef_33_env_94", %"$$fundef_33_env_94"* %0, i32 0, i32 2 + %"$b_envload_253" = load %TName_Bool*, %TName_Bool** %"$$fundef_33_env_b_252", align 8 %b = alloca %TName_Bool*, align 8 - store %TName_Bool* %"$b_envload_246", %TName_Bool** %b, align 8 - %"$$fundef_33_env_c_247" = getelementptr inbounds %"$$fundef_33_env_94", %"$$fundef_33_env_94"* %0, i32 0, i32 3 - %"$c_envload_248" = load %TName_Bool*, %TName_Bool** %"$$fundef_33_env_c_247", align 8 + store %TName_Bool* %"$b_envload_253", %TName_Bool** %b, align 8 + %"$$fundef_33_env_c_254" = getelementptr inbounds %"$$fundef_33_env_94", %"$$fundef_33_env_94"* %0, i32 0, i32 3 + %"$c_envload_255" = load %TName_Bool*, %TName_Bool** %"$$fundef_33_env_c_254", align 8 %c = alloca %TName_Bool*, align 8 - store %TName_Bool* %"$c_envload_248", %TName_Bool** %c, align 8 + store %TName_Bool* %"$c_envload_255", %TName_Bool** %c, align 8 %"$retval_34" = alloca %TName_Bool*, 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" + call void @llvm.dbg.declare(metadata %TName_Bool** %"$retval_34", metadata !13, metadata !DIExpression()), !dbg !14 + %"$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_251": ; preds = %entry +"$out_of_gas_258": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_252" + br label %"$have_gas_259" -"$have_gas_252": ; preds = %"$out_of_gas_251", %entry - %"$consume_253" = sub i64 %"$gasrem_249", 1 - store i64 %"$consume_253", i64* @_gasrem, align 8 +"$have_gas_259": ; preds = %"$out_of_gas_258", %entry + %"$consume_260" = sub i64 %"$gasrem_256", 1 + store i64 %"$consume_260", i64* @_gasrem, align 8 %t1 = alloca %TName_Bool*, 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" + call void @llvm.dbg.declare(metadata %TName_Bool** %t1, metadata !15, metadata !DIExpression()), !dbg !16 + %"$gasrem_261" = load i64, i64* @_gasrem, align 8 + %"$gascmp_262" = icmp ugt i64 1, %"$gasrem_261" + br i1 %"$gascmp_262", label %"$out_of_gas_263", label %"$have_gas_264" -"$out_of_gas_256": ; preds = %"$have_gas_252" +"$out_of_gas_263": ; preds = %"$have_gas_259" call void @_out_of_gas() - br label %"$have_gas_257" + br label %"$have_gas_264" -"$have_gas_257": ; preds = %"$out_of_gas_256", %"$have_gas_252" - %"$consume_258" = sub i64 %"$gasrem_254", 1 - store i64 %"$consume_258", i64* @_gasrem, align 8 +"$have_gas_264": ; preds = %"$out_of_gas_263", %"$have_gas_259" + %"$consume_265" = sub i64 %"$gasrem_261", 1 + store i64 %"$consume_265", i64* @_gasrem, align 8 %"$$BoolUtils.andb_6_7" = alloca { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, align 8 - %"$$BoolUtils.andb_6_259" = load { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }, { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_6", align 8 - %"$$BoolUtils.andb_6_fptr_260" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_6_259", 0 - %"$$BoolUtils.andb_6_envptr_261" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_6_259", 1 - %"$a_262" = load %TName_Bool*, %TName_Bool** %a, align 8 - %"$$BoolUtils.andb_6_call_263" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_6_fptr_260"(i8* %"$$BoolUtils.andb_6_envptr_261", %TName_Bool* %"$a_262"), !dbg !9 - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_6_call_263", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$$BoolUtils.andb_6_7", align 8, !dbg !9 + %"$$BoolUtils.andb_6_266" = load { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }, { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_6", align 8 + %"$$BoolUtils.andb_6_fptr_267" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_6_266", 0 + %"$$BoolUtils.andb_6_envptr_268" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_6_266", 1 + %"$a_269" = load %TName_Bool*, %TName_Bool** %a, align 8 + %"$$BoolUtils.andb_6_call_270" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_6_fptr_267"(i8* %"$$BoolUtils.andb_6_envptr_268", %TName_Bool* %"$a_269"), !dbg !17 + store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_6_call_270", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$$BoolUtils.andb_6_7", align 8, !dbg !17 %"$$BoolUtils.andb_6_8" = alloca %TName_Bool*, align 8 - %"$$$BoolUtils.andb_6_7_264" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$$BoolUtils.andb_6_7", align 8 - %"$$$BoolUtils.andb_6_7_fptr_265" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$$BoolUtils.andb_6_7_264", 0 - %"$$$BoolUtils.andb_6_7_envptr_266" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$$BoolUtils.andb_6_7_264", 1 - %"$b_267" = load %TName_Bool*, %TName_Bool** %b, align 8 - %"$$$BoolUtils.andb_6_7_call_268" = call %TName_Bool* %"$$$BoolUtils.andb_6_7_fptr_265"(i8* %"$$$BoolUtils.andb_6_7_envptr_266", %TName_Bool* %"$b_267"), !dbg !9 - store %TName_Bool* %"$$$BoolUtils.andb_6_7_call_268", %TName_Bool** %"$$BoolUtils.andb_6_8", align 8, !dbg !9 - %"$$$BoolUtils.andb_6_8_269" = load %TName_Bool*, %TName_Bool** %"$$BoolUtils.andb_6_8", align 8 - store %TName_Bool* %"$$$BoolUtils.andb_6_8_269", %TName_Bool** %t1, align 8, !dbg !9 - %"$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_257" - call void @_out_of_gas() - br label %"$have_gas_273" - -"$have_gas_273": ; preds = %"$out_of_gas_272", %"$have_gas_257" - %"$consume_274" = sub i64 %"$gasrem_270", 1 - store i64 %"$consume_274", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$$BoolUtils.andb_6_8", metadata !18, metadata !DIExpression()), !dbg !17 + %"$$$BoolUtils.andb_6_7_271" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$$BoolUtils.andb_6_7", align 8 + %"$$$BoolUtils.andb_6_7_fptr_272" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$$BoolUtils.andb_6_7_271", 0 + %"$$$BoolUtils.andb_6_7_envptr_273" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$$BoolUtils.andb_6_7_271", 1 + %"$b_274" = load %TName_Bool*, %TName_Bool** %b, align 8 + %"$$$BoolUtils.andb_6_7_call_275" = call %TName_Bool* %"$$$BoolUtils.andb_6_7_fptr_272"(i8* %"$$$BoolUtils.andb_6_7_envptr_273", %TName_Bool* %"$b_274"), !dbg !17 + store %TName_Bool* %"$$$BoolUtils.andb_6_7_call_275", %TName_Bool** %"$$BoolUtils.andb_6_8", align 8, !dbg !17 + %"$$$BoolUtils.andb_6_8_276" = load %TName_Bool*, %TName_Bool** %"$$BoolUtils.andb_6_8", align 8 + store %TName_Bool* %"$$$BoolUtils.andb_6_8_276", %TName_Bool** %t1, align 8, !dbg !17 + %"$gasrem_277" = load i64, i64* @_gasrem, align 8 + %"$gascmp_278" = icmp ugt i64 1, %"$gasrem_277" + br i1 %"$gascmp_278", label %"$out_of_gas_279", label %"$have_gas_280" + +"$out_of_gas_279": ; preds = %"$have_gas_264" + call void @_out_of_gas() + br label %"$have_gas_280" + +"$have_gas_280": ; preds = %"$out_of_gas_279", %"$have_gas_264" + %"$consume_281" = sub i64 %"$gasrem_277", 1 + store i64 %"$consume_281", i64* @_gasrem, align 8 %t2 = alloca %TName_Bool*, 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" + call void @llvm.dbg.declare(metadata %TName_Bool** %t2, metadata !19, metadata !DIExpression()), !dbg !20 + %"$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_277": ; preds = %"$have_gas_273" +"$out_of_gas_284": ; preds = %"$have_gas_280" call void @_out_of_gas() - br label %"$have_gas_278" + br label %"$have_gas_285" -"$have_gas_278": ; preds = %"$out_of_gas_277", %"$have_gas_273" - %"$consume_279" = sub i64 %"$gasrem_275", 1 - store i64 %"$consume_279", i64* @_gasrem, align 8 +"$have_gas_285": ; preds = %"$out_of_gas_284", %"$have_gas_280" + %"$consume_286" = sub i64 %"$gasrem_282", 1 + store i64 %"$consume_286", i64* @_gasrem, align 8 %"$$BoolUtils.andb_6_9" = alloca { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, align 8 - %"$$BoolUtils.andb_6_280" = load { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }, { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_6", align 8 - %"$$BoolUtils.andb_6_fptr_281" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_6_280", 0 - %"$$BoolUtils.andb_6_envptr_282" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_6_280", 1 - %"$t1_283" = load %TName_Bool*, %TName_Bool** %t1, align 8 - %"$$BoolUtils.andb_6_call_284" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_6_fptr_281"(i8* %"$$BoolUtils.andb_6_envptr_282", %TName_Bool* %"$t1_283"), !dbg !10 - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_6_call_284", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$$BoolUtils.andb_6_9", align 8, !dbg !10 + %"$$BoolUtils.andb_6_287" = load { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }, { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_6", align 8 + %"$$BoolUtils.andb_6_fptr_288" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_6_287", 0 + %"$$BoolUtils.andb_6_envptr_289" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_6_287", 1 + %"$t1_290" = load %TName_Bool*, %TName_Bool** %t1, align 8 + %"$$BoolUtils.andb_6_call_291" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_6_fptr_288"(i8* %"$$BoolUtils.andb_6_envptr_289", %TName_Bool* %"$t1_290"), !dbg !21 + store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_6_call_291", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$$BoolUtils.andb_6_9", align 8, !dbg !21 %"$$BoolUtils.andb_6_10" = alloca %TName_Bool*, align 8 - %"$$$BoolUtils.andb_6_9_285" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$$BoolUtils.andb_6_9", align 8 - %"$$$BoolUtils.andb_6_9_fptr_286" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$$BoolUtils.andb_6_9_285", 0 - %"$$$BoolUtils.andb_6_9_envptr_287" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$$BoolUtils.andb_6_9_285", 1 - %"$c_288" = load %TName_Bool*, %TName_Bool** %c, align 8 - %"$$$BoolUtils.andb_6_9_call_289" = call %TName_Bool* %"$$$BoolUtils.andb_6_9_fptr_286"(i8* %"$$$BoolUtils.andb_6_9_envptr_287", %TName_Bool* %"$c_288"), !dbg !10 - store %TName_Bool* %"$$$BoolUtils.andb_6_9_call_289", %TName_Bool** %"$$BoolUtils.andb_6_10", align 8, !dbg !10 - %"$$$BoolUtils.andb_6_10_290" = load %TName_Bool*, %TName_Bool** %"$$BoolUtils.andb_6_10", align 8 - store %TName_Bool* %"$$$BoolUtils.andb_6_10_290", %TName_Bool** %t2, align 8, !dbg !10 - %"$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 = %"$have_gas_278" - call void @_out_of_gas() - br label %"$have_gas_294" - -"$have_gas_294": ; preds = %"$out_of_gas_293", %"$have_gas_278" - %"$consume_295" = sub i64 %"$gasrem_291", 1 - store i64 %"$consume_295", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$$BoolUtils.andb_6_10", metadata !22, metadata !DIExpression()), !dbg !21 + %"$$$BoolUtils.andb_6_9_292" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$$BoolUtils.andb_6_9", align 8 + %"$$$BoolUtils.andb_6_9_fptr_293" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$$BoolUtils.andb_6_9_292", 0 + %"$$$BoolUtils.andb_6_9_envptr_294" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$$BoolUtils.andb_6_9_292", 1 + %"$c_295" = load %TName_Bool*, %TName_Bool** %c, align 8 + %"$$$BoolUtils.andb_6_9_call_296" = call %TName_Bool* %"$$$BoolUtils.andb_6_9_fptr_293"(i8* %"$$$BoolUtils.andb_6_9_envptr_294", %TName_Bool* %"$c_295"), !dbg !21 + store %TName_Bool* %"$$$BoolUtils.andb_6_9_call_296", %TName_Bool** %"$$BoolUtils.andb_6_10", align 8, !dbg !21 + %"$$$BoolUtils.andb_6_10_297" = load %TName_Bool*, %TName_Bool** %"$$BoolUtils.andb_6_10", align 8 + store %TName_Bool* %"$$$BoolUtils.andb_6_10_297", %TName_Bool** %t2, align 8, !dbg !21 + %"$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_285" + call void @_out_of_gas() + br label %"$have_gas_301" + +"$have_gas_301": ; preds = %"$out_of_gas_300", %"$have_gas_285" + %"$consume_302" = sub i64 %"$gasrem_298", 1 + store i64 %"$consume_302", i64* @_gasrem, align 8 %"$$BoolUtils.andb_6_11" = alloca { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, align 8 - %"$$BoolUtils.andb_6_296" = load { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }, { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_6", align 8 - %"$$BoolUtils.andb_6_fptr_297" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_6_296", 0 - %"$$BoolUtils.andb_6_envptr_298" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_6_296", 1 - %"$t2_299" = load %TName_Bool*, %TName_Bool** %t2, align 8 - %"$$BoolUtils.andb_6_call_300" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_6_fptr_297"(i8* %"$$BoolUtils.andb_6_envptr_298", %TName_Bool* %"$t2_299"), !dbg !11 - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_6_call_300", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$$BoolUtils.andb_6_11", align 8, !dbg !11 + %"$$BoolUtils.andb_6_303" = load { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }, { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_6", align 8 + %"$$BoolUtils.andb_6_fptr_304" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_6_303", 0 + %"$$BoolUtils.andb_6_envptr_305" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_6_303", 1 + %"$t2_306" = load %TName_Bool*, %TName_Bool** %t2, align 8 + %"$$BoolUtils.andb_6_call_307" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_6_fptr_304"(i8* %"$$BoolUtils.andb_6_envptr_305", %TName_Bool* %"$t2_306"), !dbg !23 + store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_6_call_307", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$$BoolUtils.andb_6_11", align 8, !dbg !23 %"$$BoolUtils.andb_6_12" = alloca %TName_Bool*, align 8 - %"$$$BoolUtils.andb_6_11_301" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$$BoolUtils.andb_6_11", align 8 - %"$$$BoolUtils.andb_6_11_fptr_302" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$$BoolUtils.andb_6_11_301", 0 - %"$$$BoolUtils.andb_6_11_envptr_303" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$$BoolUtils.andb_6_11_301", 1 - %"$$$BoolUtils.andb_6_11_call_304" = call %TName_Bool* %"$$$BoolUtils.andb_6_11_fptr_302"(i8* %"$$$BoolUtils.andb_6_11_envptr_303", %TName_Bool* %1), !dbg !11 - store %TName_Bool* %"$$$BoolUtils.andb_6_11_call_304", %TName_Bool** %"$$BoolUtils.andb_6_12", align 8, !dbg !11 - %"$$$BoolUtils.andb_6_12_305" = load %TName_Bool*, %TName_Bool** %"$$BoolUtils.andb_6_12", align 8 - store %TName_Bool* %"$$$BoolUtils.andb_6_12_305", %TName_Bool** %"$retval_34", align 8, !dbg !11 - %"$$retval_34_306" = load %TName_Bool*, %TName_Bool** %"$retval_34", align 8 - ret %TName_Bool* %"$$retval_34_306" + call void @llvm.dbg.declare(metadata %TName_Bool** %"$$BoolUtils.andb_6_12", metadata !24, metadata !DIExpression()), !dbg !23 + %"$$$BoolUtils.andb_6_11_308" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$$BoolUtils.andb_6_11", align 8 + %"$$$BoolUtils.andb_6_11_fptr_309" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$$BoolUtils.andb_6_11_308", 0 + %"$$$BoolUtils.andb_6_11_envptr_310" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$$BoolUtils.andb_6_11_308", 1 + %"$$$BoolUtils.andb_6_11_call_311" = call %TName_Bool* %"$$$BoolUtils.andb_6_11_fptr_309"(i8* %"$$$BoolUtils.andb_6_11_envptr_310", %TName_Bool* %1), !dbg !23 + store %TName_Bool* %"$$$BoolUtils.andb_6_11_call_311", %TName_Bool** %"$$BoolUtils.andb_6_12", align 8, !dbg !23 + %"$$$BoolUtils.andb_6_12_312" = load %TName_Bool*, %TName_Bool** %"$$BoolUtils.andb_6_12", align 8 + store %TName_Bool* %"$$$BoolUtils.andb_6_12_312", %TName_Bool** %"$retval_34", align 8, !dbg !23 + %"$$retval_34_313" = load %TName_Bool*, %TName_Bool** %"$retval_34", align 8 + ret %TName_Bool* %"$$retval_34_313" } -define internal { %TName_Bool* (i8*, %TName_Bool*)*, i8* } @"$fundef_31"(%"$$fundef_31_env_95"* %0, %TName_Bool* %1) !dbg !12 { +define internal { %TName_Bool* (i8*, %TName_Bool*)*, i8* } @"$fundef_31"(%"$$fundef_31_env_95"* %0, %TName_Bool* %1) !dbg !25 { entry: - %"$$fundef_31_env_$BoolUtils.andb_6_218" = getelementptr inbounds %"$$fundef_31_env_95", %"$$fundef_31_env_95"* %0, i32 0, i32 0 - %"$$BoolUtils.andb_6_envload_219" = load { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }, { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }* %"$$fundef_31_env_$BoolUtils.andb_6_218", align 8 + %"$c_247" = alloca %TName_Bool*, align 8 + store %TName_Bool* %1, %TName_Bool** %"$c_247", align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$c_247", metadata !26, metadata !DIExpression()), !dbg !27 + %"$$fundef_31_env_$BoolUtils.andb_6_224" = getelementptr inbounds %"$$fundef_31_env_95", %"$$fundef_31_env_95"* %0, i32 0, i32 0 + %"$$BoolUtils.andb_6_envload_225" = load { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }, { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }* %"$$fundef_31_env_$BoolUtils.andb_6_224", align 8 %"$BoolUtils.andb_6" = 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.andb_6_envload_219", { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_6", align 8 - %"$$fundef_31_env_a_220" = getelementptr inbounds %"$$fundef_31_env_95", %"$$fundef_31_env_95"* %0, i32 0, i32 1 - %"$a_envload_221" = load %TName_Bool*, %TName_Bool** %"$$fundef_31_env_a_220", align 8 + store { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_6_envload_225", { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_6", align 8 + %"$$fundef_31_env_a_226" = getelementptr inbounds %"$$fundef_31_env_95", %"$$fundef_31_env_95"* %0, i32 0, i32 1 + %"$a_envload_227" = load %TName_Bool*, %TName_Bool** %"$$fundef_31_env_a_226", align 8 %a = alloca %TName_Bool*, align 8 - store %TName_Bool* %"$a_envload_221", %TName_Bool** %a, align 8 - %"$$fundef_31_env_b_222" = getelementptr inbounds %"$$fundef_31_env_95", %"$$fundef_31_env_95"* %0, i32 0, i32 2 - %"$b_envload_223" = load %TName_Bool*, %TName_Bool** %"$$fundef_31_env_b_222", align 8 + store %TName_Bool* %"$a_envload_227", %TName_Bool** %a, align 8 + %"$$fundef_31_env_b_228" = getelementptr inbounds %"$$fundef_31_env_95", %"$$fundef_31_env_95"* %0, i32 0, i32 2 + %"$b_envload_229" = load %TName_Bool*, %TName_Bool** %"$$fundef_31_env_b_228", align 8 %b = alloca %TName_Bool*, align 8 - store %TName_Bool* %"$b_envload_223", %TName_Bool** %b, align 8 + store %TName_Bool* %"$b_envload_229", %TName_Bool** %b, align 8 %"$retval_32" = alloca { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, 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_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 - %"$$fundef_33_envp_229_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_33_envp_229_salloc" = call i8* @_salloc(i8* %"$$fundef_33_envp_229_load", i64 40) - %"$$fundef_33_envp_229" = bitcast i8* %"$$fundef_33_envp_229_salloc" to %"$$fundef_33_env_94"* - %"$$fundef_33_env_voidp_231" = bitcast %"$$fundef_33_env_94"* %"$$fundef_33_envp_229" to i8* - %"$$fundef_33_cloval_232" = insertvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } { %TName_Bool* (i8*, %TName_Bool*)* bitcast (%TName_Bool* (%"$$fundef_33_env_94"*, %TName_Bool*)* @"$fundef_33" to %TName_Bool* (i8*, %TName_Bool*)*), i8* undef }, i8* %"$$fundef_33_env_voidp_231", 1 - %"$$fundef_33_env_$BoolUtils.andb_6_233" = getelementptr inbounds %"$$fundef_33_env_94", %"$$fundef_33_env_94"* %"$$fundef_33_envp_229", i32 0, i32 0 - %"$$BoolUtils.andb_6_234" = load { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }, { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_6", align 8 - store { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_6_234", { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }* %"$$fundef_33_env_$BoolUtils.andb_6_233", align 8 - %"$$fundef_33_env_a_235" = getelementptr inbounds %"$$fundef_33_env_94", %"$$fundef_33_env_94"* %"$$fundef_33_envp_229", i32 0, i32 1 - %"$a_236" = load %TName_Bool*, %TName_Bool** %a, align 8 - store %TName_Bool* %"$a_236", %TName_Bool** %"$$fundef_33_env_a_235", align 8 - %"$$fundef_33_env_b_237" = getelementptr inbounds %"$$fundef_33_env_94", %"$$fundef_33_env_94"* %"$$fundef_33_envp_229", i32 0, i32 2 - %"$b_238" = load %TName_Bool*, %TName_Bool** %b, align 8 - store %TName_Bool* %"$b_238", %TName_Bool** %"$$fundef_33_env_b_237", align 8 - %"$$fundef_33_env_c_239" = getelementptr inbounds %"$$fundef_33_env_94", %"$$fundef_33_env_94"* %"$$fundef_33_envp_229", i32 0, i32 3 - store %TName_Bool* %1, %TName_Bool** %"$$fundef_33_env_c_239", align 8 - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$fundef_33_cloval_232", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$retval_32", align 8, !dbg !13 - %"$$retval_32_240" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$retval_32", align 8 - ret { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$retval_32_240" + %"$gasrem_230" = load i64, i64* @_gasrem, align 8 + %"$gascmp_231" = icmp ugt i64 1, %"$gasrem_230" + br i1 %"$gascmp_231", label %"$out_of_gas_232", label %"$have_gas_233" + +"$out_of_gas_232": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_233" + +"$have_gas_233": ; preds = %"$out_of_gas_232", %entry + %"$consume_234" = sub i64 %"$gasrem_230", 1 + store i64 %"$consume_234", i64* @_gasrem, align 8 + %"$$fundef_33_envp_235_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_33_envp_235_salloc" = call i8* @_salloc(i8* %"$$fundef_33_envp_235_load", i64 40) + %"$$fundef_33_envp_235" = bitcast i8* %"$$fundef_33_envp_235_salloc" to %"$$fundef_33_env_94"* + %"$$fundef_33_env_voidp_237" = bitcast %"$$fundef_33_env_94"* %"$$fundef_33_envp_235" to i8* + %"$$fundef_33_cloval_238" = insertvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } { %TName_Bool* (i8*, %TName_Bool*)* bitcast (%TName_Bool* (%"$$fundef_33_env_94"*, %TName_Bool*)* @"$fundef_33" to %TName_Bool* (i8*, %TName_Bool*)*), i8* undef }, i8* %"$$fundef_33_env_voidp_237", 1 + %"$$fundef_33_env_$BoolUtils.andb_6_239" = getelementptr inbounds %"$$fundef_33_env_94", %"$$fundef_33_env_94"* %"$$fundef_33_envp_235", i32 0, i32 0 + %"$$BoolUtils.andb_6_240" = load { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }, { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_6", align 8 + store { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_6_240", { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }* %"$$fundef_33_env_$BoolUtils.andb_6_239", align 8 + %"$$fundef_33_env_a_241" = getelementptr inbounds %"$$fundef_33_env_94", %"$$fundef_33_env_94"* %"$$fundef_33_envp_235", i32 0, i32 1 + %"$a_242" = load %TName_Bool*, %TName_Bool** %a, align 8 + store %TName_Bool* %"$a_242", %TName_Bool** %"$$fundef_33_env_a_241", align 8 + %"$$fundef_33_env_b_243" = getelementptr inbounds %"$$fundef_33_env_94", %"$$fundef_33_env_94"* %"$$fundef_33_envp_235", i32 0, i32 2 + %"$b_244" = load %TName_Bool*, %TName_Bool** %b, align 8 + store %TName_Bool* %"$b_244", %TName_Bool** %"$$fundef_33_env_b_243", align 8 + %"$$fundef_33_env_c_245" = getelementptr inbounds %"$$fundef_33_env_94", %"$$fundef_33_env_94"* %"$$fundef_33_envp_235", i32 0, i32 3 + store %TName_Bool* %1, %TName_Bool** %"$$fundef_33_env_c_245", align 8 + store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$fundef_33_cloval_238", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$retval_32", align 8, !dbg !28 + %"$$retval_32_246" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$retval_32", align 8 + ret { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$retval_32_246" } -define internal { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } @"$fundef_29"(%"$$fundef_29_env_96"* %0, %TName_Bool* %1) !dbg !14 { +define internal { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } @"$fundef_29"(%"$$fundef_29_env_96"* %0, %TName_Bool* %1) !dbg !29 { entry: - %"$$fundef_29_env_$BoolUtils.andb_6_199" = getelementptr inbounds %"$$fundef_29_env_96", %"$$fundef_29_env_96"* %0, i32 0, i32 0 - %"$$BoolUtils.andb_6_envload_200" = load { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }, { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }* %"$$fundef_29_env_$BoolUtils.andb_6_199", align 8 + %"$b_223" = alloca %TName_Bool*, align 8 + store %TName_Bool* %1, %TName_Bool** %"$b_223", align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$b_223", metadata !30, metadata !DIExpression()), !dbg !31 + %"$$fundef_29_env_$BoolUtils.andb_6_204" = getelementptr inbounds %"$$fundef_29_env_96", %"$$fundef_29_env_96"* %0, i32 0, i32 0 + %"$$BoolUtils.andb_6_envload_205" = load { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }, { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }* %"$$fundef_29_env_$BoolUtils.andb_6_204", align 8 %"$BoolUtils.andb_6" = 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.andb_6_envload_200", { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_6", align 8 - %"$$fundef_29_env_a_201" = getelementptr inbounds %"$$fundef_29_env_96", %"$$fundef_29_env_96"* %0, i32 0, i32 1 - %"$a_envload_202" = load %TName_Bool*, %TName_Bool** %"$$fundef_29_env_a_201", align 8 + store { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_6_envload_205", { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_6", align 8 + %"$$fundef_29_env_a_206" = getelementptr inbounds %"$$fundef_29_env_96", %"$$fundef_29_env_96"* %0, i32 0, i32 1 + %"$a_envload_207" = load %TName_Bool*, %TName_Bool** %"$$fundef_29_env_a_206", align 8 %a = alloca %TName_Bool*, align 8 - store %TName_Bool* %"$a_envload_202", %TName_Bool** %a, align 8 + store %TName_Bool* %"$a_envload_207", %TName_Bool** %a, align 8 %"$retval_30" = alloca { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }, align 8 - %"$gasrem_203" = load i64, i64* @_gasrem, align 8 - %"$gascmp_204" = icmp ugt i64 1, %"$gasrem_203" - br i1 %"$gascmp_204", label %"$out_of_gas_205", label %"$have_gas_206" - -"$out_of_gas_205": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_206" - -"$have_gas_206": ; preds = %"$out_of_gas_205", %entry - %"$consume_207" = sub i64 %"$gasrem_203", 1 - store i64 %"$consume_207", i64* @_gasrem, align 8 - %"$$fundef_31_envp_208_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_31_envp_208_salloc" = call i8* @_salloc(i8* %"$$fundef_31_envp_208_load", i64 32) - %"$$fundef_31_envp_208" = bitcast i8* %"$$fundef_31_envp_208_salloc" to %"$$fundef_31_env_95"* - %"$$fundef_31_env_voidp_210" = bitcast %"$$fundef_31_env_95"* %"$$fundef_31_envp_208" to i8* - %"$$fundef_31_cloval_211" = insertvalue { { %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_31_env_95"*, %TName_Bool*)* @"$fundef_31" to { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*), i8* undef }, i8* %"$$fundef_31_env_voidp_210", 1 - %"$$fundef_31_env_$BoolUtils.andb_6_212" = getelementptr inbounds %"$$fundef_31_env_95", %"$$fundef_31_env_95"* %"$$fundef_31_envp_208", i32 0, i32 0 - %"$$BoolUtils.andb_6_213" = load { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }, { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_6", align 8 - store { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_6_213", { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }* %"$$fundef_31_env_$BoolUtils.andb_6_212", align 8 - %"$$fundef_31_env_a_214" = getelementptr inbounds %"$$fundef_31_env_95", %"$$fundef_31_env_95"* %"$$fundef_31_envp_208", i32 0, i32 1 - %"$a_215" = load %TName_Bool*, %TName_Bool** %a, align 8 - store %TName_Bool* %"$a_215", %TName_Bool** %"$$fundef_31_env_a_214", align 8 - %"$$fundef_31_env_b_216" = getelementptr inbounds %"$$fundef_31_env_95", %"$$fundef_31_env_95"* %"$$fundef_31_envp_208", i32 0, i32 2 - store %TName_Bool* %1, %TName_Bool** %"$$fundef_31_env_b_216", align 8 - store { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$$fundef_31_cloval_211", { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }* %"$retval_30", align 8, !dbg !15 - %"$$retval_30_217" = load { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }, { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }* %"$retval_30", align 8 - ret { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$$retval_30_217" + %"$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 = %entry + call void @_out_of_gas() + br label %"$have_gas_211" + +"$have_gas_211": ; preds = %"$out_of_gas_210", %entry + %"$consume_212" = sub i64 %"$gasrem_208", 1 + store i64 %"$consume_212", i64* @_gasrem, align 8 + %"$$fundef_31_envp_213_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_31_envp_213_salloc" = call i8* @_salloc(i8* %"$$fundef_31_envp_213_load", i64 32) + %"$$fundef_31_envp_213" = bitcast i8* %"$$fundef_31_envp_213_salloc" to %"$$fundef_31_env_95"* + %"$$fundef_31_env_voidp_215" = bitcast %"$$fundef_31_env_95"* %"$$fundef_31_envp_213" to i8* + %"$$fundef_31_cloval_216" = insertvalue { { %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_31_env_95"*, %TName_Bool*)* @"$fundef_31" to { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*), i8* undef }, i8* %"$$fundef_31_env_voidp_215", 1 + %"$$fundef_31_env_$BoolUtils.andb_6_217" = getelementptr inbounds %"$$fundef_31_env_95", %"$$fundef_31_env_95"* %"$$fundef_31_envp_213", i32 0, i32 0 + %"$$BoolUtils.andb_6_218" = load { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }, { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_6", align 8 + store { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_6_218", { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }* %"$$fundef_31_env_$BoolUtils.andb_6_217", align 8 + %"$$fundef_31_env_a_219" = getelementptr inbounds %"$$fundef_31_env_95", %"$$fundef_31_env_95"* %"$$fundef_31_envp_213", i32 0, i32 1 + %"$a_220" = load %TName_Bool*, %TName_Bool** %a, align 8 + store %TName_Bool* %"$a_220", %TName_Bool** %"$$fundef_31_env_a_219", align 8 + %"$$fundef_31_env_b_221" = getelementptr inbounds %"$$fundef_31_env_95", %"$$fundef_31_env_95"* %"$$fundef_31_envp_213", i32 0, i32 2 + store %TName_Bool* %1, %TName_Bool** %"$$fundef_31_env_b_221", align 8 + store { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$$fundef_31_cloval_216", { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }* %"$retval_30", align 8, !dbg !32 + %"$$retval_30_222" = load { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }, { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }* %"$retval_30", align 8 + ret { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$$retval_30_222" } -define internal { { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } @"$fundef_27"(%"$$fundef_27_env_97"* %0, %TName_Bool* %1) !dbg !16 { +define internal { { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } @"$fundef_27"(%"$$fundef_27_env_97"* %0, %TName_Bool* %1) !dbg !33 { entry: - %"$$fundef_27_env_$BoolUtils.andb_6_184" = getelementptr inbounds %"$$fundef_27_env_97", %"$$fundef_27_env_97"* %0, i32 0, i32 0 - %"$$BoolUtils.andb_6_envload_185" = load { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }, { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }* %"$$fundef_27_env_$BoolUtils.andb_6_184", align 8 + %"$a_203" = alloca %TName_Bool*, align 8 + store %TName_Bool* %1, %TName_Bool** %"$a_203", align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$a_203", metadata !34, metadata !DIExpression()), !dbg !35 + %"$$fundef_27_env_$BoolUtils.andb_6_188" = getelementptr inbounds %"$$fundef_27_env_97", %"$$fundef_27_env_97"* %0, i32 0, i32 0 + %"$$BoolUtils.andb_6_envload_189" = load { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }, { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }* %"$$fundef_27_env_$BoolUtils.andb_6_188", align 8 %"$BoolUtils.andb_6" = 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.andb_6_envload_185", { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_6", align 8 + store { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_6_envload_189", { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_6", align 8 %"$retval_28" = alloca { { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } (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_29_envp_191_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_29_envp_191_salloc" = call i8* @_salloc(i8* %"$$fundef_29_envp_191_load", i64 24) - %"$$fundef_29_envp_191" = bitcast i8* %"$$fundef_29_envp_191_salloc" to %"$$fundef_29_env_96"* - %"$$fundef_29_env_voidp_193" = bitcast %"$$fundef_29_env_96"* %"$$fundef_29_envp_191" to i8* - %"$$fundef_29_cloval_194" = insertvalue { { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } { { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)* bitcast ({ { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } (%"$$fundef_29_env_96"*, %TName_Bool*)* @"$fundef_29" to { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*), i8* undef }, i8* %"$$fundef_29_env_voidp_193", 1 - %"$$fundef_29_env_$BoolUtils.andb_6_195" = getelementptr inbounds %"$$fundef_29_env_96", %"$$fundef_29_env_96"* %"$$fundef_29_envp_191", i32 0, i32 0 - %"$$BoolUtils.andb_6_196" = load { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }, { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_6", align 8 - store { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_6_196", { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }* %"$$fundef_29_env_$BoolUtils.andb_6_195", align 8 - %"$$fundef_29_env_a_197" = getelementptr inbounds %"$$fundef_29_env_96", %"$$fundef_29_env_96"* %"$$fundef_29_envp_191", i32 0, i32 1 - store %TName_Bool* %1, %TName_Bool** %"$$fundef_29_env_a_197", align 8 - store { { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$$fundef_29_cloval_194", { { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }* %"$retval_28", align 8, !dbg !17 - %"$$retval_28_198" = load { { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }, { { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }* %"$retval_28", align 8 - ret { { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$$retval_28_198" + %"$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_29_envp_195_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_29_envp_195_salloc" = call i8* @_salloc(i8* %"$$fundef_29_envp_195_load", i64 24) + %"$$fundef_29_envp_195" = bitcast i8* %"$$fundef_29_envp_195_salloc" to %"$$fundef_29_env_96"* + %"$$fundef_29_env_voidp_197" = bitcast %"$$fundef_29_env_96"* %"$$fundef_29_envp_195" to i8* + %"$$fundef_29_cloval_198" = insertvalue { { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } { { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)* bitcast ({ { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } (%"$$fundef_29_env_96"*, %TName_Bool*)* @"$fundef_29" to { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*), i8* undef }, i8* %"$$fundef_29_env_voidp_197", 1 + %"$$fundef_29_env_$BoolUtils.andb_6_199" = getelementptr inbounds %"$$fundef_29_env_96", %"$$fundef_29_env_96"* %"$$fundef_29_envp_195", i32 0, i32 0 + %"$$BoolUtils.andb_6_200" = load { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }, { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_6", align 8 + store { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_6_200", { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }* %"$$fundef_29_env_$BoolUtils.andb_6_199", align 8 + %"$$fundef_29_env_a_201" = getelementptr inbounds %"$$fundef_29_env_96", %"$$fundef_29_env_96"* %"$$fundef_29_envp_195", i32 0, i32 1 + store %TName_Bool* %1, %TName_Bool** %"$$fundef_29_env_a_201", align 8 + store { { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$$fundef_29_cloval_198", { { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }* %"$retval_28", align 8, !dbg !36 + %"$$retval_28_202" = load { { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }, { { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }* %"$retval_28", align 8 + ret { { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$$retval_28_202" } -define internal %TName_Bool* @"$fundef_25"(%"$$fundef_25_env_98"* %0, %TName_Bool* %1) !dbg !18 { +define internal %TName_Bool* @"$fundef_25"(%"$$fundef_25_env_98"* %0, %TName_Bool* %1) !dbg !37 { entry: - %"$$fundef_25_env_b_154" = getelementptr inbounds %"$$fundef_25_env_98", %"$$fundef_25_env_98"* %0, i32 0, i32 0 - %"$b_envload_155" = load %TName_Bool*, %TName_Bool** %"$$fundef_25_env_b_154", align 8 + %"$c_187" = alloca %TName_Bool*, align 8 + store %TName_Bool* %1, %TName_Bool** %"$c_187", align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$c_187", metadata !38, metadata !DIExpression()), !dbg !39 + %"$$fundef_25_env_b_157" = getelementptr inbounds %"$$fundef_25_env_98", %"$$fundef_25_env_98"* %0, i32 0, i32 0 + %"$b_envload_158" = load %TName_Bool*, %TName_Bool** %"$$fundef_25_env_b_157", align 8 %b = alloca %TName_Bool*, align 8 - store %TName_Bool* %"$b_envload_155", %TName_Bool** %b, align 8 + store %TName_Bool* %"$b_envload_158", %TName_Bool** %b, align 8 %"$retval_26" = alloca %TName_Bool*, align 8 - %"$gasrem_156" = load i64, i64* @_gasrem, align 8 - %"$gascmp_157" = icmp ugt i64 2, %"$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", 2 - store i64 %"$consume_160", i64* @_gasrem, align 8 - %"$b_162" = load %TName_Bool*, %TName_Bool** %b, align 8 - %"$b_tag_163" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$b_162", i32 0, i32 0 - %"$b_tag_164" = load i8, i8* %"$b_tag_163", align 1 - switch i8 %"$b_tag_164", label %"$empty_default_165" [ - i8 1, label %"$False_166" - i8 0, label %"$True_176" - ], !dbg !19 - -"$False_166": ; preds = %"$have_gas_159" - %"$b_167" = bitcast %TName_Bool* %"$b_162" to %CName_False* - %"$gasrem_168" = load i64, i64* @_gasrem, align 8 - %"$gascmp_169" = icmp ugt i64 1, %"$gasrem_168" - br i1 %"$gascmp_169", label %"$out_of_gas_170", label %"$have_gas_171" - -"$out_of_gas_170": ; preds = %"$False_166" - call void @_out_of_gas() - br label %"$have_gas_171" - -"$have_gas_171": ; preds = %"$out_of_gas_170", %"$False_166" - %"$consume_172" = sub i64 %"$gasrem_168", 1 - store i64 %"$consume_172", i64* @_gasrem, align 8 - %"$adtval_173_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_173_salloc" = call i8* @_salloc(i8* %"$adtval_173_load", i64 1) - %"$adtval_173" = bitcast i8* %"$adtval_173_salloc" to %CName_False* - %"$adtgep_174" = getelementptr inbounds %CName_False, %CName_False* %"$adtval_173", i32 0, i32 0 - store i8 1, i8* %"$adtgep_174", align 1 - %"$adtptr_175" = bitcast %CName_False* %"$adtval_173" to %TName_Bool* - store %TName_Bool* %"$adtptr_175", %TName_Bool** %"$retval_26", align 8, !dbg !20 - br label %"$matchsucc_161" - -"$True_176": ; preds = %"$have_gas_159" - %"$b_177" = bitcast %TName_Bool* %"$b_162" to %CName_True* - %"$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 = %"$True_176" - call void @_out_of_gas() - br label %"$have_gas_181" - -"$have_gas_181": ; preds = %"$out_of_gas_180", %"$True_176" - %"$consume_182" = sub i64 %"$gasrem_178", 1 - store i64 %"$consume_182", i64* @_gasrem, align 8 - store %TName_Bool* %1, %TName_Bool** %"$retval_26", align 8, !dbg !23 - br label %"$matchsucc_161" - -"$empty_default_165": ; preds = %"$have_gas_159" - br label %"$matchsucc_161" - -"$matchsucc_161": ; preds = %"$have_gas_181", %"$have_gas_171", %"$empty_default_165" - %"$$retval_26_183" = load %TName_Bool*, %TName_Bool** %"$retval_26", align 8 - ret %TName_Bool* %"$$retval_26_183" + call void @llvm.dbg.declare(metadata %TName_Bool** %"$retval_26", metadata !40, metadata !DIExpression()), !dbg !41 + %"$gasrem_159" = load i64, i64* @_gasrem, align 8 + %"$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 = %entry + call void @_out_of_gas() + br label %"$have_gas_162" + +"$have_gas_162": ; preds = %"$out_of_gas_161", %entry + %"$consume_163" = sub i64 %"$gasrem_159", 2 + store i64 %"$consume_163", i64* @_gasrem, align 8 + %"$b_165" = load %TName_Bool*, %TName_Bool** %b, align 8 + %"$b_tag_166" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$b_165", i32 0, i32 0 + %"$b_tag_167" = load i8, i8* %"$b_tag_166", align 1 + switch i8 %"$b_tag_167", label %"$empty_default_168" [ + i8 1, label %"$False_169" + i8 0, label %"$True_179" + ], !dbg !41 + +"$False_169": ; preds = %"$have_gas_162" + %"$b_170" = bitcast %TName_Bool* %"$b_165" to %CName_False* + %"$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 = %"$False_169" + call void @_out_of_gas() + br label %"$have_gas_174" + +"$have_gas_174": ; preds = %"$out_of_gas_173", %"$False_169" + %"$consume_175" = sub i64 %"$gasrem_171", 1 + store i64 %"$consume_175", i64* @_gasrem, align 8 + %"$adtval_176_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_176_salloc" = call i8* @_salloc(i8* %"$adtval_176_load", i64 1) + %"$adtval_176" = bitcast i8* %"$adtval_176_salloc" to %CName_False* + %"$adtgep_177" = getelementptr inbounds %CName_False, %CName_False* %"$adtval_176", i32 0, i32 0 + store i8 1, i8* %"$adtgep_177", align 1 + %"$adtptr_178" = bitcast %CName_False* %"$adtval_176" to %TName_Bool* + store %TName_Bool* %"$adtptr_178", %TName_Bool** %"$retval_26", align 8, !dbg !42 + br label %"$matchsucc_164" + +"$True_179": ; preds = %"$have_gas_162" + %"$b_180" = bitcast %TName_Bool* %"$b_165" to %CName_True* + %"$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 = %"$True_179" + call void @_out_of_gas() + br label %"$have_gas_184" + +"$have_gas_184": ; preds = %"$out_of_gas_183", %"$True_179" + %"$consume_185" = sub i64 %"$gasrem_181", 1 + store i64 %"$consume_185", i64* @_gasrem, align 8 + store %TName_Bool* %1, %TName_Bool** %"$retval_26", align 8, !dbg !45 + br label %"$matchsucc_164" + +"$empty_default_168": ; preds = %"$have_gas_162" + br label %"$matchsucc_164" + +"$matchsucc_164": ; preds = %"$have_gas_184", %"$have_gas_174", %"$empty_default_168" + %"$$retval_26_186" = load %TName_Bool*, %TName_Bool** %"$retval_26", align 8 + ret %TName_Bool* %"$$retval_26_186" } -define internal { %TName_Bool* (i8*, %TName_Bool*)*, i8* } @"$fundef_23"(%"$$fundef_23_env_99"* %0, %TName_Bool* %1) !dbg !25 { +define internal { %TName_Bool* (i8*, %TName_Bool*)*, i8* } @"$fundef_23"(%"$$fundef_23_env_99"* %0, %TName_Bool* %1) !dbg !47 { entry: + %"$b_156" = alloca %TName_Bool*, align 8 + store %TName_Bool* %1, %TName_Bool** %"$b_156", align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$b_156", metadata !48, metadata !DIExpression()), !dbg !49 %"$retval_24" = alloca { %TName_Bool* (i8*, %TName_Bool*)*, 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_25_envp_148_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_25_envp_148_salloc" = call i8* @_salloc(i8* %"$$fundef_25_envp_148_load", i64 8) - %"$$fundef_25_envp_148" = bitcast i8* %"$$fundef_25_envp_148_salloc" to %"$$fundef_25_env_98"* - %"$$fundef_25_env_voidp_150" = bitcast %"$$fundef_25_env_98"* %"$$fundef_25_envp_148" to i8* - %"$$fundef_25_cloval_151" = insertvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } { %TName_Bool* (i8*, %TName_Bool*)* bitcast (%TName_Bool* (%"$$fundef_25_env_98"*, %TName_Bool*)* @"$fundef_25" to %TName_Bool* (i8*, %TName_Bool*)*), i8* undef }, i8* %"$$fundef_25_env_voidp_150", 1 - %"$$fundef_25_env_b_152" = getelementptr inbounds %"$$fundef_25_env_98", %"$$fundef_25_env_98"* %"$$fundef_25_envp_148", i32 0, i32 0 - store %TName_Bool* %1, %TName_Bool** %"$$fundef_25_env_b_152", align 8 - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$fundef_25_cloval_151", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$retval_24", align 8, !dbg !26 - %"$$retval_24_153" = 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_153" + %"$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_25_envp_150_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_25_envp_150_salloc" = call i8* @_salloc(i8* %"$$fundef_25_envp_150_load", i64 8) + %"$$fundef_25_envp_150" = bitcast i8* %"$$fundef_25_envp_150_salloc" to %"$$fundef_25_env_98"* + %"$$fundef_25_env_voidp_152" = bitcast %"$$fundef_25_env_98"* %"$$fundef_25_envp_150" to i8* + %"$$fundef_25_cloval_153" = insertvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } { %TName_Bool* (i8*, %TName_Bool*)* bitcast (%TName_Bool* (%"$$fundef_25_env_98"*, %TName_Bool*)* @"$fundef_25" to %TName_Bool* (i8*, %TName_Bool*)*), i8* undef }, i8* %"$$fundef_25_env_voidp_152", 1 + %"$$fundef_25_env_b_154" = getelementptr inbounds %"$$fundef_25_env_98", %"$$fundef_25_env_98"* %"$$fundef_25_envp_150", i32 0, i32 0 + store %TName_Bool* %1, %TName_Bool** %"$$fundef_25_env_b_154", align 8 + store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$fundef_25_cloval_153", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$retval_24", align 8, !dbg !50 + %"$$retval_24_155" = 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_155" } -define internal %TName_Bool* @"$fundef_37"(%"$$fundef_37_env_100"* %0, %TName_Bool* %1) !dbg !27 { +define internal %TName_Bool* @"$fundef_37"(%"$$fundef_37_env_100"* %0, %TName_Bool* %1) !dbg !51 { entry: - %"$$fundef_37_env_b_113" = getelementptr inbounds %"$$fundef_37_env_100", %"$$fundef_37_env_100"* %0, i32 0, i32 0 - %"$b_envload_114" = load %TName_Bool*, %TName_Bool** %"$$fundef_37_env_b_113", align 8 + %"$c_144" = alloca %TName_Bool*, align 8 + store %TName_Bool* %1, %TName_Bool** %"$c_144", align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$c_144", metadata !52, metadata !DIExpression()), !dbg !53 + %"$$fundef_37_env_b_114" = getelementptr inbounds %"$$fundef_37_env_100", %"$$fundef_37_env_100"* %0, i32 0, i32 0 + %"$b_envload_115" = load %TName_Bool*, %TName_Bool** %"$$fundef_37_env_b_114", align 8 %b = alloca %TName_Bool*, align 8 - store %TName_Bool* %"$b_envload_114", %TName_Bool** %b, align 8 + store %TName_Bool* %"$b_envload_115", %TName_Bool** %b, align 8 %"$retval_38" = 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_121" = load %TName_Bool*, %TName_Bool** %b, align 8 - %"$b_tag_122" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$b_121", 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 !28 - -"$False_125": ; preds = %"$have_gas_118" - %"$b_126" = bitcast %TName_Bool* %"$b_121" 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_38", align 8, !dbg !29 - br label %"$matchsucc_120" - -"$True_135": ; preds = %"$have_gas_118" - %"$b_136" = bitcast %TName_Bool* %"$b_121" 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* %1, %TName_Bool** %"$retval_38", align 8, !dbg !32 - br label %"$matchsucc_120" - -"$empty_default_124": ; preds = %"$have_gas_118" - br label %"$matchsucc_120" - -"$matchsucc_120": ; preds = %"$have_gas_140", %"$have_gas_130", %"$empty_default_124" - %"$$retval_38_142" = load %TName_Bool*, %TName_Bool** %"$retval_38", align 8 - ret %TName_Bool* %"$$retval_38_142" + call void @llvm.dbg.declare(metadata %TName_Bool** %"$retval_38", metadata !54, metadata !DIExpression()), !dbg !55 + %"$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_122" = load %TName_Bool*, %TName_Bool** %b, align 8 + %"$b_tag_123" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$b_122", i32 0, i32 0 + %"$b_tag_124" = load i8, i8* %"$b_tag_123", align 1 + switch i8 %"$b_tag_124", label %"$empty_default_125" [ + i8 1, label %"$False_126" + i8 0, label %"$True_136" + ], !dbg !55 + +"$False_126": ; preds = %"$have_gas_119" + %"$b_127" = bitcast %TName_Bool* %"$b_122" to %CName_False* + %"$gasrem_128" = load i64, i64* @_gasrem, align 8 + %"$gascmp_129" = icmp ugt i64 1, %"$gasrem_128" + br i1 %"$gascmp_129", label %"$out_of_gas_130", label %"$have_gas_131" + +"$out_of_gas_130": ; preds = %"$False_126" + call void @_out_of_gas() + br label %"$have_gas_131" + +"$have_gas_131": ; preds = %"$out_of_gas_130", %"$False_126" + %"$consume_132" = sub i64 %"$gasrem_128", 1 + store i64 %"$consume_132", i64* @_gasrem, align 8 + %"$adtval_133_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_133_salloc" = call i8* @_salloc(i8* %"$adtval_133_load", i64 1) + %"$adtval_133" = bitcast i8* %"$adtval_133_salloc" to %CName_False* + %"$adtgep_134" = getelementptr inbounds %CName_False, %CName_False* %"$adtval_133", i32 0, i32 0 + store i8 1, i8* %"$adtgep_134", align 1 + %"$adtptr_135" = bitcast %CName_False* %"$adtval_133" to %TName_Bool* + store %TName_Bool* %"$adtptr_135", %TName_Bool** %"$retval_38", align 8, !dbg !56 + br label %"$matchsucc_121" + +"$True_136": ; preds = %"$have_gas_119" + %"$b_137" = bitcast %TName_Bool* %"$b_122" to %CName_True* + %"$gasrem_138" = load i64, i64* @_gasrem, align 8 + %"$gascmp_139" = icmp ugt i64 1, %"$gasrem_138" + br i1 %"$gascmp_139", label %"$out_of_gas_140", label %"$have_gas_141" + +"$out_of_gas_140": ; preds = %"$True_136" + call void @_out_of_gas() + br label %"$have_gas_141" + +"$have_gas_141": ; preds = %"$out_of_gas_140", %"$True_136" + %"$consume_142" = sub i64 %"$gasrem_138", 1 + store i64 %"$consume_142", i64* @_gasrem, align 8 + store %TName_Bool* %1, %TName_Bool** %"$retval_38", align 8, !dbg !59 + br label %"$matchsucc_121" + +"$empty_default_125": ; preds = %"$have_gas_119" + br label %"$matchsucc_121" + +"$matchsucc_121": ; preds = %"$have_gas_141", %"$have_gas_131", %"$empty_default_125" + %"$$retval_38_143" = load %TName_Bool*, %TName_Bool** %"$retval_38", align 8 + ret %TName_Bool* %"$$retval_38_143" } -define internal { %TName_Bool* (i8*, %TName_Bool*)*, i8* } @"$fundef_35"(%"$$fundef_35_env_101"* %0, %TName_Bool* %1) !dbg !34 { +define internal { %TName_Bool* (i8*, %TName_Bool*)*, i8* } @"$fundef_35"(%"$$fundef_35_env_101"* %0, %TName_Bool* %1) !dbg !61 { entry: + %"$b_113" = alloca %TName_Bool*, align 8 + store %TName_Bool* %1, %TName_Bool** %"$b_113", align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$b_113", metadata !62, metadata !DIExpression()), !dbg !63 %"$retval_36" = alloca { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, align 8 %"$gasrem_102" = load i64, i64* @_gasrem, align 8 %"$gascmp_103" = icmp ugt i64 1, %"$gasrem_102" @@ -578,7 +610,7 @@ entry: %"$$fundef_37_cloval_110" = insertvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } { %TName_Bool* (i8*, %TName_Bool*)* bitcast (%TName_Bool* (%"$$fundef_37_env_100"*, %TName_Bool*)* @"$fundef_37" to %TName_Bool* (i8*, %TName_Bool*)*), i8* undef }, i8* %"$$fundef_37_env_voidp_109", 1 %"$$fundef_37_env_b_111" = getelementptr inbounds %"$$fundef_37_env_100", %"$$fundef_37_env_100"* %"$$fundef_37_envp_107", i32 0, i32 0 store %TName_Bool* %1, %TName_Bool** %"$$fundef_37_env_b_111", align 8 - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$fundef_37_cloval_110", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$retval_36", align 8, !dbg !35 + store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$fundef_37_cloval_110", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$retval_36", align 8, !dbg !64 %"$$retval_36_112" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$retval_36", align 8 ret { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$retval_36_112" } @@ -587,1348 +619,1391 @@ declare void @_out_of_gas() declare i8* @_salloc(i8*, i64) -define void @_init_libs() !dbg !36 { -entry: - %"$gasrem_307" = load i64, i64* @_gasrem, align 8 - %"$gascmp_308" = icmp ugt i64 5, %"$gasrem_307" - br i1 %"$gascmp_308", label %"$out_of_gas_309", label %"$have_gas_310" - -"$out_of_gas_309": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_310" +; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn +declare void @llvm.dbg.declare(metadata, metadata, metadata) #0 -"$have_gas_310": ; preds = %"$out_of_gas_309", %entry - %"$consume_311" = sub i64 %"$gasrem_307", 5 - store i64 %"$consume_311", i64* @_gasrem, align 8 - store %Int32 { i32 5 }, %Int32* @"$_gas_charge_accrec_lib_5", align 4, !dbg !38 - %"$gasrem_312" = load i64, i64* @_gasrem, align 8 - %"$gascmp_313" = icmp ugt i64 6, %"$gasrem_312" - br i1 %"$gascmp_313", label %"$out_of_gas_314", label %"$have_gas_315" +define void @_init_libs() !dbg !65 { +entry: + %"$gasrem_315" = load i64, i64* @_gasrem, align 8 + %"$gascmp_316" = icmp ugt i64 5, %"$gasrem_315" + br i1 %"$gascmp_316", label %"$out_of_gas_317", label %"$have_gas_318" -"$out_of_gas_314": ; preds = %"$have_gas_310" +"$out_of_gas_317": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_315" + br label %"$have_gas_318" -"$have_gas_315": ; preds = %"$out_of_gas_314", %"$have_gas_310" - %"$consume_316" = sub i64 %"$gasrem_312", 6 - store i64 %"$consume_316", i64* @_gasrem, align 8 - store %Int32 { i32 6 }, %Int32* @"$_gas_charge_accBoolUtils_0", align 4, !dbg !38 - %"$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" +"$have_gas_318": ; preds = %"$out_of_gas_317", %entry + %"$consume_319" = sub i64 %"$gasrem_315", 5 + store i64 %"$consume_319", i64* @_gasrem, align 8 + store %Int32 { i32 5 }, %Int32* @"$_gas_charge_accrec_lib_5", align 4, !dbg !67 + %"$gasrem_320" = load i64, i64* @_gasrem, align 8 + %"$gascmp_321" = icmp ugt i64 6, %"$gasrem_320" + br i1 %"$gascmp_321", label %"$out_of_gas_322", label %"$have_gas_323" -"$out_of_gas_319": ; preds = %"$have_gas_315" +"$out_of_gas_322": ; preds = %"$have_gas_318" call void @_out_of_gas() - br label %"$have_gas_320" + br label %"$have_gas_323" -"$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 - 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_35_env_101"*, %TName_Bool*)* @"$fundef_35" 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 !39 +"$have_gas_323": ; preds = %"$out_of_gas_322", %"$have_gas_318" + %"$consume_324" = sub i64 %"$gasrem_320", 6 + store i64 %"$consume_324", i64* @_gasrem, align 8 + store %Int32 { i32 6 }, %Int32* @"$_gas_charge_accBoolUtils_0", align 4, !dbg !67 %"$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 = %"$have_gas_320" +"$out_of_gas_327": ; preds = %"$have_gas_323" call void @_out_of_gas() br label %"$have_gas_328" -"$have_gas_328": ; preds = %"$out_of_gas_327", %"$have_gas_320" +"$have_gas_328": ; preds = %"$out_of_gas_327", %"$have_gas_323" %"$consume_329" = sub i64 %"$gasrem_325", 1 store i64 %"$consume_329", 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_35_env_101"*, %TName_Bool*)* @"$fundef_35" 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 !68 + %"$gasrem_333" = load i64, i64* @_gasrem, align 8 + %"$gascmp_334" = icmp ugt i64 1, %"$gasrem_333" + br i1 %"$gascmp_334", label %"$out_of_gas_335", label %"$have_gas_336" + +"$out_of_gas_335": ; preds = %"$have_gas_328" + call void @_out_of_gas() + br label %"$have_gas_336" + +"$have_gas_336": ; preds = %"$out_of_gas_335", %"$have_gas_328" + %"$consume_337" = sub i64 %"$gasrem_333", 1 + store i64 %"$consume_337", i64* @_gasrem, align 8 %"$BoolUtils.andb_6" = alloca { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }, 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_99"*, %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_6", align 8, !dbg !39 - %"$$fundef_27_envp_333_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_27_envp_333_salloc" = call i8* @_salloc(i8* %"$$fundef_27_envp_333_load", i64 16) - %"$$fundef_27_envp_333" = bitcast i8* %"$$fundef_27_envp_333_salloc" to %"$$fundef_27_env_97"* - %"$$fundef_27_env_voidp_335" = bitcast %"$$fundef_27_env_97"* %"$$fundef_27_envp_333" to i8* - %"$$fundef_27_cloval_336" = insertvalue { { { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } { { { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)* bitcast ({ { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } (%"$$fundef_27_env_97"*, %TName_Bool*)* @"$fundef_27" to { { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*), i8* undef }, i8* %"$$fundef_27_env_voidp_335", 1 - %"$$fundef_27_env_$BoolUtils.andb_6_337" = getelementptr inbounds %"$$fundef_27_env_97", %"$$fundef_27_env_97"* %"$$fundef_27_envp_333", i32 0, i32 0 - %"$$BoolUtils.andb_6_338" = load { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }, { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_6", align 8 - store { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_6_338", { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }* %"$$fundef_27_env_$BoolUtils.andb_6_337", align 8 - store { { { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$$fundef_27_cloval_336", { { { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }* @BoolUtils.and_4, align 8, !dbg !40 - %"$gasrem_339" = load i64, i64* @_gasrem, align 8 - %"$gascmp_340" = icmp ugt i64 196, %"$gasrem_339" - br i1 %"$gascmp_340", label %"$out_of_gas_341", label %"$have_gas_342" - -"$out_of_gas_341": ; preds = %"$have_gas_328" - call void @_out_of_gas() - br label %"$have_gas_342" - -"$have_gas_342": ; preds = %"$out_of_gas_341", %"$have_gas_328" - %"$consume_343" = sub i64 %"$gasrem_339", 196 - store i64 %"$consume_343", i64* @_gasrem, align 8 - store %Int32 { i32 196 }, %Int32* @"$_gas_charge_accIntUtils_1", align 4, !dbg !38 - %"$gasrem_344" = load i64, i64* @_gasrem, align 8 - %"$gascmp_345" = icmp ugt i64 20, %"$gasrem_344" - br i1 %"$gascmp_345", label %"$out_of_gas_346", label %"$have_gas_347" - -"$out_of_gas_346": ; preds = %"$have_gas_342" - call void @_out_of_gas() - br label %"$have_gas_347" - -"$have_gas_347": ; preds = %"$out_of_gas_346", %"$have_gas_342" - %"$consume_348" = sub i64 %"$gasrem_344", 20 - store i64 %"$consume_348", i64* @_gasrem, align 8 - store %Int32 { i32 20 }, %Int32* @"$_gas_charge_accListUtils_2", align 4, !dbg !38 - %"$gasrem_349" = load i64, i64* @_gasrem, align 8 - %"$gascmp_350" = icmp ugt i64 12, %"$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", 12 - store i64 %"$consume_353", i64* @_gasrem, align 8 - store %Int32 { i32 12 }, %Int32* @"$_gas_charge_accNatUtils_3", align 4, !dbg !38 - %"$gasrem_354" = load i64, i64* @_gasrem, align 8 - %"$gascmp_355" = icmp ugt i64 2, %"$gasrem_354" - br i1 %"$gascmp_355", label %"$out_of_gas_356", label %"$have_gas_357" - -"$out_of_gas_356": ; preds = %"$have_gas_352" - call void @_out_of_gas() - br label %"$have_gas_357" - -"$have_gas_357": ; preds = %"$out_of_gas_356", %"$have_gas_352" - %"$consume_358" = sub i64 %"$gasrem_354", 2 - store i64 %"$consume_358", i64* @_gasrem, align 8 - store %Int32 { i32 2 }, %Int32* @"$_gas_charge_accPairUtils_4", align 4, !dbg !38 + 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_99"*, %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_6", align 8, !dbg !68 + %"$$fundef_27_envp_341_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_27_envp_341_salloc" = call i8* @_salloc(i8* %"$$fundef_27_envp_341_load", i64 16) + %"$$fundef_27_envp_341" = bitcast i8* %"$$fundef_27_envp_341_salloc" to %"$$fundef_27_env_97"* + %"$$fundef_27_env_voidp_343" = bitcast %"$$fundef_27_env_97"* %"$$fundef_27_envp_341" to i8* + %"$$fundef_27_cloval_344" = insertvalue { { { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } { { { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)* bitcast ({ { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } (%"$$fundef_27_env_97"*, %TName_Bool*)* @"$fundef_27" to { { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*), i8* undef }, i8* %"$$fundef_27_env_voidp_343", 1 + %"$$fundef_27_env_$BoolUtils.andb_6_345" = getelementptr inbounds %"$$fundef_27_env_97", %"$$fundef_27_env_97"* %"$$fundef_27_envp_341", i32 0, i32 0 + %"$$BoolUtils.andb_6_346" = load { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }, { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_6", align 8 + store { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_6_346", { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }* %"$$fundef_27_env_$BoolUtils.andb_6_345", align 8 + store { { { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$$fundef_27_cloval_344", { { { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }* @BoolUtils.and_4, align 8, !dbg !69 + %"$gasrem_347" = load i64, i64* @_gasrem, align 8 + %"$gascmp_348" = icmp ugt i64 196, %"$gasrem_347" + br i1 %"$gascmp_348", label %"$out_of_gas_349", label %"$have_gas_350" + +"$out_of_gas_349": ; preds = %"$have_gas_336" + call void @_out_of_gas() + br label %"$have_gas_350" + +"$have_gas_350": ; preds = %"$out_of_gas_349", %"$have_gas_336" + %"$consume_351" = sub i64 %"$gasrem_347", 196 + store i64 %"$consume_351", i64* @_gasrem, align 8 + store %Int32 { i32 196 }, %Int32* @"$_gas_charge_accIntUtils_1", align 4, !dbg !67 + %"$gasrem_352" = load i64, i64* @_gasrem, align 8 + %"$gascmp_353" = icmp ugt i64 20, %"$gasrem_352" + br i1 %"$gascmp_353", label %"$out_of_gas_354", label %"$have_gas_355" + +"$out_of_gas_354": ; preds = %"$have_gas_350" + call void @_out_of_gas() + br label %"$have_gas_355" + +"$have_gas_355": ; preds = %"$out_of_gas_354", %"$have_gas_350" + %"$consume_356" = sub i64 %"$gasrem_352", 20 + store i64 %"$consume_356", i64* @_gasrem, align 8 + store %Int32 { i32 20 }, %Int32* @"$_gas_charge_accListUtils_2", align 4, !dbg !67 + %"$gasrem_357" = load i64, i64* @_gasrem, align 8 + %"$gascmp_358" = icmp ugt i64 12, %"$gasrem_357" + br i1 %"$gascmp_358", label %"$out_of_gas_359", label %"$have_gas_360" + +"$out_of_gas_359": ; preds = %"$have_gas_355" + call void @_out_of_gas() + br label %"$have_gas_360" + +"$have_gas_360": ; preds = %"$out_of_gas_359", %"$have_gas_355" + %"$consume_361" = sub i64 %"$gasrem_357", 12 + store i64 %"$consume_361", i64* @_gasrem, align 8 + store %Int32 { i32 12 }, %Int32* @"$_gas_charge_accNatUtils_3", align 4, !dbg !67 + %"$gasrem_362" = load i64, i64* @_gasrem, align 8 + %"$gascmp_363" = icmp ugt i64 2, %"$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", 2 + store i64 %"$consume_366", i64* @_gasrem, align 8 + store %Int32 { i32 2 }, %Int32* @"$_gas_charge_accPairUtils_4", align 4, !dbg !67 ret void } -define internal %TName_Bool* @_scilla_expr_fun(i8* %0) !dbg !41 { +define internal %TName_Bool* @_scilla_expr_fun(i8* %0) !dbg !70 { entry: %"$expr_39" = alloca %TName_Bool*, align 8 - %"$gasrem_359" = load i64, i64* @_gasrem, align 8 - %"$gascmp_360" = icmp ugt i64 1, %"$gasrem_359" - br i1 %"$gascmp_360", label %"$out_of_gas_361", label %"$have_gas_362" + call void @llvm.dbg.declare(metadata %TName_Bool** %"$expr_39", metadata !71, metadata !DIExpression()), !dbg !72 + %"$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_361": ; preds = %entry +"$out_of_gas_369": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_362" + br label %"$have_gas_370" -"$have_gas_362": ; preds = %"$out_of_gas_361", %entry - %"$consume_363" = sub i64 %"$gasrem_359", 1 - store i64 %"$consume_363", i64* @_gasrem, align 8 +"$have_gas_370": ; preds = %"$out_of_gas_369", %entry + %"$consume_371" = sub i64 %"$gasrem_367", 1 + store i64 %"$consume_371", i64* @_gasrem, align 8 %p1 = alloca [33 x i8], align 1 - %"$gasrem_364" = load i64, i64* @_gasrem, align 8 - %"$gascmp_365" = icmp ugt i64 1, %"$gasrem_364" - br i1 %"$gascmp_365", label %"$out_of_gas_366", label %"$have_gas_367" + call void @llvm.dbg.declare(metadata [33 x i8]* %p1, metadata !73, metadata !DIExpression()), !dbg !75 + %"$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_366": ; preds = %"$have_gas_362" +"$out_of_gas_374": ; preds = %"$have_gas_370" call void @_out_of_gas() - br label %"$have_gas_367" + br label %"$have_gas_375" -"$have_gas_367": ; preds = %"$out_of_gas_366", %"$have_gas_362" - %"$consume_368" = sub i64 %"$gasrem_364", 1 - store i64 %"$consume_368", i64* @_gasrem, align 8 - store [33 x i8] c"\03\14s\81c\B9\BBg\AD\11\AAFO\E6\9A\11G\DF&>\89p\D7\DC\FD\8F\99=\DD9\E8\1B\D9", [33 x i8]* %p1, align 1, !dbg !42 - %"$gasrem_369" = load i64, i64* @_gasrem, align 8 - %"$gascmp_370" = icmp ugt i64 1, %"$gasrem_369" - br i1 %"$gascmp_370", label %"$out_of_gas_371", label %"$have_gas_372" +"$have_gas_375": ; preds = %"$out_of_gas_374", %"$have_gas_370" + %"$consume_376" = sub i64 %"$gasrem_372", 1 + store i64 %"$consume_376", i64* @_gasrem, align 8 + store [33 x i8] c"\03\14s\81c\B9\BBg\AD\11\AAFO\E6\9A\11G\DF&>\89p\D7\DC\FD\8F\99=\DD9\E8\1B\D9", [33 x i8]* %p1, align 1, !dbg !72 + %"$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_371": ; preds = %"$have_gas_367" +"$out_of_gas_379": ; preds = %"$have_gas_375" call void @_out_of_gas() - br label %"$have_gas_372" + br label %"$have_gas_380" -"$have_gas_372": ; preds = %"$out_of_gas_371", %"$have_gas_367" - %"$consume_373" = sub i64 %"$gasrem_369", 1 - store i64 %"$consume_373", i64* @_gasrem, align 8 +"$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 %a1 = alloca [20 x i8], align 1 - %"$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" + call void @llvm.dbg.declare(metadata [20 x i8]* %a1, metadata !76, metadata !DIExpression()), !dbg !78 + %"$gasrem_382" = load i64, i64* @_gasrem, align 8 + %"$gascmp_383" = icmp ugt i64 1, %"$gasrem_382" + br i1 %"$gascmp_383", label %"$out_of_gas_384", label %"$have_gas_385" -"$out_of_gas_376": ; preds = %"$have_gas_372" +"$out_of_gas_384": ; preds = %"$have_gas_380" call void @_out_of_gas() - br label %"$have_gas_377" + br label %"$have_gas_385" -"$have_gas_377": ; preds = %"$out_of_gas_376", %"$have_gas_372" - %"$consume_378" = sub i64 %"$gasrem_374", 1 - store i64 %"$consume_378", i64* @_gasrem, align 8 - store [20 x i8] c"K\AF_\AD\A8\E5\DB\92\C3\D3$&\18\C5\B4q3\AE\00<", [20 x i8]* %a1, align 1, !dbg !43 - %"$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" +"$have_gas_385": ; preds = %"$out_of_gas_384", %"$have_gas_380" + %"$consume_386" = sub i64 %"$gasrem_382", 1 + store i64 %"$consume_386", i64* @_gasrem, align 8 + store [20 x i8] c"K\AF_\AD\A8\E5\DB\92\C3\D3$&\18\C5\B4q3\AE\00<", [20 x i8]* %a1, align 1, !dbg !79 + %"$gasrem_387" = load i64, i64* @_gasrem, align 8 + %"$gascmp_388" = icmp ugt i64 1, %"$gasrem_387" + br i1 %"$gascmp_388", label %"$out_of_gas_389", label %"$have_gas_390" -"$out_of_gas_381": ; preds = %"$have_gas_377" +"$out_of_gas_389": ; preds = %"$have_gas_385" call void @_out_of_gas() - br label %"$have_gas_382" + br label %"$have_gas_390" -"$have_gas_382": ; preds = %"$out_of_gas_381", %"$have_gas_377" - %"$consume_383" = sub i64 %"$gasrem_379", 1 - store i64 %"$consume_383", i64* @_gasrem, align 8 +"$have_gas_390": ; preds = %"$out_of_gas_389", %"$have_gas_385" + %"$consume_391" = sub i64 %"$gasrem_387", 1 + store i64 %"$consume_391", i64* @_gasrem, align 8 %a1_gen = alloca [20 x i8], align 1 - %"$_literal_cost_p1_384" = alloca [33 x i8], align 1 - %"$p1_385" = load [33 x i8], [33 x i8]* %p1, align 1 - store [33 x i8] %"$p1_385", [33 x i8]* %"$_literal_cost_p1_384", align 1 - %"$$_literal_cost_p1_384_386" = bitcast [33 x i8]* %"$_literal_cost_p1_384" to i8* - %"$_literal_cost_call_387" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Bystr33_74", i8* %"$$_literal_cost_p1_384_386") - %"$gasadd_388" = add i64 %"$_literal_cost_call_387", 0 - %"$gasdivceil_389" = urem i64 %"$gasadd_388", 960 - %"$gasdivceil_390" = udiv i64 %"$gasadd_388", 960 - %"$gasdivceil_391" = icmp eq i64 %"$gasdivceil_389", 0 - %"$gasdivceil_392" = add i64 %"$gasdivceil_390", 1 - %"$gasdivceil_393" = select i1 %"$gasdivceil_391", i64 %"$gasdivceil_390", i64 %"$gasdivceil_392" - %"$gasrem_394" = load i64, i64* @_gasrem, align 8 - %"$gascmp_395" = icmp ugt i64 %"$gasdivceil_393", %"$gasrem_394" - br i1 %"$gascmp_395", label %"$out_of_gas_396", label %"$have_gas_397" - -"$out_of_gas_396": ; preds = %"$have_gas_382" - call void @_out_of_gas() - br label %"$have_gas_397" - -"$have_gas_397": ; preds = %"$out_of_gas_396", %"$have_gas_382" - %"$consume_398" = sub i64 %"$gasrem_394", %"$gasdivceil_393" - store i64 %"$consume_398", i64* @_gasrem, align 8 - %"$execptr_load_399" = load i8*, i8** @_execptr, align 8 - %"$schnorr_get_address_p1_400" = alloca [33 x i8], align 1 - %"$p1_401" = load [33 x i8], [33 x i8]* %p1, align 1 - store [33 x i8] %"$p1_401", [33 x i8]* %"$schnorr_get_address_p1_400", align 1 - %"$schnorr_get_address_call_402" = call [20 x i8]* @_schnorr_get_address(i8* %"$execptr_load_399", [33 x i8]* %"$schnorr_get_address_p1_400"), !dbg !44 - %"$schnorr_get_address_404" = load [20 x i8], [20 x i8]* %"$schnorr_get_address_call_402", align 1 - store [20 x i8] %"$schnorr_get_address_404", [20 x i8]* %a1_gen, align 1, !dbg !44 - %"$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_397" - call void @_out_of_gas() - br label %"$have_gas_408" - -"$have_gas_408": ; preds = %"$out_of_gas_407", %"$have_gas_397" - %"$consume_409" = sub i64 %"$gasrem_405", 1 - store i64 %"$consume_409", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata [20 x i8]* %a1_gen, metadata !80, metadata !DIExpression()), !dbg !81 + %"$_literal_cost_p1_392" = alloca [33 x i8], align 1 + %"$p1_393" = load [33 x i8], [33 x i8]* %p1, align 1 + store [33 x i8] %"$p1_393", [33 x i8]* %"$_literal_cost_p1_392", align 1 + %"$$_literal_cost_p1_392_394" = bitcast [33 x i8]* %"$_literal_cost_p1_392" to i8* + %"$_literal_cost_call_395" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Bystr33_74", i8* %"$$_literal_cost_p1_392_394") + %"$gasadd_396" = add i64 %"$_literal_cost_call_395", 0 + %"$gasdivceil_397" = urem i64 %"$gasadd_396", 960 + %"$gasdivceil_398" = udiv i64 %"$gasadd_396", 960 + %"$gasdivceil_399" = icmp eq i64 %"$gasdivceil_397", 0 + %"$gasdivceil_400" = add i64 %"$gasdivceil_398", 1 + %"$gasdivceil_401" = select i1 %"$gasdivceil_399", i64 %"$gasdivceil_398", i64 %"$gasdivceil_400" + %"$gasrem_402" = load i64, i64* @_gasrem, align 8 + %"$gascmp_403" = icmp ugt i64 %"$gasdivceil_401", %"$gasrem_402" + br i1 %"$gascmp_403", label %"$out_of_gas_404", label %"$have_gas_405" + +"$out_of_gas_404": ; preds = %"$have_gas_390" + call void @_out_of_gas() + br label %"$have_gas_405" + +"$have_gas_405": ; preds = %"$out_of_gas_404", %"$have_gas_390" + %"$consume_406" = sub i64 %"$gasrem_402", %"$gasdivceil_401" + store i64 %"$consume_406", i64* @_gasrem, align 8 + %"$execptr_load_407" = load i8*, i8** @_execptr, align 8 + %"$schnorr_get_address_p1_408" = alloca [33 x i8], align 1 + %"$p1_409" = load [33 x i8], [33 x i8]* %p1, align 1 + store [33 x i8] %"$p1_409", [33 x i8]* %"$schnorr_get_address_p1_408", align 1 + %"$schnorr_get_address_call_410" = call [20 x i8]* @_schnorr_get_address(i8* %"$execptr_load_407", [33 x i8]* %"$schnorr_get_address_p1_408"), !dbg !82 + %"$schnorr_get_address_412" = load [20 x i8], [20 x i8]* %"$schnorr_get_address_call_410", align 1 + store [20 x i8] %"$schnorr_get_address_412", [20 x i8]* %a1_gen, align 1, !dbg !82 + %"$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 %r1 = alloca %TName_Bool*, align 8 - %"$gasrem_410" = load i64, i64* @_gasrem, align 8 - %"$gascmp_411" = icmp ugt i64 20, %"$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", 20 - store i64 %"$consume_414", i64* @_gasrem, align 8 - %"$execptr_load_415" = load i8*, i8** @_execptr, align 8 - %"$eq_a1_416" = alloca [20 x i8], align 1 - %"$a1_417" = load [20 x i8], [20 x i8]* %a1, align 1 - store [20 x i8] %"$a1_417", [20 x i8]* %"$eq_a1_416", align 1 - %"$$eq_a1_416_418" = bitcast [20 x i8]* %"$eq_a1_416" to i8* - %"$eq_a1_gen_419" = alloca [20 x i8], align 1 - %"$a1_gen_420" = load [20 x i8], [20 x i8]* %a1_gen, align 1 - store [20 x i8] %"$a1_gen_420", [20 x i8]* %"$eq_a1_gen_419", align 1 - %"$$eq_a1_gen_419_421" = bitcast [20 x i8]* %"$eq_a1_gen_419" to i8* - %"$eq_call_422" = call %TName_Bool* @_eq_ByStrX(i8* %"$execptr_load_415", i32 20, i8* %"$$eq_a1_416_418", i8* %"$$eq_a1_gen_419_421"), !dbg !45 - store %TName_Bool* %"$eq_call_422", %TName_Bool** %r1, align 8, !dbg !45 - %"$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_413" - call void @_out_of_gas() - br label %"$have_gas_427" - -"$have_gas_427": ; preds = %"$out_of_gas_426", %"$have_gas_413" - %"$consume_428" = sub i64 %"$gasrem_424", 1 - store i64 %"$consume_428", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %r1, metadata !83, metadata !DIExpression()), !dbg !84 + %"$gasrem_418" = load i64, i64* @_gasrem, align 8 + %"$gascmp_419" = icmp ugt i64 20, %"$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", 20 + store i64 %"$consume_422", i64* @_gasrem, align 8 + %"$execptr_load_423" = load i8*, i8** @_execptr, align 8 + %"$eq_a1_424" = alloca [20 x i8], align 1 + %"$a1_425" = load [20 x i8], [20 x i8]* %a1, align 1 + store [20 x i8] %"$a1_425", [20 x i8]* %"$eq_a1_424", align 1 + %"$$eq_a1_424_426" = bitcast [20 x i8]* %"$eq_a1_424" to i8* + %"$eq_a1_gen_427" = alloca [20 x i8], align 1 + %"$a1_gen_428" = load [20 x i8], [20 x i8]* %a1_gen, align 1 + store [20 x i8] %"$a1_gen_428", [20 x i8]* %"$eq_a1_gen_427", align 1 + %"$$eq_a1_gen_427_429" = bitcast [20 x i8]* %"$eq_a1_gen_427" to i8* + %"$eq_call_430" = call %TName_Bool* @_eq_ByStrX(i8* %"$execptr_load_423", i32 20, i8* %"$$eq_a1_424_426", i8* %"$$eq_a1_gen_427_429"), !dbg !85 + store %TName_Bool* %"$eq_call_430", %TName_Bool** %r1, align 8, !dbg !85 + %"$gasrem_432" = load i64, i64* @_gasrem, align 8 + %"$gascmp_433" = icmp ugt i64 1, %"$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", 1 + store i64 %"$consume_436", i64* @_gasrem, align 8 %p2 = alloca [33 x i8], align 1 - %"$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" + call void @llvm.dbg.declare(metadata [33 x i8]* %p2, metadata !86, metadata !DIExpression()), !dbg !87 + %"$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_431": ; preds = %"$have_gas_427" +"$out_of_gas_439": ; preds = %"$have_gas_435" call void @_out_of_gas() - br label %"$have_gas_432" + br label %"$have_gas_440" -"$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 [33 x i8] c"\03L\E2h\ACZ4\008\D8\AC\EB\BD\D766\11\A5\B1\19y\16w^2H\1F]k\10O\AFe", [33 x i8]* %p2, align 1, !dbg !46 - %"$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" +"$have_gas_440": ; preds = %"$out_of_gas_439", %"$have_gas_435" + %"$consume_441" = sub i64 %"$gasrem_437", 1 + store i64 %"$consume_441", i64* @_gasrem, align 8 + store [33 x i8] c"\03L\E2h\ACZ4\008\D8\AC\EB\BD\D766\11\A5\B1\19y\16w^2H\1F]k\10O\AFe", [33 x i8]* %p2, align 1, !dbg !88 + %"$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_436": ; preds = %"$have_gas_432" +"$out_of_gas_444": ; preds = %"$have_gas_440" call void @_out_of_gas() - br label %"$have_gas_437" + br label %"$have_gas_445" -"$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 +"$have_gas_445": ; preds = %"$out_of_gas_444", %"$have_gas_440" + %"$consume_446" = sub i64 %"$gasrem_442", 1 + store i64 %"$consume_446", i64* @_gasrem, align 8 %a2 = alloca [20 x i8], align 1 - %"$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" + call void @llvm.dbg.declare(metadata [20 x i8]* %a2, metadata !89, metadata !DIExpression()), !dbg !90 + %"$gasrem_447" = load i64, i64* @_gasrem, align 8 + %"$gascmp_448" = icmp ugt i64 1, %"$gasrem_447" + br i1 %"$gascmp_448", label %"$out_of_gas_449", label %"$have_gas_450" -"$out_of_gas_441": ; preds = %"$have_gas_437" +"$out_of_gas_449": ; preds = %"$have_gas_445" call void @_out_of_gas() - br label %"$have_gas_442" + br label %"$have_gas_450" -"$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 - store [20 x i8] c"D\82a\91Z\80\CD\E9\BD\E7\C7\A7\91hR\00\D3\A0\BFN", [20 x i8]* %a2, align 1, !dbg !47 - %"$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" +"$have_gas_450": ; preds = %"$out_of_gas_449", %"$have_gas_445" + %"$consume_451" = sub i64 %"$gasrem_447", 1 + store i64 %"$consume_451", i64* @_gasrem, align 8 + store [20 x i8] c"D\82a\91Z\80\CD\E9\BD\E7\C7\A7\91hR\00\D3\A0\BFN", [20 x i8]* %a2, align 1, !dbg !91 + %"$gasrem_452" = load i64, i64* @_gasrem, align 8 + %"$gascmp_453" = icmp ugt i64 1, %"$gasrem_452" + br i1 %"$gascmp_453", label %"$out_of_gas_454", label %"$have_gas_455" -"$out_of_gas_446": ; preds = %"$have_gas_442" +"$out_of_gas_454": ; preds = %"$have_gas_450" call void @_out_of_gas() - br label %"$have_gas_447" + br label %"$have_gas_455" -"$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 +"$have_gas_455": ; preds = %"$out_of_gas_454", %"$have_gas_450" + %"$consume_456" = sub i64 %"$gasrem_452", 1 + store i64 %"$consume_456", i64* @_gasrem, align 8 %a2_gen = alloca [20 x i8], align 1 - %"$_literal_cost_p2_449" = alloca [33 x i8], align 1 - %"$p2_450" = load [33 x i8], [33 x i8]* %p2, align 1 - store [33 x i8] %"$p2_450", [33 x i8]* %"$_literal_cost_p2_449", align 1 - %"$$_literal_cost_p2_449_451" = bitcast [33 x i8]* %"$_literal_cost_p2_449" to i8* - %"$_literal_cost_call_452" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Bystr33_74", i8* %"$$_literal_cost_p2_449_451") - %"$gasadd_453" = add i64 %"$_literal_cost_call_452", 0 - %"$gasdivceil_454" = urem i64 %"$gasadd_453", 960 - %"$gasdivceil_455" = udiv i64 %"$gasadd_453", 960 - %"$gasdivceil_456" = icmp eq i64 %"$gasdivceil_454", 0 - %"$gasdivceil_457" = add i64 %"$gasdivceil_455", 1 - %"$gasdivceil_458" = select i1 %"$gasdivceil_456", i64 %"$gasdivceil_455", i64 %"$gasdivceil_457" - %"$gasrem_459" = load i64, i64* @_gasrem, align 8 - %"$gascmp_460" = icmp ugt i64 %"$gasdivceil_458", %"$gasrem_459" - br i1 %"$gascmp_460", label %"$out_of_gas_461", label %"$have_gas_462" - -"$out_of_gas_461": ; preds = %"$have_gas_447" - call void @_out_of_gas() - br label %"$have_gas_462" - -"$have_gas_462": ; preds = %"$out_of_gas_461", %"$have_gas_447" - %"$consume_463" = sub i64 %"$gasrem_459", %"$gasdivceil_458" - store i64 %"$consume_463", i64* @_gasrem, align 8 - %"$execptr_load_464" = load i8*, i8** @_execptr, align 8 - %"$schnorr_get_address_p2_465" = alloca [33 x i8], align 1 - %"$p2_466" = load [33 x i8], [33 x i8]* %p2, align 1 - store [33 x i8] %"$p2_466", [33 x i8]* %"$schnorr_get_address_p2_465", align 1 - %"$schnorr_get_address_call_467" = call [20 x i8]* @_schnorr_get_address(i8* %"$execptr_load_464", [33 x i8]* %"$schnorr_get_address_p2_465"), !dbg !48 - %"$schnorr_get_address_469" = load [20 x i8], [20 x i8]* %"$schnorr_get_address_call_467", align 1 - store [20 x i8] %"$schnorr_get_address_469", [20 x i8]* %a2_gen, align 1, !dbg !48 - %"$gasrem_470" = load i64, i64* @_gasrem, align 8 - %"$gascmp_471" = icmp ugt i64 1, %"$gasrem_470" - br i1 %"$gascmp_471", label %"$out_of_gas_472", label %"$have_gas_473" - -"$out_of_gas_472": ; preds = %"$have_gas_462" - call void @_out_of_gas() - br label %"$have_gas_473" - -"$have_gas_473": ; preds = %"$out_of_gas_472", %"$have_gas_462" - %"$consume_474" = sub i64 %"$gasrem_470", 1 - store i64 %"$consume_474", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata [20 x i8]* %a2_gen, metadata !92, metadata !DIExpression()), !dbg !93 + %"$_literal_cost_p2_457" = alloca [33 x i8], align 1 + %"$p2_458" = load [33 x i8], [33 x i8]* %p2, align 1 + store [33 x i8] %"$p2_458", [33 x i8]* %"$_literal_cost_p2_457", align 1 + %"$$_literal_cost_p2_457_459" = bitcast [33 x i8]* %"$_literal_cost_p2_457" to i8* + %"$_literal_cost_call_460" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Bystr33_74", i8* %"$$_literal_cost_p2_457_459") + %"$gasadd_461" = add i64 %"$_literal_cost_call_460", 0 + %"$gasdivceil_462" = urem i64 %"$gasadd_461", 960 + %"$gasdivceil_463" = udiv i64 %"$gasadd_461", 960 + %"$gasdivceil_464" = icmp eq i64 %"$gasdivceil_462", 0 + %"$gasdivceil_465" = add i64 %"$gasdivceil_463", 1 + %"$gasdivceil_466" = select i1 %"$gasdivceil_464", i64 %"$gasdivceil_463", i64 %"$gasdivceil_465" + %"$gasrem_467" = load i64, i64* @_gasrem, align 8 + %"$gascmp_468" = icmp ugt i64 %"$gasdivceil_466", %"$gasrem_467" + br i1 %"$gascmp_468", label %"$out_of_gas_469", label %"$have_gas_470" + +"$out_of_gas_469": ; preds = %"$have_gas_455" + call void @_out_of_gas() + br label %"$have_gas_470" + +"$have_gas_470": ; preds = %"$out_of_gas_469", %"$have_gas_455" + %"$consume_471" = sub i64 %"$gasrem_467", %"$gasdivceil_466" + store i64 %"$consume_471", i64* @_gasrem, align 8 + %"$execptr_load_472" = load i8*, i8** @_execptr, align 8 + %"$schnorr_get_address_p2_473" = alloca [33 x i8], align 1 + %"$p2_474" = load [33 x i8], [33 x i8]* %p2, align 1 + store [33 x i8] %"$p2_474", [33 x i8]* %"$schnorr_get_address_p2_473", align 1 + %"$schnorr_get_address_call_475" = call [20 x i8]* @_schnorr_get_address(i8* %"$execptr_load_472", [33 x i8]* %"$schnorr_get_address_p2_473"), !dbg !94 + %"$schnorr_get_address_477" = load [20 x i8], [20 x i8]* %"$schnorr_get_address_call_475", align 1 + store [20 x i8] %"$schnorr_get_address_477", [20 x i8]* %a2_gen, align 1, !dbg !94 + %"$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" + +"$out_of_gas_480": ; preds = %"$have_gas_470" + call void @_out_of_gas() + br label %"$have_gas_481" + +"$have_gas_481": ; preds = %"$out_of_gas_480", %"$have_gas_470" + %"$consume_482" = sub i64 %"$gasrem_478", 1 + store i64 %"$consume_482", i64* @_gasrem, align 8 %r2 = alloca %TName_Bool*, align 8 - %"$gasrem_475" = load i64, i64* @_gasrem, align 8 - %"$gascmp_476" = icmp ugt i64 20, %"$gasrem_475" - br i1 %"$gascmp_476", label %"$out_of_gas_477", label %"$have_gas_478" - -"$out_of_gas_477": ; preds = %"$have_gas_473" - call void @_out_of_gas() - br label %"$have_gas_478" - -"$have_gas_478": ; preds = %"$out_of_gas_477", %"$have_gas_473" - %"$consume_479" = sub i64 %"$gasrem_475", 20 - store i64 %"$consume_479", i64* @_gasrem, align 8 - %"$execptr_load_480" = load i8*, i8** @_execptr, align 8 - %"$eq_a2_481" = alloca [20 x i8], align 1 - %"$a2_482" = load [20 x i8], [20 x i8]* %a2, align 1 - store [20 x i8] %"$a2_482", [20 x i8]* %"$eq_a2_481", align 1 - %"$$eq_a2_481_483" = bitcast [20 x i8]* %"$eq_a2_481" to i8* - %"$eq_a2_gen_484" = alloca [20 x i8], align 1 - %"$a2_gen_485" = load [20 x i8], [20 x i8]* %a2_gen, align 1 - store [20 x i8] %"$a2_gen_485", [20 x i8]* %"$eq_a2_gen_484", align 1 - %"$$eq_a2_gen_484_486" = bitcast [20 x i8]* %"$eq_a2_gen_484" to i8* - %"$eq_call_487" = call %TName_Bool* @_eq_ByStrX(i8* %"$execptr_load_480", i32 20, i8* %"$$eq_a2_481_483", i8* %"$$eq_a2_gen_484_486"), !dbg !49 - store %TName_Bool* %"$eq_call_487", %TName_Bool** %r2, align 8, !dbg !49 - %"$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 = %"$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", 1 - store i64 %"$consume_493", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %r2, metadata !95, metadata !DIExpression()), !dbg !96 + %"$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_481" + call void @_out_of_gas() + br label %"$have_gas_486" + +"$have_gas_486": ; preds = %"$out_of_gas_485", %"$have_gas_481" + %"$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_a2_489" = alloca [20 x i8], align 1 + %"$a2_490" = load [20 x i8], [20 x i8]* %a2, align 1 + store [20 x i8] %"$a2_490", [20 x i8]* %"$eq_a2_489", align 1 + %"$$eq_a2_489_491" = bitcast [20 x i8]* %"$eq_a2_489" to i8* + %"$eq_a2_gen_492" = alloca [20 x i8], align 1 + %"$a2_gen_493" = load [20 x i8], [20 x i8]* %a2_gen, align 1 + store [20 x i8] %"$a2_gen_493", [20 x i8]* %"$eq_a2_gen_492", align 1 + %"$$eq_a2_gen_492_494" = bitcast [20 x i8]* %"$eq_a2_gen_492" to i8* + %"$eq_call_495" = call %TName_Bool* @_eq_ByStrX(i8* %"$execptr_load_488", i32 20, i8* %"$$eq_a2_489_491", i8* %"$$eq_a2_gen_492_494"), !dbg !97 + store %TName_Bool* %"$eq_call_495", %TName_Bool** %r2, align 8, !dbg !97 + %"$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_499": ; preds = %"$have_gas_486" + call void @_out_of_gas() + br label %"$have_gas_500" + +"$have_gas_500": ; preds = %"$out_of_gas_499", %"$have_gas_486" + %"$consume_501" = sub i64 %"$gasrem_497", 1 + store i64 %"$consume_501", i64* @_gasrem, align 8 %p3 = alloca [33 x i8], align 1 - %"$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" + call void @llvm.dbg.declare(metadata [33 x i8]* %p3, metadata !98, metadata !DIExpression()), !dbg !99 + %"$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_496": ; preds = %"$have_gas_492" +"$out_of_gas_504": ; preds = %"$have_gas_500" call void @_out_of_gas() - br label %"$have_gas_497" + br label %"$have_gas_505" -"$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 - store [33 x i8] c"\02\FAzP\1F2<\C5>\07\0C\0A\94Sp6\86y\E7W)`\EC$\D8\A08~\F3\B5\0A\22\85", [33 x i8]* %p3, align 1, !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" +"$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 [33 x i8] c"\02\FAzP\1F2<\C5>\07\0C\0A\94Sp6\86y\E7W)`\EC$\D8\A08~\F3\B5\0A\22\85", [33 x i8]* %p3, align 1, !dbg !100 + %"$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_501": ; preds = %"$have_gas_497" +"$out_of_gas_509": ; preds = %"$have_gas_505" call void @_out_of_gas() - br label %"$have_gas_502" + br label %"$have_gas_510" -"$have_gas_502": ; preds = %"$out_of_gas_501", %"$have_gas_497" - %"$consume_503" = sub i64 %"$gasrem_499", 1 - store i64 %"$consume_503", i64* @_gasrem, align 8 +"$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 %a3 = alloca [20 x i8], align 1 - %"$gasrem_504" = load i64, i64* @_gasrem, align 8 - %"$gascmp_505" = icmp ugt i64 1, %"$gasrem_504" - br i1 %"$gascmp_505", label %"$out_of_gas_506", label %"$have_gas_507" + call void @llvm.dbg.declare(metadata [20 x i8]* %a3, metadata !101, metadata !DIExpression()), !dbg !102 + %"$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_506": ; preds = %"$have_gas_502" +"$out_of_gas_514": ; preds = %"$have_gas_510" call void @_out_of_gas() - br label %"$have_gas_507" + br label %"$have_gas_515" -"$have_gas_507": ; preds = %"$out_of_gas_506", %"$have_gas_502" - %"$consume_508" = sub i64 %"$gasrem_504", 1 - store i64 %"$consume_508", i64* @_gasrem, align 8 - store [20 x i8] c"\DE\D0/\D9y\FC.U\C0$;\D2\F5-\F0\22\C4\0A\DA\1E", [20 x i8]* %a3, align 1, !dbg !51 - %"$gasrem_509" = load i64, i64* @_gasrem, align 8 - %"$gascmp_510" = icmp ugt i64 1, %"$gasrem_509" - br i1 %"$gascmp_510", label %"$out_of_gas_511", label %"$have_gas_512" +"$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 [20 x i8] c"\DE\D0/\D9y\FC.U\C0$;\D2\F5-\F0\22\C4\0A\DA\1E", [20 x i8]* %a3, align 1, !dbg !103 + %"$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_511": ; preds = %"$have_gas_507" +"$out_of_gas_519": ; preds = %"$have_gas_515" call void @_out_of_gas() - br label %"$have_gas_512" + br label %"$have_gas_520" -"$have_gas_512": ; preds = %"$out_of_gas_511", %"$have_gas_507" - %"$consume_513" = sub i64 %"$gasrem_509", 1 - store i64 %"$consume_513", i64* @_gasrem, align 8 +"$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 %a3_gen = alloca [20 x i8], align 1 - %"$_literal_cost_p3_514" = alloca [33 x i8], align 1 - %"$p3_515" = load [33 x i8], [33 x i8]* %p3, align 1 - store [33 x i8] %"$p3_515", [33 x i8]* %"$_literal_cost_p3_514", align 1 - %"$$_literal_cost_p3_514_516" = bitcast [33 x i8]* %"$_literal_cost_p3_514" to i8* - %"$_literal_cost_call_517" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Bystr33_74", i8* %"$$_literal_cost_p3_514_516") - %"$gasadd_518" = add i64 %"$_literal_cost_call_517", 0 - %"$gasdivceil_519" = urem i64 %"$gasadd_518", 960 - %"$gasdivceil_520" = udiv i64 %"$gasadd_518", 960 - %"$gasdivceil_521" = icmp eq i64 %"$gasdivceil_519", 0 - %"$gasdivceil_522" = add i64 %"$gasdivceil_520", 1 - %"$gasdivceil_523" = select i1 %"$gasdivceil_521", i64 %"$gasdivceil_520", i64 %"$gasdivceil_522" - %"$gasrem_524" = load i64, i64* @_gasrem, align 8 - %"$gascmp_525" = icmp ugt i64 %"$gasdivceil_523", %"$gasrem_524" - br i1 %"$gascmp_525", label %"$out_of_gas_526", label %"$have_gas_527" - -"$out_of_gas_526": ; preds = %"$have_gas_512" - call void @_out_of_gas() - br label %"$have_gas_527" - -"$have_gas_527": ; preds = %"$out_of_gas_526", %"$have_gas_512" - %"$consume_528" = sub i64 %"$gasrem_524", %"$gasdivceil_523" - store i64 %"$consume_528", i64* @_gasrem, align 8 - %"$execptr_load_529" = load i8*, i8** @_execptr, align 8 - %"$schnorr_get_address_p3_530" = alloca [33 x i8], align 1 - %"$p3_531" = load [33 x i8], [33 x i8]* %p3, align 1 - store [33 x i8] %"$p3_531", [33 x i8]* %"$schnorr_get_address_p3_530", align 1 - %"$schnorr_get_address_call_532" = call [20 x i8]* @_schnorr_get_address(i8* %"$execptr_load_529", [33 x i8]* %"$schnorr_get_address_p3_530"), !dbg !52 - %"$schnorr_get_address_534" = load [20 x i8], [20 x i8]* %"$schnorr_get_address_call_532", align 1 - store [20 x i8] %"$schnorr_get_address_534", [20 x i8]* %a3_gen, align 1, !dbg !52 - %"$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_537": ; preds = %"$have_gas_527" - call void @_out_of_gas() - br label %"$have_gas_538" - -"$have_gas_538": ; preds = %"$out_of_gas_537", %"$have_gas_527" - %"$consume_539" = sub i64 %"$gasrem_535", 1 - store i64 %"$consume_539", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata [20 x i8]* %a3_gen, metadata !104, metadata !DIExpression()), !dbg !105 + %"$_literal_cost_p3_522" = alloca [33 x i8], align 1 + %"$p3_523" = load [33 x i8], [33 x i8]* %p3, align 1 + store [33 x i8] %"$p3_523", [33 x i8]* %"$_literal_cost_p3_522", align 1 + %"$$_literal_cost_p3_522_524" = bitcast [33 x i8]* %"$_literal_cost_p3_522" to i8* + %"$_literal_cost_call_525" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Bystr33_74", i8* %"$$_literal_cost_p3_522_524") + %"$gasadd_526" = add i64 %"$_literal_cost_call_525", 0 + %"$gasdivceil_527" = urem i64 %"$gasadd_526", 960 + %"$gasdivceil_528" = udiv i64 %"$gasadd_526", 960 + %"$gasdivceil_529" = icmp eq i64 %"$gasdivceil_527", 0 + %"$gasdivceil_530" = add i64 %"$gasdivceil_528", 1 + %"$gasdivceil_531" = select i1 %"$gasdivceil_529", i64 %"$gasdivceil_528", i64 %"$gasdivceil_530" + %"$gasrem_532" = load i64, i64* @_gasrem, align 8 + %"$gascmp_533" = icmp ugt i64 %"$gasdivceil_531", %"$gasrem_532" + br i1 %"$gascmp_533", label %"$out_of_gas_534", label %"$have_gas_535" + +"$out_of_gas_534": ; preds = %"$have_gas_520" + call void @_out_of_gas() + br label %"$have_gas_535" + +"$have_gas_535": ; preds = %"$out_of_gas_534", %"$have_gas_520" + %"$consume_536" = sub i64 %"$gasrem_532", %"$gasdivceil_531" + store i64 %"$consume_536", i64* @_gasrem, align 8 + %"$execptr_load_537" = load i8*, i8** @_execptr, align 8 + %"$schnorr_get_address_p3_538" = alloca [33 x i8], align 1 + %"$p3_539" = load [33 x i8], [33 x i8]* %p3, align 1 + store [33 x i8] %"$p3_539", [33 x i8]* %"$schnorr_get_address_p3_538", align 1 + %"$schnorr_get_address_call_540" = call [20 x i8]* @_schnorr_get_address(i8* %"$execptr_load_537", [33 x i8]* %"$schnorr_get_address_p3_538"), !dbg !106 + %"$schnorr_get_address_542" = load [20 x i8], [20 x i8]* %"$schnorr_get_address_call_540", align 1 + store [20 x i8] %"$schnorr_get_address_542", [20 x i8]* %a3_gen, align 1, !dbg !106 + %"$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_535" + call void @_out_of_gas() + br label %"$have_gas_546" + +"$have_gas_546": ; preds = %"$out_of_gas_545", %"$have_gas_535" + %"$consume_547" = sub i64 %"$gasrem_543", 1 + store i64 %"$consume_547", i64* @_gasrem, align 8 %r3 = alloca %TName_Bool*, align 8 - %"$gasrem_540" = load i64, i64* @_gasrem, align 8 - %"$gascmp_541" = icmp ugt i64 20, %"$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", 20 - store i64 %"$consume_544", i64* @_gasrem, align 8 - %"$execptr_load_545" = load i8*, i8** @_execptr, align 8 - %"$eq_a3_546" = alloca [20 x i8], align 1 - %"$a3_547" = load [20 x i8], [20 x i8]* %a3, align 1 - store [20 x i8] %"$a3_547", [20 x i8]* %"$eq_a3_546", align 1 - %"$$eq_a3_546_548" = bitcast [20 x i8]* %"$eq_a3_546" to i8* - %"$eq_a3_gen_549" = alloca [20 x i8], align 1 - %"$a3_gen_550" = load [20 x i8], [20 x i8]* %a3_gen, align 1 - store [20 x i8] %"$a3_gen_550", [20 x i8]* %"$eq_a3_gen_549", align 1 - %"$$eq_a3_gen_549_551" = bitcast [20 x i8]* %"$eq_a3_gen_549" to i8* - %"$eq_call_552" = call %TName_Bool* @_eq_ByStrX(i8* %"$execptr_load_545", i32 20, i8* %"$$eq_a3_546_548", i8* %"$$eq_a3_gen_549_551"), !dbg !53 - store %TName_Bool* %"$eq_call_552", %TName_Bool** %r3, align 8, !dbg !53 - %"$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_543" - call void @_out_of_gas() - br label %"$have_gas_557" - -"$have_gas_557": ; preds = %"$out_of_gas_556", %"$have_gas_543" - %"$consume_558" = sub i64 %"$gasrem_554", 1 - store i64 %"$consume_558", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %r3, metadata !107, metadata !DIExpression()), !dbg !108 + %"$gasrem_548" = load i64, i64* @_gasrem, align 8 + %"$gascmp_549" = icmp ugt i64 20, %"$gasrem_548" + br i1 %"$gascmp_549", label %"$out_of_gas_550", label %"$have_gas_551" + +"$out_of_gas_550": ; preds = %"$have_gas_546" + call void @_out_of_gas() + br label %"$have_gas_551" + +"$have_gas_551": ; preds = %"$out_of_gas_550", %"$have_gas_546" + %"$consume_552" = sub i64 %"$gasrem_548", 20 + store i64 %"$consume_552", i64* @_gasrem, align 8 + %"$execptr_load_553" = load i8*, i8** @_execptr, align 8 + %"$eq_a3_554" = alloca [20 x i8], align 1 + %"$a3_555" = load [20 x i8], [20 x i8]* %a3, align 1 + store [20 x i8] %"$a3_555", [20 x i8]* %"$eq_a3_554", align 1 + %"$$eq_a3_554_556" = bitcast [20 x i8]* %"$eq_a3_554" to i8* + %"$eq_a3_gen_557" = alloca [20 x i8], align 1 + %"$a3_gen_558" = load [20 x i8], [20 x i8]* %a3_gen, align 1 + store [20 x i8] %"$a3_gen_558", [20 x i8]* %"$eq_a3_gen_557", align 1 + %"$$eq_a3_gen_557_559" = bitcast [20 x i8]* %"$eq_a3_gen_557" to i8* + %"$eq_call_560" = call %TName_Bool* @_eq_ByStrX(i8* %"$execptr_load_553", i32 20, i8* %"$$eq_a3_554_556", i8* %"$$eq_a3_gen_557_559"), !dbg !109 + store %TName_Bool* %"$eq_call_560", %TName_Bool** %r3, align 8, !dbg !109 + %"$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_564": ; preds = %"$have_gas_551" + call void @_out_of_gas() + br label %"$have_gas_565" + +"$have_gas_565": ; preds = %"$out_of_gas_564", %"$have_gas_551" + %"$consume_566" = sub i64 %"$gasrem_562", 1 + store i64 %"$consume_566", i64* @_gasrem, align 8 %p4 = alloca [33 x i8], align 1 - %"$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" + call void @llvm.dbg.declare(metadata [33 x i8]* %p4, metadata !110, metadata !DIExpression()), !dbg !111 + %"$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_561": ; preds = %"$have_gas_557" +"$out_of_gas_569": ; preds = %"$have_gas_565" call void @_out_of_gas() - br label %"$have_gas_562" + br label %"$have_gas_570" -"$have_gas_562": ; preds = %"$out_of_gas_561", %"$have_gas_557" - %"$consume_563" = sub i64 %"$gasrem_559", 1 - store i64 %"$consume_563", i64* @_gasrem, align 8 - store [33 x i8] c"\03o\86v\E4s\AF \B4\CC\E7\D3'\10=\E4PJ\9C\00\EA\E7\EA\03\D0\A3e\FBH\81z\C9\7F", [33 x i8]* %p4, align 1, !dbg !54 - %"$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" +"$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 [33 x i8] c"\03o\86v\E4s\AF \B4\CC\E7\D3'\10=\E4PJ\9C\00\EA\E7\EA\03\D0\A3e\FBH\81z\C9\7F", [33 x i8]* %p4, align 1, !dbg !112 + %"$gasrem_572" = load i64, i64* @_gasrem, align 8 + %"$gascmp_573" = icmp ugt i64 1, %"$gasrem_572" + br i1 %"$gascmp_573", label %"$out_of_gas_574", label %"$have_gas_575" -"$out_of_gas_566": ; preds = %"$have_gas_562" +"$out_of_gas_574": ; preds = %"$have_gas_570" call void @_out_of_gas() - br label %"$have_gas_567" + br label %"$have_gas_575" -"$have_gas_567": ; preds = %"$out_of_gas_566", %"$have_gas_562" - %"$consume_568" = sub i64 %"$gasrem_564", 1 - store i64 %"$consume_568", i64* @_gasrem, align 8 +"$have_gas_575": ; preds = %"$out_of_gas_574", %"$have_gas_570" + %"$consume_576" = sub i64 %"$gasrem_572", 1 + store i64 %"$consume_576", i64* @_gasrem, align 8 %a4 = alloca [20 x i8], align 1 - %"$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" + call void @llvm.dbg.declare(metadata [20 x i8]* %a4, metadata !113, metadata !DIExpression()), !dbg !114 + %"$gasrem_577" = load i64, i64* @_gasrem, align 8 + %"$gascmp_578" = icmp ugt i64 1, %"$gasrem_577" + br i1 %"$gascmp_578", label %"$out_of_gas_579", label %"$have_gas_580" -"$out_of_gas_571": ; preds = %"$have_gas_567" +"$out_of_gas_579": ; preds = %"$have_gas_575" call void @_out_of_gas() - br label %"$have_gas_572" + br label %"$have_gas_580" -"$have_gas_572": ; preds = %"$out_of_gas_571", %"$have_gas_567" - %"$consume_573" = sub i64 %"$gasrem_569", 1 - store i64 %"$consume_573", i64* @_gasrem, align 8 - store [20 x i8] c"\13\F0n`){\EAj<@/od\C4\16\A6\B3\1EXn", [20 x i8]* %a4, align 1, !dbg !55 - %"$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" +"$have_gas_580": ; preds = %"$out_of_gas_579", %"$have_gas_575" + %"$consume_581" = sub i64 %"$gasrem_577", 1 + store i64 %"$consume_581", i64* @_gasrem, align 8 + store [20 x i8] c"\13\F0n`){\EAj<@/od\C4\16\A6\B3\1EXn", [20 x i8]* %a4, align 1, !dbg !115 + %"$gasrem_582" = load i64, i64* @_gasrem, align 8 + %"$gascmp_583" = icmp ugt i64 1, %"$gasrem_582" + br i1 %"$gascmp_583", label %"$out_of_gas_584", label %"$have_gas_585" -"$out_of_gas_576": ; preds = %"$have_gas_572" +"$out_of_gas_584": ; preds = %"$have_gas_580" call void @_out_of_gas() - br label %"$have_gas_577" + br label %"$have_gas_585" -"$have_gas_577": ; preds = %"$out_of_gas_576", %"$have_gas_572" - %"$consume_578" = sub i64 %"$gasrem_574", 1 - store i64 %"$consume_578", i64* @_gasrem, align 8 +"$have_gas_585": ; preds = %"$out_of_gas_584", %"$have_gas_580" + %"$consume_586" = sub i64 %"$gasrem_582", 1 + store i64 %"$consume_586", i64* @_gasrem, align 8 %a4_gen = alloca [20 x i8], align 1 - %"$_literal_cost_p4_579" = alloca [33 x i8], align 1 - %"$p4_580" = load [33 x i8], [33 x i8]* %p4, align 1 - store [33 x i8] %"$p4_580", [33 x i8]* %"$_literal_cost_p4_579", align 1 - %"$$_literal_cost_p4_579_581" = bitcast [33 x i8]* %"$_literal_cost_p4_579" to i8* - %"$_literal_cost_call_582" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Bystr33_74", i8* %"$$_literal_cost_p4_579_581") - %"$gasadd_583" = add i64 %"$_literal_cost_call_582", 0 - %"$gasdivceil_584" = urem i64 %"$gasadd_583", 960 - %"$gasdivceil_585" = udiv i64 %"$gasadd_583", 960 - %"$gasdivceil_586" = icmp eq i64 %"$gasdivceil_584", 0 - %"$gasdivceil_587" = add i64 %"$gasdivceil_585", 1 - %"$gasdivceil_588" = select i1 %"$gasdivceil_586", i64 %"$gasdivceil_585", i64 %"$gasdivceil_587" - %"$gasrem_589" = load i64, i64* @_gasrem, align 8 - %"$gascmp_590" = icmp ugt i64 %"$gasdivceil_588", %"$gasrem_589" - br i1 %"$gascmp_590", label %"$out_of_gas_591", label %"$have_gas_592" - -"$out_of_gas_591": ; preds = %"$have_gas_577" - call void @_out_of_gas() - br label %"$have_gas_592" - -"$have_gas_592": ; preds = %"$out_of_gas_591", %"$have_gas_577" - %"$consume_593" = sub i64 %"$gasrem_589", %"$gasdivceil_588" - store i64 %"$consume_593", i64* @_gasrem, align 8 - %"$execptr_load_594" = load i8*, i8** @_execptr, align 8 - %"$schnorr_get_address_p4_595" = alloca [33 x i8], align 1 - %"$p4_596" = load [33 x i8], [33 x i8]* %p4, align 1 - store [33 x i8] %"$p4_596", [33 x i8]* %"$schnorr_get_address_p4_595", align 1 - %"$schnorr_get_address_call_597" = call [20 x i8]* @_schnorr_get_address(i8* %"$execptr_load_594", [33 x i8]* %"$schnorr_get_address_p4_595"), !dbg !56 - %"$schnorr_get_address_599" = load [20 x i8], [20 x i8]* %"$schnorr_get_address_call_597", align 1 - store [20 x i8] %"$schnorr_get_address_599", [20 x i8]* %a4_gen, align 1, !dbg !56 - %"$gasrem_600" = load i64, i64* @_gasrem, align 8 - %"$gascmp_601" = icmp ugt i64 1, %"$gasrem_600" - br i1 %"$gascmp_601", label %"$out_of_gas_602", label %"$have_gas_603" - -"$out_of_gas_602": ; preds = %"$have_gas_592" - call void @_out_of_gas() - br label %"$have_gas_603" - -"$have_gas_603": ; preds = %"$out_of_gas_602", %"$have_gas_592" - %"$consume_604" = sub i64 %"$gasrem_600", 1 - store i64 %"$consume_604", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata [20 x i8]* %a4_gen, metadata !116, metadata !DIExpression()), !dbg !117 + %"$_literal_cost_p4_587" = alloca [33 x i8], align 1 + %"$p4_588" = load [33 x i8], [33 x i8]* %p4, align 1 + store [33 x i8] %"$p4_588", [33 x i8]* %"$_literal_cost_p4_587", align 1 + %"$$_literal_cost_p4_587_589" = bitcast [33 x i8]* %"$_literal_cost_p4_587" to i8* + %"$_literal_cost_call_590" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Bystr33_74", i8* %"$$_literal_cost_p4_587_589") + %"$gasadd_591" = add i64 %"$_literal_cost_call_590", 0 + %"$gasdivceil_592" = urem i64 %"$gasadd_591", 960 + %"$gasdivceil_593" = udiv i64 %"$gasadd_591", 960 + %"$gasdivceil_594" = icmp eq i64 %"$gasdivceil_592", 0 + %"$gasdivceil_595" = add i64 %"$gasdivceil_593", 1 + %"$gasdivceil_596" = select i1 %"$gasdivceil_594", i64 %"$gasdivceil_593", i64 %"$gasdivceil_595" + %"$gasrem_597" = load i64, i64* @_gasrem, align 8 + %"$gascmp_598" = icmp ugt i64 %"$gasdivceil_596", %"$gasrem_597" + br i1 %"$gascmp_598", label %"$out_of_gas_599", label %"$have_gas_600" + +"$out_of_gas_599": ; preds = %"$have_gas_585" + call void @_out_of_gas() + br label %"$have_gas_600" + +"$have_gas_600": ; preds = %"$out_of_gas_599", %"$have_gas_585" + %"$consume_601" = sub i64 %"$gasrem_597", %"$gasdivceil_596" + store i64 %"$consume_601", i64* @_gasrem, align 8 + %"$execptr_load_602" = load i8*, i8** @_execptr, align 8 + %"$schnorr_get_address_p4_603" = alloca [33 x i8], align 1 + %"$p4_604" = load [33 x i8], [33 x i8]* %p4, align 1 + store [33 x i8] %"$p4_604", [33 x i8]* %"$schnorr_get_address_p4_603", align 1 + %"$schnorr_get_address_call_605" = call [20 x i8]* @_schnorr_get_address(i8* %"$execptr_load_602", [33 x i8]* %"$schnorr_get_address_p4_603"), !dbg !118 + %"$schnorr_get_address_607" = load [20 x i8], [20 x i8]* %"$schnorr_get_address_call_605", align 1 + store [20 x i8] %"$schnorr_get_address_607", [20 x i8]* %a4_gen, align 1, !dbg !118 + %"$gasrem_608" = load i64, i64* @_gasrem, align 8 + %"$gascmp_609" = icmp ugt i64 1, %"$gasrem_608" + br i1 %"$gascmp_609", label %"$out_of_gas_610", label %"$have_gas_611" + +"$out_of_gas_610": ; preds = %"$have_gas_600" + call void @_out_of_gas() + br label %"$have_gas_611" + +"$have_gas_611": ; preds = %"$out_of_gas_610", %"$have_gas_600" + %"$consume_612" = sub i64 %"$gasrem_608", 1 + store i64 %"$consume_612", i64* @_gasrem, align 8 %r4 = alloca %TName_Bool*, align 8 - %"$gasrem_605" = load i64, i64* @_gasrem, align 8 - %"$gascmp_606" = icmp ugt i64 20, %"$gasrem_605" - br i1 %"$gascmp_606", label %"$out_of_gas_607", label %"$have_gas_608" - -"$out_of_gas_607": ; preds = %"$have_gas_603" - call void @_out_of_gas() - br label %"$have_gas_608" - -"$have_gas_608": ; preds = %"$out_of_gas_607", %"$have_gas_603" - %"$consume_609" = sub i64 %"$gasrem_605", 20 - store i64 %"$consume_609", i64* @_gasrem, align 8 - %"$execptr_load_610" = load i8*, i8** @_execptr, align 8 - %"$eq_a4_611" = alloca [20 x i8], align 1 - %"$a4_612" = load [20 x i8], [20 x i8]* %a4, align 1 - store [20 x i8] %"$a4_612", [20 x i8]* %"$eq_a4_611", align 1 - %"$$eq_a4_611_613" = bitcast [20 x i8]* %"$eq_a4_611" to i8* - %"$eq_a4_gen_614" = alloca [20 x i8], align 1 - %"$a4_gen_615" = load [20 x i8], [20 x i8]* %a4_gen, align 1 - store [20 x i8] %"$a4_gen_615", [20 x i8]* %"$eq_a4_gen_614", align 1 - %"$$eq_a4_gen_614_616" = bitcast [20 x i8]* %"$eq_a4_gen_614" to i8* - %"$eq_call_617" = call %TName_Bool* @_eq_ByStrX(i8* %"$execptr_load_610", i32 20, i8* %"$$eq_a4_611_613", i8* %"$$eq_a4_gen_614_616"), !dbg !57 - store %TName_Bool* %"$eq_call_617", %TName_Bool** %r4, align 8, !dbg !57 - %"$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" - -"$out_of_gas_621": ; preds = %"$have_gas_608" - call void @_out_of_gas() - br label %"$have_gas_622" - -"$have_gas_622": ; preds = %"$out_of_gas_621", %"$have_gas_608" - %"$consume_623" = sub i64 %"$gasrem_619", 1 - store i64 %"$consume_623", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %r4, metadata !119, metadata !DIExpression()), !dbg !120 + %"$gasrem_613" = load i64, i64* @_gasrem, align 8 + %"$gascmp_614" = icmp ugt i64 20, %"$gasrem_613" + br i1 %"$gascmp_614", label %"$out_of_gas_615", label %"$have_gas_616" + +"$out_of_gas_615": ; preds = %"$have_gas_611" + call void @_out_of_gas() + br label %"$have_gas_616" + +"$have_gas_616": ; preds = %"$out_of_gas_615", %"$have_gas_611" + %"$consume_617" = sub i64 %"$gasrem_613", 20 + store i64 %"$consume_617", i64* @_gasrem, align 8 + %"$execptr_load_618" = load i8*, i8** @_execptr, align 8 + %"$eq_a4_619" = alloca [20 x i8], align 1 + %"$a4_620" = load [20 x i8], [20 x i8]* %a4, align 1 + store [20 x i8] %"$a4_620", [20 x i8]* %"$eq_a4_619", align 1 + %"$$eq_a4_619_621" = bitcast [20 x i8]* %"$eq_a4_619" to i8* + %"$eq_a4_gen_622" = alloca [20 x i8], align 1 + %"$a4_gen_623" = load [20 x i8], [20 x i8]* %a4_gen, align 1 + store [20 x i8] %"$a4_gen_623", [20 x i8]* %"$eq_a4_gen_622", align 1 + %"$$eq_a4_gen_622_624" = bitcast [20 x i8]* %"$eq_a4_gen_622" to i8* + %"$eq_call_625" = call %TName_Bool* @_eq_ByStrX(i8* %"$execptr_load_618", i32 20, i8* %"$$eq_a4_619_621", i8* %"$$eq_a4_gen_622_624"), !dbg !121 + store %TName_Bool* %"$eq_call_625", %TName_Bool** %r4, align 8, !dbg !121 + %"$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_629": ; preds = %"$have_gas_616" + call void @_out_of_gas() + br label %"$have_gas_630" + +"$have_gas_630": ; preds = %"$out_of_gas_629", %"$have_gas_616" + %"$consume_631" = sub i64 %"$gasrem_627", 1 + store i64 %"$consume_631", i64* @_gasrem, align 8 %p5 = alloca [33 x i8], align 1 - %"$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" + call void @llvm.dbg.declare(metadata [33 x i8]* %p5, metadata !122, metadata !DIExpression()), !dbg !123 + %"$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_626": ; preds = %"$have_gas_622" +"$out_of_gas_634": ; preds = %"$have_gas_630" call void @_out_of_gas() - br label %"$have_gas_627" + br label %"$have_gas_635" -"$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 - store [33 x i8] c"\03L965)\C2\D4\07\8Fr\B8\C4\98\C4\CB\C5\BA^\10\D8fo\E0o\10J'\E0\E4BB\A0", [33 x i8]* %p5, align 1, !dbg !58 - %"$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" +"$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 + store [33 x i8] c"\03L965)\C2\D4\07\8Fr\B8\C4\98\C4\CB\C5\BA^\10\D8fo\E0o\10J'\E0\E4BB\A0", [33 x i8]* %p5, align 1, !dbg !124 + %"$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_631": ; preds = %"$have_gas_627" +"$out_of_gas_639": ; preds = %"$have_gas_635" call void @_out_of_gas() - br label %"$have_gas_632" + br label %"$have_gas_640" -"$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_640": ; preds = %"$out_of_gas_639", %"$have_gas_635" + %"$consume_641" = sub i64 %"$gasrem_637", 1 + store i64 %"$consume_641", i64* @_gasrem, align 8 %a5 = alloca [20 x i8], align 1 - %"$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" + call void @llvm.dbg.declare(metadata [20 x i8]* %a5, metadata !125, metadata !DIExpression()), !dbg !126 + %"$gasrem_642" = load i64, i64* @_gasrem, align 8 + %"$gascmp_643" = icmp ugt i64 1, %"$gasrem_642" + br i1 %"$gascmp_643", label %"$out_of_gas_644", label %"$have_gas_645" -"$out_of_gas_636": ; preds = %"$have_gas_632" +"$out_of_gas_644": ; preds = %"$have_gas_640" call void @_out_of_gas() - br label %"$have_gas_637" + br label %"$have_gas_645" -"$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 - store [20 x i8] c"\1A\90\C2S\07\C3\CCq\95\8A\83\FA!:#b\D8Y\CF3", [20 x i8]* %a5, align 1, !dbg !59 - %"$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" +"$have_gas_645": ; preds = %"$out_of_gas_644", %"$have_gas_640" + %"$consume_646" = sub i64 %"$gasrem_642", 1 + store i64 %"$consume_646", i64* @_gasrem, align 8 + store [20 x i8] c"\1A\90\C2S\07\C3\CCq\95\8A\83\FA!:#b\D8Y\CF3", [20 x i8]* %a5, align 1, !dbg !127 + %"$gasrem_647" = load i64, i64* @_gasrem, align 8 + %"$gascmp_648" = icmp ugt i64 1, %"$gasrem_647" + br i1 %"$gascmp_648", label %"$out_of_gas_649", label %"$have_gas_650" -"$out_of_gas_641": ; preds = %"$have_gas_637" +"$out_of_gas_649": ; preds = %"$have_gas_645" call void @_out_of_gas() - br label %"$have_gas_642" + br label %"$have_gas_650" -"$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 +"$have_gas_650": ; preds = %"$out_of_gas_649", %"$have_gas_645" + %"$consume_651" = sub i64 %"$gasrem_647", 1 + store i64 %"$consume_651", i64* @_gasrem, align 8 %a5_gen = alloca [20 x i8], align 1 - %"$_literal_cost_p5_644" = alloca [33 x i8], align 1 - %"$p5_645" = load [33 x i8], [33 x i8]* %p5, align 1 - store [33 x i8] %"$p5_645", [33 x i8]* %"$_literal_cost_p5_644", align 1 - %"$$_literal_cost_p5_644_646" = bitcast [33 x i8]* %"$_literal_cost_p5_644" to i8* - %"$_literal_cost_call_647" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Bystr33_74", i8* %"$$_literal_cost_p5_644_646") - %"$gasadd_648" = add i64 %"$_literal_cost_call_647", 0 - %"$gasdivceil_649" = urem i64 %"$gasadd_648", 960 - %"$gasdivceil_650" = udiv i64 %"$gasadd_648", 960 - %"$gasdivceil_651" = icmp eq i64 %"$gasdivceil_649", 0 - %"$gasdivceil_652" = add i64 %"$gasdivceil_650", 1 - %"$gasdivceil_653" = select i1 %"$gasdivceil_651", i64 %"$gasdivceil_650", i64 %"$gasdivceil_652" - %"$gasrem_654" = load i64, i64* @_gasrem, align 8 - %"$gascmp_655" = icmp ugt i64 %"$gasdivceil_653", %"$gasrem_654" - br i1 %"$gascmp_655", label %"$out_of_gas_656", label %"$have_gas_657" - -"$out_of_gas_656": ; preds = %"$have_gas_642" - call void @_out_of_gas() - br label %"$have_gas_657" - -"$have_gas_657": ; preds = %"$out_of_gas_656", %"$have_gas_642" - %"$consume_658" = sub i64 %"$gasrem_654", %"$gasdivceil_653" - store i64 %"$consume_658", i64* @_gasrem, align 8 - %"$execptr_load_659" = load i8*, i8** @_execptr, align 8 - %"$schnorr_get_address_p5_660" = alloca [33 x i8], align 1 - %"$p5_661" = load [33 x i8], [33 x i8]* %p5, align 1 - store [33 x i8] %"$p5_661", [33 x i8]* %"$schnorr_get_address_p5_660", align 1 - %"$schnorr_get_address_call_662" = call [20 x i8]* @_schnorr_get_address(i8* %"$execptr_load_659", [33 x i8]* %"$schnorr_get_address_p5_660"), !dbg !60 - %"$schnorr_get_address_664" = load [20 x i8], [20 x i8]* %"$schnorr_get_address_call_662", align 1 - store [20 x i8] %"$schnorr_get_address_664", [20 x i8]* %a5_gen, align 1, !dbg !60 - %"$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_657" - call void @_out_of_gas() - br label %"$have_gas_668" - -"$have_gas_668": ; preds = %"$out_of_gas_667", %"$have_gas_657" - %"$consume_669" = sub i64 %"$gasrem_665", 1 - store i64 %"$consume_669", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata [20 x i8]* %a5_gen, metadata !128, metadata !DIExpression()), !dbg !129 + %"$_literal_cost_p5_652" = alloca [33 x i8], align 1 + %"$p5_653" = load [33 x i8], [33 x i8]* %p5, align 1 + store [33 x i8] %"$p5_653", [33 x i8]* %"$_literal_cost_p5_652", align 1 + %"$$_literal_cost_p5_652_654" = bitcast [33 x i8]* %"$_literal_cost_p5_652" to i8* + %"$_literal_cost_call_655" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Bystr33_74", i8* %"$$_literal_cost_p5_652_654") + %"$gasadd_656" = add i64 %"$_literal_cost_call_655", 0 + %"$gasdivceil_657" = urem i64 %"$gasadd_656", 960 + %"$gasdivceil_658" = udiv i64 %"$gasadd_656", 960 + %"$gasdivceil_659" = icmp eq i64 %"$gasdivceil_657", 0 + %"$gasdivceil_660" = add i64 %"$gasdivceil_658", 1 + %"$gasdivceil_661" = select i1 %"$gasdivceil_659", i64 %"$gasdivceil_658", i64 %"$gasdivceil_660" + %"$gasrem_662" = load i64, i64* @_gasrem, align 8 + %"$gascmp_663" = icmp ugt i64 %"$gasdivceil_661", %"$gasrem_662" + br i1 %"$gascmp_663", label %"$out_of_gas_664", label %"$have_gas_665" + +"$out_of_gas_664": ; preds = %"$have_gas_650" + call void @_out_of_gas() + br label %"$have_gas_665" + +"$have_gas_665": ; preds = %"$out_of_gas_664", %"$have_gas_650" + %"$consume_666" = sub i64 %"$gasrem_662", %"$gasdivceil_661" + store i64 %"$consume_666", i64* @_gasrem, align 8 + %"$execptr_load_667" = load i8*, i8** @_execptr, align 8 + %"$schnorr_get_address_p5_668" = alloca [33 x i8], align 1 + %"$p5_669" = load [33 x i8], [33 x i8]* %p5, align 1 + store [33 x i8] %"$p5_669", [33 x i8]* %"$schnorr_get_address_p5_668", align 1 + %"$schnorr_get_address_call_670" = call [20 x i8]* @_schnorr_get_address(i8* %"$execptr_load_667", [33 x i8]* %"$schnorr_get_address_p5_668"), !dbg !130 + %"$schnorr_get_address_672" = load [20 x i8], [20 x i8]* %"$schnorr_get_address_call_670", align 1 + store [20 x i8] %"$schnorr_get_address_672", [20 x i8]* %a5_gen, align 1, !dbg !130 + %"$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_665" + call void @_out_of_gas() + br label %"$have_gas_676" + +"$have_gas_676": ; preds = %"$out_of_gas_675", %"$have_gas_665" + %"$consume_677" = sub i64 %"$gasrem_673", 1 + store i64 %"$consume_677", i64* @_gasrem, align 8 %r5 = alloca %TName_Bool*, align 8 - %"$gasrem_670" = load i64, i64* @_gasrem, align 8 - %"$gascmp_671" = icmp ugt i64 20, %"$gasrem_670" - br i1 %"$gascmp_671", label %"$out_of_gas_672", label %"$have_gas_673" - -"$out_of_gas_672": ; preds = %"$have_gas_668" - call void @_out_of_gas() - br label %"$have_gas_673" - -"$have_gas_673": ; preds = %"$out_of_gas_672", %"$have_gas_668" - %"$consume_674" = sub i64 %"$gasrem_670", 20 - store i64 %"$consume_674", i64* @_gasrem, align 8 - %"$execptr_load_675" = load i8*, i8** @_execptr, align 8 - %"$eq_a5_676" = alloca [20 x i8], align 1 - %"$a5_677" = load [20 x i8], [20 x i8]* %a5, align 1 - store [20 x i8] %"$a5_677", [20 x i8]* %"$eq_a5_676", align 1 - %"$$eq_a5_676_678" = bitcast [20 x i8]* %"$eq_a5_676" to i8* - %"$eq_a5_gen_679" = alloca [20 x i8], align 1 - %"$a5_gen_680" = load [20 x i8], [20 x i8]* %a5_gen, align 1 - store [20 x i8] %"$a5_gen_680", [20 x i8]* %"$eq_a5_gen_679", align 1 - %"$$eq_a5_gen_679_681" = bitcast [20 x i8]* %"$eq_a5_gen_679" to i8* - %"$eq_call_682" = call %TName_Bool* @_eq_ByStrX(i8* %"$execptr_load_675", i32 20, i8* %"$$eq_a5_676_678", i8* %"$$eq_a5_gen_679_681"), !dbg !61 - store %TName_Bool* %"$eq_call_682", %TName_Bool** %r5, align 8, !dbg !61 - %"$gasrem_684" = load i64, i64* @_gasrem, align 8 - %"$gascmp_685" = icmp ugt i64 1, %"$gasrem_684" - br i1 %"$gascmp_685", label %"$out_of_gas_686", label %"$have_gas_687" - -"$out_of_gas_686": ; preds = %"$have_gas_673" - call void @_out_of_gas() - br label %"$have_gas_687" - -"$have_gas_687": ; preds = %"$out_of_gas_686", %"$have_gas_673" - %"$consume_688" = sub i64 %"$gasrem_684", 1 - store i64 %"$consume_688", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %r5, metadata !131, metadata !DIExpression()), !dbg !132 + %"$gasrem_678" = load i64, i64* @_gasrem, align 8 + %"$gascmp_679" = icmp ugt i64 20, %"$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", 20 + store i64 %"$consume_682", i64* @_gasrem, align 8 + %"$execptr_load_683" = load i8*, i8** @_execptr, align 8 + %"$eq_a5_684" = alloca [20 x i8], align 1 + %"$a5_685" = load [20 x i8], [20 x i8]* %a5, align 1 + store [20 x i8] %"$a5_685", [20 x i8]* %"$eq_a5_684", align 1 + %"$$eq_a5_684_686" = bitcast [20 x i8]* %"$eq_a5_684" to i8* + %"$eq_a5_gen_687" = alloca [20 x i8], align 1 + %"$a5_gen_688" = load [20 x i8], [20 x i8]* %a5_gen, align 1 + store [20 x i8] %"$a5_gen_688", [20 x i8]* %"$eq_a5_gen_687", align 1 + %"$$eq_a5_gen_687_689" = bitcast [20 x i8]* %"$eq_a5_gen_687" to i8* + %"$eq_call_690" = call %TName_Bool* @_eq_ByStrX(i8* %"$execptr_load_683", i32 20, i8* %"$$eq_a5_684_686", i8* %"$$eq_a5_gen_687_689"), !dbg !133 + store %TName_Bool* %"$eq_call_690", %TName_Bool** %r5, align 8, !dbg !133 + %"$gasrem_692" = load i64, i64* @_gasrem, align 8 + %"$gascmp_693" = icmp ugt i64 1, %"$gasrem_692" + br i1 %"$gascmp_693", label %"$out_of_gas_694", label %"$have_gas_695" + +"$out_of_gas_694": ; preds = %"$have_gas_681" + call void @_out_of_gas() + br label %"$have_gas_695" + +"$have_gas_695": ; preds = %"$out_of_gas_694", %"$have_gas_681" + %"$consume_696" = sub i64 %"$gasrem_692", 1 + store i64 %"$consume_696", i64* @_gasrem, align 8 %p6 = alloca [33 x i8], align 1 - %"$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" + call void @llvm.dbg.declare(metadata [33 x i8]* %p6, metadata !134, metadata !DIExpression()), !dbg !135 + %"$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_691": ; preds = %"$have_gas_687" +"$out_of_gas_699": ; preds = %"$have_gas_695" call void @_out_of_gas() - br label %"$have_gas_692" + br label %"$have_gas_700" -"$have_gas_692": ; preds = %"$out_of_gas_691", %"$have_gas_687" - %"$consume_693" = sub i64 %"$gasrem_689", 1 - store i64 %"$consume_693", i64* @_gasrem, align 8 - store [33 x i8] c"\02m\A5\BFl:<\91\C0\8A=\D7\FB\CE\0B\EA\F5\D46\03\9C\97\B0z\0Fa\AAK\94\93\E4g\87", [33 x i8]* %p6, align 1, !dbg !62 - %"$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" +"$have_gas_700": ; preds = %"$out_of_gas_699", %"$have_gas_695" + %"$consume_701" = sub i64 %"$gasrem_697", 1 + store i64 %"$consume_701", i64* @_gasrem, align 8 + store [33 x i8] c"\02m\A5\BFl:<\91\C0\8A=\D7\FB\CE\0B\EA\F5\D46\03\9C\97\B0z\0Fa\AAK\94\93\E4g\87", [33 x i8]* %p6, align 1, !dbg !136 + %"$gasrem_702" = load i64, i64* @_gasrem, align 8 + %"$gascmp_703" = icmp ugt i64 1, %"$gasrem_702" + br i1 %"$gascmp_703", label %"$out_of_gas_704", label %"$have_gas_705" -"$out_of_gas_696": ; preds = %"$have_gas_692" +"$out_of_gas_704": ; preds = %"$have_gas_700" call void @_out_of_gas() - br label %"$have_gas_697" + br label %"$have_gas_705" -"$have_gas_697": ; preds = %"$out_of_gas_696", %"$have_gas_692" - %"$consume_698" = sub i64 %"$gasrem_694", 1 - store i64 %"$consume_698", i64* @_gasrem, align 8 +"$have_gas_705": ; preds = %"$out_of_gas_704", %"$have_gas_700" + %"$consume_706" = sub i64 %"$gasrem_702", 1 + store i64 %"$consume_706", i64* @_gasrem, align 8 %a6 = alloca [20 x i8], align 1 - %"$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" + call void @llvm.dbg.declare(metadata [20 x i8]* %a6, metadata !137, metadata !DIExpression()), !dbg !138 + %"$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_701": ; preds = %"$have_gas_697" +"$out_of_gas_709": ; preds = %"$have_gas_705" call void @_out_of_gas() - br label %"$have_gas_702" + br label %"$have_gas_710" -"$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 - store [20 x i8] c"bZ\BA\EB\D8}\AE\9A\B1(\F3\B3\AE\99h\88\13\D9\C5\DF", [20 x i8]* %a6, align 1, !dbg !63 - %"$gasrem_704" = load i64, i64* @_gasrem, align 8 - %"$gascmp_705" = icmp ugt i64 1, %"$gasrem_704" - br i1 %"$gascmp_705", label %"$out_of_gas_706", label %"$have_gas_707" +"$have_gas_710": ; preds = %"$out_of_gas_709", %"$have_gas_705" + %"$consume_711" = sub i64 %"$gasrem_707", 1 + store i64 %"$consume_711", i64* @_gasrem, align 8 + store [20 x i8] c"bZ\BA\EB\D8}\AE\9A\B1(\F3\B3\AE\99h\88\13\D9\C5\DF", [20 x i8]* %a6, align 1, !dbg !139 + %"$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_706": ; preds = %"$have_gas_702" +"$out_of_gas_714": ; preds = %"$have_gas_710" call void @_out_of_gas() - br label %"$have_gas_707" + br label %"$have_gas_715" -"$have_gas_707": ; preds = %"$out_of_gas_706", %"$have_gas_702" - %"$consume_708" = sub i64 %"$gasrem_704", 1 - store i64 %"$consume_708", i64* @_gasrem, align 8 +"$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 %a6_gen = alloca [20 x i8], align 1 - %"$_literal_cost_p6_709" = alloca [33 x i8], align 1 - %"$p6_710" = load [33 x i8], [33 x i8]* %p6, align 1 - store [33 x i8] %"$p6_710", [33 x i8]* %"$_literal_cost_p6_709", align 1 - %"$$_literal_cost_p6_709_711" = bitcast [33 x i8]* %"$_literal_cost_p6_709" to i8* - %"$_literal_cost_call_712" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Bystr33_74", i8* %"$$_literal_cost_p6_709_711") - %"$gasadd_713" = add i64 %"$_literal_cost_call_712", 0 - %"$gasdivceil_714" = urem i64 %"$gasadd_713", 960 - %"$gasdivceil_715" = udiv i64 %"$gasadd_713", 960 - %"$gasdivceil_716" = icmp eq i64 %"$gasdivceil_714", 0 - %"$gasdivceil_717" = add i64 %"$gasdivceil_715", 1 - %"$gasdivceil_718" = select i1 %"$gasdivceil_716", i64 %"$gasdivceil_715", i64 %"$gasdivceil_717" - %"$gasrem_719" = load i64, i64* @_gasrem, align 8 - %"$gascmp_720" = icmp ugt i64 %"$gasdivceil_718", %"$gasrem_719" - br i1 %"$gascmp_720", label %"$out_of_gas_721", label %"$have_gas_722" - -"$out_of_gas_721": ; preds = %"$have_gas_707" - call void @_out_of_gas() - br label %"$have_gas_722" - -"$have_gas_722": ; preds = %"$out_of_gas_721", %"$have_gas_707" - %"$consume_723" = sub i64 %"$gasrem_719", %"$gasdivceil_718" - store i64 %"$consume_723", i64* @_gasrem, align 8 - %"$execptr_load_724" = load i8*, i8** @_execptr, align 8 - %"$schnorr_get_address_p6_725" = alloca [33 x i8], align 1 - %"$p6_726" = load [33 x i8], [33 x i8]* %p6, align 1 - store [33 x i8] %"$p6_726", [33 x i8]* %"$schnorr_get_address_p6_725", align 1 - %"$schnorr_get_address_call_727" = call [20 x i8]* @_schnorr_get_address(i8* %"$execptr_load_724", [33 x i8]* %"$schnorr_get_address_p6_725"), !dbg !64 - %"$schnorr_get_address_729" = load [20 x i8], [20 x i8]* %"$schnorr_get_address_call_727", align 1 - store [20 x i8] %"$schnorr_get_address_729", [20 x i8]* %a6_gen, align 1, !dbg !64 - %"$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_722" - call void @_out_of_gas() - br label %"$have_gas_733" - -"$have_gas_733": ; preds = %"$out_of_gas_732", %"$have_gas_722" - %"$consume_734" = sub i64 %"$gasrem_730", 1 - store i64 %"$consume_734", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata [20 x i8]* %a6_gen, metadata !140, metadata !DIExpression()), !dbg !141 + %"$_literal_cost_p6_717" = alloca [33 x i8], align 1 + %"$p6_718" = load [33 x i8], [33 x i8]* %p6, align 1 + store [33 x i8] %"$p6_718", [33 x i8]* %"$_literal_cost_p6_717", align 1 + %"$$_literal_cost_p6_717_719" = bitcast [33 x i8]* %"$_literal_cost_p6_717" to i8* + %"$_literal_cost_call_720" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Bystr33_74", i8* %"$$_literal_cost_p6_717_719") + %"$gasadd_721" = add i64 %"$_literal_cost_call_720", 0 + %"$gasdivceil_722" = urem i64 %"$gasadd_721", 960 + %"$gasdivceil_723" = udiv i64 %"$gasadd_721", 960 + %"$gasdivceil_724" = icmp eq i64 %"$gasdivceil_722", 0 + %"$gasdivceil_725" = add i64 %"$gasdivceil_723", 1 + %"$gasdivceil_726" = select i1 %"$gasdivceil_724", i64 %"$gasdivceil_723", i64 %"$gasdivceil_725" + %"$gasrem_727" = load i64, i64* @_gasrem, align 8 + %"$gascmp_728" = icmp ugt i64 %"$gasdivceil_726", %"$gasrem_727" + br i1 %"$gascmp_728", label %"$out_of_gas_729", label %"$have_gas_730" + +"$out_of_gas_729": ; preds = %"$have_gas_715" + call void @_out_of_gas() + br label %"$have_gas_730" + +"$have_gas_730": ; preds = %"$out_of_gas_729", %"$have_gas_715" + %"$consume_731" = sub i64 %"$gasrem_727", %"$gasdivceil_726" + store i64 %"$consume_731", i64* @_gasrem, align 8 + %"$execptr_load_732" = load i8*, i8** @_execptr, align 8 + %"$schnorr_get_address_p6_733" = alloca [33 x i8], align 1 + %"$p6_734" = load [33 x i8], [33 x i8]* %p6, align 1 + store [33 x i8] %"$p6_734", [33 x i8]* %"$schnorr_get_address_p6_733", align 1 + %"$schnorr_get_address_call_735" = call [20 x i8]* @_schnorr_get_address(i8* %"$execptr_load_732", [33 x i8]* %"$schnorr_get_address_p6_733"), !dbg !142 + %"$schnorr_get_address_737" = load [20 x i8], [20 x i8]* %"$schnorr_get_address_call_735", align 1 + store [20 x i8] %"$schnorr_get_address_737", [20 x i8]* %a6_gen, align 1, !dbg !142 + %"$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_730" + call void @_out_of_gas() + br label %"$have_gas_741" + +"$have_gas_741": ; preds = %"$out_of_gas_740", %"$have_gas_730" + %"$consume_742" = sub i64 %"$gasrem_738", 1 + store i64 %"$consume_742", i64* @_gasrem, align 8 %r6 = alloca %TName_Bool*, align 8 - %"$gasrem_735" = load i64, i64* @_gasrem, align 8 - %"$gascmp_736" = icmp ugt i64 20, %"$gasrem_735" - br i1 %"$gascmp_736", label %"$out_of_gas_737", label %"$have_gas_738" - -"$out_of_gas_737": ; preds = %"$have_gas_733" - call void @_out_of_gas() - br label %"$have_gas_738" - -"$have_gas_738": ; preds = %"$out_of_gas_737", %"$have_gas_733" - %"$consume_739" = sub i64 %"$gasrem_735", 20 - store i64 %"$consume_739", i64* @_gasrem, align 8 - %"$execptr_load_740" = load i8*, i8** @_execptr, align 8 - %"$eq_a6_741" = alloca [20 x i8], align 1 - %"$a6_742" = load [20 x i8], [20 x i8]* %a6, align 1 - store [20 x i8] %"$a6_742", [20 x i8]* %"$eq_a6_741", align 1 - %"$$eq_a6_741_743" = bitcast [20 x i8]* %"$eq_a6_741" to i8* - %"$eq_a6_gen_744" = alloca [20 x i8], align 1 - %"$a6_gen_745" = load [20 x i8], [20 x i8]* %a6_gen, align 1 - store [20 x i8] %"$a6_gen_745", [20 x i8]* %"$eq_a6_gen_744", align 1 - %"$$eq_a6_gen_744_746" = bitcast [20 x i8]* %"$eq_a6_gen_744" to i8* - %"$eq_call_747" = call %TName_Bool* @_eq_ByStrX(i8* %"$execptr_load_740", i32 20, i8* %"$$eq_a6_741_743", i8* %"$$eq_a6_gen_744_746"), !dbg !65 - store %TName_Bool* %"$eq_call_747", %TName_Bool** %r6, align 8, !dbg !65 - %"$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_738" - call void @_out_of_gas() - br label %"$have_gas_752" - -"$have_gas_752": ; preds = %"$out_of_gas_751", %"$have_gas_738" - %"$consume_753" = sub i64 %"$gasrem_749", 1 - store i64 %"$consume_753", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %r6, metadata !143, metadata !DIExpression()), !dbg !144 + %"$gasrem_743" = load i64, i64* @_gasrem, align 8 + %"$gascmp_744" = icmp ugt i64 20, %"$gasrem_743" + br i1 %"$gascmp_744", label %"$out_of_gas_745", label %"$have_gas_746" + +"$out_of_gas_745": ; preds = %"$have_gas_741" + call void @_out_of_gas() + br label %"$have_gas_746" + +"$have_gas_746": ; preds = %"$out_of_gas_745", %"$have_gas_741" + %"$consume_747" = sub i64 %"$gasrem_743", 20 + store i64 %"$consume_747", i64* @_gasrem, align 8 + %"$execptr_load_748" = load i8*, i8** @_execptr, align 8 + %"$eq_a6_749" = alloca [20 x i8], align 1 + %"$a6_750" = load [20 x i8], [20 x i8]* %a6, align 1 + store [20 x i8] %"$a6_750", [20 x i8]* %"$eq_a6_749", align 1 + %"$$eq_a6_749_751" = bitcast [20 x i8]* %"$eq_a6_749" to i8* + %"$eq_a6_gen_752" = alloca [20 x i8], align 1 + %"$a6_gen_753" = load [20 x i8], [20 x i8]* %a6_gen, align 1 + store [20 x i8] %"$a6_gen_753", [20 x i8]* %"$eq_a6_gen_752", align 1 + %"$$eq_a6_gen_752_754" = bitcast [20 x i8]* %"$eq_a6_gen_752" to i8* + %"$eq_call_755" = call %TName_Bool* @_eq_ByStrX(i8* %"$execptr_load_748", i32 20, i8* %"$$eq_a6_749_751", i8* %"$$eq_a6_gen_752_754"), !dbg !145 + store %TName_Bool* %"$eq_call_755", %TName_Bool** %r6, align 8, !dbg !145 + %"$gasrem_757" = load i64, i64* @_gasrem, align 8 + %"$gascmp_758" = icmp ugt i64 1, %"$gasrem_757" + br i1 %"$gascmp_758", label %"$out_of_gas_759", label %"$have_gas_760" + +"$out_of_gas_759": ; preds = %"$have_gas_746" + call void @_out_of_gas() + br label %"$have_gas_760" + +"$have_gas_760": ; preds = %"$out_of_gas_759", %"$have_gas_746" + %"$consume_761" = sub i64 %"$gasrem_757", 1 + store i64 %"$consume_761", i64* @_gasrem, align 8 %p7 = alloca [33 x i8], align 1 - %"$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" + call void @llvm.dbg.declare(metadata [33 x i8]* %p7, metadata !146, metadata !DIExpression()), !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_756": ; preds = %"$have_gas_752" +"$out_of_gas_764": ; preds = %"$have_gas_760" call void @_out_of_gas() - br label %"$have_gas_757" + br label %"$have_gas_765" -"$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 - store [33 x i8] c"\03*f\1F\9DJ\B8\DD\98\18\CE\D2\F6/=\A1O\DD#\E6\8EX\D0\1AJ\E1\86#\1D\7F\B6\09\BB", [33 x i8]* %p7, align 1, !dbg !66 - %"$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" +"$have_gas_765": ; preds = %"$out_of_gas_764", %"$have_gas_760" + %"$consume_766" = sub i64 %"$gasrem_762", 1 + store i64 %"$consume_766", i64* @_gasrem, align 8 + store [33 x i8] c"\03*f\1F\9DJ\B8\DD\98\18\CE\D2\F6/=\A1O\DD#\E6\8EX\D0\1AJ\E1\86#\1D\7F\B6\09\BB", [33 x i8]* %p7, align 1, !dbg !148 + %"$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_761": ; preds = %"$have_gas_757" +"$out_of_gas_769": ; preds = %"$have_gas_765" call void @_out_of_gas() - br label %"$have_gas_762" + br label %"$have_gas_770" -"$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 +"$have_gas_770": ; preds = %"$out_of_gas_769", %"$have_gas_765" + %"$consume_771" = sub i64 %"$gasrem_767", 1 + store i64 %"$consume_771", i64* @_gasrem, align 8 %a7 = alloca [20 x i8], align 1 - %"$gasrem_764" = load i64, i64* @_gasrem, align 8 - %"$gascmp_765" = icmp ugt i64 1, %"$gasrem_764" - br i1 %"$gascmp_765", label %"$out_of_gas_766", label %"$have_gas_767" + call void @llvm.dbg.declare(metadata [20 x i8]* %a7, metadata !149, metadata !DIExpression()), !dbg !150 + %"$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_766": ; preds = %"$have_gas_762" +"$out_of_gas_774": ; preds = %"$have_gas_770" call void @_out_of_gas() - br label %"$have_gas_767" + br label %"$have_gas_775" -"$have_gas_767": ; preds = %"$out_of_gas_766", %"$have_gas_762" - %"$consume_768" = sub i64 %"$gasrem_764", 1 - store i64 %"$consume_768", i64* @_gasrem, align 8 - store [20 x i8] c"6\BA4\09\7F\86\11\91\C4\8C\83\9C\9B\1A\8BY\12\F5\83\CF", [20 x i8]* %a7, align 1, !dbg !67 - %"$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" +"$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 [20 x i8] c"6\BA4\09\7F\86\11\91\C4\8C\83\9C\9B\1A\8BY\12\F5\83\CF", [20 x i8]* %a7, align 1, !dbg !151 + %"$gasrem_777" = load i64, i64* @_gasrem, align 8 + %"$gascmp_778" = icmp ugt i64 1, %"$gasrem_777" + br i1 %"$gascmp_778", label %"$out_of_gas_779", label %"$have_gas_780" -"$out_of_gas_771": ; preds = %"$have_gas_767" +"$out_of_gas_779": ; preds = %"$have_gas_775" call void @_out_of_gas() - br label %"$have_gas_772" + br label %"$have_gas_780" -"$have_gas_772": ; preds = %"$out_of_gas_771", %"$have_gas_767" - %"$consume_773" = sub i64 %"$gasrem_769", 1 - store i64 %"$consume_773", i64* @_gasrem, align 8 +"$have_gas_780": ; preds = %"$out_of_gas_779", %"$have_gas_775" + %"$consume_781" = sub i64 %"$gasrem_777", 1 + store i64 %"$consume_781", i64* @_gasrem, align 8 %a7_gen = alloca [20 x i8], align 1 - %"$_literal_cost_p7_774" = alloca [33 x i8], align 1 - %"$p7_775" = load [33 x i8], [33 x i8]* %p7, align 1 - store [33 x i8] %"$p7_775", [33 x i8]* %"$_literal_cost_p7_774", align 1 - %"$$_literal_cost_p7_774_776" = bitcast [33 x i8]* %"$_literal_cost_p7_774" to i8* - %"$_literal_cost_call_777" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Bystr33_74", i8* %"$$_literal_cost_p7_774_776") - %"$gasadd_778" = add i64 %"$_literal_cost_call_777", 0 - %"$gasdivceil_779" = urem i64 %"$gasadd_778", 960 - %"$gasdivceil_780" = udiv i64 %"$gasadd_778", 960 - %"$gasdivceil_781" = icmp eq i64 %"$gasdivceil_779", 0 - %"$gasdivceil_782" = add i64 %"$gasdivceil_780", 1 - %"$gasdivceil_783" = select i1 %"$gasdivceil_781", i64 %"$gasdivceil_780", i64 %"$gasdivceil_782" - %"$gasrem_784" = load i64, i64* @_gasrem, align 8 - %"$gascmp_785" = icmp ugt i64 %"$gasdivceil_783", %"$gasrem_784" - br i1 %"$gascmp_785", label %"$out_of_gas_786", label %"$have_gas_787" - -"$out_of_gas_786": ; preds = %"$have_gas_772" - call void @_out_of_gas() - br label %"$have_gas_787" - -"$have_gas_787": ; preds = %"$out_of_gas_786", %"$have_gas_772" - %"$consume_788" = sub i64 %"$gasrem_784", %"$gasdivceil_783" - store i64 %"$consume_788", i64* @_gasrem, align 8 - %"$execptr_load_789" = load i8*, i8** @_execptr, align 8 - %"$schnorr_get_address_p7_790" = alloca [33 x i8], align 1 - %"$p7_791" = load [33 x i8], [33 x i8]* %p7, align 1 - store [33 x i8] %"$p7_791", [33 x i8]* %"$schnorr_get_address_p7_790", align 1 - %"$schnorr_get_address_call_792" = call [20 x i8]* @_schnorr_get_address(i8* %"$execptr_load_789", [33 x i8]* %"$schnorr_get_address_p7_790"), !dbg !68 - %"$schnorr_get_address_794" = load [20 x i8], [20 x i8]* %"$schnorr_get_address_call_792", align 1 - store [20 x i8] %"$schnorr_get_address_794", [20 x i8]* %a7_gen, align 1, !dbg !68 - %"$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" - -"$out_of_gas_797": ; preds = %"$have_gas_787" - call void @_out_of_gas() - br label %"$have_gas_798" - -"$have_gas_798": ; preds = %"$out_of_gas_797", %"$have_gas_787" - %"$consume_799" = sub i64 %"$gasrem_795", 1 - store i64 %"$consume_799", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata [20 x i8]* %a7_gen, metadata !152, metadata !DIExpression()), !dbg !153 + %"$_literal_cost_p7_782" = alloca [33 x i8], align 1 + %"$p7_783" = load [33 x i8], [33 x i8]* %p7, align 1 + store [33 x i8] %"$p7_783", [33 x i8]* %"$_literal_cost_p7_782", align 1 + %"$$_literal_cost_p7_782_784" = bitcast [33 x i8]* %"$_literal_cost_p7_782" to i8* + %"$_literal_cost_call_785" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Bystr33_74", i8* %"$$_literal_cost_p7_782_784") + %"$gasadd_786" = add i64 %"$_literal_cost_call_785", 0 + %"$gasdivceil_787" = urem i64 %"$gasadd_786", 960 + %"$gasdivceil_788" = udiv i64 %"$gasadd_786", 960 + %"$gasdivceil_789" = icmp eq i64 %"$gasdivceil_787", 0 + %"$gasdivceil_790" = add i64 %"$gasdivceil_788", 1 + %"$gasdivceil_791" = select i1 %"$gasdivceil_789", i64 %"$gasdivceil_788", i64 %"$gasdivceil_790" + %"$gasrem_792" = load i64, i64* @_gasrem, align 8 + %"$gascmp_793" = icmp ugt i64 %"$gasdivceil_791", %"$gasrem_792" + br i1 %"$gascmp_793", label %"$out_of_gas_794", label %"$have_gas_795" + +"$out_of_gas_794": ; preds = %"$have_gas_780" + call void @_out_of_gas() + br label %"$have_gas_795" + +"$have_gas_795": ; preds = %"$out_of_gas_794", %"$have_gas_780" + %"$consume_796" = sub i64 %"$gasrem_792", %"$gasdivceil_791" + store i64 %"$consume_796", i64* @_gasrem, align 8 + %"$execptr_load_797" = load i8*, i8** @_execptr, align 8 + %"$schnorr_get_address_p7_798" = alloca [33 x i8], align 1 + %"$p7_799" = load [33 x i8], [33 x i8]* %p7, align 1 + store [33 x i8] %"$p7_799", [33 x i8]* %"$schnorr_get_address_p7_798", align 1 + %"$schnorr_get_address_call_800" = call [20 x i8]* @_schnorr_get_address(i8* %"$execptr_load_797", [33 x i8]* %"$schnorr_get_address_p7_798"), !dbg !154 + %"$schnorr_get_address_802" = load [20 x i8], [20 x i8]* %"$schnorr_get_address_call_800", align 1 + store [20 x i8] %"$schnorr_get_address_802", [20 x i8]* %a7_gen, align 1, !dbg !154 + %"$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_805": ; preds = %"$have_gas_795" + call void @_out_of_gas() + br label %"$have_gas_806" + +"$have_gas_806": ; preds = %"$out_of_gas_805", %"$have_gas_795" + %"$consume_807" = sub i64 %"$gasrem_803", 1 + store i64 %"$consume_807", i64* @_gasrem, align 8 %r7 = alloca %TName_Bool*, align 8 - %"$gasrem_800" = load i64, i64* @_gasrem, align 8 - %"$gascmp_801" = icmp ugt i64 20, %"$gasrem_800" - br i1 %"$gascmp_801", label %"$out_of_gas_802", label %"$have_gas_803" - -"$out_of_gas_802": ; preds = %"$have_gas_798" - call void @_out_of_gas() - br label %"$have_gas_803" - -"$have_gas_803": ; preds = %"$out_of_gas_802", %"$have_gas_798" - %"$consume_804" = sub i64 %"$gasrem_800", 20 - store i64 %"$consume_804", i64* @_gasrem, align 8 - %"$execptr_load_805" = load i8*, i8** @_execptr, align 8 - %"$eq_a7_806" = alloca [20 x i8], align 1 - %"$a7_807" = load [20 x i8], [20 x i8]* %a7, align 1 - store [20 x i8] %"$a7_807", [20 x i8]* %"$eq_a7_806", align 1 - %"$$eq_a7_806_808" = bitcast [20 x i8]* %"$eq_a7_806" to i8* - %"$eq_a7_gen_809" = alloca [20 x i8], align 1 - %"$a7_gen_810" = load [20 x i8], [20 x i8]* %a7_gen, align 1 - store [20 x i8] %"$a7_gen_810", [20 x i8]* %"$eq_a7_gen_809", align 1 - %"$$eq_a7_gen_809_811" = bitcast [20 x i8]* %"$eq_a7_gen_809" to i8* - %"$eq_call_812" = call %TName_Bool* @_eq_ByStrX(i8* %"$execptr_load_805", i32 20, i8* %"$$eq_a7_806_808", i8* %"$$eq_a7_gen_809_811"), !dbg !69 - store %TName_Bool* %"$eq_call_812", %TName_Bool** %r7, align 8, !dbg !69 - %"$gasrem_814" = load i64, i64* @_gasrem, align 8 - %"$gascmp_815" = icmp ugt i64 1, %"$gasrem_814" - br i1 %"$gascmp_815", label %"$out_of_gas_816", label %"$have_gas_817" - -"$out_of_gas_816": ; preds = %"$have_gas_803" - call void @_out_of_gas() - br label %"$have_gas_817" - -"$have_gas_817": ; preds = %"$out_of_gas_816", %"$have_gas_803" - %"$consume_818" = sub i64 %"$gasrem_814", 1 - store i64 %"$consume_818", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %r7, metadata !155, metadata !DIExpression()), !dbg !156 + %"$gasrem_808" = load i64, i64* @_gasrem, align 8 + %"$gascmp_809" = icmp ugt i64 20, %"$gasrem_808" + br i1 %"$gascmp_809", label %"$out_of_gas_810", label %"$have_gas_811" + +"$out_of_gas_810": ; preds = %"$have_gas_806" + call void @_out_of_gas() + br label %"$have_gas_811" + +"$have_gas_811": ; preds = %"$out_of_gas_810", %"$have_gas_806" + %"$consume_812" = sub i64 %"$gasrem_808", 20 + store i64 %"$consume_812", i64* @_gasrem, align 8 + %"$execptr_load_813" = load i8*, i8** @_execptr, align 8 + %"$eq_a7_814" = alloca [20 x i8], align 1 + %"$a7_815" = load [20 x i8], [20 x i8]* %a7, align 1 + store [20 x i8] %"$a7_815", [20 x i8]* %"$eq_a7_814", align 1 + %"$$eq_a7_814_816" = bitcast [20 x i8]* %"$eq_a7_814" to i8* + %"$eq_a7_gen_817" = alloca [20 x i8], align 1 + %"$a7_gen_818" = load [20 x i8], [20 x i8]* %a7_gen, align 1 + store [20 x i8] %"$a7_gen_818", [20 x i8]* %"$eq_a7_gen_817", align 1 + %"$$eq_a7_gen_817_819" = bitcast [20 x i8]* %"$eq_a7_gen_817" to i8* + %"$eq_call_820" = call %TName_Bool* @_eq_ByStrX(i8* %"$execptr_load_813", i32 20, i8* %"$$eq_a7_814_816", i8* %"$$eq_a7_gen_817_819"), !dbg !157 + store %TName_Bool* %"$eq_call_820", %TName_Bool** %r7, align 8, !dbg !157 + %"$gasrem_822" = load i64, i64* @_gasrem, align 8 + %"$gascmp_823" = icmp ugt i64 1, %"$gasrem_822" + br i1 %"$gascmp_823", label %"$out_of_gas_824", label %"$have_gas_825" + +"$out_of_gas_824": ; preds = %"$have_gas_811" + call void @_out_of_gas() + br label %"$have_gas_825" + +"$have_gas_825": ; preds = %"$out_of_gas_824", %"$have_gas_811" + %"$consume_826" = sub i64 %"$gasrem_822", 1 + store i64 %"$consume_826", i64* @_gasrem, align 8 %p8 = alloca [33 x i8], align 1 - %"$gasrem_819" = load i64, i64* @_gasrem, align 8 - %"$gascmp_820" = icmp ugt i64 1, %"$gasrem_819" - br i1 %"$gascmp_820", label %"$out_of_gas_821", label %"$have_gas_822" + call void @llvm.dbg.declare(metadata [33 x i8]* %p8, metadata !158, metadata !DIExpression()), !dbg !159 + %"$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_821": ; preds = %"$have_gas_817" +"$out_of_gas_829": ; preds = %"$have_gas_825" call void @_out_of_gas() - br label %"$have_gas_822" + br label %"$have_gas_830" -"$have_gas_822": ; preds = %"$out_of_gas_821", %"$have_gas_817" - %"$consume_823" = sub i64 %"$gasrem_819", 1 - store i64 %"$consume_823", i64* @_gasrem, align 8 - store [33 x i8] c"\03j\94\E9%\BB \0D\CEA\A4l\90&\E0#\B2&\DD[L\B2'\CEvm`\CC\8F\AB!\81H", [33 x i8]* %p8, align 1, !dbg !70 - %"$gasrem_824" = load i64, i64* @_gasrem, align 8 - %"$gascmp_825" = icmp ugt i64 1, %"$gasrem_824" - br i1 %"$gascmp_825", label %"$out_of_gas_826", label %"$have_gas_827" +"$have_gas_830": ; preds = %"$out_of_gas_829", %"$have_gas_825" + %"$consume_831" = sub i64 %"$gasrem_827", 1 + store i64 %"$consume_831", i64* @_gasrem, align 8 + store [33 x i8] c"\03j\94\E9%\BB \0D\CEA\A4l\90&\E0#\B2&\DD[L\B2'\CEvm`\CC\8F\AB!\81H", [33 x i8]* %p8, align 1, !dbg !160 + %"$gasrem_832" = load i64, i64* @_gasrem, align 8 + %"$gascmp_833" = icmp ugt i64 1, %"$gasrem_832" + br i1 %"$gascmp_833", label %"$out_of_gas_834", label %"$have_gas_835" -"$out_of_gas_826": ; preds = %"$have_gas_822" +"$out_of_gas_834": ; preds = %"$have_gas_830" call void @_out_of_gas() - br label %"$have_gas_827" + br label %"$have_gas_835" -"$have_gas_827": ; preds = %"$out_of_gas_826", %"$have_gas_822" - %"$consume_828" = sub i64 %"$gasrem_824", 1 - store i64 %"$consume_828", i64* @_gasrem, align 8 +"$have_gas_835": ; preds = %"$out_of_gas_834", %"$have_gas_830" + %"$consume_836" = sub i64 %"$gasrem_832", 1 + store i64 %"$consume_836", i64* @_gasrem, align 8 %a8 = alloca [20 x i8], align 1 - %"$gasrem_829" = load i64, i64* @_gasrem, align 8 - %"$gascmp_830" = icmp ugt i64 1, %"$gasrem_829" - br i1 %"$gascmp_830", label %"$out_of_gas_831", label %"$have_gas_832" + call void @llvm.dbg.declare(metadata [20 x i8]* %a8, metadata !161, metadata !DIExpression()), !dbg !162 + %"$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_831": ; preds = %"$have_gas_827" +"$out_of_gas_839": ; preds = %"$have_gas_835" call void @_out_of_gas() - br label %"$have_gas_832" + br label %"$have_gas_840" -"$have_gas_832": ; preds = %"$out_of_gas_831", %"$have_gas_827" - %"$consume_833" = sub i64 %"$gasrem_829", 1 - store i64 %"$consume_833", i64* @_gasrem, align 8 - store [20 x i8] c"\D2E:\E7l\9A\86\AA\E5D\FC\A6\99\DB\DC\\Wj\EF:", [20 x i8]* %a8, align 1, !dbg !71 - %"$gasrem_834" = load i64, i64* @_gasrem, align 8 - %"$gascmp_835" = icmp ugt i64 1, %"$gasrem_834" - br i1 %"$gascmp_835", label %"$out_of_gas_836", label %"$have_gas_837" +"$have_gas_840": ; preds = %"$out_of_gas_839", %"$have_gas_835" + %"$consume_841" = sub i64 %"$gasrem_837", 1 + store i64 %"$consume_841", i64* @_gasrem, align 8 + store [20 x i8] c"\D2E:\E7l\9A\86\AA\E5D\FC\A6\99\DB\DC\\Wj\EF:", [20 x i8]* %a8, align 1, !dbg !163 + %"$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_836": ; preds = %"$have_gas_832" +"$out_of_gas_844": ; preds = %"$have_gas_840" call void @_out_of_gas() - br label %"$have_gas_837" + br label %"$have_gas_845" -"$have_gas_837": ; preds = %"$out_of_gas_836", %"$have_gas_832" - %"$consume_838" = sub i64 %"$gasrem_834", 1 - store i64 %"$consume_838", i64* @_gasrem, 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 %a8_gen = alloca [20 x i8], align 1 - %"$_literal_cost_p8_839" = alloca [33 x i8], align 1 - %"$p8_840" = load [33 x i8], [33 x i8]* %p8, align 1 - store [33 x i8] %"$p8_840", [33 x i8]* %"$_literal_cost_p8_839", align 1 - %"$$_literal_cost_p8_839_841" = bitcast [33 x i8]* %"$_literal_cost_p8_839" to i8* - %"$_literal_cost_call_842" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Bystr33_74", i8* %"$$_literal_cost_p8_839_841") - %"$gasadd_843" = add i64 %"$_literal_cost_call_842", 0 - %"$gasdivceil_844" = urem i64 %"$gasadd_843", 960 - %"$gasdivceil_845" = udiv i64 %"$gasadd_843", 960 - %"$gasdivceil_846" = icmp eq i64 %"$gasdivceil_844", 0 - %"$gasdivceil_847" = add i64 %"$gasdivceil_845", 1 - %"$gasdivceil_848" = select i1 %"$gasdivceil_846", i64 %"$gasdivceil_845", i64 %"$gasdivceil_847" - %"$gasrem_849" = load i64, i64* @_gasrem, align 8 - %"$gascmp_850" = icmp ugt i64 %"$gasdivceil_848", %"$gasrem_849" - br i1 %"$gascmp_850", label %"$out_of_gas_851", label %"$have_gas_852" - -"$out_of_gas_851": ; preds = %"$have_gas_837" - call void @_out_of_gas() - br label %"$have_gas_852" - -"$have_gas_852": ; preds = %"$out_of_gas_851", %"$have_gas_837" - %"$consume_853" = sub i64 %"$gasrem_849", %"$gasdivceil_848" - store i64 %"$consume_853", i64* @_gasrem, align 8 - %"$execptr_load_854" = load i8*, i8** @_execptr, align 8 - %"$schnorr_get_address_p8_855" = alloca [33 x i8], align 1 - %"$p8_856" = load [33 x i8], [33 x i8]* %p8, align 1 - store [33 x i8] %"$p8_856", [33 x i8]* %"$schnorr_get_address_p8_855", align 1 - %"$schnorr_get_address_call_857" = call [20 x i8]* @_schnorr_get_address(i8* %"$execptr_load_854", [33 x i8]* %"$schnorr_get_address_p8_855"), !dbg !72 - %"$schnorr_get_address_859" = load [20 x i8], [20 x i8]* %"$schnorr_get_address_call_857", align 1 - store [20 x i8] %"$schnorr_get_address_859", [20 x i8]* %a8_gen, align 1, !dbg !72 - %"$gasrem_860" = load i64, i64* @_gasrem, align 8 - %"$gascmp_861" = icmp ugt i64 1, %"$gasrem_860" - br i1 %"$gascmp_861", label %"$out_of_gas_862", label %"$have_gas_863" - -"$out_of_gas_862": ; preds = %"$have_gas_852" - call void @_out_of_gas() - br label %"$have_gas_863" - -"$have_gas_863": ; preds = %"$out_of_gas_862", %"$have_gas_852" - %"$consume_864" = sub i64 %"$gasrem_860", 1 - store i64 %"$consume_864", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata [20 x i8]* %a8_gen, metadata !164, metadata !DIExpression()), !dbg !165 + %"$_literal_cost_p8_847" = alloca [33 x i8], align 1 + %"$p8_848" = load [33 x i8], [33 x i8]* %p8, align 1 + store [33 x i8] %"$p8_848", [33 x i8]* %"$_literal_cost_p8_847", align 1 + %"$$_literal_cost_p8_847_849" = bitcast [33 x i8]* %"$_literal_cost_p8_847" to i8* + %"$_literal_cost_call_850" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Bystr33_74", i8* %"$$_literal_cost_p8_847_849") + %"$gasadd_851" = add i64 %"$_literal_cost_call_850", 0 + %"$gasdivceil_852" = urem i64 %"$gasadd_851", 960 + %"$gasdivceil_853" = udiv i64 %"$gasadd_851", 960 + %"$gasdivceil_854" = icmp eq i64 %"$gasdivceil_852", 0 + %"$gasdivceil_855" = add i64 %"$gasdivceil_853", 1 + %"$gasdivceil_856" = select i1 %"$gasdivceil_854", i64 %"$gasdivceil_853", i64 %"$gasdivceil_855" + %"$gasrem_857" = load i64, i64* @_gasrem, align 8 + %"$gascmp_858" = icmp ugt i64 %"$gasdivceil_856", %"$gasrem_857" + br i1 %"$gascmp_858", label %"$out_of_gas_859", label %"$have_gas_860" + +"$out_of_gas_859": ; preds = %"$have_gas_845" + call void @_out_of_gas() + br label %"$have_gas_860" + +"$have_gas_860": ; preds = %"$out_of_gas_859", %"$have_gas_845" + %"$consume_861" = sub i64 %"$gasrem_857", %"$gasdivceil_856" + store i64 %"$consume_861", i64* @_gasrem, align 8 + %"$execptr_load_862" = load i8*, i8** @_execptr, align 8 + %"$schnorr_get_address_p8_863" = alloca [33 x i8], align 1 + %"$p8_864" = load [33 x i8], [33 x i8]* %p8, align 1 + store [33 x i8] %"$p8_864", [33 x i8]* %"$schnorr_get_address_p8_863", align 1 + %"$schnorr_get_address_call_865" = call [20 x i8]* @_schnorr_get_address(i8* %"$execptr_load_862", [33 x i8]* %"$schnorr_get_address_p8_863"), !dbg !166 + %"$schnorr_get_address_867" = load [20 x i8], [20 x i8]* %"$schnorr_get_address_call_865", align 1 + store [20 x i8] %"$schnorr_get_address_867", [20 x i8]* %a8_gen, align 1, !dbg !166 + %"$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_860" + call void @_out_of_gas() + br label %"$have_gas_871" + +"$have_gas_871": ; preds = %"$out_of_gas_870", %"$have_gas_860" + %"$consume_872" = sub i64 %"$gasrem_868", 1 + store i64 %"$consume_872", i64* @_gasrem, align 8 %r8 = alloca %TName_Bool*, align 8 - %"$gasrem_865" = load i64, i64* @_gasrem, align 8 - %"$gascmp_866" = icmp ugt i64 20, %"$gasrem_865" - br i1 %"$gascmp_866", label %"$out_of_gas_867", label %"$have_gas_868" - -"$out_of_gas_867": ; preds = %"$have_gas_863" - call void @_out_of_gas() - br label %"$have_gas_868" - -"$have_gas_868": ; preds = %"$out_of_gas_867", %"$have_gas_863" - %"$consume_869" = sub i64 %"$gasrem_865", 20 - store i64 %"$consume_869", i64* @_gasrem, align 8 - %"$execptr_load_870" = load i8*, i8** @_execptr, align 8 - %"$eq_a8_871" = alloca [20 x i8], align 1 - %"$a8_872" = load [20 x i8], [20 x i8]* %a8, align 1 - store [20 x i8] %"$a8_872", [20 x i8]* %"$eq_a8_871", align 1 - %"$$eq_a8_871_873" = bitcast [20 x i8]* %"$eq_a8_871" to i8* - %"$eq_a8_gen_874" = alloca [20 x i8], align 1 - %"$a8_gen_875" = load [20 x i8], [20 x i8]* %a8_gen, align 1 - store [20 x i8] %"$a8_gen_875", [20 x i8]* %"$eq_a8_gen_874", align 1 - %"$$eq_a8_gen_874_876" = bitcast [20 x i8]* %"$eq_a8_gen_874" to i8* - %"$eq_call_877" = call %TName_Bool* @_eq_ByStrX(i8* %"$execptr_load_870", i32 20, i8* %"$$eq_a8_871_873", i8* %"$$eq_a8_gen_874_876"), !dbg !73 - store %TName_Bool* %"$eq_call_877", %TName_Bool** %r8, align 8, !dbg !73 - %"$gasrem_879" = load i64, i64* @_gasrem, align 8 - %"$gascmp_880" = icmp ugt i64 1, %"$gasrem_879" - br i1 %"$gascmp_880", label %"$out_of_gas_881", label %"$have_gas_882" - -"$out_of_gas_881": ; preds = %"$have_gas_868" - call void @_out_of_gas() - br label %"$have_gas_882" - -"$have_gas_882": ; preds = %"$out_of_gas_881", %"$have_gas_868" - %"$consume_883" = sub i64 %"$gasrem_879", 1 - store i64 %"$consume_883", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %r8, metadata !167, metadata !DIExpression()), !dbg !168 + %"$gasrem_873" = load i64, i64* @_gasrem, align 8 + %"$gascmp_874" = icmp ugt i64 20, %"$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", 20 + store i64 %"$consume_877", i64* @_gasrem, align 8 + %"$execptr_load_878" = load i8*, i8** @_execptr, align 8 + %"$eq_a8_879" = alloca [20 x i8], align 1 + %"$a8_880" = load [20 x i8], [20 x i8]* %a8, align 1 + store [20 x i8] %"$a8_880", [20 x i8]* %"$eq_a8_879", align 1 + %"$$eq_a8_879_881" = bitcast [20 x i8]* %"$eq_a8_879" to i8* + %"$eq_a8_gen_882" = alloca [20 x i8], align 1 + %"$a8_gen_883" = load [20 x i8], [20 x i8]* %a8_gen, align 1 + store [20 x i8] %"$a8_gen_883", [20 x i8]* %"$eq_a8_gen_882", align 1 + %"$$eq_a8_gen_882_884" = bitcast [20 x i8]* %"$eq_a8_gen_882" to i8* + %"$eq_call_885" = call %TName_Bool* @_eq_ByStrX(i8* %"$execptr_load_878", i32 20, i8* %"$$eq_a8_879_881", i8* %"$$eq_a8_gen_882_884"), !dbg !169 + store %TName_Bool* %"$eq_call_885", %TName_Bool** %r8, align 8, !dbg !169 + %"$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_876" + call void @_out_of_gas() + br label %"$have_gas_890" + +"$have_gas_890": ; preds = %"$out_of_gas_889", %"$have_gas_876" + %"$consume_891" = sub i64 %"$gasrem_887", 1 + store i64 %"$consume_891", i64* @_gasrem, align 8 %p9 = alloca [33 x i8], align 1 - %"$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" + call void @llvm.dbg.declare(metadata [33 x i8]* %p9, metadata !170, metadata !DIExpression()), !dbg !171 + %"$gasrem_892" = load i64, i64* @_gasrem, align 8 + %"$gascmp_893" = icmp ugt i64 1, %"$gasrem_892" + br i1 %"$gascmp_893", label %"$out_of_gas_894", label %"$have_gas_895" -"$out_of_gas_886": ; preds = %"$have_gas_882" +"$out_of_gas_894": ; preds = %"$have_gas_890" call void @_out_of_gas() - br label %"$have_gas_887" + br label %"$have_gas_895" -"$have_gas_887": ; preds = %"$out_of_gas_886", %"$have_gas_882" - %"$consume_888" = sub i64 %"$gasrem_884", 1 - store i64 %"$consume_888", i64* @_gasrem, align 8 - store [33 x i8] c"\02G\F169\C7Y|\8A\E2F}\D2\9D!\9C'I&\0Fi\0D@i\93\0F\DE\B7\86k+\C1\FA", [33 x i8]* %p9, align 1, !dbg !74 - %"$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" +"$have_gas_895": ; preds = %"$out_of_gas_894", %"$have_gas_890" + %"$consume_896" = sub i64 %"$gasrem_892", 1 + store i64 %"$consume_896", i64* @_gasrem, align 8 + store [33 x i8] c"\02G\F169\C7Y|\8A\E2F}\D2\9D!\9C'I&\0Fi\0D@i\93\0F\DE\B7\86k+\C1\FA", [33 x i8]* %p9, align 1, !dbg !172 + %"$gasrem_897" = load i64, i64* @_gasrem, align 8 + %"$gascmp_898" = icmp ugt i64 1, %"$gasrem_897" + br i1 %"$gascmp_898", label %"$out_of_gas_899", label %"$have_gas_900" -"$out_of_gas_891": ; preds = %"$have_gas_887" +"$out_of_gas_899": ; preds = %"$have_gas_895" call void @_out_of_gas() - br label %"$have_gas_892" + br label %"$have_gas_900" -"$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 - %"$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" +"$have_gas_900": ; preds = %"$out_of_gas_899", %"$have_gas_895" + %"$consume_901" = sub i64 %"$gasrem_897", 1 + store i64 %"$consume_901", i64* @_gasrem, 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_896": ; preds = %"$have_gas_892" +"$out_of_gas_904": ; preds = %"$have_gas_900" call void @_out_of_gas() - br label %"$have_gas_897" + br label %"$have_gas_905" -"$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 - %"$gasrem_899" = load i64, i64* @_gasrem, align 8 - %"$gascmp_900" = icmp ugt i64 1, %"$gasrem_899" - br i1 %"$gascmp_900", label %"$out_of_gas_901", label %"$have_gas_902" +"$have_gas_905": ; preds = %"$out_of_gas_904", %"$have_gas_900" + %"$consume_906" = sub i64 %"$gasrem_902", 1 + store i64 %"$consume_906", i64* @_gasrem, align 8 + %"$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_901": ; preds = %"$have_gas_897" +"$out_of_gas_909": ; preds = %"$have_gas_905" call void @_out_of_gas() - br label %"$have_gas_902" + br label %"$have_gas_910" -"$have_gas_902": ; preds = %"$out_of_gas_901", %"$have_gas_897" - %"$consume_903" = sub i64 %"$gasrem_899", 1 - store i64 %"$consume_903", i64* @_gasrem, align 8 +"$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 %a9_gen = alloca [20 x i8], align 1 - %"$_literal_cost_p9_904" = alloca [33 x i8], align 1 - %"$p9_905" = load [33 x i8], [33 x i8]* %p9, align 1 - store [33 x i8] %"$p9_905", [33 x i8]* %"$_literal_cost_p9_904", align 1 - %"$$_literal_cost_p9_904_906" = bitcast [33 x i8]* %"$_literal_cost_p9_904" to i8* - %"$_literal_cost_call_907" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Bystr33_74", i8* %"$$_literal_cost_p9_904_906") - %"$gasadd_908" = add i64 %"$_literal_cost_call_907", 0 - %"$gasdivceil_909" = urem i64 %"$gasadd_908", 960 - %"$gasdivceil_910" = udiv i64 %"$gasadd_908", 960 - %"$gasdivceil_911" = icmp eq i64 %"$gasdivceil_909", 0 - %"$gasdivceil_912" = add i64 %"$gasdivceil_910", 1 - %"$gasdivceil_913" = select i1 %"$gasdivceil_911", i64 %"$gasdivceil_910", i64 %"$gasdivceil_912" - %"$gasrem_914" = load i64, i64* @_gasrem, align 8 - %"$gascmp_915" = icmp ugt i64 %"$gasdivceil_913", %"$gasrem_914" - br i1 %"$gascmp_915", label %"$out_of_gas_916", label %"$have_gas_917" - -"$out_of_gas_916": ; preds = %"$have_gas_902" - call void @_out_of_gas() - br label %"$have_gas_917" - -"$have_gas_917": ; preds = %"$out_of_gas_916", %"$have_gas_902" - %"$consume_918" = sub i64 %"$gasrem_914", %"$gasdivceil_913" - store i64 %"$consume_918", i64* @_gasrem, align 8 - %"$execptr_load_919" = load i8*, i8** @_execptr, align 8 - %"$schnorr_get_address_p9_920" = alloca [33 x i8], align 1 - %"$p9_921" = load [33 x i8], [33 x i8]* %p9, align 1 - store [33 x i8] %"$p9_921", [33 x i8]* %"$schnorr_get_address_p9_920", align 1 - %"$schnorr_get_address_call_922" = call [20 x i8]* @_schnorr_get_address(i8* %"$execptr_load_919", [33 x i8]* %"$schnorr_get_address_p9_920"), !dbg !75 - %"$schnorr_get_address_924" = load [20 x i8], [20 x i8]* %"$schnorr_get_address_call_922", align 1 - store [20 x i8] %"$schnorr_get_address_924", [20 x i8]* %a9_gen, align 1, !dbg !75 - %"$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" - -"$out_of_gas_927": ; preds = %"$have_gas_917" - call void @_out_of_gas() - br label %"$have_gas_928" - -"$have_gas_928": ; preds = %"$out_of_gas_927", %"$have_gas_917" - %"$consume_929" = sub i64 %"$gasrem_925", 1 - store i64 %"$consume_929", i64* @_gasrem, align 8 - %"$gasrem_930" = load i64, i64* @_gasrem, align 8 - %"$gascmp_931" = icmp ugt i64 20, %"$gasrem_930" - br i1 %"$gascmp_931", label %"$out_of_gas_932", label %"$have_gas_933" - -"$out_of_gas_932": ; preds = %"$have_gas_928" - call void @_out_of_gas() - br label %"$have_gas_933" - -"$have_gas_933": ; preds = %"$out_of_gas_932", %"$have_gas_928" - %"$consume_934" = sub i64 %"$gasrem_930", 20 - store i64 %"$consume_934", i64* @_gasrem, align 8 - %"$gasrem_935" = load i64, i64* @_gasrem, align 8 - %"$gascmp_936" = icmp ugt i64 1, %"$gasrem_935" - br i1 %"$gascmp_936", label %"$out_of_gas_937", label %"$have_gas_938" - -"$out_of_gas_937": ; preds = %"$have_gas_933" - call void @_out_of_gas() - br label %"$have_gas_938" - -"$have_gas_938": ; preds = %"$out_of_gas_937", %"$have_gas_933" - %"$consume_939" = sub i64 %"$gasrem_935", 1 - store i64 %"$consume_939", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata [20 x i8]* %a9_gen, metadata !173, metadata !DIExpression()), !dbg !174 + %"$_literal_cost_p9_912" = alloca [33 x i8], align 1 + %"$p9_913" = load [33 x i8], [33 x i8]* %p9, align 1 + store [33 x i8] %"$p9_913", [33 x i8]* %"$_literal_cost_p9_912", align 1 + %"$$_literal_cost_p9_912_914" = bitcast [33 x i8]* %"$_literal_cost_p9_912" to i8* + %"$_literal_cost_call_915" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Bystr33_74", i8* %"$$_literal_cost_p9_912_914") + %"$gasadd_916" = add i64 %"$_literal_cost_call_915", 0 + %"$gasdivceil_917" = urem i64 %"$gasadd_916", 960 + %"$gasdivceil_918" = udiv i64 %"$gasadd_916", 960 + %"$gasdivceil_919" = icmp eq i64 %"$gasdivceil_917", 0 + %"$gasdivceil_920" = add i64 %"$gasdivceil_918", 1 + %"$gasdivceil_921" = select i1 %"$gasdivceil_919", i64 %"$gasdivceil_918", i64 %"$gasdivceil_920" + %"$gasrem_922" = load i64, i64* @_gasrem, align 8 + %"$gascmp_923" = icmp ugt i64 %"$gasdivceil_921", %"$gasrem_922" + br i1 %"$gascmp_923", label %"$out_of_gas_924", label %"$have_gas_925" + +"$out_of_gas_924": ; preds = %"$have_gas_910" + call void @_out_of_gas() + br label %"$have_gas_925" + +"$have_gas_925": ; preds = %"$out_of_gas_924", %"$have_gas_910" + %"$consume_926" = sub i64 %"$gasrem_922", %"$gasdivceil_921" + store i64 %"$consume_926", i64* @_gasrem, align 8 + %"$execptr_load_927" = load i8*, i8** @_execptr, align 8 + %"$schnorr_get_address_p9_928" = alloca [33 x i8], align 1 + %"$p9_929" = load [33 x i8], [33 x i8]* %p9, align 1 + store [33 x i8] %"$p9_929", [33 x i8]* %"$schnorr_get_address_p9_928", align 1 + %"$schnorr_get_address_call_930" = call [20 x i8]* @_schnorr_get_address(i8* %"$execptr_load_927", [33 x i8]* %"$schnorr_get_address_p9_928"), !dbg !175 + %"$schnorr_get_address_932" = load [20 x i8], [20 x i8]* %"$schnorr_get_address_call_930", align 1 + store [20 x i8] %"$schnorr_get_address_932", [20 x i8]* %a9_gen, align 1, !dbg !175 + %"$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_925" + call void @_out_of_gas() + br label %"$have_gas_936" + +"$have_gas_936": ; preds = %"$out_of_gas_935", %"$have_gas_925" + %"$consume_937" = sub i64 %"$gasrem_933", 1 + store i64 %"$consume_937", i64* @_gasrem, align 8 + %"$gasrem_938" = load i64, i64* @_gasrem, align 8 + %"$gascmp_939" = icmp ugt i64 20, %"$gasrem_938" + br i1 %"$gascmp_939", label %"$out_of_gas_940", label %"$have_gas_941" + +"$out_of_gas_940": ; preds = %"$have_gas_936" + call void @_out_of_gas() + br label %"$have_gas_941" + +"$have_gas_941": ; preds = %"$out_of_gas_940", %"$have_gas_936" + %"$consume_942" = sub i64 %"$gasrem_938", 20 + store i64 %"$consume_942", i64* @_gasrem, 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 %res1 = alloca %TName_Bool*, align 8 - %"$gasrem_940" = load i64, i64* @_gasrem, align 8 - %"$gascmp_941" = icmp ugt i64 1, %"$gasrem_940" - br i1 %"$gascmp_941", label %"$out_of_gas_942", label %"$have_gas_943" + call void @llvm.dbg.declare(metadata %TName_Bool** %res1, metadata !176, metadata !DIExpression()), !dbg !177 + %"$gasrem_948" = load i64, i64* @_gasrem, align 8 + %"$gascmp_949" = icmp ugt i64 1, %"$gasrem_948" + br i1 %"$gascmp_949", label %"$out_of_gas_950", label %"$have_gas_951" -"$out_of_gas_942": ; preds = %"$have_gas_938" +"$out_of_gas_950": ; preds = %"$have_gas_946" call void @_out_of_gas() - br label %"$have_gas_943" + br label %"$have_gas_951" -"$have_gas_943": ; preds = %"$out_of_gas_942", %"$have_gas_938" - %"$consume_944" = sub i64 %"$gasrem_940", 1 - store i64 %"$consume_944", i64* @_gasrem, align 8 +"$have_gas_951": ; preds = %"$out_of_gas_950", %"$have_gas_946" + %"$consume_952" = sub i64 %"$gasrem_948", 1 + store i64 %"$consume_952", i64* @_gasrem, align 8 %"$BoolUtils.and_4_13" = alloca { { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }, align 8 - %"$BoolUtils.and_4_945" = load { { { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }, { { { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }* @BoolUtils.and_4, align 8 - %"$BoolUtils.and_4_fptr_946" = extractvalue { { { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.and_4_945", 0 - %"$BoolUtils.and_4_envptr_947" = extractvalue { { { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.and_4_945", 1 - %"$r1_948" = load %TName_Bool*, %TName_Bool** %r1, align 8 - %"$BoolUtils.and_4_call_949" = call { { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.and_4_fptr_946"(i8* %"$BoolUtils.and_4_envptr_947", %TName_Bool* %"$r1_948"), !dbg !76 - store { { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.and_4_call_949", { { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.and_4_13", align 8, !dbg !76 + %"$BoolUtils.and_4_953" = load { { { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }, { { { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }* @BoolUtils.and_4, align 8 + %"$BoolUtils.and_4_fptr_954" = extractvalue { { { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.and_4_953", 0 + %"$BoolUtils.and_4_envptr_955" = extractvalue { { { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.and_4_953", 1 + %"$r1_956" = load %TName_Bool*, %TName_Bool** %r1, align 8 + %"$BoolUtils.and_4_call_957" = call { { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.and_4_fptr_954"(i8* %"$BoolUtils.and_4_envptr_955", %TName_Bool* %"$r1_956"), !dbg !178 + store { { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.and_4_call_957", { { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.and_4_13", align 8, !dbg !178 %"$BoolUtils.and_4_14" = alloca { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }, align 8 - %"$$BoolUtils.and_4_13_950" = load { { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }, { { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.and_4_13", align 8 - %"$$BoolUtils.and_4_13_fptr_951" = extractvalue { { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.and_4_13_950", 0 - %"$$BoolUtils.and_4_13_envptr_952" = extractvalue { { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.and_4_13_950", 1 - %"$r2_953" = load %TName_Bool*, %TName_Bool** %r2, align 8 - %"$$BoolUtils.and_4_13_call_954" = call { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.and_4_13_fptr_951"(i8* %"$$BoolUtils.and_4_13_envptr_952", %TName_Bool* %"$r2_953"), !dbg !76 - store { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.and_4_13_call_954", { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.and_4_14", align 8, !dbg !76 + %"$$BoolUtils.and_4_13_958" = load { { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }, { { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.and_4_13", align 8 + %"$$BoolUtils.and_4_13_fptr_959" = extractvalue { { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.and_4_13_958", 0 + %"$$BoolUtils.and_4_13_envptr_960" = extractvalue { { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.and_4_13_958", 1 + %"$r2_961" = load %TName_Bool*, %TName_Bool** %r2, align 8 + %"$$BoolUtils.and_4_13_call_962" = call { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.and_4_13_fptr_959"(i8* %"$$BoolUtils.and_4_13_envptr_960", %TName_Bool* %"$r2_961"), !dbg !178 + store { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.and_4_13_call_962", { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.and_4_14", align 8, !dbg !178 %"$BoolUtils.and_4_15" = alloca { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, align 8 - %"$$BoolUtils.and_4_14_955" = load { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }, { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.and_4_14", align 8 - %"$$BoolUtils.and_4_14_fptr_956" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.and_4_14_955", 0 - %"$$BoolUtils.and_4_14_envptr_957" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.and_4_14_955", 1 - %"$r3_958" = load %TName_Bool*, %TName_Bool** %r3, align 8 - %"$$BoolUtils.and_4_14_call_959" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.and_4_14_fptr_956"(i8* %"$$BoolUtils.and_4_14_envptr_957", %TName_Bool* %"$r3_958"), !dbg !76 - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.and_4_14_call_959", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.and_4_15", align 8, !dbg !76 + %"$$BoolUtils.and_4_14_963" = load { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }, { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.and_4_14", align 8 + %"$$BoolUtils.and_4_14_fptr_964" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.and_4_14_963", 0 + %"$$BoolUtils.and_4_14_envptr_965" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.and_4_14_963", 1 + %"$r3_966" = load %TName_Bool*, %TName_Bool** %r3, align 8 + %"$$BoolUtils.and_4_14_call_967" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.and_4_14_fptr_964"(i8* %"$$BoolUtils.and_4_14_envptr_965", %TName_Bool* %"$r3_966"), !dbg !178 + store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.and_4_14_call_967", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.and_4_15", align 8, !dbg !178 %"$BoolUtils.and_4_16" = alloca %TName_Bool*, align 8 - %"$$BoolUtils.and_4_15_960" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.and_4_15", align 8 - %"$$BoolUtils.and_4_15_fptr_961" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.and_4_15_960", 0 - %"$$BoolUtils.and_4_15_envptr_962" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.and_4_15_960", 1 - %"$r4_963" = load %TName_Bool*, %TName_Bool** %r4, align 8 - %"$$BoolUtils.and_4_15_call_964" = call %TName_Bool* %"$$BoolUtils.and_4_15_fptr_961"(i8* %"$$BoolUtils.and_4_15_envptr_962", %TName_Bool* %"$r4_963"), !dbg !76 - store %TName_Bool* %"$$BoolUtils.and_4_15_call_964", %TName_Bool** %"$BoolUtils.and_4_16", align 8, !dbg !76 - %"$$BoolUtils.and_4_16_965" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.and_4_16", align 8 - store %TName_Bool* %"$$BoolUtils.and_4_16_965", %TName_Bool** %res1, align 8, !dbg !76 - %"$gasrem_966" = load i64, i64* @_gasrem, align 8 - %"$gascmp_967" = icmp ugt i64 1, %"$gasrem_966" - br i1 %"$gascmp_967", label %"$out_of_gas_968", label %"$have_gas_969" - -"$out_of_gas_968": ; preds = %"$have_gas_943" - call void @_out_of_gas() - br label %"$have_gas_969" - -"$have_gas_969": ; preds = %"$out_of_gas_968", %"$have_gas_943" - %"$consume_970" = sub i64 %"$gasrem_966", 1 - store i64 %"$consume_970", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$BoolUtils.and_4_16", metadata !179, metadata !DIExpression()), !dbg !178 + %"$$BoolUtils.and_4_15_968" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.and_4_15", align 8 + %"$$BoolUtils.and_4_15_fptr_969" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.and_4_15_968", 0 + %"$$BoolUtils.and_4_15_envptr_970" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.and_4_15_968", 1 + %"$r4_971" = load %TName_Bool*, %TName_Bool** %r4, align 8 + %"$$BoolUtils.and_4_15_call_972" = call %TName_Bool* %"$$BoolUtils.and_4_15_fptr_969"(i8* %"$$BoolUtils.and_4_15_envptr_970", %TName_Bool* %"$r4_971"), !dbg !178 + store %TName_Bool* %"$$BoolUtils.and_4_15_call_972", %TName_Bool** %"$BoolUtils.and_4_16", align 8, !dbg !178 + %"$$BoolUtils.and_4_16_973" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.and_4_16", align 8 + store %TName_Bool* %"$$BoolUtils.and_4_16_973", %TName_Bool** %res1, align 8, !dbg !178 + %"$gasrem_974" = load i64, i64* @_gasrem, align 8 + %"$gascmp_975" = icmp ugt i64 1, %"$gasrem_974" + br i1 %"$gascmp_975", label %"$out_of_gas_976", label %"$have_gas_977" + +"$out_of_gas_976": ; preds = %"$have_gas_951" + call void @_out_of_gas() + br label %"$have_gas_977" + +"$have_gas_977": ; preds = %"$out_of_gas_976", %"$have_gas_951" + %"$consume_978" = sub i64 %"$gasrem_974", 1 + store i64 %"$consume_978", i64* @_gasrem, align 8 %res2 = alloca %TName_Bool*, align 8 - %"$gasrem_971" = load i64, i64* @_gasrem, align 8 - %"$gascmp_972" = icmp ugt i64 1, %"$gasrem_971" - br i1 %"$gascmp_972", label %"$out_of_gas_973", label %"$have_gas_974" + call void @llvm.dbg.declare(metadata %TName_Bool** %res2, metadata !180, metadata !DIExpression()), !dbg !181 + %"$gasrem_979" = load i64, i64* @_gasrem, align 8 + %"$gascmp_980" = icmp ugt i64 1, %"$gasrem_979" + br i1 %"$gascmp_980", label %"$out_of_gas_981", label %"$have_gas_982" -"$out_of_gas_973": ; preds = %"$have_gas_969" +"$out_of_gas_981": ; preds = %"$have_gas_977" call void @_out_of_gas() - br label %"$have_gas_974" + br label %"$have_gas_982" -"$have_gas_974": ; preds = %"$out_of_gas_973", %"$have_gas_969" - %"$consume_975" = sub i64 %"$gasrem_971", 1 - store i64 %"$consume_975", i64* @_gasrem, align 8 +"$have_gas_982": ; preds = %"$out_of_gas_981", %"$have_gas_977" + %"$consume_983" = sub i64 %"$gasrem_979", 1 + store i64 %"$consume_983", i64* @_gasrem, align 8 %"$BoolUtils.and_4_17" = alloca { { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }, align 8 - %"$BoolUtils.and_4_976" = load { { { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }, { { { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }* @BoolUtils.and_4, align 8 - %"$BoolUtils.and_4_fptr_977" = extractvalue { { { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.and_4_976", 0 - %"$BoolUtils.and_4_envptr_978" = extractvalue { { { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.and_4_976", 1 - %"$r5_979" = load %TName_Bool*, %TName_Bool** %r5, align 8 - %"$BoolUtils.and_4_call_980" = call { { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.and_4_fptr_977"(i8* %"$BoolUtils.and_4_envptr_978", %TName_Bool* %"$r5_979"), !dbg !77 - store { { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.and_4_call_980", { { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.and_4_17", align 8, !dbg !77 + %"$BoolUtils.and_4_984" = load { { { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }, { { { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }* @BoolUtils.and_4, align 8 + %"$BoolUtils.and_4_fptr_985" = extractvalue { { { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.and_4_984", 0 + %"$BoolUtils.and_4_envptr_986" = extractvalue { { { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.and_4_984", 1 + %"$r5_987" = load %TName_Bool*, %TName_Bool** %r5, align 8 + %"$BoolUtils.and_4_call_988" = call { { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.and_4_fptr_985"(i8* %"$BoolUtils.and_4_envptr_986", %TName_Bool* %"$r5_987"), !dbg !182 + store { { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.and_4_call_988", { { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.and_4_17", align 8, !dbg !182 %"$BoolUtils.and_4_18" = alloca { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }, align 8 - %"$$BoolUtils.and_4_17_981" = load { { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }, { { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.and_4_17", align 8 - %"$$BoolUtils.and_4_17_fptr_982" = extractvalue { { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.and_4_17_981", 0 - %"$$BoolUtils.and_4_17_envptr_983" = extractvalue { { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.and_4_17_981", 1 - %"$r6_984" = load %TName_Bool*, %TName_Bool** %r6, align 8 - %"$$BoolUtils.and_4_17_call_985" = call { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.and_4_17_fptr_982"(i8* %"$$BoolUtils.and_4_17_envptr_983", %TName_Bool* %"$r6_984"), !dbg !77 - store { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.and_4_17_call_985", { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.and_4_18", align 8, !dbg !77 + %"$$BoolUtils.and_4_17_989" = load { { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }, { { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.and_4_17", align 8 + %"$$BoolUtils.and_4_17_fptr_990" = extractvalue { { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.and_4_17_989", 0 + %"$$BoolUtils.and_4_17_envptr_991" = extractvalue { { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.and_4_17_989", 1 + %"$r6_992" = load %TName_Bool*, %TName_Bool** %r6, align 8 + %"$$BoolUtils.and_4_17_call_993" = call { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.and_4_17_fptr_990"(i8* %"$$BoolUtils.and_4_17_envptr_991", %TName_Bool* %"$r6_992"), !dbg !182 + store { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.and_4_17_call_993", { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.and_4_18", align 8, !dbg !182 %"$BoolUtils.and_4_19" = alloca { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, align 8 - %"$$BoolUtils.and_4_18_986" = load { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }, { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.and_4_18", align 8 - %"$$BoolUtils.and_4_18_fptr_987" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.and_4_18_986", 0 - %"$$BoolUtils.and_4_18_envptr_988" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.and_4_18_986", 1 - %"$r7_989" = load %TName_Bool*, %TName_Bool** %r7, align 8 - %"$$BoolUtils.and_4_18_call_990" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.and_4_18_fptr_987"(i8* %"$$BoolUtils.and_4_18_envptr_988", %TName_Bool* %"$r7_989"), !dbg !77 - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.and_4_18_call_990", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.and_4_19", align 8, !dbg !77 + %"$$BoolUtils.and_4_18_994" = load { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }, { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.and_4_18", align 8 + %"$$BoolUtils.and_4_18_fptr_995" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.and_4_18_994", 0 + %"$$BoolUtils.and_4_18_envptr_996" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.and_4_18_994", 1 + %"$r7_997" = load %TName_Bool*, %TName_Bool** %r7, align 8 + %"$$BoolUtils.and_4_18_call_998" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.and_4_18_fptr_995"(i8* %"$$BoolUtils.and_4_18_envptr_996", %TName_Bool* %"$r7_997"), !dbg !182 + store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.and_4_18_call_998", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.and_4_19", align 8, !dbg !182 %"$BoolUtils.and_4_20" = alloca %TName_Bool*, align 8 - %"$$BoolUtils.and_4_19_991" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.and_4_19", align 8 - %"$$BoolUtils.and_4_19_fptr_992" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.and_4_19_991", 0 - %"$$BoolUtils.and_4_19_envptr_993" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.and_4_19_991", 1 - %"$r8_994" = load %TName_Bool*, %TName_Bool** %r8, align 8 - %"$$BoolUtils.and_4_19_call_995" = call %TName_Bool* %"$$BoolUtils.and_4_19_fptr_992"(i8* %"$$BoolUtils.and_4_19_envptr_993", %TName_Bool* %"$r8_994"), !dbg !77 - store %TName_Bool* %"$$BoolUtils.and_4_19_call_995", %TName_Bool** %"$BoolUtils.and_4_20", align 8, !dbg !77 - %"$$BoolUtils.and_4_20_996" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.and_4_20", align 8 - store %TName_Bool* %"$$BoolUtils.and_4_20_996", %TName_Bool** %res2, align 8, !dbg !77 - %"$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_974" - call void @_out_of_gas() - br label %"$have_gas_1000" - -"$have_gas_1000": ; preds = %"$out_of_gas_999", %"$have_gas_974" - %"$consume_1001" = sub i64 %"$gasrem_997", 1 - store i64 %"$consume_1001", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$BoolUtils.and_4_20", metadata !183, metadata !DIExpression()), !dbg !182 + %"$$BoolUtils.and_4_19_999" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.and_4_19", align 8 + %"$$BoolUtils.and_4_19_fptr_1000" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.and_4_19_999", 0 + %"$$BoolUtils.and_4_19_envptr_1001" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.and_4_19_999", 1 + %"$r8_1002" = load %TName_Bool*, %TName_Bool** %r8, align 8 + %"$$BoolUtils.and_4_19_call_1003" = call %TName_Bool* %"$$BoolUtils.and_4_19_fptr_1000"(i8* %"$$BoolUtils.and_4_19_envptr_1001", %TName_Bool* %"$r8_1002"), !dbg !182 + store %TName_Bool* %"$$BoolUtils.and_4_19_call_1003", %TName_Bool** %"$BoolUtils.and_4_20", align 8, !dbg !182 + %"$$BoolUtils.and_4_20_1004" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.and_4_20", align 8 + store %TName_Bool* %"$$BoolUtils.and_4_20_1004", %TName_Bool** %res2, align 8, !dbg !182 + %"$gasrem_1005" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1006" = icmp ugt i64 1, %"$gasrem_1005" + br i1 %"$gascmp_1006", label %"$out_of_gas_1007", label %"$have_gas_1008" + +"$out_of_gas_1007": ; preds = %"$have_gas_982" + call void @_out_of_gas() + br label %"$have_gas_1008" + +"$have_gas_1008": ; preds = %"$out_of_gas_1007", %"$have_gas_982" + %"$consume_1009" = sub i64 %"$gasrem_1005", 1 + store i64 %"$consume_1009", i64* @_gasrem, align 8 %"$BoolUtils.andb_21" = alloca { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, align 8 - %"$BoolUtils.andb_1002" = 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_1003" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_1002", 0 - %"$BoolUtils.andb_envptr_1004" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_1002", 1 - %"$res1_1005" = load %TName_Bool*, %TName_Bool** %res1, align 8 - %"$BoolUtils.andb_call_1006" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_1003"(i8* %"$BoolUtils.andb_envptr_1004", %TName_Bool* %"$res1_1005"), !dbg !78 - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_1006", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_21", align 8, !dbg !78 + %"$BoolUtils.andb_1010" = 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_1011" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_1010", 0 + %"$BoolUtils.andb_envptr_1012" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_1010", 1 + %"$res1_1013" = load %TName_Bool*, %TName_Bool** %res1, align 8 + %"$BoolUtils.andb_call_1014" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_1011"(i8* %"$BoolUtils.andb_envptr_1012", %TName_Bool* %"$res1_1013"), !dbg !184 + store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_1014", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_21", align 8, !dbg !184 %"$BoolUtils.andb_22" = alloca %TName_Bool*, align 8 - %"$$BoolUtils.andb_21_1007" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_21", align 8 - %"$$BoolUtils.andb_21_fptr_1008" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_21_1007", 0 - %"$$BoolUtils.andb_21_envptr_1009" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_21_1007", 1 - %"$res2_1010" = load %TName_Bool*, %TName_Bool** %res2, align 8 - %"$$BoolUtils.andb_21_call_1011" = call %TName_Bool* %"$$BoolUtils.andb_21_fptr_1008"(i8* %"$$BoolUtils.andb_21_envptr_1009", %TName_Bool* %"$res2_1010"), !dbg !78 - store %TName_Bool* %"$$BoolUtils.andb_21_call_1011", %TName_Bool** %"$BoolUtils.andb_22", align 8, !dbg !78 - %"$$BoolUtils.andb_22_1012" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_22", align 8 - store %TName_Bool* %"$$BoolUtils.andb_22_1012", %TName_Bool** %"$expr_39", align 8, !dbg !78 - %"$$expr_39_1013" = load %TName_Bool*, %TName_Bool** %"$expr_39", align 8 - ret %TName_Bool* %"$$expr_39_1013" + call void @llvm.dbg.declare(metadata %TName_Bool** %"$BoolUtils.andb_22", metadata !185, metadata !DIExpression()), !dbg !184 + %"$$BoolUtils.andb_21_1015" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_21", align 8 + %"$$BoolUtils.andb_21_fptr_1016" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_21_1015", 0 + %"$$BoolUtils.andb_21_envptr_1017" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_21_1015", 1 + %"$res2_1018" = load %TName_Bool*, %TName_Bool** %res2, align 8 + %"$$BoolUtils.andb_21_call_1019" = call %TName_Bool* %"$$BoolUtils.andb_21_fptr_1016"(i8* %"$$BoolUtils.andb_21_envptr_1017", %TName_Bool* %"$res2_1018"), !dbg !184 + store %TName_Bool* %"$$BoolUtils.andb_21_call_1019", %TName_Bool** %"$BoolUtils.andb_22", align 8, !dbg !184 + %"$$BoolUtils.andb_22_1020" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_22", align 8 + store %TName_Bool* %"$$BoolUtils.andb_22_1020", %TName_Bool** %"$expr_39", align 8, !dbg !184 + %"$$expr_39_1021" = load %TName_Bool*, %TName_Bool** %"$expr_39", align 8 + ret %TName_Bool* %"$$expr_39_1021" } declare i64 @_literal_cost(%_TyDescrTy_Typ*, i8*) @@ -1941,92 +2016,201 @@ declare void @_print_scilla_val(i8*, %_TyDescrTy_Typ*, i8*) define void @scilla_main() { entry: - %"$exprval_1014" = call %TName_Bool* @_scilla_expr_fun(i8* null) - %"$memvoidcast_1015" = bitcast %TName_Bool* %"$exprval_1014" to i8* - %"$execptr_load_1016" = load i8*, i8** @_execptr, align 8 - call void @_print_scilla_val(i8* %"$execptr_load_1016", %_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_78", i8* %"$memvoidcast_1015") + %"$exprval_1022" = call %TName_Bool* @_scilla_expr_fun(i8* null) + %"$memvoidcast_1023" = bitcast %TName_Bool* %"$exprval_1022" to i8* + %"$execptr_load_1024" = load i8*, i8** @_execptr, align 8 + call void @_print_scilla_val(i8* %"$execptr_load_1024", %_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_78", i8* %"$memvoidcast_1023") ret void } +attributes #0 = { nocallback nofree nosync nounwind readnone speculatable willreturn } + !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) +!1 = distinct !DICompileUnit(language: DW_LANG_C89, file: !2, producer: "Scilla Compiler", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false) !2 = !DIFile(filename: "builtin-schnorr_get_address.scilexp", directory: "codegen/expr") -!3 = !{} -!4 = distinct !DISubprogram(name: "$fundef_33", linkageName: "$fundef_33", scope: !5, file: !5, line: 52, type: !6, scopeLine: 52, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!5 = !DIFile(filename: "BoolUtils.scillib", directory: "../src/stdlib") -!6 = !DISubroutineType(types: !7) -!7 = !{!8} -!8 = !DIBasicType(tag: DW_TAG_unspecified_type, name: "void") -!9 = !DILocation(line: 52, column: 14, scope: !4) -!10 = !DILocation(line: 53, column: 14, scope: !4) -!11 = !DILocation(line: 54, column: 5, scope: !4) -!12 = distinct !DISubprogram(name: "$fundef_31", linkageName: "$fundef_31", scope: !5, file: !5, line: 51, type: !6, scopeLine: 51, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!13 = !DILocation(line: 52, column: 5, scope: !12) -!14 = distinct !DISubprogram(name: "$fundef_29", linkageName: "$fundef_29", scope: !5, file: !5, line: 51, type: !6, scopeLine: 51, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!15 = !DILocation(line: 51, column: 57, scope: !14) -!16 = distinct !DISubprogram(name: "$fundef_27", linkageName: "$fundef_27", scope: !5, file: !5, line: 51, type: !6, scopeLine: 51, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!17 = !DILocation(line: 51, column: 39, scope: !16) -!18 = 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) -!19 = !DILocation(line: 8, column: 5, scope: !18) -!20 = !DILocation(line: 9, column: 16, scope: !21) -!21 = distinct !DILexicalBlock(scope: !22, file: !5, line: 9, column: 7) -!22 = distinct !DILexicalBlock(scope: !18, file: !5, line: 8, column: 5) -!23 = !DILocation(line: 10, column: 16, scope: !24) -!24 = distinct !DILexicalBlock(scope: !22, file: !5, line: 10, column: 7) -!25 = 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) -!26 = !DILocation(line: 8, column: 5, scope: !25) -!27 = distinct !DISubprogram(name: "$fundef_37", linkageName: "$fundef_37", scope: !5, file: !5, line: 8, type: !6, scopeLine: 8, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!28 = !DILocation(line: 8, column: 5, scope: !27) -!29 = !DILocation(line: 9, column: 16, scope: !30) -!30 = distinct !DILexicalBlock(scope: !31, file: !5, line: 9, column: 7) -!31 = distinct !DILexicalBlock(scope: !27, file: !5, line: 8, column: 5) -!32 = !DILocation(line: 10, column: 16, scope: !33) -!33 = distinct !DILexicalBlock(scope: !31, file: !5, line: 10, column: 7) -!34 = distinct !DISubprogram(name: "$fundef_35", linkageName: "$fundef_35", scope: !5, file: !5, line: 7, type: !6, scopeLine: 7, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!35 = !DILocation(line: 8, column: 5, scope: !34) -!36 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !37, file: !37, type: !6, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!37 = !DIFile(filename: ".", directory: ".") -!38 = !DILocation(line: 0, scope: !36) -!39 = !DILocation(line: 7, column: 3, scope: !36) -!40 = !DILocation(line: 51, column: 21, scope: !36) -!41 = distinct !DISubprogram(name: "_scilla_expr_fun", linkageName: "_scilla_expr_fun", scope: !2, file: !2, line: 3, type: !6, scopeLine: 3, spFlags: DISPFlagDefinition, unit: !1, retainedNodes: !3) -!42 = !DILocation(line: 3, column: 9, scope: !41) -!43 = !DILocation(line: 4, column: 10, scope: !41) -!44 = !DILocation(line: 5, column: 14, scope: !41) -!45 = !DILocation(line: 6, column: 10, scope: !41) -!46 = !DILocation(line: 8, column: 9, scope: !41) -!47 = !DILocation(line: 9, column: 10, scope: !41) -!48 = !DILocation(line: 10, column: 14, scope: !41) -!49 = !DILocation(line: 11, column: 10, scope: !41) -!50 = !DILocation(line: 13, column: 9, scope: !41) -!51 = !DILocation(line: 14, column: 10, scope: !41) -!52 = !DILocation(line: 15, column: 14, scope: !41) -!53 = !DILocation(line: 16, column: 10, scope: !41) -!54 = !DILocation(line: 18, column: 9, scope: !41) -!55 = !DILocation(line: 19, column: 10, scope: !41) -!56 = !DILocation(line: 20, column: 14, scope: !41) -!57 = !DILocation(line: 21, column: 10, scope: !41) -!58 = !DILocation(line: 23, column: 9, scope: !41) -!59 = !DILocation(line: 24, column: 10, scope: !41) -!60 = !DILocation(line: 25, column: 14, scope: !41) -!61 = !DILocation(line: 26, column: 10, scope: !41) -!62 = !DILocation(line: 28, column: 9, scope: !41) -!63 = !DILocation(line: 29, column: 10, scope: !41) -!64 = !DILocation(line: 30, column: 14, scope: !41) -!65 = !DILocation(line: 31, column: 10, scope: !41) -!66 = !DILocation(line: 33, column: 9, scope: !41) -!67 = !DILocation(line: 34, column: 10, scope: !41) -!68 = !DILocation(line: 35, column: 14, scope: !41) -!69 = !DILocation(line: 36, column: 10, scope: !41) -!70 = !DILocation(line: 38, column: 9, scope: !41) -!71 = !DILocation(line: 39, column: 10, scope: !41) -!72 = !DILocation(line: 40, column: 14, scope: !41) -!73 = !DILocation(line: 41, column: 10, scope: !41) -!74 = !DILocation(line: 43, column: 9, scope: !41) -!75 = !DILocation(line: 45, column: 14, scope: !41) -!76 = !DILocation(line: 48, column: 12, scope: !41) -!77 = !DILocation(line: 49, column: 12, scope: !41) -!78 = !DILocation(line: 51, column: 1, scope: !41) +!3 = distinct !DISubprogram(name: "$fundef_33", linkageName: "$fundef_33", scope: !4, file: !4, line: 52, type: !5, scopeLine: 52, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!4 = !DIFile(filename: "BoolUtils.scillib", directory: "../src/stdlib") +!5 = !DISubroutineType(types: !6) +!6 = !{!7} +!7 = !DIBasicType(tag: DW_TAG_unspecified_type, name: "void") +!8 = !{} +!9 = !DILocalVariable(name: "d", scope: !3, file: !4, line: 51, type: !10) +!10 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "Bool", baseType: !11, size: 8, align: 8, dwarfAddressSpace: 0) +!11 = !DIBasicType(name: "Bool", size: 8) +!12 = !DILocation(line: 51, column: 62, scope: !3) +!13 = !DILocalVariable(name: "$retval_34", scope: !3, file: !4, line: 52, type: !10) +!14 = !DILocation(line: 52, column: 5, scope: !3) +!15 = !DILocalVariable(name: "t1", scope: !3, file: !4, line: 52, type: !10) +!16 = !DILocation(line: 52, column: 9, scope: !3) +!17 = !DILocation(line: 52, column: 14, scope: !3) +!18 = !DILocalVariable(name: "$$BoolUtils.andb_6_8", scope: !3, file: !4, line: 52, type: !10) +!19 = !DILocalVariable(name: "t2", scope: !3, file: !4, line: 53, type: !10) +!20 = !DILocation(line: 53, column: 9, scope: !3) +!21 = !DILocation(line: 53, column: 14, scope: !3) +!22 = !DILocalVariable(name: "$$BoolUtils.andb_6_10", scope: !3, file: !4, line: 53, type: !10) +!23 = !DILocation(line: 54, column: 5, scope: !3) +!24 = !DILocalVariable(name: "$$BoolUtils.andb_6_12", scope: !3, file: !4, line: 54, type: !10) +!25 = distinct !DISubprogram(name: "$fundef_31", linkageName: "$fundef_31", scope: !4, file: !4, line: 51, type: !5, scopeLine: 51, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!26 = !DILocalVariable(name: "c", scope: !25, file: !4, line: 51, type: !10) +!27 = !DILocation(line: 51, column: 44, scope: !25) +!28 = !DILocation(line: 52, column: 5, scope: !25) +!29 = distinct !DISubprogram(name: "$fundef_29", linkageName: "$fundef_29", scope: !4, file: !4, line: 51, type: !5, scopeLine: 51, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!30 = !DILocalVariable(name: "b", scope: !29, file: !4, line: 51, type: !10) +!31 = !DILocation(line: 51, column: 26, scope: !29) +!32 = !DILocation(line: 51, column: 57, scope: !29) +!33 = distinct !DISubprogram(name: "$fundef_27", linkageName: "$fundef_27", scope: !4, file: !4, line: 51, type: !5, scopeLine: 51, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!34 = !DILocalVariable(name: "a", scope: !33, file: !4, line: 51, type: !10) +!35 = !DILocation(line: 51, column: 8, scope: !33) +!36 = !DILocation(line: 51, column: 39, scope: !33) +!37 = distinct !DISubprogram(name: "$fundef_25", linkageName: "$fundef_25", scope: !4, file: !4, line: 8, type: !5, scopeLine: 8, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!38 = !DILocalVariable(name: "c", scope: !37, file: !4, line: 7, type: !10) +!39 = !DILocation(line: 7, column: 8, scope: !37) +!40 = !DILocalVariable(name: "$retval_26", scope: !37, file: !4, line: 8, type: !10) +!41 = !DILocation(line: 8, column: 5, scope: !37) +!42 = !DILocation(line: 9, column: 16, scope: !43) +!43 = distinct !DILexicalBlock(scope: !44, file: !4, line: 9, column: 7) +!44 = distinct !DILexicalBlock(scope: !37, file: !4, line: 8, column: 5) +!45 = !DILocation(line: 10, column: 16, scope: !46) +!46 = distinct !DILexicalBlock(scope: !44, file: !4, line: 10, column: 7) +!47 = distinct !DISubprogram(name: "$fundef_23", linkageName: "$fundef_23", scope: !4, file: !4, line: 7, type: !5, scopeLine: 7, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!48 = !DILocalVariable(name: "b", scope: !47, file: !4, line: 6, type: !10) +!49 = !DILocation(line: 6, column: 8, scope: !47) +!50 = !DILocation(line: 8, column: 5, scope: !47) +!51 = distinct !DISubprogram(name: "$fundef_37", linkageName: "$fundef_37", scope: !4, file: !4, line: 8, type: !5, scopeLine: 8, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!52 = !DILocalVariable(name: "c", scope: !51, file: !4, line: 7, type: !10) +!53 = !DILocation(line: 7, column: 8, scope: !51) +!54 = !DILocalVariable(name: "$retval_38", scope: !51, file: !4, line: 8, type: !10) +!55 = !DILocation(line: 8, column: 5, scope: !51) +!56 = !DILocation(line: 9, column: 16, scope: !57) +!57 = distinct !DILexicalBlock(scope: !58, file: !4, line: 9, column: 7) +!58 = distinct !DILexicalBlock(scope: !51, file: !4, line: 8, column: 5) +!59 = !DILocation(line: 10, column: 16, scope: !60) +!60 = distinct !DILexicalBlock(scope: !58, file: !4, line: 10, column: 7) +!61 = distinct !DISubprogram(name: "$fundef_35", linkageName: "$fundef_35", scope: !4, file: !4, line: 7, type: !5, scopeLine: 7, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!62 = !DILocalVariable(name: "b", scope: !61, file: !4, line: 6, type: !10) +!63 = !DILocation(line: 6, column: 8, scope: !61) +!64 = !DILocation(line: 8, column: 5, scope: !61) +!65 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !66, file: !66, type: !5, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!66 = !DIFile(filename: ".", directory: ".") +!67 = !DILocation(line: 0, scope: !65) +!68 = !DILocation(line: 7, column: 3, scope: !65) +!69 = !DILocation(line: 51, column: 21, scope: !65) +!70 = 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: !8) +!71 = !DILocalVariable(name: "$expr_39", scope: !70, file: !2, line: 3, type: !10) +!72 = !DILocation(line: 3, column: 9, scope: !70) +!73 = !DILocalVariable(name: "p1", scope: !70, file: !2, line: 3, type: !74) +!74 = !DIBasicType(name: "ByStr33", size: 33) +!75 = !DILocation(line: 3, column: 5, scope: !70) +!76 = !DILocalVariable(name: "a1", scope: !70, file: !2, line: 4, type: !77) +!77 = !DIBasicType(name: "ByStr20", size: 20) +!78 = !DILocation(line: 4, column: 5, scope: !70) +!79 = !DILocation(line: 4, column: 10, scope: !70) +!80 = !DILocalVariable(name: "a1_gen", scope: !70, file: !2, line: 5, type: !77) +!81 = !DILocation(line: 5, column: 5, scope: !70) +!82 = !DILocation(line: 5, column: 14, scope: !70) +!83 = !DILocalVariable(name: "r1", scope: !70, file: !2, line: 6, type: !10) +!84 = !DILocation(line: 6, column: 5, scope: !70) +!85 = !DILocation(line: 6, column: 10, scope: !70) +!86 = !DILocalVariable(name: "p2", scope: !70, file: !2, line: 8, type: !74) +!87 = !DILocation(line: 8, column: 5, scope: !70) +!88 = !DILocation(line: 8, column: 9, scope: !70) +!89 = !DILocalVariable(name: "a2", scope: !70, file: !2, line: 9, type: !77) +!90 = !DILocation(line: 9, column: 5, scope: !70) +!91 = !DILocation(line: 9, column: 10, scope: !70) +!92 = !DILocalVariable(name: "a2_gen", scope: !70, file: !2, line: 10, type: !77) +!93 = !DILocation(line: 10, column: 5, scope: !70) +!94 = !DILocation(line: 10, column: 14, scope: !70) +!95 = !DILocalVariable(name: "r2", scope: !70, file: !2, line: 11, type: !10) +!96 = !DILocation(line: 11, column: 5, scope: !70) +!97 = !DILocation(line: 11, column: 10, scope: !70) +!98 = !DILocalVariable(name: "p3", scope: !70, file: !2, line: 13, type: !74) +!99 = !DILocation(line: 13, column: 5, scope: !70) +!100 = !DILocation(line: 13, column: 9, scope: !70) +!101 = !DILocalVariable(name: "a3", scope: !70, file: !2, line: 14, type: !77) +!102 = !DILocation(line: 14, column: 5, scope: !70) +!103 = !DILocation(line: 14, column: 10, scope: !70) +!104 = !DILocalVariable(name: "a3_gen", scope: !70, file: !2, line: 15, type: !77) +!105 = !DILocation(line: 15, column: 5, scope: !70) +!106 = !DILocation(line: 15, column: 14, scope: !70) +!107 = !DILocalVariable(name: "r3", scope: !70, file: !2, line: 16, type: !10) +!108 = !DILocation(line: 16, column: 5, scope: !70) +!109 = !DILocation(line: 16, column: 10, scope: !70) +!110 = !DILocalVariable(name: "p4", scope: !70, file: !2, line: 18, type: !74) +!111 = !DILocation(line: 18, column: 5, scope: !70) +!112 = !DILocation(line: 18, column: 9, scope: !70) +!113 = !DILocalVariable(name: "a4", scope: !70, file: !2, line: 19, type: !77) +!114 = !DILocation(line: 19, column: 5, scope: !70) +!115 = !DILocation(line: 19, column: 10, scope: !70) +!116 = !DILocalVariable(name: "a4_gen", scope: !70, file: !2, line: 20, type: !77) +!117 = !DILocation(line: 20, column: 5, scope: !70) +!118 = !DILocation(line: 20, column: 14, scope: !70) +!119 = !DILocalVariable(name: "r4", scope: !70, file: !2, line: 21, type: !10) +!120 = !DILocation(line: 21, column: 5, scope: !70) +!121 = !DILocation(line: 21, column: 10, scope: !70) +!122 = !DILocalVariable(name: "p5", scope: !70, file: !2, line: 23, type: !74) +!123 = !DILocation(line: 23, column: 5, scope: !70) +!124 = !DILocation(line: 23, column: 9, scope: !70) +!125 = !DILocalVariable(name: "a5", scope: !70, file: !2, line: 24, type: !77) +!126 = !DILocation(line: 24, column: 5, scope: !70) +!127 = !DILocation(line: 24, column: 10, scope: !70) +!128 = !DILocalVariable(name: "a5_gen", scope: !70, file: !2, line: 25, type: !77) +!129 = !DILocation(line: 25, column: 5, scope: !70) +!130 = !DILocation(line: 25, column: 14, scope: !70) +!131 = !DILocalVariable(name: "r5", scope: !70, file: !2, line: 26, type: !10) +!132 = !DILocation(line: 26, column: 5, scope: !70) +!133 = !DILocation(line: 26, column: 10, scope: !70) +!134 = !DILocalVariable(name: "p6", scope: !70, file: !2, line: 28, type: !74) +!135 = !DILocation(line: 28, column: 5, scope: !70) +!136 = !DILocation(line: 28, column: 9, scope: !70) +!137 = !DILocalVariable(name: "a6", scope: !70, file: !2, line: 29, type: !77) +!138 = !DILocation(line: 29, column: 5, scope: !70) +!139 = !DILocation(line: 29, column: 10, scope: !70) +!140 = !DILocalVariable(name: "a6_gen", scope: !70, file: !2, line: 30, type: !77) +!141 = !DILocation(line: 30, column: 5, scope: !70) +!142 = !DILocation(line: 30, column: 14, scope: !70) +!143 = !DILocalVariable(name: "r6", scope: !70, file: !2, line: 31, type: !10) +!144 = !DILocation(line: 31, column: 5, scope: !70) +!145 = !DILocation(line: 31, column: 10, scope: !70) +!146 = !DILocalVariable(name: "p7", scope: !70, file: !2, line: 33, type: !74) +!147 = !DILocation(line: 33, column: 5, scope: !70) +!148 = !DILocation(line: 33, column: 9, scope: !70) +!149 = !DILocalVariable(name: "a7", scope: !70, file: !2, line: 34, type: !77) +!150 = !DILocation(line: 34, column: 5, scope: !70) +!151 = !DILocation(line: 34, column: 10, scope: !70) +!152 = !DILocalVariable(name: "a7_gen", scope: !70, file: !2, line: 35, type: !77) +!153 = !DILocation(line: 35, column: 5, scope: !70) +!154 = !DILocation(line: 35, column: 14, scope: !70) +!155 = !DILocalVariable(name: "r7", scope: !70, file: !2, line: 36, type: !10) +!156 = !DILocation(line: 36, column: 5, scope: !70) +!157 = !DILocation(line: 36, column: 10, scope: !70) +!158 = !DILocalVariable(name: "p8", scope: !70, file: !2, line: 38, type: !74) +!159 = !DILocation(line: 38, column: 5, scope: !70) +!160 = !DILocation(line: 38, column: 9, scope: !70) +!161 = !DILocalVariable(name: "a8", scope: !70, file: !2, line: 39, type: !77) +!162 = !DILocation(line: 39, column: 5, scope: !70) +!163 = !DILocation(line: 39, column: 10, scope: !70) +!164 = !DILocalVariable(name: "a8_gen", scope: !70, file: !2, line: 40, type: !77) +!165 = !DILocation(line: 40, column: 5, scope: !70) +!166 = !DILocation(line: 40, column: 14, scope: !70) +!167 = !DILocalVariable(name: "r8", scope: !70, file: !2, line: 41, type: !10) +!168 = !DILocation(line: 41, column: 5, scope: !70) +!169 = !DILocation(line: 41, column: 10, scope: !70) +!170 = !DILocalVariable(name: "p9", scope: !70, file: !2, line: 43, type: !74) +!171 = !DILocation(line: 43, column: 5, scope: !70) +!172 = !DILocation(line: 43, column: 9, scope: !70) +!173 = !DILocalVariable(name: "a9_gen", scope: !70, file: !2, line: 45, type: !77) +!174 = !DILocation(line: 45, column: 5, scope: !70) +!175 = !DILocation(line: 45, column: 14, scope: !70) +!176 = !DILocalVariable(name: "res1", scope: !70, file: !2, line: 48, type: !10) +!177 = !DILocation(line: 48, column: 5, scope: !70) +!178 = !DILocation(line: 48, column: 12, scope: !70) +!179 = !DILocalVariable(name: "$BoolUtils.and_4_16", scope: !70, file: !2, line: 48, type: !10) +!180 = !DILocalVariable(name: "res2", scope: !70, file: !2, line: 49, type: !10) +!181 = !DILocation(line: 49, column: 5, scope: !70) +!182 = !DILocation(line: 49, column: 12, scope: !70) +!183 = !DILocalVariable(name: "$BoolUtils.and_4_20", scope: !70, file: !2, line: 49, type: !10) +!184 = !DILocation(line: 51, column: 1, scope: !70) +!185 = !DILocalVariable(name: "$BoolUtils.andb_22", scope: !70, file: !2, line: 51, type: !10) diff --git a/testsuite/expr/builtin-schnorr_get_address.ll b/testsuite/expr/builtin-schnorr_get_address.ll index f9a0697a..502ecd21 100644 --- a/testsuite/expr/builtin-schnorr_get_address.ll +++ b/testsuite/expr/builtin-schnorr_get_address.ll @@ -52,7 +52,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-pc-linux-gnu" +target triple = "x86_64-unknown-linux-gnu" %"$TyDescrTy_PrimTyp_40" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/testsuite/expr/builtin_add_int256.dbg.ll b/testsuite/expr/builtin_add_int256.dbg.ll index 6a49d3e6..fcb3101b 100644 --- a/testsuite/expr/builtin_add_int256.dbg.ll +++ b/testsuite/expr/builtin_add_int256.dbg.ll @@ -4,7 +4,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-pc-linux-gnu" +target triple = "x86_64-unknown-linux-gnu" %"$TyDescrTy_PrimTyp_7" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } @@ -59,7 +59,7 @@ target triple = "x86_64-pc-linux-gnu" @_transition_parameters = constant [0 x %"$TransDescr_113"] zeroinitializer @_transition_parameters_length = constant i32 0 -define void @_init_libs() !dbg !4 { +define void @_init_libs() !dbg !3 { entry: %"$gasrem_44" = load i64, i64* @_gasrem, align 8 %"$gascmp_45" = icmp ugt i64 5, %"$gasrem_44" @@ -141,6 +141,7 @@ declare void @_out_of_gas() define internal void @_scilla_expr_fun(i8* %0, %Int256* %1) !dbg !10 { entry: %"$expr_6" = alloca %Int256, align 8 + call void @llvm.dbg.declare(metadata %Int256* %"$expr_6", metadata !11, metadata !DIExpression()), !dbg !13 %"$gasrem_74" = load i64, i64* @_gasrem, align 8 %"$gascmp_75" = icmp ugt i64 1, %"$gasrem_74" br i1 %"$gascmp_75", label %"$out_of_gas_76", label %"$have_gas_77" @@ -153,6 +154,7 @@ entry: %"$consume_78" = sub i64 %"$gasrem_74", 1 store i64 %"$consume_78", i64* @_gasrem, align 8 %one = alloca %Int256, align 8 + call void @llvm.dbg.declare(metadata %Int256* %one, metadata !14, metadata !DIExpression()), !dbg !15 %"$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" @@ -164,7 +166,7 @@ entry: "$have_gas_82": ; preds = %"$out_of_gas_81", %"$have_gas_77" %"$consume_83" = sub i64 %"$gasrem_79", 1 store i64 %"$consume_83", i64* @_gasrem, align 8 - store %Int256 { i256 -1 }, %Int256* %one, align 8, !dbg !11 + store %Int256 { i256 -1 }, %Int256* %one, align 8, !dbg !13 %"$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" @@ -177,6 +179,7 @@ entry: %"$consume_88" = sub i64 %"$gasrem_84", 1 store i64 %"$consume_88", i64* @_gasrem, align 8 %two = alloca %Int256, align 8 + call void @llvm.dbg.declare(metadata %Int256* %two, metadata !16, metadata !DIExpression()), !dbg !17 %"$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" @@ -188,7 +191,7 @@ entry: "$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 %Int256 { i256 2 }, %Int256* %two, align 8, !dbg !12 + store %Int256 { i256 2 }, %Int256* %two, align 8, !dbg !18 %"$gasrem_95" = load i64, i64* @_gasrem, align 8 %"$gascmp_96" = icmp ugt i64 16, %"$gasrem_95" br i1 %"$gascmp_96", label %"$out_of_gas_97", label %"$have_gas_98" @@ -207,14 +210,17 @@ entry: %"$add_two_103" = alloca %Int256, align 8 %"$two_104" = load %Int256, %Int256* %two, align 8 store %Int256 %"$two_104", %Int256* %"$add_two_103", align 8 - %"$add_call_105" = call %Int256* @_add_Int256(i8* %"$execptr_load_100", %Int256* %"$add_one_101", %Int256* %"$add_two_103"), !dbg !13 + %"$add_call_105" = call %Int256* @_add_Int256(i8* %"$execptr_load_100", %Int256* %"$add_one_101", %Int256* %"$add_two_103"), !dbg !19 %"$add_107" = load %Int256, %Int256* %"$add_call_105", align 8 - store %Int256 %"$add_107", %Int256* %"$expr_6", align 8, !dbg !13 + store %Int256 %"$add_107", %Int256* %"$expr_6", align 8, !dbg !19 %"$$expr_6_108" = load %Int256, %Int256* %"$expr_6", align 8 store %Int256 %"$$expr_6_108", %Int256* %1, align 8 ret void } +; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn +declare void @llvm.dbg.declare(metadata, metadata, metadata) #0 + declare %Int256* @_add_Int256(i8*, %Int256*, %Int256*) declare void @_print_scilla_val(i8*, %_TyDescrTy_Typ*, i8*) @@ -229,20 +235,28 @@ entry: ret void } +attributes #0 = { nocallback nofree nosync nounwind readnone speculatable willreturn } + !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) +!1 = distinct !DICompileUnit(language: DW_LANG_C89, file: !2, producer: "Scilla Compiler", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false) !2 = !DIFile(filename: "builtin_add_int256.scilexp", directory: "codegen/expr") -!3 = !{} -!4 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !5, file: !5, type: !6, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!5 = !DIFile(filename: ".", directory: ".") -!6 = !DISubroutineType(types: !7) -!7 = !{!8} -!8 = !DIBasicType(tag: DW_TAG_unspecified_type, name: "void") -!9 = !DILocation(line: 0, scope: !4) -!10 = distinct !DISubprogram(name: "_scilla_expr_fun", linkageName: "_scilla_expr_fun", scope: !2, file: !2, line: 1, type: !6, scopeLine: 1, spFlags: DISPFlagDefinition, unit: !1, retainedNodes: !3) -!11 = !DILocation(line: 1, column: 11, scope: !10) -!12 = !DILocation(line: 2, column: 11, scope: !10) -!13 = !DILocation(line: 3, column: 1, scope: !10) +!3 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !4, file: !4, type: !5, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!4 = !DIFile(filename: ".", directory: ".") +!5 = !DISubroutineType(types: !6) +!6 = !{!7} +!7 = !DIBasicType(tag: DW_TAG_unspecified_type, name: "void") +!8 = !{} +!9 = !DILocation(line: 0, scope: !3) +!10 = distinct !DISubprogram(name: "_scilla_expr_fun", linkageName: "_scilla_expr_fun", scope: !2, file: !2, line: 1, type: !5, scopeLine: 1, spFlags: DISPFlagDefinition, unit: !1, retainedNodes: !8) +!11 = !DILocalVariable(name: "$expr_6", scope: !10, file: !2, line: 1, type: !12) +!12 = !DIBasicType(name: "Int256", size: 32) +!13 = !DILocation(line: 1, column: 11, scope: !10) +!14 = !DILocalVariable(name: "one", scope: !10, file: !2, line: 1, type: !12) +!15 = !DILocation(line: 1, column: 5, scope: !10) +!16 = !DILocalVariable(name: "two", scope: !10, file: !2, line: 2, type: !12) +!17 = !DILocation(line: 2, column: 5, scope: !10) +!18 = !DILocation(line: 2, column: 11, scope: !10) +!19 = !DILocation(line: 3, column: 1, scope: !10) diff --git a/testsuite/expr/builtin_add_int256.ll b/testsuite/expr/builtin_add_int256.ll index fa085b67..9b6d6984 100644 --- a/testsuite/expr/builtin_add_int256.ll +++ b/testsuite/expr/builtin_add_int256.ll @@ -4,7 +4,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-pc-linux-gnu" +target triple = "x86_64-unknown-linux-gnu" %"$TyDescrTy_PrimTyp_7" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/testsuite/expr/builtin_add_int32.dbg.ll b/testsuite/expr/builtin_add_int32.dbg.ll index 3d4af51c..a9091f67 100644 --- a/testsuite/expr/builtin_add_int32.dbg.ll +++ b/testsuite/expr/builtin_add_int32.dbg.ll @@ -4,7 +4,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-pc-linux-gnu" +target triple = "x86_64-unknown-linux-gnu" %"$TyDescrTy_PrimTyp_7" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } @@ -58,7 +58,7 @@ target triple = "x86_64-pc-linux-gnu" @_transition_parameters = constant [0 x %"$TransDescr_108"] zeroinitializer @_transition_parameters_length = constant i32 0 -define void @_init_libs() !dbg !4 { +define void @_init_libs() !dbg !3 { entry: %"$gasrem_44" = load i64, i64* @_gasrem, align 8 %"$gascmp_45" = icmp ugt i64 5, %"$gasrem_44" @@ -140,6 +140,7 @@ declare void @_out_of_gas() define internal %Int32 @_scilla_expr_fun(i8* %0) !dbg !10 { entry: %"$expr_6" = alloca %Int32, align 8 + call void @llvm.dbg.declare(metadata %Int32* %"$expr_6", metadata !11, metadata !DIExpression()), !dbg !13 %"$gasrem_74" = load i64, i64* @_gasrem, align 8 %"$gascmp_75" = icmp ugt i64 1, %"$gasrem_74" br i1 %"$gascmp_75", label %"$out_of_gas_76", label %"$have_gas_77" @@ -152,6 +153,7 @@ entry: %"$consume_78" = sub i64 %"$gasrem_74", 1 store i64 %"$consume_78", i64* @_gasrem, align 8 %one = alloca %Int32, align 8 + call void @llvm.dbg.declare(metadata %Int32* %one, metadata !14, metadata !DIExpression()), !dbg !15 %"$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" @@ -163,7 +165,7 @@ entry: "$have_gas_82": ; preds = %"$out_of_gas_81", %"$have_gas_77" %"$consume_83" = sub i64 %"$gasrem_79", 1 store i64 %"$consume_83", i64* @_gasrem, align 8 - store %Int32 { i32 1 }, %Int32* %one, align 4, !dbg !11 + store %Int32 { i32 1 }, %Int32* %one, align 4, !dbg !13 %"$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" @@ -176,6 +178,7 @@ entry: %"$consume_88" = sub i64 %"$gasrem_84", 1 store i64 %"$consume_88", i64* @_gasrem, align 8 %two = alloca %Int32, align 8 + call void @llvm.dbg.declare(metadata %Int32* %two, metadata !16, metadata !DIExpression()), !dbg !17 %"$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" @@ -187,7 +190,7 @@ entry: "$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 { i32 2 }, %Int32* %two, align 4, !dbg !12 + store %Int32 { i32 2 }, %Int32* %two, align 4, !dbg !18 %"$gasrem_94" = load i64, i64* @_gasrem, align 8 %"$gascmp_95" = icmp ugt i64 4, %"$gasrem_94" br i1 %"$gascmp_95", label %"$out_of_gas_96", label %"$have_gas_97" @@ -201,12 +204,15 @@ entry: store i64 %"$consume_98", i64* @_gasrem, align 8 %"$one_99" = load %Int32, %Int32* %one, align 4 %"$two_100" = load %Int32, %Int32* %two, align 4 - %"$add_call_101" = call %Int32 @_add_Int32(%Int32 %"$one_99", %Int32 %"$two_100"), !dbg !13 - store %Int32 %"$add_call_101", %Int32* %"$expr_6", align 4, !dbg !13 + %"$add_call_101" = call %Int32 @_add_Int32(%Int32 %"$one_99", %Int32 %"$two_100"), !dbg !19 + store %Int32 %"$add_call_101", %Int32* %"$expr_6", align 4, !dbg !19 %"$$expr_6_102" = load %Int32, %Int32* %"$expr_6", align 4 ret %Int32 %"$$expr_6_102" } +; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn +declare void @llvm.dbg.declare(metadata, metadata, metadata) #0 + declare %Int32 @_add_Int32(%Int32, %Int32) declare void @_print_scilla_val(i8*, %_TyDescrTy_Typ*, i8*) @@ -222,20 +228,28 @@ entry: ret void } +attributes #0 = { nocallback nofree nosync nounwind readnone speculatable willreturn } + !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) +!1 = distinct !DICompileUnit(language: DW_LANG_C89, file: !2, producer: "Scilla Compiler", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false) !2 = !DIFile(filename: "builtin_add_int32.scilexp", directory: "codegen/expr") -!3 = !{} -!4 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !5, file: !5, type: !6, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!5 = !DIFile(filename: ".", directory: ".") -!6 = !DISubroutineType(types: !7) -!7 = !{!8} -!8 = !DIBasicType(tag: DW_TAG_unspecified_type, name: "void") -!9 = !DILocation(line: 0, scope: !4) -!10 = distinct !DISubprogram(name: "_scilla_expr_fun", linkageName: "_scilla_expr_fun", scope: !2, file: !2, line: 1, type: !6, scopeLine: 1, spFlags: DISPFlagDefinition, unit: !1, retainedNodes: !3) -!11 = !DILocation(line: 1, column: 11, scope: !10) -!12 = !DILocation(line: 2, column: 11, scope: !10) -!13 = !DILocation(line: 3, column: 1, scope: !10) +!3 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !4, file: !4, type: !5, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!4 = !DIFile(filename: ".", directory: ".") +!5 = !DISubroutineType(types: !6) +!6 = !{!7} +!7 = !DIBasicType(tag: DW_TAG_unspecified_type, name: "void") +!8 = !{} +!9 = !DILocation(line: 0, scope: !3) +!10 = distinct !DISubprogram(name: "_scilla_expr_fun", linkageName: "_scilla_expr_fun", scope: !2, file: !2, line: 1, type: !5, scopeLine: 1, spFlags: DISPFlagDefinition, unit: !1, retainedNodes: !8) +!11 = !DILocalVariable(name: "$expr_6", scope: !10, file: !2, line: 1, type: !12) +!12 = !DIBasicType(name: "Int32", size: 4) +!13 = !DILocation(line: 1, column: 11, scope: !10) +!14 = !DILocalVariable(name: "one", scope: !10, file: !2, line: 1, type: !12) +!15 = !DILocation(line: 1, column: 5, scope: !10) +!16 = !DILocalVariable(name: "two", scope: !10, file: !2, line: 2, type: !12) +!17 = !DILocation(line: 2, column: 5, scope: !10) +!18 = !DILocation(line: 2, column: 11, scope: !10) +!19 = !DILocation(line: 3, column: 1, scope: !10) diff --git a/testsuite/expr/builtin_add_int32.ll b/testsuite/expr/builtin_add_int32.ll index f088e93a..56e35841 100644 --- a/testsuite/expr/builtin_add_int32.ll +++ b/testsuite/expr/builtin_add_int32.ll @@ -4,7 +4,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-pc-linux-gnu" +target triple = "x86_64-unknown-linux-gnu" %"$TyDescrTy_PrimTyp_7" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/testsuite/expr/builtin_add_uint256.dbg.ll b/testsuite/expr/builtin_add_uint256.dbg.ll index 9bad3683..210107f2 100644 --- a/testsuite/expr/builtin_add_uint256.dbg.ll +++ b/testsuite/expr/builtin_add_uint256.dbg.ll @@ -4,7 +4,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-pc-linux-gnu" +target triple = "x86_64-unknown-linux-gnu" %"$TyDescrTy_PrimTyp_7" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } @@ -59,7 +59,7 @@ target triple = "x86_64-pc-linux-gnu" @_transition_parameters = constant [0 x %"$TransDescr_113"] zeroinitializer @_transition_parameters_length = constant i32 0 -define void @_init_libs() !dbg !4 { +define void @_init_libs() !dbg !3 { entry: %"$gasrem_44" = load i64, i64* @_gasrem, align 8 %"$gascmp_45" = icmp ugt i64 5, %"$gasrem_44" @@ -141,6 +141,7 @@ declare void @_out_of_gas() define internal void @_scilla_expr_fun(i8* %0, %Uint256* %1) !dbg !10 { entry: %"$expr_6" = alloca %Uint256, align 8 + call void @llvm.dbg.declare(metadata %Uint256* %"$expr_6", metadata !11, metadata !DIExpression()), !dbg !13 %"$gasrem_74" = load i64, i64* @_gasrem, align 8 %"$gascmp_75" = icmp ugt i64 1, %"$gasrem_74" br i1 %"$gascmp_75", label %"$out_of_gas_76", label %"$have_gas_77" @@ -153,6 +154,7 @@ entry: %"$consume_78" = sub i64 %"$gasrem_74", 1 store i64 %"$consume_78", i64* @_gasrem, align 8 %one = alloca %Uint256, align 8 + call void @llvm.dbg.declare(metadata %Uint256* %one, metadata !14, metadata !DIExpression()), !dbg !15 %"$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" @@ -164,7 +166,7 @@ entry: "$have_gas_82": ; preds = %"$out_of_gas_81", %"$have_gas_77" %"$consume_83" = sub i64 %"$gasrem_79", 1 store i64 %"$consume_83", i64* @_gasrem, align 8 - store %Uint256 { i256 10000000 }, %Uint256* %one, align 8, !dbg !11 + store %Uint256 { i256 10000000 }, %Uint256* %one, align 8, !dbg !13 %"$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" @@ -177,6 +179,7 @@ entry: %"$consume_88" = sub i64 %"$gasrem_84", 1 store i64 %"$consume_88", i64* @_gasrem, align 8 %two = alloca %Uint256, align 8 + call void @llvm.dbg.declare(metadata %Uint256* %two, metadata !16, metadata !DIExpression()), !dbg !17 %"$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" @@ -188,7 +191,7 @@ entry: "$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 %Uint256 { i256 111 }, %Uint256* %two, align 8, !dbg !12 + store %Uint256 { i256 111 }, %Uint256* %two, align 8, !dbg !18 %"$gasrem_95" = load i64, i64* @_gasrem, align 8 %"$gascmp_96" = icmp ugt i64 16, %"$gasrem_95" br i1 %"$gascmp_96", label %"$out_of_gas_97", label %"$have_gas_98" @@ -207,14 +210,17 @@ entry: %"$add_two_103" = alloca %Uint256, align 8 %"$two_104" = load %Uint256, %Uint256* %two, align 8 store %Uint256 %"$two_104", %Uint256* %"$add_two_103", align 8 - %"$add_call_105" = call %Uint256* @_add_Uint256(i8* %"$execptr_load_100", %Uint256* %"$add_one_101", %Uint256* %"$add_two_103"), !dbg !13 + %"$add_call_105" = call %Uint256* @_add_Uint256(i8* %"$execptr_load_100", %Uint256* %"$add_one_101", %Uint256* %"$add_two_103"), !dbg !19 %"$add_107" = load %Uint256, %Uint256* %"$add_call_105", align 8 - store %Uint256 %"$add_107", %Uint256* %"$expr_6", align 8, !dbg !13 + store %Uint256 %"$add_107", %Uint256* %"$expr_6", align 8, !dbg !19 %"$$expr_6_108" = load %Uint256, %Uint256* %"$expr_6", align 8 store %Uint256 %"$$expr_6_108", %Uint256* %1, align 8 ret void } +; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn +declare void @llvm.dbg.declare(metadata, metadata, metadata) #0 + declare %Uint256* @_add_Uint256(i8*, %Uint256*, %Uint256*) declare void @_print_scilla_val(i8*, %_TyDescrTy_Typ*, i8*) @@ -229,20 +235,28 @@ entry: ret void } +attributes #0 = { nocallback nofree nosync nounwind readnone speculatable willreturn } + !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) +!1 = distinct !DICompileUnit(language: DW_LANG_C89, file: !2, producer: "Scilla Compiler", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false) !2 = !DIFile(filename: "builtin_add_uint256.scilexp", directory: "codegen/expr") -!3 = !{} -!4 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !5, file: !5, type: !6, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!5 = !DIFile(filename: ".", directory: ".") -!6 = !DISubroutineType(types: !7) -!7 = !{!8} -!8 = !DIBasicType(tag: DW_TAG_unspecified_type, name: "void") -!9 = !DILocation(line: 0, scope: !4) -!10 = distinct !DISubprogram(name: "_scilla_expr_fun", linkageName: "_scilla_expr_fun", scope: !2, file: !2, line: 1, type: !6, scopeLine: 1, spFlags: DISPFlagDefinition, unit: !1, retainedNodes: !3) -!11 = !DILocation(line: 1, column: 11, scope: !10) -!12 = !DILocation(line: 2, column: 11, scope: !10) -!13 = !DILocation(line: 3, column: 1, scope: !10) +!3 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !4, file: !4, type: !5, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!4 = !DIFile(filename: ".", directory: ".") +!5 = !DISubroutineType(types: !6) +!6 = !{!7} +!7 = !DIBasicType(tag: DW_TAG_unspecified_type, name: "void") +!8 = !{} +!9 = !DILocation(line: 0, scope: !3) +!10 = distinct !DISubprogram(name: "_scilla_expr_fun", linkageName: "_scilla_expr_fun", scope: !2, file: !2, line: 1, type: !5, scopeLine: 1, spFlags: DISPFlagDefinition, unit: !1, retainedNodes: !8) +!11 = !DILocalVariable(name: "$expr_6", scope: !10, file: !2, line: 1, type: !12) +!12 = !DIBasicType(name: "Uint256", size: 32) +!13 = !DILocation(line: 1, column: 11, scope: !10) +!14 = !DILocalVariable(name: "one", scope: !10, file: !2, line: 1, type: !12) +!15 = !DILocation(line: 1, column: 5, scope: !10) +!16 = !DILocalVariable(name: "two", scope: !10, file: !2, line: 2, type: !12) +!17 = !DILocation(line: 2, column: 5, scope: !10) +!18 = !DILocation(line: 2, column: 11, scope: !10) +!19 = !DILocation(line: 3, column: 1, scope: !10) diff --git a/testsuite/expr/builtin_add_uint256.ll b/testsuite/expr/builtin_add_uint256.ll index 9c94ff21..5efedc17 100644 --- a/testsuite/expr/builtin_add_uint256.ll +++ b/testsuite/expr/builtin_add_uint256.ll @@ -4,7 +4,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-pc-linux-gnu" +target triple = "x86_64-unknown-linux-gnu" %"$TyDescrTy_PrimTyp_7" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/testsuite/expr/builtin_add_uint32.dbg.ll b/testsuite/expr/builtin_add_uint32.dbg.ll index b1985ff9..57583cf3 100644 --- a/testsuite/expr/builtin_add_uint32.dbg.ll +++ b/testsuite/expr/builtin_add_uint32.dbg.ll @@ -4,7 +4,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-pc-linux-gnu" +target triple = "x86_64-unknown-linux-gnu" %"$TyDescrTy_PrimTyp_7" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } @@ -59,7 +59,7 @@ target triple = "x86_64-pc-linux-gnu" @_transition_parameters = constant [0 x %"$TransDescr_108"] zeroinitializer @_transition_parameters_length = constant i32 0 -define void @_init_libs() !dbg !4 { +define void @_init_libs() !dbg !3 { entry: %"$gasrem_44" = load i64, i64* @_gasrem, align 8 %"$gascmp_45" = icmp ugt i64 5, %"$gasrem_44" @@ -141,6 +141,7 @@ declare void @_out_of_gas() define internal %Uint32 @_scilla_expr_fun(i8* %0) !dbg !10 { entry: %"$expr_6" = alloca %Uint32, align 8 + call void @llvm.dbg.declare(metadata %Uint32* %"$expr_6", metadata !11, metadata !DIExpression()), !dbg !13 %"$gasrem_74" = load i64, i64* @_gasrem, align 8 %"$gascmp_75" = icmp ugt i64 1, %"$gasrem_74" br i1 %"$gascmp_75", label %"$out_of_gas_76", label %"$have_gas_77" @@ -153,6 +154,7 @@ entry: %"$consume_78" = sub i64 %"$gasrem_74", 1 store i64 %"$consume_78", i64* @_gasrem, align 8 %one = alloca %Uint32, align 8 + call void @llvm.dbg.declare(metadata %Uint32* %one, metadata !14, metadata !DIExpression()), !dbg !15 %"$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" @@ -164,7 +166,7 @@ entry: "$have_gas_82": ; preds = %"$out_of_gas_81", %"$have_gas_77" %"$consume_83" = sub i64 %"$gasrem_79", 1 store i64 %"$consume_83", i64* @_gasrem, align 8 - store %Uint32 { i32 1 }, %Uint32* %one, align 4, !dbg !11 + store %Uint32 { i32 1 }, %Uint32* %one, align 4, !dbg !13 %"$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" @@ -177,6 +179,7 @@ entry: %"$consume_88" = sub i64 %"$gasrem_84", 1 store i64 %"$consume_88", i64* @_gasrem, align 8 %two = alloca %Uint32, align 8 + call void @llvm.dbg.declare(metadata %Uint32* %two, metadata !16, metadata !DIExpression()), !dbg !17 %"$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" @@ -188,7 +191,7 @@ entry: "$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 %Uint32 { i32 2 }, %Uint32* %two, align 4, !dbg !12 + store %Uint32 { i32 2 }, %Uint32* %two, align 4, !dbg !18 %"$gasrem_94" = load i64, i64* @_gasrem, align 8 %"$gascmp_95" = icmp ugt i64 4, %"$gasrem_94" br i1 %"$gascmp_95", label %"$out_of_gas_96", label %"$have_gas_97" @@ -202,12 +205,15 @@ entry: store i64 %"$consume_98", i64* @_gasrem, align 8 %"$one_99" = load %Uint32, %Uint32* %one, align 4 %"$two_100" = load %Uint32, %Uint32* %two, align 4 - %"$add_call_101" = call %Uint32 @_add_Uint32(%Uint32 %"$one_99", %Uint32 %"$two_100"), !dbg !13 - store %Uint32 %"$add_call_101", %Uint32* %"$expr_6", align 4, !dbg !13 + %"$add_call_101" = call %Uint32 @_add_Uint32(%Uint32 %"$one_99", %Uint32 %"$two_100"), !dbg !19 + store %Uint32 %"$add_call_101", %Uint32* %"$expr_6", align 4, !dbg !19 %"$$expr_6_102" = load %Uint32, %Uint32* %"$expr_6", align 4 ret %Uint32 %"$$expr_6_102" } +; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn +declare void @llvm.dbg.declare(metadata, metadata, metadata) #0 + declare %Uint32 @_add_Uint32(%Uint32, %Uint32) declare void @_print_scilla_val(i8*, %_TyDescrTy_Typ*, i8*) @@ -223,20 +229,28 @@ entry: ret void } +attributes #0 = { nocallback nofree nosync nounwind readnone speculatable willreturn } + !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) +!1 = distinct !DICompileUnit(language: DW_LANG_C89, file: !2, producer: "Scilla Compiler", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false) !2 = !DIFile(filename: "builtin_add_uint32.scilexp", directory: "codegen/expr") -!3 = !{} -!4 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !5, file: !5, type: !6, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!5 = !DIFile(filename: ".", directory: ".") -!6 = !DISubroutineType(types: !7) -!7 = !{!8} -!8 = !DIBasicType(tag: DW_TAG_unspecified_type, name: "void") -!9 = !DILocation(line: 0, scope: !4) -!10 = distinct !DISubprogram(name: "_scilla_expr_fun", linkageName: "_scilla_expr_fun", scope: !2, file: !2, line: 1, type: !6, scopeLine: 1, spFlags: DISPFlagDefinition, unit: !1, retainedNodes: !3) -!11 = !DILocation(line: 1, column: 11, scope: !10) -!12 = !DILocation(line: 2, column: 11, scope: !10) -!13 = !DILocation(line: 3, column: 1, scope: !10) +!3 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !4, file: !4, type: !5, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!4 = !DIFile(filename: ".", directory: ".") +!5 = !DISubroutineType(types: !6) +!6 = !{!7} +!7 = !DIBasicType(tag: DW_TAG_unspecified_type, name: "void") +!8 = !{} +!9 = !DILocation(line: 0, scope: !3) +!10 = distinct !DISubprogram(name: "_scilla_expr_fun", linkageName: "_scilla_expr_fun", scope: !2, file: !2, line: 1, type: !5, scopeLine: 1, spFlags: DISPFlagDefinition, unit: !1, retainedNodes: !8) +!11 = !DILocalVariable(name: "$expr_6", scope: !10, file: !2, line: 1, type: !12) +!12 = !DIBasicType(name: "Uint32", size: 4) +!13 = !DILocation(line: 1, column: 11, scope: !10) +!14 = !DILocalVariable(name: "one", scope: !10, file: !2, line: 1, type: !12) +!15 = !DILocation(line: 1, column: 5, scope: !10) +!16 = !DILocalVariable(name: "two", scope: !10, file: !2, line: 2, type: !12) +!17 = !DILocation(line: 2, column: 5, scope: !10) +!18 = !DILocation(line: 2, column: 11, scope: !10) +!19 = !DILocation(line: 3, column: 1, scope: !10) diff --git a/testsuite/expr/builtin_add_uint32.ll b/testsuite/expr/builtin_add_uint32.ll index e2a55964..e75943e2 100644 --- a/testsuite/expr/builtin_add_uint32.ll +++ b/testsuite/expr/builtin_add_uint32.ll @@ -4,7 +4,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-pc-linux-gnu" +target triple = "x86_64-unknown-linux-gnu" %"$TyDescrTy_PrimTyp_7" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/testsuite/expr/builtin_baddsub.dbg.ll b/testsuite/expr/builtin_baddsub.dbg.ll index 263cc25e..ddf357fa 100644 --- a/testsuite/expr/builtin_baddsub.dbg.ll +++ b/testsuite/expr/builtin_baddsub.dbg.ll @@ -23,7 +23,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-pc-linux-gnu" +target triple = "x86_64-unknown-linux-gnu" %"$TyDescrTy_PrimTyp_13" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } @@ -35,9 +35,9 @@ target triple = "x86_64-pc-linux-gnu" %TName_Bool = type { i8, %CName_True*, %CName_False* } %CName_True = type <{ i8 }> %CName_False = type <{ i8 }> -%"$ParamDescr_374" = type { %ParamDescrString, %_TyDescrTy_Typ* } +%"$ParamDescr_376" = type { %ParamDescrString, %_TyDescrTy_Typ* } %ParamDescrString = type { i8*, i32 } -%"$TransDescr_375" = type { %ParamDescrString, i32, %"$ParamDescr_374"* } +%"$TransDescr_377" = type { %ParamDescrString, i32, %"$ParamDescr_376"* } %"$$fundef_10_env_63" = type { %TName_Bool* } %"$$fundef_8_env_64" = type {} %Uint32 = type { i32 } @@ -99,88 +99,95 @@ target triple = "x86_64-pc-linux-gnu" @"$_gas_charge_accListUtils_2" = global %Int32 zeroinitializer @"$_gas_charge_accNatUtils_3" = global %Int32 zeroinitializer @"$_gas_charge_accPairUtils_4" = global %Int32 zeroinitializer -@"$BNumLit_214" = unnamed_addr constant [3 x i8] c"100" +@"$BNumLit_216" = unnamed_addr constant [3 x i8] c"100" @_tydescr_table = constant [16 x %_TyDescrTy_Typ*] [%_TyDescrTy_Typ* @"$TyDescr_Event_37", %_TyDescrTy_Typ* @"$TyDescr_Int64_19", %_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_47", %_TyDescrTy_Typ* @"$TyDescr_Uint256_29", %_TyDescrTy_Typ* @"$TyDescr_Uint32_17", %_TyDescrTy_Typ* @"$TyDescr_Uint64_21", %_TyDescrTy_Typ* @"$TyDescr_Bnum_33", %_TyDescrTy_Typ* @"$TyDescr_Uint128_25", %_TyDescrTy_Typ* @"$TyDescr_Exception_39", %_TyDescrTy_Typ* @"$TyDescr_String_31", %_TyDescrTy_Typ* @"$TyDescr_Int256_27", %_TyDescrTy_Typ* @"$TyDescr_Int128_23", %_TyDescrTy_Typ* @"$TyDescr_Bystr_43", %_TyDescrTy_Typ* @"$TyDescr_ReplicateContr_41", %_TyDescrTy_Typ* @"$TyDescr_Message_35", %_TyDescrTy_Typ* @"$TyDescr_Int32_15"] @_tydescr_table_length = constant i32 16 -@_contract_parameters = constant [0 x %"$ParamDescr_374"] zeroinitializer +@_contract_parameters = constant [0 x %"$ParamDescr_376"] zeroinitializer @_contract_parameters_length = constant i32 0 -@_transition_parameters = constant [0 x %"$TransDescr_375"] zeroinitializer +@_transition_parameters = constant [0 x %"$TransDescr_377"] zeroinitializer @_transition_parameters_length = constant i32 0 -define internal %TName_Bool* @"$fundef_10"(%"$$fundef_10_env_63"* %0, %TName_Bool* %1) !dbg !4 { +define internal %TName_Bool* @"$fundef_10"(%"$$fundef_10_env_63"* %0, %TName_Bool* %1) !dbg !3 { entry: - %"$$fundef_10_env_b_76" = getelementptr inbounds %"$$fundef_10_env_63", %"$$fundef_10_env_63"* %0, i32 0, i32 0 - %"$b_envload_77" = load %TName_Bool*, %TName_Bool** %"$$fundef_10_env_b_76", align 8 + %"$c_107" = alloca %TName_Bool*, align 8 + store %TName_Bool* %1, %TName_Bool** %"$c_107", align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$c_107", metadata !9, metadata !DIExpression()), !dbg !12 + %"$$fundef_10_env_b_77" = getelementptr inbounds %"$$fundef_10_env_63", %"$$fundef_10_env_63"* %0, i32 0, i32 0 + %"$b_envload_78" = load %TName_Bool*, %TName_Bool** %"$$fundef_10_env_b_77", align 8 %b = alloca %TName_Bool*, align 8 - store %TName_Bool* %"$b_envload_77", %TName_Bool** %b, align 8 + store %TName_Bool* %"$b_envload_78", %TName_Bool** %b, align 8 %"$retval_11" = alloca %TName_Bool*, align 8 - %"$gasrem_78" = load i64, i64* @_gasrem, align 8 - %"$gascmp_79" = icmp ugt i64 2, %"$gasrem_78" - br i1 %"$gascmp_79", label %"$out_of_gas_80", label %"$have_gas_81" - -"$out_of_gas_80": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_81" - -"$have_gas_81": ; preds = %"$out_of_gas_80", %entry - %"$consume_82" = sub i64 %"$gasrem_78", 2 - store i64 %"$consume_82", i64* @_gasrem, align 8 - %"$b_84" = load %TName_Bool*, %TName_Bool** %b, align 8 - %"$b_tag_85" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$b_84", i32 0, i32 0 - %"$b_tag_86" = load i8, i8* %"$b_tag_85", align 1 - switch i8 %"$b_tag_86", label %"$empty_default_87" [ - i8 1, label %"$False_88" - i8 0, label %"$True_98" - ], !dbg !9 - -"$False_88": ; preds = %"$have_gas_81" - %"$b_89" = bitcast %TName_Bool* %"$b_84" to %CName_False* - %"$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 = %"$False_88" - call void @_out_of_gas() - br label %"$have_gas_93" - -"$have_gas_93": ; preds = %"$out_of_gas_92", %"$False_88" - %"$consume_94" = sub i64 %"$gasrem_90", 1 - store i64 %"$consume_94", i64* @_gasrem, align 8 - %"$adtval_95_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_95_salloc" = call i8* @_salloc(i8* %"$adtval_95_load", i64 1) - %"$adtval_95" = bitcast i8* %"$adtval_95_salloc" to %CName_False* - %"$adtgep_96" = getelementptr inbounds %CName_False, %CName_False* %"$adtval_95", i32 0, i32 0 - store i8 1, i8* %"$adtgep_96", align 1 - %"$adtptr_97" = bitcast %CName_False* %"$adtval_95" to %TName_Bool* - store %TName_Bool* %"$adtptr_97", %TName_Bool** %"$retval_11", align 8, !dbg !10 - br label %"$matchsucc_83" - -"$True_98": ; preds = %"$have_gas_81" - %"$b_99" = bitcast %TName_Bool* %"$b_84" to %CName_True* - %"$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 = %"$True_98" - call void @_out_of_gas() - br label %"$have_gas_103" - -"$have_gas_103": ; preds = %"$out_of_gas_102", %"$True_98" - %"$consume_104" = sub i64 %"$gasrem_100", 1 - store i64 %"$consume_104", i64* @_gasrem, align 8 - store %TName_Bool* %1, %TName_Bool** %"$retval_11", align 8, !dbg !13 - br label %"$matchsucc_83" - -"$empty_default_87": ; preds = %"$have_gas_81" - br label %"$matchsucc_83" - -"$matchsucc_83": ; preds = %"$have_gas_103", %"$have_gas_93", %"$empty_default_87" - %"$$retval_11_105" = load %TName_Bool*, %TName_Bool** %"$retval_11", align 8 - ret %TName_Bool* %"$$retval_11_105" + call void @llvm.dbg.declare(metadata %TName_Bool** %"$retval_11", metadata !13, metadata !DIExpression()), !dbg !14 + %"$gasrem_79" = load i64, i64* @_gasrem, align 8 + %"$gascmp_80" = icmp ugt i64 2, %"$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", 2 + store i64 %"$consume_83", i64* @_gasrem, align 8 + %"$b_85" = load %TName_Bool*, %TName_Bool** %b, align 8 + %"$b_tag_86" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$b_85", i32 0, i32 0 + %"$b_tag_87" = load i8, i8* %"$b_tag_86", align 1 + switch i8 %"$b_tag_87", label %"$empty_default_88" [ + i8 1, label %"$False_89" + i8 0, label %"$True_99" + ], !dbg !14 + +"$False_89": ; preds = %"$have_gas_82" + %"$b_90" = bitcast %TName_Bool* %"$b_85" to %CName_False* + %"$gasrem_91" = load i64, i64* @_gasrem, align 8 + %"$gascmp_92" = icmp ugt i64 1, %"$gasrem_91" + br i1 %"$gascmp_92", label %"$out_of_gas_93", label %"$have_gas_94" + +"$out_of_gas_93": ; preds = %"$False_89" + call void @_out_of_gas() + br label %"$have_gas_94" + +"$have_gas_94": ; preds = %"$out_of_gas_93", %"$False_89" + %"$consume_95" = sub i64 %"$gasrem_91", 1 + store i64 %"$consume_95", i64* @_gasrem, align 8 + %"$adtval_96_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_96_salloc" = call i8* @_salloc(i8* %"$adtval_96_load", i64 1) + %"$adtval_96" = bitcast i8* %"$adtval_96_salloc" to %CName_False* + %"$adtgep_97" = getelementptr inbounds %CName_False, %CName_False* %"$adtval_96", i32 0, i32 0 + store i8 1, i8* %"$adtgep_97", align 1 + %"$adtptr_98" = bitcast %CName_False* %"$adtval_96" to %TName_Bool* + store %TName_Bool* %"$adtptr_98", %TName_Bool** %"$retval_11", align 8, !dbg !15 + br label %"$matchsucc_84" + +"$True_99": ; preds = %"$have_gas_82" + %"$b_100" = bitcast %TName_Bool* %"$b_85" to %CName_True* + %"$gasrem_101" = load i64, i64* @_gasrem, align 8 + %"$gascmp_102" = icmp ugt i64 1, %"$gasrem_101" + br i1 %"$gascmp_102", label %"$out_of_gas_103", label %"$have_gas_104" + +"$out_of_gas_103": ; preds = %"$True_99" + call void @_out_of_gas() + br label %"$have_gas_104" + +"$have_gas_104": ; preds = %"$out_of_gas_103", %"$True_99" + %"$consume_105" = sub i64 %"$gasrem_101", 1 + store i64 %"$consume_105", i64* @_gasrem, align 8 + store %TName_Bool* %1, %TName_Bool** %"$retval_11", align 8, !dbg !18 + br label %"$matchsucc_84" + +"$empty_default_88": ; preds = %"$have_gas_82" + br label %"$matchsucc_84" + +"$matchsucc_84": ; preds = %"$have_gas_104", %"$have_gas_94", %"$empty_default_88" + %"$$retval_11_106" = load %TName_Bool*, %TName_Bool** %"$retval_11", align 8 + ret %TName_Bool* %"$$retval_11_106" } -define internal { %TName_Bool* (i8*, %TName_Bool*)*, i8* } @"$fundef_8"(%"$$fundef_8_env_64"* %0, %TName_Bool* %1) !dbg !15 { +define internal { %TName_Bool* (i8*, %TName_Bool*)*, i8* } @"$fundef_8"(%"$$fundef_8_env_64"* %0, %TName_Bool* %1) !dbg !20 { entry: + %"$b_76" = alloca %TName_Bool*, align 8 + store %TName_Bool* %1, %TName_Bool** %"$b_76", align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$b_76", metadata !21, metadata !DIExpression()), !dbg !22 %"$retval_9" = alloca { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, align 8 %"$gasrem_65" = load i64, i64* @_gasrem, align 8 %"$gascmp_66" = icmp ugt i64 1, %"$gasrem_65" @@ -200,7 +207,7 @@ entry: %"$$fundef_10_cloval_73" = insertvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } { %TName_Bool* (i8*, %TName_Bool*)* bitcast (%TName_Bool* (%"$$fundef_10_env_63"*, %TName_Bool*)* @"$fundef_10" to %TName_Bool* (i8*, %TName_Bool*)*), i8* undef }, i8* %"$$fundef_10_env_voidp_72", 1 %"$$fundef_10_env_b_74" = getelementptr inbounds %"$$fundef_10_env_63", %"$$fundef_10_env_63"* %"$$fundef_10_envp_70", i32 0, i32 0 store %TName_Bool* %1, %TName_Bool** %"$$fundef_10_env_b_74", align 8 - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$fundef_10_cloval_73", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$retval_9", align 8, !dbg !16 + store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$fundef_10_cloval_73", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$retval_9", align 8, !dbg !23 %"$$retval_9_75" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$retval_9", align 8 ret { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$retval_9_75" } @@ -209,543 +216,563 @@ declare void @_out_of_gas() declare i8* @_salloc(i8*, i64) -define void @_init_libs() !dbg !17 { +; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn +declare void @llvm.dbg.declare(metadata, metadata, metadata) #0 + +define void @_init_libs() !dbg !24 { entry: - %"$gasrem_106" = load i64, i64* @_gasrem, align 8 - %"$gascmp_107" = icmp ugt i64 5, %"$gasrem_106" - br i1 %"$gascmp_107", label %"$out_of_gas_108", label %"$have_gas_109" + %"$gasrem_108" = load i64, i64* @_gasrem, align 8 + %"$gascmp_109" = icmp ugt i64 5, %"$gasrem_108" + br i1 %"$gascmp_109", label %"$out_of_gas_110", label %"$have_gas_111" -"$out_of_gas_108": ; preds = %entry +"$out_of_gas_110": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_109" + br label %"$have_gas_111" -"$have_gas_109": ; preds = %"$out_of_gas_108", %entry - %"$consume_110" = sub i64 %"$gasrem_106", 5 - store i64 %"$consume_110", i64* @_gasrem, align 8 - store %Int32 { i32 5 }, %Int32* @"$_gas_charge_accrec_lib_5", align 4, !dbg !19 - %"$gasrem_111" = load i64, i64* @_gasrem, align 8 - %"$gascmp_112" = icmp ugt i64 7, %"$gasrem_111" - br i1 %"$gascmp_112", label %"$out_of_gas_113", label %"$have_gas_114" +"$have_gas_111": ; preds = %"$out_of_gas_110", %entry + %"$consume_112" = sub i64 %"$gasrem_108", 5 + store i64 %"$consume_112", i64* @_gasrem, align 8 + store %Int32 { i32 5 }, %Int32* @"$_gas_charge_accrec_lib_5", align 4, !dbg !26 + %"$gasrem_113" = load i64, i64* @_gasrem, align 8 + %"$gascmp_114" = icmp ugt i64 7, %"$gasrem_113" + br i1 %"$gascmp_114", label %"$out_of_gas_115", label %"$have_gas_116" -"$out_of_gas_113": ; preds = %"$have_gas_109" +"$out_of_gas_115": ; preds = %"$have_gas_111" call void @_out_of_gas() - br label %"$have_gas_114" + br label %"$have_gas_116" -"$have_gas_114": ; preds = %"$out_of_gas_113", %"$have_gas_109" - %"$consume_115" = sub i64 %"$gasrem_111", 7 - store i64 %"$consume_115", i64* @_gasrem, align 8 - store %Int32 { i32 7 }, %Int32* @"$_gas_charge_accBoolUtils_0", align 4, !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" +"$have_gas_116": ; preds = %"$out_of_gas_115", %"$have_gas_111" + %"$consume_117" = sub i64 %"$gasrem_113", 7 + store i64 %"$consume_117", i64* @_gasrem, align 8 + store %Int32 { i32 7 }, %Int32* @"$_gas_charge_accBoolUtils_0", align 4, !dbg !26 + %"$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_118": ; preds = %"$have_gas_114" +"$out_of_gas_120": ; preds = %"$have_gas_116" call void @_out_of_gas() - br label %"$have_gas_119" + br label %"$have_gas_121" -"$have_gas_119": ; preds = %"$out_of_gas_118", %"$have_gas_114" - %"$consume_120" = sub i64 %"$gasrem_116", 1 - store i64 %"$consume_120", 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_8_env_64"*, %TName_Bool*)* @"$fundef_8" 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 !20 - %"$gasrem_124" = load i64, i64* @_gasrem, align 8 - %"$gascmp_125" = icmp ugt i64 196, %"$gasrem_124" - br i1 %"$gascmp_125", label %"$out_of_gas_126", label %"$have_gas_127" +"$have_gas_121": ; preds = %"$out_of_gas_120", %"$have_gas_116" + %"$consume_122" = sub i64 %"$gasrem_118", 1 + store i64 %"$consume_122", 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_8_env_64"*, %TName_Bool*)* @"$fundef_8" 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 !27 + %"$gasrem_126" = load i64, i64* @_gasrem, align 8 + %"$gascmp_127" = icmp ugt i64 196, %"$gasrem_126" + br i1 %"$gascmp_127", label %"$out_of_gas_128", label %"$have_gas_129" -"$out_of_gas_126": ; preds = %"$have_gas_119" +"$out_of_gas_128": ; preds = %"$have_gas_121" call void @_out_of_gas() - br label %"$have_gas_127" + br label %"$have_gas_129" -"$have_gas_127": ; preds = %"$out_of_gas_126", %"$have_gas_119" - %"$consume_128" = sub i64 %"$gasrem_124", 196 - store i64 %"$consume_128", i64* @_gasrem, align 8 - store %Int32 { i32 196 }, %Int32* @"$_gas_charge_accIntUtils_1", align 4, !dbg !19 - %"$gasrem_129" = load i64, i64* @_gasrem, align 8 - %"$gascmp_130" = icmp ugt i64 20, %"$gasrem_129" - br i1 %"$gascmp_130", label %"$out_of_gas_131", label %"$have_gas_132" +"$have_gas_129": ; preds = %"$out_of_gas_128", %"$have_gas_121" + %"$consume_130" = sub i64 %"$gasrem_126", 196 + store i64 %"$consume_130", i64* @_gasrem, align 8 + store %Int32 { i32 196 }, %Int32* @"$_gas_charge_accIntUtils_1", align 4, !dbg !26 + %"$gasrem_131" = load i64, i64* @_gasrem, align 8 + %"$gascmp_132" = icmp ugt i64 20, %"$gasrem_131" + br i1 %"$gascmp_132", label %"$out_of_gas_133", label %"$have_gas_134" -"$out_of_gas_131": ; preds = %"$have_gas_127" +"$out_of_gas_133": ; preds = %"$have_gas_129" call void @_out_of_gas() - br label %"$have_gas_132" + br label %"$have_gas_134" -"$have_gas_132": ; preds = %"$out_of_gas_131", %"$have_gas_127" - %"$consume_133" = sub i64 %"$gasrem_129", 20 - store i64 %"$consume_133", i64* @_gasrem, align 8 - store %Int32 { i32 20 }, %Int32* @"$_gas_charge_accListUtils_2", align 4, !dbg !19 - %"$gasrem_134" = load i64, i64* @_gasrem, align 8 - %"$gascmp_135" = icmp ugt i64 12, %"$gasrem_134" - br i1 %"$gascmp_135", label %"$out_of_gas_136", label %"$have_gas_137" +"$have_gas_134": ; preds = %"$out_of_gas_133", %"$have_gas_129" + %"$consume_135" = sub i64 %"$gasrem_131", 20 + store i64 %"$consume_135", i64* @_gasrem, align 8 + store %Int32 { i32 20 }, %Int32* @"$_gas_charge_accListUtils_2", align 4, !dbg !26 + %"$gasrem_136" = load i64, i64* @_gasrem, align 8 + %"$gascmp_137" = icmp ugt i64 12, %"$gasrem_136" + br i1 %"$gascmp_137", label %"$out_of_gas_138", label %"$have_gas_139" -"$out_of_gas_136": ; preds = %"$have_gas_132" +"$out_of_gas_138": ; preds = %"$have_gas_134" call void @_out_of_gas() - br label %"$have_gas_137" + br label %"$have_gas_139" -"$have_gas_137": ; preds = %"$out_of_gas_136", %"$have_gas_132" - %"$consume_138" = sub i64 %"$gasrem_134", 12 - store i64 %"$consume_138", i64* @_gasrem, align 8 - store %Int32 { i32 12 }, %Int32* @"$_gas_charge_accNatUtils_3", align 4, !dbg !19 - %"$gasrem_139" = load i64, i64* @_gasrem, align 8 - %"$gascmp_140" = icmp ugt i64 2, %"$gasrem_139" - br i1 %"$gascmp_140", label %"$out_of_gas_141", label %"$have_gas_142" +"$have_gas_139": ; preds = %"$out_of_gas_138", %"$have_gas_134" + %"$consume_140" = sub i64 %"$gasrem_136", 12 + store i64 %"$consume_140", i64* @_gasrem, align 8 + store %Int32 { i32 12 }, %Int32* @"$_gas_charge_accNatUtils_3", align 4, !dbg !26 + %"$gasrem_141" = load i64, i64* @_gasrem, align 8 + %"$gascmp_142" = icmp ugt i64 2, %"$gasrem_141" + br i1 %"$gascmp_142", label %"$out_of_gas_143", label %"$have_gas_144" -"$out_of_gas_141": ; preds = %"$have_gas_137" +"$out_of_gas_143": ; preds = %"$have_gas_139" call void @_out_of_gas() - br label %"$have_gas_142" + br label %"$have_gas_144" -"$have_gas_142": ; preds = %"$out_of_gas_141", %"$have_gas_137" - %"$consume_143" = sub i64 %"$gasrem_139", 2 - store i64 %"$consume_143", i64* @_gasrem, align 8 - store %Int32 { i32 2 }, %Int32* @"$_gas_charge_accPairUtils_4", align 4, !dbg !19 +"$have_gas_144": ; preds = %"$out_of_gas_143", %"$have_gas_139" + %"$consume_145" = sub i64 %"$gasrem_141", 2 + store i64 %"$consume_145", i64* @_gasrem, align 8 + store %Int32 { i32 2 }, %Int32* @"$_gas_charge_accPairUtils_4", align 4, !dbg !26 ret void } -define internal %TName_Bool* @_scilla_expr_fun(i8* %0) !dbg !21 { +define internal %TName_Bool* @_scilla_expr_fun(i8* %0) !dbg !28 { entry: %"$expr_12" = alloca %TName_Bool*, align 8 - %"$gasrem_144" = load i64, i64* @_gasrem, align 8 - %"$gascmp_145" = icmp ugt i64 1, %"$gasrem_144" - br i1 %"$gascmp_145", label %"$out_of_gas_146", label %"$have_gas_147" + call void @llvm.dbg.declare(metadata %TName_Bool** %"$expr_12", metadata !29, metadata !DIExpression()), !dbg !30 + %"$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_146": ; preds = %entry +"$out_of_gas_148": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_147" + br label %"$have_gas_149" -"$have_gas_147": ; preds = %"$out_of_gas_146", %entry - %"$consume_148" = sub i64 %"$gasrem_144", 1 - store i64 %"$consume_148", i64* @_gasrem, align 8 +"$have_gas_149": ; preds = %"$out_of_gas_148", %entry + %"$consume_150" = sub i64 %"$gasrem_146", 1 + store i64 %"$consume_150", i64* @_gasrem, align 8 %i32_1 = alloca %Uint32, align 8 - %"$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" + call void @llvm.dbg.declare(metadata %Uint32* %i32_1, metadata !31, metadata !DIExpression()), !dbg !33 + %"$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_151": ; preds = %"$have_gas_147" +"$out_of_gas_153": ; preds = %"$have_gas_149" call void @_out_of_gas() - br label %"$have_gas_152" + br label %"$have_gas_154" -"$have_gas_152": ; preds = %"$out_of_gas_151", %"$have_gas_147" - %"$consume_153" = sub i64 %"$gasrem_149", 1 - store i64 %"$consume_153", i64* @_gasrem, align 8 - store %Uint32 { i32 1 }, %Uint32* %i32_1, align 4, !dbg !22 - %"$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" +"$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 + store %Uint32 { i32 1 }, %Uint32* %i32_1, align 4, !dbg !30 + %"$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_156": ; preds = %"$have_gas_152" +"$out_of_gas_158": ; preds = %"$have_gas_154" call void @_out_of_gas() - br label %"$have_gas_157" + br label %"$have_gas_159" -"$have_gas_157": ; preds = %"$out_of_gas_156", %"$have_gas_152" - %"$consume_158" = sub i64 %"$gasrem_154", 1 - store i64 %"$consume_158", i64* @_gasrem, align 8 +"$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 %i64_1 = alloca %Uint64, 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" + call void @llvm.dbg.declare(metadata %Uint64* %i64_1, metadata !34, metadata !DIExpression()), !dbg !36 + %"$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_161": ; preds = %"$have_gas_157" +"$out_of_gas_163": ; preds = %"$have_gas_159" call void @_out_of_gas() - br label %"$have_gas_162" + br label %"$have_gas_164" -"$have_gas_162": ; preds = %"$out_of_gas_161", %"$have_gas_157" - %"$consume_163" = sub i64 %"$gasrem_159", 1 - store i64 %"$consume_163", i64* @_gasrem, align 8 - store %Uint64 { i64 1 }, %Uint64* %i64_1, align 8, !dbg !23 - %"$gasrem_164" = load i64, i64* @_gasrem, align 8 - %"$gascmp_165" = icmp ugt i64 1, %"$gasrem_164" - br i1 %"$gascmp_165", label %"$out_of_gas_166", label %"$have_gas_167" +"$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 %Uint64 { i64 1 }, %Uint64* %i64_1, align 8, !dbg !37 + %"$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_166": ; preds = %"$have_gas_162" +"$out_of_gas_168": ; preds = %"$have_gas_164" call void @_out_of_gas() - br label %"$have_gas_167" + br label %"$have_gas_169" -"$have_gas_167": ; preds = %"$out_of_gas_166", %"$have_gas_162" - %"$consume_168" = sub i64 %"$gasrem_164", 1 - store i64 %"$consume_168", i64* @_gasrem, align 8 +"$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 %i128_1 = alloca %Uint128, 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" + call void @llvm.dbg.declare(metadata %Uint128* %i128_1, metadata !38, metadata !DIExpression()), !dbg !40 + %"$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_171": ; preds = %"$have_gas_167" +"$out_of_gas_173": ; preds = %"$have_gas_169" call void @_out_of_gas() - br label %"$have_gas_172" + br label %"$have_gas_174" -"$have_gas_172": ; preds = %"$out_of_gas_171", %"$have_gas_167" - %"$consume_173" = sub i64 %"$gasrem_169", 1 - store i64 %"$consume_173", i64* @_gasrem, align 8 - store %Uint128 { i128 1 }, %Uint128* %i128_1, align 8, !dbg !24 - %"$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" +"$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 %Uint128 { i128 1 }, %Uint128* %i128_1, align 8, !dbg !41 + %"$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_176": ; preds = %"$have_gas_172" +"$out_of_gas_178": ; preds = %"$have_gas_174" call void @_out_of_gas() - br label %"$have_gas_177" + br label %"$have_gas_179" -"$have_gas_177": ; preds = %"$out_of_gas_176", %"$have_gas_172" - %"$consume_178" = sub i64 %"$gasrem_174", 1 - store i64 %"$consume_178", i64* @_gasrem, align 8 +"$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 %i256_1 = alloca %Uint256, align 8 - %"$gasrem_179" = load i64, i64* @_gasrem, align 8 - %"$gascmp_180" = icmp ugt i64 1, %"$gasrem_179" - br i1 %"$gascmp_180", label %"$out_of_gas_181", label %"$have_gas_182" + call void @llvm.dbg.declare(metadata %Uint256* %i256_1, metadata !42, metadata !DIExpression()), !dbg !44 + %"$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_181": ; preds = %"$have_gas_177" +"$out_of_gas_183": ; preds = %"$have_gas_179" call void @_out_of_gas() - br label %"$have_gas_182" + br label %"$have_gas_184" -"$have_gas_182": ; preds = %"$out_of_gas_181", %"$have_gas_177" - %"$consume_183" = sub i64 %"$gasrem_179", 1 - store i64 %"$consume_183", i64* @_gasrem, align 8 - store %Uint256 { i256 1 }, %Uint256* %i256_1, align 8, !dbg !25 - %"$gasrem_184" = load i64, i64* @_gasrem, align 8 - %"$gascmp_185" = icmp ugt i64 1, %"$gasrem_184" - br i1 %"$gascmp_185", label %"$out_of_gas_186", label %"$have_gas_187" +"$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 + store %Uint256 { i256 1 }, %Uint256* %i256_1, align 8, !dbg !45 + %"$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_186": ; preds = %"$have_gas_182" +"$out_of_gas_188": ; preds = %"$have_gas_184" call void @_out_of_gas() - br label %"$have_gas_187" + br label %"$have_gas_189" -"$have_gas_187": ; preds = %"$out_of_gas_186", %"$have_gas_182" - %"$consume_188" = sub i64 %"$gasrem_184", 1 - store i64 %"$consume_188", i64* @_gasrem, align 8 +"$have_gas_189": ; preds = %"$out_of_gas_188", %"$have_gas_184" + %"$consume_190" = sub i64 %"$gasrem_186", 1 + store i64 %"$consume_190", i64* @_gasrem, align 8 %i256_4 = alloca %Int256, 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" + call void @llvm.dbg.declare(metadata %Int256* %i256_4, metadata !46, metadata !DIExpression()), !dbg !48 + %"$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_191": ; preds = %"$have_gas_187" +"$out_of_gas_193": ; preds = %"$have_gas_189" call void @_out_of_gas() - br label %"$have_gas_192" + br label %"$have_gas_194" -"$have_gas_192": ; preds = %"$out_of_gas_191", %"$have_gas_187" - %"$consume_193" = sub i64 %"$gasrem_189", 1 - store i64 %"$consume_193", i64* @_gasrem, align 8 - store %Int256 { i256 4 }, %Int256* %i256_4, align 8, !dbg !26 - %"$gasrem_194" = load i64, i64* @_gasrem, align 8 - %"$gascmp_195" = icmp ugt i64 1, %"$gasrem_194" - br i1 %"$gascmp_195", label %"$out_of_gas_196", label %"$have_gas_197" +"$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 + store %Int256 { i256 4 }, %Int256* %i256_4, align 8, !dbg !49 + %"$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_196": ; preds = %"$have_gas_192" +"$out_of_gas_198": ; preds = %"$have_gas_194" call void @_out_of_gas() - br label %"$have_gas_197" + br label %"$have_gas_199" -"$have_gas_197": ; preds = %"$out_of_gas_196", %"$have_gas_192" - %"$consume_198" = sub i64 %"$gasrem_194", 1 - store i64 %"$consume_198", 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 %i256_m4 = alloca %Int256, 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" + call void @llvm.dbg.declare(metadata %Int256* %i256_m4, metadata !50, metadata !DIExpression()), !dbg !51 + %"$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" -"$out_of_gas_201": ; preds = %"$have_gas_197" +"$out_of_gas_203": ; preds = %"$have_gas_199" call void @_out_of_gas() - br label %"$have_gas_202" + br label %"$have_gas_204" -"$have_gas_202": ; preds = %"$out_of_gas_201", %"$have_gas_197" - %"$consume_203" = sub i64 %"$gasrem_199", 1 - store i64 %"$consume_203", i64* @_gasrem, align 8 - store %Int256 { i256 -4 }, %Int256* %i256_m4, align 8, !dbg !27 - %"$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" +"$have_gas_204": ; preds = %"$out_of_gas_203", %"$have_gas_199" + %"$consume_205" = sub i64 %"$gasrem_201", 1 + store i64 %"$consume_205", i64* @_gasrem, align 8 + store %Int256 { i256 -4 }, %Int256* %i256_m4, align 8, !dbg !52 + %"$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_206": ; preds = %"$have_gas_202" +"$out_of_gas_208": ; preds = %"$have_gas_204" call void @_out_of_gas() - br label %"$have_gas_207" + br label %"$have_gas_209" -"$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 +"$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 %a100 = alloca i8*, 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" + call void @llvm.dbg.declare(metadata i8** %a100, metadata !53, metadata !DIExpression()), !dbg !56 + %"$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_211": ; preds = %"$have_gas_207" +"$out_of_gas_213": ; preds = %"$have_gas_209" call void @_out_of_gas() - br label %"$have_gas_212" + br label %"$have_gas_214" -"$have_gas_212": ; preds = %"$out_of_gas_211", %"$have_gas_207" - %"$consume_213" = sub i64 %"$gasrem_209", 1 - store i64 %"$consume_213", i64* @_gasrem, align 8 - %"$execptr_load_215" = load i8*, i8** @_execptr, align 8 - %"$_new_bnum_call_216" = call i8* @_new_bnum(i8* %"$execptr_load_215", %BNumString { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$BNumLit_214", i32 0, i32 0), i32 3 }) - store i8* %"$_new_bnum_call_216", i8** %a100, align 8, !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" +"$have_gas_214": ; preds = %"$out_of_gas_213", %"$have_gas_209" + %"$consume_215" = sub i64 %"$gasrem_211", 1 + store i64 %"$consume_215", i64* @_gasrem, align 8 + %"$execptr_load_217" = load i8*, i8** @_execptr, align 8 + %"$_new_bnum_call_218" = call i8* @_new_bnum(i8* %"$execptr_load_217", %BNumString { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$BNumLit_216", i32 0, i32 0), i32 3 }) + store i8* %"$_new_bnum_call_218", i8** %a100, align 8, !dbg !57 + %"$gasrem_220" = load i64, i64* @_gasrem, align 8 + %"$gascmp_221" = icmp ugt i64 1, %"$gasrem_220" + br i1 %"$gascmp_221", label %"$out_of_gas_222", label %"$have_gas_223" -"$out_of_gas_220": ; preds = %"$have_gas_212" +"$out_of_gas_222": ; preds = %"$have_gas_214" call void @_out_of_gas() - br label %"$have_gas_221" + br label %"$have_gas_223" -"$have_gas_221": ; preds = %"$out_of_gas_220", %"$have_gas_212" - %"$consume_222" = sub i64 %"$gasrem_218", 1 - store i64 %"$consume_222", i64* @_gasrem, align 8 +"$have_gas_223": ; preds = %"$out_of_gas_222", %"$have_gas_214" + %"$consume_224" = sub i64 %"$gasrem_220", 1 + store i64 %"$consume_224", i64* @_gasrem, align 8 %a101 = alloca i8*, align 8 - %"$gasrem_223" = load i64, i64* @_gasrem, align 8 - %"$gascmp_224" = icmp ugt i64 32, %"$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", 32 - store i64 %"$consume_227", i64* @_gasrem, align 8 - %"$execptr_load_228" = load i8*, i8** @_execptr, align 8 - %"$a100_229" = load i8*, i8** %a100, align 8 - %"$badd_i32_1_230" = alloca %Uint32, align 8 - %"$i32_1_231" = load %Uint32, %Uint32* %i32_1, align 4 - store %Uint32 %"$i32_1_231", %Uint32* %"$badd_i32_1_230", align 4 - %"$$badd_i32_1_230_232" = bitcast %Uint32* %"$badd_i32_1_230" to i8* - %"$badd_call_233" = call i8* @_badd(i8* %"$execptr_load_228", i8* %"$a100_229", %_TyDescrTy_Typ* @"$TyDescr_Uint32_17", i8* %"$$badd_i32_1_230_232"), !dbg !29 - store i8* %"$badd_call_233", i8** %a101, align 8, !dbg !29 - %"$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" - -"$out_of_gas_237": ; preds = %"$have_gas_226" - call void @_out_of_gas() - br label %"$have_gas_238" - -"$have_gas_238": ; preds = %"$out_of_gas_237", %"$have_gas_226" - %"$consume_239" = sub i64 %"$gasrem_235", 1 - store i64 %"$consume_239", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata i8** %a101, metadata !58, metadata !DIExpression()), !dbg !59 + %"$gasrem_225" = load i64, i64* @_gasrem, align 8 + %"$gascmp_226" = icmp ugt i64 32, %"$gasrem_225" + br i1 %"$gascmp_226", label %"$out_of_gas_227", label %"$have_gas_228" + +"$out_of_gas_227": ; preds = %"$have_gas_223" + call void @_out_of_gas() + br label %"$have_gas_228" + +"$have_gas_228": ; preds = %"$out_of_gas_227", %"$have_gas_223" + %"$consume_229" = sub i64 %"$gasrem_225", 32 + store i64 %"$consume_229", i64* @_gasrem, align 8 + %"$execptr_load_230" = load i8*, i8** @_execptr, align 8 + %"$a100_231" = load i8*, i8** %a100, align 8 + %"$badd_i32_1_232" = alloca %Uint32, align 8 + %"$i32_1_233" = load %Uint32, %Uint32* %i32_1, align 4 + store %Uint32 %"$i32_1_233", %Uint32* %"$badd_i32_1_232", align 4 + %"$$badd_i32_1_232_234" = bitcast %Uint32* %"$badd_i32_1_232" to i8* + %"$badd_call_235" = call i8* @_badd(i8* %"$execptr_load_230", i8* %"$a100_231", %_TyDescrTy_Typ* @"$TyDescr_Uint32_17", i8* %"$$badd_i32_1_232_234"), !dbg !60 + store i8* %"$badd_call_235", i8** %a101, align 8, !dbg !60 + %"$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_228" + call void @_out_of_gas() + br label %"$have_gas_240" + +"$have_gas_240": ; preds = %"$out_of_gas_239", %"$have_gas_228" + %"$consume_241" = sub i64 %"$gasrem_237", 1 + store i64 %"$consume_241", i64* @_gasrem, align 8 %a102 = alloca i8*, align 8 - %"$gasrem_240" = load i64, i64* @_gasrem, align 8 - %"$gascmp_241" = icmp ugt i64 32, %"$gasrem_240" - br i1 %"$gascmp_241", label %"$out_of_gas_242", label %"$have_gas_243" - -"$out_of_gas_242": ; preds = %"$have_gas_238" - call void @_out_of_gas() - br label %"$have_gas_243" - -"$have_gas_243": ; preds = %"$out_of_gas_242", %"$have_gas_238" - %"$consume_244" = sub i64 %"$gasrem_240", 32 - store i64 %"$consume_244", i64* @_gasrem, align 8 - %"$execptr_load_245" = load i8*, i8** @_execptr, align 8 - %"$a101_246" = load i8*, i8** %a101, align 8 - %"$badd_i64_1_247" = alloca %Uint64, align 8 - %"$i64_1_248" = load %Uint64, %Uint64* %i64_1, align 8 - store %Uint64 %"$i64_1_248", %Uint64* %"$badd_i64_1_247", align 8 - %"$$badd_i64_1_247_249" = bitcast %Uint64* %"$badd_i64_1_247" to i8* - %"$badd_call_250" = call i8* @_badd(i8* %"$execptr_load_245", i8* %"$a101_246", %_TyDescrTy_Typ* @"$TyDescr_Uint64_21", i8* %"$$badd_i64_1_247_249"), !dbg !30 - store i8* %"$badd_call_250", i8** %a102, align 8, !dbg !30 - %"$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_243" - call void @_out_of_gas() - br label %"$have_gas_255" - -"$have_gas_255": ; preds = %"$out_of_gas_254", %"$have_gas_243" - %"$consume_256" = sub i64 %"$gasrem_252", 1 - store i64 %"$consume_256", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata i8** %a102, metadata !61, metadata !DIExpression()), !dbg !62 + %"$gasrem_242" = load i64, i64* @_gasrem, align 8 + %"$gascmp_243" = icmp ugt i64 32, %"$gasrem_242" + br i1 %"$gascmp_243", label %"$out_of_gas_244", label %"$have_gas_245" + +"$out_of_gas_244": ; preds = %"$have_gas_240" + call void @_out_of_gas() + br label %"$have_gas_245" + +"$have_gas_245": ; preds = %"$out_of_gas_244", %"$have_gas_240" + %"$consume_246" = sub i64 %"$gasrem_242", 32 + store i64 %"$consume_246", i64* @_gasrem, align 8 + %"$execptr_load_247" = load i8*, i8** @_execptr, align 8 + %"$a101_248" = load i8*, i8** %a101, align 8 + %"$badd_i64_1_249" = alloca %Uint64, align 8 + %"$i64_1_250" = load %Uint64, %Uint64* %i64_1, align 8 + store %Uint64 %"$i64_1_250", %Uint64* %"$badd_i64_1_249", align 8 + %"$$badd_i64_1_249_251" = bitcast %Uint64* %"$badd_i64_1_249" to i8* + %"$badd_call_252" = call i8* @_badd(i8* %"$execptr_load_247", i8* %"$a101_248", %_TyDescrTy_Typ* @"$TyDescr_Uint64_21", i8* %"$$badd_i64_1_249_251"), !dbg !63 + store i8* %"$badd_call_252", i8** %a102, align 8, !dbg !63 + %"$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_245" + call void @_out_of_gas() + br label %"$have_gas_257" + +"$have_gas_257": ; preds = %"$out_of_gas_256", %"$have_gas_245" + %"$consume_258" = sub i64 %"$gasrem_254", 1 + store i64 %"$consume_258", i64* @_gasrem, align 8 %a103 = alloca i8*, align 8 - %"$gasrem_257" = load i64, i64* @_gasrem, align 8 - %"$gascmp_258" = icmp ugt i64 32, %"$gasrem_257" - br i1 %"$gascmp_258", label %"$out_of_gas_259", label %"$have_gas_260" - -"$out_of_gas_259": ; preds = %"$have_gas_255" - call void @_out_of_gas() - br label %"$have_gas_260" - -"$have_gas_260": ; preds = %"$out_of_gas_259", %"$have_gas_255" - %"$consume_261" = sub i64 %"$gasrem_257", 32 - store i64 %"$consume_261", i64* @_gasrem, align 8 - %"$execptr_load_262" = load i8*, i8** @_execptr, align 8 - %"$a102_263" = load i8*, i8** %a102, align 8 - %"$badd_i128_1_264" = alloca %Uint128, align 8 - %"$i128_1_265" = load %Uint128, %Uint128* %i128_1, align 8 - store %Uint128 %"$i128_1_265", %Uint128* %"$badd_i128_1_264", align 8 - %"$$badd_i128_1_264_266" = bitcast %Uint128* %"$badd_i128_1_264" to i8* - %"$badd_call_267" = call i8* @_badd(i8* %"$execptr_load_262", i8* %"$a102_263", %_TyDescrTy_Typ* @"$TyDescr_Uint128_25", i8* %"$$badd_i128_1_264_266"), !dbg !31 - store i8* %"$badd_call_267", i8** %a103, align 8, !dbg !31 - %"$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" - -"$out_of_gas_271": ; preds = %"$have_gas_260" - call void @_out_of_gas() - br label %"$have_gas_272" - -"$have_gas_272": ; preds = %"$out_of_gas_271", %"$have_gas_260" - %"$consume_273" = sub i64 %"$gasrem_269", 1 - store i64 %"$consume_273", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata i8** %a103, metadata !64, metadata !DIExpression()), !dbg !65 + %"$gasrem_259" = load i64, i64* @_gasrem, align 8 + %"$gascmp_260" = icmp ugt i64 32, %"$gasrem_259" + br i1 %"$gascmp_260", label %"$out_of_gas_261", label %"$have_gas_262" + +"$out_of_gas_261": ; preds = %"$have_gas_257" + call void @_out_of_gas() + br label %"$have_gas_262" + +"$have_gas_262": ; preds = %"$out_of_gas_261", %"$have_gas_257" + %"$consume_263" = sub i64 %"$gasrem_259", 32 + store i64 %"$consume_263", i64* @_gasrem, align 8 + %"$execptr_load_264" = load i8*, i8** @_execptr, align 8 + %"$a102_265" = load i8*, i8** %a102, align 8 + %"$badd_i128_1_266" = alloca %Uint128, align 8 + %"$i128_1_267" = load %Uint128, %Uint128* %i128_1, align 8 + store %Uint128 %"$i128_1_267", %Uint128* %"$badd_i128_1_266", align 8 + %"$$badd_i128_1_266_268" = bitcast %Uint128* %"$badd_i128_1_266" to i8* + %"$badd_call_269" = call i8* @_badd(i8* %"$execptr_load_264", i8* %"$a102_265", %_TyDescrTy_Typ* @"$TyDescr_Uint128_25", i8* %"$$badd_i128_1_266_268"), !dbg !66 + store i8* %"$badd_call_269", i8** %a103, align 8, !dbg !66 + %"$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_262" + call void @_out_of_gas() + br label %"$have_gas_274" + +"$have_gas_274": ; preds = %"$out_of_gas_273", %"$have_gas_262" + %"$consume_275" = sub i64 %"$gasrem_271", 1 + store i64 %"$consume_275", i64* @_gasrem, align 8 %a104 = alloca i8*, align 8 - %"$gasrem_274" = load i64, i64* @_gasrem, align 8 - %"$gascmp_275" = icmp ugt i64 32, %"$gasrem_274" - br i1 %"$gascmp_275", label %"$out_of_gas_276", label %"$have_gas_277" - -"$out_of_gas_276": ; preds = %"$have_gas_272" - call void @_out_of_gas() - br label %"$have_gas_277" - -"$have_gas_277": ; preds = %"$out_of_gas_276", %"$have_gas_272" - %"$consume_278" = sub i64 %"$gasrem_274", 32 - store i64 %"$consume_278", i64* @_gasrem, align 8 - %"$execptr_load_279" = load i8*, i8** @_execptr, align 8 - %"$a103_280" = load i8*, i8** %a103, align 8 - %"$badd_i256_1_281" = alloca %Uint256, align 8 - %"$i256_1_282" = load %Uint256, %Uint256* %i256_1, align 8 - store %Uint256 %"$i256_1_282", %Uint256* %"$badd_i256_1_281", align 8 - %"$$badd_i256_1_281_283" = bitcast %Uint256* %"$badd_i256_1_281" to i8* - %"$badd_call_284" = call i8* @_badd(i8* %"$execptr_load_279", i8* %"$a103_280", %_TyDescrTy_Typ* @"$TyDescr_Uint256_29", i8* %"$$badd_i256_1_281_283"), !dbg !32 - store i8* %"$badd_call_284", i8** %a104, align 8, !dbg !32 - %"$gasrem_286" = load i64, i64* @_gasrem, align 8 - %"$gascmp_287" = icmp ugt i64 1, %"$gasrem_286" - br i1 %"$gascmp_287", label %"$out_of_gas_288", label %"$have_gas_289" - -"$out_of_gas_288": ; preds = %"$have_gas_277" - call void @_out_of_gas() - br label %"$have_gas_289" - -"$have_gas_289": ; preds = %"$out_of_gas_288", %"$have_gas_277" - %"$consume_290" = sub i64 %"$gasrem_286", 1 - store i64 %"$consume_290", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata i8** %a104, metadata !67, metadata !DIExpression()), !dbg !68 + %"$gasrem_276" = load i64, i64* @_gasrem, align 8 + %"$gascmp_277" = icmp ugt i64 32, %"$gasrem_276" + br i1 %"$gascmp_277", label %"$out_of_gas_278", label %"$have_gas_279" + +"$out_of_gas_278": ; preds = %"$have_gas_274" + call void @_out_of_gas() + br label %"$have_gas_279" + +"$have_gas_279": ; preds = %"$out_of_gas_278", %"$have_gas_274" + %"$consume_280" = sub i64 %"$gasrem_276", 32 + store i64 %"$consume_280", i64* @_gasrem, align 8 + %"$execptr_load_281" = load i8*, i8** @_execptr, align 8 + %"$a103_282" = load i8*, i8** %a103, align 8 + %"$badd_i256_1_283" = alloca %Uint256, align 8 + %"$i256_1_284" = load %Uint256, %Uint256* %i256_1, align 8 + store %Uint256 %"$i256_1_284", %Uint256* %"$badd_i256_1_283", align 8 + %"$$badd_i256_1_283_285" = bitcast %Uint256* %"$badd_i256_1_283" to i8* + %"$badd_call_286" = call i8* @_badd(i8* %"$execptr_load_281", i8* %"$a103_282", %_TyDescrTy_Typ* @"$TyDescr_Uint256_29", i8* %"$$badd_i256_1_283_285"), !dbg !69 + store i8* %"$badd_call_286", i8** %a104, align 8, !dbg !69 + %"$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 = %"$have_gas_279" + call void @_out_of_gas() + br label %"$have_gas_291" + +"$have_gas_291": ; preds = %"$out_of_gas_290", %"$have_gas_279" + %"$consume_292" = sub i64 %"$gasrem_288", 1 + store i64 %"$consume_292", i64* @_gasrem, align 8 %sub1 = alloca %Int256, align 8 - %"$gasrem_291" = load i64, i64* @_gasrem, align 8 - %"$gascmp_292" = icmp ugt i64 32, %"$gasrem_291" - br i1 %"$gascmp_292", label %"$out_of_gas_293", label %"$have_gas_294" - -"$out_of_gas_293": ; preds = %"$have_gas_289" - call void @_out_of_gas() - br label %"$have_gas_294" - -"$have_gas_294": ; preds = %"$out_of_gas_293", %"$have_gas_289" - %"$consume_295" = sub i64 %"$gasrem_291", 32 - store i64 %"$consume_295", i64* @_gasrem, align 8 - %"$execptr_load_296" = load i8*, i8** @_execptr, align 8 - %"$a104_297" = load i8*, i8** %a104, align 8 - %"$a100_298" = load i8*, i8** %a100, align 8 - %"$bsub_call_299" = call %Int256* @_bsub(i8* %"$execptr_load_296", i8* %"$a104_297", i8* %"$a100_298"), !dbg !33 - %"$bsub_301" = load %Int256, %Int256* %"$bsub_call_299", align 8 - store %Int256 %"$bsub_301", %Int256* %sub1, align 8, !dbg !33 - %"$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 = %"$have_gas_294" - call void @_out_of_gas() - br label %"$have_gas_305" - -"$have_gas_305": ; preds = %"$out_of_gas_304", %"$have_gas_294" - %"$consume_306" = sub i64 %"$gasrem_302", 1 - store i64 %"$consume_306", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %Int256* %sub1, metadata !70, metadata !DIExpression()), !dbg !71 + %"$gasrem_293" = load i64, i64* @_gasrem, align 8 + %"$gascmp_294" = icmp ugt i64 32, %"$gasrem_293" + br i1 %"$gascmp_294", label %"$out_of_gas_295", label %"$have_gas_296" + +"$out_of_gas_295": ; preds = %"$have_gas_291" + call void @_out_of_gas() + br label %"$have_gas_296" + +"$have_gas_296": ; preds = %"$out_of_gas_295", %"$have_gas_291" + %"$consume_297" = sub i64 %"$gasrem_293", 32 + store i64 %"$consume_297", i64* @_gasrem, align 8 + %"$execptr_load_298" = load i8*, i8** @_execptr, align 8 + %"$a104_299" = load i8*, i8** %a104, align 8 + %"$a100_300" = load i8*, i8** %a100, align 8 + %"$bsub_call_301" = call %Int256* @_bsub(i8* %"$execptr_load_298", i8* %"$a104_299", i8* %"$a100_300"), !dbg !72 + %"$bsub_303" = load %Int256, %Int256* %"$bsub_call_301", align 8 + store %Int256 %"$bsub_303", %Int256* %sub1, align 8, !dbg !72 + %"$gasrem_304" = load i64, i64* @_gasrem, align 8 + %"$gascmp_305" = icmp ugt i64 1, %"$gasrem_304" + br i1 %"$gascmp_305", label %"$out_of_gas_306", label %"$have_gas_307" + +"$out_of_gas_306": ; preds = %"$have_gas_296" + call void @_out_of_gas() + br label %"$have_gas_307" + +"$have_gas_307": ; preds = %"$out_of_gas_306", %"$have_gas_296" + %"$consume_308" = sub i64 %"$gasrem_304", 1 + store i64 %"$consume_308", i64* @_gasrem, align 8 %res1 = alloca %TName_Bool*, align 8 - %"$gasrem_308" = load i64, i64* @_gasrem, align 8 - %"$gascmp_309" = icmp ugt i64 16, %"$gasrem_308" - br i1 %"$gascmp_309", label %"$out_of_gas_310", label %"$have_gas_311" - -"$out_of_gas_310": ; preds = %"$have_gas_305" - call void @_out_of_gas() - br label %"$have_gas_311" - -"$have_gas_311": ; preds = %"$out_of_gas_310", %"$have_gas_305" - %"$consume_312" = sub i64 %"$gasrem_308", 16 - store i64 %"$consume_312", i64* @_gasrem, align 8 - %"$execptr_load_313" = load i8*, i8** @_execptr, align 8 - %"$eq_i256_4_314" = alloca %Int256, align 8 - %"$i256_4_315" = load %Int256, %Int256* %i256_4, align 8 - store %Int256 %"$i256_4_315", %Int256* %"$eq_i256_4_314", align 8 - %"$eq_sub1_316" = alloca %Int256, align 8 - %"$sub1_317" = load %Int256, %Int256* %sub1, align 8 - store %Int256 %"$sub1_317", %Int256* %"$eq_sub1_316", align 8 - %"$eq_call_318" = call %TName_Bool* @_eq_Int256(i8* %"$execptr_load_313", %Int256* %"$eq_i256_4_314", %Int256* %"$eq_sub1_316"), !dbg !34 - store %TName_Bool* %"$eq_call_318", %TName_Bool** %res1, align 8, !dbg !34 - %"$gasrem_320" = load i64, i64* @_gasrem, align 8 - %"$gascmp_321" = icmp ugt i64 1, %"$gasrem_320" - br i1 %"$gascmp_321", label %"$out_of_gas_322", label %"$have_gas_323" - -"$out_of_gas_322": ; preds = %"$have_gas_311" - call void @_out_of_gas() - br label %"$have_gas_323" - -"$have_gas_323": ; preds = %"$out_of_gas_322", %"$have_gas_311" - %"$consume_324" = sub i64 %"$gasrem_320", 1 - store i64 %"$consume_324", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %res1, metadata !73, metadata !DIExpression()), !dbg !74 + %"$gasrem_310" = load i64, i64* @_gasrem, align 8 + %"$gascmp_311" = icmp ugt i64 16, %"$gasrem_310" + br i1 %"$gascmp_311", label %"$out_of_gas_312", label %"$have_gas_313" + +"$out_of_gas_312": ; preds = %"$have_gas_307" + call void @_out_of_gas() + br label %"$have_gas_313" + +"$have_gas_313": ; preds = %"$out_of_gas_312", %"$have_gas_307" + %"$consume_314" = sub i64 %"$gasrem_310", 16 + store i64 %"$consume_314", i64* @_gasrem, align 8 + %"$execptr_load_315" = load i8*, i8** @_execptr, align 8 + %"$eq_i256_4_316" = alloca %Int256, align 8 + %"$i256_4_317" = load %Int256, %Int256* %i256_4, align 8 + store %Int256 %"$i256_4_317", %Int256* %"$eq_i256_4_316", align 8 + %"$eq_sub1_318" = alloca %Int256, align 8 + %"$sub1_319" = load %Int256, %Int256* %sub1, align 8 + store %Int256 %"$sub1_319", %Int256* %"$eq_sub1_318", align 8 + %"$eq_call_320" = call %TName_Bool* @_eq_Int256(i8* %"$execptr_load_315", %Int256* %"$eq_i256_4_316", %Int256* %"$eq_sub1_318"), !dbg !75 + store %TName_Bool* %"$eq_call_320", %TName_Bool** %res1, align 8, !dbg !75 + %"$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_313" + call void @_out_of_gas() + br label %"$have_gas_325" + +"$have_gas_325": ; preds = %"$out_of_gas_324", %"$have_gas_313" + %"$consume_326" = sub i64 %"$gasrem_322", 1 + store i64 %"$consume_326", i64* @_gasrem, align 8 %sub2 = alloca %Int256, align 8 - %"$gasrem_325" = load i64, i64* @_gasrem, align 8 - %"$gascmp_326" = icmp ugt i64 32, %"$gasrem_325" - br i1 %"$gascmp_326", label %"$out_of_gas_327", label %"$have_gas_328" - -"$out_of_gas_327": ; preds = %"$have_gas_323" - call void @_out_of_gas() - br label %"$have_gas_328" - -"$have_gas_328": ; preds = %"$out_of_gas_327", %"$have_gas_323" - %"$consume_329" = sub i64 %"$gasrem_325", 32 - store i64 %"$consume_329", i64* @_gasrem, align 8 - %"$execptr_load_330" = load i8*, i8** @_execptr, align 8 - %"$a100_331" = load i8*, i8** %a100, align 8 - %"$a104_332" = load i8*, i8** %a104, align 8 - %"$bsub_call_333" = call %Int256* @_bsub(i8* %"$execptr_load_330", i8* %"$a100_331", i8* %"$a104_332"), !dbg !35 - %"$bsub_335" = load %Int256, %Int256* %"$bsub_call_333", align 8 - store %Int256 %"$bsub_335", %Int256* %sub2, align 8, !dbg !35 - %"$gasrem_336" = load i64, i64* @_gasrem, align 8 - %"$gascmp_337" = icmp ugt i64 1, %"$gasrem_336" - br i1 %"$gascmp_337", label %"$out_of_gas_338", label %"$have_gas_339" - -"$out_of_gas_338": ; preds = %"$have_gas_328" - call void @_out_of_gas() - br label %"$have_gas_339" - -"$have_gas_339": ; preds = %"$out_of_gas_338", %"$have_gas_328" - %"$consume_340" = sub i64 %"$gasrem_336", 1 - store i64 %"$consume_340", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %Int256* %sub2, metadata !76, metadata !DIExpression()), !dbg !77 + %"$gasrem_327" = load i64, i64* @_gasrem, align 8 + %"$gascmp_328" = icmp ugt i64 32, %"$gasrem_327" + br i1 %"$gascmp_328", label %"$out_of_gas_329", label %"$have_gas_330" + +"$out_of_gas_329": ; preds = %"$have_gas_325" + call void @_out_of_gas() + br label %"$have_gas_330" + +"$have_gas_330": ; preds = %"$out_of_gas_329", %"$have_gas_325" + %"$consume_331" = sub i64 %"$gasrem_327", 32 + store i64 %"$consume_331", i64* @_gasrem, align 8 + %"$execptr_load_332" = load i8*, i8** @_execptr, align 8 + %"$a100_333" = load i8*, i8** %a100, align 8 + %"$a104_334" = load i8*, i8** %a104, align 8 + %"$bsub_call_335" = call %Int256* @_bsub(i8* %"$execptr_load_332", i8* %"$a100_333", i8* %"$a104_334"), !dbg !78 + %"$bsub_337" = load %Int256, %Int256* %"$bsub_call_335", align 8 + store %Int256 %"$bsub_337", %Int256* %sub2, align 8, !dbg !78 + %"$gasrem_338" = load i64, i64* @_gasrem, align 8 + %"$gascmp_339" = icmp ugt i64 1, %"$gasrem_338" + br i1 %"$gascmp_339", label %"$out_of_gas_340", label %"$have_gas_341" + +"$out_of_gas_340": ; preds = %"$have_gas_330" + call void @_out_of_gas() + br label %"$have_gas_341" + +"$have_gas_341": ; preds = %"$out_of_gas_340", %"$have_gas_330" + %"$consume_342" = sub i64 %"$gasrem_338", 1 + store i64 %"$consume_342", i64* @_gasrem, align 8 %res2 = alloca %TName_Bool*, align 8 - %"$gasrem_342" = load i64, i64* @_gasrem, align 8 - %"$gascmp_343" = icmp ugt i64 16, %"$gasrem_342" - br i1 %"$gascmp_343", label %"$out_of_gas_344", label %"$have_gas_345" - -"$out_of_gas_344": ; preds = %"$have_gas_339" - call void @_out_of_gas() - br label %"$have_gas_345" - -"$have_gas_345": ; preds = %"$out_of_gas_344", %"$have_gas_339" - %"$consume_346" = sub i64 %"$gasrem_342", 16 - store i64 %"$consume_346", i64* @_gasrem, align 8 - %"$execptr_load_347" = load i8*, i8** @_execptr, align 8 - %"$eq_i256_m4_348" = alloca %Int256, align 8 - %"$i256_m4_349" = load %Int256, %Int256* %i256_m4, align 8 - store %Int256 %"$i256_m4_349", %Int256* %"$eq_i256_m4_348", align 8 - %"$eq_sub2_350" = alloca %Int256, align 8 - %"$sub2_351" = load %Int256, %Int256* %sub2, align 8 - store %Int256 %"$sub2_351", %Int256* %"$eq_sub2_350", align 8 - %"$eq_call_352" = call %TName_Bool* @_eq_Int256(i8* %"$execptr_load_347", %Int256* %"$eq_i256_m4_348", %Int256* %"$eq_sub2_350"), !dbg !36 - store %TName_Bool* %"$eq_call_352", %TName_Bool** %res2, align 8, !dbg !36 - %"$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" - -"$out_of_gas_356": ; preds = %"$have_gas_345" - call void @_out_of_gas() - br label %"$have_gas_357" - -"$have_gas_357": ; preds = %"$out_of_gas_356", %"$have_gas_345" - %"$consume_358" = sub i64 %"$gasrem_354", 1 - store i64 %"$consume_358", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %res2, metadata !79, metadata !DIExpression()), !dbg !80 + %"$gasrem_344" = load i64, i64* @_gasrem, align 8 + %"$gascmp_345" = icmp ugt i64 16, %"$gasrem_344" + br i1 %"$gascmp_345", label %"$out_of_gas_346", label %"$have_gas_347" + +"$out_of_gas_346": ; preds = %"$have_gas_341" + call void @_out_of_gas() + br label %"$have_gas_347" + +"$have_gas_347": ; preds = %"$out_of_gas_346", %"$have_gas_341" + %"$consume_348" = sub i64 %"$gasrem_344", 16 + store i64 %"$consume_348", i64* @_gasrem, align 8 + %"$execptr_load_349" = load i8*, i8** @_execptr, align 8 + %"$eq_i256_m4_350" = alloca %Int256, align 8 + %"$i256_m4_351" = load %Int256, %Int256* %i256_m4, align 8 + store %Int256 %"$i256_m4_351", %Int256* %"$eq_i256_m4_350", align 8 + %"$eq_sub2_352" = alloca %Int256, align 8 + %"$sub2_353" = load %Int256, %Int256* %sub2, align 8 + store %Int256 %"$sub2_353", %Int256* %"$eq_sub2_352", align 8 + %"$eq_call_354" = call %TName_Bool* @_eq_Int256(i8* %"$execptr_load_349", %Int256* %"$eq_i256_m4_350", %Int256* %"$eq_sub2_352"), !dbg !81 + store %TName_Bool* %"$eq_call_354", %TName_Bool** %res2, align 8, !dbg !81 + %"$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 = %"$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", 1 + store i64 %"$consume_360", i64* @_gasrem, align 8 %"$BoolUtils.andb_6" = alloca { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, align 8 - %"$BoolUtils.andb_359" = 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_360" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_359", 0 - %"$BoolUtils.andb_envptr_361" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_359", 1 - %"$res1_362" = load %TName_Bool*, %TName_Bool** %res1, align 8 - %"$BoolUtils.andb_call_363" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_360"(i8* %"$BoolUtils.andb_envptr_361", %TName_Bool* %"$res1_362"), !dbg !37 - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_363", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_6", align 8, !dbg !37 + %"$BoolUtils.andb_361" = 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_362" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_361", 0 + %"$BoolUtils.andb_envptr_363" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_361", 1 + %"$res1_364" = load %TName_Bool*, %TName_Bool** %res1, align 8 + %"$BoolUtils.andb_call_365" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_362"(i8* %"$BoolUtils.andb_envptr_363", %TName_Bool* %"$res1_364"), !dbg !82 + store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_365", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_6", align 8, !dbg !82 %"$BoolUtils.andb_7" = alloca %TName_Bool*, align 8 - %"$$BoolUtils.andb_6_364" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_6", align 8 - %"$$BoolUtils.andb_6_fptr_365" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_6_364", 0 - %"$$BoolUtils.andb_6_envptr_366" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_6_364", 1 - %"$res2_367" = load %TName_Bool*, %TName_Bool** %res2, align 8 - %"$$BoolUtils.andb_6_call_368" = call %TName_Bool* %"$$BoolUtils.andb_6_fptr_365"(i8* %"$$BoolUtils.andb_6_envptr_366", %TName_Bool* %"$res2_367"), !dbg !37 - store %TName_Bool* %"$$BoolUtils.andb_6_call_368", %TName_Bool** %"$BoolUtils.andb_7", align 8, !dbg !37 - %"$$BoolUtils.andb_7_369" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_7", align 8 - store %TName_Bool* %"$$BoolUtils.andb_7_369", %TName_Bool** %"$expr_12", align 8, !dbg !37 - %"$$expr_12_370" = load %TName_Bool*, %TName_Bool** %"$expr_12", align 8 - ret %TName_Bool* %"$$expr_12_370" + call void @llvm.dbg.declare(metadata %TName_Bool** %"$BoolUtils.andb_7", metadata !83, metadata !DIExpression()), !dbg !82 + %"$$BoolUtils.andb_6_366" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_6", align 8 + %"$$BoolUtils.andb_6_fptr_367" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_6_366", 0 + %"$$BoolUtils.andb_6_envptr_368" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_6_366", 1 + %"$res2_369" = load %TName_Bool*, %TName_Bool** %res2, align 8 + %"$$BoolUtils.andb_6_call_370" = call %TName_Bool* %"$$BoolUtils.andb_6_fptr_367"(i8* %"$$BoolUtils.andb_6_envptr_368", %TName_Bool* %"$res2_369"), !dbg !82 + store %TName_Bool* %"$$BoolUtils.andb_6_call_370", %TName_Bool** %"$BoolUtils.andb_7", align 8, !dbg !82 + %"$$BoolUtils.andb_7_371" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_7", align 8 + store %TName_Bool* %"$$BoolUtils.andb_7_371", %TName_Bool** %"$expr_12", align 8, !dbg !82 + %"$$expr_12_372" = load %TName_Bool*, %TName_Bool** %"$expr_12", align 8 + ret %TName_Bool* %"$$expr_12_372" } declare i8* @_new_bnum(i8*, %BNumString) @@ -760,51 +787,99 @@ declare void @_print_scilla_val(i8*, %_TyDescrTy_Typ*, i8*) define void @scilla_main() { entry: - %"$exprval_371" = call %TName_Bool* @_scilla_expr_fun(i8* null) - %"$memvoidcast_372" = bitcast %TName_Bool* %"$exprval_371" to i8* - %"$execptr_load_373" = load i8*, i8** @_execptr, align 8 - call void @_print_scilla_val(i8* %"$execptr_load_373", %_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_47", i8* %"$memvoidcast_372") + %"$exprval_373" = call %TName_Bool* @_scilla_expr_fun(i8* null) + %"$memvoidcast_374" = bitcast %TName_Bool* %"$exprval_373" to i8* + %"$execptr_load_375" = load i8*, i8** @_execptr, align 8 + call void @_print_scilla_val(i8* %"$execptr_load_375", %_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_47", i8* %"$memvoidcast_374") ret void } +attributes #0 = { nocallback nofree nosync nounwind readnone speculatable willreturn } + !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) +!1 = distinct !DICompileUnit(language: DW_LANG_C89, file: !2, producer: "Scilla Compiler", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false) !2 = !DIFile(filename: "builtin_baddsub.scilexp", directory: "codegen/expr") -!3 = !{} -!4 = distinct !DISubprogram(name: "$fundef_10", linkageName: "$fundef_10", scope: !5, file: !5, line: 8, type: !6, scopeLine: 8, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!5 = !DIFile(filename: "BoolUtils.scillib", directory: "../src/stdlib") -!6 = !DISubroutineType(types: !7) -!7 = !{!8} -!8 = !DIBasicType(tag: DW_TAG_unspecified_type, name: "void") -!9 = !DILocation(line: 8, column: 5, scope: !4) -!10 = !DILocation(line: 9, column: 16, scope: !11) -!11 = distinct !DILexicalBlock(scope: !12, file: !5, line: 9, column: 7) -!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_8", linkageName: "$fundef_8", 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: 0, scope: !17) -!20 = !DILocation(line: 7, column: 3, scope: !17) -!21 = distinct !DISubprogram(name: "_scilla_expr_fun", linkageName: "_scilla_expr_fun", scope: !2, file: !2, line: 1, type: !6, scopeLine: 1, spFlags: DISPFlagDefinition, unit: !1, retainedNodes: !3) -!22 = !DILocation(line: 1, column: 13, scope: !21) -!23 = !DILocation(line: 2, column: 13, scope: !21) -!24 = !DILocation(line: 3, column: 14, scope: !21) -!25 = !DILocation(line: 4, column: 14, scope: !21) -!26 = !DILocation(line: 6, column: 14, scope: !21) -!27 = !DILocation(line: 7, column: 15, scope: !21) -!28 = !DILocation(line: 9, column: 12, scope: !21) -!29 = !DILocation(line: 10, column: 12, scope: !21) -!30 = !DILocation(line: 11, column: 12, scope: !21) -!31 = !DILocation(line: 12, column: 12, scope: !21) -!32 = !DILocation(line: 13, column: 12, scope: !21) -!33 = !DILocation(line: 15, column: 12, scope: !21) -!34 = !DILocation(line: 16, column: 12, scope: !21) -!35 = !DILocation(line: 19, column: 12, scope: !21) -!36 = !DILocation(line: 20, column: 12, scope: !21) -!37 = !DILocation(line: 22, column: 1, scope: !21) +!3 = distinct !DISubprogram(name: "$fundef_10", linkageName: "$fundef_10", scope: !4, file: !4, line: 8, type: !5, scopeLine: 8, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!4 = !DIFile(filename: "BoolUtils.scillib", directory: "../src/stdlib") +!5 = !DISubroutineType(types: !6) +!6 = !{!7} +!7 = !DIBasicType(tag: DW_TAG_unspecified_type, name: "void") +!8 = !{} +!9 = !DILocalVariable(name: "c", scope: !3, file: !4, line: 7, type: !10) +!10 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "Bool", baseType: !11, size: 8, align: 8, dwarfAddressSpace: 0) +!11 = !DIBasicType(name: "Bool", size: 8) +!12 = !DILocation(line: 7, column: 8, scope: !3) +!13 = !DILocalVariable(name: "$retval_11", scope: !3, file: !4, line: 8, type: !10) +!14 = !DILocation(line: 8, column: 5, scope: !3) +!15 = !DILocation(line: 9, column: 16, scope: !16) +!16 = distinct !DILexicalBlock(scope: !17, file: !4, line: 9, column: 7) +!17 = distinct !DILexicalBlock(scope: !3, file: !4, line: 8, column: 5) +!18 = !DILocation(line: 10, column: 16, scope: !19) +!19 = distinct !DILexicalBlock(scope: !17, file: !4, line: 10, column: 7) +!20 = distinct !DISubprogram(name: "$fundef_8", linkageName: "$fundef_8", scope: !4, file: !4, line: 7, type: !5, scopeLine: 7, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!21 = !DILocalVariable(name: "b", scope: !20, file: !4, line: 6, type: !10) +!22 = !DILocation(line: 6, column: 8, scope: !20) +!23 = !DILocation(line: 8, column: 5, scope: !20) +!24 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !25, file: !25, type: !5, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!25 = !DIFile(filename: ".", directory: ".") +!26 = !DILocation(line: 0, scope: !24) +!27 = !DILocation(line: 7, column: 3, scope: !24) +!28 = distinct !DISubprogram(name: "_scilla_expr_fun", linkageName: "_scilla_expr_fun", scope: !2, file: !2, line: 1, type: !5, scopeLine: 1, spFlags: DISPFlagDefinition, unit: !1, retainedNodes: !8) +!29 = !DILocalVariable(name: "$expr_12", scope: !28, file: !2, line: 1, type: !10) +!30 = !DILocation(line: 1, column: 13, scope: !28) +!31 = !DILocalVariable(name: "i32_1", scope: !28, file: !2, line: 1, type: !32) +!32 = !DIBasicType(name: "Uint32", size: 4) +!33 = !DILocation(line: 1, column: 5, scope: !28) +!34 = !DILocalVariable(name: "i64_1", scope: !28, file: !2, line: 2, type: !35) +!35 = !DIBasicType(name: "Uint64", size: 8) +!36 = !DILocation(line: 2, column: 5, scope: !28) +!37 = !DILocation(line: 2, column: 13, scope: !28) +!38 = !DILocalVariable(name: "i128_1", scope: !28, file: !2, line: 3, type: !39) +!39 = !DIBasicType(name: "Uint128", size: 16) +!40 = !DILocation(line: 3, column: 5, scope: !28) +!41 = !DILocation(line: 3, column: 14, scope: !28) +!42 = !DILocalVariable(name: "i256_1", scope: !28, file: !2, line: 4, type: !43) +!43 = !DIBasicType(name: "Uint256", size: 32) +!44 = !DILocation(line: 4, column: 5, scope: !28) +!45 = !DILocation(line: 4, column: 14, scope: !28) +!46 = !DILocalVariable(name: "i256_4", scope: !28, file: !2, line: 6, type: !47) +!47 = !DIBasicType(name: "Int256", size: 32) +!48 = !DILocation(line: 6, column: 5, scope: !28) +!49 = !DILocation(line: 6, column: 14, scope: !28) +!50 = !DILocalVariable(name: "i256_m4", scope: !28, file: !2, line: 7, type: !47) +!51 = !DILocation(line: 7, column: 5, scope: !28) +!52 = !DILocation(line: 7, column: 15, scope: !28) +!53 = !DILocalVariable(name: "a100", scope: !28, file: !2, line: 9, type: !54) +!54 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "BNum", baseType: !55, size: 8, align: 8, dwarfAddressSpace: 0) +!55 = !DIBasicType(name: "BNum", size: 8) +!56 = !DILocation(line: 9, column: 5, scope: !28) +!57 = !DILocation(line: 9, column: 12, scope: !28) +!58 = !DILocalVariable(name: "a101", scope: !28, file: !2, line: 10, type: !54) +!59 = !DILocation(line: 10, column: 5, scope: !28) +!60 = !DILocation(line: 10, column: 12, scope: !28) +!61 = !DILocalVariable(name: "a102", scope: !28, file: !2, line: 11, type: !54) +!62 = !DILocation(line: 11, column: 5, scope: !28) +!63 = !DILocation(line: 11, column: 12, scope: !28) +!64 = !DILocalVariable(name: "a103", scope: !28, file: !2, line: 12, type: !54) +!65 = !DILocation(line: 12, column: 5, scope: !28) +!66 = !DILocation(line: 12, column: 12, scope: !28) +!67 = !DILocalVariable(name: "a104", scope: !28, file: !2, line: 13, type: !54) +!68 = !DILocation(line: 13, column: 5, scope: !28) +!69 = !DILocation(line: 13, column: 12, scope: !28) +!70 = !DILocalVariable(name: "sub1", scope: !28, file: !2, line: 15, type: !47) +!71 = !DILocation(line: 15, column: 5, scope: !28) +!72 = !DILocation(line: 15, column: 12, scope: !28) +!73 = !DILocalVariable(name: "res1", scope: !28, file: !2, line: 16, type: !10) +!74 = !DILocation(line: 16, column: 5, scope: !28) +!75 = !DILocation(line: 16, column: 12, scope: !28) +!76 = !DILocalVariable(name: "sub2", scope: !28, file: !2, line: 19, type: !47) +!77 = !DILocation(line: 19, column: 5, scope: !28) +!78 = !DILocation(line: 19, column: 12, scope: !28) +!79 = !DILocalVariable(name: "res2", scope: !28, file: !2, line: 20, type: !10) +!80 = !DILocation(line: 20, column: 5, scope: !28) +!81 = !DILocation(line: 20, column: 12, scope: !28) +!82 = !DILocation(line: 22, column: 1, scope: !28) +!83 = !DILocalVariable(name: "$BoolUtils.andb_7", scope: !28, file: !2, line: 22, type: !10) diff --git a/testsuite/expr/builtin_baddsub.ll b/testsuite/expr/builtin_baddsub.ll index 77ff724b..c26ec883 100644 --- a/testsuite/expr/builtin_baddsub.ll +++ b/testsuite/expr/builtin_baddsub.ll @@ -23,7 +23,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-pc-linux-gnu" +target triple = "x86_64-unknown-linux-gnu" %"$TyDescrTy_PrimTyp_13" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/testsuite/expr/builtin_bech32-invalid.dbg.ll b/testsuite/expr/builtin_bech32-invalid.dbg.ll index 1869d4da..43a759f3 100644 --- a/testsuite/expr/builtin_bech32-invalid.dbg.ll +++ b/testsuite/expr/builtin_bech32-invalid.dbg.ll @@ -4,7 +4,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-pc-linux-gnu" +target triple = "x86_64-unknown-linux-gnu" %"$TyDescrTy_PrimTyp_7" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } @@ -83,7 +83,7 @@ target triple = "x86_64-pc-linux-gnu" @_transition_parameters = constant [0 x %"$TransDescr_136"] zeroinitializer @_transition_parameters_length = constant i32 0 -define void @_init_libs() !dbg !4 { +define void @_init_libs() !dbg !3 { entry: %"$gasrem_59" = load i64, i64* @_gasrem, align 8 %"$gascmp_60" = icmp ugt i64 5, %"$gasrem_59" @@ -165,6 +165,7 @@ declare void @_out_of_gas() define internal %TName_Option_ByStr20* @_scilla_expr_fun(i8* %0) !dbg !10 { entry: %"$expr_6" = alloca %TName_Option_ByStr20*, align 8 + call void @llvm.dbg.declare(metadata %TName_Option_ByStr20** %"$expr_6", metadata !11, metadata !DIExpression()), !dbg !14 %"$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" @@ -177,6 +178,7 @@ entry: %"$consume_93" = sub i64 %"$gasrem_89", 1 store i64 %"$consume_93", i64* @_gasrem, align 8 %bech32str = alloca %String, align 8 + call void @llvm.dbg.declare(metadata %String* %bech32str, metadata !15, metadata !DIExpression()), !dbg !17 %"$gasrem_94" = load i64, i64* @_gasrem, align 8 %"$gascmp_95" = icmp ugt i64 1, %"$gasrem_94" br i1 %"$gascmp_95", label %"$out_of_gas_96", label %"$have_gas_97" @@ -188,7 +190,7 @@ entry: "$have_gas_97": ; preds = %"$out_of_gas_96", %"$have_gas_92" %"$consume_98" = sub i64 %"$gasrem_94", 1 store i64 %"$consume_98", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([42 x i8], [42 x i8]* @"$stringlit_99", i32 0, i32 0), i32 42 }, %String* %bech32str, align 8, !dbg !11 + store %String { i8* getelementptr inbounds ([42 x i8], [42 x i8]* @"$stringlit_99", i32 0, i32 0), i32 42 }, %String* %bech32str, align 8, !dbg !14 %"$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" @@ -201,6 +203,7 @@ entry: %"$consume_104" = sub i64 %"$gasrem_100", 1 store i64 %"$consume_104", i64* @_gasrem, align 8 %prefix = alloca %String, align 8 + call void @llvm.dbg.declare(metadata %String* %prefix, metadata !18, metadata !DIExpression()), !dbg !19 %"$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" @@ -212,7 +215,7 @@ entry: "$have_gas_108": ; preds = %"$out_of_gas_107", %"$have_gas_103" %"$consume_109" = sub i64 %"$gasrem_105", 1 store i64 %"$consume_109", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_110", i32 0, i32 0), i32 3 }, %String* %prefix, align 8, !dbg !12 + store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_110", i32 0, i32 0), i32 3 }, %String* %prefix, align 8, !dbg !20 %"$_literal_cost_prefix_111" = alloca %String, align 8 %"$prefix_112" = load %String, %String* %prefix, align 8 store %String %"$prefix_112", %String* %"$_literal_cost_prefix_111", align 8 @@ -239,12 +242,15 @@ entry: %"$execptr_load_126" = load i8*, i8** @_execptr, align 8 %"$prefix_127" = load %String, %String* %prefix, align 8 %"$bech32str_128" = load %String, %String* %bech32str, align 8 - %"$bech32_to_bystr20_call_129" = call %TName_Option_ByStr20* @_bech32_to_bystr20(i8* %"$execptr_load_126", %String %"$prefix_127", %String %"$bech32str_128"), !dbg !13 - store %TName_Option_ByStr20* %"$bech32_to_bystr20_call_129", %TName_Option_ByStr20** %"$expr_6", align 8, !dbg !13 + %"$bech32_to_bystr20_call_129" = call %TName_Option_ByStr20* @_bech32_to_bystr20(i8* %"$execptr_load_126", %String %"$prefix_127", %String %"$bech32str_128"), !dbg !21 + store %TName_Option_ByStr20* %"$bech32_to_bystr20_call_129", %TName_Option_ByStr20** %"$expr_6", align 8, !dbg !21 %"$$expr_6_131" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %"$expr_6", align 8 ret %TName_Option_ByStr20* %"$$expr_6_131" } +; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn +declare void @llvm.dbg.declare(metadata, metadata, metadata) #0 + declare i64 @_literal_cost(%_TyDescrTy_Typ*, i8*) declare %TName_Option_ByStr20* @_bech32_to_bystr20(i8*, %String, %String) @@ -260,20 +266,30 @@ entry: ret void } +attributes #0 = { nocallback nofree nosync nounwind readnone speculatable willreturn } + !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) +!1 = distinct !DICompileUnit(language: DW_LANG_C89, file: !2, producer: "Scilla Compiler", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false) !2 = !DIFile(filename: "builtin_bech32-invalid.scilexp", directory: "codegen/expr") -!3 = !{} -!4 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !5, file: !5, type: !6, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!5 = !DIFile(filename: ".", directory: ".") -!6 = !DISubroutineType(types: !7) -!7 = !{!8} -!8 = !DIBasicType(tag: DW_TAG_unspecified_type, name: "void") -!9 = !DILocation(line: 0, scope: !4) -!10 = distinct !DISubprogram(name: "_scilla_expr_fun", linkageName: "_scilla_expr_fun", scope: !2, file: !2, line: 1, type: !6, scopeLine: 1, spFlags: DISPFlagDefinition, unit: !1, retainedNodes: !3) -!11 = !DILocation(line: 1, column: 60, scope: !10) -!12 = !DILocation(line: 2, column: 18, scope: !10) -!13 = !DILocation(line: 3, column: 1, scope: !10) +!3 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !4, file: !4, type: !5, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!4 = !DIFile(filename: ".", directory: ".") +!5 = !DISubroutineType(types: !6) +!6 = !{!7} +!7 = !DIBasicType(tag: DW_TAG_unspecified_type, name: "void") +!8 = !{} +!9 = !DILocation(line: 0, scope: !3) +!10 = distinct !DISubprogram(name: "_scilla_expr_fun", linkageName: "_scilla_expr_fun", scope: !2, file: !2, line: 1, type: !5, scopeLine: 1, spFlags: DISPFlagDefinition, unit: !1, retainedNodes: !8) +!11 = !DILocalVariable(name: "$expr_6", scope: !10, file: !2, line: 1, type: !12) +!12 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "Option (ByStr20)", baseType: !13, size: 8, align: 8, dwarfAddressSpace: 0) +!13 = !DIBasicType(name: "Option (ByStr20)", size: 8) +!14 = !DILocation(line: 1, column: 60, scope: !10) +!15 = !DILocalVariable(name: "bech32str", scope: !10, file: !2, line: 1, type: !16) +!16 = !DIBasicType(name: "String", size: 16) +!17 = !DILocation(line: 1, column: 5, scope: !10) +!18 = !DILocalVariable(name: "prefix", scope: !10, file: !2, line: 2, type: !16) +!19 = !DILocation(line: 2, column: 5, scope: !10) +!20 = !DILocation(line: 2, column: 18, scope: !10) +!21 = !DILocation(line: 3, column: 1, scope: !10) diff --git a/testsuite/expr/builtin_bech32-invalid.ll b/testsuite/expr/builtin_bech32-invalid.ll index 3e9772c8..1db55a0c 100644 --- a/testsuite/expr/builtin_bech32-invalid.ll +++ b/testsuite/expr/builtin_bech32-invalid.ll @@ -4,7 +4,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-pc-linux-gnu" +target triple = "x86_64-unknown-linux-gnu" %"$TyDescrTy_PrimTyp_7" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/testsuite/expr/builtin_bech32.dbg.ll b/testsuite/expr/builtin_bech32.dbg.ll index 6cd31bea..a4a1cd4d 100644 --- a/testsuite/expr/builtin_bech32.dbg.ll +++ b/testsuite/expr/builtin_bech32.dbg.ll @@ -4,7 +4,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-pc-linux-gnu" +target triple = "x86_64-unknown-linux-gnu" %"$TyDescrTy_PrimTyp_7" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } @@ -83,7 +83,7 @@ target triple = "x86_64-pc-linux-gnu" @_transition_parameters = constant [0 x %"$TransDescr_136"] zeroinitializer @_transition_parameters_length = constant i32 0 -define void @_init_libs() !dbg !4 { +define void @_init_libs() !dbg !3 { entry: %"$gasrem_59" = load i64, i64* @_gasrem, align 8 %"$gascmp_60" = icmp ugt i64 5, %"$gasrem_59" @@ -165,6 +165,7 @@ declare void @_out_of_gas() define internal %TName_Option_ByStr20* @_scilla_expr_fun(i8* %0) !dbg !10 { entry: %"$expr_6" = alloca %TName_Option_ByStr20*, align 8 + call void @llvm.dbg.declare(metadata %TName_Option_ByStr20** %"$expr_6", metadata !11, metadata !DIExpression()), !dbg !14 %"$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" @@ -177,6 +178,7 @@ entry: %"$consume_93" = sub i64 %"$gasrem_89", 1 store i64 %"$consume_93", i64* @_gasrem, align 8 %bech32str = alloca %String, align 8 + call void @llvm.dbg.declare(metadata %String* %bech32str, metadata !15, metadata !DIExpression()), !dbg !17 %"$gasrem_94" = load i64, i64* @_gasrem, align 8 %"$gascmp_95" = icmp ugt i64 1, %"$gasrem_94" br i1 %"$gascmp_95", label %"$out_of_gas_96", label %"$have_gas_97" @@ -188,7 +190,7 @@ entry: "$have_gas_97": ; preds = %"$out_of_gas_96", %"$have_gas_92" %"$consume_98" = sub i64 %"$gasrem_94", 1 store i64 %"$consume_98", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([42 x i8], [42 x i8]* @"$stringlit_99", i32 0, i32 0), i32 42 }, %String* %bech32str, align 8, !dbg !11 + store %String { i8* getelementptr inbounds ([42 x i8], [42 x i8]* @"$stringlit_99", i32 0, i32 0), i32 42 }, %String* %bech32str, align 8, !dbg !14 %"$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" @@ -201,6 +203,7 @@ entry: %"$consume_104" = sub i64 %"$gasrem_100", 1 store i64 %"$consume_104", i64* @_gasrem, align 8 %prefix = alloca %String, align 8 + call void @llvm.dbg.declare(metadata %String* %prefix, metadata !18, metadata !DIExpression()), !dbg !19 %"$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" @@ -212,7 +215,7 @@ entry: "$have_gas_108": ; preds = %"$out_of_gas_107", %"$have_gas_103" %"$consume_109" = sub i64 %"$gasrem_105", 1 store i64 %"$consume_109", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_110", i32 0, i32 0), i32 3 }, %String* %prefix, align 8, !dbg !12 + store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_110", i32 0, i32 0), i32 3 }, %String* %prefix, align 8, !dbg !20 %"$_literal_cost_prefix_111" = alloca %String, align 8 %"$prefix_112" = load %String, %String* %prefix, align 8 store %String %"$prefix_112", %String* %"$_literal_cost_prefix_111", align 8 @@ -239,12 +242,15 @@ entry: %"$execptr_load_126" = load i8*, i8** @_execptr, align 8 %"$prefix_127" = load %String, %String* %prefix, align 8 %"$bech32str_128" = load %String, %String* %bech32str, align 8 - %"$bech32_to_bystr20_call_129" = call %TName_Option_ByStr20* @_bech32_to_bystr20(i8* %"$execptr_load_126", %String %"$prefix_127", %String %"$bech32str_128"), !dbg !13 - store %TName_Option_ByStr20* %"$bech32_to_bystr20_call_129", %TName_Option_ByStr20** %"$expr_6", align 8, !dbg !13 + %"$bech32_to_bystr20_call_129" = call %TName_Option_ByStr20* @_bech32_to_bystr20(i8* %"$execptr_load_126", %String %"$prefix_127", %String %"$bech32str_128"), !dbg !21 + store %TName_Option_ByStr20* %"$bech32_to_bystr20_call_129", %TName_Option_ByStr20** %"$expr_6", align 8, !dbg !21 %"$$expr_6_131" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %"$expr_6", align 8 ret %TName_Option_ByStr20* %"$$expr_6_131" } +; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn +declare void @llvm.dbg.declare(metadata, metadata, metadata) #0 + declare i64 @_literal_cost(%_TyDescrTy_Typ*, i8*) declare %TName_Option_ByStr20* @_bech32_to_bystr20(i8*, %String, %String) @@ -260,20 +266,30 @@ entry: ret void } +attributes #0 = { nocallback nofree nosync nounwind readnone speculatable willreturn } + !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) +!1 = distinct !DICompileUnit(language: DW_LANG_C89, file: !2, producer: "Scilla Compiler", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false) !2 = !DIFile(filename: "builtin_bech32.scilexp", directory: "codegen/expr") -!3 = !{} -!4 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !5, file: !5, type: !6, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!5 = !DIFile(filename: ".", directory: ".") -!6 = !DISubroutineType(types: !7) -!7 = !{!8} -!8 = !DIBasicType(tag: DW_TAG_unspecified_type, name: "void") -!9 = !DILocation(line: 0, scope: !4) -!10 = distinct !DISubprogram(name: "_scilla_expr_fun", linkageName: "_scilla_expr_fun", scope: !2, file: !2, line: 1, type: !6, scopeLine: 1, spFlags: DISPFlagDefinition, unit: !1, retainedNodes: !3) -!11 = !DILocation(line: 1, column: 60, scope: !10) -!12 = !DILocation(line: 2, column: 18, scope: !10) -!13 = !DILocation(line: 3, column: 1, scope: !10) +!3 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !4, file: !4, type: !5, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!4 = !DIFile(filename: ".", directory: ".") +!5 = !DISubroutineType(types: !6) +!6 = !{!7} +!7 = !DIBasicType(tag: DW_TAG_unspecified_type, name: "void") +!8 = !{} +!9 = !DILocation(line: 0, scope: !3) +!10 = distinct !DISubprogram(name: "_scilla_expr_fun", linkageName: "_scilla_expr_fun", scope: !2, file: !2, line: 1, type: !5, scopeLine: 1, spFlags: DISPFlagDefinition, unit: !1, retainedNodes: !8) +!11 = !DILocalVariable(name: "$expr_6", scope: !10, file: !2, line: 1, type: !12) +!12 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "Option (ByStr20)", baseType: !13, size: 8, align: 8, dwarfAddressSpace: 0) +!13 = !DIBasicType(name: "Option (ByStr20)", size: 8) +!14 = !DILocation(line: 1, column: 60, scope: !10) +!15 = !DILocalVariable(name: "bech32str", scope: !10, file: !2, line: 1, type: !16) +!16 = !DIBasicType(name: "String", size: 16) +!17 = !DILocation(line: 1, column: 5, scope: !10) +!18 = !DILocalVariable(name: "prefix", scope: !10, file: !2, line: 2, type: !16) +!19 = !DILocation(line: 2, column: 5, scope: !10) +!20 = !DILocation(line: 2, column: 18, scope: !10) +!21 = !DILocation(line: 3, column: 1, scope: !10) diff --git a/testsuite/expr/builtin_bech32.ll b/testsuite/expr/builtin_bech32.ll index 5d02533e..9ca0af72 100644 --- a/testsuite/expr/builtin_bech32.ll +++ b/testsuite/expr/builtin_bech32.ll @@ -4,7 +4,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-pc-linux-gnu" +target triple = "x86_64-unknown-linux-gnu" %"$TyDescrTy_PrimTyp_7" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/testsuite/expr/builtin_bech32_rev.dbg.ll b/testsuite/expr/builtin_bech32_rev.dbg.ll index 26067a95..40500834 100644 --- a/testsuite/expr/builtin_bech32_rev.dbg.ll +++ b/testsuite/expr/builtin_bech32_rev.dbg.ll @@ -4,7 +4,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-pc-linux-gnu" +target triple = "x86_64-unknown-linux-gnu" %"$TyDescrTy_PrimTyp_7" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } @@ -82,7 +82,7 @@ target triple = "x86_64-pc-linux-gnu" @_transition_parameters = constant [0 x %"$TransDescr_136"] zeroinitializer @_transition_parameters_length = constant i32 0 -define void @_init_libs() !dbg !4 { +define void @_init_libs() !dbg !3 { entry: %"$gasrem_59" = load i64, i64* @_gasrem, align 8 %"$gascmp_60" = icmp ugt i64 5, %"$gasrem_59" @@ -164,6 +164,7 @@ declare void @_out_of_gas() define internal %TName_Option_String* @_scilla_expr_fun(i8* %0) !dbg !10 { entry: %"$expr_6" = alloca %TName_Option_String*, align 8 + call void @llvm.dbg.declare(metadata %TName_Option_String** %"$expr_6", metadata !11, metadata !DIExpression()), !dbg !14 %"$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" @@ -176,6 +177,7 @@ entry: %"$consume_93" = sub i64 %"$gasrem_89", 1 store i64 %"$consume_93", i64* @_gasrem, align 8 %bystr20_addr = alloca [20 x i8], align 1 + call void @llvm.dbg.declare(metadata [20 x i8]* %bystr20_addr, metadata !15, metadata !DIExpression()), !dbg !17 %"$gasrem_94" = load i64, i64* @_gasrem, align 8 %"$gascmp_95" = icmp ugt i64 1, %"$gasrem_94" br i1 %"$gascmp_95", label %"$out_of_gas_96", label %"$have_gas_97" @@ -187,7 +189,7 @@ entry: "$have_gas_97": ; preds = %"$out_of_gas_96", %"$have_gas_92" %"$consume_98" = sub i64 %"$gasrem_94", 1 store i64 %"$consume_98", i64* @_gasrem, align 8 - store [20 x i8] c"z\A7\EA\9FE4\D8\D7\02$\B9\C2\FB\16RB\F3!\F1+", [20 x i8]* %bystr20_addr, align 1, !dbg !11 + store [20 x i8] c"z\A7\EA\9FE4\D8\D7\02$\B9\C2\FB\16RB\F3!\F1+", [20 x i8]* %bystr20_addr, align 1, !dbg !14 %"$gasrem_99" = load i64, i64* @_gasrem, align 8 %"$gascmp_100" = icmp ugt i64 1, %"$gasrem_99" br i1 %"$gascmp_100", label %"$out_of_gas_101", label %"$have_gas_102" @@ -200,6 +202,7 @@ entry: %"$consume_103" = sub i64 %"$gasrem_99", 1 store i64 %"$consume_103", i64* @_gasrem, align 8 %prefix = alloca %String, align 8 + call void @llvm.dbg.declare(metadata %String* %prefix, metadata !18, metadata !DIExpression()), !dbg !20 %"$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" @@ -211,7 +214,7 @@ entry: "$have_gas_107": ; preds = %"$out_of_gas_106", %"$have_gas_102" %"$consume_108" = sub i64 %"$gasrem_104", 1 store i64 %"$consume_108", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_109", i32 0, i32 0), i32 3 }, %String* %prefix, align 8, !dbg !12 + store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_109", i32 0, i32 0), i32 3 }, %String* %prefix, align 8, !dbg !21 %"$_literal_cost_prefix_110" = alloca %String, align 8 %"$prefix_111" = load %String, %String* %prefix, align 8 store %String %"$prefix_111", %String* %"$_literal_cost_prefix_110", align 8 @@ -240,12 +243,15 @@ entry: %"$bystr20_to_bech32_bystr20_addr_127" = alloca [20 x i8], align 1 %"$bystr20_addr_128" = load [20 x i8], [20 x i8]* %bystr20_addr, align 1 store [20 x i8] %"$bystr20_addr_128", [20 x i8]* %"$bystr20_to_bech32_bystr20_addr_127", align 1 - %"$bystr20_to_bech32_call_129" = call %TName_Option_String* @_bystr20_to_bech32(i8* %"$execptr_load_125", %String %"$prefix_126", [20 x i8]* %"$bystr20_to_bech32_bystr20_addr_127"), !dbg !13 - store %TName_Option_String* %"$bystr20_to_bech32_call_129", %TName_Option_String** %"$expr_6", align 8, !dbg !13 + %"$bystr20_to_bech32_call_129" = call %TName_Option_String* @_bystr20_to_bech32(i8* %"$execptr_load_125", %String %"$prefix_126", [20 x i8]* %"$bystr20_to_bech32_bystr20_addr_127"), !dbg !22 + store %TName_Option_String* %"$bystr20_to_bech32_call_129", %TName_Option_String** %"$expr_6", align 8, !dbg !22 %"$$expr_6_131" = load %TName_Option_String*, %TName_Option_String** %"$expr_6", align 8 ret %TName_Option_String* %"$$expr_6_131" } +; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn +declare void @llvm.dbg.declare(metadata, metadata, metadata) #0 + declare i64 @_literal_cost(%_TyDescrTy_Typ*, i8*) declare %TName_Option_String* @_bystr20_to_bech32(i8*, %String, [20 x i8]*) @@ -261,20 +267,31 @@ entry: ret void } +attributes #0 = { nocallback nofree nosync nounwind readnone speculatable willreturn } + !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) +!1 = distinct !DICompileUnit(language: DW_LANG_C89, file: !2, producer: "Scilla Compiler", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false) !2 = !DIFile(filename: "builtin_bech32_rev.scilexp", directory: "codegen/expr") -!3 = !{} -!4 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !5, file: !5, type: !6, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!5 = !DIFile(filename: ".", directory: ".") -!6 = !DISubroutineType(types: !7) -!7 = !{!8} -!8 = !DIBasicType(tag: DW_TAG_unspecified_type, name: "void") -!9 = !DILocation(line: 0, scope: !4) -!10 = distinct !DISubprogram(name: "_scilla_expr_fun", linkageName: "_scilla_expr_fun", scope: !2, file: !2, line: 1, type: !6, scopeLine: 1, spFlags: DISPFlagDefinition, unit: !1, retainedNodes: !3) -!11 = !DILocation(line: 1, column: 20, scope: !10) -!12 = !DILocation(line: 2, column: 18, scope: !10) -!13 = !DILocation(line: 3, column: 1, scope: !10) +!3 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !4, file: !4, type: !5, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!4 = !DIFile(filename: ".", directory: ".") +!5 = !DISubroutineType(types: !6) +!6 = !{!7} +!7 = !DIBasicType(tag: DW_TAG_unspecified_type, name: "void") +!8 = !{} +!9 = !DILocation(line: 0, scope: !3) +!10 = distinct !DISubprogram(name: "_scilla_expr_fun", linkageName: "_scilla_expr_fun", scope: !2, file: !2, line: 1, type: !5, scopeLine: 1, spFlags: DISPFlagDefinition, unit: !1, retainedNodes: !8) +!11 = !DILocalVariable(name: "$expr_6", scope: !10, file: !2, line: 1, type: !12) +!12 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "Option (String)", baseType: !13, size: 8, align: 8, dwarfAddressSpace: 0) +!13 = !DIBasicType(name: "Option (String)", size: 8) +!14 = !DILocation(line: 1, column: 20, scope: !10) +!15 = !DILocalVariable(name: "bystr20_addr", scope: !10, file: !2, line: 1, type: !16) +!16 = !DIBasicType(name: "ByStr20", size: 20) +!17 = !DILocation(line: 1, column: 5, scope: !10) +!18 = !DILocalVariable(name: "prefix", scope: !10, file: !2, line: 2, type: !19) +!19 = !DIBasicType(name: "String", size: 16) +!20 = !DILocation(line: 2, column: 5, scope: !10) +!21 = !DILocation(line: 2, column: 18, scope: !10) +!22 = !DILocation(line: 3, column: 1, scope: !10) diff --git a/testsuite/expr/builtin_bech32_rev.ll b/testsuite/expr/builtin_bech32_rev.ll index 049ef6e8..2289674c 100644 --- a/testsuite/expr/builtin_bech32_rev.ll +++ b/testsuite/expr/builtin_bech32_rev.ll @@ -4,7 +4,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-pc-linux-gnu" +target triple = "x86_64-unknown-linux-gnu" %"$TyDescrTy_PrimTyp_7" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/testsuite/expr/builtin_concat.dbg.ll b/testsuite/expr/builtin_concat.dbg.ll index ca37387e..3b41e83e 100644 --- a/testsuite/expr/builtin_concat.dbg.ll +++ b/testsuite/expr/builtin_concat.dbg.ll @@ -21,7 +21,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-pc-linux-gnu" +target triple = "x86_64-unknown-linux-gnu" %"$TyDescrTy_PrimTyp_7" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } @@ -128,7 +128,7 @@ target triple = "x86_64-pc-linux-gnu" @_transition_parameters = constant [0 x %"$TransDescr_359"] zeroinitializer @_transition_parameters_length = constant i32 0 -define void @_init_libs() !dbg !4 { +define void @_init_libs() !dbg !3 { entry: %"$gasrem_82" = load i64, i64* @_gasrem, align 8 %"$gascmp_83" = icmp ugt i64 5, %"$gasrem_82" @@ -210,6 +210,7 @@ declare void @_out_of_gas() define internal %"TName_Pair_Bool_Pair_(String)_(ByStr22)"* @_scilla_expr_fun(i8* %0) !dbg !10 { entry: %"$expr_6" = alloca %"TName_Pair_Bool_Pair_(String)_(ByStr22)"*, align 8 + call void @llvm.dbg.declare(metadata %"TName_Pair_Bool_Pair_(String)_(ByStr22)"** %"$expr_6", metadata !11, metadata !DIExpression()), !dbg !14 %"$gasrem_112" = load i64, i64* @_gasrem, align 8 %"$gascmp_113" = icmp ugt i64 1, %"$gasrem_112" br i1 %"$gascmp_113", label %"$out_of_gas_114", label %"$have_gas_115" @@ -222,6 +223,7 @@ entry: %"$consume_116" = sub i64 %"$gasrem_112", 1 store i64 %"$consume_116", i64* @_gasrem, align 8 %a = alloca %String, align 8 + call void @llvm.dbg.declare(metadata %String* %a, metadata !15, metadata !DIExpression()), !dbg !17 %"$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" @@ -233,7 +235,7 @@ entry: "$have_gas_120": ; preds = %"$out_of_gas_119", %"$have_gas_115" %"$consume_121" = sub i64 %"$gasrem_117", 1 store i64 %"$consume_121", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_122", i32 0, i32 0), i32 5 }, %String* %a, align 8, !dbg !11 + store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_122", i32 0, i32 0), i32 5 }, %String* %a, align 8, !dbg !14 %"$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" @@ -246,6 +248,7 @@ entry: %"$consume_127" = sub i64 %"$gasrem_123", 1 store i64 %"$consume_127", i64* @_gasrem, align 8 %b = alloca %String, align 8 + call void @llvm.dbg.declare(metadata %String* %b, metadata !18, metadata !DIExpression()), !dbg !19 %"$gasrem_128" = load i64, i64* @_gasrem, align 8 %"$gascmp_129" = icmp ugt i64 1, %"$gasrem_128" br i1 %"$gascmp_129", label %"$out_of_gas_130", label %"$have_gas_131" @@ -257,7 +260,7 @@ entry: "$have_gas_131": ; preds = %"$out_of_gas_130", %"$have_gas_126" %"$consume_132" = sub i64 %"$gasrem_128", 1 store i64 %"$consume_132", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_133", i32 0, i32 0), i32 5 }, %String* %b, align 8, !dbg !12 + store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_133", i32 0, i32 0), i32 5 }, %String* %b, align 8, !dbg !20 %"$gasrem_134" = load i64, i64* @_gasrem, align 8 %"$gascmp_135" = icmp ugt i64 1, %"$gasrem_134" br i1 %"$gascmp_135", label %"$out_of_gas_136", label %"$have_gas_137" @@ -270,6 +273,7 @@ entry: %"$consume_138" = sub i64 %"$gasrem_134", 1 store i64 %"$consume_138", i64* @_gasrem, align 8 %str = alloca %String, align 8 + call void @llvm.dbg.declare(metadata %String* %str, metadata !21, metadata !DIExpression()), !dbg !22 %"$_literal_cost_a_139" = alloca %String, align 8 %"$a_140" = load %String, %String* %a, align 8 store %String %"$a_140", %String* %"$_literal_cost_a_139", align 8 @@ -295,8 +299,8 @@ entry: %"$execptr_load_153" = load i8*, i8** @_execptr, align 8 %"$a_154" = load %String, %String* %a, align 8 %"$b_155" = load %String, %String* %b, align 8 - %"$concat_call_156" = call %String @_concat_String(i8* %"$execptr_load_153", %String %"$a_154", %String %"$b_155"), !dbg !13 - store %String %"$concat_call_156", %String* %str, align 8, !dbg !13 + %"$concat_call_156" = call %String @_concat_String(i8* %"$execptr_load_153", %String %"$a_154", %String %"$b_155"), !dbg !23 + store %String %"$concat_call_156", %String* %str, align 8, !dbg !23 %"$gasrem_157" = load i64, i64* @_gasrem, align 8 %"$gascmp_158" = icmp ugt i64 1, %"$gasrem_157" br i1 %"$gascmp_158", label %"$out_of_gas_159", label %"$have_gas_160" @@ -309,6 +313,7 @@ entry: %"$consume_161" = sub i64 %"$gasrem_157", 1 store i64 %"$consume_161", i64* @_gasrem, align 8 %x = alloca [2 x i8], align 1 + call void @llvm.dbg.declare(metadata [2 x i8]* %x, metadata !24, metadata !DIExpression()), !dbg !26 %"$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" @@ -320,7 +325,7 @@ entry: "$have_gas_165": ; preds = %"$out_of_gas_164", %"$have_gas_160" %"$consume_166" = sub i64 %"$gasrem_162", 1 store i64 %"$consume_166", i64* @_gasrem, align 8 - store [2 x i8] c"\11\FF", [2 x i8]* %x, align 1, !dbg !14 + store [2 x i8] c"\11\FF", [2 x i8]* %x, align 1, !dbg !27 %"$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" @@ -333,6 +338,7 @@ entry: %"$consume_171" = sub i64 %"$gasrem_167", 1 store i64 %"$consume_171", i64* @_gasrem, align 8 %y = alloca [2 x i8], align 1 + call void @llvm.dbg.declare(metadata [2 x i8]* %y, metadata !28, metadata !DIExpression()), !dbg !29 %"$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" @@ -344,7 +350,7 @@ entry: "$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 - store [2 x i8] c"\FF\11", [2 x i8]* %y, align 1, !dbg !15 + store [2 x i8] c"\FF\11", [2 x i8]* %y, align 1, !dbg !30 %"$gasrem_177" = load i64, i64* @_gasrem, align 8 %"$gascmp_178" = icmp ugt i64 1, %"$gasrem_177" br i1 %"$gascmp_178", label %"$out_of_gas_179", label %"$have_gas_180" @@ -357,6 +363,7 @@ entry: %"$consume_181" = sub i64 %"$gasrem_177", 1 store i64 %"$consume_181", i64* @_gasrem, align 8 %z = alloca [4 x i8], align 1 + call void @llvm.dbg.declare(metadata [4 x i8]* %z, metadata !31, metadata !DIExpression()), !dbg !33 %"$gasrem_182" = load i64, i64* @_gasrem, align 8 %"$gascmp_183" = icmp ugt i64 4, %"$gasrem_182" br i1 %"$gascmp_183", label %"$out_of_gas_184", label %"$have_gas_185" @@ -377,10 +384,10 @@ entry: %"$y_192" = load [2 x i8], [2 x i8]* %y, align 1 store [2 x i8] %"$y_192", [2 x i8]* %"$concat_y_191", align 1 %"$$concat_y_191_193" = bitcast [2 x i8]* %"$concat_y_191" to i8* - %"$concat_call_194" = call i8* @_concat_ByStrX(i8* %"$execptr_load_187", i32 2, i8* %"$$concat_x_188_190", i32 2, i8* %"$$concat_y_191_193"), !dbg !16 + %"$concat_call_194" = call i8* @_concat_ByStrX(i8* %"$execptr_load_187", i32 2, i8* %"$$concat_x_188_190", i32 2, i8* %"$$concat_y_191_193"), !dbg !34 %"$concat_195" = bitcast i8* %"$concat_call_194" to [4 x i8]* %"$concat_196" = load [4 x i8], [4 x i8]* %"$concat_195", align 1 - store [4 x i8] %"$concat_196", [4 x i8]* %z, align 1, !dbg !16 + store [4 x i8] %"$concat_196", [4 x i8]* %z, align 1, !dbg !34 %"$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" @@ -393,6 +400,7 @@ entry: %"$consume_201" = sub i64 %"$gasrem_197", 1 store i64 %"$consume_201", i64* @_gasrem, align 8 %w = alloca [18 x i8], align 1 + call void @llvm.dbg.declare(metadata [18 x i8]* %w, metadata !35, metadata !DIExpression()), !dbg !37 %"$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" @@ -404,7 +412,7 @@ entry: "$have_gas_205": ; preds = %"$out_of_gas_204", %"$have_gas_200" %"$consume_206" = sub i64 %"$gasrem_202", 1 store i64 %"$consume_206", i64* @_gasrem, align 8 - store [18 x i8] c"\00\11\00\11\00\11\00\11\00\11\00\11\00\11\00\11\00\11", [18 x i8]* %w, align 1, !dbg !17 + store [18 x i8] c"\00\11\00\11\00\11\00\11\00\11\00\11\00\11\00\11\00\11", [18 x i8]* %w, align 1, !dbg !38 %"$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" @@ -417,6 +425,7 @@ entry: %"$consume_211" = sub i64 %"$gasrem_207", 1 store i64 %"$consume_211", i64* @_gasrem, align 8 %bystrx = alloca [22 x i8], align 1 + call void @llvm.dbg.declare(metadata [22 x i8]* %bystrx, metadata !39, metadata !DIExpression()), !dbg !41 %"$gasrem_212" = load i64, i64* @_gasrem, align 8 %"$gascmp_213" = icmp ugt i64 22, %"$gasrem_212" br i1 %"$gascmp_213", label %"$out_of_gas_214", label %"$have_gas_215" @@ -437,10 +446,10 @@ entry: %"$z_222" = load [4 x i8], [4 x i8]* %z, align 1 store [4 x i8] %"$z_222", [4 x i8]* %"$concat_z_221", align 1 %"$$concat_z_221_223" = bitcast [4 x i8]* %"$concat_z_221" to i8* - %"$concat_call_224" = call i8* @_concat_ByStrX(i8* %"$execptr_load_217", i32 18, i8* %"$$concat_w_218_220", i32 4, i8* %"$$concat_z_221_223"), !dbg !18 + %"$concat_call_224" = call i8* @_concat_ByStrX(i8* %"$execptr_load_217", i32 18, i8* %"$$concat_w_218_220", i32 4, i8* %"$$concat_z_221_223"), !dbg !42 %"$concat_225" = bitcast i8* %"$concat_call_224" to [22 x i8]* %"$concat_226" = load [22 x i8], [22 x i8]* %"$concat_225", align 1 - store [22 x i8] %"$concat_226", [22 x i8]* %bystrx, align 1, !dbg !18 + store [22 x i8] %"$concat_226", [22 x i8]* %bystrx, align 1, !dbg !42 %"$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" @@ -453,6 +462,7 @@ entry: %"$consume_231" = sub i64 %"$gasrem_227", 1 store i64 %"$consume_231", i64* @_gasrem, align 8 %xbs = alloca %Bystr, align 8 + call void @llvm.dbg.declare(metadata %Bystr* %xbs, metadata !43, metadata !DIExpression()), !dbg !45 %"$gasrem_232" = load i64, i64* @_gasrem, align 8 %"$gascmp_233" = icmp ugt i64 2, %"$gasrem_232" br i1 %"$gascmp_233", label %"$out_of_gas_234", label %"$have_gas_235" @@ -469,8 +479,8 @@ entry: %"$x_239" = load [2 x i8], [2 x i8]* %x, align 1 store [2 x i8] %"$x_239", [2 x i8]* %"$to_bystr_x_238", align 1 %"$$to_bystr_x_238_240" = bitcast [2 x i8]* %"$to_bystr_x_238" to i8* - %"$to_bystr_call_241" = call %Bystr @_to_bystr(i8* %"$execptr_load_237", i32 2, i8* %"$$to_bystr_x_238_240"), !dbg !19 - store %Bystr %"$to_bystr_call_241", %Bystr* %xbs, align 8, !dbg !19 + %"$to_bystr_call_241" = call %Bystr @_to_bystr(i8* %"$execptr_load_237", i32 2, i8* %"$$to_bystr_x_238_240"), !dbg !46 + store %Bystr %"$to_bystr_call_241", %Bystr* %xbs, align 8, !dbg !46 %"$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" @@ -483,6 +493,7 @@ entry: %"$consume_246" = sub i64 %"$gasrem_242", 1 store i64 %"$consume_246", i64* @_gasrem, align 8 %ybs = alloca %Bystr, align 8 + call void @llvm.dbg.declare(metadata %Bystr* %ybs, metadata !47, metadata !DIExpression()), !dbg !48 %"$gasrem_247" = load i64, i64* @_gasrem, align 8 %"$gascmp_248" = icmp ugt i64 2, %"$gasrem_247" br i1 %"$gascmp_248", label %"$out_of_gas_249", label %"$have_gas_250" @@ -499,8 +510,8 @@ entry: %"$y_254" = load [2 x i8], [2 x i8]* %y, align 1 store [2 x i8] %"$y_254", [2 x i8]* %"$to_bystr_y_253", align 1 %"$$to_bystr_y_253_255" = bitcast [2 x i8]* %"$to_bystr_y_253" to i8* - %"$to_bystr_call_256" = call %Bystr @_to_bystr(i8* %"$execptr_load_252", i32 2, i8* %"$$to_bystr_y_253_255"), !dbg !20 - store %Bystr %"$to_bystr_call_256", %Bystr* %ybs, align 8, !dbg !20 + %"$to_bystr_call_256" = call %Bystr @_to_bystr(i8* %"$execptr_load_252", i32 2, i8* %"$$to_bystr_y_253_255"), !dbg !49 + store %Bystr %"$to_bystr_call_256", %Bystr* %ybs, align 8, !dbg !49 %"$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" @@ -513,6 +524,7 @@ entry: %"$consume_261" = sub i64 %"$gasrem_257", 1 store i64 %"$consume_261", i64* @_gasrem, align 8 %xybs = alloca %Bystr, align 8 + call void @llvm.dbg.declare(metadata %Bystr* %xybs, metadata !50, metadata !DIExpression()), !dbg !51 %"$_literal_cost_xbs_262" = alloca %Bystr, align 8 %"$xbs_263" = load %Bystr, %Bystr* %xbs, align 8 store %Bystr %"$xbs_263", %Bystr* %"$_literal_cost_xbs_262", align 8 @@ -538,8 +550,8 @@ entry: %"$execptr_load_276" = load i8*, i8** @_execptr, align 8 %"$xbs_277" = load %Bystr, %Bystr* %xbs, align 8 %"$ybs_278" = load %Bystr, %Bystr* %ybs, align 8 - %"$concat_call_279" = call %Bystr @_concat_ByStr(i8* %"$execptr_load_276", %Bystr %"$xbs_277", %Bystr %"$ybs_278"), !dbg !21 - store %Bystr %"$concat_call_279", %Bystr* %xybs, align 8, !dbg !21 + %"$concat_call_279" = call %Bystr @_concat_ByStr(i8* %"$execptr_load_276", %Bystr %"$xbs_277", %Bystr %"$ybs_278"), !dbg !52 + store %Bystr %"$concat_call_279", %Bystr* %xybs, align 8, !dbg !52 %"$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" @@ -552,6 +564,7 @@ entry: %"$consume_284" = sub i64 %"$gasrem_280", 1 store i64 %"$consume_284", i64* @_gasrem, align 8 %zbs = alloca %Bystr, align 8 + call void @llvm.dbg.declare(metadata %Bystr* %zbs, metadata !53, metadata !DIExpression()), !dbg !54 %"$gasrem_285" = load i64, i64* @_gasrem, align 8 %"$gascmp_286" = icmp ugt i64 4, %"$gasrem_285" br i1 %"$gascmp_286", label %"$out_of_gas_287", label %"$have_gas_288" @@ -568,8 +581,8 @@ entry: %"$z_292" = load [4 x i8], [4 x i8]* %z, align 1 store [4 x i8] %"$z_292", [4 x i8]* %"$to_bystr_z_291", align 1 %"$$to_bystr_z_291_293" = bitcast [4 x i8]* %"$to_bystr_z_291" to i8* - %"$to_bystr_call_294" = call %Bystr @_to_bystr(i8* %"$execptr_load_290", i32 4, i8* %"$$to_bystr_z_291_293"), !dbg !22 - store %Bystr %"$to_bystr_call_294", %Bystr* %zbs, align 8, !dbg !22 + %"$to_bystr_call_294" = call %Bystr @_to_bystr(i8* %"$execptr_load_290", i32 4, i8* %"$$to_bystr_z_291_293"), !dbg !55 + store %Bystr %"$to_bystr_call_294", %Bystr* %zbs, align 8, !dbg !55 %"$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" @@ -582,6 +595,7 @@ entry: %"$consume_299" = sub i64 %"$gasrem_295", 1 store i64 %"$consume_299", i64* @_gasrem, align 8 %res1 = alloca %TName_Bool*, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %res1, metadata !56, metadata !DIExpression()), !dbg !59 %"$_literal_cost_xybs_300" = alloca %Bystr, align 8 %"$xybs_301" = load %Bystr, %Bystr* %xybs, align 8 store %Bystr %"$xybs_301", %Bystr* %"$_literal_cost_xybs_300", align 8 @@ -601,8 +615,8 @@ entry: %"$execptr_load_309" = load i8*, i8** @_execptr, align 8 %"$xybs_310" = load %Bystr, %Bystr* %xybs, align 8 %"$zbs_311" = load %Bystr, %Bystr* %zbs, align 8 - %"$eq_call_312" = call %TName_Bool* @_eq_ByStr(i8* %"$execptr_load_309", %Bystr %"$xybs_310", %Bystr %"$zbs_311"), !dbg !23 - store %TName_Bool* %"$eq_call_312", %TName_Bool** %res1, align 8, !dbg !23 + %"$eq_call_312" = call %TName_Bool* @_eq_ByStr(i8* %"$execptr_load_309", %Bystr %"$xybs_310", %Bystr %"$zbs_311"), !dbg !60 + store %TName_Bool* %"$eq_call_312", %TName_Bool** %res1, align 8, !dbg !60 %"$gasrem_314" = load i64, i64* @_gasrem, align 8 %"$gascmp_315" = icmp ugt i64 1, %"$gasrem_314" br i1 %"$gascmp_315", label %"$out_of_gas_316", label %"$have_gas_317" @@ -615,6 +629,7 @@ entry: %"$consume_318" = sub i64 %"$gasrem_314", 1 store i64 %"$consume_318", i64* @_gasrem, align 8 %res2 = alloca %TName_Pair_String_ByStr22*, align 8 + call void @llvm.dbg.declare(metadata %TName_Pair_String_ByStr22** %res2, metadata !61, metadata !DIExpression()), !dbg !64 %"$gasrem_319" = load i64, i64* @_gasrem, align 8 %"$gascmp_320" = icmp ugt i64 1, %"$gasrem_319" br i1 %"$gascmp_320", label %"$out_of_gas_321", label %"$have_gas_322" @@ -638,7 +653,7 @@ entry: %"$adtgep_329" = getelementptr inbounds %CName_Pair_String_ByStr22, %CName_Pair_String_ByStr22* %"$adtval_326", i32 0, i32 2 store [22 x i8] %"$bystrx_325", [22 x i8]* %"$adtgep_329", align 1 %"$adtptr_330" = bitcast %CName_Pair_String_ByStr22* %"$adtval_326" to %TName_Pair_String_ByStr22* - store %TName_Pair_String_ByStr22* %"$adtptr_330", %TName_Pair_String_ByStr22** %res2, align 8, !dbg !24 + store %TName_Pair_String_ByStr22* %"$adtptr_330", %TName_Pair_String_ByStr22** %res2, align 8, !dbg !65 %"$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" @@ -651,6 +666,7 @@ entry: %"$consume_335" = sub i64 %"$gasrem_331", 1 store i64 %"$consume_335", i64* @_gasrem, align 8 %res3 = alloca %"TName_Pair_Bool_Pair_(String)_(ByStr22)"*, align 8 + call void @llvm.dbg.declare(metadata %"TName_Pair_Bool_Pair_(String)_(ByStr22)"** %res3, metadata !66, metadata !DIExpression()), !dbg !67 %"$gasrem_336" = load i64, i64* @_gasrem, align 8 %"$gascmp_337" = icmp ugt i64 1, %"$gasrem_336" br i1 %"$gascmp_337", label %"$out_of_gas_338", label %"$have_gas_339" @@ -674,7 +690,7 @@ entry: %"$adtgep_346" = getelementptr inbounds %"CName_Pair_Bool_Pair_(String)_(ByStr22)", %"CName_Pair_Bool_Pair_(String)_(ByStr22)"* %"$adtval_343", i32 0, i32 2 store %TName_Pair_String_ByStr22* %"$res2_342", %TName_Pair_String_ByStr22** %"$adtgep_346", align 8 %"$adtptr_347" = bitcast %"CName_Pair_Bool_Pair_(String)_(ByStr22)"* %"$adtval_343" to %"TName_Pair_Bool_Pair_(String)_(ByStr22)"* - store %"TName_Pair_Bool_Pair_(String)_(ByStr22)"* %"$adtptr_347", %"TName_Pair_Bool_Pair_(String)_(ByStr22)"** %res3, align 8, !dbg !25 + store %"TName_Pair_Bool_Pair_(String)_(ByStr22)"* %"$adtptr_347", %"TName_Pair_Bool_Pair_(String)_(ByStr22)"** %res3, align 8, !dbg !68 %"$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" @@ -687,11 +703,14 @@ entry: %"$consume_352" = sub i64 %"$gasrem_348", 1 store i64 %"$consume_352", i64* @_gasrem, align 8 %"$res3_353" = load %"TName_Pair_Bool_Pair_(String)_(ByStr22)"*, %"TName_Pair_Bool_Pair_(String)_(ByStr22)"** %res3, align 8 - store %"TName_Pair_Bool_Pair_(String)_(ByStr22)"* %"$res3_353", %"TName_Pair_Bool_Pair_(String)_(ByStr22)"** %"$expr_6", align 8, !dbg !26 + store %"TName_Pair_Bool_Pair_(String)_(ByStr22)"* %"$res3_353", %"TName_Pair_Bool_Pair_(String)_(ByStr22)"** %"$expr_6", align 8, !dbg !69 %"$$expr_6_354" = load %"TName_Pair_Bool_Pair_(String)_(ByStr22)"*, %"TName_Pair_Bool_Pair_(String)_(ByStr22)"** %"$expr_6", align 8 ret %"TName_Pair_Bool_Pair_(String)_(ByStr22)"* %"$$expr_6_354" } +; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn +declare void @llvm.dbg.declare(metadata, metadata, metadata) #0 + declare i64 @_literal_cost(%_TyDescrTy_Typ*, i8*) declare %String @_concat_String(i8*, %String, %String) @@ -717,33 +736,78 @@ entry: ret void } +attributes #0 = { nocallback nofree nosync nounwind readnone speculatable willreturn } + !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) +!1 = distinct !DICompileUnit(language: DW_LANG_C89, file: !2, producer: "Scilla Compiler", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false) !2 = !DIFile(filename: "builtin_concat.scilexp", directory: "codegen/expr") -!3 = !{} -!4 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !5, file: !5, type: !6, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!5 = !DIFile(filename: ".", directory: ".") -!6 = !DISubroutineType(types: !7) -!7 = !{!8} -!8 = !DIBasicType(tag: DW_TAG_unspecified_type, name: "void") -!9 = !DILocation(line: 0, scope: !4) -!10 = distinct !DISubprogram(name: "_scilla_expr_fun", linkageName: "_scilla_expr_fun", scope: !2, file: !2, line: 1, type: !6, scopeLine: 1, spFlags: DISPFlagDefinition, unit: !1, retainedNodes: !3) -!11 = !DILocation(line: 1, column: 15, scope: !10) -!12 = !DILocation(line: 2, column: 15, scope: !10) -!13 = !DILocation(line: 3, column: 11, scope: !10) -!14 = !DILocation(line: 5, column: 9, scope: !10) -!15 = !DILocation(line: 6, column: 9, scope: !10) -!16 = !DILocation(line: 7, column: 9, scope: !10) -!17 = !DILocation(line: 8, column: 9, scope: !10) -!18 = !DILocation(line: 9, column: 14, scope: !10) -!19 = !DILocation(line: 11, column: 11, scope: !10) -!20 = !DILocation(line: 12, column: 11, scope: !10) -!21 = !DILocation(line: 13, column: 12, scope: !10) -!22 = !DILocation(line: 14, column: 11, scope: !10) -!23 = !DILocation(line: 15, column: 12, scope: !10) -!24 = !DILocation(line: 17, column: 12, scope: !10) -!25 = !DILocation(line: 19, column: 12, scope: !10) -!26 = !DILocation(line: 20, column: 1, scope: !10) +!3 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !4, file: !4, type: !5, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!4 = !DIFile(filename: ".", directory: ".") +!5 = !DISubroutineType(types: !6) +!6 = !{!7} +!7 = !DIBasicType(tag: DW_TAG_unspecified_type, name: "void") +!8 = !{} +!9 = !DILocation(line: 0, scope: !3) +!10 = distinct !DISubprogram(name: "_scilla_expr_fun", linkageName: "_scilla_expr_fun", scope: !2, file: !2, line: 1, type: !5, scopeLine: 1, spFlags: DISPFlagDefinition, unit: !1, retainedNodes: !8) +!11 = !DILocalVariable(name: "$expr_6", scope: !10, file: !2, line: 1, type: !12) +!12 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "Pair (Bool) (Pair (String) (ByStr22))", baseType: !13, size: 8, align: 8, dwarfAddressSpace: 0) +!13 = !DIBasicType(name: "Pair (Bool) (Pair (String) (ByStr22))", size: 8) +!14 = !DILocation(line: 1, column: 15, scope: !10) +!15 = !DILocalVariable(name: "a", scope: !10, file: !2, line: 1, type: !16) +!16 = !DIBasicType(name: "String", size: 16) +!17 = !DILocation(line: 1, column: 5, scope: !10) +!18 = !DILocalVariable(name: "b", scope: !10, file: !2, line: 2, type: !16) +!19 = !DILocation(line: 2, column: 5, scope: !10) +!20 = !DILocation(line: 2, column: 15, scope: !10) +!21 = !DILocalVariable(name: "str", scope: !10, file: !2, line: 3, type: !16) +!22 = !DILocation(line: 3, column: 5, scope: !10) +!23 = !DILocation(line: 3, column: 11, scope: !10) +!24 = !DILocalVariable(name: "x", scope: !10, file: !2, line: 5, type: !25) +!25 = !DIBasicType(name: "ByStr2", size: 2) +!26 = !DILocation(line: 5, column: 5, scope: !10) +!27 = !DILocation(line: 5, column: 9, scope: !10) +!28 = !DILocalVariable(name: "y", scope: !10, file: !2, line: 6, type: !25) +!29 = !DILocation(line: 6, column: 5, scope: !10) +!30 = !DILocation(line: 6, column: 9, scope: !10) +!31 = !DILocalVariable(name: "z", scope: !10, file: !2, line: 7, type: !32) +!32 = !DIBasicType(name: "ByStr4", size: 4) +!33 = !DILocation(line: 7, column: 5, scope: !10) +!34 = !DILocation(line: 7, column: 9, scope: !10) +!35 = !DILocalVariable(name: "w", scope: !10, file: !2, line: 8, type: !36) +!36 = !DIBasicType(name: "ByStr18", size: 18) +!37 = !DILocation(line: 8, column: 5, scope: !10) +!38 = !DILocation(line: 8, column: 9, scope: !10) +!39 = !DILocalVariable(name: "bystrx", scope: !10, file: !2, line: 9, type: !40) +!40 = !DIBasicType(name: "ByStr22", size: 22) +!41 = !DILocation(line: 9, column: 5, scope: !10) +!42 = !DILocation(line: 9, column: 14, scope: !10) +!43 = !DILocalVariable(name: "xbs", scope: !10, file: !2, line: 11, type: !44) +!44 = !DIBasicType(name: "ByStr", size: 16) +!45 = !DILocation(line: 11, column: 5, scope: !10) +!46 = !DILocation(line: 11, column: 11, scope: !10) +!47 = !DILocalVariable(name: "ybs", scope: !10, file: !2, line: 12, type: !44) +!48 = !DILocation(line: 12, column: 5, scope: !10) +!49 = !DILocation(line: 12, column: 11, scope: !10) +!50 = !DILocalVariable(name: "xybs", scope: !10, file: !2, line: 13, type: !44) +!51 = !DILocation(line: 13, column: 5, scope: !10) +!52 = !DILocation(line: 13, column: 12, scope: !10) +!53 = !DILocalVariable(name: "zbs", scope: !10, file: !2, line: 14, type: !44) +!54 = !DILocation(line: 14, column: 5, scope: !10) +!55 = !DILocation(line: 14, column: 11, scope: !10) +!56 = !DILocalVariable(name: "res1", scope: !10, file: !2, line: 15, type: !57) +!57 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "Bool", baseType: !58, size: 8, align: 8, dwarfAddressSpace: 0) +!58 = !DIBasicType(name: "Bool", size: 8) +!59 = !DILocation(line: 15, column: 5, scope: !10) +!60 = !DILocation(line: 15, column: 12, scope: !10) +!61 = !DILocalVariable(name: "res2", scope: !10, file: !2, line: 17, type: !62) +!62 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "Pair (String) (ByStr22)", baseType: !63, size: 8, align: 8, dwarfAddressSpace: 0) +!63 = !DIBasicType(name: "Pair (String) (ByStr22)", size: 8) +!64 = !DILocation(line: 17, column: 5, scope: !10) +!65 = !DILocation(line: 17, column: 12, scope: !10) +!66 = !DILocalVariable(name: "res3", scope: !10, file: !2, line: 19, type: !12) +!67 = !DILocation(line: 19, column: 5, scope: !10) +!68 = !DILocation(line: 19, column: 12, scope: !10) +!69 = !DILocation(line: 20, column: 1, scope: !10) diff --git a/testsuite/expr/builtin_concat.ll b/testsuite/expr/builtin_concat.ll index d4af50be..4a3b8dfb 100644 --- a/testsuite/expr/builtin_concat.ll +++ b/testsuite/expr/builtin_concat.ll @@ -21,7 +21,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-pc-linux-gnu" +target triple = "x86_64-unknown-linux-gnu" %"$TyDescrTy_PrimTyp_7" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/testsuite/expr/builtin_div_rem.dbg.ll b/testsuite/expr/builtin_div_rem.dbg.ll index 23651b8c..6a0fabe2 100644 --- a/testsuite/expr/builtin_div_rem.dbg.ll +++ b/testsuite/expr/builtin_div_rem.dbg.ll @@ -95,7 +95,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-pc-linux-gnu" +target triple = "x86_64-unknown-linux-gnu" %"$TyDescrTy_PrimTyp_86" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } @@ -107,9 +107,9 @@ target triple = "x86_64-pc-linux-gnu" %TName_Bool = type { i8, %CName_True*, %CName_False* } %CName_True = type <{ i8 }> %CName_False = type <{ i8 }> -%"$ParamDescr_1085" = type { %ParamDescrString, %_TyDescrTy_Typ* } +%"$ParamDescr_1087" = type { %ParamDescrString, %_TyDescrTy_Typ* } %ParamDescrString = type { i8*, i32 } -%"$TransDescr_1086" = type { %ParamDescrString, i32, %"$ParamDescr_1085"* } +%"$TransDescr_1088" = type { %ParamDescrString, i32, %"$ParamDescr_1087"* } %"$$fundef_83_env_136" = type { %TName_Bool* } %"$$fundef_81_env_137" = type {} %Uint32 = type { i32 } @@ -170,85 +170,92 @@ target triple = "x86_64-pc-linux-gnu" @"$_gas_charge_accPairUtils_4" = global %Int32 zeroinitializer @_tydescr_table = constant [16 x %_TyDescrTy_Typ*] [%_TyDescrTy_Typ* @"$TyDescr_Event_110", %_TyDescrTy_Typ* @"$TyDescr_Int64_92", %_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_120", %_TyDescrTy_Typ* @"$TyDescr_Uint256_102", %_TyDescrTy_Typ* @"$TyDescr_Uint32_90", %_TyDescrTy_Typ* @"$TyDescr_Uint64_94", %_TyDescrTy_Typ* @"$TyDescr_Bnum_106", %_TyDescrTy_Typ* @"$TyDescr_Uint128_98", %_TyDescrTy_Typ* @"$TyDescr_Exception_112", %_TyDescrTy_Typ* @"$TyDescr_String_104", %_TyDescrTy_Typ* @"$TyDescr_Int256_100", %_TyDescrTy_Typ* @"$TyDescr_Int128_96", %_TyDescrTy_Typ* @"$TyDescr_Bystr_116", %_TyDescrTy_Typ* @"$TyDescr_ReplicateContr_114", %_TyDescrTy_Typ* @"$TyDescr_Message_108", %_TyDescrTy_Typ* @"$TyDescr_Int32_88"] @_tydescr_table_length = constant i32 16 -@_contract_parameters = constant [0 x %"$ParamDescr_1085"] zeroinitializer +@_contract_parameters = constant [0 x %"$ParamDescr_1087"] zeroinitializer @_contract_parameters_length = constant i32 0 -@_transition_parameters = constant [0 x %"$TransDescr_1086"] zeroinitializer +@_transition_parameters = constant [0 x %"$TransDescr_1088"] zeroinitializer @_transition_parameters_length = constant i32 0 -define internal %TName_Bool* @"$fundef_83"(%"$$fundef_83_env_136"* %0, %TName_Bool* %1) !dbg !4 { +define internal %TName_Bool* @"$fundef_83"(%"$$fundef_83_env_136"* %0, %TName_Bool* %1) !dbg !3 { entry: - %"$$fundef_83_env_b_149" = getelementptr inbounds %"$$fundef_83_env_136", %"$$fundef_83_env_136"* %0, i32 0, i32 0 - %"$b_envload_150" = load %TName_Bool*, %TName_Bool** %"$$fundef_83_env_b_149", align 8 + %"$c_180" = alloca %TName_Bool*, align 8 + store %TName_Bool* %1, %TName_Bool** %"$c_180", align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$c_180", metadata !9, metadata !DIExpression()), !dbg !12 + %"$$fundef_83_env_b_150" = getelementptr inbounds %"$$fundef_83_env_136", %"$$fundef_83_env_136"* %0, i32 0, i32 0 + %"$b_envload_151" = load %TName_Bool*, %TName_Bool** %"$$fundef_83_env_b_150", align 8 %b = alloca %TName_Bool*, align 8 - store %TName_Bool* %"$b_envload_150", %TName_Bool** %b, align 8 + store %TName_Bool* %"$b_envload_151", %TName_Bool** %b, align 8 %"$retval_84" = alloca %TName_Bool*, align 8 - %"$gasrem_151" = load i64, i64* @_gasrem, align 8 - %"$gascmp_152" = icmp ugt i64 2, %"$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", 2 - store i64 %"$consume_155", i64* @_gasrem, align 8 - %"$b_157" = load %TName_Bool*, %TName_Bool** %b, align 8 - %"$b_tag_158" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$b_157", i32 0, i32 0 - %"$b_tag_159" = load i8, i8* %"$b_tag_158", align 1 - switch i8 %"$b_tag_159", label %"$empty_default_160" [ - i8 1, label %"$False_161" - i8 0, label %"$True_171" - ], !dbg !9 - -"$False_161": ; preds = %"$have_gas_154" - %"$b_162" = bitcast %TName_Bool* %"$b_157" 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 - %"$adtval_168_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_168_salloc" = call i8* @_salloc(i8* %"$adtval_168_load", i64 1) - %"$adtval_168" = bitcast i8* %"$adtval_168_salloc" to %CName_False* - %"$adtgep_169" = getelementptr inbounds %CName_False, %CName_False* %"$adtval_168", i32 0, i32 0 - store i8 1, i8* %"$adtgep_169", align 1 - %"$adtptr_170" = bitcast %CName_False* %"$adtval_168" to %TName_Bool* - store %TName_Bool* %"$adtptr_170", %TName_Bool** %"$retval_84", align 8, !dbg !10 - br label %"$matchsucc_156" - -"$True_171": ; preds = %"$have_gas_154" - %"$b_172" = bitcast %TName_Bool* %"$b_157" to %CName_True* - %"$gasrem_173" = load i64, i64* @_gasrem, align 8 - %"$gascmp_174" = icmp ugt i64 1, %"$gasrem_173" - br i1 %"$gascmp_174", label %"$out_of_gas_175", label %"$have_gas_176" - -"$out_of_gas_175": ; preds = %"$True_171" - call void @_out_of_gas() - br label %"$have_gas_176" - -"$have_gas_176": ; preds = %"$out_of_gas_175", %"$True_171" - %"$consume_177" = sub i64 %"$gasrem_173", 1 - store i64 %"$consume_177", i64* @_gasrem, align 8 - store %TName_Bool* %1, %TName_Bool** %"$retval_84", align 8, !dbg !13 - br label %"$matchsucc_156" - -"$empty_default_160": ; preds = %"$have_gas_154" - br label %"$matchsucc_156" - -"$matchsucc_156": ; preds = %"$have_gas_176", %"$have_gas_166", %"$empty_default_160" - %"$$retval_84_178" = load %TName_Bool*, %TName_Bool** %"$retval_84", align 8 - ret %TName_Bool* %"$$retval_84_178" + call void @llvm.dbg.declare(metadata %TName_Bool** %"$retval_84", metadata !13, metadata !DIExpression()), !dbg !14 + %"$gasrem_152" = load i64, i64* @_gasrem, align 8 + %"$gascmp_153" = icmp ugt i64 2, %"$gasrem_152" + br i1 %"$gascmp_153", label %"$out_of_gas_154", label %"$have_gas_155" + +"$out_of_gas_154": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_155" + +"$have_gas_155": ; preds = %"$out_of_gas_154", %entry + %"$consume_156" = sub i64 %"$gasrem_152", 2 + store i64 %"$consume_156", i64* @_gasrem, align 8 + %"$b_158" = load %TName_Bool*, %TName_Bool** %b, align 8 + %"$b_tag_159" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$b_158", i32 0, i32 0 + %"$b_tag_160" = load i8, i8* %"$b_tag_159", align 1 + switch i8 %"$b_tag_160", label %"$empty_default_161" [ + i8 1, label %"$False_162" + i8 0, label %"$True_172" + ], !dbg !14 + +"$False_162": ; preds = %"$have_gas_155" + %"$b_163" = bitcast %TName_Bool* %"$b_158" to %CName_False* + %"$gasrem_164" = load i64, i64* @_gasrem, align 8 + %"$gascmp_165" = icmp ugt i64 1, %"$gasrem_164" + br i1 %"$gascmp_165", label %"$out_of_gas_166", label %"$have_gas_167" + +"$out_of_gas_166": ; preds = %"$False_162" + call void @_out_of_gas() + br label %"$have_gas_167" + +"$have_gas_167": ; preds = %"$out_of_gas_166", %"$False_162" + %"$consume_168" = sub i64 %"$gasrem_164", 1 + store i64 %"$consume_168", i64* @_gasrem, align 8 + %"$adtval_169_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_169_salloc" = call i8* @_salloc(i8* %"$adtval_169_load", i64 1) + %"$adtval_169" = bitcast i8* %"$adtval_169_salloc" to %CName_False* + %"$adtgep_170" = getelementptr inbounds %CName_False, %CName_False* %"$adtval_169", i32 0, i32 0 + store i8 1, i8* %"$adtgep_170", align 1 + %"$adtptr_171" = bitcast %CName_False* %"$adtval_169" to %TName_Bool* + store %TName_Bool* %"$adtptr_171", %TName_Bool** %"$retval_84", align 8, !dbg !15 + br label %"$matchsucc_157" + +"$True_172": ; preds = %"$have_gas_155" + %"$b_173" = bitcast %TName_Bool* %"$b_158" to %CName_True* + %"$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 = %"$True_172" + call void @_out_of_gas() + br label %"$have_gas_177" + +"$have_gas_177": ; preds = %"$out_of_gas_176", %"$True_172" + %"$consume_178" = sub i64 %"$gasrem_174", 1 + store i64 %"$consume_178", i64* @_gasrem, align 8 + store %TName_Bool* %1, %TName_Bool** %"$retval_84", align 8, !dbg !18 + br label %"$matchsucc_157" + +"$empty_default_161": ; preds = %"$have_gas_155" + br label %"$matchsucc_157" + +"$matchsucc_157": ; preds = %"$have_gas_177", %"$have_gas_167", %"$empty_default_161" + %"$$retval_84_179" = load %TName_Bool*, %TName_Bool** %"$retval_84", align 8 + ret %TName_Bool* %"$$retval_84_179" } -define internal { %TName_Bool* (i8*, %TName_Bool*)*, i8* } @"$fundef_81"(%"$$fundef_81_env_137"* %0, %TName_Bool* %1) !dbg !15 { +define internal { %TName_Bool* (i8*, %TName_Bool*)*, i8* } @"$fundef_81"(%"$$fundef_81_env_137"* %0, %TName_Bool* %1) !dbg !20 { entry: + %"$b_149" = alloca %TName_Bool*, align 8 + store %TName_Bool* %1, %TName_Bool** %"$b_149", align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$b_149", metadata !21, metadata !DIExpression()), !dbg !22 %"$retval_82" = alloca { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, align 8 %"$gasrem_138" = load i64, i64* @_gasrem, align 8 %"$gascmp_139" = icmp ugt i64 1, %"$gasrem_138" @@ -268,7 +275,7 @@ entry: %"$$fundef_83_cloval_146" = insertvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } { %TName_Bool* (i8*, %TName_Bool*)* bitcast (%TName_Bool* (%"$$fundef_83_env_136"*, %TName_Bool*)* @"$fundef_83" to %TName_Bool* (i8*, %TName_Bool*)*), i8* undef }, i8* %"$$fundef_83_env_voidp_145", 1 %"$$fundef_83_env_b_147" = getelementptr inbounds %"$$fundef_83_env_136", %"$$fundef_83_env_136"* %"$$fundef_83_envp_143", i32 0, i32 0 store %TName_Bool* %1, %TName_Bool** %"$$fundef_83_env_b_147", align 8 - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$fundef_83_cloval_146", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$retval_82", align 8, !dbg !16 + store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$fundef_83_cloval_146", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$retval_82", align 8, !dbg !23 %"$$retval_82_148" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$retval_82", align 8 ret { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$retval_82_148" } @@ -277,1875 +284,1950 @@ declare void @_out_of_gas() declare i8* @_salloc(i8*, i64) -define void @_init_libs() !dbg !17 { +; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn +declare void @llvm.dbg.declare(metadata, metadata, metadata) #0 + +define void @_init_libs() !dbg !24 { entry: - %"$gasrem_179" = load i64, i64* @_gasrem, align 8 - %"$gascmp_180" = icmp ugt i64 5, %"$gasrem_179" - br i1 %"$gascmp_180", label %"$out_of_gas_181", label %"$have_gas_182" + %"$gasrem_181" = load i64, i64* @_gasrem, align 8 + %"$gascmp_182" = icmp ugt i64 5, %"$gasrem_181" + br i1 %"$gascmp_182", label %"$out_of_gas_183", label %"$have_gas_184" -"$out_of_gas_181": ; preds = %entry +"$out_of_gas_183": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_182" + br label %"$have_gas_184" -"$have_gas_182": ; preds = %"$out_of_gas_181", %entry - %"$consume_183" = sub i64 %"$gasrem_179", 5 - store i64 %"$consume_183", i64* @_gasrem, align 8 - store %Int32 { i32 5 }, %Int32* @"$_gas_charge_accrec_lib_5", align 4, !dbg !19 - %"$gasrem_184" = load i64, i64* @_gasrem, align 8 - %"$gascmp_185" = icmp ugt i64 7, %"$gasrem_184" - br i1 %"$gascmp_185", label %"$out_of_gas_186", label %"$have_gas_187" +"$have_gas_184": ; preds = %"$out_of_gas_183", %entry + %"$consume_185" = sub i64 %"$gasrem_181", 5 + store i64 %"$consume_185", i64* @_gasrem, align 8 + store %Int32 { i32 5 }, %Int32* @"$_gas_charge_accrec_lib_5", align 4, !dbg !26 + %"$gasrem_186" = load i64, i64* @_gasrem, align 8 + %"$gascmp_187" = icmp ugt i64 7, %"$gasrem_186" + br i1 %"$gascmp_187", label %"$out_of_gas_188", label %"$have_gas_189" -"$out_of_gas_186": ; preds = %"$have_gas_182" +"$out_of_gas_188": ; preds = %"$have_gas_184" call void @_out_of_gas() - br label %"$have_gas_187" + br label %"$have_gas_189" -"$have_gas_187": ; preds = %"$out_of_gas_186", %"$have_gas_182" - %"$consume_188" = sub i64 %"$gasrem_184", 7 - store i64 %"$consume_188", i64* @_gasrem, align 8 - store %Int32 { i32 7 }, %Int32* @"$_gas_charge_accBoolUtils_0", align 4, !dbg !19 - %"$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" +"$have_gas_189": ; preds = %"$out_of_gas_188", %"$have_gas_184" + %"$consume_190" = sub i64 %"$gasrem_186", 7 + store i64 %"$consume_190", i64* @_gasrem, align 8 + store %Int32 { i32 7 }, %Int32* @"$_gas_charge_accBoolUtils_0", align 4, !dbg !26 + %"$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_191": ; preds = %"$have_gas_187" +"$out_of_gas_193": ; preds = %"$have_gas_189" call void @_out_of_gas() - br label %"$have_gas_192" + br label %"$have_gas_194" -"$have_gas_192": ; preds = %"$out_of_gas_191", %"$have_gas_187" - %"$consume_193" = sub i64 %"$gasrem_189", 1 - store i64 %"$consume_193", 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_81_env_137"*, %TName_Bool*)* @"$fundef_81" 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 !20 - %"$gasrem_197" = load i64, i64* @_gasrem, align 8 - %"$gascmp_198" = icmp ugt i64 196, %"$gasrem_197" - br i1 %"$gascmp_198", label %"$out_of_gas_199", label %"$have_gas_200" +"$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 + 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_81_env_137"*, %TName_Bool*)* @"$fundef_81" 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 !27 + %"$gasrem_199" = load i64, i64* @_gasrem, align 8 + %"$gascmp_200" = icmp ugt i64 196, %"$gasrem_199" + br i1 %"$gascmp_200", label %"$out_of_gas_201", label %"$have_gas_202" -"$out_of_gas_199": ; preds = %"$have_gas_192" +"$out_of_gas_201": ; preds = %"$have_gas_194" call void @_out_of_gas() - br label %"$have_gas_200" + br label %"$have_gas_202" -"$have_gas_200": ; preds = %"$out_of_gas_199", %"$have_gas_192" - %"$consume_201" = sub i64 %"$gasrem_197", 196 - store i64 %"$consume_201", i64* @_gasrem, align 8 - store %Int32 { i32 196 }, %Int32* @"$_gas_charge_accIntUtils_1", align 4, !dbg !19 - %"$gasrem_202" = load i64, i64* @_gasrem, align 8 - %"$gascmp_203" = icmp ugt i64 20, %"$gasrem_202" - br i1 %"$gascmp_203", label %"$out_of_gas_204", label %"$have_gas_205" +"$have_gas_202": ; preds = %"$out_of_gas_201", %"$have_gas_194" + %"$consume_203" = sub i64 %"$gasrem_199", 196 + store i64 %"$consume_203", i64* @_gasrem, align 8 + store %Int32 { i32 196 }, %Int32* @"$_gas_charge_accIntUtils_1", align 4, !dbg !26 + %"$gasrem_204" = load i64, i64* @_gasrem, align 8 + %"$gascmp_205" = icmp ugt i64 20, %"$gasrem_204" + br i1 %"$gascmp_205", label %"$out_of_gas_206", label %"$have_gas_207" -"$out_of_gas_204": ; preds = %"$have_gas_200" +"$out_of_gas_206": ; preds = %"$have_gas_202" call void @_out_of_gas() - br label %"$have_gas_205" + br label %"$have_gas_207" -"$have_gas_205": ; preds = %"$out_of_gas_204", %"$have_gas_200" - %"$consume_206" = sub i64 %"$gasrem_202", 20 - store i64 %"$consume_206", i64* @_gasrem, align 8 - store %Int32 { i32 20 }, %Int32* @"$_gas_charge_accListUtils_2", align 4, !dbg !19 - %"$gasrem_207" = load i64, i64* @_gasrem, align 8 - %"$gascmp_208" = icmp ugt i64 12, %"$gasrem_207" - br i1 %"$gascmp_208", label %"$out_of_gas_209", label %"$have_gas_210" +"$have_gas_207": ; preds = %"$out_of_gas_206", %"$have_gas_202" + %"$consume_208" = sub i64 %"$gasrem_204", 20 + store i64 %"$consume_208", i64* @_gasrem, align 8 + store %Int32 { i32 20 }, %Int32* @"$_gas_charge_accListUtils_2", align 4, !dbg !26 + %"$gasrem_209" = load i64, i64* @_gasrem, align 8 + %"$gascmp_210" = icmp ugt i64 12, %"$gasrem_209" + br i1 %"$gascmp_210", label %"$out_of_gas_211", label %"$have_gas_212" -"$out_of_gas_209": ; preds = %"$have_gas_205" +"$out_of_gas_211": ; preds = %"$have_gas_207" call void @_out_of_gas() - br label %"$have_gas_210" + br label %"$have_gas_212" -"$have_gas_210": ; preds = %"$out_of_gas_209", %"$have_gas_205" - %"$consume_211" = sub i64 %"$gasrem_207", 12 - store i64 %"$consume_211", i64* @_gasrem, align 8 - store %Int32 { i32 12 }, %Int32* @"$_gas_charge_accNatUtils_3", align 4, !dbg !19 - %"$gasrem_212" = load i64, i64* @_gasrem, align 8 - %"$gascmp_213" = icmp ugt i64 2, %"$gasrem_212" - br i1 %"$gascmp_213", label %"$out_of_gas_214", label %"$have_gas_215" +"$have_gas_212": ; preds = %"$out_of_gas_211", %"$have_gas_207" + %"$consume_213" = sub i64 %"$gasrem_209", 12 + store i64 %"$consume_213", i64* @_gasrem, align 8 + store %Int32 { i32 12 }, %Int32* @"$_gas_charge_accNatUtils_3", align 4, !dbg !26 + %"$gasrem_214" = load i64, i64* @_gasrem, align 8 + %"$gascmp_215" = icmp ugt i64 2, %"$gasrem_214" + br i1 %"$gascmp_215", label %"$out_of_gas_216", label %"$have_gas_217" -"$out_of_gas_214": ; preds = %"$have_gas_210" +"$out_of_gas_216": ; preds = %"$have_gas_212" call void @_out_of_gas() - br label %"$have_gas_215" + br label %"$have_gas_217" -"$have_gas_215": ; preds = %"$out_of_gas_214", %"$have_gas_210" - %"$consume_216" = sub i64 %"$gasrem_212", 2 - store i64 %"$consume_216", i64* @_gasrem, align 8 - store %Int32 { i32 2 }, %Int32* @"$_gas_charge_accPairUtils_4", align 4, !dbg !19 +"$have_gas_217": ; preds = %"$out_of_gas_216", %"$have_gas_212" + %"$consume_218" = sub i64 %"$gasrem_214", 2 + store i64 %"$consume_218", i64* @_gasrem, align 8 + store %Int32 { i32 2 }, %Int32* @"$_gas_charge_accPairUtils_4", align 4, !dbg !26 ret void } -define internal %TName_Bool* @_scilla_expr_fun(i8* %0) !dbg !21 { +define internal %TName_Bool* @_scilla_expr_fun(i8* %0) !dbg !28 { entry: %"$expr_85" = alloca %TName_Bool*, align 8 - %"$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" + call void @llvm.dbg.declare(metadata %TName_Bool** %"$expr_85", metadata !29, metadata !DIExpression()), !dbg !30 + %"$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_219": ; preds = %entry +"$out_of_gas_221": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_220" + br label %"$have_gas_222" -"$have_gas_220": ; preds = %"$out_of_gas_219", %entry - %"$consume_221" = sub i64 %"$gasrem_217", 1 - store i64 %"$consume_221", i64* @_gasrem, align 8 - %"$gasrem_222" = load i64, i64* @_gasrem, align 8 - %"$gascmp_223" = icmp ugt i64 1, %"$gasrem_222" - br i1 %"$gascmp_223", label %"$out_of_gas_224", label %"$have_gas_225" +"$have_gas_222": ; preds = %"$out_of_gas_221", %entry + %"$consume_223" = sub i64 %"$gasrem_219", 1 + store i64 %"$consume_223", i64* @_gasrem, 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_224": ; preds = %"$have_gas_220" +"$out_of_gas_226": ; preds = %"$have_gas_222" call void @_out_of_gas() - br label %"$have_gas_225" + br label %"$have_gas_227" -"$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 - %"$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" +"$have_gas_227": ; preds = %"$out_of_gas_226", %"$have_gas_222" + %"$consume_228" = sub i64 %"$gasrem_224", 1 + store i64 %"$consume_228", i64* @_gasrem, 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_229": ; preds = %"$have_gas_225" +"$out_of_gas_231": ; preds = %"$have_gas_227" call void @_out_of_gas() - br label %"$have_gas_230" + br label %"$have_gas_232" -"$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 +"$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 %test = alloca %TName_Bool*, 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 = %"$have_gas_230" - call void @_out_of_gas() - br label %"$have_gas_235" - -"$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 - %"$adtval_237_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_237_salloc" = call i8* @_salloc(i8* %"$adtval_237_load", i64 1) - %"$adtval_237" = bitcast i8* %"$adtval_237_salloc" to %CName_True* - %"$adtgep_238" = getelementptr inbounds %CName_True, %CName_True* %"$adtval_237", i32 0, i32 0 - store i8 0, i8* %"$adtgep_238", align 1 - %"$adtptr_239" = bitcast %CName_True* %"$adtval_237" to %TName_Bool* - store %TName_Bool* %"$adtptr_239", %TName_Bool** %test, align 8, !dbg !22 - %"$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_242": ; preds = %"$have_gas_235" - call void @_out_of_gas() - br label %"$have_gas_243" - -"$have_gas_243": ; preds = %"$out_of_gas_242", %"$have_gas_235" - %"$consume_244" = sub i64 %"$gasrem_240", 1 - store i64 %"$consume_244", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %test, metadata !31, metadata !DIExpression()), !dbg !32 + %"$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 + %"$adtval_239_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_239_salloc" = call i8* @_salloc(i8* %"$adtval_239_load", i64 1) + %"$adtval_239" = bitcast i8* %"$adtval_239_salloc" to %CName_True* + %"$adtgep_240" = getelementptr inbounds %CName_True, %CName_True* %"$adtval_239", i32 0, i32 0 + store i8 0, i8* %"$adtgep_240", align 1 + %"$adtptr_241" = bitcast %CName_True* %"$adtval_239" to %TName_Bool* + store %TName_Bool* %"$adtptr_241", %TName_Bool** %test, 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_237" + call void @_out_of_gas() + br label %"$have_gas_245" + +"$have_gas_245": ; preds = %"$out_of_gas_244", %"$have_gas_237" + %"$consume_246" = sub i64 %"$gasrem_242", 1 + store i64 %"$consume_246", i64* @_gasrem, align 8 %arg1 = alloca %Uint32, align 8 - %"$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" + call void @llvm.dbg.declare(metadata %Uint32* %arg1, metadata !34, metadata !DIExpression()), !dbg !36 + %"$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_247": ; preds = %"$have_gas_243" +"$out_of_gas_249": ; preds = %"$have_gas_245" call void @_out_of_gas() - br label %"$have_gas_248" + br label %"$have_gas_250" -"$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 - store %Uint32 { i32 1844 }, %Uint32* %arg1, align 4, !dbg !23 - %"$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" +"$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 + store %Uint32 { i32 1844 }, %Uint32* %arg1, align 4, !dbg !37 + %"$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_252": ; preds = %"$have_gas_248" +"$out_of_gas_254": ; preds = %"$have_gas_250" call void @_out_of_gas() - br label %"$have_gas_253" + br label %"$have_gas_255" -"$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 +"$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 %arg2 = alloca %Uint32, 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" + call void @llvm.dbg.declare(metadata %Uint32* %arg2, metadata !38, metadata !DIExpression()), !dbg !39 + %"$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_257": ; preds = %"$have_gas_253" +"$out_of_gas_259": ; preds = %"$have_gas_255" call void @_out_of_gas() - br label %"$have_gas_258" + br label %"$have_gas_260" -"$have_gas_258": ; preds = %"$out_of_gas_257", %"$have_gas_253" - %"$consume_259" = sub i64 %"$gasrem_255", 1 - store i64 %"$consume_259", i64* @_gasrem, align 8 - store %Uint32 { i32 1843 }, %Uint32* %arg2, align 4, !dbg !24 - %"$gasrem_260" = load i64, i64* @_gasrem, align 8 - %"$gascmp_261" = icmp ugt i64 1, %"$gasrem_260" - br i1 %"$gascmp_261", label %"$out_of_gas_262", label %"$have_gas_263" +"$have_gas_260": ; preds = %"$out_of_gas_259", %"$have_gas_255" + %"$consume_261" = sub i64 %"$gasrem_257", 1 + store i64 %"$consume_261", i64* @_gasrem, align 8 + store %Uint32 { i32 1843 }, %Uint32* %arg2, align 4, !dbg !40 + %"$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_262": ; preds = %"$have_gas_258" +"$out_of_gas_264": ; preds = %"$have_gas_260" call void @_out_of_gas() - br label %"$have_gas_263" + br label %"$have_gas_265" -"$have_gas_263": ; preds = %"$out_of_gas_262", %"$have_gas_258" - %"$consume_264" = sub i64 %"$gasrem_260", 1 - store i64 %"$consume_264", i64* @_gasrem, align 8 +"$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 %"$test_6" = alloca %TName_Bool*, align 8 - %"$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" + call void @llvm.dbg.declare(metadata %TName_Bool** %"$test_6", metadata !41, metadata !DIExpression()), !dbg !42 + %"$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_267": ; preds = %"$have_gas_263" +"$out_of_gas_269": ; preds = %"$have_gas_265" call void @_out_of_gas() - br label %"$have_gas_268" + br label %"$have_gas_270" -"$have_gas_268": ; preds = %"$out_of_gas_267", %"$have_gas_263" - %"$consume_269" = sub i64 %"$gasrem_265", 1 - store i64 %"$consume_269", i64* @_gasrem, align 8 +"$have_gas_270": ; preds = %"$out_of_gas_269", %"$have_gas_265" + %"$consume_271" = sub i64 %"$gasrem_267", 1 + store i64 %"$consume_271", i64* @_gasrem, align 8 %res = alloca %Uint32, align 8 - %"$gasrem_270" = load i64, i64* @_gasrem, align 8 - %"$gascmp_271" = icmp ugt i64 20, %"$gasrem_270" - br i1 %"$gascmp_271", label %"$out_of_gas_272", label %"$have_gas_273" + call void @llvm.dbg.declare(metadata %Uint32* %res, metadata !43, metadata !DIExpression()), !dbg !44 + %"$gasrem_272" = load i64, i64* @_gasrem, align 8 + %"$gascmp_273" = icmp ugt i64 20, %"$gasrem_272" + br i1 %"$gascmp_273", label %"$out_of_gas_274", label %"$have_gas_275" -"$out_of_gas_272": ; preds = %"$have_gas_268" +"$out_of_gas_274": ; preds = %"$have_gas_270" call void @_out_of_gas() - br label %"$have_gas_273" + br label %"$have_gas_275" -"$have_gas_273": ; preds = %"$out_of_gas_272", %"$have_gas_268" - %"$consume_274" = sub i64 %"$gasrem_270", 20 - store i64 %"$consume_274", i64* @_gasrem, align 8 - %"$arg1_275" = load %Uint32, %Uint32* %arg1, align 4 - %"$arg2_276" = load %Uint32, %Uint32* %arg2, align 4 - %"$div_call_277" = call %Uint32 @_div_Uint32(%Uint32 %"$arg1_275", %Uint32 %"$arg2_276"), !dbg !25 - store %Uint32 %"$div_call_277", %Uint32* %res, align 4, !dbg !25 - %"$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" +"$have_gas_275": ; preds = %"$out_of_gas_274", %"$have_gas_270" + %"$consume_276" = sub i64 %"$gasrem_272", 20 + store i64 %"$consume_276", i64* @_gasrem, align 8 + %"$arg1_277" = load %Uint32, %Uint32* %arg1, align 4 + %"$arg2_278" = load %Uint32, %Uint32* %arg2, align 4 + %"$div_call_279" = call %Uint32 @_div_Uint32(%Uint32 %"$arg1_277", %Uint32 %"$arg2_278"), !dbg !45 + store %Uint32 %"$div_call_279", %Uint32* %res, align 4, !dbg !45 + %"$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_280": ; preds = %"$have_gas_273" +"$out_of_gas_282": ; preds = %"$have_gas_275" call void @_out_of_gas() - br label %"$have_gas_281" + br label %"$have_gas_283" -"$have_gas_281": ; preds = %"$out_of_gas_280", %"$have_gas_273" - %"$consume_282" = sub i64 %"$gasrem_278", 1 - store i64 %"$consume_282", i64* @_gasrem, align 8 +"$have_gas_283": ; preds = %"$out_of_gas_282", %"$have_gas_275" + %"$consume_284" = sub i64 %"$gasrem_280", 1 + store i64 %"$consume_284", i64* @_gasrem, align 8 %res_ = alloca %Uint32, 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" + call void @llvm.dbg.declare(metadata %Uint32* %res_, metadata !46, metadata !DIExpression()), !dbg !47 + %"$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_285": ; preds = %"$have_gas_281" +"$out_of_gas_287": ; preds = %"$have_gas_283" call void @_out_of_gas() - br label %"$have_gas_286" + br label %"$have_gas_288" -"$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 - store %Uint32 { i32 1 }, %Uint32* %res_, align 4, !dbg !26 - %"$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" +"$have_gas_288": ; preds = %"$out_of_gas_287", %"$have_gas_283" + %"$consume_289" = sub i64 %"$gasrem_285", 1 + store i64 %"$consume_289", i64* @_gasrem, align 8 + store %Uint32 { i32 1 }, %Uint32* %res_, align 4, !dbg !48 + %"$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_290": ; preds = %"$have_gas_286" +"$out_of_gas_292": ; preds = %"$have_gas_288" call void @_out_of_gas() - br label %"$have_gas_291" + br label %"$have_gas_293" -"$have_gas_291": ; preds = %"$out_of_gas_290", %"$have_gas_286" - %"$consume_292" = sub i64 %"$gasrem_288", 1 - store i64 %"$consume_292", i64* @_gasrem, align 8 +"$have_gas_293": ; preds = %"$out_of_gas_292", %"$have_gas_288" + %"$consume_294" = sub i64 %"$gasrem_290", 1 + store i64 %"$consume_294", i64* @_gasrem, align 8 %test_ = alloca %TName_Bool*, align 8 - %"$gasrem_293" = load i64, i64* @_gasrem, align 8 - %"$gascmp_294" = icmp ugt i64 4, %"$gasrem_293" - br i1 %"$gascmp_294", label %"$out_of_gas_295", label %"$have_gas_296" - -"$out_of_gas_295": ; preds = %"$have_gas_291" - call void @_out_of_gas() - br label %"$have_gas_296" - -"$have_gas_296": ; preds = %"$out_of_gas_295", %"$have_gas_291" - %"$consume_297" = sub i64 %"$gasrem_293", 4 - store i64 %"$consume_297", i64* @_gasrem, align 8 - %"$execptr_load_298" = load i8*, i8** @_execptr, align 8 - %"$res_299" = load %Uint32, %Uint32* %res, align 4 - %"$res__300" = load %Uint32, %Uint32* %res_, align 4 - %"$eq_call_301" = call %TName_Bool* @_eq_Uint32(i8* %"$execptr_load_298", %Uint32 %"$res_299", %Uint32 %"$res__300"), !dbg !27 - store %TName_Bool* %"$eq_call_301", %TName_Bool** %test_, align 8, !dbg !27 - %"$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_296" - call void @_out_of_gas() - br label %"$have_gas_306" - -"$have_gas_306": ; preds = %"$out_of_gas_305", %"$have_gas_296" - %"$consume_307" = sub i64 %"$gasrem_303", 1 - store i64 %"$consume_307", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %test_, metadata !49, metadata !DIExpression()), !dbg !50 + %"$gasrem_295" = load i64, i64* @_gasrem, align 8 + %"$gascmp_296" = icmp ugt i64 4, %"$gasrem_295" + br i1 %"$gascmp_296", label %"$out_of_gas_297", label %"$have_gas_298" + +"$out_of_gas_297": ; preds = %"$have_gas_293" + call void @_out_of_gas() + br label %"$have_gas_298" + +"$have_gas_298": ; preds = %"$out_of_gas_297", %"$have_gas_293" + %"$consume_299" = sub i64 %"$gasrem_295", 4 + store i64 %"$consume_299", i64* @_gasrem, align 8 + %"$execptr_load_300" = load i8*, i8** @_execptr, align 8 + %"$res_301" = load %Uint32, %Uint32* %res, align 4 + %"$res__302" = load %Uint32, %Uint32* %res_, align 4 + %"$eq_call_303" = call %TName_Bool* @_eq_Uint32(i8* %"$execptr_load_300", %Uint32 %"$res_301", %Uint32 %"$res__302"), !dbg !51 + store %TName_Bool* %"$eq_call_303", %TName_Bool** %test_, align 8, !dbg !51 + %"$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 = %"$have_gas_298" + call void @_out_of_gas() + br label %"$have_gas_308" + +"$have_gas_308": ; preds = %"$out_of_gas_307", %"$have_gas_298" + %"$consume_309" = sub i64 %"$gasrem_305", 1 + store i64 %"$consume_309", i64* @_gasrem, align 8 %"$BoolUtils.andb_61" = alloca { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, align 8 - %"$BoolUtils.andb_308" = 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_309" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_308", 0 - %"$BoolUtils.andb_envptr_310" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_308", 1 - %"$test_311" = load %TName_Bool*, %TName_Bool** %test, align 8 - %"$BoolUtils.andb_call_312" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_309"(i8* %"$BoolUtils.andb_envptr_310", %TName_Bool* %"$test_311"), !dbg !28 - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_312", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_61", align 8, !dbg !28 + %"$BoolUtils.andb_310" = 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_311" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_310", 0 + %"$BoolUtils.andb_envptr_312" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_310", 1 + %"$test_313" = load %TName_Bool*, %TName_Bool** %test, align 8 + %"$BoolUtils.andb_call_314" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_311"(i8* %"$BoolUtils.andb_envptr_312", %TName_Bool* %"$test_313"), !dbg !52 + store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_314", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_61", align 8, !dbg !52 %"$BoolUtils.andb_62" = alloca %TName_Bool*, align 8 - %"$$BoolUtils.andb_61_313" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_61", align 8 - %"$$BoolUtils.andb_61_fptr_314" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_61_313", 0 - %"$$BoolUtils.andb_61_envptr_315" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_61_313", 1 - %"$test__316" = load %TName_Bool*, %TName_Bool** %test_, align 8 - %"$$BoolUtils.andb_61_call_317" = call %TName_Bool* %"$$BoolUtils.andb_61_fptr_314"(i8* %"$$BoolUtils.andb_61_envptr_315", %TName_Bool* %"$test__316"), !dbg !28 - store %TName_Bool* %"$$BoolUtils.andb_61_call_317", %TName_Bool** %"$BoolUtils.andb_62", align 8, !dbg !28 - %"$$BoolUtils.andb_62_318" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_62", align 8 - store %TName_Bool* %"$$BoolUtils.andb_62_318", %TName_Bool** %"$test_6", align 8, !dbg !28 - %"$gasrem_319" = load i64, i64* @_gasrem, align 8 - %"$gascmp_320" = icmp ugt i64 1, %"$gasrem_319" - br i1 %"$gascmp_320", label %"$out_of_gas_321", label %"$have_gas_322" - -"$out_of_gas_321": ; preds = %"$have_gas_306" - call void @_out_of_gas() - br label %"$have_gas_322" - -"$have_gas_322": ; preds = %"$out_of_gas_321", %"$have_gas_306" - %"$consume_323" = sub i64 %"$gasrem_319", 1 - store i64 %"$consume_323", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$BoolUtils.andb_62", metadata !53, metadata !DIExpression()), !dbg !52 + %"$$BoolUtils.andb_61_315" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_61", align 8 + %"$$BoolUtils.andb_61_fptr_316" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_61_315", 0 + %"$$BoolUtils.andb_61_envptr_317" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_61_315", 1 + %"$test__318" = load %TName_Bool*, %TName_Bool** %test_, align 8 + %"$$BoolUtils.andb_61_call_319" = call %TName_Bool* %"$$BoolUtils.andb_61_fptr_316"(i8* %"$$BoolUtils.andb_61_envptr_317", %TName_Bool* %"$test__318"), !dbg !52 + store %TName_Bool* %"$$BoolUtils.andb_61_call_319", %TName_Bool** %"$BoolUtils.andb_62", align 8, !dbg !52 + %"$$BoolUtils.andb_62_320" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_62", align 8 + store %TName_Bool* %"$$BoolUtils.andb_62_320", %TName_Bool** %"$test_6", align 8, !dbg !52 + %"$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 = %"$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", 1 + store i64 %"$consume_325", i64* @_gasrem, align 8 %"$arg1_7" = alloca %Uint32, align 8 - %"$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" + call void @llvm.dbg.declare(metadata %Uint32* %"$arg1_7", metadata !54, metadata !DIExpression()), !dbg !55 + %"$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_326": ; preds = %"$have_gas_322" +"$out_of_gas_328": ; preds = %"$have_gas_324" call void @_out_of_gas() - br label %"$have_gas_327" + br label %"$have_gas_329" -"$have_gas_327": ; preds = %"$out_of_gas_326", %"$have_gas_322" - %"$consume_328" = sub i64 %"$gasrem_324", 1 - store i64 %"$consume_328", i64* @_gasrem, align 8 - store %Uint32 { i32 1844 }, %Uint32* %"$arg1_7", align 4, !dbg !29 - %"$gasrem_329" = load i64, i64* @_gasrem, align 8 - %"$gascmp_330" = icmp ugt i64 1, %"$gasrem_329" - br i1 %"$gascmp_330", label %"$out_of_gas_331", label %"$have_gas_332" +"$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 + store %Uint32 { i32 1844 }, %Uint32* %"$arg1_7", align 4, !dbg !56 + %"$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_331": ; preds = %"$have_gas_327" +"$out_of_gas_333": ; preds = %"$have_gas_329" call void @_out_of_gas() - br label %"$have_gas_332" + br label %"$have_gas_334" -"$have_gas_332": ; preds = %"$out_of_gas_331", %"$have_gas_327" - %"$consume_333" = sub i64 %"$gasrem_329", 1 - store i64 %"$consume_333", i64* @_gasrem, align 8 +"$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 %"$arg2_8" = alloca %Uint32, 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" + call void @llvm.dbg.declare(metadata %Uint32* %"$arg2_8", metadata !57, metadata !DIExpression()), !dbg !58 + %"$gasrem_336" = load i64, i64* @_gasrem, align 8 + %"$gascmp_337" = icmp ugt i64 1, %"$gasrem_336" + br i1 %"$gascmp_337", label %"$out_of_gas_338", label %"$have_gas_339" -"$out_of_gas_336": ; preds = %"$have_gas_332" +"$out_of_gas_338": ; preds = %"$have_gas_334" call void @_out_of_gas() - br label %"$have_gas_337" + br label %"$have_gas_339" -"$have_gas_337": ; preds = %"$out_of_gas_336", %"$have_gas_332" - %"$consume_338" = sub i64 %"$gasrem_334", 1 - store i64 %"$consume_338", i64* @_gasrem, align 8 - store %Uint32 { i32 1843 }, %Uint32* %"$arg2_8", align 4, !dbg !30 - %"$gasrem_339" = load i64, i64* @_gasrem, align 8 - %"$gascmp_340" = icmp ugt i64 1, %"$gasrem_339" - br i1 %"$gascmp_340", label %"$out_of_gas_341", label %"$have_gas_342" +"$have_gas_339": ; preds = %"$out_of_gas_338", %"$have_gas_334" + %"$consume_340" = sub i64 %"$gasrem_336", 1 + store i64 %"$consume_340", i64* @_gasrem, align 8 + store %Uint32 { i32 1843 }, %Uint32* %"$arg2_8", align 4, !dbg !59 + %"$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_341": ; preds = %"$have_gas_337" +"$out_of_gas_343": ; preds = %"$have_gas_339" call void @_out_of_gas() - br label %"$have_gas_342" + br label %"$have_gas_344" -"$have_gas_342": ; preds = %"$out_of_gas_341", %"$have_gas_337" - %"$consume_343" = sub i64 %"$gasrem_339", 1 - store i64 %"$consume_343", i64* @_gasrem, align 8 +"$have_gas_344": ; preds = %"$out_of_gas_343", %"$have_gas_339" + %"$consume_345" = sub i64 %"$gasrem_341", 1 + store i64 %"$consume_345", i64* @_gasrem, align 8 %"$test_12" = alloca %TName_Bool*, 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" + call void @llvm.dbg.declare(metadata %TName_Bool** %"$test_12", metadata !60, metadata !DIExpression()), !dbg !61 + %"$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_346": ; preds = %"$have_gas_342" +"$out_of_gas_348": ; preds = %"$have_gas_344" call void @_out_of_gas() - br label %"$have_gas_347" + br label %"$have_gas_349" -"$have_gas_347": ; preds = %"$out_of_gas_346", %"$have_gas_342" - %"$consume_348" = sub i64 %"$gasrem_344", 1 - store i64 %"$consume_348", i64* @_gasrem, align 8 +"$have_gas_349": ; preds = %"$out_of_gas_348", %"$have_gas_344" + %"$consume_350" = sub i64 %"$gasrem_346", 1 + store i64 %"$consume_350", i64* @_gasrem, align 8 %"$res_9" = alloca %Uint32, align 8 - %"$gasrem_349" = load i64, i64* @_gasrem, align 8 - %"$gascmp_350" = icmp ugt i64 20, %"$gasrem_349" - br i1 %"$gascmp_350", label %"$out_of_gas_351", label %"$have_gas_352" + call void @llvm.dbg.declare(metadata %Uint32* %"$res_9", metadata !62, metadata !DIExpression()), !dbg !63 + %"$gasrem_351" = load i64, i64* @_gasrem, align 8 + %"$gascmp_352" = icmp ugt i64 20, %"$gasrem_351" + br i1 %"$gascmp_352", label %"$out_of_gas_353", label %"$have_gas_354" -"$out_of_gas_351": ; preds = %"$have_gas_347" +"$out_of_gas_353": ; preds = %"$have_gas_349" call void @_out_of_gas() - br label %"$have_gas_352" + br label %"$have_gas_354" -"$have_gas_352": ; preds = %"$out_of_gas_351", %"$have_gas_347" - %"$consume_353" = sub i64 %"$gasrem_349", 20 - store i64 %"$consume_353", i64* @_gasrem, align 8 - %"$$arg1_7_354" = load %Uint32, %Uint32* %"$arg1_7", align 4 - %"$$arg2_8_355" = load %Uint32, %Uint32* %"$arg2_8", align 4 - %"$rem_call_356" = call %Uint32 @_rem_Uint32(%Uint32 %"$$arg1_7_354", %Uint32 %"$$arg2_8_355"), !dbg !31 - store %Uint32 %"$rem_call_356", %Uint32* %"$res_9", align 4, !dbg !31 - %"$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" +"$have_gas_354": ; preds = %"$out_of_gas_353", %"$have_gas_349" + %"$consume_355" = sub i64 %"$gasrem_351", 20 + store i64 %"$consume_355", i64* @_gasrem, align 8 + %"$$arg1_7_356" = load %Uint32, %Uint32* %"$arg1_7", align 4 + %"$$arg2_8_357" = load %Uint32, %Uint32* %"$arg2_8", align 4 + %"$rem_call_358" = call %Uint32 @_rem_Uint32(%Uint32 %"$$arg1_7_356", %Uint32 %"$$arg2_8_357"), !dbg !64 + store %Uint32 %"$rem_call_358", %Uint32* %"$res_9", align 4, !dbg !64 + %"$gasrem_359" = load i64, i64* @_gasrem, align 8 + %"$gascmp_360" = icmp ugt i64 1, %"$gasrem_359" + br i1 %"$gascmp_360", label %"$out_of_gas_361", label %"$have_gas_362" -"$out_of_gas_359": ; preds = %"$have_gas_352" +"$out_of_gas_361": ; preds = %"$have_gas_354" call void @_out_of_gas() - br label %"$have_gas_360" + br label %"$have_gas_362" -"$have_gas_360": ; preds = %"$out_of_gas_359", %"$have_gas_352" - %"$consume_361" = sub i64 %"$gasrem_357", 1 - store i64 %"$consume_361", i64* @_gasrem, align 8 +"$have_gas_362": ; preds = %"$out_of_gas_361", %"$have_gas_354" + %"$consume_363" = sub i64 %"$gasrem_359", 1 + store i64 %"$consume_363", i64* @_gasrem, align 8 %"$res__10" = alloca %Uint32, 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" + call void @llvm.dbg.declare(metadata %Uint32* %"$res__10", metadata !65, metadata !DIExpression()), !dbg !66 + %"$gasrem_364" = load i64, i64* @_gasrem, align 8 + %"$gascmp_365" = icmp ugt i64 1, %"$gasrem_364" + br i1 %"$gascmp_365", label %"$out_of_gas_366", label %"$have_gas_367" -"$out_of_gas_364": ; preds = %"$have_gas_360" +"$out_of_gas_366": ; preds = %"$have_gas_362" call void @_out_of_gas() - br label %"$have_gas_365" + br label %"$have_gas_367" -"$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 - store %Uint32 { i32 1 }, %Uint32* %"$res__10", align 4, !dbg !32 - %"$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" +"$have_gas_367": ; preds = %"$out_of_gas_366", %"$have_gas_362" + %"$consume_368" = sub i64 %"$gasrem_364", 1 + store i64 %"$consume_368", i64* @_gasrem, align 8 + store %Uint32 { i32 1 }, %Uint32* %"$res__10", align 4, !dbg !67 + %"$gasrem_369" = load i64, i64* @_gasrem, align 8 + %"$gascmp_370" = icmp ugt i64 1, %"$gasrem_369" + br i1 %"$gascmp_370", label %"$out_of_gas_371", label %"$have_gas_372" -"$out_of_gas_369": ; preds = %"$have_gas_365" +"$out_of_gas_371": ; preds = %"$have_gas_367" call void @_out_of_gas() - br label %"$have_gas_370" + br label %"$have_gas_372" -"$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 +"$have_gas_372": ; preds = %"$out_of_gas_371", %"$have_gas_367" + %"$consume_373" = sub i64 %"$gasrem_369", 1 + store i64 %"$consume_373", i64* @_gasrem, align 8 %"$test__11" = alloca %TName_Bool*, align 8 - %"$gasrem_372" = load i64, i64* @_gasrem, align 8 - %"$gascmp_373" = icmp ugt i64 4, %"$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", 4 - store i64 %"$consume_376", i64* @_gasrem, align 8 - %"$execptr_load_377" = load i8*, i8** @_execptr, align 8 - %"$$res_9_378" = load %Uint32, %Uint32* %"$res_9", align 4 - %"$$res__10_379" = load %Uint32, %Uint32* %"$res__10", align 4 - %"$eq_call_380" = call %TName_Bool* @_eq_Uint32(i8* %"$execptr_load_377", %Uint32 %"$$res_9_378", %Uint32 %"$$res__10_379"), !dbg !33 - store %TName_Bool* %"$eq_call_380", %TName_Bool** %"$test__11", align 8, !dbg !33 - %"$gasrem_382" = load i64, i64* @_gasrem, align 8 - %"$gascmp_383" = icmp ugt i64 1, %"$gasrem_382" - br i1 %"$gascmp_383", label %"$out_of_gas_384", label %"$have_gas_385" - -"$out_of_gas_384": ; preds = %"$have_gas_375" - call void @_out_of_gas() - br label %"$have_gas_385" - -"$have_gas_385": ; preds = %"$out_of_gas_384", %"$have_gas_375" - %"$consume_386" = sub i64 %"$gasrem_382", 1 - store i64 %"$consume_386", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$test__11", metadata !68, metadata !DIExpression()), !dbg !69 + %"$gasrem_374" = load i64, i64* @_gasrem, align 8 + %"$gascmp_375" = icmp ugt i64 4, %"$gasrem_374" + br i1 %"$gascmp_375", label %"$out_of_gas_376", label %"$have_gas_377" + +"$out_of_gas_376": ; preds = %"$have_gas_372" + call void @_out_of_gas() + br label %"$have_gas_377" + +"$have_gas_377": ; preds = %"$out_of_gas_376", %"$have_gas_372" + %"$consume_378" = sub i64 %"$gasrem_374", 4 + store i64 %"$consume_378", i64* @_gasrem, align 8 + %"$execptr_load_379" = load i8*, i8** @_execptr, align 8 + %"$$res_9_380" = load %Uint32, %Uint32* %"$res_9", align 4 + %"$$res__10_381" = load %Uint32, %Uint32* %"$res__10", align 4 + %"$eq_call_382" = call %TName_Bool* @_eq_Uint32(i8* %"$execptr_load_379", %Uint32 %"$$res_9_380", %Uint32 %"$$res__10_381"), !dbg !70 + store %TName_Bool* %"$eq_call_382", %TName_Bool** %"$test__11", align 8, !dbg !70 + %"$gasrem_384" = load i64, i64* @_gasrem, align 8 + %"$gascmp_385" = icmp ugt i64 1, %"$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", 1 + store i64 %"$consume_388", i64* @_gasrem, align 8 %"$BoolUtils.andb_63" = alloca { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, align 8 - %"$BoolUtils.andb_387" = 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_388" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_387", 0 - %"$BoolUtils.andb_envptr_389" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_387", 1 - %"$$test_6_390" = load %TName_Bool*, %TName_Bool** %"$test_6", align 8 - %"$BoolUtils.andb_call_391" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_388"(i8* %"$BoolUtils.andb_envptr_389", %TName_Bool* %"$$test_6_390"), !dbg !34 - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_391", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_63", align 8, !dbg !34 + %"$BoolUtils.andb_389" = 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_390" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_389", 0 + %"$BoolUtils.andb_envptr_391" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_389", 1 + %"$$test_6_392" = load %TName_Bool*, %TName_Bool** %"$test_6", align 8 + %"$BoolUtils.andb_call_393" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_390"(i8* %"$BoolUtils.andb_envptr_391", %TName_Bool* %"$$test_6_392"), !dbg !71 + store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_393", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_63", align 8, !dbg !71 %"$BoolUtils.andb_64" = alloca %TName_Bool*, align 8 - %"$$BoolUtils.andb_63_392" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_63", align 8 - %"$$BoolUtils.andb_63_fptr_393" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_63_392", 0 - %"$$BoolUtils.andb_63_envptr_394" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_63_392", 1 - %"$$test__11_395" = load %TName_Bool*, %TName_Bool** %"$test__11", align 8 - %"$$BoolUtils.andb_63_call_396" = call %TName_Bool* %"$$BoolUtils.andb_63_fptr_393"(i8* %"$$BoolUtils.andb_63_envptr_394", %TName_Bool* %"$$test__11_395"), !dbg !34 - store %TName_Bool* %"$$BoolUtils.andb_63_call_396", %TName_Bool** %"$BoolUtils.andb_64", align 8, !dbg !34 - %"$$BoolUtils.andb_64_397" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_64", align 8 - store %TName_Bool* %"$$BoolUtils.andb_64_397", %TName_Bool** %"$test_12", align 8, !dbg !34 - %"$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_385" - call void @_out_of_gas() - br label %"$have_gas_401" - -"$have_gas_401": ; preds = %"$out_of_gas_400", %"$have_gas_385" - %"$consume_402" = sub i64 %"$gasrem_398", 1 - store i64 %"$consume_402", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$BoolUtils.andb_64", metadata !72, metadata !DIExpression()), !dbg !71 + %"$$BoolUtils.andb_63_394" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_63", align 8 + %"$$BoolUtils.andb_63_fptr_395" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_63_394", 0 + %"$$BoolUtils.andb_63_envptr_396" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_63_394", 1 + %"$$test__11_397" = load %TName_Bool*, %TName_Bool** %"$test__11", align 8 + %"$$BoolUtils.andb_63_call_398" = call %TName_Bool* %"$$BoolUtils.andb_63_fptr_395"(i8* %"$$BoolUtils.andb_63_envptr_396", %TName_Bool* %"$$test__11_397"), !dbg !71 + store %TName_Bool* %"$$BoolUtils.andb_63_call_398", %TName_Bool** %"$BoolUtils.andb_64", align 8, !dbg !71 + %"$$BoolUtils.andb_64_399" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_64", align 8 + store %TName_Bool* %"$$BoolUtils.andb_64_399", %TName_Bool** %"$test_12", align 8, !dbg !71 + %"$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_387" + call void @_out_of_gas() + br label %"$have_gas_403" + +"$have_gas_403": ; preds = %"$out_of_gas_402", %"$have_gas_387" + %"$consume_404" = sub i64 %"$gasrem_400", 1 + store i64 %"$consume_404", i64* @_gasrem, align 8 %"$arg1_13" = alloca %Uint32, 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" + call void @llvm.dbg.declare(metadata %Uint32* %"$arg1_13", metadata !73, metadata !DIExpression()), !dbg !74 + %"$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_405": ; preds = %"$have_gas_401" +"$out_of_gas_407": ; preds = %"$have_gas_403" call void @_out_of_gas() - br label %"$have_gas_406" + br label %"$have_gas_408" -"$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 - store %Uint32 { i32 1844 }, %Uint32* %"$arg1_13", align 4, !dbg !35 - %"$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" +"$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 %Uint32 { i32 1844 }, %Uint32* %"$arg1_13", align 4, !dbg !75 + %"$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_410": ; preds = %"$have_gas_406" +"$out_of_gas_412": ; preds = %"$have_gas_408" call void @_out_of_gas() - br label %"$have_gas_411" + br label %"$have_gas_413" -"$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 +"$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 %"$arg2_14" = alloca %Uint32, 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" + call void @llvm.dbg.declare(metadata %Uint32* %"$arg2_14", metadata !76, metadata !DIExpression()), !dbg !77 + %"$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_415": ; preds = %"$have_gas_411" +"$out_of_gas_417": ; preds = %"$have_gas_413" call void @_out_of_gas() - br label %"$have_gas_416" + br label %"$have_gas_418" -"$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 - store %Uint32 { i32 1845 }, %Uint32* %"$arg2_14", align 4, !dbg !36 - %"$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" +"$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 %Uint32 { i32 1845 }, %Uint32* %"$arg2_14", align 4, !dbg !78 + %"$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_420": ; preds = %"$have_gas_416" +"$out_of_gas_422": ; preds = %"$have_gas_418" call void @_out_of_gas() - br label %"$have_gas_421" + br label %"$have_gas_423" -"$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 +"$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 %"$test_18" = alloca %TName_Bool*, align 8 - %"$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" + call void @llvm.dbg.declare(metadata %TName_Bool** %"$test_18", metadata !79, metadata !DIExpression()), !dbg !80 + %"$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_425": ; preds = %"$have_gas_421" +"$out_of_gas_427": ; preds = %"$have_gas_423" call void @_out_of_gas() - br label %"$have_gas_426" + br label %"$have_gas_428" -"$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 +"$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 %"$res_15" = alloca %Uint32, align 8 - %"$gasrem_428" = load i64, i64* @_gasrem, align 8 - %"$gascmp_429" = icmp ugt i64 20, %"$gasrem_428" - br i1 %"$gascmp_429", label %"$out_of_gas_430", label %"$have_gas_431" + call void @llvm.dbg.declare(metadata %Uint32* %"$res_15", metadata !81, metadata !DIExpression()), !dbg !82 + %"$gasrem_430" = load i64, i64* @_gasrem, align 8 + %"$gascmp_431" = icmp ugt i64 20, %"$gasrem_430" + br i1 %"$gascmp_431", label %"$out_of_gas_432", label %"$have_gas_433" -"$out_of_gas_430": ; preds = %"$have_gas_426" +"$out_of_gas_432": ; preds = %"$have_gas_428" call void @_out_of_gas() - br label %"$have_gas_431" + br label %"$have_gas_433" -"$have_gas_431": ; preds = %"$out_of_gas_430", %"$have_gas_426" - %"$consume_432" = sub i64 %"$gasrem_428", 20 - store i64 %"$consume_432", i64* @_gasrem, align 8 - %"$$arg1_13_433" = load %Uint32, %Uint32* %"$arg1_13", align 4 - %"$$arg2_14_434" = load %Uint32, %Uint32* %"$arg2_14", align 4 - %"$div_call_435" = call %Uint32 @_div_Uint32(%Uint32 %"$$arg1_13_433", %Uint32 %"$$arg2_14_434"), !dbg !37 - store %Uint32 %"$div_call_435", %Uint32* %"$res_15", align 4, !dbg !37 - %"$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" +"$have_gas_433": ; preds = %"$out_of_gas_432", %"$have_gas_428" + %"$consume_434" = sub i64 %"$gasrem_430", 20 + store i64 %"$consume_434", i64* @_gasrem, align 8 + %"$$arg1_13_435" = load %Uint32, %Uint32* %"$arg1_13", align 4 + %"$$arg2_14_436" = load %Uint32, %Uint32* %"$arg2_14", align 4 + %"$div_call_437" = call %Uint32 @_div_Uint32(%Uint32 %"$$arg1_13_435", %Uint32 %"$$arg2_14_436"), !dbg !83 + store %Uint32 %"$div_call_437", %Uint32* %"$res_15", align 4, !dbg !83 + %"$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_438": ; preds = %"$have_gas_431" +"$out_of_gas_440": ; preds = %"$have_gas_433" call void @_out_of_gas() - br label %"$have_gas_439" + br label %"$have_gas_441" -"$have_gas_439": ; preds = %"$out_of_gas_438", %"$have_gas_431" - %"$consume_440" = sub i64 %"$gasrem_436", 1 - store i64 %"$consume_440", i64* @_gasrem, align 8 +"$have_gas_441": ; preds = %"$out_of_gas_440", %"$have_gas_433" + %"$consume_442" = sub i64 %"$gasrem_438", 1 + store i64 %"$consume_442", i64* @_gasrem, align 8 %"$res__16" = alloca %Uint32, align 8 - %"$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" + call void @llvm.dbg.declare(metadata %Uint32* %"$res__16", metadata !84, metadata !DIExpression()), !dbg !85 + %"$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_443": ; preds = %"$have_gas_439" +"$out_of_gas_445": ; preds = %"$have_gas_441" call void @_out_of_gas() - br label %"$have_gas_444" + br label %"$have_gas_446" -"$have_gas_444": ; preds = %"$out_of_gas_443", %"$have_gas_439" - %"$consume_445" = sub i64 %"$gasrem_441", 1 - store i64 %"$consume_445", i64* @_gasrem, align 8 - store %Uint32 zeroinitializer, %Uint32* %"$res__16", align 4, !dbg !38 - %"$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" +"$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 + store %Uint32 zeroinitializer, %Uint32* %"$res__16", align 4, !dbg !86 + %"$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_448": ; preds = %"$have_gas_444" +"$out_of_gas_450": ; preds = %"$have_gas_446" call void @_out_of_gas() - br label %"$have_gas_449" + br label %"$have_gas_451" -"$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 +"$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 %"$test__17" = alloca %TName_Bool*, align 8 - %"$gasrem_451" = load i64, i64* @_gasrem, align 8 - %"$gascmp_452" = icmp ugt i64 4, %"$gasrem_451" - br i1 %"$gascmp_452", label %"$out_of_gas_453", label %"$have_gas_454" - -"$out_of_gas_453": ; preds = %"$have_gas_449" - call void @_out_of_gas() - br label %"$have_gas_454" - -"$have_gas_454": ; preds = %"$out_of_gas_453", %"$have_gas_449" - %"$consume_455" = sub i64 %"$gasrem_451", 4 - store i64 %"$consume_455", i64* @_gasrem, align 8 - %"$execptr_load_456" = load i8*, i8** @_execptr, align 8 - %"$$res_15_457" = load %Uint32, %Uint32* %"$res_15", align 4 - %"$$res__16_458" = load %Uint32, %Uint32* %"$res__16", align 4 - %"$eq_call_459" = call %TName_Bool* @_eq_Uint32(i8* %"$execptr_load_456", %Uint32 %"$$res_15_457", %Uint32 %"$$res__16_458"), !dbg !39 - store %TName_Bool* %"$eq_call_459", %TName_Bool** %"$test__17", align 8, !dbg !39 - %"$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_454" - call void @_out_of_gas() - br label %"$have_gas_464" - -"$have_gas_464": ; preds = %"$out_of_gas_463", %"$have_gas_454" - %"$consume_465" = sub i64 %"$gasrem_461", 1 - store i64 %"$consume_465", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$test__17", metadata !87, metadata !DIExpression()), !dbg !88 + %"$gasrem_453" = load i64, i64* @_gasrem, align 8 + %"$gascmp_454" = icmp ugt i64 4, %"$gasrem_453" + br i1 %"$gascmp_454", label %"$out_of_gas_455", label %"$have_gas_456" + +"$out_of_gas_455": ; preds = %"$have_gas_451" + call void @_out_of_gas() + br label %"$have_gas_456" + +"$have_gas_456": ; preds = %"$out_of_gas_455", %"$have_gas_451" + %"$consume_457" = sub i64 %"$gasrem_453", 4 + store i64 %"$consume_457", i64* @_gasrem, align 8 + %"$execptr_load_458" = load i8*, i8** @_execptr, align 8 + %"$$res_15_459" = load %Uint32, %Uint32* %"$res_15", align 4 + %"$$res__16_460" = load %Uint32, %Uint32* %"$res__16", align 4 + %"$eq_call_461" = call %TName_Bool* @_eq_Uint32(i8* %"$execptr_load_458", %Uint32 %"$$res_15_459", %Uint32 %"$$res__16_460"), !dbg !89 + store %TName_Bool* %"$eq_call_461", %TName_Bool** %"$test__17", align 8, !dbg !89 + %"$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_456" + call void @_out_of_gas() + br label %"$have_gas_466" + +"$have_gas_466": ; preds = %"$out_of_gas_465", %"$have_gas_456" + %"$consume_467" = sub i64 %"$gasrem_463", 1 + store i64 %"$consume_467", i64* @_gasrem, align 8 %"$BoolUtils.andb_65" = alloca { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, align 8 - %"$BoolUtils.andb_466" = 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_467" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_466", 0 - %"$BoolUtils.andb_envptr_468" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_466", 1 - %"$$test_12_469" = load %TName_Bool*, %TName_Bool** %"$test_12", align 8 - %"$BoolUtils.andb_call_470" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_467"(i8* %"$BoolUtils.andb_envptr_468", %TName_Bool* %"$$test_12_469"), !dbg !40 - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_470", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_65", align 8, !dbg !40 + %"$BoolUtils.andb_468" = 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_469" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_468", 0 + %"$BoolUtils.andb_envptr_470" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_468", 1 + %"$$test_12_471" = load %TName_Bool*, %TName_Bool** %"$test_12", align 8 + %"$BoolUtils.andb_call_472" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_469"(i8* %"$BoolUtils.andb_envptr_470", %TName_Bool* %"$$test_12_471"), !dbg !90 + store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_472", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_65", align 8, !dbg !90 %"$BoolUtils.andb_66" = alloca %TName_Bool*, align 8 - %"$$BoolUtils.andb_65_471" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_65", align 8 - %"$$BoolUtils.andb_65_fptr_472" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_65_471", 0 - %"$$BoolUtils.andb_65_envptr_473" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_65_471", 1 - %"$$test__17_474" = load %TName_Bool*, %TName_Bool** %"$test__17", align 8 - %"$$BoolUtils.andb_65_call_475" = call %TName_Bool* %"$$BoolUtils.andb_65_fptr_472"(i8* %"$$BoolUtils.andb_65_envptr_473", %TName_Bool* %"$$test__17_474"), !dbg !40 - store %TName_Bool* %"$$BoolUtils.andb_65_call_475", %TName_Bool** %"$BoolUtils.andb_66", align 8, !dbg !40 - %"$$BoolUtils.andb_66_476" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_66", align 8 - store %TName_Bool* %"$$BoolUtils.andb_66_476", %TName_Bool** %"$test_18", align 8, !dbg !40 - %"$gasrem_477" = load i64, i64* @_gasrem, align 8 - %"$gascmp_478" = icmp ugt i64 1, %"$gasrem_477" - br i1 %"$gascmp_478", label %"$out_of_gas_479", label %"$have_gas_480" - -"$out_of_gas_479": ; preds = %"$have_gas_464" - call void @_out_of_gas() - br label %"$have_gas_480" - -"$have_gas_480": ; preds = %"$out_of_gas_479", %"$have_gas_464" - %"$consume_481" = sub i64 %"$gasrem_477", 1 - store i64 %"$consume_481", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$BoolUtils.andb_66", metadata !91, metadata !DIExpression()), !dbg !90 + %"$$BoolUtils.andb_65_473" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_65", align 8 + %"$$BoolUtils.andb_65_fptr_474" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_65_473", 0 + %"$$BoolUtils.andb_65_envptr_475" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_65_473", 1 + %"$$test__17_476" = load %TName_Bool*, %TName_Bool** %"$test__17", align 8 + %"$$BoolUtils.andb_65_call_477" = call %TName_Bool* %"$$BoolUtils.andb_65_fptr_474"(i8* %"$$BoolUtils.andb_65_envptr_475", %TName_Bool* %"$$test__17_476"), !dbg !90 + store %TName_Bool* %"$$BoolUtils.andb_65_call_477", %TName_Bool** %"$BoolUtils.andb_66", align 8, !dbg !90 + %"$$BoolUtils.andb_66_478" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_66", align 8 + store %TName_Bool* %"$$BoolUtils.andb_66_478", %TName_Bool** %"$test_18", align 8, !dbg !90 + %"$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 = %"$have_gas_466" + call void @_out_of_gas() + br label %"$have_gas_482" + +"$have_gas_482": ; preds = %"$out_of_gas_481", %"$have_gas_466" + %"$consume_483" = sub i64 %"$gasrem_479", 1 + store i64 %"$consume_483", i64* @_gasrem, align 8 %"$arg1_19" = alloca %Int32, align 8 - %"$gasrem_482" = load i64, i64* @_gasrem, align 8 - %"$gascmp_483" = icmp ugt i64 1, %"$gasrem_482" - br i1 %"$gascmp_483", label %"$out_of_gas_484", label %"$have_gas_485" + call void @llvm.dbg.declare(metadata %Int32* %"$arg1_19", metadata !92, metadata !DIExpression()), !dbg !94 + %"$gasrem_484" = load i64, i64* @_gasrem, align 8 + %"$gascmp_485" = icmp ugt i64 1, %"$gasrem_484" + br i1 %"$gascmp_485", label %"$out_of_gas_486", label %"$have_gas_487" -"$out_of_gas_484": ; preds = %"$have_gas_480" +"$out_of_gas_486": ; preds = %"$have_gas_482" call void @_out_of_gas() - br label %"$have_gas_485" + br label %"$have_gas_487" -"$have_gas_485": ; preds = %"$out_of_gas_484", %"$have_gas_480" - %"$consume_486" = sub i64 %"$gasrem_482", 1 - store i64 %"$consume_486", i64* @_gasrem, align 8 - store %Int32 { i32 1844 }, %Int32* %"$arg1_19", align 4, !dbg !41 - %"$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" +"$have_gas_487": ; preds = %"$out_of_gas_486", %"$have_gas_482" + %"$consume_488" = sub i64 %"$gasrem_484", 1 + store i64 %"$consume_488", i64* @_gasrem, align 8 + store %Int32 { i32 1844 }, %Int32* %"$arg1_19", align 4, !dbg !95 + %"$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_489": ; preds = %"$have_gas_485" +"$out_of_gas_491": ; preds = %"$have_gas_487" call void @_out_of_gas() - br label %"$have_gas_490" + br label %"$have_gas_492" -"$have_gas_490": ; preds = %"$out_of_gas_489", %"$have_gas_485" - %"$consume_491" = sub i64 %"$gasrem_487", 1 - store i64 %"$consume_491", i64* @_gasrem, align 8 +"$have_gas_492": ; preds = %"$out_of_gas_491", %"$have_gas_487" + %"$consume_493" = sub i64 %"$gasrem_489", 1 + store i64 %"$consume_493", i64* @_gasrem, align 8 %"$arg2_20" = alloca %Int32, 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" + call void @llvm.dbg.declare(metadata %Int32* %"$arg2_20", metadata !96, metadata !DIExpression()), !dbg !97 + %"$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_494": ; preds = %"$have_gas_490" +"$out_of_gas_496": ; preds = %"$have_gas_492" call void @_out_of_gas() - br label %"$have_gas_495" + br label %"$have_gas_497" -"$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 - store %Int32 { i32 -1843 }, %Int32* %"$arg2_20", align 4, !dbg !42 - %"$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" +"$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 + store %Int32 { i32 -1843 }, %Int32* %"$arg2_20", align 4, !dbg !98 + %"$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_499": ; preds = %"$have_gas_495" +"$out_of_gas_501": ; preds = %"$have_gas_497" call void @_out_of_gas() - br label %"$have_gas_500" + br label %"$have_gas_502" -"$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 +"$have_gas_502": ; preds = %"$out_of_gas_501", %"$have_gas_497" + %"$consume_503" = sub i64 %"$gasrem_499", 1 + store i64 %"$consume_503", i64* @_gasrem, align 8 %"$test_24" = alloca %TName_Bool*, 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" + call void @llvm.dbg.declare(metadata %TName_Bool** %"$test_24", metadata !99, metadata !DIExpression()), !dbg !100 + %"$gasrem_504" = load i64, i64* @_gasrem, align 8 + %"$gascmp_505" = icmp ugt i64 1, %"$gasrem_504" + br i1 %"$gascmp_505", label %"$out_of_gas_506", label %"$have_gas_507" -"$out_of_gas_504": ; preds = %"$have_gas_500" +"$out_of_gas_506": ; preds = %"$have_gas_502" call void @_out_of_gas() - br label %"$have_gas_505" + br label %"$have_gas_507" -"$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 +"$have_gas_507": ; preds = %"$out_of_gas_506", %"$have_gas_502" + %"$consume_508" = sub i64 %"$gasrem_504", 1 + store i64 %"$consume_508", i64* @_gasrem, align 8 %"$res_21" = alloca %Int32, align 8 - %"$gasrem_507" = load i64, i64* @_gasrem, align 8 - %"$gascmp_508" = icmp ugt i64 20, %"$gasrem_507" - br i1 %"$gascmp_508", label %"$out_of_gas_509", label %"$have_gas_510" + call void @llvm.dbg.declare(metadata %Int32* %"$res_21", metadata !101, metadata !DIExpression()), !dbg !102 + %"$gasrem_509" = load i64, i64* @_gasrem, align 8 + %"$gascmp_510" = icmp ugt i64 20, %"$gasrem_509" + br i1 %"$gascmp_510", label %"$out_of_gas_511", label %"$have_gas_512" -"$out_of_gas_509": ; preds = %"$have_gas_505" +"$out_of_gas_511": ; preds = %"$have_gas_507" call void @_out_of_gas() - br label %"$have_gas_510" + br label %"$have_gas_512" -"$have_gas_510": ; preds = %"$out_of_gas_509", %"$have_gas_505" - %"$consume_511" = sub i64 %"$gasrem_507", 20 - store i64 %"$consume_511", i64* @_gasrem, align 8 - %"$$arg1_19_512" = load %Int32, %Int32* %"$arg1_19", align 4 - %"$$arg2_20_513" = load %Int32, %Int32* %"$arg2_20", align 4 - %"$div_call_514" = call %Int32 @_div_Int32(%Int32 %"$$arg1_19_512", %Int32 %"$$arg2_20_513"), !dbg !43 - store %Int32 %"$div_call_514", %Int32* %"$res_21", align 4, !dbg !43 - %"$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" +"$have_gas_512": ; preds = %"$out_of_gas_511", %"$have_gas_507" + %"$consume_513" = sub i64 %"$gasrem_509", 20 + store i64 %"$consume_513", i64* @_gasrem, align 8 + %"$$arg1_19_514" = load %Int32, %Int32* %"$arg1_19", align 4 + %"$$arg2_20_515" = load %Int32, %Int32* %"$arg2_20", align 4 + %"$div_call_516" = call %Int32 @_div_Int32(%Int32 %"$$arg1_19_514", %Int32 %"$$arg2_20_515"), !dbg !103 + store %Int32 %"$div_call_516", %Int32* %"$res_21", align 4, !dbg !103 + %"$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_517": ; preds = %"$have_gas_510" +"$out_of_gas_519": ; preds = %"$have_gas_512" call void @_out_of_gas() - br label %"$have_gas_518" + br label %"$have_gas_520" -"$have_gas_518": ; preds = %"$out_of_gas_517", %"$have_gas_510" - %"$consume_519" = sub i64 %"$gasrem_515", 1 - store i64 %"$consume_519", i64* @_gasrem, align 8 +"$have_gas_520": ; preds = %"$out_of_gas_519", %"$have_gas_512" + %"$consume_521" = sub i64 %"$gasrem_517", 1 + store i64 %"$consume_521", i64* @_gasrem, align 8 %"$res__22" = alloca %Int32, align 8 - %"$gasrem_520" = load i64, i64* @_gasrem, align 8 - %"$gascmp_521" = icmp ugt i64 1, %"$gasrem_520" - br i1 %"$gascmp_521", label %"$out_of_gas_522", label %"$have_gas_523" + call void @llvm.dbg.declare(metadata %Int32* %"$res__22", metadata !104, metadata !DIExpression()), !dbg !105 + %"$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_522": ; preds = %"$have_gas_518" +"$out_of_gas_524": ; preds = %"$have_gas_520" call void @_out_of_gas() - br label %"$have_gas_523" + br label %"$have_gas_525" -"$have_gas_523": ; preds = %"$out_of_gas_522", %"$have_gas_518" - %"$consume_524" = sub i64 %"$gasrem_520", 1 - store i64 %"$consume_524", i64* @_gasrem, align 8 - store %Int32 { i32 -1 }, %Int32* %"$res__22", align 4, !dbg !44 - %"$gasrem_525" = load i64, i64* @_gasrem, align 8 - %"$gascmp_526" = icmp ugt i64 1, %"$gasrem_525" - br i1 %"$gascmp_526", label %"$out_of_gas_527", label %"$have_gas_528" +"$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 -1 }, %Int32* %"$res__22", align 4, !dbg !106 + %"$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_527": ; preds = %"$have_gas_523" +"$out_of_gas_529": ; preds = %"$have_gas_525" call void @_out_of_gas() - br label %"$have_gas_528" + br label %"$have_gas_530" -"$have_gas_528": ; preds = %"$out_of_gas_527", %"$have_gas_523" - %"$consume_529" = sub i64 %"$gasrem_525", 1 - store i64 %"$consume_529", i64* @_gasrem, align 8 +"$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 %"$test__23" = alloca %TName_Bool*, align 8 - %"$gasrem_530" = load i64, i64* @_gasrem, align 8 - %"$gascmp_531" = icmp ugt i64 4, %"$gasrem_530" - br i1 %"$gascmp_531", label %"$out_of_gas_532", label %"$have_gas_533" - -"$out_of_gas_532": ; preds = %"$have_gas_528" - call void @_out_of_gas() - br label %"$have_gas_533" - -"$have_gas_533": ; preds = %"$out_of_gas_532", %"$have_gas_528" - %"$consume_534" = sub i64 %"$gasrem_530", 4 - store i64 %"$consume_534", i64* @_gasrem, align 8 - %"$execptr_load_535" = load i8*, i8** @_execptr, align 8 - %"$$res_21_536" = load %Int32, %Int32* %"$res_21", align 4 - %"$$res__22_537" = load %Int32, %Int32* %"$res__22", align 4 - %"$eq_call_538" = call %TName_Bool* @_eq_Int32(i8* %"$execptr_load_535", %Int32 %"$$res_21_536", %Int32 %"$$res__22_537"), !dbg !45 - store %TName_Bool* %"$eq_call_538", %TName_Bool** %"$test__23", align 8, !dbg !45 - %"$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_533" - call void @_out_of_gas() - br label %"$have_gas_543" - -"$have_gas_543": ; preds = %"$out_of_gas_542", %"$have_gas_533" - %"$consume_544" = sub i64 %"$gasrem_540", 1 - store i64 %"$consume_544", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$test__23", metadata !107, metadata !DIExpression()), !dbg !108 + %"$gasrem_532" = load i64, i64* @_gasrem, align 8 + %"$gascmp_533" = icmp ugt i64 4, %"$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", 4 + store i64 %"$consume_536", i64* @_gasrem, align 8 + %"$execptr_load_537" = load i8*, i8** @_execptr, align 8 + %"$$res_21_538" = load %Int32, %Int32* %"$res_21", align 4 + %"$$res__22_539" = load %Int32, %Int32* %"$res__22", align 4 + %"$eq_call_540" = call %TName_Bool* @_eq_Int32(i8* %"$execptr_load_537", %Int32 %"$$res_21_538", %Int32 %"$$res__22_539"), !dbg !109 + store %TName_Bool* %"$eq_call_540", %TName_Bool** %"$test__23", align 8, !dbg !109 + %"$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_544": ; preds = %"$have_gas_535" + call void @_out_of_gas() + br label %"$have_gas_545" + +"$have_gas_545": ; preds = %"$out_of_gas_544", %"$have_gas_535" + %"$consume_546" = sub i64 %"$gasrem_542", 1 + store i64 %"$consume_546", i64* @_gasrem, align 8 %"$BoolUtils.andb_67" = alloca { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, align 8 - %"$BoolUtils.andb_545" = 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_546" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_545", 0 - %"$BoolUtils.andb_envptr_547" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_545", 1 - %"$$test_18_548" = load %TName_Bool*, %TName_Bool** %"$test_18", align 8 - %"$BoolUtils.andb_call_549" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_546"(i8* %"$BoolUtils.andb_envptr_547", %TName_Bool* %"$$test_18_548"), !dbg !46 - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_549", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_67", align 8, !dbg !46 + %"$BoolUtils.andb_547" = 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_548" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_547", 0 + %"$BoolUtils.andb_envptr_549" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_547", 1 + %"$$test_18_550" = load %TName_Bool*, %TName_Bool** %"$test_18", align 8 + %"$BoolUtils.andb_call_551" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_548"(i8* %"$BoolUtils.andb_envptr_549", %TName_Bool* %"$$test_18_550"), !dbg !110 + store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_551", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_67", align 8, !dbg !110 %"$BoolUtils.andb_68" = alloca %TName_Bool*, align 8 - %"$$BoolUtils.andb_67_550" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_67", align 8 - %"$$BoolUtils.andb_67_fptr_551" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_67_550", 0 - %"$$BoolUtils.andb_67_envptr_552" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_67_550", 1 - %"$$test__23_553" = load %TName_Bool*, %TName_Bool** %"$test__23", align 8 - %"$$BoolUtils.andb_67_call_554" = call %TName_Bool* %"$$BoolUtils.andb_67_fptr_551"(i8* %"$$BoolUtils.andb_67_envptr_552", %TName_Bool* %"$$test__23_553"), !dbg !46 - store %TName_Bool* %"$$BoolUtils.andb_67_call_554", %TName_Bool** %"$BoolUtils.andb_68", align 8, !dbg !46 - %"$$BoolUtils.andb_68_555" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_68", align 8 - store %TName_Bool* %"$$BoolUtils.andb_68_555", %TName_Bool** %"$test_24", align 8, !dbg !46 - %"$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_543" - call void @_out_of_gas() - br label %"$have_gas_559" - -"$have_gas_559": ; preds = %"$out_of_gas_558", %"$have_gas_543" - %"$consume_560" = sub i64 %"$gasrem_556", 1 - store i64 %"$consume_560", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$BoolUtils.andb_68", metadata !111, metadata !DIExpression()), !dbg !110 + %"$$BoolUtils.andb_67_552" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_67", align 8 + %"$$BoolUtils.andb_67_fptr_553" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_67_552", 0 + %"$$BoolUtils.andb_67_envptr_554" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_67_552", 1 + %"$$test__23_555" = load %TName_Bool*, %TName_Bool** %"$test__23", align 8 + %"$$BoolUtils.andb_67_call_556" = call %TName_Bool* %"$$BoolUtils.andb_67_fptr_553"(i8* %"$$BoolUtils.andb_67_envptr_554", %TName_Bool* %"$$test__23_555"), !dbg !110 + store %TName_Bool* %"$$BoolUtils.andb_67_call_556", %TName_Bool** %"$BoolUtils.andb_68", align 8, !dbg !110 + %"$$BoolUtils.andb_68_557" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_68", align 8 + store %TName_Bool* %"$$BoolUtils.andb_68_557", %TName_Bool** %"$test_24", align 8, !dbg !110 + %"$gasrem_558" = load i64, i64* @_gasrem, align 8 + %"$gascmp_559" = icmp ugt i64 1, %"$gasrem_558" + br i1 %"$gascmp_559", label %"$out_of_gas_560", label %"$have_gas_561" + +"$out_of_gas_560": ; preds = %"$have_gas_545" + call void @_out_of_gas() + br label %"$have_gas_561" + +"$have_gas_561": ; preds = %"$out_of_gas_560", %"$have_gas_545" + %"$consume_562" = sub i64 %"$gasrem_558", 1 + store i64 %"$consume_562", i64* @_gasrem, align 8 %"$arg1_25" = alloca %Int32, align 8 - %"$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" + call void @llvm.dbg.declare(metadata %Int32* %"$arg1_25", metadata !112, metadata !DIExpression()), !dbg !113 + %"$gasrem_563" = load i64, i64* @_gasrem, align 8 + %"$gascmp_564" = icmp ugt i64 1, %"$gasrem_563" + br i1 %"$gascmp_564", label %"$out_of_gas_565", label %"$have_gas_566" -"$out_of_gas_563": ; preds = %"$have_gas_559" +"$out_of_gas_565": ; preds = %"$have_gas_561" call void @_out_of_gas() - br label %"$have_gas_564" + br label %"$have_gas_566" -"$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 %Int32 zeroinitializer, %Int32* %"$arg1_25", align 4, !dbg !47 - %"$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" +"$have_gas_566": ; preds = %"$out_of_gas_565", %"$have_gas_561" + %"$consume_567" = sub i64 %"$gasrem_563", 1 + store i64 %"$consume_567", i64* @_gasrem, align 8 + store %Int32 zeroinitializer, %Int32* %"$arg1_25", align 4, !dbg !114 + %"$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" -"$out_of_gas_568": ; preds = %"$have_gas_564" +"$out_of_gas_570": ; preds = %"$have_gas_566" call void @_out_of_gas() - br label %"$have_gas_569" + br label %"$have_gas_571" -"$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 +"$have_gas_571": ; preds = %"$out_of_gas_570", %"$have_gas_566" + %"$consume_572" = sub i64 %"$gasrem_568", 1 + store i64 %"$consume_572", i64* @_gasrem, align 8 %"$arg2_26" = alloca %Int32, align 8 - %"$gasrem_571" = load i64, i64* @_gasrem, align 8 - %"$gascmp_572" = icmp ugt i64 1, %"$gasrem_571" - br i1 %"$gascmp_572", label %"$out_of_gas_573", label %"$have_gas_574" + call void @llvm.dbg.declare(metadata %Int32* %"$arg2_26", metadata !115, metadata !DIExpression()), !dbg !116 + %"$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_573": ; preds = %"$have_gas_569" +"$out_of_gas_575": ; preds = %"$have_gas_571" call void @_out_of_gas() - br label %"$have_gas_574" + br label %"$have_gas_576" -"$have_gas_574": ; preds = %"$out_of_gas_573", %"$have_gas_569" - %"$consume_575" = sub i64 %"$gasrem_571", 1 - store i64 %"$consume_575", i64* @_gasrem, align 8 - store %Int32 { i32 -1843 }, %Int32* %"$arg2_26", align 4, !dbg !48 - %"$gasrem_576" = load i64, i64* @_gasrem, align 8 - %"$gascmp_577" = icmp ugt i64 1, %"$gasrem_576" - br i1 %"$gascmp_577", label %"$out_of_gas_578", label %"$have_gas_579" +"$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 %Int32 { i32 -1843 }, %Int32* %"$arg2_26", align 4, !dbg !117 + %"$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_578": ; preds = %"$have_gas_574" +"$out_of_gas_580": ; preds = %"$have_gas_576" call void @_out_of_gas() - br label %"$have_gas_579" + br label %"$have_gas_581" -"$have_gas_579": ; preds = %"$out_of_gas_578", %"$have_gas_574" - %"$consume_580" = sub i64 %"$gasrem_576", 1 - store i64 %"$consume_580", i64* @_gasrem, align 8 +"$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 %"$test_30" = alloca %TName_Bool*, 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" + call void @llvm.dbg.declare(metadata %TName_Bool** %"$test_30", metadata !118, metadata !DIExpression()), !dbg !119 + %"$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" -"$out_of_gas_583": ; preds = %"$have_gas_579" +"$out_of_gas_585": ; preds = %"$have_gas_581" call void @_out_of_gas() - br label %"$have_gas_584" + br label %"$have_gas_586" -"$have_gas_584": ; preds = %"$out_of_gas_583", %"$have_gas_579" - %"$consume_585" = sub i64 %"$gasrem_581", 1 - store i64 %"$consume_585", i64* @_gasrem, align 8 +"$have_gas_586": ; preds = %"$out_of_gas_585", %"$have_gas_581" + %"$consume_587" = sub i64 %"$gasrem_583", 1 + store i64 %"$consume_587", i64* @_gasrem, align 8 %"$res_27" = alloca %Int32, align 8 - %"$gasrem_586" = load i64, i64* @_gasrem, align 8 - %"$gascmp_587" = icmp ugt i64 20, %"$gasrem_586" - br i1 %"$gascmp_587", label %"$out_of_gas_588", label %"$have_gas_589" + call void @llvm.dbg.declare(metadata %Int32* %"$res_27", metadata !120, metadata !DIExpression()), !dbg !121 + %"$gasrem_588" = load i64, i64* @_gasrem, align 8 + %"$gascmp_589" = icmp ugt i64 20, %"$gasrem_588" + br i1 %"$gascmp_589", label %"$out_of_gas_590", label %"$have_gas_591" -"$out_of_gas_588": ; preds = %"$have_gas_584" +"$out_of_gas_590": ; preds = %"$have_gas_586" call void @_out_of_gas() - br label %"$have_gas_589" + br label %"$have_gas_591" -"$have_gas_589": ; preds = %"$out_of_gas_588", %"$have_gas_584" - %"$consume_590" = sub i64 %"$gasrem_586", 20 - store i64 %"$consume_590", i64* @_gasrem, align 8 - %"$$arg1_25_591" = load %Int32, %Int32* %"$arg1_25", align 4 - %"$$arg2_26_592" = load %Int32, %Int32* %"$arg2_26", align 4 - %"$div_call_593" = call %Int32 @_div_Int32(%Int32 %"$$arg1_25_591", %Int32 %"$$arg2_26_592"), !dbg !49 - store %Int32 %"$div_call_593", %Int32* %"$res_27", align 4, !dbg !49 - %"$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_591": ; preds = %"$out_of_gas_590", %"$have_gas_586" + %"$consume_592" = sub i64 %"$gasrem_588", 20 + store i64 %"$consume_592", i64* @_gasrem, align 8 + %"$$arg1_25_593" = load %Int32, %Int32* %"$arg1_25", align 4 + %"$$arg2_26_594" = load %Int32, %Int32* %"$arg2_26", align 4 + %"$div_call_595" = call %Int32 @_div_Int32(%Int32 %"$$arg1_25_593", %Int32 %"$$arg2_26_594"), !dbg !122 + store %Int32 %"$div_call_595", %Int32* %"$res_27", align 4, !dbg !122 + %"$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_596": ; preds = %"$have_gas_589" +"$out_of_gas_598": ; preds = %"$have_gas_591" call void @_out_of_gas() - br label %"$have_gas_597" + br label %"$have_gas_599" -"$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_599": ; preds = %"$out_of_gas_598", %"$have_gas_591" + %"$consume_600" = sub i64 %"$gasrem_596", 1 + store i64 %"$consume_600", i64* @_gasrem, align 8 %"$res__28" = alloca %Int32, 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" + call void @llvm.dbg.declare(metadata %Int32* %"$res__28", metadata !123, metadata !DIExpression()), !dbg !124 + %"$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_601": ; preds = %"$have_gas_597" +"$out_of_gas_603": ; preds = %"$have_gas_599" call void @_out_of_gas() - br label %"$have_gas_602" + br label %"$have_gas_604" -"$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 %Int32 zeroinitializer, %Int32* %"$res__28", align 4, !dbg !50 - %"$gasrem_604" = load i64, i64* @_gasrem, align 8 - %"$gascmp_605" = icmp ugt i64 1, %"$gasrem_604" - br i1 %"$gascmp_605", label %"$out_of_gas_606", label %"$have_gas_607" +"$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 + store %Int32 zeroinitializer, %Int32* %"$res__28", align 4, !dbg !125 + %"$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_606": ; preds = %"$have_gas_602" +"$out_of_gas_608": ; preds = %"$have_gas_604" call void @_out_of_gas() - br label %"$have_gas_607" + br label %"$have_gas_609" -"$have_gas_607": ; preds = %"$out_of_gas_606", %"$have_gas_602" - %"$consume_608" = sub i64 %"$gasrem_604", 1 - store i64 %"$consume_608", i64* @_gasrem, align 8 +"$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 %"$test__29" = alloca %TName_Bool*, align 8 - %"$gasrem_609" = load i64, i64* @_gasrem, align 8 - %"$gascmp_610" = icmp ugt i64 4, %"$gasrem_609" - br i1 %"$gascmp_610", label %"$out_of_gas_611", label %"$have_gas_612" - -"$out_of_gas_611": ; preds = %"$have_gas_607" - call void @_out_of_gas() - br label %"$have_gas_612" - -"$have_gas_612": ; preds = %"$out_of_gas_611", %"$have_gas_607" - %"$consume_613" = sub i64 %"$gasrem_609", 4 - store i64 %"$consume_613", i64* @_gasrem, align 8 - %"$execptr_load_614" = load i8*, i8** @_execptr, align 8 - %"$$res_27_615" = load %Int32, %Int32* %"$res_27", align 4 - %"$$res__28_616" = load %Int32, %Int32* %"$res__28", align 4 - %"$eq_call_617" = call %TName_Bool* @_eq_Int32(i8* %"$execptr_load_614", %Int32 %"$$res_27_615", %Int32 %"$$res__28_616"), !dbg !51 - store %TName_Bool* %"$eq_call_617", %TName_Bool** %"$test__29", align 8, !dbg !51 - %"$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" - -"$out_of_gas_621": ; preds = %"$have_gas_612" - call void @_out_of_gas() - br label %"$have_gas_622" - -"$have_gas_622": ; preds = %"$out_of_gas_621", %"$have_gas_612" - %"$consume_623" = sub i64 %"$gasrem_619", 1 - store i64 %"$consume_623", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$test__29", metadata !126, metadata !DIExpression()), !dbg !127 + %"$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 = %"$have_gas_609" + call void @_out_of_gas() + br label %"$have_gas_614" + +"$have_gas_614": ; preds = %"$out_of_gas_613", %"$have_gas_609" + %"$consume_615" = sub i64 %"$gasrem_611", 4 + store i64 %"$consume_615", i64* @_gasrem, align 8 + %"$execptr_load_616" = load i8*, i8** @_execptr, align 8 + %"$$res_27_617" = load %Int32, %Int32* %"$res_27", align 4 + %"$$res__28_618" = load %Int32, %Int32* %"$res__28", align 4 + %"$eq_call_619" = call %TName_Bool* @_eq_Int32(i8* %"$execptr_load_616", %Int32 %"$$res_27_617", %Int32 %"$$res__28_618"), !dbg !128 + store %TName_Bool* %"$eq_call_619", %TName_Bool** %"$test__29", align 8, !dbg !128 + %"$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_614" + call void @_out_of_gas() + br label %"$have_gas_624" + +"$have_gas_624": ; preds = %"$out_of_gas_623", %"$have_gas_614" + %"$consume_625" = sub i64 %"$gasrem_621", 1 + store i64 %"$consume_625", i64* @_gasrem, align 8 %"$BoolUtils.andb_69" = alloca { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, align 8 - %"$BoolUtils.andb_624" = 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_625" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_624", 0 - %"$BoolUtils.andb_envptr_626" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_624", 1 - %"$$test_24_627" = load %TName_Bool*, %TName_Bool** %"$test_24", align 8 - %"$BoolUtils.andb_call_628" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_625"(i8* %"$BoolUtils.andb_envptr_626", %TName_Bool* %"$$test_24_627"), !dbg !52 - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_628", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_69", align 8, !dbg !52 + %"$BoolUtils.andb_626" = 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_627" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_626", 0 + %"$BoolUtils.andb_envptr_628" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_626", 1 + %"$$test_24_629" = load %TName_Bool*, %TName_Bool** %"$test_24", align 8 + %"$BoolUtils.andb_call_630" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_627"(i8* %"$BoolUtils.andb_envptr_628", %TName_Bool* %"$$test_24_629"), !dbg !129 + store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_630", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_69", align 8, !dbg !129 %"$BoolUtils.andb_70" = alloca %TName_Bool*, align 8 - %"$$BoolUtils.andb_69_629" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_69", align 8 - %"$$BoolUtils.andb_69_fptr_630" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_69_629", 0 - %"$$BoolUtils.andb_69_envptr_631" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_69_629", 1 - %"$$test__29_632" = load %TName_Bool*, %TName_Bool** %"$test__29", align 8 - %"$$BoolUtils.andb_69_call_633" = call %TName_Bool* %"$$BoolUtils.andb_69_fptr_630"(i8* %"$$BoolUtils.andb_69_envptr_631", %TName_Bool* %"$$test__29_632"), !dbg !52 - store %TName_Bool* %"$$BoolUtils.andb_69_call_633", %TName_Bool** %"$BoolUtils.andb_70", align 8, !dbg !52 - %"$$BoolUtils.andb_70_634" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_70", align 8 - store %TName_Bool* %"$$BoolUtils.andb_70_634", %TName_Bool** %"$test_30", align 8, !dbg !52 - %"$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_637": ; preds = %"$have_gas_622" - call void @_out_of_gas() - br label %"$have_gas_638" - -"$have_gas_638": ; preds = %"$out_of_gas_637", %"$have_gas_622" - %"$consume_639" = sub i64 %"$gasrem_635", 1 - store i64 %"$consume_639", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$BoolUtils.andb_70", metadata !130, metadata !DIExpression()), !dbg !129 + %"$$BoolUtils.andb_69_631" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_69", align 8 + %"$$BoolUtils.andb_69_fptr_632" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_69_631", 0 + %"$$BoolUtils.andb_69_envptr_633" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_69_631", 1 + %"$$test__29_634" = load %TName_Bool*, %TName_Bool** %"$test__29", align 8 + %"$$BoolUtils.andb_69_call_635" = call %TName_Bool* %"$$BoolUtils.andb_69_fptr_632"(i8* %"$$BoolUtils.andb_69_envptr_633", %TName_Bool* %"$$test__29_634"), !dbg !129 + store %TName_Bool* %"$$BoolUtils.andb_69_call_635", %TName_Bool** %"$BoolUtils.andb_70", align 8, !dbg !129 + %"$$BoolUtils.andb_70_636" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_70", align 8 + store %TName_Bool* %"$$BoolUtils.andb_70_636", %TName_Bool** %"$test_30", align 8, !dbg !129 + %"$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_624" + call void @_out_of_gas() + br label %"$have_gas_640" + +"$have_gas_640": ; preds = %"$out_of_gas_639", %"$have_gas_624" + %"$consume_641" = sub i64 %"$gasrem_637", 1 + store i64 %"$consume_641", i64* @_gasrem, align 8 %"$arg1_31" = alloca %Uint256, align 8 - %"$gasrem_640" = load i64, i64* @_gasrem, align 8 - %"$gascmp_641" = icmp ugt i64 1, %"$gasrem_640" - br i1 %"$gascmp_641", label %"$out_of_gas_642", label %"$have_gas_643" + call void @llvm.dbg.declare(metadata %Uint256* %"$arg1_31", metadata !131, metadata !DIExpression()), !dbg !133 + %"$gasrem_642" = load i64, i64* @_gasrem, align 8 + %"$gascmp_643" = icmp ugt i64 1, %"$gasrem_642" + br i1 %"$gascmp_643", label %"$out_of_gas_644", label %"$have_gas_645" -"$out_of_gas_642": ; preds = %"$have_gas_638" +"$out_of_gas_644": ; preds = %"$have_gas_640" call void @_out_of_gas() - br label %"$have_gas_643" + br label %"$have_gas_645" -"$have_gas_643": ; preds = %"$out_of_gas_642", %"$have_gas_638" - %"$consume_644" = sub i64 %"$gasrem_640", 1 - store i64 %"$consume_644", i64* @_gasrem, align 8 - store %Uint256 { i256 1844 }, %Uint256* %"$arg1_31", align 8, !dbg !53 - %"$gasrem_645" = load i64, i64* @_gasrem, align 8 - %"$gascmp_646" = icmp ugt i64 1, %"$gasrem_645" - br i1 %"$gascmp_646", label %"$out_of_gas_647", label %"$have_gas_648" +"$have_gas_645": ; preds = %"$out_of_gas_644", %"$have_gas_640" + %"$consume_646" = sub i64 %"$gasrem_642", 1 + store i64 %"$consume_646", i64* @_gasrem, align 8 + store %Uint256 { i256 1844 }, %Uint256* %"$arg1_31", align 8, !dbg !134 + %"$gasrem_647" = load i64, i64* @_gasrem, align 8 + %"$gascmp_648" = icmp ugt i64 1, %"$gasrem_647" + br i1 %"$gascmp_648", label %"$out_of_gas_649", label %"$have_gas_650" -"$out_of_gas_647": ; preds = %"$have_gas_643" +"$out_of_gas_649": ; preds = %"$have_gas_645" call void @_out_of_gas() - br label %"$have_gas_648" + br label %"$have_gas_650" -"$have_gas_648": ; preds = %"$out_of_gas_647", %"$have_gas_643" - %"$consume_649" = sub i64 %"$gasrem_645", 1 - store i64 %"$consume_649", i64* @_gasrem, align 8 +"$have_gas_650": ; preds = %"$out_of_gas_649", %"$have_gas_645" + %"$consume_651" = sub i64 %"$gasrem_647", 1 + store i64 %"$consume_651", i64* @_gasrem, align 8 %"$arg2_32" = alloca %Uint256, 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" + call void @llvm.dbg.declare(metadata %Uint256* %"$arg2_32", metadata !135, metadata !DIExpression()), !dbg !136 + %"$gasrem_652" = load i64, i64* @_gasrem, align 8 + %"$gascmp_653" = icmp ugt i64 1, %"$gasrem_652" + br i1 %"$gascmp_653", label %"$out_of_gas_654", label %"$have_gas_655" -"$out_of_gas_652": ; preds = %"$have_gas_648" +"$out_of_gas_654": ; preds = %"$have_gas_650" call void @_out_of_gas() - br label %"$have_gas_653" + br label %"$have_gas_655" -"$have_gas_653": ; preds = %"$out_of_gas_652", %"$have_gas_648" - %"$consume_654" = sub i64 %"$gasrem_650", 1 - store i64 %"$consume_654", i64* @_gasrem, align 8 - store %Uint256 { i256 1843 }, %Uint256* %"$arg2_32", align 8, !dbg !54 - %"$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" +"$have_gas_655": ; preds = %"$out_of_gas_654", %"$have_gas_650" + %"$consume_656" = sub i64 %"$gasrem_652", 1 + store i64 %"$consume_656", i64* @_gasrem, align 8 + store %Uint256 { i256 1843 }, %Uint256* %"$arg2_32", align 8, !dbg !137 + %"$gasrem_657" = load i64, i64* @_gasrem, align 8 + %"$gascmp_658" = icmp ugt i64 1, %"$gasrem_657" + br i1 %"$gascmp_658", label %"$out_of_gas_659", label %"$have_gas_660" -"$out_of_gas_657": ; preds = %"$have_gas_653" +"$out_of_gas_659": ; preds = %"$have_gas_655" call void @_out_of_gas() - br label %"$have_gas_658" + br label %"$have_gas_660" -"$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 +"$have_gas_660": ; preds = %"$out_of_gas_659", %"$have_gas_655" + %"$consume_661" = sub i64 %"$gasrem_657", 1 + store i64 %"$consume_661", i64* @_gasrem, align 8 %"$test_36" = alloca %TName_Bool*, 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" + call void @llvm.dbg.declare(metadata %TName_Bool** %"$test_36", metadata !138, metadata !DIExpression()), !dbg !139 + %"$gasrem_662" = load i64, i64* @_gasrem, align 8 + %"$gascmp_663" = icmp ugt i64 1, %"$gasrem_662" + br i1 %"$gascmp_663", label %"$out_of_gas_664", label %"$have_gas_665" -"$out_of_gas_662": ; preds = %"$have_gas_658" +"$out_of_gas_664": ; preds = %"$have_gas_660" call void @_out_of_gas() - br label %"$have_gas_663" + br label %"$have_gas_665" -"$have_gas_663": ; preds = %"$out_of_gas_662", %"$have_gas_658" - %"$consume_664" = sub i64 %"$gasrem_660", 1 - store i64 %"$consume_664", i64* @_gasrem, align 8 +"$have_gas_665": ; preds = %"$out_of_gas_664", %"$have_gas_660" + %"$consume_666" = sub i64 %"$gasrem_662", 1 + store i64 %"$consume_666", i64* @_gasrem, align 8 %"$res_33" = alloca %Uint256, align 8 - %"$gasrem_666" = load i64, i64* @_gasrem, align 8 - %"$gascmp_667" = icmp ugt i64 80, %"$gasrem_666" - br i1 %"$gascmp_667", label %"$out_of_gas_668", label %"$have_gas_669" - -"$out_of_gas_668": ; preds = %"$have_gas_663" - call void @_out_of_gas() - br label %"$have_gas_669" - -"$have_gas_669": ; preds = %"$out_of_gas_668", %"$have_gas_663" - %"$consume_670" = sub i64 %"$gasrem_666", 80 - store i64 %"$consume_670", i64* @_gasrem, align 8 - %"$execptr_load_671" = load i8*, i8** @_execptr, align 8 - %"$div_$arg1_31_672" = alloca %Uint256, align 8 - %"$$arg1_31_673" = load %Uint256, %Uint256* %"$arg1_31", align 8 - store %Uint256 %"$$arg1_31_673", %Uint256* %"$div_$arg1_31_672", align 8 - %"$div_$arg2_32_674" = alloca %Uint256, align 8 - %"$$arg2_32_675" = load %Uint256, %Uint256* %"$arg2_32", align 8 - store %Uint256 %"$$arg2_32_675", %Uint256* %"$div_$arg2_32_674", align 8 - %"$div_call_676" = call %Uint256* @_div_Uint256(i8* %"$execptr_load_671", %Uint256* %"$div_$arg1_31_672", %Uint256* %"$div_$arg2_32_674"), !dbg !55 - %"$div_678" = load %Uint256, %Uint256* %"$div_call_676", align 8 - store %Uint256 %"$div_678", %Uint256* %"$res_33", align 8, !dbg !55 - %"$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_669" - call void @_out_of_gas() - br label %"$have_gas_682" - -"$have_gas_682": ; preds = %"$out_of_gas_681", %"$have_gas_669" - %"$consume_683" = sub i64 %"$gasrem_679", 1 - store i64 %"$consume_683", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %Uint256* %"$res_33", metadata !140, metadata !DIExpression()), !dbg !141 + %"$gasrem_668" = load i64, i64* @_gasrem, align 8 + %"$gascmp_669" = icmp ugt i64 80, %"$gasrem_668" + br i1 %"$gascmp_669", label %"$out_of_gas_670", label %"$have_gas_671" + +"$out_of_gas_670": ; preds = %"$have_gas_665" + call void @_out_of_gas() + br label %"$have_gas_671" + +"$have_gas_671": ; preds = %"$out_of_gas_670", %"$have_gas_665" + %"$consume_672" = sub i64 %"$gasrem_668", 80 + store i64 %"$consume_672", i64* @_gasrem, align 8 + %"$execptr_load_673" = load i8*, i8** @_execptr, align 8 + %"$div_$arg1_31_674" = alloca %Uint256, align 8 + %"$$arg1_31_675" = load %Uint256, %Uint256* %"$arg1_31", align 8 + store %Uint256 %"$$arg1_31_675", %Uint256* %"$div_$arg1_31_674", align 8 + %"$div_$arg2_32_676" = alloca %Uint256, align 8 + %"$$arg2_32_677" = load %Uint256, %Uint256* %"$arg2_32", align 8 + store %Uint256 %"$$arg2_32_677", %Uint256* %"$div_$arg2_32_676", align 8 + %"$div_call_678" = call %Uint256* @_div_Uint256(i8* %"$execptr_load_673", %Uint256* %"$div_$arg1_31_674", %Uint256* %"$div_$arg2_32_676"), !dbg !142 + %"$div_680" = load %Uint256, %Uint256* %"$div_call_678", align 8 + store %Uint256 %"$div_680", %Uint256* %"$res_33", align 8, !dbg !142 + %"$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_671" + call void @_out_of_gas() + br label %"$have_gas_684" + +"$have_gas_684": ; preds = %"$out_of_gas_683", %"$have_gas_671" + %"$consume_685" = sub i64 %"$gasrem_681", 1 + store i64 %"$consume_685", i64* @_gasrem, align 8 %"$res__34" = alloca %Uint256, align 8 - %"$gasrem_684" = load i64, i64* @_gasrem, align 8 - %"$gascmp_685" = icmp ugt i64 1, %"$gasrem_684" - br i1 %"$gascmp_685", label %"$out_of_gas_686", label %"$have_gas_687" + call void @llvm.dbg.declare(metadata %Uint256* %"$res__34", metadata !143, metadata !DIExpression()), !dbg !144 + %"$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_686": ; preds = %"$have_gas_682" +"$out_of_gas_688": ; preds = %"$have_gas_684" call void @_out_of_gas() - br label %"$have_gas_687" + br label %"$have_gas_689" -"$have_gas_687": ; preds = %"$out_of_gas_686", %"$have_gas_682" - %"$consume_688" = sub i64 %"$gasrem_684", 1 - store i64 %"$consume_688", i64* @_gasrem, align 8 - store %Uint256 { i256 1 }, %Uint256* %"$res__34", align 8, !dbg !56 - %"$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" +"$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 + store %Uint256 { i256 1 }, %Uint256* %"$res__34", align 8, !dbg !145 + %"$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_691": ; preds = %"$have_gas_687" +"$out_of_gas_693": ; preds = %"$have_gas_689" call void @_out_of_gas() - br label %"$have_gas_692" + br label %"$have_gas_694" -"$have_gas_692": ; preds = %"$out_of_gas_691", %"$have_gas_687" - %"$consume_693" = sub i64 %"$gasrem_689", 1 - store i64 %"$consume_693", i64* @_gasrem, align 8 +"$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 %"$test__35" = alloca %TName_Bool*, align 8 - %"$gasrem_695" = load i64, i64* @_gasrem, align 8 - %"$gascmp_696" = icmp ugt i64 16, %"$gasrem_695" - br i1 %"$gascmp_696", label %"$out_of_gas_697", label %"$have_gas_698" - -"$out_of_gas_697": ; preds = %"$have_gas_692" - call void @_out_of_gas() - br label %"$have_gas_698" - -"$have_gas_698": ; preds = %"$out_of_gas_697", %"$have_gas_692" - %"$consume_699" = sub i64 %"$gasrem_695", 16 - store i64 %"$consume_699", i64* @_gasrem, align 8 - %"$execptr_load_700" = load i8*, i8** @_execptr, align 8 - %"$eq_$res_33_701" = alloca %Uint256, align 8 - %"$$res_33_702" = load %Uint256, %Uint256* %"$res_33", align 8 - store %Uint256 %"$$res_33_702", %Uint256* %"$eq_$res_33_701", align 8 - %"$eq_$res__34_703" = alloca %Uint256, align 8 - %"$$res__34_704" = load %Uint256, %Uint256* %"$res__34", align 8 - store %Uint256 %"$$res__34_704", %Uint256* %"$eq_$res__34_703", align 8 - %"$eq_call_705" = call %TName_Bool* @_eq_Uint256(i8* %"$execptr_load_700", %Uint256* %"$eq_$res_33_701", %Uint256* %"$eq_$res__34_703"), !dbg !57 - store %TName_Bool* %"$eq_call_705", %TName_Bool** %"$test__35", align 8, !dbg !57 - %"$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_698" - call void @_out_of_gas() - br label %"$have_gas_710" - -"$have_gas_710": ; preds = %"$out_of_gas_709", %"$have_gas_698" - %"$consume_711" = sub i64 %"$gasrem_707", 1 - store i64 %"$consume_711", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$test__35", metadata !146, metadata !DIExpression()), !dbg !147 + %"$gasrem_697" = load i64, i64* @_gasrem, align 8 + %"$gascmp_698" = icmp ugt i64 16, %"$gasrem_697" + br i1 %"$gascmp_698", label %"$out_of_gas_699", label %"$have_gas_700" + +"$out_of_gas_699": ; preds = %"$have_gas_694" + call void @_out_of_gas() + br label %"$have_gas_700" + +"$have_gas_700": ; preds = %"$out_of_gas_699", %"$have_gas_694" + %"$consume_701" = sub i64 %"$gasrem_697", 16 + store i64 %"$consume_701", i64* @_gasrem, align 8 + %"$execptr_load_702" = load i8*, i8** @_execptr, align 8 + %"$eq_$res_33_703" = alloca %Uint256, align 8 + %"$$res_33_704" = load %Uint256, %Uint256* %"$res_33", align 8 + store %Uint256 %"$$res_33_704", %Uint256* %"$eq_$res_33_703", align 8 + %"$eq_$res__34_705" = alloca %Uint256, align 8 + %"$$res__34_706" = load %Uint256, %Uint256* %"$res__34", align 8 + store %Uint256 %"$$res__34_706", %Uint256* %"$eq_$res__34_705", align 8 + %"$eq_call_707" = call %TName_Bool* @_eq_Uint256(i8* %"$execptr_load_702", %Uint256* %"$eq_$res_33_703", %Uint256* %"$eq_$res__34_705"), !dbg !148 + store %TName_Bool* %"$eq_call_707", %TName_Bool** %"$test__35", align 8, !dbg !148 + %"$gasrem_709" = load i64, i64* @_gasrem, align 8 + %"$gascmp_710" = icmp ugt i64 1, %"$gasrem_709" + br i1 %"$gascmp_710", label %"$out_of_gas_711", label %"$have_gas_712" + +"$out_of_gas_711": ; preds = %"$have_gas_700" + call void @_out_of_gas() + br label %"$have_gas_712" + +"$have_gas_712": ; preds = %"$out_of_gas_711", %"$have_gas_700" + %"$consume_713" = sub i64 %"$gasrem_709", 1 + store i64 %"$consume_713", i64* @_gasrem, align 8 %"$BoolUtils.andb_71" = alloca { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, align 8 - %"$BoolUtils.andb_712" = 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_713" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_712", 0 - %"$BoolUtils.andb_envptr_714" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_712", 1 - %"$$test_30_715" = load %TName_Bool*, %TName_Bool** %"$test_30", align 8 - %"$BoolUtils.andb_call_716" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_713"(i8* %"$BoolUtils.andb_envptr_714", %TName_Bool* %"$$test_30_715"), !dbg !58 - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_716", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_71", align 8, !dbg !58 + %"$BoolUtils.andb_714" = 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_715" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_714", 0 + %"$BoolUtils.andb_envptr_716" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_714", 1 + %"$$test_30_717" = load %TName_Bool*, %TName_Bool** %"$test_30", align 8 + %"$BoolUtils.andb_call_718" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_715"(i8* %"$BoolUtils.andb_envptr_716", %TName_Bool* %"$$test_30_717"), !dbg !149 + store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_718", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_71", align 8, !dbg !149 %"$BoolUtils.andb_72" = alloca %TName_Bool*, align 8 - %"$$BoolUtils.andb_71_717" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_71", align 8 - %"$$BoolUtils.andb_71_fptr_718" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_71_717", 0 - %"$$BoolUtils.andb_71_envptr_719" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_71_717", 1 - %"$$test__35_720" = load %TName_Bool*, %TName_Bool** %"$test__35", align 8 - %"$$BoolUtils.andb_71_call_721" = call %TName_Bool* %"$$BoolUtils.andb_71_fptr_718"(i8* %"$$BoolUtils.andb_71_envptr_719", %TName_Bool* %"$$test__35_720"), !dbg !58 - store %TName_Bool* %"$$BoolUtils.andb_71_call_721", %TName_Bool** %"$BoolUtils.andb_72", align 8, !dbg !58 - %"$$BoolUtils.andb_72_722" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_72", align 8 - store %TName_Bool* %"$$BoolUtils.andb_72_722", %TName_Bool** %"$test_36", align 8, !dbg !58 - %"$gasrem_723" = load i64, i64* @_gasrem, align 8 - %"$gascmp_724" = icmp ugt i64 1, %"$gasrem_723" - br i1 %"$gascmp_724", label %"$out_of_gas_725", label %"$have_gas_726" - -"$out_of_gas_725": ; preds = %"$have_gas_710" - call void @_out_of_gas() - br label %"$have_gas_726" - -"$have_gas_726": ; preds = %"$out_of_gas_725", %"$have_gas_710" - %"$consume_727" = sub i64 %"$gasrem_723", 1 - store i64 %"$consume_727", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$BoolUtils.andb_72", metadata !150, metadata !DIExpression()), !dbg !149 + %"$$BoolUtils.andb_71_719" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_71", align 8 + %"$$BoolUtils.andb_71_fptr_720" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_71_719", 0 + %"$$BoolUtils.andb_71_envptr_721" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_71_719", 1 + %"$$test__35_722" = load %TName_Bool*, %TName_Bool** %"$test__35", align 8 + %"$$BoolUtils.andb_71_call_723" = call %TName_Bool* %"$$BoolUtils.andb_71_fptr_720"(i8* %"$$BoolUtils.andb_71_envptr_721", %TName_Bool* %"$$test__35_722"), !dbg !149 + store %TName_Bool* %"$$BoolUtils.andb_71_call_723", %TName_Bool** %"$BoolUtils.andb_72", align 8, !dbg !149 + %"$$BoolUtils.andb_72_724" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_72", align 8 + store %TName_Bool* %"$$BoolUtils.andb_72_724", %TName_Bool** %"$test_36", align 8, !dbg !149 + %"$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_727": ; preds = %"$have_gas_712" + call void @_out_of_gas() + br label %"$have_gas_728" + +"$have_gas_728": ; preds = %"$out_of_gas_727", %"$have_gas_712" + %"$consume_729" = sub i64 %"$gasrem_725", 1 + store i64 %"$consume_729", i64* @_gasrem, align 8 %"$arg1_37" = alloca %Uint256, 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" + call void @llvm.dbg.declare(metadata %Uint256* %"$arg1_37", metadata !151, metadata !DIExpression()), !dbg !152 + %"$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_730": ; preds = %"$have_gas_726" +"$out_of_gas_732": ; preds = %"$have_gas_728" call void @_out_of_gas() - br label %"$have_gas_731" + br label %"$have_gas_733" -"$have_gas_731": ; preds = %"$out_of_gas_730", %"$have_gas_726" - %"$consume_732" = sub i64 %"$gasrem_728", 1 - store i64 %"$consume_732", i64* @_gasrem, align 8 - store %Uint256 { i256 1844 }, %Uint256* %"$arg1_37", align 8, !dbg !59 - %"$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" +"$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 %Uint256 { i256 1844 }, %Uint256* %"$arg1_37", align 8, !dbg !153 + %"$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_735": ; preds = %"$have_gas_731" +"$out_of_gas_737": ; preds = %"$have_gas_733" call void @_out_of_gas() - br label %"$have_gas_736" + br label %"$have_gas_738" -"$have_gas_736": ; preds = %"$out_of_gas_735", %"$have_gas_731" - %"$consume_737" = sub i64 %"$gasrem_733", 1 - store i64 %"$consume_737", i64* @_gasrem, align 8 +"$have_gas_738": ; preds = %"$out_of_gas_737", %"$have_gas_733" + %"$consume_739" = sub i64 %"$gasrem_735", 1 + store i64 %"$consume_739", i64* @_gasrem, align 8 %"$arg2_38" = alloca %Uint256, 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" + call void @llvm.dbg.declare(metadata %Uint256* %"$arg2_38", metadata !154, metadata !DIExpression()), !dbg !155 + %"$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_740": ; preds = %"$have_gas_736" +"$out_of_gas_742": ; preds = %"$have_gas_738" call void @_out_of_gas() - br label %"$have_gas_741" + br label %"$have_gas_743" -"$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 - store %Uint256 { i256 1843 }, %Uint256* %"$arg2_38", align 8, !dbg !60 - %"$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" +"$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 %Uint256 { i256 1843 }, %Uint256* %"$arg2_38", align 8, !dbg !156 + %"$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_745": ; preds = %"$have_gas_741" +"$out_of_gas_747": ; preds = %"$have_gas_743" call void @_out_of_gas() - br label %"$have_gas_746" + br label %"$have_gas_748" -"$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 +"$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 %"$test_42" = alloca %TName_Bool*, 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" + call void @llvm.dbg.declare(metadata %TName_Bool** %"$test_42", metadata !157, metadata !DIExpression()), !dbg !158 + %"$gasrem_750" = load i64, i64* @_gasrem, align 8 + %"$gascmp_751" = icmp ugt i64 1, %"$gasrem_750" + br i1 %"$gascmp_751", label %"$out_of_gas_752", label %"$have_gas_753" -"$out_of_gas_750": ; preds = %"$have_gas_746" +"$out_of_gas_752": ; preds = %"$have_gas_748" call void @_out_of_gas() - br label %"$have_gas_751" + br label %"$have_gas_753" -"$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 +"$have_gas_753": ; preds = %"$out_of_gas_752", %"$have_gas_748" + %"$consume_754" = sub i64 %"$gasrem_750", 1 + store i64 %"$consume_754", i64* @_gasrem, align 8 %"$res_39" = alloca %Uint256, align 8 - %"$gasrem_754" = load i64, i64* @_gasrem, align 8 - %"$gascmp_755" = icmp ugt i64 80, %"$gasrem_754" - br i1 %"$gascmp_755", label %"$out_of_gas_756", label %"$have_gas_757" - -"$out_of_gas_756": ; preds = %"$have_gas_751" - call void @_out_of_gas() - br label %"$have_gas_757" - -"$have_gas_757": ; preds = %"$out_of_gas_756", %"$have_gas_751" - %"$consume_758" = sub i64 %"$gasrem_754", 80 - store i64 %"$consume_758", i64* @_gasrem, align 8 - %"$execptr_load_759" = load i8*, i8** @_execptr, align 8 - %"$rem_$arg1_37_760" = alloca %Uint256, align 8 - %"$$arg1_37_761" = load %Uint256, %Uint256* %"$arg1_37", align 8 - store %Uint256 %"$$arg1_37_761", %Uint256* %"$rem_$arg1_37_760", align 8 - %"$rem_$arg2_38_762" = alloca %Uint256, align 8 - %"$$arg2_38_763" = load %Uint256, %Uint256* %"$arg2_38", align 8 - store %Uint256 %"$$arg2_38_763", %Uint256* %"$rem_$arg2_38_762", align 8 - %"$rem_call_764" = call %Uint256* @_rem_Uint256(i8* %"$execptr_load_759", %Uint256* %"$rem_$arg1_37_760", %Uint256* %"$rem_$arg2_38_762"), !dbg !61 - %"$rem_766" = load %Uint256, %Uint256* %"$rem_call_764", align 8 - store %Uint256 %"$rem_766", %Uint256* %"$res_39", align 8, !dbg !61 - %"$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_757" - call void @_out_of_gas() - br label %"$have_gas_770" - -"$have_gas_770": ; preds = %"$out_of_gas_769", %"$have_gas_757" - %"$consume_771" = sub i64 %"$gasrem_767", 1 - store i64 %"$consume_771", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %Uint256* %"$res_39", metadata !159, metadata !DIExpression()), !dbg !160 + %"$gasrem_756" = load i64, i64* @_gasrem, align 8 + %"$gascmp_757" = icmp ugt i64 80, %"$gasrem_756" + br i1 %"$gascmp_757", label %"$out_of_gas_758", label %"$have_gas_759" + +"$out_of_gas_758": ; preds = %"$have_gas_753" + call void @_out_of_gas() + br label %"$have_gas_759" + +"$have_gas_759": ; preds = %"$out_of_gas_758", %"$have_gas_753" + %"$consume_760" = sub i64 %"$gasrem_756", 80 + store i64 %"$consume_760", i64* @_gasrem, align 8 + %"$execptr_load_761" = load i8*, i8** @_execptr, align 8 + %"$rem_$arg1_37_762" = alloca %Uint256, align 8 + %"$$arg1_37_763" = load %Uint256, %Uint256* %"$arg1_37", align 8 + store %Uint256 %"$$arg1_37_763", %Uint256* %"$rem_$arg1_37_762", align 8 + %"$rem_$arg2_38_764" = alloca %Uint256, align 8 + %"$$arg2_38_765" = load %Uint256, %Uint256* %"$arg2_38", align 8 + store %Uint256 %"$$arg2_38_765", %Uint256* %"$rem_$arg2_38_764", align 8 + %"$rem_call_766" = call %Uint256* @_rem_Uint256(i8* %"$execptr_load_761", %Uint256* %"$rem_$arg1_37_762", %Uint256* %"$rem_$arg2_38_764"), !dbg !161 + %"$rem_768" = load %Uint256, %Uint256* %"$rem_call_766", align 8 + store %Uint256 %"$rem_768", %Uint256* %"$res_39", align 8, !dbg !161 + %"$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 = %"$have_gas_759" + call void @_out_of_gas() + br label %"$have_gas_772" + +"$have_gas_772": ; preds = %"$out_of_gas_771", %"$have_gas_759" + %"$consume_773" = sub i64 %"$gasrem_769", 1 + store i64 %"$consume_773", i64* @_gasrem, align 8 %"$res__40" = alloca %Uint256, 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" + call void @llvm.dbg.declare(metadata %Uint256* %"$res__40", metadata !162, metadata !DIExpression()), !dbg !163 + %"$gasrem_774" = load i64, i64* @_gasrem, align 8 + %"$gascmp_775" = icmp ugt i64 1, %"$gasrem_774" + br i1 %"$gascmp_775", label %"$out_of_gas_776", label %"$have_gas_777" -"$out_of_gas_774": ; preds = %"$have_gas_770" +"$out_of_gas_776": ; preds = %"$have_gas_772" call void @_out_of_gas() - br label %"$have_gas_775" + br label %"$have_gas_777" -"$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 %Uint256 { i256 1 }, %Uint256* %"$res__40", align 8, !dbg !62 - %"$gasrem_777" = load i64, i64* @_gasrem, align 8 - %"$gascmp_778" = icmp ugt i64 1, %"$gasrem_777" - br i1 %"$gascmp_778", label %"$out_of_gas_779", label %"$have_gas_780" +"$have_gas_777": ; preds = %"$out_of_gas_776", %"$have_gas_772" + %"$consume_778" = sub i64 %"$gasrem_774", 1 + store i64 %"$consume_778", i64* @_gasrem, align 8 + store %Uint256 { i256 1 }, %Uint256* %"$res__40", align 8, !dbg !164 + %"$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_779": ; preds = %"$have_gas_775" +"$out_of_gas_781": ; preds = %"$have_gas_777" call void @_out_of_gas() - br label %"$have_gas_780" + br label %"$have_gas_782" -"$have_gas_780": ; preds = %"$out_of_gas_779", %"$have_gas_775" - %"$consume_781" = sub i64 %"$gasrem_777", 1 - store i64 %"$consume_781", i64* @_gasrem, align 8 +"$have_gas_782": ; preds = %"$out_of_gas_781", %"$have_gas_777" + %"$consume_783" = sub i64 %"$gasrem_779", 1 + store i64 %"$consume_783", i64* @_gasrem, align 8 %"$test__41" = alloca %TName_Bool*, align 8 - %"$gasrem_783" = load i64, i64* @_gasrem, align 8 - %"$gascmp_784" = icmp ugt i64 16, %"$gasrem_783" - br i1 %"$gascmp_784", label %"$out_of_gas_785", label %"$have_gas_786" - -"$out_of_gas_785": ; preds = %"$have_gas_780" - call void @_out_of_gas() - br label %"$have_gas_786" - -"$have_gas_786": ; preds = %"$out_of_gas_785", %"$have_gas_780" - %"$consume_787" = sub i64 %"$gasrem_783", 16 - store i64 %"$consume_787", i64* @_gasrem, align 8 - %"$execptr_load_788" = load i8*, i8** @_execptr, align 8 - %"$eq_$res_39_789" = alloca %Uint256, align 8 - %"$$res_39_790" = load %Uint256, %Uint256* %"$res_39", align 8 - store %Uint256 %"$$res_39_790", %Uint256* %"$eq_$res_39_789", align 8 - %"$eq_$res__40_791" = alloca %Uint256, align 8 - %"$$res__40_792" = load %Uint256, %Uint256* %"$res__40", align 8 - store %Uint256 %"$$res__40_792", %Uint256* %"$eq_$res__40_791", align 8 - %"$eq_call_793" = call %TName_Bool* @_eq_Uint256(i8* %"$execptr_load_788", %Uint256* %"$eq_$res_39_789", %Uint256* %"$eq_$res__40_791"), !dbg !63 - store %TName_Bool* %"$eq_call_793", %TName_Bool** %"$test__41", align 8, !dbg !63 - %"$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" - -"$out_of_gas_797": ; preds = %"$have_gas_786" - call void @_out_of_gas() - br label %"$have_gas_798" - -"$have_gas_798": ; preds = %"$out_of_gas_797", %"$have_gas_786" - %"$consume_799" = sub i64 %"$gasrem_795", 1 - store i64 %"$consume_799", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$test__41", metadata !165, metadata !DIExpression()), !dbg !166 + %"$gasrem_785" = load i64, i64* @_gasrem, align 8 + %"$gascmp_786" = icmp ugt i64 16, %"$gasrem_785" + br i1 %"$gascmp_786", label %"$out_of_gas_787", label %"$have_gas_788" + +"$out_of_gas_787": ; preds = %"$have_gas_782" + call void @_out_of_gas() + br label %"$have_gas_788" + +"$have_gas_788": ; preds = %"$out_of_gas_787", %"$have_gas_782" + %"$consume_789" = sub i64 %"$gasrem_785", 16 + store i64 %"$consume_789", i64* @_gasrem, align 8 + %"$execptr_load_790" = load i8*, i8** @_execptr, align 8 + %"$eq_$res_39_791" = alloca %Uint256, align 8 + %"$$res_39_792" = load %Uint256, %Uint256* %"$res_39", align 8 + store %Uint256 %"$$res_39_792", %Uint256* %"$eq_$res_39_791", align 8 + %"$eq_$res__40_793" = alloca %Uint256, align 8 + %"$$res__40_794" = load %Uint256, %Uint256* %"$res__40", align 8 + store %Uint256 %"$$res__40_794", %Uint256* %"$eq_$res__40_793", align 8 + %"$eq_call_795" = call %TName_Bool* @_eq_Uint256(i8* %"$execptr_load_790", %Uint256* %"$eq_$res_39_791", %Uint256* %"$eq_$res__40_793"), !dbg !167 + store %TName_Bool* %"$eq_call_795", %TName_Bool** %"$test__41", align 8, !dbg !167 + %"$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 = %"$have_gas_788" + call void @_out_of_gas() + br label %"$have_gas_800" + +"$have_gas_800": ; preds = %"$out_of_gas_799", %"$have_gas_788" + %"$consume_801" = sub i64 %"$gasrem_797", 1 + store i64 %"$consume_801", i64* @_gasrem, align 8 %"$BoolUtils.andb_73" = alloca { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, align 8 - %"$BoolUtils.andb_800" = 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_801" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_800", 0 - %"$BoolUtils.andb_envptr_802" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_800", 1 - %"$$test_36_803" = load %TName_Bool*, %TName_Bool** %"$test_36", align 8 - %"$BoolUtils.andb_call_804" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_801"(i8* %"$BoolUtils.andb_envptr_802", %TName_Bool* %"$$test_36_803"), !dbg !64 - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_804", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_73", align 8, !dbg !64 + %"$BoolUtils.andb_802" = 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_803" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_802", 0 + %"$BoolUtils.andb_envptr_804" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_802", 1 + %"$$test_36_805" = load %TName_Bool*, %TName_Bool** %"$test_36", align 8 + %"$BoolUtils.andb_call_806" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_803"(i8* %"$BoolUtils.andb_envptr_804", %TName_Bool* %"$$test_36_805"), !dbg !168 + store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_806", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_73", align 8, !dbg !168 %"$BoolUtils.andb_74" = alloca %TName_Bool*, align 8 - %"$$BoolUtils.andb_73_805" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_73", align 8 - %"$$BoolUtils.andb_73_fptr_806" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_73_805", 0 - %"$$BoolUtils.andb_73_envptr_807" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_73_805", 1 - %"$$test__41_808" = load %TName_Bool*, %TName_Bool** %"$test__41", align 8 - %"$$BoolUtils.andb_73_call_809" = call %TName_Bool* %"$$BoolUtils.andb_73_fptr_806"(i8* %"$$BoolUtils.andb_73_envptr_807", %TName_Bool* %"$$test__41_808"), !dbg !64 - store %TName_Bool* %"$$BoolUtils.andb_73_call_809", %TName_Bool** %"$BoolUtils.andb_74", align 8, !dbg !64 - %"$$BoolUtils.andb_74_810" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_74", align 8 - store %TName_Bool* %"$$BoolUtils.andb_74_810", %TName_Bool** %"$test_42", align 8, !dbg !64 - %"$gasrem_811" = load i64, i64* @_gasrem, align 8 - %"$gascmp_812" = icmp ugt i64 1, %"$gasrem_811" - br i1 %"$gascmp_812", label %"$out_of_gas_813", label %"$have_gas_814" - -"$out_of_gas_813": ; preds = %"$have_gas_798" - call void @_out_of_gas() - br label %"$have_gas_814" - -"$have_gas_814": ; preds = %"$out_of_gas_813", %"$have_gas_798" - %"$consume_815" = sub i64 %"$gasrem_811", 1 - store i64 %"$consume_815", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$BoolUtils.andb_74", metadata !169, metadata !DIExpression()), !dbg !168 + %"$$BoolUtils.andb_73_807" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_73", align 8 + %"$$BoolUtils.andb_73_fptr_808" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_73_807", 0 + %"$$BoolUtils.andb_73_envptr_809" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_73_807", 1 + %"$$test__41_810" = load %TName_Bool*, %TName_Bool** %"$test__41", align 8 + %"$$BoolUtils.andb_73_call_811" = call %TName_Bool* %"$$BoolUtils.andb_73_fptr_808"(i8* %"$$BoolUtils.andb_73_envptr_809", %TName_Bool* %"$$test__41_810"), !dbg !168 + store %TName_Bool* %"$$BoolUtils.andb_73_call_811", %TName_Bool** %"$BoolUtils.andb_74", align 8, !dbg !168 + %"$$BoolUtils.andb_74_812" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_74", align 8 + store %TName_Bool* %"$$BoolUtils.andb_74_812", %TName_Bool** %"$test_42", align 8, !dbg !168 + %"$gasrem_813" = load i64, i64* @_gasrem, align 8 + %"$gascmp_814" = icmp ugt i64 1, %"$gasrem_813" + br i1 %"$gascmp_814", label %"$out_of_gas_815", label %"$have_gas_816" + +"$out_of_gas_815": ; preds = %"$have_gas_800" + call void @_out_of_gas() + br label %"$have_gas_816" + +"$have_gas_816": ; preds = %"$out_of_gas_815", %"$have_gas_800" + %"$consume_817" = sub i64 %"$gasrem_813", 1 + store i64 %"$consume_817", i64* @_gasrem, align 8 %"$arg1_43" = alloca %Uint256, align 8 - %"$gasrem_816" = load i64, i64* @_gasrem, align 8 - %"$gascmp_817" = icmp ugt i64 1, %"$gasrem_816" - br i1 %"$gascmp_817", label %"$out_of_gas_818", label %"$have_gas_819" + call void @llvm.dbg.declare(metadata %Uint256* %"$arg1_43", metadata !170, metadata !DIExpression()), !dbg !171 + %"$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_818": ; preds = %"$have_gas_814" +"$out_of_gas_820": ; preds = %"$have_gas_816" call void @_out_of_gas() - br label %"$have_gas_819" + br label %"$have_gas_821" -"$have_gas_819": ; preds = %"$out_of_gas_818", %"$have_gas_814" - %"$consume_820" = sub i64 %"$gasrem_816", 1 - store i64 %"$consume_820", i64* @_gasrem, align 8 - store %Uint256 { i256 1844 }, %Uint256* %"$arg1_43", align 8, !dbg !65 - %"$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" +"$have_gas_821": ; preds = %"$out_of_gas_820", %"$have_gas_816" + %"$consume_822" = sub i64 %"$gasrem_818", 1 + store i64 %"$consume_822", i64* @_gasrem, align 8 + store %Uint256 { i256 1844 }, %Uint256* %"$arg1_43", align 8, !dbg !172 + %"$gasrem_823" = load i64, i64* @_gasrem, align 8 + %"$gascmp_824" = icmp ugt i64 1, %"$gasrem_823" + br i1 %"$gascmp_824", label %"$out_of_gas_825", label %"$have_gas_826" -"$out_of_gas_823": ; preds = %"$have_gas_819" +"$out_of_gas_825": ; preds = %"$have_gas_821" call void @_out_of_gas() - br label %"$have_gas_824" + br label %"$have_gas_826" -"$have_gas_824": ; preds = %"$out_of_gas_823", %"$have_gas_819" - %"$consume_825" = sub i64 %"$gasrem_821", 1 - store i64 %"$consume_825", i64* @_gasrem, align 8 +"$have_gas_826": ; preds = %"$out_of_gas_825", %"$have_gas_821" + %"$consume_827" = sub i64 %"$gasrem_823", 1 + store i64 %"$consume_827", i64* @_gasrem, align 8 %"$arg2_44" = alloca %Uint256, 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" + call void @llvm.dbg.declare(metadata %Uint256* %"$arg2_44", metadata !173, metadata !DIExpression()), !dbg !174 + %"$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_828": ; preds = %"$have_gas_824" +"$out_of_gas_830": ; preds = %"$have_gas_826" call void @_out_of_gas() - br label %"$have_gas_829" + br label %"$have_gas_831" -"$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 - store %Uint256 { i256 1845 }, %Uint256* %"$arg2_44", align 8, !dbg !66 - %"$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" +"$have_gas_831": ; preds = %"$out_of_gas_830", %"$have_gas_826" + %"$consume_832" = sub i64 %"$gasrem_828", 1 + store i64 %"$consume_832", i64* @_gasrem, align 8 + store %Uint256 { i256 1845 }, %Uint256* %"$arg2_44", align 8, !dbg !175 + %"$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_833": ; preds = %"$have_gas_829" +"$out_of_gas_835": ; preds = %"$have_gas_831" call void @_out_of_gas() - br label %"$have_gas_834" + br label %"$have_gas_836" -"$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 +"$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 %"$test_48" = alloca %TName_Bool*, align 8 - %"$gasrem_836" = load i64, i64* @_gasrem, align 8 - %"$gascmp_837" = icmp ugt i64 1, %"$gasrem_836" - br i1 %"$gascmp_837", label %"$out_of_gas_838", label %"$have_gas_839" + call void @llvm.dbg.declare(metadata %TName_Bool** %"$test_48", metadata !176, metadata !DIExpression()), !dbg !177 + %"$gasrem_838" = load i64, i64* @_gasrem, align 8 + %"$gascmp_839" = icmp ugt i64 1, %"$gasrem_838" + br i1 %"$gascmp_839", label %"$out_of_gas_840", label %"$have_gas_841" -"$out_of_gas_838": ; preds = %"$have_gas_834" +"$out_of_gas_840": ; preds = %"$have_gas_836" call void @_out_of_gas() - br label %"$have_gas_839" + br label %"$have_gas_841" -"$have_gas_839": ; preds = %"$out_of_gas_838", %"$have_gas_834" - %"$consume_840" = sub i64 %"$gasrem_836", 1 - store i64 %"$consume_840", i64* @_gasrem, align 8 +"$have_gas_841": ; preds = %"$out_of_gas_840", %"$have_gas_836" + %"$consume_842" = sub i64 %"$gasrem_838", 1 + store i64 %"$consume_842", i64* @_gasrem, align 8 %"$res_45" = alloca %Uint256, align 8 - %"$gasrem_842" = load i64, i64* @_gasrem, align 8 - %"$gascmp_843" = icmp ugt i64 80, %"$gasrem_842" - br i1 %"$gascmp_843", label %"$out_of_gas_844", label %"$have_gas_845" - -"$out_of_gas_844": ; preds = %"$have_gas_839" - call void @_out_of_gas() - br label %"$have_gas_845" - -"$have_gas_845": ; preds = %"$out_of_gas_844", %"$have_gas_839" - %"$consume_846" = sub i64 %"$gasrem_842", 80 - store i64 %"$consume_846", i64* @_gasrem, align 8 - %"$execptr_load_847" = load i8*, i8** @_execptr, align 8 - %"$div_$arg1_43_848" = alloca %Uint256, align 8 - %"$$arg1_43_849" = load %Uint256, %Uint256* %"$arg1_43", align 8 - store %Uint256 %"$$arg1_43_849", %Uint256* %"$div_$arg1_43_848", align 8 - %"$div_$arg2_44_850" = alloca %Uint256, align 8 - %"$$arg2_44_851" = load %Uint256, %Uint256* %"$arg2_44", align 8 - store %Uint256 %"$$arg2_44_851", %Uint256* %"$div_$arg2_44_850", align 8 - %"$div_call_852" = call %Uint256* @_div_Uint256(i8* %"$execptr_load_847", %Uint256* %"$div_$arg1_43_848", %Uint256* %"$div_$arg2_44_850"), !dbg !67 - %"$div_854" = load %Uint256, %Uint256* %"$div_call_852", align 8 - store %Uint256 %"$div_854", %Uint256* %"$res_45", align 8, !dbg !67 - %"$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_845" - call void @_out_of_gas() - br label %"$have_gas_858" - -"$have_gas_858": ; preds = %"$out_of_gas_857", %"$have_gas_845" - %"$consume_859" = sub i64 %"$gasrem_855", 1 - store i64 %"$consume_859", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %Uint256* %"$res_45", metadata !178, metadata !DIExpression()), !dbg !179 + %"$gasrem_844" = load i64, i64* @_gasrem, align 8 + %"$gascmp_845" = icmp ugt i64 80, %"$gasrem_844" + br i1 %"$gascmp_845", label %"$out_of_gas_846", label %"$have_gas_847" + +"$out_of_gas_846": ; preds = %"$have_gas_841" + call void @_out_of_gas() + br label %"$have_gas_847" + +"$have_gas_847": ; preds = %"$out_of_gas_846", %"$have_gas_841" + %"$consume_848" = sub i64 %"$gasrem_844", 80 + store i64 %"$consume_848", i64* @_gasrem, align 8 + %"$execptr_load_849" = load i8*, i8** @_execptr, align 8 + %"$div_$arg1_43_850" = alloca %Uint256, align 8 + %"$$arg1_43_851" = load %Uint256, %Uint256* %"$arg1_43", align 8 + store %Uint256 %"$$arg1_43_851", %Uint256* %"$div_$arg1_43_850", align 8 + %"$div_$arg2_44_852" = alloca %Uint256, align 8 + %"$$arg2_44_853" = load %Uint256, %Uint256* %"$arg2_44", align 8 + store %Uint256 %"$$arg2_44_853", %Uint256* %"$div_$arg2_44_852", align 8 + %"$div_call_854" = call %Uint256* @_div_Uint256(i8* %"$execptr_load_849", %Uint256* %"$div_$arg1_43_850", %Uint256* %"$div_$arg2_44_852"), !dbg !180 + %"$div_856" = load %Uint256, %Uint256* %"$div_call_854", align 8 + store %Uint256 %"$div_856", %Uint256* %"$res_45", align 8, !dbg !180 + %"$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_847" + call void @_out_of_gas() + br label %"$have_gas_860" + +"$have_gas_860": ; preds = %"$out_of_gas_859", %"$have_gas_847" + %"$consume_861" = sub i64 %"$gasrem_857", 1 + store i64 %"$consume_861", i64* @_gasrem, align 8 %"$res__46" = alloca %Uint256, align 8 - %"$gasrem_860" = load i64, i64* @_gasrem, align 8 - %"$gascmp_861" = icmp ugt i64 1, %"$gasrem_860" - br i1 %"$gascmp_861", label %"$out_of_gas_862", label %"$have_gas_863" + call void @llvm.dbg.declare(metadata %Uint256* %"$res__46", metadata !181, metadata !DIExpression()), !dbg !182 + %"$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_862": ; preds = %"$have_gas_858" +"$out_of_gas_864": ; preds = %"$have_gas_860" call void @_out_of_gas() - br label %"$have_gas_863" + br label %"$have_gas_865" -"$have_gas_863": ; preds = %"$out_of_gas_862", %"$have_gas_858" - %"$consume_864" = sub i64 %"$gasrem_860", 1 - store i64 %"$consume_864", i64* @_gasrem, align 8 - store %Uint256 zeroinitializer, %Uint256* %"$res__46", align 8, !dbg !68 - %"$gasrem_865" = load i64, i64* @_gasrem, align 8 - %"$gascmp_866" = icmp ugt i64 1, %"$gasrem_865" - br i1 %"$gascmp_866", label %"$out_of_gas_867", label %"$have_gas_868" +"$have_gas_865": ; preds = %"$out_of_gas_864", %"$have_gas_860" + %"$consume_866" = sub i64 %"$gasrem_862", 1 + store i64 %"$consume_866", i64* @_gasrem, align 8 + store %Uint256 zeroinitializer, %Uint256* %"$res__46", align 8, !dbg !183 + %"$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_867": ; preds = %"$have_gas_863" +"$out_of_gas_869": ; preds = %"$have_gas_865" call void @_out_of_gas() - br label %"$have_gas_868" + br label %"$have_gas_870" -"$have_gas_868": ; preds = %"$out_of_gas_867", %"$have_gas_863" - %"$consume_869" = sub i64 %"$gasrem_865", 1 - store i64 %"$consume_869", i64* @_gasrem, align 8 +"$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 %"$test__47" = alloca %TName_Bool*, align 8 - %"$gasrem_871" = load i64, i64* @_gasrem, align 8 - %"$gascmp_872" = icmp ugt i64 16, %"$gasrem_871" - br i1 %"$gascmp_872", label %"$out_of_gas_873", label %"$have_gas_874" - -"$out_of_gas_873": ; preds = %"$have_gas_868" - call void @_out_of_gas() - br label %"$have_gas_874" - -"$have_gas_874": ; preds = %"$out_of_gas_873", %"$have_gas_868" - %"$consume_875" = sub i64 %"$gasrem_871", 16 - store i64 %"$consume_875", i64* @_gasrem, align 8 - %"$execptr_load_876" = load i8*, i8** @_execptr, align 8 - %"$eq_$res_45_877" = alloca %Uint256, align 8 - %"$$res_45_878" = load %Uint256, %Uint256* %"$res_45", align 8 - store %Uint256 %"$$res_45_878", %Uint256* %"$eq_$res_45_877", align 8 - %"$eq_$res__46_879" = alloca %Uint256, align 8 - %"$$res__46_880" = load %Uint256, %Uint256* %"$res__46", align 8 - store %Uint256 %"$$res__46_880", %Uint256* %"$eq_$res__46_879", align 8 - %"$eq_call_881" = call %TName_Bool* @_eq_Uint256(i8* %"$execptr_load_876", %Uint256* %"$eq_$res_45_877", %Uint256* %"$eq_$res__46_879"), !dbg !69 - store %TName_Bool* %"$eq_call_881", %TName_Bool** %"$test__47", align 8, !dbg !69 - %"$gasrem_883" = load i64, i64* @_gasrem, align 8 - %"$gascmp_884" = icmp ugt i64 1, %"$gasrem_883" - br i1 %"$gascmp_884", label %"$out_of_gas_885", label %"$have_gas_886" - -"$out_of_gas_885": ; preds = %"$have_gas_874" - call void @_out_of_gas() - br label %"$have_gas_886" - -"$have_gas_886": ; preds = %"$out_of_gas_885", %"$have_gas_874" - %"$consume_887" = sub i64 %"$gasrem_883", 1 - store i64 %"$consume_887", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$test__47", metadata !184, metadata !DIExpression()), !dbg !185 + %"$gasrem_873" = load i64, i64* @_gasrem, align 8 + %"$gascmp_874" = icmp ugt i64 16, %"$gasrem_873" + br i1 %"$gascmp_874", label %"$out_of_gas_875", label %"$have_gas_876" + +"$out_of_gas_875": ; preds = %"$have_gas_870" + call void @_out_of_gas() + br label %"$have_gas_876" + +"$have_gas_876": ; preds = %"$out_of_gas_875", %"$have_gas_870" + %"$consume_877" = sub i64 %"$gasrem_873", 16 + store i64 %"$consume_877", i64* @_gasrem, align 8 + %"$execptr_load_878" = load i8*, i8** @_execptr, align 8 + %"$eq_$res_45_879" = alloca %Uint256, align 8 + %"$$res_45_880" = load %Uint256, %Uint256* %"$res_45", align 8 + store %Uint256 %"$$res_45_880", %Uint256* %"$eq_$res_45_879", align 8 + %"$eq_$res__46_881" = alloca %Uint256, align 8 + %"$$res__46_882" = load %Uint256, %Uint256* %"$res__46", align 8 + store %Uint256 %"$$res__46_882", %Uint256* %"$eq_$res__46_881", align 8 + %"$eq_call_883" = call %TName_Bool* @_eq_Uint256(i8* %"$execptr_load_878", %Uint256* %"$eq_$res_45_879", %Uint256* %"$eq_$res__46_881"), !dbg !186 + store %TName_Bool* %"$eq_call_883", %TName_Bool** %"$test__47", align 8, !dbg !186 + %"$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_876" + call void @_out_of_gas() + br label %"$have_gas_888" + +"$have_gas_888": ; preds = %"$out_of_gas_887", %"$have_gas_876" + %"$consume_889" = sub i64 %"$gasrem_885", 1 + store i64 %"$consume_889", i64* @_gasrem, align 8 %"$BoolUtils.andb_75" = alloca { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, align 8 - %"$BoolUtils.andb_888" = 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_889" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_888", 0 - %"$BoolUtils.andb_envptr_890" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_888", 1 - %"$$test_42_891" = load %TName_Bool*, %TName_Bool** %"$test_42", align 8 - %"$BoolUtils.andb_call_892" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_889"(i8* %"$BoolUtils.andb_envptr_890", %TName_Bool* %"$$test_42_891"), !dbg !70 - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_892", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_75", align 8, !dbg !70 + %"$BoolUtils.andb_890" = 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_891" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_890", 0 + %"$BoolUtils.andb_envptr_892" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_890", 1 + %"$$test_42_893" = load %TName_Bool*, %TName_Bool** %"$test_42", align 8 + %"$BoolUtils.andb_call_894" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_891"(i8* %"$BoolUtils.andb_envptr_892", %TName_Bool* %"$$test_42_893"), !dbg !187 + store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_894", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_75", align 8, !dbg !187 %"$BoolUtils.andb_76" = alloca %TName_Bool*, align 8 - %"$$BoolUtils.andb_75_893" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_75", align 8 - %"$$BoolUtils.andb_75_fptr_894" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_75_893", 0 - %"$$BoolUtils.andb_75_envptr_895" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_75_893", 1 - %"$$test__47_896" = load %TName_Bool*, %TName_Bool** %"$test__47", align 8 - %"$$BoolUtils.andb_75_call_897" = call %TName_Bool* %"$$BoolUtils.andb_75_fptr_894"(i8* %"$$BoolUtils.andb_75_envptr_895", %TName_Bool* %"$$test__47_896"), !dbg !70 - store %TName_Bool* %"$$BoolUtils.andb_75_call_897", %TName_Bool** %"$BoolUtils.andb_76", align 8, !dbg !70 - %"$$BoolUtils.andb_76_898" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_76", align 8 - store %TName_Bool* %"$$BoolUtils.andb_76_898", %TName_Bool** %"$test_48", align 8, !dbg !70 - %"$gasrem_899" = load i64, i64* @_gasrem, align 8 - %"$gascmp_900" = icmp ugt i64 1, %"$gasrem_899" - br i1 %"$gascmp_900", label %"$out_of_gas_901", label %"$have_gas_902" - -"$out_of_gas_901": ; preds = %"$have_gas_886" - call void @_out_of_gas() - br label %"$have_gas_902" - -"$have_gas_902": ; preds = %"$out_of_gas_901", %"$have_gas_886" - %"$consume_903" = sub i64 %"$gasrem_899", 1 - store i64 %"$consume_903", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$BoolUtils.andb_76", metadata !188, metadata !DIExpression()), !dbg !187 + %"$$BoolUtils.andb_75_895" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_75", align 8 + %"$$BoolUtils.andb_75_fptr_896" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_75_895", 0 + %"$$BoolUtils.andb_75_envptr_897" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_75_895", 1 + %"$$test__47_898" = load %TName_Bool*, %TName_Bool** %"$test__47", align 8 + %"$$BoolUtils.andb_75_call_899" = call %TName_Bool* %"$$BoolUtils.andb_75_fptr_896"(i8* %"$$BoolUtils.andb_75_envptr_897", %TName_Bool* %"$$test__47_898"), !dbg !187 + store %TName_Bool* %"$$BoolUtils.andb_75_call_899", %TName_Bool** %"$BoolUtils.andb_76", align 8, !dbg !187 + %"$$BoolUtils.andb_76_900" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_76", align 8 + store %TName_Bool* %"$$BoolUtils.andb_76_900", %TName_Bool** %"$test_48", align 8, !dbg !187 + %"$gasrem_901" = load i64, i64* @_gasrem, align 8 + %"$gascmp_902" = icmp ugt i64 1, %"$gasrem_901" + br i1 %"$gascmp_902", label %"$out_of_gas_903", label %"$have_gas_904" + +"$out_of_gas_903": ; preds = %"$have_gas_888" + call void @_out_of_gas() + br label %"$have_gas_904" + +"$have_gas_904": ; preds = %"$out_of_gas_903", %"$have_gas_888" + %"$consume_905" = sub i64 %"$gasrem_901", 1 + store i64 %"$consume_905", i64* @_gasrem, align 8 %"$arg1_49" = alloca %Int256, align 8 - %"$gasrem_904" = load i64, i64* @_gasrem, align 8 - %"$gascmp_905" = icmp ugt i64 1, %"$gasrem_904" - br i1 %"$gascmp_905", label %"$out_of_gas_906", label %"$have_gas_907" + call void @llvm.dbg.declare(metadata %Int256* %"$arg1_49", metadata !189, metadata !DIExpression()), !dbg !191 + %"$gasrem_906" = load i64, i64* @_gasrem, align 8 + %"$gascmp_907" = icmp ugt i64 1, %"$gasrem_906" + br i1 %"$gascmp_907", label %"$out_of_gas_908", label %"$have_gas_909" -"$out_of_gas_906": ; preds = %"$have_gas_902" +"$out_of_gas_908": ; preds = %"$have_gas_904" call void @_out_of_gas() - br label %"$have_gas_907" + br label %"$have_gas_909" -"$have_gas_907": ; preds = %"$out_of_gas_906", %"$have_gas_902" - %"$consume_908" = sub i64 %"$gasrem_904", 1 - store i64 %"$consume_908", i64* @_gasrem, align 8 - store %Int256 { i256 1844 }, %Int256* %"$arg1_49", align 8, !dbg !71 - %"$gasrem_909" = load i64, i64* @_gasrem, align 8 - %"$gascmp_910" = icmp ugt i64 1, %"$gasrem_909" - br i1 %"$gascmp_910", label %"$out_of_gas_911", label %"$have_gas_912" +"$have_gas_909": ; preds = %"$out_of_gas_908", %"$have_gas_904" + %"$consume_910" = sub i64 %"$gasrem_906", 1 + store i64 %"$consume_910", i64* @_gasrem, align 8 + store %Int256 { i256 1844 }, %Int256* %"$arg1_49", align 8, !dbg !192 + %"$gasrem_911" = load i64, i64* @_gasrem, align 8 + %"$gascmp_912" = icmp ugt i64 1, %"$gasrem_911" + br i1 %"$gascmp_912", label %"$out_of_gas_913", label %"$have_gas_914" -"$out_of_gas_911": ; preds = %"$have_gas_907" +"$out_of_gas_913": ; preds = %"$have_gas_909" call void @_out_of_gas() - br label %"$have_gas_912" + br label %"$have_gas_914" -"$have_gas_912": ; preds = %"$out_of_gas_911", %"$have_gas_907" - %"$consume_913" = sub i64 %"$gasrem_909", 1 - store i64 %"$consume_913", i64* @_gasrem, align 8 +"$have_gas_914": ; preds = %"$out_of_gas_913", %"$have_gas_909" + %"$consume_915" = sub i64 %"$gasrem_911", 1 + store i64 %"$consume_915", i64* @_gasrem, align 8 %"$arg2_50" = alloca %Int256, align 8 - %"$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" + call void @llvm.dbg.declare(metadata %Int256* %"$arg2_50", metadata !193, metadata !DIExpression()), !dbg !194 + %"$gasrem_916" = load i64, i64* @_gasrem, align 8 + %"$gascmp_917" = icmp ugt i64 1, %"$gasrem_916" + br i1 %"$gascmp_917", label %"$out_of_gas_918", label %"$have_gas_919" -"$out_of_gas_916": ; preds = %"$have_gas_912" +"$out_of_gas_918": ; preds = %"$have_gas_914" call void @_out_of_gas() - br label %"$have_gas_917" + br label %"$have_gas_919" -"$have_gas_917": ; preds = %"$out_of_gas_916", %"$have_gas_912" - %"$consume_918" = sub i64 %"$gasrem_914", 1 - store i64 %"$consume_918", i64* @_gasrem, align 8 - store %Int256 { i256 -1843 }, %Int256* %"$arg2_50", align 8, !dbg !72 - %"$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" +"$have_gas_919": ; preds = %"$out_of_gas_918", %"$have_gas_914" + %"$consume_920" = sub i64 %"$gasrem_916", 1 + store i64 %"$consume_920", i64* @_gasrem, align 8 + store %Int256 { i256 -1843 }, %Int256* %"$arg2_50", align 8, !dbg !195 + %"$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_921": ; preds = %"$have_gas_917" +"$out_of_gas_923": ; preds = %"$have_gas_919" call void @_out_of_gas() - br label %"$have_gas_922" + br label %"$have_gas_924" -"$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 +"$have_gas_924": ; preds = %"$out_of_gas_923", %"$have_gas_919" + %"$consume_925" = sub i64 %"$gasrem_921", 1 + store i64 %"$consume_925", i64* @_gasrem, align 8 %"$test_54" = alloca %TName_Bool*, 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" + call void @llvm.dbg.declare(metadata %TName_Bool** %"$test_54", metadata !196, metadata !DIExpression()), !dbg !197 + %"$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_926": ; preds = %"$have_gas_922" +"$out_of_gas_928": ; preds = %"$have_gas_924" call void @_out_of_gas() - br label %"$have_gas_927" + br label %"$have_gas_929" -"$have_gas_927": ; preds = %"$out_of_gas_926", %"$have_gas_922" - %"$consume_928" = sub i64 %"$gasrem_924", 1 - store i64 %"$consume_928", i64* @_gasrem, align 8 +"$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 %"$res_51" = alloca %Int256, align 8 - %"$gasrem_930" = load i64, i64* @_gasrem, align 8 - %"$gascmp_931" = icmp ugt i64 80, %"$gasrem_930" - br i1 %"$gascmp_931", label %"$out_of_gas_932", label %"$have_gas_933" - -"$out_of_gas_932": ; preds = %"$have_gas_927" - call void @_out_of_gas() - br label %"$have_gas_933" - -"$have_gas_933": ; preds = %"$out_of_gas_932", %"$have_gas_927" - %"$consume_934" = sub i64 %"$gasrem_930", 80 - store i64 %"$consume_934", i64* @_gasrem, align 8 - %"$execptr_load_935" = load i8*, i8** @_execptr, align 8 - %"$div_$arg1_49_936" = alloca %Int256, align 8 - %"$$arg1_49_937" = load %Int256, %Int256* %"$arg1_49", align 8 - store %Int256 %"$$arg1_49_937", %Int256* %"$div_$arg1_49_936", align 8 - %"$div_$arg2_50_938" = alloca %Int256, align 8 - %"$$arg2_50_939" = load %Int256, %Int256* %"$arg2_50", align 8 - store %Int256 %"$$arg2_50_939", %Int256* %"$div_$arg2_50_938", align 8 - %"$div_call_940" = call %Int256* @_div_Int256(i8* %"$execptr_load_935", %Int256* %"$div_$arg1_49_936", %Int256* %"$div_$arg2_50_938"), !dbg !73 - %"$div_942" = load %Int256, %Int256* %"$div_call_940", align 8 - store %Int256 %"$div_942", %Int256* %"$res_51", align 8, !dbg !73 - %"$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_933" - call void @_out_of_gas() - br label %"$have_gas_946" - -"$have_gas_946": ; preds = %"$out_of_gas_945", %"$have_gas_933" - %"$consume_947" = sub i64 %"$gasrem_943", 1 - store i64 %"$consume_947", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %Int256* %"$res_51", metadata !198, metadata !DIExpression()), !dbg !199 + %"$gasrem_932" = load i64, i64* @_gasrem, align 8 + %"$gascmp_933" = icmp ugt i64 80, %"$gasrem_932" + br i1 %"$gascmp_933", label %"$out_of_gas_934", label %"$have_gas_935" + +"$out_of_gas_934": ; preds = %"$have_gas_929" + call void @_out_of_gas() + br label %"$have_gas_935" + +"$have_gas_935": ; preds = %"$out_of_gas_934", %"$have_gas_929" + %"$consume_936" = sub i64 %"$gasrem_932", 80 + store i64 %"$consume_936", i64* @_gasrem, align 8 + %"$execptr_load_937" = load i8*, i8** @_execptr, align 8 + %"$div_$arg1_49_938" = alloca %Int256, align 8 + %"$$arg1_49_939" = load %Int256, %Int256* %"$arg1_49", align 8 + store %Int256 %"$$arg1_49_939", %Int256* %"$div_$arg1_49_938", align 8 + %"$div_$arg2_50_940" = alloca %Int256, align 8 + %"$$arg2_50_941" = load %Int256, %Int256* %"$arg2_50", align 8 + store %Int256 %"$$arg2_50_941", %Int256* %"$div_$arg2_50_940", align 8 + %"$div_call_942" = call %Int256* @_div_Int256(i8* %"$execptr_load_937", %Int256* %"$div_$arg1_49_938", %Int256* %"$div_$arg2_50_940"), !dbg !200 + %"$div_944" = load %Int256, %Int256* %"$div_call_942", align 8 + store %Int256 %"$div_944", %Int256* %"$res_51", align 8, !dbg !200 + %"$gasrem_945" = load i64, i64* @_gasrem, align 8 + %"$gascmp_946" = icmp ugt i64 1, %"$gasrem_945" + br i1 %"$gascmp_946", label %"$out_of_gas_947", label %"$have_gas_948" + +"$out_of_gas_947": ; preds = %"$have_gas_935" + call void @_out_of_gas() + br label %"$have_gas_948" + +"$have_gas_948": ; preds = %"$out_of_gas_947", %"$have_gas_935" + %"$consume_949" = sub i64 %"$gasrem_945", 1 + store i64 %"$consume_949", i64* @_gasrem, align 8 %"$res__52" = alloca %Int256, align 8 - %"$gasrem_948" = load i64, i64* @_gasrem, align 8 - %"$gascmp_949" = icmp ugt i64 1, %"$gasrem_948" - br i1 %"$gascmp_949", label %"$out_of_gas_950", label %"$have_gas_951" + call void @llvm.dbg.declare(metadata %Int256* %"$res__52", metadata !201, metadata !DIExpression()), !dbg !202 + %"$gasrem_950" = load i64, i64* @_gasrem, align 8 + %"$gascmp_951" = icmp ugt i64 1, %"$gasrem_950" + br i1 %"$gascmp_951", label %"$out_of_gas_952", label %"$have_gas_953" -"$out_of_gas_950": ; preds = %"$have_gas_946" +"$out_of_gas_952": ; preds = %"$have_gas_948" call void @_out_of_gas() - br label %"$have_gas_951" + br label %"$have_gas_953" -"$have_gas_951": ; preds = %"$out_of_gas_950", %"$have_gas_946" - %"$consume_952" = sub i64 %"$gasrem_948", 1 - store i64 %"$consume_952", i64* @_gasrem, align 8 - store %Int256 { i256 -1 }, %Int256* %"$res__52", align 8, !dbg !74 - %"$gasrem_953" = load i64, i64* @_gasrem, align 8 - %"$gascmp_954" = icmp ugt i64 1, %"$gasrem_953" - br i1 %"$gascmp_954", label %"$out_of_gas_955", label %"$have_gas_956" +"$have_gas_953": ; preds = %"$out_of_gas_952", %"$have_gas_948" + %"$consume_954" = sub i64 %"$gasrem_950", 1 + store i64 %"$consume_954", i64* @_gasrem, align 8 + store %Int256 { i256 -1 }, %Int256* %"$res__52", align 8, !dbg !203 + %"$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_955": ; preds = %"$have_gas_951" +"$out_of_gas_957": ; preds = %"$have_gas_953" call void @_out_of_gas() - br label %"$have_gas_956" + br label %"$have_gas_958" -"$have_gas_956": ; preds = %"$out_of_gas_955", %"$have_gas_951" - %"$consume_957" = sub i64 %"$gasrem_953", 1 - store i64 %"$consume_957", i64* @_gasrem, align 8 +"$have_gas_958": ; preds = %"$out_of_gas_957", %"$have_gas_953" + %"$consume_959" = sub i64 %"$gasrem_955", 1 + store i64 %"$consume_959", i64* @_gasrem, align 8 %"$test__53" = alloca %TName_Bool*, align 8 - %"$gasrem_959" = load i64, i64* @_gasrem, align 8 - %"$gascmp_960" = icmp ugt i64 16, %"$gasrem_959" - br i1 %"$gascmp_960", label %"$out_of_gas_961", label %"$have_gas_962" - -"$out_of_gas_961": ; preds = %"$have_gas_956" - call void @_out_of_gas() - br label %"$have_gas_962" - -"$have_gas_962": ; preds = %"$out_of_gas_961", %"$have_gas_956" - %"$consume_963" = sub i64 %"$gasrem_959", 16 - store i64 %"$consume_963", i64* @_gasrem, align 8 - %"$execptr_load_964" = load i8*, i8** @_execptr, align 8 - %"$eq_$res_51_965" = alloca %Int256, align 8 - %"$$res_51_966" = load %Int256, %Int256* %"$res_51", align 8 - store %Int256 %"$$res_51_966", %Int256* %"$eq_$res_51_965", align 8 - %"$eq_$res__52_967" = alloca %Int256, align 8 - %"$$res__52_968" = load %Int256, %Int256* %"$res__52", align 8 - store %Int256 %"$$res__52_968", %Int256* %"$eq_$res__52_967", align 8 - %"$eq_call_969" = call %TName_Bool* @_eq_Int256(i8* %"$execptr_load_964", %Int256* %"$eq_$res_51_965", %Int256* %"$eq_$res__52_967"), !dbg !75 - store %TName_Bool* %"$eq_call_969", %TName_Bool** %"$test__53", align 8, !dbg !75 - %"$gasrem_971" = load i64, i64* @_gasrem, align 8 - %"$gascmp_972" = icmp ugt i64 1, %"$gasrem_971" - br i1 %"$gascmp_972", label %"$out_of_gas_973", label %"$have_gas_974" - -"$out_of_gas_973": ; preds = %"$have_gas_962" - call void @_out_of_gas() - br label %"$have_gas_974" - -"$have_gas_974": ; preds = %"$out_of_gas_973", %"$have_gas_962" - %"$consume_975" = sub i64 %"$gasrem_971", 1 - store i64 %"$consume_975", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$test__53", metadata !204, metadata !DIExpression()), !dbg !205 + %"$gasrem_961" = load i64, i64* @_gasrem, align 8 + %"$gascmp_962" = icmp ugt i64 16, %"$gasrem_961" + br i1 %"$gascmp_962", label %"$out_of_gas_963", label %"$have_gas_964" + +"$out_of_gas_963": ; preds = %"$have_gas_958" + call void @_out_of_gas() + br label %"$have_gas_964" + +"$have_gas_964": ; preds = %"$out_of_gas_963", %"$have_gas_958" + %"$consume_965" = sub i64 %"$gasrem_961", 16 + store i64 %"$consume_965", i64* @_gasrem, align 8 + %"$execptr_load_966" = load i8*, i8** @_execptr, align 8 + %"$eq_$res_51_967" = alloca %Int256, align 8 + %"$$res_51_968" = load %Int256, %Int256* %"$res_51", align 8 + store %Int256 %"$$res_51_968", %Int256* %"$eq_$res_51_967", align 8 + %"$eq_$res__52_969" = alloca %Int256, align 8 + %"$$res__52_970" = load %Int256, %Int256* %"$res__52", align 8 + store %Int256 %"$$res__52_970", %Int256* %"$eq_$res__52_969", align 8 + %"$eq_call_971" = call %TName_Bool* @_eq_Int256(i8* %"$execptr_load_966", %Int256* %"$eq_$res_51_967", %Int256* %"$eq_$res__52_969"), !dbg !206 + store %TName_Bool* %"$eq_call_971", %TName_Bool** %"$test__53", align 8, !dbg !206 + %"$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_964" + call void @_out_of_gas() + br label %"$have_gas_976" + +"$have_gas_976": ; preds = %"$out_of_gas_975", %"$have_gas_964" + %"$consume_977" = sub i64 %"$gasrem_973", 1 + store i64 %"$consume_977", i64* @_gasrem, align 8 %"$BoolUtils.andb_77" = alloca { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, align 8 - %"$BoolUtils.andb_976" = 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_977" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_976", 0 - %"$BoolUtils.andb_envptr_978" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_976", 1 - %"$$test_48_979" = load %TName_Bool*, %TName_Bool** %"$test_48", align 8 - %"$BoolUtils.andb_call_980" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_977"(i8* %"$BoolUtils.andb_envptr_978", %TName_Bool* %"$$test_48_979"), !dbg !76 - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_980", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_77", align 8, !dbg !76 + %"$BoolUtils.andb_978" = 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_979" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_978", 0 + %"$BoolUtils.andb_envptr_980" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_978", 1 + %"$$test_48_981" = load %TName_Bool*, %TName_Bool** %"$test_48", align 8 + %"$BoolUtils.andb_call_982" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_979"(i8* %"$BoolUtils.andb_envptr_980", %TName_Bool* %"$$test_48_981"), !dbg !207 + store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_982", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_77", align 8, !dbg !207 %"$BoolUtils.andb_78" = alloca %TName_Bool*, align 8 - %"$$BoolUtils.andb_77_981" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_77", align 8 - %"$$BoolUtils.andb_77_fptr_982" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_77_981", 0 - %"$$BoolUtils.andb_77_envptr_983" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_77_981", 1 - %"$$test__53_984" = load %TName_Bool*, %TName_Bool** %"$test__53", align 8 - %"$$BoolUtils.andb_77_call_985" = call %TName_Bool* %"$$BoolUtils.andb_77_fptr_982"(i8* %"$$BoolUtils.andb_77_envptr_983", %TName_Bool* %"$$test__53_984"), !dbg !76 - store %TName_Bool* %"$$BoolUtils.andb_77_call_985", %TName_Bool** %"$BoolUtils.andb_78", align 8, !dbg !76 - %"$$BoolUtils.andb_78_986" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_78", align 8 - store %TName_Bool* %"$$BoolUtils.andb_78_986", %TName_Bool** %"$test_54", align 8, !dbg !76 - %"$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_974" - call void @_out_of_gas() - br label %"$have_gas_990" - -"$have_gas_990": ; preds = %"$out_of_gas_989", %"$have_gas_974" - %"$consume_991" = sub i64 %"$gasrem_987", 1 - store i64 %"$consume_991", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$BoolUtils.andb_78", metadata !208, metadata !DIExpression()), !dbg !207 + %"$$BoolUtils.andb_77_983" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_77", align 8 + %"$$BoolUtils.andb_77_fptr_984" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_77_983", 0 + %"$$BoolUtils.andb_77_envptr_985" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_77_983", 1 + %"$$test__53_986" = load %TName_Bool*, %TName_Bool** %"$test__53", align 8 + %"$$BoolUtils.andb_77_call_987" = call %TName_Bool* %"$$BoolUtils.andb_77_fptr_984"(i8* %"$$BoolUtils.andb_77_envptr_985", %TName_Bool* %"$$test__53_986"), !dbg !207 + store %TName_Bool* %"$$BoolUtils.andb_77_call_987", %TName_Bool** %"$BoolUtils.andb_78", align 8, !dbg !207 + %"$$BoolUtils.andb_78_988" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_78", align 8 + store %TName_Bool* %"$$BoolUtils.andb_78_988", %TName_Bool** %"$test_54", align 8, !dbg !207 + %"$gasrem_989" = load i64, i64* @_gasrem, align 8 + %"$gascmp_990" = icmp ugt i64 1, %"$gasrem_989" + br i1 %"$gascmp_990", label %"$out_of_gas_991", label %"$have_gas_992" + +"$out_of_gas_991": ; preds = %"$have_gas_976" + call void @_out_of_gas() + br label %"$have_gas_992" + +"$have_gas_992": ; preds = %"$out_of_gas_991", %"$have_gas_976" + %"$consume_993" = sub i64 %"$gasrem_989", 1 + store i64 %"$consume_993", i64* @_gasrem, align 8 %"$arg1_55" = alloca %Int256, align 8 - %"$gasrem_992" = load i64, i64* @_gasrem, align 8 - %"$gascmp_993" = icmp ugt i64 1, %"$gasrem_992" - br i1 %"$gascmp_993", label %"$out_of_gas_994", label %"$have_gas_995" + call void @llvm.dbg.declare(metadata %Int256* %"$arg1_55", metadata !209, metadata !DIExpression()), !dbg !210 + %"$gasrem_994" = load i64, i64* @_gasrem, align 8 + %"$gascmp_995" = icmp ugt i64 1, %"$gasrem_994" + br i1 %"$gascmp_995", label %"$out_of_gas_996", label %"$have_gas_997" -"$out_of_gas_994": ; preds = %"$have_gas_990" +"$out_of_gas_996": ; preds = %"$have_gas_992" call void @_out_of_gas() - br label %"$have_gas_995" + br label %"$have_gas_997" -"$have_gas_995": ; preds = %"$out_of_gas_994", %"$have_gas_990" - %"$consume_996" = sub i64 %"$gasrem_992", 1 - store i64 %"$consume_996", i64* @_gasrem, align 8 - store %Int256 zeroinitializer, %Int256* %"$arg1_55", align 8, !dbg !77 - %"$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" +"$have_gas_997": ; preds = %"$out_of_gas_996", %"$have_gas_992" + %"$consume_998" = sub i64 %"$gasrem_994", 1 + store i64 %"$consume_998", i64* @_gasrem, align 8 + store %Int256 zeroinitializer, %Int256* %"$arg1_55", align 8, !dbg !211 + %"$gasrem_999" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1000" = icmp ugt i64 1, %"$gasrem_999" + br i1 %"$gascmp_1000", label %"$out_of_gas_1001", label %"$have_gas_1002" -"$out_of_gas_999": ; preds = %"$have_gas_995" +"$out_of_gas_1001": ; preds = %"$have_gas_997" call void @_out_of_gas() - br label %"$have_gas_1000" + br label %"$have_gas_1002" -"$have_gas_1000": ; preds = %"$out_of_gas_999", %"$have_gas_995" - %"$consume_1001" = sub i64 %"$gasrem_997", 1 - store i64 %"$consume_1001", i64* @_gasrem, align 8 +"$have_gas_1002": ; preds = %"$out_of_gas_1001", %"$have_gas_997" + %"$consume_1003" = sub i64 %"$gasrem_999", 1 + store i64 %"$consume_1003", i64* @_gasrem, align 8 %"$arg2_56" = alloca %Int256, 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" + call void @llvm.dbg.declare(metadata %Int256* %"$arg2_56", metadata !212, metadata !DIExpression()), !dbg !213 + %"$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_1004": ; preds = %"$have_gas_1000" +"$out_of_gas_1006": ; preds = %"$have_gas_1002" call void @_out_of_gas() - br label %"$have_gas_1005" + br label %"$have_gas_1007" -"$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 - store %Int256 { i256 -1843 }, %Int256* %"$arg2_56", align 8, !dbg !78 - %"$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" +"$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 + store %Int256 { i256 -1843 }, %Int256* %"$arg2_56", align 8, !dbg !214 + %"$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_1009": ; preds = %"$have_gas_1005" +"$out_of_gas_1011": ; preds = %"$have_gas_1007" call void @_out_of_gas() - br label %"$have_gas_1010" + br label %"$have_gas_1012" -"$have_gas_1010": ; preds = %"$out_of_gas_1009", %"$have_gas_1005" - %"$consume_1011" = sub i64 %"$gasrem_1007", 1 - store i64 %"$consume_1011", i64* @_gasrem, align 8 +"$have_gas_1012": ; preds = %"$out_of_gas_1011", %"$have_gas_1007" + %"$consume_1013" = sub i64 %"$gasrem_1009", 1 + store i64 %"$consume_1013", i64* @_gasrem, align 8 %"$test_60" = alloca %TName_Bool*, 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" + call void @llvm.dbg.declare(metadata %TName_Bool** %"$test_60", metadata !215, metadata !DIExpression()), !dbg !216 + %"$gasrem_1014" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1015" = icmp ugt i64 1, %"$gasrem_1014" + br i1 %"$gascmp_1015", label %"$out_of_gas_1016", label %"$have_gas_1017" -"$out_of_gas_1014": ; preds = %"$have_gas_1010" +"$out_of_gas_1016": ; preds = %"$have_gas_1012" call void @_out_of_gas() - br label %"$have_gas_1015" + br label %"$have_gas_1017" -"$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 +"$have_gas_1017": ; preds = %"$out_of_gas_1016", %"$have_gas_1012" + %"$consume_1018" = sub i64 %"$gasrem_1014", 1 + store i64 %"$consume_1018", i64* @_gasrem, align 8 %"$res_57" = alloca %Int256, align 8 - %"$gasrem_1018" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1019" = icmp ugt i64 80, %"$gasrem_1018" - br i1 %"$gascmp_1019", label %"$out_of_gas_1020", label %"$have_gas_1021" - -"$out_of_gas_1020": ; preds = %"$have_gas_1015" - call void @_out_of_gas() - br label %"$have_gas_1021" - -"$have_gas_1021": ; preds = %"$out_of_gas_1020", %"$have_gas_1015" - %"$consume_1022" = sub i64 %"$gasrem_1018", 80 - store i64 %"$consume_1022", i64* @_gasrem, align 8 - %"$execptr_load_1023" = load i8*, i8** @_execptr, align 8 - %"$div_$arg1_55_1024" = alloca %Int256, align 8 - %"$$arg1_55_1025" = load %Int256, %Int256* %"$arg1_55", align 8 - store %Int256 %"$$arg1_55_1025", %Int256* %"$div_$arg1_55_1024", align 8 - %"$div_$arg2_56_1026" = alloca %Int256, align 8 - %"$$arg2_56_1027" = load %Int256, %Int256* %"$arg2_56", align 8 - store %Int256 %"$$arg2_56_1027", %Int256* %"$div_$arg2_56_1026", align 8 - %"$div_call_1028" = call %Int256* @_div_Int256(i8* %"$execptr_load_1023", %Int256* %"$div_$arg1_55_1024", %Int256* %"$div_$arg2_56_1026"), !dbg !79 - %"$div_1030" = load %Int256, %Int256* %"$div_call_1028", align 8 - store %Int256 %"$div_1030", %Int256* %"$res_57", align 8, !dbg !79 - %"$gasrem_1031" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1032" = icmp ugt i64 1, %"$gasrem_1031" - br i1 %"$gascmp_1032", label %"$out_of_gas_1033", label %"$have_gas_1034" - -"$out_of_gas_1033": ; preds = %"$have_gas_1021" - call void @_out_of_gas() - br label %"$have_gas_1034" - -"$have_gas_1034": ; preds = %"$out_of_gas_1033", %"$have_gas_1021" - %"$consume_1035" = sub i64 %"$gasrem_1031", 1 - store i64 %"$consume_1035", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %Int256* %"$res_57", metadata !217, metadata !DIExpression()), !dbg !218 + %"$gasrem_1020" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1021" = icmp ugt i64 80, %"$gasrem_1020" + br i1 %"$gascmp_1021", label %"$out_of_gas_1022", label %"$have_gas_1023" + +"$out_of_gas_1022": ; preds = %"$have_gas_1017" + call void @_out_of_gas() + br label %"$have_gas_1023" + +"$have_gas_1023": ; preds = %"$out_of_gas_1022", %"$have_gas_1017" + %"$consume_1024" = sub i64 %"$gasrem_1020", 80 + store i64 %"$consume_1024", i64* @_gasrem, align 8 + %"$execptr_load_1025" = load i8*, i8** @_execptr, align 8 + %"$div_$arg1_55_1026" = alloca %Int256, align 8 + %"$$arg1_55_1027" = load %Int256, %Int256* %"$arg1_55", align 8 + store %Int256 %"$$arg1_55_1027", %Int256* %"$div_$arg1_55_1026", align 8 + %"$div_$arg2_56_1028" = alloca %Int256, align 8 + %"$$arg2_56_1029" = load %Int256, %Int256* %"$arg2_56", align 8 + store %Int256 %"$$arg2_56_1029", %Int256* %"$div_$arg2_56_1028", align 8 + %"$div_call_1030" = call %Int256* @_div_Int256(i8* %"$execptr_load_1025", %Int256* %"$div_$arg1_55_1026", %Int256* %"$div_$arg2_56_1028"), !dbg !219 + %"$div_1032" = load %Int256, %Int256* %"$div_call_1030", align 8 + store %Int256 %"$div_1032", %Int256* %"$res_57", align 8, !dbg !219 + %"$gasrem_1033" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1034" = icmp ugt i64 1, %"$gasrem_1033" + br i1 %"$gascmp_1034", label %"$out_of_gas_1035", label %"$have_gas_1036" + +"$out_of_gas_1035": ; preds = %"$have_gas_1023" + call void @_out_of_gas() + br label %"$have_gas_1036" + +"$have_gas_1036": ; preds = %"$out_of_gas_1035", %"$have_gas_1023" + %"$consume_1037" = sub i64 %"$gasrem_1033", 1 + store i64 %"$consume_1037", i64* @_gasrem, align 8 %"$res__58" = alloca %Int256, 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" + call void @llvm.dbg.declare(metadata %Int256* %"$res__58", metadata !220, metadata !DIExpression()), !dbg !221 + %"$gasrem_1038" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1039" = icmp ugt i64 1, %"$gasrem_1038" + br i1 %"$gascmp_1039", label %"$out_of_gas_1040", label %"$have_gas_1041" -"$out_of_gas_1038": ; preds = %"$have_gas_1034" +"$out_of_gas_1040": ; preds = %"$have_gas_1036" call void @_out_of_gas() - br label %"$have_gas_1039" + br label %"$have_gas_1041" -"$have_gas_1039": ; preds = %"$out_of_gas_1038", %"$have_gas_1034" - %"$consume_1040" = sub i64 %"$gasrem_1036", 1 - store i64 %"$consume_1040", i64* @_gasrem, align 8 - store %Int256 zeroinitializer, %Int256* %"$res__58", align 8, !dbg !80 - %"$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" +"$have_gas_1041": ; preds = %"$out_of_gas_1040", %"$have_gas_1036" + %"$consume_1042" = sub i64 %"$gasrem_1038", 1 + store i64 %"$consume_1042", i64* @_gasrem, align 8 + store %Int256 zeroinitializer, %Int256* %"$res__58", align 8, !dbg !222 + %"$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_1043": ; preds = %"$have_gas_1039" +"$out_of_gas_1045": ; preds = %"$have_gas_1041" call void @_out_of_gas() - br label %"$have_gas_1044" + br label %"$have_gas_1046" -"$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 +"$have_gas_1046": ; preds = %"$out_of_gas_1045", %"$have_gas_1041" + %"$consume_1047" = sub i64 %"$gasrem_1043", 1 + store i64 %"$consume_1047", i64* @_gasrem, align 8 %"$test__59" = alloca %TName_Bool*, align 8 - %"$gasrem_1047" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1048" = icmp ugt i64 16, %"$gasrem_1047" - br i1 %"$gascmp_1048", label %"$out_of_gas_1049", label %"$have_gas_1050" - -"$out_of_gas_1049": ; preds = %"$have_gas_1044" - call void @_out_of_gas() - br label %"$have_gas_1050" - -"$have_gas_1050": ; preds = %"$out_of_gas_1049", %"$have_gas_1044" - %"$consume_1051" = sub i64 %"$gasrem_1047", 16 - store i64 %"$consume_1051", i64* @_gasrem, align 8 - %"$execptr_load_1052" = load i8*, i8** @_execptr, align 8 - %"$eq_$res_57_1053" = alloca %Int256, align 8 - %"$$res_57_1054" = load %Int256, %Int256* %"$res_57", align 8 - store %Int256 %"$$res_57_1054", %Int256* %"$eq_$res_57_1053", align 8 - %"$eq_$res__58_1055" = alloca %Int256, align 8 - %"$$res__58_1056" = load %Int256, %Int256* %"$res__58", align 8 - store %Int256 %"$$res__58_1056", %Int256* %"$eq_$res__58_1055", align 8 - %"$eq_call_1057" = call %TName_Bool* @_eq_Int256(i8* %"$execptr_load_1052", %Int256* %"$eq_$res_57_1053", %Int256* %"$eq_$res__58_1055"), !dbg !81 - store %TName_Bool* %"$eq_call_1057", %TName_Bool** %"$test__59", align 8, !dbg !81 - %"$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_1050" - call void @_out_of_gas() - br label %"$have_gas_1062" - -"$have_gas_1062": ; preds = %"$out_of_gas_1061", %"$have_gas_1050" - %"$consume_1063" = sub i64 %"$gasrem_1059", 1 - store i64 %"$consume_1063", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$test__59", metadata !223, metadata !DIExpression()), !dbg !224 + %"$gasrem_1049" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1050" = icmp ugt i64 16, %"$gasrem_1049" + br i1 %"$gascmp_1050", label %"$out_of_gas_1051", label %"$have_gas_1052" + +"$out_of_gas_1051": ; preds = %"$have_gas_1046" + call void @_out_of_gas() + br label %"$have_gas_1052" + +"$have_gas_1052": ; preds = %"$out_of_gas_1051", %"$have_gas_1046" + %"$consume_1053" = sub i64 %"$gasrem_1049", 16 + store i64 %"$consume_1053", i64* @_gasrem, align 8 + %"$execptr_load_1054" = load i8*, i8** @_execptr, align 8 + %"$eq_$res_57_1055" = alloca %Int256, align 8 + %"$$res_57_1056" = load %Int256, %Int256* %"$res_57", align 8 + store %Int256 %"$$res_57_1056", %Int256* %"$eq_$res_57_1055", align 8 + %"$eq_$res__58_1057" = alloca %Int256, align 8 + %"$$res__58_1058" = load %Int256, %Int256* %"$res__58", align 8 + store %Int256 %"$$res__58_1058", %Int256* %"$eq_$res__58_1057", align 8 + %"$eq_call_1059" = call %TName_Bool* @_eq_Int256(i8* %"$execptr_load_1054", %Int256* %"$eq_$res_57_1055", %Int256* %"$eq_$res__58_1057"), !dbg !225 + store %TName_Bool* %"$eq_call_1059", %TName_Bool** %"$test__59", align 8, !dbg !225 + %"$gasrem_1061" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1062" = icmp ugt i64 1, %"$gasrem_1061" + br i1 %"$gascmp_1062", label %"$out_of_gas_1063", label %"$have_gas_1064" + +"$out_of_gas_1063": ; preds = %"$have_gas_1052" + call void @_out_of_gas() + br label %"$have_gas_1064" + +"$have_gas_1064": ; preds = %"$out_of_gas_1063", %"$have_gas_1052" + %"$consume_1065" = sub i64 %"$gasrem_1061", 1 + store i64 %"$consume_1065", i64* @_gasrem, align 8 %"$BoolUtils.andb_79" = alloca { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, align 8 - %"$BoolUtils.andb_1064" = 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_1065" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_1064", 0 - %"$BoolUtils.andb_envptr_1066" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_1064", 1 - %"$$test_54_1067" = load %TName_Bool*, %TName_Bool** %"$test_54", align 8 - %"$BoolUtils.andb_call_1068" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_1065"(i8* %"$BoolUtils.andb_envptr_1066", %TName_Bool* %"$$test_54_1067"), !dbg !82 - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_1068", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_79", align 8, !dbg !82 + %"$BoolUtils.andb_1066" = 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_1067" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_1066", 0 + %"$BoolUtils.andb_envptr_1068" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_1066", 1 + %"$$test_54_1069" = load %TName_Bool*, %TName_Bool** %"$test_54", align 8 + %"$BoolUtils.andb_call_1070" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_1067"(i8* %"$BoolUtils.andb_envptr_1068", %TName_Bool* %"$$test_54_1069"), !dbg !226 + store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_1070", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_79", align 8, !dbg !226 %"$BoolUtils.andb_80" = alloca %TName_Bool*, align 8 - %"$$BoolUtils.andb_79_1069" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_79", align 8 - %"$$BoolUtils.andb_79_fptr_1070" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_79_1069", 0 - %"$$BoolUtils.andb_79_envptr_1071" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_79_1069", 1 - %"$$test__59_1072" = load %TName_Bool*, %TName_Bool** %"$test__59", align 8 - %"$$BoolUtils.andb_79_call_1073" = call %TName_Bool* %"$$BoolUtils.andb_79_fptr_1070"(i8* %"$$BoolUtils.andb_79_envptr_1071", %TName_Bool* %"$$test__59_1072"), !dbg !82 - store %TName_Bool* %"$$BoolUtils.andb_79_call_1073", %TName_Bool** %"$BoolUtils.andb_80", align 8, !dbg !82 - %"$$BoolUtils.andb_80_1074" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_80", align 8 - store %TName_Bool* %"$$BoolUtils.andb_80_1074", %TName_Bool** %"$test_60", align 8, !dbg !82 - %"$gasrem_1075" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1076" = icmp ugt i64 1, %"$gasrem_1075" - br i1 %"$gascmp_1076", label %"$out_of_gas_1077", label %"$have_gas_1078" - -"$out_of_gas_1077": ; preds = %"$have_gas_1062" - call void @_out_of_gas() - br label %"$have_gas_1078" - -"$have_gas_1078": ; preds = %"$out_of_gas_1077", %"$have_gas_1062" - %"$consume_1079" = sub i64 %"$gasrem_1075", 1 - store i64 %"$consume_1079", i64* @_gasrem, align 8 - %"$$test_60_1080" = load %TName_Bool*, %TName_Bool** %"$test_60", align 8 - store %TName_Bool* %"$$test_60_1080", %TName_Bool** %"$expr_85", align 8, !dbg !83 - %"$$expr_85_1081" = load %TName_Bool*, %TName_Bool** %"$expr_85", align 8 - ret %TName_Bool* %"$$expr_85_1081" + call void @llvm.dbg.declare(metadata %TName_Bool** %"$BoolUtils.andb_80", metadata !227, metadata !DIExpression()), !dbg !226 + %"$$BoolUtils.andb_79_1071" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_79", align 8 + %"$$BoolUtils.andb_79_fptr_1072" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_79_1071", 0 + %"$$BoolUtils.andb_79_envptr_1073" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_79_1071", 1 + %"$$test__59_1074" = load %TName_Bool*, %TName_Bool** %"$test__59", align 8 + %"$$BoolUtils.andb_79_call_1075" = call %TName_Bool* %"$$BoolUtils.andb_79_fptr_1072"(i8* %"$$BoolUtils.andb_79_envptr_1073", %TName_Bool* %"$$test__59_1074"), !dbg !226 + store %TName_Bool* %"$$BoolUtils.andb_79_call_1075", %TName_Bool** %"$BoolUtils.andb_80", align 8, !dbg !226 + %"$$BoolUtils.andb_80_1076" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_80", align 8 + store %TName_Bool* %"$$BoolUtils.andb_80_1076", %TName_Bool** %"$test_60", align 8, !dbg !226 + %"$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_1064" + call void @_out_of_gas() + br label %"$have_gas_1080" + +"$have_gas_1080": ; preds = %"$out_of_gas_1079", %"$have_gas_1064" + %"$consume_1081" = sub i64 %"$gasrem_1077", 1 + store i64 %"$consume_1081", i64* @_gasrem, align 8 + %"$$test_60_1082" = load %TName_Bool*, %TName_Bool** %"$test_60", align 8 + store %TName_Bool* %"$$test_60_1082", %TName_Bool** %"$expr_85", align 8, !dbg !228 + %"$$expr_85_1083" = load %TName_Bool*, %TName_Bool** %"$expr_85", align 8 + ret %TName_Bool* %"$$expr_85_1083" } declare %Uint32 @_div_Uint32(%Uint32, %Uint32) @@ -2172,97 +2254,244 @@ declare void @_print_scilla_val(i8*, %_TyDescrTy_Typ*, i8*) define void @scilla_main() { entry: - %"$exprval_1082" = call %TName_Bool* @_scilla_expr_fun(i8* null) - %"$memvoidcast_1083" = bitcast %TName_Bool* %"$exprval_1082" to i8* - %"$execptr_load_1084" = load i8*, i8** @_execptr, align 8 - call void @_print_scilla_val(i8* %"$execptr_load_1084", %_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_120", i8* %"$memvoidcast_1083") + %"$exprval_1084" = call %TName_Bool* @_scilla_expr_fun(i8* null) + %"$memvoidcast_1085" = bitcast %TName_Bool* %"$exprval_1084" to i8* + %"$execptr_load_1086" = load i8*, i8** @_execptr, align 8 + call void @_print_scilla_val(i8* %"$execptr_load_1086", %_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_120", i8* %"$memvoidcast_1085") ret void } +attributes #0 = { nocallback nofree nosync nounwind readnone speculatable willreturn } + !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) +!1 = distinct !DICompileUnit(language: DW_LANG_C89, file: !2, producer: "Scilla Compiler", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false) !2 = !DIFile(filename: "builtin_div_rem.scilexp", directory: "codegen/expr") -!3 = !{} -!4 = distinct !DISubprogram(name: "$fundef_83", linkageName: "$fundef_83", scope: !5, file: !5, line: 8, type: !6, scopeLine: 8, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!5 = !DIFile(filename: "BoolUtils.scillib", directory: "../src/stdlib") -!6 = !DISubroutineType(types: !7) -!7 = !{!8} -!8 = !DIBasicType(tag: DW_TAG_unspecified_type, name: "void") -!9 = !DILocation(line: 8, column: 5, scope: !4) -!10 = !DILocation(line: 9, column: 16, scope: !11) -!11 = distinct !DILexicalBlock(scope: !12, file: !5, line: 9, column: 7) -!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_81", linkageName: "$fundef_81", 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: 0, scope: !17) -!20 = !DILocation(line: 7, column: 3, scope: !17) -!21 = distinct !DISubprogram(name: "_scilla_expr_fun", linkageName: "_scilla_expr_fun", scope: !2, file: !2, line: 1, type: !6, scopeLine: 1, spFlags: DISPFlagDefinition, unit: !1, retainedNodes: !3) -!22 = !DILocation(line: 2, column: 12, scope: !21) -!23 = !DILocation(line: 4, column: 12, scope: !21) -!24 = !DILocation(line: 5, column: 12, scope: !21) -!25 = !DILocation(line: 7, column: 13, scope: !21) -!26 = !DILocation(line: 8, column: 14, scope: !21) -!27 = !DILocation(line: 9, column: 15, scope: !21) -!28 = !DILocation(line: 10, column: 3, scope: !21) -!29 = !DILocation(line: 13, column: 12, scope: !21) -!30 = !DILocation(line: 14, column: 12, scope: !21) -!31 = !DILocation(line: 16, column: 13, scope: !21) -!32 = !DILocation(line: 17, column: 14, scope: !21) -!33 = !DILocation(line: 18, column: 15, scope: !21) -!34 = !DILocation(line: 19, column: 3, scope: !21) -!35 = !DILocation(line: 22, column: 12, scope: !21) -!36 = !DILocation(line: 23, column: 12, scope: !21) -!37 = !DILocation(line: 25, column: 13, scope: !21) -!38 = !DILocation(line: 26, column: 14, scope: !21) -!39 = !DILocation(line: 27, column: 15, scope: !21) -!40 = !DILocation(line: 28, column: 3, scope: !21) -!41 = !DILocation(line: 31, column: 12, scope: !21) -!42 = !DILocation(line: 32, column: 12, scope: !21) -!43 = !DILocation(line: 34, column: 13, scope: !21) -!44 = !DILocation(line: 35, column: 14, scope: !21) -!45 = !DILocation(line: 36, column: 15, scope: !21) -!46 = !DILocation(line: 37, column: 3, scope: !21) -!47 = !DILocation(line: 40, column: 12, scope: !21) -!48 = !DILocation(line: 41, column: 12, scope: !21) -!49 = !DILocation(line: 43, column: 13, scope: !21) -!50 = !DILocation(line: 44, column: 14, scope: !21) -!51 = !DILocation(line: 45, column: 15, scope: !21) -!52 = !DILocation(line: 46, column: 3, scope: !21) -!53 = !DILocation(line: 49, column: 12, scope: !21) -!54 = !DILocation(line: 50, column: 12, scope: !21) -!55 = !DILocation(line: 52, column: 13, scope: !21) -!56 = !DILocation(line: 53, column: 14, scope: !21) -!57 = !DILocation(line: 54, column: 15, scope: !21) -!58 = !DILocation(line: 55, column: 3, scope: !21) -!59 = !DILocation(line: 58, column: 12, scope: !21) -!60 = !DILocation(line: 59, column: 12, scope: !21) -!61 = !DILocation(line: 61, column: 13, scope: !21) -!62 = !DILocation(line: 62, column: 14, scope: !21) -!63 = !DILocation(line: 63, column: 15, scope: !21) -!64 = !DILocation(line: 64, column: 3, scope: !21) -!65 = !DILocation(line: 67, column: 12, scope: !21) -!66 = !DILocation(line: 68, column: 12, scope: !21) -!67 = !DILocation(line: 70, column: 13, scope: !21) -!68 = !DILocation(line: 71, column: 14, scope: !21) -!69 = !DILocation(line: 72, column: 15, scope: !21) -!70 = !DILocation(line: 73, column: 3, scope: !21) -!71 = !DILocation(line: 76, column: 12, scope: !21) -!72 = !DILocation(line: 77, column: 12, scope: !21) -!73 = !DILocation(line: 79, column: 13, scope: !21) -!74 = !DILocation(line: 80, column: 14, scope: !21) -!75 = !DILocation(line: 81, column: 15, scope: !21) -!76 = !DILocation(line: 82, column: 3, scope: !21) -!77 = !DILocation(line: 85, column: 12, scope: !21) -!78 = !DILocation(line: 86, column: 12, scope: !21) -!79 = !DILocation(line: 88, column: 13, scope: !21) -!80 = !DILocation(line: 89, column: 14, scope: !21) -!81 = !DILocation(line: 90, column: 15, scope: !21) -!82 = !DILocation(line: 91, column: 3, scope: !21) -!83 = !DILocation(line: 94, column: 1, scope: !21) +!3 = distinct !DISubprogram(name: "$fundef_83", linkageName: "$fundef_83", scope: !4, file: !4, line: 8, type: !5, scopeLine: 8, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!4 = !DIFile(filename: "BoolUtils.scillib", directory: "../src/stdlib") +!5 = !DISubroutineType(types: !6) +!6 = !{!7} +!7 = !DIBasicType(tag: DW_TAG_unspecified_type, name: "void") +!8 = !{} +!9 = !DILocalVariable(name: "c", scope: !3, file: !4, line: 7, type: !10) +!10 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "Bool", baseType: !11, size: 8, align: 8, dwarfAddressSpace: 0) +!11 = !DIBasicType(name: "Bool", size: 8) +!12 = !DILocation(line: 7, column: 8, scope: !3) +!13 = !DILocalVariable(name: "$retval_84", scope: !3, file: !4, line: 8, type: !10) +!14 = !DILocation(line: 8, column: 5, scope: !3) +!15 = !DILocation(line: 9, column: 16, scope: !16) +!16 = distinct !DILexicalBlock(scope: !17, file: !4, line: 9, column: 7) +!17 = distinct !DILexicalBlock(scope: !3, file: !4, line: 8, column: 5) +!18 = !DILocation(line: 10, column: 16, scope: !19) +!19 = distinct !DILexicalBlock(scope: !17, file: !4, line: 10, column: 7) +!20 = distinct !DISubprogram(name: "$fundef_81", linkageName: "$fundef_81", scope: !4, file: !4, line: 7, type: !5, scopeLine: 7, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!21 = !DILocalVariable(name: "b", scope: !20, file: !4, line: 6, type: !10) +!22 = !DILocation(line: 6, column: 8, scope: !20) +!23 = !DILocation(line: 8, column: 5, scope: !20) +!24 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !25, file: !25, type: !5, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!25 = !DIFile(filename: ".", directory: ".") +!26 = !DILocation(line: 0, scope: !24) +!27 = !DILocation(line: 7, column: 3, scope: !24) +!28 = distinct !DISubprogram(name: "_scilla_expr_fun", linkageName: "_scilla_expr_fun", scope: !2, file: !2, line: 1, type: !5, scopeLine: 1, spFlags: DISPFlagDefinition, unit: !1, retainedNodes: !8) +!29 = !DILocalVariable(name: "$expr_85", scope: !28, file: !2, line: 1, type: !10) +!30 = !DILocation(line: 1, column: 13, scope: !28) +!31 = !DILocalVariable(name: "test", scope: !28, file: !2, line: 2, type: !10) +!32 = !DILocation(line: 2, column: 5, scope: !28) +!33 = !DILocation(line: 2, column: 12, scope: !28) +!34 = !DILocalVariable(name: "arg1", scope: !28, file: !2, line: 4, type: !35) +!35 = !DIBasicType(name: "Uint32", size: 4) +!36 = !DILocation(line: 4, column: 5, scope: !28) +!37 = !DILocation(line: 4, column: 12, scope: !28) +!38 = !DILocalVariable(name: "arg2", scope: !28, file: !2, line: 5, type: !35) +!39 = !DILocation(line: 5, column: 5, scope: !28) +!40 = !DILocation(line: 5, column: 12, scope: !28) +!41 = !DILocalVariable(name: "$test_6", scope: !28, file: !2, line: 6, type: !10) +!42 = !DILocation(line: 6, column: 5, scope: !28) +!43 = !DILocalVariable(name: "res", scope: !28, file: !2, line: 7, type: !35) +!44 = !DILocation(line: 7, column: 7, scope: !28) +!45 = !DILocation(line: 7, column: 13, scope: !28) +!46 = !DILocalVariable(name: "res_", scope: !28, file: !2, line: 8, type: !35) +!47 = !DILocation(line: 8, column: 7, scope: !28) +!48 = !DILocation(line: 8, column: 14, scope: !28) +!49 = !DILocalVariable(name: "test_", scope: !28, file: !2, line: 9, type: !10) +!50 = !DILocation(line: 9, column: 7, scope: !28) +!51 = !DILocation(line: 9, column: 15, scope: !28) +!52 = !DILocation(line: 10, column: 3, scope: !28) +!53 = !DILocalVariable(name: "$BoolUtils.andb_62", scope: !28, file: !2, line: 10, type: !10) +!54 = !DILocalVariable(name: "$arg1_7", scope: !28, file: !2, line: 13, type: !35) +!55 = !DILocation(line: 13, column: 5, scope: !28) +!56 = !DILocation(line: 13, column: 12, scope: !28) +!57 = !DILocalVariable(name: "$arg2_8", scope: !28, file: !2, line: 14, type: !35) +!58 = !DILocation(line: 14, column: 5, scope: !28) +!59 = !DILocation(line: 14, column: 12, scope: !28) +!60 = !DILocalVariable(name: "$test_12", scope: !28, file: !2, line: 15, type: !10) +!61 = !DILocation(line: 15, column: 5, scope: !28) +!62 = !DILocalVariable(name: "$res_9", scope: !28, file: !2, line: 16, type: !35) +!63 = !DILocation(line: 16, column: 7, scope: !28) +!64 = !DILocation(line: 16, column: 13, scope: !28) +!65 = !DILocalVariable(name: "$res__10", scope: !28, file: !2, line: 17, type: !35) +!66 = !DILocation(line: 17, column: 7, scope: !28) +!67 = !DILocation(line: 17, column: 14, scope: !28) +!68 = !DILocalVariable(name: "$test__11", scope: !28, file: !2, line: 18, type: !10) +!69 = !DILocation(line: 18, column: 7, scope: !28) +!70 = !DILocation(line: 18, column: 15, scope: !28) +!71 = !DILocation(line: 19, column: 3, scope: !28) +!72 = !DILocalVariable(name: "$BoolUtils.andb_64", scope: !28, file: !2, line: 19, type: !10) +!73 = !DILocalVariable(name: "$arg1_13", scope: !28, file: !2, line: 22, type: !35) +!74 = !DILocation(line: 22, column: 5, scope: !28) +!75 = !DILocation(line: 22, column: 12, scope: !28) +!76 = !DILocalVariable(name: "$arg2_14", scope: !28, file: !2, line: 23, type: !35) +!77 = !DILocation(line: 23, column: 5, scope: !28) +!78 = !DILocation(line: 23, column: 12, scope: !28) +!79 = !DILocalVariable(name: "$test_18", scope: !28, file: !2, line: 24, type: !10) +!80 = !DILocation(line: 24, column: 5, scope: !28) +!81 = !DILocalVariable(name: "$res_15", scope: !28, file: !2, line: 25, type: !35) +!82 = !DILocation(line: 25, column: 7, scope: !28) +!83 = !DILocation(line: 25, column: 13, scope: !28) +!84 = !DILocalVariable(name: "$res__16", scope: !28, file: !2, line: 26, type: !35) +!85 = !DILocation(line: 26, column: 7, scope: !28) +!86 = !DILocation(line: 26, column: 14, scope: !28) +!87 = !DILocalVariable(name: "$test__17", scope: !28, file: !2, line: 27, type: !10) +!88 = !DILocation(line: 27, column: 7, scope: !28) +!89 = !DILocation(line: 27, column: 15, scope: !28) +!90 = !DILocation(line: 28, column: 3, scope: !28) +!91 = !DILocalVariable(name: "$BoolUtils.andb_66", scope: !28, file: !2, line: 28, type: !10) +!92 = !DILocalVariable(name: "$arg1_19", scope: !28, file: !2, line: 31, type: !93) +!93 = !DIBasicType(name: "Int32", size: 4) +!94 = !DILocation(line: 31, column: 5, scope: !28) +!95 = !DILocation(line: 31, column: 12, scope: !28) +!96 = !DILocalVariable(name: "$arg2_20", scope: !28, file: !2, line: 32, type: !93) +!97 = !DILocation(line: 32, column: 5, scope: !28) +!98 = !DILocation(line: 32, column: 12, scope: !28) +!99 = !DILocalVariable(name: "$test_24", scope: !28, file: !2, line: 33, type: !10) +!100 = !DILocation(line: 33, column: 5, scope: !28) +!101 = !DILocalVariable(name: "$res_21", scope: !28, file: !2, line: 34, type: !93) +!102 = !DILocation(line: 34, column: 7, scope: !28) +!103 = !DILocation(line: 34, column: 13, scope: !28) +!104 = !DILocalVariable(name: "$res__22", scope: !28, file: !2, line: 35, type: !93) +!105 = !DILocation(line: 35, column: 7, scope: !28) +!106 = !DILocation(line: 35, column: 14, scope: !28) +!107 = !DILocalVariable(name: "$test__23", scope: !28, file: !2, line: 36, type: !10) +!108 = !DILocation(line: 36, column: 7, scope: !28) +!109 = !DILocation(line: 36, column: 15, scope: !28) +!110 = !DILocation(line: 37, column: 3, scope: !28) +!111 = !DILocalVariable(name: "$BoolUtils.andb_68", scope: !28, file: !2, line: 37, type: !10) +!112 = !DILocalVariable(name: "$arg1_25", scope: !28, file: !2, line: 40, type: !93) +!113 = !DILocation(line: 40, column: 5, scope: !28) +!114 = !DILocation(line: 40, column: 12, scope: !28) +!115 = !DILocalVariable(name: "$arg2_26", scope: !28, file: !2, line: 41, type: !93) +!116 = !DILocation(line: 41, column: 5, scope: !28) +!117 = !DILocation(line: 41, column: 12, scope: !28) +!118 = !DILocalVariable(name: "$test_30", scope: !28, file: !2, line: 42, type: !10) +!119 = !DILocation(line: 42, column: 5, scope: !28) +!120 = !DILocalVariable(name: "$res_27", scope: !28, file: !2, line: 43, type: !93) +!121 = !DILocation(line: 43, column: 7, scope: !28) +!122 = !DILocation(line: 43, column: 13, scope: !28) +!123 = !DILocalVariable(name: "$res__28", scope: !28, file: !2, line: 44, type: !93) +!124 = !DILocation(line: 44, column: 7, scope: !28) +!125 = !DILocation(line: 44, column: 14, scope: !28) +!126 = !DILocalVariable(name: "$test__29", scope: !28, file: !2, line: 45, type: !10) +!127 = !DILocation(line: 45, column: 7, scope: !28) +!128 = !DILocation(line: 45, column: 15, scope: !28) +!129 = !DILocation(line: 46, column: 3, scope: !28) +!130 = !DILocalVariable(name: "$BoolUtils.andb_70", scope: !28, file: !2, line: 46, type: !10) +!131 = !DILocalVariable(name: "$arg1_31", scope: !28, file: !2, line: 49, type: !132) +!132 = !DIBasicType(name: "Uint256", size: 32) +!133 = !DILocation(line: 49, column: 5, scope: !28) +!134 = !DILocation(line: 49, column: 12, scope: !28) +!135 = !DILocalVariable(name: "$arg2_32", scope: !28, file: !2, line: 50, type: !132) +!136 = !DILocation(line: 50, column: 5, scope: !28) +!137 = !DILocation(line: 50, column: 12, scope: !28) +!138 = !DILocalVariable(name: "$test_36", scope: !28, file: !2, line: 51, type: !10) +!139 = !DILocation(line: 51, column: 5, scope: !28) +!140 = !DILocalVariable(name: "$res_33", scope: !28, file: !2, line: 52, type: !132) +!141 = !DILocation(line: 52, column: 7, scope: !28) +!142 = !DILocation(line: 52, column: 13, scope: !28) +!143 = !DILocalVariable(name: "$res__34", scope: !28, file: !2, line: 53, type: !132) +!144 = !DILocation(line: 53, column: 7, scope: !28) +!145 = !DILocation(line: 53, column: 14, scope: !28) +!146 = !DILocalVariable(name: "$test__35", scope: !28, file: !2, line: 54, type: !10) +!147 = !DILocation(line: 54, column: 7, scope: !28) +!148 = !DILocation(line: 54, column: 15, scope: !28) +!149 = !DILocation(line: 55, column: 3, scope: !28) +!150 = !DILocalVariable(name: "$BoolUtils.andb_72", scope: !28, file: !2, line: 55, type: !10) +!151 = !DILocalVariable(name: "$arg1_37", scope: !28, file: !2, line: 58, type: !132) +!152 = !DILocation(line: 58, column: 5, scope: !28) +!153 = !DILocation(line: 58, column: 12, scope: !28) +!154 = !DILocalVariable(name: "$arg2_38", scope: !28, file: !2, line: 59, type: !132) +!155 = !DILocation(line: 59, column: 5, scope: !28) +!156 = !DILocation(line: 59, column: 12, scope: !28) +!157 = !DILocalVariable(name: "$test_42", scope: !28, file: !2, line: 60, type: !10) +!158 = !DILocation(line: 60, column: 5, scope: !28) +!159 = !DILocalVariable(name: "$res_39", scope: !28, file: !2, line: 61, type: !132) +!160 = !DILocation(line: 61, column: 7, scope: !28) +!161 = !DILocation(line: 61, column: 13, scope: !28) +!162 = !DILocalVariable(name: "$res__40", scope: !28, file: !2, line: 62, type: !132) +!163 = !DILocation(line: 62, column: 7, scope: !28) +!164 = !DILocation(line: 62, column: 14, scope: !28) +!165 = !DILocalVariable(name: "$test__41", scope: !28, file: !2, line: 63, type: !10) +!166 = !DILocation(line: 63, column: 7, scope: !28) +!167 = !DILocation(line: 63, column: 15, scope: !28) +!168 = !DILocation(line: 64, column: 3, scope: !28) +!169 = !DILocalVariable(name: "$BoolUtils.andb_74", scope: !28, file: !2, line: 64, type: !10) +!170 = !DILocalVariable(name: "$arg1_43", scope: !28, file: !2, line: 67, type: !132) +!171 = !DILocation(line: 67, column: 5, scope: !28) +!172 = !DILocation(line: 67, column: 12, scope: !28) +!173 = !DILocalVariable(name: "$arg2_44", scope: !28, file: !2, line: 68, type: !132) +!174 = !DILocation(line: 68, column: 5, scope: !28) +!175 = !DILocation(line: 68, column: 12, scope: !28) +!176 = !DILocalVariable(name: "$test_48", scope: !28, file: !2, line: 69, type: !10) +!177 = !DILocation(line: 69, column: 5, scope: !28) +!178 = !DILocalVariable(name: "$res_45", scope: !28, file: !2, line: 70, type: !132) +!179 = !DILocation(line: 70, column: 7, scope: !28) +!180 = !DILocation(line: 70, column: 13, scope: !28) +!181 = !DILocalVariable(name: "$res__46", scope: !28, file: !2, line: 71, type: !132) +!182 = !DILocation(line: 71, column: 7, scope: !28) +!183 = !DILocation(line: 71, column: 14, scope: !28) +!184 = !DILocalVariable(name: "$test__47", scope: !28, file: !2, line: 72, type: !10) +!185 = !DILocation(line: 72, column: 7, scope: !28) +!186 = !DILocation(line: 72, column: 15, scope: !28) +!187 = !DILocation(line: 73, column: 3, scope: !28) +!188 = !DILocalVariable(name: "$BoolUtils.andb_76", scope: !28, file: !2, line: 73, type: !10) +!189 = !DILocalVariable(name: "$arg1_49", scope: !28, file: !2, line: 76, type: !190) +!190 = !DIBasicType(name: "Int256", size: 32) +!191 = !DILocation(line: 76, column: 5, scope: !28) +!192 = !DILocation(line: 76, column: 12, scope: !28) +!193 = !DILocalVariable(name: "$arg2_50", scope: !28, file: !2, line: 77, type: !190) +!194 = !DILocation(line: 77, column: 5, scope: !28) +!195 = !DILocation(line: 77, column: 12, scope: !28) +!196 = !DILocalVariable(name: "$test_54", scope: !28, file: !2, line: 78, type: !10) +!197 = !DILocation(line: 78, column: 5, scope: !28) +!198 = !DILocalVariable(name: "$res_51", scope: !28, file: !2, line: 79, type: !190) +!199 = !DILocation(line: 79, column: 7, scope: !28) +!200 = !DILocation(line: 79, column: 13, scope: !28) +!201 = !DILocalVariable(name: "$res__52", scope: !28, file: !2, line: 80, type: !190) +!202 = !DILocation(line: 80, column: 7, scope: !28) +!203 = !DILocation(line: 80, column: 14, scope: !28) +!204 = !DILocalVariable(name: "$test__53", scope: !28, file: !2, line: 81, type: !10) +!205 = !DILocation(line: 81, column: 7, scope: !28) +!206 = !DILocation(line: 81, column: 15, scope: !28) +!207 = !DILocation(line: 82, column: 3, scope: !28) +!208 = !DILocalVariable(name: "$BoolUtils.andb_78", scope: !28, file: !2, line: 82, type: !10) +!209 = !DILocalVariable(name: "$arg1_55", scope: !28, file: !2, line: 85, type: !190) +!210 = !DILocation(line: 85, column: 5, scope: !28) +!211 = !DILocation(line: 85, column: 12, scope: !28) +!212 = !DILocalVariable(name: "$arg2_56", scope: !28, file: !2, line: 86, type: !190) +!213 = !DILocation(line: 86, column: 5, scope: !28) +!214 = !DILocation(line: 86, column: 12, scope: !28) +!215 = !DILocalVariable(name: "$test_60", scope: !28, file: !2, line: 87, type: !10) +!216 = !DILocation(line: 87, column: 5, scope: !28) +!217 = !DILocalVariable(name: "$res_57", scope: !28, file: !2, line: 88, type: !190) +!218 = !DILocation(line: 88, column: 7, scope: !28) +!219 = !DILocation(line: 88, column: 13, scope: !28) +!220 = !DILocalVariable(name: "$res__58", scope: !28, file: !2, line: 89, type: !190) +!221 = !DILocation(line: 89, column: 7, scope: !28) +!222 = !DILocation(line: 89, column: 14, scope: !28) +!223 = !DILocalVariable(name: "$test__59", scope: !28, file: !2, line: 90, type: !10) +!224 = !DILocation(line: 90, column: 7, scope: !28) +!225 = !DILocation(line: 90, column: 15, scope: !28) +!226 = !DILocation(line: 91, column: 3, scope: !28) +!227 = !DILocalVariable(name: "$BoolUtils.andb_80", scope: !28, file: !2, line: 91, type: !10) +!228 = !DILocation(line: 94, column: 1, scope: !28) diff --git a/testsuite/expr/builtin_div_rem.ll b/testsuite/expr/builtin_div_rem.ll index 3e11763c..c322da84 100644 --- a/testsuite/expr/builtin_div_rem.ll +++ b/testsuite/expr/builtin_div_rem.ll @@ -95,7 +95,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-pc-linux-gnu" +target triple = "x86_64-unknown-linux-gnu" %"$TyDescrTy_PrimTyp_86" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/testsuite/expr/builtin_ecdsa_verify_false.dbg.ll b/testsuite/expr/builtin_ecdsa_verify_false.dbg.ll index 7b203a8b..af153f7a 100644 --- a/testsuite/expr/builtin_ecdsa_verify_false.dbg.ll +++ b/testsuite/expr/builtin_ecdsa_verify_false.dbg.ll @@ -6,7 +6,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-pc-linux-gnu" +target triple = "x86_64-unknown-linux-gnu" %"$TyDescrTy_PrimTyp_7" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } @@ -87,7 +87,7 @@ target triple = "x86_64-pc-linux-gnu" @_transition_parameters = constant [0 x %"$TransDescr_168"] zeroinitializer @_transition_parameters_length = constant i32 0 -define void @_init_libs() !dbg !4 { +define void @_init_libs() !dbg !3 { entry: %"$gasrem_63" = load i64, i64* @_gasrem, align 8 %"$gascmp_64" = icmp ugt i64 5, %"$gasrem_63" @@ -169,6 +169,7 @@ declare void @_out_of_gas() define internal %TName_Bool* @_scilla_expr_fun(i8* %0) !dbg !10 { entry: %"$expr_6" = alloca %TName_Bool*, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$expr_6", metadata !11, metadata !DIExpression()), !dbg !14 %"$gasrem_93" = load i64, i64* @_gasrem, align 8 %"$gascmp_94" = icmp ugt i64 1, %"$gasrem_93" br i1 %"$gascmp_94", label %"$out_of_gas_95", label %"$have_gas_96" @@ -181,6 +182,7 @@ entry: %"$consume_97" = sub i64 %"$gasrem_93", 1 store i64 %"$consume_97", i64* @_gasrem, align 8 %pk = alloca [33 x i8], align 1 + call void @llvm.dbg.declare(metadata [33 x i8]* %pk, metadata !15, metadata !DIExpression()), !dbg !17 %"$gasrem_98" = load i64, i64* @_gasrem, align 8 %"$gascmp_99" = icmp ugt i64 1, %"$gasrem_98" br i1 %"$gascmp_99", label %"$out_of_gas_100", label %"$have_gas_101" @@ -192,7 +194,7 @@ entry: "$have_gas_101": ; preds = %"$out_of_gas_100", %"$have_gas_96" %"$consume_102" = sub i64 %"$gasrem_98", 1 store i64 %"$consume_102", i64* @_gasrem, align 8 - store [33 x i8] c"\03\01\08,\FE\D7\81$\A1X\92\DA\18\87\DA\FF\08Fi\E7\A2\ED'\11\9Eq\C2\0B\DA:.\00\DD", [33 x i8]* %pk, align 1, !dbg !11 + store [33 x i8] c"\03\01\08,\FE\D7\81$\A1X\92\DA\18\87\DA\FF\08Fi\E7\A2\ED'\11\9Eq\C2\0B\DA:.\00\DD", [33 x i8]* %pk, align 1, !dbg !14 %"$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" @@ -205,6 +207,7 @@ entry: %"$consume_107" = sub i64 %"$gasrem_103", 1 store i64 %"$consume_107", i64* @_gasrem, align 8 %msg_bs = alloca [32 x i8], align 1 + call void @llvm.dbg.declare(metadata [32 x i8]* %msg_bs, metadata !18, metadata !DIExpression()), !dbg !20 %"$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" @@ -216,7 +219,7 @@ entry: "$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 [32 x i8] c"\B1\0E-Rv\12\07;&\EE\CD\FDq~j2\0C\F4KJ\FA\C2\B0s-\9F\CB\E2\B7\FA\0C\F6", [32 x i8]* %msg_bs, align 1, !dbg !12 + store [32 x i8] c"\B1\0E-Rv\12\07;&\EE\CD\FDq~j2\0C\F4KJ\FA\C2\B0s-\9F\CB\E2\B7\FA\0C\F6", [32 x i8]* %msg_bs, align 1, !dbg !21 %"$gasrem_113" = load i64, i64* @_gasrem, align 8 %"$gascmp_114" = icmp ugt i64 1, %"$gasrem_113" br i1 %"$gascmp_114", label %"$out_of_gas_115", label %"$have_gas_116" @@ -229,6 +232,7 @@ entry: %"$consume_117" = sub i64 %"$gasrem_113", 1 store i64 %"$consume_117", i64* @_gasrem, align 8 %msg = alloca %Bystr, align 8 + call void @llvm.dbg.declare(metadata %Bystr* %msg, metadata !22, metadata !DIExpression()), !dbg !24 %"$gasrem_118" = load i64, i64* @_gasrem, align 8 %"$gascmp_119" = icmp ugt i64 32, %"$gasrem_118" br i1 %"$gascmp_119", label %"$out_of_gas_120", label %"$have_gas_121" @@ -245,8 +249,8 @@ entry: %"$msg_bs_125" = load [32 x i8], [32 x i8]* %msg_bs, align 1 store [32 x i8] %"$msg_bs_125", [32 x i8]* %"$to_bystr_msg_bs_124", align 1 %"$$to_bystr_msg_bs_124_126" = bitcast [32 x i8]* %"$to_bystr_msg_bs_124" to i8* - %"$to_bystr_call_127" = call %Bystr @_to_bystr(i8* %"$execptr_load_123", i32 32, i8* %"$$to_bystr_msg_bs_124_126"), !dbg !13 - store %Bystr %"$to_bystr_call_127", %Bystr* %msg, align 8, !dbg !13 + %"$to_bystr_call_127" = call %Bystr @_to_bystr(i8* %"$execptr_load_123", i32 32, i8* %"$$to_bystr_msg_bs_124_126"), !dbg !25 + store %Bystr %"$to_bystr_call_127", %Bystr* %msg, align 8, !dbg !25 %"$gasrem_128" = load i64, i64* @_gasrem, align 8 %"$gascmp_129" = icmp ugt i64 1, %"$gasrem_128" br i1 %"$gascmp_129", label %"$out_of_gas_130", label %"$have_gas_131" @@ -259,6 +263,7 @@ entry: %"$consume_132" = sub i64 %"$gasrem_128", 1 store i64 %"$consume_132", i64* @_gasrem, align 8 %sign = alloca [64 x i8], align 1 + call void @llvm.dbg.declare(metadata [64 x i8]* %sign, metadata !26, metadata !DIExpression()), !dbg !28 %"$gasrem_133" = load i64, i64* @_gasrem, align 8 %"$gascmp_134" = icmp ugt i64 1, %"$gasrem_133" br i1 %"$gascmp_134", label %"$out_of_gas_135", label %"$have_gas_136" @@ -270,7 +275,7 @@ entry: "$have_gas_136": ; preds = %"$out_of_gas_135", %"$have_gas_131" %"$consume_137" = sub i64 %"$gasrem_133", 1 store i64 %"$consume_137", i64* @_gasrem, align 8 - store [64 x i8] c"q3\EF\F4\00\B8I5\91\\\08\EC\D3.0\B2\06\D9\E7\B8\8D\85z8/\D1N\10S\0F0V1IpB\8C@/x\AB\96\14\03\18\80[\DB\C9M\87\B0tL\FB\A8\86\C5\80\BF\CD\DB\98_", [64 x i8]* %sign, align 1, !dbg !14 + store [64 x i8] c"q3\EF\F4\00\B8I5\91\\\08\EC\D3.0\B2\06\D9\E7\B8\8D\85z8/\D1N\10S\0F0V1IpB\8C@/x\AB\96\14\03\18\80[\DB\C9M\87\B0tL\FB\A8\86\C5\80\BF\CD\DB\98_", [64 x i8]* %sign, align 1, !dbg !29 %"$_literal_cost_msg_138" = alloca %Bystr, align 8 %"$msg_139" = load %Bystr, %Bystr* %msg, align 8 store %Bystr %"$msg_139", %Bystr* %"$_literal_cost_msg_138", align 8 @@ -303,12 +308,15 @@ entry: %"$ecdsa_verify_sign_159" = alloca [64 x i8], align 1 %"$sign_160" = load [64 x i8], [64 x i8]* %sign, align 1 store [64 x i8] %"$sign_160", [64 x i8]* %"$ecdsa_verify_sign_159", align 1 - %"$ecdsa_verify_call_161" = call %TName_Bool* @_ecdsa_verify(i8* %"$execptr_load_155", [33 x i8]* %"$ecdsa_verify_pk_156", %Bystr %"$msg_158", [64 x i8]* %"$ecdsa_verify_sign_159"), !dbg !15 - store %TName_Bool* %"$ecdsa_verify_call_161", %TName_Bool** %"$expr_6", align 8, !dbg !15 + %"$ecdsa_verify_call_161" = call %TName_Bool* @_ecdsa_verify(i8* %"$execptr_load_155", [33 x i8]* %"$ecdsa_verify_pk_156", %Bystr %"$msg_158", [64 x i8]* %"$ecdsa_verify_sign_159"), !dbg !30 + store %TName_Bool* %"$ecdsa_verify_call_161", %TName_Bool** %"$expr_6", align 8, !dbg !30 %"$$expr_6_163" = load %TName_Bool*, %TName_Bool** %"$expr_6", align 8 ret %TName_Bool* %"$$expr_6_163" } +; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn +declare void @llvm.dbg.declare(metadata, metadata, metadata) #0 + declare %Bystr @_to_bystr(i8*, i32, i8*) declare i64 @_literal_cost(%_TyDescrTy_Typ*, i8*) @@ -326,22 +334,39 @@ entry: ret void } +attributes #0 = { nocallback nofree nosync nounwind readnone speculatable willreturn } + !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) +!1 = distinct !DICompileUnit(language: DW_LANG_C89, file: !2, producer: "Scilla Compiler", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false) !2 = !DIFile(filename: "builtin_ecdsa_verify_false.scilexp", directory: "codegen/expr") -!3 = !{} -!4 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !5, file: !5, type: !6, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!5 = !DIFile(filename: ".", directory: ".") -!6 = !DISubroutineType(types: !7) -!7 = !{!8} -!8 = !DIBasicType(tag: DW_TAG_unspecified_type, name: "void") -!9 = !DILocation(line: 0, scope: !4) -!10 = distinct !DISubprogram(name: "_scilla_expr_fun", linkageName: "_scilla_expr_fun", scope: !2, file: !2, line: 1, type: !6, scopeLine: 1, spFlags: DISPFlagDefinition, unit: !1, retainedNodes: !3) -!11 = !DILocation(line: 1, column: 10, scope: !10) -!12 = !DILocation(line: 2, column: 14, scope: !10) -!13 = !DILocation(line: 3, column: 11, scope: !10) -!14 = !DILocation(line: 4, column: 12, scope: !10) -!15 = !DILocation(line: 5, column: 1, scope: !10) +!3 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !4, file: !4, type: !5, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!4 = !DIFile(filename: ".", directory: ".") +!5 = !DISubroutineType(types: !6) +!6 = !{!7} +!7 = !DIBasicType(tag: DW_TAG_unspecified_type, name: "void") +!8 = !{} +!9 = !DILocation(line: 0, scope: !3) +!10 = distinct !DISubprogram(name: "_scilla_expr_fun", linkageName: "_scilla_expr_fun", scope: !2, file: !2, line: 1, type: !5, scopeLine: 1, spFlags: DISPFlagDefinition, unit: !1, retainedNodes: !8) +!11 = !DILocalVariable(name: "$expr_6", scope: !10, file: !2, line: 1, type: !12) +!12 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "Bool", baseType: !13, size: 8, align: 8, dwarfAddressSpace: 0) +!13 = !DIBasicType(name: "Bool", size: 8) +!14 = !DILocation(line: 1, column: 10, scope: !10) +!15 = !DILocalVariable(name: "pk", scope: !10, file: !2, line: 1, type: !16) +!16 = !DIBasicType(name: "ByStr33", size: 33) +!17 = !DILocation(line: 1, column: 5, scope: !10) +!18 = !DILocalVariable(name: "msg_bs", scope: !10, file: !2, line: 2, type: !19) +!19 = !DIBasicType(name: "ByStr32", size: 32) +!20 = !DILocation(line: 2, column: 5, scope: !10) +!21 = !DILocation(line: 2, column: 14, scope: !10) +!22 = !DILocalVariable(name: "msg", scope: !10, file: !2, line: 3, type: !23) +!23 = !DIBasicType(name: "ByStr", size: 16) +!24 = !DILocation(line: 3, column: 5, scope: !10) +!25 = !DILocation(line: 3, column: 11, scope: !10) +!26 = !DILocalVariable(name: "sign", scope: !10, file: !2, line: 4, type: !27) +!27 = !DIBasicType(name: "ByStr64", size: 64) +!28 = !DILocation(line: 4, column: 5, scope: !10) +!29 = !DILocation(line: 4, column: 12, scope: !10) +!30 = !DILocation(line: 5, column: 1, scope: !10) diff --git a/testsuite/expr/builtin_ecdsa_verify_false.ll b/testsuite/expr/builtin_ecdsa_verify_false.ll index da9410b2..ea979cf1 100644 --- a/testsuite/expr/builtin_ecdsa_verify_false.ll +++ b/testsuite/expr/builtin_ecdsa_verify_false.ll @@ -6,7 +6,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-pc-linux-gnu" +target triple = "x86_64-unknown-linux-gnu" %"$TyDescrTy_PrimTyp_7" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/testsuite/expr/builtin_ecdsa_verify_true.dbg.ll b/testsuite/expr/builtin_ecdsa_verify_true.dbg.ll index cd02ddfb..8aa31191 100644 --- a/testsuite/expr/builtin_ecdsa_verify_true.dbg.ll +++ b/testsuite/expr/builtin_ecdsa_verify_true.dbg.ll @@ -6,7 +6,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-pc-linux-gnu" +target triple = "x86_64-unknown-linux-gnu" %"$TyDescrTy_PrimTyp_7" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } @@ -87,7 +87,7 @@ target triple = "x86_64-pc-linux-gnu" @_transition_parameters = constant [0 x %"$TransDescr_168"] zeroinitializer @_transition_parameters_length = constant i32 0 -define void @_init_libs() !dbg !4 { +define void @_init_libs() !dbg !3 { entry: %"$gasrem_63" = load i64, i64* @_gasrem, align 8 %"$gascmp_64" = icmp ugt i64 5, %"$gasrem_63" @@ -169,6 +169,7 @@ declare void @_out_of_gas() define internal %TName_Bool* @_scilla_expr_fun(i8* %0) !dbg !10 { entry: %"$expr_6" = alloca %TName_Bool*, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$expr_6", metadata !11, metadata !DIExpression()), !dbg !14 %"$gasrem_93" = load i64, i64* @_gasrem, align 8 %"$gascmp_94" = icmp ugt i64 1, %"$gasrem_93" br i1 %"$gascmp_94", label %"$out_of_gas_95", label %"$have_gas_96" @@ -181,6 +182,7 @@ entry: %"$consume_97" = sub i64 %"$gasrem_93", 1 store i64 %"$consume_97", i64* @_gasrem, align 8 %pk = alloca [33 x i8], align 1 + call void @llvm.dbg.declare(metadata [33 x i8]* %pk, metadata !15, metadata !DIExpression()), !dbg !17 %"$gasrem_98" = load i64, i64* @_gasrem, align 8 %"$gascmp_99" = icmp ugt i64 1, %"$gasrem_98" br i1 %"$gascmp_99", label %"$out_of_gas_100", label %"$have_gas_101" @@ -192,7 +194,7 @@ entry: "$have_gas_101": ; preds = %"$out_of_gas_100", %"$have_gas_96" %"$consume_102" = sub i64 %"$gasrem_98", 1 store i64 %"$consume_102", i64* @_gasrem, align 8 - store [33 x i8] c"\03\01\08,\FE\D7\81$\A1X\92\DA\18\87\DA\FF\08Fi\E7\A2\ED'\11\9Eq\C2\0B\DA:.\00\DD", [33 x i8]* %pk, align 1, !dbg !11 + store [33 x i8] c"\03\01\08,\FE\D7\81$\A1X\92\DA\18\87\DA\FF\08Fi\E7\A2\ED'\11\9Eq\C2\0B\DA:.\00\DD", [33 x i8]* %pk, align 1, !dbg !14 %"$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" @@ -205,6 +207,7 @@ entry: %"$consume_107" = sub i64 %"$gasrem_103", 1 store i64 %"$consume_107", i64* @_gasrem, align 8 %msg_bs = alloca [32 x i8], align 1 + call void @llvm.dbg.declare(metadata [32 x i8]* %msg_bs, metadata !18, metadata !DIExpression()), !dbg !20 %"$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" @@ -216,7 +219,7 @@ entry: "$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 [32 x i8] c"\B1\0E-Rv\12\07;&\EE\CD\FDq~j2\0C\F4KJ\FA\C2\B0s-\9F\CB\E2\B7\FA\0C\F6", [32 x i8]* %msg_bs, align 1, !dbg !12 + store [32 x i8] c"\B1\0E-Rv\12\07;&\EE\CD\FDq~j2\0C\F4KJ\FA\C2\B0s-\9F\CB\E2\B7\FA\0C\F6", [32 x i8]* %msg_bs, align 1, !dbg !21 %"$gasrem_113" = load i64, i64* @_gasrem, align 8 %"$gascmp_114" = icmp ugt i64 1, %"$gasrem_113" br i1 %"$gascmp_114", label %"$out_of_gas_115", label %"$have_gas_116" @@ -229,6 +232,7 @@ entry: %"$consume_117" = sub i64 %"$gasrem_113", 1 store i64 %"$consume_117", i64* @_gasrem, align 8 %msg = alloca %Bystr, align 8 + call void @llvm.dbg.declare(metadata %Bystr* %msg, metadata !22, metadata !DIExpression()), !dbg !24 %"$gasrem_118" = load i64, i64* @_gasrem, align 8 %"$gascmp_119" = icmp ugt i64 32, %"$gasrem_118" br i1 %"$gascmp_119", label %"$out_of_gas_120", label %"$have_gas_121" @@ -245,8 +249,8 @@ entry: %"$msg_bs_125" = load [32 x i8], [32 x i8]* %msg_bs, align 1 store [32 x i8] %"$msg_bs_125", [32 x i8]* %"$to_bystr_msg_bs_124", align 1 %"$$to_bystr_msg_bs_124_126" = bitcast [32 x i8]* %"$to_bystr_msg_bs_124" to i8* - %"$to_bystr_call_127" = call %Bystr @_to_bystr(i8* %"$execptr_load_123", i32 32, i8* %"$$to_bystr_msg_bs_124_126"), !dbg !13 - store %Bystr %"$to_bystr_call_127", %Bystr* %msg, align 8, !dbg !13 + %"$to_bystr_call_127" = call %Bystr @_to_bystr(i8* %"$execptr_load_123", i32 32, i8* %"$$to_bystr_msg_bs_124_126"), !dbg !25 + store %Bystr %"$to_bystr_call_127", %Bystr* %msg, align 8, !dbg !25 %"$gasrem_128" = load i64, i64* @_gasrem, align 8 %"$gascmp_129" = icmp ugt i64 1, %"$gasrem_128" br i1 %"$gascmp_129", label %"$out_of_gas_130", label %"$have_gas_131" @@ -259,6 +263,7 @@ entry: %"$consume_132" = sub i64 %"$gasrem_128", 1 store i64 %"$consume_132", i64* @_gasrem, align 8 %sign = alloca [64 x i8], align 1 + call void @llvm.dbg.declare(metadata [64 x i8]* %sign, metadata !26, metadata !DIExpression()), !dbg !28 %"$gasrem_133" = load i64, i64* @_gasrem, align 8 %"$gascmp_134" = icmp ugt i64 1, %"$gasrem_133" br i1 %"$gascmp_134", label %"$out_of_gas_135", label %"$have_gas_136" @@ -270,7 +275,7 @@ entry: "$have_gas_136": ; preds = %"$out_of_gas_135", %"$have_gas_131" %"$consume_137" = sub i64 %"$gasrem_133", 1 store i64 %"$consume_137", i64* @_gasrem, align 8 - store [64 x i8] c"q3\EF\F4\00\B8I5\91\\\08\EC\D3.0\B2\06\D9\E7\B8\8D\85z8/\D1N\10S\0F0V1IpB\8C@/x\AB\96\14\03\18\80[\DB\C9M\87\B0tL\FB\A8\86\C5\80\BF\CD\DB\98^", [64 x i8]* %sign, align 1, !dbg !14 + store [64 x i8] c"q3\EF\F4\00\B8I5\91\\\08\EC\D3.0\B2\06\D9\E7\B8\8D\85z8/\D1N\10S\0F0V1IpB\8C@/x\AB\96\14\03\18\80[\DB\C9M\87\B0tL\FB\A8\86\C5\80\BF\CD\DB\98^", [64 x i8]* %sign, align 1, !dbg !29 %"$_literal_cost_msg_138" = alloca %Bystr, align 8 %"$msg_139" = load %Bystr, %Bystr* %msg, align 8 store %Bystr %"$msg_139", %Bystr* %"$_literal_cost_msg_138", align 8 @@ -303,12 +308,15 @@ entry: %"$ecdsa_verify_sign_159" = alloca [64 x i8], align 1 %"$sign_160" = load [64 x i8], [64 x i8]* %sign, align 1 store [64 x i8] %"$sign_160", [64 x i8]* %"$ecdsa_verify_sign_159", align 1 - %"$ecdsa_verify_call_161" = call %TName_Bool* @_ecdsa_verify(i8* %"$execptr_load_155", [33 x i8]* %"$ecdsa_verify_pk_156", %Bystr %"$msg_158", [64 x i8]* %"$ecdsa_verify_sign_159"), !dbg !15 - store %TName_Bool* %"$ecdsa_verify_call_161", %TName_Bool** %"$expr_6", align 8, !dbg !15 + %"$ecdsa_verify_call_161" = call %TName_Bool* @_ecdsa_verify(i8* %"$execptr_load_155", [33 x i8]* %"$ecdsa_verify_pk_156", %Bystr %"$msg_158", [64 x i8]* %"$ecdsa_verify_sign_159"), !dbg !30 + store %TName_Bool* %"$ecdsa_verify_call_161", %TName_Bool** %"$expr_6", align 8, !dbg !30 %"$$expr_6_163" = load %TName_Bool*, %TName_Bool** %"$expr_6", align 8 ret %TName_Bool* %"$$expr_6_163" } +; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn +declare void @llvm.dbg.declare(metadata, metadata, metadata) #0 + declare %Bystr @_to_bystr(i8*, i32, i8*) declare i64 @_literal_cost(%_TyDescrTy_Typ*, i8*) @@ -326,22 +334,39 @@ entry: ret void } +attributes #0 = { nocallback nofree nosync nounwind readnone speculatable willreturn } + !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) +!1 = distinct !DICompileUnit(language: DW_LANG_C89, file: !2, producer: "Scilla Compiler", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false) !2 = !DIFile(filename: "builtin_ecdsa_verify_true.scilexp", directory: "codegen/expr") -!3 = !{} -!4 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !5, file: !5, type: !6, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!5 = !DIFile(filename: ".", directory: ".") -!6 = !DISubroutineType(types: !7) -!7 = !{!8} -!8 = !DIBasicType(tag: DW_TAG_unspecified_type, name: "void") -!9 = !DILocation(line: 0, scope: !4) -!10 = distinct !DISubprogram(name: "_scilla_expr_fun", linkageName: "_scilla_expr_fun", scope: !2, file: !2, line: 1, type: !6, scopeLine: 1, spFlags: DISPFlagDefinition, unit: !1, retainedNodes: !3) -!11 = !DILocation(line: 1, column: 10, scope: !10) -!12 = !DILocation(line: 2, column: 14, scope: !10) -!13 = !DILocation(line: 3, column: 11, scope: !10) -!14 = !DILocation(line: 4, column: 12, scope: !10) -!15 = !DILocation(line: 5, column: 1, scope: !10) +!3 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !4, file: !4, type: !5, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!4 = !DIFile(filename: ".", directory: ".") +!5 = !DISubroutineType(types: !6) +!6 = !{!7} +!7 = !DIBasicType(tag: DW_TAG_unspecified_type, name: "void") +!8 = !{} +!9 = !DILocation(line: 0, scope: !3) +!10 = distinct !DISubprogram(name: "_scilla_expr_fun", linkageName: "_scilla_expr_fun", scope: !2, file: !2, line: 1, type: !5, scopeLine: 1, spFlags: DISPFlagDefinition, unit: !1, retainedNodes: !8) +!11 = !DILocalVariable(name: "$expr_6", scope: !10, file: !2, line: 1, type: !12) +!12 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "Bool", baseType: !13, size: 8, align: 8, dwarfAddressSpace: 0) +!13 = !DIBasicType(name: "Bool", size: 8) +!14 = !DILocation(line: 1, column: 10, scope: !10) +!15 = !DILocalVariable(name: "pk", scope: !10, file: !2, line: 1, type: !16) +!16 = !DIBasicType(name: "ByStr33", size: 33) +!17 = !DILocation(line: 1, column: 5, scope: !10) +!18 = !DILocalVariable(name: "msg_bs", scope: !10, file: !2, line: 2, type: !19) +!19 = !DIBasicType(name: "ByStr32", size: 32) +!20 = !DILocation(line: 2, column: 5, scope: !10) +!21 = !DILocation(line: 2, column: 14, scope: !10) +!22 = !DILocalVariable(name: "msg", scope: !10, file: !2, line: 3, type: !23) +!23 = !DIBasicType(name: "ByStr", size: 16) +!24 = !DILocation(line: 3, column: 5, scope: !10) +!25 = !DILocation(line: 3, column: 11, scope: !10) +!26 = !DILocalVariable(name: "sign", scope: !10, file: !2, line: 4, type: !27) +!27 = !DIBasicType(name: "ByStr64", size: 64) +!28 = !DILocation(line: 4, column: 5, scope: !10) +!29 = !DILocation(line: 4, column: 12, scope: !10) +!30 = !DILocation(line: 5, column: 1, scope: !10) diff --git a/testsuite/expr/builtin_ecdsa_verify_true.ll b/testsuite/expr/builtin_ecdsa_verify_true.ll index cf4546ef..023d08f3 100644 --- a/testsuite/expr/builtin_ecdsa_verify_true.ll +++ b/testsuite/expr/builtin_ecdsa_verify_true.ll @@ -6,7 +6,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-pc-linux-gnu" +target triple = "x86_64-unknown-linux-gnu" %"$TyDescrTy_PrimTyp_7" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/testsuite/expr/builtin_eq.dbg.ll b/testsuite/expr/builtin_eq.dbg.ll index 8d867294..7ba6f95e 100644 --- a/testsuite/expr/builtin_eq.dbg.ll +++ b/testsuite/expr/builtin_eq.dbg.ll @@ -62,7 +62,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-pc-linux-gnu" +target triple = "x86_64-unknown-linux-gnu" %"$TyDescrTy_PrimTyp_47" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } @@ -74,9 +74,9 @@ target triple = "x86_64-pc-linux-gnu" %TName_Bool = type { i8, %CName_True*, %CName_False* } %CName_True = type <{ i8 }> %CName_False = type <{ i8 }> -%"$ParamDescr_1085" = type { %ParamDescrString, %_TyDescrTy_Typ* } +%"$ParamDescr_1090" = type { %ParamDescrString, %_TyDescrTy_Typ* } %ParamDescrString = type { i8*, i32 } -%"$TransDescr_1086" = type { %ParamDescrString, i32, %"$ParamDescr_1085"* } +%"$TransDescr_1091" = type { %ParamDescrString, i32, %"$ParamDescr_1090"* } %"$$fundef_36_env_101" = type {} %"$$fundef_40_env_102" = type { %TName_Bool* } %"$$fundef_38_env_103" = type {} @@ -145,264 +145,282 @@ target triple = "x86_64-pc-linux-gnu" @"$_gas_charge_accListUtils_2" = global %Int32 zeroinitializer @"$_gas_charge_accNatUtils_3" = global %Int32 zeroinitializer @"$_gas_charge_accPairUtils_4" = global %Int32 zeroinitializer -@"$stringlit_571" = unnamed_addr constant [5 x i8] c"Hello" -@"$stringlit_582" = unnamed_addr constant [5 x i8] c"World" -@"$stringlit_593" = unnamed_addr constant [5 x i8] c"Hello" -@"$BNumLit_966" = unnamed_addr constant [3 x i8] c"100" -@"$BNumLit_980" = unnamed_addr constant [3 x i8] c"299" -@"$BNumLit_994" = unnamed_addr constant [3 x i8] c"100" +@"$stringlit_576" = unnamed_addr constant [5 x i8] c"Hello" +@"$stringlit_587" = unnamed_addr constant [5 x i8] c"World" +@"$stringlit_598" = unnamed_addr constant [5 x i8] c"Hello" +@"$BNumLit_971" = unnamed_addr constant [3 x i8] c"100" +@"$BNumLit_985" = unnamed_addr constant [3 x i8] c"299" +@"$BNumLit_999" = unnamed_addr constant [3 x i8] c"100" @_tydescr_table = constant [18 x %_TyDescrTy_Typ*] [%_TyDescrTy_Typ* @"$TyDescr_Event_71", %_TyDescrTy_Typ* @"$TyDescr_Int64_53", %_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_85", %_TyDescrTy_Typ* @"$TyDescr_Bystr3_79", %_TyDescrTy_Typ* @"$TyDescr_Uint256_63", %_TyDescrTy_Typ* @"$TyDescr_Uint32_51", %_TyDescrTy_Typ* @"$TyDescr_Uint64_55", %_TyDescrTy_Typ* @"$TyDescr_Bnum_67", %_TyDescrTy_Typ* @"$TyDescr_Uint128_59", %_TyDescrTy_Typ* @"$TyDescr_Exception_73", %_TyDescrTy_Typ* @"$TyDescr_String_65", %_TyDescrTy_Typ* @"$TyDescr_Int256_61", %_TyDescrTy_Typ* @"$TyDescr_Int128_57", %_TyDescrTy_Typ* @"$TyDescr_Bystr_77", %_TyDescrTy_Typ* @"$TyDescr_ReplicateContr_75", %_TyDescrTy_Typ* @"$TyDescr_Message_69", %_TyDescrTy_Typ* @"$TyDescr_Bystr2_81", %_TyDescrTy_Typ* @"$TyDescr_Int32_49"] @_tydescr_table_length = constant i32 18 -@_contract_parameters = constant [0 x %"$ParamDescr_1085"] zeroinitializer +@_contract_parameters = constant [0 x %"$ParamDescr_1090"] zeroinitializer @_contract_parameters_length = constant i32 0 -@_transition_parameters = constant [0 x %"$TransDescr_1086"] zeroinitializer +@_transition_parameters = constant [0 x %"$TransDescr_1091"] zeroinitializer @_transition_parameters_length = constant i32 0 -define internal %TName_Bool* @"$fundef_36"(%"$$fundef_36_env_101"* %0, %TName_Bool* %1) !dbg !4 { +define internal %TName_Bool* @"$fundef_36"(%"$$fundef_36_env_101"* %0, %TName_Bool* %1) !dbg !3 { entry: + %"$b_222" = alloca %TName_Bool*, align 8 + store %TName_Bool* %1, %TName_Bool** %"$b_222", align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$b_222", metadata !9, metadata !DIExpression()), !dbg !12 %"$retval_37" = alloca %TName_Bool*, align 8 - %"$gasrem_188" = load i64, i64* @_gasrem, align 8 - %"$gascmp_189" = icmp ugt i64 2, %"$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", 2 - store i64 %"$consume_192", i64* @_gasrem, align 8 - %"$b_tag_194" = getelementptr inbounds %TName_Bool, %TName_Bool* %1, i32 0, i32 0 - %"$b_tag_195" = load i8, i8* %"$b_tag_194", align 1 - switch i8 %"$b_tag_195", label %"$empty_default_196" [ - i8 0, label %"$True_197" - i8 1, label %"$False_207" - ], !dbg !9 - -"$True_197": ; preds = %"$have_gas_191" - %"$b_198" = bitcast %TName_Bool* %1 to %CName_True* - %"$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 = %"$True_197" - call void @_out_of_gas() - br label %"$have_gas_202" - -"$have_gas_202": ; preds = %"$out_of_gas_201", %"$True_197" - %"$consume_203" = sub i64 %"$gasrem_199", 1 - store i64 %"$consume_203", i64* @_gasrem, align 8 - %"$adtval_204_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_204_salloc" = call i8* @_salloc(i8* %"$adtval_204_load", i64 1) - %"$adtval_204" = bitcast i8* %"$adtval_204_salloc" to %CName_False* - %"$adtgep_205" = getelementptr inbounds %CName_False, %CName_False* %"$adtval_204", i32 0, i32 0 - store i8 1, i8* %"$adtgep_205", align 1 - %"$adtptr_206" = bitcast %CName_False* %"$adtval_204" to %TName_Bool* - store %TName_Bool* %"$adtptr_206", %TName_Bool** %"$retval_37", align 8, !dbg !10 - br label %"$matchsucc_193" - -"$False_207": ; preds = %"$have_gas_191" - %"$b_208" = bitcast %TName_Bool* %1 to %CName_False* - %"$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 = %"$False_207" - call void @_out_of_gas() - br label %"$have_gas_212" - -"$have_gas_212": ; preds = %"$out_of_gas_211", %"$False_207" - %"$consume_213" = sub i64 %"$gasrem_209", 1 - store i64 %"$consume_213", i64* @_gasrem, align 8 - %"$adtval_214_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_214_salloc" = call i8* @_salloc(i8* %"$adtval_214_load", i64 1) - %"$adtval_214" = bitcast i8* %"$adtval_214_salloc" to %CName_True* - %"$adtgep_215" = getelementptr inbounds %CName_True, %CName_True* %"$adtval_214", i32 0, i32 0 - store i8 0, i8* %"$adtgep_215", align 1 - %"$adtptr_216" = bitcast %CName_True* %"$adtval_214" to %TName_Bool* - store %TName_Bool* %"$adtptr_216", %TName_Bool** %"$retval_37", align 8, !dbg !13 - br label %"$matchsucc_193" - -"$empty_default_196": ; preds = %"$have_gas_191" - br label %"$matchsucc_193" - -"$matchsucc_193": ; preds = %"$have_gas_212", %"$have_gas_202", %"$empty_default_196" - %"$$retval_37_217" = load %TName_Bool*, %TName_Bool** %"$retval_37", align 8 - ret %TName_Bool* %"$$retval_37_217" + call void @llvm.dbg.declare(metadata %TName_Bool** %"$retval_37", metadata !13, metadata !DIExpression()), !dbg !14 + %"$gasrem_192" = load i64, i64* @_gasrem, align 8 + %"$gascmp_193" = icmp ugt i64 2, %"$gasrem_192" + br i1 %"$gascmp_193", label %"$out_of_gas_194", label %"$have_gas_195" + +"$out_of_gas_194": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_195" + +"$have_gas_195": ; preds = %"$out_of_gas_194", %entry + %"$consume_196" = sub i64 %"$gasrem_192", 2 + store i64 %"$consume_196", i64* @_gasrem, align 8 + %"$b_tag_198" = getelementptr inbounds %TName_Bool, %TName_Bool* %1, i32 0, i32 0 + %"$b_tag_199" = load i8, i8* %"$b_tag_198", align 1 + switch i8 %"$b_tag_199", label %"$empty_default_200" [ + i8 0, label %"$True_201" + i8 1, label %"$False_211" + ], !dbg !14 + +"$True_201": ; preds = %"$have_gas_195" + %"$b_202" = bitcast %TName_Bool* %1 to %CName_True* + %"$gasrem_203" = load i64, i64* @_gasrem, align 8 + %"$gascmp_204" = icmp ugt i64 1, %"$gasrem_203" + br i1 %"$gascmp_204", label %"$out_of_gas_205", label %"$have_gas_206" + +"$out_of_gas_205": ; preds = %"$True_201" + call void @_out_of_gas() + br label %"$have_gas_206" + +"$have_gas_206": ; preds = %"$out_of_gas_205", %"$True_201" + %"$consume_207" = sub i64 %"$gasrem_203", 1 + store i64 %"$consume_207", i64* @_gasrem, align 8 + %"$adtval_208_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_208_salloc" = call i8* @_salloc(i8* %"$adtval_208_load", i64 1) + %"$adtval_208" = bitcast i8* %"$adtval_208_salloc" to %CName_False* + %"$adtgep_209" = getelementptr inbounds %CName_False, %CName_False* %"$adtval_208", i32 0, i32 0 + store i8 1, i8* %"$adtgep_209", align 1 + %"$adtptr_210" = bitcast %CName_False* %"$adtval_208" to %TName_Bool* + store %TName_Bool* %"$adtptr_210", %TName_Bool** %"$retval_37", align 8, !dbg !15 + br label %"$matchsucc_197" + +"$False_211": ; preds = %"$have_gas_195" + %"$b_212" = bitcast %TName_Bool* %1 to %CName_False* + %"$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 = %"$False_211" + call void @_out_of_gas() + br label %"$have_gas_216" + +"$have_gas_216": ; preds = %"$out_of_gas_215", %"$False_211" + %"$consume_217" = sub i64 %"$gasrem_213", 1 + store i64 %"$consume_217", i64* @_gasrem, align 8 + %"$adtval_218_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_218_salloc" = call i8* @_salloc(i8* %"$adtval_218_load", i64 1) + %"$adtval_218" = bitcast i8* %"$adtval_218_salloc" to %CName_True* + %"$adtgep_219" = getelementptr inbounds %CName_True, %CName_True* %"$adtval_218", i32 0, i32 0 + store i8 0, i8* %"$adtgep_219", align 1 + %"$adtptr_220" = bitcast %CName_True* %"$adtval_218" to %TName_Bool* + store %TName_Bool* %"$adtptr_220", %TName_Bool** %"$retval_37", align 8, !dbg !18 + br label %"$matchsucc_197" + +"$empty_default_200": ; preds = %"$have_gas_195" + br label %"$matchsucc_197" + +"$matchsucc_197": ; preds = %"$have_gas_216", %"$have_gas_206", %"$empty_default_200" + %"$$retval_37_221" = load %TName_Bool*, %TName_Bool** %"$retval_37", align 8 + ret %TName_Bool* %"$$retval_37_221" } -define internal %TName_Bool* @"$fundef_40"(%"$$fundef_40_env_102"* %0, %TName_Bool* %1) !dbg !15 { +define internal %TName_Bool* @"$fundef_40"(%"$$fundef_40_env_102"* %0, %TName_Bool* %1) !dbg !20 { entry: - %"$$fundef_40_env_b_158" = getelementptr inbounds %"$$fundef_40_env_102", %"$$fundef_40_env_102"* %0, i32 0, i32 0 - %"$b_envload_159" = load %TName_Bool*, %TName_Bool** %"$$fundef_40_env_b_158", align 8 + %"$c_191" = alloca %TName_Bool*, align 8 + store %TName_Bool* %1, %TName_Bool** %"$c_191", align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$c_191", metadata !21, metadata !DIExpression()), !dbg !22 + %"$$fundef_40_env_b_161" = getelementptr inbounds %"$$fundef_40_env_102", %"$$fundef_40_env_102"* %0, i32 0, i32 0 + %"$b_envload_162" = load %TName_Bool*, %TName_Bool** %"$$fundef_40_env_b_161", align 8 %b = alloca %TName_Bool*, align 8 - store %TName_Bool* %"$b_envload_159", %TName_Bool** %b, align 8 + store %TName_Bool* %"$b_envload_162", %TName_Bool** %b, align 8 %"$retval_41" = alloca %TName_Bool*, align 8 - %"$gasrem_160" = load i64, i64* @_gasrem, align 8 - %"$gascmp_161" = icmp ugt i64 2, %"$gasrem_160" - br i1 %"$gascmp_161", label %"$out_of_gas_162", label %"$have_gas_163" - -"$out_of_gas_162": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_163" - -"$have_gas_163": ; preds = %"$out_of_gas_162", %entry - %"$consume_164" = sub i64 %"$gasrem_160", 2 - store i64 %"$consume_164", i64* @_gasrem, align 8 - %"$b_166" = load %TName_Bool*, %TName_Bool** %b, align 8 - %"$b_tag_167" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$b_166", i32 0, i32 0 - %"$b_tag_168" = load i8, i8* %"$b_tag_167", align 1 - switch i8 %"$b_tag_168", label %"$empty_default_169" [ - i8 0, label %"$True_170" - i8 1, label %"$False_180" - ], !dbg !16 - -"$True_170": ; preds = %"$have_gas_163" - %"$b_171" = bitcast %TName_Bool* %"$b_166" to %CName_True* - %"$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 = %"$True_170" - call void @_out_of_gas() - br label %"$have_gas_175" - -"$have_gas_175": ; preds = %"$out_of_gas_174", %"$True_170" - %"$consume_176" = sub i64 %"$gasrem_172", 1 - store i64 %"$consume_176", i64* @_gasrem, align 8 - %"$adtval_177_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_177_salloc" = call i8* @_salloc(i8* %"$adtval_177_load", i64 1) - %"$adtval_177" = bitcast i8* %"$adtval_177_salloc" to %CName_True* - %"$adtgep_178" = getelementptr inbounds %CName_True, %CName_True* %"$adtval_177", i32 0, i32 0 - store i8 0, i8* %"$adtgep_178", align 1 - %"$adtptr_179" = bitcast %CName_True* %"$adtval_177" to %TName_Bool* - store %TName_Bool* %"$adtptr_179", %TName_Bool** %"$retval_41", align 8, !dbg !17 - br label %"$matchsucc_165" - -"$False_180": ; preds = %"$have_gas_163" - %"$b_181" = bitcast %TName_Bool* %"$b_166" to %CName_False* - %"$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_184": ; preds = %"$False_180" - call void @_out_of_gas() - br label %"$have_gas_185" - -"$have_gas_185": ; preds = %"$out_of_gas_184", %"$False_180" - %"$consume_186" = sub i64 %"$gasrem_182", 1 - store i64 %"$consume_186", i64* @_gasrem, align 8 - store %TName_Bool* %1, %TName_Bool** %"$retval_41", align 8, !dbg !20 - br label %"$matchsucc_165" - -"$empty_default_169": ; preds = %"$have_gas_163" - br label %"$matchsucc_165" - -"$matchsucc_165": ; preds = %"$have_gas_185", %"$have_gas_175", %"$empty_default_169" - %"$$retval_41_187" = load %TName_Bool*, %TName_Bool** %"$retval_41", align 8 - ret %TName_Bool* %"$$retval_41_187" + call void @llvm.dbg.declare(metadata %TName_Bool** %"$retval_41", metadata !23, metadata !DIExpression()), !dbg !24 + %"$gasrem_163" = load i64, i64* @_gasrem, align 8 + %"$gascmp_164" = icmp ugt i64 2, %"$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", 2 + store i64 %"$consume_167", i64* @_gasrem, align 8 + %"$b_169" = load %TName_Bool*, %TName_Bool** %b, align 8 + %"$b_tag_170" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$b_169", i32 0, i32 0 + %"$b_tag_171" = load i8, i8* %"$b_tag_170", align 1 + switch i8 %"$b_tag_171", label %"$empty_default_172" [ + i8 0, label %"$True_173" + i8 1, label %"$False_183" + ], !dbg !24 + +"$True_173": ; preds = %"$have_gas_166" + %"$b_174" = bitcast %TName_Bool* %"$b_169" to %CName_True* + %"$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 = %"$True_173" + call void @_out_of_gas() + br label %"$have_gas_178" + +"$have_gas_178": ; preds = %"$out_of_gas_177", %"$True_173" + %"$consume_179" = sub i64 %"$gasrem_175", 1 + store i64 %"$consume_179", i64* @_gasrem, align 8 + %"$adtval_180_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_180_salloc" = call i8* @_salloc(i8* %"$adtval_180_load", i64 1) + %"$adtval_180" = bitcast i8* %"$adtval_180_salloc" to %CName_True* + %"$adtgep_181" = getelementptr inbounds %CName_True, %CName_True* %"$adtval_180", i32 0, i32 0 + store i8 0, i8* %"$adtgep_181", align 1 + %"$adtptr_182" = bitcast %CName_True* %"$adtval_180" to %TName_Bool* + store %TName_Bool* %"$adtptr_182", %TName_Bool** %"$retval_41", align 8, !dbg !25 + br label %"$matchsucc_168" + +"$False_183": ; preds = %"$have_gas_166" + %"$b_184" = bitcast %TName_Bool* %"$b_169" to %CName_False* + %"$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 = %"$False_183" + call void @_out_of_gas() + br label %"$have_gas_188" + +"$have_gas_188": ; preds = %"$out_of_gas_187", %"$False_183" + %"$consume_189" = sub i64 %"$gasrem_185", 1 + store i64 %"$consume_189", i64* @_gasrem, align 8 + store %TName_Bool* %1, %TName_Bool** %"$retval_41", align 8, !dbg !28 + br label %"$matchsucc_168" + +"$empty_default_172": ; preds = %"$have_gas_166" + br label %"$matchsucc_168" + +"$matchsucc_168": ; preds = %"$have_gas_188", %"$have_gas_178", %"$empty_default_172" + %"$$retval_41_190" = load %TName_Bool*, %TName_Bool** %"$retval_41", align 8 + ret %TName_Bool* %"$$retval_41_190" } -define internal { %TName_Bool* (i8*, %TName_Bool*)*, i8* } @"$fundef_38"(%"$$fundef_38_env_103"* %0, %TName_Bool* %1) !dbg !22 { +define internal { %TName_Bool* (i8*, %TName_Bool*)*, i8* } @"$fundef_38"(%"$$fundef_38_env_103"* %0, %TName_Bool* %1) !dbg !30 { entry: + %"$b_160" = alloca %TName_Bool*, align 8 + store %TName_Bool* %1, %TName_Bool** %"$b_160", align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$b_160", metadata !31, metadata !DIExpression()), !dbg !32 %"$retval_39" = alloca { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, align 8 - %"$gasrem_147" = load i64, i64* @_gasrem, align 8 - %"$gascmp_148" = icmp ugt i64 1, %"$gasrem_147" - br i1 %"$gascmp_148", label %"$out_of_gas_149", label %"$have_gas_150" - -"$out_of_gas_149": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_150" - -"$have_gas_150": ; preds = %"$out_of_gas_149", %entry - %"$consume_151" = sub i64 %"$gasrem_147", 1 - store i64 %"$consume_151", i64* @_gasrem, align 8 - %"$$fundef_40_envp_152_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_40_envp_152_salloc" = call i8* @_salloc(i8* %"$$fundef_40_envp_152_load", i64 8) - %"$$fundef_40_envp_152" = bitcast i8* %"$$fundef_40_envp_152_salloc" to %"$$fundef_40_env_102"* - %"$$fundef_40_env_voidp_154" = bitcast %"$$fundef_40_env_102"* %"$$fundef_40_envp_152" to i8* - %"$$fundef_40_cloval_155" = insertvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } { %TName_Bool* (i8*, %TName_Bool*)* bitcast (%TName_Bool* (%"$$fundef_40_env_102"*, %TName_Bool*)* @"$fundef_40" to %TName_Bool* (i8*, %TName_Bool*)*), i8* undef }, i8* %"$$fundef_40_env_voidp_154", 1 - %"$$fundef_40_env_b_156" = getelementptr inbounds %"$$fundef_40_env_102", %"$$fundef_40_env_102"* %"$$fundef_40_envp_152", i32 0, i32 0 - store %TName_Bool* %1, %TName_Bool** %"$$fundef_40_env_b_156", align 8 - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$fundef_40_cloval_155", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$retval_39", align 8, !dbg !23 - %"$$retval_39_157" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$retval_39", align 8 - ret { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$retval_39_157" + %"$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 = %entry + call void @_out_of_gas() + br label %"$have_gas_152" + +"$have_gas_152": ; preds = %"$out_of_gas_151", %entry + %"$consume_153" = sub i64 %"$gasrem_149", 1 + store i64 %"$consume_153", i64* @_gasrem, align 8 + %"$$fundef_40_envp_154_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_40_envp_154_salloc" = call i8* @_salloc(i8* %"$$fundef_40_envp_154_load", i64 8) + %"$$fundef_40_envp_154" = bitcast i8* %"$$fundef_40_envp_154_salloc" to %"$$fundef_40_env_102"* + %"$$fundef_40_env_voidp_156" = bitcast %"$$fundef_40_env_102"* %"$$fundef_40_envp_154" to i8* + %"$$fundef_40_cloval_157" = insertvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } { %TName_Bool* (i8*, %TName_Bool*)* bitcast (%TName_Bool* (%"$$fundef_40_env_102"*, %TName_Bool*)* @"$fundef_40" to %TName_Bool* (i8*, %TName_Bool*)*), i8* undef }, i8* %"$$fundef_40_env_voidp_156", 1 + %"$$fundef_40_env_b_158" = getelementptr inbounds %"$$fundef_40_env_102", %"$$fundef_40_env_102"* %"$$fundef_40_envp_154", i32 0, i32 0 + store %TName_Bool* %1, %TName_Bool** %"$$fundef_40_env_b_158", align 8 + store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$fundef_40_cloval_157", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$retval_39", align 8, !dbg !33 + %"$$retval_39_159" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$retval_39", align 8 + ret { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$retval_39_159" } -define internal %TName_Bool* @"$fundef_44"(%"$$fundef_44_env_104"* %0, %TName_Bool* %1) !dbg !24 { +define internal %TName_Bool* @"$fundef_44"(%"$$fundef_44_env_104"* %0, %TName_Bool* %1) !dbg !34 { entry: - %"$$fundef_44_env_b_117" = getelementptr inbounds %"$$fundef_44_env_104", %"$$fundef_44_env_104"* %0, i32 0, i32 0 - %"$b_envload_118" = load %TName_Bool*, %TName_Bool** %"$$fundef_44_env_b_117", align 8 + %"$c_148" = alloca %TName_Bool*, align 8 + store %TName_Bool* %1, %TName_Bool** %"$c_148", align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$c_148", metadata !35, metadata !DIExpression()), !dbg !36 + %"$$fundef_44_env_b_118" = getelementptr inbounds %"$$fundef_44_env_104", %"$$fundef_44_env_104"* %0, i32 0, i32 0 + %"$b_envload_119" = load %TName_Bool*, %TName_Bool** %"$$fundef_44_env_b_118", align 8 %b = alloca %TName_Bool*, align 8 - store %TName_Bool* %"$b_envload_118", %TName_Bool** %b, align 8 + store %TName_Bool* %"$b_envload_119", %TName_Bool** %b, align 8 %"$retval_45" = alloca %TName_Bool*, align 8 - %"$gasrem_119" = load i64, i64* @_gasrem, align 8 - %"$gascmp_120" = icmp ugt i64 2, %"$gasrem_119" - br i1 %"$gascmp_120", label %"$out_of_gas_121", label %"$have_gas_122" - -"$out_of_gas_121": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_122" - -"$have_gas_122": ; preds = %"$out_of_gas_121", %entry - %"$consume_123" = sub i64 %"$gasrem_119", 2 - store i64 %"$consume_123", i64* @_gasrem, align 8 - %"$b_125" = load %TName_Bool*, %TName_Bool** %b, align 8 - %"$b_tag_126" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$b_125", i32 0, i32 0 - %"$b_tag_127" = load i8, i8* %"$b_tag_126", align 1 - switch i8 %"$b_tag_127", label %"$empty_default_128" [ - i8 1, label %"$False_129" - i8 0, label %"$True_139" - ], !dbg !25 - -"$False_129": ; preds = %"$have_gas_122" - %"$b_130" = bitcast %TName_Bool* %"$b_125" to %CName_False* - %"$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 = %"$False_129" - call void @_out_of_gas() - br label %"$have_gas_134" - -"$have_gas_134": ; preds = %"$out_of_gas_133", %"$False_129" - %"$consume_135" = sub i64 %"$gasrem_131", 1 - store i64 %"$consume_135", i64* @_gasrem, align 8 - %"$adtval_136_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_136_salloc" = call i8* @_salloc(i8* %"$adtval_136_load", i64 1) - %"$adtval_136" = bitcast i8* %"$adtval_136_salloc" to %CName_False* - %"$adtgep_137" = getelementptr inbounds %CName_False, %CName_False* %"$adtval_136", i32 0, i32 0 - store i8 1, i8* %"$adtgep_137", align 1 - %"$adtptr_138" = bitcast %CName_False* %"$adtval_136" to %TName_Bool* - store %TName_Bool* %"$adtptr_138", %TName_Bool** %"$retval_45", align 8, !dbg !26 - br label %"$matchsucc_124" - -"$True_139": ; preds = %"$have_gas_122" - %"$b_140" = bitcast %TName_Bool* %"$b_125" to %CName_True* - %"$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 = %"$True_139" - call void @_out_of_gas() - br label %"$have_gas_144" - -"$have_gas_144": ; preds = %"$out_of_gas_143", %"$True_139" - %"$consume_145" = sub i64 %"$gasrem_141", 1 - store i64 %"$consume_145", i64* @_gasrem, align 8 - store %TName_Bool* %1, %TName_Bool** %"$retval_45", align 8, !dbg !29 - br label %"$matchsucc_124" - -"$empty_default_128": ; preds = %"$have_gas_122" - br label %"$matchsucc_124" - -"$matchsucc_124": ; preds = %"$have_gas_144", %"$have_gas_134", %"$empty_default_128" - %"$$retval_45_146" = load %TName_Bool*, %TName_Bool** %"$retval_45", align 8 - ret %TName_Bool* %"$$retval_45_146" + call void @llvm.dbg.declare(metadata %TName_Bool** %"$retval_45", metadata !37, metadata !DIExpression()), !dbg !38 + %"$gasrem_120" = load i64, i64* @_gasrem, align 8 + %"$gascmp_121" = icmp ugt i64 2, %"$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", 2 + store i64 %"$consume_124", i64* @_gasrem, align 8 + %"$b_126" = load %TName_Bool*, %TName_Bool** %b, align 8 + %"$b_tag_127" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$b_126", i32 0, i32 0 + %"$b_tag_128" = load i8, i8* %"$b_tag_127", align 1 + switch i8 %"$b_tag_128", label %"$empty_default_129" [ + i8 1, label %"$False_130" + i8 0, label %"$True_140" + ], !dbg !38 + +"$False_130": ; preds = %"$have_gas_123" + %"$b_131" = bitcast %TName_Bool* %"$b_126" to %CName_False* + %"$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 = %"$False_130" + call void @_out_of_gas() + br label %"$have_gas_135" + +"$have_gas_135": ; preds = %"$out_of_gas_134", %"$False_130" + %"$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_False* + %"$adtgep_138" = getelementptr inbounds %CName_False, %CName_False* %"$adtval_137", i32 0, i32 0 + store i8 1, i8* %"$adtgep_138", align 1 + %"$adtptr_139" = bitcast %CName_False* %"$adtval_137" to %TName_Bool* + store %TName_Bool* %"$adtptr_139", %TName_Bool** %"$retval_45", align 8, !dbg !39 + br label %"$matchsucc_125" + +"$True_140": ; preds = %"$have_gas_123" + %"$b_141" = bitcast %TName_Bool* %"$b_126" to %CName_True* + %"$gasrem_142" = load i64, i64* @_gasrem, align 8 + %"$gascmp_143" = icmp ugt i64 1, %"$gasrem_142" + br i1 %"$gascmp_143", label %"$out_of_gas_144", label %"$have_gas_145" + +"$out_of_gas_144": ; preds = %"$True_140" + call void @_out_of_gas() + br label %"$have_gas_145" + +"$have_gas_145": ; preds = %"$out_of_gas_144", %"$True_140" + %"$consume_146" = sub i64 %"$gasrem_142", 1 + store i64 %"$consume_146", i64* @_gasrem, align 8 + store %TName_Bool* %1, %TName_Bool** %"$retval_45", align 8, !dbg !42 + br label %"$matchsucc_125" + +"$empty_default_129": ; preds = %"$have_gas_123" + br label %"$matchsucc_125" + +"$matchsucc_125": ; preds = %"$have_gas_145", %"$have_gas_135", %"$empty_default_129" + %"$$retval_45_147" = load %TName_Bool*, %TName_Bool** %"$retval_45", align 8 + ret %TName_Bool* %"$$retval_45_147" } -define internal { %TName_Bool* (i8*, %TName_Bool*)*, i8* } @"$fundef_42"(%"$$fundef_42_env_105"* %0, %TName_Bool* %1) !dbg !31 { +define internal { %TName_Bool* (i8*, %TName_Bool*)*, i8* } @"$fundef_42"(%"$$fundef_42_env_105"* %0, %TName_Bool* %1) !dbg !44 { entry: + %"$b_117" = alloca %TName_Bool*, align 8 + store %TName_Bool* %1, %TName_Bool** %"$b_117", align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$b_117", metadata !45, metadata !DIExpression()), !dbg !46 %"$retval_43" = alloca { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, align 8 %"$gasrem_106" = load i64, i64* @_gasrem, align 8 %"$gascmp_107" = icmp ugt i64 1, %"$gasrem_106" @@ -422,7 +440,7 @@ entry: %"$$fundef_44_cloval_114" = insertvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } { %TName_Bool* (i8*, %TName_Bool*)* bitcast (%TName_Bool* (%"$$fundef_44_env_104"*, %TName_Bool*)* @"$fundef_44" to %TName_Bool* (i8*, %TName_Bool*)*), i8* undef }, i8* %"$$fundef_44_env_voidp_113", 1 %"$$fundef_44_env_b_115" = getelementptr inbounds %"$$fundef_44_env_104", %"$$fundef_44_env_104"* %"$$fundef_44_envp_111", i32 0, i32 0 store %TName_Bool* %1, %TName_Bool** %"$$fundef_44_env_b_115", align 8 - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$fundef_44_cloval_114", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$retval_43", align 8, !dbg !32 + store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$fundef_44_cloval_114", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$retval_43", align 8, !dbg !47 %"$$retval_43_116" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$retval_43", align 8 ret { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$retval_43_116" } @@ -431,34 +449,25 @@ declare void @_out_of_gas() declare i8* @_salloc(i8*, i64) -define void @_init_libs() !dbg !33 { -entry: - %"$gasrem_218" = load i64, i64* @_gasrem, align 8 - %"$gascmp_219" = icmp ugt i64 5, %"$gasrem_218" - br i1 %"$gascmp_219", label %"$out_of_gas_220", label %"$have_gas_221" - -"$out_of_gas_220": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_221" +; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn +declare void @llvm.dbg.declare(metadata, metadata, metadata) #0 -"$have_gas_221": ; preds = %"$out_of_gas_220", %entry - %"$consume_222" = sub i64 %"$gasrem_218", 5 - store i64 %"$consume_222", i64* @_gasrem, align 8 - store %Int32 { i32 5 }, %Int32* @"$_gas_charge_accrec_lib_5", align 4, !dbg !35 +define void @_init_libs() !dbg !48 { +entry: %"$gasrem_223" = load i64, i64* @_gasrem, align 8 %"$gascmp_224" = icmp ugt i64 5, %"$gasrem_223" br i1 %"$gascmp_224", label %"$out_of_gas_225", label %"$have_gas_226" -"$out_of_gas_225": ; preds = %"$have_gas_221" +"$out_of_gas_225": ; preds = %entry call void @_out_of_gas() br label %"$have_gas_226" -"$have_gas_226": ; preds = %"$out_of_gas_225", %"$have_gas_221" +"$have_gas_226": ; preds = %"$out_of_gas_225", %entry %"$consume_227" = sub i64 %"$gasrem_223", 5 store i64 %"$consume_227", i64* @_gasrem, align 8 - store %Int32 { i32 5 }, %Int32* @"$_gas_charge_accBoolUtils_0", align 4, !dbg !35 + store %Int32 { i32 5 }, %Int32* @"$_gas_charge_accrec_lib_5", align 4, !dbg !50 %"$gasrem_228" = load i64, i64* @_gasrem, align 8 - %"$gascmp_229" = icmp ugt i64 1, %"$gasrem_228" + %"$gascmp_229" = icmp ugt i64 5, %"$gasrem_228" br i1 %"$gascmp_229", label %"$out_of_gas_230", label %"$have_gas_231" "$out_of_gas_230": ; preds = %"$have_gas_226" @@ -466,59 +475,59 @@ entry: br label %"$have_gas_231" "$have_gas_231": ; preds = %"$out_of_gas_230", %"$have_gas_226" - %"$consume_232" = sub i64 %"$gasrem_228", 1 + %"$consume_232" = sub i64 %"$gasrem_228", 5 store i64 %"$consume_232", 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_42_env_105"*, %TName_Bool*)* @"$fundef_42" 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 !36 - %"$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" + store %Int32 { i32 5 }, %Int32* @"$_gas_charge_accBoolUtils_0", align 4, !dbg !50 + %"$gasrem_233" = load i64, i64* @_gasrem, align 8 + %"$gascmp_234" = icmp ugt i64 1, %"$gasrem_233" + br i1 %"$gascmp_234", label %"$out_of_gas_235", label %"$have_gas_236" -"$out_of_gas_238": ; preds = %"$have_gas_231" +"$out_of_gas_235": ; preds = %"$have_gas_231" call void @_out_of_gas() - br label %"$have_gas_239" + br label %"$have_gas_236" -"$have_gas_239": ; preds = %"$out_of_gas_238", %"$have_gas_231" - %"$consume_240" = sub i64 %"$gasrem_236", 1 - store i64 %"$consume_240", 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_38_env_103"*, %TName_Bool*)* @"$fundef_38" 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 !37 - %"$gasrem_244" = load i64, i64* @_gasrem, align 8 - %"$gascmp_245" = icmp ugt i64 1, %"$gasrem_244" - br i1 %"$gascmp_245", label %"$out_of_gas_246", label %"$have_gas_247" +"$have_gas_236": ; preds = %"$out_of_gas_235", %"$have_gas_231" + %"$consume_237" = sub i64 %"$gasrem_233", 1 + store i64 %"$consume_237", 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_42_env_105"*, %TName_Bool*)* @"$fundef_42" 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 !51 + %"$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_246": ; preds = %"$have_gas_239" +"$out_of_gas_243": ; preds = %"$have_gas_236" call void @_out_of_gas() - br label %"$have_gas_247" + br label %"$have_gas_244" -"$have_gas_247": ; preds = %"$out_of_gas_246", %"$have_gas_239" - %"$consume_248" = sub i64 %"$gasrem_244", 1 - store i64 %"$consume_248", i64* @_gasrem, align 8 - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } { %TName_Bool* (i8*, %TName_Bool*)* bitcast (%TName_Bool* (%"$$fundef_36_env_101"*, %TName_Bool*)* @"$fundef_36" to %TName_Bool* (i8*, %TName_Bool*)*), i8* null }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* @BoolUtils.negb, align 8, !dbg !38 - %"$gasrem_252" = load i64, i64* @_gasrem, align 8 - %"$gascmp_253" = icmp ugt i64 196, %"$gasrem_252" - br i1 %"$gascmp_253", label %"$out_of_gas_254", label %"$have_gas_255" +"$have_gas_244": ; preds = %"$out_of_gas_243", %"$have_gas_236" + %"$consume_245" = sub i64 %"$gasrem_241", 1 + store i64 %"$consume_245", 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_38_env_103"*, %TName_Bool*)* @"$fundef_38" 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 !52 + %"$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_254": ; preds = %"$have_gas_247" +"$out_of_gas_251": ; preds = %"$have_gas_244" call void @_out_of_gas() - br label %"$have_gas_255" + br label %"$have_gas_252" -"$have_gas_255": ; preds = %"$out_of_gas_254", %"$have_gas_247" - %"$consume_256" = sub i64 %"$gasrem_252", 196 - store i64 %"$consume_256", i64* @_gasrem, align 8 - store %Int32 { i32 196 }, %Int32* @"$_gas_charge_accIntUtils_1", align 4, !dbg !35 +"$have_gas_252": ; preds = %"$out_of_gas_251", %"$have_gas_244" + %"$consume_253" = sub i64 %"$gasrem_249", 1 + store i64 %"$consume_253", i64* @_gasrem, align 8 + store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } { %TName_Bool* (i8*, %TName_Bool*)* bitcast (%TName_Bool* (%"$$fundef_36_env_101"*, %TName_Bool*)* @"$fundef_36" to %TName_Bool* (i8*, %TName_Bool*)*), i8* null }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* @BoolUtils.negb, align 8, !dbg !53 %"$gasrem_257" = load i64, i64* @_gasrem, align 8 - %"$gascmp_258" = icmp ugt i64 20, %"$gasrem_257" + %"$gascmp_258" = icmp ugt i64 196, %"$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 = %"$have_gas_252" call void @_out_of_gas() br label %"$have_gas_260" -"$have_gas_260": ; preds = %"$out_of_gas_259", %"$have_gas_255" - %"$consume_261" = sub i64 %"$gasrem_257", 20 +"$have_gas_260": ; preds = %"$out_of_gas_259", %"$have_gas_252" + %"$consume_261" = sub i64 %"$gasrem_257", 196 store i64 %"$consume_261", i64* @_gasrem, align 8 - store %Int32 { i32 20 }, %Int32* @"$_gas_charge_accListUtils_2", align 4, !dbg !35 + store %Int32 { i32 196 }, %Int32* @"$_gas_charge_accIntUtils_1", align 4, !dbg !50 %"$gasrem_262" = load i64, i64* @_gasrem, align 8 - %"$gascmp_263" = icmp ugt i64 12, %"$gasrem_262" + %"$gascmp_263" = icmp ugt i64 20, %"$gasrem_262" br i1 %"$gascmp_263", label %"$out_of_gas_264", label %"$have_gas_265" "$out_of_gas_264": ; preds = %"$have_gas_260" @@ -526,11 +535,11 @@ entry: br label %"$have_gas_265" "$have_gas_265": ; preds = %"$out_of_gas_264", %"$have_gas_260" - %"$consume_266" = sub i64 %"$gasrem_262", 12 + %"$consume_266" = sub i64 %"$gasrem_262", 20 store i64 %"$consume_266", i64* @_gasrem, align 8 - store %Int32 { i32 12 }, %Int32* @"$_gas_charge_accNatUtils_3", align 4, !dbg !35 + store %Int32 { i32 20 }, %Int32* @"$_gas_charge_accListUtils_2", align 4, !dbg !50 %"$gasrem_267" = load i64, i64* @_gasrem, align 8 - %"$gascmp_268" = icmp ugt i64 2, %"$gasrem_267" + %"$gascmp_268" = icmp ugt i64 12, %"$gasrem_267" br i1 %"$gascmp_268", label %"$out_of_gas_269", label %"$have_gas_270" "$out_of_gas_269": ; preds = %"$have_gas_265" @@ -538,39 +547,41 @@ entry: br label %"$have_gas_270" "$have_gas_270": ; preds = %"$out_of_gas_269", %"$have_gas_265" - %"$consume_271" = sub i64 %"$gasrem_267", 2 + %"$consume_271" = sub i64 %"$gasrem_267", 12 store i64 %"$consume_271", i64* @_gasrem, align 8 - store %Int32 { i32 2 }, %Int32* @"$_gas_charge_accPairUtils_4", align 4, !dbg !35 - ret void -} - -define internal %TName_Bool* @_scilla_expr_fun(i8* %0) !dbg !39 { -entry: - %"$expr_46" = alloca %TName_Bool*, align 8 + store %Int32 { i32 12 }, %Int32* @"$_gas_charge_accNatUtils_3", align 4, !dbg !50 %"$gasrem_272" = load i64, i64* @_gasrem, align 8 - %"$gascmp_273" = icmp ugt i64 1, %"$gasrem_272" + %"$gascmp_273" = icmp ugt i64 2, %"$gasrem_272" br i1 %"$gascmp_273", label %"$out_of_gas_274", label %"$have_gas_275" -"$out_of_gas_274": ; preds = %entry +"$out_of_gas_274": ; preds = %"$have_gas_270" 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 +"$have_gas_275": ; preds = %"$out_of_gas_274", %"$have_gas_270" + %"$consume_276" = sub i64 %"$gasrem_272", 2 store i64 %"$consume_276", i64* @_gasrem, align 8 - %i32a = alloca %Int32, align 8 + store %Int32 { i32 2 }, %Int32* @"$_gas_charge_accPairUtils_4", align 4, !dbg !50 + ret void +} + +define internal %TName_Bool* @_scilla_expr_fun(i8* %0) !dbg !54 { +entry: + %"$expr_46" = alloca %TName_Bool*, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$expr_46", metadata !55, metadata !DIExpression()), !dbg !56 %"$gasrem_277" = load i64, i64* @_gasrem, align 8 %"$gascmp_278" = icmp ugt i64 1, %"$gasrem_277" br i1 %"$gascmp_278", label %"$out_of_gas_279", label %"$have_gas_280" -"$out_of_gas_279": ; preds = %"$have_gas_275" +"$out_of_gas_279": ; preds = %entry call void @_out_of_gas() br label %"$have_gas_280" -"$have_gas_280": ; preds = %"$out_of_gas_279", %"$have_gas_275" +"$have_gas_280": ; preds = %"$out_of_gas_279", %entry %"$consume_281" = sub i64 %"$gasrem_277", 1 store i64 %"$consume_281", i64* @_gasrem, align 8 - store %Int32 zeroinitializer, %Int32* %i32a, align 4, !dbg !40 + %i32a = alloca %Int32, align 8 + call void @llvm.dbg.declare(metadata %Int32* %i32a, metadata !57, metadata !DIExpression()), !dbg !59 %"$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" @@ -582,7 +593,7 @@ entry: "$have_gas_285": ; preds = %"$out_of_gas_284", %"$have_gas_280" %"$consume_286" = sub i64 %"$gasrem_282", 1 store i64 %"$consume_286", i64* @_gasrem, align 8 - %i32b = alloca %Int32, align 8 + store %Int32 zeroinitializer, %Int32* %i32a, align 4, !dbg !56 %"$gasrem_287" = load i64, i64* @_gasrem, align 8 %"$gascmp_288" = icmp ugt i64 1, %"$gasrem_287" br i1 %"$gascmp_288", label %"$out_of_gas_289", label %"$have_gas_290" @@ -594,7 +605,8 @@ entry: "$have_gas_290": ; preds = %"$out_of_gas_289", %"$have_gas_285" %"$consume_291" = sub i64 %"$gasrem_287", 1 store i64 %"$consume_291", i64* @_gasrem, align 8 - store %Int32 { i32 1 }, %Int32* %i32b, align 4, !dbg !41 + %i32b = alloca %Int32, align 8 + call void @llvm.dbg.declare(metadata %Int32* %i32b, metadata !60, metadata !DIExpression()), !dbg !61 %"$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" @@ -606,7 +618,7 @@ entry: "$have_gas_295": ; preds = %"$out_of_gas_294", %"$have_gas_290" %"$consume_296" = sub i64 %"$gasrem_292", 1 store i64 %"$consume_296", i64* @_gasrem, align 8 - %i32aa = alloca %Int32, align 8 + store %Int32 { i32 1 }, %Int32* %i32b, align 4, !dbg !62 %"$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" @@ -618,7 +630,8 @@ entry: "$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 - store %Int32 zeroinitializer, %Int32* %i32aa, align 4, !dbg !42 + %i32aa = alloca %Int32, align 8 + call void @llvm.dbg.declare(metadata %Int32* %i32aa, metadata !63, metadata !DIExpression()), !dbg !64 %"$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" @@ -630,9 +643,9 @@ entry: "$have_gas_305": ; preds = %"$out_of_gas_304", %"$have_gas_300" %"$consume_306" = sub i64 %"$gasrem_302", 1 store i64 %"$consume_306", i64* @_gasrem, align 8 - %b1 = alloca %TName_Bool*, align 8 + store %Int32 zeroinitializer, %Int32* %i32aa, align 4, !dbg !65 %"$gasrem_307" = load i64, i64* @_gasrem, align 8 - %"$gascmp_308" = icmp ugt i64 4, %"$gasrem_307" + %"$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" @@ -640,65 +653,68 @@ entry: br label %"$have_gas_310" "$have_gas_310": ; preds = %"$out_of_gas_309", %"$have_gas_305" - %"$consume_311" = sub i64 %"$gasrem_307", 4 + %"$consume_311" = sub i64 %"$gasrem_307", 1 store i64 %"$consume_311", i64* @_gasrem, align 8 - %"$execptr_load_312" = load i8*, i8** @_execptr, align 8 - %"$i32a_313" = load %Int32, %Int32* %i32a, align 4 - %"$i32aa_314" = load %Int32, %Int32* %i32aa, align 4 - %"$eq_call_315" = call %TName_Bool* @_eq_Int32(i8* %"$execptr_load_312", %Int32 %"$i32a_313", %Int32 %"$i32aa_314"), !dbg !43 - store %TName_Bool* %"$eq_call_315", %TName_Bool** %b1, align 8, !dbg !43 - %"$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 - %b2 = alloca %TName_Bool*, align 8 + %b1 = alloca %TName_Bool*, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %b1, metadata !66, metadata !DIExpression()), !dbg !67 + %"$gasrem_312" = load i64, i64* @_gasrem, align 8 + %"$gascmp_313" = icmp ugt i64 4, %"$gasrem_312" + br i1 %"$gascmp_313", label %"$out_of_gas_314", label %"$have_gas_315" + +"$out_of_gas_314": ; preds = %"$have_gas_310" + call void @_out_of_gas() + br label %"$have_gas_315" + +"$have_gas_315": ; preds = %"$out_of_gas_314", %"$have_gas_310" + %"$consume_316" = sub i64 %"$gasrem_312", 4 + store i64 %"$consume_316", i64* @_gasrem, align 8 + %"$execptr_load_317" = load i8*, i8** @_execptr, align 8 + %"$i32a_318" = load %Int32, %Int32* %i32a, align 4 + %"$i32aa_319" = load %Int32, %Int32* %i32aa, align 4 + %"$eq_call_320" = call %TName_Bool* @_eq_Int32(i8* %"$execptr_load_317", %Int32 %"$i32a_318", %Int32 %"$i32aa_319"), !dbg !68 + store %TName_Bool* %"$eq_call_320", %TName_Bool** %b1, align 8, !dbg !68 %"$gasrem_322" = load i64, i64* @_gasrem, align 8 - %"$gascmp_323" = icmp ugt i64 4, %"$gasrem_322" + %"$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_320" +"$out_of_gas_324": ; preds = %"$have_gas_315" 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", 4 +"$have_gas_325": ; preds = %"$out_of_gas_324", %"$have_gas_315" + %"$consume_326" = sub i64 %"$gasrem_322", 1 store i64 %"$consume_326", i64* @_gasrem, align 8 - %"$execptr_load_327" = load i8*, i8** @_execptr, align 8 - %"$i32a_328" = load %Int32, %Int32* %i32a, align 4 - %"$i32b_329" = load %Int32, %Int32* %i32b, align 4 - %"$eq_call_330" = call %TName_Bool* @_eq_Int32(i8* %"$execptr_load_327", %Int32 %"$i32a_328", %Int32 %"$i32b_329"), !dbg !44 - store %TName_Bool* %"$eq_call_330", %TName_Bool** %b2, align 8, !dbg !44 - %"$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 = %"$have_gas_325" - call void @_out_of_gas() - br label %"$have_gas_335" - -"$have_gas_335": ; preds = %"$out_of_gas_334", %"$have_gas_325" - %"$consume_336" = sub i64 %"$gasrem_332", 1 - store i64 %"$consume_336", i64* @_gasrem, align 8 - %i128a = alloca %Uint128, align 8 + %b2 = alloca %TName_Bool*, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %b2, metadata !69, metadata !DIExpression()), !dbg !70 + %"$gasrem_327" = load i64, i64* @_gasrem, align 8 + %"$gascmp_328" = icmp ugt i64 4, %"$gasrem_327" + br i1 %"$gascmp_328", label %"$out_of_gas_329", label %"$have_gas_330" + +"$out_of_gas_329": ; preds = %"$have_gas_325" + call void @_out_of_gas() + br label %"$have_gas_330" + +"$have_gas_330": ; preds = %"$out_of_gas_329", %"$have_gas_325" + %"$consume_331" = sub i64 %"$gasrem_327", 4 + store i64 %"$consume_331", i64* @_gasrem, align 8 + %"$execptr_load_332" = load i8*, i8** @_execptr, align 8 + %"$i32a_333" = load %Int32, %Int32* %i32a, align 4 + %"$i32b_334" = load %Int32, %Int32* %i32b, align 4 + %"$eq_call_335" = call %TName_Bool* @_eq_Int32(i8* %"$execptr_load_332", %Int32 %"$i32a_333", %Int32 %"$i32b_334"), !dbg !71 + store %TName_Bool* %"$eq_call_335", %TName_Bool** %b2, align 8, !dbg !71 %"$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_339": ; preds = %"$have_gas_335" +"$out_of_gas_339": ; preds = %"$have_gas_330" call void @_out_of_gas() br label %"$have_gas_340" -"$have_gas_340": ; preds = %"$out_of_gas_339", %"$have_gas_335" +"$have_gas_340": ; preds = %"$out_of_gas_339", %"$have_gas_330" %"$consume_341" = sub i64 %"$gasrem_337", 1 store i64 %"$consume_341", i64* @_gasrem, align 8 - store %Uint128 { i128 11 }, %Uint128* %i128a, align 8, !dbg !45 + %i128a = alloca %Uint128, align 8 + call void @llvm.dbg.declare(metadata %Uint128* %i128a, metadata !72, metadata !DIExpression()), !dbg !74 %"$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" @@ -710,7 +726,7 @@ entry: "$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 - %i128b = alloca %Uint128, align 8 + store %Uint128 { i128 11 }, %Uint128* %i128a, align 8, !dbg !75 %"$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" @@ -722,7 +738,8 @@ entry: "$have_gas_350": ; preds = %"$out_of_gas_349", %"$have_gas_345" %"$consume_351" = sub i64 %"$gasrem_347", 1 store i64 %"$consume_351", i64* @_gasrem, align 8 - store %Uint128 { i128 12 }, %Uint128* %i128b, align 8, !dbg !46 + %i128b = alloca %Uint128, align 8 + call void @llvm.dbg.declare(metadata %Uint128* %i128b, metadata !76, metadata !DIExpression()), !dbg !77 %"$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" @@ -734,6 +751,7 @@ entry: "$have_gas_355": ; preds = %"$out_of_gas_354", %"$have_gas_350" %"$consume_356" = sub i64 %"$gasrem_352", 1 store i64 %"$consume_356", i64* @_gasrem, align 8 + store %Uint128 { i128 12 }, %Uint128* %i128b, align 8, !dbg !78 %"$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" @@ -756,192 +774,200 @@ entry: "$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 - %b3 = alloca %TName_Bool*, align 8 - %"$gasrem_368" = load i64, i64* @_gasrem, align 8 - %"$gascmp_369" = icmp ugt i64 8, %"$gasrem_368" - br i1 %"$gascmp_369", label %"$out_of_gas_370", label %"$have_gas_371" - -"$out_of_gas_370": ; preds = %"$have_gas_365" - call void @_out_of_gas() - br label %"$have_gas_371" - -"$have_gas_371": ; preds = %"$out_of_gas_370", %"$have_gas_365" - %"$consume_372" = sub i64 %"$gasrem_368", 8 - store i64 %"$consume_372", i64* @_gasrem, align 8 - %"$execptr_load_373" = load i8*, i8** @_execptr, align 8 - %"$i128a_374" = load %Uint128, %Uint128* %i128a, align 8 - %"$i128b_375" = load %Uint128, %Uint128* %i128b, align 8 - %"$eq_call_376" = call %TName_Bool* @_eq_Uint128(i8* %"$execptr_load_373", %Uint128 %"$i128a_374", %Uint128 %"$i128b_375"), !dbg !47 - store %TName_Bool* %"$eq_call_376", %TName_Bool** %b3, align 8, !dbg !47 - %"$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" + %"$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_380": ; preds = %"$have_gas_371" +"$out_of_gas_369": ; preds = %"$have_gas_365" call void @_out_of_gas() - br label %"$have_gas_381" + br label %"$have_gas_370" -"$have_gas_381": ; preds = %"$out_of_gas_380", %"$have_gas_371" - %"$consume_382" = sub i64 %"$gasrem_378", 1 - store i64 %"$consume_382", 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 + %b3 = alloca %TName_Bool*, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %b3, metadata !79, metadata !DIExpression()), !dbg !80 + %"$gasrem_373" = load i64, i64* @_gasrem, align 8 + %"$gascmp_374" = icmp ugt i64 8, %"$gasrem_373" + br i1 %"$gascmp_374", label %"$out_of_gas_375", label %"$have_gas_376" + +"$out_of_gas_375": ; preds = %"$have_gas_370" + call void @_out_of_gas() + br label %"$have_gas_376" + +"$have_gas_376": ; preds = %"$out_of_gas_375", %"$have_gas_370" + %"$consume_377" = sub i64 %"$gasrem_373", 8 + store i64 %"$consume_377", i64* @_gasrem, align 8 + %"$execptr_load_378" = load i8*, i8** @_execptr, align 8 + %"$i128a_379" = load %Uint128, %Uint128* %i128a, align 8 + %"$i128b_380" = load %Uint128, %Uint128* %i128b, align 8 + %"$eq_call_381" = call %TName_Bool* @_eq_Uint128(i8* %"$execptr_load_378", %Uint128 %"$i128a_379", %Uint128 %"$i128b_380"), !dbg !81 + store %TName_Bool* %"$eq_call_381", %TName_Bool** %b3, align 8, !dbg !81 + %"$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_376" + call void @_out_of_gas() + br label %"$have_gas_386" + +"$have_gas_386": ; preds = %"$out_of_gas_385", %"$have_gas_376" + %"$consume_387" = sub i64 %"$gasrem_383", 1 + store i64 %"$consume_387", i64* @_gasrem, align 8 %b4 = alloca %TName_Bool*, align 8 - %"$gasrem_384" = load i64, i64* @_gasrem, align 8 - %"$gascmp_385" = icmp ugt i64 8, %"$gasrem_384" - br i1 %"$gascmp_385", label %"$out_of_gas_386", label %"$have_gas_387" - -"$out_of_gas_386": ; preds = %"$have_gas_381" - call void @_out_of_gas() - br label %"$have_gas_387" - -"$have_gas_387": ; preds = %"$out_of_gas_386", %"$have_gas_381" - %"$consume_388" = sub i64 %"$gasrem_384", 8 - store i64 %"$consume_388", i64* @_gasrem, align 8 - %"$execptr_load_389" = load i8*, i8** @_execptr, align 8 - %"$i128a_390" = load %Uint128, %Uint128* %i128a, align 8 - %"$i128a_391" = load %Uint128, %Uint128* %i128a, align 8 - %"$eq_call_392" = call %TName_Bool* @_eq_Uint128(i8* %"$execptr_load_389", %Uint128 %"$i128a_390", %Uint128 %"$i128a_391"), !dbg !48 - store %TName_Bool* %"$eq_call_392", %TName_Bool** %b4, align 8, !dbg !48 - %"$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 = %"$have_gas_387" - call void @_out_of_gas() - br label %"$have_gas_397" - -"$have_gas_397": ; preds = %"$out_of_gas_396", %"$have_gas_387" - %"$consume_398" = sub i64 %"$gasrem_394", 1 - store i64 %"$consume_398", i64* @_gasrem, align 8 - %b5 = alloca %TName_Bool*, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %b4, metadata !82, metadata !DIExpression()), !dbg !83 + %"$gasrem_389" = load i64, i64* @_gasrem, align 8 + %"$gascmp_390" = icmp ugt i64 8, %"$gasrem_389" + br i1 %"$gascmp_390", label %"$out_of_gas_391", label %"$have_gas_392" + +"$out_of_gas_391": ; preds = %"$have_gas_386" + call void @_out_of_gas() + br label %"$have_gas_392" + +"$have_gas_392": ; preds = %"$out_of_gas_391", %"$have_gas_386" + %"$consume_393" = sub i64 %"$gasrem_389", 8 + store i64 %"$consume_393", i64* @_gasrem, align 8 + %"$execptr_load_394" = load i8*, i8** @_execptr, align 8 + %"$i128a_395" = load %Uint128, %Uint128* %i128a, align 8 + %"$i128a_396" = load %Uint128, %Uint128* %i128a, align 8 + %"$eq_call_397" = call %TName_Bool* @_eq_Uint128(i8* %"$execptr_load_394", %Uint128 %"$i128a_395", %Uint128 %"$i128a_396"), !dbg !84 + store %TName_Bool* %"$eq_call_397", %TName_Bool** %b4, align 8, !dbg !84 %"$gasrem_399" = load i64, i64* @_gasrem, align 8 %"$gascmp_400" = icmp ugt i64 1, %"$gasrem_399" br i1 %"$gascmp_400", label %"$out_of_gas_401", label %"$have_gas_402" -"$out_of_gas_401": ; preds = %"$have_gas_397" +"$out_of_gas_401": ; preds = %"$have_gas_392" call void @_out_of_gas() br label %"$have_gas_402" -"$have_gas_402": ; preds = %"$out_of_gas_401", %"$have_gas_397" +"$have_gas_402": ; preds = %"$out_of_gas_401", %"$have_gas_392" %"$consume_403" = sub i64 %"$gasrem_399", 1 store i64 %"$consume_403", i64* @_gasrem, align 8 + %b5 = alloca %TName_Bool*, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %b5, metadata !85, metadata !DIExpression()), !dbg !86 + %"$gasrem_404" = load i64, i64* @_gasrem, align 8 + %"$gascmp_405" = icmp ugt i64 1, %"$gasrem_404" + br i1 %"$gascmp_405", label %"$out_of_gas_406", label %"$have_gas_407" + +"$out_of_gas_406": ; preds = %"$have_gas_402" + call void @_out_of_gas() + br label %"$have_gas_407" + +"$have_gas_407": ; preds = %"$out_of_gas_406", %"$have_gas_402" + %"$consume_408" = sub i64 %"$gasrem_404", 1 + store i64 %"$consume_408", i64* @_gasrem, align 8 %"$BoolUtils.andb_7" = alloca { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, align 8 - %"$BoolUtils.andb_404" = 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_405" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_404", 0 - %"$BoolUtils.andb_envptr_406" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_404", 1 - %"$b1_407" = load %TName_Bool*, %TName_Bool** %b1, align 8 - %"$BoolUtils.andb_call_408" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_405"(i8* %"$BoolUtils.andb_envptr_406", %TName_Bool* %"$b1_407"), !dbg !49 - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_408", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_7", align 8, !dbg !49 + %"$BoolUtils.andb_409" = 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_410" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_409", 0 + %"$BoolUtils.andb_envptr_411" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_409", 1 + %"$b1_412" = load %TName_Bool*, %TName_Bool** %b1, align 8 + %"$BoolUtils.andb_call_413" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_410"(i8* %"$BoolUtils.andb_envptr_411", %TName_Bool* %"$b1_412"), !dbg !87 + store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_413", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_7", align 8, !dbg !87 %"$BoolUtils.andb_8" = alloca %TName_Bool*, align 8 - %"$$BoolUtils.andb_7_409" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_7", align 8 - %"$$BoolUtils.andb_7_fptr_410" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_7_409", 0 - %"$$BoolUtils.andb_7_envptr_411" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_7_409", 1 - %"$b2_412" = load %TName_Bool*, %TName_Bool** %b2, align 8 - %"$$BoolUtils.andb_7_call_413" = call %TName_Bool* %"$$BoolUtils.andb_7_fptr_410"(i8* %"$$BoolUtils.andb_7_envptr_411", %TName_Bool* %"$b2_412"), !dbg !49 - store %TName_Bool* %"$$BoolUtils.andb_7_call_413", %TName_Bool** %"$BoolUtils.andb_8", align 8, !dbg !49 - %"$$BoolUtils.andb_8_414" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_8", align 8 - store %TName_Bool* %"$$BoolUtils.andb_8_414", %TName_Bool** %b5, align 8, !dbg !49 - %"$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_402" - call void @_out_of_gas() - br label %"$have_gas_418" - -"$have_gas_418": ; preds = %"$out_of_gas_417", %"$have_gas_402" - %"$consume_419" = sub i64 %"$gasrem_415", 1 - store i64 %"$consume_419", i64* @_gasrem, align 8 - %b6 = alloca %TName_Bool*, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$BoolUtils.andb_8", metadata !88, metadata !DIExpression()), !dbg !87 + %"$$BoolUtils.andb_7_414" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_7", align 8 + %"$$BoolUtils.andb_7_fptr_415" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_7_414", 0 + %"$$BoolUtils.andb_7_envptr_416" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_7_414", 1 + %"$b2_417" = load %TName_Bool*, %TName_Bool** %b2, align 8 + %"$$BoolUtils.andb_7_call_418" = call %TName_Bool* %"$$BoolUtils.andb_7_fptr_415"(i8* %"$$BoolUtils.andb_7_envptr_416", %TName_Bool* %"$b2_417"), !dbg !87 + store %TName_Bool* %"$$BoolUtils.andb_7_call_418", %TName_Bool** %"$BoolUtils.andb_8", align 8, !dbg !87 + %"$$BoolUtils.andb_8_419" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_8", align 8 + store %TName_Bool* %"$$BoolUtils.andb_8_419", %TName_Bool** %b5, align 8, !dbg !87 %"$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" +"$out_of_gas_422": ; preds = %"$have_gas_407" call void @_out_of_gas() br label %"$have_gas_423" -"$have_gas_423": ; preds = %"$out_of_gas_422", %"$have_gas_418" +"$have_gas_423": ; preds = %"$out_of_gas_422", %"$have_gas_407" %"$consume_424" = sub i64 %"$gasrem_420", 1 store i64 %"$consume_424", i64* @_gasrem, align 8 + %b6 = alloca %TName_Bool*, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %b6, metadata !89, metadata !DIExpression()), !dbg !90 + %"$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_428" + +"$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 %"$BoolUtils.orb_9" = alloca { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, align 8 - %"$BoolUtils.orb_425" = 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_426" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.orb_425", 0 - %"$BoolUtils.orb_envptr_427" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.orb_425", 1 - %"$b3_428" = load %TName_Bool*, %TName_Bool** %b3, align 8 - %"$BoolUtils.orb_call_429" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.orb_fptr_426"(i8* %"$BoolUtils.orb_envptr_427", %TName_Bool* %"$b3_428"), !dbg !50 - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.orb_call_429", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.orb_9", align 8, !dbg !50 + %"$BoolUtils.orb_430" = 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_431" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.orb_430", 0 + %"$BoolUtils.orb_envptr_432" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.orb_430", 1 + %"$b3_433" = load %TName_Bool*, %TName_Bool** %b3, align 8 + %"$BoolUtils.orb_call_434" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.orb_fptr_431"(i8* %"$BoolUtils.orb_envptr_432", %TName_Bool* %"$b3_433"), !dbg !91 + store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.orb_call_434", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.orb_9", align 8, !dbg !91 %"$BoolUtils.orb_10" = alloca %TName_Bool*, align 8 - %"$$BoolUtils.orb_9_430" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.orb_9", align 8 - %"$$BoolUtils.orb_9_fptr_431" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.orb_9_430", 0 - %"$$BoolUtils.orb_9_envptr_432" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.orb_9_430", 1 - %"$b4_433" = load %TName_Bool*, %TName_Bool** %b4, align 8 - %"$$BoolUtils.orb_9_call_434" = call %TName_Bool* %"$$BoolUtils.orb_9_fptr_431"(i8* %"$$BoolUtils.orb_9_envptr_432", %TName_Bool* %"$b4_433"), !dbg !50 - store %TName_Bool* %"$$BoolUtils.orb_9_call_434", %TName_Bool** %"$BoolUtils.orb_10", align 8, !dbg !50 - %"$$BoolUtils.orb_10_435" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.orb_10", align 8 - store %TName_Bool* %"$$BoolUtils.orb_10_435", %TName_Bool** %b6, align 8, !dbg !50 - %"$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 - %b7 = alloca %TName_Bool*, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$BoolUtils.orb_10", metadata !92, metadata !DIExpression()), !dbg !91 + %"$$BoolUtils.orb_9_435" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.orb_9", align 8 + %"$$BoolUtils.orb_9_fptr_436" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.orb_9_435", 0 + %"$$BoolUtils.orb_9_envptr_437" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.orb_9_435", 1 + %"$b4_438" = load %TName_Bool*, %TName_Bool** %b4, align 8 + %"$$BoolUtils.orb_9_call_439" = call %TName_Bool* %"$$BoolUtils.orb_9_fptr_436"(i8* %"$$BoolUtils.orb_9_envptr_437", %TName_Bool* %"$b4_438"), !dbg !91 + store %TName_Bool* %"$$BoolUtils.orb_9_call_439", %TName_Bool** %"$BoolUtils.orb_10", align 8, !dbg !91 + %"$$BoolUtils.orb_10_440" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.orb_10", align 8 + store %TName_Bool* %"$$BoolUtils.orb_10_440", %TName_Bool** %b6, align 8, !dbg !91 %"$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" -"$out_of_gas_443": ; preds = %"$have_gas_439" +"$out_of_gas_443": ; preds = %"$have_gas_428" call void @_out_of_gas() br label %"$have_gas_444" -"$have_gas_444": ; preds = %"$out_of_gas_443", %"$have_gas_439" +"$have_gas_444": ; preds = %"$out_of_gas_443", %"$have_gas_428" %"$consume_445" = sub i64 %"$gasrem_441", 1 store i64 %"$consume_445", i64* @_gasrem, align 8 + %b7 = alloca %TName_Bool*, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %b7, metadata !93, metadata !DIExpression()), !dbg !94 + %"$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" + +"$out_of_gas_448": ; preds = %"$have_gas_444" + call void @_out_of_gas() + br label %"$have_gas_449" + +"$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 %"$BoolUtils.andb_11" = alloca { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, align 8 - %"$BoolUtils.andb_446" = 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_447" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_446", 0 - %"$BoolUtils.andb_envptr_448" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_446", 1 - %"$b5_449" = load %TName_Bool*, %TName_Bool** %b5, align 8 - %"$BoolUtils.andb_call_450" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_447"(i8* %"$BoolUtils.andb_envptr_448", %TName_Bool* %"$b5_449"), !dbg !51 - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_450", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_11", align 8, !dbg !51 + %"$BoolUtils.andb_451" = 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_452" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_451", 0 + %"$BoolUtils.andb_envptr_453" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_451", 1 + %"$b5_454" = load %TName_Bool*, %TName_Bool** %b5, align 8 + %"$BoolUtils.andb_call_455" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_452"(i8* %"$BoolUtils.andb_envptr_453", %TName_Bool* %"$b5_454"), !dbg !95 + store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_455", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_11", align 8, !dbg !95 %"$BoolUtils.andb_12" = alloca %TName_Bool*, align 8 - %"$$BoolUtils.andb_11_451" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_11", align 8 - %"$$BoolUtils.andb_11_fptr_452" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_11_451", 0 - %"$$BoolUtils.andb_11_envptr_453" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_11_451", 1 - %"$b6_454" = load %TName_Bool*, %TName_Bool** %b6, align 8 - %"$$BoolUtils.andb_11_call_455" = call %TName_Bool* %"$$BoolUtils.andb_11_fptr_452"(i8* %"$$BoolUtils.andb_11_envptr_453", %TName_Bool* %"$b6_454"), !dbg !51 - store %TName_Bool* %"$$BoolUtils.andb_11_call_455", %TName_Bool** %"$BoolUtils.andb_12", align 8, !dbg !51 - %"$$BoolUtils.andb_12_456" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_12", align 8 - store %TName_Bool* %"$$BoolUtils.andb_12_456", %TName_Bool** %b7, align 8, !dbg !51 - %"$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_459": ; preds = %"$have_gas_444" - call void @_out_of_gas() - br label %"$have_gas_460" - -"$have_gas_460": ; preds = %"$out_of_gas_459", %"$have_gas_444" - %"$consume_461" = sub i64 %"$gasrem_457", 1 - store i64 %"$consume_461", i64* @_gasrem, align 8 - %ui256a = alloca %Uint128, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$BoolUtils.andb_12", metadata !96, metadata !DIExpression()), !dbg !95 + %"$$BoolUtils.andb_11_456" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_11", align 8 + %"$$BoolUtils.andb_11_fptr_457" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_11_456", 0 + %"$$BoolUtils.andb_11_envptr_458" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_11_456", 1 + %"$b6_459" = load %TName_Bool*, %TName_Bool** %b6, align 8 + %"$$BoolUtils.andb_11_call_460" = call %TName_Bool* %"$$BoolUtils.andb_11_fptr_457"(i8* %"$$BoolUtils.andb_11_envptr_458", %TName_Bool* %"$b6_459"), !dbg !95 + store %TName_Bool* %"$$BoolUtils.andb_11_call_460", %TName_Bool** %"$BoolUtils.andb_12", align 8, !dbg !95 + %"$$BoolUtils.andb_12_461" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_12", align 8 + store %TName_Bool* %"$$BoolUtils.andb_12_461", %TName_Bool** %b7, align 8, !dbg !95 %"$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 = %"$have_gas_460" +"$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_460" +"$have_gas_465": ; preds = %"$out_of_gas_464", %"$have_gas_449" %"$consume_466" = sub i64 %"$gasrem_462", 1 store i64 %"$consume_466", i64* @_gasrem, align 8 - store %Uint128 { i128 11 }, %Uint128* %ui256a, align 8, !dbg !52 + %ui256a = alloca %Uint128, align 8 + call void @llvm.dbg.declare(metadata %Uint128* %ui256a, metadata !97, metadata !DIExpression()), !dbg !98 %"$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" @@ -953,7 +979,7 @@ entry: "$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 - %ui256b = alloca %Uint128, align 8 + store %Uint128 { i128 11 }, %Uint128* %ui256a, align 8, !dbg !99 %"$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" @@ -965,7 +991,8 @@ entry: "$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 %Uint128 { i128 12 }, %Uint128* %ui256b, align 8, !dbg !53 + %ui256b = alloca %Uint128, align 8 + call void @llvm.dbg.declare(metadata %Uint128* %ui256b, metadata !100, metadata !DIExpression()), !dbg !101 %"$gasrem_477" = load i64, i64* @_gasrem, align 8 %"$gascmp_478" = icmp ugt i64 1, %"$gasrem_477" br i1 %"$gascmp_478", label %"$out_of_gas_479", label %"$have_gas_480" @@ -977,6 +1004,7 @@ entry: "$have_gas_480": ; preds = %"$out_of_gas_479", %"$have_gas_475" %"$consume_481" = sub i64 %"$gasrem_477", 1 store i64 %"$consume_481", i64* @_gasrem, align 8 + store %Uint128 { i128 12 }, %Uint128* %ui256b, align 8, !dbg !102 %"$gasrem_482" = load i64, i64* @_gasrem, align 8 %"$gascmp_483" = icmp ugt i64 1, %"$gasrem_482" br i1 %"$gascmp_483", label %"$out_of_gas_484", label %"$have_gas_485" @@ -999,381 +1027,396 @@ entry: "$have_gas_490": ; preds = %"$out_of_gas_489", %"$have_gas_485" %"$consume_491" = sub i64 %"$gasrem_487", 1 store i64 %"$consume_491", i64* @_gasrem, align 8 - %b8 = alloca %TName_Bool*, align 8 - %"$gasrem_493" = load i64, i64* @_gasrem, align 8 - %"$gascmp_494" = icmp ugt i64 8, %"$gasrem_493" - br i1 %"$gascmp_494", label %"$out_of_gas_495", label %"$have_gas_496" + %"$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_495": ; preds = %"$have_gas_490" +"$out_of_gas_494": ; preds = %"$have_gas_490" call void @_out_of_gas() - br label %"$have_gas_496" - -"$have_gas_496": ; preds = %"$out_of_gas_495", %"$have_gas_490" - %"$consume_497" = sub i64 %"$gasrem_493", 8 - store i64 %"$consume_497", i64* @_gasrem, align 8 - %"$execptr_load_498" = load i8*, i8** @_execptr, align 8 - %"$ui256a_499" = load %Uint128, %Uint128* %ui256a, align 8 - %"$ui256b_500" = load %Uint128, %Uint128* %ui256b, align 8 - %"$eq_call_501" = call %TName_Bool* @_eq_Uint128(i8* %"$execptr_load_498", %Uint128 %"$ui256a_499", %Uint128 %"$ui256b_500"), !dbg !54 - store %TName_Bool* %"$eq_call_501", %TName_Bool** %b8, align 8, !dbg !54 - %"$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" + br label %"$have_gas_495" -"$out_of_gas_505": ; preds = %"$have_gas_496" - call void @_out_of_gas() - br label %"$have_gas_506" - -"$have_gas_506": ; preds = %"$out_of_gas_505", %"$have_gas_496" - %"$consume_507" = sub i64 %"$gasrem_503", 1 - store i64 %"$consume_507", i64* @_gasrem, align 8 +"$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 + %b8 = alloca %TName_Bool*, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %b8, metadata !103, metadata !DIExpression()), !dbg !104 + %"$gasrem_498" = load i64, i64* @_gasrem, align 8 + %"$gascmp_499" = icmp ugt i64 8, %"$gasrem_498" + br i1 %"$gascmp_499", label %"$out_of_gas_500", label %"$have_gas_501" + +"$out_of_gas_500": ; preds = %"$have_gas_495" + call void @_out_of_gas() + br label %"$have_gas_501" + +"$have_gas_501": ; preds = %"$out_of_gas_500", %"$have_gas_495" + %"$consume_502" = sub i64 %"$gasrem_498", 8 + store i64 %"$consume_502", i64* @_gasrem, align 8 + %"$execptr_load_503" = load i8*, i8** @_execptr, align 8 + %"$ui256a_504" = load %Uint128, %Uint128* %ui256a, align 8 + %"$ui256b_505" = load %Uint128, %Uint128* %ui256b, align 8 + %"$eq_call_506" = call %TName_Bool* @_eq_Uint128(i8* %"$execptr_load_503", %Uint128 %"$ui256a_504", %Uint128 %"$ui256b_505"), !dbg !105 + store %TName_Bool* %"$eq_call_506", %TName_Bool** %b8, align 8, !dbg !105 + %"$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" + +"$out_of_gas_510": ; preds = %"$have_gas_501" + call void @_out_of_gas() + br label %"$have_gas_511" + +"$have_gas_511": ; preds = %"$out_of_gas_510", %"$have_gas_501" + %"$consume_512" = sub i64 %"$gasrem_508", 1 + store i64 %"$consume_512", i64* @_gasrem, align 8 %b9 = alloca %TName_Bool*, align 8 - %"$gasrem_509" = load i64, i64* @_gasrem, align 8 - %"$gascmp_510" = icmp ugt i64 8, %"$gasrem_509" - br i1 %"$gascmp_510", label %"$out_of_gas_511", label %"$have_gas_512" - -"$out_of_gas_511": ; preds = %"$have_gas_506" - call void @_out_of_gas() - br label %"$have_gas_512" - -"$have_gas_512": ; preds = %"$out_of_gas_511", %"$have_gas_506" - %"$consume_513" = sub i64 %"$gasrem_509", 8 - store i64 %"$consume_513", i64* @_gasrem, align 8 - %"$execptr_load_514" = load i8*, i8** @_execptr, align 8 - %"$ui256a_515" = load %Uint128, %Uint128* %ui256a, align 8 - %"$ui256a_516" = load %Uint128, %Uint128* %ui256a, align 8 - %"$eq_call_517" = call %TName_Bool* @_eq_Uint128(i8* %"$execptr_load_514", %Uint128 %"$ui256a_515", %Uint128 %"$ui256a_516"), !dbg !55 - store %TName_Bool* %"$eq_call_517", %TName_Bool** %b9, align 8, !dbg !55 - %"$gasrem_519" = load i64, i64* @_gasrem, align 8 - %"$gascmp_520" = icmp ugt i64 1, %"$gasrem_519" - br i1 %"$gascmp_520", label %"$out_of_gas_521", label %"$have_gas_522" - -"$out_of_gas_521": ; preds = %"$have_gas_512" - call void @_out_of_gas() - br label %"$have_gas_522" - -"$have_gas_522": ; preds = %"$out_of_gas_521", %"$have_gas_512" - %"$consume_523" = sub i64 %"$gasrem_519", 1 - store i64 %"$consume_523", i64* @_gasrem, align 8 - %b10 = alloca %TName_Bool*, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %b9, metadata !106, metadata !DIExpression()), !dbg !107 + %"$gasrem_514" = load i64, i64* @_gasrem, align 8 + %"$gascmp_515" = icmp ugt i64 8, %"$gasrem_514" + br i1 %"$gascmp_515", label %"$out_of_gas_516", label %"$have_gas_517" + +"$out_of_gas_516": ; preds = %"$have_gas_511" + call void @_out_of_gas() + br label %"$have_gas_517" + +"$have_gas_517": ; preds = %"$out_of_gas_516", %"$have_gas_511" + %"$consume_518" = sub i64 %"$gasrem_514", 8 + store i64 %"$consume_518", i64* @_gasrem, align 8 + %"$execptr_load_519" = load i8*, i8** @_execptr, align 8 + %"$ui256a_520" = load %Uint128, %Uint128* %ui256a, align 8 + %"$ui256a_521" = load %Uint128, %Uint128* %ui256a, align 8 + %"$eq_call_522" = call %TName_Bool* @_eq_Uint128(i8* %"$execptr_load_519", %Uint128 %"$ui256a_520", %Uint128 %"$ui256a_521"), !dbg !108 + store %TName_Bool* %"$eq_call_522", %TName_Bool** %b9, align 8, !dbg !108 %"$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 = %"$have_gas_522" +"$out_of_gas_526": ; preds = %"$have_gas_517" call void @_out_of_gas() br label %"$have_gas_527" -"$have_gas_527": ; preds = %"$out_of_gas_526", %"$have_gas_522" +"$have_gas_527": ; preds = %"$out_of_gas_526", %"$have_gas_517" %"$consume_528" = sub i64 %"$gasrem_524", 1 store i64 %"$consume_528", i64* @_gasrem, align 8 + %b10 = alloca %TName_Bool*, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %b10, metadata !109, metadata !DIExpression()), !dbg !110 + %"$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" + +"$out_of_gas_531": ; preds = %"$have_gas_527" + call void @_out_of_gas() + br label %"$have_gas_532" + +"$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 %"$BoolUtils.andb_13" = alloca { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, align 8 - %"$BoolUtils.andb_529" = 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_530" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_529", 0 - %"$BoolUtils.andb_envptr_531" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_529", 1 - %"$b7_532" = load %TName_Bool*, %TName_Bool** %b7, align 8 - %"$BoolUtils.andb_call_533" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_530"(i8* %"$BoolUtils.andb_envptr_531", %TName_Bool* %"$b7_532"), !dbg !56 - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_533", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_13", align 8, !dbg !56 + %"$BoolUtils.andb_534" = 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_535" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_534", 0 + %"$BoolUtils.andb_envptr_536" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_534", 1 + %"$b7_537" = load %TName_Bool*, %TName_Bool** %b7, align 8 + %"$BoolUtils.andb_call_538" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_535"(i8* %"$BoolUtils.andb_envptr_536", %TName_Bool* %"$b7_537"), !dbg !111 + store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_538", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_13", align 8, !dbg !111 %"$BoolUtils.andb_14" = alloca %TName_Bool*, align 8 - %"$$BoolUtils.andb_13_534" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_13", align 8 - %"$$BoolUtils.andb_13_fptr_535" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_13_534", 0 - %"$$BoolUtils.andb_13_envptr_536" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_13_534", 1 - %"$b8_537" = load %TName_Bool*, %TName_Bool** %b8, align 8 - %"$$BoolUtils.andb_13_call_538" = call %TName_Bool* %"$$BoolUtils.andb_13_fptr_535"(i8* %"$$BoolUtils.andb_13_envptr_536", %TName_Bool* %"$b8_537"), !dbg !56 - store %TName_Bool* %"$$BoolUtils.andb_13_call_538", %TName_Bool** %"$BoolUtils.andb_14", align 8, !dbg !56 - %"$$BoolUtils.andb_14_539" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_14", align 8 - store %TName_Bool* %"$$BoolUtils.andb_14_539", %TName_Bool** %b10, align 8, !dbg !56 - %"$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_527" - call void @_out_of_gas() - br label %"$have_gas_543" - -"$have_gas_543": ; preds = %"$out_of_gas_542", %"$have_gas_527" - %"$consume_544" = sub i64 %"$gasrem_540", 1 - store i64 %"$consume_544", i64* @_gasrem, align 8 - %b11 = alloca %TName_Bool*, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$BoolUtils.andb_14", metadata !112, metadata !DIExpression()), !dbg !111 + %"$$BoolUtils.andb_13_539" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_13", align 8 + %"$$BoolUtils.andb_13_fptr_540" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_13_539", 0 + %"$$BoolUtils.andb_13_envptr_541" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_13_539", 1 + %"$b8_542" = load %TName_Bool*, %TName_Bool** %b8, align 8 + %"$$BoolUtils.andb_13_call_543" = call %TName_Bool* %"$$BoolUtils.andb_13_fptr_540"(i8* %"$$BoolUtils.andb_13_envptr_541", %TName_Bool* %"$b8_542"), !dbg !111 + store %TName_Bool* %"$$BoolUtils.andb_13_call_543", %TName_Bool** %"$BoolUtils.andb_14", align 8, !dbg !111 + %"$$BoolUtils.andb_14_544" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_14", align 8 + store %TName_Bool* %"$$BoolUtils.andb_14_544", %TName_Bool** %b10, align 8, !dbg !111 %"$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" +"$out_of_gas_547": ; preds = %"$have_gas_532" call void @_out_of_gas() br label %"$have_gas_548" -"$have_gas_548": ; preds = %"$out_of_gas_547", %"$have_gas_543" +"$have_gas_548": ; preds = %"$out_of_gas_547", %"$have_gas_532" %"$consume_549" = sub i64 %"$gasrem_545", 1 store i64 %"$consume_549", i64* @_gasrem, align 8 + %b11 = alloca %TName_Bool*, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %b11, metadata !113, metadata !DIExpression()), !dbg !114 + %"$gasrem_550" = load i64, i64* @_gasrem, align 8 + %"$gascmp_551" = icmp ugt i64 1, %"$gasrem_550" + br i1 %"$gascmp_551", label %"$out_of_gas_552", label %"$have_gas_553" + +"$out_of_gas_552": ; preds = %"$have_gas_548" + call void @_out_of_gas() + br label %"$have_gas_553" + +"$have_gas_553": ; preds = %"$out_of_gas_552", %"$have_gas_548" + %"$consume_554" = sub i64 %"$gasrem_550", 1 + store i64 %"$consume_554", i64* @_gasrem, align 8 %"$BoolUtils.orb_15" = alloca { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, align 8 - %"$BoolUtils.orb_550" = 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_551" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.orb_550", 0 - %"$BoolUtils.orb_envptr_552" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.orb_550", 1 - %"$b10_553" = load %TName_Bool*, %TName_Bool** %b10, align 8 - %"$BoolUtils.orb_call_554" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.orb_fptr_551"(i8* %"$BoolUtils.orb_envptr_552", %TName_Bool* %"$b10_553"), !dbg !57 - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.orb_call_554", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.orb_15", align 8, !dbg !57 + %"$BoolUtils.orb_555" = 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_556" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.orb_555", 0 + %"$BoolUtils.orb_envptr_557" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.orb_555", 1 + %"$b10_558" = load %TName_Bool*, %TName_Bool** %b10, align 8 + %"$BoolUtils.orb_call_559" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.orb_fptr_556"(i8* %"$BoolUtils.orb_envptr_557", %TName_Bool* %"$b10_558"), !dbg !115 + store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.orb_call_559", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.orb_15", align 8, !dbg !115 %"$BoolUtils.orb_16" = alloca %TName_Bool*, align 8 - %"$$BoolUtils.orb_15_555" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.orb_15", align 8 - %"$$BoolUtils.orb_15_fptr_556" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.orb_15_555", 0 - %"$$BoolUtils.orb_15_envptr_557" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.orb_15_555", 1 - %"$b9_558" = load %TName_Bool*, %TName_Bool** %b9, align 8 - %"$$BoolUtils.orb_15_call_559" = call %TName_Bool* %"$$BoolUtils.orb_15_fptr_556"(i8* %"$$BoolUtils.orb_15_envptr_557", %TName_Bool* %"$b9_558"), !dbg !57 - store %TName_Bool* %"$$BoolUtils.orb_15_call_559", %TName_Bool** %"$BoolUtils.orb_16", align 8, !dbg !57 - %"$$BoolUtils.orb_16_560" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.orb_16", align 8 - store %TName_Bool* %"$$BoolUtils.orb_16_560", %TName_Bool** %b11, align 8, !dbg !57 - %"$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_563": ; preds = %"$have_gas_548" - call void @_out_of_gas() - br label %"$have_gas_564" - -"$have_gas_564": ; preds = %"$out_of_gas_563", %"$have_gas_548" - %"$consume_565" = sub i64 %"$gasrem_561", 1 - store i64 %"$consume_565", i64* @_gasrem, align 8 - %s1 = alloca %String, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$BoolUtils.orb_16", metadata !116, metadata !DIExpression()), !dbg !115 + %"$$BoolUtils.orb_15_560" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.orb_15", align 8 + %"$$BoolUtils.orb_15_fptr_561" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.orb_15_560", 0 + %"$$BoolUtils.orb_15_envptr_562" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.orb_15_560", 1 + %"$b9_563" = load %TName_Bool*, %TName_Bool** %b9, align 8 + %"$$BoolUtils.orb_15_call_564" = call %TName_Bool* %"$$BoolUtils.orb_15_fptr_561"(i8* %"$$BoolUtils.orb_15_envptr_562", %TName_Bool* %"$b9_563"), !dbg !115 + store %TName_Bool* %"$$BoolUtils.orb_15_call_564", %TName_Bool** %"$BoolUtils.orb_16", align 8, !dbg !115 + %"$$BoolUtils.orb_16_565" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.orb_16", align 8 + store %TName_Bool* %"$$BoolUtils.orb_16_565", %TName_Bool** %b11, align 8, !dbg !115 %"$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_568": ; preds = %"$have_gas_564" +"$out_of_gas_568": ; preds = %"$have_gas_553" call void @_out_of_gas() br label %"$have_gas_569" -"$have_gas_569": ; preds = %"$out_of_gas_568", %"$have_gas_564" +"$have_gas_569": ; preds = %"$out_of_gas_568", %"$have_gas_553" %"$consume_570" = sub i64 %"$gasrem_566", 1 store i64 %"$consume_570", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_571", i32 0, i32 0), i32 5 }, %String* %s1, align 8, !dbg !58 - %"$gasrem_572" = load i64, i64* @_gasrem, align 8 - %"$gascmp_573" = icmp ugt i64 1, %"$gasrem_572" - br i1 %"$gascmp_573", label %"$out_of_gas_574", label %"$have_gas_575" + %s1 = alloca %String, align 8 + call void @llvm.dbg.declare(metadata %String* %s1, metadata !117, metadata !DIExpression()), !dbg !119 + %"$gasrem_571" = load i64, i64* @_gasrem, align 8 + %"$gascmp_572" = icmp ugt i64 1, %"$gasrem_571" + br i1 %"$gascmp_572", label %"$out_of_gas_573", label %"$have_gas_574" -"$out_of_gas_574": ; preds = %"$have_gas_569" +"$out_of_gas_573": ; preds = %"$have_gas_569" call void @_out_of_gas() - br label %"$have_gas_575" + br label %"$have_gas_574" -"$have_gas_575": ; preds = %"$out_of_gas_574", %"$have_gas_569" - %"$consume_576" = sub i64 %"$gasrem_572", 1 - store i64 %"$consume_576", i64* @_gasrem, align 8 - %s2 = alloca %String, align 8 +"$have_gas_574": ; preds = %"$out_of_gas_573", %"$have_gas_569" + %"$consume_575" = sub i64 %"$gasrem_571", 1 + store i64 %"$consume_575", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_576", i32 0, i32 0), i32 5 }, %String* %s1, align 8, !dbg !120 %"$gasrem_577" = load i64, i64* @_gasrem, align 8 %"$gascmp_578" = icmp ugt i64 1, %"$gasrem_577" br i1 %"$gascmp_578", label %"$out_of_gas_579", label %"$have_gas_580" -"$out_of_gas_579": ; preds = %"$have_gas_575" +"$out_of_gas_579": ; preds = %"$have_gas_574" call void @_out_of_gas() br label %"$have_gas_580" -"$have_gas_580": ; preds = %"$out_of_gas_579", %"$have_gas_575" +"$have_gas_580": ; preds = %"$out_of_gas_579", %"$have_gas_574" %"$consume_581" = sub i64 %"$gasrem_577", 1 store i64 %"$consume_581", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_582", i32 0, i32 0), i32 5 }, %String* %s2, align 8, !dbg !59 - %"$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" + %s2 = alloca %String, align 8 + call void @llvm.dbg.declare(metadata %String* %s2, metadata !121, metadata !DIExpression()), !dbg !122 + %"$gasrem_582" = load i64, i64* @_gasrem, align 8 + %"$gascmp_583" = icmp ugt i64 1, %"$gasrem_582" + br i1 %"$gascmp_583", label %"$out_of_gas_584", label %"$have_gas_585" -"$out_of_gas_585": ; preds = %"$have_gas_580" +"$out_of_gas_584": ; preds = %"$have_gas_580" call void @_out_of_gas() - br label %"$have_gas_586" + br label %"$have_gas_585" -"$have_gas_586": ; preds = %"$out_of_gas_585", %"$have_gas_580" - %"$consume_587" = sub i64 %"$gasrem_583", 1 - store i64 %"$consume_587", i64* @_gasrem, align 8 - %s11 = alloca %String, align 8 +"$have_gas_585": ; preds = %"$out_of_gas_584", %"$have_gas_580" + %"$consume_586" = sub i64 %"$gasrem_582", 1 + store i64 %"$consume_586", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_587", i32 0, i32 0), i32 5 }, %String* %s2, align 8, !dbg !123 %"$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" +"$out_of_gas_590": ; preds = %"$have_gas_585" call void @_out_of_gas() br label %"$have_gas_591" -"$have_gas_591": ; preds = %"$out_of_gas_590", %"$have_gas_586" +"$have_gas_591": ; preds = %"$out_of_gas_590", %"$have_gas_585" %"$consume_592" = sub i64 %"$gasrem_588", 1 store i64 %"$consume_592", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_593", i32 0, i32 0), i32 5 }, %String* %s11, align 8, !dbg !60 - %"$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" + %s11 = alloca %String, align 8 + call void @llvm.dbg.declare(metadata %String* %s11, metadata !124, metadata !DIExpression()), !dbg !125 + %"$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_595": ; preds = %"$have_gas_591" + call void @_out_of_gas() + br label %"$have_gas_596" -"$out_of_gas_596": ; preds = %"$have_gas_591" +"$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 + store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_598", i32 0, i32 0), i32 5 }, %String* %s11, align 8, !dbg !126 + %"$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" + +"$out_of_gas_601": ; preds = %"$have_gas_596" call void @_out_of_gas() - br label %"$have_gas_597" + br label %"$have_gas_602" -"$have_gas_597": ; preds = %"$out_of_gas_596", %"$have_gas_591" - %"$consume_598" = sub i64 %"$gasrem_594", 1 - store i64 %"$consume_598", i64* @_gasrem, align 8 +"$have_gas_602": ; preds = %"$out_of_gas_601", %"$have_gas_596" + %"$consume_603" = sub i64 %"$gasrem_599", 1 + store i64 %"$consume_603", i64* @_gasrem, align 8 %b12 = alloca %TName_Bool*, align 8 - %"$_literal_cost_s1_599" = alloca %String, align 8 - %"$s1_600" = load %String, %String* %s1, align 8 - store %String %"$s1_600", %String* %"$_literal_cost_s1_599", align 8 - %"$$_literal_cost_s1_599_601" = bitcast %String* %"$_literal_cost_s1_599" to i8* - %"$_literal_cost_call_602" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_65", i8* %"$$_literal_cost_s1_599_601") - %"$_literal_cost_s2_603" = alloca %String, align 8 - %"$s2_604" = load %String, %String* %s2, align 8 - store %String %"$s2_604", %String* %"$_literal_cost_s2_603", align 8 - %"$$_literal_cost_s2_603_605" = bitcast %String* %"$_literal_cost_s2_603" to i8* - %"$_literal_cost_call_606" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_65", i8* %"$$_literal_cost_s2_603_605") - %"$gasmin_607" = call i64 @llvm.umin.i64(i64 %"$_literal_cost_call_602", i64 %"$_literal_cost_call_606") - %"$gasrem_608" = load i64, i64* @_gasrem, align 8 - %"$gascmp_609" = icmp ugt i64 %"$gasmin_607", %"$gasrem_608" - br i1 %"$gascmp_609", label %"$out_of_gas_610", label %"$have_gas_611" - -"$out_of_gas_610": ; preds = %"$have_gas_597" - call void @_out_of_gas() - br label %"$have_gas_611" - -"$have_gas_611": ; preds = %"$out_of_gas_610", %"$have_gas_597" - %"$consume_612" = sub i64 %"$gasrem_608", %"$gasmin_607" - store i64 %"$consume_612", i64* @_gasrem, align 8 - %"$execptr_load_613" = load i8*, i8** @_execptr, align 8 - %"$s1_614" = load %String, %String* %s1, align 8 - %"$s2_615" = load %String, %String* %s2, align 8 - %"$eq_call_616" = call %TName_Bool* @_eq_String(i8* %"$execptr_load_613", %String %"$s1_614", %String %"$s2_615"), !dbg !61 - store %TName_Bool* %"$eq_call_616", %TName_Bool** %b12, align 8, !dbg !61 - %"$gasrem_618" = load i64, i64* @_gasrem, align 8 - %"$gascmp_619" = icmp ugt i64 1, %"$gasrem_618" - br i1 %"$gascmp_619", label %"$out_of_gas_620", label %"$have_gas_621" - -"$out_of_gas_620": ; preds = %"$have_gas_611" - call void @_out_of_gas() - br label %"$have_gas_621" - -"$have_gas_621": ; preds = %"$out_of_gas_620", %"$have_gas_611" - %"$consume_622" = sub i64 %"$gasrem_618", 1 - store i64 %"$consume_622", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %b12, metadata !127, metadata !DIExpression()), !dbg !128 + %"$_literal_cost_s1_604" = alloca %String, align 8 + %"$s1_605" = load %String, %String* %s1, align 8 + store %String %"$s1_605", %String* %"$_literal_cost_s1_604", align 8 + %"$$_literal_cost_s1_604_606" = bitcast %String* %"$_literal_cost_s1_604" to i8* + %"$_literal_cost_call_607" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_65", i8* %"$$_literal_cost_s1_604_606") + %"$_literal_cost_s2_608" = alloca %String, align 8 + %"$s2_609" = load %String, %String* %s2, align 8 + store %String %"$s2_609", %String* %"$_literal_cost_s2_608", align 8 + %"$$_literal_cost_s2_608_610" = bitcast %String* %"$_literal_cost_s2_608" to i8* + %"$_literal_cost_call_611" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_65", i8* %"$$_literal_cost_s2_608_610") + %"$gasmin_612" = call i64 @llvm.umin.i64(i64 %"$_literal_cost_call_607", i64 %"$_literal_cost_call_611") + %"$gasrem_613" = load i64, i64* @_gasrem, align 8 + %"$gascmp_614" = icmp ugt i64 %"$gasmin_612", %"$gasrem_613" + br i1 %"$gascmp_614", label %"$out_of_gas_615", label %"$have_gas_616" + +"$out_of_gas_615": ; preds = %"$have_gas_602" + call void @_out_of_gas() + br label %"$have_gas_616" + +"$have_gas_616": ; preds = %"$out_of_gas_615", %"$have_gas_602" + %"$consume_617" = sub i64 %"$gasrem_613", %"$gasmin_612" + store i64 %"$consume_617", i64* @_gasrem, align 8 + %"$execptr_load_618" = load i8*, i8** @_execptr, align 8 + %"$s1_619" = load %String, %String* %s1, align 8 + %"$s2_620" = load %String, %String* %s2, align 8 + %"$eq_call_621" = call %TName_Bool* @_eq_String(i8* %"$execptr_load_618", %String %"$s1_619", %String %"$s2_620"), !dbg !129 + store %TName_Bool* %"$eq_call_621", %TName_Bool** %b12, align 8, !dbg !129 + %"$gasrem_623" = load i64, i64* @_gasrem, align 8 + %"$gascmp_624" = icmp ugt i64 1, %"$gasrem_623" + br i1 %"$gascmp_624", label %"$out_of_gas_625", label %"$have_gas_626" + +"$out_of_gas_625": ; preds = %"$have_gas_616" + call void @_out_of_gas() + br label %"$have_gas_626" + +"$have_gas_626": ; preds = %"$out_of_gas_625", %"$have_gas_616" + %"$consume_627" = sub i64 %"$gasrem_623", 1 + store i64 %"$consume_627", i64* @_gasrem, align 8 %b13 = alloca %TName_Bool*, align 8 - %"$_literal_cost_s1_623" = alloca %String, align 8 - %"$s1_624" = load %String, %String* %s1, align 8 - store %String %"$s1_624", %String* %"$_literal_cost_s1_623", align 8 - %"$$_literal_cost_s1_623_625" = bitcast %String* %"$_literal_cost_s1_623" to i8* - %"$_literal_cost_call_626" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_65", i8* %"$$_literal_cost_s1_623_625") - %"$_literal_cost_s11_627" = alloca %String, align 8 - %"$s11_628" = load %String, %String* %s11, align 8 - store %String %"$s11_628", %String* %"$_literal_cost_s11_627", align 8 - %"$$_literal_cost_s11_627_629" = bitcast %String* %"$_literal_cost_s11_627" to i8* - %"$_literal_cost_call_630" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_65", i8* %"$$_literal_cost_s11_627_629") - %"$gasmin_631" = call i64 @llvm.umin.i64(i64 %"$_literal_cost_call_626", i64 %"$_literal_cost_call_630") - %"$gasrem_632" = load i64, i64* @_gasrem, align 8 - %"$gascmp_633" = icmp ugt i64 %"$gasmin_631", %"$gasrem_632" - br i1 %"$gascmp_633", label %"$out_of_gas_634", label %"$have_gas_635" - -"$out_of_gas_634": ; preds = %"$have_gas_621" - call void @_out_of_gas() - br label %"$have_gas_635" - -"$have_gas_635": ; preds = %"$out_of_gas_634", %"$have_gas_621" - %"$consume_636" = sub i64 %"$gasrem_632", %"$gasmin_631" - store i64 %"$consume_636", i64* @_gasrem, align 8 - %"$execptr_load_637" = load i8*, i8** @_execptr, align 8 - %"$s1_638" = load %String, %String* %s1, align 8 - %"$s11_639" = load %String, %String* %s11, align 8 - %"$eq_call_640" = call %TName_Bool* @_eq_String(i8* %"$execptr_load_637", %String %"$s1_638", %String %"$s11_639"), !dbg !62 - store %TName_Bool* %"$eq_call_640", %TName_Bool** %b13, align 8, !dbg !62 - %"$gasrem_642" = load i64, i64* @_gasrem, align 8 - %"$gascmp_643" = icmp ugt i64 1, %"$gasrem_642" - br i1 %"$gascmp_643", label %"$out_of_gas_644", label %"$have_gas_645" - -"$out_of_gas_644": ; preds = %"$have_gas_635" - call void @_out_of_gas() - br label %"$have_gas_645" - -"$have_gas_645": ; preds = %"$out_of_gas_644", %"$have_gas_635" - %"$consume_646" = sub i64 %"$gasrem_642", 1 - store i64 %"$consume_646", i64* @_gasrem, align 8 - %b14 = alloca %TName_Bool*, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %b13, metadata !130, metadata !DIExpression()), !dbg !131 + %"$_literal_cost_s1_628" = alloca %String, align 8 + %"$s1_629" = load %String, %String* %s1, align 8 + store %String %"$s1_629", %String* %"$_literal_cost_s1_628", align 8 + %"$$_literal_cost_s1_628_630" = bitcast %String* %"$_literal_cost_s1_628" to i8* + %"$_literal_cost_call_631" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_65", i8* %"$$_literal_cost_s1_628_630") + %"$_literal_cost_s11_632" = alloca %String, align 8 + %"$s11_633" = load %String, %String* %s11, align 8 + store %String %"$s11_633", %String* %"$_literal_cost_s11_632", align 8 + %"$$_literal_cost_s11_632_634" = bitcast %String* %"$_literal_cost_s11_632" to i8* + %"$_literal_cost_call_635" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_65", i8* %"$$_literal_cost_s11_632_634") + %"$gasmin_636" = call i64 @llvm.umin.i64(i64 %"$_literal_cost_call_631", i64 %"$_literal_cost_call_635") + %"$gasrem_637" = load i64, i64* @_gasrem, align 8 + %"$gascmp_638" = icmp ugt i64 %"$gasmin_636", %"$gasrem_637" + br i1 %"$gascmp_638", label %"$out_of_gas_639", label %"$have_gas_640" + +"$out_of_gas_639": ; preds = %"$have_gas_626" + call void @_out_of_gas() + br label %"$have_gas_640" + +"$have_gas_640": ; preds = %"$out_of_gas_639", %"$have_gas_626" + %"$consume_641" = sub i64 %"$gasrem_637", %"$gasmin_636" + store i64 %"$consume_641", i64* @_gasrem, align 8 + %"$execptr_load_642" = load i8*, i8** @_execptr, align 8 + %"$s1_643" = load %String, %String* %s1, align 8 + %"$s11_644" = load %String, %String* %s11, align 8 + %"$eq_call_645" = call %TName_Bool* @_eq_String(i8* %"$execptr_load_642", %String %"$s1_643", %String %"$s11_644"), !dbg !132 + store %TName_Bool* %"$eq_call_645", %TName_Bool** %b13, align 8, !dbg !132 %"$gasrem_647" = load i64, i64* @_gasrem, align 8 %"$gascmp_648" = icmp ugt i64 1, %"$gasrem_647" br i1 %"$gascmp_648", label %"$out_of_gas_649", label %"$have_gas_650" -"$out_of_gas_649": ; preds = %"$have_gas_645" +"$out_of_gas_649": ; preds = %"$have_gas_640" call void @_out_of_gas() br label %"$have_gas_650" -"$have_gas_650": ; preds = %"$out_of_gas_649", %"$have_gas_645" +"$have_gas_650": ; preds = %"$out_of_gas_649", %"$have_gas_640" %"$consume_651" = sub i64 %"$gasrem_647", 1 store i64 %"$consume_651", i64* @_gasrem, align 8 + %b14 = alloca %TName_Bool*, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %b14, metadata !133, metadata !DIExpression()), !dbg !134 + %"$gasrem_652" = load i64, i64* @_gasrem, align 8 + %"$gascmp_653" = icmp ugt i64 1, %"$gasrem_652" + br i1 %"$gascmp_653", label %"$out_of_gas_654", label %"$have_gas_655" + +"$out_of_gas_654": ; preds = %"$have_gas_650" + call void @_out_of_gas() + br label %"$have_gas_655" + +"$have_gas_655": ; preds = %"$out_of_gas_654", %"$have_gas_650" + %"$consume_656" = sub i64 %"$gasrem_652", 1 + store i64 %"$consume_656", i64* @_gasrem, align 8 %"$BoolUtils.andb_17" = alloca { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, align 8 - %"$BoolUtils.andb_652" = 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_653" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_652", 0 - %"$BoolUtils.andb_envptr_654" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_652", 1 - %"$b9_655" = load %TName_Bool*, %TName_Bool** %b9, align 8 - %"$BoolUtils.andb_call_656" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_653"(i8* %"$BoolUtils.andb_envptr_654", %TName_Bool* %"$b9_655"), !dbg !63 - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_656", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_17", align 8, !dbg !63 + %"$BoolUtils.andb_657" = 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_658" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_657", 0 + %"$BoolUtils.andb_envptr_659" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_657", 1 + %"$b9_660" = load %TName_Bool*, %TName_Bool** %b9, align 8 + %"$BoolUtils.andb_call_661" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_658"(i8* %"$BoolUtils.andb_envptr_659", %TName_Bool* %"$b9_660"), !dbg !135 + store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_661", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_17", align 8, !dbg !135 %"$BoolUtils.andb_18" = alloca %TName_Bool*, align 8 - %"$$BoolUtils.andb_17_657" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_17", align 8 - %"$$BoolUtils.andb_17_fptr_658" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_17_657", 0 - %"$$BoolUtils.andb_17_envptr_659" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_17_657", 1 - %"$b12_660" = load %TName_Bool*, %TName_Bool** %b12, align 8 - %"$$BoolUtils.andb_17_call_661" = call %TName_Bool* %"$$BoolUtils.andb_17_fptr_658"(i8* %"$$BoolUtils.andb_17_envptr_659", %TName_Bool* %"$b12_660"), !dbg !63 - store %TName_Bool* %"$$BoolUtils.andb_17_call_661", %TName_Bool** %"$BoolUtils.andb_18", align 8, !dbg !63 - %"$$BoolUtils.andb_18_662" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_18", align 8 - store %TName_Bool* %"$$BoolUtils.andb_18_662", %TName_Bool** %b14, align 8, !dbg !63 - %"$gasrem_663" = load i64, i64* @_gasrem, align 8 - %"$gascmp_664" = icmp ugt i64 1, %"$gasrem_663" - br i1 %"$gascmp_664", label %"$out_of_gas_665", label %"$have_gas_666" - -"$out_of_gas_665": ; preds = %"$have_gas_650" - call void @_out_of_gas() - br label %"$have_gas_666" - -"$have_gas_666": ; preds = %"$out_of_gas_665", %"$have_gas_650" - %"$consume_667" = sub i64 %"$gasrem_663", 1 - store i64 %"$consume_667", i64* @_gasrem, align 8 - %b15 = alloca %TName_Bool*, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$BoolUtils.andb_18", metadata !136, metadata !DIExpression()), !dbg !135 + %"$$BoolUtils.andb_17_662" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_17", align 8 + %"$$BoolUtils.andb_17_fptr_663" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_17_662", 0 + %"$$BoolUtils.andb_17_envptr_664" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_17_662", 1 + %"$b12_665" = load %TName_Bool*, %TName_Bool** %b12, align 8 + %"$$BoolUtils.andb_17_call_666" = call %TName_Bool* %"$$BoolUtils.andb_17_fptr_663"(i8* %"$$BoolUtils.andb_17_envptr_664", %TName_Bool* %"$b12_665"), !dbg !135 + store %TName_Bool* %"$$BoolUtils.andb_17_call_666", %TName_Bool** %"$BoolUtils.andb_18", align 8, !dbg !135 + %"$$BoolUtils.andb_18_667" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_18", align 8 + store %TName_Bool* %"$$BoolUtils.andb_18_667", %TName_Bool** %b14, align 8, !dbg !135 %"$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_666" +"$out_of_gas_670": ; preds = %"$have_gas_655" call void @_out_of_gas() br label %"$have_gas_671" -"$have_gas_671": ; preds = %"$out_of_gas_670", %"$have_gas_666" +"$have_gas_671": ; preds = %"$out_of_gas_670", %"$have_gas_655" %"$consume_672" = sub i64 %"$gasrem_668", 1 store i64 %"$consume_672", i64* @_gasrem, align 8 + %b15 = alloca %TName_Bool*, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %b15, metadata !137, metadata !DIExpression()), !dbg !138 + %"$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 %"$BoolUtils.orb_19" = alloca { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, align 8 - %"$BoolUtils.orb_673" = 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_674" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.orb_673", 0 - %"$BoolUtils.orb_envptr_675" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.orb_673", 1 - %"$b13_676" = load %TName_Bool*, %TName_Bool** %b13, align 8 - %"$BoolUtils.orb_call_677" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.orb_fptr_674"(i8* %"$BoolUtils.orb_envptr_675", %TName_Bool* %"$b13_676"), !dbg !64 - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.orb_call_677", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.orb_19", align 8, !dbg !64 + %"$BoolUtils.orb_678" = 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_679" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.orb_678", 0 + %"$BoolUtils.orb_envptr_680" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.orb_678", 1 + %"$b13_681" = load %TName_Bool*, %TName_Bool** %b13, align 8 + %"$BoolUtils.orb_call_682" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.orb_fptr_679"(i8* %"$BoolUtils.orb_envptr_680", %TName_Bool* %"$b13_681"), !dbg !139 + store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.orb_call_682", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.orb_19", align 8, !dbg !139 %"$BoolUtils.orb_20" = alloca %TName_Bool*, align 8 - %"$$BoolUtils.orb_19_678" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.orb_19", align 8 - %"$$BoolUtils.orb_19_fptr_679" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.orb_19_678", 0 - %"$$BoolUtils.orb_19_envptr_680" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.orb_19_678", 1 - %"$b14_681" = load %TName_Bool*, %TName_Bool** %b14, align 8 - %"$$BoolUtils.orb_19_call_682" = call %TName_Bool* %"$$BoolUtils.orb_19_fptr_679"(i8* %"$$BoolUtils.orb_19_envptr_680", %TName_Bool* %"$b14_681"), !dbg !64 - store %TName_Bool* %"$$BoolUtils.orb_19_call_682", %TName_Bool** %"$BoolUtils.orb_20", align 8, !dbg !64 - %"$$BoolUtils.orb_20_683" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.orb_20", align 8 - store %TName_Bool* %"$$BoolUtils.orb_20_683", %TName_Bool** %b15, align 8, !dbg !64 - %"$gasrem_684" = load i64, i64* @_gasrem, align 8 - %"$gascmp_685" = icmp ugt i64 1, %"$gasrem_684" - br i1 %"$gascmp_685", label %"$out_of_gas_686", label %"$have_gas_687" - -"$out_of_gas_686": ; preds = %"$have_gas_671" - call void @_out_of_gas() - br label %"$have_gas_687" - -"$have_gas_687": ; preds = %"$out_of_gas_686", %"$have_gas_671" - %"$consume_688" = sub i64 %"$gasrem_684", 1 - store i64 %"$consume_688", i64* @_gasrem, align 8 - %bs1 = alloca [2 x i8], align 1 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$BoolUtils.orb_20", metadata !140, metadata !DIExpression()), !dbg !139 + %"$$BoolUtils.orb_19_683" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.orb_19", align 8 + %"$$BoolUtils.orb_19_fptr_684" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.orb_19_683", 0 + %"$$BoolUtils.orb_19_envptr_685" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.orb_19_683", 1 + %"$b14_686" = load %TName_Bool*, %TName_Bool** %b14, align 8 + %"$$BoolUtils.orb_19_call_687" = call %TName_Bool* %"$$BoolUtils.orb_19_fptr_684"(i8* %"$$BoolUtils.orb_19_envptr_685", %TName_Bool* %"$b14_686"), !dbg !139 + store %TName_Bool* %"$$BoolUtils.orb_19_call_687", %TName_Bool** %"$BoolUtils.orb_20", align 8, !dbg !139 + %"$$BoolUtils.orb_20_688" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.orb_20", align 8 + store %TName_Bool* %"$$BoolUtils.orb_20_688", %TName_Bool** %b15, align 8, !dbg !139 %"$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 = %"$have_gas_687" +"$out_of_gas_691": ; preds = %"$have_gas_676" call void @_out_of_gas() br label %"$have_gas_692" -"$have_gas_692": ; preds = %"$out_of_gas_691", %"$have_gas_687" +"$have_gas_692": ; preds = %"$out_of_gas_691", %"$have_gas_676" %"$consume_693" = sub i64 %"$gasrem_689", 1 store i64 %"$consume_693", i64* @_gasrem, align 8 - store [2 x i8] c"\00\FF", [2 x i8]* %bs1, align 1, !dbg !65 + %bs1 = alloca [2 x i8], align 1 + call void @llvm.dbg.declare(metadata [2 x i8]* %bs1, metadata !141, metadata !DIExpression()), !dbg !143 %"$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" @@ -1385,7 +1428,7 @@ entry: "$have_gas_697": ; preds = %"$out_of_gas_696", %"$have_gas_692" %"$consume_698" = sub i64 %"$gasrem_694", 1 store i64 %"$consume_698", i64* @_gasrem, align 8 - %bs2 = alloca [2 x i8], align 1 + store [2 x i8] c"\00\FF", [2 x i8]* %bs1, align 1, !dbg !144 %"$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" @@ -1397,7 +1440,8 @@ entry: "$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 - store [2 x i8] c"\FF\00", [2 x i8]* %bs2, align 1, !dbg !66 + %bs2 = alloca [2 x i8], align 1 + call void @llvm.dbg.declare(metadata [2 x i8]* %bs2, metadata !145, metadata !DIExpression()), !dbg !146 %"$gasrem_704" = load i64, i64* @_gasrem, align 8 %"$gascmp_705" = icmp ugt i64 1, %"$gasrem_704" br i1 %"$gascmp_705", label %"$out_of_gas_706", label %"$have_gas_707" @@ -1409,7 +1453,7 @@ entry: "$have_gas_707": ; preds = %"$out_of_gas_706", %"$have_gas_702" %"$consume_708" = sub i64 %"$gasrem_704", 1 store i64 %"$consume_708", i64* @_gasrem, align 8 - %bs11 = alloca [2 x i8], align 1 + store [2 x i8] c"\FF\00", [2 x i8]* %bs2, align 1, !dbg !147 %"$gasrem_709" = load i64, i64* @_gasrem, align 8 %"$gascmp_710" = icmp ugt i64 1, %"$gasrem_709" br i1 %"$gascmp_710", label %"$out_of_gas_711", label %"$have_gas_712" @@ -1421,7 +1465,8 @@ entry: "$have_gas_712": ; preds = %"$out_of_gas_711", %"$have_gas_707" %"$consume_713" = sub i64 %"$gasrem_709", 1 store i64 %"$consume_713", i64* @_gasrem, align 8 - store [2 x i8] c"\00\FF", [2 x i8]* %bs11, align 1, !dbg !67 + %bs11 = alloca [2 x i8], align 1 + call void @llvm.dbg.declare(metadata [2 x i8]* %bs11, metadata !148, metadata !DIExpression()), !dbg !149 %"$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" @@ -1433,9 +1478,9 @@ entry: "$have_gas_717": ; preds = %"$out_of_gas_716", %"$have_gas_712" %"$consume_718" = sub i64 %"$gasrem_714", 1 store i64 %"$consume_718", i64* @_gasrem, align 8 - %b16 = alloca %TName_Bool*, align 8 + store [2 x i8] c"\00\FF", [2 x i8]* %bs11, align 1, !dbg !150 %"$gasrem_719" = load i64, i64* @_gasrem, align 8 - %"$gascmp_720" = icmp ugt i64 2, %"$gasrem_719" + %"$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" @@ -1443,155 +1488,162 @@ entry: br label %"$have_gas_722" "$have_gas_722": ; preds = %"$out_of_gas_721", %"$have_gas_717" - %"$consume_723" = sub i64 %"$gasrem_719", 2 + %"$consume_723" = sub i64 %"$gasrem_719", 1 store i64 %"$consume_723", i64* @_gasrem, align 8 - %"$execptr_load_724" = load i8*, i8** @_execptr, align 8 - %"$eq_bs1_725" = alloca [2 x i8], align 1 - %"$bs1_726" = load [2 x i8], [2 x i8]* %bs1, align 1 - store [2 x i8] %"$bs1_726", [2 x i8]* %"$eq_bs1_725", align 1 - %"$$eq_bs1_725_727" = bitcast [2 x i8]* %"$eq_bs1_725" to i8* - %"$eq_bs2_728" = alloca [2 x i8], align 1 - %"$bs2_729" = load [2 x i8], [2 x i8]* %bs2, align 1 - store [2 x i8] %"$bs2_729", [2 x i8]* %"$eq_bs2_728", align 1 - %"$$eq_bs2_728_730" = bitcast [2 x i8]* %"$eq_bs2_728" to i8* - %"$eq_call_731" = call %TName_Bool* @_eq_ByStrX(i8* %"$execptr_load_724", i32 2, i8* %"$$eq_bs1_725_727", i8* %"$$eq_bs2_728_730"), !dbg !68 - store %TName_Bool* %"$eq_call_731", %TName_Bool** %b16, align 8, !dbg !68 - %"$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_722" - call void @_out_of_gas() - br label %"$have_gas_736" - -"$have_gas_736": ; preds = %"$out_of_gas_735", %"$have_gas_722" - %"$consume_737" = sub i64 %"$gasrem_733", 1 - store i64 %"$consume_737", i64* @_gasrem, align 8 - %b17 = alloca %TName_Bool*, align 8 + %b16 = alloca %TName_Bool*, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %b16, metadata !151, metadata !DIExpression()), !dbg !152 + %"$gasrem_724" = load i64, i64* @_gasrem, align 8 + %"$gascmp_725" = icmp ugt i64 2, %"$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", 2 + store i64 %"$consume_728", i64* @_gasrem, align 8 + %"$execptr_load_729" = load i8*, i8** @_execptr, align 8 + %"$eq_bs1_730" = alloca [2 x i8], align 1 + %"$bs1_731" = load [2 x i8], [2 x i8]* %bs1, align 1 + store [2 x i8] %"$bs1_731", [2 x i8]* %"$eq_bs1_730", align 1 + %"$$eq_bs1_730_732" = bitcast [2 x i8]* %"$eq_bs1_730" to i8* + %"$eq_bs2_733" = alloca [2 x i8], align 1 + %"$bs2_734" = load [2 x i8], [2 x i8]* %bs2, align 1 + store [2 x i8] %"$bs2_734", [2 x i8]* %"$eq_bs2_733", align 1 + %"$$eq_bs2_733_735" = bitcast [2 x i8]* %"$eq_bs2_733" to i8* + %"$eq_call_736" = call %TName_Bool* @_eq_ByStrX(i8* %"$execptr_load_729", i32 2, i8* %"$$eq_bs1_730_732", i8* %"$$eq_bs2_733_735"), !dbg !153 + store %TName_Bool* %"$eq_call_736", %TName_Bool** %b16, align 8, !dbg !153 %"$gasrem_738" = load i64, i64* @_gasrem, align 8 - %"$gascmp_739" = icmp ugt i64 2, %"$gasrem_738" + %"$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_736" +"$out_of_gas_740": ; preds = %"$have_gas_727" call void @_out_of_gas() br label %"$have_gas_741" -"$have_gas_741": ; preds = %"$out_of_gas_740", %"$have_gas_736" - %"$consume_742" = sub i64 %"$gasrem_738", 2 +"$have_gas_741": ; preds = %"$out_of_gas_740", %"$have_gas_727" + %"$consume_742" = sub i64 %"$gasrem_738", 1 store i64 %"$consume_742", i64* @_gasrem, align 8 - %"$execptr_load_743" = load i8*, i8** @_execptr, align 8 - %"$eq_bs1_744" = alloca [2 x i8], align 1 - %"$bs1_745" = load [2 x i8], [2 x i8]* %bs1, align 1 - store [2 x i8] %"$bs1_745", [2 x i8]* %"$eq_bs1_744", align 1 - %"$$eq_bs1_744_746" = bitcast [2 x i8]* %"$eq_bs1_744" to i8* - %"$eq_bs11_747" = alloca [2 x i8], align 1 - %"$bs11_748" = load [2 x i8], [2 x i8]* %bs11, align 1 - store [2 x i8] %"$bs11_748", [2 x i8]* %"$eq_bs11_747", align 1 - %"$$eq_bs11_747_749" = bitcast [2 x i8]* %"$eq_bs11_747" to i8* - %"$eq_call_750" = call %TName_Bool* @_eq_ByStrX(i8* %"$execptr_load_743", i32 2, i8* %"$$eq_bs1_744_746", i8* %"$$eq_bs11_747_749"), !dbg !69 - store %TName_Bool* %"$eq_call_750", %TName_Bool** %b17, align 8, !dbg !69 - %"$gasrem_752" = load i64, i64* @_gasrem, align 8 - %"$gascmp_753" = icmp ugt i64 1, %"$gasrem_752" - br i1 %"$gascmp_753", label %"$out_of_gas_754", label %"$have_gas_755" - -"$out_of_gas_754": ; preds = %"$have_gas_741" - call void @_out_of_gas() - br label %"$have_gas_755" - -"$have_gas_755": ; preds = %"$out_of_gas_754", %"$have_gas_741" - %"$consume_756" = sub i64 %"$gasrem_752", 1 - store i64 %"$consume_756", i64* @_gasrem, align 8 - %b18 = alloca %TName_Bool*, align 8 + %b17 = alloca %TName_Bool*, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %b17, metadata !154, metadata !DIExpression()), !dbg !155 + %"$gasrem_743" = load i64, i64* @_gasrem, align 8 + %"$gascmp_744" = icmp ugt i64 2, %"$gasrem_743" + br i1 %"$gascmp_744", label %"$out_of_gas_745", label %"$have_gas_746" + +"$out_of_gas_745": ; preds = %"$have_gas_741" + call void @_out_of_gas() + br label %"$have_gas_746" + +"$have_gas_746": ; preds = %"$out_of_gas_745", %"$have_gas_741" + %"$consume_747" = sub i64 %"$gasrem_743", 2 + store i64 %"$consume_747", i64* @_gasrem, align 8 + %"$execptr_load_748" = load i8*, i8** @_execptr, align 8 + %"$eq_bs1_749" = alloca [2 x i8], align 1 + %"$bs1_750" = load [2 x i8], [2 x i8]* %bs1, align 1 + store [2 x i8] %"$bs1_750", [2 x i8]* %"$eq_bs1_749", align 1 + %"$$eq_bs1_749_751" = bitcast [2 x i8]* %"$eq_bs1_749" to i8* + %"$eq_bs11_752" = alloca [2 x i8], align 1 + %"$bs11_753" = load [2 x i8], [2 x i8]* %bs11, align 1 + store [2 x i8] %"$bs11_753", [2 x i8]* %"$eq_bs11_752", align 1 + %"$$eq_bs11_752_754" = bitcast [2 x i8]* %"$eq_bs11_752" to i8* + %"$eq_call_755" = call %TName_Bool* @_eq_ByStrX(i8* %"$execptr_load_748", i32 2, i8* %"$$eq_bs1_749_751", i8* %"$$eq_bs11_752_754"), !dbg !156 + store %TName_Bool* %"$eq_call_755", %TName_Bool** %b17, align 8, !dbg !156 %"$gasrem_757" = load i64, i64* @_gasrem, align 8 %"$gascmp_758" = icmp ugt i64 1, %"$gasrem_757" br i1 %"$gascmp_758", label %"$out_of_gas_759", label %"$have_gas_760" -"$out_of_gas_759": ; preds = %"$have_gas_755" +"$out_of_gas_759": ; preds = %"$have_gas_746" call void @_out_of_gas() br label %"$have_gas_760" -"$have_gas_760": ; preds = %"$out_of_gas_759", %"$have_gas_755" +"$have_gas_760": ; preds = %"$out_of_gas_759", %"$have_gas_746" %"$consume_761" = sub i64 %"$gasrem_757", 1 store i64 %"$consume_761", i64* @_gasrem, align 8 + %b18 = alloca %TName_Bool*, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %b18, metadata !157, metadata !DIExpression()), !dbg !158 + %"$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_760" + call void @_out_of_gas() + br label %"$have_gas_765" + +"$have_gas_765": ; preds = %"$out_of_gas_764", %"$have_gas_760" + %"$consume_766" = sub i64 %"$gasrem_762", 1 + store i64 %"$consume_766", i64* @_gasrem, align 8 %"$BoolUtils.orb_21" = alloca { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, align 8 - %"$BoolUtils.orb_762" = 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_763" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.orb_762", 0 - %"$BoolUtils.orb_envptr_764" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.orb_762", 1 - %"$b16_765" = load %TName_Bool*, %TName_Bool** %b16, align 8 - %"$BoolUtils.orb_call_766" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.orb_fptr_763"(i8* %"$BoolUtils.orb_envptr_764", %TName_Bool* %"$b16_765"), !dbg !70 - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.orb_call_766", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.orb_21", align 8, !dbg !70 + %"$BoolUtils.orb_767" = 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_768" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.orb_767", 0 + %"$BoolUtils.orb_envptr_769" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.orb_767", 1 + %"$b16_770" = load %TName_Bool*, %TName_Bool** %b16, align 8 + %"$BoolUtils.orb_call_771" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.orb_fptr_768"(i8* %"$BoolUtils.orb_envptr_769", %TName_Bool* %"$b16_770"), !dbg !159 + store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.orb_call_771", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.orb_21", align 8, !dbg !159 %"$BoolUtils.orb_22" = alloca %TName_Bool*, align 8 - %"$$BoolUtils.orb_21_767" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.orb_21", align 8 - %"$$BoolUtils.orb_21_fptr_768" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.orb_21_767", 0 - %"$$BoolUtils.orb_21_envptr_769" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.orb_21_767", 1 - %"$b17_770" = load %TName_Bool*, %TName_Bool** %b17, align 8 - %"$$BoolUtils.orb_21_call_771" = call %TName_Bool* %"$$BoolUtils.orb_21_fptr_768"(i8* %"$$BoolUtils.orb_21_envptr_769", %TName_Bool* %"$b17_770"), !dbg !70 - store %TName_Bool* %"$$BoolUtils.orb_21_call_771", %TName_Bool** %"$BoolUtils.orb_22", align 8, !dbg !70 - %"$$BoolUtils.orb_22_772" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.orb_22", align 8 - store %TName_Bool* %"$$BoolUtils.orb_22_772", %TName_Bool** %b18, align 8, !dbg !70 - %"$gasrem_773" = load i64, i64* @_gasrem, align 8 - %"$gascmp_774" = icmp ugt i64 1, %"$gasrem_773" - br i1 %"$gascmp_774", label %"$out_of_gas_775", label %"$have_gas_776" - -"$out_of_gas_775": ; preds = %"$have_gas_760" - call void @_out_of_gas() - br label %"$have_gas_776" - -"$have_gas_776": ; preds = %"$out_of_gas_775", %"$have_gas_760" - %"$consume_777" = sub i64 %"$gasrem_773", 1 - store i64 %"$consume_777", i64* @_gasrem, align 8 - %b19 = alloca %TName_Bool*, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$BoolUtils.orb_22", metadata !160, metadata !DIExpression()), !dbg !159 + %"$$BoolUtils.orb_21_772" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.orb_21", align 8 + %"$$BoolUtils.orb_21_fptr_773" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.orb_21_772", 0 + %"$$BoolUtils.orb_21_envptr_774" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.orb_21_772", 1 + %"$b17_775" = load %TName_Bool*, %TName_Bool** %b17, align 8 + %"$$BoolUtils.orb_21_call_776" = call %TName_Bool* %"$$BoolUtils.orb_21_fptr_773"(i8* %"$$BoolUtils.orb_21_envptr_774", %TName_Bool* %"$b17_775"), !dbg !159 + store %TName_Bool* %"$$BoolUtils.orb_21_call_776", %TName_Bool** %"$BoolUtils.orb_22", align 8, !dbg !159 + %"$$BoolUtils.orb_22_777" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.orb_22", align 8 + store %TName_Bool* %"$$BoolUtils.orb_22_777", %TName_Bool** %b18, align 8, !dbg !159 %"$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_776" +"$out_of_gas_780": ; preds = %"$have_gas_765" call void @_out_of_gas() br label %"$have_gas_781" -"$have_gas_781": ; preds = %"$out_of_gas_780", %"$have_gas_776" +"$have_gas_781": ; preds = %"$out_of_gas_780", %"$have_gas_765" %"$consume_782" = sub i64 %"$gasrem_778", 1 store i64 %"$consume_782", i64* @_gasrem, align 8 + %b19 = alloca %TName_Bool*, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %b19, metadata !161, metadata !DIExpression()), !dbg !162 + %"$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_786" + +"$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 %"$BoolUtils.andb_23" = alloca { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, align 8 - %"$BoolUtils.andb_783" = 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_784" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_783", 0 - %"$BoolUtils.andb_envptr_785" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_783", 1 - %"$b18_786" = load %TName_Bool*, %TName_Bool** %b18, align 8 - %"$BoolUtils.andb_call_787" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_784"(i8* %"$BoolUtils.andb_envptr_785", %TName_Bool* %"$b18_786"), !dbg !71 - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_787", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_23", align 8, !dbg !71 + %"$BoolUtils.andb_788" = 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_789" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_788", 0 + %"$BoolUtils.andb_envptr_790" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_788", 1 + %"$b18_791" = load %TName_Bool*, %TName_Bool** %b18, align 8 + %"$BoolUtils.andb_call_792" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_789"(i8* %"$BoolUtils.andb_envptr_790", %TName_Bool* %"$b18_791"), !dbg !163 + store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_792", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_23", align 8, !dbg !163 %"$BoolUtils.andb_24" = alloca %TName_Bool*, align 8 - %"$$BoolUtils.andb_23_788" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_23", align 8 - %"$$BoolUtils.andb_23_fptr_789" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_23_788", 0 - %"$$BoolUtils.andb_23_envptr_790" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_23_788", 1 - %"$b15_791" = load %TName_Bool*, %TName_Bool** %b15, align 8 - %"$$BoolUtils.andb_23_call_792" = call %TName_Bool* %"$$BoolUtils.andb_23_fptr_789"(i8* %"$$BoolUtils.andb_23_envptr_790", %TName_Bool* %"$b15_791"), !dbg !71 - store %TName_Bool* %"$$BoolUtils.andb_23_call_792", %TName_Bool** %"$BoolUtils.andb_24", align 8, !dbg !71 - %"$$BoolUtils.andb_24_793" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_24", align 8 - store %TName_Bool* %"$$BoolUtils.andb_24_793", %TName_Bool** %b19, align 8, !dbg !71 - %"$gasrem_794" = load i64, i64* @_gasrem, align 8 - %"$gascmp_795" = icmp ugt i64 1, %"$gasrem_794" - br i1 %"$gascmp_795", label %"$out_of_gas_796", label %"$have_gas_797" - -"$out_of_gas_796": ; preds = %"$have_gas_781" - call void @_out_of_gas() - br label %"$have_gas_797" - -"$have_gas_797": ; preds = %"$out_of_gas_796", %"$have_gas_781" - %"$consume_798" = sub i64 %"$gasrem_794", 1 - store i64 %"$consume_798", i64* @_gasrem, align 8 - %bs3 = alloca [3 x i8], align 1 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$BoolUtils.andb_24", metadata !164, metadata !DIExpression()), !dbg !163 + %"$$BoolUtils.andb_23_793" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_23", align 8 + %"$$BoolUtils.andb_23_fptr_794" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_23_793", 0 + %"$$BoolUtils.andb_23_envptr_795" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_23_793", 1 + %"$b15_796" = load %TName_Bool*, %TName_Bool** %b15, align 8 + %"$$BoolUtils.andb_23_call_797" = call %TName_Bool* %"$$BoolUtils.andb_23_fptr_794"(i8* %"$$BoolUtils.andb_23_envptr_795", %TName_Bool* %"$b15_796"), !dbg !163 + store %TName_Bool* %"$$BoolUtils.andb_23_call_797", %TName_Bool** %"$BoolUtils.andb_24", align 8, !dbg !163 + %"$$BoolUtils.andb_24_798" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_24", align 8 + store %TName_Bool* %"$$BoolUtils.andb_24_798", %TName_Bool** %b19, align 8, !dbg !163 %"$gasrem_799" = load i64, i64* @_gasrem, align 8 %"$gascmp_800" = icmp ugt i64 1, %"$gasrem_799" br i1 %"$gascmp_800", label %"$out_of_gas_801", label %"$have_gas_802" -"$out_of_gas_801": ; preds = %"$have_gas_797" +"$out_of_gas_801": ; preds = %"$have_gas_786" call void @_out_of_gas() br label %"$have_gas_802" -"$have_gas_802": ; preds = %"$out_of_gas_801", %"$have_gas_797" +"$have_gas_802": ; preds = %"$out_of_gas_801", %"$have_gas_786" %"$consume_803" = sub i64 %"$gasrem_799", 1 store i64 %"$consume_803", i64* @_gasrem, align 8 - store [3 x i8] c"\0F\0F\0F", [3 x i8]* %bs3, align 1, !dbg !72 + %bs3 = alloca [3 x i8], align 1 + call void @llvm.dbg.declare(metadata [3 x i8]* %bs3, metadata !165, metadata !DIExpression()), !dbg !167 %"$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" @@ -1603,7 +1655,7 @@ entry: "$have_gas_807": ; preds = %"$out_of_gas_806", %"$have_gas_802" %"$consume_808" = sub i64 %"$gasrem_804", 1 store i64 %"$consume_808", i64* @_gasrem, align 8 - %bs4 = alloca [3 x i8], align 1 + store [3 x i8] c"\0F\0F\0F", [3 x i8]* %bs3, align 1, !dbg !168 %"$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" @@ -1615,7 +1667,8 @@ entry: "$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 - store [3 x i8] c"\0F\0F\0E", [3 x i8]* %bs4, align 1, !dbg !73 + %bs4 = alloca [3 x i8], align 1 + call void @llvm.dbg.declare(metadata [3 x i8]* %bs4, metadata !169, metadata !DIExpression()), !dbg !170 %"$gasrem_814" = load i64, i64* @_gasrem, align 8 %"$gascmp_815" = icmp ugt i64 1, %"$gasrem_814" br i1 %"$gascmp_815", label %"$out_of_gas_816", label %"$have_gas_817" @@ -1627,9 +1680,9 @@ entry: "$have_gas_817": ; preds = %"$out_of_gas_816", %"$have_gas_812" %"$consume_818" = sub i64 %"$gasrem_814", 1 store i64 %"$consume_818", i64* @_gasrem, align 8 - %b20 = alloca %TName_Bool*, align 8 + store [3 x i8] c"\0F\0F\0E", [3 x i8]* %bs4, align 1, !dbg !171 %"$gasrem_819" = load i64, i64* @_gasrem, align 8 - %"$gascmp_820" = icmp ugt i64 3, %"$gasrem_819" + %"$gascmp_820" = icmp ugt i64 1, %"$gasrem_819" br i1 %"$gascmp_820", label %"$out_of_gas_821", label %"$have_gas_822" "$out_of_gas_821": ; preds = %"$have_gas_817" @@ -1637,488 +1690,522 @@ entry: br label %"$have_gas_822" "$have_gas_822": ; preds = %"$out_of_gas_821", %"$have_gas_817" - %"$consume_823" = sub i64 %"$gasrem_819", 3 + %"$consume_823" = sub i64 %"$gasrem_819", 1 store i64 %"$consume_823", i64* @_gasrem, align 8 - %"$execptr_load_824" = load i8*, i8** @_execptr, align 8 - %"$eq_bs3_825" = alloca [3 x i8], align 1 - %"$bs3_826" = load [3 x i8], [3 x i8]* %bs3, align 1 - store [3 x i8] %"$bs3_826", [3 x i8]* %"$eq_bs3_825", align 1 - %"$$eq_bs3_825_827" = bitcast [3 x i8]* %"$eq_bs3_825" to i8* - %"$eq_bs4_828" = alloca [3 x i8], align 1 - %"$bs4_829" = load [3 x i8], [3 x i8]* %bs4, align 1 - store [3 x i8] %"$bs4_829", [3 x i8]* %"$eq_bs4_828", align 1 - %"$$eq_bs4_828_830" = bitcast [3 x i8]* %"$eq_bs4_828" to i8* - %"$eq_call_831" = call %TName_Bool* @_eq_ByStrX(i8* %"$execptr_load_824", i32 3, i8* %"$$eq_bs3_825_827", i8* %"$$eq_bs4_828_830"), !dbg !74 - store %TName_Bool* %"$eq_call_831", %TName_Bool** %b20, align 8, !dbg !74 - %"$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_835": ; preds = %"$have_gas_822" - call void @_out_of_gas() - br label %"$have_gas_836" - -"$have_gas_836": ; preds = %"$out_of_gas_835", %"$have_gas_822" - %"$consume_837" = sub i64 %"$gasrem_833", 1 - store i64 %"$consume_837", i64* @_gasrem, align 8 - %b21 = alloca %TName_Bool*, align 8 + %b20 = alloca %TName_Bool*, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %b20, metadata !172, metadata !DIExpression()), !dbg !173 + %"$gasrem_824" = load i64, i64* @_gasrem, align 8 + %"$gascmp_825" = icmp ugt i64 3, %"$gasrem_824" + br i1 %"$gascmp_825", label %"$out_of_gas_826", label %"$have_gas_827" + +"$out_of_gas_826": ; preds = %"$have_gas_822" + call void @_out_of_gas() + br label %"$have_gas_827" + +"$have_gas_827": ; preds = %"$out_of_gas_826", %"$have_gas_822" + %"$consume_828" = sub i64 %"$gasrem_824", 3 + store i64 %"$consume_828", i64* @_gasrem, align 8 + %"$execptr_load_829" = load i8*, i8** @_execptr, align 8 + %"$eq_bs3_830" = alloca [3 x i8], align 1 + %"$bs3_831" = load [3 x i8], [3 x i8]* %bs3, align 1 + store [3 x i8] %"$bs3_831", [3 x i8]* %"$eq_bs3_830", align 1 + %"$$eq_bs3_830_832" = bitcast [3 x i8]* %"$eq_bs3_830" to i8* + %"$eq_bs4_833" = alloca [3 x i8], align 1 + %"$bs4_834" = load [3 x i8], [3 x i8]* %bs4, align 1 + store [3 x i8] %"$bs4_834", [3 x i8]* %"$eq_bs4_833", align 1 + %"$$eq_bs4_833_835" = bitcast [3 x i8]* %"$eq_bs4_833" to i8* + %"$eq_call_836" = call %TName_Bool* @_eq_ByStrX(i8* %"$execptr_load_829", i32 3, i8* %"$$eq_bs3_830_832", i8* %"$$eq_bs4_833_835"), !dbg !174 + store %TName_Bool* %"$eq_call_836", %TName_Bool** %b20, align 8, !dbg !174 %"$gasrem_838" = load i64, i64* @_gasrem, align 8 %"$gascmp_839" = icmp ugt i64 1, %"$gasrem_838" br i1 %"$gascmp_839", label %"$out_of_gas_840", label %"$have_gas_841" -"$out_of_gas_840": ; preds = %"$have_gas_836" +"$out_of_gas_840": ; preds = %"$have_gas_827" call void @_out_of_gas() br label %"$have_gas_841" -"$have_gas_841": ; preds = %"$out_of_gas_840", %"$have_gas_836" +"$have_gas_841": ; preds = %"$out_of_gas_840", %"$have_gas_827" %"$consume_842" = sub i64 %"$gasrem_838", 1 store i64 %"$consume_842", i64* @_gasrem, align 8 + %b21 = alloca %TName_Bool*, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %b21, metadata !175, metadata !DIExpression()), !dbg !176 + %"$gasrem_843" = load i64, i64* @_gasrem, align 8 + %"$gascmp_844" = icmp ugt i64 1, %"$gasrem_843" + br i1 %"$gascmp_844", label %"$out_of_gas_845", label %"$have_gas_846" + +"$out_of_gas_845": ; preds = %"$have_gas_841" + call void @_out_of_gas() + br label %"$have_gas_846" + +"$have_gas_846": ; preds = %"$out_of_gas_845", %"$have_gas_841" + %"$consume_847" = sub i64 %"$gasrem_843", 1 + store i64 %"$consume_847", i64* @_gasrem, align 8 %"$BoolUtils.negb_25" = alloca %TName_Bool*, align 8 - %"$BoolUtils.negb_843" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* @BoolUtils.negb, align 8 - %"$BoolUtils.negb_fptr_844" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.negb_843", 0 - %"$BoolUtils.negb_envptr_845" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.negb_843", 1 - %"$b20_846" = load %TName_Bool*, %TName_Bool** %b20, align 8 - %"$BoolUtils.negb_call_847" = call %TName_Bool* %"$BoolUtils.negb_fptr_844"(i8* %"$BoolUtils.negb_envptr_845", %TName_Bool* %"$b20_846"), !dbg !75 - store %TName_Bool* %"$BoolUtils.negb_call_847", %TName_Bool** %"$BoolUtils.negb_25", align 8, !dbg !75 - %"$$BoolUtils.negb_25_848" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.negb_25", align 8 - store %TName_Bool* %"$$BoolUtils.negb_25_848", %TName_Bool** %b21, align 8, !dbg !75 - %"$gasrem_849" = load i64, i64* @_gasrem, align 8 - %"$gascmp_850" = icmp ugt i64 1, %"$gasrem_849" - br i1 %"$gascmp_850", label %"$out_of_gas_851", label %"$have_gas_852" - -"$out_of_gas_851": ; preds = %"$have_gas_841" - call void @_out_of_gas() - br label %"$have_gas_852" - -"$have_gas_852": ; preds = %"$out_of_gas_851", %"$have_gas_841" - %"$consume_853" = sub i64 %"$gasrem_849", 1 - store i64 %"$consume_853", i64* @_gasrem, align 8 - %b22 = alloca %TName_Bool*, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$BoolUtils.negb_25", metadata !177, metadata !DIExpression()), !dbg !178 + %"$BoolUtils.negb_848" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* @BoolUtils.negb, align 8 + %"$BoolUtils.negb_fptr_849" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.negb_848", 0 + %"$BoolUtils.negb_envptr_850" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.negb_848", 1 + %"$b20_851" = load %TName_Bool*, %TName_Bool** %b20, align 8 + %"$BoolUtils.negb_call_852" = call %TName_Bool* %"$BoolUtils.negb_fptr_849"(i8* %"$BoolUtils.negb_envptr_850", %TName_Bool* %"$b20_851"), !dbg !178 + store %TName_Bool* %"$BoolUtils.negb_call_852", %TName_Bool** %"$BoolUtils.negb_25", align 8, !dbg !178 + %"$$BoolUtils.negb_25_853" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.negb_25", align 8 + store %TName_Bool* %"$$BoolUtils.negb_25_853", %TName_Bool** %b21, align 8, !dbg !178 %"$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_852" +"$out_of_gas_856": ; preds = %"$have_gas_846" call void @_out_of_gas() br label %"$have_gas_857" -"$have_gas_857": ; preds = %"$out_of_gas_856", %"$have_gas_852" +"$have_gas_857": ; preds = %"$out_of_gas_856", %"$have_gas_846" %"$consume_858" = sub i64 %"$gasrem_854", 1 store i64 %"$consume_858", i64* @_gasrem, align 8 + %b22 = alloca %TName_Bool*, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %b22, metadata !179, metadata !DIExpression()), !dbg !180 + %"$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 %"$BoolUtils.andb_26" = alloca { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, align 8 - %"$BoolUtils.andb_859" = 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_860" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_859", 0 - %"$BoolUtils.andb_envptr_861" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_859", 1 - %"$b19_862" = load %TName_Bool*, %TName_Bool** %b19, align 8 - %"$BoolUtils.andb_call_863" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_860"(i8* %"$BoolUtils.andb_envptr_861", %TName_Bool* %"$b19_862"), !dbg !76 - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_863", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_26", align 8, !dbg !76 + %"$BoolUtils.andb_864" = 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_865" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_864", 0 + %"$BoolUtils.andb_envptr_866" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_864", 1 + %"$b19_867" = load %TName_Bool*, %TName_Bool** %b19, align 8 + %"$BoolUtils.andb_call_868" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_865"(i8* %"$BoolUtils.andb_envptr_866", %TName_Bool* %"$b19_867"), !dbg !181 + store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_868", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_26", align 8, !dbg !181 %"$BoolUtils.andb_27" = alloca %TName_Bool*, align 8 - %"$$BoolUtils.andb_26_864" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_26", align 8 - %"$$BoolUtils.andb_26_fptr_865" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_26_864", 0 - %"$$BoolUtils.andb_26_envptr_866" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_26_864", 1 - %"$b21_867" = load %TName_Bool*, %TName_Bool** %b21, align 8 - %"$$BoolUtils.andb_26_call_868" = call %TName_Bool* %"$$BoolUtils.andb_26_fptr_865"(i8* %"$$BoolUtils.andb_26_envptr_866", %TName_Bool* %"$b21_867"), !dbg !76 - store %TName_Bool* %"$$BoolUtils.andb_26_call_868", %TName_Bool** %"$BoolUtils.andb_27", align 8, !dbg !76 - %"$$BoolUtils.andb_27_869" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_27", align 8 - store %TName_Bool* %"$$BoolUtils.andb_27_869", %TName_Bool** %b22, align 8, !dbg !76 - %"$gasrem_870" = load i64, i64* @_gasrem, align 8 - %"$gascmp_871" = icmp ugt i64 1, %"$gasrem_870" - br i1 %"$gascmp_871", label %"$out_of_gas_872", label %"$have_gas_873" - -"$out_of_gas_872": ; preds = %"$have_gas_857" - call void @_out_of_gas() - br label %"$have_gas_873" - -"$have_gas_873": ; preds = %"$out_of_gas_872", %"$have_gas_857" - %"$consume_874" = sub i64 %"$gasrem_870", 1 - store i64 %"$consume_874", i64* @_gasrem, align 8 - %"$bs11_6" = alloca %Bystr, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$BoolUtils.andb_27", metadata !182, metadata !DIExpression()), !dbg !181 + %"$$BoolUtils.andb_26_869" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_26", align 8 + %"$$BoolUtils.andb_26_fptr_870" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_26_869", 0 + %"$$BoolUtils.andb_26_envptr_871" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_26_869", 1 + %"$b21_872" = load %TName_Bool*, %TName_Bool** %b21, align 8 + %"$$BoolUtils.andb_26_call_873" = call %TName_Bool* %"$$BoolUtils.andb_26_fptr_870"(i8* %"$$BoolUtils.andb_26_envptr_871", %TName_Bool* %"$b21_872"), !dbg !181 + store %TName_Bool* %"$$BoolUtils.andb_26_call_873", %TName_Bool** %"$BoolUtils.andb_27", align 8, !dbg !181 + %"$$BoolUtils.andb_27_874" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_27", align 8 + store %TName_Bool* %"$$BoolUtils.andb_27_874", %TName_Bool** %b22, align 8, !dbg !181 %"$gasrem_875" = load i64, i64* @_gasrem, align 8 - %"$gascmp_876" = icmp ugt i64 2, %"$gasrem_875" + %"$gascmp_876" = icmp ugt i64 1, %"$gasrem_875" br i1 %"$gascmp_876", label %"$out_of_gas_877", label %"$have_gas_878" -"$out_of_gas_877": ; preds = %"$have_gas_873" +"$out_of_gas_877": ; preds = %"$have_gas_862" call void @_out_of_gas() br label %"$have_gas_878" -"$have_gas_878": ; preds = %"$out_of_gas_877", %"$have_gas_873" - %"$consume_879" = sub i64 %"$gasrem_875", 2 +"$have_gas_878": ; preds = %"$out_of_gas_877", %"$have_gas_862" + %"$consume_879" = sub i64 %"$gasrem_875", 1 store i64 %"$consume_879", i64* @_gasrem, align 8 - %"$execptr_load_880" = load i8*, i8** @_execptr, align 8 - %"$to_bystr_bs1_881" = alloca [2 x i8], align 1 - %"$bs1_882" = load [2 x i8], [2 x i8]* %bs1, align 1 - store [2 x i8] %"$bs1_882", [2 x i8]* %"$to_bystr_bs1_881", align 1 - %"$$to_bystr_bs1_881_883" = bitcast [2 x i8]* %"$to_bystr_bs1_881" to i8* - %"$to_bystr_call_884" = call %Bystr @_to_bystr(i8* %"$execptr_load_880", i32 2, i8* %"$$to_bystr_bs1_881_883"), !dbg !77 - store %Bystr %"$to_bystr_call_884", %Bystr* %"$bs11_6", align 8, !dbg !77 - %"$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_878" - call void @_out_of_gas() - br label %"$have_gas_888" - -"$have_gas_888": ; preds = %"$out_of_gas_887", %"$have_gas_878" - %"$consume_889" = sub i64 %"$gasrem_885", 1 - store i64 %"$consume_889", i64* @_gasrem, align 8 - %bs22 = alloca %Bystr, align 8 + %"$bs11_6" = alloca %Bystr, align 8 + call void @llvm.dbg.declare(metadata %Bystr* %"$bs11_6", metadata !183, metadata !DIExpression()), !dbg !185 + %"$gasrem_880" = load i64, i64* @_gasrem, align 8 + %"$gascmp_881" = icmp ugt i64 2, %"$gasrem_880" + br i1 %"$gascmp_881", label %"$out_of_gas_882", label %"$have_gas_883" + +"$out_of_gas_882": ; preds = %"$have_gas_878" + call void @_out_of_gas() + br label %"$have_gas_883" + +"$have_gas_883": ; preds = %"$out_of_gas_882", %"$have_gas_878" + %"$consume_884" = sub i64 %"$gasrem_880", 2 + store i64 %"$consume_884", i64* @_gasrem, align 8 + %"$execptr_load_885" = load i8*, i8** @_execptr, align 8 + %"$to_bystr_bs1_886" = alloca [2 x i8], align 1 + %"$bs1_887" = load [2 x i8], [2 x i8]* %bs1, align 1 + store [2 x i8] %"$bs1_887", [2 x i8]* %"$to_bystr_bs1_886", align 1 + %"$$to_bystr_bs1_886_888" = bitcast [2 x i8]* %"$to_bystr_bs1_886" to i8* + %"$to_bystr_call_889" = call %Bystr @_to_bystr(i8* %"$execptr_load_885", i32 2, i8* %"$$to_bystr_bs1_886_888"), !dbg !186 + store %Bystr %"$to_bystr_call_889", %Bystr* %"$bs11_6", align 8, !dbg !186 %"$gasrem_890" = load i64, i64* @_gasrem, align 8 - %"$gascmp_891" = icmp ugt i64 2, %"$gasrem_890" + %"$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" +"$out_of_gas_892": ; preds = %"$have_gas_883" 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", 2 +"$have_gas_893": ; preds = %"$out_of_gas_892", %"$have_gas_883" + %"$consume_894" = sub i64 %"$gasrem_890", 1 store i64 %"$consume_894", i64* @_gasrem, align 8 - %"$execptr_load_895" = load i8*, i8** @_execptr, align 8 - %"$to_bystr_bs2_896" = alloca [2 x i8], align 1 - %"$bs2_897" = load [2 x i8], [2 x i8]* %bs2, align 1 - store [2 x i8] %"$bs2_897", [2 x i8]* %"$to_bystr_bs2_896", align 1 - %"$$to_bystr_bs2_896_898" = bitcast [2 x i8]* %"$to_bystr_bs2_896" to i8* - %"$to_bystr_call_899" = call %Bystr @_to_bystr(i8* %"$execptr_load_895", i32 2, i8* %"$$to_bystr_bs2_896_898"), !dbg !78 - store %Bystr %"$to_bystr_call_899", %Bystr* %bs22, align 8, !dbg !78 - %"$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_893" - call void @_out_of_gas() - br label %"$have_gas_903" - -"$have_gas_903": ; preds = %"$out_of_gas_902", %"$have_gas_893" - %"$consume_904" = sub i64 %"$gasrem_900", 1 - store i64 %"$consume_904", i64* @_gasrem, align 8 + %bs22 = alloca %Bystr, align 8 + call void @llvm.dbg.declare(metadata %Bystr* %bs22, metadata !187, metadata !DIExpression()), !dbg !188 + %"$gasrem_895" = load i64, i64* @_gasrem, align 8 + %"$gascmp_896" = icmp ugt i64 2, %"$gasrem_895" + br i1 %"$gascmp_896", label %"$out_of_gas_897", label %"$have_gas_898" + +"$out_of_gas_897": ; preds = %"$have_gas_893" + call void @_out_of_gas() + br label %"$have_gas_898" + +"$have_gas_898": ; preds = %"$out_of_gas_897", %"$have_gas_893" + %"$consume_899" = sub i64 %"$gasrem_895", 2 + store i64 %"$consume_899", i64* @_gasrem, align 8 + %"$execptr_load_900" = load i8*, i8** @_execptr, align 8 + %"$to_bystr_bs2_901" = alloca [2 x i8], align 1 + %"$bs2_902" = load [2 x i8], [2 x i8]* %bs2, align 1 + store [2 x i8] %"$bs2_902", [2 x i8]* %"$to_bystr_bs2_901", align 1 + %"$$to_bystr_bs2_901_903" = bitcast [2 x i8]* %"$to_bystr_bs2_901" to i8* + %"$to_bystr_call_904" = call %Bystr @_to_bystr(i8* %"$execptr_load_900", i32 2, i8* %"$$to_bystr_bs2_901_903"), !dbg !189 + store %Bystr %"$to_bystr_call_904", %Bystr* %bs22, align 8, !dbg !189 + %"$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_898" + call void @_out_of_gas() + br label %"$have_gas_908" + +"$have_gas_908": ; preds = %"$out_of_gas_907", %"$have_gas_898" + %"$consume_909" = sub i64 %"$gasrem_905", 1 + store i64 %"$consume_909", i64* @_gasrem, align 8 %b23 = alloca %TName_Bool*, align 8 - %"$_literal_cost_$bs11_6_905" = alloca %Bystr, align 8 - %"$$bs11_6_906" = load %Bystr, %Bystr* %"$bs11_6", align 8 - store %Bystr %"$$bs11_6_906", %Bystr* %"$_literal_cost_$bs11_6_905", align 8 - %"$$_literal_cost_$bs11_6_905_907" = bitcast %Bystr* %"$_literal_cost_$bs11_6_905" to i8* - %"$_literal_cost_call_908" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Bystr_77", i8* %"$$_literal_cost_$bs11_6_905_907") - %"$gasrem_909" = load i64, i64* @_gasrem, align 8 - %"$gascmp_910" = icmp ugt i64 %"$_literal_cost_call_908", %"$gasrem_909" - br i1 %"$gascmp_910", label %"$out_of_gas_911", label %"$have_gas_912" - -"$out_of_gas_911": ; preds = %"$have_gas_903" - call void @_out_of_gas() - br label %"$have_gas_912" - -"$have_gas_912": ; preds = %"$out_of_gas_911", %"$have_gas_903" - %"$consume_913" = sub i64 %"$gasrem_909", %"$_literal_cost_call_908" - store i64 %"$consume_913", i64* @_gasrem, align 8 - %"$execptr_load_914" = load i8*, i8** @_execptr, align 8 - %"$$bs11_6_915" = load %Bystr, %Bystr* %"$bs11_6", align 8 - %"$bs22_916" = load %Bystr, %Bystr* %bs22, align 8 - %"$eq_call_917" = call %TName_Bool* @_eq_ByStr(i8* %"$execptr_load_914", %Bystr %"$$bs11_6_915", %Bystr %"$bs22_916"), !dbg !79 - store %TName_Bool* %"$eq_call_917", %TName_Bool** %b23, align 8, !dbg !79 - %"$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" - -"$out_of_gas_921": ; preds = %"$have_gas_912" - call void @_out_of_gas() - br label %"$have_gas_922" - -"$have_gas_922": ; preds = %"$out_of_gas_921", %"$have_gas_912" - %"$consume_923" = sub i64 %"$gasrem_919", 1 - store i64 %"$consume_923", i64* @_gasrem, align 8 - %b24 = alloca %TName_Bool*, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %b23, metadata !190, metadata !DIExpression()), !dbg !191 + %"$_literal_cost_$bs11_6_910" = alloca %Bystr, align 8 + %"$$bs11_6_911" = load %Bystr, %Bystr* %"$bs11_6", align 8 + store %Bystr %"$$bs11_6_911", %Bystr* %"$_literal_cost_$bs11_6_910", align 8 + %"$$_literal_cost_$bs11_6_910_912" = bitcast %Bystr* %"$_literal_cost_$bs11_6_910" to i8* + %"$_literal_cost_call_913" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Bystr_77", i8* %"$$_literal_cost_$bs11_6_910_912") + %"$gasrem_914" = load i64, i64* @_gasrem, align 8 + %"$gascmp_915" = icmp ugt i64 %"$_literal_cost_call_913", %"$gasrem_914" + br i1 %"$gascmp_915", label %"$out_of_gas_916", label %"$have_gas_917" + +"$out_of_gas_916": ; preds = %"$have_gas_908" + call void @_out_of_gas() + br label %"$have_gas_917" + +"$have_gas_917": ; preds = %"$out_of_gas_916", %"$have_gas_908" + %"$consume_918" = sub i64 %"$gasrem_914", %"$_literal_cost_call_913" + store i64 %"$consume_918", i64* @_gasrem, align 8 + %"$execptr_load_919" = load i8*, i8** @_execptr, align 8 + %"$$bs11_6_920" = load %Bystr, %Bystr* %"$bs11_6", align 8 + %"$bs22_921" = load %Bystr, %Bystr* %bs22, align 8 + %"$eq_call_922" = call %TName_Bool* @_eq_ByStr(i8* %"$execptr_load_919", %Bystr %"$$bs11_6_920", %Bystr %"$bs22_921"), !dbg !192 + store %TName_Bool* %"$eq_call_922", %TName_Bool** %b23, align 8, !dbg !192 %"$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_926": ; preds = %"$have_gas_922" +"$out_of_gas_926": ; preds = %"$have_gas_917" call void @_out_of_gas() br label %"$have_gas_927" -"$have_gas_927": ; preds = %"$out_of_gas_926", %"$have_gas_922" +"$have_gas_927": ; preds = %"$out_of_gas_926", %"$have_gas_917" %"$consume_928" = sub i64 %"$gasrem_924", 1 store i64 %"$consume_928", i64* @_gasrem, align 8 + %b24 = alloca %TName_Bool*, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %b24, metadata !193, metadata !DIExpression()), !dbg !194 + %"$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_931": ; preds = %"$have_gas_927" + call void @_out_of_gas() + br label %"$have_gas_932" + +"$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 %"$BoolUtils.negb_28" = alloca %TName_Bool*, align 8 - %"$BoolUtils.negb_929" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* @BoolUtils.negb, align 8 - %"$BoolUtils.negb_fptr_930" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.negb_929", 0 - %"$BoolUtils.negb_envptr_931" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.negb_929", 1 - %"$b23_932" = load %TName_Bool*, %TName_Bool** %b23, align 8 - %"$BoolUtils.negb_call_933" = call %TName_Bool* %"$BoolUtils.negb_fptr_930"(i8* %"$BoolUtils.negb_envptr_931", %TName_Bool* %"$b23_932"), !dbg !80 - store %TName_Bool* %"$BoolUtils.negb_call_933", %TName_Bool** %"$BoolUtils.negb_28", align 8, !dbg !80 - %"$$BoolUtils.negb_28_934" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.negb_28", align 8 - store %TName_Bool* %"$$BoolUtils.negb_28_934", %TName_Bool** %b24, align 8, !dbg !80 - %"$gasrem_935" = load i64, i64* @_gasrem, align 8 - %"$gascmp_936" = icmp ugt i64 1, %"$gasrem_935" - br i1 %"$gascmp_936", label %"$out_of_gas_937", label %"$have_gas_938" - -"$out_of_gas_937": ; preds = %"$have_gas_927" - call void @_out_of_gas() - br label %"$have_gas_938" - -"$have_gas_938": ; preds = %"$out_of_gas_937", %"$have_gas_927" - %"$consume_939" = sub i64 %"$gasrem_935", 1 - store i64 %"$consume_939", i64* @_gasrem, align 8 - %b25 = alloca %TName_Bool*, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$BoolUtils.negb_28", metadata !195, metadata !DIExpression()), !dbg !196 + %"$BoolUtils.negb_934" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* @BoolUtils.negb, align 8 + %"$BoolUtils.negb_fptr_935" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.negb_934", 0 + %"$BoolUtils.negb_envptr_936" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.negb_934", 1 + %"$b23_937" = load %TName_Bool*, %TName_Bool** %b23, align 8 + %"$BoolUtils.negb_call_938" = call %TName_Bool* %"$BoolUtils.negb_fptr_935"(i8* %"$BoolUtils.negb_envptr_936", %TName_Bool* %"$b23_937"), !dbg !196 + store %TName_Bool* %"$BoolUtils.negb_call_938", %TName_Bool** %"$BoolUtils.negb_28", align 8, !dbg !196 + %"$$BoolUtils.negb_28_939" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.negb_28", align 8 + store %TName_Bool* %"$$BoolUtils.negb_28_939", %TName_Bool** %b24, align 8, !dbg !196 %"$gasrem_940" = load i64, i64* @_gasrem, align 8 %"$gascmp_941" = icmp ugt i64 1, %"$gasrem_940" br i1 %"$gascmp_941", label %"$out_of_gas_942", label %"$have_gas_943" -"$out_of_gas_942": ; preds = %"$have_gas_938" +"$out_of_gas_942": ; preds = %"$have_gas_932" call void @_out_of_gas() br label %"$have_gas_943" -"$have_gas_943": ; preds = %"$out_of_gas_942", %"$have_gas_938" +"$have_gas_943": ; preds = %"$out_of_gas_942", %"$have_gas_932" %"$consume_944" = sub i64 %"$gasrem_940", 1 store i64 %"$consume_944", i64* @_gasrem, align 8 + %b25 = alloca %TName_Bool*, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %b25, metadata !197, metadata !DIExpression()), !dbg !198 + %"$gasrem_945" = load i64, i64* @_gasrem, align 8 + %"$gascmp_946" = icmp ugt i64 1, %"$gasrem_945" + br i1 %"$gascmp_946", label %"$out_of_gas_947", label %"$have_gas_948" + +"$out_of_gas_947": ; preds = %"$have_gas_943" + call void @_out_of_gas() + br label %"$have_gas_948" + +"$have_gas_948": ; preds = %"$out_of_gas_947", %"$have_gas_943" + %"$consume_949" = sub i64 %"$gasrem_945", 1 + store i64 %"$consume_949", i64* @_gasrem, align 8 %"$BoolUtils.andb_29" = alloca { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, align 8 - %"$BoolUtils.andb_945" = 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_946" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_945", 0 - %"$BoolUtils.andb_envptr_947" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_945", 1 - %"$b22_948" = load %TName_Bool*, %TName_Bool** %b22, align 8 - %"$BoolUtils.andb_call_949" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_946"(i8* %"$BoolUtils.andb_envptr_947", %TName_Bool* %"$b22_948"), !dbg !81 - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_949", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_29", align 8, !dbg !81 + %"$BoolUtils.andb_950" = 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_951" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_950", 0 + %"$BoolUtils.andb_envptr_952" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_950", 1 + %"$b22_953" = load %TName_Bool*, %TName_Bool** %b22, align 8 + %"$BoolUtils.andb_call_954" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_951"(i8* %"$BoolUtils.andb_envptr_952", %TName_Bool* %"$b22_953"), !dbg !199 + store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_954", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_29", align 8, !dbg !199 %"$BoolUtils.andb_30" = alloca %TName_Bool*, align 8 - %"$$BoolUtils.andb_29_950" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_29", align 8 - %"$$BoolUtils.andb_29_fptr_951" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_29_950", 0 - %"$$BoolUtils.andb_29_envptr_952" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_29_950", 1 - %"$b24_953" = load %TName_Bool*, %TName_Bool** %b24, align 8 - %"$$BoolUtils.andb_29_call_954" = call %TName_Bool* %"$$BoolUtils.andb_29_fptr_951"(i8* %"$$BoolUtils.andb_29_envptr_952", %TName_Bool* %"$b24_953"), !dbg !81 - store %TName_Bool* %"$$BoolUtils.andb_29_call_954", %TName_Bool** %"$BoolUtils.andb_30", align 8, !dbg !81 - %"$$BoolUtils.andb_30_955" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_30", align 8 - store %TName_Bool* %"$$BoolUtils.andb_30_955", %TName_Bool** %b25, align 8, !dbg !81 - %"$gasrem_956" = load i64, i64* @_gasrem, align 8 - %"$gascmp_957" = icmp ugt i64 1, %"$gasrem_956" - br i1 %"$gascmp_957", label %"$out_of_gas_958", label %"$have_gas_959" - -"$out_of_gas_958": ; preds = %"$have_gas_943" - call void @_out_of_gas() - br label %"$have_gas_959" - -"$have_gas_959": ; preds = %"$out_of_gas_958", %"$have_gas_943" - %"$consume_960" = sub i64 %"$gasrem_956", 1 - store i64 %"$consume_960", i64* @_gasrem, align 8 - %bn1 = alloca i8*, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$BoolUtils.andb_30", metadata !200, metadata !DIExpression()), !dbg !199 + %"$$BoolUtils.andb_29_955" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_29", align 8 + %"$$BoolUtils.andb_29_fptr_956" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_29_955", 0 + %"$$BoolUtils.andb_29_envptr_957" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_29_955", 1 + %"$b24_958" = load %TName_Bool*, %TName_Bool** %b24, align 8 + %"$$BoolUtils.andb_29_call_959" = call %TName_Bool* %"$$BoolUtils.andb_29_fptr_956"(i8* %"$$BoolUtils.andb_29_envptr_957", %TName_Bool* %"$b24_958"), !dbg !199 + store %TName_Bool* %"$$BoolUtils.andb_29_call_959", %TName_Bool** %"$BoolUtils.andb_30", align 8, !dbg !199 + %"$$BoolUtils.andb_30_960" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_30", align 8 + store %TName_Bool* %"$$BoolUtils.andb_30_960", %TName_Bool** %b25, align 8, !dbg !199 %"$gasrem_961" = load i64, i64* @_gasrem, align 8 %"$gascmp_962" = icmp ugt i64 1, %"$gasrem_961" br i1 %"$gascmp_962", label %"$out_of_gas_963", label %"$have_gas_964" -"$out_of_gas_963": ; preds = %"$have_gas_959" +"$out_of_gas_963": ; preds = %"$have_gas_948" call void @_out_of_gas() br label %"$have_gas_964" -"$have_gas_964": ; preds = %"$out_of_gas_963", %"$have_gas_959" +"$have_gas_964": ; preds = %"$out_of_gas_963", %"$have_gas_948" %"$consume_965" = sub i64 %"$gasrem_961", 1 store i64 %"$consume_965", i64* @_gasrem, align 8 - %"$execptr_load_967" = load i8*, i8** @_execptr, align 8 - %"$_new_bnum_call_968" = call i8* @_new_bnum(i8* %"$execptr_load_967", %BNumString { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$BNumLit_966", i32 0, i32 0), i32 3 }) - store i8* %"$_new_bnum_call_968", i8** %bn1, align 8, !dbg !82 - %"$gasrem_970" = load i64, i64* @_gasrem, align 8 - %"$gascmp_971" = icmp ugt i64 1, %"$gasrem_970" - br i1 %"$gascmp_971", label %"$out_of_gas_972", label %"$have_gas_973" + %bn1 = alloca i8*, align 8 + call void @llvm.dbg.declare(metadata i8** %bn1, metadata !201, metadata !DIExpression()), !dbg !204 + %"$gasrem_966" = load i64, i64* @_gasrem, align 8 + %"$gascmp_967" = icmp ugt i64 1, %"$gasrem_966" + br i1 %"$gascmp_967", label %"$out_of_gas_968", label %"$have_gas_969" -"$out_of_gas_972": ; preds = %"$have_gas_964" +"$out_of_gas_968": ; preds = %"$have_gas_964" call void @_out_of_gas() - br label %"$have_gas_973" + br label %"$have_gas_969" -"$have_gas_973": ; preds = %"$out_of_gas_972", %"$have_gas_964" - %"$consume_974" = sub i64 %"$gasrem_970", 1 - store i64 %"$consume_974", i64* @_gasrem, align 8 - %bn2 = alloca i8*, align 8 +"$have_gas_969": ; preds = %"$out_of_gas_968", %"$have_gas_964" + %"$consume_970" = sub i64 %"$gasrem_966", 1 + store i64 %"$consume_970", i64* @_gasrem, align 8 + %"$execptr_load_972" = load i8*, i8** @_execptr, align 8 + %"$_new_bnum_call_973" = call i8* @_new_bnum(i8* %"$execptr_load_972", %BNumString { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$BNumLit_971", i32 0, i32 0), i32 3 }) + store i8* %"$_new_bnum_call_973", i8** %bn1, align 8, !dbg !205 %"$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_977": ; preds = %"$have_gas_973" +"$out_of_gas_977": ; preds = %"$have_gas_969" call void @_out_of_gas() br label %"$have_gas_978" -"$have_gas_978": ; preds = %"$out_of_gas_977", %"$have_gas_973" +"$have_gas_978": ; preds = %"$out_of_gas_977", %"$have_gas_969" %"$consume_979" = sub i64 %"$gasrem_975", 1 store i64 %"$consume_979", i64* @_gasrem, align 8 - %"$execptr_load_981" = load i8*, i8** @_execptr, align 8 - %"$_new_bnum_call_982" = call i8* @_new_bnum(i8* %"$execptr_load_981", %BNumString { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$BNumLit_980", i32 0, i32 0), i32 3 }) - store i8* %"$_new_bnum_call_982", i8** %bn2, align 8, !dbg !83 - %"$gasrem_984" = load i64, i64* @_gasrem, align 8 - %"$gascmp_985" = icmp ugt i64 1, %"$gasrem_984" - br i1 %"$gascmp_985", label %"$out_of_gas_986", label %"$have_gas_987" + %bn2 = alloca i8*, align 8 + call void @llvm.dbg.declare(metadata i8** %bn2, metadata !206, metadata !DIExpression()), !dbg !207 + %"$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_986": ; preds = %"$have_gas_978" +"$out_of_gas_982": ; preds = %"$have_gas_978" call void @_out_of_gas() - br label %"$have_gas_987" + br label %"$have_gas_983" -"$have_gas_987": ; preds = %"$out_of_gas_986", %"$have_gas_978" - %"$consume_988" = sub i64 %"$gasrem_984", 1 - store i64 %"$consume_988", i64* @_gasrem, align 8 - %bn3 = alloca i8*, 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 + %"$execptr_load_986" = load i8*, i8** @_execptr, align 8 + %"$_new_bnum_call_987" = call i8* @_new_bnum(i8* %"$execptr_load_986", %BNumString { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$BNumLit_985", i32 0, i32 0), i32 3 }) + store i8* %"$_new_bnum_call_987", i8** %bn2, align 8, !dbg !208 %"$gasrem_989" = load i64, i64* @_gasrem, align 8 %"$gascmp_990" = icmp ugt i64 1, %"$gasrem_989" br i1 %"$gascmp_990", label %"$out_of_gas_991", label %"$have_gas_992" -"$out_of_gas_991": ; preds = %"$have_gas_987" +"$out_of_gas_991": ; preds = %"$have_gas_983" call void @_out_of_gas() br label %"$have_gas_992" -"$have_gas_992": ; preds = %"$out_of_gas_991", %"$have_gas_987" +"$have_gas_992": ; preds = %"$out_of_gas_991", %"$have_gas_983" %"$consume_993" = sub i64 %"$gasrem_989", 1 store i64 %"$consume_993", i64* @_gasrem, align 8 - %"$execptr_load_995" = load i8*, i8** @_execptr, align 8 - %"$_new_bnum_call_996" = call i8* @_new_bnum(i8* %"$execptr_load_995", %BNumString { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$BNumLit_994", i32 0, i32 0), i32 3 }) - store i8* %"$_new_bnum_call_996", i8** %bn3, align 8, !dbg !84 - %"$gasrem_998" = load i64, i64* @_gasrem, align 8 - %"$gascmp_999" = icmp ugt i64 1, %"$gasrem_998" - br i1 %"$gascmp_999", label %"$out_of_gas_1000", label %"$have_gas_1001" + %bn3 = alloca i8*, align 8 + call void @llvm.dbg.declare(metadata i8** %bn3, metadata !209, metadata !DIExpression()), !dbg !210 + %"$gasrem_994" = load i64, i64* @_gasrem, align 8 + %"$gascmp_995" = icmp ugt i64 1, %"$gasrem_994" + br i1 %"$gascmp_995", label %"$out_of_gas_996", label %"$have_gas_997" -"$out_of_gas_1000": ; preds = %"$have_gas_992" +"$out_of_gas_996": ; preds = %"$have_gas_992" call void @_out_of_gas() - br label %"$have_gas_1001" + br label %"$have_gas_997" -"$have_gas_1001": ; preds = %"$out_of_gas_1000", %"$have_gas_992" - %"$consume_1002" = sub i64 %"$gasrem_998", 1 - store i64 %"$consume_1002", i64* @_gasrem, align 8 - %b26 = alloca %TName_Bool*, align 8 +"$have_gas_997": ; preds = %"$out_of_gas_996", %"$have_gas_992" + %"$consume_998" = sub i64 %"$gasrem_994", 1 + store i64 %"$consume_998", i64* @_gasrem, align 8 + %"$execptr_load_1000" = load i8*, i8** @_execptr, align 8 + %"$_new_bnum_call_1001" = call i8* @_new_bnum(i8* %"$execptr_load_1000", %BNumString { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$BNumLit_999", i32 0, i32 0), i32 3 }) + store i8* %"$_new_bnum_call_1001", i8** %bn3, align 8, !dbg !211 %"$gasrem_1003" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1004" = icmp ugt i64 32, %"$gasrem_1003" + %"$gascmp_1004" = icmp ugt i64 1, %"$gasrem_1003" br i1 %"$gascmp_1004", label %"$out_of_gas_1005", label %"$have_gas_1006" -"$out_of_gas_1005": ; preds = %"$have_gas_1001" +"$out_of_gas_1005": ; preds = %"$have_gas_997" call void @_out_of_gas() br label %"$have_gas_1006" -"$have_gas_1006": ; preds = %"$out_of_gas_1005", %"$have_gas_1001" - %"$consume_1007" = sub i64 %"$gasrem_1003", 32 +"$have_gas_1006": ; preds = %"$out_of_gas_1005", %"$have_gas_997" + %"$consume_1007" = sub i64 %"$gasrem_1003", 1 store i64 %"$consume_1007", i64* @_gasrem, align 8 - %"$execptr_load_1008" = load i8*, i8** @_execptr, align 8 - %"$bn1_1009" = load i8*, i8** %bn1, align 8 - %"$bn2_1010" = load i8*, i8** %bn2, align 8 - %"$eq_call_1011" = call %TName_Bool* @_eq_BNum(i8* %"$execptr_load_1008", i8* %"$bn1_1009", i8* %"$bn2_1010"), !dbg !85 - store %TName_Bool* %"$eq_call_1011", %TName_Bool** %b26, align 8, !dbg !85 - %"$gasrem_1013" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1014" = icmp ugt i64 1, %"$gasrem_1013" - br i1 %"$gascmp_1014", label %"$out_of_gas_1015", label %"$have_gas_1016" - -"$out_of_gas_1015": ; preds = %"$have_gas_1006" - call void @_out_of_gas() - br label %"$have_gas_1016" - -"$have_gas_1016": ; preds = %"$out_of_gas_1015", %"$have_gas_1006" - %"$consume_1017" = sub i64 %"$gasrem_1013", 1 - store i64 %"$consume_1017", i64* @_gasrem, align 8 - %b27 = alloca %TName_Bool*, align 8 + %b26 = alloca %TName_Bool*, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %b26, metadata !212, metadata !DIExpression()), !dbg !213 + %"$gasrem_1008" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1009" = icmp ugt i64 32, %"$gasrem_1008" + br i1 %"$gascmp_1009", label %"$out_of_gas_1010", label %"$have_gas_1011" + +"$out_of_gas_1010": ; preds = %"$have_gas_1006" + call void @_out_of_gas() + br label %"$have_gas_1011" + +"$have_gas_1011": ; preds = %"$out_of_gas_1010", %"$have_gas_1006" + %"$consume_1012" = sub i64 %"$gasrem_1008", 32 + store i64 %"$consume_1012", i64* @_gasrem, align 8 + %"$execptr_load_1013" = load i8*, i8** @_execptr, align 8 + %"$bn1_1014" = load i8*, i8** %bn1, align 8 + %"$bn2_1015" = load i8*, i8** %bn2, align 8 + %"$eq_call_1016" = call %TName_Bool* @_eq_BNum(i8* %"$execptr_load_1013", i8* %"$bn1_1014", i8* %"$bn2_1015"), !dbg !214 + store %TName_Bool* %"$eq_call_1016", %TName_Bool** %b26, align 8, !dbg !214 %"$gasrem_1018" = load i64, i64* @_gasrem, align 8 %"$gascmp_1019" = icmp ugt i64 1, %"$gasrem_1018" br i1 %"$gascmp_1019", label %"$out_of_gas_1020", label %"$have_gas_1021" -"$out_of_gas_1020": ; preds = %"$have_gas_1016" +"$out_of_gas_1020": ; preds = %"$have_gas_1011" call void @_out_of_gas() br label %"$have_gas_1021" -"$have_gas_1021": ; preds = %"$out_of_gas_1020", %"$have_gas_1016" +"$have_gas_1021": ; preds = %"$out_of_gas_1020", %"$have_gas_1011" %"$consume_1022" = sub i64 %"$gasrem_1018", 1 store i64 %"$consume_1022", i64* @_gasrem, align 8 + %b27 = alloca %TName_Bool*, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %b27, metadata !215, metadata !DIExpression()), !dbg !216 + %"$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" + +"$out_of_gas_1025": ; preds = %"$have_gas_1021" + call void @_out_of_gas() + br label %"$have_gas_1026" + +"$have_gas_1026": ; preds = %"$out_of_gas_1025", %"$have_gas_1021" + %"$consume_1027" = sub i64 %"$gasrem_1023", 1 + store i64 %"$consume_1027", i64* @_gasrem, align 8 %"$BoolUtils.negb_31" = alloca %TName_Bool*, align 8 - %"$BoolUtils.negb_1023" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* @BoolUtils.negb, align 8 - %"$BoolUtils.negb_fptr_1024" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.negb_1023", 0 - %"$BoolUtils.negb_envptr_1025" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.negb_1023", 1 - %"$b26_1026" = load %TName_Bool*, %TName_Bool** %b26, align 8 - %"$BoolUtils.negb_call_1027" = call %TName_Bool* %"$BoolUtils.negb_fptr_1024"(i8* %"$BoolUtils.negb_envptr_1025", %TName_Bool* %"$b26_1026"), !dbg !86 - store %TName_Bool* %"$BoolUtils.negb_call_1027", %TName_Bool** %"$BoolUtils.negb_31", align 8, !dbg !86 - %"$$BoolUtils.negb_31_1028" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.negb_31", align 8 - store %TName_Bool* %"$$BoolUtils.negb_31_1028", %TName_Bool** %b27, align 8, !dbg !86 - %"$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 = %"$have_gas_1021" - call void @_out_of_gas() - br label %"$have_gas_1032" - -"$have_gas_1032": ; preds = %"$out_of_gas_1031", %"$have_gas_1021" - %"$consume_1033" = sub i64 %"$gasrem_1029", 1 - store i64 %"$consume_1033", i64* @_gasrem, align 8 - %b28 = alloca %TName_Bool*, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$BoolUtils.negb_31", metadata !217, metadata !DIExpression()), !dbg !218 + %"$BoolUtils.negb_1028" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* @BoolUtils.negb, align 8 + %"$BoolUtils.negb_fptr_1029" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.negb_1028", 0 + %"$BoolUtils.negb_envptr_1030" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.negb_1028", 1 + %"$b26_1031" = load %TName_Bool*, %TName_Bool** %b26, align 8 + %"$BoolUtils.negb_call_1032" = call %TName_Bool* %"$BoolUtils.negb_fptr_1029"(i8* %"$BoolUtils.negb_envptr_1030", %TName_Bool* %"$b26_1031"), !dbg !218 + store %TName_Bool* %"$BoolUtils.negb_call_1032", %TName_Bool** %"$BoolUtils.negb_31", align 8, !dbg !218 + %"$$BoolUtils.negb_31_1033" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.negb_31", align 8 + store %TName_Bool* %"$$BoolUtils.negb_31_1033", %TName_Bool** %b27, align 8, !dbg !218 %"$gasrem_1034" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1035" = icmp ugt i64 32, %"$gasrem_1034" + %"$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" +"$out_of_gas_1036": ; preds = %"$have_gas_1026" 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", 32 +"$have_gas_1037": ; preds = %"$out_of_gas_1036", %"$have_gas_1026" + %"$consume_1038" = sub i64 %"$gasrem_1034", 1 store i64 %"$consume_1038", i64* @_gasrem, align 8 - %"$execptr_load_1039" = load i8*, i8** @_execptr, align 8 - %"$bn1_1040" = load i8*, i8** %bn1, align 8 - %"$bn3_1041" = load i8*, i8** %bn3, align 8 - %"$eq_call_1042" = call %TName_Bool* @_eq_BNum(i8* %"$execptr_load_1039", i8* %"$bn1_1040", i8* %"$bn3_1041"), !dbg !87 - store %TName_Bool* %"$eq_call_1042", %TName_Bool** %b28, align 8, !dbg !87 - %"$gasrem_1044" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1045" = icmp ugt i64 1, %"$gasrem_1044" - br i1 %"$gascmp_1045", label %"$out_of_gas_1046", label %"$have_gas_1047" - -"$out_of_gas_1046": ; preds = %"$have_gas_1037" - call void @_out_of_gas() - br label %"$have_gas_1047" - -"$have_gas_1047": ; preds = %"$out_of_gas_1046", %"$have_gas_1037" - %"$consume_1048" = sub i64 %"$gasrem_1044", 1 - store i64 %"$consume_1048", i64* @_gasrem, align 8 - %b29 = alloca %TName_Bool*, align 8 + %b28 = alloca %TName_Bool*, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %b28, metadata !219, metadata !DIExpression()), !dbg !220 + %"$gasrem_1039" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1040" = icmp ugt i64 32, %"$gasrem_1039" + br i1 %"$gascmp_1040", label %"$out_of_gas_1041", label %"$have_gas_1042" + +"$out_of_gas_1041": ; preds = %"$have_gas_1037" + call void @_out_of_gas() + br label %"$have_gas_1042" + +"$have_gas_1042": ; preds = %"$out_of_gas_1041", %"$have_gas_1037" + %"$consume_1043" = sub i64 %"$gasrem_1039", 32 + store i64 %"$consume_1043", i64* @_gasrem, align 8 + %"$execptr_load_1044" = load i8*, i8** @_execptr, align 8 + %"$bn1_1045" = load i8*, i8** %bn1, align 8 + %"$bn3_1046" = load i8*, i8** %bn3, align 8 + %"$eq_call_1047" = call %TName_Bool* @_eq_BNum(i8* %"$execptr_load_1044", i8* %"$bn1_1045", i8* %"$bn3_1046"), !dbg !221 + store %TName_Bool* %"$eq_call_1047", %TName_Bool** %b28, align 8, !dbg !221 %"$gasrem_1049" = load i64, i64* @_gasrem, align 8 %"$gascmp_1050" = icmp ugt i64 1, %"$gasrem_1049" br i1 %"$gascmp_1050", label %"$out_of_gas_1051", label %"$have_gas_1052" -"$out_of_gas_1051": ; preds = %"$have_gas_1047" +"$out_of_gas_1051": ; preds = %"$have_gas_1042" call void @_out_of_gas() br label %"$have_gas_1052" -"$have_gas_1052": ; preds = %"$out_of_gas_1051", %"$have_gas_1047" +"$have_gas_1052": ; preds = %"$out_of_gas_1051", %"$have_gas_1042" %"$consume_1053" = sub i64 %"$gasrem_1049", 1 store i64 %"$consume_1053", i64* @_gasrem, align 8 + %b29 = alloca %TName_Bool*, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %b29, metadata !222, metadata !DIExpression()), !dbg !223 + %"$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_1056": ; preds = %"$have_gas_1052" + call void @_out_of_gas() + br label %"$have_gas_1057" + +"$have_gas_1057": ; preds = %"$out_of_gas_1056", %"$have_gas_1052" + %"$consume_1058" = sub i64 %"$gasrem_1054", 1 + store i64 %"$consume_1058", i64* @_gasrem, align 8 %"$BoolUtils.andb_32" = alloca { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, align 8 - %"$BoolUtils.andb_1054" = 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_1055" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_1054", 0 - %"$BoolUtils.andb_envptr_1056" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_1054", 1 - %"$b27_1057" = load %TName_Bool*, %TName_Bool** %b27, align 8 - %"$BoolUtils.andb_call_1058" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_1055"(i8* %"$BoolUtils.andb_envptr_1056", %TName_Bool* %"$b27_1057"), !dbg !88 - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_1058", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_32", align 8, !dbg !88 + %"$BoolUtils.andb_1059" = 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_1060" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_1059", 0 + %"$BoolUtils.andb_envptr_1061" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_1059", 1 + %"$b27_1062" = load %TName_Bool*, %TName_Bool** %b27, align 8 + %"$BoolUtils.andb_call_1063" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_1060"(i8* %"$BoolUtils.andb_envptr_1061", %TName_Bool* %"$b27_1062"), !dbg !224 + store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_1063", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_32", align 8, !dbg !224 %"$BoolUtils.andb_33" = alloca %TName_Bool*, align 8 - %"$$BoolUtils.andb_32_1059" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_32", align 8 - %"$$BoolUtils.andb_32_fptr_1060" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_32_1059", 0 - %"$$BoolUtils.andb_32_envptr_1061" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_32_1059", 1 - %"$b28_1062" = load %TName_Bool*, %TName_Bool** %b28, align 8 - %"$$BoolUtils.andb_32_call_1063" = call %TName_Bool* %"$$BoolUtils.andb_32_fptr_1060"(i8* %"$$BoolUtils.andb_32_envptr_1061", %TName_Bool* %"$b28_1062"), !dbg !88 - store %TName_Bool* %"$$BoolUtils.andb_32_call_1063", %TName_Bool** %"$BoolUtils.andb_33", align 8, !dbg !88 - %"$$BoolUtils.andb_33_1064" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_33", align 8 - store %TName_Bool* %"$$BoolUtils.andb_33_1064", %TName_Bool** %b29, align 8, !dbg !88 - %"$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_1052" - call void @_out_of_gas() - br label %"$have_gas_1068" - -"$have_gas_1068": ; preds = %"$out_of_gas_1067", %"$have_gas_1052" - %"$consume_1069" = sub i64 %"$gasrem_1065", 1 - store i64 %"$consume_1069", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$BoolUtils.andb_33", metadata !225, metadata !DIExpression()), !dbg !224 + %"$$BoolUtils.andb_32_1064" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_32", align 8 + %"$$BoolUtils.andb_32_fptr_1065" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_32_1064", 0 + %"$$BoolUtils.andb_32_envptr_1066" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_32_1064", 1 + %"$b28_1067" = load %TName_Bool*, %TName_Bool** %b28, align 8 + %"$$BoolUtils.andb_32_call_1068" = call %TName_Bool* %"$$BoolUtils.andb_32_fptr_1065"(i8* %"$$BoolUtils.andb_32_envptr_1066", %TName_Bool* %"$b28_1067"), !dbg !224 + store %TName_Bool* %"$$BoolUtils.andb_32_call_1068", %TName_Bool** %"$BoolUtils.andb_33", align 8, !dbg !224 + %"$$BoolUtils.andb_33_1069" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_33", align 8 + store %TName_Bool* %"$$BoolUtils.andb_33_1069", %TName_Bool** %b29, align 8, !dbg !224 + %"$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_1072": ; preds = %"$have_gas_1057" + call void @_out_of_gas() + br label %"$have_gas_1073" + +"$have_gas_1073": ; preds = %"$out_of_gas_1072", %"$have_gas_1057" + %"$consume_1074" = sub i64 %"$gasrem_1070", 1 + store i64 %"$consume_1074", i64* @_gasrem, align 8 %"$BoolUtils.andb_34" = alloca { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, align 8 - %"$BoolUtils.andb_1070" = 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_1071" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_1070", 0 - %"$BoolUtils.andb_envptr_1072" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_1070", 1 - %"$b25_1073" = load %TName_Bool*, %TName_Bool** %b25, align 8 - %"$BoolUtils.andb_call_1074" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_1071"(i8* %"$BoolUtils.andb_envptr_1072", %TName_Bool* %"$b25_1073"), !dbg !89 - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_1074", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_34", align 8, !dbg !89 + %"$BoolUtils.andb_1075" = 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_1076" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_1075", 0 + %"$BoolUtils.andb_envptr_1077" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_1075", 1 + %"$b25_1078" = load %TName_Bool*, %TName_Bool** %b25, align 8 + %"$BoolUtils.andb_call_1079" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_1076"(i8* %"$BoolUtils.andb_envptr_1077", %TName_Bool* %"$b25_1078"), !dbg !226 + store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_1079", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_34", align 8, !dbg !226 %"$BoolUtils.andb_35" = alloca %TName_Bool*, align 8 - %"$$BoolUtils.andb_34_1075" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_34", align 8 - %"$$BoolUtils.andb_34_fptr_1076" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_34_1075", 0 - %"$$BoolUtils.andb_34_envptr_1077" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_34_1075", 1 - %"$b29_1078" = load %TName_Bool*, %TName_Bool** %b29, align 8 - %"$$BoolUtils.andb_34_call_1079" = call %TName_Bool* %"$$BoolUtils.andb_34_fptr_1076"(i8* %"$$BoolUtils.andb_34_envptr_1077", %TName_Bool* %"$b29_1078"), !dbg !89 - store %TName_Bool* %"$$BoolUtils.andb_34_call_1079", %TName_Bool** %"$BoolUtils.andb_35", align 8, !dbg !89 - %"$$BoolUtils.andb_35_1080" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_35", align 8 - store %TName_Bool* %"$$BoolUtils.andb_35_1080", %TName_Bool** %"$expr_46", align 8, !dbg !89 - %"$$expr_46_1081" = load %TName_Bool*, %TName_Bool** %"$expr_46", align 8 - ret %TName_Bool* %"$$expr_46_1081" + call void @llvm.dbg.declare(metadata %TName_Bool** %"$BoolUtils.andb_35", metadata !227, metadata !DIExpression()), !dbg !226 + %"$$BoolUtils.andb_34_1080" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_34", align 8 + %"$$BoolUtils.andb_34_fptr_1081" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_34_1080", 0 + %"$$BoolUtils.andb_34_envptr_1082" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_34_1080", 1 + %"$b29_1083" = load %TName_Bool*, %TName_Bool** %b29, align 8 + %"$$BoolUtils.andb_34_call_1084" = call %TName_Bool* %"$$BoolUtils.andb_34_fptr_1081"(i8* %"$$BoolUtils.andb_34_envptr_1082", %TName_Bool* %"$b29_1083"), !dbg !226 + store %TName_Bool* %"$$BoolUtils.andb_34_call_1084", %TName_Bool** %"$BoolUtils.andb_35", align 8, !dbg !226 + %"$$BoolUtils.andb_35_1085" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_35", align 8 + store %TName_Bool* %"$$BoolUtils.andb_35_1085", %TName_Bool** %"$expr_46", align 8, !dbg !226 + %"$$expr_46_1086" = load %TName_Bool*, %TName_Bool** %"$expr_46", align 8 + ret %TName_Bool* %"$$expr_46_1086" } declare %TName_Bool* @_eq_Int32(i8*, %Int32, %Int32) @@ -2127,7 +2214,7 @@ declare %TName_Bool* @_eq_Uint128(i8*, %Uint128, %Uint128) declare i64 @_literal_cost(%_TyDescrTy_Typ*, i8*) -; Function Attrs: nofree nosync nounwind readnone speculatable willreturn +; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn declare i64 @llvm.umin.i64(i64, i64) #0 declare %TName_Bool* @_eq_String(i8*, %String, %String) @@ -2146,105 +2233,243 @@ declare void @_print_scilla_val(i8*, %_TyDescrTy_Typ*, i8*) define void @scilla_main() { entry: - %"$exprval_1082" = call %TName_Bool* @_scilla_expr_fun(i8* null) - %"$memvoidcast_1083" = bitcast %TName_Bool* %"$exprval_1082" to i8* - %"$execptr_load_1084" = load i8*, i8** @_execptr, align 8 - call void @_print_scilla_val(i8* %"$execptr_load_1084", %_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_85", i8* %"$memvoidcast_1083") + %"$exprval_1087" = call %TName_Bool* @_scilla_expr_fun(i8* null) + %"$memvoidcast_1088" = bitcast %TName_Bool* %"$exprval_1087" to i8* + %"$execptr_load_1089" = load i8*, i8** @_execptr, align 8 + call void @_print_scilla_val(i8* %"$execptr_load_1089", %_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_85", i8* %"$memvoidcast_1088") ret void } -attributes #0 = { nofree nosync nounwind readnone speculatable willreturn } +attributes #0 = { nocallback nofree nosync nounwind readnone speculatable willreturn } !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) +!1 = distinct !DICompileUnit(language: DW_LANG_C89, file: !2, producer: "Scilla Compiler", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false) !2 = !DIFile(filename: "builtin_eq.scilexp", directory: "codegen/expr") -!3 = !{} -!4 = distinct !DISubprogram(name: "$fundef_36", linkageName: "$fundef_36", scope: !5, file: !5, line: 22, type: !6, scopeLine: 22, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!5 = !DIFile(filename: "BoolUtils.scillib", directory: "../src/stdlib") -!6 = !DISubroutineType(types: !7) -!7 = !{!8} -!8 = !DIBasicType(tag: DW_TAG_unspecified_type, name: "void") -!9 = !DILocation(line: 22, column: 5, scope: !4) -!10 = !DILocation(line: 23, column: 15, scope: !11) -!11 = distinct !DILexicalBlock(scope: !12, file: !5, line: 23, column: 7) -!12 = distinct !DILexicalBlock(scope: !4, file: !5, line: 22, column: 5) -!13 = !DILocation(line: 24, column: 16, scope: !14) -!14 = distinct !DILexicalBlock(scope: !12, file: !5, line: 24, column: 7) -!15 = distinct !DISubprogram(name: "$fundef_40", linkageName: "$fundef_40", scope: !5, file: !5, line: 15, type: !6, scopeLine: 15, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!16 = !DILocation(line: 15, column: 5, scope: !15) -!17 = !DILocation(line: 16, column: 16, scope: !18) -!18 = distinct !DILexicalBlock(scope: !19, file: !5, line: 16, column: 7) -!19 = distinct !DILexicalBlock(scope: !15, file: !5, line: 15, column: 5) -!20 = !DILocation(line: 17, column: 16, scope: !21) -!21 = distinct !DILexicalBlock(scope: !19, file: !5, line: 17, column: 7) -!22 = distinct !DISubprogram(name: "$fundef_38", linkageName: "$fundef_38", scope: !5, file: !5, line: 14, type: !6, scopeLine: 14, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!23 = !DILocation(line: 15, column: 5, scope: !22) -!24 = distinct !DISubprogram(name: "$fundef_44", linkageName: "$fundef_44", scope: !5, file: !5, line: 8, type: !6, scopeLine: 8, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!25 = !DILocation(line: 8, column: 5, scope: !24) -!26 = !DILocation(line: 9, column: 16, scope: !27) -!27 = distinct !DILexicalBlock(scope: !28, file: !5, line: 9, column: 7) -!28 = distinct !DILexicalBlock(scope: !24, file: !5, line: 8, column: 5) -!29 = !DILocation(line: 10, column: 16, scope: !30) -!30 = distinct !DILexicalBlock(scope: !28, file: !5, line: 10, column: 7) -!31 = distinct !DISubprogram(name: "$fundef_42", linkageName: "$fundef_42", scope: !5, file: !5, line: 7, type: !6, scopeLine: 7, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!32 = !DILocation(line: 8, column: 5, scope: !31) -!33 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !34, file: !34, type: !6, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!34 = !DIFile(filename: ".", directory: ".") -!35 = !DILocation(line: 0, scope: !33) -!36 = !DILocation(line: 7, column: 3, scope: !33) -!37 = !DILocation(line: 14, column: 21, scope: !33) -!38 = !DILocation(line: 22, column: 5, scope: !33) -!39 = distinct !DISubprogram(name: "_scilla_expr_fun", linkageName: "_scilla_expr_fun", scope: !2, file: !2, line: 1, type: !6, scopeLine: 1, spFlags: DISPFlagDefinition, unit: !1, retainedNodes: !3) -!40 = !DILocation(line: 1, column: 12, scope: !39) -!41 = !DILocation(line: 2, column: 12, scope: !39) -!42 = !DILocation(line: 3, column: 13, scope: !39) -!43 = !DILocation(line: 4, column: 10, scope: !39) -!44 = !DILocation(line: 5, column: 10, scope: !39) -!45 = !DILocation(line: 7, column: 13, scope: !39) -!46 = !DILocation(line: 8, column: 13, scope: !39) -!47 = !DILocation(line: 10, column: 10, scope: !39) -!48 = !DILocation(line: 11, column: 10, scope: !39) -!49 = !DILocation(line: 12, column: 10, scope: !39) -!50 = !DILocation(line: 13, column: 10, scope: !39) -!51 = !DILocation(line: 14, column: 10, scope: !39) -!52 = !DILocation(line: 16, column: 14, scope: !39) -!53 = !DILocation(line: 17, column: 14, scope: !39) -!54 = !DILocation(line: 19, column: 10, scope: !39) -!55 = !DILocation(line: 20, column: 10, scope: !39) -!56 = !DILocation(line: 21, column: 11, scope: !39) -!57 = !DILocation(line: 22, column: 11, scope: !39) -!58 = !DILocation(line: 24, column: 16, scope: !39) -!59 = !DILocation(line: 25, column: 16, scope: !39) -!60 = !DILocation(line: 26, column: 17, scope: !39) -!61 = !DILocation(line: 27, column: 11, scope: !39) -!62 = !DILocation(line: 28, column: 11, scope: !39) -!63 = !DILocation(line: 29, column: 11, scope: !39) -!64 = !DILocation(line: 30, column: 11, scope: !39) -!65 = !DILocation(line: 32, column: 11, scope: !39) -!66 = !DILocation(line: 33, column: 11, scope: !39) -!67 = !DILocation(line: 34, column: 12, scope: !39) -!68 = !DILocation(line: 35, column: 11, scope: !39) -!69 = !DILocation(line: 36, column: 11, scope: !39) -!70 = !DILocation(line: 37, column: 11, scope: !39) -!71 = !DILocation(line: 38, column: 11, scope: !39) -!72 = !DILocation(line: 40, column: 11, scope: !39) -!73 = !DILocation(line: 41, column: 11, scope: !39) -!74 = !DILocation(line: 42, column: 11, scope: !39) -!75 = !DILocation(line: 43, column: 11, scope: !39) -!76 = !DILocation(line: 44, column: 11, scope: !39) -!77 = !DILocation(line: 46, column: 12, scope: !39) -!78 = !DILocation(line: 47, column: 12, scope: !39) -!79 = !DILocation(line: 48, column: 11, scope: !39) -!80 = !DILocation(line: 49, column: 11, scope: !39) -!81 = !DILocation(line: 50, column: 11, scope: !39) -!82 = !DILocation(line: 52, column: 11, scope: !39) -!83 = !DILocation(line: 53, column: 11, scope: !39) -!84 = !DILocation(line: 54, column: 11, scope: !39) -!85 = !DILocation(line: 55, column: 11, scope: !39) -!86 = !DILocation(line: 56, column: 11, scope: !39) -!87 = !DILocation(line: 57, column: 11, scope: !39) -!88 = !DILocation(line: 58, column: 11, scope: !39) -!89 = !DILocation(line: 60, column: 1, scope: !39) +!3 = distinct !DISubprogram(name: "$fundef_36", linkageName: "$fundef_36", scope: !4, file: !4, line: 22, type: !5, scopeLine: 22, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!4 = !DIFile(filename: "BoolUtils.scillib", directory: "../src/stdlib") +!5 = !DISubroutineType(types: !6) +!6 = !{!7} +!7 = !DIBasicType(tag: DW_TAG_unspecified_type, name: "void") +!8 = !{} +!9 = !DILocalVariable(name: "b", scope: !3, file: !4, line: 21, type: !10) +!10 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "Bool", baseType: !11, size: 8, align: 8, dwarfAddressSpace: 0) +!11 = !DIBasicType(name: "Bool", size: 8) +!12 = !DILocation(line: 21, column: 8, scope: !3) +!13 = !DILocalVariable(name: "$retval_37", scope: !3, file: !4, line: 22, type: !10) +!14 = !DILocation(line: 22, column: 5, scope: !3) +!15 = !DILocation(line: 23, column: 15, scope: !16) +!16 = distinct !DILexicalBlock(scope: !17, file: !4, line: 23, column: 7) +!17 = distinct !DILexicalBlock(scope: !3, file: !4, line: 22, column: 5) +!18 = !DILocation(line: 24, column: 16, scope: !19) +!19 = distinct !DILexicalBlock(scope: !17, file: !4, line: 24, column: 7) +!20 = distinct !DISubprogram(name: "$fundef_40", linkageName: "$fundef_40", scope: !4, file: !4, line: 15, type: !5, scopeLine: 15, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!21 = !DILocalVariable(name: "c", scope: !20, file: !4, line: 14, type: !10) +!22 = !DILocation(line: 14, column: 26, scope: !20) +!23 = !DILocalVariable(name: "$retval_41", scope: !20, file: !4, line: 15, type: !10) +!24 = !DILocation(line: 15, column: 5, scope: !20) +!25 = !DILocation(line: 16, column: 16, scope: !26) +!26 = distinct !DILexicalBlock(scope: !27, file: !4, line: 16, column: 7) +!27 = distinct !DILexicalBlock(scope: !20, file: !4, line: 15, column: 5) +!28 = !DILocation(line: 17, column: 16, scope: !29) +!29 = distinct !DILexicalBlock(scope: !27, file: !4, line: 17, column: 7) +!30 = distinct !DISubprogram(name: "$fundef_38", linkageName: "$fundef_38", scope: !4, file: !4, line: 14, type: !5, scopeLine: 14, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!31 = !DILocalVariable(name: "b", scope: !30, file: !4, line: 14, type: !10) +!32 = !DILocation(line: 14, column: 8, scope: !30) +!33 = !DILocation(line: 15, column: 5, scope: !30) +!34 = distinct !DISubprogram(name: "$fundef_44", linkageName: "$fundef_44", scope: !4, file: !4, line: 8, type: !5, scopeLine: 8, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!35 = !DILocalVariable(name: "c", scope: !34, file: !4, line: 7, type: !10) +!36 = !DILocation(line: 7, column: 8, scope: !34) +!37 = !DILocalVariable(name: "$retval_45", scope: !34, file: !4, line: 8, type: !10) +!38 = !DILocation(line: 8, column: 5, scope: !34) +!39 = !DILocation(line: 9, column: 16, scope: !40) +!40 = distinct !DILexicalBlock(scope: !41, file: !4, line: 9, column: 7) +!41 = distinct !DILexicalBlock(scope: !34, file: !4, line: 8, column: 5) +!42 = !DILocation(line: 10, column: 16, scope: !43) +!43 = distinct !DILexicalBlock(scope: !41, file: !4, line: 10, column: 7) +!44 = distinct !DISubprogram(name: "$fundef_42", linkageName: "$fundef_42", scope: !4, file: !4, line: 7, type: !5, scopeLine: 7, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!45 = !DILocalVariable(name: "b", scope: !44, file: !4, line: 6, type: !10) +!46 = !DILocation(line: 6, column: 8, scope: !44) +!47 = !DILocation(line: 8, column: 5, scope: !44) +!48 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !49, file: !49, type: !5, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!49 = !DIFile(filename: ".", directory: ".") +!50 = !DILocation(line: 0, scope: !48) +!51 = !DILocation(line: 7, column: 3, scope: !48) +!52 = !DILocation(line: 14, column: 21, scope: !48) +!53 = !DILocation(line: 22, column: 5, scope: !48) +!54 = distinct !DISubprogram(name: "_scilla_expr_fun", linkageName: "_scilla_expr_fun", scope: !2, file: !2, line: 1, type: !5, scopeLine: 1, spFlags: DISPFlagDefinition, unit: !1, retainedNodes: !8) +!55 = !DILocalVariable(name: "$expr_46", scope: !54, file: !2, line: 1, type: !10) +!56 = !DILocation(line: 1, column: 12, scope: !54) +!57 = !DILocalVariable(name: "i32a", scope: !54, file: !2, line: 1, type: !58) +!58 = !DIBasicType(name: "Int32", size: 4) +!59 = !DILocation(line: 1, column: 5, scope: !54) +!60 = !DILocalVariable(name: "i32b", scope: !54, file: !2, line: 2, type: !58) +!61 = !DILocation(line: 2, column: 5, scope: !54) +!62 = !DILocation(line: 2, column: 12, scope: !54) +!63 = !DILocalVariable(name: "i32aa", scope: !54, file: !2, line: 3, type: !58) +!64 = !DILocation(line: 3, column: 5, scope: !54) +!65 = !DILocation(line: 3, column: 13, scope: !54) +!66 = !DILocalVariable(name: "b1", scope: !54, file: !2, line: 4, type: !10) +!67 = !DILocation(line: 4, column: 5, scope: !54) +!68 = !DILocation(line: 4, column: 10, scope: !54) +!69 = !DILocalVariable(name: "b2", scope: !54, file: !2, line: 5, type: !10) +!70 = !DILocation(line: 5, column: 5, scope: !54) +!71 = !DILocation(line: 5, column: 10, scope: !54) +!72 = !DILocalVariable(name: "i128a", scope: !54, file: !2, line: 7, type: !73) +!73 = !DIBasicType(name: "Uint128", size: 16) +!74 = !DILocation(line: 7, column: 5, scope: !54) +!75 = !DILocation(line: 7, column: 13, scope: !54) +!76 = !DILocalVariable(name: "i128b", scope: !54, file: !2, line: 8, type: !73) +!77 = !DILocation(line: 8, column: 5, scope: !54) +!78 = !DILocation(line: 8, column: 13, scope: !54) +!79 = !DILocalVariable(name: "b3", scope: !54, file: !2, line: 10, type: !10) +!80 = !DILocation(line: 10, column: 5, scope: !54) +!81 = !DILocation(line: 10, column: 10, scope: !54) +!82 = !DILocalVariable(name: "b4", scope: !54, file: !2, line: 11, type: !10) +!83 = !DILocation(line: 11, column: 5, scope: !54) +!84 = !DILocation(line: 11, column: 10, scope: !54) +!85 = !DILocalVariable(name: "b5", scope: !54, file: !2, line: 12, type: !10) +!86 = !DILocation(line: 12, column: 5, scope: !54) +!87 = !DILocation(line: 12, column: 10, scope: !54) +!88 = !DILocalVariable(name: "$BoolUtils.andb_8", scope: !54, file: !2, line: 12, type: !10) +!89 = !DILocalVariable(name: "b6", scope: !54, file: !2, line: 13, type: !10) +!90 = !DILocation(line: 13, column: 5, scope: !54) +!91 = !DILocation(line: 13, column: 10, scope: !54) +!92 = !DILocalVariable(name: "$BoolUtils.orb_10", scope: !54, file: !2, line: 13, type: !10) +!93 = !DILocalVariable(name: "b7", scope: !54, file: !2, line: 14, type: !10) +!94 = !DILocation(line: 14, column: 5, scope: !54) +!95 = !DILocation(line: 14, column: 10, scope: !54) +!96 = !DILocalVariable(name: "$BoolUtils.andb_12", scope: !54, file: !2, line: 14, type: !10) +!97 = !DILocalVariable(name: "ui256a", scope: !54, file: !2, line: 16, type: !73) +!98 = !DILocation(line: 16, column: 5, scope: !54) +!99 = !DILocation(line: 16, column: 14, scope: !54) +!100 = !DILocalVariable(name: "ui256b", scope: !54, file: !2, line: 17, type: !73) +!101 = !DILocation(line: 17, column: 5, scope: !54) +!102 = !DILocation(line: 17, column: 14, scope: !54) +!103 = !DILocalVariable(name: "b8", scope: !54, file: !2, line: 19, type: !10) +!104 = !DILocation(line: 19, column: 5, scope: !54) +!105 = !DILocation(line: 19, column: 10, scope: !54) +!106 = !DILocalVariable(name: "b9", scope: !54, file: !2, line: 20, type: !10) +!107 = !DILocation(line: 20, column: 5, scope: !54) +!108 = !DILocation(line: 20, column: 10, scope: !54) +!109 = !DILocalVariable(name: "b10", scope: !54, file: !2, line: 21, type: !10) +!110 = !DILocation(line: 21, column: 5, scope: !54) +!111 = !DILocation(line: 21, column: 11, scope: !54) +!112 = !DILocalVariable(name: "$BoolUtils.andb_14", scope: !54, file: !2, line: 21, type: !10) +!113 = !DILocalVariable(name: "b11", scope: !54, file: !2, line: 22, type: !10) +!114 = !DILocation(line: 22, column: 5, scope: !54) +!115 = !DILocation(line: 22, column: 11, scope: !54) +!116 = !DILocalVariable(name: "$BoolUtils.orb_16", scope: !54, file: !2, line: 22, type: !10) +!117 = !DILocalVariable(name: "s1", scope: !54, file: !2, line: 24, type: !118) +!118 = !DIBasicType(name: "String", size: 16) +!119 = !DILocation(line: 24, column: 5, scope: !54) +!120 = !DILocation(line: 24, column: 16, scope: !54) +!121 = !DILocalVariable(name: "s2", scope: !54, file: !2, line: 25, type: !118) +!122 = !DILocation(line: 25, column: 5, scope: !54) +!123 = !DILocation(line: 25, column: 16, scope: !54) +!124 = !DILocalVariable(name: "s11", scope: !54, file: !2, line: 26, type: !118) +!125 = !DILocation(line: 26, column: 5, scope: !54) +!126 = !DILocation(line: 26, column: 17, scope: !54) +!127 = !DILocalVariable(name: "b12", scope: !54, file: !2, line: 27, type: !10) +!128 = !DILocation(line: 27, column: 5, scope: !54) +!129 = !DILocation(line: 27, column: 11, scope: !54) +!130 = !DILocalVariable(name: "b13", scope: !54, file: !2, line: 28, type: !10) +!131 = !DILocation(line: 28, column: 5, scope: !54) +!132 = !DILocation(line: 28, column: 11, scope: !54) +!133 = !DILocalVariable(name: "b14", scope: !54, file: !2, line: 29, type: !10) +!134 = !DILocation(line: 29, column: 5, scope: !54) +!135 = !DILocation(line: 29, column: 11, scope: !54) +!136 = !DILocalVariable(name: "$BoolUtils.andb_18", scope: !54, file: !2, line: 29, type: !10) +!137 = !DILocalVariable(name: "b15", scope: !54, file: !2, line: 30, type: !10) +!138 = !DILocation(line: 30, column: 5, scope: !54) +!139 = !DILocation(line: 30, column: 11, scope: !54) +!140 = !DILocalVariable(name: "$BoolUtils.orb_20", scope: !54, file: !2, line: 30, type: !10) +!141 = !DILocalVariable(name: "bs1", scope: !54, file: !2, line: 32, type: !142) +!142 = !DIBasicType(name: "ByStr2", size: 2) +!143 = !DILocation(line: 32, column: 5, scope: !54) +!144 = !DILocation(line: 32, column: 11, scope: !54) +!145 = !DILocalVariable(name: "bs2", scope: !54, file: !2, line: 33, type: !142) +!146 = !DILocation(line: 33, column: 5, scope: !54) +!147 = !DILocation(line: 33, column: 11, scope: !54) +!148 = !DILocalVariable(name: "bs11", scope: !54, file: !2, line: 34, type: !142) +!149 = !DILocation(line: 34, column: 5, scope: !54) +!150 = !DILocation(line: 34, column: 12, scope: !54) +!151 = !DILocalVariable(name: "b16", scope: !54, file: !2, line: 35, type: !10) +!152 = !DILocation(line: 35, column: 5, scope: !54) +!153 = !DILocation(line: 35, column: 11, scope: !54) +!154 = !DILocalVariable(name: "b17", scope: !54, file: !2, line: 36, type: !10) +!155 = !DILocation(line: 36, column: 5, scope: !54) +!156 = !DILocation(line: 36, column: 11, scope: !54) +!157 = !DILocalVariable(name: "b18", scope: !54, file: !2, line: 37, type: !10) +!158 = !DILocation(line: 37, column: 5, scope: !54) +!159 = !DILocation(line: 37, column: 11, scope: !54) +!160 = !DILocalVariable(name: "$BoolUtils.orb_22", scope: !54, file: !2, line: 37, type: !10) +!161 = !DILocalVariable(name: "b19", scope: !54, file: !2, line: 38, type: !10) +!162 = !DILocation(line: 38, column: 5, scope: !54) +!163 = !DILocation(line: 38, column: 11, scope: !54) +!164 = !DILocalVariable(name: "$BoolUtils.andb_24", scope: !54, file: !2, line: 38, type: !10) +!165 = !DILocalVariable(name: "bs3", scope: !54, file: !2, line: 40, type: !166) +!166 = !DIBasicType(name: "ByStr3", size: 3) +!167 = !DILocation(line: 40, column: 5, scope: !54) +!168 = !DILocation(line: 40, column: 11, scope: !54) +!169 = !DILocalVariable(name: "bs4", scope: !54, file: !2, line: 41, type: !166) +!170 = !DILocation(line: 41, column: 5, scope: !54) +!171 = !DILocation(line: 41, column: 11, scope: !54) +!172 = !DILocalVariable(name: "b20", scope: !54, file: !2, line: 42, type: !10) +!173 = !DILocation(line: 42, column: 5, scope: !54) +!174 = !DILocation(line: 42, column: 11, scope: !54) +!175 = !DILocalVariable(name: "b21", scope: !54, file: !2, line: 43, type: !10) +!176 = !DILocation(line: 43, column: 5, scope: !54) +!177 = !DILocalVariable(name: "$BoolUtils.negb_25", scope: !54, file: !2, line: 43, type: !10) +!178 = !DILocation(line: 43, column: 11, scope: !54) +!179 = !DILocalVariable(name: "b22", scope: !54, file: !2, line: 44, type: !10) +!180 = !DILocation(line: 44, column: 5, scope: !54) +!181 = !DILocation(line: 44, column: 11, scope: !54) +!182 = !DILocalVariable(name: "$BoolUtils.andb_27", scope: !54, file: !2, line: 44, type: !10) +!183 = !DILocalVariable(name: "$bs11_6", scope: !54, file: !2, line: 46, type: !184) +!184 = !DIBasicType(name: "ByStr", size: 16) +!185 = !DILocation(line: 46, column: 5, scope: !54) +!186 = !DILocation(line: 46, column: 12, scope: !54) +!187 = !DILocalVariable(name: "bs22", scope: !54, file: !2, line: 47, type: !184) +!188 = !DILocation(line: 47, column: 5, scope: !54) +!189 = !DILocation(line: 47, column: 12, scope: !54) +!190 = !DILocalVariable(name: "b23", scope: !54, file: !2, line: 48, type: !10) +!191 = !DILocation(line: 48, column: 5, scope: !54) +!192 = !DILocation(line: 48, column: 11, scope: !54) +!193 = !DILocalVariable(name: "b24", scope: !54, file: !2, line: 49, type: !10) +!194 = !DILocation(line: 49, column: 5, scope: !54) +!195 = !DILocalVariable(name: "$BoolUtils.negb_28", scope: !54, file: !2, line: 49, type: !10) +!196 = !DILocation(line: 49, column: 11, scope: !54) +!197 = !DILocalVariable(name: "b25", scope: !54, file: !2, line: 50, type: !10) +!198 = !DILocation(line: 50, column: 5, scope: !54) +!199 = !DILocation(line: 50, column: 11, scope: !54) +!200 = !DILocalVariable(name: "$BoolUtils.andb_30", scope: !54, file: !2, line: 50, type: !10) +!201 = !DILocalVariable(name: "bn1", scope: !54, file: !2, line: 52, type: !202) +!202 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "BNum", baseType: !203, size: 8, align: 8, dwarfAddressSpace: 0) +!203 = !DIBasicType(name: "BNum", size: 8) +!204 = !DILocation(line: 52, column: 5, scope: !54) +!205 = !DILocation(line: 52, column: 11, scope: !54) +!206 = !DILocalVariable(name: "bn2", scope: !54, file: !2, line: 53, type: !202) +!207 = !DILocation(line: 53, column: 5, scope: !54) +!208 = !DILocation(line: 53, column: 11, scope: !54) +!209 = !DILocalVariable(name: "bn3", scope: !54, file: !2, line: 54, type: !202) +!210 = !DILocation(line: 54, column: 5, scope: !54) +!211 = !DILocation(line: 54, column: 11, scope: !54) +!212 = !DILocalVariable(name: "b26", scope: !54, file: !2, line: 55, type: !10) +!213 = !DILocation(line: 55, column: 5, scope: !54) +!214 = !DILocation(line: 55, column: 11, scope: !54) +!215 = !DILocalVariable(name: "b27", scope: !54, file: !2, line: 56, type: !10) +!216 = !DILocation(line: 56, column: 5, scope: !54) +!217 = !DILocalVariable(name: "$BoolUtils.negb_31", scope: !54, file: !2, line: 56, type: !10) +!218 = !DILocation(line: 56, column: 11, scope: !54) +!219 = !DILocalVariable(name: "b28", scope: !54, file: !2, line: 57, type: !10) +!220 = !DILocation(line: 57, column: 5, scope: !54) +!221 = !DILocation(line: 57, column: 11, scope: !54) +!222 = !DILocalVariable(name: "b29", scope: !54, file: !2, line: 58, type: !10) +!223 = !DILocation(line: 58, column: 5, scope: !54) +!224 = !DILocation(line: 58, column: 11, scope: !54) +!225 = !DILocalVariable(name: "$BoolUtils.andb_33", scope: !54, file: !2, line: 58, type: !10) +!226 = !DILocation(line: 60, column: 1, scope: !54) +!227 = !DILocalVariable(name: "$BoolUtils.andb_35", scope: !54, file: !2, line: 60, type: !10) diff --git a/testsuite/expr/builtin_eq.ll b/testsuite/expr/builtin_eq.ll index 2fc89f8b..ac6f2744 100644 --- a/testsuite/expr/builtin_eq.ll +++ b/testsuite/expr/builtin_eq.ll @@ -62,7 +62,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-pc-linux-gnu" +target triple = "x86_64-unknown-linux-gnu" %"$TyDescrTy_PrimTyp_47" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } @@ -2127,7 +2127,7 @@ declare %TName_Bool* @_eq_Uint128(i8*, %Uint128, %Uint128) declare i64 @_literal_cost(%_TyDescrTy_Typ*, i8*) -; Function Attrs: nofree nosync nounwind readnone speculatable willreturn +; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn declare i64 @llvm.umin.i64(i64, i64) #0 declare %TName_Bool* @_eq_String(i8*, %String, %String) @@ -2153,4 +2153,4 @@ entry: ret void } -attributes #0 = { nofree nosync nounwind readnone speculatable willreturn } +attributes #0 = { nocallback nofree nosync nounwind readnone speculatable willreturn } diff --git a/testsuite/expr/builtin_keccak256hash.dbg.ll b/testsuite/expr/builtin_keccak256hash.dbg.ll index f2e96c2e..0ba418aa 100644 --- a/testsuite/expr/builtin_keccak256hash.dbg.ll +++ b/testsuite/expr/builtin_keccak256hash.dbg.ll @@ -10,7 +10,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-pc-linux-gnu" +target triple = "x86_64-unknown-linux-gnu" %"$TyDescrTy_PrimTyp_7" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } @@ -94,7 +94,7 @@ target triple = "x86_64-pc-linux-gnu" @_transition_parameters = constant [0 x %"$TransDescr_267"] zeroinitializer @_transition_parameters_length = constant i32 0 -define void @_init_libs() !dbg !4 { +define void @_init_libs() !dbg !3 { entry: %"$gasrem_63" = load i64, i64* @_gasrem, align 8 %"$gascmp_64" = icmp ugt i64 5, %"$gasrem_63" @@ -176,6 +176,7 @@ declare void @_out_of_gas() define internal void @_scilla_expr_fun(i8* %0, [32 x i8]* %1) !dbg !10 { entry: %"$expr_6" = alloca [32 x i8], align 1 + call void @llvm.dbg.declare(metadata [32 x i8]* %"$expr_6", metadata !11, metadata !DIExpression()), !dbg !13 %"$gasrem_93" = load i64, i64* @_gasrem, align 8 %"$gascmp_94" = icmp ugt i64 1, %"$gasrem_93" br i1 %"$gascmp_94", label %"$out_of_gas_95", label %"$have_gas_96" @@ -188,6 +189,7 @@ entry: %"$consume_97" = sub i64 %"$gasrem_93", 1 store i64 %"$consume_97", i64* @_gasrem, align 8 %s = alloca %String, align 8 + call void @llvm.dbg.declare(metadata %String* %s, metadata !14, metadata !DIExpression()), !dbg !16 %"$gasrem_98" = load i64, i64* @_gasrem, align 8 %"$gascmp_99" = icmp ugt i64 1, %"$gasrem_98" br i1 %"$gascmp_99", label %"$out_of_gas_100", label %"$have_gas_101" @@ -199,7 +201,7 @@ entry: "$have_gas_101": ; preds = %"$out_of_gas_100", %"$have_gas_96" %"$consume_102" = sub i64 %"$gasrem_98", 1 store i64 %"$consume_102", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_103", i32 0, i32 0), i32 5 }, %String* %s, align 8, !dbg !11 + store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_103", i32 0, i32 0), i32 5 }, %String* %s, align 8, !dbg !13 %"$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" @@ -212,6 +214,7 @@ entry: %"$consume_108" = sub i64 %"$gasrem_104", 1 store i64 %"$consume_108", i64* @_gasrem, align 8 %h1 = alloca [32 x i8], align 1 + call void @llvm.dbg.declare(metadata [32 x i8]* %h1, metadata !17, metadata !DIExpression()), !dbg !18 %"$_literal_cost_s_109" = alloca %String, align 8 %"$s_110" = load %String, %String* %s, align 8 store %String %"$s_110", %String* %"$_literal_cost_s_109", align 8 @@ -239,9 +242,9 @@ entry: %"$s_126" = load %String, %String* %s, align 8 store %String %"$s_126", %String* %"$keccak256hash_s_125", align 8 %"$$keccak256hash_s_125_127" = bitcast %String* %"$keccak256hash_s_125" to i8* - %"$keccak256hash_call_128" = call [32 x i8]* @_keccak256hash(i8* %"$execptr_load_124", %_TyDescrTy_Typ* @"$TyDescr_String_25", i8* %"$$keccak256hash_s_125_127"), !dbg !12 + %"$keccak256hash_call_128" = call [32 x i8]* @_keccak256hash(i8* %"$execptr_load_124", %_TyDescrTy_Typ* @"$TyDescr_String_25", i8* %"$$keccak256hash_s_125_127"), !dbg !19 %"$keccak256hash_130" = load [32 x i8], [32 x i8]* %"$keccak256hash_call_128", align 1 - store [32 x i8] %"$keccak256hash_130", [32 x i8]* %h1, align 1, !dbg !12 + store [32 x i8] %"$keccak256hash_130", [32 x i8]* %h1, align 1, !dbg !19 %"$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" @@ -254,6 +257,7 @@ entry: %"$consume_135" = sub i64 %"$gasrem_131", 1 store i64 %"$consume_135", i64* @_gasrem, align 8 %h2 = alloca [32 x i8], align 1 + call void @llvm.dbg.declare(metadata [32 x i8]* %h2, metadata !20, metadata !DIExpression()), !dbg !21 %"$_literal_cost_h1_136" = alloca [32 x i8], align 1 %"$h1_137" = load [32 x i8], [32 x i8]* %h1, align 1 store [32 x i8] %"$h1_137", [32 x i8]* %"$_literal_cost_h1_136", align 1 @@ -281,9 +285,9 @@ entry: %"$h1_153" = load [32 x i8], [32 x i8]* %h1, align 1 store [32 x i8] %"$h1_153", [32 x i8]* %"$keccak256hash_h1_152", align 1 %"$$keccak256hash_h1_152_154" = bitcast [32 x i8]* %"$keccak256hash_h1_152" to i8* - %"$keccak256hash_call_155" = call [32 x i8]* @_keccak256hash(i8* %"$execptr_load_151", %_TyDescrTy_Typ* @"$TyDescr_Bystr32_39", i8* %"$$keccak256hash_h1_152_154"), !dbg !13 + %"$keccak256hash_call_155" = call [32 x i8]* @_keccak256hash(i8* %"$execptr_load_151", %_TyDescrTy_Typ* @"$TyDescr_Bystr32_39", i8* %"$$keccak256hash_h1_152_154"), !dbg !22 %"$keccak256hash_157" = load [32 x i8], [32 x i8]* %"$keccak256hash_call_155", align 1 - store [32 x i8] %"$keccak256hash_157", [32 x i8]* %h2, align 1, !dbg !13 + store [32 x i8] %"$keccak256hash_157", [32 x i8]* %h2, align 1, !dbg !22 %"$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" @@ -296,6 +300,7 @@ entry: %"$consume_162" = sub i64 %"$gasrem_158", 1 store i64 %"$consume_162", i64* @_gasrem, align 8 %sh = alloca %TName_Pair_String_ByStr32*, align 8 + call void @llvm.dbg.declare(metadata %TName_Pair_String_ByStr32** %sh, metadata !23, metadata !DIExpression()), !dbg !26 %"$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" @@ -319,7 +324,7 @@ entry: %"$adtgep_173" = getelementptr inbounds %CName_Pair_String_ByStr32, %CName_Pair_String_ByStr32* %"$adtval_170", i32 0, i32 2 store [32 x i8] %"$h2_169", [32 x i8]* %"$adtgep_173", align 1 %"$adtptr_174" = bitcast %CName_Pair_String_ByStr32* %"$adtval_170" to %TName_Pair_String_ByStr32* - store %TName_Pair_String_ByStr32* %"$adtptr_174", %TName_Pair_String_ByStr32** %sh, align 8, !dbg !14 + store %TName_Pair_String_ByStr32* %"$adtptr_174", %TName_Pair_String_ByStr32** %sh, align 8, !dbg !27 %"$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" @@ -332,6 +337,7 @@ entry: %"$consume_179" = sub i64 %"$gasrem_175", 1 store i64 %"$consume_179", i64* @_gasrem, align 8 %sh2 = alloca [32 x i8], align 1 + call void @llvm.dbg.declare(metadata [32 x i8]* %sh2, metadata !28, metadata !DIExpression()), !dbg !29 %"$sh_180" = load %TName_Pair_String_ByStr32*, %TName_Pair_String_ByStr32** %sh, align 8 %"$$sh_180_181" = bitcast %TName_Pair_String_ByStr32* %"$sh_180" to i8* %"$_literal_cost_call_182" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Pair_String_ByStr32_44", i8* %"$$sh_180_181") @@ -355,9 +361,9 @@ entry: %"$execptr_load_194" = load i8*, i8** @_execptr, align 8 %"$sh_195" = load %TName_Pair_String_ByStr32*, %TName_Pair_String_ByStr32** %sh, align 8 %"$$sh_195_196" = bitcast %TName_Pair_String_ByStr32* %"$sh_195" to i8* - %"$keccak256hash_call_197" = call [32 x i8]* @_keccak256hash(i8* %"$execptr_load_194", %_TyDescrTy_Typ* @"$TyDescr_ADT_Pair_String_ByStr32_44", i8* %"$$sh_195_196"), !dbg !15 + %"$keccak256hash_call_197" = call [32 x i8]* @_keccak256hash(i8* %"$execptr_load_194", %_TyDescrTy_Typ* @"$TyDescr_ADT_Pair_String_ByStr32_44", i8* %"$$sh_195_196"), !dbg !30 %"$keccak256hash_199" = load [32 x i8], [32 x i8]* %"$keccak256hash_call_197", align 1 - store [32 x i8] %"$keccak256hash_199", [32 x i8]* %sh2, align 1, !dbg !15 + store [32 x i8] %"$keccak256hash_199", [32 x i8]* %sh2, align 1, !dbg !30 %"$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" @@ -370,6 +376,7 @@ entry: %"$consume_204" = sub i64 %"$gasrem_200", 1 store i64 %"$consume_204", i64* @_gasrem, align 8 %bystr1 = alloca %Bystr, align 8 + call void @llvm.dbg.declare(metadata %Bystr* %bystr1, metadata !31, metadata !DIExpression()), !dbg !33 %"$gasrem_205" = load i64, i64* @_gasrem, align 8 %"$gascmp_206" = icmp ugt i64 32, %"$gasrem_205" br i1 %"$gascmp_206", label %"$out_of_gas_207", label %"$have_gas_208" @@ -386,8 +393,8 @@ entry: %"$sh2_212" = load [32 x i8], [32 x i8]* %sh2, align 1 store [32 x i8] %"$sh2_212", [32 x i8]* %"$to_bystr_sh2_211", align 1 %"$$to_bystr_sh2_211_213" = bitcast [32 x i8]* %"$to_bystr_sh2_211" to i8* - %"$to_bystr_call_214" = call %Bystr @_to_bystr(i8* %"$execptr_load_210", i32 32, i8* %"$$to_bystr_sh2_211_213"), !dbg !16 - store %Bystr %"$to_bystr_call_214", %Bystr* %bystr1, align 8, !dbg !16 + %"$to_bystr_call_214" = call %Bystr @_to_bystr(i8* %"$execptr_load_210", i32 32, i8* %"$$to_bystr_sh2_211_213"), !dbg !34 + store %Bystr %"$to_bystr_call_214", %Bystr* %bystr1, align 8, !dbg !34 %"$gasrem_215" = load i64, i64* @_gasrem, align 8 %"$gascmp_216" = icmp ugt i64 1, %"$gasrem_215" br i1 %"$gascmp_216", label %"$out_of_gas_217", label %"$have_gas_218" @@ -400,6 +407,7 @@ entry: %"$consume_219" = sub i64 %"$gasrem_215", 1 store i64 %"$consume_219", i64* @_gasrem, align 8 %i4 = alloca %Int32, align 8 + call void @llvm.dbg.declare(metadata %Int32* %i4, metadata !35, metadata !DIExpression()), !dbg !37 %"$gasrem_220" = load i64, i64* @_gasrem, align 8 %"$gascmp_221" = icmp ugt i64 1, %"$gasrem_220" br i1 %"$gascmp_221", label %"$out_of_gas_222", label %"$have_gas_223" @@ -411,7 +419,7 @@ entry: "$have_gas_223": ; preds = %"$out_of_gas_222", %"$have_gas_218" %"$consume_224" = sub i64 %"$gasrem_220", 1 store i64 %"$consume_224", i64* @_gasrem, align 8 - store %Int32 { i32 4 }, %Int32* %i4, align 4, !dbg !17 + store %Int32 { i32 4 }, %Int32* %i4, align 4, !dbg !38 %"$gasrem_225" = load i64, i64* @_gasrem, align 8 %"$gascmp_226" = icmp ugt i64 1, %"$gasrem_225" br i1 %"$gascmp_226", label %"$out_of_gas_227", label %"$have_gas_228" @@ -424,6 +432,7 @@ entry: %"$consume_229" = sub i64 %"$gasrem_225", 1 store i64 %"$consume_229", i64* @_gasrem, align 8 %p2 = alloca %TName_Pair_ByStr_Int32*, align 8 + call void @llvm.dbg.declare(metadata %TName_Pair_ByStr_Int32** %p2, metadata !39, metadata !DIExpression()), !dbg !42 %"$gasrem_230" = load i64, i64* @_gasrem, align 8 %"$gascmp_231" = icmp ugt i64 1, %"$gasrem_230" br i1 %"$gascmp_231", label %"$out_of_gas_232", label %"$have_gas_233" @@ -447,7 +456,7 @@ entry: %"$adtgep_240" = getelementptr inbounds %CName_Pair_ByStr_Int32, %CName_Pair_ByStr_Int32* %"$adtval_237", i32 0, i32 2 store %Int32 %"$i4_236", %Int32* %"$adtgep_240", align 4 %"$adtptr_241" = bitcast %CName_Pair_ByStr_Int32* %"$adtval_237" to %TName_Pair_ByStr_Int32* - store %TName_Pair_ByStr_Int32* %"$adtptr_241", %TName_Pair_ByStr_Int32** %p2, align 8, !dbg !18 + store %TName_Pair_ByStr_Int32* %"$adtptr_241", %TName_Pair_ByStr_Int32** %p2, align 8, !dbg !43 %"$p2_242" = load %TName_Pair_ByStr_Int32*, %TName_Pair_ByStr_Int32** %p2, align 8 %"$$p2_242_243" = bitcast %TName_Pair_ByStr_Int32* %"$p2_242" to i8* %"$_literal_cost_call_244" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Pair_ByStr_Int32_43", i8* %"$$p2_242_243") @@ -471,14 +480,17 @@ entry: %"$execptr_load_256" = load i8*, i8** @_execptr, align 8 %"$p2_257" = load %TName_Pair_ByStr_Int32*, %TName_Pair_ByStr_Int32** %p2, align 8 %"$$p2_257_258" = bitcast %TName_Pair_ByStr_Int32* %"$p2_257" to i8* - %"$keccak256hash_call_259" = call [32 x i8]* @_keccak256hash(i8* %"$execptr_load_256", %_TyDescrTy_Typ* @"$TyDescr_ADT_Pair_ByStr_Int32_43", i8* %"$$p2_257_258"), !dbg !19 + %"$keccak256hash_call_259" = call [32 x i8]* @_keccak256hash(i8* %"$execptr_load_256", %_TyDescrTy_Typ* @"$TyDescr_ADT_Pair_ByStr_Int32_43", i8* %"$$p2_257_258"), !dbg !44 %"$keccak256hash_261" = load [32 x i8], [32 x i8]* %"$keccak256hash_call_259", align 1 - store [32 x i8] %"$keccak256hash_261", [32 x i8]* %"$expr_6", align 1, !dbg !19 + store [32 x i8] %"$keccak256hash_261", [32 x i8]* %"$expr_6", align 1, !dbg !44 %"$$expr_6_262" = load [32 x i8], [32 x i8]* %"$expr_6", align 1 store [32 x i8] %"$$expr_6_262", [32 x i8]* %1, align 1 ret void } +; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn +declare void @llvm.dbg.declare(metadata, metadata, metadata) #0 + declare i64 @_literal_cost(%_TyDescrTy_Typ*, i8*) declare [32 x i8]* @_keccak256hash(i8*, %_TyDescrTy_Typ*, i8*) @@ -499,26 +511,53 @@ entry: ret void } +attributes #0 = { nocallback nofree nosync nounwind readnone speculatable willreturn } + !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) +!1 = distinct !DICompileUnit(language: DW_LANG_C89, file: !2, producer: "Scilla Compiler", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false) !2 = !DIFile(filename: "builtin_keccak256hash.scilexp", directory: "codegen/expr") -!3 = !{} -!4 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !5, file: !5, type: !6, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!5 = !DIFile(filename: ".", directory: ".") -!6 = !DISubroutineType(types: !7) -!7 = !{!8} -!8 = !DIBasicType(tag: DW_TAG_unspecified_type, name: "void") -!9 = !DILocation(line: 0, scope: !4) -!10 = distinct !DISubprogram(name: "_scilla_expr_fun", linkageName: "_scilla_expr_fun", scope: !2, file: !2, line: 1, type: !6, scopeLine: 1, spFlags: DISPFlagDefinition, unit: !1, retainedNodes: !3) -!11 = !DILocation(line: 1, column: 15, scope: !10) -!12 = !DILocation(line: 2, column: 10, scope: !10) -!13 = !DILocation(line: 3, column: 10, scope: !10) -!14 = !DILocation(line: 4, column: 10, scope: !10) -!15 = !DILocation(line: 5, column: 11, scope: !10) -!16 = !DILocation(line: 6, column: 14, scope: !10) -!17 = !DILocation(line: 7, column: 10, scope: !10) -!18 = !DILocation(line: 8, column: 10, scope: !10) -!19 = !DILocation(line: 9, column: 1, scope: !10) +!3 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !4, file: !4, type: !5, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!4 = !DIFile(filename: ".", directory: ".") +!5 = !DISubroutineType(types: !6) +!6 = !{!7} +!7 = !DIBasicType(tag: DW_TAG_unspecified_type, name: "void") +!8 = !{} +!9 = !DILocation(line: 0, scope: !3) +!10 = distinct !DISubprogram(name: "_scilla_expr_fun", linkageName: "_scilla_expr_fun", scope: !2, file: !2, line: 1, type: !5, scopeLine: 1, spFlags: DISPFlagDefinition, unit: !1, retainedNodes: !8) +!11 = !DILocalVariable(name: "$expr_6", scope: !10, file: !2, line: 1, type: !12) +!12 = !DIBasicType(name: "ByStr32", size: 32) +!13 = !DILocation(line: 1, column: 15, scope: !10) +!14 = !DILocalVariable(name: "s", scope: !10, file: !2, line: 1, type: !15) +!15 = !DIBasicType(name: "String", size: 16) +!16 = !DILocation(line: 1, column: 5, scope: !10) +!17 = !DILocalVariable(name: "h1", scope: !10, file: !2, line: 2, type: !12) +!18 = !DILocation(line: 2, column: 5, scope: !10) +!19 = !DILocation(line: 2, column: 10, scope: !10) +!20 = !DILocalVariable(name: "h2", scope: !10, file: !2, line: 3, type: !12) +!21 = !DILocation(line: 3, column: 5, scope: !10) +!22 = !DILocation(line: 3, column: 10, scope: !10) +!23 = !DILocalVariable(name: "sh", scope: !10, file: !2, line: 4, type: !24) +!24 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "Pair (String) (ByStr32)", baseType: !25, size: 8, align: 8, dwarfAddressSpace: 0) +!25 = !DIBasicType(name: "Pair (String) (ByStr32)", size: 8) +!26 = !DILocation(line: 4, column: 5, scope: !10) +!27 = !DILocation(line: 4, column: 10, scope: !10) +!28 = !DILocalVariable(name: "sh2", scope: !10, file: !2, line: 5, type: !12) +!29 = !DILocation(line: 5, column: 5, scope: !10) +!30 = !DILocation(line: 5, column: 11, scope: !10) +!31 = !DILocalVariable(name: "bystr1", scope: !10, file: !2, line: 6, type: !32) +!32 = !DIBasicType(name: "ByStr", size: 16) +!33 = !DILocation(line: 6, column: 5, scope: !10) +!34 = !DILocation(line: 6, column: 14, scope: !10) +!35 = !DILocalVariable(name: "i4", scope: !10, file: !2, line: 7, type: !36) +!36 = !DIBasicType(name: "Int32", size: 4) +!37 = !DILocation(line: 7, column: 5, scope: !10) +!38 = !DILocation(line: 7, column: 10, scope: !10) +!39 = !DILocalVariable(name: "p2", scope: !10, file: !2, line: 8, type: !40) +!40 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "Pair (ByStr) (Int32)", baseType: !41, size: 8, align: 8, dwarfAddressSpace: 0) +!41 = !DIBasicType(name: "Pair (ByStr) (Int32)", size: 8) +!42 = !DILocation(line: 8, column: 5, scope: !10) +!43 = !DILocation(line: 8, column: 10, scope: !10) +!44 = !DILocation(line: 9, column: 1, scope: !10) diff --git a/testsuite/expr/builtin_keccak256hash.ll b/testsuite/expr/builtin_keccak256hash.ll index c0f18700..55f746cd 100644 --- a/testsuite/expr/builtin_keccak256hash.ll +++ b/testsuite/expr/builtin_keccak256hash.ll @@ -10,7 +10,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-pc-linux-gnu" +target triple = "x86_64-unknown-linux-gnu" %"$TyDescrTy_PrimTyp_7" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/testsuite/expr/builtin_lt.dbg.ll b/testsuite/expr/builtin_lt.dbg.ll index ea226b1a..b8f5af82 100644 --- a/testsuite/expr/builtin_lt.dbg.ll +++ b/testsuite/expr/builtin_lt.dbg.ll @@ -24,7 +24,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-pc-linux-gnu" +target triple = "x86_64-unknown-linux-gnu" %"$TyDescrTy_PrimTyp_28" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } @@ -36,9 +36,9 @@ target triple = "x86_64-pc-linux-gnu" %TName_Bool = type { i8, %CName_True*, %CName_False* } %CName_True = type <{ i8 }> %CName_False = type <{ i8 }> -%"$ParamDescr_514" = type { %ParamDescrString, %_TyDescrTy_Typ* } +%"$ParamDescr_517" = type { %ParamDescrString, %_TyDescrTy_Typ* } %ParamDescrString = type { i8*, i32 } -%"$TransDescr_515" = type { %ParamDescrString, i32, %"$ParamDescr_514"* } +%"$TransDescr_518" = type { %ParamDescrString, i32, %"$ParamDescr_517"* } %"$$fundef_21_env_78" = type {} %"$$fundef_25_env_79" = type { %TName_Bool* } %"$$fundef_23_env_80" = type {} @@ -98,162 +98,173 @@ target triple = "x86_64-pc-linux-gnu" @"$_gas_charge_accListUtils_2" = global %Int32 zeroinitializer @"$_gas_charge_accNatUtils_3" = global %Int32 zeroinitializer @"$_gas_charge_accPairUtils_4" = global %Int32 zeroinitializer -@"$BNumLit_208" = unnamed_addr constant [3 x i8] c"100" -@"$BNumLit_222" = unnamed_addr constant [3 x i8] c"200" +@"$BNumLit_211" = unnamed_addr constant [3 x i8] c"100" +@"$BNumLit_225" = unnamed_addr constant [3 x i8] c"200" @_tydescr_table = constant [16 x %_TyDescrTy_Typ*] [%_TyDescrTy_Typ* @"$TyDescr_Event_52", %_TyDescrTy_Typ* @"$TyDescr_Int64_34", %_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_62", %_TyDescrTy_Typ* @"$TyDescr_Uint256_44", %_TyDescrTy_Typ* @"$TyDescr_Uint32_32", %_TyDescrTy_Typ* @"$TyDescr_Uint64_36", %_TyDescrTy_Typ* @"$TyDescr_Bnum_48", %_TyDescrTy_Typ* @"$TyDescr_Uint128_40", %_TyDescrTy_Typ* @"$TyDescr_Exception_54", %_TyDescrTy_Typ* @"$TyDescr_String_46", %_TyDescrTy_Typ* @"$TyDescr_Int256_42", %_TyDescrTy_Typ* @"$TyDescr_Int128_38", %_TyDescrTy_Typ* @"$TyDescr_Bystr_58", %_TyDescrTy_Typ* @"$TyDescr_ReplicateContr_56", %_TyDescrTy_Typ* @"$TyDescr_Message_50", %_TyDescrTy_Typ* @"$TyDescr_Int32_30"] @_tydescr_table_length = constant i32 16 -@_contract_parameters = constant [0 x %"$ParamDescr_514"] zeroinitializer +@_contract_parameters = constant [0 x %"$ParamDescr_517"] zeroinitializer @_contract_parameters_length = constant i32 0 -@_transition_parameters = constant [0 x %"$TransDescr_515"] zeroinitializer +@_transition_parameters = constant [0 x %"$TransDescr_518"] zeroinitializer @_transition_parameters_length = constant i32 0 -define internal %TName_Bool* @"$fundef_21"(%"$$fundef_21_env_78"* %0, %TName_Bool* %1) !dbg !4 { +define internal %TName_Bool* @"$fundef_21"(%"$$fundef_21_env_78"* %0, %TName_Bool* %1) !dbg !3 { entry: + %"$b_154" = alloca %TName_Bool*, align 8 + store %TName_Bool* %1, %TName_Bool** %"$b_154", align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$b_154", metadata !9, metadata !DIExpression()), !dbg !12 %"$retval_22" = alloca %TName_Bool*, 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" + call void @llvm.dbg.declare(metadata %TName_Bool** %"$retval_22", metadata !13, metadata !DIExpression()), !dbg !14 + %"$gasrem_124" = load i64, i64* @_gasrem, align 8 + %"$gascmp_125" = icmp ugt i64 2, %"$gasrem_124" + br i1 %"$gascmp_125", label %"$out_of_gas_126", label %"$have_gas_127" -"$out_of_gas_124": ; preds = %entry +"$out_of_gas_126": ; 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", 2 - store i64 %"$consume_126", i64* @_gasrem, align 8 - %"$b_tag_128" = getelementptr inbounds %TName_Bool, %TName_Bool* %1, i32 0, i32 0 - %"$b_tag_129" = load i8, i8* %"$b_tag_128", align 1 - switch i8 %"$b_tag_129", label %"$empty_default_130" [ - i8 0, label %"$True_131" - i8 1, label %"$False_141" - ], !dbg !9 - -"$True_131": ; preds = %"$have_gas_125" - %"$b_132" = bitcast %TName_Bool* %1 to %CName_True* - %"$gasrem_133" = load i64, i64* @_gasrem, align 8 - %"$gascmp_134" = icmp ugt i64 1, %"$gasrem_133" - br i1 %"$gascmp_134", label %"$out_of_gas_135", label %"$have_gas_136" - -"$out_of_gas_135": ; preds = %"$True_131" + br label %"$have_gas_127" + +"$have_gas_127": ; preds = %"$out_of_gas_126", %entry + %"$consume_128" = sub i64 %"$gasrem_124", 2 + store i64 %"$consume_128", i64* @_gasrem, align 8 + %"$b_tag_130" = getelementptr inbounds %TName_Bool, %TName_Bool* %1, i32 0, i32 0 + %"$b_tag_131" = load i8, i8* %"$b_tag_130", align 1 + switch i8 %"$b_tag_131", label %"$empty_default_132" [ + i8 0, label %"$True_133" + i8 1, label %"$False_143" + ], !dbg !14 + +"$True_133": ; preds = %"$have_gas_127" + %"$b_134" = bitcast %TName_Bool* %1 to %CName_True* + %"$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 = %"$True_133" call void @_out_of_gas() - br label %"$have_gas_136" - -"$have_gas_136": ; preds = %"$out_of_gas_135", %"$True_131" - %"$consume_137" = sub i64 %"$gasrem_133", 1 - store i64 %"$consume_137", i64* @_gasrem, align 8 - %"$adtval_138_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_138_salloc" = call i8* @_salloc(i8* %"$adtval_138_load", i64 1) - %"$adtval_138" = bitcast i8* %"$adtval_138_salloc" to %CName_False* - %"$adtgep_139" = getelementptr inbounds %CName_False, %CName_False* %"$adtval_138", i32 0, i32 0 - store i8 1, i8* %"$adtgep_139", align 1 - %"$adtptr_140" = bitcast %CName_False* %"$adtval_138" to %TName_Bool* - store %TName_Bool* %"$adtptr_140", %TName_Bool** %"$retval_22", align 8, !dbg !10 - br label %"$matchsucc_127" - -"$False_141": ; preds = %"$have_gas_125" - %"$b_142" = bitcast %TName_Bool* %1 to %CName_False* - %"$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 = %"$False_141" + br label %"$have_gas_138" + +"$have_gas_138": ; preds = %"$out_of_gas_137", %"$True_133" + %"$consume_139" = sub i64 %"$gasrem_135", 1 + store i64 %"$consume_139", i64* @_gasrem, align 8 + %"$adtval_140_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_140_salloc" = call i8* @_salloc(i8* %"$adtval_140_load", i64 1) + %"$adtval_140" = bitcast i8* %"$adtval_140_salloc" to %CName_False* + %"$adtgep_141" = getelementptr inbounds %CName_False, %CName_False* %"$adtval_140", i32 0, i32 0 + store i8 1, i8* %"$adtgep_141", align 1 + %"$adtptr_142" = bitcast %CName_False* %"$adtval_140" to %TName_Bool* + store %TName_Bool* %"$adtptr_142", %TName_Bool** %"$retval_22", align 8, !dbg !15 + br label %"$matchsucc_129" + +"$False_143": ; preds = %"$have_gas_127" + %"$b_144" = bitcast %TName_Bool* %1 to %CName_False* + %"$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 = %"$False_143" call void @_out_of_gas() - br label %"$have_gas_146" - -"$have_gas_146": ; preds = %"$out_of_gas_145", %"$False_141" - %"$consume_147" = sub i64 %"$gasrem_143", 1 - store i64 %"$consume_147", i64* @_gasrem, align 8 - %"$adtval_148_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_148_salloc" = call i8* @_salloc(i8* %"$adtval_148_load", i64 1) - %"$adtval_148" = bitcast i8* %"$adtval_148_salloc" to %CName_True* - %"$adtgep_149" = getelementptr inbounds %CName_True, %CName_True* %"$adtval_148", i32 0, i32 0 - store i8 0, i8* %"$adtgep_149", align 1 - %"$adtptr_150" = bitcast %CName_True* %"$adtval_148" to %TName_Bool* - store %TName_Bool* %"$adtptr_150", %TName_Bool** %"$retval_22", align 8, !dbg !13 - br label %"$matchsucc_127" - -"$empty_default_130": ; preds = %"$have_gas_125" - br label %"$matchsucc_127" - -"$matchsucc_127": ; preds = %"$have_gas_146", %"$have_gas_136", %"$empty_default_130" - %"$$retval_22_151" = load %TName_Bool*, %TName_Bool** %"$retval_22", align 8 - ret %TName_Bool* %"$$retval_22_151" + br label %"$have_gas_148" + +"$have_gas_148": ; preds = %"$out_of_gas_147", %"$False_143" + %"$consume_149" = sub i64 %"$gasrem_145", 1 + store i64 %"$consume_149", i64* @_gasrem, align 8 + %"$adtval_150_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_150_salloc" = call i8* @_salloc(i8* %"$adtval_150_load", i64 1) + %"$adtval_150" = bitcast i8* %"$adtval_150_salloc" to %CName_True* + %"$adtgep_151" = getelementptr inbounds %CName_True, %CName_True* %"$adtval_150", i32 0, i32 0 + store i8 0, i8* %"$adtgep_151", align 1 + %"$adtptr_152" = bitcast %CName_True* %"$adtval_150" to %TName_Bool* + store %TName_Bool* %"$adtptr_152", %TName_Bool** %"$retval_22", align 8, !dbg !18 + br label %"$matchsucc_129" + +"$empty_default_132": ; preds = %"$have_gas_127" + br label %"$matchsucc_129" + +"$matchsucc_129": ; preds = %"$have_gas_148", %"$have_gas_138", %"$empty_default_132" + %"$$retval_22_153" = load %TName_Bool*, %TName_Bool** %"$retval_22", align 8 + ret %TName_Bool* %"$$retval_22_153" } -define internal %TName_Bool* @"$fundef_25"(%"$$fundef_25_env_79"* %0, %TName_Bool* %1) !dbg !15 { +define internal %TName_Bool* @"$fundef_25"(%"$$fundef_25_env_79"* %0, %TName_Bool* %1) !dbg !20 { entry: - %"$$fundef_25_env_b_92" = getelementptr inbounds %"$$fundef_25_env_79", %"$$fundef_25_env_79"* %0, i32 0, i32 0 - %"$b_envload_93" = load %TName_Bool*, %TName_Bool** %"$$fundef_25_env_b_92", align 8 + %"$c_123" = alloca %TName_Bool*, align 8 + store %TName_Bool* %1, %TName_Bool** %"$c_123", align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$c_123", metadata !21, metadata !DIExpression()), !dbg !22 + %"$$fundef_25_env_b_93" = getelementptr inbounds %"$$fundef_25_env_79", %"$$fundef_25_env_79"* %0, i32 0, i32 0 + %"$b_envload_94" = load %TName_Bool*, %TName_Bool** %"$$fundef_25_env_b_93", align 8 %b = alloca %TName_Bool*, align 8 - store %TName_Bool* %"$b_envload_93", %TName_Bool** %b, align 8 + store %TName_Bool* %"$b_envload_94", %TName_Bool** %b, align 8 %"$retval_26" = alloca %TName_Bool*, align 8 - %"$gasrem_94" = load i64, i64* @_gasrem, align 8 - %"$gascmp_95" = icmp ugt i64 2, %"$gasrem_94" - br i1 %"$gascmp_95", label %"$out_of_gas_96", label %"$have_gas_97" + call void @llvm.dbg.declare(metadata %TName_Bool** %"$retval_26", metadata !23, metadata !DIExpression()), !dbg !24 + %"$gasrem_95" = load i64, i64* @_gasrem, align 8 + %"$gascmp_96" = icmp ugt i64 2, %"$gasrem_95" + br i1 %"$gascmp_96", label %"$out_of_gas_97", label %"$have_gas_98" -"$out_of_gas_96": ; preds = %entry +"$out_of_gas_97": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_97" - -"$have_gas_97": ; preds = %"$out_of_gas_96", %entry - %"$consume_98" = sub i64 %"$gasrem_94", 2 - store i64 %"$consume_98", i64* @_gasrem, align 8 - %"$b_100" = load %TName_Bool*, %TName_Bool** %b, align 8 - %"$b_tag_101" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$b_100", i32 0, i32 0 - %"$b_tag_102" = load i8, i8* %"$b_tag_101", align 1 - switch i8 %"$b_tag_102", label %"$empty_default_103" [ - i8 1, label %"$False_104" - i8 0, label %"$True_114" - ], !dbg !16 - -"$False_104": ; preds = %"$have_gas_97" - %"$b_105" = bitcast %TName_Bool* %"$b_100" to %CName_False* - %"$gasrem_106" = load i64, i64* @_gasrem, align 8 - %"$gascmp_107" = icmp ugt i64 1, %"$gasrem_106" - br i1 %"$gascmp_107", label %"$out_of_gas_108", label %"$have_gas_109" - -"$out_of_gas_108": ; preds = %"$False_104" + br label %"$have_gas_98" + +"$have_gas_98": ; preds = %"$out_of_gas_97", %entry + %"$consume_99" = sub i64 %"$gasrem_95", 2 + store i64 %"$consume_99", i64* @_gasrem, align 8 + %"$b_101" = load %TName_Bool*, %TName_Bool** %b, align 8 + %"$b_tag_102" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$b_101", i32 0, i32 0 + %"$b_tag_103" = load i8, i8* %"$b_tag_102", align 1 + switch i8 %"$b_tag_103", label %"$empty_default_104" [ + i8 1, label %"$False_105" + i8 0, label %"$True_115" + ], !dbg !24 + +"$False_105": ; preds = %"$have_gas_98" + %"$b_106" = bitcast %TName_Bool* %"$b_101" to %CName_False* + %"$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 = %"$False_105" call void @_out_of_gas() - br label %"$have_gas_109" - -"$have_gas_109": ; preds = %"$out_of_gas_108", %"$False_104" - %"$consume_110" = sub i64 %"$gasrem_106", 1 - store i64 %"$consume_110", i64* @_gasrem, align 8 - %"$adtval_111_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_111_salloc" = call i8* @_salloc(i8* %"$adtval_111_load", i64 1) - %"$adtval_111" = bitcast i8* %"$adtval_111_salloc" to %CName_False* - %"$adtgep_112" = getelementptr inbounds %CName_False, %CName_False* %"$adtval_111", i32 0, i32 0 - store i8 1, i8* %"$adtgep_112", align 1 - %"$adtptr_113" = bitcast %CName_False* %"$adtval_111" to %TName_Bool* - store %TName_Bool* %"$adtptr_113", %TName_Bool** %"$retval_26", align 8, !dbg !17 - br label %"$matchsucc_99" - -"$True_114": ; preds = %"$have_gas_97" - %"$b_115" = bitcast %TName_Bool* %"$b_100" to %CName_True* - %"$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 = %"$True_114" + br label %"$have_gas_110" + +"$have_gas_110": ; preds = %"$out_of_gas_109", %"$False_105" + %"$consume_111" = sub i64 %"$gasrem_107", 1 + store i64 %"$consume_111", i64* @_gasrem, align 8 + %"$adtval_112_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_112_salloc" = call i8* @_salloc(i8* %"$adtval_112_load", i64 1) + %"$adtval_112" = bitcast i8* %"$adtval_112_salloc" to %CName_False* + %"$adtgep_113" = getelementptr inbounds %CName_False, %CName_False* %"$adtval_112", i32 0, i32 0 + store i8 1, i8* %"$adtgep_113", align 1 + %"$adtptr_114" = bitcast %CName_False* %"$adtval_112" to %TName_Bool* + store %TName_Bool* %"$adtptr_114", %TName_Bool** %"$retval_26", align 8, !dbg !25 + br label %"$matchsucc_100" + +"$True_115": ; preds = %"$have_gas_98" + %"$b_116" = bitcast %TName_Bool* %"$b_101" to %CName_True* + %"$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 = %"$True_115" call void @_out_of_gas() - br label %"$have_gas_119" + br label %"$have_gas_120" -"$have_gas_119": ; preds = %"$out_of_gas_118", %"$True_114" - %"$consume_120" = sub i64 %"$gasrem_116", 1 - store i64 %"$consume_120", i64* @_gasrem, align 8 - store %TName_Bool* %1, %TName_Bool** %"$retval_26", align 8, !dbg !20 - br label %"$matchsucc_99" +"$have_gas_120": ; preds = %"$out_of_gas_119", %"$True_115" + %"$consume_121" = sub i64 %"$gasrem_117", 1 + store i64 %"$consume_121", i64* @_gasrem, align 8 + store %TName_Bool* %1, %TName_Bool** %"$retval_26", align 8, !dbg !28 + br label %"$matchsucc_100" -"$empty_default_103": ; preds = %"$have_gas_97" - br label %"$matchsucc_99" +"$empty_default_104": ; preds = %"$have_gas_98" + br label %"$matchsucc_100" -"$matchsucc_99": ; preds = %"$have_gas_119", %"$have_gas_109", %"$empty_default_103" - %"$$retval_26_121" = load %TName_Bool*, %TName_Bool** %"$retval_26", align 8 - ret %TName_Bool* %"$$retval_26_121" +"$matchsucc_100": ; preds = %"$have_gas_120", %"$have_gas_110", %"$empty_default_104" + %"$$retval_26_122" = load %TName_Bool*, %TName_Bool** %"$retval_26", align 8 + ret %TName_Bool* %"$$retval_26_122" } -define internal { %TName_Bool* (i8*, %TName_Bool*)*, i8* } @"$fundef_23"(%"$$fundef_23_env_80"* %0, %TName_Bool* %1) !dbg !22 { +define internal { %TName_Bool* (i8*, %TName_Bool*)*, i8* } @"$fundef_23"(%"$$fundef_23_env_80"* %0, %TName_Bool* %1) !dbg !30 { entry: + %"$b_92" = alloca %TName_Bool*, align 8 + store %TName_Bool* %1, %TName_Bool** %"$b_92", align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$b_92", metadata !31, metadata !DIExpression()), !dbg !32 %"$retval_24" = alloca { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, align 8 %"$gasrem_81" = load i64, i64* @_gasrem, align 8 %"$gascmp_82" = icmp ugt i64 1, %"$gasrem_81" @@ -273,7 +284,7 @@ entry: %"$$fundef_25_cloval_89" = insertvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } { %TName_Bool* (i8*, %TName_Bool*)* bitcast (%TName_Bool* (%"$$fundef_25_env_79"*, %TName_Bool*)* @"$fundef_25" to %TName_Bool* (i8*, %TName_Bool*)*), i8* undef }, i8* %"$$fundef_25_env_voidp_88", 1 %"$$fundef_25_env_b_90" = getelementptr inbounds %"$$fundef_25_env_79", %"$$fundef_25_env_79"* %"$$fundef_25_envp_86", i32 0, i32 0 store %TName_Bool* %1, %TName_Bool** %"$$fundef_25_env_b_90", align 8 - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$fundef_25_cloval_89", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$retval_24", align 8, !dbg !23 + store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$fundef_25_cloval_89", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$retval_24", align 8, !dbg !33 %"$$retval_24_91" = 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_91" } @@ -282,715 +293,746 @@ declare void @_out_of_gas() declare i8* @_salloc(i8*, i64) -define void @_init_libs() !dbg !24 { +; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn +declare void @llvm.dbg.declare(metadata, metadata, metadata) #0 + +define void @_init_libs() !dbg !34 { entry: - %"$gasrem_152" = load i64, i64* @_gasrem, align 8 - %"$gascmp_153" = icmp ugt i64 5, %"$gasrem_152" - br i1 %"$gascmp_153", label %"$out_of_gas_154", label %"$have_gas_155" + %"$gasrem_155" = load i64, i64* @_gasrem, align 8 + %"$gascmp_156" = icmp ugt i64 5, %"$gasrem_155" + br i1 %"$gascmp_156", label %"$out_of_gas_157", label %"$have_gas_158" -"$out_of_gas_154": ; preds = %entry +"$out_of_gas_157": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_155" + br label %"$have_gas_158" -"$have_gas_155": ; preds = %"$out_of_gas_154", %entry - %"$consume_156" = sub i64 %"$gasrem_152", 5 - store i64 %"$consume_156", i64* @_gasrem, align 8 - store %Int32 { i32 5 }, %Int32* @"$_gas_charge_accrec_lib_5", align 4, !dbg !26 - %"$gasrem_157" = load i64, i64* @_gasrem, align 8 - %"$gascmp_158" = icmp ugt i64 6, %"$gasrem_157" - br i1 %"$gascmp_158", label %"$out_of_gas_159", label %"$have_gas_160" +"$have_gas_158": ; preds = %"$out_of_gas_157", %entry + %"$consume_159" = sub i64 %"$gasrem_155", 5 + store i64 %"$consume_159", i64* @_gasrem, align 8 + store %Int32 { i32 5 }, %Int32* @"$_gas_charge_accrec_lib_5", align 4, !dbg !36 + %"$gasrem_160" = load i64, i64* @_gasrem, align 8 + %"$gascmp_161" = icmp ugt i64 6, %"$gasrem_160" + br i1 %"$gascmp_161", label %"$out_of_gas_162", label %"$have_gas_163" -"$out_of_gas_159": ; preds = %"$have_gas_155" +"$out_of_gas_162": ; preds = %"$have_gas_158" call void @_out_of_gas() - br label %"$have_gas_160" + br label %"$have_gas_163" -"$have_gas_160": ; preds = %"$out_of_gas_159", %"$have_gas_155" - %"$consume_161" = sub i64 %"$gasrem_157", 6 - store i64 %"$consume_161", i64* @_gasrem, align 8 - store %Int32 { i32 6 }, %Int32* @"$_gas_charge_accBoolUtils_0", align 4, !dbg !26 - %"$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" +"$have_gas_163": ; preds = %"$out_of_gas_162", %"$have_gas_158" + %"$consume_164" = sub i64 %"$gasrem_160", 6 + store i64 %"$consume_164", i64* @_gasrem, align 8 + store %Int32 { i32 6 }, %Int32* @"$_gas_charge_accBoolUtils_0", align 4, !dbg !36 + %"$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" -"$out_of_gas_164": ; preds = %"$have_gas_160" +"$out_of_gas_167": ; preds = %"$have_gas_163" call void @_out_of_gas() - br label %"$have_gas_165" + br label %"$have_gas_168" -"$have_gas_165": ; preds = %"$out_of_gas_164", %"$have_gas_160" - %"$consume_166" = sub i64 %"$gasrem_162", 1 - store i64 %"$consume_166", 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_80"*, %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 !27 - %"$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" +"$have_gas_168": ; preds = %"$out_of_gas_167", %"$have_gas_163" + %"$consume_169" = sub i64 %"$gasrem_165", 1 + store i64 %"$consume_169", 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_80"*, %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 !37 + %"$gasrem_173" = load i64, i64* @_gasrem, align 8 + %"$gascmp_174" = icmp ugt i64 1, %"$gasrem_173" + br i1 %"$gascmp_174", label %"$out_of_gas_175", label %"$have_gas_176" -"$out_of_gas_172": ; preds = %"$have_gas_165" +"$out_of_gas_175": ; preds = %"$have_gas_168" call void @_out_of_gas() - br label %"$have_gas_173" + br label %"$have_gas_176" -"$have_gas_173": ; preds = %"$out_of_gas_172", %"$have_gas_165" - %"$consume_174" = sub i64 %"$gasrem_170", 1 - store i64 %"$consume_174", i64* @_gasrem, align 8 - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } { %TName_Bool* (i8*, %TName_Bool*)* bitcast (%TName_Bool* (%"$$fundef_21_env_78"*, %TName_Bool*)* @"$fundef_21" to %TName_Bool* (i8*, %TName_Bool*)*), i8* null }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* @BoolUtils.negb, align 8, !dbg !28 - %"$gasrem_178" = load i64, i64* @_gasrem, align 8 - %"$gascmp_179" = icmp ugt i64 196, %"$gasrem_178" - br i1 %"$gascmp_179", label %"$out_of_gas_180", label %"$have_gas_181" +"$have_gas_176": ; preds = %"$out_of_gas_175", %"$have_gas_168" + %"$consume_177" = sub i64 %"$gasrem_173", 1 + store i64 %"$consume_177", i64* @_gasrem, align 8 + store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } { %TName_Bool* (i8*, %TName_Bool*)* bitcast (%TName_Bool* (%"$$fundef_21_env_78"*, %TName_Bool*)* @"$fundef_21" to %TName_Bool* (i8*, %TName_Bool*)*), i8* null }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* @BoolUtils.negb, align 8, !dbg !38 + %"$gasrem_181" = load i64, i64* @_gasrem, align 8 + %"$gascmp_182" = icmp ugt i64 196, %"$gasrem_181" + br i1 %"$gascmp_182", label %"$out_of_gas_183", label %"$have_gas_184" -"$out_of_gas_180": ; preds = %"$have_gas_173" +"$out_of_gas_183": ; preds = %"$have_gas_176" call void @_out_of_gas() - br label %"$have_gas_181" + br label %"$have_gas_184" -"$have_gas_181": ; preds = %"$out_of_gas_180", %"$have_gas_173" - %"$consume_182" = sub i64 %"$gasrem_178", 196 - store i64 %"$consume_182", i64* @_gasrem, align 8 - store %Int32 { i32 196 }, %Int32* @"$_gas_charge_accIntUtils_1", align 4, !dbg !26 - %"$gasrem_183" = load i64, i64* @_gasrem, align 8 - %"$gascmp_184" = icmp ugt i64 20, %"$gasrem_183" - br i1 %"$gascmp_184", label %"$out_of_gas_185", label %"$have_gas_186" +"$have_gas_184": ; preds = %"$out_of_gas_183", %"$have_gas_176" + %"$consume_185" = sub i64 %"$gasrem_181", 196 + store i64 %"$consume_185", i64* @_gasrem, align 8 + store %Int32 { i32 196 }, %Int32* @"$_gas_charge_accIntUtils_1", align 4, !dbg !36 + %"$gasrem_186" = load i64, i64* @_gasrem, align 8 + %"$gascmp_187" = icmp ugt i64 20, %"$gasrem_186" + br i1 %"$gascmp_187", label %"$out_of_gas_188", label %"$have_gas_189" -"$out_of_gas_185": ; preds = %"$have_gas_181" +"$out_of_gas_188": ; preds = %"$have_gas_184" call void @_out_of_gas() - br label %"$have_gas_186" + br label %"$have_gas_189" -"$have_gas_186": ; preds = %"$out_of_gas_185", %"$have_gas_181" - %"$consume_187" = sub i64 %"$gasrem_183", 20 - store i64 %"$consume_187", i64* @_gasrem, align 8 - store %Int32 { i32 20 }, %Int32* @"$_gas_charge_accListUtils_2", align 4, !dbg !26 - %"$gasrem_188" = load i64, i64* @_gasrem, align 8 - %"$gascmp_189" = icmp ugt i64 12, %"$gasrem_188" - br i1 %"$gascmp_189", label %"$out_of_gas_190", label %"$have_gas_191" +"$have_gas_189": ; preds = %"$out_of_gas_188", %"$have_gas_184" + %"$consume_190" = sub i64 %"$gasrem_186", 20 + store i64 %"$consume_190", i64* @_gasrem, align 8 + store %Int32 { i32 20 }, %Int32* @"$_gas_charge_accListUtils_2", align 4, !dbg !36 + %"$gasrem_191" = load i64, i64* @_gasrem, align 8 + %"$gascmp_192" = icmp ugt i64 12, %"$gasrem_191" + br i1 %"$gascmp_192", label %"$out_of_gas_193", label %"$have_gas_194" -"$out_of_gas_190": ; preds = %"$have_gas_186" +"$out_of_gas_193": ; preds = %"$have_gas_189" call void @_out_of_gas() - br label %"$have_gas_191" + br label %"$have_gas_194" -"$have_gas_191": ; preds = %"$out_of_gas_190", %"$have_gas_186" - %"$consume_192" = sub i64 %"$gasrem_188", 12 - store i64 %"$consume_192", i64* @_gasrem, align 8 - store %Int32 { i32 12 }, %Int32* @"$_gas_charge_accNatUtils_3", align 4, !dbg !26 - %"$gasrem_193" = load i64, i64* @_gasrem, align 8 - %"$gascmp_194" = icmp ugt i64 2, %"$gasrem_193" - br i1 %"$gascmp_194", label %"$out_of_gas_195", label %"$have_gas_196" +"$have_gas_194": ; preds = %"$out_of_gas_193", %"$have_gas_189" + %"$consume_195" = sub i64 %"$gasrem_191", 12 + store i64 %"$consume_195", i64* @_gasrem, align 8 + store %Int32 { i32 12 }, %Int32* @"$_gas_charge_accNatUtils_3", align 4, !dbg !36 + %"$gasrem_196" = load i64, i64* @_gasrem, align 8 + %"$gascmp_197" = icmp ugt i64 2, %"$gasrem_196" + br i1 %"$gascmp_197", label %"$out_of_gas_198", label %"$have_gas_199" -"$out_of_gas_195": ; preds = %"$have_gas_191" +"$out_of_gas_198": ; preds = %"$have_gas_194" call void @_out_of_gas() - br label %"$have_gas_196" + br label %"$have_gas_199" -"$have_gas_196": ; preds = %"$out_of_gas_195", %"$have_gas_191" - %"$consume_197" = sub i64 %"$gasrem_193", 2 - store i64 %"$consume_197", i64* @_gasrem, align 8 - store %Int32 { i32 2 }, %Int32* @"$_gas_charge_accPairUtils_4", align 4, !dbg !26 +"$have_gas_199": ; preds = %"$out_of_gas_198", %"$have_gas_194" + %"$consume_200" = sub i64 %"$gasrem_196", 2 + store i64 %"$consume_200", i64* @_gasrem, align 8 + store %Int32 { i32 2 }, %Int32* @"$_gas_charge_accPairUtils_4", align 4, !dbg !36 ret void } -define internal %TName_Bool* @_scilla_expr_fun(i8* %0) !dbg !29 { +define internal %TName_Bool* @_scilla_expr_fun(i8* %0) !dbg !39 { entry: %"$expr_27" = alloca %TName_Bool*, 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" + call void @llvm.dbg.declare(metadata %TName_Bool** %"$expr_27", metadata !40, metadata !DIExpression()), !dbg !41 + %"$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" -"$out_of_gas_200": ; preds = %entry +"$out_of_gas_203": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_201" + br label %"$have_gas_204" -"$have_gas_201": ; preds = %"$out_of_gas_200", %entry - %"$consume_202" = sub i64 %"$gasrem_198", 1 - store i64 %"$consume_202", i64* @_gasrem, align 8 +"$have_gas_204": ; preds = %"$out_of_gas_203", %entry + %"$consume_205" = sub i64 %"$gasrem_201", 1 + store i64 %"$consume_205", i64* @_gasrem, align 8 %bn1 = alloca i8*, align 8 - %"$gasrem_203" = load i64, i64* @_gasrem, align 8 - %"$gascmp_204" = icmp ugt i64 1, %"$gasrem_203" - br i1 %"$gascmp_204", label %"$out_of_gas_205", label %"$have_gas_206" + call void @llvm.dbg.declare(metadata i8** %bn1, metadata !42, metadata !DIExpression()), !dbg !45 + %"$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_205": ; preds = %"$have_gas_201" +"$out_of_gas_208": ; preds = %"$have_gas_204" call void @_out_of_gas() - br label %"$have_gas_206" - -"$have_gas_206": ; preds = %"$out_of_gas_205", %"$have_gas_201" - %"$consume_207" = sub i64 %"$gasrem_203", 1 - store i64 %"$consume_207", i64* @_gasrem, align 8 - %"$execptr_load_209" = load i8*, i8** @_execptr, align 8 - %"$_new_bnum_call_210" = call i8* @_new_bnum(i8* %"$execptr_load_209", %BNumString { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$BNumLit_208", i32 0, i32 0), i32 3 }) - store i8* %"$_new_bnum_call_210", i8** %bn1, align 8, !dbg !30 - %"$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_206" + 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_212" = load i8*, i8** @_execptr, align 8 + %"$_new_bnum_call_213" = call i8* @_new_bnum(i8* %"$execptr_load_212", %BNumString { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$BNumLit_211", i32 0, i32 0), i32 3 }) + store i8* %"$_new_bnum_call_213", i8** %bn1, align 8, !dbg !41 + %"$gasrem_215" = load i64, i64* @_gasrem, align 8 + %"$gascmp_216" = icmp ugt i64 1, %"$gasrem_215" + br i1 %"$gascmp_216", label %"$out_of_gas_217", label %"$have_gas_218" + +"$out_of_gas_217": ; preds = %"$have_gas_209" call void @_out_of_gas() - br label %"$have_gas_215" + br label %"$have_gas_218" -"$have_gas_215": ; preds = %"$out_of_gas_214", %"$have_gas_206" - %"$consume_216" = sub i64 %"$gasrem_212", 1 - store i64 %"$consume_216", i64* @_gasrem, align 8 +"$have_gas_218": ; preds = %"$out_of_gas_217", %"$have_gas_209" + %"$consume_219" = sub i64 %"$gasrem_215", 1 + store i64 %"$consume_219", i64* @_gasrem, align 8 %bn2 = alloca i8*, align 8 - %"$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" + call void @llvm.dbg.declare(metadata i8** %bn2, metadata !46, metadata !DIExpression()), !dbg !47 + %"$gasrem_220" = load i64, i64* @_gasrem, align 8 + %"$gascmp_221" = icmp ugt i64 1, %"$gasrem_220" + br i1 %"$gascmp_221", label %"$out_of_gas_222", label %"$have_gas_223" -"$out_of_gas_219": ; preds = %"$have_gas_215" +"$out_of_gas_222": ; preds = %"$have_gas_218" call void @_out_of_gas() - br label %"$have_gas_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 - %"$execptr_load_223" = load i8*, i8** @_execptr, align 8 - %"$_new_bnum_call_224" = call i8* @_new_bnum(i8* %"$execptr_load_223", %BNumString { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$BNumLit_222", i32 0, i32 0), i32 3 }) - store i8* %"$_new_bnum_call_224", i8** %bn2, align 8, !dbg !31 - %"$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_228": ; preds = %"$have_gas_220" + br label %"$have_gas_223" + +"$have_gas_223": ; preds = %"$out_of_gas_222", %"$have_gas_218" + %"$consume_224" = sub i64 %"$gasrem_220", 1 + store i64 %"$consume_224", i64* @_gasrem, align 8 + %"$execptr_load_226" = load i8*, i8** @_execptr, align 8 + %"$_new_bnum_call_227" = call i8* @_new_bnum(i8* %"$execptr_load_226", %BNumString { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$BNumLit_225", i32 0, i32 0), i32 3 }) + store i8* %"$_new_bnum_call_227", i8** %bn2, align 8, !dbg !48 + %"$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_223" call void @_out_of_gas() - br label %"$have_gas_229" + br label %"$have_gas_232" -"$have_gas_229": ; preds = %"$out_of_gas_228", %"$have_gas_220" - %"$consume_230" = sub i64 %"$gasrem_226", 1 - store i64 %"$consume_230", i64* @_gasrem, align 8 +"$have_gas_232": ; preds = %"$out_of_gas_231", %"$have_gas_223" + %"$consume_233" = sub i64 %"$gasrem_229", 1 + store i64 %"$consume_233", i64* @_gasrem, align 8 %res1 = alloca %TName_Bool*, align 8 - %"$gasrem_231" = load i64, i64* @_gasrem, align 8 - %"$gascmp_232" = icmp ugt i64 32, %"$gasrem_231" - br i1 %"$gascmp_232", label %"$out_of_gas_233", label %"$have_gas_234" + call void @llvm.dbg.declare(metadata %TName_Bool** %res1, metadata !49, metadata !DIExpression()), !dbg !50 + %"$gasrem_234" = load i64, i64* @_gasrem, align 8 + %"$gascmp_235" = icmp ugt i64 32, %"$gasrem_234" + br i1 %"$gascmp_235", label %"$out_of_gas_236", label %"$have_gas_237" -"$out_of_gas_233": ; preds = %"$have_gas_229" +"$out_of_gas_236": ; preds = %"$have_gas_232" call void @_out_of_gas() - br label %"$have_gas_234" - -"$have_gas_234": ; preds = %"$out_of_gas_233", %"$have_gas_229" - %"$consume_235" = sub i64 %"$gasrem_231", 32 - store i64 %"$consume_235", i64* @_gasrem, align 8 - %"$execptr_load_236" = load i8*, i8** @_execptr, align 8 - %"$bn1_237" = load i8*, i8** %bn1, align 8 - %"$bn2_238" = load i8*, i8** %bn2, align 8 - %"$blt_call_239" = call %TName_Bool* @_lt_BNum(i8* %"$execptr_load_236", i8* %"$bn1_237", i8* %"$bn2_238"), !dbg !32 - store %TName_Bool* %"$blt_call_239", %TName_Bool** %res1, align 8, !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_234" + br label %"$have_gas_237" + +"$have_gas_237": ; preds = %"$out_of_gas_236", %"$have_gas_232" + %"$consume_238" = sub i64 %"$gasrem_234", 32 + store i64 %"$consume_238", i64* @_gasrem, align 8 + %"$execptr_load_239" = load i8*, i8** @_execptr, align 8 + %"$bn1_240" = load i8*, i8** %bn1, align 8 + %"$bn2_241" = load i8*, i8** %bn2, align 8 + %"$blt_call_242" = call %TName_Bool* @_lt_BNum(i8* %"$execptr_load_239", i8* %"$bn1_240", i8* %"$bn2_241"), !dbg !51 + store %TName_Bool* %"$blt_call_242", %TName_Bool** %res1, align 8, !dbg !51 + %"$gasrem_244" = load i64, i64* @_gasrem, align 8 + %"$gascmp_245" = icmp ugt i64 1, %"$gasrem_244" + br i1 %"$gascmp_245", label %"$out_of_gas_246", label %"$have_gas_247" + +"$out_of_gas_246": ; preds = %"$have_gas_237" call void @_out_of_gas() - br label %"$have_gas_244" + br label %"$have_gas_247" -"$have_gas_244": ; preds = %"$out_of_gas_243", %"$have_gas_234" - %"$consume_245" = sub i64 %"$gasrem_241", 1 - store i64 %"$consume_245", i64* @_gasrem, align 8 +"$have_gas_247": ; preds = %"$out_of_gas_246", %"$have_gas_237" + %"$consume_248" = sub i64 %"$gasrem_244", 1 + store i64 %"$consume_248", i64* @_gasrem, align 8 %res2n = alloca %TName_Bool*, align 8 - %"$gasrem_246" = load i64, i64* @_gasrem, align 8 - %"$gascmp_247" = icmp ugt i64 32, %"$gasrem_246" - br i1 %"$gascmp_247", label %"$out_of_gas_248", label %"$have_gas_249" + call void @llvm.dbg.declare(metadata %TName_Bool** %res2n, metadata !52, metadata !DIExpression()), !dbg !53 + %"$gasrem_249" = load i64, i64* @_gasrem, align 8 + %"$gascmp_250" = icmp ugt i64 32, %"$gasrem_249" + br i1 %"$gascmp_250", label %"$out_of_gas_251", label %"$have_gas_252" -"$out_of_gas_248": ; preds = %"$have_gas_244" +"$out_of_gas_251": ; preds = %"$have_gas_247" 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", 32 - store i64 %"$consume_250", i64* @_gasrem, align 8 - %"$execptr_load_251" = load i8*, i8** @_execptr, align 8 - %"$bn2_252" = load i8*, i8** %bn2, align 8 - %"$bn1_253" = load i8*, i8** %bn1, align 8 - %"$blt_call_254" = call %TName_Bool* @_lt_BNum(i8* %"$execptr_load_251", i8* %"$bn2_252", i8* %"$bn1_253"), !dbg !33 - store %TName_Bool* %"$blt_call_254", %TName_Bool** %res2n, align 8, !dbg !33 - %"$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_249" + br label %"$have_gas_252" + +"$have_gas_252": ; preds = %"$out_of_gas_251", %"$have_gas_247" + %"$consume_253" = sub i64 %"$gasrem_249", 32 + store i64 %"$consume_253", i64* @_gasrem, align 8 + %"$execptr_load_254" = load i8*, i8** @_execptr, align 8 + %"$bn2_255" = load i8*, i8** %bn2, align 8 + %"$bn1_256" = load i8*, i8** %bn1, align 8 + %"$blt_call_257" = call %TName_Bool* @_lt_BNum(i8* %"$execptr_load_254", i8* %"$bn2_255", i8* %"$bn1_256"), !dbg !54 + store %TName_Bool* %"$blt_call_257", %TName_Bool** %res2n, align 8, !dbg !54 + %"$gasrem_259" = load i64, i64* @_gasrem, align 8 + %"$gascmp_260" = icmp ugt i64 1, %"$gasrem_259" + br i1 %"$gascmp_260", label %"$out_of_gas_261", label %"$have_gas_262" + +"$out_of_gas_261": ; preds = %"$have_gas_252" call void @_out_of_gas() - br label %"$have_gas_259" + br label %"$have_gas_262" -"$have_gas_259": ; preds = %"$out_of_gas_258", %"$have_gas_249" - %"$consume_260" = sub i64 %"$gasrem_256", 1 - store i64 %"$consume_260", i64* @_gasrem, align 8 +"$have_gas_262": ; preds = %"$out_of_gas_261", %"$have_gas_252" + %"$consume_263" = sub i64 %"$gasrem_259", 1 + store i64 %"$consume_263", i64* @_gasrem, align 8 %res2 = alloca %TName_Bool*, align 8 - %"$gasrem_261" = load i64, i64* @_gasrem, align 8 - %"$gascmp_262" = icmp ugt i64 1, %"$gasrem_261" - br i1 %"$gascmp_262", label %"$out_of_gas_263", label %"$have_gas_264" + call void @llvm.dbg.declare(metadata %TName_Bool** %res2, metadata !55, metadata !DIExpression()), !dbg !56 + %"$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_263": ; preds = %"$have_gas_259" +"$out_of_gas_266": ; preds = %"$have_gas_262" call void @_out_of_gas() - br label %"$have_gas_264" + br label %"$have_gas_267" -"$have_gas_264": ; preds = %"$out_of_gas_263", %"$have_gas_259" - %"$consume_265" = sub i64 %"$gasrem_261", 1 - store i64 %"$consume_265", i64* @_gasrem, align 8 +"$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 %"$BoolUtils.negb_8" = alloca %TName_Bool*, align 8 - %"$BoolUtils.negb_266" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* @BoolUtils.negb, align 8 - %"$BoolUtils.negb_fptr_267" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.negb_266", 0 - %"$BoolUtils.negb_envptr_268" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.negb_266", 1 - %"$res2n_269" = load %TName_Bool*, %TName_Bool** %res2n, align 8 - %"$BoolUtils.negb_call_270" = call %TName_Bool* %"$BoolUtils.negb_fptr_267"(i8* %"$BoolUtils.negb_envptr_268", %TName_Bool* %"$res2n_269"), !dbg !34 - store %TName_Bool* %"$BoolUtils.negb_call_270", %TName_Bool** %"$BoolUtils.negb_8", align 8, !dbg !34 - %"$$BoolUtils.negb_8_271" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.negb_8", align 8 - store %TName_Bool* %"$$BoolUtils.negb_8_271", %TName_Bool** %res2, align 8, !dbg !34 - %"$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 = %"$have_gas_264" + call void @llvm.dbg.declare(metadata %TName_Bool** %"$BoolUtils.negb_8", metadata !57, metadata !DIExpression()), !dbg !58 + %"$BoolUtils.negb_269" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* @BoolUtils.negb, align 8 + %"$BoolUtils.negb_fptr_270" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.negb_269", 0 + %"$BoolUtils.negb_envptr_271" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.negb_269", 1 + %"$res2n_272" = load %TName_Bool*, %TName_Bool** %res2n, align 8 + %"$BoolUtils.negb_call_273" = call %TName_Bool* %"$BoolUtils.negb_fptr_270"(i8* %"$BoolUtils.negb_envptr_271", %TName_Bool* %"$res2n_272"), !dbg !58 + store %TName_Bool* %"$BoolUtils.negb_call_273", %TName_Bool** %"$BoolUtils.negb_8", align 8, !dbg !58 + %"$$BoolUtils.negb_8_274" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.negb_8", align 8 + store %TName_Bool* %"$$BoolUtils.negb_8_274", %TName_Bool** %res2, align 8, !dbg !58 + %"$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 = %"$have_gas_267" call void @_out_of_gas() - br label %"$have_gas_275" + br label %"$have_gas_278" -"$have_gas_275": ; preds = %"$out_of_gas_274", %"$have_gas_264" - %"$consume_276" = sub i64 %"$gasrem_272", 1 - store i64 %"$consume_276", i64* @_gasrem, align 8 +"$have_gas_278": ; preds = %"$out_of_gas_277", %"$have_gas_267" + %"$consume_279" = sub i64 %"$gasrem_275", 1 + store i64 %"$consume_279", i64* @_gasrem, align 8 %n1 = alloca %Int32, align 8 - %"$gasrem_277" = load i64, i64* @_gasrem, align 8 - %"$gascmp_278" = icmp ugt i64 1, %"$gasrem_277" - br i1 %"$gascmp_278", label %"$out_of_gas_279", label %"$have_gas_280" + call void @llvm.dbg.declare(metadata %Int32* %n1, metadata !59, metadata !DIExpression()), !dbg !61 + %"$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_279": ; preds = %"$have_gas_275" +"$out_of_gas_282": ; preds = %"$have_gas_278" call void @_out_of_gas() - br label %"$have_gas_280" + br label %"$have_gas_283" -"$have_gas_280": ; preds = %"$out_of_gas_279", %"$have_gas_275" - %"$consume_281" = sub i64 %"$gasrem_277", 1 - store i64 %"$consume_281", i64* @_gasrem, align 8 - store %Int32 { i32 -100 }, %Int32* %n1, align 4, !dbg !35 - %"$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_283": ; preds = %"$out_of_gas_282", %"$have_gas_278" + %"$consume_284" = sub i64 %"$gasrem_280", 1 + store i64 %"$consume_284", i64* @_gasrem, align 8 + store %Int32 { i32 -100 }, %Int32* %n1, align 4, !dbg !62 + %"$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_284": ; preds = %"$have_gas_280" +"$out_of_gas_287": ; preds = %"$have_gas_283" call void @_out_of_gas() - br label %"$have_gas_285" + br label %"$have_gas_288" -"$have_gas_285": ; preds = %"$out_of_gas_284", %"$have_gas_280" - %"$consume_286" = sub i64 %"$gasrem_282", 1 - store i64 %"$consume_286", i64* @_gasrem, align 8 +"$have_gas_288": ; preds = %"$out_of_gas_287", %"$have_gas_283" + %"$consume_289" = sub i64 %"$gasrem_285", 1 + store i64 %"$consume_289", i64* @_gasrem, align 8 %n2 = alloca %Int32, align 8 - %"$gasrem_287" = load i64, i64* @_gasrem, align 8 - %"$gascmp_288" = icmp ugt i64 1, %"$gasrem_287" - br i1 %"$gascmp_288", label %"$out_of_gas_289", label %"$have_gas_290" + call void @llvm.dbg.declare(metadata %Int32* %n2, metadata !63, metadata !DIExpression()), !dbg !64 + %"$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_289": ; preds = %"$have_gas_285" +"$out_of_gas_292": ; preds = %"$have_gas_288" call void @_out_of_gas() - br label %"$have_gas_290" + br label %"$have_gas_293" -"$have_gas_290": ; preds = %"$out_of_gas_289", %"$have_gas_285" - %"$consume_291" = sub i64 %"$gasrem_287", 1 - store i64 %"$consume_291", i64* @_gasrem, align 8 - store %Int32 { i32 200 }, %Int32* %n2, 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" +"$have_gas_293": ; preds = %"$out_of_gas_292", %"$have_gas_288" + %"$consume_294" = sub i64 %"$gasrem_290", 1 + store i64 %"$consume_294", i64* @_gasrem, align 8 + store %Int32 { i32 200 }, %Int32* %n2, align 4, !dbg !65 + %"$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_294": ; preds = %"$have_gas_290" +"$out_of_gas_297": ; preds = %"$have_gas_293" call void @_out_of_gas() - br label %"$have_gas_295" + br label %"$have_gas_298" -"$have_gas_295": ; preds = %"$out_of_gas_294", %"$have_gas_290" - %"$consume_296" = sub i64 %"$gasrem_292", 1 - store i64 %"$consume_296", i64* @_gasrem, align 8 +"$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 %res3 = alloca %TName_Bool*, align 8 - %"$gasrem_297" = load i64, i64* @_gasrem, align 8 - %"$gascmp_298" = icmp ugt i64 4, %"$gasrem_297" - br i1 %"$gascmp_298", label %"$out_of_gas_299", label %"$have_gas_300" + call void @llvm.dbg.declare(metadata %TName_Bool** %res3, metadata !66, metadata !DIExpression()), !dbg !67 + %"$gasrem_300" = load i64, i64* @_gasrem, align 8 + %"$gascmp_301" = icmp ugt i64 4, %"$gasrem_300" + br i1 %"$gascmp_301", label %"$out_of_gas_302", label %"$have_gas_303" -"$out_of_gas_299": ; preds = %"$have_gas_295" +"$out_of_gas_302": ; preds = %"$have_gas_298" 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", 4 - store i64 %"$consume_301", i64* @_gasrem, align 8 - %"$execptr_load_302" = load i8*, i8** @_execptr, align 8 - %"$n1_303" = load %Int32, %Int32* %n1, align 4 - %"$n2_304" = load %Int32, %Int32* %n2, align 4 - %"$lt_call_305" = call %TName_Bool* @_lt_Int32(i8* %"$execptr_load_302", %Int32 %"$n1_303", %Int32 %"$n2_304"), !dbg !37 - store %TName_Bool* %"$lt_call_305", %TName_Bool** %res3, align 8, !dbg !37 - %"$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_300" + br label %"$have_gas_303" + +"$have_gas_303": ; preds = %"$out_of_gas_302", %"$have_gas_298" + %"$consume_304" = sub i64 %"$gasrem_300", 4 + store i64 %"$consume_304", i64* @_gasrem, align 8 + %"$execptr_load_305" = load i8*, i8** @_execptr, align 8 + %"$n1_306" = load %Int32, %Int32* %n1, align 4 + %"$n2_307" = load %Int32, %Int32* %n2, align 4 + %"$lt_call_308" = call %TName_Bool* @_lt_Int32(i8* %"$execptr_load_305", %Int32 %"$n1_306", %Int32 %"$n2_307"), !dbg !68 + store %TName_Bool* %"$lt_call_308", %TName_Bool** %res3, align 8, !dbg !68 + %"$gasrem_310" = load i64, i64* @_gasrem, align 8 + %"$gascmp_311" = icmp ugt i64 1, %"$gasrem_310" + br i1 %"$gascmp_311", label %"$out_of_gas_312", label %"$have_gas_313" + +"$out_of_gas_312": ; preds = %"$have_gas_303" call void @_out_of_gas() - br label %"$have_gas_310" + br label %"$have_gas_313" -"$have_gas_310": ; preds = %"$out_of_gas_309", %"$have_gas_300" - %"$consume_311" = sub i64 %"$gasrem_307", 1 - store i64 %"$consume_311", i64* @_gasrem, align 8 +"$have_gas_313": ; preds = %"$out_of_gas_312", %"$have_gas_303" + %"$consume_314" = sub i64 %"$gasrem_310", 1 + store i64 %"$consume_314", i64* @_gasrem, align 8 %res4n = alloca %TName_Bool*, align 8 - %"$gasrem_312" = load i64, i64* @_gasrem, align 8 - %"$gascmp_313" = icmp ugt i64 4, %"$gasrem_312" - br i1 %"$gascmp_313", label %"$out_of_gas_314", label %"$have_gas_315" + call void @llvm.dbg.declare(metadata %TName_Bool** %res4n, metadata !69, metadata !DIExpression()), !dbg !70 + %"$gasrem_315" = load i64, i64* @_gasrem, align 8 + %"$gascmp_316" = icmp ugt i64 4, %"$gasrem_315" + br i1 %"$gascmp_316", label %"$out_of_gas_317", label %"$have_gas_318" -"$out_of_gas_314": ; preds = %"$have_gas_310" +"$out_of_gas_317": ; preds = %"$have_gas_313" call void @_out_of_gas() - br label %"$have_gas_315" - -"$have_gas_315": ; preds = %"$out_of_gas_314", %"$have_gas_310" - %"$consume_316" = sub i64 %"$gasrem_312", 4 - store i64 %"$consume_316", i64* @_gasrem, align 8 - %"$execptr_load_317" = load i8*, i8** @_execptr, align 8 - %"$n2_318" = load %Int32, %Int32* %n2, align 4 - %"$n1_319" = load %Int32, %Int32* %n1, align 4 - %"$lt_call_320" = call %TName_Bool* @_lt_Int32(i8* %"$execptr_load_317", %Int32 %"$n2_318", %Int32 %"$n1_319"), !dbg !38 - store %TName_Bool* %"$lt_call_320", %TName_Bool** %res4n, align 8, !dbg !38 - %"$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_315" + br label %"$have_gas_318" + +"$have_gas_318": ; preds = %"$out_of_gas_317", %"$have_gas_313" + %"$consume_319" = sub i64 %"$gasrem_315", 4 + store i64 %"$consume_319", i64* @_gasrem, align 8 + %"$execptr_load_320" = load i8*, i8** @_execptr, align 8 + %"$n2_321" = load %Int32, %Int32* %n2, align 4 + %"$n1_322" = load %Int32, %Int32* %n1, align 4 + %"$lt_call_323" = call %TName_Bool* @_lt_Int32(i8* %"$execptr_load_320", %Int32 %"$n2_321", %Int32 %"$n1_322"), !dbg !71 + store %TName_Bool* %"$lt_call_323", %TName_Bool** %res4n, align 8, !dbg !71 + %"$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 = %"$have_gas_318" call void @_out_of_gas() - br label %"$have_gas_325" + br label %"$have_gas_328" -"$have_gas_325": ; preds = %"$out_of_gas_324", %"$have_gas_315" - %"$consume_326" = sub i64 %"$gasrem_322", 1 - store i64 %"$consume_326", i64* @_gasrem, align 8 +"$have_gas_328": ; preds = %"$out_of_gas_327", %"$have_gas_318" + %"$consume_329" = sub i64 %"$gasrem_325", 1 + store i64 %"$consume_329", i64* @_gasrem, align 8 %res4 = alloca %TName_Bool*, align 8 - %"$gasrem_327" = load i64, i64* @_gasrem, align 8 - %"$gascmp_328" = icmp ugt i64 1, %"$gasrem_327" - br i1 %"$gascmp_328", label %"$out_of_gas_329", label %"$have_gas_330" + call void @llvm.dbg.declare(metadata %TName_Bool** %res4, metadata !72, metadata !DIExpression()), !dbg !73 + %"$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_329": ; preds = %"$have_gas_325" +"$out_of_gas_332": ; preds = %"$have_gas_328" call void @_out_of_gas() - br label %"$have_gas_330" + br label %"$have_gas_333" -"$have_gas_330": ; preds = %"$out_of_gas_329", %"$have_gas_325" - %"$consume_331" = sub i64 %"$gasrem_327", 1 - store i64 %"$consume_331", i64* @_gasrem, align 8 +"$have_gas_333": ; preds = %"$out_of_gas_332", %"$have_gas_328" + %"$consume_334" = sub i64 %"$gasrem_330", 1 + store i64 %"$consume_334", i64* @_gasrem, align 8 %"$BoolUtils.negb_9" = alloca %TName_Bool*, align 8 - %"$BoolUtils.negb_332" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* @BoolUtils.negb, align 8 - %"$BoolUtils.negb_fptr_333" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.negb_332", 0 - %"$BoolUtils.negb_envptr_334" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.negb_332", 1 - %"$res4n_335" = load %TName_Bool*, %TName_Bool** %res4n, align 8 - %"$BoolUtils.negb_call_336" = call %TName_Bool* %"$BoolUtils.negb_fptr_333"(i8* %"$BoolUtils.negb_envptr_334", %TName_Bool* %"$res4n_335"), !dbg !39 - store %TName_Bool* %"$BoolUtils.negb_call_336", %TName_Bool** %"$BoolUtils.negb_9", align 8, !dbg !39 - %"$$BoolUtils.negb_9_337" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.negb_9", align 8 - store %TName_Bool* %"$$BoolUtils.negb_9_337", %TName_Bool** %res4, align 8, !dbg !39 - %"$gasrem_338" = load i64, i64* @_gasrem, align 8 - %"$gascmp_339" = icmp ugt i64 1, %"$gasrem_338" - br i1 %"$gascmp_339", label %"$out_of_gas_340", label %"$have_gas_341" - -"$out_of_gas_340": ; preds = %"$have_gas_330" + call void @llvm.dbg.declare(metadata %TName_Bool** %"$BoolUtils.negb_9", metadata !74, metadata !DIExpression()), !dbg !75 + %"$BoolUtils.negb_335" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* @BoolUtils.negb, align 8 + %"$BoolUtils.negb_fptr_336" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.negb_335", 0 + %"$BoolUtils.negb_envptr_337" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.negb_335", 1 + %"$res4n_338" = load %TName_Bool*, %TName_Bool** %res4n, align 8 + %"$BoolUtils.negb_call_339" = call %TName_Bool* %"$BoolUtils.negb_fptr_336"(i8* %"$BoolUtils.negb_envptr_337", %TName_Bool* %"$res4n_338"), !dbg !75 + store %TName_Bool* %"$BoolUtils.negb_call_339", %TName_Bool** %"$BoolUtils.negb_9", align 8, !dbg !75 + %"$$BoolUtils.negb_9_340" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.negb_9", align 8 + store %TName_Bool* %"$$BoolUtils.negb_9_340", %TName_Bool** %res4, align 8, !dbg !75 + %"$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_333" call void @_out_of_gas() - br label %"$have_gas_341" + br label %"$have_gas_344" -"$have_gas_341": ; preds = %"$out_of_gas_340", %"$have_gas_330" - %"$consume_342" = sub i64 %"$gasrem_338", 1 - store i64 %"$consume_342", i64* @_gasrem, align 8 +"$have_gas_344": ; preds = %"$out_of_gas_343", %"$have_gas_333" + %"$consume_345" = sub i64 %"$gasrem_341", 1 + store i64 %"$consume_345", i64* @_gasrem, align 8 %"$n1_6" = alloca %Uint256, align 8 - %"$gasrem_343" = load i64, i64* @_gasrem, align 8 - %"$gascmp_344" = icmp ugt i64 1, %"$gasrem_343" - br i1 %"$gascmp_344", label %"$out_of_gas_345", label %"$have_gas_346" + call void @llvm.dbg.declare(metadata %Uint256* %"$n1_6", metadata !76, metadata !DIExpression()), !dbg !78 + %"$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_345": ; preds = %"$have_gas_341" +"$out_of_gas_348": ; preds = %"$have_gas_344" call void @_out_of_gas() - br label %"$have_gas_346" + br label %"$have_gas_349" -"$have_gas_346": ; preds = %"$out_of_gas_345", %"$have_gas_341" - %"$consume_347" = sub i64 %"$gasrem_343", 1 - store i64 %"$consume_347", i64* @_gasrem, align 8 - store %Uint256 { i256 100 }, %Uint256* %"$n1_6", align 8, !dbg !40 - %"$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" +"$have_gas_349": ; preds = %"$out_of_gas_348", %"$have_gas_344" + %"$consume_350" = sub i64 %"$gasrem_346", 1 + store i64 %"$consume_350", i64* @_gasrem, align 8 + store %Uint256 { i256 100 }, %Uint256* %"$n1_6", align 8, !dbg !79 + %"$gasrem_351" = load i64, i64* @_gasrem, align 8 + %"$gascmp_352" = icmp ugt i64 1, %"$gasrem_351" + br i1 %"$gascmp_352", label %"$out_of_gas_353", label %"$have_gas_354" -"$out_of_gas_350": ; preds = %"$have_gas_346" +"$out_of_gas_353": ; preds = %"$have_gas_349" call void @_out_of_gas() - br label %"$have_gas_351" + br label %"$have_gas_354" -"$have_gas_351": ; preds = %"$out_of_gas_350", %"$have_gas_346" - %"$consume_352" = sub i64 %"$gasrem_348", 1 - store i64 %"$consume_352", i64* @_gasrem, align 8 +"$have_gas_354": ; preds = %"$out_of_gas_353", %"$have_gas_349" + %"$consume_355" = sub i64 %"$gasrem_351", 1 + store i64 %"$consume_355", i64* @_gasrem, align 8 %"$n2_7" = alloca %Uint256, align 8 - %"$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" + call void @llvm.dbg.declare(metadata %Uint256* %"$n2_7", metadata !80, metadata !DIExpression()), !dbg !81 + %"$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_355": ; preds = %"$have_gas_351" +"$out_of_gas_358": ; preds = %"$have_gas_354" call void @_out_of_gas() - br label %"$have_gas_356" + br label %"$have_gas_359" -"$have_gas_356": ; preds = %"$out_of_gas_355", %"$have_gas_351" - %"$consume_357" = sub i64 %"$gasrem_353", 1 - store i64 %"$consume_357", i64* @_gasrem, align 8 - store %Uint256 { i256 200 }, %Uint256* %"$n2_7", align 8, !dbg !41 - %"$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" +"$have_gas_359": ; preds = %"$out_of_gas_358", %"$have_gas_354" + %"$consume_360" = sub i64 %"$gasrem_356", 1 + store i64 %"$consume_360", i64* @_gasrem, align 8 + store %Uint256 { i256 200 }, %Uint256* %"$n2_7", align 8, !dbg !82 + %"$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_360": ; preds = %"$have_gas_356" +"$out_of_gas_363": ; preds = %"$have_gas_359" call void @_out_of_gas() - br label %"$have_gas_361" + br label %"$have_gas_364" -"$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 +"$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 %res5 = alloca %TName_Bool*, align 8 - %"$gasrem_364" = load i64, i64* @_gasrem, align 8 - %"$gascmp_365" = icmp ugt i64 16, %"$gasrem_364" - br i1 %"$gascmp_365", label %"$out_of_gas_366", label %"$have_gas_367" + call void @llvm.dbg.declare(metadata %TName_Bool** %res5, metadata !83, metadata !DIExpression()), !dbg !84 + %"$gasrem_367" = load i64, i64* @_gasrem, align 8 + %"$gascmp_368" = icmp ugt i64 16, %"$gasrem_367" + br i1 %"$gascmp_368", label %"$out_of_gas_369", label %"$have_gas_370" -"$out_of_gas_366": ; preds = %"$have_gas_361" +"$out_of_gas_369": ; preds = %"$have_gas_364" call void @_out_of_gas() - br label %"$have_gas_367" - -"$have_gas_367": ; preds = %"$out_of_gas_366", %"$have_gas_361" - %"$consume_368" = sub i64 %"$gasrem_364", 16 - store i64 %"$consume_368", i64* @_gasrem, align 8 - %"$execptr_load_369" = load i8*, i8** @_execptr, align 8 - %"$lt_$n1_6_370" = alloca %Uint256, align 8 - %"$$n1_6_371" = load %Uint256, %Uint256* %"$n1_6", align 8 - store %Uint256 %"$$n1_6_371", %Uint256* %"$lt_$n1_6_370", align 8 - %"$lt_$n2_7_372" = alloca %Uint256, align 8 - %"$$n2_7_373" = load %Uint256, %Uint256* %"$n2_7", align 8 - store %Uint256 %"$$n2_7_373", %Uint256* %"$lt_$n2_7_372", align 8 - %"$lt_call_374" = call %TName_Bool* @_lt_Uint256(i8* %"$execptr_load_369", %Uint256* %"$lt_$n1_6_370", %Uint256* %"$lt_$n2_7_372"), !dbg !42 - store %TName_Bool* %"$lt_call_374", %TName_Bool** %res5, align 8, !dbg !42 - %"$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 = %"$have_gas_367" + br label %"$have_gas_370" + +"$have_gas_370": ; preds = %"$out_of_gas_369", %"$have_gas_364" + %"$consume_371" = sub i64 %"$gasrem_367", 16 + store i64 %"$consume_371", i64* @_gasrem, align 8 + %"$execptr_load_372" = load i8*, i8** @_execptr, align 8 + %"$lt_$n1_6_373" = alloca %Uint256, align 8 + %"$$n1_6_374" = load %Uint256, %Uint256* %"$n1_6", align 8 + store %Uint256 %"$$n1_6_374", %Uint256* %"$lt_$n1_6_373", align 8 + %"$lt_$n2_7_375" = alloca %Uint256, align 8 + %"$$n2_7_376" = load %Uint256, %Uint256* %"$n2_7", align 8 + store %Uint256 %"$$n2_7_376", %Uint256* %"$lt_$n2_7_375", align 8 + %"$lt_call_377" = call %TName_Bool* @_lt_Uint256(i8* %"$execptr_load_372", %Uint256* %"$lt_$n1_6_373", %Uint256* %"$lt_$n2_7_375"), !dbg !85 + store %TName_Bool* %"$lt_call_377", %TName_Bool** %res5, align 8, !dbg !85 + %"$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 = %"$have_gas_370" call void @_out_of_gas() - br label %"$have_gas_379" + br label %"$have_gas_382" -"$have_gas_379": ; preds = %"$out_of_gas_378", %"$have_gas_367" - %"$consume_380" = sub i64 %"$gasrem_376", 1 - store i64 %"$consume_380", i64* @_gasrem, align 8 +"$have_gas_382": ; preds = %"$out_of_gas_381", %"$have_gas_370" + %"$consume_383" = sub i64 %"$gasrem_379", 1 + store i64 %"$consume_383", i64* @_gasrem, align 8 %res6n = alloca %TName_Bool*, align 8 - %"$gasrem_382" = load i64, i64* @_gasrem, align 8 - %"$gascmp_383" = icmp ugt i64 16, %"$gasrem_382" - br i1 %"$gascmp_383", label %"$out_of_gas_384", label %"$have_gas_385" + call void @llvm.dbg.declare(metadata %TName_Bool** %res6n, metadata !86, metadata !DIExpression()), !dbg !87 + %"$gasrem_385" = load i64, i64* @_gasrem, align 8 + %"$gascmp_386" = icmp ugt i64 16, %"$gasrem_385" + br i1 %"$gascmp_386", label %"$out_of_gas_387", label %"$have_gas_388" -"$out_of_gas_384": ; preds = %"$have_gas_379" +"$out_of_gas_387": ; preds = %"$have_gas_382" call void @_out_of_gas() - br label %"$have_gas_385" - -"$have_gas_385": ; preds = %"$out_of_gas_384", %"$have_gas_379" - %"$consume_386" = sub i64 %"$gasrem_382", 16 - store i64 %"$consume_386", i64* @_gasrem, align 8 - %"$execptr_load_387" = load i8*, i8** @_execptr, align 8 - %"$lt_$n2_7_388" = alloca %Uint256, align 8 - %"$$n2_7_389" = load %Uint256, %Uint256* %"$n2_7", align 8 - store %Uint256 %"$$n2_7_389", %Uint256* %"$lt_$n2_7_388", align 8 - %"$lt_$n1_6_390" = alloca %Uint256, align 8 - %"$$n1_6_391" = load %Uint256, %Uint256* %"$n1_6", align 8 - store %Uint256 %"$$n1_6_391", %Uint256* %"$lt_$n1_6_390", align 8 - %"$lt_call_392" = call %TName_Bool* @_lt_Uint256(i8* %"$execptr_load_387", %Uint256* %"$lt_$n2_7_388", %Uint256* %"$lt_$n1_6_390"), !dbg !43 - store %TName_Bool* %"$lt_call_392", %TName_Bool** %res6n, align 8, !dbg !43 - %"$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 = %"$have_gas_385" + br label %"$have_gas_388" + +"$have_gas_388": ; preds = %"$out_of_gas_387", %"$have_gas_382" + %"$consume_389" = sub i64 %"$gasrem_385", 16 + store i64 %"$consume_389", i64* @_gasrem, align 8 + %"$execptr_load_390" = load i8*, i8** @_execptr, align 8 + %"$lt_$n2_7_391" = alloca %Uint256, align 8 + %"$$n2_7_392" = load %Uint256, %Uint256* %"$n2_7", align 8 + store %Uint256 %"$$n2_7_392", %Uint256* %"$lt_$n2_7_391", align 8 + %"$lt_$n1_6_393" = alloca %Uint256, align 8 + %"$$n1_6_394" = load %Uint256, %Uint256* %"$n1_6", align 8 + store %Uint256 %"$$n1_6_394", %Uint256* %"$lt_$n1_6_393", align 8 + %"$lt_call_395" = call %TName_Bool* @_lt_Uint256(i8* %"$execptr_load_390", %Uint256* %"$lt_$n2_7_391", %Uint256* %"$lt_$n1_6_393"), !dbg !88 + store %TName_Bool* %"$lt_call_395", %TName_Bool** %res6n, align 8, !dbg !88 + %"$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 = %"$have_gas_388" call void @_out_of_gas() - br label %"$have_gas_397" + br label %"$have_gas_400" -"$have_gas_397": ; preds = %"$out_of_gas_396", %"$have_gas_385" - %"$consume_398" = sub i64 %"$gasrem_394", 1 - store i64 %"$consume_398", i64* @_gasrem, align 8 +"$have_gas_400": ; preds = %"$out_of_gas_399", %"$have_gas_388" + %"$consume_401" = sub i64 %"$gasrem_397", 1 + store i64 %"$consume_401", i64* @_gasrem, align 8 %res6 = alloca %TName_Bool*, align 8 - %"$gasrem_399" = load i64, i64* @_gasrem, align 8 - %"$gascmp_400" = icmp ugt i64 1, %"$gasrem_399" - br i1 %"$gascmp_400", label %"$out_of_gas_401", label %"$have_gas_402" + call void @llvm.dbg.declare(metadata %TName_Bool** %res6, metadata !89, metadata !DIExpression()), !dbg !90 + %"$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_401": ; preds = %"$have_gas_397" +"$out_of_gas_404": ; preds = %"$have_gas_400" call void @_out_of_gas() - br label %"$have_gas_402" + br label %"$have_gas_405" -"$have_gas_402": ; preds = %"$out_of_gas_401", %"$have_gas_397" - %"$consume_403" = sub i64 %"$gasrem_399", 1 - store i64 %"$consume_403", i64* @_gasrem, align 8 +"$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 %"$BoolUtils.negb_10" = alloca %TName_Bool*, align 8 - %"$BoolUtils.negb_404" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* @BoolUtils.negb, align 8 - %"$BoolUtils.negb_fptr_405" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.negb_404", 0 - %"$BoolUtils.negb_envptr_406" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.negb_404", 1 - %"$res6n_407" = load %TName_Bool*, %TName_Bool** %res6n, align 8 - %"$BoolUtils.negb_call_408" = call %TName_Bool* %"$BoolUtils.negb_fptr_405"(i8* %"$BoolUtils.negb_envptr_406", %TName_Bool* %"$res6n_407"), !dbg !44 - store %TName_Bool* %"$BoolUtils.negb_call_408", %TName_Bool** %"$BoolUtils.negb_10", align 8, !dbg !44 - %"$$BoolUtils.negb_10_409" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.negb_10", align 8 - store %TName_Bool* %"$$BoolUtils.negb_10_409", %TName_Bool** %res6, align 8, !dbg !44 - %"$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_402" + call void @llvm.dbg.declare(metadata %TName_Bool** %"$BoolUtils.negb_10", metadata !91, metadata !DIExpression()), !dbg !92 + %"$BoolUtils.negb_407" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* @BoolUtils.negb, align 8 + %"$BoolUtils.negb_fptr_408" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.negb_407", 0 + %"$BoolUtils.negb_envptr_409" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.negb_407", 1 + %"$res6n_410" = load %TName_Bool*, %TName_Bool** %res6n, align 8 + %"$BoolUtils.negb_call_411" = call %TName_Bool* %"$BoolUtils.negb_fptr_408"(i8* %"$BoolUtils.negb_envptr_409", %TName_Bool* %"$res6n_410"), !dbg !92 + store %TName_Bool* %"$BoolUtils.negb_call_411", %TName_Bool** %"$BoolUtils.negb_10", align 8, !dbg !92 + %"$$BoolUtils.negb_10_412" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.negb_10", align 8 + store %TName_Bool* %"$$BoolUtils.negb_10_412", %TName_Bool** %res6, align 8, !dbg !92 + %"$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_413" + br label %"$have_gas_416" -"$have_gas_413": ; preds = %"$out_of_gas_412", %"$have_gas_402" - %"$consume_414" = sub i64 %"$gasrem_410", 1 - store i64 %"$consume_414", i64* @_gasrem, align 8 +"$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 %res7 = alloca %TName_Bool*, 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" + call void @llvm.dbg.declare(metadata %TName_Bool** %res7, metadata !93, metadata !DIExpression()), !dbg !94 + %"$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_417": ; preds = %"$have_gas_413" +"$out_of_gas_420": ; preds = %"$have_gas_416" call void @_out_of_gas() - br label %"$have_gas_418" + br label %"$have_gas_421" -"$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 +"$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 %"$BoolUtils.andb_11" = alloca { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, align 8 - %"$BoolUtils.andb_420" = 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_421" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_420", 0 - %"$BoolUtils.andb_envptr_422" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_420", 1 - %"$res1_423" = load %TName_Bool*, %TName_Bool** %res1, align 8 - %"$BoolUtils.andb_call_424" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_421"(i8* %"$BoolUtils.andb_envptr_422", %TName_Bool* %"$res1_423"), !dbg !45 - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_424", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_11", align 8, !dbg !45 + %"$BoolUtils.andb_423" = 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_424" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_423", 0 + %"$BoolUtils.andb_envptr_425" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_423", 1 + %"$res1_426" = load %TName_Bool*, %TName_Bool** %res1, align 8 + %"$BoolUtils.andb_call_427" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_424"(i8* %"$BoolUtils.andb_envptr_425", %TName_Bool* %"$res1_426"), !dbg !95 + store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_427", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_11", align 8, !dbg !95 %"$BoolUtils.andb_12" = alloca %TName_Bool*, align 8 - %"$$BoolUtils.andb_11_425" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_11", align 8 - %"$$BoolUtils.andb_11_fptr_426" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_11_425", 0 - %"$$BoolUtils.andb_11_envptr_427" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_11_425", 1 - %"$res2_428" = load %TName_Bool*, %TName_Bool** %res2, align 8 - %"$$BoolUtils.andb_11_call_429" = call %TName_Bool* %"$$BoolUtils.andb_11_fptr_426"(i8* %"$$BoolUtils.andb_11_envptr_427", %TName_Bool* %"$res2_428"), !dbg !45 - store %TName_Bool* %"$$BoolUtils.andb_11_call_429", %TName_Bool** %"$BoolUtils.andb_12", align 8, !dbg !45 - %"$$BoolUtils.andb_12_430" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_12", align 8 - store %TName_Bool* %"$$BoolUtils.andb_12_430", %TName_Bool** %res7, align 8, !dbg !45 - %"$gasrem_431" = load i64, i64* @_gasrem, align 8 - %"$gascmp_432" = icmp ugt i64 1, %"$gasrem_431" - br i1 %"$gascmp_432", label %"$out_of_gas_433", label %"$have_gas_434" - -"$out_of_gas_433": ; preds = %"$have_gas_418" + call void @llvm.dbg.declare(metadata %TName_Bool** %"$BoolUtils.andb_12", metadata !96, metadata !DIExpression()), !dbg !95 + %"$$BoolUtils.andb_11_428" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_11", align 8 + %"$$BoolUtils.andb_11_fptr_429" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_11_428", 0 + %"$$BoolUtils.andb_11_envptr_430" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_11_428", 1 + %"$res2_431" = load %TName_Bool*, %TName_Bool** %res2, align 8 + %"$$BoolUtils.andb_11_call_432" = call %TName_Bool* %"$$BoolUtils.andb_11_fptr_429"(i8* %"$$BoolUtils.andb_11_envptr_430", %TName_Bool* %"$res2_431"), !dbg !95 + store %TName_Bool* %"$$BoolUtils.andb_11_call_432", %TName_Bool** %"$BoolUtils.andb_12", align 8, !dbg !95 + %"$$BoolUtils.andb_12_433" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_12", align 8 + store %TName_Bool* %"$$BoolUtils.andb_12_433", %TName_Bool** %res7, align 8, !dbg !95 + %"$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_421" call void @_out_of_gas() - br label %"$have_gas_434" + br label %"$have_gas_437" -"$have_gas_434": ; preds = %"$out_of_gas_433", %"$have_gas_418" - %"$consume_435" = sub i64 %"$gasrem_431", 1 - store i64 %"$consume_435", i64* @_gasrem, align 8 +"$have_gas_437": ; preds = %"$out_of_gas_436", %"$have_gas_421" + %"$consume_438" = sub i64 %"$gasrem_434", 1 + store i64 %"$consume_438", i64* @_gasrem, align 8 %res8 = alloca %TName_Bool*, 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" + call void @llvm.dbg.declare(metadata %TName_Bool** %res8, metadata !97, metadata !DIExpression()), !dbg !98 + %"$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_438": ; preds = %"$have_gas_434" +"$out_of_gas_441": ; preds = %"$have_gas_437" call void @_out_of_gas() - br label %"$have_gas_439" + br label %"$have_gas_442" -"$have_gas_439": ; preds = %"$out_of_gas_438", %"$have_gas_434" - %"$consume_440" = sub i64 %"$gasrem_436", 1 - store i64 %"$consume_440", i64* @_gasrem, align 8 +"$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 %"$BoolUtils.andb_13" = alloca { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, align 8 - %"$BoolUtils.andb_441" = 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_442" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_441", 0 - %"$BoolUtils.andb_envptr_443" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_441", 1 - %"$res3_444" = load %TName_Bool*, %TName_Bool** %res3, align 8 - %"$BoolUtils.andb_call_445" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_442"(i8* %"$BoolUtils.andb_envptr_443", %TName_Bool* %"$res3_444"), !dbg !46 - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_445", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_13", align 8, !dbg !46 + %"$BoolUtils.andb_444" = 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_445" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_444", 0 + %"$BoolUtils.andb_envptr_446" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_444", 1 + %"$res3_447" = load %TName_Bool*, %TName_Bool** %res3, align 8 + %"$BoolUtils.andb_call_448" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_445"(i8* %"$BoolUtils.andb_envptr_446", %TName_Bool* %"$res3_447"), !dbg !99 + store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_448", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_13", align 8, !dbg !99 %"$BoolUtils.andb_14" = alloca %TName_Bool*, align 8 - %"$$BoolUtils.andb_13_446" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_13", align 8 - %"$$BoolUtils.andb_13_fptr_447" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_13_446", 0 - %"$$BoolUtils.andb_13_envptr_448" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_13_446", 1 - %"$res4_449" = load %TName_Bool*, %TName_Bool** %res4, align 8 - %"$$BoolUtils.andb_13_call_450" = call %TName_Bool* %"$$BoolUtils.andb_13_fptr_447"(i8* %"$$BoolUtils.andb_13_envptr_448", %TName_Bool* %"$res4_449"), !dbg !46 - store %TName_Bool* %"$$BoolUtils.andb_13_call_450", %TName_Bool** %"$BoolUtils.andb_14", align 8, !dbg !46 - %"$$BoolUtils.andb_14_451" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_14", align 8 - store %TName_Bool* %"$$BoolUtils.andb_14_451", %TName_Bool** %res8, align 8, !dbg !46 - %"$gasrem_452" = load i64, i64* @_gasrem, align 8 - %"$gascmp_453" = icmp ugt i64 1, %"$gasrem_452" - br i1 %"$gascmp_453", label %"$out_of_gas_454", label %"$have_gas_455" - -"$out_of_gas_454": ; preds = %"$have_gas_439" + call void @llvm.dbg.declare(metadata %TName_Bool** %"$BoolUtils.andb_14", metadata !100, metadata !DIExpression()), !dbg !99 + %"$$BoolUtils.andb_13_449" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_13", align 8 + %"$$BoolUtils.andb_13_fptr_450" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_13_449", 0 + %"$$BoolUtils.andb_13_envptr_451" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_13_449", 1 + %"$res4_452" = load %TName_Bool*, %TName_Bool** %res4, align 8 + %"$$BoolUtils.andb_13_call_453" = call %TName_Bool* %"$$BoolUtils.andb_13_fptr_450"(i8* %"$$BoolUtils.andb_13_envptr_451", %TName_Bool* %"$res4_452"), !dbg !99 + store %TName_Bool* %"$$BoolUtils.andb_13_call_453", %TName_Bool** %"$BoolUtils.andb_14", align 8, !dbg !99 + %"$$BoolUtils.andb_14_454" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_14", align 8 + store %TName_Bool* %"$$BoolUtils.andb_14_454", %TName_Bool** %res8, align 8, !dbg !99 + %"$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 = %"$have_gas_442" call void @_out_of_gas() - br label %"$have_gas_455" + br label %"$have_gas_458" -"$have_gas_455": ; preds = %"$out_of_gas_454", %"$have_gas_439" - %"$consume_456" = sub i64 %"$gasrem_452", 1 - store i64 %"$consume_456", i64* @_gasrem, align 8 +"$have_gas_458": ; preds = %"$out_of_gas_457", %"$have_gas_442" + %"$consume_459" = sub i64 %"$gasrem_455", 1 + store i64 %"$consume_459", i64* @_gasrem, align 8 %res9 = alloca %TName_Bool*, align 8 - %"$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" + call void @llvm.dbg.declare(metadata %TName_Bool** %res9, metadata !101, metadata !DIExpression()), !dbg !102 + %"$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_459": ; preds = %"$have_gas_455" +"$out_of_gas_462": ; preds = %"$have_gas_458" call void @_out_of_gas() - br label %"$have_gas_460" + br label %"$have_gas_463" -"$have_gas_460": ; preds = %"$out_of_gas_459", %"$have_gas_455" - %"$consume_461" = sub i64 %"$gasrem_457", 1 - store i64 %"$consume_461", 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 %"$BoolUtils.andb_15" = alloca { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, align 8 - %"$BoolUtils.andb_462" = 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_463" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_462", 0 - %"$BoolUtils.andb_envptr_464" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_462", 1 - %"$res5_465" = load %TName_Bool*, %TName_Bool** %res5, align 8 - %"$BoolUtils.andb_call_466" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_463"(i8* %"$BoolUtils.andb_envptr_464", %TName_Bool* %"$res5_465"), !dbg !47 - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_466", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_15", align 8, !dbg !47 + %"$BoolUtils.andb_465" = 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_466" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_465", 0 + %"$BoolUtils.andb_envptr_467" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_465", 1 + %"$res5_468" = load %TName_Bool*, %TName_Bool** %res5, align 8 + %"$BoolUtils.andb_call_469" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_466"(i8* %"$BoolUtils.andb_envptr_467", %TName_Bool* %"$res5_468"), !dbg !103 + store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_469", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_15", align 8, !dbg !103 %"$BoolUtils.andb_16" = alloca %TName_Bool*, align 8 - %"$$BoolUtils.andb_15_467" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_15", align 8 - %"$$BoolUtils.andb_15_fptr_468" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_15_467", 0 - %"$$BoolUtils.andb_15_envptr_469" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_15_467", 1 - %"$res6_470" = load %TName_Bool*, %TName_Bool** %res6, align 8 - %"$$BoolUtils.andb_15_call_471" = call %TName_Bool* %"$$BoolUtils.andb_15_fptr_468"(i8* %"$$BoolUtils.andb_15_envptr_469", %TName_Bool* %"$res6_470"), !dbg !47 - store %TName_Bool* %"$$BoolUtils.andb_15_call_471", %TName_Bool** %"$BoolUtils.andb_16", align 8, !dbg !47 - %"$$BoolUtils.andb_16_472" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_16", align 8 - store %TName_Bool* %"$$BoolUtils.andb_16_472", %TName_Bool** %res9, align 8, !dbg !47 - %"$gasrem_473" = load i64, i64* @_gasrem, align 8 - %"$gascmp_474" = icmp ugt i64 1, %"$gasrem_473" - br i1 %"$gascmp_474", label %"$out_of_gas_475", label %"$have_gas_476" - -"$out_of_gas_475": ; preds = %"$have_gas_460" + call void @llvm.dbg.declare(metadata %TName_Bool** %"$BoolUtils.andb_16", metadata !104, metadata !DIExpression()), !dbg !103 + %"$$BoolUtils.andb_15_470" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_15", align 8 + %"$$BoolUtils.andb_15_fptr_471" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_15_470", 0 + %"$$BoolUtils.andb_15_envptr_472" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_15_470", 1 + %"$res6_473" = load %TName_Bool*, %TName_Bool** %res6, align 8 + %"$$BoolUtils.andb_15_call_474" = call %TName_Bool* %"$$BoolUtils.andb_15_fptr_471"(i8* %"$$BoolUtils.andb_15_envptr_472", %TName_Bool* %"$res6_473"), !dbg !103 + store %TName_Bool* %"$$BoolUtils.andb_15_call_474", %TName_Bool** %"$BoolUtils.andb_16", align 8, !dbg !103 + %"$$BoolUtils.andb_16_475" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_16", align 8 + store %TName_Bool* %"$$BoolUtils.andb_16_475", %TName_Bool** %res9, align 8, !dbg !103 + %"$gasrem_476" = load i64, i64* @_gasrem, align 8 + %"$gascmp_477" = icmp ugt i64 1, %"$gasrem_476" + br i1 %"$gascmp_477", label %"$out_of_gas_478", label %"$have_gas_479" + +"$out_of_gas_478": ; preds = %"$have_gas_463" call void @_out_of_gas() - br label %"$have_gas_476" + br label %"$have_gas_479" -"$have_gas_476": ; preds = %"$out_of_gas_475", %"$have_gas_460" - %"$consume_477" = sub i64 %"$gasrem_473", 1 - store i64 %"$consume_477", i64* @_gasrem, align 8 +"$have_gas_479": ; preds = %"$out_of_gas_478", %"$have_gas_463" + %"$consume_480" = sub i64 %"$gasrem_476", 1 + store i64 %"$consume_480", i64* @_gasrem, align 8 %res10 = alloca %TName_Bool*, 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" + call void @llvm.dbg.declare(metadata %TName_Bool** %res10, metadata !105, metadata !DIExpression()), !dbg !106 + %"$gasrem_481" = load i64, i64* @_gasrem, align 8 + %"$gascmp_482" = icmp ugt i64 1, %"$gasrem_481" + br i1 %"$gascmp_482", label %"$out_of_gas_483", label %"$have_gas_484" -"$out_of_gas_480": ; preds = %"$have_gas_476" +"$out_of_gas_483": ; preds = %"$have_gas_479" call void @_out_of_gas() - br label %"$have_gas_481" + br label %"$have_gas_484" -"$have_gas_481": ; preds = %"$out_of_gas_480", %"$have_gas_476" - %"$consume_482" = sub i64 %"$gasrem_478", 1 - store i64 %"$consume_482", i64* @_gasrem, align 8 +"$have_gas_484": ; preds = %"$out_of_gas_483", %"$have_gas_479" + %"$consume_485" = sub i64 %"$gasrem_481", 1 + store i64 %"$consume_485", i64* @_gasrem, align 8 %"$BoolUtils.andb_17" = alloca { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, align 8 - %"$BoolUtils.andb_483" = 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_484" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_483", 0 - %"$BoolUtils.andb_envptr_485" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_483", 1 - %"$res7_486" = load %TName_Bool*, %TName_Bool** %res7, align 8 - %"$BoolUtils.andb_call_487" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_484"(i8* %"$BoolUtils.andb_envptr_485", %TName_Bool* %"$res7_486"), !dbg !48 - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_487", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_17", align 8, !dbg !48 + %"$BoolUtils.andb_486" = 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_487" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_486", 0 + %"$BoolUtils.andb_envptr_488" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_486", 1 + %"$res7_489" = load %TName_Bool*, %TName_Bool** %res7, align 8 + %"$BoolUtils.andb_call_490" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_487"(i8* %"$BoolUtils.andb_envptr_488", %TName_Bool* %"$res7_489"), !dbg !107 + store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_490", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_17", align 8, !dbg !107 %"$BoolUtils.andb_18" = alloca %TName_Bool*, align 8 - %"$$BoolUtils.andb_17_488" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_17", align 8 - %"$$BoolUtils.andb_17_fptr_489" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_17_488", 0 - %"$$BoolUtils.andb_17_envptr_490" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_17_488", 1 - %"$res8_491" = load %TName_Bool*, %TName_Bool** %res8, align 8 - %"$$BoolUtils.andb_17_call_492" = call %TName_Bool* %"$$BoolUtils.andb_17_fptr_489"(i8* %"$$BoolUtils.andb_17_envptr_490", %TName_Bool* %"$res8_491"), !dbg !48 - store %TName_Bool* %"$$BoolUtils.andb_17_call_492", %TName_Bool** %"$BoolUtils.andb_18", align 8, !dbg !48 - %"$$BoolUtils.andb_18_493" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_18", align 8 - store %TName_Bool* %"$$BoolUtils.andb_18_493", %TName_Bool** %res10, align 8, !dbg !48 - %"$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_481" + call void @llvm.dbg.declare(metadata %TName_Bool** %"$BoolUtils.andb_18", metadata !108, metadata !DIExpression()), !dbg !107 + %"$$BoolUtils.andb_17_491" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_17", align 8 + %"$$BoolUtils.andb_17_fptr_492" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_17_491", 0 + %"$$BoolUtils.andb_17_envptr_493" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_17_491", 1 + %"$res8_494" = load %TName_Bool*, %TName_Bool** %res8, align 8 + %"$$BoolUtils.andb_17_call_495" = call %TName_Bool* %"$$BoolUtils.andb_17_fptr_492"(i8* %"$$BoolUtils.andb_17_envptr_493", %TName_Bool* %"$res8_494"), !dbg !107 + store %TName_Bool* %"$$BoolUtils.andb_17_call_495", %TName_Bool** %"$BoolUtils.andb_18", align 8, !dbg !107 + %"$$BoolUtils.andb_18_496" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_18", align 8 + store %TName_Bool* %"$$BoolUtils.andb_18_496", %TName_Bool** %res10, align 8, !dbg !107 + %"$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_499": ; preds = %"$have_gas_484" call void @_out_of_gas() - br label %"$have_gas_497" + br label %"$have_gas_500" -"$have_gas_497": ; preds = %"$out_of_gas_496", %"$have_gas_481" - %"$consume_498" = sub i64 %"$gasrem_494", 1 - store i64 %"$consume_498", i64* @_gasrem, align 8 +"$have_gas_500": ; preds = %"$out_of_gas_499", %"$have_gas_484" + %"$consume_501" = sub i64 %"$gasrem_497", 1 + store i64 %"$consume_501", i64* @_gasrem, align 8 %"$BoolUtils.andb_19" = alloca { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, align 8 - %"$BoolUtils.andb_499" = 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_500" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_499", 0 - %"$BoolUtils.andb_envptr_501" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_499", 1 - %"$res9_502" = load %TName_Bool*, %TName_Bool** %res9, align 8 - %"$BoolUtils.andb_call_503" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_500"(i8* %"$BoolUtils.andb_envptr_501", %TName_Bool* %"$res9_502"), !dbg !49 - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_503", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_19", align 8, !dbg !49 + %"$BoolUtils.andb_502" = 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_503" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_502", 0 + %"$BoolUtils.andb_envptr_504" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_502", 1 + %"$res9_505" = load %TName_Bool*, %TName_Bool** %res9, align 8 + %"$BoolUtils.andb_call_506" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_503"(i8* %"$BoolUtils.andb_envptr_504", %TName_Bool* %"$res9_505"), !dbg !109 + store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_506", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_19", align 8, !dbg !109 %"$BoolUtils.andb_20" = alloca %TName_Bool*, align 8 - %"$$BoolUtils.andb_19_504" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_19", align 8 - %"$$BoolUtils.andb_19_fptr_505" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_19_504", 0 - %"$$BoolUtils.andb_19_envptr_506" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_19_504", 1 - %"$res10_507" = load %TName_Bool*, %TName_Bool** %res10, align 8 - %"$$BoolUtils.andb_19_call_508" = call %TName_Bool* %"$$BoolUtils.andb_19_fptr_505"(i8* %"$$BoolUtils.andb_19_envptr_506", %TName_Bool* %"$res10_507"), !dbg !49 - store %TName_Bool* %"$$BoolUtils.andb_19_call_508", %TName_Bool** %"$BoolUtils.andb_20", align 8, !dbg !49 - %"$$BoolUtils.andb_20_509" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_20", align 8 - store %TName_Bool* %"$$BoolUtils.andb_20_509", %TName_Bool** %"$expr_27", align 8, !dbg !49 - %"$$expr_27_510" = load %TName_Bool*, %TName_Bool** %"$expr_27", align 8 - ret %TName_Bool* %"$$expr_27_510" + call void @llvm.dbg.declare(metadata %TName_Bool** %"$BoolUtils.andb_20", metadata !110, metadata !DIExpression()), !dbg !109 + %"$$BoolUtils.andb_19_507" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_19", align 8 + %"$$BoolUtils.andb_19_fptr_508" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_19_507", 0 + %"$$BoolUtils.andb_19_envptr_509" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_19_507", 1 + %"$res10_510" = load %TName_Bool*, %TName_Bool** %res10, align 8 + %"$$BoolUtils.andb_19_call_511" = call %TName_Bool* %"$$BoolUtils.andb_19_fptr_508"(i8* %"$$BoolUtils.andb_19_envptr_509", %TName_Bool* %"$res10_510"), !dbg !109 + store %TName_Bool* %"$$BoolUtils.andb_19_call_511", %TName_Bool** %"$BoolUtils.andb_20", align 8, !dbg !109 + %"$$BoolUtils.andb_20_512" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_20", align 8 + store %TName_Bool* %"$$BoolUtils.andb_20_512", %TName_Bool** %"$expr_27", align 8, !dbg !109 + %"$$expr_27_513" = load %TName_Bool*, %TName_Bool** %"$expr_27", align 8 + ret %TName_Bool* %"$$expr_27_513" } declare i8* @_new_bnum(i8*, %BNumString) @@ -1005,63 +1047,126 @@ declare void @_print_scilla_val(i8*, %_TyDescrTy_Typ*, i8*) define void @scilla_main() { entry: - %"$exprval_511" = call %TName_Bool* @_scilla_expr_fun(i8* null) - %"$memvoidcast_512" = bitcast %TName_Bool* %"$exprval_511" to i8* - %"$execptr_load_513" = load i8*, i8** @_execptr, align 8 - call void @_print_scilla_val(i8* %"$execptr_load_513", %_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_62", i8* %"$memvoidcast_512") + %"$exprval_514" = call %TName_Bool* @_scilla_expr_fun(i8* null) + %"$memvoidcast_515" = bitcast %TName_Bool* %"$exprval_514" to i8* + %"$execptr_load_516" = load i8*, i8** @_execptr, align 8 + call void @_print_scilla_val(i8* %"$execptr_load_516", %_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_62", i8* %"$memvoidcast_515") ret void } +attributes #0 = { nocallback nofree nosync nounwind readnone speculatable willreturn } + !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) +!1 = distinct !DICompileUnit(language: DW_LANG_C89, file: !2, producer: "Scilla Compiler", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false) !2 = !DIFile(filename: "builtin_lt.scilexp", directory: "codegen/expr") -!3 = !{} -!4 = distinct !DISubprogram(name: "$fundef_21", linkageName: "$fundef_21", scope: !5, file: !5, line: 22, type: !6, scopeLine: 22, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!5 = !DIFile(filename: "BoolUtils.scillib", directory: "../src/stdlib") -!6 = !DISubroutineType(types: !7) -!7 = !{!8} -!8 = !DIBasicType(tag: DW_TAG_unspecified_type, name: "void") -!9 = !DILocation(line: 22, column: 5, scope: !4) -!10 = !DILocation(line: 23, column: 15, scope: !11) -!11 = distinct !DILexicalBlock(scope: !12, file: !5, line: 23, column: 7) -!12 = distinct !DILexicalBlock(scope: !4, file: !5, line: 22, column: 5) -!13 = !DILocation(line: 24, column: 16, scope: !14) -!14 = distinct !DILexicalBlock(scope: !12, file: !5, line: 24, column: 7) -!15 = 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) -!16 = !DILocation(line: 8, column: 5, scope: !15) -!17 = !DILocation(line: 9, column: 16, scope: !18) -!18 = distinct !DILexicalBlock(scope: !19, file: !5, line: 9, column: 7) -!19 = distinct !DILexicalBlock(scope: !15, file: !5, line: 8, column: 5) -!20 = !DILocation(line: 10, column: 16, scope: !21) -!21 = distinct !DILexicalBlock(scope: !19, file: !5, line: 10, column: 7) -!22 = 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) -!23 = !DILocation(line: 8, column: 5, scope: !22) -!24 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !25, file: !25, type: !6, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!25 = !DIFile(filename: ".", directory: ".") -!26 = !DILocation(line: 0, scope: !24) -!27 = !DILocation(line: 7, column: 3, scope: !24) -!28 = !DILocation(line: 22, column: 5, scope: !24) -!29 = distinct !DISubprogram(name: "_scilla_expr_fun", linkageName: "_scilla_expr_fun", scope: !2, file: !2, line: 1, type: !6, scopeLine: 1, spFlags: DISPFlagDefinition, unit: !1, retainedNodes: !3) -!30 = !DILocation(line: 1, column: 11, scope: !29) -!31 = !DILocation(line: 2, column: 11, scope: !29) -!32 = !DILocation(line: 3, column: 12, scope: !29) -!33 = !DILocation(line: 4, column: 13, scope: !29) -!34 = !DILocation(line: 5, column: 12, scope: !29) -!35 = !DILocation(line: 7, column: 10, scope: !29) -!36 = !DILocation(line: 8, column: 10, scope: !29) -!37 = !DILocation(line: 9, column: 12, scope: !29) -!38 = !DILocation(line: 10, column: 13, scope: !29) -!39 = !DILocation(line: 11, column: 12, scope: !29) -!40 = !DILocation(line: 13, column: 10, scope: !29) -!41 = !DILocation(line: 14, column: 10, scope: !29) -!42 = !DILocation(line: 15, column: 12, scope: !29) -!43 = !DILocation(line: 16, column: 13, scope: !29) -!44 = !DILocation(line: 17, column: 12, scope: !29) -!45 = !DILocation(line: 19, column: 12, scope: !29) -!46 = !DILocation(line: 20, column: 12, scope: !29) -!47 = !DILocation(line: 21, column: 12, scope: !29) -!48 = !DILocation(line: 22, column: 13, scope: !29) -!49 = !DILocation(line: 23, column: 1, scope: !29) +!3 = distinct !DISubprogram(name: "$fundef_21", linkageName: "$fundef_21", scope: !4, file: !4, line: 22, type: !5, scopeLine: 22, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!4 = !DIFile(filename: "BoolUtils.scillib", directory: "../src/stdlib") +!5 = !DISubroutineType(types: !6) +!6 = !{!7} +!7 = !DIBasicType(tag: DW_TAG_unspecified_type, name: "void") +!8 = !{} +!9 = !DILocalVariable(name: "b", scope: !3, file: !4, line: 21, type: !10) +!10 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "Bool", baseType: !11, size: 8, align: 8, dwarfAddressSpace: 0) +!11 = !DIBasicType(name: "Bool", size: 8) +!12 = !DILocation(line: 21, column: 8, scope: !3) +!13 = !DILocalVariable(name: "$retval_22", scope: !3, file: !4, line: 22, type: !10) +!14 = !DILocation(line: 22, column: 5, scope: !3) +!15 = !DILocation(line: 23, column: 15, scope: !16) +!16 = distinct !DILexicalBlock(scope: !17, file: !4, line: 23, column: 7) +!17 = distinct !DILexicalBlock(scope: !3, file: !4, line: 22, column: 5) +!18 = !DILocation(line: 24, column: 16, scope: !19) +!19 = distinct !DILexicalBlock(scope: !17, file: !4, line: 24, column: 7) +!20 = distinct !DISubprogram(name: "$fundef_25", linkageName: "$fundef_25", scope: !4, file: !4, line: 8, type: !5, scopeLine: 8, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!21 = !DILocalVariable(name: "c", scope: !20, file: !4, line: 7, type: !10) +!22 = !DILocation(line: 7, column: 8, scope: !20) +!23 = !DILocalVariable(name: "$retval_26", scope: !20, file: !4, line: 8, type: !10) +!24 = !DILocation(line: 8, column: 5, scope: !20) +!25 = !DILocation(line: 9, column: 16, scope: !26) +!26 = distinct !DILexicalBlock(scope: !27, file: !4, line: 9, column: 7) +!27 = distinct !DILexicalBlock(scope: !20, file: !4, line: 8, column: 5) +!28 = !DILocation(line: 10, column: 16, scope: !29) +!29 = distinct !DILexicalBlock(scope: !27, file: !4, line: 10, column: 7) +!30 = distinct !DISubprogram(name: "$fundef_23", linkageName: "$fundef_23", scope: !4, file: !4, line: 7, type: !5, scopeLine: 7, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!31 = !DILocalVariable(name: "b", scope: !30, file: !4, line: 6, type: !10) +!32 = !DILocation(line: 6, column: 8, scope: !30) +!33 = !DILocation(line: 8, column: 5, scope: !30) +!34 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !35, file: !35, type: !5, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!35 = !DIFile(filename: ".", directory: ".") +!36 = !DILocation(line: 0, scope: !34) +!37 = !DILocation(line: 7, column: 3, scope: !34) +!38 = !DILocation(line: 22, column: 5, scope: !34) +!39 = distinct !DISubprogram(name: "_scilla_expr_fun", linkageName: "_scilla_expr_fun", scope: !2, file: !2, line: 1, type: !5, scopeLine: 1, spFlags: DISPFlagDefinition, unit: !1, retainedNodes: !8) +!40 = !DILocalVariable(name: "$expr_27", scope: !39, file: !2, line: 1, type: !10) +!41 = !DILocation(line: 1, column: 11, scope: !39) +!42 = !DILocalVariable(name: "bn1", scope: !39, file: !2, line: 1, type: !43) +!43 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "BNum", baseType: !44, size: 8, align: 8, dwarfAddressSpace: 0) +!44 = !DIBasicType(name: "BNum", size: 8) +!45 = !DILocation(line: 1, column: 5, scope: !39) +!46 = !DILocalVariable(name: "bn2", scope: !39, file: !2, line: 2, type: !43) +!47 = !DILocation(line: 2, column: 5, scope: !39) +!48 = !DILocation(line: 2, column: 11, scope: !39) +!49 = !DILocalVariable(name: "res1", scope: !39, file: !2, line: 3, type: !10) +!50 = !DILocation(line: 3, column: 5, scope: !39) +!51 = !DILocation(line: 3, column: 12, scope: !39) +!52 = !DILocalVariable(name: "res2n", scope: !39, file: !2, line: 4, type: !10) +!53 = !DILocation(line: 4, column: 5, scope: !39) +!54 = !DILocation(line: 4, column: 13, scope: !39) +!55 = !DILocalVariable(name: "res2", scope: !39, file: !2, line: 5, type: !10) +!56 = !DILocation(line: 5, column: 5, scope: !39) +!57 = !DILocalVariable(name: "$BoolUtils.negb_8", scope: !39, file: !2, line: 5, type: !10) +!58 = !DILocation(line: 5, column: 12, scope: !39) +!59 = !DILocalVariable(name: "n1", scope: !39, file: !2, line: 7, type: !60) +!60 = !DIBasicType(name: "Int32", size: 4) +!61 = !DILocation(line: 7, column: 5, scope: !39) +!62 = !DILocation(line: 7, column: 10, scope: !39) +!63 = !DILocalVariable(name: "n2", scope: !39, file: !2, line: 8, type: !60) +!64 = !DILocation(line: 8, column: 5, scope: !39) +!65 = !DILocation(line: 8, column: 10, scope: !39) +!66 = !DILocalVariable(name: "res3", scope: !39, file: !2, line: 9, type: !10) +!67 = !DILocation(line: 9, column: 5, scope: !39) +!68 = !DILocation(line: 9, column: 12, scope: !39) +!69 = !DILocalVariable(name: "res4n", scope: !39, file: !2, line: 10, type: !10) +!70 = !DILocation(line: 10, column: 5, scope: !39) +!71 = !DILocation(line: 10, column: 13, scope: !39) +!72 = !DILocalVariable(name: "res4", scope: !39, file: !2, line: 11, type: !10) +!73 = !DILocation(line: 11, column: 5, scope: !39) +!74 = !DILocalVariable(name: "$BoolUtils.negb_9", scope: !39, file: !2, line: 11, type: !10) +!75 = !DILocation(line: 11, column: 12, scope: !39) +!76 = !DILocalVariable(name: "$n1_6", scope: !39, file: !2, line: 13, type: !77) +!77 = !DIBasicType(name: "Uint256", size: 32) +!78 = !DILocation(line: 13, column: 5, scope: !39) +!79 = !DILocation(line: 13, column: 10, scope: !39) +!80 = !DILocalVariable(name: "$n2_7", scope: !39, file: !2, line: 14, type: !77) +!81 = !DILocation(line: 14, column: 5, scope: !39) +!82 = !DILocation(line: 14, column: 10, scope: !39) +!83 = !DILocalVariable(name: "res5", scope: !39, file: !2, line: 15, type: !10) +!84 = !DILocation(line: 15, column: 5, scope: !39) +!85 = !DILocation(line: 15, column: 12, scope: !39) +!86 = !DILocalVariable(name: "res6n", scope: !39, file: !2, line: 16, type: !10) +!87 = !DILocation(line: 16, column: 5, scope: !39) +!88 = !DILocation(line: 16, column: 13, scope: !39) +!89 = !DILocalVariable(name: "res6", scope: !39, file: !2, line: 17, type: !10) +!90 = !DILocation(line: 17, column: 5, scope: !39) +!91 = !DILocalVariable(name: "$BoolUtils.negb_10", scope: !39, file: !2, line: 17, type: !10) +!92 = !DILocation(line: 17, column: 12, scope: !39) +!93 = !DILocalVariable(name: "res7", scope: !39, file: !2, line: 19, type: !10) +!94 = !DILocation(line: 19, column: 5, scope: !39) +!95 = !DILocation(line: 19, column: 12, scope: !39) +!96 = !DILocalVariable(name: "$BoolUtils.andb_12", scope: !39, file: !2, line: 19, type: !10) +!97 = !DILocalVariable(name: "res8", scope: !39, file: !2, line: 20, type: !10) +!98 = !DILocation(line: 20, column: 5, scope: !39) +!99 = !DILocation(line: 20, column: 12, scope: !39) +!100 = !DILocalVariable(name: "$BoolUtils.andb_14", scope: !39, file: !2, line: 20, type: !10) +!101 = !DILocalVariable(name: "res9", scope: !39, file: !2, line: 21, type: !10) +!102 = !DILocation(line: 21, column: 5, scope: !39) +!103 = !DILocation(line: 21, column: 12, scope: !39) +!104 = !DILocalVariable(name: "$BoolUtils.andb_16", scope: !39, file: !2, line: 21, type: !10) +!105 = !DILocalVariable(name: "res10", scope: !39, file: !2, line: 22, type: !10) +!106 = !DILocation(line: 22, column: 5, scope: !39) +!107 = !DILocation(line: 22, column: 13, scope: !39) +!108 = !DILocalVariable(name: "$BoolUtils.andb_18", scope: !39, file: !2, line: 22, type: !10) +!109 = !DILocation(line: 23, column: 1, scope: !39) +!110 = !DILocalVariable(name: "$BoolUtils.andb_20", scope: !39, file: !2, line: 23, type: !10) diff --git a/testsuite/expr/builtin_lt.ll b/testsuite/expr/builtin_lt.ll index cc081392..6f56bf0c 100644 --- a/testsuite/expr/builtin_lt.ll +++ b/testsuite/expr/builtin_lt.ll @@ -24,7 +24,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-pc-linux-gnu" +target triple = "x86_64-unknown-linux-gnu" %"$TyDescrTy_PrimTyp_28" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/testsuite/expr/builtin_map.dbg.ll b/testsuite/expr/builtin_map.dbg.ll index d810536a..9657ec41 100644 --- a/testsuite/expr/builtin_map.dbg.ll +++ b/testsuite/expr/builtin_map.dbg.ll @@ -36,7 +36,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-pc-linux-gnu" +target triple = "x86_64-unknown-linux-gnu" %"$TyDescrTy_PrimTyp_16" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } @@ -46,9 +46,9 @@ target triple = "x86_64-pc-linux-gnu" %"$TyDescrTy_ADTTyp_Constr_49" = type { %TyDescrString, i32, %_TyDescrTy_Typ** } %"$TyDescr_MapTyp_53" = type { %_TyDescrTy_Typ*, %_TyDescrTy_Typ* } %Int32 = type { i32 } -%"$ParamDescr_578" = type { %ParamDescrString, %_TyDescrTy_Typ* } +%"$ParamDescr_579" = type { %ParamDescrString, %_TyDescrTy_Typ* } %ParamDescrString = type { i8*, i32 } -%"$TransDescr_579" = type { %ParamDescrString, i32, %"$ParamDescr_578"* } +%"$TransDescr_580" = type { %ParamDescrString, i32, %"$ParamDescr_579"* } %Uint32 = type { i32 } %"$$fundef_14_env_93" = type {} %TName_Bool = type { i8, %CName_True*, %CName_False* } @@ -143,14 +143,18 @@ target triple = "x86_64-pc-linux-gnu" @"$_gas_charge_accPairUtils_4" = global %Int32 zeroinitializer @_tydescr_table = constant [20 x %_TyDescrTy_Typ*] [%_TyDescrTy_Typ* @"$TyDescr_Event_40", %_TyDescrTy_Typ* @"$TyDescr_Int64_22", %_TyDescrTy_Typ* @"$TyDescr_Map_54", %_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_52", %_TyDescrTy_Typ* @"$TyDescr_Uint256_32", %_TyDescrTy_Typ* @"$TyDescr_Uint32_20", %_TyDescrTy_Typ* @"$TyDescr_Uint64_24", %_TyDescrTy_Typ* @"$TyDescr_Bnum_36", %_TyDescrTy_Typ* @"$TyDescr_Uint128_28", %_TyDescrTy_Typ* @"$TyDescr_Exception_42", %_TyDescrTy_Typ* @"$TyDescr_String_34", %_TyDescrTy_Typ* @"$TyDescr_Int256_30", %_TyDescrTy_Typ* @"$TyDescr_Int128_26", %_TyDescrTy_Typ* @"$TyDescr_ADT_Option_Map_(Uint32)_(Uint32)_51", %_TyDescrTy_Typ* @"$TyDescr_Bystr_46", %_TyDescrTy_Typ* @"$TyDescr_ReplicateContr_44", %_TyDescrTy_Typ* @"$TyDescr_Message_38", %_TyDescrTy_Typ* @"$TyDescr_ADT_Option_Option_(Map_(Uint32)_(Uint32))_50", %_TyDescrTy_Typ* @"$TyDescr_Map_55", %_TyDescrTy_Typ* @"$TyDescr_Int32_18"] @_tydescr_table_length = constant i32 20 -@_contract_parameters = constant [0 x %"$ParamDescr_578"] zeroinitializer +@_contract_parameters = constant [0 x %"$ParamDescr_579"] zeroinitializer @_contract_parameters_length = constant i32 0 -@_transition_parameters = constant [0 x %"$TransDescr_579"] zeroinitializer +@_transition_parameters = constant [0 x %"$TransDescr_580"] zeroinitializer @_transition_parameters_length = constant i32 0 -define internal %Uint32 @"$fundef_14"(%"$$fundef_14_env_93"* %0, %TName_Bool* %1) !dbg !4 { +define internal %Uint32 @"$fundef_14"(%"$$fundef_14_env_93"* %0, %TName_Bool* %1) !dbg !3 { entry: + %"$b_118" = alloca %TName_Bool*, align 8 + store %TName_Bool* %1, %TName_Bool** %"$b_118", align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$b_118", metadata !8, metadata !DIExpression()), !dbg !11 %"$retval_15" = alloca %Uint32, align 8 + call void @llvm.dbg.declare(metadata %Uint32* %"$retval_15", metadata !12, metadata !DIExpression()), !dbg !14 %"$gasrem_94" = load i64, i64* @_gasrem, align 8 %"$gascmp_95" = icmp ugt i64 2, %"$gasrem_94" br i1 %"$gascmp_95", label %"$out_of_gas_96", label %"$have_gas_97" @@ -167,7 +171,7 @@ entry: switch i8 %"$b_tag_101", label %"$empty_default_102" [ i8 0, label %"$True_103" i8 1, label %"$False_110" - ], !dbg !8 + ], !dbg !14 "$True_103": ; preds = %"$have_gas_97" %"$b_104" = bitcast %TName_Bool* %1 to %CName_True* @@ -182,7 +186,7 @@ entry: "$have_gas_108": ; preds = %"$out_of_gas_107", %"$True_103" %"$consume_109" = sub i64 %"$gasrem_105", 1 store i64 %"$consume_109", i64* @_gasrem, align 8 - store %Uint32 { i32 1 }, %Uint32* %"$retval_15", align 4, !dbg !9 + store %Uint32 { i32 1 }, %Uint32* %"$retval_15", align 4, !dbg !15 br label %"$matchsucc_99" "$False_110": ; preds = %"$have_gas_97" @@ -198,7 +202,7 @@ entry: "$have_gas_115": ; preds = %"$out_of_gas_114", %"$False_110" %"$consume_116" = sub i64 %"$gasrem_112", 1 store i64 %"$consume_116", i64* @_gasrem, align 8 - store %Uint32 zeroinitializer, %Uint32* %"$retval_15", align 4, !dbg !12 + store %Uint32 zeroinitializer, %Uint32* %"$retval_15", align 4, !dbg !18 br label %"$matchsucc_99" "$empty_default_102": ; preds = %"$have_gas_97" @@ -209,898 +213,928 @@ entry: ret %Uint32 %"$$retval_15_117" } +; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn +declare void @llvm.dbg.declare(metadata, metadata, metadata) #0 + declare void @_out_of_gas() -define void @_init_libs() !dbg !14 { +define void @_init_libs() !dbg !20 { entry: - %"$gasrem_118" = load i64, i64* @_gasrem, align 8 - %"$gascmp_119" = icmp ugt i64 5, %"$gasrem_118" - br i1 %"$gascmp_119", label %"$out_of_gas_120", label %"$have_gas_121" + %"$gasrem_119" = load i64, i64* @_gasrem, align 8 + %"$gascmp_120" = icmp ugt i64 5, %"$gasrem_119" + br i1 %"$gascmp_120", label %"$out_of_gas_121", label %"$have_gas_122" -"$out_of_gas_120": ; preds = %entry +"$out_of_gas_121": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_121" + br label %"$have_gas_122" -"$have_gas_121": ; preds = %"$out_of_gas_120", %entry - %"$consume_122" = sub i64 %"$gasrem_118", 5 - store i64 %"$consume_122", i64* @_gasrem, align 8 - store %Int32 { i32 5 }, %Int32* @"$_gas_charge_accrec_lib_5", align 4, !dbg !16 - %"$gasrem_123" = load i64, i64* @_gasrem, align 8 - %"$gascmp_124" = icmp ugt i64 8, %"$gasrem_123" - br i1 %"$gascmp_124", label %"$out_of_gas_125", label %"$have_gas_126" +"$have_gas_122": ; preds = %"$out_of_gas_121", %entry + %"$consume_123" = sub i64 %"$gasrem_119", 5 + store i64 %"$consume_123", i64* @_gasrem, align 8 + store %Int32 { i32 5 }, %Int32* @"$_gas_charge_accrec_lib_5", align 4, !dbg !22 + %"$gasrem_124" = load i64, i64* @_gasrem, align 8 + %"$gascmp_125" = icmp ugt i64 8, %"$gasrem_124" + br i1 %"$gascmp_125", label %"$out_of_gas_126", label %"$have_gas_127" -"$out_of_gas_125": ; preds = %"$have_gas_121" +"$out_of_gas_126": ; preds = %"$have_gas_122" call void @_out_of_gas() - br label %"$have_gas_126" + br label %"$have_gas_127" -"$have_gas_126": ; preds = %"$out_of_gas_125", %"$have_gas_121" - %"$consume_127" = sub i64 %"$gasrem_123", 8 - store i64 %"$consume_127", i64* @_gasrem, align 8 - store %Int32 { i32 8 }, %Int32* @"$_gas_charge_accBoolUtils_0", align 4, !dbg !16 - %"$gasrem_128" = load i64, i64* @_gasrem, align 8 - %"$gascmp_129" = icmp ugt i64 196, %"$gasrem_128" - br i1 %"$gascmp_129", label %"$out_of_gas_130", label %"$have_gas_131" +"$have_gas_127": ; preds = %"$out_of_gas_126", %"$have_gas_122" + %"$consume_128" = sub i64 %"$gasrem_124", 8 + store i64 %"$consume_128", i64* @_gasrem, align 8 + store %Int32 { i32 8 }, %Int32* @"$_gas_charge_accBoolUtils_0", align 4, !dbg !22 + %"$gasrem_129" = load i64, i64* @_gasrem, align 8 + %"$gascmp_130" = icmp ugt i64 196, %"$gasrem_129" + br i1 %"$gascmp_130", label %"$out_of_gas_131", label %"$have_gas_132" -"$out_of_gas_130": ; preds = %"$have_gas_126" +"$out_of_gas_131": ; preds = %"$have_gas_127" call void @_out_of_gas() - br label %"$have_gas_131" + br label %"$have_gas_132" -"$have_gas_131": ; preds = %"$out_of_gas_130", %"$have_gas_126" - %"$consume_132" = sub i64 %"$gasrem_128", 196 - store i64 %"$consume_132", i64* @_gasrem, align 8 - store %Int32 { i32 196 }, %Int32* @"$_gas_charge_accIntUtils_1", align 4, !dbg !16 - %"$gasrem_133" = load i64, i64* @_gasrem, align 8 - %"$gascmp_134" = icmp ugt i64 20, %"$gasrem_133" - br i1 %"$gascmp_134", label %"$out_of_gas_135", label %"$have_gas_136" +"$have_gas_132": ; preds = %"$out_of_gas_131", %"$have_gas_127" + %"$consume_133" = sub i64 %"$gasrem_129", 196 + store i64 %"$consume_133", i64* @_gasrem, align 8 + store %Int32 { i32 196 }, %Int32* @"$_gas_charge_accIntUtils_1", align 4, !dbg !22 + %"$gasrem_134" = load i64, i64* @_gasrem, align 8 + %"$gascmp_135" = icmp ugt i64 20, %"$gasrem_134" + br i1 %"$gascmp_135", label %"$out_of_gas_136", label %"$have_gas_137" -"$out_of_gas_135": ; preds = %"$have_gas_131" +"$out_of_gas_136": ; preds = %"$have_gas_132" call void @_out_of_gas() - br label %"$have_gas_136" + br label %"$have_gas_137" -"$have_gas_136": ; preds = %"$out_of_gas_135", %"$have_gas_131" - %"$consume_137" = sub i64 %"$gasrem_133", 20 - store i64 %"$consume_137", i64* @_gasrem, align 8 - store %Int32 { i32 20 }, %Int32* @"$_gas_charge_accListUtils_2", align 4, !dbg !16 - %"$gasrem_138" = load i64, i64* @_gasrem, align 8 - %"$gascmp_139" = icmp ugt i64 12, %"$gasrem_138" - br i1 %"$gascmp_139", label %"$out_of_gas_140", label %"$have_gas_141" +"$have_gas_137": ; preds = %"$out_of_gas_136", %"$have_gas_132" + %"$consume_138" = sub i64 %"$gasrem_134", 20 + store i64 %"$consume_138", i64* @_gasrem, align 8 + store %Int32 { i32 20 }, %Int32* @"$_gas_charge_accListUtils_2", align 4, !dbg !22 + %"$gasrem_139" = load i64, i64* @_gasrem, align 8 + %"$gascmp_140" = icmp ugt i64 12, %"$gasrem_139" + br i1 %"$gascmp_140", label %"$out_of_gas_141", label %"$have_gas_142" -"$out_of_gas_140": ; preds = %"$have_gas_136" +"$out_of_gas_141": ; preds = %"$have_gas_137" call void @_out_of_gas() - br label %"$have_gas_141" + br label %"$have_gas_142" -"$have_gas_141": ; preds = %"$out_of_gas_140", %"$have_gas_136" - %"$consume_142" = sub i64 %"$gasrem_138", 12 - store i64 %"$consume_142", i64* @_gasrem, align 8 - store %Int32 { i32 12 }, %Int32* @"$_gas_charge_accNatUtils_3", align 4, !dbg !16 - %"$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" +"$have_gas_142": ; preds = %"$out_of_gas_141", %"$have_gas_137" + %"$consume_143" = sub i64 %"$gasrem_139", 12 + store i64 %"$consume_143", i64* @_gasrem, align 8 + store %Int32 { i32 12 }, %Int32* @"$_gas_charge_accNatUtils_3", align 4, !dbg !22 + %"$gasrem_144" = load i64, i64* @_gasrem, align 8 + %"$gascmp_145" = icmp ugt i64 2, %"$gasrem_144" + br i1 %"$gascmp_145", label %"$out_of_gas_146", label %"$have_gas_147" -"$out_of_gas_145": ; preds = %"$have_gas_141" +"$out_of_gas_146": ; preds = %"$have_gas_142" call void @_out_of_gas() - br label %"$have_gas_146" + br label %"$have_gas_147" -"$have_gas_146": ; preds = %"$out_of_gas_145", %"$have_gas_141" - %"$consume_147" = sub i64 %"$gasrem_143", 2 - store i64 %"$consume_147", i64* @_gasrem, align 8 - store %Int32 { i32 2 }, %Int32* @"$_gas_charge_accPairUtils_4", align 4, !dbg !16 +"$have_gas_147": ; preds = %"$out_of_gas_146", %"$have_gas_142" + %"$consume_148" = sub i64 %"$gasrem_144", 2 + store i64 %"$consume_148", i64* @_gasrem, align 8 + store %Int32 { i32 2 }, %Int32* @"$_gas_charge_accPairUtils_4", align 4, !dbg !22 ret void } -define internal %Uint32 @_scilla_expr_fun(i8* %0) !dbg !17 { +define internal %Uint32 @_scilla_expr_fun(i8* %0) !dbg !23 { entry: %"$expr_13" = alloca %Uint32, 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" + call void @llvm.dbg.declare(metadata %Uint32* %"$expr_13", metadata !24, metadata !DIExpression()), !dbg !25 + %"$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_150": ; preds = %entry +"$out_of_gas_151": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_151" + br label %"$have_gas_152" -"$have_gas_151": ; preds = %"$out_of_gas_150", %entry - %"$consume_152" = sub i64 %"$gasrem_148", 1 - store i64 %"$consume_152", i64* @_gasrem, align 8 +"$have_gas_152": ; preds = %"$out_of_gas_151", %entry + %"$consume_153" = sub i64 %"$gasrem_149", 1 + store i64 %"$consume_153", i64* @_gasrem, align 8 %bool_to_uint = alloca { %Uint32 (i8*, %TName_Bool*)*, i8* }, align 8 - %"$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" + %"$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_155": ; preds = %"$have_gas_151" +"$out_of_gas_156": ; preds = %"$have_gas_152" call void @_out_of_gas() - br label %"$have_gas_156" + br label %"$have_gas_157" -"$have_gas_156": ; preds = %"$out_of_gas_155", %"$have_gas_151" - %"$consume_157" = sub i64 %"$gasrem_153", 1 - store i64 %"$consume_157", i64* @_gasrem, align 8 - store { %Uint32 (i8*, %TName_Bool*)*, i8* } { %Uint32 (i8*, %TName_Bool*)* bitcast (%Uint32 (%"$$fundef_14_env_93"*, %TName_Bool*)* @"$fundef_14" to %Uint32 (i8*, %TName_Bool*)*), i8* null }, { %Uint32 (i8*, %TName_Bool*)*, i8* }* %bool_to_uint, align 8, !dbg !18 - %"$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" +"$have_gas_157": ; preds = %"$out_of_gas_156", %"$have_gas_152" + %"$consume_158" = sub i64 %"$gasrem_154", 1 + store i64 %"$consume_158", i64* @_gasrem, align 8 + store { %Uint32 (i8*, %TName_Bool*)*, i8* } { %Uint32 (i8*, %TName_Bool*)* bitcast (%Uint32 (%"$$fundef_14_env_93"*, %TName_Bool*)* @"$fundef_14" to %Uint32 (i8*, %TName_Bool*)*), i8* null }, { %Uint32 (i8*, %TName_Bool*)*, i8* }* %bool_to_uint, align 8, !dbg !26 + %"$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_163": ; preds = %"$have_gas_156" +"$out_of_gas_164": ; preds = %"$have_gas_157" call void @_out_of_gas() - br label %"$have_gas_164" + br label %"$have_gas_165" -"$have_gas_164": ; preds = %"$out_of_gas_163", %"$have_gas_156" - %"$consume_165" = sub i64 %"$gasrem_161", 1 - store i64 %"$consume_165", i64* @_gasrem, align 8 +"$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 %i0 = alloca %Uint32, 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" + call void @llvm.dbg.declare(metadata %Uint32* %i0, metadata !27, metadata !DIExpression()), !dbg !28 + %"$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_168": ; preds = %"$have_gas_164" +"$out_of_gas_169": ; preds = %"$have_gas_165" call void @_out_of_gas() - br label %"$have_gas_169" + br label %"$have_gas_170" -"$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 - store %Uint32 zeroinitializer, %Uint32* %i0, align 4, !dbg !19 - %"$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" +"$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 + store %Uint32 zeroinitializer, %Uint32* %i0, align 4, !dbg !29 + %"$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_173": ; preds = %"$have_gas_169" +"$out_of_gas_174": ; preds = %"$have_gas_170" call void @_out_of_gas() - br label %"$have_gas_174" + br label %"$have_gas_175" -"$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 +"$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 %i1 = 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" + call void @llvm.dbg.declare(metadata %Uint32* %i1, metadata !30, metadata !DIExpression()), !dbg !31 + %"$gasrem_177" = load i64, i64* @_gasrem, align 8 + %"$gascmp_178" = icmp ugt i64 1, %"$gasrem_177" + br i1 %"$gascmp_178", label %"$out_of_gas_179", label %"$have_gas_180" -"$out_of_gas_178": ; preds = %"$have_gas_174" +"$out_of_gas_179": ; preds = %"$have_gas_175" call void @_out_of_gas() - br label %"$have_gas_179" + br label %"$have_gas_180" -"$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 - store %Uint32 { i32 1 }, %Uint32* %i1, align 4, !dbg !20 - %"$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" +"$have_gas_180": ; preds = %"$out_of_gas_179", %"$have_gas_175" + %"$consume_181" = sub i64 %"$gasrem_177", 1 + store i64 %"$consume_181", i64* @_gasrem, align 8 + store %Uint32 { i32 1 }, %Uint32* %i1, align 4, !dbg !32 + %"$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_183": ; preds = %"$have_gas_179" +"$out_of_gas_184": ; preds = %"$have_gas_180" call void @_out_of_gas() - br label %"$have_gas_184" + br label %"$have_gas_185" -"$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 +"$have_gas_185": ; preds = %"$out_of_gas_184", %"$have_gas_180" + %"$consume_186" = sub i64 %"$gasrem_182", 1 + store i64 %"$consume_186", i64* @_gasrem, align 8 %a = alloca %Map_Uint32_Uint32*, 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" + call void @llvm.dbg.declare(metadata %Map_Uint32_Uint32** %a, metadata !33, metadata !DIExpression()), !dbg !36 + %"$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_188": ; preds = %"$have_gas_184" +"$out_of_gas_189": ; preds = %"$have_gas_185" call void @_out_of_gas() - br label %"$have_gas_189" - -"$have_gas_189": ; preds = %"$out_of_gas_188", %"$have_gas_184" - %"$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_Uint32_Uint32* - store %Map_Uint32_Uint32* %"$_new_empty_map_193", %Map_Uint32_Uint32** %a, align 8, !dbg !21 - %"$gasrem_194" = load i64, i64* @_gasrem, align 8 - %"$gascmp_195" = icmp ugt i64 1, %"$gasrem_194" - br i1 %"$gascmp_195", label %"$out_of_gas_196", label %"$have_gas_197" - -"$out_of_gas_196": ; preds = %"$have_gas_189" + 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_Uint32_Uint32* + store %Map_Uint32_Uint32* %"$_new_empty_map_194", %Map_Uint32_Uint32** %a, align 8, !dbg !37 + %"$gasrem_195" = load i64, i64* @_gasrem, align 8 + %"$gascmp_196" = icmp ugt i64 1, %"$gasrem_195" + br i1 %"$gascmp_196", label %"$out_of_gas_197", label %"$have_gas_198" + +"$out_of_gas_197": ; preds = %"$have_gas_190" call void @_out_of_gas() - br label %"$have_gas_197" + br label %"$have_gas_198" -"$have_gas_197": ; preds = %"$out_of_gas_196", %"$have_gas_189" - %"$consume_198" = sub i64 %"$gasrem_194", 1 - store i64 %"$consume_198", i64* @_gasrem, align 8 +"$have_gas_198": ; preds = %"$out_of_gas_197", %"$have_gas_190" + %"$consume_199" = sub i64 %"$gasrem_195", 1 + store i64 %"$consume_199", i64* @_gasrem, align 8 %a1 = alloca %Map_Uint32_Uint32*, align 8 - %"$a_199" = load %Map_Uint32_Uint32*, %Map_Uint32_Uint32** %a, align 8 - %"$$a_199_200" = bitcast %Map_Uint32_Uint32* %"$a_199" to i8* - %"$_lengthof_call_201" = call i64 @_lengthof(%_TyDescrTy_Typ* @"$TyDescr_Map_55", i8* %"$$a_199_200") - %"$gasadd_202" = add i64 1, %"$_lengthof_call_201" - %"$gasrem_203" = load i64, i64* @_gasrem, align 8 - %"$gascmp_204" = icmp ugt i64 %"$gasadd_202", %"$gasrem_203" - br i1 %"$gascmp_204", label %"$out_of_gas_205", label %"$have_gas_206" - -"$out_of_gas_205": ; preds = %"$have_gas_197" + call void @llvm.dbg.declare(metadata %Map_Uint32_Uint32** %a1, metadata !38, metadata !DIExpression()), !dbg !39 + %"$a_200" = load %Map_Uint32_Uint32*, %Map_Uint32_Uint32** %a, align 8 + %"$$a_200_201" = bitcast %Map_Uint32_Uint32* %"$a_200" to i8* + %"$_lengthof_call_202" = call i64 @_lengthof(%_TyDescrTy_Typ* @"$TyDescr_Map_55", i8* %"$$a_200_201") + %"$gasadd_203" = add i64 1, %"$_lengthof_call_202" + %"$gasrem_204" = load i64, i64* @_gasrem, align 8 + %"$gascmp_205" = icmp ugt i64 %"$gasadd_203", %"$gasrem_204" + br i1 %"$gascmp_205", label %"$out_of_gas_206", label %"$have_gas_207" + +"$out_of_gas_206": ; preds = %"$have_gas_198" call void @_out_of_gas() - br label %"$have_gas_206" - -"$have_gas_206": ; preds = %"$out_of_gas_205", %"$have_gas_197" - %"$consume_207" = sub i64 %"$gasrem_203", %"$gasadd_202" - store i64 %"$consume_207", i64* @_gasrem, align 8 - %"$execptr_load_208" = load i8*, i8** @_execptr, align 8 - %"$a_209" = load %Map_Uint32_Uint32*, %Map_Uint32_Uint32** %a, align 8 - %"$$a_209_210" = bitcast %Map_Uint32_Uint32* %"$a_209" to i8* - %"$put_i0_211" = alloca %Uint32, align 8 - %"$i0_212" = load %Uint32, %Uint32* %i0, align 4 - store %Uint32 %"$i0_212", %Uint32* %"$put_i0_211", align 4 - %"$$put_i0_211_213" = bitcast %Uint32* %"$put_i0_211" to i8* - %"$put_i1_214" = alloca %Uint32, align 8 - %"$i1_215" = load %Uint32, %Uint32* %i1, align 4 - store %Uint32 %"$i1_215", %Uint32* %"$put_i1_214", align 4 - %"$$put_i1_214_216" = bitcast %Uint32* %"$put_i1_214" to i8* - %"$put_call_217" = call i8* @_put(i8* %"$execptr_load_208", %_TyDescrTy_Typ* @"$TyDescr_Map_55", i8* %"$$a_209_210", i8* %"$$put_i0_211_213", i8* %"$$put_i1_214_216"), !dbg !22 - %"$put_218" = bitcast i8* %"$put_call_217" to %Map_Uint32_Uint32* - store %Map_Uint32_Uint32* %"$put_218", %Map_Uint32_Uint32** %a1, align 8, !dbg !22 - %"$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 = %"$have_gas_206" + br label %"$have_gas_207" + +"$have_gas_207": ; preds = %"$out_of_gas_206", %"$have_gas_198" + %"$consume_208" = sub i64 %"$gasrem_204", %"$gasadd_203" + store i64 %"$consume_208", i64* @_gasrem, align 8 + %"$execptr_load_209" = load i8*, i8** @_execptr, align 8 + %"$a_210" = load %Map_Uint32_Uint32*, %Map_Uint32_Uint32** %a, align 8 + %"$$a_210_211" = bitcast %Map_Uint32_Uint32* %"$a_210" to i8* + %"$put_i0_212" = alloca %Uint32, align 8 + %"$i0_213" = load %Uint32, %Uint32* %i0, align 4 + store %Uint32 %"$i0_213", %Uint32* %"$put_i0_212", align 4 + %"$$put_i0_212_214" = bitcast %Uint32* %"$put_i0_212" to i8* + %"$put_i1_215" = alloca %Uint32, align 8 + %"$i1_216" = load %Uint32, %Uint32* %i1, align 4 + store %Uint32 %"$i1_216", %Uint32* %"$put_i1_215", align 4 + %"$$put_i1_215_217" = bitcast %Uint32* %"$put_i1_215" to i8* + %"$put_call_218" = call i8* @_put(i8* %"$execptr_load_209", %_TyDescrTy_Typ* @"$TyDescr_Map_55", i8* %"$$a_210_211", i8* %"$$put_i0_212_214", i8* %"$$put_i1_215_217"), !dbg !40 + %"$put_219" = bitcast i8* %"$put_call_218" to %Map_Uint32_Uint32* + store %Map_Uint32_Uint32* %"$put_219", %Map_Uint32_Uint32** %a1, align 8, !dbg !40 + %"$gasrem_220" = load i64, i64* @_gasrem, align 8 + %"$gascmp_221" = icmp ugt i64 1, %"$gasrem_220" + br i1 %"$gascmp_221", label %"$out_of_gas_222", label %"$have_gas_223" + +"$out_of_gas_222": ; preds = %"$have_gas_207" call void @_out_of_gas() - br label %"$have_gas_222" + br label %"$have_gas_223" -"$have_gas_222": ; preds = %"$out_of_gas_221", %"$have_gas_206" - %"$consume_223" = sub i64 %"$gasrem_219", 1 - store i64 %"$consume_223", i64* @_gasrem, align 8 +"$have_gas_223": ; preds = %"$out_of_gas_222", %"$have_gas_207" + %"$consume_224" = sub i64 %"$gasrem_220", 1 + store i64 %"$consume_224", i64* @_gasrem, align 8 %o = alloca %"TName_Option_Map_(Uint32)_(Uint32)"*, 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" + call void @llvm.dbg.declare(metadata %"TName_Option_Map_(Uint32)_(Uint32)"** %o, metadata !41, metadata !DIExpression()), !dbg !44 + %"$gasrem_225" = load i64, i64* @_gasrem, align 8 + %"$gascmp_226" = icmp ugt i64 1, %"$gasrem_225" + br i1 %"$gascmp_226", label %"$out_of_gas_227", label %"$have_gas_228" -"$out_of_gas_226": ; preds = %"$have_gas_222" +"$out_of_gas_227": ; preds = %"$have_gas_223" call void @_out_of_gas() - br label %"$have_gas_227" - -"$have_gas_227": ; preds = %"$out_of_gas_226", %"$have_gas_222" - %"$consume_228" = sub i64 %"$gasrem_224", 1 - store i64 %"$consume_228", i64* @_gasrem, align 8 - %"$a1_229" = load %Map_Uint32_Uint32*, %Map_Uint32_Uint32** %a1, align 8 - %"$adtval_230_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_230_salloc" = call i8* @_salloc(i8* %"$adtval_230_load", i64 9) - %"$adtval_230" = bitcast i8* %"$adtval_230_salloc" to %"CName_Some_Map_(Uint32)_(Uint32)"* - %"$adtgep_231" = getelementptr inbounds %"CName_Some_Map_(Uint32)_(Uint32)", %"CName_Some_Map_(Uint32)_(Uint32)"* %"$adtval_230", i32 0, i32 0 - store i8 0, i8* %"$adtgep_231", align 1 - %"$adtgep_232" = getelementptr inbounds %"CName_Some_Map_(Uint32)_(Uint32)", %"CName_Some_Map_(Uint32)_(Uint32)"* %"$adtval_230", i32 0, i32 1 - store %Map_Uint32_Uint32* %"$a1_229", %Map_Uint32_Uint32** %"$adtgep_232", align 8 - %"$adtptr_233" = bitcast %"CName_Some_Map_(Uint32)_(Uint32)"* %"$adtval_230" to %"TName_Option_Map_(Uint32)_(Uint32)"* - store %"TName_Option_Map_(Uint32)_(Uint32)"* %"$adtptr_233", %"TName_Option_Map_(Uint32)_(Uint32)"** %o, align 8, !dbg !23 - %"$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_227" + br label %"$have_gas_228" + +"$have_gas_228": ; preds = %"$out_of_gas_227", %"$have_gas_223" + %"$consume_229" = sub i64 %"$gasrem_225", 1 + store i64 %"$consume_229", i64* @_gasrem, align 8 + %"$a1_230" = load %Map_Uint32_Uint32*, %Map_Uint32_Uint32** %a1, align 8 + %"$adtval_231_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_231_salloc" = call i8* @_salloc(i8* %"$adtval_231_load", i64 9) + %"$adtval_231" = bitcast i8* %"$adtval_231_salloc" to %"CName_Some_Map_(Uint32)_(Uint32)"* + %"$adtgep_232" = getelementptr inbounds %"CName_Some_Map_(Uint32)_(Uint32)", %"CName_Some_Map_(Uint32)_(Uint32)"* %"$adtval_231", i32 0, i32 0 + store i8 0, i8* %"$adtgep_232", align 1 + %"$adtgep_233" = getelementptr inbounds %"CName_Some_Map_(Uint32)_(Uint32)", %"CName_Some_Map_(Uint32)_(Uint32)"* %"$adtval_231", i32 0, i32 1 + store %Map_Uint32_Uint32* %"$a1_230", %Map_Uint32_Uint32** %"$adtgep_233", align 8 + %"$adtptr_234" = bitcast %"CName_Some_Map_(Uint32)_(Uint32)"* %"$adtval_231" to %"TName_Option_Map_(Uint32)_(Uint32)"* + store %"TName_Option_Map_(Uint32)_(Uint32)"* %"$adtptr_234", %"TName_Option_Map_(Uint32)_(Uint32)"** %o, align 8, !dbg !45 + %"$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" + +"$out_of_gas_237": ; preds = %"$have_gas_228" call void @_out_of_gas() - br label %"$have_gas_237" + br label %"$have_gas_238" -"$have_gas_237": ; preds = %"$out_of_gas_236", %"$have_gas_227" - %"$consume_238" = sub i64 %"$gasrem_234", 1 - store i64 %"$consume_238", i64* @_gasrem, align 8 +"$have_gas_238": ; preds = %"$out_of_gas_237", %"$have_gas_228" + %"$consume_239" = sub i64 %"$gasrem_235", 1 + store i64 %"$consume_239", i64* @_gasrem, align 8 %b = alloca %"Map_Uint32_Option_(Map_(Uint32)_(Uint32))"*, align 8 - %"$gasrem_239" = load i64, i64* @_gasrem, align 8 - %"$gascmp_240" = icmp ugt i64 1, %"$gasrem_239" - br i1 %"$gascmp_240", label %"$out_of_gas_241", label %"$have_gas_242" + call void @llvm.dbg.declare(metadata %"Map_Uint32_Option_(Map_(Uint32)_(Uint32))"** %b, metadata !46, metadata !DIExpression()), !dbg !49 + %"$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_241": ; preds = %"$have_gas_237" +"$out_of_gas_242": ; preds = %"$have_gas_238" 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", 1 - store i64 %"$consume_243", i64* @_gasrem, align 8 - %"$execptr_load_244" = load i8*, i8** @_execptr, align 8 - %"$_new_empty_map_call_245" = call i8* @_new_empty_map(i8* %"$execptr_load_244") - %"$_new_empty_map_246" = bitcast i8* %"$_new_empty_map_call_245" to %"Map_Uint32_Option_(Map_(Uint32)_(Uint32))"* - store %"Map_Uint32_Option_(Map_(Uint32)_(Uint32))"* %"$_new_empty_map_246", %"Map_Uint32_Option_(Map_(Uint32)_(Uint32))"** %b, align 8, !dbg !24 - %"$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_242" + br label %"$have_gas_243" + +"$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 + %"$execptr_load_245" = load i8*, i8** @_execptr, align 8 + %"$_new_empty_map_call_246" = call i8* @_new_empty_map(i8* %"$execptr_load_245") + %"$_new_empty_map_247" = bitcast i8* %"$_new_empty_map_call_246" to %"Map_Uint32_Option_(Map_(Uint32)_(Uint32))"* + store %"Map_Uint32_Option_(Map_(Uint32)_(Uint32))"* %"$_new_empty_map_247", %"Map_Uint32_Option_(Map_(Uint32)_(Uint32))"** %b, align 8, !dbg !50 + %"$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 = %"$have_gas_243" call void @_out_of_gas() - br label %"$have_gas_250" + br label %"$have_gas_251" -"$have_gas_250": ; preds = %"$out_of_gas_249", %"$have_gas_242" - %"$consume_251" = sub i64 %"$gasrem_247", 1 - store i64 %"$consume_251", i64* @_gasrem, align 8 +"$have_gas_251": ; preds = %"$out_of_gas_250", %"$have_gas_243" + %"$consume_252" = sub i64 %"$gasrem_248", 1 + store i64 %"$consume_252", i64* @_gasrem, align 8 %b1 = alloca %"Map_Uint32_Option_(Map_(Uint32)_(Uint32))"*, align 8 - %"$b_252" = load %"Map_Uint32_Option_(Map_(Uint32)_(Uint32))"*, %"Map_Uint32_Option_(Map_(Uint32)_(Uint32))"** %b, align 8 - %"$$b_252_253" = bitcast %"Map_Uint32_Option_(Map_(Uint32)_(Uint32))"* %"$b_252" to i8* - %"$_lengthof_call_254" = call i64 @_lengthof(%_TyDescrTy_Typ* @"$TyDescr_Map_54", i8* %"$$b_252_253") - %"$gasadd_255" = add i64 1, %"$_lengthof_call_254" - %"$gasrem_256" = load i64, i64* @_gasrem, align 8 - %"$gascmp_257" = icmp ugt i64 %"$gasadd_255", %"$gasrem_256" - br i1 %"$gascmp_257", label %"$out_of_gas_258", label %"$have_gas_259" - -"$out_of_gas_258": ; preds = %"$have_gas_250" + call void @llvm.dbg.declare(metadata %"Map_Uint32_Option_(Map_(Uint32)_(Uint32))"** %b1, metadata !51, metadata !DIExpression()), !dbg !52 + %"$b_253" = load %"Map_Uint32_Option_(Map_(Uint32)_(Uint32))"*, %"Map_Uint32_Option_(Map_(Uint32)_(Uint32))"** %b, align 8 + %"$$b_253_254" = bitcast %"Map_Uint32_Option_(Map_(Uint32)_(Uint32))"* %"$b_253" to i8* + %"$_lengthof_call_255" = call i64 @_lengthof(%_TyDescrTy_Typ* @"$TyDescr_Map_54", i8* %"$$b_253_254") + %"$gasadd_256" = add i64 1, %"$_lengthof_call_255" + %"$gasrem_257" = load i64, i64* @_gasrem, align 8 + %"$gascmp_258" = icmp ugt i64 %"$gasadd_256", %"$gasrem_257" + br i1 %"$gascmp_258", label %"$out_of_gas_259", label %"$have_gas_260" + +"$out_of_gas_259": ; preds = %"$have_gas_251" call void @_out_of_gas() - br label %"$have_gas_259" - -"$have_gas_259": ; preds = %"$out_of_gas_258", %"$have_gas_250" - %"$consume_260" = sub i64 %"$gasrem_256", %"$gasadd_255" - store i64 %"$consume_260", i64* @_gasrem, align 8 - %"$execptr_load_261" = load i8*, i8** @_execptr, align 8 - %"$b_262" = load %"Map_Uint32_Option_(Map_(Uint32)_(Uint32))"*, %"Map_Uint32_Option_(Map_(Uint32)_(Uint32))"** %b, align 8 - %"$$b_262_263" = bitcast %"Map_Uint32_Option_(Map_(Uint32)_(Uint32))"* %"$b_262" to i8* - %"$put_i1_264" = alloca %Uint32, align 8 - %"$i1_265" = load %Uint32, %Uint32* %i1, align 4 - store %Uint32 %"$i1_265", %Uint32* %"$put_i1_264", align 4 - %"$$put_i1_264_266" = bitcast %Uint32* %"$put_i1_264" to i8* - %"$o_267" = load %"TName_Option_Map_(Uint32)_(Uint32)"*, %"TName_Option_Map_(Uint32)_(Uint32)"** %o, align 8 - %"$$o_267_268" = bitcast %"TName_Option_Map_(Uint32)_(Uint32)"* %"$o_267" to i8* - %"$put_call_269" = call i8* @_put(i8* %"$execptr_load_261", %_TyDescrTy_Typ* @"$TyDescr_Map_54", i8* %"$$b_262_263", i8* %"$$put_i1_264_266", i8* %"$$o_267_268"), !dbg !25 - %"$put_270" = bitcast i8* %"$put_call_269" to %"Map_Uint32_Option_(Map_(Uint32)_(Uint32))"* - store %"Map_Uint32_Option_(Map_(Uint32)_(Uint32))"* %"$put_270", %"Map_Uint32_Option_(Map_(Uint32)_(Uint32))"** %b1, align 8, !dbg !25 - %"$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_259" + br label %"$have_gas_260" + +"$have_gas_260": ; preds = %"$out_of_gas_259", %"$have_gas_251" + %"$consume_261" = sub i64 %"$gasrem_257", %"$gasadd_256" + store i64 %"$consume_261", i64* @_gasrem, align 8 + %"$execptr_load_262" = load i8*, i8** @_execptr, align 8 + %"$b_263" = load %"Map_Uint32_Option_(Map_(Uint32)_(Uint32))"*, %"Map_Uint32_Option_(Map_(Uint32)_(Uint32))"** %b, align 8 + %"$$b_263_264" = bitcast %"Map_Uint32_Option_(Map_(Uint32)_(Uint32))"* %"$b_263" to i8* + %"$put_i1_265" = alloca %Uint32, align 8 + %"$i1_266" = load %Uint32, %Uint32* %i1, align 4 + store %Uint32 %"$i1_266", %Uint32* %"$put_i1_265", align 4 + %"$$put_i1_265_267" = bitcast %Uint32* %"$put_i1_265" to i8* + %"$o_268" = load %"TName_Option_Map_(Uint32)_(Uint32)"*, %"TName_Option_Map_(Uint32)_(Uint32)"** %o, align 8 + %"$$o_268_269" = bitcast %"TName_Option_Map_(Uint32)_(Uint32)"* %"$o_268" to i8* + %"$put_call_270" = call i8* @_put(i8* %"$execptr_load_262", %_TyDescrTy_Typ* @"$TyDescr_Map_54", i8* %"$$b_263_264", i8* %"$$put_i1_265_267", i8* %"$$o_268_269"), !dbg !53 + %"$put_271" = bitcast i8* %"$put_call_270" to %"Map_Uint32_Option_(Map_(Uint32)_(Uint32))"* + store %"Map_Uint32_Option_(Map_(Uint32)_(Uint32))"* %"$put_271", %"Map_Uint32_Option_(Map_(Uint32)_(Uint32))"** %b1, align 8, !dbg !53 + %"$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 = %"$have_gas_260" call void @_out_of_gas() - br label %"$have_gas_274" + br label %"$have_gas_275" -"$have_gas_274": ; preds = %"$out_of_gas_273", %"$have_gas_259" - %"$consume_275" = sub i64 %"$gasrem_271", 1 - store i64 %"$consume_275", i64* @_gasrem, align 8 +"$have_gas_275": ; preds = %"$out_of_gas_274", %"$have_gas_260" + %"$consume_276" = sub i64 %"$gasrem_272", 1 + store i64 %"$consume_276", i64* @_gasrem, align 8 %res1 = alloca %"TName_Option_Option_(Map_(Uint32)_(Uint32))"*, 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" + call void @llvm.dbg.declare(metadata %"TName_Option_Option_(Map_(Uint32)_(Uint32))"** %res1, metadata !54, metadata !DIExpression()), !dbg !57 + %"$gasrem_277" = load i64, i64* @_gasrem, align 8 + %"$gascmp_278" = icmp ugt i64 1, %"$gasrem_277" + br i1 %"$gascmp_278", label %"$out_of_gas_279", label %"$have_gas_280" -"$out_of_gas_278": ; preds = %"$have_gas_274" +"$out_of_gas_279": ; preds = %"$have_gas_275" call void @_out_of_gas() - br label %"$have_gas_279" - -"$have_gas_279": ; preds = %"$out_of_gas_278", %"$have_gas_274" - %"$consume_280" = sub i64 %"$gasrem_276", 1 - store i64 %"$consume_280", i64* @_gasrem, align 8 - %"$execptr_load_281" = load i8*, i8** @_execptr, align 8 - %"$b1_282" = load %"Map_Uint32_Option_(Map_(Uint32)_(Uint32))"*, %"Map_Uint32_Option_(Map_(Uint32)_(Uint32))"** %b1, align 8 - %"$$b1_282_283" = bitcast %"Map_Uint32_Option_(Map_(Uint32)_(Uint32))"* %"$b1_282" to i8* - %"$get_i1_284" = alloca %Uint32, align 8 - %"$i1_285" = load %Uint32, %Uint32* %i1, align 4 - store %Uint32 %"$i1_285", %Uint32* %"$get_i1_284", align 4 - %"$$get_i1_284_286" = bitcast %Uint32* %"$get_i1_284" to i8* - %"$get_call_287" = call i8* @_get(i8* %"$execptr_load_281", %_TyDescrTy_Typ* @"$TyDescr_Map_54", i8* %"$$b1_282_283", i8* %"$$get_i1_284_286"), !dbg !26 - %"$get_288" = bitcast i8* %"$get_call_287" to %"TName_Option_Option_(Map_(Uint32)_(Uint32))"* - store %"TName_Option_Option_(Map_(Uint32)_(Uint32))"* %"$get_288", %"TName_Option_Option_(Map_(Uint32)_(Uint32))"** %res1, align 8, !dbg !26 - %"$gasrem_289" = load i64, i64* @_gasrem, align 8 - %"$gascmp_290" = icmp ugt i64 2, %"$gasrem_289" - br i1 %"$gascmp_290", label %"$out_of_gas_291", label %"$have_gas_292" - -"$out_of_gas_291": ; preds = %"$have_gas_279" + br label %"$have_gas_280" + +"$have_gas_280": ; preds = %"$out_of_gas_279", %"$have_gas_275" + %"$consume_281" = sub i64 %"$gasrem_277", 1 + store i64 %"$consume_281", i64* @_gasrem, align 8 + %"$execptr_load_282" = load i8*, i8** @_execptr, align 8 + %"$b1_283" = load %"Map_Uint32_Option_(Map_(Uint32)_(Uint32))"*, %"Map_Uint32_Option_(Map_(Uint32)_(Uint32))"** %b1, align 8 + %"$$b1_283_284" = bitcast %"Map_Uint32_Option_(Map_(Uint32)_(Uint32))"* %"$b1_283" to i8* + %"$get_i1_285" = alloca %Uint32, align 8 + %"$i1_286" = load %Uint32, %Uint32* %i1, align 4 + store %Uint32 %"$i1_286", %Uint32* %"$get_i1_285", align 4 + %"$$get_i1_285_287" = bitcast %Uint32* %"$get_i1_285" to i8* + %"$get_call_288" = call i8* @_get(i8* %"$execptr_load_282", %_TyDescrTy_Typ* @"$TyDescr_Map_54", i8* %"$$b1_283_284", i8* %"$$get_i1_285_287"), !dbg !58 + %"$get_289" = bitcast i8* %"$get_call_288" to %"TName_Option_Option_(Map_(Uint32)_(Uint32))"* + store %"TName_Option_Option_(Map_(Uint32)_(Uint32))"* %"$get_289", %"TName_Option_Option_(Map_(Uint32)_(Uint32))"** %res1, align 8, !dbg !58 + %"$gasrem_290" = load i64, i64* @_gasrem, align 8 + %"$gascmp_291" = icmp ugt i64 2, %"$gasrem_290" + br i1 %"$gascmp_291", label %"$out_of_gas_292", label %"$have_gas_293" + +"$out_of_gas_292": ; preds = %"$have_gas_280" call void @_out_of_gas() - br label %"$have_gas_292" - -"$have_gas_292": ; preds = %"$out_of_gas_291", %"$have_gas_279" - %"$consume_293" = sub i64 %"$gasrem_289", 2 - store i64 %"$consume_293", i64* @_gasrem, align 8 - %"$res1_335" = load %"TName_Option_Option_(Map_(Uint32)_(Uint32))"*, %"TName_Option_Option_(Map_(Uint32)_(Uint32))"** %res1, align 8 - %"$res1_tag_336" = getelementptr inbounds %"TName_Option_Option_(Map_(Uint32)_(Uint32))", %"TName_Option_Option_(Map_(Uint32)_(Uint32))"* %"$res1_335", i32 0, i32 0 - %"$res1_tag_337" = load i8, i8* %"$res1_tag_336", align 1 - switch i8 %"$res1_tag_337", label %"$default_338" [ - i8 0, label %"$Some_339" - ], !dbg !27 - -"$Some_339": ; preds = %"$have_gas_292" - %"$res1_340" = bitcast %"TName_Option_Option_(Map_(Uint32)_(Uint32))"* %"$res1_335" to %"CName_Some_Option_(Map_(Uint32)_(Uint32))"* - %"$$res1_8_gep_341" = getelementptr inbounds %"CName_Some_Option_(Map_(Uint32)_(Uint32))", %"CName_Some_Option_(Map_(Uint32)_(Uint32))"* %"$res1_340", i32 0, i32 1 - %"$$res1_8_load_342" = load %"TName_Option_Map_(Uint32)_(Uint32)"*, %"TName_Option_Map_(Uint32)_(Uint32)"** %"$$res1_8_gep_341", align 8 + br label %"$have_gas_293" + +"$have_gas_293": ; preds = %"$out_of_gas_292", %"$have_gas_280" + %"$consume_294" = sub i64 %"$gasrem_290", 2 + store i64 %"$consume_294", i64* @_gasrem, align 8 + %"$res1_336" = load %"TName_Option_Option_(Map_(Uint32)_(Uint32))"*, %"TName_Option_Option_(Map_(Uint32)_(Uint32))"** %res1, align 8 + %"$res1_tag_337" = getelementptr inbounds %"TName_Option_Option_(Map_(Uint32)_(Uint32))", %"TName_Option_Option_(Map_(Uint32)_(Uint32))"* %"$res1_336", i32 0, i32 0 + %"$res1_tag_338" = load i8, i8* %"$res1_tag_337", align 1 + switch i8 %"$res1_tag_338", label %"$default_339" [ + i8 0, label %"$Some_340" + ], !dbg !59 + +"$Some_340": ; preds = %"$have_gas_293" + %"$res1_341" = bitcast %"TName_Option_Option_(Map_(Uint32)_(Uint32))"* %"$res1_336" to %"CName_Some_Option_(Map_(Uint32)_(Uint32))"* + %"$$res1_8_gep_342" = getelementptr inbounds %"CName_Some_Option_(Map_(Uint32)_(Uint32))", %"CName_Some_Option_(Map_(Uint32)_(Uint32))"* %"$res1_341", i32 0, i32 1 + %"$$res1_8_load_343" = load %"TName_Option_Map_(Uint32)_(Uint32)"*, %"TName_Option_Map_(Uint32)_(Uint32)"** %"$$res1_8_gep_342", align 8 %"$res1_8" = alloca %"TName_Option_Map_(Uint32)_(Uint32)"*, align 8 - store %"TName_Option_Map_(Uint32)_(Uint32)"* %"$$res1_8_load_342", %"TName_Option_Map_(Uint32)_(Uint32)"** %"$res1_8", align 8 - %"$$res1_8_344" = load %"TName_Option_Map_(Uint32)_(Uint32)"*, %"TName_Option_Map_(Uint32)_(Uint32)"** %"$res1_8", align 8 - %"$$res1_8_tag_345" = getelementptr inbounds %"TName_Option_Map_(Uint32)_(Uint32)", %"TName_Option_Map_(Uint32)_(Uint32)"* %"$$res1_8_344", i32 0, i32 0 - %"$$res1_8_tag_346" = load i8, i8* %"$$res1_8_tag_345", align 1 - switch i8 %"$$res1_8_tag_346", label %"$default_347" [ - i8 0, label %"$Some_348" - ], !dbg !28 - -"$Some_348": ; preds = %"$Some_339" - %"$$res1_8_349" = bitcast %"TName_Option_Map_(Uint32)_(Uint32)"* %"$$res1_8_344" to %"CName_Some_Map_(Uint32)_(Uint32)"* - %"$$a1_6_gep_350" = getelementptr inbounds %"CName_Some_Map_(Uint32)_(Uint32)", %"CName_Some_Map_(Uint32)_(Uint32)"* %"$$res1_8_349", i32 0, i32 1 - %"$$a1_6_load_351" = load %Map_Uint32_Uint32*, %Map_Uint32_Uint32** %"$$a1_6_gep_350", align 8 + store %"TName_Option_Map_(Uint32)_(Uint32)"* %"$$res1_8_load_343", %"TName_Option_Map_(Uint32)_(Uint32)"** %"$res1_8", align 8 + %"$$res1_8_345" = load %"TName_Option_Map_(Uint32)_(Uint32)"*, %"TName_Option_Map_(Uint32)_(Uint32)"** %"$res1_8", align 8 + %"$$res1_8_tag_346" = getelementptr inbounds %"TName_Option_Map_(Uint32)_(Uint32)", %"TName_Option_Map_(Uint32)_(Uint32)"* %"$$res1_8_345", i32 0, i32 0 + %"$$res1_8_tag_347" = load i8, i8* %"$$res1_8_tag_346", align 1 + switch i8 %"$$res1_8_tag_347", label %"$default_348" [ + i8 0, label %"$Some_349" + ], !dbg !60 + +"$Some_349": ; preds = %"$Some_340" + %"$$res1_8_350" = bitcast %"TName_Option_Map_(Uint32)_(Uint32)"* %"$$res1_8_345" to %"CName_Some_Map_(Uint32)_(Uint32)"* + %"$$a1_6_gep_351" = getelementptr inbounds %"CName_Some_Map_(Uint32)_(Uint32)", %"CName_Some_Map_(Uint32)_(Uint32)"* %"$$res1_8_350", i32 0, i32 1 + %"$$a1_6_load_352" = load %Map_Uint32_Uint32*, %Map_Uint32_Uint32** %"$$a1_6_gep_351", align 8 %"$a1_6" = alloca %Map_Uint32_Uint32*, align 8 - store %Map_Uint32_Uint32* %"$$a1_6_load_351", %Map_Uint32_Uint32** %"$a1_6", 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" + store %Map_Uint32_Uint32* %"$$a1_6_load_352", %Map_Uint32_Uint32** %"$a1_6", align 8 + %"$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_354": ; preds = %"$Some_348" +"$out_of_gas_355": ; preds = %"$Some_349" call void @_out_of_gas() - br label %"$have_gas_355" + br label %"$have_gas_356" -"$have_gas_355": ; preds = %"$out_of_gas_354", %"$Some_348" - %"$consume_356" = sub i64 %"$gasrem_352", 1 - store i64 %"$consume_356", i64* @_gasrem, align 8 +"$have_gas_356": ; preds = %"$out_of_gas_355", %"$Some_349" + %"$consume_357" = sub i64 %"$gasrem_353", 1 + store i64 %"$consume_357", i64* @_gasrem, align 8 %p11 = alloca %TName_Bool*, align 8 - %"$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" + call void @llvm.dbg.declare(metadata %TName_Bool** %p11, metadata !63, metadata !DIExpression()), !dbg !66 + %"$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_359": ; preds = %"$have_gas_355" +"$out_of_gas_360": ; preds = %"$have_gas_356" call void @_out_of_gas() - br label %"$have_gas_360" - -"$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 - %"$execptr_load_362" = load i8*, i8** @_execptr, align 8 - %"$b1_363" = load %"Map_Uint32_Option_(Map_(Uint32)_(Uint32))"*, %"Map_Uint32_Option_(Map_(Uint32)_(Uint32))"** %b1, align 8 - %"$$b1_363_364" = bitcast %"Map_Uint32_Option_(Map_(Uint32)_(Uint32))"* %"$b1_363" to i8* - %"$contains_i1_365" = alloca %Uint32, align 8 - %"$i1_366" = load %Uint32, %Uint32* %i1, align 4 - store %Uint32 %"$i1_366", %Uint32* %"$contains_i1_365", align 4 - %"$$contains_i1_365_367" = bitcast %Uint32* %"$contains_i1_365" to i8* - %"$contains_call_368" = call %TName_Bool* @_contains(i8* %"$execptr_load_362", %_TyDescrTy_Typ* @"$TyDescr_Map_54", i8* %"$$b1_363_364", i8* %"$$contains_i1_365_367"), !dbg !31 - store %TName_Bool* %"$contains_call_368", %TName_Bool** %p11, align 8, !dbg !31 - %"$gasrem_370" = load i64, i64* @_gasrem, align 8 - %"$gascmp_371" = icmp ugt i64 1, %"$gasrem_370" - br i1 %"$gascmp_371", label %"$out_of_gas_372", label %"$have_gas_373" - -"$out_of_gas_372": ; preds = %"$have_gas_360" + 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 + %"$execptr_load_363" = load i8*, i8** @_execptr, align 8 + %"$b1_364" = load %"Map_Uint32_Option_(Map_(Uint32)_(Uint32))"*, %"Map_Uint32_Option_(Map_(Uint32)_(Uint32))"** %b1, align 8 + %"$$b1_364_365" = bitcast %"Map_Uint32_Option_(Map_(Uint32)_(Uint32))"* %"$b1_364" to i8* + %"$contains_i1_366" = alloca %Uint32, align 8 + %"$i1_367" = load %Uint32, %Uint32* %i1, align 4 + store %Uint32 %"$i1_367", %Uint32* %"$contains_i1_366", align 4 + %"$$contains_i1_366_368" = bitcast %Uint32* %"$contains_i1_366" to i8* + %"$contains_call_369" = call %TName_Bool* @_contains(i8* %"$execptr_load_363", %_TyDescrTy_Typ* @"$TyDescr_Map_54", i8* %"$$b1_364_365", i8* %"$$contains_i1_366_368"), !dbg !67 + store %TName_Bool* %"$contains_call_369", %TName_Bool** %p11, align 8, !dbg !67 + %"$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 = %"$have_gas_361" call void @_out_of_gas() - br label %"$have_gas_373" + br label %"$have_gas_374" -"$have_gas_373": ; preds = %"$out_of_gas_372", %"$have_gas_360" - %"$consume_374" = sub i64 %"$gasrem_370", 1 - store i64 %"$consume_374", i64* @_gasrem, align 8 +"$have_gas_374": ; preds = %"$out_of_gas_373", %"$have_gas_361" + %"$consume_375" = sub i64 %"$gasrem_371", 1 + store i64 %"$consume_375", i64* @_gasrem, align 8 %p1_i = alloca %Uint32, align 8 - %"$gasrem_375" = load i64, i64* @_gasrem, align 8 - %"$gascmp_376" = icmp ugt i64 1, %"$gasrem_375" - br i1 %"$gascmp_376", label %"$out_of_gas_377", label %"$have_gas_378" + call void @llvm.dbg.declare(metadata %Uint32* %p1_i, metadata !68, metadata !DIExpression()), !dbg !69 + %"$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_377": ; preds = %"$have_gas_373" +"$out_of_gas_378": ; preds = %"$have_gas_374" call void @_out_of_gas() - br label %"$have_gas_378" + br label %"$have_gas_379" -"$have_gas_378": ; preds = %"$out_of_gas_377", %"$have_gas_373" - %"$consume_379" = sub i64 %"$gasrem_375", 1 - store i64 %"$consume_379", i64* @_gasrem, align 8 +"$have_gas_379": ; preds = %"$out_of_gas_378", %"$have_gas_374" + %"$consume_380" = sub i64 %"$gasrem_376", 1 + store i64 %"$consume_380", i64* @_gasrem, align 8 %"$bool_to_uint_9" = alloca %Uint32, align 8 - %"$bool_to_uint_380" = load { %Uint32 (i8*, %TName_Bool*)*, i8* }, { %Uint32 (i8*, %TName_Bool*)*, i8* }* %bool_to_uint, align 8 - %"$bool_to_uint_fptr_381" = extractvalue { %Uint32 (i8*, %TName_Bool*)*, i8* } %"$bool_to_uint_380", 0 - %"$bool_to_uint_envptr_382" = extractvalue { %Uint32 (i8*, %TName_Bool*)*, i8* } %"$bool_to_uint_380", 1 - %"$p1_383" = load %TName_Bool*, %TName_Bool** %p11, align 8 - %"$bool_to_uint_call_384" = call %Uint32 %"$bool_to_uint_fptr_381"(i8* %"$bool_to_uint_envptr_382", %TName_Bool* %"$p1_383"), !dbg !34 - store %Uint32 %"$bool_to_uint_call_384", %Uint32* %"$bool_to_uint_9", align 4, !dbg !34 - %"$$bool_to_uint_9_385" = load %Uint32, %Uint32* %"$bool_to_uint_9", align 4 - store %Uint32 %"$$bool_to_uint_9_385", %Uint32* %p1_i, align 4, !dbg !34 - %"$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_388": ; preds = %"$have_gas_378" + call void @llvm.dbg.declare(metadata %Uint32* %"$bool_to_uint_9", metadata !70, metadata !DIExpression()), !dbg !71 + %"$bool_to_uint_381" = load { %Uint32 (i8*, %TName_Bool*)*, i8* }, { %Uint32 (i8*, %TName_Bool*)*, i8* }* %bool_to_uint, align 8 + %"$bool_to_uint_fptr_382" = extractvalue { %Uint32 (i8*, %TName_Bool*)*, i8* } %"$bool_to_uint_381", 0 + %"$bool_to_uint_envptr_383" = extractvalue { %Uint32 (i8*, %TName_Bool*)*, i8* } %"$bool_to_uint_381", 1 + %"$p1_384" = load %TName_Bool*, %TName_Bool** %p11, align 8 + %"$bool_to_uint_call_385" = call %Uint32 %"$bool_to_uint_fptr_382"(i8* %"$bool_to_uint_envptr_383", %TName_Bool* %"$p1_384"), !dbg !71 + store %Uint32 %"$bool_to_uint_call_385", %Uint32* %"$bool_to_uint_9", align 4, !dbg !71 + %"$$bool_to_uint_9_386" = load %Uint32, %Uint32* %"$bool_to_uint_9", align 4 + store %Uint32 %"$$bool_to_uint_9_386", %Uint32* %p1_i, align 4, !dbg !71 + %"$gasrem_387" = load i64, i64* @_gasrem, align 8 + %"$gascmp_388" = icmp ugt i64 1, %"$gasrem_387" + br i1 %"$gascmp_388", label %"$out_of_gas_389", label %"$have_gas_390" + +"$out_of_gas_389": ; preds = %"$have_gas_379" call void @_out_of_gas() - br label %"$have_gas_389" + br label %"$have_gas_390" -"$have_gas_389": ; preds = %"$out_of_gas_388", %"$have_gas_378" - %"$consume_390" = sub i64 %"$gasrem_386", 1 - store i64 %"$consume_390", i64* @_gasrem, align 8 +"$have_gas_390": ; preds = %"$out_of_gas_389", %"$have_gas_379" + %"$consume_391" = sub i64 %"$gasrem_387", 1 + store i64 %"$consume_391", i64* @_gasrem, align 8 %p2 = alloca %TName_Bool*, 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" + call void @llvm.dbg.declare(metadata %TName_Bool** %p2, metadata !72, metadata !DIExpression()), !dbg !73 + %"$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_393": ; preds = %"$have_gas_389" +"$out_of_gas_394": ; preds = %"$have_gas_390" 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 - %"$execptr_load_396" = load i8*, i8** @_execptr, align 8 - %"$$a1_6_397" = load %Map_Uint32_Uint32*, %Map_Uint32_Uint32** %"$a1_6", align 8 - %"$$$a1_6_397_398" = bitcast %Map_Uint32_Uint32* %"$$a1_6_397" to i8* - %"$contains_i0_399" = alloca %Uint32, align 8 - %"$i0_400" = load %Uint32, %Uint32* %i0, align 4 - store %Uint32 %"$i0_400", %Uint32* %"$contains_i0_399", align 4 - %"$$contains_i0_399_401" = bitcast %Uint32* %"$contains_i0_399" to i8* - %"$contains_call_402" = call %TName_Bool* @_contains(i8* %"$execptr_load_396", %_TyDescrTy_Typ* @"$TyDescr_Map_55", i8* %"$$$a1_6_397_398", i8* %"$$contains_i0_399_401"), !dbg !35 - store %TName_Bool* %"$contains_call_402", %TName_Bool** %p2, align 8, !dbg !35 - %"$gasrem_404" = load i64, i64* @_gasrem, align 8 - %"$gascmp_405" = icmp ugt i64 1, %"$gasrem_404" - br i1 %"$gascmp_405", label %"$out_of_gas_406", label %"$have_gas_407" - -"$out_of_gas_406": ; preds = %"$have_gas_394" + br label %"$have_gas_395" + +"$have_gas_395": ; preds = %"$out_of_gas_394", %"$have_gas_390" + %"$consume_396" = sub i64 %"$gasrem_392", 1 + store i64 %"$consume_396", i64* @_gasrem, align 8 + %"$execptr_load_397" = load i8*, i8** @_execptr, align 8 + %"$$a1_6_398" = load %Map_Uint32_Uint32*, %Map_Uint32_Uint32** %"$a1_6", align 8 + %"$$$a1_6_398_399" = bitcast %Map_Uint32_Uint32* %"$$a1_6_398" to i8* + %"$contains_i0_400" = alloca %Uint32, align 8 + %"$i0_401" = load %Uint32, %Uint32* %i0, align 4 + store %Uint32 %"$i0_401", %Uint32* %"$contains_i0_400", align 4 + %"$$contains_i0_400_402" = bitcast %Uint32* %"$contains_i0_400" to i8* + %"$contains_call_403" = call %TName_Bool* @_contains(i8* %"$execptr_load_397", %_TyDescrTy_Typ* @"$TyDescr_Map_55", i8* %"$$$a1_6_398_399", i8* %"$$contains_i0_400_402"), !dbg !74 + store %TName_Bool* %"$contains_call_403", %TName_Bool** %p2, align 8, !dbg !74 + %"$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_395" call void @_out_of_gas() - br label %"$have_gas_407" + br label %"$have_gas_408" -"$have_gas_407": ; preds = %"$out_of_gas_406", %"$have_gas_394" - %"$consume_408" = sub i64 %"$gasrem_404", 1 - store i64 %"$consume_408", i64* @_gasrem, align 8 +"$have_gas_408": ; preds = %"$out_of_gas_407", %"$have_gas_395" + %"$consume_409" = sub i64 %"$gasrem_405", 1 + store i64 %"$consume_409", i64* @_gasrem, align 8 %p2_i = alloca %Uint32, 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" + call void @llvm.dbg.declare(metadata %Uint32* %p2_i, metadata !75, metadata !DIExpression()), !dbg !76 + %"$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_411": ; preds = %"$have_gas_407" +"$out_of_gas_412": ; preds = %"$have_gas_408" call void @_out_of_gas() - br label %"$have_gas_412" + br label %"$have_gas_413" -"$have_gas_412": ; preds = %"$out_of_gas_411", %"$have_gas_407" - %"$consume_413" = sub i64 %"$gasrem_409", 1 - store i64 %"$consume_413", 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 %"$bool_to_uint_10" = alloca %Uint32, align 8 - %"$bool_to_uint_414" = load { %Uint32 (i8*, %TName_Bool*)*, i8* }, { %Uint32 (i8*, %TName_Bool*)*, i8* }* %bool_to_uint, align 8 - %"$bool_to_uint_fptr_415" = extractvalue { %Uint32 (i8*, %TName_Bool*)*, i8* } %"$bool_to_uint_414", 0 - %"$bool_to_uint_envptr_416" = extractvalue { %Uint32 (i8*, %TName_Bool*)*, i8* } %"$bool_to_uint_414", 1 - %"$p2_417" = load %TName_Bool*, %TName_Bool** %p2, align 8 - %"$bool_to_uint_call_418" = call %Uint32 %"$bool_to_uint_fptr_415"(i8* %"$bool_to_uint_envptr_416", %TName_Bool* %"$p2_417"), !dbg !36 - store %Uint32 %"$bool_to_uint_call_418", %Uint32* %"$bool_to_uint_10", align 4, !dbg !36 - %"$$bool_to_uint_10_419" = load %Uint32, %Uint32* %"$bool_to_uint_10", align 4 - store %Uint32 %"$$bool_to_uint_10_419", %Uint32* %p2_i, align 4, !dbg !36 - %"$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_412" + call void @llvm.dbg.declare(metadata %Uint32* %"$bool_to_uint_10", metadata !77, metadata !DIExpression()), !dbg !78 + %"$bool_to_uint_415" = load { %Uint32 (i8*, %TName_Bool*)*, i8* }, { %Uint32 (i8*, %TName_Bool*)*, i8* }* %bool_to_uint, align 8 + %"$bool_to_uint_fptr_416" = extractvalue { %Uint32 (i8*, %TName_Bool*)*, i8* } %"$bool_to_uint_415", 0 + %"$bool_to_uint_envptr_417" = extractvalue { %Uint32 (i8*, %TName_Bool*)*, i8* } %"$bool_to_uint_415", 1 + %"$p2_418" = load %TName_Bool*, %TName_Bool** %p2, align 8 + %"$bool_to_uint_call_419" = call %Uint32 %"$bool_to_uint_fptr_416"(i8* %"$bool_to_uint_envptr_417", %TName_Bool* %"$p2_418"), !dbg !78 + store %Uint32 %"$bool_to_uint_call_419", %Uint32* %"$bool_to_uint_10", align 4, !dbg !78 + %"$$bool_to_uint_10_420" = load %Uint32, %Uint32* %"$bool_to_uint_10", align 4 + store %Uint32 %"$$bool_to_uint_10_420", %Uint32* %p2_i, align 4, !dbg !78 + %"$gasrem_421" = load i64, i64* @_gasrem, align 8 + %"$gascmp_422" = icmp ugt i64 1, %"$gasrem_421" + br i1 %"$gascmp_422", label %"$out_of_gas_423", label %"$have_gas_424" + +"$out_of_gas_423": ; preds = %"$have_gas_413" call void @_out_of_gas() - br label %"$have_gas_423" + br label %"$have_gas_424" -"$have_gas_423": ; preds = %"$out_of_gas_422", %"$have_gas_412" - %"$consume_424" = sub i64 %"$gasrem_420", 1 - store i64 %"$consume_424", i64* @_gasrem, align 8 +"$have_gas_424": ; preds = %"$out_of_gas_423", %"$have_gas_413" + %"$consume_425" = sub i64 %"$gasrem_421", 1 + store i64 %"$consume_425", i64* @_gasrem, align 8 %p3 = alloca %Uint32, align 8 - %"$gasrem_425" = load i64, i64* @_gasrem, align 8 - %"$gascmp_426" = icmp ugt i64 4, %"$gasrem_425" - br i1 %"$gascmp_426", label %"$out_of_gas_427", label %"$have_gas_428" + call void @llvm.dbg.declare(metadata %Uint32* %p3, metadata !79, metadata !DIExpression()), !dbg !80 + %"$gasrem_426" = load i64, i64* @_gasrem, align 8 + %"$gascmp_427" = icmp ugt i64 4, %"$gasrem_426" + br i1 %"$gascmp_427", label %"$out_of_gas_428", label %"$have_gas_429" -"$out_of_gas_427": ; preds = %"$have_gas_423" +"$out_of_gas_428": ; preds = %"$have_gas_424" 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", 4 - store i64 %"$consume_429", i64* @_gasrem, align 8 - %"$p1_i_430" = load %Uint32, %Uint32* %p1_i, align 4 - %"$p2_i_431" = load %Uint32, %Uint32* %p2_i, align 4 - %"$add_call_432" = call %Uint32 @_add_Uint32(%Uint32 %"$p1_i_430", %Uint32 %"$p2_i_431"), !dbg !37 - store %Uint32 %"$add_call_432", %Uint32* %p3, align 4, !dbg !37 - %"$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_428" + br label %"$have_gas_429" + +"$have_gas_429": ; preds = %"$out_of_gas_428", %"$have_gas_424" + %"$consume_430" = sub i64 %"$gasrem_426", 4 + store i64 %"$consume_430", i64* @_gasrem, align 8 + %"$p1_i_431" = load %Uint32, %Uint32* %p1_i, align 4 + %"$p2_i_432" = load %Uint32, %Uint32* %p2_i, align 4 + %"$add_call_433" = call %Uint32 @_add_Uint32(%Uint32 %"$p1_i_431", %Uint32 %"$p2_i_432"), !dbg !81 + store %Uint32 %"$add_call_433", %Uint32* %p3, align 4, !dbg !81 + %"$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_429" call void @_out_of_gas() - br label %"$have_gas_436" + br label %"$have_gas_437" -"$have_gas_436": ; preds = %"$out_of_gas_435", %"$have_gas_428" - %"$consume_437" = sub i64 %"$gasrem_433", 1 - store i64 %"$consume_437", i64* @_gasrem, align 8 +"$have_gas_437": ; preds = %"$out_of_gas_436", %"$have_gas_429" + %"$consume_438" = sub i64 %"$gasrem_434", 1 + store i64 %"$consume_438", i64* @_gasrem, align 8 %a2 = alloca %Map_Uint32_Uint32*, align 8 - %"$$a1_6_438" = load %Map_Uint32_Uint32*, %Map_Uint32_Uint32** %"$a1_6", align 8 - %"$$$a1_6_438_439" = bitcast %Map_Uint32_Uint32* %"$$a1_6_438" to i8* - %"$_lengthof_call_440" = call i64 @_lengthof(%_TyDescrTy_Typ* @"$TyDescr_Map_55", i8* %"$$$a1_6_438_439") - %"$gasadd_441" = add i64 1, %"$_lengthof_call_440" - %"$gasrem_442" = load i64, i64* @_gasrem, align 8 - %"$gascmp_443" = icmp ugt i64 %"$gasadd_441", %"$gasrem_442" - br i1 %"$gascmp_443", label %"$out_of_gas_444", label %"$have_gas_445" - -"$out_of_gas_444": ; preds = %"$have_gas_436" + call void @llvm.dbg.declare(metadata %Map_Uint32_Uint32** %a2, metadata !82, metadata !DIExpression()), !dbg !83 + %"$$a1_6_439" = load %Map_Uint32_Uint32*, %Map_Uint32_Uint32** %"$a1_6", align 8 + %"$$$a1_6_439_440" = bitcast %Map_Uint32_Uint32* %"$$a1_6_439" to i8* + %"$_lengthof_call_441" = call i64 @_lengthof(%_TyDescrTy_Typ* @"$TyDescr_Map_55", i8* %"$$$a1_6_439_440") + %"$gasadd_442" = add i64 1, %"$_lengthof_call_441" + %"$gasrem_443" = load i64, i64* @_gasrem, align 8 + %"$gascmp_444" = icmp ugt i64 %"$gasadd_442", %"$gasrem_443" + br i1 %"$gascmp_444", label %"$out_of_gas_445", label %"$have_gas_446" + +"$out_of_gas_445": ; preds = %"$have_gas_437" call void @_out_of_gas() - br label %"$have_gas_445" - -"$have_gas_445": ; preds = %"$out_of_gas_444", %"$have_gas_436" - %"$consume_446" = sub i64 %"$gasrem_442", %"$gasadd_441" - store i64 %"$consume_446", i64* @_gasrem, align 8 - %"$execptr_load_447" = load i8*, i8** @_execptr, align 8 - %"$$a1_6_448" = load %Map_Uint32_Uint32*, %Map_Uint32_Uint32** %"$a1_6", align 8 - %"$$$a1_6_448_449" = bitcast %Map_Uint32_Uint32* %"$$a1_6_448" to i8* - %"$remove_i1_450" = alloca %Uint32, align 8 - %"$i1_451" = load %Uint32, %Uint32* %i1, align 4 - store %Uint32 %"$i1_451", %Uint32* %"$remove_i1_450", align 4 - %"$$remove_i1_450_452" = bitcast %Uint32* %"$remove_i1_450" to i8* - %"$remove_call_453" = call i8* @_remove(i8* %"$execptr_load_447", %_TyDescrTy_Typ* @"$TyDescr_Map_55", i8* %"$$$a1_6_448_449", i8* %"$$remove_i1_450_452"), !dbg !38 - %"$remove_454" = bitcast i8* %"$remove_call_453" to %Map_Uint32_Uint32* - store %Map_Uint32_Uint32* %"$remove_454", %Map_Uint32_Uint32** %a2, align 8, !dbg !38 - %"$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 = %"$have_gas_445" + br label %"$have_gas_446" + +"$have_gas_446": ; preds = %"$out_of_gas_445", %"$have_gas_437" + %"$consume_447" = sub i64 %"$gasrem_443", %"$gasadd_442" + store i64 %"$consume_447", i64* @_gasrem, align 8 + %"$execptr_load_448" = load i8*, i8** @_execptr, align 8 + %"$$a1_6_449" = load %Map_Uint32_Uint32*, %Map_Uint32_Uint32** %"$a1_6", align 8 + %"$$$a1_6_449_450" = bitcast %Map_Uint32_Uint32* %"$$a1_6_449" to i8* + %"$remove_i1_451" = alloca %Uint32, align 8 + %"$i1_452" = load %Uint32, %Uint32* %i1, align 4 + store %Uint32 %"$i1_452", %Uint32* %"$remove_i1_451", align 4 + %"$$remove_i1_451_453" = bitcast %Uint32* %"$remove_i1_451" to i8* + %"$remove_call_454" = call i8* @_remove(i8* %"$execptr_load_448", %_TyDescrTy_Typ* @"$TyDescr_Map_55", i8* %"$$$a1_6_449_450", i8* %"$$remove_i1_451_453"), !dbg !84 + %"$remove_455" = bitcast i8* %"$remove_call_454" to %Map_Uint32_Uint32* + store %Map_Uint32_Uint32* %"$remove_455", %Map_Uint32_Uint32** %a2, align 8, !dbg !84 + %"$gasrem_456" = load i64, i64* @_gasrem, align 8 + %"$gascmp_457" = icmp ugt i64 1, %"$gasrem_456" + br i1 %"$gascmp_457", label %"$out_of_gas_458", label %"$have_gas_459" + +"$out_of_gas_458": ; preds = %"$have_gas_446" call void @_out_of_gas() - br label %"$have_gas_458" + br label %"$have_gas_459" -"$have_gas_458": ; preds = %"$out_of_gas_457", %"$have_gas_445" - %"$consume_459" = sub i64 %"$gasrem_455", 1 - store i64 %"$consume_459", i64* @_gasrem, align 8 +"$have_gas_459": ; preds = %"$out_of_gas_458", %"$have_gas_446" + %"$consume_460" = sub i64 %"$gasrem_456", 1 + store i64 %"$consume_460", i64* @_gasrem, align 8 %p5 = alloca %TName_Bool*, align 8 - %"$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" + call void @llvm.dbg.declare(metadata %TName_Bool** %p5, metadata !85, metadata !DIExpression()), !dbg !86 + %"$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_462": ; preds = %"$have_gas_458" +"$out_of_gas_463": ; preds = %"$have_gas_459" call void @_out_of_gas() - br label %"$have_gas_463" - -"$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 - %"$execptr_load_465" = load i8*, i8** @_execptr, align 8 - %"$a2_466" = load %Map_Uint32_Uint32*, %Map_Uint32_Uint32** %a2, align 8 - %"$$a2_466_467" = bitcast %Map_Uint32_Uint32* %"$a2_466" to i8* - %"$contains_i0_468" = alloca %Uint32, align 8 - %"$i0_469" = load %Uint32, %Uint32* %i0, align 4 - store %Uint32 %"$i0_469", %Uint32* %"$contains_i0_468", align 4 - %"$$contains_i0_468_470" = bitcast %Uint32* %"$contains_i0_468" to i8* - %"$contains_call_471" = call %TName_Bool* @_contains(i8* %"$execptr_load_465", %_TyDescrTy_Typ* @"$TyDescr_Map_55", i8* %"$$a2_466_467", i8* %"$$contains_i0_468_470"), !dbg !39 - store %TName_Bool* %"$contains_call_471", %TName_Bool** %p5, align 8, !dbg !39 - %"$gasrem_473" = load i64, i64* @_gasrem, align 8 - %"$gascmp_474" = icmp ugt i64 1, %"$gasrem_473" - br i1 %"$gascmp_474", label %"$out_of_gas_475", label %"$have_gas_476" - -"$out_of_gas_475": ; preds = %"$have_gas_463" + br label %"$have_gas_464" + +"$have_gas_464": ; preds = %"$out_of_gas_463", %"$have_gas_459" + %"$consume_465" = sub i64 %"$gasrem_461", 1 + store i64 %"$consume_465", i64* @_gasrem, align 8 + %"$execptr_load_466" = load i8*, i8** @_execptr, align 8 + %"$a2_467" = load %Map_Uint32_Uint32*, %Map_Uint32_Uint32** %a2, align 8 + %"$$a2_467_468" = bitcast %Map_Uint32_Uint32* %"$a2_467" to i8* + %"$contains_i0_469" = alloca %Uint32, align 8 + %"$i0_470" = load %Uint32, %Uint32* %i0, align 4 + store %Uint32 %"$i0_470", %Uint32* %"$contains_i0_469", align 4 + %"$$contains_i0_469_471" = bitcast %Uint32* %"$contains_i0_469" to i8* + %"$contains_call_472" = call %TName_Bool* @_contains(i8* %"$execptr_load_466", %_TyDescrTy_Typ* @"$TyDescr_Map_55", i8* %"$$a2_467_468", i8* %"$$contains_i0_469_471"), !dbg !87 + store %TName_Bool* %"$contains_call_472", %TName_Bool** %p5, align 8, !dbg !87 + %"$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_464" call void @_out_of_gas() - br label %"$have_gas_476" + br label %"$have_gas_477" -"$have_gas_476": ; preds = %"$out_of_gas_475", %"$have_gas_463" - %"$consume_477" = sub i64 %"$gasrem_473", 1 - store i64 %"$consume_477", i64* @_gasrem, align 8 +"$have_gas_477": ; preds = %"$out_of_gas_476", %"$have_gas_464" + %"$consume_478" = sub i64 %"$gasrem_474", 1 + store i64 %"$consume_478", i64* @_gasrem, align 8 %p5_i = alloca %Uint32, 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" + call void @llvm.dbg.declare(metadata %Uint32* %p5_i, metadata !88, metadata !DIExpression()), !dbg !89 + %"$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_480": ; preds = %"$have_gas_476" +"$out_of_gas_481": ; preds = %"$have_gas_477" call void @_out_of_gas() - br label %"$have_gas_481" + br label %"$have_gas_482" -"$have_gas_481": ; preds = %"$out_of_gas_480", %"$have_gas_476" - %"$consume_482" = sub i64 %"$gasrem_478", 1 - store i64 %"$consume_482", i64* @_gasrem, align 8 +"$have_gas_482": ; preds = %"$out_of_gas_481", %"$have_gas_477" + %"$consume_483" = sub i64 %"$gasrem_479", 1 + store i64 %"$consume_483", i64* @_gasrem, align 8 %"$bool_to_uint_11" = alloca %Uint32, align 8 - %"$bool_to_uint_483" = load { %Uint32 (i8*, %TName_Bool*)*, i8* }, { %Uint32 (i8*, %TName_Bool*)*, i8* }* %bool_to_uint, align 8 - %"$bool_to_uint_fptr_484" = extractvalue { %Uint32 (i8*, %TName_Bool*)*, i8* } %"$bool_to_uint_483", 0 - %"$bool_to_uint_envptr_485" = extractvalue { %Uint32 (i8*, %TName_Bool*)*, i8* } %"$bool_to_uint_483", 1 - %"$p5_486" = load %TName_Bool*, %TName_Bool** %p5, align 8 - %"$bool_to_uint_call_487" = call %Uint32 %"$bool_to_uint_fptr_484"(i8* %"$bool_to_uint_envptr_485", %TName_Bool* %"$p5_486"), !dbg !40 - store %Uint32 %"$bool_to_uint_call_487", %Uint32* %"$bool_to_uint_11", align 4, !dbg !40 - %"$$bool_to_uint_11_488" = load %Uint32, %Uint32* %"$bool_to_uint_11", align 4 - store %Uint32 %"$$bool_to_uint_11_488", %Uint32* %p5_i, align 4, !dbg !40 - %"$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 = %"$have_gas_481" + call void @llvm.dbg.declare(metadata %Uint32* %"$bool_to_uint_11", metadata !90, metadata !DIExpression()), !dbg !91 + %"$bool_to_uint_484" = load { %Uint32 (i8*, %TName_Bool*)*, i8* }, { %Uint32 (i8*, %TName_Bool*)*, i8* }* %bool_to_uint, align 8 + %"$bool_to_uint_fptr_485" = extractvalue { %Uint32 (i8*, %TName_Bool*)*, i8* } %"$bool_to_uint_484", 0 + %"$bool_to_uint_envptr_486" = extractvalue { %Uint32 (i8*, %TName_Bool*)*, i8* } %"$bool_to_uint_484", 1 + %"$p5_487" = load %TName_Bool*, %TName_Bool** %p5, align 8 + %"$bool_to_uint_call_488" = call %Uint32 %"$bool_to_uint_fptr_485"(i8* %"$bool_to_uint_envptr_486", %TName_Bool* %"$p5_487"), !dbg !91 + store %Uint32 %"$bool_to_uint_call_488", %Uint32* %"$bool_to_uint_11", align 4, !dbg !91 + %"$$bool_to_uint_11_489" = load %Uint32, %Uint32* %"$bool_to_uint_11", align 4 + store %Uint32 %"$$bool_to_uint_11_489", %Uint32* %p5_i, align 4, !dbg !91 + %"$gasrem_490" = load i64, i64* @_gasrem, align 8 + %"$gascmp_491" = icmp ugt i64 1, %"$gasrem_490" + br i1 %"$gascmp_491", label %"$out_of_gas_492", label %"$have_gas_493" + +"$out_of_gas_492": ; preds = %"$have_gas_482" call void @_out_of_gas() - br label %"$have_gas_492" + br label %"$have_gas_493" -"$have_gas_492": ; preds = %"$out_of_gas_491", %"$have_gas_481" - %"$consume_493" = sub i64 %"$gasrem_489", 1 - store i64 %"$consume_493", i64* @_gasrem, align 8 +"$have_gas_493": ; preds = %"$out_of_gas_492", %"$have_gas_482" + %"$consume_494" = sub i64 %"$gasrem_490", 1 + store i64 %"$consume_494", i64* @_gasrem, align 8 %p6 = alloca %Uint32, align 8 - %"$gasrem_494" = load i64, i64* @_gasrem, align 8 - %"$gascmp_495" = icmp ugt i64 4, %"$gasrem_494" - br i1 %"$gascmp_495", label %"$out_of_gas_496", label %"$have_gas_497" + call void @llvm.dbg.declare(metadata %Uint32* %p6, metadata !92, metadata !DIExpression()), !dbg !93 + %"$gasrem_495" = load i64, i64* @_gasrem, align 8 + %"$gascmp_496" = icmp ugt i64 4, %"$gasrem_495" + br i1 %"$gascmp_496", label %"$out_of_gas_497", label %"$have_gas_498" -"$out_of_gas_496": ; preds = %"$have_gas_492" +"$out_of_gas_497": ; preds = %"$have_gas_493" 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", 4 - store i64 %"$consume_498", i64* @_gasrem, align 8 - %"$p3_499" = load %Uint32, %Uint32* %p3, align 4 - %"$p5_i_500" = load %Uint32, %Uint32* %p5_i, align 4 - %"$add_call_501" = call %Uint32 @_add_Uint32(%Uint32 %"$p3_499", %Uint32 %"$p5_i_500"), !dbg !41 - store %Uint32 %"$add_call_501", %Uint32* %p6, align 4, !dbg !41 - %"$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_497" + br label %"$have_gas_498" + +"$have_gas_498": ; preds = %"$out_of_gas_497", %"$have_gas_493" + %"$consume_499" = sub i64 %"$gasrem_495", 4 + store i64 %"$consume_499", i64* @_gasrem, align 8 + %"$p3_500" = load %Uint32, %Uint32* %p3, align 4 + %"$p5_i_501" = load %Uint32, %Uint32* %p5_i, align 4 + %"$add_call_502" = call %Uint32 @_add_Uint32(%Uint32 %"$p3_500", %Uint32 %"$p5_i_501"), !dbg !94 + store %Uint32 %"$add_call_502", %Uint32* %p6, align 4, !dbg !94 + %"$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_498" call void @_out_of_gas() - br label %"$have_gas_505" + br label %"$have_gas_506" -"$have_gas_505": ; preds = %"$out_of_gas_504", %"$have_gas_497" - %"$consume_506" = sub i64 %"$gasrem_502", 1 - store i64 %"$consume_506", i64* @_gasrem, align 8 +"$have_gas_506": ; preds = %"$out_of_gas_505", %"$have_gas_498" + %"$consume_507" = sub i64 %"$gasrem_503", 1 + store i64 %"$consume_507", i64* @_gasrem, align 8 %a3 = alloca %Map_Uint32_Uint32*, align 8 - %"$$a1_6_507" = load %Map_Uint32_Uint32*, %Map_Uint32_Uint32** %"$a1_6", align 8 - %"$$$a1_6_507_508" = bitcast %Map_Uint32_Uint32* %"$$a1_6_507" to i8* - %"$_lengthof_call_509" = call i64 @_lengthof(%_TyDescrTy_Typ* @"$TyDescr_Map_55", i8* %"$$$a1_6_507_508") - %"$gasadd_510" = add i64 1, %"$_lengthof_call_509" - %"$gasrem_511" = load i64, i64* @_gasrem, align 8 - %"$gascmp_512" = icmp ugt i64 %"$gasadd_510", %"$gasrem_511" - br i1 %"$gascmp_512", label %"$out_of_gas_513", label %"$have_gas_514" - -"$out_of_gas_513": ; preds = %"$have_gas_505" + call void @llvm.dbg.declare(metadata %Map_Uint32_Uint32** %a3, metadata !95, metadata !DIExpression()), !dbg !96 + %"$$a1_6_508" = load %Map_Uint32_Uint32*, %Map_Uint32_Uint32** %"$a1_6", align 8 + %"$$$a1_6_508_509" = bitcast %Map_Uint32_Uint32* %"$$a1_6_508" to i8* + %"$_lengthof_call_510" = call i64 @_lengthof(%_TyDescrTy_Typ* @"$TyDescr_Map_55", i8* %"$$$a1_6_508_509") + %"$gasadd_511" = add i64 1, %"$_lengthof_call_510" + %"$gasrem_512" = load i64, i64* @_gasrem, align 8 + %"$gascmp_513" = icmp ugt i64 %"$gasadd_511", %"$gasrem_512" + br i1 %"$gascmp_513", label %"$out_of_gas_514", label %"$have_gas_515" + +"$out_of_gas_514": ; preds = %"$have_gas_506" call void @_out_of_gas() - br label %"$have_gas_514" - -"$have_gas_514": ; preds = %"$out_of_gas_513", %"$have_gas_505" - %"$consume_515" = sub i64 %"$gasrem_511", %"$gasadd_510" - store i64 %"$consume_515", i64* @_gasrem, align 8 - %"$execptr_load_516" = load i8*, i8** @_execptr, align 8 - %"$$a1_6_517" = load %Map_Uint32_Uint32*, %Map_Uint32_Uint32** %"$a1_6", align 8 - %"$$$a1_6_517_518" = bitcast %Map_Uint32_Uint32* %"$$a1_6_517" to i8* - %"$put_i1_519" = alloca %Uint32, align 8 - %"$i1_520" = load %Uint32, %Uint32* %i1, align 4 - store %Uint32 %"$i1_520", %Uint32* %"$put_i1_519", align 4 - %"$$put_i1_519_521" = bitcast %Uint32* %"$put_i1_519" to i8* - %"$put_i0_522" = alloca %Uint32, align 8 - %"$i0_523" = load %Uint32, %Uint32* %i0, align 4 - store %Uint32 %"$i0_523", %Uint32* %"$put_i0_522", align 4 - %"$$put_i0_522_524" = bitcast %Uint32* %"$put_i0_522" to i8* - %"$put_call_525" = call i8* @_put(i8* %"$execptr_load_516", %_TyDescrTy_Typ* @"$TyDescr_Map_55", i8* %"$$$a1_6_517_518", i8* %"$$put_i1_519_521", i8* %"$$put_i0_522_524"), !dbg !42 - %"$put_526" = bitcast i8* %"$put_call_525" to %Map_Uint32_Uint32* - store %Map_Uint32_Uint32* %"$put_526", %Map_Uint32_Uint32** %a3, align 8, !dbg !42 - %"$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_514" + br label %"$have_gas_515" + +"$have_gas_515": ; preds = %"$out_of_gas_514", %"$have_gas_506" + %"$consume_516" = sub i64 %"$gasrem_512", %"$gasadd_511" + store i64 %"$consume_516", i64* @_gasrem, align 8 + %"$execptr_load_517" = load i8*, i8** @_execptr, align 8 + %"$$a1_6_518" = load %Map_Uint32_Uint32*, %Map_Uint32_Uint32** %"$a1_6", align 8 + %"$$$a1_6_518_519" = bitcast %Map_Uint32_Uint32* %"$$a1_6_518" to i8* + %"$put_i1_520" = alloca %Uint32, align 8 + %"$i1_521" = load %Uint32, %Uint32* %i1, align 4 + store %Uint32 %"$i1_521", %Uint32* %"$put_i1_520", align 4 + %"$$put_i1_520_522" = bitcast %Uint32* %"$put_i1_520" to i8* + %"$put_i0_523" = alloca %Uint32, align 8 + %"$i0_524" = load %Uint32, %Uint32* %i0, align 4 + store %Uint32 %"$i0_524", %Uint32* %"$put_i0_523", align 4 + %"$$put_i0_523_525" = bitcast %Uint32* %"$put_i0_523" to i8* + %"$put_call_526" = call i8* @_put(i8* %"$execptr_load_517", %_TyDescrTy_Typ* @"$TyDescr_Map_55", i8* %"$$$a1_6_518_519", i8* %"$$put_i1_520_522", i8* %"$$put_i0_523_525"), !dbg !97 + %"$put_527" = bitcast i8* %"$put_call_526" to %Map_Uint32_Uint32* + store %Map_Uint32_Uint32* %"$put_527", %Map_Uint32_Uint32** %a3, align 8, !dbg !97 + %"$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_530": ; preds = %"$have_gas_515" call void @_out_of_gas() - br label %"$have_gas_530" + br label %"$have_gas_531" -"$have_gas_530": ; preds = %"$out_of_gas_529", %"$have_gas_514" - %"$consume_531" = sub i64 %"$gasrem_527", 1 - store i64 %"$consume_531", i64* @_gasrem, align 8 +"$have_gas_531": ; preds = %"$out_of_gas_530", %"$have_gas_515" + %"$consume_532" = sub i64 %"$gasrem_528", 1 + store i64 %"$consume_532", i64* @_gasrem, align 8 %a4 = alloca %Map_Uint32_Uint32*, align 8 - %"$a3_532" = load %Map_Uint32_Uint32*, %Map_Uint32_Uint32** %a3, align 8 - %"$$a3_532_533" = bitcast %Map_Uint32_Uint32* %"$a3_532" to i8* - %"$_lengthof_call_534" = call i64 @_lengthof(%_TyDescrTy_Typ* @"$TyDescr_Map_55", i8* %"$$a3_532_533") - %"$gasadd_535" = add i64 1, %"$_lengthof_call_534" - %"$gasrem_536" = load i64, i64* @_gasrem, align 8 - %"$gascmp_537" = icmp ugt i64 %"$gasadd_535", %"$gasrem_536" - br i1 %"$gascmp_537", label %"$out_of_gas_538", label %"$have_gas_539" - -"$out_of_gas_538": ; preds = %"$have_gas_530" + call void @llvm.dbg.declare(metadata %Map_Uint32_Uint32** %a4, metadata !98, metadata !DIExpression()), !dbg !99 + %"$a3_533" = load %Map_Uint32_Uint32*, %Map_Uint32_Uint32** %a3, align 8 + %"$$a3_533_534" = bitcast %Map_Uint32_Uint32* %"$a3_533" to i8* + %"$_lengthof_call_535" = call i64 @_lengthof(%_TyDescrTy_Typ* @"$TyDescr_Map_55", i8* %"$$a3_533_534") + %"$gasadd_536" = add i64 1, %"$_lengthof_call_535" + %"$gasrem_537" = load i64, i64* @_gasrem, align 8 + %"$gascmp_538" = icmp ugt i64 %"$gasadd_536", %"$gasrem_537" + br i1 %"$gascmp_538", label %"$out_of_gas_539", label %"$have_gas_540" + +"$out_of_gas_539": ; preds = %"$have_gas_531" call void @_out_of_gas() - br label %"$have_gas_539" - -"$have_gas_539": ; preds = %"$out_of_gas_538", %"$have_gas_530" - %"$consume_540" = sub i64 %"$gasrem_536", %"$gasadd_535" - store i64 %"$consume_540", i64* @_gasrem, align 8 - %"$execptr_load_541" = load i8*, i8** @_execptr, align 8 - %"$a3_542" = load %Map_Uint32_Uint32*, %Map_Uint32_Uint32** %a3, align 8 - %"$$a3_542_543" = bitcast %Map_Uint32_Uint32* %"$a3_542" to i8* - %"$put_p6_544" = alloca %Uint32, align 8 - %"$p6_545" = load %Uint32, %Uint32* %p6, align 4 - store %Uint32 %"$p6_545", %Uint32* %"$put_p6_544", align 4 - %"$$put_p6_544_546" = bitcast %Uint32* %"$put_p6_544" to i8* - %"$put_p3_547" = alloca %Uint32, align 8 - %"$p3_548" = load %Uint32, %Uint32* %p3, align 4 - store %Uint32 %"$p3_548", %Uint32* %"$put_p3_547", align 4 - %"$$put_p3_547_549" = bitcast %Uint32* %"$put_p3_547" to i8* - %"$put_call_550" = call i8* @_put(i8* %"$execptr_load_541", %_TyDescrTy_Typ* @"$TyDescr_Map_55", i8* %"$$a3_542_543", i8* %"$$put_p6_544_546", i8* %"$$put_p3_547_549"), !dbg !43 - %"$put_551" = bitcast i8* %"$put_call_550" to %Map_Uint32_Uint32* - store %Map_Uint32_Uint32* %"$put_551", %Map_Uint32_Uint32** %a4, align 8, !dbg !43 - %"$gasrem_552" = load i64, i64* @_gasrem, align 8 - %"$gascmp_553" = icmp ugt i64 1, %"$gasrem_552" - br i1 %"$gascmp_553", label %"$out_of_gas_554", label %"$have_gas_555" - -"$out_of_gas_554": ; preds = %"$have_gas_539" + br label %"$have_gas_540" + +"$have_gas_540": ; preds = %"$out_of_gas_539", %"$have_gas_531" + %"$consume_541" = sub i64 %"$gasrem_537", %"$gasadd_536" + store i64 %"$consume_541", i64* @_gasrem, align 8 + %"$execptr_load_542" = load i8*, i8** @_execptr, align 8 + %"$a3_543" = load %Map_Uint32_Uint32*, %Map_Uint32_Uint32** %a3, align 8 + %"$$a3_543_544" = bitcast %Map_Uint32_Uint32* %"$a3_543" to i8* + %"$put_p6_545" = alloca %Uint32, align 8 + %"$p6_546" = load %Uint32, %Uint32* %p6, align 4 + store %Uint32 %"$p6_546", %Uint32* %"$put_p6_545", align 4 + %"$$put_p6_545_547" = bitcast %Uint32* %"$put_p6_545" to i8* + %"$put_p3_548" = alloca %Uint32, align 8 + %"$p3_549" = load %Uint32, %Uint32* %p3, align 4 + store %Uint32 %"$p3_549", %Uint32* %"$put_p3_548", align 4 + %"$$put_p3_548_550" = bitcast %Uint32* %"$put_p3_548" to i8* + %"$put_call_551" = call i8* @_put(i8* %"$execptr_load_542", %_TyDescrTy_Typ* @"$TyDescr_Map_55", i8* %"$$a3_543_544", i8* %"$$put_p6_545_547", i8* %"$$put_p3_548_550"), !dbg !100 + %"$put_552" = bitcast i8* %"$put_call_551" to %Map_Uint32_Uint32* + store %Map_Uint32_Uint32* %"$put_552", %Map_Uint32_Uint32** %a4, align 8, !dbg !100 + %"$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_540" call void @_out_of_gas() - br label %"$have_gas_555" + br label %"$have_gas_556" -"$have_gas_555": ; preds = %"$out_of_gas_554", %"$have_gas_539" - %"$consume_556" = sub i64 %"$gasrem_552", 1 - store i64 %"$consume_556", i64* @_gasrem, align 8 +"$have_gas_556": ; preds = %"$out_of_gas_555", %"$have_gas_540" + %"$consume_557" = sub i64 %"$gasrem_553", 1 + store i64 %"$consume_557", i64* @_gasrem, align 8 %p7_i = alloca %Uint32, align 8 - %"$gasrem_557" = load i64, i64* @_gasrem, align 8 - %"$gascmp_558" = icmp ugt i64 1, %"$gasrem_557" - br i1 %"$gascmp_558", label %"$out_of_gas_559", label %"$have_gas_560" + call void @llvm.dbg.declare(metadata %Uint32* %p7_i, metadata !101, metadata !DIExpression()), !dbg !102 + %"$gasrem_558" = load i64, i64* @_gasrem, align 8 + %"$gascmp_559" = icmp ugt i64 1, %"$gasrem_558" + br i1 %"$gascmp_559", label %"$out_of_gas_560", label %"$have_gas_561" -"$out_of_gas_559": ; preds = %"$have_gas_555" +"$out_of_gas_560": ; preds = %"$have_gas_556" call void @_out_of_gas() - br label %"$have_gas_560" - -"$have_gas_560": ; preds = %"$out_of_gas_559", %"$have_gas_555" - %"$consume_561" = sub i64 %"$gasrem_557", 1 - store i64 %"$consume_561", i64* @_gasrem, align 8 - %"$a4_562" = load %Map_Uint32_Uint32*, %Map_Uint32_Uint32** %a4, align 8 - %"$$a4_562_563" = bitcast %Map_Uint32_Uint32* %"$a4_562" to i8* - %"$size_call_564" = call %Uint32 @_size(i8* %"$$a4_562_563"), !dbg !44 - store %Uint32 %"$size_call_564", %Uint32* %p7_i, align 4, !dbg !44 - %"$gasrem_565" = load i64, i64* @_gasrem, align 8 - %"$gascmp_566" = icmp ugt i64 4, %"$gasrem_565" - br i1 %"$gascmp_566", label %"$out_of_gas_567", label %"$have_gas_568" - -"$out_of_gas_567": ; preds = %"$have_gas_560" + br label %"$have_gas_561" + +"$have_gas_561": ; preds = %"$out_of_gas_560", %"$have_gas_556" + %"$consume_562" = sub i64 %"$gasrem_558", 1 + store i64 %"$consume_562", i64* @_gasrem, align 8 + %"$a4_563" = load %Map_Uint32_Uint32*, %Map_Uint32_Uint32** %a4, align 8 + %"$$a4_563_564" = bitcast %Map_Uint32_Uint32* %"$a4_563" to i8* + %"$size_call_565" = call %Uint32 @_size(i8* %"$$a4_563_564"), !dbg !103 + store %Uint32 %"$size_call_565", %Uint32* %p7_i, align 4, !dbg !103 + %"$gasrem_566" = load i64, i64* @_gasrem, align 8 + %"$gascmp_567" = icmp ugt i64 4, %"$gasrem_566" + br i1 %"$gascmp_567", label %"$out_of_gas_568", label %"$have_gas_569" + +"$out_of_gas_568": ; preds = %"$have_gas_561" call void @_out_of_gas() - br label %"$have_gas_568" - -"$have_gas_568": ; preds = %"$out_of_gas_567", %"$have_gas_560" - %"$consume_569" = sub i64 %"$gasrem_565", 4 - store i64 %"$consume_569", i64* @_gasrem, align 8 - %"$p6_570" = load %Uint32, %Uint32* %p6, align 4 - %"$p7_i_571" = load %Uint32, %Uint32* %p7_i, align 4 - %"$add_call_572" = call %Uint32 @_add_Uint32(%Uint32 %"$p6_570", %Uint32 %"$p7_i_571"), !dbg !45 - store %Uint32 %"$add_call_572", %Uint32* %"$expr_13", align 4, !dbg !45 - br label %"$matchsucc_343" - -"$default_347": ; preds = %"$Some_339" + br label %"$have_gas_569" + +"$have_gas_569": ; preds = %"$out_of_gas_568", %"$have_gas_561" + %"$consume_570" = sub i64 %"$gasrem_566", 4 + store i64 %"$consume_570", i64* @_gasrem, align 8 + %"$p6_571" = load %Uint32, %Uint32* %p6, align 4 + %"$p7_i_572" = load %Uint32, %Uint32* %p7_i, align 4 + %"$add_call_573" = call %Uint32 @_add_Uint32(%Uint32 %"$p6_571", %Uint32 %"$p7_i_572"), !dbg !104 + store %Uint32 %"$add_call_573", %Uint32* %"$expr_13", align 4, !dbg !104 + br label %"$matchsucc_344" + +"$default_348": ; preds = %"$Some_340" br label %"$joinp_7" -"$matchsucc_343": ; preds = %"$have_gas_568" - br label %"$matchsucc_294" +"$matchsucc_344": ; preds = %"$have_gas_569" + br label %"$matchsucc_295" -"$default_338": ; preds = %"$have_gas_292" +"$default_339": ; preds = %"$have_gas_293" br label %"$joinp_7" -"$joinp_7": ; preds = %"$default_347", %"$default_338" - %"$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" +"$joinp_7": ; preds = %"$default_348", %"$default_339" + %"$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_297": ; preds = %"$joinp_7" +"$out_of_gas_298": ; preds = %"$joinp_7" call void @_out_of_gas() - br label %"$have_gas_298" + br label %"$have_gas_299" -"$have_gas_298": ; preds = %"$out_of_gas_297", %"$joinp_7" - %"$consume_299" = sub i64 %"$gasrem_295", 1 - store i64 %"$consume_299", i64* @_gasrem, align 8 +"$have_gas_299": ; preds = %"$out_of_gas_298", %"$joinp_7" + %"$consume_300" = sub i64 %"$gasrem_296", 1 + store i64 %"$consume_300", i64* @_gasrem, align 8 %p = alloca %TName_Bool*, 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" + call void @llvm.dbg.declare(metadata %TName_Bool** %p, metadata !105, metadata !DIExpression()), !dbg !107 + %"$gasrem_301" = load i64, i64* @_gasrem, align 8 + %"$gascmp_302" = icmp ugt i64 1, %"$gasrem_301" + br i1 %"$gascmp_302", label %"$out_of_gas_303", label %"$have_gas_304" -"$out_of_gas_302": ; preds = %"$have_gas_298" +"$out_of_gas_303": ; preds = %"$have_gas_299" call void @_out_of_gas() - br label %"$have_gas_303" - -"$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 - %"$execptr_load_305" = load i8*, i8** @_execptr, align 8 - %"$a1_306" = load %Map_Uint32_Uint32*, %Map_Uint32_Uint32** %a1, align 8 - %"$$a1_306_307" = bitcast %Map_Uint32_Uint32* %"$a1_306" to i8* - %"$contains_i0_308" = alloca %Uint32, align 8 - %"$i0_309" = load %Uint32, %Uint32* %i0, align 4 - store %Uint32 %"$i0_309", %Uint32* %"$contains_i0_308", align 4 - %"$$contains_i0_308_310" = bitcast %Uint32* %"$contains_i0_308" to i8* - %"$contains_call_311" = call %TName_Bool* @_contains(i8* %"$execptr_load_305", %_TyDescrTy_Typ* @"$TyDescr_Map_55", i8* %"$$a1_306_307", i8* %"$$contains_i0_308_310"), !dbg !46 - store %TName_Bool* %"$contains_call_311", %TName_Bool** %p, align 8, !dbg !46 - %"$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_303" + br label %"$have_gas_304" + +"$have_gas_304": ; preds = %"$out_of_gas_303", %"$have_gas_299" + %"$consume_305" = sub i64 %"$gasrem_301", 1 + store i64 %"$consume_305", i64* @_gasrem, align 8 + %"$execptr_load_306" = load i8*, i8** @_execptr, align 8 + %"$a1_307" = load %Map_Uint32_Uint32*, %Map_Uint32_Uint32** %a1, align 8 + %"$$a1_307_308" = bitcast %Map_Uint32_Uint32* %"$a1_307" to i8* + %"$contains_i0_309" = alloca %Uint32, align 8 + %"$i0_310" = load %Uint32, %Uint32* %i0, align 4 + store %Uint32 %"$i0_310", %Uint32* %"$contains_i0_309", align 4 + %"$$contains_i0_309_311" = bitcast %Uint32* %"$contains_i0_309" to i8* + %"$contains_call_312" = call %TName_Bool* @_contains(i8* %"$execptr_load_306", %_TyDescrTy_Typ* @"$TyDescr_Map_55", i8* %"$$a1_307_308", i8* %"$$contains_i0_309_311"), !dbg !108 + store %TName_Bool* %"$contains_call_312", %TName_Bool** %p, align 8, !dbg !108 + %"$gasrem_314" = load i64, i64* @_gasrem, align 8 + %"$gascmp_315" = icmp ugt i64 1, %"$gasrem_314" + br i1 %"$gascmp_315", label %"$out_of_gas_316", label %"$have_gas_317" + +"$out_of_gas_316": ; preds = %"$have_gas_304" call void @_out_of_gas() - br label %"$have_gas_316" + br label %"$have_gas_317" -"$have_gas_316": ; preds = %"$out_of_gas_315", %"$have_gas_303" - %"$consume_317" = sub i64 %"$gasrem_313", 1 - store i64 %"$consume_317", i64* @_gasrem, align 8 +"$have_gas_317": ; preds = %"$out_of_gas_316", %"$have_gas_304" + %"$consume_318" = sub i64 %"$gasrem_314", 1 + store i64 %"$consume_318", i64* @_gasrem, align 8 %p1 = alloca %Uint32, 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" + call void @llvm.dbg.declare(metadata %Uint32* %p1, metadata !109, metadata !DIExpression()), !dbg !110 + %"$gasrem_319" = load i64, i64* @_gasrem, align 8 + %"$gascmp_320" = icmp ugt i64 1, %"$gasrem_319" + br i1 %"$gascmp_320", label %"$out_of_gas_321", label %"$have_gas_322" -"$out_of_gas_320": ; preds = %"$have_gas_316" +"$out_of_gas_321": ; preds = %"$have_gas_317" call void @_out_of_gas() - br label %"$have_gas_321" + br label %"$have_gas_322" -"$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 +"$have_gas_322": ; preds = %"$out_of_gas_321", %"$have_gas_317" + %"$consume_323" = sub i64 %"$gasrem_319", 1 + store i64 %"$consume_323", i64* @_gasrem, align 8 %"$bool_to_uint_12" = alloca %Uint32, align 8 - %"$bool_to_uint_323" = load { %Uint32 (i8*, %TName_Bool*)*, i8* }, { %Uint32 (i8*, %TName_Bool*)*, i8* }* %bool_to_uint, align 8 - %"$bool_to_uint_fptr_324" = extractvalue { %Uint32 (i8*, %TName_Bool*)*, i8* } %"$bool_to_uint_323", 0 - %"$bool_to_uint_envptr_325" = extractvalue { %Uint32 (i8*, %TName_Bool*)*, i8* } %"$bool_to_uint_323", 1 - %"$p_326" = load %TName_Bool*, %TName_Bool** %p, align 8 - %"$bool_to_uint_call_327" = call %Uint32 %"$bool_to_uint_fptr_324"(i8* %"$bool_to_uint_envptr_325", %TName_Bool* %"$p_326"), !dbg !48 - store %Uint32 %"$bool_to_uint_call_327", %Uint32* %"$bool_to_uint_12", align 4, !dbg !48 - %"$$bool_to_uint_12_328" = load %Uint32, %Uint32* %"$bool_to_uint_12", align 4 - store %Uint32 %"$$bool_to_uint_12_328", %Uint32* %p1, align 4, !dbg !48 - %"$gasrem_329" = load i64, i64* @_gasrem, align 8 - %"$gascmp_330" = icmp ugt i64 1, %"$gasrem_329" - br i1 %"$gascmp_330", label %"$out_of_gas_331", label %"$have_gas_332" - -"$out_of_gas_331": ; preds = %"$have_gas_321" + call void @llvm.dbg.declare(metadata %Uint32* %"$bool_to_uint_12", metadata !111, metadata !DIExpression()), !dbg !112 + %"$bool_to_uint_324" = load { %Uint32 (i8*, %TName_Bool*)*, i8* }, { %Uint32 (i8*, %TName_Bool*)*, i8* }* %bool_to_uint, align 8 + %"$bool_to_uint_fptr_325" = extractvalue { %Uint32 (i8*, %TName_Bool*)*, i8* } %"$bool_to_uint_324", 0 + %"$bool_to_uint_envptr_326" = extractvalue { %Uint32 (i8*, %TName_Bool*)*, i8* } %"$bool_to_uint_324", 1 + %"$p_327" = load %TName_Bool*, %TName_Bool** %p, align 8 + %"$bool_to_uint_call_328" = call %Uint32 %"$bool_to_uint_fptr_325"(i8* %"$bool_to_uint_envptr_326", %TName_Bool* %"$p_327"), !dbg !112 + store %Uint32 %"$bool_to_uint_call_328", %Uint32* %"$bool_to_uint_12", align 4, !dbg !112 + %"$$bool_to_uint_12_329" = load %Uint32, %Uint32* %"$bool_to_uint_12", align 4 + store %Uint32 %"$$bool_to_uint_12_329", %Uint32* %p1, align 4, !dbg !112 + %"$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_332" - -"$have_gas_332": ; preds = %"$out_of_gas_331", %"$have_gas_321" - %"$consume_333" = sub i64 %"$gasrem_329", 1 - store i64 %"$consume_333", i64* @_gasrem, align 8 - %"$p1_334" = load %Uint32, %Uint32* %p1, align 4 - store %Uint32 %"$p1_334", %Uint32* %"$expr_13", align 4, !dbg !49 - br label %"$matchsucc_294" - -"$matchsucc_294": ; preds = %"$matchsucc_343", %"$have_gas_332" - %"$$expr_13_573" = load %Uint32, %Uint32* %"$expr_13", align 4 - ret %Uint32 %"$$expr_13_573" + 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 + %"$p1_335" = load %Uint32, %Uint32* %p1, align 4 + store %Uint32 %"$p1_335", %Uint32* %"$expr_13", align 4, !dbg !113 + br label %"$matchsucc_295" + +"$matchsucc_295": ; preds = %"$matchsucc_344", %"$have_gas_333" + %"$$expr_13_574" = load %Uint32, %Uint32* %"$expr_13", align 4 + ret %Uint32 %"$$expr_13_574" } declare i8* @_new_empty_map(i8*) @@ -1125,65 +1159,131 @@ declare void @_print_scilla_val(i8*, %_TyDescrTy_Typ*, i8*) define void @scilla_main() { entry: - %"$exprval_574" = call %Uint32 @_scilla_expr_fun(i8* null) - %"$pval_575" = alloca %Uint32, align 8 - %"$memvoidcast_576" = bitcast %Uint32* %"$pval_575" to i8* - store %Uint32 %"$exprval_574", %Uint32* %"$pval_575", align 4 - %"$execptr_load_577" = load i8*, i8** @_execptr, align 8 - call void @_print_scilla_val(i8* %"$execptr_load_577", %_TyDescrTy_Typ* @"$TyDescr_Uint32_20", i8* %"$memvoidcast_576") + %"$exprval_575" = call %Uint32 @_scilla_expr_fun(i8* null) + %"$pval_576" = alloca %Uint32, align 8 + %"$memvoidcast_577" = bitcast %Uint32* %"$pval_576" to i8* + store %Uint32 %"$exprval_575", %Uint32* %"$pval_576", align 4 + %"$execptr_load_578" = load i8*, i8** @_execptr, align 8 + call void @_print_scilla_val(i8* %"$execptr_load_578", %_TyDescrTy_Typ* @"$TyDescr_Uint32_20", i8* %"$memvoidcast_577") ret void } +attributes #0 = { nocallback nofree nosync nounwind readnone speculatable willreturn } + !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) +!1 = distinct !DICompileUnit(language: DW_LANG_C89, file: !2, producer: "Scilla Compiler", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false) !2 = !DIFile(filename: "builtin_map.scilexp", directory: "codegen/expr") -!3 = !{} -!4 = distinct !DISubprogram(name: "$fundef_14", linkageName: "$fundef_14", scope: !2, file: !2, line: 3, type: !5, scopeLine: 3, 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: 3, column: 5, scope: !4) -!9 = !DILocation(line: 4, column: 15, scope: !10) -!10 = distinct !DILexicalBlock(scope: !11, file: !2, line: 4, column: 7) -!11 = distinct !DILexicalBlock(scope: !4, file: !2, line: 3, column: 5) -!12 = !DILocation(line: 5, column: 16, scope: !13) -!13 = distinct !DILexicalBlock(scope: !11, file: !2, line: 5, column: 7) -!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 = !DILocation(line: 0, scope: !14) -!17 = 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) -!18 = !DILocation(line: 3, column: 5, scope: !17) -!19 = !DILocation(line: 8, column: 10, scope: !17) -!20 = !DILocation(line: 9, column: 10, scope: !17) -!21 = !DILocation(line: 10, column: 9, scope: !17) -!22 = !DILocation(line: 11, column: 10, scope: !17) -!23 = !DILocation(line: 12, column: 9, scope: !17) -!24 = !DILocation(line: 13, column: 9, scope: !17) -!25 = !DILocation(line: 14, column: 10, scope: !17) -!26 = !DILocation(line: 15, column: 12, scope: !17) -!27 = !DILocation(line: 16, column: 1, scope: !17) -!28 = !DILocation(line: 16, column: 1, scope: !29) -!29 = distinct !DILexicalBlock(scope: !30, file: !2, line: 17, column: 3) -!30 = distinct !DILexicalBlock(scope: !17, file: !2, line: 16, column: 1) -!31 = !DILocation(line: 18, column: 12, scope: !32) -!32 = distinct !DILexicalBlock(scope: !33, file: !2, line: 17, column: 9) -!33 = distinct !DILexicalBlock(scope: !29, file: !2, line: 16, column: 1) -!34 = !DILocation(line: 19, column: 14, scope: !32) -!35 = !DILocation(line: 20, column: 12, scope: !32) -!36 = !DILocation(line: 21, column: 14, scope: !32) -!37 = !DILocation(line: 22, column: 12, scope: !32) -!38 = !DILocation(line: 23, column: 12, scope: !32) -!39 = !DILocation(line: 24, column: 12, scope: !32) -!40 = !DILocation(line: 25, column: 14, scope: !32) -!41 = !DILocation(line: 26, column: 12, scope: !32) -!42 = !DILocation(line: 27, column: 12, scope: !32) -!43 = !DILocation(line: 28, column: 12, scope: !32) -!44 = !DILocation(line: 29, column: 14, scope: !32) -!45 = !DILocation(line: 30, column: 3, scope: !32) -!46 = !DILocation(line: 32, column: 11, scope: !47) -!47 = distinct !DILexicalBlock(scope: !30, file: !2, line: 16, column: 1) -!48 = !DILocation(line: 33, column: 12, scope: !47) -!49 = !DILocation(line: 34, column: 3, scope: !47) +!3 = distinct !DISubprogram(name: "$fundef_14", linkageName: "$fundef_14", scope: !2, file: !2, line: 3, type: !4, scopeLine: 3, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!4 = !DISubroutineType(types: !5) +!5 = !{!6} +!6 = !DIBasicType(tag: DW_TAG_unspecified_type, name: "void") +!7 = !{} +!8 = !DILocalVariable(name: "b", scope: !3, file: !2, line: 2, type: !9) +!9 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "Bool", baseType: !10, size: 8, align: 8, dwarfAddressSpace: 0) +!10 = !DIBasicType(name: "Bool", size: 8) +!11 = !DILocation(line: 2, column: 8, scope: !3) +!12 = !DILocalVariable(name: "$retval_15", scope: !3, file: !2, line: 3, type: !13) +!13 = !DIBasicType(name: "Uint32", size: 4) +!14 = !DILocation(line: 3, column: 5, scope: !3) +!15 = !DILocation(line: 4, column: 15, scope: !16) +!16 = distinct !DILexicalBlock(scope: !17, file: !2, line: 4, column: 7) +!17 = distinct !DILexicalBlock(scope: !3, file: !2, line: 3, column: 5) +!18 = !DILocation(line: 5, column: 16, scope: !19) +!19 = distinct !DILexicalBlock(scope: !17, file: !2, line: 5, column: 7) +!20 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !21, file: !21, type: !4, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!21 = !DIFile(filename: ".", directory: ".") +!22 = !DILocation(line: 0, scope: !20) +!23 = distinct !DISubprogram(name: "_scilla_expr_fun", linkageName: "_scilla_expr_fun", scope: !2, file: !2, line: 2, type: !4, scopeLine: 2, spFlags: DISPFlagDefinition, unit: !1, retainedNodes: !7) +!24 = !DILocalVariable(name: "$expr_13", scope: !23, file: !2, line: 2, type: !13) +!25 = !DILocation(line: 2, column: 3, scope: !23) +!26 = !DILocation(line: 3, column: 5, scope: !23) +!27 = !DILocalVariable(name: "i0", scope: !23, file: !2, line: 8, type: !13) +!28 = !DILocation(line: 8, column: 5, scope: !23) +!29 = !DILocation(line: 8, column: 10, scope: !23) +!30 = !DILocalVariable(name: "i1", scope: !23, file: !2, line: 9, type: !13) +!31 = !DILocation(line: 9, column: 5, scope: !23) +!32 = !DILocation(line: 9, column: 10, scope: !23) +!33 = !DILocalVariable(name: "a", scope: !23, file: !2, line: 10, type: !34) +!34 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "Map (Uint32) (Uint32)", baseType: !35, size: 8, align: 8, dwarfAddressSpace: 0) +!35 = !DIBasicType(name: "Map (Uint32) (Uint32)", size: 8) +!36 = !DILocation(line: 10, column: 5, scope: !23) +!37 = !DILocation(line: 10, column: 9, scope: !23) +!38 = !DILocalVariable(name: "a1", scope: !23, file: !2, line: 11, type: !34) +!39 = !DILocation(line: 11, column: 5, scope: !23) +!40 = !DILocation(line: 11, column: 10, scope: !23) +!41 = !DILocalVariable(name: "o", scope: !23, file: !2, line: 12, type: !42) +!42 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "Option (Map (Uint32) (Uint32))", baseType: !43, size: 8, align: 8, dwarfAddressSpace: 0) +!43 = !DIBasicType(name: "Option (Map (Uint32) (Uint32))", size: 8) +!44 = !DILocation(line: 12, column: 5, scope: !23) +!45 = !DILocation(line: 12, column: 9, scope: !23) +!46 = !DILocalVariable(name: "b", scope: !23, file: !2, line: 13, type: !47) +!47 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "Map (Uint32) (Option (Map (Uint32) (Uint32)))", baseType: !48, size: 8, align: 8, dwarfAddressSpace: 0) +!48 = !DIBasicType(name: "Map (Uint32) (Option (Map (Uint32) (Uint32)))", size: 8) +!49 = !DILocation(line: 13, column: 5, scope: !23) +!50 = !DILocation(line: 13, column: 9, scope: !23) +!51 = !DILocalVariable(name: "b1", scope: !23, file: !2, line: 14, type: !47) +!52 = !DILocation(line: 14, column: 5, scope: !23) +!53 = !DILocation(line: 14, column: 10, scope: !23) +!54 = !DILocalVariable(name: "res1", scope: !23, file: !2, line: 15, type: !55) +!55 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "Option (Option (Map (Uint32) (Uint32)))", baseType: !56, size: 8, align: 8, dwarfAddressSpace: 0) +!56 = !DIBasicType(name: "Option (Option (Map (Uint32) (Uint32)))", size: 8) +!57 = !DILocation(line: 15, column: 5, scope: !23) +!58 = !DILocation(line: 15, column: 12, scope: !23) +!59 = !DILocation(line: 16, column: 1, scope: !23) +!60 = !DILocation(line: 16, column: 1, scope: !61) +!61 = distinct !DILexicalBlock(scope: !62, file: !2, line: 17, column: 3) +!62 = distinct !DILexicalBlock(scope: !23, file: !2, line: 16, column: 1) +!63 = !DILocalVariable(name: "p1", scope: !64, file: !2, line: 18, type: !9) +!64 = distinct !DILexicalBlock(scope: !65, file: !2, line: 17, column: 9) +!65 = distinct !DILexicalBlock(scope: !61, file: !2, line: 16, column: 1) +!66 = !DILocation(line: 18, column: 7, scope: !64) +!67 = !DILocation(line: 18, column: 12, scope: !64) +!68 = !DILocalVariable(name: "p1_i", scope: !64, file: !2, line: 19, type: !13) +!69 = !DILocation(line: 19, column: 7, scope: !64) +!70 = !DILocalVariable(name: "$bool_to_uint_9", scope: !64, file: !2, line: 19, type: !13) +!71 = !DILocation(line: 19, column: 14, scope: !64) +!72 = !DILocalVariable(name: "p2", scope: !64, file: !2, line: 20, type: !9) +!73 = !DILocation(line: 20, column: 7, scope: !64) +!74 = !DILocation(line: 20, column: 12, scope: !64) +!75 = !DILocalVariable(name: "p2_i", scope: !64, file: !2, line: 21, type: !13) +!76 = !DILocation(line: 21, column: 7, scope: !64) +!77 = !DILocalVariable(name: "$bool_to_uint_10", scope: !64, file: !2, line: 21, type: !13) +!78 = !DILocation(line: 21, column: 14, scope: !64) +!79 = !DILocalVariable(name: "p3", scope: !64, file: !2, line: 22, type: !13) +!80 = !DILocation(line: 22, column: 7, scope: !64) +!81 = !DILocation(line: 22, column: 12, scope: !64) +!82 = !DILocalVariable(name: "a2", scope: !64, file: !2, line: 23, type: !34) +!83 = !DILocation(line: 23, column: 7, scope: !64) +!84 = !DILocation(line: 23, column: 12, scope: !64) +!85 = !DILocalVariable(name: "p5", scope: !64, file: !2, line: 24, type: !9) +!86 = !DILocation(line: 24, column: 7, scope: !64) +!87 = !DILocation(line: 24, column: 12, scope: !64) +!88 = !DILocalVariable(name: "p5_i", scope: !64, file: !2, line: 25, type: !13) +!89 = !DILocation(line: 25, column: 7, scope: !64) +!90 = !DILocalVariable(name: "$bool_to_uint_11", scope: !64, file: !2, line: 25, type: !13) +!91 = !DILocation(line: 25, column: 14, scope: !64) +!92 = !DILocalVariable(name: "p6", scope: !64, file: !2, line: 26, type: !13) +!93 = !DILocation(line: 26, column: 7, scope: !64) +!94 = !DILocation(line: 26, column: 12, scope: !64) +!95 = !DILocalVariable(name: "a3", scope: !64, file: !2, line: 27, type: !34) +!96 = !DILocation(line: 27, column: 7, scope: !64) +!97 = !DILocation(line: 27, column: 12, scope: !64) +!98 = !DILocalVariable(name: "a4", scope: !64, file: !2, line: 28, type: !34) +!99 = !DILocation(line: 28, column: 7, scope: !64) +!100 = !DILocation(line: 28, column: 12, scope: !64) +!101 = !DILocalVariable(name: "p7_i", scope: !64, file: !2, line: 29, type: !13) +!102 = !DILocation(line: 29, column: 7, scope: !64) +!103 = !DILocation(line: 29, column: 14, scope: !64) +!104 = !DILocation(line: 30, column: 3, scope: !64) +!105 = !DILocalVariable(name: "p", scope: !106, file: !2, line: 32, type: !9) +!106 = distinct !DILexicalBlock(scope: !62, file: !2, line: 16, column: 1) +!107 = !DILocation(line: 32, column: 7, scope: !106) +!108 = !DILocation(line: 32, column: 11, scope: !106) +!109 = !DILocalVariable(name: "p1", scope: !106, file: !2, line: 33, type: !13) +!110 = !DILocation(line: 33, column: 7, scope: !106) +!111 = !DILocalVariable(name: "$bool_to_uint_12", scope: !106, file: !2, line: 33, type: !13) +!112 = !DILocation(line: 33, column: 12, scope: !106) +!113 = !DILocation(line: 34, column: 3, scope: !106) diff --git a/testsuite/expr/builtin_map.ll b/testsuite/expr/builtin_map.ll index 35adc0df..4420c42d 100644 --- a/testsuite/expr/builtin_map.ll +++ b/testsuite/expr/builtin_map.ll @@ -36,7 +36,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-pc-linux-gnu" +target triple = "x86_64-unknown-linux-gnu" %"$TyDescrTy_PrimTyp_16" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/testsuite/expr/builtin_mul.dbg.ll b/testsuite/expr/builtin_mul.dbg.ll index 58de9973..2cadbf36 100644 --- a/testsuite/expr/builtin_mul.dbg.ll +++ b/testsuite/expr/builtin_mul.dbg.ll @@ -194,7 +194,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-pc-linux-gnu" +target triple = "x86_64-unknown-linux-gnu" %"$TyDescrTy_PrimTyp_174" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } @@ -206,9 +206,9 @@ target triple = "x86_64-pc-linux-gnu" %TName_Bool = type { i8, %CName_True*, %CName_False* } %CName_True = type <{ i8 }> %CName_False = type <{ i8 }> -%"$ParamDescr_2122" = type { %ParamDescrString, %_TyDescrTy_Typ* } +%"$ParamDescr_2124" = type { %ParamDescrString, %_TyDescrTy_Typ* } %ParamDescrString = type { i8*, i32 } -%"$TransDescr_2123" = type { %ParamDescrString, i32, %"$ParamDescr_2122"* } +%"$TransDescr_2125" = type { %ParamDescrString, i32, %"$ParamDescr_2124"* } %"$$fundef_171_env_224" = type { %TName_Bool* } %"$$fundef_169_env_225" = type {} %Uint32 = type { i32 } @@ -273,85 +273,92 @@ target triple = "x86_64-pc-linux-gnu" @"$_gas_charge_accPairUtils_4" = global %Int32 zeroinitializer @_tydescr_table = constant [16 x %_TyDescrTy_Typ*] [%_TyDescrTy_Typ* @"$TyDescr_Event_198", %_TyDescrTy_Typ* @"$TyDescr_Int64_180", %_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_208", %_TyDescrTy_Typ* @"$TyDescr_Uint256_190", %_TyDescrTy_Typ* @"$TyDescr_Uint32_178", %_TyDescrTy_Typ* @"$TyDescr_Uint64_182", %_TyDescrTy_Typ* @"$TyDescr_Bnum_194", %_TyDescrTy_Typ* @"$TyDescr_Uint128_186", %_TyDescrTy_Typ* @"$TyDescr_Exception_200", %_TyDescrTy_Typ* @"$TyDescr_String_192", %_TyDescrTy_Typ* @"$TyDescr_Int256_188", %_TyDescrTy_Typ* @"$TyDescr_Int128_184", %_TyDescrTy_Typ* @"$TyDescr_Bystr_204", %_TyDescrTy_Typ* @"$TyDescr_ReplicateContr_202", %_TyDescrTy_Typ* @"$TyDescr_Message_196", %_TyDescrTy_Typ* @"$TyDescr_Int32_176"] @_tydescr_table_length = constant i32 16 -@_contract_parameters = constant [0 x %"$ParamDescr_2122"] zeroinitializer +@_contract_parameters = constant [0 x %"$ParamDescr_2124"] zeroinitializer @_contract_parameters_length = constant i32 0 -@_transition_parameters = constant [0 x %"$TransDescr_2123"] zeroinitializer +@_transition_parameters = constant [0 x %"$TransDescr_2125"] zeroinitializer @_transition_parameters_length = constant i32 0 -define internal %TName_Bool* @"$fundef_171"(%"$$fundef_171_env_224"* %0, %TName_Bool* %1) !dbg !4 { +define internal %TName_Bool* @"$fundef_171"(%"$$fundef_171_env_224"* %0, %TName_Bool* %1) !dbg !3 { entry: - %"$$fundef_171_env_b_237" = getelementptr inbounds %"$$fundef_171_env_224", %"$$fundef_171_env_224"* %0, i32 0, i32 0 - %"$b_envload_238" = load %TName_Bool*, %TName_Bool** %"$$fundef_171_env_b_237", align 8 + %"$c_268" = alloca %TName_Bool*, align 8 + store %TName_Bool* %1, %TName_Bool** %"$c_268", align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$c_268", metadata !9, metadata !DIExpression()), !dbg !12 + %"$$fundef_171_env_b_238" = getelementptr inbounds %"$$fundef_171_env_224", %"$$fundef_171_env_224"* %0, i32 0, i32 0 + %"$b_envload_239" = load %TName_Bool*, %TName_Bool** %"$$fundef_171_env_b_238", align 8 %b = alloca %TName_Bool*, align 8 - store %TName_Bool* %"$b_envload_238", %TName_Bool** %b, align 8 + store %TName_Bool* %"$b_envload_239", %TName_Bool** %b, align 8 %"$retval_172" = alloca %TName_Bool*, align 8 - %"$gasrem_239" = load i64, i64* @_gasrem, align 8 - %"$gascmp_240" = icmp ugt i64 2, %"$gasrem_239" - br i1 %"$gascmp_240", label %"$out_of_gas_241", label %"$have_gas_242" - -"$out_of_gas_241": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_242" - -"$have_gas_242": ; preds = %"$out_of_gas_241", %entry - %"$consume_243" = sub i64 %"$gasrem_239", 2 - store i64 %"$consume_243", i64* @_gasrem, align 8 - %"$b_245" = load %TName_Bool*, %TName_Bool** %b, align 8 - %"$b_tag_246" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$b_245", i32 0, i32 0 - %"$b_tag_247" = load i8, i8* %"$b_tag_246", align 1 - switch i8 %"$b_tag_247", label %"$empty_default_248" [ - i8 1, label %"$False_249" - i8 0, label %"$True_259" - ], !dbg !9 - -"$False_249": ; preds = %"$have_gas_242" - %"$b_250" = bitcast %TName_Bool* %"$b_245" to %CName_False* - %"$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 = %"$False_249" - call void @_out_of_gas() - br label %"$have_gas_254" - -"$have_gas_254": ; preds = %"$out_of_gas_253", %"$False_249" - %"$consume_255" = sub i64 %"$gasrem_251", 1 - store i64 %"$consume_255", i64* @_gasrem, align 8 - %"$adtval_256_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_256_salloc" = call i8* @_salloc(i8* %"$adtval_256_load", i64 1) - %"$adtval_256" = bitcast i8* %"$adtval_256_salloc" to %CName_False* - %"$adtgep_257" = getelementptr inbounds %CName_False, %CName_False* %"$adtval_256", i32 0, i32 0 - store i8 1, i8* %"$adtgep_257", align 1 - %"$adtptr_258" = bitcast %CName_False* %"$adtval_256" to %TName_Bool* - store %TName_Bool* %"$adtptr_258", %TName_Bool** %"$retval_172", align 8, !dbg !10 - br label %"$matchsucc_244" - -"$True_259": ; preds = %"$have_gas_242" - %"$b_260" = bitcast %TName_Bool* %"$b_245" to %CName_True* - %"$gasrem_261" = load i64, i64* @_gasrem, align 8 - %"$gascmp_262" = icmp ugt i64 1, %"$gasrem_261" - br i1 %"$gascmp_262", label %"$out_of_gas_263", label %"$have_gas_264" - -"$out_of_gas_263": ; preds = %"$True_259" - call void @_out_of_gas() - br label %"$have_gas_264" - -"$have_gas_264": ; preds = %"$out_of_gas_263", %"$True_259" - %"$consume_265" = sub i64 %"$gasrem_261", 1 - store i64 %"$consume_265", i64* @_gasrem, align 8 - store %TName_Bool* %1, %TName_Bool** %"$retval_172", align 8, !dbg !13 - br label %"$matchsucc_244" - -"$empty_default_248": ; preds = %"$have_gas_242" - br label %"$matchsucc_244" - -"$matchsucc_244": ; preds = %"$have_gas_264", %"$have_gas_254", %"$empty_default_248" - %"$$retval_172_266" = load %TName_Bool*, %TName_Bool** %"$retval_172", align 8 - ret %TName_Bool* %"$$retval_172_266" + call void @llvm.dbg.declare(metadata %TName_Bool** %"$retval_172", metadata !13, metadata !DIExpression()), !dbg !14 + %"$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 = %entry + call void @_out_of_gas() + br label %"$have_gas_243" + +"$have_gas_243": ; preds = %"$out_of_gas_242", %entry + %"$consume_244" = sub i64 %"$gasrem_240", 2 + store i64 %"$consume_244", i64* @_gasrem, align 8 + %"$b_246" = load %TName_Bool*, %TName_Bool** %b, align 8 + %"$b_tag_247" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$b_246", i32 0, i32 0 + %"$b_tag_248" = load i8, i8* %"$b_tag_247", align 1 + switch i8 %"$b_tag_248", label %"$empty_default_249" [ + i8 1, label %"$False_250" + i8 0, label %"$True_260" + ], !dbg !14 + +"$False_250": ; preds = %"$have_gas_243" + %"$b_251" = bitcast %TName_Bool* %"$b_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 + %"$adtval_257_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_257_salloc" = call i8* @_salloc(i8* %"$adtval_257_load", i64 1) + %"$adtval_257" = bitcast i8* %"$adtval_257_salloc" to %CName_False* + %"$adtgep_258" = getelementptr inbounds %CName_False, %CName_False* %"$adtval_257", i32 0, i32 0 + store i8 1, i8* %"$adtgep_258", align 1 + %"$adtptr_259" = bitcast %CName_False* %"$adtval_257" to %TName_Bool* + store %TName_Bool* %"$adtptr_259", %TName_Bool** %"$retval_172", align 8, !dbg !15 + br label %"$matchsucc_245" + +"$True_260": ; preds = %"$have_gas_243" + %"$b_261" = bitcast %TName_Bool* %"$b_246" to %CName_True* + %"$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 = %"$True_260" + call void @_out_of_gas() + br label %"$have_gas_265" + +"$have_gas_265": ; preds = %"$out_of_gas_264", %"$True_260" + %"$consume_266" = sub i64 %"$gasrem_262", 1 + store i64 %"$consume_266", i64* @_gasrem, align 8 + store %TName_Bool* %1, %TName_Bool** %"$retval_172", align 8, !dbg !18 + br label %"$matchsucc_245" + +"$empty_default_249": ; preds = %"$have_gas_243" + br label %"$matchsucc_245" + +"$matchsucc_245": ; preds = %"$have_gas_265", %"$have_gas_255", %"$empty_default_249" + %"$$retval_172_267" = load %TName_Bool*, %TName_Bool** %"$retval_172", align 8 + ret %TName_Bool* %"$$retval_172_267" } -define internal { %TName_Bool* (i8*, %TName_Bool*)*, i8* } @"$fundef_169"(%"$$fundef_169_env_225"* %0, %TName_Bool* %1) !dbg !15 { +define internal { %TName_Bool* (i8*, %TName_Bool*)*, i8* } @"$fundef_169"(%"$$fundef_169_env_225"* %0, %TName_Bool* %1) !dbg !20 { entry: + %"$b_237" = alloca %TName_Bool*, align 8 + store %TName_Bool* %1, %TName_Bool** %"$b_237", align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$b_237", metadata !21, metadata !DIExpression()), !dbg !22 %"$retval_170" = alloca { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, align 8 %"$gasrem_226" = load i64, i64* @_gasrem, align 8 %"$gascmp_227" = icmp ugt i64 1, %"$gasrem_226" @@ -371,7 +378,7 @@ entry: %"$$fundef_171_cloval_234" = insertvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } { %TName_Bool* (i8*, %TName_Bool*)* bitcast (%TName_Bool* (%"$$fundef_171_env_224"*, %TName_Bool*)* @"$fundef_171" to %TName_Bool* (i8*, %TName_Bool*)*), i8* undef }, i8* %"$$fundef_171_env_voidp_233", 1 %"$$fundef_171_env_b_235" = getelementptr inbounds %"$$fundef_171_env_224", %"$$fundef_171_env_224"* %"$$fundef_171_envp_231", i32 0, i32 0 store %TName_Bool* %1, %TName_Bool** %"$$fundef_171_env_b_235", align 8 - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$fundef_171_cloval_234", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$retval_170", align 8, !dbg !16 + store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$fundef_171_cloval_234", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$retval_170", align 8, !dbg !23 %"$$retval_170_236" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$retval_170", align 8 ret { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$retval_170_236" } @@ -380,3781 +387,3933 @@ declare void @_out_of_gas() declare i8* @_salloc(i8*, i64) -define void @_init_libs() !dbg !17 { +; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn +declare void @llvm.dbg.declare(metadata, metadata, metadata) #0 + +define void @_init_libs() !dbg !24 { entry: - %"$gasrem_267" = load i64, i64* @_gasrem, align 8 - %"$gascmp_268" = icmp ugt i64 5, %"$gasrem_267" - br i1 %"$gascmp_268", label %"$out_of_gas_269", label %"$have_gas_270" + %"$gasrem_269" = load i64, i64* @_gasrem, align 8 + %"$gascmp_270" = icmp ugt i64 5, %"$gasrem_269" + br i1 %"$gascmp_270", label %"$out_of_gas_271", label %"$have_gas_272" -"$out_of_gas_269": ; preds = %entry +"$out_of_gas_271": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_270" + br label %"$have_gas_272" -"$have_gas_270": ; preds = %"$out_of_gas_269", %entry - %"$consume_271" = sub i64 %"$gasrem_267", 5 - store i64 %"$consume_271", i64* @_gasrem, align 8 - store %Int32 { i32 5 }, %Int32* @"$_gas_charge_accrec_lib_5", align 4, !dbg !19 - %"$gasrem_272" = load i64, i64* @_gasrem, align 8 - %"$gascmp_273" = icmp ugt i64 7, %"$gasrem_272" - br i1 %"$gascmp_273", label %"$out_of_gas_274", label %"$have_gas_275" +"$have_gas_272": ; preds = %"$out_of_gas_271", %entry + %"$consume_273" = sub i64 %"$gasrem_269", 5 + store i64 %"$consume_273", i64* @_gasrem, align 8 + store %Int32 { i32 5 }, %Int32* @"$_gas_charge_accrec_lib_5", align 4, !dbg !26 + %"$gasrem_274" = load i64, i64* @_gasrem, align 8 + %"$gascmp_275" = icmp ugt i64 7, %"$gasrem_274" + br i1 %"$gascmp_275", label %"$out_of_gas_276", label %"$have_gas_277" -"$out_of_gas_274": ; preds = %"$have_gas_270" +"$out_of_gas_276": ; preds = %"$have_gas_272" call void @_out_of_gas() - br label %"$have_gas_275" + br label %"$have_gas_277" -"$have_gas_275": ; preds = %"$out_of_gas_274", %"$have_gas_270" - %"$consume_276" = sub i64 %"$gasrem_272", 7 - store i64 %"$consume_276", i64* @_gasrem, align 8 - store %Int32 { i32 7 }, %Int32* @"$_gas_charge_accBoolUtils_0", align 4, !dbg !19 - %"$gasrem_277" = load i64, i64* @_gasrem, align 8 - %"$gascmp_278" = icmp ugt i64 1, %"$gasrem_277" - br i1 %"$gascmp_278", label %"$out_of_gas_279", label %"$have_gas_280" +"$have_gas_277": ; preds = %"$out_of_gas_276", %"$have_gas_272" + %"$consume_278" = sub i64 %"$gasrem_274", 7 + store i64 %"$consume_278", i64* @_gasrem, align 8 + store %Int32 { i32 7 }, %Int32* @"$_gas_charge_accBoolUtils_0", align 4, !dbg !26 + %"$gasrem_279" = load i64, i64* @_gasrem, align 8 + %"$gascmp_280" = icmp ugt i64 1, %"$gasrem_279" + br i1 %"$gascmp_280", label %"$out_of_gas_281", label %"$have_gas_282" -"$out_of_gas_279": ; preds = %"$have_gas_275" +"$out_of_gas_281": ; preds = %"$have_gas_277" call void @_out_of_gas() - br label %"$have_gas_280" + br label %"$have_gas_282" -"$have_gas_280": ; preds = %"$out_of_gas_279", %"$have_gas_275" - %"$consume_281" = sub i64 %"$gasrem_277", 1 - store i64 %"$consume_281", 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_169_env_225"*, %TName_Bool*)* @"$fundef_169" 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 !20 - %"$gasrem_285" = load i64, i64* @_gasrem, align 8 - %"$gascmp_286" = icmp ugt i64 196, %"$gasrem_285" - br i1 %"$gascmp_286", label %"$out_of_gas_287", label %"$have_gas_288" +"$have_gas_282": ; preds = %"$out_of_gas_281", %"$have_gas_277" + %"$consume_283" = sub i64 %"$gasrem_279", 1 + store i64 %"$consume_283", 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_169_env_225"*, %TName_Bool*)* @"$fundef_169" 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 !27 + %"$gasrem_287" = load i64, i64* @_gasrem, align 8 + %"$gascmp_288" = icmp ugt i64 196, %"$gasrem_287" + br i1 %"$gascmp_288", label %"$out_of_gas_289", label %"$have_gas_290" -"$out_of_gas_287": ; preds = %"$have_gas_280" +"$out_of_gas_289": ; preds = %"$have_gas_282" call void @_out_of_gas() - br label %"$have_gas_288" + br label %"$have_gas_290" -"$have_gas_288": ; preds = %"$out_of_gas_287", %"$have_gas_280" - %"$consume_289" = sub i64 %"$gasrem_285", 196 - store i64 %"$consume_289", i64* @_gasrem, align 8 - store %Int32 { i32 196 }, %Int32* @"$_gas_charge_accIntUtils_1", align 4, !dbg !19 - %"$gasrem_290" = load i64, i64* @_gasrem, align 8 - %"$gascmp_291" = icmp ugt i64 20, %"$gasrem_290" - br i1 %"$gascmp_291", label %"$out_of_gas_292", label %"$have_gas_293" +"$have_gas_290": ; preds = %"$out_of_gas_289", %"$have_gas_282" + %"$consume_291" = sub i64 %"$gasrem_287", 196 + store i64 %"$consume_291", i64* @_gasrem, align 8 + store %Int32 { i32 196 }, %Int32* @"$_gas_charge_accIntUtils_1", align 4, !dbg !26 + %"$gasrem_292" = load i64, i64* @_gasrem, align 8 + %"$gascmp_293" = icmp ugt i64 20, %"$gasrem_292" + br i1 %"$gascmp_293", label %"$out_of_gas_294", label %"$have_gas_295" -"$out_of_gas_292": ; preds = %"$have_gas_288" +"$out_of_gas_294": ; preds = %"$have_gas_290" call void @_out_of_gas() - br label %"$have_gas_293" + br label %"$have_gas_295" -"$have_gas_293": ; preds = %"$out_of_gas_292", %"$have_gas_288" - %"$consume_294" = sub i64 %"$gasrem_290", 20 - store i64 %"$consume_294", i64* @_gasrem, align 8 - store %Int32 { i32 20 }, %Int32* @"$_gas_charge_accListUtils_2", align 4, !dbg !19 - %"$gasrem_295" = load i64, i64* @_gasrem, align 8 - %"$gascmp_296" = icmp ugt i64 12, %"$gasrem_295" - br i1 %"$gascmp_296", label %"$out_of_gas_297", label %"$have_gas_298" +"$have_gas_295": ; preds = %"$out_of_gas_294", %"$have_gas_290" + %"$consume_296" = sub i64 %"$gasrem_292", 20 + store i64 %"$consume_296", i64* @_gasrem, align 8 + store %Int32 { i32 20 }, %Int32* @"$_gas_charge_accListUtils_2", align 4, !dbg !26 + %"$gasrem_297" = load i64, i64* @_gasrem, align 8 + %"$gascmp_298" = icmp ugt i64 12, %"$gasrem_297" + br i1 %"$gascmp_298", label %"$out_of_gas_299", label %"$have_gas_300" -"$out_of_gas_297": ; preds = %"$have_gas_293" +"$out_of_gas_299": ; preds = %"$have_gas_295" call void @_out_of_gas() - br label %"$have_gas_298" + br label %"$have_gas_300" -"$have_gas_298": ; preds = %"$out_of_gas_297", %"$have_gas_293" - %"$consume_299" = sub i64 %"$gasrem_295", 12 - store i64 %"$consume_299", i64* @_gasrem, align 8 - store %Int32 { i32 12 }, %Int32* @"$_gas_charge_accNatUtils_3", align 4, !dbg !19 - %"$gasrem_300" = load i64, i64* @_gasrem, align 8 - %"$gascmp_301" = icmp ugt i64 2, %"$gasrem_300" - br i1 %"$gascmp_301", label %"$out_of_gas_302", label %"$have_gas_303" +"$have_gas_300": ; preds = %"$out_of_gas_299", %"$have_gas_295" + %"$consume_301" = sub i64 %"$gasrem_297", 12 + store i64 %"$consume_301", i64* @_gasrem, align 8 + store %Int32 { i32 12 }, %Int32* @"$_gas_charge_accNatUtils_3", align 4, !dbg !26 + %"$gasrem_302" = load i64, i64* @_gasrem, align 8 + %"$gascmp_303" = icmp ugt i64 2, %"$gasrem_302" + br i1 %"$gascmp_303", label %"$out_of_gas_304", label %"$have_gas_305" -"$out_of_gas_302": ; preds = %"$have_gas_298" +"$out_of_gas_304": ; preds = %"$have_gas_300" call void @_out_of_gas() - br label %"$have_gas_303" + br label %"$have_gas_305" -"$have_gas_303": ; preds = %"$out_of_gas_302", %"$have_gas_298" - %"$consume_304" = sub i64 %"$gasrem_300", 2 - store i64 %"$consume_304", i64* @_gasrem, align 8 - store %Int32 { i32 2 }, %Int32* @"$_gas_charge_accPairUtils_4", align 4, !dbg !19 +"$have_gas_305": ; preds = %"$out_of_gas_304", %"$have_gas_300" + %"$consume_306" = sub i64 %"$gasrem_302", 2 + store i64 %"$consume_306", i64* @_gasrem, align 8 + store %Int32 { i32 2 }, %Int32* @"$_gas_charge_accPairUtils_4", align 4, !dbg !26 ret void } -define internal %TName_Bool* @_scilla_expr_fun(i8* %0) !dbg !21 { +define internal %TName_Bool* @_scilla_expr_fun(i8* %0) !dbg !28 { entry: %"$expr_173" = alloca %TName_Bool*, 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" + call void @llvm.dbg.declare(metadata %TName_Bool** %"$expr_173", metadata !29, metadata !DIExpression()), !dbg !30 + %"$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_307": ; preds = %entry +"$out_of_gas_309": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_308" + br label %"$have_gas_310" -"$have_gas_308": ; preds = %"$out_of_gas_307", %entry - %"$consume_309" = sub i64 %"$gasrem_305", 1 - store i64 %"$consume_309", i64* @_gasrem, align 8 - %"$gasrem_310" = load i64, i64* @_gasrem, align 8 - %"$gascmp_311" = icmp ugt i64 1, %"$gasrem_310" - br i1 %"$gascmp_311", label %"$out_of_gas_312", label %"$have_gas_313" +"$have_gas_310": ; preds = %"$out_of_gas_309", %entry + %"$consume_311" = sub i64 %"$gasrem_307", 1 + store i64 %"$consume_311", i64* @_gasrem, 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_312": ; preds = %"$have_gas_308" +"$out_of_gas_314": ; preds = %"$have_gas_310" call void @_out_of_gas() - br label %"$have_gas_313" + br label %"$have_gas_315" -"$have_gas_313": ; preds = %"$out_of_gas_312", %"$have_gas_308" - %"$consume_314" = sub i64 %"$gasrem_310", 1 - store i64 %"$consume_314", i64* @_gasrem, align 8 - %"$gasrem_315" = load i64, i64* @_gasrem, align 8 - %"$gascmp_316" = icmp ugt i64 1, %"$gasrem_315" - br i1 %"$gascmp_316", label %"$out_of_gas_317", label %"$have_gas_318" +"$have_gas_315": ; preds = %"$out_of_gas_314", %"$have_gas_310" + %"$consume_316" = sub i64 %"$gasrem_312", 1 + store i64 %"$consume_316", i64* @_gasrem, 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_317": ; preds = %"$have_gas_313" +"$out_of_gas_319": ; preds = %"$have_gas_315" call void @_out_of_gas() - br label %"$have_gas_318" + br label %"$have_gas_320" -"$have_gas_318": ; preds = %"$out_of_gas_317", %"$have_gas_313" - %"$consume_319" = sub i64 %"$gasrem_315", 1 - store i64 %"$consume_319", i64* @_gasrem, align 8 +"$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 %test = alloca %TName_Bool*, align 8 - %"$gasrem_320" = load i64, i64* @_gasrem, align 8 - %"$gascmp_321" = icmp ugt i64 1, %"$gasrem_320" - br i1 %"$gascmp_321", label %"$out_of_gas_322", label %"$have_gas_323" - -"$out_of_gas_322": ; preds = %"$have_gas_318" - call void @_out_of_gas() - br label %"$have_gas_323" - -"$have_gas_323": ; preds = %"$out_of_gas_322", %"$have_gas_318" - %"$consume_324" = sub i64 %"$gasrem_320", 1 - store i64 %"$consume_324", i64* @_gasrem, align 8 - %"$adtval_325_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_325_salloc" = call i8* @_salloc(i8* %"$adtval_325_load", i64 1) - %"$adtval_325" = bitcast i8* %"$adtval_325_salloc" to %CName_True* - %"$adtgep_326" = getelementptr inbounds %CName_True, %CName_True* %"$adtval_325", i32 0, i32 0 - store i8 0, i8* %"$adtgep_326", align 1 - %"$adtptr_327" = bitcast %CName_True* %"$adtval_325" to %TName_Bool* - store %TName_Bool* %"$adtptr_327", %TName_Bool** %test, align 8, !dbg !22 - %"$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" - -"$out_of_gas_330": ; preds = %"$have_gas_323" - call void @_out_of_gas() - br label %"$have_gas_331" - -"$have_gas_331": ; preds = %"$out_of_gas_330", %"$have_gas_323" - %"$consume_332" = sub i64 %"$gasrem_328", 1 - store i64 %"$consume_332", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %test, metadata !31, metadata !DIExpression()), !dbg !32 + %"$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_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 + %"$adtval_327_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_327_salloc" = call i8* @_salloc(i8* %"$adtval_327_load", i64 1) + %"$adtval_327" = bitcast i8* %"$adtval_327_salloc" to %CName_True* + %"$adtgep_328" = getelementptr inbounds %CName_True, %CName_True* %"$adtval_327", i32 0, i32 0 + store i8 0, i8* %"$adtgep_328", align 1 + %"$adtptr_329" = bitcast %CName_True* %"$adtval_327" to %TName_Bool* + store %TName_Bool* %"$adtptr_329", %TName_Bool** %test, align 8, !dbg !33 + %"$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_325" + call void @_out_of_gas() + br label %"$have_gas_333" + +"$have_gas_333": ; preds = %"$out_of_gas_332", %"$have_gas_325" + %"$consume_334" = sub i64 %"$gasrem_330", 1 + store i64 %"$consume_334", i64* @_gasrem, align 8 %arg1 = alloca %Uint32, align 8 - %"$gasrem_333" = load i64, i64* @_gasrem, align 8 - %"$gascmp_334" = icmp ugt i64 1, %"$gasrem_333" - br i1 %"$gascmp_334", label %"$out_of_gas_335", label %"$have_gas_336" + call void @llvm.dbg.declare(metadata %Uint32* %arg1, metadata !34, metadata !DIExpression()), !dbg !36 + %"$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_335": ; preds = %"$have_gas_331" +"$out_of_gas_337": ; preds = %"$have_gas_333" call void @_out_of_gas() - br label %"$have_gas_336" + br label %"$have_gas_338" -"$have_gas_336": ; preds = %"$out_of_gas_335", %"$have_gas_331" - %"$consume_337" = sub i64 %"$gasrem_333", 1 - store i64 %"$consume_337", i64* @_gasrem, align 8 - store %Uint32 { i32 1844 }, %Uint32* %arg1, align 4, !dbg !23 - %"$gasrem_338" = load i64, i64* @_gasrem, align 8 - %"$gascmp_339" = icmp ugt i64 1, %"$gasrem_338" - br i1 %"$gascmp_339", label %"$out_of_gas_340", label %"$have_gas_341" +"$have_gas_338": ; preds = %"$out_of_gas_337", %"$have_gas_333" + %"$consume_339" = sub i64 %"$gasrem_335", 1 + store i64 %"$consume_339", i64* @_gasrem, align 8 + store %Uint32 { i32 1844 }, %Uint32* %arg1, align 4, !dbg !37 + %"$gasrem_340" = load i64, i64* @_gasrem, align 8 + %"$gascmp_341" = icmp ugt i64 1, %"$gasrem_340" + br i1 %"$gascmp_341", label %"$out_of_gas_342", label %"$have_gas_343" -"$out_of_gas_340": ; preds = %"$have_gas_336" +"$out_of_gas_342": ; preds = %"$have_gas_338" call void @_out_of_gas() - br label %"$have_gas_341" + br label %"$have_gas_343" -"$have_gas_341": ; preds = %"$out_of_gas_340", %"$have_gas_336" - %"$consume_342" = sub i64 %"$gasrem_338", 1 - store i64 %"$consume_342", i64* @_gasrem, align 8 +"$have_gas_343": ; preds = %"$out_of_gas_342", %"$have_gas_338" + %"$consume_344" = sub i64 %"$gasrem_340", 1 + store i64 %"$consume_344", i64* @_gasrem, align 8 %arg2 = alloca %Uint32, align 8 - %"$gasrem_343" = load i64, i64* @_gasrem, align 8 - %"$gascmp_344" = icmp ugt i64 1, %"$gasrem_343" - br i1 %"$gascmp_344", label %"$out_of_gas_345", label %"$have_gas_346" + call void @llvm.dbg.declare(metadata %Uint32* %arg2, metadata !38, metadata !DIExpression()), !dbg !39 + %"$gasrem_345" = load i64, i64* @_gasrem, align 8 + %"$gascmp_346" = icmp ugt i64 1, %"$gasrem_345" + br i1 %"$gascmp_346", label %"$out_of_gas_347", label %"$have_gas_348" -"$out_of_gas_345": ; preds = %"$have_gas_341" +"$out_of_gas_347": ; preds = %"$have_gas_343" call void @_out_of_gas() - br label %"$have_gas_346" + br label %"$have_gas_348" -"$have_gas_346": ; preds = %"$out_of_gas_345", %"$have_gas_341" - %"$consume_347" = sub i64 %"$gasrem_343", 1 - store i64 %"$consume_347", i64* @_gasrem, align 8 - store %Uint32 { i32 1843 }, %Uint32* %arg2, align 4, !dbg !24 - %"$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" +"$have_gas_348": ; preds = %"$out_of_gas_347", %"$have_gas_343" + %"$consume_349" = sub i64 %"$gasrem_345", 1 + store i64 %"$consume_349", i64* @_gasrem, align 8 + store %Uint32 { i32 1843 }, %Uint32* %arg2, align 4, !dbg !40 + %"$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_350": ; preds = %"$have_gas_346" +"$out_of_gas_352": ; preds = %"$have_gas_348" call void @_out_of_gas() - br label %"$have_gas_351" + br label %"$have_gas_353" -"$have_gas_351": ; preds = %"$out_of_gas_350", %"$have_gas_346" - %"$consume_352" = sub i64 %"$gasrem_348", 1 - store i64 %"$consume_352", i64* @_gasrem, align 8 +"$have_gas_353": ; preds = %"$out_of_gas_352", %"$have_gas_348" + %"$consume_354" = sub i64 %"$gasrem_350", 1 + store i64 %"$consume_354", i64* @_gasrem, align 8 %"$test_6" = alloca %TName_Bool*, align 8 - %"$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" + call void @llvm.dbg.declare(metadata %TName_Bool** %"$test_6", metadata !41, metadata !DIExpression()), !dbg !42 + %"$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" -"$out_of_gas_355": ; preds = %"$have_gas_351" +"$out_of_gas_357": ; preds = %"$have_gas_353" call void @_out_of_gas() - br label %"$have_gas_356" + br label %"$have_gas_358" -"$have_gas_356": ; preds = %"$out_of_gas_355", %"$have_gas_351" - %"$consume_357" = sub i64 %"$gasrem_353", 1 - store i64 %"$consume_357", i64* @_gasrem, align 8 +"$have_gas_358": ; preds = %"$out_of_gas_357", %"$have_gas_353" + %"$consume_359" = sub i64 %"$gasrem_355", 1 + store i64 %"$consume_359", i64* @_gasrem, align 8 %res = alloca %Uint32, align 8 - %"$gasrem_358" = load i64, i64* @_gasrem, align 8 - %"$gascmp_359" = icmp ugt i64 20, %"$gasrem_358" - br i1 %"$gascmp_359", label %"$out_of_gas_360", label %"$have_gas_361" + call void @llvm.dbg.declare(metadata %Uint32* %res, metadata !43, metadata !DIExpression()), !dbg !44 + %"$gasrem_360" = load i64, i64* @_gasrem, align 8 + %"$gascmp_361" = icmp ugt i64 20, %"$gasrem_360" + br i1 %"$gascmp_361", label %"$out_of_gas_362", label %"$have_gas_363" -"$out_of_gas_360": ; preds = %"$have_gas_356" +"$out_of_gas_362": ; preds = %"$have_gas_358" call void @_out_of_gas() - br label %"$have_gas_361" + br label %"$have_gas_363" -"$have_gas_361": ; preds = %"$out_of_gas_360", %"$have_gas_356" - %"$consume_362" = sub i64 %"$gasrem_358", 20 - store i64 %"$consume_362", i64* @_gasrem, align 8 - %"$arg1_363" = load %Uint32, %Uint32* %arg1, align 4 - %"$arg2_364" = load %Uint32, %Uint32* %arg2, align 4 - %"$mul_call_365" = call %Uint32 @_mul_Uint32(%Uint32 %"$arg1_363", %Uint32 %"$arg2_364"), !dbg !25 - store %Uint32 %"$mul_call_365", %Uint32* %res, align 4, !dbg !25 - %"$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" +"$have_gas_363": ; preds = %"$out_of_gas_362", %"$have_gas_358" + %"$consume_364" = sub i64 %"$gasrem_360", 20 + store i64 %"$consume_364", i64* @_gasrem, align 8 + %"$arg1_365" = load %Uint32, %Uint32* %arg1, align 4 + %"$arg2_366" = load %Uint32, %Uint32* %arg2, align 4 + %"$mul_call_367" = call %Uint32 @_mul_Uint32(%Uint32 %"$arg1_365", %Uint32 %"$arg2_366"), !dbg !45 + store %Uint32 %"$mul_call_367", %Uint32* %res, align 4, !dbg !45 + %"$gasrem_368" = load i64, i64* @_gasrem, align 8 + %"$gascmp_369" = icmp ugt i64 1, %"$gasrem_368" + br i1 %"$gascmp_369", label %"$out_of_gas_370", label %"$have_gas_371" -"$out_of_gas_368": ; preds = %"$have_gas_361" +"$out_of_gas_370": ; preds = %"$have_gas_363" call void @_out_of_gas() - br label %"$have_gas_369" + br label %"$have_gas_371" -"$have_gas_369": ; preds = %"$out_of_gas_368", %"$have_gas_361" - %"$consume_370" = sub i64 %"$gasrem_366", 1 - store i64 %"$consume_370", i64* @_gasrem, align 8 +"$have_gas_371": ; preds = %"$out_of_gas_370", %"$have_gas_363" + %"$consume_372" = sub i64 %"$gasrem_368", 1 + store i64 %"$consume_372", i64* @_gasrem, align 8 %res_ = alloca %Uint32, 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" + call void @llvm.dbg.declare(metadata %Uint32* %res_, metadata !46, metadata !DIExpression()), !dbg !47 + %"$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_373": ; preds = %"$have_gas_369" +"$out_of_gas_375": ; preds = %"$have_gas_371" call void @_out_of_gas() - br label %"$have_gas_374" + br label %"$have_gas_376" -"$have_gas_374": ; preds = %"$out_of_gas_373", %"$have_gas_369" - %"$consume_375" = sub i64 %"$gasrem_371", 1 - store i64 %"$consume_375", i64* @_gasrem, align 8 - store %Uint32 { i32 3398492 }, %Uint32* %res_, align 4, !dbg !26 - %"$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" +"$have_gas_376": ; preds = %"$out_of_gas_375", %"$have_gas_371" + %"$consume_377" = sub i64 %"$gasrem_373", 1 + store i64 %"$consume_377", i64* @_gasrem, align 8 + store %Uint32 { i32 3398492 }, %Uint32* %res_, align 4, !dbg !48 + %"$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_378": ; preds = %"$have_gas_374" +"$out_of_gas_380": ; preds = %"$have_gas_376" call void @_out_of_gas() - br label %"$have_gas_379" + br label %"$have_gas_381" -"$have_gas_379": ; preds = %"$out_of_gas_378", %"$have_gas_374" - %"$consume_380" = sub i64 %"$gasrem_376", 1 - store i64 %"$consume_380", i64* @_gasrem, align 8 +"$have_gas_381": ; preds = %"$out_of_gas_380", %"$have_gas_376" + %"$consume_382" = sub i64 %"$gasrem_378", 1 + store i64 %"$consume_382", i64* @_gasrem, align 8 %test_ = alloca %TName_Bool*, align 8 - %"$gasrem_381" = load i64, i64* @_gasrem, align 8 - %"$gascmp_382" = icmp ugt i64 4, %"$gasrem_381" - br i1 %"$gascmp_382", label %"$out_of_gas_383", label %"$have_gas_384" - -"$out_of_gas_383": ; preds = %"$have_gas_379" - call void @_out_of_gas() - br label %"$have_gas_384" - -"$have_gas_384": ; preds = %"$out_of_gas_383", %"$have_gas_379" - %"$consume_385" = sub i64 %"$gasrem_381", 4 - store i64 %"$consume_385", i64* @_gasrem, align 8 - %"$execptr_load_386" = load i8*, i8** @_execptr, align 8 - %"$res_387" = load %Uint32, %Uint32* %res, align 4 - %"$res__388" = load %Uint32, %Uint32* %res_, align 4 - %"$eq_call_389" = call %TName_Bool* @_eq_Uint32(i8* %"$execptr_load_386", %Uint32 %"$res_387", %Uint32 %"$res__388"), !dbg !27 - store %TName_Bool* %"$eq_call_389", %TName_Bool** %test_, align 8, !dbg !27 - %"$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_384" - call void @_out_of_gas() - br label %"$have_gas_394" - -"$have_gas_394": ; preds = %"$out_of_gas_393", %"$have_gas_384" - %"$consume_395" = sub i64 %"$gasrem_391", 1 - store i64 %"$consume_395", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %test_, metadata !49, metadata !DIExpression()), !dbg !50 + %"$gasrem_383" = load i64, i64* @_gasrem, align 8 + %"$gascmp_384" = icmp ugt i64 4, %"$gasrem_383" + br i1 %"$gascmp_384", label %"$out_of_gas_385", label %"$have_gas_386" + +"$out_of_gas_385": ; preds = %"$have_gas_381" + call void @_out_of_gas() + br label %"$have_gas_386" + +"$have_gas_386": ; preds = %"$out_of_gas_385", %"$have_gas_381" + %"$consume_387" = sub i64 %"$gasrem_383", 4 + store i64 %"$consume_387", i64* @_gasrem, align 8 + %"$execptr_load_388" = load i8*, i8** @_execptr, align 8 + %"$res_389" = load %Uint32, %Uint32* %res, align 4 + %"$res__390" = load %Uint32, %Uint32* %res_, align 4 + %"$eq_call_391" = call %TName_Bool* @_eq_Uint32(i8* %"$execptr_load_388", %Uint32 %"$res_389", %Uint32 %"$res__390"), !dbg !51 + store %TName_Bool* %"$eq_call_391", %TName_Bool** %test_, align 8, !dbg !51 + %"$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 = %"$have_gas_386" + call void @_out_of_gas() + br label %"$have_gas_396" + +"$have_gas_396": ; preds = %"$out_of_gas_395", %"$have_gas_386" + %"$consume_397" = sub i64 %"$gasrem_393", 1 + store i64 %"$consume_397", i64* @_gasrem, align 8 %"$BoolUtils.andb_127" = alloca { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, align 8 - %"$BoolUtils.andb_396" = 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_397" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_396", 0 - %"$BoolUtils.andb_envptr_398" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_396", 1 - %"$test_399" = load %TName_Bool*, %TName_Bool** %test, align 8 - %"$BoolUtils.andb_call_400" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_397"(i8* %"$BoolUtils.andb_envptr_398", %TName_Bool* %"$test_399"), !dbg !28 - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_400", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_127", align 8, !dbg !28 + %"$BoolUtils.andb_398" = 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_399" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_398", 0 + %"$BoolUtils.andb_envptr_400" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_398", 1 + %"$test_401" = load %TName_Bool*, %TName_Bool** %test, align 8 + %"$BoolUtils.andb_call_402" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_399"(i8* %"$BoolUtils.andb_envptr_400", %TName_Bool* %"$test_401"), !dbg !52 + store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_402", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_127", align 8, !dbg !52 %"$BoolUtils.andb_128" = alloca %TName_Bool*, align 8 - %"$$BoolUtils.andb_127_401" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_127", align 8 - %"$$BoolUtils.andb_127_fptr_402" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_127_401", 0 - %"$$BoolUtils.andb_127_envptr_403" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_127_401", 1 - %"$test__404" = load %TName_Bool*, %TName_Bool** %test_, align 8 - %"$$BoolUtils.andb_127_call_405" = call %TName_Bool* %"$$BoolUtils.andb_127_fptr_402"(i8* %"$$BoolUtils.andb_127_envptr_403", %TName_Bool* %"$test__404"), !dbg !28 - store %TName_Bool* %"$$BoolUtils.andb_127_call_405", %TName_Bool** %"$BoolUtils.andb_128", align 8, !dbg !28 - %"$$BoolUtils.andb_128_406" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_128", align 8 - store %TName_Bool* %"$$BoolUtils.andb_128_406", %TName_Bool** %"$test_6", align 8, !dbg !28 - %"$gasrem_407" = load i64, i64* @_gasrem, align 8 - %"$gascmp_408" = icmp ugt i64 1, %"$gasrem_407" - br i1 %"$gascmp_408", label %"$out_of_gas_409", label %"$have_gas_410" - -"$out_of_gas_409": ; preds = %"$have_gas_394" - call void @_out_of_gas() - br label %"$have_gas_410" - -"$have_gas_410": ; preds = %"$out_of_gas_409", %"$have_gas_394" - %"$consume_411" = sub i64 %"$gasrem_407", 1 - store i64 %"$consume_411", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$BoolUtils.andb_128", metadata !53, metadata !DIExpression()), !dbg !52 + %"$$BoolUtils.andb_127_403" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_127", align 8 + %"$$BoolUtils.andb_127_fptr_404" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_127_403", 0 + %"$$BoolUtils.andb_127_envptr_405" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_127_403", 1 + %"$test__406" = load %TName_Bool*, %TName_Bool** %test_, align 8 + %"$$BoolUtils.andb_127_call_407" = call %TName_Bool* %"$$BoolUtils.andb_127_fptr_404"(i8* %"$$BoolUtils.andb_127_envptr_405", %TName_Bool* %"$test__406"), !dbg !52 + store %TName_Bool* %"$$BoolUtils.andb_127_call_407", %TName_Bool** %"$BoolUtils.andb_128", align 8, !dbg !52 + %"$$BoolUtils.andb_128_408" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_128", align 8 + store %TName_Bool* %"$$BoolUtils.andb_128_408", %TName_Bool** %"$test_6", align 8, !dbg !52 + %"$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_396" + call void @_out_of_gas() + br label %"$have_gas_412" + +"$have_gas_412": ; preds = %"$out_of_gas_411", %"$have_gas_396" + %"$consume_413" = sub i64 %"$gasrem_409", 1 + store i64 %"$consume_413", i64* @_gasrem, align 8 %"$arg2_7" = alloca %Int32, align 8 - %"$gasrem_412" = load i64, i64* @_gasrem, align 8 - %"$gascmp_413" = icmp ugt i64 1, %"$gasrem_412" - br i1 %"$gascmp_413", label %"$out_of_gas_414", label %"$have_gas_415" + call void @llvm.dbg.declare(metadata %Int32* %"$arg2_7", metadata !54, metadata !DIExpression()), !dbg !56 + %"$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_414": ; preds = %"$have_gas_410" +"$out_of_gas_416": ; preds = %"$have_gas_412" call void @_out_of_gas() - br label %"$have_gas_415" + br label %"$have_gas_417" -"$have_gas_415": ; preds = %"$out_of_gas_414", %"$have_gas_410" - %"$consume_416" = sub i64 %"$gasrem_412", 1 - store i64 %"$consume_416", i64* @_gasrem, align 8 - store %Int32 { i32 1844 }, %Int32* %"$arg2_7", align 4, !dbg !29 - %"$gasrem_417" = load i64, i64* @_gasrem, align 8 - %"$gascmp_418" = icmp ugt i64 1, %"$gasrem_417" - br i1 %"$gascmp_418", label %"$out_of_gas_419", label %"$have_gas_420" +"$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 %Int32 { i32 1844 }, %Int32* %"$arg2_7", align 4, !dbg !57 + %"$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_419": ; preds = %"$have_gas_415" +"$out_of_gas_421": ; preds = %"$have_gas_417" call void @_out_of_gas() - br label %"$have_gas_420" + br label %"$have_gas_422" -"$have_gas_420": ; preds = %"$out_of_gas_419", %"$have_gas_415" - %"$consume_421" = sub i64 %"$gasrem_417", 1 - store i64 %"$consume_421", 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 %"$arg1_8" = alloca %Int32, 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" + call void @llvm.dbg.declare(metadata %Int32* %"$arg1_8", metadata !58, metadata !DIExpression()), !dbg !59 + %"$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_424": ; preds = %"$have_gas_420" +"$out_of_gas_426": ; preds = %"$have_gas_422" call void @_out_of_gas() - br label %"$have_gas_425" + br label %"$have_gas_427" -"$have_gas_425": ; preds = %"$out_of_gas_424", %"$have_gas_420" - %"$consume_426" = sub i64 %"$gasrem_422", 1 - store i64 %"$consume_426", i64* @_gasrem, align 8 - store %Int32 { i32 -1843 }, %Int32* %"$arg1_8", align 4, !dbg !30 - %"$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" +"$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 + store %Int32 { i32 -1843 }, %Int32* %"$arg1_8", align 4, !dbg !60 + %"$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_429": ; preds = %"$have_gas_425" +"$out_of_gas_431": ; preds = %"$have_gas_427" call void @_out_of_gas() - br label %"$have_gas_430" + br label %"$have_gas_432" -"$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 +"$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 %"$test_12" = alloca %TName_Bool*, align 8 - %"$gasrem_432" = load i64, i64* @_gasrem, align 8 - %"$gascmp_433" = icmp ugt i64 1, %"$gasrem_432" - br i1 %"$gascmp_433", label %"$out_of_gas_434", label %"$have_gas_435" + call void @llvm.dbg.declare(metadata %TName_Bool** %"$test_12", metadata !61, metadata !DIExpression()), !dbg !62 + %"$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_434": ; preds = %"$have_gas_430" +"$out_of_gas_436": ; preds = %"$have_gas_432" call void @_out_of_gas() - br label %"$have_gas_435" + br label %"$have_gas_437" -"$have_gas_435": ; preds = %"$out_of_gas_434", %"$have_gas_430" - %"$consume_436" = sub i64 %"$gasrem_432", 1 - store i64 %"$consume_436", 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 %"$res_9" = alloca %Int32, align 8 - %"$gasrem_437" = load i64, i64* @_gasrem, align 8 - %"$gascmp_438" = icmp ugt i64 20, %"$gasrem_437" - br i1 %"$gascmp_438", label %"$out_of_gas_439", label %"$have_gas_440" + call void @llvm.dbg.declare(metadata %Int32* %"$res_9", metadata !63, metadata !DIExpression()), !dbg !64 + %"$gasrem_439" = load i64, i64* @_gasrem, align 8 + %"$gascmp_440" = icmp ugt i64 20, %"$gasrem_439" + br i1 %"$gascmp_440", label %"$out_of_gas_441", label %"$have_gas_442" -"$out_of_gas_439": ; preds = %"$have_gas_435" +"$out_of_gas_441": ; preds = %"$have_gas_437" call void @_out_of_gas() - br label %"$have_gas_440" + br label %"$have_gas_442" -"$have_gas_440": ; preds = %"$out_of_gas_439", %"$have_gas_435" - %"$consume_441" = sub i64 %"$gasrem_437", 20 - store i64 %"$consume_441", i64* @_gasrem, align 8 - %"$$arg1_8_442" = load %Int32, %Int32* %"$arg1_8", align 4 - %"$$arg2_7_443" = load %Int32, %Int32* %"$arg2_7", align 4 - %"$mul_call_444" = call %Int32 @_mul_Int32(%Int32 %"$$arg1_8_442", %Int32 %"$$arg2_7_443"), !dbg !31 - store %Int32 %"$mul_call_444", %Int32* %"$res_9", align 4, !dbg !31 - %"$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_442": ; preds = %"$out_of_gas_441", %"$have_gas_437" + %"$consume_443" = sub i64 %"$gasrem_439", 20 + store i64 %"$consume_443", i64* @_gasrem, align 8 + %"$$arg1_8_444" = load %Int32, %Int32* %"$arg1_8", align 4 + %"$$arg2_7_445" = load %Int32, %Int32* %"$arg2_7", align 4 + %"$mul_call_446" = call %Int32 @_mul_Int32(%Int32 %"$$arg1_8_444", %Int32 %"$$arg2_7_445"), !dbg !65 + store %Int32 %"$mul_call_446", %Int32* %"$res_9", align 4, !dbg !65 + %"$gasrem_447" = load i64, i64* @_gasrem, align 8 + %"$gascmp_448" = icmp ugt i64 1, %"$gasrem_447" + br i1 %"$gascmp_448", label %"$out_of_gas_449", label %"$have_gas_450" -"$out_of_gas_447": ; preds = %"$have_gas_440" +"$out_of_gas_449": ; preds = %"$have_gas_442" call void @_out_of_gas() - br label %"$have_gas_448" + br label %"$have_gas_450" -"$have_gas_448": ; preds = %"$out_of_gas_447", %"$have_gas_440" - %"$consume_449" = sub i64 %"$gasrem_445", 1 - store i64 %"$consume_449", i64* @_gasrem, align 8 +"$have_gas_450": ; preds = %"$out_of_gas_449", %"$have_gas_442" + %"$consume_451" = sub i64 %"$gasrem_447", 1 + store i64 %"$consume_451", i64* @_gasrem, align 8 %"$res__10" = alloca %Int32, 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" + call void @llvm.dbg.declare(metadata %Int32* %"$res__10", metadata !66, metadata !DIExpression()), !dbg !67 + %"$gasrem_452" = load i64, i64* @_gasrem, align 8 + %"$gascmp_453" = icmp ugt i64 1, %"$gasrem_452" + br i1 %"$gascmp_453", label %"$out_of_gas_454", label %"$have_gas_455" -"$out_of_gas_452": ; preds = %"$have_gas_448" +"$out_of_gas_454": ; preds = %"$have_gas_450" call void @_out_of_gas() - br label %"$have_gas_453" + br label %"$have_gas_455" -"$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 %Int32 { i32 -3398492 }, %Int32* %"$res__10", align 4, !dbg !32 - %"$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_455": ; preds = %"$out_of_gas_454", %"$have_gas_450" + %"$consume_456" = sub i64 %"$gasrem_452", 1 + store i64 %"$consume_456", i64* @_gasrem, align 8 + store %Int32 { i32 -3398492 }, %Int32* %"$res__10", align 4, !dbg !68 + %"$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_457": ; preds = %"$have_gas_453" +"$out_of_gas_459": ; preds = %"$have_gas_455" call void @_out_of_gas() - br label %"$have_gas_458" + br label %"$have_gas_460" -"$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_460": ; preds = %"$out_of_gas_459", %"$have_gas_455" + %"$consume_461" = sub i64 %"$gasrem_457", 1 + store i64 %"$consume_461", i64* @_gasrem, align 8 %"$test__11" = alloca %TName_Bool*, align 8 - %"$gasrem_460" = load i64, i64* @_gasrem, align 8 - %"$gascmp_461" = icmp ugt i64 4, %"$gasrem_460" - br i1 %"$gascmp_461", label %"$out_of_gas_462", label %"$have_gas_463" - -"$out_of_gas_462": ; preds = %"$have_gas_458" - call void @_out_of_gas() - br label %"$have_gas_463" - -"$have_gas_463": ; preds = %"$out_of_gas_462", %"$have_gas_458" - %"$consume_464" = sub i64 %"$gasrem_460", 4 - store i64 %"$consume_464", i64* @_gasrem, align 8 - %"$execptr_load_465" = load i8*, i8** @_execptr, align 8 - %"$$res_9_466" = load %Int32, %Int32* %"$res_9", align 4 - %"$$res__10_467" = load %Int32, %Int32* %"$res__10", align 4 - %"$eq_call_468" = call %TName_Bool* @_eq_Int32(i8* %"$execptr_load_465", %Int32 %"$$res_9_466", %Int32 %"$$res__10_467"), !dbg !33 - store %TName_Bool* %"$eq_call_468", %TName_Bool** %"$test__11", align 8, !dbg !33 - %"$gasrem_470" = load i64, i64* @_gasrem, align 8 - %"$gascmp_471" = icmp ugt i64 1, %"$gasrem_470" - br i1 %"$gascmp_471", label %"$out_of_gas_472", label %"$have_gas_473" - -"$out_of_gas_472": ; preds = %"$have_gas_463" - call void @_out_of_gas() - br label %"$have_gas_473" - -"$have_gas_473": ; preds = %"$out_of_gas_472", %"$have_gas_463" - %"$consume_474" = sub i64 %"$gasrem_470", 1 - store i64 %"$consume_474", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$test__11", metadata !69, metadata !DIExpression()), !dbg !70 + %"$gasrem_462" = load i64, i64* @_gasrem, align 8 + %"$gascmp_463" = icmp ugt i64 4, %"$gasrem_462" + br i1 %"$gascmp_463", label %"$out_of_gas_464", label %"$have_gas_465" + +"$out_of_gas_464": ; preds = %"$have_gas_460" + call void @_out_of_gas() + br label %"$have_gas_465" + +"$have_gas_465": ; preds = %"$out_of_gas_464", %"$have_gas_460" + %"$consume_466" = sub i64 %"$gasrem_462", 4 + store i64 %"$consume_466", i64* @_gasrem, align 8 + %"$execptr_load_467" = load i8*, i8** @_execptr, align 8 + %"$$res_9_468" = load %Int32, %Int32* %"$res_9", align 4 + %"$$res__10_469" = load %Int32, %Int32* %"$res__10", align 4 + %"$eq_call_470" = call %TName_Bool* @_eq_Int32(i8* %"$execptr_load_467", %Int32 %"$$res_9_468", %Int32 %"$$res__10_469"), !dbg !71 + store %TName_Bool* %"$eq_call_470", %TName_Bool** %"$test__11", align 8, !dbg !71 + %"$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" + +"$out_of_gas_474": ; preds = %"$have_gas_465" + call void @_out_of_gas() + br label %"$have_gas_475" + +"$have_gas_475": ; preds = %"$out_of_gas_474", %"$have_gas_465" + %"$consume_476" = sub i64 %"$gasrem_472", 1 + store i64 %"$consume_476", i64* @_gasrem, align 8 %"$BoolUtils.andb_129" = alloca { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, align 8 - %"$BoolUtils.andb_475" = 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_476" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_475", 0 - %"$BoolUtils.andb_envptr_477" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_475", 1 - %"$$test_6_478" = load %TName_Bool*, %TName_Bool** %"$test_6", align 8 - %"$BoolUtils.andb_call_479" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_476"(i8* %"$BoolUtils.andb_envptr_477", %TName_Bool* %"$$test_6_478"), !dbg !34 - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_479", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_129", align 8, !dbg !34 + %"$BoolUtils.andb_477" = 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_478" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_477", 0 + %"$BoolUtils.andb_envptr_479" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_477", 1 + %"$$test_6_480" = load %TName_Bool*, %TName_Bool** %"$test_6", align 8 + %"$BoolUtils.andb_call_481" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_478"(i8* %"$BoolUtils.andb_envptr_479", %TName_Bool* %"$$test_6_480"), !dbg !72 + store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_481", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_129", align 8, !dbg !72 %"$BoolUtils.andb_130" = alloca %TName_Bool*, align 8 - %"$$BoolUtils.andb_129_480" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_129", align 8 - %"$$BoolUtils.andb_129_fptr_481" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_129_480", 0 - %"$$BoolUtils.andb_129_envptr_482" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_129_480", 1 - %"$$test__11_483" = load %TName_Bool*, %TName_Bool** %"$test__11", align 8 - %"$$BoolUtils.andb_129_call_484" = call %TName_Bool* %"$$BoolUtils.andb_129_fptr_481"(i8* %"$$BoolUtils.andb_129_envptr_482", %TName_Bool* %"$$test__11_483"), !dbg !34 - store %TName_Bool* %"$$BoolUtils.andb_129_call_484", %TName_Bool** %"$BoolUtils.andb_130", align 8, !dbg !34 - %"$$BoolUtils.andb_130_485" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_130", align 8 - store %TName_Bool* %"$$BoolUtils.andb_130_485", %TName_Bool** %"$test_12", align 8, !dbg !34 - %"$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_473" - call void @_out_of_gas() - br label %"$have_gas_489" - -"$have_gas_489": ; preds = %"$out_of_gas_488", %"$have_gas_473" - %"$consume_490" = sub i64 %"$gasrem_486", 1 - store i64 %"$consume_490", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$BoolUtils.andb_130", metadata !73, metadata !DIExpression()), !dbg !72 + %"$$BoolUtils.andb_129_482" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_129", align 8 + %"$$BoolUtils.andb_129_fptr_483" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_129_482", 0 + %"$$BoolUtils.andb_129_envptr_484" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_129_482", 1 + %"$$test__11_485" = load %TName_Bool*, %TName_Bool** %"$test__11", align 8 + %"$$BoolUtils.andb_129_call_486" = call %TName_Bool* %"$$BoolUtils.andb_129_fptr_483"(i8* %"$$BoolUtils.andb_129_envptr_484", %TName_Bool* %"$$test__11_485"), !dbg !72 + store %TName_Bool* %"$$BoolUtils.andb_129_call_486", %TName_Bool** %"$BoolUtils.andb_130", align 8, !dbg !72 + %"$$BoolUtils.andb_130_487" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_130", align 8 + store %TName_Bool* %"$$BoolUtils.andb_130_487", %TName_Bool** %"$test_12", align 8, !dbg !72 + %"$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_475" + call void @_out_of_gas() + br label %"$have_gas_491" + +"$have_gas_491": ; preds = %"$out_of_gas_490", %"$have_gas_475" + %"$consume_492" = sub i64 %"$gasrem_488", 1 + store i64 %"$consume_492", i64* @_gasrem, align 8 %"$arg1_13" = alloca %Int64, 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" + call void @llvm.dbg.declare(metadata %Int64* %"$arg1_13", metadata !74, metadata !DIExpression()), !dbg !76 + %"$gasrem_493" = load i64, i64* @_gasrem, align 8 + %"$gascmp_494" = icmp ugt i64 1, %"$gasrem_493" + br i1 %"$gascmp_494", label %"$out_of_gas_495", label %"$have_gas_496" -"$out_of_gas_493": ; preds = %"$have_gas_489" +"$out_of_gas_495": ; preds = %"$have_gas_491" call void @_out_of_gas() - br label %"$have_gas_494" + br label %"$have_gas_496" -"$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 - store %Int64 { i64 9223372036854775806 }, %Int64* %"$arg1_13", align 8, !dbg !35 - %"$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" +"$have_gas_496": ; preds = %"$out_of_gas_495", %"$have_gas_491" + %"$consume_497" = sub i64 %"$gasrem_493", 1 + store i64 %"$consume_497", i64* @_gasrem, align 8 + store %Int64 { i64 9223372036854775806 }, %Int64* %"$arg1_13", align 8, !dbg !77 + %"$gasrem_498" = load i64, i64* @_gasrem, align 8 + %"$gascmp_499" = icmp ugt i64 1, %"$gasrem_498" + br i1 %"$gascmp_499", label %"$out_of_gas_500", label %"$have_gas_501" -"$out_of_gas_498": ; preds = %"$have_gas_494" +"$out_of_gas_500": ; preds = %"$have_gas_496" call void @_out_of_gas() - br label %"$have_gas_499" + br label %"$have_gas_501" -"$have_gas_499": ; preds = %"$out_of_gas_498", %"$have_gas_494" - %"$consume_500" = sub i64 %"$gasrem_496", 1 - store i64 %"$consume_500", i64* @_gasrem, align 8 +"$have_gas_501": ; preds = %"$out_of_gas_500", %"$have_gas_496" + %"$consume_502" = sub i64 %"$gasrem_498", 1 + store i64 %"$consume_502", i64* @_gasrem, align 8 %"$arg2_14" = alloca %Int64, 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" + call void @llvm.dbg.declare(metadata %Int64* %"$arg2_14", metadata !78, metadata !DIExpression()), !dbg !79 + %"$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_503": ; preds = %"$have_gas_499" +"$out_of_gas_505": ; preds = %"$have_gas_501" call void @_out_of_gas() - br label %"$have_gas_504" + br label %"$have_gas_506" -"$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 %Int64 { i64 -1 }, %Int64* %"$arg2_14", align 8, !dbg !36 - %"$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_506": ; preds = %"$out_of_gas_505", %"$have_gas_501" + %"$consume_507" = sub i64 %"$gasrem_503", 1 + store i64 %"$consume_507", i64* @_gasrem, align 8 + store %Int64 { i64 -1 }, %Int64* %"$arg2_14", align 8, !dbg !80 + %"$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" -"$out_of_gas_508": ; preds = %"$have_gas_504" +"$out_of_gas_510": ; preds = %"$have_gas_506" call void @_out_of_gas() - br label %"$have_gas_509" + br label %"$have_gas_511" -"$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_511": ; preds = %"$out_of_gas_510", %"$have_gas_506" + %"$consume_512" = sub i64 %"$gasrem_508", 1 + store i64 %"$consume_512", i64* @_gasrem, align 8 %"$test_18" = alloca %TName_Bool*, 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" + call void @llvm.dbg.declare(metadata %TName_Bool** %"$test_18", metadata !81, metadata !DIExpression()), !dbg !82 + %"$gasrem_513" = load i64, i64* @_gasrem, align 8 + %"$gascmp_514" = icmp ugt i64 1, %"$gasrem_513" + br i1 %"$gascmp_514", label %"$out_of_gas_515", label %"$have_gas_516" -"$out_of_gas_513": ; preds = %"$have_gas_509" +"$out_of_gas_515": ; preds = %"$have_gas_511" call void @_out_of_gas() - br label %"$have_gas_514" + br label %"$have_gas_516" -"$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 +"$have_gas_516": ; preds = %"$out_of_gas_515", %"$have_gas_511" + %"$consume_517" = sub i64 %"$gasrem_513", 1 + store i64 %"$consume_517", i64* @_gasrem, align 8 %"$res_15" = alloca %Int64, align 8 - %"$gasrem_516" = load i64, i64* @_gasrem, align 8 - %"$gascmp_517" = icmp ugt i64 20, %"$gasrem_516" - br i1 %"$gascmp_517", label %"$out_of_gas_518", label %"$have_gas_519" + call void @llvm.dbg.declare(metadata %Int64* %"$res_15", metadata !83, metadata !DIExpression()), !dbg !84 + %"$gasrem_518" = load i64, i64* @_gasrem, align 8 + %"$gascmp_519" = icmp ugt i64 20, %"$gasrem_518" + br i1 %"$gascmp_519", label %"$out_of_gas_520", label %"$have_gas_521" -"$out_of_gas_518": ; preds = %"$have_gas_514" +"$out_of_gas_520": ; preds = %"$have_gas_516" call void @_out_of_gas() - br label %"$have_gas_519" + br label %"$have_gas_521" -"$have_gas_519": ; preds = %"$out_of_gas_518", %"$have_gas_514" - %"$consume_520" = sub i64 %"$gasrem_516", 20 - store i64 %"$consume_520", i64* @_gasrem, align 8 - %"$$arg1_13_521" = load %Int64, %Int64* %"$arg1_13", align 8 - %"$$arg2_14_522" = load %Int64, %Int64* %"$arg2_14", align 8 - %"$mul_call_523" = call %Int64 @_mul_Int64(%Int64 %"$$arg1_13_521", %Int64 %"$$arg2_14_522"), !dbg !37 - store %Int64 %"$mul_call_523", %Int64* %"$res_15", align 8, !dbg !37 - %"$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" +"$have_gas_521": ; preds = %"$out_of_gas_520", %"$have_gas_516" + %"$consume_522" = sub i64 %"$gasrem_518", 20 + store i64 %"$consume_522", i64* @_gasrem, align 8 + %"$$arg1_13_523" = load %Int64, %Int64* %"$arg1_13", align 8 + %"$$arg2_14_524" = load %Int64, %Int64* %"$arg2_14", align 8 + %"$mul_call_525" = call %Int64 @_mul_Int64(%Int64 %"$$arg1_13_523", %Int64 %"$$arg2_14_524"), !dbg !85 + store %Int64 %"$mul_call_525", %Int64* %"$res_15", align 8, !dbg !85 + %"$gasrem_526" = load i64, i64* @_gasrem, align 8 + %"$gascmp_527" = icmp ugt i64 1, %"$gasrem_526" + br i1 %"$gascmp_527", label %"$out_of_gas_528", label %"$have_gas_529" -"$out_of_gas_526": ; preds = %"$have_gas_519" +"$out_of_gas_528": ; preds = %"$have_gas_521" call void @_out_of_gas() - br label %"$have_gas_527" + br label %"$have_gas_529" -"$have_gas_527": ; preds = %"$out_of_gas_526", %"$have_gas_519" - %"$consume_528" = sub i64 %"$gasrem_524", 1 - store i64 %"$consume_528", i64* @_gasrem, align 8 +"$have_gas_529": ; preds = %"$out_of_gas_528", %"$have_gas_521" + %"$consume_530" = sub i64 %"$gasrem_526", 1 + store i64 %"$consume_530", i64* @_gasrem, align 8 %"$res__16" = alloca %Int64, 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" + call void @llvm.dbg.declare(metadata %Int64* %"$res__16", metadata !86, metadata !DIExpression()), !dbg !87 + %"$gasrem_531" = load i64, i64* @_gasrem, align 8 + %"$gascmp_532" = icmp ugt i64 1, %"$gasrem_531" + br i1 %"$gascmp_532", label %"$out_of_gas_533", label %"$have_gas_534" -"$out_of_gas_531": ; preds = %"$have_gas_527" +"$out_of_gas_533": ; preds = %"$have_gas_529" call void @_out_of_gas() - br label %"$have_gas_532" + br label %"$have_gas_534" -"$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 %Int64 { i64 -9223372036854775806 }, %Int64* %"$res__16", align 8, !dbg !38 - %"$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" +"$have_gas_534": ; preds = %"$out_of_gas_533", %"$have_gas_529" + %"$consume_535" = sub i64 %"$gasrem_531", 1 + store i64 %"$consume_535", i64* @_gasrem, align 8 + store %Int64 { i64 -9223372036854775806 }, %Int64* %"$res__16", align 8, !dbg !88 + %"$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_536": ; preds = %"$have_gas_532" +"$out_of_gas_538": ; preds = %"$have_gas_534" call void @_out_of_gas() - br label %"$have_gas_537" + br label %"$have_gas_539" -"$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 +"$have_gas_539": ; preds = %"$out_of_gas_538", %"$have_gas_534" + %"$consume_540" = sub i64 %"$gasrem_536", 1 + store i64 %"$consume_540", i64* @_gasrem, align 8 %"$test__17" = alloca %TName_Bool*, align 8 - %"$gasrem_539" = load i64, i64* @_gasrem, align 8 - %"$gascmp_540" = icmp ugt i64 4, %"$gasrem_539" - br i1 %"$gascmp_540", label %"$out_of_gas_541", label %"$have_gas_542" - -"$out_of_gas_541": ; preds = %"$have_gas_537" - call void @_out_of_gas() - br label %"$have_gas_542" - -"$have_gas_542": ; preds = %"$out_of_gas_541", %"$have_gas_537" - %"$consume_543" = sub i64 %"$gasrem_539", 4 - store i64 %"$consume_543", i64* @_gasrem, align 8 - %"$execptr_load_544" = load i8*, i8** @_execptr, align 8 - %"$$res_15_545" = load %Int64, %Int64* %"$res_15", align 8 - %"$$res__16_546" = load %Int64, %Int64* %"$res__16", align 8 - %"$eq_call_547" = call %TName_Bool* @_eq_Int64(i8* %"$execptr_load_544", %Int64 %"$$res_15_545", %Int64 %"$$res__16_546"), !dbg !39 - store %TName_Bool* %"$eq_call_547", %TName_Bool** %"$test__17", align 8, !dbg !39 - %"$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_551": ; preds = %"$have_gas_542" - call void @_out_of_gas() - br label %"$have_gas_552" - -"$have_gas_552": ; preds = %"$out_of_gas_551", %"$have_gas_542" - %"$consume_553" = sub i64 %"$gasrem_549", 1 - store i64 %"$consume_553", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$test__17", metadata !89, metadata !DIExpression()), !dbg !90 + %"$gasrem_541" = load i64, i64* @_gasrem, align 8 + %"$gascmp_542" = icmp ugt i64 4, %"$gasrem_541" + br i1 %"$gascmp_542", label %"$out_of_gas_543", label %"$have_gas_544" + +"$out_of_gas_543": ; preds = %"$have_gas_539" + call void @_out_of_gas() + br label %"$have_gas_544" + +"$have_gas_544": ; preds = %"$out_of_gas_543", %"$have_gas_539" + %"$consume_545" = sub i64 %"$gasrem_541", 4 + store i64 %"$consume_545", i64* @_gasrem, align 8 + %"$execptr_load_546" = load i8*, i8** @_execptr, align 8 + %"$$res_15_547" = load %Int64, %Int64* %"$res_15", align 8 + %"$$res__16_548" = load %Int64, %Int64* %"$res__16", align 8 + %"$eq_call_549" = call %TName_Bool* @_eq_Int64(i8* %"$execptr_load_546", %Int64 %"$$res_15_547", %Int64 %"$$res__16_548"), !dbg !91 + store %TName_Bool* %"$eq_call_549", %TName_Bool** %"$test__17", align 8, !dbg !91 + %"$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_553": ; preds = %"$have_gas_544" + call void @_out_of_gas() + br label %"$have_gas_554" + +"$have_gas_554": ; preds = %"$out_of_gas_553", %"$have_gas_544" + %"$consume_555" = sub i64 %"$gasrem_551", 1 + store i64 %"$consume_555", i64* @_gasrem, align 8 %"$BoolUtils.andb_131" = alloca { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, align 8 - %"$BoolUtils.andb_554" = 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_555" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_554", 0 - %"$BoolUtils.andb_envptr_556" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_554", 1 - %"$$test_12_557" = load %TName_Bool*, %TName_Bool** %"$test_12", align 8 - %"$BoolUtils.andb_call_558" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_555"(i8* %"$BoolUtils.andb_envptr_556", %TName_Bool* %"$$test_12_557"), !dbg !40 - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_558", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_131", align 8, !dbg !40 + %"$BoolUtils.andb_556" = 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_557" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_556", 0 + %"$BoolUtils.andb_envptr_558" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_556", 1 + %"$$test_12_559" = load %TName_Bool*, %TName_Bool** %"$test_12", align 8 + %"$BoolUtils.andb_call_560" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_557"(i8* %"$BoolUtils.andb_envptr_558", %TName_Bool* %"$$test_12_559"), !dbg !92 + store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_560", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_131", align 8, !dbg !92 %"$BoolUtils.andb_132" = alloca %TName_Bool*, align 8 - %"$$BoolUtils.andb_131_559" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_131", align 8 - %"$$BoolUtils.andb_131_fptr_560" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_131_559", 0 - %"$$BoolUtils.andb_131_envptr_561" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_131_559", 1 - %"$$test__17_562" = load %TName_Bool*, %TName_Bool** %"$test__17", align 8 - %"$$BoolUtils.andb_131_call_563" = call %TName_Bool* %"$$BoolUtils.andb_131_fptr_560"(i8* %"$$BoolUtils.andb_131_envptr_561", %TName_Bool* %"$$test__17_562"), !dbg !40 - store %TName_Bool* %"$$BoolUtils.andb_131_call_563", %TName_Bool** %"$BoolUtils.andb_132", align 8, !dbg !40 - %"$$BoolUtils.andb_132_564" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_132", align 8 - store %TName_Bool* %"$$BoolUtils.andb_132_564", %TName_Bool** %"$test_18", align 8, !dbg !40 - %"$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_552" - call void @_out_of_gas() - br label %"$have_gas_568" - -"$have_gas_568": ; preds = %"$out_of_gas_567", %"$have_gas_552" - %"$consume_569" = sub i64 %"$gasrem_565", 1 - store i64 %"$consume_569", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$BoolUtils.andb_132", metadata !93, metadata !DIExpression()), !dbg !92 + %"$$BoolUtils.andb_131_561" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_131", align 8 + %"$$BoolUtils.andb_131_fptr_562" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_131_561", 0 + %"$$BoolUtils.andb_131_envptr_563" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_131_561", 1 + %"$$test__17_564" = load %TName_Bool*, %TName_Bool** %"$test__17", align 8 + %"$$BoolUtils.andb_131_call_565" = call %TName_Bool* %"$$BoolUtils.andb_131_fptr_562"(i8* %"$$BoolUtils.andb_131_envptr_563", %TName_Bool* %"$$test__17_564"), !dbg !92 + store %TName_Bool* %"$$BoolUtils.andb_131_call_565", %TName_Bool** %"$BoolUtils.andb_132", align 8, !dbg !92 + %"$$BoolUtils.andb_132_566" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_132", align 8 + store %TName_Bool* %"$$BoolUtils.andb_132_566", %TName_Bool** %"$test_18", align 8, !dbg !92 + %"$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_554" + call void @_out_of_gas() + br label %"$have_gas_570" + +"$have_gas_570": ; preds = %"$out_of_gas_569", %"$have_gas_554" + %"$consume_571" = sub i64 %"$gasrem_567", 1 + store i64 %"$consume_571", i64* @_gasrem, align 8 %"$arg2_19" = alloca %Uint64, 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" + call void @llvm.dbg.declare(metadata %Uint64* %"$arg2_19", metadata !94, metadata !DIExpression()), !dbg !96 + %"$gasrem_572" = load i64, i64* @_gasrem, align 8 + %"$gascmp_573" = icmp ugt i64 1, %"$gasrem_572" + br i1 %"$gascmp_573", label %"$out_of_gas_574", label %"$have_gas_575" -"$out_of_gas_572": ; preds = %"$have_gas_568" +"$out_of_gas_574": ; preds = %"$have_gas_570" call void @_out_of_gas() - br label %"$have_gas_573" + br label %"$have_gas_575" -"$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 %Uint64 { i64 2147483647 }, %Uint64* %"$arg2_19", align 8, !dbg !41 - %"$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_575": ; preds = %"$out_of_gas_574", %"$have_gas_570" + %"$consume_576" = sub i64 %"$gasrem_572", 1 + store i64 %"$consume_576", i64* @_gasrem, align 8 + store %Uint64 { i64 2147483647 }, %Uint64* %"$arg2_19", align 8, !dbg !97 + %"$gasrem_577" = load i64, i64* @_gasrem, align 8 + %"$gascmp_578" = icmp ugt i64 1, %"$gasrem_577" + br i1 %"$gascmp_578", label %"$out_of_gas_579", label %"$have_gas_580" -"$out_of_gas_577": ; preds = %"$have_gas_573" +"$out_of_gas_579": ; preds = %"$have_gas_575" call void @_out_of_gas() - br label %"$have_gas_578" + br label %"$have_gas_580" -"$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_580": ; preds = %"$out_of_gas_579", %"$have_gas_575" + %"$consume_581" = sub i64 %"$gasrem_577", 1 + store i64 %"$consume_581", i64* @_gasrem, align 8 %"$arg1_20" = alloca %Uint64, align 8 - %"$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" + call void @llvm.dbg.declare(metadata %Uint64* %"$arg1_20", metadata !98, metadata !DIExpression()), !dbg !99 + %"$gasrem_582" = load i64, i64* @_gasrem, align 8 + %"$gascmp_583" = icmp ugt i64 1, %"$gasrem_582" + br i1 %"$gascmp_583", label %"$out_of_gas_584", label %"$have_gas_585" -"$out_of_gas_582": ; preds = %"$have_gas_578" +"$out_of_gas_584": ; preds = %"$have_gas_580" call void @_out_of_gas() - br label %"$have_gas_583" + br label %"$have_gas_585" -"$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 %Uint64 { i64 2147483647 }, %Uint64* %"$arg1_20", align 8, !dbg !42 - %"$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_585": ; preds = %"$out_of_gas_584", %"$have_gas_580" + %"$consume_586" = sub i64 %"$gasrem_582", 1 + store i64 %"$consume_586", i64* @_gasrem, align 8 + store %Uint64 { i64 2147483647 }, %Uint64* %"$arg1_20", align 8, !dbg !100 + %"$gasrem_587" = load i64, i64* @_gasrem, align 8 + %"$gascmp_588" = icmp ugt i64 1, %"$gasrem_587" + br i1 %"$gascmp_588", label %"$out_of_gas_589", label %"$have_gas_590" -"$out_of_gas_587": ; preds = %"$have_gas_583" +"$out_of_gas_589": ; preds = %"$have_gas_585" call void @_out_of_gas() - br label %"$have_gas_588" + br label %"$have_gas_590" -"$have_gas_588": ; preds = %"$out_of_gas_587", %"$have_gas_583" - %"$consume_589" = sub i64 %"$gasrem_585", 1 - store i64 %"$consume_589", i64* @_gasrem, align 8 +"$have_gas_590": ; preds = %"$out_of_gas_589", %"$have_gas_585" + %"$consume_591" = sub i64 %"$gasrem_587", 1 + store i64 %"$consume_591", i64* @_gasrem, align 8 %"$test_24" = alloca %TName_Bool*, 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" + call void @llvm.dbg.declare(metadata %TName_Bool** %"$test_24", metadata !101, metadata !DIExpression()), !dbg !102 + %"$gasrem_592" = load i64, i64* @_gasrem, align 8 + %"$gascmp_593" = icmp ugt i64 1, %"$gasrem_592" + br i1 %"$gascmp_593", label %"$out_of_gas_594", label %"$have_gas_595" -"$out_of_gas_592": ; preds = %"$have_gas_588" +"$out_of_gas_594": ; preds = %"$have_gas_590" call void @_out_of_gas() - br label %"$have_gas_593" + br label %"$have_gas_595" -"$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 +"$have_gas_595": ; preds = %"$out_of_gas_594", %"$have_gas_590" + %"$consume_596" = sub i64 %"$gasrem_592", 1 + store i64 %"$consume_596", i64* @_gasrem, align 8 %"$res_21" = alloca %Uint64, align 8 - %"$gasrem_595" = load i64, i64* @_gasrem, align 8 - %"$gascmp_596" = icmp ugt i64 20, %"$gasrem_595" - br i1 %"$gascmp_596", label %"$out_of_gas_597", label %"$have_gas_598" + call void @llvm.dbg.declare(metadata %Uint64* %"$res_21", metadata !103, metadata !DIExpression()), !dbg !104 + %"$gasrem_597" = load i64, i64* @_gasrem, align 8 + %"$gascmp_598" = icmp ugt i64 20, %"$gasrem_597" + br i1 %"$gascmp_598", label %"$out_of_gas_599", label %"$have_gas_600" -"$out_of_gas_597": ; preds = %"$have_gas_593" +"$out_of_gas_599": ; preds = %"$have_gas_595" call void @_out_of_gas() - br label %"$have_gas_598" + br label %"$have_gas_600" -"$have_gas_598": ; preds = %"$out_of_gas_597", %"$have_gas_593" - %"$consume_599" = sub i64 %"$gasrem_595", 20 - store i64 %"$consume_599", i64* @_gasrem, align 8 - %"$$arg1_20_600" = load %Uint64, %Uint64* %"$arg1_20", align 8 - %"$$arg2_19_601" = load %Uint64, %Uint64* %"$arg2_19", align 8 - %"$mul_call_602" = call %Uint64 @_mul_Uint64(%Uint64 %"$$arg1_20_600", %Uint64 %"$$arg2_19_601"), !dbg !43 - store %Uint64 %"$mul_call_602", %Uint64* %"$res_21", align 8, !dbg !43 - %"$gasrem_603" = load i64, i64* @_gasrem, align 8 - %"$gascmp_604" = icmp ugt i64 1, %"$gasrem_603" - br i1 %"$gascmp_604", label %"$out_of_gas_605", label %"$have_gas_606" +"$have_gas_600": ; preds = %"$out_of_gas_599", %"$have_gas_595" + %"$consume_601" = sub i64 %"$gasrem_597", 20 + store i64 %"$consume_601", i64* @_gasrem, align 8 + %"$$arg1_20_602" = load %Uint64, %Uint64* %"$arg1_20", align 8 + %"$$arg2_19_603" = load %Uint64, %Uint64* %"$arg2_19", align 8 + %"$mul_call_604" = call %Uint64 @_mul_Uint64(%Uint64 %"$$arg1_20_602", %Uint64 %"$$arg2_19_603"), !dbg !105 + store %Uint64 %"$mul_call_604", %Uint64* %"$res_21", align 8, !dbg !105 + %"$gasrem_605" = load i64, i64* @_gasrem, align 8 + %"$gascmp_606" = icmp ugt i64 1, %"$gasrem_605" + br i1 %"$gascmp_606", label %"$out_of_gas_607", label %"$have_gas_608" -"$out_of_gas_605": ; preds = %"$have_gas_598" +"$out_of_gas_607": ; preds = %"$have_gas_600" call void @_out_of_gas() - br label %"$have_gas_606" + br label %"$have_gas_608" -"$have_gas_606": ; preds = %"$out_of_gas_605", %"$have_gas_598" - %"$consume_607" = sub i64 %"$gasrem_603", 1 - store i64 %"$consume_607", i64* @_gasrem, align 8 +"$have_gas_608": ; preds = %"$out_of_gas_607", %"$have_gas_600" + %"$consume_609" = sub i64 %"$gasrem_605", 1 + store i64 %"$consume_609", i64* @_gasrem, align 8 %"$res__22" = alloca %Uint64, align 8 - %"$gasrem_608" = load i64, i64* @_gasrem, align 8 - %"$gascmp_609" = icmp ugt i64 1, %"$gasrem_608" - br i1 %"$gascmp_609", label %"$out_of_gas_610", label %"$have_gas_611" + call void @llvm.dbg.declare(metadata %Uint64* %"$res__22", metadata !106, metadata !DIExpression()), !dbg !107 + %"$gasrem_610" = load i64, i64* @_gasrem, align 8 + %"$gascmp_611" = icmp ugt i64 1, %"$gasrem_610" + br i1 %"$gascmp_611", label %"$out_of_gas_612", label %"$have_gas_613" -"$out_of_gas_610": ; preds = %"$have_gas_606" +"$out_of_gas_612": ; preds = %"$have_gas_608" call void @_out_of_gas() - br label %"$have_gas_611" + br label %"$have_gas_613" -"$have_gas_611": ; preds = %"$out_of_gas_610", %"$have_gas_606" - %"$consume_612" = sub i64 %"$gasrem_608", 1 - store i64 %"$consume_612", i64* @_gasrem, align 8 - store %Uint64 { i64 4611686014132420609 }, %Uint64* %"$res__22", align 8, !dbg !44 - %"$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" +"$have_gas_613": ; preds = %"$out_of_gas_612", %"$have_gas_608" + %"$consume_614" = sub i64 %"$gasrem_610", 1 + store i64 %"$consume_614", i64* @_gasrem, align 8 + store %Uint64 { i64 4611686014132420609 }, %Uint64* %"$res__22", align 8, !dbg !108 + %"$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_615": ; preds = %"$have_gas_611" +"$out_of_gas_617": ; preds = %"$have_gas_613" call void @_out_of_gas() - br label %"$have_gas_616" + br label %"$have_gas_618" -"$have_gas_616": ; preds = %"$out_of_gas_615", %"$have_gas_611" - %"$consume_617" = sub i64 %"$gasrem_613", 1 - store i64 %"$consume_617", i64* @_gasrem, align 8 +"$have_gas_618": ; preds = %"$out_of_gas_617", %"$have_gas_613" + %"$consume_619" = sub i64 %"$gasrem_615", 1 + store i64 %"$consume_619", i64* @_gasrem, align 8 %"$test__23" = alloca %TName_Bool*, align 8 - %"$gasrem_618" = load i64, i64* @_gasrem, align 8 - %"$gascmp_619" = icmp ugt i64 4, %"$gasrem_618" - br i1 %"$gascmp_619", label %"$out_of_gas_620", label %"$have_gas_621" - -"$out_of_gas_620": ; preds = %"$have_gas_616" - call void @_out_of_gas() - br label %"$have_gas_621" - -"$have_gas_621": ; preds = %"$out_of_gas_620", %"$have_gas_616" - %"$consume_622" = sub i64 %"$gasrem_618", 4 - store i64 %"$consume_622", i64* @_gasrem, align 8 - %"$execptr_load_623" = load i8*, i8** @_execptr, align 8 - %"$$res_21_624" = load %Uint64, %Uint64* %"$res_21", align 8 - %"$$res__22_625" = load %Uint64, %Uint64* %"$res__22", align 8 - %"$eq_call_626" = call %TName_Bool* @_eq_Uint64(i8* %"$execptr_load_623", %Uint64 %"$$res_21_624", %Uint64 %"$$res__22_625"), !dbg !45 - store %TName_Bool* %"$eq_call_626", %TName_Bool** %"$test__23", align 8, !dbg !45 - %"$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_621" - call void @_out_of_gas() - br label %"$have_gas_631" - -"$have_gas_631": ; preds = %"$out_of_gas_630", %"$have_gas_621" - %"$consume_632" = sub i64 %"$gasrem_628", 1 - store i64 %"$consume_632", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$test__23", metadata !109, metadata !DIExpression()), !dbg !110 + %"$gasrem_620" = load i64, i64* @_gasrem, align 8 + %"$gascmp_621" = icmp ugt i64 4, %"$gasrem_620" + br i1 %"$gascmp_621", label %"$out_of_gas_622", label %"$have_gas_623" + +"$out_of_gas_622": ; preds = %"$have_gas_618" + call void @_out_of_gas() + br label %"$have_gas_623" + +"$have_gas_623": ; preds = %"$out_of_gas_622", %"$have_gas_618" + %"$consume_624" = sub i64 %"$gasrem_620", 4 + store i64 %"$consume_624", i64* @_gasrem, align 8 + %"$execptr_load_625" = load i8*, i8** @_execptr, align 8 + %"$$res_21_626" = load %Uint64, %Uint64* %"$res_21", align 8 + %"$$res__22_627" = load %Uint64, %Uint64* %"$res__22", align 8 + %"$eq_call_628" = call %TName_Bool* @_eq_Uint64(i8* %"$execptr_load_625", %Uint64 %"$$res_21_626", %Uint64 %"$$res__22_627"), !dbg !111 + store %TName_Bool* %"$eq_call_628", %TName_Bool** %"$test__23", align 8, !dbg !111 + %"$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_623" + call void @_out_of_gas() + br label %"$have_gas_633" + +"$have_gas_633": ; preds = %"$out_of_gas_632", %"$have_gas_623" + %"$consume_634" = sub i64 %"$gasrem_630", 1 + store i64 %"$consume_634", i64* @_gasrem, align 8 %"$BoolUtils.andb_133" = alloca { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, align 8 - %"$BoolUtils.andb_633" = 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_634" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_633", 0 - %"$BoolUtils.andb_envptr_635" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_633", 1 - %"$$test_18_636" = load %TName_Bool*, %TName_Bool** %"$test_18", align 8 - %"$BoolUtils.andb_call_637" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_634"(i8* %"$BoolUtils.andb_envptr_635", %TName_Bool* %"$$test_18_636"), !dbg !46 - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_637", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_133", align 8, !dbg !46 + %"$BoolUtils.andb_635" = 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_636" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_635", 0 + %"$BoolUtils.andb_envptr_637" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_635", 1 + %"$$test_18_638" = load %TName_Bool*, %TName_Bool** %"$test_18", align 8 + %"$BoolUtils.andb_call_639" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_636"(i8* %"$BoolUtils.andb_envptr_637", %TName_Bool* %"$$test_18_638"), !dbg !112 + store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_639", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_133", align 8, !dbg !112 %"$BoolUtils.andb_134" = alloca %TName_Bool*, align 8 - %"$$BoolUtils.andb_133_638" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_133", align 8 - %"$$BoolUtils.andb_133_fptr_639" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_133_638", 0 - %"$$BoolUtils.andb_133_envptr_640" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_133_638", 1 - %"$$test__23_641" = load %TName_Bool*, %TName_Bool** %"$test__23", align 8 - %"$$BoolUtils.andb_133_call_642" = call %TName_Bool* %"$$BoolUtils.andb_133_fptr_639"(i8* %"$$BoolUtils.andb_133_envptr_640", %TName_Bool* %"$$test__23_641"), !dbg !46 - store %TName_Bool* %"$$BoolUtils.andb_133_call_642", %TName_Bool** %"$BoolUtils.andb_134", align 8, !dbg !46 - %"$$BoolUtils.andb_134_643" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_134", align 8 - store %TName_Bool* %"$$BoolUtils.andb_134_643", %TName_Bool** %"$test_24", align 8, !dbg !46 - %"$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_631" - call void @_out_of_gas() - br label %"$have_gas_647" - -"$have_gas_647": ; preds = %"$out_of_gas_646", %"$have_gas_631" - %"$consume_648" = sub i64 %"$gasrem_644", 1 - store i64 %"$consume_648", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$BoolUtils.andb_134", metadata !113, metadata !DIExpression()), !dbg !112 + %"$$BoolUtils.andb_133_640" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_133", align 8 + %"$$BoolUtils.andb_133_fptr_641" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_133_640", 0 + %"$$BoolUtils.andb_133_envptr_642" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_133_640", 1 + %"$$test__23_643" = load %TName_Bool*, %TName_Bool** %"$test__23", align 8 + %"$$BoolUtils.andb_133_call_644" = call %TName_Bool* %"$$BoolUtils.andb_133_fptr_641"(i8* %"$$BoolUtils.andb_133_envptr_642", %TName_Bool* %"$$test__23_643"), !dbg !112 + store %TName_Bool* %"$$BoolUtils.andb_133_call_644", %TName_Bool** %"$BoolUtils.andb_134", align 8, !dbg !112 + %"$$BoolUtils.andb_134_645" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_134", align 8 + store %TName_Bool* %"$$BoolUtils.andb_134_645", %TName_Bool** %"$test_24", align 8, !dbg !112 + %"$gasrem_646" = load i64, i64* @_gasrem, align 8 + %"$gascmp_647" = icmp ugt i64 1, %"$gasrem_646" + br i1 %"$gascmp_647", label %"$out_of_gas_648", label %"$have_gas_649" + +"$out_of_gas_648": ; preds = %"$have_gas_633" + call void @_out_of_gas() + br label %"$have_gas_649" + +"$have_gas_649": ; preds = %"$out_of_gas_648", %"$have_gas_633" + %"$consume_650" = sub i64 %"$gasrem_646", 1 + store i64 %"$consume_650", i64* @_gasrem, align 8 %"$arg1_25" = alloca %Uint128, 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" + call void @llvm.dbg.declare(metadata %Uint128* %"$arg1_25", metadata !114, metadata !DIExpression()), !dbg !116 + %"$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_651": ; preds = %"$have_gas_647" +"$out_of_gas_653": ; preds = %"$have_gas_649" call void @_out_of_gas() - br label %"$have_gas_652" + br label %"$have_gas_654" -"$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 - store %Uint128 { i128 9223372036854775806 }, %Uint128* %"$arg1_25", align 8, !dbg !47 - %"$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" +"$have_gas_654": ; preds = %"$out_of_gas_653", %"$have_gas_649" + %"$consume_655" = sub i64 %"$gasrem_651", 1 + store i64 %"$consume_655", i64* @_gasrem, align 8 + store %Uint128 { i128 9223372036854775806 }, %Uint128* %"$arg1_25", align 8, !dbg !117 + %"$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_656": ; preds = %"$have_gas_652" +"$out_of_gas_658": ; preds = %"$have_gas_654" call void @_out_of_gas() - br label %"$have_gas_657" + br label %"$have_gas_659" -"$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_659": ; preds = %"$out_of_gas_658", %"$have_gas_654" + %"$consume_660" = sub i64 %"$gasrem_656", 1 + store i64 %"$consume_660", i64* @_gasrem, align 8 %"$arg2_26" = alloca %Uint128, align 8 - %"$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" + call void @llvm.dbg.declare(metadata %Uint128* %"$arg2_26", metadata !118, metadata !DIExpression()), !dbg !119 + %"$gasrem_661" = load i64, i64* @_gasrem, align 8 + %"$gascmp_662" = icmp ugt i64 1, %"$gasrem_661" + br i1 %"$gascmp_662", label %"$out_of_gas_663", label %"$have_gas_664" -"$out_of_gas_661": ; preds = %"$have_gas_657" +"$out_of_gas_663": ; preds = %"$have_gas_659" call void @_out_of_gas() - br label %"$have_gas_662" + br label %"$have_gas_664" -"$have_gas_662": ; preds = %"$out_of_gas_661", %"$have_gas_657" - %"$consume_663" = sub i64 %"$gasrem_659", 1 - store i64 %"$consume_663", i64* @_gasrem, align 8 - store %Uint128 { i128 9223372036854775806 }, %Uint128* %"$arg2_26", align 8, !dbg !48 - %"$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" +"$have_gas_664": ; preds = %"$out_of_gas_663", %"$have_gas_659" + %"$consume_665" = sub i64 %"$gasrem_661", 1 + store i64 %"$consume_665", i64* @_gasrem, align 8 + store %Uint128 { i128 9223372036854775806 }, %Uint128* %"$arg2_26", align 8, !dbg !120 + %"$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_666": ; preds = %"$have_gas_662" +"$out_of_gas_668": ; preds = %"$have_gas_664" call void @_out_of_gas() - br label %"$have_gas_667" + br label %"$have_gas_669" -"$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 +"$have_gas_669": ; preds = %"$out_of_gas_668", %"$have_gas_664" + %"$consume_670" = sub i64 %"$gasrem_666", 1 + store i64 %"$consume_670", i64* @_gasrem, align 8 %"$test_30" = alloca %TName_Bool*, align 8 - %"$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" + call void @llvm.dbg.declare(metadata %TName_Bool** %"$test_30", metadata !121, metadata !DIExpression()), !dbg !122 + %"$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_671": ; preds = %"$have_gas_667" +"$out_of_gas_673": ; preds = %"$have_gas_669" call void @_out_of_gas() - br label %"$have_gas_672" + br label %"$have_gas_674" -"$have_gas_672": ; preds = %"$out_of_gas_671", %"$have_gas_667" - %"$consume_673" = sub i64 %"$gasrem_669", 1 - store i64 %"$consume_673", i64* @_gasrem, align 8 +"$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 %"$res_27" = alloca %Uint128, align 8 - %"$gasrem_675" = load i64, i64* @_gasrem, align 8 - %"$gascmp_676" = icmp ugt i64 40, %"$gasrem_675" - br i1 %"$gascmp_676", label %"$out_of_gas_677", label %"$have_gas_678" + call void @llvm.dbg.declare(metadata %Uint128* %"$res_27", metadata !123, metadata !DIExpression()), !dbg !124 + %"$gasrem_677" = load i64, i64* @_gasrem, align 8 + %"$gascmp_678" = icmp ugt i64 40, %"$gasrem_677" + br i1 %"$gascmp_678", label %"$out_of_gas_679", label %"$have_gas_680" -"$out_of_gas_677": ; preds = %"$have_gas_672" +"$out_of_gas_679": ; preds = %"$have_gas_674" call void @_out_of_gas() - br label %"$have_gas_678" + br label %"$have_gas_680" -"$have_gas_678": ; preds = %"$out_of_gas_677", %"$have_gas_672" - %"$consume_679" = sub i64 %"$gasrem_675", 40 - store i64 %"$consume_679", i64* @_gasrem, align 8 - %"$$arg1_25_680" = load %Uint128, %Uint128* %"$arg1_25", align 8 - %"$$arg2_26_681" = load %Uint128, %Uint128* %"$arg2_26", align 8 - %"$mul_call_682" = call %Uint128 @_mul_Uint128(%Uint128 %"$$arg1_25_680", %Uint128 %"$$arg2_26_681"), !dbg !49 - store %Uint128 %"$mul_call_682", %Uint128* %"$res_27", align 8, !dbg !49 - %"$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" +"$have_gas_680": ; preds = %"$out_of_gas_679", %"$have_gas_674" + %"$consume_681" = sub i64 %"$gasrem_677", 40 + store i64 %"$consume_681", i64* @_gasrem, align 8 + %"$$arg1_25_682" = load %Uint128, %Uint128* %"$arg1_25", align 8 + %"$$arg2_26_683" = load %Uint128, %Uint128* %"$arg2_26", align 8 + %"$mul_call_684" = call %Uint128 @_mul_Uint128(%Uint128 %"$$arg1_25_682", %Uint128 %"$$arg2_26_683"), !dbg !125 + store %Uint128 %"$mul_call_684", %Uint128* %"$res_27", align 8, !dbg !125 + %"$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_685": ; preds = %"$have_gas_678" +"$out_of_gas_687": ; preds = %"$have_gas_680" call void @_out_of_gas() - br label %"$have_gas_686" + br label %"$have_gas_688" -"$have_gas_686": ; preds = %"$out_of_gas_685", %"$have_gas_678" - %"$consume_687" = sub i64 %"$gasrem_683", 1 - store i64 %"$consume_687", i64* @_gasrem, align 8 +"$have_gas_688": ; preds = %"$out_of_gas_687", %"$have_gas_680" + %"$consume_689" = sub i64 %"$gasrem_685", 1 + store i64 %"$consume_689", i64* @_gasrem, align 8 %"$res__28" = alloca %Uint128, 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" + call void @llvm.dbg.declare(metadata %Uint128* %"$res__28", metadata !126, metadata !DIExpression()), !dbg !127 + %"$gasrem_690" = load i64, i64* @_gasrem, align 8 + %"$gascmp_691" = icmp ugt i64 1, %"$gasrem_690" + br i1 %"$gascmp_691", label %"$out_of_gas_692", label %"$have_gas_693" -"$out_of_gas_690": ; preds = %"$have_gas_686" +"$out_of_gas_692": ; preds = %"$have_gas_688" call void @_out_of_gas() - br label %"$have_gas_691" + br label %"$have_gas_693" -"$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 %Uint128 { i128 85070591730234615828950163710522949636 }, %Uint128* %"$res__28", align 8, !dbg !50 - %"$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" +"$have_gas_693": ; preds = %"$out_of_gas_692", %"$have_gas_688" + %"$consume_694" = sub i64 %"$gasrem_690", 1 + store i64 %"$consume_694", i64* @_gasrem, align 8 + store %Uint128 { i128 85070591730234615828950163710522949636 }, %Uint128* %"$res__28", align 8, !dbg !128 + %"$gasrem_695" = load i64, i64* @_gasrem, align 8 + %"$gascmp_696" = icmp ugt i64 1, %"$gasrem_695" + br i1 %"$gascmp_696", label %"$out_of_gas_697", label %"$have_gas_698" -"$out_of_gas_695": ; preds = %"$have_gas_691" +"$out_of_gas_697": ; preds = %"$have_gas_693" call void @_out_of_gas() - br label %"$have_gas_696" + br label %"$have_gas_698" -"$have_gas_696": ; preds = %"$out_of_gas_695", %"$have_gas_691" - %"$consume_697" = sub i64 %"$gasrem_693", 1 - store i64 %"$consume_697", i64* @_gasrem, align 8 +"$have_gas_698": ; preds = %"$out_of_gas_697", %"$have_gas_693" + %"$consume_699" = sub i64 %"$gasrem_695", 1 + store i64 %"$consume_699", i64* @_gasrem, align 8 %"$test__29" = alloca %TName_Bool*, align 8 - %"$gasrem_699" = load i64, i64* @_gasrem, align 8 - %"$gascmp_700" = icmp ugt i64 8, %"$gasrem_699" - br i1 %"$gascmp_700", label %"$out_of_gas_701", label %"$have_gas_702" - -"$out_of_gas_701": ; preds = %"$have_gas_696" - call void @_out_of_gas() - br label %"$have_gas_702" - -"$have_gas_702": ; preds = %"$out_of_gas_701", %"$have_gas_696" - %"$consume_703" = sub i64 %"$gasrem_699", 8 - store i64 %"$consume_703", i64* @_gasrem, align 8 - %"$execptr_load_704" = load i8*, i8** @_execptr, align 8 - %"$$res_27_705" = load %Uint128, %Uint128* %"$res_27", align 8 - %"$$res__28_706" = load %Uint128, %Uint128* %"$res__28", align 8 - %"$eq_call_707" = call %TName_Bool* @_eq_Uint128(i8* %"$execptr_load_704", %Uint128 %"$$res_27_705", %Uint128 %"$$res__28_706"), !dbg !51 - store %TName_Bool* %"$eq_call_707", %TName_Bool** %"$test__29", align 8, !dbg !51 - %"$gasrem_709" = load i64, i64* @_gasrem, align 8 - %"$gascmp_710" = icmp ugt i64 1, %"$gasrem_709" - br i1 %"$gascmp_710", label %"$out_of_gas_711", label %"$have_gas_712" - -"$out_of_gas_711": ; preds = %"$have_gas_702" - call void @_out_of_gas() - br label %"$have_gas_712" - -"$have_gas_712": ; preds = %"$out_of_gas_711", %"$have_gas_702" - %"$consume_713" = sub i64 %"$gasrem_709", 1 - store i64 %"$consume_713", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$test__29", metadata !129, metadata !DIExpression()), !dbg !130 + %"$gasrem_701" = load i64, i64* @_gasrem, align 8 + %"$gascmp_702" = icmp ugt i64 8, %"$gasrem_701" + br i1 %"$gascmp_702", label %"$out_of_gas_703", label %"$have_gas_704" + +"$out_of_gas_703": ; preds = %"$have_gas_698" + call void @_out_of_gas() + br label %"$have_gas_704" + +"$have_gas_704": ; preds = %"$out_of_gas_703", %"$have_gas_698" + %"$consume_705" = sub i64 %"$gasrem_701", 8 + store i64 %"$consume_705", i64* @_gasrem, align 8 + %"$execptr_load_706" = load i8*, i8** @_execptr, align 8 + %"$$res_27_707" = load %Uint128, %Uint128* %"$res_27", align 8 + %"$$res__28_708" = load %Uint128, %Uint128* %"$res__28", align 8 + %"$eq_call_709" = call %TName_Bool* @_eq_Uint128(i8* %"$execptr_load_706", %Uint128 %"$$res_27_707", %Uint128 %"$$res__28_708"), !dbg !131 + store %TName_Bool* %"$eq_call_709", %TName_Bool** %"$test__29", align 8, !dbg !131 + %"$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_704" + call void @_out_of_gas() + br label %"$have_gas_714" + +"$have_gas_714": ; preds = %"$out_of_gas_713", %"$have_gas_704" + %"$consume_715" = sub i64 %"$gasrem_711", 1 + store i64 %"$consume_715", i64* @_gasrem, align 8 %"$BoolUtils.andb_135" = alloca { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, align 8 - %"$BoolUtils.andb_714" = 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_715" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_714", 0 - %"$BoolUtils.andb_envptr_716" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_714", 1 - %"$$test_24_717" = load %TName_Bool*, %TName_Bool** %"$test_24", align 8 - %"$BoolUtils.andb_call_718" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_715"(i8* %"$BoolUtils.andb_envptr_716", %TName_Bool* %"$$test_24_717"), !dbg !52 - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_718", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_135", align 8, !dbg !52 + %"$BoolUtils.andb_716" = 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_717" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_716", 0 + %"$BoolUtils.andb_envptr_718" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_716", 1 + %"$$test_24_719" = load %TName_Bool*, %TName_Bool** %"$test_24", align 8 + %"$BoolUtils.andb_call_720" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_717"(i8* %"$BoolUtils.andb_envptr_718", %TName_Bool* %"$$test_24_719"), !dbg !132 + store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_720", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_135", align 8, !dbg !132 %"$BoolUtils.andb_136" = alloca %TName_Bool*, align 8 - %"$$BoolUtils.andb_135_719" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_135", align 8 - %"$$BoolUtils.andb_135_fptr_720" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_135_719", 0 - %"$$BoolUtils.andb_135_envptr_721" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_135_719", 1 - %"$$test__29_722" = load %TName_Bool*, %TName_Bool** %"$test__29", align 8 - %"$$BoolUtils.andb_135_call_723" = call %TName_Bool* %"$$BoolUtils.andb_135_fptr_720"(i8* %"$$BoolUtils.andb_135_envptr_721", %TName_Bool* %"$$test__29_722"), !dbg !52 - store %TName_Bool* %"$$BoolUtils.andb_135_call_723", %TName_Bool** %"$BoolUtils.andb_136", align 8, !dbg !52 - %"$$BoolUtils.andb_136_724" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_136", align 8 - store %TName_Bool* %"$$BoolUtils.andb_136_724", %TName_Bool** %"$test_30", align 8, !dbg !52 - %"$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_727": ; preds = %"$have_gas_712" - call void @_out_of_gas() - br label %"$have_gas_728" - -"$have_gas_728": ; preds = %"$out_of_gas_727", %"$have_gas_712" - %"$consume_729" = sub i64 %"$gasrem_725", 1 - store i64 %"$consume_729", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$BoolUtils.andb_136", metadata !133, metadata !DIExpression()), !dbg !132 + %"$$BoolUtils.andb_135_721" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_135", align 8 + %"$$BoolUtils.andb_135_fptr_722" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_135_721", 0 + %"$$BoolUtils.andb_135_envptr_723" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_135_721", 1 + %"$$test__29_724" = load %TName_Bool*, %TName_Bool** %"$test__29", align 8 + %"$$BoolUtils.andb_135_call_725" = call %TName_Bool* %"$$BoolUtils.andb_135_fptr_722"(i8* %"$$BoolUtils.andb_135_envptr_723", %TName_Bool* %"$$test__29_724"), !dbg !132 + store %TName_Bool* %"$$BoolUtils.andb_135_call_725", %TName_Bool** %"$BoolUtils.andb_136", align 8, !dbg !132 + %"$$BoolUtils.andb_136_726" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_136", align 8 + store %TName_Bool* %"$$BoolUtils.andb_136_726", %TName_Bool** %"$test_30", align 8, !dbg !132 + %"$gasrem_727" = load i64, i64* @_gasrem, align 8 + %"$gascmp_728" = icmp ugt i64 1, %"$gasrem_727" + br i1 %"$gascmp_728", label %"$out_of_gas_729", label %"$have_gas_730" + +"$out_of_gas_729": ; preds = %"$have_gas_714" + call void @_out_of_gas() + br label %"$have_gas_730" + +"$have_gas_730": ; preds = %"$out_of_gas_729", %"$have_gas_714" + %"$consume_731" = sub i64 %"$gasrem_727", 1 + store i64 %"$consume_731", i64* @_gasrem, align 8 %"$arg1_31" = alloca %Int128, align 8 - %"$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" + call void @llvm.dbg.declare(metadata %Int128* %"$arg1_31", metadata !134, metadata !DIExpression()), !dbg !136 + %"$gasrem_732" = load i64, i64* @_gasrem, align 8 + %"$gascmp_733" = icmp ugt i64 1, %"$gasrem_732" + br i1 %"$gascmp_733", label %"$out_of_gas_734", label %"$have_gas_735" -"$out_of_gas_732": ; preds = %"$have_gas_728" +"$out_of_gas_734": ; preds = %"$have_gas_730" call void @_out_of_gas() - br label %"$have_gas_733" + br label %"$have_gas_735" -"$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 %Int128 { i128 9223372036854775806 }, %Int128* %"$arg1_31", align 8, !dbg !53 - %"$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" +"$have_gas_735": ; preds = %"$out_of_gas_734", %"$have_gas_730" + %"$consume_736" = sub i64 %"$gasrem_732", 1 + store i64 %"$consume_736", i64* @_gasrem, align 8 + store %Int128 { i128 9223372036854775806 }, %Int128* %"$arg1_31", align 8, !dbg !137 + %"$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_737": ; preds = %"$have_gas_733" +"$out_of_gas_739": ; preds = %"$have_gas_735" call void @_out_of_gas() - br label %"$have_gas_738" + br label %"$have_gas_740" -"$have_gas_738": ; preds = %"$out_of_gas_737", %"$have_gas_733" - %"$consume_739" = sub i64 %"$gasrem_735", 1 - store i64 %"$consume_739", i64* @_gasrem, align 8 +"$have_gas_740": ; preds = %"$out_of_gas_739", %"$have_gas_735" + %"$consume_741" = sub i64 %"$gasrem_737", 1 + store i64 %"$consume_741", i64* @_gasrem, align 8 %"$arg2_32" = alloca %Int128, 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" + call void @llvm.dbg.declare(metadata %Int128* %"$arg2_32", metadata !138, metadata !DIExpression()), !dbg !139 + %"$gasrem_742" = load i64, i64* @_gasrem, align 8 + %"$gascmp_743" = icmp ugt i64 1, %"$gasrem_742" + br i1 %"$gascmp_743", label %"$out_of_gas_744", label %"$have_gas_745" -"$out_of_gas_742": ; preds = %"$have_gas_738" +"$out_of_gas_744": ; preds = %"$have_gas_740" call void @_out_of_gas() - br label %"$have_gas_743" + br label %"$have_gas_745" -"$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 %Int128 { i128 9223372036854775806 }, %Int128* %"$arg2_32", align 8, !dbg !54 - %"$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" +"$have_gas_745": ; preds = %"$out_of_gas_744", %"$have_gas_740" + %"$consume_746" = sub i64 %"$gasrem_742", 1 + store i64 %"$consume_746", i64* @_gasrem, align 8 + store %Int128 { i128 9223372036854775806 }, %Int128* %"$arg2_32", align 8, !dbg !140 + %"$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_747": ; preds = %"$have_gas_743" +"$out_of_gas_749": ; preds = %"$have_gas_745" call void @_out_of_gas() - br label %"$have_gas_748" + br label %"$have_gas_750" -"$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 +"$have_gas_750": ; preds = %"$out_of_gas_749", %"$have_gas_745" + %"$consume_751" = sub i64 %"$gasrem_747", 1 + store i64 %"$consume_751", i64* @_gasrem, align 8 %"$test_36" = alloca %TName_Bool*, align 8 - %"$gasrem_750" = load i64, i64* @_gasrem, align 8 - %"$gascmp_751" = icmp ugt i64 1, %"$gasrem_750" - br i1 %"$gascmp_751", label %"$out_of_gas_752", label %"$have_gas_753" + call void @llvm.dbg.declare(metadata %TName_Bool** %"$test_36", metadata !141, metadata !DIExpression()), !dbg !142 + %"$gasrem_752" = load i64, i64* @_gasrem, align 8 + %"$gascmp_753" = icmp ugt i64 1, %"$gasrem_752" + br i1 %"$gascmp_753", label %"$out_of_gas_754", label %"$have_gas_755" -"$out_of_gas_752": ; preds = %"$have_gas_748" +"$out_of_gas_754": ; preds = %"$have_gas_750" call void @_out_of_gas() - br label %"$have_gas_753" + br label %"$have_gas_755" -"$have_gas_753": ; preds = %"$out_of_gas_752", %"$have_gas_748" - %"$consume_754" = sub i64 %"$gasrem_750", 1 - store i64 %"$consume_754", i64* @_gasrem, align 8 +"$have_gas_755": ; preds = %"$out_of_gas_754", %"$have_gas_750" + %"$consume_756" = sub i64 %"$gasrem_752", 1 + store i64 %"$consume_756", i64* @_gasrem, align 8 %"$res_33" = alloca %Int128, align 8 - %"$gasrem_756" = load i64, i64* @_gasrem, align 8 - %"$gascmp_757" = icmp ugt i64 40, %"$gasrem_756" - br i1 %"$gascmp_757", label %"$out_of_gas_758", label %"$have_gas_759" + call void @llvm.dbg.declare(metadata %Int128* %"$res_33", metadata !143, metadata !DIExpression()), !dbg !144 + %"$gasrem_758" = load i64, i64* @_gasrem, align 8 + %"$gascmp_759" = icmp ugt i64 40, %"$gasrem_758" + br i1 %"$gascmp_759", label %"$out_of_gas_760", label %"$have_gas_761" -"$out_of_gas_758": ; preds = %"$have_gas_753" +"$out_of_gas_760": ; preds = %"$have_gas_755" call void @_out_of_gas() - br label %"$have_gas_759" + br label %"$have_gas_761" -"$have_gas_759": ; preds = %"$out_of_gas_758", %"$have_gas_753" - %"$consume_760" = sub i64 %"$gasrem_756", 40 - store i64 %"$consume_760", i64* @_gasrem, align 8 - %"$$arg1_31_761" = load %Int128, %Int128* %"$arg1_31", align 8 - %"$$arg2_32_762" = load %Int128, %Int128* %"$arg2_32", align 8 - %"$mul_call_763" = call %Int128 @_mul_Int128(%Int128 %"$$arg1_31_761", %Int128 %"$$arg2_32_762"), !dbg !55 - store %Int128 %"$mul_call_763", %Int128* %"$res_33", align 8, !dbg !55 - %"$gasrem_764" = load i64, i64* @_gasrem, align 8 - %"$gascmp_765" = icmp ugt i64 1, %"$gasrem_764" - br i1 %"$gascmp_765", label %"$out_of_gas_766", label %"$have_gas_767" +"$have_gas_761": ; preds = %"$out_of_gas_760", %"$have_gas_755" + %"$consume_762" = sub i64 %"$gasrem_758", 40 + store i64 %"$consume_762", i64* @_gasrem, align 8 + %"$$arg1_31_763" = load %Int128, %Int128* %"$arg1_31", align 8 + %"$$arg2_32_764" = load %Int128, %Int128* %"$arg2_32", align 8 + %"$mul_call_765" = call %Int128 @_mul_Int128(%Int128 %"$$arg1_31_763", %Int128 %"$$arg2_32_764"), !dbg !145 + store %Int128 %"$mul_call_765", %Int128* %"$res_33", align 8, !dbg !145 + %"$gasrem_766" = load i64, i64* @_gasrem, align 8 + %"$gascmp_767" = icmp ugt i64 1, %"$gasrem_766" + br i1 %"$gascmp_767", label %"$out_of_gas_768", label %"$have_gas_769" -"$out_of_gas_766": ; preds = %"$have_gas_759" +"$out_of_gas_768": ; preds = %"$have_gas_761" call void @_out_of_gas() - br label %"$have_gas_767" + br label %"$have_gas_769" -"$have_gas_767": ; preds = %"$out_of_gas_766", %"$have_gas_759" - %"$consume_768" = sub i64 %"$gasrem_764", 1 - store i64 %"$consume_768", i64* @_gasrem, align 8 +"$have_gas_769": ; preds = %"$out_of_gas_768", %"$have_gas_761" + %"$consume_770" = sub i64 %"$gasrem_766", 1 + store i64 %"$consume_770", i64* @_gasrem, align 8 %"$res__34" = alloca %Int128, 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" + call void @llvm.dbg.declare(metadata %Int128* %"$res__34", metadata !146, metadata !DIExpression()), !dbg !147 + %"$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_771": ; preds = %"$have_gas_767" +"$out_of_gas_773": ; preds = %"$have_gas_769" call void @_out_of_gas() - br label %"$have_gas_772" + br label %"$have_gas_774" -"$have_gas_772": ; preds = %"$out_of_gas_771", %"$have_gas_767" - %"$consume_773" = sub i64 %"$gasrem_769", 1 - store i64 %"$consume_773", i64* @_gasrem, align 8 - store %Int128 { i128 85070591730234615828950163710522949636 }, %Int128* %"$res__34", align 8, !dbg !56 - %"$gasrem_774" = load i64, i64* @_gasrem, align 8 - %"$gascmp_775" = icmp ugt i64 1, %"$gasrem_774" - br i1 %"$gascmp_775", label %"$out_of_gas_776", label %"$have_gas_777" +"$have_gas_774": ; preds = %"$out_of_gas_773", %"$have_gas_769" + %"$consume_775" = sub i64 %"$gasrem_771", 1 + store i64 %"$consume_775", i64* @_gasrem, align 8 + store %Int128 { i128 85070591730234615828950163710522949636 }, %Int128* %"$res__34", align 8, !dbg !148 + %"$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" -"$out_of_gas_776": ; preds = %"$have_gas_772" +"$out_of_gas_778": ; preds = %"$have_gas_774" call void @_out_of_gas() - br label %"$have_gas_777" + br label %"$have_gas_779" -"$have_gas_777": ; preds = %"$out_of_gas_776", %"$have_gas_772" - %"$consume_778" = sub i64 %"$gasrem_774", 1 - store i64 %"$consume_778", i64* @_gasrem, align 8 +"$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 %"$test__35" = alloca %TName_Bool*, align 8 - %"$gasrem_780" = load i64, i64* @_gasrem, align 8 - %"$gascmp_781" = icmp ugt i64 8, %"$gasrem_780" - br i1 %"$gascmp_781", label %"$out_of_gas_782", label %"$have_gas_783" - -"$out_of_gas_782": ; preds = %"$have_gas_777" - call void @_out_of_gas() - br label %"$have_gas_783" - -"$have_gas_783": ; preds = %"$out_of_gas_782", %"$have_gas_777" - %"$consume_784" = sub i64 %"$gasrem_780", 8 - store i64 %"$consume_784", i64* @_gasrem, align 8 - %"$execptr_load_785" = load i8*, i8** @_execptr, align 8 - %"$$res_33_786" = load %Int128, %Int128* %"$res_33", align 8 - %"$$res__34_787" = load %Int128, %Int128* %"$res__34", align 8 - %"$eq_call_788" = call %TName_Bool* @_eq_Int128(i8* %"$execptr_load_785", %Int128 %"$$res_33_786", %Int128 %"$$res__34_787"), !dbg !57 - store %TName_Bool* %"$eq_call_788", %TName_Bool** %"$test__35", align 8, !dbg !57 - %"$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" - -"$out_of_gas_792": ; preds = %"$have_gas_783" - call void @_out_of_gas() - br label %"$have_gas_793" - -"$have_gas_793": ; preds = %"$out_of_gas_792", %"$have_gas_783" - %"$consume_794" = sub i64 %"$gasrem_790", 1 - store i64 %"$consume_794", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$test__35", metadata !149, metadata !DIExpression()), !dbg !150 + %"$gasrem_782" = load i64, i64* @_gasrem, align 8 + %"$gascmp_783" = icmp ugt i64 8, %"$gasrem_782" + br i1 %"$gascmp_783", label %"$out_of_gas_784", label %"$have_gas_785" + +"$out_of_gas_784": ; preds = %"$have_gas_779" + call void @_out_of_gas() + br label %"$have_gas_785" + +"$have_gas_785": ; preds = %"$out_of_gas_784", %"$have_gas_779" + %"$consume_786" = sub i64 %"$gasrem_782", 8 + store i64 %"$consume_786", i64* @_gasrem, align 8 + %"$execptr_load_787" = load i8*, i8** @_execptr, align 8 + %"$$res_33_788" = load %Int128, %Int128* %"$res_33", align 8 + %"$$res__34_789" = load %Int128, %Int128* %"$res__34", align 8 + %"$eq_call_790" = call %TName_Bool* @_eq_Int128(i8* %"$execptr_load_787", %Int128 %"$$res_33_788", %Int128 %"$$res__34_789"), !dbg !151 + store %TName_Bool* %"$eq_call_790", %TName_Bool** %"$test__35", align 8, !dbg !151 + %"$gasrem_792" = load i64, i64* @_gasrem, align 8 + %"$gascmp_793" = icmp ugt i64 1, %"$gasrem_792" + br i1 %"$gascmp_793", label %"$out_of_gas_794", label %"$have_gas_795" + +"$out_of_gas_794": ; preds = %"$have_gas_785" + call void @_out_of_gas() + br label %"$have_gas_795" + +"$have_gas_795": ; preds = %"$out_of_gas_794", %"$have_gas_785" + %"$consume_796" = sub i64 %"$gasrem_792", 1 + store i64 %"$consume_796", i64* @_gasrem, align 8 %"$BoolUtils.andb_137" = alloca { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, align 8 - %"$BoolUtils.andb_795" = 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_796" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_795", 0 - %"$BoolUtils.andb_envptr_797" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_795", 1 - %"$$test_30_798" = load %TName_Bool*, %TName_Bool** %"$test_30", align 8 - %"$BoolUtils.andb_call_799" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_796"(i8* %"$BoolUtils.andb_envptr_797", %TName_Bool* %"$$test_30_798"), !dbg !58 - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_799", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_137", align 8, !dbg !58 + %"$BoolUtils.andb_797" = 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_798" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_797", 0 + %"$BoolUtils.andb_envptr_799" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_797", 1 + %"$$test_30_800" = load %TName_Bool*, %TName_Bool** %"$test_30", align 8 + %"$BoolUtils.andb_call_801" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_798"(i8* %"$BoolUtils.andb_envptr_799", %TName_Bool* %"$$test_30_800"), !dbg !152 + store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_801", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_137", align 8, !dbg !152 %"$BoolUtils.andb_138" = alloca %TName_Bool*, align 8 - %"$$BoolUtils.andb_137_800" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_137", align 8 - %"$$BoolUtils.andb_137_fptr_801" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_137_800", 0 - %"$$BoolUtils.andb_137_envptr_802" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_137_800", 1 - %"$$test__35_803" = load %TName_Bool*, %TName_Bool** %"$test__35", align 8 - %"$$BoolUtils.andb_137_call_804" = call %TName_Bool* %"$$BoolUtils.andb_137_fptr_801"(i8* %"$$BoolUtils.andb_137_envptr_802", %TName_Bool* %"$$test__35_803"), !dbg !58 - store %TName_Bool* %"$$BoolUtils.andb_137_call_804", %TName_Bool** %"$BoolUtils.andb_138", align 8, !dbg !58 - %"$$BoolUtils.andb_138_805" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_138", align 8 - store %TName_Bool* %"$$BoolUtils.andb_138_805", %TName_Bool** %"$test_36", align 8, !dbg !58 - %"$gasrem_806" = load i64, i64* @_gasrem, align 8 - %"$gascmp_807" = icmp ugt i64 1, %"$gasrem_806" - br i1 %"$gascmp_807", label %"$out_of_gas_808", label %"$have_gas_809" - -"$out_of_gas_808": ; preds = %"$have_gas_793" - call void @_out_of_gas() - br label %"$have_gas_809" - -"$have_gas_809": ; preds = %"$out_of_gas_808", %"$have_gas_793" - %"$consume_810" = sub i64 %"$gasrem_806", 1 - store i64 %"$consume_810", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$BoolUtils.andb_138", metadata !153, metadata !DIExpression()), !dbg !152 + %"$$BoolUtils.andb_137_802" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_137", align 8 + %"$$BoolUtils.andb_137_fptr_803" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_137_802", 0 + %"$$BoolUtils.andb_137_envptr_804" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_137_802", 1 + %"$$test__35_805" = load %TName_Bool*, %TName_Bool** %"$test__35", align 8 + %"$$BoolUtils.andb_137_call_806" = call %TName_Bool* %"$$BoolUtils.andb_137_fptr_803"(i8* %"$$BoolUtils.andb_137_envptr_804", %TName_Bool* %"$$test__35_805"), !dbg !152 + store %TName_Bool* %"$$BoolUtils.andb_137_call_806", %TName_Bool** %"$BoolUtils.andb_138", align 8, !dbg !152 + %"$$BoolUtils.andb_138_807" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_138", align 8 + store %TName_Bool* %"$$BoolUtils.andb_138_807", %TName_Bool** %"$test_36", align 8, !dbg !152 + %"$gasrem_808" = load i64, i64* @_gasrem, align 8 + %"$gascmp_809" = icmp ugt i64 1, %"$gasrem_808" + br i1 %"$gascmp_809", label %"$out_of_gas_810", label %"$have_gas_811" + +"$out_of_gas_810": ; preds = %"$have_gas_795" + call void @_out_of_gas() + br label %"$have_gas_811" + +"$have_gas_811": ; preds = %"$out_of_gas_810", %"$have_gas_795" + %"$consume_812" = sub i64 %"$gasrem_808", 1 + store i64 %"$consume_812", i64* @_gasrem, align 8 %"$arg1_37" = alloca %Int128, align 8 - %"$gasrem_811" = load i64, i64* @_gasrem, align 8 - %"$gascmp_812" = icmp ugt i64 1, %"$gasrem_811" - br i1 %"$gascmp_812", label %"$out_of_gas_813", label %"$have_gas_814" + call void @llvm.dbg.declare(metadata %Int128* %"$arg1_37", metadata !154, metadata !DIExpression()), !dbg !155 + %"$gasrem_813" = load i64, i64* @_gasrem, align 8 + %"$gascmp_814" = icmp ugt i64 1, %"$gasrem_813" + br i1 %"$gascmp_814", label %"$out_of_gas_815", label %"$have_gas_816" -"$out_of_gas_813": ; preds = %"$have_gas_809" +"$out_of_gas_815": ; preds = %"$have_gas_811" call void @_out_of_gas() - br label %"$have_gas_814" + br label %"$have_gas_816" -"$have_gas_814": ; preds = %"$out_of_gas_813", %"$have_gas_809" - %"$consume_815" = sub i64 %"$gasrem_811", 1 - store i64 %"$consume_815", i64* @_gasrem, align 8 - store %Int128 { i128 9223372036854775806 }, %Int128* %"$arg1_37", align 8, !dbg !59 - %"$gasrem_816" = load i64, i64* @_gasrem, align 8 - %"$gascmp_817" = icmp ugt i64 1, %"$gasrem_816" - br i1 %"$gascmp_817", label %"$out_of_gas_818", label %"$have_gas_819" +"$have_gas_816": ; preds = %"$out_of_gas_815", %"$have_gas_811" + %"$consume_817" = sub i64 %"$gasrem_813", 1 + store i64 %"$consume_817", i64* @_gasrem, align 8 + store %Int128 { i128 9223372036854775806 }, %Int128* %"$arg1_37", align 8, !dbg !156 + %"$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_818": ; preds = %"$have_gas_814" +"$out_of_gas_820": ; preds = %"$have_gas_816" call void @_out_of_gas() - br label %"$have_gas_819" + br label %"$have_gas_821" -"$have_gas_819": ; preds = %"$out_of_gas_818", %"$have_gas_814" - %"$consume_820" = sub i64 %"$gasrem_816", 1 - store i64 %"$consume_820", i64* @_gasrem, align 8 +"$have_gas_821": ; preds = %"$out_of_gas_820", %"$have_gas_816" + %"$consume_822" = sub i64 %"$gasrem_818", 1 + store i64 %"$consume_822", i64* @_gasrem, align 8 %"$arg2_38" = alloca %Int128, 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" + call void @llvm.dbg.declare(metadata %Int128* %"$arg2_38", metadata !157, metadata !DIExpression()), !dbg !158 + %"$gasrem_823" = load i64, i64* @_gasrem, align 8 + %"$gascmp_824" = icmp ugt i64 1, %"$gasrem_823" + br i1 %"$gascmp_824", label %"$out_of_gas_825", label %"$have_gas_826" -"$out_of_gas_823": ; preds = %"$have_gas_819" +"$out_of_gas_825": ; preds = %"$have_gas_821" call void @_out_of_gas() - br label %"$have_gas_824" + br label %"$have_gas_826" -"$have_gas_824": ; preds = %"$out_of_gas_823", %"$have_gas_819" - %"$consume_825" = sub i64 %"$gasrem_821", 1 - store i64 %"$consume_825", i64* @_gasrem, align 8 - store %Int128 zeroinitializer, %Int128* %"$arg2_38", align 8, !dbg !60 - %"$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" +"$have_gas_826": ; preds = %"$out_of_gas_825", %"$have_gas_821" + %"$consume_827" = sub i64 %"$gasrem_823", 1 + store i64 %"$consume_827", i64* @_gasrem, align 8 + store %Int128 zeroinitializer, %Int128* %"$arg2_38", align 8, !dbg !159 + %"$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_828": ; preds = %"$have_gas_824" +"$out_of_gas_830": ; preds = %"$have_gas_826" call void @_out_of_gas() - br label %"$have_gas_829" + br label %"$have_gas_831" -"$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 +"$have_gas_831": ; preds = %"$out_of_gas_830", %"$have_gas_826" + %"$consume_832" = sub i64 %"$gasrem_828", 1 + store i64 %"$consume_832", i64* @_gasrem, align 8 %"$test_42" = alloca %TName_Bool*, 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" + call void @llvm.dbg.declare(metadata %TName_Bool** %"$test_42", metadata !160, metadata !DIExpression()), !dbg !161 + %"$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_833": ; preds = %"$have_gas_829" +"$out_of_gas_835": ; preds = %"$have_gas_831" call void @_out_of_gas() - br label %"$have_gas_834" + br label %"$have_gas_836" -"$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 +"$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 %"$res_39" = alloca %Int128, align 8 - %"$gasrem_837" = load i64, i64* @_gasrem, align 8 - %"$gascmp_838" = icmp ugt i64 40, %"$gasrem_837" - br i1 %"$gascmp_838", label %"$out_of_gas_839", label %"$have_gas_840" + call void @llvm.dbg.declare(metadata %Int128* %"$res_39", metadata !162, metadata !DIExpression()), !dbg !163 + %"$gasrem_839" = load i64, i64* @_gasrem, align 8 + %"$gascmp_840" = icmp ugt i64 40, %"$gasrem_839" + br i1 %"$gascmp_840", label %"$out_of_gas_841", label %"$have_gas_842" -"$out_of_gas_839": ; preds = %"$have_gas_834" +"$out_of_gas_841": ; preds = %"$have_gas_836" call void @_out_of_gas() - br label %"$have_gas_840" + br label %"$have_gas_842" -"$have_gas_840": ; preds = %"$out_of_gas_839", %"$have_gas_834" - %"$consume_841" = sub i64 %"$gasrem_837", 40 - store i64 %"$consume_841", i64* @_gasrem, align 8 - %"$$arg1_37_842" = load %Int128, %Int128* %"$arg1_37", align 8 - %"$$arg2_38_843" = load %Int128, %Int128* %"$arg2_38", align 8 - %"$mul_call_844" = call %Int128 @_mul_Int128(%Int128 %"$$arg1_37_842", %Int128 %"$$arg2_38_843"), !dbg !61 - store %Int128 %"$mul_call_844", %Int128* %"$res_39", align 8, !dbg !61 - %"$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" +"$have_gas_842": ; preds = %"$out_of_gas_841", %"$have_gas_836" + %"$consume_843" = sub i64 %"$gasrem_839", 40 + store i64 %"$consume_843", i64* @_gasrem, align 8 + %"$$arg1_37_844" = load %Int128, %Int128* %"$arg1_37", align 8 + %"$$arg2_38_845" = load %Int128, %Int128* %"$arg2_38", align 8 + %"$mul_call_846" = call %Int128 @_mul_Int128(%Int128 %"$$arg1_37_844", %Int128 %"$$arg2_38_845"), !dbg !164 + store %Int128 %"$mul_call_846", %Int128* %"$res_39", align 8, !dbg !164 + %"$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_847": ; preds = %"$have_gas_840" +"$out_of_gas_849": ; preds = %"$have_gas_842" call void @_out_of_gas() - br label %"$have_gas_848" + br label %"$have_gas_850" -"$have_gas_848": ; preds = %"$out_of_gas_847", %"$have_gas_840" - %"$consume_849" = sub i64 %"$gasrem_845", 1 - store i64 %"$consume_849", i64* @_gasrem, align 8 +"$have_gas_850": ; preds = %"$out_of_gas_849", %"$have_gas_842" + %"$consume_851" = sub i64 %"$gasrem_847", 1 + store i64 %"$consume_851", i64* @_gasrem, align 8 %"$res__40" = alloca %Int128, 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" + call void @llvm.dbg.declare(metadata %Int128* %"$res__40", metadata !165, metadata !DIExpression()), !dbg !166 + %"$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_852": ; preds = %"$have_gas_848" +"$out_of_gas_854": ; preds = %"$have_gas_850" call void @_out_of_gas() - br label %"$have_gas_853" + br label %"$have_gas_855" -"$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 - store %Int128 zeroinitializer, %Int128* %"$res__40", align 8, !dbg !62 - %"$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" +"$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 + store %Int128 zeroinitializer, %Int128* %"$res__40", align 8, !dbg !167 + %"$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_857": ; preds = %"$have_gas_853" +"$out_of_gas_859": ; preds = %"$have_gas_855" call void @_out_of_gas() - br label %"$have_gas_858" + br label %"$have_gas_860" -"$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 +"$have_gas_860": ; preds = %"$out_of_gas_859", %"$have_gas_855" + %"$consume_861" = sub i64 %"$gasrem_857", 1 + store i64 %"$consume_861", i64* @_gasrem, align 8 %"$test__41" = alloca %TName_Bool*, align 8 - %"$gasrem_861" = load i64, i64* @_gasrem, align 8 - %"$gascmp_862" = icmp ugt i64 8, %"$gasrem_861" - br i1 %"$gascmp_862", label %"$out_of_gas_863", label %"$have_gas_864" - -"$out_of_gas_863": ; preds = %"$have_gas_858" - call void @_out_of_gas() - br label %"$have_gas_864" - -"$have_gas_864": ; preds = %"$out_of_gas_863", %"$have_gas_858" - %"$consume_865" = sub i64 %"$gasrem_861", 8 - store i64 %"$consume_865", i64* @_gasrem, align 8 - %"$execptr_load_866" = load i8*, i8** @_execptr, align 8 - %"$$res_39_867" = load %Int128, %Int128* %"$res_39", align 8 - %"$$res__40_868" = load %Int128, %Int128* %"$res__40", align 8 - %"$eq_call_869" = call %TName_Bool* @_eq_Int128(i8* %"$execptr_load_866", %Int128 %"$$res_39_867", %Int128 %"$$res__40_868"), !dbg !63 - store %TName_Bool* %"$eq_call_869", %TName_Bool** %"$test__41", align 8, !dbg !63 - %"$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_864" - call void @_out_of_gas() - br label %"$have_gas_874" - -"$have_gas_874": ; preds = %"$out_of_gas_873", %"$have_gas_864" - %"$consume_875" = sub i64 %"$gasrem_871", 1 - store i64 %"$consume_875", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$test__41", metadata !168, metadata !DIExpression()), !dbg !169 + %"$gasrem_863" = load i64, i64* @_gasrem, align 8 + %"$gascmp_864" = icmp ugt i64 8, %"$gasrem_863" + br i1 %"$gascmp_864", label %"$out_of_gas_865", label %"$have_gas_866" + +"$out_of_gas_865": ; preds = %"$have_gas_860" + call void @_out_of_gas() + br label %"$have_gas_866" + +"$have_gas_866": ; preds = %"$out_of_gas_865", %"$have_gas_860" + %"$consume_867" = sub i64 %"$gasrem_863", 8 + store i64 %"$consume_867", i64* @_gasrem, align 8 + %"$execptr_load_868" = load i8*, i8** @_execptr, align 8 + %"$$res_39_869" = load %Int128, %Int128* %"$res_39", align 8 + %"$$res__40_870" = load %Int128, %Int128* %"$res__40", align 8 + %"$eq_call_871" = call %TName_Bool* @_eq_Int128(i8* %"$execptr_load_868", %Int128 %"$$res_39_869", %Int128 %"$$res__40_870"), !dbg !170 + store %TName_Bool* %"$eq_call_871", %TName_Bool** %"$test__41", align 8, !dbg !170 + %"$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_866" + call void @_out_of_gas() + br label %"$have_gas_876" + +"$have_gas_876": ; preds = %"$out_of_gas_875", %"$have_gas_866" + %"$consume_877" = sub i64 %"$gasrem_873", 1 + store i64 %"$consume_877", i64* @_gasrem, align 8 %"$BoolUtils.andb_139" = alloca { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, align 8 - %"$BoolUtils.andb_876" = 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_877" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_876", 0 - %"$BoolUtils.andb_envptr_878" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_876", 1 - %"$$test_36_879" = load %TName_Bool*, %TName_Bool** %"$test_36", align 8 - %"$BoolUtils.andb_call_880" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_877"(i8* %"$BoolUtils.andb_envptr_878", %TName_Bool* %"$$test_36_879"), !dbg !64 - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_880", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_139", align 8, !dbg !64 + %"$BoolUtils.andb_878" = 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_879" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_878", 0 + %"$BoolUtils.andb_envptr_880" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_878", 1 + %"$$test_36_881" = load %TName_Bool*, %TName_Bool** %"$test_36", align 8 + %"$BoolUtils.andb_call_882" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_879"(i8* %"$BoolUtils.andb_envptr_880", %TName_Bool* %"$$test_36_881"), !dbg !171 + store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_882", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_139", align 8, !dbg !171 %"$BoolUtils.andb_140" = alloca %TName_Bool*, align 8 - %"$$BoolUtils.andb_139_881" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_139", align 8 - %"$$BoolUtils.andb_139_fptr_882" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_139_881", 0 - %"$$BoolUtils.andb_139_envptr_883" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_139_881", 1 - %"$$test__41_884" = load %TName_Bool*, %TName_Bool** %"$test__41", align 8 - %"$$BoolUtils.andb_139_call_885" = call %TName_Bool* %"$$BoolUtils.andb_139_fptr_882"(i8* %"$$BoolUtils.andb_139_envptr_883", %TName_Bool* %"$$test__41_884"), !dbg !64 - store %TName_Bool* %"$$BoolUtils.andb_139_call_885", %TName_Bool** %"$BoolUtils.andb_140", align 8, !dbg !64 - %"$$BoolUtils.andb_140_886" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_140", align 8 - store %TName_Bool* %"$$BoolUtils.andb_140_886", %TName_Bool** %"$test_42", align 8, !dbg !64 - %"$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_874" - call void @_out_of_gas() - br label %"$have_gas_890" - -"$have_gas_890": ; preds = %"$out_of_gas_889", %"$have_gas_874" - %"$consume_891" = sub i64 %"$gasrem_887", 1 - store i64 %"$consume_891", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$BoolUtils.andb_140", metadata !172, metadata !DIExpression()), !dbg !171 + %"$$BoolUtils.andb_139_883" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_139", align 8 + %"$$BoolUtils.andb_139_fptr_884" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_139_883", 0 + %"$$BoolUtils.andb_139_envptr_885" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_139_883", 1 + %"$$test__41_886" = load %TName_Bool*, %TName_Bool** %"$test__41", align 8 + %"$$BoolUtils.andb_139_call_887" = call %TName_Bool* %"$$BoolUtils.andb_139_fptr_884"(i8* %"$$BoolUtils.andb_139_envptr_885", %TName_Bool* %"$$test__41_886"), !dbg !171 + store %TName_Bool* %"$$BoolUtils.andb_139_call_887", %TName_Bool** %"$BoolUtils.andb_140", align 8, !dbg !171 + %"$$BoolUtils.andb_140_888" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_140", align 8 + store %TName_Bool* %"$$BoolUtils.andb_140_888", %TName_Bool** %"$test_42", align 8, !dbg !171 + %"$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 %"$arg1_43" = alloca %Int128, align 8 - %"$gasrem_892" = load i64, i64* @_gasrem, align 8 - %"$gascmp_893" = icmp ugt i64 1, %"$gasrem_892" - br i1 %"$gascmp_893", label %"$out_of_gas_894", label %"$have_gas_895" + call void @llvm.dbg.declare(metadata %Int128* %"$arg1_43", metadata !173, metadata !DIExpression()), !dbg !174 + %"$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_894": ; preds = %"$have_gas_890" +"$out_of_gas_896": ; preds = %"$have_gas_892" call void @_out_of_gas() - br label %"$have_gas_895" + br label %"$have_gas_897" -"$have_gas_895": ; preds = %"$out_of_gas_894", %"$have_gas_890" - %"$consume_896" = sub i64 %"$gasrem_892", 1 - store i64 %"$consume_896", i64* @_gasrem, align 8 - store %Int128 { i128 9223372036854775806 }, %Int128* %"$arg1_43", align 8, !dbg !65 - %"$gasrem_897" = load i64, i64* @_gasrem, align 8 - %"$gascmp_898" = icmp ugt i64 1, %"$gasrem_897" - br i1 %"$gascmp_898", label %"$out_of_gas_899", label %"$have_gas_900" +"$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 + store %Int128 { i128 9223372036854775806 }, %Int128* %"$arg1_43", align 8, !dbg !175 + %"$gasrem_899" = load i64, i64* @_gasrem, align 8 + %"$gascmp_900" = icmp ugt i64 1, %"$gasrem_899" + br i1 %"$gascmp_900", label %"$out_of_gas_901", label %"$have_gas_902" -"$out_of_gas_899": ; preds = %"$have_gas_895" +"$out_of_gas_901": ; preds = %"$have_gas_897" call void @_out_of_gas() - br label %"$have_gas_900" + br label %"$have_gas_902" -"$have_gas_900": ; preds = %"$out_of_gas_899", %"$have_gas_895" - %"$consume_901" = sub i64 %"$gasrem_897", 1 - store i64 %"$consume_901", i64* @_gasrem, align 8 +"$have_gas_902": ; preds = %"$out_of_gas_901", %"$have_gas_897" + %"$consume_903" = sub i64 %"$gasrem_899", 1 + store i64 %"$consume_903", i64* @_gasrem, align 8 %"$arg2_44" = alloca %Int128, 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" + call void @llvm.dbg.declare(metadata %Int128* %"$arg2_44", metadata !176, metadata !DIExpression()), !dbg !177 + %"$gasrem_904" = load i64, i64* @_gasrem, align 8 + %"$gascmp_905" = icmp ugt i64 1, %"$gasrem_904" + br i1 %"$gascmp_905", label %"$out_of_gas_906", label %"$have_gas_907" -"$out_of_gas_904": ; preds = %"$have_gas_900" +"$out_of_gas_906": ; preds = %"$have_gas_902" call void @_out_of_gas() - br label %"$have_gas_905" + br label %"$have_gas_907" -"$have_gas_905": ; preds = %"$out_of_gas_904", %"$have_gas_900" - %"$consume_906" = sub i64 %"$gasrem_902", 1 - store i64 %"$consume_906", i64* @_gasrem, align 8 - store %Int128 { i128 -1 }, %Int128* %"$arg2_44", align 8, !dbg !66 - %"$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" +"$have_gas_907": ; preds = %"$out_of_gas_906", %"$have_gas_902" + %"$consume_908" = sub i64 %"$gasrem_904", 1 + store i64 %"$consume_908", i64* @_gasrem, align 8 + store %Int128 { i128 -1 }, %Int128* %"$arg2_44", align 8, !dbg !178 + %"$gasrem_909" = load i64, i64* @_gasrem, align 8 + %"$gascmp_910" = icmp ugt i64 1, %"$gasrem_909" + br i1 %"$gascmp_910", label %"$out_of_gas_911", label %"$have_gas_912" -"$out_of_gas_909": ; preds = %"$have_gas_905" +"$out_of_gas_911": ; preds = %"$have_gas_907" call void @_out_of_gas() - br label %"$have_gas_910" + br label %"$have_gas_912" -"$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 +"$have_gas_912": ; preds = %"$out_of_gas_911", %"$have_gas_907" + %"$consume_913" = sub i64 %"$gasrem_909", 1 + store i64 %"$consume_913", i64* @_gasrem, align 8 %"$test_48" = alloca %TName_Bool*, align 8 - %"$gasrem_912" = load i64, i64* @_gasrem, align 8 - %"$gascmp_913" = icmp ugt i64 1, %"$gasrem_912" - br i1 %"$gascmp_913", label %"$out_of_gas_914", label %"$have_gas_915" + call void @llvm.dbg.declare(metadata %TName_Bool** %"$test_48", metadata !179, metadata !DIExpression()), !dbg !180 + %"$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" -"$out_of_gas_914": ; preds = %"$have_gas_910" +"$out_of_gas_916": ; preds = %"$have_gas_912" call void @_out_of_gas() - br label %"$have_gas_915" + br label %"$have_gas_917" -"$have_gas_915": ; preds = %"$out_of_gas_914", %"$have_gas_910" - %"$consume_916" = sub i64 %"$gasrem_912", 1 - store i64 %"$consume_916", i64* @_gasrem, align 8 +"$have_gas_917": ; preds = %"$out_of_gas_916", %"$have_gas_912" + %"$consume_918" = sub i64 %"$gasrem_914", 1 + store i64 %"$consume_918", i64* @_gasrem, align 8 %"$res_45" = alloca %Int128, align 8 - %"$gasrem_918" = load i64, i64* @_gasrem, align 8 - %"$gascmp_919" = icmp ugt i64 40, %"$gasrem_918" - br i1 %"$gascmp_919", label %"$out_of_gas_920", label %"$have_gas_921" + call void @llvm.dbg.declare(metadata %Int128* %"$res_45", metadata !181, metadata !DIExpression()), !dbg !182 + %"$gasrem_920" = load i64, i64* @_gasrem, align 8 + %"$gascmp_921" = icmp ugt i64 40, %"$gasrem_920" + br i1 %"$gascmp_921", label %"$out_of_gas_922", label %"$have_gas_923" -"$out_of_gas_920": ; preds = %"$have_gas_915" +"$out_of_gas_922": ; preds = %"$have_gas_917" call void @_out_of_gas() - br label %"$have_gas_921" + br label %"$have_gas_923" -"$have_gas_921": ; preds = %"$out_of_gas_920", %"$have_gas_915" - %"$consume_922" = sub i64 %"$gasrem_918", 40 - store i64 %"$consume_922", i64* @_gasrem, align 8 - %"$$arg1_43_923" = load %Int128, %Int128* %"$arg1_43", align 8 - %"$$arg2_44_924" = load %Int128, %Int128* %"$arg2_44", align 8 - %"$mul_call_925" = call %Int128 @_mul_Int128(%Int128 %"$$arg1_43_923", %Int128 %"$$arg2_44_924"), !dbg !67 - store %Int128 %"$mul_call_925", %Int128* %"$res_45", align 8, !dbg !67 - %"$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" +"$have_gas_923": ; preds = %"$out_of_gas_922", %"$have_gas_917" + %"$consume_924" = sub i64 %"$gasrem_920", 40 + store i64 %"$consume_924", i64* @_gasrem, align 8 + %"$$arg1_43_925" = load %Int128, %Int128* %"$arg1_43", align 8 + %"$$arg2_44_926" = load %Int128, %Int128* %"$arg2_44", align 8 + %"$mul_call_927" = call %Int128 @_mul_Int128(%Int128 %"$$arg1_43_925", %Int128 %"$$arg2_44_926"), !dbg !183 + store %Int128 %"$mul_call_927", %Int128* %"$res_45", align 8, !dbg !183 + %"$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_928": ; preds = %"$have_gas_921" +"$out_of_gas_930": ; preds = %"$have_gas_923" call void @_out_of_gas() - br label %"$have_gas_929" + br label %"$have_gas_931" -"$have_gas_929": ; preds = %"$out_of_gas_928", %"$have_gas_921" - %"$consume_930" = sub i64 %"$gasrem_926", 1 - store i64 %"$consume_930", i64* @_gasrem, align 8 +"$have_gas_931": ; preds = %"$out_of_gas_930", %"$have_gas_923" + %"$consume_932" = sub i64 %"$gasrem_928", 1 + store i64 %"$consume_932", i64* @_gasrem, align 8 %"$res__46" = alloca %Int128, 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" + call void @llvm.dbg.declare(metadata %Int128* %"$res__46", metadata !184, metadata !DIExpression()), !dbg !185 + %"$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_933": ; preds = %"$have_gas_929" +"$out_of_gas_935": ; preds = %"$have_gas_931" call void @_out_of_gas() - br label %"$have_gas_934" + br label %"$have_gas_936" -"$have_gas_934": ; preds = %"$out_of_gas_933", %"$have_gas_929" - %"$consume_935" = sub i64 %"$gasrem_931", 1 - store i64 %"$consume_935", i64* @_gasrem, align 8 - store %Int128 { i128 -9223372036854775806 }, %Int128* %"$res__46", align 8, !dbg !68 - %"$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_936": ; preds = %"$out_of_gas_935", %"$have_gas_931" + %"$consume_937" = sub i64 %"$gasrem_933", 1 + store i64 %"$consume_937", i64* @_gasrem, align 8 + store %Int128 { i128 -9223372036854775806 }, %Int128* %"$res__46", align 8, !dbg !186 + %"$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_938": ; preds = %"$have_gas_934" +"$out_of_gas_940": ; preds = %"$have_gas_936" call void @_out_of_gas() - br label %"$have_gas_939" + br label %"$have_gas_941" -"$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 +"$have_gas_941": ; preds = %"$out_of_gas_940", %"$have_gas_936" + %"$consume_942" = sub i64 %"$gasrem_938", 1 + store i64 %"$consume_942", i64* @_gasrem, align 8 %"$test__47" = alloca %TName_Bool*, align 8 - %"$gasrem_942" = load i64, i64* @_gasrem, align 8 - %"$gascmp_943" = icmp ugt i64 8, %"$gasrem_942" - br i1 %"$gascmp_943", label %"$out_of_gas_944", label %"$have_gas_945" - -"$out_of_gas_944": ; preds = %"$have_gas_939" - call void @_out_of_gas() - br label %"$have_gas_945" - -"$have_gas_945": ; preds = %"$out_of_gas_944", %"$have_gas_939" - %"$consume_946" = sub i64 %"$gasrem_942", 8 - store i64 %"$consume_946", i64* @_gasrem, align 8 - %"$execptr_load_947" = load i8*, i8** @_execptr, align 8 - %"$$res_45_948" = load %Int128, %Int128* %"$res_45", align 8 - %"$$res__46_949" = load %Int128, %Int128* %"$res__46", align 8 - %"$eq_call_950" = call %TName_Bool* @_eq_Int128(i8* %"$execptr_load_947", %Int128 %"$$res_45_948", %Int128 %"$$res__46_949"), !dbg !69 - store %TName_Bool* %"$eq_call_950", %TName_Bool** %"$test__47", align 8, !dbg !69 - %"$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_945" - call void @_out_of_gas() - br label %"$have_gas_955" - -"$have_gas_955": ; preds = %"$out_of_gas_954", %"$have_gas_945" - %"$consume_956" = sub i64 %"$gasrem_952", 1 - store i64 %"$consume_956", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$test__47", metadata !187, metadata !DIExpression()), !dbg !188 + %"$gasrem_944" = load i64, i64* @_gasrem, align 8 + %"$gascmp_945" = icmp ugt i64 8, %"$gasrem_944" + br i1 %"$gascmp_945", label %"$out_of_gas_946", label %"$have_gas_947" + +"$out_of_gas_946": ; preds = %"$have_gas_941" + call void @_out_of_gas() + br label %"$have_gas_947" + +"$have_gas_947": ; preds = %"$out_of_gas_946", %"$have_gas_941" + %"$consume_948" = sub i64 %"$gasrem_944", 8 + store i64 %"$consume_948", i64* @_gasrem, align 8 + %"$execptr_load_949" = load i8*, i8** @_execptr, align 8 + %"$$res_45_950" = load %Int128, %Int128* %"$res_45", align 8 + %"$$res__46_951" = load %Int128, %Int128* %"$res__46", align 8 + %"$eq_call_952" = call %TName_Bool* @_eq_Int128(i8* %"$execptr_load_949", %Int128 %"$$res_45_950", %Int128 %"$$res__46_951"), !dbg !189 + store %TName_Bool* %"$eq_call_952", %TName_Bool** %"$test__47", align 8, !dbg !189 + %"$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 = %"$have_gas_947" + call void @_out_of_gas() + br label %"$have_gas_957" + +"$have_gas_957": ; preds = %"$out_of_gas_956", %"$have_gas_947" + %"$consume_958" = sub i64 %"$gasrem_954", 1 + store i64 %"$consume_958", i64* @_gasrem, align 8 %"$BoolUtils.andb_141" = alloca { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, align 8 - %"$BoolUtils.andb_957" = 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_958" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_957", 0 - %"$BoolUtils.andb_envptr_959" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_957", 1 - %"$$test_42_960" = load %TName_Bool*, %TName_Bool** %"$test_42", align 8 - %"$BoolUtils.andb_call_961" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_958"(i8* %"$BoolUtils.andb_envptr_959", %TName_Bool* %"$$test_42_960"), !dbg !70 - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_961", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_141", align 8, !dbg !70 + %"$BoolUtils.andb_959" = 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_960" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_959", 0 + %"$BoolUtils.andb_envptr_961" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_959", 1 + %"$$test_42_962" = load %TName_Bool*, %TName_Bool** %"$test_42", align 8 + %"$BoolUtils.andb_call_963" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_960"(i8* %"$BoolUtils.andb_envptr_961", %TName_Bool* %"$$test_42_962"), !dbg !190 + store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_963", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_141", align 8, !dbg !190 %"$BoolUtils.andb_142" = alloca %TName_Bool*, align 8 - %"$$BoolUtils.andb_141_962" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_141", align 8 - %"$$BoolUtils.andb_141_fptr_963" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_141_962", 0 - %"$$BoolUtils.andb_141_envptr_964" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_141_962", 1 - %"$$test__47_965" = load %TName_Bool*, %TName_Bool** %"$test__47", align 8 - %"$$BoolUtils.andb_141_call_966" = call %TName_Bool* %"$$BoolUtils.andb_141_fptr_963"(i8* %"$$BoolUtils.andb_141_envptr_964", %TName_Bool* %"$$test__47_965"), !dbg !70 - store %TName_Bool* %"$$BoolUtils.andb_141_call_966", %TName_Bool** %"$BoolUtils.andb_142", align 8, !dbg !70 - %"$$BoolUtils.andb_142_967" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_142", align 8 - store %TName_Bool* %"$$BoolUtils.andb_142_967", %TName_Bool** %"$test_48", align 8, !dbg !70 - %"$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_955" - call void @_out_of_gas() - br label %"$have_gas_971" - -"$have_gas_971": ; preds = %"$out_of_gas_970", %"$have_gas_955" - %"$consume_972" = sub i64 %"$gasrem_968", 1 - store i64 %"$consume_972", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$BoolUtils.andb_142", metadata !191, metadata !DIExpression()), !dbg !190 + %"$$BoolUtils.andb_141_964" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_141", align 8 + %"$$BoolUtils.andb_141_fptr_965" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_141_964", 0 + %"$$BoolUtils.andb_141_envptr_966" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_141_964", 1 + %"$$test__47_967" = load %TName_Bool*, %TName_Bool** %"$test__47", align 8 + %"$$BoolUtils.andb_141_call_968" = call %TName_Bool* %"$$BoolUtils.andb_141_fptr_965"(i8* %"$$BoolUtils.andb_141_envptr_966", %TName_Bool* %"$$test__47_967"), !dbg !190 + store %TName_Bool* %"$$BoolUtils.andb_141_call_968", %TName_Bool** %"$BoolUtils.andb_142", align 8, !dbg !190 + %"$$BoolUtils.andb_142_969" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_142", align 8 + store %TName_Bool* %"$$BoolUtils.andb_142_969", %TName_Bool** %"$test_48", align 8, !dbg !190 + %"$gasrem_970" = load i64, i64* @_gasrem, align 8 + %"$gascmp_971" = icmp ugt i64 1, %"$gasrem_970" + br i1 %"$gascmp_971", label %"$out_of_gas_972", label %"$have_gas_973" + +"$out_of_gas_972": ; preds = %"$have_gas_957" + call void @_out_of_gas() + br label %"$have_gas_973" + +"$have_gas_973": ; preds = %"$out_of_gas_972", %"$have_gas_957" + %"$consume_974" = sub i64 %"$gasrem_970", 1 + store i64 %"$consume_974", i64* @_gasrem, align 8 %"$arg1_49" = alloca %Int256, 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" + call void @llvm.dbg.declare(metadata %Int256* %"$arg1_49", metadata !192, metadata !DIExpression()), !dbg !194 + %"$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_975": ; preds = %"$have_gas_971" +"$out_of_gas_977": ; preds = %"$have_gas_973" call void @_out_of_gas() - br label %"$have_gas_976" + br label %"$have_gas_978" -"$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 - store %Int256 { i256 9223372036854775806 }, %Int256* %"$arg1_49", align 8, !dbg !71 - %"$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" +"$have_gas_978": ; preds = %"$out_of_gas_977", %"$have_gas_973" + %"$consume_979" = sub i64 %"$gasrem_975", 1 + store i64 %"$consume_979", i64* @_gasrem, align 8 + store %Int256 { i256 9223372036854775806 }, %Int256* %"$arg1_49", align 8, !dbg !195 + %"$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_980": ; preds = %"$have_gas_976" +"$out_of_gas_982": ; preds = %"$have_gas_978" call void @_out_of_gas() - br label %"$have_gas_981" + br label %"$have_gas_983" -"$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 +"$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 %"$arg2_50" = alloca %Int256, align 8 - %"$gasrem_983" = load i64, i64* @_gasrem, align 8 - %"$gascmp_984" = icmp ugt i64 1, %"$gasrem_983" - br i1 %"$gascmp_984", label %"$out_of_gas_985", label %"$have_gas_986" + call void @llvm.dbg.declare(metadata %Int256* %"$arg2_50", metadata !196, metadata !DIExpression()), !dbg !197 + %"$gasrem_985" = load i64, i64* @_gasrem, align 8 + %"$gascmp_986" = icmp ugt i64 1, %"$gasrem_985" + br i1 %"$gascmp_986", label %"$out_of_gas_987", label %"$have_gas_988" -"$out_of_gas_985": ; preds = %"$have_gas_981" +"$out_of_gas_987": ; preds = %"$have_gas_983" call void @_out_of_gas() - br label %"$have_gas_986" + br label %"$have_gas_988" -"$have_gas_986": ; preds = %"$out_of_gas_985", %"$have_gas_981" - %"$consume_987" = sub i64 %"$gasrem_983", 1 - store i64 %"$consume_987", i64* @_gasrem, align 8 - store %Int256 { i256 -1 }, %Int256* %"$arg2_50", align 8, !dbg !72 - %"$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" +"$have_gas_988": ; preds = %"$out_of_gas_987", %"$have_gas_983" + %"$consume_989" = sub i64 %"$gasrem_985", 1 + store i64 %"$consume_989", i64* @_gasrem, align 8 + store %Int256 { i256 -1 }, %Int256* %"$arg2_50", align 8, !dbg !198 + %"$gasrem_990" = load i64, i64* @_gasrem, align 8 + %"$gascmp_991" = icmp ugt i64 1, %"$gasrem_990" + br i1 %"$gascmp_991", label %"$out_of_gas_992", label %"$have_gas_993" -"$out_of_gas_990": ; preds = %"$have_gas_986" +"$out_of_gas_992": ; preds = %"$have_gas_988" call void @_out_of_gas() - br label %"$have_gas_991" + br label %"$have_gas_993" -"$have_gas_991": ; preds = %"$out_of_gas_990", %"$have_gas_986" - %"$consume_992" = sub i64 %"$gasrem_988", 1 - store i64 %"$consume_992", i64* @_gasrem, align 8 +"$have_gas_993": ; preds = %"$out_of_gas_992", %"$have_gas_988" + %"$consume_994" = sub i64 %"$gasrem_990", 1 + store i64 %"$consume_994", i64* @_gasrem, align 8 %"$test_54" = alloca %TName_Bool*, align 8 - %"$gasrem_993" = load i64, i64* @_gasrem, align 8 - %"$gascmp_994" = icmp ugt i64 1, %"$gasrem_993" - br i1 %"$gascmp_994", label %"$out_of_gas_995", label %"$have_gas_996" + call void @llvm.dbg.declare(metadata %TName_Bool** %"$test_54", metadata !199, metadata !DIExpression()), !dbg !200 + %"$gasrem_995" = load i64, i64* @_gasrem, align 8 + %"$gascmp_996" = icmp ugt i64 1, %"$gasrem_995" + br i1 %"$gascmp_996", label %"$out_of_gas_997", label %"$have_gas_998" -"$out_of_gas_995": ; preds = %"$have_gas_991" +"$out_of_gas_997": ; preds = %"$have_gas_993" call void @_out_of_gas() - br label %"$have_gas_996" + br label %"$have_gas_998" -"$have_gas_996": ; preds = %"$out_of_gas_995", %"$have_gas_991" - %"$consume_997" = sub i64 %"$gasrem_993", 1 - store i64 %"$consume_997", i64* @_gasrem, align 8 +"$have_gas_998": ; preds = %"$out_of_gas_997", %"$have_gas_993" + %"$consume_999" = sub i64 %"$gasrem_995", 1 + store i64 %"$consume_999", i64* @_gasrem, align 8 %"$res_51" = alloca %Int256, align 8 - %"$gasrem_999" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1000" = icmp ugt i64 80, %"$gasrem_999" - br i1 %"$gascmp_1000", label %"$out_of_gas_1001", label %"$have_gas_1002" - -"$out_of_gas_1001": ; preds = %"$have_gas_996" - call void @_out_of_gas() - br label %"$have_gas_1002" - -"$have_gas_1002": ; preds = %"$out_of_gas_1001", %"$have_gas_996" - %"$consume_1003" = sub i64 %"$gasrem_999", 80 - store i64 %"$consume_1003", i64* @_gasrem, align 8 - %"$execptr_load_1004" = load i8*, i8** @_execptr, align 8 - %"$mul_$arg1_49_1005" = alloca %Int256, align 8 - %"$$arg1_49_1006" = load %Int256, %Int256* %"$arg1_49", align 8 - store %Int256 %"$$arg1_49_1006", %Int256* %"$mul_$arg1_49_1005", align 8 - %"$mul_$arg2_50_1007" = alloca %Int256, align 8 - %"$$arg2_50_1008" = load %Int256, %Int256* %"$arg2_50", align 8 - store %Int256 %"$$arg2_50_1008", %Int256* %"$mul_$arg2_50_1007", align 8 - %"$mul_call_1009" = call %Int256* @_mul_Int256(i8* %"$execptr_load_1004", %Int256* %"$mul_$arg1_49_1005", %Int256* %"$mul_$arg2_50_1007"), !dbg !73 - %"$mul_1011" = load %Int256, %Int256* %"$mul_call_1009", align 8 - store %Int256 %"$mul_1011", %Int256* %"$res_51", align 8, !dbg !73 - %"$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_1002" - call void @_out_of_gas() - br label %"$have_gas_1015" - -"$have_gas_1015": ; preds = %"$out_of_gas_1014", %"$have_gas_1002" - %"$consume_1016" = sub i64 %"$gasrem_1012", 1 - store i64 %"$consume_1016", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %Int256* %"$res_51", metadata !201, metadata !DIExpression()), !dbg !202 + %"$gasrem_1001" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1002" = icmp ugt i64 80, %"$gasrem_1001" + br i1 %"$gascmp_1002", label %"$out_of_gas_1003", label %"$have_gas_1004" + +"$out_of_gas_1003": ; preds = %"$have_gas_998" + call void @_out_of_gas() + br label %"$have_gas_1004" + +"$have_gas_1004": ; preds = %"$out_of_gas_1003", %"$have_gas_998" + %"$consume_1005" = sub i64 %"$gasrem_1001", 80 + store i64 %"$consume_1005", i64* @_gasrem, align 8 + %"$execptr_load_1006" = load i8*, i8** @_execptr, align 8 + %"$mul_$arg1_49_1007" = alloca %Int256, align 8 + %"$$arg1_49_1008" = load %Int256, %Int256* %"$arg1_49", align 8 + store %Int256 %"$$arg1_49_1008", %Int256* %"$mul_$arg1_49_1007", align 8 + %"$mul_$arg2_50_1009" = alloca %Int256, align 8 + %"$$arg2_50_1010" = load %Int256, %Int256* %"$arg2_50", align 8 + store %Int256 %"$$arg2_50_1010", %Int256* %"$mul_$arg2_50_1009", align 8 + %"$mul_call_1011" = call %Int256* @_mul_Int256(i8* %"$execptr_load_1006", %Int256* %"$mul_$arg1_49_1007", %Int256* %"$mul_$arg2_50_1009"), !dbg !203 + %"$mul_1013" = load %Int256, %Int256* %"$mul_call_1011", align 8 + store %Int256 %"$mul_1013", %Int256* %"$res_51", align 8, !dbg !203 + %"$gasrem_1014" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1015" = icmp ugt i64 1, %"$gasrem_1014" + br i1 %"$gascmp_1015", label %"$out_of_gas_1016", label %"$have_gas_1017" + +"$out_of_gas_1016": ; preds = %"$have_gas_1004" + call void @_out_of_gas() + br label %"$have_gas_1017" + +"$have_gas_1017": ; preds = %"$out_of_gas_1016", %"$have_gas_1004" + %"$consume_1018" = sub i64 %"$gasrem_1014", 1 + store i64 %"$consume_1018", i64* @_gasrem, align 8 %"$res__52" = alloca %Int256, 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" + call void @llvm.dbg.declare(metadata %Int256* %"$res__52", metadata !204, metadata !DIExpression()), !dbg !205 + %"$gasrem_1019" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1020" = icmp ugt i64 1, %"$gasrem_1019" + br i1 %"$gascmp_1020", label %"$out_of_gas_1021", label %"$have_gas_1022" -"$out_of_gas_1019": ; preds = %"$have_gas_1015" +"$out_of_gas_1021": ; preds = %"$have_gas_1017" call void @_out_of_gas() - br label %"$have_gas_1020" + br label %"$have_gas_1022" -"$have_gas_1020": ; preds = %"$out_of_gas_1019", %"$have_gas_1015" - %"$consume_1021" = sub i64 %"$gasrem_1017", 1 - store i64 %"$consume_1021", i64* @_gasrem, align 8 - store %Int256 { i256 -9223372036854775806 }, %Int256* %"$res__52", align 8, !dbg !74 - %"$gasrem_1022" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1023" = icmp ugt i64 1, %"$gasrem_1022" - br i1 %"$gascmp_1023", label %"$out_of_gas_1024", label %"$have_gas_1025" +"$have_gas_1022": ; preds = %"$out_of_gas_1021", %"$have_gas_1017" + %"$consume_1023" = sub i64 %"$gasrem_1019", 1 + store i64 %"$consume_1023", i64* @_gasrem, align 8 + store %Int256 { i256 -9223372036854775806 }, %Int256* %"$res__52", align 8, !dbg !206 + %"$gasrem_1024" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1025" = icmp ugt i64 1, %"$gasrem_1024" + br i1 %"$gascmp_1025", label %"$out_of_gas_1026", label %"$have_gas_1027" -"$out_of_gas_1024": ; preds = %"$have_gas_1020" +"$out_of_gas_1026": ; preds = %"$have_gas_1022" call void @_out_of_gas() - br label %"$have_gas_1025" + br label %"$have_gas_1027" -"$have_gas_1025": ; preds = %"$out_of_gas_1024", %"$have_gas_1020" - %"$consume_1026" = sub i64 %"$gasrem_1022", 1 - store i64 %"$consume_1026", i64* @_gasrem, align 8 +"$have_gas_1027": ; preds = %"$out_of_gas_1026", %"$have_gas_1022" + %"$consume_1028" = sub i64 %"$gasrem_1024", 1 + store i64 %"$consume_1028", i64* @_gasrem, align 8 %"$test__53" = alloca %TName_Bool*, align 8 - %"$gasrem_1028" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1029" = icmp ugt i64 16, %"$gasrem_1028" - br i1 %"$gascmp_1029", label %"$out_of_gas_1030", label %"$have_gas_1031" - -"$out_of_gas_1030": ; preds = %"$have_gas_1025" - call void @_out_of_gas() - br label %"$have_gas_1031" - -"$have_gas_1031": ; preds = %"$out_of_gas_1030", %"$have_gas_1025" - %"$consume_1032" = sub i64 %"$gasrem_1028", 16 - store i64 %"$consume_1032", i64* @_gasrem, align 8 - %"$execptr_load_1033" = load i8*, i8** @_execptr, align 8 - %"$eq_$res_51_1034" = alloca %Int256, align 8 - %"$$res_51_1035" = load %Int256, %Int256* %"$res_51", align 8 - store %Int256 %"$$res_51_1035", %Int256* %"$eq_$res_51_1034", align 8 - %"$eq_$res__52_1036" = alloca %Int256, align 8 - %"$$res__52_1037" = load %Int256, %Int256* %"$res__52", align 8 - store %Int256 %"$$res__52_1037", %Int256* %"$eq_$res__52_1036", align 8 - %"$eq_call_1038" = call %TName_Bool* @_eq_Int256(i8* %"$execptr_load_1033", %Int256* %"$eq_$res_51_1034", %Int256* %"$eq_$res__52_1036"), !dbg !75 - store %TName_Bool* %"$eq_call_1038", %TName_Bool** %"$test__53", align 8, !dbg !75 - %"$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_1031" - call void @_out_of_gas() - br label %"$have_gas_1043" - -"$have_gas_1043": ; preds = %"$out_of_gas_1042", %"$have_gas_1031" - %"$consume_1044" = sub i64 %"$gasrem_1040", 1 - store i64 %"$consume_1044", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$test__53", metadata !207, metadata !DIExpression()), !dbg !208 + %"$gasrem_1030" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1031" = icmp ugt i64 16, %"$gasrem_1030" + br i1 %"$gascmp_1031", label %"$out_of_gas_1032", label %"$have_gas_1033" + +"$out_of_gas_1032": ; preds = %"$have_gas_1027" + call void @_out_of_gas() + br label %"$have_gas_1033" + +"$have_gas_1033": ; preds = %"$out_of_gas_1032", %"$have_gas_1027" + %"$consume_1034" = sub i64 %"$gasrem_1030", 16 + store i64 %"$consume_1034", i64* @_gasrem, align 8 + %"$execptr_load_1035" = load i8*, i8** @_execptr, align 8 + %"$eq_$res_51_1036" = alloca %Int256, align 8 + %"$$res_51_1037" = load %Int256, %Int256* %"$res_51", align 8 + store %Int256 %"$$res_51_1037", %Int256* %"$eq_$res_51_1036", align 8 + %"$eq_$res__52_1038" = alloca %Int256, align 8 + %"$$res__52_1039" = load %Int256, %Int256* %"$res__52", align 8 + store %Int256 %"$$res__52_1039", %Int256* %"$eq_$res__52_1038", align 8 + %"$eq_call_1040" = call %TName_Bool* @_eq_Int256(i8* %"$execptr_load_1035", %Int256* %"$eq_$res_51_1036", %Int256* %"$eq_$res__52_1038"), !dbg !209 + store %TName_Bool* %"$eq_call_1040", %TName_Bool** %"$test__53", align 8, !dbg !209 + %"$gasrem_1042" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1043" = icmp ugt i64 1, %"$gasrem_1042" + br i1 %"$gascmp_1043", label %"$out_of_gas_1044", label %"$have_gas_1045" + +"$out_of_gas_1044": ; preds = %"$have_gas_1033" + call void @_out_of_gas() + br label %"$have_gas_1045" + +"$have_gas_1045": ; preds = %"$out_of_gas_1044", %"$have_gas_1033" + %"$consume_1046" = sub i64 %"$gasrem_1042", 1 + store i64 %"$consume_1046", i64* @_gasrem, align 8 %"$BoolUtils.andb_143" = alloca { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, align 8 - %"$BoolUtils.andb_1045" = 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_1046" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_1045", 0 - %"$BoolUtils.andb_envptr_1047" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_1045", 1 - %"$$test_48_1048" = load %TName_Bool*, %TName_Bool** %"$test_48", align 8 - %"$BoolUtils.andb_call_1049" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_1046"(i8* %"$BoolUtils.andb_envptr_1047", %TName_Bool* %"$$test_48_1048"), !dbg !76 - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_1049", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_143", align 8, !dbg !76 + %"$BoolUtils.andb_1047" = 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_1048" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_1047", 0 + %"$BoolUtils.andb_envptr_1049" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_1047", 1 + %"$$test_48_1050" = load %TName_Bool*, %TName_Bool** %"$test_48", align 8 + %"$BoolUtils.andb_call_1051" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_1048"(i8* %"$BoolUtils.andb_envptr_1049", %TName_Bool* %"$$test_48_1050"), !dbg !210 + store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_1051", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_143", align 8, !dbg !210 %"$BoolUtils.andb_144" = alloca %TName_Bool*, align 8 - %"$$BoolUtils.andb_143_1050" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_143", align 8 - %"$$BoolUtils.andb_143_fptr_1051" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_143_1050", 0 - %"$$BoolUtils.andb_143_envptr_1052" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_143_1050", 1 - %"$$test__53_1053" = load %TName_Bool*, %TName_Bool** %"$test__53", align 8 - %"$$BoolUtils.andb_143_call_1054" = call %TName_Bool* %"$$BoolUtils.andb_143_fptr_1051"(i8* %"$$BoolUtils.andb_143_envptr_1052", %TName_Bool* %"$$test__53_1053"), !dbg !76 - store %TName_Bool* %"$$BoolUtils.andb_143_call_1054", %TName_Bool** %"$BoolUtils.andb_144", align 8, !dbg !76 - %"$$BoolUtils.andb_144_1055" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_144", align 8 - store %TName_Bool* %"$$BoolUtils.andb_144_1055", %TName_Bool** %"$test_54", align 8, !dbg !76 - %"$gasrem_1056" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1057" = icmp ugt i64 1, %"$gasrem_1056" - br i1 %"$gascmp_1057", label %"$out_of_gas_1058", label %"$have_gas_1059" - -"$out_of_gas_1058": ; preds = %"$have_gas_1043" - call void @_out_of_gas() - br label %"$have_gas_1059" - -"$have_gas_1059": ; preds = %"$out_of_gas_1058", %"$have_gas_1043" - %"$consume_1060" = sub i64 %"$gasrem_1056", 1 - store i64 %"$consume_1060", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$BoolUtils.andb_144", metadata !211, metadata !DIExpression()), !dbg !210 + %"$$BoolUtils.andb_143_1052" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_143", align 8 + %"$$BoolUtils.andb_143_fptr_1053" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_143_1052", 0 + %"$$BoolUtils.andb_143_envptr_1054" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_143_1052", 1 + %"$$test__53_1055" = load %TName_Bool*, %TName_Bool** %"$test__53", align 8 + %"$$BoolUtils.andb_143_call_1056" = call %TName_Bool* %"$$BoolUtils.andb_143_fptr_1053"(i8* %"$$BoolUtils.andb_143_envptr_1054", %TName_Bool* %"$$test__53_1055"), !dbg !210 + store %TName_Bool* %"$$BoolUtils.andb_143_call_1056", %TName_Bool** %"$BoolUtils.andb_144", align 8, !dbg !210 + %"$$BoolUtils.andb_144_1057" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_144", align 8 + store %TName_Bool* %"$$BoolUtils.andb_144_1057", %TName_Bool** %"$test_54", align 8, !dbg !210 + %"$gasrem_1058" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1059" = icmp ugt i64 1, %"$gasrem_1058" + br i1 %"$gascmp_1059", label %"$out_of_gas_1060", label %"$have_gas_1061" + +"$out_of_gas_1060": ; preds = %"$have_gas_1045" + call void @_out_of_gas() + br label %"$have_gas_1061" + +"$have_gas_1061": ; preds = %"$out_of_gas_1060", %"$have_gas_1045" + %"$consume_1062" = sub i64 %"$gasrem_1058", 1 + store i64 %"$consume_1062", i64* @_gasrem, align 8 %"$arg1_55" = alloca %Int256, align 8 - %"$gasrem_1061" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1062" = icmp ugt i64 1, %"$gasrem_1061" - br i1 %"$gascmp_1062", label %"$out_of_gas_1063", label %"$have_gas_1064" + call void @llvm.dbg.declare(metadata %Int256* %"$arg1_55", metadata !212, metadata !DIExpression()), !dbg !213 + %"$gasrem_1063" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1064" = icmp ugt i64 1, %"$gasrem_1063" + br i1 %"$gascmp_1064", label %"$out_of_gas_1065", label %"$have_gas_1066" -"$out_of_gas_1063": ; preds = %"$have_gas_1059" +"$out_of_gas_1065": ; preds = %"$have_gas_1061" call void @_out_of_gas() - br label %"$have_gas_1064" + br label %"$have_gas_1066" -"$have_gas_1064": ; preds = %"$out_of_gas_1063", %"$have_gas_1059" - %"$consume_1065" = sub i64 %"$gasrem_1061", 1 - store i64 %"$consume_1065", i64* @_gasrem, align 8 - store %Int256 { i256 9223372036854775806 }, %Int256* %"$arg1_55", align 8, !dbg !77 - %"$gasrem_1066" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1067" = icmp ugt i64 1, %"$gasrem_1066" - br i1 %"$gascmp_1067", label %"$out_of_gas_1068", label %"$have_gas_1069" +"$have_gas_1066": ; preds = %"$out_of_gas_1065", %"$have_gas_1061" + %"$consume_1067" = sub i64 %"$gasrem_1063", 1 + store i64 %"$consume_1067", i64* @_gasrem, align 8 + store %Int256 { i256 9223372036854775806 }, %Int256* %"$arg1_55", align 8, !dbg !214 + %"$gasrem_1068" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1069" = icmp ugt i64 1, %"$gasrem_1068" + br i1 %"$gascmp_1069", label %"$out_of_gas_1070", label %"$have_gas_1071" -"$out_of_gas_1068": ; preds = %"$have_gas_1064" +"$out_of_gas_1070": ; preds = %"$have_gas_1066" call void @_out_of_gas() - br label %"$have_gas_1069" + br label %"$have_gas_1071" -"$have_gas_1069": ; preds = %"$out_of_gas_1068", %"$have_gas_1064" - %"$consume_1070" = sub i64 %"$gasrem_1066", 1 - store i64 %"$consume_1070", i64* @_gasrem, align 8 +"$have_gas_1071": ; preds = %"$out_of_gas_1070", %"$have_gas_1066" + %"$consume_1072" = sub i64 %"$gasrem_1068", 1 + store i64 %"$consume_1072", i64* @_gasrem, align 8 %"$arg2_56" = alloca %Int256, align 8 - %"$gasrem_1071" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1072" = icmp ugt i64 1, %"$gasrem_1071" - br i1 %"$gascmp_1072", label %"$out_of_gas_1073", label %"$have_gas_1074" + call void @llvm.dbg.declare(metadata %Int256* %"$arg2_56", metadata !215, metadata !DIExpression()), !dbg !216 + %"$gasrem_1073" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1074" = icmp ugt i64 1, %"$gasrem_1073" + br i1 %"$gascmp_1074", label %"$out_of_gas_1075", label %"$have_gas_1076" -"$out_of_gas_1073": ; preds = %"$have_gas_1069" +"$out_of_gas_1075": ; preds = %"$have_gas_1071" call void @_out_of_gas() - br label %"$have_gas_1074" + br label %"$have_gas_1076" -"$have_gas_1074": ; preds = %"$out_of_gas_1073", %"$have_gas_1069" - %"$consume_1075" = sub i64 %"$gasrem_1071", 1 - store i64 %"$consume_1075", i64* @_gasrem, align 8 - store %Int256 zeroinitializer, %Int256* %"$arg2_56", align 8, !dbg !78 - %"$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" +"$have_gas_1076": ; preds = %"$out_of_gas_1075", %"$have_gas_1071" + %"$consume_1077" = sub i64 %"$gasrem_1073", 1 + store i64 %"$consume_1077", i64* @_gasrem, align 8 + store %Int256 zeroinitializer, %Int256* %"$arg2_56", align 8, !dbg !217 + %"$gasrem_1078" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1079" = icmp ugt i64 1, %"$gasrem_1078" + br i1 %"$gascmp_1079", label %"$out_of_gas_1080", label %"$have_gas_1081" -"$out_of_gas_1078": ; preds = %"$have_gas_1074" +"$out_of_gas_1080": ; preds = %"$have_gas_1076" call void @_out_of_gas() - br label %"$have_gas_1079" + br label %"$have_gas_1081" -"$have_gas_1079": ; preds = %"$out_of_gas_1078", %"$have_gas_1074" - %"$consume_1080" = sub i64 %"$gasrem_1076", 1 - store i64 %"$consume_1080", i64* @_gasrem, align 8 +"$have_gas_1081": ; preds = %"$out_of_gas_1080", %"$have_gas_1076" + %"$consume_1082" = sub i64 %"$gasrem_1078", 1 + store i64 %"$consume_1082", i64* @_gasrem, align 8 %"$test_60" = alloca %TName_Bool*, align 8 - %"$gasrem_1081" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1082" = icmp ugt i64 1, %"$gasrem_1081" - br i1 %"$gascmp_1082", label %"$out_of_gas_1083", label %"$have_gas_1084" + call void @llvm.dbg.declare(metadata %TName_Bool** %"$test_60", metadata !218, metadata !DIExpression()), !dbg !219 + %"$gasrem_1083" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1084" = icmp ugt i64 1, %"$gasrem_1083" + br i1 %"$gascmp_1084", label %"$out_of_gas_1085", label %"$have_gas_1086" -"$out_of_gas_1083": ; preds = %"$have_gas_1079" +"$out_of_gas_1085": ; preds = %"$have_gas_1081" call void @_out_of_gas() - br label %"$have_gas_1084" + br label %"$have_gas_1086" -"$have_gas_1084": ; preds = %"$out_of_gas_1083", %"$have_gas_1079" - %"$consume_1085" = sub i64 %"$gasrem_1081", 1 - store i64 %"$consume_1085", i64* @_gasrem, align 8 +"$have_gas_1086": ; preds = %"$out_of_gas_1085", %"$have_gas_1081" + %"$consume_1087" = sub i64 %"$gasrem_1083", 1 + store i64 %"$consume_1087", i64* @_gasrem, align 8 %"$res_57" = alloca %Int256, align 8 - %"$gasrem_1087" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1088" = icmp ugt i64 80, %"$gasrem_1087" - br i1 %"$gascmp_1088", label %"$out_of_gas_1089", label %"$have_gas_1090" - -"$out_of_gas_1089": ; preds = %"$have_gas_1084" - call void @_out_of_gas() - br label %"$have_gas_1090" - -"$have_gas_1090": ; preds = %"$out_of_gas_1089", %"$have_gas_1084" - %"$consume_1091" = sub i64 %"$gasrem_1087", 80 - store i64 %"$consume_1091", i64* @_gasrem, align 8 - %"$execptr_load_1092" = load i8*, i8** @_execptr, align 8 - %"$mul_$arg1_55_1093" = alloca %Int256, align 8 - %"$$arg1_55_1094" = load %Int256, %Int256* %"$arg1_55", align 8 - store %Int256 %"$$arg1_55_1094", %Int256* %"$mul_$arg1_55_1093", align 8 - %"$mul_$arg2_56_1095" = alloca %Int256, align 8 - %"$$arg2_56_1096" = load %Int256, %Int256* %"$arg2_56", align 8 - store %Int256 %"$$arg2_56_1096", %Int256* %"$mul_$arg2_56_1095", align 8 - %"$mul_call_1097" = call %Int256* @_mul_Int256(i8* %"$execptr_load_1092", %Int256* %"$mul_$arg1_55_1093", %Int256* %"$mul_$arg2_56_1095"), !dbg !79 - %"$mul_1099" = load %Int256, %Int256* %"$mul_call_1097", align 8 - store %Int256 %"$mul_1099", %Int256* %"$res_57", align 8, !dbg !79 - %"$gasrem_1100" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1101" = icmp ugt i64 1, %"$gasrem_1100" - br i1 %"$gascmp_1101", label %"$out_of_gas_1102", label %"$have_gas_1103" - -"$out_of_gas_1102": ; preds = %"$have_gas_1090" - call void @_out_of_gas() - br label %"$have_gas_1103" - -"$have_gas_1103": ; preds = %"$out_of_gas_1102", %"$have_gas_1090" - %"$consume_1104" = sub i64 %"$gasrem_1100", 1 - store i64 %"$consume_1104", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %Int256* %"$res_57", metadata !220, metadata !DIExpression()), !dbg !221 + %"$gasrem_1089" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1090" = icmp ugt i64 80, %"$gasrem_1089" + br i1 %"$gascmp_1090", label %"$out_of_gas_1091", label %"$have_gas_1092" + +"$out_of_gas_1091": ; preds = %"$have_gas_1086" + call void @_out_of_gas() + br label %"$have_gas_1092" + +"$have_gas_1092": ; preds = %"$out_of_gas_1091", %"$have_gas_1086" + %"$consume_1093" = sub i64 %"$gasrem_1089", 80 + store i64 %"$consume_1093", i64* @_gasrem, align 8 + %"$execptr_load_1094" = load i8*, i8** @_execptr, align 8 + %"$mul_$arg1_55_1095" = alloca %Int256, align 8 + %"$$arg1_55_1096" = load %Int256, %Int256* %"$arg1_55", align 8 + store %Int256 %"$$arg1_55_1096", %Int256* %"$mul_$arg1_55_1095", align 8 + %"$mul_$arg2_56_1097" = alloca %Int256, align 8 + %"$$arg2_56_1098" = load %Int256, %Int256* %"$arg2_56", align 8 + store %Int256 %"$$arg2_56_1098", %Int256* %"$mul_$arg2_56_1097", align 8 + %"$mul_call_1099" = call %Int256* @_mul_Int256(i8* %"$execptr_load_1094", %Int256* %"$mul_$arg1_55_1095", %Int256* %"$mul_$arg2_56_1097"), !dbg !222 + %"$mul_1101" = load %Int256, %Int256* %"$mul_call_1099", align 8 + store %Int256 %"$mul_1101", %Int256* %"$res_57", align 8, !dbg !222 + %"$gasrem_1102" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1103" = icmp ugt i64 1, %"$gasrem_1102" + br i1 %"$gascmp_1103", label %"$out_of_gas_1104", label %"$have_gas_1105" + +"$out_of_gas_1104": ; preds = %"$have_gas_1092" + call void @_out_of_gas() + br label %"$have_gas_1105" + +"$have_gas_1105": ; preds = %"$out_of_gas_1104", %"$have_gas_1092" + %"$consume_1106" = sub i64 %"$gasrem_1102", 1 + store i64 %"$consume_1106", i64* @_gasrem, align 8 %"$res__58" = alloca %Int256, align 8 - %"$gasrem_1105" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1106" = icmp ugt i64 1, %"$gasrem_1105" - br i1 %"$gascmp_1106", label %"$out_of_gas_1107", label %"$have_gas_1108" + call void @llvm.dbg.declare(metadata %Int256* %"$res__58", metadata !223, metadata !DIExpression()), !dbg !224 + %"$gasrem_1107" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1108" = icmp ugt i64 1, %"$gasrem_1107" + br i1 %"$gascmp_1108", label %"$out_of_gas_1109", label %"$have_gas_1110" -"$out_of_gas_1107": ; preds = %"$have_gas_1103" +"$out_of_gas_1109": ; preds = %"$have_gas_1105" call void @_out_of_gas() - br label %"$have_gas_1108" + br label %"$have_gas_1110" -"$have_gas_1108": ; preds = %"$out_of_gas_1107", %"$have_gas_1103" - %"$consume_1109" = sub i64 %"$gasrem_1105", 1 - store i64 %"$consume_1109", i64* @_gasrem, align 8 - store %Int256 zeroinitializer, %Int256* %"$res__58", align 8, !dbg !80 - %"$gasrem_1110" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1111" = icmp ugt i64 1, %"$gasrem_1110" - br i1 %"$gascmp_1111", label %"$out_of_gas_1112", label %"$have_gas_1113" +"$have_gas_1110": ; preds = %"$out_of_gas_1109", %"$have_gas_1105" + %"$consume_1111" = sub i64 %"$gasrem_1107", 1 + store i64 %"$consume_1111", i64* @_gasrem, align 8 + store %Int256 zeroinitializer, %Int256* %"$res__58", align 8, !dbg !225 + %"$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_1112": ; preds = %"$have_gas_1108" +"$out_of_gas_1114": ; preds = %"$have_gas_1110" call void @_out_of_gas() - br label %"$have_gas_1113" + br label %"$have_gas_1115" -"$have_gas_1113": ; preds = %"$out_of_gas_1112", %"$have_gas_1108" - %"$consume_1114" = sub i64 %"$gasrem_1110", 1 - store i64 %"$consume_1114", i64* @_gasrem, align 8 +"$have_gas_1115": ; preds = %"$out_of_gas_1114", %"$have_gas_1110" + %"$consume_1116" = sub i64 %"$gasrem_1112", 1 + store i64 %"$consume_1116", i64* @_gasrem, align 8 %"$test__59" = alloca %TName_Bool*, align 8 - %"$gasrem_1116" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1117" = icmp ugt i64 16, %"$gasrem_1116" - br i1 %"$gascmp_1117", label %"$out_of_gas_1118", label %"$have_gas_1119" - -"$out_of_gas_1118": ; preds = %"$have_gas_1113" - call void @_out_of_gas() - br label %"$have_gas_1119" - -"$have_gas_1119": ; preds = %"$out_of_gas_1118", %"$have_gas_1113" - %"$consume_1120" = sub i64 %"$gasrem_1116", 16 - store i64 %"$consume_1120", i64* @_gasrem, align 8 - %"$execptr_load_1121" = load i8*, i8** @_execptr, align 8 - %"$eq_$res_57_1122" = alloca %Int256, align 8 - %"$$res_57_1123" = load %Int256, %Int256* %"$res_57", align 8 - store %Int256 %"$$res_57_1123", %Int256* %"$eq_$res_57_1122", align 8 - %"$eq_$res__58_1124" = alloca %Int256, align 8 - %"$$res__58_1125" = load %Int256, %Int256* %"$res__58", align 8 - store %Int256 %"$$res__58_1125", %Int256* %"$eq_$res__58_1124", align 8 - %"$eq_call_1126" = call %TName_Bool* @_eq_Int256(i8* %"$execptr_load_1121", %Int256* %"$eq_$res_57_1122", %Int256* %"$eq_$res__58_1124"), !dbg !81 - store %TName_Bool* %"$eq_call_1126", %TName_Bool** %"$test__59", align 8, !dbg !81 - %"$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_1119" - call void @_out_of_gas() - br label %"$have_gas_1131" - -"$have_gas_1131": ; preds = %"$out_of_gas_1130", %"$have_gas_1119" - %"$consume_1132" = sub i64 %"$gasrem_1128", 1 - store i64 %"$consume_1132", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$test__59", metadata !226, metadata !DIExpression()), !dbg !227 + %"$gasrem_1118" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1119" = icmp ugt i64 16, %"$gasrem_1118" + br i1 %"$gascmp_1119", label %"$out_of_gas_1120", label %"$have_gas_1121" + +"$out_of_gas_1120": ; preds = %"$have_gas_1115" + call void @_out_of_gas() + br label %"$have_gas_1121" + +"$have_gas_1121": ; preds = %"$out_of_gas_1120", %"$have_gas_1115" + %"$consume_1122" = sub i64 %"$gasrem_1118", 16 + store i64 %"$consume_1122", i64* @_gasrem, align 8 + %"$execptr_load_1123" = load i8*, i8** @_execptr, align 8 + %"$eq_$res_57_1124" = alloca %Int256, align 8 + %"$$res_57_1125" = load %Int256, %Int256* %"$res_57", align 8 + store %Int256 %"$$res_57_1125", %Int256* %"$eq_$res_57_1124", align 8 + %"$eq_$res__58_1126" = alloca %Int256, align 8 + %"$$res__58_1127" = load %Int256, %Int256* %"$res__58", align 8 + store %Int256 %"$$res__58_1127", %Int256* %"$eq_$res__58_1126", align 8 + %"$eq_call_1128" = call %TName_Bool* @_eq_Int256(i8* %"$execptr_load_1123", %Int256* %"$eq_$res_57_1124", %Int256* %"$eq_$res__58_1126"), !dbg !228 + store %TName_Bool* %"$eq_call_1128", %TName_Bool** %"$test__59", align 8, !dbg !228 + %"$gasrem_1130" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1131" = icmp ugt i64 1, %"$gasrem_1130" + br i1 %"$gascmp_1131", label %"$out_of_gas_1132", label %"$have_gas_1133" + +"$out_of_gas_1132": ; preds = %"$have_gas_1121" + call void @_out_of_gas() + br label %"$have_gas_1133" + +"$have_gas_1133": ; preds = %"$out_of_gas_1132", %"$have_gas_1121" + %"$consume_1134" = sub i64 %"$gasrem_1130", 1 + store i64 %"$consume_1134", i64* @_gasrem, align 8 %"$BoolUtils.andb_145" = alloca { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, align 8 - %"$BoolUtils.andb_1133" = 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_1134" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_1133", 0 - %"$BoolUtils.andb_envptr_1135" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_1133", 1 - %"$$test_54_1136" = load %TName_Bool*, %TName_Bool** %"$test_54", align 8 - %"$BoolUtils.andb_call_1137" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_1134"(i8* %"$BoolUtils.andb_envptr_1135", %TName_Bool* %"$$test_54_1136"), !dbg !82 - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_1137", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_145", align 8, !dbg !82 + %"$BoolUtils.andb_1135" = 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_1136" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_1135", 0 + %"$BoolUtils.andb_envptr_1137" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_1135", 1 + %"$$test_54_1138" = load %TName_Bool*, %TName_Bool** %"$test_54", align 8 + %"$BoolUtils.andb_call_1139" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_1136"(i8* %"$BoolUtils.andb_envptr_1137", %TName_Bool* %"$$test_54_1138"), !dbg !229 + store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_1139", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_145", align 8, !dbg !229 %"$BoolUtils.andb_146" = alloca %TName_Bool*, align 8 - %"$$BoolUtils.andb_145_1138" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_145", align 8 - %"$$BoolUtils.andb_145_fptr_1139" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_145_1138", 0 - %"$$BoolUtils.andb_145_envptr_1140" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_145_1138", 1 - %"$$test__59_1141" = load %TName_Bool*, %TName_Bool** %"$test__59", align 8 - %"$$BoolUtils.andb_145_call_1142" = call %TName_Bool* %"$$BoolUtils.andb_145_fptr_1139"(i8* %"$$BoolUtils.andb_145_envptr_1140", %TName_Bool* %"$$test__59_1141"), !dbg !82 - store %TName_Bool* %"$$BoolUtils.andb_145_call_1142", %TName_Bool** %"$BoolUtils.andb_146", align 8, !dbg !82 - %"$$BoolUtils.andb_146_1143" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_146", align 8 - store %TName_Bool* %"$$BoolUtils.andb_146_1143", %TName_Bool** %"$test_60", align 8, !dbg !82 - %"$gasrem_1144" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1145" = icmp ugt i64 1, %"$gasrem_1144" - br i1 %"$gascmp_1145", label %"$out_of_gas_1146", label %"$have_gas_1147" - -"$out_of_gas_1146": ; preds = %"$have_gas_1131" - call void @_out_of_gas() - br label %"$have_gas_1147" - -"$have_gas_1147": ; preds = %"$out_of_gas_1146", %"$have_gas_1131" - %"$consume_1148" = sub i64 %"$gasrem_1144", 1 - store i64 %"$consume_1148", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$BoolUtils.andb_146", metadata !230, metadata !DIExpression()), !dbg !229 + %"$$BoolUtils.andb_145_1140" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_145", align 8 + %"$$BoolUtils.andb_145_fptr_1141" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_145_1140", 0 + %"$$BoolUtils.andb_145_envptr_1142" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_145_1140", 1 + %"$$test__59_1143" = load %TName_Bool*, %TName_Bool** %"$test__59", align 8 + %"$$BoolUtils.andb_145_call_1144" = call %TName_Bool* %"$$BoolUtils.andb_145_fptr_1141"(i8* %"$$BoolUtils.andb_145_envptr_1142", %TName_Bool* %"$$test__59_1143"), !dbg !229 + store %TName_Bool* %"$$BoolUtils.andb_145_call_1144", %TName_Bool** %"$BoolUtils.andb_146", align 8, !dbg !229 + %"$$BoolUtils.andb_146_1145" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_146", align 8 + store %TName_Bool* %"$$BoolUtils.andb_146_1145", %TName_Bool** %"$test_60", align 8, !dbg !229 + %"$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 = %"$have_gas_1133" + call void @_out_of_gas() + br label %"$have_gas_1149" + +"$have_gas_1149": ; preds = %"$out_of_gas_1148", %"$have_gas_1133" + %"$consume_1150" = sub i64 %"$gasrem_1146", 1 + store i64 %"$consume_1150", i64* @_gasrem, align 8 %"$arg1_61" = alloca %Int256, align 8 - %"$gasrem_1149" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1150" = icmp ugt i64 1, %"$gasrem_1149" - br i1 %"$gascmp_1150", label %"$out_of_gas_1151", label %"$have_gas_1152" + call void @llvm.dbg.declare(metadata %Int256* %"$arg1_61", metadata !231, metadata !DIExpression()), !dbg !232 + %"$gasrem_1151" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1152" = icmp ugt i64 1, %"$gasrem_1151" + br i1 %"$gascmp_1152", label %"$out_of_gas_1153", label %"$have_gas_1154" -"$out_of_gas_1151": ; preds = %"$have_gas_1147" +"$out_of_gas_1153": ; preds = %"$have_gas_1149" call void @_out_of_gas() - br label %"$have_gas_1152" + br label %"$have_gas_1154" -"$have_gas_1152": ; preds = %"$out_of_gas_1151", %"$have_gas_1147" - %"$consume_1153" = sub i64 %"$gasrem_1149", 1 - store i64 %"$consume_1153", i64* @_gasrem, align 8 - store %Int256 { i256 170141183460469231731687303715884105727 }, %Int256* %"$arg1_61", align 8, !dbg !83 - %"$gasrem_1154" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1155" = icmp ugt i64 1, %"$gasrem_1154" - br i1 %"$gascmp_1155", label %"$out_of_gas_1156", label %"$have_gas_1157" +"$have_gas_1154": ; preds = %"$out_of_gas_1153", %"$have_gas_1149" + %"$consume_1155" = sub i64 %"$gasrem_1151", 1 + store i64 %"$consume_1155", i64* @_gasrem, align 8 + store %Int256 { i256 170141183460469231731687303715884105727 }, %Int256* %"$arg1_61", align 8, !dbg !233 + %"$gasrem_1156" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1157" = icmp ugt i64 1, %"$gasrem_1156" + br i1 %"$gascmp_1157", label %"$out_of_gas_1158", label %"$have_gas_1159" -"$out_of_gas_1156": ; preds = %"$have_gas_1152" +"$out_of_gas_1158": ; preds = %"$have_gas_1154" call void @_out_of_gas() - br label %"$have_gas_1157" + br label %"$have_gas_1159" -"$have_gas_1157": ; preds = %"$out_of_gas_1156", %"$have_gas_1152" - %"$consume_1158" = sub i64 %"$gasrem_1154", 1 - store i64 %"$consume_1158", i64* @_gasrem, align 8 +"$have_gas_1159": ; preds = %"$out_of_gas_1158", %"$have_gas_1154" + %"$consume_1160" = sub i64 %"$gasrem_1156", 1 + store i64 %"$consume_1160", i64* @_gasrem, align 8 %"$arg2_62" = alloca %Int256, align 8 - %"$gasrem_1159" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1160" = icmp ugt i64 1, %"$gasrem_1159" - br i1 %"$gascmp_1160", label %"$out_of_gas_1161", label %"$have_gas_1162" + call void @llvm.dbg.declare(metadata %Int256* %"$arg2_62", metadata !234, metadata !DIExpression()), !dbg !235 + %"$gasrem_1161" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1162" = icmp ugt i64 1, %"$gasrem_1161" + br i1 %"$gascmp_1162", label %"$out_of_gas_1163", label %"$have_gas_1164" -"$out_of_gas_1161": ; preds = %"$have_gas_1157" +"$out_of_gas_1163": ; preds = %"$have_gas_1159" call void @_out_of_gas() - br label %"$have_gas_1162" + br label %"$have_gas_1164" -"$have_gas_1162": ; preds = %"$out_of_gas_1161", %"$have_gas_1157" - %"$consume_1163" = sub i64 %"$gasrem_1159", 1 - store i64 %"$consume_1163", i64* @_gasrem, align 8 - store %Int256 { i256 -170141183460469231731687303715884105728 }, %Int256* %"$arg2_62", align 8, !dbg !84 - %"$gasrem_1164" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1165" = icmp ugt i64 1, %"$gasrem_1164" - br i1 %"$gascmp_1165", label %"$out_of_gas_1166", label %"$have_gas_1167" +"$have_gas_1164": ; preds = %"$out_of_gas_1163", %"$have_gas_1159" + %"$consume_1165" = sub i64 %"$gasrem_1161", 1 + store i64 %"$consume_1165", i64* @_gasrem, align 8 + store %Int256 { i256 -170141183460469231731687303715884105728 }, %Int256* %"$arg2_62", align 8, !dbg !236 + %"$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_1166": ; preds = %"$have_gas_1162" +"$out_of_gas_1168": ; preds = %"$have_gas_1164" call void @_out_of_gas() - br label %"$have_gas_1167" + br label %"$have_gas_1169" -"$have_gas_1167": ; preds = %"$out_of_gas_1166", %"$have_gas_1162" - %"$consume_1168" = sub i64 %"$gasrem_1164", 1 - store i64 %"$consume_1168", i64* @_gasrem, align 8 +"$have_gas_1169": ; preds = %"$out_of_gas_1168", %"$have_gas_1164" + %"$consume_1170" = sub i64 %"$gasrem_1166", 1 + store i64 %"$consume_1170", i64* @_gasrem, align 8 %"$test_66" = alloca %TName_Bool*, align 8 - %"$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" + call void @llvm.dbg.declare(metadata %TName_Bool** %"$test_66", metadata !237, metadata !DIExpression()), !dbg !238 + %"$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_1171": ; preds = %"$have_gas_1167" +"$out_of_gas_1173": ; preds = %"$have_gas_1169" call void @_out_of_gas() - br label %"$have_gas_1172" + br label %"$have_gas_1174" -"$have_gas_1172": ; preds = %"$out_of_gas_1171", %"$have_gas_1167" - %"$consume_1173" = sub i64 %"$gasrem_1169", 1 - store i64 %"$consume_1173", i64* @_gasrem, align 8 +"$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 %"$res_63" = alloca %Int256, align 8 - %"$gasrem_1175" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1176" = icmp ugt i64 80, %"$gasrem_1175" - br i1 %"$gascmp_1176", label %"$out_of_gas_1177", label %"$have_gas_1178" - -"$out_of_gas_1177": ; preds = %"$have_gas_1172" - call void @_out_of_gas() - br label %"$have_gas_1178" - -"$have_gas_1178": ; preds = %"$out_of_gas_1177", %"$have_gas_1172" - %"$consume_1179" = sub i64 %"$gasrem_1175", 80 - store i64 %"$consume_1179", i64* @_gasrem, align 8 - %"$execptr_load_1180" = load i8*, i8** @_execptr, align 8 - %"$mul_$arg1_61_1181" = alloca %Int256, align 8 - %"$$arg1_61_1182" = load %Int256, %Int256* %"$arg1_61", align 8 - store %Int256 %"$$arg1_61_1182", %Int256* %"$mul_$arg1_61_1181", align 8 - %"$mul_$arg2_62_1183" = alloca %Int256, align 8 - %"$$arg2_62_1184" = load %Int256, %Int256* %"$arg2_62", align 8 - store %Int256 %"$$arg2_62_1184", %Int256* %"$mul_$arg2_62_1183", align 8 - %"$mul_call_1185" = call %Int256* @_mul_Int256(i8* %"$execptr_load_1180", %Int256* %"$mul_$arg1_61_1181", %Int256* %"$mul_$arg2_62_1183"), !dbg !85 - %"$mul_1187" = load %Int256, %Int256* %"$mul_call_1185", align 8 - store %Int256 %"$mul_1187", %Int256* %"$res_63", align 8, !dbg !85 - %"$gasrem_1188" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1189" = icmp ugt i64 1, %"$gasrem_1188" - br i1 %"$gascmp_1189", label %"$out_of_gas_1190", label %"$have_gas_1191" - -"$out_of_gas_1190": ; preds = %"$have_gas_1178" - call void @_out_of_gas() - br label %"$have_gas_1191" - -"$have_gas_1191": ; preds = %"$out_of_gas_1190", %"$have_gas_1178" - %"$consume_1192" = sub i64 %"$gasrem_1188", 1 - store i64 %"$consume_1192", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %Int256* %"$res_63", metadata !239, metadata !DIExpression()), !dbg !240 + %"$gasrem_1177" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1178" = icmp ugt i64 80, %"$gasrem_1177" + br i1 %"$gascmp_1178", label %"$out_of_gas_1179", label %"$have_gas_1180" + +"$out_of_gas_1179": ; preds = %"$have_gas_1174" + call void @_out_of_gas() + br label %"$have_gas_1180" + +"$have_gas_1180": ; preds = %"$out_of_gas_1179", %"$have_gas_1174" + %"$consume_1181" = sub i64 %"$gasrem_1177", 80 + store i64 %"$consume_1181", i64* @_gasrem, align 8 + %"$execptr_load_1182" = load i8*, i8** @_execptr, align 8 + %"$mul_$arg1_61_1183" = alloca %Int256, align 8 + %"$$arg1_61_1184" = load %Int256, %Int256* %"$arg1_61", align 8 + store %Int256 %"$$arg1_61_1184", %Int256* %"$mul_$arg1_61_1183", align 8 + %"$mul_$arg2_62_1185" = alloca %Int256, align 8 + %"$$arg2_62_1186" = load %Int256, %Int256* %"$arg2_62", align 8 + store %Int256 %"$$arg2_62_1186", %Int256* %"$mul_$arg2_62_1185", align 8 + %"$mul_call_1187" = call %Int256* @_mul_Int256(i8* %"$execptr_load_1182", %Int256* %"$mul_$arg1_61_1183", %Int256* %"$mul_$arg2_62_1185"), !dbg !241 + %"$mul_1189" = load %Int256, %Int256* %"$mul_call_1187", align 8 + store %Int256 %"$mul_1189", %Int256* %"$res_63", align 8, !dbg !241 + %"$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 = %"$have_gas_1180" + call void @_out_of_gas() + br label %"$have_gas_1193" + +"$have_gas_1193": ; preds = %"$out_of_gas_1192", %"$have_gas_1180" + %"$consume_1194" = sub i64 %"$gasrem_1190", 1 + store i64 %"$consume_1194", i64* @_gasrem, align 8 %"$res__64" = alloca %Int256, align 8 - %"$gasrem_1193" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1194" = icmp ugt i64 1, %"$gasrem_1193" - br i1 %"$gascmp_1194", label %"$out_of_gas_1195", label %"$have_gas_1196" + call void @llvm.dbg.declare(metadata %Int256* %"$res__64", metadata !242, metadata !DIExpression()), !dbg !243 + %"$gasrem_1195" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1196" = icmp ugt i64 1, %"$gasrem_1195" + br i1 %"$gascmp_1196", label %"$out_of_gas_1197", label %"$have_gas_1198" -"$out_of_gas_1195": ; preds = %"$have_gas_1191" +"$out_of_gas_1197": ; preds = %"$have_gas_1193" call void @_out_of_gas() - br label %"$have_gas_1196" + br label %"$have_gas_1198" -"$have_gas_1196": ; preds = %"$out_of_gas_1195", %"$have_gas_1191" - %"$consume_1197" = sub i64 %"$gasrem_1193", 1 - store i64 %"$consume_1197", i64* @_gasrem, align 8 - store %Int256 { i256 -28948022309329048855892746252171976963147354982949671778132708698262398304256 }, %Int256* %"$res__64", align 8, !dbg !86 - %"$gasrem_1198" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1199" = icmp ugt i64 1, %"$gasrem_1198" - br i1 %"$gascmp_1199", label %"$out_of_gas_1200", label %"$have_gas_1201" +"$have_gas_1198": ; preds = %"$out_of_gas_1197", %"$have_gas_1193" + %"$consume_1199" = sub i64 %"$gasrem_1195", 1 + store i64 %"$consume_1199", i64* @_gasrem, align 8 + store %Int256 { i256 -28948022309329048855892746252171976963147354982949671778132708698262398304256 }, %Int256* %"$res__64", align 8, !dbg !244 + %"$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_1200": ; preds = %"$have_gas_1196" +"$out_of_gas_1202": ; preds = %"$have_gas_1198" call void @_out_of_gas() - br label %"$have_gas_1201" + br label %"$have_gas_1203" -"$have_gas_1201": ; preds = %"$out_of_gas_1200", %"$have_gas_1196" - %"$consume_1202" = sub i64 %"$gasrem_1198", 1 - store i64 %"$consume_1202", i64* @_gasrem, align 8 +"$have_gas_1203": ; preds = %"$out_of_gas_1202", %"$have_gas_1198" + %"$consume_1204" = sub i64 %"$gasrem_1200", 1 + store i64 %"$consume_1204", i64* @_gasrem, align 8 %"$test__65" = alloca %TName_Bool*, align 8 - %"$gasrem_1204" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1205" = icmp ugt i64 16, %"$gasrem_1204" - br i1 %"$gascmp_1205", label %"$out_of_gas_1206", label %"$have_gas_1207" - -"$out_of_gas_1206": ; preds = %"$have_gas_1201" - call void @_out_of_gas() - br label %"$have_gas_1207" - -"$have_gas_1207": ; preds = %"$out_of_gas_1206", %"$have_gas_1201" - %"$consume_1208" = sub i64 %"$gasrem_1204", 16 - store i64 %"$consume_1208", i64* @_gasrem, align 8 - %"$execptr_load_1209" = load i8*, i8** @_execptr, align 8 - %"$eq_$res_63_1210" = alloca %Int256, align 8 - %"$$res_63_1211" = load %Int256, %Int256* %"$res_63", align 8 - store %Int256 %"$$res_63_1211", %Int256* %"$eq_$res_63_1210", align 8 - %"$eq_$res__64_1212" = alloca %Int256, align 8 - %"$$res__64_1213" = load %Int256, %Int256* %"$res__64", align 8 - store %Int256 %"$$res__64_1213", %Int256* %"$eq_$res__64_1212", align 8 - %"$eq_call_1214" = call %TName_Bool* @_eq_Int256(i8* %"$execptr_load_1209", %Int256* %"$eq_$res_63_1210", %Int256* %"$eq_$res__64_1212"), !dbg !87 - store %TName_Bool* %"$eq_call_1214", %TName_Bool** %"$test__65", align 8, !dbg !87 - %"$gasrem_1216" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1217" = icmp ugt i64 1, %"$gasrem_1216" - br i1 %"$gascmp_1217", label %"$out_of_gas_1218", label %"$have_gas_1219" - -"$out_of_gas_1218": ; preds = %"$have_gas_1207" - call void @_out_of_gas() - br label %"$have_gas_1219" - -"$have_gas_1219": ; preds = %"$out_of_gas_1218", %"$have_gas_1207" - %"$consume_1220" = sub i64 %"$gasrem_1216", 1 - store i64 %"$consume_1220", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$test__65", metadata !245, metadata !DIExpression()), !dbg !246 + %"$gasrem_1206" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1207" = icmp ugt i64 16, %"$gasrem_1206" + br i1 %"$gascmp_1207", label %"$out_of_gas_1208", label %"$have_gas_1209" + +"$out_of_gas_1208": ; preds = %"$have_gas_1203" + call void @_out_of_gas() + br label %"$have_gas_1209" + +"$have_gas_1209": ; preds = %"$out_of_gas_1208", %"$have_gas_1203" + %"$consume_1210" = sub i64 %"$gasrem_1206", 16 + store i64 %"$consume_1210", i64* @_gasrem, align 8 + %"$execptr_load_1211" = load i8*, i8** @_execptr, align 8 + %"$eq_$res_63_1212" = alloca %Int256, align 8 + %"$$res_63_1213" = load %Int256, %Int256* %"$res_63", align 8 + store %Int256 %"$$res_63_1213", %Int256* %"$eq_$res_63_1212", align 8 + %"$eq_$res__64_1214" = alloca %Int256, align 8 + %"$$res__64_1215" = load %Int256, %Int256* %"$res__64", align 8 + store %Int256 %"$$res__64_1215", %Int256* %"$eq_$res__64_1214", align 8 + %"$eq_call_1216" = call %TName_Bool* @_eq_Int256(i8* %"$execptr_load_1211", %Int256* %"$eq_$res_63_1212", %Int256* %"$eq_$res__64_1214"), !dbg !247 + store %TName_Bool* %"$eq_call_1216", %TName_Bool** %"$test__65", align 8, !dbg !247 + %"$gasrem_1218" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1219" = icmp ugt i64 1, %"$gasrem_1218" + br i1 %"$gascmp_1219", label %"$out_of_gas_1220", label %"$have_gas_1221" + +"$out_of_gas_1220": ; preds = %"$have_gas_1209" + call void @_out_of_gas() + br label %"$have_gas_1221" + +"$have_gas_1221": ; preds = %"$out_of_gas_1220", %"$have_gas_1209" + %"$consume_1222" = sub i64 %"$gasrem_1218", 1 + store i64 %"$consume_1222", i64* @_gasrem, align 8 %"$BoolUtils.andb_147" = alloca { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, align 8 - %"$BoolUtils.andb_1221" = 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_1222" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_1221", 0 - %"$BoolUtils.andb_envptr_1223" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_1221", 1 - %"$$test_60_1224" = load %TName_Bool*, %TName_Bool** %"$test_60", align 8 - %"$BoolUtils.andb_call_1225" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_1222"(i8* %"$BoolUtils.andb_envptr_1223", %TName_Bool* %"$$test_60_1224"), !dbg !88 - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_1225", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_147", align 8, !dbg !88 + %"$BoolUtils.andb_1223" = 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_1224" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_1223", 0 + %"$BoolUtils.andb_envptr_1225" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_1223", 1 + %"$$test_60_1226" = load %TName_Bool*, %TName_Bool** %"$test_60", align 8 + %"$BoolUtils.andb_call_1227" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_1224"(i8* %"$BoolUtils.andb_envptr_1225", %TName_Bool* %"$$test_60_1226"), !dbg !248 + store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_1227", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_147", align 8, !dbg !248 %"$BoolUtils.andb_148" = alloca %TName_Bool*, align 8 - %"$$BoolUtils.andb_147_1226" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_147", align 8 - %"$$BoolUtils.andb_147_fptr_1227" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_147_1226", 0 - %"$$BoolUtils.andb_147_envptr_1228" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_147_1226", 1 - %"$$test__65_1229" = load %TName_Bool*, %TName_Bool** %"$test__65", align 8 - %"$$BoolUtils.andb_147_call_1230" = call %TName_Bool* %"$$BoolUtils.andb_147_fptr_1227"(i8* %"$$BoolUtils.andb_147_envptr_1228", %TName_Bool* %"$$test__65_1229"), !dbg !88 - store %TName_Bool* %"$$BoolUtils.andb_147_call_1230", %TName_Bool** %"$BoolUtils.andb_148", align 8, !dbg !88 - %"$$BoolUtils.andb_148_1231" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_148", align 8 - store %TName_Bool* %"$$BoolUtils.andb_148_1231", %TName_Bool** %"$test_66", align 8, !dbg !88 - %"$gasrem_1232" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1233" = icmp ugt i64 1, %"$gasrem_1232" - br i1 %"$gascmp_1233", label %"$out_of_gas_1234", label %"$have_gas_1235" - -"$out_of_gas_1234": ; preds = %"$have_gas_1219" - call void @_out_of_gas() - br label %"$have_gas_1235" - -"$have_gas_1235": ; preds = %"$out_of_gas_1234", %"$have_gas_1219" - %"$consume_1236" = sub i64 %"$gasrem_1232", 1 - store i64 %"$consume_1236", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$BoolUtils.andb_148", metadata !249, metadata !DIExpression()), !dbg !248 + %"$$BoolUtils.andb_147_1228" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_147", align 8 + %"$$BoolUtils.andb_147_fptr_1229" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_147_1228", 0 + %"$$BoolUtils.andb_147_envptr_1230" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_147_1228", 1 + %"$$test__65_1231" = load %TName_Bool*, %TName_Bool** %"$test__65", align 8 + %"$$BoolUtils.andb_147_call_1232" = call %TName_Bool* %"$$BoolUtils.andb_147_fptr_1229"(i8* %"$$BoolUtils.andb_147_envptr_1230", %TName_Bool* %"$$test__65_1231"), !dbg !248 + store %TName_Bool* %"$$BoolUtils.andb_147_call_1232", %TName_Bool** %"$BoolUtils.andb_148", align 8, !dbg !248 + %"$$BoolUtils.andb_148_1233" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_148", align 8 + store %TName_Bool* %"$$BoolUtils.andb_148_1233", %TName_Bool** %"$test_66", align 8, !dbg !248 + %"$gasrem_1234" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1235" = icmp ugt i64 1, %"$gasrem_1234" + br i1 %"$gascmp_1235", label %"$out_of_gas_1236", label %"$have_gas_1237" + +"$out_of_gas_1236": ; preds = %"$have_gas_1221" + call void @_out_of_gas() + br label %"$have_gas_1237" + +"$have_gas_1237": ; preds = %"$out_of_gas_1236", %"$have_gas_1221" + %"$consume_1238" = sub i64 %"$gasrem_1234", 1 + store i64 %"$consume_1238", i64* @_gasrem, align 8 %"$arg1_67" = alloca %Int256, align 8 - %"$gasrem_1237" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1238" = icmp ugt i64 1, %"$gasrem_1237" - br i1 %"$gascmp_1238", label %"$out_of_gas_1239", label %"$have_gas_1240" + call void @llvm.dbg.declare(metadata %Int256* %"$arg1_67", metadata !250, metadata !DIExpression()), !dbg !251 + %"$gasrem_1239" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1240" = icmp ugt i64 1, %"$gasrem_1239" + br i1 %"$gascmp_1240", label %"$out_of_gas_1241", label %"$have_gas_1242" -"$out_of_gas_1239": ; preds = %"$have_gas_1235" +"$out_of_gas_1241": ; preds = %"$have_gas_1237" call void @_out_of_gas() - br label %"$have_gas_1240" + br label %"$have_gas_1242" -"$have_gas_1240": ; preds = %"$out_of_gas_1239", %"$have_gas_1235" - %"$consume_1241" = sub i64 %"$gasrem_1237", 1 - store i64 %"$consume_1241", i64* @_gasrem, align 8 - store %Int256 { i256 170141183460469231731687303715884105727 }, %Int256* %"$arg1_67", align 8, !dbg !89 - %"$gasrem_1242" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1243" = icmp ugt i64 1, %"$gasrem_1242" - br i1 %"$gascmp_1243", label %"$out_of_gas_1244", label %"$have_gas_1245" +"$have_gas_1242": ; preds = %"$out_of_gas_1241", %"$have_gas_1237" + %"$consume_1243" = sub i64 %"$gasrem_1239", 1 + store i64 %"$consume_1243", i64* @_gasrem, align 8 + store %Int256 { i256 170141183460469231731687303715884105727 }, %Int256* %"$arg1_67", align 8, !dbg !252 + %"$gasrem_1244" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1245" = icmp ugt i64 1, %"$gasrem_1244" + br i1 %"$gascmp_1245", label %"$out_of_gas_1246", label %"$have_gas_1247" -"$out_of_gas_1244": ; preds = %"$have_gas_1240" +"$out_of_gas_1246": ; preds = %"$have_gas_1242" call void @_out_of_gas() - br label %"$have_gas_1245" + br label %"$have_gas_1247" -"$have_gas_1245": ; preds = %"$out_of_gas_1244", %"$have_gas_1240" - %"$consume_1246" = sub i64 %"$gasrem_1242", 1 - store i64 %"$consume_1246", i64* @_gasrem, align 8 +"$have_gas_1247": ; preds = %"$out_of_gas_1246", %"$have_gas_1242" + %"$consume_1248" = sub i64 %"$gasrem_1244", 1 + store i64 %"$consume_1248", i64* @_gasrem, align 8 %"$arg2_68" = alloca %Int256, align 8 - %"$gasrem_1247" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1248" = icmp ugt i64 1, %"$gasrem_1247" - br i1 %"$gascmp_1248", label %"$out_of_gas_1249", label %"$have_gas_1250" + call void @llvm.dbg.declare(metadata %Int256* %"$arg2_68", metadata !253, metadata !DIExpression()), !dbg !254 + %"$gasrem_1249" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1250" = icmp ugt i64 1, %"$gasrem_1249" + br i1 %"$gascmp_1250", label %"$out_of_gas_1251", label %"$have_gas_1252" -"$out_of_gas_1249": ; preds = %"$have_gas_1245" +"$out_of_gas_1251": ; preds = %"$have_gas_1247" call void @_out_of_gas() - br label %"$have_gas_1250" + br label %"$have_gas_1252" -"$have_gas_1250": ; preds = %"$out_of_gas_1249", %"$have_gas_1245" - %"$consume_1251" = sub i64 %"$gasrem_1247", 1 - store i64 %"$consume_1251", i64* @_gasrem, align 8 - store %Int256 { i256 170141183460469231731687303715884105728 }, %Int256* %"$arg2_68", align 8, !dbg !90 - %"$gasrem_1252" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1253" = icmp ugt i64 1, %"$gasrem_1252" - br i1 %"$gascmp_1253", label %"$out_of_gas_1254", label %"$have_gas_1255" +"$have_gas_1252": ; preds = %"$out_of_gas_1251", %"$have_gas_1247" + %"$consume_1253" = sub i64 %"$gasrem_1249", 1 + store i64 %"$consume_1253", i64* @_gasrem, align 8 + store %Int256 { i256 170141183460469231731687303715884105728 }, %Int256* %"$arg2_68", align 8, !dbg !255 + %"$gasrem_1254" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1255" = icmp ugt i64 1, %"$gasrem_1254" + br i1 %"$gascmp_1255", label %"$out_of_gas_1256", label %"$have_gas_1257" -"$out_of_gas_1254": ; preds = %"$have_gas_1250" +"$out_of_gas_1256": ; preds = %"$have_gas_1252" call void @_out_of_gas() - br label %"$have_gas_1255" + br label %"$have_gas_1257" -"$have_gas_1255": ; preds = %"$out_of_gas_1254", %"$have_gas_1250" - %"$consume_1256" = sub i64 %"$gasrem_1252", 1 - store i64 %"$consume_1256", i64* @_gasrem, align 8 +"$have_gas_1257": ; preds = %"$out_of_gas_1256", %"$have_gas_1252" + %"$consume_1258" = sub i64 %"$gasrem_1254", 1 + store i64 %"$consume_1258", i64* @_gasrem, align 8 %"$test_72" = alloca %TName_Bool*, 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" + call void @llvm.dbg.declare(metadata %TName_Bool** %"$test_72", metadata !256, metadata !DIExpression()), !dbg !257 + %"$gasrem_1259" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1260" = icmp ugt i64 1, %"$gasrem_1259" + br i1 %"$gascmp_1260", label %"$out_of_gas_1261", label %"$have_gas_1262" -"$out_of_gas_1259": ; preds = %"$have_gas_1255" +"$out_of_gas_1261": ; preds = %"$have_gas_1257" call void @_out_of_gas() - br label %"$have_gas_1260" + br label %"$have_gas_1262" -"$have_gas_1260": ; preds = %"$out_of_gas_1259", %"$have_gas_1255" - %"$consume_1261" = sub i64 %"$gasrem_1257", 1 - store i64 %"$consume_1261", i64* @_gasrem, align 8 +"$have_gas_1262": ; preds = %"$out_of_gas_1261", %"$have_gas_1257" + %"$consume_1263" = sub i64 %"$gasrem_1259", 1 + store i64 %"$consume_1263", i64* @_gasrem, align 8 %"$res_69" = alloca %Int256, align 8 - %"$gasrem_1263" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1264" = icmp ugt i64 80, %"$gasrem_1263" - br i1 %"$gascmp_1264", label %"$out_of_gas_1265", label %"$have_gas_1266" - -"$out_of_gas_1265": ; preds = %"$have_gas_1260" - call void @_out_of_gas() - br label %"$have_gas_1266" - -"$have_gas_1266": ; preds = %"$out_of_gas_1265", %"$have_gas_1260" - %"$consume_1267" = sub i64 %"$gasrem_1263", 80 - store i64 %"$consume_1267", i64* @_gasrem, align 8 - %"$execptr_load_1268" = load i8*, i8** @_execptr, align 8 - %"$mul_$arg1_67_1269" = alloca %Int256, align 8 - %"$$arg1_67_1270" = load %Int256, %Int256* %"$arg1_67", align 8 - store %Int256 %"$$arg1_67_1270", %Int256* %"$mul_$arg1_67_1269", align 8 - %"$mul_$arg2_68_1271" = alloca %Int256, align 8 - %"$$arg2_68_1272" = load %Int256, %Int256* %"$arg2_68", align 8 - store %Int256 %"$$arg2_68_1272", %Int256* %"$mul_$arg2_68_1271", align 8 - %"$mul_call_1273" = call %Int256* @_mul_Int256(i8* %"$execptr_load_1268", %Int256* %"$mul_$arg1_67_1269", %Int256* %"$mul_$arg2_68_1271"), !dbg !91 - %"$mul_1275" = load %Int256, %Int256* %"$mul_call_1273", align 8 - store %Int256 %"$mul_1275", %Int256* %"$res_69", align 8, !dbg !91 - %"$gasrem_1276" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1277" = icmp ugt i64 1, %"$gasrem_1276" - br i1 %"$gascmp_1277", label %"$out_of_gas_1278", label %"$have_gas_1279" - -"$out_of_gas_1278": ; preds = %"$have_gas_1266" - call void @_out_of_gas() - br label %"$have_gas_1279" - -"$have_gas_1279": ; preds = %"$out_of_gas_1278", %"$have_gas_1266" - %"$consume_1280" = sub i64 %"$gasrem_1276", 1 - store i64 %"$consume_1280", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %Int256* %"$res_69", metadata !258, metadata !DIExpression()), !dbg !259 + %"$gasrem_1265" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1266" = icmp ugt i64 80, %"$gasrem_1265" + br i1 %"$gascmp_1266", label %"$out_of_gas_1267", label %"$have_gas_1268" + +"$out_of_gas_1267": ; preds = %"$have_gas_1262" + call void @_out_of_gas() + br label %"$have_gas_1268" + +"$have_gas_1268": ; preds = %"$out_of_gas_1267", %"$have_gas_1262" + %"$consume_1269" = sub i64 %"$gasrem_1265", 80 + store i64 %"$consume_1269", i64* @_gasrem, align 8 + %"$execptr_load_1270" = load i8*, i8** @_execptr, align 8 + %"$mul_$arg1_67_1271" = alloca %Int256, align 8 + %"$$arg1_67_1272" = load %Int256, %Int256* %"$arg1_67", align 8 + store %Int256 %"$$arg1_67_1272", %Int256* %"$mul_$arg1_67_1271", align 8 + %"$mul_$arg2_68_1273" = alloca %Int256, align 8 + %"$$arg2_68_1274" = load %Int256, %Int256* %"$arg2_68", align 8 + store %Int256 %"$$arg2_68_1274", %Int256* %"$mul_$arg2_68_1273", align 8 + %"$mul_call_1275" = call %Int256* @_mul_Int256(i8* %"$execptr_load_1270", %Int256* %"$mul_$arg1_67_1271", %Int256* %"$mul_$arg2_68_1273"), !dbg !260 + %"$mul_1277" = load %Int256, %Int256* %"$mul_call_1275", align 8 + store %Int256 %"$mul_1277", %Int256* %"$res_69", align 8, !dbg !260 + %"$gasrem_1278" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1279" = icmp ugt i64 1, %"$gasrem_1278" + br i1 %"$gascmp_1279", label %"$out_of_gas_1280", label %"$have_gas_1281" + +"$out_of_gas_1280": ; preds = %"$have_gas_1268" + call void @_out_of_gas() + br label %"$have_gas_1281" + +"$have_gas_1281": ; preds = %"$out_of_gas_1280", %"$have_gas_1268" + %"$consume_1282" = sub i64 %"$gasrem_1278", 1 + store i64 %"$consume_1282", i64* @_gasrem, align 8 %"$res__70" = alloca %Int256, align 8 - %"$gasrem_1281" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1282" = icmp ugt i64 1, %"$gasrem_1281" - br i1 %"$gascmp_1282", label %"$out_of_gas_1283", label %"$have_gas_1284" + call void @llvm.dbg.declare(metadata %Int256* %"$res__70", metadata !261, metadata !DIExpression()), !dbg !262 + %"$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_1283": ; preds = %"$have_gas_1279" +"$out_of_gas_1285": ; preds = %"$have_gas_1281" call void @_out_of_gas() - br label %"$have_gas_1284" + br label %"$have_gas_1286" -"$have_gas_1284": ; preds = %"$out_of_gas_1283", %"$have_gas_1279" - %"$consume_1285" = sub i64 %"$gasrem_1281", 1 - store i64 %"$consume_1285", i64* @_gasrem, align 8 - store %Int256 { i256 28948022309329048855892746252171976963147354982949671778132708698262398304256 }, %Int256* %"$res__70", align 8, !dbg !92 - %"$gasrem_1286" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1287" = icmp ugt i64 1, %"$gasrem_1286" - br i1 %"$gascmp_1287", label %"$out_of_gas_1288", label %"$have_gas_1289" +"$have_gas_1286": ; preds = %"$out_of_gas_1285", %"$have_gas_1281" + %"$consume_1287" = sub i64 %"$gasrem_1283", 1 + store i64 %"$consume_1287", i64* @_gasrem, align 8 + store %Int256 { i256 28948022309329048855892746252171976963147354982949671778132708698262398304256 }, %Int256* %"$res__70", align 8, !dbg !263 + %"$gasrem_1288" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1289" = icmp ugt i64 1, %"$gasrem_1288" + br i1 %"$gascmp_1289", label %"$out_of_gas_1290", label %"$have_gas_1291" -"$out_of_gas_1288": ; preds = %"$have_gas_1284" +"$out_of_gas_1290": ; preds = %"$have_gas_1286" call void @_out_of_gas() - br label %"$have_gas_1289" + br label %"$have_gas_1291" -"$have_gas_1289": ; preds = %"$out_of_gas_1288", %"$have_gas_1284" - %"$consume_1290" = sub i64 %"$gasrem_1286", 1 - store i64 %"$consume_1290", i64* @_gasrem, align 8 +"$have_gas_1291": ; preds = %"$out_of_gas_1290", %"$have_gas_1286" + %"$consume_1292" = sub i64 %"$gasrem_1288", 1 + store i64 %"$consume_1292", i64* @_gasrem, align 8 %"$test__71" = alloca %TName_Bool*, align 8 - %"$gasrem_1292" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1293" = icmp ugt i64 16, %"$gasrem_1292" - br i1 %"$gascmp_1293", label %"$out_of_gas_1294", label %"$have_gas_1295" - -"$out_of_gas_1294": ; preds = %"$have_gas_1289" - call void @_out_of_gas() - br label %"$have_gas_1295" - -"$have_gas_1295": ; preds = %"$out_of_gas_1294", %"$have_gas_1289" - %"$consume_1296" = sub i64 %"$gasrem_1292", 16 - store i64 %"$consume_1296", i64* @_gasrem, align 8 - %"$execptr_load_1297" = load i8*, i8** @_execptr, align 8 - %"$eq_$res_69_1298" = alloca %Int256, align 8 - %"$$res_69_1299" = load %Int256, %Int256* %"$res_69", align 8 - store %Int256 %"$$res_69_1299", %Int256* %"$eq_$res_69_1298", align 8 - %"$eq_$res__70_1300" = alloca %Int256, align 8 - %"$$res__70_1301" = load %Int256, %Int256* %"$res__70", align 8 - store %Int256 %"$$res__70_1301", %Int256* %"$eq_$res__70_1300", align 8 - %"$eq_call_1302" = call %TName_Bool* @_eq_Int256(i8* %"$execptr_load_1297", %Int256* %"$eq_$res_69_1298", %Int256* %"$eq_$res__70_1300"), !dbg !93 - store %TName_Bool* %"$eq_call_1302", %TName_Bool** %"$test__71", align 8, !dbg !93 - %"$gasrem_1304" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1305" = icmp ugt i64 1, %"$gasrem_1304" - br i1 %"$gascmp_1305", label %"$out_of_gas_1306", label %"$have_gas_1307" - -"$out_of_gas_1306": ; preds = %"$have_gas_1295" - call void @_out_of_gas() - br label %"$have_gas_1307" - -"$have_gas_1307": ; preds = %"$out_of_gas_1306", %"$have_gas_1295" - %"$consume_1308" = sub i64 %"$gasrem_1304", 1 - store i64 %"$consume_1308", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$test__71", metadata !264, metadata !DIExpression()), !dbg !265 + %"$gasrem_1294" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1295" = icmp ugt i64 16, %"$gasrem_1294" + br i1 %"$gascmp_1295", label %"$out_of_gas_1296", label %"$have_gas_1297" + +"$out_of_gas_1296": ; preds = %"$have_gas_1291" + call void @_out_of_gas() + br label %"$have_gas_1297" + +"$have_gas_1297": ; preds = %"$out_of_gas_1296", %"$have_gas_1291" + %"$consume_1298" = sub i64 %"$gasrem_1294", 16 + store i64 %"$consume_1298", i64* @_gasrem, align 8 + %"$execptr_load_1299" = load i8*, i8** @_execptr, align 8 + %"$eq_$res_69_1300" = alloca %Int256, align 8 + %"$$res_69_1301" = load %Int256, %Int256* %"$res_69", align 8 + store %Int256 %"$$res_69_1301", %Int256* %"$eq_$res_69_1300", align 8 + %"$eq_$res__70_1302" = alloca %Int256, align 8 + %"$$res__70_1303" = load %Int256, %Int256* %"$res__70", align 8 + store %Int256 %"$$res__70_1303", %Int256* %"$eq_$res__70_1302", align 8 + %"$eq_call_1304" = call %TName_Bool* @_eq_Int256(i8* %"$execptr_load_1299", %Int256* %"$eq_$res_69_1300", %Int256* %"$eq_$res__70_1302"), !dbg !266 + store %TName_Bool* %"$eq_call_1304", %TName_Bool** %"$test__71", align 8, !dbg !266 + %"$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_1308": ; preds = %"$have_gas_1297" + call void @_out_of_gas() + br label %"$have_gas_1309" + +"$have_gas_1309": ; preds = %"$out_of_gas_1308", %"$have_gas_1297" + %"$consume_1310" = sub i64 %"$gasrem_1306", 1 + store i64 %"$consume_1310", i64* @_gasrem, align 8 %"$BoolUtils.andb_149" = alloca { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, align 8 - %"$BoolUtils.andb_1309" = 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_1310" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_1309", 0 - %"$BoolUtils.andb_envptr_1311" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_1309", 1 - %"$$test_66_1312" = load %TName_Bool*, %TName_Bool** %"$test_66", align 8 - %"$BoolUtils.andb_call_1313" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_1310"(i8* %"$BoolUtils.andb_envptr_1311", %TName_Bool* %"$$test_66_1312"), !dbg !94 - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_1313", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_149", align 8, !dbg !94 + %"$BoolUtils.andb_1311" = 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_1312" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_1311", 0 + %"$BoolUtils.andb_envptr_1313" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_1311", 1 + %"$$test_66_1314" = load %TName_Bool*, %TName_Bool** %"$test_66", align 8 + %"$BoolUtils.andb_call_1315" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_1312"(i8* %"$BoolUtils.andb_envptr_1313", %TName_Bool* %"$$test_66_1314"), !dbg !267 + store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_1315", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_149", align 8, !dbg !267 %"$BoolUtils.andb_150" = alloca %TName_Bool*, align 8 - %"$$BoolUtils.andb_149_1314" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_149", align 8 - %"$$BoolUtils.andb_149_fptr_1315" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_149_1314", 0 - %"$$BoolUtils.andb_149_envptr_1316" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_149_1314", 1 - %"$$test__71_1317" = load %TName_Bool*, %TName_Bool** %"$test__71", align 8 - %"$$BoolUtils.andb_149_call_1318" = call %TName_Bool* %"$$BoolUtils.andb_149_fptr_1315"(i8* %"$$BoolUtils.andb_149_envptr_1316", %TName_Bool* %"$$test__71_1317"), !dbg !94 - store %TName_Bool* %"$$BoolUtils.andb_149_call_1318", %TName_Bool** %"$BoolUtils.andb_150", align 8, !dbg !94 - %"$$BoolUtils.andb_150_1319" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_150", align 8 - store %TName_Bool* %"$$BoolUtils.andb_150_1319", %TName_Bool** %"$test_72", align 8, !dbg !94 - %"$gasrem_1320" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1321" = icmp ugt i64 1, %"$gasrem_1320" - br i1 %"$gascmp_1321", label %"$out_of_gas_1322", label %"$have_gas_1323" - -"$out_of_gas_1322": ; preds = %"$have_gas_1307" - call void @_out_of_gas() - br label %"$have_gas_1323" - -"$have_gas_1323": ; preds = %"$out_of_gas_1322", %"$have_gas_1307" - %"$consume_1324" = sub i64 %"$gasrem_1320", 1 - store i64 %"$consume_1324", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$BoolUtils.andb_150", metadata !268, metadata !DIExpression()), !dbg !267 + %"$$BoolUtils.andb_149_1316" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_149", align 8 + %"$$BoolUtils.andb_149_fptr_1317" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_149_1316", 0 + %"$$BoolUtils.andb_149_envptr_1318" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_149_1316", 1 + %"$$test__71_1319" = load %TName_Bool*, %TName_Bool** %"$test__71", align 8 + %"$$BoolUtils.andb_149_call_1320" = call %TName_Bool* %"$$BoolUtils.andb_149_fptr_1317"(i8* %"$$BoolUtils.andb_149_envptr_1318", %TName_Bool* %"$$test__71_1319"), !dbg !267 + store %TName_Bool* %"$$BoolUtils.andb_149_call_1320", %TName_Bool** %"$BoolUtils.andb_150", align 8, !dbg !267 + %"$$BoolUtils.andb_150_1321" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_150", align 8 + store %TName_Bool* %"$$BoolUtils.andb_150_1321", %TName_Bool** %"$test_72", align 8, !dbg !267 + %"$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_1324": ; preds = %"$have_gas_1309" + call void @_out_of_gas() + br label %"$have_gas_1325" + +"$have_gas_1325": ; preds = %"$out_of_gas_1324", %"$have_gas_1309" + %"$consume_1326" = sub i64 %"$gasrem_1322", 1 + store i64 %"$consume_1326", i64* @_gasrem, align 8 %"$arg1_73" = alloca %Uint256, align 8 - %"$gasrem_1325" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1326" = icmp ugt i64 1, %"$gasrem_1325" - br i1 %"$gascmp_1326", label %"$out_of_gas_1327", label %"$have_gas_1328" + call void @llvm.dbg.declare(metadata %Uint256* %"$arg1_73", metadata !269, metadata !DIExpression()), !dbg !271 + %"$gasrem_1327" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1328" = icmp ugt i64 1, %"$gasrem_1327" + br i1 %"$gascmp_1328", label %"$out_of_gas_1329", label %"$have_gas_1330" -"$out_of_gas_1327": ; preds = %"$have_gas_1323" +"$out_of_gas_1329": ; preds = %"$have_gas_1325" call void @_out_of_gas() - br label %"$have_gas_1328" + br label %"$have_gas_1330" -"$have_gas_1328": ; preds = %"$out_of_gas_1327", %"$have_gas_1323" - %"$consume_1329" = sub i64 %"$gasrem_1325", 1 - store i64 %"$consume_1329", i64* @_gasrem, align 8 - store %Uint256 { i256 170141183460469231731687303715884105727 }, %Uint256* %"$arg1_73", align 8, !dbg !95 - %"$gasrem_1330" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1331" = icmp ugt i64 1, %"$gasrem_1330" - br i1 %"$gascmp_1331", label %"$out_of_gas_1332", label %"$have_gas_1333" +"$have_gas_1330": ; preds = %"$out_of_gas_1329", %"$have_gas_1325" + %"$consume_1331" = sub i64 %"$gasrem_1327", 1 + store i64 %"$consume_1331", i64* @_gasrem, align 8 + store %Uint256 { i256 170141183460469231731687303715884105727 }, %Uint256* %"$arg1_73", align 8, !dbg !272 + %"$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_1332": ; preds = %"$have_gas_1328" +"$out_of_gas_1334": ; preds = %"$have_gas_1330" call void @_out_of_gas() - br label %"$have_gas_1333" + br label %"$have_gas_1335" -"$have_gas_1333": ; preds = %"$out_of_gas_1332", %"$have_gas_1328" - %"$consume_1334" = sub i64 %"$gasrem_1330", 1 - store i64 %"$consume_1334", i64* @_gasrem, align 8 +"$have_gas_1335": ; preds = %"$out_of_gas_1334", %"$have_gas_1330" + %"$consume_1336" = sub i64 %"$gasrem_1332", 1 + store i64 %"$consume_1336", i64* @_gasrem, align 8 %"$arg2_74" = alloca %Uint256, align 8 - %"$gasrem_1335" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1336" = icmp ugt i64 1, %"$gasrem_1335" - br i1 %"$gascmp_1336", label %"$out_of_gas_1337", label %"$have_gas_1338" + call void @llvm.dbg.declare(metadata %Uint256* %"$arg2_74", metadata !273, metadata !DIExpression()), !dbg !274 + %"$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_1337": ; preds = %"$have_gas_1333" +"$out_of_gas_1339": ; preds = %"$have_gas_1335" call void @_out_of_gas() - br label %"$have_gas_1338" + br label %"$have_gas_1340" -"$have_gas_1338": ; preds = %"$out_of_gas_1337", %"$have_gas_1333" - %"$consume_1339" = sub i64 %"$gasrem_1335", 1 - store i64 %"$consume_1339", i64* @_gasrem, align 8 - store %Uint256 { i256 170141183460469231731687303715884105728 }, %Uint256* %"$arg2_74", align 8, !dbg !96 - %"$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" +"$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 + store %Uint256 { i256 170141183460469231731687303715884105728 }, %Uint256* %"$arg2_74", align 8, !dbg !275 + %"$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_1342": ; preds = %"$have_gas_1338" +"$out_of_gas_1344": ; preds = %"$have_gas_1340" call void @_out_of_gas() - br label %"$have_gas_1343" + br label %"$have_gas_1345" -"$have_gas_1343": ; preds = %"$out_of_gas_1342", %"$have_gas_1338" - %"$consume_1344" = sub i64 %"$gasrem_1340", 1 - store i64 %"$consume_1344", i64* @_gasrem, align 8 +"$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 %"$test_78" = alloca %TName_Bool*, 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" + call void @llvm.dbg.declare(metadata %TName_Bool** %"$test_78", metadata !276, metadata !DIExpression()), !dbg !277 + %"$gasrem_1347" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1348" = icmp ugt i64 1, %"$gasrem_1347" + br i1 %"$gascmp_1348", label %"$out_of_gas_1349", label %"$have_gas_1350" -"$out_of_gas_1347": ; preds = %"$have_gas_1343" +"$out_of_gas_1349": ; preds = %"$have_gas_1345" call void @_out_of_gas() - br label %"$have_gas_1348" + br label %"$have_gas_1350" -"$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 +"$have_gas_1350": ; preds = %"$out_of_gas_1349", %"$have_gas_1345" + %"$consume_1351" = sub i64 %"$gasrem_1347", 1 + store i64 %"$consume_1351", i64* @_gasrem, align 8 %"$res_75" = alloca %Uint256, align 8 - %"$gasrem_1351" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1352" = icmp ugt i64 80, %"$gasrem_1351" - br i1 %"$gascmp_1352", label %"$out_of_gas_1353", label %"$have_gas_1354" - -"$out_of_gas_1353": ; preds = %"$have_gas_1348" - call void @_out_of_gas() - br label %"$have_gas_1354" - -"$have_gas_1354": ; preds = %"$out_of_gas_1353", %"$have_gas_1348" - %"$consume_1355" = sub i64 %"$gasrem_1351", 80 - store i64 %"$consume_1355", i64* @_gasrem, align 8 - %"$execptr_load_1356" = load i8*, i8** @_execptr, align 8 - %"$mul_$arg1_73_1357" = alloca %Uint256, align 8 - %"$$arg1_73_1358" = load %Uint256, %Uint256* %"$arg1_73", align 8 - store %Uint256 %"$$arg1_73_1358", %Uint256* %"$mul_$arg1_73_1357", align 8 - %"$mul_$arg2_74_1359" = alloca %Uint256, align 8 - %"$$arg2_74_1360" = load %Uint256, %Uint256* %"$arg2_74", align 8 - store %Uint256 %"$$arg2_74_1360", %Uint256* %"$mul_$arg2_74_1359", align 8 - %"$mul_call_1361" = call %Uint256* @_mul_Uint256(i8* %"$execptr_load_1356", %Uint256* %"$mul_$arg1_73_1357", %Uint256* %"$mul_$arg2_74_1359"), !dbg !97 - %"$mul_1363" = load %Uint256, %Uint256* %"$mul_call_1361", align 8 - store %Uint256 %"$mul_1363", %Uint256* %"$res_75", align 8, !dbg !97 - %"$gasrem_1364" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1365" = icmp ugt i64 1, %"$gasrem_1364" - br i1 %"$gascmp_1365", label %"$out_of_gas_1366", label %"$have_gas_1367" - -"$out_of_gas_1366": ; preds = %"$have_gas_1354" - call void @_out_of_gas() - br label %"$have_gas_1367" - -"$have_gas_1367": ; preds = %"$out_of_gas_1366", %"$have_gas_1354" - %"$consume_1368" = sub i64 %"$gasrem_1364", 1 - store i64 %"$consume_1368", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %Uint256* %"$res_75", metadata !278, metadata !DIExpression()), !dbg !279 + %"$gasrem_1353" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1354" = icmp ugt i64 80, %"$gasrem_1353" + br i1 %"$gascmp_1354", label %"$out_of_gas_1355", label %"$have_gas_1356" + +"$out_of_gas_1355": ; preds = %"$have_gas_1350" + call void @_out_of_gas() + br label %"$have_gas_1356" + +"$have_gas_1356": ; preds = %"$out_of_gas_1355", %"$have_gas_1350" + %"$consume_1357" = sub i64 %"$gasrem_1353", 80 + store i64 %"$consume_1357", i64* @_gasrem, align 8 + %"$execptr_load_1358" = load i8*, i8** @_execptr, align 8 + %"$mul_$arg1_73_1359" = alloca %Uint256, align 8 + %"$$arg1_73_1360" = load %Uint256, %Uint256* %"$arg1_73", align 8 + store %Uint256 %"$$arg1_73_1360", %Uint256* %"$mul_$arg1_73_1359", align 8 + %"$mul_$arg2_74_1361" = alloca %Uint256, align 8 + %"$$arg2_74_1362" = load %Uint256, %Uint256* %"$arg2_74", align 8 + store %Uint256 %"$$arg2_74_1362", %Uint256* %"$mul_$arg2_74_1361", align 8 + %"$mul_call_1363" = call %Uint256* @_mul_Uint256(i8* %"$execptr_load_1358", %Uint256* %"$mul_$arg1_73_1359", %Uint256* %"$mul_$arg2_74_1361"), !dbg !280 + %"$mul_1365" = load %Uint256, %Uint256* %"$mul_call_1363", align 8 + store %Uint256 %"$mul_1365", %Uint256* %"$res_75", align 8, !dbg !280 + %"$gasrem_1366" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1367" = icmp ugt i64 1, %"$gasrem_1366" + br i1 %"$gascmp_1367", label %"$out_of_gas_1368", label %"$have_gas_1369" + +"$out_of_gas_1368": ; preds = %"$have_gas_1356" + call void @_out_of_gas() + br label %"$have_gas_1369" + +"$have_gas_1369": ; preds = %"$out_of_gas_1368", %"$have_gas_1356" + %"$consume_1370" = sub i64 %"$gasrem_1366", 1 + store i64 %"$consume_1370", i64* @_gasrem, align 8 %"$res__76" = alloca %Uint256, align 8 - %"$gasrem_1369" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1370" = icmp ugt i64 1, %"$gasrem_1369" - br i1 %"$gascmp_1370", label %"$out_of_gas_1371", label %"$have_gas_1372" + call void @llvm.dbg.declare(metadata %Uint256* %"$res__76", metadata !281, metadata !DIExpression()), !dbg !282 + %"$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_1371": ; preds = %"$have_gas_1367" +"$out_of_gas_1373": ; preds = %"$have_gas_1369" call void @_out_of_gas() - br label %"$have_gas_1372" + br label %"$have_gas_1374" -"$have_gas_1372": ; preds = %"$out_of_gas_1371", %"$have_gas_1367" - %"$consume_1373" = sub i64 %"$gasrem_1369", 1 - store i64 %"$consume_1373", i64* @_gasrem, align 8 - store %Uint256 { i256 28948022309329048855892746252171976963147354982949671778132708698262398304256 }, %Uint256* %"$res__76", align 8, !dbg !98 - %"$gasrem_1374" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1375" = icmp ugt i64 1, %"$gasrem_1374" - br i1 %"$gascmp_1375", label %"$out_of_gas_1376", label %"$have_gas_1377" +"$have_gas_1374": ; preds = %"$out_of_gas_1373", %"$have_gas_1369" + %"$consume_1375" = sub i64 %"$gasrem_1371", 1 + store i64 %"$consume_1375", i64* @_gasrem, align 8 + store %Uint256 { i256 28948022309329048855892746252171976963147354982949671778132708698262398304256 }, %Uint256* %"$res__76", align 8, !dbg !283 + %"$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" -"$out_of_gas_1376": ; preds = %"$have_gas_1372" +"$out_of_gas_1378": ; preds = %"$have_gas_1374" call void @_out_of_gas() - br label %"$have_gas_1377" + br label %"$have_gas_1379" -"$have_gas_1377": ; preds = %"$out_of_gas_1376", %"$have_gas_1372" - %"$consume_1378" = sub i64 %"$gasrem_1374", 1 - store i64 %"$consume_1378", i64* @_gasrem, align 8 +"$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 %"$test__77" = alloca %TName_Bool*, align 8 - %"$gasrem_1380" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1381" = icmp ugt i64 16, %"$gasrem_1380" - br i1 %"$gascmp_1381", label %"$out_of_gas_1382", label %"$have_gas_1383" - -"$out_of_gas_1382": ; preds = %"$have_gas_1377" - call void @_out_of_gas() - br label %"$have_gas_1383" - -"$have_gas_1383": ; preds = %"$out_of_gas_1382", %"$have_gas_1377" - %"$consume_1384" = sub i64 %"$gasrem_1380", 16 - store i64 %"$consume_1384", i64* @_gasrem, align 8 - %"$execptr_load_1385" = load i8*, i8** @_execptr, align 8 - %"$eq_$res_75_1386" = alloca %Uint256, align 8 - %"$$res_75_1387" = load %Uint256, %Uint256* %"$res_75", align 8 - store %Uint256 %"$$res_75_1387", %Uint256* %"$eq_$res_75_1386", align 8 - %"$eq_$res__76_1388" = alloca %Uint256, align 8 - %"$$res__76_1389" = load %Uint256, %Uint256* %"$res__76", align 8 - store %Uint256 %"$$res__76_1389", %Uint256* %"$eq_$res__76_1388", align 8 - %"$eq_call_1390" = call %TName_Bool* @_eq_Uint256(i8* %"$execptr_load_1385", %Uint256* %"$eq_$res_75_1386", %Uint256* %"$eq_$res__76_1388"), !dbg !99 - store %TName_Bool* %"$eq_call_1390", %TName_Bool** %"$test__77", align 8, !dbg !99 - %"$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_1394": ; preds = %"$have_gas_1383" - call void @_out_of_gas() - br label %"$have_gas_1395" - -"$have_gas_1395": ; preds = %"$out_of_gas_1394", %"$have_gas_1383" - %"$consume_1396" = sub i64 %"$gasrem_1392", 1 - store i64 %"$consume_1396", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$test__77", metadata !284, metadata !DIExpression()), !dbg !285 + %"$gasrem_1382" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1383" = icmp ugt i64 16, %"$gasrem_1382" + br i1 %"$gascmp_1383", label %"$out_of_gas_1384", label %"$have_gas_1385" + +"$out_of_gas_1384": ; preds = %"$have_gas_1379" + call void @_out_of_gas() + br label %"$have_gas_1385" + +"$have_gas_1385": ; preds = %"$out_of_gas_1384", %"$have_gas_1379" + %"$consume_1386" = sub i64 %"$gasrem_1382", 16 + store i64 %"$consume_1386", i64* @_gasrem, align 8 + %"$execptr_load_1387" = load i8*, i8** @_execptr, align 8 + %"$eq_$res_75_1388" = alloca %Uint256, align 8 + %"$$res_75_1389" = load %Uint256, %Uint256* %"$res_75", align 8 + store %Uint256 %"$$res_75_1389", %Uint256* %"$eq_$res_75_1388", align 8 + %"$eq_$res__76_1390" = alloca %Uint256, align 8 + %"$$res__76_1391" = load %Uint256, %Uint256* %"$res__76", align 8 + store %Uint256 %"$$res__76_1391", %Uint256* %"$eq_$res__76_1390", align 8 + %"$eq_call_1392" = call %TName_Bool* @_eq_Uint256(i8* %"$execptr_load_1387", %Uint256* %"$eq_$res_75_1388", %Uint256* %"$eq_$res__76_1390"), !dbg !286 + store %TName_Bool* %"$eq_call_1392", %TName_Bool** %"$test__77", align 8, !dbg !286 + %"$gasrem_1394" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1395" = icmp ugt i64 1, %"$gasrem_1394" + br i1 %"$gascmp_1395", label %"$out_of_gas_1396", label %"$have_gas_1397" + +"$out_of_gas_1396": ; preds = %"$have_gas_1385" + call void @_out_of_gas() + br label %"$have_gas_1397" + +"$have_gas_1397": ; preds = %"$out_of_gas_1396", %"$have_gas_1385" + %"$consume_1398" = sub i64 %"$gasrem_1394", 1 + store i64 %"$consume_1398", i64* @_gasrem, align 8 %"$BoolUtils.andb_151" = alloca { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, align 8 - %"$BoolUtils.andb_1397" = 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_1398" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_1397", 0 - %"$BoolUtils.andb_envptr_1399" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_1397", 1 - %"$$test_72_1400" = load %TName_Bool*, %TName_Bool** %"$test_72", align 8 - %"$BoolUtils.andb_call_1401" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_1398"(i8* %"$BoolUtils.andb_envptr_1399", %TName_Bool* %"$$test_72_1400"), !dbg !100 - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_1401", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_151", align 8, !dbg !100 + %"$BoolUtils.andb_1399" = 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_1400" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_1399", 0 + %"$BoolUtils.andb_envptr_1401" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_1399", 1 + %"$$test_72_1402" = load %TName_Bool*, %TName_Bool** %"$test_72", align 8 + %"$BoolUtils.andb_call_1403" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_1400"(i8* %"$BoolUtils.andb_envptr_1401", %TName_Bool* %"$$test_72_1402"), !dbg !287 + store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_1403", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_151", align 8, !dbg !287 %"$BoolUtils.andb_152" = alloca %TName_Bool*, align 8 - %"$$BoolUtils.andb_151_1402" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_151", align 8 - %"$$BoolUtils.andb_151_fptr_1403" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_151_1402", 0 - %"$$BoolUtils.andb_151_envptr_1404" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_151_1402", 1 - %"$$test__77_1405" = load %TName_Bool*, %TName_Bool** %"$test__77", align 8 - %"$$BoolUtils.andb_151_call_1406" = call %TName_Bool* %"$$BoolUtils.andb_151_fptr_1403"(i8* %"$$BoolUtils.andb_151_envptr_1404", %TName_Bool* %"$$test__77_1405"), !dbg !100 - store %TName_Bool* %"$$BoolUtils.andb_151_call_1406", %TName_Bool** %"$BoolUtils.andb_152", align 8, !dbg !100 - %"$$BoolUtils.andb_152_1407" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_152", align 8 - store %TName_Bool* %"$$BoolUtils.andb_152_1407", %TName_Bool** %"$test_78", align 8, !dbg !100 - %"$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_1395" - call void @_out_of_gas() - br label %"$have_gas_1411" - -"$have_gas_1411": ; preds = %"$out_of_gas_1410", %"$have_gas_1395" - %"$consume_1412" = sub i64 %"$gasrem_1408", 1 - store i64 %"$consume_1412", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$BoolUtils.andb_152", metadata !288, metadata !DIExpression()), !dbg !287 + %"$$BoolUtils.andb_151_1404" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_151", align 8 + %"$$BoolUtils.andb_151_fptr_1405" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_151_1404", 0 + %"$$BoolUtils.andb_151_envptr_1406" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_151_1404", 1 + %"$$test__77_1407" = load %TName_Bool*, %TName_Bool** %"$test__77", align 8 + %"$$BoolUtils.andb_151_call_1408" = call %TName_Bool* %"$$BoolUtils.andb_151_fptr_1405"(i8* %"$$BoolUtils.andb_151_envptr_1406", %TName_Bool* %"$$test__77_1407"), !dbg !287 + store %TName_Bool* %"$$BoolUtils.andb_151_call_1408", %TName_Bool** %"$BoolUtils.andb_152", align 8, !dbg !287 + %"$$BoolUtils.andb_152_1409" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_152", align 8 + store %TName_Bool* %"$$BoolUtils.andb_152_1409", %TName_Bool** %"$test_78", align 8, !dbg !287 + %"$gasrem_1410" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1411" = icmp ugt i64 1, %"$gasrem_1410" + br i1 %"$gascmp_1411", label %"$out_of_gas_1412", label %"$have_gas_1413" + +"$out_of_gas_1412": ; preds = %"$have_gas_1397" + call void @_out_of_gas() + br label %"$have_gas_1413" + +"$have_gas_1413": ; preds = %"$out_of_gas_1412", %"$have_gas_1397" + %"$consume_1414" = sub i64 %"$gasrem_1410", 1 + store i64 %"$consume_1414", i64* @_gasrem, align 8 %"$arg1_79" = alloca %Uint256, align 8 - %"$gasrem_1413" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1414" = icmp ugt i64 1, %"$gasrem_1413" - br i1 %"$gascmp_1414", label %"$out_of_gas_1415", label %"$have_gas_1416" + call void @llvm.dbg.declare(metadata %Uint256* %"$arg1_79", metadata !289, metadata !DIExpression()), !dbg !290 + %"$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" -"$out_of_gas_1415": ; preds = %"$have_gas_1411" +"$out_of_gas_1417": ; preds = %"$have_gas_1413" call void @_out_of_gas() - br label %"$have_gas_1416" + br label %"$have_gas_1418" -"$have_gas_1416": ; preds = %"$out_of_gas_1415", %"$have_gas_1411" - %"$consume_1417" = sub i64 %"$gasrem_1413", 1 - store i64 %"$consume_1417", i64* @_gasrem, align 8 - store %Uint256 { i256 1 }, %Uint256* %"$arg1_79", align 8, !dbg !101 - %"$gasrem_1418" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1419" = icmp ugt i64 1, %"$gasrem_1418" - br i1 %"$gascmp_1419", label %"$out_of_gas_1420", label %"$have_gas_1421" +"$have_gas_1418": ; preds = %"$out_of_gas_1417", %"$have_gas_1413" + %"$consume_1419" = sub i64 %"$gasrem_1415", 1 + store i64 %"$consume_1419", i64* @_gasrem, align 8 + store %Uint256 { i256 1 }, %Uint256* %"$arg1_79", align 8, !dbg !291 + %"$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" -"$out_of_gas_1420": ; preds = %"$have_gas_1416" +"$out_of_gas_1422": ; preds = %"$have_gas_1418" call void @_out_of_gas() - br label %"$have_gas_1421" + br label %"$have_gas_1423" -"$have_gas_1421": ; preds = %"$out_of_gas_1420", %"$have_gas_1416" - %"$consume_1422" = sub i64 %"$gasrem_1418", 1 - store i64 %"$consume_1422", i64* @_gasrem, align 8 +"$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 %"$arg2_80" = alloca %Uint256, align 8 - %"$gasrem_1423" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1424" = icmp ugt i64 1, %"$gasrem_1423" - br i1 %"$gascmp_1424", label %"$out_of_gas_1425", label %"$have_gas_1426" + call void @llvm.dbg.declare(metadata %Uint256* %"$arg2_80", metadata !292, metadata !DIExpression()), !dbg !293 + %"$gasrem_1425" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1426" = icmp ugt i64 1, %"$gasrem_1425" + br i1 %"$gascmp_1426", label %"$out_of_gas_1427", label %"$have_gas_1428" -"$out_of_gas_1425": ; preds = %"$have_gas_1421" +"$out_of_gas_1427": ; preds = %"$have_gas_1423" call void @_out_of_gas() - br label %"$have_gas_1426" + br label %"$have_gas_1428" -"$have_gas_1426": ; preds = %"$out_of_gas_1425", %"$have_gas_1421" - %"$consume_1427" = sub i64 %"$gasrem_1423", 1 - store i64 %"$consume_1427", i64* @_gasrem, align 8 - store %Uint256 { i256 -1 }, %Uint256* %"$arg2_80", align 8, !dbg !102 - %"$gasrem_1428" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1429" = icmp ugt i64 1, %"$gasrem_1428" - br i1 %"$gascmp_1429", label %"$out_of_gas_1430", label %"$have_gas_1431" +"$have_gas_1428": ; preds = %"$out_of_gas_1427", %"$have_gas_1423" + %"$consume_1429" = sub i64 %"$gasrem_1425", 1 + store i64 %"$consume_1429", i64* @_gasrem, align 8 + store %Uint256 { i256 -1 }, %Uint256* %"$arg2_80", align 8, !dbg !294 + %"$gasrem_1430" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1431" = icmp ugt i64 1, %"$gasrem_1430" + br i1 %"$gascmp_1431", label %"$out_of_gas_1432", label %"$have_gas_1433" -"$out_of_gas_1430": ; preds = %"$have_gas_1426" +"$out_of_gas_1432": ; preds = %"$have_gas_1428" call void @_out_of_gas() - br label %"$have_gas_1431" + br label %"$have_gas_1433" -"$have_gas_1431": ; preds = %"$out_of_gas_1430", %"$have_gas_1426" - %"$consume_1432" = sub i64 %"$gasrem_1428", 1 - store i64 %"$consume_1432", i64* @_gasrem, align 8 +"$have_gas_1433": ; preds = %"$out_of_gas_1432", %"$have_gas_1428" + %"$consume_1434" = sub i64 %"$gasrem_1430", 1 + store i64 %"$consume_1434", i64* @_gasrem, align 8 %"$test_84" = alloca %TName_Bool*, align 8 - %"$gasrem_1433" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1434" = icmp ugt i64 1, %"$gasrem_1433" - br i1 %"$gascmp_1434", label %"$out_of_gas_1435", label %"$have_gas_1436" + call void @llvm.dbg.declare(metadata %TName_Bool** %"$test_84", metadata !295, metadata !DIExpression()), !dbg !296 + %"$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" -"$out_of_gas_1435": ; preds = %"$have_gas_1431" +"$out_of_gas_1437": ; preds = %"$have_gas_1433" call void @_out_of_gas() - br label %"$have_gas_1436" + br label %"$have_gas_1438" -"$have_gas_1436": ; preds = %"$out_of_gas_1435", %"$have_gas_1431" - %"$consume_1437" = sub i64 %"$gasrem_1433", 1 - store i64 %"$consume_1437", i64* @_gasrem, align 8 +"$have_gas_1438": ; preds = %"$out_of_gas_1437", %"$have_gas_1433" + %"$consume_1439" = sub i64 %"$gasrem_1435", 1 + store i64 %"$consume_1439", i64* @_gasrem, align 8 %"$res_81" = alloca %Uint256, align 8 - %"$gasrem_1439" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1440" = icmp ugt i64 80, %"$gasrem_1439" - br i1 %"$gascmp_1440", label %"$out_of_gas_1441", label %"$have_gas_1442" - -"$out_of_gas_1441": ; preds = %"$have_gas_1436" - call void @_out_of_gas() - br label %"$have_gas_1442" - -"$have_gas_1442": ; preds = %"$out_of_gas_1441", %"$have_gas_1436" - %"$consume_1443" = sub i64 %"$gasrem_1439", 80 - store i64 %"$consume_1443", i64* @_gasrem, align 8 - %"$execptr_load_1444" = load i8*, i8** @_execptr, align 8 - %"$mul_$arg1_79_1445" = alloca %Uint256, align 8 - %"$$arg1_79_1446" = load %Uint256, %Uint256* %"$arg1_79", align 8 - store %Uint256 %"$$arg1_79_1446", %Uint256* %"$mul_$arg1_79_1445", align 8 - %"$mul_$arg2_80_1447" = alloca %Uint256, align 8 - %"$$arg2_80_1448" = load %Uint256, %Uint256* %"$arg2_80", align 8 - store %Uint256 %"$$arg2_80_1448", %Uint256* %"$mul_$arg2_80_1447", align 8 - %"$mul_call_1449" = call %Uint256* @_mul_Uint256(i8* %"$execptr_load_1444", %Uint256* %"$mul_$arg1_79_1445", %Uint256* %"$mul_$arg2_80_1447"), !dbg !103 - %"$mul_1451" = load %Uint256, %Uint256* %"$mul_call_1449", align 8 - store %Uint256 %"$mul_1451", %Uint256* %"$res_81", align 8, !dbg !103 - %"$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_1454": ; preds = %"$have_gas_1442" - call void @_out_of_gas() - br label %"$have_gas_1455" - -"$have_gas_1455": ; preds = %"$out_of_gas_1454", %"$have_gas_1442" - %"$consume_1456" = sub i64 %"$gasrem_1452", 1 - store i64 %"$consume_1456", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %Uint256* %"$res_81", metadata !297, metadata !DIExpression()), !dbg !298 + %"$gasrem_1441" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1442" = icmp ugt i64 80, %"$gasrem_1441" + br i1 %"$gascmp_1442", label %"$out_of_gas_1443", label %"$have_gas_1444" + +"$out_of_gas_1443": ; preds = %"$have_gas_1438" + call void @_out_of_gas() + br label %"$have_gas_1444" + +"$have_gas_1444": ; preds = %"$out_of_gas_1443", %"$have_gas_1438" + %"$consume_1445" = sub i64 %"$gasrem_1441", 80 + store i64 %"$consume_1445", i64* @_gasrem, align 8 + %"$execptr_load_1446" = load i8*, i8** @_execptr, align 8 + %"$mul_$arg1_79_1447" = alloca %Uint256, align 8 + %"$$arg1_79_1448" = load %Uint256, %Uint256* %"$arg1_79", align 8 + store %Uint256 %"$$arg1_79_1448", %Uint256* %"$mul_$arg1_79_1447", align 8 + %"$mul_$arg2_80_1449" = alloca %Uint256, align 8 + %"$$arg2_80_1450" = load %Uint256, %Uint256* %"$arg2_80", align 8 + store %Uint256 %"$$arg2_80_1450", %Uint256* %"$mul_$arg2_80_1449", align 8 + %"$mul_call_1451" = call %Uint256* @_mul_Uint256(i8* %"$execptr_load_1446", %Uint256* %"$mul_$arg1_79_1447", %Uint256* %"$mul_$arg2_80_1449"), !dbg !299 + %"$mul_1453" = load %Uint256, %Uint256* %"$mul_call_1451", align 8 + store %Uint256 %"$mul_1453", %Uint256* %"$res_81", align 8, !dbg !299 + %"$gasrem_1454" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1455" = icmp ugt i64 1, %"$gasrem_1454" + br i1 %"$gascmp_1455", label %"$out_of_gas_1456", label %"$have_gas_1457" + +"$out_of_gas_1456": ; preds = %"$have_gas_1444" + call void @_out_of_gas() + br label %"$have_gas_1457" + +"$have_gas_1457": ; preds = %"$out_of_gas_1456", %"$have_gas_1444" + %"$consume_1458" = sub i64 %"$gasrem_1454", 1 + store i64 %"$consume_1458", i64* @_gasrem, align 8 %"$res__82" = alloca %Uint256, 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" + call void @llvm.dbg.declare(metadata %Uint256* %"$res__82", metadata !300, metadata !DIExpression()), !dbg !301 + %"$gasrem_1459" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1460" = icmp ugt i64 1, %"$gasrem_1459" + br i1 %"$gascmp_1460", label %"$out_of_gas_1461", label %"$have_gas_1462" -"$out_of_gas_1459": ; preds = %"$have_gas_1455" +"$out_of_gas_1461": ; preds = %"$have_gas_1457" call void @_out_of_gas() - br label %"$have_gas_1460" + br label %"$have_gas_1462" -"$have_gas_1460": ; preds = %"$out_of_gas_1459", %"$have_gas_1455" - %"$consume_1461" = sub i64 %"$gasrem_1457", 1 - store i64 %"$consume_1461", i64* @_gasrem, align 8 - store %Uint256 { i256 -1 }, %Uint256* %"$res__82", align 8, !dbg !104 - %"$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" +"$have_gas_1462": ; preds = %"$out_of_gas_1461", %"$have_gas_1457" + %"$consume_1463" = sub i64 %"$gasrem_1459", 1 + store i64 %"$consume_1463", i64* @_gasrem, align 8 + store %Uint256 { i256 -1 }, %Uint256* %"$res__82", align 8, !dbg !302 + %"$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_1464": ; preds = %"$have_gas_1460" +"$out_of_gas_1466": ; preds = %"$have_gas_1462" call void @_out_of_gas() - br label %"$have_gas_1465" + br label %"$have_gas_1467" -"$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 +"$have_gas_1467": ; preds = %"$out_of_gas_1466", %"$have_gas_1462" + %"$consume_1468" = sub i64 %"$gasrem_1464", 1 + store i64 %"$consume_1468", i64* @_gasrem, align 8 %"$test__83" = alloca %TName_Bool*, align 8 - %"$gasrem_1468" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1469" = icmp ugt i64 16, %"$gasrem_1468" - br i1 %"$gascmp_1469", label %"$out_of_gas_1470", label %"$have_gas_1471" - -"$out_of_gas_1470": ; preds = %"$have_gas_1465" - call void @_out_of_gas() - br label %"$have_gas_1471" - -"$have_gas_1471": ; preds = %"$out_of_gas_1470", %"$have_gas_1465" - %"$consume_1472" = sub i64 %"$gasrem_1468", 16 - store i64 %"$consume_1472", i64* @_gasrem, align 8 - %"$execptr_load_1473" = load i8*, i8** @_execptr, align 8 - %"$eq_$res_81_1474" = alloca %Uint256, align 8 - %"$$res_81_1475" = load %Uint256, %Uint256* %"$res_81", align 8 - store %Uint256 %"$$res_81_1475", %Uint256* %"$eq_$res_81_1474", align 8 - %"$eq_$res__82_1476" = alloca %Uint256, align 8 - %"$$res__82_1477" = load %Uint256, %Uint256* %"$res__82", align 8 - store %Uint256 %"$$res__82_1477", %Uint256* %"$eq_$res__82_1476", align 8 - %"$eq_call_1478" = call %TName_Bool* @_eq_Uint256(i8* %"$execptr_load_1473", %Uint256* %"$eq_$res_81_1474", %Uint256* %"$eq_$res__82_1476"), !dbg !105 - store %TName_Bool* %"$eq_call_1478", %TName_Bool** %"$test__83", align 8, !dbg !105 - %"$gasrem_1480" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1481" = icmp ugt i64 1, %"$gasrem_1480" - br i1 %"$gascmp_1481", label %"$out_of_gas_1482", label %"$have_gas_1483" - -"$out_of_gas_1482": ; preds = %"$have_gas_1471" - call void @_out_of_gas() - br label %"$have_gas_1483" - -"$have_gas_1483": ; preds = %"$out_of_gas_1482", %"$have_gas_1471" - %"$consume_1484" = sub i64 %"$gasrem_1480", 1 - store i64 %"$consume_1484", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$test__83", metadata !303, metadata !DIExpression()), !dbg !304 + %"$gasrem_1470" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1471" = icmp ugt i64 16, %"$gasrem_1470" + br i1 %"$gascmp_1471", label %"$out_of_gas_1472", label %"$have_gas_1473" + +"$out_of_gas_1472": ; preds = %"$have_gas_1467" + call void @_out_of_gas() + br label %"$have_gas_1473" + +"$have_gas_1473": ; preds = %"$out_of_gas_1472", %"$have_gas_1467" + %"$consume_1474" = sub i64 %"$gasrem_1470", 16 + store i64 %"$consume_1474", i64* @_gasrem, align 8 + %"$execptr_load_1475" = load i8*, i8** @_execptr, align 8 + %"$eq_$res_81_1476" = alloca %Uint256, align 8 + %"$$res_81_1477" = load %Uint256, %Uint256* %"$res_81", align 8 + store %Uint256 %"$$res_81_1477", %Uint256* %"$eq_$res_81_1476", align 8 + %"$eq_$res__82_1478" = alloca %Uint256, align 8 + %"$$res__82_1479" = load %Uint256, %Uint256* %"$res__82", align 8 + store %Uint256 %"$$res__82_1479", %Uint256* %"$eq_$res__82_1478", align 8 + %"$eq_call_1480" = call %TName_Bool* @_eq_Uint256(i8* %"$execptr_load_1475", %Uint256* %"$eq_$res_81_1476", %Uint256* %"$eq_$res__82_1478"), !dbg !305 + store %TName_Bool* %"$eq_call_1480", %TName_Bool** %"$test__83", align 8, !dbg !305 + %"$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 = %"$have_gas_1473" + call void @_out_of_gas() + br label %"$have_gas_1485" + +"$have_gas_1485": ; preds = %"$out_of_gas_1484", %"$have_gas_1473" + %"$consume_1486" = sub i64 %"$gasrem_1482", 1 + store i64 %"$consume_1486", i64* @_gasrem, align 8 %"$BoolUtils.andb_153" = alloca { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, align 8 - %"$BoolUtils.andb_1485" = 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_1486" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_1485", 0 - %"$BoolUtils.andb_envptr_1487" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_1485", 1 - %"$$test_78_1488" = load %TName_Bool*, %TName_Bool** %"$test_78", align 8 - %"$BoolUtils.andb_call_1489" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_1486"(i8* %"$BoolUtils.andb_envptr_1487", %TName_Bool* %"$$test_78_1488"), !dbg !106 - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_1489", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_153", align 8, !dbg !106 + %"$BoolUtils.andb_1487" = 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_1488" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_1487", 0 + %"$BoolUtils.andb_envptr_1489" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_1487", 1 + %"$$test_78_1490" = load %TName_Bool*, %TName_Bool** %"$test_78", align 8 + %"$BoolUtils.andb_call_1491" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_1488"(i8* %"$BoolUtils.andb_envptr_1489", %TName_Bool* %"$$test_78_1490"), !dbg !306 + store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_1491", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_153", align 8, !dbg !306 %"$BoolUtils.andb_154" = alloca %TName_Bool*, align 8 - %"$$BoolUtils.andb_153_1490" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_153", align 8 - %"$$BoolUtils.andb_153_fptr_1491" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_153_1490", 0 - %"$$BoolUtils.andb_153_envptr_1492" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_153_1490", 1 - %"$$test__83_1493" = load %TName_Bool*, %TName_Bool** %"$test__83", align 8 - %"$$BoolUtils.andb_153_call_1494" = call %TName_Bool* %"$$BoolUtils.andb_153_fptr_1491"(i8* %"$$BoolUtils.andb_153_envptr_1492", %TName_Bool* %"$$test__83_1493"), !dbg !106 - store %TName_Bool* %"$$BoolUtils.andb_153_call_1494", %TName_Bool** %"$BoolUtils.andb_154", align 8, !dbg !106 - %"$$BoolUtils.andb_154_1495" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_154", align 8 - store %TName_Bool* %"$$BoolUtils.andb_154_1495", %TName_Bool** %"$test_84", align 8, !dbg !106 - %"$gasrem_1496" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1497" = icmp ugt i64 1, %"$gasrem_1496" - br i1 %"$gascmp_1497", label %"$out_of_gas_1498", label %"$have_gas_1499" - -"$out_of_gas_1498": ; preds = %"$have_gas_1483" - call void @_out_of_gas() - br label %"$have_gas_1499" - -"$have_gas_1499": ; preds = %"$out_of_gas_1498", %"$have_gas_1483" - %"$consume_1500" = sub i64 %"$gasrem_1496", 1 - store i64 %"$consume_1500", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$BoolUtils.andb_154", metadata !307, metadata !DIExpression()), !dbg !306 + %"$$BoolUtils.andb_153_1492" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_153", align 8 + %"$$BoolUtils.andb_153_fptr_1493" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_153_1492", 0 + %"$$BoolUtils.andb_153_envptr_1494" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_153_1492", 1 + %"$$test__83_1495" = load %TName_Bool*, %TName_Bool** %"$test__83", align 8 + %"$$BoolUtils.andb_153_call_1496" = call %TName_Bool* %"$$BoolUtils.andb_153_fptr_1493"(i8* %"$$BoolUtils.andb_153_envptr_1494", %TName_Bool* %"$$test__83_1495"), !dbg !306 + store %TName_Bool* %"$$BoolUtils.andb_153_call_1496", %TName_Bool** %"$BoolUtils.andb_154", align 8, !dbg !306 + %"$$BoolUtils.andb_154_1497" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_154", align 8 + store %TName_Bool* %"$$BoolUtils.andb_154_1497", %TName_Bool** %"$test_84", align 8, !dbg !306 + %"$gasrem_1498" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1499" = icmp ugt i64 1, %"$gasrem_1498" + br i1 %"$gascmp_1499", label %"$out_of_gas_1500", label %"$have_gas_1501" + +"$out_of_gas_1500": ; preds = %"$have_gas_1485" + call void @_out_of_gas() + br label %"$have_gas_1501" + +"$have_gas_1501": ; preds = %"$out_of_gas_1500", %"$have_gas_1485" + %"$consume_1502" = sub i64 %"$gasrem_1498", 1 + store i64 %"$consume_1502", i64* @_gasrem, align 8 %"$arg1_85" = alloca %Uint256, align 8 - %"$gasrem_1501" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1502" = icmp ugt i64 1, %"$gasrem_1501" - br i1 %"$gascmp_1502", label %"$out_of_gas_1503", label %"$have_gas_1504" + call void @llvm.dbg.declare(metadata %Uint256* %"$arg1_85", metadata !308, metadata !DIExpression()), !dbg !309 + %"$gasrem_1503" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1504" = icmp ugt i64 1, %"$gasrem_1503" + br i1 %"$gascmp_1504", label %"$out_of_gas_1505", label %"$have_gas_1506" -"$out_of_gas_1503": ; preds = %"$have_gas_1499" +"$out_of_gas_1505": ; preds = %"$have_gas_1501" call void @_out_of_gas() - br label %"$have_gas_1504" + br label %"$have_gas_1506" -"$have_gas_1504": ; preds = %"$out_of_gas_1503", %"$have_gas_1499" - %"$consume_1505" = sub i64 %"$gasrem_1501", 1 - store i64 %"$consume_1505", i64* @_gasrem, align 8 - store %Uint256 { i256 2 }, %Uint256* %"$arg1_85", align 8, !dbg !107 - %"$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" +"$have_gas_1506": ; preds = %"$out_of_gas_1505", %"$have_gas_1501" + %"$consume_1507" = sub i64 %"$gasrem_1503", 1 + store i64 %"$consume_1507", i64* @_gasrem, align 8 + store %Uint256 { i256 2 }, %Uint256* %"$arg1_85", align 8, !dbg !310 + %"$gasrem_1508" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1509" = icmp ugt i64 1, %"$gasrem_1508" + br i1 %"$gascmp_1509", label %"$out_of_gas_1510", label %"$have_gas_1511" -"$out_of_gas_1508": ; preds = %"$have_gas_1504" +"$out_of_gas_1510": ; preds = %"$have_gas_1506" call void @_out_of_gas() - br label %"$have_gas_1509" + br label %"$have_gas_1511" -"$have_gas_1509": ; preds = %"$out_of_gas_1508", %"$have_gas_1504" - %"$consume_1510" = sub i64 %"$gasrem_1506", 1 - store i64 %"$consume_1510", i64* @_gasrem, align 8 +"$have_gas_1511": ; preds = %"$out_of_gas_1510", %"$have_gas_1506" + %"$consume_1512" = sub i64 %"$gasrem_1508", 1 + store i64 %"$consume_1512", i64* @_gasrem, align 8 %"$arg2_86" = alloca %Uint256, 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" + call void @llvm.dbg.declare(metadata %Uint256* %"$arg2_86", metadata !311, metadata !DIExpression()), !dbg !312 + %"$gasrem_1513" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1514" = icmp ugt i64 1, %"$gasrem_1513" + br i1 %"$gascmp_1514", label %"$out_of_gas_1515", label %"$have_gas_1516" -"$out_of_gas_1513": ; preds = %"$have_gas_1509" +"$out_of_gas_1515": ; preds = %"$have_gas_1511" call void @_out_of_gas() - br label %"$have_gas_1514" + br label %"$have_gas_1516" -"$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 %Uint256 { i256 57896044618658097711785492504343953926634992332820282019728792003956564819967 }, %Uint256* %"$arg2_86", align 8, !dbg !108 - %"$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" +"$have_gas_1516": ; preds = %"$out_of_gas_1515", %"$have_gas_1511" + %"$consume_1517" = sub i64 %"$gasrem_1513", 1 + store i64 %"$consume_1517", i64* @_gasrem, align 8 + store %Uint256 { i256 57896044618658097711785492504343953926634992332820282019728792003956564819967 }, %Uint256* %"$arg2_86", align 8, !dbg !313 + %"$gasrem_1518" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1519" = icmp ugt i64 1, %"$gasrem_1518" + br i1 %"$gascmp_1519", label %"$out_of_gas_1520", label %"$have_gas_1521" -"$out_of_gas_1518": ; preds = %"$have_gas_1514" +"$out_of_gas_1520": ; preds = %"$have_gas_1516" call void @_out_of_gas() - br label %"$have_gas_1519" + br label %"$have_gas_1521" -"$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 +"$have_gas_1521": ; preds = %"$out_of_gas_1520", %"$have_gas_1516" + %"$consume_1522" = sub i64 %"$gasrem_1518", 1 + store i64 %"$consume_1522", i64* @_gasrem, align 8 %"$test_90" = alloca %TName_Bool*, align 8 - %"$gasrem_1521" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1522" = icmp ugt i64 1, %"$gasrem_1521" - br i1 %"$gascmp_1522", label %"$out_of_gas_1523", label %"$have_gas_1524" + call void @llvm.dbg.declare(metadata %TName_Bool** %"$test_90", metadata !314, metadata !DIExpression()), !dbg !315 + %"$gasrem_1523" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1524" = icmp ugt i64 1, %"$gasrem_1523" + br i1 %"$gascmp_1524", label %"$out_of_gas_1525", label %"$have_gas_1526" -"$out_of_gas_1523": ; preds = %"$have_gas_1519" +"$out_of_gas_1525": ; preds = %"$have_gas_1521" call void @_out_of_gas() - br label %"$have_gas_1524" + br label %"$have_gas_1526" -"$have_gas_1524": ; preds = %"$out_of_gas_1523", %"$have_gas_1519" - %"$consume_1525" = sub i64 %"$gasrem_1521", 1 - store i64 %"$consume_1525", i64* @_gasrem, align 8 +"$have_gas_1526": ; preds = %"$out_of_gas_1525", %"$have_gas_1521" + %"$consume_1527" = sub i64 %"$gasrem_1523", 1 + store i64 %"$consume_1527", i64* @_gasrem, align 8 %"$res_87" = alloca %Uint256, align 8 - %"$gasrem_1527" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1528" = icmp ugt i64 80, %"$gasrem_1527" - br i1 %"$gascmp_1528", label %"$out_of_gas_1529", label %"$have_gas_1530" - -"$out_of_gas_1529": ; preds = %"$have_gas_1524" - call void @_out_of_gas() - br label %"$have_gas_1530" - -"$have_gas_1530": ; preds = %"$out_of_gas_1529", %"$have_gas_1524" - %"$consume_1531" = sub i64 %"$gasrem_1527", 80 - store i64 %"$consume_1531", i64* @_gasrem, align 8 - %"$execptr_load_1532" = load i8*, i8** @_execptr, align 8 - %"$mul_$arg1_85_1533" = alloca %Uint256, align 8 - %"$$arg1_85_1534" = load %Uint256, %Uint256* %"$arg1_85", align 8 - store %Uint256 %"$$arg1_85_1534", %Uint256* %"$mul_$arg1_85_1533", align 8 - %"$mul_$arg2_86_1535" = alloca %Uint256, align 8 - %"$$arg2_86_1536" = load %Uint256, %Uint256* %"$arg2_86", align 8 - store %Uint256 %"$$arg2_86_1536", %Uint256* %"$mul_$arg2_86_1535", align 8 - %"$mul_call_1537" = call %Uint256* @_mul_Uint256(i8* %"$execptr_load_1532", %Uint256* %"$mul_$arg1_85_1533", %Uint256* %"$mul_$arg2_86_1535"), !dbg !109 - %"$mul_1539" = load %Uint256, %Uint256* %"$mul_call_1537", align 8 - store %Uint256 %"$mul_1539", %Uint256* %"$res_87", align 8, !dbg !109 - %"$gasrem_1540" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1541" = icmp ugt i64 1, %"$gasrem_1540" - br i1 %"$gascmp_1541", label %"$out_of_gas_1542", label %"$have_gas_1543" - -"$out_of_gas_1542": ; preds = %"$have_gas_1530" - call void @_out_of_gas() - br label %"$have_gas_1543" - -"$have_gas_1543": ; preds = %"$out_of_gas_1542", %"$have_gas_1530" - %"$consume_1544" = sub i64 %"$gasrem_1540", 1 - store i64 %"$consume_1544", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %Uint256* %"$res_87", metadata !316, metadata !DIExpression()), !dbg !317 + %"$gasrem_1529" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1530" = icmp ugt i64 80, %"$gasrem_1529" + br i1 %"$gascmp_1530", label %"$out_of_gas_1531", label %"$have_gas_1532" + +"$out_of_gas_1531": ; preds = %"$have_gas_1526" + call void @_out_of_gas() + br label %"$have_gas_1532" + +"$have_gas_1532": ; preds = %"$out_of_gas_1531", %"$have_gas_1526" + %"$consume_1533" = sub i64 %"$gasrem_1529", 80 + store i64 %"$consume_1533", i64* @_gasrem, align 8 + %"$execptr_load_1534" = load i8*, i8** @_execptr, align 8 + %"$mul_$arg1_85_1535" = alloca %Uint256, align 8 + %"$$arg1_85_1536" = load %Uint256, %Uint256* %"$arg1_85", align 8 + store %Uint256 %"$$arg1_85_1536", %Uint256* %"$mul_$arg1_85_1535", align 8 + %"$mul_$arg2_86_1537" = alloca %Uint256, align 8 + %"$$arg2_86_1538" = load %Uint256, %Uint256* %"$arg2_86", align 8 + store %Uint256 %"$$arg2_86_1538", %Uint256* %"$mul_$arg2_86_1537", align 8 + %"$mul_call_1539" = call %Uint256* @_mul_Uint256(i8* %"$execptr_load_1534", %Uint256* %"$mul_$arg1_85_1535", %Uint256* %"$mul_$arg2_86_1537"), !dbg !318 + %"$mul_1541" = load %Uint256, %Uint256* %"$mul_call_1539", align 8 + store %Uint256 %"$mul_1541", %Uint256* %"$res_87", align 8, !dbg !318 + %"$gasrem_1542" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1543" = icmp ugt i64 1, %"$gasrem_1542" + br i1 %"$gascmp_1543", label %"$out_of_gas_1544", label %"$have_gas_1545" + +"$out_of_gas_1544": ; preds = %"$have_gas_1532" + call void @_out_of_gas() + br label %"$have_gas_1545" + +"$have_gas_1545": ; preds = %"$out_of_gas_1544", %"$have_gas_1532" + %"$consume_1546" = sub i64 %"$gasrem_1542", 1 + store i64 %"$consume_1546", i64* @_gasrem, align 8 %"$res__88" = alloca %Uint256, align 8 - %"$gasrem_1545" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1546" = icmp ugt i64 1, %"$gasrem_1545" - br i1 %"$gascmp_1546", label %"$out_of_gas_1547", label %"$have_gas_1548" + call void @llvm.dbg.declare(metadata %Uint256* %"$res__88", metadata !319, metadata !DIExpression()), !dbg !320 + %"$gasrem_1547" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1548" = icmp ugt i64 1, %"$gasrem_1547" + br i1 %"$gascmp_1548", label %"$out_of_gas_1549", label %"$have_gas_1550" -"$out_of_gas_1547": ; preds = %"$have_gas_1543" +"$out_of_gas_1549": ; preds = %"$have_gas_1545" call void @_out_of_gas() - br label %"$have_gas_1548" + br label %"$have_gas_1550" -"$have_gas_1548": ; preds = %"$out_of_gas_1547", %"$have_gas_1543" - %"$consume_1549" = sub i64 %"$gasrem_1545", 1 - store i64 %"$consume_1549", i64* @_gasrem, align 8 - store %Uint256 { i256 -2 }, %Uint256* %"$res__88", align 8, !dbg !110 - %"$gasrem_1550" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1551" = icmp ugt i64 1, %"$gasrem_1550" - br i1 %"$gascmp_1551", label %"$out_of_gas_1552", label %"$have_gas_1553" +"$have_gas_1550": ; preds = %"$out_of_gas_1549", %"$have_gas_1545" + %"$consume_1551" = sub i64 %"$gasrem_1547", 1 + store i64 %"$consume_1551", i64* @_gasrem, align 8 + store %Uint256 { i256 -2 }, %Uint256* %"$res__88", align 8, !dbg !321 + %"$gasrem_1552" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1553" = icmp ugt i64 1, %"$gasrem_1552" + br i1 %"$gascmp_1553", label %"$out_of_gas_1554", label %"$have_gas_1555" -"$out_of_gas_1552": ; preds = %"$have_gas_1548" +"$out_of_gas_1554": ; preds = %"$have_gas_1550" call void @_out_of_gas() - br label %"$have_gas_1553" + br label %"$have_gas_1555" -"$have_gas_1553": ; preds = %"$out_of_gas_1552", %"$have_gas_1548" - %"$consume_1554" = sub i64 %"$gasrem_1550", 1 - store i64 %"$consume_1554", i64* @_gasrem, align 8 +"$have_gas_1555": ; preds = %"$out_of_gas_1554", %"$have_gas_1550" + %"$consume_1556" = sub i64 %"$gasrem_1552", 1 + store i64 %"$consume_1556", i64* @_gasrem, align 8 %"$test__89" = alloca %TName_Bool*, align 8 - %"$gasrem_1556" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1557" = icmp ugt i64 16, %"$gasrem_1556" - br i1 %"$gascmp_1557", label %"$out_of_gas_1558", label %"$have_gas_1559" - -"$out_of_gas_1558": ; preds = %"$have_gas_1553" - call void @_out_of_gas() - br label %"$have_gas_1559" - -"$have_gas_1559": ; preds = %"$out_of_gas_1558", %"$have_gas_1553" - %"$consume_1560" = sub i64 %"$gasrem_1556", 16 - store i64 %"$consume_1560", i64* @_gasrem, align 8 - %"$execptr_load_1561" = load i8*, i8** @_execptr, align 8 - %"$eq_$res_87_1562" = alloca %Uint256, align 8 - %"$$res_87_1563" = load %Uint256, %Uint256* %"$res_87", align 8 - store %Uint256 %"$$res_87_1563", %Uint256* %"$eq_$res_87_1562", align 8 - %"$eq_$res__88_1564" = alloca %Uint256, align 8 - %"$$res__88_1565" = load %Uint256, %Uint256* %"$res__88", align 8 - store %Uint256 %"$$res__88_1565", %Uint256* %"$eq_$res__88_1564", align 8 - %"$eq_call_1566" = call %TName_Bool* @_eq_Uint256(i8* %"$execptr_load_1561", %Uint256* %"$eq_$res_87_1562", %Uint256* %"$eq_$res__88_1564"), !dbg !111 - store %TName_Bool* %"$eq_call_1566", %TName_Bool** %"$test__89", align 8, !dbg !111 - %"$gasrem_1568" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1569" = icmp ugt i64 1, %"$gasrem_1568" - br i1 %"$gascmp_1569", label %"$out_of_gas_1570", label %"$have_gas_1571" - -"$out_of_gas_1570": ; preds = %"$have_gas_1559" - call void @_out_of_gas() - br label %"$have_gas_1571" - -"$have_gas_1571": ; preds = %"$out_of_gas_1570", %"$have_gas_1559" - %"$consume_1572" = sub i64 %"$gasrem_1568", 1 - store i64 %"$consume_1572", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$test__89", metadata !322, metadata !DIExpression()), !dbg !323 + %"$gasrem_1558" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1559" = icmp ugt i64 16, %"$gasrem_1558" + br i1 %"$gascmp_1559", label %"$out_of_gas_1560", label %"$have_gas_1561" + +"$out_of_gas_1560": ; preds = %"$have_gas_1555" + call void @_out_of_gas() + br label %"$have_gas_1561" + +"$have_gas_1561": ; preds = %"$out_of_gas_1560", %"$have_gas_1555" + %"$consume_1562" = sub i64 %"$gasrem_1558", 16 + store i64 %"$consume_1562", i64* @_gasrem, align 8 + %"$execptr_load_1563" = load i8*, i8** @_execptr, align 8 + %"$eq_$res_87_1564" = alloca %Uint256, align 8 + %"$$res_87_1565" = load %Uint256, %Uint256* %"$res_87", align 8 + store %Uint256 %"$$res_87_1565", %Uint256* %"$eq_$res_87_1564", align 8 + %"$eq_$res__88_1566" = alloca %Uint256, align 8 + %"$$res__88_1567" = load %Uint256, %Uint256* %"$res__88", align 8 + store %Uint256 %"$$res__88_1567", %Uint256* %"$eq_$res__88_1566", align 8 + %"$eq_call_1568" = call %TName_Bool* @_eq_Uint256(i8* %"$execptr_load_1563", %Uint256* %"$eq_$res_87_1564", %Uint256* %"$eq_$res__88_1566"), !dbg !324 + store %TName_Bool* %"$eq_call_1568", %TName_Bool** %"$test__89", align 8, !dbg !324 + %"$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_1561" + call void @_out_of_gas() + br label %"$have_gas_1573" + +"$have_gas_1573": ; preds = %"$out_of_gas_1572", %"$have_gas_1561" + %"$consume_1574" = sub i64 %"$gasrem_1570", 1 + store i64 %"$consume_1574", i64* @_gasrem, align 8 %"$BoolUtils.andb_155" = alloca { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, align 8 - %"$BoolUtils.andb_1573" = 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_1574" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_1573", 0 - %"$BoolUtils.andb_envptr_1575" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_1573", 1 - %"$$test_84_1576" = load %TName_Bool*, %TName_Bool** %"$test_84", align 8 - %"$BoolUtils.andb_call_1577" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_1574"(i8* %"$BoolUtils.andb_envptr_1575", %TName_Bool* %"$$test_84_1576"), !dbg !112 - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_1577", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_155", align 8, !dbg !112 + %"$BoolUtils.andb_1575" = 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_1576" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_1575", 0 + %"$BoolUtils.andb_envptr_1577" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_1575", 1 + %"$$test_84_1578" = load %TName_Bool*, %TName_Bool** %"$test_84", align 8 + %"$BoolUtils.andb_call_1579" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_1576"(i8* %"$BoolUtils.andb_envptr_1577", %TName_Bool* %"$$test_84_1578"), !dbg !325 + store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_1579", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_155", align 8, !dbg !325 %"$BoolUtils.andb_156" = alloca %TName_Bool*, align 8 - %"$$BoolUtils.andb_155_1578" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_155", align 8 - %"$$BoolUtils.andb_155_fptr_1579" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_155_1578", 0 - %"$$BoolUtils.andb_155_envptr_1580" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_155_1578", 1 - %"$$test__89_1581" = load %TName_Bool*, %TName_Bool** %"$test__89", align 8 - %"$$BoolUtils.andb_155_call_1582" = call %TName_Bool* %"$$BoolUtils.andb_155_fptr_1579"(i8* %"$$BoolUtils.andb_155_envptr_1580", %TName_Bool* %"$$test__89_1581"), !dbg !112 - store %TName_Bool* %"$$BoolUtils.andb_155_call_1582", %TName_Bool** %"$BoolUtils.andb_156", align 8, !dbg !112 - %"$$BoolUtils.andb_156_1583" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_156", align 8 - store %TName_Bool* %"$$BoolUtils.andb_156_1583", %TName_Bool** %"$test_90", align 8, !dbg !112 - %"$gasrem_1584" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1585" = icmp ugt i64 1, %"$gasrem_1584" - br i1 %"$gascmp_1585", label %"$out_of_gas_1586", label %"$have_gas_1587" - -"$out_of_gas_1586": ; preds = %"$have_gas_1571" - call void @_out_of_gas() - br label %"$have_gas_1587" - -"$have_gas_1587": ; preds = %"$out_of_gas_1586", %"$have_gas_1571" - %"$consume_1588" = sub i64 %"$gasrem_1584", 1 - store i64 %"$consume_1588", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$BoolUtils.andb_156", metadata !326, metadata !DIExpression()), !dbg !325 + %"$$BoolUtils.andb_155_1580" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_155", align 8 + %"$$BoolUtils.andb_155_fptr_1581" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_155_1580", 0 + %"$$BoolUtils.andb_155_envptr_1582" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_155_1580", 1 + %"$$test__89_1583" = load %TName_Bool*, %TName_Bool** %"$test__89", align 8 + %"$$BoolUtils.andb_155_call_1584" = call %TName_Bool* %"$$BoolUtils.andb_155_fptr_1581"(i8* %"$$BoolUtils.andb_155_envptr_1582", %TName_Bool* %"$$test__89_1583"), !dbg !325 + store %TName_Bool* %"$$BoolUtils.andb_155_call_1584", %TName_Bool** %"$BoolUtils.andb_156", align 8, !dbg !325 + %"$$BoolUtils.andb_156_1585" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_156", align 8 + store %TName_Bool* %"$$BoolUtils.andb_156_1585", %TName_Bool** %"$test_90", align 8, !dbg !325 + %"$gasrem_1586" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1587" = icmp ugt i64 1, %"$gasrem_1586" + br i1 %"$gascmp_1587", label %"$out_of_gas_1588", label %"$have_gas_1589" + +"$out_of_gas_1588": ; preds = %"$have_gas_1573" + call void @_out_of_gas() + br label %"$have_gas_1589" + +"$have_gas_1589": ; preds = %"$out_of_gas_1588", %"$have_gas_1573" + %"$consume_1590" = sub i64 %"$gasrem_1586", 1 + store i64 %"$consume_1590", i64* @_gasrem, align 8 %"$arg1_91" = alloca %Int256, align 8 - %"$gasrem_1589" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1590" = icmp ugt i64 1, %"$gasrem_1589" - br i1 %"$gascmp_1590", label %"$out_of_gas_1591", label %"$have_gas_1592" + call void @llvm.dbg.declare(metadata %Int256* %"$arg1_91", metadata !327, metadata !DIExpression()), !dbg !328 + %"$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_1591": ; preds = %"$have_gas_1587" +"$out_of_gas_1593": ; preds = %"$have_gas_1589" call void @_out_of_gas() - br label %"$have_gas_1592" + br label %"$have_gas_1594" -"$have_gas_1592": ; preds = %"$out_of_gas_1591", %"$have_gas_1587" - %"$consume_1593" = sub i64 %"$gasrem_1589", 1 - store i64 %"$consume_1593", i64* @_gasrem, align 8 - store %Int256 { i256 2 }, %Int256* %"$arg1_91", align 8, !dbg !113 - %"$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_1594": ; preds = %"$out_of_gas_1593", %"$have_gas_1589" + %"$consume_1595" = sub i64 %"$gasrem_1591", 1 + store i64 %"$consume_1595", i64* @_gasrem, align 8 + store %Int256 { i256 2 }, %Int256* %"$arg1_91", align 8, !dbg !329 + %"$gasrem_1596" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1597" = icmp ugt i64 1, %"$gasrem_1596" + br i1 %"$gascmp_1597", label %"$out_of_gas_1598", label %"$have_gas_1599" -"$out_of_gas_1596": ; preds = %"$have_gas_1592" +"$out_of_gas_1598": ; preds = %"$have_gas_1594" call void @_out_of_gas() - br label %"$have_gas_1597" + br label %"$have_gas_1599" -"$have_gas_1597": ; preds = %"$out_of_gas_1596", %"$have_gas_1592" - %"$consume_1598" = sub i64 %"$gasrem_1594", 1 - store i64 %"$consume_1598", i64* @_gasrem, align 8 +"$have_gas_1599": ; preds = %"$out_of_gas_1598", %"$have_gas_1594" + %"$consume_1600" = sub i64 %"$gasrem_1596", 1 + store i64 %"$consume_1600", i64* @_gasrem, align 8 %"$arg2_92" = alloca %Int256, 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" + call void @llvm.dbg.declare(metadata %Int256* %"$arg2_92", metadata !330, metadata !DIExpression()), !dbg !331 + %"$gasrem_1601" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1602" = icmp ugt i64 1, %"$gasrem_1601" + br i1 %"$gascmp_1602", label %"$out_of_gas_1603", label %"$have_gas_1604" -"$out_of_gas_1601": ; preds = %"$have_gas_1597" +"$out_of_gas_1603": ; preds = %"$have_gas_1599" call void @_out_of_gas() - br label %"$have_gas_1602" + br label %"$have_gas_1604" -"$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 - store %Int256 { i256 28948022309329048855892746252171976963317496166410141009864396001978282409983 }, %Int256* %"$arg2_92", align 8, !dbg !114 - %"$gasrem_1604" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1605" = icmp ugt i64 1, %"$gasrem_1604" - br i1 %"$gascmp_1605", label %"$out_of_gas_1606", label %"$have_gas_1607" +"$have_gas_1604": ; preds = %"$out_of_gas_1603", %"$have_gas_1599" + %"$consume_1605" = sub i64 %"$gasrem_1601", 1 + store i64 %"$consume_1605", i64* @_gasrem, align 8 + store %Int256 { i256 28948022309329048855892746252171976963317496166410141009864396001978282409983 }, %Int256* %"$arg2_92", align 8, !dbg !332 + %"$gasrem_1606" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1607" = icmp ugt i64 1, %"$gasrem_1606" + br i1 %"$gascmp_1607", label %"$out_of_gas_1608", label %"$have_gas_1609" -"$out_of_gas_1606": ; preds = %"$have_gas_1602" +"$out_of_gas_1608": ; preds = %"$have_gas_1604" call void @_out_of_gas() - br label %"$have_gas_1607" + br label %"$have_gas_1609" -"$have_gas_1607": ; preds = %"$out_of_gas_1606", %"$have_gas_1602" - %"$consume_1608" = sub i64 %"$gasrem_1604", 1 - store i64 %"$consume_1608", i64* @_gasrem, align 8 +"$have_gas_1609": ; preds = %"$out_of_gas_1608", %"$have_gas_1604" + %"$consume_1610" = sub i64 %"$gasrem_1606", 1 + store i64 %"$consume_1610", i64* @_gasrem, align 8 %"$test_96" = alloca %TName_Bool*, align 8 - %"$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" + call void @llvm.dbg.declare(metadata %TName_Bool** %"$test_96", metadata !333, metadata !DIExpression()), !dbg !334 + %"$gasrem_1611" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1612" = icmp ugt i64 1, %"$gasrem_1611" + br i1 %"$gascmp_1612", label %"$out_of_gas_1613", label %"$have_gas_1614" -"$out_of_gas_1611": ; preds = %"$have_gas_1607" +"$out_of_gas_1613": ; preds = %"$have_gas_1609" call void @_out_of_gas() - br label %"$have_gas_1612" + br label %"$have_gas_1614" -"$have_gas_1612": ; preds = %"$out_of_gas_1611", %"$have_gas_1607" - %"$consume_1613" = sub i64 %"$gasrem_1609", 1 - store i64 %"$consume_1613", i64* @_gasrem, align 8 +"$have_gas_1614": ; preds = %"$out_of_gas_1613", %"$have_gas_1609" + %"$consume_1615" = sub i64 %"$gasrem_1611", 1 + store i64 %"$consume_1615", i64* @_gasrem, align 8 %"$res_93" = alloca %Int256, align 8 - %"$gasrem_1615" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1616" = icmp ugt i64 80, %"$gasrem_1615" - br i1 %"$gascmp_1616", label %"$out_of_gas_1617", label %"$have_gas_1618" - -"$out_of_gas_1617": ; preds = %"$have_gas_1612" - call void @_out_of_gas() - br label %"$have_gas_1618" - -"$have_gas_1618": ; preds = %"$out_of_gas_1617", %"$have_gas_1612" - %"$consume_1619" = sub i64 %"$gasrem_1615", 80 - store i64 %"$consume_1619", i64* @_gasrem, align 8 - %"$execptr_load_1620" = load i8*, i8** @_execptr, align 8 - %"$mul_$arg1_91_1621" = alloca %Int256, align 8 - %"$$arg1_91_1622" = load %Int256, %Int256* %"$arg1_91", align 8 - store %Int256 %"$$arg1_91_1622", %Int256* %"$mul_$arg1_91_1621", align 8 - %"$mul_$arg2_92_1623" = alloca %Int256, align 8 - %"$$arg2_92_1624" = load %Int256, %Int256* %"$arg2_92", align 8 - store %Int256 %"$$arg2_92_1624", %Int256* %"$mul_$arg2_92_1623", align 8 - %"$mul_call_1625" = call %Int256* @_mul_Int256(i8* %"$execptr_load_1620", %Int256* %"$mul_$arg1_91_1621", %Int256* %"$mul_$arg2_92_1623"), !dbg !115 - %"$mul_1627" = load %Int256, %Int256* %"$mul_call_1625", align 8 - store %Int256 %"$mul_1627", %Int256* %"$res_93", align 8, !dbg !115 - %"$gasrem_1628" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1629" = icmp ugt i64 1, %"$gasrem_1628" - br i1 %"$gascmp_1629", label %"$out_of_gas_1630", label %"$have_gas_1631" - -"$out_of_gas_1630": ; preds = %"$have_gas_1618" - call void @_out_of_gas() - br label %"$have_gas_1631" - -"$have_gas_1631": ; preds = %"$out_of_gas_1630", %"$have_gas_1618" - %"$consume_1632" = sub i64 %"$gasrem_1628", 1 - store i64 %"$consume_1632", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %Int256* %"$res_93", metadata !335, metadata !DIExpression()), !dbg !336 + %"$gasrem_1617" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1618" = icmp ugt i64 80, %"$gasrem_1617" + br i1 %"$gascmp_1618", label %"$out_of_gas_1619", label %"$have_gas_1620" + +"$out_of_gas_1619": ; preds = %"$have_gas_1614" + call void @_out_of_gas() + br label %"$have_gas_1620" + +"$have_gas_1620": ; preds = %"$out_of_gas_1619", %"$have_gas_1614" + %"$consume_1621" = sub i64 %"$gasrem_1617", 80 + store i64 %"$consume_1621", i64* @_gasrem, align 8 + %"$execptr_load_1622" = load i8*, i8** @_execptr, align 8 + %"$mul_$arg1_91_1623" = alloca %Int256, align 8 + %"$$arg1_91_1624" = load %Int256, %Int256* %"$arg1_91", align 8 + store %Int256 %"$$arg1_91_1624", %Int256* %"$mul_$arg1_91_1623", align 8 + %"$mul_$arg2_92_1625" = alloca %Int256, align 8 + %"$$arg2_92_1626" = load %Int256, %Int256* %"$arg2_92", align 8 + store %Int256 %"$$arg2_92_1626", %Int256* %"$mul_$arg2_92_1625", align 8 + %"$mul_call_1627" = call %Int256* @_mul_Int256(i8* %"$execptr_load_1622", %Int256* %"$mul_$arg1_91_1623", %Int256* %"$mul_$arg2_92_1625"), !dbg !337 + %"$mul_1629" = load %Int256, %Int256* %"$mul_call_1627", align 8 + store %Int256 %"$mul_1629", %Int256* %"$res_93", align 8, !dbg !337 + %"$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 %"$res__94" = alloca %Int256, align 8 - %"$gasrem_1633" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1634" = icmp ugt i64 1, %"$gasrem_1633" - br i1 %"$gascmp_1634", label %"$out_of_gas_1635", label %"$have_gas_1636" + call void @llvm.dbg.declare(metadata %Int256* %"$res__94", metadata !338, metadata !DIExpression()), !dbg !339 + %"$gasrem_1635" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1636" = icmp ugt i64 1, %"$gasrem_1635" + br i1 %"$gascmp_1636", label %"$out_of_gas_1637", label %"$have_gas_1638" -"$out_of_gas_1635": ; preds = %"$have_gas_1631" +"$out_of_gas_1637": ; preds = %"$have_gas_1633" call void @_out_of_gas() - br label %"$have_gas_1636" + br label %"$have_gas_1638" -"$have_gas_1636": ; preds = %"$out_of_gas_1635", %"$have_gas_1631" - %"$consume_1637" = sub i64 %"$gasrem_1633", 1 - store i64 %"$consume_1637", i64* @_gasrem, align 8 - store %Int256 { i256 57896044618658097711785492504343953926634992332820282019728792003956564819966 }, %Int256* %"$res__94", align 8, !dbg !116 - %"$gasrem_1638" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1639" = icmp ugt i64 1, %"$gasrem_1638" - br i1 %"$gascmp_1639", label %"$out_of_gas_1640", label %"$have_gas_1641" +"$have_gas_1638": ; preds = %"$out_of_gas_1637", %"$have_gas_1633" + %"$consume_1639" = sub i64 %"$gasrem_1635", 1 + store i64 %"$consume_1639", i64* @_gasrem, align 8 + store %Int256 { i256 57896044618658097711785492504343953926634992332820282019728792003956564819966 }, %Int256* %"$res__94", align 8, !dbg !340 + %"$gasrem_1640" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1641" = icmp ugt i64 1, %"$gasrem_1640" + br i1 %"$gascmp_1641", label %"$out_of_gas_1642", label %"$have_gas_1643" -"$out_of_gas_1640": ; preds = %"$have_gas_1636" +"$out_of_gas_1642": ; preds = %"$have_gas_1638" call void @_out_of_gas() - br label %"$have_gas_1641" + br label %"$have_gas_1643" -"$have_gas_1641": ; preds = %"$out_of_gas_1640", %"$have_gas_1636" - %"$consume_1642" = sub i64 %"$gasrem_1638", 1 - store i64 %"$consume_1642", i64* @_gasrem, align 8 +"$have_gas_1643": ; preds = %"$out_of_gas_1642", %"$have_gas_1638" + %"$consume_1644" = sub i64 %"$gasrem_1640", 1 + store i64 %"$consume_1644", i64* @_gasrem, align 8 %"$test__95" = alloca %TName_Bool*, align 8 - %"$gasrem_1644" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1645" = icmp ugt i64 16, %"$gasrem_1644" - br i1 %"$gascmp_1645", label %"$out_of_gas_1646", label %"$have_gas_1647" - -"$out_of_gas_1646": ; preds = %"$have_gas_1641" - call void @_out_of_gas() - br label %"$have_gas_1647" - -"$have_gas_1647": ; preds = %"$out_of_gas_1646", %"$have_gas_1641" - %"$consume_1648" = sub i64 %"$gasrem_1644", 16 - store i64 %"$consume_1648", i64* @_gasrem, align 8 - %"$execptr_load_1649" = load i8*, i8** @_execptr, align 8 - %"$eq_$res_93_1650" = alloca %Int256, align 8 - %"$$res_93_1651" = load %Int256, %Int256* %"$res_93", align 8 - store %Int256 %"$$res_93_1651", %Int256* %"$eq_$res_93_1650", align 8 - %"$eq_$res__94_1652" = alloca %Int256, align 8 - %"$$res__94_1653" = load %Int256, %Int256* %"$res__94", align 8 - store %Int256 %"$$res__94_1653", %Int256* %"$eq_$res__94_1652", align 8 - %"$eq_call_1654" = call %TName_Bool* @_eq_Int256(i8* %"$execptr_load_1649", %Int256* %"$eq_$res_93_1650", %Int256* %"$eq_$res__94_1652"), !dbg !117 - store %TName_Bool* %"$eq_call_1654", %TName_Bool** %"$test__95", align 8, !dbg !117 - %"$gasrem_1656" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1657" = icmp ugt i64 1, %"$gasrem_1656" - br i1 %"$gascmp_1657", label %"$out_of_gas_1658", label %"$have_gas_1659" - -"$out_of_gas_1658": ; preds = %"$have_gas_1647" - call void @_out_of_gas() - br label %"$have_gas_1659" - -"$have_gas_1659": ; preds = %"$out_of_gas_1658", %"$have_gas_1647" - %"$consume_1660" = sub i64 %"$gasrem_1656", 1 - store i64 %"$consume_1660", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$test__95", metadata !341, metadata !DIExpression()), !dbg !342 + %"$gasrem_1646" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1647" = icmp ugt i64 16, %"$gasrem_1646" + br i1 %"$gascmp_1647", label %"$out_of_gas_1648", label %"$have_gas_1649" + +"$out_of_gas_1648": ; preds = %"$have_gas_1643" + call void @_out_of_gas() + br label %"$have_gas_1649" + +"$have_gas_1649": ; preds = %"$out_of_gas_1648", %"$have_gas_1643" + %"$consume_1650" = sub i64 %"$gasrem_1646", 16 + store i64 %"$consume_1650", i64* @_gasrem, align 8 + %"$execptr_load_1651" = load i8*, i8** @_execptr, align 8 + %"$eq_$res_93_1652" = alloca %Int256, align 8 + %"$$res_93_1653" = load %Int256, %Int256* %"$res_93", align 8 + store %Int256 %"$$res_93_1653", %Int256* %"$eq_$res_93_1652", align 8 + %"$eq_$res__94_1654" = alloca %Int256, align 8 + %"$$res__94_1655" = load %Int256, %Int256* %"$res__94", align 8 + store %Int256 %"$$res__94_1655", %Int256* %"$eq_$res__94_1654", align 8 + %"$eq_call_1656" = call %TName_Bool* @_eq_Int256(i8* %"$execptr_load_1651", %Int256* %"$eq_$res_93_1652", %Int256* %"$eq_$res__94_1654"), !dbg !343 + store %TName_Bool* %"$eq_call_1656", %TName_Bool** %"$test__95", align 8, !dbg !343 + %"$gasrem_1658" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1659" = icmp ugt i64 1, %"$gasrem_1658" + br i1 %"$gascmp_1659", label %"$out_of_gas_1660", label %"$have_gas_1661" + +"$out_of_gas_1660": ; preds = %"$have_gas_1649" + call void @_out_of_gas() + br label %"$have_gas_1661" + +"$have_gas_1661": ; preds = %"$out_of_gas_1660", %"$have_gas_1649" + %"$consume_1662" = sub i64 %"$gasrem_1658", 1 + store i64 %"$consume_1662", i64* @_gasrem, align 8 %"$BoolUtils.andb_157" = alloca { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, align 8 - %"$BoolUtils.andb_1661" = 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_1662" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_1661", 0 - %"$BoolUtils.andb_envptr_1663" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_1661", 1 - %"$$test_90_1664" = load %TName_Bool*, %TName_Bool** %"$test_90", align 8 - %"$BoolUtils.andb_call_1665" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_1662"(i8* %"$BoolUtils.andb_envptr_1663", %TName_Bool* %"$$test_90_1664"), !dbg !118 - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_1665", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_157", align 8, !dbg !118 + %"$BoolUtils.andb_1663" = 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_1664" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_1663", 0 + %"$BoolUtils.andb_envptr_1665" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_1663", 1 + %"$$test_90_1666" = load %TName_Bool*, %TName_Bool** %"$test_90", align 8 + %"$BoolUtils.andb_call_1667" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_1664"(i8* %"$BoolUtils.andb_envptr_1665", %TName_Bool* %"$$test_90_1666"), !dbg !344 + store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_1667", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_157", align 8, !dbg !344 %"$BoolUtils.andb_158" = alloca %TName_Bool*, align 8 - %"$$BoolUtils.andb_157_1666" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_157", align 8 - %"$$BoolUtils.andb_157_fptr_1667" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_157_1666", 0 - %"$$BoolUtils.andb_157_envptr_1668" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_157_1666", 1 - %"$$test__95_1669" = load %TName_Bool*, %TName_Bool** %"$test__95", align 8 - %"$$BoolUtils.andb_157_call_1670" = call %TName_Bool* %"$$BoolUtils.andb_157_fptr_1667"(i8* %"$$BoolUtils.andb_157_envptr_1668", %TName_Bool* %"$$test__95_1669"), !dbg !118 - store %TName_Bool* %"$$BoolUtils.andb_157_call_1670", %TName_Bool** %"$BoolUtils.andb_158", align 8, !dbg !118 - %"$$BoolUtils.andb_158_1671" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_158", align 8 - store %TName_Bool* %"$$BoolUtils.andb_158_1671", %TName_Bool** %"$test_96", align 8, !dbg !118 - %"$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" - -"$out_of_gas_1674": ; preds = %"$have_gas_1659" - call void @_out_of_gas() - br label %"$have_gas_1675" - -"$have_gas_1675": ; preds = %"$out_of_gas_1674", %"$have_gas_1659" - %"$consume_1676" = sub i64 %"$gasrem_1672", 1 - store i64 %"$consume_1676", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$BoolUtils.andb_158", metadata !345, metadata !DIExpression()), !dbg !344 + %"$$BoolUtils.andb_157_1668" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_157", align 8 + %"$$BoolUtils.andb_157_fptr_1669" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_157_1668", 0 + %"$$BoolUtils.andb_157_envptr_1670" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_157_1668", 1 + %"$$test__95_1671" = load %TName_Bool*, %TName_Bool** %"$test__95", align 8 + %"$$BoolUtils.andb_157_call_1672" = call %TName_Bool* %"$$BoolUtils.andb_157_fptr_1669"(i8* %"$$BoolUtils.andb_157_envptr_1670", %TName_Bool* %"$$test__95_1671"), !dbg !344 + store %TName_Bool* %"$$BoolUtils.andb_157_call_1672", %TName_Bool** %"$BoolUtils.andb_158", align 8, !dbg !344 + %"$$BoolUtils.andb_158_1673" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_158", align 8 + store %TName_Bool* %"$$BoolUtils.andb_158_1673", %TName_Bool** %"$test_96", align 8, !dbg !344 + %"$gasrem_1674" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1675" = icmp ugt i64 1, %"$gasrem_1674" + br i1 %"$gascmp_1675", label %"$out_of_gas_1676", label %"$have_gas_1677" + +"$out_of_gas_1676": ; preds = %"$have_gas_1661" + call void @_out_of_gas() + br label %"$have_gas_1677" + +"$have_gas_1677": ; preds = %"$out_of_gas_1676", %"$have_gas_1661" + %"$consume_1678" = sub i64 %"$gasrem_1674", 1 + store i64 %"$consume_1678", i64* @_gasrem, align 8 %"$arg1_97" = alloca %Int256, 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" + call void @llvm.dbg.declare(metadata %Int256* %"$arg1_97", metadata !346, metadata !DIExpression()), !dbg !347 + %"$gasrem_1679" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1680" = icmp ugt i64 1, %"$gasrem_1679" + br i1 %"$gascmp_1680", label %"$out_of_gas_1681", label %"$have_gas_1682" -"$out_of_gas_1679": ; preds = %"$have_gas_1675" +"$out_of_gas_1681": ; preds = %"$have_gas_1677" call void @_out_of_gas() - br label %"$have_gas_1680" + br label %"$have_gas_1682" -"$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 %Int256 { i256 -2 }, %Int256* %"$arg1_97", align 8, !dbg !119 - %"$gasrem_1682" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1683" = icmp ugt i64 1, %"$gasrem_1682" - br i1 %"$gascmp_1683", label %"$out_of_gas_1684", label %"$have_gas_1685" +"$have_gas_1682": ; preds = %"$out_of_gas_1681", %"$have_gas_1677" + %"$consume_1683" = sub i64 %"$gasrem_1679", 1 + store i64 %"$consume_1683", i64* @_gasrem, align 8 + store %Int256 { i256 -2 }, %Int256* %"$arg1_97", align 8, !dbg !348 + %"$gasrem_1684" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1685" = icmp ugt i64 1, %"$gasrem_1684" + br i1 %"$gascmp_1685", label %"$out_of_gas_1686", label %"$have_gas_1687" -"$out_of_gas_1684": ; preds = %"$have_gas_1680" +"$out_of_gas_1686": ; preds = %"$have_gas_1682" call void @_out_of_gas() - br label %"$have_gas_1685" + br label %"$have_gas_1687" -"$have_gas_1685": ; preds = %"$out_of_gas_1684", %"$have_gas_1680" - %"$consume_1686" = sub i64 %"$gasrem_1682", 1 - store i64 %"$consume_1686", i64* @_gasrem, align 8 +"$have_gas_1687": ; preds = %"$out_of_gas_1686", %"$have_gas_1682" + %"$consume_1688" = sub i64 %"$gasrem_1684", 1 + store i64 %"$consume_1688", i64* @_gasrem, align 8 %"$arg2_98" = alloca %Int256, align 8 - %"$gasrem_1687" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1688" = icmp ugt i64 1, %"$gasrem_1687" - br i1 %"$gascmp_1688", label %"$out_of_gas_1689", label %"$have_gas_1690" + call void @llvm.dbg.declare(metadata %Int256* %"$arg2_98", metadata !349, metadata !DIExpression()), !dbg !350 + %"$gasrem_1689" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1690" = icmp ugt i64 1, %"$gasrem_1689" + br i1 %"$gascmp_1690", label %"$out_of_gas_1691", label %"$have_gas_1692" -"$out_of_gas_1689": ; preds = %"$have_gas_1685" +"$out_of_gas_1691": ; preds = %"$have_gas_1687" call void @_out_of_gas() - br label %"$have_gas_1690" + br label %"$have_gas_1692" -"$have_gas_1690": ; preds = %"$out_of_gas_1689", %"$have_gas_1685" - %"$consume_1691" = sub i64 %"$gasrem_1687", 1 - store i64 %"$consume_1691", i64* @_gasrem, align 8 - store %Int256 { i256 28948022309329048855892746252171976963317496166410141009864396001978282409983 }, %Int256* %"$arg2_98", align 8, !dbg !120 - %"$gasrem_1692" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1693" = icmp ugt i64 1, %"$gasrem_1692" - br i1 %"$gascmp_1693", label %"$out_of_gas_1694", label %"$have_gas_1695" +"$have_gas_1692": ; preds = %"$out_of_gas_1691", %"$have_gas_1687" + %"$consume_1693" = sub i64 %"$gasrem_1689", 1 + store i64 %"$consume_1693", i64* @_gasrem, align 8 + store %Int256 { i256 28948022309329048855892746252171976963317496166410141009864396001978282409983 }, %Int256* %"$arg2_98", align 8, !dbg !351 + %"$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" -"$out_of_gas_1694": ; preds = %"$have_gas_1690" +"$out_of_gas_1696": ; preds = %"$have_gas_1692" call void @_out_of_gas() - br label %"$have_gas_1695" + br label %"$have_gas_1697" -"$have_gas_1695": ; preds = %"$out_of_gas_1694", %"$have_gas_1690" - %"$consume_1696" = sub i64 %"$gasrem_1692", 1 - store i64 %"$consume_1696", i64* @_gasrem, align 8 +"$have_gas_1697": ; preds = %"$out_of_gas_1696", %"$have_gas_1692" + %"$consume_1698" = sub i64 %"$gasrem_1694", 1 + store i64 %"$consume_1698", i64* @_gasrem, align 8 %"$test_102" = alloca %TName_Bool*, align 8 - %"$gasrem_1697" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1698" = icmp ugt i64 1, %"$gasrem_1697" - br i1 %"$gascmp_1698", label %"$out_of_gas_1699", label %"$have_gas_1700" + call void @llvm.dbg.declare(metadata %TName_Bool** %"$test_102", metadata !352, metadata !DIExpression()), !dbg !353 + %"$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" -"$out_of_gas_1699": ; preds = %"$have_gas_1695" +"$out_of_gas_1701": ; preds = %"$have_gas_1697" call void @_out_of_gas() - br label %"$have_gas_1700" + br label %"$have_gas_1702" -"$have_gas_1700": ; preds = %"$out_of_gas_1699", %"$have_gas_1695" - %"$consume_1701" = sub i64 %"$gasrem_1697", 1 - store i64 %"$consume_1701", i64* @_gasrem, align 8 +"$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 %"$res_99" = alloca %Int256, align 8 - %"$gasrem_1703" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1704" = icmp ugt i64 80, %"$gasrem_1703" - br i1 %"$gascmp_1704", label %"$out_of_gas_1705", label %"$have_gas_1706" - -"$out_of_gas_1705": ; preds = %"$have_gas_1700" - call void @_out_of_gas() - br label %"$have_gas_1706" - -"$have_gas_1706": ; preds = %"$out_of_gas_1705", %"$have_gas_1700" - %"$consume_1707" = sub i64 %"$gasrem_1703", 80 - store i64 %"$consume_1707", i64* @_gasrem, align 8 - %"$execptr_load_1708" = load i8*, i8** @_execptr, align 8 - %"$mul_$arg1_97_1709" = alloca %Int256, align 8 - %"$$arg1_97_1710" = load %Int256, %Int256* %"$arg1_97", align 8 - store %Int256 %"$$arg1_97_1710", %Int256* %"$mul_$arg1_97_1709", align 8 - %"$mul_$arg2_98_1711" = alloca %Int256, align 8 - %"$$arg2_98_1712" = load %Int256, %Int256* %"$arg2_98", align 8 - store %Int256 %"$$arg2_98_1712", %Int256* %"$mul_$arg2_98_1711", align 8 - %"$mul_call_1713" = call %Int256* @_mul_Int256(i8* %"$execptr_load_1708", %Int256* %"$mul_$arg1_97_1709", %Int256* %"$mul_$arg2_98_1711"), !dbg !121 - %"$mul_1715" = load %Int256, %Int256* %"$mul_call_1713", align 8 - store %Int256 %"$mul_1715", %Int256* %"$res_99", align 8, !dbg !121 - %"$gasrem_1716" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1717" = icmp ugt i64 1, %"$gasrem_1716" - br i1 %"$gascmp_1717", label %"$out_of_gas_1718", label %"$have_gas_1719" - -"$out_of_gas_1718": ; preds = %"$have_gas_1706" - call void @_out_of_gas() - br label %"$have_gas_1719" - -"$have_gas_1719": ; preds = %"$out_of_gas_1718", %"$have_gas_1706" - %"$consume_1720" = sub i64 %"$gasrem_1716", 1 - store i64 %"$consume_1720", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %Int256* %"$res_99", metadata !354, metadata !DIExpression()), !dbg !355 + %"$gasrem_1705" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1706" = icmp ugt i64 80, %"$gasrem_1705" + br i1 %"$gascmp_1706", label %"$out_of_gas_1707", label %"$have_gas_1708" + +"$out_of_gas_1707": ; preds = %"$have_gas_1702" + call void @_out_of_gas() + br label %"$have_gas_1708" + +"$have_gas_1708": ; preds = %"$out_of_gas_1707", %"$have_gas_1702" + %"$consume_1709" = sub i64 %"$gasrem_1705", 80 + store i64 %"$consume_1709", i64* @_gasrem, align 8 + %"$execptr_load_1710" = load i8*, i8** @_execptr, align 8 + %"$mul_$arg1_97_1711" = alloca %Int256, align 8 + %"$$arg1_97_1712" = load %Int256, %Int256* %"$arg1_97", align 8 + store %Int256 %"$$arg1_97_1712", %Int256* %"$mul_$arg1_97_1711", align 8 + %"$mul_$arg2_98_1713" = alloca %Int256, align 8 + %"$$arg2_98_1714" = load %Int256, %Int256* %"$arg2_98", align 8 + store %Int256 %"$$arg2_98_1714", %Int256* %"$mul_$arg2_98_1713", align 8 + %"$mul_call_1715" = call %Int256* @_mul_Int256(i8* %"$execptr_load_1710", %Int256* %"$mul_$arg1_97_1711", %Int256* %"$mul_$arg2_98_1713"), !dbg !356 + %"$mul_1717" = load %Int256, %Int256* %"$mul_call_1715", align 8 + store %Int256 %"$mul_1717", %Int256* %"$res_99", align 8, !dbg !356 + %"$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_1708" + call void @_out_of_gas() + br label %"$have_gas_1721" + +"$have_gas_1721": ; preds = %"$out_of_gas_1720", %"$have_gas_1708" + %"$consume_1722" = sub i64 %"$gasrem_1718", 1 + store i64 %"$consume_1722", i64* @_gasrem, align 8 %"$res__100" = alloca %Int256, align 8 - %"$gasrem_1721" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1722" = icmp ugt i64 1, %"$gasrem_1721" - br i1 %"$gascmp_1722", label %"$out_of_gas_1723", label %"$have_gas_1724" + call void @llvm.dbg.declare(metadata %Int256* %"$res__100", metadata !357, metadata !DIExpression()), !dbg !358 + %"$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_1723": ; preds = %"$have_gas_1719" +"$out_of_gas_1725": ; preds = %"$have_gas_1721" call void @_out_of_gas() - br label %"$have_gas_1724" + br label %"$have_gas_1726" -"$have_gas_1724": ; preds = %"$out_of_gas_1723", %"$have_gas_1719" - %"$consume_1725" = sub i64 %"$gasrem_1721", 1 - store i64 %"$consume_1725", i64* @_gasrem, align 8 - store %Int256 { i256 -57896044618658097711785492504343953926634992332820282019728792003956564819966 }, %Int256* %"$res__100", align 8, !dbg !122 - %"$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" +"$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 + store %Int256 { i256 -57896044618658097711785492504343953926634992332820282019728792003956564819966 }, %Int256* %"$res__100", align 8, !dbg !359 + %"$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_1728": ; preds = %"$have_gas_1724" +"$out_of_gas_1730": ; preds = %"$have_gas_1726" call void @_out_of_gas() - br label %"$have_gas_1729" + br label %"$have_gas_1731" -"$have_gas_1729": ; preds = %"$out_of_gas_1728", %"$have_gas_1724" - %"$consume_1730" = sub i64 %"$gasrem_1726", 1 - store i64 %"$consume_1730", i64* @_gasrem, align 8 +"$have_gas_1731": ; preds = %"$out_of_gas_1730", %"$have_gas_1726" + %"$consume_1732" = sub i64 %"$gasrem_1728", 1 + store i64 %"$consume_1732", i64* @_gasrem, align 8 %"$test__101" = alloca %TName_Bool*, align 8 - %"$gasrem_1732" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1733" = icmp ugt i64 16, %"$gasrem_1732" - br i1 %"$gascmp_1733", label %"$out_of_gas_1734", label %"$have_gas_1735" - -"$out_of_gas_1734": ; preds = %"$have_gas_1729" - call void @_out_of_gas() - br label %"$have_gas_1735" - -"$have_gas_1735": ; preds = %"$out_of_gas_1734", %"$have_gas_1729" - %"$consume_1736" = sub i64 %"$gasrem_1732", 16 - store i64 %"$consume_1736", i64* @_gasrem, align 8 - %"$execptr_load_1737" = load i8*, i8** @_execptr, align 8 - %"$eq_$res_99_1738" = alloca %Int256, align 8 - %"$$res_99_1739" = load %Int256, %Int256* %"$res_99", align 8 - store %Int256 %"$$res_99_1739", %Int256* %"$eq_$res_99_1738", align 8 - %"$eq_$res__100_1740" = alloca %Int256, align 8 - %"$$res__100_1741" = load %Int256, %Int256* %"$res__100", align 8 - store %Int256 %"$$res__100_1741", %Int256* %"$eq_$res__100_1740", align 8 - %"$eq_call_1742" = call %TName_Bool* @_eq_Int256(i8* %"$execptr_load_1737", %Int256* %"$eq_$res_99_1738", %Int256* %"$eq_$res__100_1740"), !dbg !123 - store %TName_Bool* %"$eq_call_1742", %TName_Bool** %"$test__101", align 8, !dbg !123 - %"$gasrem_1744" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1745" = icmp ugt i64 1, %"$gasrem_1744" - br i1 %"$gascmp_1745", label %"$out_of_gas_1746", label %"$have_gas_1747" - -"$out_of_gas_1746": ; preds = %"$have_gas_1735" - call void @_out_of_gas() - br label %"$have_gas_1747" - -"$have_gas_1747": ; preds = %"$out_of_gas_1746", %"$have_gas_1735" - %"$consume_1748" = sub i64 %"$gasrem_1744", 1 - store i64 %"$consume_1748", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$test__101", metadata !360, metadata !DIExpression()), !dbg !361 + %"$gasrem_1734" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1735" = icmp ugt i64 16, %"$gasrem_1734" + br i1 %"$gascmp_1735", label %"$out_of_gas_1736", label %"$have_gas_1737" + +"$out_of_gas_1736": ; preds = %"$have_gas_1731" + call void @_out_of_gas() + br label %"$have_gas_1737" + +"$have_gas_1737": ; preds = %"$out_of_gas_1736", %"$have_gas_1731" + %"$consume_1738" = sub i64 %"$gasrem_1734", 16 + store i64 %"$consume_1738", i64* @_gasrem, align 8 + %"$execptr_load_1739" = load i8*, i8** @_execptr, align 8 + %"$eq_$res_99_1740" = alloca %Int256, align 8 + %"$$res_99_1741" = load %Int256, %Int256* %"$res_99", align 8 + store %Int256 %"$$res_99_1741", %Int256* %"$eq_$res_99_1740", align 8 + %"$eq_$res__100_1742" = alloca %Int256, align 8 + %"$$res__100_1743" = load %Int256, %Int256* %"$res__100", align 8 + store %Int256 %"$$res__100_1743", %Int256* %"$eq_$res__100_1742", align 8 + %"$eq_call_1744" = call %TName_Bool* @_eq_Int256(i8* %"$execptr_load_1739", %Int256* %"$eq_$res_99_1740", %Int256* %"$eq_$res__100_1742"), !dbg !362 + store %TName_Bool* %"$eq_call_1744", %TName_Bool** %"$test__101", align 8, !dbg !362 + %"$gasrem_1746" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1747" = icmp ugt i64 1, %"$gasrem_1746" + br i1 %"$gascmp_1747", label %"$out_of_gas_1748", label %"$have_gas_1749" + +"$out_of_gas_1748": ; preds = %"$have_gas_1737" + call void @_out_of_gas() + br label %"$have_gas_1749" + +"$have_gas_1749": ; preds = %"$out_of_gas_1748", %"$have_gas_1737" + %"$consume_1750" = sub i64 %"$gasrem_1746", 1 + store i64 %"$consume_1750", i64* @_gasrem, align 8 %"$BoolUtils.andb_159" = alloca { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, align 8 - %"$BoolUtils.andb_1749" = 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_1750" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_1749", 0 - %"$BoolUtils.andb_envptr_1751" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_1749", 1 - %"$$test_96_1752" = load %TName_Bool*, %TName_Bool** %"$test_96", align 8 - %"$BoolUtils.andb_call_1753" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_1750"(i8* %"$BoolUtils.andb_envptr_1751", %TName_Bool* %"$$test_96_1752"), !dbg !124 - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_1753", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_159", align 8, !dbg !124 + %"$BoolUtils.andb_1751" = 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_1752" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_1751", 0 + %"$BoolUtils.andb_envptr_1753" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_1751", 1 + %"$$test_96_1754" = load %TName_Bool*, %TName_Bool** %"$test_96", align 8 + %"$BoolUtils.andb_call_1755" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_1752"(i8* %"$BoolUtils.andb_envptr_1753", %TName_Bool* %"$$test_96_1754"), !dbg !363 + store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_1755", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_159", align 8, !dbg !363 %"$BoolUtils.andb_160" = alloca %TName_Bool*, align 8 - %"$$BoolUtils.andb_159_1754" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_159", align 8 - %"$$BoolUtils.andb_159_fptr_1755" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_159_1754", 0 - %"$$BoolUtils.andb_159_envptr_1756" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_159_1754", 1 - %"$$test__101_1757" = load %TName_Bool*, %TName_Bool** %"$test__101", align 8 - %"$$BoolUtils.andb_159_call_1758" = call %TName_Bool* %"$$BoolUtils.andb_159_fptr_1755"(i8* %"$$BoolUtils.andb_159_envptr_1756", %TName_Bool* %"$$test__101_1757"), !dbg !124 - store %TName_Bool* %"$$BoolUtils.andb_159_call_1758", %TName_Bool** %"$BoolUtils.andb_160", align 8, !dbg !124 - %"$$BoolUtils.andb_160_1759" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_160", align 8 - store %TName_Bool* %"$$BoolUtils.andb_160_1759", %TName_Bool** %"$test_102", align 8, !dbg !124 - %"$gasrem_1760" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1761" = icmp ugt i64 1, %"$gasrem_1760" - br i1 %"$gascmp_1761", label %"$out_of_gas_1762", label %"$have_gas_1763" - -"$out_of_gas_1762": ; preds = %"$have_gas_1747" - call void @_out_of_gas() - br label %"$have_gas_1763" - -"$have_gas_1763": ; preds = %"$out_of_gas_1762", %"$have_gas_1747" - %"$consume_1764" = sub i64 %"$gasrem_1760", 1 - store i64 %"$consume_1764", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$BoolUtils.andb_160", metadata !364, metadata !DIExpression()), !dbg !363 + %"$$BoolUtils.andb_159_1756" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_159", align 8 + %"$$BoolUtils.andb_159_fptr_1757" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_159_1756", 0 + %"$$BoolUtils.andb_159_envptr_1758" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_159_1756", 1 + %"$$test__101_1759" = load %TName_Bool*, %TName_Bool** %"$test__101", align 8 + %"$$BoolUtils.andb_159_call_1760" = call %TName_Bool* %"$$BoolUtils.andb_159_fptr_1757"(i8* %"$$BoolUtils.andb_159_envptr_1758", %TName_Bool* %"$$test__101_1759"), !dbg !363 + store %TName_Bool* %"$$BoolUtils.andb_159_call_1760", %TName_Bool** %"$BoolUtils.andb_160", align 8, !dbg !363 + %"$$BoolUtils.andb_160_1761" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_160", align 8 + store %TName_Bool* %"$$BoolUtils.andb_160_1761", %TName_Bool** %"$test_102", align 8, !dbg !363 + %"$gasrem_1762" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1763" = icmp ugt i64 1, %"$gasrem_1762" + br i1 %"$gascmp_1763", label %"$out_of_gas_1764", label %"$have_gas_1765" + +"$out_of_gas_1764": ; preds = %"$have_gas_1749" + call void @_out_of_gas() + br label %"$have_gas_1765" + +"$have_gas_1765": ; preds = %"$out_of_gas_1764", %"$have_gas_1749" + %"$consume_1766" = sub i64 %"$gasrem_1762", 1 + store i64 %"$consume_1766", i64* @_gasrem, align 8 %"$arg1_103" = alloca %Int256, align 8 - %"$gasrem_1765" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1766" = icmp ugt i64 1, %"$gasrem_1765" - br i1 %"$gascmp_1766", label %"$out_of_gas_1767", label %"$have_gas_1768" + call void @llvm.dbg.declare(metadata %Int256* %"$arg1_103", metadata !365, metadata !DIExpression()), !dbg !366 + %"$gasrem_1767" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1768" = icmp ugt i64 1, %"$gasrem_1767" + br i1 %"$gascmp_1768", label %"$out_of_gas_1769", label %"$have_gas_1770" -"$out_of_gas_1767": ; preds = %"$have_gas_1763" +"$out_of_gas_1769": ; preds = %"$have_gas_1765" call void @_out_of_gas() - br label %"$have_gas_1768" + br label %"$have_gas_1770" -"$have_gas_1768": ; preds = %"$out_of_gas_1767", %"$have_gas_1763" - %"$consume_1769" = sub i64 %"$gasrem_1765", 1 - store i64 %"$consume_1769", i64* @_gasrem, align 8 - store %Int256 { i256 2 }, %Int256* %"$arg1_103", align 8, !dbg !125 - %"$gasrem_1770" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1771" = icmp ugt i64 1, %"$gasrem_1770" - br i1 %"$gascmp_1771", label %"$out_of_gas_1772", label %"$have_gas_1773" +"$have_gas_1770": ; preds = %"$out_of_gas_1769", %"$have_gas_1765" + %"$consume_1771" = sub i64 %"$gasrem_1767", 1 + store i64 %"$consume_1771", i64* @_gasrem, align 8 + store %Int256 { i256 2 }, %Int256* %"$arg1_103", align 8, !dbg !367 + %"$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_1772": ; preds = %"$have_gas_1768" +"$out_of_gas_1774": ; preds = %"$have_gas_1770" call void @_out_of_gas() - br label %"$have_gas_1773" + br label %"$have_gas_1775" -"$have_gas_1773": ; preds = %"$out_of_gas_1772", %"$have_gas_1768" - %"$consume_1774" = sub i64 %"$gasrem_1770", 1 - store i64 %"$consume_1774", i64* @_gasrem, align 8 +"$have_gas_1775": ; preds = %"$out_of_gas_1774", %"$have_gas_1770" + %"$consume_1776" = sub i64 %"$gasrem_1772", 1 + store i64 %"$consume_1776", i64* @_gasrem, align 8 %"$arg2_104" = alloca %Int256, 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" + call void @llvm.dbg.declare(metadata %Int256* %"$arg2_104", metadata !368, metadata !DIExpression()), !dbg !369 + %"$gasrem_1777" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1778" = icmp ugt i64 1, %"$gasrem_1777" + br i1 %"$gascmp_1778", label %"$out_of_gas_1779", label %"$have_gas_1780" -"$out_of_gas_1777": ; preds = %"$have_gas_1773" +"$out_of_gas_1779": ; preds = %"$have_gas_1775" call void @_out_of_gas() - br label %"$have_gas_1778" + br label %"$have_gas_1780" -"$have_gas_1778": ; preds = %"$out_of_gas_1777", %"$have_gas_1773" - %"$consume_1779" = sub i64 %"$gasrem_1775", 1 - store i64 %"$consume_1779", i64* @_gasrem, align 8 - store %Int256 { i256 -28948022309329048855892746252171976963317496166410141009864396001978282409983 }, %Int256* %"$arg2_104", align 8, !dbg !126 - %"$gasrem_1780" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1781" = icmp ugt i64 1, %"$gasrem_1780" - br i1 %"$gascmp_1781", label %"$out_of_gas_1782", label %"$have_gas_1783" +"$have_gas_1780": ; preds = %"$out_of_gas_1779", %"$have_gas_1775" + %"$consume_1781" = sub i64 %"$gasrem_1777", 1 + store i64 %"$consume_1781", i64* @_gasrem, align 8 + store %Int256 { i256 -28948022309329048855892746252171976963317496166410141009864396001978282409983 }, %Int256* %"$arg2_104", align 8, !dbg !370 + %"$gasrem_1782" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1783" = icmp ugt i64 1, %"$gasrem_1782" + br i1 %"$gascmp_1783", label %"$out_of_gas_1784", label %"$have_gas_1785" -"$out_of_gas_1782": ; preds = %"$have_gas_1778" +"$out_of_gas_1784": ; preds = %"$have_gas_1780" call void @_out_of_gas() - br label %"$have_gas_1783" + br label %"$have_gas_1785" -"$have_gas_1783": ; preds = %"$out_of_gas_1782", %"$have_gas_1778" - %"$consume_1784" = sub i64 %"$gasrem_1780", 1 - store i64 %"$consume_1784", i64* @_gasrem, align 8 +"$have_gas_1785": ; preds = %"$out_of_gas_1784", %"$have_gas_1780" + %"$consume_1786" = sub i64 %"$gasrem_1782", 1 + store i64 %"$consume_1786", i64* @_gasrem, align 8 %"$test_108" = alloca %TName_Bool*, 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" + call void @llvm.dbg.declare(metadata %TName_Bool** %"$test_108", metadata !371, metadata !DIExpression()), !dbg !372 + %"$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_1787": ; preds = %"$have_gas_1783" +"$out_of_gas_1789": ; preds = %"$have_gas_1785" call void @_out_of_gas() - br label %"$have_gas_1788" + br label %"$have_gas_1790" -"$have_gas_1788": ; preds = %"$out_of_gas_1787", %"$have_gas_1783" - %"$consume_1789" = sub i64 %"$gasrem_1785", 1 - store i64 %"$consume_1789", i64* @_gasrem, align 8 +"$have_gas_1790": ; preds = %"$out_of_gas_1789", %"$have_gas_1785" + %"$consume_1791" = sub i64 %"$gasrem_1787", 1 + store i64 %"$consume_1791", i64* @_gasrem, align 8 %"$res_105" = alloca %Int256, align 8 - %"$gasrem_1791" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1792" = icmp ugt i64 80, %"$gasrem_1791" - br i1 %"$gascmp_1792", label %"$out_of_gas_1793", label %"$have_gas_1794" - -"$out_of_gas_1793": ; preds = %"$have_gas_1788" - call void @_out_of_gas() - br label %"$have_gas_1794" - -"$have_gas_1794": ; preds = %"$out_of_gas_1793", %"$have_gas_1788" - %"$consume_1795" = sub i64 %"$gasrem_1791", 80 - store i64 %"$consume_1795", i64* @_gasrem, align 8 - %"$execptr_load_1796" = load i8*, i8** @_execptr, align 8 - %"$mul_$arg1_103_1797" = alloca %Int256, align 8 - %"$$arg1_103_1798" = load %Int256, %Int256* %"$arg1_103", align 8 - store %Int256 %"$$arg1_103_1798", %Int256* %"$mul_$arg1_103_1797", align 8 - %"$mul_$arg2_104_1799" = alloca %Int256, align 8 - %"$$arg2_104_1800" = load %Int256, %Int256* %"$arg2_104", align 8 - store %Int256 %"$$arg2_104_1800", %Int256* %"$mul_$arg2_104_1799", align 8 - %"$mul_call_1801" = call %Int256* @_mul_Int256(i8* %"$execptr_load_1796", %Int256* %"$mul_$arg1_103_1797", %Int256* %"$mul_$arg2_104_1799"), !dbg !127 - %"$mul_1803" = load %Int256, %Int256* %"$mul_call_1801", align 8 - store %Int256 %"$mul_1803", %Int256* %"$res_105", align 8, !dbg !127 - %"$gasrem_1804" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1805" = icmp ugt i64 1, %"$gasrem_1804" - br i1 %"$gascmp_1805", label %"$out_of_gas_1806", label %"$have_gas_1807" - -"$out_of_gas_1806": ; preds = %"$have_gas_1794" - call void @_out_of_gas() - br label %"$have_gas_1807" - -"$have_gas_1807": ; preds = %"$out_of_gas_1806", %"$have_gas_1794" - %"$consume_1808" = sub i64 %"$gasrem_1804", 1 - store i64 %"$consume_1808", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %Int256* %"$res_105", metadata !373, metadata !DIExpression()), !dbg !374 + %"$gasrem_1793" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1794" = icmp ugt i64 80, %"$gasrem_1793" + br i1 %"$gascmp_1794", label %"$out_of_gas_1795", label %"$have_gas_1796" + +"$out_of_gas_1795": ; preds = %"$have_gas_1790" + call void @_out_of_gas() + br label %"$have_gas_1796" + +"$have_gas_1796": ; preds = %"$out_of_gas_1795", %"$have_gas_1790" + %"$consume_1797" = sub i64 %"$gasrem_1793", 80 + store i64 %"$consume_1797", i64* @_gasrem, align 8 + %"$execptr_load_1798" = load i8*, i8** @_execptr, align 8 + %"$mul_$arg1_103_1799" = alloca %Int256, align 8 + %"$$arg1_103_1800" = load %Int256, %Int256* %"$arg1_103", align 8 + store %Int256 %"$$arg1_103_1800", %Int256* %"$mul_$arg1_103_1799", align 8 + %"$mul_$arg2_104_1801" = alloca %Int256, align 8 + %"$$arg2_104_1802" = load %Int256, %Int256* %"$arg2_104", align 8 + store %Int256 %"$$arg2_104_1802", %Int256* %"$mul_$arg2_104_1801", align 8 + %"$mul_call_1803" = call %Int256* @_mul_Int256(i8* %"$execptr_load_1798", %Int256* %"$mul_$arg1_103_1799", %Int256* %"$mul_$arg2_104_1801"), !dbg !375 + %"$mul_1805" = load %Int256, %Int256* %"$mul_call_1803", align 8 + store %Int256 %"$mul_1805", %Int256* %"$res_105", align 8, !dbg !375 + %"$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 = %"$have_gas_1796" + call void @_out_of_gas() + br label %"$have_gas_1809" + +"$have_gas_1809": ; preds = %"$out_of_gas_1808", %"$have_gas_1796" + %"$consume_1810" = sub i64 %"$gasrem_1806", 1 + store i64 %"$consume_1810", i64* @_gasrem, align 8 %"$res__106" = alloca %Int256, align 8 - %"$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" + call void @llvm.dbg.declare(metadata %Int256* %"$res__106", metadata !376, metadata !DIExpression()), !dbg !377 + %"$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_1811": ; preds = %"$have_gas_1807" +"$out_of_gas_1813": ; preds = %"$have_gas_1809" call void @_out_of_gas() - br label %"$have_gas_1812" + br label %"$have_gas_1814" -"$have_gas_1812": ; preds = %"$out_of_gas_1811", %"$have_gas_1807" - %"$consume_1813" = sub i64 %"$gasrem_1809", 1 - store i64 %"$consume_1813", i64* @_gasrem, align 8 - store %Int256 { i256 -57896044618658097711785492504343953926634992332820282019728792003956564819966 }, %Int256* %"$res__106", align 8, !dbg !128 - %"$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" +"$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 %Int256 { i256 -57896044618658097711785492504343953926634992332820282019728792003956564819966 }, %Int256* %"$res__106", align 8, !dbg !378 + %"$gasrem_1816" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1817" = icmp ugt i64 1, %"$gasrem_1816" + br i1 %"$gascmp_1817", label %"$out_of_gas_1818", label %"$have_gas_1819" -"$out_of_gas_1816": ; preds = %"$have_gas_1812" +"$out_of_gas_1818": ; preds = %"$have_gas_1814" call void @_out_of_gas() - br label %"$have_gas_1817" + br label %"$have_gas_1819" -"$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 +"$have_gas_1819": ; preds = %"$out_of_gas_1818", %"$have_gas_1814" + %"$consume_1820" = sub i64 %"$gasrem_1816", 1 + store i64 %"$consume_1820", i64* @_gasrem, align 8 %"$test__107" = alloca %TName_Bool*, align 8 - %"$gasrem_1820" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1821" = icmp ugt i64 16, %"$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", 16 - store i64 %"$consume_1824", i64* @_gasrem, align 8 - %"$execptr_load_1825" = load i8*, i8** @_execptr, align 8 - %"$eq_$res_105_1826" = alloca %Int256, align 8 - %"$$res_105_1827" = load %Int256, %Int256* %"$res_105", align 8 - store %Int256 %"$$res_105_1827", %Int256* %"$eq_$res_105_1826", align 8 - %"$eq_$res__106_1828" = alloca %Int256, align 8 - %"$$res__106_1829" = load %Int256, %Int256* %"$res__106", align 8 - store %Int256 %"$$res__106_1829", %Int256* %"$eq_$res__106_1828", align 8 - %"$eq_call_1830" = call %TName_Bool* @_eq_Int256(i8* %"$execptr_load_1825", %Int256* %"$eq_$res_105_1826", %Int256* %"$eq_$res__106_1828"), !dbg !129 - store %TName_Bool* %"$eq_call_1830", %TName_Bool** %"$test__107", align 8, !dbg !129 - %"$gasrem_1832" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1833" = icmp ugt i64 1, %"$gasrem_1832" - br i1 %"$gascmp_1833", label %"$out_of_gas_1834", label %"$have_gas_1835" - -"$out_of_gas_1834": ; preds = %"$have_gas_1823" - call void @_out_of_gas() - br label %"$have_gas_1835" - -"$have_gas_1835": ; preds = %"$out_of_gas_1834", %"$have_gas_1823" - %"$consume_1836" = sub i64 %"$gasrem_1832", 1 - store i64 %"$consume_1836", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$test__107", metadata !379, metadata !DIExpression()), !dbg !380 + %"$gasrem_1822" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1823" = icmp ugt i64 16, %"$gasrem_1822" + br i1 %"$gascmp_1823", label %"$out_of_gas_1824", label %"$have_gas_1825" + +"$out_of_gas_1824": ; preds = %"$have_gas_1819" + call void @_out_of_gas() + br label %"$have_gas_1825" + +"$have_gas_1825": ; preds = %"$out_of_gas_1824", %"$have_gas_1819" + %"$consume_1826" = sub i64 %"$gasrem_1822", 16 + store i64 %"$consume_1826", i64* @_gasrem, align 8 + %"$execptr_load_1827" = load i8*, i8** @_execptr, align 8 + %"$eq_$res_105_1828" = alloca %Int256, align 8 + %"$$res_105_1829" = load %Int256, %Int256* %"$res_105", align 8 + store %Int256 %"$$res_105_1829", %Int256* %"$eq_$res_105_1828", align 8 + %"$eq_$res__106_1830" = alloca %Int256, align 8 + %"$$res__106_1831" = load %Int256, %Int256* %"$res__106", align 8 + store %Int256 %"$$res__106_1831", %Int256* %"$eq_$res__106_1830", align 8 + %"$eq_call_1832" = call %TName_Bool* @_eq_Int256(i8* %"$execptr_load_1827", %Int256* %"$eq_$res_105_1828", %Int256* %"$eq_$res__106_1830"), !dbg !381 + store %TName_Bool* %"$eq_call_1832", %TName_Bool** %"$test__107", align 8, !dbg !381 + %"$gasrem_1834" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1835" = icmp ugt i64 1, %"$gasrem_1834" + br i1 %"$gascmp_1835", label %"$out_of_gas_1836", label %"$have_gas_1837" + +"$out_of_gas_1836": ; preds = %"$have_gas_1825" + call void @_out_of_gas() + br label %"$have_gas_1837" + +"$have_gas_1837": ; preds = %"$out_of_gas_1836", %"$have_gas_1825" + %"$consume_1838" = sub i64 %"$gasrem_1834", 1 + store i64 %"$consume_1838", i64* @_gasrem, align 8 %"$BoolUtils.andb_161" = alloca { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, align 8 - %"$BoolUtils.andb_1837" = 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_1838" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_1837", 0 - %"$BoolUtils.andb_envptr_1839" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_1837", 1 - %"$$test_102_1840" = load %TName_Bool*, %TName_Bool** %"$test_102", align 8 - %"$BoolUtils.andb_call_1841" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_1838"(i8* %"$BoolUtils.andb_envptr_1839", %TName_Bool* %"$$test_102_1840"), !dbg !130 - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_1841", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_161", align 8, !dbg !130 + %"$BoolUtils.andb_1839" = 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_1840" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_1839", 0 + %"$BoolUtils.andb_envptr_1841" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_1839", 1 + %"$$test_102_1842" = load %TName_Bool*, %TName_Bool** %"$test_102", align 8 + %"$BoolUtils.andb_call_1843" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_1840"(i8* %"$BoolUtils.andb_envptr_1841", %TName_Bool* %"$$test_102_1842"), !dbg !382 + store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_1843", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_161", align 8, !dbg !382 %"$BoolUtils.andb_162" = alloca %TName_Bool*, align 8 - %"$$BoolUtils.andb_161_1842" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_161", align 8 - %"$$BoolUtils.andb_161_fptr_1843" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_161_1842", 0 - %"$$BoolUtils.andb_161_envptr_1844" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_161_1842", 1 - %"$$test__107_1845" = load %TName_Bool*, %TName_Bool** %"$test__107", align 8 - %"$$BoolUtils.andb_161_call_1846" = call %TName_Bool* %"$$BoolUtils.andb_161_fptr_1843"(i8* %"$$BoolUtils.andb_161_envptr_1844", %TName_Bool* %"$$test__107_1845"), !dbg !130 - store %TName_Bool* %"$$BoolUtils.andb_161_call_1846", %TName_Bool** %"$BoolUtils.andb_162", align 8, !dbg !130 - %"$$BoolUtils.andb_162_1847" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_162", align 8 - store %TName_Bool* %"$$BoolUtils.andb_162_1847", %TName_Bool** %"$test_108", align 8, !dbg !130 - %"$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_1850": ; preds = %"$have_gas_1835" - call void @_out_of_gas() - br label %"$have_gas_1851" - -"$have_gas_1851": ; preds = %"$out_of_gas_1850", %"$have_gas_1835" - %"$consume_1852" = sub i64 %"$gasrem_1848", 1 - store i64 %"$consume_1852", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$BoolUtils.andb_162", metadata !383, metadata !DIExpression()), !dbg !382 + %"$$BoolUtils.andb_161_1844" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_161", align 8 + %"$$BoolUtils.andb_161_fptr_1845" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_161_1844", 0 + %"$$BoolUtils.andb_161_envptr_1846" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_161_1844", 1 + %"$$test__107_1847" = load %TName_Bool*, %TName_Bool** %"$test__107", align 8 + %"$$BoolUtils.andb_161_call_1848" = call %TName_Bool* %"$$BoolUtils.andb_161_fptr_1845"(i8* %"$$BoolUtils.andb_161_envptr_1846", %TName_Bool* %"$$test__107_1847"), !dbg !382 + store %TName_Bool* %"$$BoolUtils.andb_161_call_1848", %TName_Bool** %"$BoolUtils.andb_162", align 8, !dbg !382 + %"$$BoolUtils.andb_162_1849" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_162", align 8 + store %TName_Bool* %"$$BoolUtils.andb_162_1849", %TName_Bool** %"$test_108", align 8, !dbg !382 + %"$gasrem_1850" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1851" = icmp ugt i64 1, %"$gasrem_1850" + br i1 %"$gascmp_1851", label %"$out_of_gas_1852", label %"$have_gas_1853" + +"$out_of_gas_1852": ; preds = %"$have_gas_1837" + call void @_out_of_gas() + br label %"$have_gas_1853" + +"$have_gas_1853": ; preds = %"$out_of_gas_1852", %"$have_gas_1837" + %"$consume_1854" = sub i64 %"$gasrem_1850", 1 + store i64 %"$consume_1854", i64* @_gasrem, align 8 %"$arg1_109" = alloca %Int256, align 8 - %"$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" + call void @llvm.dbg.declare(metadata %Int256* %"$arg1_109", metadata !384, metadata !DIExpression()), !dbg !385 + %"$gasrem_1855" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1856" = icmp ugt i64 1, %"$gasrem_1855" + br i1 %"$gascmp_1856", label %"$out_of_gas_1857", label %"$have_gas_1858" -"$out_of_gas_1855": ; preds = %"$have_gas_1851" +"$out_of_gas_1857": ; preds = %"$have_gas_1853" call void @_out_of_gas() - br label %"$have_gas_1856" + br label %"$have_gas_1858" -"$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 %Int256 { i256 -2 }, %Int256* %"$arg1_109", align 8, !dbg !131 - %"$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" +"$have_gas_1858": ; preds = %"$out_of_gas_1857", %"$have_gas_1853" + %"$consume_1859" = sub i64 %"$gasrem_1855", 1 + store i64 %"$consume_1859", i64* @_gasrem, align 8 + store %Int256 { i256 -2 }, %Int256* %"$arg1_109", align 8, !dbg !386 + %"$gasrem_1860" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1861" = icmp ugt i64 1, %"$gasrem_1860" + br i1 %"$gascmp_1861", label %"$out_of_gas_1862", label %"$have_gas_1863" -"$out_of_gas_1860": ; preds = %"$have_gas_1856" +"$out_of_gas_1862": ; preds = %"$have_gas_1858" call void @_out_of_gas() - br label %"$have_gas_1861" + br label %"$have_gas_1863" -"$have_gas_1861": ; preds = %"$out_of_gas_1860", %"$have_gas_1856" - %"$consume_1862" = sub i64 %"$gasrem_1858", 1 - store i64 %"$consume_1862", i64* @_gasrem, align 8 +"$have_gas_1863": ; preds = %"$out_of_gas_1862", %"$have_gas_1858" + %"$consume_1864" = sub i64 %"$gasrem_1860", 1 + store i64 %"$consume_1864", i64* @_gasrem, align 8 %"$arg2_110" = alloca %Int256, align 8 - %"$gasrem_1863" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1864" = icmp ugt i64 1, %"$gasrem_1863" - br i1 %"$gascmp_1864", label %"$out_of_gas_1865", label %"$have_gas_1866" + call void @llvm.dbg.declare(metadata %Int256* %"$arg2_110", metadata !387, metadata !DIExpression()), !dbg !388 + %"$gasrem_1865" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1866" = icmp ugt i64 1, %"$gasrem_1865" + br i1 %"$gascmp_1866", label %"$out_of_gas_1867", label %"$have_gas_1868" -"$out_of_gas_1865": ; preds = %"$have_gas_1861" +"$out_of_gas_1867": ; preds = %"$have_gas_1863" call void @_out_of_gas() - br label %"$have_gas_1866" + br label %"$have_gas_1868" -"$have_gas_1866": ; preds = %"$out_of_gas_1865", %"$have_gas_1861" - %"$consume_1867" = sub i64 %"$gasrem_1863", 1 - store i64 %"$consume_1867", i64* @_gasrem, align 8 - store %Int256 { i256 -28948022309329048855892746252171976963317496166410141009864396001978282409983 }, %Int256* %"$arg2_110", align 8, !dbg !132 - %"$gasrem_1868" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1869" = icmp ugt i64 1, %"$gasrem_1868" - br i1 %"$gascmp_1869", label %"$out_of_gas_1870", label %"$have_gas_1871" +"$have_gas_1868": ; preds = %"$out_of_gas_1867", %"$have_gas_1863" + %"$consume_1869" = sub i64 %"$gasrem_1865", 1 + store i64 %"$consume_1869", i64* @_gasrem, align 8 + store %Int256 { i256 -28948022309329048855892746252171976963317496166410141009864396001978282409983 }, %Int256* %"$arg2_110", align 8, !dbg !389 + %"$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_1870": ; preds = %"$have_gas_1866" +"$out_of_gas_1872": ; preds = %"$have_gas_1868" call void @_out_of_gas() - br label %"$have_gas_1871" + br label %"$have_gas_1873" -"$have_gas_1871": ; preds = %"$out_of_gas_1870", %"$have_gas_1866" - %"$consume_1872" = sub i64 %"$gasrem_1868", 1 - store i64 %"$consume_1872", i64* @_gasrem, align 8 +"$have_gas_1873": ; preds = %"$out_of_gas_1872", %"$have_gas_1868" + %"$consume_1874" = sub i64 %"$gasrem_1870", 1 + store i64 %"$consume_1874", i64* @_gasrem, align 8 %"$test_114" = alloca %TName_Bool*, align 8 - %"$gasrem_1873" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1874" = icmp ugt i64 1, %"$gasrem_1873" - br i1 %"$gascmp_1874", label %"$out_of_gas_1875", label %"$have_gas_1876" + call void @llvm.dbg.declare(metadata %TName_Bool** %"$test_114", metadata !390, metadata !DIExpression()), !dbg !391 + %"$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_1875": ; preds = %"$have_gas_1871" +"$out_of_gas_1877": ; preds = %"$have_gas_1873" call void @_out_of_gas() - br label %"$have_gas_1876" + br label %"$have_gas_1878" -"$have_gas_1876": ; preds = %"$out_of_gas_1875", %"$have_gas_1871" - %"$consume_1877" = sub i64 %"$gasrem_1873", 1 - store i64 %"$consume_1877", i64* @_gasrem, align 8 +"$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 %"$res_111" = alloca %Int256, align 8 - %"$gasrem_1879" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1880" = icmp ugt i64 80, %"$gasrem_1879" - br i1 %"$gascmp_1880", label %"$out_of_gas_1881", label %"$have_gas_1882" - -"$out_of_gas_1881": ; preds = %"$have_gas_1876" - call void @_out_of_gas() - br label %"$have_gas_1882" - -"$have_gas_1882": ; preds = %"$out_of_gas_1881", %"$have_gas_1876" - %"$consume_1883" = sub i64 %"$gasrem_1879", 80 - store i64 %"$consume_1883", i64* @_gasrem, align 8 - %"$execptr_load_1884" = load i8*, i8** @_execptr, align 8 - %"$mul_$arg1_109_1885" = alloca %Int256, align 8 - %"$$arg1_109_1886" = load %Int256, %Int256* %"$arg1_109", align 8 - store %Int256 %"$$arg1_109_1886", %Int256* %"$mul_$arg1_109_1885", align 8 - %"$mul_$arg2_110_1887" = alloca %Int256, align 8 - %"$$arg2_110_1888" = load %Int256, %Int256* %"$arg2_110", align 8 - store %Int256 %"$$arg2_110_1888", %Int256* %"$mul_$arg2_110_1887", align 8 - %"$mul_call_1889" = call %Int256* @_mul_Int256(i8* %"$execptr_load_1884", %Int256* %"$mul_$arg1_109_1885", %Int256* %"$mul_$arg2_110_1887"), !dbg !133 - %"$mul_1891" = load %Int256, %Int256* %"$mul_call_1889", align 8 - store %Int256 %"$mul_1891", %Int256* %"$res_111", align 8, !dbg !133 - %"$gasrem_1892" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1893" = icmp ugt i64 1, %"$gasrem_1892" - br i1 %"$gascmp_1893", label %"$out_of_gas_1894", label %"$have_gas_1895" - -"$out_of_gas_1894": ; preds = %"$have_gas_1882" - call void @_out_of_gas() - br label %"$have_gas_1895" - -"$have_gas_1895": ; preds = %"$out_of_gas_1894", %"$have_gas_1882" - %"$consume_1896" = sub i64 %"$gasrem_1892", 1 - store i64 %"$consume_1896", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %Int256* %"$res_111", metadata !392, metadata !DIExpression()), !dbg !393 + %"$gasrem_1881" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1882" = icmp ugt i64 80, %"$gasrem_1881" + br i1 %"$gascmp_1882", label %"$out_of_gas_1883", label %"$have_gas_1884" + +"$out_of_gas_1883": ; preds = %"$have_gas_1878" + call void @_out_of_gas() + br label %"$have_gas_1884" + +"$have_gas_1884": ; preds = %"$out_of_gas_1883", %"$have_gas_1878" + %"$consume_1885" = sub i64 %"$gasrem_1881", 80 + store i64 %"$consume_1885", i64* @_gasrem, align 8 + %"$execptr_load_1886" = load i8*, i8** @_execptr, align 8 + %"$mul_$arg1_109_1887" = alloca %Int256, align 8 + %"$$arg1_109_1888" = load %Int256, %Int256* %"$arg1_109", align 8 + store %Int256 %"$$arg1_109_1888", %Int256* %"$mul_$arg1_109_1887", align 8 + %"$mul_$arg2_110_1889" = alloca %Int256, align 8 + %"$$arg2_110_1890" = load %Int256, %Int256* %"$arg2_110", align 8 + store %Int256 %"$$arg2_110_1890", %Int256* %"$mul_$arg2_110_1889", align 8 + %"$mul_call_1891" = call %Int256* @_mul_Int256(i8* %"$execptr_load_1886", %Int256* %"$mul_$arg1_109_1887", %Int256* %"$mul_$arg2_110_1889"), !dbg !394 + %"$mul_1893" = load %Int256, %Int256* %"$mul_call_1891", align 8 + store %Int256 %"$mul_1893", %Int256* %"$res_111", align 8, !dbg !394 + %"$gasrem_1894" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1895" = icmp ugt i64 1, %"$gasrem_1894" + br i1 %"$gascmp_1895", label %"$out_of_gas_1896", label %"$have_gas_1897" + +"$out_of_gas_1896": ; preds = %"$have_gas_1884" + call void @_out_of_gas() + br label %"$have_gas_1897" + +"$have_gas_1897": ; preds = %"$out_of_gas_1896", %"$have_gas_1884" + %"$consume_1898" = sub i64 %"$gasrem_1894", 1 + store i64 %"$consume_1898", i64* @_gasrem, align 8 %"$res__112" = alloca %Int256, align 8 - %"$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" + call void @llvm.dbg.declare(metadata %Int256* %"$res__112", metadata !395, metadata !DIExpression()), !dbg !396 + %"$gasrem_1899" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1900" = icmp ugt i64 1, %"$gasrem_1899" + br i1 %"$gascmp_1900", label %"$out_of_gas_1901", label %"$have_gas_1902" -"$out_of_gas_1899": ; preds = %"$have_gas_1895" +"$out_of_gas_1901": ; preds = %"$have_gas_1897" call void @_out_of_gas() - br label %"$have_gas_1900" + br label %"$have_gas_1902" -"$have_gas_1900": ; preds = %"$out_of_gas_1899", %"$have_gas_1895" - %"$consume_1901" = sub i64 %"$gasrem_1897", 1 - store i64 %"$consume_1901", i64* @_gasrem, align 8 - store %Int256 { i256 57896044618658097711785492504343953926634992332820282019728792003956564819966 }, %Int256* %"$res__112", align 8, !dbg !134 - %"$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" +"$have_gas_1902": ; preds = %"$out_of_gas_1901", %"$have_gas_1897" + %"$consume_1903" = sub i64 %"$gasrem_1899", 1 + store i64 %"$consume_1903", i64* @_gasrem, align 8 + store %Int256 { i256 57896044618658097711785492504343953926634992332820282019728792003956564819966 }, %Int256* %"$res__112", align 8, !dbg !397 + %"$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" -"$out_of_gas_1904": ; preds = %"$have_gas_1900" +"$out_of_gas_1906": ; preds = %"$have_gas_1902" call void @_out_of_gas() - br label %"$have_gas_1905" + br label %"$have_gas_1907" -"$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 +"$have_gas_1907": ; preds = %"$out_of_gas_1906", %"$have_gas_1902" + %"$consume_1908" = sub i64 %"$gasrem_1904", 1 + store i64 %"$consume_1908", i64* @_gasrem, align 8 %"$test__113" = alloca %TName_Bool*, align 8 - %"$gasrem_1908" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1909" = icmp ugt i64 16, %"$gasrem_1908" - br i1 %"$gascmp_1909", label %"$out_of_gas_1910", label %"$have_gas_1911" - -"$out_of_gas_1910": ; preds = %"$have_gas_1905" - call void @_out_of_gas() - br label %"$have_gas_1911" - -"$have_gas_1911": ; preds = %"$out_of_gas_1910", %"$have_gas_1905" - %"$consume_1912" = sub i64 %"$gasrem_1908", 16 - store i64 %"$consume_1912", i64* @_gasrem, align 8 - %"$execptr_load_1913" = load i8*, i8** @_execptr, align 8 - %"$eq_$res_111_1914" = alloca %Int256, align 8 - %"$$res_111_1915" = load %Int256, %Int256* %"$res_111", align 8 - store %Int256 %"$$res_111_1915", %Int256* %"$eq_$res_111_1914", align 8 - %"$eq_$res__112_1916" = alloca %Int256, align 8 - %"$$res__112_1917" = load %Int256, %Int256* %"$res__112", align 8 - store %Int256 %"$$res__112_1917", %Int256* %"$eq_$res__112_1916", align 8 - %"$eq_call_1918" = call %TName_Bool* @_eq_Int256(i8* %"$execptr_load_1913", %Int256* %"$eq_$res_111_1914", %Int256* %"$eq_$res__112_1916"), !dbg !135 - store %TName_Bool* %"$eq_call_1918", %TName_Bool** %"$test__113", align 8, !dbg !135 - %"$gasrem_1920" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1921" = icmp ugt i64 1, %"$gasrem_1920" - br i1 %"$gascmp_1921", label %"$out_of_gas_1922", label %"$have_gas_1923" - -"$out_of_gas_1922": ; preds = %"$have_gas_1911" - call void @_out_of_gas() - br label %"$have_gas_1923" - -"$have_gas_1923": ; preds = %"$out_of_gas_1922", %"$have_gas_1911" - %"$consume_1924" = sub i64 %"$gasrem_1920", 1 - store i64 %"$consume_1924", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$test__113", metadata !398, metadata !DIExpression()), !dbg !399 + %"$gasrem_1910" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1911" = icmp ugt i64 16, %"$gasrem_1910" + br i1 %"$gascmp_1911", label %"$out_of_gas_1912", label %"$have_gas_1913" + +"$out_of_gas_1912": ; preds = %"$have_gas_1907" + call void @_out_of_gas() + br label %"$have_gas_1913" + +"$have_gas_1913": ; preds = %"$out_of_gas_1912", %"$have_gas_1907" + %"$consume_1914" = sub i64 %"$gasrem_1910", 16 + store i64 %"$consume_1914", i64* @_gasrem, align 8 + %"$execptr_load_1915" = load i8*, i8** @_execptr, align 8 + %"$eq_$res_111_1916" = alloca %Int256, align 8 + %"$$res_111_1917" = load %Int256, %Int256* %"$res_111", align 8 + store %Int256 %"$$res_111_1917", %Int256* %"$eq_$res_111_1916", align 8 + %"$eq_$res__112_1918" = alloca %Int256, align 8 + %"$$res__112_1919" = load %Int256, %Int256* %"$res__112", align 8 + store %Int256 %"$$res__112_1919", %Int256* %"$eq_$res__112_1918", align 8 + %"$eq_call_1920" = call %TName_Bool* @_eq_Int256(i8* %"$execptr_load_1915", %Int256* %"$eq_$res_111_1916", %Int256* %"$eq_$res__112_1918"), !dbg !400 + store %TName_Bool* %"$eq_call_1920", %TName_Bool** %"$test__113", align 8, !dbg !400 + %"$gasrem_1922" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1923" = icmp ugt i64 1, %"$gasrem_1922" + br i1 %"$gascmp_1923", label %"$out_of_gas_1924", label %"$have_gas_1925" + +"$out_of_gas_1924": ; preds = %"$have_gas_1913" + call void @_out_of_gas() + br label %"$have_gas_1925" + +"$have_gas_1925": ; preds = %"$out_of_gas_1924", %"$have_gas_1913" + %"$consume_1926" = sub i64 %"$gasrem_1922", 1 + store i64 %"$consume_1926", i64* @_gasrem, align 8 %"$BoolUtils.andb_163" = alloca { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, align 8 - %"$BoolUtils.andb_1925" = 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_1926" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_1925", 0 - %"$BoolUtils.andb_envptr_1927" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_1925", 1 - %"$$test_108_1928" = load %TName_Bool*, %TName_Bool** %"$test_108", align 8 - %"$BoolUtils.andb_call_1929" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_1926"(i8* %"$BoolUtils.andb_envptr_1927", %TName_Bool* %"$$test_108_1928"), !dbg !136 - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_1929", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_163", align 8, !dbg !136 + %"$BoolUtils.andb_1927" = 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_1928" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_1927", 0 + %"$BoolUtils.andb_envptr_1929" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_1927", 1 + %"$$test_108_1930" = load %TName_Bool*, %TName_Bool** %"$test_108", align 8 + %"$BoolUtils.andb_call_1931" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_1928"(i8* %"$BoolUtils.andb_envptr_1929", %TName_Bool* %"$$test_108_1930"), !dbg !401 + store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_1931", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_163", align 8, !dbg !401 %"$BoolUtils.andb_164" = alloca %TName_Bool*, align 8 - %"$$BoolUtils.andb_163_1930" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_163", align 8 - %"$$BoolUtils.andb_163_fptr_1931" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_163_1930", 0 - %"$$BoolUtils.andb_163_envptr_1932" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_163_1930", 1 - %"$$test__113_1933" = load %TName_Bool*, %TName_Bool** %"$test__113", align 8 - %"$$BoolUtils.andb_163_call_1934" = call %TName_Bool* %"$$BoolUtils.andb_163_fptr_1931"(i8* %"$$BoolUtils.andb_163_envptr_1932", %TName_Bool* %"$$test__113_1933"), !dbg !136 - store %TName_Bool* %"$$BoolUtils.andb_163_call_1934", %TName_Bool** %"$BoolUtils.andb_164", align 8, !dbg !136 - %"$$BoolUtils.andb_164_1935" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_164", align 8 - store %TName_Bool* %"$$BoolUtils.andb_164_1935", %TName_Bool** %"$test_114", align 8, !dbg !136 - %"$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_1923" - call void @_out_of_gas() - br label %"$have_gas_1939" - -"$have_gas_1939": ; preds = %"$out_of_gas_1938", %"$have_gas_1923" - %"$consume_1940" = sub i64 %"$gasrem_1936", 1 - store i64 %"$consume_1940", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$BoolUtils.andb_164", metadata !402, metadata !DIExpression()), !dbg !401 + %"$$BoolUtils.andb_163_1932" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_163", align 8 + %"$$BoolUtils.andb_163_fptr_1933" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_163_1932", 0 + %"$$BoolUtils.andb_163_envptr_1934" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_163_1932", 1 + %"$$test__113_1935" = load %TName_Bool*, %TName_Bool** %"$test__113", align 8 + %"$$BoolUtils.andb_163_call_1936" = call %TName_Bool* %"$$BoolUtils.andb_163_fptr_1933"(i8* %"$$BoolUtils.andb_163_envptr_1934", %TName_Bool* %"$$test__113_1935"), !dbg !401 + store %TName_Bool* %"$$BoolUtils.andb_163_call_1936", %TName_Bool** %"$BoolUtils.andb_164", align 8, !dbg !401 + %"$$BoolUtils.andb_164_1937" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_164", align 8 + store %TName_Bool* %"$$BoolUtils.andb_164_1937", %TName_Bool** %"$test_114", align 8, !dbg !401 + %"$gasrem_1938" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1939" = icmp ugt i64 1, %"$gasrem_1938" + br i1 %"$gascmp_1939", label %"$out_of_gas_1940", label %"$have_gas_1941" + +"$out_of_gas_1940": ; preds = %"$have_gas_1925" + call void @_out_of_gas() + br label %"$have_gas_1941" + +"$have_gas_1941": ; preds = %"$out_of_gas_1940", %"$have_gas_1925" + %"$consume_1942" = sub i64 %"$gasrem_1938", 1 + store i64 %"$consume_1942", i64* @_gasrem, align 8 %"$arg1_115" = alloca %Int256, align 8 - %"$gasrem_1941" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1942" = icmp ugt i64 1, %"$gasrem_1941" - br i1 %"$gascmp_1942", label %"$out_of_gas_1943", label %"$have_gas_1944" + call void @llvm.dbg.declare(metadata %Int256* %"$arg1_115", metadata !403, metadata !DIExpression()), !dbg !404 + %"$gasrem_1943" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1944" = icmp ugt i64 1, %"$gasrem_1943" + br i1 %"$gascmp_1944", label %"$out_of_gas_1945", label %"$have_gas_1946" -"$out_of_gas_1943": ; preds = %"$have_gas_1939" +"$out_of_gas_1945": ; preds = %"$have_gas_1941" call void @_out_of_gas() - br label %"$have_gas_1944" + br label %"$have_gas_1946" -"$have_gas_1944": ; preds = %"$out_of_gas_1943", %"$have_gas_1939" - %"$consume_1945" = sub i64 %"$gasrem_1941", 1 - store i64 %"$consume_1945", i64* @_gasrem, align 8 - store %Int256 { i256 -57896044618658097711785492504343953926634992332820282019728792003956564819968 }, %Int256* %"$arg1_115", align 8, !dbg !137 - %"$gasrem_1946" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1947" = icmp ugt i64 1, %"$gasrem_1946" - br i1 %"$gascmp_1947", label %"$out_of_gas_1948", label %"$have_gas_1949" +"$have_gas_1946": ; preds = %"$out_of_gas_1945", %"$have_gas_1941" + %"$consume_1947" = sub i64 %"$gasrem_1943", 1 + store i64 %"$consume_1947", i64* @_gasrem, align 8 + store %Int256 { i256 -57896044618658097711785492504343953926634992332820282019728792003956564819968 }, %Int256* %"$arg1_115", align 8, !dbg !405 + %"$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" -"$out_of_gas_1948": ; preds = %"$have_gas_1944" +"$out_of_gas_1950": ; preds = %"$have_gas_1946" call void @_out_of_gas() - br label %"$have_gas_1949" + br label %"$have_gas_1951" -"$have_gas_1949": ; preds = %"$out_of_gas_1948", %"$have_gas_1944" - %"$consume_1950" = sub i64 %"$gasrem_1946", 1 - store i64 %"$consume_1950", i64* @_gasrem, align 8 +"$have_gas_1951": ; preds = %"$out_of_gas_1950", %"$have_gas_1946" + %"$consume_1952" = sub i64 %"$gasrem_1948", 1 + store i64 %"$consume_1952", i64* @_gasrem, align 8 %"$arg2_116" = alloca %Int256, align 8 - %"$gasrem_1951" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1952" = icmp ugt i64 1, %"$gasrem_1951" - br i1 %"$gascmp_1952", label %"$out_of_gas_1953", label %"$have_gas_1954" + call void @llvm.dbg.declare(metadata %Int256* %"$arg2_116", metadata !406, metadata !DIExpression()), !dbg !407 + %"$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" -"$out_of_gas_1953": ; preds = %"$have_gas_1949" +"$out_of_gas_1955": ; preds = %"$have_gas_1951" call void @_out_of_gas() - br label %"$have_gas_1954" + br label %"$have_gas_1956" -"$have_gas_1954": ; preds = %"$out_of_gas_1953", %"$have_gas_1949" - %"$consume_1955" = sub i64 %"$gasrem_1951", 1 - store i64 %"$consume_1955", i64* @_gasrem, align 8 - store %Int256 { i256 1 }, %Int256* %"$arg2_116", align 8, !dbg !138 - %"$gasrem_1956" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1957" = icmp ugt i64 1, %"$gasrem_1956" - br i1 %"$gascmp_1957", label %"$out_of_gas_1958", label %"$have_gas_1959" +"$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 %Int256 { i256 1 }, %Int256* %"$arg2_116", align 8, !dbg !408 + %"$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_1958": ; preds = %"$have_gas_1954" +"$out_of_gas_1960": ; preds = %"$have_gas_1956" call void @_out_of_gas() - br label %"$have_gas_1959" + br label %"$have_gas_1961" -"$have_gas_1959": ; preds = %"$out_of_gas_1958", %"$have_gas_1954" - %"$consume_1960" = sub i64 %"$gasrem_1956", 1 - store i64 %"$consume_1960", i64* @_gasrem, align 8 +"$have_gas_1961": ; preds = %"$out_of_gas_1960", %"$have_gas_1956" + %"$consume_1962" = sub i64 %"$gasrem_1958", 1 + store i64 %"$consume_1962", i64* @_gasrem, align 8 %"$test_120" = alloca %TName_Bool*, 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" + call void @llvm.dbg.declare(metadata %TName_Bool** %"$test_120", metadata !409, metadata !DIExpression()), !dbg !410 + %"$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_1963": ; preds = %"$have_gas_1959" +"$out_of_gas_1965": ; preds = %"$have_gas_1961" call void @_out_of_gas() - br label %"$have_gas_1964" + br label %"$have_gas_1966" -"$have_gas_1964": ; preds = %"$out_of_gas_1963", %"$have_gas_1959" - %"$consume_1965" = sub i64 %"$gasrem_1961", 1 - store i64 %"$consume_1965", i64* @_gasrem, 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 %"$res_117" = alloca %Int256, align 8 - %"$gasrem_1967" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1968" = icmp ugt i64 80, %"$gasrem_1967" - br i1 %"$gascmp_1968", label %"$out_of_gas_1969", label %"$have_gas_1970" - -"$out_of_gas_1969": ; preds = %"$have_gas_1964" - call void @_out_of_gas() - br label %"$have_gas_1970" - -"$have_gas_1970": ; preds = %"$out_of_gas_1969", %"$have_gas_1964" - %"$consume_1971" = sub i64 %"$gasrem_1967", 80 - store i64 %"$consume_1971", i64* @_gasrem, align 8 - %"$execptr_load_1972" = load i8*, i8** @_execptr, align 8 - %"$mul_$arg1_115_1973" = alloca %Int256, align 8 - %"$$arg1_115_1974" = load %Int256, %Int256* %"$arg1_115", align 8 - store %Int256 %"$$arg1_115_1974", %Int256* %"$mul_$arg1_115_1973", align 8 - %"$mul_$arg2_116_1975" = alloca %Int256, align 8 - %"$$arg2_116_1976" = load %Int256, %Int256* %"$arg2_116", align 8 - store %Int256 %"$$arg2_116_1976", %Int256* %"$mul_$arg2_116_1975", align 8 - %"$mul_call_1977" = call %Int256* @_mul_Int256(i8* %"$execptr_load_1972", %Int256* %"$mul_$arg1_115_1973", %Int256* %"$mul_$arg2_116_1975"), !dbg !139 - %"$mul_1979" = load %Int256, %Int256* %"$mul_call_1977", align 8 - store %Int256 %"$mul_1979", %Int256* %"$res_117", align 8, !dbg !139 - %"$gasrem_1980" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1981" = icmp ugt i64 1, %"$gasrem_1980" - br i1 %"$gascmp_1981", label %"$out_of_gas_1982", label %"$have_gas_1983" - -"$out_of_gas_1982": ; preds = %"$have_gas_1970" - call void @_out_of_gas() - br label %"$have_gas_1983" - -"$have_gas_1983": ; preds = %"$out_of_gas_1982", %"$have_gas_1970" - %"$consume_1984" = sub i64 %"$gasrem_1980", 1 - store i64 %"$consume_1984", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %Int256* %"$res_117", metadata !411, metadata !DIExpression()), !dbg !412 + %"$gasrem_1969" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1970" = icmp ugt i64 80, %"$gasrem_1969" + br i1 %"$gascmp_1970", label %"$out_of_gas_1971", label %"$have_gas_1972" + +"$out_of_gas_1971": ; preds = %"$have_gas_1966" + call void @_out_of_gas() + br label %"$have_gas_1972" + +"$have_gas_1972": ; preds = %"$out_of_gas_1971", %"$have_gas_1966" + %"$consume_1973" = sub i64 %"$gasrem_1969", 80 + store i64 %"$consume_1973", i64* @_gasrem, align 8 + %"$execptr_load_1974" = load i8*, i8** @_execptr, align 8 + %"$mul_$arg1_115_1975" = alloca %Int256, align 8 + %"$$arg1_115_1976" = load %Int256, %Int256* %"$arg1_115", align 8 + store %Int256 %"$$arg1_115_1976", %Int256* %"$mul_$arg1_115_1975", align 8 + %"$mul_$arg2_116_1977" = alloca %Int256, align 8 + %"$$arg2_116_1978" = load %Int256, %Int256* %"$arg2_116", align 8 + store %Int256 %"$$arg2_116_1978", %Int256* %"$mul_$arg2_116_1977", align 8 + %"$mul_call_1979" = call %Int256* @_mul_Int256(i8* %"$execptr_load_1974", %Int256* %"$mul_$arg1_115_1975", %Int256* %"$mul_$arg2_116_1977"), !dbg !413 + %"$mul_1981" = load %Int256, %Int256* %"$mul_call_1979", align 8 + store %Int256 %"$mul_1981", %Int256* %"$res_117", align 8, !dbg !413 + %"$gasrem_1982" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1983" = icmp ugt i64 1, %"$gasrem_1982" + br i1 %"$gascmp_1983", label %"$out_of_gas_1984", label %"$have_gas_1985" + +"$out_of_gas_1984": ; preds = %"$have_gas_1972" + call void @_out_of_gas() + br label %"$have_gas_1985" + +"$have_gas_1985": ; preds = %"$out_of_gas_1984", %"$have_gas_1972" + %"$consume_1986" = sub i64 %"$gasrem_1982", 1 + store i64 %"$consume_1986", i64* @_gasrem, align 8 %"$res__118" = alloca %Int256, 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" + call void @llvm.dbg.declare(metadata %Int256* %"$res__118", metadata !414, metadata !DIExpression()), !dbg !415 + %"$gasrem_1987" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1988" = icmp ugt i64 1, %"$gasrem_1987" + br i1 %"$gascmp_1988", label %"$out_of_gas_1989", label %"$have_gas_1990" -"$out_of_gas_1987": ; preds = %"$have_gas_1983" +"$out_of_gas_1989": ; preds = %"$have_gas_1985" call void @_out_of_gas() - br label %"$have_gas_1988" + br label %"$have_gas_1990" -"$have_gas_1988": ; preds = %"$out_of_gas_1987", %"$have_gas_1983" - %"$consume_1989" = sub i64 %"$gasrem_1985", 1 - store i64 %"$consume_1989", i64* @_gasrem, align 8 - store %Int256 { i256 -57896044618658097711785492504343953926634992332820282019728792003956564819968 }, %Int256* %"$res__118", align 8, !dbg !140 - %"$gasrem_1990" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1991" = icmp ugt i64 1, %"$gasrem_1990" - br i1 %"$gascmp_1991", label %"$out_of_gas_1992", label %"$have_gas_1993" +"$have_gas_1990": ; preds = %"$out_of_gas_1989", %"$have_gas_1985" + %"$consume_1991" = sub i64 %"$gasrem_1987", 1 + store i64 %"$consume_1991", i64* @_gasrem, align 8 + store %Int256 { i256 -57896044618658097711785492504343953926634992332820282019728792003956564819968 }, %Int256* %"$res__118", align 8, !dbg !416 + %"$gasrem_1992" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1993" = icmp ugt i64 1, %"$gasrem_1992" + br i1 %"$gascmp_1993", label %"$out_of_gas_1994", label %"$have_gas_1995" -"$out_of_gas_1992": ; preds = %"$have_gas_1988" +"$out_of_gas_1994": ; preds = %"$have_gas_1990" call void @_out_of_gas() - br label %"$have_gas_1993" + br label %"$have_gas_1995" -"$have_gas_1993": ; preds = %"$out_of_gas_1992", %"$have_gas_1988" - %"$consume_1994" = sub i64 %"$gasrem_1990", 1 - store i64 %"$consume_1994", i64* @_gasrem, align 8 +"$have_gas_1995": ; preds = %"$out_of_gas_1994", %"$have_gas_1990" + %"$consume_1996" = sub i64 %"$gasrem_1992", 1 + store i64 %"$consume_1996", i64* @_gasrem, align 8 %"$test__119" = alloca %TName_Bool*, align 8 - %"$gasrem_1996" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1997" = icmp ugt i64 16, %"$gasrem_1996" - br i1 %"$gascmp_1997", label %"$out_of_gas_1998", label %"$have_gas_1999" - -"$out_of_gas_1998": ; preds = %"$have_gas_1993" - call void @_out_of_gas() - br label %"$have_gas_1999" - -"$have_gas_1999": ; preds = %"$out_of_gas_1998", %"$have_gas_1993" - %"$consume_2000" = sub i64 %"$gasrem_1996", 16 - store i64 %"$consume_2000", i64* @_gasrem, align 8 - %"$execptr_load_2001" = load i8*, i8** @_execptr, align 8 - %"$eq_$res_117_2002" = alloca %Int256, align 8 - %"$$res_117_2003" = load %Int256, %Int256* %"$res_117", align 8 - store %Int256 %"$$res_117_2003", %Int256* %"$eq_$res_117_2002", align 8 - %"$eq_$res__118_2004" = alloca %Int256, align 8 - %"$$res__118_2005" = load %Int256, %Int256* %"$res__118", align 8 - store %Int256 %"$$res__118_2005", %Int256* %"$eq_$res__118_2004", align 8 - %"$eq_call_2006" = call %TName_Bool* @_eq_Int256(i8* %"$execptr_load_2001", %Int256* %"$eq_$res_117_2002", %Int256* %"$eq_$res__118_2004"), !dbg !141 - store %TName_Bool* %"$eq_call_2006", %TName_Bool** %"$test__119", align 8, !dbg !141 - %"$gasrem_2008" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2009" = icmp ugt i64 1, %"$gasrem_2008" - br i1 %"$gascmp_2009", label %"$out_of_gas_2010", label %"$have_gas_2011" - -"$out_of_gas_2010": ; preds = %"$have_gas_1999" - call void @_out_of_gas() - br label %"$have_gas_2011" - -"$have_gas_2011": ; preds = %"$out_of_gas_2010", %"$have_gas_1999" - %"$consume_2012" = sub i64 %"$gasrem_2008", 1 - store i64 %"$consume_2012", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$test__119", metadata !417, metadata !DIExpression()), !dbg !418 + %"$gasrem_1998" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1999" = icmp ugt i64 16, %"$gasrem_1998" + br i1 %"$gascmp_1999", label %"$out_of_gas_2000", label %"$have_gas_2001" + +"$out_of_gas_2000": ; preds = %"$have_gas_1995" + call void @_out_of_gas() + br label %"$have_gas_2001" + +"$have_gas_2001": ; preds = %"$out_of_gas_2000", %"$have_gas_1995" + %"$consume_2002" = sub i64 %"$gasrem_1998", 16 + store i64 %"$consume_2002", i64* @_gasrem, align 8 + %"$execptr_load_2003" = load i8*, i8** @_execptr, align 8 + %"$eq_$res_117_2004" = alloca %Int256, align 8 + %"$$res_117_2005" = load %Int256, %Int256* %"$res_117", align 8 + store %Int256 %"$$res_117_2005", %Int256* %"$eq_$res_117_2004", align 8 + %"$eq_$res__118_2006" = alloca %Int256, align 8 + %"$$res__118_2007" = load %Int256, %Int256* %"$res__118", align 8 + store %Int256 %"$$res__118_2007", %Int256* %"$eq_$res__118_2006", align 8 + %"$eq_call_2008" = call %TName_Bool* @_eq_Int256(i8* %"$execptr_load_2003", %Int256* %"$eq_$res_117_2004", %Int256* %"$eq_$res__118_2006"), !dbg !419 + store %TName_Bool* %"$eq_call_2008", %TName_Bool** %"$test__119", align 8, !dbg !419 + %"$gasrem_2010" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2011" = icmp ugt i64 1, %"$gasrem_2010" + br i1 %"$gascmp_2011", label %"$out_of_gas_2012", label %"$have_gas_2013" + +"$out_of_gas_2012": ; preds = %"$have_gas_2001" + call void @_out_of_gas() + br label %"$have_gas_2013" + +"$have_gas_2013": ; preds = %"$out_of_gas_2012", %"$have_gas_2001" + %"$consume_2014" = sub i64 %"$gasrem_2010", 1 + store i64 %"$consume_2014", i64* @_gasrem, align 8 %"$BoolUtils.andb_165" = alloca { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, align 8 - %"$BoolUtils.andb_2013" = 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_2014" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_2013", 0 - %"$BoolUtils.andb_envptr_2015" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_2013", 1 - %"$$test_114_2016" = load %TName_Bool*, %TName_Bool** %"$test_114", align 8 - %"$BoolUtils.andb_call_2017" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_2014"(i8* %"$BoolUtils.andb_envptr_2015", %TName_Bool* %"$$test_114_2016"), !dbg !142 - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_2017", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_165", align 8, !dbg !142 + %"$BoolUtils.andb_2015" = 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_2016" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_2015", 0 + %"$BoolUtils.andb_envptr_2017" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_2015", 1 + %"$$test_114_2018" = load %TName_Bool*, %TName_Bool** %"$test_114", align 8 + %"$BoolUtils.andb_call_2019" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_2016"(i8* %"$BoolUtils.andb_envptr_2017", %TName_Bool* %"$$test_114_2018"), !dbg !420 + store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_2019", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_165", align 8, !dbg !420 %"$BoolUtils.andb_166" = alloca %TName_Bool*, align 8 - %"$$BoolUtils.andb_165_2018" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_165", align 8 - %"$$BoolUtils.andb_165_fptr_2019" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_165_2018", 0 - %"$$BoolUtils.andb_165_envptr_2020" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_165_2018", 1 - %"$$test__119_2021" = load %TName_Bool*, %TName_Bool** %"$test__119", align 8 - %"$$BoolUtils.andb_165_call_2022" = call %TName_Bool* %"$$BoolUtils.andb_165_fptr_2019"(i8* %"$$BoolUtils.andb_165_envptr_2020", %TName_Bool* %"$$test__119_2021"), !dbg !142 - store %TName_Bool* %"$$BoolUtils.andb_165_call_2022", %TName_Bool** %"$BoolUtils.andb_166", align 8, !dbg !142 - %"$$BoolUtils.andb_166_2023" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_166", align 8 - store %TName_Bool* %"$$BoolUtils.andb_166_2023", %TName_Bool** %"$test_120", align 8, !dbg !142 - %"$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_2026": ; preds = %"$have_gas_2011" - call void @_out_of_gas() - br label %"$have_gas_2027" - -"$have_gas_2027": ; preds = %"$out_of_gas_2026", %"$have_gas_2011" - %"$consume_2028" = sub i64 %"$gasrem_2024", 1 - store i64 %"$consume_2028", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$BoolUtils.andb_166", metadata !421, metadata !DIExpression()), !dbg !420 + %"$$BoolUtils.andb_165_2020" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_165", align 8 + %"$$BoolUtils.andb_165_fptr_2021" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_165_2020", 0 + %"$$BoolUtils.andb_165_envptr_2022" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_165_2020", 1 + %"$$test__119_2023" = load %TName_Bool*, %TName_Bool** %"$test__119", align 8 + %"$$BoolUtils.andb_165_call_2024" = call %TName_Bool* %"$$BoolUtils.andb_165_fptr_2021"(i8* %"$$BoolUtils.andb_165_envptr_2022", %TName_Bool* %"$$test__119_2023"), !dbg !420 + store %TName_Bool* %"$$BoolUtils.andb_165_call_2024", %TName_Bool** %"$BoolUtils.andb_166", align 8, !dbg !420 + %"$$BoolUtils.andb_166_2025" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_166", align 8 + store %TName_Bool* %"$$BoolUtils.andb_166_2025", %TName_Bool** %"$test_120", align 8, !dbg !420 + %"$gasrem_2026" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2027" = icmp ugt i64 1, %"$gasrem_2026" + br i1 %"$gascmp_2027", label %"$out_of_gas_2028", label %"$have_gas_2029" + +"$out_of_gas_2028": ; preds = %"$have_gas_2013" + call void @_out_of_gas() + br label %"$have_gas_2029" + +"$have_gas_2029": ; preds = %"$out_of_gas_2028", %"$have_gas_2013" + %"$consume_2030" = sub i64 %"$gasrem_2026", 1 + store i64 %"$consume_2030", i64* @_gasrem, align 8 %"$arg1_121" = alloca %Int256, align 8 - %"$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" + call void @llvm.dbg.declare(metadata %Int256* %"$arg1_121", metadata !422, metadata !DIExpression()), !dbg !423 + %"$gasrem_2031" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2032" = icmp ugt i64 1, %"$gasrem_2031" + br i1 %"$gascmp_2032", label %"$out_of_gas_2033", label %"$have_gas_2034" -"$out_of_gas_2031": ; preds = %"$have_gas_2027" +"$out_of_gas_2033": ; preds = %"$have_gas_2029" call void @_out_of_gas() - br label %"$have_gas_2032" + br label %"$have_gas_2034" -"$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 %Int256 { i256 -57896044618658097711785492504343953926634992332820282019728792003956564819968 }, %Int256* %"$arg1_121", align 8, !dbg !143 - %"$gasrem_2034" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2035" = icmp ugt i64 1, %"$gasrem_2034" - br i1 %"$gascmp_2035", label %"$out_of_gas_2036", label %"$have_gas_2037" +"$have_gas_2034": ; preds = %"$out_of_gas_2033", %"$have_gas_2029" + %"$consume_2035" = sub i64 %"$gasrem_2031", 1 + store i64 %"$consume_2035", i64* @_gasrem, align 8 + store %Int256 { i256 -57896044618658097711785492504343953926634992332820282019728792003956564819968 }, %Int256* %"$arg1_121", align 8, !dbg !424 + %"$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_2036": ; preds = %"$have_gas_2032" +"$out_of_gas_2038": ; preds = %"$have_gas_2034" call void @_out_of_gas() - br label %"$have_gas_2037" + br label %"$have_gas_2039" -"$have_gas_2037": ; preds = %"$out_of_gas_2036", %"$have_gas_2032" - %"$consume_2038" = sub i64 %"$gasrem_2034", 1 - store i64 %"$consume_2038", i64* @_gasrem, align 8 +"$have_gas_2039": ; preds = %"$out_of_gas_2038", %"$have_gas_2034" + %"$consume_2040" = sub i64 %"$gasrem_2036", 1 + store i64 %"$consume_2040", i64* @_gasrem, align 8 %"$arg2_122" = alloca %Int256, align 8 - %"$gasrem_2039" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2040" = icmp ugt i64 1, %"$gasrem_2039" - br i1 %"$gascmp_2040", label %"$out_of_gas_2041", label %"$have_gas_2042" + call void @llvm.dbg.declare(metadata %Int256* %"$arg2_122", metadata !425, metadata !DIExpression()), !dbg !426 + %"$gasrem_2041" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2042" = icmp ugt i64 1, %"$gasrem_2041" + br i1 %"$gascmp_2042", label %"$out_of_gas_2043", label %"$have_gas_2044" -"$out_of_gas_2041": ; preds = %"$have_gas_2037" +"$out_of_gas_2043": ; preds = %"$have_gas_2039" call void @_out_of_gas() - br label %"$have_gas_2042" + br label %"$have_gas_2044" -"$have_gas_2042": ; preds = %"$out_of_gas_2041", %"$have_gas_2037" - %"$consume_2043" = sub i64 %"$gasrem_2039", 1 - store i64 %"$consume_2043", i64* @_gasrem, align 8 - store %Int256 zeroinitializer, %Int256* %"$arg2_122", align 8, !dbg !144 - %"$gasrem_2044" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2045" = icmp ugt i64 1, %"$gasrem_2044" - br i1 %"$gascmp_2045", label %"$out_of_gas_2046", label %"$have_gas_2047" +"$have_gas_2044": ; preds = %"$out_of_gas_2043", %"$have_gas_2039" + %"$consume_2045" = sub i64 %"$gasrem_2041", 1 + store i64 %"$consume_2045", i64* @_gasrem, align 8 + store %Int256 zeroinitializer, %Int256* %"$arg2_122", align 8, !dbg !427 + %"$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_2046": ; preds = %"$have_gas_2042" +"$out_of_gas_2048": ; preds = %"$have_gas_2044" call void @_out_of_gas() - br label %"$have_gas_2047" + br label %"$have_gas_2049" -"$have_gas_2047": ; preds = %"$out_of_gas_2046", %"$have_gas_2042" - %"$consume_2048" = sub i64 %"$gasrem_2044", 1 - store i64 %"$consume_2048", i64* @_gasrem, align 8 +"$have_gas_2049": ; preds = %"$out_of_gas_2048", %"$have_gas_2044" + %"$consume_2050" = sub i64 %"$gasrem_2046", 1 + store i64 %"$consume_2050", i64* @_gasrem, align 8 %"$test_126" = alloca %TName_Bool*, align 8 - %"$gasrem_2049" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2050" = icmp ugt i64 1, %"$gasrem_2049" - br i1 %"$gascmp_2050", label %"$out_of_gas_2051", label %"$have_gas_2052" + call void @llvm.dbg.declare(metadata %TName_Bool** %"$test_126", metadata !428, metadata !DIExpression()), !dbg !429 + %"$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_2051": ; preds = %"$have_gas_2047" +"$out_of_gas_2053": ; preds = %"$have_gas_2049" call void @_out_of_gas() - br label %"$have_gas_2052" + br label %"$have_gas_2054" -"$have_gas_2052": ; preds = %"$out_of_gas_2051", %"$have_gas_2047" - %"$consume_2053" = sub i64 %"$gasrem_2049", 1 - store i64 %"$consume_2053", i64* @_gasrem, align 8 +"$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 %"$res_123" = alloca %Int256, align 8 - %"$gasrem_2055" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2056" = icmp ugt i64 80, %"$gasrem_2055" - br i1 %"$gascmp_2056", label %"$out_of_gas_2057", label %"$have_gas_2058" - -"$out_of_gas_2057": ; preds = %"$have_gas_2052" - call void @_out_of_gas() - br label %"$have_gas_2058" - -"$have_gas_2058": ; preds = %"$out_of_gas_2057", %"$have_gas_2052" - %"$consume_2059" = sub i64 %"$gasrem_2055", 80 - store i64 %"$consume_2059", i64* @_gasrem, align 8 - %"$execptr_load_2060" = load i8*, i8** @_execptr, align 8 - %"$mul_$arg1_121_2061" = alloca %Int256, align 8 - %"$$arg1_121_2062" = load %Int256, %Int256* %"$arg1_121", align 8 - store %Int256 %"$$arg1_121_2062", %Int256* %"$mul_$arg1_121_2061", align 8 - %"$mul_$arg2_122_2063" = alloca %Int256, align 8 - %"$$arg2_122_2064" = load %Int256, %Int256* %"$arg2_122", align 8 - store %Int256 %"$$arg2_122_2064", %Int256* %"$mul_$arg2_122_2063", align 8 - %"$mul_call_2065" = call %Int256* @_mul_Int256(i8* %"$execptr_load_2060", %Int256* %"$mul_$arg1_121_2061", %Int256* %"$mul_$arg2_122_2063"), !dbg !145 - %"$mul_2067" = load %Int256, %Int256* %"$mul_call_2065", align 8 - store %Int256 %"$mul_2067", %Int256* %"$res_123", align 8, !dbg !145 - %"$gasrem_2068" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2069" = icmp ugt i64 1, %"$gasrem_2068" - br i1 %"$gascmp_2069", label %"$out_of_gas_2070", label %"$have_gas_2071" - -"$out_of_gas_2070": ; preds = %"$have_gas_2058" - call void @_out_of_gas() - br label %"$have_gas_2071" - -"$have_gas_2071": ; preds = %"$out_of_gas_2070", %"$have_gas_2058" - %"$consume_2072" = sub i64 %"$gasrem_2068", 1 - store i64 %"$consume_2072", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %Int256* %"$res_123", metadata !430, metadata !DIExpression()), !dbg !431 + %"$gasrem_2057" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2058" = icmp ugt i64 80, %"$gasrem_2057" + br i1 %"$gascmp_2058", label %"$out_of_gas_2059", label %"$have_gas_2060" + +"$out_of_gas_2059": ; preds = %"$have_gas_2054" + call void @_out_of_gas() + br label %"$have_gas_2060" + +"$have_gas_2060": ; preds = %"$out_of_gas_2059", %"$have_gas_2054" + %"$consume_2061" = sub i64 %"$gasrem_2057", 80 + store i64 %"$consume_2061", i64* @_gasrem, align 8 + %"$execptr_load_2062" = load i8*, i8** @_execptr, align 8 + %"$mul_$arg1_121_2063" = alloca %Int256, align 8 + %"$$arg1_121_2064" = load %Int256, %Int256* %"$arg1_121", align 8 + store %Int256 %"$$arg1_121_2064", %Int256* %"$mul_$arg1_121_2063", align 8 + %"$mul_$arg2_122_2065" = alloca %Int256, align 8 + %"$$arg2_122_2066" = load %Int256, %Int256* %"$arg2_122", align 8 + store %Int256 %"$$arg2_122_2066", %Int256* %"$mul_$arg2_122_2065", align 8 + %"$mul_call_2067" = call %Int256* @_mul_Int256(i8* %"$execptr_load_2062", %Int256* %"$mul_$arg1_121_2063", %Int256* %"$mul_$arg2_122_2065"), !dbg !432 + %"$mul_2069" = load %Int256, %Int256* %"$mul_call_2067", align 8 + store %Int256 %"$mul_2069", %Int256* %"$res_123", align 8, !dbg !432 + %"$gasrem_2070" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2071" = icmp ugt i64 1, %"$gasrem_2070" + br i1 %"$gascmp_2071", label %"$out_of_gas_2072", label %"$have_gas_2073" + +"$out_of_gas_2072": ; preds = %"$have_gas_2060" + call void @_out_of_gas() + br label %"$have_gas_2073" + +"$have_gas_2073": ; preds = %"$out_of_gas_2072", %"$have_gas_2060" + %"$consume_2074" = sub i64 %"$gasrem_2070", 1 + store i64 %"$consume_2074", i64* @_gasrem, align 8 %"$res__124" = alloca %Int256, align 8 - %"$gasrem_2073" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2074" = icmp ugt i64 1, %"$gasrem_2073" - br i1 %"$gascmp_2074", label %"$out_of_gas_2075", label %"$have_gas_2076" + call void @llvm.dbg.declare(metadata %Int256* %"$res__124", metadata !433, metadata !DIExpression()), !dbg !434 + %"$gasrem_2075" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2076" = icmp ugt i64 1, %"$gasrem_2075" + br i1 %"$gascmp_2076", label %"$out_of_gas_2077", label %"$have_gas_2078" -"$out_of_gas_2075": ; preds = %"$have_gas_2071" +"$out_of_gas_2077": ; preds = %"$have_gas_2073" call void @_out_of_gas() - br label %"$have_gas_2076" + br label %"$have_gas_2078" -"$have_gas_2076": ; preds = %"$out_of_gas_2075", %"$have_gas_2071" - %"$consume_2077" = sub i64 %"$gasrem_2073", 1 - store i64 %"$consume_2077", i64* @_gasrem, align 8 - store %Int256 zeroinitializer, %Int256* %"$res__124", align 8, !dbg !146 - %"$gasrem_2078" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2079" = icmp ugt i64 1, %"$gasrem_2078" - br i1 %"$gascmp_2079", label %"$out_of_gas_2080", label %"$have_gas_2081" +"$have_gas_2078": ; preds = %"$out_of_gas_2077", %"$have_gas_2073" + %"$consume_2079" = sub i64 %"$gasrem_2075", 1 + store i64 %"$consume_2079", i64* @_gasrem, align 8 + store %Int256 zeroinitializer, %Int256* %"$res__124", align 8, !dbg !435 + %"$gasrem_2080" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2081" = icmp ugt i64 1, %"$gasrem_2080" + br i1 %"$gascmp_2081", label %"$out_of_gas_2082", label %"$have_gas_2083" -"$out_of_gas_2080": ; preds = %"$have_gas_2076" +"$out_of_gas_2082": ; preds = %"$have_gas_2078" call void @_out_of_gas() - br label %"$have_gas_2081" + br label %"$have_gas_2083" -"$have_gas_2081": ; preds = %"$out_of_gas_2080", %"$have_gas_2076" - %"$consume_2082" = sub i64 %"$gasrem_2078", 1 - store i64 %"$consume_2082", i64* @_gasrem, align 8 +"$have_gas_2083": ; preds = %"$out_of_gas_2082", %"$have_gas_2078" + %"$consume_2084" = sub i64 %"$gasrem_2080", 1 + store i64 %"$consume_2084", i64* @_gasrem, align 8 %"$test__125" = alloca %TName_Bool*, align 8 - %"$gasrem_2084" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2085" = icmp ugt i64 16, %"$gasrem_2084" - br i1 %"$gascmp_2085", label %"$out_of_gas_2086", label %"$have_gas_2087" - -"$out_of_gas_2086": ; preds = %"$have_gas_2081" - call void @_out_of_gas() - br label %"$have_gas_2087" - -"$have_gas_2087": ; preds = %"$out_of_gas_2086", %"$have_gas_2081" - %"$consume_2088" = sub i64 %"$gasrem_2084", 16 - store i64 %"$consume_2088", i64* @_gasrem, align 8 - %"$execptr_load_2089" = load i8*, i8** @_execptr, align 8 - %"$eq_$res_123_2090" = alloca %Int256, align 8 - %"$$res_123_2091" = load %Int256, %Int256* %"$res_123", align 8 - store %Int256 %"$$res_123_2091", %Int256* %"$eq_$res_123_2090", align 8 - %"$eq_$res__124_2092" = alloca %Int256, align 8 - %"$$res__124_2093" = load %Int256, %Int256* %"$res__124", align 8 - store %Int256 %"$$res__124_2093", %Int256* %"$eq_$res__124_2092", align 8 - %"$eq_call_2094" = call %TName_Bool* @_eq_Int256(i8* %"$execptr_load_2089", %Int256* %"$eq_$res_123_2090", %Int256* %"$eq_$res__124_2092"), !dbg !147 - store %TName_Bool* %"$eq_call_2094", %TName_Bool** %"$test__125", align 8, !dbg !147 - %"$gasrem_2096" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2097" = icmp ugt i64 1, %"$gasrem_2096" - br i1 %"$gascmp_2097", label %"$out_of_gas_2098", label %"$have_gas_2099" - -"$out_of_gas_2098": ; preds = %"$have_gas_2087" - call void @_out_of_gas() - br label %"$have_gas_2099" - -"$have_gas_2099": ; preds = %"$out_of_gas_2098", %"$have_gas_2087" - %"$consume_2100" = sub i64 %"$gasrem_2096", 1 - store i64 %"$consume_2100", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$test__125", metadata !436, metadata !DIExpression()), !dbg !437 + %"$gasrem_2086" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2087" = icmp ugt i64 16, %"$gasrem_2086" + br i1 %"$gascmp_2087", label %"$out_of_gas_2088", label %"$have_gas_2089" + +"$out_of_gas_2088": ; preds = %"$have_gas_2083" + call void @_out_of_gas() + br label %"$have_gas_2089" + +"$have_gas_2089": ; preds = %"$out_of_gas_2088", %"$have_gas_2083" + %"$consume_2090" = sub i64 %"$gasrem_2086", 16 + store i64 %"$consume_2090", i64* @_gasrem, align 8 + %"$execptr_load_2091" = load i8*, i8** @_execptr, align 8 + %"$eq_$res_123_2092" = alloca %Int256, align 8 + %"$$res_123_2093" = load %Int256, %Int256* %"$res_123", align 8 + store %Int256 %"$$res_123_2093", %Int256* %"$eq_$res_123_2092", align 8 + %"$eq_$res__124_2094" = alloca %Int256, align 8 + %"$$res__124_2095" = load %Int256, %Int256* %"$res__124", align 8 + store %Int256 %"$$res__124_2095", %Int256* %"$eq_$res__124_2094", align 8 + %"$eq_call_2096" = call %TName_Bool* @_eq_Int256(i8* %"$execptr_load_2091", %Int256* %"$eq_$res_123_2092", %Int256* %"$eq_$res__124_2094"), !dbg !438 + store %TName_Bool* %"$eq_call_2096", %TName_Bool** %"$test__125", align 8, !dbg !438 + %"$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_2100": ; preds = %"$have_gas_2089" + call void @_out_of_gas() + br label %"$have_gas_2101" + +"$have_gas_2101": ; preds = %"$out_of_gas_2100", %"$have_gas_2089" + %"$consume_2102" = sub i64 %"$gasrem_2098", 1 + store i64 %"$consume_2102", i64* @_gasrem, align 8 %"$BoolUtils.andb_167" = alloca { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, align 8 - %"$BoolUtils.andb_2101" = 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_2102" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_2101", 0 - %"$BoolUtils.andb_envptr_2103" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_2101", 1 - %"$$test_120_2104" = load %TName_Bool*, %TName_Bool** %"$test_120", align 8 - %"$BoolUtils.andb_call_2105" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_2102"(i8* %"$BoolUtils.andb_envptr_2103", %TName_Bool* %"$$test_120_2104"), !dbg !148 - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_2105", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_167", align 8, !dbg !148 + %"$BoolUtils.andb_2103" = 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_2104" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_2103", 0 + %"$BoolUtils.andb_envptr_2105" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_2103", 1 + %"$$test_120_2106" = load %TName_Bool*, %TName_Bool** %"$test_120", align 8 + %"$BoolUtils.andb_call_2107" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_2104"(i8* %"$BoolUtils.andb_envptr_2105", %TName_Bool* %"$$test_120_2106"), !dbg !439 + store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_2107", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_167", align 8, !dbg !439 %"$BoolUtils.andb_168" = alloca %TName_Bool*, align 8 - %"$$BoolUtils.andb_167_2106" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_167", align 8 - %"$$BoolUtils.andb_167_fptr_2107" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_167_2106", 0 - %"$$BoolUtils.andb_167_envptr_2108" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_167_2106", 1 - %"$$test__125_2109" = load %TName_Bool*, %TName_Bool** %"$test__125", align 8 - %"$$BoolUtils.andb_167_call_2110" = call %TName_Bool* %"$$BoolUtils.andb_167_fptr_2107"(i8* %"$$BoolUtils.andb_167_envptr_2108", %TName_Bool* %"$$test__125_2109"), !dbg !148 - store %TName_Bool* %"$$BoolUtils.andb_167_call_2110", %TName_Bool** %"$BoolUtils.andb_168", align 8, !dbg !148 - %"$$BoolUtils.andb_168_2111" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_168", align 8 - store %TName_Bool* %"$$BoolUtils.andb_168_2111", %TName_Bool** %"$test_126", align 8, !dbg !148 - %"$gasrem_2112" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2113" = icmp ugt i64 1, %"$gasrem_2112" - br i1 %"$gascmp_2113", label %"$out_of_gas_2114", label %"$have_gas_2115" - -"$out_of_gas_2114": ; preds = %"$have_gas_2099" - call void @_out_of_gas() - br label %"$have_gas_2115" - -"$have_gas_2115": ; preds = %"$out_of_gas_2114", %"$have_gas_2099" - %"$consume_2116" = sub i64 %"$gasrem_2112", 1 - store i64 %"$consume_2116", i64* @_gasrem, align 8 - %"$$test_126_2117" = load %TName_Bool*, %TName_Bool** %"$test_126", align 8 - store %TName_Bool* %"$$test_126_2117", %TName_Bool** %"$expr_173", align 8, !dbg !149 - %"$$expr_173_2118" = load %TName_Bool*, %TName_Bool** %"$expr_173", align 8 - ret %TName_Bool* %"$$expr_173_2118" + call void @llvm.dbg.declare(metadata %TName_Bool** %"$BoolUtils.andb_168", metadata !440, metadata !DIExpression()), !dbg !439 + %"$$BoolUtils.andb_167_2108" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_167", align 8 + %"$$BoolUtils.andb_167_fptr_2109" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_167_2108", 0 + %"$$BoolUtils.andb_167_envptr_2110" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_167_2108", 1 + %"$$test__125_2111" = load %TName_Bool*, %TName_Bool** %"$test__125", align 8 + %"$$BoolUtils.andb_167_call_2112" = call %TName_Bool* %"$$BoolUtils.andb_167_fptr_2109"(i8* %"$$BoolUtils.andb_167_envptr_2110", %TName_Bool* %"$$test__125_2111"), !dbg !439 + store %TName_Bool* %"$$BoolUtils.andb_167_call_2112", %TName_Bool** %"$BoolUtils.andb_168", align 8, !dbg !439 + %"$$BoolUtils.andb_168_2113" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_168", align 8 + store %TName_Bool* %"$$BoolUtils.andb_168_2113", %TName_Bool** %"$test_126", align 8, !dbg !439 + %"$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_2116": ; preds = %"$have_gas_2101" + call void @_out_of_gas() + br label %"$have_gas_2117" + +"$have_gas_2117": ; preds = %"$out_of_gas_2116", %"$have_gas_2101" + %"$consume_2118" = sub i64 %"$gasrem_2114", 1 + store i64 %"$consume_2118", i64* @_gasrem, align 8 + %"$$test_126_2119" = load %TName_Bool*, %TName_Bool** %"$test_126", align 8 + store %TName_Bool* %"$$test_126_2119", %TName_Bool** %"$expr_173", align 8, !dbg !441 + %"$$expr_173_2120" = load %TName_Bool*, %TName_Bool** %"$expr_173", align 8 + ret %TName_Bool* %"$$expr_173_2120" } declare %Uint32 @_mul_Uint32(%Uint32, %Uint32) @@ -4193,163 +4352,457 @@ declare void @_print_scilla_val(i8*, %_TyDescrTy_Typ*, i8*) define void @scilla_main() { entry: - %"$exprval_2119" = call %TName_Bool* @_scilla_expr_fun(i8* null) - %"$memvoidcast_2120" = bitcast %TName_Bool* %"$exprval_2119" to i8* - %"$execptr_load_2121" = load i8*, i8** @_execptr, align 8 - call void @_print_scilla_val(i8* %"$execptr_load_2121", %_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_208", i8* %"$memvoidcast_2120") + %"$exprval_2121" = call %TName_Bool* @_scilla_expr_fun(i8* null) + %"$memvoidcast_2122" = bitcast %TName_Bool* %"$exprval_2121" to i8* + %"$execptr_load_2123" = load i8*, i8** @_execptr, align 8 + call void @_print_scilla_val(i8* %"$execptr_load_2123", %_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_208", i8* %"$memvoidcast_2122") ret void } +attributes #0 = { nocallback nofree nosync nounwind readnone speculatable willreturn } + !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) +!1 = distinct !DICompileUnit(language: DW_LANG_C89, file: !2, producer: "Scilla Compiler", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false) !2 = !DIFile(filename: "builtin_mul.scilexp", directory: "codegen/expr") -!3 = !{} -!4 = distinct !DISubprogram(name: "$fundef_171", linkageName: "$fundef_171", scope: !5, file: !5, line: 8, type: !6, scopeLine: 8, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!5 = !DIFile(filename: "BoolUtils.scillib", directory: "../src/stdlib") -!6 = !DISubroutineType(types: !7) -!7 = !{!8} -!8 = !DIBasicType(tag: DW_TAG_unspecified_type, name: "void") -!9 = !DILocation(line: 8, column: 5, scope: !4) -!10 = !DILocation(line: 9, column: 16, scope: !11) -!11 = distinct !DILexicalBlock(scope: !12, file: !5, line: 9, column: 7) -!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_169", linkageName: "$fundef_169", 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: 0, scope: !17) -!20 = !DILocation(line: 7, column: 3, scope: !17) -!21 = distinct !DISubprogram(name: "_scilla_expr_fun", linkageName: "_scilla_expr_fun", scope: !2, file: !2, line: 1, type: !6, scopeLine: 1, spFlags: DISPFlagDefinition, unit: !1, retainedNodes: !3) -!22 = !DILocation(line: 2, column: 12, scope: !21) -!23 = !DILocation(line: 4, column: 12, scope: !21) -!24 = !DILocation(line: 5, column: 12, scope: !21) -!25 = !DILocation(line: 7, column: 13, scope: !21) -!26 = !DILocation(line: 8, column: 14, scope: !21) -!27 = !DILocation(line: 9, column: 15, scope: !21) -!28 = !DILocation(line: 10, column: 3, scope: !21) -!29 = !DILocation(line: 13, column: 12, scope: !21) -!30 = !DILocation(line: 14, column: 12, scope: !21) -!31 = !DILocation(line: 16, column: 13, scope: !21) -!32 = !DILocation(line: 17, column: 14, scope: !21) -!33 = !DILocation(line: 18, column: 15, scope: !21) -!34 = !DILocation(line: 19, column: 3, scope: !21) -!35 = !DILocation(line: 22, column: 12, scope: !21) -!36 = !DILocation(line: 23, column: 12, scope: !21) -!37 = !DILocation(line: 25, column: 13, scope: !21) -!38 = !DILocation(line: 26, column: 14, scope: !21) -!39 = !DILocation(line: 27, column: 15, scope: !21) -!40 = !DILocation(line: 28, column: 3, scope: !21) -!41 = !DILocation(line: 31, column: 12, scope: !21) -!42 = !DILocation(line: 32, column: 12, scope: !21) -!43 = !DILocation(line: 34, column: 13, scope: !21) -!44 = !DILocation(line: 35, column: 14, scope: !21) -!45 = !DILocation(line: 36, column: 15, scope: !21) -!46 = !DILocation(line: 37, column: 3, scope: !21) -!47 = !DILocation(line: 40, column: 12, scope: !21) -!48 = !DILocation(line: 41, column: 12, scope: !21) -!49 = !DILocation(line: 43, column: 13, scope: !21) -!50 = !DILocation(line: 44, column: 14, scope: !21) -!51 = !DILocation(line: 45, column: 15, scope: !21) -!52 = !DILocation(line: 46, column: 3, scope: !21) -!53 = !DILocation(line: 49, column: 12, scope: !21) -!54 = !DILocation(line: 50, column: 12, scope: !21) -!55 = !DILocation(line: 52, column: 13, scope: !21) -!56 = !DILocation(line: 53, column: 14, scope: !21) -!57 = !DILocation(line: 54, column: 15, scope: !21) -!58 = !DILocation(line: 55, column: 3, scope: !21) -!59 = !DILocation(line: 58, column: 12, scope: !21) -!60 = !DILocation(line: 59, column: 12, scope: !21) -!61 = !DILocation(line: 61, column: 13, scope: !21) -!62 = !DILocation(line: 62, column: 14, scope: !21) -!63 = !DILocation(line: 63, column: 15, scope: !21) -!64 = !DILocation(line: 64, column: 3, scope: !21) -!65 = !DILocation(line: 67, column: 12, scope: !21) -!66 = !DILocation(line: 68, column: 12, scope: !21) -!67 = !DILocation(line: 70, column: 13, scope: !21) -!68 = !DILocation(line: 71, column: 14, scope: !21) -!69 = !DILocation(line: 72, column: 15, scope: !21) -!70 = !DILocation(line: 73, column: 3, scope: !21) -!71 = !DILocation(line: 76, column: 12, scope: !21) -!72 = !DILocation(line: 77, column: 12, scope: !21) -!73 = !DILocation(line: 79, column: 13, scope: !21) -!74 = !DILocation(line: 80, column: 14, scope: !21) -!75 = !DILocation(line: 81, column: 15, scope: !21) -!76 = !DILocation(line: 82, column: 3, scope: !21) -!77 = !DILocation(line: 85, column: 12, scope: !21) -!78 = !DILocation(line: 86, column: 12, scope: !21) -!79 = !DILocation(line: 88, column: 13, scope: !21) -!80 = !DILocation(line: 89, column: 14, scope: !21) -!81 = !DILocation(line: 90, column: 15, scope: !21) -!82 = !DILocation(line: 91, column: 3, scope: !21) -!83 = !DILocation(line: 94, column: 12, scope: !21) -!84 = !DILocation(line: 95, column: 12, scope: !21) -!85 = !DILocation(line: 97, column: 13, scope: !21) -!86 = !DILocation(line: 98, column: 14, scope: !21) -!87 = !DILocation(line: 99, column: 15, scope: !21) -!88 = !DILocation(line: 100, column: 3, scope: !21) -!89 = !DILocation(line: 103, column: 12, scope: !21) -!90 = !DILocation(line: 104, column: 12, scope: !21) -!91 = !DILocation(line: 106, column: 13, scope: !21) -!92 = !DILocation(line: 107, column: 14, scope: !21) -!93 = !DILocation(line: 108, column: 15, scope: !21) -!94 = !DILocation(line: 109, column: 3, scope: !21) -!95 = !DILocation(line: 112, column: 12, scope: !21) -!96 = !DILocation(line: 113, column: 12, scope: !21) -!97 = !DILocation(line: 115, column: 13, scope: !21) -!98 = !DILocation(line: 116, column: 14, scope: !21) -!99 = !DILocation(line: 117, column: 15, scope: !21) -!100 = !DILocation(line: 118, column: 3, scope: !21) -!101 = !DILocation(line: 121, column: 12, scope: !21) -!102 = !DILocation(line: 122, column: 12, scope: !21) -!103 = !DILocation(line: 124, column: 13, scope: !21) -!104 = !DILocation(line: 125, column: 14, scope: !21) -!105 = !DILocation(line: 126, column: 15, scope: !21) -!106 = !DILocation(line: 127, column: 3, scope: !21) -!107 = !DILocation(line: 130, column: 12, scope: !21) -!108 = !DILocation(line: 131, column: 12, scope: !21) -!109 = !DILocation(line: 133, column: 13, scope: !21) -!110 = !DILocation(line: 134, column: 14, scope: !21) -!111 = !DILocation(line: 135, column: 15, scope: !21) -!112 = !DILocation(line: 136, column: 3, scope: !21) -!113 = !DILocation(line: 139, column: 12, scope: !21) -!114 = !DILocation(line: 140, column: 12, scope: !21) -!115 = !DILocation(line: 142, column: 13, scope: !21) -!116 = !DILocation(line: 143, column: 14, scope: !21) -!117 = !DILocation(line: 144, column: 15, scope: !21) -!118 = !DILocation(line: 145, column: 3, scope: !21) -!119 = !DILocation(line: 148, column: 12, scope: !21) -!120 = !DILocation(line: 149, column: 12, scope: !21) -!121 = !DILocation(line: 151, column: 13, scope: !21) -!122 = !DILocation(line: 152, column: 14, scope: !21) -!123 = !DILocation(line: 153, column: 15, scope: !21) -!124 = !DILocation(line: 154, column: 3, scope: !21) -!125 = !DILocation(line: 157, column: 12, scope: !21) -!126 = !DILocation(line: 158, column: 12, scope: !21) -!127 = !DILocation(line: 160, column: 13, scope: !21) -!128 = !DILocation(line: 161, column: 14, scope: !21) -!129 = !DILocation(line: 162, column: 15, scope: !21) -!130 = !DILocation(line: 163, column: 3, scope: !21) -!131 = !DILocation(line: 166, column: 12, scope: !21) -!132 = !DILocation(line: 167, column: 12, scope: !21) -!133 = !DILocation(line: 169, column: 13, scope: !21) -!134 = !DILocation(line: 170, column: 14, scope: !21) -!135 = !DILocation(line: 171, column: 15, scope: !21) -!136 = !DILocation(line: 172, column: 3, scope: !21) -!137 = !DILocation(line: 175, column: 12, scope: !21) -!138 = !DILocation(line: 176, column: 12, scope: !21) -!139 = !DILocation(line: 178, column: 13, scope: !21) -!140 = !DILocation(line: 179, column: 14, scope: !21) -!141 = !DILocation(line: 180, column: 15, scope: !21) -!142 = !DILocation(line: 181, column: 3, scope: !21) -!143 = !DILocation(line: 184, column: 12, scope: !21) -!144 = !DILocation(line: 185, column: 12, scope: !21) -!145 = !DILocation(line: 187, column: 13, scope: !21) -!146 = !DILocation(line: 188, column: 14, scope: !21) -!147 = !DILocation(line: 189, column: 15, scope: !21) -!148 = !DILocation(line: 190, column: 3, scope: !21) -!149 = !DILocation(line: 193, column: 1, scope: !21) +!3 = distinct !DISubprogram(name: "$fundef_171", linkageName: "$fundef_171", scope: !4, file: !4, line: 8, type: !5, scopeLine: 8, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!4 = !DIFile(filename: "BoolUtils.scillib", directory: "../src/stdlib") +!5 = !DISubroutineType(types: !6) +!6 = !{!7} +!7 = !DIBasicType(tag: DW_TAG_unspecified_type, name: "void") +!8 = !{} +!9 = !DILocalVariable(name: "c", scope: !3, file: !4, line: 7, type: !10) +!10 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "Bool", baseType: !11, size: 8, align: 8, dwarfAddressSpace: 0) +!11 = !DIBasicType(name: "Bool", size: 8) +!12 = !DILocation(line: 7, column: 8, scope: !3) +!13 = !DILocalVariable(name: "$retval_172", scope: !3, file: !4, line: 8, type: !10) +!14 = !DILocation(line: 8, column: 5, scope: !3) +!15 = !DILocation(line: 9, column: 16, scope: !16) +!16 = distinct !DILexicalBlock(scope: !17, file: !4, line: 9, column: 7) +!17 = distinct !DILexicalBlock(scope: !3, file: !4, line: 8, column: 5) +!18 = !DILocation(line: 10, column: 16, scope: !19) +!19 = distinct !DILexicalBlock(scope: !17, file: !4, line: 10, column: 7) +!20 = distinct !DISubprogram(name: "$fundef_169", linkageName: "$fundef_169", scope: !4, file: !4, line: 7, type: !5, scopeLine: 7, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!21 = !DILocalVariable(name: "b", scope: !20, file: !4, line: 6, type: !10) +!22 = !DILocation(line: 6, column: 8, scope: !20) +!23 = !DILocation(line: 8, column: 5, scope: !20) +!24 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !25, file: !25, type: !5, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!25 = !DIFile(filename: ".", directory: ".") +!26 = !DILocation(line: 0, scope: !24) +!27 = !DILocation(line: 7, column: 3, scope: !24) +!28 = distinct !DISubprogram(name: "_scilla_expr_fun", linkageName: "_scilla_expr_fun", scope: !2, file: !2, line: 1, type: !5, scopeLine: 1, spFlags: DISPFlagDefinition, unit: !1, retainedNodes: !8) +!29 = !DILocalVariable(name: "$expr_173", scope: !28, file: !2, line: 1, type: !10) +!30 = !DILocation(line: 1, column: 13, scope: !28) +!31 = !DILocalVariable(name: "test", scope: !28, file: !2, line: 2, type: !10) +!32 = !DILocation(line: 2, column: 5, scope: !28) +!33 = !DILocation(line: 2, column: 12, scope: !28) +!34 = !DILocalVariable(name: "arg1", scope: !28, file: !2, line: 4, type: !35) +!35 = !DIBasicType(name: "Uint32", size: 4) +!36 = !DILocation(line: 4, column: 5, scope: !28) +!37 = !DILocation(line: 4, column: 12, scope: !28) +!38 = !DILocalVariable(name: "arg2", scope: !28, file: !2, line: 5, type: !35) +!39 = !DILocation(line: 5, column: 5, scope: !28) +!40 = !DILocation(line: 5, column: 12, scope: !28) +!41 = !DILocalVariable(name: "$test_6", scope: !28, file: !2, line: 6, type: !10) +!42 = !DILocation(line: 6, column: 5, scope: !28) +!43 = !DILocalVariable(name: "res", scope: !28, file: !2, line: 7, type: !35) +!44 = !DILocation(line: 7, column: 7, scope: !28) +!45 = !DILocation(line: 7, column: 13, scope: !28) +!46 = !DILocalVariable(name: "res_", scope: !28, file: !2, line: 8, type: !35) +!47 = !DILocation(line: 8, column: 7, scope: !28) +!48 = !DILocation(line: 8, column: 14, scope: !28) +!49 = !DILocalVariable(name: "test_", scope: !28, file: !2, line: 9, type: !10) +!50 = !DILocation(line: 9, column: 7, scope: !28) +!51 = !DILocation(line: 9, column: 15, scope: !28) +!52 = !DILocation(line: 10, column: 3, scope: !28) +!53 = !DILocalVariable(name: "$BoolUtils.andb_128", scope: !28, file: !2, line: 10, type: !10) +!54 = !DILocalVariable(name: "$arg2_7", scope: !28, file: !2, line: 13, type: !55) +!55 = !DIBasicType(name: "Int32", size: 4) +!56 = !DILocation(line: 13, column: 5, scope: !28) +!57 = !DILocation(line: 13, column: 12, scope: !28) +!58 = !DILocalVariable(name: "$arg1_8", scope: !28, file: !2, line: 14, type: !55) +!59 = !DILocation(line: 14, column: 5, scope: !28) +!60 = !DILocation(line: 14, column: 12, scope: !28) +!61 = !DILocalVariable(name: "$test_12", scope: !28, file: !2, line: 15, type: !10) +!62 = !DILocation(line: 15, column: 5, scope: !28) +!63 = !DILocalVariable(name: "$res_9", scope: !28, file: !2, line: 16, type: !55) +!64 = !DILocation(line: 16, column: 7, scope: !28) +!65 = !DILocation(line: 16, column: 13, scope: !28) +!66 = !DILocalVariable(name: "$res__10", scope: !28, file: !2, line: 17, type: !55) +!67 = !DILocation(line: 17, column: 7, scope: !28) +!68 = !DILocation(line: 17, column: 14, scope: !28) +!69 = !DILocalVariable(name: "$test__11", scope: !28, file: !2, line: 18, type: !10) +!70 = !DILocation(line: 18, column: 7, scope: !28) +!71 = !DILocation(line: 18, column: 15, scope: !28) +!72 = !DILocation(line: 19, column: 3, scope: !28) +!73 = !DILocalVariable(name: "$BoolUtils.andb_130", scope: !28, file: !2, line: 19, type: !10) +!74 = !DILocalVariable(name: "$arg1_13", scope: !28, file: !2, line: 22, type: !75) +!75 = !DIBasicType(name: "Int64", size: 8) +!76 = !DILocation(line: 22, column: 5, scope: !28) +!77 = !DILocation(line: 22, column: 12, scope: !28) +!78 = !DILocalVariable(name: "$arg2_14", scope: !28, file: !2, line: 23, type: !75) +!79 = !DILocation(line: 23, column: 5, scope: !28) +!80 = !DILocation(line: 23, column: 12, scope: !28) +!81 = !DILocalVariable(name: "$test_18", scope: !28, file: !2, line: 24, type: !10) +!82 = !DILocation(line: 24, column: 5, scope: !28) +!83 = !DILocalVariable(name: "$res_15", scope: !28, file: !2, line: 25, type: !75) +!84 = !DILocation(line: 25, column: 7, scope: !28) +!85 = !DILocation(line: 25, column: 13, scope: !28) +!86 = !DILocalVariable(name: "$res__16", scope: !28, file: !2, line: 26, type: !75) +!87 = !DILocation(line: 26, column: 7, scope: !28) +!88 = !DILocation(line: 26, column: 14, scope: !28) +!89 = !DILocalVariable(name: "$test__17", scope: !28, file: !2, line: 27, type: !10) +!90 = !DILocation(line: 27, column: 7, scope: !28) +!91 = !DILocation(line: 27, column: 15, scope: !28) +!92 = !DILocation(line: 28, column: 3, scope: !28) +!93 = !DILocalVariable(name: "$BoolUtils.andb_132", scope: !28, file: !2, line: 28, type: !10) +!94 = !DILocalVariable(name: "$arg2_19", scope: !28, file: !2, line: 31, type: !95) +!95 = !DIBasicType(name: "Uint64", size: 8) +!96 = !DILocation(line: 31, column: 5, scope: !28) +!97 = !DILocation(line: 31, column: 12, scope: !28) +!98 = !DILocalVariable(name: "$arg1_20", scope: !28, file: !2, line: 32, type: !95) +!99 = !DILocation(line: 32, column: 5, scope: !28) +!100 = !DILocation(line: 32, column: 12, scope: !28) +!101 = !DILocalVariable(name: "$test_24", scope: !28, file: !2, line: 33, type: !10) +!102 = !DILocation(line: 33, column: 5, scope: !28) +!103 = !DILocalVariable(name: "$res_21", scope: !28, file: !2, line: 34, type: !95) +!104 = !DILocation(line: 34, column: 7, scope: !28) +!105 = !DILocation(line: 34, column: 13, scope: !28) +!106 = !DILocalVariable(name: "$res__22", scope: !28, file: !2, line: 35, type: !95) +!107 = !DILocation(line: 35, column: 7, scope: !28) +!108 = !DILocation(line: 35, column: 14, scope: !28) +!109 = !DILocalVariable(name: "$test__23", scope: !28, file: !2, line: 36, type: !10) +!110 = !DILocation(line: 36, column: 7, scope: !28) +!111 = !DILocation(line: 36, column: 15, scope: !28) +!112 = !DILocation(line: 37, column: 3, scope: !28) +!113 = !DILocalVariable(name: "$BoolUtils.andb_134", scope: !28, file: !2, line: 37, type: !10) +!114 = !DILocalVariable(name: "$arg1_25", scope: !28, file: !2, line: 40, type: !115) +!115 = !DIBasicType(name: "Uint128", size: 16) +!116 = !DILocation(line: 40, column: 5, scope: !28) +!117 = !DILocation(line: 40, column: 12, scope: !28) +!118 = !DILocalVariable(name: "$arg2_26", scope: !28, file: !2, line: 41, type: !115) +!119 = !DILocation(line: 41, column: 5, scope: !28) +!120 = !DILocation(line: 41, column: 12, scope: !28) +!121 = !DILocalVariable(name: "$test_30", scope: !28, file: !2, line: 42, type: !10) +!122 = !DILocation(line: 42, column: 5, scope: !28) +!123 = !DILocalVariable(name: "$res_27", scope: !28, file: !2, line: 43, type: !115) +!124 = !DILocation(line: 43, column: 7, scope: !28) +!125 = !DILocation(line: 43, column: 13, scope: !28) +!126 = !DILocalVariable(name: "$res__28", scope: !28, file: !2, line: 44, type: !115) +!127 = !DILocation(line: 44, column: 7, scope: !28) +!128 = !DILocation(line: 44, column: 14, scope: !28) +!129 = !DILocalVariable(name: "$test__29", scope: !28, file: !2, line: 45, type: !10) +!130 = !DILocation(line: 45, column: 7, scope: !28) +!131 = !DILocation(line: 45, column: 15, scope: !28) +!132 = !DILocation(line: 46, column: 3, scope: !28) +!133 = !DILocalVariable(name: "$BoolUtils.andb_136", scope: !28, file: !2, line: 46, type: !10) +!134 = !DILocalVariable(name: "$arg1_31", scope: !28, file: !2, line: 49, type: !135) +!135 = !DIBasicType(name: "Int128", size: 16) +!136 = !DILocation(line: 49, column: 5, scope: !28) +!137 = !DILocation(line: 49, column: 12, scope: !28) +!138 = !DILocalVariable(name: "$arg2_32", scope: !28, file: !2, line: 50, type: !135) +!139 = !DILocation(line: 50, column: 5, scope: !28) +!140 = !DILocation(line: 50, column: 12, scope: !28) +!141 = !DILocalVariable(name: "$test_36", scope: !28, file: !2, line: 51, type: !10) +!142 = !DILocation(line: 51, column: 5, scope: !28) +!143 = !DILocalVariable(name: "$res_33", scope: !28, file: !2, line: 52, type: !135) +!144 = !DILocation(line: 52, column: 7, scope: !28) +!145 = !DILocation(line: 52, column: 13, scope: !28) +!146 = !DILocalVariable(name: "$res__34", scope: !28, file: !2, line: 53, type: !135) +!147 = !DILocation(line: 53, column: 7, scope: !28) +!148 = !DILocation(line: 53, column: 14, scope: !28) +!149 = !DILocalVariable(name: "$test__35", scope: !28, file: !2, line: 54, type: !10) +!150 = !DILocation(line: 54, column: 7, scope: !28) +!151 = !DILocation(line: 54, column: 15, scope: !28) +!152 = !DILocation(line: 55, column: 3, scope: !28) +!153 = !DILocalVariable(name: "$BoolUtils.andb_138", scope: !28, file: !2, line: 55, type: !10) +!154 = !DILocalVariable(name: "$arg1_37", scope: !28, file: !2, line: 58, type: !135) +!155 = !DILocation(line: 58, column: 5, scope: !28) +!156 = !DILocation(line: 58, column: 12, scope: !28) +!157 = !DILocalVariable(name: "$arg2_38", scope: !28, file: !2, line: 59, type: !135) +!158 = !DILocation(line: 59, column: 5, scope: !28) +!159 = !DILocation(line: 59, column: 12, scope: !28) +!160 = !DILocalVariable(name: "$test_42", scope: !28, file: !2, line: 60, type: !10) +!161 = !DILocation(line: 60, column: 5, scope: !28) +!162 = !DILocalVariable(name: "$res_39", scope: !28, file: !2, line: 61, type: !135) +!163 = !DILocation(line: 61, column: 7, scope: !28) +!164 = !DILocation(line: 61, column: 13, scope: !28) +!165 = !DILocalVariable(name: "$res__40", scope: !28, file: !2, line: 62, type: !135) +!166 = !DILocation(line: 62, column: 7, scope: !28) +!167 = !DILocation(line: 62, column: 14, scope: !28) +!168 = !DILocalVariable(name: "$test__41", scope: !28, file: !2, line: 63, type: !10) +!169 = !DILocation(line: 63, column: 7, scope: !28) +!170 = !DILocation(line: 63, column: 15, scope: !28) +!171 = !DILocation(line: 64, column: 3, scope: !28) +!172 = !DILocalVariable(name: "$BoolUtils.andb_140", scope: !28, file: !2, line: 64, type: !10) +!173 = !DILocalVariable(name: "$arg1_43", scope: !28, file: !2, line: 67, type: !135) +!174 = !DILocation(line: 67, column: 5, scope: !28) +!175 = !DILocation(line: 67, column: 12, scope: !28) +!176 = !DILocalVariable(name: "$arg2_44", scope: !28, file: !2, line: 68, type: !135) +!177 = !DILocation(line: 68, column: 5, scope: !28) +!178 = !DILocation(line: 68, column: 12, scope: !28) +!179 = !DILocalVariable(name: "$test_48", scope: !28, file: !2, line: 69, type: !10) +!180 = !DILocation(line: 69, column: 5, scope: !28) +!181 = !DILocalVariable(name: "$res_45", scope: !28, file: !2, line: 70, type: !135) +!182 = !DILocation(line: 70, column: 7, scope: !28) +!183 = !DILocation(line: 70, column: 13, scope: !28) +!184 = !DILocalVariable(name: "$res__46", scope: !28, file: !2, line: 71, type: !135) +!185 = !DILocation(line: 71, column: 7, scope: !28) +!186 = !DILocation(line: 71, column: 14, scope: !28) +!187 = !DILocalVariable(name: "$test__47", scope: !28, file: !2, line: 72, type: !10) +!188 = !DILocation(line: 72, column: 7, scope: !28) +!189 = !DILocation(line: 72, column: 15, scope: !28) +!190 = !DILocation(line: 73, column: 3, scope: !28) +!191 = !DILocalVariable(name: "$BoolUtils.andb_142", scope: !28, file: !2, line: 73, type: !10) +!192 = !DILocalVariable(name: "$arg1_49", scope: !28, file: !2, line: 76, type: !193) +!193 = !DIBasicType(name: "Int256", size: 32) +!194 = !DILocation(line: 76, column: 5, scope: !28) +!195 = !DILocation(line: 76, column: 12, scope: !28) +!196 = !DILocalVariable(name: "$arg2_50", scope: !28, file: !2, line: 77, type: !193) +!197 = !DILocation(line: 77, column: 5, scope: !28) +!198 = !DILocation(line: 77, column: 12, scope: !28) +!199 = !DILocalVariable(name: "$test_54", scope: !28, file: !2, line: 78, type: !10) +!200 = !DILocation(line: 78, column: 5, scope: !28) +!201 = !DILocalVariable(name: "$res_51", scope: !28, file: !2, line: 79, type: !193) +!202 = !DILocation(line: 79, column: 7, scope: !28) +!203 = !DILocation(line: 79, column: 13, scope: !28) +!204 = !DILocalVariable(name: "$res__52", scope: !28, file: !2, line: 80, type: !193) +!205 = !DILocation(line: 80, column: 7, scope: !28) +!206 = !DILocation(line: 80, column: 14, scope: !28) +!207 = !DILocalVariable(name: "$test__53", scope: !28, file: !2, line: 81, type: !10) +!208 = !DILocation(line: 81, column: 7, scope: !28) +!209 = !DILocation(line: 81, column: 15, scope: !28) +!210 = !DILocation(line: 82, column: 3, scope: !28) +!211 = !DILocalVariable(name: "$BoolUtils.andb_144", scope: !28, file: !2, line: 82, type: !10) +!212 = !DILocalVariable(name: "$arg1_55", scope: !28, file: !2, line: 85, type: !193) +!213 = !DILocation(line: 85, column: 5, scope: !28) +!214 = !DILocation(line: 85, column: 12, scope: !28) +!215 = !DILocalVariable(name: "$arg2_56", scope: !28, file: !2, line: 86, type: !193) +!216 = !DILocation(line: 86, column: 5, scope: !28) +!217 = !DILocation(line: 86, column: 12, scope: !28) +!218 = !DILocalVariable(name: "$test_60", scope: !28, file: !2, line: 87, type: !10) +!219 = !DILocation(line: 87, column: 5, scope: !28) +!220 = !DILocalVariable(name: "$res_57", scope: !28, file: !2, line: 88, type: !193) +!221 = !DILocation(line: 88, column: 7, scope: !28) +!222 = !DILocation(line: 88, column: 13, scope: !28) +!223 = !DILocalVariable(name: "$res__58", scope: !28, file: !2, line: 89, type: !193) +!224 = !DILocation(line: 89, column: 7, scope: !28) +!225 = !DILocation(line: 89, column: 14, scope: !28) +!226 = !DILocalVariable(name: "$test__59", scope: !28, file: !2, line: 90, type: !10) +!227 = !DILocation(line: 90, column: 7, scope: !28) +!228 = !DILocation(line: 90, column: 15, scope: !28) +!229 = !DILocation(line: 91, column: 3, scope: !28) +!230 = !DILocalVariable(name: "$BoolUtils.andb_146", scope: !28, file: !2, line: 91, type: !10) +!231 = !DILocalVariable(name: "$arg1_61", scope: !28, file: !2, line: 94, type: !193) +!232 = !DILocation(line: 94, column: 5, scope: !28) +!233 = !DILocation(line: 94, column: 12, scope: !28) +!234 = !DILocalVariable(name: "$arg2_62", scope: !28, file: !2, line: 95, type: !193) +!235 = !DILocation(line: 95, column: 5, scope: !28) +!236 = !DILocation(line: 95, column: 12, scope: !28) +!237 = !DILocalVariable(name: "$test_66", scope: !28, file: !2, line: 96, type: !10) +!238 = !DILocation(line: 96, column: 5, scope: !28) +!239 = !DILocalVariable(name: "$res_63", scope: !28, file: !2, line: 97, type: !193) +!240 = !DILocation(line: 97, column: 7, scope: !28) +!241 = !DILocation(line: 97, column: 13, scope: !28) +!242 = !DILocalVariable(name: "$res__64", scope: !28, file: !2, line: 98, type: !193) +!243 = !DILocation(line: 98, column: 7, scope: !28) +!244 = !DILocation(line: 98, column: 14, scope: !28) +!245 = !DILocalVariable(name: "$test__65", scope: !28, file: !2, line: 99, type: !10) +!246 = !DILocation(line: 99, column: 7, scope: !28) +!247 = !DILocation(line: 99, column: 15, scope: !28) +!248 = !DILocation(line: 100, column: 3, scope: !28) +!249 = !DILocalVariable(name: "$BoolUtils.andb_148", scope: !28, file: !2, line: 100, type: !10) +!250 = !DILocalVariable(name: "$arg1_67", scope: !28, file: !2, line: 103, type: !193) +!251 = !DILocation(line: 103, column: 5, scope: !28) +!252 = !DILocation(line: 103, column: 12, scope: !28) +!253 = !DILocalVariable(name: "$arg2_68", scope: !28, file: !2, line: 104, type: !193) +!254 = !DILocation(line: 104, column: 5, scope: !28) +!255 = !DILocation(line: 104, column: 12, scope: !28) +!256 = !DILocalVariable(name: "$test_72", scope: !28, file: !2, line: 105, type: !10) +!257 = !DILocation(line: 105, column: 5, scope: !28) +!258 = !DILocalVariable(name: "$res_69", scope: !28, file: !2, line: 106, type: !193) +!259 = !DILocation(line: 106, column: 7, scope: !28) +!260 = !DILocation(line: 106, column: 13, scope: !28) +!261 = !DILocalVariable(name: "$res__70", scope: !28, file: !2, line: 107, type: !193) +!262 = !DILocation(line: 107, column: 7, scope: !28) +!263 = !DILocation(line: 107, column: 14, scope: !28) +!264 = !DILocalVariable(name: "$test__71", scope: !28, file: !2, line: 108, type: !10) +!265 = !DILocation(line: 108, column: 7, scope: !28) +!266 = !DILocation(line: 108, column: 15, scope: !28) +!267 = !DILocation(line: 109, column: 3, scope: !28) +!268 = !DILocalVariable(name: "$BoolUtils.andb_150", scope: !28, file: !2, line: 109, type: !10) +!269 = !DILocalVariable(name: "$arg1_73", scope: !28, file: !2, line: 112, type: !270) +!270 = !DIBasicType(name: "Uint256", size: 32) +!271 = !DILocation(line: 112, column: 5, scope: !28) +!272 = !DILocation(line: 112, column: 12, scope: !28) +!273 = !DILocalVariable(name: "$arg2_74", scope: !28, file: !2, line: 113, type: !270) +!274 = !DILocation(line: 113, column: 5, scope: !28) +!275 = !DILocation(line: 113, column: 12, scope: !28) +!276 = !DILocalVariable(name: "$test_78", scope: !28, file: !2, line: 114, type: !10) +!277 = !DILocation(line: 114, column: 5, scope: !28) +!278 = !DILocalVariable(name: "$res_75", scope: !28, file: !2, line: 115, type: !270) +!279 = !DILocation(line: 115, column: 7, scope: !28) +!280 = !DILocation(line: 115, column: 13, scope: !28) +!281 = !DILocalVariable(name: "$res__76", scope: !28, file: !2, line: 116, type: !270) +!282 = !DILocation(line: 116, column: 7, scope: !28) +!283 = !DILocation(line: 116, column: 14, scope: !28) +!284 = !DILocalVariable(name: "$test__77", scope: !28, file: !2, line: 117, type: !10) +!285 = !DILocation(line: 117, column: 7, scope: !28) +!286 = !DILocation(line: 117, column: 15, scope: !28) +!287 = !DILocation(line: 118, column: 3, scope: !28) +!288 = !DILocalVariable(name: "$BoolUtils.andb_152", scope: !28, file: !2, line: 118, type: !10) +!289 = !DILocalVariable(name: "$arg1_79", scope: !28, file: !2, line: 121, type: !270) +!290 = !DILocation(line: 121, column: 5, scope: !28) +!291 = !DILocation(line: 121, column: 12, scope: !28) +!292 = !DILocalVariable(name: "$arg2_80", scope: !28, file: !2, line: 122, type: !270) +!293 = !DILocation(line: 122, column: 5, scope: !28) +!294 = !DILocation(line: 122, column: 12, scope: !28) +!295 = !DILocalVariable(name: "$test_84", scope: !28, file: !2, line: 123, type: !10) +!296 = !DILocation(line: 123, column: 5, scope: !28) +!297 = !DILocalVariable(name: "$res_81", scope: !28, file: !2, line: 124, type: !270) +!298 = !DILocation(line: 124, column: 7, scope: !28) +!299 = !DILocation(line: 124, column: 13, scope: !28) +!300 = !DILocalVariable(name: "$res__82", scope: !28, file: !2, line: 125, type: !270) +!301 = !DILocation(line: 125, column: 7, scope: !28) +!302 = !DILocation(line: 125, column: 14, scope: !28) +!303 = !DILocalVariable(name: "$test__83", scope: !28, file: !2, line: 126, type: !10) +!304 = !DILocation(line: 126, column: 7, scope: !28) +!305 = !DILocation(line: 126, column: 15, scope: !28) +!306 = !DILocation(line: 127, column: 3, scope: !28) +!307 = !DILocalVariable(name: "$BoolUtils.andb_154", scope: !28, file: !2, line: 127, type: !10) +!308 = !DILocalVariable(name: "$arg1_85", scope: !28, file: !2, line: 130, type: !270) +!309 = !DILocation(line: 130, column: 5, scope: !28) +!310 = !DILocation(line: 130, column: 12, scope: !28) +!311 = !DILocalVariable(name: "$arg2_86", scope: !28, file: !2, line: 131, type: !270) +!312 = !DILocation(line: 131, column: 5, scope: !28) +!313 = !DILocation(line: 131, column: 12, scope: !28) +!314 = !DILocalVariable(name: "$test_90", scope: !28, file: !2, line: 132, type: !10) +!315 = !DILocation(line: 132, column: 5, scope: !28) +!316 = !DILocalVariable(name: "$res_87", scope: !28, file: !2, line: 133, type: !270) +!317 = !DILocation(line: 133, column: 7, scope: !28) +!318 = !DILocation(line: 133, column: 13, scope: !28) +!319 = !DILocalVariable(name: "$res__88", scope: !28, file: !2, line: 134, type: !270) +!320 = !DILocation(line: 134, column: 7, scope: !28) +!321 = !DILocation(line: 134, column: 14, scope: !28) +!322 = !DILocalVariable(name: "$test__89", scope: !28, file: !2, line: 135, type: !10) +!323 = !DILocation(line: 135, column: 7, scope: !28) +!324 = !DILocation(line: 135, column: 15, scope: !28) +!325 = !DILocation(line: 136, column: 3, scope: !28) +!326 = !DILocalVariable(name: "$BoolUtils.andb_156", scope: !28, file: !2, line: 136, type: !10) +!327 = !DILocalVariable(name: "$arg1_91", scope: !28, file: !2, line: 139, type: !193) +!328 = !DILocation(line: 139, column: 5, scope: !28) +!329 = !DILocation(line: 139, column: 12, scope: !28) +!330 = !DILocalVariable(name: "$arg2_92", scope: !28, file: !2, line: 140, type: !193) +!331 = !DILocation(line: 140, column: 5, scope: !28) +!332 = !DILocation(line: 140, column: 12, scope: !28) +!333 = !DILocalVariable(name: "$test_96", scope: !28, file: !2, line: 141, type: !10) +!334 = !DILocation(line: 141, column: 5, scope: !28) +!335 = !DILocalVariable(name: "$res_93", scope: !28, file: !2, line: 142, type: !193) +!336 = !DILocation(line: 142, column: 7, scope: !28) +!337 = !DILocation(line: 142, column: 13, scope: !28) +!338 = !DILocalVariable(name: "$res__94", scope: !28, file: !2, line: 143, type: !193) +!339 = !DILocation(line: 143, column: 7, scope: !28) +!340 = !DILocation(line: 143, column: 14, scope: !28) +!341 = !DILocalVariable(name: "$test__95", scope: !28, file: !2, line: 144, type: !10) +!342 = !DILocation(line: 144, column: 7, scope: !28) +!343 = !DILocation(line: 144, column: 15, scope: !28) +!344 = !DILocation(line: 145, column: 3, scope: !28) +!345 = !DILocalVariable(name: "$BoolUtils.andb_158", scope: !28, file: !2, line: 145, type: !10) +!346 = !DILocalVariable(name: "$arg1_97", scope: !28, file: !2, line: 148, type: !193) +!347 = !DILocation(line: 148, column: 5, scope: !28) +!348 = !DILocation(line: 148, column: 12, scope: !28) +!349 = !DILocalVariable(name: "$arg2_98", scope: !28, file: !2, line: 149, type: !193) +!350 = !DILocation(line: 149, column: 5, scope: !28) +!351 = !DILocation(line: 149, column: 12, scope: !28) +!352 = !DILocalVariable(name: "$test_102", scope: !28, file: !2, line: 150, type: !10) +!353 = !DILocation(line: 150, column: 5, scope: !28) +!354 = !DILocalVariable(name: "$res_99", scope: !28, file: !2, line: 151, type: !193) +!355 = !DILocation(line: 151, column: 7, scope: !28) +!356 = !DILocation(line: 151, column: 13, scope: !28) +!357 = !DILocalVariable(name: "$res__100", scope: !28, file: !2, line: 152, type: !193) +!358 = !DILocation(line: 152, column: 7, scope: !28) +!359 = !DILocation(line: 152, column: 14, scope: !28) +!360 = !DILocalVariable(name: "$test__101", scope: !28, file: !2, line: 153, type: !10) +!361 = !DILocation(line: 153, column: 7, scope: !28) +!362 = !DILocation(line: 153, column: 15, scope: !28) +!363 = !DILocation(line: 154, column: 3, scope: !28) +!364 = !DILocalVariable(name: "$BoolUtils.andb_160", scope: !28, file: !2, line: 154, type: !10) +!365 = !DILocalVariable(name: "$arg1_103", scope: !28, file: !2, line: 157, type: !193) +!366 = !DILocation(line: 157, column: 5, scope: !28) +!367 = !DILocation(line: 157, column: 12, scope: !28) +!368 = !DILocalVariable(name: "$arg2_104", scope: !28, file: !2, line: 158, type: !193) +!369 = !DILocation(line: 158, column: 5, scope: !28) +!370 = !DILocation(line: 158, column: 12, scope: !28) +!371 = !DILocalVariable(name: "$test_108", scope: !28, file: !2, line: 159, type: !10) +!372 = !DILocation(line: 159, column: 5, scope: !28) +!373 = !DILocalVariable(name: "$res_105", scope: !28, file: !2, line: 160, type: !193) +!374 = !DILocation(line: 160, column: 7, scope: !28) +!375 = !DILocation(line: 160, column: 13, scope: !28) +!376 = !DILocalVariable(name: "$res__106", scope: !28, file: !2, line: 161, type: !193) +!377 = !DILocation(line: 161, column: 7, scope: !28) +!378 = !DILocation(line: 161, column: 14, scope: !28) +!379 = !DILocalVariable(name: "$test__107", scope: !28, file: !2, line: 162, type: !10) +!380 = !DILocation(line: 162, column: 7, scope: !28) +!381 = !DILocation(line: 162, column: 15, scope: !28) +!382 = !DILocation(line: 163, column: 3, scope: !28) +!383 = !DILocalVariable(name: "$BoolUtils.andb_162", scope: !28, file: !2, line: 163, type: !10) +!384 = !DILocalVariable(name: "$arg1_109", scope: !28, file: !2, line: 166, type: !193) +!385 = !DILocation(line: 166, column: 5, scope: !28) +!386 = !DILocation(line: 166, column: 12, scope: !28) +!387 = !DILocalVariable(name: "$arg2_110", scope: !28, file: !2, line: 167, type: !193) +!388 = !DILocation(line: 167, column: 5, scope: !28) +!389 = !DILocation(line: 167, column: 12, scope: !28) +!390 = !DILocalVariable(name: "$test_114", scope: !28, file: !2, line: 168, type: !10) +!391 = !DILocation(line: 168, column: 5, scope: !28) +!392 = !DILocalVariable(name: "$res_111", scope: !28, file: !2, line: 169, type: !193) +!393 = !DILocation(line: 169, column: 7, scope: !28) +!394 = !DILocation(line: 169, column: 13, scope: !28) +!395 = !DILocalVariable(name: "$res__112", scope: !28, file: !2, line: 170, type: !193) +!396 = !DILocation(line: 170, column: 7, scope: !28) +!397 = !DILocation(line: 170, column: 14, scope: !28) +!398 = !DILocalVariable(name: "$test__113", scope: !28, file: !2, line: 171, type: !10) +!399 = !DILocation(line: 171, column: 7, scope: !28) +!400 = !DILocation(line: 171, column: 15, scope: !28) +!401 = !DILocation(line: 172, column: 3, scope: !28) +!402 = !DILocalVariable(name: "$BoolUtils.andb_164", scope: !28, file: !2, line: 172, type: !10) +!403 = !DILocalVariable(name: "$arg1_115", scope: !28, file: !2, line: 175, type: !193) +!404 = !DILocation(line: 175, column: 5, scope: !28) +!405 = !DILocation(line: 175, column: 12, scope: !28) +!406 = !DILocalVariable(name: "$arg2_116", scope: !28, file: !2, line: 176, type: !193) +!407 = !DILocation(line: 176, column: 5, scope: !28) +!408 = !DILocation(line: 176, column: 12, scope: !28) +!409 = !DILocalVariable(name: "$test_120", scope: !28, file: !2, line: 177, type: !10) +!410 = !DILocation(line: 177, column: 5, scope: !28) +!411 = !DILocalVariable(name: "$res_117", scope: !28, file: !2, line: 178, type: !193) +!412 = !DILocation(line: 178, column: 7, scope: !28) +!413 = !DILocation(line: 178, column: 13, scope: !28) +!414 = !DILocalVariable(name: "$res__118", scope: !28, file: !2, line: 179, type: !193) +!415 = !DILocation(line: 179, column: 7, scope: !28) +!416 = !DILocation(line: 179, column: 14, scope: !28) +!417 = !DILocalVariable(name: "$test__119", scope: !28, file: !2, line: 180, type: !10) +!418 = !DILocation(line: 180, column: 7, scope: !28) +!419 = !DILocation(line: 180, column: 15, scope: !28) +!420 = !DILocation(line: 181, column: 3, scope: !28) +!421 = !DILocalVariable(name: "$BoolUtils.andb_166", scope: !28, file: !2, line: 181, type: !10) +!422 = !DILocalVariable(name: "$arg1_121", scope: !28, file: !2, line: 184, type: !193) +!423 = !DILocation(line: 184, column: 5, scope: !28) +!424 = !DILocation(line: 184, column: 12, scope: !28) +!425 = !DILocalVariable(name: "$arg2_122", scope: !28, file: !2, line: 185, type: !193) +!426 = !DILocation(line: 185, column: 5, scope: !28) +!427 = !DILocation(line: 185, column: 12, scope: !28) +!428 = !DILocalVariable(name: "$test_126", scope: !28, file: !2, line: 186, type: !10) +!429 = !DILocation(line: 186, column: 5, scope: !28) +!430 = !DILocalVariable(name: "$res_123", scope: !28, file: !2, line: 187, type: !193) +!431 = !DILocation(line: 187, column: 7, scope: !28) +!432 = !DILocation(line: 187, column: 13, scope: !28) +!433 = !DILocalVariable(name: "$res__124", scope: !28, file: !2, line: 188, type: !193) +!434 = !DILocation(line: 188, column: 7, scope: !28) +!435 = !DILocation(line: 188, column: 14, scope: !28) +!436 = !DILocalVariable(name: "$test__125", scope: !28, file: !2, line: 189, type: !10) +!437 = !DILocation(line: 189, column: 7, scope: !28) +!438 = !DILocation(line: 189, column: 15, scope: !28) +!439 = !DILocation(line: 190, column: 3, scope: !28) +!440 = !DILocalVariable(name: "$BoolUtils.andb_168", scope: !28, file: !2, line: 190, type: !10) +!441 = !DILocation(line: 193, column: 1, scope: !28) diff --git a/testsuite/expr/builtin_mul.ll b/testsuite/expr/builtin_mul.ll index ec0a4f33..0aea6ed0 100644 --- a/testsuite/expr/builtin_mul.ll +++ b/testsuite/expr/builtin_mul.ll @@ -194,7 +194,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-pc-linux-gnu" +target triple = "x86_64-unknown-linux-gnu" %"$TyDescrTy_PrimTyp_174" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/testsuite/expr/builtin_overflow1.dbg.ll b/testsuite/expr/builtin_overflow1.dbg.ll index 7ecb6ec6..9687253b 100644 --- a/testsuite/expr/builtin_overflow1.dbg.ll +++ b/testsuite/expr/builtin_overflow1.dbg.ll @@ -4,7 +4,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-pc-linux-gnu" +target triple = "x86_64-unknown-linux-gnu" %"$TyDescrTy_PrimTyp_7" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } @@ -59,7 +59,7 @@ target triple = "x86_64-pc-linux-gnu" @_transition_parameters = constant [0 x %"$TransDescr_108"] zeroinitializer @_transition_parameters_length = constant i32 0 -define void @_init_libs() !dbg !4 { +define void @_init_libs() !dbg !3 { entry: %"$gasrem_44" = load i64, i64* @_gasrem, align 8 %"$gascmp_45" = icmp ugt i64 5, %"$gasrem_44" @@ -141,6 +141,7 @@ declare void @_out_of_gas() define internal %Uint32 @_scilla_expr_fun(i8* %0) !dbg !10 { entry: %"$expr_6" = alloca %Uint32, align 8 + call void @llvm.dbg.declare(metadata %Uint32* %"$expr_6", metadata !11, metadata !DIExpression()), !dbg !13 %"$gasrem_74" = load i64, i64* @_gasrem, align 8 %"$gascmp_75" = icmp ugt i64 1, %"$gasrem_74" br i1 %"$gascmp_75", label %"$out_of_gas_76", label %"$have_gas_77" @@ -153,6 +154,7 @@ entry: %"$consume_78" = sub i64 %"$gasrem_74", 1 store i64 %"$consume_78", i64* @_gasrem, align 8 %a = alloca %Uint32, align 8 + call void @llvm.dbg.declare(metadata %Uint32* %a, metadata !14, metadata !DIExpression()), !dbg !15 %"$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" @@ -164,7 +166,7 @@ entry: "$have_gas_82": ; preds = %"$out_of_gas_81", %"$have_gas_77" %"$consume_83" = sub i64 %"$gasrem_79", 1 store i64 %"$consume_83", i64* @_gasrem, align 8 - store %Uint32 zeroinitializer, %Uint32* %a, align 4, !dbg !11 + store %Uint32 zeroinitializer, %Uint32* %a, align 4, !dbg !13 %"$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" @@ -177,6 +179,7 @@ entry: %"$consume_88" = sub i64 %"$gasrem_84", 1 store i64 %"$consume_88", i64* @_gasrem, align 8 %b = alloca %Uint32, align 8 + call void @llvm.dbg.declare(metadata %Uint32* %b, metadata !16, metadata !DIExpression()), !dbg !17 %"$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" @@ -188,7 +191,7 @@ entry: "$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 %Uint32 { i32 1 }, %Uint32* %b, align 4, !dbg !12 + store %Uint32 { i32 1 }, %Uint32* %b, align 4, !dbg !18 %"$gasrem_94" = load i64, i64* @_gasrem, align 8 %"$gascmp_95" = icmp ugt i64 4, %"$gasrem_94" br i1 %"$gascmp_95", label %"$out_of_gas_96", label %"$have_gas_97" @@ -202,12 +205,15 @@ entry: store i64 %"$consume_98", i64* @_gasrem, align 8 %"$a_99" = load %Uint32, %Uint32* %a, align 4 %"$b_100" = load %Uint32, %Uint32* %b, align 4 - %"$sub_call_101" = call %Uint32 @_sub_Uint32(%Uint32 %"$a_99", %Uint32 %"$b_100"), !dbg !13 - store %Uint32 %"$sub_call_101", %Uint32* %"$expr_6", align 4, !dbg !13 + %"$sub_call_101" = call %Uint32 @_sub_Uint32(%Uint32 %"$a_99", %Uint32 %"$b_100"), !dbg !19 + store %Uint32 %"$sub_call_101", %Uint32* %"$expr_6", align 4, !dbg !19 %"$$expr_6_102" = load %Uint32, %Uint32* %"$expr_6", align 4 ret %Uint32 %"$$expr_6_102" } +; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn +declare void @llvm.dbg.declare(metadata, metadata, metadata) #0 + declare %Uint32 @_sub_Uint32(%Uint32, %Uint32) declare void @_print_scilla_val(i8*, %_TyDescrTy_Typ*, i8*) @@ -223,20 +229,28 @@ entry: ret void } +attributes #0 = { nocallback nofree nosync nounwind readnone speculatable willreturn } + !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) +!1 = distinct !DICompileUnit(language: DW_LANG_C89, file: !2, producer: "Scilla Compiler", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false) !2 = !DIFile(filename: "builtin_overflow1.scilexp", directory: "codegen/expr") -!3 = !{} -!4 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !5, file: !5, type: !6, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!5 = !DIFile(filename: ".", directory: ".") -!6 = !DISubroutineType(types: !7) -!7 = !{!8} -!8 = !DIBasicType(tag: DW_TAG_unspecified_type, name: "void") -!9 = !DILocation(line: 0, scope: !4) -!10 = distinct !DISubprogram(name: "_scilla_expr_fun", linkageName: "_scilla_expr_fun", scope: !2, file: !2, line: 1, type: !6, scopeLine: 1, spFlags: DISPFlagDefinition, unit: !1, retainedNodes: !3) -!11 = !DILocation(line: 1, column: 9, scope: !10) -!12 = !DILocation(line: 2, column: 9, scope: !10) -!13 = !DILocation(line: 3, column: 1, scope: !10) +!3 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !4, file: !4, type: !5, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!4 = !DIFile(filename: ".", directory: ".") +!5 = !DISubroutineType(types: !6) +!6 = !{!7} +!7 = !DIBasicType(tag: DW_TAG_unspecified_type, name: "void") +!8 = !{} +!9 = !DILocation(line: 0, scope: !3) +!10 = distinct !DISubprogram(name: "_scilla_expr_fun", linkageName: "_scilla_expr_fun", scope: !2, file: !2, line: 1, type: !5, scopeLine: 1, spFlags: DISPFlagDefinition, unit: !1, retainedNodes: !8) +!11 = !DILocalVariable(name: "$expr_6", scope: !10, file: !2, line: 1, type: !12) +!12 = !DIBasicType(name: "Uint32", size: 4) +!13 = !DILocation(line: 1, column: 9, scope: !10) +!14 = !DILocalVariable(name: "a", scope: !10, file: !2, line: 1, type: !12) +!15 = !DILocation(line: 1, column: 5, scope: !10) +!16 = !DILocalVariable(name: "b", scope: !10, file: !2, line: 2, type: !12) +!17 = !DILocation(line: 2, column: 5, scope: !10) +!18 = !DILocation(line: 2, column: 9, scope: !10) +!19 = !DILocation(line: 3, column: 1, scope: !10) diff --git a/testsuite/expr/builtin_overflow1.ll b/testsuite/expr/builtin_overflow1.ll index 4a40074d..91681646 100644 --- a/testsuite/expr/builtin_overflow1.ll +++ b/testsuite/expr/builtin_overflow1.ll @@ -4,7 +4,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-pc-linux-gnu" +target triple = "x86_64-unknown-linux-gnu" %"$TyDescrTy_PrimTyp_7" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/testsuite/expr/builtin_overflow2.dbg.ll b/testsuite/expr/builtin_overflow2.dbg.ll index 25740a1b..eb16a879 100644 --- a/testsuite/expr/builtin_overflow2.dbg.ll +++ b/testsuite/expr/builtin_overflow2.dbg.ll @@ -4,7 +4,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-pc-linux-gnu" +target triple = "x86_64-unknown-linux-gnu" %"$TyDescrTy_PrimTyp_7" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } @@ -59,7 +59,7 @@ target triple = "x86_64-pc-linux-gnu" @_transition_parameters = constant [0 x %"$TransDescr_108"] zeroinitializer @_transition_parameters_length = constant i32 0 -define void @_init_libs() !dbg !4 { +define void @_init_libs() !dbg !3 { entry: %"$gasrem_44" = load i64, i64* @_gasrem, align 8 %"$gascmp_45" = icmp ugt i64 5, %"$gasrem_44" @@ -141,6 +141,7 @@ declare void @_out_of_gas() define internal %Uint32 @_scilla_expr_fun(i8* %0) !dbg !10 { entry: %"$expr_6" = alloca %Uint32, align 8 + call void @llvm.dbg.declare(metadata %Uint32* %"$expr_6", metadata !11, metadata !DIExpression()), !dbg !13 %"$gasrem_74" = load i64, i64* @_gasrem, align 8 %"$gascmp_75" = icmp ugt i64 1, %"$gasrem_74" br i1 %"$gascmp_75", label %"$out_of_gas_76", label %"$have_gas_77" @@ -153,6 +154,7 @@ entry: %"$consume_78" = sub i64 %"$gasrem_74", 1 store i64 %"$consume_78", i64* @_gasrem, align 8 %a = alloca %Uint32, align 8 + call void @llvm.dbg.declare(metadata %Uint32* %a, metadata !14, metadata !DIExpression()), !dbg !15 %"$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" @@ -164,7 +166,7 @@ entry: "$have_gas_82": ; preds = %"$out_of_gas_81", %"$have_gas_77" %"$consume_83" = sub i64 %"$gasrem_79", 1 store i64 %"$consume_83", i64* @_gasrem, align 8 - store %Uint32 { i32 1 }, %Uint32* %a, align 4, !dbg !11 + store %Uint32 { i32 1 }, %Uint32* %a, align 4, !dbg !13 %"$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" @@ -177,6 +179,7 @@ entry: %"$consume_88" = sub i64 %"$gasrem_84", 1 store i64 %"$consume_88", i64* @_gasrem, align 8 %b = alloca %Uint32, align 8 + call void @llvm.dbg.declare(metadata %Uint32* %b, metadata !16, metadata !DIExpression()), !dbg !17 %"$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" @@ -188,7 +191,7 @@ entry: "$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 %Uint32 { i32 -1 }, %Uint32* %b, align 4, !dbg !12 + store %Uint32 { i32 -1 }, %Uint32* %b, align 4, !dbg !18 %"$gasrem_94" = load i64, i64* @_gasrem, align 8 %"$gascmp_95" = icmp ugt i64 4, %"$gasrem_94" br i1 %"$gascmp_95", label %"$out_of_gas_96", label %"$have_gas_97" @@ -202,12 +205,15 @@ entry: store i64 %"$consume_98", i64* @_gasrem, align 8 %"$a_99" = load %Uint32, %Uint32* %a, align 4 %"$b_100" = load %Uint32, %Uint32* %b, align 4 - %"$add_call_101" = call %Uint32 @_add_Uint32(%Uint32 %"$a_99", %Uint32 %"$b_100"), !dbg !13 - store %Uint32 %"$add_call_101", %Uint32* %"$expr_6", align 4, !dbg !13 + %"$add_call_101" = call %Uint32 @_add_Uint32(%Uint32 %"$a_99", %Uint32 %"$b_100"), !dbg !19 + store %Uint32 %"$add_call_101", %Uint32* %"$expr_6", align 4, !dbg !19 %"$$expr_6_102" = load %Uint32, %Uint32* %"$expr_6", align 4 ret %Uint32 %"$$expr_6_102" } +; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn +declare void @llvm.dbg.declare(metadata, metadata, metadata) #0 + declare %Uint32 @_add_Uint32(%Uint32, %Uint32) declare void @_print_scilla_val(i8*, %_TyDescrTy_Typ*, i8*) @@ -223,20 +229,28 @@ entry: ret void } +attributes #0 = { nocallback nofree nosync nounwind readnone speculatable willreturn } + !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) +!1 = distinct !DICompileUnit(language: DW_LANG_C89, file: !2, producer: "Scilla Compiler", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false) !2 = !DIFile(filename: "builtin_overflow2.scilexp", directory: "codegen/expr") -!3 = !{} -!4 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !5, file: !5, type: !6, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!5 = !DIFile(filename: ".", directory: ".") -!6 = !DISubroutineType(types: !7) -!7 = !{!8} -!8 = !DIBasicType(tag: DW_TAG_unspecified_type, name: "void") -!9 = !DILocation(line: 0, scope: !4) -!10 = distinct !DISubprogram(name: "_scilla_expr_fun", linkageName: "_scilla_expr_fun", scope: !2, file: !2, line: 1, type: !6, scopeLine: 1, spFlags: DISPFlagDefinition, unit: !1, retainedNodes: !3) -!11 = !DILocation(line: 1, column: 9, scope: !10) -!12 = !DILocation(line: 2, column: 9, scope: !10) -!13 = !DILocation(line: 3, column: 1, scope: !10) +!3 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !4, file: !4, type: !5, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!4 = !DIFile(filename: ".", directory: ".") +!5 = !DISubroutineType(types: !6) +!6 = !{!7} +!7 = !DIBasicType(tag: DW_TAG_unspecified_type, name: "void") +!8 = !{} +!9 = !DILocation(line: 0, scope: !3) +!10 = distinct !DISubprogram(name: "_scilla_expr_fun", linkageName: "_scilla_expr_fun", scope: !2, file: !2, line: 1, type: !5, scopeLine: 1, spFlags: DISPFlagDefinition, unit: !1, retainedNodes: !8) +!11 = !DILocalVariable(name: "$expr_6", scope: !10, file: !2, line: 1, type: !12) +!12 = !DIBasicType(name: "Uint32", size: 4) +!13 = !DILocation(line: 1, column: 9, scope: !10) +!14 = !DILocalVariable(name: "a", scope: !10, file: !2, line: 1, type: !12) +!15 = !DILocation(line: 1, column: 5, scope: !10) +!16 = !DILocalVariable(name: "b", scope: !10, file: !2, line: 2, type: !12) +!17 = !DILocation(line: 2, column: 5, scope: !10) +!18 = !DILocation(line: 2, column: 9, scope: !10) +!19 = !DILocation(line: 3, column: 1, scope: !10) diff --git a/testsuite/expr/builtin_overflow2.ll b/testsuite/expr/builtin_overflow2.ll index 53049409..61ca5173 100644 --- a/testsuite/expr/builtin_overflow2.ll +++ b/testsuite/expr/builtin_overflow2.ll @@ -4,7 +4,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-pc-linux-gnu" +target triple = "x86_64-unknown-linux-gnu" %"$TyDescrTy_PrimTyp_7" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/testsuite/expr/builtin_overflow3.dbg.ll b/testsuite/expr/builtin_overflow3.dbg.ll index 200cd5b0..339d8882 100644 --- a/testsuite/expr/builtin_overflow3.dbg.ll +++ b/testsuite/expr/builtin_overflow3.dbg.ll @@ -4,7 +4,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-pc-linux-gnu" +target triple = "x86_64-unknown-linux-gnu" %"$TyDescrTy_PrimTyp_7" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } @@ -58,7 +58,7 @@ target triple = "x86_64-pc-linux-gnu" @_transition_parameters = constant [0 x %"$TransDescr_108"] zeroinitializer @_transition_parameters_length = constant i32 0 -define void @_init_libs() !dbg !4 { +define void @_init_libs() !dbg !3 { entry: %"$gasrem_44" = load i64, i64* @_gasrem, align 8 %"$gascmp_45" = icmp ugt i64 5, %"$gasrem_44" @@ -140,6 +140,7 @@ declare void @_out_of_gas() define internal %Int32 @_scilla_expr_fun(i8* %0) !dbg !10 { entry: %"$expr_6" = alloca %Int32, align 8 + call void @llvm.dbg.declare(metadata %Int32* %"$expr_6", metadata !11, metadata !DIExpression()), !dbg !13 %"$gasrem_74" = load i64, i64* @_gasrem, align 8 %"$gascmp_75" = icmp ugt i64 1, %"$gasrem_74" br i1 %"$gascmp_75", label %"$out_of_gas_76", label %"$have_gas_77" @@ -152,6 +153,7 @@ entry: %"$consume_78" = sub i64 %"$gasrem_74", 1 store i64 %"$consume_78", i64* @_gasrem, align 8 %a = alloca %Int32, align 8 + call void @llvm.dbg.declare(metadata %Int32* %a, metadata !14, metadata !DIExpression()), !dbg !15 %"$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" @@ -163,7 +165,7 @@ entry: "$have_gas_82": ; preds = %"$out_of_gas_81", %"$have_gas_77" %"$consume_83" = sub i64 %"$gasrem_79", 1 store i64 %"$consume_83", i64* @_gasrem, align 8 - store %Int32 { i32 -1 }, %Int32* %a, align 4, !dbg !11 + store %Int32 { i32 -1 }, %Int32* %a, align 4, !dbg !13 %"$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" @@ -176,6 +178,7 @@ entry: %"$consume_88" = sub i64 %"$gasrem_84", 1 store i64 %"$consume_88", i64* @_gasrem, align 8 %b = alloca %Int32, align 8 + call void @llvm.dbg.declare(metadata %Int32* %b, metadata !16, metadata !DIExpression()), !dbg !17 %"$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" @@ -187,7 +190,7 @@ entry: "$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 { i32 -2147483648 }, %Int32* %b, align 4, !dbg !12 + store %Int32 { i32 -2147483648 }, %Int32* %b, align 4, !dbg !18 %"$gasrem_94" = load i64, i64* @_gasrem, align 8 %"$gascmp_95" = icmp ugt i64 4, %"$gasrem_94" br i1 %"$gascmp_95", label %"$out_of_gas_96", label %"$have_gas_97" @@ -201,12 +204,15 @@ entry: store i64 %"$consume_98", i64* @_gasrem, align 8 %"$a_99" = load %Int32, %Int32* %a, align 4 %"$b_100" = load %Int32, %Int32* %b, align 4 - %"$add_call_101" = call %Int32 @_add_Int32(%Int32 %"$a_99", %Int32 %"$b_100"), !dbg !13 - store %Int32 %"$add_call_101", %Int32* %"$expr_6", align 4, !dbg !13 + %"$add_call_101" = call %Int32 @_add_Int32(%Int32 %"$a_99", %Int32 %"$b_100"), !dbg !19 + store %Int32 %"$add_call_101", %Int32* %"$expr_6", align 4, !dbg !19 %"$$expr_6_102" = load %Int32, %Int32* %"$expr_6", align 4 ret %Int32 %"$$expr_6_102" } +; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn +declare void @llvm.dbg.declare(metadata, metadata, metadata) #0 + declare %Int32 @_add_Int32(%Int32, %Int32) declare void @_print_scilla_val(i8*, %_TyDescrTy_Typ*, i8*) @@ -222,20 +228,28 @@ entry: ret void } +attributes #0 = { nocallback nofree nosync nounwind readnone speculatable willreturn } + !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) +!1 = distinct !DICompileUnit(language: DW_LANG_C89, file: !2, producer: "Scilla Compiler", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false) !2 = !DIFile(filename: "builtin_overflow3.scilexp", directory: "codegen/expr") -!3 = !{} -!4 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !5, file: !5, type: !6, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!5 = !DIFile(filename: ".", directory: ".") -!6 = !DISubroutineType(types: !7) -!7 = !{!8} -!8 = !DIBasicType(tag: DW_TAG_unspecified_type, name: "void") -!9 = !DILocation(line: 0, scope: !4) -!10 = distinct !DISubprogram(name: "_scilla_expr_fun", linkageName: "_scilla_expr_fun", scope: !2, file: !2, line: 1, type: !6, scopeLine: 1, spFlags: DISPFlagDefinition, unit: !1, retainedNodes: !3) -!11 = !DILocation(line: 1, column: 9, scope: !10) -!12 = !DILocation(line: 2, column: 9, scope: !10) -!13 = !DILocation(line: 3, column: 1, scope: !10) +!3 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !4, file: !4, type: !5, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!4 = !DIFile(filename: ".", directory: ".") +!5 = !DISubroutineType(types: !6) +!6 = !{!7} +!7 = !DIBasicType(tag: DW_TAG_unspecified_type, name: "void") +!8 = !{} +!9 = !DILocation(line: 0, scope: !3) +!10 = distinct !DISubprogram(name: "_scilla_expr_fun", linkageName: "_scilla_expr_fun", scope: !2, file: !2, line: 1, type: !5, scopeLine: 1, spFlags: DISPFlagDefinition, unit: !1, retainedNodes: !8) +!11 = !DILocalVariable(name: "$expr_6", scope: !10, file: !2, line: 1, type: !12) +!12 = !DIBasicType(name: "Int32", size: 4) +!13 = !DILocation(line: 1, column: 9, scope: !10) +!14 = !DILocalVariable(name: "a", scope: !10, file: !2, line: 1, type: !12) +!15 = !DILocation(line: 1, column: 5, scope: !10) +!16 = !DILocalVariable(name: "b", scope: !10, file: !2, line: 2, type: !12) +!17 = !DILocation(line: 2, column: 5, scope: !10) +!18 = !DILocation(line: 2, column: 9, scope: !10) +!19 = !DILocation(line: 3, column: 1, scope: !10) diff --git a/testsuite/expr/builtin_overflow3.ll b/testsuite/expr/builtin_overflow3.ll index 055a88c0..0264956b 100644 --- a/testsuite/expr/builtin_overflow3.ll +++ b/testsuite/expr/builtin_overflow3.ll @@ -4,7 +4,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-pc-linux-gnu" +target triple = "x86_64-unknown-linux-gnu" %"$TyDescrTy_PrimTyp_7" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/testsuite/expr/builtin_overflow4.dbg.ll b/testsuite/expr/builtin_overflow4.dbg.ll index d824d906..c32f9af1 100644 --- a/testsuite/expr/builtin_overflow4.dbg.ll +++ b/testsuite/expr/builtin_overflow4.dbg.ll @@ -4,7 +4,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-pc-linux-gnu" +target triple = "x86_64-unknown-linux-gnu" %"$TyDescrTy_PrimTyp_7" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } @@ -58,7 +58,7 @@ target triple = "x86_64-pc-linux-gnu" @_transition_parameters = constant [0 x %"$TransDescr_108"] zeroinitializer @_transition_parameters_length = constant i32 0 -define void @_init_libs() !dbg !4 { +define void @_init_libs() !dbg !3 { entry: %"$gasrem_44" = load i64, i64* @_gasrem, align 8 %"$gascmp_45" = icmp ugt i64 5, %"$gasrem_44" @@ -140,6 +140,7 @@ declare void @_out_of_gas() define internal %Int32 @_scilla_expr_fun(i8* %0) !dbg !10 { entry: %"$expr_6" = alloca %Int32, align 8 + call void @llvm.dbg.declare(metadata %Int32* %"$expr_6", metadata !11, metadata !DIExpression()), !dbg !13 %"$gasrem_74" = load i64, i64* @_gasrem, align 8 %"$gascmp_75" = icmp ugt i64 1, %"$gasrem_74" br i1 %"$gascmp_75", label %"$out_of_gas_76", label %"$have_gas_77" @@ -152,6 +153,7 @@ entry: %"$consume_78" = sub i64 %"$gasrem_74", 1 store i64 %"$consume_78", i64* @_gasrem, align 8 %a = alloca %Int32, align 8 + call void @llvm.dbg.declare(metadata %Int32* %a, metadata !14, metadata !DIExpression()), !dbg !15 %"$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" @@ -163,7 +165,7 @@ entry: "$have_gas_82": ; preds = %"$out_of_gas_81", %"$have_gas_77" %"$consume_83" = sub i64 %"$gasrem_79", 1 store i64 %"$consume_83", i64* @_gasrem, align 8 - store %Int32 { i32 2147483647 }, %Int32* %a, align 4, !dbg !11 + store %Int32 { i32 2147483647 }, %Int32* %a, align 4, !dbg !13 %"$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" @@ -176,6 +178,7 @@ entry: %"$consume_88" = sub i64 %"$gasrem_84", 1 store i64 %"$consume_88", i64* @_gasrem, align 8 %b = alloca %Int32, align 8 + call void @llvm.dbg.declare(metadata %Int32* %b, metadata !16, metadata !DIExpression()), !dbg !17 %"$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" @@ -187,7 +190,7 @@ entry: "$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 { i32 2 }, %Int32* %b, align 4, !dbg !12 + store %Int32 { i32 2 }, %Int32* %b, align 4, !dbg !18 %"$gasrem_94" = load i64, i64* @_gasrem, align 8 %"$gascmp_95" = icmp ugt i64 20, %"$gasrem_94" br i1 %"$gascmp_95", label %"$out_of_gas_96", label %"$have_gas_97" @@ -201,12 +204,15 @@ entry: store i64 %"$consume_98", i64* @_gasrem, align 8 %"$a_99" = load %Int32, %Int32* %a, align 4 %"$b_100" = load %Int32, %Int32* %b, align 4 - %"$mul_call_101" = call %Int32 @_mul_Int32(%Int32 %"$a_99", %Int32 %"$b_100"), !dbg !13 - store %Int32 %"$mul_call_101", %Int32* %"$expr_6", align 4, !dbg !13 + %"$mul_call_101" = call %Int32 @_mul_Int32(%Int32 %"$a_99", %Int32 %"$b_100"), !dbg !19 + store %Int32 %"$mul_call_101", %Int32* %"$expr_6", align 4, !dbg !19 %"$$expr_6_102" = load %Int32, %Int32* %"$expr_6", align 4 ret %Int32 %"$$expr_6_102" } +; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn +declare void @llvm.dbg.declare(metadata, metadata, metadata) #0 + declare %Int32 @_mul_Int32(%Int32, %Int32) declare void @_print_scilla_val(i8*, %_TyDescrTy_Typ*, i8*) @@ -222,20 +228,28 @@ entry: ret void } +attributes #0 = { nocallback nofree nosync nounwind readnone speculatable willreturn } + !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) +!1 = distinct !DICompileUnit(language: DW_LANG_C89, file: !2, producer: "Scilla Compiler", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false) !2 = !DIFile(filename: "builtin_overflow4.scilexp", directory: "codegen/expr") -!3 = !{} -!4 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !5, file: !5, type: !6, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!5 = !DIFile(filename: ".", directory: ".") -!6 = !DISubroutineType(types: !7) -!7 = !{!8} -!8 = !DIBasicType(tag: DW_TAG_unspecified_type, name: "void") -!9 = !DILocation(line: 0, scope: !4) -!10 = distinct !DISubprogram(name: "_scilla_expr_fun", linkageName: "_scilla_expr_fun", scope: !2, file: !2, line: 1, type: !6, scopeLine: 1, spFlags: DISPFlagDefinition, unit: !1, retainedNodes: !3) -!11 = !DILocation(line: 1, column: 9, scope: !10) -!12 = !DILocation(line: 2, column: 9, scope: !10) -!13 = !DILocation(line: 3, column: 1, scope: !10) +!3 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !4, file: !4, type: !5, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!4 = !DIFile(filename: ".", directory: ".") +!5 = !DISubroutineType(types: !6) +!6 = !{!7} +!7 = !DIBasicType(tag: DW_TAG_unspecified_type, name: "void") +!8 = !{} +!9 = !DILocation(line: 0, scope: !3) +!10 = distinct !DISubprogram(name: "_scilla_expr_fun", linkageName: "_scilla_expr_fun", scope: !2, file: !2, line: 1, type: !5, scopeLine: 1, spFlags: DISPFlagDefinition, unit: !1, retainedNodes: !8) +!11 = !DILocalVariable(name: "$expr_6", scope: !10, file: !2, line: 1, type: !12) +!12 = !DIBasicType(name: "Int32", size: 4) +!13 = !DILocation(line: 1, column: 9, scope: !10) +!14 = !DILocalVariable(name: "a", scope: !10, file: !2, line: 1, type: !12) +!15 = !DILocation(line: 1, column: 5, scope: !10) +!16 = !DILocalVariable(name: "b", scope: !10, file: !2, line: 2, type: !12) +!17 = !DILocation(line: 2, column: 5, scope: !10) +!18 = !DILocation(line: 2, column: 9, scope: !10) +!19 = !DILocation(line: 3, column: 1, scope: !10) diff --git a/testsuite/expr/builtin_overflow4.ll b/testsuite/expr/builtin_overflow4.ll index 781cdc97..15ce7b44 100644 --- a/testsuite/expr/builtin_overflow4.ll +++ b/testsuite/expr/builtin_overflow4.ll @@ -4,7 +4,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-pc-linux-gnu" +target triple = "x86_64-unknown-linux-gnu" %"$TyDescrTy_PrimTyp_7" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/testsuite/expr/builtin_overflow5.dbg.ll b/testsuite/expr/builtin_overflow5.dbg.ll index 6b3cf56a..fcf83f57 100644 --- a/testsuite/expr/builtin_overflow5.dbg.ll +++ b/testsuite/expr/builtin_overflow5.dbg.ll @@ -4,7 +4,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-pc-linux-gnu" +target triple = "x86_64-unknown-linux-gnu" %"$TyDescrTy_PrimTyp_7" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } @@ -58,7 +58,7 @@ target triple = "x86_64-pc-linux-gnu" @_transition_parameters = constant [0 x %"$TransDescr_108"] zeroinitializer @_transition_parameters_length = constant i32 0 -define void @_init_libs() !dbg !4 { +define void @_init_libs() !dbg !3 { entry: %"$gasrem_44" = load i64, i64* @_gasrem, align 8 %"$gascmp_45" = icmp ugt i64 5, %"$gasrem_44" @@ -140,6 +140,7 @@ declare void @_out_of_gas() define internal %Int32 @_scilla_expr_fun(i8* %0) !dbg !10 { entry: %"$expr_6" = alloca %Int32, align 8 + call void @llvm.dbg.declare(metadata %Int32* %"$expr_6", metadata !11, metadata !DIExpression()), !dbg !13 %"$gasrem_74" = load i64, i64* @_gasrem, align 8 %"$gascmp_75" = icmp ugt i64 1, %"$gasrem_74" br i1 %"$gascmp_75", label %"$out_of_gas_76", label %"$have_gas_77" @@ -152,6 +153,7 @@ entry: %"$consume_78" = sub i64 %"$gasrem_74", 1 store i64 %"$consume_78", i64* @_gasrem, align 8 %a = alloca %Int32, align 8 + call void @llvm.dbg.declare(metadata %Int32* %a, metadata !14, metadata !DIExpression()), !dbg !15 %"$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" @@ -163,7 +165,7 @@ entry: "$have_gas_82": ; preds = %"$out_of_gas_81", %"$have_gas_77" %"$consume_83" = sub i64 %"$gasrem_79", 1 store i64 %"$consume_83", i64* @_gasrem, align 8 - store %Int32 { i32 2147483647 }, %Int32* %a, align 4, !dbg !11 + store %Int32 { i32 2147483647 }, %Int32* %a, align 4, !dbg !13 %"$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" @@ -176,6 +178,7 @@ entry: %"$consume_88" = sub i64 %"$gasrem_84", 1 store i64 %"$consume_88", i64* @_gasrem, align 8 %b = alloca %Int32, align 8 + call void @llvm.dbg.declare(metadata %Int32* %b, metadata !16, metadata !DIExpression()), !dbg !17 %"$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" @@ -187,7 +190,7 @@ entry: "$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 zeroinitializer, %Int32* %b, align 4, !dbg !12 + store %Int32 zeroinitializer, %Int32* %b, align 4, !dbg !18 %"$gasrem_94" = load i64, i64* @_gasrem, align 8 %"$gascmp_95" = icmp ugt i64 20, %"$gasrem_94" br i1 %"$gascmp_95", label %"$out_of_gas_96", label %"$have_gas_97" @@ -201,12 +204,15 @@ entry: store i64 %"$consume_98", i64* @_gasrem, align 8 %"$a_99" = load %Int32, %Int32* %a, align 4 %"$b_100" = load %Int32, %Int32* %b, align 4 - %"$div_call_101" = call %Int32 @_div_Int32(%Int32 %"$a_99", %Int32 %"$b_100"), !dbg !13 - store %Int32 %"$div_call_101", %Int32* %"$expr_6", align 4, !dbg !13 + %"$div_call_101" = call %Int32 @_div_Int32(%Int32 %"$a_99", %Int32 %"$b_100"), !dbg !19 + store %Int32 %"$div_call_101", %Int32* %"$expr_6", align 4, !dbg !19 %"$$expr_6_102" = load %Int32, %Int32* %"$expr_6", align 4 ret %Int32 %"$$expr_6_102" } +; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn +declare void @llvm.dbg.declare(metadata, metadata, metadata) #0 + declare %Int32 @_div_Int32(%Int32, %Int32) declare void @_print_scilla_val(i8*, %_TyDescrTy_Typ*, i8*) @@ -222,20 +228,28 @@ entry: ret void } +attributes #0 = { nocallback nofree nosync nounwind readnone speculatable willreturn } + !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) +!1 = distinct !DICompileUnit(language: DW_LANG_C89, file: !2, producer: "Scilla Compiler", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false) !2 = !DIFile(filename: "builtin_overflow5.scilexp", directory: "codegen/expr") -!3 = !{} -!4 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !5, file: !5, type: !6, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!5 = !DIFile(filename: ".", directory: ".") -!6 = !DISubroutineType(types: !7) -!7 = !{!8} -!8 = !DIBasicType(tag: DW_TAG_unspecified_type, name: "void") -!9 = !DILocation(line: 0, scope: !4) -!10 = distinct !DISubprogram(name: "_scilla_expr_fun", linkageName: "_scilla_expr_fun", scope: !2, file: !2, line: 1, type: !6, scopeLine: 1, spFlags: DISPFlagDefinition, unit: !1, retainedNodes: !3) -!11 = !DILocation(line: 1, column: 9, scope: !10) -!12 = !DILocation(line: 2, column: 9, scope: !10) -!13 = !DILocation(line: 3, column: 1, scope: !10) +!3 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !4, file: !4, type: !5, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!4 = !DIFile(filename: ".", directory: ".") +!5 = !DISubroutineType(types: !6) +!6 = !{!7} +!7 = !DIBasicType(tag: DW_TAG_unspecified_type, name: "void") +!8 = !{} +!9 = !DILocation(line: 0, scope: !3) +!10 = distinct !DISubprogram(name: "_scilla_expr_fun", linkageName: "_scilla_expr_fun", scope: !2, file: !2, line: 1, type: !5, scopeLine: 1, spFlags: DISPFlagDefinition, unit: !1, retainedNodes: !8) +!11 = !DILocalVariable(name: "$expr_6", scope: !10, file: !2, line: 1, type: !12) +!12 = !DIBasicType(name: "Int32", size: 4) +!13 = !DILocation(line: 1, column: 9, scope: !10) +!14 = !DILocalVariable(name: "a", scope: !10, file: !2, line: 1, type: !12) +!15 = !DILocation(line: 1, column: 5, scope: !10) +!16 = !DILocalVariable(name: "b", scope: !10, file: !2, line: 2, type: !12) +!17 = !DILocation(line: 2, column: 5, scope: !10) +!18 = !DILocation(line: 2, column: 9, scope: !10) +!19 = !DILocation(line: 3, column: 1, scope: !10) diff --git a/testsuite/expr/builtin_overflow5.ll b/testsuite/expr/builtin_overflow5.ll index a107e2c7..879a04b8 100644 --- a/testsuite/expr/builtin_overflow5.ll +++ b/testsuite/expr/builtin_overflow5.ll @@ -4,7 +4,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-pc-linux-gnu" +target triple = "x86_64-unknown-linux-gnu" %"$TyDescrTy_PrimTyp_7" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/testsuite/expr/builtin_overflow6.dbg.ll b/testsuite/expr/builtin_overflow6.dbg.ll index ba681153..f2b7a61d 100644 --- a/testsuite/expr/builtin_overflow6.dbg.ll +++ b/testsuite/expr/builtin_overflow6.dbg.ll @@ -4,7 +4,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-pc-linux-gnu" +target triple = "x86_64-unknown-linux-gnu" %"$TyDescrTy_PrimTyp_7" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } @@ -58,7 +58,7 @@ target triple = "x86_64-pc-linux-gnu" @_transition_parameters = constant [0 x %"$TransDescr_108"] zeroinitializer @_transition_parameters_length = constant i32 0 -define void @_init_libs() !dbg !4 { +define void @_init_libs() !dbg !3 { entry: %"$gasrem_44" = load i64, i64* @_gasrem, align 8 %"$gascmp_45" = icmp ugt i64 5, %"$gasrem_44" @@ -140,6 +140,7 @@ declare void @_out_of_gas() define internal %Int32 @_scilla_expr_fun(i8* %0) !dbg !10 { entry: %"$expr_6" = alloca %Int32, align 8 + call void @llvm.dbg.declare(metadata %Int32* %"$expr_6", metadata !11, metadata !DIExpression()), !dbg !13 %"$gasrem_74" = load i64, i64* @_gasrem, align 8 %"$gascmp_75" = icmp ugt i64 1, %"$gasrem_74" br i1 %"$gascmp_75", label %"$out_of_gas_76", label %"$have_gas_77" @@ -152,6 +153,7 @@ entry: %"$consume_78" = sub i64 %"$gasrem_74", 1 store i64 %"$consume_78", i64* @_gasrem, align 8 %a = alloca %Int32, align 8 + call void @llvm.dbg.declare(metadata %Int32* %a, metadata !14, metadata !DIExpression()), !dbg !15 %"$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" @@ -163,7 +165,7 @@ entry: "$have_gas_82": ; preds = %"$out_of_gas_81", %"$have_gas_77" %"$consume_83" = sub i64 %"$gasrem_79", 1 store i64 %"$consume_83", i64* @_gasrem, align 8 - store %Int32 { i32 -2147483648 }, %Int32* %a, align 4, !dbg !11 + store %Int32 { i32 -2147483648 }, %Int32* %a, align 4, !dbg !13 %"$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" @@ -176,6 +178,7 @@ entry: %"$consume_88" = sub i64 %"$gasrem_84", 1 store i64 %"$consume_88", i64* @_gasrem, align 8 %b = alloca %Int32, align 8 + call void @llvm.dbg.declare(metadata %Int32* %b, metadata !16, metadata !DIExpression()), !dbg !17 %"$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" @@ -187,7 +190,7 @@ entry: "$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 zeroinitializer, %Int32* %b, align 4, !dbg !12 + store %Int32 zeroinitializer, %Int32* %b, align 4, !dbg !18 %"$gasrem_94" = load i64, i64* @_gasrem, align 8 %"$gascmp_95" = icmp ugt i64 20, %"$gasrem_94" br i1 %"$gascmp_95", label %"$out_of_gas_96", label %"$have_gas_97" @@ -201,12 +204,15 @@ entry: store i64 %"$consume_98", i64* @_gasrem, align 8 %"$a_99" = load %Int32, %Int32* %a, align 4 %"$b_100" = load %Int32, %Int32* %b, align 4 - %"$rem_call_101" = call %Int32 @_rem_Int32(%Int32 %"$a_99", %Int32 %"$b_100"), !dbg !13 - store %Int32 %"$rem_call_101", %Int32* %"$expr_6", align 4, !dbg !13 + %"$rem_call_101" = call %Int32 @_rem_Int32(%Int32 %"$a_99", %Int32 %"$b_100"), !dbg !19 + store %Int32 %"$rem_call_101", %Int32* %"$expr_6", align 4, !dbg !19 %"$$expr_6_102" = load %Int32, %Int32* %"$expr_6", align 4 ret %Int32 %"$$expr_6_102" } +; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn +declare void @llvm.dbg.declare(metadata, metadata, metadata) #0 + declare %Int32 @_rem_Int32(%Int32, %Int32) declare void @_print_scilla_val(i8*, %_TyDescrTy_Typ*, i8*) @@ -222,20 +228,28 @@ entry: ret void } +attributes #0 = { nocallback nofree nosync nounwind readnone speculatable willreturn } + !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) +!1 = distinct !DICompileUnit(language: DW_LANG_C89, file: !2, producer: "Scilla Compiler", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false) !2 = !DIFile(filename: "builtin_overflow6.scilexp", directory: "codegen/expr") -!3 = !{} -!4 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !5, file: !5, type: !6, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!5 = !DIFile(filename: ".", directory: ".") -!6 = !DISubroutineType(types: !7) -!7 = !{!8} -!8 = !DIBasicType(tag: DW_TAG_unspecified_type, name: "void") -!9 = !DILocation(line: 0, scope: !4) -!10 = distinct !DISubprogram(name: "_scilla_expr_fun", linkageName: "_scilla_expr_fun", scope: !2, file: !2, line: 1, type: !6, scopeLine: 1, spFlags: DISPFlagDefinition, unit: !1, retainedNodes: !3) -!11 = !DILocation(line: 1, column: 9, scope: !10) -!12 = !DILocation(line: 2, column: 9, scope: !10) -!13 = !DILocation(line: 3, column: 1, scope: !10) +!3 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !4, file: !4, type: !5, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!4 = !DIFile(filename: ".", directory: ".") +!5 = !DISubroutineType(types: !6) +!6 = !{!7} +!7 = !DIBasicType(tag: DW_TAG_unspecified_type, name: "void") +!8 = !{} +!9 = !DILocation(line: 0, scope: !3) +!10 = distinct !DISubprogram(name: "_scilla_expr_fun", linkageName: "_scilla_expr_fun", scope: !2, file: !2, line: 1, type: !5, scopeLine: 1, spFlags: DISPFlagDefinition, unit: !1, retainedNodes: !8) +!11 = !DILocalVariable(name: "$expr_6", scope: !10, file: !2, line: 1, type: !12) +!12 = !DIBasicType(name: "Int32", size: 4) +!13 = !DILocation(line: 1, column: 9, scope: !10) +!14 = !DILocalVariable(name: "a", scope: !10, file: !2, line: 1, type: !12) +!15 = !DILocation(line: 1, column: 5, scope: !10) +!16 = !DILocalVariable(name: "b", scope: !10, file: !2, line: 2, type: !12) +!17 = !DILocation(line: 2, column: 5, scope: !10) +!18 = !DILocation(line: 2, column: 9, scope: !10) +!19 = !DILocation(line: 3, column: 1, scope: !10) diff --git a/testsuite/expr/builtin_overflow6.ll b/testsuite/expr/builtin_overflow6.ll index 2c0c07e0..f46e76a8 100644 --- a/testsuite/expr/builtin_overflow6.ll +++ b/testsuite/expr/builtin_overflow6.ll @@ -4,7 +4,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-pc-linux-gnu" +target triple = "x86_64-unknown-linux-gnu" %"$TyDescrTy_PrimTyp_7" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/testsuite/expr/builtin_ripemd160hash.dbg.ll b/testsuite/expr/builtin_ripemd160hash.dbg.ll index 7adf9d87..4ab0cebb 100644 --- a/testsuite/expr/builtin_ripemd160hash.dbg.ll +++ b/testsuite/expr/builtin_ripemd160hash.dbg.ll @@ -10,7 +10,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-pc-linux-gnu" +target triple = "x86_64-unknown-linux-gnu" %"$TyDescrTy_PrimTyp_7" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } @@ -94,7 +94,7 @@ target triple = "x86_64-pc-linux-gnu" @_transition_parameters = constant [0 x %"$TransDescr_267"] zeroinitializer @_transition_parameters_length = constant i32 0 -define void @_init_libs() !dbg !4 { +define void @_init_libs() !dbg !3 { entry: %"$gasrem_63" = load i64, i64* @_gasrem, align 8 %"$gascmp_64" = icmp ugt i64 5, %"$gasrem_63" @@ -176,6 +176,7 @@ declare void @_out_of_gas() define internal void @_scilla_expr_fun(i8* %0, [20 x i8]* %1) !dbg !10 { entry: %"$expr_6" = alloca [20 x i8], align 1 + call void @llvm.dbg.declare(metadata [20 x i8]* %"$expr_6", metadata !11, metadata !DIExpression()), !dbg !13 %"$gasrem_93" = load i64, i64* @_gasrem, align 8 %"$gascmp_94" = icmp ugt i64 1, %"$gasrem_93" br i1 %"$gascmp_94", label %"$out_of_gas_95", label %"$have_gas_96" @@ -188,6 +189,7 @@ entry: %"$consume_97" = sub i64 %"$gasrem_93", 1 store i64 %"$consume_97", i64* @_gasrem, align 8 %s = alloca %String, align 8 + call void @llvm.dbg.declare(metadata %String* %s, metadata !14, metadata !DIExpression()), !dbg !16 %"$gasrem_98" = load i64, i64* @_gasrem, align 8 %"$gascmp_99" = icmp ugt i64 1, %"$gasrem_98" br i1 %"$gascmp_99", label %"$out_of_gas_100", label %"$have_gas_101" @@ -199,7 +201,7 @@ entry: "$have_gas_101": ; preds = %"$out_of_gas_100", %"$have_gas_96" %"$consume_102" = sub i64 %"$gasrem_98", 1 store i64 %"$consume_102", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_103", i32 0, i32 0), i32 5 }, %String* %s, align 8, !dbg !11 + store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_103", i32 0, i32 0), i32 5 }, %String* %s, align 8, !dbg !13 %"$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" @@ -212,6 +214,7 @@ entry: %"$consume_108" = sub i64 %"$gasrem_104", 1 store i64 %"$consume_108", i64* @_gasrem, align 8 %h1 = alloca [20 x i8], align 1 + call void @llvm.dbg.declare(metadata [20 x i8]* %h1, metadata !17, metadata !DIExpression()), !dbg !18 %"$_literal_cost_s_109" = alloca %String, align 8 %"$s_110" = load %String, %String* %s, align 8 store %String %"$s_110", %String* %"$_literal_cost_s_109", align 8 @@ -239,9 +242,9 @@ entry: %"$s_126" = load %String, %String* %s, align 8 store %String %"$s_126", %String* %"$ripemd160hash_s_125", align 8 %"$$ripemd160hash_s_125_127" = bitcast %String* %"$ripemd160hash_s_125" to i8* - %"$ripemd160hash_call_128" = call [20 x i8]* @_ripemd160hash(i8* %"$execptr_load_124", %_TyDescrTy_Typ* @"$TyDescr_String_25", i8* %"$$ripemd160hash_s_125_127"), !dbg !12 + %"$ripemd160hash_call_128" = call [20 x i8]* @_ripemd160hash(i8* %"$execptr_load_124", %_TyDescrTy_Typ* @"$TyDescr_String_25", i8* %"$$ripemd160hash_s_125_127"), !dbg !19 %"$ripemd160hash_130" = load [20 x i8], [20 x i8]* %"$ripemd160hash_call_128", align 1 - store [20 x i8] %"$ripemd160hash_130", [20 x i8]* %h1, align 1, !dbg !12 + store [20 x i8] %"$ripemd160hash_130", [20 x i8]* %h1, align 1, !dbg !19 %"$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" @@ -254,6 +257,7 @@ entry: %"$consume_135" = sub i64 %"$gasrem_131", 1 store i64 %"$consume_135", i64* @_gasrem, align 8 %h2 = alloca [20 x i8], align 1 + call void @llvm.dbg.declare(metadata [20 x i8]* %h2, metadata !20, metadata !DIExpression()), !dbg !21 %"$_literal_cost_h1_136" = alloca [20 x i8], align 1 %"$h1_137" = load [20 x i8], [20 x i8]* %h1, align 1 store [20 x i8] %"$h1_137", [20 x i8]* %"$_literal_cost_h1_136", align 1 @@ -281,9 +285,9 @@ entry: %"$h1_153" = load [20 x i8], [20 x i8]* %h1, align 1 store [20 x i8] %"$h1_153", [20 x i8]* %"$ripemd160hash_h1_152", align 1 %"$$ripemd160hash_h1_152_154" = bitcast [20 x i8]* %"$ripemd160hash_h1_152" to i8* - %"$ripemd160hash_call_155" = call [20 x i8]* @_ripemd160hash(i8* %"$execptr_load_151", %_TyDescrTy_Typ* @"$TyDescr_Bystr20_39", i8* %"$$ripemd160hash_h1_152_154"), !dbg !13 + %"$ripemd160hash_call_155" = call [20 x i8]* @_ripemd160hash(i8* %"$execptr_load_151", %_TyDescrTy_Typ* @"$TyDescr_Bystr20_39", i8* %"$$ripemd160hash_h1_152_154"), !dbg !22 %"$ripemd160hash_157" = load [20 x i8], [20 x i8]* %"$ripemd160hash_call_155", align 1 - store [20 x i8] %"$ripemd160hash_157", [20 x i8]* %h2, align 1, !dbg !13 + store [20 x i8] %"$ripemd160hash_157", [20 x i8]* %h2, align 1, !dbg !22 %"$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" @@ -296,6 +300,7 @@ entry: %"$consume_162" = sub i64 %"$gasrem_158", 1 store i64 %"$consume_162", i64* @_gasrem, align 8 %sh = alloca %TName_Pair_String_ByStr20*, align 8 + call void @llvm.dbg.declare(metadata %TName_Pair_String_ByStr20** %sh, metadata !23, metadata !DIExpression()), !dbg !26 %"$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" @@ -319,7 +324,7 @@ entry: %"$adtgep_173" = getelementptr inbounds %CName_Pair_String_ByStr20, %CName_Pair_String_ByStr20* %"$adtval_170", i32 0, i32 2 store [20 x i8] %"$h2_169", [20 x i8]* %"$adtgep_173", align 1 %"$adtptr_174" = bitcast %CName_Pair_String_ByStr20* %"$adtval_170" to %TName_Pair_String_ByStr20* - store %TName_Pair_String_ByStr20* %"$adtptr_174", %TName_Pair_String_ByStr20** %sh, align 8, !dbg !14 + store %TName_Pair_String_ByStr20* %"$adtptr_174", %TName_Pair_String_ByStr20** %sh, align 8, !dbg !27 %"$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" @@ -332,6 +337,7 @@ entry: %"$consume_179" = sub i64 %"$gasrem_175", 1 store i64 %"$consume_179", i64* @_gasrem, align 8 %sh2 = alloca [20 x i8], align 1 + call void @llvm.dbg.declare(metadata [20 x i8]* %sh2, metadata !28, metadata !DIExpression()), !dbg !29 %"$sh_180" = load %TName_Pair_String_ByStr20*, %TName_Pair_String_ByStr20** %sh, align 8 %"$$sh_180_181" = bitcast %TName_Pair_String_ByStr20* %"$sh_180" to i8* %"$_literal_cost_call_182" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Pair_String_ByStr20_44", i8* %"$$sh_180_181") @@ -355,9 +361,9 @@ entry: %"$execptr_load_194" = load i8*, i8** @_execptr, align 8 %"$sh_195" = load %TName_Pair_String_ByStr20*, %TName_Pair_String_ByStr20** %sh, align 8 %"$$sh_195_196" = bitcast %TName_Pair_String_ByStr20* %"$sh_195" to i8* - %"$ripemd160hash_call_197" = call [20 x i8]* @_ripemd160hash(i8* %"$execptr_load_194", %_TyDescrTy_Typ* @"$TyDescr_ADT_Pair_String_ByStr20_44", i8* %"$$sh_195_196"), !dbg !15 + %"$ripemd160hash_call_197" = call [20 x i8]* @_ripemd160hash(i8* %"$execptr_load_194", %_TyDescrTy_Typ* @"$TyDescr_ADT_Pair_String_ByStr20_44", i8* %"$$sh_195_196"), !dbg !30 %"$ripemd160hash_199" = load [20 x i8], [20 x i8]* %"$ripemd160hash_call_197", align 1 - store [20 x i8] %"$ripemd160hash_199", [20 x i8]* %sh2, align 1, !dbg !15 + store [20 x i8] %"$ripemd160hash_199", [20 x i8]* %sh2, align 1, !dbg !30 %"$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" @@ -370,6 +376,7 @@ entry: %"$consume_204" = sub i64 %"$gasrem_200", 1 store i64 %"$consume_204", i64* @_gasrem, align 8 %bystr1 = alloca %Bystr, align 8 + call void @llvm.dbg.declare(metadata %Bystr* %bystr1, metadata !31, metadata !DIExpression()), !dbg !33 %"$gasrem_205" = load i64, i64* @_gasrem, align 8 %"$gascmp_206" = icmp ugt i64 20, %"$gasrem_205" br i1 %"$gascmp_206", label %"$out_of_gas_207", label %"$have_gas_208" @@ -386,8 +393,8 @@ entry: %"$sh2_212" = load [20 x i8], [20 x i8]* %sh2, align 1 store [20 x i8] %"$sh2_212", [20 x i8]* %"$to_bystr_sh2_211", align 1 %"$$to_bystr_sh2_211_213" = bitcast [20 x i8]* %"$to_bystr_sh2_211" to i8* - %"$to_bystr_call_214" = call %Bystr @_to_bystr(i8* %"$execptr_load_210", i32 20, i8* %"$$to_bystr_sh2_211_213"), !dbg !16 - store %Bystr %"$to_bystr_call_214", %Bystr* %bystr1, align 8, !dbg !16 + %"$to_bystr_call_214" = call %Bystr @_to_bystr(i8* %"$execptr_load_210", i32 20, i8* %"$$to_bystr_sh2_211_213"), !dbg !34 + store %Bystr %"$to_bystr_call_214", %Bystr* %bystr1, align 8, !dbg !34 %"$gasrem_215" = load i64, i64* @_gasrem, align 8 %"$gascmp_216" = icmp ugt i64 1, %"$gasrem_215" br i1 %"$gascmp_216", label %"$out_of_gas_217", label %"$have_gas_218" @@ -400,6 +407,7 @@ entry: %"$consume_219" = sub i64 %"$gasrem_215", 1 store i64 %"$consume_219", i64* @_gasrem, align 8 %i4 = alloca %Int32, align 8 + call void @llvm.dbg.declare(metadata %Int32* %i4, metadata !35, metadata !DIExpression()), !dbg !37 %"$gasrem_220" = load i64, i64* @_gasrem, align 8 %"$gascmp_221" = icmp ugt i64 1, %"$gasrem_220" br i1 %"$gascmp_221", label %"$out_of_gas_222", label %"$have_gas_223" @@ -411,7 +419,7 @@ entry: "$have_gas_223": ; preds = %"$out_of_gas_222", %"$have_gas_218" %"$consume_224" = sub i64 %"$gasrem_220", 1 store i64 %"$consume_224", i64* @_gasrem, align 8 - store %Int32 { i32 4 }, %Int32* %i4, align 4, !dbg !17 + store %Int32 { i32 4 }, %Int32* %i4, align 4, !dbg !38 %"$gasrem_225" = load i64, i64* @_gasrem, align 8 %"$gascmp_226" = icmp ugt i64 1, %"$gasrem_225" br i1 %"$gascmp_226", label %"$out_of_gas_227", label %"$have_gas_228" @@ -424,6 +432,7 @@ entry: %"$consume_229" = sub i64 %"$gasrem_225", 1 store i64 %"$consume_229", i64* @_gasrem, align 8 %p2 = alloca %TName_Pair_ByStr_Int32*, align 8 + call void @llvm.dbg.declare(metadata %TName_Pair_ByStr_Int32** %p2, metadata !39, metadata !DIExpression()), !dbg !42 %"$gasrem_230" = load i64, i64* @_gasrem, align 8 %"$gascmp_231" = icmp ugt i64 1, %"$gasrem_230" br i1 %"$gascmp_231", label %"$out_of_gas_232", label %"$have_gas_233" @@ -447,7 +456,7 @@ entry: %"$adtgep_240" = getelementptr inbounds %CName_Pair_ByStr_Int32, %CName_Pair_ByStr_Int32* %"$adtval_237", i32 0, i32 2 store %Int32 %"$i4_236", %Int32* %"$adtgep_240", align 4 %"$adtptr_241" = bitcast %CName_Pair_ByStr_Int32* %"$adtval_237" to %TName_Pair_ByStr_Int32* - store %TName_Pair_ByStr_Int32* %"$adtptr_241", %TName_Pair_ByStr_Int32** %p2, align 8, !dbg !18 + store %TName_Pair_ByStr_Int32* %"$adtptr_241", %TName_Pair_ByStr_Int32** %p2, align 8, !dbg !43 %"$p2_242" = load %TName_Pair_ByStr_Int32*, %TName_Pair_ByStr_Int32** %p2, align 8 %"$$p2_242_243" = bitcast %TName_Pair_ByStr_Int32* %"$p2_242" to i8* %"$_literal_cost_call_244" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Pair_ByStr_Int32_43", i8* %"$$p2_242_243") @@ -471,14 +480,17 @@ entry: %"$execptr_load_256" = load i8*, i8** @_execptr, align 8 %"$p2_257" = load %TName_Pair_ByStr_Int32*, %TName_Pair_ByStr_Int32** %p2, align 8 %"$$p2_257_258" = bitcast %TName_Pair_ByStr_Int32* %"$p2_257" to i8* - %"$ripemd160hash_call_259" = call [20 x i8]* @_ripemd160hash(i8* %"$execptr_load_256", %_TyDescrTy_Typ* @"$TyDescr_ADT_Pair_ByStr_Int32_43", i8* %"$$p2_257_258"), !dbg !19 + %"$ripemd160hash_call_259" = call [20 x i8]* @_ripemd160hash(i8* %"$execptr_load_256", %_TyDescrTy_Typ* @"$TyDescr_ADT_Pair_ByStr_Int32_43", i8* %"$$p2_257_258"), !dbg !44 %"$ripemd160hash_261" = load [20 x i8], [20 x i8]* %"$ripemd160hash_call_259", align 1 - store [20 x i8] %"$ripemd160hash_261", [20 x i8]* %"$expr_6", align 1, !dbg !19 + store [20 x i8] %"$ripemd160hash_261", [20 x i8]* %"$expr_6", align 1, !dbg !44 %"$$expr_6_262" = load [20 x i8], [20 x i8]* %"$expr_6", align 1 store [20 x i8] %"$$expr_6_262", [20 x i8]* %1, align 1 ret void } +; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn +declare void @llvm.dbg.declare(metadata, metadata, metadata) #0 + declare i64 @_literal_cost(%_TyDescrTy_Typ*, i8*) declare [20 x i8]* @_ripemd160hash(i8*, %_TyDescrTy_Typ*, i8*) @@ -499,26 +511,53 @@ entry: ret void } +attributes #0 = { nocallback nofree nosync nounwind readnone speculatable willreturn } + !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) +!1 = distinct !DICompileUnit(language: DW_LANG_C89, file: !2, producer: "Scilla Compiler", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false) !2 = !DIFile(filename: "builtin_ripemd160hash.scilexp", directory: "codegen/expr") -!3 = !{} -!4 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !5, file: !5, type: !6, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!5 = !DIFile(filename: ".", directory: ".") -!6 = !DISubroutineType(types: !7) -!7 = !{!8} -!8 = !DIBasicType(tag: DW_TAG_unspecified_type, name: "void") -!9 = !DILocation(line: 0, scope: !4) -!10 = distinct !DISubprogram(name: "_scilla_expr_fun", linkageName: "_scilla_expr_fun", scope: !2, file: !2, line: 1, type: !6, scopeLine: 1, spFlags: DISPFlagDefinition, unit: !1, retainedNodes: !3) -!11 = !DILocation(line: 1, column: 15, scope: !10) -!12 = !DILocation(line: 2, column: 10, scope: !10) -!13 = !DILocation(line: 3, column: 10, scope: !10) -!14 = !DILocation(line: 4, column: 10, scope: !10) -!15 = !DILocation(line: 5, column: 11, scope: !10) -!16 = !DILocation(line: 6, column: 14, scope: !10) -!17 = !DILocation(line: 7, column: 10, scope: !10) -!18 = !DILocation(line: 8, column: 10, scope: !10) -!19 = !DILocation(line: 9, column: 1, scope: !10) +!3 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !4, file: !4, type: !5, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!4 = !DIFile(filename: ".", directory: ".") +!5 = !DISubroutineType(types: !6) +!6 = !{!7} +!7 = !DIBasicType(tag: DW_TAG_unspecified_type, name: "void") +!8 = !{} +!9 = !DILocation(line: 0, scope: !3) +!10 = distinct !DISubprogram(name: "_scilla_expr_fun", linkageName: "_scilla_expr_fun", scope: !2, file: !2, line: 1, type: !5, scopeLine: 1, spFlags: DISPFlagDefinition, unit: !1, retainedNodes: !8) +!11 = !DILocalVariable(name: "$expr_6", scope: !10, file: !2, line: 1, type: !12) +!12 = !DIBasicType(name: "ByStr20", size: 20) +!13 = !DILocation(line: 1, column: 15, scope: !10) +!14 = !DILocalVariable(name: "s", scope: !10, file: !2, line: 1, type: !15) +!15 = !DIBasicType(name: "String", size: 16) +!16 = !DILocation(line: 1, column: 5, scope: !10) +!17 = !DILocalVariable(name: "h1", scope: !10, file: !2, line: 2, type: !12) +!18 = !DILocation(line: 2, column: 5, scope: !10) +!19 = !DILocation(line: 2, column: 10, scope: !10) +!20 = !DILocalVariable(name: "h2", scope: !10, file: !2, line: 3, type: !12) +!21 = !DILocation(line: 3, column: 5, scope: !10) +!22 = !DILocation(line: 3, column: 10, scope: !10) +!23 = !DILocalVariable(name: "sh", scope: !10, file: !2, line: 4, type: !24) +!24 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "Pair (String) (ByStr20)", baseType: !25, size: 8, align: 8, dwarfAddressSpace: 0) +!25 = !DIBasicType(name: "Pair (String) (ByStr20)", size: 8) +!26 = !DILocation(line: 4, column: 5, scope: !10) +!27 = !DILocation(line: 4, column: 10, scope: !10) +!28 = !DILocalVariable(name: "sh2", scope: !10, file: !2, line: 5, type: !12) +!29 = !DILocation(line: 5, column: 5, scope: !10) +!30 = !DILocation(line: 5, column: 11, scope: !10) +!31 = !DILocalVariable(name: "bystr1", scope: !10, file: !2, line: 6, type: !32) +!32 = !DIBasicType(name: "ByStr", size: 16) +!33 = !DILocation(line: 6, column: 5, scope: !10) +!34 = !DILocation(line: 6, column: 14, scope: !10) +!35 = !DILocalVariable(name: "i4", scope: !10, file: !2, line: 7, type: !36) +!36 = !DIBasicType(name: "Int32", size: 4) +!37 = !DILocation(line: 7, column: 5, scope: !10) +!38 = !DILocation(line: 7, column: 10, scope: !10) +!39 = !DILocalVariable(name: "p2", scope: !10, file: !2, line: 8, type: !40) +!40 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "Pair (ByStr) (Int32)", baseType: !41, size: 8, align: 8, dwarfAddressSpace: 0) +!41 = !DIBasicType(name: "Pair (ByStr) (Int32)", size: 8) +!42 = !DILocation(line: 8, column: 5, scope: !10) +!43 = !DILocation(line: 8, column: 10, scope: !10) +!44 = !DILocation(line: 9, column: 1, scope: !10) diff --git a/testsuite/expr/builtin_ripemd160hash.ll b/testsuite/expr/builtin_ripemd160hash.ll index 8a583337..a0e442af 100644 --- a/testsuite/expr/builtin_ripemd160hash.ll +++ b/testsuite/expr/builtin_ripemd160hash.ll @@ -10,7 +10,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-pc-linux-gnu" +target triple = "x86_64-unknown-linux-gnu" %"$TyDescrTy_PrimTyp_7" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/testsuite/expr/builtin_schnorr_verify_false.dbg.ll b/testsuite/expr/builtin_schnorr_verify_false.dbg.ll index 5ab60961..ca277dce 100644 --- a/testsuite/expr/builtin_schnorr_verify_false.dbg.ll +++ b/testsuite/expr/builtin_schnorr_verify_false.dbg.ll @@ -6,7 +6,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-pc-linux-gnu" +target triple = "x86_64-unknown-linux-gnu" %"$TyDescrTy_PrimTyp_7" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } @@ -87,7 +87,7 @@ target triple = "x86_64-pc-linux-gnu" @_transition_parameters = constant [0 x %"$TransDescr_168"] zeroinitializer @_transition_parameters_length = constant i32 0 -define void @_init_libs() !dbg !4 { +define void @_init_libs() !dbg !3 { entry: %"$gasrem_63" = load i64, i64* @_gasrem, align 8 %"$gascmp_64" = icmp ugt i64 5, %"$gasrem_63" @@ -169,6 +169,7 @@ declare void @_out_of_gas() define internal %TName_Bool* @_scilla_expr_fun(i8* %0) !dbg !10 { entry: %"$expr_6" = alloca %TName_Bool*, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$expr_6", metadata !11, metadata !DIExpression()), !dbg !14 %"$gasrem_93" = load i64, i64* @_gasrem, align 8 %"$gascmp_94" = icmp ugt i64 1, %"$gasrem_93" br i1 %"$gascmp_94", label %"$out_of_gas_95", label %"$have_gas_96" @@ -181,6 +182,7 @@ entry: %"$consume_97" = sub i64 %"$gasrem_93", 1 store i64 %"$consume_97", i64* @_gasrem, align 8 %pk = alloca [33 x i8], align 1 + call void @llvm.dbg.declare(metadata [33 x i8]* %pk, metadata !15, metadata !DIExpression()), !dbg !17 %"$gasrem_98" = load i64, i64* @_gasrem, align 8 %"$gascmp_99" = icmp ugt i64 1, %"$gasrem_98" br i1 %"$gascmp_99", label %"$out_of_gas_100", label %"$have_gas_101" @@ -192,7 +194,7 @@ entry: "$have_gas_101": ; preds = %"$out_of_gas_100", %"$have_gas_96" %"$consume_102" = sub i64 %"$gasrem_98", 1 store i64 %"$consume_102", i64* @_gasrem, align 8 - store [33 x i8] c"\03\AF\AC!|I\B7j\1E\88\D7\8B\13\B4s\E8{\0D:{xx\8B0\D1Kn\B1\DE)\93}\86", [33 x i8]* %pk, align 1, !dbg !11 + store [33 x i8] c"\03\AF\AC!|I\B7j\1E\88\D7\8B\13\B4s\E8{\0D:{xx\8B0\D1Kn\B1\DE)\93}\86", [33 x i8]* %pk, align 1, !dbg !14 %"$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" @@ -205,6 +207,7 @@ entry: %"$consume_107" = sub i64 %"$gasrem_103", 1 store i64 %"$consume_107", i64* @_gasrem, align 8 %msg_bs = alloca [32 x i8], align 1 + call void @llvm.dbg.declare(metadata [32 x i8]* %msg_bs, metadata !18, metadata !DIExpression()), !dbg !20 %"$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" @@ -216,7 +219,7 @@ entry: "$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 [32 x i8] c"\B1\0E-Rv\12\07;&\EE\CD\FDq~j2\0C\F4KJ\FA\C2\B0s-\9F\CB\E2\B7\FA\0C\F6", [32 x i8]* %msg_bs, align 1, !dbg !12 + store [32 x i8] c"\B1\0E-Rv\12\07;&\EE\CD\FDq~j2\0C\F4KJ\FA\C2\B0s-\9F\CB\E2\B7\FA\0C\F6", [32 x i8]* %msg_bs, align 1, !dbg !21 %"$gasrem_113" = load i64, i64* @_gasrem, align 8 %"$gascmp_114" = icmp ugt i64 1, %"$gasrem_113" br i1 %"$gascmp_114", label %"$out_of_gas_115", label %"$have_gas_116" @@ -229,6 +232,7 @@ entry: %"$consume_117" = sub i64 %"$gasrem_113", 1 store i64 %"$consume_117", i64* @_gasrem, align 8 %msg = alloca %Bystr, align 8 + call void @llvm.dbg.declare(metadata %Bystr* %msg, metadata !22, metadata !DIExpression()), !dbg !24 %"$gasrem_118" = load i64, i64* @_gasrem, align 8 %"$gascmp_119" = icmp ugt i64 32, %"$gasrem_118" br i1 %"$gascmp_119", label %"$out_of_gas_120", label %"$have_gas_121" @@ -245,8 +249,8 @@ entry: %"$msg_bs_125" = load [32 x i8], [32 x i8]* %msg_bs, align 1 store [32 x i8] %"$msg_bs_125", [32 x i8]* %"$to_bystr_msg_bs_124", align 1 %"$$to_bystr_msg_bs_124_126" = bitcast [32 x i8]* %"$to_bystr_msg_bs_124" to i8* - %"$to_bystr_call_127" = call %Bystr @_to_bystr(i8* %"$execptr_load_123", i32 32, i8* %"$$to_bystr_msg_bs_124_126"), !dbg !13 - store %Bystr %"$to_bystr_call_127", %Bystr* %msg, align 8, !dbg !13 + %"$to_bystr_call_127" = call %Bystr @_to_bystr(i8* %"$execptr_load_123", i32 32, i8* %"$$to_bystr_msg_bs_124_126"), !dbg !25 + store %Bystr %"$to_bystr_call_127", %Bystr* %msg, align 8, !dbg !25 %"$gasrem_128" = load i64, i64* @_gasrem, align 8 %"$gascmp_129" = icmp ugt i64 1, %"$gasrem_128" br i1 %"$gascmp_129", label %"$out_of_gas_130", label %"$have_gas_131" @@ -259,6 +263,7 @@ entry: %"$consume_132" = sub i64 %"$gasrem_128", 1 store i64 %"$consume_132", i64* @_gasrem, align 8 %sign = alloca [64 x i8], align 1 + call void @llvm.dbg.declare(metadata [64 x i8]* %sign, metadata !26, metadata !DIExpression()), !dbg !28 %"$gasrem_133" = load i64, i64* @_gasrem, align 8 %"$gascmp_134" = icmp ugt i64 1, %"$gasrem_133" br i1 %"$gascmp_134", label %"$out_of_gas_135", label %"$have_gas_136" @@ -270,7 +275,7 @@ entry: "$have_gas_136": ; preds = %"$out_of_gas_135", %"$have_gas_131" %"$consume_137" = sub i64 %"$gasrem_133", 1 store i64 %"$consume_137", i64* @_gasrem, align 8 - store [64 x i8] c"\91\9D\BD\E7\10\BF\A1\A2'\D1\D5\12 \02*oZ\92P\9B r\FC\0A\C5\0E\E9z:U\98zBT'm\E54\B0\18\A0\BB|\99\A7\FB\DBF\840\95i5\B3\EB\B6h\DF\8BO\A3\E2Z\AF", [64 x i8]* %sign, align 1, !dbg !14 + store [64 x i8] c"\91\9D\BD\E7\10\BF\A1\A2'\D1\D5\12 \02*oZ\92P\9B r\FC\0A\C5\0E\E9z:U\98zBT'm\E54\B0\18\A0\BB|\99\A7\FB\DBF\840\95i5\B3\EB\B6h\DF\8BO\A3\E2Z\AF", [64 x i8]* %sign, align 1, !dbg !29 %"$_literal_cost_msg_138" = alloca %Bystr, align 8 %"$msg_139" = load %Bystr, %Bystr* %msg, align 8 store %Bystr %"$msg_139", %Bystr* %"$_literal_cost_msg_138", align 8 @@ -303,12 +308,15 @@ entry: %"$schnorr_verify_sign_159" = alloca [64 x i8], align 1 %"$sign_160" = load [64 x i8], [64 x i8]* %sign, align 1 store [64 x i8] %"$sign_160", [64 x i8]* %"$schnorr_verify_sign_159", align 1 - %"$schnorr_verify_call_161" = call %TName_Bool* @_schnorr_verify(i8* %"$execptr_load_155", [33 x i8]* %"$schnorr_verify_pk_156", %Bystr %"$msg_158", [64 x i8]* %"$schnorr_verify_sign_159"), !dbg !15 - store %TName_Bool* %"$schnorr_verify_call_161", %TName_Bool** %"$expr_6", align 8, !dbg !15 + %"$schnorr_verify_call_161" = call %TName_Bool* @_schnorr_verify(i8* %"$execptr_load_155", [33 x i8]* %"$schnorr_verify_pk_156", %Bystr %"$msg_158", [64 x i8]* %"$schnorr_verify_sign_159"), !dbg !30 + store %TName_Bool* %"$schnorr_verify_call_161", %TName_Bool** %"$expr_6", align 8, !dbg !30 %"$$expr_6_163" = load %TName_Bool*, %TName_Bool** %"$expr_6", align 8 ret %TName_Bool* %"$$expr_6_163" } +; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn +declare void @llvm.dbg.declare(metadata, metadata, metadata) #0 + declare %Bystr @_to_bystr(i8*, i32, i8*) declare i64 @_literal_cost(%_TyDescrTy_Typ*, i8*) @@ -326,22 +334,39 @@ entry: ret void } +attributes #0 = { nocallback nofree nosync nounwind readnone speculatable willreturn } + !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) +!1 = distinct !DICompileUnit(language: DW_LANG_C89, file: !2, producer: "Scilla Compiler", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false) !2 = !DIFile(filename: "builtin_schnorr_verify_false.scilexp", directory: "codegen/expr") -!3 = !{} -!4 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !5, file: !5, type: !6, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!5 = !DIFile(filename: ".", directory: ".") -!6 = !DISubroutineType(types: !7) -!7 = !{!8} -!8 = !DIBasicType(tag: DW_TAG_unspecified_type, name: "void") -!9 = !DILocation(line: 0, scope: !4) -!10 = distinct !DISubprogram(name: "_scilla_expr_fun", linkageName: "_scilla_expr_fun", scope: !2, file: !2, line: 1, type: !6, scopeLine: 1, spFlags: DISPFlagDefinition, unit: !1, retainedNodes: !3) -!11 = !DILocation(line: 1, column: 10, scope: !10) -!12 = !DILocation(line: 2, column: 14, scope: !10) -!13 = !DILocation(line: 3, column: 11, scope: !10) -!14 = !DILocation(line: 4, column: 12, scope: !10) -!15 = !DILocation(line: 5, column: 1, scope: !10) +!3 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !4, file: !4, type: !5, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!4 = !DIFile(filename: ".", directory: ".") +!5 = !DISubroutineType(types: !6) +!6 = !{!7} +!7 = !DIBasicType(tag: DW_TAG_unspecified_type, name: "void") +!8 = !{} +!9 = !DILocation(line: 0, scope: !3) +!10 = distinct !DISubprogram(name: "_scilla_expr_fun", linkageName: "_scilla_expr_fun", scope: !2, file: !2, line: 1, type: !5, scopeLine: 1, spFlags: DISPFlagDefinition, unit: !1, retainedNodes: !8) +!11 = !DILocalVariable(name: "$expr_6", scope: !10, file: !2, line: 1, type: !12) +!12 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "Bool", baseType: !13, size: 8, align: 8, dwarfAddressSpace: 0) +!13 = !DIBasicType(name: "Bool", size: 8) +!14 = !DILocation(line: 1, column: 10, scope: !10) +!15 = !DILocalVariable(name: "pk", scope: !10, file: !2, line: 1, type: !16) +!16 = !DIBasicType(name: "ByStr33", size: 33) +!17 = !DILocation(line: 1, column: 5, scope: !10) +!18 = !DILocalVariable(name: "msg_bs", scope: !10, file: !2, line: 2, type: !19) +!19 = !DIBasicType(name: "ByStr32", size: 32) +!20 = !DILocation(line: 2, column: 5, scope: !10) +!21 = !DILocation(line: 2, column: 14, scope: !10) +!22 = !DILocalVariable(name: "msg", scope: !10, file: !2, line: 3, type: !23) +!23 = !DIBasicType(name: "ByStr", size: 16) +!24 = !DILocation(line: 3, column: 5, scope: !10) +!25 = !DILocation(line: 3, column: 11, scope: !10) +!26 = !DILocalVariable(name: "sign", scope: !10, file: !2, line: 4, type: !27) +!27 = !DIBasicType(name: "ByStr64", size: 64) +!28 = !DILocation(line: 4, column: 5, scope: !10) +!29 = !DILocation(line: 4, column: 12, scope: !10) +!30 = !DILocation(line: 5, column: 1, scope: !10) diff --git a/testsuite/expr/builtin_schnorr_verify_false.ll b/testsuite/expr/builtin_schnorr_verify_false.ll index 1285a51f..f68cd02a 100644 --- a/testsuite/expr/builtin_schnorr_verify_false.ll +++ b/testsuite/expr/builtin_schnorr_verify_false.ll @@ -6,7 +6,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-pc-linux-gnu" +target triple = "x86_64-unknown-linux-gnu" %"$TyDescrTy_PrimTyp_7" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/testsuite/expr/builtin_schnorr_verify_true.dbg.ll b/testsuite/expr/builtin_schnorr_verify_true.dbg.ll index ea963adc..ec6c67e7 100644 --- a/testsuite/expr/builtin_schnorr_verify_true.dbg.ll +++ b/testsuite/expr/builtin_schnorr_verify_true.dbg.ll @@ -6,7 +6,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-pc-linux-gnu" +target triple = "x86_64-unknown-linux-gnu" %"$TyDescrTy_PrimTyp_7" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } @@ -87,7 +87,7 @@ target triple = "x86_64-pc-linux-gnu" @_transition_parameters = constant [0 x %"$TransDescr_168"] zeroinitializer @_transition_parameters_length = constant i32 0 -define void @_init_libs() !dbg !4 { +define void @_init_libs() !dbg !3 { entry: %"$gasrem_63" = load i64, i64* @_gasrem, align 8 %"$gascmp_64" = icmp ugt i64 5, %"$gasrem_63" @@ -169,6 +169,7 @@ declare void @_out_of_gas() define internal %TName_Bool* @_scilla_expr_fun(i8* %0) !dbg !10 { entry: %"$expr_6" = alloca %TName_Bool*, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$expr_6", metadata !11, metadata !DIExpression()), !dbg !14 %"$gasrem_93" = load i64, i64* @_gasrem, align 8 %"$gascmp_94" = icmp ugt i64 1, %"$gasrem_93" br i1 %"$gascmp_94", label %"$out_of_gas_95", label %"$have_gas_96" @@ -181,6 +182,7 @@ entry: %"$consume_97" = sub i64 %"$gasrem_93", 1 store i64 %"$consume_97", i64* @_gasrem, align 8 %pk = alloca [33 x i8], align 1 + call void @llvm.dbg.declare(metadata [33 x i8]* %pk, metadata !15, metadata !DIExpression()), !dbg !17 %"$gasrem_98" = load i64, i64* @_gasrem, align 8 %"$gascmp_99" = icmp ugt i64 1, %"$gasrem_98" br i1 %"$gascmp_99", label %"$out_of_gas_100", label %"$have_gas_101" @@ -192,7 +194,7 @@ entry: "$have_gas_101": ; preds = %"$out_of_gas_100", %"$have_gas_96" %"$consume_102" = sub i64 %"$gasrem_98", 1 store i64 %"$consume_102", i64* @_gasrem, align 8 - store [33 x i8] c"\03\AF\AC!|I\B7j\1E\88\D7\8B\13\B4s\E8{\0D:{xx\8B0\D1Kn\B1\DE)\93}\86", [33 x i8]* %pk, align 1, !dbg !11 + store [33 x i8] c"\03\AF\AC!|I\B7j\1E\88\D7\8B\13\B4s\E8{\0D:{xx\8B0\D1Kn\B1\DE)\93}\86", [33 x i8]* %pk, align 1, !dbg !14 %"$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" @@ -205,6 +207,7 @@ entry: %"$consume_107" = sub i64 %"$gasrem_103", 1 store i64 %"$consume_107", i64* @_gasrem, align 8 %msg_bs = alloca [32 x i8], align 1 + call void @llvm.dbg.declare(metadata [32 x i8]* %msg_bs, metadata !18, metadata !DIExpression()), !dbg !20 %"$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" @@ -216,7 +219,7 @@ entry: "$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 [32 x i8] c"\B1\0E-Rv\12\07;&\EE\CD\FDq~j2\0C\F4KJ\FA\C2\B0s-\9F\CB\E2\B7\FA\0C\F6", [32 x i8]* %msg_bs, align 1, !dbg !12 + store [32 x i8] c"\B1\0E-Rv\12\07;&\EE\CD\FDq~j2\0C\F4KJ\FA\C2\B0s-\9F\CB\E2\B7\FA\0C\F6", [32 x i8]* %msg_bs, align 1, !dbg !21 %"$gasrem_113" = load i64, i64* @_gasrem, align 8 %"$gascmp_114" = icmp ugt i64 1, %"$gasrem_113" br i1 %"$gascmp_114", label %"$out_of_gas_115", label %"$have_gas_116" @@ -229,6 +232,7 @@ entry: %"$consume_117" = sub i64 %"$gasrem_113", 1 store i64 %"$consume_117", i64* @_gasrem, align 8 %msg = alloca %Bystr, align 8 + call void @llvm.dbg.declare(metadata %Bystr* %msg, metadata !22, metadata !DIExpression()), !dbg !24 %"$gasrem_118" = load i64, i64* @_gasrem, align 8 %"$gascmp_119" = icmp ugt i64 32, %"$gasrem_118" br i1 %"$gascmp_119", label %"$out_of_gas_120", label %"$have_gas_121" @@ -245,8 +249,8 @@ entry: %"$msg_bs_125" = load [32 x i8], [32 x i8]* %msg_bs, align 1 store [32 x i8] %"$msg_bs_125", [32 x i8]* %"$to_bystr_msg_bs_124", align 1 %"$$to_bystr_msg_bs_124_126" = bitcast [32 x i8]* %"$to_bystr_msg_bs_124" to i8* - %"$to_bystr_call_127" = call %Bystr @_to_bystr(i8* %"$execptr_load_123", i32 32, i8* %"$$to_bystr_msg_bs_124_126"), !dbg !13 - store %Bystr %"$to_bystr_call_127", %Bystr* %msg, align 8, !dbg !13 + %"$to_bystr_call_127" = call %Bystr @_to_bystr(i8* %"$execptr_load_123", i32 32, i8* %"$$to_bystr_msg_bs_124_126"), !dbg !25 + store %Bystr %"$to_bystr_call_127", %Bystr* %msg, align 8, !dbg !25 %"$gasrem_128" = load i64, i64* @_gasrem, align 8 %"$gascmp_129" = icmp ugt i64 1, %"$gasrem_128" br i1 %"$gascmp_129", label %"$out_of_gas_130", label %"$have_gas_131" @@ -259,6 +263,7 @@ entry: %"$consume_132" = sub i64 %"$gasrem_128", 1 store i64 %"$consume_132", i64* @_gasrem, align 8 %sign = alloca [64 x i8], align 1 + call void @llvm.dbg.declare(metadata [64 x i8]* %sign, metadata !26, metadata !DIExpression()), !dbg !28 %"$gasrem_133" = load i64, i64* @_gasrem, align 8 %"$gascmp_134" = icmp ugt i64 1, %"$gasrem_133" br i1 %"$gascmp_134", label %"$out_of_gas_135", label %"$have_gas_136" @@ -270,7 +275,7 @@ entry: "$have_gas_136": ; preds = %"$out_of_gas_135", %"$have_gas_131" %"$consume_137" = sub i64 %"$gasrem_133", 1 store i64 %"$consume_137", i64* @_gasrem, align 8 - store [64 x i8] c"\91\9D\BD\E7\10\BF\A1\A2'\D1\D5\12 \02*oZ\92P\9B r\FC\0A\C5\0E\E9z:U\98zBT'm\E54\B0\18\A0\BB|\99\A7\FB\DBF\840\95i5\B3\EB\B6h\DF\8BO\A3\E2Z\AD", [64 x i8]* %sign, align 1, !dbg !14 + store [64 x i8] c"\91\9D\BD\E7\10\BF\A1\A2'\D1\D5\12 \02*oZ\92P\9B r\FC\0A\C5\0E\E9z:U\98zBT'm\E54\B0\18\A0\BB|\99\A7\FB\DBF\840\95i5\B3\EB\B6h\DF\8BO\A3\E2Z\AD", [64 x i8]* %sign, align 1, !dbg !29 %"$_literal_cost_msg_138" = alloca %Bystr, align 8 %"$msg_139" = load %Bystr, %Bystr* %msg, align 8 store %Bystr %"$msg_139", %Bystr* %"$_literal_cost_msg_138", align 8 @@ -303,12 +308,15 @@ entry: %"$schnorr_verify_sign_159" = alloca [64 x i8], align 1 %"$sign_160" = load [64 x i8], [64 x i8]* %sign, align 1 store [64 x i8] %"$sign_160", [64 x i8]* %"$schnorr_verify_sign_159", align 1 - %"$schnorr_verify_call_161" = call %TName_Bool* @_schnorr_verify(i8* %"$execptr_load_155", [33 x i8]* %"$schnorr_verify_pk_156", %Bystr %"$msg_158", [64 x i8]* %"$schnorr_verify_sign_159"), !dbg !15 - store %TName_Bool* %"$schnorr_verify_call_161", %TName_Bool** %"$expr_6", align 8, !dbg !15 + %"$schnorr_verify_call_161" = call %TName_Bool* @_schnorr_verify(i8* %"$execptr_load_155", [33 x i8]* %"$schnorr_verify_pk_156", %Bystr %"$msg_158", [64 x i8]* %"$schnorr_verify_sign_159"), !dbg !30 + store %TName_Bool* %"$schnorr_verify_call_161", %TName_Bool** %"$expr_6", align 8, !dbg !30 %"$$expr_6_163" = load %TName_Bool*, %TName_Bool** %"$expr_6", align 8 ret %TName_Bool* %"$$expr_6_163" } +; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn +declare void @llvm.dbg.declare(metadata, metadata, metadata) #0 + declare %Bystr @_to_bystr(i8*, i32, i8*) declare i64 @_literal_cost(%_TyDescrTy_Typ*, i8*) @@ -326,22 +334,39 @@ entry: ret void } +attributes #0 = { nocallback nofree nosync nounwind readnone speculatable willreturn } + !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) +!1 = distinct !DICompileUnit(language: DW_LANG_C89, file: !2, producer: "Scilla Compiler", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false) !2 = !DIFile(filename: "builtin_schnorr_verify_true.scilexp", directory: "codegen/expr") -!3 = !{} -!4 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !5, file: !5, type: !6, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!5 = !DIFile(filename: ".", directory: ".") -!6 = !DISubroutineType(types: !7) -!7 = !{!8} -!8 = !DIBasicType(tag: DW_TAG_unspecified_type, name: "void") -!9 = !DILocation(line: 0, scope: !4) -!10 = distinct !DISubprogram(name: "_scilla_expr_fun", linkageName: "_scilla_expr_fun", scope: !2, file: !2, line: 1, type: !6, scopeLine: 1, spFlags: DISPFlagDefinition, unit: !1, retainedNodes: !3) -!11 = !DILocation(line: 1, column: 10, scope: !10) -!12 = !DILocation(line: 2, column: 14, scope: !10) -!13 = !DILocation(line: 3, column: 11, scope: !10) -!14 = !DILocation(line: 4, column: 12, scope: !10) -!15 = !DILocation(line: 5, column: 1, scope: !10) +!3 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !4, file: !4, type: !5, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!4 = !DIFile(filename: ".", directory: ".") +!5 = !DISubroutineType(types: !6) +!6 = !{!7} +!7 = !DIBasicType(tag: DW_TAG_unspecified_type, name: "void") +!8 = !{} +!9 = !DILocation(line: 0, scope: !3) +!10 = distinct !DISubprogram(name: "_scilla_expr_fun", linkageName: "_scilla_expr_fun", scope: !2, file: !2, line: 1, type: !5, scopeLine: 1, spFlags: DISPFlagDefinition, unit: !1, retainedNodes: !8) +!11 = !DILocalVariable(name: "$expr_6", scope: !10, file: !2, line: 1, type: !12) +!12 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "Bool", baseType: !13, size: 8, align: 8, dwarfAddressSpace: 0) +!13 = !DIBasicType(name: "Bool", size: 8) +!14 = !DILocation(line: 1, column: 10, scope: !10) +!15 = !DILocalVariable(name: "pk", scope: !10, file: !2, line: 1, type: !16) +!16 = !DIBasicType(name: "ByStr33", size: 33) +!17 = !DILocation(line: 1, column: 5, scope: !10) +!18 = !DILocalVariable(name: "msg_bs", scope: !10, file: !2, line: 2, type: !19) +!19 = !DIBasicType(name: "ByStr32", size: 32) +!20 = !DILocation(line: 2, column: 5, scope: !10) +!21 = !DILocation(line: 2, column: 14, scope: !10) +!22 = !DILocalVariable(name: "msg", scope: !10, file: !2, line: 3, type: !23) +!23 = !DIBasicType(name: "ByStr", size: 16) +!24 = !DILocation(line: 3, column: 5, scope: !10) +!25 = !DILocation(line: 3, column: 11, scope: !10) +!26 = !DILocalVariable(name: "sign", scope: !10, file: !2, line: 4, type: !27) +!27 = !DIBasicType(name: "ByStr64", size: 64) +!28 = !DILocation(line: 4, column: 5, scope: !10) +!29 = !DILocation(line: 4, column: 12, scope: !10) +!30 = !DILocation(line: 5, column: 1, scope: !10) diff --git a/testsuite/expr/builtin_schnorr_verify_true.ll b/testsuite/expr/builtin_schnorr_verify_true.ll index 8a75b68c..dec4970e 100644 --- a/testsuite/expr/builtin_schnorr_verify_true.ll +++ b/testsuite/expr/builtin_schnorr_verify_true.ll @@ -6,7 +6,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-pc-linux-gnu" +target triple = "x86_64-unknown-linux-gnu" %"$TyDescrTy_PrimTyp_7" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/testsuite/expr/builtin_sha256hash.dbg.ll b/testsuite/expr/builtin_sha256hash.dbg.ll index 9faf3907..e958ef1e 100644 --- a/testsuite/expr/builtin_sha256hash.dbg.ll +++ b/testsuite/expr/builtin_sha256hash.dbg.ll @@ -10,7 +10,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-pc-linux-gnu" +target triple = "x86_64-unknown-linux-gnu" %"$TyDescrTy_PrimTyp_7" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } @@ -94,7 +94,7 @@ target triple = "x86_64-pc-linux-gnu" @_transition_parameters = constant [0 x %"$TransDescr_267"] zeroinitializer @_transition_parameters_length = constant i32 0 -define void @_init_libs() !dbg !4 { +define void @_init_libs() !dbg !3 { entry: %"$gasrem_63" = load i64, i64* @_gasrem, align 8 %"$gascmp_64" = icmp ugt i64 5, %"$gasrem_63" @@ -176,6 +176,7 @@ declare void @_out_of_gas() define internal void @_scilla_expr_fun(i8* %0, [32 x i8]* %1) !dbg !10 { entry: %"$expr_6" = alloca [32 x i8], align 1 + call void @llvm.dbg.declare(metadata [32 x i8]* %"$expr_6", metadata !11, metadata !DIExpression()), !dbg !13 %"$gasrem_93" = load i64, i64* @_gasrem, align 8 %"$gascmp_94" = icmp ugt i64 1, %"$gasrem_93" br i1 %"$gascmp_94", label %"$out_of_gas_95", label %"$have_gas_96" @@ -188,6 +189,7 @@ entry: %"$consume_97" = sub i64 %"$gasrem_93", 1 store i64 %"$consume_97", i64* @_gasrem, align 8 %s = alloca %String, align 8 + call void @llvm.dbg.declare(metadata %String* %s, metadata !14, metadata !DIExpression()), !dbg !16 %"$gasrem_98" = load i64, i64* @_gasrem, align 8 %"$gascmp_99" = icmp ugt i64 1, %"$gasrem_98" br i1 %"$gascmp_99", label %"$out_of_gas_100", label %"$have_gas_101" @@ -199,7 +201,7 @@ entry: "$have_gas_101": ; preds = %"$out_of_gas_100", %"$have_gas_96" %"$consume_102" = sub i64 %"$gasrem_98", 1 store i64 %"$consume_102", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_103", i32 0, i32 0), i32 5 }, %String* %s, align 8, !dbg !11 + store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_103", i32 0, i32 0), i32 5 }, %String* %s, align 8, !dbg !13 %"$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" @@ -212,6 +214,7 @@ entry: %"$consume_108" = sub i64 %"$gasrem_104", 1 store i64 %"$consume_108", i64* @_gasrem, align 8 %h1 = alloca [32 x i8], align 1 + call void @llvm.dbg.declare(metadata [32 x i8]* %h1, metadata !17, metadata !DIExpression()), !dbg !18 %"$_literal_cost_s_109" = alloca %String, align 8 %"$s_110" = load %String, %String* %s, align 8 store %String %"$s_110", %String* %"$_literal_cost_s_109", align 8 @@ -239,9 +242,9 @@ entry: %"$s_126" = load %String, %String* %s, align 8 store %String %"$s_126", %String* %"$sha256hash_s_125", align 8 %"$$sha256hash_s_125_127" = bitcast %String* %"$sha256hash_s_125" to i8* - %"$sha256hash_call_128" = call [32 x i8]* @_sha256hash(i8* %"$execptr_load_124", %_TyDescrTy_Typ* @"$TyDescr_String_25", i8* %"$$sha256hash_s_125_127"), !dbg !12 + %"$sha256hash_call_128" = call [32 x i8]* @_sha256hash(i8* %"$execptr_load_124", %_TyDescrTy_Typ* @"$TyDescr_String_25", i8* %"$$sha256hash_s_125_127"), !dbg !19 %"$sha256hash_130" = load [32 x i8], [32 x i8]* %"$sha256hash_call_128", align 1 - store [32 x i8] %"$sha256hash_130", [32 x i8]* %h1, align 1, !dbg !12 + store [32 x i8] %"$sha256hash_130", [32 x i8]* %h1, align 1, !dbg !19 %"$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" @@ -254,6 +257,7 @@ entry: %"$consume_135" = sub i64 %"$gasrem_131", 1 store i64 %"$consume_135", i64* @_gasrem, align 8 %h2 = alloca [32 x i8], align 1 + call void @llvm.dbg.declare(metadata [32 x i8]* %h2, metadata !20, metadata !DIExpression()), !dbg !21 %"$_literal_cost_h1_136" = alloca [32 x i8], align 1 %"$h1_137" = load [32 x i8], [32 x i8]* %h1, align 1 store [32 x i8] %"$h1_137", [32 x i8]* %"$_literal_cost_h1_136", align 1 @@ -281,9 +285,9 @@ entry: %"$h1_153" = load [32 x i8], [32 x i8]* %h1, align 1 store [32 x i8] %"$h1_153", [32 x i8]* %"$sha256hash_h1_152", align 1 %"$$sha256hash_h1_152_154" = bitcast [32 x i8]* %"$sha256hash_h1_152" to i8* - %"$sha256hash_call_155" = call [32 x i8]* @_sha256hash(i8* %"$execptr_load_151", %_TyDescrTy_Typ* @"$TyDescr_Bystr32_39", i8* %"$$sha256hash_h1_152_154"), !dbg !13 + %"$sha256hash_call_155" = call [32 x i8]* @_sha256hash(i8* %"$execptr_load_151", %_TyDescrTy_Typ* @"$TyDescr_Bystr32_39", i8* %"$$sha256hash_h1_152_154"), !dbg !22 %"$sha256hash_157" = load [32 x i8], [32 x i8]* %"$sha256hash_call_155", align 1 - store [32 x i8] %"$sha256hash_157", [32 x i8]* %h2, align 1, !dbg !13 + store [32 x i8] %"$sha256hash_157", [32 x i8]* %h2, align 1, !dbg !22 %"$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" @@ -296,6 +300,7 @@ entry: %"$consume_162" = sub i64 %"$gasrem_158", 1 store i64 %"$consume_162", i64* @_gasrem, align 8 %sh = alloca %TName_Pair_String_ByStr32*, align 8 + call void @llvm.dbg.declare(metadata %TName_Pair_String_ByStr32** %sh, metadata !23, metadata !DIExpression()), !dbg !26 %"$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" @@ -319,7 +324,7 @@ entry: %"$adtgep_173" = getelementptr inbounds %CName_Pair_String_ByStr32, %CName_Pair_String_ByStr32* %"$adtval_170", i32 0, i32 2 store [32 x i8] %"$h2_169", [32 x i8]* %"$adtgep_173", align 1 %"$adtptr_174" = bitcast %CName_Pair_String_ByStr32* %"$adtval_170" to %TName_Pair_String_ByStr32* - store %TName_Pair_String_ByStr32* %"$adtptr_174", %TName_Pair_String_ByStr32** %sh, align 8, !dbg !14 + store %TName_Pair_String_ByStr32* %"$adtptr_174", %TName_Pair_String_ByStr32** %sh, align 8, !dbg !27 %"$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" @@ -332,6 +337,7 @@ entry: %"$consume_179" = sub i64 %"$gasrem_175", 1 store i64 %"$consume_179", i64* @_gasrem, align 8 %sh2 = alloca [32 x i8], align 1 + call void @llvm.dbg.declare(metadata [32 x i8]* %sh2, metadata !28, metadata !DIExpression()), !dbg !29 %"$sh_180" = load %TName_Pair_String_ByStr32*, %TName_Pair_String_ByStr32** %sh, align 8 %"$$sh_180_181" = bitcast %TName_Pair_String_ByStr32* %"$sh_180" to i8* %"$_literal_cost_call_182" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Pair_String_ByStr32_44", i8* %"$$sh_180_181") @@ -355,9 +361,9 @@ entry: %"$execptr_load_194" = load i8*, i8** @_execptr, align 8 %"$sh_195" = load %TName_Pair_String_ByStr32*, %TName_Pair_String_ByStr32** %sh, align 8 %"$$sh_195_196" = bitcast %TName_Pair_String_ByStr32* %"$sh_195" to i8* - %"$sha256hash_call_197" = call [32 x i8]* @_sha256hash(i8* %"$execptr_load_194", %_TyDescrTy_Typ* @"$TyDescr_ADT_Pair_String_ByStr32_44", i8* %"$$sh_195_196"), !dbg !15 + %"$sha256hash_call_197" = call [32 x i8]* @_sha256hash(i8* %"$execptr_load_194", %_TyDescrTy_Typ* @"$TyDescr_ADT_Pair_String_ByStr32_44", i8* %"$$sh_195_196"), !dbg !30 %"$sha256hash_199" = load [32 x i8], [32 x i8]* %"$sha256hash_call_197", align 1 - store [32 x i8] %"$sha256hash_199", [32 x i8]* %sh2, align 1, !dbg !15 + store [32 x i8] %"$sha256hash_199", [32 x i8]* %sh2, align 1, !dbg !30 %"$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" @@ -370,6 +376,7 @@ entry: %"$consume_204" = sub i64 %"$gasrem_200", 1 store i64 %"$consume_204", i64* @_gasrem, align 8 %bystr1 = alloca %Bystr, align 8 + call void @llvm.dbg.declare(metadata %Bystr* %bystr1, metadata !31, metadata !DIExpression()), !dbg !33 %"$gasrem_205" = load i64, i64* @_gasrem, align 8 %"$gascmp_206" = icmp ugt i64 32, %"$gasrem_205" br i1 %"$gascmp_206", label %"$out_of_gas_207", label %"$have_gas_208" @@ -386,8 +393,8 @@ entry: %"$sh2_212" = load [32 x i8], [32 x i8]* %sh2, align 1 store [32 x i8] %"$sh2_212", [32 x i8]* %"$to_bystr_sh2_211", align 1 %"$$to_bystr_sh2_211_213" = bitcast [32 x i8]* %"$to_bystr_sh2_211" to i8* - %"$to_bystr_call_214" = call %Bystr @_to_bystr(i8* %"$execptr_load_210", i32 32, i8* %"$$to_bystr_sh2_211_213"), !dbg !16 - store %Bystr %"$to_bystr_call_214", %Bystr* %bystr1, align 8, !dbg !16 + %"$to_bystr_call_214" = call %Bystr @_to_bystr(i8* %"$execptr_load_210", i32 32, i8* %"$$to_bystr_sh2_211_213"), !dbg !34 + store %Bystr %"$to_bystr_call_214", %Bystr* %bystr1, align 8, !dbg !34 %"$gasrem_215" = load i64, i64* @_gasrem, align 8 %"$gascmp_216" = icmp ugt i64 1, %"$gasrem_215" br i1 %"$gascmp_216", label %"$out_of_gas_217", label %"$have_gas_218" @@ -400,6 +407,7 @@ entry: %"$consume_219" = sub i64 %"$gasrem_215", 1 store i64 %"$consume_219", i64* @_gasrem, align 8 %i4 = alloca %Int32, align 8 + call void @llvm.dbg.declare(metadata %Int32* %i4, metadata !35, metadata !DIExpression()), !dbg !37 %"$gasrem_220" = load i64, i64* @_gasrem, align 8 %"$gascmp_221" = icmp ugt i64 1, %"$gasrem_220" br i1 %"$gascmp_221", label %"$out_of_gas_222", label %"$have_gas_223" @@ -411,7 +419,7 @@ entry: "$have_gas_223": ; preds = %"$out_of_gas_222", %"$have_gas_218" %"$consume_224" = sub i64 %"$gasrem_220", 1 store i64 %"$consume_224", i64* @_gasrem, align 8 - store %Int32 { i32 4 }, %Int32* %i4, align 4, !dbg !17 + store %Int32 { i32 4 }, %Int32* %i4, align 4, !dbg !38 %"$gasrem_225" = load i64, i64* @_gasrem, align 8 %"$gascmp_226" = icmp ugt i64 1, %"$gasrem_225" br i1 %"$gascmp_226", label %"$out_of_gas_227", label %"$have_gas_228" @@ -424,6 +432,7 @@ entry: %"$consume_229" = sub i64 %"$gasrem_225", 1 store i64 %"$consume_229", i64* @_gasrem, align 8 %p2 = alloca %TName_Pair_ByStr_Int32*, align 8 + call void @llvm.dbg.declare(metadata %TName_Pair_ByStr_Int32** %p2, metadata !39, metadata !DIExpression()), !dbg !42 %"$gasrem_230" = load i64, i64* @_gasrem, align 8 %"$gascmp_231" = icmp ugt i64 1, %"$gasrem_230" br i1 %"$gascmp_231", label %"$out_of_gas_232", label %"$have_gas_233" @@ -447,7 +456,7 @@ entry: %"$adtgep_240" = getelementptr inbounds %CName_Pair_ByStr_Int32, %CName_Pair_ByStr_Int32* %"$adtval_237", i32 0, i32 2 store %Int32 %"$i4_236", %Int32* %"$adtgep_240", align 4 %"$adtptr_241" = bitcast %CName_Pair_ByStr_Int32* %"$adtval_237" to %TName_Pair_ByStr_Int32* - store %TName_Pair_ByStr_Int32* %"$adtptr_241", %TName_Pair_ByStr_Int32** %p2, align 8, !dbg !18 + store %TName_Pair_ByStr_Int32* %"$adtptr_241", %TName_Pair_ByStr_Int32** %p2, align 8, !dbg !43 %"$p2_242" = load %TName_Pair_ByStr_Int32*, %TName_Pair_ByStr_Int32** %p2, align 8 %"$$p2_242_243" = bitcast %TName_Pair_ByStr_Int32* %"$p2_242" to i8* %"$_literal_cost_call_244" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Pair_ByStr_Int32_43", i8* %"$$p2_242_243") @@ -471,14 +480,17 @@ entry: %"$execptr_load_256" = load i8*, i8** @_execptr, align 8 %"$p2_257" = load %TName_Pair_ByStr_Int32*, %TName_Pair_ByStr_Int32** %p2, align 8 %"$$p2_257_258" = bitcast %TName_Pair_ByStr_Int32* %"$p2_257" to i8* - %"$sha256hash_call_259" = call [32 x i8]* @_sha256hash(i8* %"$execptr_load_256", %_TyDescrTy_Typ* @"$TyDescr_ADT_Pair_ByStr_Int32_43", i8* %"$$p2_257_258"), !dbg !19 + %"$sha256hash_call_259" = call [32 x i8]* @_sha256hash(i8* %"$execptr_load_256", %_TyDescrTy_Typ* @"$TyDescr_ADT_Pair_ByStr_Int32_43", i8* %"$$p2_257_258"), !dbg !44 %"$sha256hash_261" = load [32 x i8], [32 x i8]* %"$sha256hash_call_259", align 1 - store [32 x i8] %"$sha256hash_261", [32 x i8]* %"$expr_6", align 1, !dbg !19 + store [32 x i8] %"$sha256hash_261", [32 x i8]* %"$expr_6", align 1, !dbg !44 %"$$expr_6_262" = load [32 x i8], [32 x i8]* %"$expr_6", align 1 store [32 x i8] %"$$expr_6_262", [32 x i8]* %1, align 1 ret void } +; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn +declare void @llvm.dbg.declare(metadata, metadata, metadata) #0 + declare i64 @_literal_cost(%_TyDescrTy_Typ*, i8*) declare [32 x i8]* @_sha256hash(i8*, %_TyDescrTy_Typ*, i8*) @@ -499,26 +511,53 @@ entry: ret void } +attributes #0 = { nocallback nofree nosync nounwind readnone speculatable willreturn } + !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) +!1 = distinct !DICompileUnit(language: DW_LANG_C89, file: !2, producer: "Scilla Compiler", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false) !2 = !DIFile(filename: "builtin_sha256hash.scilexp", directory: "codegen/expr") -!3 = !{} -!4 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !5, file: !5, type: !6, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!5 = !DIFile(filename: ".", directory: ".") -!6 = !DISubroutineType(types: !7) -!7 = !{!8} -!8 = !DIBasicType(tag: DW_TAG_unspecified_type, name: "void") -!9 = !DILocation(line: 0, scope: !4) -!10 = distinct !DISubprogram(name: "_scilla_expr_fun", linkageName: "_scilla_expr_fun", scope: !2, file: !2, line: 1, type: !6, scopeLine: 1, spFlags: DISPFlagDefinition, unit: !1, retainedNodes: !3) -!11 = !DILocation(line: 1, column: 15, scope: !10) -!12 = !DILocation(line: 2, column: 10, scope: !10) -!13 = !DILocation(line: 3, column: 10, scope: !10) -!14 = !DILocation(line: 4, column: 10, scope: !10) -!15 = !DILocation(line: 5, column: 11, scope: !10) -!16 = !DILocation(line: 6, column: 14, scope: !10) -!17 = !DILocation(line: 7, column: 10, scope: !10) -!18 = !DILocation(line: 8, column: 10, scope: !10) -!19 = !DILocation(line: 9, column: 1, scope: !10) +!3 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !4, file: !4, type: !5, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!4 = !DIFile(filename: ".", directory: ".") +!5 = !DISubroutineType(types: !6) +!6 = !{!7} +!7 = !DIBasicType(tag: DW_TAG_unspecified_type, name: "void") +!8 = !{} +!9 = !DILocation(line: 0, scope: !3) +!10 = distinct !DISubprogram(name: "_scilla_expr_fun", linkageName: "_scilla_expr_fun", scope: !2, file: !2, line: 1, type: !5, scopeLine: 1, spFlags: DISPFlagDefinition, unit: !1, retainedNodes: !8) +!11 = !DILocalVariable(name: "$expr_6", scope: !10, file: !2, line: 1, type: !12) +!12 = !DIBasicType(name: "ByStr32", size: 32) +!13 = !DILocation(line: 1, column: 15, scope: !10) +!14 = !DILocalVariable(name: "s", scope: !10, file: !2, line: 1, type: !15) +!15 = !DIBasicType(name: "String", size: 16) +!16 = !DILocation(line: 1, column: 5, scope: !10) +!17 = !DILocalVariable(name: "h1", scope: !10, file: !2, line: 2, type: !12) +!18 = !DILocation(line: 2, column: 5, scope: !10) +!19 = !DILocation(line: 2, column: 10, scope: !10) +!20 = !DILocalVariable(name: "h2", scope: !10, file: !2, line: 3, type: !12) +!21 = !DILocation(line: 3, column: 5, scope: !10) +!22 = !DILocation(line: 3, column: 10, scope: !10) +!23 = !DILocalVariable(name: "sh", scope: !10, file: !2, line: 4, type: !24) +!24 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "Pair (String) (ByStr32)", baseType: !25, size: 8, align: 8, dwarfAddressSpace: 0) +!25 = !DIBasicType(name: "Pair (String) (ByStr32)", size: 8) +!26 = !DILocation(line: 4, column: 5, scope: !10) +!27 = !DILocation(line: 4, column: 10, scope: !10) +!28 = !DILocalVariable(name: "sh2", scope: !10, file: !2, line: 5, type: !12) +!29 = !DILocation(line: 5, column: 5, scope: !10) +!30 = !DILocation(line: 5, column: 11, scope: !10) +!31 = !DILocalVariable(name: "bystr1", scope: !10, file: !2, line: 6, type: !32) +!32 = !DIBasicType(name: "ByStr", size: 16) +!33 = !DILocation(line: 6, column: 5, scope: !10) +!34 = !DILocation(line: 6, column: 14, scope: !10) +!35 = !DILocalVariable(name: "i4", scope: !10, file: !2, line: 7, type: !36) +!36 = !DIBasicType(name: "Int32", size: 4) +!37 = !DILocation(line: 7, column: 5, scope: !10) +!38 = !DILocation(line: 7, column: 10, scope: !10) +!39 = !DILocalVariable(name: "p2", scope: !10, file: !2, line: 8, type: !40) +!40 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "Pair (ByStr) (Int32)", baseType: !41, size: 8, align: 8, dwarfAddressSpace: 0) +!41 = !DIBasicType(name: "Pair (ByStr) (Int32)", size: 8) +!42 = !DILocation(line: 8, column: 5, scope: !10) +!43 = !DILocation(line: 8, column: 10, scope: !10) +!44 = !DILocation(line: 9, column: 1, scope: !10) diff --git a/testsuite/expr/builtin_sha256hash.ll b/testsuite/expr/builtin_sha256hash.ll index 8d40d6a2..3d9e79af 100644 --- a/testsuite/expr/builtin_sha256hash.ll +++ b/testsuite/expr/builtin_sha256hash.ll @@ -10,7 +10,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-pc-linux-gnu" +target triple = "x86_64-unknown-linux-gnu" %"$TyDescrTy_PrimTyp_7" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/testsuite/expr/builtin_strlen.dbg.ll b/testsuite/expr/builtin_strlen.dbg.ll index be3bf36a..59210280 100644 --- a/testsuite/expr/builtin_strlen.dbg.ll +++ b/testsuite/expr/builtin_strlen.dbg.ll @@ -18,7 +18,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-pc-linux-gnu" +target triple = "x86_64-unknown-linux-gnu" %"$TyDescrTy_PrimTyp_7" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } @@ -81,7 +81,7 @@ target triple = "x86_64-pc-linux-gnu" @_transition_parameters = constant [0 x %"$TransDescr_254"] zeroinitializer @_transition_parameters_length = constant i32 0 -define void @_init_libs() !dbg !4 { +define void @_init_libs() !dbg !3 { entry: %"$gasrem_48" = load i64, i64* @_gasrem, align 8 %"$gascmp_49" = icmp ugt i64 5, %"$gasrem_48" @@ -163,6 +163,7 @@ declare void @_out_of_gas() define internal %Uint32 @_scilla_expr_fun(i8* %0) !dbg !10 { entry: %"$expr_6" = alloca %Uint32, align 8 + call void @llvm.dbg.declare(metadata %Uint32* %"$expr_6", metadata !11, metadata !DIExpression()), !dbg !13 %"$gasrem_78" = load i64, i64* @_gasrem, align 8 %"$gascmp_79" = icmp ugt i64 1, %"$gasrem_78" br i1 %"$gascmp_79", label %"$out_of_gas_80", label %"$have_gas_81" @@ -175,6 +176,7 @@ entry: %"$consume_82" = sub i64 %"$gasrem_78", 1 store i64 %"$consume_82", i64* @_gasrem, align 8 %s1 = alloca %String, align 8 + call void @llvm.dbg.declare(metadata %String* %s1, metadata !14, metadata !DIExpression()), !dbg !16 %"$gasrem_83" = load i64, i64* @_gasrem, align 8 %"$gascmp_84" = icmp ugt i64 1, %"$gasrem_83" br i1 %"$gascmp_84", label %"$out_of_gas_85", label %"$have_gas_86" @@ -186,7 +188,7 @@ entry: "$have_gas_86": ; preds = %"$out_of_gas_85", %"$have_gas_81" %"$consume_87" = sub i64 %"$gasrem_83", 1 store i64 %"$consume_87", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_88", i32 0, i32 0), i32 5 }, %String* %s1, align 8, !dbg !11 + store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_88", i32 0, i32 0), i32 5 }, %String* %s1, align 8, !dbg !13 %"$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" @@ -199,6 +201,7 @@ entry: %"$consume_93" = sub i64 %"$gasrem_89", 1 store i64 %"$consume_93", i64* @_gasrem, align 8 %s2 = alloca %String, align 8 + call void @llvm.dbg.declare(metadata %String* %s2, metadata !17, metadata !DIExpression()), !dbg !18 %"$gasrem_94" = load i64, i64* @_gasrem, align 8 %"$gascmp_95" = icmp ugt i64 1, %"$gasrem_94" br i1 %"$gascmp_95", label %"$out_of_gas_96", label %"$have_gas_97" @@ -210,7 +213,7 @@ entry: "$have_gas_97": ; preds = %"$out_of_gas_96", %"$have_gas_92" %"$consume_98" = sub i64 %"$gasrem_94", 1 store i64 %"$consume_98", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([0 x i8], [0 x i8]* @"$stringlit_99", i32 0, i32 0), i32 0 }, %String* %s2, align 8, !dbg !12 + store %String { i8* getelementptr inbounds ([0 x i8], [0 x i8]* @"$stringlit_99", i32 0, i32 0), i32 0 }, %String* %s2, align 8, !dbg !19 %"$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" @@ -223,6 +226,7 @@ entry: %"$consume_104" = sub i64 %"$gasrem_100", 1 store i64 %"$consume_104", i64* @_gasrem, align 8 %b1x = alloca [2 x i8], align 1 + call void @llvm.dbg.declare(metadata [2 x i8]* %b1x, metadata !20, metadata !DIExpression()), !dbg !22 %"$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" @@ -234,7 +238,7 @@ entry: "$have_gas_108": ; preds = %"$out_of_gas_107", %"$have_gas_103" %"$consume_109" = sub i64 %"$gasrem_105", 1 store i64 %"$consume_109", i64* @_gasrem, align 8 - store [2 x i8] c"\FF\EE", [2 x i8]* %b1x, align 1, !dbg !13 + store [2 x i8] c"\FF\EE", [2 x i8]* %b1x, align 1, !dbg !23 %"$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" @@ -247,6 +251,7 @@ entry: %"$consume_114" = sub i64 %"$gasrem_110", 1 store i64 %"$consume_114", i64* @_gasrem, align 8 %b2x = alloca [0 x i8], align 1 + call void @llvm.dbg.declare(metadata [0 x i8]* %b2x, metadata !24, metadata !DIExpression()), !dbg !26 %"$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" @@ -258,7 +263,7 @@ entry: "$have_gas_118": ; preds = %"$out_of_gas_117", %"$have_gas_113" %"$consume_119" = sub i64 %"$gasrem_115", 1 store i64 %"$consume_119", i64* @_gasrem, align 8 - store [0 x i8] zeroinitializer, [0 x i8]* %b2x, align 1, !dbg !14 + store [0 x i8] zeroinitializer, [0 x i8]* %b2x, align 1, !dbg !27 %"$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" @@ -271,6 +276,7 @@ entry: %"$consume_124" = sub i64 %"$gasrem_120", 1 store i64 %"$consume_124", i64* @_gasrem, align 8 %b1 = alloca %Bystr, align 8 + call void @llvm.dbg.declare(metadata %Bystr* %b1, metadata !28, metadata !DIExpression()), !dbg !30 %"$gasrem_125" = load i64, i64* @_gasrem, align 8 %"$gascmp_126" = icmp ugt i64 2, %"$gasrem_125" br i1 %"$gascmp_126", label %"$out_of_gas_127", label %"$have_gas_128" @@ -287,8 +293,8 @@ entry: %"$b1x_132" = load [2 x i8], [2 x i8]* %b1x, align 1 store [2 x i8] %"$b1x_132", [2 x i8]* %"$to_bystr_b1x_131", align 1 %"$$to_bystr_b1x_131_133" = bitcast [2 x i8]* %"$to_bystr_b1x_131" to i8* - %"$to_bystr_call_134" = call %Bystr @_to_bystr(i8* %"$execptr_load_130", i32 2, i8* %"$$to_bystr_b1x_131_133"), !dbg !15 - store %Bystr %"$to_bystr_call_134", %Bystr* %b1, align 8, !dbg !15 + %"$to_bystr_call_134" = call %Bystr @_to_bystr(i8* %"$execptr_load_130", i32 2, i8* %"$$to_bystr_b1x_131_133"), !dbg !31 + store %Bystr %"$to_bystr_call_134", %Bystr* %b1, align 8, !dbg !31 %"$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" @@ -301,6 +307,7 @@ entry: %"$consume_139" = sub i64 %"$gasrem_135", 1 store i64 %"$consume_139", i64* @_gasrem, align 8 %b2 = alloca %Bystr, align 8 + call void @llvm.dbg.declare(metadata %Bystr* %b2, metadata !32, metadata !DIExpression()), !dbg !33 %"$gasrem_140" = load i64, i64* @_gasrem, align 8 %"$gascmp_141" = icmp ugt i64 0, %"$gasrem_140" br i1 %"$gascmp_141", label %"$out_of_gas_142", label %"$have_gas_143" @@ -317,8 +324,8 @@ entry: %"$b2x_147" = load [0 x i8], [0 x i8]* %b2x, align 1 store [0 x i8] %"$b2x_147", [0 x i8]* %"$to_bystr_b2x_146", align 1 %"$$to_bystr_b2x_146_148" = bitcast [0 x i8]* %"$to_bystr_b2x_146" to i8* - %"$to_bystr_call_149" = call %Bystr @_to_bystr(i8* %"$execptr_load_145", i32 0, i8* %"$$to_bystr_b2x_146_148"), !dbg !16 - store %Bystr %"$to_bystr_call_149", %Bystr* %b2, align 8, !dbg !16 + %"$to_bystr_call_149" = call %Bystr @_to_bystr(i8* %"$execptr_load_145", i32 0, i8* %"$$to_bystr_b2x_146_148"), !dbg !34 + store %Bystr %"$to_bystr_call_149", %Bystr* %b2, align 8, !dbg !34 %"$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" @@ -331,6 +338,7 @@ entry: %"$consume_154" = sub i64 %"$gasrem_150", 1 store i64 %"$consume_154", i64* @_gasrem, align 8 %n1 = alloca %Uint32, align 8 + call void @llvm.dbg.declare(metadata %Uint32* %n1, metadata !35, metadata !DIExpression()), !dbg !36 %"$_literal_cost_s1_155" = alloca %String, align 8 %"$s1_156" = load %String, %String* %s1, align 8 store %String %"$s1_156", %String* %"$_literal_cost_s1_155", align 8 @@ -348,8 +356,8 @@ entry: %"$consume_163" = sub i64 %"$gasrem_159", %"$_literal_cost_call_158" store i64 %"$consume_163", i64* @_gasrem, align 8 %"$s1_164" = load %String, %String* %s1, align 8 - %"$strlen_call_165" = call %Uint32 @_strlen_String(%String %"$s1_164"), !dbg !17 - store %Uint32 %"$strlen_call_165", %Uint32* %n1, align 4, !dbg !17 + %"$strlen_call_165" = call %Uint32 @_strlen_String(%String %"$s1_164"), !dbg !37 + store %Uint32 %"$strlen_call_165", %Uint32* %n1, align 4, !dbg !37 %"$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" @@ -362,6 +370,7 @@ entry: %"$consume_170" = sub i64 %"$gasrem_166", 1 store i64 %"$consume_170", i64* @_gasrem, align 8 %n2 = alloca %Uint32, align 8 + call void @llvm.dbg.declare(metadata %Uint32* %n2, metadata !38, metadata !DIExpression()), !dbg !39 %"$_literal_cost_s2_171" = alloca %String, align 8 %"$s2_172" = load %String, %String* %s2, align 8 store %String %"$s2_172", %String* %"$_literal_cost_s2_171", align 8 @@ -379,8 +388,8 @@ entry: %"$consume_179" = sub i64 %"$gasrem_175", %"$_literal_cost_call_174" store i64 %"$consume_179", i64* @_gasrem, align 8 %"$s2_180" = load %String, %String* %s2, align 8 - %"$strlen_call_181" = call %Uint32 @_strlen_String(%String %"$s2_180"), !dbg !18 - store %Uint32 %"$strlen_call_181", %Uint32* %n2, align 4, !dbg !18 + %"$strlen_call_181" = call %Uint32 @_strlen_String(%String %"$s2_180"), !dbg !40 + store %Uint32 %"$strlen_call_181", %Uint32* %n2, align 4, !dbg !40 %"$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" @@ -393,6 +402,7 @@ entry: %"$consume_186" = sub i64 %"$gasrem_182", 1 store i64 %"$consume_186", i64* @_gasrem, align 8 %n3 = alloca %Uint32, align 8 + call void @llvm.dbg.declare(metadata %Uint32* %n3, metadata !41, metadata !DIExpression()), !dbg !42 %"$_literal_cost_b1_187" = alloca %Bystr, align 8 %"$b1_188" = load %Bystr, %Bystr* %b1, align 8 store %Bystr %"$b1_188", %Bystr* %"$_literal_cost_b1_187", align 8 @@ -410,8 +420,8 @@ entry: %"$consume_195" = sub i64 %"$gasrem_191", %"$_literal_cost_call_190" store i64 %"$consume_195", i64* @_gasrem, align 8 %"$b1_196" = load %Bystr, %Bystr* %b1, align 8 - %"$strlen_call_197" = call %Uint32 @_strlen_ByStr(%Bystr %"$b1_196"), !dbg !19 - store %Uint32 %"$strlen_call_197", %Uint32* %n3, align 4, !dbg !19 + %"$strlen_call_197" = call %Uint32 @_strlen_ByStr(%Bystr %"$b1_196"), !dbg !43 + store %Uint32 %"$strlen_call_197", %Uint32* %n3, align 4, !dbg !43 %"$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" @@ -424,6 +434,7 @@ entry: %"$consume_202" = sub i64 %"$gasrem_198", 1 store i64 %"$consume_202", i64* @_gasrem, align 8 %n4 = alloca %Uint32, align 8 + call void @llvm.dbg.declare(metadata %Uint32* %n4, metadata !44, metadata !DIExpression()), !dbg !45 %"$_literal_cost_b2_203" = alloca %Bystr, align 8 %"$b2_204" = load %Bystr, %Bystr* %b2, align 8 store %Bystr %"$b2_204", %Bystr* %"$_literal_cost_b2_203", align 8 @@ -441,8 +452,8 @@ entry: %"$consume_211" = sub i64 %"$gasrem_207", %"$_literal_cost_call_206" store i64 %"$consume_211", i64* @_gasrem, align 8 %"$b2_212" = load %Bystr, %Bystr* %b2, align 8 - %"$strlen_call_213" = call %Uint32 @_strlen_ByStr(%Bystr %"$b2_212"), !dbg !20 - store %Uint32 %"$strlen_call_213", %Uint32* %n4, align 4, !dbg !20 + %"$strlen_call_213" = call %Uint32 @_strlen_ByStr(%Bystr %"$b2_212"), !dbg !46 + store %Uint32 %"$strlen_call_213", %Uint32* %n4, align 4, !dbg !46 %"$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" @@ -455,6 +466,7 @@ entry: %"$consume_218" = sub i64 %"$gasrem_214", 1 store i64 %"$consume_218", i64* @_gasrem, align 8 %n5 = alloca %Uint32, align 8 + call void @llvm.dbg.declare(metadata %Uint32* %n5, metadata !47, metadata !DIExpression()), !dbg !48 %"$gasrem_219" = load i64, i64* @_gasrem, align 8 %"$gascmp_220" = icmp ugt i64 4, %"$gasrem_219" br i1 %"$gascmp_220", label %"$out_of_gas_221", label %"$have_gas_222" @@ -468,8 +480,8 @@ entry: store i64 %"$consume_223", i64* @_gasrem, align 8 %"$n1_224" = load %Uint32, %Uint32* %n1, align 4 %"$n2_225" = load %Uint32, %Uint32* %n2, align 4 - %"$add_call_226" = call %Uint32 @_add_Uint32(%Uint32 %"$n1_224", %Uint32 %"$n2_225"), !dbg !21 - store %Uint32 %"$add_call_226", %Uint32* %n5, align 4, !dbg !21 + %"$add_call_226" = call %Uint32 @_add_Uint32(%Uint32 %"$n1_224", %Uint32 %"$n2_225"), !dbg !49 + store %Uint32 %"$add_call_226", %Uint32* %n5, align 4, !dbg !49 %"$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" @@ -482,6 +494,7 @@ entry: %"$consume_231" = sub i64 %"$gasrem_227", 1 store i64 %"$consume_231", i64* @_gasrem, align 8 %n6 = alloca %Uint32, align 8 + call void @llvm.dbg.declare(metadata %Uint32* %n6, metadata !50, metadata !DIExpression()), !dbg !51 %"$gasrem_232" = load i64, i64* @_gasrem, align 8 %"$gascmp_233" = icmp ugt i64 4, %"$gasrem_232" br i1 %"$gascmp_233", label %"$out_of_gas_234", label %"$have_gas_235" @@ -495,8 +508,8 @@ entry: store i64 %"$consume_236", i64* @_gasrem, align 8 %"$n3_237" = load %Uint32, %Uint32* %n3, align 4 %"$n4_238" = load %Uint32, %Uint32* %n4, align 4 - %"$add_call_239" = call %Uint32 @_add_Uint32(%Uint32 %"$n3_237", %Uint32 %"$n4_238"), !dbg !22 - store %Uint32 %"$add_call_239", %Uint32* %n6, align 4, !dbg !22 + %"$add_call_239" = call %Uint32 @_add_Uint32(%Uint32 %"$n3_237", %Uint32 %"$n4_238"), !dbg !52 + store %Uint32 %"$add_call_239", %Uint32* %n6, align 4, !dbg !52 %"$gasrem_240" = load i64, i64* @_gasrem, align 8 %"$gascmp_241" = icmp ugt i64 4, %"$gasrem_240" br i1 %"$gascmp_241", label %"$out_of_gas_242", label %"$have_gas_243" @@ -510,12 +523,15 @@ entry: store i64 %"$consume_244", i64* @_gasrem, align 8 %"$n5_245" = load %Uint32, %Uint32* %n5, align 4 %"$n6_246" = load %Uint32, %Uint32* %n6, align 4 - %"$add_call_247" = call %Uint32 @_add_Uint32(%Uint32 %"$n5_245", %Uint32 %"$n6_246"), !dbg !23 - store %Uint32 %"$add_call_247", %Uint32* %"$expr_6", align 4, !dbg !23 + %"$add_call_247" = call %Uint32 @_add_Uint32(%Uint32 %"$n5_245", %Uint32 %"$n6_246"), !dbg !53 + store %Uint32 %"$add_call_247", %Uint32* %"$expr_6", align 4, !dbg !53 %"$$expr_6_248" = load %Uint32, %Uint32* %"$expr_6", align 4 ret %Uint32 %"$$expr_6_248" } +; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn +declare void @llvm.dbg.declare(metadata, metadata, metadata) #0 + declare %Bystr @_to_bystr(i8*, i32, i8*) declare i64 @_literal_cost(%_TyDescrTy_Typ*, i8*) @@ -539,30 +555,62 @@ entry: ret void } +attributes #0 = { nocallback nofree nosync nounwind readnone speculatable willreturn } + !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) +!1 = distinct !DICompileUnit(language: DW_LANG_C89, file: !2, producer: "Scilla Compiler", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false) !2 = !DIFile(filename: "builtin_strlen.scilexp", directory: "codegen/expr") -!3 = !{} -!4 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !5, file: !5, type: !6, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!5 = !DIFile(filename: ".", directory: ".") -!6 = !DISubroutineType(types: !7) -!7 = !{!8} -!8 = !DIBasicType(tag: DW_TAG_unspecified_type, name: "void") -!9 = !DILocation(line: 0, scope: !4) -!10 = distinct !DISubprogram(name: "_scilla_expr_fun", linkageName: "_scilla_expr_fun", scope: !2, file: !2, line: 1, type: !6, scopeLine: 1, spFlags: DISPFlagDefinition, unit: !1, retainedNodes: !3) -!11 = !DILocation(line: 1, column: 16, scope: !10) -!12 = !DILocation(line: 2, column: 11, scope: !10) -!13 = !DILocation(line: 4, column: 11, scope: !10) -!14 = !DILocation(line: 5, column: 11, scope: !10) -!15 = !DILocation(line: 7, column: 10, scope: !10) -!16 = !DILocation(line: 8, column: 10, scope: !10) -!17 = !DILocation(line: 10, column: 10, scope: !10) -!18 = !DILocation(line: 11, column: 10, scope: !10) -!19 = !DILocation(line: 12, column: 10, scope: !10) -!20 = !DILocation(line: 13, column: 10, scope: !10) -!21 = !DILocation(line: 15, column: 10, scope: !10) -!22 = !DILocation(line: 16, column: 10, scope: !10) -!23 = !DILocation(line: 17, column: 1, scope: !10) +!3 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !4, file: !4, type: !5, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!4 = !DIFile(filename: ".", directory: ".") +!5 = !DISubroutineType(types: !6) +!6 = !{!7} +!7 = !DIBasicType(tag: DW_TAG_unspecified_type, name: "void") +!8 = !{} +!9 = !DILocation(line: 0, scope: !3) +!10 = distinct !DISubprogram(name: "_scilla_expr_fun", linkageName: "_scilla_expr_fun", scope: !2, file: !2, line: 1, type: !5, scopeLine: 1, spFlags: DISPFlagDefinition, unit: !1, retainedNodes: !8) +!11 = !DILocalVariable(name: "$expr_6", scope: !10, file: !2, line: 1, type: !12) +!12 = !DIBasicType(name: "Uint32", size: 4) +!13 = !DILocation(line: 1, column: 16, scope: !10) +!14 = !DILocalVariable(name: "s1", scope: !10, file: !2, line: 1, type: !15) +!15 = !DIBasicType(name: "String", size: 16) +!16 = !DILocation(line: 1, column: 5, scope: !10) +!17 = !DILocalVariable(name: "s2", scope: !10, file: !2, line: 2, type: !15) +!18 = !DILocation(line: 2, column: 5, scope: !10) +!19 = !DILocation(line: 2, column: 11, scope: !10) +!20 = !DILocalVariable(name: "b1x", scope: !10, file: !2, line: 4, type: !21) +!21 = !DIBasicType(name: "ByStr2", size: 2) +!22 = !DILocation(line: 4, column: 5, scope: !10) +!23 = !DILocation(line: 4, column: 11, scope: !10) +!24 = !DILocalVariable(name: "b2x", scope: !10, file: !2, line: 5, type: !25) +!25 = !DIBasicType(name: "ByStr0") +!26 = !DILocation(line: 5, column: 5, scope: !10) +!27 = !DILocation(line: 5, column: 11, scope: !10) +!28 = !DILocalVariable(name: "b1", scope: !10, file: !2, line: 7, type: !29) +!29 = !DIBasicType(name: "ByStr", size: 16) +!30 = !DILocation(line: 7, column: 5, scope: !10) +!31 = !DILocation(line: 7, column: 10, scope: !10) +!32 = !DILocalVariable(name: "b2", scope: !10, file: !2, line: 8, type: !29) +!33 = !DILocation(line: 8, column: 5, scope: !10) +!34 = !DILocation(line: 8, column: 10, scope: !10) +!35 = !DILocalVariable(name: "n1", scope: !10, file: !2, line: 10, type: !12) +!36 = !DILocation(line: 10, column: 5, scope: !10) +!37 = !DILocation(line: 10, column: 10, scope: !10) +!38 = !DILocalVariable(name: "n2", scope: !10, file: !2, line: 11, type: !12) +!39 = !DILocation(line: 11, column: 5, scope: !10) +!40 = !DILocation(line: 11, column: 10, scope: !10) +!41 = !DILocalVariable(name: "n3", scope: !10, file: !2, line: 12, type: !12) +!42 = !DILocation(line: 12, column: 5, scope: !10) +!43 = !DILocation(line: 12, column: 10, scope: !10) +!44 = !DILocalVariable(name: "n4", scope: !10, file: !2, line: 13, type: !12) +!45 = !DILocation(line: 13, column: 5, scope: !10) +!46 = !DILocation(line: 13, column: 10, scope: !10) +!47 = !DILocalVariable(name: "n5", scope: !10, file: !2, line: 15, type: !12) +!48 = !DILocation(line: 15, column: 5, scope: !10) +!49 = !DILocation(line: 15, column: 10, scope: !10) +!50 = !DILocalVariable(name: "n6", scope: !10, file: !2, line: 16, type: !12) +!51 = !DILocation(line: 16, column: 5, scope: !10) +!52 = !DILocation(line: 16, column: 10, scope: !10) +!53 = !DILocation(line: 17, column: 1, scope: !10) diff --git a/testsuite/expr/builtin_strlen.ll b/testsuite/expr/builtin_strlen.ll index 93755d26..75b9f91e 100644 --- a/testsuite/expr/builtin_strlen.ll +++ b/testsuite/expr/builtin_strlen.ll @@ -18,7 +18,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-pc-linux-gnu" +target triple = "x86_64-unknown-linux-gnu" %"$TyDescrTy_PrimTyp_7" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/testsuite/expr/builtin_strrev.dbg.ll b/testsuite/expr/builtin_strrev.dbg.ll index e038b578..1393c379 100644 --- a/testsuite/expr/builtin_strrev.dbg.ll +++ b/testsuite/expr/builtin_strrev.dbg.ll @@ -23,7 +23,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-pc-linux-gnu" +target triple = "x86_64-unknown-linux-gnu" %"$TyDescrTy_PrimTyp_7" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } @@ -102,7 +102,7 @@ target triple = "x86_64-pc-linux-gnu" @_transition_parameters = constant [0 x %"$TransDescr_342"] zeroinitializer @_transition_parameters_length = constant i32 0 -define void @_init_libs() !dbg !4 { +define void @_init_libs() !dbg !3 { entry: %"$gasrem_60" = load i64, i64* @_gasrem, align 8 %"$gascmp_61" = icmp ugt i64 5, %"$gasrem_60" @@ -184,6 +184,7 @@ declare void @_out_of_gas() define internal %TName_Pair_ByStr_String* @_scilla_expr_fun(i8* %0) !dbg !10 { entry: %"$expr_6" = alloca %TName_Pair_ByStr_String*, align 8 + call void @llvm.dbg.declare(metadata %TName_Pair_ByStr_String** %"$expr_6", metadata !11, metadata !DIExpression()), !dbg !14 %"$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" @@ -196,6 +197,7 @@ entry: %"$consume_94" = sub i64 %"$gasrem_90", 1 store i64 %"$consume_94", i64* @_gasrem, align 8 %a = alloca [2 x i8], align 1 + call void @llvm.dbg.declare(metadata [2 x i8]* %a, metadata !15, metadata !DIExpression()), !dbg !17 %"$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" @@ -207,7 +209,7 @@ entry: "$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 [2 x i8] c"\AA\CC", [2 x i8]* %a, align 1, !dbg !11 + store [2 x i8] c"\AA\CC", [2 x i8]* %a, align 1, !dbg !14 %"$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" @@ -220,6 +222,7 @@ entry: %"$consume_104" = sub i64 %"$gasrem_100", 1 store i64 %"$consume_104", i64* @_gasrem, align 8 %a_ = alloca [2 x i8], align 1 + call void @llvm.dbg.declare(metadata [2 x i8]* %a_, metadata !18, metadata !DIExpression()), !dbg !19 %"$_literal_cost_a_105" = alloca [2 x i8], align 1 %"$a_106" = load [2 x i8], [2 x i8]* %a, align 1 store [2 x i8] %"$a_106", [2 x i8]* %"$_literal_cost_a_105", align 1 @@ -241,10 +244,10 @@ entry: %"$a_116" = load [2 x i8], [2 x i8]* %a, align 1 store [2 x i8] %"$a_116", [2 x i8]* %"$strrev_a_115", align 1 %"$$strrev_a_115_117" = bitcast [2 x i8]* %"$strrev_a_115" to i8* - %"$strrev_call_118" = call i8* @_strrev_ByStrX(i8* %"$execptr_load_114", i32 2, i8* %"$$strrev_a_115_117"), !dbg !12 + %"$strrev_call_118" = call i8* @_strrev_ByStrX(i8* %"$execptr_load_114", i32 2, i8* %"$$strrev_a_115_117"), !dbg !20 %"$strrev_119" = bitcast i8* %"$strrev_call_118" to [2 x i8]* %"$strrev_120" = load [2 x i8], [2 x i8]* %"$strrev_119", align 1 - store [2 x i8] %"$strrev_120", [2 x i8]* %a_, align 1, !dbg !12 + store [2 x i8] %"$strrev_120", [2 x i8]* %a_, align 1, !dbg !20 %"$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" @@ -257,6 +260,7 @@ entry: %"$consume_125" = sub i64 %"$gasrem_121", 1 store i64 %"$consume_125", i64* @_gasrem, align 8 %aa = alloca [5 x i8], align 1 + call void @llvm.dbg.declare(metadata [5 x i8]* %aa, metadata !21, metadata !DIExpression()), !dbg !23 %"$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" @@ -268,7 +272,7 @@ entry: "$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 - store [5 x i8] c"\AA\AA\AA\AA\BB", [5 x i8]* %aa, align 1, !dbg !13 + store [5 x i8] c"\AA\AA\AA\AA\BB", [5 x i8]* %aa, align 1, !dbg !24 %"$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" @@ -281,6 +285,7 @@ entry: %"$consume_135" = sub i64 %"$gasrem_131", 1 store i64 %"$consume_135", i64* @_gasrem, align 8 %aa_ = alloca [5 x i8], align 1 + call void @llvm.dbg.declare(metadata [5 x i8]* %aa_, metadata !25, metadata !DIExpression()), !dbg !26 %"$_literal_cost_aa_136" = alloca [5 x i8], align 1 %"$aa_137" = load [5 x i8], [5 x i8]* %aa, align 1 store [5 x i8] %"$aa_137", [5 x i8]* %"$_literal_cost_aa_136", align 1 @@ -302,10 +307,10 @@ entry: %"$aa_147" = load [5 x i8], [5 x i8]* %aa, align 1 store [5 x i8] %"$aa_147", [5 x i8]* %"$strrev_aa_146", align 1 %"$$strrev_aa_146_148" = bitcast [5 x i8]* %"$strrev_aa_146" to i8* - %"$strrev_call_149" = call i8* @_strrev_ByStrX(i8* %"$execptr_load_145", i32 5, i8* %"$$strrev_aa_146_148"), !dbg !14 + %"$strrev_call_149" = call i8* @_strrev_ByStrX(i8* %"$execptr_load_145", i32 5, i8* %"$$strrev_aa_146_148"), !dbg !27 %"$strrev_150" = bitcast i8* %"$strrev_call_149" to [5 x i8]* %"$strrev_151" = load [5 x i8], [5 x i8]* %"$strrev_150", align 1 - store [5 x i8] %"$strrev_151", [5 x i8]* %aa_, align 1, !dbg !14 + store [5 x i8] %"$strrev_151", [5 x i8]* %aa_, align 1, !dbg !27 %"$gasrem_152" = load i64, i64* @_gasrem, align 8 %"$gascmp_153" = icmp ugt i64 1, %"$gasrem_152" br i1 %"$gascmp_153", label %"$out_of_gas_154", label %"$have_gas_155" @@ -318,6 +323,7 @@ entry: %"$consume_156" = sub i64 %"$gasrem_152", 1 store i64 %"$consume_156", i64* @_gasrem, align 8 %ab = alloca %Bystr, align 8 + call void @llvm.dbg.declare(metadata %Bystr* %ab, metadata !28, metadata !DIExpression()), !dbg !30 %"$gasrem_157" = load i64, i64* @_gasrem, align 8 %"$gascmp_158" = icmp ugt i64 2, %"$gasrem_157" br i1 %"$gascmp_158", label %"$out_of_gas_159", label %"$have_gas_160" @@ -334,8 +340,8 @@ entry: %"$a_164" = load [2 x i8], [2 x i8]* %a, align 1 store [2 x i8] %"$a_164", [2 x i8]* %"$to_bystr_a_163", align 1 %"$$to_bystr_a_163_165" = bitcast [2 x i8]* %"$to_bystr_a_163" to i8* - %"$to_bystr_call_166" = call %Bystr @_to_bystr(i8* %"$execptr_load_162", i32 2, i8* %"$$to_bystr_a_163_165"), !dbg !15 - store %Bystr %"$to_bystr_call_166", %Bystr* %ab, align 8, !dbg !15 + %"$to_bystr_call_166" = call %Bystr @_to_bystr(i8* %"$execptr_load_162", i32 2, i8* %"$$to_bystr_a_163_165"), !dbg !31 + store %Bystr %"$to_bystr_call_166", %Bystr* %ab, align 8, !dbg !31 %"$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" @@ -348,6 +354,7 @@ entry: %"$consume_171" = sub i64 %"$gasrem_167", 1 store i64 %"$consume_171", i64* @_gasrem, align 8 %ab_ = alloca %Bystr, align 8 + call void @llvm.dbg.declare(metadata %Bystr* %ab_, metadata !32, metadata !DIExpression()), !dbg !33 %"$_literal_cost_ab_172" = alloca %Bystr, align 8 %"$ab_173" = load %Bystr, %Bystr* %ab, align 8 store %Bystr %"$ab_173", %Bystr* %"$_literal_cost_ab_172", align 8 @@ -366,8 +373,8 @@ entry: store i64 %"$consume_180", i64* @_gasrem, align 8 %"$execptr_load_181" = load i8*, i8** @_execptr, align 8 %"$ab_182" = load %Bystr, %Bystr* %ab, align 8 - %"$strrev_call_183" = call %Bystr @_strrev_ByStr(i8* %"$execptr_load_181", %Bystr %"$ab_182"), !dbg !16 - store %Bystr %"$strrev_call_183", %Bystr* %ab_, align 8, !dbg !16 + %"$strrev_call_183" = call %Bystr @_strrev_ByStr(i8* %"$execptr_load_181", %Bystr %"$ab_182"), !dbg !34 + store %Bystr %"$strrev_call_183", %Bystr* %ab_, align 8, !dbg !34 %"$gasrem_184" = load i64, i64* @_gasrem, align 8 %"$gascmp_185" = icmp ugt i64 1, %"$gasrem_184" br i1 %"$gascmp_185", label %"$out_of_gas_186", label %"$have_gas_187" @@ -380,6 +387,7 @@ entry: %"$consume_188" = sub i64 %"$gasrem_184", 1 store i64 %"$consume_188", i64* @_gasrem, align 8 %aab = alloca %Bystr, align 8 + call void @llvm.dbg.declare(metadata %Bystr* %aab, metadata !35, metadata !DIExpression()), !dbg !36 %"$gasrem_189" = load i64, i64* @_gasrem, align 8 %"$gascmp_190" = icmp ugt i64 5, %"$gasrem_189" br i1 %"$gascmp_190", label %"$out_of_gas_191", label %"$have_gas_192" @@ -396,8 +404,8 @@ entry: %"$aa_196" = load [5 x i8], [5 x i8]* %aa, align 1 store [5 x i8] %"$aa_196", [5 x i8]* %"$to_bystr_aa_195", align 1 %"$$to_bystr_aa_195_197" = bitcast [5 x i8]* %"$to_bystr_aa_195" to i8* - %"$to_bystr_call_198" = call %Bystr @_to_bystr(i8* %"$execptr_load_194", i32 5, i8* %"$$to_bystr_aa_195_197"), !dbg !17 - store %Bystr %"$to_bystr_call_198", %Bystr* %aab, align 8, !dbg !17 + %"$to_bystr_call_198" = call %Bystr @_to_bystr(i8* %"$execptr_load_194", i32 5, i8* %"$$to_bystr_aa_195_197"), !dbg !37 + store %Bystr %"$to_bystr_call_198", %Bystr* %aab, align 8, !dbg !37 %"$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" @@ -410,6 +418,7 @@ entry: %"$consume_203" = sub i64 %"$gasrem_199", 1 store i64 %"$consume_203", i64* @_gasrem, align 8 %aab_ = alloca %Bystr, align 8 + call void @llvm.dbg.declare(metadata %Bystr* %aab_, metadata !38, metadata !DIExpression()), !dbg !39 %"$_literal_cost_aab_204" = alloca %Bystr, align 8 %"$aab_205" = load %Bystr, %Bystr* %aab, align 8 store %Bystr %"$aab_205", %Bystr* %"$_literal_cost_aab_204", align 8 @@ -428,8 +437,8 @@ entry: store i64 %"$consume_212", i64* @_gasrem, align 8 %"$execptr_load_213" = load i8*, i8** @_execptr, align 8 %"$aab_214" = load %Bystr, %Bystr* %aab, align 8 - %"$strrev_call_215" = call %Bystr @_strrev_ByStr(i8* %"$execptr_load_213", %Bystr %"$aab_214"), !dbg !18 - store %Bystr %"$strrev_call_215", %Bystr* %aab_, align 8, !dbg !18 + %"$strrev_call_215" = call %Bystr @_strrev_ByStr(i8* %"$execptr_load_213", %Bystr %"$aab_214"), !dbg !40 + store %Bystr %"$strrev_call_215", %Bystr* %aab_, align 8, !dbg !40 %"$gasrem_216" = load i64, i64* @_gasrem, align 8 %"$gascmp_217" = icmp ugt i64 1, %"$gasrem_216" br i1 %"$gascmp_217", label %"$out_of_gas_218", label %"$have_gas_219" @@ -442,6 +451,7 @@ entry: %"$consume_220" = sub i64 %"$gasrem_216", 1 store i64 %"$consume_220", i64* @_gasrem, align 8 %s = alloca %String, align 8 + call void @llvm.dbg.declare(metadata %String* %s, metadata !41, metadata !DIExpression()), !dbg !43 %"$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" @@ -453,7 +463,7 @@ entry: "$have_gas_224": ; preds = %"$out_of_gas_223", %"$have_gas_219" %"$consume_225" = sub i64 %"$gasrem_221", 1 store i64 %"$consume_225", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_226", i32 0, i32 0), i32 5 }, %String* %s, align 8, !dbg !19 + store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_226", i32 0, i32 0), i32 5 }, %String* %s, align 8, !dbg !44 %"$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" @@ -466,6 +476,7 @@ entry: %"$consume_231" = sub i64 %"$gasrem_227", 1 store i64 %"$consume_231", i64* @_gasrem, align 8 %s_ = alloca %String, align 8 + call void @llvm.dbg.declare(metadata %String* %s_, metadata !45, metadata !DIExpression()), !dbg !46 %"$_literal_cost_s_232" = alloca %String, align 8 %"$s_233" = load %String, %String* %s, align 8 store %String %"$s_233", %String* %"$_literal_cost_s_232", align 8 @@ -484,8 +495,8 @@ entry: store i64 %"$consume_240", i64* @_gasrem, align 8 %"$execptr_load_241" = load i8*, i8** @_execptr, align 8 %"$s_242" = load %String, %String* %s, align 8 - %"$strrev_call_243" = call %String @_strrev_String(i8* %"$execptr_load_241", %String %"$s_242"), !dbg !20 - store %String %"$strrev_call_243", %String* %s_, align 8, !dbg !20 + %"$strrev_call_243" = call %String @_strrev_String(i8* %"$execptr_load_241", %String %"$s_242"), !dbg !47 + store %String %"$strrev_call_243", %String* %s_, align 8, !dbg !47 %"$gasrem_244" = load i64, i64* @_gasrem, align 8 %"$gascmp_245" = icmp ugt i64 1, %"$gasrem_244" br i1 %"$gascmp_245", label %"$out_of_gas_246", label %"$have_gas_247" @@ -498,6 +509,7 @@ entry: %"$consume_248" = sub i64 %"$gasrem_244", 1 store i64 %"$consume_248", i64* @_gasrem, align 8 %res1 = alloca [7 x i8], align 1 + call void @llvm.dbg.declare(metadata [7 x i8]* %res1, metadata !48, metadata !DIExpression()), !dbg !50 %"$gasrem_249" = load i64, i64* @_gasrem, align 8 %"$gascmp_250" = icmp ugt i64 7, %"$gasrem_249" br i1 %"$gascmp_250", label %"$out_of_gas_251", label %"$have_gas_252" @@ -518,10 +530,10 @@ entry: %"$aa__259" = load [5 x i8], [5 x i8]* %aa_, align 1 store [5 x i8] %"$aa__259", [5 x i8]* %"$concat_aa__258", align 1 %"$$concat_aa__258_260" = bitcast [5 x i8]* %"$concat_aa__258" to i8* - %"$concat_call_261" = call i8* @_concat_ByStrX(i8* %"$execptr_load_254", i32 2, i8* %"$$concat_a__255_257", i32 5, i8* %"$$concat_aa__258_260"), !dbg !21 + %"$concat_call_261" = call i8* @_concat_ByStrX(i8* %"$execptr_load_254", i32 2, i8* %"$$concat_a__255_257", i32 5, i8* %"$$concat_aa__258_260"), !dbg !51 %"$concat_262" = bitcast i8* %"$concat_call_261" to [7 x i8]* %"$concat_263" = load [7 x i8], [7 x i8]* %"$concat_262", align 1 - store [7 x i8] %"$concat_263", [7 x i8]* %res1, align 1, !dbg !21 + store [7 x i8] %"$concat_263", [7 x i8]* %res1, align 1, !dbg !51 %"$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" @@ -534,6 +546,7 @@ entry: %"$consume_268" = sub i64 %"$gasrem_264", 1 store i64 %"$consume_268", i64* @_gasrem, align 8 %res2 = alloca %Bystr, align 8 + call void @llvm.dbg.declare(metadata %Bystr* %res2, metadata !52, metadata !DIExpression()), !dbg !53 %"$_literal_cost_ab__269" = alloca %Bystr, align 8 %"$ab__270" = load %Bystr, %Bystr* %ab_, align 8 store %Bystr %"$ab__270", %Bystr* %"$_literal_cost_ab__269", align 8 @@ -559,8 +572,8 @@ entry: %"$execptr_load_283" = load i8*, i8** @_execptr, align 8 %"$ab__284" = load %Bystr, %Bystr* %ab_, align 8 %"$aab__285" = load %Bystr, %Bystr* %aab_, align 8 - %"$concat_call_286" = call %Bystr @_concat_ByStr(i8* %"$execptr_load_283", %Bystr %"$ab__284", %Bystr %"$aab__285"), !dbg !22 - store %Bystr %"$concat_call_286", %Bystr* %res2, align 8, !dbg !22 + %"$concat_call_286" = call %Bystr @_concat_ByStr(i8* %"$execptr_load_283", %Bystr %"$ab__284", %Bystr %"$aab__285"), !dbg !54 + store %Bystr %"$concat_call_286", %Bystr* %res2, align 8, !dbg !54 %"$gasrem_287" = load i64, i64* @_gasrem, align 8 %"$gascmp_288" = icmp ugt i64 1, %"$gasrem_287" br i1 %"$gascmp_288", label %"$out_of_gas_289", label %"$have_gas_290" @@ -573,6 +586,7 @@ entry: %"$consume_291" = sub i64 %"$gasrem_287", 1 store i64 %"$consume_291", i64* @_gasrem, align 8 %res1_ = alloca %Bystr, align 8 + call void @llvm.dbg.declare(metadata %Bystr* %res1_, metadata !55, metadata !DIExpression()), !dbg !56 %"$gasrem_292" = load i64, i64* @_gasrem, align 8 %"$gascmp_293" = icmp ugt i64 7, %"$gasrem_292" br i1 %"$gascmp_293", label %"$out_of_gas_294", label %"$have_gas_295" @@ -589,8 +603,8 @@ entry: %"$res1_299" = load [7 x i8], [7 x i8]* %res1, align 1 store [7 x i8] %"$res1_299", [7 x i8]* %"$to_bystr_res1_298", align 1 %"$$to_bystr_res1_298_300" = bitcast [7 x i8]* %"$to_bystr_res1_298" to i8* - %"$to_bystr_call_301" = call %Bystr @_to_bystr(i8* %"$execptr_load_297", i32 7, i8* %"$$to_bystr_res1_298_300"), !dbg !23 - store %Bystr %"$to_bystr_call_301", %Bystr* %res1_, align 8, !dbg !23 + %"$to_bystr_call_301" = call %Bystr @_to_bystr(i8* %"$execptr_load_297", i32 7, i8* %"$$to_bystr_res1_298_300"), !dbg !57 + store %Bystr %"$to_bystr_call_301", %Bystr* %res1_, align 8, !dbg !57 %"$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" @@ -603,6 +617,7 @@ entry: %"$consume_306" = sub i64 %"$gasrem_302", 1 store i64 %"$consume_306", i64* @_gasrem, align 8 %res3 = alloca %Bystr, align 8 + call void @llvm.dbg.declare(metadata %Bystr* %res3, metadata !58, metadata !DIExpression()), !dbg !59 %"$_literal_cost_res1__307" = alloca %Bystr, align 8 %"$res1__308" = load %Bystr, %Bystr* %res1_, align 8 store %Bystr %"$res1__308", %Bystr* %"$_literal_cost_res1__307", align 8 @@ -628,8 +643,8 @@ entry: %"$execptr_load_321" = load i8*, i8** @_execptr, align 8 %"$res1__322" = load %Bystr, %Bystr* %res1_, align 8 %"$res2_323" = load %Bystr, %Bystr* %res2, align 8 - %"$concat_call_324" = call %Bystr @_concat_ByStr(i8* %"$execptr_load_321", %Bystr %"$res1__322", %Bystr %"$res2_323"), !dbg !24 - store %Bystr %"$concat_call_324", %Bystr* %res3, align 8, !dbg !24 + %"$concat_call_324" = call %Bystr @_concat_ByStr(i8* %"$execptr_load_321", %Bystr %"$res1__322", %Bystr %"$res2_323"), !dbg !60 + store %Bystr %"$concat_call_324", %Bystr* %res3, align 8, !dbg !60 %"$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" @@ -653,11 +668,14 @@ entry: %"$adtgep_335" = getelementptr inbounds %CName_Pair_ByStr_String, %CName_Pair_ByStr_String* %"$adtval_332", i32 0, i32 2 store %String %"$s__331", %String* %"$adtgep_335", align 8 %"$adtptr_336" = bitcast %CName_Pair_ByStr_String* %"$adtval_332" to %TName_Pair_ByStr_String* - store %TName_Pair_ByStr_String* %"$adtptr_336", %TName_Pair_ByStr_String** %"$expr_6", align 8, !dbg !25 + store %TName_Pair_ByStr_String* %"$adtptr_336", %TName_Pair_ByStr_String** %"$expr_6", align 8, !dbg !61 %"$$expr_6_337" = load %TName_Pair_ByStr_String*, %TName_Pair_ByStr_String** %"$expr_6", align 8 ret %TName_Pair_ByStr_String* %"$$expr_6_337" } +; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn +declare void @llvm.dbg.declare(metadata, metadata, metadata) #0 + declare i64 @_literal_cost(%_TyDescrTy_Typ*, i8*) declare i8* @_strrev_ByStrX(i8*, i32, i8*) @@ -685,32 +703,70 @@ entry: ret void } +attributes #0 = { nocallback nofree nosync nounwind readnone speculatable willreturn } + !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) +!1 = distinct !DICompileUnit(language: DW_LANG_C89, file: !2, producer: "Scilla Compiler", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false) !2 = !DIFile(filename: "builtin_strrev.scilexp", directory: "codegen/expr") -!3 = !{} -!4 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !5, file: !5, type: !6, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!5 = !DIFile(filename: ".", directory: ".") -!6 = !DISubroutineType(types: !7) -!7 = !{!8} -!8 = !DIBasicType(tag: DW_TAG_unspecified_type, name: "void") -!9 = !DILocation(line: 0, scope: !4) -!10 = distinct !DISubprogram(name: "_scilla_expr_fun", linkageName: "_scilla_expr_fun", scope: !2, file: !2, line: 1, type: !6, scopeLine: 1, spFlags: DISPFlagDefinition, unit: !1, retainedNodes: !3) -!11 = !DILocation(line: 1, column: 9, scope: !10) -!12 = !DILocation(line: 2, column: 10, scope: !10) -!13 = !DILocation(line: 4, column: 10, scope: !10) -!14 = !DILocation(line: 5, column: 11, scope: !10) -!15 = !DILocation(line: 7, column: 10, scope: !10) -!16 = !DILocation(line: 8, column: 11, scope: !10) -!17 = !DILocation(line: 10, column: 11, scope: !10) -!18 = !DILocation(line: 11, column: 12, scope: !10) -!19 = !DILocation(line: 13, column: 15, scope: !10) -!20 = !DILocation(line: 14, column: 10, scope: !10) -!21 = !DILocation(line: 16, column: 12, scope: !10) -!22 = !DILocation(line: 17, column: 12, scope: !10) -!23 = !DILocation(line: 19, column: 13, scope: !10) -!24 = !DILocation(line: 20, column: 12, scope: !10) -!25 = !DILocation(line: 22, column: 1, scope: !10) +!3 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !4, file: !4, type: !5, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!4 = !DIFile(filename: ".", directory: ".") +!5 = !DISubroutineType(types: !6) +!6 = !{!7} +!7 = !DIBasicType(tag: DW_TAG_unspecified_type, name: "void") +!8 = !{} +!9 = !DILocation(line: 0, scope: !3) +!10 = distinct !DISubprogram(name: "_scilla_expr_fun", linkageName: "_scilla_expr_fun", scope: !2, file: !2, line: 1, type: !5, scopeLine: 1, spFlags: DISPFlagDefinition, unit: !1, retainedNodes: !8) +!11 = !DILocalVariable(name: "$expr_6", scope: !10, file: !2, line: 1, type: !12) +!12 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "Pair (ByStr) (String)", baseType: !13, size: 8, align: 8, dwarfAddressSpace: 0) +!13 = !DIBasicType(name: "Pair (ByStr) (String)", size: 8) +!14 = !DILocation(line: 1, column: 9, scope: !10) +!15 = !DILocalVariable(name: "a", scope: !10, file: !2, line: 1, type: !16) +!16 = !DIBasicType(name: "ByStr2", size: 2) +!17 = !DILocation(line: 1, column: 5, scope: !10) +!18 = !DILocalVariable(name: "a_", scope: !10, file: !2, line: 2, type: !16) +!19 = !DILocation(line: 2, column: 5, scope: !10) +!20 = !DILocation(line: 2, column: 10, scope: !10) +!21 = !DILocalVariable(name: "aa", scope: !10, file: !2, line: 4, type: !22) +!22 = !DIBasicType(name: "ByStr5", size: 5) +!23 = !DILocation(line: 4, column: 5, scope: !10) +!24 = !DILocation(line: 4, column: 10, scope: !10) +!25 = !DILocalVariable(name: "aa_", scope: !10, file: !2, line: 5, type: !22) +!26 = !DILocation(line: 5, column: 5, scope: !10) +!27 = !DILocation(line: 5, column: 11, scope: !10) +!28 = !DILocalVariable(name: "ab", scope: !10, file: !2, line: 7, type: !29) +!29 = !DIBasicType(name: "ByStr", size: 16) +!30 = !DILocation(line: 7, column: 5, scope: !10) +!31 = !DILocation(line: 7, column: 10, scope: !10) +!32 = !DILocalVariable(name: "ab_", scope: !10, file: !2, line: 8, type: !29) +!33 = !DILocation(line: 8, column: 5, scope: !10) +!34 = !DILocation(line: 8, column: 11, scope: !10) +!35 = !DILocalVariable(name: "aab", scope: !10, file: !2, line: 10, type: !29) +!36 = !DILocation(line: 10, column: 5, scope: !10) +!37 = !DILocation(line: 10, column: 11, scope: !10) +!38 = !DILocalVariable(name: "aab_", scope: !10, file: !2, line: 11, type: !29) +!39 = !DILocation(line: 11, column: 5, scope: !10) +!40 = !DILocation(line: 11, column: 12, scope: !10) +!41 = !DILocalVariable(name: "s", scope: !10, file: !2, line: 13, type: !42) +!42 = !DIBasicType(name: "String", size: 16) +!43 = !DILocation(line: 13, column: 5, scope: !10) +!44 = !DILocation(line: 13, column: 15, scope: !10) +!45 = !DILocalVariable(name: "s_", scope: !10, file: !2, line: 14, type: !42) +!46 = !DILocation(line: 14, column: 5, scope: !10) +!47 = !DILocation(line: 14, column: 10, scope: !10) +!48 = !DILocalVariable(name: "res1", scope: !10, file: !2, line: 16, type: !49) +!49 = !DIBasicType(name: "ByStr7", size: 7) +!50 = !DILocation(line: 16, column: 5, scope: !10) +!51 = !DILocation(line: 16, column: 12, scope: !10) +!52 = !DILocalVariable(name: "res2", scope: !10, file: !2, line: 17, type: !29) +!53 = !DILocation(line: 17, column: 5, scope: !10) +!54 = !DILocation(line: 17, column: 12, scope: !10) +!55 = !DILocalVariable(name: "res1_", scope: !10, file: !2, line: 19, type: !29) +!56 = !DILocation(line: 19, column: 5, scope: !10) +!57 = !DILocation(line: 19, column: 13, scope: !10) +!58 = !DILocalVariable(name: "res3", scope: !10, file: !2, line: 20, type: !29) +!59 = !DILocation(line: 20, column: 5, scope: !10) +!60 = !DILocation(line: 20, column: 12, scope: !10) +!61 = !DILocation(line: 22, column: 1, scope: !10) diff --git a/testsuite/expr/builtin_strrev.ll b/testsuite/expr/builtin_strrev.ll index 19acb2f0..ed0c4168 100644 --- a/testsuite/expr/builtin_strrev.ll +++ b/testsuite/expr/builtin_strrev.ll @@ -23,7 +23,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-pc-linux-gnu" +target triple = "x86_64-unknown-linux-gnu" %"$TyDescrTy_PrimTyp_7" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/testsuite/expr/builtin_sub.dbg.ll b/testsuite/expr/builtin_sub.dbg.ll index f9cbef08..bf670d5f 100644 --- a/testsuite/expr/builtin_sub.dbg.ll +++ b/testsuite/expr/builtin_sub.dbg.ll @@ -122,7 +122,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-pc-linux-gnu" +target triple = "x86_64-unknown-linux-gnu" %"$TyDescrTy_PrimTyp_110" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } @@ -134,9 +134,9 @@ target triple = "x86_64-pc-linux-gnu" %TName_Bool = type { i8, %CName_True*, %CName_False* } %CName_True = type <{ i8 }> %CName_False = type <{ i8 }> -%"$ParamDescr_1359" = type { %ParamDescrString, %_TyDescrTy_Typ* } +%"$ParamDescr_1361" = type { %ParamDescrString, %_TyDescrTy_Typ* } %ParamDescrString = type { i8*, i32 } -%"$TransDescr_1360" = type { %ParamDescrString, i32, %"$ParamDescr_1359"* } +%"$TransDescr_1362" = type { %ParamDescrString, i32, %"$ParamDescr_1361"* } %"$$fundef_107_env_160" = type { %TName_Bool* } %"$$fundef_105_env_161" = type {} %Uint32 = type { i32 } @@ -200,85 +200,92 @@ target triple = "x86_64-pc-linux-gnu" @"$_gas_charge_accPairUtils_4" = global %Int32 zeroinitializer @_tydescr_table = constant [16 x %_TyDescrTy_Typ*] [%_TyDescrTy_Typ* @"$TyDescr_Event_134", %_TyDescrTy_Typ* @"$TyDescr_Int64_116", %_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_144", %_TyDescrTy_Typ* @"$TyDescr_Uint256_126", %_TyDescrTy_Typ* @"$TyDescr_Uint32_114", %_TyDescrTy_Typ* @"$TyDescr_Uint64_118", %_TyDescrTy_Typ* @"$TyDescr_Bnum_130", %_TyDescrTy_Typ* @"$TyDescr_Uint128_122", %_TyDescrTy_Typ* @"$TyDescr_Exception_136", %_TyDescrTy_Typ* @"$TyDescr_String_128", %_TyDescrTy_Typ* @"$TyDescr_Int256_124", %_TyDescrTy_Typ* @"$TyDescr_Int128_120", %_TyDescrTy_Typ* @"$TyDescr_Bystr_140", %_TyDescrTy_Typ* @"$TyDescr_ReplicateContr_138", %_TyDescrTy_Typ* @"$TyDescr_Message_132", %_TyDescrTy_Typ* @"$TyDescr_Int32_112"] @_tydescr_table_length = constant i32 16 -@_contract_parameters = constant [0 x %"$ParamDescr_1359"] zeroinitializer +@_contract_parameters = constant [0 x %"$ParamDescr_1361"] zeroinitializer @_contract_parameters_length = constant i32 0 -@_transition_parameters = constant [0 x %"$TransDescr_1360"] zeroinitializer +@_transition_parameters = constant [0 x %"$TransDescr_1362"] zeroinitializer @_transition_parameters_length = constant i32 0 -define internal %TName_Bool* @"$fundef_107"(%"$$fundef_107_env_160"* %0, %TName_Bool* %1) !dbg !4 { +define internal %TName_Bool* @"$fundef_107"(%"$$fundef_107_env_160"* %0, %TName_Bool* %1) !dbg !3 { entry: - %"$$fundef_107_env_b_173" = getelementptr inbounds %"$$fundef_107_env_160", %"$$fundef_107_env_160"* %0, i32 0, i32 0 - %"$b_envload_174" = load %TName_Bool*, %TName_Bool** %"$$fundef_107_env_b_173", align 8 + %"$c_204" = alloca %TName_Bool*, align 8 + store %TName_Bool* %1, %TName_Bool** %"$c_204", align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$c_204", metadata !9, metadata !DIExpression()), !dbg !12 + %"$$fundef_107_env_b_174" = getelementptr inbounds %"$$fundef_107_env_160", %"$$fundef_107_env_160"* %0, i32 0, i32 0 + %"$b_envload_175" = load %TName_Bool*, %TName_Bool** %"$$fundef_107_env_b_174", align 8 %b = alloca %TName_Bool*, align 8 - store %TName_Bool* %"$b_envload_174", %TName_Bool** %b, align 8 + store %TName_Bool* %"$b_envload_175", %TName_Bool** %b, align 8 %"$retval_108" = alloca %TName_Bool*, align 8 - %"$gasrem_175" = load i64, i64* @_gasrem, align 8 - %"$gascmp_176" = icmp ugt i64 2, %"$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", 2 - store i64 %"$consume_179", i64* @_gasrem, align 8 - %"$b_181" = load %TName_Bool*, %TName_Bool** %b, align 8 - %"$b_tag_182" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$b_181", i32 0, i32 0 - %"$b_tag_183" = load i8, i8* %"$b_tag_182", align 1 - switch i8 %"$b_tag_183", label %"$empty_default_184" [ - i8 1, label %"$False_185" - i8 0, label %"$True_195" - ], !dbg !9 - -"$False_185": ; preds = %"$have_gas_178" - %"$b_186" = bitcast %TName_Bool* %"$b_181" to %CName_False* - %"$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 = %"$False_185" - call void @_out_of_gas() - br label %"$have_gas_190" - -"$have_gas_190": ; preds = %"$out_of_gas_189", %"$False_185" - %"$consume_191" = sub i64 %"$gasrem_187", 1 - store i64 %"$consume_191", i64* @_gasrem, align 8 - %"$adtval_192_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_192_salloc" = call i8* @_salloc(i8* %"$adtval_192_load", i64 1) - %"$adtval_192" = bitcast i8* %"$adtval_192_salloc" to %CName_False* - %"$adtgep_193" = getelementptr inbounds %CName_False, %CName_False* %"$adtval_192", i32 0, i32 0 - store i8 1, i8* %"$adtgep_193", align 1 - %"$adtptr_194" = bitcast %CName_False* %"$adtval_192" to %TName_Bool* - store %TName_Bool* %"$adtptr_194", %TName_Bool** %"$retval_108", align 8, !dbg !10 - br label %"$matchsucc_180" - -"$True_195": ; preds = %"$have_gas_178" - %"$b_196" = bitcast %TName_Bool* %"$b_181" to %CName_True* - %"$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 = %"$True_195" - call void @_out_of_gas() - br label %"$have_gas_200" - -"$have_gas_200": ; preds = %"$out_of_gas_199", %"$True_195" - %"$consume_201" = sub i64 %"$gasrem_197", 1 - store i64 %"$consume_201", i64* @_gasrem, align 8 - store %TName_Bool* %1, %TName_Bool** %"$retval_108", align 8, !dbg !13 - br label %"$matchsucc_180" - -"$empty_default_184": ; preds = %"$have_gas_178" - br label %"$matchsucc_180" - -"$matchsucc_180": ; preds = %"$have_gas_200", %"$have_gas_190", %"$empty_default_184" - %"$$retval_108_202" = load %TName_Bool*, %TName_Bool** %"$retval_108", align 8 - ret %TName_Bool* %"$$retval_108_202" + call void @llvm.dbg.declare(metadata %TName_Bool** %"$retval_108", metadata !13, metadata !DIExpression()), !dbg !14 + %"$gasrem_176" = load i64, i64* @_gasrem, align 8 + %"$gascmp_177" = icmp ugt i64 2, %"$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", 2 + store i64 %"$consume_180", i64* @_gasrem, align 8 + %"$b_182" = load %TName_Bool*, %TName_Bool** %b, align 8 + %"$b_tag_183" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$b_182", i32 0, i32 0 + %"$b_tag_184" = load i8, i8* %"$b_tag_183", align 1 + switch i8 %"$b_tag_184", label %"$empty_default_185" [ + i8 1, label %"$False_186" + i8 0, label %"$True_196" + ], !dbg !14 + +"$False_186": ; preds = %"$have_gas_179" + %"$b_187" = bitcast %TName_Bool* %"$b_182" to %CName_False* + %"$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 = %"$False_186" + call void @_out_of_gas() + br label %"$have_gas_191" + +"$have_gas_191": ; preds = %"$out_of_gas_190", %"$False_186" + %"$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** %"$retval_108", align 8, !dbg !15 + br label %"$matchsucc_181" + +"$True_196": ; preds = %"$have_gas_179" + %"$b_197" = bitcast %TName_Bool* %"$b_182" to %CName_True* + %"$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 = %"$True_196" + call void @_out_of_gas() + br label %"$have_gas_201" + +"$have_gas_201": ; preds = %"$out_of_gas_200", %"$True_196" + %"$consume_202" = sub i64 %"$gasrem_198", 1 + store i64 %"$consume_202", i64* @_gasrem, align 8 + store %TName_Bool* %1, %TName_Bool** %"$retval_108", align 8, !dbg !18 + br label %"$matchsucc_181" + +"$empty_default_185": ; preds = %"$have_gas_179" + br label %"$matchsucc_181" + +"$matchsucc_181": ; preds = %"$have_gas_201", %"$have_gas_191", %"$empty_default_185" + %"$$retval_108_203" = load %TName_Bool*, %TName_Bool** %"$retval_108", align 8 + ret %TName_Bool* %"$$retval_108_203" } -define internal { %TName_Bool* (i8*, %TName_Bool*)*, i8* } @"$fundef_105"(%"$$fundef_105_env_161"* %0, %TName_Bool* %1) !dbg !15 { +define internal { %TName_Bool* (i8*, %TName_Bool*)*, i8* } @"$fundef_105"(%"$$fundef_105_env_161"* %0, %TName_Bool* %1) !dbg !20 { entry: + %"$b_173" = alloca %TName_Bool*, align 8 + store %TName_Bool* %1, %TName_Bool** %"$b_173", align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$b_173", metadata !21, metadata !DIExpression()), !dbg !22 %"$retval_106" = alloca { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, align 8 %"$gasrem_162" = load i64, i64* @_gasrem, align 8 %"$gascmp_163" = icmp ugt i64 1, %"$gasrem_162" @@ -298,7 +305,7 @@ entry: %"$$fundef_107_cloval_170" = insertvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } { %TName_Bool* (i8*, %TName_Bool*)* bitcast (%TName_Bool* (%"$$fundef_107_env_160"*, %TName_Bool*)* @"$fundef_107" to %TName_Bool* (i8*, %TName_Bool*)*), i8* undef }, i8* %"$$fundef_107_env_voidp_169", 1 %"$$fundef_107_env_b_171" = getelementptr inbounds %"$$fundef_107_env_160", %"$$fundef_107_env_160"* %"$$fundef_107_envp_167", i32 0, i32 0 store %TName_Bool* %1, %TName_Bool** %"$$fundef_107_env_b_171", align 8 - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$fundef_107_cloval_170", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$retval_106", align 8, !dbg !16 + store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$fundef_107_cloval_170", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$retval_106", align 8, !dbg !23 %"$$retval_106_172" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$retval_106", align 8 ret { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$retval_106_172" } @@ -307,2383 +314,2479 @@ declare void @_out_of_gas() declare i8* @_salloc(i8*, i64) -define void @_init_libs() !dbg !17 { +; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn +declare void @llvm.dbg.declare(metadata, metadata, metadata) #0 + +define void @_init_libs() !dbg !24 { entry: - %"$gasrem_203" = load i64, i64* @_gasrem, align 8 - %"$gascmp_204" = icmp ugt i64 5, %"$gasrem_203" - br i1 %"$gascmp_204", label %"$out_of_gas_205", label %"$have_gas_206" + %"$gasrem_205" = load i64, i64* @_gasrem, align 8 + %"$gascmp_206" = icmp ugt i64 5, %"$gasrem_205" + br i1 %"$gascmp_206", label %"$out_of_gas_207", label %"$have_gas_208" -"$out_of_gas_205": ; preds = %entry +"$out_of_gas_207": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_206" + br label %"$have_gas_208" -"$have_gas_206": ; preds = %"$out_of_gas_205", %entry - %"$consume_207" = sub i64 %"$gasrem_203", 5 - store i64 %"$consume_207", i64* @_gasrem, align 8 - store %Int32 { i32 5 }, %Int32* @"$_gas_charge_accrec_lib_5", align 4, !dbg !19 - %"$gasrem_208" = load i64, i64* @_gasrem, align 8 - %"$gascmp_209" = icmp ugt i64 7, %"$gasrem_208" - br i1 %"$gascmp_209", label %"$out_of_gas_210", label %"$have_gas_211" +"$have_gas_208": ; preds = %"$out_of_gas_207", %entry + %"$consume_209" = sub i64 %"$gasrem_205", 5 + store i64 %"$consume_209", i64* @_gasrem, align 8 + store %Int32 { i32 5 }, %Int32* @"$_gas_charge_accrec_lib_5", align 4, !dbg !26 + %"$gasrem_210" = load i64, i64* @_gasrem, align 8 + %"$gascmp_211" = icmp ugt i64 7, %"$gasrem_210" + br i1 %"$gascmp_211", label %"$out_of_gas_212", label %"$have_gas_213" -"$out_of_gas_210": ; preds = %"$have_gas_206" +"$out_of_gas_212": ; preds = %"$have_gas_208" call void @_out_of_gas() - br label %"$have_gas_211" + br label %"$have_gas_213" -"$have_gas_211": ; preds = %"$out_of_gas_210", %"$have_gas_206" - %"$consume_212" = sub i64 %"$gasrem_208", 7 - store i64 %"$consume_212", i64* @_gasrem, align 8 - store %Int32 { i32 7 }, %Int32* @"$_gas_charge_accBoolUtils_0", align 4, !dbg !19 - %"$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" +"$have_gas_213": ; preds = %"$out_of_gas_212", %"$have_gas_208" + %"$consume_214" = sub i64 %"$gasrem_210", 7 + store i64 %"$consume_214", i64* @_gasrem, align 8 + store %Int32 { i32 7 }, %Int32* @"$_gas_charge_accBoolUtils_0", align 4, !dbg !26 + %"$gasrem_215" = load i64, i64* @_gasrem, align 8 + %"$gascmp_216" = icmp ugt i64 1, %"$gasrem_215" + br i1 %"$gascmp_216", label %"$out_of_gas_217", label %"$have_gas_218" -"$out_of_gas_215": ; preds = %"$have_gas_211" +"$out_of_gas_217": ; preds = %"$have_gas_213" call void @_out_of_gas() - br label %"$have_gas_216" + br label %"$have_gas_218" -"$have_gas_216": ; preds = %"$out_of_gas_215", %"$have_gas_211" - %"$consume_217" = sub i64 %"$gasrem_213", 1 - store i64 %"$consume_217", 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_105_env_161"*, %TName_Bool*)* @"$fundef_105" 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 !20 - %"$gasrem_221" = load i64, i64* @_gasrem, align 8 - %"$gascmp_222" = icmp ugt i64 196, %"$gasrem_221" - br i1 %"$gascmp_222", label %"$out_of_gas_223", label %"$have_gas_224" +"$have_gas_218": ; preds = %"$out_of_gas_217", %"$have_gas_213" + %"$consume_219" = sub i64 %"$gasrem_215", 1 + store i64 %"$consume_219", 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_105_env_161"*, %TName_Bool*)* @"$fundef_105" 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 !27 + %"$gasrem_223" = load i64, i64* @_gasrem, align 8 + %"$gascmp_224" = icmp ugt i64 196, %"$gasrem_223" + br i1 %"$gascmp_224", label %"$out_of_gas_225", label %"$have_gas_226" -"$out_of_gas_223": ; preds = %"$have_gas_216" +"$out_of_gas_225": ; preds = %"$have_gas_218" call void @_out_of_gas() - br label %"$have_gas_224" + br label %"$have_gas_226" -"$have_gas_224": ; preds = %"$out_of_gas_223", %"$have_gas_216" - %"$consume_225" = sub i64 %"$gasrem_221", 196 - store i64 %"$consume_225", i64* @_gasrem, align 8 - store %Int32 { i32 196 }, %Int32* @"$_gas_charge_accIntUtils_1", align 4, !dbg !19 - %"$gasrem_226" = load i64, i64* @_gasrem, align 8 - %"$gascmp_227" = icmp ugt i64 20, %"$gasrem_226" - br i1 %"$gascmp_227", label %"$out_of_gas_228", label %"$have_gas_229" +"$have_gas_226": ; preds = %"$out_of_gas_225", %"$have_gas_218" + %"$consume_227" = sub i64 %"$gasrem_223", 196 + store i64 %"$consume_227", i64* @_gasrem, align 8 + store %Int32 { i32 196 }, %Int32* @"$_gas_charge_accIntUtils_1", align 4, !dbg !26 + %"$gasrem_228" = load i64, i64* @_gasrem, align 8 + %"$gascmp_229" = icmp ugt i64 20, %"$gasrem_228" + br i1 %"$gascmp_229", label %"$out_of_gas_230", label %"$have_gas_231" -"$out_of_gas_228": ; preds = %"$have_gas_224" +"$out_of_gas_230": ; preds = %"$have_gas_226" call void @_out_of_gas() - br label %"$have_gas_229" + br label %"$have_gas_231" -"$have_gas_229": ; preds = %"$out_of_gas_228", %"$have_gas_224" - %"$consume_230" = sub i64 %"$gasrem_226", 20 - store i64 %"$consume_230", i64* @_gasrem, align 8 - store %Int32 { i32 20 }, %Int32* @"$_gas_charge_accListUtils_2", align 4, !dbg !19 - %"$gasrem_231" = load i64, i64* @_gasrem, align 8 - %"$gascmp_232" = icmp ugt i64 12, %"$gasrem_231" - br i1 %"$gascmp_232", label %"$out_of_gas_233", label %"$have_gas_234" +"$have_gas_231": ; preds = %"$out_of_gas_230", %"$have_gas_226" + %"$consume_232" = sub i64 %"$gasrem_228", 20 + store i64 %"$consume_232", i64* @_gasrem, align 8 + store %Int32 { i32 20 }, %Int32* @"$_gas_charge_accListUtils_2", align 4, !dbg !26 + %"$gasrem_233" = load i64, i64* @_gasrem, align 8 + %"$gascmp_234" = icmp ugt i64 12, %"$gasrem_233" + br i1 %"$gascmp_234", label %"$out_of_gas_235", label %"$have_gas_236" -"$out_of_gas_233": ; preds = %"$have_gas_229" +"$out_of_gas_235": ; preds = %"$have_gas_231" call void @_out_of_gas() - br label %"$have_gas_234" + br label %"$have_gas_236" -"$have_gas_234": ; preds = %"$out_of_gas_233", %"$have_gas_229" - %"$consume_235" = sub i64 %"$gasrem_231", 12 - store i64 %"$consume_235", i64* @_gasrem, align 8 - store %Int32 { i32 12 }, %Int32* @"$_gas_charge_accNatUtils_3", align 4, !dbg !19 - %"$gasrem_236" = load i64, i64* @_gasrem, align 8 - %"$gascmp_237" = icmp ugt i64 2, %"$gasrem_236" - br i1 %"$gascmp_237", label %"$out_of_gas_238", label %"$have_gas_239" +"$have_gas_236": ; preds = %"$out_of_gas_235", %"$have_gas_231" + %"$consume_237" = sub i64 %"$gasrem_233", 12 + store i64 %"$consume_237", i64* @_gasrem, align 8 + store %Int32 { i32 12 }, %Int32* @"$_gas_charge_accNatUtils_3", align 4, !dbg !26 + %"$gasrem_238" = load i64, i64* @_gasrem, align 8 + %"$gascmp_239" = icmp ugt i64 2, %"$gasrem_238" + br i1 %"$gascmp_239", label %"$out_of_gas_240", label %"$have_gas_241" -"$out_of_gas_238": ; preds = %"$have_gas_234" +"$out_of_gas_240": ; preds = %"$have_gas_236" call void @_out_of_gas() - br label %"$have_gas_239" + br label %"$have_gas_241" -"$have_gas_239": ; preds = %"$out_of_gas_238", %"$have_gas_234" - %"$consume_240" = sub i64 %"$gasrem_236", 2 - store i64 %"$consume_240", i64* @_gasrem, align 8 - store %Int32 { i32 2 }, %Int32* @"$_gas_charge_accPairUtils_4", align 4, !dbg !19 +"$have_gas_241": ; preds = %"$out_of_gas_240", %"$have_gas_236" + %"$consume_242" = sub i64 %"$gasrem_238", 2 + store i64 %"$consume_242", i64* @_gasrem, align 8 + store %Int32 { i32 2 }, %Int32* @"$_gas_charge_accPairUtils_4", align 4, !dbg !26 ret void } -define internal %TName_Bool* @_scilla_expr_fun(i8* %0) !dbg !21 { +define internal %TName_Bool* @_scilla_expr_fun(i8* %0) !dbg !28 { entry: %"$expr_109" = alloca %TName_Bool*, 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" + call void @llvm.dbg.declare(metadata %TName_Bool** %"$expr_109", metadata !29, metadata !DIExpression()), !dbg !30 + %"$gasrem_243" = load i64, i64* @_gasrem, align 8 + %"$gascmp_244" = icmp ugt i64 1, %"$gasrem_243" + br i1 %"$gascmp_244", label %"$out_of_gas_245", label %"$have_gas_246" -"$out_of_gas_243": ; preds = %entry +"$out_of_gas_245": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_244" + br label %"$have_gas_246" -"$have_gas_244": ; preds = %"$out_of_gas_243", %entry - %"$consume_245" = sub i64 %"$gasrem_241", 1 - store i64 %"$consume_245", i64* @_gasrem, 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" +"$have_gas_246": ; preds = %"$out_of_gas_245", %entry + %"$consume_247" = sub i64 %"$gasrem_243", 1 + store i64 %"$consume_247", i64* @_gasrem, align 8 + %"$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_248": ; preds = %"$have_gas_244" +"$out_of_gas_250": ; preds = %"$have_gas_246" call void @_out_of_gas() - br label %"$have_gas_249" + br label %"$have_gas_251" -"$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 - %"$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" +"$have_gas_251": ; preds = %"$out_of_gas_250", %"$have_gas_246" + %"$consume_252" = sub i64 %"$gasrem_248", 1 + store i64 %"$consume_252", i64* @_gasrem, align 8 + %"$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_253": ; preds = %"$have_gas_249" +"$out_of_gas_255": ; preds = %"$have_gas_251" call void @_out_of_gas() - br label %"$have_gas_254" + br label %"$have_gas_256" -"$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 +"$have_gas_256": ; preds = %"$out_of_gas_255", %"$have_gas_251" + %"$consume_257" = sub i64 %"$gasrem_253", 1 + store i64 %"$consume_257", i64* @_gasrem, align 8 %test = alloca %TName_Bool*, 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 - %"$adtval_261_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_261_salloc" = call i8* @_salloc(i8* %"$adtval_261_load", i64 1) - %"$adtval_261" = bitcast i8* %"$adtval_261_salloc" to %CName_True* - %"$adtgep_262" = getelementptr inbounds %CName_True, %CName_True* %"$adtval_261", i32 0, i32 0 - store i8 0, i8* %"$adtgep_262", align 1 - %"$adtptr_263" = bitcast %CName_True* %"$adtval_261" to %TName_Bool* - store %TName_Bool* %"$adtptr_263", %TName_Bool** %test, align 8, !dbg !22 - %"$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_259" - call void @_out_of_gas() - br label %"$have_gas_267" - -"$have_gas_267": ; preds = %"$out_of_gas_266", %"$have_gas_259" - %"$consume_268" = sub i64 %"$gasrem_264", 1 - store i64 %"$consume_268", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %test, metadata !31, metadata !DIExpression()), !dbg !32 + %"$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 + %"$adtval_263_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_263_salloc" = call i8* @_salloc(i8* %"$adtval_263_load", i64 1) + %"$adtval_263" = bitcast i8* %"$adtval_263_salloc" to %CName_True* + %"$adtgep_264" = getelementptr inbounds %CName_True, %CName_True* %"$adtval_263", i32 0, i32 0 + store i8 0, i8* %"$adtgep_264", align 1 + %"$adtptr_265" = bitcast %CName_True* %"$adtval_263" to %TName_Bool* + store %TName_Bool* %"$adtptr_265", %TName_Bool** %test, align 8, !dbg !33 + %"$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_261" + call void @_out_of_gas() + br label %"$have_gas_269" + +"$have_gas_269": ; preds = %"$out_of_gas_268", %"$have_gas_261" + %"$consume_270" = sub i64 %"$gasrem_266", 1 + store i64 %"$consume_270", i64* @_gasrem, align 8 %arg1 = alloca %Uint32, align 8 - %"$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" + call void @llvm.dbg.declare(metadata %Uint32* %arg1, metadata !34, metadata !DIExpression()), !dbg !36 + %"$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_271": ; preds = %"$have_gas_267" +"$out_of_gas_273": ; preds = %"$have_gas_269" call void @_out_of_gas() - br label %"$have_gas_272" + br label %"$have_gas_274" -"$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 - store %Uint32 { i32 1844 }, %Uint32* %arg1, align 4, !dbg !23 - %"$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" +"$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 + store %Uint32 { i32 1844 }, %Uint32* %arg1, align 4, !dbg !37 + %"$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_276": ; preds = %"$have_gas_272" +"$out_of_gas_278": ; preds = %"$have_gas_274" call void @_out_of_gas() - br label %"$have_gas_277" + br label %"$have_gas_279" -"$have_gas_277": ; preds = %"$out_of_gas_276", %"$have_gas_272" - %"$consume_278" = sub i64 %"$gasrem_274", 1 - store i64 %"$consume_278", i64* @_gasrem, align 8 +"$have_gas_279": ; preds = %"$out_of_gas_278", %"$have_gas_274" + %"$consume_280" = sub i64 %"$gasrem_276", 1 + store i64 %"$consume_280", i64* @_gasrem, align 8 %arg2 = alloca %Uint32, align 8 - %"$gasrem_279" = load i64, i64* @_gasrem, align 8 - %"$gascmp_280" = icmp ugt i64 1, %"$gasrem_279" - br i1 %"$gascmp_280", label %"$out_of_gas_281", label %"$have_gas_282" + call void @llvm.dbg.declare(metadata %Uint32* %arg2, metadata !38, metadata !DIExpression()), !dbg !39 + %"$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_281": ; preds = %"$have_gas_277" +"$out_of_gas_283": ; preds = %"$have_gas_279" call void @_out_of_gas() - br label %"$have_gas_282" + br label %"$have_gas_284" -"$have_gas_282": ; preds = %"$out_of_gas_281", %"$have_gas_277" - %"$consume_283" = sub i64 %"$gasrem_279", 1 - store i64 %"$consume_283", i64* @_gasrem, align 8 - store %Uint32 { i32 1843 }, %Uint32* %arg2, align 4, !dbg !24 - %"$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" +"$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 + store %Uint32 { i32 1843 }, %Uint32* %arg2, align 4, !dbg !40 + %"$gasrem_286" = load i64, i64* @_gasrem, align 8 + %"$gascmp_287" = icmp ugt i64 1, %"$gasrem_286" + br i1 %"$gascmp_287", label %"$out_of_gas_288", label %"$have_gas_289" -"$out_of_gas_286": ; preds = %"$have_gas_282" +"$out_of_gas_288": ; preds = %"$have_gas_284" call void @_out_of_gas() - br label %"$have_gas_287" + br label %"$have_gas_289" -"$have_gas_287": ; preds = %"$out_of_gas_286", %"$have_gas_282" - %"$consume_288" = sub i64 %"$gasrem_284", 1 - store i64 %"$consume_288", i64* @_gasrem, align 8 +"$have_gas_289": ; preds = %"$out_of_gas_288", %"$have_gas_284" + %"$consume_290" = sub i64 %"$gasrem_286", 1 + store i64 %"$consume_290", i64* @_gasrem, align 8 %"$test_6" = alloca %TName_Bool*, 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" + call void @llvm.dbg.declare(metadata %TName_Bool** %"$test_6", metadata !41, metadata !DIExpression()), !dbg !42 + %"$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_291": ; preds = %"$have_gas_287" +"$out_of_gas_293": ; preds = %"$have_gas_289" call void @_out_of_gas() - br label %"$have_gas_292" + br label %"$have_gas_294" -"$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 +"$have_gas_294": ; preds = %"$out_of_gas_293", %"$have_gas_289" + %"$consume_295" = sub i64 %"$gasrem_291", 1 + store i64 %"$consume_295", i64* @_gasrem, align 8 %res = alloca %Uint32, align 8 - %"$gasrem_294" = load i64, i64* @_gasrem, align 8 - %"$gascmp_295" = icmp ugt i64 4, %"$gasrem_294" - br i1 %"$gascmp_295", label %"$out_of_gas_296", label %"$have_gas_297" + call void @llvm.dbg.declare(metadata %Uint32* %res, metadata !43, metadata !DIExpression()), !dbg !44 + %"$gasrem_296" = load i64, i64* @_gasrem, align 8 + %"$gascmp_297" = icmp ugt i64 4, %"$gasrem_296" + br i1 %"$gascmp_297", label %"$out_of_gas_298", label %"$have_gas_299" -"$out_of_gas_296": ; preds = %"$have_gas_292" +"$out_of_gas_298": ; preds = %"$have_gas_294" call void @_out_of_gas() - br label %"$have_gas_297" + br label %"$have_gas_299" -"$have_gas_297": ; preds = %"$out_of_gas_296", %"$have_gas_292" - %"$consume_298" = sub i64 %"$gasrem_294", 4 - store i64 %"$consume_298", i64* @_gasrem, align 8 - %"$arg1_299" = load %Uint32, %Uint32* %arg1, align 4 - %"$arg2_300" = load %Uint32, %Uint32* %arg2, align 4 - %"$sub_call_301" = call %Uint32 @_sub_Uint32(%Uint32 %"$arg1_299", %Uint32 %"$arg2_300"), !dbg !25 - store %Uint32 %"$sub_call_301", %Uint32* %res, align 4, !dbg !25 - %"$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" +"$have_gas_299": ; preds = %"$out_of_gas_298", %"$have_gas_294" + %"$consume_300" = sub i64 %"$gasrem_296", 4 + store i64 %"$consume_300", i64* @_gasrem, align 8 + %"$arg1_301" = load %Uint32, %Uint32* %arg1, align 4 + %"$arg2_302" = load %Uint32, %Uint32* %arg2, align 4 + %"$sub_call_303" = call %Uint32 @_sub_Uint32(%Uint32 %"$arg1_301", %Uint32 %"$arg2_302"), !dbg !45 + store %Uint32 %"$sub_call_303", %Uint32* %res, align 4, !dbg !45 + %"$gasrem_304" = load i64, i64* @_gasrem, align 8 + %"$gascmp_305" = icmp ugt i64 1, %"$gasrem_304" + br i1 %"$gascmp_305", label %"$out_of_gas_306", label %"$have_gas_307" -"$out_of_gas_304": ; preds = %"$have_gas_297" +"$out_of_gas_306": ; preds = %"$have_gas_299" call void @_out_of_gas() - br label %"$have_gas_305" + br label %"$have_gas_307" -"$have_gas_305": ; preds = %"$out_of_gas_304", %"$have_gas_297" - %"$consume_306" = sub i64 %"$gasrem_302", 1 - store i64 %"$consume_306", i64* @_gasrem, align 8 +"$have_gas_307": ; preds = %"$out_of_gas_306", %"$have_gas_299" + %"$consume_308" = sub i64 %"$gasrem_304", 1 + store i64 %"$consume_308", i64* @_gasrem, align 8 %res_ = alloca %Uint32, 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" + call void @llvm.dbg.declare(metadata %Uint32* %res_, metadata !46, metadata !DIExpression()), !dbg !47 + %"$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_309": ; preds = %"$have_gas_305" +"$out_of_gas_311": ; preds = %"$have_gas_307" call void @_out_of_gas() - br label %"$have_gas_310" + br label %"$have_gas_312" -"$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 - store %Uint32 { i32 1 }, %Uint32* %res_, align 4, !dbg !26 - %"$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" +"$have_gas_312": ; preds = %"$out_of_gas_311", %"$have_gas_307" + %"$consume_313" = sub i64 %"$gasrem_309", 1 + store i64 %"$consume_313", i64* @_gasrem, align 8 + store %Uint32 { i32 1 }, %Uint32* %res_, align 4, !dbg !48 + %"$gasrem_314" = load i64, i64* @_gasrem, align 8 + %"$gascmp_315" = icmp ugt i64 1, %"$gasrem_314" + br i1 %"$gascmp_315", label %"$out_of_gas_316", label %"$have_gas_317" -"$out_of_gas_314": ; preds = %"$have_gas_310" +"$out_of_gas_316": ; preds = %"$have_gas_312" call void @_out_of_gas() - br label %"$have_gas_315" + br label %"$have_gas_317" -"$have_gas_315": ; preds = %"$out_of_gas_314", %"$have_gas_310" - %"$consume_316" = sub i64 %"$gasrem_312", 1 - store i64 %"$consume_316", i64* @_gasrem, align 8 +"$have_gas_317": ; preds = %"$out_of_gas_316", %"$have_gas_312" + %"$consume_318" = sub i64 %"$gasrem_314", 1 + store i64 %"$consume_318", i64* @_gasrem, align 8 %test_ = alloca %TName_Bool*, 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 - %"$execptr_load_322" = load i8*, i8** @_execptr, align 8 - %"$res_323" = load %Uint32, %Uint32* %res, align 4 - %"$res__324" = load %Uint32, %Uint32* %res_, align 4 - %"$eq_call_325" = call %TName_Bool* @_eq_Uint32(i8* %"$execptr_load_322", %Uint32 %"$res_323", %Uint32 %"$res__324"), !dbg !27 - store %TName_Bool* %"$eq_call_325", %TName_Bool** %test_, align 8, !dbg !27 - %"$gasrem_327" = load i64, i64* @_gasrem, align 8 - %"$gascmp_328" = icmp ugt i64 1, %"$gasrem_327" - br i1 %"$gascmp_328", label %"$out_of_gas_329", label %"$have_gas_330" - -"$out_of_gas_329": ; preds = %"$have_gas_320" - call void @_out_of_gas() - br label %"$have_gas_330" - -"$have_gas_330": ; preds = %"$out_of_gas_329", %"$have_gas_320" - %"$consume_331" = sub i64 %"$gasrem_327", 1 - store i64 %"$consume_331", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %test_, metadata !49, metadata !DIExpression()), !dbg !50 + %"$gasrem_319" = load i64, i64* @_gasrem, align 8 + %"$gascmp_320" = icmp ugt i64 4, %"$gasrem_319" + br i1 %"$gascmp_320", label %"$out_of_gas_321", label %"$have_gas_322" + +"$out_of_gas_321": ; preds = %"$have_gas_317" + call void @_out_of_gas() + br label %"$have_gas_322" + +"$have_gas_322": ; preds = %"$out_of_gas_321", %"$have_gas_317" + %"$consume_323" = sub i64 %"$gasrem_319", 4 + store i64 %"$consume_323", i64* @_gasrem, align 8 + %"$execptr_load_324" = load i8*, i8** @_execptr, align 8 + %"$res_325" = load %Uint32, %Uint32* %res, align 4 + %"$res__326" = load %Uint32, %Uint32* %res_, align 4 + %"$eq_call_327" = call %TName_Bool* @_eq_Uint32(i8* %"$execptr_load_324", %Uint32 %"$res_325", %Uint32 %"$res__326"), !dbg !51 + store %TName_Bool* %"$eq_call_327", %TName_Bool** %test_, align 8, !dbg !51 + %"$gasrem_329" = load i64, i64* @_gasrem, align 8 + %"$gascmp_330" = icmp ugt i64 1, %"$gasrem_329" + br i1 %"$gascmp_330", label %"$out_of_gas_331", label %"$have_gas_332" + +"$out_of_gas_331": ; preds = %"$have_gas_322" + call void @_out_of_gas() + br label %"$have_gas_332" + +"$have_gas_332": ; preds = %"$out_of_gas_331", %"$have_gas_322" + %"$consume_333" = sub i64 %"$gasrem_329", 1 + store i64 %"$consume_333", i64* @_gasrem, align 8 %"$BoolUtils.andb_79" = alloca { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, align 8 - %"$BoolUtils.andb_332" = 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_333" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_332", 0 - %"$BoolUtils.andb_envptr_334" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_332", 1 - %"$test_335" = load %TName_Bool*, %TName_Bool** %test, align 8 - %"$BoolUtils.andb_call_336" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_333"(i8* %"$BoolUtils.andb_envptr_334", %TName_Bool* %"$test_335"), !dbg !28 - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_336", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_79", align 8, !dbg !28 + %"$BoolUtils.andb_334" = 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_335" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_334", 0 + %"$BoolUtils.andb_envptr_336" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_334", 1 + %"$test_337" = load %TName_Bool*, %TName_Bool** %test, align 8 + %"$BoolUtils.andb_call_338" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_335"(i8* %"$BoolUtils.andb_envptr_336", %TName_Bool* %"$test_337"), !dbg !52 + store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_338", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_79", align 8, !dbg !52 %"$BoolUtils.andb_80" = alloca %TName_Bool*, align 8 - %"$$BoolUtils.andb_79_337" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_79", align 8 - %"$$BoolUtils.andb_79_fptr_338" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_79_337", 0 - %"$$BoolUtils.andb_79_envptr_339" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_79_337", 1 - %"$test__340" = load %TName_Bool*, %TName_Bool** %test_, align 8 - %"$$BoolUtils.andb_79_call_341" = call %TName_Bool* %"$$BoolUtils.andb_79_fptr_338"(i8* %"$$BoolUtils.andb_79_envptr_339", %TName_Bool* %"$test__340"), !dbg !28 - store %TName_Bool* %"$$BoolUtils.andb_79_call_341", %TName_Bool** %"$BoolUtils.andb_80", align 8, !dbg !28 - %"$$BoolUtils.andb_80_342" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_80", align 8 - store %TName_Bool* %"$$BoolUtils.andb_80_342", %TName_Bool** %"$test_6", align 8, !dbg !28 - %"$gasrem_343" = load i64, i64* @_gasrem, align 8 - %"$gascmp_344" = icmp ugt i64 1, %"$gasrem_343" - br i1 %"$gascmp_344", label %"$out_of_gas_345", label %"$have_gas_346" - -"$out_of_gas_345": ; preds = %"$have_gas_330" - call void @_out_of_gas() - br label %"$have_gas_346" - -"$have_gas_346": ; preds = %"$out_of_gas_345", %"$have_gas_330" - %"$consume_347" = sub i64 %"$gasrem_343", 1 - store i64 %"$consume_347", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$BoolUtils.andb_80", metadata !53, metadata !DIExpression()), !dbg !52 + %"$$BoolUtils.andb_79_339" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_79", align 8 + %"$$BoolUtils.andb_79_fptr_340" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_79_339", 0 + %"$$BoolUtils.andb_79_envptr_341" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_79_339", 1 + %"$test__342" = load %TName_Bool*, %TName_Bool** %test_, align 8 + %"$$BoolUtils.andb_79_call_343" = call %TName_Bool* %"$$BoolUtils.andb_79_fptr_340"(i8* %"$$BoolUtils.andb_79_envptr_341", %TName_Bool* %"$test__342"), !dbg !52 + store %TName_Bool* %"$$BoolUtils.andb_79_call_343", %TName_Bool** %"$BoolUtils.andb_80", align 8, !dbg !52 + %"$$BoolUtils.andb_80_344" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_80", align 8 + store %TName_Bool* %"$$BoolUtils.andb_80_344", %TName_Bool** %"$test_6", align 8, !dbg !52 + %"$gasrem_345" = load i64, i64* @_gasrem, align 8 + %"$gascmp_346" = icmp ugt i64 1, %"$gasrem_345" + br i1 %"$gascmp_346", label %"$out_of_gas_347", label %"$have_gas_348" + +"$out_of_gas_347": ; preds = %"$have_gas_332" + call void @_out_of_gas() + br label %"$have_gas_348" + +"$have_gas_348": ; preds = %"$out_of_gas_347", %"$have_gas_332" + %"$consume_349" = sub i64 %"$gasrem_345", 1 + store i64 %"$consume_349", i64* @_gasrem, align 8 %"$arg2_7" = alloca %Int32, 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" + call void @llvm.dbg.declare(metadata %Int32* %"$arg2_7", metadata !54, metadata !DIExpression()), !dbg !56 + %"$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_350": ; preds = %"$have_gas_346" +"$out_of_gas_352": ; preds = %"$have_gas_348" call void @_out_of_gas() - br label %"$have_gas_351" + br label %"$have_gas_353" -"$have_gas_351": ; preds = %"$out_of_gas_350", %"$have_gas_346" - %"$consume_352" = sub i64 %"$gasrem_348", 1 - store i64 %"$consume_352", i64* @_gasrem, align 8 - store %Int32 { i32 1844 }, %Int32* %"$arg2_7", align 4, !dbg !29 - %"$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" +"$have_gas_353": ; preds = %"$out_of_gas_352", %"$have_gas_348" + %"$consume_354" = sub i64 %"$gasrem_350", 1 + store i64 %"$consume_354", i64* @_gasrem, align 8 + store %Int32 { i32 1844 }, %Int32* %"$arg2_7", align 4, !dbg !57 + %"$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" -"$out_of_gas_355": ; preds = %"$have_gas_351" +"$out_of_gas_357": ; preds = %"$have_gas_353" call void @_out_of_gas() - br label %"$have_gas_356" + br label %"$have_gas_358" -"$have_gas_356": ; preds = %"$out_of_gas_355", %"$have_gas_351" - %"$consume_357" = sub i64 %"$gasrem_353", 1 - store i64 %"$consume_357", i64* @_gasrem, align 8 +"$have_gas_358": ; preds = %"$out_of_gas_357", %"$have_gas_353" + %"$consume_359" = sub i64 %"$gasrem_355", 1 + store i64 %"$consume_359", i64* @_gasrem, align 8 %"$arg1_8" = 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" + call void @llvm.dbg.declare(metadata %Int32* %"$arg1_8", metadata !58, metadata !DIExpression()), !dbg !59 + %"$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_360": ; preds = %"$have_gas_356" +"$out_of_gas_362": ; preds = %"$have_gas_358" call void @_out_of_gas() - br label %"$have_gas_361" + br label %"$have_gas_363" -"$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 - store %Int32 { i32 1843 }, %Int32* %"$arg1_8", align 4, !dbg !30 - %"$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" +"$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 + store %Int32 { i32 1843 }, %Int32* %"$arg1_8", align 4, !dbg !60 + %"$gasrem_365" = load i64, i64* @_gasrem, align 8 + %"$gascmp_366" = icmp ugt i64 1, %"$gasrem_365" + br i1 %"$gascmp_366", label %"$out_of_gas_367", label %"$have_gas_368" -"$out_of_gas_365": ; preds = %"$have_gas_361" +"$out_of_gas_367": ; preds = %"$have_gas_363" call void @_out_of_gas() - br label %"$have_gas_366" + br label %"$have_gas_368" -"$have_gas_366": ; preds = %"$out_of_gas_365", %"$have_gas_361" - %"$consume_367" = sub i64 %"$gasrem_363", 1 - store i64 %"$consume_367", i64* @_gasrem, align 8 +"$have_gas_368": ; preds = %"$out_of_gas_367", %"$have_gas_363" + %"$consume_369" = sub i64 %"$gasrem_365", 1 + store i64 %"$consume_369", i64* @_gasrem, align 8 %"$test_12" = alloca %TName_Bool*, align 8 - %"$gasrem_368" = load i64, i64* @_gasrem, align 8 - %"$gascmp_369" = icmp ugt i64 1, %"$gasrem_368" - br i1 %"$gascmp_369", label %"$out_of_gas_370", label %"$have_gas_371" + call void @llvm.dbg.declare(metadata %TName_Bool** %"$test_12", metadata !61, metadata !DIExpression()), !dbg !62 + %"$gasrem_370" = load i64, i64* @_gasrem, align 8 + %"$gascmp_371" = icmp ugt i64 1, %"$gasrem_370" + br i1 %"$gascmp_371", label %"$out_of_gas_372", label %"$have_gas_373" -"$out_of_gas_370": ; preds = %"$have_gas_366" +"$out_of_gas_372": ; preds = %"$have_gas_368" call void @_out_of_gas() - br label %"$have_gas_371" + br label %"$have_gas_373" -"$have_gas_371": ; preds = %"$out_of_gas_370", %"$have_gas_366" - %"$consume_372" = sub i64 %"$gasrem_368", 1 - store i64 %"$consume_372", i64* @_gasrem, align 8 +"$have_gas_373": ; preds = %"$out_of_gas_372", %"$have_gas_368" + %"$consume_374" = sub i64 %"$gasrem_370", 1 + store i64 %"$consume_374", i64* @_gasrem, align 8 %"$res_9" = alloca %Int32, align 8 - %"$gasrem_373" = load i64, i64* @_gasrem, align 8 - %"$gascmp_374" = icmp ugt i64 4, %"$gasrem_373" - br i1 %"$gascmp_374", label %"$out_of_gas_375", label %"$have_gas_376" + call void @llvm.dbg.declare(metadata %Int32* %"$res_9", metadata !63, metadata !DIExpression()), !dbg !64 + %"$gasrem_375" = load i64, i64* @_gasrem, align 8 + %"$gascmp_376" = icmp ugt i64 4, %"$gasrem_375" + br i1 %"$gascmp_376", label %"$out_of_gas_377", label %"$have_gas_378" -"$out_of_gas_375": ; preds = %"$have_gas_371" +"$out_of_gas_377": ; preds = %"$have_gas_373" call void @_out_of_gas() - br label %"$have_gas_376" + br label %"$have_gas_378" -"$have_gas_376": ; preds = %"$out_of_gas_375", %"$have_gas_371" - %"$consume_377" = sub i64 %"$gasrem_373", 4 - store i64 %"$consume_377", i64* @_gasrem, align 8 - %"$$arg1_8_378" = load %Int32, %Int32* %"$arg1_8", align 4 - %"$$arg2_7_379" = load %Int32, %Int32* %"$arg2_7", align 4 - %"$sub_call_380" = call %Int32 @_sub_Int32(%Int32 %"$$arg1_8_378", %Int32 %"$$arg2_7_379"), !dbg !31 - store %Int32 %"$sub_call_380", %Int32* %"$res_9", align 4, !dbg !31 - %"$gasrem_381" = load i64, i64* @_gasrem, align 8 - %"$gascmp_382" = icmp ugt i64 1, %"$gasrem_381" - br i1 %"$gascmp_382", label %"$out_of_gas_383", label %"$have_gas_384" +"$have_gas_378": ; preds = %"$out_of_gas_377", %"$have_gas_373" + %"$consume_379" = sub i64 %"$gasrem_375", 4 + store i64 %"$consume_379", i64* @_gasrem, align 8 + %"$$arg1_8_380" = load %Int32, %Int32* %"$arg1_8", align 4 + %"$$arg2_7_381" = load %Int32, %Int32* %"$arg2_7", align 4 + %"$sub_call_382" = call %Int32 @_sub_Int32(%Int32 %"$$arg1_8_380", %Int32 %"$$arg2_7_381"), !dbg !65 + store %Int32 %"$sub_call_382", %Int32* %"$res_9", align 4, !dbg !65 + %"$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_383": ; preds = %"$have_gas_376" +"$out_of_gas_385": ; preds = %"$have_gas_378" call void @_out_of_gas() - br label %"$have_gas_384" + br label %"$have_gas_386" -"$have_gas_384": ; preds = %"$out_of_gas_383", %"$have_gas_376" - %"$consume_385" = sub i64 %"$gasrem_381", 1 - store i64 %"$consume_385", i64* @_gasrem, align 8 +"$have_gas_386": ; preds = %"$out_of_gas_385", %"$have_gas_378" + %"$consume_387" = sub i64 %"$gasrem_383", 1 + store i64 %"$consume_387", i64* @_gasrem, align 8 %"$res__10" = alloca %Int32, 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" + call void @llvm.dbg.declare(metadata %Int32* %"$res__10", metadata !66, metadata !DIExpression()), !dbg !67 + %"$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_388": ; preds = %"$have_gas_384" +"$out_of_gas_390": ; preds = %"$have_gas_386" call void @_out_of_gas() - br label %"$have_gas_389" + br label %"$have_gas_391" -"$have_gas_389": ; preds = %"$out_of_gas_388", %"$have_gas_384" - %"$consume_390" = sub i64 %"$gasrem_386", 1 - store i64 %"$consume_390", i64* @_gasrem, align 8 - store %Int32 { i32 -1 }, %Int32* %"$res__10", align 4, !dbg !32 - %"$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_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 %Int32 { i32 -1 }, %Int32* %"$res__10", align 4, !dbg !68 + %"$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_393": ; preds = %"$have_gas_389" +"$out_of_gas_395": ; preds = %"$have_gas_391" call void @_out_of_gas() - br label %"$have_gas_394" + br label %"$have_gas_396" -"$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_396": ; preds = %"$out_of_gas_395", %"$have_gas_391" + %"$consume_397" = sub i64 %"$gasrem_393", 1 + store i64 %"$consume_397", i64* @_gasrem, align 8 %"$test__11" = alloca %TName_Bool*, align 8 - %"$gasrem_396" = load i64, i64* @_gasrem, align 8 - %"$gascmp_397" = icmp ugt i64 4, %"$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", 4 - store i64 %"$consume_400", i64* @_gasrem, align 8 - %"$execptr_load_401" = load i8*, i8** @_execptr, align 8 - %"$$res_9_402" = load %Int32, %Int32* %"$res_9", align 4 - %"$$res__10_403" = load %Int32, %Int32* %"$res__10", align 4 - %"$eq_call_404" = call %TName_Bool* @_eq_Int32(i8* %"$execptr_load_401", %Int32 %"$$res_9_402", %Int32 %"$$res__10_403"), !dbg !33 - store %TName_Bool* %"$eq_call_404", %TName_Bool** %"$test__11", align 8, !dbg !33 - %"$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_399" - call void @_out_of_gas() - br label %"$have_gas_409" - -"$have_gas_409": ; preds = %"$out_of_gas_408", %"$have_gas_399" - %"$consume_410" = sub i64 %"$gasrem_406", 1 - store i64 %"$consume_410", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$test__11", metadata !69, metadata !DIExpression()), !dbg !70 + %"$gasrem_398" = load i64, i64* @_gasrem, align 8 + %"$gascmp_399" = icmp ugt i64 4, %"$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", 4 + store i64 %"$consume_402", i64* @_gasrem, align 8 + %"$execptr_load_403" = load i8*, i8** @_execptr, align 8 + %"$$res_9_404" = load %Int32, %Int32* %"$res_9", align 4 + %"$$res__10_405" = load %Int32, %Int32* %"$res__10", align 4 + %"$eq_call_406" = call %TName_Bool* @_eq_Int32(i8* %"$execptr_load_403", %Int32 %"$$res_9_404", %Int32 %"$$res__10_405"), !dbg !71 + store %TName_Bool* %"$eq_call_406", %TName_Bool** %"$test__11", align 8, !dbg !71 + %"$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 %"$BoolUtils.andb_81" = alloca { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, align 8 - %"$BoolUtils.andb_411" = 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_412" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_411", 0 - %"$BoolUtils.andb_envptr_413" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_411", 1 - %"$$test_6_414" = load %TName_Bool*, %TName_Bool** %"$test_6", align 8 - %"$BoolUtils.andb_call_415" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_412"(i8* %"$BoolUtils.andb_envptr_413", %TName_Bool* %"$$test_6_414"), !dbg !34 - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_415", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_81", align 8, !dbg !34 + %"$BoolUtils.andb_413" = 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_414" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_413", 0 + %"$BoolUtils.andb_envptr_415" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_413", 1 + %"$$test_6_416" = load %TName_Bool*, %TName_Bool** %"$test_6", align 8 + %"$BoolUtils.andb_call_417" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_414"(i8* %"$BoolUtils.andb_envptr_415", %TName_Bool* %"$$test_6_416"), !dbg !72 + store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_417", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_81", align 8, !dbg !72 %"$BoolUtils.andb_82" = alloca %TName_Bool*, align 8 - %"$$BoolUtils.andb_81_416" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_81", align 8 - %"$$BoolUtils.andb_81_fptr_417" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_81_416", 0 - %"$$BoolUtils.andb_81_envptr_418" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_81_416", 1 - %"$$test__11_419" = load %TName_Bool*, %TName_Bool** %"$test__11", align 8 - %"$$BoolUtils.andb_81_call_420" = call %TName_Bool* %"$$BoolUtils.andb_81_fptr_417"(i8* %"$$BoolUtils.andb_81_envptr_418", %TName_Bool* %"$$test__11_419"), !dbg !34 - store %TName_Bool* %"$$BoolUtils.andb_81_call_420", %TName_Bool** %"$BoolUtils.andb_82", align 8, !dbg !34 - %"$$BoolUtils.andb_82_421" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_82", align 8 - store %TName_Bool* %"$$BoolUtils.andb_82_421", %TName_Bool** %"$test_12", align 8, !dbg !34 - %"$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" - -"$out_of_gas_424": ; preds = %"$have_gas_409" - call void @_out_of_gas() - br label %"$have_gas_425" - -"$have_gas_425": ; preds = %"$out_of_gas_424", %"$have_gas_409" - %"$consume_426" = sub i64 %"$gasrem_422", 1 - store i64 %"$consume_426", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$BoolUtils.andb_82", metadata !73, metadata !DIExpression()), !dbg !72 + %"$$BoolUtils.andb_81_418" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_81", align 8 + %"$$BoolUtils.andb_81_fptr_419" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_81_418", 0 + %"$$BoolUtils.andb_81_envptr_420" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_81_418", 1 + %"$$test__11_421" = load %TName_Bool*, %TName_Bool** %"$test__11", align 8 + %"$$BoolUtils.andb_81_call_422" = call %TName_Bool* %"$$BoolUtils.andb_81_fptr_419"(i8* %"$$BoolUtils.andb_81_envptr_420", %TName_Bool* %"$$test__11_421"), !dbg !72 + store %TName_Bool* %"$$BoolUtils.andb_81_call_422", %TName_Bool** %"$BoolUtils.andb_82", align 8, !dbg !72 + %"$$BoolUtils.andb_82_423" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_82", align 8 + store %TName_Bool* %"$$BoolUtils.andb_82_423", %TName_Bool** %"$test_12", align 8, !dbg !72 + %"$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_411" + call void @_out_of_gas() + br label %"$have_gas_427" + +"$have_gas_427": ; preds = %"$out_of_gas_426", %"$have_gas_411" + %"$consume_428" = sub i64 %"$gasrem_424", 1 + store i64 %"$consume_428", i64* @_gasrem, align 8 %"$arg1_13" = alloca %Uint64, 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" + call void @llvm.dbg.declare(metadata %Uint64* %"$arg1_13", metadata !74, metadata !DIExpression()), !dbg !76 + %"$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_429": ; preds = %"$have_gas_425" +"$out_of_gas_431": ; preds = %"$have_gas_427" call void @_out_of_gas() - br label %"$have_gas_430" + br label %"$have_gas_432" -"$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 %Uint64 { i64 -1 }, %Uint64* %"$arg1_13", align 8, !dbg !35 - %"$gasrem_432" = load i64, i64* @_gasrem, align 8 - %"$gascmp_433" = icmp ugt i64 1, %"$gasrem_432" - br i1 %"$gascmp_433", label %"$out_of_gas_434", label %"$have_gas_435" +"$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 %Uint64 { i64 -1 }, %Uint64* %"$arg1_13", align 8, !dbg !77 + %"$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_434": ; preds = %"$have_gas_430" +"$out_of_gas_436": ; preds = %"$have_gas_432" call void @_out_of_gas() - br label %"$have_gas_435" + br label %"$have_gas_437" -"$have_gas_435": ; preds = %"$out_of_gas_434", %"$have_gas_430" - %"$consume_436" = sub i64 %"$gasrem_432", 1 - store i64 %"$consume_436", 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 %"$arg2_14" = alloca %Uint64, 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" + call void @llvm.dbg.declare(metadata %Uint64* %"$arg2_14", metadata !78, metadata !DIExpression()), !dbg !79 + %"$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_439": ; preds = %"$have_gas_435" +"$out_of_gas_441": ; preds = %"$have_gas_437" call void @_out_of_gas() - br label %"$have_gas_440" + br label %"$have_gas_442" -"$have_gas_440": ; preds = %"$out_of_gas_439", %"$have_gas_435" - %"$consume_441" = sub i64 %"$gasrem_437", 1 - store i64 %"$consume_441", i64* @_gasrem, align 8 - store %Uint64 { i64 -2 }, %Uint64* %"$arg2_14", align 8, !dbg !36 - %"$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" +"$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 + store %Uint64 { i64 -2 }, %Uint64* %"$arg2_14", align 8, !dbg !80 + %"$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_444": ; preds = %"$have_gas_440" +"$out_of_gas_446": ; preds = %"$have_gas_442" call void @_out_of_gas() - br label %"$have_gas_445" + br label %"$have_gas_447" -"$have_gas_445": ; preds = %"$out_of_gas_444", %"$have_gas_440" - %"$consume_446" = sub i64 %"$gasrem_442", 1 - store i64 %"$consume_446", i64* @_gasrem, align 8 +"$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 %"$test_18" = alloca %TName_Bool*, align 8 - %"$gasrem_447" = load i64, i64* @_gasrem, align 8 - %"$gascmp_448" = icmp ugt i64 1, %"$gasrem_447" - br i1 %"$gascmp_448", label %"$out_of_gas_449", label %"$have_gas_450" + call void @llvm.dbg.declare(metadata %TName_Bool** %"$test_18", metadata !81, metadata !DIExpression()), !dbg !82 + %"$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_449": ; preds = %"$have_gas_445" +"$out_of_gas_451": ; preds = %"$have_gas_447" call void @_out_of_gas() - br label %"$have_gas_450" + br label %"$have_gas_452" -"$have_gas_450": ; preds = %"$out_of_gas_449", %"$have_gas_445" - %"$consume_451" = sub i64 %"$gasrem_447", 1 - store i64 %"$consume_451", i64* @_gasrem, align 8 +"$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 %"$res_15" = alloca %Uint64, align 8 - %"$gasrem_452" = load i64, i64* @_gasrem, align 8 - %"$gascmp_453" = icmp ugt i64 4, %"$gasrem_452" - br i1 %"$gascmp_453", label %"$out_of_gas_454", label %"$have_gas_455" + call void @llvm.dbg.declare(metadata %Uint64* %"$res_15", metadata !83, metadata !DIExpression()), !dbg !84 + %"$gasrem_454" = load i64, i64* @_gasrem, align 8 + %"$gascmp_455" = icmp ugt i64 4, %"$gasrem_454" + br i1 %"$gascmp_455", label %"$out_of_gas_456", label %"$have_gas_457" -"$out_of_gas_454": ; preds = %"$have_gas_450" +"$out_of_gas_456": ; preds = %"$have_gas_452" call void @_out_of_gas() - br label %"$have_gas_455" + br label %"$have_gas_457" -"$have_gas_455": ; preds = %"$out_of_gas_454", %"$have_gas_450" - %"$consume_456" = sub i64 %"$gasrem_452", 4 - store i64 %"$consume_456", i64* @_gasrem, align 8 - %"$$arg1_13_457" = load %Uint64, %Uint64* %"$arg1_13", align 8 - %"$$arg2_14_458" = load %Uint64, %Uint64* %"$arg2_14", align 8 - %"$sub_call_459" = call %Uint64 @_sub_Uint64(%Uint64 %"$$arg1_13_457", %Uint64 %"$$arg2_14_458"), !dbg !37 - store %Uint64 %"$sub_call_459", %Uint64* %"$res_15", align 8, !dbg !37 - %"$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" +"$have_gas_457": ; preds = %"$out_of_gas_456", %"$have_gas_452" + %"$consume_458" = sub i64 %"$gasrem_454", 4 + store i64 %"$consume_458", i64* @_gasrem, align 8 + %"$$arg1_13_459" = load %Uint64, %Uint64* %"$arg1_13", align 8 + %"$$arg2_14_460" = load %Uint64, %Uint64* %"$arg2_14", align 8 + %"$sub_call_461" = call %Uint64 @_sub_Uint64(%Uint64 %"$$arg1_13_459", %Uint64 %"$$arg2_14_460"), !dbg !85 + store %Uint64 %"$sub_call_461", %Uint64* %"$res_15", align 8, !dbg !85 + %"$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_462": ; preds = %"$have_gas_455" +"$out_of_gas_464": ; preds = %"$have_gas_457" call void @_out_of_gas() - br label %"$have_gas_463" + br label %"$have_gas_465" -"$have_gas_463": ; preds = %"$out_of_gas_462", %"$have_gas_455" - %"$consume_464" = sub i64 %"$gasrem_460", 1 - store i64 %"$consume_464", i64* @_gasrem, align 8 +"$have_gas_465": ; preds = %"$out_of_gas_464", %"$have_gas_457" + %"$consume_466" = sub i64 %"$gasrem_462", 1 + store i64 %"$consume_466", i64* @_gasrem, align 8 %"$res__16" = alloca %Uint64, align 8 - %"$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" + call void @llvm.dbg.declare(metadata %Uint64* %"$res__16", metadata !86, metadata !DIExpression()), !dbg !87 + %"$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_467": ; preds = %"$have_gas_463" +"$out_of_gas_469": ; preds = %"$have_gas_465" call void @_out_of_gas() - br label %"$have_gas_468" + br label %"$have_gas_470" -"$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 - store %Uint64 { i64 1 }, %Uint64* %"$res__16", align 8, !dbg !38 - %"$gasrem_470" = load i64, i64* @_gasrem, align 8 - %"$gascmp_471" = icmp ugt i64 1, %"$gasrem_470" - br i1 %"$gascmp_471", label %"$out_of_gas_472", label %"$have_gas_473" +"$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 + store %Uint64 { i64 1 }, %Uint64* %"$res__16", align 8, !dbg !88 + %"$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" -"$out_of_gas_472": ; preds = %"$have_gas_468" +"$out_of_gas_474": ; preds = %"$have_gas_470" call void @_out_of_gas() - br label %"$have_gas_473" + br label %"$have_gas_475" -"$have_gas_473": ; preds = %"$out_of_gas_472", %"$have_gas_468" - %"$consume_474" = sub i64 %"$gasrem_470", 1 - store i64 %"$consume_474", i64* @_gasrem, align 8 +"$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 %"$test__17" = alloca %TName_Bool*, align 8 - %"$gasrem_475" = load i64, i64* @_gasrem, align 8 - %"$gascmp_476" = icmp ugt i64 4, %"$gasrem_475" - br i1 %"$gascmp_476", label %"$out_of_gas_477", label %"$have_gas_478" - -"$out_of_gas_477": ; preds = %"$have_gas_473" - call void @_out_of_gas() - br label %"$have_gas_478" - -"$have_gas_478": ; preds = %"$out_of_gas_477", %"$have_gas_473" - %"$consume_479" = sub i64 %"$gasrem_475", 4 - store i64 %"$consume_479", i64* @_gasrem, align 8 - %"$execptr_load_480" = load i8*, i8** @_execptr, align 8 - %"$$res_15_481" = load %Uint64, %Uint64* %"$res_15", align 8 - %"$$res__16_482" = load %Uint64, %Uint64* %"$res__16", align 8 - %"$eq_call_483" = call %TName_Bool* @_eq_Uint64(i8* %"$execptr_load_480", %Uint64 %"$$res_15_481", %Uint64 %"$$res__16_482"), !dbg !39 - store %TName_Bool* %"$eq_call_483", %TName_Bool** %"$test__17", align 8, !dbg !39 - %"$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" - -"$out_of_gas_487": ; preds = %"$have_gas_478" - call void @_out_of_gas() - br label %"$have_gas_488" - -"$have_gas_488": ; preds = %"$out_of_gas_487", %"$have_gas_478" - %"$consume_489" = sub i64 %"$gasrem_485", 1 - store i64 %"$consume_489", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$test__17", metadata !89, metadata !DIExpression()), !dbg !90 + %"$gasrem_477" = load i64, i64* @_gasrem, align 8 + %"$gascmp_478" = icmp ugt i64 4, %"$gasrem_477" + br i1 %"$gascmp_478", label %"$out_of_gas_479", label %"$have_gas_480" + +"$out_of_gas_479": ; preds = %"$have_gas_475" + call void @_out_of_gas() + br label %"$have_gas_480" + +"$have_gas_480": ; preds = %"$out_of_gas_479", %"$have_gas_475" + %"$consume_481" = sub i64 %"$gasrem_477", 4 + store i64 %"$consume_481", i64* @_gasrem, align 8 + %"$execptr_load_482" = load i8*, i8** @_execptr, align 8 + %"$$res_15_483" = load %Uint64, %Uint64* %"$res_15", align 8 + %"$$res__16_484" = load %Uint64, %Uint64* %"$res__16", align 8 + %"$eq_call_485" = call %TName_Bool* @_eq_Uint64(i8* %"$execptr_load_482", %Uint64 %"$$res_15_483", %Uint64 %"$$res__16_484"), !dbg !91 + store %TName_Bool* %"$eq_call_485", %TName_Bool** %"$test__17", align 8, !dbg !91 + %"$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_489": ; preds = %"$have_gas_480" + call void @_out_of_gas() + br label %"$have_gas_490" + +"$have_gas_490": ; preds = %"$out_of_gas_489", %"$have_gas_480" + %"$consume_491" = sub i64 %"$gasrem_487", 1 + store i64 %"$consume_491", i64* @_gasrem, align 8 %"$BoolUtils.andb_83" = alloca { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, align 8 - %"$BoolUtils.andb_490" = 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_491" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_490", 0 - %"$BoolUtils.andb_envptr_492" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_490", 1 - %"$$test_12_493" = load %TName_Bool*, %TName_Bool** %"$test_12", align 8 - %"$BoolUtils.andb_call_494" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_491"(i8* %"$BoolUtils.andb_envptr_492", %TName_Bool* %"$$test_12_493"), !dbg !40 - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_494", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_83", align 8, !dbg !40 + %"$BoolUtils.andb_492" = 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_493" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_492", 0 + %"$BoolUtils.andb_envptr_494" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_492", 1 + %"$$test_12_495" = load %TName_Bool*, %TName_Bool** %"$test_12", align 8 + %"$BoolUtils.andb_call_496" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_493"(i8* %"$BoolUtils.andb_envptr_494", %TName_Bool* %"$$test_12_495"), !dbg !92 + store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_496", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_83", align 8, !dbg !92 %"$BoolUtils.andb_84" = alloca %TName_Bool*, align 8 - %"$$BoolUtils.andb_83_495" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_83", align 8 - %"$$BoolUtils.andb_83_fptr_496" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_83_495", 0 - %"$$BoolUtils.andb_83_envptr_497" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_83_495", 1 - %"$$test__17_498" = load %TName_Bool*, %TName_Bool** %"$test__17", align 8 - %"$$BoolUtils.andb_83_call_499" = call %TName_Bool* %"$$BoolUtils.andb_83_fptr_496"(i8* %"$$BoolUtils.andb_83_envptr_497", %TName_Bool* %"$$test__17_498"), !dbg !40 - store %TName_Bool* %"$$BoolUtils.andb_83_call_499", %TName_Bool** %"$BoolUtils.andb_84", align 8, !dbg !40 - %"$$BoolUtils.andb_84_500" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_84", align 8 - store %TName_Bool* %"$$BoolUtils.andb_84_500", %TName_Bool** %"$test_18", align 8, !dbg !40 - %"$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 = %"$have_gas_488" - call void @_out_of_gas() - br label %"$have_gas_504" - -"$have_gas_504": ; preds = %"$out_of_gas_503", %"$have_gas_488" - %"$consume_505" = sub i64 %"$gasrem_501", 1 - store i64 %"$consume_505", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$BoolUtils.andb_84", metadata !93, metadata !DIExpression()), !dbg !92 + %"$$BoolUtils.andb_83_497" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_83", align 8 + %"$$BoolUtils.andb_83_fptr_498" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_83_497", 0 + %"$$BoolUtils.andb_83_envptr_499" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_83_497", 1 + %"$$test__17_500" = load %TName_Bool*, %TName_Bool** %"$test__17", align 8 + %"$$BoolUtils.andb_83_call_501" = call %TName_Bool* %"$$BoolUtils.andb_83_fptr_498"(i8* %"$$BoolUtils.andb_83_envptr_499", %TName_Bool* %"$$test__17_500"), !dbg !92 + store %TName_Bool* %"$$BoolUtils.andb_83_call_501", %TName_Bool** %"$BoolUtils.andb_84", align 8, !dbg !92 + %"$$BoolUtils.andb_84_502" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_84", align 8 + store %TName_Bool* %"$$BoolUtils.andb_84_502", %TName_Bool** %"$test_18", align 8, !dbg !92 + %"$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_490" + call void @_out_of_gas() + br label %"$have_gas_506" + +"$have_gas_506": ; preds = %"$out_of_gas_505", %"$have_gas_490" + %"$consume_507" = sub i64 %"$gasrem_503", 1 + store i64 %"$consume_507", i64* @_gasrem, align 8 %"$arg2_19" = alloca %Int64, 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" + call void @llvm.dbg.declare(metadata %Int64* %"$arg2_19", metadata !94, metadata !DIExpression()), !dbg !96 + %"$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" -"$out_of_gas_508": ; preds = %"$have_gas_504" +"$out_of_gas_510": ; preds = %"$have_gas_506" call void @_out_of_gas() - br label %"$have_gas_509" + br label %"$have_gas_511" -"$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 %Int64 { i64 9223372036854775807 }, %Int64* %"$arg2_19", align 8, !dbg !41 - %"$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_511": ; preds = %"$out_of_gas_510", %"$have_gas_506" + %"$consume_512" = sub i64 %"$gasrem_508", 1 + store i64 %"$consume_512", i64* @_gasrem, align 8 + store %Int64 { i64 9223372036854775807 }, %Int64* %"$arg2_19", align 8, !dbg !97 + %"$gasrem_513" = load i64, i64* @_gasrem, align 8 + %"$gascmp_514" = icmp ugt i64 1, %"$gasrem_513" + br i1 %"$gascmp_514", label %"$out_of_gas_515", label %"$have_gas_516" -"$out_of_gas_513": ; preds = %"$have_gas_509" +"$out_of_gas_515": ; preds = %"$have_gas_511" call void @_out_of_gas() - br label %"$have_gas_514" + br label %"$have_gas_516" -"$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 +"$have_gas_516": ; preds = %"$out_of_gas_515", %"$have_gas_511" + %"$consume_517" = sub i64 %"$gasrem_513", 1 + store i64 %"$consume_517", i64* @_gasrem, align 8 %"$arg1_20" = alloca %Int64, 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" + call void @llvm.dbg.declare(metadata %Int64* %"$arg1_20", metadata !98, metadata !DIExpression()), !dbg !99 + %"$gasrem_518" = load i64, i64* @_gasrem, align 8 + %"$gascmp_519" = icmp ugt i64 1, %"$gasrem_518" + br i1 %"$gascmp_519", label %"$out_of_gas_520", label %"$have_gas_521" -"$out_of_gas_518": ; preds = %"$have_gas_514" +"$out_of_gas_520": ; preds = %"$have_gas_516" call void @_out_of_gas() - br label %"$have_gas_519" + br label %"$have_gas_521" -"$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 - store %Int64 { i64 9223372036854775807 }, %Int64* %"$arg1_20", align 8, !dbg !42 - %"$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" +"$have_gas_521": ; preds = %"$out_of_gas_520", %"$have_gas_516" + %"$consume_522" = sub i64 %"$gasrem_518", 1 + store i64 %"$consume_522", i64* @_gasrem, align 8 + store %Int64 { i64 9223372036854775807 }, %Int64* %"$arg1_20", align 8, !dbg !100 + %"$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_523": ; preds = %"$have_gas_519" +"$out_of_gas_525": ; preds = %"$have_gas_521" call void @_out_of_gas() - br label %"$have_gas_524" + br label %"$have_gas_526" -"$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 +"$have_gas_526": ; preds = %"$out_of_gas_525", %"$have_gas_521" + %"$consume_527" = sub i64 %"$gasrem_523", 1 + store i64 %"$consume_527", i64* @_gasrem, align 8 %"$test_24" = alloca %TName_Bool*, align 8 - %"$gasrem_526" = load i64, i64* @_gasrem, align 8 - %"$gascmp_527" = icmp ugt i64 1, %"$gasrem_526" - br i1 %"$gascmp_527", label %"$out_of_gas_528", label %"$have_gas_529" + call void @llvm.dbg.declare(metadata %TName_Bool** %"$test_24", metadata !101, metadata !DIExpression()), !dbg !102 + %"$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_528": ; preds = %"$have_gas_524" +"$out_of_gas_530": ; preds = %"$have_gas_526" call void @_out_of_gas() - br label %"$have_gas_529" + br label %"$have_gas_531" -"$have_gas_529": ; preds = %"$out_of_gas_528", %"$have_gas_524" - %"$consume_530" = sub i64 %"$gasrem_526", 1 - store i64 %"$consume_530", i64* @_gasrem, align 8 +"$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 %"$res_21" = alloca %Int64, align 8 - %"$gasrem_531" = load i64, i64* @_gasrem, align 8 - %"$gascmp_532" = icmp ugt i64 4, %"$gasrem_531" - br i1 %"$gascmp_532", label %"$out_of_gas_533", label %"$have_gas_534" + call void @llvm.dbg.declare(metadata %Int64* %"$res_21", metadata !103, metadata !DIExpression()), !dbg !104 + %"$gasrem_533" = load i64, i64* @_gasrem, align 8 + %"$gascmp_534" = icmp ugt i64 4, %"$gasrem_533" + br i1 %"$gascmp_534", label %"$out_of_gas_535", label %"$have_gas_536" -"$out_of_gas_533": ; preds = %"$have_gas_529" +"$out_of_gas_535": ; preds = %"$have_gas_531" call void @_out_of_gas() - br label %"$have_gas_534" + br label %"$have_gas_536" -"$have_gas_534": ; preds = %"$out_of_gas_533", %"$have_gas_529" - %"$consume_535" = sub i64 %"$gasrem_531", 4 - store i64 %"$consume_535", i64* @_gasrem, align 8 - %"$$arg1_20_536" = load %Int64, %Int64* %"$arg1_20", align 8 - %"$$arg2_19_537" = load %Int64, %Int64* %"$arg2_19", align 8 - %"$sub_call_538" = call %Int64 @_sub_Int64(%Int64 %"$$arg1_20_536", %Int64 %"$$arg2_19_537"), !dbg !43 - store %Int64 %"$sub_call_538", %Int64* %"$res_21", align 8, !dbg !43 - %"$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" +"$have_gas_536": ; preds = %"$out_of_gas_535", %"$have_gas_531" + %"$consume_537" = sub i64 %"$gasrem_533", 4 + store i64 %"$consume_537", i64* @_gasrem, align 8 + %"$$arg1_20_538" = load %Int64, %Int64* %"$arg1_20", align 8 + %"$$arg2_19_539" = load %Int64, %Int64* %"$arg2_19", align 8 + %"$sub_call_540" = call %Int64 @_sub_Int64(%Int64 %"$$arg1_20_538", %Int64 %"$$arg2_19_539"), !dbg !105 + store %Int64 %"$sub_call_540", %Int64* %"$res_21", align 8, !dbg !105 + %"$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_541": ; preds = %"$have_gas_534" +"$out_of_gas_543": ; preds = %"$have_gas_536" call void @_out_of_gas() - br label %"$have_gas_542" + br label %"$have_gas_544" -"$have_gas_542": ; preds = %"$out_of_gas_541", %"$have_gas_534" - %"$consume_543" = sub i64 %"$gasrem_539", 1 - store i64 %"$consume_543", i64* @_gasrem, align 8 +"$have_gas_544": ; preds = %"$out_of_gas_543", %"$have_gas_536" + %"$consume_545" = sub i64 %"$gasrem_541", 1 + store i64 %"$consume_545", i64* @_gasrem, align 8 %"$res__22" = alloca %Int64, 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" + call void @llvm.dbg.declare(metadata %Int64* %"$res__22", metadata !106, metadata !DIExpression()), !dbg !107 + %"$gasrem_546" = load i64, i64* @_gasrem, align 8 + %"$gascmp_547" = icmp ugt i64 1, %"$gasrem_546" + br i1 %"$gascmp_547", label %"$out_of_gas_548", label %"$have_gas_549" -"$out_of_gas_546": ; preds = %"$have_gas_542" +"$out_of_gas_548": ; preds = %"$have_gas_544" call void @_out_of_gas() - br label %"$have_gas_547" + br label %"$have_gas_549" -"$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 %Int64 zeroinitializer, %Int64* %"$res__22", align 8, !dbg !44 - %"$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_549": ; preds = %"$out_of_gas_548", %"$have_gas_544" + %"$consume_550" = sub i64 %"$gasrem_546", 1 + store i64 %"$consume_550", i64* @_gasrem, align 8 + store %Int64 zeroinitializer, %Int64* %"$res__22", align 8, !dbg !108 + %"$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_551": ; preds = %"$have_gas_547" +"$out_of_gas_553": ; preds = %"$have_gas_549" call void @_out_of_gas() - br label %"$have_gas_552" + br label %"$have_gas_554" -"$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_554": ; preds = %"$out_of_gas_553", %"$have_gas_549" + %"$consume_555" = sub i64 %"$gasrem_551", 1 + store i64 %"$consume_555", i64* @_gasrem, align 8 %"$test__23" = alloca %TName_Bool*, align 8 - %"$gasrem_554" = load i64, i64* @_gasrem, align 8 - %"$gascmp_555" = icmp ugt i64 4, %"$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", 4 - store i64 %"$consume_558", i64* @_gasrem, align 8 - %"$execptr_load_559" = load i8*, i8** @_execptr, align 8 - %"$$res_21_560" = load %Int64, %Int64* %"$res_21", align 8 - %"$$res__22_561" = load %Int64, %Int64* %"$res__22", align 8 - %"$eq_call_562" = call %TName_Bool* @_eq_Int64(i8* %"$execptr_load_559", %Int64 %"$$res_21_560", %Int64 %"$$res__22_561"), !dbg !45 - store %TName_Bool* %"$eq_call_562", %TName_Bool** %"$test__23", align 8, !dbg !45 - %"$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_557" - call void @_out_of_gas() - br label %"$have_gas_567" - -"$have_gas_567": ; preds = %"$out_of_gas_566", %"$have_gas_557" - %"$consume_568" = sub i64 %"$gasrem_564", 1 - store i64 %"$consume_568", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$test__23", metadata !109, metadata !DIExpression()), !dbg !110 + %"$gasrem_556" = load i64, i64* @_gasrem, align 8 + %"$gascmp_557" = icmp ugt i64 4, %"$gasrem_556" + br i1 %"$gascmp_557", label %"$out_of_gas_558", label %"$have_gas_559" + +"$out_of_gas_558": ; preds = %"$have_gas_554" + call void @_out_of_gas() + br label %"$have_gas_559" + +"$have_gas_559": ; preds = %"$out_of_gas_558", %"$have_gas_554" + %"$consume_560" = sub i64 %"$gasrem_556", 4 + store i64 %"$consume_560", i64* @_gasrem, align 8 + %"$execptr_load_561" = load i8*, i8** @_execptr, align 8 + %"$$res_21_562" = load %Int64, %Int64* %"$res_21", align 8 + %"$$res__22_563" = load %Int64, %Int64* %"$res__22", align 8 + %"$eq_call_564" = call %TName_Bool* @_eq_Int64(i8* %"$execptr_load_561", %Int64 %"$$res_21_562", %Int64 %"$$res__22_563"), !dbg !111 + store %TName_Bool* %"$eq_call_564", %TName_Bool** %"$test__23", align 8, !dbg !111 + %"$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_568": ; preds = %"$have_gas_559" + call void @_out_of_gas() + br label %"$have_gas_569" + +"$have_gas_569": ; preds = %"$out_of_gas_568", %"$have_gas_559" + %"$consume_570" = sub i64 %"$gasrem_566", 1 + store i64 %"$consume_570", i64* @_gasrem, align 8 %"$BoolUtils.andb_85" = alloca { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, align 8 - %"$BoolUtils.andb_569" = 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_570" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_569", 0 - %"$BoolUtils.andb_envptr_571" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_569", 1 - %"$$test_18_572" = load %TName_Bool*, %TName_Bool** %"$test_18", align 8 - %"$BoolUtils.andb_call_573" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_570"(i8* %"$BoolUtils.andb_envptr_571", %TName_Bool* %"$$test_18_572"), !dbg !46 - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_573", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_85", align 8, !dbg !46 + %"$BoolUtils.andb_571" = 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_572" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_571", 0 + %"$BoolUtils.andb_envptr_573" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_571", 1 + %"$$test_18_574" = load %TName_Bool*, %TName_Bool** %"$test_18", align 8 + %"$BoolUtils.andb_call_575" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_572"(i8* %"$BoolUtils.andb_envptr_573", %TName_Bool* %"$$test_18_574"), !dbg !112 + store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_575", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_85", align 8, !dbg !112 %"$BoolUtils.andb_86" = alloca %TName_Bool*, align 8 - %"$$BoolUtils.andb_85_574" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_85", align 8 - %"$$BoolUtils.andb_85_fptr_575" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_85_574", 0 - %"$$BoolUtils.andb_85_envptr_576" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_85_574", 1 - %"$$test__23_577" = load %TName_Bool*, %TName_Bool** %"$test__23", align 8 - %"$$BoolUtils.andb_85_call_578" = call %TName_Bool* %"$$BoolUtils.andb_85_fptr_575"(i8* %"$$BoolUtils.andb_85_envptr_576", %TName_Bool* %"$$test__23_577"), !dbg !46 - store %TName_Bool* %"$$BoolUtils.andb_85_call_578", %TName_Bool** %"$BoolUtils.andb_86", align 8, !dbg !46 - %"$$BoolUtils.andb_86_579" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_86", align 8 - store %TName_Bool* %"$$BoolUtils.andb_86_579", %TName_Bool** %"$test_24", align 8, !dbg !46 - %"$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_582": ; preds = %"$have_gas_567" - call void @_out_of_gas() - br label %"$have_gas_583" - -"$have_gas_583": ; preds = %"$out_of_gas_582", %"$have_gas_567" - %"$consume_584" = sub i64 %"$gasrem_580", 1 - store i64 %"$consume_584", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$BoolUtils.andb_86", metadata !113, metadata !DIExpression()), !dbg !112 + %"$$BoolUtils.andb_85_576" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_85", align 8 + %"$$BoolUtils.andb_85_fptr_577" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_85_576", 0 + %"$$BoolUtils.andb_85_envptr_578" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_85_576", 1 + %"$$test__23_579" = load %TName_Bool*, %TName_Bool** %"$test__23", align 8 + %"$$BoolUtils.andb_85_call_580" = call %TName_Bool* %"$$BoolUtils.andb_85_fptr_577"(i8* %"$$BoolUtils.andb_85_envptr_578", %TName_Bool* %"$$test__23_579"), !dbg !112 + store %TName_Bool* %"$$BoolUtils.andb_85_call_580", %TName_Bool** %"$BoolUtils.andb_86", align 8, !dbg !112 + %"$$BoolUtils.andb_86_581" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_86", align 8 + store %TName_Bool* %"$$BoolUtils.andb_86_581", %TName_Bool** %"$test_24", align 8, !dbg !112 + %"$gasrem_582" = load i64, i64* @_gasrem, align 8 + %"$gascmp_583" = icmp ugt i64 1, %"$gasrem_582" + br i1 %"$gascmp_583", label %"$out_of_gas_584", label %"$have_gas_585" + +"$out_of_gas_584": ; preds = %"$have_gas_569" + call void @_out_of_gas() + br label %"$have_gas_585" + +"$have_gas_585": ; preds = %"$out_of_gas_584", %"$have_gas_569" + %"$consume_586" = sub i64 %"$gasrem_582", 1 + store i64 %"$consume_586", i64* @_gasrem, align 8 %"$arg1_25" = alloca %Int64, 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" + call void @llvm.dbg.declare(metadata %Int64* %"$arg1_25", metadata !114, metadata !DIExpression()), !dbg !115 + %"$gasrem_587" = load i64, i64* @_gasrem, align 8 + %"$gascmp_588" = icmp ugt i64 1, %"$gasrem_587" + br i1 %"$gascmp_588", label %"$out_of_gas_589", label %"$have_gas_590" -"$out_of_gas_587": ; preds = %"$have_gas_583" +"$out_of_gas_589": ; preds = %"$have_gas_585" call void @_out_of_gas() - br label %"$have_gas_588" + br label %"$have_gas_590" -"$have_gas_588": ; preds = %"$out_of_gas_587", %"$have_gas_583" - %"$consume_589" = sub i64 %"$gasrem_585", 1 - store i64 %"$consume_589", i64* @_gasrem, align 8 - store %Int64 { i64 9223372036854775806 }, %Int64* %"$arg1_25", align 8, !dbg !47 - %"$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" +"$have_gas_590": ; preds = %"$out_of_gas_589", %"$have_gas_585" + %"$consume_591" = sub i64 %"$gasrem_587", 1 + store i64 %"$consume_591", i64* @_gasrem, align 8 + store %Int64 { i64 9223372036854775806 }, %Int64* %"$arg1_25", align 8, !dbg !116 + %"$gasrem_592" = load i64, i64* @_gasrem, align 8 + %"$gascmp_593" = icmp ugt i64 1, %"$gasrem_592" + br i1 %"$gascmp_593", label %"$out_of_gas_594", label %"$have_gas_595" -"$out_of_gas_592": ; preds = %"$have_gas_588" +"$out_of_gas_594": ; preds = %"$have_gas_590" call void @_out_of_gas() - br label %"$have_gas_593" + br label %"$have_gas_595" -"$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 +"$have_gas_595": ; preds = %"$out_of_gas_594", %"$have_gas_590" + %"$consume_596" = sub i64 %"$gasrem_592", 1 + store i64 %"$consume_596", i64* @_gasrem, align 8 %"$arg2_26" = alloca %Int64, 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" + call void @llvm.dbg.declare(metadata %Int64* %"$arg2_26", metadata !117, metadata !DIExpression()), !dbg !118 + %"$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_597": ; preds = %"$have_gas_593" +"$out_of_gas_599": ; preds = %"$have_gas_595" call void @_out_of_gas() - br label %"$have_gas_598" + br label %"$have_gas_600" -"$have_gas_598": ; preds = %"$out_of_gas_597", %"$have_gas_593" - %"$consume_599" = sub i64 %"$gasrem_595", 1 - store i64 %"$consume_599", i64* @_gasrem, align 8 - store %Int64 { i64 -1 }, %Int64* %"$arg2_26", align 8, !dbg !48 - %"$gasrem_600" = load i64, i64* @_gasrem, align 8 - %"$gascmp_601" = icmp ugt i64 1, %"$gasrem_600" - br i1 %"$gascmp_601", label %"$out_of_gas_602", label %"$have_gas_603" +"$have_gas_600": ; preds = %"$out_of_gas_599", %"$have_gas_595" + %"$consume_601" = sub i64 %"$gasrem_597", 1 + store i64 %"$consume_601", i64* @_gasrem, align 8 + store %Int64 { i64 -1 }, %Int64* %"$arg2_26", align 8, !dbg !119 + %"$gasrem_602" = load i64, i64* @_gasrem, align 8 + %"$gascmp_603" = icmp ugt i64 1, %"$gasrem_602" + br i1 %"$gascmp_603", label %"$out_of_gas_604", label %"$have_gas_605" -"$out_of_gas_602": ; preds = %"$have_gas_598" +"$out_of_gas_604": ; preds = %"$have_gas_600" call void @_out_of_gas() - br label %"$have_gas_603" + br label %"$have_gas_605" -"$have_gas_603": ; preds = %"$out_of_gas_602", %"$have_gas_598" - %"$consume_604" = sub i64 %"$gasrem_600", 1 - store i64 %"$consume_604", i64* @_gasrem, align 8 +"$have_gas_605": ; preds = %"$out_of_gas_604", %"$have_gas_600" + %"$consume_606" = sub i64 %"$gasrem_602", 1 + store i64 %"$consume_606", i64* @_gasrem, align 8 %"$test_30" = alloca %TName_Bool*, align 8 - %"$gasrem_605" = load i64, i64* @_gasrem, align 8 - %"$gascmp_606" = icmp ugt i64 1, %"$gasrem_605" - br i1 %"$gascmp_606", label %"$out_of_gas_607", label %"$have_gas_608" + call void @llvm.dbg.declare(metadata %TName_Bool** %"$test_30", metadata !120, metadata !DIExpression()), !dbg !121 + %"$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" -"$out_of_gas_607": ; preds = %"$have_gas_603" +"$out_of_gas_609": ; preds = %"$have_gas_605" call void @_out_of_gas() - br label %"$have_gas_608" + br label %"$have_gas_610" -"$have_gas_608": ; preds = %"$out_of_gas_607", %"$have_gas_603" - %"$consume_609" = sub i64 %"$gasrem_605", 1 - store i64 %"$consume_609", i64* @_gasrem, align 8 +"$have_gas_610": ; preds = %"$out_of_gas_609", %"$have_gas_605" + %"$consume_611" = sub i64 %"$gasrem_607", 1 + store i64 %"$consume_611", i64* @_gasrem, align 8 %"$res_27" = alloca %Int64, align 8 - %"$gasrem_610" = load i64, i64* @_gasrem, align 8 - %"$gascmp_611" = icmp ugt i64 4, %"$gasrem_610" - br i1 %"$gascmp_611", label %"$out_of_gas_612", label %"$have_gas_613" + call void @llvm.dbg.declare(metadata %Int64* %"$res_27", metadata !122, metadata !DIExpression()), !dbg !123 + %"$gasrem_612" = load i64, i64* @_gasrem, align 8 + %"$gascmp_613" = icmp ugt i64 4, %"$gasrem_612" + br i1 %"$gascmp_613", label %"$out_of_gas_614", label %"$have_gas_615" -"$out_of_gas_612": ; preds = %"$have_gas_608" +"$out_of_gas_614": ; preds = %"$have_gas_610" call void @_out_of_gas() - br label %"$have_gas_613" + br label %"$have_gas_615" -"$have_gas_613": ; preds = %"$out_of_gas_612", %"$have_gas_608" - %"$consume_614" = sub i64 %"$gasrem_610", 4 - store i64 %"$consume_614", i64* @_gasrem, align 8 - %"$$arg1_25_615" = load %Int64, %Int64* %"$arg1_25", align 8 - %"$$arg2_26_616" = load %Int64, %Int64* %"$arg2_26", align 8 - %"$sub_call_617" = call %Int64 @_sub_Int64(%Int64 %"$$arg1_25_615", %Int64 %"$$arg2_26_616"), !dbg !49 - store %Int64 %"$sub_call_617", %Int64* %"$res_27", align 8, !dbg !49 - %"$gasrem_618" = load i64, i64* @_gasrem, align 8 - %"$gascmp_619" = icmp ugt i64 1, %"$gasrem_618" - br i1 %"$gascmp_619", label %"$out_of_gas_620", label %"$have_gas_621" +"$have_gas_615": ; preds = %"$out_of_gas_614", %"$have_gas_610" + %"$consume_616" = sub i64 %"$gasrem_612", 4 + store i64 %"$consume_616", i64* @_gasrem, align 8 + %"$$arg1_25_617" = load %Int64, %Int64* %"$arg1_25", align 8 + %"$$arg2_26_618" = load %Int64, %Int64* %"$arg2_26", align 8 + %"$sub_call_619" = call %Int64 @_sub_Int64(%Int64 %"$$arg1_25_617", %Int64 %"$$arg2_26_618"), !dbg !124 + store %Int64 %"$sub_call_619", %Int64* %"$res_27", align 8, !dbg !124 + %"$gasrem_620" = load i64, i64* @_gasrem, align 8 + %"$gascmp_621" = icmp ugt i64 1, %"$gasrem_620" + br i1 %"$gascmp_621", label %"$out_of_gas_622", label %"$have_gas_623" -"$out_of_gas_620": ; preds = %"$have_gas_613" +"$out_of_gas_622": ; preds = %"$have_gas_615" call void @_out_of_gas() - br label %"$have_gas_621" + br label %"$have_gas_623" -"$have_gas_621": ; preds = %"$out_of_gas_620", %"$have_gas_613" - %"$consume_622" = sub i64 %"$gasrem_618", 1 - store i64 %"$consume_622", i64* @_gasrem, align 8 +"$have_gas_623": ; preds = %"$out_of_gas_622", %"$have_gas_615" + %"$consume_624" = sub i64 %"$gasrem_620", 1 + store i64 %"$consume_624", i64* @_gasrem, align 8 %"$res__28" = alloca %Int64, align 8 - %"$gasrem_623" = load i64, i64* @_gasrem, align 8 - %"$gascmp_624" = icmp ugt i64 1, %"$gasrem_623" - br i1 %"$gascmp_624", label %"$out_of_gas_625", label %"$have_gas_626" + call void @llvm.dbg.declare(metadata %Int64* %"$res__28", metadata !125, metadata !DIExpression()), !dbg !126 + %"$gasrem_625" = load i64, i64* @_gasrem, align 8 + %"$gascmp_626" = icmp ugt i64 1, %"$gasrem_625" + br i1 %"$gascmp_626", label %"$out_of_gas_627", label %"$have_gas_628" -"$out_of_gas_625": ; preds = %"$have_gas_621" +"$out_of_gas_627": ; preds = %"$have_gas_623" call void @_out_of_gas() - br label %"$have_gas_626" + br label %"$have_gas_628" -"$have_gas_626": ; preds = %"$out_of_gas_625", %"$have_gas_621" - %"$consume_627" = sub i64 %"$gasrem_623", 1 - store i64 %"$consume_627", i64* @_gasrem, align 8 - store %Int64 { i64 9223372036854775807 }, %Int64* %"$res__28", align 8, !dbg !50 - %"$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" +"$have_gas_628": ; preds = %"$out_of_gas_627", %"$have_gas_623" + %"$consume_629" = sub i64 %"$gasrem_625", 1 + store i64 %"$consume_629", i64* @_gasrem, align 8 + store %Int64 { i64 9223372036854775807 }, %Int64* %"$res__28", align 8, !dbg !127 + %"$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_630": ; preds = %"$have_gas_626" +"$out_of_gas_632": ; preds = %"$have_gas_628" call void @_out_of_gas() - br label %"$have_gas_631" + br label %"$have_gas_633" -"$have_gas_631": ; preds = %"$out_of_gas_630", %"$have_gas_626" - %"$consume_632" = sub i64 %"$gasrem_628", 1 - store i64 %"$consume_632", i64* @_gasrem, align 8 +"$have_gas_633": ; preds = %"$out_of_gas_632", %"$have_gas_628" + %"$consume_634" = sub i64 %"$gasrem_630", 1 + store i64 %"$consume_634", i64* @_gasrem, align 8 %"$test__29" = alloca %TName_Bool*, align 8 - %"$gasrem_633" = load i64, i64* @_gasrem, align 8 - %"$gascmp_634" = icmp ugt i64 4, %"$gasrem_633" - br i1 %"$gascmp_634", label %"$out_of_gas_635", label %"$have_gas_636" - -"$out_of_gas_635": ; preds = %"$have_gas_631" - call void @_out_of_gas() - br label %"$have_gas_636" - -"$have_gas_636": ; preds = %"$out_of_gas_635", %"$have_gas_631" - %"$consume_637" = sub i64 %"$gasrem_633", 4 - store i64 %"$consume_637", i64* @_gasrem, align 8 - %"$execptr_load_638" = load i8*, i8** @_execptr, align 8 - %"$$res_27_639" = load %Int64, %Int64* %"$res_27", align 8 - %"$$res__28_640" = load %Int64, %Int64* %"$res__28", align 8 - %"$eq_call_641" = call %TName_Bool* @_eq_Int64(i8* %"$execptr_load_638", %Int64 %"$$res_27_639", %Int64 %"$$res__28_640"), !dbg !51 - store %TName_Bool* %"$eq_call_641", %TName_Bool** %"$test__29", align 8, !dbg !51 - %"$gasrem_643" = load i64, i64* @_gasrem, align 8 - %"$gascmp_644" = icmp ugt i64 1, %"$gasrem_643" - br i1 %"$gascmp_644", label %"$out_of_gas_645", label %"$have_gas_646" - -"$out_of_gas_645": ; preds = %"$have_gas_636" - call void @_out_of_gas() - br label %"$have_gas_646" - -"$have_gas_646": ; preds = %"$out_of_gas_645", %"$have_gas_636" - %"$consume_647" = sub i64 %"$gasrem_643", 1 - store i64 %"$consume_647", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$test__29", metadata !128, metadata !DIExpression()), !dbg !129 + %"$gasrem_635" = load i64, i64* @_gasrem, align 8 + %"$gascmp_636" = icmp ugt i64 4, %"$gasrem_635" + br i1 %"$gascmp_636", label %"$out_of_gas_637", label %"$have_gas_638" + +"$out_of_gas_637": ; preds = %"$have_gas_633" + call void @_out_of_gas() + br label %"$have_gas_638" + +"$have_gas_638": ; preds = %"$out_of_gas_637", %"$have_gas_633" + %"$consume_639" = sub i64 %"$gasrem_635", 4 + store i64 %"$consume_639", i64* @_gasrem, align 8 + %"$execptr_load_640" = load i8*, i8** @_execptr, align 8 + %"$$res_27_641" = load %Int64, %Int64* %"$res_27", align 8 + %"$$res__28_642" = load %Int64, %Int64* %"$res__28", align 8 + %"$eq_call_643" = call %TName_Bool* @_eq_Int64(i8* %"$execptr_load_640", %Int64 %"$$res_27_641", %Int64 %"$$res__28_642"), !dbg !130 + store %TName_Bool* %"$eq_call_643", %TName_Bool** %"$test__29", align 8, !dbg !130 + %"$gasrem_645" = load i64, i64* @_gasrem, align 8 + %"$gascmp_646" = icmp ugt i64 1, %"$gasrem_645" + br i1 %"$gascmp_646", label %"$out_of_gas_647", label %"$have_gas_648" + +"$out_of_gas_647": ; preds = %"$have_gas_638" + call void @_out_of_gas() + br label %"$have_gas_648" + +"$have_gas_648": ; preds = %"$out_of_gas_647", %"$have_gas_638" + %"$consume_649" = sub i64 %"$gasrem_645", 1 + store i64 %"$consume_649", i64* @_gasrem, align 8 %"$BoolUtils.andb_87" = alloca { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, align 8 - %"$BoolUtils.andb_648" = 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_649" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_648", 0 - %"$BoolUtils.andb_envptr_650" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_648", 1 - %"$$test_24_651" = load %TName_Bool*, %TName_Bool** %"$test_24", align 8 - %"$BoolUtils.andb_call_652" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_649"(i8* %"$BoolUtils.andb_envptr_650", %TName_Bool* %"$$test_24_651"), !dbg !52 - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_652", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_87", align 8, !dbg !52 + %"$BoolUtils.andb_650" = 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_651" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_650", 0 + %"$BoolUtils.andb_envptr_652" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_650", 1 + %"$$test_24_653" = load %TName_Bool*, %TName_Bool** %"$test_24", align 8 + %"$BoolUtils.andb_call_654" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_651"(i8* %"$BoolUtils.andb_envptr_652", %TName_Bool* %"$$test_24_653"), !dbg !131 + store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_654", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_87", align 8, !dbg !131 %"$BoolUtils.andb_88" = alloca %TName_Bool*, align 8 - %"$$BoolUtils.andb_87_653" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_87", align 8 - %"$$BoolUtils.andb_87_fptr_654" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_87_653", 0 - %"$$BoolUtils.andb_87_envptr_655" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_87_653", 1 - %"$$test__29_656" = load %TName_Bool*, %TName_Bool** %"$test__29", align 8 - %"$$BoolUtils.andb_87_call_657" = call %TName_Bool* %"$$BoolUtils.andb_87_fptr_654"(i8* %"$$BoolUtils.andb_87_envptr_655", %TName_Bool* %"$$test__29_656"), !dbg !52 - store %TName_Bool* %"$$BoolUtils.andb_87_call_657", %TName_Bool** %"$BoolUtils.andb_88", align 8, !dbg !52 - %"$$BoolUtils.andb_88_658" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_88", align 8 - store %TName_Bool* %"$$BoolUtils.andb_88_658", %TName_Bool** %"$test_30", align 8, !dbg !52 - %"$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_646" - call void @_out_of_gas() - br label %"$have_gas_662" - -"$have_gas_662": ; preds = %"$out_of_gas_661", %"$have_gas_646" - %"$consume_663" = sub i64 %"$gasrem_659", 1 - store i64 %"$consume_663", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$BoolUtils.andb_88", metadata !132, metadata !DIExpression()), !dbg !131 + %"$$BoolUtils.andb_87_655" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_87", align 8 + %"$$BoolUtils.andb_87_fptr_656" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_87_655", 0 + %"$$BoolUtils.andb_87_envptr_657" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_87_655", 1 + %"$$test__29_658" = load %TName_Bool*, %TName_Bool** %"$test__29", align 8 + %"$$BoolUtils.andb_87_call_659" = call %TName_Bool* %"$$BoolUtils.andb_87_fptr_656"(i8* %"$$BoolUtils.andb_87_envptr_657", %TName_Bool* %"$$test__29_658"), !dbg !131 + store %TName_Bool* %"$$BoolUtils.andb_87_call_659", %TName_Bool** %"$BoolUtils.andb_88", align 8, !dbg !131 + %"$$BoolUtils.andb_88_660" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_88", align 8 + store %TName_Bool* %"$$BoolUtils.andb_88_660", %TName_Bool** %"$test_30", align 8, !dbg !131 + %"$gasrem_661" = load i64, i64* @_gasrem, align 8 + %"$gascmp_662" = icmp ugt i64 1, %"$gasrem_661" + br i1 %"$gascmp_662", label %"$out_of_gas_663", label %"$have_gas_664" + +"$out_of_gas_663": ; preds = %"$have_gas_648" + call void @_out_of_gas() + br label %"$have_gas_664" + +"$have_gas_664": ; preds = %"$out_of_gas_663", %"$have_gas_648" + %"$consume_665" = sub i64 %"$gasrem_661", 1 + store i64 %"$consume_665", i64* @_gasrem, align 8 %"$arg1_31" = alloca %Uint128, align 8 - %"$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" + call void @llvm.dbg.declare(metadata %Uint128* %"$arg1_31", metadata !133, metadata !DIExpression()), !dbg !135 + %"$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_666": ; preds = %"$have_gas_662" +"$out_of_gas_668": ; preds = %"$have_gas_664" call void @_out_of_gas() - br label %"$have_gas_667" + br label %"$have_gas_669" -"$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 %Uint128 { i128 -1 }, %Uint128* %"$arg1_31", align 8, !dbg !53 - %"$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" +"$have_gas_669": ; preds = %"$out_of_gas_668", %"$have_gas_664" + %"$consume_670" = sub i64 %"$gasrem_666", 1 + store i64 %"$consume_670", i64* @_gasrem, align 8 + store %Uint128 { i128 -1 }, %Uint128* %"$arg1_31", align 8, !dbg !136 + %"$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_671": ; preds = %"$have_gas_667" +"$out_of_gas_673": ; preds = %"$have_gas_669" call void @_out_of_gas() - br label %"$have_gas_672" + br label %"$have_gas_674" -"$have_gas_672": ; preds = %"$out_of_gas_671", %"$have_gas_667" - %"$consume_673" = sub i64 %"$gasrem_669", 1 - store i64 %"$consume_673", i64* @_gasrem, align 8 +"$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 %"$arg2_32" = alloca %Uint128, 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" + call void @llvm.dbg.declare(metadata %Uint128* %"$arg2_32", metadata !137, metadata !DIExpression()), !dbg !138 + %"$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_676": ; preds = %"$have_gas_672" +"$out_of_gas_678": ; preds = %"$have_gas_674" call void @_out_of_gas() - br label %"$have_gas_677" + br label %"$have_gas_679" -"$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 - store %Uint128 { i128 1 }, %Uint128* %"$arg2_32", align 8, !dbg !54 - %"$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" +"$have_gas_679": ; preds = %"$out_of_gas_678", %"$have_gas_674" + %"$consume_680" = sub i64 %"$gasrem_676", 1 + store i64 %"$consume_680", i64* @_gasrem, align 8 + store %Uint128 { i128 1 }, %Uint128* %"$arg2_32", align 8, !dbg !139 + %"$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_681": ; preds = %"$have_gas_677" +"$out_of_gas_683": ; preds = %"$have_gas_679" call void @_out_of_gas() - br label %"$have_gas_682" + br label %"$have_gas_684" -"$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 +"$have_gas_684": ; preds = %"$out_of_gas_683", %"$have_gas_679" + %"$consume_685" = sub i64 %"$gasrem_681", 1 + store i64 %"$consume_685", i64* @_gasrem, align 8 %"$test_36" = alloca %TName_Bool*, align 8 - %"$gasrem_684" = load i64, i64* @_gasrem, align 8 - %"$gascmp_685" = icmp ugt i64 1, %"$gasrem_684" - br i1 %"$gascmp_685", label %"$out_of_gas_686", label %"$have_gas_687" + call void @llvm.dbg.declare(metadata %TName_Bool** %"$test_36", metadata !140, metadata !DIExpression()), !dbg !141 + %"$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_686": ; preds = %"$have_gas_682" +"$out_of_gas_688": ; preds = %"$have_gas_684" call void @_out_of_gas() - br label %"$have_gas_687" + br label %"$have_gas_689" -"$have_gas_687": ; preds = %"$out_of_gas_686", %"$have_gas_682" - %"$consume_688" = sub i64 %"$gasrem_684", 1 - store i64 %"$consume_688", i64* @_gasrem, align 8 +"$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 %"$res_33" = alloca %Uint128, align 8 - %"$gasrem_690" = load i64, i64* @_gasrem, align 8 - %"$gascmp_691" = icmp ugt i64 8, %"$gasrem_690" - br i1 %"$gascmp_691", label %"$out_of_gas_692", label %"$have_gas_693" + call void @llvm.dbg.declare(metadata %Uint128* %"$res_33", metadata !142, metadata !DIExpression()), !dbg !143 + %"$gasrem_692" = load i64, i64* @_gasrem, align 8 + %"$gascmp_693" = icmp ugt i64 8, %"$gasrem_692" + br i1 %"$gascmp_693", label %"$out_of_gas_694", label %"$have_gas_695" -"$out_of_gas_692": ; preds = %"$have_gas_687" +"$out_of_gas_694": ; preds = %"$have_gas_689" call void @_out_of_gas() - br label %"$have_gas_693" + br label %"$have_gas_695" -"$have_gas_693": ; preds = %"$out_of_gas_692", %"$have_gas_687" - %"$consume_694" = sub i64 %"$gasrem_690", 8 - store i64 %"$consume_694", i64* @_gasrem, align 8 - %"$$arg1_31_695" = load %Uint128, %Uint128* %"$arg1_31", align 8 - %"$$arg2_32_696" = load %Uint128, %Uint128* %"$arg2_32", align 8 - %"$sub_call_697" = call %Uint128 @_sub_Uint128(%Uint128 %"$$arg1_31_695", %Uint128 %"$$arg2_32_696"), !dbg !55 - store %Uint128 %"$sub_call_697", %Uint128* %"$res_33", align 8, !dbg !55 - %"$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" +"$have_gas_695": ; preds = %"$out_of_gas_694", %"$have_gas_689" + %"$consume_696" = sub i64 %"$gasrem_692", 8 + store i64 %"$consume_696", i64* @_gasrem, align 8 + %"$$arg1_31_697" = load %Uint128, %Uint128* %"$arg1_31", align 8 + %"$$arg2_32_698" = load %Uint128, %Uint128* %"$arg2_32", align 8 + %"$sub_call_699" = call %Uint128 @_sub_Uint128(%Uint128 %"$$arg1_31_697", %Uint128 %"$$arg2_32_698"), !dbg !144 + store %Uint128 %"$sub_call_699", %Uint128* %"$res_33", align 8, !dbg !144 + %"$gasrem_700" = load i64, i64* @_gasrem, align 8 + %"$gascmp_701" = icmp ugt i64 1, %"$gasrem_700" + br i1 %"$gascmp_701", label %"$out_of_gas_702", label %"$have_gas_703" -"$out_of_gas_700": ; preds = %"$have_gas_693" +"$out_of_gas_702": ; preds = %"$have_gas_695" call void @_out_of_gas() - br label %"$have_gas_701" + br label %"$have_gas_703" -"$have_gas_701": ; preds = %"$out_of_gas_700", %"$have_gas_693" - %"$consume_702" = sub i64 %"$gasrem_698", 1 - store i64 %"$consume_702", i64* @_gasrem, align 8 +"$have_gas_703": ; preds = %"$out_of_gas_702", %"$have_gas_695" + %"$consume_704" = sub i64 %"$gasrem_700", 1 + store i64 %"$consume_704", i64* @_gasrem, align 8 %"$res__34" = alloca %Uint128, 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" + call void @llvm.dbg.declare(metadata %Uint128* %"$res__34", metadata !145, metadata !DIExpression()), !dbg !146 + %"$gasrem_705" = load i64, i64* @_gasrem, align 8 + %"$gascmp_706" = icmp ugt i64 1, %"$gasrem_705" + br i1 %"$gascmp_706", label %"$out_of_gas_707", label %"$have_gas_708" -"$out_of_gas_705": ; preds = %"$have_gas_701" +"$out_of_gas_707": ; preds = %"$have_gas_703" call void @_out_of_gas() - br label %"$have_gas_706" + br label %"$have_gas_708" -"$have_gas_706": ; preds = %"$out_of_gas_705", %"$have_gas_701" - %"$consume_707" = sub i64 %"$gasrem_703", 1 - store i64 %"$consume_707", i64* @_gasrem, align 8 - store %Uint128 { i128 -2 }, %Uint128* %"$res__34", align 8, !dbg !56 - %"$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" +"$have_gas_708": ; preds = %"$out_of_gas_707", %"$have_gas_703" + %"$consume_709" = sub i64 %"$gasrem_705", 1 + store i64 %"$consume_709", i64* @_gasrem, align 8 + store %Uint128 { i128 -2 }, %Uint128* %"$res__34", align 8, !dbg !147 + %"$gasrem_710" = load i64, i64* @_gasrem, align 8 + %"$gascmp_711" = icmp ugt i64 1, %"$gasrem_710" + br i1 %"$gascmp_711", label %"$out_of_gas_712", label %"$have_gas_713" -"$out_of_gas_710": ; preds = %"$have_gas_706" +"$out_of_gas_712": ; preds = %"$have_gas_708" call void @_out_of_gas() - br label %"$have_gas_711" + br label %"$have_gas_713" -"$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 +"$have_gas_713": ; preds = %"$out_of_gas_712", %"$have_gas_708" + %"$consume_714" = sub i64 %"$gasrem_710", 1 + store i64 %"$consume_714", i64* @_gasrem, align 8 %"$test__35" = alloca %TName_Bool*, align 8 - %"$gasrem_714" = load i64, i64* @_gasrem, align 8 - %"$gascmp_715" = icmp ugt i64 8, %"$gasrem_714" - br i1 %"$gascmp_715", label %"$out_of_gas_716", label %"$have_gas_717" - -"$out_of_gas_716": ; preds = %"$have_gas_711" - call void @_out_of_gas() - br label %"$have_gas_717" - -"$have_gas_717": ; preds = %"$out_of_gas_716", %"$have_gas_711" - %"$consume_718" = sub i64 %"$gasrem_714", 8 - store i64 %"$consume_718", i64* @_gasrem, align 8 - %"$execptr_load_719" = load i8*, i8** @_execptr, align 8 - %"$$res_33_720" = load %Uint128, %Uint128* %"$res_33", align 8 - %"$$res__34_721" = load %Uint128, %Uint128* %"$res__34", align 8 - %"$eq_call_722" = call %TName_Bool* @_eq_Uint128(i8* %"$execptr_load_719", %Uint128 %"$$res_33_720", %Uint128 %"$$res__34_721"), !dbg !57 - store %TName_Bool* %"$eq_call_722", %TName_Bool** %"$test__35", align 8, !dbg !57 - %"$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_717" - call void @_out_of_gas() - br label %"$have_gas_727" - -"$have_gas_727": ; preds = %"$out_of_gas_726", %"$have_gas_717" - %"$consume_728" = sub i64 %"$gasrem_724", 1 - store i64 %"$consume_728", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$test__35", metadata !148, metadata !DIExpression()), !dbg !149 + %"$gasrem_716" = load i64, i64* @_gasrem, align 8 + %"$gascmp_717" = icmp ugt i64 8, %"$gasrem_716" + br i1 %"$gascmp_717", label %"$out_of_gas_718", label %"$have_gas_719" + +"$out_of_gas_718": ; preds = %"$have_gas_713" + call void @_out_of_gas() + br label %"$have_gas_719" + +"$have_gas_719": ; preds = %"$out_of_gas_718", %"$have_gas_713" + %"$consume_720" = sub i64 %"$gasrem_716", 8 + store i64 %"$consume_720", i64* @_gasrem, align 8 + %"$execptr_load_721" = load i8*, i8** @_execptr, align 8 + %"$$res_33_722" = load %Uint128, %Uint128* %"$res_33", align 8 + %"$$res__34_723" = load %Uint128, %Uint128* %"$res__34", align 8 + %"$eq_call_724" = call %TName_Bool* @_eq_Uint128(i8* %"$execptr_load_721", %Uint128 %"$$res_33_722", %Uint128 %"$$res__34_723"), !dbg !150 + store %TName_Bool* %"$eq_call_724", %TName_Bool** %"$test__35", align 8, !dbg !150 + %"$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 %"$BoolUtils.andb_89" = alloca { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, align 8 - %"$BoolUtils.andb_729" = 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_730" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_729", 0 - %"$BoolUtils.andb_envptr_731" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_729", 1 - %"$$test_30_732" = load %TName_Bool*, %TName_Bool** %"$test_30", align 8 - %"$BoolUtils.andb_call_733" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_730"(i8* %"$BoolUtils.andb_envptr_731", %TName_Bool* %"$$test_30_732"), !dbg !58 - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_733", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_89", align 8, !dbg !58 + %"$BoolUtils.andb_731" = 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_732" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_731", 0 + %"$BoolUtils.andb_envptr_733" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_731", 1 + %"$$test_30_734" = load %TName_Bool*, %TName_Bool** %"$test_30", align 8 + %"$BoolUtils.andb_call_735" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_732"(i8* %"$BoolUtils.andb_envptr_733", %TName_Bool* %"$$test_30_734"), !dbg !151 + store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_735", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_89", align 8, !dbg !151 %"$BoolUtils.andb_90" = alloca %TName_Bool*, align 8 - %"$$BoolUtils.andb_89_734" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_89", align 8 - %"$$BoolUtils.andb_89_fptr_735" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_89_734", 0 - %"$$BoolUtils.andb_89_envptr_736" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_89_734", 1 - %"$$test__35_737" = load %TName_Bool*, %TName_Bool** %"$test__35", align 8 - %"$$BoolUtils.andb_89_call_738" = call %TName_Bool* %"$$BoolUtils.andb_89_fptr_735"(i8* %"$$BoolUtils.andb_89_envptr_736", %TName_Bool* %"$$test__35_737"), !dbg !58 - store %TName_Bool* %"$$BoolUtils.andb_89_call_738", %TName_Bool** %"$BoolUtils.andb_90", align 8, !dbg !58 - %"$$BoolUtils.andb_90_739" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_90", align 8 - store %TName_Bool* %"$$BoolUtils.andb_90_739", %TName_Bool** %"$test_36", align 8, !dbg !58 - %"$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 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$BoolUtils.andb_90", metadata !152, metadata !DIExpression()), !dbg !151 + %"$$BoolUtils.andb_89_736" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_89", align 8 + %"$$BoolUtils.andb_89_fptr_737" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_89_736", 0 + %"$$BoolUtils.andb_89_envptr_738" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_89_736", 1 + %"$$test__35_739" = load %TName_Bool*, %TName_Bool** %"$test__35", align 8 + %"$$BoolUtils.andb_89_call_740" = call %TName_Bool* %"$$BoolUtils.andb_89_fptr_737"(i8* %"$$BoolUtils.andb_89_envptr_738", %TName_Bool* %"$$test__35_739"), !dbg !151 + store %TName_Bool* %"$$BoolUtils.andb_89_call_740", %TName_Bool** %"$BoolUtils.andb_90", align 8, !dbg !151 + %"$$BoolUtils.andb_90_741" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_90", align 8 + store %TName_Bool* %"$$BoolUtils.andb_90_741", %TName_Bool** %"$test_36", align 8, !dbg !151 + %"$gasrem_742" = load i64, i64* @_gasrem, align 8 + %"$gascmp_743" = icmp ugt i64 1, %"$gasrem_742" + br i1 %"$gascmp_743", label %"$out_of_gas_744", label %"$have_gas_745" + +"$out_of_gas_744": ; preds = %"$have_gas_729" + call void @_out_of_gas() + br label %"$have_gas_745" + +"$have_gas_745": ; preds = %"$out_of_gas_744", %"$have_gas_729" + %"$consume_746" = sub i64 %"$gasrem_742", 1 + store i64 %"$consume_746", i64* @_gasrem, align 8 %"$arg1_37" = alloca %Uint128, 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" + call void @llvm.dbg.declare(metadata %Uint128* %"$arg1_37", metadata !153, metadata !DIExpression()), !dbg !154 + %"$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_747": ; preds = %"$have_gas_743" +"$out_of_gas_749": ; preds = %"$have_gas_745" call void @_out_of_gas() - br label %"$have_gas_748" + br label %"$have_gas_750" -"$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 %Uint128 { i128 -1 }, %Uint128* %"$arg1_37", align 8, !dbg !59 - %"$gasrem_750" = load i64, i64* @_gasrem, align 8 - %"$gascmp_751" = icmp ugt i64 1, %"$gasrem_750" - br i1 %"$gascmp_751", label %"$out_of_gas_752", label %"$have_gas_753" +"$have_gas_750": ; preds = %"$out_of_gas_749", %"$have_gas_745" + %"$consume_751" = sub i64 %"$gasrem_747", 1 + store i64 %"$consume_751", i64* @_gasrem, align 8 + store %Uint128 { i128 -1 }, %Uint128* %"$arg1_37", align 8, !dbg !155 + %"$gasrem_752" = load i64, i64* @_gasrem, align 8 + %"$gascmp_753" = icmp ugt i64 1, %"$gasrem_752" + br i1 %"$gascmp_753", label %"$out_of_gas_754", label %"$have_gas_755" -"$out_of_gas_752": ; preds = %"$have_gas_748" +"$out_of_gas_754": ; preds = %"$have_gas_750" call void @_out_of_gas() - br label %"$have_gas_753" + br label %"$have_gas_755" -"$have_gas_753": ; preds = %"$out_of_gas_752", %"$have_gas_748" - %"$consume_754" = sub i64 %"$gasrem_750", 1 - store i64 %"$consume_754", i64* @_gasrem, align 8 +"$have_gas_755": ; preds = %"$out_of_gas_754", %"$have_gas_750" + %"$consume_756" = sub i64 %"$gasrem_752", 1 + store i64 %"$consume_756", i64* @_gasrem, align 8 %"$arg2_38" = alloca %Uint128, align 8 - %"$gasrem_755" = load i64, i64* @_gasrem, align 8 - %"$gascmp_756" = icmp ugt i64 1, %"$gasrem_755" - br i1 %"$gascmp_756", label %"$out_of_gas_757", label %"$have_gas_758" + call void @llvm.dbg.declare(metadata %Uint128* %"$arg2_38", metadata !156, metadata !DIExpression()), !dbg !157 + %"$gasrem_757" = load i64, i64* @_gasrem, align 8 + %"$gascmp_758" = icmp ugt i64 1, %"$gasrem_757" + br i1 %"$gascmp_758", label %"$out_of_gas_759", label %"$have_gas_760" -"$out_of_gas_757": ; preds = %"$have_gas_753" +"$out_of_gas_759": ; preds = %"$have_gas_755" call void @_out_of_gas() - br label %"$have_gas_758" + br label %"$have_gas_760" -"$have_gas_758": ; preds = %"$out_of_gas_757", %"$have_gas_753" - %"$consume_759" = sub i64 %"$gasrem_755", 1 - store i64 %"$consume_759", i64* @_gasrem, align 8 - store %Uint128 zeroinitializer, %Uint128* %"$arg2_38", align 8, !dbg !60 - %"$gasrem_760" = load i64, i64* @_gasrem, align 8 - %"$gascmp_761" = icmp ugt i64 1, %"$gasrem_760" - br i1 %"$gascmp_761", label %"$out_of_gas_762", label %"$have_gas_763" +"$have_gas_760": ; preds = %"$out_of_gas_759", %"$have_gas_755" + %"$consume_761" = sub i64 %"$gasrem_757", 1 + store i64 %"$consume_761", i64* @_gasrem, align 8 + store %Uint128 zeroinitializer, %Uint128* %"$arg2_38", align 8, !dbg !158 + %"$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_762": ; preds = %"$have_gas_758" +"$out_of_gas_764": ; preds = %"$have_gas_760" call void @_out_of_gas() - br label %"$have_gas_763" + br label %"$have_gas_765" -"$have_gas_763": ; preds = %"$out_of_gas_762", %"$have_gas_758" - %"$consume_764" = sub i64 %"$gasrem_760", 1 - store i64 %"$consume_764", i64* @_gasrem, align 8 +"$have_gas_765": ; preds = %"$out_of_gas_764", %"$have_gas_760" + %"$consume_766" = sub i64 %"$gasrem_762", 1 + store i64 %"$consume_766", i64* @_gasrem, align 8 %"$test_42" = alloca %TName_Bool*, align 8 - %"$gasrem_765" = load i64, i64* @_gasrem, align 8 - %"$gascmp_766" = icmp ugt i64 1, %"$gasrem_765" - br i1 %"$gascmp_766", label %"$out_of_gas_767", label %"$have_gas_768" + call void @llvm.dbg.declare(metadata %TName_Bool** %"$test_42", metadata !159, metadata !DIExpression()), !dbg !160 + %"$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_767": ; preds = %"$have_gas_763" +"$out_of_gas_769": ; preds = %"$have_gas_765" call void @_out_of_gas() - br label %"$have_gas_768" + br label %"$have_gas_770" -"$have_gas_768": ; preds = %"$out_of_gas_767", %"$have_gas_763" - %"$consume_769" = sub i64 %"$gasrem_765", 1 - store i64 %"$consume_769", i64* @_gasrem, align 8 +"$have_gas_770": ; preds = %"$out_of_gas_769", %"$have_gas_765" + %"$consume_771" = sub i64 %"$gasrem_767", 1 + store i64 %"$consume_771", i64* @_gasrem, align 8 %"$res_39" = alloca %Uint128, align 8 - %"$gasrem_771" = load i64, i64* @_gasrem, align 8 - %"$gascmp_772" = icmp ugt i64 8, %"$gasrem_771" - br i1 %"$gascmp_772", label %"$out_of_gas_773", label %"$have_gas_774" + call void @llvm.dbg.declare(metadata %Uint128* %"$res_39", metadata !161, metadata !DIExpression()), !dbg !162 + %"$gasrem_773" = load i64, i64* @_gasrem, align 8 + %"$gascmp_774" = icmp ugt i64 8, %"$gasrem_773" + br i1 %"$gascmp_774", label %"$out_of_gas_775", label %"$have_gas_776" -"$out_of_gas_773": ; preds = %"$have_gas_768" +"$out_of_gas_775": ; preds = %"$have_gas_770" call void @_out_of_gas() - br label %"$have_gas_774" + br label %"$have_gas_776" -"$have_gas_774": ; preds = %"$out_of_gas_773", %"$have_gas_768" - %"$consume_775" = sub i64 %"$gasrem_771", 8 - store i64 %"$consume_775", i64* @_gasrem, align 8 - %"$$arg1_37_776" = load %Uint128, %Uint128* %"$arg1_37", align 8 - %"$$arg2_38_777" = load %Uint128, %Uint128* %"$arg2_38", align 8 - %"$sub_call_778" = call %Uint128 @_sub_Uint128(%Uint128 %"$$arg1_37_776", %Uint128 %"$$arg2_38_777"), !dbg !61 - store %Uint128 %"$sub_call_778", %Uint128* %"$res_39", align 8, !dbg !61 - %"$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" +"$have_gas_776": ; preds = %"$out_of_gas_775", %"$have_gas_770" + %"$consume_777" = sub i64 %"$gasrem_773", 8 + store i64 %"$consume_777", i64* @_gasrem, align 8 + %"$$arg1_37_778" = load %Uint128, %Uint128* %"$arg1_37", align 8 + %"$$arg2_38_779" = load %Uint128, %Uint128* %"$arg2_38", align 8 + %"$sub_call_780" = call %Uint128 @_sub_Uint128(%Uint128 %"$$arg1_37_778", %Uint128 %"$$arg2_38_779"), !dbg !163 + store %Uint128 %"$sub_call_780", %Uint128* %"$res_39", align 8, !dbg !163 + %"$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_781": ; preds = %"$have_gas_774" +"$out_of_gas_783": ; preds = %"$have_gas_776" call void @_out_of_gas() - br label %"$have_gas_782" + br label %"$have_gas_784" -"$have_gas_782": ; preds = %"$out_of_gas_781", %"$have_gas_774" - %"$consume_783" = sub i64 %"$gasrem_779", 1 - store i64 %"$consume_783", i64* @_gasrem, align 8 +"$have_gas_784": ; preds = %"$out_of_gas_783", %"$have_gas_776" + %"$consume_785" = sub i64 %"$gasrem_781", 1 + store i64 %"$consume_785", i64* @_gasrem, align 8 %"$res__40" = alloca %Uint128, 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" + call void @llvm.dbg.declare(metadata %Uint128* %"$res__40", metadata !164, metadata !DIExpression()), !dbg !165 + %"$gasrem_786" = load i64, i64* @_gasrem, align 8 + %"$gascmp_787" = icmp ugt i64 1, %"$gasrem_786" + br i1 %"$gascmp_787", label %"$out_of_gas_788", label %"$have_gas_789" -"$out_of_gas_786": ; preds = %"$have_gas_782" +"$out_of_gas_788": ; preds = %"$have_gas_784" call void @_out_of_gas() - br label %"$have_gas_787" + br label %"$have_gas_789" -"$have_gas_787": ; preds = %"$out_of_gas_786", %"$have_gas_782" - %"$consume_788" = sub i64 %"$gasrem_784", 1 - store i64 %"$consume_788", i64* @_gasrem, align 8 - store %Uint128 { i128 -1 }, %Uint128* %"$res__40", align 8, !dbg !62 - %"$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" +"$have_gas_789": ; preds = %"$out_of_gas_788", %"$have_gas_784" + %"$consume_790" = sub i64 %"$gasrem_786", 1 + store i64 %"$consume_790", i64* @_gasrem, align 8 + store %Uint128 { i128 -1 }, %Uint128* %"$res__40", align 8, !dbg !166 + %"$gasrem_791" = load i64, i64* @_gasrem, align 8 + %"$gascmp_792" = icmp ugt i64 1, %"$gasrem_791" + br i1 %"$gascmp_792", label %"$out_of_gas_793", label %"$have_gas_794" -"$out_of_gas_791": ; preds = %"$have_gas_787" +"$out_of_gas_793": ; preds = %"$have_gas_789" call void @_out_of_gas() - br label %"$have_gas_792" + br label %"$have_gas_794" -"$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 +"$have_gas_794": ; preds = %"$out_of_gas_793", %"$have_gas_789" + %"$consume_795" = sub i64 %"$gasrem_791", 1 + store i64 %"$consume_795", i64* @_gasrem, align 8 %"$test__41" = alloca %TName_Bool*, align 8 - %"$gasrem_795" = load i64, i64* @_gasrem, align 8 - %"$gascmp_796" = icmp ugt i64 8, %"$gasrem_795" - br i1 %"$gascmp_796", label %"$out_of_gas_797", label %"$have_gas_798" - -"$out_of_gas_797": ; preds = %"$have_gas_792" - call void @_out_of_gas() - br label %"$have_gas_798" - -"$have_gas_798": ; preds = %"$out_of_gas_797", %"$have_gas_792" - %"$consume_799" = sub i64 %"$gasrem_795", 8 - store i64 %"$consume_799", i64* @_gasrem, align 8 - %"$execptr_load_800" = load i8*, i8** @_execptr, align 8 - %"$$res_39_801" = load %Uint128, %Uint128* %"$res_39", align 8 - %"$$res__40_802" = load %Uint128, %Uint128* %"$res__40", align 8 - %"$eq_call_803" = call %TName_Bool* @_eq_Uint128(i8* %"$execptr_load_800", %Uint128 %"$$res_39_801", %Uint128 %"$$res__40_802"), !dbg !63 - store %TName_Bool* %"$eq_call_803", %TName_Bool** %"$test__41", align 8, !dbg !63 - %"$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_798" - call void @_out_of_gas() - br label %"$have_gas_808" - -"$have_gas_808": ; preds = %"$out_of_gas_807", %"$have_gas_798" - %"$consume_809" = sub i64 %"$gasrem_805", 1 - store i64 %"$consume_809", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$test__41", metadata !167, metadata !DIExpression()), !dbg !168 + %"$gasrem_797" = load i64, i64* @_gasrem, align 8 + %"$gascmp_798" = icmp ugt i64 8, %"$gasrem_797" + br i1 %"$gascmp_798", label %"$out_of_gas_799", label %"$have_gas_800" + +"$out_of_gas_799": ; preds = %"$have_gas_794" + call void @_out_of_gas() + br label %"$have_gas_800" + +"$have_gas_800": ; preds = %"$out_of_gas_799", %"$have_gas_794" + %"$consume_801" = sub i64 %"$gasrem_797", 8 + store i64 %"$consume_801", i64* @_gasrem, align 8 + %"$execptr_load_802" = load i8*, i8** @_execptr, align 8 + %"$$res_39_803" = load %Uint128, %Uint128* %"$res_39", align 8 + %"$$res__40_804" = load %Uint128, %Uint128* %"$res__40", align 8 + %"$eq_call_805" = call %TName_Bool* @_eq_Uint128(i8* %"$execptr_load_802", %Uint128 %"$$res_39_803", %Uint128 %"$$res__40_804"), !dbg !169 + store %TName_Bool* %"$eq_call_805", %TName_Bool** %"$test__41", align 8, !dbg !169 + %"$gasrem_807" = load i64, i64* @_gasrem, align 8 + %"$gascmp_808" = icmp ugt i64 1, %"$gasrem_807" + br i1 %"$gascmp_808", label %"$out_of_gas_809", label %"$have_gas_810" + +"$out_of_gas_809": ; preds = %"$have_gas_800" + call void @_out_of_gas() + br label %"$have_gas_810" + +"$have_gas_810": ; preds = %"$out_of_gas_809", %"$have_gas_800" + %"$consume_811" = sub i64 %"$gasrem_807", 1 + store i64 %"$consume_811", i64* @_gasrem, align 8 %"$BoolUtils.andb_91" = alloca { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, align 8 - %"$BoolUtils.andb_810" = 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_811" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_810", 0 - %"$BoolUtils.andb_envptr_812" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_810", 1 - %"$$test_36_813" = load %TName_Bool*, %TName_Bool** %"$test_36", align 8 - %"$BoolUtils.andb_call_814" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_811"(i8* %"$BoolUtils.andb_envptr_812", %TName_Bool* %"$$test_36_813"), !dbg !64 - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_814", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_91", align 8, !dbg !64 + %"$BoolUtils.andb_812" = 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_813" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_812", 0 + %"$BoolUtils.andb_envptr_814" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_812", 1 + %"$$test_36_815" = load %TName_Bool*, %TName_Bool** %"$test_36", align 8 + %"$BoolUtils.andb_call_816" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_813"(i8* %"$BoolUtils.andb_envptr_814", %TName_Bool* %"$$test_36_815"), !dbg !170 + store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_816", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_91", align 8, !dbg !170 %"$BoolUtils.andb_92" = alloca %TName_Bool*, align 8 - %"$$BoolUtils.andb_91_815" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_91", align 8 - %"$$BoolUtils.andb_91_fptr_816" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_91_815", 0 - %"$$BoolUtils.andb_91_envptr_817" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_91_815", 1 - %"$$test__41_818" = load %TName_Bool*, %TName_Bool** %"$test__41", align 8 - %"$$BoolUtils.andb_91_call_819" = call %TName_Bool* %"$$BoolUtils.andb_91_fptr_816"(i8* %"$$BoolUtils.andb_91_envptr_817", %TName_Bool* %"$$test__41_818"), !dbg !64 - store %TName_Bool* %"$$BoolUtils.andb_91_call_819", %TName_Bool** %"$BoolUtils.andb_92", align 8, !dbg !64 - %"$$BoolUtils.andb_92_820" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_92", align 8 - store %TName_Bool* %"$$BoolUtils.andb_92_820", %TName_Bool** %"$test_42", align 8, !dbg !64 - %"$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_823": ; preds = %"$have_gas_808" - call void @_out_of_gas() - br label %"$have_gas_824" - -"$have_gas_824": ; preds = %"$out_of_gas_823", %"$have_gas_808" - %"$consume_825" = sub i64 %"$gasrem_821", 1 - store i64 %"$consume_825", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$BoolUtils.andb_92", metadata !171, metadata !DIExpression()), !dbg !170 + %"$$BoolUtils.andb_91_817" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_91", align 8 + %"$$BoolUtils.andb_91_fptr_818" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_91_817", 0 + %"$$BoolUtils.andb_91_envptr_819" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_91_817", 1 + %"$$test__41_820" = load %TName_Bool*, %TName_Bool** %"$test__41", align 8 + %"$$BoolUtils.andb_91_call_821" = call %TName_Bool* %"$$BoolUtils.andb_91_fptr_818"(i8* %"$$BoolUtils.andb_91_envptr_819", %TName_Bool* %"$$test__41_820"), !dbg !170 + store %TName_Bool* %"$$BoolUtils.andb_91_call_821", %TName_Bool** %"$BoolUtils.andb_92", align 8, !dbg !170 + %"$$BoolUtils.andb_92_822" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_92", align 8 + store %TName_Bool* %"$$BoolUtils.andb_92_822", %TName_Bool** %"$test_42", align 8, !dbg !170 + %"$gasrem_823" = load i64, i64* @_gasrem, align 8 + %"$gascmp_824" = icmp ugt i64 1, %"$gasrem_823" + br i1 %"$gascmp_824", label %"$out_of_gas_825", label %"$have_gas_826" + +"$out_of_gas_825": ; preds = %"$have_gas_810" + call void @_out_of_gas() + br label %"$have_gas_826" + +"$have_gas_826": ; preds = %"$out_of_gas_825", %"$have_gas_810" + %"$consume_827" = sub i64 %"$gasrem_823", 1 + store i64 %"$consume_827", i64* @_gasrem, align 8 %"$arg1_43" = alloca %Uint256, 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" + call void @llvm.dbg.declare(metadata %Uint256* %"$arg1_43", metadata !172, metadata !DIExpression()), !dbg !174 + %"$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_828": ; preds = %"$have_gas_824" +"$out_of_gas_830": ; preds = %"$have_gas_826" call void @_out_of_gas() - br label %"$have_gas_829" + br label %"$have_gas_831" -"$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 - store %Uint256 { i256 340282366920938463463374607431768211455 }, %Uint256* %"$arg1_43", align 8, !dbg !65 - %"$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" +"$have_gas_831": ; preds = %"$out_of_gas_830", %"$have_gas_826" + %"$consume_832" = sub i64 %"$gasrem_828", 1 + store i64 %"$consume_832", i64* @_gasrem, align 8 + store %Uint256 { i256 340282366920938463463374607431768211455 }, %Uint256* %"$arg1_43", align 8, !dbg !175 + %"$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_833": ; preds = %"$have_gas_829" +"$out_of_gas_835": ; preds = %"$have_gas_831" call void @_out_of_gas() - br label %"$have_gas_834" + br label %"$have_gas_836" -"$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 +"$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 %"$arg2_44" = alloca %Uint256, align 8 - %"$gasrem_836" = load i64, i64* @_gasrem, align 8 - %"$gascmp_837" = icmp ugt i64 1, %"$gasrem_836" - br i1 %"$gascmp_837", label %"$out_of_gas_838", label %"$have_gas_839" + call void @llvm.dbg.declare(metadata %Uint256* %"$arg2_44", metadata !176, metadata !DIExpression()), !dbg !177 + %"$gasrem_838" = load i64, i64* @_gasrem, align 8 + %"$gascmp_839" = icmp ugt i64 1, %"$gasrem_838" + br i1 %"$gascmp_839", label %"$out_of_gas_840", label %"$have_gas_841" -"$out_of_gas_838": ; preds = %"$have_gas_834" +"$out_of_gas_840": ; preds = %"$have_gas_836" call void @_out_of_gas() - br label %"$have_gas_839" + br label %"$have_gas_841" -"$have_gas_839": ; preds = %"$out_of_gas_838", %"$have_gas_834" - %"$consume_840" = sub i64 %"$gasrem_836", 1 - store i64 %"$consume_840", i64* @_gasrem, align 8 - store %Uint256 { i256 1 }, %Uint256* %"$arg2_44", align 8, !dbg !66 - %"$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" +"$have_gas_841": ; preds = %"$out_of_gas_840", %"$have_gas_836" + %"$consume_842" = sub i64 %"$gasrem_838", 1 + store i64 %"$consume_842", i64* @_gasrem, align 8 + store %Uint256 { i256 1 }, %Uint256* %"$arg2_44", align 8, !dbg !178 + %"$gasrem_843" = load i64, i64* @_gasrem, align 8 + %"$gascmp_844" = icmp ugt i64 1, %"$gasrem_843" + br i1 %"$gascmp_844", label %"$out_of_gas_845", label %"$have_gas_846" -"$out_of_gas_843": ; preds = %"$have_gas_839" +"$out_of_gas_845": ; preds = %"$have_gas_841" call void @_out_of_gas() - br label %"$have_gas_844" + br label %"$have_gas_846" -"$have_gas_844": ; preds = %"$out_of_gas_843", %"$have_gas_839" - %"$consume_845" = sub i64 %"$gasrem_841", 1 - store i64 %"$consume_845", i64* @_gasrem, align 8 +"$have_gas_846": ; preds = %"$out_of_gas_845", %"$have_gas_841" + %"$consume_847" = sub i64 %"$gasrem_843", 1 + store i64 %"$consume_847", i64* @_gasrem, align 8 %"$test_48" = alloca %TName_Bool*, 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" + call void @llvm.dbg.declare(metadata %TName_Bool** %"$test_48", metadata !179, metadata !DIExpression()), !dbg !180 + %"$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_848": ; preds = %"$have_gas_844" +"$out_of_gas_850": ; preds = %"$have_gas_846" call void @_out_of_gas() - br label %"$have_gas_849" + br label %"$have_gas_851" -"$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 +"$have_gas_851": ; preds = %"$out_of_gas_850", %"$have_gas_846" + %"$consume_852" = sub i64 %"$gasrem_848", 1 + store i64 %"$consume_852", i64* @_gasrem, align 8 %"$res_45" = alloca %Uint256, align 8 - %"$gasrem_852" = load i64, i64* @_gasrem, align 8 - %"$gascmp_853" = icmp ugt i64 16, %"$gasrem_852" - br i1 %"$gascmp_853", label %"$out_of_gas_854", label %"$have_gas_855" - -"$out_of_gas_854": ; preds = %"$have_gas_849" - call void @_out_of_gas() - br label %"$have_gas_855" - -"$have_gas_855": ; preds = %"$out_of_gas_854", %"$have_gas_849" - %"$consume_856" = sub i64 %"$gasrem_852", 16 - store i64 %"$consume_856", i64* @_gasrem, align 8 - %"$execptr_load_857" = load i8*, i8** @_execptr, align 8 - %"$sub_$arg1_43_858" = alloca %Uint256, align 8 - %"$$arg1_43_859" = load %Uint256, %Uint256* %"$arg1_43", align 8 - store %Uint256 %"$$arg1_43_859", %Uint256* %"$sub_$arg1_43_858", align 8 - %"$sub_$arg2_44_860" = alloca %Uint256, align 8 - %"$$arg2_44_861" = load %Uint256, %Uint256* %"$arg2_44", align 8 - store %Uint256 %"$$arg2_44_861", %Uint256* %"$sub_$arg2_44_860", align 8 - %"$sub_call_862" = call %Uint256* @_sub_Uint256(i8* %"$execptr_load_857", %Uint256* %"$sub_$arg1_43_858", %Uint256* %"$sub_$arg2_44_860"), !dbg !67 - %"$sub_864" = load %Uint256, %Uint256* %"$sub_call_862", align 8 - store %Uint256 %"$sub_864", %Uint256* %"$res_45", align 8, !dbg !67 - %"$gasrem_865" = load i64, i64* @_gasrem, align 8 - %"$gascmp_866" = icmp ugt i64 1, %"$gasrem_865" - br i1 %"$gascmp_866", label %"$out_of_gas_867", label %"$have_gas_868" - -"$out_of_gas_867": ; preds = %"$have_gas_855" - call void @_out_of_gas() - br label %"$have_gas_868" - -"$have_gas_868": ; preds = %"$out_of_gas_867", %"$have_gas_855" - %"$consume_869" = sub i64 %"$gasrem_865", 1 - store i64 %"$consume_869", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %Uint256* %"$res_45", metadata !181, metadata !DIExpression()), !dbg !182 + %"$gasrem_854" = load i64, i64* @_gasrem, align 8 + %"$gascmp_855" = icmp ugt i64 16, %"$gasrem_854" + br i1 %"$gascmp_855", label %"$out_of_gas_856", label %"$have_gas_857" + +"$out_of_gas_856": ; preds = %"$have_gas_851" + call void @_out_of_gas() + br label %"$have_gas_857" + +"$have_gas_857": ; preds = %"$out_of_gas_856", %"$have_gas_851" + %"$consume_858" = sub i64 %"$gasrem_854", 16 + store i64 %"$consume_858", i64* @_gasrem, align 8 + %"$execptr_load_859" = load i8*, i8** @_execptr, align 8 + %"$sub_$arg1_43_860" = alloca %Uint256, align 8 + %"$$arg1_43_861" = load %Uint256, %Uint256* %"$arg1_43", align 8 + store %Uint256 %"$$arg1_43_861", %Uint256* %"$sub_$arg1_43_860", align 8 + %"$sub_$arg2_44_862" = alloca %Uint256, align 8 + %"$$arg2_44_863" = load %Uint256, %Uint256* %"$arg2_44", align 8 + store %Uint256 %"$$arg2_44_863", %Uint256* %"$sub_$arg2_44_862", align 8 + %"$sub_call_864" = call %Uint256* @_sub_Uint256(i8* %"$execptr_load_859", %Uint256* %"$sub_$arg1_43_860", %Uint256* %"$sub_$arg2_44_862"), !dbg !183 + %"$sub_866" = load %Uint256, %Uint256* %"$sub_call_864", align 8 + store %Uint256 %"$sub_866", %Uint256* %"$res_45", align 8, !dbg !183 + %"$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_857" + call void @_out_of_gas() + br label %"$have_gas_870" + +"$have_gas_870": ; preds = %"$out_of_gas_869", %"$have_gas_857" + %"$consume_871" = sub i64 %"$gasrem_867", 1 + store i64 %"$consume_871", i64* @_gasrem, align 8 %"$res__46" = alloca %Uint256, align 8 - %"$gasrem_870" = load i64, i64* @_gasrem, align 8 - %"$gascmp_871" = icmp ugt i64 1, %"$gasrem_870" - br i1 %"$gascmp_871", label %"$out_of_gas_872", label %"$have_gas_873" + call void @llvm.dbg.declare(metadata %Uint256* %"$res__46", metadata !184, metadata !DIExpression()), !dbg !185 + %"$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" -"$out_of_gas_872": ; preds = %"$have_gas_868" +"$out_of_gas_874": ; preds = %"$have_gas_870" call void @_out_of_gas() - br label %"$have_gas_873" + br label %"$have_gas_875" -"$have_gas_873": ; preds = %"$out_of_gas_872", %"$have_gas_868" - %"$consume_874" = sub i64 %"$gasrem_870", 1 - store i64 %"$consume_874", i64* @_gasrem, align 8 - store %Uint256 { i256 340282366920938463463374607431768211454 }, %Uint256* %"$res__46", align 8, !dbg !68 - %"$gasrem_875" = load i64, i64* @_gasrem, align 8 - %"$gascmp_876" = icmp ugt i64 1, %"$gasrem_875" - br i1 %"$gascmp_876", label %"$out_of_gas_877", label %"$have_gas_878" +"$have_gas_875": ; preds = %"$out_of_gas_874", %"$have_gas_870" + %"$consume_876" = sub i64 %"$gasrem_872", 1 + store i64 %"$consume_876", i64* @_gasrem, align 8 + store %Uint256 { i256 340282366920938463463374607431768211454 }, %Uint256* %"$res__46", align 8, !dbg !186 + %"$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_877": ; preds = %"$have_gas_873" +"$out_of_gas_879": ; preds = %"$have_gas_875" call void @_out_of_gas() - br label %"$have_gas_878" + br label %"$have_gas_880" -"$have_gas_878": ; preds = %"$out_of_gas_877", %"$have_gas_873" - %"$consume_879" = sub i64 %"$gasrem_875", 1 - store i64 %"$consume_879", i64* @_gasrem, align 8 +"$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 %"$test__47" = alloca %TName_Bool*, align 8 - %"$gasrem_881" = load i64, i64* @_gasrem, align 8 - %"$gascmp_882" = icmp ugt i64 16, %"$gasrem_881" - br i1 %"$gascmp_882", label %"$out_of_gas_883", label %"$have_gas_884" - -"$out_of_gas_883": ; preds = %"$have_gas_878" - call void @_out_of_gas() - br label %"$have_gas_884" - -"$have_gas_884": ; preds = %"$out_of_gas_883", %"$have_gas_878" - %"$consume_885" = sub i64 %"$gasrem_881", 16 - store i64 %"$consume_885", i64* @_gasrem, align 8 - %"$execptr_load_886" = load i8*, i8** @_execptr, align 8 - %"$eq_$res_45_887" = alloca %Uint256, align 8 - %"$$res_45_888" = load %Uint256, %Uint256* %"$res_45", align 8 - store %Uint256 %"$$res_45_888", %Uint256* %"$eq_$res_45_887", align 8 - %"$eq_$res__46_889" = alloca %Uint256, align 8 - %"$$res__46_890" = load %Uint256, %Uint256* %"$res__46", align 8 - store %Uint256 %"$$res__46_890", %Uint256* %"$eq_$res__46_889", align 8 - %"$eq_call_891" = call %TName_Bool* @_eq_Uint256(i8* %"$execptr_load_886", %Uint256* %"$eq_$res_45_887", %Uint256* %"$eq_$res__46_889"), !dbg !69 - store %TName_Bool* %"$eq_call_891", %TName_Bool** %"$test__47", align 8, !dbg !69 - %"$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_884" - call void @_out_of_gas() - br label %"$have_gas_896" - -"$have_gas_896": ; preds = %"$out_of_gas_895", %"$have_gas_884" - %"$consume_897" = sub i64 %"$gasrem_893", 1 - store i64 %"$consume_897", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$test__47", metadata !187, metadata !DIExpression()), !dbg !188 + %"$gasrem_883" = load i64, i64* @_gasrem, align 8 + %"$gascmp_884" = icmp ugt i64 16, %"$gasrem_883" + br i1 %"$gascmp_884", label %"$out_of_gas_885", label %"$have_gas_886" + +"$out_of_gas_885": ; preds = %"$have_gas_880" + call void @_out_of_gas() + br label %"$have_gas_886" + +"$have_gas_886": ; preds = %"$out_of_gas_885", %"$have_gas_880" + %"$consume_887" = sub i64 %"$gasrem_883", 16 + store i64 %"$consume_887", i64* @_gasrem, align 8 + %"$execptr_load_888" = load i8*, i8** @_execptr, align 8 + %"$eq_$res_45_889" = alloca %Uint256, align 8 + %"$$res_45_890" = load %Uint256, %Uint256* %"$res_45", align 8 + store %Uint256 %"$$res_45_890", %Uint256* %"$eq_$res_45_889", align 8 + %"$eq_$res__46_891" = alloca %Uint256, align 8 + %"$$res__46_892" = load %Uint256, %Uint256* %"$res__46", align 8 + store %Uint256 %"$$res__46_892", %Uint256* %"$eq_$res__46_891", align 8 + %"$eq_call_893" = call %TName_Bool* @_eq_Uint256(i8* %"$execptr_load_888", %Uint256* %"$eq_$res_45_889", %Uint256* %"$eq_$res__46_891"), !dbg !189 + store %TName_Bool* %"$eq_call_893", %TName_Bool** %"$test__47", align 8, !dbg !189 + %"$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_886" + call void @_out_of_gas() + br label %"$have_gas_898" + +"$have_gas_898": ; preds = %"$out_of_gas_897", %"$have_gas_886" + %"$consume_899" = sub i64 %"$gasrem_895", 1 + store i64 %"$consume_899", i64* @_gasrem, align 8 %"$BoolUtils.andb_93" = alloca { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, align 8 - %"$BoolUtils.andb_898" = 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_899" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_898", 0 - %"$BoolUtils.andb_envptr_900" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_898", 1 - %"$$test_42_901" = load %TName_Bool*, %TName_Bool** %"$test_42", align 8 - %"$BoolUtils.andb_call_902" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_899"(i8* %"$BoolUtils.andb_envptr_900", %TName_Bool* %"$$test_42_901"), !dbg !70 - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_902", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_93", align 8, !dbg !70 + %"$BoolUtils.andb_900" = 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_901" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_900", 0 + %"$BoolUtils.andb_envptr_902" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_900", 1 + %"$$test_42_903" = load %TName_Bool*, %TName_Bool** %"$test_42", align 8 + %"$BoolUtils.andb_call_904" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_901"(i8* %"$BoolUtils.andb_envptr_902", %TName_Bool* %"$$test_42_903"), !dbg !190 + store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_904", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_93", align 8, !dbg !190 %"$BoolUtils.andb_94" = alloca %TName_Bool*, align 8 - %"$$BoolUtils.andb_93_903" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_93", align 8 - %"$$BoolUtils.andb_93_fptr_904" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_93_903", 0 - %"$$BoolUtils.andb_93_envptr_905" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_93_903", 1 - %"$$test__47_906" = load %TName_Bool*, %TName_Bool** %"$test__47", align 8 - %"$$BoolUtils.andb_93_call_907" = call %TName_Bool* %"$$BoolUtils.andb_93_fptr_904"(i8* %"$$BoolUtils.andb_93_envptr_905", %TName_Bool* %"$$test__47_906"), !dbg !70 - store %TName_Bool* %"$$BoolUtils.andb_93_call_907", %TName_Bool** %"$BoolUtils.andb_94", align 8, !dbg !70 - %"$$BoolUtils.andb_94_908" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_94", align 8 - store %TName_Bool* %"$$BoolUtils.andb_94_908", %TName_Bool** %"$test_48", align 8, !dbg !70 - %"$gasrem_909" = load i64, i64* @_gasrem, align 8 - %"$gascmp_910" = icmp ugt i64 1, %"$gasrem_909" - br i1 %"$gascmp_910", label %"$out_of_gas_911", label %"$have_gas_912" - -"$out_of_gas_911": ; preds = %"$have_gas_896" - call void @_out_of_gas() - br label %"$have_gas_912" - -"$have_gas_912": ; preds = %"$out_of_gas_911", %"$have_gas_896" - %"$consume_913" = sub i64 %"$gasrem_909", 1 - store i64 %"$consume_913", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$BoolUtils.andb_94", metadata !191, metadata !DIExpression()), !dbg !190 + %"$$BoolUtils.andb_93_905" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_93", align 8 + %"$$BoolUtils.andb_93_fptr_906" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_93_905", 0 + %"$$BoolUtils.andb_93_envptr_907" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_93_905", 1 + %"$$test__47_908" = load %TName_Bool*, %TName_Bool** %"$test__47", align 8 + %"$$BoolUtils.andb_93_call_909" = call %TName_Bool* %"$$BoolUtils.andb_93_fptr_906"(i8* %"$$BoolUtils.andb_93_envptr_907", %TName_Bool* %"$$test__47_908"), !dbg !190 + store %TName_Bool* %"$$BoolUtils.andb_93_call_909", %TName_Bool** %"$BoolUtils.andb_94", align 8, !dbg !190 + %"$$BoolUtils.andb_94_910" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_94", align 8 + store %TName_Bool* %"$$BoolUtils.andb_94_910", %TName_Bool** %"$test_48", align 8, !dbg !190 + %"$gasrem_911" = load i64, i64* @_gasrem, align 8 + %"$gascmp_912" = icmp ugt i64 1, %"$gasrem_911" + br i1 %"$gascmp_912", label %"$out_of_gas_913", label %"$have_gas_914" + +"$out_of_gas_913": ; preds = %"$have_gas_898" + call void @_out_of_gas() + br label %"$have_gas_914" + +"$have_gas_914": ; preds = %"$out_of_gas_913", %"$have_gas_898" + %"$consume_915" = sub i64 %"$gasrem_911", 1 + store i64 %"$consume_915", i64* @_gasrem, align 8 %"$arg1_49" = alloca %Uint256, align 8 - %"$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" + call void @llvm.dbg.declare(metadata %Uint256* %"$arg1_49", metadata !192, metadata !DIExpression()), !dbg !193 + %"$gasrem_916" = load i64, i64* @_gasrem, align 8 + %"$gascmp_917" = icmp ugt i64 1, %"$gasrem_916" + br i1 %"$gascmp_917", label %"$out_of_gas_918", label %"$have_gas_919" -"$out_of_gas_916": ; preds = %"$have_gas_912" +"$out_of_gas_918": ; preds = %"$have_gas_914" call void @_out_of_gas() - br label %"$have_gas_917" + br label %"$have_gas_919" -"$have_gas_917": ; preds = %"$out_of_gas_916", %"$have_gas_912" - %"$consume_918" = sub i64 %"$gasrem_914", 1 - store i64 %"$consume_918", i64* @_gasrem, align 8 - store %Uint256 { i256 -1 }, %Uint256* %"$arg1_49", align 8, !dbg !71 - %"$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" +"$have_gas_919": ; preds = %"$out_of_gas_918", %"$have_gas_914" + %"$consume_920" = sub i64 %"$gasrem_916", 1 + store i64 %"$consume_920", i64* @_gasrem, align 8 + store %Uint256 { i256 -1 }, %Uint256* %"$arg1_49", align 8, !dbg !194 + %"$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_921": ; preds = %"$have_gas_917" +"$out_of_gas_923": ; preds = %"$have_gas_919" call void @_out_of_gas() - br label %"$have_gas_922" + br label %"$have_gas_924" -"$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 +"$have_gas_924": ; preds = %"$out_of_gas_923", %"$have_gas_919" + %"$consume_925" = sub i64 %"$gasrem_921", 1 + store i64 %"$consume_925", i64* @_gasrem, align 8 %"$arg2_50" = alloca %Uint256, 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" + call void @llvm.dbg.declare(metadata %Uint256* %"$arg2_50", metadata !195, metadata !DIExpression()), !dbg !196 + %"$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_926": ; preds = %"$have_gas_922" +"$out_of_gas_928": ; preds = %"$have_gas_924" call void @_out_of_gas() - br label %"$have_gas_927" + br label %"$have_gas_929" -"$have_gas_927": ; preds = %"$out_of_gas_926", %"$have_gas_922" - %"$consume_928" = sub i64 %"$gasrem_924", 1 - store i64 %"$consume_928", i64* @_gasrem, align 8 - store %Uint256 { i256 -1 }, %Uint256* %"$arg2_50", align 8, !dbg !72 - %"$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" +"$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 + store %Uint256 { i256 -1 }, %Uint256* %"$arg2_50", align 8, !dbg !197 + %"$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_931": ; preds = %"$have_gas_927" +"$out_of_gas_933": ; preds = %"$have_gas_929" call void @_out_of_gas() - br label %"$have_gas_932" + br label %"$have_gas_934" -"$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 +"$have_gas_934": ; preds = %"$out_of_gas_933", %"$have_gas_929" + %"$consume_935" = sub i64 %"$gasrem_931", 1 + store i64 %"$consume_935", i64* @_gasrem, align 8 %"$test_54" = alloca %TName_Bool*, align 8 - %"$gasrem_934" = load i64, i64* @_gasrem, align 8 - %"$gascmp_935" = icmp ugt i64 1, %"$gasrem_934" - br i1 %"$gascmp_935", label %"$out_of_gas_936", label %"$have_gas_937" + call void @llvm.dbg.declare(metadata %TName_Bool** %"$test_54", metadata !198, metadata !DIExpression()), !dbg !199 + %"$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_936": ; preds = %"$have_gas_932" +"$out_of_gas_938": ; preds = %"$have_gas_934" call void @_out_of_gas() - br label %"$have_gas_937" + br label %"$have_gas_939" -"$have_gas_937": ; preds = %"$out_of_gas_936", %"$have_gas_932" - %"$consume_938" = sub i64 %"$gasrem_934", 1 - store i64 %"$consume_938", i64* @_gasrem, align 8 +"$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 %"$res_51" = alloca %Uint256, align 8 - %"$gasrem_940" = load i64, i64* @_gasrem, align 8 - %"$gascmp_941" = icmp ugt i64 16, %"$gasrem_940" - br i1 %"$gascmp_941", label %"$out_of_gas_942", label %"$have_gas_943" - -"$out_of_gas_942": ; preds = %"$have_gas_937" - call void @_out_of_gas() - br label %"$have_gas_943" - -"$have_gas_943": ; preds = %"$out_of_gas_942", %"$have_gas_937" - %"$consume_944" = sub i64 %"$gasrem_940", 16 - store i64 %"$consume_944", i64* @_gasrem, align 8 - %"$execptr_load_945" = load i8*, i8** @_execptr, align 8 - %"$sub_$arg1_49_946" = alloca %Uint256, align 8 - %"$$arg1_49_947" = load %Uint256, %Uint256* %"$arg1_49", align 8 - store %Uint256 %"$$arg1_49_947", %Uint256* %"$sub_$arg1_49_946", align 8 - %"$sub_$arg2_50_948" = alloca %Uint256, align 8 - %"$$arg2_50_949" = load %Uint256, %Uint256* %"$arg2_50", align 8 - store %Uint256 %"$$arg2_50_949", %Uint256* %"$sub_$arg2_50_948", align 8 - %"$sub_call_950" = call %Uint256* @_sub_Uint256(i8* %"$execptr_load_945", %Uint256* %"$sub_$arg1_49_946", %Uint256* %"$sub_$arg2_50_948"), !dbg !73 - %"$sub_952" = load %Uint256, %Uint256* %"$sub_call_950", align 8 - store %Uint256 %"$sub_952", %Uint256* %"$res_51", align 8, !dbg !73 - %"$gasrem_953" = load i64, i64* @_gasrem, align 8 - %"$gascmp_954" = icmp ugt i64 1, %"$gasrem_953" - br i1 %"$gascmp_954", label %"$out_of_gas_955", label %"$have_gas_956" - -"$out_of_gas_955": ; preds = %"$have_gas_943" - call void @_out_of_gas() - br label %"$have_gas_956" - -"$have_gas_956": ; preds = %"$out_of_gas_955", %"$have_gas_943" - %"$consume_957" = sub i64 %"$gasrem_953", 1 - store i64 %"$consume_957", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %Uint256* %"$res_51", metadata !200, metadata !DIExpression()), !dbg !201 + %"$gasrem_942" = load i64, i64* @_gasrem, align 8 + %"$gascmp_943" = icmp ugt i64 16, %"$gasrem_942" + br i1 %"$gascmp_943", label %"$out_of_gas_944", label %"$have_gas_945" + +"$out_of_gas_944": ; preds = %"$have_gas_939" + call void @_out_of_gas() + br label %"$have_gas_945" + +"$have_gas_945": ; preds = %"$out_of_gas_944", %"$have_gas_939" + %"$consume_946" = sub i64 %"$gasrem_942", 16 + store i64 %"$consume_946", i64* @_gasrem, align 8 + %"$execptr_load_947" = load i8*, i8** @_execptr, align 8 + %"$sub_$arg1_49_948" = alloca %Uint256, align 8 + %"$$arg1_49_949" = load %Uint256, %Uint256* %"$arg1_49", align 8 + store %Uint256 %"$$arg1_49_949", %Uint256* %"$sub_$arg1_49_948", align 8 + %"$sub_$arg2_50_950" = alloca %Uint256, align 8 + %"$$arg2_50_951" = load %Uint256, %Uint256* %"$arg2_50", align 8 + store %Uint256 %"$$arg2_50_951", %Uint256* %"$sub_$arg2_50_950", align 8 + %"$sub_call_952" = call %Uint256* @_sub_Uint256(i8* %"$execptr_load_947", %Uint256* %"$sub_$arg1_49_948", %Uint256* %"$sub_$arg2_50_950"), !dbg !202 + %"$sub_954" = load %Uint256, %Uint256* %"$sub_call_952", align 8 + store %Uint256 %"$sub_954", %Uint256* %"$res_51", align 8, !dbg !202 + %"$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_945" + call void @_out_of_gas() + br label %"$have_gas_958" + +"$have_gas_958": ; preds = %"$out_of_gas_957", %"$have_gas_945" + %"$consume_959" = sub i64 %"$gasrem_955", 1 + store i64 %"$consume_959", i64* @_gasrem, align 8 %"$res__52" = alloca %Uint256, align 8 - %"$gasrem_958" = load i64, i64* @_gasrem, align 8 - %"$gascmp_959" = icmp ugt i64 1, %"$gasrem_958" - br i1 %"$gascmp_959", label %"$out_of_gas_960", label %"$have_gas_961" + call void @llvm.dbg.declare(metadata %Uint256* %"$res__52", metadata !203, metadata !DIExpression()), !dbg !204 + %"$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_960": ; preds = %"$have_gas_956" +"$out_of_gas_962": ; preds = %"$have_gas_958" call void @_out_of_gas() - br label %"$have_gas_961" + br label %"$have_gas_963" -"$have_gas_961": ; preds = %"$out_of_gas_960", %"$have_gas_956" - %"$consume_962" = sub i64 %"$gasrem_958", 1 - store i64 %"$consume_962", i64* @_gasrem, align 8 - store %Uint256 zeroinitializer, %Uint256* %"$res__52", align 8, !dbg !74 - %"$gasrem_963" = load i64, i64* @_gasrem, align 8 - %"$gascmp_964" = icmp ugt i64 1, %"$gasrem_963" - br i1 %"$gascmp_964", label %"$out_of_gas_965", label %"$have_gas_966" +"$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 + store %Uint256 zeroinitializer, %Uint256* %"$res__52", align 8, !dbg !205 + %"$gasrem_965" = load i64, i64* @_gasrem, align 8 + %"$gascmp_966" = icmp ugt i64 1, %"$gasrem_965" + br i1 %"$gascmp_966", label %"$out_of_gas_967", label %"$have_gas_968" -"$out_of_gas_965": ; preds = %"$have_gas_961" +"$out_of_gas_967": ; preds = %"$have_gas_963" call void @_out_of_gas() - br label %"$have_gas_966" + br label %"$have_gas_968" -"$have_gas_966": ; preds = %"$out_of_gas_965", %"$have_gas_961" - %"$consume_967" = sub i64 %"$gasrem_963", 1 - store i64 %"$consume_967", i64* @_gasrem, align 8 +"$have_gas_968": ; preds = %"$out_of_gas_967", %"$have_gas_963" + %"$consume_969" = sub i64 %"$gasrem_965", 1 + store i64 %"$consume_969", i64* @_gasrem, align 8 %"$test__53" = alloca %TName_Bool*, align 8 - %"$gasrem_969" = load i64, i64* @_gasrem, align 8 - %"$gascmp_970" = icmp ugt i64 16, %"$gasrem_969" - br i1 %"$gascmp_970", label %"$out_of_gas_971", label %"$have_gas_972" - -"$out_of_gas_971": ; preds = %"$have_gas_966" - call void @_out_of_gas() - br label %"$have_gas_972" - -"$have_gas_972": ; preds = %"$out_of_gas_971", %"$have_gas_966" - %"$consume_973" = sub i64 %"$gasrem_969", 16 - store i64 %"$consume_973", i64* @_gasrem, align 8 - %"$execptr_load_974" = load i8*, i8** @_execptr, align 8 - %"$eq_$res_51_975" = alloca %Uint256, align 8 - %"$$res_51_976" = load %Uint256, %Uint256* %"$res_51", align 8 - store %Uint256 %"$$res_51_976", %Uint256* %"$eq_$res_51_975", align 8 - %"$eq_$res__52_977" = alloca %Uint256, align 8 - %"$$res__52_978" = load %Uint256, %Uint256* %"$res__52", align 8 - store %Uint256 %"$$res__52_978", %Uint256* %"$eq_$res__52_977", align 8 - %"$eq_call_979" = call %TName_Bool* @_eq_Uint256(i8* %"$execptr_load_974", %Uint256* %"$eq_$res_51_975", %Uint256* %"$eq_$res__52_977"), !dbg !75 - store %TName_Bool* %"$eq_call_979", %TName_Bool** %"$test__53", align 8, !dbg !75 - %"$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_972" - call void @_out_of_gas() - br label %"$have_gas_984" - -"$have_gas_984": ; preds = %"$out_of_gas_983", %"$have_gas_972" - %"$consume_985" = sub i64 %"$gasrem_981", 1 - store i64 %"$consume_985", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$test__53", metadata !206, metadata !DIExpression()), !dbg !207 + %"$gasrem_971" = load i64, i64* @_gasrem, align 8 + %"$gascmp_972" = icmp ugt i64 16, %"$gasrem_971" + br i1 %"$gascmp_972", label %"$out_of_gas_973", label %"$have_gas_974" + +"$out_of_gas_973": ; preds = %"$have_gas_968" + call void @_out_of_gas() + br label %"$have_gas_974" + +"$have_gas_974": ; preds = %"$out_of_gas_973", %"$have_gas_968" + %"$consume_975" = sub i64 %"$gasrem_971", 16 + store i64 %"$consume_975", i64* @_gasrem, align 8 + %"$execptr_load_976" = load i8*, i8** @_execptr, align 8 + %"$eq_$res_51_977" = alloca %Uint256, align 8 + %"$$res_51_978" = load %Uint256, %Uint256* %"$res_51", align 8 + store %Uint256 %"$$res_51_978", %Uint256* %"$eq_$res_51_977", align 8 + %"$eq_$res__52_979" = alloca %Uint256, align 8 + %"$$res__52_980" = load %Uint256, %Uint256* %"$res__52", align 8 + store %Uint256 %"$$res__52_980", %Uint256* %"$eq_$res__52_979", align 8 + %"$eq_call_981" = call %TName_Bool* @_eq_Uint256(i8* %"$execptr_load_976", %Uint256* %"$eq_$res_51_977", %Uint256* %"$eq_$res__52_979"), !dbg !208 + store %TName_Bool* %"$eq_call_981", %TName_Bool** %"$test__53", align 8, !dbg !208 + %"$gasrem_983" = load i64, i64* @_gasrem, align 8 + %"$gascmp_984" = icmp ugt i64 1, %"$gasrem_983" + br i1 %"$gascmp_984", label %"$out_of_gas_985", label %"$have_gas_986" + +"$out_of_gas_985": ; preds = %"$have_gas_974" + call void @_out_of_gas() + br label %"$have_gas_986" + +"$have_gas_986": ; preds = %"$out_of_gas_985", %"$have_gas_974" + %"$consume_987" = sub i64 %"$gasrem_983", 1 + store i64 %"$consume_987", i64* @_gasrem, align 8 %"$BoolUtils.andb_95" = alloca { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, align 8 - %"$BoolUtils.andb_986" = 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_987" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_986", 0 - %"$BoolUtils.andb_envptr_988" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_986", 1 - %"$$test_48_989" = load %TName_Bool*, %TName_Bool** %"$test_48", align 8 - %"$BoolUtils.andb_call_990" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_987"(i8* %"$BoolUtils.andb_envptr_988", %TName_Bool* %"$$test_48_989"), !dbg !76 - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_990", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_95", align 8, !dbg !76 + %"$BoolUtils.andb_988" = 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_989" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_988", 0 + %"$BoolUtils.andb_envptr_990" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_988", 1 + %"$$test_48_991" = load %TName_Bool*, %TName_Bool** %"$test_48", align 8 + %"$BoolUtils.andb_call_992" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_989"(i8* %"$BoolUtils.andb_envptr_990", %TName_Bool* %"$$test_48_991"), !dbg !209 + store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_992", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_95", align 8, !dbg !209 %"$BoolUtils.andb_96" = alloca %TName_Bool*, align 8 - %"$$BoolUtils.andb_95_991" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_95", align 8 - %"$$BoolUtils.andb_95_fptr_992" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_95_991", 0 - %"$$BoolUtils.andb_95_envptr_993" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_95_991", 1 - %"$$test__53_994" = load %TName_Bool*, %TName_Bool** %"$test__53", align 8 - %"$$BoolUtils.andb_95_call_995" = call %TName_Bool* %"$$BoolUtils.andb_95_fptr_992"(i8* %"$$BoolUtils.andb_95_envptr_993", %TName_Bool* %"$$test__53_994"), !dbg !76 - store %TName_Bool* %"$$BoolUtils.andb_95_call_995", %TName_Bool** %"$BoolUtils.andb_96", align 8, !dbg !76 - %"$$BoolUtils.andb_96_996" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_96", align 8 - store %TName_Bool* %"$$BoolUtils.andb_96_996", %TName_Bool** %"$test_54", align 8, !dbg !76 - %"$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_984" - call void @_out_of_gas() - br label %"$have_gas_1000" - -"$have_gas_1000": ; preds = %"$out_of_gas_999", %"$have_gas_984" - %"$consume_1001" = sub i64 %"$gasrem_997", 1 - store i64 %"$consume_1001", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$BoolUtils.andb_96", metadata !210, metadata !DIExpression()), !dbg !209 + %"$$BoolUtils.andb_95_993" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_95", align 8 + %"$$BoolUtils.andb_95_fptr_994" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_95_993", 0 + %"$$BoolUtils.andb_95_envptr_995" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_95_993", 1 + %"$$test__53_996" = load %TName_Bool*, %TName_Bool** %"$test__53", align 8 + %"$$BoolUtils.andb_95_call_997" = call %TName_Bool* %"$$BoolUtils.andb_95_fptr_994"(i8* %"$$BoolUtils.andb_95_envptr_995", %TName_Bool* %"$$test__53_996"), !dbg !209 + store %TName_Bool* %"$$BoolUtils.andb_95_call_997", %TName_Bool** %"$BoolUtils.andb_96", align 8, !dbg !209 + %"$$BoolUtils.andb_96_998" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_96", align 8 + store %TName_Bool* %"$$BoolUtils.andb_96_998", %TName_Bool** %"$test_54", align 8, !dbg !209 + %"$gasrem_999" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1000" = icmp ugt i64 1, %"$gasrem_999" + br i1 %"$gascmp_1000", label %"$out_of_gas_1001", label %"$have_gas_1002" + +"$out_of_gas_1001": ; preds = %"$have_gas_986" + call void @_out_of_gas() + br label %"$have_gas_1002" + +"$have_gas_1002": ; preds = %"$out_of_gas_1001", %"$have_gas_986" + %"$consume_1003" = sub i64 %"$gasrem_999", 1 + store i64 %"$consume_1003", i64* @_gasrem, align 8 %"$arg1_55" = alloca %Uint256, 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" + call void @llvm.dbg.declare(metadata %Uint256* %"$arg1_55", metadata !211, metadata !DIExpression()), !dbg !212 + %"$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_1004": ; preds = %"$have_gas_1000" +"$out_of_gas_1006": ; preds = %"$have_gas_1002" call void @_out_of_gas() - br label %"$have_gas_1005" + br label %"$have_gas_1007" -"$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 - store %Uint256 { i256 -1 }, %Uint256* %"$arg1_55", align 8, !dbg !77 - %"$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" +"$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 + store %Uint256 { i256 -1 }, %Uint256* %"$arg1_55", align 8, !dbg !213 + %"$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_1009": ; preds = %"$have_gas_1005" +"$out_of_gas_1011": ; preds = %"$have_gas_1007" call void @_out_of_gas() - br label %"$have_gas_1010" + br label %"$have_gas_1012" -"$have_gas_1010": ; preds = %"$out_of_gas_1009", %"$have_gas_1005" - %"$consume_1011" = sub i64 %"$gasrem_1007", 1 - store i64 %"$consume_1011", i64* @_gasrem, align 8 +"$have_gas_1012": ; preds = %"$out_of_gas_1011", %"$have_gas_1007" + %"$consume_1013" = sub i64 %"$gasrem_1009", 1 + store i64 %"$consume_1013", i64* @_gasrem, align 8 %"$arg2_56" = alloca %Uint256, 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" + call void @llvm.dbg.declare(metadata %Uint256* %"$arg2_56", metadata !214, metadata !DIExpression()), !dbg !215 + %"$gasrem_1014" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1015" = icmp ugt i64 1, %"$gasrem_1014" + br i1 %"$gascmp_1015", label %"$out_of_gas_1016", label %"$have_gas_1017" -"$out_of_gas_1014": ; preds = %"$have_gas_1010" +"$out_of_gas_1016": ; preds = %"$have_gas_1012" call void @_out_of_gas() - br label %"$have_gas_1015" + br label %"$have_gas_1017" -"$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 - store %Uint256 { i256 -2 }, %Uint256* %"$arg2_56", align 8, !dbg !78 - %"$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" +"$have_gas_1017": ; preds = %"$out_of_gas_1016", %"$have_gas_1012" + %"$consume_1018" = sub i64 %"$gasrem_1014", 1 + store i64 %"$consume_1018", i64* @_gasrem, align 8 + store %Uint256 { i256 -2 }, %Uint256* %"$arg2_56", align 8, !dbg !216 + %"$gasrem_1019" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1020" = icmp ugt i64 1, %"$gasrem_1019" + br i1 %"$gascmp_1020", label %"$out_of_gas_1021", label %"$have_gas_1022" -"$out_of_gas_1019": ; preds = %"$have_gas_1015" +"$out_of_gas_1021": ; preds = %"$have_gas_1017" call void @_out_of_gas() - br label %"$have_gas_1020" + br label %"$have_gas_1022" -"$have_gas_1020": ; preds = %"$out_of_gas_1019", %"$have_gas_1015" - %"$consume_1021" = sub i64 %"$gasrem_1017", 1 - store i64 %"$consume_1021", i64* @_gasrem, align 8 +"$have_gas_1022": ; preds = %"$out_of_gas_1021", %"$have_gas_1017" + %"$consume_1023" = sub i64 %"$gasrem_1019", 1 + store i64 %"$consume_1023", i64* @_gasrem, align 8 %"$test_60" = alloca %TName_Bool*, align 8 - %"$gasrem_1022" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1023" = icmp ugt i64 1, %"$gasrem_1022" - br i1 %"$gascmp_1023", label %"$out_of_gas_1024", label %"$have_gas_1025" + call void @llvm.dbg.declare(metadata %TName_Bool** %"$test_60", metadata !217, metadata !DIExpression()), !dbg !218 + %"$gasrem_1024" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1025" = icmp ugt i64 1, %"$gasrem_1024" + br i1 %"$gascmp_1025", label %"$out_of_gas_1026", label %"$have_gas_1027" -"$out_of_gas_1024": ; preds = %"$have_gas_1020" +"$out_of_gas_1026": ; preds = %"$have_gas_1022" call void @_out_of_gas() - br label %"$have_gas_1025" + br label %"$have_gas_1027" -"$have_gas_1025": ; preds = %"$out_of_gas_1024", %"$have_gas_1020" - %"$consume_1026" = sub i64 %"$gasrem_1022", 1 - store i64 %"$consume_1026", i64* @_gasrem, align 8 +"$have_gas_1027": ; preds = %"$out_of_gas_1026", %"$have_gas_1022" + %"$consume_1028" = sub i64 %"$gasrem_1024", 1 + store i64 %"$consume_1028", i64* @_gasrem, align 8 %"$res_57" = alloca %Uint256, align 8 - %"$gasrem_1028" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1029" = icmp ugt i64 16, %"$gasrem_1028" - br i1 %"$gascmp_1029", label %"$out_of_gas_1030", label %"$have_gas_1031" - -"$out_of_gas_1030": ; preds = %"$have_gas_1025" - call void @_out_of_gas() - br label %"$have_gas_1031" - -"$have_gas_1031": ; preds = %"$out_of_gas_1030", %"$have_gas_1025" - %"$consume_1032" = sub i64 %"$gasrem_1028", 16 - store i64 %"$consume_1032", i64* @_gasrem, align 8 - %"$execptr_load_1033" = load i8*, i8** @_execptr, align 8 - %"$sub_$arg1_55_1034" = alloca %Uint256, align 8 - %"$$arg1_55_1035" = load %Uint256, %Uint256* %"$arg1_55", align 8 - store %Uint256 %"$$arg1_55_1035", %Uint256* %"$sub_$arg1_55_1034", align 8 - %"$sub_$arg2_56_1036" = alloca %Uint256, align 8 - %"$$arg2_56_1037" = load %Uint256, %Uint256* %"$arg2_56", align 8 - store %Uint256 %"$$arg2_56_1037", %Uint256* %"$sub_$arg2_56_1036", align 8 - %"$sub_call_1038" = call %Uint256* @_sub_Uint256(i8* %"$execptr_load_1033", %Uint256* %"$sub_$arg1_55_1034", %Uint256* %"$sub_$arg2_56_1036"), !dbg !79 - %"$sub_1040" = load %Uint256, %Uint256* %"$sub_call_1038", align 8 - store %Uint256 %"$sub_1040", %Uint256* %"$res_57", align 8, !dbg !79 - %"$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_1031" - call void @_out_of_gas() - br label %"$have_gas_1044" - -"$have_gas_1044": ; preds = %"$out_of_gas_1043", %"$have_gas_1031" - %"$consume_1045" = sub i64 %"$gasrem_1041", 1 - store i64 %"$consume_1045", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %Uint256* %"$res_57", metadata !219, metadata !DIExpression()), !dbg !220 + %"$gasrem_1030" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1031" = icmp ugt i64 16, %"$gasrem_1030" + br i1 %"$gascmp_1031", label %"$out_of_gas_1032", label %"$have_gas_1033" + +"$out_of_gas_1032": ; preds = %"$have_gas_1027" + call void @_out_of_gas() + br label %"$have_gas_1033" + +"$have_gas_1033": ; preds = %"$out_of_gas_1032", %"$have_gas_1027" + %"$consume_1034" = sub i64 %"$gasrem_1030", 16 + store i64 %"$consume_1034", i64* @_gasrem, align 8 + %"$execptr_load_1035" = load i8*, i8** @_execptr, align 8 + %"$sub_$arg1_55_1036" = alloca %Uint256, align 8 + %"$$arg1_55_1037" = load %Uint256, %Uint256* %"$arg1_55", align 8 + store %Uint256 %"$$arg1_55_1037", %Uint256* %"$sub_$arg1_55_1036", align 8 + %"$sub_$arg2_56_1038" = alloca %Uint256, align 8 + %"$$arg2_56_1039" = load %Uint256, %Uint256* %"$arg2_56", align 8 + store %Uint256 %"$$arg2_56_1039", %Uint256* %"$sub_$arg2_56_1038", align 8 + %"$sub_call_1040" = call %Uint256* @_sub_Uint256(i8* %"$execptr_load_1035", %Uint256* %"$sub_$arg1_55_1036", %Uint256* %"$sub_$arg2_56_1038"), !dbg !221 + %"$sub_1042" = load %Uint256, %Uint256* %"$sub_call_1040", align 8 + store %Uint256 %"$sub_1042", %Uint256* %"$res_57", align 8, !dbg !221 + %"$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_1033" + call void @_out_of_gas() + br label %"$have_gas_1046" + +"$have_gas_1046": ; preds = %"$out_of_gas_1045", %"$have_gas_1033" + %"$consume_1047" = sub i64 %"$gasrem_1043", 1 + store i64 %"$consume_1047", i64* @_gasrem, align 8 %"$res__58" = alloca %Uint256, 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" + call void @llvm.dbg.declare(metadata %Uint256* %"$res__58", metadata !222, metadata !DIExpression()), !dbg !223 + %"$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_1048": ; preds = %"$have_gas_1044" +"$out_of_gas_1050": ; preds = %"$have_gas_1046" call void @_out_of_gas() - br label %"$have_gas_1049" + br label %"$have_gas_1051" -"$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 - store %Uint256 { i256 1 }, %Uint256* %"$res__58", align 8, !dbg !80 - %"$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" +"$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 + store %Uint256 { i256 1 }, %Uint256* %"$res__58", align 8, !dbg !224 + %"$gasrem_1053" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1054" = icmp ugt i64 1, %"$gasrem_1053" + br i1 %"$gascmp_1054", label %"$out_of_gas_1055", label %"$have_gas_1056" -"$out_of_gas_1053": ; preds = %"$have_gas_1049" +"$out_of_gas_1055": ; preds = %"$have_gas_1051" call void @_out_of_gas() - br label %"$have_gas_1054" + br label %"$have_gas_1056" -"$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 +"$have_gas_1056": ; preds = %"$out_of_gas_1055", %"$have_gas_1051" + %"$consume_1057" = sub i64 %"$gasrem_1053", 1 + store i64 %"$consume_1057", i64* @_gasrem, align 8 %"$test__59" = alloca %TName_Bool*, align 8 - %"$gasrem_1057" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1058" = icmp ugt i64 16, %"$gasrem_1057" - br i1 %"$gascmp_1058", label %"$out_of_gas_1059", label %"$have_gas_1060" - -"$out_of_gas_1059": ; preds = %"$have_gas_1054" - call void @_out_of_gas() - br label %"$have_gas_1060" - -"$have_gas_1060": ; preds = %"$out_of_gas_1059", %"$have_gas_1054" - %"$consume_1061" = sub i64 %"$gasrem_1057", 16 - store i64 %"$consume_1061", i64* @_gasrem, align 8 - %"$execptr_load_1062" = load i8*, i8** @_execptr, align 8 - %"$eq_$res_57_1063" = alloca %Uint256, align 8 - %"$$res_57_1064" = load %Uint256, %Uint256* %"$res_57", align 8 - store %Uint256 %"$$res_57_1064", %Uint256* %"$eq_$res_57_1063", align 8 - %"$eq_$res__58_1065" = alloca %Uint256, align 8 - %"$$res__58_1066" = load %Uint256, %Uint256* %"$res__58", align 8 - store %Uint256 %"$$res__58_1066", %Uint256* %"$eq_$res__58_1065", align 8 - %"$eq_call_1067" = call %TName_Bool* @_eq_Uint256(i8* %"$execptr_load_1062", %Uint256* %"$eq_$res_57_1063", %Uint256* %"$eq_$res__58_1065"), !dbg !81 - store %TName_Bool* %"$eq_call_1067", %TName_Bool** %"$test__59", align 8, !dbg !81 - %"$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 = %"$have_gas_1060" - call void @_out_of_gas() - br label %"$have_gas_1072" - -"$have_gas_1072": ; preds = %"$out_of_gas_1071", %"$have_gas_1060" - %"$consume_1073" = sub i64 %"$gasrem_1069", 1 - store i64 %"$consume_1073", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$test__59", metadata !225, metadata !DIExpression()), !dbg !226 + %"$gasrem_1059" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1060" = icmp ugt i64 16, %"$gasrem_1059" + br i1 %"$gascmp_1060", label %"$out_of_gas_1061", label %"$have_gas_1062" + +"$out_of_gas_1061": ; preds = %"$have_gas_1056" + call void @_out_of_gas() + br label %"$have_gas_1062" + +"$have_gas_1062": ; preds = %"$out_of_gas_1061", %"$have_gas_1056" + %"$consume_1063" = sub i64 %"$gasrem_1059", 16 + store i64 %"$consume_1063", i64* @_gasrem, align 8 + %"$execptr_load_1064" = load i8*, i8** @_execptr, align 8 + %"$eq_$res_57_1065" = alloca %Uint256, align 8 + %"$$res_57_1066" = load %Uint256, %Uint256* %"$res_57", align 8 + store %Uint256 %"$$res_57_1066", %Uint256* %"$eq_$res_57_1065", align 8 + %"$eq_$res__58_1067" = alloca %Uint256, align 8 + %"$$res__58_1068" = load %Uint256, %Uint256* %"$res__58", align 8 + store %Uint256 %"$$res__58_1068", %Uint256* %"$eq_$res__58_1067", align 8 + %"$eq_call_1069" = call %TName_Bool* @_eq_Uint256(i8* %"$execptr_load_1064", %Uint256* %"$eq_$res_57_1065", %Uint256* %"$eq_$res__58_1067"), !dbg !227 + store %TName_Bool* %"$eq_call_1069", %TName_Bool** %"$test__59", align 8, !dbg !227 + %"$gasrem_1071" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1072" = icmp ugt i64 1, %"$gasrem_1071" + br i1 %"$gascmp_1072", label %"$out_of_gas_1073", label %"$have_gas_1074" + +"$out_of_gas_1073": ; preds = %"$have_gas_1062" + call void @_out_of_gas() + br label %"$have_gas_1074" + +"$have_gas_1074": ; preds = %"$out_of_gas_1073", %"$have_gas_1062" + %"$consume_1075" = sub i64 %"$gasrem_1071", 1 + store i64 %"$consume_1075", i64* @_gasrem, align 8 %"$BoolUtils.andb_97" = alloca { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, align 8 - %"$BoolUtils.andb_1074" = 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_1075" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_1074", 0 - %"$BoolUtils.andb_envptr_1076" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_1074", 1 - %"$$test_54_1077" = load %TName_Bool*, %TName_Bool** %"$test_54", align 8 - %"$BoolUtils.andb_call_1078" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_1075"(i8* %"$BoolUtils.andb_envptr_1076", %TName_Bool* %"$$test_54_1077"), !dbg !82 - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_1078", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_97", align 8, !dbg !82 + %"$BoolUtils.andb_1076" = 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_1077" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_1076", 0 + %"$BoolUtils.andb_envptr_1078" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_1076", 1 + %"$$test_54_1079" = load %TName_Bool*, %TName_Bool** %"$test_54", align 8 + %"$BoolUtils.andb_call_1080" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_1077"(i8* %"$BoolUtils.andb_envptr_1078", %TName_Bool* %"$$test_54_1079"), !dbg !228 + store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_1080", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_97", align 8, !dbg !228 %"$BoolUtils.andb_98" = alloca %TName_Bool*, align 8 - %"$$BoolUtils.andb_97_1079" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_97", align 8 - %"$$BoolUtils.andb_97_fptr_1080" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_97_1079", 0 - %"$$BoolUtils.andb_97_envptr_1081" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_97_1079", 1 - %"$$test__59_1082" = load %TName_Bool*, %TName_Bool** %"$test__59", align 8 - %"$$BoolUtils.andb_97_call_1083" = call %TName_Bool* %"$$BoolUtils.andb_97_fptr_1080"(i8* %"$$BoolUtils.andb_97_envptr_1081", %TName_Bool* %"$$test__59_1082"), !dbg !82 - store %TName_Bool* %"$$BoolUtils.andb_97_call_1083", %TName_Bool** %"$BoolUtils.andb_98", align 8, !dbg !82 - %"$$BoolUtils.andb_98_1084" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_98", align 8 - store %TName_Bool* %"$$BoolUtils.andb_98_1084", %TName_Bool** %"$test_60", align 8, !dbg !82 - %"$gasrem_1085" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1086" = icmp ugt i64 1, %"$gasrem_1085" - br i1 %"$gascmp_1086", label %"$out_of_gas_1087", label %"$have_gas_1088" - -"$out_of_gas_1087": ; preds = %"$have_gas_1072" - call void @_out_of_gas() - br label %"$have_gas_1088" - -"$have_gas_1088": ; preds = %"$out_of_gas_1087", %"$have_gas_1072" - %"$consume_1089" = sub i64 %"$gasrem_1085", 1 - store i64 %"$consume_1089", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$BoolUtils.andb_98", metadata !229, metadata !DIExpression()), !dbg !228 + %"$$BoolUtils.andb_97_1081" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_97", align 8 + %"$$BoolUtils.andb_97_fptr_1082" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_97_1081", 0 + %"$$BoolUtils.andb_97_envptr_1083" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_97_1081", 1 + %"$$test__59_1084" = load %TName_Bool*, %TName_Bool** %"$test__59", align 8 + %"$$BoolUtils.andb_97_call_1085" = call %TName_Bool* %"$$BoolUtils.andb_97_fptr_1082"(i8* %"$$BoolUtils.andb_97_envptr_1083", %TName_Bool* %"$$test__59_1084"), !dbg !228 + store %TName_Bool* %"$$BoolUtils.andb_97_call_1085", %TName_Bool** %"$BoolUtils.andb_98", align 8, !dbg !228 + %"$$BoolUtils.andb_98_1086" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_98", align 8 + store %TName_Bool* %"$$BoolUtils.andb_98_1086", %TName_Bool** %"$test_60", align 8, !dbg !228 + %"$gasrem_1087" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1088" = icmp ugt i64 1, %"$gasrem_1087" + br i1 %"$gascmp_1088", label %"$out_of_gas_1089", label %"$have_gas_1090" + +"$out_of_gas_1089": ; preds = %"$have_gas_1074" + call void @_out_of_gas() + br label %"$have_gas_1090" + +"$have_gas_1090": ; preds = %"$out_of_gas_1089", %"$have_gas_1074" + %"$consume_1091" = sub i64 %"$gasrem_1087", 1 + store i64 %"$consume_1091", i64* @_gasrem, align 8 %"$arg1_61" = alloca %Int256, align 8 - %"$gasrem_1090" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1091" = icmp ugt i64 1, %"$gasrem_1090" - br i1 %"$gascmp_1091", label %"$out_of_gas_1092", label %"$have_gas_1093" + call void @llvm.dbg.declare(metadata %Int256* %"$arg1_61", metadata !230, metadata !DIExpression()), !dbg !232 + %"$gasrem_1092" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1093" = icmp ugt i64 1, %"$gasrem_1092" + br i1 %"$gascmp_1093", label %"$out_of_gas_1094", label %"$have_gas_1095" -"$out_of_gas_1092": ; preds = %"$have_gas_1088" +"$out_of_gas_1094": ; preds = %"$have_gas_1090" call void @_out_of_gas() - br label %"$have_gas_1093" + br label %"$have_gas_1095" -"$have_gas_1093": ; preds = %"$out_of_gas_1092", %"$have_gas_1088" - %"$consume_1094" = sub i64 %"$gasrem_1090", 1 - store i64 %"$consume_1094", i64* @_gasrem, align 8 - store %Int256 zeroinitializer, %Int256* %"$arg1_61", align 8, !dbg !83 - %"$gasrem_1095" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1096" = icmp ugt i64 1, %"$gasrem_1095" - br i1 %"$gascmp_1096", label %"$out_of_gas_1097", label %"$have_gas_1098" +"$have_gas_1095": ; preds = %"$out_of_gas_1094", %"$have_gas_1090" + %"$consume_1096" = sub i64 %"$gasrem_1092", 1 + store i64 %"$consume_1096", i64* @_gasrem, align 8 + store %Int256 zeroinitializer, %Int256* %"$arg1_61", align 8, !dbg !233 + %"$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_1097": ; preds = %"$have_gas_1093" +"$out_of_gas_1099": ; preds = %"$have_gas_1095" call void @_out_of_gas() - br label %"$have_gas_1098" + br label %"$have_gas_1100" -"$have_gas_1098": ; preds = %"$out_of_gas_1097", %"$have_gas_1093" - %"$consume_1099" = sub i64 %"$gasrem_1095", 1 - store i64 %"$consume_1099", i64* @_gasrem, align 8 +"$have_gas_1100": ; preds = %"$out_of_gas_1099", %"$have_gas_1095" + %"$consume_1101" = sub i64 %"$gasrem_1097", 1 + store i64 %"$consume_1101", i64* @_gasrem, align 8 %"$arg2_62" = alloca %Int256, align 8 - %"$gasrem_1100" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1101" = icmp ugt i64 1, %"$gasrem_1100" - br i1 %"$gascmp_1101", label %"$out_of_gas_1102", label %"$have_gas_1103" + call void @llvm.dbg.declare(metadata %Int256* %"$arg2_62", metadata !234, metadata !DIExpression()), !dbg !235 + %"$gasrem_1102" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1103" = icmp ugt i64 1, %"$gasrem_1102" + br i1 %"$gascmp_1103", label %"$out_of_gas_1104", label %"$have_gas_1105" -"$out_of_gas_1102": ; preds = %"$have_gas_1098" +"$out_of_gas_1104": ; preds = %"$have_gas_1100" call void @_out_of_gas() - br label %"$have_gas_1103" + br label %"$have_gas_1105" -"$have_gas_1103": ; preds = %"$out_of_gas_1102", %"$have_gas_1098" - %"$consume_1104" = sub i64 %"$gasrem_1100", 1 - store i64 %"$consume_1104", i64* @_gasrem, align 8 - store %Int256 { i256 -57896044618658097711785492504343953926634992332820282019728792003956564819967 }, %Int256* %"$arg2_62", align 8, !dbg !84 - %"$gasrem_1105" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1106" = icmp ugt i64 1, %"$gasrem_1105" - br i1 %"$gascmp_1106", label %"$out_of_gas_1107", label %"$have_gas_1108" +"$have_gas_1105": ; preds = %"$out_of_gas_1104", %"$have_gas_1100" + %"$consume_1106" = sub i64 %"$gasrem_1102", 1 + store i64 %"$consume_1106", i64* @_gasrem, align 8 + store %Int256 { i256 -57896044618658097711785492504343953926634992332820282019728792003956564819967 }, %Int256* %"$arg2_62", align 8, !dbg !236 + %"$gasrem_1107" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1108" = icmp ugt i64 1, %"$gasrem_1107" + br i1 %"$gascmp_1108", label %"$out_of_gas_1109", label %"$have_gas_1110" -"$out_of_gas_1107": ; preds = %"$have_gas_1103" +"$out_of_gas_1109": ; preds = %"$have_gas_1105" call void @_out_of_gas() - br label %"$have_gas_1108" + br label %"$have_gas_1110" -"$have_gas_1108": ; preds = %"$out_of_gas_1107", %"$have_gas_1103" - %"$consume_1109" = sub i64 %"$gasrem_1105", 1 - store i64 %"$consume_1109", i64* @_gasrem, align 8 +"$have_gas_1110": ; preds = %"$out_of_gas_1109", %"$have_gas_1105" + %"$consume_1111" = sub i64 %"$gasrem_1107", 1 + store i64 %"$consume_1111", i64* @_gasrem, align 8 %"$test_66" = alloca %TName_Bool*, align 8 - %"$gasrem_1110" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1111" = icmp ugt i64 1, %"$gasrem_1110" - br i1 %"$gascmp_1111", label %"$out_of_gas_1112", label %"$have_gas_1113" + call void @llvm.dbg.declare(metadata %TName_Bool** %"$test_66", metadata !237, metadata !DIExpression()), !dbg !238 + %"$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_1112": ; preds = %"$have_gas_1108" +"$out_of_gas_1114": ; preds = %"$have_gas_1110" call void @_out_of_gas() - br label %"$have_gas_1113" + br label %"$have_gas_1115" -"$have_gas_1113": ; preds = %"$out_of_gas_1112", %"$have_gas_1108" - %"$consume_1114" = sub i64 %"$gasrem_1110", 1 - store i64 %"$consume_1114", i64* @_gasrem, align 8 +"$have_gas_1115": ; preds = %"$out_of_gas_1114", %"$have_gas_1110" + %"$consume_1116" = sub i64 %"$gasrem_1112", 1 + store i64 %"$consume_1116", i64* @_gasrem, align 8 %"$res_63" = alloca %Int256, align 8 - %"$gasrem_1116" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1117" = icmp ugt i64 16, %"$gasrem_1116" - br i1 %"$gascmp_1117", label %"$out_of_gas_1118", label %"$have_gas_1119" - -"$out_of_gas_1118": ; preds = %"$have_gas_1113" - call void @_out_of_gas() - br label %"$have_gas_1119" - -"$have_gas_1119": ; preds = %"$out_of_gas_1118", %"$have_gas_1113" - %"$consume_1120" = sub i64 %"$gasrem_1116", 16 - store i64 %"$consume_1120", i64* @_gasrem, align 8 - %"$execptr_load_1121" = load i8*, i8** @_execptr, align 8 - %"$sub_$arg1_61_1122" = alloca %Int256, align 8 - %"$$arg1_61_1123" = load %Int256, %Int256* %"$arg1_61", align 8 - store %Int256 %"$$arg1_61_1123", %Int256* %"$sub_$arg1_61_1122", align 8 - %"$sub_$arg2_62_1124" = alloca %Int256, align 8 - %"$$arg2_62_1125" = load %Int256, %Int256* %"$arg2_62", align 8 - store %Int256 %"$$arg2_62_1125", %Int256* %"$sub_$arg2_62_1124", align 8 - %"$sub_call_1126" = call %Int256* @_sub_Int256(i8* %"$execptr_load_1121", %Int256* %"$sub_$arg1_61_1122", %Int256* %"$sub_$arg2_62_1124"), !dbg !85 - %"$sub_1128" = load %Int256, %Int256* %"$sub_call_1126", align 8 - store %Int256 %"$sub_1128", %Int256* %"$res_63", align 8, !dbg !85 - %"$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" - -"$out_of_gas_1131": ; preds = %"$have_gas_1119" - call void @_out_of_gas() - br label %"$have_gas_1132" - -"$have_gas_1132": ; preds = %"$out_of_gas_1131", %"$have_gas_1119" - %"$consume_1133" = sub i64 %"$gasrem_1129", 1 - store i64 %"$consume_1133", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %Int256* %"$res_63", metadata !239, metadata !DIExpression()), !dbg !240 + %"$gasrem_1118" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1119" = icmp ugt i64 16, %"$gasrem_1118" + br i1 %"$gascmp_1119", label %"$out_of_gas_1120", label %"$have_gas_1121" + +"$out_of_gas_1120": ; preds = %"$have_gas_1115" + call void @_out_of_gas() + br label %"$have_gas_1121" + +"$have_gas_1121": ; preds = %"$out_of_gas_1120", %"$have_gas_1115" + %"$consume_1122" = sub i64 %"$gasrem_1118", 16 + store i64 %"$consume_1122", i64* @_gasrem, align 8 + %"$execptr_load_1123" = load i8*, i8** @_execptr, align 8 + %"$sub_$arg1_61_1124" = alloca %Int256, align 8 + %"$$arg1_61_1125" = load %Int256, %Int256* %"$arg1_61", align 8 + store %Int256 %"$$arg1_61_1125", %Int256* %"$sub_$arg1_61_1124", align 8 + %"$sub_$arg2_62_1126" = alloca %Int256, align 8 + %"$$arg2_62_1127" = load %Int256, %Int256* %"$arg2_62", align 8 + store %Int256 %"$$arg2_62_1127", %Int256* %"$sub_$arg2_62_1126", align 8 + %"$sub_call_1128" = call %Int256* @_sub_Int256(i8* %"$execptr_load_1123", %Int256* %"$sub_$arg1_61_1124", %Int256* %"$sub_$arg2_62_1126"), !dbg !241 + %"$sub_1130" = load %Int256, %Int256* %"$sub_call_1128", align 8 + store %Int256 %"$sub_1130", %Int256* %"$res_63", align 8, !dbg !241 + %"$gasrem_1131" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1132" = icmp ugt i64 1, %"$gasrem_1131" + br i1 %"$gascmp_1132", label %"$out_of_gas_1133", label %"$have_gas_1134" + +"$out_of_gas_1133": ; preds = %"$have_gas_1121" + call void @_out_of_gas() + br label %"$have_gas_1134" + +"$have_gas_1134": ; preds = %"$out_of_gas_1133", %"$have_gas_1121" + %"$consume_1135" = sub i64 %"$gasrem_1131", 1 + store i64 %"$consume_1135", i64* @_gasrem, align 8 %"$res__64" = alloca %Int256, align 8 - %"$gasrem_1134" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1135" = icmp ugt i64 1, %"$gasrem_1134" - br i1 %"$gascmp_1135", label %"$out_of_gas_1136", label %"$have_gas_1137" + call void @llvm.dbg.declare(metadata %Int256* %"$res__64", metadata !242, metadata !DIExpression()), !dbg !243 + %"$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" -"$out_of_gas_1136": ; preds = %"$have_gas_1132" +"$out_of_gas_1138": ; preds = %"$have_gas_1134" call void @_out_of_gas() - br label %"$have_gas_1137" + br label %"$have_gas_1139" -"$have_gas_1137": ; preds = %"$out_of_gas_1136", %"$have_gas_1132" - %"$consume_1138" = sub i64 %"$gasrem_1134", 1 - store i64 %"$consume_1138", i64* @_gasrem, align 8 - store %Int256 { i256 57896044618658097711785492504343953926634992332820282019728792003956564819967 }, %Int256* %"$res__64", align 8, !dbg !86 - %"$gasrem_1139" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1140" = icmp ugt i64 1, %"$gasrem_1139" - br i1 %"$gascmp_1140", label %"$out_of_gas_1141", label %"$have_gas_1142" +"$have_gas_1139": ; preds = %"$out_of_gas_1138", %"$have_gas_1134" + %"$consume_1140" = sub i64 %"$gasrem_1136", 1 + store i64 %"$consume_1140", i64* @_gasrem, align 8 + store %Int256 { i256 57896044618658097711785492504343953926634992332820282019728792003956564819967 }, %Int256* %"$res__64", align 8, !dbg !244 + %"$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" -"$out_of_gas_1141": ; preds = %"$have_gas_1137" +"$out_of_gas_1143": ; preds = %"$have_gas_1139" call void @_out_of_gas() - br label %"$have_gas_1142" + br label %"$have_gas_1144" -"$have_gas_1142": ; preds = %"$out_of_gas_1141", %"$have_gas_1137" - %"$consume_1143" = sub i64 %"$gasrem_1139", 1 - store i64 %"$consume_1143", i64* @_gasrem, align 8 +"$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 %"$test__65" = alloca %TName_Bool*, align 8 - %"$gasrem_1145" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1146" = icmp ugt i64 16, %"$gasrem_1145" - br i1 %"$gascmp_1146", label %"$out_of_gas_1147", label %"$have_gas_1148" - -"$out_of_gas_1147": ; preds = %"$have_gas_1142" - call void @_out_of_gas() - br label %"$have_gas_1148" - -"$have_gas_1148": ; preds = %"$out_of_gas_1147", %"$have_gas_1142" - %"$consume_1149" = sub i64 %"$gasrem_1145", 16 - store i64 %"$consume_1149", i64* @_gasrem, align 8 - %"$execptr_load_1150" = load i8*, i8** @_execptr, align 8 - %"$eq_$res_63_1151" = alloca %Int256, align 8 - %"$$res_63_1152" = load %Int256, %Int256* %"$res_63", align 8 - store %Int256 %"$$res_63_1152", %Int256* %"$eq_$res_63_1151", align 8 - %"$eq_$res__64_1153" = alloca %Int256, align 8 - %"$$res__64_1154" = load %Int256, %Int256* %"$res__64", align 8 - store %Int256 %"$$res__64_1154", %Int256* %"$eq_$res__64_1153", align 8 - %"$eq_call_1155" = call %TName_Bool* @_eq_Int256(i8* %"$execptr_load_1150", %Int256* %"$eq_$res_63_1151", %Int256* %"$eq_$res__64_1153"), !dbg !87 - store %TName_Bool* %"$eq_call_1155", %TName_Bool** %"$test__65", align 8, !dbg !87 - %"$gasrem_1157" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1158" = icmp ugt i64 1, %"$gasrem_1157" - br i1 %"$gascmp_1158", label %"$out_of_gas_1159", label %"$have_gas_1160" - -"$out_of_gas_1159": ; preds = %"$have_gas_1148" - call void @_out_of_gas() - br label %"$have_gas_1160" - -"$have_gas_1160": ; preds = %"$out_of_gas_1159", %"$have_gas_1148" - %"$consume_1161" = sub i64 %"$gasrem_1157", 1 - store i64 %"$consume_1161", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$test__65", metadata !245, metadata !DIExpression()), !dbg !246 + %"$gasrem_1147" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1148" = icmp ugt i64 16, %"$gasrem_1147" + br i1 %"$gascmp_1148", label %"$out_of_gas_1149", label %"$have_gas_1150" + +"$out_of_gas_1149": ; preds = %"$have_gas_1144" + call void @_out_of_gas() + br label %"$have_gas_1150" + +"$have_gas_1150": ; preds = %"$out_of_gas_1149", %"$have_gas_1144" + %"$consume_1151" = sub i64 %"$gasrem_1147", 16 + store i64 %"$consume_1151", i64* @_gasrem, align 8 + %"$execptr_load_1152" = load i8*, i8** @_execptr, align 8 + %"$eq_$res_63_1153" = alloca %Int256, align 8 + %"$$res_63_1154" = load %Int256, %Int256* %"$res_63", align 8 + store %Int256 %"$$res_63_1154", %Int256* %"$eq_$res_63_1153", align 8 + %"$eq_$res__64_1155" = alloca %Int256, align 8 + %"$$res__64_1156" = load %Int256, %Int256* %"$res__64", align 8 + store %Int256 %"$$res__64_1156", %Int256* %"$eq_$res__64_1155", align 8 + %"$eq_call_1157" = call %TName_Bool* @_eq_Int256(i8* %"$execptr_load_1152", %Int256* %"$eq_$res_63_1153", %Int256* %"$eq_$res__64_1155"), !dbg !247 + store %TName_Bool* %"$eq_call_1157", %TName_Bool** %"$test__65", align 8, !dbg !247 + %"$gasrem_1159" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1160" = icmp ugt i64 1, %"$gasrem_1159" + br i1 %"$gascmp_1160", label %"$out_of_gas_1161", label %"$have_gas_1162" + +"$out_of_gas_1161": ; preds = %"$have_gas_1150" + call void @_out_of_gas() + br label %"$have_gas_1162" + +"$have_gas_1162": ; preds = %"$out_of_gas_1161", %"$have_gas_1150" + %"$consume_1163" = sub i64 %"$gasrem_1159", 1 + store i64 %"$consume_1163", i64* @_gasrem, align 8 %"$BoolUtils.andb_99" = alloca { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, align 8 - %"$BoolUtils.andb_1162" = 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_1163" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_1162", 0 - %"$BoolUtils.andb_envptr_1164" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_1162", 1 - %"$$test_60_1165" = load %TName_Bool*, %TName_Bool** %"$test_60", align 8 - %"$BoolUtils.andb_call_1166" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_1163"(i8* %"$BoolUtils.andb_envptr_1164", %TName_Bool* %"$$test_60_1165"), !dbg !88 - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_1166", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_99", align 8, !dbg !88 + %"$BoolUtils.andb_1164" = 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_1165" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_1164", 0 + %"$BoolUtils.andb_envptr_1166" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_1164", 1 + %"$$test_60_1167" = load %TName_Bool*, %TName_Bool** %"$test_60", align 8 + %"$BoolUtils.andb_call_1168" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_1165"(i8* %"$BoolUtils.andb_envptr_1166", %TName_Bool* %"$$test_60_1167"), !dbg !248 + store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_1168", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_99", align 8, !dbg !248 %"$BoolUtils.andb_100" = alloca %TName_Bool*, align 8 - %"$$BoolUtils.andb_99_1167" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_99", align 8 - %"$$BoolUtils.andb_99_fptr_1168" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_99_1167", 0 - %"$$BoolUtils.andb_99_envptr_1169" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_99_1167", 1 - %"$$test__65_1170" = load %TName_Bool*, %TName_Bool** %"$test__65", align 8 - %"$$BoolUtils.andb_99_call_1171" = call %TName_Bool* %"$$BoolUtils.andb_99_fptr_1168"(i8* %"$$BoolUtils.andb_99_envptr_1169", %TName_Bool* %"$$test__65_1170"), !dbg !88 - store %TName_Bool* %"$$BoolUtils.andb_99_call_1171", %TName_Bool** %"$BoolUtils.andb_100", align 8, !dbg !88 - %"$$BoolUtils.andb_100_1172" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_100", align 8 - store %TName_Bool* %"$$BoolUtils.andb_100_1172", %TName_Bool** %"$test_66", align 8, !dbg !88 - %"$gasrem_1173" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1174" = icmp ugt i64 1, %"$gasrem_1173" - br i1 %"$gascmp_1174", label %"$out_of_gas_1175", label %"$have_gas_1176" - -"$out_of_gas_1175": ; preds = %"$have_gas_1160" - call void @_out_of_gas() - br label %"$have_gas_1176" - -"$have_gas_1176": ; preds = %"$out_of_gas_1175", %"$have_gas_1160" - %"$consume_1177" = sub i64 %"$gasrem_1173", 1 - store i64 %"$consume_1177", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$BoolUtils.andb_100", metadata !249, metadata !DIExpression()), !dbg !248 + %"$$BoolUtils.andb_99_1169" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_99", align 8 + %"$$BoolUtils.andb_99_fptr_1170" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_99_1169", 0 + %"$$BoolUtils.andb_99_envptr_1171" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_99_1169", 1 + %"$$test__65_1172" = load %TName_Bool*, %TName_Bool** %"$test__65", align 8 + %"$$BoolUtils.andb_99_call_1173" = call %TName_Bool* %"$$BoolUtils.andb_99_fptr_1170"(i8* %"$$BoolUtils.andb_99_envptr_1171", %TName_Bool* %"$$test__65_1172"), !dbg !248 + store %TName_Bool* %"$$BoolUtils.andb_99_call_1173", %TName_Bool** %"$BoolUtils.andb_100", align 8, !dbg !248 + %"$$BoolUtils.andb_100_1174" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_100", align 8 + store %TName_Bool* %"$$BoolUtils.andb_100_1174", %TName_Bool** %"$test_66", align 8, !dbg !248 + %"$gasrem_1175" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1176" = icmp ugt i64 1, %"$gasrem_1175" + br i1 %"$gascmp_1176", label %"$out_of_gas_1177", label %"$have_gas_1178" + +"$out_of_gas_1177": ; preds = %"$have_gas_1162" + call void @_out_of_gas() + br label %"$have_gas_1178" + +"$have_gas_1178": ; preds = %"$out_of_gas_1177", %"$have_gas_1162" + %"$consume_1179" = sub i64 %"$gasrem_1175", 1 + store i64 %"$consume_1179", i64* @_gasrem, align 8 %"$arg2_67" = alloca %Int256, align 8 - %"$gasrem_1178" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1179" = icmp ugt i64 1, %"$gasrem_1178" - br i1 %"$gascmp_1179", label %"$out_of_gas_1180", label %"$have_gas_1181" + call void @llvm.dbg.declare(metadata %Int256* %"$arg2_67", metadata !250, metadata !DIExpression()), !dbg !251 + %"$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_1180": ; preds = %"$have_gas_1176" +"$out_of_gas_1182": ; preds = %"$have_gas_1178" call void @_out_of_gas() - br label %"$have_gas_1181" + br label %"$have_gas_1183" -"$have_gas_1181": ; preds = %"$out_of_gas_1180", %"$have_gas_1176" - %"$consume_1182" = sub i64 %"$gasrem_1178", 1 - store i64 %"$consume_1182", i64* @_gasrem, align 8 - store %Int256 zeroinitializer, %Int256* %"$arg2_67", align 8, !dbg !89 - %"$gasrem_1183" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1184" = icmp ugt i64 1, %"$gasrem_1183" - br i1 %"$gascmp_1184", label %"$out_of_gas_1185", label %"$have_gas_1186" +"$have_gas_1183": ; preds = %"$out_of_gas_1182", %"$have_gas_1178" + %"$consume_1184" = sub i64 %"$gasrem_1180", 1 + store i64 %"$consume_1184", i64* @_gasrem, align 8 + store %Int256 zeroinitializer, %Int256* %"$arg2_67", align 8, !dbg !252 + %"$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_1185": ; preds = %"$have_gas_1181" +"$out_of_gas_1187": ; preds = %"$have_gas_1183" call void @_out_of_gas() - br label %"$have_gas_1186" + br label %"$have_gas_1188" -"$have_gas_1186": ; preds = %"$out_of_gas_1185", %"$have_gas_1181" - %"$consume_1187" = sub i64 %"$gasrem_1183", 1 - store i64 %"$consume_1187", i64* @_gasrem, align 8 +"$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 %"$arg1_68" = alloca %Int256, align 8 - %"$gasrem_1188" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1189" = icmp ugt i64 1, %"$gasrem_1188" - br i1 %"$gascmp_1189", label %"$out_of_gas_1190", label %"$have_gas_1191" + call void @llvm.dbg.declare(metadata %Int256* %"$arg1_68", metadata !253, metadata !DIExpression()), !dbg !254 + %"$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_1190": ; preds = %"$have_gas_1186" +"$out_of_gas_1192": ; preds = %"$have_gas_1188" call void @_out_of_gas() - br label %"$have_gas_1191" + br label %"$have_gas_1193" -"$have_gas_1191": ; preds = %"$out_of_gas_1190", %"$have_gas_1186" - %"$consume_1192" = sub i64 %"$gasrem_1188", 1 - store i64 %"$consume_1192", i64* @_gasrem, align 8 - store %Int256 { i256 -57896044618658097711785492504343953926634992332820282019728792003956564819967 }, %Int256* %"$arg1_68", align 8, !dbg !90 - %"$gasrem_1193" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1194" = icmp ugt i64 1, %"$gasrem_1193" - br i1 %"$gascmp_1194", label %"$out_of_gas_1195", label %"$have_gas_1196" +"$have_gas_1193": ; preds = %"$out_of_gas_1192", %"$have_gas_1188" + %"$consume_1194" = sub i64 %"$gasrem_1190", 1 + store i64 %"$consume_1194", i64* @_gasrem, align 8 + store %Int256 { i256 -57896044618658097711785492504343953926634992332820282019728792003956564819967 }, %Int256* %"$arg1_68", align 8, !dbg !255 + %"$gasrem_1195" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1196" = icmp ugt i64 1, %"$gasrem_1195" + br i1 %"$gascmp_1196", label %"$out_of_gas_1197", label %"$have_gas_1198" -"$out_of_gas_1195": ; preds = %"$have_gas_1191" +"$out_of_gas_1197": ; preds = %"$have_gas_1193" call void @_out_of_gas() - br label %"$have_gas_1196" + br label %"$have_gas_1198" -"$have_gas_1196": ; preds = %"$out_of_gas_1195", %"$have_gas_1191" - %"$consume_1197" = sub i64 %"$gasrem_1193", 1 - store i64 %"$consume_1197", i64* @_gasrem, align 8 +"$have_gas_1198": ; preds = %"$out_of_gas_1197", %"$have_gas_1193" + %"$consume_1199" = sub i64 %"$gasrem_1195", 1 + store i64 %"$consume_1199", i64* @_gasrem, align 8 %"$test_72" = alloca %TName_Bool*, align 8 - %"$gasrem_1198" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1199" = icmp ugt i64 1, %"$gasrem_1198" - br i1 %"$gascmp_1199", label %"$out_of_gas_1200", label %"$have_gas_1201" + call void @llvm.dbg.declare(metadata %TName_Bool** %"$test_72", metadata !256, metadata !DIExpression()), !dbg !257 + %"$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_1200": ; preds = %"$have_gas_1196" +"$out_of_gas_1202": ; preds = %"$have_gas_1198" call void @_out_of_gas() - br label %"$have_gas_1201" + br label %"$have_gas_1203" -"$have_gas_1201": ; preds = %"$out_of_gas_1200", %"$have_gas_1196" - %"$consume_1202" = sub i64 %"$gasrem_1198", 1 - store i64 %"$consume_1202", i64* @_gasrem, align 8 +"$have_gas_1203": ; preds = %"$out_of_gas_1202", %"$have_gas_1198" + %"$consume_1204" = sub i64 %"$gasrem_1200", 1 + store i64 %"$consume_1204", i64* @_gasrem, align 8 %"$res_69" = alloca %Int256, align 8 - %"$gasrem_1204" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1205" = icmp ugt i64 16, %"$gasrem_1204" - br i1 %"$gascmp_1205", label %"$out_of_gas_1206", label %"$have_gas_1207" - -"$out_of_gas_1206": ; preds = %"$have_gas_1201" - call void @_out_of_gas() - br label %"$have_gas_1207" - -"$have_gas_1207": ; preds = %"$out_of_gas_1206", %"$have_gas_1201" - %"$consume_1208" = sub i64 %"$gasrem_1204", 16 - store i64 %"$consume_1208", i64* @_gasrem, align 8 - %"$execptr_load_1209" = load i8*, i8** @_execptr, align 8 - %"$sub_$arg1_68_1210" = alloca %Int256, align 8 - %"$$arg1_68_1211" = load %Int256, %Int256* %"$arg1_68", align 8 - store %Int256 %"$$arg1_68_1211", %Int256* %"$sub_$arg1_68_1210", align 8 - %"$sub_$arg2_67_1212" = alloca %Int256, align 8 - %"$$arg2_67_1213" = load %Int256, %Int256* %"$arg2_67", align 8 - store %Int256 %"$$arg2_67_1213", %Int256* %"$sub_$arg2_67_1212", align 8 - %"$sub_call_1214" = call %Int256* @_sub_Int256(i8* %"$execptr_load_1209", %Int256* %"$sub_$arg1_68_1210", %Int256* %"$sub_$arg2_67_1212"), !dbg !91 - %"$sub_1216" = load %Int256, %Int256* %"$sub_call_1214", align 8 - store %Int256 %"$sub_1216", %Int256* %"$res_69", align 8, !dbg !91 - %"$gasrem_1217" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1218" = icmp ugt i64 1, %"$gasrem_1217" - br i1 %"$gascmp_1218", label %"$out_of_gas_1219", label %"$have_gas_1220" - -"$out_of_gas_1219": ; preds = %"$have_gas_1207" - call void @_out_of_gas() - br label %"$have_gas_1220" - -"$have_gas_1220": ; preds = %"$out_of_gas_1219", %"$have_gas_1207" - %"$consume_1221" = sub i64 %"$gasrem_1217", 1 - store i64 %"$consume_1221", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %Int256* %"$res_69", metadata !258, metadata !DIExpression()), !dbg !259 + %"$gasrem_1206" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1207" = icmp ugt i64 16, %"$gasrem_1206" + br i1 %"$gascmp_1207", label %"$out_of_gas_1208", label %"$have_gas_1209" + +"$out_of_gas_1208": ; preds = %"$have_gas_1203" + call void @_out_of_gas() + br label %"$have_gas_1209" + +"$have_gas_1209": ; preds = %"$out_of_gas_1208", %"$have_gas_1203" + %"$consume_1210" = sub i64 %"$gasrem_1206", 16 + store i64 %"$consume_1210", i64* @_gasrem, align 8 + %"$execptr_load_1211" = load i8*, i8** @_execptr, align 8 + %"$sub_$arg1_68_1212" = alloca %Int256, align 8 + %"$$arg1_68_1213" = load %Int256, %Int256* %"$arg1_68", align 8 + store %Int256 %"$$arg1_68_1213", %Int256* %"$sub_$arg1_68_1212", align 8 + %"$sub_$arg2_67_1214" = alloca %Int256, align 8 + %"$$arg2_67_1215" = load %Int256, %Int256* %"$arg2_67", align 8 + store %Int256 %"$$arg2_67_1215", %Int256* %"$sub_$arg2_67_1214", align 8 + %"$sub_call_1216" = call %Int256* @_sub_Int256(i8* %"$execptr_load_1211", %Int256* %"$sub_$arg1_68_1212", %Int256* %"$sub_$arg2_67_1214"), !dbg !260 + %"$sub_1218" = load %Int256, %Int256* %"$sub_call_1216", align 8 + store %Int256 %"$sub_1218", %Int256* %"$res_69", align 8, !dbg !260 + %"$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" + +"$out_of_gas_1221": ; preds = %"$have_gas_1209" + call void @_out_of_gas() + br label %"$have_gas_1222" + +"$have_gas_1222": ; preds = %"$out_of_gas_1221", %"$have_gas_1209" + %"$consume_1223" = sub i64 %"$gasrem_1219", 1 + store i64 %"$consume_1223", i64* @_gasrem, align 8 %"$res__70" = alloca %Int256, 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" + call void @llvm.dbg.declare(metadata %Int256* %"$res__70", metadata !261, metadata !DIExpression()), !dbg !262 + %"$gasrem_1224" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1225" = icmp ugt i64 1, %"$gasrem_1224" + br i1 %"$gascmp_1225", label %"$out_of_gas_1226", label %"$have_gas_1227" -"$out_of_gas_1224": ; preds = %"$have_gas_1220" +"$out_of_gas_1226": ; preds = %"$have_gas_1222" call void @_out_of_gas() - br label %"$have_gas_1225" + br label %"$have_gas_1227" -"$have_gas_1225": ; preds = %"$out_of_gas_1224", %"$have_gas_1220" - %"$consume_1226" = sub i64 %"$gasrem_1222", 1 - store i64 %"$consume_1226", i64* @_gasrem, align 8 - store %Int256 { i256 -57896044618658097711785492504343953926634992332820282019728792003956564819967 }, %Int256* %"$res__70", align 8, !dbg !92 - %"$gasrem_1227" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1228" = icmp ugt i64 1, %"$gasrem_1227" - br i1 %"$gascmp_1228", label %"$out_of_gas_1229", label %"$have_gas_1230" +"$have_gas_1227": ; preds = %"$out_of_gas_1226", %"$have_gas_1222" + %"$consume_1228" = sub i64 %"$gasrem_1224", 1 + store i64 %"$consume_1228", i64* @_gasrem, align 8 + store %Int256 { i256 -57896044618658097711785492504343953926634992332820282019728792003956564819967 }, %Int256* %"$res__70", align 8, !dbg !263 + %"$gasrem_1229" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1230" = icmp ugt i64 1, %"$gasrem_1229" + br i1 %"$gascmp_1230", label %"$out_of_gas_1231", label %"$have_gas_1232" -"$out_of_gas_1229": ; preds = %"$have_gas_1225" +"$out_of_gas_1231": ; preds = %"$have_gas_1227" call void @_out_of_gas() - br label %"$have_gas_1230" + br label %"$have_gas_1232" -"$have_gas_1230": ; preds = %"$out_of_gas_1229", %"$have_gas_1225" - %"$consume_1231" = sub i64 %"$gasrem_1227", 1 - store i64 %"$consume_1231", i64* @_gasrem, align 8 +"$have_gas_1232": ; preds = %"$out_of_gas_1231", %"$have_gas_1227" + %"$consume_1233" = sub i64 %"$gasrem_1229", 1 + store i64 %"$consume_1233", i64* @_gasrem, align 8 %"$test__71" = alloca %TName_Bool*, align 8 - %"$gasrem_1233" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1234" = icmp ugt i64 16, %"$gasrem_1233" - br i1 %"$gascmp_1234", label %"$out_of_gas_1235", label %"$have_gas_1236" - -"$out_of_gas_1235": ; preds = %"$have_gas_1230" - call void @_out_of_gas() - br label %"$have_gas_1236" - -"$have_gas_1236": ; preds = %"$out_of_gas_1235", %"$have_gas_1230" - %"$consume_1237" = sub i64 %"$gasrem_1233", 16 - store i64 %"$consume_1237", i64* @_gasrem, align 8 - %"$execptr_load_1238" = load i8*, i8** @_execptr, align 8 - %"$eq_$res_69_1239" = alloca %Int256, align 8 - %"$$res_69_1240" = load %Int256, %Int256* %"$res_69", align 8 - store %Int256 %"$$res_69_1240", %Int256* %"$eq_$res_69_1239", align 8 - %"$eq_$res__70_1241" = alloca %Int256, align 8 - %"$$res__70_1242" = load %Int256, %Int256* %"$res__70", align 8 - store %Int256 %"$$res__70_1242", %Int256* %"$eq_$res__70_1241", align 8 - %"$eq_call_1243" = call %TName_Bool* @_eq_Int256(i8* %"$execptr_load_1238", %Int256* %"$eq_$res_69_1239", %Int256* %"$eq_$res__70_1241"), !dbg !93 - store %TName_Bool* %"$eq_call_1243", %TName_Bool** %"$test__71", align 8, !dbg !93 - %"$gasrem_1245" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1246" = icmp ugt i64 1, %"$gasrem_1245" - br i1 %"$gascmp_1246", label %"$out_of_gas_1247", label %"$have_gas_1248" - -"$out_of_gas_1247": ; preds = %"$have_gas_1236" - call void @_out_of_gas() - br label %"$have_gas_1248" - -"$have_gas_1248": ; preds = %"$out_of_gas_1247", %"$have_gas_1236" - %"$consume_1249" = sub i64 %"$gasrem_1245", 1 - store i64 %"$consume_1249", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$test__71", metadata !264, metadata !DIExpression()), !dbg !265 + %"$gasrem_1235" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1236" = icmp ugt i64 16, %"$gasrem_1235" + br i1 %"$gascmp_1236", label %"$out_of_gas_1237", label %"$have_gas_1238" + +"$out_of_gas_1237": ; preds = %"$have_gas_1232" + call void @_out_of_gas() + br label %"$have_gas_1238" + +"$have_gas_1238": ; preds = %"$out_of_gas_1237", %"$have_gas_1232" + %"$consume_1239" = sub i64 %"$gasrem_1235", 16 + store i64 %"$consume_1239", i64* @_gasrem, align 8 + %"$execptr_load_1240" = load i8*, i8** @_execptr, align 8 + %"$eq_$res_69_1241" = alloca %Int256, align 8 + %"$$res_69_1242" = load %Int256, %Int256* %"$res_69", align 8 + store %Int256 %"$$res_69_1242", %Int256* %"$eq_$res_69_1241", align 8 + %"$eq_$res__70_1243" = alloca %Int256, align 8 + %"$$res__70_1244" = load %Int256, %Int256* %"$res__70", align 8 + store %Int256 %"$$res__70_1244", %Int256* %"$eq_$res__70_1243", align 8 + %"$eq_call_1245" = call %TName_Bool* @_eq_Int256(i8* %"$execptr_load_1240", %Int256* %"$eq_$res_69_1241", %Int256* %"$eq_$res__70_1243"), !dbg !266 + store %TName_Bool* %"$eq_call_1245", %TName_Bool** %"$test__71", align 8, !dbg !266 + %"$gasrem_1247" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1248" = icmp ugt i64 1, %"$gasrem_1247" + br i1 %"$gascmp_1248", label %"$out_of_gas_1249", label %"$have_gas_1250" + +"$out_of_gas_1249": ; preds = %"$have_gas_1238" + call void @_out_of_gas() + br label %"$have_gas_1250" + +"$have_gas_1250": ; preds = %"$out_of_gas_1249", %"$have_gas_1238" + %"$consume_1251" = sub i64 %"$gasrem_1247", 1 + store i64 %"$consume_1251", i64* @_gasrem, align 8 %"$BoolUtils.andb_101" = alloca { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, align 8 - %"$BoolUtils.andb_1250" = 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_1251" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_1250", 0 - %"$BoolUtils.andb_envptr_1252" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_1250", 1 - %"$$test_66_1253" = load %TName_Bool*, %TName_Bool** %"$test_66", align 8 - %"$BoolUtils.andb_call_1254" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_1251"(i8* %"$BoolUtils.andb_envptr_1252", %TName_Bool* %"$$test_66_1253"), !dbg !94 - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_1254", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_101", align 8, !dbg !94 + %"$BoolUtils.andb_1252" = 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_1253" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_1252", 0 + %"$BoolUtils.andb_envptr_1254" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_1252", 1 + %"$$test_66_1255" = load %TName_Bool*, %TName_Bool** %"$test_66", align 8 + %"$BoolUtils.andb_call_1256" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_1253"(i8* %"$BoolUtils.andb_envptr_1254", %TName_Bool* %"$$test_66_1255"), !dbg !267 + store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_1256", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_101", align 8, !dbg !267 %"$BoolUtils.andb_102" = alloca %TName_Bool*, align 8 - %"$$BoolUtils.andb_101_1255" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_101", align 8 - %"$$BoolUtils.andb_101_fptr_1256" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_101_1255", 0 - %"$$BoolUtils.andb_101_envptr_1257" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_101_1255", 1 - %"$$test__71_1258" = load %TName_Bool*, %TName_Bool** %"$test__71", align 8 - %"$$BoolUtils.andb_101_call_1259" = call %TName_Bool* %"$$BoolUtils.andb_101_fptr_1256"(i8* %"$$BoolUtils.andb_101_envptr_1257", %TName_Bool* %"$$test__71_1258"), !dbg !94 - store %TName_Bool* %"$$BoolUtils.andb_101_call_1259", %TName_Bool** %"$BoolUtils.andb_102", align 8, !dbg !94 - %"$$BoolUtils.andb_102_1260" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_102", align 8 - store %TName_Bool* %"$$BoolUtils.andb_102_1260", %TName_Bool** %"$test_72", align 8, !dbg !94 - %"$gasrem_1261" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1262" = icmp ugt i64 1, %"$gasrem_1261" - br i1 %"$gascmp_1262", label %"$out_of_gas_1263", label %"$have_gas_1264" - -"$out_of_gas_1263": ; preds = %"$have_gas_1248" - call void @_out_of_gas() - br label %"$have_gas_1264" - -"$have_gas_1264": ; preds = %"$out_of_gas_1263", %"$have_gas_1248" - %"$consume_1265" = sub i64 %"$gasrem_1261", 1 - store i64 %"$consume_1265", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$BoolUtils.andb_102", metadata !268, metadata !DIExpression()), !dbg !267 + %"$$BoolUtils.andb_101_1257" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_101", align 8 + %"$$BoolUtils.andb_101_fptr_1258" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_101_1257", 0 + %"$$BoolUtils.andb_101_envptr_1259" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_101_1257", 1 + %"$$test__71_1260" = load %TName_Bool*, %TName_Bool** %"$test__71", align 8 + %"$$BoolUtils.andb_101_call_1261" = call %TName_Bool* %"$$BoolUtils.andb_101_fptr_1258"(i8* %"$$BoolUtils.andb_101_envptr_1259", %TName_Bool* %"$$test__71_1260"), !dbg !267 + store %TName_Bool* %"$$BoolUtils.andb_101_call_1261", %TName_Bool** %"$BoolUtils.andb_102", align 8, !dbg !267 + %"$$BoolUtils.andb_102_1262" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_102", align 8 + store %TName_Bool* %"$$BoolUtils.andb_102_1262", %TName_Bool** %"$test_72", align 8, !dbg !267 + %"$gasrem_1263" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1264" = icmp ugt i64 1, %"$gasrem_1263" + br i1 %"$gascmp_1264", label %"$out_of_gas_1265", label %"$have_gas_1266" + +"$out_of_gas_1265": ; preds = %"$have_gas_1250" + call void @_out_of_gas() + br label %"$have_gas_1266" + +"$have_gas_1266": ; preds = %"$out_of_gas_1265", %"$have_gas_1250" + %"$consume_1267" = sub i64 %"$gasrem_1263", 1 + store i64 %"$consume_1267", i64* @_gasrem, align 8 %"$arg1_73" = alloca %Int256, align 8 - %"$gasrem_1266" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1267" = icmp ugt i64 1, %"$gasrem_1266" - br i1 %"$gascmp_1267", label %"$out_of_gas_1268", label %"$have_gas_1269" + call void @llvm.dbg.declare(metadata %Int256* %"$arg1_73", metadata !269, metadata !DIExpression()), !dbg !270 + %"$gasrem_1268" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1269" = icmp ugt i64 1, %"$gasrem_1268" + br i1 %"$gascmp_1269", label %"$out_of_gas_1270", label %"$have_gas_1271" -"$out_of_gas_1268": ; preds = %"$have_gas_1264" +"$out_of_gas_1270": ; preds = %"$have_gas_1266" call void @_out_of_gas() - br label %"$have_gas_1269" + br label %"$have_gas_1271" -"$have_gas_1269": ; preds = %"$out_of_gas_1268", %"$have_gas_1264" - %"$consume_1270" = sub i64 %"$gasrem_1266", 1 - store i64 %"$consume_1270", i64* @_gasrem, align 8 - store %Int256 zeroinitializer, %Int256* %"$arg1_73", align 8, !dbg !95 - %"$gasrem_1271" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1272" = icmp ugt i64 1, %"$gasrem_1271" - br i1 %"$gascmp_1272", label %"$out_of_gas_1273", label %"$have_gas_1274" +"$have_gas_1271": ; preds = %"$out_of_gas_1270", %"$have_gas_1266" + %"$consume_1272" = sub i64 %"$gasrem_1268", 1 + store i64 %"$consume_1272", i64* @_gasrem, align 8 + store %Int256 zeroinitializer, %Int256* %"$arg1_73", align 8, !dbg !271 + %"$gasrem_1273" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1274" = icmp ugt i64 1, %"$gasrem_1273" + br i1 %"$gascmp_1274", label %"$out_of_gas_1275", label %"$have_gas_1276" -"$out_of_gas_1273": ; preds = %"$have_gas_1269" +"$out_of_gas_1275": ; preds = %"$have_gas_1271" call void @_out_of_gas() - br label %"$have_gas_1274" + br label %"$have_gas_1276" -"$have_gas_1274": ; preds = %"$out_of_gas_1273", %"$have_gas_1269" - %"$consume_1275" = sub i64 %"$gasrem_1271", 1 - store i64 %"$consume_1275", i64* @_gasrem, align 8 +"$have_gas_1276": ; preds = %"$out_of_gas_1275", %"$have_gas_1271" + %"$consume_1277" = sub i64 %"$gasrem_1273", 1 + store i64 %"$consume_1277", i64* @_gasrem, align 8 %"$arg2_74" = alloca %Int256, align 8 - %"$gasrem_1276" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1277" = icmp ugt i64 1, %"$gasrem_1276" - br i1 %"$gascmp_1277", label %"$out_of_gas_1278", label %"$have_gas_1279" + call void @llvm.dbg.declare(metadata %Int256* %"$arg2_74", metadata !272, metadata !DIExpression()), !dbg !273 + %"$gasrem_1278" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1279" = icmp ugt i64 1, %"$gasrem_1278" + br i1 %"$gascmp_1279", label %"$out_of_gas_1280", label %"$have_gas_1281" -"$out_of_gas_1278": ; preds = %"$have_gas_1274" +"$out_of_gas_1280": ; preds = %"$have_gas_1276" call void @_out_of_gas() - br label %"$have_gas_1279" + br label %"$have_gas_1281" -"$have_gas_1279": ; preds = %"$out_of_gas_1278", %"$have_gas_1274" - %"$consume_1280" = sub i64 %"$gasrem_1276", 1 - store i64 %"$consume_1280", i64* @_gasrem, align 8 - store %Int256 { i256 -1 }, %Int256* %"$arg2_74", align 8, !dbg !96 - %"$gasrem_1281" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1282" = icmp ugt i64 1, %"$gasrem_1281" - br i1 %"$gascmp_1282", label %"$out_of_gas_1283", label %"$have_gas_1284" +"$have_gas_1281": ; preds = %"$out_of_gas_1280", %"$have_gas_1276" + %"$consume_1282" = sub i64 %"$gasrem_1278", 1 + store i64 %"$consume_1282", i64* @_gasrem, align 8 + store %Int256 { i256 -1 }, %Int256* %"$arg2_74", align 8, !dbg !274 + %"$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_1283": ; preds = %"$have_gas_1279" +"$out_of_gas_1285": ; preds = %"$have_gas_1281" call void @_out_of_gas() - br label %"$have_gas_1284" + br label %"$have_gas_1286" -"$have_gas_1284": ; preds = %"$out_of_gas_1283", %"$have_gas_1279" - %"$consume_1285" = sub i64 %"$gasrem_1281", 1 - store i64 %"$consume_1285", i64* @_gasrem, align 8 +"$have_gas_1286": ; preds = %"$out_of_gas_1285", %"$have_gas_1281" + %"$consume_1287" = sub i64 %"$gasrem_1283", 1 + store i64 %"$consume_1287", i64* @_gasrem, align 8 %"$test_78" = alloca %TName_Bool*, align 8 - %"$gasrem_1286" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1287" = icmp ugt i64 1, %"$gasrem_1286" - br i1 %"$gascmp_1287", label %"$out_of_gas_1288", label %"$have_gas_1289" + call void @llvm.dbg.declare(metadata %TName_Bool** %"$test_78", metadata !275, metadata !DIExpression()), !dbg !276 + %"$gasrem_1288" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1289" = icmp ugt i64 1, %"$gasrem_1288" + br i1 %"$gascmp_1289", label %"$out_of_gas_1290", label %"$have_gas_1291" -"$out_of_gas_1288": ; preds = %"$have_gas_1284" +"$out_of_gas_1290": ; preds = %"$have_gas_1286" call void @_out_of_gas() - br label %"$have_gas_1289" + br label %"$have_gas_1291" -"$have_gas_1289": ; preds = %"$out_of_gas_1288", %"$have_gas_1284" - %"$consume_1290" = sub i64 %"$gasrem_1286", 1 - store i64 %"$consume_1290", i64* @_gasrem, align 8 +"$have_gas_1291": ; preds = %"$out_of_gas_1290", %"$have_gas_1286" + %"$consume_1292" = sub i64 %"$gasrem_1288", 1 + store i64 %"$consume_1292", i64* @_gasrem, align 8 %"$res_75" = alloca %Int256, align 8 - %"$gasrem_1292" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1293" = icmp ugt i64 16, %"$gasrem_1292" - br i1 %"$gascmp_1293", label %"$out_of_gas_1294", label %"$have_gas_1295" - -"$out_of_gas_1294": ; preds = %"$have_gas_1289" - call void @_out_of_gas() - br label %"$have_gas_1295" - -"$have_gas_1295": ; preds = %"$out_of_gas_1294", %"$have_gas_1289" - %"$consume_1296" = sub i64 %"$gasrem_1292", 16 - store i64 %"$consume_1296", i64* @_gasrem, align 8 - %"$execptr_load_1297" = load i8*, i8** @_execptr, align 8 - %"$sub_$arg1_73_1298" = alloca %Int256, align 8 - %"$$arg1_73_1299" = load %Int256, %Int256* %"$arg1_73", align 8 - store %Int256 %"$$arg1_73_1299", %Int256* %"$sub_$arg1_73_1298", align 8 - %"$sub_$arg2_74_1300" = alloca %Int256, align 8 - %"$$arg2_74_1301" = load %Int256, %Int256* %"$arg2_74", align 8 - store %Int256 %"$$arg2_74_1301", %Int256* %"$sub_$arg2_74_1300", align 8 - %"$sub_call_1302" = call %Int256* @_sub_Int256(i8* %"$execptr_load_1297", %Int256* %"$sub_$arg1_73_1298", %Int256* %"$sub_$arg2_74_1300"), !dbg !97 - %"$sub_1304" = load %Int256, %Int256* %"$sub_call_1302", align 8 - store %Int256 %"$sub_1304", %Int256* %"$res_75", align 8, !dbg !97 - %"$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_1295" - call void @_out_of_gas() - br label %"$have_gas_1308" - -"$have_gas_1308": ; preds = %"$out_of_gas_1307", %"$have_gas_1295" - %"$consume_1309" = sub i64 %"$gasrem_1305", 1 - store i64 %"$consume_1309", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %Int256* %"$res_75", metadata !277, metadata !DIExpression()), !dbg !278 + %"$gasrem_1294" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1295" = icmp ugt i64 16, %"$gasrem_1294" + br i1 %"$gascmp_1295", label %"$out_of_gas_1296", label %"$have_gas_1297" + +"$out_of_gas_1296": ; preds = %"$have_gas_1291" + call void @_out_of_gas() + br label %"$have_gas_1297" + +"$have_gas_1297": ; preds = %"$out_of_gas_1296", %"$have_gas_1291" + %"$consume_1298" = sub i64 %"$gasrem_1294", 16 + store i64 %"$consume_1298", i64* @_gasrem, align 8 + %"$execptr_load_1299" = load i8*, i8** @_execptr, align 8 + %"$sub_$arg1_73_1300" = alloca %Int256, align 8 + %"$$arg1_73_1301" = load %Int256, %Int256* %"$arg1_73", align 8 + store %Int256 %"$$arg1_73_1301", %Int256* %"$sub_$arg1_73_1300", align 8 + %"$sub_$arg2_74_1302" = alloca %Int256, align 8 + %"$$arg2_74_1303" = load %Int256, %Int256* %"$arg2_74", align 8 + store %Int256 %"$$arg2_74_1303", %Int256* %"$sub_$arg2_74_1302", align 8 + %"$sub_call_1304" = call %Int256* @_sub_Int256(i8* %"$execptr_load_1299", %Int256* %"$sub_$arg1_73_1300", %Int256* %"$sub_$arg2_74_1302"), !dbg !279 + %"$sub_1306" = load %Int256, %Int256* %"$sub_call_1304", align 8 + store %Int256 %"$sub_1306", %Int256* %"$res_75", align 8, !dbg !279 + %"$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 = %"$have_gas_1297" + call void @_out_of_gas() + br label %"$have_gas_1310" + +"$have_gas_1310": ; preds = %"$out_of_gas_1309", %"$have_gas_1297" + %"$consume_1311" = sub i64 %"$gasrem_1307", 1 + store i64 %"$consume_1311", i64* @_gasrem, align 8 %"$res__76" = alloca %Int256, 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" + call void @llvm.dbg.declare(metadata %Int256* %"$res__76", metadata !280, metadata !DIExpression()), !dbg !281 + %"$gasrem_1312" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1313" = icmp ugt i64 1, %"$gasrem_1312" + br i1 %"$gascmp_1313", label %"$out_of_gas_1314", label %"$have_gas_1315" -"$out_of_gas_1312": ; preds = %"$have_gas_1308" +"$out_of_gas_1314": ; preds = %"$have_gas_1310" call void @_out_of_gas() - br label %"$have_gas_1313" + br label %"$have_gas_1315" -"$have_gas_1313": ; preds = %"$out_of_gas_1312", %"$have_gas_1308" - %"$consume_1314" = sub i64 %"$gasrem_1310", 1 - store i64 %"$consume_1314", i64* @_gasrem, align 8 - store %Int256 { i256 1 }, %Int256* %"$res__76", align 8, !dbg !98 - %"$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" +"$have_gas_1315": ; preds = %"$out_of_gas_1314", %"$have_gas_1310" + %"$consume_1316" = sub i64 %"$gasrem_1312", 1 + store i64 %"$consume_1316", i64* @_gasrem, align 8 + store %Int256 { i256 1 }, %Int256* %"$res__76", align 8, !dbg !282 + %"$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_1317": ; preds = %"$have_gas_1313" +"$out_of_gas_1319": ; preds = %"$have_gas_1315" call void @_out_of_gas() - br label %"$have_gas_1318" + br label %"$have_gas_1320" -"$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 +"$have_gas_1320": ; preds = %"$out_of_gas_1319", %"$have_gas_1315" + %"$consume_1321" = sub i64 %"$gasrem_1317", 1 + store i64 %"$consume_1321", i64* @_gasrem, align 8 %"$test__77" = alloca %TName_Bool*, align 8 - %"$gasrem_1321" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1322" = icmp ugt i64 16, %"$gasrem_1321" - br i1 %"$gascmp_1322", label %"$out_of_gas_1323", label %"$have_gas_1324" - -"$out_of_gas_1323": ; preds = %"$have_gas_1318" - call void @_out_of_gas() - br label %"$have_gas_1324" - -"$have_gas_1324": ; preds = %"$out_of_gas_1323", %"$have_gas_1318" - %"$consume_1325" = sub i64 %"$gasrem_1321", 16 - store i64 %"$consume_1325", i64* @_gasrem, align 8 - %"$execptr_load_1326" = load i8*, i8** @_execptr, align 8 - %"$eq_$res_75_1327" = alloca %Int256, align 8 - %"$$res_75_1328" = load %Int256, %Int256* %"$res_75", align 8 - store %Int256 %"$$res_75_1328", %Int256* %"$eq_$res_75_1327", align 8 - %"$eq_$res__76_1329" = alloca %Int256, align 8 - %"$$res__76_1330" = load %Int256, %Int256* %"$res__76", align 8 - store %Int256 %"$$res__76_1330", %Int256* %"$eq_$res__76_1329", align 8 - %"$eq_call_1331" = call %TName_Bool* @_eq_Int256(i8* %"$execptr_load_1326", %Int256* %"$eq_$res_75_1327", %Int256* %"$eq_$res__76_1329"), !dbg !99 - store %TName_Bool* %"$eq_call_1331", %TName_Bool** %"$test__77", align 8, !dbg !99 - %"$gasrem_1333" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1334" = icmp ugt i64 1, %"$gasrem_1333" - br i1 %"$gascmp_1334", label %"$out_of_gas_1335", label %"$have_gas_1336" - -"$out_of_gas_1335": ; preds = %"$have_gas_1324" - call void @_out_of_gas() - br label %"$have_gas_1336" - -"$have_gas_1336": ; preds = %"$out_of_gas_1335", %"$have_gas_1324" - %"$consume_1337" = sub i64 %"$gasrem_1333", 1 - store i64 %"$consume_1337", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$test__77", metadata !283, metadata !DIExpression()), !dbg !284 + %"$gasrem_1323" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1324" = icmp ugt i64 16, %"$gasrem_1323" + br i1 %"$gascmp_1324", label %"$out_of_gas_1325", label %"$have_gas_1326" + +"$out_of_gas_1325": ; preds = %"$have_gas_1320" + call void @_out_of_gas() + br label %"$have_gas_1326" + +"$have_gas_1326": ; preds = %"$out_of_gas_1325", %"$have_gas_1320" + %"$consume_1327" = sub i64 %"$gasrem_1323", 16 + store i64 %"$consume_1327", i64* @_gasrem, align 8 + %"$execptr_load_1328" = load i8*, i8** @_execptr, align 8 + %"$eq_$res_75_1329" = alloca %Int256, align 8 + %"$$res_75_1330" = load %Int256, %Int256* %"$res_75", align 8 + store %Int256 %"$$res_75_1330", %Int256* %"$eq_$res_75_1329", align 8 + %"$eq_$res__76_1331" = alloca %Int256, align 8 + %"$$res__76_1332" = load %Int256, %Int256* %"$res__76", align 8 + store %Int256 %"$$res__76_1332", %Int256* %"$eq_$res__76_1331", align 8 + %"$eq_call_1333" = call %TName_Bool* @_eq_Int256(i8* %"$execptr_load_1328", %Int256* %"$eq_$res_75_1329", %Int256* %"$eq_$res__76_1331"), !dbg !285 + store %TName_Bool* %"$eq_call_1333", %TName_Bool** %"$test__77", align 8, !dbg !285 + %"$gasrem_1335" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1336" = icmp ugt i64 1, %"$gasrem_1335" + br i1 %"$gascmp_1336", label %"$out_of_gas_1337", label %"$have_gas_1338" + +"$out_of_gas_1337": ; preds = %"$have_gas_1326" + call void @_out_of_gas() + br label %"$have_gas_1338" + +"$have_gas_1338": ; preds = %"$out_of_gas_1337", %"$have_gas_1326" + %"$consume_1339" = sub i64 %"$gasrem_1335", 1 + store i64 %"$consume_1339", i64* @_gasrem, align 8 %"$BoolUtils.andb_103" = alloca { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, align 8 - %"$BoolUtils.andb_1338" = 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_1339" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_1338", 0 - %"$BoolUtils.andb_envptr_1340" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_1338", 1 - %"$$test_72_1341" = load %TName_Bool*, %TName_Bool** %"$test_72", align 8 - %"$BoolUtils.andb_call_1342" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_1339"(i8* %"$BoolUtils.andb_envptr_1340", %TName_Bool* %"$$test_72_1341"), !dbg !100 - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_1342", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_103", align 8, !dbg !100 + %"$BoolUtils.andb_1340" = 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_1341" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_1340", 0 + %"$BoolUtils.andb_envptr_1342" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_1340", 1 + %"$$test_72_1343" = load %TName_Bool*, %TName_Bool** %"$test_72", align 8 + %"$BoolUtils.andb_call_1344" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_1341"(i8* %"$BoolUtils.andb_envptr_1342", %TName_Bool* %"$$test_72_1343"), !dbg !286 + store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_1344", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_103", align 8, !dbg !286 %"$BoolUtils.andb_104" = alloca %TName_Bool*, align 8 - %"$$BoolUtils.andb_103_1343" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_103", align 8 - %"$$BoolUtils.andb_103_fptr_1344" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_103_1343", 0 - %"$$BoolUtils.andb_103_envptr_1345" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_103_1343", 1 - %"$$test__77_1346" = load %TName_Bool*, %TName_Bool** %"$test__77", align 8 - %"$$BoolUtils.andb_103_call_1347" = call %TName_Bool* %"$$BoolUtils.andb_103_fptr_1344"(i8* %"$$BoolUtils.andb_103_envptr_1345", %TName_Bool* %"$$test__77_1346"), !dbg !100 - store %TName_Bool* %"$$BoolUtils.andb_103_call_1347", %TName_Bool** %"$BoolUtils.andb_104", align 8, !dbg !100 - %"$$BoolUtils.andb_104_1348" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_104", align 8 - store %TName_Bool* %"$$BoolUtils.andb_104_1348", %TName_Bool** %"$test_78", align 8, !dbg !100 - %"$gasrem_1349" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1350" = icmp ugt i64 1, %"$gasrem_1349" - br i1 %"$gascmp_1350", label %"$out_of_gas_1351", label %"$have_gas_1352" - -"$out_of_gas_1351": ; preds = %"$have_gas_1336" - call void @_out_of_gas() - br label %"$have_gas_1352" - -"$have_gas_1352": ; preds = %"$out_of_gas_1351", %"$have_gas_1336" - %"$consume_1353" = sub i64 %"$gasrem_1349", 1 - store i64 %"$consume_1353", i64* @_gasrem, align 8 - %"$$test_78_1354" = load %TName_Bool*, %TName_Bool** %"$test_78", align 8 - store %TName_Bool* %"$$test_78_1354", %TName_Bool** %"$expr_109", align 8, !dbg !101 - %"$$expr_109_1355" = load %TName_Bool*, %TName_Bool** %"$expr_109", align 8 - ret %TName_Bool* %"$$expr_109_1355" + call void @llvm.dbg.declare(metadata %TName_Bool** %"$BoolUtils.andb_104", metadata !287, metadata !DIExpression()), !dbg !286 + %"$$BoolUtils.andb_103_1345" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_103", align 8 + %"$$BoolUtils.andb_103_fptr_1346" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_103_1345", 0 + %"$$BoolUtils.andb_103_envptr_1347" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_103_1345", 1 + %"$$test__77_1348" = load %TName_Bool*, %TName_Bool** %"$test__77", align 8 + %"$$BoolUtils.andb_103_call_1349" = call %TName_Bool* %"$$BoolUtils.andb_103_fptr_1346"(i8* %"$$BoolUtils.andb_103_envptr_1347", %TName_Bool* %"$$test__77_1348"), !dbg !286 + store %TName_Bool* %"$$BoolUtils.andb_103_call_1349", %TName_Bool** %"$BoolUtils.andb_104", align 8, !dbg !286 + %"$$BoolUtils.andb_104_1350" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_104", align 8 + store %TName_Bool* %"$$BoolUtils.andb_104_1350", %TName_Bool** %"$test_78", align 8, !dbg !286 + %"$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" + +"$out_of_gas_1353": ; preds = %"$have_gas_1338" + call void @_out_of_gas() + br label %"$have_gas_1354" + +"$have_gas_1354": ; preds = %"$out_of_gas_1353", %"$have_gas_1338" + %"$consume_1355" = sub i64 %"$gasrem_1351", 1 + store i64 %"$consume_1355", i64* @_gasrem, align 8 + %"$$test_78_1356" = load %TName_Bool*, %TName_Bool** %"$test_78", align 8 + store %TName_Bool* %"$$test_78_1356", %TName_Bool** %"$expr_109", align 8, !dbg !288 + %"$$expr_109_1357" = load %TName_Bool*, %TName_Bool** %"$expr_109", align 8 + ret %TName_Bool* %"$$expr_109_1357" } declare %Uint32 @_sub_Uint32(%Uint32, %Uint32) @@ -2718,115 +2821,304 @@ declare void @_print_scilla_val(i8*, %_TyDescrTy_Typ*, i8*) define void @scilla_main() { entry: - %"$exprval_1356" = call %TName_Bool* @_scilla_expr_fun(i8* null) - %"$memvoidcast_1357" = bitcast %TName_Bool* %"$exprval_1356" to i8* - %"$execptr_load_1358" = load i8*, i8** @_execptr, align 8 - call void @_print_scilla_val(i8* %"$execptr_load_1358", %_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_144", i8* %"$memvoidcast_1357") + %"$exprval_1358" = call %TName_Bool* @_scilla_expr_fun(i8* null) + %"$memvoidcast_1359" = bitcast %TName_Bool* %"$exprval_1358" to i8* + %"$execptr_load_1360" = load i8*, i8** @_execptr, align 8 + call void @_print_scilla_val(i8* %"$execptr_load_1360", %_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_144", i8* %"$memvoidcast_1359") ret void } +attributes #0 = { nocallback nofree nosync nounwind readnone speculatable willreturn } + !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) +!1 = distinct !DICompileUnit(language: DW_LANG_C89, file: !2, producer: "Scilla Compiler", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false) !2 = !DIFile(filename: "builtin_sub.scilexp", directory: "codegen/expr") -!3 = !{} -!4 = distinct !DISubprogram(name: "$fundef_107", linkageName: "$fundef_107", scope: !5, file: !5, line: 8, type: !6, scopeLine: 8, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!5 = !DIFile(filename: "BoolUtils.scillib", directory: "../src/stdlib") -!6 = !DISubroutineType(types: !7) -!7 = !{!8} -!8 = !DIBasicType(tag: DW_TAG_unspecified_type, name: "void") -!9 = !DILocation(line: 8, column: 5, scope: !4) -!10 = !DILocation(line: 9, column: 16, scope: !11) -!11 = distinct !DILexicalBlock(scope: !12, file: !5, line: 9, column: 7) -!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_105", linkageName: "$fundef_105", 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: 0, scope: !17) -!20 = !DILocation(line: 7, column: 3, scope: !17) -!21 = distinct !DISubprogram(name: "_scilla_expr_fun", linkageName: "_scilla_expr_fun", scope: !2, file: !2, line: 1, type: !6, scopeLine: 1, spFlags: DISPFlagDefinition, unit: !1, retainedNodes: !3) -!22 = !DILocation(line: 2, column: 12, scope: !21) -!23 = !DILocation(line: 4, column: 12, scope: !21) -!24 = !DILocation(line: 5, column: 12, scope: !21) -!25 = !DILocation(line: 7, column: 13, scope: !21) -!26 = !DILocation(line: 8, column: 14, scope: !21) -!27 = !DILocation(line: 9, column: 15, scope: !21) -!28 = !DILocation(line: 10, column: 3, scope: !21) -!29 = !DILocation(line: 13, column: 12, scope: !21) -!30 = !DILocation(line: 14, column: 12, scope: !21) -!31 = !DILocation(line: 16, column: 13, scope: !21) -!32 = !DILocation(line: 17, column: 14, scope: !21) -!33 = !DILocation(line: 18, column: 15, scope: !21) -!34 = !DILocation(line: 19, column: 3, scope: !21) -!35 = !DILocation(line: 22, column: 12, scope: !21) -!36 = !DILocation(line: 23, column: 12, scope: !21) -!37 = !DILocation(line: 25, column: 13, scope: !21) -!38 = !DILocation(line: 26, column: 14, scope: !21) -!39 = !DILocation(line: 27, column: 15, scope: !21) -!40 = !DILocation(line: 28, column: 3, scope: !21) -!41 = !DILocation(line: 31, column: 12, scope: !21) -!42 = !DILocation(line: 32, column: 12, scope: !21) -!43 = !DILocation(line: 34, column: 13, scope: !21) -!44 = !DILocation(line: 35, column: 14, scope: !21) -!45 = !DILocation(line: 36, column: 15, scope: !21) -!46 = !DILocation(line: 37, column: 3, scope: !21) -!47 = !DILocation(line: 40, column: 12, scope: !21) -!48 = !DILocation(line: 41, column: 12, scope: !21) -!49 = !DILocation(line: 43, column: 13, scope: !21) -!50 = !DILocation(line: 44, column: 14, scope: !21) -!51 = !DILocation(line: 45, column: 15, scope: !21) -!52 = !DILocation(line: 46, column: 3, scope: !21) -!53 = !DILocation(line: 49, column: 12, scope: !21) -!54 = !DILocation(line: 50, column: 12, scope: !21) -!55 = !DILocation(line: 52, column: 13, scope: !21) -!56 = !DILocation(line: 53, column: 14, scope: !21) -!57 = !DILocation(line: 54, column: 15, scope: !21) -!58 = !DILocation(line: 55, column: 3, scope: !21) -!59 = !DILocation(line: 58, column: 12, scope: !21) -!60 = !DILocation(line: 59, column: 12, scope: !21) -!61 = !DILocation(line: 61, column: 13, scope: !21) -!62 = !DILocation(line: 62, column: 14, scope: !21) -!63 = !DILocation(line: 63, column: 15, scope: !21) -!64 = !DILocation(line: 64, column: 3, scope: !21) -!65 = !DILocation(line: 67, column: 12, scope: !21) -!66 = !DILocation(line: 68, column: 12, scope: !21) -!67 = !DILocation(line: 70, column: 13, scope: !21) -!68 = !DILocation(line: 71, column: 14, scope: !21) -!69 = !DILocation(line: 72, column: 15, scope: !21) -!70 = !DILocation(line: 73, column: 3, scope: !21) -!71 = !DILocation(line: 76, column: 12, scope: !21) -!72 = !DILocation(line: 77, column: 12, scope: !21) -!73 = !DILocation(line: 79, column: 13, scope: !21) -!74 = !DILocation(line: 80, column: 14, scope: !21) -!75 = !DILocation(line: 81, column: 15, scope: !21) -!76 = !DILocation(line: 82, column: 3, scope: !21) -!77 = !DILocation(line: 85, column: 12, scope: !21) -!78 = !DILocation(line: 86, column: 12, scope: !21) -!79 = !DILocation(line: 88, column: 13, scope: !21) -!80 = !DILocation(line: 89, column: 14, scope: !21) -!81 = !DILocation(line: 90, column: 15, scope: !21) -!82 = !DILocation(line: 91, column: 3, scope: !21) -!83 = !DILocation(line: 94, column: 12, scope: !21) -!84 = !DILocation(line: 95, column: 12, scope: !21) -!85 = !DILocation(line: 97, column: 13, scope: !21) -!86 = !DILocation(line: 98, column: 14, scope: !21) -!87 = !DILocation(line: 99, column: 15, scope: !21) -!88 = !DILocation(line: 100, column: 3, scope: !21) -!89 = !DILocation(line: 103, column: 12, scope: !21) -!90 = !DILocation(line: 104, column: 12, scope: !21) -!91 = !DILocation(line: 106, column: 13, scope: !21) -!92 = !DILocation(line: 107, column: 14, scope: !21) -!93 = !DILocation(line: 108, column: 15, scope: !21) -!94 = !DILocation(line: 109, column: 3, scope: !21) -!95 = !DILocation(line: 112, column: 12, scope: !21) -!96 = !DILocation(line: 113, column: 12, scope: !21) -!97 = !DILocation(line: 115, column: 13, scope: !21) -!98 = !DILocation(line: 116, column: 14, scope: !21) -!99 = !DILocation(line: 117, column: 15, scope: !21) -!100 = !DILocation(line: 118, column: 3, scope: !21) -!101 = !DILocation(line: 121, column: 1, scope: !21) +!3 = distinct !DISubprogram(name: "$fundef_107", linkageName: "$fundef_107", scope: !4, file: !4, line: 8, type: !5, scopeLine: 8, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!4 = !DIFile(filename: "BoolUtils.scillib", directory: "../src/stdlib") +!5 = !DISubroutineType(types: !6) +!6 = !{!7} +!7 = !DIBasicType(tag: DW_TAG_unspecified_type, name: "void") +!8 = !{} +!9 = !DILocalVariable(name: "c", scope: !3, file: !4, line: 7, type: !10) +!10 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "Bool", baseType: !11, size: 8, align: 8, dwarfAddressSpace: 0) +!11 = !DIBasicType(name: "Bool", size: 8) +!12 = !DILocation(line: 7, column: 8, scope: !3) +!13 = !DILocalVariable(name: "$retval_108", scope: !3, file: !4, line: 8, type: !10) +!14 = !DILocation(line: 8, column: 5, scope: !3) +!15 = !DILocation(line: 9, column: 16, scope: !16) +!16 = distinct !DILexicalBlock(scope: !17, file: !4, line: 9, column: 7) +!17 = distinct !DILexicalBlock(scope: !3, file: !4, line: 8, column: 5) +!18 = !DILocation(line: 10, column: 16, scope: !19) +!19 = distinct !DILexicalBlock(scope: !17, file: !4, line: 10, column: 7) +!20 = distinct !DISubprogram(name: "$fundef_105", linkageName: "$fundef_105", scope: !4, file: !4, line: 7, type: !5, scopeLine: 7, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!21 = !DILocalVariable(name: "b", scope: !20, file: !4, line: 6, type: !10) +!22 = !DILocation(line: 6, column: 8, scope: !20) +!23 = !DILocation(line: 8, column: 5, scope: !20) +!24 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !25, file: !25, type: !5, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!25 = !DIFile(filename: ".", directory: ".") +!26 = !DILocation(line: 0, scope: !24) +!27 = !DILocation(line: 7, column: 3, scope: !24) +!28 = distinct !DISubprogram(name: "_scilla_expr_fun", linkageName: "_scilla_expr_fun", scope: !2, file: !2, line: 1, type: !5, scopeLine: 1, spFlags: DISPFlagDefinition, unit: !1, retainedNodes: !8) +!29 = !DILocalVariable(name: "$expr_109", scope: !28, file: !2, line: 1, type: !10) +!30 = !DILocation(line: 1, column: 13, scope: !28) +!31 = !DILocalVariable(name: "test", scope: !28, file: !2, line: 2, type: !10) +!32 = !DILocation(line: 2, column: 5, scope: !28) +!33 = !DILocation(line: 2, column: 12, scope: !28) +!34 = !DILocalVariable(name: "arg1", scope: !28, file: !2, line: 4, type: !35) +!35 = !DIBasicType(name: "Uint32", size: 4) +!36 = !DILocation(line: 4, column: 5, scope: !28) +!37 = !DILocation(line: 4, column: 12, scope: !28) +!38 = !DILocalVariable(name: "arg2", scope: !28, file: !2, line: 5, type: !35) +!39 = !DILocation(line: 5, column: 5, scope: !28) +!40 = !DILocation(line: 5, column: 12, scope: !28) +!41 = !DILocalVariable(name: "$test_6", scope: !28, file: !2, line: 6, type: !10) +!42 = !DILocation(line: 6, column: 5, scope: !28) +!43 = !DILocalVariable(name: "res", scope: !28, file: !2, line: 7, type: !35) +!44 = !DILocation(line: 7, column: 7, scope: !28) +!45 = !DILocation(line: 7, column: 13, scope: !28) +!46 = !DILocalVariable(name: "res_", scope: !28, file: !2, line: 8, type: !35) +!47 = !DILocation(line: 8, column: 7, scope: !28) +!48 = !DILocation(line: 8, column: 14, scope: !28) +!49 = !DILocalVariable(name: "test_", scope: !28, file: !2, line: 9, type: !10) +!50 = !DILocation(line: 9, column: 7, scope: !28) +!51 = !DILocation(line: 9, column: 15, scope: !28) +!52 = !DILocation(line: 10, column: 3, scope: !28) +!53 = !DILocalVariable(name: "$BoolUtils.andb_80", scope: !28, file: !2, line: 10, type: !10) +!54 = !DILocalVariable(name: "$arg2_7", scope: !28, file: !2, line: 13, type: !55) +!55 = !DIBasicType(name: "Int32", size: 4) +!56 = !DILocation(line: 13, column: 5, scope: !28) +!57 = !DILocation(line: 13, column: 12, scope: !28) +!58 = !DILocalVariable(name: "$arg1_8", scope: !28, file: !2, line: 14, type: !55) +!59 = !DILocation(line: 14, column: 5, scope: !28) +!60 = !DILocation(line: 14, column: 12, scope: !28) +!61 = !DILocalVariable(name: "$test_12", scope: !28, file: !2, line: 15, type: !10) +!62 = !DILocation(line: 15, column: 5, scope: !28) +!63 = !DILocalVariable(name: "$res_9", scope: !28, file: !2, line: 16, type: !55) +!64 = !DILocation(line: 16, column: 7, scope: !28) +!65 = !DILocation(line: 16, column: 13, scope: !28) +!66 = !DILocalVariable(name: "$res__10", scope: !28, file: !2, line: 17, type: !55) +!67 = !DILocation(line: 17, column: 7, scope: !28) +!68 = !DILocation(line: 17, column: 14, scope: !28) +!69 = !DILocalVariable(name: "$test__11", scope: !28, file: !2, line: 18, type: !10) +!70 = !DILocation(line: 18, column: 7, scope: !28) +!71 = !DILocation(line: 18, column: 15, scope: !28) +!72 = !DILocation(line: 19, column: 3, scope: !28) +!73 = !DILocalVariable(name: "$BoolUtils.andb_82", scope: !28, file: !2, line: 19, type: !10) +!74 = !DILocalVariable(name: "$arg1_13", scope: !28, file: !2, line: 22, type: !75) +!75 = !DIBasicType(name: "Uint64", size: 8) +!76 = !DILocation(line: 22, column: 5, scope: !28) +!77 = !DILocation(line: 22, column: 12, scope: !28) +!78 = !DILocalVariable(name: "$arg2_14", scope: !28, file: !2, line: 23, type: !75) +!79 = !DILocation(line: 23, column: 5, scope: !28) +!80 = !DILocation(line: 23, column: 12, scope: !28) +!81 = !DILocalVariable(name: "$test_18", scope: !28, file: !2, line: 24, type: !10) +!82 = !DILocation(line: 24, column: 5, scope: !28) +!83 = !DILocalVariable(name: "$res_15", scope: !28, file: !2, line: 25, type: !75) +!84 = !DILocation(line: 25, column: 7, scope: !28) +!85 = !DILocation(line: 25, column: 13, scope: !28) +!86 = !DILocalVariable(name: "$res__16", scope: !28, file: !2, line: 26, type: !75) +!87 = !DILocation(line: 26, column: 7, scope: !28) +!88 = !DILocation(line: 26, column: 14, scope: !28) +!89 = !DILocalVariable(name: "$test__17", scope: !28, file: !2, line: 27, type: !10) +!90 = !DILocation(line: 27, column: 7, scope: !28) +!91 = !DILocation(line: 27, column: 15, scope: !28) +!92 = !DILocation(line: 28, column: 3, scope: !28) +!93 = !DILocalVariable(name: "$BoolUtils.andb_84", scope: !28, file: !2, line: 28, type: !10) +!94 = !DILocalVariable(name: "$arg2_19", scope: !28, file: !2, line: 31, type: !95) +!95 = !DIBasicType(name: "Int64", size: 8) +!96 = !DILocation(line: 31, column: 5, scope: !28) +!97 = !DILocation(line: 31, column: 12, scope: !28) +!98 = !DILocalVariable(name: "$arg1_20", scope: !28, file: !2, line: 32, type: !95) +!99 = !DILocation(line: 32, column: 5, scope: !28) +!100 = !DILocation(line: 32, column: 12, scope: !28) +!101 = !DILocalVariable(name: "$test_24", scope: !28, file: !2, line: 33, type: !10) +!102 = !DILocation(line: 33, column: 5, scope: !28) +!103 = !DILocalVariable(name: "$res_21", scope: !28, file: !2, line: 34, type: !95) +!104 = !DILocation(line: 34, column: 7, scope: !28) +!105 = !DILocation(line: 34, column: 13, scope: !28) +!106 = !DILocalVariable(name: "$res__22", scope: !28, file: !2, line: 35, type: !95) +!107 = !DILocation(line: 35, column: 7, scope: !28) +!108 = !DILocation(line: 35, column: 14, scope: !28) +!109 = !DILocalVariable(name: "$test__23", scope: !28, file: !2, line: 36, type: !10) +!110 = !DILocation(line: 36, column: 7, scope: !28) +!111 = !DILocation(line: 36, column: 15, scope: !28) +!112 = !DILocation(line: 37, column: 3, scope: !28) +!113 = !DILocalVariable(name: "$BoolUtils.andb_86", scope: !28, file: !2, line: 37, type: !10) +!114 = !DILocalVariable(name: "$arg1_25", scope: !28, file: !2, line: 40, type: !95) +!115 = !DILocation(line: 40, column: 5, scope: !28) +!116 = !DILocation(line: 40, column: 12, scope: !28) +!117 = !DILocalVariable(name: "$arg2_26", scope: !28, file: !2, line: 41, type: !95) +!118 = !DILocation(line: 41, column: 5, scope: !28) +!119 = !DILocation(line: 41, column: 12, scope: !28) +!120 = !DILocalVariable(name: "$test_30", scope: !28, file: !2, line: 42, type: !10) +!121 = !DILocation(line: 42, column: 5, scope: !28) +!122 = !DILocalVariable(name: "$res_27", scope: !28, file: !2, line: 43, type: !95) +!123 = !DILocation(line: 43, column: 7, scope: !28) +!124 = !DILocation(line: 43, column: 13, scope: !28) +!125 = !DILocalVariable(name: "$res__28", scope: !28, file: !2, line: 44, type: !95) +!126 = !DILocation(line: 44, column: 7, scope: !28) +!127 = !DILocation(line: 44, column: 14, scope: !28) +!128 = !DILocalVariable(name: "$test__29", scope: !28, file: !2, line: 45, type: !10) +!129 = !DILocation(line: 45, column: 7, scope: !28) +!130 = !DILocation(line: 45, column: 15, scope: !28) +!131 = !DILocation(line: 46, column: 3, scope: !28) +!132 = !DILocalVariable(name: "$BoolUtils.andb_88", scope: !28, file: !2, line: 46, type: !10) +!133 = !DILocalVariable(name: "$arg1_31", scope: !28, file: !2, line: 49, type: !134) +!134 = !DIBasicType(name: "Uint128", size: 16) +!135 = !DILocation(line: 49, column: 5, scope: !28) +!136 = !DILocation(line: 49, column: 12, scope: !28) +!137 = !DILocalVariable(name: "$arg2_32", scope: !28, file: !2, line: 50, type: !134) +!138 = !DILocation(line: 50, column: 5, scope: !28) +!139 = !DILocation(line: 50, column: 12, scope: !28) +!140 = !DILocalVariable(name: "$test_36", scope: !28, file: !2, line: 51, type: !10) +!141 = !DILocation(line: 51, column: 5, scope: !28) +!142 = !DILocalVariable(name: "$res_33", scope: !28, file: !2, line: 52, type: !134) +!143 = !DILocation(line: 52, column: 7, scope: !28) +!144 = !DILocation(line: 52, column: 13, scope: !28) +!145 = !DILocalVariable(name: "$res__34", scope: !28, file: !2, line: 53, type: !134) +!146 = !DILocation(line: 53, column: 7, scope: !28) +!147 = !DILocation(line: 53, column: 14, scope: !28) +!148 = !DILocalVariable(name: "$test__35", scope: !28, file: !2, line: 54, type: !10) +!149 = !DILocation(line: 54, column: 7, scope: !28) +!150 = !DILocation(line: 54, column: 15, scope: !28) +!151 = !DILocation(line: 55, column: 3, scope: !28) +!152 = !DILocalVariable(name: "$BoolUtils.andb_90", scope: !28, file: !2, line: 55, type: !10) +!153 = !DILocalVariable(name: "$arg1_37", scope: !28, file: !2, line: 58, type: !134) +!154 = !DILocation(line: 58, column: 5, scope: !28) +!155 = !DILocation(line: 58, column: 12, scope: !28) +!156 = !DILocalVariable(name: "$arg2_38", scope: !28, file: !2, line: 59, type: !134) +!157 = !DILocation(line: 59, column: 5, scope: !28) +!158 = !DILocation(line: 59, column: 12, scope: !28) +!159 = !DILocalVariable(name: "$test_42", scope: !28, file: !2, line: 60, type: !10) +!160 = !DILocation(line: 60, column: 5, scope: !28) +!161 = !DILocalVariable(name: "$res_39", scope: !28, file: !2, line: 61, type: !134) +!162 = !DILocation(line: 61, column: 7, scope: !28) +!163 = !DILocation(line: 61, column: 13, scope: !28) +!164 = !DILocalVariable(name: "$res__40", scope: !28, file: !2, line: 62, type: !134) +!165 = !DILocation(line: 62, column: 7, scope: !28) +!166 = !DILocation(line: 62, column: 14, scope: !28) +!167 = !DILocalVariable(name: "$test__41", scope: !28, file: !2, line: 63, type: !10) +!168 = !DILocation(line: 63, column: 7, scope: !28) +!169 = !DILocation(line: 63, column: 15, scope: !28) +!170 = !DILocation(line: 64, column: 3, scope: !28) +!171 = !DILocalVariable(name: "$BoolUtils.andb_92", scope: !28, file: !2, line: 64, type: !10) +!172 = !DILocalVariable(name: "$arg1_43", scope: !28, file: !2, line: 67, type: !173) +!173 = !DIBasicType(name: "Uint256", size: 32) +!174 = !DILocation(line: 67, column: 5, scope: !28) +!175 = !DILocation(line: 67, column: 12, scope: !28) +!176 = !DILocalVariable(name: "$arg2_44", scope: !28, file: !2, line: 68, type: !173) +!177 = !DILocation(line: 68, column: 5, scope: !28) +!178 = !DILocation(line: 68, column: 12, scope: !28) +!179 = !DILocalVariable(name: "$test_48", scope: !28, file: !2, line: 69, type: !10) +!180 = !DILocation(line: 69, column: 5, scope: !28) +!181 = !DILocalVariable(name: "$res_45", scope: !28, file: !2, line: 70, type: !173) +!182 = !DILocation(line: 70, column: 7, scope: !28) +!183 = !DILocation(line: 70, column: 13, scope: !28) +!184 = !DILocalVariable(name: "$res__46", scope: !28, file: !2, line: 71, type: !173) +!185 = !DILocation(line: 71, column: 7, scope: !28) +!186 = !DILocation(line: 71, column: 14, scope: !28) +!187 = !DILocalVariable(name: "$test__47", scope: !28, file: !2, line: 72, type: !10) +!188 = !DILocation(line: 72, column: 7, scope: !28) +!189 = !DILocation(line: 72, column: 15, scope: !28) +!190 = !DILocation(line: 73, column: 3, scope: !28) +!191 = !DILocalVariable(name: "$BoolUtils.andb_94", scope: !28, file: !2, line: 73, type: !10) +!192 = !DILocalVariable(name: "$arg1_49", scope: !28, file: !2, line: 76, type: !173) +!193 = !DILocation(line: 76, column: 5, scope: !28) +!194 = !DILocation(line: 76, column: 12, scope: !28) +!195 = !DILocalVariable(name: "$arg2_50", scope: !28, file: !2, line: 77, type: !173) +!196 = !DILocation(line: 77, column: 5, scope: !28) +!197 = !DILocation(line: 77, column: 12, scope: !28) +!198 = !DILocalVariable(name: "$test_54", scope: !28, file: !2, line: 78, type: !10) +!199 = !DILocation(line: 78, column: 5, scope: !28) +!200 = !DILocalVariable(name: "$res_51", scope: !28, file: !2, line: 79, type: !173) +!201 = !DILocation(line: 79, column: 7, scope: !28) +!202 = !DILocation(line: 79, column: 13, scope: !28) +!203 = !DILocalVariable(name: "$res__52", scope: !28, file: !2, line: 80, type: !173) +!204 = !DILocation(line: 80, column: 7, scope: !28) +!205 = !DILocation(line: 80, column: 14, scope: !28) +!206 = !DILocalVariable(name: "$test__53", scope: !28, file: !2, line: 81, type: !10) +!207 = !DILocation(line: 81, column: 7, scope: !28) +!208 = !DILocation(line: 81, column: 15, scope: !28) +!209 = !DILocation(line: 82, column: 3, scope: !28) +!210 = !DILocalVariable(name: "$BoolUtils.andb_96", scope: !28, file: !2, line: 82, type: !10) +!211 = !DILocalVariable(name: "$arg1_55", scope: !28, file: !2, line: 85, type: !173) +!212 = !DILocation(line: 85, column: 5, scope: !28) +!213 = !DILocation(line: 85, column: 12, scope: !28) +!214 = !DILocalVariable(name: "$arg2_56", scope: !28, file: !2, line: 86, type: !173) +!215 = !DILocation(line: 86, column: 5, scope: !28) +!216 = !DILocation(line: 86, column: 12, scope: !28) +!217 = !DILocalVariable(name: "$test_60", scope: !28, file: !2, line: 87, type: !10) +!218 = !DILocation(line: 87, column: 5, scope: !28) +!219 = !DILocalVariable(name: "$res_57", scope: !28, file: !2, line: 88, type: !173) +!220 = !DILocation(line: 88, column: 7, scope: !28) +!221 = !DILocation(line: 88, column: 13, scope: !28) +!222 = !DILocalVariable(name: "$res__58", scope: !28, file: !2, line: 89, type: !173) +!223 = !DILocation(line: 89, column: 7, scope: !28) +!224 = !DILocation(line: 89, column: 14, scope: !28) +!225 = !DILocalVariable(name: "$test__59", scope: !28, file: !2, line: 90, type: !10) +!226 = !DILocation(line: 90, column: 7, scope: !28) +!227 = !DILocation(line: 90, column: 15, scope: !28) +!228 = !DILocation(line: 91, column: 3, scope: !28) +!229 = !DILocalVariable(name: "$BoolUtils.andb_98", scope: !28, file: !2, line: 91, type: !10) +!230 = !DILocalVariable(name: "$arg1_61", scope: !28, file: !2, line: 94, type: !231) +!231 = !DIBasicType(name: "Int256", size: 32) +!232 = !DILocation(line: 94, column: 5, scope: !28) +!233 = !DILocation(line: 94, column: 12, scope: !28) +!234 = !DILocalVariable(name: "$arg2_62", scope: !28, file: !2, line: 95, type: !231) +!235 = !DILocation(line: 95, column: 5, scope: !28) +!236 = !DILocation(line: 95, column: 12, scope: !28) +!237 = !DILocalVariable(name: "$test_66", scope: !28, file: !2, line: 96, type: !10) +!238 = !DILocation(line: 96, column: 5, scope: !28) +!239 = !DILocalVariable(name: "$res_63", scope: !28, file: !2, line: 97, type: !231) +!240 = !DILocation(line: 97, column: 7, scope: !28) +!241 = !DILocation(line: 97, column: 13, scope: !28) +!242 = !DILocalVariable(name: "$res__64", scope: !28, file: !2, line: 98, type: !231) +!243 = !DILocation(line: 98, column: 7, scope: !28) +!244 = !DILocation(line: 98, column: 14, scope: !28) +!245 = !DILocalVariable(name: "$test__65", scope: !28, file: !2, line: 99, type: !10) +!246 = !DILocation(line: 99, column: 7, scope: !28) +!247 = !DILocation(line: 99, column: 15, scope: !28) +!248 = !DILocation(line: 100, column: 3, scope: !28) +!249 = !DILocalVariable(name: "$BoolUtils.andb_100", scope: !28, file: !2, line: 100, type: !10) +!250 = !DILocalVariable(name: "$arg2_67", scope: !28, file: !2, line: 103, type: !231) +!251 = !DILocation(line: 103, column: 5, scope: !28) +!252 = !DILocation(line: 103, column: 12, scope: !28) +!253 = !DILocalVariable(name: "$arg1_68", scope: !28, file: !2, line: 104, type: !231) +!254 = !DILocation(line: 104, column: 5, scope: !28) +!255 = !DILocation(line: 104, column: 12, scope: !28) +!256 = !DILocalVariable(name: "$test_72", scope: !28, file: !2, line: 105, type: !10) +!257 = !DILocation(line: 105, column: 5, scope: !28) +!258 = !DILocalVariable(name: "$res_69", scope: !28, file: !2, line: 106, type: !231) +!259 = !DILocation(line: 106, column: 7, scope: !28) +!260 = !DILocation(line: 106, column: 13, scope: !28) +!261 = !DILocalVariable(name: "$res__70", scope: !28, file: !2, line: 107, type: !231) +!262 = !DILocation(line: 107, column: 7, scope: !28) +!263 = !DILocation(line: 107, column: 14, scope: !28) +!264 = !DILocalVariable(name: "$test__71", scope: !28, file: !2, line: 108, type: !10) +!265 = !DILocation(line: 108, column: 7, scope: !28) +!266 = !DILocation(line: 108, column: 15, scope: !28) +!267 = !DILocation(line: 109, column: 3, scope: !28) +!268 = !DILocalVariable(name: "$BoolUtils.andb_102", scope: !28, file: !2, line: 109, type: !10) +!269 = !DILocalVariable(name: "$arg1_73", scope: !28, file: !2, line: 112, type: !231) +!270 = !DILocation(line: 112, column: 5, scope: !28) +!271 = !DILocation(line: 112, column: 12, scope: !28) +!272 = !DILocalVariable(name: "$arg2_74", scope: !28, file: !2, line: 113, type: !231) +!273 = !DILocation(line: 113, column: 5, scope: !28) +!274 = !DILocation(line: 113, column: 12, scope: !28) +!275 = !DILocalVariable(name: "$test_78", scope: !28, file: !2, line: 114, type: !10) +!276 = !DILocation(line: 114, column: 5, scope: !28) +!277 = !DILocalVariable(name: "$res_75", scope: !28, file: !2, line: 115, type: !231) +!278 = !DILocation(line: 115, column: 7, scope: !28) +!279 = !DILocation(line: 115, column: 13, scope: !28) +!280 = !DILocalVariable(name: "$res__76", scope: !28, file: !2, line: 116, type: !231) +!281 = !DILocation(line: 116, column: 7, scope: !28) +!282 = !DILocation(line: 116, column: 14, scope: !28) +!283 = !DILocalVariable(name: "$test__77", scope: !28, file: !2, line: 117, type: !10) +!284 = !DILocation(line: 117, column: 7, scope: !28) +!285 = !DILocation(line: 117, column: 15, scope: !28) +!286 = !DILocation(line: 118, column: 3, scope: !28) +!287 = !DILocalVariable(name: "$BoolUtils.andb_104", scope: !28, file: !2, line: 118, type: !10) +!288 = !DILocation(line: 121, column: 1, scope: !28) diff --git a/testsuite/expr/builtin_sub.ll b/testsuite/expr/builtin_sub.ll index fcad69f5..39c7ae5c 100644 --- a/testsuite/expr/builtin_sub.ll +++ b/testsuite/expr/builtin_sub.ll @@ -122,7 +122,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-pc-linux-gnu" +target triple = "x86_64-unknown-linux-gnu" %"$TyDescrTy_PrimTyp_110" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/testsuite/expr/builtin_substr.dbg.ll b/testsuite/expr/builtin_substr.dbg.ll index d643d28d..1475eae2 100644 --- a/testsuite/expr/builtin_substr.dbg.ll +++ b/testsuite/expr/builtin_substr.dbg.ll @@ -11,7 +11,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-pc-linux-gnu" +target triple = "x86_64-unknown-linux-gnu" %"$TyDescrTy_PrimTyp_7" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } @@ -87,7 +87,7 @@ target triple = "x86_64-pc-linux-gnu" @_transition_parameters = constant [0 x %"$TransDescr_213"] zeroinitializer @_transition_parameters_length = constant i32 0 -define void @_init_libs() !dbg !4 { +define void @_init_libs() !dbg !3 { entry: %"$gasrem_56" = load i64, i64* @_gasrem, align 8 %"$gascmp_57" = icmp ugt i64 5, %"$gasrem_56" @@ -169,6 +169,7 @@ declare void @_out_of_gas() define internal %TName_Pair_String_ByStr* @_scilla_expr_fun(i8* %0) !dbg !10 { entry: %"$expr_6" = alloca %TName_Pair_String_ByStr*, align 8 + call void @llvm.dbg.declare(metadata %TName_Pair_String_ByStr** %"$expr_6", metadata !11, metadata !DIExpression()), !dbg !14 %"$gasrem_86" = load i64, i64* @_gasrem, align 8 %"$gascmp_87" = icmp ugt i64 1, %"$gasrem_86" br i1 %"$gascmp_87", label %"$out_of_gas_88", label %"$have_gas_89" @@ -181,6 +182,7 @@ entry: %"$consume_90" = sub i64 %"$gasrem_86", 1 store i64 %"$consume_90", i64* @_gasrem, align 8 %x = alloca %String, align 8 + call void @llvm.dbg.declare(metadata %String* %x, metadata !15, metadata !DIExpression()), !dbg !17 %"$gasrem_91" = load i64, i64* @_gasrem, align 8 %"$gascmp_92" = icmp ugt i64 1, %"$gasrem_91" br i1 %"$gascmp_92", label %"$out_of_gas_93", label %"$have_gas_94" @@ -192,7 +194,7 @@ entry: "$have_gas_94": ; preds = %"$out_of_gas_93", %"$have_gas_89" %"$consume_95" = sub i64 %"$gasrem_91", 1 store i64 %"$consume_95", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([11 x i8], [11 x i8]* @"$stringlit_96", i32 0, i32 0), i32 11 }, %String* %x, align 8, !dbg !11 + store %String { i8* getelementptr inbounds ([11 x i8], [11 x i8]* @"$stringlit_96", i32 0, i32 0), i32 11 }, %String* %x, align 8, !dbg !14 %"$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" @@ -205,6 +207,7 @@ entry: %"$consume_101" = sub i64 %"$gasrem_97", 1 store i64 %"$consume_101", i64* @_gasrem, align 8 %y = alloca [6 x i8], align 1 + call void @llvm.dbg.declare(metadata [6 x i8]* %y, metadata !18, metadata !DIExpression()), !dbg !20 %"$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" @@ -216,7 +219,7 @@ entry: "$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 [6 x i8] c"\00\11\223DU", [6 x i8]* %y, align 1, !dbg !12 + store [6 x i8] c"\00\11\223DU", [6 x i8]* %y, align 1, !dbg !21 %"$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" @@ -229,6 +232,7 @@ entry: %"$consume_111" = sub i64 %"$gasrem_107", 1 store i64 %"$consume_111", i64* @_gasrem, align 8 %ybs = alloca %Bystr, align 8 + call void @llvm.dbg.declare(metadata %Bystr* %ybs, metadata !22, metadata !DIExpression()), !dbg !24 %"$gasrem_112" = load i64, i64* @_gasrem, align 8 %"$gascmp_113" = icmp ugt i64 6, %"$gasrem_112" br i1 %"$gascmp_113", label %"$out_of_gas_114", label %"$have_gas_115" @@ -245,8 +249,8 @@ entry: %"$y_119" = load [6 x i8], [6 x i8]* %y, align 1 store [6 x i8] %"$y_119", [6 x i8]* %"$to_bystr_y_118", align 1 %"$$to_bystr_y_118_120" = bitcast [6 x i8]* %"$to_bystr_y_118" to i8* - %"$to_bystr_call_121" = call %Bystr @_to_bystr(i8* %"$execptr_load_117", i32 6, i8* %"$$to_bystr_y_118_120"), !dbg !13 - store %Bystr %"$to_bystr_call_121", %Bystr* %ybs, align 8, !dbg !13 + %"$to_bystr_call_121" = call %Bystr @_to_bystr(i8* %"$execptr_load_117", i32 6, i8* %"$$to_bystr_y_118_120"), !dbg !25 + store %Bystr %"$to_bystr_call_121", %Bystr* %ybs, align 8, !dbg !25 %"$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" @@ -259,6 +263,7 @@ entry: %"$consume_126" = sub i64 %"$gasrem_122", 1 store i64 %"$consume_126", i64* @_gasrem, align 8 %pos = alloca %Uint32, align 8 + call void @llvm.dbg.declare(metadata %Uint32* %pos, metadata !26, metadata !DIExpression()), !dbg !28 %"$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" @@ -270,7 +275,7 @@ entry: "$have_gas_130": ; preds = %"$out_of_gas_129", %"$have_gas_125" %"$consume_131" = sub i64 %"$gasrem_127", 1 store i64 %"$consume_131", i64* @_gasrem, align 8 - store %Uint32 zeroinitializer, %Uint32* %pos, align 4, !dbg !14 + store %Uint32 zeroinitializer, %Uint32* %pos, align 4, !dbg !29 %"$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" @@ -283,6 +288,7 @@ entry: %"$consume_136" = sub i64 %"$gasrem_132", 1 store i64 %"$consume_136", i64* @_gasrem, align 8 %len = alloca %Uint32, align 8 + call void @llvm.dbg.declare(metadata %Uint32* %len, metadata !30, metadata !DIExpression()), !dbg !31 %"$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" @@ -294,7 +300,7 @@ entry: "$have_gas_140": ; preds = %"$out_of_gas_139", %"$have_gas_135" %"$consume_141" = sub i64 %"$gasrem_137", 1 store i64 %"$consume_141", i64* @_gasrem, align 8 - store %Uint32 { i32 5 }, %Uint32* %len, align 4, !dbg !15 + store %Uint32 { i32 5 }, %Uint32* %len, align 4, !dbg !32 %"$gasrem_142" = load i64, i64* @_gasrem, align 8 %"$gascmp_143" = icmp ugt i64 1, %"$gasrem_142" br i1 %"$gascmp_143", label %"$out_of_gas_144", label %"$have_gas_145" @@ -307,6 +313,7 @@ entry: %"$consume_146" = sub i64 %"$gasrem_142", 1 store i64 %"$consume_146", i64* @_gasrem, align 8 %x_sub = alloca %String, align 8 + call void @llvm.dbg.declare(metadata %String* %x_sub, metadata !33, metadata !DIExpression()), !dbg !34 %"$_literal_cost_x_147" = alloca %String, align 8 %"$x_148" = load %String, %String* %x, align 8 store %String %"$x_148", %String* %"$_literal_cost_x_147", align 8 @@ -335,8 +342,8 @@ entry: %"$x_165" = load %String, %String* %x, align 8 %"$pos_166" = load %Uint32, %Uint32* %pos, align 4 %"$len_167" = load %Uint32, %Uint32* %len, align 4 - %"$substr_call_168" = call %String @_substr_String(i8* %"$execptr_load_164", %String %"$x_165", %Uint32 %"$pos_166", %Uint32 %"$len_167"), !dbg !16 - store %String %"$substr_call_168", %String* %x_sub, align 8, !dbg !16 + %"$substr_call_168" = call %String @_substr_String(i8* %"$execptr_load_164", %String %"$x_165", %Uint32 %"$pos_166", %Uint32 %"$len_167"), !dbg !35 + store %String %"$substr_call_168", %String* %x_sub, align 8, !dbg !35 %"$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" @@ -349,6 +356,7 @@ entry: %"$consume_173" = sub i64 %"$gasrem_169", 1 store i64 %"$consume_173", i64* @_gasrem, align 8 %ybs_sub = alloca %Bystr, align 8 + call void @llvm.dbg.declare(metadata %Bystr* %ybs_sub, metadata !36, metadata !DIExpression()), !dbg !37 %"$_literal_cost_ybs_174" = alloca %Bystr, align 8 %"$ybs_175" = load %Bystr, %Bystr* %ybs, align 8 store %Bystr %"$ybs_175", %Bystr* %"$_literal_cost_ybs_174", align 8 @@ -377,8 +385,8 @@ entry: %"$ybs_192" = load %Bystr, %Bystr* %ybs, align 8 %"$pos_193" = load %Uint32, %Uint32* %pos, align 4 %"$len_194" = load %Uint32, %Uint32* %len, align 4 - %"$substr_call_195" = call %Bystr @_substr_ByStr(i8* %"$execptr_load_191", %Bystr %"$ybs_192", %Uint32 %"$pos_193", %Uint32 %"$len_194"), !dbg !17 - store %Bystr %"$substr_call_195", %Bystr* %ybs_sub, align 8, !dbg !17 + %"$substr_call_195" = call %Bystr @_substr_ByStr(i8* %"$execptr_load_191", %Bystr %"$ybs_192", %Uint32 %"$pos_193", %Uint32 %"$len_194"), !dbg !38 + store %Bystr %"$substr_call_195", %Bystr* %ybs_sub, align 8, !dbg !38 %"$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" @@ -402,16 +410,19 @@ entry: %"$adtgep_206" = getelementptr inbounds %CName_Pair_String_ByStr, %CName_Pair_String_ByStr* %"$adtval_203", i32 0, i32 2 store %Bystr %"$ybs_sub_202", %Bystr* %"$adtgep_206", align 8 %"$adtptr_207" = bitcast %CName_Pair_String_ByStr* %"$adtval_203" to %TName_Pair_String_ByStr* - store %TName_Pair_String_ByStr* %"$adtptr_207", %TName_Pair_String_ByStr** %"$expr_6", align 8, !dbg !18 + store %TName_Pair_String_ByStr* %"$adtptr_207", %TName_Pair_String_ByStr** %"$expr_6", align 8, !dbg !39 %"$$expr_6_208" = load %TName_Pair_String_ByStr*, %TName_Pair_String_ByStr** %"$expr_6", align 8 ret %TName_Pair_String_ByStr* %"$$expr_6_208" } +; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn +declare void @llvm.dbg.declare(metadata, metadata, metadata) #0 + declare %Bystr @_to_bystr(i8*, i32, i8*) declare i64 @_literal_cost(%_TyDescrTy_Typ*, i8*) -; Function Attrs: nofree nosync nounwind readnone speculatable willreturn +; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn declare i64 @llvm.umin.i64(i64, i64) #0 declare %String @_substr_String(i8*, %String, %Uint32, %Uint32) @@ -431,27 +442,48 @@ entry: ret void } -attributes #0 = { nofree nosync nounwind readnone speculatable willreturn } +attributes #0 = { nocallback nofree nosync nounwind readnone speculatable willreturn } !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) +!1 = distinct !DICompileUnit(language: DW_LANG_C89, file: !2, producer: "Scilla Compiler", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false) !2 = !DIFile(filename: "builtin_substr.scilexp", directory: "codegen/expr") -!3 = !{} -!4 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !5, file: !5, type: !6, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!5 = !DIFile(filename: ".", directory: ".") -!6 = !DISubroutineType(types: !7) -!7 = !{!8} -!8 = !DIBasicType(tag: DW_TAG_unspecified_type, name: "void") -!9 = !DILocation(line: 0, scope: !4) -!10 = distinct !DISubprogram(name: "_scilla_expr_fun", linkageName: "_scilla_expr_fun", scope: !2, file: !2, line: 1, type: !6, scopeLine: 1, spFlags: DISPFlagDefinition, unit: !1, retainedNodes: !3) -!11 = !DILocation(line: 1, column: 21, scope: !10) -!12 = !DILocation(line: 2, column: 9, scope: !10) -!13 = !DILocation(line: 3, column: 11, scope: !10) -!14 = !DILocation(line: 5, column: 11, scope: !10) -!15 = !DILocation(line: 6, column: 11, scope: !10) -!16 = !DILocation(line: 7, column: 13, scope: !10) -!17 = !DILocation(line: 8, column: 15, scope: !10) -!18 = !DILocation(line: 10, column: 1, scope: !10) +!3 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !4, file: !4, type: !5, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!4 = !DIFile(filename: ".", directory: ".") +!5 = !DISubroutineType(types: !6) +!6 = !{!7} +!7 = !DIBasicType(tag: DW_TAG_unspecified_type, name: "void") +!8 = !{} +!9 = !DILocation(line: 0, scope: !3) +!10 = distinct !DISubprogram(name: "_scilla_expr_fun", linkageName: "_scilla_expr_fun", scope: !2, file: !2, line: 1, type: !5, scopeLine: 1, spFlags: DISPFlagDefinition, unit: !1, retainedNodes: !8) +!11 = !DILocalVariable(name: "$expr_6", scope: !10, file: !2, line: 1, type: !12) +!12 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "Pair (String) (ByStr)", baseType: !13, size: 8, align: 8, dwarfAddressSpace: 0) +!13 = !DIBasicType(name: "Pair (String) (ByStr)", size: 8) +!14 = !DILocation(line: 1, column: 21, scope: !10) +!15 = !DILocalVariable(name: "x", scope: !10, file: !2, line: 1, type: !16) +!16 = !DIBasicType(name: "String", size: 16) +!17 = !DILocation(line: 1, column: 5, scope: !10) +!18 = !DILocalVariable(name: "y", scope: !10, file: !2, line: 2, type: !19) +!19 = !DIBasicType(name: "ByStr6", size: 6) +!20 = !DILocation(line: 2, column: 5, scope: !10) +!21 = !DILocation(line: 2, column: 9, scope: !10) +!22 = !DILocalVariable(name: "ybs", scope: !10, file: !2, line: 3, type: !23) +!23 = !DIBasicType(name: "ByStr", size: 16) +!24 = !DILocation(line: 3, column: 5, scope: !10) +!25 = !DILocation(line: 3, column: 11, scope: !10) +!26 = !DILocalVariable(name: "pos", scope: !10, file: !2, line: 5, type: !27) +!27 = !DIBasicType(name: "Uint32", size: 4) +!28 = !DILocation(line: 5, column: 5, scope: !10) +!29 = !DILocation(line: 5, column: 11, scope: !10) +!30 = !DILocalVariable(name: "len", scope: !10, file: !2, line: 6, type: !27) +!31 = !DILocation(line: 6, column: 5, scope: !10) +!32 = !DILocation(line: 6, column: 11, scope: !10) +!33 = !DILocalVariable(name: "x_sub", scope: !10, file: !2, line: 7, type: !16) +!34 = !DILocation(line: 7, column: 5, scope: !10) +!35 = !DILocation(line: 7, column: 13, scope: !10) +!36 = !DILocalVariable(name: "ybs_sub", scope: !10, file: !2, line: 8, type: !23) +!37 = !DILocation(line: 8, column: 5, scope: !10) +!38 = !DILocation(line: 8, column: 15, scope: !10) +!39 = !DILocation(line: 10, column: 1, scope: !10) diff --git a/testsuite/expr/builtin_substr.ll b/testsuite/expr/builtin_substr.ll index 3647777e..bcfb2877 100644 --- a/testsuite/expr/builtin_substr.ll +++ b/testsuite/expr/builtin_substr.ll @@ -11,7 +11,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-pc-linux-gnu" +target triple = "x86_64-unknown-linux-gnu" %"$TyDescrTy_PrimTyp_7" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } @@ -411,7 +411,7 @@ declare %Bystr @_to_bystr(i8*, i32, i8*) declare i64 @_literal_cost(%_TyDescrTy_Typ*, i8*) -; Function Attrs: nofree nosync nounwind readnone speculatable willreturn +; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn declare i64 @llvm.umin.i64(i64, i64) #0 declare %String @_substr_String(i8*, %String, %Uint32, %Uint32) @@ -431,4 +431,4 @@ entry: ret void } -attributes #0 = { nofree nosync nounwind readnone speculatable willreturn } +attributes #0 = { nocallback nofree nosync nounwind readnone speculatable willreturn } diff --git a/testsuite/expr/builtin_substr_rfail.dbg.ll b/testsuite/expr/builtin_substr_rfail.dbg.ll index 57536157..c72abe52 100644 --- a/testsuite/expr/builtin_substr_rfail.dbg.ll +++ b/testsuite/expr/builtin_substr_rfail.dbg.ll @@ -6,7 +6,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-pc-linux-gnu" +target triple = "x86_64-unknown-linux-gnu" %"$TyDescrTy_PrimTyp_7" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } @@ -63,7 +63,7 @@ target triple = "x86_64-pc-linux-gnu" @_transition_parameters = constant [0 x %"$TransDescr_133"] zeroinitializer @_transition_parameters_length = constant i32 0 -define void @_init_libs() !dbg !4 { +define void @_init_libs() !dbg !3 { entry: %"$gasrem_44" = load i64, i64* @_gasrem, align 8 %"$gascmp_45" = icmp ugt i64 5, %"$gasrem_44" @@ -145,6 +145,7 @@ declare void @_out_of_gas() define internal %String @_scilla_expr_fun(i8* %0) !dbg !10 { entry: %"$expr_6" = alloca %String, align 8 + call void @llvm.dbg.declare(metadata %String* %"$expr_6", metadata !11, metadata !DIExpression()), !dbg !13 %"$gasrem_74" = load i64, i64* @_gasrem, align 8 %"$gascmp_75" = icmp ugt i64 1, %"$gasrem_74" br i1 %"$gascmp_75", label %"$out_of_gas_76", label %"$have_gas_77" @@ -157,6 +158,7 @@ entry: %"$consume_78" = sub i64 %"$gasrem_74", 1 store i64 %"$consume_78", i64* @_gasrem, align 8 %x = alloca %String, align 8 + call void @llvm.dbg.declare(metadata %String* %x, metadata !14, metadata !DIExpression()), !dbg !15 %"$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" @@ -168,7 +170,7 @@ entry: "$have_gas_82": ; preds = %"$out_of_gas_81", %"$have_gas_77" %"$consume_83" = sub i64 %"$gasrem_79", 1 store i64 %"$consume_83", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([11 x i8], [11 x i8]* @"$stringlit_84", i32 0, i32 0), i32 11 }, %String* %x, align 8, !dbg !11 + store %String { i8* getelementptr inbounds ([11 x i8], [11 x i8]* @"$stringlit_84", i32 0, i32 0), i32 11 }, %String* %x, align 8, !dbg !13 %"$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" @@ -181,6 +183,7 @@ entry: %"$consume_89" = sub i64 %"$gasrem_85", 1 store i64 %"$consume_89", i64* @_gasrem, align 8 %pos = alloca %Uint32, align 8 + call void @llvm.dbg.declare(metadata %Uint32* %pos, metadata !16, metadata !DIExpression()), !dbg !18 %"$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" @@ -192,7 +195,7 @@ entry: "$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 %Uint32 { i32 7 }, %Uint32* %pos, align 4, !dbg !12 + store %Uint32 { i32 7 }, %Uint32* %pos, align 4, !dbg !19 %"$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" @@ -205,6 +208,7 @@ entry: %"$consume_99" = sub i64 %"$gasrem_95", 1 store i64 %"$consume_99", i64* @_gasrem, align 8 %len = alloca %Uint32, align 8 + call void @llvm.dbg.declare(metadata %Uint32* %len, metadata !20, metadata !DIExpression()), !dbg !21 %"$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" @@ -216,7 +220,7 @@ entry: "$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 - store %Uint32 { i32 5 }, %Uint32* %len, align 4, !dbg !13 + store %Uint32 { i32 5 }, %Uint32* %len, align 4, !dbg !22 %"$_literal_cost_x_105" = alloca %String, align 8 %"$x_106" = load %String, %String* %x, align 8 store %String %"$x_106", %String* %"$_literal_cost_x_105", align 8 @@ -245,15 +249,18 @@ entry: %"$x_123" = load %String, %String* %x, align 8 %"$pos_124" = load %Uint32, %Uint32* %pos, align 4 %"$len_125" = load %Uint32, %Uint32* %len, align 4 - %"$substr_call_126" = call %String @_substr_String(i8* %"$execptr_load_122", %String %"$x_123", %Uint32 %"$pos_124", %Uint32 %"$len_125"), !dbg !14 - store %String %"$substr_call_126", %String* %"$expr_6", align 8, !dbg !14 + %"$substr_call_126" = call %String @_substr_String(i8* %"$execptr_load_122", %String %"$x_123", %Uint32 %"$pos_124", %Uint32 %"$len_125"), !dbg !23 + store %String %"$substr_call_126", %String* %"$expr_6", align 8, !dbg !23 %"$$expr_6_127" = load %String, %String* %"$expr_6", align 8 ret %String %"$$expr_6_127" } +; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn +declare void @llvm.dbg.declare(metadata, metadata, metadata) #0 + declare i64 @_literal_cost(%_TyDescrTy_Typ*, i8*) -; Function Attrs: nofree nosync nounwind readnone speculatable willreturn +; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn declare i64 @llvm.umin.i64(i64, i64) #0 declare %String @_substr_String(i8*, %String, %Uint32, %Uint32) @@ -271,23 +278,32 @@ entry: ret void } -attributes #0 = { nofree nosync nounwind readnone speculatable willreturn } +attributes #0 = { nocallback nofree nosync nounwind readnone speculatable willreturn } !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) +!1 = distinct !DICompileUnit(language: DW_LANG_C89, file: !2, producer: "Scilla Compiler", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false) !2 = !DIFile(filename: "builtin_substr_rfail.scilexp", directory: "codegen/expr") -!3 = !{} -!4 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !5, file: !5, type: !6, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!5 = !DIFile(filename: ".", directory: ".") -!6 = !DISubroutineType(types: !7) -!7 = !{!8} -!8 = !DIBasicType(tag: DW_TAG_unspecified_type, name: "void") -!9 = !DILocation(line: 0, scope: !4) -!10 = distinct !DISubprogram(name: "_scilla_expr_fun", linkageName: "_scilla_expr_fun", scope: !2, file: !2, line: 1, type: !6, scopeLine: 1, spFlags: DISPFlagDefinition, unit: !1, retainedNodes: !3) -!11 = !DILocation(line: 1, column: 21, scope: !10) -!12 = !DILocation(line: 3, column: 11, scope: !10) -!13 = !DILocation(line: 4, column: 11, scope: !10) -!14 = !DILocation(line: 5, column: 1, scope: !10) +!3 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !4, file: !4, type: !5, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!4 = !DIFile(filename: ".", directory: ".") +!5 = !DISubroutineType(types: !6) +!6 = !{!7} +!7 = !DIBasicType(tag: DW_TAG_unspecified_type, name: "void") +!8 = !{} +!9 = !DILocation(line: 0, scope: !3) +!10 = distinct !DISubprogram(name: "_scilla_expr_fun", linkageName: "_scilla_expr_fun", scope: !2, file: !2, line: 1, type: !5, scopeLine: 1, spFlags: DISPFlagDefinition, unit: !1, retainedNodes: !8) +!11 = !DILocalVariable(name: "$expr_6", scope: !10, file: !2, line: 1, type: !12) +!12 = !DIBasicType(name: "String", size: 16) +!13 = !DILocation(line: 1, column: 21, scope: !10) +!14 = !DILocalVariable(name: "x", scope: !10, file: !2, line: 1, type: !12) +!15 = !DILocation(line: 1, column: 5, scope: !10) +!16 = !DILocalVariable(name: "pos", scope: !10, file: !2, line: 3, type: !17) +!17 = !DIBasicType(name: "Uint32", size: 4) +!18 = !DILocation(line: 3, column: 5, scope: !10) +!19 = !DILocation(line: 3, column: 11, scope: !10) +!20 = !DILocalVariable(name: "len", scope: !10, file: !2, line: 4, type: !17) +!21 = !DILocation(line: 4, column: 5, scope: !10) +!22 = !DILocation(line: 4, column: 11, scope: !10) +!23 = !DILocation(line: 5, column: 1, scope: !10) diff --git a/testsuite/expr/builtin_substr_rfail.ll b/testsuite/expr/builtin_substr_rfail.ll index cf973842..60d4570e 100644 --- a/testsuite/expr/builtin_substr_rfail.ll +++ b/testsuite/expr/builtin_substr_rfail.ll @@ -6,7 +6,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-pc-linux-gnu" +target triple = "x86_64-unknown-linux-gnu" %"$TyDescrTy_PrimTyp_7" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } @@ -253,7 +253,7 @@ entry: declare i64 @_literal_cost(%_TyDescrTy_Typ*, i8*) -; Function Attrs: nofree nosync nounwind readnone speculatable willreturn +; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn declare i64 @llvm.umin.i64(i64, i64) #0 declare %String @_substr_String(i8*, %String, %Uint32, %Uint32) @@ -271,4 +271,4 @@ entry: ret void } -attributes #0 = { nofree nosync nounwind readnone speculatable willreturn } +attributes #0 = { nocallback nofree nosync nounwind readnone speculatable willreturn } diff --git a/testsuite/expr/builtin_to_ascii.dbg.ll b/testsuite/expr/builtin_to_ascii.dbg.ll index ddae0a31..8f8aaa43 100644 --- a/testsuite/expr/builtin_to_ascii.dbg.ll +++ b/testsuite/expr/builtin_to_ascii.dbg.ll @@ -8,7 +8,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-pc-linux-gnu" +target triple = "x86_64-unknown-linux-gnu" %"$TyDescrTy_PrimTyp_7" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } @@ -68,7 +68,7 @@ target triple = "x86_64-pc-linux-gnu" @_transition_parameters = constant [0 x %"$TransDescr_175"] zeroinitializer @_transition_parameters_length = constant i32 0 -define void @_init_libs() !dbg !4 { +define void @_init_libs() !dbg !3 { entry: %"$gasrem_48" = load i64, i64* @_gasrem, align 8 %"$gascmp_49" = icmp ugt i64 5, %"$gasrem_48" @@ -150,6 +150,7 @@ declare void @_out_of_gas() define internal %String @_scilla_expr_fun(i8* %0) !dbg !10 { entry: %"$expr_6" = alloca %String, align 8 + call void @llvm.dbg.declare(metadata %String* %"$expr_6", metadata !11, metadata !DIExpression()), !dbg !13 %"$gasrem_78" = load i64, i64* @_gasrem, align 8 %"$gascmp_79" = icmp ugt i64 1, %"$gasrem_78" br i1 %"$gascmp_79", label %"$out_of_gas_80", label %"$have_gas_81" @@ -162,6 +163,7 @@ entry: %"$consume_82" = sub i64 %"$gasrem_78", 1 store i64 %"$consume_82", i64* @_gasrem, align 8 %hello = alloca [5 x i8], align 1 + call void @llvm.dbg.declare(metadata [5 x i8]* %hello, metadata !14, metadata !DIExpression()), !dbg !16 %"$gasrem_83" = load i64, i64* @_gasrem, align 8 %"$gascmp_84" = icmp ugt i64 1, %"$gasrem_83" br i1 %"$gascmp_84", label %"$out_of_gas_85", label %"$have_gas_86" @@ -173,7 +175,7 @@ entry: "$have_gas_86": ; preds = %"$out_of_gas_85", %"$have_gas_81" %"$consume_87" = sub i64 %"$gasrem_83", 1 store i64 %"$consume_87", i64* @_gasrem, align 8 - store [5 x i8] c"hello", [5 x i8]* %hello, align 1, !dbg !11 + store [5 x i8] c"hello", [5 x i8]* %hello, align 1, !dbg !13 %"$gasrem_88" = load i64, i64* @_gasrem, align 8 %"$gascmp_89" = icmp ugt i64 1, %"$gasrem_88" br i1 %"$gascmp_89", label %"$out_of_gas_90", label %"$have_gas_91" @@ -186,6 +188,7 @@ entry: %"$consume_92" = sub i64 %"$gasrem_88", 1 store i64 %"$consume_92", i64* @_gasrem, align 8 %world = alloca [6 x i8], align 1 + call void @llvm.dbg.declare(metadata [6 x i8]* %world, metadata !17, metadata !DIExpression()), !dbg !19 %"$gasrem_93" = load i64, i64* @_gasrem, align 8 %"$gascmp_94" = icmp ugt i64 1, %"$gasrem_93" br i1 %"$gascmp_94", label %"$out_of_gas_95", label %"$have_gas_96" @@ -197,7 +200,7 @@ entry: "$have_gas_96": ; preds = %"$out_of_gas_95", %"$have_gas_91" %"$consume_97" = sub i64 %"$gasrem_93", 1 store i64 %"$consume_97", i64* @_gasrem, align 8 - store [6 x i8] c" world", [6 x i8]* %world, align 1, !dbg !12 + store [6 x i8] c" world", [6 x i8]* %world, align 1, !dbg !20 %"$gasrem_98" = load i64, i64* @_gasrem, align 8 %"$gascmp_99" = icmp ugt i64 1, %"$gasrem_98" br i1 %"$gascmp_99", label %"$out_of_gas_100", label %"$have_gas_101" @@ -210,6 +213,7 @@ entry: %"$consume_102" = sub i64 %"$gasrem_98", 1 store i64 %"$consume_102", i64* @_gasrem, align 8 %worldx = alloca %Bystr, align 8 + call void @llvm.dbg.declare(metadata %Bystr* %worldx, metadata !21, metadata !DIExpression()), !dbg !23 %"$gasrem_103" = load i64, i64* @_gasrem, align 8 %"$gascmp_104" = icmp ugt i64 6, %"$gasrem_103" br i1 %"$gascmp_104", label %"$out_of_gas_105", label %"$have_gas_106" @@ -226,8 +230,8 @@ entry: %"$world_110" = load [6 x i8], [6 x i8]* %world, align 1 store [6 x i8] %"$world_110", [6 x i8]* %"$to_bystr_world_109", align 1 %"$$to_bystr_world_109_111" = bitcast [6 x i8]* %"$to_bystr_world_109" to i8* - %"$to_bystr_call_112" = call %Bystr @_to_bystr(i8* %"$execptr_load_108", i32 6, i8* %"$$to_bystr_world_109_111"), !dbg !13 - store %Bystr %"$to_bystr_call_112", %Bystr* %worldx, align 8, !dbg !13 + %"$to_bystr_call_112" = call %Bystr @_to_bystr(i8* %"$execptr_load_108", i32 6, i8* %"$$to_bystr_world_109_111"), !dbg !24 + store %Bystr %"$to_bystr_call_112", %Bystr* %worldx, align 8, !dbg !24 %"$gasrem_113" = load i64, i64* @_gasrem, align 8 %"$gascmp_114" = icmp ugt i64 1, %"$gasrem_113" br i1 %"$gascmp_114", label %"$out_of_gas_115", label %"$have_gas_116" @@ -240,6 +244,7 @@ entry: %"$consume_117" = sub i64 %"$gasrem_113", 1 store i64 %"$consume_117", i64* @_gasrem, align 8 %hello_s = alloca %String, align 8 + call void @llvm.dbg.declare(metadata %String* %hello_s, metadata !25, metadata !DIExpression()), !dbg !26 %"$_literal_cost_hello_118" = alloca [5 x i8], align 1 %"$hello_119" = load [5 x i8], [5 x i8]* %hello, align 1 store [5 x i8] %"$hello_119", [5 x i8]* %"$_literal_cost_hello_118", align 1 @@ -261,8 +266,8 @@ entry: %"$hello_129" = load [5 x i8], [5 x i8]* %hello, align 1 store [5 x i8] %"$hello_129", [5 x i8]* %"$to_ascii_hello_128", align 1 %"$$to_ascii_hello_128_130" = bitcast [5 x i8]* %"$to_ascii_hello_128" to i8* - %"$to_ascii_call_131" = call %String @_to_ascii(i8* %"$execptr_load_127", i8* %"$$to_ascii_hello_128_130", i32 5), !dbg !14 - store %String %"$to_ascii_call_131", %String* %hello_s, align 8, !dbg !14 + %"$to_ascii_call_131" = call %String @_to_ascii(i8* %"$execptr_load_127", i8* %"$$to_ascii_hello_128_130", i32 5), !dbg !27 + store %String %"$to_ascii_call_131", %String* %hello_s, align 8, !dbg !27 %"$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" @@ -275,6 +280,7 @@ entry: %"$consume_136" = sub i64 %"$gasrem_132", 1 store i64 %"$consume_136", i64* @_gasrem, align 8 %world_s = alloca %String, align 8 + call void @llvm.dbg.declare(metadata %String* %world_s, metadata !28, metadata !DIExpression()), !dbg !29 %"$_literal_cost_worldx_137" = alloca %Bystr, align 8 %"$worldx_138" = load %Bystr, %Bystr* %worldx, align 8 store %Bystr %"$worldx_138", %Bystr* %"$_literal_cost_worldx_137", align 8 @@ -295,8 +301,8 @@ entry: %"$to_ascii_147" = extractvalue %Bystr %"$worldx_146", 0 %"$to_ascii_148" = extractvalue %Bystr %"$worldx_146", 1 %"$execptr_load_149" = load i8*, i8** @_execptr, align 8 - %"$to_ascii_call_150" = call %String @_to_ascii(i8* %"$execptr_load_149", i8* %"$to_ascii_147", i32 %"$to_ascii_148"), !dbg !15 - store %String %"$to_ascii_call_150", %String* %world_s, align 8, !dbg !15 + %"$to_ascii_call_150" = call %String @_to_ascii(i8* %"$execptr_load_149", i8* %"$to_ascii_147", i32 %"$to_ascii_148"), !dbg !30 + store %String %"$to_ascii_call_150", %String* %world_s, align 8, !dbg !30 %"$_literal_cost_hello_s_151" = alloca %String, align 8 %"$hello_s_152" = load %String, %String* %hello_s, align 8 store %String %"$hello_s_152", %String* %"$_literal_cost_hello_s_151", align 8 @@ -322,12 +328,15 @@ entry: %"$execptr_load_165" = load i8*, i8** @_execptr, align 8 %"$hello_s_166" = load %String, %String* %hello_s, align 8 %"$world_s_167" = load %String, %String* %world_s, align 8 - %"$concat_call_168" = call %String @_concat_String(i8* %"$execptr_load_165", %String %"$hello_s_166", %String %"$world_s_167"), !dbg !16 - store %String %"$concat_call_168", %String* %"$expr_6", align 8, !dbg !16 + %"$concat_call_168" = call %String @_concat_String(i8* %"$execptr_load_165", %String %"$hello_s_166", %String %"$world_s_167"), !dbg !31 + store %String %"$concat_call_168", %String* %"$expr_6", align 8, !dbg !31 %"$$expr_6_169" = load %String, %String* %"$expr_6", align 8 ret %String %"$$expr_6_169" } +; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn +declare void @llvm.dbg.declare(metadata, metadata, metadata) #0 + declare %Bystr @_to_bystr(i8*, i32, i8*) declare i64 @_literal_cost(%_TyDescrTy_Typ*, i8*) @@ -349,23 +358,40 @@ entry: ret void } +attributes #0 = { nocallback nofree nosync nounwind readnone speculatable willreturn } + !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) +!1 = distinct !DICompileUnit(language: DW_LANG_C89, file: !2, producer: "Scilla Compiler", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false) !2 = !DIFile(filename: "builtin_to_ascii.scilexp", directory: "codegen/expr") -!3 = !{} -!4 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !5, file: !5, type: !6, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!5 = !DIFile(filename: ".", directory: ".") -!6 = !DISubroutineType(types: !7) -!7 = !{!8} -!8 = !DIBasicType(tag: DW_TAG_unspecified_type, name: "void") -!9 = !DILocation(line: 0, scope: !4) -!10 = distinct !DISubprogram(name: "_scilla_expr_fun", linkageName: "_scilla_expr_fun", scope: !2, file: !2, line: 1, type: !6, scopeLine: 1, spFlags: DISPFlagDefinition, unit: !1, retainedNodes: !3) -!11 = !DILocation(line: 1, column: 13, scope: !10) -!12 = !DILocation(line: 2, column: 13, scope: !10) -!13 = !DILocation(line: 3, column: 14, scope: !10) -!14 = !DILocation(line: 5, column: 15, scope: !10) -!15 = !DILocation(line: 6, column: 15, scope: !10) -!16 = !DILocation(line: 7, column: 1, scope: !10) +!3 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !4, file: !4, type: !5, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!4 = !DIFile(filename: ".", directory: ".") +!5 = !DISubroutineType(types: !6) +!6 = !{!7} +!7 = !DIBasicType(tag: DW_TAG_unspecified_type, name: "void") +!8 = !{} +!9 = !DILocation(line: 0, scope: !3) +!10 = distinct !DISubprogram(name: "_scilla_expr_fun", linkageName: "_scilla_expr_fun", scope: !2, file: !2, line: 1, type: !5, scopeLine: 1, spFlags: DISPFlagDefinition, unit: !1, retainedNodes: !8) +!11 = !DILocalVariable(name: "$expr_6", scope: !10, file: !2, line: 1, type: !12) +!12 = !DIBasicType(name: "String", size: 16) +!13 = !DILocation(line: 1, column: 13, scope: !10) +!14 = !DILocalVariable(name: "hello", scope: !10, file: !2, line: 1, type: !15) +!15 = !DIBasicType(name: "ByStr5", size: 5) +!16 = !DILocation(line: 1, column: 5, scope: !10) +!17 = !DILocalVariable(name: "world", scope: !10, file: !2, line: 2, type: !18) +!18 = !DIBasicType(name: "ByStr6", size: 6) +!19 = !DILocation(line: 2, column: 5, scope: !10) +!20 = !DILocation(line: 2, column: 13, scope: !10) +!21 = !DILocalVariable(name: "worldx", scope: !10, file: !2, line: 3, type: !22) +!22 = !DIBasicType(name: "ByStr", size: 16) +!23 = !DILocation(line: 3, column: 5, scope: !10) +!24 = !DILocation(line: 3, column: 14, scope: !10) +!25 = !DILocalVariable(name: "hello_s", scope: !10, file: !2, line: 5, type: !12) +!26 = !DILocation(line: 5, column: 5, scope: !10) +!27 = !DILocation(line: 5, column: 15, scope: !10) +!28 = !DILocalVariable(name: "world_s", scope: !10, file: !2, line: 6, type: !12) +!29 = !DILocation(line: 6, column: 5, scope: !10) +!30 = !DILocation(line: 6, column: 15, scope: !10) +!31 = !DILocation(line: 7, column: 1, scope: !10) diff --git a/testsuite/expr/builtin_to_ascii.ll b/testsuite/expr/builtin_to_ascii.ll index f0f729f0..1b9cef9f 100644 --- a/testsuite/expr/builtin_to_ascii.ll +++ b/testsuite/expr/builtin_to_ascii.ll @@ -8,7 +8,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-pc-linux-gnu" +target triple = "x86_64-unknown-linux-gnu" %"$TyDescrTy_PrimTyp_7" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/testsuite/expr/builtin_to_ascii_error.dbg.ll b/testsuite/expr/builtin_to_ascii_error.dbg.ll index 07b23d36..facf4d02 100644 --- a/testsuite/expr/builtin_to_ascii_error.dbg.ll +++ b/testsuite/expr/builtin_to_ascii_error.dbg.ll @@ -4,7 +4,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-pc-linux-gnu" +target triple = "x86_64-unknown-linux-gnu" %"$TyDescrTy_PrimTyp_7" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } @@ -61,7 +61,7 @@ target triple = "x86_64-pc-linux-gnu" @_transition_parameters = constant [0 x %"$TransDescr_106"] zeroinitializer @_transition_parameters_length = constant i32 0 -define void @_init_libs() !dbg !4 { +define void @_init_libs() !dbg !3 { entry: %"$gasrem_46" = load i64, i64* @_gasrem, align 8 %"$gascmp_47" = icmp ugt i64 5, %"$gasrem_46" @@ -143,6 +143,7 @@ declare void @_out_of_gas() define internal %String @_scilla_expr_fun(i8* %0) !dbg !10 { entry: %"$expr_6" = alloca %String, align 8 + call void @llvm.dbg.declare(metadata %String* %"$expr_6", metadata !11, metadata !DIExpression()), !dbg !13 %"$gasrem_76" = load i64, i64* @_gasrem, align 8 %"$gascmp_77" = icmp ugt i64 1, %"$gasrem_76" br i1 %"$gascmp_77", label %"$out_of_gas_78", label %"$have_gas_79" @@ -155,6 +156,7 @@ entry: %"$consume_80" = sub i64 %"$gasrem_76", 1 store i64 %"$consume_80", i64* @_gasrem, align 8 %hello_0 = alloca [6 x i8], align 1 + call void @llvm.dbg.declare(metadata [6 x i8]* %hello_0, metadata !14, metadata !DIExpression()), !dbg !16 %"$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" @@ -166,7 +168,7 @@ entry: "$have_gas_84": ; preds = %"$out_of_gas_83", %"$have_gas_79" %"$consume_85" = sub i64 %"$gasrem_81", 1 store i64 %"$consume_85", i64* @_gasrem, align 8 - store [6 x i8] c"hello\00", [6 x i8]* %hello_0, align 1, !dbg !11 + store [6 x i8] c"hello\00", [6 x i8]* %hello_0, align 1, !dbg !13 %"$_literal_cost_hello_0_86" = alloca [6 x i8], align 1 %"$hello_0_87" = load [6 x i8], [6 x i8]* %hello_0, align 1 store [6 x i8] %"$hello_0_87", [6 x i8]* %"$_literal_cost_hello_0_86", align 1 @@ -188,12 +190,15 @@ entry: %"$hello_0_97" = load [6 x i8], [6 x i8]* %hello_0, align 1 store [6 x i8] %"$hello_0_97", [6 x i8]* %"$to_ascii_hello_0_96", align 1 %"$$to_ascii_hello_0_96_98" = bitcast [6 x i8]* %"$to_ascii_hello_0_96" to i8* - %"$to_ascii_call_99" = call %String @_to_ascii(i8* %"$execptr_load_95", i8* %"$$to_ascii_hello_0_96_98", i32 6), !dbg !12 - store %String %"$to_ascii_call_99", %String* %"$expr_6", align 8, !dbg !12 + %"$to_ascii_call_99" = call %String @_to_ascii(i8* %"$execptr_load_95", i8* %"$$to_ascii_hello_0_96_98", i32 6), !dbg !17 + store %String %"$to_ascii_call_99", %String* %"$expr_6", align 8, !dbg !17 %"$$expr_6_100" = load %String, %String* %"$expr_6", align 8 ret %String %"$$expr_6_100" } +; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn +declare void @llvm.dbg.declare(metadata, metadata, metadata) #0 + declare i64 @_literal_cost(%_TyDescrTy_Typ*, i8*) declare %String @_to_ascii(i8*, i8*, i32) @@ -211,19 +216,26 @@ entry: ret void } +attributes #0 = { nocallback nofree nosync nounwind readnone speculatable willreturn } + !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) +!1 = distinct !DICompileUnit(language: DW_LANG_C89, file: !2, producer: "Scilla Compiler", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false) !2 = !DIFile(filename: "builtin_to_ascii_error.scilexp", directory: "codegen/expr") -!3 = !{} -!4 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !5, file: !5, type: !6, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!5 = !DIFile(filename: ".", directory: ".") -!6 = !DISubroutineType(types: !7) -!7 = !{!8} -!8 = !DIBasicType(tag: DW_TAG_unspecified_type, name: "void") -!9 = !DILocation(line: 0, scope: !4) -!10 = distinct !DISubprogram(name: "_scilla_expr_fun", linkageName: "_scilla_expr_fun", scope: !2, file: !2, line: 2, type: !6, scopeLine: 2, spFlags: DISPFlagDefinition, unit: !1, retainedNodes: !3) -!11 = !DILocation(line: 2, column: 15, scope: !10) -!12 = !DILocation(line: 3, column: 1, scope: !10) +!3 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !4, file: !4, type: !5, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!4 = !DIFile(filename: ".", directory: ".") +!5 = !DISubroutineType(types: !6) +!6 = !{!7} +!7 = !DIBasicType(tag: DW_TAG_unspecified_type, name: "void") +!8 = !{} +!9 = !DILocation(line: 0, scope: !3) +!10 = 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: !8) +!11 = !DILocalVariable(name: "$expr_6", scope: !10, file: !2, line: 2, type: !12) +!12 = !DIBasicType(name: "String", size: 16) +!13 = !DILocation(line: 2, column: 15, scope: !10) +!14 = !DILocalVariable(name: "hello_0", scope: !10, file: !2, line: 2, type: !15) +!15 = !DIBasicType(name: "ByStr6", size: 6) +!16 = !DILocation(line: 2, column: 5, scope: !10) +!17 = !DILocation(line: 3, column: 1, scope: !10) diff --git a/testsuite/expr/builtin_to_ascii_error.ll b/testsuite/expr/builtin_to_ascii_error.ll index de4f46c2..a17556e0 100644 --- a/testsuite/expr/builtin_to_ascii_error.ll +++ b/testsuite/expr/builtin_to_ascii_error.ll @@ -4,7 +4,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-pc-linux-gnu" +target triple = "x86_64-unknown-linux-gnu" %"$TyDescrTy_PrimTyp_7" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/testsuite/expr/builtin_to_bystrx.dbg.ll b/testsuite/expr/builtin_to_bystrx.dbg.ll index 7ac54826..fd7b7953 100644 --- a/testsuite/expr/builtin_to_bystrx.dbg.ll +++ b/testsuite/expr/builtin_to_bystrx.dbg.ll @@ -25,7 +25,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-pc-linux-gnu" +target triple = "x86_64-unknown-linux-gnu" %"$TyDescrTy_PrimTyp_7" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } @@ -177,7 +177,7 @@ target triple = "x86_64-pc-linux-gnu" @_transition_parameters = constant [0 x %"$TransDescr_397"] zeroinitializer @_transition_parameters_length = constant i32 0 -define void @_init_libs() !dbg !4 { +define void @_init_libs() !dbg !3 { entry: %"$gasrem_117" = load i64, i64* @_gasrem, align 8 %"$gascmp_118" = icmp ugt i64 5, %"$gasrem_117" @@ -259,6 +259,7 @@ declare void @_out_of_gas() define internal %"TName_Pair_Pair_(Pair_(Pair_(ByStr4)_(ByStr8))_(ByStr16))_(ByStr32)_Pair_(Option_(ByStr2))_(Option_(ByStr3))"* @_scilla_expr_fun(i8* %0) !dbg !10 { entry: %"$expr_6" = alloca %"TName_Pair_Pair_(Pair_(Pair_(ByStr4)_(ByStr8))_(ByStr16))_(ByStr32)_Pair_(Option_(ByStr2))_(Option_(ByStr3))"*, align 8 + call void @llvm.dbg.declare(metadata %"TName_Pair_Pair_(Pair_(Pair_(ByStr4)_(ByStr8))_(ByStr16))_(ByStr32)_Pair_(Option_(ByStr2))_(Option_(ByStr3))"** %"$expr_6", metadata !11, metadata !DIExpression()), !dbg !14 %"$gasrem_147" = load i64, i64* @_gasrem, align 8 %"$gascmp_148" = icmp ugt i64 1, %"$gasrem_147" br i1 %"$gascmp_148", label %"$out_of_gas_149", label %"$have_gas_150" @@ -271,6 +272,7 @@ entry: %"$consume_151" = sub i64 %"$gasrem_147", 1 store i64 %"$consume_151", i64* @_gasrem, align 8 %uint32_100 = alloca %Uint32, align 8 + call void @llvm.dbg.declare(metadata %Uint32* %uint32_100, metadata !15, metadata !DIExpression()), !dbg !17 %"$gasrem_152" = load i64, i64* @_gasrem, align 8 %"$gascmp_153" = icmp ugt i64 1, %"$gasrem_152" br i1 %"$gascmp_153", label %"$out_of_gas_154", label %"$have_gas_155" @@ -282,7 +284,7 @@ entry: "$have_gas_155": ; preds = %"$out_of_gas_154", %"$have_gas_150" %"$consume_156" = sub i64 %"$gasrem_152", 1 store i64 %"$consume_156", i64* @_gasrem, align 8 - store %Uint32 { i32 100 }, %Uint32* %uint32_100, align 4, !dbg !11 + store %Uint32 { i32 100 }, %Uint32* %uint32_100, align 4, !dbg !14 %"$gasrem_157" = load i64, i64* @_gasrem, align 8 %"$gascmp_158" = icmp ugt i64 1, %"$gasrem_157" br i1 %"$gascmp_158", label %"$out_of_gas_159", label %"$have_gas_160" @@ -295,6 +297,7 @@ entry: %"$consume_161" = sub i64 %"$gasrem_157", 1 store i64 %"$consume_161", i64* @_gasrem, align 8 %res1 = alloca [4 x i8], align 1 + call void @llvm.dbg.declare(metadata [4 x i8]* %res1, metadata !18, metadata !DIExpression()), !dbg !20 %"$gasrem_162" = load i64, i64* @_gasrem, align 8 %"$gascmp_163" = icmp ugt i64 4, %"$gasrem_162" br i1 %"$gascmp_163", label %"$out_of_gas_164", label %"$have_gas_165" @@ -308,10 +311,10 @@ entry: store i64 %"$consume_166", i64* @_gasrem, align 8 %"$execptr_load_167" = load i8*, i8** @_execptr, align 8 %"$uint32_100_168" = load %Uint32, %Uint32* %uint32_100, align 4 - %"$to_bystr4_call_169" = call i8* @_uint32_to_bystrx(i8* %"$execptr_load_167", %Uint32 %"$uint32_100_168"), !dbg !12 + %"$to_bystr4_call_169" = call i8* @_uint32_to_bystrx(i8* %"$execptr_load_167", %Uint32 %"$uint32_100_168"), !dbg !21 %"$to_bystr4_170" = bitcast i8* %"$to_bystr4_call_169" to [4 x i8]* %"$to_bystr4_171" = load [4 x i8], [4 x i8]* %"$to_bystr4_170", align 1 - store [4 x i8] %"$to_bystr4_171", [4 x i8]* %res1, align 1, !dbg !12 + store [4 x i8] %"$to_bystr4_171", [4 x i8]* %res1, align 1, !dbg !21 %"$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" @@ -324,6 +327,7 @@ entry: %"$consume_176" = sub i64 %"$gasrem_172", 1 store i64 %"$consume_176", i64* @_gasrem, align 8 %uint64_200 = alloca %Uint64, align 8 + call void @llvm.dbg.declare(metadata %Uint64* %uint64_200, metadata !22, metadata !DIExpression()), !dbg !24 %"$gasrem_177" = load i64, i64* @_gasrem, align 8 %"$gascmp_178" = icmp ugt i64 1, %"$gasrem_177" br i1 %"$gascmp_178", label %"$out_of_gas_179", label %"$have_gas_180" @@ -335,7 +339,7 @@ entry: "$have_gas_180": ; preds = %"$out_of_gas_179", %"$have_gas_175" %"$consume_181" = sub i64 %"$gasrem_177", 1 store i64 %"$consume_181", i64* @_gasrem, align 8 - store %Uint64 { i64 200 }, %Uint64* %uint64_200, align 8, !dbg !13 + store %Uint64 { i64 200 }, %Uint64* %uint64_200, align 8, !dbg !25 %"$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" @@ -348,6 +352,7 @@ entry: %"$consume_186" = sub i64 %"$gasrem_182", 1 store i64 %"$consume_186", i64* @_gasrem, align 8 %res2 = alloca [8 x i8], align 1 + call void @llvm.dbg.declare(metadata [8 x i8]* %res2, metadata !26, metadata !DIExpression()), !dbg !28 %"$gasrem_187" = load i64, i64* @_gasrem, align 8 %"$gascmp_188" = icmp ugt i64 8, %"$gasrem_187" br i1 %"$gascmp_188", label %"$out_of_gas_189", label %"$have_gas_190" @@ -361,10 +366,10 @@ entry: store i64 %"$consume_191", i64* @_gasrem, align 8 %"$execptr_load_192" = load i8*, i8** @_execptr, align 8 %"$uint64_200_193" = load %Uint64, %Uint64* %uint64_200, align 8 - %"$to_bystr8_call_194" = call i8* @_uint64_to_bystrx(i8* %"$execptr_load_192", %Uint64 %"$uint64_200_193"), !dbg !14 + %"$to_bystr8_call_194" = call i8* @_uint64_to_bystrx(i8* %"$execptr_load_192", %Uint64 %"$uint64_200_193"), !dbg !29 %"$to_bystr8_195" = bitcast i8* %"$to_bystr8_call_194" to [8 x i8]* %"$to_bystr8_196" = load [8 x i8], [8 x i8]* %"$to_bystr8_195", align 1 - store [8 x i8] %"$to_bystr8_196", [8 x i8]* %res2, align 1, !dbg !14 + store [8 x i8] %"$to_bystr8_196", [8 x i8]* %res2, align 1, !dbg !29 %"$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" @@ -377,6 +382,7 @@ entry: %"$consume_201" = sub i64 %"$gasrem_197", 1 store i64 %"$consume_201", i64* @_gasrem, align 8 %uint128_300 = alloca %Uint128, align 8 + call void @llvm.dbg.declare(metadata %Uint128* %uint128_300, metadata !30, metadata !DIExpression()), !dbg !32 %"$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" @@ -388,7 +394,7 @@ entry: "$have_gas_205": ; preds = %"$out_of_gas_204", %"$have_gas_200" %"$consume_206" = sub i64 %"$gasrem_202", 1 store i64 %"$consume_206", i64* @_gasrem, align 8 - store %Uint128 { i128 300 }, %Uint128* %uint128_300, align 8, !dbg !15 + store %Uint128 { i128 300 }, %Uint128* %uint128_300, align 8, !dbg !33 %"$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" @@ -401,6 +407,7 @@ entry: %"$consume_211" = sub i64 %"$gasrem_207", 1 store i64 %"$consume_211", i64* @_gasrem, align 8 %res3 = alloca [16 x i8], align 1 + call void @llvm.dbg.declare(metadata [16 x i8]* %res3, metadata !34, metadata !DIExpression()), !dbg !36 %"$gasrem_212" = load i64, i64* @_gasrem, align 8 %"$gascmp_213" = icmp ugt i64 16, %"$gasrem_212" br i1 %"$gascmp_213", label %"$out_of_gas_214", label %"$have_gas_215" @@ -414,10 +421,10 @@ entry: store i64 %"$consume_216", i64* @_gasrem, align 8 %"$execptr_load_217" = load i8*, i8** @_execptr, align 8 %"$uint128_300_218" = load %Uint128, %Uint128* %uint128_300, align 8 - %"$to_bystr16_call_219" = call i8* @_uint128_to_bystrx(i8* %"$execptr_load_217", %Uint128 %"$uint128_300_218"), !dbg !16 + %"$to_bystr16_call_219" = call i8* @_uint128_to_bystrx(i8* %"$execptr_load_217", %Uint128 %"$uint128_300_218"), !dbg !37 %"$to_bystr16_220" = bitcast i8* %"$to_bystr16_call_219" to [16 x i8]* %"$to_bystr16_221" = load [16 x i8], [16 x i8]* %"$to_bystr16_220", align 1 - store [16 x i8] %"$to_bystr16_221", [16 x i8]* %res3, align 1, !dbg !16 + store [16 x i8] %"$to_bystr16_221", [16 x i8]* %res3, align 1, !dbg !37 %"$gasrem_222" = load i64, i64* @_gasrem, align 8 %"$gascmp_223" = icmp ugt i64 1, %"$gasrem_222" br i1 %"$gascmp_223", label %"$out_of_gas_224", label %"$have_gas_225" @@ -430,6 +437,7 @@ entry: %"$consume_226" = sub i64 %"$gasrem_222", 1 store i64 %"$consume_226", i64* @_gasrem, align 8 %uint256_400 = alloca %Uint256, align 8 + call void @llvm.dbg.declare(metadata %Uint256* %uint256_400, metadata !38, metadata !DIExpression()), !dbg !40 %"$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" @@ -441,7 +449,7 @@ entry: "$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 - store %Uint256 { i256 400 }, %Uint256* %uint256_400, align 8, !dbg !17 + store %Uint256 { i256 400 }, %Uint256* %uint256_400, align 8, !dbg !41 %"$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" @@ -454,6 +462,7 @@ entry: %"$consume_236" = sub i64 %"$gasrem_232", 1 store i64 %"$consume_236", i64* @_gasrem, align 8 %res4 = alloca [32 x i8], align 1 + call void @llvm.dbg.declare(metadata [32 x i8]* %res4, metadata !42, metadata !DIExpression()), !dbg !44 %"$gasrem_237" = load i64, i64* @_gasrem, align 8 %"$gascmp_238" = icmp ugt i64 32, %"$gasrem_237" br i1 %"$gascmp_238", label %"$out_of_gas_239", label %"$have_gas_240" @@ -469,10 +478,10 @@ entry: %"$to_bystr32_uint256_400_243" = alloca %Uint256, align 8 %"$uint256_400_244" = load %Uint256, %Uint256* %uint256_400, align 8 store %Uint256 %"$uint256_400_244", %Uint256* %"$to_bystr32_uint256_400_243", align 8 - %"$to_bystr32_call_245" = call i8* @_uint256_to_bystrx(i8* %"$execptr_load_242", %Uint256* %"$to_bystr32_uint256_400_243"), !dbg !18 + %"$to_bystr32_call_245" = call i8* @_uint256_to_bystrx(i8* %"$execptr_load_242", %Uint256* %"$to_bystr32_uint256_400_243"), !dbg !45 %"$to_bystr32_246" = bitcast i8* %"$to_bystr32_call_245" to [32 x i8]* %"$to_bystr32_247" = load [32 x i8], [32 x i8]* %"$to_bystr32_246", align 1 - store [32 x i8] %"$to_bystr32_247", [32 x i8]* %res4, align 1, !dbg !18 + store [32 x i8] %"$to_bystr32_247", [32 x i8]* %res4, align 1, !dbg !45 %"$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" @@ -485,6 +494,7 @@ entry: %"$consume_252" = sub i64 %"$gasrem_248", 1 store i64 %"$consume_252", i64* @_gasrem, align 8 %x = alloca [2 x i8], align 1 + call void @llvm.dbg.declare(metadata [2 x i8]* %x, metadata !46, metadata !DIExpression()), !dbg !48 %"$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" @@ -496,7 +506,7 @@ entry: "$have_gas_256": ; preds = %"$out_of_gas_255", %"$have_gas_251" %"$consume_257" = sub i64 %"$gasrem_253", 1 store i64 %"$consume_257", i64* @_gasrem, align 8 - store [2 x i8] c"\FF\EE", [2 x i8]* %x, align 1, !dbg !19 + store [2 x i8] c"\FF\EE", [2 x i8]* %x, align 1, !dbg !49 %"$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" @@ -509,6 +519,7 @@ entry: %"$consume_262" = sub i64 %"$gasrem_258", 1 store i64 %"$consume_262", i64* @_gasrem, align 8 %xbs = alloca %Bystr, align 8 + call void @llvm.dbg.declare(metadata %Bystr* %xbs, metadata !50, metadata !DIExpression()), !dbg !52 %"$gasrem_263" = load i64, i64* @_gasrem, align 8 %"$gascmp_264" = icmp ugt i64 2, %"$gasrem_263" br i1 %"$gascmp_264", label %"$out_of_gas_265", label %"$have_gas_266" @@ -525,8 +536,8 @@ entry: %"$x_270" = load [2 x i8], [2 x i8]* %x, align 1 store [2 x i8] %"$x_270", [2 x i8]* %"$to_bystr_x_269", align 1 %"$$to_bystr_x_269_271" = bitcast [2 x i8]* %"$to_bystr_x_269" to i8* - %"$to_bystr_call_272" = call %Bystr @_to_bystr(i8* %"$execptr_load_268", i32 2, i8* %"$$to_bystr_x_269_271"), !dbg !20 - store %Bystr %"$to_bystr_call_272", %Bystr* %xbs, align 8, !dbg !20 + %"$to_bystr_call_272" = call %Bystr @_to_bystr(i8* %"$execptr_load_268", i32 2, i8* %"$$to_bystr_x_269_271"), !dbg !53 + store %Bystr %"$to_bystr_call_272", %Bystr* %xbs, align 8, !dbg !53 %"$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" @@ -539,6 +550,7 @@ entry: %"$consume_277" = sub i64 %"$gasrem_273", 1 store i64 %"$consume_277", i64* @_gasrem, align 8 %res_x_some = alloca %TName_Option_ByStr2*, align 8 + call void @llvm.dbg.declare(metadata %TName_Option_ByStr2** %res_x_some, metadata !54, metadata !DIExpression()), !dbg !57 %"$gasrem_278" = load i64, i64* @_gasrem, align 8 %"$gascmp_279" = icmp ugt i64 2, %"$gasrem_278" br i1 %"$gascmp_279", label %"$out_of_gas_280", label %"$have_gas_281" @@ -552,9 +564,9 @@ entry: store i64 %"$consume_282", i64* @_gasrem, align 8 %"$execptr_load_283" = load i8*, i8** @_execptr, align 8 %"$xbs_284" = load %Bystr, %Bystr* %xbs, align 8 - %"$to_bystr2_call_285" = call i8* @_bystr_to_bystrx(i8* %"$execptr_load_283", i32 2, %Bystr %"$xbs_284"), !dbg !21 + %"$to_bystr2_call_285" = call i8* @_bystr_to_bystrx(i8* %"$execptr_load_283", i32 2, %Bystr %"$xbs_284"), !dbg !58 %"$to_bystr2_286" = bitcast i8* %"$to_bystr2_call_285" to %TName_Option_ByStr2* - store %TName_Option_ByStr2* %"$to_bystr2_286", %TName_Option_ByStr2** %res_x_some, align 8, !dbg !21 + store %TName_Option_ByStr2* %"$to_bystr2_286", %TName_Option_ByStr2** %res_x_some, align 8, !dbg !58 %"$gasrem_287" = load i64, i64* @_gasrem, align 8 %"$gascmp_288" = icmp ugt i64 1, %"$gasrem_287" br i1 %"$gascmp_288", label %"$out_of_gas_289", label %"$have_gas_290" @@ -567,6 +579,7 @@ entry: %"$consume_291" = sub i64 %"$gasrem_287", 1 store i64 %"$consume_291", i64* @_gasrem, align 8 %res_x_none = alloca %TName_Option_ByStr3*, align 8 + call void @llvm.dbg.declare(metadata %TName_Option_ByStr3** %res_x_none, metadata !59, metadata !DIExpression()), !dbg !62 %"$gasrem_292" = load i64, i64* @_gasrem, align 8 %"$gascmp_293" = icmp ugt i64 3, %"$gasrem_292" br i1 %"$gascmp_293", label %"$out_of_gas_294", label %"$have_gas_295" @@ -580,9 +593,9 @@ entry: store i64 %"$consume_296", i64* @_gasrem, align 8 %"$execptr_load_297" = load i8*, i8** @_execptr, align 8 %"$xbs_298" = load %Bystr, %Bystr* %xbs, align 8 - %"$to_bystr3_call_299" = call i8* @_bystr_to_bystrx(i8* %"$execptr_load_297", i32 3, %Bystr %"$xbs_298"), !dbg !22 + %"$to_bystr3_call_299" = call i8* @_bystr_to_bystrx(i8* %"$execptr_load_297", i32 3, %Bystr %"$xbs_298"), !dbg !63 %"$to_bystr3_300" = bitcast i8* %"$to_bystr3_call_299" to %TName_Option_ByStr3* - store %TName_Option_ByStr3* %"$to_bystr3_300", %TName_Option_ByStr3** %res_x_none, align 8, !dbg !22 + store %TName_Option_ByStr3* %"$to_bystr3_300", %TName_Option_ByStr3** %res_x_none, align 8, !dbg !63 %"$gasrem_301" = load i64, i64* @_gasrem, align 8 %"$gascmp_302" = icmp ugt i64 1, %"$gasrem_301" br i1 %"$gascmp_302", label %"$out_of_gas_303", label %"$have_gas_304" @@ -595,6 +608,7 @@ entry: %"$consume_305" = sub i64 %"$gasrem_301", 1 store i64 %"$consume_305", i64* @_gasrem, align 8 %res_x_opt_out = alloca %"TName_Pair_Option_(ByStr2)_Option_(ByStr3)"*, align 8 + call void @llvm.dbg.declare(metadata %"TName_Pair_Option_(ByStr2)_Option_(ByStr3)"** %res_x_opt_out, metadata !64, metadata !DIExpression()), !dbg !67 %"$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" @@ -618,7 +632,7 @@ entry: %"$adtgep_316" = getelementptr inbounds %"CName_Pair_Option_(ByStr2)_Option_(ByStr3)", %"CName_Pair_Option_(ByStr2)_Option_(ByStr3)"* %"$adtval_313", i32 0, i32 2 store %TName_Option_ByStr3* %"$res_x_none_312", %TName_Option_ByStr3** %"$adtgep_316", align 8 %"$adtptr_317" = bitcast %"CName_Pair_Option_(ByStr2)_Option_(ByStr3)"* %"$adtval_313" to %"TName_Pair_Option_(ByStr2)_Option_(ByStr3)"* - store %"TName_Pair_Option_(ByStr2)_Option_(ByStr3)"* %"$adtptr_317", %"TName_Pair_Option_(ByStr2)_Option_(ByStr3)"** %res_x_opt_out, align 8, !dbg !23 + store %"TName_Pair_Option_(ByStr2)_Option_(ByStr3)"* %"$adtptr_317", %"TName_Pair_Option_(ByStr2)_Option_(ByStr3)"** %res_x_opt_out, align 8, !dbg !68 %"$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" @@ -631,6 +645,7 @@ entry: %"$consume_322" = sub i64 %"$gasrem_318", 1 store i64 %"$consume_322", i64* @_gasrem, align 8 %out1 = alloca %TName_Pair_ByStr4_ByStr8*, align 8 + call void @llvm.dbg.declare(metadata %TName_Pair_ByStr4_ByStr8** %out1, metadata !69, metadata !DIExpression()), !dbg !72 %"$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" @@ -654,7 +669,7 @@ entry: %"$adtgep_333" = getelementptr inbounds %CName_Pair_ByStr4_ByStr8, %CName_Pair_ByStr4_ByStr8* %"$adtval_330", i32 0, i32 2 store [8 x i8] %"$res2_329", [8 x i8]* %"$adtgep_333", align 1 %"$adtptr_334" = bitcast %CName_Pair_ByStr4_ByStr8* %"$adtval_330" to %TName_Pair_ByStr4_ByStr8* - store %TName_Pair_ByStr4_ByStr8* %"$adtptr_334", %TName_Pair_ByStr4_ByStr8** %out1, align 8, !dbg !24 + store %TName_Pair_ByStr4_ByStr8* %"$adtptr_334", %TName_Pair_ByStr4_ByStr8** %out1, align 8, !dbg !73 %"$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" @@ -667,6 +682,7 @@ entry: %"$consume_339" = sub i64 %"$gasrem_335", 1 store i64 %"$consume_339", i64* @_gasrem, align 8 %out2 = alloca %"TName_Pair_Pair_(ByStr4)_(ByStr8)_ByStr16"*, align 8 + call void @llvm.dbg.declare(metadata %"TName_Pair_Pair_(ByStr4)_(ByStr8)_ByStr16"** %out2, metadata !74, metadata !DIExpression()), !dbg !77 %"$gasrem_340" = load i64, i64* @_gasrem, align 8 %"$gascmp_341" = icmp ugt i64 1, %"$gasrem_340" br i1 %"$gascmp_341", label %"$out_of_gas_342", label %"$have_gas_343" @@ -690,7 +706,7 @@ entry: %"$adtgep_350" = getelementptr inbounds %"CName_Pair_Pair_(ByStr4)_(ByStr8)_ByStr16", %"CName_Pair_Pair_(ByStr4)_(ByStr8)_ByStr16"* %"$adtval_347", i32 0, i32 2 store [16 x i8] %"$res3_346", [16 x i8]* %"$adtgep_350", align 1 %"$adtptr_351" = bitcast %"CName_Pair_Pair_(ByStr4)_(ByStr8)_ByStr16"* %"$adtval_347" to %"TName_Pair_Pair_(ByStr4)_(ByStr8)_ByStr16"* - store %"TName_Pair_Pair_(ByStr4)_(ByStr8)_ByStr16"* %"$adtptr_351", %"TName_Pair_Pair_(ByStr4)_(ByStr8)_ByStr16"** %out2, align 8, !dbg !25 + store %"TName_Pair_Pair_(ByStr4)_(ByStr8)_ByStr16"* %"$adtptr_351", %"TName_Pair_Pair_(ByStr4)_(ByStr8)_ByStr16"** %out2, align 8, !dbg !78 %"$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" @@ -703,6 +719,7 @@ entry: %"$consume_356" = sub i64 %"$gasrem_352", 1 store i64 %"$consume_356", i64* @_gasrem, align 8 %out3 = alloca %"TName_Pair_Pair_(Pair_(ByStr4)_(ByStr8))_(ByStr16)_ByStr32"*, align 8 + call void @llvm.dbg.declare(metadata %"TName_Pair_Pair_(Pair_(ByStr4)_(ByStr8))_(ByStr16)_ByStr32"** %out3, metadata !79, metadata !DIExpression()), !dbg !82 %"$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" @@ -726,7 +743,7 @@ entry: %"$adtgep_367" = getelementptr inbounds %"CName_Pair_Pair_(Pair_(ByStr4)_(ByStr8))_(ByStr16)_ByStr32", %"CName_Pair_Pair_(Pair_(ByStr4)_(ByStr8))_(ByStr16)_ByStr32"* %"$adtval_364", i32 0, i32 2 store [32 x i8] %"$res4_363", [32 x i8]* %"$adtgep_367", align 1 %"$adtptr_368" = bitcast %"CName_Pair_Pair_(Pair_(ByStr4)_(ByStr8))_(ByStr16)_ByStr32"* %"$adtval_364" to %"TName_Pair_Pair_(Pair_(ByStr4)_(ByStr8))_(ByStr16)_ByStr32"* - store %"TName_Pair_Pair_(Pair_(ByStr4)_(ByStr8))_(ByStr16)_ByStr32"* %"$adtptr_368", %"TName_Pair_Pair_(Pair_(ByStr4)_(ByStr8))_(ByStr16)_ByStr32"** %out3, align 8, !dbg !26 + store %"TName_Pair_Pair_(Pair_(ByStr4)_(ByStr8))_(ByStr16)_ByStr32"* %"$adtptr_368", %"TName_Pair_Pair_(Pair_(ByStr4)_(ByStr8))_(ByStr16)_ByStr32"** %out3, align 8, !dbg !83 %"$gasrem_369" = load i64, i64* @_gasrem, align 8 %"$gascmp_370" = icmp ugt i64 1, %"$gasrem_369" br i1 %"$gascmp_370", label %"$out_of_gas_371", label %"$have_gas_372" @@ -739,6 +756,7 @@ entry: %"$consume_373" = sub i64 %"$gasrem_369", 1 store i64 %"$consume_373", i64* @_gasrem, align 8 %out4 = alloca %"TName_Pair_Pair_(Pair_(Pair_(ByStr4)_(ByStr8))_(ByStr16))_(ByStr32)_Pair_(Option_(ByStr2))_(Option_(ByStr3))"*, align 8 + call void @llvm.dbg.declare(metadata %"TName_Pair_Pair_(Pair_(Pair_(ByStr4)_(ByStr8))_(ByStr16))_(ByStr32)_Pair_(Option_(ByStr2))_(Option_(ByStr3))"** %out4, metadata !84, metadata !DIExpression()), !dbg !85 %"$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" @@ -762,7 +780,7 @@ entry: %"$adtgep_384" = getelementptr inbounds %"CName_Pair_Pair_(Pair_(Pair_(ByStr4)_(ByStr8))_(ByStr16))_(ByStr32)_Pair_(Option_(ByStr2))_(Option_(ByStr3))", %"CName_Pair_Pair_(Pair_(Pair_(ByStr4)_(ByStr8))_(ByStr16))_(ByStr32)_Pair_(Option_(ByStr2))_(Option_(ByStr3))"* %"$adtval_381", i32 0, i32 2 store %"TName_Pair_Option_(ByStr2)_Option_(ByStr3)"* %"$res_x_opt_out_380", %"TName_Pair_Option_(ByStr2)_Option_(ByStr3)"** %"$adtgep_384", align 8 %"$adtptr_385" = bitcast %"CName_Pair_Pair_(Pair_(Pair_(ByStr4)_(ByStr8))_(ByStr16))_(ByStr32)_Pair_(Option_(ByStr2))_(Option_(ByStr3))"* %"$adtval_381" to %"TName_Pair_Pair_(Pair_(Pair_(ByStr4)_(ByStr8))_(ByStr16))_(ByStr32)_Pair_(Option_(ByStr2))_(Option_(ByStr3))"* - store %"TName_Pair_Pair_(Pair_(Pair_(ByStr4)_(ByStr8))_(ByStr16))_(ByStr32)_Pair_(Option_(ByStr2))_(Option_(ByStr3))"* %"$adtptr_385", %"TName_Pair_Pair_(Pair_(Pair_(ByStr4)_(ByStr8))_(ByStr16))_(ByStr32)_Pair_(Option_(ByStr2))_(Option_(ByStr3))"** %out4, align 8, !dbg !27 + store %"TName_Pair_Pair_(Pair_(Pair_(ByStr4)_(ByStr8))_(ByStr16))_(ByStr32)_Pair_(Option_(ByStr2))_(Option_(ByStr3))"* %"$adtptr_385", %"TName_Pair_Pair_(Pair_(Pair_(ByStr4)_(ByStr8))_(ByStr16))_(ByStr32)_Pair_(Option_(ByStr2))_(Option_(ByStr3))"** %out4, align 8, !dbg !86 %"$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" @@ -775,11 +793,14 @@ entry: %"$consume_390" = sub i64 %"$gasrem_386", 1 store i64 %"$consume_390", i64* @_gasrem, align 8 %"$out4_391" = load %"TName_Pair_Pair_(Pair_(Pair_(ByStr4)_(ByStr8))_(ByStr16))_(ByStr32)_Pair_(Option_(ByStr2))_(Option_(ByStr3))"*, %"TName_Pair_Pair_(Pair_(Pair_(ByStr4)_(ByStr8))_(ByStr16))_(ByStr32)_Pair_(Option_(ByStr2))_(Option_(ByStr3))"** %out4, align 8 - store %"TName_Pair_Pair_(Pair_(Pair_(ByStr4)_(ByStr8))_(ByStr16))_(ByStr32)_Pair_(Option_(ByStr2))_(Option_(ByStr3))"* %"$out4_391", %"TName_Pair_Pair_(Pair_(Pair_(ByStr4)_(ByStr8))_(ByStr16))_(ByStr32)_Pair_(Option_(ByStr2))_(Option_(ByStr3))"** %"$expr_6", align 8, !dbg !28 + store %"TName_Pair_Pair_(Pair_(Pair_(ByStr4)_(ByStr8))_(ByStr16))_(ByStr32)_Pair_(Option_(ByStr2))_(Option_(ByStr3))"* %"$out4_391", %"TName_Pair_Pair_(Pair_(Pair_(ByStr4)_(ByStr8))_(ByStr16))_(ByStr32)_Pair_(Option_(ByStr2))_(Option_(ByStr3))"** %"$expr_6", align 8, !dbg !87 %"$$expr_6_392" = load %"TName_Pair_Pair_(Pair_(Pair_(ByStr4)_(ByStr8))_(ByStr16))_(ByStr32)_Pair_(Option_(ByStr2))_(Option_(ByStr3))"*, %"TName_Pair_Pair_(Pair_(Pair_(ByStr4)_(ByStr8))_(ByStr16))_(ByStr32)_Pair_(Option_(ByStr2))_(Option_(ByStr3))"** %"$expr_6", align 8 ret %"TName_Pair_Pair_(Pair_(Pair_(ByStr4)_(ByStr8))_(ByStr16))_(ByStr32)_Pair_(Option_(ByStr2))_(Option_(ByStr3))"* %"$$expr_6_392" } +; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn +declare void @llvm.dbg.declare(metadata, metadata, metadata) #0 + declare i8* @_uint32_to_bystrx(i8*, %Uint32) declare i8* @_uint64_to_bystrx(i8*, %Uint64) @@ -805,35 +826,96 @@ entry: ret void } +attributes #0 = { nocallback nofree nosync nounwind readnone speculatable willreturn } + !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) +!1 = distinct !DICompileUnit(language: DW_LANG_C89, file: !2, producer: "Scilla Compiler", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false) !2 = !DIFile(filename: "builtin_to_bystrx.scilexp", directory: "codegen/expr") -!3 = !{} -!4 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !5, file: !5, type: !6, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!5 = !DIFile(filename: ".", directory: ".") -!6 = !DISubroutineType(types: !7) -!7 = !{!8} -!8 = !DIBasicType(tag: DW_TAG_unspecified_type, name: "void") -!9 = !DILocation(line: 0, scope: !4) -!10 = distinct !DISubprogram(name: "_scilla_expr_fun", linkageName: "_scilla_expr_fun", scope: !2, file: !2, line: 1, type: !6, scopeLine: 1, spFlags: DISPFlagDefinition, unit: !1, retainedNodes: !3) -!11 = !DILocation(line: 1, column: 18, scope: !10) -!12 = !DILocation(line: 2, column: 12, scope: !10) -!13 = !DILocation(line: 4, column: 18, scope: !10) -!14 = !DILocation(line: 5, column: 12, scope: !10) -!15 = !DILocation(line: 7, column: 19, scope: !10) -!16 = !DILocation(line: 8, column: 12, scope: !10) -!17 = !DILocation(line: 10, column: 19, scope: !10) -!18 = !DILocation(line: 11, column: 12, scope: !10) -!19 = !DILocation(line: 13, column: 9, scope: !10) -!20 = !DILocation(line: 14, column: 11, scope: !10) -!21 = !DILocation(line: 15, column: 18, scope: !10) -!22 = !DILocation(line: 16, column: 18, scope: !10) -!23 = !DILocation(line: 17, column: 21, scope: !10) -!24 = !DILocation(line: 19, column: 12, scope: !10) -!25 = !DILocation(line: 20, column: 12, scope: !10) -!26 = !DILocation(line: 21, column: 12, scope: !10) -!27 = !DILocation(line: 22, column: 12, scope: !10) -!28 = !DILocation(line: 24, column: 1, scope: !10) +!3 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !4, file: !4, type: !5, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!4 = !DIFile(filename: ".", directory: ".") +!5 = !DISubroutineType(types: !6) +!6 = !{!7} +!7 = !DIBasicType(tag: DW_TAG_unspecified_type, name: "void") +!8 = !{} +!9 = !DILocation(line: 0, scope: !3) +!10 = distinct !DISubprogram(name: "_scilla_expr_fun", linkageName: "_scilla_expr_fun", scope: !2, file: !2, line: 1, type: !5, scopeLine: 1, spFlags: DISPFlagDefinition, unit: !1, retainedNodes: !8) +!11 = !DILocalVariable(name: "$expr_6", scope: !10, file: !2, line: 1, type: !12) +!12 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "Pair (Pair (Pair (Pair (ByStr4) (ByStr8)) (ByStr16)) (ByStr32)) (Pair (Option (ByStr2)) (Option (ByStr3)))", baseType: !13, size: 8, align: 8, dwarfAddressSpace: 0) +!13 = !DIBasicType(name: "Pair (Pair (Pair (Pair (ByStr4) (ByStr8)) (ByStr16)) (ByStr32)) (Pair (Option (ByStr2)) (Option (ByStr3)))", size: 8) +!14 = !DILocation(line: 1, column: 18, scope: !10) +!15 = !DILocalVariable(name: "uint32_100", scope: !10, file: !2, line: 1, type: !16) +!16 = !DIBasicType(name: "Uint32", size: 4) +!17 = !DILocation(line: 1, column: 5, scope: !10) +!18 = !DILocalVariable(name: "res1", scope: !10, file: !2, line: 2, type: !19) +!19 = !DIBasicType(name: "ByStr4", size: 4) +!20 = !DILocation(line: 2, column: 5, scope: !10) +!21 = !DILocation(line: 2, column: 12, scope: !10) +!22 = !DILocalVariable(name: "uint64_200", scope: !10, file: !2, line: 4, type: !23) +!23 = !DIBasicType(name: "Uint64", size: 8) +!24 = !DILocation(line: 4, column: 5, scope: !10) +!25 = !DILocation(line: 4, column: 18, scope: !10) +!26 = !DILocalVariable(name: "res2", scope: !10, file: !2, line: 5, type: !27) +!27 = !DIBasicType(name: "ByStr8", size: 8) +!28 = !DILocation(line: 5, column: 5, scope: !10) +!29 = !DILocation(line: 5, column: 12, scope: !10) +!30 = !DILocalVariable(name: "uint128_300", scope: !10, file: !2, line: 7, type: !31) +!31 = !DIBasicType(name: "Uint128", size: 16) +!32 = !DILocation(line: 7, column: 5, scope: !10) +!33 = !DILocation(line: 7, column: 19, scope: !10) +!34 = !DILocalVariable(name: "res3", scope: !10, file: !2, line: 8, type: !35) +!35 = !DIBasicType(name: "ByStr16", size: 16) +!36 = !DILocation(line: 8, column: 5, scope: !10) +!37 = !DILocation(line: 8, column: 12, scope: !10) +!38 = !DILocalVariable(name: "uint256_400", scope: !10, file: !2, line: 10, type: !39) +!39 = !DIBasicType(name: "Uint256", size: 32) +!40 = !DILocation(line: 10, column: 5, scope: !10) +!41 = !DILocation(line: 10, column: 19, scope: !10) +!42 = !DILocalVariable(name: "res4", scope: !10, file: !2, line: 11, type: !43) +!43 = !DIBasicType(name: "ByStr32", size: 32) +!44 = !DILocation(line: 11, column: 5, scope: !10) +!45 = !DILocation(line: 11, column: 12, scope: !10) +!46 = !DILocalVariable(name: "x", scope: !10, file: !2, line: 13, type: !47) +!47 = !DIBasicType(name: "ByStr2", size: 2) +!48 = !DILocation(line: 13, column: 5, scope: !10) +!49 = !DILocation(line: 13, column: 9, scope: !10) +!50 = !DILocalVariable(name: "xbs", scope: !10, file: !2, line: 14, type: !51) +!51 = !DIBasicType(name: "ByStr", size: 16) +!52 = !DILocation(line: 14, column: 5, scope: !10) +!53 = !DILocation(line: 14, column: 11, scope: !10) +!54 = !DILocalVariable(name: "res_x_some", scope: !10, file: !2, line: 15, type: !55) +!55 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "Option (ByStr2)", baseType: !56, size: 8, align: 8, dwarfAddressSpace: 0) +!56 = !DIBasicType(name: "Option (ByStr2)", size: 8) +!57 = !DILocation(line: 15, column: 5, scope: !10) +!58 = !DILocation(line: 15, column: 18, scope: !10) +!59 = !DILocalVariable(name: "res_x_none", scope: !10, file: !2, line: 16, type: !60) +!60 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "Option (ByStr3)", baseType: !61, size: 8, align: 8, dwarfAddressSpace: 0) +!61 = !DIBasicType(name: "Option (ByStr3)", size: 8) +!62 = !DILocation(line: 16, column: 5, scope: !10) +!63 = !DILocation(line: 16, column: 18, scope: !10) +!64 = !DILocalVariable(name: "res_x_opt_out", scope: !10, file: !2, line: 17, type: !65) +!65 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "Pair (Option (ByStr2)) (Option (ByStr3))", baseType: !66, size: 8, align: 8, dwarfAddressSpace: 0) +!66 = !DIBasicType(name: "Pair (Option (ByStr2)) (Option (ByStr3))", size: 8) +!67 = !DILocation(line: 17, column: 5, scope: !10) +!68 = !DILocation(line: 17, column: 21, scope: !10) +!69 = !DILocalVariable(name: "out1", scope: !10, file: !2, line: 19, type: !70) +!70 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "Pair (ByStr4) (ByStr8)", baseType: !71, size: 8, align: 8, dwarfAddressSpace: 0) +!71 = !DIBasicType(name: "Pair (ByStr4) (ByStr8)", size: 8) +!72 = !DILocation(line: 19, column: 5, scope: !10) +!73 = !DILocation(line: 19, column: 12, scope: !10) +!74 = !DILocalVariable(name: "out2", scope: !10, file: !2, line: 20, type: !75) +!75 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "Pair (Pair (ByStr4) (ByStr8)) (ByStr16)", baseType: !76, size: 8, align: 8, dwarfAddressSpace: 0) +!76 = !DIBasicType(name: "Pair (Pair (ByStr4) (ByStr8)) (ByStr16)", size: 8) +!77 = !DILocation(line: 20, column: 5, scope: !10) +!78 = !DILocation(line: 20, column: 12, scope: !10) +!79 = !DILocalVariable(name: "out3", scope: !10, file: !2, line: 21, type: !80) +!80 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "Pair (Pair (Pair (ByStr4) (ByStr8)) (ByStr16)) (ByStr32)", baseType: !81, size: 8, align: 8, dwarfAddressSpace: 0) +!81 = !DIBasicType(name: "Pair (Pair (Pair (ByStr4) (ByStr8)) (ByStr16)) (ByStr32)", size: 8) +!82 = !DILocation(line: 21, column: 5, scope: !10) +!83 = !DILocation(line: 21, column: 12, scope: !10) +!84 = !DILocalVariable(name: "out4", scope: !10, file: !2, line: 22, type: !12) +!85 = !DILocation(line: 22, column: 5, scope: !10) +!86 = !DILocation(line: 22, column: 12, scope: !10) +!87 = !DILocation(line: 24, column: 1, scope: !10) diff --git a/testsuite/expr/builtin_to_bystrx.ll b/testsuite/expr/builtin_to_bystrx.ll index 31b835e3..61170a75 100644 --- a/testsuite/expr/builtin_to_bystrx.ll +++ b/testsuite/expr/builtin_to_bystrx.ll @@ -25,7 +25,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-pc-linux-gnu" +target triple = "x86_64-unknown-linux-gnu" %"$TyDescrTy_PrimTyp_7" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/testsuite/expr/builtin_to_int.dbg.ll b/testsuite/expr/builtin_to_int.dbg.ll index 95c76fca..b44e8a46 100644 --- a/testsuite/expr/builtin_to_int.dbg.ll +++ b/testsuite/expr/builtin_to_int.dbg.ll @@ -188,7 +188,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-pc-linux-gnu" +target triple = "x86_64-unknown-linux-gnu" %"$TyDescrTy_PrimTyp_86" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } @@ -200,9 +200,9 @@ target triple = "x86_64-pc-linux-gnu" %TName_Bool = type { i8, %CName_True*, %CName_False* } %CName_True = type <{ i8 }> %CName_False = type <{ i8 }> -%"$ParamDescr_1703" = type { %ParamDescrString, %_TyDescrTy_Typ* } +%"$ParamDescr_1705" = type { %ParamDescrString, %_TyDescrTy_Typ* } %ParamDescrString = type { i8*, i32 } -%"$TransDescr_1704" = type { %ParamDescrString, i32, %"$ParamDescr_1703"* } +%"$TransDescr_1706" = type { %ParamDescrString, i32, %"$ParamDescr_1705"* } %"$$fundef_83_env_169" = type { %TName_Bool* } %"$$fundef_81_env_170" = type {} %Uint32 = type { i32 } @@ -308,93 +308,100 @@ target triple = "x86_64-pc-linux-gnu" @"$_gas_charge_accListUtils_2" = global %Int32 zeroinitializer @"$_gas_charge_accNatUtils_3" = global %Int32 zeroinitializer @"$_gas_charge_accPairUtils_4" = global %Int32 zeroinitializer -@"$stringlit_474" = unnamed_addr constant [4 x i8] c"1844" -@"$stringlit_910" = unnamed_addr constant [19 x i8] c"9223372036854775808" -@"$stringlit_1158" = unnamed_addr constant [20 x i8] c"-9223372036854775808" -@"$stringlit_1350" = unnamed_addr constant [19 x i8] c"9223372036854775807" -@"$stringlit_1545" = unnamed_addr constant [77 x i8] c"57896044618658097711785492504343953926634992332820282019728792003956564819967" -@"$stringlit_1643" = unnamed_addr constant [4 x i8] c"abcd" +@"$stringlit_476" = unnamed_addr constant [4 x i8] c"1844" +@"$stringlit_912" = unnamed_addr constant [19 x i8] c"9223372036854775808" +@"$stringlit_1160" = unnamed_addr constant [20 x i8] c"-9223372036854775808" +@"$stringlit_1352" = unnamed_addr constant [19 x i8] c"9223372036854775807" +@"$stringlit_1547" = unnamed_addr constant [77 x i8] c"57896044618658097711785492504343953926634992332820282019728792003956564819967" +@"$stringlit_1645" = unnamed_addr constant [4 x i8] c"abcd" @_tydescr_table = constant [19 x %_TyDescrTy_Typ*] [%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_Int256_120", %_TyDescrTy_Typ* @"$TyDescr_Event_110", %_TyDescrTy_Typ* @"$TyDescr_Int64_92", %_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_123", %_TyDescrTy_Typ* @"$TyDescr_ADT_Option_Int64_121", %_TyDescrTy_Typ* @"$TyDescr_Uint256_102", %_TyDescrTy_Typ* @"$TyDescr_Uint32_90", %_TyDescrTy_Typ* @"$TyDescr_Uint64_94", %_TyDescrTy_Typ* @"$TyDescr_Bnum_106", %_TyDescrTy_Typ* @"$TyDescr_Uint128_98", %_TyDescrTy_Typ* @"$TyDescr_ADT_Option_Int32_122", %_TyDescrTy_Typ* @"$TyDescr_Exception_112", %_TyDescrTy_Typ* @"$TyDescr_String_104", %_TyDescrTy_Typ* @"$TyDescr_Int256_100", %_TyDescrTy_Typ* @"$TyDescr_Int128_96", %_TyDescrTy_Typ* @"$TyDescr_Bystr_116", %_TyDescrTy_Typ* @"$TyDescr_ReplicateContr_114", %_TyDescrTy_Typ* @"$TyDescr_Message_108", %_TyDescrTy_Typ* @"$TyDescr_Int32_88"] @_tydescr_table_length = constant i32 19 -@_contract_parameters = constant [0 x %"$ParamDescr_1703"] zeroinitializer +@_contract_parameters = constant [0 x %"$ParamDescr_1705"] zeroinitializer @_contract_parameters_length = constant i32 0 -@_transition_parameters = constant [0 x %"$TransDescr_1704"] zeroinitializer +@_transition_parameters = constant [0 x %"$TransDescr_1706"] zeroinitializer @_transition_parameters_length = constant i32 0 -define internal %TName_Bool* @"$fundef_83"(%"$$fundef_83_env_169"* %0, %TName_Bool* %1) !dbg !4 { +define internal %TName_Bool* @"$fundef_83"(%"$$fundef_83_env_169"* %0, %TName_Bool* %1) !dbg !3 { entry: - %"$$fundef_83_env_b_182" = getelementptr inbounds %"$$fundef_83_env_169", %"$$fundef_83_env_169"* %0, i32 0, i32 0 - %"$b_envload_183" = load %TName_Bool*, %TName_Bool** %"$$fundef_83_env_b_182", align 8 + %"$c_213" = alloca %TName_Bool*, align 8 + store %TName_Bool* %1, %TName_Bool** %"$c_213", align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$c_213", metadata !9, metadata !DIExpression()), !dbg !12 + %"$$fundef_83_env_b_183" = getelementptr inbounds %"$$fundef_83_env_169", %"$$fundef_83_env_169"* %0, i32 0, i32 0 + %"$b_envload_184" = load %TName_Bool*, %TName_Bool** %"$$fundef_83_env_b_183", align 8 %b = alloca %TName_Bool*, align 8 - store %TName_Bool* %"$b_envload_183", %TName_Bool** %b, align 8 + store %TName_Bool* %"$b_envload_184", %TName_Bool** %b, align 8 %"$retval_84" = alloca %TName_Bool*, align 8 - %"$gasrem_184" = load i64, i64* @_gasrem, align 8 - %"$gascmp_185" = icmp ugt i64 2, %"$gasrem_184" - br i1 %"$gascmp_185", label %"$out_of_gas_186", label %"$have_gas_187" - -"$out_of_gas_186": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_187" - -"$have_gas_187": ; preds = %"$out_of_gas_186", %entry - %"$consume_188" = sub i64 %"$gasrem_184", 2 - store i64 %"$consume_188", i64* @_gasrem, align 8 - %"$b_190" = load %TName_Bool*, %TName_Bool** %b, align 8 - %"$b_tag_191" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$b_190", i32 0, i32 0 - %"$b_tag_192" = load i8, i8* %"$b_tag_191", align 1 - switch i8 %"$b_tag_192", label %"$empty_default_193" [ - i8 1, label %"$False_194" - i8 0, label %"$True_204" - ], !dbg !9 - -"$False_194": ; preds = %"$have_gas_187" - %"$b_195" = bitcast %TName_Bool* %"$b_190" to %CName_False* - %"$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 = %"$False_194" - call void @_out_of_gas() - br label %"$have_gas_199" - -"$have_gas_199": ; preds = %"$out_of_gas_198", %"$False_194" - %"$consume_200" = sub i64 %"$gasrem_196", 1 - store i64 %"$consume_200", i64* @_gasrem, align 8 - %"$adtval_201_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_201_salloc" = call i8* @_salloc(i8* %"$adtval_201_load", i64 1) - %"$adtval_201" = bitcast i8* %"$adtval_201_salloc" to %CName_False* - %"$adtgep_202" = getelementptr inbounds %CName_False, %CName_False* %"$adtval_201", i32 0, i32 0 - store i8 1, i8* %"$adtgep_202", align 1 - %"$adtptr_203" = bitcast %CName_False* %"$adtval_201" to %TName_Bool* - store %TName_Bool* %"$adtptr_203", %TName_Bool** %"$retval_84", align 8, !dbg !10 - br label %"$matchsucc_189" - -"$True_204": ; preds = %"$have_gas_187" - %"$b_205" = bitcast %TName_Bool* %"$b_190" to %CName_True* - %"$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 = %"$True_204" - call void @_out_of_gas() - br label %"$have_gas_209" - -"$have_gas_209": ; preds = %"$out_of_gas_208", %"$True_204" - %"$consume_210" = sub i64 %"$gasrem_206", 1 - store i64 %"$consume_210", i64* @_gasrem, align 8 - store %TName_Bool* %1, %TName_Bool** %"$retval_84", align 8, !dbg !13 - br label %"$matchsucc_189" - -"$empty_default_193": ; preds = %"$have_gas_187" - br label %"$matchsucc_189" - -"$matchsucc_189": ; preds = %"$have_gas_209", %"$have_gas_199", %"$empty_default_193" - %"$$retval_84_211" = load %TName_Bool*, %TName_Bool** %"$retval_84", align 8 - ret %TName_Bool* %"$$retval_84_211" + call void @llvm.dbg.declare(metadata %TName_Bool** %"$retval_84", metadata !13, metadata !DIExpression()), !dbg !14 + %"$gasrem_185" = load i64, i64* @_gasrem, align 8 + %"$gascmp_186" = icmp ugt i64 2, %"$gasrem_185" + br i1 %"$gascmp_186", label %"$out_of_gas_187", label %"$have_gas_188" + +"$out_of_gas_187": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_188" + +"$have_gas_188": ; preds = %"$out_of_gas_187", %entry + %"$consume_189" = sub i64 %"$gasrem_185", 2 + store i64 %"$consume_189", i64* @_gasrem, align 8 + %"$b_191" = load %TName_Bool*, %TName_Bool** %b, align 8 + %"$b_tag_192" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$b_191", i32 0, i32 0 + %"$b_tag_193" = load i8, i8* %"$b_tag_192", align 1 + switch i8 %"$b_tag_193", label %"$empty_default_194" [ + i8 1, label %"$False_195" + i8 0, label %"$True_205" + ], !dbg !14 + +"$False_195": ; preds = %"$have_gas_188" + %"$b_196" = bitcast %TName_Bool* %"$b_191" to %CName_False* + %"$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 = %"$False_195" + call void @_out_of_gas() + br label %"$have_gas_200" + +"$have_gas_200": ; preds = %"$out_of_gas_199", %"$False_195" + %"$consume_201" = sub i64 %"$gasrem_197", 1 + store i64 %"$consume_201", i64* @_gasrem, align 8 + %"$adtval_202_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_202_salloc" = call i8* @_salloc(i8* %"$adtval_202_load", i64 1) + %"$adtval_202" = bitcast i8* %"$adtval_202_salloc" to %CName_False* + %"$adtgep_203" = getelementptr inbounds %CName_False, %CName_False* %"$adtval_202", i32 0, i32 0 + store i8 1, i8* %"$adtgep_203", align 1 + %"$adtptr_204" = bitcast %CName_False* %"$adtval_202" to %TName_Bool* + store %TName_Bool* %"$adtptr_204", %TName_Bool** %"$retval_84", align 8, !dbg !15 + br label %"$matchsucc_190" + +"$True_205": ; preds = %"$have_gas_188" + %"$b_206" = bitcast %TName_Bool* %"$b_191" to %CName_True* + %"$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 = %"$True_205" + call void @_out_of_gas() + br label %"$have_gas_210" + +"$have_gas_210": ; preds = %"$out_of_gas_209", %"$True_205" + %"$consume_211" = sub i64 %"$gasrem_207", 1 + store i64 %"$consume_211", i64* @_gasrem, align 8 + store %TName_Bool* %1, %TName_Bool** %"$retval_84", align 8, !dbg !18 + br label %"$matchsucc_190" + +"$empty_default_194": ; preds = %"$have_gas_188" + br label %"$matchsucc_190" + +"$matchsucc_190": ; preds = %"$have_gas_210", %"$have_gas_200", %"$empty_default_194" + %"$$retval_84_212" = load %TName_Bool*, %TName_Bool** %"$retval_84", align 8 + ret %TName_Bool* %"$$retval_84_212" } -define internal { %TName_Bool* (i8*, %TName_Bool*)*, i8* } @"$fundef_81"(%"$$fundef_81_env_170"* %0, %TName_Bool* %1) !dbg !15 { +define internal { %TName_Bool* (i8*, %TName_Bool*)*, i8* } @"$fundef_81"(%"$$fundef_81_env_170"* %0, %TName_Bool* %1) !dbg !20 { entry: + %"$b_182" = alloca %TName_Bool*, align 8 + store %TName_Bool* %1, %TName_Bool** %"$b_182", align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$b_182", metadata !21, metadata !DIExpression()), !dbg !22 %"$retval_82" = alloca { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, align 8 %"$gasrem_171" = load i64, i64* @_gasrem, align 8 %"$gascmp_172" = icmp ugt i64 1, %"$gasrem_171" @@ -414,7 +421,7 @@ entry: %"$$fundef_83_cloval_179" = insertvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } { %TName_Bool* (i8*, %TName_Bool*)* bitcast (%TName_Bool* (%"$$fundef_83_env_169"*, %TName_Bool*)* @"$fundef_83" to %TName_Bool* (i8*, %TName_Bool*)*), i8* undef }, i8* %"$$fundef_83_env_voidp_178", 1 %"$$fundef_83_env_b_180" = getelementptr inbounds %"$$fundef_83_env_169", %"$$fundef_83_env_169"* %"$$fundef_83_envp_176", i32 0, i32 0 store %TName_Bool* %1, %TName_Bool** %"$$fundef_83_env_b_180", align 8 - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$fundef_83_cloval_179", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$retval_82", align 8, !dbg !16 + store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$fundef_83_cloval_179", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$retval_82", align 8, !dbg !23 %"$$retval_82_181" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$retval_82", align 8 ret { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$retval_82_181" } @@ -423,3095 +430,3188 @@ declare void @_out_of_gas() declare i8* @_salloc(i8*, i64) -define void @_init_libs() !dbg !17 { +; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn +declare void @llvm.dbg.declare(metadata, metadata, metadata) #0 + +define void @_init_libs() !dbg !24 { entry: - %"$gasrem_212" = load i64, i64* @_gasrem, align 8 - %"$gascmp_213" = icmp ugt i64 5, %"$gasrem_212" - br i1 %"$gascmp_213", label %"$out_of_gas_214", label %"$have_gas_215" + %"$gasrem_214" = load i64, i64* @_gasrem, align 8 + %"$gascmp_215" = icmp ugt i64 5, %"$gasrem_214" + br i1 %"$gascmp_215", label %"$out_of_gas_216", label %"$have_gas_217" -"$out_of_gas_214": ; preds = %entry +"$out_of_gas_216": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_215" + br label %"$have_gas_217" -"$have_gas_215": ; preds = %"$out_of_gas_214", %entry - %"$consume_216" = sub i64 %"$gasrem_212", 5 - store i64 %"$consume_216", i64* @_gasrem, align 8 - store %Int32 { i32 5 }, %Int32* @"$_gas_charge_accrec_lib_5", align 4, !dbg !19 - %"$gasrem_217" = load i64, i64* @_gasrem, align 8 - %"$gascmp_218" = icmp ugt i64 7, %"$gasrem_217" - br i1 %"$gascmp_218", label %"$out_of_gas_219", label %"$have_gas_220" +"$have_gas_217": ; preds = %"$out_of_gas_216", %entry + %"$consume_218" = sub i64 %"$gasrem_214", 5 + store i64 %"$consume_218", i64* @_gasrem, align 8 + store %Int32 { i32 5 }, %Int32* @"$_gas_charge_accrec_lib_5", align 4, !dbg !26 + %"$gasrem_219" = load i64, i64* @_gasrem, align 8 + %"$gascmp_220" = icmp ugt i64 7, %"$gasrem_219" + br i1 %"$gascmp_220", label %"$out_of_gas_221", label %"$have_gas_222" -"$out_of_gas_219": ; preds = %"$have_gas_215" +"$out_of_gas_221": ; preds = %"$have_gas_217" call void @_out_of_gas() - br label %"$have_gas_220" + br label %"$have_gas_222" -"$have_gas_220": ; preds = %"$out_of_gas_219", %"$have_gas_215" - %"$consume_221" = sub i64 %"$gasrem_217", 7 - store i64 %"$consume_221", i64* @_gasrem, align 8 - store %Int32 { i32 7 }, %Int32* @"$_gas_charge_accBoolUtils_0", align 4, !dbg !19 - %"$gasrem_222" = load i64, i64* @_gasrem, align 8 - %"$gascmp_223" = icmp ugt i64 1, %"$gasrem_222" - br i1 %"$gascmp_223", label %"$out_of_gas_224", label %"$have_gas_225" +"$have_gas_222": ; preds = %"$out_of_gas_221", %"$have_gas_217" + %"$consume_223" = sub i64 %"$gasrem_219", 7 + store i64 %"$consume_223", i64* @_gasrem, align 8 + store %Int32 { i32 7 }, %Int32* @"$_gas_charge_accBoolUtils_0", align 4, !dbg !26 + %"$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_224": ; preds = %"$have_gas_220" +"$out_of_gas_226": ; preds = %"$have_gas_222" call void @_out_of_gas() - br label %"$have_gas_225" + br label %"$have_gas_227" -"$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 - 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_81_env_170"*, %TName_Bool*)* @"$fundef_81" 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 !20 - %"$gasrem_230" = load i64, i64* @_gasrem, align 8 - %"$gascmp_231" = icmp ugt i64 196, %"$gasrem_230" - br i1 %"$gascmp_231", label %"$out_of_gas_232", label %"$have_gas_233" +"$have_gas_227": ; preds = %"$out_of_gas_226", %"$have_gas_222" + %"$consume_228" = sub i64 %"$gasrem_224", 1 + store i64 %"$consume_228", 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_81_env_170"*, %TName_Bool*)* @"$fundef_81" 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 !27 + %"$gasrem_232" = load i64, i64* @_gasrem, align 8 + %"$gascmp_233" = icmp ugt i64 196, %"$gasrem_232" + br i1 %"$gascmp_233", label %"$out_of_gas_234", label %"$have_gas_235" -"$out_of_gas_232": ; preds = %"$have_gas_225" +"$out_of_gas_234": ; preds = %"$have_gas_227" call void @_out_of_gas() - br label %"$have_gas_233" + br label %"$have_gas_235" -"$have_gas_233": ; preds = %"$out_of_gas_232", %"$have_gas_225" - %"$consume_234" = sub i64 %"$gasrem_230", 196 - store i64 %"$consume_234", i64* @_gasrem, align 8 - store %Int32 { i32 196 }, %Int32* @"$_gas_charge_accIntUtils_1", align 4, !dbg !19 - %"$gasrem_235" = load i64, i64* @_gasrem, align 8 - %"$gascmp_236" = icmp ugt i64 20, %"$gasrem_235" - br i1 %"$gascmp_236", label %"$out_of_gas_237", label %"$have_gas_238" +"$have_gas_235": ; preds = %"$out_of_gas_234", %"$have_gas_227" + %"$consume_236" = sub i64 %"$gasrem_232", 196 + store i64 %"$consume_236", i64* @_gasrem, align 8 + store %Int32 { i32 196 }, %Int32* @"$_gas_charge_accIntUtils_1", align 4, !dbg !26 + %"$gasrem_237" = load i64, i64* @_gasrem, align 8 + %"$gascmp_238" = icmp ugt i64 20, %"$gasrem_237" + br i1 %"$gascmp_238", label %"$out_of_gas_239", label %"$have_gas_240" -"$out_of_gas_237": ; preds = %"$have_gas_233" +"$out_of_gas_239": ; preds = %"$have_gas_235" call void @_out_of_gas() - br label %"$have_gas_238" + br label %"$have_gas_240" -"$have_gas_238": ; preds = %"$out_of_gas_237", %"$have_gas_233" - %"$consume_239" = sub i64 %"$gasrem_235", 20 - store i64 %"$consume_239", i64* @_gasrem, align 8 - store %Int32 { i32 20 }, %Int32* @"$_gas_charge_accListUtils_2", align 4, !dbg !19 - %"$gasrem_240" = load i64, i64* @_gasrem, align 8 - %"$gascmp_241" = icmp ugt i64 12, %"$gasrem_240" - br i1 %"$gascmp_241", label %"$out_of_gas_242", label %"$have_gas_243" +"$have_gas_240": ; preds = %"$out_of_gas_239", %"$have_gas_235" + %"$consume_241" = sub i64 %"$gasrem_237", 20 + store i64 %"$consume_241", i64* @_gasrem, align 8 + store %Int32 { i32 20 }, %Int32* @"$_gas_charge_accListUtils_2", align 4, !dbg !26 + %"$gasrem_242" = load i64, i64* @_gasrem, align 8 + %"$gascmp_243" = icmp ugt i64 12, %"$gasrem_242" + br i1 %"$gascmp_243", label %"$out_of_gas_244", label %"$have_gas_245" -"$out_of_gas_242": ; preds = %"$have_gas_238" +"$out_of_gas_244": ; preds = %"$have_gas_240" call void @_out_of_gas() - br label %"$have_gas_243" + br label %"$have_gas_245" -"$have_gas_243": ; preds = %"$out_of_gas_242", %"$have_gas_238" - %"$consume_244" = sub i64 %"$gasrem_240", 12 - store i64 %"$consume_244", i64* @_gasrem, align 8 - store %Int32 { i32 12 }, %Int32* @"$_gas_charge_accNatUtils_3", align 4, !dbg !19 - %"$gasrem_245" = load i64, i64* @_gasrem, align 8 - %"$gascmp_246" = icmp ugt i64 2, %"$gasrem_245" - br i1 %"$gascmp_246", label %"$out_of_gas_247", label %"$have_gas_248" +"$have_gas_245": ; preds = %"$out_of_gas_244", %"$have_gas_240" + %"$consume_246" = sub i64 %"$gasrem_242", 12 + store i64 %"$consume_246", i64* @_gasrem, align 8 + store %Int32 { i32 12 }, %Int32* @"$_gas_charge_accNatUtils_3", align 4, !dbg !26 + %"$gasrem_247" = load i64, i64* @_gasrem, align 8 + %"$gascmp_248" = icmp ugt i64 2, %"$gasrem_247" + br i1 %"$gascmp_248", label %"$out_of_gas_249", label %"$have_gas_250" -"$out_of_gas_247": ; preds = %"$have_gas_243" +"$out_of_gas_249": ; preds = %"$have_gas_245" call void @_out_of_gas() - br label %"$have_gas_248" + br label %"$have_gas_250" -"$have_gas_248": ; preds = %"$out_of_gas_247", %"$have_gas_243" - %"$consume_249" = sub i64 %"$gasrem_245", 2 - store i64 %"$consume_249", i64* @_gasrem, align 8 - store %Int32 { i32 2 }, %Int32* @"$_gas_charge_accPairUtils_4", align 4, !dbg !19 +"$have_gas_250": ; preds = %"$out_of_gas_249", %"$have_gas_245" + %"$consume_251" = sub i64 %"$gasrem_247", 2 + store i64 %"$consume_251", i64* @_gasrem, align 8 + store %Int32 { i32 2 }, %Int32* @"$_gas_charge_accPairUtils_4", align 4, !dbg !26 ret void } -define internal %TName_Bool* @_scilla_expr_fun(i8* %0) !dbg !21 { +define internal %TName_Bool* @_scilla_expr_fun(i8* %0) !dbg !28 { entry: %"$expr_85" = alloca %TName_Bool*, 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" + call void @llvm.dbg.declare(metadata %TName_Bool** %"$expr_85", metadata !29, metadata !DIExpression()), !dbg !30 + %"$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_252": ; preds = %entry +"$out_of_gas_254": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_253" + br label %"$have_gas_255" -"$have_gas_253": ; preds = %"$out_of_gas_252", %entry - %"$consume_254" = sub i64 %"$gasrem_250", 1 - store i64 %"$consume_254", i64* @_gasrem, align 8 +"$have_gas_255": ; preds = %"$out_of_gas_254", %entry + %"$consume_256" = sub i64 %"$gasrem_252", 1 + store i64 %"$consume_256", i64* @_gasrem, align 8 %false = alloca %TName_Bool*, 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_253" - call void @_out_of_gas() - br label %"$have_gas_258" - -"$have_gas_258": ; preds = %"$out_of_gas_257", %"$have_gas_253" - %"$consume_259" = sub i64 %"$gasrem_255", 1 - store i64 %"$consume_259", i64* @_gasrem, align 8 - %"$adtval_260_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_260_salloc" = call i8* @_salloc(i8* %"$adtval_260_load", i64 1) - %"$adtval_260" = bitcast i8* %"$adtval_260_salloc" to %CName_False* - %"$adtgep_261" = getelementptr inbounds %CName_False, %CName_False* %"$adtval_260", i32 0, i32 0 - store i8 1, i8* %"$adtgep_261", align 1 - %"$adtptr_262" = bitcast %CName_False* %"$adtval_260" to %TName_Bool* - store %TName_Bool* %"$adtptr_262", %TName_Bool** %false, align 8, !dbg !22 - %"$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_258" - call void @_out_of_gas() - br label %"$have_gas_266" - -"$have_gas_266": ; preds = %"$out_of_gas_265", %"$have_gas_258" - %"$consume_267" = sub i64 %"$gasrem_263", 1 - store i64 %"$consume_267", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %false, metadata !31, metadata !DIExpression()), !dbg !32 + %"$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" + call void @_out_of_gas() + br label %"$have_gas_260" + +"$have_gas_260": ; preds = %"$out_of_gas_259", %"$have_gas_255" + %"$consume_261" = sub i64 %"$gasrem_257", 1 + store i64 %"$consume_261", i64* @_gasrem, align 8 + %"$adtval_262_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_262_salloc" = call i8* @_salloc(i8* %"$adtval_262_load", i64 1) + %"$adtval_262" = bitcast i8* %"$adtval_262_salloc" to %CName_False* + %"$adtgep_263" = getelementptr inbounds %CName_False, %CName_False* %"$adtval_262", i32 0, i32 0 + store i8 1, i8* %"$adtgep_263", align 1 + %"$adtptr_264" = bitcast %CName_False* %"$adtval_262" to %TName_Bool* + store %TName_Bool* %"$adtptr_264", %TName_Bool** %false, align 8, !dbg !30 + %"$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 = %"$have_gas_260" + call void @_out_of_gas() + br label %"$have_gas_268" + +"$have_gas_268": ; preds = %"$out_of_gas_267", %"$have_gas_260" + %"$consume_269" = sub i64 %"$gasrem_265", 1 + store i64 %"$consume_269", i64* @_gasrem, align 8 %test = alloca %TName_Bool*, align 8 - %"$gasrem_268" = load i64, i64* @_gasrem, align 8 - %"$gascmp_269" = icmp ugt i64 1, %"$gasrem_268" - br i1 %"$gascmp_269", label %"$out_of_gas_270", label %"$have_gas_271" - -"$out_of_gas_270": ; preds = %"$have_gas_266" - call void @_out_of_gas() - br label %"$have_gas_271" - -"$have_gas_271": ; preds = %"$out_of_gas_270", %"$have_gas_266" - %"$consume_272" = sub i64 %"$gasrem_268", 1 - store i64 %"$consume_272", i64* @_gasrem, align 8 - %"$adtval_273_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_273_salloc" = call i8* @_salloc(i8* %"$adtval_273_load", i64 1) - %"$adtval_273" = bitcast i8* %"$adtval_273_salloc" to %CName_True* - %"$adtgep_274" = getelementptr inbounds %CName_True, %CName_True* %"$adtval_273", i32 0, i32 0 - store i8 0, i8* %"$adtgep_274", align 1 - %"$adtptr_275" = bitcast %CName_True* %"$adtval_273" to %TName_Bool* - store %TName_Bool* %"$adtptr_275", %TName_Bool** %test, align 8, !dbg !23 - %"$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 = %"$have_gas_271" - call void @_out_of_gas() - br label %"$have_gas_279" - -"$have_gas_279": ; preds = %"$out_of_gas_278", %"$have_gas_271" - %"$consume_280" = sub i64 %"$gasrem_276", 1 - store i64 %"$consume_280", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %test, metadata !33, metadata !DIExpression()), !dbg !34 + %"$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_268" + call void @_out_of_gas() + br label %"$have_gas_273" + +"$have_gas_273": ; preds = %"$out_of_gas_272", %"$have_gas_268" + %"$consume_274" = sub i64 %"$gasrem_270", 1 + store i64 %"$consume_274", i64* @_gasrem, align 8 + %"$adtval_275_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_275_salloc" = call i8* @_salloc(i8* %"$adtval_275_load", i64 1) + %"$adtval_275" = bitcast i8* %"$adtval_275_salloc" to %CName_True* + %"$adtgep_276" = getelementptr inbounds %CName_True, %CName_True* %"$adtval_275", i32 0, i32 0 + store i8 0, i8* %"$adtgep_276", align 1 + %"$adtptr_277" = bitcast %CName_True* %"$adtval_275" to %TName_Bool* + store %TName_Bool* %"$adtptr_277", %TName_Bool** %test, align 8, !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_273" + call void @_out_of_gas() + br label %"$have_gas_281" + +"$have_gas_281": ; preds = %"$out_of_gas_280", %"$have_gas_273" + %"$consume_282" = sub i64 %"$gasrem_278", 1 + store i64 %"$consume_282", i64* @_gasrem, align 8 %input = alloca %Uint32, 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" + call void @llvm.dbg.declare(metadata %Uint32* %input, metadata !36, metadata !DIExpression()), !dbg !38 + %"$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_283": ; preds = %"$have_gas_279" +"$out_of_gas_285": ; preds = %"$have_gas_281" call void @_out_of_gas() - br label %"$have_gas_284" + br label %"$have_gas_286" -"$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 - store %Uint32 { i32 1844 }, %Uint32* %input, align 4, !dbg !24 - %"$gasrem_286" = load i64, i64* @_gasrem, align 8 - %"$gascmp_287" = icmp ugt i64 1, %"$gasrem_286" - br i1 %"$gascmp_287", label %"$out_of_gas_288", label %"$have_gas_289" +"$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 + store %Uint32 { i32 1844 }, %Uint32* %input, align 4, !dbg !39 + %"$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_288": ; preds = %"$have_gas_284" +"$out_of_gas_290": ; preds = %"$have_gas_286" call void @_out_of_gas() - br label %"$have_gas_289" + br label %"$have_gas_291" -"$have_gas_289": ; preds = %"$out_of_gas_288", %"$have_gas_284" - %"$consume_290" = sub i64 %"$gasrem_286", 1 - store i64 %"$consume_290", i64* @_gasrem, align 8 +"$have_gas_291": ; preds = %"$out_of_gas_290", %"$have_gas_286" + %"$consume_292" = sub i64 %"$gasrem_288", 1 + store i64 %"$consume_292", i64* @_gasrem, align 8 %resopt = alloca %TName_Option_Int32*, align 8 - %"$gasrem_291" = load i64, i64* @_gasrem, align 8 - %"$gascmp_292" = icmp ugt i64 4, %"$gasrem_291" - br i1 %"$gascmp_292", label %"$out_of_gas_293", label %"$have_gas_294" - -"$out_of_gas_293": ; preds = %"$have_gas_289" - call void @_out_of_gas() - br label %"$have_gas_294" - -"$have_gas_294": ; preds = %"$out_of_gas_293", %"$have_gas_289" - %"$consume_295" = sub i64 %"$gasrem_291", 4 - store i64 %"$consume_295", i64* @_gasrem, align 8 - %"$execptr_load_296" = load i8*, i8** @_execptr, align 8 - %"$to_int32_input_297" = alloca %Uint32, align 8 - %"$input_298" = load %Uint32, %Uint32* %input, align 4 - store %Uint32 %"$input_298", %Uint32* %"$to_int32_input_297", align 4 - %"$$to_int32_input_297_299" = bitcast %Uint32* %"$to_int32_input_297" to i8* - %"$to_int32_call_300" = call i8* @_to_int32(i8* %"$execptr_load_296", %_TyDescrTy_Typ* @"$TyDescr_Uint32_90", i8* %"$$to_int32_input_297_299"), !dbg !25 - %"$to_int32_301" = bitcast i8* %"$to_int32_call_300" to %TName_Option_Int32* - store %TName_Option_Int32* %"$to_int32_301", %TName_Option_Int32** %resopt, align 8, !dbg !25 - %"$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 = %"$have_gas_294" - call void @_out_of_gas() - br label %"$have_gas_305" - -"$have_gas_305": ; preds = %"$out_of_gas_304", %"$have_gas_294" - %"$consume_306" = sub i64 %"$gasrem_302", 1 - store i64 %"$consume_306", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Option_Int32** %resopt, metadata !40, metadata !DIExpression()), !dbg !43 + %"$gasrem_293" = load i64, i64* @_gasrem, align 8 + %"$gascmp_294" = icmp ugt i64 4, %"$gasrem_293" + br i1 %"$gascmp_294", label %"$out_of_gas_295", label %"$have_gas_296" + +"$out_of_gas_295": ; preds = %"$have_gas_291" + call void @_out_of_gas() + br label %"$have_gas_296" + +"$have_gas_296": ; preds = %"$out_of_gas_295", %"$have_gas_291" + %"$consume_297" = sub i64 %"$gasrem_293", 4 + store i64 %"$consume_297", i64* @_gasrem, align 8 + %"$execptr_load_298" = load i8*, i8** @_execptr, align 8 + %"$to_int32_input_299" = alloca %Uint32, align 8 + %"$input_300" = load %Uint32, %Uint32* %input, align 4 + store %Uint32 %"$input_300", %Uint32* %"$to_int32_input_299", align 4 + %"$$to_int32_input_299_301" = bitcast %Uint32* %"$to_int32_input_299" to i8* + %"$to_int32_call_302" = call i8* @_to_int32(i8* %"$execptr_load_298", %_TyDescrTy_Typ* @"$TyDescr_Uint32_90", i8* %"$$to_int32_input_299_301"), !dbg !44 + %"$to_int32_303" = bitcast i8* %"$to_int32_call_302" to %TName_Option_Int32* + store %TName_Option_Int32* %"$to_int32_303", %TName_Option_Int32** %resopt, align 8, !dbg !44 + %"$gasrem_304" = load i64, i64* @_gasrem, align 8 + %"$gascmp_305" = icmp ugt i64 1, %"$gasrem_304" + br i1 %"$gascmp_305", label %"$out_of_gas_306", label %"$have_gas_307" + +"$out_of_gas_306": ; preds = %"$have_gas_296" + call void @_out_of_gas() + br label %"$have_gas_307" + +"$have_gas_307": ; preds = %"$out_of_gas_306", %"$have_gas_296" + %"$consume_308" = sub i64 %"$gasrem_304", 1 + store i64 %"$consume_308", i64* @_gasrem, align 8 %"$test_6" = alloca %TName_Bool*, align 8 - %"$gasrem_307" = load i64, i64* @_gasrem, align 8 - %"$gascmp_308" = icmp ugt i64 2, %"$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", 2 - store i64 %"$consume_311", i64* @_gasrem, align 8 - %"$resopt_313" = load %TName_Option_Int32*, %TName_Option_Int32** %resopt, align 8 - %"$resopt_tag_314" = getelementptr inbounds %TName_Option_Int32, %TName_Option_Int32* %"$resopt_313", i32 0, i32 0 - %"$resopt_tag_315" = load i8, i8* %"$resopt_tag_314", align 1 - switch i8 %"$resopt_tag_315", label %"$empty_default_316" [ - i8 0, label %"$Some_317" - i8 1, label %"$None_362" - ], !dbg !26 - -"$Some_317": ; preds = %"$have_gas_310" - %"$resopt_318" = bitcast %TName_Option_Int32* %"$resopt_313" to %CName_Some_Int32* - %"$res_gep_319" = getelementptr inbounds %CName_Some_Int32, %CName_Some_Int32* %"$resopt_318", i32 0, i32 1 - %"$res_load_320" = load %Int32, %Int32* %"$res_gep_319", align 4 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$test_6", metadata !45, metadata !DIExpression()), !dbg !46 + %"$gasrem_309" = load i64, i64* @_gasrem, align 8 + %"$gascmp_310" = icmp ugt i64 2, %"$gasrem_309" + br i1 %"$gascmp_310", label %"$out_of_gas_311", label %"$have_gas_312" + +"$out_of_gas_311": ; preds = %"$have_gas_307" + call void @_out_of_gas() + br label %"$have_gas_312" + +"$have_gas_312": ; preds = %"$out_of_gas_311", %"$have_gas_307" + %"$consume_313" = sub i64 %"$gasrem_309", 2 + store i64 %"$consume_313", i64* @_gasrem, align 8 + %"$resopt_315" = load %TName_Option_Int32*, %TName_Option_Int32** %resopt, align 8 + %"$resopt_tag_316" = getelementptr inbounds %TName_Option_Int32, %TName_Option_Int32* %"$resopt_315", i32 0, i32 0 + %"$resopt_tag_317" = load i8, i8* %"$resopt_tag_316", align 1 + switch i8 %"$resopt_tag_317", label %"$empty_default_318" [ + i8 0, label %"$Some_319" + i8 1, label %"$None_364" + ], !dbg !47 + +"$Some_319": ; preds = %"$have_gas_312" + %"$resopt_320" = bitcast %TName_Option_Int32* %"$resopt_315" to %CName_Some_Int32* + %"$res_gep_321" = getelementptr inbounds %CName_Some_Int32, %CName_Some_Int32* %"$resopt_320", i32 0, i32 1 + %"$res_load_322" = load %Int32, %Int32* %"$res_gep_321", align 4 %res = alloca %Int32, align 8 - store %Int32 %"$res_load_320", %Int32* %res, align 4 - %"$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" + store %Int32 %"$res_load_322", %Int32* %res, align 4 + %"$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_323": ; preds = %"$Some_317" +"$out_of_gas_325": ; preds = %"$Some_319" call void @_out_of_gas() - br label %"$have_gas_324" + br label %"$have_gas_326" -"$have_gas_324": ; preds = %"$out_of_gas_323", %"$Some_317" - %"$consume_325" = sub i64 %"$gasrem_321", 1 - store i64 %"$consume_325", i64* @_gasrem, align 8 +"$have_gas_326": ; preds = %"$out_of_gas_325", %"$Some_319" + %"$consume_327" = sub i64 %"$gasrem_323", 1 + store i64 %"$consume_327", i64* @_gasrem, align 8 %input_ = alloca %Int32, 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" + call void @llvm.dbg.declare(metadata %Int32* %input_, metadata !48, metadata !DIExpression()), !dbg !52 + %"$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" -"$out_of_gas_328": ; preds = %"$have_gas_324" +"$out_of_gas_330": ; preds = %"$have_gas_326" call void @_out_of_gas() - br label %"$have_gas_329" + br label %"$have_gas_331" -"$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 - store %Int32 { i32 1844 }, %Int32* %input_, align 4, !dbg !27 - %"$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" +"$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 %Int32 { i32 1844 }, %Int32* %input_, align 4, !dbg !53 + %"$gasrem_333" = load i64, i64* @_gasrem, align 8 + %"$gascmp_334" = icmp ugt i64 1, %"$gasrem_333" + br i1 %"$gascmp_334", label %"$out_of_gas_335", label %"$have_gas_336" -"$out_of_gas_333": ; preds = %"$have_gas_329" +"$out_of_gas_335": ; preds = %"$have_gas_331" call void @_out_of_gas() - br label %"$have_gas_334" + br label %"$have_gas_336" -"$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 +"$have_gas_336": ; preds = %"$out_of_gas_335", %"$have_gas_331" + %"$consume_337" = sub i64 %"$gasrem_333", 1 + store i64 %"$consume_337", i64* @_gasrem, align 8 %test_ = alloca %TName_Bool*, align 8 - %"$gasrem_336" = load i64, i64* @_gasrem, align 8 - %"$gascmp_337" = icmp ugt i64 4, %"$gasrem_336" - br i1 %"$gascmp_337", label %"$out_of_gas_338", label %"$have_gas_339" - -"$out_of_gas_338": ; preds = %"$have_gas_334" - call void @_out_of_gas() - br label %"$have_gas_339" - -"$have_gas_339": ; preds = %"$out_of_gas_338", %"$have_gas_334" - %"$consume_340" = sub i64 %"$gasrem_336", 4 - store i64 %"$consume_340", i64* @_gasrem, align 8 - %"$execptr_load_341" = load i8*, i8** @_execptr, align 8 - %"$res_342" = load %Int32, %Int32* %res, align 4 - %"$input__343" = load %Int32, %Int32* %input_, align 4 - %"$eq_call_344" = call %TName_Bool* @_eq_Int32(i8* %"$execptr_load_341", %Int32 %"$res_342", %Int32 %"$input__343"), !dbg !30 - store %TName_Bool* %"$eq_call_344", %TName_Bool** %test_, align 8, !dbg !30 - %"$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_339" - call void @_out_of_gas() - br label %"$have_gas_349" - -"$have_gas_349": ; preds = %"$out_of_gas_348", %"$have_gas_339" - %"$consume_350" = sub i64 %"$gasrem_346", 1 - store i64 %"$consume_350", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %test_, metadata !54, metadata !DIExpression()), !dbg !55 + %"$gasrem_338" = load i64, i64* @_gasrem, align 8 + %"$gascmp_339" = icmp ugt i64 4, %"$gasrem_338" + br i1 %"$gascmp_339", label %"$out_of_gas_340", label %"$have_gas_341" + +"$out_of_gas_340": ; preds = %"$have_gas_336" + call void @_out_of_gas() + br label %"$have_gas_341" + +"$have_gas_341": ; preds = %"$out_of_gas_340", %"$have_gas_336" + %"$consume_342" = sub i64 %"$gasrem_338", 4 + store i64 %"$consume_342", i64* @_gasrem, align 8 + %"$execptr_load_343" = load i8*, i8** @_execptr, align 8 + %"$res_344" = load %Int32, %Int32* %res, align 4 + %"$input__345" = load %Int32, %Int32* %input_, align 4 + %"$eq_call_346" = call %TName_Bool* @_eq_Int32(i8* %"$execptr_load_343", %Int32 %"$res_344", %Int32 %"$input__345"), !dbg !56 + store %TName_Bool* %"$eq_call_346", %TName_Bool** %test_, align 8, !dbg !56 + %"$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" + +"$out_of_gas_350": ; preds = %"$have_gas_341" + call void @_out_of_gas() + br label %"$have_gas_351" + +"$have_gas_351": ; preds = %"$out_of_gas_350", %"$have_gas_341" + %"$consume_352" = sub i64 %"$gasrem_348", 1 + store i64 %"$consume_352", i64* @_gasrem, align 8 %"$BoolUtils.andb_55" = alloca { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, align 8 - %"$BoolUtils.andb_351" = 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_352" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_351", 0 - %"$BoolUtils.andb_envptr_353" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_351", 1 - %"$test_354" = load %TName_Bool*, %TName_Bool** %test, align 8 - %"$BoolUtils.andb_call_355" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_352"(i8* %"$BoolUtils.andb_envptr_353", %TName_Bool* %"$test_354"), !dbg !31 - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_355", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_55", align 8, !dbg !31 + %"$BoolUtils.andb_353" = 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_354" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_353", 0 + %"$BoolUtils.andb_envptr_355" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_353", 1 + %"$test_356" = load %TName_Bool*, %TName_Bool** %test, align 8 + %"$BoolUtils.andb_call_357" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_354"(i8* %"$BoolUtils.andb_envptr_355", %TName_Bool* %"$test_356"), !dbg !57 + store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_357", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_55", align 8, !dbg !57 %"$BoolUtils.andb_56" = alloca %TName_Bool*, align 8 - %"$$BoolUtils.andb_55_356" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_55", align 8 - %"$$BoolUtils.andb_55_fptr_357" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_55_356", 0 - %"$$BoolUtils.andb_55_envptr_358" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_55_356", 1 - %"$test__359" = load %TName_Bool*, %TName_Bool** %test_, align 8 - %"$$BoolUtils.andb_55_call_360" = call %TName_Bool* %"$$BoolUtils.andb_55_fptr_357"(i8* %"$$BoolUtils.andb_55_envptr_358", %TName_Bool* %"$test__359"), !dbg !31 - store %TName_Bool* %"$$BoolUtils.andb_55_call_360", %TName_Bool** %"$BoolUtils.andb_56", align 8, !dbg !31 - %"$$BoolUtils.andb_56_361" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_56", align 8 - store %TName_Bool* %"$$BoolUtils.andb_56_361", %TName_Bool** %"$test_6", align 8, !dbg !31 - br label %"$matchsucc_312" - -"$None_362": ; preds = %"$have_gas_310" - %"$resopt_363" = bitcast %TName_Option_Int32* %"$resopt_313" to %CName_None_Int32* - %"$gasrem_364" = load i64, i64* @_gasrem, align 8 - %"$gascmp_365" = icmp ugt i64 1, %"$gasrem_364" - br i1 %"$gascmp_365", label %"$out_of_gas_366", label %"$have_gas_367" - -"$out_of_gas_366": ; preds = %"$None_362" - call void @_out_of_gas() - br label %"$have_gas_367" - -"$have_gas_367": ; preds = %"$out_of_gas_366", %"$None_362" - %"$consume_368" = sub i64 %"$gasrem_364", 1 - store i64 %"$consume_368", i64* @_gasrem, align 8 - %"$false_369" = load %TName_Bool*, %TName_Bool** %false, align 8 - store %TName_Bool* %"$false_369", %TName_Bool** %"$test_6", align 8, !dbg !32 - br label %"$matchsucc_312" - -"$empty_default_316": ; preds = %"$have_gas_310" - br label %"$matchsucc_312" - -"$matchsucc_312": ; preds = %"$have_gas_367", %"$have_gas_349", %"$empty_default_316" - %"$gasrem_370" = load i64, i64* @_gasrem, align 8 - %"$gascmp_371" = icmp ugt i64 1, %"$gasrem_370" - br i1 %"$gascmp_371", label %"$out_of_gas_372", label %"$have_gas_373" - -"$out_of_gas_372": ; preds = %"$matchsucc_312" - call void @_out_of_gas() - br label %"$have_gas_373" - -"$have_gas_373": ; preds = %"$out_of_gas_372", %"$matchsucc_312" - %"$consume_374" = sub i64 %"$gasrem_370", 1 - store i64 %"$consume_374", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$BoolUtils.andb_56", metadata !58, metadata !DIExpression()), !dbg !57 + %"$$BoolUtils.andb_55_358" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_55", align 8 + %"$$BoolUtils.andb_55_fptr_359" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_55_358", 0 + %"$$BoolUtils.andb_55_envptr_360" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_55_358", 1 + %"$test__361" = load %TName_Bool*, %TName_Bool** %test_, align 8 + %"$$BoolUtils.andb_55_call_362" = call %TName_Bool* %"$$BoolUtils.andb_55_fptr_359"(i8* %"$$BoolUtils.andb_55_envptr_360", %TName_Bool* %"$test__361"), !dbg !57 + store %TName_Bool* %"$$BoolUtils.andb_55_call_362", %TName_Bool** %"$BoolUtils.andb_56", align 8, !dbg !57 + %"$$BoolUtils.andb_56_363" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_56", align 8 + store %TName_Bool* %"$$BoolUtils.andb_56_363", %TName_Bool** %"$test_6", align 8, !dbg !57 + br label %"$matchsucc_314" + +"$None_364": ; preds = %"$have_gas_312" + %"$resopt_365" = bitcast %TName_Option_Int32* %"$resopt_315" to %CName_None_Int32* + %"$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 = %"$None_364" + call void @_out_of_gas() + br label %"$have_gas_369" + +"$have_gas_369": ; preds = %"$out_of_gas_368", %"$None_364" + %"$consume_370" = sub i64 %"$gasrem_366", 1 + store i64 %"$consume_370", i64* @_gasrem, align 8 + %"$false_371" = load %TName_Bool*, %TName_Bool** %false, align 8 + store %TName_Bool* %"$false_371", %TName_Bool** %"$test_6", align 8, !dbg !59 + br label %"$matchsucc_314" + +"$empty_default_318": ; preds = %"$have_gas_312" + br label %"$matchsucc_314" + +"$matchsucc_314": ; preds = %"$have_gas_369", %"$have_gas_351", %"$empty_default_318" + %"$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 = %"$matchsucc_314" + call void @_out_of_gas() + br label %"$have_gas_375" + +"$have_gas_375": ; preds = %"$out_of_gas_374", %"$matchsucc_314" + %"$consume_376" = sub i64 %"$gasrem_372", 1 + store i64 %"$consume_376", i64* @_gasrem, align 8 %"$input_7" = alloca %Int32, align 8 - %"$gasrem_375" = load i64, i64* @_gasrem, align 8 - %"$gascmp_376" = icmp ugt i64 1, %"$gasrem_375" - br i1 %"$gascmp_376", label %"$out_of_gas_377", label %"$have_gas_378" + call void @llvm.dbg.declare(metadata %Int32* %"$input_7", metadata !61, metadata !DIExpression()), !dbg !62 + %"$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_377": ; preds = %"$have_gas_373" +"$out_of_gas_379": ; preds = %"$have_gas_375" call void @_out_of_gas() - br label %"$have_gas_378" + br label %"$have_gas_380" -"$have_gas_378": ; preds = %"$out_of_gas_377", %"$have_gas_373" - %"$consume_379" = sub i64 %"$gasrem_375", 1 - store i64 %"$consume_379", i64* @_gasrem, align 8 - store %Int32 { i32 1844 }, %Int32* %"$input_7", align 4, !dbg !34 - %"$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" +"$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 + store %Int32 { i32 1844 }, %Int32* %"$input_7", align 4, !dbg !63 + %"$gasrem_382" = load i64, i64* @_gasrem, align 8 + %"$gascmp_383" = icmp ugt i64 1, %"$gasrem_382" + br i1 %"$gascmp_383", label %"$out_of_gas_384", label %"$have_gas_385" -"$out_of_gas_382": ; preds = %"$have_gas_378" +"$out_of_gas_384": ; preds = %"$have_gas_380" call void @_out_of_gas() - br label %"$have_gas_383" + br label %"$have_gas_385" -"$have_gas_383": ; preds = %"$out_of_gas_382", %"$have_gas_378" - %"$consume_384" = sub i64 %"$gasrem_380", 1 - store i64 %"$consume_384", i64* @_gasrem, align 8 +"$have_gas_385": ; preds = %"$out_of_gas_384", %"$have_gas_380" + %"$consume_386" = sub i64 %"$gasrem_382", 1 + store i64 %"$consume_386", i64* @_gasrem, align 8 %"$resopt_8" = alloca %TName_Option_Int32*, align 8 - %"$gasrem_385" = load i64, i64* @_gasrem, align 8 - %"$gascmp_386" = icmp ugt i64 4, %"$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", 4 - store i64 %"$consume_389", i64* @_gasrem, align 8 - %"$execptr_load_390" = load i8*, i8** @_execptr, align 8 - %"$to_int32_$input_7_391" = alloca %Int32, align 8 - %"$$input_7_392" = load %Int32, %Int32* %"$input_7", align 4 - store %Int32 %"$$input_7_392", %Int32* %"$to_int32_$input_7_391", align 4 - %"$$to_int32_$input_7_391_393" = bitcast %Int32* %"$to_int32_$input_7_391" to i8* - %"$to_int32_call_394" = call i8* @_to_int32(i8* %"$execptr_load_390", %_TyDescrTy_Typ* @"$TyDescr_Int32_88", i8* %"$$to_int32_$input_7_391_393"), !dbg !35 - %"$to_int32_395" = bitcast i8* %"$to_int32_call_394" to %TName_Option_Int32* - store %TName_Option_Int32* %"$to_int32_395", %TName_Option_Int32** %"$resopt_8", align 8, !dbg !35 - %"$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 = %"$have_gas_388" - call void @_out_of_gas() - br label %"$have_gas_399" - -"$have_gas_399": ; preds = %"$out_of_gas_398", %"$have_gas_388" - %"$consume_400" = sub i64 %"$gasrem_396", 1 - store i64 %"$consume_400", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Option_Int32** %"$resopt_8", metadata !64, metadata !DIExpression()), !dbg !65 + %"$gasrem_387" = load i64, i64* @_gasrem, align 8 + %"$gascmp_388" = icmp ugt i64 4, %"$gasrem_387" + br i1 %"$gascmp_388", label %"$out_of_gas_389", label %"$have_gas_390" + +"$out_of_gas_389": ; preds = %"$have_gas_385" + call void @_out_of_gas() + br label %"$have_gas_390" + +"$have_gas_390": ; preds = %"$out_of_gas_389", %"$have_gas_385" + %"$consume_391" = sub i64 %"$gasrem_387", 4 + store i64 %"$consume_391", i64* @_gasrem, align 8 + %"$execptr_load_392" = load i8*, i8** @_execptr, align 8 + %"$to_int32_$input_7_393" = alloca %Int32, align 8 + %"$$input_7_394" = load %Int32, %Int32* %"$input_7", align 4 + store %Int32 %"$$input_7_394", %Int32* %"$to_int32_$input_7_393", align 4 + %"$$to_int32_$input_7_393_395" = bitcast %Int32* %"$to_int32_$input_7_393" to i8* + %"$to_int32_call_396" = call i8* @_to_int32(i8* %"$execptr_load_392", %_TyDescrTy_Typ* @"$TyDescr_Int32_88", i8* %"$$to_int32_$input_7_393_395"), !dbg !66 + %"$to_int32_397" = bitcast i8* %"$to_int32_call_396" to %TName_Option_Int32* + store %TName_Option_Int32* %"$to_int32_397", %TName_Option_Int32** %"$resopt_8", align 8, !dbg !66 + %"$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_390" + call void @_out_of_gas() + br label %"$have_gas_401" + +"$have_gas_401": ; preds = %"$out_of_gas_400", %"$have_gas_390" + %"$consume_402" = sub i64 %"$gasrem_398", 1 + store i64 %"$consume_402", i64* @_gasrem, align 8 %"$test_9" = alloca %TName_Bool*, align 8 - %"$gasrem_401" = load i64, i64* @_gasrem, align 8 - %"$gascmp_402" = icmp ugt i64 2, %"$gasrem_401" - br i1 %"$gascmp_402", label %"$out_of_gas_403", label %"$have_gas_404" - -"$out_of_gas_403": ; preds = %"$have_gas_399" - call void @_out_of_gas() - br label %"$have_gas_404" - -"$have_gas_404": ; preds = %"$out_of_gas_403", %"$have_gas_399" - %"$consume_405" = sub i64 %"$gasrem_401", 2 - store i64 %"$consume_405", i64* @_gasrem, align 8 - %"$$resopt_8_407" = load %TName_Option_Int32*, %TName_Option_Int32** %"$resopt_8", align 8 - %"$$resopt_8_tag_408" = getelementptr inbounds %TName_Option_Int32, %TName_Option_Int32* %"$$resopt_8_407", i32 0, i32 0 - %"$$resopt_8_tag_409" = load i8, i8* %"$$resopt_8_tag_408", align 1 - switch i8 %"$$resopt_8_tag_409", label %"$empty_default_410" [ - i8 0, label %"$Some_411" - i8 1, label %"$None_456" - ], !dbg !36 - -"$Some_411": ; preds = %"$have_gas_404" - %"$$resopt_8_412" = bitcast %TName_Option_Int32* %"$$resopt_8_407" to %CName_Some_Int32* - %"$res_gep_413" = getelementptr inbounds %CName_Some_Int32, %CName_Some_Int32* %"$$resopt_8_412", i32 0, i32 1 - %"$res_load_414" = load %Int32, %Int32* %"$res_gep_413", align 4 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$test_9", metadata !67, metadata !DIExpression()), !dbg !68 + %"$gasrem_403" = load i64, i64* @_gasrem, align 8 + %"$gascmp_404" = icmp ugt i64 2, %"$gasrem_403" + br i1 %"$gascmp_404", label %"$out_of_gas_405", label %"$have_gas_406" + +"$out_of_gas_405": ; preds = %"$have_gas_401" + call void @_out_of_gas() + br label %"$have_gas_406" + +"$have_gas_406": ; preds = %"$out_of_gas_405", %"$have_gas_401" + %"$consume_407" = sub i64 %"$gasrem_403", 2 + store i64 %"$consume_407", i64* @_gasrem, align 8 + %"$$resopt_8_409" = load %TName_Option_Int32*, %TName_Option_Int32** %"$resopt_8", align 8 + %"$$resopt_8_tag_410" = getelementptr inbounds %TName_Option_Int32, %TName_Option_Int32* %"$$resopt_8_409", i32 0, i32 0 + %"$$resopt_8_tag_411" = load i8, i8* %"$$resopt_8_tag_410", align 1 + switch i8 %"$$resopt_8_tag_411", label %"$empty_default_412" [ + i8 0, label %"$Some_413" + i8 1, label %"$None_458" + ], !dbg !69 + +"$Some_413": ; preds = %"$have_gas_406" + %"$$resopt_8_414" = bitcast %TName_Option_Int32* %"$$resopt_8_409" to %CName_Some_Int32* + %"$res_gep_415" = getelementptr inbounds %CName_Some_Int32, %CName_Some_Int32* %"$$resopt_8_414", i32 0, i32 1 + %"$res_load_416" = load %Int32, %Int32* %"$res_gep_415", align 4 %res1 = alloca %Int32, align 8 - store %Int32 %"$res_load_414", %Int32* %res1, align 4 - %"$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" + store %Int32 %"$res_load_416", %Int32* %res1, align 4 + %"$gasrem_417" = load i64, i64* @_gasrem, align 8 + %"$gascmp_418" = icmp ugt i64 1, %"$gasrem_417" + br i1 %"$gascmp_418", label %"$out_of_gas_419", label %"$have_gas_420" -"$out_of_gas_417": ; preds = %"$Some_411" +"$out_of_gas_419": ; preds = %"$Some_413" call void @_out_of_gas() - br label %"$have_gas_418" + br label %"$have_gas_420" -"$have_gas_418": ; preds = %"$out_of_gas_417", %"$Some_411" - %"$consume_419" = sub i64 %"$gasrem_415", 1 - store i64 %"$consume_419", i64* @_gasrem, align 8 +"$have_gas_420": ; preds = %"$out_of_gas_419", %"$Some_413" + %"$consume_421" = sub i64 %"$gasrem_417", 1 + store i64 %"$consume_421", i64* @_gasrem, align 8 %input_2 = alloca %Int32, 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" + call void @llvm.dbg.declare(metadata %Int32* %input_2, metadata !70, metadata !DIExpression()), !dbg !73 + %"$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" -"$out_of_gas_422": ; preds = %"$have_gas_418" +"$out_of_gas_424": ; preds = %"$have_gas_420" call void @_out_of_gas() - br label %"$have_gas_423" + br label %"$have_gas_425" -"$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 1844 }, %Int32* %input_2, align 4, !dbg !37 - %"$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" +"$have_gas_425": ; preds = %"$out_of_gas_424", %"$have_gas_420" + %"$consume_426" = sub i64 %"$gasrem_422", 1 + store i64 %"$consume_426", i64* @_gasrem, align 8 + store %Int32 { i32 1844 }, %Int32* %input_2, align 4, !dbg !74 + %"$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" -"$out_of_gas_427": ; preds = %"$have_gas_423" +"$out_of_gas_429": ; preds = %"$have_gas_425" call void @_out_of_gas() - br label %"$have_gas_428" + br label %"$have_gas_430" -"$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 +"$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 %test_3 = alloca %TName_Bool*, align 8 - %"$gasrem_430" = load i64, i64* @_gasrem, align 8 - %"$gascmp_431" = icmp ugt i64 4, %"$gasrem_430" - br i1 %"$gascmp_431", label %"$out_of_gas_432", label %"$have_gas_433" - -"$out_of_gas_432": ; preds = %"$have_gas_428" - call void @_out_of_gas() - br label %"$have_gas_433" - -"$have_gas_433": ; preds = %"$out_of_gas_432", %"$have_gas_428" - %"$consume_434" = sub i64 %"$gasrem_430", 4 - store i64 %"$consume_434", i64* @_gasrem, align 8 - %"$execptr_load_435" = load i8*, i8** @_execptr, align 8 - %"$res_436" = load %Int32, %Int32* %res1, align 4 - %"$input__437" = load %Int32, %Int32* %input_2, align 4 - %"$eq_call_438" = call %TName_Bool* @_eq_Int32(i8* %"$execptr_load_435", %Int32 %"$res_436", %Int32 %"$input__437"), !dbg !40 - store %TName_Bool* %"$eq_call_438", %TName_Bool** %test_3, align 8, !dbg !40 - %"$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_442": ; preds = %"$have_gas_433" - call void @_out_of_gas() - br label %"$have_gas_443" - -"$have_gas_443": ; preds = %"$out_of_gas_442", %"$have_gas_433" - %"$consume_444" = sub i64 %"$gasrem_440", 1 - store i64 %"$consume_444", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %test_3, metadata !75, metadata !DIExpression()), !dbg !76 + %"$gasrem_432" = load i64, i64* @_gasrem, align 8 + %"$gascmp_433" = icmp ugt i64 4, %"$gasrem_432" + br i1 %"$gascmp_433", label %"$out_of_gas_434", label %"$have_gas_435" + +"$out_of_gas_434": ; preds = %"$have_gas_430" + call void @_out_of_gas() + br label %"$have_gas_435" + +"$have_gas_435": ; preds = %"$out_of_gas_434", %"$have_gas_430" + %"$consume_436" = sub i64 %"$gasrem_432", 4 + store i64 %"$consume_436", i64* @_gasrem, align 8 + %"$execptr_load_437" = load i8*, i8** @_execptr, align 8 + %"$res_438" = load %Int32, %Int32* %res1, align 4 + %"$input__439" = load %Int32, %Int32* %input_2, align 4 + %"$eq_call_440" = call %TName_Bool* @_eq_Int32(i8* %"$execptr_load_437", %Int32 %"$res_438", %Int32 %"$input__439"), !dbg !77 + store %TName_Bool* %"$eq_call_440", %TName_Bool** %test_3, align 8, !dbg !77 + %"$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_435" + call void @_out_of_gas() + br label %"$have_gas_445" + +"$have_gas_445": ; preds = %"$out_of_gas_444", %"$have_gas_435" + %"$consume_446" = sub i64 %"$gasrem_442", 1 + store i64 %"$consume_446", i64* @_gasrem, align 8 %"$BoolUtils.andb_57" = alloca { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, align 8 - %"$BoolUtils.andb_445" = 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_446" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_445", 0 - %"$BoolUtils.andb_envptr_447" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_445", 1 - %"$$test_6_448" = load %TName_Bool*, %TName_Bool** %"$test_6", align 8 - %"$BoolUtils.andb_call_449" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_446"(i8* %"$BoolUtils.andb_envptr_447", %TName_Bool* %"$$test_6_448"), !dbg !41 - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_449", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_57", align 8, !dbg !41 + %"$BoolUtils.andb_447" = 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_448" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_447", 0 + %"$BoolUtils.andb_envptr_449" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_447", 1 + %"$$test_6_450" = load %TName_Bool*, %TName_Bool** %"$test_6", align 8 + %"$BoolUtils.andb_call_451" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_448"(i8* %"$BoolUtils.andb_envptr_449", %TName_Bool* %"$$test_6_450"), !dbg !78 + store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_451", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_57", align 8, !dbg !78 %"$BoolUtils.andb_58" = alloca %TName_Bool*, align 8 - %"$$BoolUtils.andb_57_450" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_57", align 8 - %"$$BoolUtils.andb_57_fptr_451" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_57_450", 0 - %"$$BoolUtils.andb_57_envptr_452" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_57_450", 1 - %"$test__453" = load %TName_Bool*, %TName_Bool** %test_3, align 8 - %"$$BoolUtils.andb_57_call_454" = call %TName_Bool* %"$$BoolUtils.andb_57_fptr_451"(i8* %"$$BoolUtils.andb_57_envptr_452", %TName_Bool* %"$test__453"), !dbg !41 - store %TName_Bool* %"$$BoolUtils.andb_57_call_454", %TName_Bool** %"$BoolUtils.andb_58", align 8, !dbg !41 - %"$$BoolUtils.andb_58_455" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_58", align 8 - store %TName_Bool* %"$$BoolUtils.andb_58_455", %TName_Bool** %"$test_9", align 8, !dbg !41 - br label %"$matchsucc_406" - -"$None_456": ; preds = %"$have_gas_404" - %"$$resopt_8_457" = bitcast %TName_Option_Int32* %"$$resopt_8_407" to %CName_None_Int32* - %"$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_460": ; preds = %"$None_456" - call void @_out_of_gas() - br label %"$have_gas_461" - -"$have_gas_461": ; preds = %"$out_of_gas_460", %"$None_456" - %"$consume_462" = sub i64 %"$gasrem_458", 1 - store i64 %"$consume_462", i64* @_gasrem, align 8 - %"$false_463" = load %TName_Bool*, %TName_Bool** %false, align 8 - store %TName_Bool* %"$false_463", %TName_Bool** %"$test_9", align 8, !dbg !42 - br label %"$matchsucc_406" - -"$empty_default_410": ; preds = %"$have_gas_404" - br label %"$matchsucc_406" - -"$matchsucc_406": ; preds = %"$have_gas_461", %"$have_gas_443", %"$empty_default_410" - %"$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_466": ; preds = %"$matchsucc_406" - call void @_out_of_gas() - br label %"$have_gas_467" - -"$have_gas_467": ; preds = %"$out_of_gas_466", %"$matchsucc_406" - %"$consume_468" = sub i64 %"$gasrem_464", 1 - store i64 %"$consume_468", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$BoolUtils.andb_58", metadata !79, metadata !DIExpression()), !dbg !78 + %"$$BoolUtils.andb_57_452" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_57", align 8 + %"$$BoolUtils.andb_57_fptr_453" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_57_452", 0 + %"$$BoolUtils.andb_57_envptr_454" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_57_452", 1 + %"$test__455" = load %TName_Bool*, %TName_Bool** %test_3, align 8 + %"$$BoolUtils.andb_57_call_456" = call %TName_Bool* %"$$BoolUtils.andb_57_fptr_453"(i8* %"$$BoolUtils.andb_57_envptr_454", %TName_Bool* %"$test__455"), !dbg !78 + store %TName_Bool* %"$$BoolUtils.andb_57_call_456", %TName_Bool** %"$BoolUtils.andb_58", align 8, !dbg !78 + %"$$BoolUtils.andb_58_457" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_58", align 8 + store %TName_Bool* %"$$BoolUtils.andb_58_457", %TName_Bool** %"$test_9", align 8, !dbg !78 + br label %"$matchsucc_408" + +"$None_458": ; preds = %"$have_gas_406" + %"$$resopt_8_459" = bitcast %TName_Option_Int32* %"$$resopt_8_409" to %CName_None_Int32* + %"$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_462": ; preds = %"$None_458" + call void @_out_of_gas() + br label %"$have_gas_463" + +"$have_gas_463": ; preds = %"$out_of_gas_462", %"$None_458" + %"$consume_464" = sub i64 %"$gasrem_460", 1 + store i64 %"$consume_464", i64* @_gasrem, align 8 + %"$false_465" = load %TName_Bool*, %TName_Bool** %false, align 8 + store %TName_Bool* %"$false_465", %TName_Bool** %"$test_9", align 8, !dbg !80 + br label %"$matchsucc_408" + +"$empty_default_412": ; preds = %"$have_gas_406" + br label %"$matchsucc_408" + +"$matchsucc_408": ; preds = %"$have_gas_463", %"$have_gas_445", %"$empty_default_412" + %"$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 = %"$matchsucc_408" + call void @_out_of_gas() + br label %"$have_gas_469" + +"$have_gas_469": ; preds = %"$out_of_gas_468", %"$matchsucc_408" + %"$consume_470" = sub i64 %"$gasrem_466", 1 + store i64 %"$consume_470", i64* @_gasrem, align 8 %"$input_10" = alloca %String, 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" + call void @llvm.dbg.declare(metadata %String* %"$input_10", metadata !82, metadata !DIExpression()), !dbg !84 + %"$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_471": ; preds = %"$have_gas_467" +"$out_of_gas_473": ; preds = %"$have_gas_469" call void @_out_of_gas() - br label %"$have_gas_472" + br label %"$have_gas_474" -"$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 - store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_474", i32 0, i32 0), i32 4 }, %String* %"$input_10", align 8, !dbg !44 - %"$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" +"$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 + store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_476", i32 0, i32 0), i32 4 }, %String* %"$input_10", align 8, !dbg !85 + %"$gasrem_477" = load i64, i64* @_gasrem, align 8 + %"$gascmp_478" = icmp ugt i64 1, %"$gasrem_477" + br i1 %"$gascmp_478", label %"$out_of_gas_479", label %"$have_gas_480" -"$out_of_gas_477": ; preds = %"$have_gas_472" +"$out_of_gas_479": ; preds = %"$have_gas_474" call void @_out_of_gas() - br label %"$have_gas_478" + br label %"$have_gas_480" -"$have_gas_478": ; preds = %"$out_of_gas_477", %"$have_gas_472" - %"$consume_479" = sub i64 %"$gasrem_475", 1 - store i64 %"$consume_479", i64* @_gasrem, align 8 +"$have_gas_480": ; preds = %"$out_of_gas_479", %"$have_gas_474" + %"$consume_481" = sub i64 %"$gasrem_477", 1 + store i64 %"$consume_481", i64* @_gasrem, align 8 %"$resopt_11" = alloca %TName_Option_Int32*, align 8 - %"$gasrem_480" = load i64, i64* @_gasrem, align 8 - %"$gascmp_481" = icmp ugt i64 4, %"$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", 4 - store i64 %"$consume_484", i64* @_gasrem, align 8 - %"$execptr_load_485" = load i8*, i8** @_execptr, align 8 - %"$to_int32_$input_10_486" = alloca %String, align 8 - %"$$input_10_487" = load %String, %String* %"$input_10", align 8 - store %String %"$$input_10_487", %String* %"$to_int32_$input_10_486", align 8 - %"$$to_int32_$input_10_486_488" = bitcast %String* %"$to_int32_$input_10_486" to i8* - %"$to_int32_call_489" = call i8* @_to_int32(i8* %"$execptr_load_485", %_TyDescrTy_Typ* @"$TyDescr_String_104", i8* %"$$to_int32_$input_10_486_488"), !dbg !45 - %"$to_int32_490" = bitcast i8* %"$to_int32_call_489" to %TName_Option_Int32* - store %TName_Option_Int32* %"$to_int32_490", %TName_Option_Int32** %"$resopt_11", align 8, !dbg !45 - %"$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_483" - call void @_out_of_gas() - br label %"$have_gas_494" - -"$have_gas_494": ; preds = %"$out_of_gas_493", %"$have_gas_483" - %"$consume_495" = sub i64 %"$gasrem_491", 1 - store i64 %"$consume_495", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Option_Int32** %"$resopt_11", metadata !86, metadata !DIExpression()), !dbg !87 + %"$gasrem_482" = load i64, i64* @_gasrem, align 8 + %"$gascmp_483" = icmp ugt i64 4, %"$gasrem_482" + br i1 %"$gascmp_483", label %"$out_of_gas_484", label %"$have_gas_485" + +"$out_of_gas_484": ; preds = %"$have_gas_480" + call void @_out_of_gas() + br label %"$have_gas_485" + +"$have_gas_485": ; preds = %"$out_of_gas_484", %"$have_gas_480" + %"$consume_486" = sub i64 %"$gasrem_482", 4 + store i64 %"$consume_486", i64* @_gasrem, align 8 + %"$execptr_load_487" = load i8*, i8** @_execptr, align 8 + %"$to_int32_$input_10_488" = alloca %String, align 8 + %"$$input_10_489" = load %String, %String* %"$input_10", align 8 + store %String %"$$input_10_489", %String* %"$to_int32_$input_10_488", align 8 + %"$$to_int32_$input_10_488_490" = bitcast %String* %"$to_int32_$input_10_488" to i8* + %"$to_int32_call_491" = call i8* @_to_int32(i8* %"$execptr_load_487", %_TyDescrTy_Typ* @"$TyDescr_String_104", i8* %"$$to_int32_$input_10_488_490"), !dbg !88 + %"$to_int32_492" = bitcast i8* %"$to_int32_call_491" to %TName_Option_Int32* + store %TName_Option_Int32* %"$to_int32_492", %TName_Option_Int32** %"$resopt_11", align 8, !dbg !88 + %"$gasrem_493" = load i64, i64* @_gasrem, align 8 + %"$gascmp_494" = icmp ugt i64 1, %"$gasrem_493" + br i1 %"$gascmp_494", label %"$out_of_gas_495", label %"$have_gas_496" + +"$out_of_gas_495": ; preds = %"$have_gas_485" + call void @_out_of_gas() + br label %"$have_gas_496" + +"$have_gas_496": ; preds = %"$out_of_gas_495", %"$have_gas_485" + %"$consume_497" = sub i64 %"$gasrem_493", 1 + store i64 %"$consume_497", i64* @_gasrem, align 8 %"$test_12" = alloca %TName_Bool*, align 8 - %"$gasrem_496" = load i64, i64* @_gasrem, align 8 - %"$gascmp_497" = icmp ugt i64 2, %"$gasrem_496" - br i1 %"$gascmp_497", label %"$out_of_gas_498", label %"$have_gas_499" - -"$out_of_gas_498": ; preds = %"$have_gas_494" - call void @_out_of_gas() - br label %"$have_gas_499" - -"$have_gas_499": ; preds = %"$out_of_gas_498", %"$have_gas_494" - %"$consume_500" = sub i64 %"$gasrem_496", 2 - store i64 %"$consume_500", i64* @_gasrem, align 8 - %"$$resopt_11_502" = load %TName_Option_Int32*, %TName_Option_Int32** %"$resopt_11", align 8 - %"$$resopt_11_tag_503" = getelementptr inbounds %TName_Option_Int32, %TName_Option_Int32* %"$$resopt_11_502", i32 0, i32 0 - %"$$resopt_11_tag_504" = load i8, i8* %"$$resopt_11_tag_503", align 1 - switch i8 %"$$resopt_11_tag_504", label %"$empty_default_505" [ - i8 0, label %"$Some_506" - i8 1, label %"$None_551" - ], !dbg !46 - -"$Some_506": ; preds = %"$have_gas_499" - %"$$resopt_11_507" = bitcast %TName_Option_Int32* %"$$resopt_11_502" to %CName_Some_Int32* - %"$res_gep_508" = getelementptr inbounds %CName_Some_Int32, %CName_Some_Int32* %"$$resopt_11_507", i32 0, i32 1 - %"$res_load_509" = load %Int32, %Int32* %"$res_gep_508", align 4 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$test_12", metadata !89, metadata !DIExpression()), !dbg !90 + %"$gasrem_498" = load i64, i64* @_gasrem, align 8 + %"$gascmp_499" = icmp ugt i64 2, %"$gasrem_498" + br i1 %"$gascmp_499", label %"$out_of_gas_500", label %"$have_gas_501" + +"$out_of_gas_500": ; preds = %"$have_gas_496" + call void @_out_of_gas() + br label %"$have_gas_501" + +"$have_gas_501": ; preds = %"$out_of_gas_500", %"$have_gas_496" + %"$consume_502" = sub i64 %"$gasrem_498", 2 + store i64 %"$consume_502", i64* @_gasrem, align 8 + %"$$resopt_11_504" = load %TName_Option_Int32*, %TName_Option_Int32** %"$resopt_11", align 8 + %"$$resopt_11_tag_505" = getelementptr inbounds %TName_Option_Int32, %TName_Option_Int32* %"$$resopt_11_504", i32 0, i32 0 + %"$$resopt_11_tag_506" = load i8, i8* %"$$resopt_11_tag_505", align 1 + switch i8 %"$$resopt_11_tag_506", label %"$empty_default_507" [ + i8 0, label %"$Some_508" + i8 1, label %"$None_553" + ], !dbg !91 + +"$Some_508": ; preds = %"$have_gas_501" + %"$$resopt_11_509" = bitcast %TName_Option_Int32* %"$$resopt_11_504" to %CName_Some_Int32* + %"$res_gep_510" = getelementptr inbounds %CName_Some_Int32, %CName_Some_Int32* %"$$resopt_11_509", i32 0, i32 1 + %"$res_load_511" = load %Int32, %Int32* %"$res_gep_510", align 4 %res4 = alloca %Int32, align 8 - store %Int32 %"$res_load_509", %Int32* %res4, align 4 - %"$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" + store %Int32 %"$res_load_511", %Int32* %res4, 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" -"$out_of_gas_512": ; preds = %"$Some_506" +"$out_of_gas_514": ; preds = %"$Some_508" call void @_out_of_gas() - br label %"$have_gas_513" + br label %"$have_gas_515" -"$have_gas_513": ; preds = %"$out_of_gas_512", %"$Some_506" - %"$consume_514" = sub i64 %"$gasrem_510", 1 - store i64 %"$consume_514", i64* @_gasrem, align 8 +"$have_gas_515": ; preds = %"$out_of_gas_514", %"$Some_508" + %"$consume_516" = sub i64 %"$gasrem_512", 1 + store i64 %"$consume_516", i64* @_gasrem, align 8 %input_5 = alloca %Int32, 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" + call void @llvm.dbg.declare(metadata %Int32* %input_5, metadata !92, metadata !DIExpression()), !dbg !95 + %"$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_517": ; preds = %"$have_gas_513" +"$out_of_gas_519": ; preds = %"$have_gas_515" call void @_out_of_gas() - br label %"$have_gas_518" + br label %"$have_gas_520" -"$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 %Int32 { i32 1844 }, %Int32* %input_5, align 4, !dbg !47 - %"$gasrem_520" = load i64, i64* @_gasrem, align 8 - %"$gascmp_521" = icmp ugt i64 1, %"$gasrem_520" - br i1 %"$gascmp_521", label %"$out_of_gas_522", label %"$have_gas_523" +"$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 1844 }, %Int32* %input_5, align 4, !dbg !96 + %"$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_522": ; preds = %"$have_gas_518" +"$out_of_gas_524": ; preds = %"$have_gas_520" call void @_out_of_gas() - br label %"$have_gas_523" + br label %"$have_gas_525" -"$have_gas_523": ; preds = %"$out_of_gas_522", %"$have_gas_518" - %"$consume_524" = sub i64 %"$gasrem_520", 1 - store i64 %"$consume_524", i64* @_gasrem, align 8 +"$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 %test_6 = alloca %TName_Bool*, align 8 - %"$gasrem_525" = load i64, i64* @_gasrem, align 8 - %"$gascmp_526" = icmp ugt i64 4, %"$gasrem_525" - br i1 %"$gascmp_526", label %"$out_of_gas_527", label %"$have_gas_528" - -"$out_of_gas_527": ; preds = %"$have_gas_523" - call void @_out_of_gas() - br label %"$have_gas_528" - -"$have_gas_528": ; preds = %"$out_of_gas_527", %"$have_gas_523" - %"$consume_529" = sub i64 %"$gasrem_525", 4 - store i64 %"$consume_529", i64* @_gasrem, align 8 - %"$execptr_load_530" = load i8*, i8** @_execptr, align 8 - %"$res_531" = load %Int32, %Int32* %res4, align 4 - %"$input__532" = load %Int32, %Int32* %input_5, align 4 - %"$eq_call_533" = call %TName_Bool* @_eq_Int32(i8* %"$execptr_load_530", %Int32 %"$res_531", %Int32 %"$input__532"), !dbg !50 - store %TName_Bool* %"$eq_call_533", %TName_Bool** %test_6, align 8, !dbg !50 - %"$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_537": ; preds = %"$have_gas_528" - call void @_out_of_gas() - br label %"$have_gas_538" - -"$have_gas_538": ; preds = %"$out_of_gas_537", %"$have_gas_528" - %"$consume_539" = sub i64 %"$gasrem_535", 1 - store i64 %"$consume_539", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %test_6, metadata !97, metadata !DIExpression()), !dbg !98 + %"$gasrem_527" = load i64, i64* @_gasrem, align 8 + %"$gascmp_528" = icmp ugt i64 4, %"$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", 4 + store i64 %"$consume_531", i64* @_gasrem, align 8 + %"$execptr_load_532" = load i8*, i8** @_execptr, align 8 + %"$res_533" = load %Int32, %Int32* %res4, align 4 + %"$input__534" = load %Int32, %Int32* %input_5, align 4 + %"$eq_call_535" = call %TName_Bool* @_eq_Int32(i8* %"$execptr_load_532", %Int32 %"$res_533", %Int32 %"$input__534"), !dbg !99 + store %TName_Bool* %"$eq_call_535", %TName_Bool** %test_6, align 8, !dbg !99 + %"$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_530" + call void @_out_of_gas() + br label %"$have_gas_540" + +"$have_gas_540": ; preds = %"$out_of_gas_539", %"$have_gas_530" + %"$consume_541" = sub i64 %"$gasrem_537", 1 + store i64 %"$consume_541", i64* @_gasrem, align 8 %"$BoolUtils.andb_59" = alloca { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, align 8 - %"$BoolUtils.andb_540" = 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_541" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_540", 0 - %"$BoolUtils.andb_envptr_542" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_540", 1 - %"$$test_9_543" = load %TName_Bool*, %TName_Bool** %"$test_9", align 8 - %"$BoolUtils.andb_call_544" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_541"(i8* %"$BoolUtils.andb_envptr_542", %TName_Bool* %"$$test_9_543"), !dbg !51 - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_544", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_59", align 8, !dbg !51 + %"$BoolUtils.andb_542" = 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_543" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_542", 0 + %"$BoolUtils.andb_envptr_544" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_542", 1 + %"$$test_9_545" = load %TName_Bool*, %TName_Bool** %"$test_9", align 8 + %"$BoolUtils.andb_call_546" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_543"(i8* %"$BoolUtils.andb_envptr_544", %TName_Bool* %"$$test_9_545"), !dbg !100 + store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_546", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_59", align 8, !dbg !100 %"$BoolUtils.andb_60" = alloca %TName_Bool*, align 8 - %"$$BoolUtils.andb_59_545" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_59", align 8 - %"$$BoolUtils.andb_59_fptr_546" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_59_545", 0 - %"$$BoolUtils.andb_59_envptr_547" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_59_545", 1 - %"$test__548" = load %TName_Bool*, %TName_Bool** %test_6, align 8 - %"$$BoolUtils.andb_59_call_549" = call %TName_Bool* %"$$BoolUtils.andb_59_fptr_546"(i8* %"$$BoolUtils.andb_59_envptr_547", %TName_Bool* %"$test__548"), !dbg !51 - store %TName_Bool* %"$$BoolUtils.andb_59_call_549", %TName_Bool** %"$BoolUtils.andb_60", align 8, !dbg !51 - %"$$BoolUtils.andb_60_550" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_60", align 8 - store %TName_Bool* %"$$BoolUtils.andb_60_550", %TName_Bool** %"$test_12", align 8, !dbg !51 - br label %"$matchsucc_501" - -"$None_551": ; preds = %"$have_gas_499" - %"$$resopt_11_552" = bitcast %TName_Option_Int32* %"$$resopt_11_502" to %CName_None_Int32* - %"$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 = %"$None_551" - call void @_out_of_gas() - br label %"$have_gas_556" - -"$have_gas_556": ; preds = %"$out_of_gas_555", %"$None_551" - %"$consume_557" = sub i64 %"$gasrem_553", 1 - store i64 %"$consume_557", i64* @_gasrem, align 8 - %"$false_558" = load %TName_Bool*, %TName_Bool** %false, align 8 - store %TName_Bool* %"$false_558", %TName_Bool** %"$test_12", align 8, !dbg !52 - br label %"$matchsucc_501" - -"$empty_default_505": ; preds = %"$have_gas_499" - br label %"$matchsucc_501" - -"$matchsucc_501": ; preds = %"$have_gas_556", %"$have_gas_538", %"$empty_default_505" - %"$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 = %"$matchsucc_501" - call void @_out_of_gas() - br label %"$have_gas_562" - -"$have_gas_562": ; preds = %"$out_of_gas_561", %"$matchsucc_501" - %"$consume_563" = sub i64 %"$gasrem_559", 1 - store i64 %"$consume_563", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$BoolUtils.andb_60", metadata !101, metadata !DIExpression()), !dbg !100 + %"$$BoolUtils.andb_59_547" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_59", align 8 + %"$$BoolUtils.andb_59_fptr_548" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_59_547", 0 + %"$$BoolUtils.andb_59_envptr_549" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_59_547", 1 + %"$test__550" = load %TName_Bool*, %TName_Bool** %test_6, align 8 + %"$$BoolUtils.andb_59_call_551" = call %TName_Bool* %"$$BoolUtils.andb_59_fptr_548"(i8* %"$$BoolUtils.andb_59_envptr_549", %TName_Bool* %"$test__550"), !dbg !100 + store %TName_Bool* %"$$BoolUtils.andb_59_call_551", %TName_Bool** %"$BoolUtils.andb_60", align 8, !dbg !100 + %"$$BoolUtils.andb_60_552" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_60", align 8 + store %TName_Bool* %"$$BoolUtils.andb_60_552", %TName_Bool** %"$test_12", align 8, !dbg !100 + br label %"$matchsucc_503" + +"$None_553": ; preds = %"$have_gas_501" + %"$$resopt_11_554" = bitcast %TName_Option_Int32* %"$$resopt_11_504" to %CName_None_Int32* + %"$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" + +"$out_of_gas_557": ; preds = %"$None_553" + call void @_out_of_gas() + br label %"$have_gas_558" + +"$have_gas_558": ; preds = %"$out_of_gas_557", %"$None_553" + %"$consume_559" = sub i64 %"$gasrem_555", 1 + store i64 %"$consume_559", i64* @_gasrem, align 8 + %"$false_560" = load %TName_Bool*, %TName_Bool** %false, align 8 + store %TName_Bool* %"$false_560", %TName_Bool** %"$test_12", align 8, !dbg !102 + br label %"$matchsucc_503" + +"$empty_default_507": ; preds = %"$have_gas_501" + br label %"$matchsucc_503" + +"$matchsucc_503": ; preds = %"$have_gas_558", %"$have_gas_540", %"$empty_default_507" + %"$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_563": ; preds = %"$matchsucc_503" + call void @_out_of_gas() + br label %"$have_gas_564" + +"$have_gas_564": ; preds = %"$out_of_gas_563", %"$matchsucc_503" + %"$consume_565" = sub i64 %"$gasrem_561", 1 + store i64 %"$consume_565", i64* @_gasrem, align 8 %"$input_13" = alloca %Uint128, 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" + call void @llvm.dbg.declare(metadata %Uint128* %"$input_13", metadata !104, metadata !DIExpression()), !dbg !106 + %"$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_566": ; preds = %"$have_gas_562" +"$out_of_gas_568": ; preds = %"$have_gas_564" call void @_out_of_gas() - br label %"$have_gas_567" + br label %"$have_gas_569" -"$have_gas_567": ; preds = %"$out_of_gas_566", %"$have_gas_562" - %"$consume_568" = sub i64 %"$gasrem_564", 1 - store i64 %"$consume_568", i64* @_gasrem, align 8 - store %Uint128 { i128 1844 }, %Uint128* %"$input_13", align 8, !dbg !54 - %"$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" +"$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 + store %Uint128 { i128 1844 }, %Uint128* %"$input_13", align 8, !dbg !107 + %"$gasrem_571" = load i64, i64* @_gasrem, align 8 + %"$gascmp_572" = icmp ugt i64 1, %"$gasrem_571" + br i1 %"$gascmp_572", label %"$out_of_gas_573", label %"$have_gas_574" -"$out_of_gas_571": ; preds = %"$have_gas_567" +"$out_of_gas_573": ; preds = %"$have_gas_569" call void @_out_of_gas() - br label %"$have_gas_572" + br label %"$have_gas_574" -"$have_gas_572": ; preds = %"$out_of_gas_571", %"$have_gas_567" - %"$consume_573" = sub i64 %"$gasrem_569", 1 - store i64 %"$consume_573", i64* @_gasrem, align 8 +"$have_gas_574": ; preds = %"$out_of_gas_573", %"$have_gas_569" + %"$consume_575" = sub i64 %"$gasrem_571", 1 + store i64 %"$consume_575", i64* @_gasrem, align 8 %"$resopt_14" = alloca %TName_Option_Int32*, align 8 - %"$gasrem_574" = load i64, i64* @_gasrem, align 8 - %"$gascmp_575" = icmp ugt i64 4, %"$gasrem_574" - br i1 %"$gascmp_575", label %"$out_of_gas_576", label %"$have_gas_577" - -"$out_of_gas_576": ; preds = %"$have_gas_572" - call void @_out_of_gas() - br label %"$have_gas_577" - -"$have_gas_577": ; preds = %"$out_of_gas_576", %"$have_gas_572" - %"$consume_578" = sub i64 %"$gasrem_574", 4 - store i64 %"$consume_578", i64* @_gasrem, align 8 - %"$execptr_load_579" = load i8*, i8** @_execptr, align 8 - %"$to_int32_$input_13_580" = alloca %Uint128, align 8 - %"$$input_13_581" = load %Uint128, %Uint128* %"$input_13", align 8 - store %Uint128 %"$$input_13_581", %Uint128* %"$to_int32_$input_13_580", align 8 - %"$$to_int32_$input_13_580_582" = bitcast %Uint128* %"$to_int32_$input_13_580" to i8* - %"$to_int32_call_583" = call i8* @_to_int32(i8* %"$execptr_load_579", %_TyDescrTy_Typ* @"$TyDescr_Uint128_98", i8* %"$$to_int32_$input_13_580_582"), !dbg !55 - %"$to_int32_584" = bitcast i8* %"$to_int32_call_583" to %TName_Option_Int32* - store %TName_Option_Int32* %"$to_int32_584", %TName_Option_Int32** %"$resopt_14", align 8, !dbg !55 - %"$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 = %"$have_gas_577" - call void @_out_of_gas() - br label %"$have_gas_588" - -"$have_gas_588": ; preds = %"$out_of_gas_587", %"$have_gas_577" - %"$consume_589" = sub i64 %"$gasrem_585", 1 - store i64 %"$consume_589", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Option_Int32** %"$resopt_14", metadata !108, metadata !DIExpression()), !dbg !109 + %"$gasrem_576" = load i64, i64* @_gasrem, align 8 + %"$gascmp_577" = icmp ugt i64 4, %"$gasrem_576" + br i1 %"$gascmp_577", label %"$out_of_gas_578", label %"$have_gas_579" + +"$out_of_gas_578": ; preds = %"$have_gas_574" + call void @_out_of_gas() + br label %"$have_gas_579" + +"$have_gas_579": ; preds = %"$out_of_gas_578", %"$have_gas_574" + %"$consume_580" = sub i64 %"$gasrem_576", 4 + store i64 %"$consume_580", i64* @_gasrem, align 8 + %"$execptr_load_581" = load i8*, i8** @_execptr, align 8 + %"$to_int32_$input_13_582" = alloca %Uint128, align 8 + %"$$input_13_583" = load %Uint128, %Uint128* %"$input_13", align 8 + store %Uint128 %"$$input_13_583", %Uint128* %"$to_int32_$input_13_582", align 8 + %"$$to_int32_$input_13_582_584" = bitcast %Uint128* %"$to_int32_$input_13_582" to i8* + %"$to_int32_call_585" = call i8* @_to_int32(i8* %"$execptr_load_581", %_TyDescrTy_Typ* @"$TyDescr_Uint128_98", i8* %"$$to_int32_$input_13_582_584"), !dbg !110 + %"$to_int32_586" = bitcast i8* %"$to_int32_call_585" to %TName_Option_Int32* + store %TName_Option_Int32* %"$to_int32_586", %TName_Option_Int32** %"$resopt_14", align 8, !dbg !110 + %"$gasrem_587" = load i64, i64* @_gasrem, align 8 + %"$gascmp_588" = icmp ugt i64 1, %"$gasrem_587" + br i1 %"$gascmp_588", label %"$out_of_gas_589", label %"$have_gas_590" + +"$out_of_gas_589": ; preds = %"$have_gas_579" + call void @_out_of_gas() + br label %"$have_gas_590" + +"$have_gas_590": ; preds = %"$out_of_gas_589", %"$have_gas_579" + %"$consume_591" = sub i64 %"$gasrem_587", 1 + store i64 %"$consume_591", i64* @_gasrem, align 8 %"$test_15" = alloca %TName_Bool*, align 8 - %"$gasrem_590" = load i64, i64* @_gasrem, align 8 - %"$gascmp_591" = icmp ugt i64 2, %"$gasrem_590" - br i1 %"$gascmp_591", label %"$out_of_gas_592", label %"$have_gas_593" - -"$out_of_gas_592": ; preds = %"$have_gas_588" - call void @_out_of_gas() - br label %"$have_gas_593" - -"$have_gas_593": ; preds = %"$out_of_gas_592", %"$have_gas_588" - %"$consume_594" = sub i64 %"$gasrem_590", 2 - store i64 %"$consume_594", i64* @_gasrem, align 8 - %"$$resopt_14_596" = load %TName_Option_Int32*, %TName_Option_Int32** %"$resopt_14", align 8 - %"$$resopt_14_tag_597" = getelementptr inbounds %TName_Option_Int32, %TName_Option_Int32* %"$$resopt_14_596", i32 0, i32 0 - %"$$resopt_14_tag_598" = load i8, i8* %"$$resopt_14_tag_597", align 1 - switch i8 %"$$resopt_14_tag_598", label %"$empty_default_599" [ - i8 0, label %"$Some_600" - i8 1, label %"$None_645" - ], !dbg !56 - -"$Some_600": ; preds = %"$have_gas_593" - %"$$resopt_14_601" = bitcast %TName_Option_Int32* %"$$resopt_14_596" to %CName_Some_Int32* - %"$res_gep_602" = getelementptr inbounds %CName_Some_Int32, %CName_Some_Int32* %"$$resopt_14_601", i32 0, i32 1 - %"$res_load_603" = load %Int32, %Int32* %"$res_gep_602", align 4 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$test_15", metadata !111, metadata !DIExpression()), !dbg !112 + %"$gasrem_592" = load i64, i64* @_gasrem, align 8 + %"$gascmp_593" = icmp ugt i64 2, %"$gasrem_592" + br i1 %"$gascmp_593", label %"$out_of_gas_594", label %"$have_gas_595" + +"$out_of_gas_594": ; preds = %"$have_gas_590" + call void @_out_of_gas() + br label %"$have_gas_595" + +"$have_gas_595": ; preds = %"$out_of_gas_594", %"$have_gas_590" + %"$consume_596" = sub i64 %"$gasrem_592", 2 + store i64 %"$consume_596", i64* @_gasrem, align 8 + %"$$resopt_14_598" = load %TName_Option_Int32*, %TName_Option_Int32** %"$resopt_14", align 8 + %"$$resopt_14_tag_599" = getelementptr inbounds %TName_Option_Int32, %TName_Option_Int32* %"$$resopt_14_598", i32 0, i32 0 + %"$$resopt_14_tag_600" = load i8, i8* %"$$resopt_14_tag_599", align 1 + switch i8 %"$$resopt_14_tag_600", label %"$empty_default_601" [ + i8 0, label %"$Some_602" + i8 1, label %"$None_647" + ], !dbg !113 + +"$Some_602": ; preds = %"$have_gas_595" + %"$$resopt_14_603" = bitcast %TName_Option_Int32* %"$$resopt_14_598" to %CName_Some_Int32* + %"$res_gep_604" = getelementptr inbounds %CName_Some_Int32, %CName_Some_Int32* %"$$resopt_14_603", i32 0, i32 1 + %"$res_load_605" = load %Int32, %Int32* %"$res_gep_604", align 4 %res7 = alloca %Int32, align 8 - store %Int32 %"$res_load_603", %Int32* %res7, align 4 - %"$gasrem_604" = load i64, i64* @_gasrem, align 8 - %"$gascmp_605" = icmp ugt i64 1, %"$gasrem_604" - br i1 %"$gascmp_605", label %"$out_of_gas_606", label %"$have_gas_607" + store %Int32 %"$res_load_605", %Int32* %res7, align 4 + %"$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_606": ; preds = %"$Some_600" +"$out_of_gas_608": ; preds = %"$Some_602" call void @_out_of_gas() - br label %"$have_gas_607" + br label %"$have_gas_609" -"$have_gas_607": ; preds = %"$out_of_gas_606", %"$Some_600" - %"$consume_608" = sub i64 %"$gasrem_604", 1 - store i64 %"$consume_608", i64* @_gasrem, align 8 +"$have_gas_609": ; preds = %"$out_of_gas_608", %"$Some_602" + %"$consume_610" = sub i64 %"$gasrem_606", 1 + store i64 %"$consume_610", i64* @_gasrem, align 8 %input_8 = alloca %Int32, 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" + call void @llvm.dbg.declare(metadata %Int32* %input_8, metadata !114, metadata !DIExpression()), !dbg !117 + %"$gasrem_611" = load i64, i64* @_gasrem, align 8 + %"$gascmp_612" = icmp ugt i64 1, %"$gasrem_611" + br i1 %"$gascmp_612", label %"$out_of_gas_613", label %"$have_gas_614" -"$out_of_gas_611": ; preds = %"$have_gas_607" +"$out_of_gas_613": ; preds = %"$have_gas_609" call void @_out_of_gas() - br label %"$have_gas_612" + br label %"$have_gas_614" -"$have_gas_612": ; preds = %"$out_of_gas_611", %"$have_gas_607" - %"$consume_613" = sub i64 %"$gasrem_609", 1 - store i64 %"$consume_613", i64* @_gasrem, align 8 - store %Int32 { i32 1844 }, %Int32* %input_8, align 4, !dbg !57 - %"$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" +"$have_gas_614": ; preds = %"$out_of_gas_613", %"$have_gas_609" + %"$consume_615" = sub i64 %"$gasrem_611", 1 + store i64 %"$consume_615", i64* @_gasrem, align 8 + store %Int32 { i32 1844 }, %Int32* %input_8, align 4, !dbg !118 + %"$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_616": ; preds = %"$have_gas_612" +"$out_of_gas_618": ; preds = %"$have_gas_614" call void @_out_of_gas() - br label %"$have_gas_617" + br label %"$have_gas_619" -"$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 +"$have_gas_619": ; preds = %"$out_of_gas_618", %"$have_gas_614" + %"$consume_620" = sub i64 %"$gasrem_616", 1 + store i64 %"$consume_620", i64* @_gasrem, align 8 %test_9 = alloca %TName_Bool*, align 8 - %"$gasrem_619" = load i64, i64* @_gasrem, align 8 - %"$gascmp_620" = icmp ugt i64 4, %"$gasrem_619" - br i1 %"$gascmp_620", label %"$out_of_gas_621", label %"$have_gas_622" - -"$out_of_gas_621": ; preds = %"$have_gas_617" - call void @_out_of_gas() - br label %"$have_gas_622" - -"$have_gas_622": ; preds = %"$out_of_gas_621", %"$have_gas_617" - %"$consume_623" = sub i64 %"$gasrem_619", 4 - store i64 %"$consume_623", i64* @_gasrem, align 8 - %"$execptr_load_624" = load i8*, i8** @_execptr, align 8 - %"$res_625" = load %Int32, %Int32* %res7, align 4 - %"$input__626" = load %Int32, %Int32* %input_8, align 4 - %"$eq_call_627" = call %TName_Bool* @_eq_Int32(i8* %"$execptr_load_624", %Int32 %"$res_625", %Int32 %"$input__626"), !dbg !60 - store %TName_Bool* %"$eq_call_627", %TName_Bool** %test_9, align 8, !dbg !60 - %"$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" - -"$out_of_gas_631": ; preds = %"$have_gas_622" - call void @_out_of_gas() - br label %"$have_gas_632" - -"$have_gas_632": ; preds = %"$out_of_gas_631", %"$have_gas_622" - %"$consume_633" = sub i64 %"$gasrem_629", 1 - store i64 %"$consume_633", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %test_9, metadata !119, metadata !DIExpression()), !dbg !120 + %"$gasrem_621" = load i64, i64* @_gasrem, align 8 + %"$gascmp_622" = icmp ugt i64 4, %"$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", 4 + store i64 %"$consume_625", i64* @_gasrem, align 8 + %"$execptr_load_626" = load i8*, i8** @_execptr, align 8 + %"$res_627" = load %Int32, %Int32* %res7, align 4 + %"$input__628" = load %Int32, %Int32* %input_8, align 4 + %"$eq_call_629" = call %TName_Bool* @_eq_Int32(i8* %"$execptr_load_626", %Int32 %"$res_627", %Int32 %"$input__628"), !dbg !121 + store %TName_Bool* %"$eq_call_629", %TName_Bool** %test_9, align 8, !dbg !121 + %"$gasrem_631" = load i64, i64* @_gasrem, align 8 + %"$gascmp_632" = icmp ugt i64 1, %"$gasrem_631" + br i1 %"$gascmp_632", label %"$out_of_gas_633", label %"$have_gas_634" + +"$out_of_gas_633": ; preds = %"$have_gas_624" + call void @_out_of_gas() + br label %"$have_gas_634" + +"$have_gas_634": ; preds = %"$out_of_gas_633", %"$have_gas_624" + %"$consume_635" = sub i64 %"$gasrem_631", 1 + store i64 %"$consume_635", i64* @_gasrem, align 8 %"$BoolUtils.andb_61" = alloca { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, align 8 - %"$BoolUtils.andb_634" = 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_635" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_634", 0 - %"$BoolUtils.andb_envptr_636" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_634", 1 - %"$$test_12_637" = load %TName_Bool*, %TName_Bool** %"$test_12", align 8 - %"$BoolUtils.andb_call_638" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_635"(i8* %"$BoolUtils.andb_envptr_636", %TName_Bool* %"$$test_12_637"), !dbg !61 - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_638", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_61", align 8, !dbg !61 + %"$BoolUtils.andb_636" = 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_637" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_636", 0 + %"$BoolUtils.andb_envptr_638" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_636", 1 + %"$$test_12_639" = load %TName_Bool*, %TName_Bool** %"$test_12", align 8 + %"$BoolUtils.andb_call_640" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_637"(i8* %"$BoolUtils.andb_envptr_638", %TName_Bool* %"$$test_12_639"), !dbg !122 + store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_640", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_61", align 8, !dbg !122 %"$BoolUtils.andb_62" = alloca %TName_Bool*, align 8 - %"$$BoolUtils.andb_61_639" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_61", align 8 - %"$$BoolUtils.andb_61_fptr_640" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_61_639", 0 - %"$$BoolUtils.andb_61_envptr_641" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_61_639", 1 - %"$test__642" = load %TName_Bool*, %TName_Bool** %test_9, align 8 - %"$$BoolUtils.andb_61_call_643" = call %TName_Bool* %"$$BoolUtils.andb_61_fptr_640"(i8* %"$$BoolUtils.andb_61_envptr_641", %TName_Bool* %"$test__642"), !dbg !61 - store %TName_Bool* %"$$BoolUtils.andb_61_call_643", %TName_Bool** %"$BoolUtils.andb_62", align 8, !dbg !61 - %"$$BoolUtils.andb_62_644" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_62", align 8 - store %TName_Bool* %"$$BoolUtils.andb_62_644", %TName_Bool** %"$test_15", align 8, !dbg !61 - br label %"$matchsucc_595" - -"$None_645": ; preds = %"$have_gas_593" - %"$$resopt_14_646" = bitcast %TName_Option_Int32* %"$$resopt_14_596" to %CName_None_Int32* - %"$gasrem_647" = load i64, i64* @_gasrem, align 8 - %"$gascmp_648" = icmp ugt i64 1, %"$gasrem_647" - br i1 %"$gascmp_648", label %"$out_of_gas_649", label %"$have_gas_650" - -"$out_of_gas_649": ; preds = %"$None_645" - call void @_out_of_gas() - br label %"$have_gas_650" - -"$have_gas_650": ; preds = %"$out_of_gas_649", %"$None_645" - %"$consume_651" = sub i64 %"$gasrem_647", 1 - store i64 %"$consume_651", i64* @_gasrem, align 8 - %"$false_652" = load %TName_Bool*, %TName_Bool** %false, align 8 - store %TName_Bool* %"$false_652", %TName_Bool** %"$test_15", align 8, !dbg !62 - br label %"$matchsucc_595" - -"$empty_default_599": ; preds = %"$have_gas_593" - br label %"$matchsucc_595" - -"$matchsucc_595": ; preds = %"$have_gas_650", %"$have_gas_632", %"$empty_default_599" - %"$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 = %"$matchsucc_595" - call void @_out_of_gas() - br label %"$have_gas_656" - -"$have_gas_656": ; preds = %"$out_of_gas_655", %"$matchsucc_595" - %"$consume_657" = sub i64 %"$gasrem_653", 1 - store i64 %"$consume_657", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$BoolUtils.andb_62", metadata !123, metadata !DIExpression()), !dbg !122 + %"$$BoolUtils.andb_61_641" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_61", align 8 + %"$$BoolUtils.andb_61_fptr_642" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_61_641", 0 + %"$$BoolUtils.andb_61_envptr_643" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_61_641", 1 + %"$test__644" = load %TName_Bool*, %TName_Bool** %test_9, align 8 + %"$$BoolUtils.andb_61_call_645" = call %TName_Bool* %"$$BoolUtils.andb_61_fptr_642"(i8* %"$$BoolUtils.andb_61_envptr_643", %TName_Bool* %"$test__644"), !dbg !122 + store %TName_Bool* %"$$BoolUtils.andb_61_call_645", %TName_Bool** %"$BoolUtils.andb_62", align 8, !dbg !122 + %"$$BoolUtils.andb_62_646" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_62", align 8 + store %TName_Bool* %"$$BoolUtils.andb_62_646", %TName_Bool** %"$test_15", align 8, !dbg !122 + br label %"$matchsucc_597" + +"$None_647": ; preds = %"$have_gas_595" + %"$$resopt_14_648" = bitcast %TName_Option_Int32* %"$$resopt_14_598" to %CName_None_Int32* + %"$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 = %"$None_647" + call void @_out_of_gas() + br label %"$have_gas_652" + +"$have_gas_652": ; preds = %"$out_of_gas_651", %"$None_647" + %"$consume_653" = sub i64 %"$gasrem_649", 1 + store i64 %"$consume_653", i64* @_gasrem, align 8 + %"$false_654" = load %TName_Bool*, %TName_Bool** %false, align 8 + store %TName_Bool* %"$false_654", %TName_Bool** %"$test_15", align 8, !dbg !124 + br label %"$matchsucc_597" + +"$empty_default_601": ; preds = %"$have_gas_595" + br label %"$matchsucc_597" + +"$matchsucc_597": ; preds = %"$have_gas_652", %"$have_gas_634", %"$empty_default_601" + %"$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 = %"$matchsucc_597" + call void @_out_of_gas() + br label %"$have_gas_658" + +"$have_gas_658": ; preds = %"$out_of_gas_657", %"$matchsucc_597" + %"$consume_659" = sub i64 %"$gasrem_655", 1 + store i64 %"$consume_659", i64* @_gasrem, align 8 %"$input_16" = alloca %Int128, 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" + call void @llvm.dbg.declare(metadata %Int128* %"$input_16", metadata !126, metadata !DIExpression()), !dbg !128 + %"$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_660": ; preds = %"$have_gas_656" +"$out_of_gas_662": ; preds = %"$have_gas_658" call void @_out_of_gas() - br label %"$have_gas_661" + br label %"$have_gas_663" -"$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 - store %Int128 { i128 1844 }, %Int128* %"$input_16", align 8, !dbg !64 - %"$gasrem_663" = load i64, i64* @_gasrem, align 8 - %"$gascmp_664" = icmp ugt i64 1, %"$gasrem_663" - br i1 %"$gascmp_664", label %"$out_of_gas_665", label %"$have_gas_666" +"$have_gas_663": ; preds = %"$out_of_gas_662", %"$have_gas_658" + %"$consume_664" = sub i64 %"$gasrem_660", 1 + store i64 %"$consume_664", i64* @_gasrem, align 8 + store %Int128 { i128 1844 }, %Int128* %"$input_16", align 8, !dbg !129 + %"$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_665": ; preds = %"$have_gas_661" +"$out_of_gas_667": ; preds = %"$have_gas_663" call void @_out_of_gas() - br label %"$have_gas_666" + br label %"$have_gas_668" -"$have_gas_666": ; preds = %"$out_of_gas_665", %"$have_gas_661" - %"$consume_667" = sub i64 %"$gasrem_663", 1 - store i64 %"$consume_667", i64* @_gasrem, align 8 +"$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 %"$resopt_17" = alloca %TName_Option_Int32*, align 8 - %"$gasrem_668" = load i64, i64* @_gasrem, align 8 - %"$gascmp_669" = icmp ugt i64 4, %"$gasrem_668" - br i1 %"$gascmp_669", label %"$out_of_gas_670", label %"$have_gas_671" - -"$out_of_gas_670": ; preds = %"$have_gas_666" - call void @_out_of_gas() - br label %"$have_gas_671" - -"$have_gas_671": ; preds = %"$out_of_gas_670", %"$have_gas_666" - %"$consume_672" = sub i64 %"$gasrem_668", 4 - store i64 %"$consume_672", i64* @_gasrem, align 8 - %"$execptr_load_673" = load i8*, i8** @_execptr, align 8 - %"$to_int32_$input_16_674" = alloca %Int128, align 8 - %"$$input_16_675" = load %Int128, %Int128* %"$input_16", align 8 - store %Int128 %"$$input_16_675", %Int128* %"$to_int32_$input_16_674", align 8 - %"$$to_int32_$input_16_674_676" = bitcast %Int128* %"$to_int32_$input_16_674" to i8* - %"$to_int32_call_677" = call i8* @_to_int32(i8* %"$execptr_load_673", %_TyDescrTy_Typ* @"$TyDescr_Int128_96", i8* %"$$to_int32_$input_16_674_676"), !dbg !65 - %"$to_int32_678" = bitcast i8* %"$to_int32_call_677" to %TName_Option_Int32* - store %TName_Option_Int32* %"$to_int32_678", %TName_Option_Int32** %"$resopt_17", align 8, !dbg !65 - %"$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_671" - call void @_out_of_gas() - br label %"$have_gas_682" - -"$have_gas_682": ; preds = %"$out_of_gas_681", %"$have_gas_671" - %"$consume_683" = sub i64 %"$gasrem_679", 1 - store i64 %"$consume_683", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Option_Int32** %"$resopt_17", metadata !130, metadata !DIExpression()), !dbg !131 + %"$gasrem_670" = load i64, i64* @_gasrem, align 8 + %"$gascmp_671" = icmp ugt i64 4, %"$gasrem_670" + br i1 %"$gascmp_671", label %"$out_of_gas_672", label %"$have_gas_673" + +"$out_of_gas_672": ; preds = %"$have_gas_668" + call void @_out_of_gas() + br label %"$have_gas_673" + +"$have_gas_673": ; preds = %"$out_of_gas_672", %"$have_gas_668" + %"$consume_674" = sub i64 %"$gasrem_670", 4 + store i64 %"$consume_674", i64* @_gasrem, align 8 + %"$execptr_load_675" = load i8*, i8** @_execptr, align 8 + %"$to_int32_$input_16_676" = alloca %Int128, align 8 + %"$$input_16_677" = load %Int128, %Int128* %"$input_16", align 8 + store %Int128 %"$$input_16_677", %Int128* %"$to_int32_$input_16_676", align 8 + %"$$to_int32_$input_16_676_678" = bitcast %Int128* %"$to_int32_$input_16_676" to i8* + %"$to_int32_call_679" = call i8* @_to_int32(i8* %"$execptr_load_675", %_TyDescrTy_Typ* @"$TyDescr_Int128_96", i8* %"$$to_int32_$input_16_676_678"), !dbg !132 + %"$to_int32_680" = bitcast i8* %"$to_int32_call_679" to %TName_Option_Int32* + store %TName_Option_Int32* %"$to_int32_680", %TName_Option_Int32** %"$resopt_17", align 8, !dbg !132 + %"$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_673" + call void @_out_of_gas() + br label %"$have_gas_684" + +"$have_gas_684": ; preds = %"$out_of_gas_683", %"$have_gas_673" + %"$consume_685" = sub i64 %"$gasrem_681", 1 + store i64 %"$consume_685", i64* @_gasrem, align 8 %"$test_18" = alloca %TName_Bool*, align 8 - %"$gasrem_684" = load i64, i64* @_gasrem, align 8 - %"$gascmp_685" = icmp ugt i64 2, %"$gasrem_684" - br i1 %"$gascmp_685", label %"$out_of_gas_686", label %"$have_gas_687" - -"$out_of_gas_686": ; preds = %"$have_gas_682" - call void @_out_of_gas() - br label %"$have_gas_687" - -"$have_gas_687": ; preds = %"$out_of_gas_686", %"$have_gas_682" - %"$consume_688" = sub i64 %"$gasrem_684", 2 - store i64 %"$consume_688", i64* @_gasrem, align 8 - %"$$resopt_17_690" = load %TName_Option_Int32*, %TName_Option_Int32** %"$resopt_17", align 8 - %"$$resopt_17_tag_691" = getelementptr inbounds %TName_Option_Int32, %TName_Option_Int32* %"$$resopt_17_690", i32 0, i32 0 - %"$$resopt_17_tag_692" = load i8, i8* %"$$resopt_17_tag_691", align 1 - switch i8 %"$$resopt_17_tag_692", label %"$empty_default_693" [ - i8 0, label %"$Some_694" - i8 1, label %"$None_739" - ], !dbg !66 - -"$Some_694": ; preds = %"$have_gas_687" - %"$$resopt_17_695" = bitcast %TName_Option_Int32* %"$$resopt_17_690" to %CName_Some_Int32* - %"$res_gep_696" = getelementptr inbounds %CName_Some_Int32, %CName_Some_Int32* %"$$resopt_17_695", i32 0, i32 1 - %"$res_load_697" = load %Int32, %Int32* %"$res_gep_696", align 4 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$test_18", metadata !133, metadata !DIExpression()), !dbg !134 + %"$gasrem_686" = load i64, i64* @_gasrem, align 8 + %"$gascmp_687" = icmp ugt i64 2, %"$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", 2 + store i64 %"$consume_690", i64* @_gasrem, align 8 + %"$$resopt_17_692" = load %TName_Option_Int32*, %TName_Option_Int32** %"$resopt_17", align 8 + %"$$resopt_17_tag_693" = getelementptr inbounds %TName_Option_Int32, %TName_Option_Int32* %"$$resopt_17_692", i32 0, i32 0 + %"$$resopt_17_tag_694" = load i8, i8* %"$$resopt_17_tag_693", align 1 + switch i8 %"$$resopt_17_tag_694", label %"$empty_default_695" [ + i8 0, label %"$Some_696" + i8 1, label %"$None_741" + ], !dbg !135 + +"$Some_696": ; preds = %"$have_gas_689" + %"$$resopt_17_697" = bitcast %TName_Option_Int32* %"$$resopt_17_692" to %CName_Some_Int32* + %"$res_gep_698" = getelementptr inbounds %CName_Some_Int32, %CName_Some_Int32* %"$$resopt_17_697", i32 0, i32 1 + %"$res_load_699" = load %Int32, %Int32* %"$res_gep_698", align 4 %res10 = alloca %Int32, align 8 - store %Int32 %"$res_load_697", %Int32* %res10, align 4 - %"$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" + store %Int32 %"$res_load_699", %Int32* %res10, align 4 + %"$gasrem_700" = load i64, i64* @_gasrem, align 8 + %"$gascmp_701" = icmp ugt i64 1, %"$gasrem_700" + br i1 %"$gascmp_701", label %"$out_of_gas_702", label %"$have_gas_703" -"$out_of_gas_700": ; preds = %"$Some_694" +"$out_of_gas_702": ; preds = %"$Some_696" call void @_out_of_gas() - br label %"$have_gas_701" + br label %"$have_gas_703" -"$have_gas_701": ; preds = %"$out_of_gas_700", %"$Some_694" - %"$consume_702" = sub i64 %"$gasrem_698", 1 - store i64 %"$consume_702", i64* @_gasrem, align 8 +"$have_gas_703": ; preds = %"$out_of_gas_702", %"$Some_696" + %"$consume_704" = sub i64 %"$gasrem_700", 1 + store i64 %"$consume_704", i64* @_gasrem, align 8 %input_11 = alloca %Int32, 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" + call void @llvm.dbg.declare(metadata %Int32* %input_11, metadata !136, metadata !DIExpression()), !dbg !139 + %"$gasrem_705" = load i64, i64* @_gasrem, align 8 + %"$gascmp_706" = icmp ugt i64 1, %"$gasrem_705" + br i1 %"$gascmp_706", label %"$out_of_gas_707", label %"$have_gas_708" -"$out_of_gas_705": ; preds = %"$have_gas_701" +"$out_of_gas_707": ; preds = %"$have_gas_703" call void @_out_of_gas() - br label %"$have_gas_706" + br label %"$have_gas_708" -"$have_gas_706": ; preds = %"$out_of_gas_705", %"$have_gas_701" - %"$consume_707" = sub i64 %"$gasrem_703", 1 - store i64 %"$consume_707", i64* @_gasrem, align 8 - store %Int32 { i32 1844 }, %Int32* %input_11, align 4, !dbg !67 - %"$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" +"$have_gas_708": ; preds = %"$out_of_gas_707", %"$have_gas_703" + %"$consume_709" = sub i64 %"$gasrem_705", 1 + store i64 %"$consume_709", i64* @_gasrem, align 8 + store %Int32 { i32 1844 }, %Int32* %input_11, align 4, !dbg !140 + %"$gasrem_710" = load i64, i64* @_gasrem, align 8 + %"$gascmp_711" = icmp ugt i64 1, %"$gasrem_710" + br i1 %"$gascmp_711", label %"$out_of_gas_712", label %"$have_gas_713" -"$out_of_gas_710": ; preds = %"$have_gas_706" +"$out_of_gas_712": ; preds = %"$have_gas_708" call void @_out_of_gas() - br label %"$have_gas_711" + br label %"$have_gas_713" -"$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 +"$have_gas_713": ; preds = %"$out_of_gas_712", %"$have_gas_708" + %"$consume_714" = sub i64 %"$gasrem_710", 1 + store i64 %"$consume_714", i64* @_gasrem, align 8 %test_12 = alloca %TName_Bool*, align 8 - %"$gasrem_713" = load i64, i64* @_gasrem, align 8 - %"$gascmp_714" = icmp ugt i64 4, %"$gasrem_713" - br i1 %"$gascmp_714", label %"$out_of_gas_715", label %"$have_gas_716" - -"$out_of_gas_715": ; preds = %"$have_gas_711" - call void @_out_of_gas() - br label %"$have_gas_716" - -"$have_gas_716": ; preds = %"$out_of_gas_715", %"$have_gas_711" - %"$consume_717" = sub i64 %"$gasrem_713", 4 - store i64 %"$consume_717", i64* @_gasrem, align 8 - %"$execptr_load_718" = load i8*, i8** @_execptr, align 8 - %"$res_719" = load %Int32, %Int32* %res10, align 4 - %"$input__720" = load %Int32, %Int32* %input_11, align 4 - %"$eq_call_721" = call %TName_Bool* @_eq_Int32(i8* %"$execptr_load_718", %Int32 %"$res_719", %Int32 %"$input__720"), !dbg !70 - store %TName_Bool* %"$eq_call_721", %TName_Bool** %test_12, align 8, !dbg !70 - %"$gasrem_723" = load i64, i64* @_gasrem, align 8 - %"$gascmp_724" = icmp ugt i64 1, %"$gasrem_723" - br i1 %"$gascmp_724", label %"$out_of_gas_725", label %"$have_gas_726" - -"$out_of_gas_725": ; preds = %"$have_gas_716" - call void @_out_of_gas() - br label %"$have_gas_726" - -"$have_gas_726": ; preds = %"$out_of_gas_725", %"$have_gas_716" - %"$consume_727" = sub i64 %"$gasrem_723", 1 - store i64 %"$consume_727", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %test_12, metadata !141, metadata !DIExpression()), !dbg !142 + %"$gasrem_715" = load i64, i64* @_gasrem, align 8 + %"$gascmp_716" = icmp ugt i64 4, %"$gasrem_715" + br i1 %"$gascmp_716", label %"$out_of_gas_717", label %"$have_gas_718" + +"$out_of_gas_717": ; preds = %"$have_gas_713" + call void @_out_of_gas() + br label %"$have_gas_718" + +"$have_gas_718": ; preds = %"$out_of_gas_717", %"$have_gas_713" + %"$consume_719" = sub i64 %"$gasrem_715", 4 + store i64 %"$consume_719", i64* @_gasrem, align 8 + %"$execptr_load_720" = load i8*, i8** @_execptr, align 8 + %"$res_721" = load %Int32, %Int32* %res10, align 4 + %"$input__722" = load %Int32, %Int32* %input_11, align 4 + %"$eq_call_723" = call %TName_Bool* @_eq_Int32(i8* %"$execptr_load_720", %Int32 %"$res_721", %Int32 %"$input__722"), !dbg !143 + store %TName_Bool* %"$eq_call_723", %TName_Bool** %test_12, align 8, !dbg !143 + %"$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_727": ; preds = %"$have_gas_718" + call void @_out_of_gas() + br label %"$have_gas_728" + +"$have_gas_728": ; preds = %"$out_of_gas_727", %"$have_gas_718" + %"$consume_729" = sub i64 %"$gasrem_725", 1 + store i64 %"$consume_729", i64* @_gasrem, align 8 %"$BoolUtils.andb_63" = alloca { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, align 8 - %"$BoolUtils.andb_728" = 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_729" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_728", 0 - %"$BoolUtils.andb_envptr_730" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_728", 1 - %"$$test_15_731" = load %TName_Bool*, %TName_Bool** %"$test_15", align 8 - %"$BoolUtils.andb_call_732" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_729"(i8* %"$BoolUtils.andb_envptr_730", %TName_Bool* %"$$test_15_731"), !dbg !71 - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_732", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_63", align 8, !dbg !71 + %"$BoolUtils.andb_730" = 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_731" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_730", 0 + %"$BoolUtils.andb_envptr_732" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_730", 1 + %"$$test_15_733" = load %TName_Bool*, %TName_Bool** %"$test_15", align 8 + %"$BoolUtils.andb_call_734" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_731"(i8* %"$BoolUtils.andb_envptr_732", %TName_Bool* %"$$test_15_733"), !dbg !144 + store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_734", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_63", align 8, !dbg !144 %"$BoolUtils.andb_64" = alloca %TName_Bool*, align 8 - %"$$BoolUtils.andb_63_733" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_63", align 8 - %"$$BoolUtils.andb_63_fptr_734" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_63_733", 0 - %"$$BoolUtils.andb_63_envptr_735" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_63_733", 1 - %"$test__736" = load %TName_Bool*, %TName_Bool** %test_12, align 8 - %"$$BoolUtils.andb_63_call_737" = call %TName_Bool* %"$$BoolUtils.andb_63_fptr_734"(i8* %"$$BoolUtils.andb_63_envptr_735", %TName_Bool* %"$test__736"), !dbg !71 - store %TName_Bool* %"$$BoolUtils.andb_63_call_737", %TName_Bool** %"$BoolUtils.andb_64", align 8, !dbg !71 - %"$$BoolUtils.andb_64_738" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_64", align 8 - store %TName_Bool* %"$$BoolUtils.andb_64_738", %TName_Bool** %"$test_18", align 8, !dbg !71 - br label %"$matchsucc_689" - -"$None_739": ; preds = %"$have_gas_687" - %"$$resopt_17_740" = bitcast %TName_Option_Int32* %"$$resopt_17_690" to %CName_None_Int32* - %"$gasrem_741" = load i64, i64* @_gasrem, align 8 - %"$gascmp_742" = icmp ugt i64 1, %"$gasrem_741" - br i1 %"$gascmp_742", label %"$out_of_gas_743", label %"$have_gas_744" - -"$out_of_gas_743": ; preds = %"$None_739" - call void @_out_of_gas() - br label %"$have_gas_744" - -"$have_gas_744": ; preds = %"$out_of_gas_743", %"$None_739" - %"$consume_745" = sub i64 %"$gasrem_741", 1 - store i64 %"$consume_745", i64* @_gasrem, align 8 - %"$false_746" = load %TName_Bool*, %TName_Bool** %false, align 8 - store %TName_Bool* %"$false_746", %TName_Bool** %"$test_18", align 8, !dbg !72 - br label %"$matchsucc_689" - -"$empty_default_693": ; preds = %"$have_gas_687" - br label %"$matchsucc_689" - -"$matchsucc_689": ; preds = %"$have_gas_744", %"$have_gas_726", %"$empty_default_693" - %"$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_689" - call void @_out_of_gas() - br label %"$have_gas_750" - -"$have_gas_750": ; preds = %"$out_of_gas_749", %"$matchsucc_689" - %"$consume_751" = sub i64 %"$gasrem_747", 1 - store i64 %"$consume_751", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$BoolUtils.andb_64", metadata !145, metadata !DIExpression()), !dbg !144 + %"$$BoolUtils.andb_63_735" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_63", align 8 + %"$$BoolUtils.andb_63_fptr_736" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_63_735", 0 + %"$$BoolUtils.andb_63_envptr_737" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_63_735", 1 + %"$test__738" = load %TName_Bool*, %TName_Bool** %test_12, align 8 + %"$$BoolUtils.andb_63_call_739" = call %TName_Bool* %"$$BoolUtils.andb_63_fptr_736"(i8* %"$$BoolUtils.andb_63_envptr_737", %TName_Bool* %"$test__738"), !dbg !144 + store %TName_Bool* %"$$BoolUtils.andb_63_call_739", %TName_Bool** %"$BoolUtils.andb_64", align 8, !dbg !144 + %"$$BoolUtils.andb_64_740" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_64", align 8 + store %TName_Bool* %"$$BoolUtils.andb_64_740", %TName_Bool** %"$test_18", align 8, !dbg !144 + br label %"$matchsucc_691" + +"$None_741": ; preds = %"$have_gas_689" + %"$$resopt_17_742" = bitcast %TName_Option_Int32* %"$$resopt_17_692" to %CName_None_Int32* + %"$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 = %"$None_741" + call void @_out_of_gas() + br label %"$have_gas_746" + +"$have_gas_746": ; preds = %"$out_of_gas_745", %"$None_741" + %"$consume_747" = sub i64 %"$gasrem_743", 1 + store i64 %"$consume_747", i64* @_gasrem, align 8 + %"$false_748" = load %TName_Bool*, %TName_Bool** %false, align 8 + store %TName_Bool* %"$false_748", %TName_Bool** %"$test_18", align 8, !dbg !146 + br label %"$matchsucc_691" + +"$empty_default_695": ; preds = %"$have_gas_689" + br label %"$matchsucc_691" + +"$matchsucc_691": ; preds = %"$have_gas_746", %"$have_gas_728", %"$empty_default_695" + %"$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 = %"$matchsucc_691" + call void @_out_of_gas() + br label %"$have_gas_752" + +"$have_gas_752": ; preds = %"$out_of_gas_751", %"$matchsucc_691" + %"$consume_753" = sub i64 %"$gasrem_749", 1 + store i64 %"$consume_753", i64* @_gasrem, align 8 %"$input_19" = alloca %Int256, align 8 - %"$gasrem_752" = load i64, i64* @_gasrem, align 8 - %"$gascmp_753" = icmp ugt i64 1, %"$gasrem_752" - br i1 %"$gascmp_753", label %"$out_of_gas_754", label %"$have_gas_755" + call void @llvm.dbg.declare(metadata %Int256* %"$input_19", metadata !148, metadata !DIExpression()), !dbg !150 + %"$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_754": ; preds = %"$have_gas_750" +"$out_of_gas_756": ; preds = %"$have_gas_752" call void @_out_of_gas() - br label %"$have_gas_755" + br label %"$have_gas_757" -"$have_gas_755": ; preds = %"$out_of_gas_754", %"$have_gas_750" - %"$consume_756" = sub i64 %"$gasrem_752", 1 - store i64 %"$consume_756", i64* @_gasrem, align 8 - store %Int256 { i256 1844 }, %Int256* %"$input_19", align 8, !dbg !74 - %"$gasrem_757" = load i64, i64* @_gasrem, align 8 - %"$gascmp_758" = icmp ugt i64 1, %"$gasrem_757" - br i1 %"$gascmp_758", label %"$out_of_gas_759", label %"$have_gas_760" +"$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 + store %Int256 { i256 1844 }, %Int256* %"$input_19", align 8, !dbg !151 + %"$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_759": ; preds = %"$have_gas_755" +"$out_of_gas_761": ; preds = %"$have_gas_757" call void @_out_of_gas() - br label %"$have_gas_760" + br label %"$have_gas_762" -"$have_gas_760": ; preds = %"$out_of_gas_759", %"$have_gas_755" - %"$consume_761" = sub i64 %"$gasrem_757", 1 - store i64 %"$consume_761", i64* @_gasrem, align 8 +"$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 %"$resopt_20" = alloca %TName_Option_Int32*, align 8 - %"$gasrem_762" = load i64, i64* @_gasrem, align 8 - %"$gascmp_763" = icmp ugt i64 4, %"$gasrem_762" - br i1 %"$gascmp_763", label %"$out_of_gas_764", label %"$have_gas_765" - -"$out_of_gas_764": ; preds = %"$have_gas_760" - call void @_out_of_gas() - br label %"$have_gas_765" - -"$have_gas_765": ; preds = %"$out_of_gas_764", %"$have_gas_760" - %"$consume_766" = sub i64 %"$gasrem_762", 4 - store i64 %"$consume_766", i64* @_gasrem, align 8 - %"$execptr_load_767" = load i8*, i8** @_execptr, align 8 - %"$to_int32_$input_19_768" = alloca %Int256, align 8 - %"$$input_19_769" = load %Int256, %Int256* %"$input_19", align 8 - store %Int256 %"$$input_19_769", %Int256* %"$to_int32_$input_19_768", align 8 - %"$$to_int32_$input_19_768_770" = bitcast %Int256* %"$to_int32_$input_19_768" to i8* - %"$to_int32_call_771" = call i8* @_to_int32(i8* %"$execptr_load_767", %_TyDescrTy_Typ* @"$TyDescr_Int256_100", i8* %"$$to_int32_$input_19_768_770"), !dbg !75 - %"$to_int32_772" = bitcast i8* %"$to_int32_call_771" to %TName_Option_Int32* - store %TName_Option_Int32* %"$to_int32_772", %TName_Option_Int32** %"$resopt_20", align 8, !dbg !75 - %"$gasrem_773" = load i64, i64* @_gasrem, align 8 - %"$gascmp_774" = icmp ugt i64 1, %"$gasrem_773" - br i1 %"$gascmp_774", label %"$out_of_gas_775", label %"$have_gas_776" - -"$out_of_gas_775": ; preds = %"$have_gas_765" - call void @_out_of_gas() - br label %"$have_gas_776" - -"$have_gas_776": ; preds = %"$out_of_gas_775", %"$have_gas_765" - %"$consume_777" = sub i64 %"$gasrem_773", 1 - store i64 %"$consume_777", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Option_Int32** %"$resopt_20", metadata !152, metadata !DIExpression()), !dbg !153 + %"$gasrem_764" = load i64, i64* @_gasrem, align 8 + %"$gascmp_765" = icmp ugt i64 4, %"$gasrem_764" + br i1 %"$gascmp_765", label %"$out_of_gas_766", label %"$have_gas_767" + +"$out_of_gas_766": ; preds = %"$have_gas_762" + call void @_out_of_gas() + br label %"$have_gas_767" + +"$have_gas_767": ; preds = %"$out_of_gas_766", %"$have_gas_762" + %"$consume_768" = sub i64 %"$gasrem_764", 4 + store i64 %"$consume_768", i64* @_gasrem, align 8 + %"$execptr_load_769" = load i8*, i8** @_execptr, align 8 + %"$to_int32_$input_19_770" = alloca %Int256, align 8 + %"$$input_19_771" = load %Int256, %Int256* %"$input_19", align 8 + store %Int256 %"$$input_19_771", %Int256* %"$to_int32_$input_19_770", align 8 + %"$$to_int32_$input_19_770_772" = bitcast %Int256* %"$to_int32_$input_19_770" to i8* + %"$to_int32_call_773" = call i8* @_to_int32(i8* %"$execptr_load_769", %_TyDescrTy_Typ* @"$TyDescr_Int256_100", i8* %"$$to_int32_$input_19_770_772"), !dbg !154 + %"$to_int32_774" = bitcast i8* %"$to_int32_call_773" to %TName_Option_Int32* + store %TName_Option_Int32* %"$to_int32_774", %TName_Option_Int32** %"$resopt_20", align 8, !dbg !154 + %"$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_767" + call void @_out_of_gas() + br label %"$have_gas_778" + +"$have_gas_778": ; preds = %"$out_of_gas_777", %"$have_gas_767" + %"$consume_779" = sub i64 %"$gasrem_775", 1 + store i64 %"$consume_779", i64* @_gasrem, align 8 %"$test_21" = alloca %TName_Bool*, align 8 - %"$gasrem_778" = load i64, i64* @_gasrem, align 8 - %"$gascmp_779" = icmp ugt i64 2, %"$gasrem_778" - br i1 %"$gascmp_779", label %"$out_of_gas_780", label %"$have_gas_781" - -"$out_of_gas_780": ; preds = %"$have_gas_776" - call void @_out_of_gas() - br label %"$have_gas_781" - -"$have_gas_781": ; preds = %"$out_of_gas_780", %"$have_gas_776" - %"$consume_782" = sub i64 %"$gasrem_778", 2 - store i64 %"$consume_782", i64* @_gasrem, align 8 - %"$$resopt_20_784" = load %TName_Option_Int32*, %TName_Option_Int32** %"$resopt_20", align 8 - %"$$resopt_20_tag_785" = getelementptr inbounds %TName_Option_Int32, %TName_Option_Int32* %"$$resopt_20_784", i32 0, i32 0 - %"$$resopt_20_tag_786" = load i8, i8* %"$$resopt_20_tag_785", align 1 - switch i8 %"$$resopt_20_tag_786", label %"$empty_default_787" [ - i8 0, label %"$Some_788" - i8 1, label %"$None_833" - ], !dbg !76 - -"$Some_788": ; preds = %"$have_gas_781" - %"$$resopt_20_789" = bitcast %TName_Option_Int32* %"$$resopt_20_784" to %CName_Some_Int32* - %"$res_gep_790" = getelementptr inbounds %CName_Some_Int32, %CName_Some_Int32* %"$$resopt_20_789", i32 0, i32 1 - %"$res_load_791" = load %Int32, %Int32* %"$res_gep_790", align 4 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$test_21", metadata !155, metadata !DIExpression()), !dbg !156 + %"$gasrem_780" = load i64, i64* @_gasrem, align 8 + %"$gascmp_781" = icmp ugt i64 2, %"$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", 2 + store i64 %"$consume_784", i64* @_gasrem, align 8 + %"$$resopt_20_786" = load %TName_Option_Int32*, %TName_Option_Int32** %"$resopt_20", align 8 + %"$$resopt_20_tag_787" = getelementptr inbounds %TName_Option_Int32, %TName_Option_Int32* %"$$resopt_20_786", i32 0, i32 0 + %"$$resopt_20_tag_788" = load i8, i8* %"$$resopt_20_tag_787", align 1 + switch i8 %"$$resopt_20_tag_788", label %"$empty_default_789" [ + i8 0, label %"$Some_790" + i8 1, label %"$None_835" + ], !dbg !157 + +"$Some_790": ; preds = %"$have_gas_783" + %"$$resopt_20_791" = bitcast %TName_Option_Int32* %"$$resopt_20_786" to %CName_Some_Int32* + %"$res_gep_792" = getelementptr inbounds %CName_Some_Int32, %CName_Some_Int32* %"$$resopt_20_791", i32 0, i32 1 + %"$res_load_793" = load %Int32, %Int32* %"$res_gep_792", align 4 %res13 = alloca %Int32, align 8 - store %Int32 %"$res_load_791", %Int32* %res13, align 4 - %"$gasrem_792" = load i64, i64* @_gasrem, align 8 - %"$gascmp_793" = icmp ugt i64 1, %"$gasrem_792" - br i1 %"$gascmp_793", label %"$out_of_gas_794", label %"$have_gas_795" + store %Int32 %"$res_load_793", %Int32* %res13, align 4 + %"$gasrem_794" = load i64, i64* @_gasrem, align 8 + %"$gascmp_795" = icmp ugt i64 1, %"$gasrem_794" + br i1 %"$gascmp_795", label %"$out_of_gas_796", label %"$have_gas_797" -"$out_of_gas_794": ; preds = %"$Some_788" +"$out_of_gas_796": ; preds = %"$Some_790" call void @_out_of_gas() - br label %"$have_gas_795" + br label %"$have_gas_797" -"$have_gas_795": ; preds = %"$out_of_gas_794", %"$Some_788" - %"$consume_796" = sub i64 %"$gasrem_792", 1 - store i64 %"$consume_796", i64* @_gasrem, align 8 +"$have_gas_797": ; preds = %"$out_of_gas_796", %"$Some_790" + %"$consume_798" = sub i64 %"$gasrem_794", 1 + store i64 %"$consume_798", i64* @_gasrem, align 8 %input_14 = alloca %Int32, align 8 - %"$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" + call void @llvm.dbg.declare(metadata %Int32* %input_14, metadata !158, metadata !DIExpression()), !dbg !161 + %"$gasrem_799" = load i64, i64* @_gasrem, align 8 + %"$gascmp_800" = icmp ugt i64 1, %"$gasrem_799" + br i1 %"$gascmp_800", label %"$out_of_gas_801", label %"$have_gas_802" -"$out_of_gas_799": ; preds = %"$have_gas_795" +"$out_of_gas_801": ; preds = %"$have_gas_797" call void @_out_of_gas() - br label %"$have_gas_800" + br label %"$have_gas_802" -"$have_gas_800": ; preds = %"$out_of_gas_799", %"$have_gas_795" - %"$consume_801" = sub i64 %"$gasrem_797", 1 - store i64 %"$consume_801", i64* @_gasrem, align 8 - store %Int32 { i32 1844 }, %Int32* %input_14, align 4, !dbg !77 - %"$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" +"$have_gas_802": ; preds = %"$out_of_gas_801", %"$have_gas_797" + %"$consume_803" = sub i64 %"$gasrem_799", 1 + store i64 %"$consume_803", i64* @_gasrem, align 8 + store %Int32 { i32 1844 }, %Int32* %input_14, align 4, !dbg !162 + %"$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_804": ; preds = %"$have_gas_800" +"$out_of_gas_806": ; preds = %"$have_gas_802" call void @_out_of_gas() - br label %"$have_gas_805" + br label %"$have_gas_807" -"$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 +"$have_gas_807": ; preds = %"$out_of_gas_806", %"$have_gas_802" + %"$consume_808" = sub i64 %"$gasrem_804", 1 + store i64 %"$consume_808", i64* @_gasrem, align 8 %test_15 = alloca %TName_Bool*, align 8 - %"$gasrem_807" = load i64, i64* @_gasrem, align 8 - %"$gascmp_808" = icmp ugt i64 4, %"$gasrem_807" - br i1 %"$gascmp_808", label %"$out_of_gas_809", label %"$have_gas_810" - -"$out_of_gas_809": ; preds = %"$have_gas_805" - call void @_out_of_gas() - br label %"$have_gas_810" - -"$have_gas_810": ; preds = %"$out_of_gas_809", %"$have_gas_805" - %"$consume_811" = sub i64 %"$gasrem_807", 4 - store i64 %"$consume_811", i64* @_gasrem, align 8 - %"$execptr_load_812" = load i8*, i8** @_execptr, align 8 - %"$res_813" = load %Int32, %Int32* %res13, align 4 - %"$input__814" = load %Int32, %Int32* %input_14, align 4 - %"$eq_call_815" = call %TName_Bool* @_eq_Int32(i8* %"$execptr_load_812", %Int32 %"$res_813", %Int32 %"$input__814"), !dbg !80 - store %TName_Bool* %"$eq_call_815", %TName_Bool** %test_15, align 8, !dbg !80 - %"$gasrem_817" = load i64, i64* @_gasrem, align 8 - %"$gascmp_818" = icmp ugt i64 1, %"$gasrem_817" - br i1 %"$gascmp_818", label %"$out_of_gas_819", label %"$have_gas_820" - -"$out_of_gas_819": ; preds = %"$have_gas_810" - call void @_out_of_gas() - br label %"$have_gas_820" - -"$have_gas_820": ; preds = %"$out_of_gas_819", %"$have_gas_810" - %"$consume_821" = sub i64 %"$gasrem_817", 1 - store i64 %"$consume_821", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %test_15, metadata !163, metadata !DIExpression()), !dbg !164 + %"$gasrem_809" = load i64, i64* @_gasrem, align 8 + %"$gascmp_810" = icmp ugt i64 4, %"$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", 4 + store i64 %"$consume_813", i64* @_gasrem, align 8 + %"$execptr_load_814" = load i8*, i8** @_execptr, align 8 + %"$res_815" = load %Int32, %Int32* %res13, align 4 + %"$input__816" = load %Int32, %Int32* %input_14, align 4 + %"$eq_call_817" = call %TName_Bool* @_eq_Int32(i8* %"$execptr_load_814", %Int32 %"$res_815", %Int32 %"$input__816"), !dbg !165 + store %TName_Bool* %"$eq_call_817", %TName_Bool** %test_15, align 8, !dbg !165 + %"$gasrem_819" = load i64, i64* @_gasrem, align 8 + %"$gascmp_820" = icmp ugt i64 1, %"$gasrem_819" + br i1 %"$gascmp_820", label %"$out_of_gas_821", label %"$have_gas_822" + +"$out_of_gas_821": ; preds = %"$have_gas_812" + call void @_out_of_gas() + br label %"$have_gas_822" + +"$have_gas_822": ; preds = %"$out_of_gas_821", %"$have_gas_812" + %"$consume_823" = sub i64 %"$gasrem_819", 1 + store i64 %"$consume_823", i64* @_gasrem, align 8 %"$BoolUtils.andb_65" = alloca { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, align 8 - %"$BoolUtils.andb_822" = 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_823" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_822", 0 - %"$BoolUtils.andb_envptr_824" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_822", 1 - %"$$test_18_825" = load %TName_Bool*, %TName_Bool** %"$test_18", align 8 - %"$BoolUtils.andb_call_826" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_823"(i8* %"$BoolUtils.andb_envptr_824", %TName_Bool* %"$$test_18_825"), !dbg !81 - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_826", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_65", align 8, !dbg !81 + %"$BoolUtils.andb_824" = 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_825" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_824", 0 + %"$BoolUtils.andb_envptr_826" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_824", 1 + %"$$test_18_827" = load %TName_Bool*, %TName_Bool** %"$test_18", align 8 + %"$BoolUtils.andb_call_828" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_825"(i8* %"$BoolUtils.andb_envptr_826", %TName_Bool* %"$$test_18_827"), !dbg !166 + store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_828", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_65", align 8, !dbg !166 %"$BoolUtils.andb_66" = alloca %TName_Bool*, align 8 - %"$$BoolUtils.andb_65_827" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_65", align 8 - %"$$BoolUtils.andb_65_fptr_828" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_65_827", 0 - %"$$BoolUtils.andb_65_envptr_829" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_65_827", 1 - %"$test__830" = load %TName_Bool*, %TName_Bool** %test_15, align 8 - %"$$BoolUtils.andb_65_call_831" = call %TName_Bool* %"$$BoolUtils.andb_65_fptr_828"(i8* %"$$BoolUtils.andb_65_envptr_829", %TName_Bool* %"$test__830"), !dbg !81 - store %TName_Bool* %"$$BoolUtils.andb_65_call_831", %TName_Bool** %"$BoolUtils.andb_66", align 8, !dbg !81 - %"$$BoolUtils.andb_66_832" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_66", align 8 - store %TName_Bool* %"$$BoolUtils.andb_66_832", %TName_Bool** %"$test_21", align 8, !dbg !81 - br label %"$matchsucc_783" - -"$None_833": ; preds = %"$have_gas_781" - %"$$resopt_20_834" = bitcast %TName_Option_Int32* %"$$resopt_20_784" to %CName_None_Int32* - %"$gasrem_835" = load i64, i64* @_gasrem, align 8 - %"$gascmp_836" = icmp ugt i64 1, %"$gasrem_835" - br i1 %"$gascmp_836", label %"$out_of_gas_837", label %"$have_gas_838" - -"$out_of_gas_837": ; preds = %"$None_833" - call void @_out_of_gas() - br label %"$have_gas_838" - -"$have_gas_838": ; preds = %"$out_of_gas_837", %"$None_833" - %"$consume_839" = sub i64 %"$gasrem_835", 1 - store i64 %"$consume_839", i64* @_gasrem, align 8 - %"$false_840" = load %TName_Bool*, %TName_Bool** %false, align 8 - store %TName_Bool* %"$false_840", %TName_Bool** %"$test_21", align 8, !dbg !82 - br label %"$matchsucc_783" - -"$empty_default_787": ; preds = %"$have_gas_781" - br label %"$matchsucc_783" - -"$matchsucc_783": ; preds = %"$have_gas_838", %"$have_gas_820", %"$empty_default_787" - %"$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 = %"$matchsucc_783" - call void @_out_of_gas() - br label %"$have_gas_844" - -"$have_gas_844": ; preds = %"$out_of_gas_843", %"$matchsucc_783" - %"$consume_845" = sub i64 %"$gasrem_841", 1 - store i64 %"$consume_845", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$BoolUtils.andb_66", metadata !167, metadata !DIExpression()), !dbg !166 + %"$$BoolUtils.andb_65_829" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_65", align 8 + %"$$BoolUtils.andb_65_fptr_830" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_65_829", 0 + %"$$BoolUtils.andb_65_envptr_831" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_65_829", 1 + %"$test__832" = load %TName_Bool*, %TName_Bool** %test_15, align 8 + %"$$BoolUtils.andb_65_call_833" = call %TName_Bool* %"$$BoolUtils.andb_65_fptr_830"(i8* %"$$BoolUtils.andb_65_envptr_831", %TName_Bool* %"$test__832"), !dbg !166 + store %TName_Bool* %"$$BoolUtils.andb_65_call_833", %TName_Bool** %"$BoolUtils.andb_66", align 8, !dbg !166 + %"$$BoolUtils.andb_66_834" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_66", align 8 + store %TName_Bool* %"$$BoolUtils.andb_66_834", %TName_Bool** %"$test_21", align 8, !dbg !166 + br label %"$matchsucc_785" + +"$None_835": ; preds = %"$have_gas_783" + %"$$resopt_20_836" = bitcast %TName_Option_Int32* %"$$resopt_20_786" to %CName_None_Int32* + %"$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 = %"$None_835" + call void @_out_of_gas() + br label %"$have_gas_840" + +"$have_gas_840": ; preds = %"$out_of_gas_839", %"$None_835" + %"$consume_841" = sub i64 %"$gasrem_837", 1 + store i64 %"$consume_841", i64* @_gasrem, align 8 + %"$false_842" = load %TName_Bool*, %TName_Bool** %false, align 8 + store %TName_Bool* %"$false_842", %TName_Bool** %"$test_21", align 8, !dbg !168 + br label %"$matchsucc_785" + +"$empty_default_789": ; preds = %"$have_gas_783" + br label %"$matchsucc_785" + +"$matchsucc_785": ; preds = %"$have_gas_840", %"$have_gas_822", %"$empty_default_789" + %"$gasrem_843" = load i64, i64* @_gasrem, align 8 + %"$gascmp_844" = icmp ugt i64 1, %"$gasrem_843" + br i1 %"$gascmp_844", label %"$out_of_gas_845", label %"$have_gas_846" + +"$out_of_gas_845": ; preds = %"$matchsucc_785" + call void @_out_of_gas() + br label %"$have_gas_846" + +"$have_gas_846": ; preds = %"$out_of_gas_845", %"$matchsucc_785" + %"$consume_847" = sub i64 %"$gasrem_843", 1 + store i64 %"$consume_847", i64* @_gasrem, align 8 %"$input_22" = alloca %Uint64, 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" + call void @llvm.dbg.declare(metadata %Uint64* %"$input_22", metadata !170, metadata !DIExpression()), !dbg !172 + %"$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_848": ; preds = %"$have_gas_844" +"$out_of_gas_850": ; preds = %"$have_gas_846" call void @_out_of_gas() - br label %"$have_gas_849" + br label %"$have_gas_851" -"$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 - store %Uint64 { i64 -9223372036854775808 }, %Uint64* %"$input_22", align 8, !dbg !84 - %"$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" +"$have_gas_851": ; preds = %"$out_of_gas_850", %"$have_gas_846" + %"$consume_852" = sub i64 %"$gasrem_848", 1 + store i64 %"$consume_852", i64* @_gasrem, align 8 + store %Uint64 { i64 -9223372036854775808 }, %Uint64* %"$input_22", align 8, !dbg !173 + %"$gasrem_853" = load i64, i64* @_gasrem, align 8 + %"$gascmp_854" = icmp ugt i64 1, %"$gasrem_853" + br i1 %"$gascmp_854", label %"$out_of_gas_855", label %"$have_gas_856" -"$out_of_gas_853": ; preds = %"$have_gas_849" +"$out_of_gas_855": ; preds = %"$have_gas_851" call void @_out_of_gas() - br label %"$have_gas_854" + br label %"$have_gas_856" -"$have_gas_854": ; preds = %"$out_of_gas_853", %"$have_gas_849" - %"$consume_855" = sub i64 %"$gasrem_851", 1 - store i64 %"$consume_855", i64* @_gasrem, align 8 +"$have_gas_856": ; preds = %"$out_of_gas_855", %"$have_gas_851" + %"$consume_857" = sub i64 %"$gasrem_853", 1 + store i64 %"$consume_857", i64* @_gasrem, align 8 %"$resopt_23" = alloca %TName_Option_Int64*, align 8 - %"$gasrem_856" = load i64, i64* @_gasrem, align 8 - %"$gascmp_857" = icmp ugt i64 4, %"$gasrem_856" - br i1 %"$gascmp_857", label %"$out_of_gas_858", label %"$have_gas_859" - -"$out_of_gas_858": ; preds = %"$have_gas_854" - call void @_out_of_gas() - br label %"$have_gas_859" - -"$have_gas_859": ; preds = %"$out_of_gas_858", %"$have_gas_854" - %"$consume_860" = sub i64 %"$gasrem_856", 4 - store i64 %"$consume_860", i64* @_gasrem, align 8 - %"$execptr_load_861" = load i8*, i8** @_execptr, align 8 - %"$to_int64_$input_22_862" = alloca %Uint64, align 8 - %"$$input_22_863" = load %Uint64, %Uint64* %"$input_22", align 8 - store %Uint64 %"$$input_22_863", %Uint64* %"$to_int64_$input_22_862", align 8 - %"$$to_int64_$input_22_862_864" = bitcast %Uint64* %"$to_int64_$input_22_862" to i8* - %"$to_int64_call_865" = call i8* @_to_int64(i8* %"$execptr_load_861", %_TyDescrTy_Typ* @"$TyDescr_Uint64_94", i8* %"$$to_int64_$input_22_862_864"), !dbg !85 - %"$to_int64_866" = bitcast i8* %"$to_int64_call_865" to %TName_Option_Int64* - store %TName_Option_Int64* %"$to_int64_866", %TName_Option_Int64** %"$resopt_23", align 8, !dbg !85 - %"$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_859" - call void @_out_of_gas() - br label %"$have_gas_870" - -"$have_gas_870": ; preds = %"$out_of_gas_869", %"$have_gas_859" - %"$consume_871" = sub i64 %"$gasrem_867", 1 - store i64 %"$consume_871", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Option_Int64** %"$resopt_23", metadata !174, metadata !DIExpression()), !dbg !177 + %"$gasrem_858" = load i64, i64* @_gasrem, align 8 + %"$gascmp_859" = icmp ugt i64 4, %"$gasrem_858" + br i1 %"$gascmp_859", label %"$out_of_gas_860", label %"$have_gas_861" + +"$out_of_gas_860": ; preds = %"$have_gas_856" + call void @_out_of_gas() + br label %"$have_gas_861" + +"$have_gas_861": ; preds = %"$out_of_gas_860", %"$have_gas_856" + %"$consume_862" = sub i64 %"$gasrem_858", 4 + store i64 %"$consume_862", i64* @_gasrem, align 8 + %"$execptr_load_863" = load i8*, i8** @_execptr, align 8 + %"$to_int64_$input_22_864" = alloca %Uint64, align 8 + %"$$input_22_865" = load %Uint64, %Uint64* %"$input_22", align 8 + store %Uint64 %"$$input_22_865", %Uint64* %"$to_int64_$input_22_864", align 8 + %"$$to_int64_$input_22_864_866" = bitcast %Uint64* %"$to_int64_$input_22_864" to i8* + %"$to_int64_call_867" = call i8* @_to_int64(i8* %"$execptr_load_863", %_TyDescrTy_Typ* @"$TyDescr_Uint64_94", i8* %"$$to_int64_$input_22_864_866"), !dbg !178 + %"$to_int64_868" = bitcast i8* %"$to_int64_call_867" to %TName_Option_Int64* + store %TName_Option_Int64* %"$to_int64_868", %TName_Option_Int64** %"$resopt_23", align 8, !dbg !178 + %"$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_861" + call void @_out_of_gas() + br label %"$have_gas_872" + +"$have_gas_872": ; preds = %"$out_of_gas_871", %"$have_gas_861" + %"$consume_873" = sub i64 %"$gasrem_869", 1 + store i64 %"$consume_873", i64* @_gasrem, align 8 %"$test_24" = alloca %TName_Bool*, align 8 - %"$gasrem_872" = load i64, i64* @_gasrem, align 8 - %"$gascmp_873" = icmp ugt i64 2, %"$gasrem_872" - br i1 %"$gascmp_873", label %"$out_of_gas_874", label %"$have_gas_875" - -"$out_of_gas_874": ; preds = %"$have_gas_870" - call void @_out_of_gas() - br label %"$have_gas_875" - -"$have_gas_875": ; preds = %"$out_of_gas_874", %"$have_gas_870" - %"$consume_876" = sub i64 %"$gasrem_872", 2 - store i64 %"$consume_876", i64* @_gasrem, align 8 - %"$$resopt_23_878" = load %TName_Option_Int64*, %TName_Option_Int64** %"$resopt_23", align 8 - %"$$resopt_23_tag_879" = getelementptr inbounds %TName_Option_Int64, %TName_Option_Int64* %"$$resopt_23_878", i32 0, i32 0 - %"$$resopt_23_tag_880" = load i8, i8* %"$$resopt_23_tag_879", align 1 - switch i8 %"$$resopt_23_tag_880", label %"$empty_default_881" [ - i8 0, label %"$Some_882" - i8 1, label %"$None_892" - ], !dbg !86 - -"$Some_882": ; preds = %"$have_gas_875" - %"$$resopt_23_883" = bitcast %TName_Option_Int64* %"$$resopt_23_878" to %CName_Some_Int64* - %"$$$resopt_23_52_gep_884" = getelementptr inbounds %CName_Some_Int64, %CName_Some_Int64* %"$$resopt_23_883", i32 0, i32 1 - %"$$$resopt_23_52_load_885" = load %Int64, %Int64* %"$$$resopt_23_52_gep_884", align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$test_24", metadata !179, metadata !DIExpression()), !dbg !180 + %"$gasrem_874" = load i64, i64* @_gasrem, align 8 + %"$gascmp_875" = icmp ugt i64 2, %"$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", 2 + store i64 %"$consume_878", i64* @_gasrem, align 8 + %"$$resopt_23_880" = load %TName_Option_Int64*, %TName_Option_Int64** %"$resopt_23", align 8 + %"$$resopt_23_tag_881" = getelementptr inbounds %TName_Option_Int64, %TName_Option_Int64* %"$$resopt_23_880", i32 0, i32 0 + %"$$resopt_23_tag_882" = load i8, i8* %"$$resopt_23_tag_881", align 1 + switch i8 %"$$resopt_23_tag_882", label %"$empty_default_883" [ + i8 0, label %"$Some_884" + i8 1, label %"$None_894" + ], !dbg !181 + +"$Some_884": ; preds = %"$have_gas_877" + %"$$resopt_23_885" = bitcast %TName_Option_Int64* %"$$resopt_23_880" to %CName_Some_Int64* + %"$$$resopt_23_52_gep_886" = getelementptr inbounds %CName_Some_Int64, %CName_Some_Int64* %"$$resopt_23_885", i32 0, i32 1 + %"$$$resopt_23_52_load_887" = load %Int64, %Int64* %"$$$resopt_23_52_gep_886", align 8 %"$$resopt_23_52" = alloca %Int64, align 8 - store %Int64 %"$$$resopt_23_52_load_885", %Int64* %"$$resopt_23_52", align 8 - %"$gasrem_886" = load i64, i64* @_gasrem, align 8 - %"$gascmp_887" = icmp ugt i64 1, %"$gasrem_886" - br i1 %"$gascmp_887", label %"$out_of_gas_888", label %"$have_gas_889" + store %Int64 %"$$$resopt_23_52_load_887", %Int64* %"$$resopt_23_52", 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_888": ; preds = %"$Some_882" +"$out_of_gas_890": ; preds = %"$Some_884" call void @_out_of_gas() - br label %"$have_gas_889" + br label %"$have_gas_891" -"$have_gas_889": ; preds = %"$out_of_gas_888", %"$Some_882" - %"$consume_890" = sub i64 %"$gasrem_886", 1 - store i64 %"$consume_890", i64* @_gasrem, align 8 - %"$false_891" = load %TName_Bool*, %TName_Bool** %false, align 8 - store %TName_Bool* %"$false_891", %TName_Bool** %"$test_24", align 8, !dbg !87 - br label %"$matchsucc_877" +"$have_gas_891": ; preds = %"$out_of_gas_890", %"$Some_884" + %"$consume_892" = sub i64 %"$gasrem_888", 1 + store i64 %"$consume_892", i64* @_gasrem, align 8 + %"$false_893" = load %TName_Bool*, %TName_Bool** %false, align 8 + store %TName_Bool* %"$false_893", %TName_Bool** %"$test_24", align 8, !dbg !182 + br label %"$matchsucc_879" -"$None_892": ; preds = %"$have_gas_875" - %"$$resopt_23_893" = bitcast %TName_Option_Int64* %"$$resopt_23_878" to %CName_None_Int64* - %"$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" +"$None_894": ; preds = %"$have_gas_877" + %"$$resopt_23_895" = bitcast %TName_Option_Int64* %"$$resopt_23_880" to %CName_None_Int64* + %"$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_896": ; preds = %"$None_892" +"$out_of_gas_898": ; preds = %"$None_894" call void @_out_of_gas() - br label %"$have_gas_897" + br label %"$have_gas_899" -"$have_gas_897": ; preds = %"$out_of_gas_896", %"$None_892" - %"$consume_898" = sub i64 %"$gasrem_894", 1 - store i64 %"$consume_898", i64* @_gasrem, align 8 - %"$$test_21_899" = load %TName_Bool*, %TName_Bool** %"$test_21", align 8 - store %TName_Bool* %"$$test_21_899", %TName_Bool** %"$test_24", align 8, !dbg !90 - br label %"$matchsucc_877" +"$have_gas_899": ; preds = %"$out_of_gas_898", %"$None_894" + %"$consume_900" = sub i64 %"$gasrem_896", 1 + store i64 %"$consume_900", i64* @_gasrem, align 8 + %"$$test_21_901" = load %TName_Bool*, %TName_Bool** %"$test_21", align 8 + store %TName_Bool* %"$$test_21_901", %TName_Bool** %"$test_24", align 8, !dbg !185 + br label %"$matchsucc_879" -"$empty_default_881": ; preds = %"$have_gas_875" - br label %"$matchsucc_877" +"$empty_default_883": ; preds = %"$have_gas_877" + br label %"$matchsucc_879" -"$matchsucc_877": ; preds = %"$have_gas_897", %"$have_gas_889", %"$empty_default_881" - %"$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" +"$matchsucc_879": ; preds = %"$have_gas_899", %"$have_gas_891", %"$empty_default_883" + %"$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_902": ; preds = %"$matchsucc_877" +"$out_of_gas_904": ; preds = %"$matchsucc_879" call void @_out_of_gas() - br label %"$have_gas_903" + br label %"$have_gas_905" -"$have_gas_903": ; preds = %"$out_of_gas_902", %"$matchsucc_877" - %"$consume_904" = sub i64 %"$gasrem_900", 1 - store i64 %"$consume_904", i64* @_gasrem, align 8 +"$have_gas_905": ; preds = %"$out_of_gas_904", %"$matchsucc_879" + %"$consume_906" = sub i64 %"$gasrem_902", 1 + store i64 %"$consume_906", i64* @_gasrem, align 8 %"$input_25" = alloca %String, 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" + call void @llvm.dbg.declare(metadata %String* %"$input_25", metadata !187, metadata !DIExpression()), !dbg !188 + %"$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_907": ; preds = %"$have_gas_903" +"$out_of_gas_909": ; preds = %"$have_gas_905" call void @_out_of_gas() - br label %"$have_gas_908" + br label %"$have_gas_910" -"$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 - store %String { i8* getelementptr inbounds ([19 x i8], [19 x i8]* @"$stringlit_910", i32 0, i32 0), i32 19 }, %String* %"$input_25", align 8, !dbg !92 - %"$gasrem_911" = load i64, i64* @_gasrem, align 8 - %"$gascmp_912" = icmp ugt i64 1, %"$gasrem_911" - br i1 %"$gascmp_912", label %"$out_of_gas_913", label %"$have_gas_914" +"$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 ([19 x i8], [19 x i8]* @"$stringlit_912", i32 0, i32 0), i32 19 }, %String* %"$input_25", align 8, !dbg !189 + %"$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_913": ; preds = %"$have_gas_908" +"$out_of_gas_915": ; preds = %"$have_gas_910" call void @_out_of_gas() - br label %"$have_gas_914" + br label %"$have_gas_916" -"$have_gas_914": ; preds = %"$out_of_gas_913", %"$have_gas_908" - %"$consume_915" = sub i64 %"$gasrem_911", 1 - store i64 %"$consume_915", 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 %"$resopt_26" = alloca %TName_Option_Int64*, align 8 - %"$gasrem_916" = load i64, i64* @_gasrem, align 8 - %"$gascmp_917" = icmp ugt i64 4, %"$gasrem_916" - br i1 %"$gascmp_917", label %"$out_of_gas_918", label %"$have_gas_919" - -"$out_of_gas_918": ; preds = %"$have_gas_914" - call void @_out_of_gas() - br label %"$have_gas_919" - -"$have_gas_919": ; preds = %"$out_of_gas_918", %"$have_gas_914" - %"$consume_920" = sub i64 %"$gasrem_916", 4 - store i64 %"$consume_920", i64* @_gasrem, align 8 - %"$execptr_load_921" = load i8*, i8** @_execptr, align 8 - %"$to_int64_$input_25_922" = alloca %String, align 8 - %"$$input_25_923" = load %String, %String* %"$input_25", align 8 - store %String %"$$input_25_923", %String* %"$to_int64_$input_25_922", align 8 - %"$$to_int64_$input_25_922_924" = bitcast %String* %"$to_int64_$input_25_922" to i8* - %"$to_int64_call_925" = call i8* @_to_int64(i8* %"$execptr_load_921", %_TyDescrTy_Typ* @"$TyDescr_String_104", i8* %"$$to_int64_$input_25_922_924"), !dbg !93 - %"$to_int64_926" = bitcast i8* %"$to_int64_call_925" to %TName_Option_Int64* - store %TName_Option_Int64* %"$to_int64_926", %TName_Option_Int64** %"$resopt_26", align 8, !dbg !93 - %"$gasrem_927" = load i64, i64* @_gasrem, align 8 - %"$gascmp_928" = icmp ugt i64 1, %"$gasrem_927" - br i1 %"$gascmp_928", label %"$out_of_gas_929", label %"$have_gas_930" - -"$out_of_gas_929": ; preds = %"$have_gas_919" - call void @_out_of_gas() - br label %"$have_gas_930" - -"$have_gas_930": ; preds = %"$out_of_gas_929", %"$have_gas_919" - %"$consume_931" = sub i64 %"$gasrem_927", 1 - store i64 %"$consume_931", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Option_Int64** %"$resopt_26", metadata !190, metadata !DIExpression()), !dbg !191 + %"$gasrem_918" = load i64, i64* @_gasrem, align 8 + %"$gascmp_919" = icmp ugt i64 4, %"$gasrem_918" + br i1 %"$gascmp_919", label %"$out_of_gas_920", label %"$have_gas_921" + +"$out_of_gas_920": ; preds = %"$have_gas_916" + call void @_out_of_gas() + br label %"$have_gas_921" + +"$have_gas_921": ; preds = %"$out_of_gas_920", %"$have_gas_916" + %"$consume_922" = sub i64 %"$gasrem_918", 4 + store i64 %"$consume_922", i64* @_gasrem, align 8 + %"$execptr_load_923" = load i8*, i8** @_execptr, align 8 + %"$to_int64_$input_25_924" = alloca %String, align 8 + %"$$input_25_925" = load %String, %String* %"$input_25", align 8 + store %String %"$$input_25_925", %String* %"$to_int64_$input_25_924", align 8 + %"$$to_int64_$input_25_924_926" = bitcast %String* %"$to_int64_$input_25_924" to i8* + %"$to_int64_call_927" = call i8* @_to_int64(i8* %"$execptr_load_923", %_TyDescrTy_Typ* @"$TyDescr_String_104", i8* %"$$to_int64_$input_25_924_926"), !dbg !192 + %"$to_int64_928" = bitcast i8* %"$to_int64_call_927" to %TName_Option_Int64* + store %TName_Option_Int64* %"$to_int64_928", %TName_Option_Int64** %"$resopt_26", align 8, !dbg !192 + %"$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_931": ; preds = %"$have_gas_921" + call void @_out_of_gas() + br label %"$have_gas_932" + +"$have_gas_932": ; preds = %"$out_of_gas_931", %"$have_gas_921" + %"$consume_933" = sub i64 %"$gasrem_929", 1 + store i64 %"$consume_933", i64* @_gasrem, align 8 %"$test_27" = alloca %TName_Bool*, align 8 - %"$gasrem_932" = load i64, i64* @_gasrem, align 8 - %"$gascmp_933" = icmp ugt i64 2, %"$gasrem_932" - br i1 %"$gascmp_933", label %"$out_of_gas_934", label %"$have_gas_935" - -"$out_of_gas_934": ; preds = %"$have_gas_930" - call void @_out_of_gas() - br label %"$have_gas_935" - -"$have_gas_935": ; preds = %"$out_of_gas_934", %"$have_gas_930" - %"$consume_936" = sub i64 %"$gasrem_932", 2 - store i64 %"$consume_936", i64* @_gasrem, align 8 - %"$$resopt_26_938" = load %TName_Option_Int64*, %TName_Option_Int64** %"$resopt_26", align 8 - %"$$resopt_26_tag_939" = getelementptr inbounds %TName_Option_Int64, %TName_Option_Int64* %"$$resopt_26_938", i32 0, i32 0 - %"$$resopt_26_tag_940" = load i8, i8* %"$$resopt_26_tag_939", align 1 - switch i8 %"$$resopt_26_tag_940", label %"$empty_default_941" [ - i8 0, label %"$Some_942" - i8 1, label %"$None_952" - ], !dbg !94 - -"$Some_942": ; preds = %"$have_gas_935" - %"$$resopt_26_943" = bitcast %TName_Option_Int64* %"$$resopt_26_938" to %CName_Some_Int64* - %"$$$resopt_26_53_gep_944" = getelementptr inbounds %CName_Some_Int64, %CName_Some_Int64* %"$$resopt_26_943", i32 0, i32 1 - %"$$$resopt_26_53_load_945" = load %Int64, %Int64* %"$$$resopt_26_53_gep_944", align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$test_27", metadata !193, metadata !DIExpression()), !dbg !194 + %"$gasrem_934" = load i64, i64* @_gasrem, align 8 + %"$gascmp_935" = icmp ugt i64 2, %"$gasrem_934" + br i1 %"$gascmp_935", label %"$out_of_gas_936", label %"$have_gas_937" + +"$out_of_gas_936": ; preds = %"$have_gas_932" + call void @_out_of_gas() + br label %"$have_gas_937" + +"$have_gas_937": ; preds = %"$out_of_gas_936", %"$have_gas_932" + %"$consume_938" = sub i64 %"$gasrem_934", 2 + store i64 %"$consume_938", i64* @_gasrem, align 8 + %"$$resopt_26_940" = load %TName_Option_Int64*, %TName_Option_Int64** %"$resopt_26", align 8 + %"$$resopt_26_tag_941" = getelementptr inbounds %TName_Option_Int64, %TName_Option_Int64* %"$$resopt_26_940", i32 0, i32 0 + %"$$resopt_26_tag_942" = load i8, i8* %"$$resopt_26_tag_941", align 1 + switch i8 %"$$resopt_26_tag_942", label %"$empty_default_943" [ + i8 0, label %"$Some_944" + i8 1, label %"$None_954" + ], !dbg !195 + +"$Some_944": ; preds = %"$have_gas_937" + %"$$resopt_26_945" = bitcast %TName_Option_Int64* %"$$resopt_26_940" to %CName_Some_Int64* + %"$$$resopt_26_53_gep_946" = getelementptr inbounds %CName_Some_Int64, %CName_Some_Int64* %"$$resopt_26_945", i32 0, i32 1 + %"$$$resopt_26_53_load_947" = load %Int64, %Int64* %"$$$resopt_26_53_gep_946", align 8 %"$$resopt_26_53" = alloca %Int64, align 8 - store %Int64 %"$$$resopt_26_53_load_945", %Int64* %"$$resopt_26_53", align 8 - %"$gasrem_946" = load i64, i64* @_gasrem, align 8 - %"$gascmp_947" = icmp ugt i64 1, %"$gasrem_946" - br i1 %"$gascmp_947", label %"$out_of_gas_948", label %"$have_gas_949" + store %Int64 %"$$$resopt_26_53_load_947", %Int64* %"$$resopt_26_53", align 8 + %"$gasrem_948" = load i64, i64* @_gasrem, align 8 + %"$gascmp_949" = icmp ugt i64 1, %"$gasrem_948" + br i1 %"$gascmp_949", label %"$out_of_gas_950", label %"$have_gas_951" -"$out_of_gas_948": ; preds = %"$Some_942" +"$out_of_gas_950": ; preds = %"$Some_944" call void @_out_of_gas() - br label %"$have_gas_949" + br label %"$have_gas_951" -"$have_gas_949": ; preds = %"$out_of_gas_948", %"$Some_942" - %"$consume_950" = sub i64 %"$gasrem_946", 1 - store i64 %"$consume_950", i64* @_gasrem, align 8 - %"$false_951" = load %TName_Bool*, %TName_Bool** %false, align 8 - store %TName_Bool* %"$false_951", %TName_Bool** %"$test_27", align 8, !dbg !95 - br label %"$matchsucc_937" +"$have_gas_951": ; preds = %"$out_of_gas_950", %"$Some_944" + %"$consume_952" = sub i64 %"$gasrem_948", 1 + store i64 %"$consume_952", i64* @_gasrem, align 8 + %"$false_953" = load %TName_Bool*, %TName_Bool** %false, align 8 + store %TName_Bool* %"$false_953", %TName_Bool** %"$test_27", align 8, !dbg !196 + br label %"$matchsucc_939" -"$None_952": ; preds = %"$have_gas_935" - %"$$resopt_26_953" = bitcast %TName_Option_Int64* %"$$resopt_26_938" to %CName_None_Int64* - %"$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" +"$None_954": ; preds = %"$have_gas_937" + %"$$resopt_26_955" = bitcast %TName_Option_Int64* %"$$resopt_26_940" to %CName_None_Int64* + %"$gasrem_956" = load i64, i64* @_gasrem, align 8 + %"$gascmp_957" = icmp ugt i64 1, %"$gasrem_956" + br i1 %"$gascmp_957", label %"$out_of_gas_958", label %"$have_gas_959" -"$out_of_gas_956": ; preds = %"$None_952" +"$out_of_gas_958": ; preds = %"$None_954" call void @_out_of_gas() - br label %"$have_gas_957" + br label %"$have_gas_959" -"$have_gas_957": ; preds = %"$out_of_gas_956", %"$None_952" - %"$consume_958" = sub i64 %"$gasrem_954", 1 - store i64 %"$consume_958", i64* @_gasrem, align 8 - %"$$test_24_959" = load %TName_Bool*, %TName_Bool** %"$test_24", align 8 - store %TName_Bool* %"$$test_24_959", %TName_Bool** %"$test_27", align 8, !dbg !98 - br label %"$matchsucc_937" +"$have_gas_959": ; preds = %"$out_of_gas_958", %"$None_954" + %"$consume_960" = sub i64 %"$gasrem_956", 1 + store i64 %"$consume_960", i64* @_gasrem, align 8 + %"$$test_24_961" = load %TName_Bool*, %TName_Bool** %"$test_24", align 8 + store %TName_Bool* %"$$test_24_961", %TName_Bool** %"$test_27", align 8, !dbg !199 + br label %"$matchsucc_939" -"$empty_default_941": ; preds = %"$have_gas_935" - br label %"$matchsucc_937" +"$empty_default_943": ; preds = %"$have_gas_937" + br label %"$matchsucc_939" -"$matchsucc_937": ; preds = %"$have_gas_957", %"$have_gas_949", %"$empty_default_941" - %"$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" +"$matchsucc_939": ; preds = %"$have_gas_959", %"$have_gas_951", %"$empty_default_943" + %"$gasrem_962" = load i64, i64* @_gasrem, align 8 + %"$gascmp_963" = icmp ugt i64 1, %"$gasrem_962" + br i1 %"$gascmp_963", label %"$out_of_gas_964", label %"$have_gas_965" -"$out_of_gas_962": ; preds = %"$matchsucc_937" +"$out_of_gas_964": ; preds = %"$matchsucc_939" call void @_out_of_gas() - br label %"$have_gas_963" + br label %"$have_gas_965" -"$have_gas_963": ; preds = %"$out_of_gas_962", %"$matchsucc_937" - %"$consume_964" = sub i64 %"$gasrem_960", 1 - store i64 %"$consume_964", i64* @_gasrem, align 8 +"$have_gas_965": ; preds = %"$out_of_gas_964", %"$matchsucc_939" + %"$consume_966" = sub i64 %"$gasrem_962", 1 + store i64 %"$consume_966", i64* @_gasrem, align 8 %"$input_28" = alloca %Uint64, align 8 - %"$gasrem_965" = load i64, i64* @_gasrem, align 8 - %"$gascmp_966" = icmp ugt i64 1, %"$gasrem_965" - br i1 %"$gascmp_966", label %"$out_of_gas_967", label %"$have_gas_968" + call void @llvm.dbg.declare(metadata %Uint64* %"$input_28", metadata !201, metadata !DIExpression()), !dbg !202 + %"$gasrem_967" = load i64, i64* @_gasrem, align 8 + %"$gascmp_968" = icmp ugt i64 1, %"$gasrem_967" + br i1 %"$gascmp_968", label %"$out_of_gas_969", label %"$have_gas_970" -"$out_of_gas_967": ; preds = %"$have_gas_963" +"$out_of_gas_969": ; preds = %"$have_gas_965" call void @_out_of_gas() - br label %"$have_gas_968" + br label %"$have_gas_970" -"$have_gas_968": ; preds = %"$out_of_gas_967", %"$have_gas_963" - %"$consume_969" = sub i64 %"$gasrem_965", 1 - store i64 %"$consume_969", i64* @_gasrem, align 8 - store %Uint64 { i64 9223372036854775807 }, %Uint64* %"$input_28", align 8, !dbg !100 - %"$gasrem_970" = load i64, i64* @_gasrem, align 8 - %"$gascmp_971" = icmp ugt i64 1, %"$gasrem_970" - br i1 %"$gascmp_971", label %"$out_of_gas_972", label %"$have_gas_973" +"$have_gas_970": ; preds = %"$out_of_gas_969", %"$have_gas_965" + %"$consume_971" = sub i64 %"$gasrem_967", 1 + store i64 %"$consume_971", i64* @_gasrem, align 8 + store %Uint64 { i64 9223372036854775807 }, %Uint64* %"$input_28", align 8, !dbg !203 + %"$gasrem_972" = load i64, i64* @_gasrem, align 8 + %"$gascmp_973" = icmp ugt i64 1, %"$gasrem_972" + br i1 %"$gascmp_973", label %"$out_of_gas_974", label %"$have_gas_975" -"$out_of_gas_972": ; preds = %"$have_gas_968" +"$out_of_gas_974": ; preds = %"$have_gas_970" call void @_out_of_gas() - br label %"$have_gas_973" + br label %"$have_gas_975" -"$have_gas_973": ; preds = %"$out_of_gas_972", %"$have_gas_968" - %"$consume_974" = sub i64 %"$gasrem_970", 1 - store i64 %"$consume_974", i64* @_gasrem, align 8 +"$have_gas_975": ; preds = %"$out_of_gas_974", %"$have_gas_970" + %"$consume_976" = sub i64 %"$gasrem_972", 1 + store i64 %"$consume_976", i64* @_gasrem, align 8 %"$resopt_29" = alloca %TName_Option_Int64*, align 8 - %"$gasrem_975" = load i64, i64* @_gasrem, align 8 - %"$gascmp_976" = icmp ugt i64 4, %"$gasrem_975" - br i1 %"$gascmp_976", label %"$out_of_gas_977", label %"$have_gas_978" - -"$out_of_gas_977": ; preds = %"$have_gas_973" - call void @_out_of_gas() - br label %"$have_gas_978" - -"$have_gas_978": ; preds = %"$out_of_gas_977", %"$have_gas_973" - %"$consume_979" = sub i64 %"$gasrem_975", 4 - store i64 %"$consume_979", i64* @_gasrem, align 8 - %"$execptr_load_980" = load i8*, i8** @_execptr, align 8 - %"$to_int64_$input_28_981" = alloca %Uint64, align 8 - %"$$input_28_982" = load %Uint64, %Uint64* %"$input_28", align 8 - store %Uint64 %"$$input_28_982", %Uint64* %"$to_int64_$input_28_981", align 8 - %"$$to_int64_$input_28_981_983" = bitcast %Uint64* %"$to_int64_$input_28_981" to i8* - %"$to_int64_call_984" = call i8* @_to_int64(i8* %"$execptr_load_980", %_TyDescrTy_Typ* @"$TyDescr_Uint64_94", i8* %"$$to_int64_$input_28_981_983"), !dbg !101 - %"$to_int64_985" = bitcast i8* %"$to_int64_call_984" to %TName_Option_Int64* - store %TName_Option_Int64* %"$to_int64_985", %TName_Option_Int64** %"$resopt_29", align 8, !dbg !101 - %"$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_978" - call void @_out_of_gas() - br label %"$have_gas_989" - -"$have_gas_989": ; preds = %"$out_of_gas_988", %"$have_gas_978" - %"$consume_990" = sub i64 %"$gasrem_986", 1 - store i64 %"$consume_990", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Option_Int64** %"$resopt_29", metadata !204, metadata !DIExpression()), !dbg !205 + %"$gasrem_977" = load i64, i64* @_gasrem, align 8 + %"$gascmp_978" = icmp ugt i64 4, %"$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", 4 + store i64 %"$consume_981", i64* @_gasrem, align 8 + %"$execptr_load_982" = load i8*, i8** @_execptr, align 8 + %"$to_int64_$input_28_983" = alloca %Uint64, align 8 + %"$$input_28_984" = load %Uint64, %Uint64* %"$input_28", align 8 + store %Uint64 %"$$input_28_984", %Uint64* %"$to_int64_$input_28_983", align 8 + %"$$to_int64_$input_28_983_985" = bitcast %Uint64* %"$to_int64_$input_28_983" to i8* + %"$to_int64_call_986" = call i8* @_to_int64(i8* %"$execptr_load_982", %_TyDescrTy_Typ* @"$TyDescr_Uint64_94", i8* %"$$to_int64_$input_28_983_985"), !dbg !206 + %"$to_int64_987" = bitcast i8* %"$to_int64_call_986" to %TName_Option_Int64* + store %TName_Option_Int64* %"$to_int64_987", %TName_Option_Int64** %"$resopt_29", align 8, !dbg !206 + %"$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 = %"$have_gas_980" + call void @_out_of_gas() + br label %"$have_gas_991" + +"$have_gas_991": ; preds = %"$out_of_gas_990", %"$have_gas_980" + %"$consume_992" = sub i64 %"$gasrem_988", 1 + store i64 %"$consume_992", i64* @_gasrem, align 8 %"$test_30" = alloca %TName_Bool*, align 8 - %"$gasrem_991" = load i64, i64* @_gasrem, align 8 - %"$gascmp_992" = icmp ugt i64 2, %"$gasrem_991" - br i1 %"$gascmp_992", label %"$out_of_gas_993", label %"$have_gas_994" - -"$out_of_gas_993": ; preds = %"$have_gas_989" - call void @_out_of_gas() - br label %"$have_gas_994" - -"$have_gas_994": ; preds = %"$out_of_gas_993", %"$have_gas_989" - %"$consume_995" = sub i64 %"$gasrem_991", 2 - store i64 %"$consume_995", i64* @_gasrem, align 8 - %"$$resopt_29_997" = load %TName_Option_Int64*, %TName_Option_Int64** %"$resopt_29", align 8 - %"$$resopt_29_tag_998" = getelementptr inbounds %TName_Option_Int64, %TName_Option_Int64* %"$$resopt_29_997", i32 0, i32 0 - %"$$resopt_29_tag_999" = load i8, i8* %"$$resopt_29_tag_998", align 1 - switch i8 %"$$resopt_29_tag_999", label %"$empty_default_1000" [ - i8 0, label %"$Some_1001" - i8 1, label %"$None_1046" - ], !dbg !102 - -"$Some_1001": ; preds = %"$have_gas_994" - %"$$resopt_29_1002" = bitcast %TName_Option_Int64* %"$$resopt_29_997" to %CName_Some_Int64* - %"$res_gep_1003" = getelementptr inbounds %CName_Some_Int64, %CName_Some_Int64* %"$$resopt_29_1002", i32 0, i32 1 - %"$res_load_1004" = load %Int64, %Int64* %"$res_gep_1003", align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$test_30", metadata !207, metadata !DIExpression()), !dbg !208 + %"$gasrem_993" = load i64, i64* @_gasrem, align 8 + %"$gascmp_994" = icmp ugt i64 2, %"$gasrem_993" + br i1 %"$gascmp_994", label %"$out_of_gas_995", label %"$have_gas_996" + +"$out_of_gas_995": ; preds = %"$have_gas_991" + call void @_out_of_gas() + br label %"$have_gas_996" + +"$have_gas_996": ; preds = %"$out_of_gas_995", %"$have_gas_991" + %"$consume_997" = sub i64 %"$gasrem_993", 2 + store i64 %"$consume_997", i64* @_gasrem, align 8 + %"$$resopt_29_999" = load %TName_Option_Int64*, %TName_Option_Int64** %"$resopt_29", align 8 + %"$$resopt_29_tag_1000" = getelementptr inbounds %TName_Option_Int64, %TName_Option_Int64* %"$$resopt_29_999", i32 0, i32 0 + %"$$resopt_29_tag_1001" = load i8, i8* %"$$resopt_29_tag_1000", align 1 + switch i8 %"$$resopt_29_tag_1001", label %"$empty_default_1002" [ + i8 0, label %"$Some_1003" + i8 1, label %"$None_1048" + ], !dbg !209 + +"$Some_1003": ; preds = %"$have_gas_996" + %"$$resopt_29_1004" = bitcast %TName_Option_Int64* %"$$resopt_29_999" to %CName_Some_Int64* + %"$res_gep_1005" = getelementptr inbounds %CName_Some_Int64, %CName_Some_Int64* %"$$resopt_29_1004", i32 0, i32 1 + %"$res_load_1006" = load %Int64, %Int64* %"$res_gep_1005", align 8 %res16 = alloca %Int64, align 8 - store %Int64 %"$res_load_1004", %Int64* %res16, align 8 - %"$gasrem_1005" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1006" = icmp ugt i64 1, %"$gasrem_1005" - br i1 %"$gascmp_1006", label %"$out_of_gas_1007", label %"$have_gas_1008" + store %Int64 %"$res_load_1006", %Int64* %res16, align 8 + %"$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_1007": ; preds = %"$Some_1001" +"$out_of_gas_1009": ; preds = %"$Some_1003" call void @_out_of_gas() - br label %"$have_gas_1008" + br label %"$have_gas_1010" -"$have_gas_1008": ; preds = %"$out_of_gas_1007", %"$Some_1001" - %"$consume_1009" = sub i64 %"$gasrem_1005", 1 - store i64 %"$consume_1009", i64* @_gasrem, align 8 +"$have_gas_1010": ; preds = %"$out_of_gas_1009", %"$Some_1003" + %"$consume_1011" = sub i64 %"$gasrem_1007", 1 + store i64 %"$consume_1011", i64* @_gasrem, align 8 %input_17 = alloca %Int64, align 8 - %"$gasrem_1010" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1011" = icmp ugt i64 1, %"$gasrem_1010" - br i1 %"$gascmp_1011", label %"$out_of_gas_1012", label %"$have_gas_1013" + call void @llvm.dbg.declare(metadata %Int64* %input_17, metadata !210, metadata !DIExpression()), !dbg !214 + %"$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_1012": ; preds = %"$have_gas_1008" +"$out_of_gas_1014": ; preds = %"$have_gas_1010" call void @_out_of_gas() - br label %"$have_gas_1013" + br label %"$have_gas_1015" -"$have_gas_1013": ; preds = %"$out_of_gas_1012", %"$have_gas_1008" - %"$consume_1014" = sub i64 %"$gasrem_1010", 1 - store i64 %"$consume_1014", i64* @_gasrem, align 8 - store %Int64 { i64 9223372036854775807 }, %Int64* %input_17, align 8, !dbg !103 - %"$gasrem_1015" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1016" = icmp ugt i64 1, %"$gasrem_1015" - br i1 %"$gascmp_1016", label %"$out_of_gas_1017", label %"$have_gas_1018" +"$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 + store %Int64 { i64 9223372036854775807 }, %Int64* %input_17, align 8, !dbg !215 + %"$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_1017": ; preds = %"$have_gas_1013" +"$out_of_gas_1019": ; preds = %"$have_gas_1015" call void @_out_of_gas() - br label %"$have_gas_1018" + br label %"$have_gas_1020" -"$have_gas_1018": ; preds = %"$out_of_gas_1017", %"$have_gas_1013" - %"$consume_1019" = sub i64 %"$gasrem_1015", 1 - store i64 %"$consume_1019", i64* @_gasrem, align 8 +"$have_gas_1020": ; preds = %"$out_of_gas_1019", %"$have_gas_1015" + %"$consume_1021" = sub i64 %"$gasrem_1017", 1 + store i64 %"$consume_1021", i64* @_gasrem, align 8 %test_18 = alloca %TName_Bool*, align 8 - %"$gasrem_1020" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1021" = icmp ugt i64 4, %"$gasrem_1020" - br i1 %"$gascmp_1021", label %"$out_of_gas_1022", label %"$have_gas_1023" - -"$out_of_gas_1022": ; preds = %"$have_gas_1018" - call void @_out_of_gas() - br label %"$have_gas_1023" - -"$have_gas_1023": ; preds = %"$out_of_gas_1022", %"$have_gas_1018" - %"$consume_1024" = sub i64 %"$gasrem_1020", 4 - store i64 %"$consume_1024", i64* @_gasrem, align 8 - %"$execptr_load_1025" = load i8*, i8** @_execptr, align 8 - %"$res_1026" = load %Int64, %Int64* %res16, align 8 - %"$input__1027" = load %Int64, %Int64* %input_17, align 8 - %"$eq_call_1028" = call %TName_Bool* @_eq_Int64(i8* %"$execptr_load_1025", %Int64 %"$res_1026", %Int64 %"$input__1027"), !dbg !106 - store %TName_Bool* %"$eq_call_1028", %TName_Bool** %test_18, align 8, !dbg !106 - %"$gasrem_1030" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1031" = icmp ugt i64 1, %"$gasrem_1030" - br i1 %"$gascmp_1031", label %"$out_of_gas_1032", label %"$have_gas_1033" - -"$out_of_gas_1032": ; preds = %"$have_gas_1023" - call void @_out_of_gas() - br label %"$have_gas_1033" - -"$have_gas_1033": ; preds = %"$out_of_gas_1032", %"$have_gas_1023" - %"$consume_1034" = sub i64 %"$gasrem_1030", 1 - store i64 %"$consume_1034", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %test_18, metadata !216, metadata !DIExpression()), !dbg !217 + %"$gasrem_1022" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1023" = icmp ugt i64 4, %"$gasrem_1022" + br i1 %"$gascmp_1023", label %"$out_of_gas_1024", label %"$have_gas_1025" + +"$out_of_gas_1024": ; preds = %"$have_gas_1020" + call void @_out_of_gas() + br label %"$have_gas_1025" + +"$have_gas_1025": ; preds = %"$out_of_gas_1024", %"$have_gas_1020" + %"$consume_1026" = sub i64 %"$gasrem_1022", 4 + store i64 %"$consume_1026", i64* @_gasrem, align 8 + %"$execptr_load_1027" = load i8*, i8** @_execptr, align 8 + %"$res_1028" = load %Int64, %Int64* %res16, align 8 + %"$input__1029" = load %Int64, %Int64* %input_17, align 8 + %"$eq_call_1030" = call %TName_Bool* @_eq_Int64(i8* %"$execptr_load_1027", %Int64 %"$res_1028", %Int64 %"$input__1029"), !dbg !218 + store %TName_Bool* %"$eq_call_1030", %TName_Bool** %test_18, align 8, !dbg !218 + %"$gasrem_1032" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1033" = icmp ugt i64 1, %"$gasrem_1032" + br i1 %"$gascmp_1033", label %"$out_of_gas_1034", label %"$have_gas_1035" + +"$out_of_gas_1034": ; preds = %"$have_gas_1025" + call void @_out_of_gas() + br label %"$have_gas_1035" + +"$have_gas_1035": ; preds = %"$out_of_gas_1034", %"$have_gas_1025" + %"$consume_1036" = sub i64 %"$gasrem_1032", 1 + store i64 %"$consume_1036", i64* @_gasrem, align 8 %"$BoolUtils.andb_67" = alloca { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, align 8 - %"$BoolUtils.andb_1035" = 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_1036" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_1035", 0 - %"$BoolUtils.andb_envptr_1037" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_1035", 1 - %"$$test_27_1038" = load %TName_Bool*, %TName_Bool** %"$test_27", align 8 - %"$BoolUtils.andb_call_1039" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_1036"(i8* %"$BoolUtils.andb_envptr_1037", %TName_Bool* %"$$test_27_1038"), !dbg !107 - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_1039", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_67", align 8, !dbg !107 + %"$BoolUtils.andb_1037" = 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_1038" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_1037", 0 + %"$BoolUtils.andb_envptr_1039" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_1037", 1 + %"$$test_27_1040" = load %TName_Bool*, %TName_Bool** %"$test_27", align 8 + %"$BoolUtils.andb_call_1041" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_1038"(i8* %"$BoolUtils.andb_envptr_1039", %TName_Bool* %"$$test_27_1040"), !dbg !219 + store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_1041", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_67", align 8, !dbg !219 %"$BoolUtils.andb_68" = alloca %TName_Bool*, align 8 - %"$$BoolUtils.andb_67_1040" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_67", align 8 - %"$$BoolUtils.andb_67_fptr_1041" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_67_1040", 0 - %"$$BoolUtils.andb_67_envptr_1042" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_67_1040", 1 - %"$test__1043" = load %TName_Bool*, %TName_Bool** %test_18, align 8 - %"$$BoolUtils.andb_67_call_1044" = call %TName_Bool* %"$$BoolUtils.andb_67_fptr_1041"(i8* %"$$BoolUtils.andb_67_envptr_1042", %TName_Bool* %"$test__1043"), !dbg !107 - store %TName_Bool* %"$$BoolUtils.andb_67_call_1044", %TName_Bool** %"$BoolUtils.andb_68", align 8, !dbg !107 - %"$$BoolUtils.andb_68_1045" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_68", align 8 - store %TName_Bool* %"$$BoolUtils.andb_68_1045", %TName_Bool** %"$test_30", align 8, !dbg !107 - br label %"$matchsucc_996" - -"$None_1046": ; preds = %"$have_gas_994" - %"$$resopt_29_1047" = bitcast %TName_Option_Int64* %"$$resopt_29_997" to %CName_None_Int64* - %"$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 = %"$None_1046" - call void @_out_of_gas() - br label %"$have_gas_1051" - -"$have_gas_1051": ; preds = %"$out_of_gas_1050", %"$None_1046" - %"$consume_1052" = sub i64 %"$gasrem_1048", 1 - store i64 %"$consume_1052", i64* @_gasrem, align 8 - %"$false_1053" = load %TName_Bool*, %TName_Bool** %false, align 8 - store %TName_Bool* %"$false_1053", %TName_Bool** %"$test_30", align 8, !dbg !108 - br label %"$matchsucc_996" - -"$empty_default_1000": ; preds = %"$have_gas_994" - br label %"$matchsucc_996" - -"$matchsucc_996": ; preds = %"$have_gas_1051", %"$have_gas_1033", %"$empty_default_1000" - %"$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_1056": ; preds = %"$matchsucc_996" - call void @_out_of_gas() - br label %"$have_gas_1057" - -"$have_gas_1057": ; preds = %"$out_of_gas_1056", %"$matchsucc_996" - %"$consume_1058" = sub i64 %"$gasrem_1054", 1 - store i64 %"$consume_1058", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$BoolUtils.andb_68", metadata !220, metadata !DIExpression()), !dbg !219 + %"$$BoolUtils.andb_67_1042" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_67", align 8 + %"$$BoolUtils.andb_67_fptr_1043" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_67_1042", 0 + %"$$BoolUtils.andb_67_envptr_1044" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_67_1042", 1 + %"$test__1045" = load %TName_Bool*, %TName_Bool** %test_18, align 8 + %"$$BoolUtils.andb_67_call_1046" = call %TName_Bool* %"$$BoolUtils.andb_67_fptr_1043"(i8* %"$$BoolUtils.andb_67_envptr_1044", %TName_Bool* %"$test__1045"), !dbg !219 + store %TName_Bool* %"$$BoolUtils.andb_67_call_1046", %TName_Bool** %"$BoolUtils.andb_68", align 8, !dbg !219 + %"$$BoolUtils.andb_68_1047" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_68", align 8 + store %TName_Bool* %"$$BoolUtils.andb_68_1047", %TName_Bool** %"$test_30", align 8, !dbg !219 + br label %"$matchsucc_998" + +"$None_1048": ; preds = %"$have_gas_996" + %"$$resopt_29_1049" = bitcast %TName_Option_Int64* %"$$resopt_29_999" to %CName_None_Int64* + %"$gasrem_1050" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1051" = icmp ugt i64 1, %"$gasrem_1050" + br i1 %"$gascmp_1051", label %"$out_of_gas_1052", label %"$have_gas_1053" + +"$out_of_gas_1052": ; preds = %"$None_1048" + call void @_out_of_gas() + br label %"$have_gas_1053" + +"$have_gas_1053": ; preds = %"$out_of_gas_1052", %"$None_1048" + %"$consume_1054" = sub i64 %"$gasrem_1050", 1 + store i64 %"$consume_1054", i64* @_gasrem, align 8 + %"$false_1055" = load %TName_Bool*, %TName_Bool** %false, align 8 + store %TName_Bool* %"$false_1055", %TName_Bool** %"$test_30", align 8, !dbg !221 + br label %"$matchsucc_998" + +"$empty_default_1002": ; preds = %"$have_gas_996" + br label %"$matchsucc_998" + +"$matchsucc_998": ; preds = %"$have_gas_1053", %"$have_gas_1035", %"$empty_default_1002" + %"$gasrem_1056" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1057" = icmp ugt i64 1, %"$gasrem_1056" + br i1 %"$gascmp_1057", label %"$out_of_gas_1058", label %"$have_gas_1059" + +"$out_of_gas_1058": ; preds = %"$matchsucc_998" + call void @_out_of_gas() + br label %"$have_gas_1059" + +"$have_gas_1059": ; preds = %"$out_of_gas_1058", %"$matchsucc_998" + %"$consume_1060" = sub i64 %"$gasrem_1056", 1 + store i64 %"$consume_1060", i64* @_gasrem, align 8 %"$input_31" = alloca %Int128, 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" + call void @llvm.dbg.declare(metadata %Int128* %"$input_31", metadata !223, metadata !DIExpression()), !dbg !224 + %"$gasrem_1061" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1062" = icmp ugt i64 1, %"$gasrem_1061" + br i1 %"$gascmp_1062", label %"$out_of_gas_1063", label %"$have_gas_1064" -"$out_of_gas_1061": ; preds = %"$have_gas_1057" +"$out_of_gas_1063": ; preds = %"$have_gas_1059" call void @_out_of_gas() - br label %"$have_gas_1062" + br label %"$have_gas_1064" -"$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 %Int128 { i128 -9223372036854775808 }, %Int128* %"$input_31", align 8, !dbg !110 - %"$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" +"$have_gas_1064": ; preds = %"$out_of_gas_1063", %"$have_gas_1059" + %"$consume_1065" = sub i64 %"$gasrem_1061", 1 + store i64 %"$consume_1065", i64* @_gasrem, align 8 + store %Int128 { i128 -9223372036854775808 }, %Int128* %"$input_31", align 8, !dbg !225 + %"$gasrem_1066" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1067" = icmp ugt i64 1, %"$gasrem_1066" + br i1 %"$gascmp_1067", label %"$out_of_gas_1068", label %"$have_gas_1069" -"$out_of_gas_1066": ; preds = %"$have_gas_1062" +"$out_of_gas_1068": ; preds = %"$have_gas_1064" call void @_out_of_gas() - br label %"$have_gas_1067" + br label %"$have_gas_1069" -"$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_1069": ; preds = %"$out_of_gas_1068", %"$have_gas_1064" + %"$consume_1070" = sub i64 %"$gasrem_1066", 1 + store i64 %"$consume_1070", i64* @_gasrem, align 8 %"$resopt_32" = alloca %TName_Option_Int64*, align 8 - %"$gasrem_1069" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1070" = icmp ugt i64 4, %"$gasrem_1069" - br i1 %"$gascmp_1070", label %"$out_of_gas_1071", label %"$have_gas_1072" - -"$out_of_gas_1071": ; preds = %"$have_gas_1067" - call void @_out_of_gas() - br label %"$have_gas_1072" - -"$have_gas_1072": ; preds = %"$out_of_gas_1071", %"$have_gas_1067" - %"$consume_1073" = sub i64 %"$gasrem_1069", 4 - store i64 %"$consume_1073", i64* @_gasrem, align 8 - %"$execptr_load_1074" = load i8*, i8** @_execptr, align 8 - %"$to_int64_$input_31_1075" = alloca %Int128, align 8 - %"$$input_31_1076" = load %Int128, %Int128* %"$input_31", align 8 - store %Int128 %"$$input_31_1076", %Int128* %"$to_int64_$input_31_1075", align 8 - %"$$to_int64_$input_31_1075_1077" = bitcast %Int128* %"$to_int64_$input_31_1075" to i8* - %"$to_int64_call_1078" = call i8* @_to_int64(i8* %"$execptr_load_1074", %_TyDescrTy_Typ* @"$TyDescr_Int128_96", i8* %"$$to_int64_$input_31_1075_1077"), !dbg !111 - %"$to_int64_1079" = bitcast i8* %"$to_int64_call_1078" to %TName_Option_Int64* - store %TName_Option_Int64* %"$to_int64_1079", %TName_Option_Int64** %"$resopt_32", align 8, !dbg !111 - %"$gasrem_1080" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1081" = icmp ugt i64 1, %"$gasrem_1080" - br i1 %"$gascmp_1081", label %"$out_of_gas_1082", label %"$have_gas_1083" - -"$out_of_gas_1082": ; preds = %"$have_gas_1072" - call void @_out_of_gas() - br label %"$have_gas_1083" - -"$have_gas_1083": ; preds = %"$out_of_gas_1082", %"$have_gas_1072" - %"$consume_1084" = sub i64 %"$gasrem_1080", 1 - store i64 %"$consume_1084", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Option_Int64** %"$resopt_32", metadata !226, metadata !DIExpression()), !dbg !227 + %"$gasrem_1071" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1072" = icmp ugt i64 4, %"$gasrem_1071" + br i1 %"$gascmp_1072", label %"$out_of_gas_1073", label %"$have_gas_1074" + +"$out_of_gas_1073": ; preds = %"$have_gas_1069" + call void @_out_of_gas() + br label %"$have_gas_1074" + +"$have_gas_1074": ; preds = %"$out_of_gas_1073", %"$have_gas_1069" + %"$consume_1075" = sub i64 %"$gasrem_1071", 4 + store i64 %"$consume_1075", i64* @_gasrem, align 8 + %"$execptr_load_1076" = load i8*, i8** @_execptr, align 8 + %"$to_int64_$input_31_1077" = alloca %Int128, align 8 + %"$$input_31_1078" = load %Int128, %Int128* %"$input_31", align 8 + store %Int128 %"$$input_31_1078", %Int128* %"$to_int64_$input_31_1077", align 8 + %"$$to_int64_$input_31_1077_1079" = bitcast %Int128* %"$to_int64_$input_31_1077" to i8* + %"$to_int64_call_1080" = call i8* @_to_int64(i8* %"$execptr_load_1076", %_TyDescrTy_Typ* @"$TyDescr_Int128_96", i8* %"$$to_int64_$input_31_1077_1079"), !dbg !228 + %"$to_int64_1081" = bitcast i8* %"$to_int64_call_1080" to %TName_Option_Int64* + store %TName_Option_Int64* %"$to_int64_1081", %TName_Option_Int64** %"$resopt_32", align 8, !dbg !228 + %"$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_1084": ; preds = %"$have_gas_1074" + call void @_out_of_gas() + br label %"$have_gas_1085" + +"$have_gas_1085": ; preds = %"$out_of_gas_1084", %"$have_gas_1074" + %"$consume_1086" = sub i64 %"$gasrem_1082", 1 + store i64 %"$consume_1086", i64* @_gasrem, align 8 %"$test_33" = alloca %TName_Bool*, align 8 - %"$gasrem_1085" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1086" = icmp ugt i64 2, %"$gasrem_1085" - br i1 %"$gascmp_1086", label %"$out_of_gas_1087", label %"$have_gas_1088" - -"$out_of_gas_1087": ; preds = %"$have_gas_1083" - call void @_out_of_gas() - br label %"$have_gas_1088" - -"$have_gas_1088": ; preds = %"$out_of_gas_1087", %"$have_gas_1083" - %"$consume_1089" = sub i64 %"$gasrem_1085", 2 - store i64 %"$consume_1089", i64* @_gasrem, align 8 - %"$$resopt_32_1091" = load %TName_Option_Int64*, %TName_Option_Int64** %"$resopt_32", align 8 - %"$$resopt_32_tag_1092" = getelementptr inbounds %TName_Option_Int64, %TName_Option_Int64* %"$$resopt_32_1091", i32 0, i32 0 - %"$$resopt_32_tag_1093" = load i8, i8* %"$$resopt_32_tag_1092", align 1 - switch i8 %"$$resopt_32_tag_1093", label %"$empty_default_1094" [ - i8 0, label %"$Some_1095" - i8 1, label %"$None_1140" - ], !dbg !112 - -"$Some_1095": ; preds = %"$have_gas_1088" - %"$$resopt_32_1096" = bitcast %TName_Option_Int64* %"$$resopt_32_1091" to %CName_Some_Int64* - %"$res_gep_1097" = getelementptr inbounds %CName_Some_Int64, %CName_Some_Int64* %"$$resopt_32_1096", i32 0, i32 1 - %"$res_load_1098" = load %Int64, %Int64* %"$res_gep_1097", align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$test_33", metadata !229, metadata !DIExpression()), !dbg !230 + %"$gasrem_1087" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1088" = icmp ugt i64 2, %"$gasrem_1087" + br i1 %"$gascmp_1088", label %"$out_of_gas_1089", label %"$have_gas_1090" + +"$out_of_gas_1089": ; preds = %"$have_gas_1085" + call void @_out_of_gas() + br label %"$have_gas_1090" + +"$have_gas_1090": ; preds = %"$out_of_gas_1089", %"$have_gas_1085" + %"$consume_1091" = sub i64 %"$gasrem_1087", 2 + store i64 %"$consume_1091", i64* @_gasrem, align 8 + %"$$resopt_32_1093" = load %TName_Option_Int64*, %TName_Option_Int64** %"$resopt_32", align 8 + %"$$resopt_32_tag_1094" = getelementptr inbounds %TName_Option_Int64, %TName_Option_Int64* %"$$resopt_32_1093", i32 0, i32 0 + %"$$resopt_32_tag_1095" = load i8, i8* %"$$resopt_32_tag_1094", align 1 + switch i8 %"$$resopt_32_tag_1095", label %"$empty_default_1096" [ + i8 0, label %"$Some_1097" + i8 1, label %"$None_1142" + ], !dbg !231 + +"$Some_1097": ; preds = %"$have_gas_1090" + %"$$resopt_32_1098" = bitcast %TName_Option_Int64* %"$$resopt_32_1093" to %CName_Some_Int64* + %"$res_gep_1099" = getelementptr inbounds %CName_Some_Int64, %CName_Some_Int64* %"$$resopt_32_1098", i32 0, i32 1 + %"$res_load_1100" = load %Int64, %Int64* %"$res_gep_1099", align 8 %res19 = alloca %Int64, align 8 - store %Int64 %"$res_load_1098", %Int64* %res19, 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" + store %Int64 %"$res_load_1100", %Int64* %res19, 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_1101": ; preds = %"$Some_1095" +"$out_of_gas_1103": ; preds = %"$Some_1097" call void @_out_of_gas() - br label %"$have_gas_1102" + br label %"$have_gas_1104" -"$have_gas_1102": ; preds = %"$out_of_gas_1101", %"$Some_1095" - %"$consume_1103" = sub i64 %"$gasrem_1099", 1 - store i64 %"$consume_1103", i64* @_gasrem, align 8 +"$have_gas_1104": ; preds = %"$out_of_gas_1103", %"$Some_1097" + %"$consume_1105" = sub i64 %"$gasrem_1101", 1 + store i64 %"$consume_1105", i64* @_gasrem, align 8 %input_20 = alloca %Int64, align 8 - %"$gasrem_1104" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1105" = icmp ugt i64 1, %"$gasrem_1104" - br i1 %"$gascmp_1105", label %"$out_of_gas_1106", label %"$have_gas_1107" + call void @llvm.dbg.declare(metadata %Int64* %input_20, metadata !232, metadata !DIExpression()), !dbg !235 + %"$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_1106": ; preds = %"$have_gas_1102" +"$out_of_gas_1108": ; preds = %"$have_gas_1104" call void @_out_of_gas() - br label %"$have_gas_1107" + br label %"$have_gas_1109" -"$have_gas_1107": ; preds = %"$out_of_gas_1106", %"$have_gas_1102" - %"$consume_1108" = sub i64 %"$gasrem_1104", 1 - store i64 %"$consume_1108", i64* @_gasrem, align 8 - store %Int64 { i64 -9223372036854775808 }, %Int64* %input_20, align 8, !dbg !113 - %"$gasrem_1109" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1110" = icmp ugt i64 1, %"$gasrem_1109" - br i1 %"$gascmp_1110", label %"$out_of_gas_1111", label %"$have_gas_1112" +"$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 %Int64 { i64 -9223372036854775808 }, %Int64* %input_20, align 8, !dbg !236 + %"$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_1111": ; preds = %"$have_gas_1107" +"$out_of_gas_1113": ; preds = %"$have_gas_1109" call void @_out_of_gas() - br label %"$have_gas_1112" + br label %"$have_gas_1114" -"$have_gas_1112": ; preds = %"$out_of_gas_1111", %"$have_gas_1107" - %"$consume_1113" = sub i64 %"$gasrem_1109", 1 - store i64 %"$consume_1113", i64* @_gasrem, align 8 +"$have_gas_1114": ; preds = %"$out_of_gas_1113", %"$have_gas_1109" + %"$consume_1115" = sub i64 %"$gasrem_1111", 1 + store i64 %"$consume_1115", i64* @_gasrem, align 8 %test_21 = alloca %TName_Bool*, align 8 - %"$gasrem_1114" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1115" = icmp ugt i64 4, %"$gasrem_1114" - br i1 %"$gascmp_1115", label %"$out_of_gas_1116", label %"$have_gas_1117" - -"$out_of_gas_1116": ; preds = %"$have_gas_1112" - call void @_out_of_gas() - br label %"$have_gas_1117" - -"$have_gas_1117": ; preds = %"$out_of_gas_1116", %"$have_gas_1112" - %"$consume_1118" = sub i64 %"$gasrem_1114", 4 - store i64 %"$consume_1118", i64* @_gasrem, align 8 - %"$execptr_load_1119" = load i8*, i8** @_execptr, align 8 - %"$res_1120" = load %Int64, %Int64* %res19, align 8 - %"$input__1121" = load %Int64, %Int64* %input_20, align 8 - %"$eq_call_1122" = call %TName_Bool* @_eq_Int64(i8* %"$execptr_load_1119", %Int64 %"$res_1120", %Int64 %"$input__1121"), !dbg !116 - store %TName_Bool* %"$eq_call_1122", %TName_Bool** %test_21, align 8, !dbg !116 - %"$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_1117" - call void @_out_of_gas() - br label %"$have_gas_1127" - -"$have_gas_1127": ; preds = %"$out_of_gas_1126", %"$have_gas_1117" - %"$consume_1128" = sub i64 %"$gasrem_1124", 1 - store i64 %"$consume_1128", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %test_21, metadata !237, metadata !DIExpression()), !dbg !238 + %"$gasrem_1116" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1117" = icmp ugt i64 4, %"$gasrem_1116" + br i1 %"$gascmp_1117", label %"$out_of_gas_1118", label %"$have_gas_1119" + +"$out_of_gas_1118": ; preds = %"$have_gas_1114" + call void @_out_of_gas() + br label %"$have_gas_1119" + +"$have_gas_1119": ; preds = %"$out_of_gas_1118", %"$have_gas_1114" + %"$consume_1120" = sub i64 %"$gasrem_1116", 4 + store i64 %"$consume_1120", i64* @_gasrem, align 8 + %"$execptr_load_1121" = load i8*, i8** @_execptr, align 8 + %"$res_1122" = load %Int64, %Int64* %res19, align 8 + %"$input__1123" = load %Int64, %Int64* %input_20, align 8 + %"$eq_call_1124" = call %TName_Bool* @_eq_Int64(i8* %"$execptr_load_1121", %Int64 %"$res_1122", %Int64 %"$input__1123"), !dbg !239 + store %TName_Bool* %"$eq_call_1124", %TName_Bool** %test_21, align 8, !dbg !239 + %"$gasrem_1126" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1127" = icmp ugt i64 1, %"$gasrem_1126" + br i1 %"$gascmp_1127", label %"$out_of_gas_1128", label %"$have_gas_1129" + +"$out_of_gas_1128": ; preds = %"$have_gas_1119" + call void @_out_of_gas() + br label %"$have_gas_1129" + +"$have_gas_1129": ; preds = %"$out_of_gas_1128", %"$have_gas_1119" + %"$consume_1130" = sub i64 %"$gasrem_1126", 1 + store i64 %"$consume_1130", i64* @_gasrem, align 8 %"$BoolUtils.andb_69" = alloca { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, align 8 - %"$BoolUtils.andb_1129" = 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_1130" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_1129", 0 - %"$BoolUtils.andb_envptr_1131" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_1129", 1 - %"$$test_30_1132" = load %TName_Bool*, %TName_Bool** %"$test_30", align 8 - %"$BoolUtils.andb_call_1133" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_1130"(i8* %"$BoolUtils.andb_envptr_1131", %TName_Bool* %"$$test_30_1132"), !dbg !117 - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_1133", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_69", align 8, !dbg !117 + %"$BoolUtils.andb_1131" = 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_1132" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_1131", 0 + %"$BoolUtils.andb_envptr_1133" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_1131", 1 + %"$$test_30_1134" = load %TName_Bool*, %TName_Bool** %"$test_30", align 8 + %"$BoolUtils.andb_call_1135" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_1132"(i8* %"$BoolUtils.andb_envptr_1133", %TName_Bool* %"$$test_30_1134"), !dbg !240 + store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_1135", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_69", align 8, !dbg !240 %"$BoolUtils.andb_70" = alloca %TName_Bool*, align 8 - %"$$BoolUtils.andb_69_1134" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_69", align 8 - %"$$BoolUtils.andb_69_fptr_1135" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_69_1134", 0 - %"$$BoolUtils.andb_69_envptr_1136" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_69_1134", 1 - %"$test__1137" = load %TName_Bool*, %TName_Bool** %test_21, align 8 - %"$$BoolUtils.andb_69_call_1138" = call %TName_Bool* %"$$BoolUtils.andb_69_fptr_1135"(i8* %"$$BoolUtils.andb_69_envptr_1136", %TName_Bool* %"$test__1137"), !dbg !117 - store %TName_Bool* %"$$BoolUtils.andb_69_call_1138", %TName_Bool** %"$BoolUtils.andb_70", align 8, !dbg !117 - %"$$BoolUtils.andb_70_1139" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_70", align 8 - store %TName_Bool* %"$$BoolUtils.andb_70_1139", %TName_Bool** %"$test_33", align 8, !dbg !117 - br label %"$matchsucc_1090" - -"$None_1140": ; preds = %"$have_gas_1088" - %"$$resopt_32_1141" = bitcast %TName_Option_Int64* %"$$resopt_32_1091" to %CName_None_Int64* - %"$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 = %"$None_1140" - call void @_out_of_gas() - br label %"$have_gas_1145" - -"$have_gas_1145": ; preds = %"$out_of_gas_1144", %"$None_1140" - %"$consume_1146" = sub i64 %"$gasrem_1142", 1 - store i64 %"$consume_1146", i64* @_gasrem, align 8 - %"$false_1147" = load %TName_Bool*, %TName_Bool** %false, align 8 - store %TName_Bool* %"$false_1147", %TName_Bool** %"$test_33", align 8, !dbg !118 - br label %"$matchsucc_1090" - -"$empty_default_1094": ; preds = %"$have_gas_1088" - br label %"$matchsucc_1090" - -"$matchsucc_1090": ; preds = %"$have_gas_1145", %"$have_gas_1127", %"$empty_default_1094" - %"$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 = %"$matchsucc_1090" - call void @_out_of_gas() - br label %"$have_gas_1151" - -"$have_gas_1151": ; preds = %"$out_of_gas_1150", %"$matchsucc_1090" - %"$consume_1152" = sub i64 %"$gasrem_1148", 1 - store i64 %"$consume_1152", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$BoolUtils.andb_70", metadata !241, metadata !DIExpression()), !dbg !240 + %"$$BoolUtils.andb_69_1136" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_69", align 8 + %"$$BoolUtils.andb_69_fptr_1137" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_69_1136", 0 + %"$$BoolUtils.andb_69_envptr_1138" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_69_1136", 1 + %"$test__1139" = load %TName_Bool*, %TName_Bool** %test_21, align 8 + %"$$BoolUtils.andb_69_call_1140" = call %TName_Bool* %"$$BoolUtils.andb_69_fptr_1137"(i8* %"$$BoolUtils.andb_69_envptr_1138", %TName_Bool* %"$test__1139"), !dbg !240 + store %TName_Bool* %"$$BoolUtils.andb_69_call_1140", %TName_Bool** %"$BoolUtils.andb_70", align 8, !dbg !240 + %"$$BoolUtils.andb_70_1141" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_70", align 8 + store %TName_Bool* %"$$BoolUtils.andb_70_1141", %TName_Bool** %"$test_33", align 8, !dbg !240 + br label %"$matchsucc_1092" + +"$None_1142": ; preds = %"$have_gas_1090" + %"$$resopt_32_1143" = bitcast %TName_Option_Int64* %"$$resopt_32_1093" to %CName_None_Int64* + %"$gasrem_1144" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1145" = icmp ugt i64 1, %"$gasrem_1144" + br i1 %"$gascmp_1145", label %"$out_of_gas_1146", label %"$have_gas_1147" + +"$out_of_gas_1146": ; preds = %"$None_1142" + call void @_out_of_gas() + br label %"$have_gas_1147" + +"$have_gas_1147": ; preds = %"$out_of_gas_1146", %"$None_1142" + %"$consume_1148" = sub i64 %"$gasrem_1144", 1 + store i64 %"$consume_1148", i64* @_gasrem, align 8 + %"$false_1149" = load %TName_Bool*, %TName_Bool** %false, align 8 + store %TName_Bool* %"$false_1149", %TName_Bool** %"$test_33", align 8, !dbg !242 + br label %"$matchsucc_1092" + +"$empty_default_1096": ; preds = %"$have_gas_1090" + br label %"$matchsucc_1092" + +"$matchsucc_1092": ; preds = %"$have_gas_1147", %"$have_gas_1129", %"$empty_default_1096" + %"$gasrem_1150" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1151" = icmp ugt i64 1, %"$gasrem_1150" + br i1 %"$gascmp_1151", label %"$out_of_gas_1152", label %"$have_gas_1153" + +"$out_of_gas_1152": ; preds = %"$matchsucc_1092" + call void @_out_of_gas() + br label %"$have_gas_1153" + +"$have_gas_1153": ; preds = %"$out_of_gas_1152", %"$matchsucc_1092" + %"$consume_1154" = sub i64 %"$gasrem_1150", 1 + store i64 %"$consume_1154", i64* @_gasrem, align 8 %"$input_34" = alloca %String, 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" + call void @llvm.dbg.declare(metadata %String* %"$input_34", metadata !244, metadata !DIExpression()), !dbg !245 + %"$gasrem_1155" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1156" = icmp ugt i64 1, %"$gasrem_1155" + br i1 %"$gascmp_1156", label %"$out_of_gas_1157", label %"$have_gas_1158" -"$out_of_gas_1155": ; preds = %"$have_gas_1151" +"$out_of_gas_1157": ; preds = %"$have_gas_1153" call void @_out_of_gas() - br label %"$have_gas_1156" + br label %"$have_gas_1158" -"$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 - store %String { i8* getelementptr inbounds ([20 x i8], [20 x i8]* @"$stringlit_1158", i32 0, i32 0), i32 20 }, %String* %"$input_34", align 8, !dbg !120 - %"$gasrem_1159" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1160" = icmp ugt i64 1, %"$gasrem_1159" - br i1 %"$gascmp_1160", label %"$out_of_gas_1161", label %"$have_gas_1162" +"$have_gas_1158": ; preds = %"$out_of_gas_1157", %"$have_gas_1153" + %"$consume_1159" = sub i64 %"$gasrem_1155", 1 + store i64 %"$consume_1159", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([20 x i8], [20 x i8]* @"$stringlit_1160", i32 0, i32 0), i32 20 }, %String* %"$input_34", align 8, !dbg !246 + %"$gasrem_1161" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1162" = icmp ugt i64 1, %"$gasrem_1161" + br i1 %"$gascmp_1162", label %"$out_of_gas_1163", label %"$have_gas_1164" -"$out_of_gas_1161": ; preds = %"$have_gas_1156" +"$out_of_gas_1163": ; preds = %"$have_gas_1158" call void @_out_of_gas() - br label %"$have_gas_1162" + br label %"$have_gas_1164" -"$have_gas_1162": ; preds = %"$out_of_gas_1161", %"$have_gas_1156" - %"$consume_1163" = sub i64 %"$gasrem_1159", 1 - store i64 %"$consume_1163", i64* @_gasrem, align 8 +"$have_gas_1164": ; preds = %"$out_of_gas_1163", %"$have_gas_1158" + %"$consume_1165" = sub i64 %"$gasrem_1161", 1 + store i64 %"$consume_1165", i64* @_gasrem, align 8 %"$resopt_35" = alloca %TName_Option_Int64*, align 8 - %"$gasrem_1164" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1165" = icmp ugt i64 4, %"$gasrem_1164" - br i1 %"$gascmp_1165", label %"$out_of_gas_1166", label %"$have_gas_1167" - -"$out_of_gas_1166": ; preds = %"$have_gas_1162" - call void @_out_of_gas() - br label %"$have_gas_1167" - -"$have_gas_1167": ; preds = %"$out_of_gas_1166", %"$have_gas_1162" - %"$consume_1168" = sub i64 %"$gasrem_1164", 4 - store i64 %"$consume_1168", i64* @_gasrem, align 8 - %"$execptr_load_1169" = load i8*, i8** @_execptr, align 8 - %"$to_int64_$input_34_1170" = alloca %String, align 8 - %"$$input_34_1171" = load %String, %String* %"$input_34", align 8 - store %String %"$$input_34_1171", %String* %"$to_int64_$input_34_1170", align 8 - %"$$to_int64_$input_34_1170_1172" = bitcast %String* %"$to_int64_$input_34_1170" to i8* - %"$to_int64_call_1173" = call i8* @_to_int64(i8* %"$execptr_load_1169", %_TyDescrTy_Typ* @"$TyDescr_String_104", i8* %"$$to_int64_$input_34_1170_1172"), !dbg !121 - %"$to_int64_1174" = bitcast i8* %"$to_int64_call_1173" to %TName_Option_Int64* - store %TName_Option_Int64* %"$to_int64_1174", %TName_Option_Int64** %"$resopt_35", align 8, !dbg !121 - %"$gasrem_1175" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1176" = icmp ugt i64 1, %"$gasrem_1175" - br i1 %"$gascmp_1176", label %"$out_of_gas_1177", label %"$have_gas_1178" - -"$out_of_gas_1177": ; preds = %"$have_gas_1167" - call void @_out_of_gas() - br label %"$have_gas_1178" - -"$have_gas_1178": ; preds = %"$out_of_gas_1177", %"$have_gas_1167" - %"$consume_1179" = sub i64 %"$gasrem_1175", 1 - store i64 %"$consume_1179", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Option_Int64** %"$resopt_35", metadata !247, metadata !DIExpression()), !dbg !248 + %"$gasrem_1166" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1167" = icmp ugt i64 4, %"$gasrem_1166" + br i1 %"$gascmp_1167", label %"$out_of_gas_1168", label %"$have_gas_1169" + +"$out_of_gas_1168": ; preds = %"$have_gas_1164" + call void @_out_of_gas() + br label %"$have_gas_1169" + +"$have_gas_1169": ; preds = %"$out_of_gas_1168", %"$have_gas_1164" + %"$consume_1170" = sub i64 %"$gasrem_1166", 4 + store i64 %"$consume_1170", i64* @_gasrem, align 8 + %"$execptr_load_1171" = load i8*, i8** @_execptr, align 8 + %"$to_int64_$input_34_1172" = alloca %String, align 8 + %"$$input_34_1173" = load %String, %String* %"$input_34", align 8 + store %String %"$$input_34_1173", %String* %"$to_int64_$input_34_1172", align 8 + %"$$to_int64_$input_34_1172_1174" = bitcast %String* %"$to_int64_$input_34_1172" to i8* + %"$to_int64_call_1175" = call i8* @_to_int64(i8* %"$execptr_load_1171", %_TyDescrTy_Typ* @"$TyDescr_String_104", i8* %"$$to_int64_$input_34_1172_1174"), !dbg !249 + %"$to_int64_1176" = bitcast i8* %"$to_int64_call_1175" to %TName_Option_Int64* + store %TName_Option_Int64* %"$to_int64_1176", %TName_Option_Int64** %"$resopt_35", align 8, !dbg !249 + %"$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 = %"$have_gas_1169" + call void @_out_of_gas() + br label %"$have_gas_1180" + +"$have_gas_1180": ; preds = %"$out_of_gas_1179", %"$have_gas_1169" + %"$consume_1181" = sub i64 %"$gasrem_1177", 1 + store i64 %"$consume_1181", i64* @_gasrem, align 8 %"$test_36" = alloca %TName_Bool*, align 8 - %"$gasrem_1180" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1181" = icmp ugt i64 2, %"$gasrem_1180" - br i1 %"$gascmp_1181", label %"$out_of_gas_1182", label %"$have_gas_1183" - -"$out_of_gas_1182": ; preds = %"$have_gas_1178" - call void @_out_of_gas() - br label %"$have_gas_1183" - -"$have_gas_1183": ; preds = %"$out_of_gas_1182", %"$have_gas_1178" - %"$consume_1184" = sub i64 %"$gasrem_1180", 2 - store i64 %"$consume_1184", i64* @_gasrem, align 8 - %"$$resopt_35_1186" = load %TName_Option_Int64*, %TName_Option_Int64** %"$resopt_35", align 8 - %"$$resopt_35_tag_1187" = getelementptr inbounds %TName_Option_Int64, %TName_Option_Int64* %"$$resopt_35_1186", i32 0, i32 0 - %"$$resopt_35_tag_1188" = load i8, i8* %"$$resopt_35_tag_1187", align 1 - switch i8 %"$$resopt_35_tag_1188", label %"$empty_default_1189" [ - i8 0, label %"$Some_1190" - i8 1, label %"$None_1235" - ], !dbg !122 - -"$Some_1190": ; preds = %"$have_gas_1183" - %"$$resopt_35_1191" = bitcast %TName_Option_Int64* %"$$resopt_35_1186" to %CName_Some_Int64* - %"$res_gep_1192" = getelementptr inbounds %CName_Some_Int64, %CName_Some_Int64* %"$$resopt_35_1191", i32 0, i32 1 - %"$res_load_1193" = load %Int64, %Int64* %"$res_gep_1192", align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$test_36", metadata !250, metadata !DIExpression()), !dbg !251 + %"$gasrem_1182" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1183" = icmp ugt i64 2, %"$gasrem_1182" + br i1 %"$gascmp_1183", label %"$out_of_gas_1184", label %"$have_gas_1185" + +"$out_of_gas_1184": ; preds = %"$have_gas_1180" + call void @_out_of_gas() + br label %"$have_gas_1185" + +"$have_gas_1185": ; preds = %"$out_of_gas_1184", %"$have_gas_1180" + %"$consume_1186" = sub i64 %"$gasrem_1182", 2 + store i64 %"$consume_1186", i64* @_gasrem, align 8 + %"$$resopt_35_1188" = load %TName_Option_Int64*, %TName_Option_Int64** %"$resopt_35", align 8 + %"$$resopt_35_tag_1189" = getelementptr inbounds %TName_Option_Int64, %TName_Option_Int64* %"$$resopt_35_1188", i32 0, i32 0 + %"$$resopt_35_tag_1190" = load i8, i8* %"$$resopt_35_tag_1189", align 1 + switch i8 %"$$resopt_35_tag_1190", label %"$empty_default_1191" [ + i8 0, label %"$Some_1192" + i8 1, label %"$None_1237" + ], !dbg !252 + +"$Some_1192": ; preds = %"$have_gas_1185" + %"$$resopt_35_1193" = bitcast %TName_Option_Int64* %"$$resopt_35_1188" to %CName_Some_Int64* + %"$res_gep_1194" = getelementptr inbounds %CName_Some_Int64, %CName_Some_Int64* %"$$resopt_35_1193", i32 0, i32 1 + %"$res_load_1195" = load %Int64, %Int64* %"$res_gep_1194", align 8 %res22 = alloca %Int64, align 8 - store %Int64 %"$res_load_1193", %Int64* %res22, align 8 - %"$gasrem_1194" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1195" = icmp ugt i64 1, %"$gasrem_1194" - br i1 %"$gascmp_1195", label %"$out_of_gas_1196", label %"$have_gas_1197" + store %Int64 %"$res_load_1195", %Int64* %res22, 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_1196": ; preds = %"$Some_1190" +"$out_of_gas_1198": ; preds = %"$Some_1192" call void @_out_of_gas() - br label %"$have_gas_1197" + br label %"$have_gas_1199" -"$have_gas_1197": ; preds = %"$out_of_gas_1196", %"$Some_1190" - %"$consume_1198" = sub i64 %"$gasrem_1194", 1 - store i64 %"$consume_1198", i64* @_gasrem, align 8 +"$have_gas_1199": ; preds = %"$out_of_gas_1198", %"$Some_1192" + %"$consume_1200" = sub i64 %"$gasrem_1196", 1 + store i64 %"$consume_1200", i64* @_gasrem, align 8 %input_23 = alloca %Int64, align 8 - %"$gasrem_1199" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1200" = icmp ugt i64 1, %"$gasrem_1199" - br i1 %"$gascmp_1200", label %"$out_of_gas_1201", label %"$have_gas_1202" + call void @llvm.dbg.declare(metadata %Int64* %input_23, metadata !253, metadata !DIExpression()), !dbg !256 + %"$gasrem_1201" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1202" = icmp ugt i64 1, %"$gasrem_1201" + br i1 %"$gascmp_1202", label %"$out_of_gas_1203", label %"$have_gas_1204" -"$out_of_gas_1201": ; preds = %"$have_gas_1197" +"$out_of_gas_1203": ; preds = %"$have_gas_1199" call void @_out_of_gas() - br label %"$have_gas_1202" + br label %"$have_gas_1204" -"$have_gas_1202": ; preds = %"$out_of_gas_1201", %"$have_gas_1197" - %"$consume_1203" = sub i64 %"$gasrem_1199", 1 - store i64 %"$consume_1203", i64* @_gasrem, align 8 - store %Int64 { i64 -9223372036854775808 }, %Int64* %input_23, align 8, !dbg !123 - %"$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" +"$have_gas_1204": ; preds = %"$out_of_gas_1203", %"$have_gas_1199" + %"$consume_1205" = sub i64 %"$gasrem_1201", 1 + store i64 %"$consume_1205", i64* @_gasrem, align 8 + store %Int64 { i64 -9223372036854775808 }, %Int64* %input_23, align 8, !dbg !257 + %"$gasrem_1206" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1207" = icmp ugt i64 1, %"$gasrem_1206" + br i1 %"$gascmp_1207", label %"$out_of_gas_1208", label %"$have_gas_1209" -"$out_of_gas_1206": ; preds = %"$have_gas_1202" +"$out_of_gas_1208": ; preds = %"$have_gas_1204" call void @_out_of_gas() - br label %"$have_gas_1207" + br label %"$have_gas_1209" -"$have_gas_1207": ; preds = %"$out_of_gas_1206", %"$have_gas_1202" - %"$consume_1208" = sub i64 %"$gasrem_1204", 1 - store i64 %"$consume_1208", i64* @_gasrem, align 8 +"$have_gas_1209": ; preds = %"$out_of_gas_1208", %"$have_gas_1204" + %"$consume_1210" = sub i64 %"$gasrem_1206", 1 + store i64 %"$consume_1210", i64* @_gasrem, align 8 %test_24 = alloca %TName_Bool*, align 8 - %"$gasrem_1209" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1210" = icmp ugt i64 4, %"$gasrem_1209" - br i1 %"$gascmp_1210", label %"$out_of_gas_1211", label %"$have_gas_1212" - -"$out_of_gas_1211": ; preds = %"$have_gas_1207" - call void @_out_of_gas() - br label %"$have_gas_1212" - -"$have_gas_1212": ; preds = %"$out_of_gas_1211", %"$have_gas_1207" - %"$consume_1213" = sub i64 %"$gasrem_1209", 4 - store i64 %"$consume_1213", i64* @_gasrem, align 8 - %"$execptr_load_1214" = load i8*, i8** @_execptr, align 8 - %"$res_1215" = load %Int64, %Int64* %res22, align 8 - %"$input__1216" = load %Int64, %Int64* %input_23, align 8 - %"$eq_call_1217" = call %TName_Bool* @_eq_Int64(i8* %"$execptr_load_1214", %Int64 %"$res_1215", %Int64 %"$input__1216"), !dbg !126 - store %TName_Bool* %"$eq_call_1217", %TName_Bool** %test_24, align 8, !dbg !126 - %"$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" - -"$out_of_gas_1221": ; preds = %"$have_gas_1212" - call void @_out_of_gas() - br label %"$have_gas_1222" - -"$have_gas_1222": ; preds = %"$out_of_gas_1221", %"$have_gas_1212" - %"$consume_1223" = sub i64 %"$gasrem_1219", 1 - store i64 %"$consume_1223", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %test_24, metadata !258, metadata !DIExpression()), !dbg !259 + %"$gasrem_1211" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1212" = icmp ugt i64 4, %"$gasrem_1211" + br i1 %"$gascmp_1212", label %"$out_of_gas_1213", label %"$have_gas_1214" + +"$out_of_gas_1213": ; preds = %"$have_gas_1209" + call void @_out_of_gas() + br label %"$have_gas_1214" + +"$have_gas_1214": ; preds = %"$out_of_gas_1213", %"$have_gas_1209" + %"$consume_1215" = sub i64 %"$gasrem_1211", 4 + store i64 %"$consume_1215", i64* @_gasrem, align 8 + %"$execptr_load_1216" = load i8*, i8** @_execptr, align 8 + %"$res_1217" = load %Int64, %Int64* %res22, align 8 + %"$input__1218" = load %Int64, %Int64* %input_23, align 8 + %"$eq_call_1219" = call %TName_Bool* @_eq_Int64(i8* %"$execptr_load_1216", %Int64 %"$res_1217", %Int64 %"$input__1218"), !dbg !260 + store %TName_Bool* %"$eq_call_1219", %TName_Bool** %test_24, align 8, !dbg !260 + %"$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" + +"$out_of_gas_1223": ; preds = %"$have_gas_1214" + call void @_out_of_gas() + br label %"$have_gas_1224" + +"$have_gas_1224": ; preds = %"$out_of_gas_1223", %"$have_gas_1214" + %"$consume_1225" = sub i64 %"$gasrem_1221", 1 + store i64 %"$consume_1225", i64* @_gasrem, align 8 %"$BoolUtils.andb_71" = alloca { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, align 8 - %"$BoolUtils.andb_1224" = 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_1225" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_1224", 0 - %"$BoolUtils.andb_envptr_1226" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_1224", 1 - %"$$test_33_1227" = load %TName_Bool*, %TName_Bool** %"$test_33", align 8 - %"$BoolUtils.andb_call_1228" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_1225"(i8* %"$BoolUtils.andb_envptr_1226", %TName_Bool* %"$$test_33_1227"), !dbg !127 - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_1228", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_71", align 8, !dbg !127 + %"$BoolUtils.andb_1226" = 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_1227" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_1226", 0 + %"$BoolUtils.andb_envptr_1228" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_1226", 1 + %"$$test_33_1229" = load %TName_Bool*, %TName_Bool** %"$test_33", align 8 + %"$BoolUtils.andb_call_1230" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_1227"(i8* %"$BoolUtils.andb_envptr_1228", %TName_Bool* %"$$test_33_1229"), !dbg !261 + store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_1230", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_71", align 8, !dbg !261 %"$BoolUtils.andb_72" = alloca %TName_Bool*, align 8 - %"$$BoolUtils.andb_71_1229" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_71", align 8 - %"$$BoolUtils.andb_71_fptr_1230" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_71_1229", 0 - %"$$BoolUtils.andb_71_envptr_1231" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_71_1229", 1 - %"$test__1232" = load %TName_Bool*, %TName_Bool** %test_24, align 8 - %"$$BoolUtils.andb_71_call_1233" = call %TName_Bool* %"$$BoolUtils.andb_71_fptr_1230"(i8* %"$$BoolUtils.andb_71_envptr_1231", %TName_Bool* %"$test__1232"), !dbg !127 - store %TName_Bool* %"$$BoolUtils.andb_71_call_1233", %TName_Bool** %"$BoolUtils.andb_72", align 8, !dbg !127 - %"$$BoolUtils.andb_72_1234" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_72", align 8 - store %TName_Bool* %"$$BoolUtils.andb_72_1234", %TName_Bool** %"$test_36", align 8, !dbg !127 - br label %"$matchsucc_1185" - -"$None_1235": ; preds = %"$have_gas_1183" - %"$$resopt_35_1236" = bitcast %TName_Option_Int64* %"$$resopt_35_1186" to %CName_None_Int64* - %"$gasrem_1237" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1238" = icmp ugt i64 1, %"$gasrem_1237" - br i1 %"$gascmp_1238", label %"$out_of_gas_1239", label %"$have_gas_1240" - -"$out_of_gas_1239": ; preds = %"$None_1235" - call void @_out_of_gas() - br label %"$have_gas_1240" - -"$have_gas_1240": ; preds = %"$out_of_gas_1239", %"$None_1235" - %"$consume_1241" = sub i64 %"$gasrem_1237", 1 - store i64 %"$consume_1241", i64* @_gasrem, align 8 - %"$false_1242" = load %TName_Bool*, %TName_Bool** %false, align 8 - store %TName_Bool* %"$false_1242", %TName_Bool** %"$test_36", align 8, !dbg !128 - br label %"$matchsucc_1185" - -"$empty_default_1189": ; preds = %"$have_gas_1183" - br label %"$matchsucc_1185" - -"$matchsucc_1185": ; preds = %"$have_gas_1240", %"$have_gas_1222", %"$empty_default_1189" - %"$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" - -"$out_of_gas_1245": ; preds = %"$matchsucc_1185" - call void @_out_of_gas() - br label %"$have_gas_1246" - -"$have_gas_1246": ; preds = %"$out_of_gas_1245", %"$matchsucc_1185" - %"$consume_1247" = sub i64 %"$gasrem_1243", 1 - store i64 %"$consume_1247", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$BoolUtils.andb_72", metadata !262, metadata !DIExpression()), !dbg !261 + %"$$BoolUtils.andb_71_1231" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_71", align 8 + %"$$BoolUtils.andb_71_fptr_1232" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_71_1231", 0 + %"$$BoolUtils.andb_71_envptr_1233" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_71_1231", 1 + %"$test__1234" = load %TName_Bool*, %TName_Bool** %test_24, align 8 + %"$$BoolUtils.andb_71_call_1235" = call %TName_Bool* %"$$BoolUtils.andb_71_fptr_1232"(i8* %"$$BoolUtils.andb_71_envptr_1233", %TName_Bool* %"$test__1234"), !dbg !261 + store %TName_Bool* %"$$BoolUtils.andb_71_call_1235", %TName_Bool** %"$BoolUtils.andb_72", align 8, !dbg !261 + %"$$BoolUtils.andb_72_1236" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_72", align 8 + store %TName_Bool* %"$$BoolUtils.andb_72_1236", %TName_Bool** %"$test_36", align 8, !dbg !261 + br label %"$matchsucc_1187" + +"$None_1237": ; preds = %"$have_gas_1185" + %"$$resopt_35_1238" = bitcast %TName_Option_Int64* %"$$resopt_35_1188" to %CName_None_Int64* + %"$gasrem_1239" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1240" = icmp ugt i64 1, %"$gasrem_1239" + br i1 %"$gascmp_1240", label %"$out_of_gas_1241", label %"$have_gas_1242" + +"$out_of_gas_1241": ; preds = %"$None_1237" + call void @_out_of_gas() + br label %"$have_gas_1242" + +"$have_gas_1242": ; preds = %"$out_of_gas_1241", %"$None_1237" + %"$consume_1243" = sub i64 %"$gasrem_1239", 1 + store i64 %"$consume_1243", i64* @_gasrem, align 8 + %"$false_1244" = load %TName_Bool*, %TName_Bool** %false, align 8 + store %TName_Bool* %"$false_1244", %TName_Bool** %"$test_36", align 8, !dbg !263 + br label %"$matchsucc_1187" + +"$empty_default_1191": ; preds = %"$have_gas_1185" + br label %"$matchsucc_1187" + +"$matchsucc_1187": ; preds = %"$have_gas_1242", %"$have_gas_1224", %"$empty_default_1191" + %"$gasrem_1245" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1246" = icmp ugt i64 1, %"$gasrem_1245" + br i1 %"$gascmp_1246", label %"$out_of_gas_1247", label %"$have_gas_1248" + +"$out_of_gas_1247": ; preds = %"$matchsucc_1187" + call void @_out_of_gas() + br label %"$have_gas_1248" + +"$have_gas_1248": ; preds = %"$out_of_gas_1247", %"$matchsucc_1187" + %"$consume_1249" = sub i64 %"$gasrem_1245", 1 + store i64 %"$consume_1249", i64* @_gasrem, align 8 %"$input_37" = alloca %Uint64, align 8 - %"$gasrem_1248" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1249" = icmp ugt i64 1, %"$gasrem_1248" - br i1 %"$gascmp_1249", label %"$out_of_gas_1250", label %"$have_gas_1251" + call void @llvm.dbg.declare(metadata %Uint64* %"$input_37", metadata !265, metadata !DIExpression()), !dbg !266 + %"$gasrem_1250" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1251" = icmp ugt i64 1, %"$gasrem_1250" + br i1 %"$gascmp_1251", label %"$out_of_gas_1252", label %"$have_gas_1253" -"$out_of_gas_1250": ; preds = %"$have_gas_1246" +"$out_of_gas_1252": ; preds = %"$have_gas_1248" call void @_out_of_gas() - br label %"$have_gas_1251" + br label %"$have_gas_1253" -"$have_gas_1251": ; preds = %"$out_of_gas_1250", %"$have_gas_1246" - %"$consume_1252" = sub i64 %"$gasrem_1248", 1 - store i64 %"$consume_1252", i64* @_gasrem, align 8 - store %Uint64 { i64 9223372036854775807 }, %Uint64* %"$input_37", align 8, !dbg !130 - %"$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" +"$have_gas_1253": ; preds = %"$out_of_gas_1252", %"$have_gas_1248" + %"$consume_1254" = sub i64 %"$gasrem_1250", 1 + store i64 %"$consume_1254", i64* @_gasrem, align 8 + store %Uint64 { i64 9223372036854775807 }, %Uint64* %"$input_37", align 8, !dbg !267 + %"$gasrem_1255" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1256" = icmp ugt i64 1, %"$gasrem_1255" + br i1 %"$gascmp_1256", label %"$out_of_gas_1257", label %"$have_gas_1258" -"$out_of_gas_1255": ; preds = %"$have_gas_1251" +"$out_of_gas_1257": ; preds = %"$have_gas_1253" call void @_out_of_gas() - br label %"$have_gas_1256" + br label %"$have_gas_1258" -"$have_gas_1256": ; preds = %"$out_of_gas_1255", %"$have_gas_1251" - %"$consume_1257" = sub i64 %"$gasrem_1253", 1 - store i64 %"$consume_1257", i64* @_gasrem, align 8 +"$have_gas_1258": ; preds = %"$out_of_gas_1257", %"$have_gas_1253" + %"$consume_1259" = sub i64 %"$gasrem_1255", 1 + store i64 %"$consume_1259", i64* @_gasrem, align 8 %"$resopt_38" = alloca %TName_Option_Int256*, align 8 - %"$gasrem_1258" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1259" = icmp ugt i64 16, %"$gasrem_1258" - br i1 %"$gascmp_1259", label %"$out_of_gas_1260", label %"$have_gas_1261" - -"$out_of_gas_1260": ; preds = %"$have_gas_1256" - call void @_out_of_gas() - br label %"$have_gas_1261" - -"$have_gas_1261": ; preds = %"$out_of_gas_1260", %"$have_gas_1256" - %"$consume_1262" = sub i64 %"$gasrem_1258", 16 - store i64 %"$consume_1262", i64* @_gasrem, align 8 - %"$execptr_load_1263" = load i8*, i8** @_execptr, align 8 - %"$to_int256_$input_37_1264" = alloca %Uint64, align 8 - %"$$input_37_1265" = load %Uint64, %Uint64* %"$input_37", align 8 - store %Uint64 %"$$input_37_1265", %Uint64* %"$to_int256_$input_37_1264", align 8 - %"$$to_int256_$input_37_1264_1266" = bitcast %Uint64* %"$to_int256_$input_37_1264" to i8* - %"$to_int256_call_1267" = call i8* @_to_int256(i8* %"$execptr_load_1263", %_TyDescrTy_Typ* @"$TyDescr_Uint64_94", i8* %"$$to_int256_$input_37_1264_1266"), !dbg !131 - %"$to_int256_1268" = bitcast i8* %"$to_int256_call_1267" to %TName_Option_Int256* - store %TName_Option_Int256* %"$to_int256_1268", %TName_Option_Int256** %"$resopt_38", align 8, !dbg !131 - %"$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" - -"$out_of_gas_1271": ; preds = %"$have_gas_1261" - call void @_out_of_gas() - br label %"$have_gas_1272" - -"$have_gas_1272": ; preds = %"$out_of_gas_1271", %"$have_gas_1261" - %"$consume_1273" = sub i64 %"$gasrem_1269", 1 - store i64 %"$consume_1273", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Option_Int256** %"$resopt_38", metadata !268, metadata !DIExpression()), !dbg !271 + %"$gasrem_1260" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1261" = icmp ugt i64 16, %"$gasrem_1260" + br i1 %"$gascmp_1261", label %"$out_of_gas_1262", label %"$have_gas_1263" + +"$out_of_gas_1262": ; preds = %"$have_gas_1258" + call void @_out_of_gas() + br label %"$have_gas_1263" + +"$have_gas_1263": ; preds = %"$out_of_gas_1262", %"$have_gas_1258" + %"$consume_1264" = sub i64 %"$gasrem_1260", 16 + store i64 %"$consume_1264", i64* @_gasrem, align 8 + %"$execptr_load_1265" = load i8*, i8** @_execptr, align 8 + %"$to_int256_$input_37_1266" = alloca %Uint64, align 8 + %"$$input_37_1267" = load %Uint64, %Uint64* %"$input_37", align 8 + store %Uint64 %"$$input_37_1267", %Uint64* %"$to_int256_$input_37_1266", align 8 + %"$$to_int256_$input_37_1266_1268" = bitcast %Uint64* %"$to_int256_$input_37_1266" to i8* + %"$to_int256_call_1269" = call i8* @_to_int256(i8* %"$execptr_load_1265", %_TyDescrTy_Typ* @"$TyDescr_Uint64_94", i8* %"$$to_int256_$input_37_1266_1268"), !dbg !272 + %"$to_int256_1270" = bitcast i8* %"$to_int256_call_1269" to %TName_Option_Int256* + store %TName_Option_Int256* %"$to_int256_1270", %TName_Option_Int256** %"$resopt_38", align 8, !dbg !272 + %"$gasrem_1271" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1272" = icmp ugt i64 1, %"$gasrem_1271" + br i1 %"$gascmp_1272", label %"$out_of_gas_1273", label %"$have_gas_1274" + +"$out_of_gas_1273": ; preds = %"$have_gas_1263" + call void @_out_of_gas() + br label %"$have_gas_1274" + +"$have_gas_1274": ; preds = %"$out_of_gas_1273", %"$have_gas_1263" + %"$consume_1275" = sub i64 %"$gasrem_1271", 1 + store i64 %"$consume_1275", i64* @_gasrem, align 8 %"$test_39" = alloca %TName_Bool*, align 8 - %"$gasrem_1274" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1275" = icmp ugt i64 2, %"$gasrem_1274" - br i1 %"$gascmp_1275", label %"$out_of_gas_1276", label %"$have_gas_1277" - -"$out_of_gas_1276": ; preds = %"$have_gas_1272" - call void @_out_of_gas() - br label %"$have_gas_1277" - -"$have_gas_1277": ; preds = %"$out_of_gas_1276", %"$have_gas_1272" - %"$consume_1278" = sub i64 %"$gasrem_1274", 2 - store i64 %"$consume_1278", i64* @_gasrem, align 8 - %"$$resopt_38_1280" = load %TName_Option_Int256*, %TName_Option_Int256** %"$resopt_38", align 8 - %"$$resopt_38_tag_1281" = getelementptr inbounds %TName_Option_Int256, %TName_Option_Int256* %"$$resopt_38_1280", i32 0, i32 0 - %"$$resopt_38_tag_1282" = load i8, i8* %"$$resopt_38_tag_1281", align 1 - switch i8 %"$$resopt_38_tag_1282", label %"$empty_default_1283" [ - i8 0, label %"$Some_1284" - i8 1, label %"$None_1332" - ], !dbg !132 - -"$Some_1284": ; preds = %"$have_gas_1277" - %"$$resopt_38_1285" = bitcast %TName_Option_Int256* %"$$resopt_38_1280" to %CName_Some_Int256* - %"$res_gep_1286" = getelementptr inbounds %CName_Some_Int256, %CName_Some_Int256* %"$$resopt_38_1285", i32 0, i32 1 - %"$res_load_1287" = load %Int256, %Int256* %"$res_gep_1286", align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$test_39", metadata !273, metadata !DIExpression()), !dbg !274 + %"$gasrem_1276" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1277" = icmp ugt i64 2, %"$gasrem_1276" + br i1 %"$gascmp_1277", label %"$out_of_gas_1278", label %"$have_gas_1279" + +"$out_of_gas_1278": ; preds = %"$have_gas_1274" + call void @_out_of_gas() + br label %"$have_gas_1279" + +"$have_gas_1279": ; preds = %"$out_of_gas_1278", %"$have_gas_1274" + %"$consume_1280" = sub i64 %"$gasrem_1276", 2 + store i64 %"$consume_1280", i64* @_gasrem, align 8 + %"$$resopt_38_1282" = load %TName_Option_Int256*, %TName_Option_Int256** %"$resopt_38", align 8 + %"$$resopt_38_tag_1283" = getelementptr inbounds %TName_Option_Int256, %TName_Option_Int256* %"$$resopt_38_1282", i32 0, i32 0 + %"$$resopt_38_tag_1284" = load i8, i8* %"$$resopt_38_tag_1283", align 1 + switch i8 %"$$resopt_38_tag_1284", label %"$empty_default_1285" [ + i8 0, label %"$Some_1286" + i8 1, label %"$None_1334" + ], !dbg !275 + +"$Some_1286": ; preds = %"$have_gas_1279" + %"$$resopt_38_1287" = bitcast %TName_Option_Int256* %"$$resopt_38_1282" to %CName_Some_Int256* + %"$res_gep_1288" = getelementptr inbounds %CName_Some_Int256, %CName_Some_Int256* %"$$resopt_38_1287", i32 0, i32 1 + %"$res_load_1289" = load %Int256, %Int256* %"$res_gep_1288", align 8 %res25 = alloca %Int256, align 8 - store %Int256 %"$res_load_1287", %Int256* %res25, align 8 - %"$gasrem_1288" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1289" = icmp ugt i64 1, %"$gasrem_1288" - br i1 %"$gascmp_1289", label %"$out_of_gas_1290", label %"$have_gas_1291" + store %Int256 %"$res_load_1289", %Int256* %res25, align 8 + %"$gasrem_1290" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1291" = icmp ugt i64 1, %"$gasrem_1290" + br i1 %"$gascmp_1291", label %"$out_of_gas_1292", label %"$have_gas_1293" -"$out_of_gas_1290": ; preds = %"$Some_1284" +"$out_of_gas_1292": ; preds = %"$Some_1286" call void @_out_of_gas() - br label %"$have_gas_1291" + br label %"$have_gas_1293" -"$have_gas_1291": ; preds = %"$out_of_gas_1290", %"$Some_1284" - %"$consume_1292" = sub i64 %"$gasrem_1288", 1 - store i64 %"$consume_1292", i64* @_gasrem, align 8 +"$have_gas_1293": ; preds = %"$out_of_gas_1292", %"$Some_1286" + %"$consume_1294" = sub i64 %"$gasrem_1290", 1 + store i64 %"$consume_1294", i64* @_gasrem, align 8 %input_26 = alloca %Int256, 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" + call void @llvm.dbg.declare(metadata %Int256* %input_26, metadata !276, metadata !DIExpression()), !dbg !279 + %"$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_1295": ; preds = %"$have_gas_1291" +"$out_of_gas_1297": ; preds = %"$have_gas_1293" call void @_out_of_gas() - br label %"$have_gas_1296" + br label %"$have_gas_1298" -"$have_gas_1296": ; preds = %"$out_of_gas_1295", %"$have_gas_1291" - %"$consume_1297" = sub i64 %"$gasrem_1293", 1 - store i64 %"$consume_1297", i64* @_gasrem, align 8 - store %Int256 { i256 9223372036854775807 }, %Int256* %input_26, align 8, !dbg !133 - %"$gasrem_1298" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1299" = icmp ugt i64 1, %"$gasrem_1298" - br i1 %"$gascmp_1299", label %"$out_of_gas_1300", label %"$have_gas_1301" +"$have_gas_1298": ; preds = %"$out_of_gas_1297", %"$have_gas_1293" + %"$consume_1299" = sub i64 %"$gasrem_1295", 1 + store i64 %"$consume_1299", i64* @_gasrem, align 8 + store %Int256 { i256 9223372036854775807 }, %Int256* %input_26, align 8, !dbg !280 + %"$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_1300": ; preds = %"$have_gas_1296" +"$out_of_gas_1302": ; preds = %"$have_gas_1298" call void @_out_of_gas() - br label %"$have_gas_1301" + br label %"$have_gas_1303" -"$have_gas_1301": ; preds = %"$out_of_gas_1300", %"$have_gas_1296" - %"$consume_1302" = sub i64 %"$gasrem_1298", 1 - store i64 %"$consume_1302", i64* @_gasrem, align 8 +"$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 %test_27 = alloca %TName_Bool*, align 8 - %"$gasrem_1304" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1305" = icmp ugt i64 16, %"$gasrem_1304" - br i1 %"$gascmp_1305", label %"$out_of_gas_1306", label %"$have_gas_1307" - -"$out_of_gas_1306": ; preds = %"$have_gas_1301" - call void @_out_of_gas() - br label %"$have_gas_1307" - -"$have_gas_1307": ; preds = %"$out_of_gas_1306", %"$have_gas_1301" - %"$consume_1308" = sub i64 %"$gasrem_1304", 16 - store i64 %"$consume_1308", i64* @_gasrem, align 8 - %"$execptr_load_1309" = load i8*, i8** @_execptr, align 8 - %"$eq_res_1310" = alloca %Int256, align 8 - %"$res_1311" = load %Int256, %Int256* %res25, align 8 - store %Int256 %"$res_1311", %Int256* %"$eq_res_1310", align 8 - %"$eq_input__1312" = alloca %Int256, align 8 - %"$input__1313" = load %Int256, %Int256* %input_26, align 8 - store %Int256 %"$input__1313", %Int256* %"$eq_input__1312", align 8 - %"$eq_call_1314" = call %TName_Bool* @_eq_Int256(i8* %"$execptr_load_1309", %Int256* %"$eq_res_1310", %Int256* %"$eq_input__1312"), !dbg !136 - store %TName_Bool* %"$eq_call_1314", %TName_Bool** %test_27, align 8, !dbg !136 - %"$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_1307" - call void @_out_of_gas() - br label %"$have_gas_1319" - -"$have_gas_1319": ; preds = %"$out_of_gas_1318", %"$have_gas_1307" - %"$consume_1320" = sub i64 %"$gasrem_1316", 1 - store i64 %"$consume_1320", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %test_27, metadata !281, metadata !DIExpression()), !dbg !282 + %"$gasrem_1306" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1307" = icmp ugt i64 16, %"$gasrem_1306" + br i1 %"$gascmp_1307", label %"$out_of_gas_1308", label %"$have_gas_1309" + +"$out_of_gas_1308": ; preds = %"$have_gas_1303" + call void @_out_of_gas() + br label %"$have_gas_1309" + +"$have_gas_1309": ; preds = %"$out_of_gas_1308", %"$have_gas_1303" + %"$consume_1310" = sub i64 %"$gasrem_1306", 16 + store i64 %"$consume_1310", i64* @_gasrem, align 8 + %"$execptr_load_1311" = load i8*, i8** @_execptr, align 8 + %"$eq_res_1312" = alloca %Int256, align 8 + %"$res_1313" = load %Int256, %Int256* %res25, align 8 + store %Int256 %"$res_1313", %Int256* %"$eq_res_1312", align 8 + %"$eq_input__1314" = alloca %Int256, align 8 + %"$input__1315" = load %Int256, %Int256* %input_26, align 8 + store %Int256 %"$input__1315", %Int256* %"$eq_input__1314", align 8 + %"$eq_call_1316" = call %TName_Bool* @_eq_Int256(i8* %"$execptr_load_1311", %Int256* %"$eq_res_1312", %Int256* %"$eq_input__1314"), !dbg !283 + store %TName_Bool* %"$eq_call_1316", %TName_Bool** %test_27, align 8, !dbg !283 + %"$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 = %"$have_gas_1309" + call void @_out_of_gas() + br label %"$have_gas_1321" + +"$have_gas_1321": ; preds = %"$out_of_gas_1320", %"$have_gas_1309" + %"$consume_1322" = sub i64 %"$gasrem_1318", 1 + store i64 %"$consume_1322", i64* @_gasrem, align 8 %"$BoolUtils.andb_73" = alloca { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, align 8 - %"$BoolUtils.andb_1321" = 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_1322" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_1321", 0 - %"$BoolUtils.andb_envptr_1323" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_1321", 1 - %"$$test_36_1324" = load %TName_Bool*, %TName_Bool** %"$test_36", align 8 - %"$BoolUtils.andb_call_1325" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_1322"(i8* %"$BoolUtils.andb_envptr_1323", %TName_Bool* %"$$test_36_1324"), !dbg !137 - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_1325", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_73", align 8, !dbg !137 + %"$BoolUtils.andb_1323" = 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_1324" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_1323", 0 + %"$BoolUtils.andb_envptr_1325" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_1323", 1 + %"$$test_36_1326" = load %TName_Bool*, %TName_Bool** %"$test_36", align 8 + %"$BoolUtils.andb_call_1327" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_1324"(i8* %"$BoolUtils.andb_envptr_1325", %TName_Bool* %"$$test_36_1326"), !dbg !284 + store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_1327", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_73", align 8, !dbg !284 %"$BoolUtils.andb_74" = alloca %TName_Bool*, align 8 - %"$$BoolUtils.andb_73_1326" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_73", align 8 - %"$$BoolUtils.andb_73_fptr_1327" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_73_1326", 0 - %"$$BoolUtils.andb_73_envptr_1328" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_73_1326", 1 - %"$test__1329" = load %TName_Bool*, %TName_Bool** %test_27, align 8 - %"$$BoolUtils.andb_73_call_1330" = call %TName_Bool* %"$$BoolUtils.andb_73_fptr_1327"(i8* %"$$BoolUtils.andb_73_envptr_1328", %TName_Bool* %"$test__1329"), !dbg !137 - store %TName_Bool* %"$$BoolUtils.andb_73_call_1330", %TName_Bool** %"$BoolUtils.andb_74", align 8, !dbg !137 - %"$$BoolUtils.andb_74_1331" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_74", align 8 - store %TName_Bool* %"$$BoolUtils.andb_74_1331", %TName_Bool** %"$test_39", align 8, !dbg !137 - br label %"$matchsucc_1279" - -"$None_1332": ; preds = %"$have_gas_1277" - %"$$resopt_38_1333" = bitcast %TName_Option_Int256* %"$$resopt_38_1280" to %CName_None_Int256* - %"$gasrem_1334" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1335" = icmp ugt i64 1, %"$gasrem_1334" - br i1 %"$gascmp_1335", label %"$out_of_gas_1336", label %"$have_gas_1337" - -"$out_of_gas_1336": ; preds = %"$None_1332" - call void @_out_of_gas() - br label %"$have_gas_1337" - -"$have_gas_1337": ; preds = %"$out_of_gas_1336", %"$None_1332" - %"$consume_1338" = sub i64 %"$gasrem_1334", 1 - store i64 %"$consume_1338", i64* @_gasrem, align 8 - %"$false_1339" = load %TName_Bool*, %TName_Bool** %false, align 8 - store %TName_Bool* %"$false_1339", %TName_Bool** %"$test_39", align 8, !dbg !138 - br label %"$matchsucc_1279" - -"$empty_default_1283": ; preds = %"$have_gas_1277" - br label %"$matchsucc_1279" - -"$matchsucc_1279": ; preds = %"$have_gas_1337", %"$have_gas_1319", %"$empty_default_1283" - %"$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 = %"$matchsucc_1279" - call void @_out_of_gas() - br label %"$have_gas_1343" - -"$have_gas_1343": ; preds = %"$out_of_gas_1342", %"$matchsucc_1279" - %"$consume_1344" = sub i64 %"$gasrem_1340", 1 - store i64 %"$consume_1344", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$BoolUtils.andb_74", metadata !285, metadata !DIExpression()), !dbg !284 + %"$$BoolUtils.andb_73_1328" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_73", align 8 + %"$$BoolUtils.andb_73_fptr_1329" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_73_1328", 0 + %"$$BoolUtils.andb_73_envptr_1330" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_73_1328", 1 + %"$test__1331" = load %TName_Bool*, %TName_Bool** %test_27, align 8 + %"$$BoolUtils.andb_73_call_1332" = call %TName_Bool* %"$$BoolUtils.andb_73_fptr_1329"(i8* %"$$BoolUtils.andb_73_envptr_1330", %TName_Bool* %"$test__1331"), !dbg !284 + store %TName_Bool* %"$$BoolUtils.andb_73_call_1332", %TName_Bool** %"$BoolUtils.andb_74", align 8, !dbg !284 + %"$$BoolUtils.andb_74_1333" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_74", align 8 + store %TName_Bool* %"$$BoolUtils.andb_74_1333", %TName_Bool** %"$test_39", align 8, !dbg !284 + br label %"$matchsucc_1281" + +"$None_1334": ; preds = %"$have_gas_1279" + %"$$resopt_38_1335" = bitcast %TName_Option_Int256* %"$$resopt_38_1282" to %CName_None_Int256* + %"$gasrem_1336" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1337" = icmp ugt i64 1, %"$gasrem_1336" + br i1 %"$gascmp_1337", label %"$out_of_gas_1338", label %"$have_gas_1339" + +"$out_of_gas_1338": ; preds = %"$None_1334" + call void @_out_of_gas() + br label %"$have_gas_1339" + +"$have_gas_1339": ; preds = %"$out_of_gas_1338", %"$None_1334" + %"$consume_1340" = sub i64 %"$gasrem_1336", 1 + store i64 %"$consume_1340", i64* @_gasrem, align 8 + %"$false_1341" = load %TName_Bool*, %TName_Bool** %false, align 8 + store %TName_Bool* %"$false_1341", %TName_Bool** %"$test_39", align 8, !dbg !286 + br label %"$matchsucc_1281" + +"$empty_default_1285": ; preds = %"$have_gas_1279" + br label %"$matchsucc_1281" + +"$matchsucc_1281": ; preds = %"$have_gas_1339", %"$have_gas_1321", %"$empty_default_1285" + %"$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_1344": ; preds = %"$matchsucc_1281" + call void @_out_of_gas() + br label %"$have_gas_1345" + +"$have_gas_1345": ; preds = %"$out_of_gas_1344", %"$matchsucc_1281" + %"$consume_1346" = sub i64 %"$gasrem_1342", 1 + store i64 %"$consume_1346", i64* @_gasrem, align 8 %"$input_40" = 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" + call void @llvm.dbg.declare(metadata %String* %"$input_40", metadata !288, metadata !DIExpression()), !dbg !289 + %"$gasrem_1347" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1348" = icmp ugt i64 1, %"$gasrem_1347" + br i1 %"$gascmp_1348", label %"$out_of_gas_1349", label %"$have_gas_1350" -"$out_of_gas_1347": ; preds = %"$have_gas_1343" +"$out_of_gas_1349": ; preds = %"$have_gas_1345" call void @_out_of_gas() - br label %"$have_gas_1348" + br label %"$have_gas_1350" -"$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 ([19 x i8], [19 x i8]* @"$stringlit_1350", i32 0, i32 0), i32 19 }, %String* %"$input_40", align 8, !dbg !140 - %"$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_1350": ; preds = %"$out_of_gas_1349", %"$have_gas_1345" + %"$consume_1351" = sub i64 %"$gasrem_1347", 1 + store i64 %"$consume_1351", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([19 x i8], [19 x i8]* @"$stringlit_1352", i32 0, i32 0), i32 19 }, %String* %"$input_40", align 8, !dbg !290 + %"$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_1353": ; preds = %"$have_gas_1348" +"$out_of_gas_1355": ; preds = %"$have_gas_1350" call void @_out_of_gas() - br label %"$have_gas_1354" + br label %"$have_gas_1356" -"$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 +"$have_gas_1356": ; preds = %"$out_of_gas_1355", %"$have_gas_1350" + %"$consume_1357" = sub i64 %"$gasrem_1353", 1 + store i64 %"$consume_1357", i64* @_gasrem, align 8 %"$resopt_41" = alloca %TName_Option_Int256*, align 8 - %"$gasrem_1356" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1357" = icmp ugt i64 16, %"$gasrem_1356" - br i1 %"$gascmp_1357", label %"$out_of_gas_1358", label %"$have_gas_1359" - -"$out_of_gas_1358": ; preds = %"$have_gas_1354" - call void @_out_of_gas() - br label %"$have_gas_1359" - -"$have_gas_1359": ; preds = %"$out_of_gas_1358", %"$have_gas_1354" - %"$consume_1360" = sub i64 %"$gasrem_1356", 16 - store i64 %"$consume_1360", i64* @_gasrem, align 8 - %"$execptr_load_1361" = load i8*, i8** @_execptr, align 8 - %"$to_int256_$input_40_1362" = alloca %String, align 8 - %"$$input_40_1363" = load %String, %String* %"$input_40", align 8 - store %String %"$$input_40_1363", %String* %"$to_int256_$input_40_1362", align 8 - %"$$to_int256_$input_40_1362_1364" = bitcast %String* %"$to_int256_$input_40_1362" to i8* - %"$to_int256_call_1365" = call i8* @_to_int256(i8* %"$execptr_load_1361", %_TyDescrTy_Typ* @"$TyDescr_String_104", i8* %"$$to_int256_$input_40_1362_1364"), !dbg !141 - %"$to_int256_1366" = bitcast i8* %"$to_int256_call_1365" to %TName_Option_Int256* - store %TName_Option_Int256* %"$to_int256_1366", %TName_Option_Int256** %"$resopt_41", align 8, !dbg !141 - %"$gasrem_1367" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1368" = icmp ugt i64 1, %"$gasrem_1367" - br i1 %"$gascmp_1368", label %"$out_of_gas_1369", label %"$have_gas_1370" - -"$out_of_gas_1369": ; preds = %"$have_gas_1359" - call void @_out_of_gas() - br label %"$have_gas_1370" - -"$have_gas_1370": ; preds = %"$out_of_gas_1369", %"$have_gas_1359" - %"$consume_1371" = sub i64 %"$gasrem_1367", 1 - store i64 %"$consume_1371", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Option_Int256** %"$resopt_41", metadata !291, metadata !DIExpression()), !dbg !292 + %"$gasrem_1358" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1359" = icmp ugt i64 16, %"$gasrem_1358" + br i1 %"$gascmp_1359", label %"$out_of_gas_1360", label %"$have_gas_1361" + +"$out_of_gas_1360": ; preds = %"$have_gas_1356" + call void @_out_of_gas() + br label %"$have_gas_1361" + +"$have_gas_1361": ; preds = %"$out_of_gas_1360", %"$have_gas_1356" + %"$consume_1362" = sub i64 %"$gasrem_1358", 16 + store i64 %"$consume_1362", i64* @_gasrem, align 8 + %"$execptr_load_1363" = load i8*, i8** @_execptr, align 8 + %"$to_int256_$input_40_1364" = alloca %String, align 8 + %"$$input_40_1365" = load %String, %String* %"$input_40", align 8 + store %String %"$$input_40_1365", %String* %"$to_int256_$input_40_1364", align 8 + %"$$to_int256_$input_40_1364_1366" = bitcast %String* %"$to_int256_$input_40_1364" to i8* + %"$to_int256_call_1367" = call i8* @_to_int256(i8* %"$execptr_load_1363", %_TyDescrTy_Typ* @"$TyDescr_String_104", i8* %"$$to_int256_$input_40_1364_1366"), !dbg !293 + %"$to_int256_1368" = bitcast i8* %"$to_int256_call_1367" to %TName_Option_Int256* + store %TName_Option_Int256* %"$to_int256_1368", %TName_Option_Int256** %"$resopt_41", align 8, !dbg !293 + %"$gasrem_1369" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1370" = icmp ugt i64 1, %"$gasrem_1369" + br i1 %"$gascmp_1370", label %"$out_of_gas_1371", label %"$have_gas_1372" + +"$out_of_gas_1371": ; preds = %"$have_gas_1361" + call void @_out_of_gas() + br label %"$have_gas_1372" + +"$have_gas_1372": ; preds = %"$out_of_gas_1371", %"$have_gas_1361" + %"$consume_1373" = sub i64 %"$gasrem_1369", 1 + store i64 %"$consume_1373", i64* @_gasrem, align 8 %"$test_42" = alloca %TName_Bool*, align 8 - %"$gasrem_1372" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1373" = icmp ugt i64 2, %"$gasrem_1372" - br i1 %"$gascmp_1373", label %"$out_of_gas_1374", label %"$have_gas_1375" - -"$out_of_gas_1374": ; preds = %"$have_gas_1370" - call void @_out_of_gas() - br label %"$have_gas_1375" - -"$have_gas_1375": ; preds = %"$out_of_gas_1374", %"$have_gas_1370" - %"$consume_1376" = sub i64 %"$gasrem_1372", 2 - store i64 %"$consume_1376", i64* @_gasrem, align 8 - %"$$resopt_41_1378" = load %TName_Option_Int256*, %TName_Option_Int256** %"$resopt_41", align 8 - %"$$resopt_41_tag_1379" = getelementptr inbounds %TName_Option_Int256, %TName_Option_Int256* %"$$resopt_41_1378", i32 0, i32 0 - %"$$resopt_41_tag_1380" = load i8, i8* %"$$resopt_41_tag_1379", align 1 - switch i8 %"$$resopt_41_tag_1380", label %"$empty_default_1381" [ - i8 0, label %"$Some_1382" - i8 1, label %"$None_1430" - ], !dbg !142 - -"$Some_1382": ; preds = %"$have_gas_1375" - %"$$resopt_41_1383" = bitcast %TName_Option_Int256* %"$$resopt_41_1378" to %CName_Some_Int256* - %"$res_gep_1384" = getelementptr inbounds %CName_Some_Int256, %CName_Some_Int256* %"$$resopt_41_1383", i32 0, i32 1 - %"$res_load_1385" = load %Int256, %Int256* %"$res_gep_1384", align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$test_42", metadata !294, metadata !DIExpression()), !dbg !295 + %"$gasrem_1374" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1375" = icmp ugt i64 2, %"$gasrem_1374" + br i1 %"$gascmp_1375", label %"$out_of_gas_1376", label %"$have_gas_1377" + +"$out_of_gas_1376": ; preds = %"$have_gas_1372" + call void @_out_of_gas() + br label %"$have_gas_1377" + +"$have_gas_1377": ; preds = %"$out_of_gas_1376", %"$have_gas_1372" + %"$consume_1378" = sub i64 %"$gasrem_1374", 2 + store i64 %"$consume_1378", i64* @_gasrem, align 8 + %"$$resopt_41_1380" = load %TName_Option_Int256*, %TName_Option_Int256** %"$resopt_41", align 8 + %"$$resopt_41_tag_1381" = getelementptr inbounds %TName_Option_Int256, %TName_Option_Int256* %"$$resopt_41_1380", i32 0, i32 0 + %"$$resopt_41_tag_1382" = load i8, i8* %"$$resopt_41_tag_1381", align 1 + switch i8 %"$$resopt_41_tag_1382", label %"$empty_default_1383" [ + i8 0, label %"$Some_1384" + i8 1, label %"$None_1432" + ], !dbg !296 + +"$Some_1384": ; preds = %"$have_gas_1377" + %"$$resopt_41_1385" = bitcast %TName_Option_Int256* %"$$resopt_41_1380" to %CName_Some_Int256* + %"$res_gep_1386" = getelementptr inbounds %CName_Some_Int256, %CName_Some_Int256* %"$$resopt_41_1385", i32 0, i32 1 + %"$res_load_1387" = load %Int256, %Int256* %"$res_gep_1386", align 8 %res28 = alloca %Int256, align 8 - store %Int256 %"$res_load_1385", %Int256* %res28, align 8 - %"$gasrem_1386" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1387" = icmp ugt i64 1, %"$gasrem_1386" - br i1 %"$gascmp_1387", label %"$out_of_gas_1388", label %"$have_gas_1389" + store %Int256 %"$res_load_1387", %Int256* %res28, align 8 + %"$gasrem_1388" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1389" = icmp ugt i64 1, %"$gasrem_1388" + br i1 %"$gascmp_1389", label %"$out_of_gas_1390", label %"$have_gas_1391" -"$out_of_gas_1388": ; preds = %"$Some_1382" +"$out_of_gas_1390": ; preds = %"$Some_1384" call void @_out_of_gas() - br label %"$have_gas_1389" + br label %"$have_gas_1391" -"$have_gas_1389": ; preds = %"$out_of_gas_1388", %"$Some_1382" - %"$consume_1390" = sub i64 %"$gasrem_1386", 1 - store i64 %"$consume_1390", i64* @_gasrem, align 8 +"$have_gas_1391": ; preds = %"$out_of_gas_1390", %"$Some_1384" + %"$consume_1392" = sub i64 %"$gasrem_1388", 1 + store i64 %"$consume_1392", i64* @_gasrem, align 8 %input_29 = alloca %Int256, align 8 - %"$gasrem_1391" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1392" = icmp ugt i64 1, %"$gasrem_1391" - br i1 %"$gascmp_1392", label %"$out_of_gas_1393", label %"$have_gas_1394" + call void @llvm.dbg.declare(metadata %Int256* %input_29, metadata !297, metadata !DIExpression()), !dbg !300 + %"$gasrem_1393" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1394" = icmp ugt i64 1, %"$gasrem_1393" + br i1 %"$gascmp_1394", label %"$out_of_gas_1395", label %"$have_gas_1396" -"$out_of_gas_1393": ; preds = %"$have_gas_1389" +"$out_of_gas_1395": ; preds = %"$have_gas_1391" call void @_out_of_gas() - br label %"$have_gas_1394" + br label %"$have_gas_1396" -"$have_gas_1394": ; preds = %"$out_of_gas_1393", %"$have_gas_1389" - %"$consume_1395" = sub i64 %"$gasrem_1391", 1 - store i64 %"$consume_1395", i64* @_gasrem, align 8 - store %Int256 { i256 9223372036854775807 }, %Int256* %input_29, align 8, !dbg !143 - %"$gasrem_1396" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1397" = icmp ugt i64 1, %"$gasrem_1396" - br i1 %"$gascmp_1397", label %"$out_of_gas_1398", label %"$have_gas_1399" +"$have_gas_1396": ; preds = %"$out_of_gas_1395", %"$have_gas_1391" + %"$consume_1397" = sub i64 %"$gasrem_1393", 1 + store i64 %"$consume_1397", i64* @_gasrem, align 8 + store %Int256 { i256 9223372036854775807 }, %Int256* %input_29, align 8, !dbg !301 + %"$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_1398": ; preds = %"$have_gas_1394" +"$out_of_gas_1400": ; preds = %"$have_gas_1396" call void @_out_of_gas() - br label %"$have_gas_1399" + br label %"$have_gas_1401" -"$have_gas_1399": ; preds = %"$out_of_gas_1398", %"$have_gas_1394" - %"$consume_1400" = sub i64 %"$gasrem_1396", 1 - store i64 %"$consume_1400", i64* @_gasrem, align 8 +"$have_gas_1401": ; preds = %"$out_of_gas_1400", %"$have_gas_1396" + %"$consume_1402" = sub i64 %"$gasrem_1398", 1 + store i64 %"$consume_1402", i64* @_gasrem, align 8 %test_30 = alloca %TName_Bool*, align 8 - %"$gasrem_1402" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1403" = icmp ugt i64 16, %"$gasrem_1402" - br i1 %"$gascmp_1403", label %"$out_of_gas_1404", label %"$have_gas_1405" - -"$out_of_gas_1404": ; preds = %"$have_gas_1399" - call void @_out_of_gas() - br label %"$have_gas_1405" - -"$have_gas_1405": ; preds = %"$out_of_gas_1404", %"$have_gas_1399" - %"$consume_1406" = sub i64 %"$gasrem_1402", 16 - store i64 %"$consume_1406", i64* @_gasrem, align 8 - %"$execptr_load_1407" = load i8*, i8** @_execptr, align 8 - %"$eq_res_1408" = alloca %Int256, align 8 - %"$res_1409" = load %Int256, %Int256* %res28, align 8 - store %Int256 %"$res_1409", %Int256* %"$eq_res_1408", align 8 - %"$eq_input__1410" = alloca %Int256, align 8 - %"$input__1411" = load %Int256, %Int256* %input_29, align 8 - store %Int256 %"$input__1411", %Int256* %"$eq_input__1410", align 8 - %"$eq_call_1412" = call %TName_Bool* @_eq_Int256(i8* %"$execptr_load_1407", %Int256* %"$eq_res_1408", %Int256* %"$eq_input__1410"), !dbg !146 - store %TName_Bool* %"$eq_call_1412", %TName_Bool** %test_30, align 8, !dbg !146 - %"$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 = %"$have_gas_1405" - call void @_out_of_gas() - br label %"$have_gas_1417" - -"$have_gas_1417": ; preds = %"$out_of_gas_1416", %"$have_gas_1405" - %"$consume_1418" = sub i64 %"$gasrem_1414", 1 - store i64 %"$consume_1418", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %test_30, metadata !302, metadata !DIExpression()), !dbg !303 + %"$gasrem_1404" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1405" = icmp ugt i64 16, %"$gasrem_1404" + br i1 %"$gascmp_1405", label %"$out_of_gas_1406", label %"$have_gas_1407" + +"$out_of_gas_1406": ; preds = %"$have_gas_1401" + call void @_out_of_gas() + br label %"$have_gas_1407" + +"$have_gas_1407": ; preds = %"$out_of_gas_1406", %"$have_gas_1401" + %"$consume_1408" = sub i64 %"$gasrem_1404", 16 + store i64 %"$consume_1408", i64* @_gasrem, align 8 + %"$execptr_load_1409" = load i8*, i8** @_execptr, align 8 + %"$eq_res_1410" = alloca %Int256, align 8 + %"$res_1411" = load %Int256, %Int256* %res28, align 8 + store %Int256 %"$res_1411", %Int256* %"$eq_res_1410", align 8 + %"$eq_input__1412" = alloca %Int256, align 8 + %"$input__1413" = load %Int256, %Int256* %input_29, align 8 + store %Int256 %"$input__1413", %Int256* %"$eq_input__1412", align 8 + %"$eq_call_1414" = call %TName_Bool* @_eq_Int256(i8* %"$execptr_load_1409", %Int256* %"$eq_res_1410", %Int256* %"$eq_input__1412"), !dbg !304 + store %TName_Bool* %"$eq_call_1414", %TName_Bool** %test_30, align 8, !dbg !304 + %"$gasrem_1416" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1417" = icmp ugt i64 1, %"$gasrem_1416" + br i1 %"$gascmp_1417", label %"$out_of_gas_1418", label %"$have_gas_1419" + +"$out_of_gas_1418": ; preds = %"$have_gas_1407" + call void @_out_of_gas() + br label %"$have_gas_1419" + +"$have_gas_1419": ; preds = %"$out_of_gas_1418", %"$have_gas_1407" + %"$consume_1420" = sub i64 %"$gasrem_1416", 1 + store i64 %"$consume_1420", i64* @_gasrem, align 8 %"$BoolUtils.andb_75" = alloca { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, align 8 - %"$BoolUtils.andb_1419" = 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_1420" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_1419", 0 - %"$BoolUtils.andb_envptr_1421" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_1419", 1 - %"$$test_39_1422" = load %TName_Bool*, %TName_Bool** %"$test_39", align 8 - %"$BoolUtils.andb_call_1423" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_1420"(i8* %"$BoolUtils.andb_envptr_1421", %TName_Bool* %"$$test_39_1422"), !dbg !147 - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_1423", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_75", align 8, !dbg !147 + %"$BoolUtils.andb_1421" = 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_1422" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_1421", 0 + %"$BoolUtils.andb_envptr_1423" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_1421", 1 + %"$$test_39_1424" = load %TName_Bool*, %TName_Bool** %"$test_39", align 8 + %"$BoolUtils.andb_call_1425" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_1422"(i8* %"$BoolUtils.andb_envptr_1423", %TName_Bool* %"$$test_39_1424"), !dbg !305 + store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_1425", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_75", align 8, !dbg !305 %"$BoolUtils.andb_76" = alloca %TName_Bool*, align 8 - %"$$BoolUtils.andb_75_1424" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_75", align 8 - %"$$BoolUtils.andb_75_fptr_1425" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_75_1424", 0 - %"$$BoolUtils.andb_75_envptr_1426" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_75_1424", 1 - %"$test__1427" = load %TName_Bool*, %TName_Bool** %test_30, align 8 - %"$$BoolUtils.andb_75_call_1428" = call %TName_Bool* %"$$BoolUtils.andb_75_fptr_1425"(i8* %"$$BoolUtils.andb_75_envptr_1426", %TName_Bool* %"$test__1427"), !dbg !147 - store %TName_Bool* %"$$BoolUtils.andb_75_call_1428", %TName_Bool** %"$BoolUtils.andb_76", align 8, !dbg !147 - %"$$BoolUtils.andb_76_1429" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_76", align 8 - store %TName_Bool* %"$$BoolUtils.andb_76_1429", %TName_Bool** %"$test_42", align 8, !dbg !147 - br label %"$matchsucc_1377" - -"$None_1430": ; preds = %"$have_gas_1375" - %"$$resopt_41_1431" = bitcast %TName_Option_Int256* %"$$resopt_41_1378" to %CName_None_Int256* - %"$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 = %"$None_1430" - call void @_out_of_gas() - br label %"$have_gas_1435" - -"$have_gas_1435": ; preds = %"$out_of_gas_1434", %"$None_1430" - %"$consume_1436" = sub i64 %"$gasrem_1432", 1 - store i64 %"$consume_1436", i64* @_gasrem, align 8 - %"$false_1437" = load %TName_Bool*, %TName_Bool** %false, align 8 - store %TName_Bool* %"$false_1437", %TName_Bool** %"$test_42", align 8, !dbg !148 - br label %"$matchsucc_1377" - -"$empty_default_1381": ; preds = %"$have_gas_1375" - br label %"$matchsucc_1377" - -"$matchsucc_1377": ; preds = %"$have_gas_1435", %"$have_gas_1417", %"$empty_default_1381" - %"$gasrem_1438" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1439" = icmp ugt i64 1, %"$gasrem_1438" - br i1 %"$gascmp_1439", label %"$out_of_gas_1440", label %"$have_gas_1441" - -"$out_of_gas_1440": ; preds = %"$matchsucc_1377" - call void @_out_of_gas() - br label %"$have_gas_1441" - -"$have_gas_1441": ; preds = %"$out_of_gas_1440", %"$matchsucc_1377" - %"$consume_1442" = sub i64 %"$gasrem_1438", 1 - store i64 %"$consume_1442", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$BoolUtils.andb_76", metadata !306, metadata !DIExpression()), !dbg !305 + %"$$BoolUtils.andb_75_1426" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_75", align 8 + %"$$BoolUtils.andb_75_fptr_1427" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_75_1426", 0 + %"$$BoolUtils.andb_75_envptr_1428" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_75_1426", 1 + %"$test__1429" = load %TName_Bool*, %TName_Bool** %test_30, align 8 + %"$$BoolUtils.andb_75_call_1430" = call %TName_Bool* %"$$BoolUtils.andb_75_fptr_1427"(i8* %"$$BoolUtils.andb_75_envptr_1428", %TName_Bool* %"$test__1429"), !dbg !305 + store %TName_Bool* %"$$BoolUtils.andb_75_call_1430", %TName_Bool** %"$BoolUtils.andb_76", align 8, !dbg !305 + %"$$BoolUtils.andb_76_1431" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_76", align 8 + store %TName_Bool* %"$$BoolUtils.andb_76_1431", %TName_Bool** %"$test_42", align 8, !dbg !305 + br label %"$matchsucc_1379" + +"$None_1432": ; preds = %"$have_gas_1377" + %"$$resopt_41_1433" = bitcast %TName_Option_Int256* %"$$resopt_41_1380" to %CName_None_Int256* + %"$gasrem_1434" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1435" = icmp ugt i64 1, %"$gasrem_1434" + br i1 %"$gascmp_1435", label %"$out_of_gas_1436", label %"$have_gas_1437" + +"$out_of_gas_1436": ; preds = %"$None_1432" + call void @_out_of_gas() + br label %"$have_gas_1437" + +"$have_gas_1437": ; preds = %"$out_of_gas_1436", %"$None_1432" + %"$consume_1438" = sub i64 %"$gasrem_1434", 1 + store i64 %"$consume_1438", i64* @_gasrem, align 8 + %"$false_1439" = load %TName_Bool*, %TName_Bool** %false, align 8 + store %TName_Bool* %"$false_1439", %TName_Bool** %"$test_42", align 8, !dbg !307 + br label %"$matchsucc_1379" + +"$empty_default_1383": ; preds = %"$have_gas_1377" + br label %"$matchsucc_1379" + +"$matchsucc_1379": ; preds = %"$have_gas_1437", %"$have_gas_1419", %"$empty_default_1383" + %"$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 = %"$matchsucc_1379" + call void @_out_of_gas() + br label %"$have_gas_1443" + +"$have_gas_1443": ; preds = %"$out_of_gas_1442", %"$matchsucc_1379" + %"$consume_1444" = sub i64 %"$gasrem_1440", 1 + store i64 %"$consume_1444", i64* @_gasrem, align 8 %"$input_43" = alloca %Uint256, align 8 - %"$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" + call void @llvm.dbg.declare(metadata %Uint256* %"$input_43", metadata !309, metadata !DIExpression()), !dbg !311 + %"$gasrem_1445" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1446" = icmp ugt i64 1, %"$gasrem_1445" + br i1 %"$gascmp_1446", label %"$out_of_gas_1447", label %"$have_gas_1448" -"$out_of_gas_1445": ; preds = %"$have_gas_1441" +"$out_of_gas_1447": ; preds = %"$have_gas_1443" call void @_out_of_gas() - br label %"$have_gas_1446" + br label %"$have_gas_1448" -"$have_gas_1446": ; preds = %"$out_of_gas_1445", %"$have_gas_1441" - %"$consume_1447" = sub i64 %"$gasrem_1443", 1 - store i64 %"$consume_1447", i64* @_gasrem, align 8 - store %Uint256 { i256 57896044618658097711785492504343953926634992332820282019728792003956564819967 }, %Uint256* %"$input_43", align 8, !dbg !150 - %"$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" +"$have_gas_1448": ; preds = %"$out_of_gas_1447", %"$have_gas_1443" + %"$consume_1449" = sub i64 %"$gasrem_1445", 1 + store i64 %"$consume_1449", i64* @_gasrem, align 8 + store %Uint256 { i256 57896044618658097711785492504343953926634992332820282019728792003956564819967 }, %Uint256* %"$input_43", align 8, !dbg !312 + %"$gasrem_1450" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1451" = icmp ugt i64 1, %"$gasrem_1450" + br i1 %"$gascmp_1451", label %"$out_of_gas_1452", label %"$have_gas_1453" -"$out_of_gas_1450": ; preds = %"$have_gas_1446" +"$out_of_gas_1452": ; preds = %"$have_gas_1448" call void @_out_of_gas() - br label %"$have_gas_1451" + br label %"$have_gas_1453" -"$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 +"$have_gas_1453": ; preds = %"$out_of_gas_1452", %"$have_gas_1448" + %"$consume_1454" = sub i64 %"$gasrem_1450", 1 + store i64 %"$consume_1454", i64* @_gasrem, align 8 %"$resopt_44" = alloca %TName_Option_Int256*, align 8 - %"$gasrem_1453" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1454" = icmp ugt i64 16, %"$gasrem_1453" - br i1 %"$gascmp_1454", label %"$out_of_gas_1455", label %"$have_gas_1456" - -"$out_of_gas_1455": ; preds = %"$have_gas_1451" - call void @_out_of_gas() - br label %"$have_gas_1456" - -"$have_gas_1456": ; preds = %"$out_of_gas_1455", %"$have_gas_1451" - %"$consume_1457" = sub i64 %"$gasrem_1453", 16 - store i64 %"$consume_1457", i64* @_gasrem, align 8 - %"$execptr_load_1458" = load i8*, i8** @_execptr, align 8 - %"$to_int256_$input_43_1459" = alloca %Uint256, align 8 - %"$$input_43_1460" = load %Uint256, %Uint256* %"$input_43", align 8 - store %Uint256 %"$$input_43_1460", %Uint256* %"$to_int256_$input_43_1459", align 8 - %"$$to_int256_$input_43_1459_1461" = bitcast %Uint256* %"$to_int256_$input_43_1459" to i8* - %"$to_int256_call_1462" = call i8* @_to_int256(i8* %"$execptr_load_1458", %_TyDescrTy_Typ* @"$TyDescr_Uint256_102", i8* %"$$to_int256_$input_43_1459_1461"), !dbg !151 - %"$to_int256_1463" = bitcast i8* %"$to_int256_call_1462" to %TName_Option_Int256* - store %TName_Option_Int256* %"$to_int256_1463", %TName_Option_Int256** %"$resopt_44", align 8, !dbg !151 - %"$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 = %"$have_gas_1456" - call void @_out_of_gas() - br label %"$have_gas_1467" - -"$have_gas_1467": ; preds = %"$out_of_gas_1466", %"$have_gas_1456" - %"$consume_1468" = sub i64 %"$gasrem_1464", 1 - store i64 %"$consume_1468", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Option_Int256** %"$resopt_44", metadata !313, metadata !DIExpression()), !dbg !314 + %"$gasrem_1455" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1456" = icmp ugt i64 16, %"$gasrem_1455" + br i1 %"$gascmp_1456", label %"$out_of_gas_1457", label %"$have_gas_1458" + +"$out_of_gas_1457": ; preds = %"$have_gas_1453" + call void @_out_of_gas() + br label %"$have_gas_1458" + +"$have_gas_1458": ; preds = %"$out_of_gas_1457", %"$have_gas_1453" + %"$consume_1459" = sub i64 %"$gasrem_1455", 16 + store i64 %"$consume_1459", i64* @_gasrem, align 8 + %"$execptr_load_1460" = load i8*, i8** @_execptr, align 8 + %"$to_int256_$input_43_1461" = alloca %Uint256, align 8 + %"$$input_43_1462" = load %Uint256, %Uint256* %"$input_43", align 8 + store %Uint256 %"$$input_43_1462", %Uint256* %"$to_int256_$input_43_1461", align 8 + %"$$to_int256_$input_43_1461_1463" = bitcast %Uint256* %"$to_int256_$input_43_1461" to i8* + %"$to_int256_call_1464" = call i8* @_to_int256(i8* %"$execptr_load_1460", %_TyDescrTy_Typ* @"$TyDescr_Uint256_102", i8* %"$$to_int256_$input_43_1461_1463"), !dbg !315 + %"$to_int256_1465" = bitcast i8* %"$to_int256_call_1464" to %TName_Option_Int256* + store %TName_Option_Int256* %"$to_int256_1465", %TName_Option_Int256** %"$resopt_44", align 8, !dbg !315 + %"$gasrem_1466" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1467" = icmp ugt i64 1, %"$gasrem_1466" + br i1 %"$gascmp_1467", label %"$out_of_gas_1468", label %"$have_gas_1469" + +"$out_of_gas_1468": ; preds = %"$have_gas_1458" + call void @_out_of_gas() + br label %"$have_gas_1469" + +"$have_gas_1469": ; preds = %"$out_of_gas_1468", %"$have_gas_1458" + %"$consume_1470" = sub i64 %"$gasrem_1466", 1 + store i64 %"$consume_1470", i64* @_gasrem, align 8 %"$test_45" = alloca %TName_Bool*, align 8 - %"$gasrem_1469" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1470" = icmp ugt i64 2, %"$gasrem_1469" - br i1 %"$gascmp_1470", label %"$out_of_gas_1471", label %"$have_gas_1472" - -"$out_of_gas_1471": ; preds = %"$have_gas_1467" - call void @_out_of_gas() - br label %"$have_gas_1472" - -"$have_gas_1472": ; preds = %"$out_of_gas_1471", %"$have_gas_1467" - %"$consume_1473" = sub i64 %"$gasrem_1469", 2 - store i64 %"$consume_1473", i64* @_gasrem, align 8 - %"$$resopt_44_1475" = load %TName_Option_Int256*, %TName_Option_Int256** %"$resopt_44", align 8 - %"$$resopt_44_tag_1476" = getelementptr inbounds %TName_Option_Int256, %TName_Option_Int256* %"$$resopt_44_1475", i32 0, i32 0 - %"$$resopt_44_tag_1477" = load i8, i8* %"$$resopt_44_tag_1476", align 1 - switch i8 %"$$resopt_44_tag_1477", label %"$empty_default_1478" [ - i8 0, label %"$Some_1479" - i8 1, label %"$None_1527" - ], !dbg !152 - -"$Some_1479": ; preds = %"$have_gas_1472" - %"$$resopt_44_1480" = bitcast %TName_Option_Int256* %"$$resopt_44_1475" to %CName_Some_Int256* - %"$res_gep_1481" = getelementptr inbounds %CName_Some_Int256, %CName_Some_Int256* %"$$resopt_44_1480", i32 0, i32 1 - %"$res_load_1482" = load %Int256, %Int256* %"$res_gep_1481", align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$test_45", metadata !316, metadata !DIExpression()), !dbg !317 + %"$gasrem_1471" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1472" = icmp ugt i64 2, %"$gasrem_1471" + br i1 %"$gascmp_1472", label %"$out_of_gas_1473", label %"$have_gas_1474" + +"$out_of_gas_1473": ; preds = %"$have_gas_1469" + call void @_out_of_gas() + br label %"$have_gas_1474" + +"$have_gas_1474": ; preds = %"$out_of_gas_1473", %"$have_gas_1469" + %"$consume_1475" = sub i64 %"$gasrem_1471", 2 + store i64 %"$consume_1475", i64* @_gasrem, align 8 + %"$$resopt_44_1477" = load %TName_Option_Int256*, %TName_Option_Int256** %"$resopt_44", align 8 + %"$$resopt_44_tag_1478" = getelementptr inbounds %TName_Option_Int256, %TName_Option_Int256* %"$$resopt_44_1477", i32 0, i32 0 + %"$$resopt_44_tag_1479" = load i8, i8* %"$$resopt_44_tag_1478", align 1 + switch i8 %"$$resopt_44_tag_1479", label %"$empty_default_1480" [ + i8 0, label %"$Some_1481" + i8 1, label %"$None_1529" + ], !dbg !318 + +"$Some_1481": ; preds = %"$have_gas_1474" + %"$$resopt_44_1482" = bitcast %TName_Option_Int256* %"$$resopt_44_1477" to %CName_Some_Int256* + %"$res_gep_1483" = getelementptr inbounds %CName_Some_Int256, %CName_Some_Int256* %"$$resopt_44_1482", i32 0, i32 1 + %"$res_load_1484" = load %Int256, %Int256* %"$res_gep_1483", align 8 %res31 = alloca %Int256, align 8 - store %Int256 %"$res_load_1482", %Int256* %res31, 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" + store %Int256 %"$res_load_1484", %Int256* %res31, align 8 + %"$gasrem_1485" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1486" = icmp ugt i64 1, %"$gasrem_1485" + br i1 %"$gascmp_1486", label %"$out_of_gas_1487", label %"$have_gas_1488" -"$out_of_gas_1485": ; preds = %"$Some_1479" +"$out_of_gas_1487": ; preds = %"$Some_1481" call void @_out_of_gas() - br label %"$have_gas_1486" + br label %"$have_gas_1488" -"$have_gas_1486": ; preds = %"$out_of_gas_1485", %"$Some_1479" - %"$consume_1487" = sub i64 %"$gasrem_1483", 1 - store i64 %"$consume_1487", i64* @_gasrem, align 8 +"$have_gas_1488": ; preds = %"$out_of_gas_1487", %"$Some_1481" + %"$consume_1489" = sub i64 %"$gasrem_1485", 1 + store i64 %"$consume_1489", i64* @_gasrem, align 8 %input_32 = alloca %Int256, align 8 - %"$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" + call void @llvm.dbg.declare(metadata %Int256* %input_32, metadata !319, metadata !DIExpression()), !dbg !322 + %"$gasrem_1490" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1491" = icmp ugt i64 1, %"$gasrem_1490" + br i1 %"$gascmp_1491", label %"$out_of_gas_1492", label %"$have_gas_1493" -"$out_of_gas_1490": ; preds = %"$have_gas_1486" +"$out_of_gas_1492": ; preds = %"$have_gas_1488" call void @_out_of_gas() - br label %"$have_gas_1491" + br label %"$have_gas_1493" -"$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 %Int256 { i256 57896044618658097711785492504343953926634992332820282019728792003956564819967 }, %Int256* %input_32, align 8, !dbg !153 - %"$gasrem_1493" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1494" = icmp ugt i64 1, %"$gasrem_1493" - br i1 %"$gascmp_1494", label %"$out_of_gas_1495", label %"$have_gas_1496" +"$have_gas_1493": ; preds = %"$out_of_gas_1492", %"$have_gas_1488" + %"$consume_1494" = sub i64 %"$gasrem_1490", 1 + store i64 %"$consume_1494", i64* @_gasrem, align 8 + store %Int256 { i256 57896044618658097711785492504343953926634992332820282019728792003956564819967 }, %Int256* %input_32, align 8, !dbg !323 + %"$gasrem_1495" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1496" = icmp ugt i64 1, %"$gasrem_1495" + br i1 %"$gascmp_1496", label %"$out_of_gas_1497", label %"$have_gas_1498" -"$out_of_gas_1495": ; preds = %"$have_gas_1491" +"$out_of_gas_1497": ; preds = %"$have_gas_1493" call void @_out_of_gas() - br label %"$have_gas_1496" + br label %"$have_gas_1498" -"$have_gas_1496": ; preds = %"$out_of_gas_1495", %"$have_gas_1491" - %"$consume_1497" = sub i64 %"$gasrem_1493", 1 - store i64 %"$consume_1497", i64* @_gasrem, align 8 +"$have_gas_1498": ; preds = %"$out_of_gas_1497", %"$have_gas_1493" + %"$consume_1499" = sub i64 %"$gasrem_1495", 1 + store i64 %"$consume_1499", i64* @_gasrem, align 8 %test_33 = alloca %TName_Bool*, align 8 - %"$gasrem_1499" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1500" = icmp ugt i64 16, %"$gasrem_1499" - br i1 %"$gascmp_1500", label %"$out_of_gas_1501", label %"$have_gas_1502" - -"$out_of_gas_1501": ; preds = %"$have_gas_1496" - call void @_out_of_gas() - br label %"$have_gas_1502" - -"$have_gas_1502": ; preds = %"$out_of_gas_1501", %"$have_gas_1496" - %"$consume_1503" = sub i64 %"$gasrem_1499", 16 - store i64 %"$consume_1503", i64* @_gasrem, align 8 - %"$execptr_load_1504" = load i8*, i8** @_execptr, align 8 - %"$eq_res_1505" = alloca %Int256, align 8 - %"$res_1506" = load %Int256, %Int256* %res31, align 8 - store %Int256 %"$res_1506", %Int256* %"$eq_res_1505", align 8 - %"$eq_input__1507" = alloca %Int256, align 8 - %"$input__1508" = load %Int256, %Int256* %input_32, align 8 - store %Int256 %"$input__1508", %Int256* %"$eq_input__1507", align 8 - %"$eq_call_1509" = call %TName_Bool* @_eq_Int256(i8* %"$execptr_load_1504", %Int256* %"$eq_res_1505", %Int256* %"$eq_input__1507"), !dbg !156 - store %TName_Bool* %"$eq_call_1509", %TName_Bool** %test_33, align 8, !dbg !156 - %"$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 = %"$have_gas_1502" - call void @_out_of_gas() - br label %"$have_gas_1514" - -"$have_gas_1514": ; preds = %"$out_of_gas_1513", %"$have_gas_1502" - %"$consume_1515" = sub i64 %"$gasrem_1511", 1 - store i64 %"$consume_1515", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %test_33, metadata !324, metadata !DIExpression()), !dbg !325 + %"$gasrem_1501" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1502" = icmp ugt i64 16, %"$gasrem_1501" + br i1 %"$gascmp_1502", label %"$out_of_gas_1503", label %"$have_gas_1504" + +"$out_of_gas_1503": ; preds = %"$have_gas_1498" + call void @_out_of_gas() + br label %"$have_gas_1504" + +"$have_gas_1504": ; preds = %"$out_of_gas_1503", %"$have_gas_1498" + %"$consume_1505" = sub i64 %"$gasrem_1501", 16 + store i64 %"$consume_1505", i64* @_gasrem, align 8 + %"$execptr_load_1506" = load i8*, i8** @_execptr, align 8 + %"$eq_res_1507" = alloca %Int256, align 8 + %"$res_1508" = load %Int256, %Int256* %res31, align 8 + store %Int256 %"$res_1508", %Int256* %"$eq_res_1507", align 8 + %"$eq_input__1509" = alloca %Int256, align 8 + %"$input__1510" = load %Int256, %Int256* %input_32, align 8 + store %Int256 %"$input__1510", %Int256* %"$eq_input__1509", align 8 + %"$eq_call_1511" = call %TName_Bool* @_eq_Int256(i8* %"$execptr_load_1506", %Int256* %"$eq_res_1507", %Int256* %"$eq_input__1509"), !dbg !326 + store %TName_Bool* %"$eq_call_1511", %TName_Bool** %test_33, align 8, !dbg !326 + %"$gasrem_1513" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1514" = icmp ugt i64 1, %"$gasrem_1513" + br i1 %"$gascmp_1514", label %"$out_of_gas_1515", label %"$have_gas_1516" + +"$out_of_gas_1515": ; preds = %"$have_gas_1504" + call void @_out_of_gas() + br label %"$have_gas_1516" + +"$have_gas_1516": ; preds = %"$out_of_gas_1515", %"$have_gas_1504" + %"$consume_1517" = sub i64 %"$gasrem_1513", 1 + store i64 %"$consume_1517", i64* @_gasrem, align 8 %"$BoolUtils.andb_77" = alloca { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, align 8 - %"$BoolUtils.andb_1516" = 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_1517" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_1516", 0 - %"$BoolUtils.andb_envptr_1518" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_1516", 1 - %"$$test_42_1519" = load %TName_Bool*, %TName_Bool** %"$test_42", align 8 - %"$BoolUtils.andb_call_1520" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_1517"(i8* %"$BoolUtils.andb_envptr_1518", %TName_Bool* %"$$test_42_1519"), !dbg !157 - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_1520", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_77", align 8, !dbg !157 + %"$BoolUtils.andb_1518" = 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_1519" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_1518", 0 + %"$BoolUtils.andb_envptr_1520" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_1518", 1 + %"$$test_42_1521" = load %TName_Bool*, %TName_Bool** %"$test_42", align 8 + %"$BoolUtils.andb_call_1522" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_1519"(i8* %"$BoolUtils.andb_envptr_1520", %TName_Bool* %"$$test_42_1521"), !dbg !327 + store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_1522", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_77", align 8, !dbg !327 %"$BoolUtils.andb_78" = alloca %TName_Bool*, align 8 - %"$$BoolUtils.andb_77_1521" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_77", align 8 - %"$$BoolUtils.andb_77_fptr_1522" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_77_1521", 0 - %"$$BoolUtils.andb_77_envptr_1523" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_77_1521", 1 - %"$test__1524" = load %TName_Bool*, %TName_Bool** %test_33, align 8 - %"$$BoolUtils.andb_77_call_1525" = call %TName_Bool* %"$$BoolUtils.andb_77_fptr_1522"(i8* %"$$BoolUtils.andb_77_envptr_1523", %TName_Bool* %"$test__1524"), !dbg !157 - store %TName_Bool* %"$$BoolUtils.andb_77_call_1525", %TName_Bool** %"$BoolUtils.andb_78", align 8, !dbg !157 - %"$$BoolUtils.andb_78_1526" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_78", align 8 - store %TName_Bool* %"$$BoolUtils.andb_78_1526", %TName_Bool** %"$test_45", align 8, !dbg !157 - br label %"$matchsucc_1474" - -"$None_1527": ; preds = %"$have_gas_1472" - %"$$resopt_44_1528" = bitcast %TName_Option_Int256* %"$$resopt_44_1475" to %CName_None_Int256* - %"$gasrem_1529" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1530" = icmp ugt i64 1, %"$gasrem_1529" - br i1 %"$gascmp_1530", label %"$out_of_gas_1531", label %"$have_gas_1532" - -"$out_of_gas_1531": ; preds = %"$None_1527" - call void @_out_of_gas() - br label %"$have_gas_1532" - -"$have_gas_1532": ; preds = %"$out_of_gas_1531", %"$None_1527" - %"$consume_1533" = sub i64 %"$gasrem_1529", 1 - store i64 %"$consume_1533", i64* @_gasrem, align 8 - %"$false_1534" = load %TName_Bool*, %TName_Bool** %false, align 8 - store %TName_Bool* %"$false_1534", %TName_Bool** %"$test_45", align 8, !dbg !158 - br label %"$matchsucc_1474" - -"$empty_default_1478": ; preds = %"$have_gas_1472" - br label %"$matchsucc_1474" - -"$matchsucc_1474": ; preds = %"$have_gas_1532", %"$have_gas_1514", %"$empty_default_1478" - %"$gasrem_1535" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1536" = icmp ugt i64 1, %"$gasrem_1535" - br i1 %"$gascmp_1536", label %"$out_of_gas_1537", label %"$have_gas_1538" - -"$out_of_gas_1537": ; preds = %"$matchsucc_1474" - call void @_out_of_gas() - br label %"$have_gas_1538" - -"$have_gas_1538": ; preds = %"$out_of_gas_1537", %"$matchsucc_1474" - %"$consume_1539" = sub i64 %"$gasrem_1535", 1 - store i64 %"$consume_1539", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$BoolUtils.andb_78", metadata !328, metadata !DIExpression()), !dbg !327 + %"$$BoolUtils.andb_77_1523" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_77", align 8 + %"$$BoolUtils.andb_77_fptr_1524" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_77_1523", 0 + %"$$BoolUtils.andb_77_envptr_1525" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_77_1523", 1 + %"$test__1526" = load %TName_Bool*, %TName_Bool** %test_33, align 8 + %"$$BoolUtils.andb_77_call_1527" = call %TName_Bool* %"$$BoolUtils.andb_77_fptr_1524"(i8* %"$$BoolUtils.andb_77_envptr_1525", %TName_Bool* %"$test__1526"), !dbg !327 + store %TName_Bool* %"$$BoolUtils.andb_77_call_1527", %TName_Bool** %"$BoolUtils.andb_78", align 8, !dbg !327 + %"$$BoolUtils.andb_78_1528" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_78", align 8 + store %TName_Bool* %"$$BoolUtils.andb_78_1528", %TName_Bool** %"$test_45", align 8, !dbg !327 + br label %"$matchsucc_1476" + +"$None_1529": ; preds = %"$have_gas_1474" + %"$$resopt_44_1530" = bitcast %TName_Option_Int256* %"$$resopt_44_1477" to %CName_None_Int256* + %"$gasrem_1531" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1532" = icmp ugt i64 1, %"$gasrem_1531" + br i1 %"$gascmp_1532", label %"$out_of_gas_1533", label %"$have_gas_1534" + +"$out_of_gas_1533": ; preds = %"$None_1529" + call void @_out_of_gas() + br label %"$have_gas_1534" + +"$have_gas_1534": ; preds = %"$out_of_gas_1533", %"$None_1529" + %"$consume_1535" = sub i64 %"$gasrem_1531", 1 + store i64 %"$consume_1535", i64* @_gasrem, align 8 + %"$false_1536" = load %TName_Bool*, %TName_Bool** %false, align 8 + store %TName_Bool* %"$false_1536", %TName_Bool** %"$test_45", align 8, !dbg !329 + br label %"$matchsucc_1476" + +"$empty_default_1480": ; preds = %"$have_gas_1474" + br label %"$matchsucc_1476" + +"$matchsucc_1476": ; preds = %"$have_gas_1534", %"$have_gas_1516", %"$empty_default_1480" + %"$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 = %"$matchsucc_1476" + call void @_out_of_gas() + br label %"$have_gas_1540" + +"$have_gas_1540": ; preds = %"$out_of_gas_1539", %"$matchsucc_1476" + %"$consume_1541" = sub i64 %"$gasrem_1537", 1 + store i64 %"$consume_1541", i64* @_gasrem, align 8 %"$input_46" = alloca %String, align 8 - %"$gasrem_1540" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1541" = icmp ugt i64 1, %"$gasrem_1540" - br i1 %"$gascmp_1541", label %"$out_of_gas_1542", label %"$have_gas_1543" + call void @llvm.dbg.declare(metadata %String* %"$input_46", metadata !331, metadata !DIExpression()), !dbg !332 + %"$gasrem_1542" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1543" = icmp ugt i64 1, %"$gasrem_1542" + br i1 %"$gascmp_1543", label %"$out_of_gas_1544", label %"$have_gas_1545" -"$out_of_gas_1542": ; preds = %"$have_gas_1538" +"$out_of_gas_1544": ; preds = %"$have_gas_1540" call void @_out_of_gas() - br label %"$have_gas_1543" + br label %"$have_gas_1545" -"$have_gas_1543": ; preds = %"$out_of_gas_1542", %"$have_gas_1538" - %"$consume_1544" = sub i64 %"$gasrem_1540", 1 - store i64 %"$consume_1544", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([77 x i8], [77 x i8]* @"$stringlit_1545", i32 0, i32 0), i32 77 }, %String* %"$input_46", align 8, !dbg !160 - %"$gasrem_1546" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1547" = icmp ugt i64 1, %"$gasrem_1546" - br i1 %"$gascmp_1547", label %"$out_of_gas_1548", label %"$have_gas_1549" +"$have_gas_1545": ; preds = %"$out_of_gas_1544", %"$have_gas_1540" + %"$consume_1546" = sub i64 %"$gasrem_1542", 1 + store i64 %"$consume_1546", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([77 x i8], [77 x i8]* @"$stringlit_1547", i32 0, i32 0), i32 77 }, %String* %"$input_46", align 8, !dbg !333 + %"$gasrem_1548" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1549" = icmp ugt i64 1, %"$gasrem_1548" + br i1 %"$gascmp_1549", label %"$out_of_gas_1550", label %"$have_gas_1551" -"$out_of_gas_1548": ; preds = %"$have_gas_1543" +"$out_of_gas_1550": ; preds = %"$have_gas_1545" call void @_out_of_gas() - br label %"$have_gas_1549" + br label %"$have_gas_1551" -"$have_gas_1549": ; preds = %"$out_of_gas_1548", %"$have_gas_1543" - %"$consume_1550" = sub i64 %"$gasrem_1546", 1 - store i64 %"$consume_1550", i64* @_gasrem, align 8 +"$have_gas_1551": ; preds = %"$out_of_gas_1550", %"$have_gas_1545" + %"$consume_1552" = sub i64 %"$gasrem_1548", 1 + store i64 %"$consume_1552", i64* @_gasrem, align 8 %"$resopt_47" = alloca %TName_Option_Int256*, align 8 - %"$gasrem_1551" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1552" = icmp ugt i64 16, %"$gasrem_1551" - br i1 %"$gascmp_1552", label %"$out_of_gas_1553", label %"$have_gas_1554" - -"$out_of_gas_1553": ; preds = %"$have_gas_1549" - call void @_out_of_gas() - br label %"$have_gas_1554" - -"$have_gas_1554": ; preds = %"$out_of_gas_1553", %"$have_gas_1549" - %"$consume_1555" = sub i64 %"$gasrem_1551", 16 - store i64 %"$consume_1555", i64* @_gasrem, align 8 - %"$execptr_load_1556" = load i8*, i8** @_execptr, align 8 - %"$to_int256_$input_46_1557" = alloca %String, align 8 - %"$$input_46_1558" = load %String, %String* %"$input_46", align 8 - store %String %"$$input_46_1558", %String* %"$to_int256_$input_46_1557", align 8 - %"$$to_int256_$input_46_1557_1559" = bitcast %String* %"$to_int256_$input_46_1557" to i8* - %"$to_int256_call_1560" = call i8* @_to_int256(i8* %"$execptr_load_1556", %_TyDescrTy_Typ* @"$TyDescr_String_104", i8* %"$$to_int256_$input_46_1557_1559"), !dbg !161 - %"$to_int256_1561" = bitcast i8* %"$to_int256_call_1560" to %TName_Option_Int256* - store %TName_Option_Int256* %"$to_int256_1561", %TName_Option_Int256** %"$resopt_47", align 8, !dbg !161 - %"$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_1554" - call void @_out_of_gas() - br label %"$have_gas_1565" - -"$have_gas_1565": ; preds = %"$out_of_gas_1564", %"$have_gas_1554" - %"$consume_1566" = sub i64 %"$gasrem_1562", 1 - store i64 %"$consume_1566", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Option_Int256** %"$resopt_47", metadata !334, metadata !DIExpression()), !dbg !335 + %"$gasrem_1553" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1554" = icmp ugt i64 16, %"$gasrem_1553" + br i1 %"$gascmp_1554", label %"$out_of_gas_1555", label %"$have_gas_1556" + +"$out_of_gas_1555": ; preds = %"$have_gas_1551" + call void @_out_of_gas() + br label %"$have_gas_1556" + +"$have_gas_1556": ; preds = %"$out_of_gas_1555", %"$have_gas_1551" + %"$consume_1557" = sub i64 %"$gasrem_1553", 16 + store i64 %"$consume_1557", i64* @_gasrem, align 8 + %"$execptr_load_1558" = load i8*, i8** @_execptr, align 8 + %"$to_int256_$input_46_1559" = alloca %String, align 8 + %"$$input_46_1560" = load %String, %String* %"$input_46", align 8 + store %String %"$$input_46_1560", %String* %"$to_int256_$input_46_1559", align 8 + %"$$to_int256_$input_46_1559_1561" = bitcast %String* %"$to_int256_$input_46_1559" to i8* + %"$to_int256_call_1562" = call i8* @_to_int256(i8* %"$execptr_load_1558", %_TyDescrTy_Typ* @"$TyDescr_String_104", i8* %"$$to_int256_$input_46_1559_1561"), !dbg !336 + %"$to_int256_1563" = bitcast i8* %"$to_int256_call_1562" to %TName_Option_Int256* + store %TName_Option_Int256* %"$to_int256_1563", %TName_Option_Int256** %"$resopt_47", align 8, !dbg !336 + %"$gasrem_1564" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1565" = icmp ugt i64 1, %"$gasrem_1564" + br i1 %"$gascmp_1565", label %"$out_of_gas_1566", label %"$have_gas_1567" + +"$out_of_gas_1566": ; preds = %"$have_gas_1556" + call void @_out_of_gas() + br label %"$have_gas_1567" + +"$have_gas_1567": ; preds = %"$out_of_gas_1566", %"$have_gas_1556" + %"$consume_1568" = sub i64 %"$gasrem_1564", 1 + store i64 %"$consume_1568", i64* @_gasrem, align 8 %"$test_48" = alloca %TName_Bool*, align 8 - %"$gasrem_1567" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1568" = icmp ugt i64 2, %"$gasrem_1567" - br i1 %"$gascmp_1568", label %"$out_of_gas_1569", label %"$have_gas_1570" - -"$out_of_gas_1569": ; preds = %"$have_gas_1565" - call void @_out_of_gas() - br label %"$have_gas_1570" - -"$have_gas_1570": ; preds = %"$out_of_gas_1569", %"$have_gas_1565" - %"$consume_1571" = sub i64 %"$gasrem_1567", 2 - store i64 %"$consume_1571", i64* @_gasrem, align 8 - %"$$resopt_47_1573" = load %TName_Option_Int256*, %TName_Option_Int256** %"$resopt_47", align 8 - %"$$resopt_47_tag_1574" = getelementptr inbounds %TName_Option_Int256, %TName_Option_Int256* %"$$resopt_47_1573", i32 0, i32 0 - %"$$resopt_47_tag_1575" = load i8, i8* %"$$resopt_47_tag_1574", align 1 - switch i8 %"$$resopt_47_tag_1575", label %"$empty_default_1576" [ - i8 0, label %"$Some_1577" - i8 1, label %"$None_1625" - ], !dbg !162 - -"$Some_1577": ; preds = %"$have_gas_1570" - %"$$resopt_47_1578" = bitcast %TName_Option_Int256* %"$$resopt_47_1573" to %CName_Some_Int256* - %"$res_gep_1579" = getelementptr inbounds %CName_Some_Int256, %CName_Some_Int256* %"$$resopt_47_1578", i32 0, i32 1 - %"$res_load_1580" = load %Int256, %Int256* %"$res_gep_1579", align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$test_48", metadata !337, metadata !DIExpression()), !dbg !338 + %"$gasrem_1569" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1570" = icmp ugt i64 2, %"$gasrem_1569" + br i1 %"$gascmp_1570", label %"$out_of_gas_1571", label %"$have_gas_1572" + +"$out_of_gas_1571": ; preds = %"$have_gas_1567" + call void @_out_of_gas() + br label %"$have_gas_1572" + +"$have_gas_1572": ; preds = %"$out_of_gas_1571", %"$have_gas_1567" + %"$consume_1573" = sub i64 %"$gasrem_1569", 2 + store i64 %"$consume_1573", i64* @_gasrem, align 8 + %"$$resopt_47_1575" = load %TName_Option_Int256*, %TName_Option_Int256** %"$resopt_47", align 8 + %"$$resopt_47_tag_1576" = getelementptr inbounds %TName_Option_Int256, %TName_Option_Int256* %"$$resopt_47_1575", i32 0, i32 0 + %"$$resopt_47_tag_1577" = load i8, i8* %"$$resopt_47_tag_1576", align 1 + switch i8 %"$$resopt_47_tag_1577", label %"$empty_default_1578" [ + i8 0, label %"$Some_1579" + i8 1, label %"$None_1627" + ], !dbg !339 + +"$Some_1579": ; preds = %"$have_gas_1572" + %"$$resopt_47_1580" = bitcast %TName_Option_Int256* %"$$resopt_47_1575" to %CName_Some_Int256* + %"$res_gep_1581" = getelementptr inbounds %CName_Some_Int256, %CName_Some_Int256* %"$$resopt_47_1580", i32 0, i32 1 + %"$res_load_1582" = load %Int256, %Int256* %"$res_gep_1581", align 8 %res34 = alloca %Int256, align 8 - store %Int256 %"$res_load_1580", %Int256* %res34, align 8 - %"$gasrem_1581" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1582" = icmp ugt i64 1, %"$gasrem_1581" - br i1 %"$gascmp_1582", label %"$out_of_gas_1583", label %"$have_gas_1584" + store %Int256 %"$res_load_1582", %Int256* %res34, 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_1583": ; preds = %"$Some_1577" +"$out_of_gas_1585": ; preds = %"$Some_1579" call void @_out_of_gas() - br label %"$have_gas_1584" + br label %"$have_gas_1586" -"$have_gas_1584": ; preds = %"$out_of_gas_1583", %"$Some_1577" - %"$consume_1585" = sub i64 %"$gasrem_1581", 1 - store i64 %"$consume_1585", i64* @_gasrem, align 8 +"$have_gas_1586": ; preds = %"$out_of_gas_1585", %"$Some_1579" + %"$consume_1587" = sub i64 %"$gasrem_1583", 1 + store i64 %"$consume_1587", i64* @_gasrem, align 8 %input_35 = alloca %Int256, align 8 - %"$gasrem_1586" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1587" = icmp ugt i64 1, %"$gasrem_1586" - br i1 %"$gascmp_1587", label %"$out_of_gas_1588", label %"$have_gas_1589" + call void @llvm.dbg.declare(metadata %Int256* %input_35, metadata !340, metadata !DIExpression()), !dbg !343 + %"$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_1588": ; preds = %"$have_gas_1584" +"$out_of_gas_1590": ; preds = %"$have_gas_1586" call void @_out_of_gas() - br label %"$have_gas_1589" + br label %"$have_gas_1591" -"$have_gas_1589": ; preds = %"$out_of_gas_1588", %"$have_gas_1584" - %"$consume_1590" = sub i64 %"$gasrem_1586", 1 - store i64 %"$consume_1590", i64* @_gasrem, align 8 - store %Int256 { i256 57896044618658097711785492504343953926634992332820282019728792003956564819967 }, %Int256* %input_35, align 8, !dbg !163 - %"$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" +"$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 + store %Int256 { i256 57896044618658097711785492504343953926634992332820282019728792003956564819967 }, %Int256* %input_35, align 8, !dbg !344 + %"$gasrem_1593" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1594" = icmp ugt i64 1, %"$gasrem_1593" + br i1 %"$gascmp_1594", label %"$out_of_gas_1595", label %"$have_gas_1596" -"$out_of_gas_1593": ; preds = %"$have_gas_1589" +"$out_of_gas_1595": ; preds = %"$have_gas_1591" call void @_out_of_gas() - br label %"$have_gas_1594" + br label %"$have_gas_1596" -"$have_gas_1594": ; preds = %"$out_of_gas_1593", %"$have_gas_1589" - %"$consume_1595" = sub i64 %"$gasrem_1591", 1 - store i64 %"$consume_1595", i64* @_gasrem, align 8 +"$have_gas_1596": ; preds = %"$out_of_gas_1595", %"$have_gas_1591" + %"$consume_1597" = sub i64 %"$gasrem_1593", 1 + store i64 %"$consume_1597", i64* @_gasrem, align 8 %test_36 = alloca %TName_Bool*, align 8 - %"$gasrem_1597" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1598" = icmp ugt i64 16, %"$gasrem_1597" - br i1 %"$gascmp_1598", label %"$out_of_gas_1599", label %"$have_gas_1600" - -"$out_of_gas_1599": ; preds = %"$have_gas_1594" - call void @_out_of_gas() - br label %"$have_gas_1600" - -"$have_gas_1600": ; preds = %"$out_of_gas_1599", %"$have_gas_1594" - %"$consume_1601" = sub i64 %"$gasrem_1597", 16 - store i64 %"$consume_1601", i64* @_gasrem, align 8 - %"$execptr_load_1602" = load i8*, i8** @_execptr, align 8 - %"$eq_res_1603" = alloca %Int256, align 8 - %"$res_1604" = load %Int256, %Int256* %res34, align 8 - store %Int256 %"$res_1604", %Int256* %"$eq_res_1603", align 8 - %"$eq_input__1605" = alloca %Int256, align 8 - %"$input__1606" = load %Int256, %Int256* %input_35, align 8 - store %Int256 %"$input__1606", %Int256* %"$eq_input__1605", align 8 - %"$eq_call_1607" = call %TName_Bool* @_eq_Int256(i8* %"$execptr_load_1602", %Int256* %"$eq_res_1603", %Int256* %"$eq_input__1605"), !dbg !166 - store %TName_Bool* %"$eq_call_1607", %TName_Bool** %test_36, align 8, !dbg !166 - %"$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_1611": ; preds = %"$have_gas_1600" - call void @_out_of_gas() - br label %"$have_gas_1612" - -"$have_gas_1612": ; preds = %"$out_of_gas_1611", %"$have_gas_1600" - %"$consume_1613" = sub i64 %"$gasrem_1609", 1 - store i64 %"$consume_1613", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %test_36, metadata !345, metadata !DIExpression()), !dbg !346 + %"$gasrem_1599" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1600" = icmp ugt i64 16, %"$gasrem_1599" + br i1 %"$gascmp_1600", label %"$out_of_gas_1601", label %"$have_gas_1602" + +"$out_of_gas_1601": ; preds = %"$have_gas_1596" + call void @_out_of_gas() + br label %"$have_gas_1602" + +"$have_gas_1602": ; preds = %"$out_of_gas_1601", %"$have_gas_1596" + %"$consume_1603" = sub i64 %"$gasrem_1599", 16 + store i64 %"$consume_1603", i64* @_gasrem, align 8 + %"$execptr_load_1604" = load i8*, i8** @_execptr, align 8 + %"$eq_res_1605" = alloca %Int256, align 8 + %"$res_1606" = load %Int256, %Int256* %res34, align 8 + store %Int256 %"$res_1606", %Int256* %"$eq_res_1605", align 8 + %"$eq_input__1607" = alloca %Int256, align 8 + %"$input__1608" = load %Int256, %Int256* %input_35, align 8 + store %Int256 %"$input__1608", %Int256* %"$eq_input__1607", align 8 + %"$eq_call_1609" = call %TName_Bool* @_eq_Int256(i8* %"$execptr_load_1604", %Int256* %"$eq_res_1605", %Int256* %"$eq_input__1607"), !dbg !347 + store %TName_Bool* %"$eq_call_1609", %TName_Bool** %test_36, align 8, !dbg !347 + %"$gasrem_1611" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1612" = icmp ugt i64 1, %"$gasrem_1611" + br i1 %"$gascmp_1612", label %"$out_of_gas_1613", label %"$have_gas_1614" + +"$out_of_gas_1613": ; preds = %"$have_gas_1602" + call void @_out_of_gas() + br label %"$have_gas_1614" + +"$have_gas_1614": ; preds = %"$out_of_gas_1613", %"$have_gas_1602" + %"$consume_1615" = sub i64 %"$gasrem_1611", 1 + store i64 %"$consume_1615", i64* @_gasrem, align 8 %"$BoolUtils.andb_79" = alloca { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, align 8 - %"$BoolUtils.andb_1614" = 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_1615" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_1614", 0 - %"$BoolUtils.andb_envptr_1616" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_1614", 1 - %"$$test_45_1617" = load %TName_Bool*, %TName_Bool** %"$test_45", align 8 - %"$BoolUtils.andb_call_1618" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_1615"(i8* %"$BoolUtils.andb_envptr_1616", %TName_Bool* %"$$test_45_1617"), !dbg !167 - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_1618", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_79", align 8, !dbg !167 + %"$BoolUtils.andb_1616" = 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_1617" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_1616", 0 + %"$BoolUtils.andb_envptr_1618" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_1616", 1 + %"$$test_45_1619" = load %TName_Bool*, %TName_Bool** %"$test_45", align 8 + %"$BoolUtils.andb_call_1620" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_1617"(i8* %"$BoolUtils.andb_envptr_1618", %TName_Bool* %"$$test_45_1619"), !dbg !348 + store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_1620", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_79", align 8, !dbg !348 %"$BoolUtils.andb_80" = alloca %TName_Bool*, align 8 - %"$$BoolUtils.andb_79_1619" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_79", align 8 - %"$$BoolUtils.andb_79_fptr_1620" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_79_1619", 0 - %"$$BoolUtils.andb_79_envptr_1621" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_79_1619", 1 - %"$test__1622" = load %TName_Bool*, %TName_Bool** %test_36, align 8 - %"$$BoolUtils.andb_79_call_1623" = call %TName_Bool* %"$$BoolUtils.andb_79_fptr_1620"(i8* %"$$BoolUtils.andb_79_envptr_1621", %TName_Bool* %"$test__1622"), !dbg !167 - store %TName_Bool* %"$$BoolUtils.andb_79_call_1623", %TName_Bool** %"$BoolUtils.andb_80", align 8, !dbg !167 - %"$$BoolUtils.andb_80_1624" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_80", align 8 - store %TName_Bool* %"$$BoolUtils.andb_80_1624", %TName_Bool** %"$test_48", align 8, !dbg !167 - br label %"$matchsucc_1572" - -"$None_1625": ; preds = %"$have_gas_1570" - %"$$resopt_47_1626" = bitcast %TName_Option_Int256* %"$$resopt_47_1573" to %CName_None_Int256* - %"$gasrem_1627" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1628" = icmp ugt i64 1, %"$gasrem_1627" - br i1 %"$gascmp_1628", label %"$out_of_gas_1629", label %"$have_gas_1630" - -"$out_of_gas_1629": ; preds = %"$None_1625" - call void @_out_of_gas() - br label %"$have_gas_1630" - -"$have_gas_1630": ; preds = %"$out_of_gas_1629", %"$None_1625" - %"$consume_1631" = sub i64 %"$gasrem_1627", 1 - store i64 %"$consume_1631", i64* @_gasrem, align 8 - %"$false_1632" = load %TName_Bool*, %TName_Bool** %false, align 8 - store %TName_Bool* %"$false_1632", %TName_Bool** %"$test_48", align 8, !dbg !168 - br label %"$matchsucc_1572" - -"$empty_default_1576": ; preds = %"$have_gas_1570" - br label %"$matchsucc_1572" - -"$matchsucc_1572": ; preds = %"$have_gas_1630", %"$have_gas_1612", %"$empty_default_1576" - %"$gasrem_1633" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1634" = icmp ugt i64 1, %"$gasrem_1633" - br i1 %"$gascmp_1634", label %"$out_of_gas_1635", label %"$have_gas_1636" - -"$out_of_gas_1635": ; preds = %"$matchsucc_1572" - call void @_out_of_gas() - br label %"$have_gas_1636" - -"$have_gas_1636": ; preds = %"$out_of_gas_1635", %"$matchsucc_1572" - %"$consume_1637" = sub i64 %"$gasrem_1633", 1 - store i64 %"$consume_1637", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$BoolUtils.andb_80", metadata !349, metadata !DIExpression()), !dbg !348 + %"$$BoolUtils.andb_79_1621" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_79", align 8 + %"$$BoolUtils.andb_79_fptr_1622" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_79_1621", 0 + %"$$BoolUtils.andb_79_envptr_1623" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_79_1621", 1 + %"$test__1624" = load %TName_Bool*, %TName_Bool** %test_36, align 8 + %"$$BoolUtils.andb_79_call_1625" = call %TName_Bool* %"$$BoolUtils.andb_79_fptr_1622"(i8* %"$$BoolUtils.andb_79_envptr_1623", %TName_Bool* %"$test__1624"), !dbg !348 + store %TName_Bool* %"$$BoolUtils.andb_79_call_1625", %TName_Bool** %"$BoolUtils.andb_80", align 8, !dbg !348 + %"$$BoolUtils.andb_80_1626" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_80", align 8 + store %TName_Bool* %"$$BoolUtils.andb_80_1626", %TName_Bool** %"$test_48", align 8, !dbg !348 + br label %"$matchsucc_1574" + +"$None_1627": ; preds = %"$have_gas_1572" + %"$$resopt_47_1628" = bitcast %TName_Option_Int256* %"$$resopt_47_1575" to %CName_None_Int256* + %"$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 = %"$None_1627" + call void @_out_of_gas() + br label %"$have_gas_1632" + +"$have_gas_1632": ; preds = %"$out_of_gas_1631", %"$None_1627" + %"$consume_1633" = sub i64 %"$gasrem_1629", 1 + store i64 %"$consume_1633", i64* @_gasrem, align 8 + %"$false_1634" = load %TName_Bool*, %TName_Bool** %false, align 8 + store %TName_Bool* %"$false_1634", %TName_Bool** %"$test_48", align 8, !dbg !350 + br label %"$matchsucc_1574" + +"$empty_default_1578": ; preds = %"$have_gas_1572" + br label %"$matchsucc_1574" + +"$matchsucc_1574": ; preds = %"$have_gas_1632", %"$have_gas_1614", %"$empty_default_1578" + %"$gasrem_1635" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1636" = icmp ugt i64 1, %"$gasrem_1635" + br i1 %"$gascmp_1636", label %"$out_of_gas_1637", label %"$have_gas_1638" + +"$out_of_gas_1637": ; preds = %"$matchsucc_1574" + call void @_out_of_gas() + br label %"$have_gas_1638" + +"$have_gas_1638": ; preds = %"$out_of_gas_1637", %"$matchsucc_1574" + %"$consume_1639" = sub i64 %"$gasrem_1635", 1 + store i64 %"$consume_1639", i64* @_gasrem, align 8 %"$input_49" = alloca %String, align 8 - %"$gasrem_1638" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1639" = icmp ugt i64 1, %"$gasrem_1638" - br i1 %"$gascmp_1639", label %"$out_of_gas_1640", label %"$have_gas_1641" + call void @llvm.dbg.declare(metadata %String* %"$input_49", metadata !352, metadata !DIExpression()), !dbg !353 + %"$gasrem_1640" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1641" = icmp ugt i64 1, %"$gasrem_1640" + br i1 %"$gascmp_1641", label %"$out_of_gas_1642", label %"$have_gas_1643" -"$out_of_gas_1640": ; preds = %"$have_gas_1636" +"$out_of_gas_1642": ; preds = %"$have_gas_1638" call void @_out_of_gas() - br label %"$have_gas_1641" + br label %"$have_gas_1643" -"$have_gas_1641": ; preds = %"$out_of_gas_1640", %"$have_gas_1636" - %"$consume_1642" = sub i64 %"$gasrem_1638", 1 - store i64 %"$consume_1642", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_1643", i32 0, i32 0), i32 4 }, %String* %"$input_49", align 8, !dbg !170 - %"$gasrem_1644" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1645" = icmp ugt i64 1, %"$gasrem_1644" - br i1 %"$gascmp_1645", label %"$out_of_gas_1646", label %"$have_gas_1647" +"$have_gas_1643": ; preds = %"$out_of_gas_1642", %"$have_gas_1638" + %"$consume_1644" = sub i64 %"$gasrem_1640", 1 + store i64 %"$consume_1644", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_1645", i32 0, i32 0), i32 4 }, %String* %"$input_49", align 8, !dbg !354 + %"$gasrem_1646" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1647" = icmp ugt i64 1, %"$gasrem_1646" + br i1 %"$gascmp_1647", label %"$out_of_gas_1648", label %"$have_gas_1649" -"$out_of_gas_1646": ; preds = %"$have_gas_1641" +"$out_of_gas_1648": ; preds = %"$have_gas_1643" call void @_out_of_gas() - br label %"$have_gas_1647" + br label %"$have_gas_1649" -"$have_gas_1647": ; preds = %"$out_of_gas_1646", %"$have_gas_1641" - %"$consume_1648" = sub i64 %"$gasrem_1644", 1 - store i64 %"$consume_1648", i64* @_gasrem, align 8 +"$have_gas_1649": ; preds = %"$out_of_gas_1648", %"$have_gas_1643" + %"$consume_1650" = sub i64 %"$gasrem_1646", 1 + store i64 %"$consume_1650", i64* @_gasrem, align 8 %"$resopt_50" = alloca %TName_Option_Int64*, align 8 - %"$gasrem_1649" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1650" = icmp ugt i64 4, %"$gasrem_1649" - br i1 %"$gascmp_1650", label %"$out_of_gas_1651", label %"$have_gas_1652" - -"$out_of_gas_1651": ; preds = %"$have_gas_1647" - call void @_out_of_gas() - br label %"$have_gas_1652" - -"$have_gas_1652": ; preds = %"$out_of_gas_1651", %"$have_gas_1647" - %"$consume_1653" = sub i64 %"$gasrem_1649", 4 - store i64 %"$consume_1653", i64* @_gasrem, align 8 - %"$execptr_load_1654" = load i8*, i8** @_execptr, align 8 - %"$to_int64_$input_49_1655" = alloca %String, align 8 - %"$$input_49_1656" = load %String, %String* %"$input_49", align 8 - store %String %"$$input_49_1656", %String* %"$to_int64_$input_49_1655", align 8 - %"$$to_int64_$input_49_1655_1657" = bitcast %String* %"$to_int64_$input_49_1655" to i8* - %"$to_int64_call_1658" = call i8* @_to_int64(i8* %"$execptr_load_1654", %_TyDescrTy_Typ* @"$TyDescr_String_104", i8* %"$$to_int64_$input_49_1655_1657"), !dbg !171 - %"$to_int64_1659" = bitcast i8* %"$to_int64_call_1658" to %TName_Option_Int64* - store %TName_Option_Int64* %"$to_int64_1659", %TName_Option_Int64** %"$resopt_50", align 8, !dbg !171 - %"$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_1662": ; preds = %"$have_gas_1652" - call void @_out_of_gas() - br label %"$have_gas_1663" - -"$have_gas_1663": ; preds = %"$out_of_gas_1662", %"$have_gas_1652" - %"$consume_1664" = sub i64 %"$gasrem_1660", 1 - store i64 %"$consume_1664", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Option_Int64** %"$resopt_50", metadata !355, metadata !DIExpression()), !dbg !356 + %"$gasrem_1651" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1652" = icmp ugt i64 4, %"$gasrem_1651" + br i1 %"$gascmp_1652", label %"$out_of_gas_1653", label %"$have_gas_1654" + +"$out_of_gas_1653": ; preds = %"$have_gas_1649" + call void @_out_of_gas() + br label %"$have_gas_1654" + +"$have_gas_1654": ; preds = %"$out_of_gas_1653", %"$have_gas_1649" + %"$consume_1655" = sub i64 %"$gasrem_1651", 4 + store i64 %"$consume_1655", i64* @_gasrem, align 8 + %"$execptr_load_1656" = load i8*, i8** @_execptr, align 8 + %"$to_int64_$input_49_1657" = alloca %String, align 8 + %"$$input_49_1658" = load %String, %String* %"$input_49", align 8 + store %String %"$$input_49_1658", %String* %"$to_int64_$input_49_1657", align 8 + %"$$to_int64_$input_49_1657_1659" = bitcast %String* %"$to_int64_$input_49_1657" to i8* + %"$to_int64_call_1660" = call i8* @_to_int64(i8* %"$execptr_load_1656", %_TyDescrTy_Typ* @"$TyDescr_String_104", i8* %"$$to_int64_$input_49_1657_1659"), !dbg !357 + %"$to_int64_1661" = bitcast i8* %"$to_int64_call_1660" to %TName_Option_Int64* + store %TName_Option_Int64* %"$to_int64_1661", %TName_Option_Int64** %"$resopt_50", align 8, !dbg !357 + %"$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 = %"$have_gas_1654" + call void @_out_of_gas() + br label %"$have_gas_1665" + +"$have_gas_1665": ; preds = %"$out_of_gas_1664", %"$have_gas_1654" + %"$consume_1666" = sub i64 %"$gasrem_1662", 1 + store i64 %"$consume_1666", i64* @_gasrem, align 8 %"$test_51" = alloca %TName_Bool*, align 8 - %"$gasrem_1665" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1666" = icmp ugt i64 2, %"$gasrem_1665" - br i1 %"$gascmp_1666", label %"$out_of_gas_1667", label %"$have_gas_1668" - -"$out_of_gas_1667": ; preds = %"$have_gas_1663" - call void @_out_of_gas() - br label %"$have_gas_1668" - -"$have_gas_1668": ; preds = %"$out_of_gas_1667", %"$have_gas_1663" - %"$consume_1669" = sub i64 %"$gasrem_1665", 2 - store i64 %"$consume_1669", i64* @_gasrem, align 8 - %"$$resopt_50_1671" = load %TName_Option_Int64*, %TName_Option_Int64** %"$resopt_50", align 8 - %"$$resopt_50_tag_1672" = getelementptr inbounds %TName_Option_Int64, %TName_Option_Int64* %"$$resopt_50_1671", i32 0, i32 0 - %"$$resopt_50_tag_1673" = load i8, i8* %"$$resopt_50_tag_1672", align 1 - switch i8 %"$$resopt_50_tag_1673", label %"$empty_default_1674" [ - i8 0, label %"$Some_1675" - i8 1, label %"$None_1685" - ], !dbg !172 - -"$Some_1675": ; preds = %"$have_gas_1668" - %"$$resopt_50_1676" = bitcast %TName_Option_Int64* %"$$resopt_50_1671" to %CName_Some_Int64* - %"$$$resopt_50_54_gep_1677" = getelementptr inbounds %CName_Some_Int64, %CName_Some_Int64* %"$$resopt_50_1676", i32 0, i32 1 - %"$$$resopt_50_54_load_1678" = load %Int64, %Int64* %"$$$resopt_50_54_gep_1677", align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$test_51", metadata !358, metadata !DIExpression()), !dbg !359 + %"$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 = %"$have_gas_1665" + call void @_out_of_gas() + br label %"$have_gas_1670" + +"$have_gas_1670": ; preds = %"$out_of_gas_1669", %"$have_gas_1665" + %"$consume_1671" = sub i64 %"$gasrem_1667", 2 + store i64 %"$consume_1671", i64* @_gasrem, align 8 + %"$$resopt_50_1673" = load %TName_Option_Int64*, %TName_Option_Int64** %"$resopt_50", align 8 + %"$$resopt_50_tag_1674" = getelementptr inbounds %TName_Option_Int64, %TName_Option_Int64* %"$$resopt_50_1673", i32 0, i32 0 + %"$$resopt_50_tag_1675" = load i8, i8* %"$$resopt_50_tag_1674", align 1 + switch i8 %"$$resopt_50_tag_1675", label %"$empty_default_1676" [ + i8 0, label %"$Some_1677" + i8 1, label %"$None_1687" + ], !dbg !360 + +"$Some_1677": ; preds = %"$have_gas_1670" + %"$$resopt_50_1678" = bitcast %TName_Option_Int64* %"$$resopt_50_1673" to %CName_Some_Int64* + %"$$$resopt_50_54_gep_1679" = getelementptr inbounds %CName_Some_Int64, %CName_Some_Int64* %"$$resopt_50_1678", i32 0, i32 1 + %"$$$resopt_50_54_load_1680" = load %Int64, %Int64* %"$$$resopt_50_54_gep_1679", align 8 %"$$resopt_50_54" = alloca %Int64, align 8 - store %Int64 %"$$$resopt_50_54_load_1678", %Int64* %"$$resopt_50_54", align 8 - %"$gasrem_1679" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1680" = icmp ugt i64 1, %"$gasrem_1679" - br i1 %"$gascmp_1680", label %"$out_of_gas_1681", label %"$have_gas_1682" - -"$out_of_gas_1681": ; preds = %"$Some_1675" - call void @_out_of_gas() - br label %"$have_gas_1682" - -"$have_gas_1682": ; preds = %"$out_of_gas_1681", %"$Some_1675" - %"$consume_1683" = sub i64 %"$gasrem_1679", 1 - store i64 %"$consume_1683", i64* @_gasrem, align 8 - %"$false_1684" = load %TName_Bool*, %TName_Bool** %false, align 8 - store %TName_Bool* %"$false_1684", %TName_Bool** %"$test_51", align 8, !dbg !173 - br label %"$matchsucc_1670" - -"$None_1685": ; preds = %"$have_gas_1668" - %"$$resopt_50_1686" = bitcast %TName_Option_Int64* %"$$resopt_50_1671" to %CName_None_Int64* - %"$gasrem_1687" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1688" = icmp ugt i64 1, %"$gasrem_1687" - br i1 %"$gascmp_1688", label %"$out_of_gas_1689", label %"$have_gas_1690" - -"$out_of_gas_1689": ; preds = %"$None_1685" - call void @_out_of_gas() - br label %"$have_gas_1690" - -"$have_gas_1690": ; preds = %"$out_of_gas_1689", %"$None_1685" - %"$consume_1691" = sub i64 %"$gasrem_1687", 1 - store i64 %"$consume_1691", i64* @_gasrem, align 8 - %"$$test_48_1692" = load %TName_Bool*, %TName_Bool** %"$test_48", align 8 - store %TName_Bool* %"$$test_48_1692", %TName_Bool** %"$test_51", align 8, !dbg !176 - br label %"$matchsucc_1670" - -"$empty_default_1674": ; preds = %"$have_gas_1668" - br label %"$matchsucc_1670" - -"$matchsucc_1670": ; preds = %"$have_gas_1690", %"$have_gas_1682", %"$empty_default_1674" - %"$gasrem_1693" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1694" = icmp ugt i64 1, %"$gasrem_1693" - br i1 %"$gascmp_1694", label %"$out_of_gas_1695", label %"$have_gas_1696" - -"$out_of_gas_1695": ; preds = %"$matchsucc_1670" - call void @_out_of_gas() - br label %"$have_gas_1696" - -"$have_gas_1696": ; preds = %"$out_of_gas_1695", %"$matchsucc_1670" - %"$consume_1697" = sub i64 %"$gasrem_1693", 1 - store i64 %"$consume_1697", i64* @_gasrem, align 8 - %"$$test_51_1698" = load %TName_Bool*, %TName_Bool** %"$test_51", align 8 - store %TName_Bool* %"$$test_51_1698", %TName_Bool** %"$expr_85", align 8, !dbg !178 - %"$$expr_85_1699" = load %TName_Bool*, %TName_Bool** %"$expr_85", align 8 - ret %TName_Bool* %"$$expr_85_1699" + store %Int64 %"$$$resopt_50_54_load_1680", %Int64* %"$$resopt_50_54", align 8 + %"$gasrem_1681" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1682" = icmp ugt i64 1, %"$gasrem_1681" + br i1 %"$gascmp_1682", label %"$out_of_gas_1683", label %"$have_gas_1684" + +"$out_of_gas_1683": ; preds = %"$Some_1677" + call void @_out_of_gas() + br label %"$have_gas_1684" + +"$have_gas_1684": ; preds = %"$out_of_gas_1683", %"$Some_1677" + %"$consume_1685" = sub i64 %"$gasrem_1681", 1 + store i64 %"$consume_1685", i64* @_gasrem, align 8 + %"$false_1686" = load %TName_Bool*, %TName_Bool** %false, align 8 + store %TName_Bool* %"$false_1686", %TName_Bool** %"$test_51", align 8, !dbg !361 + br label %"$matchsucc_1672" + +"$None_1687": ; preds = %"$have_gas_1670" + %"$$resopt_50_1688" = bitcast %TName_Option_Int64* %"$$resopt_50_1673" to %CName_None_Int64* + %"$gasrem_1689" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1690" = icmp ugt i64 1, %"$gasrem_1689" + br i1 %"$gascmp_1690", label %"$out_of_gas_1691", label %"$have_gas_1692" + +"$out_of_gas_1691": ; preds = %"$None_1687" + call void @_out_of_gas() + br label %"$have_gas_1692" + +"$have_gas_1692": ; preds = %"$out_of_gas_1691", %"$None_1687" + %"$consume_1693" = sub i64 %"$gasrem_1689", 1 + store i64 %"$consume_1693", i64* @_gasrem, align 8 + %"$$test_48_1694" = load %TName_Bool*, %TName_Bool** %"$test_48", align 8 + store %TName_Bool* %"$$test_48_1694", %TName_Bool** %"$test_51", align 8, !dbg !364 + br label %"$matchsucc_1672" + +"$empty_default_1676": ; preds = %"$have_gas_1670" + br label %"$matchsucc_1672" + +"$matchsucc_1672": ; preds = %"$have_gas_1692", %"$have_gas_1684", %"$empty_default_1676" + %"$gasrem_1695" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1696" = icmp ugt i64 1, %"$gasrem_1695" + br i1 %"$gascmp_1696", label %"$out_of_gas_1697", label %"$have_gas_1698" + +"$out_of_gas_1697": ; preds = %"$matchsucc_1672" + call void @_out_of_gas() + br label %"$have_gas_1698" + +"$have_gas_1698": ; preds = %"$out_of_gas_1697", %"$matchsucc_1672" + %"$consume_1699" = sub i64 %"$gasrem_1695", 1 + store i64 %"$consume_1699", i64* @_gasrem, align 8 + %"$$test_51_1700" = load %TName_Bool*, %TName_Bool** %"$test_51", align 8 + store %TName_Bool* %"$$test_51_1700", %TName_Bool** %"$expr_85", align 8, !dbg !366 + %"$$expr_85_1701" = load %TName_Bool*, %TName_Bool** %"$expr_85", align 8 + ret %TName_Bool* %"$$expr_85_1701" } declare i8* @_to_int32(i8*, %_TyDescrTy_Typ*, i8*) @@ -3530,192 +3630,382 @@ declare void @_print_scilla_val(i8*, %_TyDescrTy_Typ*, i8*) define void @scilla_main() { entry: - %"$exprval_1700" = call %TName_Bool* @_scilla_expr_fun(i8* null) - %"$memvoidcast_1701" = bitcast %TName_Bool* %"$exprval_1700" to i8* - %"$execptr_load_1702" = load i8*, i8** @_execptr, align 8 - call void @_print_scilla_val(i8* %"$execptr_load_1702", %_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_123", i8* %"$memvoidcast_1701") + %"$exprval_1702" = call %TName_Bool* @_scilla_expr_fun(i8* null) + %"$memvoidcast_1703" = bitcast %TName_Bool* %"$exprval_1702" to i8* + %"$execptr_load_1704" = load i8*, i8** @_execptr, align 8 + call void @_print_scilla_val(i8* %"$execptr_load_1704", %_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_123", i8* %"$memvoidcast_1703") ret void } +attributes #0 = { nocallback nofree nosync nounwind readnone speculatable willreturn } + !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) +!1 = distinct !DICompileUnit(language: DW_LANG_C89, file: !2, producer: "Scilla Compiler", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false) !2 = !DIFile(filename: "builtin_to_int.scilexp", directory: "codegen/expr") -!3 = !{} -!4 = distinct !DISubprogram(name: "$fundef_83", linkageName: "$fundef_83", scope: !5, file: !5, line: 8, type: !6, scopeLine: 8, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!5 = !DIFile(filename: "BoolUtils.scillib", directory: "../src/stdlib") -!6 = !DISubroutineType(types: !7) -!7 = !{!8} -!8 = !DIBasicType(tag: DW_TAG_unspecified_type, name: "void") -!9 = !DILocation(line: 8, column: 5, scope: !4) -!10 = !DILocation(line: 9, column: 16, scope: !11) -!11 = distinct !DILexicalBlock(scope: !12, file: !5, line: 9, column: 7) -!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_81", linkageName: "$fundef_81", 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: 0, scope: !17) -!20 = !DILocation(line: 7, column: 3, scope: !17) -!21 = distinct !DISubprogram(name: "_scilla_expr_fun", linkageName: "_scilla_expr_fun", scope: !2, file: !2, line: 1, type: !6, scopeLine: 1, spFlags: DISPFlagDefinition, unit: !1, retainedNodes: !3) -!22 = !DILocation(line: 1, column: 13, scope: !21) -!23 = !DILocation(line: 2, column: 12, scope: !21) -!24 = !DILocation(line: 4, column: 13, scope: !21) -!25 = !DILocation(line: 5, column: 14, scope: !21) -!26 = !DILocation(line: 7, column: 3, scope: !21) -!27 = !DILocation(line: 9, column: 18, scope: !28) -!28 = distinct !DILexicalBlock(scope: !29, file: !2, line: 8, column: 5) -!29 = distinct !DILexicalBlock(scope: !21, file: !2, line: 7, column: 3) -!30 = !DILocation(line: 10, column: 17, scope: !28) -!31 = !DILocation(line: 11, column: 5, scope: !28) -!32 = !DILocation(line: 12, column: 13, scope: !33) -!33 = distinct !DILexicalBlock(scope: !29, file: !2, line: 12, column: 5) -!34 = !DILocation(line: 16, column: 13, scope: !21) -!35 = !DILocation(line: 17, column: 14, scope: !21) -!36 = !DILocation(line: 19, column: 3, scope: !21) -!37 = !DILocation(line: 21, column: 18, scope: !38) -!38 = distinct !DILexicalBlock(scope: !39, file: !2, line: 20, column: 5) -!39 = distinct !DILexicalBlock(scope: !21, file: !2, line: 19, column: 3) -!40 = !DILocation(line: 22, column: 17, scope: !38) -!41 = !DILocation(line: 23, column: 5, scope: !38) -!42 = !DILocation(line: 24, column: 13, scope: !43) -!43 = distinct !DILexicalBlock(scope: !39, file: !2, line: 24, column: 5) -!44 = !DILocation(line: 28, column: 18, scope: !21) -!45 = !DILocation(line: 29, column: 14, scope: !21) -!46 = !DILocation(line: 31, column: 3, scope: !21) -!47 = !DILocation(line: 33, column: 18, scope: !48) -!48 = distinct !DILexicalBlock(scope: !49, file: !2, line: 32, column: 5) -!49 = distinct !DILexicalBlock(scope: !21, file: !2, line: 31, column: 3) -!50 = !DILocation(line: 34, column: 17, scope: !48) -!51 = !DILocation(line: 35, column: 5, scope: !48) -!52 = !DILocation(line: 36, column: 13, scope: !53) -!53 = distinct !DILexicalBlock(scope: !49, file: !2, line: 36, column: 5) -!54 = !DILocation(line: 40, column: 13, scope: !21) -!55 = !DILocation(line: 41, column: 14, scope: !21) -!56 = !DILocation(line: 43, column: 3, scope: !21) -!57 = !DILocation(line: 45, column: 18, scope: !58) -!58 = distinct !DILexicalBlock(scope: !59, file: !2, line: 44, column: 5) -!59 = distinct !DILexicalBlock(scope: !21, file: !2, line: 43, column: 3) -!60 = !DILocation(line: 46, column: 17, scope: !58) -!61 = !DILocation(line: 47, column: 5, scope: !58) -!62 = !DILocation(line: 48, column: 13, scope: !63) -!63 = distinct !DILexicalBlock(scope: !59, file: !2, line: 48, column: 5) -!64 = !DILocation(line: 52, column: 13, scope: !21) -!65 = !DILocation(line: 53, column: 14, scope: !21) -!66 = !DILocation(line: 55, column: 3, scope: !21) -!67 = !DILocation(line: 57, column: 18, scope: !68) -!68 = distinct !DILexicalBlock(scope: !69, file: !2, line: 56, column: 5) -!69 = distinct !DILexicalBlock(scope: !21, file: !2, line: 55, column: 3) -!70 = !DILocation(line: 58, column: 17, scope: !68) -!71 = !DILocation(line: 59, column: 5, scope: !68) -!72 = !DILocation(line: 60, column: 13, scope: !73) -!73 = distinct !DILexicalBlock(scope: !69, file: !2, line: 60, column: 5) -!74 = !DILocation(line: 64, column: 13, scope: !21) -!75 = !DILocation(line: 65, column: 14, scope: !21) -!76 = !DILocation(line: 67, column: 3, scope: !21) -!77 = !DILocation(line: 69, column: 18, scope: !78) -!78 = distinct !DILexicalBlock(scope: !79, file: !2, line: 68, column: 5) -!79 = distinct !DILexicalBlock(scope: !21, file: !2, line: 67, column: 3) -!80 = !DILocation(line: 70, column: 17, scope: !78) -!81 = !DILocation(line: 71, column: 5, scope: !78) -!82 = !DILocation(line: 72, column: 13, scope: !83) -!83 = distinct !DILexicalBlock(scope: !79, file: !2, line: 72, column: 5) -!84 = !DILocation(line: 76, column: 13, scope: !21) -!85 = !DILocation(line: 77, column: 14, scope: !21) -!86 = !DILocation(line: 79, column: 3, scope: !21) -!87 = !DILocation(line: 80, column: 15, scope: !88) -!88 = distinct !DILexicalBlock(scope: !89, file: !2, line: 80, column: 5) -!89 = distinct !DILexicalBlock(scope: !21, file: !2, line: 79, column: 3) -!90 = !DILocation(line: 81, column: 13, scope: !91) -!91 = distinct !DILexicalBlock(scope: !89, file: !2, line: 81, column: 5) -!92 = !DILocation(line: 85, column: 33, scope: !21) -!93 = !DILocation(line: 86, column: 14, scope: !21) -!94 = !DILocation(line: 88, column: 3, scope: !21) -!95 = !DILocation(line: 89, column: 15, scope: !96) -!96 = distinct !DILexicalBlock(scope: !97, file: !2, line: 89, column: 5) -!97 = distinct !DILexicalBlock(scope: !21, file: !2, line: 88, column: 3) -!98 = !DILocation(line: 90, column: 13, scope: !99) -!99 = distinct !DILexicalBlock(scope: !97, file: !2, line: 90, column: 5) -!100 = !DILocation(line: 94, column: 13, scope: !21) -!101 = !DILocation(line: 95, column: 14, scope: !21) -!102 = !DILocation(line: 97, column: 3, scope: !21) -!103 = !DILocation(line: 99, column: 18, scope: !104) -!104 = distinct !DILexicalBlock(scope: !105, file: !2, line: 98, column: 5) -!105 = distinct !DILexicalBlock(scope: !21, file: !2, line: 97, column: 3) -!106 = !DILocation(line: 100, column: 17, scope: !104) -!107 = !DILocation(line: 101, column: 5, scope: !104) -!108 = !DILocation(line: 102, column: 13, scope: !109) -!109 = distinct !DILexicalBlock(scope: !105, file: !2, line: 102, column: 5) -!110 = !DILocation(line: 106, column: 13, scope: !21) -!111 = !DILocation(line: 107, column: 14, scope: !21) -!112 = !DILocation(line: 109, column: 3, scope: !21) -!113 = !DILocation(line: 111, column: 18, scope: !114) -!114 = distinct !DILexicalBlock(scope: !115, file: !2, line: 110, column: 5) -!115 = distinct !DILexicalBlock(scope: !21, file: !2, line: 109, column: 3) -!116 = !DILocation(line: 112, column: 17, scope: !114) -!117 = !DILocation(line: 113, column: 5, scope: !114) -!118 = !DILocation(line: 114, column: 13, scope: !119) -!119 = distinct !DILexicalBlock(scope: !115, file: !2, line: 114, column: 5) -!120 = !DILocation(line: 118, column: 34, scope: !21) -!121 = !DILocation(line: 119, column: 14, scope: !21) -!122 = !DILocation(line: 121, column: 3, scope: !21) -!123 = !DILocation(line: 123, column: 18, scope: !124) -!124 = distinct !DILexicalBlock(scope: !125, file: !2, line: 122, column: 5) -!125 = distinct !DILexicalBlock(scope: !21, file: !2, line: 121, column: 3) -!126 = !DILocation(line: 124, column: 17, scope: !124) -!127 = !DILocation(line: 125, column: 5, scope: !124) -!128 = !DILocation(line: 126, column: 13, scope: !129) -!129 = distinct !DILexicalBlock(scope: !125, file: !2, line: 126, column: 5) -!130 = !DILocation(line: 130, column: 13, scope: !21) -!131 = !DILocation(line: 131, column: 14, scope: !21) -!132 = !DILocation(line: 133, column: 3, scope: !21) -!133 = !DILocation(line: 135, column: 18, scope: !134) -!134 = distinct !DILexicalBlock(scope: !135, file: !2, line: 134, column: 5) -!135 = distinct !DILexicalBlock(scope: !21, file: !2, line: 133, column: 3) -!136 = !DILocation(line: 136, column: 17, scope: !134) -!137 = !DILocation(line: 137, column: 5, scope: !134) -!138 = !DILocation(line: 138, column: 13, scope: !139) -!139 = distinct !DILexicalBlock(scope: !135, file: !2, line: 138, column: 5) -!140 = !DILocation(line: 142, column: 33, scope: !21) -!141 = !DILocation(line: 143, column: 14, scope: !21) -!142 = !DILocation(line: 145, column: 3, scope: !21) -!143 = !DILocation(line: 147, column: 18, scope: !144) -!144 = distinct !DILexicalBlock(scope: !145, file: !2, line: 146, column: 5) -!145 = distinct !DILexicalBlock(scope: !21, file: !2, line: 145, column: 3) -!146 = !DILocation(line: 148, column: 17, scope: !144) -!147 = !DILocation(line: 149, column: 5, scope: !144) -!148 = !DILocation(line: 150, column: 13, scope: !149) -!149 = distinct !DILexicalBlock(scope: !145, file: !2, line: 150, column: 5) -!150 = !DILocation(line: 154, column: 13, scope: !21) -!151 = !DILocation(line: 155, column: 14, scope: !21) -!152 = !DILocation(line: 157, column: 3, scope: !21) -!153 = !DILocation(line: 159, column: 18, scope: !154) -!154 = distinct !DILexicalBlock(scope: !155, file: !2, line: 158, column: 5) -!155 = distinct !DILexicalBlock(scope: !21, file: !2, line: 157, column: 3) -!156 = !DILocation(line: 160, column: 17, scope: !154) -!157 = !DILocation(line: 161, column: 5, scope: !154) -!158 = !DILocation(line: 162, column: 13, scope: !159) -!159 = distinct !DILexicalBlock(scope: !155, file: !2, line: 162, column: 5) -!160 = !DILocation(line: 166, column: 91, scope: !21) -!161 = !DILocation(line: 167, column: 14, scope: !21) -!162 = !DILocation(line: 169, column: 3, scope: !21) -!163 = !DILocation(line: 171, column: 18, scope: !164) -!164 = distinct !DILexicalBlock(scope: !165, file: !2, line: 170, column: 5) -!165 = distinct !DILexicalBlock(scope: !21, file: !2, line: 169, column: 3) -!166 = !DILocation(line: 172, column: 17, scope: !164) -!167 = !DILocation(line: 173, column: 5, scope: !164) -!168 = !DILocation(line: 174, column: 13, scope: !169) -!169 = distinct !DILexicalBlock(scope: !165, file: !2, line: 174, column: 5) -!170 = !DILocation(line: 178, column: 18, scope: !21) -!171 = !DILocation(line: 179, column: 14, scope: !21) -!172 = !DILocation(line: 181, column: 3, scope: !21) -!173 = !DILocation(line: 182, column: 15, scope: !174) -!174 = distinct !DILexicalBlock(scope: !175, file: !2, line: 182, column: 5) -!175 = distinct !DILexicalBlock(scope: !21, file: !2, line: 181, column: 3) -!176 = !DILocation(line: 183, column: 13, scope: !177) -!177 = distinct !DILexicalBlock(scope: !175, file: !2, line: 183, column: 5) -!178 = !DILocation(line: 187, column: 1, scope: !21) +!3 = distinct !DISubprogram(name: "$fundef_83", linkageName: "$fundef_83", scope: !4, file: !4, line: 8, type: !5, scopeLine: 8, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!4 = !DIFile(filename: "BoolUtils.scillib", directory: "../src/stdlib") +!5 = !DISubroutineType(types: !6) +!6 = !{!7} +!7 = !DIBasicType(tag: DW_TAG_unspecified_type, name: "void") +!8 = !{} +!9 = !DILocalVariable(name: "c", scope: !3, file: !4, line: 7, type: !10) +!10 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "Bool", baseType: !11, size: 8, align: 8, dwarfAddressSpace: 0) +!11 = !DIBasicType(name: "Bool", size: 8) +!12 = !DILocation(line: 7, column: 8, scope: !3) +!13 = !DILocalVariable(name: "$retval_84", scope: !3, file: !4, line: 8, type: !10) +!14 = !DILocation(line: 8, column: 5, scope: !3) +!15 = !DILocation(line: 9, column: 16, scope: !16) +!16 = distinct !DILexicalBlock(scope: !17, file: !4, line: 9, column: 7) +!17 = distinct !DILexicalBlock(scope: !3, file: !4, line: 8, column: 5) +!18 = !DILocation(line: 10, column: 16, scope: !19) +!19 = distinct !DILexicalBlock(scope: !17, file: !4, line: 10, column: 7) +!20 = distinct !DISubprogram(name: "$fundef_81", linkageName: "$fundef_81", scope: !4, file: !4, line: 7, type: !5, scopeLine: 7, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!21 = !DILocalVariable(name: "b", scope: !20, file: !4, line: 6, type: !10) +!22 = !DILocation(line: 6, column: 8, scope: !20) +!23 = !DILocation(line: 8, column: 5, scope: !20) +!24 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !25, file: !25, type: !5, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!25 = !DIFile(filename: ".", directory: ".") +!26 = !DILocation(line: 0, scope: !24) +!27 = !DILocation(line: 7, column: 3, scope: !24) +!28 = distinct !DISubprogram(name: "_scilla_expr_fun", linkageName: "_scilla_expr_fun", scope: !2, file: !2, line: 1, type: !5, scopeLine: 1, spFlags: DISPFlagDefinition, unit: !1, retainedNodes: !8) +!29 = !DILocalVariable(name: "$expr_85", scope: !28, file: !2, line: 1, type: !10) +!30 = !DILocation(line: 1, column: 13, scope: !28) +!31 = !DILocalVariable(name: "false", scope: !28, file: !2, line: 1, type: !10) +!32 = !DILocation(line: 1, column: 5, scope: !28) +!33 = !DILocalVariable(name: "test", scope: !28, file: !2, line: 2, type: !10) +!34 = !DILocation(line: 2, column: 5, scope: !28) +!35 = !DILocation(line: 2, column: 12, scope: !28) +!36 = !DILocalVariable(name: "input", scope: !28, file: !2, line: 4, type: !37) +!37 = !DIBasicType(name: "Uint32", size: 4) +!38 = !DILocation(line: 4, column: 5, scope: !28) +!39 = !DILocation(line: 4, column: 13, scope: !28) +!40 = !DILocalVariable(name: "resopt", scope: !28, file: !2, line: 5, type: !41) +!41 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "Option (Int32)", baseType: !42, size: 8, align: 8, dwarfAddressSpace: 0) +!42 = !DIBasicType(name: "Option (Int32)", size: 8) +!43 = !DILocation(line: 5, column: 5, scope: !28) +!44 = !DILocation(line: 5, column: 14, scope: !28) +!45 = !DILocalVariable(name: "$test_6", scope: !28, file: !2, line: 6, type: !10) +!46 = !DILocation(line: 6, column: 5, scope: !28) +!47 = !DILocation(line: 7, column: 3, scope: !28) +!48 = !DILocalVariable(name: "input_", scope: !49, file: !2, line: 9, type: !51) +!49 = distinct !DILexicalBlock(scope: !50, file: !2, line: 8, column: 5) +!50 = distinct !DILexicalBlock(scope: !28, file: !2, line: 7, column: 3) +!51 = !DIBasicType(name: "Int32", size: 4) +!52 = !DILocation(line: 9, column: 9, scope: !49) +!53 = !DILocation(line: 9, column: 18, scope: !49) +!54 = !DILocalVariable(name: "test_", scope: !49, file: !2, line: 10, type: !10) +!55 = !DILocation(line: 10, column: 9, scope: !49) +!56 = !DILocation(line: 10, column: 17, scope: !49) +!57 = !DILocation(line: 11, column: 5, scope: !49) +!58 = !DILocalVariable(name: "$BoolUtils.andb_56", scope: !49, file: !2, line: 11, type: !10) +!59 = !DILocation(line: 12, column: 13, scope: !60) +!60 = distinct !DILexicalBlock(scope: !50, file: !2, line: 12, column: 5) +!61 = !DILocalVariable(name: "$input_7", scope: !28, file: !2, line: 16, type: !51) +!62 = !DILocation(line: 16, column: 5, scope: !28) +!63 = !DILocation(line: 16, column: 13, scope: !28) +!64 = !DILocalVariable(name: "$resopt_8", scope: !28, file: !2, line: 17, type: !41) +!65 = !DILocation(line: 17, column: 5, scope: !28) +!66 = !DILocation(line: 17, column: 14, scope: !28) +!67 = !DILocalVariable(name: "$test_9", scope: !28, file: !2, line: 18, type: !10) +!68 = !DILocation(line: 18, column: 5, scope: !28) +!69 = !DILocation(line: 19, column: 3, scope: !28) +!70 = !DILocalVariable(name: "input_", scope: !71, file: !2, line: 21, type: !51) +!71 = distinct !DILexicalBlock(scope: !72, file: !2, line: 20, column: 5) +!72 = distinct !DILexicalBlock(scope: !28, file: !2, line: 19, column: 3) +!73 = !DILocation(line: 21, column: 9, scope: !71) +!74 = !DILocation(line: 21, column: 18, scope: !71) +!75 = !DILocalVariable(name: "test_", scope: !71, file: !2, line: 22, type: !10) +!76 = !DILocation(line: 22, column: 9, scope: !71) +!77 = !DILocation(line: 22, column: 17, scope: !71) +!78 = !DILocation(line: 23, column: 5, scope: !71) +!79 = !DILocalVariable(name: "$BoolUtils.andb_58", scope: !71, file: !2, line: 23, type: !10) +!80 = !DILocation(line: 24, column: 13, scope: !81) +!81 = distinct !DILexicalBlock(scope: !72, file: !2, line: 24, column: 5) +!82 = !DILocalVariable(name: "$input_10", scope: !28, file: !2, line: 28, type: !83) +!83 = !DIBasicType(name: "String", size: 16) +!84 = !DILocation(line: 28, column: 5, scope: !28) +!85 = !DILocation(line: 28, column: 18, scope: !28) +!86 = !DILocalVariable(name: "$resopt_11", scope: !28, file: !2, line: 29, type: !41) +!87 = !DILocation(line: 29, column: 5, scope: !28) +!88 = !DILocation(line: 29, column: 14, scope: !28) +!89 = !DILocalVariable(name: "$test_12", scope: !28, file: !2, line: 30, type: !10) +!90 = !DILocation(line: 30, column: 5, scope: !28) +!91 = !DILocation(line: 31, column: 3, scope: !28) +!92 = !DILocalVariable(name: "input_", scope: !93, file: !2, line: 33, type: !51) +!93 = distinct !DILexicalBlock(scope: !94, file: !2, line: 32, column: 5) +!94 = distinct !DILexicalBlock(scope: !28, file: !2, line: 31, column: 3) +!95 = !DILocation(line: 33, column: 9, scope: !93) +!96 = !DILocation(line: 33, column: 18, scope: !93) +!97 = !DILocalVariable(name: "test_", scope: !93, file: !2, line: 34, type: !10) +!98 = !DILocation(line: 34, column: 9, scope: !93) +!99 = !DILocation(line: 34, column: 17, scope: !93) +!100 = !DILocation(line: 35, column: 5, scope: !93) +!101 = !DILocalVariable(name: "$BoolUtils.andb_60", scope: !93, file: !2, line: 35, type: !10) +!102 = !DILocation(line: 36, column: 13, scope: !103) +!103 = distinct !DILexicalBlock(scope: !94, file: !2, line: 36, column: 5) +!104 = !DILocalVariable(name: "$input_13", scope: !28, file: !2, line: 40, type: !105) +!105 = !DIBasicType(name: "Uint128", size: 16) +!106 = !DILocation(line: 40, column: 5, scope: !28) +!107 = !DILocation(line: 40, column: 13, scope: !28) +!108 = !DILocalVariable(name: "$resopt_14", scope: !28, file: !2, line: 41, type: !41) +!109 = !DILocation(line: 41, column: 5, scope: !28) +!110 = !DILocation(line: 41, column: 14, scope: !28) +!111 = !DILocalVariable(name: "$test_15", scope: !28, file: !2, line: 42, type: !10) +!112 = !DILocation(line: 42, column: 5, scope: !28) +!113 = !DILocation(line: 43, column: 3, scope: !28) +!114 = !DILocalVariable(name: "input_", scope: !115, file: !2, line: 45, type: !51) +!115 = distinct !DILexicalBlock(scope: !116, file: !2, line: 44, column: 5) +!116 = distinct !DILexicalBlock(scope: !28, file: !2, line: 43, column: 3) +!117 = !DILocation(line: 45, column: 9, scope: !115) +!118 = !DILocation(line: 45, column: 18, scope: !115) +!119 = !DILocalVariable(name: "test_", scope: !115, file: !2, line: 46, type: !10) +!120 = !DILocation(line: 46, column: 9, scope: !115) +!121 = !DILocation(line: 46, column: 17, scope: !115) +!122 = !DILocation(line: 47, column: 5, scope: !115) +!123 = !DILocalVariable(name: "$BoolUtils.andb_62", scope: !115, file: !2, line: 47, type: !10) +!124 = !DILocation(line: 48, column: 13, scope: !125) +!125 = distinct !DILexicalBlock(scope: !116, file: !2, line: 48, column: 5) +!126 = !DILocalVariable(name: "$input_16", scope: !28, file: !2, line: 52, type: !127) +!127 = !DIBasicType(name: "Int128", size: 16) +!128 = !DILocation(line: 52, column: 5, scope: !28) +!129 = !DILocation(line: 52, column: 13, scope: !28) +!130 = !DILocalVariable(name: "$resopt_17", scope: !28, file: !2, line: 53, type: !41) +!131 = !DILocation(line: 53, column: 5, scope: !28) +!132 = !DILocation(line: 53, column: 14, scope: !28) +!133 = !DILocalVariable(name: "$test_18", scope: !28, file: !2, line: 54, type: !10) +!134 = !DILocation(line: 54, column: 5, scope: !28) +!135 = !DILocation(line: 55, column: 3, scope: !28) +!136 = !DILocalVariable(name: "input_", scope: !137, file: !2, line: 57, type: !51) +!137 = distinct !DILexicalBlock(scope: !138, file: !2, line: 56, column: 5) +!138 = distinct !DILexicalBlock(scope: !28, file: !2, line: 55, column: 3) +!139 = !DILocation(line: 57, column: 9, scope: !137) +!140 = !DILocation(line: 57, column: 18, scope: !137) +!141 = !DILocalVariable(name: "test_", scope: !137, file: !2, line: 58, type: !10) +!142 = !DILocation(line: 58, column: 9, scope: !137) +!143 = !DILocation(line: 58, column: 17, scope: !137) +!144 = !DILocation(line: 59, column: 5, scope: !137) +!145 = !DILocalVariable(name: "$BoolUtils.andb_64", scope: !137, file: !2, line: 59, type: !10) +!146 = !DILocation(line: 60, column: 13, scope: !147) +!147 = distinct !DILexicalBlock(scope: !138, file: !2, line: 60, column: 5) +!148 = !DILocalVariable(name: "$input_19", scope: !28, file: !2, line: 64, type: !149) +!149 = !DIBasicType(name: "Int256", size: 32) +!150 = !DILocation(line: 64, column: 5, scope: !28) +!151 = !DILocation(line: 64, column: 13, scope: !28) +!152 = !DILocalVariable(name: "$resopt_20", scope: !28, file: !2, line: 65, type: !41) +!153 = !DILocation(line: 65, column: 5, scope: !28) +!154 = !DILocation(line: 65, column: 14, scope: !28) +!155 = !DILocalVariable(name: "$test_21", scope: !28, file: !2, line: 66, type: !10) +!156 = !DILocation(line: 66, column: 5, scope: !28) +!157 = !DILocation(line: 67, column: 3, scope: !28) +!158 = !DILocalVariable(name: "input_", scope: !159, file: !2, line: 69, type: !51) +!159 = distinct !DILexicalBlock(scope: !160, file: !2, line: 68, column: 5) +!160 = distinct !DILexicalBlock(scope: !28, file: !2, line: 67, column: 3) +!161 = !DILocation(line: 69, column: 9, scope: !159) +!162 = !DILocation(line: 69, column: 18, scope: !159) +!163 = !DILocalVariable(name: "test_", scope: !159, file: !2, line: 70, type: !10) +!164 = !DILocation(line: 70, column: 9, scope: !159) +!165 = !DILocation(line: 70, column: 17, scope: !159) +!166 = !DILocation(line: 71, column: 5, scope: !159) +!167 = !DILocalVariable(name: "$BoolUtils.andb_66", scope: !159, file: !2, line: 71, type: !10) +!168 = !DILocation(line: 72, column: 13, scope: !169) +!169 = distinct !DILexicalBlock(scope: !160, file: !2, line: 72, column: 5) +!170 = !DILocalVariable(name: "$input_22", scope: !28, file: !2, line: 76, type: !171) +!171 = !DIBasicType(name: "Uint64", size: 8) +!172 = !DILocation(line: 76, column: 5, scope: !28) +!173 = !DILocation(line: 76, column: 13, scope: !28) +!174 = !DILocalVariable(name: "$resopt_23", scope: !28, file: !2, line: 77, type: !175) +!175 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "Option (Int64)", baseType: !176, size: 8, align: 8, dwarfAddressSpace: 0) +!176 = !DIBasicType(name: "Option (Int64)", size: 8) +!177 = !DILocation(line: 77, column: 5, scope: !28) +!178 = !DILocation(line: 77, column: 14, scope: !28) +!179 = !DILocalVariable(name: "$test_24", scope: !28, file: !2, line: 78, type: !10) +!180 = !DILocation(line: 78, column: 5, scope: !28) +!181 = !DILocation(line: 79, column: 3, scope: !28) +!182 = !DILocation(line: 80, column: 15, scope: !183) +!183 = distinct !DILexicalBlock(scope: !184, file: !2, line: 80, column: 5) +!184 = distinct !DILexicalBlock(scope: !28, file: !2, line: 79, column: 3) +!185 = !DILocation(line: 81, column: 13, scope: !186) +!186 = distinct !DILexicalBlock(scope: !184, file: !2, line: 81, column: 5) +!187 = !DILocalVariable(name: "$input_25", scope: !28, file: !2, line: 85, type: !83) +!188 = !DILocation(line: 85, column: 5, scope: !28) +!189 = !DILocation(line: 85, column: 33, scope: !28) +!190 = !DILocalVariable(name: "$resopt_26", scope: !28, file: !2, line: 86, type: !175) +!191 = !DILocation(line: 86, column: 5, scope: !28) +!192 = !DILocation(line: 86, column: 14, scope: !28) +!193 = !DILocalVariable(name: "$test_27", scope: !28, file: !2, line: 87, type: !10) +!194 = !DILocation(line: 87, column: 5, scope: !28) +!195 = !DILocation(line: 88, column: 3, scope: !28) +!196 = !DILocation(line: 89, column: 15, scope: !197) +!197 = distinct !DILexicalBlock(scope: !198, file: !2, line: 89, column: 5) +!198 = distinct !DILexicalBlock(scope: !28, file: !2, line: 88, column: 3) +!199 = !DILocation(line: 90, column: 13, scope: !200) +!200 = distinct !DILexicalBlock(scope: !198, file: !2, line: 90, column: 5) +!201 = !DILocalVariable(name: "$input_28", scope: !28, file: !2, line: 94, type: !171) +!202 = !DILocation(line: 94, column: 5, scope: !28) +!203 = !DILocation(line: 94, column: 13, scope: !28) +!204 = !DILocalVariable(name: "$resopt_29", scope: !28, file: !2, line: 95, type: !175) +!205 = !DILocation(line: 95, column: 5, scope: !28) +!206 = !DILocation(line: 95, column: 14, scope: !28) +!207 = !DILocalVariable(name: "$test_30", scope: !28, file: !2, line: 96, type: !10) +!208 = !DILocation(line: 96, column: 5, scope: !28) +!209 = !DILocation(line: 97, column: 3, scope: !28) +!210 = !DILocalVariable(name: "input_", scope: !211, file: !2, line: 99, type: !213) +!211 = distinct !DILexicalBlock(scope: !212, file: !2, line: 98, column: 5) +!212 = distinct !DILexicalBlock(scope: !28, file: !2, line: 97, column: 3) +!213 = !DIBasicType(name: "Int64", size: 8) +!214 = !DILocation(line: 99, column: 9, scope: !211) +!215 = !DILocation(line: 99, column: 18, scope: !211) +!216 = !DILocalVariable(name: "test_", scope: !211, file: !2, line: 100, type: !10) +!217 = !DILocation(line: 100, column: 9, scope: !211) +!218 = !DILocation(line: 100, column: 17, scope: !211) +!219 = !DILocation(line: 101, column: 5, scope: !211) +!220 = !DILocalVariable(name: "$BoolUtils.andb_68", scope: !211, file: !2, line: 101, type: !10) +!221 = !DILocation(line: 102, column: 13, scope: !222) +!222 = distinct !DILexicalBlock(scope: !212, file: !2, line: 102, column: 5) +!223 = !DILocalVariable(name: "$input_31", scope: !28, file: !2, line: 106, type: !127) +!224 = !DILocation(line: 106, column: 5, scope: !28) +!225 = !DILocation(line: 106, column: 13, scope: !28) +!226 = !DILocalVariable(name: "$resopt_32", scope: !28, file: !2, line: 107, type: !175) +!227 = !DILocation(line: 107, column: 5, scope: !28) +!228 = !DILocation(line: 107, column: 14, scope: !28) +!229 = !DILocalVariable(name: "$test_33", scope: !28, file: !2, line: 108, type: !10) +!230 = !DILocation(line: 108, column: 5, scope: !28) +!231 = !DILocation(line: 109, column: 3, scope: !28) +!232 = !DILocalVariable(name: "input_", scope: !233, file: !2, line: 111, type: !213) +!233 = distinct !DILexicalBlock(scope: !234, file: !2, line: 110, column: 5) +!234 = distinct !DILexicalBlock(scope: !28, file: !2, line: 109, column: 3) +!235 = !DILocation(line: 111, column: 9, scope: !233) +!236 = !DILocation(line: 111, column: 18, scope: !233) +!237 = !DILocalVariable(name: "test_", scope: !233, file: !2, line: 112, type: !10) +!238 = !DILocation(line: 112, column: 9, scope: !233) +!239 = !DILocation(line: 112, column: 17, scope: !233) +!240 = !DILocation(line: 113, column: 5, scope: !233) +!241 = !DILocalVariable(name: "$BoolUtils.andb_70", scope: !233, file: !2, line: 113, type: !10) +!242 = !DILocation(line: 114, column: 13, scope: !243) +!243 = distinct !DILexicalBlock(scope: !234, file: !2, line: 114, column: 5) +!244 = !DILocalVariable(name: "$input_34", scope: !28, file: !2, line: 118, type: !83) +!245 = !DILocation(line: 118, column: 5, scope: !28) +!246 = !DILocation(line: 118, column: 34, scope: !28) +!247 = !DILocalVariable(name: "$resopt_35", scope: !28, file: !2, line: 119, type: !175) +!248 = !DILocation(line: 119, column: 5, scope: !28) +!249 = !DILocation(line: 119, column: 14, scope: !28) +!250 = !DILocalVariable(name: "$test_36", scope: !28, file: !2, line: 120, type: !10) +!251 = !DILocation(line: 120, column: 5, scope: !28) +!252 = !DILocation(line: 121, column: 3, scope: !28) +!253 = !DILocalVariable(name: "input_", scope: !254, file: !2, line: 123, type: !213) +!254 = distinct !DILexicalBlock(scope: !255, file: !2, line: 122, column: 5) +!255 = distinct !DILexicalBlock(scope: !28, file: !2, line: 121, column: 3) +!256 = !DILocation(line: 123, column: 9, scope: !254) +!257 = !DILocation(line: 123, column: 18, scope: !254) +!258 = !DILocalVariable(name: "test_", scope: !254, file: !2, line: 124, type: !10) +!259 = !DILocation(line: 124, column: 9, scope: !254) +!260 = !DILocation(line: 124, column: 17, scope: !254) +!261 = !DILocation(line: 125, column: 5, scope: !254) +!262 = !DILocalVariable(name: "$BoolUtils.andb_72", scope: !254, file: !2, line: 125, type: !10) +!263 = !DILocation(line: 126, column: 13, scope: !264) +!264 = distinct !DILexicalBlock(scope: !255, file: !2, line: 126, column: 5) +!265 = !DILocalVariable(name: "$input_37", scope: !28, file: !2, line: 130, type: !171) +!266 = !DILocation(line: 130, column: 5, scope: !28) +!267 = !DILocation(line: 130, column: 13, scope: !28) +!268 = !DILocalVariable(name: "$resopt_38", scope: !28, file: !2, line: 131, type: !269) +!269 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "Option (Int256)", baseType: !270, size: 8, align: 8, dwarfAddressSpace: 0) +!270 = !DIBasicType(name: "Option (Int256)", size: 8) +!271 = !DILocation(line: 131, column: 5, scope: !28) +!272 = !DILocation(line: 131, column: 14, scope: !28) +!273 = !DILocalVariable(name: "$test_39", scope: !28, file: !2, line: 132, type: !10) +!274 = !DILocation(line: 132, column: 5, scope: !28) +!275 = !DILocation(line: 133, column: 3, scope: !28) +!276 = !DILocalVariable(name: "input_", scope: !277, file: !2, line: 135, type: !149) +!277 = distinct !DILexicalBlock(scope: !278, file: !2, line: 134, column: 5) +!278 = distinct !DILexicalBlock(scope: !28, file: !2, line: 133, column: 3) +!279 = !DILocation(line: 135, column: 9, scope: !277) +!280 = !DILocation(line: 135, column: 18, scope: !277) +!281 = !DILocalVariable(name: "test_", scope: !277, file: !2, line: 136, type: !10) +!282 = !DILocation(line: 136, column: 9, scope: !277) +!283 = !DILocation(line: 136, column: 17, scope: !277) +!284 = !DILocation(line: 137, column: 5, scope: !277) +!285 = !DILocalVariable(name: "$BoolUtils.andb_74", scope: !277, file: !2, line: 137, type: !10) +!286 = !DILocation(line: 138, column: 13, scope: !287) +!287 = distinct !DILexicalBlock(scope: !278, file: !2, line: 138, column: 5) +!288 = !DILocalVariable(name: "$input_40", scope: !28, file: !2, line: 142, type: !83) +!289 = !DILocation(line: 142, column: 5, scope: !28) +!290 = !DILocation(line: 142, column: 33, scope: !28) +!291 = !DILocalVariable(name: "$resopt_41", scope: !28, file: !2, line: 143, type: !269) +!292 = !DILocation(line: 143, column: 5, scope: !28) +!293 = !DILocation(line: 143, column: 14, scope: !28) +!294 = !DILocalVariable(name: "$test_42", scope: !28, file: !2, line: 144, type: !10) +!295 = !DILocation(line: 144, column: 5, scope: !28) +!296 = !DILocation(line: 145, column: 3, scope: !28) +!297 = !DILocalVariable(name: "input_", scope: !298, file: !2, line: 147, type: !149) +!298 = distinct !DILexicalBlock(scope: !299, file: !2, line: 146, column: 5) +!299 = distinct !DILexicalBlock(scope: !28, file: !2, line: 145, column: 3) +!300 = !DILocation(line: 147, column: 9, scope: !298) +!301 = !DILocation(line: 147, column: 18, scope: !298) +!302 = !DILocalVariable(name: "test_", scope: !298, file: !2, line: 148, type: !10) +!303 = !DILocation(line: 148, column: 9, scope: !298) +!304 = !DILocation(line: 148, column: 17, scope: !298) +!305 = !DILocation(line: 149, column: 5, scope: !298) +!306 = !DILocalVariable(name: "$BoolUtils.andb_76", scope: !298, file: !2, line: 149, type: !10) +!307 = !DILocation(line: 150, column: 13, scope: !308) +!308 = distinct !DILexicalBlock(scope: !299, file: !2, line: 150, column: 5) +!309 = !DILocalVariable(name: "$input_43", scope: !28, file: !2, line: 154, type: !310) +!310 = !DIBasicType(name: "Uint256", size: 32) +!311 = !DILocation(line: 154, column: 5, scope: !28) +!312 = !DILocation(line: 154, column: 13, scope: !28) +!313 = !DILocalVariable(name: "$resopt_44", scope: !28, file: !2, line: 155, type: !269) +!314 = !DILocation(line: 155, column: 5, scope: !28) +!315 = !DILocation(line: 155, column: 14, scope: !28) +!316 = !DILocalVariable(name: "$test_45", scope: !28, file: !2, line: 156, type: !10) +!317 = !DILocation(line: 156, column: 5, scope: !28) +!318 = !DILocation(line: 157, column: 3, scope: !28) +!319 = !DILocalVariable(name: "input_", scope: !320, file: !2, line: 159, type: !149) +!320 = distinct !DILexicalBlock(scope: !321, file: !2, line: 158, column: 5) +!321 = distinct !DILexicalBlock(scope: !28, file: !2, line: 157, column: 3) +!322 = !DILocation(line: 159, column: 9, scope: !320) +!323 = !DILocation(line: 159, column: 18, scope: !320) +!324 = !DILocalVariable(name: "test_", scope: !320, file: !2, line: 160, type: !10) +!325 = !DILocation(line: 160, column: 9, scope: !320) +!326 = !DILocation(line: 160, column: 17, scope: !320) +!327 = !DILocation(line: 161, column: 5, scope: !320) +!328 = !DILocalVariable(name: "$BoolUtils.andb_78", scope: !320, file: !2, line: 161, type: !10) +!329 = !DILocation(line: 162, column: 13, scope: !330) +!330 = distinct !DILexicalBlock(scope: !321, file: !2, line: 162, column: 5) +!331 = !DILocalVariable(name: "$input_46", scope: !28, file: !2, line: 166, type: !83) +!332 = !DILocation(line: 166, column: 5, scope: !28) +!333 = !DILocation(line: 166, column: 91, scope: !28) +!334 = !DILocalVariable(name: "$resopt_47", scope: !28, file: !2, line: 167, type: !269) +!335 = !DILocation(line: 167, column: 5, scope: !28) +!336 = !DILocation(line: 167, column: 14, scope: !28) +!337 = !DILocalVariable(name: "$test_48", scope: !28, file: !2, line: 168, type: !10) +!338 = !DILocation(line: 168, column: 5, scope: !28) +!339 = !DILocation(line: 169, column: 3, scope: !28) +!340 = !DILocalVariable(name: "input_", scope: !341, file: !2, line: 171, type: !149) +!341 = distinct !DILexicalBlock(scope: !342, file: !2, line: 170, column: 5) +!342 = distinct !DILexicalBlock(scope: !28, file: !2, line: 169, column: 3) +!343 = !DILocation(line: 171, column: 9, scope: !341) +!344 = !DILocation(line: 171, column: 18, scope: !341) +!345 = !DILocalVariable(name: "test_", scope: !341, file: !2, line: 172, type: !10) +!346 = !DILocation(line: 172, column: 9, scope: !341) +!347 = !DILocation(line: 172, column: 17, scope: !341) +!348 = !DILocation(line: 173, column: 5, scope: !341) +!349 = !DILocalVariable(name: "$BoolUtils.andb_80", scope: !341, file: !2, line: 173, type: !10) +!350 = !DILocation(line: 174, column: 13, scope: !351) +!351 = distinct !DILexicalBlock(scope: !342, file: !2, line: 174, column: 5) +!352 = !DILocalVariable(name: "$input_49", scope: !28, file: !2, line: 178, type: !83) +!353 = !DILocation(line: 178, column: 5, scope: !28) +!354 = !DILocation(line: 178, column: 18, scope: !28) +!355 = !DILocalVariable(name: "$resopt_50", scope: !28, file: !2, line: 179, type: !175) +!356 = !DILocation(line: 179, column: 5, scope: !28) +!357 = !DILocation(line: 179, column: 14, scope: !28) +!358 = !DILocalVariable(name: "$test_51", scope: !28, file: !2, line: 180, type: !10) +!359 = !DILocation(line: 180, column: 5, scope: !28) +!360 = !DILocation(line: 181, column: 3, scope: !28) +!361 = !DILocation(line: 182, column: 15, scope: !362) +!362 = distinct !DILexicalBlock(scope: !363, file: !2, line: 182, column: 5) +!363 = distinct !DILexicalBlock(scope: !28, file: !2, line: 181, column: 3) +!364 = !DILocation(line: 183, column: 13, scope: !365) +!365 = distinct !DILexicalBlock(scope: !363, file: !2, line: 183, column: 5) +!366 = !DILocation(line: 187, column: 1, scope: !28) diff --git a/testsuite/expr/builtin_to_int.ll b/testsuite/expr/builtin_to_int.ll index c433d633..30f2f9fa 100644 --- a/testsuite/expr/builtin_to_int.ll +++ b/testsuite/expr/builtin_to_int.ll @@ -188,7 +188,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-pc-linux-gnu" +target triple = "x86_64-unknown-linux-gnu" %"$TyDescrTy_PrimTyp_86" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/testsuite/expr/builtin_to_nat.dbg.ll b/testsuite/expr/builtin_to_nat.dbg.ll index 307d375c..d6e5b79b 100644 --- a/testsuite/expr/builtin_to_nat.dbg.ll +++ b/testsuite/expr/builtin_to_nat.dbg.ll @@ -2,7 +2,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-pc-linux-gnu" +target triple = "x86_64-unknown-linux-gnu" %"$TyDescrTy_PrimTyp_7" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } @@ -77,7 +77,7 @@ target triple = "x86_64-pc-linux-gnu" @_transition_parameters = constant [0 x %"$TransDescr_114"] zeroinitializer @_transition_parameters_length = constant i32 0 -define void @_init_libs() !dbg !4 { +define void @_init_libs() !dbg !3 { entry: %"$gasrem_57" = load i64, i64* @_gasrem, align 8 %"$gascmp_58" = icmp ugt i64 5, %"$gasrem_57" @@ -159,6 +159,7 @@ declare void @_out_of_gas() define internal %TName_Nat* @_scilla_expr_fun(i8* %0) !dbg !10 { entry: %"$expr_6" = alloca %TName_Nat*, align 8 + call void @llvm.dbg.declare(metadata %TName_Nat** %"$expr_6", metadata !11, metadata !DIExpression()), !dbg !14 %"$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" @@ -171,6 +172,7 @@ entry: %"$consume_91" = sub i64 %"$gasrem_87", 1 store i64 %"$consume_91", i64* @_gasrem, align 8 %two = alloca %Uint32, align 8 + call void @llvm.dbg.declare(metadata %Uint32* %two, metadata !15, metadata !DIExpression()), !dbg !17 %"$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" @@ -182,7 +184,7 @@ entry: "$have_gas_95": ; preds = %"$out_of_gas_94", %"$have_gas_90" %"$consume_96" = sub i64 %"$gasrem_92", 1 store i64 %"$consume_96", i64* @_gasrem, align 8 - store %Uint32 { i32 2 }, %Uint32* %two, align 4, !dbg !11 + store %Uint32 { i32 2 }, %Uint32* %two, align 4, !dbg !14 %"$two_97" = load %Uint32, %Uint32* %two, align 4 %"$valueof_98" = extractvalue %Uint32 %"$two_97", 0 %"$valueof_99" = zext i32 %"$valueof_98" to i64 @@ -199,12 +201,15 @@ entry: store i64 %"$consume_104", i64* @_gasrem, align 8 %"$execptr_load_105" = load i8*, i8** @_execptr, align 8 %"$two_106" = load %Uint32, %Uint32* %two, align 4 - %"$to_nat_call_107" = call %TName_Nat* @_to_nat(i8* %"$execptr_load_105", %Uint32 %"$two_106"), !dbg !12 - store %TName_Nat* %"$to_nat_call_107", %TName_Nat** %"$expr_6", align 8, !dbg !12 + %"$to_nat_call_107" = call %TName_Nat* @_to_nat(i8* %"$execptr_load_105", %Uint32 %"$two_106"), !dbg !18 + store %TName_Nat* %"$to_nat_call_107", %TName_Nat** %"$expr_6", align 8, !dbg !18 %"$$expr_6_109" = load %TName_Nat*, %TName_Nat** %"$expr_6", align 8 ret %TName_Nat* %"$$expr_6_109" } +; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn +declare void @llvm.dbg.declare(metadata, metadata, metadata) #0 + declare %TName_Nat* @_to_nat(i8*, %Uint32) declare void @_print_scilla_val(i8*, %_TyDescrTy_Typ*, i8*) @@ -218,19 +223,27 @@ entry: ret void } +attributes #0 = { nocallback nofree nosync nounwind readnone speculatable willreturn } + !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) +!1 = distinct !DICompileUnit(language: DW_LANG_C89, file: !2, producer: "Scilla Compiler", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false) !2 = !DIFile(filename: "builtin_to_nat.scilexp", directory: "codegen/expr") -!3 = !{} -!4 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !5, file: !5, type: !6, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!5 = !DIFile(filename: ".", directory: ".") -!6 = !DISubroutineType(types: !7) -!7 = !{!8} -!8 = !DIBasicType(tag: DW_TAG_unspecified_type, name: "void") -!9 = !DILocation(line: 0, scope: !4) -!10 = distinct !DISubprogram(name: "_scilla_expr_fun", linkageName: "_scilla_expr_fun", scope: !2, file: !2, line: 1, type: !6, scopeLine: 1, spFlags: DISPFlagDefinition, unit: !1, retainedNodes: !3) -!11 = !DILocation(line: 1, column: 11, scope: !10) -!12 = !DILocation(line: 2, column: 1, scope: !10) +!3 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !4, file: !4, type: !5, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!4 = !DIFile(filename: ".", directory: ".") +!5 = !DISubroutineType(types: !6) +!6 = !{!7} +!7 = !DIBasicType(tag: DW_TAG_unspecified_type, name: "void") +!8 = !{} +!9 = !DILocation(line: 0, scope: !3) +!10 = distinct !DISubprogram(name: "_scilla_expr_fun", linkageName: "_scilla_expr_fun", scope: !2, file: !2, line: 1, type: !5, scopeLine: 1, spFlags: DISPFlagDefinition, unit: !1, retainedNodes: !8) +!11 = !DILocalVariable(name: "$expr_6", scope: !10, file: !2, line: 1, type: !12) +!12 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "Nat", baseType: !13, size: 8, align: 8, dwarfAddressSpace: 0) +!13 = !DIBasicType(name: "Nat", size: 8) +!14 = !DILocation(line: 1, column: 11, scope: !10) +!15 = !DILocalVariable(name: "two", scope: !10, file: !2, line: 1, type: !16) +!16 = !DIBasicType(name: "Uint32", size: 4) +!17 = !DILocation(line: 1, column: 5, scope: !10) +!18 = !DILocation(line: 2, column: 1, scope: !10) diff --git a/testsuite/expr/builtin_to_nat.ll b/testsuite/expr/builtin_to_nat.ll index c5de5563..9fb56789 100644 --- a/testsuite/expr/builtin_to_nat.ll +++ b/testsuite/expr/builtin_to_nat.ll @@ -2,7 +2,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-pc-linux-gnu" +target triple = "x86_64-unknown-linux-gnu" %"$TyDescrTy_PrimTyp_7" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/testsuite/expr/builtin_to_string.dbg.ll b/testsuite/expr/builtin_to_string.dbg.ll index 7acdacf1..473a5c67 100644 --- a/testsuite/expr/builtin_to_string.dbg.ll +++ b/testsuite/expr/builtin_to_string.dbg.ll @@ -37,7 +37,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-pc-linux-gnu" +target triple = "x86_64-unknown-linux-gnu" %"$TyDescrTy_PrimTyp_15" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } @@ -96,7 +96,7 @@ target triple = "x86_64-pc-linux-gnu" @_transition_parameters = constant [0 x %"$TransDescr_598"] zeroinitializer @_transition_parameters_length = constant i32 0 -define void @_init_libs() !dbg !4 { +define void @_init_libs() !dbg !3 { entry: %"$gasrem_54" = load i64, i64* @_gasrem, align 8 %"$gascmp_55" = icmp ugt i64 5, %"$gasrem_54" @@ -178,6 +178,7 @@ declare void @_out_of_gas() define internal %String @_scilla_expr_fun(i8* %0) !dbg !10 { entry: %"$expr_14" = alloca %String, align 8 + call void @llvm.dbg.declare(metadata %String* %"$expr_14", metadata !11, metadata !DIExpression()), !dbg !13 %"$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" @@ -190,6 +191,7 @@ entry: %"$consume_88" = sub i64 %"$gasrem_84", 1 store i64 %"$consume_88", i64* @_gasrem, align 8 %uint32_val = alloca %Uint32, align 8 + call void @llvm.dbg.declare(metadata %Uint32* %uint32_val, metadata !14, metadata !DIExpression()), !dbg !16 %"$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" @@ -201,7 +203,7 @@ entry: "$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 %Uint32 { i32 2011 }, %Uint32* %uint32_val, align 4, !dbg !11 + store %Uint32 { i32 2011 }, %Uint32* %uint32_val, align 4, !dbg !13 %"$gasrem_94" = load i64, i64* @_gasrem, align 8 %"$gascmp_95" = icmp ugt i64 1, %"$gasrem_94" br i1 %"$gascmp_95", label %"$out_of_gas_96", label %"$have_gas_97" @@ -214,6 +216,7 @@ entry: %"$consume_98" = sub i64 %"$gasrem_94", 1 store i64 %"$consume_98", i64* @_gasrem, align 8 %uint64_val = alloca %Uint32, align 8 + call void @llvm.dbg.declare(metadata %Uint32* %uint64_val, metadata !17, metadata !DIExpression()), !dbg !18 %"$gasrem_99" = load i64, i64* @_gasrem, align 8 %"$gascmp_100" = icmp ugt i64 1, %"$gasrem_99" br i1 %"$gascmp_100", label %"$out_of_gas_101", label %"$have_gas_102" @@ -225,7 +228,7 @@ entry: "$have_gas_102": ; preds = %"$out_of_gas_101", %"$have_gas_97" %"$consume_103" = sub i64 %"$gasrem_99", 1 store i64 %"$consume_103", i64* @_gasrem, align 8 - store %Uint32 { i32 2012 }, %Uint32* %uint64_val, align 4, !dbg !12 + store %Uint32 { i32 2012 }, %Uint32* %uint64_val, align 4, !dbg !19 %"$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" @@ -238,6 +241,7 @@ entry: %"$consume_108" = sub i64 %"$gasrem_104", 1 store i64 %"$consume_108", i64* @_gasrem, align 8 %uint128_val = alloca %Uint32, align 8 + call void @llvm.dbg.declare(metadata %Uint32* %uint128_val, metadata !20, metadata !DIExpression()), !dbg !21 %"$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" @@ -249,7 +253,7 @@ entry: "$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 6018 }, %Uint32* %uint128_val, align 4, !dbg !13 + store %Uint32 { i32 6018 }, %Uint32* %uint128_val, align 4, !dbg !22 %"$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" @@ -262,6 +266,7 @@ entry: %"$consume_118" = sub i64 %"$gasrem_114", 1 store i64 %"$consume_118", i64* @_gasrem, align 8 %uint256_val = alloca %Uint32, align 8 + call void @llvm.dbg.declare(metadata %Uint32* %uint256_val, metadata !23, metadata !DIExpression()), !dbg !24 %"$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" @@ -273,7 +278,7 @@ entry: "$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 551 }, %Uint32* %uint256_val, align 4, !dbg !14 + store %Uint32 { i32 551 }, %Uint32* %uint256_val, align 4, !dbg !25 %"$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" @@ -286,6 +291,7 @@ entry: %"$consume_128" = sub i64 %"$gasrem_124", 1 store i64 %"$consume_128", i64* @_gasrem, align 8 %int32_val = alloca %Int32, align 8 + call void @llvm.dbg.declare(metadata %Int32* %int32_val, metadata !26, metadata !DIExpression()), !dbg !28 %"$gasrem_129" = load i64, i64* @_gasrem, align 8 %"$gascmp_130" = icmp ugt i64 1, %"$gasrem_129" br i1 %"$gascmp_130", label %"$out_of_gas_131", label %"$have_gas_132" @@ -297,7 +303,7 @@ entry: "$have_gas_132": ; preds = %"$out_of_gas_131", %"$have_gas_127" %"$consume_133" = sub i64 %"$gasrem_129", 1 store i64 %"$consume_133", i64* @_gasrem, align 8 - store %Int32 { i32 -2011 }, %Int32* %int32_val, align 4, !dbg !15 + store %Int32 { i32 -2011 }, %Int32* %int32_val, align 4, !dbg !29 %"$gasrem_134" = load i64, i64* @_gasrem, align 8 %"$gascmp_135" = icmp ugt i64 1, %"$gasrem_134" br i1 %"$gascmp_135", label %"$out_of_gas_136", label %"$have_gas_137" @@ -310,6 +316,7 @@ entry: %"$consume_138" = sub i64 %"$gasrem_134", 1 store i64 %"$consume_138", i64* @_gasrem, align 8 %int64_val = alloca %Int32, align 8 + call void @llvm.dbg.declare(metadata %Int32* %int64_val, metadata !30, metadata !DIExpression()), !dbg !31 %"$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" @@ -321,7 +328,7 @@ entry: "$have_gas_142": ; preds = %"$out_of_gas_141", %"$have_gas_137" %"$consume_143" = sub i64 %"$gasrem_139", 1 store i64 %"$consume_143", i64* @_gasrem, align 8 - store %Int32 { i32 2012 }, %Int32* %int64_val, align 4, !dbg !16 + store %Int32 { i32 2012 }, %Int32* %int64_val, align 4, !dbg !32 %"$gasrem_144" = load i64, i64* @_gasrem, align 8 %"$gascmp_145" = icmp ugt i64 1, %"$gasrem_144" br i1 %"$gascmp_145", label %"$out_of_gas_146", label %"$have_gas_147" @@ -334,6 +341,7 @@ entry: %"$consume_148" = sub i64 %"$gasrem_144", 1 store i64 %"$consume_148", i64* @_gasrem, align 8 %int128_val = alloca %Int32, align 8 + call void @llvm.dbg.declare(metadata %Int32* %int128_val, metadata !33, metadata !DIExpression()), !dbg !34 %"$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" @@ -345,7 +353,7 @@ entry: "$have_gas_152": ; preds = %"$out_of_gas_151", %"$have_gas_147" %"$consume_153" = sub i64 %"$gasrem_149", 1 store i64 %"$consume_153", i64* @_gasrem, align 8 - store %Int32 { i32 -6018 }, %Int32* %int128_val, align 4, !dbg !17 + store %Int32 { i32 -6018 }, %Int32* %int128_val, align 4, !dbg !35 %"$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" @@ -358,6 +366,7 @@ entry: %"$consume_158" = sub i64 %"$gasrem_154", 1 store i64 %"$consume_158", i64* @_gasrem, align 8 %int256_val = alloca %Int32, align 8 + call void @llvm.dbg.declare(metadata %Int32* %int256_val, metadata !36, metadata !DIExpression()), !dbg !37 %"$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" @@ -369,7 +378,7 @@ entry: "$have_gas_162": ; preds = %"$out_of_gas_161", %"$have_gas_157" %"$consume_163" = sub i64 %"$gasrem_159", 1 store i64 %"$consume_163", i64* @_gasrem, align 8 - store %Int32 { i32 -551 }, %Int32* %int256_val, align 4, !dbg !18 + store %Int32 { i32 -551 }, %Int32* %int256_val, align 4, !dbg !38 %"$gasrem_164" = load i64, i64* @_gasrem, align 8 %"$gascmp_165" = icmp ugt i64 1, %"$gasrem_164" br i1 %"$gascmp_165", label %"$out_of_gas_166", label %"$have_gas_167" @@ -382,6 +391,7 @@ entry: %"$consume_168" = sub i64 %"$gasrem_164", 1 store i64 %"$consume_168", i64* @_gasrem, align 8 %bystrx_val = alloca [4 x i8], align 1 + call void @llvm.dbg.declare(metadata [4 x i8]* %bystrx_val, metadata !39, metadata !DIExpression()), !dbg !41 %"$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" @@ -393,7 +403,7 @@ entry: "$have_gas_172": ; preds = %"$out_of_gas_171", %"$have_gas_167" %"$consume_173" = sub i64 %"$gasrem_169", 1 store i64 %"$consume_173", i64* @_gasrem, align 8 - store [4 x i8] c"\FF\00\CC\11", [4 x i8]* %bystrx_val, align 1, !dbg !19 + store [4 x i8] c"\FF\00\CC\11", [4 x i8]* %bystrx_val, align 1, !dbg !42 %"$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" @@ -406,6 +416,7 @@ entry: %"$consume_178" = sub i64 %"$gasrem_174", 1 store i64 %"$consume_178", i64* @_gasrem, align 8 %bystr_val = alloca %Bystr, align 8 + call void @llvm.dbg.declare(metadata %Bystr* %bystr_val, metadata !43, metadata !DIExpression()), !dbg !45 %"$gasrem_179" = load i64, i64* @_gasrem, align 8 %"$gascmp_180" = icmp ugt i64 4, %"$gasrem_179" br i1 %"$gascmp_180", label %"$out_of_gas_181", label %"$have_gas_182" @@ -422,8 +433,8 @@ entry: %"$bystrx_val_186" = load [4 x i8], [4 x i8]* %bystrx_val, align 1 store [4 x i8] %"$bystrx_val_186", [4 x i8]* %"$to_bystr_bystrx_val_185", align 1 %"$$to_bystr_bystrx_val_185_187" = bitcast [4 x i8]* %"$to_bystr_bystrx_val_185" to i8* - %"$to_bystr_call_188" = call %Bystr @_to_bystr(i8* %"$execptr_load_184", i32 4, i8* %"$$to_bystr_bystrx_val_185_187"), !dbg !20 - store %Bystr %"$to_bystr_call_188", %Bystr* %bystr_val, align 8, !dbg !20 + %"$to_bystr_call_188" = call %Bystr @_to_bystr(i8* %"$execptr_load_184", i32 4, i8* %"$$to_bystr_bystrx_val_185_187"), !dbg !46 + store %Bystr %"$to_bystr_call_188", %Bystr* %bystr_val, align 8, !dbg !46 %"$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" @@ -436,6 +447,7 @@ entry: %"$consume_193" = sub i64 %"$gasrem_189", 1 store i64 %"$consume_193", i64* @_gasrem, align 8 %uint32_str = alloca %String, align 8 + call void @llvm.dbg.declare(metadata %String* %uint32_str, metadata !47, metadata !DIExpression()), !dbg !48 %"$_literal_cost_uint32_val_194" = alloca %Uint32, align 8 %"$uint32_val_195" = load %Uint32, %Uint32* %uint32_val, align 4 store %Uint32 %"$uint32_val_195", %Uint32* %"$_literal_cost_uint32_val_194", align 4 @@ -457,8 +469,8 @@ entry: %"$uint32_val_205" = load %Uint32, %Uint32* %uint32_val, align 4 store %Uint32 %"$uint32_val_205", %Uint32* %"$to_string_uint32_val_204", align 4 %"$$to_string_uint32_val_204_206" = bitcast %Uint32* %"$to_string_uint32_val_204" to i8* - %"$to_string_call_207" = call %String @_to_string(i8* %"$execptr_load_203", %_TyDescrTy_Typ* @"$TyDescr_Uint32_19", i8* %"$$to_string_uint32_val_204_206"), !dbg !21 - store %String %"$to_string_call_207", %String* %uint32_str, align 8, !dbg !21 + %"$to_string_call_207" = call %String @_to_string(i8* %"$execptr_load_203", %_TyDescrTy_Typ* @"$TyDescr_Uint32_19", i8* %"$$to_string_uint32_val_204_206"), !dbg !49 + store %String %"$to_string_call_207", %String* %uint32_str, align 8, !dbg !49 %"$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" @@ -471,6 +483,7 @@ entry: %"$consume_212" = sub i64 %"$gasrem_208", 1 store i64 %"$consume_212", i64* @_gasrem, align 8 %uint64_str = alloca %String, align 8 + call void @llvm.dbg.declare(metadata %String* %uint64_str, metadata !50, metadata !DIExpression()), !dbg !51 %"$_literal_cost_uint64_val_213" = alloca %Uint32, align 8 %"$uint64_val_214" = load %Uint32, %Uint32* %uint64_val, align 4 store %Uint32 %"$uint64_val_214", %Uint32* %"$_literal_cost_uint64_val_213", align 4 @@ -492,8 +505,8 @@ entry: %"$uint64_val_224" = load %Uint32, %Uint32* %uint64_val, align 4 store %Uint32 %"$uint64_val_224", %Uint32* %"$to_string_uint64_val_223", align 4 %"$$to_string_uint64_val_223_225" = bitcast %Uint32* %"$to_string_uint64_val_223" to i8* - %"$to_string_call_226" = call %String @_to_string(i8* %"$execptr_load_222", %_TyDescrTy_Typ* @"$TyDescr_Uint32_19", i8* %"$$to_string_uint64_val_223_225"), !dbg !22 - store %String %"$to_string_call_226", %String* %uint64_str, align 8, !dbg !22 + %"$to_string_call_226" = call %String @_to_string(i8* %"$execptr_load_222", %_TyDescrTy_Typ* @"$TyDescr_Uint32_19", i8* %"$$to_string_uint64_val_223_225"), !dbg !52 + store %String %"$to_string_call_226", %String* %uint64_str, align 8, !dbg !52 %"$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" @@ -506,6 +519,7 @@ entry: %"$consume_231" = sub i64 %"$gasrem_227", 1 store i64 %"$consume_231", i64* @_gasrem, align 8 %uint128_str = alloca %String, align 8 + call void @llvm.dbg.declare(metadata %String* %uint128_str, metadata !53, metadata !DIExpression()), !dbg !54 %"$_literal_cost_uint128_val_232" = alloca %Uint32, align 8 %"$uint128_val_233" = load %Uint32, %Uint32* %uint128_val, align 4 store %Uint32 %"$uint128_val_233", %Uint32* %"$_literal_cost_uint128_val_232", align 4 @@ -527,8 +541,8 @@ entry: %"$uint128_val_243" = load %Uint32, %Uint32* %uint128_val, align 4 store %Uint32 %"$uint128_val_243", %Uint32* %"$to_string_uint128_val_242", align 4 %"$$to_string_uint128_val_242_244" = bitcast %Uint32* %"$to_string_uint128_val_242" to i8* - %"$to_string_call_245" = call %String @_to_string(i8* %"$execptr_load_241", %_TyDescrTy_Typ* @"$TyDescr_Uint32_19", i8* %"$$to_string_uint128_val_242_244"), !dbg !23 - store %String %"$to_string_call_245", %String* %uint128_str, align 8, !dbg !23 + %"$to_string_call_245" = call %String @_to_string(i8* %"$execptr_load_241", %_TyDescrTy_Typ* @"$TyDescr_Uint32_19", i8* %"$$to_string_uint128_val_242_244"), !dbg !55 + store %String %"$to_string_call_245", %String* %uint128_str, align 8, !dbg !55 %"$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" @@ -541,6 +555,7 @@ entry: %"$consume_250" = sub i64 %"$gasrem_246", 1 store i64 %"$consume_250", i64* @_gasrem, align 8 %uint256_str = alloca %String, align 8 + call void @llvm.dbg.declare(metadata %String* %uint256_str, metadata !56, metadata !DIExpression()), !dbg !57 %"$_literal_cost_uint256_val_251" = alloca %Uint32, align 8 %"$uint256_val_252" = load %Uint32, %Uint32* %uint256_val, align 4 store %Uint32 %"$uint256_val_252", %Uint32* %"$_literal_cost_uint256_val_251", align 4 @@ -562,8 +577,8 @@ entry: %"$uint256_val_262" = load %Uint32, %Uint32* %uint256_val, align 4 store %Uint32 %"$uint256_val_262", %Uint32* %"$to_string_uint256_val_261", align 4 %"$$to_string_uint256_val_261_263" = bitcast %Uint32* %"$to_string_uint256_val_261" to i8* - %"$to_string_call_264" = call %String @_to_string(i8* %"$execptr_load_260", %_TyDescrTy_Typ* @"$TyDescr_Uint32_19", i8* %"$$to_string_uint256_val_261_263"), !dbg !24 - store %String %"$to_string_call_264", %String* %uint256_str, align 8, !dbg !24 + %"$to_string_call_264" = call %String @_to_string(i8* %"$execptr_load_260", %_TyDescrTy_Typ* @"$TyDescr_Uint32_19", i8* %"$$to_string_uint256_val_261_263"), !dbg !58 + store %String %"$to_string_call_264", %String* %uint256_str, align 8, !dbg !58 %"$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" @@ -576,6 +591,7 @@ entry: %"$consume_269" = sub i64 %"$gasrem_265", 1 store i64 %"$consume_269", i64* @_gasrem, align 8 %int32_str = alloca %String, align 8 + call void @llvm.dbg.declare(metadata %String* %int32_str, metadata !59, metadata !DIExpression()), !dbg !60 %"$_literal_cost_int32_val_270" = alloca %Int32, align 8 %"$int32_val_271" = load %Int32, %Int32* %int32_val, align 4 store %Int32 %"$int32_val_271", %Int32* %"$_literal_cost_int32_val_270", align 4 @@ -597,8 +613,8 @@ entry: %"$int32_val_281" = load %Int32, %Int32* %int32_val, align 4 store %Int32 %"$int32_val_281", %Int32* %"$to_string_int32_val_280", align 4 %"$$to_string_int32_val_280_282" = bitcast %Int32* %"$to_string_int32_val_280" to i8* - %"$to_string_call_283" = call %String @_to_string(i8* %"$execptr_load_279", %_TyDescrTy_Typ* @"$TyDescr_Int32_17", i8* %"$$to_string_int32_val_280_282"), !dbg !25 - store %String %"$to_string_call_283", %String* %int32_str, align 8, !dbg !25 + %"$to_string_call_283" = call %String @_to_string(i8* %"$execptr_load_279", %_TyDescrTy_Typ* @"$TyDescr_Int32_17", i8* %"$$to_string_int32_val_280_282"), !dbg !61 + store %String %"$to_string_call_283", %String* %int32_str, align 8, !dbg !61 %"$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" @@ -611,6 +627,7 @@ entry: %"$consume_288" = sub i64 %"$gasrem_284", 1 store i64 %"$consume_288", i64* @_gasrem, align 8 %int64_str = alloca %String, align 8 + call void @llvm.dbg.declare(metadata %String* %int64_str, metadata !62, metadata !DIExpression()), !dbg !63 %"$_literal_cost_int64_val_289" = alloca %Int32, align 8 %"$int64_val_290" = load %Int32, %Int32* %int64_val, align 4 store %Int32 %"$int64_val_290", %Int32* %"$_literal_cost_int64_val_289", align 4 @@ -632,8 +649,8 @@ entry: %"$int64_val_300" = load %Int32, %Int32* %int64_val, align 4 store %Int32 %"$int64_val_300", %Int32* %"$to_string_int64_val_299", align 4 %"$$to_string_int64_val_299_301" = bitcast %Int32* %"$to_string_int64_val_299" to i8* - %"$to_string_call_302" = call %String @_to_string(i8* %"$execptr_load_298", %_TyDescrTy_Typ* @"$TyDescr_Int32_17", i8* %"$$to_string_int64_val_299_301"), !dbg !26 - store %String %"$to_string_call_302", %String* %int64_str, align 8, !dbg !26 + %"$to_string_call_302" = call %String @_to_string(i8* %"$execptr_load_298", %_TyDescrTy_Typ* @"$TyDescr_Int32_17", i8* %"$$to_string_int64_val_299_301"), !dbg !64 + store %String %"$to_string_call_302", %String* %int64_str, align 8, !dbg !64 %"$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" @@ -646,6 +663,7 @@ entry: %"$consume_307" = sub i64 %"$gasrem_303", 1 store i64 %"$consume_307", i64* @_gasrem, align 8 %int128_str = alloca %String, align 8 + call void @llvm.dbg.declare(metadata %String* %int128_str, metadata !65, metadata !DIExpression()), !dbg !66 %"$_literal_cost_int128_val_308" = alloca %Int32, align 8 %"$int128_val_309" = load %Int32, %Int32* %int128_val, align 4 store %Int32 %"$int128_val_309", %Int32* %"$_literal_cost_int128_val_308", align 4 @@ -667,8 +685,8 @@ entry: %"$int128_val_319" = load %Int32, %Int32* %int128_val, align 4 store %Int32 %"$int128_val_319", %Int32* %"$to_string_int128_val_318", align 4 %"$$to_string_int128_val_318_320" = bitcast %Int32* %"$to_string_int128_val_318" to i8* - %"$to_string_call_321" = call %String @_to_string(i8* %"$execptr_load_317", %_TyDescrTy_Typ* @"$TyDescr_Int32_17", i8* %"$$to_string_int128_val_318_320"), !dbg !27 - store %String %"$to_string_call_321", %String* %int128_str, align 8, !dbg !27 + %"$to_string_call_321" = call %String @_to_string(i8* %"$execptr_load_317", %_TyDescrTy_Typ* @"$TyDescr_Int32_17", i8* %"$$to_string_int128_val_318_320"), !dbg !67 + store %String %"$to_string_call_321", %String* %int128_str, align 8, !dbg !67 %"$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" @@ -681,6 +699,7 @@ entry: %"$consume_326" = sub i64 %"$gasrem_322", 1 store i64 %"$consume_326", i64* @_gasrem, align 8 %int256_str = alloca %String, align 8 + call void @llvm.dbg.declare(metadata %String* %int256_str, metadata !68, metadata !DIExpression()), !dbg !69 %"$_literal_cost_int256_val_327" = alloca %Int32, align 8 %"$int256_val_328" = load %Int32, %Int32* %int256_val, align 4 store %Int32 %"$int256_val_328", %Int32* %"$_literal_cost_int256_val_327", align 4 @@ -702,8 +721,8 @@ entry: %"$int256_val_338" = load %Int32, %Int32* %int256_val, align 4 store %Int32 %"$int256_val_338", %Int32* %"$to_string_int256_val_337", align 4 %"$$to_string_int256_val_337_339" = bitcast %Int32* %"$to_string_int256_val_337" to i8* - %"$to_string_call_340" = call %String @_to_string(i8* %"$execptr_load_336", %_TyDescrTy_Typ* @"$TyDescr_Int32_17", i8* %"$$to_string_int256_val_337_339"), !dbg !28 - store %String %"$to_string_call_340", %String* %int256_str, align 8, !dbg !28 + %"$to_string_call_340" = call %String @_to_string(i8* %"$execptr_load_336", %_TyDescrTy_Typ* @"$TyDescr_Int32_17", i8* %"$$to_string_int256_val_337_339"), !dbg !70 + store %String %"$to_string_call_340", %String* %int256_str, align 8, !dbg !70 %"$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" @@ -716,6 +735,7 @@ entry: %"$consume_345" = sub i64 %"$gasrem_341", 1 store i64 %"$consume_345", i64* @_gasrem, align 8 %bystrx_str = alloca %String, align 8 + call void @llvm.dbg.declare(metadata %String* %bystrx_str, metadata !71, metadata !DIExpression()), !dbg !72 %"$_literal_cost_bystrx_val_346" = alloca [4 x i8], align 1 %"$bystrx_val_347" = load [4 x i8], [4 x i8]* %bystrx_val, align 1 store [4 x i8] %"$bystrx_val_347", [4 x i8]* %"$_literal_cost_bystrx_val_346", align 1 @@ -737,8 +757,8 @@ entry: %"$bystrx_val_357" = load [4 x i8], [4 x i8]* %bystrx_val, align 1 store [4 x i8] %"$bystrx_val_357", [4 x i8]* %"$to_string_bystrx_val_356", align 1 %"$$to_string_bystrx_val_356_358" = bitcast [4 x i8]* %"$to_string_bystrx_val_356" to i8* - %"$to_string_call_359" = call %String @_to_string(i8* %"$execptr_load_355", %_TyDescrTy_Typ* @"$TyDescr_Bystr4_47", i8* %"$$to_string_bystrx_val_356_358"), !dbg !29 - store %String %"$to_string_call_359", %String* %bystrx_str, align 8, !dbg !29 + %"$to_string_call_359" = call %String @_to_string(i8* %"$execptr_load_355", %_TyDescrTy_Typ* @"$TyDescr_Bystr4_47", i8* %"$$to_string_bystrx_val_356_358"), !dbg !73 + store %String %"$to_string_call_359", %String* %bystrx_str, align 8, !dbg !73 %"$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" @@ -751,6 +771,7 @@ entry: %"$consume_364" = sub i64 %"$gasrem_360", 1 store i64 %"$consume_364", i64* @_gasrem, align 8 %bystr_str = alloca %String, align 8 + call void @llvm.dbg.declare(metadata %String* %bystr_str, metadata !74, metadata !DIExpression()), !dbg !75 %"$_literal_cost_bystr_val_365" = alloca %Bystr, align 8 %"$bystr_val_366" = load %Bystr, %Bystr* %bystr_val, align 8 store %Bystr %"$bystr_val_366", %Bystr* %"$_literal_cost_bystr_val_365", align 8 @@ -772,8 +793,8 @@ entry: %"$bystr_val_376" = load %Bystr, %Bystr* %bystr_val, align 8 store %Bystr %"$bystr_val_376", %Bystr* %"$to_string_bystr_val_375", align 8 %"$$to_string_bystr_val_375_377" = bitcast %Bystr* %"$to_string_bystr_val_375" to i8* - %"$to_string_call_378" = call %String @_to_string(i8* %"$execptr_load_374", %_TyDescrTy_Typ* @"$TyDescr_Bystr_45", i8* %"$$to_string_bystr_val_375_377"), !dbg !30 - store %String %"$to_string_call_378", %String* %bystr_str, align 8, !dbg !30 + %"$to_string_call_378" = call %String @_to_string(i8* %"$execptr_load_374", %_TyDescrTy_Typ* @"$TyDescr_Bystr_45", i8* %"$$to_string_bystr_val_375_377"), !dbg !76 + store %String %"$to_string_call_378", %String* %bystr_str, align 8, !dbg !76 %"$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" @@ -786,6 +807,7 @@ entry: %"$consume_383" = sub i64 %"$gasrem_379", 1 store i64 %"$consume_383", i64* @_gasrem, align 8 %s_acc = alloca %String, align 8 + call void @llvm.dbg.declare(metadata %String* %s_acc, metadata !77, metadata !DIExpression()), !dbg !78 %"$_literal_cost_uint32_str_384" = alloca %String, align 8 %"$uint32_str_385" = load %String, %String* %uint32_str, align 8 store %String %"$uint32_str_385", %String* %"$_literal_cost_uint32_str_384", align 8 @@ -811,8 +833,8 @@ entry: %"$execptr_load_398" = load i8*, i8** @_execptr, align 8 %"$uint32_str_399" = load %String, %String* %uint32_str, align 8 %"$uint64_str_400" = load %String, %String* %uint64_str, align 8 - %"$concat_call_401" = call %String @_concat_String(i8* %"$execptr_load_398", %String %"$uint32_str_399", %String %"$uint64_str_400"), !dbg !31 - store %String %"$concat_call_401", %String* %s_acc, align 8, !dbg !31 + %"$concat_call_401" = call %String @_concat_String(i8* %"$execptr_load_398", %String %"$uint32_str_399", %String %"$uint64_str_400"), !dbg !79 + store %String %"$concat_call_401", %String* %s_acc, align 8, !dbg !79 %"$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" @@ -825,6 +847,7 @@ entry: %"$consume_406" = sub i64 %"$gasrem_402", 1 store i64 %"$consume_406", i64* @_gasrem, align 8 %"$s_acc_6" = alloca %String, align 8 + call void @llvm.dbg.declare(metadata %String* %"$s_acc_6", metadata !80, metadata !DIExpression()), !dbg !81 %"$_literal_cost_s_acc_407" = alloca %String, align 8 %"$s_acc_408" = load %String, %String* %s_acc, align 8 store %String %"$s_acc_408", %String* %"$_literal_cost_s_acc_407", align 8 @@ -850,8 +873,8 @@ entry: %"$execptr_load_421" = load i8*, i8** @_execptr, align 8 %"$s_acc_422" = load %String, %String* %s_acc, align 8 %"$uint128_str_423" = load %String, %String* %uint128_str, align 8 - %"$concat_call_424" = call %String @_concat_String(i8* %"$execptr_load_421", %String %"$s_acc_422", %String %"$uint128_str_423"), !dbg !32 - store %String %"$concat_call_424", %String* %"$s_acc_6", align 8, !dbg !32 + %"$concat_call_424" = call %String @_concat_String(i8* %"$execptr_load_421", %String %"$s_acc_422", %String %"$uint128_str_423"), !dbg !82 + store %String %"$concat_call_424", %String* %"$s_acc_6", align 8, !dbg !82 %"$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" @@ -864,6 +887,7 @@ entry: %"$consume_429" = sub i64 %"$gasrem_425", 1 store i64 %"$consume_429", i64* @_gasrem, align 8 %"$s_acc_7" = alloca %String, align 8 + call void @llvm.dbg.declare(metadata %String* %"$s_acc_7", metadata !83, metadata !DIExpression()), !dbg !84 %"$_literal_cost_$s_acc_6_430" = alloca %String, align 8 %"$$s_acc_6_431" = load %String, %String* %"$s_acc_6", align 8 store %String %"$$s_acc_6_431", %String* %"$_literal_cost_$s_acc_6_430", align 8 @@ -889,8 +913,8 @@ entry: %"$execptr_load_444" = load i8*, i8** @_execptr, align 8 %"$$s_acc_6_445" = load %String, %String* %"$s_acc_6", align 8 %"$uint256_str_446" = load %String, %String* %uint256_str, align 8 - %"$concat_call_447" = call %String @_concat_String(i8* %"$execptr_load_444", %String %"$$s_acc_6_445", %String %"$uint256_str_446"), !dbg !33 - store %String %"$concat_call_447", %String* %"$s_acc_7", align 8, !dbg !33 + %"$concat_call_447" = call %String @_concat_String(i8* %"$execptr_load_444", %String %"$$s_acc_6_445", %String %"$uint256_str_446"), !dbg !85 + store %String %"$concat_call_447", %String* %"$s_acc_7", align 8, !dbg !85 %"$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" @@ -903,6 +927,7 @@ entry: %"$consume_452" = sub i64 %"$gasrem_448", 1 store i64 %"$consume_452", i64* @_gasrem, align 8 %"$s_acc_8" = alloca %String, align 8 + call void @llvm.dbg.declare(metadata %String* %"$s_acc_8", metadata !86, metadata !DIExpression()), !dbg !87 %"$_literal_cost_$s_acc_7_453" = alloca %String, align 8 %"$$s_acc_7_454" = load %String, %String* %"$s_acc_7", align 8 store %String %"$$s_acc_7_454", %String* %"$_literal_cost_$s_acc_7_453", align 8 @@ -928,8 +953,8 @@ entry: %"$execptr_load_467" = load i8*, i8** @_execptr, align 8 %"$$s_acc_7_468" = load %String, %String* %"$s_acc_7", align 8 %"$int32_str_469" = load %String, %String* %int32_str, align 8 - %"$concat_call_470" = call %String @_concat_String(i8* %"$execptr_load_467", %String %"$$s_acc_7_468", %String %"$int32_str_469"), !dbg !34 - store %String %"$concat_call_470", %String* %"$s_acc_8", align 8, !dbg !34 + %"$concat_call_470" = call %String @_concat_String(i8* %"$execptr_load_467", %String %"$$s_acc_7_468", %String %"$int32_str_469"), !dbg !88 + store %String %"$concat_call_470", %String* %"$s_acc_8", align 8, !dbg !88 %"$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" @@ -942,6 +967,7 @@ entry: %"$consume_475" = sub i64 %"$gasrem_471", 1 store i64 %"$consume_475", i64* @_gasrem, align 8 %"$s_acc_9" = alloca %String, align 8 + call void @llvm.dbg.declare(metadata %String* %"$s_acc_9", metadata !89, metadata !DIExpression()), !dbg !90 %"$_literal_cost_$s_acc_8_476" = alloca %String, align 8 %"$$s_acc_8_477" = load %String, %String* %"$s_acc_8", align 8 store %String %"$$s_acc_8_477", %String* %"$_literal_cost_$s_acc_8_476", align 8 @@ -967,8 +993,8 @@ entry: %"$execptr_load_490" = load i8*, i8** @_execptr, align 8 %"$$s_acc_8_491" = load %String, %String* %"$s_acc_8", align 8 %"$int64_str_492" = load %String, %String* %int64_str, align 8 - %"$concat_call_493" = call %String @_concat_String(i8* %"$execptr_load_490", %String %"$$s_acc_8_491", %String %"$int64_str_492"), !dbg !35 - store %String %"$concat_call_493", %String* %"$s_acc_9", align 8, !dbg !35 + %"$concat_call_493" = call %String @_concat_String(i8* %"$execptr_load_490", %String %"$$s_acc_8_491", %String %"$int64_str_492"), !dbg !91 + store %String %"$concat_call_493", %String* %"$s_acc_9", align 8, !dbg !91 %"$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" @@ -981,6 +1007,7 @@ entry: %"$consume_498" = sub i64 %"$gasrem_494", 1 store i64 %"$consume_498", i64* @_gasrem, align 8 %"$s_acc_10" = alloca %String, align 8 + call void @llvm.dbg.declare(metadata %String* %"$s_acc_10", metadata !92, metadata !DIExpression()), !dbg !93 %"$_literal_cost_$s_acc_9_499" = alloca %String, align 8 %"$$s_acc_9_500" = load %String, %String* %"$s_acc_9", align 8 store %String %"$$s_acc_9_500", %String* %"$_literal_cost_$s_acc_9_499", align 8 @@ -1006,8 +1033,8 @@ entry: %"$execptr_load_513" = load i8*, i8** @_execptr, align 8 %"$$s_acc_9_514" = load %String, %String* %"$s_acc_9", align 8 %"$int128_str_515" = load %String, %String* %int128_str, align 8 - %"$concat_call_516" = call %String @_concat_String(i8* %"$execptr_load_513", %String %"$$s_acc_9_514", %String %"$int128_str_515"), !dbg !36 - store %String %"$concat_call_516", %String* %"$s_acc_10", align 8, !dbg !36 + %"$concat_call_516" = call %String @_concat_String(i8* %"$execptr_load_513", %String %"$$s_acc_9_514", %String %"$int128_str_515"), !dbg !94 + store %String %"$concat_call_516", %String* %"$s_acc_10", align 8, !dbg !94 %"$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" @@ -1020,6 +1047,7 @@ entry: %"$consume_521" = sub i64 %"$gasrem_517", 1 store i64 %"$consume_521", i64* @_gasrem, align 8 %"$s_acc_11" = alloca %String, align 8 + call void @llvm.dbg.declare(metadata %String* %"$s_acc_11", metadata !95, metadata !DIExpression()), !dbg !96 %"$_literal_cost_$s_acc_10_522" = alloca %String, align 8 %"$$s_acc_10_523" = load %String, %String* %"$s_acc_10", align 8 store %String %"$$s_acc_10_523", %String* %"$_literal_cost_$s_acc_10_522", align 8 @@ -1045,8 +1073,8 @@ entry: %"$execptr_load_536" = load i8*, i8** @_execptr, align 8 %"$$s_acc_10_537" = load %String, %String* %"$s_acc_10", align 8 %"$int256_str_538" = load %String, %String* %int256_str, align 8 - %"$concat_call_539" = call %String @_concat_String(i8* %"$execptr_load_536", %String %"$$s_acc_10_537", %String %"$int256_str_538"), !dbg !37 - store %String %"$concat_call_539", %String* %"$s_acc_11", align 8, !dbg !37 + %"$concat_call_539" = call %String @_concat_String(i8* %"$execptr_load_536", %String %"$$s_acc_10_537", %String %"$int256_str_538"), !dbg !97 + store %String %"$concat_call_539", %String* %"$s_acc_11", align 8, !dbg !97 %"$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" @@ -1059,6 +1087,7 @@ entry: %"$consume_544" = sub i64 %"$gasrem_540", 1 store i64 %"$consume_544", i64* @_gasrem, align 8 %"$s_acc_12" = alloca %String, align 8 + call void @llvm.dbg.declare(metadata %String* %"$s_acc_12", metadata !98, metadata !DIExpression()), !dbg !99 %"$_literal_cost_$s_acc_11_545" = alloca %String, align 8 %"$$s_acc_11_546" = load %String, %String* %"$s_acc_11", align 8 store %String %"$$s_acc_11_546", %String* %"$_literal_cost_$s_acc_11_545", align 8 @@ -1084,8 +1113,8 @@ entry: %"$execptr_load_559" = load i8*, i8** @_execptr, align 8 %"$$s_acc_11_560" = load %String, %String* %"$s_acc_11", align 8 %"$bystrx_str_561" = load %String, %String* %bystrx_str, align 8 - %"$concat_call_562" = call %String @_concat_String(i8* %"$execptr_load_559", %String %"$$s_acc_11_560", %String %"$bystrx_str_561"), !dbg !38 - store %String %"$concat_call_562", %String* %"$s_acc_12", align 8, !dbg !38 + %"$concat_call_562" = call %String @_concat_String(i8* %"$execptr_load_559", %String %"$$s_acc_11_560", %String %"$bystrx_str_561"), !dbg !100 + store %String %"$concat_call_562", %String* %"$s_acc_12", align 8, !dbg !100 %"$gasrem_563" = load i64, i64* @_gasrem, align 8 %"$gascmp_564" = icmp ugt i64 1, %"$gasrem_563" br i1 %"$gascmp_564", label %"$out_of_gas_565", label %"$have_gas_566" @@ -1098,6 +1127,7 @@ entry: %"$consume_567" = sub i64 %"$gasrem_563", 1 store i64 %"$consume_567", i64* @_gasrem, align 8 %"$s_acc_13" = alloca %String, align 8 + call void @llvm.dbg.declare(metadata %String* %"$s_acc_13", metadata !101, metadata !DIExpression()), !dbg !102 %"$_literal_cost_$s_acc_12_568" = alloca %String, align 8 %"$$s_acc_12_569" = load %String, %String* %"$s_acc_12", align 8 store %String %"$$s_acc_12_569", %String* %"$_literal_cost_$s_acc_12_568", align 8 @@ -1123,8 +1153,8 @@ entry: %"$execptr_load_582" = load i8*, i8** @_execptr, align 8 %"$$s_acc_12_583" = load %String, %String* %"$s_acc_12", align 8 %"$bystr_str_584" = load %String, %String* %bystr_str, align 8 - %"$concat_call_585" = call %String @_concat_String(i8* %"$execptr_load_582", %String %"$$s_acc_12_583", %String %"$bystr_str_584"), !dbg !39 - store %String %"$concat_call_585", %String* %"$s_acc_13", align 8, !dbg !39 + %"$concat_call_585" = call %String @_concat_String(i8* %"$execptr_load_582", %String %"$$s_acc_12_583", %String %"$bystr_str_584"), !dbg !103 + store %String %"$concat_call_585", %String* %"$s_acc_13", align 8, !dbg !103 %"$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" @@ -1137,11 +1167,14 @@ entry: %"$consume_590" = sub i64 %"$gasrem_586", 1 store i64 %"$consume_590", i64* @_gasrem, align 8 %"$$s_acc_13_591" = load %String, %String* %"$s_acc_13", align 8 - store %String %"$$s_acc_13_591", %String* %"$expr_14", align 8, !dbg !40 + store %String %"$$s_acc_13_591", %String* %"$expr_14", align 8, !dbg !104 %"$$expr_14_592" = load %String, %String* %"$expr_14", align 8 ret %String %"$$expr_14_592" } +; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn +declare void @llvm.dbg.declare(metadata, metadata, metadata) #0 + declare %Bystr @_to_bystr(i8*, i32, i8*) declare i64 @_literal_cost(%_TyDescrTy_Typ*, i8*) @@ -1163,47 +1196,113 @@ entry: ret void } +attributes #0 = { nocallback nofree nosync nounwind readnone speculatable willreturn } + !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) +!1 = distinct !DICompileUnit(language: DW_LANG_C89, file: !2, producer: "Scilla Compiler", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false) !2 = !DIFile(filename: "builtin_to_string.scilexp", directory: "codegen/expr") -!3 = !{} -!4 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !5, file: !5, type: !6, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!5 = !DIFile(filename: ".", directory: ".") -!6 = !DISubroutineType(types: !7) -!7 = !{!8} -!8 = !DIBasicType(tag: DW_TAG_unspecified_type, name: "void") -!9 = !DILocation(line: 0, scope: !4) -!10 = distinct !DISubprogram(name: "_scilla_expr_fun", linkageName: "_scilla_expr_fun", scope: !2, file: !2, line: 1, type: !6, scopeLine: 1, spFlags: DISPFlagDefinition, unit: !1, retainedNodes: !3) -!11 = !DILocation(line: 1, column: 18, scope: !10) -!12 = !DILocation(line: 2, column: 18, scope: !10) -!13 = !DILocation(line: 3, column: 19, scope: !10) -!14 = !DILocation(line: 4, column: 19, scope: !10) -!15 = !DILocation(line: 6, column: 17, scope: !10) -!16 = !DILocation(line: 7, column: 17, scope: !10) -!17 = !DILocation(line: 8, column: 18, scope: !10) -!18 = !DILocation(line: 9, column: 18, scope: !10) -!19 = !DILocation(line: 11, column: 18, scope: !10) -!20 = !DILocation(line: 12, column: 17, scope: !10) -!21 = !DILocation(line: 14, column: 18, scope: !10) -!22 = !DILocation(line: 15, column: 18, scope: !10) -!23 = !DILocation(line: 16, column: 19, scope: !10) -!24 = !DILocation(line: 17, column: 19, scope: !10) -!25 = !DILocation(line: 19, column: 17, scope: !10) -!26 = !DILocation(line: 20, column: 17, scope: !10) -!27 = !DILocation(line: 21, column: 18, scope: !10) -!28 = !DILocation(line: 22, column: 18, scope: !10) -!29 = !DILocation(line: 24, column: 18, scope: !10) -!30 = !DILocation(line: 25, column: 17, scope: !10) -!31 = !DILocation(line: 27, column: 13, scope: !10) -!32 = !DILocation(line: 28, column: 13, scope: !10) -!33 = !DILocation(line: 29, column: 13, scope: !10) -!34 = !DILocation(line: 30, column: 13, scope: !10) -!35 = !DILocation(line: 31, column: 13, scope: !10) -!36 = !DILocation(line: 32, column: 13, scope: !10) -!37 = !DILocation(line: 33, column: 13, scope: !10) -!38 = !DILocation(line: 34, column: 13, scope: !10) -!39 = !DILocation(line: 35, column: 13, scope: !10) -!40 = !DILocation(line: 36, column: 1, scope: !10) +!3 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !4, file: !4, type: !5, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!4 = !DIFile(filename: ".", directory: ".") +!5 = !DISubroutineType(types: !6) +!6 = !{!7} +!7 = !DIBasicType(tag: DW_TAG_unspecified_type, name: "void") +!8 = !{} +!9 = !DILocation(line: 0, scope: !3) +!10 = distinct !DISubprogram(name: "_scilla_expr_fun", linkageName: "_scilla_expr_fun", scope: !2, file: !2, line: 1, type: !5, scopeLine: 1, spFlags: DISPFlagDefinition, unit: !1, retainedNodes: !8) +!11 = !DILocalVariable(name: "$expr_14", scope: !10, file: !2, line: 1, type: !12) +!12 = !DIBasicType(name: "String", size: 16) +!13 = !DILocation(line: 1, column: 18, scope: !10) +!14 = !DILocalVariable(name: "uint32_val", scope: !10, file: !2, line: 1, type: !15) +!15 = !DIBasicType(name: "Uint32", size: 4) +!16 = !DILocation(line: 1, column: 5, scope: !10) +!17 = !DILocalVariable(name: "uint64_val", scope: !10, file: !2, line: 2, type: !15) +!18 = !DILocation(line: 2, column: 5, scope: !10) +!19 = !DILocation(line: 2, column: 18, scope: !10) +!20 = !DILocalVariable(name: "uint128_val", scope: !10, file: !2, line: 3, type: !15) +!21 = !DILocation(line: 3, column: 5, scope: !10) +!22 = !DILocation(line: 3, column: 19, scope: !10) +!23 = !DILocalVariable(name: "uint256_val", scope: !10, file: !2, line: 4, type: !15) +!24 = !DILocation(line: 4, column: 5, scope: !10) +!25 = !DILocation(line: 4, column: 19, scope: !10) +!26 = !DILocalVariable(name: "int32_val", scope: !10, file: !2, line: 6, type: !27) +!27 = !DIBasicType(name: "Int32", size: 4) +!28 = !DILocation(line: 6, column: 5, scope: !10) +!29 = !DILocation(line: 6, column: 17, scope: !10) +!30 = !DILocalVariable(name: "int64_val", scope: !10, file: !2, line: 7, type: !27) +!31 = !DILocation(line: 7, column: 5, scope: !10) +!32 = !DILocation(line: 7, column: 17, scope: !10) +!33 = !DILocalVariable(name: "int128_val", scope: !10, file: !2, line: 8, type: !27) +!34 = !DILocation(line: 8, column: 5, scope: !10) +!35 = !DILocation(line: 8, column: 18, scope: !10) +!36 = !DILocalVariable(name: "int256_val", scope: !10, file: !2, line: 9, type: !27) +!37 = !DILocation(line: 9, column: 5, scope: !10) +!38 = !DILocation(line: 9, column: 18, scope: !10) +!39 = !DILocalVariable(name: "bystrx_val", scope: !10, file: !2, line: 11, type: !40) +!40 = !DIBasicType(name: "ByStr4", size: 4) +!41 = !DILocation(line: 11, column: 5, scope: !10) +!42 = !DILocation(line: 11, column: 18, scope: !10) +!43 = !DILocalVariable(name: "bystr_val", scope: !10, file: !2, line: 12, type: !44) +!44 = !DIBasicType(name: "ByStr", size: 16) +!45 = !DILocation(line: 12, column: 5, scope: !10) +!46 = !DILocation(line: 12, column: 17, scope: !10) +!47 = !DILocalVariable(name: "uint32_str", scope: !10, file: !2, line: 14, type: !12) +!48 = !DILocation(line: 14, column: 5, scope: !10) +!49 = !DILocation(line: 14, column: 18, scope: !10) +!50 = !DILocalVariable(name: "uint64_str", scope: !10, file: !2, line: 15, type: !12) +!51 = !DILocation(line: 15, column: 5, scope: !10) +!52 = !DILocation(line: 15, column: 18, scope: !10) +!53 = !DILocalVariable(name: "uint128_str", scope: !10, file: !2, line: 16, type: !12) +!54 = !DILocation(line: 16, column: 5, scope: !10) +!55 = !DILocation(line: 16, column: 19, scope: !10) +!56 = !DILocalVariable(name: "uint256_str", scope: !10, file: !2, line: 17, type: !12) +!57 = !DILocation(line: 17, column: 5, scope: !10) +!58 = !DILocation(line: 17, column: 19, scope: !10) +!59 = !DILocalVariable(name: "int32_str", scope: !10, file: !2, line: 19, type: !12) +!60 = !DILocation(line: 19, column: 5, scope: !10) +!61 = !DILocation(line: 19, column: 17, scope: !10) +!62 = !DILocalVariable(name: "int64_str", scope: !10, file: !2, line: 20, type: !12) +!63 = !DILocation(line: 20, column: 5, scope: !10) +!64 = !DILocation(line: 20, column: 17, scope: !10) +!65 = !DILocalVariable(name: "int128_str", scope: !10, file: !2, line: 21, type: !12) +!66 = !DILocation(line: 21, column: 5, scope: !10) +!67 = !DILocation(line: 21, column: 18, scope: !10) +!68 = !DILocalVariable(name: "int256_str", scope: !10, file: !2, line: 22, type: !12) +!69 = !DILocation(line: 22, column: 5, scope: !10) +!70 = !DILocation(line: 22, column: 18, scope: !10) +!71 = !DILocalVariable(name: "bystrx_str", scope: !10, file: !2, line: 24, type: !12) +!72 = !DILocation(line: 24, column: 5, scope: !10) +!73 = !DILocation(line: 24, column: 18, scope: !10) +!74 = !DILocalVariable(name: "bystr_str", scope: !10, file: !2, line: 25, type: !12) +!75 = !DILocation(line: 25, column: 5, scope: !10) +!76 = !DILocation(line: 25, column: 17, scope: !10) +!77 = !DILocalVariable(name: "s_acc", scope: !10, file: !2, line: 27, type: !12) +!78 = !DILocation(line: 27, column: 5, scope: !10) +!79 = !DILocation(line: 27, column: 13, scope: !10) +!80 = !DILocalVariable(name: "$s_acc_6", scope: !10, file: !2, line: 28, type: !12) +!81 = !DILocation(line: 28, column: 5, scope: !10) +!82 = !DILocation(line: 28, column: 13, scope: !10) +!83 = !DILocalVariable(name: "$s_acc_7", scope: !10, file: !2, line: 29, type: !12) +!84 = !DILocation(line: 29, column: 5, scope: !10) +!85 = !DILocation(line: 29, column: 13, scope: !10) +!86 = !DILocalVariable(name: "$s_acc_8", scope: !10, file: !2, line: 30, type: !12) +!87 = !DILocation(line: 30, column: 5, scope: !10) +!88 = !DILocation(line: 30, column: 13, scope: !10) +!89 = !DILocalVariable(name: "$s_acc_9", scope: !10, file: !2, line: 31, type: !12) +!90 = !DILocation(line: 31, column: 5, scope: !10) +!91 = !DILocation(line: 31, column: 13, scope: !10) +!92 = !DILocalVariable(name: "$s_acc_10", scope: !10, file: !2, line: 32, type: !12) +!93 = !DILocation(line: 32, column: 5, scope: !10) +!94 = !DILocation(line: 32, column: 13, scope: !10) +!95 = !DILocalVariable(name: "$s_acc_11", scope: !10, file: !2, line: 33, type: !12) +!96 = !DILocation(line: 33, column: 5, scope: !10) +!97 = !DILocation(line: 33, column: 13, scope: !10) +!98 = !DILocalVariable(name: "$s_acc_12", scope: !10, file: !2, line: 34, type: !12) +!99 = !DILocation(line: 34, column: 5, scope: !10) +!100 = !DILocation(line: 34, column: 13, scope: !10) +!101 = !DILocalVariable(name: "$s_acc_13", scope: !10, file: !2, line: 35, type: !12) +!102 = !DILocation(line: 35, column: 5, scope: !10) +!103 = !DILocation(line: 35, column: 13, scope: !10) +!104 = !DILocation(line: 36, column: 1, scope: !10) diff --git a/testsuite/expr/builtin_to_string.ll b/testsuite/expr/builtin_to_string.ll index 38a3423c..f84f1ae7 100644 --- a/testsuite/expr/builtin_to_string.ll +++ b/testsuite/expr/builtin_to_string.ll @@ -37,7 +37,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-pc-linux-gnu" +target triple = "x86_64-unknown-linux-gnu" %"$TyDescrTy_PrimTyp_15" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/testsuite/expr/builtin_to_uint.dbg.ll b/testsuite/expr/builtin_to_uint.dbg.ll index 9e09341c..cdd7b0f0 100644 --- a/testsuite/expr/builtin_to_uint.dbg.ll +++ b/testsuite/expr/builtin_to_uint.dbg.ll @@ -248,7 +248,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-pc-linux-gnu" +target triple = "x86_64-unknown-linux-gnu" %"$TyDescrTy_PrimTyp_113" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } @@ -260,9 +260,9 @@ target triple = "x86_64-pc-linux-gnu" %TName_Bool = type { i8, %CName_True*, %CName_False* } %CName_True = type <{ i8 }> %CName_False = type <{ i8 }> -%"$ParamDescr_2118" = type { %ParamDescrString, %_TyDescrTy_Typ* } +%"$ParamDescr_2120" = type { %ParamDescrString, %_TyDescrTy_Typ* } %ParamDescrString = type { i8*, i32 } -%"$TransDescr_2119" = type { %ParamDescrString, i32, %"$ParamDescr_2118"* } +%"$TransDescr_2121" = type { %ParamDescrString, i32, %"$ParamDescr_2120"* } %"$$fundef_110_env_206" = type { %TName_Bool* } %"$$fundef_108_env_207" = type {} %Uint32 = type { i32 } @@ -379,91 +379,98 @@ target triple = "x86_64-pc-linux-gnu" @"$_gas_charge_accListUtils_2" = global %Int32 zeroinitializer @"$_gas_charge_accNatUtils_3" = global %Int32 zeroinitializer @"$_gas_charge_accPairUtils_4" = global %Int32 zeroinitializer -@"$stringlit_1684" = unnamed_addr constant [11 x i8] c"-2147483648" -@"$stringlit_1841" = unnamed_addr constant [77 x i8] c"57896044618658097711785492504343953926634992332820282019728792003956564819967" -@"$stringlit_1998" = unnamed_addr constant [37 x i8] c"-282366920938463463374607431768211456" -@"$stringlit_2058" = unnamed_addr constant [4 x i8] c"abcd" +@"$stringlit_1686" = unnamed_addr constant [11 x i8] c"-2147483648" +@"$stringlit_1843" = unnamed_addr constant [77 x i8] c"57896044618658097711785492504343953926634992332820282019728792003956564819967" +@"$stringlit_2000" = unnamed_addr constant [37 x i8] c"-282366920938463463374607431768211456" +@"$stringlit_2060" = unnamed_addr constant [4 x i8] c"abcd" @_tydescr_table = constant [20 x %_TyDescrTy_Typ*] [%_TyDescrTy_Typ* @"$TyDescr_Event_137", %_TyDescrTy_Typ* @"$TyDescr_Int64_119", %_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_151", %_TyDescrTy_Typ* @"$TyDescr_Uint256_129", %_TyDescrTy_Typ* @"$TyDescr_Uint32_117", %_TyDescrTy_Typ* @"$TyDescr_ADT_Option_Uint256_147", %_TyDescrTy_Typ* @"$TyDescr_Uint64_121", %_TyDescrTy_Typ* @"$TyDescr_ADT_Option_Uint64_149", %_TyDescrTy_Typ* @"$TyDescr_Bnum_133", %_TyDescrTy_Typ* @"$TyDescr_Uint128_125", %_TyDescrTy_Typ* @"$TyDescr_Exception_139", %_TyDescrTy_Typ* @"$TyDescr_String_131", %_TyDescrTy_Typ* @"$TyDescr_Int256_127", %_TyDescrTy_Typ* @"$TyDescr_Int128_123", %_TyDescrTy_Typ* @"$TyDescr_ADT_Option_Uint128_148", %_TyDescrTy_Typ* @"$TyDescr_Bystr_143", %_TyDescrTy_Typ* @"$TyDescr_ReplicateContr_141", %_TyDescrTy_Typ* @"$TyDescr_Message_135", %_TyDescrTy_Typ* @"$TyDescr_ADT_Option_Uint32_150", %_TyDescrTy_Typ* @"$TyDescr_Int32_115"] @_tydescr_table_length = constant i32 20 -@_contract_parameters = constant [0 x %"$ParamDescr_2118"] zeroinitializer +@_contract_parameters = constant [0 x %"$ParamDescr_2120"] zeroinitializer @_contract_parameters_length = constant i32 0 -@_transition_parameters = constant [0 x %"$TransDescr_2119"] zeroinitializer +@_transition_parameters = constant [0 x %"$TransDescr_2121"] zeroinitializer @_transition_parameters_length = constant i32 0 -define internal %TName_Bool* @"$fundef_110"(%"$$fundef_110_env_206"* %0, %TName_Bool* %1) !dbg !4 { +define internal %TName_Bool* @"$fundef_110"(%"$$fundef_110_env_206"* %0, %TName_Bool* %1) !dbg !3 { entry: - %"$$fundef_110_env_b_219" = getelementptr inbounds %"$$fundef_110_env_206", %"$$fundef_110_env_206"* %0, i32 0, i32 0 - %"$b_envload_220" = load %TName_Bool*, %TName_Bool** %"$$fundef_110_env_b_219", align 8 + %"$c_250" = alloca %TName_Bool*, align 8 + store %TName_Bool* %1, %TName_Bool** %"$c_250", align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$c_250", metadata !9, metadata !DIExpression()), !dbg !12 + %"$$fundef_110_env_b_220" = getelementptr inbounds %"$$fundef_110_env_206", %"$$fundef_110_env_206"* %0, i32 0, i32 0 + %"$b_envload_221" = load %TName_Bool*, %TName_Bool** %"$$fundef_110_env_b_220", align 8 %b = alloca %TName_Bool*, align 8 - store %TName_Bool* %"$b_envload_220", %TName_Bool** %b, align 8 + store %TName_Bool* %"$b_envload_221", %TName_Bool** %b, align 8 %"$retval_111" = alloca %TName_Bool*, align 8 - %"$gasrem_221" = load i64, i64* @_gasrem, align 8 - %"$gascmp_222" = icmp ugt i64 2, %"$gasrem_221" - br i1 %"$gascmp_222", label %"$out_of_gas_223", label %"$have_gas_224" - -"$out_of_gas_223": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_224" - -"$have_gas_224": ; preds = %"$out_of_gas_223", %entry - %"$consume_225" = sub i64 %"$gasrem_221", 2 - store i64 %"$consume_225", i64* @_gasrem, align 8 - %"$b_227" = load %TName_Bool*, %TName_Bool** %b, align 8 - %"$b_tag_228" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$b_227", i32 0, i32 0 - %"$b_tag_229" = load i8, i8* %"$b_tag_228", align 1 - switch i8 %"$b_tag_229", label %"$empty_default_230" [ - i8 1, label %"$False_231" - i8 0, label %"$True_241" - ], !dbg !9 - -"$False_231": ; preds = %"$have_gas_224" - %"$b_232" = bitcast %TName_Bool* %"$b_227" to %CName_False* - %"$gasrem_233" = load i64, i64* @_gasrem, align 8 - %"$gascmp_234" = icmp ugt i64 1, %"$gasrem_233" - br i1 %"$gascmp_234", label %"$out_of_gas_235", label %"$have_gas_236" - -"$out_of_gas_235": ; preds = %"$False_231" - call void @_out_of_gas() - br label %"$have_gas_236" - -"$have_gas_236": ; preds = %"$out_of_gas_235", %"$False_231" - %"$consume_237" = sub i64 %"$gasrem_233", 1 - store i64 %"$consume_237", i64* @_gasrem, align 8 - %"$adtval_238_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_238_salloc" = call i8* @_salloc(i8* %"$adtval_238_load", i64 1) - %"$adtval_238" = bitcast i8* %"$adtval_238_salloc" to %CName_False* - %"$adtgep_239" = getelementptr inbounds %CName_False, %CName_False* %"$adtval_238", i32 0, i32 0 - store i8 1, i8* %"$adtgep_239", align 1 - %"$adtptr_240" = bitcast %CName_False* %"$adtval_238" to %TName_Bool* - store %TName_Bool* %"$adtptr_240", %TName_Bool** %"$retval_111", align 8, !dbg !10 - br label %"$matchsucc_226" - -"$True_241": ; preds = %"$have_gas_224" - %"$b_242" = bitcast %TName_Bool* %"$b_227" to %CName_True* - %"$gasrem_243" = load i64, i64* @_gasrem, align 8 - %"$gascmp_244" = icmp ugt i64 1, %"$gasrem_243" - br i1 %"$gascmp_244", label %"$out_of_gas_245", label %"$have_gas_246" - -"$out_of_gas_245": ; preds = %"$True_241" - call void @_out_of_gas() - br label %"$have_gas_246" - -"$have_gas_246": ; preds = %"$out_of_gas_245", %"$True_241" - %"$consume_247" = sub i64 %"$gasrem_243", 1 - store i64 %"$consume_247", i64* @_gasrem, align 8 - store %TName_Bool* %1, %TName_Bool** %"$retval_111", align 8, !dbg !13 - br label %"$matchsucc_226" - -"$empty_default_230": ; preds = %"$have_gas_224" - br label %"$matchsucc_226" - -"$matchsucc_226": ; preds = %"$have_gas_246", %"$have_gas_236", %"$empty_default_230" - %"$$retval_111_248" = load %TName_Bool*, %TName_Bool** %"$retval_111", align 8 - ret %TName_Bool* %"$$retval_111_248" + call void @llvm.dbg.declare(metadata %TName_Bool** %"$retval_111", metadata !13, metadata !DIExpression()), !dbg !14 + %"$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 = %entry + call void @_out_of_gas() + br label %"$have_gas_225" + +"$have_gas_225": ; preds = %"$out_of_gas_224", %entry + %"$consume_226" = sub i64 %"$gasrem_222", 2 + store i64 %"$consume_226", i64* @_gasrem, align 8 + %"$b_228" = load %TName_Bool*, %TName_Bool** %b, align 8 + %"$b_tag_229" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$b_228", i32 0, i32 0 + %"$b_tag_230" = load i8, i8* %"$b_tag_229", align 1 + switch i8 %"$b_tag_230", label %"$empty_default_231" [ + i8 1, label %"$False_232" + i8 0, label %"$True_242" + ], !dbg !14 + +"$False_232": ; preds = %"$have_gas_225" + %"$b_233" = bitcast %TName_Bool* %"$b_228" to %CName_False* + %"$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 = %"$False_232" + call void @_out_of_gas() + br label %"$have_gas_237" + +"$have_gas_237": ; preds = %"$out_of_gas_236", %"$False_232" + %"$consume_238" = sub i64 %"$gasrem_234", 1 + store i64 %"$consume_238", i64* @_gasrem, align 8 + %"$adtval_239_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_239_salloc" = call i8* @_salloc(i8* %"$adtval_239_load", i64 1) + %"$adtval_239" = bitcast i8* %"$adtval_239_salloc" to %CName_False* + %"$adtgep_240" = getelementptr inbounds %CName_False, %CName_False* %"$adtval_239", i32 0, i32 0 + store i8 1, i8* %"$adtgep_240", align 1 + %"$adtptr_241" = bitcast %CName_False* %"$adtval_239" to %TName_Bool* + store %TName_Bool* %"$adtptr_241", %TName_Bool** %"$retval_111", align 8, !dbg !15 + br label %"$matchsucc_227" + +"$True_242": ; preds = %"$have_gas_225" + %"$b_243" = bitcast %TName_Bool* %"$b_228" to %CName_True* + %"$gasrem_244" = load i64, i64* @_gasrem, align 8 + %"$gascmp_245" = icmp ugt i64 1, %"$gasrem_244" + br i1 %"$gascmp_245", label %"$out_of_gas_246", label %"$have_gas_247" + +"$out_of_gas_246": ; preds = %"$True_242" + call void @_out_of_gas() + br label %"$have_gas_247" + +"$have_gas_247": ; preds = %"$out_of_gas_246", %"$True_242" + %"$consume_248" = sub i64 %"$gasrem_244", 1 + store i64 %"$consume_248", i64* @_gasrem, align 8 + store %TName_Bool* %1, %TName_Bool** %"$retval_111", align 8, !dbg !18 + br label %"$matchsucc_227" + +"$empty_default_231": ; preds = %"$have_gas_225" + br label %"$matchsucc_227" + +"$matchsucc_227": ; preds = %"$have_gas_247", %"$have_gas_237", %"$empty_default_231" + %"$$retval_111_249" = load %TName_Bool*, %TName_Bool** %"$retval_111", align 8 + ret %TName_Bool* %"$$retval_111_249" } -define internal { %TName_Bool* (i8*, %TName_Bool*)*, i8* } @"$fundef_108"(%"$$fundef_108_env_207"* %0, %TName_Bool* %1) !dbg !15 { +define internal { %TName_Bool* (i8*, %TName_Bool*)*, i8* } @"$fundef_108"(%"$$fundef_108_env_207"* %0, %TName_Bool* %1) !dbg !20 { entry: + %"$b_219" = alloca %TName_Bool*, align 8 + store %TName_Bool* %1, %TName_Bool** %"$b_219", align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$b_219", metadata !21, metadata !DIExpression()), !dbg !22 %"$retval_109" = alloca { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, align 8 %"$gasrem_208" = load i64, i64* @_gasrem, align 8 %"$gascmp_209" = icmp ugt i64 1, %"$gasrem_208" @@ -483,7 +490,7 @@ entry: %"$$fundef_110_cloval_216" = insertvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } { %TName_Bool* (i8*, %TName_Bool*)* bitcast (%TName_Bool* (%"$$fundef_110_env_206"*, %TName_Bool*)* @"$fundef_110" to %TName_Bool* (i8*, %TName_Bool*)*), i8* undef }, i8* %"$$fundef_110_env_voidp_215", 1 %"$$fundef_110_env_b_217" = getelementptr inbounds %"$$fundef_110_env_206", %"$$fundef_110_env_206"* %"$$fundef_110_envp_213", i32 0, i32 0 store %TName_Bool* %1, %TName_Bool** %"$$fundef_110_env_b_217", align 8 - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$fundef_110_cloval_216", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$retval_109", align 8, !dbg !16 + store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$fundef_110_cloval_216", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$retval_109", align 8, !dbg !23 %"$$retval_109_218" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$retval_109", align 8 ret { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$retval_109_218" } @@ -492,3925 +499,4036 @@ declare void @_out_of_gas() declare i8* @_salloc(i8*, i64) -define void @_init_libs() !dbg !17 { +; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn +declare void @llvm.dbg.declare(metadata, metadata, metadata) #0 + +define void @_init_libs() !dbg !24 { entry: - %"$gasrem_249" = load i64, i64* @_gasrem, align 8 - %"$gascmp_250" = icmp ugt i64 5, %"$gasrem_249" - br i1 %"$gascmp_250", label %"$out_of_gas_251", label %"$have_gas_252" + %"$gasrem_251" = load i64, i64* @_gasrem, align 8 + %"$gascmp_252" = icmp ugt i64 5, %"$gasrem_251" + br i1 %"$gascmp_252", label %"$out_of_gas_253", label %"$have_gas_254" -"$out_of_gas_251": ; preds = %entry +"$out_of_gas_253": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_252" + br label %"$have_gas_254" -"$have_gas_252": ; preds = %"$out_of_gas_251", %entry - %"$consume_253" = sub i64 %"$gasrem_249", 5 - store i64 %"$consume_253", i64* @_gasrem, align 8 - store %Int32 { i32 5 }, %Int32* @"$_gas_charge_accrec_lib_5", align 4, !dbg !19 - %"$gasrem_254" = load i64, i64* @_gasrem, align 8 - %"$gascmp_255" = icmp ugt i64 7, %"$gasrem_254" - br i1 %"$gascmp_255", label %"$out_of_gas_256", label %"$have_gas_257" +"$have_gas_254": ; preds = %"$out_of_gas_253", %entry + %"$consume_255" = sub i64 %"$gasrem_251", 5 + store i64 %"$consume_255", i64* @_gasrem, align 8 + store %Int32 { i32 5 }, %Int32* @"$_gas_charge_accrec_lib_5", align 4, !dbg !26 + %"$gasrem_256" = load i64, i64* @_gasrem, align 8 + %"$gascmp_257" = icmp ugt i64 7, %"$gasrem_256" + br i1 %"$gascmp_257", label %"$out_of_gas_258", label %"$have_gas_259" -"$out_of_gas_256": ; preds = %"$have_gas_252" +"$out_of_gas_258": ; preds = %"$have_gas_254" call void @_out_of_gas() - br label %"$have_gas_257" + br label %"$have_gas_259" -"$have_gas_257": ; preds = %"$out_of_gas_256", %"$have_gas_252" - %"$consume_258" = sub i64 %"$gasrem_254", 7 - store i64 %"$consume_258", i64* @_gasrem, align 8 - store %Int32 { i32 7 }, %Int32* @"$_gas_charge_accBoolUtils_0", align 4, !dbg !19 - %"$gasrem_259" = load i64, i64* @_gasrem, align 8 - %"$gascmp_260" = icmp ugt i64 1, %"$gasrem_259" - br i1 %"$gascmp_260", label %"$out_of_gas_261", label %"$have_gas_262" +"$have_gas_259": ; preds = %"$out_of_gas_258", %"$have_gas_254" + %"$consume_260" = sub i64 %"$gasrem_256", 7 + store i64 %"$consume_260", i64* @_gasrem, align 8 + store %Int32 { i32 7 }, %Int32* @"$_gas_charge_accBoolUtils_0", align 4, !dbg !26 + %"$gasrem_261" = load i64, i64* @_gasrem, align 8 + %"$gascmp_262" = icmp ugt i64 1, %"$gasrem_261" + br i1 %"$gascmp_262", label %"$out_of_gas_263", label %"$have_gas_264" -"$out_of_gas_261": ; preds = %"$have_gas_257" +"$out_of_gas_263": ; preds = %"$have_gas_259" call void @_out_of_gas() - br label %"$have_gas_262" + br label %"$have_gas_264" -"$have_gas_262": ; preds = %"$out_of_gas_261", %"$have_gas_257" - %"$consume_263" = sub i64 %"$gasrem_259", 1 - store i64 %"$consume_263", 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_108_env_207"*, %TName_Bool*)* @"$fundef_108" 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 !20 - %"$gasrem_267" = load i64, i64* @_gasrem, align 8 - %"$gascmp_268" = icmp ugt i64 196, %"$gasrem_267" - br i1 %"$gascmp_268", label %"$out_of_gas_269", label %"$have_gas_270" +"$have_gas_264": ; preds = %"$out_of_gas_263", %"$have_gas_259" + %"$consume_265" = sub i64 %"$gasrem_261", 1 + store i64 %"$consume_265", 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_108_env_207"*, %TName_Bool*)* @"$fundef_108" 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 !27 + %"$gasrem_269" = load i64, i64* @_gasrem, align 8 + %"$gascmp_270" = icmp ugt i64 196, %"$gasrem_269" + br i1 %"$gascmp_270", label %"$out_of_gas_271", label %"$have_gas_272" -"$out_of_gas_269": ; preds = %"$have_gas_262" +"$out_of_gas_271": ; preds = %"$have_gas_264" call void @_out_of_gas() - br label %"$have_gas_270" + br label %"$have_gas_272" -"$have_gas_270": ; preds = %"$out_of_gas_269", %"$have_gas_262" - %"$consume_271" = sub i64 %"$gasrem_267", 196 - store i64 %"$consume_271", i64* @_gasrem, align 8 - store %Int32 { i32 196 }, %Int32* @"$_gas_charge_accIntUtils_1", align 4, !dbg !19 - %"$gasrem_272" = load i64, i64* @_gasrem, align 8 - %"$gascmp_273" = icmp ugt i64 20, %"$gasrem_272" - br i1 %"$gascmp_273", label %"$out_of_gas_274", label %"$have_gas_275" +"$have_gas_272": ; preds = %"$out_of_gas_271", %"$have_gas_264" + %"$consume_273" = sub i64 %"$gasrem_269", 196 + store i64 %"$consume_273", i64* @_gasrem, align 8 + store %Int32 { i32 196 }, %Int32* @"$_gas_charge_accIntUtils_1", align 4, !dbg !26 + %"$gasrem_274" = load i64, i64* @_gasrem, align 8 + %"$gascmp_275" = icmp ugt i64 20, %"$gasrem_274" + br i1 %"$gascmp_275", label %"$out_of_gas_276", label %"$have_gas_277" -"$out_of_gas_274": ; preds = %"$have_gas_270" +"$out_of_gas_276": ; preds = %"$have_gas_272" call void @_out_of_gas() - br label %"$have_gas_275" + br label %"$have_gas_277" -"$have_gas_275": ; preds = %"$out_of_gas_274", %"$have_gas_270" - %"$consume_276" = sub i64 %"$gasrem_272", 20 - store i64 %"$consume_276", i64* @_gasrem, align 8 - store %Int32 { i32 20 }, %Int32* @"$_gas_charge_accListUtils_2", align 4, !dbg !19 - %"$gasrem_277" = load i64, i64* @_gasrem, align 8 - %"$gascmp_278" = icmp ugt i64 12, %"$gasrem_277" - br i1 %"$gascmp_278", label %"$out_of_gas_279", label %"$have_gas_280" +"$have_gas_277": ; preds = %"$out_of_gas_276", %"$have_gas_272" + %"$consume_278" = sub i64 %"$gasrem_274", 20 + store i64 %"$consume_278", i64* @_gasrem, align 8 + store %Int32 { i32 20 }, %Int32* @"$_gas_charge_accListUtils_2", align 4, !dbg !26 + %"$gasrem_279" = load i64, i64* @_gasrem, align 8 + %"$gascmp_280" = icmp ugt i64 12, %"$gasrem_279" + br i1 %"$gascmp_280", label %"$out_of_gas_281", label %"$have_gas_282" -"$out_of_gas_279": ; preds = %"$have_gas_275" +"$out_of_gas_281": ; preds = %"$have_gas_277" call void @_out_of_gas() - br label %"$have_gas_280" + br label %"$have_gas_282" -"$have_gas_280": ; preds = %"$out_of_gas_279", %"$have_gas_275" - %"$consume_281" = sub i64 %"$gasrem_277", 12 - store i64 %"$consume_281", i64* @_gasrem, align 8 - store %Int32 { i32 12 }, %Int32* @"$_gas_charge_accNatUtils_3", align 4, !dbg !19 - %"$gasrem_282" = load i64, i64* @_gasrem, align 8 - %"$gascmp_283" = icmp ugt i64 2, %"$gasrem_282" - br i1 %"$gascmp_283", label %"$out_of_gas_284", label %"$have_gas_285" +"$have_gas_282": ; preds = %"$out_of_gas_281", %"$have_gas_277" + %"$consume_283" = sub i64 %"$gasrem_279", 12 + store i64 %"$consume_283", i64* @_gasrem, align 8 + store %Int32 { i32 12 }, %Int32* @"$_gas_charge_accNatUtils_3", align 4, !dbg !26 + %"$gasrem_284" = load i64, i64* @_gasrem, align 8 + %"$gascmp_285" = icmp ugt i64 2, %"$gasrem_284" + br i1 %"$gascmp_285", label %"$out_of_gas_286", label %"$have_gas_287" -"$out_of_gas_284": ; preds = %"$have_gas_280" +"$out_of_gas_286": ; preds = %"$have_gas_282" call void @_out_of_gas() - br label %"$have_gas_285" + br label %"$have_gas_287" -"$have_gas_285": ; preds = %"$out_of_gas_284", %"$have_gas_280" - %"$consume_286" = sub i64 %"$gasrem_282", 2 - store i64 %"$consume_286", i64* @_gasrem, align 8 - store %Int32 { i32 2 }, %Int32* @"$_gas_charge_accPairUtils_4", align 4, !dbg !19 +"$have_gas_287": ; preds = %"$out_of_gas_286", %"$have_gas_282" + %"$consume_288" = sub i64 %"$gasrem_284", 2 + store i64 %"$consume_288", i64* @_gasrem, align 8 + store %Int32 { i32 2 }, %Int32* @"$_gas_charge_accPairUtils_4", align 4, !dbg !26 ret void } -define internal %TName_Bool* @_scilla_expr_fun(i8* %0) !dbg !21 { +define internal %TName_Bool* @_scilla_expr_fun(i8* %0) !dbg !28 { entry: %"$expr_112" = alloca %TName_Bool*, align 8 - %"$gasrem_287" = load i64, i64* @_gasrem, align 8 - %"$gascmp_288" = icmp ugt i64 1, %"$gasrem_287" - br i1 %"$gascmp_288", label %"$out_of_gas_289", label %"$have_gas_290" + call void @llvm.dbg.declare(metadata %TName_Bool** %"$expr_112", metadata !29, metadata !DIExpression()), !dbg !30 + %"$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_289": ; preds = %entry +"$out_of_gas_291": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_290" + br label %"$have_gas_292" -"$have_gas_290": ; preds = %"$out_of_gas_289", %entry - %"$consume_291" = sub i64 %"$gasrem_287", 1 - store i64 %"$consume_291", i64* @_gasrem, align 8 +"$have_gas_292": ; preds = %"$out_of_gas_291", %entry + %"$consume_293" = sub i64 %"$gasrem_289", 1 + store i64 %"$consume_293", i64* @_gasrem, align 8 %false = alloca %TName_Bool*, align 8 - %"$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_290" - call void @_out_of_gas() - br label %"$have_gas_295" - -"$have_gas_295": ; preds = %"$out_of_gas_294", %"$have_gas_290" - %"$consume_296" = sub i64 %"$gasrem_292", 1 - store i64 %"$consume_296", i64* @_gasrem, align 8 - %"$adtval_297_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_297_salloc" = call i8* @_salloc(i8* %"$adtval_297_load", i64 1) - %"$adtval_297" = bitcast i8* %"$adtval_297_salloc" to %CName_False* - %"$adtgep_298" = getelementptr inbounds %CName_False, %CName_False* %"$adtval_297", i32 0, i32 0 - store i8 1, i8* %"$adtgep_298", align 1 - %"$adtptr_299" = bitcast %CName_False* %"$adtval_297" to %TName_Bool* - store %TName_Bool* %"$adtptr_299", %TName_Bool** %false, align 8, !dbg !22 - %"$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 = %"$have_gas_295" - call void @_out_of_gas() - br label %"$have_gas_303" - -"$have_gas_303": ; preds = %"$out_of_gas_302", %"$have_gas_295" - %"$consume_304" = sub i64 %"$gasrem_300", 1 - store i64 %"$consume_304", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %false, metadata !31, metadata !DIExpression()), !dbg !32 + %"$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 + %"$adtval_299_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_299_salloc" = call i8* @_salloc(i8* %"$adtval_299_load", i64 1) + %"$adtval_299" = bitcast i8* %"$adtval_299_salloc" to %CName_False* + %"$adtgep_300" = getelementptr inbounds %CName_False, %CName_False* %"$adtval_299", i32 0, i32 0 + store i8 1, i8* %"$adtgep_300", align 1 + %"$adtptr_301" = bitcast %CName_False* %"$adtval_299" to %TName_Bool* + store %TName_Bool* %"$adtptr_301", %TName_Bool** %false, align 8, !dbg !30 + %"$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 = %"$have_gas_297" + call void @_out_of_gas() + br label %"$have_gas_305" + +"$have_gas_305": ; preds = %"$out_of_gas_304", %"$have_gas_297" + %"$consume_306" = sub i64 %"$gasrem_302", 1 + store i64 %"$consume_306", i64* @_gasrem, align 8 %test = alloca %TName_Bool*, 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 = %"$have_gas_303" - call void @_out_of_gas() - br label %"$have_gas_308" - -"$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 - %"$adtval_310_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_310_salloc" = call i8* @_salloc(i8* %"$adtval_310_load", i64 1) - %"$adtval_310" = bitcast i8* %"$adtval_310_salloc" to %CName_True* - %"$adtgep_311" = getelementptr inbounds %CName_True, %CName_True* %"$adtval_310", i32 0, i32 0 - store i8 0, i8* %"$adtgep_311", align 1 - %"$adtptr_312" = bitcast %CName_True* %"$adtval_310" to %TName_Bool* - store %TName_Bool* %"$adtptr_312", %TName_Bool** %test, align 8, !dbg !23 - %"$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_308" - call void @_out_of_gas() - br label %"$have_gas_316" - -"$have_gas_316": ; preds = %"$out_of_gas_315", %"$have_gas_308" - %"$consume_317" = sub i64 %"$gasrem_313", 1 - store i64 %"$consume_317", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %test, metadata !33, metadata !DIExpression()), !dbg !34 + %"$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 + %"$adtval_312_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_312_salloc" = call i8* @_salloc(i8* %"$adtval_312_load", i64 1) + %"$adtval_312" = bitcast i8* %"$adtval_312_salloc" to %CName_True* + %"$adtgep_313" = getelementptr inbounds %CName_True, %CName_True* %"$adtval_312", i32 0, i32 0 + store i8 0, i8* %"$adtgep_313", align 1 + %"$adtptr_314" = bitcast %CName_True* %"$adtval_312" to %TName_Bool* + store %TName_Bool* %"$adtptr_314", %TName_Bool** %test, align 8, !dbg !35 + %"$gasrem_315" = load i64, i64* @_gasrem, align 8 + %"$gascmp_316" = icmp ugt i64 1, %"$gasrem_315" + br i1 %"$gascmp_316", label %"$out_of_gas_317", label %"$have_gas_318" + +"$out_of_gas_317": ; preds = %"$have_gas_310" + call void @_out_of_gas() + br label %"$have_gas_318" + +"$have_gas_318": ; preds = %"$out_of_gas_317", %"$have_gas_310" + %"$consume_319" = sub i64 %"$gasrem_315", 1 + store i64 %"$consume_319", i64* @_gasrem, align 8 %input = alloca %Uint32, 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" + call void @llvm.dbg.declare(metadata %Uint32* %input, metadata !36, metadata !DIExpression()), !dbg !38 + %"$gasrem_320" = load i64, i64* @_gasrem, align 8 + %"$gascmp_321" = icmp ugt i64 1, %"$gasrem_320" + br i1 %"$gascmp_321", label %"$out_of_gas_322", label %"$have_gas_323" -"$out_of_gas_320": ; preds = %"$have_gas_316" +"$out_of_gas_322": ; preds = %"$have_gas_318" call void @_out_of_gas() - br label %"$have_gas_321" + br label %"$have_gas_323" -"$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 - store %Uint32 { i32 1844 }, %Uint32* %input, align 4, !dbg !24 - %"$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" +"$have_gas_323": ; preds = %"$out_of_gas_322", %"$have_gas_318" + %"$consume_324" = sub i64 %"$gasrem_320", 1 + store i64 %"$consume_324", i64* @_gasrem, align 8 + store %Uint32 { i32 1844 }, %Uint32* %input, align 4, !dbg !39 + %"$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_325": ; preds = %"$have_gas_321" +"$out_of_gas_327": ; preds = %"$have_gas_323" call void @_out_of_gas() - br label %"$have_gas_326" + br label %"$have_gas_328" -"$have_gas_326": ; preds = %"$out_of_gas_325", %"$have_gas_321" - %"$consume_327" = sub i64 %"$gasrem_323", 1 - store i64 %"$consume_327", i64* @_gasrem, align 8 +"$have_gas_328": ; preds = %"$out_of_gas_327", %"$have_gas_323" + %"$consume_329" = sub i64 %"$gasrem_325", 1 + store i64 %"$consume_329", i64* @_gasrem, align 8 %resopt = alloca %TName_Option_Uint32*, align 8 - %"$gasrem_328" = load i64, i64* @_gasrem, align 8 - %"$gascmp_329" = icmp ugt i64 4, %"$gasrem_328" - br i1 %"$gascmp_329", label %"$out_of_gas_330", label %"$have_gas_331" - -"$out_of_gas_330": ; preds = %"$have_gas_326" - call void @_out_of_gas() - br label %"$have_gas_331" - -"$have_gas_331": ; preds = %"$out_of_gas_330", %"$have_gas_326" - %"$consume_332" = sub i64 %"$gasrem_328", 4 - store i64 %"$consume_332", i64* @_gasrem, align 8 - %"$execptr_load_333" = load i8*, i8** @_execptr, align 8 - %"$to_uint32_input_334" = alloca %Uint32, align 8 - %"$input_335" = load %Uint32, %Uint32* %input, align 4 - store %Uint32 %"$input_335", %Uint32* %"$to_uint32_input_334", align 4 - %"$$to_uint32_input_334_336" = bitcast %Uint32* %"$to_uint32_input_334" to i8* - %"$to_uint32_call_337" = call i8* @_to_uint32(i8* %"$execptr_load_333", %_TyDescrTy_Typ* @"$TyDescr_Uint32_117", i8* %"$$to_uint32_input_334_336"), !dbg !25 - %"$to_uint32_338" = bitcast i8* %"$to_uint32_call_337" to %TName_Option_Uint32* - store %TName_Option_Uint32* %"$to_uint32_338", %TName_Option_Uint32** %resopt, align 8, !dbg !25 - %"$gasrem_339" = load i64, i64* @_gasrem, align 8 - %"$gascmp_340" = icmp ugt i64 1, %"$gasrem_339" - br i1 %"$gascmp_340", label %"$out_of_gas_341", label %"$have_gas_342" - -"$out_of_gas_341": ; preds = %"$have_gas_331" - call void @_out_of_gas() - br label %"$have_gas_342" - -"$have_gas_342": ; preds = %"$out_of_gas_341", %"$have_gas_331" - %"$consume_343" = sub i64 %"$gasrem_339", 1 - store i64 %"$consume_343", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Option_Uint32** %resopt, metadata !40, metadata !DIExpression()), !dbg !43 + %"$gasrem_330" = load i64, i64* @_gasrem, align 8 + %"$gascmp_331" = icmp ugt i64 4, %"$gasrem_330" + br i1 %"$gascmp_331", label %"$out_of_gas_332", label %"$have_gas_333" + +"$out_of_gas_332": ; preds = %"$have_gas_328" + call void @_out_of_gas() + br label %"$have_gas_333" + +"$have_gas_333": ; preds = %"$out_of_gas_332", %"$have_gas_328" + %"$consume_334" = sub i64 %"$gasrem_330", 4 + store i64 %"$consume_334", i64* @_gasrem, align 8 + %"$execptr_load_335" = load i8*, i8** @_execptr, align 8 + %"$to_uint32_input_336" = alloca %Uint32, align 8 + %"$input_337" = load %Uint32, %Uint32* %input, align 4 + store %Uint32 %"$input_337", %Uint32* %"$to_uint32_input_336", align 4 + %"$$to_uint32_input_336_338" = bitcast %Uint32* %"$to_uint32_input_336" to i8* + %"$to_uint32_call_339" = call i8* @_to_uint32(i8* %"$execptr_load_335", %_TyDescrTy_Typ* @"$TyDescr_Uint32_117", i8* %"$$to_uint32_input_336_338"), !dbg !44 + %"$to_uint32_340" = bitcast i8* %"$to_uint32_call_339" to %TName_Option_Uint32* + store %TName_Option_Uint32* %"$to_uint32_340", %TName_Option_Uint32** %resopt, align 8, !dbg !44 + %"$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_333" + call void @_out_of_gas() + br label %"$have_gas_344" + +"$have_gas_344": ; preds = %"$out_of_gas_343", %"$have_gas_333" + %"$consume_345" = sub i64 %"$gasrem_341", 1 + store i64 %"$consume_345", i64* @_gasrem, align 8 %"$test_6" = alloca %TName_Bool*, align 8 - %"$gasrem_344" = load i64, i64* @_gasrem, align 8 - %"$gascmp_345" = icmp ugt i64 2, %"$gasrem_344" - br i1 %"$gascmp_345", label %"$out_of_gas_346", label %"$have_gas_347" - -"$out_of_gas_346": ; preds = %"$have_gas_342" - call void @_out_of_gas() - br label %"$have_gas_347" - -"$have_gas_347": ; preds = %"$out_of_gas_346", %"$have_gas_342" - %"$consume_348" = sub i64 %"$gasrem_344", 2 - store i64 %"$consume_348", i64* @_gasrem, align 8 - %"$resopt_350" = load %TName_Option_Uint32*, %TName_Option_Uint32** %resopt, align 8 - %"$resopt_tag_351" = getelementptr inbounds %TName_Option_Uint32, %TName_Option_Uint32* %"$resopt_350", i32 0, i32 0 - %"$resopt_tag_352" = load i8, i8* %"$resopt_tag_351", align 1 - switch i8 %"$resopt_tag_352", label %"$empty_default_353" [ - i8 0, label %"$Some_354" - i8 1, label %"$None_399" - ], !dbg !26 - -"$Some_354": ; preds = %"$have_gas_347" - %"$resopt_355" = bitcast %TName_Option_Uint32* %"$resopt_350" to %CName_Some_Uint32* - %"$res_gep_356" = getelementptr inbounds %CName_Some_Uint32, %CName_Some_Uint32* %"$resopt_355", i32 0, i32 1 - %"$res_load_357" = load %Uint32, %Uint32* %"$res_gep_356", align 4 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$test_6", metadata !45, metadata !DIExpression()), !dbg !46 + %"$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 = %"$have_gas_344" + call void @_out_of_gas() + br label %"$have_gas_349" + +"$have_gas_349": ; preds = %"$out_of_gas_348", %"$have_gas_344" + %"$consume_350" = sub i64 %"$gasrem_346", 2 + store i64 %"$consume_350", i64* @_gasrem, align 8 + %"$resopt_352" = load %TName_Option_Uint32*, %TName_Option_Uint32** %resopt, align 8 + %"$resopt_tag_353" = getelementptr inbounds %TName_Option_Uint32, %TName_Option_Uint32* %"$resopt_352", i32 0, i32 0 + %"$resopt_tag_354" = load i8, i8* %"$resopt_tag_353", align 1 + switch i8 %"$resopt_tag_354", label %"$empty_default_355" [ + i8 0, label %"$Some_356" + i8 1, label %"$None_401" + ], !dbg !47 + +"$Some_356": ; preds = %"$have_gas_349" + %"$resopt_357" = bitcast %TName_Option_Uint32* %"$resopt_352" to %CName_Some_Uint32* + %"$res_gep_358" = getelementptr inbounds %CName_Some_Uint32, %CName_Some_Uint32* %"$resopt_357", i32 0, i32 1 + %"$res_load_359" = load %Uint32, %Uint32* %"$res_gep_358", align 4 %res = alloca %Uint32, align 8 - store %Uint32 %"$res_load_357", %Uint32* %res, align 4 - %"$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" + store %Uint32 %"$res_load_359", %Uint32* %res, align 4 + %"$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_360": ; preds = %"$Some_354" +"$out_of_gas_362": ; preds = %"$Some_356" call void @_out_of_gas() - br label %"$have_gas_361" + br label %"$have_gas_363" -"$have_gas_361": ; preds = %"$out_of_gas_360", %"$Some_354" - %"$consume_362" = sub i64 %"$gasrem_358", 1 - store i64 %"$consume_362", i64* @_gasrem, align 8 +"$have_gas_363": ; preds = %"$out_of_gas_362", %"$Some_356" + %"$consume_364" = sub i64 %"$gasrem_360", 1 + store i64 %"$consume_364", i64* @_gasrem, align 8 %input_ = alloca %Uint32, 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" + call void @llvm.dbg.declare(metadata %Uint32* %input_, metadata !48, metadata !DIExpression()), !dbg !51 + %"$gasrem_365" = load i64, i64* @_gasrem, align 8 + %"$gascmp_366" = icmp ugt i64 1, %"$gasrem_365" + br i1 %"$gascmp_366", label %"$out_of_gas_367", label %"$have_gas_368" -"$out_of_gas_365": ; preds = %"$have_gas_361" +"$out_of_gas_367": ; preds = %"$have_gas_363" call void @_out_of_gas() - br label %"$have_gas_366" + br label %"$have_gas_368" -"$have_gas_366": ; preds = %"$out_of_gas_365", %"$have_gas_361" - %"$consume_367" = sub i64 %"$gasrem_363", 1 - store i64 %"$consume_367", i64* @_gasrem, align 8 - store %Uint32 { i32 1844 }, %Uint32* %input_, align 4, !dbg !27 - %"$gasrem_368" = load i64, i64* @_gasrem, align 8 - %"$gascmp_369" = icmp ugt i64 1, %"$gasrem_368" - br i1 %"$gascmp_369", label %"$out_of_gas_370", label %"$have_gas_371" +"$have_gas_368": ; preds = %"$out_of_gas_367", %"$have_gas_363" + %"$consume_369" = sub i64 %"$gasrem_365", 1 + store i64 %"$consume_369", i64* @_gasrem, align 8 + store %Uint32 { i32 1844 }, %Uint32* %input_, align 4, !dbg !52 + %"$gasrem_370" = load i64, i64* @_gasrem, align 8 + %"$gascmp_371" = icmp ugt i64 1, %"$gasrem_370" + br i1 %"$gascmp_371", label %"$out_of_gas_372", label %"$have_gas_373" -"$out_of_gas_370": ; preds = %"$have_gas_366" +"$out_of_gas_372": ; preds = %"$have_gas_368" call void @_out_of_gas() - br label %"$have_gas_371" + br label %"$have_gas_373" -"$have_gas_371": ; preds = %"$out_of_gas_370", %"$have_gas_366" - %"$consume_372" = sub i64 %"$gasrem_368", 1 - store i64 %"$consume_372", i64* @_gasrem, align 8 +"$have_gas_373": ; preds = %"$out_of_gas_372", %"$have_gas_368" + %"$consume_374" = sub i64 %"$gasrem_370", 1 + store i64 %"$consume_374", i64* @_gasrem, align 8 %test_ = alloca %TName_Bool*, align 8 - %"$gasrem_373" = load i64, i64* @_gasrem, align 8 - %"$gascmp_374" = icmp ugt i64 4, %"$gasrem_373" - br i1 %"$gascmp_374", label %"$out_of_gas_375", label %"$have_gas_376" - -"$out_of_gas_375": ; preds = %"$have_gas_371" - call void @_out_of_gas() - br label %"$have_gas_376" - -"$have_gas_376": ; preds = %"$out_of_gas_375", %"$have_gas_371" - %"$consume_377" = sub i64 %"$gasrem_373", 4 - store i64 %"$consume_377", i64* @_gasrem, align 8 - %"$execptr_load_378" = load i8*, i8** @_execptr, align 8 - %"$res_379" = load %Uint32, %Uint32* %res, align 4 - %"$input__380" = load %Uint32, %Uint32* %input_, align 4 - %"$eq_call_381" = call %TName_Bool* @_eq_Uint32(i8* %"$execptr_load_378", %Uint32 %"$res_379", %Uint32 %"$input__380"), !dbg !30 - store %TName_Bool* %"$eq_call_381", %TName_Bool** %test_, align 8, !dbg !30 - %"$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_376" - call void @_out_of_gas() - br label %"$have_gas_386" - -"$have_gas_386": ; preds = %"$out_of_gas_385", %"$have_gas_376" - %"$consume_387" = sub i64 %"$gasrem_383", 1 - store i64 %"$consume_387", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %test_, metadata !53, metadata !DIExpression()), !dbg !54 + %"$gasrem_375" = load i64, i64* @_gasrem, align 8 + %"$gascmp_376" = icmp ugt i64 4, %"$gasrem_375" + br i1 %"$gascmp_376", label %"$out_of_gas_377", label %"$have_gas_378" + +"$out_of_gas_377": ; preds = %"$have_gas_373" + call void @_out_of_gas() + br label %"$have_gas_378" + +"$have_gas_378": ; preds = %"$out_of_gas_377", %"$have_gas_373" + %"$consume_379" = sub i64 %"$gasrem_375", 4 + store i64 %"$consume_379", i64* @_gasrem, align 8 + %"$execptr_load_380" = load i8*, i8** @_execptr, align 8 + %"$res_381" = load %Uint32, %Uint32* %res, align 4 + %"$input__382" = load %Uint32, %Uint32* %input_, align 4 + %"$eq_call_383" = call %TName_Bool* @_eq_Uint32(i8* %"$execptr_load_380", %Uint32 %"$res_381", %Uint32 %"$input__382"), !dbg !55 + store %TName_Bool* %"$eq_call_383", %TName_Bool** %test_, align 8, !dbg !55 + %"$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_378" + call void @_out_of_gas() + br label %"$have_gas_388" + +"$have_gas_388": ; preds = %"$out_of_gas_387", %"$have_gas_378" + %"$consume_389" = sub i64 %"$gasrem_385", 1 + store i64 %"$consume_389", i64* @_gasrem, align 8 %"$BoolUtils.andb_84" = alloca { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, align 8 - %"$BoolUtils.andb_388" = 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_389" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_388", 0 - %"$BoolUtils.andb_envptr_390" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_388", 1 - %"$test_391" = load %TName_Bool*, %TName_Bool** %test, align 8 - %"$BoolUtils.andb_call_392" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_389"(i8* %"$BoolUtils.andb_envptr_390", %TName_Bool* %"$test_391"), !dbg !31 - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_392", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_84", align 8, !dbg !31 + %"$BoolUtils.andb_390" = 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_391" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_390", 0 + %"$BoolUtils.andb_envptr_392" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_390", 1 + %"$test_393" = load %TName_Bool*, %TName_Bool** %test, align 8 + %"$BoolUtils.andb_call_394" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_391"(i8* %"$BoolUtils.andb_envptr_392", %TName_Bool* %"$test_393"), !dbg !56 + store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_394", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_84", align 8, !dbg !56 %"$BoolUtils.andb_85" = alloca %TName_Bool*, align 8 - %"$$BoolUtils.andb_84_393" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_84", align 8 - %"$$BoolUtils.andb_84_fptr_394" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_84_393", 0 - %"$$BoolUtils.andb_84_envptr_395" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_84_393", 1 - %"$test__396" = load %TName_Bool*, %TName_Bool** %test_, align 8 - %"$$BoolUtils.andb_84_call_397" = call %TName_Bool* %"$$BoolUtils.andb_84_fptr_394"(i8* %"$$BoolUtils.andb_84_envptr_395", %TName_Bool* %"$test__396"), !dbg !31 - store %TName_Bool* %"$$BoolUtils.andb_84_call_397", %TName_Bool** %"$BoolUtils.andb_85", align 8, !dbg !31 - %"$$BoolUtils.andb_85_398" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_85", align 8 - store %TName_Bool* %"$$BoolUtils.andb_85_398", %TName_Bool** %"$test_6", align 8, !dbg !31 - br label %"$matchsucc_349" - -"$None_399": ; preds = %"$have_gas_347" - %"$resopt_400" = bitcast %TName_Option_Uint32* %"$resopt_350" to %CName_None_Uint32* - %"$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 = %"$None_399" - call void @_out_of_gas() - br label %"$have_gas_404" - -"$have_gas_404": ; preds = %"$out_of_gas_403", %"$None_399" - %"$consume_405" = sub i64 %"$gasrem_401", 1 - store i64 %"$consume_405", i64* @_gasrem, align 8 - %"$false_406" = load %TName_Bool*, %TName_Bool** %false, align 8 - store %TName_Bool* %"$false_406", %TName_Bool** %"$test_6", align 8, !dbg !32 - br label %"$matchsucc_349" - -"$empty_default_353": ; preds = %"$have_gas_347" - br label %"$matchsucc_349" - -"$matchsucc_349": ; preds = %"$have_gas_404", %"$have_gas_386", %"$empty_default_353" - %"$gasrem_407" = load i64, i64* @_gasrem, align 8 - %"$gascmp_408" = icmp ugt i64 1, %"$gasrem_407" - br i1 %"$gascmp_408", label %"$out_of_gas_409", label %"$have_gas_410" - -"$out_of_gas_409": ; preds = %"$matchsucc_349" - call void @_out_of_gas() - br label %"$have_gas_410" - -"$have_gas_410": ; preds = %"$out_of_gas_409", %"$matchsucc_349" - %"$consume_411" = sub i64 %"$gasrem_407", 1 - store i64 %"$consume_411", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$BoolUtils.andb_85", metadata !57, metadata !DIExpression()), !dbg !56 + %"$$BoolUtils.andb_84_395" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_84", align 8 + %"$$BoolUtils.andb_84_fptr_396" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_84_395", 0 + %"$$BoolUtils.andb_84_envptr_397" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_84_395", 1 + %"$test__398" = load %TName_Bool*, %TName_Bool** %test_, align 8 + %"$$BoolUtils.andb_84_call_399" = call %TName_Bool* %"$$BoolUtils.andb_84_fptr_396"(i8* %"$$BoolUtils.andb_84_envptr_397", %TName_Bool* %"$test__398"), !dbg !56 + store %TName_Bool* %"$$BoolUtils.andb_84_call_399", %TName_Bool** %"$BoolUtils.andb_85", align 8, !dbg !56 + %"$$BoolUtils.andb_85_400" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_85", align 8 + store %TName_Bool* %"$$BoolUtils.andb_85_400", %TName_Bool** %"$test_6", align 8, !dbg !56 + br label %"$matchsucc_351" + +"$None_401": ; preds = %"$have_gas_349" + %"$resopt_402" = bitcast %TName_Option_Uint32* %"$resopt_352" to %CName_None_Uint32* + %"$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 = %"$None_401" + call void @_out_of_gas() + br label %"$have_gas_406" + +"$have_gas_406": ; preds = %"$out_of_gas_405", %"$None_401" + %"$consume_407" = sub i64 %"$gasrem_403", 1 + store i64 %"$consume_407", i64* @_gasrem, align 8 + %"$false_408" = load %TName_Bool*, %TName_Bool** %false, align 8 + store %TName_Bool* %"$false_408", %TName_Bool** %"$test_6", align 8, !dbg !58 + br label %"$matchsucc_351" + +"$empty_default_355": ; preds = %"$have_gas_349" + br label %"$matchsucc_351" + +"$matchsucc_351": ; preds = %"$have_gas_406", %"$have_gas_388", %"$empty_default_355" + %"$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 = %"$matchsucc_351" + call void @_out_of_gas() + br label %"$have_gas_412" + +"$have_gas_412": ; preds = %"$out_of_gas_411", %"$matchsucc_351" + %"$consume_413" = sub i64 %"$gasrem_409", 1 + store i64 %"$consume_413", i64* @_gasrem, align 8 %"$input_7" = alloca %Uint128, align 8 - %"$gasrem_412" = load i64, i64* @_gasrem, align 8 - %"$gascmp_413" = icmp ugt i64 1, %"$gasrem_412" - br i1 %"$gascmp_413", label %"$out_of_gas_414", label %"$have_gas_415" + call void @llvm.dbg.declare(metadata %Uint128* %"$input_7", metadata !60, metadata !DIExpression()), !dbg !62 + %"$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_414": ; preds = %"$have_gas_410" +"$out_of_gas_416": ; preds = %"$have_gas_412" call void @_out_of_gas() - br label %"$have_gas_415" + br label %"$have_gas_417" -"$have_gas_415": ; preds = %"$out_of_gas_414", %"$have_gas_410" - %"$consume_416" = sub i64 %"$gasrem_412", 1 - store i64 %"$consume_416", i64* @_gasrem, align 8 - store %Uint128 { i128 1844 }, %Uint128* %"$input_7", align 8, !dbg !34 - %"$gasrem_417" = load i64, i64* @_gasrem, align 8 - %"$gascmp_418" = icmp ugt i64 1, %"$gasrem_417" - br i1 %"$gascmp_418", label %"$out_of_gas_419", label %"$have_gas_420" +"$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 %Uint128 { i128 1844 }, %Uint128* %"$input_7", align 8, !dbg !63 + %"$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_419": ; preds = %"$have_gas_415" +"$out_of_gas_421": ; preds = %"$have_gas_417" call void @_out_of_gas() - br label %"$have_gas_420" + br label %"$have_gas_422" -"$have_gas_420": ; preds = %"$out_of_gas_419", %"$have_gas_415" - %"$consume_421" = sub i64 %"$gasrem_417", 1 - store i64 %"$consume_421", 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 %"$resopt_8" = alloca %TName_Option_Uint32*, align 8 - %"$gasrem_422" = load i64, i64* @_gasrem, align 8 - %"$gascmp_423" = icmp ugt i64 4, %"$gasrem_422" - br i1 %"$gascmp_423", label %"$out_of_gas_424", label %"$have_gas_425" - -"$out_of_gas_424": ; preds = %"$have_gas_420" - call void @_out_of_gas() - br label %"$have_gas_425" - -"$have_gas_425": ; preds = %"$out_of_gas_424", %"$have_gas_420" - %"$consume_426" = sub i64 %"$gasrem_422", 4 - store i64 %"$consume_426", i64* @_gasrem, align 8 - %"$execptr_load_427" = load i8*, i8** @_execptr, align 8 - %"$to_uint32_$input_7_428" = alloca %Uint128, align 8 - %"$$input_7_429" = load %Uint128, %Uint128* %"$input_7", align 8 - store %Uint128 %"$$input_7_429", %Uint128* %"$to_uint32_$input_7_428", align 8 - %"$$to_uint32_$input_7_428_430" = bitcast %Uint128* %"$to_uint32_$input_7_428" to i8* - %"$to_uint32_call_431" = call i8* @_to_uint32(i8* %"$execptr_load_427", %_TyDescrTy_Typ* @"$TyDescr_Uint128_125", i8* %"$$to_uint32_$input_7_428_430"), !dbg !35 - %"$to_uint32_432" = bitcast i8* %"$to_uint32_call_431" to %TName_Option_Uint32* - store %TName_Option_Uint32* %"$to_uint32_432", %TName_Option_Uint32** %"$resopt_8", align 8, !dbg !35 - %"$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_425" - call void @_out_of_gas() - br label %"$have_gas_436" - -"$have_gas_436": ; preds = %"$out_of_gas_435", %"$have_gas_425" - %"$consume_437" = sub i64 %"$gasrem_433", 1 - store i64 %"$consume_437", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Option_Uint32** %"$resopt_8", metadata !64, metadata !DIExpression()), !dbg !65 + %"$gasrem_424" = load i64, i64* @_gasrem, align 8 + %"$gascmp_425" = icmp ugt i64 4, %"$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", 4 + store i64 %"$consume_428", i64* @_gasrem, align 8 + %"$execptr_load_429" = load i8*, i8** @_execptr, align 8 + %"$to_uint32_$input_7_430" = alloca %Uint128, align 8 + %"$$input_7_431" = load %Uint128, %Uint128* %"$input_7", align 8 + store %Uint128 %"$$input_7_431", %Uint128* %"$to_uint32_$input_7_430", align 8 + %"$$to_uint32_$input_7_430_432" = bitcast %Uint128* %"$to_uint32_$input_7_430" to i8* + %"$to_uint32_call_433" = call i8* @_to_uint32(i8* %"$execptr_load_429", %_TyDescrTy_Typ* @"$TyDescr_Uint128_125", i8* %"$$to_uint32_$input_7_430_432"), !dbg !66 + %"$to_uint32_434" = bitcast i8* %"$to_uint32_call_433" to %TName_Option_Uint32* + store %TName_Option_Uint32* %"$to_uint32_434", %TName_Option_Uint32** %"$resopt_8", align 8, !dbg !66 + %"$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_437": ; preds = %"$have_gas_427" + call void @_out_of_gas() + br label %"$have_gas_438" + +"$have_gas_438": ; preds = %"$out_of_gas_437", %"$have_gas_427" + %"$consume_439" = sub i64 %"$gasrem_435", 1 + store i64 %"$consume_439", i64* @_gasrem, align 8 %"$test_9" = alloca %TName_Bool*, align 8 - %"$gasrem_438" = load i64, i64* @_gasrem, align 8 - %"$gascmp_439" = icmp ugt i64 2, %"$gasrem_438" - br i1 %"$gascmp_439", label %"$out_of_gas_440", label %"$have_gas_441" - -"$out_of_gas_440": ; preds = %"$have_gas_436" - call void @_out_of_gas() - br label %"$have_gas_441" - -"$have_gas_441": ; preds = %"$out_of_gas_440", %"$have_gas_436" - %"$consume_442" = sub i64 %"$gasrem_438", 2 - store i64 %"$consume_442", i64* @_gasrem, align 8 - %"$$resopt_8_444" = load %TName_Option_Uint32*, %TName_Option_Uint32** %"$resopt_8", align 8 - %"$$resopt_8_tag_445" = getelementptr inbounds %TName_Option_Uint32, %TName_Option_Uint32* %"$$resopt_8_444", i32 0, i32 0 - %"$$resopt_8_tag_446" = load i8, i8* %"$$resopt_8_tag_445", align 1 - switch i8 %"$$resopt_8_tag_446", label %"$empty_default_447" [ - i8 0, label %"$Some_448" - i8 1, label %"$None_493" - ], !dbg !36 - -"$Some_448": ; preds = %"$have_gas_441" - %"$$resopt_8_449" = bitcast %TName_Option_Uint32* %"$$resopt_8_444" to %CName_Some_Uint32* - %"$res_gep_450" = getelementptr inbounds %CName_Some_Uint32, %CName_Some_Uint32* %"$$resopt_8_449", i32 0, i32 1 - %"$res_load_451" = load %Uint32, %Uint32* %"$res_gep_450", align 4 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$test_9", metadata !67, metadata !DIExpression()), !dbg !68 + %"$gasrem_440" = load i64, i64* @_gasrem, align 8 + %"$gascmp_441" = icmp ugt i64 2, %"$gasrem_440" + br i1 %"$gascmp_441", label %"$out_of_gas_442", label %"$have_gas_443" + +"$out_of_gas_442": ; preds = %"$have_gas_438" + call void @_out_of_gas() + br label %"$have_gas_443" + +"$have_gas_443": ; preds = %"$out_of_gas_442", %"$have_gas_438" + %"$consume_444" = sub i64 %"$gasrem_440", 2 + store i64 %"$consume_444", i64* @_gasrem, align 8 + %"$$resopt_8_446" = load %TName_Option_Uint32*, %TName_Option_Uint32** %"$resopt_8", align 8 + %"$$resopt_8_tag_447" = getelementptr inbounds %TName_Option_Uint32, %TName_Option_Uint32* %"$$resopt_8_446", i32 0, i32 0 + %"$$resopt_8_tag_448" = load i8, i8* %"$$resopt_8_tag_447", align 1 + switch i8 %"$$resopt_8_tag_448", label %"$empty_default_449" [ + i8 0, label %"$Some_450" + i8 1, label %"$None_495" + ], !dbg !69 + +"$Some_450": ; preds = %"$have_gas_443" + %"$$resopt_8_451" = bitcast %TName_Option_Uint32* %"$$resopt_8_446" to %CName_Some_Uint32* + %"$res_gep_452" = getelementptr inbounds %CName_Some_Uint32, %CName_Some_Uint32* %"$$resopt_8_451", i32 0, i32 1 + %"$res_load_453" = load %Uint32, %Uint32* %"$res_gep_452", align 4 %res1 = alloca %Uint32, align 8 - store %Uint32 %"$res_load_451", %Uint32* %res1, align 4 - %"$gasrem_452" = load i64, i64* @_gasrem, align 8 - %"$gascmp_453" = icmp ugt i64 1, %"$gasrem_452" - br i1 %"$gascmp_453", label %"$out_of_gas_454", label %"$have_gas_455" + store %Uint32 %"$res_load_453", %Uint32* %res1, 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" -"$out_of_gas_454": ; preds = %"$Some_448" +"$out_of_gas_456": ; preds = %"$Some_450" call void @_out_of_gas() - br label %"$have_gas_455" + br label %"$have_gas_457" -"$have_gas_455": ; preds = %"$out_of_gas_454", %"$Some_448" - %"$consume_456" = sub i64 %"$gasrem_452", 1 - store i64 %"$consume_456", i64* @_gasrem, align 8 +"$have_gas_457": ; preds = %"$out_of_gas_456", %"$Some_450" + %"$consume_458" = sub i64 %"$gasrem_454", 1 + store i64 %"$consume_458", i64* @_gasrem, align 8 %input_2 = alloca %Uint32, align 8 - %"$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" + call void @llvm.dbg.declare(metadata %Uint32* %input_2, metadata !70, metadata !DIExpression()), !dbg !73 + %"$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_459": ; preds = %"$have_gas_455" +"$out_of_gas_461": ; preds = %"$have_gas_457" call void @_out_of_gas() - br label %"$have_gas_460" + br label %"$have_gas_462" -"$have_gas_460": ; preds = %"$out_of_gas_459", %"$have_gas_455" - %"$consume_461" = sub i64 %"$gasrem_457", 1 - store i64 %"$consume_461", i64* @_gasrem, align 8 - store %Uint32 { i32 1844 }, %Uint32* %input_2, align 4, !dbg !37 - %"$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" +"$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 { i32 1844 }, %Uint32* %input_2, align 4, !dbg !74 + %"$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_464": ; preds = %"$have_gas_460" +"$out_of_gas_466": ; preds = %"$have_gas_462" call void @_out_of_gas() - br label %"$have_gas_465" + br label %"$have_gas_467" -"$have_gas_465": ; preds = %"$out_of_gas_464", %"$have_gas_460" - %"$consume_466" = sub i64 %"$gasrem_462", 1 - store i64 %"$consume_466", 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 %test_3 = alloca %TName_Bool*, align 8 - %"$gasrem_467" = load i64, i64* @_gasrem, align 8 - %"$gascmp_468" = icmp ugt i64 4, %"$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", 4 - store i64 %"$consume_471", i64* @_gasrem, align 8 - %"$execptr_load_472" = load i8*, i8** @_execptr, align 8 - %"$res_473" = load %Uint32, %Uint32* %res1, align 4 - %"$input__474" = load %Uint32, %Uint32* %input_2, align 4 - %"$eq_call_475" = call %TName_Bool* @_eq_Uint32(i8* %"$execptr_load_472", %Uint32 %"$res_473", %Uint32 %"$input__474"), !dbg !40 - store %TName_Bool* %"$eq_call_475", %TName_Bool** %test_3, align 8, !dbg !40 - %"$gasrem_477" = load i64, i64* @_gasrem, align 8 - %"$gascmp_478" = icmp ugt i64 1, %"$gasrem_477" - br i1 %"$gascmp_478", label %"$out_of_gas_479", label %"$have_gas_480" - -"$out_of_gas_479": ; preds = %"$have_gas_470" - call void @_out_of_gas() - br label %"$have_gas_480" - -"$have_gas_480": ; preds = %"$out_of_gas_479", %"$have_gas_470" - %"$consume_481" = sub i64 %"$gasrem_477", 1 - store i64 %"$consume_481", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %test_3, metadata !75, metadata !DIExpression()), !dbg !76 + %"$gasrem_469" = load i64, i64* @_gasrem, align 8 + %"$gascmp_470" = icmp ugt i64 4, %"$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", 4 + store i64 %"$consume_473", i64* @_gasrem, align 8 + %"$execptr_load_474" = load i8*, i8** @_execptr, align 8 + %"$res_475" = load %Uint32, %Uint32* %res1, align 4 + %"$input__476" = load %Uint32, %Uint32* %input_2, align 4 + %"$eq_call_477" = call %TName_Bool* @_eq_Uint32(i8* %"$execptr_load_474", %Uint32 %"$res_475", %Uint32 %"$input__476"), !dbg !77 + store %TName_Bool* %"$eq_call_477", %TName_Bool** %test_3, align 8, !dbg !77 + %"$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 = %"$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", 1 + store i64 %"$consume_483", i64* @_gasrem, align 8 %"$BoolUtils.andb_86" = alloca { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, align 8 - %"$BoolUtils.andb_482" = 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_483" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_482", 0 - %"$BoolUtils.andb_envptr_484" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_482", 1 - %"$$test_6_485" = load %TName_Bool*, %TName_Bool** %"$test_6", align 8 - %"$BoolUtils.andb_call_486" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_483"(i8* %"$BoolUtils.andb_envptr_484", %TName_Bool* %"$$test_6_485"), !dbg !41 - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_486", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_86", align 8, !dbg !41 + %"$BoolUtils.andb_484" = 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_485" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_484", 0 + %"$BoolUtils.andb_envptr_486" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_484", 1 + %"$$test_6_487" = load %TName_Bool*, %TName_Bool** %"$test_6", align 8 + %"$BoolUtils.andb_call_488" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_485"(i8* %"$BoolUtils.andb_envptr_486", %TName_Bool* %"$$test_6_487"), !dbg !78 + store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_488", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_86", align 8, !dbg !78 %"$BoolUtils.andb_87" = alloca %TName_Bool*, align 8 - %"$$BoolUtils.andb_86_487" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_86", align 8 - %"$$BoolUtils.andb_86_fptr_488" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_86_487", 0 - %"$$BoolUtils.andb_86_envptr_489" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_86_487", 1 - %"$test__490" = load %TName_Bool*, %TName_Bool** %test_3, align 8 - %"$$BoolUtils.andb_86_call_491" = call %TName_Bool* %"$$BoolUtils.andb_86_fptr_488"(i8* %"$$BoolUtils.andb_86_envptr_489", %TName_Bool* %"$test__490"), !dbg !41 - store %TName_Bool* %"$$BoolUtils.andb_86_call_491", %TName_Bool** %"$BoolUtils.andb_87", align 8, !dbg !41 - %"$$BoolUtils.andb_87_492" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_87", align 8 - store %TName_Bool* %"$$BoolUtils.andb_87_492", %TName_Bool** %"$test_9", align 8, !dbg !41 - br label %"$matchsucc_443" - -"$None_493": ; preds = %"$have_gas_441" - %"$$resopt_8_494" = bitcast %TName_Option_Uint32* %"$$resopt_8_444" to %CName_None_Uint32* - %"$gasrem_495" = load i64, i64* @_gasrem, align 8 - %"$gascmp_496" = icmp ugt i64 1, %"$gasrem_495" - br i1 %"$gascmp_496", label %"$out_of_gas_497", label %"$have_gas_498" - -"$out_of_gas_497": ; preds = %"$None_493" - call void @_out_of_gas() - br label %"$have_gas_498" - -"$have_gas_498": ; preds = %"$out_of_gas_497", %"$None_493" - %"$consume_499" = sub i64 %"$gasrem_495", 1 - store i64 %"$consume_499", i64* @_gasrem, align 8 - %"$false_500" = load %TName_Bool*, %TName_Bool** %false, align 8 - store %TName_Bool* %"$false_500", %TName_Bool** %"$test_9", align 8, !dbg !42 - br label %"$matchsucc_443" - -"$empty_default_447": ; preds = %"$have_gas_441" - br label %"$matchsucc_443" - -"$matchsucc_443": ; preds = %"$have_gas_498", %"$have_gas_480", %"$empty_default_447" - %"$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_443" - call void @_out_of_gas() - br label %"$have_gas_504" - -"$have_gas_504": ; preds = %"$out_of_gas_503", %"$matchsucc_443" - %"$consume_505" = sub i64 %"$gasrem_501", 1 - store i64 %"$consume_505", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$BoolUtils.andb_87", metadata !79, metadata !DIExpression()), !dbg !78 + %"$$BoolUtils.andb_86_489" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_86", align 8 + %"$$BoolUtils.andb_86_fptr_490" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_86_489", 0 + %"$$BoolUtils.andb_86_envptr_491" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_86_489", 1 + %"$test__492" = load %TName_Bool*, %TName_Bool** %test_3, align 8 + %"$$BoolUtils.andb_86_call_493" = call %TName_Bool* %"$$BoolUtils.andb_86_fptr_490"(i8* %"$$BoolUtils.andb_86_envptr_491", %TName_Bool* %"$test__492"), !dbg !78 + store %TName_Bool* %"$$BoolUtils.andb_86_call_493", %TName_Bool** %"$BoolUtils.andb_87", align 8, !dbg !78 + %"$$BoolUtils.andb_87_494" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_87", align 8 + store %TName_Bool* %"$$BoolUtils.andb_87_494", %TName_Bool** %"$test_9", align 8, !dbg !78 + br label %"$matchsucc_445" + +"$None_495": ; preds = %"$have_gas_443" + %"$$resopt_8_496" = bitcast %TName_Option_Uint32* %"$$resopt_8_446" to %CName_None_Uint32* + %"$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_499": ; preds = %"$None_495" + call void @_out_of_gas() + br label %"$have_gas_500" + +"$have_gas_500": ; preds = %"$out_of_gas_499", %"$None_495" + %"$consume_501" = sub i64 %"$gasrem_497", 1 + store i64 %"$consume_501", i64* @_gasrem, align 8 + %"$false_502" = load %TName_Bool*, %TName_Bool** %false, align 8 + store %TName_Bool* %"$false_502", %TName_Bool** %"$test_9", align 8, !dbg !80 + br label %"$matchsucc_445" + +"$empty_default_449": ; preds = %"$have_gas_443" + br label %"$matchsucc_445" + +"$matchsucc_445": ; preds = %"$have_gas_500", %"$have_gas_482", %"$empty_default_449" + %"$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 = %"$matchsucc_445" + call void @_out_of_gas() + br label %"$have_gas_506" + +"$have_gas_506": ; preds = %"$out_of_gas_505", %"$matchsucc_445" + %"$consume_507" = sub i64 %"$gasrem_503", 1 + store i64 %"$consume_507", i64* @_gasrem, align 8 %"$input_10" = alloca %Uint64, 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" + call void @llvm.dbg.declare(metadata %Uint64* %"$input_10", metadata !82, metadata !DIExpression()), !dbg !84 + %"$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" -"$out_of_gas_508": ; preds = %"$have_gas_504" +"$out_of_gas_510": ; preds = %"$have_gas_506" call void @_out_of_gas() - br label %"$have_gas_509" + br label %"$have_gas_511" -"$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 %Uint64 { i64 -1 }, %Uint64* %"$input_10", align 8, !dbg !44 - %"$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_511": ; preds = %"$out_of_gas_510", %"$have_gas_506" + %"$consume_512" = sub i64 %"$gasrem_508", 1 + store i64 %"$consume_512", i64* @_gasrem, align 8 + store %Uint64 { i64 -1 }, %Uint64* %"$input_10", align 8, !dbg !85 + %"$gasrem_513" = load i64, i64* @_gasrem, align 8 + %"$gascmp_514" = icmp ugt i64 1, %"$gasrem_513" + br i1 %"$gascmp_514", label %"$out_of_gas_515", label %"$have_gas_516" -"$out_of_gas_513": ; preds = %"$have_gas_509" +"$out_of_gas_515": ; preds = %"$have_gas_511" call void @_out_of_gas() - br label %"$have_gas_514" + br label %"$have_gas_516" -"$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 +"$have_gas_516": ; preds = %"$out_of_gas_515", %"$have_gas_511" + %"$consume_517" = sub i64 %"$gasrem_513", 1 + store i64 %"$consume_517", i64* @_gasrem, align 8 %"$resopt_11" = alloca %TName_Option_Uint32*, align 8 - %"$gasrem_516" = load i64, i64* @_gasrem, align 8 - %"$gascmp_517" = icmp ugt i64 4, %"$gasrem_516" - br i1 %"$gascmp_517", label %"$out_of_gas_518", label %"$have_gas_519" - -"$out_of_gas_518": ; preds = %"$have_gas_514" - call void @_out_of_gas() - br label %"$have_gas_519" - -"$have_gas_519": ; preds = %"$out_of_gas_518", %"$have_gas_514" - %"$consume_520" = sub i64 %"$gasrem_516", 4 - store i64 %"$consume_520", i64* @_gasrem, align 8 - %"$execptr_load_521" = load i8*, i8** @_execptr, align 8 - %"$to_uint32_$input_10_522" = alloca %Uint64, align 8 - %"$$input_10_523" = load %Uint64, %Uint64* %"$input_10", align 8 - store %Uint64 %"$$input_10_523", %Uint64* %"$to_uint32_$input_10_522", align 8 - %"$$to_uint32_$input_10_522_524" = bitcast %Uint64* %"$to_uint32_$input_10_522" to i8* - %"$to_uint32_call_525" = call i8* @_to_uint32(i8* %"$execptr_load_521", %_TyDescrTy_Typ* @"$TyDescr_Uint64_121", i8* %"$$to_uint32_$input_10_522_524"), !dbg !45 - %"$to_uint32_526" = bitcast i8* %"$to_uint32_call_525" to %TName_Option_Uint32* - store %TName_Option_Uint32* %"$to_uint32_526", %TName_Option_Uint32** %"$resopt_11", align 8, !dbg !45 - %"$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_519" - call void @_out_of_gas() - br label %"$have_gas_530" - -"$have_gas_530": ; preds = %"$out_of_gas_529", %"$have_gas_519" - %"$consume_531" = sub i64 %"$gasrem_527", 1 - store i64 %"$consume_531", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Option_Uint32** %"$resopt_11", metadata !86, metadata !DIExpression()), !dbg !87 + %"$gasrem_518" = load i64, i64* @_gasrem, align 8 + %"$gascmp_519" = icmp ugt i64 4, %"$gasrem_518" + br i1 %"$gascmp_519", label %"$out_of_gas_520", label %"$have_gas_521" + +"$out_of_gas_520": ; preds = %"$have_gas_516" + call void @_out_of_gas() + br label %"$have_gas_521" + +"$have_gas_521": ; preds = %"$out_of_gas_520", %"$have_gas_516" + %"$consume_522" = sub i64 %"$gasrem_518", 4 + store i64 %"$consume_522", i64* @_gasrem, align 8 + %"$execptr_load_523" = load i8*, i8** @_execptr, align 8 + %"$to_uint32_$input_10_524" = alloca %Uint64, align 8 + %"$$input_10_525" = load %Uint64, %Uint64* %"$input_10", align 8 + store %Uint64 %"$$input_10_525", %Uint64* %"$to_uint32_$input_10_524", align 8 + %"$$to_uint32_$input_10_524_526" = bitcast %Uint64* %"$to_uint32_$input_10_524" to i8* + %"$to_uint32_call_527" = call i8* @_to_uint32(i8* %"$execptr_load_523", %_TyDescrTy_Typ* @"$TyDescr_Uint64_121", i8* %"$$to_uint32_$input_10_524_526"), !dbg !88 + %"$to_uint32_528" = bitcast i8* %"$to_uint32_call_527" to %TName_Option_Uint32* + store %TName_Option_Uint32* %"$to_uint32_528", %TName_Option_Uint32** %"$resopt_11", align 8, !dbg !88 + %"$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" + +"$out_of_gas_531": ; preds = %"$have_gas_521" + call void @_out_of_gas() + br label %"$have_gas_532" + +"$have_gas_532": ; preds = %"$out_of_gas_531", %"$have_gas_521" + %"$consume_533" = sub i64 %"$gasrem_529", 1 + store i64 %"$consume_533", i64* @_gasrem, align 8 %"$test_12" = alloca %TName_Bool*, align 8 - %"$gasrem_532" = load i64, i64* @_gasrem, align 8 - %"$gascmp_533" = icmp ugt i64 2, %"$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", 2 - store i64 %"$consume_536", i64* @_gasrem, align 8 - %"$$resopt_11_538" = load %TName_Option_Uint32*, %TName_Option_Uint32** %"$resopt_11", align 8 - %"$$resopt_11_tag_539" = getelementptr inbounds %TName_Option_Uint32, %TName_Option_Uint32* %"$$resopt_11_538", i32 0, i32 0 - %"$$resopt_11_tag_540" = load i8, i8* %"$$resopt_11_tag_539", align 1 - switch i8 %"$$resopt_11_tag_540", label %"$empty_default_541" [ - i8 0, label %"$Some_542" - i8 1, label %"$None_552" - ], !dbg !46 - -"$Some_542": ; preds = %"$have_gas_535" - %"$$resopt_11_543" = bitcast %TName_Option_Uint32* %"$$resopt_11_538" to %CName_Some_Uint32* - %"$$$resopt_11_73_gep_544" = getelementptr inbounds %CName_Some_Uint32, %CName_Some_Uint32* %"$$resopt_11_543", i32 0, i32 1 - %"$$$resopt_11_73_load_545" = load %Uint32, %Uint32* %"$$$resopt_11_73_gep_544", align 4 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$test_12", metadata !89, metadata !DIExpression()), !dbg !90 + %"$gasrem_534" = load i64, i64* @_gasrem, align 8 + %"$gascmp_535" = icmp ugt i64 2, %"$gasrem_534" + br i1 %"$gascmp_535", label %"$out_of_gas_536", label %"$have_gas_537" + +"$out_of_gas_536": ; preds = %"$have_gas_532" + call void @_out_of_gas() + br label %"$have_gas_537" + +"$have_gas_537": ; preds = %"$out_of_gas_536", %"$have_gas_532" + %"$consume_538" = sub i64 %"$gasrem_534", 2 + store i64 %"$consume_538", i64* @_gasrem, align 8 + %"$$resopt_11_540" = load %TName_Option_Uint32*, %TName_Option_Uint32** %"$resopt_11", align 8 + %"$$resopt_11_tag_541" = getelementptr inbounds %TName_Option_Uint32, %TName_Option_Uint32* %"$$resopt_11_540", i32 0, i32 0 + %"$$resopt_11_tag_542" = load i8, i8* %"$$resopt_11_tag_541", align 1 + switch i8 %"$$resopt_11_tag_542", label %"$empty_default_543" [ + i8 0, label %"$Some_544" + i8 1, label %"$None_554" + ], !dbg !91 + +"$Some_544": ; preds = %"$have_gas_537" + %"$$resopt_11_545" = bitcast %TName_Option_Uint32* %"$$resopt_11_540" to %CName_Some_Uint32* + %"$$$resopt_11_73_gep_546" = getelementptr inbounds %CName_Some_Uint32, %CName_Some_Uint32* %"$$resopt_11_545", i32 0, i32 1 + %"$$$resopt_11_73_load_547" = load %Uint32, %Uint32* %"$$$resopt_11_73_gep_546", align 4 %"$$resopt_11_73" = alloca %Uint32, align 8 - store %Uint32 %"$$$resopt_11_73_load_545", %Uint32* %"$$resopt_11_73", align 4 - %"$gasrem_546" = load i64, i64* @_gasrem, align 8 - %"$gascmp_547" = icmp ugt i64 1, %"$gasrem_546" - br i1 %"$gascmp_547", label %"$out_of_gas_548", label %"$have_gas_549" + store %Uint32 %"$$$resopt_11_73_load_547", %Uint32* %"$$resopt_11_73", align 4 + %"$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_548": ; preds = %"$Some_542" +"$out_of_gas_550": ; preds = %"$Some_544" call void @_out_of_gas() - br label %"$have_gas_549" + br label %"$have_gas_551" -"$have_gas_549": ; preds = %"$out_of_gas_548", %"$Some_542" - %"$consume_550" = sub i64 %"$gasrem_546", 1 - store i64 %"$consume_550", i64* @_gasrem, align 8 - %"$false_551" = load %TName_Bool*, %TName_Bool** %false, align 8 - store %TName_Bool* %"$false_551", %TName_Bool** %"$test_12", align 8, !dbg !47 - br label %"$matchsucc_537" +"$have_gas_551": ; preds = %"$out_of_gas_550", %"$Some_544" + %"$consume_552" = sub i64 %"$gasrem_548", 1 + store i64 %"$consume_552", i64* @_gasrem, align 8 + %"$false_553" = load %TName_Bool*, %TName_Bool** %false, align 8 + store %TName_Bool* %"$false_553", %TName_Bool** %"$test_12", align 8, !dbg !92 + br label %"$matchsucc_539" -"$None_552": ; preds = %"$have_gas_535" - %"$$resopt_11_553" = bitcast %TName_Option_Uint32* %"$$resopt_11_538" to %CName_None_Uint32* - %"$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" +"$None_554": ; preds = %"$have_gas_537" + %"$$resopt_11_555" = bitcast %TName_Option_Uint32* %"$$resopt_11_540" to %CName_None_Uint32* + %"$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_556": ; preds = %"$None_552" +"$out_of_gas_558": ; preds = %"$None_554" call void @_out_of_gas() - br label %"$have_gas_557" + br label %"$have_gas_559" -"$have_gas_557": ; preds = %"$out_of_gas_556", %"$None_552" - %"$consume_558" = sub i64 %"$gasrem_554", 1 - store i64 %"$consume_558", i64* @_gasrem, align 8 - %"$$test_9_559" = load %TName_Bool*, %TName_Bool** %"$test_9", align 8 - store %TName_Bool* %"$$test_9_559", %TName_Bool** %"$test_12", align 8, !dbg !50 - br label %"$matchsucc_537" +"$have_gas_559": ; preds = %"$out_of_gas_558", %"$None_554" + %"$consume_560" = sub i64 %"$gasrem_556", 1 + store i64 %"$consume_560", i64* @_gasrem, align 8 + %"$$test_9_561" = load %TName_Bool*, %TName_Bool** %"$test_9", align 8 + store %TName_Bool* %"$$test_9_561", %TName_Bool** %"$test_12", align 8, !dbg !95 + br label %"$matchsucc_539" -"$empty_default_541": ; preds = %"$have_gas_535" - br label %"$matchsucc_537" +"$empty_default_543": ; preds = %"$have_gas_537" + br label %"$matchsucc_539" -"$matchsucc_537": ; preds = %"$have_gas_557", %"$have_gas_549", %"$empty_default_541" - %"$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" +"$matchsucc_539": ; preds = %"$have_gas_559", %"$have_gas_551", %"$empty_default_543" + %"$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_562": ; preds = %"$matchsucc_537" +"$out_of_gas_564": ; preds = %"$matchsucc_539" call void @_out_of_gas() - br label %"$have_gas_563" + br label %"$have_gas_565" -"$have_gas_563": ; preds = %"$out_of_gas_562", %"$matchsucc_537" - %"$consume_564" = sub i64 %"$gasrem_560", 1 - store i64 %"$consume_564", i64* @_gasrem, align 8 +"$have_gas_565": ; preds = %"$out_of_gas_564", %"$matchsucc_539" + %"$consume_566" = sub i64 %"$gasrem_562", 1 + store i64 %"$consume_566", i64* @_gasrem, align 8 %"$input_13" = alloca %Uint128, 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" + call void @llvm.dbg.declare(metadata %Uint128* %"$input_13", metadata !97, metadata !DIExpression()), !dbg !98 + %"$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_567": ; preds = %"$have_gas_563" +"$out_of_gas_569": ; preds = %"$have_gas_565" call void @_out_of_gas() - br label %"$have_gas_568" + br label %"$have_gas_570" -"$have_gas_568": ; preds = %"$out_of_gas_567", %"$have_gas_563" - %"$consume_569" = sub i64 %"$gasrem_565", 1 - store i64 %"$consume_569", i64* @_gasrem, align 8 - store %Uint128 { i128 18446744073709551615 }, %Uint128* %"$input_13", align 8, !dbg !52 - %"$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" +"$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 %Uint128 { i128 18446744073709551615 }, %Uint128* %"$input_13", align 8, !dbg !99 + %"$gasrem_572" = load i64, i64* @_gasrem, align 8 + %"$gascmp_573" = icmp ugt i64 1, %"$gasrem_572" + br i1 %"$gascmp_573", label %"$out_of_gas_574", label %"$have_gas_575" -"$out_of_gas_572": ; preds = %"$have_gas_568" +"$out_of_gas_574": ; preds = %"$have_gas_570" call void @_out_of_gas() - br label %"$have_gas_573" + br label %"$have_gas_575" -"$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_575": ; preds = %"$out_of_gas_574", %"$have_gas_570" + %"$consume_576" = sub i64 %"$gasrem_572", 1 + store i64 %"$consume_576", i64* @_gasrem, align 8 %"$resopt_14" = alloca %TName_Option_Uint32*, align 8 - %"$gasrem_575" = load i64, i64* @_gasrem, align 8 - %"$gascmp_576" = icmp ugt i64 4, %"$gasrem_575" - br i1 %"$gascmp_576", label %"$out_of_gas_577", label %"$have_gas_578" - -"$out_of_gas_577": ; preds = %"$have_gas_573" - call void @_out_of_gas() - br label %"$have_gas_578" - -"$have_gas_578": ; preds = %"$out_of_gas_577", %"$have_gas_573" - %"$consume_579" = sub i64 %"$gasrem_575", 4 - store i64 %"$consume_579", i64* @_gasrem, align 8 - %"$execptr_load_580" = load i8*, i8** @_execptr, align 8 - %"$to_uint32_$input_13_581" = alloca %Uint128, align 8 - %"$$input_13_582" = load %Uint128, %Uint128* %"$input_13", align 8 - store %Uint128 %"$$input_13_582", %Uint128* %"$to_uint32_$input_13_581", align 8 - %"$$to_uint32_$input_13_581_583" = bitcast %Uint128* %"$to_uint32_$input_13_581" to i8* - %"$to_uint32_call_584" = call i8* @_to_uint32(i8* %"$execptr_load_580", %_TyDescrTy_Typ* @"$TyDescr_Uint128_125", i8* %"$$to_uint32_$input_13_581_583"), !dbg !53 - %"$to_uint32_585" = bitcast i8* %"$to_uint32_call_584" to %TName_Option_Uint32* - store %TName_Option_Uint32* %"$to_uint32_585", %TName_Option_Uint32** %"$resopt_14", align 8, !dbg !53 - %"$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_578" - call void @_out_of_gas() - br label %"$have_gas_589" - -"$have_gas_589": ; preds = %"$out_of_gas_588", %"$have_gas_578" - %"$consume_590" = sub i64 %"$gasrem_586", 1 - store i64 %"$consume_590", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Option_Uint32** %"$resopt_14", metadata !100, metadata !DIExpression()), !dbg !101 + %"$gasrem_577" = load i64, i64* @_gasrem, align 8 + %"$gascmp_578" = icmp ugt i64 4, %"$gasrem_577" + br i1 %"$gascmp_578", label %"$out_of_gas_579", label %"$have_gas_580" + +"$out_of_gas_579": ; preds = %"$have_gas_575" + call void @_out_of_gas() + br label %"$have_gas_580" + +"$have_gas_580": ; preds = %"$out_of_gas_579", %"$have_gas_575" + %"$consume_581" = sub i64 %"$gasrem_577", 4 + store i64 %"$consume_581", i64* @_gasrem, align 8 + %"$execptr_load_582" = load i8*, i8** @_execptr, align 8 + %"$to_uint32_$input_13_583" = alloca %Uint128, align 8 + %"$$input_13_584" = load %Uint128, %Uint128* %"$input_13", align 8 + store %Uint128 %"$$input_13_584", %Uint128* %"$to_uint32_$input_13_583", align 8 + %"$$to_uint32_$input_13_583_585" = bitcast %Uint128* %"$to_uint32_$input_13_583" to i8* + %"$to_uint32_call_586" = call i8* @_to_uint32(i8* %"$execptr_load_582", %_TyDescrTy_Typ* @"$TyDescr_Uint128_125", i8* %"$$to_uint32_$input_13_583_585"), !dbg !102 + %"$to_uint32_587" = bitcast i8* %"$to_uint32_call_586" to %TName_Option_Uint32* + store %TName_Option_Uint32* %"$to_uint32_587", %TName_Option_Uint32** %"$resopt_14", align 8, !dbg !102 + %"$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_580" + call void @_out_of_gas() + br label %"$have_gas_591" + +"$have_gas_591": ; preds = %"$out_of_gas_590", %"$have_gas_580" + %"$consume_592" = sub i64 %"$gasrem_588", 1 + store i64 %"$consume_592", i64* @_gasrem, align 8 %"$test_15" = alloca %TName_Bool*, align 8 - %"$gasrem_591" = load i64, i64* @_gasrem, align 8 - %"$gascmp_592" = icmp ugt i64 2, %"$gasrem_591" - br i1 %"$gascmp_592", label %"$out_of_gas_593", label %"$have_gas_594" - -"$out_of_gas_593": ; preds = %"$have_gas_589" - call void @_out_of_gas() - br label %"$have_gas_594" - -"$have_gas_594": ; preds = %"$out_of_gas_593", %"$have_gas_589" - %"$consume_595" = sub i64 %"$gasrem_591", 2 - store i64 %"$consume_595", i64* @_gasrem, align 8 - %"$$resopt_14_597" = load %TName_Option_Uint32*, %TName_Option_Uint32** %"$resopt_14", align 8 - %"$$resopt_14_tag_598" = getelementptr inbounds %TName_Option_Uint32, %TName_Option_Uint32* %"$$resopt_14_597", i32 0, i32 0 - %"$$resopt_14_tag_599" = load i8, i8* %"$$resopt_14_tag_598", align 1 - switch i8 %"$$resopt_14_tag_599", label %"$empty_default_600" [ - i8 0, label %"$Some_601" - i8 1, label %"$None_611" - ], !dbg !54 - -"$Some_601": ; preds = %"$have_gas_594" - %"$$resopt_14_602" = bitcast %TName_Option_Uint32* %"$$resopt_14_597" to %CName_Some_Uint32* - %"$$$resopt_14_74_gep_603" = getelementptr inbounds %CName_Some_Uint32, %CName_Some_Uint32* %"$$resopt_14_602", i32 0, i32 1 - %"$$$resopt_14_74_load_604" = load %Uint32, %Uint32* %"$$$resopt_14_74_gep_603", align 4 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$test_15", metadata !103, metadata !DIExpression()), !dbg !104 + %"$gasrem_593" = load i64, i64* @_gasrem, align 8 + %"$gascmp_594" = icmp ugt i64 2, %"$gasrem_593" + br i1 %"$gascmp_594", label %"$out_of_gas_595", label %"$have_gas_596" + +"$out_of_gas_595": ; preds = %"$have_gas_591" + call void @_out_of_gas() + br label %"$have_gas_596" + +"$have_gas_596": ; preds = %"$out_of_gas_595", %"$have_gas_591" + %"$consume_597" = sub i64 %"$gasrem_593", 2 + store i64 %"$consume_597", i64* @_gasrem, align 8 + %"$$resopt_14_599" = load %TName_Option_Uint32*, %TName_Option_Uint32** %"$resopt_14", align 8 + %"$$resopt_14_tag_600" = getelementptr inbounds %TName_Option_Uint32, %TName_Option_Uint32* %"$$resopt_14_599", i32 0, i32 0 + %"$$resopt_14_tag_601" = load i8, i8* %"$$resopt_14_tag_600", align 1 + switch i8 %"$$resopt_14_tag_601", label %"$empty_default_602" [ + i8 0, label %"$Some_603" + i8 1, label %"$None_613" + ], !dbg !105 + +"$Some_603": ; preds = %"$have_gas_596" + %"$$resopt_14_604" = bitcast %TName_Option_Uint32* %"$$resopt_14_599" to %CName_Some_Uint32* + %"$$$resopt_14_74_gep_605" = getelementptr inbounds %CName_Some_Uint32, %CName_Some_Uint32* %"$$resopt_14_604", i32 0, i32 1 + %"$$$resopt_14_74_load_606" = load %Uint32, %Uint32* %"$$$resopt_14_74_gep_605", align 4 %"$$resopt_14_74" = alloca %Uint32, align 8 - store %Uint32 %"$$$resopt_14_74_load_604", %Uint32* %"$$resopt_14_74", align 4 - %"$gasrem_605" = load i64, i64* @_gasrem, align 8 - %"$gascmp_606" = icmp ugt i64 1, %"$gasrem_605" - br i1 %"$gascmp_606", label %"$out_of_gas_607", label %"$have_gas_608" + store %Uint32 %"$$$resopt_14_74_load_606", %Uint32* %"$$resopt_14_74", align 4 + %"$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" -"$out_of_gas_607": ; preds = %"$Some_601" +"$out_of_gas_609": ; preds = %"$Some_603" call void @_out_of_gas() - br label %"$have_gas_608" + br label %"$have_gas_610" -"$have_gas_608": ; preds = %"$out_of_gas_607", %"$Some_601" - %"$consume_609" = sub i64 %"$gasrem_605", 1 - store i64 %"$consume_609", i64* @_gasrem, align 8 - %"$false_610" = load %TName_Bool*, %TName_Bool** %false, align 8 - store %TName_Bool* %"$false_610", %TName_Bool** %"$test_15", align 8, !dbg !55 - br label %"$matchsucc_596" +"$have_gas_610": ; preds = %"$out_of_gas_609", %"$Some_603" + %"$consume_611" = sub i64 %"$gasrem_607", 1 + store i64 %"$consume_611", i64* @_gasrem, align 8 + %"$false_612" = load %TName_Bool*, %TName_Bool** %false, align 8 + store %TName_Bool* %"$false_612", %TName_Bool** %"$test_15", align 8, !dbg !106 + br label %"$matchsucc_598" -"$None_611": ; preds = %"$have_gas_594" - %"$$resopt_14_612" = bitcast %TName_Option_Uint32* %"$$resopt_14_597" to %CName_None_Uint32* - %"$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" +"$None_613": ; preds = %"$have_gas_596" + %"$$resopt_14_614" = bitcast %TName_Option_Uint32* %"$$resopt_14_599" to %CName_None_Uint32* + %"$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_615": ; preds = %"$None_611" +"$out_of_gas_617": ; preds = %"$None_613" call void @_out_of_gas() - br label %"$have_gas_616" + br label %"$have_gas_618" -"$have_gas_616": ; preds = %"$out_of_gas_615", %"$None_611" - %"$consume_617" = sub i64 %"$gasrem_613", 1 - store i64 %"$consume_617", i64* @_gasrem, align 8 - %"$$test_12_618" = load %TName_Bool*, %TName_Bool** %"$test_12", align 8 - store %TName_Bool* %"$$test_12_618", %TName_Bool** %"$test_15", align 8, !dbg !58 - br label %"$matchsucc_596" +"$have_gas_618": ; preds = %"$out_of_gas_617", %"$None_613" + %"$consume_619" = sub i64 %"$gasrem_615", 1 + store i64 %"$consume_619", i64* @_gasrem, align 8 + %"$$test_12_620" = load %TName_Bool*, %TName_Bool** %"$test_12", align 8 + store %TName_Bool* %"$$test_12_620", %TName_Bool** %"$test_15", align 8, !dbg !109 + br label %"$matchsucc_598" -"$empty_default_600": ; preds = %"$have_gas_594" - br label %"$matchsucc_596" +"$empty_default_602": ; preds = %"$have_gas_596" + br label %"$matchsucc_598" -"$matchsucc_596": ; preds = %"$have_gas_616", %"$have_gas_608", %"$empty_default_600" - %"$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" +"$matchsucc_598": ; preds = %"$have_gas_618", %"$have_gas_610", %"$empty_default_602" + %"$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_621": ; preds = %"$matchsucc_596" +"$out_of_gas_623": ; preds = %"$matchsucc_598" call void @_out_of_gas() - br label %"$have_gas_622" + br label %"$have_gas_624" -"$have_gas_622": ; preds = %"$out_of_gas_621", %"$matchsucc_596" - %"$consume_623" = sub i64 %"$gasrem_619", 1 - store i64 %"$consume_623", i64* @_gasrem, align 8 +"$have_gas_624": ; preds = %"$out_of_gas_623", %"$matchsucc_598" + %"$consume_625" = sub i64 %"$gasrem_621", 1 + store i64 %"$consume_625", i64* @_gasrem, align 8 %"$input_16" = alloca %Uint256, align 8 - %"$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" + call void @llvm.dbg.declare(metadata %Uint256* %"$input_16", metadata !111, metadata !DIExpression()), !dbg !113 + %"$gasrem_626" = load i64, i64* @_gasrem, align 8 + %"$gascmp_627" = icmp ugt i64 1, %"$gasrem_626" + br i1 %"$gascmp_627", label %"$out_of_gas_628", label %"$have_gas_629" -"$out_of_gas_626": ; preds = %"$have_gas_622" +"$out_of_gas_628": ; preds = %"$have_gas_624" call void @_out_of_gas() - br label %"$have_gas_627" + br label %"$have_gas_629" -"$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 - store %Uint256 { i256 18446744073709551615 }, %Uint256* %"$input_16", align 8, !dbg !60 - %"$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" +"$have_gas_629": ; preds = %"$out_of_gas_628", %"$have_gas_624" + %"$consume_630" = sub i64 %"$gasrem_626", 1 + store i64 %"$consume_630", i64* @_gasrem, align 8 + store %Uint256 { i256 18446744073709551615 }, %Uint256* %"$input_16", align 8, !dbg !114 + %"$gasrem_631" = load i64, i64* @_gasrem, align 8 + %"$gascmp_632" = icmp ugt i64 1, %"$gasrem_631" + br i1 %"$gascmp_632", label %"$out_of_gas_633", label %"$have_gas_634" -"$out_of_gas_631": ; preds = %"$have_gas_627" +"$out_of_gas_633": ; preds = %"$have_gas_629" call void @_out_of_gas() - br label %"$have_gas_632" + br label %"$have_gas_634" -"$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_634": ; preds = %"$out_of_gas_633", %"$have_gas_629" + %"$consume_635" = sub i64 %"$gasrem_631", 1 + store i64 %"$consume_635", i64* @_gasrem, align 8 %"$resopt_17" = alloca %TName_Option_Uint32*, align 8 - %"$gasrem_634" = load i64, i64* @_gasrem, align 8 - %"$gascmp_635" = icmp ugt i64 4, %"$gasrem_634" - br i1 %"$gascmp_635", label %"$out_of_gas_636", label %"$have_gas_637" - -"$out_of_gas_636": ; preds = %"$have_gas_632" - call void @_out_of_gas() - br label %"$have_gas_637" - -"$have_gas_637": ; preds = %"$out_of_gas_636", %"$have_gas_632" - %"$consume_638" = sub i64 %"$gasrem_634", 4 - store i64 %"$consume_638", i64* @_gasrem, align 8 - %"$execptr_load_639" = load i8*, i8** @_execptr, align 8 - %"$to_uint32_$input_16_640" = alloca %Uint256, align 8 - %"$$input_16_641" = load %Uint256, %Uint256* %"$input_16", align 8 - store %Uint256 %"$$input_16_641", %Uint256* %"$to_uint32_$input_16_640", align 8 - %"$$to_uint32_$input_16_640_642" = bitcast %Uint256* %"$to_uint32_$input_16_640" to i8* - %"$to_uint32_call_643" = call i8* @_to_uint32(i8* %"$execptr_load_639", %_TyDescrTy_Typ* @"$TyDescr_Uint256_129", i8* %"$$to_uint32_$input_16_640_642"), !dbg !61 - %"$to_uint32_644" = bitcast i8* %"$to_uint32_call_643" to %TName_Option_Uint32* - store %TName_Option_Uint32* %"$to_uint32_644", %TName_Option_Uint32** %"$resopt_17", align 8, !dbg !61 - %"$gasrem_645" = load i64, i64* @_gasrem, align 8 - %"$gascmp_646" = icmp ugt i64 1, %"$gasrem_645" - br i1 %"$gascmp_646", label %"$out_of_gas_647", label %"$have_gas_648" - -"$out_of_gas_647": ; preds = %"$have_gas_637" - call void @_out_of_gas() - br label %"$have_gas_648" - -"$have_gas_648": ; preds = %"$out_of_gas_647", %"$have_gas_637" - %"$consume_649" = sub i64 %"$gasrem_645", 1 - store i64 %"$consume_649", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Option_Uint32** %"$resopt_17", metadata !115, metadata !DIExpression()), !dbg !116 + %"$gasrem_636" = load i64, i64* @_gasrem, align 8 + %"$gascmp_637" = icmp ugt i64 4, %"$gasrem_636" + br i1 %"$gascmp_637", label %"$out_of_gas_638", label %"$have_gas_639" + +"$out_of_gas_638": ; preds = %"$have_gas_634" + call void @_out_of_gas() + br label %"$have_gas_639" + +"$have_gas_639": ; preds = %"$out_of_gas_638", %"$have_gas_634" + %"$consume_640" = sub i64 %"$gasrem_636", 4 + store i64 %"$consume_640", i64* @_gasrem, align 8 + %"$execptr_load_641" = load i8*, i8** @_execptr, align 8 + %"$to_uint32_$input_16_642" = alloca %Uint256, align 8 + %"$$input_16_643" = load %Uint256, %Uint256* %"$input_16", align 8 + store %Uint256 %"$$input_16_643", %Uint256* %"$to_uint32_$input_16_642", align 8 + %"$$to_uint32_$input_16_642_644" = bitcast %Uint256* %"$to_uint32_$input_16_642" to i8* + %"$to_uint32_call_645" = call i8* @_to_uint32(i8* %"$execptr_load_641", %_TyDescrTy_Typ* @"$TyDescr_Uint256_129", i8* %"$$to_uint32_$input_16_642_644"), !dbg !117 + %"$to_uint32_646" = bitcast i8* %"$to_uint32_call_645" to %TName_Option_Uint32* + store %TName_Option_Uint32* %"$to_uint32_646", %TName_Option_Uint32** %"$resopt_17", align 8, !dbg !117 + %"$gasrem_647" = load i64, i64* @_gasrem, align 8 + %"$gascmp_648" = icmp ugt i64 1, %"$gasrem_647" + br i1 %"$gascmp_648", label %"$out_of_gas_649", label %"$have_gas_650" + +"$out_of_gas_649": ; preds = %"$have_gas_639" + call void @_out_of_gas() + br label %"$have_gas_650" + +"$have_gas_650": ; preds = %"$out_of_gas_649", %"$have_gas_639" + %"$consume_651" = sub i64 %"$gasrem_647", 1 + store i64 %"$consume_651", i64* @_gasrem, align 8 %"$test_18" = alloca %TName_Bool*, align 8 - %"$gasrem_650" = load i64, i64* @_gasrem, align 8 - %"$gascmp_651" = icmp ugt i64 2, %"$gasrem_650" - br i1 %"$gascmp_651", label %"$out_of_gas_652", label %"$have_gas_653" - -"$out_of_gas_652": ; preds = %"$have_gas_648" - call void @_out_of_gas() - br label %"$have_gas_653" - -"$have_gas_653": ; preds = %"$out_of_gas_652", %"$have_gas_648" - %"$consume_654" = sub i64 %"$gasrem_650", 2 - store i64 %"$consume_654", i64* @_gasrem, align 8 - %"$$resopt_17_656" = load %TName_Option_Uint32*, %TName_Option_Uint32** %"$resopt_17", align 8 - %"$$resopt_17_tag_657" = getelementptr inbounds %TName_Option_Uint32, %TName_Option_Uint32* %"$$resopt_17_656", i32 0, i32 0 - %"$$resopt_17_tag_658" = load i8, i8* %"$$resopt_17_tag_657", align 1 - switch i8 %"$$resopt_17_tag_658", label %"$empty_default_659" [ - i8 0, label %"$Some_660" - i8 1, label %"$None_670" - ], !dbg !62 - -"$Some_660": ; preds = %"$have_gas_653" - %"$$resopt_17_661" = bitcast %TName_Option_Uint32* %"$$resopt_17_656" to %CName_Some_Uint32* - %"$$$resopt_17_75_gep_662" = getelementptr inbounds %CName_Some_Uint32, %CName_Some_Uint32* %"$$resopt_17_661", i32 0, i32 1 - %"$$$resopt_17_75_load_663" = load %Uint32, %Uint32* %"$$$resopt_17_75_gep_662", align 4 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$test_18", metadata !118, metadata !DIExpression()), !dbg !119 + %"$gasrem_652" = load i64, i64* @_gasrem, align 8 + %"$gascmp_653" = icmp ugt i64 2, %"$gasrem_652" + br i1 %"$gascmp_653", label %"$out_of_gas_654", label %"$have_gas_655" + +"$out_of_gas_654": ; preds = %"$have_gas_650" + call void @_out_of_gas() + br label %"$have_gas_655" + +"$have_gas_655": ; preds = %"$out_of_gas_654", %"$have_gas_650" + %"$consume_656" = sub i64 %"$gasrem_652", 2 + store i64 %"$consume_656", i64* @_gasrem, align 8 + %"$$resopt_17_658" = load %TName_Option_Uint32*, %TName_Option_Uint32** %"$resopt_17", align 8 + %"$$resopt_17_tag_659" = getelementptr inbounds %TName_Option_Uint32, %TName_Option_Uint32* %"$$resopt_17_658", i32 0, i32 0 + %"$$resopt_17_tag_660" = load i8, i8* %"$$resopt_17_tag_659", align 1 + switch i8 %"$$resopt_17_tag_660", label %"$empty_default_661" [ + i8 0, label %"$Some_662" + i8 1, label %"$None_672" + ], !dbg !120 + +"$Some_662": ; preds = %"$have_gas_655" + %"$$resopt_17_663" = bitcast %TName_Option_Uint32* %"$$resopt_17_658" to %CName_Some_Uint32* + %"$$$resopt_17_75_gep_664" = getelementptr inbounds %CName_Some_Uint32, %CName_Some_Uint32* %"$$resopt_17_663", i32 0, i32 1 + %"$$$resopt_17_75_load_665" = load %Uint32, %Uint32* %"$$$resopt_17_75_gep_664", align 4 %"$$resopt_17_75" = alloca %Uint32, align 8 - store %Uint32 %"$$$resopt_17_75_load_663", %Uint32* %"$$resopt_17_75", align 4 - %"$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" + store %Uint32 %"$$$resopt_17_75_load_665", %Uint32* %"$$resopt_17_75", align 4 + %"$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_666": ; preds = %"$Some_660" +"$out_of_gas_668": ; preds = %"$Some_662" call void @_out_of_gas() - br label %"$have_gas_667" + br label %"$have_gas_669" -"$have_gas_667": ; preds = %"$out_of_gas_666", %"$Some_660" - %"$consume_668" = sub i64 %"$gasrem_664", 1 - store i64 %"$consume_668", i64* @_gasrem, align 8 - %"$false_669" = load %TName_Bool*, %TName_Bool** %false, align 8 - store %TName_Bool* %"$false_669", %TName_Bool** %"$test_18", align 8, !dbg !63 - br label %"$matchsucc_655" +"$have_gas_669": ; preds = %"$out_of_gas_668", %"$Some_662" + %"$consume_670" = sub i64 %"$gasrem_666", 1 + store i64 %"$consume_670", i64* @_gasrem, align 8 + %"$false_671" = load %TName_Bool*, %TName_Bool** %false, align 8 + store %TName_Bool* %"$false_671", %TName_Bool** %"$test_18", align 8, !dbg !121 + br label %"$matchsucc_657" -"$None_670": ; preds = %"$have_gas_653" - %"$$resopt_17_671" = bitcast %TName_Option_Uint32* %"$$resopt_17_656" to %CName_None_Uint32* - %"$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" +"$None_672": ; preds = %"$have_gas_655" + %"$$resopt_17_673" = bitcast %TName_Option_Uint32* %"$$resopt_17_658" to %CName_None_Uint32* + %"$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_674": ; preds = %"$None_670" +"$out_of_gas_676": ; preds = %"$None_672" call void @_out_of_gas() - br label %"$have_gas_675" + br label %"$have_gas_677" -"$have_gas_675": ; preds = %"$out_of_gas_674", %"$None_670" - %"$consume_676" = sub i64 %"$gasrem_672", 1 - store i64 %"$consume_676", i64* @_gasrem, align 8 - %"$$test_15_677" = load %TName_Bool*, %TName_Bool** %"$test_15", align 8 - store %TName_Bool* %"$$test_15_677", %TName_Bool** %"$test_18", align 8, !dbg !66 - br label %"$matchsucc_655" +"$have_gas_677": ; preds = %"$out_of_gas_676", %"$None_672" + %"$consume_678" = sub i64 %"$gasrem_674", 1 + store i64 %"$consume_678", i64* @_gasrem, align 8 + %"$$test_15_679" = load %TName_Bool*, %TName_Bool** %"$test_15", align 8 + store %TName_Bool* %"$$test_15_679", %TName_Bool** %"$test_18", align 8, !dbg !124 + br label %"$matchsucc_657" -"$empty_default_659": ; preds = %"$have_gas_653" - br label %"$matchsucc_655" +"$empty_default_661": ; preds = %"$have_gas_655" + br label %"$matchsucc_657" -"$matchsucc_655": ; preds = %"$have_gas_675", %"$have_gas_667", %"$empty_default_659" - %"$gasrem_678" = load i64, i64* @_gasrem, align 8 - %"$gascmp_679" = icmp ugt i64 1, %"$gasrem_678" - br i1 %"$gascmp_679", label %"$out_of_gas_680", label %"$have_gas_681" +"$matchsucc_657": ; preds = %"$have_gas_677", %"$have_gas_669", %"$empty_default_661" + %"$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_680": ; preds = %"$matchsucc_655" +"$out_of_gas_682": ; preds = %"$matchsucc_657" call void @_out_of_gas() - br label %"$have_gas_681" + br label %"$have_gas_683" -"$have_gas_681": ; preds = %"$out_of_gas_680", %"$matchsucc_655" - %"$consume_682" = sub i64 %"$gasrem_678", 1 - store i64 %"$consume_682", i64* @_gasrem, align 8 +"$have_gas_683": ; preds = %"$out_of_gas_682", %"$matchsucc_657" + %"$consume_684" = sub i64 %"$gasrem_680", 1 + store i64 %"$consume_684", i64* @_gasrem, align 8 %"$input_19" = alloca %Uint32, align 8 - %"$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" + call void @llvm.dbg.declare(metadata %Uint32* %"$input_19", metadata !126, metadata !DIExpression()), !dbg !127 + %"$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_685": ; preds = %"$have_gas_681" +"$out_of_gas_687": ; preds = %"$have_gas_683" call void @_out_of_gas() - br label %"$have_gas_686" + br label %"$have_gas_688" -"$have_gas_686": ; preds = %"$out_of_gas_685", %"$have_gas_681" - %"$consume_687" = sub i64 %"$gasrem_683", 1 - store i64 %"$consume_687", i64* @_gasrem, align 8 - store %Uint32 { i32 100 }, %Uint32* %"$input_19", align 4, !dbg !68 - %"$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" +"$have_gas_688": ; preds = %"$out_of_gas_687", %"$have_gas_683" + %"$consume_689" = sub i64 %"$gasrem_685", 1 + store i64 %"$consume_689", i64* @_gasrem, align 8 + store %Uint32 { i32 100 }, %Uint32* %"$input_19", align 4, !dbg !128 + %"$gasrem_690" = load i64, i64* @_gasrem, align 8 + %"$gascmp_691" = icmp ugt i64 1, %"$gasrem_690" + br i1 %"$gascmp_691", label %"$out_of_gas_692", label %"$have_gas_693" -"$out_of_gas_690": ; preds = %"$have_gas_686" +"$out_of_gas_692": ; preds = %"$have_gas_688" call void @_out_of_gas() - br label %"$have_gas_691" + br label %"$have_gas_693" -"$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 +"$have_gas_693": ; preds = %"$out_of_gas_692", %"$have_gas_688" + %"$consume_694" = sub i64 %"$gasrem_690", 1 + store i64 %"$consume_694", i64* @_gasrem, align 8 %"$resopt_20" = alloca %TName_Option_Uint64*, align 8 - %"$gasrem_693" = load i64, i64* @_gasrem, align 8 - %"$gascmp_694" = icmp ugt i64 4, %"$gasrem_693" - br i1 %"$gascmp_694", label %"$out_of_gas_695", label %"$have_gas_696" - -"$out_of_gas_695": ; preds = %"$have_gas_691" - call void @_out_of_gas() - br label %"$have_gas_696" - -"$have_gas_696": ; preds = %"$out_of_gas_695", %"$have_gas_691" - %"$consume_697" = sub i64 %"$gasrem_693", 4 - store i64 %"$consume_697", i64* @_gasrem, align 8 - %"$execptr_load_698" = load i8*, i8** @_execptr, align 8 - %"$to_uint64_$input_19_699" = alloca %Uint32, align 8 - %"$$input_19_700" = load %Uint32, %Uint32* %"$input_19", align 4 - store %Uint32 %"$$input_19_700", %Uint32* %"$to_uint64_$input_19_699", align 4 - %"$$to_uint64_$input_19_699_701" = bitcast %Uint32* %"$to_uint64_$input_19_699" to i8* - %"$to_uint64_call_702" = call i8* @_to_uint64(i8* %"$execptr_load_698", %_TyDescrTy_Typ* @"$TyDescr_Uint32_117", i8* %"$$to_uint64_$input_19_699_701"), !dbg !69 - %"$to_uint64_703" = bitcast i8* %"$to_uint64_call_702" to %TName_Option_Uint64* - store %TName_Option_Uint64* %"$to_uint64_703", %TName_Option_Uint64** %"$resopt_20", align 8, !dbg !69 - %"$gasrem_704" = load i64, i64* @_gasrem, align 8 - %"$gascmp_705" = icmp ugt i64 1, %"$gasrem_704" - br i1 %"$gascmp_705", label %"$out_of_gas_706", label %"$have_gas_707" - -"$out_of_gas_706": ; preds = %"$have_gas_696" - call void @_out_of_gas() - br label %"$have_gas_707" - -"$have_gas_707": ; preds = %"$out_of_gas_706", %"$have_gas_696" - %"$consume_708" = sub i64 %"$gasrem_704", 1 - store i64 %"$consume_708", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Option_Uint64** %"$resopt_20", metadata !129, metadata !DIExpression()), !dbg !132 + %"$gasrem_695" = load i64, i64* @_gasrem, align 8 + %"$gascmp_696" = icmp ugt i64 4, %"$gasrem_695" + br i1 %"$gascmp_696", label %"$out_of_gas_697", label %"$have_gas_698" + +"$out_of_gas_697": ; preds = %"$have_gas_693" + call void @_out_of_gas() + br label %"$have_gas_698" + +"$have_gas_698": ; preds = %"$out_of_gas_697", %"$have_gas_693" + %"$consume_699" = sub i64 %"$gasrem_695", 4 + store i64 %"$consume_699", i64* @_gasrem, align 8 + %"$execptr_load_700" = load i8*, i8** @_execptr, align 8 + %"$to_uint64_$input_19_701" = alloca %Uint32, align 8 + %"$$input_19_702" = load %Uint32, %Uint32* %"$input_19", align 4 + store %Uint32 %"$$input_19_702", %Uint32* %"$to_uint64_$input_19_701", align 4 + %"$$to_uint64_$input_19_701_703" = bitcast %Uint32* %"$to_uint64_$input_19_701" to i8* + %"$to_uint64_call_704" = call i8* @_to_uint64(i8* %"$execptr_load_700", %_TyDescrTy_Typ* @"$TyDescr_Uint32_117", i8* %"$$to_uint64_$input_19_701_703"), !dbg !133 + %"$to_uint64_705" = bitcast i8* %"$to_uint64_call_704" to %TName_Option_Uint64* + store %TName_Option_Uint64* %"$to_uint64_705", %TName_Option_Uint64** %"$resopt_20", align 8, !dbg !133 + %"$gasrem_706" = load i64, i64* @_gasrem, align 8 + %"$gascmp_707" = icmp ugt i64 1, %"$gasrem_706" + br i1 %"$gascmp_707", label %"$out_of_gas_708", label %"$have_gas_709" + +"$out_of_gas_708": ; preds = %"$have_gas_698" + call void @_out_of_gas() + br label %"$have_gas_709" + +"$have_gas_709": ; preds = %"$out_of_gas_708", %"$have_gas_698" + %"$consume_710" = sub i64 %"$gasrem_706", 1 + store i64 %"$consume_710", i64* @_gasrem, align 8 %"$test_21" = alloca %TName_Bool*, align 8 - %"$gasrem_709" = load i64, i64* @_gasrem, align 8 - %"$gascmp_710" = icmp ugt i64 2, %"$gasrem_709" - br i1 %"$gascmp_710", label %"$out_of_gas_711", label %"$have_gas_712" - -"$out_of_gas_711": ; preds = %"$have_gas_707" - call void @_out_of_gas() - br label %"$have_gas_712" - -"$have_gas_712": ; preds = %"$out_of_gas_711", %"$have_gas_707" - %"$consume_713" = sub i64 %"$gasrem_709", 2 - store i64 %"$consume_713", i64* @_gasrem, align 8 - %"$$resopt_20_715" = load %TName_Option_Uint64*, %TName_Option_Uint64** %"$resopt_20", align 8 - %"$$resopt_20_tag_716" = getelementptr inbounds %TName_Option_Uint64, %TName_Option_Uint64* %"$$resopt_20_715", i32 0, i32 0 - %"$$resopt_20_tag_717" = load i8, i8* %"$$resopt_20_tag_716", align 1 - switch i8 %"$$resopt_20_tag_717", label %"$empty_default_718" [ - i8 0, label %"$Some_719" - i8 1, label %"$None_764" - ], !dbg !70 - -"$Some_719": ; preds = %"$have_gas_712" - %"$$resopt_20_720" = bitcast %TName_Option_Uint64* %"$$resopt_20_715" to %CName_Some_Uint64* - %"$res_gep_721" = getelementptr inbounds %CName_Some_Uint64, %CName_Some_Uint64* %"$$resopt_20_720", i32 0, i32 1 - %"$res_load_722" = load %Uint64, %Uint64* %"$res_gep_721", align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$test_21", metadata !134, metadata !DIExpression()), !dbg !135 + %"$gasrem_711" = load i64, i64* @_gasrem, align 8 + %"$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" + call void @_out_of_gas() + br label %"$have_gas_714" + +"$have_gas_714": ; preds = %"$out_of_gas_713", %"$have_gas_709" + %"$consume_715" = sub i64 %"$gasrem_711", 2 + store i64 %"$consume_715", i64* @_gasrem, align 8 + %"$$resopt_20_717" = load %TName_Option_Uint64*, %TName_Option_Uint64** %"$resopt_20", align 8 + %"$$resopt_20_tag_718" = getelementptr inbounds %TName_Option_Uint64, %TName_Option_Uint64* %"$$resopt_20_717", i32 0, i32 0 + %"$$resopt_20_tag_719" = load i8, i8* %"$$resopt_20_tag_718", align 1 + switch i8 %"$$resopt_20_tag_719", label %"$empty_default_720" [ + i8 0, label %"$Some_721" + i8 1, label %"$None_766" + ], !dbg !136 + +"$Some_721": ; preds = %"$have_gas_714" + %"$$resopt_20_722" = bitcast %TName_Option_Uint64* %"$$resopt_20_717" to %CName_Some_Uint64* + %"$res_gep_723" = getelementptr inbounds %CName_Some_Uint64, %CName_Some_Uint64* %"$$resopt_20_722", i32 0, i32 1 + %"$res_load_724" = load %Uint64, %Uint64* %"$res_gep_723", align 8 %res4 = alloca %Uint64, align 8 - store %Uint64 %"$res_load_722", %Uint64* %res4, align 8 - %"$gasrem_723" = load i64, i64* @_gasrem, align 8 - %"$gascmp_724" = icmp ugt i64 1, %"$gasrem_723" - br i1 %"$gascmp_724", label %"$out_of_gas_725", label %"$have_gas_726" + store %Uint64 %"$res_load_724", %Uint64* %res4, 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_725": ; preds = %"$Some_719" +"$out_of_gas_727": ; preds = %"$Some_721" call void @_out_of_gas() - br label %"$have_gas_726" + br label %"$have_gas_728" -"$have_gas_726": ; preds = %"$out_of_gas_725", %"$Some_719" - %"$consume_727" = sub i64 %"$gasrem_723", 1 - store i64 %"$consume_727", 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 %input_5 = alloca %Uint64, 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" + call void @llvm.dbg.declare(metadata %Uint64* %input_5, metadata !137, metadata !DIExpression()), !dbg !140 + %"$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_730": ; preds = %"$have_gas_726" +"$out_of_gas_732": ; preds = %"$have_gas_728" call void @_out_of_gas() - br label %"$have_gas_731" + br label %"$have_gas_733" -"$have_gas_731": ; preds = %"$out_of_gas_730", %"$have_gas_726" - %"$consume_732" = sub i64 %"$gasrem_728", 1 - store i64 %"$consume_732", i64* @_gasrem, align 8 - store %Uint64 { i64 100 }, %Uint64* %input_5, align 8, !dbg !71 - %"$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" +"$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 %Uint64 { i64 100 }, %Uint64* %input_5, align 8, !dbg !141 + %"$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_735": ; preds = %"$have_gas_731" +"$out_of_gas_737": ; preds = %"$have_gas_733" call void @_out_of_gas() - br label %"$have_gas_736" + br label %"$have_gas_738" -"$have_gas_736": ; preds = %"$out_of_gas_735", %"$have_gas_731" - %"$consume_737" = sub i64 %"$gasrem_733", 1 - store i64 %"$consume_737", i64* @_gasrem, align 8 +"$have_gas_738": ; preds = %"$out_of_gas_737", %"$have_gas_733" + %"$consume_739" = sub i64 %"$gasrem_735", 1 + store i64 %"$consume_739", i64* @_gasrem, align 8 %test_6 = alloca %TName_Bool*, align 8 - %"$gasrem_738" = load i64, i64* @_gasrem, align 8 - %"$gascmp_739" = icmp ugt i64 4, %"$gasrem_738" - br i1 %"$gascmp_739", label %"$out_of_gas_740", label %"$have_gas_741" - -"$out_of_gas_740": ; preds = %"$have_gas_736" - call void @_out_of_gas() - br label %"$have_gas_741" - -"$have_gas_741": ; preds = %"$out_of_gas_740", %"$have_gas_736" - %"$consume_742" = sub i64 %"$gasrem_738", 4 - store i64 %"$consume_742", i64* @_gasrem, align 8 - %"$execptr_load_743" = load i8*, i8** @_execptr, align 8 - %"$res_744" = load %Uint64, %Uint64* %res4, align 8 - %"$input__745" = load %Uint64, %Uint64* %input_5, align 8 - %"$eq_call_746" = call %TName_Bool* @_eq_Uint64(i8* %"$execptr_load_743", %Uint64 %"$res_744", %Uint64 %"$input__745"), !dbg !74 - store %TName_Bool* %"$eq_call_746", %TName_Bool** %test_6, align 8, !dbg !74 - %"$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_741" - call void @_out_of_gas() - br label %"$have_gas_751" - -"$have_gas_751": ; preds = %"$out_of_gas_750", %"$have_gas_741" - %"$consume_752" = sub i64 %"$gasrem_748", 1 - store i64 %"$consume_752", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %test_6, metadata !142, metadata !DIExpression()), !dbg !143 + %"$gasrem_740" = load i64, i64* @_gasrem, align 8 + %"$gascmp_741" = icmp ugt i64 4, %"$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", 4 + store i64 %"$consume_744", i64* @_gasrem, align 8 + %"$execptr_load_745" = load i8*, i8** @_execptr, align 8 + %"$res_746" = load %Uint64, %Uint64* %res4, align 8 + %"$input__747" = load %Uint64, %Uint64* %input_5, align 8 + %"$eq_call_748" = call %TName_Bool* @_eq_Uint64(i8* %"$execptr_load_745", %Uint64 %"$res_746", %Uint64 %"$input__747"), !dbg !144 + store %TName_Bool* %"$eq_call_748", %TName_Bool** %test_6, align 8, !dbg !144 + %"$gasrem_750" = load i64, i64* @_gasrem, align 8 + %"$gascmp_751" = icmp ugt i64 1, %"$gasrem_750" + br i1 %"$gascmp_751", label %"$out_of_gas_752", label %"$have_gas_753" + +"$out_of_gas_752": ; preds = %"$have_gas_743" + call void @_out_of_gas() + br label %"$have_gas_753" + +"$have_gas_753": ; preds = %"$out_of_gas_752", %"$have_gas_743" + %"$consume_754" = sub i64 %"$gasrem_750", 1 + store i64 %"$consume_754", i64* @_gasrem, align 8 %"$BoolUtils.andb_88" = alloca { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, align 8 - %"$BoolUtils.andb_753" = 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_754" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_753", 0 - %"$BoolUtils.andb_envptr_755" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_753", 1 - %"$$test_18_756" = load %TName_Bool*, %TName_Bool** %"$test_18", align 8 - %"$BoolUtils.andb_call_757" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_754"(i8* %"$BoolUtils.andb_envptr_755", %TName_Bool* %"$$test_18_756"), !dbg !75 - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_757", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_88", align 8, !dbg !75 + %"$BoolUtils.andb_755" = 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_756" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_755", 0 + %"$BoolUtils.andb_envptr_757" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_755", 1 + %"$$test_18_758" = load %TName_Bool*, %TName_Bool** %"$test_18", align 8 + %"$BoolUtils.andb_call_759" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_756"(i8* %"$BoolUtils.andb_envptr_757", %TName_Bool* %"$$test_18_758"), !dbg !145 + store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_759", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_88", align 8, !dbg !145 %"$BoolUtils.andb_89" = alloca %TName_Bool*, align 8 - %"$$BoolUtils.andb_88_758" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_88", align 8 - %"$$BoolUtils.andb_88_fptr_759" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_88_758", 0 - %"$$BoolUtils.andb_88_envptr_760" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_88_758", 1 - %"$test__761" = load %TName_Bool*, %TName_Bool** %test_6, align 8 - %"$$BoolUtils.andb_88_call_762" = call %TName_Bool* %"$$BoolUtils.andb_88_fptr_759"(i8* %"$$BoolUtils.andb_88_envptr_760", %TName_Bool* %"$test__761"), !dbg !75 - store %TName_Bool* %"$$BoolUtils.andb_88_call_762", %TName_Bool** %"$BoolUtils.andb_89", align 8, !dbg !75 - %"$$BoolUtils.andb_89_763" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_89", align 8 - store %TName_Bool* %"$$BoolUtils.andb_89_763", %TName_Bool** %"$test_21", align 8, !dbg !75 - br label %"$matchsucc_714" - -"$None_764": ; preds = %"$have_gas_712" - %"$$resopt_20_765" = bitcast %TName_Option_Uint64* %"$$resopt_20_715" to %CName_None_Uint64* - %"$gasrem_766" = load i64, i64* @_gasrem, align 8 - %"$gascmp_767" = icmp ugt i64 1, %"$gasrem_766" - br i1 %"$gascmp_767", label %"$out_of_gas_768", label %"$have_gas_769" - -"$out_of_gas_768": ; preds = %"$None_764" - call void @_out_of_gas() - br label %"$have_gas_769" - -"$have_gas_769": ; preds = %"$out_of_gas_768", %"$None_764" - %"$consume_770" = sub i64 %"$gasrem_766", 1 - store i64 %"$consume_770", i64* @_gasrem, align 8 - %"$false_771" = load %TName_Bool*, %TName_Bool** %false, align 8 - store %TName_Bool* %"$false_771", %TName_Bool** %"$test_21", align 8, !dbg !76 - br label %"$matchsucc_714" - -"$empty_default_718": ; preds = %"$have_gas_712" - br label %"$matchsucc_714" - -"$matchsucc_714": ; preds = %"$have_gas_769", %"$have_gas_751", %"$empty_default_718" - %"$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 = %"$matchsucc_714" - call void @_out_of_gas() - br label %"$have_gas_775" - -"$have_gas_775": ; preds = %"$out_of_gas_774", %"$matchsucc_714" - %"$consume_776" = sub i64 %"$gasrem_772", 1 - store i64 %"$consume_776", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$BoolUtils.andb_89", metadata !146, metadata !DIExpression()), !dbg !145 + %"$$BoolUtils.andb_88_760" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_88", align 8 + %"$$BoolUtils.andb_88_fptr_761" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_88_760", 0 + %"$$BoolUtils.andb_88_envptr_762" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_88_760", 1 + %"$test__763" = load %TName_Bool*, %TName_Bool** %test_6, align 8 + %"$$BoolUtils.andb_88_call_764" = call %TName_Bool* %"$$BoolUtils.andb_88_fptr_761"(i8* %"$$BoolUtils.andb_88_envptr_762", %TName_Bool* %"$test__763"), !dbg !145 + store %TName_Bool* %"$$BoolUtils.andb_88_call_764", %TName_Bool** %"$BoolUtils.andb_89", align 8, !dbg !145 + %"$$BoolUtils.andb_89_765" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_89", align 8 + store %TName_Bool* %"$$BoolUtils.andb_89_765", %TName_Bool** %"$test_21", align 8, !dbg !145 + br label %"$matchsucc_716" + +"$None_766": ; preds = %"$have_gas_714" + %"$$resopt_20_767" = bitcast %TName_Option_Uint64* %"$$resopt_20_717" to %CName_None_Uint64* + %"$gasrem_768" = load i64, i64* @_gasrem, align 8 + %"$gascmp_769" = icmp ugt i64 1, %"$gasrem_768" + br i1 %"$gascmp_769", label %"$out_of_gas_770", label %"$have_gas_771" + +"$out_of_gas_770": ; preds = %"$None_766" + call void @_out_of_gas() + br label %"$have_gas_771" + +"$have_gas_771": ; preds = %"$out_of_gas_770", %"$None_766" + %"$consume_772" = sub i64 %"$gasrem_768", 1 + store i64 %"$consume_772", i64* @_gasrem, align 8 + %"$false_773" = load %TName_Bool*, %TName_Bool** %false, align 8 + store %TName_Bool* %"$false_773", %TName_Bool** %"$test_21", align 8, !dbg !147 + br label %"$matchsucc_716" + +"$empty_default_720": ; preds = %"$have_gas_714" + br label %"$matchsucc_716" + +"$matchsucc_716": ; preds = %"$have_gas_771", %"$have_gas_753", %"$empty_default_720" + %"$gasrem_774" = load i64, i64* @_gasrem, align 8 + %"$gascmp_775" = icmp ugt i64 1, %"$gasrem_774" + br i1 %"$gascmp_775", label %"$out_of_gas_776", label %"$have_gas_777" + +"$out_of_gas_776": ; preds = %"$matchsucc_716" + call void @_out_of_gas() + br label %"$have_gas_777" + +"$have_gas_777": ; preds = %"$out_of_gas_776", %"$matchsucc_716" + %"$consume_778" = sub i64 %"$gasrem_774", 1 + store i64 %"$consume_778", i64* @_gasrem, align 8 %"$input_22" = alloca %Uint64, align 8 - %"$gasrem_777" = load i64, i64* @_gasrem, align 8 - %"$gascmp_778" = icmp ugt i64 1, %"$gasrem_777" - br i1 %"$gascmp_778", label %"$out_of_gas_779", label %"$have_gas_780" + call void @llvm.dbg.declare(metadata %Uint64* %"$input_22", metadata !149, metadata !DIExpression()), !dbg !150 + %"$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_779": ; preds = %"$have_gas_775" +"$out_of_gas_781": ; preds = %"$have_gas_777" call void @_out_of_gas() - br label %"$have_gas_780" + br label %"$have_gas_782" -"$have_gas_780": ; preds = %"$out_of_gas_779", %"$have_gas_775" - %"$consume_781" = sub i64 %"$gasrem_777", 1 - store i64 %"$consume_781", i64* @_gasrem, align 8 - store %Uint64 { i64 -1 }, %Uint64* %"$input_22", align 8, !dbg !78 - %"$gasrem_782" = load i64, i64* @_gasrem, align 8 - %"$gascmp_783" = icmp ugt i64 1, %"$gasrem_782" - br i1 %"$gascmp_783", label %"$out_of_gas_784", label %"$have_gas_785" +"$have_gas_782": ; preds = %"$out_of_gas_781", %"$have_gas_777" + %"$consume_783" = sub i64 %"$gasrem_779", 1 + store i64 %"$consume_783", i64* @_gasrem, align 8 + store %Uint64 { i64 -1 }, %Uint64* %"$input_22", align 8, !dbg !151 + %"$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" -"$out_of_gas_784": ; preds = %"$have_gas_780" +"$out_of_gas_786": ; preds = %"$have_gas_782" call void @_out_of_gas() - br label %"$have_gas_785" + br label %"$have_gas_787" -"$have_gas_785": ; preds = %"$out_of_gas_784", %"$have_gas_780" - %"$consume_786" = sub i64 %"$gasrem_782", 1 - store i64 %"$consume_786", i64* @_gasrem, align 8 +"$have_gas_787": ; preds = %"$out_of_gas_786", %"$have_gas_782" + %"$consume_788" = sub i64 %"$gasrem_784", 1 + store i64 %"$consume_788", i64* @_gasrem, align 8 %"$resopt_23" = alloca %TName_Option_Uint64*, align 8 - %"$gasrem_787" = load i64, i64* @_gasrem, align 8 - %"$gascmp_788" = icmp ugt i64 4, %"$gasrem_787" - br i1 %"$gascmp_788", label %"$out_of_gas_789", label %"$have_gas_790" - -"$out_of_gas_789": ; preds = %"$have_gas_785" - call void @_out_of_gas() - br label %"$have_gas_790" - -"$have_gas_790": ; preds = %"$out_of_gas_789", %"$have_gas_785" - %"$consume_791" = sub i64 %"$gasrem_787", 4 - store i64 %"$consume_791", i64* @_gasrem, align 8 - %"$execptr_load_792" = load i8*, i8** @_execptr, align 8 - %"$to_uint64_$input_22_793" = alloca %Uint64, align 8 - %"$$input_22_794" = load %Uint64, %Uint64* %"$input_22", align 8 - store %Uint64 %"$$input_22_794", %Uint64* %"$to_uint64_$input_22_793", align 8 - %"$$to_uint64_$input_22_793_795" = bitcast %Uint64* %"$to_uint64_$input_22_793" to i8* - %"$to_uint64_call_796" = call i8* @_to_uint64(i8* %"$execptr_load_792", %_TyDescrTy_Typ* @"$TyDescr_Uint64_121", i8* %"$$to_uint64_$input_22_793_795"), !dbg !79 - %"$to_uint64_797" = bitcast i8* %"$to_uint64_call_796" to %TName_Option_Uint64* - store %TName_Option_Uint64* %"$to_uint64_797", %TName_Option_Uint64** %"$resopt_23", align 8, !dbg !79 - %"$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_800": ; preds = %"$have_gas_790" - call void @_out_of_gas() - br label %"$have_gas_801" - -"$have_gas_801": ; preds = %"$out_of_gas_800", %"$have_gas_790" - %"$consume_802" = sub i64 %"$gasrem_798", 1 - store i64 %"$consume_802", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Option_Uint64** %"$resopt_23", metadata !152, metadata !DIExpression()), !dbg !153 + %"$gasrem_789" = load i64, i64* @_gasrem, align 8 + %"$gascmp_790" = icmp ugt i64 4, %"$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", 4 + store i64 %"$consume_793", i64* @_gasrem, align 8 + %"$execptr_load_794" = load i8*, i8** @_execptr, align 8 + %"$to_uint64_$input_22_795" = alloca %Uint64, align 8 + %"$$input_22_796" = load %Uint64, %Uint64* %"$input_22", align 8 + store %Uint64 %"$$input_22_796", %Uint64* %"$to_uint64_$input_22_795", align 8 + %"$$to_uint64_$input_22_795_797" = bitcast %Uint64* %"$to_uint64_$input_22_795" to i8* + %"$to_uint64_call_798" = call i8* @_to_uint64(i8* %"$execptr_load_794", %_TyDescrTy_Typ* @"$TyDescr_Uint64_121", i8* %"$$to_uint64_$input_22_795_797"), !dbg !154 + %"$to_uint64_799" = bitcast i8* %"$to_uint64_call_798" to %TName_Option_Uint64* + store %TName_Option_Uint64* %"$to_uint64_799", %TName_Option_Uint64** %"$resopt_23", align 8, !dbg !154 + %"$gasrem_800" = load i64, i64* @_gasrem, align 8 + %"$gascmp_801" = icmp ugt i64 1, %"$gasrem_800" + br i1 %"$gascmp_801", label %"$out_of_gas_802", label %"$have_gas_803" + +"$out_of_gas_802": ; preds = %"$have_gas_792" + call void @_out_of_gas() + br label %"$have_gas_803" + +"$have_gas_803": ; preds = %"$out_of_gas_802", %"$have_gas_792" + %"$consume_804" = sub i64 %"$gasrem_800", 1 + store i64 %"$consume_804", i64* @_gasrem, align 8 %"$test_24" = alloca %TName_Bool*, align 8 - %"$gasrem_803" = load i64, i64* @_gasrem, align 8 - %"$gascmp_804" = icmp ugt i64 2, %"$gasrem_803" - br i1 %"$gascmp_804", label %"$out_of_gas_805", label %"$have_gas_806" - -"$out_of_gas_805": ; preds = %"$have_gas_801" - call void @_out_of_gas() - br label %"$have_gas_806" - -"$have_gas_806": ; preds = %"$out_of_gas_805", %"$have_gas_801" - %"$consume_807" = sub i64 %"$gasrem_803", 2 - store i64 %"$consume_807", i64* @_gasrem, align 8 - %"$$resopt_23_809" = load %TName_Option_Uint64*, %TName_Option_Uint64** %"$resopt_23", align 8 - %"$$resopt_23_tag_810" = getelementptr inbounds %TName_Option_Uint64, %TName_Option_Uint64* %"$$resopt_23_809", i32 0, i32 0 - %"$$resopt_23_tag_811" = load i8, i8* %"$$resopt_23_tag_810", align 1 - switch i8 %"$$resopt_23_tag_811", label %"$empty_default_812" [ - i8 0, label %"$Some_813" - i8 1, label %"$None_858" - ], !dbg !80 - -"$Some_813": ; preds = %"$have_gas_806" - %"$$resopt_23_814" = bitcast %TName_Option_Uint64* %"$$resopt_23_809" to %CName_Some_Uint64* - %"$res_gep_815" = getelementptr inbounds %CName_Some_Uint64, %CName_Some_Uint64* %"$$resopt_23_814", i32 0, i32 1 - %"$res_load_816" = load %Uint64, %Uint64* %"$res_gep_815", align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$test_24", metadata !155, metadata !DIExpression()), !dbg !156 + %"$gasrem_805" = load i64, i64* @_gasrem, align 8 + %"$gascmp_806" = icmp ugt i64 2, %"$gasrem_805" + br i1 %"$gascmp_806", label %"$out_of_gas_807", label %"$have_gas_808" + +"$out_of_gas_807": ; preds = %"$have_gas_803" + call void @_out_of_gas() + br label %"$have_gas_808" + +"$have_gas_808": ; preds = %"$out_of_gas_807", %"$have_gas_803" + %"$consume_809" = sub i64 %"$gasrem_805", 2 + store i64 %"$consume_809", i64* @_gasrem, align 8 + %"$$resopt_23_811" = load %TName_Option_Uint64*, %TName_Option_Uint64** %"$resopt_23", align 8 + %"$$resopt_23_tag_812" = getelementptr inbounds %TName_Option_Uint64, %TName_Option_Uint64* %"$$resopt_23_811", i32 0, i32 0 + %"$$resopt_23_tag_813" = load i8, i8* %"$$resopt_23_tag_812", align 1 + switch i8 %"$$resopt_23_tag_813", label %"$empty_default_814" [ + i8 0, label %"$Some_815" + i8 1, label %"$None_860" + ], !dbg !157 + +"$Some_815": ; preds = %"$have_gas_808" + %"$$resopt_23_816" = bitcast %TName_Option_Uint64* %"$$resopt_23_811" to %CName_Some_Uint64* + %"$res_gep_817" = getelementptr inbounds %CName_Some_Uint64, %CName_Some_Uint64* %"$$resopt_23_816", i32 0, i32 1 + %"$res_load_818" = load %Uint64, %Uint64* %"$res_gep_817", align 8 %res7 = alloca %Uint64, align 8 - store %Uint64 %"$res_load_816", %Uint64* %res7, align 8 - %"$gasrem_817" = load i64, i64* @_gasrem, align 8 - %"$gascmp_818" = icmp ugt i64 1, %"$gasrem_817" - br i1 %"$gascmp_818", label %"$out_of_gas_819", label %"$have_gas_820" + store %Uint64 %"$res_load_818", %Uint64* %res7, align 8 + %"$gasrem_819" = load i64, i64* @_gasrem, align 8 + %"$gascmp_820" = icmp ugt i64 1, %"$gasrem_819" + br i1 %"$gascmp_820", label %"$out_of_gas_821", label %"$have_gas_822" -"$out_of_gas_819": ; preds = %"$Some_813" +"$out_of_gas_821": ; preds = %"$Some_815" call void @_out_of_gas() - br label %"$have_gas_820" + br label %"$have_gas_822" -"$have_gas_820": ; preds = %"$out_of_gas_819", %"$Some_813" - %"$consume_821" = sub i64 %"$gasrem_817", 1 - store i64 %"$consume_821", i64* @_gasrem, align 8 +"$have_gas_822": ; preds = %"$out_of_gas_821", %"$Some_815" + %"$consume_823" = sub i64 %"$gasrem_819", 1 + store i64 %"$consume_823", i64* @_gasrem, align 8 %input_8 = alloca %Uint64, align 8 - %"$gasrem_822" = load i64, i64* @_gasrem, align 8 - %"$gascmp_823" = icmp ugt i64 1, %"$gasrem_822" - br i1 %"$gascmp_823", label %"$out_of_gas_824", label %"$have_gas_825" + call void @llvm.dbg.declare(metadata %Uint64* %input_8, metadata !158, metadata !DIExpression()), !dbg !161 + %"$gasrem_824" = load i64, i64* @_gasrem, align 8 + %"$gascmp_825" = icmp ugt i64 1, %"$gasrem_824" + br i1 %"$gascmp_825", label %"$out_of_gas_826", label %"$have_gas_827" -"$out_of_gas_824": ; preds = %"$have_gas_820" +"$out_of_gas_826": ; preds = %"$have_gas_822" call void @_out_of_gas() - br label %"$have_gas_825" + br label %"$have_gas_827" -"$have_gas_825": ; preds = %"$out_of_gas_824", %"$have_gas_820" - %"$consume_826" = sub i64 %"$gasrem_822", 1 - store i64 %"$consume_826", i64* @_gasrem, align 8 - store %Uint64 { i64 -1 }, %Uint64* %input_8, align 8, !dbg !81 - %"$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" +"$have_gas_827": ; preds = %"$out_of_gas_826", %"$have_gas_822" + %"$consume_828" = sub i64 %"$gasrem_824", 1 + store i64 %"$consume_828", i64* @_gasrem, align 8 + store %Uint64 { i64 -1 }, %Uint64* %input_8, align 8, !dbg !162 + %"$gasrem_829" = load i64, i64* @_gasrem, align 8 + %"$gascmp_830" = icmp ugt i64 1, %"$gasrem_829" + br i1 %"$gascmp_830", label %"$out_of_gas_831", label %"$have_gas_832" -"$out_of_gas_829": ; preds = %"$have_gas_825" +"$out_of_gas_831": ; preds = %"$have_gas_827" call void @_out_of_gas() - br label %"$have_gas_830" + br label %"$have_gas_832" -"$have_gas_830": ; preds = %"$out_of_gas_829", %"$have_gas_825" - %"$consume_831" = sub i64 %"$gasrem_827", 1 - store i64 %"$consume_831", i64* @_gasrem, align 8 +"$have_gas_832": ; preds = %"$out_of_gas_831", %"$have_gas_827" + %"$consume_833" = sub i64 %"$gasrem_829", 1 + store i64 %"$consume_833", i64* @_gasrem, align 8 %test_9 = alloca %TName_Bool*, align 8 - %"$gasrem_832" = load i64, i64* @_gasrem, align 8 - %"$gascmp_833" = icmp ugt i64 4, %"$gasrem_832" - br i1 %"$gascmp_833", label %"$out_of_gas_834", label %"$have_gas_835" - -"$out_of_gas_834": ; preds = %"$have_gas_830" - call void @_out_of_gas() - br label %"$have_gas_835" - -"$have_gas_835": ; preds = %"$out_of_gas_834", %"$have_gas_830" - %"$consume_836" = sub i64 %"$gasrem_832", 4 - store i64 %"$consume_836", i64* @_gasrem, align 8 - %"$execptr_load_837" = load i8*, i8** @_execptr, align 8 - %"$res_838" = load %Uint64, %Uint64* %res7, align 8 - %"$input__839" = load %Uint64, %Uint64* %input_8, align 8 - %"$eq_call_840" = call %TName_Bool* @_eq_Uint64(i8* %"$execptr_load_837", %Uint64 %"$res_838", %Uint64 %"$input__839"), !dbg !84 - store %TName_Bool* %"$eq_call_840", %TName_Bool** %test_9, align 8, !dbg !84 - %"$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_844": ; preds = %"$have_gas_835" - call void @_out_of_gas() - br label %"$have_gas_845" - -"$have_gas_845": ; preds = %"$out_of_gas_844", %"$have_gas_835" - %"$consume_846" = sub i64 %"$gasrem_842", 1 - store i64 %"$consume_846", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %test_9, metadata !163, metadata !DIExpression()), !dbg !164 + %"$gasrem_834" = load i64, i64* @_gasrem, align 8 + %"$gascmp_835" = icmp ugt i64 4, %"$gasrem_834" + br i1 %"$gascmp_835", label %"$out_of_gas_836", label %"$have_gas_837" + +"$out_of_gas_836": ; preds = %"$have_gas_832" + call void @_out_of_gas() + br label %"$have_gas_837" + +"$have_gas_837": ; preds = %"$out_of_gas_836", %"$have_gas_832" + %"$consume_838" = sub i64 %"$gasrem_834", 4 + store i64 %"$consume_838", i64* @_gasrem, align 8 + %"$execptr_load_839" = load i8*, i8** @_execptr, align 8 + %"$res_840" = load %Uint64, %Uint64* %res7, align 8 + %"$input__841" = load %Uint64, %Uint64* %input_8, align 8 + %"$eq_call_842" = call %TName_Bool* @_eq_Uint64(i8* %"$execptr_load_839", %Uint64 %"$res_840", %Uint64 %"$input__841"), !dbg !165 + store %TName_Bool* %"$eq_call_842", %TName_Bool** %test_9, align 8, !dbg !165 + %"$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_846": ; preds = %"$have_gas_837" + call void @_out_of_gas() + br label %"$have_gas_847" + +"$have_gas_847": ; preds = %"$out_of_gas_846", %"$have_gas_837" + %"$consume_848" = sub i64 %"$gasrem_844", 1 + store i64 %"$consume_848", i64* @_gasrem, align 8 %"$BoolUtils.andb_90" = alloca { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, align 8 - %"$BoolUtils.andb_847" = 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_848" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_847", 0 - %"$BoolUtils.andb_envptr_849" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_847", 1 - %"$$test_21_850" = load %TName_Bool*, %TName_Bool** %"$test_21", align 8 - %"$BoolUtils.andb_call_851" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_848"(i8* %"$BoolUtils.andb_envptr_849", %TName_Bool* %"$$test_21_850"), !dbg !85 - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_851", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_90", align 8, !dbg !85 + %"$BoolUtils.andb_849" = 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_850" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_849", 0 + %"$BoolUtils.andb_envptr_851" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_849", 1 + %"$$test_21_852" = load %TName_Bool*, %TName_Bool** %"$test_21", align 8 + %"$BoolUtils.andb_call_853" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_850"(i8* %"$BoolUtils.andb_envptr_851", %TName_Bool* %"$$test_21_852"), !dbg !166 + store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_853", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_90", align 8, !dbg !166 %"$BoolUtils.andb_91" = alloca %TName_Bool*, align 8 - %"$$BoolUtils.andb_90_852" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_90", align 8 - %"$$BoolUtils.andb_90_fptr_853" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_90_852", 0 - %"$$BoolUtils.andb_90_envptr_854" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_90_852", 1 - %"$test__855" = load %TName_Bool*, %TName_Bool** %test_9, align 8 - %"$$BoolUtils.andb_90_call_856" = call %TName_Bool* %"$$BoolUtils.andb_90_fptr_853"(i8* %"$$BoolUtils.andb_90_envptr_854", %TName_Bool* %"$test__855"), !dbg !85 - store %TName_Bool* %"$$BoolUtils.andb_90_call_856", %TName_Bool** %"$BoolUtils.andb_91", align 8, !dbg !85 - %"$$BoolUtils.andb_91_857" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_91", align 8 - store %TName_Bool* %"$$BoolUtils.andb_91_857", %TName_Bool** %"$test_24", align 8, !dbg !85 - br label %"$matchsucc_808" - -"$None_858": ; preds = %"$have_gas_806" - %"$$resopt_23_859" = bitcast %TName_Option_Uint64* %"$$resopt_23_809" to %CName_None_Uint64* - %"$gasrem_860" = load i64, i64* @_gasrem, align 8 - %"$gascmp_861" = icmp ugt i64 1, %"$gasrem_860" - br i1 %"$gascmp_861", label %"$out_of_gas_862", label %"$have_gas_863" - -"$out_of_gas_862": ; preds = %"$None_858" - call void @_out_of_gas() - br label %"$have_gas_863" - -"$have_gas_863": ; preds = %"$out_of_gas_862", %"$None_858" - %"$consume_864" = sub i64 %"$gasrem_860", 1 - store i64 %"$consume_864", i64* @_gasrem, align 8 - %"$false_865" = load %TName_Bool*, %TName_Bool** %false, align 8 - store %TName_Bool* %"$false_865", %TName_Bool** %"$test_24", align 8, !dbg !86 - br label %"$matchsucc_808" - -"$empty_default_812": ; preds = %"$have_gas_806" - br label %"$matchsucc_808" - -"$matchsucc_808": ; preds = %"$have_gas_863", %"$have_gas_845", %"$empty_default_812" - %"$gasrem_866" = load i64, i64* @_gasrem, align 8 - %"$gascmp_867" = icmp ugt i64 1, %"$gasrem_866" - br i1 %"$gascmp_867", label %"$out_of_gas_868", label %"$have_gas_869" - -"$out_of_gas_868": ; preds = %"$matchsucc_808" - call void @_out_of_gas() - br label %"$have_gas_869" - -"$have_gas_869": ; preds = %"$out_of_gas_868", %"$matchsucc_808" - %"$consume_870" = sub i64 %"$gasrem_866", 1 - store i64 %"$consume_870", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$BoolUtils.andb_91", metadata !167, metadata !DIExpression()), !dbg !166 + %"$$BoolUtils.andb_90_854" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_90", align 8 + %"$$BoolUtils.andb_90_fptr_855" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_90_854", 0 + %"$$BoolUtils.andb_90_envptr_856" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_90_854", 1 + %"$test__857" = load %TName_Bool*, %TName_Bool** %test_9, align 8 + %"$$BoolUtils.andb_90_call_858" = call %TName_Bool* %"$$BoolUtils.andb_90_fptr_855"(i8* %"$$BoolUtils.andb_90_envptr_856", %TName_Bool* %"$test__857"), !dbg !166 + store %TName_Bool* %"$$BoolUtils.andb_90_call_858", %TName_Bool** %"$BoolUtils.andb_91", align 8, !dbg !166 + %"$$BoolUtils.andb_91_859" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_91", align 8 + store %TName_Bool* %"$$BoolUtils.andb_91_859", %TName_Bool** %"$test_24", align 8, !dbg !166 + br label %"$matchsucc_810" + +"$None_860": ; preds = %"$have_gas_808" + %"$$resopt_23_861" = bitcast %TName_Option_Uint64* %"$$resopt_23_811" to %CName_None_Uint64* + %"$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_864": ; preds = %"$None_860" + call void @_out_of_gas() + br label %"$have_gas_865" + +"$have_gas_865": ; preds = %"$out_of_gas_864", %"$None_860" + %"$consume_866" = sub i64 %"$gasrem_862", 1 + store i64 %"$consume_866", i64* @_gasrem, align 8 + %"$false_867" = load %TName_Bool*, %TName_Bool** %false, align 8 + store %TName_Bool* %"$false_867", %TName_Bool** %"$test_24", align 8, !dbg !168 + br label %"$matchsucc_810" + +"$empty_default_814": ; preds = %"$have_gas_808" + br label %"$matchsucc_810" + +"$matchsucc_810": ; preds = %"$have_gas_865", %"$have_gas_847", %"$empty_default_814" + %"$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 = %"$matchsucc_810" + call void @_out_of_gas() + br label %"$have_gas_871" + +"$have_gas_871": ; preds = %"$out_of_gas_870", %"$matchsucc_810" + %"$consume_872" = sub i64 %"$gasrem_868", 1 + store i64 %"$consume_872", i64* @_gasrem, align 8 %"$input_25" = alloca %Uint128, 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" + call void @llvm.dbg.declare(metadata %Uint128* %"$input_25", metadata !170, metadata !DIExpression()), !dbg !171 + %"$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_873": ; preds = %"$have_gas_869" +"$out_of_gas_875": ; preds = %"$have_gas_871" call void @_out_of_gas() - br label %"$have_gas_874" + br label %"$have_gas_876" -"$have_gas_874": ; preds = %"$out_of_gas_873", %"$have_gas_869" - %"$consume_875" = sub i64 %"$gasrem_871", 1 - store i64 %"$consume_875", i64* @_gasrem, align 8 - store %Uint128 { i128 18446744073709551615 }, %Uint128* %"$input_25", align 8, !dbg !88 - %"$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" +"$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 + store %Uint128 { i128 18446744073709551615 }, %Uint128* %"$input_25", align 8, !dbg !172 + %"$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_878": ; preds = %"$have_gas_874" +"$out_of_gas_880": ; preds = %"$have_gas_876" call void @_out_of_gas() - br label %"$have_gas_879" + br label %"$have_gas_881" -"$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 +"$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 %"$resopt_26" = alloca %TName_Option_Uint64*, align 8 - %"$gasrem_881" = load i64, i64* @_gasrem, align 8 - %"$gascmp_882" = icmp ugt i64 4, %"$gasrem_881" - br i1 %"$gascmp_882", label %"$out_of_gas_883", label %"$have_gas_884" - -"$out_of_gas_883": ; preds = %"$have_gas_879" - call void @_out_of_gas() - br label %"$have_gas_884" - -"$have_gas_884": ; preds = %"$out_of_gas_883", %"$have_gas_879" - %"$consume_885" = sub i64 %"$gasrem_881", 4 - store i64 %"$consume_885", i64* @_gasrem, align 8 - %"$execptr_load_886" = load i8*, i8** @_execptr, align 8 - %"$to_uint64_$input_25_887" = alloca %Uint128, align 8 - %"$$input_25_888" = load %Uint128, %Uint128* %"$input_25", align 8 - store %Uint128 %"$$input_25_888", %Uint128* %"$to_uint64_$input_25_887", align 8 - %"$$to_uint64_$input_25_887_889" = bitcast %Uint128* %"$to_uint64_$input_25_887" to i8* - %"$to_uint64_call_890" = call i8* @_to_uint64(i8* %"$execptr_load_886", %_TyDescrTy_Typ* @"$TyDescr_Uint128_125", i8* %"$$to_uint64_$input_25_887_889"), !dbg !89 - %"$to_uint64_891" = bitcast i8* %"$to_uint64_call_890" to %TName_Option_Uint64* - store %TName_Option_Uint64* %"$to_uint64_891", %TName_Option_Uint64** %"$resopt_26", align 8, !dbg !89 - %"$gasrem_892" = load i64, i64* @_gasrem, align 8 - %"$gascmp_893" = icmp ugt i64 1, %"$gasrem_892" - br i1 %"$gascmp_893", label %"$out_of_gas_894", label %"$have_gas_895" - -"$out_of_gas_894": ; preds = %"$have_gas_884" - call void @_out_of_gas() - br label %"$have_gas_895" - -"$have_gas_895": ; preds = %"$out_of_gas_894", %"$have_gas_884" - %"$consume_896" = sub i64 %"$gasrem_892", 1 - store i64 %"$consume_896", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Option_Uint64** %"$resopt_26", metadata !173, metadata !DIExpression()), !dbg !174 + %"$gasrem_883" = load i64, i64* @_gasrem, align 8 + %"$gascmp_884" = icmp ugt i64 4, %"$gasrem_883" + br i1 %"$gascmp_884", label %"$out_of_gas_885", label %"$have_gas_886" + +"$out_of_gas_885": ; preds = %"$have_gas_881" + call void @_out_of_gas() + br label %"$have_gas_886" + +"$have_gas_886": ; preds = %"$out_of_gas_885", %"$have_gas_881" + %"$consume_887" = sub i64 %"$gasrem_883", 4 + store i64 %"$consume_887", i64* @_gasrem, align 8 + %"$execptr_load_888" = load i8*, i8** @_execptr, align 8 + %"$to_uint64_$input_25_889" = alloca %Uint128, align 8 + %"$$input_25_890" = load %Uint128, %Uint128* %"$input_25", align 8 + store %Uint128 %"$$input_25_890", %Uint128* %"$to_uint64_$input_25_889", align 8 + %"$$to_uint64_$input_25_889_891" = bitcast %Uint128* %"$to_uint64_$input_25_889" to i8* + %"$to_uint64_call_892" = call i8* @_to_uint64(i8* %"$execptr_load_888", %_TyDescrTy_Typ* @"$TyDescr_Uint128_125", i8* %"$$to_uint64_$input_25_889_891"), !dbg !175 + %"$to_uint64_893" = bitcast i8* %"$to_uint64_call_892" to %TName_Option_Uint64* + store %TName_Option_Uint64* %"$to_uint64_893", %TName_Option_Uint64** %"$resopt_26", align 8, !dbg !175 + %"$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_886" + call void @_out_of_gas() + br label %"$have_gas_897" + +"$have_gas_897": ; preds = %"$out_of_gas_896", %"$have_gas_886" + %"$consume_898" = sub i64 %"$gasrem_894", 1 + store i64 %"$consume_898", i64* @_gasrem, align 8 %"$test_27" = alloca %TName_Bool*, align 8 - %"$gasrem_897" = load i64, i64* @_gasrem, align 8 - %"$gascmp_898" = icmp ugt i64 2, %"$gasrem_897" - br i1 %"$gascmp_898", label %"$out_of_gas_899", label %"$have_gas_900" - -"$out_of_gas_899": ; preds = %"$have_gas_895" - call void @_out_of_gas() - br label %"$have_gas_900" - -"$have_gas_900": ; preds = %"$out_of_gas_899", %"$have_gas_895" - %"$consume_901" = sub i64 %"$gasrem_897", 2 - store i64 %"$consume_901", i64* @_gasrem, align 8 - %"$$resopt_26_903" = load %TName_Option_Uint64*, %TName_Option_Uint64** %"$resopt_26", align 8 - %"$$resopt_26_tag_904" = getelementptr inbounds %TName_Option_Uint64, %TName_Option_Uint64* %"$$resopt_26_903", i32 0, i32 0 - %"$$resopt_26_tag_905" = load i8, i8* %"$$resopt_26_tag_904", align 1 - switch i8 %"$$resopt_26_tag_905", label %"$empty_default_906" [ - i8 0, label %"$Some_907" - i8 1, label %"$None_952" - ], !dbg !90 - -"$Some_907": ; preds = %"$have_gas_900" - %"$$resopt_26_908" = bitcast %TName_Option_Uint64* %"$$resopt_26_903" to %CName_Some_Uint64* - %"$res_gep_909" = getelementptr inbounds %CName_Some_Uint64, %CName_Some_Uint64* %"$$resopt_26_908", i32 0, i32 1 - %"$res_load_910" = load %Uint64, %Uint64* %"$res_gep_909", align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$test_27", metadata !176, metadata !DIExpression()), !dbg !177 + %"$gasrem_899" = load i64, i64* @_gasrem, align 8 + %"$gascmp_900" = icmp ugt i64 2, %"$gasrem_899" + br i1 %"$gascmp_900", label %"$out_of_gas_901", label %"$have_gas_902" + +"$out_of_gas_901": ; preds = %"$have_gas_897" + call void @_out_of_gas() + br label %"$have_gas_902" + +"$have_gas_902": ; preds = %"$out_of_gas_901", %"$have_gas_897" + %"$consume_903" = sub i64 %"$gasrem_899", 2 + store i64 %"$consume_903", i64* @_gasrem, align 8 + %"$$resopt_26_905" = load %TName_Option_Uint64*, %TName_Option_Uint64** %"$resopt_26", align 8 + %"$$resopt_26_tag_906" = getelementptr inbounds %TName_Option_Uint64, %TName_Option_Uint64* %"$$resopt_26_905", i32 0, i32 0 + %"$$resopt_26_tag_907" = load i8, i8* %"$$resopt_26_tag_906", align 1 + switch i8 %"$$resopt_26_tag_907", label %"$empty_default_908" [ + i8 0, label %"$Some_909" + i8 1, label %"$None_954" + ], !dbg !178 + +"$Some_909": ; preds = %"$have_gas_902" + %"$$resopt_26_910" = bitcast %TName_Option_Uint64* %"$$resopt_26_905" to %CName_Some_Uint64* + %"$res_gep_911" = getelementptr inbounds %CName_Some_Uint64, %CName_Some_Uint64* %"$$resopt_26_910", i32 0, i32 1 + %"$res_load_912" = load %Uint64, %Uint64* %"$res_gep_911", align 8 %res10 = alloca %Uint64, align 8 - store %Uint64 %"$res_load_910", %Uint64* %res10, align 8 - %"$gasrem_911" = load i64, i64* @_gasrem, align 8 - %"$gascmp_912" = icmp ugt i64 1, %"$gasrem_911" - br i1 %"$gascmp_912", label %"$out_of_gas_913", label %"$have_gas_914" + store %Uint64 %"$res_load_912", %Uint64* %res10, 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_913": ; preds = %"$Some_907" +"$out_of_gas_915": ; preds = %"$Some_909" call void @_out_of_gas() - br label %"$have_gas_914" + br label %"$have_gas_916" -"$have_gas_914": ; preds = %"$out_of_gas_913", %"$Some_907" - %"$consume_915" = sub i64 %"$gasrem_911", 1 - store i64 %"$consume_915", i64* @_gasrem, align 8 +"$have_gas_916": ; preds = %"$out_of_gas_915", %"$Some_909" + %"$consume_917" = sub i64 %"$gasrem_913", 1 + store i64 %"$consume_917", i64* @_gasrem, align 8 %input_11 = alloca %Uint64, align 8 - %"$gasrem_916" = load i64, i64* @_gasrem, align 8 - %"$gascmp_917" = icmp ugt i64 1, %"$gasrem_916" - br i1 %"$gascmp_917", label %"$out_of_gas_918", label %"$have_gas_919" + call void @llvm.dbg.declare(metadata %Uint64* %input_11, metadata !179, metadata !DIExpression()), !dbg !182 + %"$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_918": ; preds = %"$have_gas_914" +"$out_of_gas_920": ; preds = %"$have_gas_916" call void @_out_of_gas() - br label %"$have_gas_919" + br label %"$have_gas_921" -"$have_gas_919": ; preds = %"$out_of_gas_918", %"$have_gas_914" - %"$consume_920" = sub i64 %"$gasrem_916", 1 - store i64 %"$consume_920", i64* @_gasrem, align 8 - store %Uint64 { i64 -1 }, %Uint64* %input_11, align 8, !dbg !91 - %"$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" +"$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 %Uint64 { i64 -1 }, %Uint64* %input_11, align 8, !dbg !183 + %"$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_923": ; preds = %"$have_gas_919" +"$out_of_gas_925": ; preds = %"$have_gas_921" call void @_out_of_gas() - br label %"$have_gas_924" + br label %"$have_gas_926" -"$have_gas_924": ; preds = %"$out_of_gas_923", %"$have_gas_919" - %"$consume_925" = sub i64 %"$gasrem_921", 1 - store i64 %"$consume_925", i64* @_gasrem, align 8 +"$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 %test_12 = alloca %TName_Bool*, align 8 - %"$gasrem_926" = load i64, i64* @_gasrem, align 8 - %"$gascmp_927" = icmp ugt i64 4, %"$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", 4 - store i64 %"$consume_930", i64* @_gasrem, align 8 - %"$execptr_load_931" = load i8*, i8** @_execptr, align 8 - %"$res_932" = load %Uint64, %Uint64* %res10, align 8 - %"$input__933" = load %Uint64, %Uint64* %input_11, align 8 - %"$eq_call_934" = call %TName_Bool* @_eq_Uint64(i8* %"$execptr_load_931", %Uint64 %"$res_932", %Uint64 %"$input__933"), !dbg !94 - store %TName_Bool* %"$eq_call_934", %TName_Bool** %test_12, align 8, !dbg !94 - %"$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_929" - call void @_out_of_gas() - br label %"$have_gas_939" - -"$have_gas_939": ; preds = %"$out_of_gas_938", %"$have_gas_929" - %"$consume_940" = sub i64 %"$gasrem_936", 1 - store i64 %"$consume_940", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %test_12, metadata !184, metadata !DIExpression()), !dbg !185 + %"$gasrem_928" = load i64, i64* @_gasrem, align 8 + %"$gascmp_929" = icmp ugt i64 4, %"$gasrem_928" + br i1 %"$gascmp_929", label %"$out_of_gas_930", label %"$have_gas_931" + +"$out_of_gas_930": ; preds = %"$have_gas_926" + call void @_out_of_gas() + br label %"$have_gas_931" + +"$have_gas_931": ; preds = %"$out_of_gas_930", %"$have_gas_926" + %"$consume_932" = sub i64 %"$gasrem_928", 4 + store i64 %"$consume_932", i64* @_gasrem, align 8 + %"$execptr_load_933" = load i8*, i8** @_execptr, align 8 + %"$res_934" = load %Uint64, %Uint64* %res10, align 8 + %"$input__935" = load %Uint64, %Uint64* %input_11, align 8 + %"$eq_call_936" = call %TName_Bool* @_eq_Uint64(i8* %"$execptr_load_933", %Uint64 %"$res_934", %Uint64 %"$input__935"), !dbg !186 + store %TName_Bool* %"$eq_call_936", %TName_Bool** %test_12, align 8, !dbg !186 + %"$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_931" + call void @_out_of_gas() + br label %"$have_gas_941" + +"$have_gas_941": ; preds = %"$out_of_gas_940", %"$have_gas_931" + %"$consume_942" = sub i64 %"$gasrem_938", 1 + store i64 %"$consume_942", i64* @_gasrem, align 8 %"$BoolUtils.andb_92" = alloca { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, align 8 - %"$BoolUtils.andb_941" = 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_942" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_941", 0 - %"$BoolUtils.andb_envptr_943" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_941", 1 - %"$$test_24_944" = load %TName_Bool*, %TName_Bool** %"$test_24", align 8 - %"$BoolUtils.andb_call_945" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_942"(i8* %"$BoolUtils.andb_envptr_943", %TName_Bool* %"$$test_24_944"), !dbg !95 - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_945", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_92", align 8, !dbg !95 + %"$BoolUtils.andb_943" = 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_944" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_943", 0 + %"$BoolUtils.andb_envptr_945" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_943", 1 + %"$$test_24_946" = load %TName_Bool*, %TName_Bool** %"$test_24", align 8 + %"$BoolUtils.andb_call_947" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_944"(i8* %"$BoolUtils.andb_envptr_945", %TName_Bool* %"$$test_24_946"), !dbg !187 + store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_947", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_92", align 8, !dbg !187 %"$BoolUtils.andb_93" = alloca %TName_Bool*, align 8 - %"$$BoolUtils.andb_92_946" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_92", align 8 - %"$$BoolUtils.andb_92_fptr_947" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_92_946", 0 - %"$$BoolUtils.andb_92_envptr_948" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_92_946", 1 - %"$test__949" = load %TName_Bool*, %TName_Bool** %test_12, align 8 - %"$$BoolUtils.andb_92_call_950" = call %TName_Bool* %"$$BoolUtils.andb_92_fptr_947"(i8* %"$$BoolUtils.andb_92_envptr_948", %TName_Bool* %"$test__949"), !dbg !95 - store %TName_Bool* %"$$BoolUtils.andb_92_call_950", %TName_Bool** %"$BoolUtils.andb_93", align 8, !dbg !95 - %"$$BoolUtils.andb_93_951" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_93", align 8 - store %TName_Bool* %"$$BoolUtils.andb_93_951", %TName_Bool** %"$test_27", align 8, !dbg !95 - br label %"$matchsucc_902" - -"$None_952": ; preds = %"$have_gas_900" - %"$$resopt_26_953" = bitcast %TName_Option_Uint64* %"$$resopt_26_903" to %CName_None_Uint64* - %"$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 = %"$None_952" - call void @_out_of_gas() - br label %"$have_gas_957" - -"$have_gas_957": ; preds = %"$out_of_gas_956", %"$None_952" - %"$consume_958" = sub i64 %"$gasrem_954", 1 - store i64 %"$consume_958", i64* @_gasrem, align 8 - %"$false_959" = load %TName_Bool*, %TName_Bool** %false, align 8 - store %TName_Bool* %"$false_959", %TName_Bool** %"$test_27", align 8, !dbg !96 - br label %"$matchsucc_902" - -"$empty_default_906": ; preds = %"$have_gas_900" - br label %"$matchsucc_902" - -"$matchsucc_902": ; preds = %"$have_gas_957", %"$have_gas_939", %"$empty_default_906" - %"$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 = %"$matchsucc_902" - call void @_out_of_gas() - br label %"$have_gas_963" - -"$have_gas_963": ; preds = %"$out_of_gas_962", %"$matchsucc_902" - %"$consume_964" = sub i64 %"$gasrem_960", 1 - store i64 %"$consume_964", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$BoolUtils.andb_93", metadata !188, metadata !DIExpression()), !dbg !187 + %"$$BoolUtils.andb_92_948" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_92", align 8 + %"$$BoolUtils.andb_92_fptr_949" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_92_948", 0 + %"$$BoolUtils.andb_92_envptr_950" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_92_948", 1 + %"$test__951" = load %TName_Bool*, %TName_Bool** %test_12, align 8 + %"$$BoolUtils.andb_92_call_952" = call %TName_Bool* %"$$BoolUtils.andb_92_fptr_949"(i8* %"$$BoolUtils.andb_92_envptr_950", %TName_Bool* %"$test__951"), !dbg !187 + store %TName_Bool* %"$$BoolUtils.andb_92_call_952", %TName_Bool** %"$BoolUtils.andb_93", align 8, !dbg !187 + %"$$BoolUtils.andb_93_953" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_93", align 8 + store %TName_Bool* %"$$BoolUtils.andb_93_953", %TName_Bool** %"$test_27", align 8, !dbg !187 + br label %"$matchsucc_904" + +"$None_954": ; preds = %"$have_gas_902" + %"$$resopt_26_955" = bitcast %TName_Option_Uint64* %"$$resopt_26_905" to %CName_None_Uint64* + %"$gasrem_956" = load i64, i64* @_gasrem, align 8 + %"$gascmp_957" = icmp ugt i64 1, %"$gasrem_956" + br i1 %"$gascmp_957", label %"$out_of_gas_958", label %"$have_gas_959" + +"$out_of_gas_958": ; preds = %"$None_954" + call void @_out_of_gas() + br label %"$have_gas_959" + +"$have_gas_959": ; preds = %"$out_of_gas_958", %"$None_954" + %"$consume_960" = sub i64 %"$gasrem_956", 1 + store i64 %"$consume_960", i64* @_gasrem, align 8 + %"$false_961" = load %TName_Bool*, %TName_Bool** %false, align 8 + store %TName_Bool* %"$false_961", %TName_Bool** %"$test_27", align 8, !dbg !189 + br label %"$matchsucc_904" + +"$empty_default_908": ; preds = %"$have_gas_902" + br label %"$matchsucc_904" + +"$matchsucc_904": ; preds = %"$have_gas_959", %"$have_gas_941", %"$empty_default_908" + %"$gasrem_962" = load i64, i64* @_gasrem, align 8 + %"$gascmp_963" = icmp ugt i64 1, %"$gasrem_962" + br i1 %"$gascmp_963", label %"$out_of_gas_964", label %"$have_gas_965" + +"$out_of_gas_964": ; preds = %"$matchsucc_904" + call void @_out_of_gas() + br label %"$have_gas_965" + +"$have_gas_965": ; preds = %"$out_of_gas_964", %"$matchsucc_904" + %"$consume_966" = sub i64 %"$gasrem_962", 1 + store i64 %"$consume_966", i64* @_gasrem, align 8 %"$input_28" = alloca %Uint128, align 8 - %"$gasrem_965" = load i64, i64* @_gasrem, align 8 - %"$gascmp_966" = icmp ugt i64 1, %"$gasrem_965" - br i1 %"$gascmp_966", label %"$out_of_gas_967", label %"$have_gas_968" + call void @llvm.dbg.declare(metadata %Uint128* %"$input_28", metadata !191, metadata !DIExpression()), !dbg !192 + %"$gasrem_967" = load i64, i64* @_gasrem, align 8 + %"$gascmp_968" = icmp ugt i64 1, %"$gasrem_967" + br i1 %"$gascmp_968", label %"$out_of_gas_969", label %"$have_gas_970" -"$out_of_gas_967": ; preds = %"$have_gas_963" +"$out_of_gas_969": ; preds = %"$have_gas_965" call void @_out_of_gas() - br label %"$have_gas_968" + br label %"$have_gas_970" -"$have_gas_968": ; preds = %"$out_of_gas_967", %"$have_gas_963" - %"$consume_969" = sub i64 %"$gasrem_965", 1 - store i64 %"$consume_969", i64* @_gasrem, align 8 - store %Uint128 { i128 18446744073709551616 }, %Uint128* %"$input_28", align 8, !dbg !98 - %"$gasrem_970" = load i64, i64* @_gasrem, align 8 - %"$gascmp_971" = icmp ugt i64 1, %"$gasrem_970" - br i1 %"$gascmp_971", label %"$out_of_gas_972", label %"$have_gas_973" +"$have_gas_970": ; preds = %"$out_of_gas_969", %"$have_gas_965" + %"$consume_971" = sub i64 %"$gasrem_967", 1 + store i64 %"$consume_971", i64* @_gasrem, align 8 + store %Uint128 { i128 18446744073709551616 }, %Uint128* %"$input_28", align 8, !dbg !193 + %"$gasrem_972" = load i64, i64* @_gasrem, align 8 + %"$gascmp_973" = icmp ugt i64 1, %"$gasrem_972" + br i1 %"$gascmp_973", label %"$out_of_gas_974", label %"$have_gas_975" -"$out_of_gas_972": ; preds = %"$have_gas_968" +"$out_of_gas_974": ; preds = %"$have_gas_970" call void @_out_of_gas() - br label %"$have_gas_973" + br label %"$have_gas_975" -"$have_gas_973": ; preds = %"$out_of_gas_972", %"$have_gas_968" - %"$consume_974" = sub i64 %"$gasrem_970", 1 - store i64 %"$consume_974", i64* @_gasrem, align 8 +"$have_gas_975": ; preds = %"$out_of_gas_974", %"$have_gas_970" + %"$consume_976" = sub i64 %"$gasrem_972", 1 + store i64 %"$consume_976", i64* @_gasrem, align 8 %"$resopt_29" = alloca %TName_Option_Uint64*, align 8 - %"$gasrem_975" = load i64, i64* @_gasrem, align 8 - %"$gascmp_976" = icmp ugt i64 4, %"$gasrem_975" - br i1 %"$gascmp_976", label %"$out_of_gas_977", label %"$have_gas_978" - -"$out_of_gas_977": ; preds = %"$have_gas_973" - call void @_out_of_gas() - br label %"$have_gas_978" - -"$have_gas_978": ; preds = %"$out_of_gas_977", %"$have_gas_973" - %"$consume_979" = sub i64 %"$gasrem_975", 4 - store i64 %"$consume_979", i64* @_gasrem, align 8 - %"$execptr_load_980" = load i8*, i8** @_execptr, align 8 - %"$to_uint64_$input_28_981" = alloca %Uint128, align 8 - %"$$input_28_982" = load %Uint128, %Uint128* %"$input_28", align 8 - store %Uint128 %"$$input_28_982", %Uint128* %"$to_uint64_$input_28_981", align 8 - %"$$to_uint64_$input_28_981_983" = bitcast %Uint128* %"$to_uint64_$input_28_981" to i8* - %"$to_uint64_call_984" = call i8* @_to_uint64(i8* %"$execptr_load_980", %_TyDescrTy_Typ* @"$TyDescr_Uint128_125", i8* %"$$to_uint64_$input_28_981_983"), !dbg !99 - %"$to_uint64_985" = bitcast i8* %"$to_uint64_call_984" to %TName_Option_Uint64* - store %TName_Option_Uint64* %"$to_uint64_985", %TName_Option_Uint64** %"$resopt_29", align 8, !dbg !99 - %"$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_978" - call void @_out_of_gas() - br label %"$have_gas_989" - -"$have_gas_989": ; preds = %"$out_of_gas_988", %"$have_gas_978" - %"$consume_990" = sub i64 %"$gasrem_986", 1 - store i64 %"$consume_990", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Option_Uint64** %"$resopt_29", metadata !194, metadata !DIExpression()), !dbg !195 + %"$gasrem_977" = load i64, i64* @_gasrem, align 8 + %"$gascmp_978" = icmp ugt i64 4, %"$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", 4 + store i64 %"$consume_981", i64* @_gasrem, align 8 + %"$execptr_load_982" = load i8*, i8** @_execptr, align 8 + %"$to_uint64_$input_28_983" = alloca %Uint128, align 8 + %"$$input_28_984" = load %Uint128, %Uint128* %"$input_28", align 8 + store %Uint128 %"$$input_28_984", %Uint128* %"$to_uint64_$input_28_983", align 8 + %"$$to_uint64_$input_28_983_985" = bitcast %Uint128* %"$to_uint64_$input_28_983" to i8* + %"$to_uint64_call_986" = call i8* @_to_uint64(i8* %"$execptr_load_982", %_TyDescrTy_Typ* @"$TyDescr_Uint128_125", i8* %"$$to_uint64_$input_28_983_985"), !dbg !196 + %"$to_uint64_987" = bitcast i8* %"$to_uint64_call_986" to %TName_Option_Uint64* + store %TName_Option_Uint64* %"$to_uint64_987", %TName_Option_Uint64** %"$resopt_29", align 8, !dbg !196 + %"$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 = %"$have_gas_980" + call void @_out_of_gas() + br label %"$have_gas_991" + +"$have_gas_991": ; preds = %"$out_of_gas_990", %"$have_gas_980" + %"$consume_992" = sub i64 %"$gasrem_988", 1 + store i64 %"$consume_992", i64* @_gasrem, align 8 %"$test_30" = alloca %TName_Bool*, align 8 - %"$gasrem_991" = load i64, i64* @_gasrem, align 8 - %"$gascmp_992" = icmp ugt i64 2, %"$gasrem_991" - br i1 %"$gascmp_992", label %"$out_of_gas_993", label %"$have_gas_994" - -"$out_of_gas_993": ; preds = %"$have_gas_989" - call void @_out_of_gas() - br label %"$have_gas_994" - -"$have_gas_994": ; preds = %"$out_of_gas_993", %"$have_gas_989" - %"$consume_995" = sub i64 %"$gasrem_991", 2 - store i64 %"$consume_995", i64* @_gasrem, align 8 - %"$$resopt_29_997" = load %TName_Option_Uint64*, %TName_Option_Uint64** %"$resopt_29", align 8 - %"$$resopt_29_tag_998" = getelementptr inbounds %TName_Option_Uint64, %TName_Option_Uint64* %"$$resopt_29_997", i32 0, i32 0 - %"$$resopt_29_tag_999" = load i8, i8* %"$$resopt_29_tag_998", align 1 - switch i8 %"$$resopt_29_tag_999", label %"$empty_default_1000" [ - i8 0, label %"$Some_1001" - i8 1, label %"$None_1011" - ], !dbg !100 - -"$Some_1001": ; preds = %"$have_gas_994" - %"$$resopt_29_1002" = bitcast %TName_Option_Uint64* %"$$resopt_29_997" to %CName_Some_Uint64* - %"$$$resopt_29_76_gep_1003" = getelementptr inbounds %CName_Some_Uint64, %CName_Some_Uint64* %"$$resopt_29_1002", i32 0, i32 1 - %"$$$resopt_29_76_load_1004" = load %Uint64, %Uint64* %"$$$resopt_29_76_gep_1003", align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$test_30", metadata !197, metadata !DIExpression()), !dbg !198 + %"$gasrem_993" = load i64, i64* @_gasrem, align 8 + %"$gascmp_994" = icmp ugt i64 2, %"$gasrem_993" + br i1 %"$gascmp_994", label %"$out_of_gas_995", label %"$have_gas_996" + +"$out_of_gas_995": ; preds = %"$have_gas_991" + call void @_out_of_gas() + br label %"$have_gas_996" + +"$have_gas_996": ; preds = %"$out_of_gas_995", %"$have_gas_991" + %"$consume_997" = sub i64 %"$gasrem_993", 2 + store i64 %"$consume_997", i64* @_gasrem, align 8 + %"$$resopt_29_999" = load %TName_Option_Uint64*, %TName_Option_Uint64** %"$resopt_29", align 8 + %"$$resopt_29_tag_1000" = getelementptr inbounds %TName_Option_Uint64, %TName_Option_Uint64* %"$$resopt_29_999", i32 0, i32 0 + %"$$resopt_29_tag_1001" = load i8, i8* %"$$resopt_29_tag_1000", align 1 + switch i8 %"$$resopt_29_tag_1001", label %"$empty_default_1002" [ + i8 0, label %"$Some_1003" + i8 1, label %"$None_1013" + ], !dbg !199 + +"$Some_1003": ; preds = %"$have_gas_996" + %"$$resopt_29_1004" = bitcast %TName_Option_Uint64* %"$$resopt_29_999" to %CName_Some_Uint64* + %"$$$resopt_29_76_gep_1005" = getelementptr inbounds %CName_Some_Uint64, %CName_Some_Uint64* %"$$resopt_29_1004", i32 0, i32 1 + %"$$$resopt_29_76_load_1006" = load %Uint64, %Uint64* %"$$$resopt_29_76_gep_1005", align 8 %"$$resopt_29_76" = alloca %Uint64, align 8 - store %Uint64 %"$$$resopt_29_76_load_1004", %Uint64* %"$$resopt_29_76", align 8 - %"$gasrem_1005" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1006" = icmp ugt i64 1, %"$gasrem_1005" - br i1 %"$gascmp_1006", label %"$out_of_gas_1007", label %"$have_gas_1008" + store %Uint64 %"$$$resopt_29_76_load_1006", %Uint64* %"$$resopt_29_76", align 8 + %"$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_1007": ; preds = %"$Some_1001" +"$out_of_gas_1009": ; preds = %"$Some_1003" call void @_out_of_gas() - br label %"$have_gas_1008" + br label %"$have_gas_1010" -"$have_gas_1008": ; preds = %"$out_of_gas_1007", %"$Some_1001" - %"$consume_1009" = sub i64 %"$gasrem_1005", 1 - store i64 %"$consume_1009", i64* @_gasrem, align 8 - %"$false_1010" = load %TName_Bool*, %TName_Bool** %false, align 8 - store %TName_Bool* %"$false_1010", %TName_Bool** %"$test_30", align 8, !dbg !101 - br label %"$matchsucc_996" +"$have_gas_1010": ; preds = %"$out_of_gas_1009", %"$Some_1003" + %"$consume_1011" = sub i64 %"$gasrem_1007", 1 + store i64 %"$consume_1011", i64* @_gasrem, align 8 + %"$false_1012" = load %TName_Bool*, %TName_Bool** %false, align 8 + store %TName_Bool* %"$false_1012", %TName_Bool** %"$test_30", align 8, !dbg !200 + br label %"$matchsucc_998" -"$None_1011": ; preds = %"$have_gas_994" - %"$$resopt_29_1012" = bitcast %TName_Option_Uint64* %"$$resopt_29_997" to %CName_None_Uint64* - %"$gasrem_1013" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1014" = icmp ugt i64 1, %"$gasrem_1013" - br i1 %"$gascmp_1014", label %"$out_of_gas_1015", label %"$have_gas_1016" +"$None_1013": ; preds = %"$have_gas_996" + %"$$resopt_29_1014" = bitcast %TName_Option_Uint64* %"$$resopt_29_999" to %CName_None_Uint64* + %"$gasrem_1015" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1016" = icmp ugt i64 1, %"$gasrem_1015" + br i1 %"$gascmp_1016", label %"$out_of_gas_1017", label %"$have_gas_1018" -"$out_of_gas_1015": ; preds = %"$None_1011" +"$out_of_gas_1017": ; preds = %"$None_1013" call void @_out_of_gas() - br label %"$have_gas_1016" + br label %"$have_gas_1018" -"$have_gas_1016": ; preds = %"$out_of_gas_1015", %"$None_1011" - %"$consume_1017" = sub i64 %"$gasrem_1013", 1 - store i64 %"$consume_1017", i64* @_gasrem, align 8 - %"$$test_27_1018" = load %TName_Bool*, %TName_Bool** %"$test_27", align 8 - store %TName_Bool* %"$$test_27_1018", %TName_Bool** %"$test_30", align 8, !dbg !104 - br label %"$matchsucc_996" +"$have_gas_1018": ; preds = %"$out_of_gas_1017", %"$None_1013" + %"$consume_1019" = sub i64 %"$gasrem_1015", 1 + store i64 %"$consume_1019", i64* @_gasrem, align 8 + %"$$test_27_1020" = load %TName_Bool*, %TName_Bool** %"$test_27", align 8 + store %TName_Bool* %"$$test_27_1020", %TName_Bool** %"$test_30", align 8, !dbg !203 + br label %"$matchsucc_998" -"$empty_default_1000": ; preds = %"$have_gas_994" - br label %"$matchsucc_996" +"$empty_default_1002": ; preds = %"$have_gas_996" + br label %"$matchsucc_998" -"$matchsucc_996": ; preds = %"$have_gas_1016", %"$have_gas_1008", %"$empty_default_1000" - %"$gasrem_1019" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1020" = icmp ugt i64 1, %"$gasrem_1019" - br i1 %"$gascmp_1020", label %"$out_of_gas_1021", label %"$have_gas_1022" +"$matchsucc_998": ; preds = %"$have_gas_1018", %"$have_gas_1010", %"$empty_default_1002" + %"$gasrem_1021" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1022" = icmp ugt i64 1, %"$gasrem_1021" + br i1 %"$gascmp_1022", label %"$out_of_gas_1023", label %"$have_gas_1024" -"$out_of_gas_1021": ; preds = %"$matchsucc_996" +"$out_of_gas_1023": ; preds = %"$matchsucc_998" call void @_out_of_gas() - br label %"$have_gas_1022" + br label %"$have_gas_1024" -"$have_gas_1022": ; preds = %"$out_of_gas_1021", %"$matchsucc_996" - %"$consume_1023" = sub i64 %"$gasrem_1019", 1 - store i64 %"$consume_1023", i64* @_gasrem, align 8 +"$have_gas_1024": ; preds = %"$out_of_gas_1023", %"$matchsucc_998" + %"$consume_1025" = sub i64 %"$gasrem_1021", 1 + store i64 %"$consume_1025", i64* @_gasrem, align 8 %"$input_31" = alloca %Uint256, align 8 - %"$gasrem_1024" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1025" = icmp ugt i64 1, %"$gasrem_1024" - br i1 %"$gascmp_1025", label %"$out_of_gas_1026", label %"$have_gas_1027" + call void @llvm.dbg.declare(metadata %Uint256* %"$input_31", metadata !205, metadata !DIExpression()), !dbg !206 + %"$gasrem_1026" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1027" = icmp ugt i64 1, %"$gasrem_1026" + br i1 %"$gascmp_1027", label %"$out_of_gas_1028", label %"$have_gas_1029" -"$out_of_gas_1026": ; preds = %"$have_gas_1022" +"$out_of_gas_1028": ; preds = %"$have_gas_1024" call void @_out_of_gas() - br label %"$have_gas_1027" + br label %"$have_gas_1029" -"$have_gas_1027": ; preds = %"$out_of_gas_1026", %"$have_gas_1022" - %"$consume_1028" = sub i64 %"$gasrem_1024", 1 - store i64 %"$consume_1028", i64* @_gasrem, align 8 - store %Uint256 { i256 18446744073709551616 }, %Uint256* %"$input_31", align 8, !dbg !106 - %"$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" +"$have_gas_1029": ; preds = %"$out_of_gas_1028", %"$have_gas_1024" + %"$consume_1030" = sub i64 %"$gasrem_1026", 1 + store i64 %"$consume_1030", i64* @_gasrem, align 8 + store %Uint256 { i256 18446744073709551616 }, %Uint256* %"$input_31", align 8, !dbg !207 + %"$gasrem_1031" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1032" = icmp ugt i64 1, %"$gasrem_1031" + br i1 %"$gascmp_1032", label %"$out_of_gas_1033", label %"$have_gas_1034" -"$out_of_gas_1031": ; preds = %"$have_gas_1027" +"$out_of_gas_1033": ; preds = %"$have_gas_1029" call void @_out_of_gas() - br label %"$have_gas_1032" + br label %"$have_gas_1034" -"$have_gas_1032": ; preds = %"$out_of_gas_1031", %"$have_gas_1027" - %"$consume_1033" = sub i64 %"$gasrem_1029", 1 - store i64 %"$consume_1033", i64* @_gasrem, align 8 +"$have_gas_1034": ; preds = %"$out_of_gas_1033", %"$have_gas_1029" + %"$consume_1035" = sub i64 %"$gasrem_1031", 1 + store i64 %"$consume_1035", i64* @_gasrem, align 8 %"$resopt_32" = alloca %TName_Option_Uint64*, align 8 - %"$gasrem_1034" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1035" = icmp ugt i64 4, %"$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", 4 - store i64 %"$consume_1038", i64* @_gasrem, align 8 - %"$execptr_load_1039" = load i8*, i8** @_execptr, align 8 - %"$to_uint64_$input_31_1040" = alloca %Uint256, align 8 - %"$$input_31_1041" = load %Uint256, %Uint256* %"$input_31", align 8 - store %Uint256 %"$$input_31_1041", %Uint256* %"$to_uint64_$input_31_1040", align 8 - %"$$to_uint64_$input_31_1040_1042" = bitcast %Uint256* %"$to_uint64_$input_31_1040" to i8* - %"$to_uint64_call_1043" = call i8* @_to_uint64(i8* %"$execptr_load_1039", %_TyDescrTy_Typ* @"$TyDescr_Uint256_129", i8* %"$$to_uint64_$input_31_1040_1042"), !dbg !107 - %"$to_uint64_1044" = bitcast i8* %"$to_uint64_call_1043" to %TName_Option_Uint64* - store %TName_Option_Uint64* %"$to_uint64_1044", %TName_Option_Uint64** %"$resopt_32", align 8, !dbg !107 - %"$gasrem_1045" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1046" = icmp ugt i64 1, %"$gasrem_1045" - br i1 %"$gascmp_1046", label %"$out_of_gas_1047", label %"$have_gas_1048" - -"$out_of_gas_1047": ; preds = %"$have_gas_1037" - call void @_out_of_gas() - br label %"$have_gas_1048" - -"$have_gas_1048": ; preds = %"$out_of_gas_1047", %"$have_gas_1037" - %"$consume_1049" = sub i64 %"$gasrem_1045", 1 - store i64 %"$consume_1049", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Option_Uint64** %"$resopt_32", metadata !208, metadata !DIExpression()), !dbg !209 + %"$gasrem_1036" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1037" = icmp ugt i64 4, %"$gasrem_1036" + br i1 %"$gascmp_1037", label %"$out_of_gas_1038", label %"$have_gas_1039" + +"$out_of_gas_1038": ; preds = %"$have_gas_1034" + call void @_out_of_gas() + br label %"$have_gas_1039" + +"$have_gas_1039": ; preds = %"$out_of_gas_1038", %"$have_gas_1034" + %"$consume_1040" = sub i64 %"$gasrem_1036", 4 + store i64 %"$consume_1040", i64* @_gasrem, align 8 + %"$execptr_load_1041" = load i8*, i8** @_execptr, align 8 + %"$to_uint64_$input_31_1042" = alloca %Uint256, align 8 + %"$$input_31_1043" = load %Uint256, %Uint256* %"$input_31", align 8 + store %Uint256 %"$$input_31_1043", %Uint256* %"$to_uint64_$input_31_1042", align 8 + %"$$to_uint64_$input_31_1042_1044" = bitcast %Uint256* %"$to_uint64_$input_31_1042" to i8* + %"$to_uint64_call_1045" = call i8* @_to_uint64(i8* %"$execptr_load_1041", %_TyDescrTy_Typ* @"$TyDescr_Uint256_129", i8* %"$$to_uint64_$input_31_1042_1044"), !dbg !210 + %"$to_uint64_1046" = bitcast i8* %"$to_uint64_call_1045" to %TName_Option_Uint64* + store %TName_Option_Uint64* %"$to_uint64_1046", %TName_Option_Uint64** %"$resopt_32", align 8, !dbg !210 + %"$gasrem_1047" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1048" = icmp ugt i64 1, %"$gasrem_1047" + br i1 %"$gascmp_1048", label %"$out_of_gas_1049", label %"$have_gas_1050" + +"$out_of_gas_1049": ; preds = %"$have_gas_1039" + call void @_out_of_gas() + br label %"$have_gas_1050" + +"$have_gas_1050": ; preds = %"$out_of_gas_1049", %"$have_gas_1039" + %"$consume_1051" = sub i64 %"$gasrem_1047", 1 + store i64 %"$consume_1051", i64* @_gasrem, align 8 %"$test_33" = alloca %TName_Bool*, align 8 - %"$gasrem_1050" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1051" = icmp ugt i64 2, %"$gasrem_1050" - br i1 %"$gascmp_1051", label %"$out_of_gas_1052", label %"$have_gas_1053" - -"$out_of_gas_1052": ; preds = %"$have_gas_1048" - call void @_out_of_gas() - br label %"$have_gas_1053" - -"$have_gas_1053": ; preds = %"$out_of_gas_1052", %"$have_gas_1048" - %"$consume_1054" = sub i64 %"$gasrem_1050", 2 - store i64 %"$consume_1054", i64* @_gasrem, align 8 - %"$$resopt_32_1056" = load %TName_Option_Uint64*, %TName_Option_Uint64** %"$resopt_32", align 8 - %"$$resopt_32_tag_1057" = getelementptr inbounds %TName_Option_Uint64, %TName_Option_Uint64* %"$$resopt_32_1056", i32 0, i32 0 - %"$$resopt_32_tag_1058" = load i8, i8* %"$$resopt_32_tag_1057", align 1 - switch i8 %"$$resopt_32_tag_1058", label %"$empty_default_1059" [ - i8 0, label %"$Some_1060" - i8 1, label %"$None_1070" - ], !dbg !108 - -"$Some_1060": ; preds = %"$have_gas_1053" - %"$$resopt_32_1061" = bitcast %TName_Option_Uint64* %"$$resopt_32_1056" to %CName_Some_Uint64* - %"$$$resopt_32_77_gep_1062" = getelementptr inbounds %CName_Some_Uint64, %CName_Some_Uint64* %"$$resopt_32_1061", i32 0, i32 1 - %"$$$resopt_32_77_load_1063" = load %Uint64, %Uint64* %"$$$resopt_32_77_gep_1062", align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$test_33", metadata !211, metadata !DIExpression()), !dbg !212 + %"$gasrem_1052" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1053" = icmp ugt i64 2, %"$gasrem_1052" + br i1 %"$gascmp_1053", label %"$out_of_gas_1054", label %"$have_gas_1055" + +"$out_of_gas_1054": ; preds = %"$have_gas_1050" + call void @_out_of_gas() + br label %"$have_gas_1055" + +"$have_gas_1055": ; preds = %"$out_of_gas_1054", %"$have_gas_1050" + %"$consume_1056" = sub i64 %"$gasrem_1052", 2 + store i64 %"$consume_1056", i64* @_gasrem, align 8 + %"$$resopt_32_1058" = load %TName_Option_Uint64*, %TName_Option_Uint64** %"$resopt_32", align 8 + %"$$resopt_32_tag_1059" = getelementptr inbounds %TName_Option_Uint64, %TName_Option_Uint64* %"$$resopt_32_1058", i32 0, i32 0 + %"$$resopt_32_tag_1060" = load i8, i8* %"$$resopt_32_tag_1059", align 1 + switch i8 %"$$resopt_32_tag_1060", label %"$empty_default_1061" [ + i8 0, label %"$Some_1062" + i8 1, label %"$None_1072" + ], !dbg !213 + +"$Some_1062": ; preds = %"$have_gas_1055" + %"$$resopt_32_1063" = bitcast %TName_Option_Uint64* %"$$resopt_32_1058" to %CName_Some_Uint64* + %"$$$resopt_32_77_gep_1064" = getelementptr inbounds %CName_Some_Uint64, %CName_Some_Uint64* %"$$resopt_32_1063", i32 0, i32 1 + %"$$$resopt_32_77_load_1065" = load %Uint64, %Uint64* %"$$$resopt_32_77_gep_1064", align 8 %"$$resopt_32_77" = alloca %Uint64, align 8 - store %Uint64 %"$$$resopt_32_77_load_1063", %Uint64* %"$$resopt_32_77", 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" + store %Uint64 %"$$$resopt_32_77_load_1065", %Uint64* %"$$resopt_32_77", align 8 + %"$gasrem_1066" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1067" = icmp ugt i64 1, %"$gasrem_1066" + br i1 %"$gascmp_1067", label %"$out_of_gas_1068", label %"$have_gas_1069" -"$out_of_gas_1066": ; preds = %"$Some_1060" +"$out_of_gas_1068": ; preds = %"$Some_1062" call void @_out_of_gas() - br label %"$have_gas_1067" + br label %"$have_gas_1069" -"$have_gas_1067": ; preds = %"$out_of_gas_1066", %"$Some_1060" - %"$consume_1068" = sub i64 %"$gasrem_1064", 1 - store i64 %"$consume_1068", i64* @_gasrem, align 8 - %"$false_1069" = load %TName_Bool*, %TName_Bool** %false, align 8 - store %TName_Bool* %"$false_1069", %TName_Bool** %"$test_33", align 8, !dbg !109 - br label %"$matchsucc_1055" +"$have_gas_1069": ; preds = %"$out_of_gas_1068", %"$Some_1062" + %"$consume_1070" = sub i64 %"$gasrem_1066", 1 + store i64 %"$consume_1070", i64* @_gasrem, align 8 + %"$false_1071" = load %TName_Bool*, %TName_Bool** %false, align 8 + store %TName_Bool* %"$false_1071", %TName_Bool** %"$test_33", align 8, !dbg !214 + br label %"$matchsucc_1057" -"$None_1070": ; preds = %"$have_gas_1053" - %"$$resopt_32_1071" = bitcast %TName_Option_Uint64* %"$$resopt_32_1056" to %CName_None_Uint64* - %"$gasrem_1072" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1073" = icmp ugt i64 1, %"$gasrem_1072" - br i1 %"$gascmp_1073", label %"$out_of_gas_1074", label %"$have_gas_1075" +"$None_1072": ; preds = %"$have_gas_1055" + %"$$resopt_32_1073" = bitcast %TName_Option_Uint64* %"$$resopt_32_1058" to %CName_None_Uint64* + %"$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_1074": ; preds = %"$None_1070" +"$out_of_gas_1076": ; preds = %"$None_1072" call void @_out_of_gas() - br label %"$have_gas_1075" + br label %"$have_gas_1077" -"$have_gas_1075": ; preds = %"$out_of_gas_1074", %"$None_1070" - %"$consume_1076" = sub i64 %"$gasrem_1072", 1 - store i64 %"$consume_1076", i64* @_gasrem, align 8 - %"$$test_30_1077" = load %TName_Bool*, %TName_Bool** %"$test_30", align 8 - store %TName_Bool* %"$$test_30_1077", %TName_Bool** %"$test_33", align 8, !dbg !112 - br label %"$matchsucc_1055" +"$have_gas_1077": ; preds = %"$out_of_gas_1076", %"$None_1072" + %"$consume_1078" = sub i64 %"$gasrem_1074", 1 + store i64 %"$consume_1078", i64* @_gasrem, align 8 + %"$$test_30_1079" = load %TName_Bool*, %TName_Bool** %"$test_30", align 8 + store %TName_Bool* %"$$test_30_1079", %TName_Bool** %"$test_33", align 8, !dbg !217 + br label %"$matchsucc_1057" -"$empty_default_1059": ; preds = %"$have_gas_1053" - br label %"$matchsucc_1055" +"$empty_default_1061": ; preds = %"$have_gas_1055" + br label %"$matchsucc_1057" -"$matchsucc_1055": ; preds = %"$have_gas_1075", %"$have_gas_1067", %"$empty_default_1059" - %"$gasrem_1078" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1079" = icmp ugt i64 1, %"$gasrem_1078" - br i1 %"$gascmp_1079", label %"$out_of_gas_1080", label %"$have_gas_1081" +"$matchsucc_1057": ; preds = %"$have_gas_1077", %"$have_gas_1069", %"$empty_default_1061" + %"$gasrem_1080" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1081" = icmp ugt i64 1, %"$gasrem_1080" + br i1 %"$gascmp_1081", label %"$out_of_gas_1082", label %"$have_gas_1083" -"$out_of_gas_1080": ; preds = %"$matchsucc_1055" +"$out_of_gas_1082": ; preds = %"$matchsucc_1057" call void @_out_of_gas() - br label %"$have_gas_1081" + br label %"$have_gas_1083" -"$have_gas_1081": ; preds = %"$out_of_gas_1080", %"$matchsucc_1055" - %"$consume_1082" = sub i64 %"$gasrem_1078", 1 - store i64 %"$consume_1082", i64* @_gasrem, align 8 +"$have_gas_1083": ; preds = %"$out_of_gas_1082", %"$matchsucc_1057" + %"$consume_1084" = sub i64 %"$gasrem_1080", 1 + store i64 %"$consume_1084", i64* @_gasrem, align 8 %"$input_34" = alloca %Uint128, align 8 - %"$gasrem_1083" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1084" = icmp ugt i64 1, %"$gasrem_1083" - br i1 %"$gascmp_1084", label %"$out_of_gas_1085", label %"$have_gas_1086" + call void @llvm.dbg.declare(metadata %Uint128* %"$input_34", metadata !219, metadata !DIExpression()), !dbg !220 + %"$gasrem_1085" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1086" = icmp ugt i64 1, %"$gasrem_1085" + br i1 %"$gascmp_1086", label %"$out_of_gas_1087", label %"$have_gas_1088" -"$out_of_gas_1085": ; preds = %"$have_gas_1081" +"$out_of_gas_1087": ; preds = %"$have_gas_1083" call void @_out_of_gas() - br label %"$have_gas_1086" + br label %"$have_gas_1088" -"$have_gas_1086": ; preds = %"$out_of_gas_1085", %"$have_gas_1081" - %"$consume_1087" = sub i64 %"$gasrem_1083", 1 - store i64 %"$consume_1087", i64* @_gasrem, align 8 - store %Uint128 { i128 18446744073709551615 }, %Uint128* %"$input_34", align 8, !dbg !114 - %"$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_1088": ; preds = %"$out_of_gas_1087", %"$have_gas_1083" + %"$consume_1089" = sub i64 %"$gasrem_1085", 1 + store i64 %"$consume_1089", i64* @_gasrem, align 8 + store %Uint128 { i128 18446744073709551615 }, %Uint128* %"$input_34", align 8, !dbg !221 + %"$gasrem_1090" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1091" = icmp ugt i64 1, %"$gasrem_1090" + br i1 %"$gascmp_1091", label %"$out_of_gas_1092", label %"$have_gas_1093" -"$out_of_gas_1090": ; preds = %"$have_gas_1086" +"$out_of_gas_1092": ; preds = %"$have_gas_1088" call void @_out_of_gas() - br label %"$have_gas_1091" + br label %"$have_gas_1093" -"$have_gas_1091": ; preds = %"$out_of_gas_1090", %"$have_gas_1086" - %"$consume_1092" = sub i64 %"$gasrem_1088", 1 - store i64 %"$consume_1092", i64* @_gasrem, align 8 +"$have_gas_1093": ; preds = %"$out_of_gas_1092", %"$have_gas_1088" + %"$consume_1094" = sub i64 %"$gasrem_1090", 1 + store i64 %"$consume_1094", i64* @_gasrem, align 8 %"$resopt_35" = alloca %TName_Option_Uint128*, align 8 - %"$gasrem_1093" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1094" = icmp ugt i64 8, %"$gasrem_1093" - br i1 %"$gascmp_1094", label %"$out_of_gas_1095", label %"$have_gas_1096" - -"$out_of_gas_1095": ; preds = %"$have_gas_1091" - call void @_out_of_gas() - br label %"$have_gas_1096" - -"$have_gas_1096": ; preds = %"$out_of_gas_1095", %"$have_gas_1091" - %"$consume_1097" = sub i64 %"$gasrem_1093", 8 - store i64 %"$consume_1097", i64* @_gasrem, align 8 - %"$execptr_load_1098" = load i8*, i8** @_execptr, align 8 - %"$to_uint128_$input_34_1099" = alloca %Uint128, align 8 - %"$$input_34_1100" = load %Uint128, %Uint128* %"$input_34", align 8 - store %Uint128 %"$$input_34_1100", %Uint128* %"$to_uint128_$input_34_1099", align 8 - %"$$to_uint128_$input_34_1099_1101" = bitcast %Uint128* %"$to_uint128_$input_34_1099" to i8* - %"$to_uint128_call_1102" = call i8* @_to_uint128(i8* %"$execptr_load_1098", %_TyDescrTy_Typ* @"$TyDescr_Uint128_125", i8* %"$$to_uint128_$input_34_1099_1101"), !dbg !115 - %"$to_uint128_1103" = bitcast i8* %"$to_uint128_call_1102" to %TName_Option_Uint128* - store %TName_Option_Uint128* %"$to_uint128_1103", %TName_Option_Uint128** %"$resopt_35", align 8, !dbg !115 - %"$gasrem_1104" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1105" = icmp ugt i64 1, %"$gasrem_1104" - br i1 %"$gascmp_1105", label %"$out_of_gas_1106", label %"$have_gas_1107" - -"$out_of_gas_1106": ; preds = %"$have_gas_1096" - call void @_out_of_gas() - br label %"$have_gas_1107" - -"$have_gas_1107": ; preds = %"$out_of_gas_1106", %"$have_gas_1096" - %"$consume_1108" = sub i64 %"$gasrem_1104", 1 - store i64 %"$consume_1108", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Option_Uint128** %"$resopt_35", metadata !222, metadata !DIExpression()), !dbg !225 + %"$gasrem_1095" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1096" = icmp ugt i64 8, %"$gasrem_1095" + br i1 %"$gascmp_1096", label %"$out_of_gas_1097", label %"$have_gas_1098" + +"$out_of_gas_1097": ; preds = %"$have_gas_1093" + call void @_out_of_gas() + br label %"$have_gas_1098" + +"$have_gas_1098": ; preds = %"$out_of_gas_1097", %"$have_gas_1093" + %"$consume_1099" = sub i64 %"$gasrem_1095", 8 + store i64 %"$consume_1099", i64* @_gasrem, align 8 + %"$execptr_load_1100" = load i8*, i8** @_execptr, align 8 + %"$to_uint128_$input_34_1101" = alloca %Uint128, align 8 + %"$$input_34_1102" = load %Uint128, %Uint128* %"$input_34", align 8 + store %Uint128 %"$$input_34_1102", %Uint128* %"$to_uint128_$input_34_1101", align 8 + %"$$to_uint128_$input_34_1101_1103" = bitcast %Uint128* %"$to_uint128_$input_34_1101" to i8* + %"$to_uint128_call_1104" = call i8* @_to_uint128(i8* %"$execptr_load_1100", %_TyDescrTy_Typ* @"$TyDescr_Uint128_125", i8* %"$$to_uint128_$input_34_1101_1103"), !dbg !226 + %"$to_uint128_1105" = bitcast i8* %"$to_uint128_call_1104" to %TName_Option_Uint128* + store %TName_Option_Uint128* %"$to_uint128_1105", %TName_Option_Uint128** %"$resopt_35", align 8, !dbg !226 + %"$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_1108": ; preds = %"$have_gas_1098" + call void @_out_of_gas() + br label %"$have_gas_1109" + +"$have_gas_1109": ; preds = %"$out_of_gas_1108", %"$have_gas_1098" + %"$consume_1110" = sub i64 %"$gasrem_1106", 1 + store i64 %"$consume_1110", i64* @_gasrem, align 8 %"$test_36" = alloca %TName_Bool*, align 8 - %"$gasrem_1109" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1110" = icmp ugt i64 2, %"$gasrem_1109" - br i1 %"$gascmp_1110", label %"$out_of_gas_1111", label %"$have_gas_1112" - -"$out_of_gas_1111": ; preds = %"$have_gas_1107" - call void @_out_of_gas() - br label %"$have_gas_1112" - -"$have_gas_1112": ; preds = %"$out_of_gas_1111", %"$have_gas_1107" - %"$consume_1113" = sub i64 %"$gasrem_1109", 2 - store i64 %"$consume_1113", i64* @_gasrem, align 8 - %"$$resopt_35_1115" = load %TName_Option_Uint128*, %TName_Option_Uint128** %"$resopt_35", align 8 - %"$$resopt_35_tag_1116" = getelementptr inbounds %TName_Option_Uint128, %TName_Option_Uint128* %"$$resopt_35_1115", i32 0, i32 0 - %"$$resopt_35_tag_1117" = load i8, i8* %"$$resopt_35_tag_1116", align 1 - switch i8 %"$$resopt_35_tag_1117", label %"$empty_default_1118" [ - i8 0, label %"$Some_1119" - i8 1, label %"$None_1165" - ], !dbg !116 - -"$Some_1119": ; preds = %"$have_gas_1112" - %"$$resopt_35_1120" = bitcast %TName_Option_Uint128* %"$$resopt_35_1115" to %CName_Some_Uint128* - %"$res_gep_1121" = getelementptr inbounds %CName_Some_Uint128, %CName_Some_Uint128* %"$$resopt_35_1120", i32 0, i32 1 - %"$res_load_1122" = load %Uint128, %Uint128* %"$res_gep_1121", align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$test_36", metadata !227, metadata !DIExpression()), !dbg !228 + %"$gasrem_1111" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1112" = icmp ugt i64 2, %"$gasrem_1111" + br i1 %"$gascmp_1112", label %"$out_of_gas_1113", label %"$have_gas_1114" + +"$out_of_gas_1113": ; preds = %"$have_gas_1109" + call void @_out_of_gas() + br label %"$have_gas_1114" + +"$have_gas_1114": ; preds = %"$out_of_gas_1113", %"$have_gas_1109" + %"$consume_1115" = sub i64 %"$gasrem_1111", 2 + store i64 %"$consume_1115", i64* @_gasrem, align 8 + %"$$resopt_35_1117" = load %TName_Option_Uint128*, %TName_Option_Uint128** %"$resopt_35", align 8 + %"$$resopt_35_tag_1118" = getelementptr inbounds %TName_Option_Uint128, %TName_Option_Uint128* %"$$resopt_35_1117", i32 0, i32 0 + %"$$resopt_35_tag_1119" = load i8, i8* %"$$resopt_35_tag_1118", align 1 + switch i8 %"$$resopt_35_tag_1119", label %"$empty_default_1120" [ + i8 0, label %"$Some_1121" + i8 1, label %"$None_1167" + ], !dbg !229 + +"$Some_1121": ; preds = %"$have_gas_1114" + %"$$resopt_35_1122" = bitcast %TName_Option_Uint128* %"$$resopt_35_1117" to %CName_Some_Uint128* + %"$res_gep_1123" = getelementptr inbounds %CName_Some_Uint128, %CName_Some_Uint128* %"$$resopt_35_1122", i32 0, i32 1 + %"$res_load_1124" = load %Uint128, %Uint128* %"$res_gep_1123", align 8 %res13 = alloca %Uint128, align 8 - store %Uint128 %"$res_load_1122", %Uint128* %res13, align 8 - %"$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" + store %Uint128 %"$res_load_1124", %Uint128* %res13, align 8 + %"$gasrem_1125" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1126" = icmp ugt i64 1, %"$gasrem_1125" + br i1 %"$gascmp_1126", label %"$out_of_gas_1127", label %"$have_gas_1128" -"$out_of_gas_1125": ; preds = %"$Some_1119" +"$out_of_gas_1127": ; preds = %"$Some_1121" call void @_out_of_gas() - br label %"$have_gas_1126" + br label %"$have_gas_1128" -"$have_gas_1126": ; preds = %"$out_of_gas_1125", %"$Some_1119" - %"$consume_1127" = sub i64 %"$gasrem_1123", 1 - store i64 %"$consume_1127", i64* @_gasrem, align 8 +"$have_gas_1128": ; preds = %"$out_of_gas_1127", %"$Some_1121" + %"$consume_1129" = sub i64 %"$gasrem_1125", 1 + store i64 %"$consume_1129", i64* @_gasrem, align 8 %input_14 = alloca %Uint128, 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" + call void @llvm.dbg.declare(metadata %Uint128* %input_14, metadata !230, metadata !DIExpression()), !dbg !233 + %"$gasrem_1130" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1131" = icmp ugt i64 1, %"$gasrem_1130" + br i1 %"$gascmp_1131", label %"$out_of_gas_1132", label %"$have_gas_1133" -"$out_of_gas_1130": ; preds = %"$have_gas_1126" +"$out_of_gas_1132": ; preds = %"$have_gas_1128" call void @_out_of_gas() - br label %"$have_gas_1131" + br label %"$have_gas_1133" -"$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 - store %Uint128 { i128 18446744073709551615 }, %Uint128* %input_14, align 8, !dbg !117 - %"$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" +"$have_gas_1133": ; preds = %"$out_of_gas_1132", %"$have_gas_1128" + %"$consume_1134" = sub i64 %"$gasrem_1130", 1 + store i64 %"$consume_1134", i64* @_gasrem, align 8 + store %Uint128 { i128 18446744073709551615 }, %Uint128* %input_14, align 8, !dbg !234 + %"$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" -"$out_of_gas_1135": ; preds = %"$have_gas_1131" +"$out_of_gas_1137": ; preds = %"$have_gas_1133" call void @_out_of_gas() - br label %"$have_gas_1136" + br label %"$have_gas_1138" -"$have_gas_1136": ; preds = %"$out_of_gas_1135", %"$have_gas_1131" - %"$consume_1137" = sub i64 %"$gasrem_1133", 1 - store i64 %"$consume_1137", i64* @_gasrem, align 8 +"$have_gas_1138": ; preds = %"$out_of_gas_1137", %"$have_gas_1133" + %"$consume_1139" = sub i64 %"$gasrem_1135", 1 + store i64 %"$consume_1139", i64* @_gasrem, align 8 %test_15 = alloca %TName_Bool*, align 8 - %"$gasrem_1139" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1140" = icmp ugt i64 8, %"$gasrem_1139" - br i1 %"$gascmp_1140", label %"$out_of_gas_1141", label %"$have_gas_1142" - -"$out_of_gas_1141": ; preds = %"$have_gas_1136" - call void @_out_of_gas() - br label %"$have_gas_1142" - -"$have_gas_1142": ; preds = %"$out_of_gas_1141", %"$have_gas_1136" - %"$consume_1143" = sub i64 %"$gasrem_1139", 8 - store i64 %"$consume_1143", i64* @_gasrem, align 8 - %"$execptr_load_1144" = load i8*, i8** @_execptr, align 8 - %"$res_1145" = load %Uint128, %Uint128* %res13, align 8 - %"$input__1146" = load %Uint128, %Uint128* %input_14, align 8 - %"$eq_call_1147" = call %TName_Bool* @_eq_Uint128(i8* %"$execptr_load_1144", %Uint128 %"$res_1145", %Uint128 %"$input__1146"), !dbg !120 - store %TName_Bool* %"$eq_call_1147", %TName_Bool** %test_15, align 8, !dbg !120 - %"$gasrem_1149" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1150" = icmp ugt i64 1, %"$gasrem_1149" - br i1 %"$gascmp_1150", label %"$out_of_gas_1151", label %"$have_gas_1152" - -"$out_of_gas_1151": ; preds = %"$have_gas_1142" - call void @_out_of_gas() - br label %"$have_gas_1152" - -"$have_gas_1152": ; preds = %"$out_of_gas_1151", %"$have_gas_1142" - %"$consume_1153" = sub i64 %"$gasrem_1149", 1 - store i64 %"$consume_1153", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %test_15, metadata !235, metadata !DIExpression()), !dbg !236 + %"$gasrem_1141" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1142" = icmp ugt i64 8, %"$gasrem_1141" + br i1 %"$gascmp_1142", label %"$out_of_gas_1143", label %"$have_gas_1144" + +"$out_of_gas_1143": ; preds = %"$have_gas_1138" + call void @_out_of_gas() + br label %"$have_gas_1144" + +"$have_gas_1144": ; preds = %"$out_of_gas_1143", %"$have_gas_1138" + %"$consume_1145" = sub i64 %"$gasrem_1141", 8 + store i64 %"$consume_1145", i64* @_gasrem, align 8 + %"$execptr_load_1146" = load i8*, i8** @_execptr, align 8 + %"$res_1147" = load %Uint128, %Uint128* %res13, align 8 + %"$input__1148" = load %Uint128, %Uint128* %input_14, align 8 + %"$eq_call_1149" = call %TName_Bool* @_eq_Uint128(i8* %"$execptr_load_1146", %Uint128 %"$res_1147", %Uint128 %"$input__1148"), !dbg !237 + store %TName_Bool* %"$eq_call_1149", %TName_Bool** %test_15, align 8, !dbg !237 + %"$gasrem_1151" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1152" = icmp ugt i64 1, %"$gasrem_1151" + br i1 %"$gascmp_1152", label %"$out_of_gas_1153", label %"$have_gas_1154" + +"$out_of_gas_1153": ; preds = %"$have_gas_1144" + call void @_out_of_gas() + br label %"$have_gas_1154" + +"$have_gas_1154": ; preds = %"$out_of_gas_1153", %"$have_gas_1144" + %"$consume_1155" = sub i64 %"$gasrem_1151", 1 + store i64 %"$consume_1155", i64* @_gasrem, align 8 %"$BoolUtils.andb_94" = alloca { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, align 8 - %"$BoolUtils.andb_1154" = 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_1155" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_1154", 0 - %"$BoolUtils.andb_envptr_1156" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_1154", 1 - %"$$test_33_1157" = load %TName_Bool*, %TName_Bool** %"$test_33", align 8 - %"$BoolUtils.andb_call_1158" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_1155"(i8* %"$BoolUtils.andb_envptr_1156", %TName_Bool* %"$$test_33_1157"), !dbg !121 - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_1158", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_94", align 8, !dbg !121 + %"$BoolUtils.andb_1156" = 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_1157" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_1156", 0 + %"$BoolUtils.andb_envptr_1158" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_1156", 1 + %"$$test_33_1159" = load %TName_Bool*, %TName_Bool** %"$test_33", align 8 + %"$BoolUtils.andb_call_1160" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_1157"(i8* %"$BoolUtils.andb_envptr_1158", %TName_Bool* %"$$test_33_1159"), !dbg !238 + store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_1160", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_94", align 8, !dbg !238 %"$BoolUtils.andb_95" = alloca %TName_Bool*, align 8 - %"$$BoolUtils.andb_94_1159" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_94", align 8 - %"$$BoolUtils.andb_94_fptr_1160" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_94_1159", 0 - %"$$BoolUtils.andb_94_envptr_1161" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_94_1159", 1 - %"$test__1162" = load %TName_Bool*, %TName_Bool** %test_15, align 8 - %"$$BoolUtils.andb_94_call_1163" = call %TName_Bool* %"$$BoolUtils.andb_94_fptr_1160"(i8* %"$$BoolUtils.andb_94_envptr_1161", %TName_Bool* %"$test__1162"), !dbg !121 - store %TName_Bool* %"$$BoolUtils.andb_94_call_1163", %TName_Bool** %"$BoolUtils.andb_95", align 8, !dbg !121 - %"$$BoolUtils.andb_95_1164" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_95", align 8 - store %TName_Bool* %"$$BoolUtils.andb_95_1164", %TName_Bool** %"$test_36", align 8, !dbg !121 - br label %"$matchsucc_1114" - -"$None_1165": ; preds = %"$have_gas_1112" - %"$$resopt_35_1166" = bitcast %TName_Option_Uint128* %"$$resopt_35_1115" to %CName_None_Uint128* - %"$gasrem_1167" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1168" = icmp ugt i64 1, %"$gasrem_1167" - br i1 %"$gascmp_1168", label %"$out_of_gas_1169", label %"$have_gas_1170" - -"$out_of_gas_1169": ; preds = %"$None_1165" - call void @_out_of_gas() - br label %"$have_gas_1170" - -"$have_gas_1170": ; preds = %"$out_of_gas_1169", %"$None_1165" - %"$consume_1171" = sub i64 %"$gasrem_1167", 1 - store i64 %"$consume_1171", i64* @_gasrem, align 8 - %"$false_1172" = load %TName_Bool*, %TName_Bool** %false, align 8 - store %TName_Bool* %"$false_1172", %TName_Bool** %"$test_36", align 8, !dbg !122 - br label %"$matchsucc_1114" - -"$empty_default_1118": ; preds = %"$have_gas_1112" - br label %"$matchsucc_1114" - -"$matchsucc_1114": ; preds = %"$have_gas_1170", %"$have_gas_1152", %"$empty_default_1118" - %"$gasrem_1173" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1174" = icmp ugt i64 1, %"$gasrem_1173" - br i1 %"$gascmp_1174", label %"$out_of_gas_1175", label %"$have_gas_1176" - -"$out_of_gas_1175": ; preds = %"$matchsucc_1114" - call void @_out_of_gas() - br label %"$have_gas_1176" - -"$have_gas_1176": ; preds = %"$out_of_gas_1175", %"$matchsucc_1114" - %"$consume_1177" = sub i64 %"$gasrem_1173", 1 - store i64 %"$consume_1177", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$BoolUtils.andb_95", metadata !239, metadata !DIExpression()), !dbg !238 + %"$$BoolUtils.andb_94_1161" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_94", align 8 + %"$$BoolUtils.andb_94_fptr_1162" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_94_1161", 0 + %"$$BoolUtils.andb_94_envptr_1163" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_94_1161", 1 + %"$test__1164" = load %TName_Bool*, %TName_Bool** %test_15, align 8 + %"$$BoolUtils.andb_94_call_1165" = call %TName_Bool* %"$$BoolUtils.andb_94_fptr_1162"(i8* %"$$BoolUtils.andb_94_envptr_1163", %TName_Bool* %"$test__1164"), !dbg !238 + store %TName_Bool* %"$$BoolUtils.andb_94_call_1165", %TName_Bool** %"$BoolUtils.andb_95", align 8, !dbg !238 + %"$$BoolUtils.andb_95_1166" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_95", align 8 + store %TName_Bool* %"$$BoolUtils.andb_95_1166", %TName_Bool** %"$test_36", align 8, !dbg !238 + br label %"$matchsucc_1116" + +"$None_1167": ; preds = %"$have_gas_1114" + %"$$resopt_35_1168" = bitcast %TName_Option_Uint128* %"$$resopt_35_1117" to %CName_None_Uint128* + %"$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 = %"$None_1167" + call void @_out_of_gas() + br label %"$have_gas_1172" + +"$have_gas_1172": ; preds = %"$out_of_gas_1171", %"$None_1167" + %"$consume_1173" = sub i64 %"$gasrem_1169", 1 + store i64 %"$consume_1173", i64* @_gasrem, align 8 + %"$false_1174" = load %TName_Bool*, %TName_Bool** %false, align 8 + store %TName_Bool* %"$false_1174", %TName_Bool** %"$test_36", align 8, !dbg !240 + br label %"$matchsucc_1116" + +"$empty_default_1120": ; preds = %"$have_gas_1114" + br label %"$matchsucc_1116" + +"$matchsucc_1116": ; preds = %"$have_gas_1172", %"$have_gas_1154", %"$empty_default_1120" + %"$gasrem_1175" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1176" = icmp ugt i64 1, %"$gasrem_1175" + br i1 %"$gascmp_1176", label %"$out_of_gas_1177", label %"$have_gas_1178" + +"$out_of_gas_1177": ; preds = %"$matchsucc_1116" + call void @_out_of_gas() + br label %"$have_gas_1178" + +"$have_gas_1178": ; preds = %"$out_of_gas_1177", %"$matchsucc_1116" + %"$consume_1179" = sub i64 %"$gasrem_1175", 1 + store i64 %"$consume_1179", i64* @_gasrem, align 8 %"$input_37" = alloca %Uint128, align 8 - %"$gasrem_1178" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1179" = icmp ugt i64 1, %"$gasrem_1178" - br i1 %"$gascmp_1179", label %"$out_of_gas_1180", label %"$have_gas_1181" + call void @llvm.dbg.declare(metadata %Uint128* %"$input_37", metadata !242, metadata !DIExpression()), !dbg !243 + %"$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_1180": ; preds = %"$have_gas_1176" +"$out_of_gas_1182": ; preds = %"$have_gas_1178" call void @_out_of_gas() - br label %"$have_gas_1181" + br label %"$have_gas_1183" -"$have_gas_1181": ; preds = %"$out_of_gas_1180", %"$have_gas_1176" - %"$consume_1182" = sub i64 %"$gasrem_1178", 1 - store i64 %"$consume_1182", i64* @_gasrem, align 8 - store %Uint128 { i128 -1 }, %Uint128* %"$input_37", align 8, !dbg !124 - %"$gasrem_1183" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1184" = icmp ugt i64 1, %"$gasrem_1183" - br i1 %"$gascmp_1184", label %"$out_of_gas_1185", label %"$have_gas_1186" +"$have_gas_1183": ; preds = %"$out_of_gas_1182", %"$have_gas_1178" + %"$consume_1184" = sub i64 %"$gasrem_1180", 1 + store i64 %"$consume_1184", i64* @_gasrem, align 8 + store %Uint128 { i128 -1 }, %Uint128* %"$input_37", align 8, !dbg !244 + %"$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_1185": ; preds = %"$have_gas_1181" +"$out_of_gas_1187": ; preds = %"$have_gas_1183" call void @_out_of_gas() - br label %"$have_gas_1186" + br label %"$have_gas_1188" -"$have_gas_1186": ; preds = %"$out_of_gas_1185", %"$have_gas_1181" - %"$consume_1187" = sub i64 %"$gasrem_1183", 1 - store i64 %"$consume_1187", i64* @_gasrem, align 8 +"$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 %"$resopt_38" = alloca %TName_Option_Uint128*, align 8 - %"$gasrem_1188" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1189" = icmp ugt i64 8, %"$gasrem_1188" - br i1 %"$gascmp_1189", label %"$out_of_gas_1190", label %"$have_gas_1191" - -"$out_of_gas_1190": ; preds = %"$have_gas_1186" - call void @_out_of_gas() - br label %"$have_gas_1191" - -"$have_gas_1191": ; preds = %"$out_of_gas_1190", %"$have_gas_1186" - %"$consume_1192" = sub i64 %"$gasrem_1188", 8 - store i64 %"$consume_1192", i64* @_gasrem, align 8 - %"$execptr_load_1193" = load i8*, i8** @_execptr, align 8 - %"$to_uint128_$input_37_1194" = alloca %Uint128, align 8 - %"$$input_37_1195" = load %Uint128, %Uint128* %"$input_37", align 8 - store %Uint128 %"$$input_37_1195", %Uint128* %"$to_uint128_$input_37_1194", align 8 - %"$$to_uint128_$input_37_1194_1196" = bitcast %Uint128* %"$to_uint128_$input_37_1194" to i8* - %"$to_uint128_call_1197" = call i8* @_to_uint128(i8* %"$execptr_load_1193", %_TyDescrTy_Typ* @"$TyDescr_Uint128_125", i8* %"$$to_uint128_$input_37_1194_1196"), !dbg !125 - %"$to_uint128_1198" = bitcast i8* %"$to_uint128_call_1197" to %TName_Option_Uint128* - store %TName_Option_Uint128* %"$to_uint128_1198", %TName_Option_Uint128** %"$resopt_38", align 8, !dbg !125 - %"$gasrem_1199" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1200" = icmp ugt i64 1, %"$gasrem_1199" - br i1 %"$gascmp_1200", label %"$out_of_gas_1201", label %"$have_gas_1202" - -"$out_of_gas_1201": ; preds = %"$have_gas_1191" - call void @_out_of_gas() - br label %"$have_gas_1202" - -"$have_gas_1202": ; preds = %"$out_of_gas_1201", %"$have_gas_1191" - %"$consume_1203" = sub i64 %"$gasrem_1199", 1 - store i64 %"$consume_1203", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Option_Uint128** %"$resopt_38", metadata !245, metadata !DIExpression()), !dbg !246 + %"$gasrem_1190" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1191" = icmp ugt i64 8, %"$gasrem_1190" + br i1 %"$gascmp_1191", label %"$out_of_gas_1192", label %"$have_gas_1193" + +"$out_of_gas_1192": ; preds = %"$have_gas_1188" + call void @_out_of_gas() + br label %"$have_gas_1193" + +"$have_gas_1193": ; preds = %"$out_of_gas_1192", %"$have_gas_1188" + %"$consume_1194" = sub i64 %"$gasrem_1190", 8 + store i64 %"$consume_1194", i64* @_gasrem, align 8 + %"$execptr_load_1195" = load i8*, i8** @_execptr, align 8 + %"$to_uint128_$input_37_1196" = alloca %Uint128, align 8 + %"$$input_37_1197" = load %Uint128, %Uint128* %"$input_37", align 8 + store %Uint128 %"$$input_37_1197", %Uint128* %"$to_uint128_$input_37_1196", align 8 + %"$$to_uint128_$input_37_1196_1198" = bitcast %Uint128* %"$to_uint128_$input_37_1196" to i8* + %"$to_uint128_call_1199" = call i8* @_to_uint128(i8* %"$execptr_load_1195", %_TyDescrTy_Typ* @"$TyDescr_Uint128_125", i8* %"$$to_uint128_$input_37_1196_1198"), !dbg !247 + %"$to_uint128_1200" = bitcast i8* %"$to_uint128_call_1199" to %TName_Option_Uint128* + store %TName_Option_Uint128* %"$to_uint128_1200", %TName_Option_Uint128** %"$resopt_38", align 8, !dbg !247 + %"$gasrem_1201" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1202" = icmp ugt i64 1, %"$gasrem_1201" + br i1 %"$gascmp_1202", label %"$out_of_gas_1203", label %"$have_gas_1204" + +"$out_of_gas_1203": ; preds = %"$have_gas_1193" + call void @_out_of_gas() + br label %"$have_gas_1204" + +"$have_gas_1204": ; preds = %"$out_of_gas_1203", %"$have_gas_1193" + %"$consume_1205" = sub i64 %"$gasrem_1201", 1 + store i64 %"$consume_1205", i64* @_gasrem, align 8 %"$test_39" = alloca %TName_Bool*, align 8 - %"$gasrem_1204" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1205" = icmp ugt i64 2, %"$gasrem_1204" - br i1 %"$gascmp_1205", label %"$out_of_gas_1206", label %"$have_gas_1207" - -"$out_of_gas_1206": ; preds = %"$have_gas_1202" - call void @_out_of_gas() - br label %"$have_gas_1207" - -"$have_gas_1207": ; preds = %"$out_of_gas_1206", %"$have_gas_1202" - %"$consume_1208" = sub i64 %"$gasrem_1204", 2 - store i64 %"$consume_1208", i64* @_gasrem, align 8 - %"$$resopt_38_1210" = load %TName_Option_Uint128*, %TName_Option_Uint128** %"$resopt_38", align 8 - %"$$resopt_38_tag_1211" = getelementptr inbounds %TName_Option_Uint128, %TName_Option_Uint128* %"$$resopt_38_1210", i32 0, i32 0 - %"$$resopt_38_tag_1212" = load i8, i8* %"$$resopt_38_tag_1211", align 1 - switch i8 %"$$resopt_38_tag_1212", label %"$empty_default_1213" [ - i8 0, label %"$Some_1214" - i8 1, label %"$None_1260" - ], !dbg !126 - -"$Some_1214": ; preds = %"$have_gas_1207" - %"$$resopt_38_1215" = bitcast %TName_Option_Uint128* %"$$resopt_38_1210" to %CName_Some_Uint128* - %"$res_gep_1216" = getelementptr inbounds %CName_Some_Uint128, %CName_Some_Uint128* %"$$resopt_38_1215", i32 0, i32 1 - %"$res_load_1217" = load %Uint128, %Uint128* %"$res_gep_1216", align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$test_39", metadata !248, metadata !DIExpression()), !dbg !249 + %"$gasrem_1206" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1207" = icmp ugt i64 2, %"$gasrem_1206" + br i1 %"$gascmp_1207", label %"$out_of_gas_1208", label %"$have_gas_1209" + +"$out_of_gas_1208": ; preds = %"$have_gas_1204" + call void @_out_of_gas() + br label %"$have_gas_1209" + +"$have_gas_1209": ; preds = %"$out_of_gas_1208", %"$have_gas_1204" + %"$consume_1210" = sub i64 %"$gasrem_1206", 2 + store i64 %"$consume_1210", i64* @_gasrem, align 8 + %"$$resopt_38_1212" = load %TName_Option_Uint128*, %TName_Option_Uint128** %"$resopt_38", align 8 + %"$$resopt_38_tag_1213" = getelementptr inbounds %TName_Option_Uint128, %TName_Option_Uint128* %"$$resopt_38_1212", i32 0, i32 0 + %"$$resopt_38_tag_1214" = load i8, i8* %"$$resopt_38_tag_1213", align 1 + switch i8 %"$$resopt_38_tag_1214", label %"$empty_default_1215" [ + i8 0, label %"$Some_1216" + i8 1, label %"$None_1262" + ], !dbg !250 + +"$Some_1216": ; preds = %"$have_gas_1209" + %"$$resopt_38_1217" = bitcast %TName_Option_Uint128* %"$$resopt_38_1212" to %CName_Some_Uint128* + %"$res_gep_1218" = getelementptr inbounds %CName_Some_Uint128, %CName_Some_Uint128* %"$$resopt_38_1217", i32 0, i32 1 + %"$res_load_1219" = load %Uint128, %Uint128* %"$res_gep_1218", align 8 %res16 = alloca %Uint128, align 8 - store %Uint128 %"$res_load_1217", %Uint128* %res16, align 8 - %"$gasrem_1218" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1219" = icmp ugt i64 1, %"$gasrem_1218" - br i1 %"$gascmp_1219", label %"$out_of_gas_1220", label %"$have_gas_1221" + store %Uint128 %"$res_load_1219", %Uint128* %res16, align 8 + %"$gasrem_1220" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1221" = icmp ugt i64 1, %"$gasrem_1220" + br i1 %"$gascmp_1221", label %"$out_of_gas_1222", label %"$have_gas_1223" -"$out_of_gas_1220": ; preds = %"$Some_1214" +"$out_of_gas_1222": ; preds = %"$Some_1216" call void @_out_of_gas() - br label %"$have_gas_1221" + br label %"$have_gas_1223" -"$have_gas_1221": ; preds = %"$out_of_gas_1220", %"$Some_1214" - %"$consume_1222" = sub i64 %"$gasrem_1218", 1 - store i64 %"$consume_1222", i64* @_gasrem, align 8 +"$have_gas_1223": ; preds = %"$out_of_gas_1222", %"$Some_1216" + %"$consume_1224" = sub i64 %"$gasrem_1220", 1 + store i64 %"$consume_1224", i64* @_gasrem, align 8 %input_17 = alloca %Uint128, align 8 - %"$gasrem_1223" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1224" = icmp ugt i64 1, %"$gasrem_1223" - br i1 %"$gascmp_1224", label %"$out_of_gas_1225", label %"$have_gas_1226" + call void @llvm.dbg.declare(metadata %Uint128* %input_17, metadata !251, metadata !DIExpression()), !dbg !254 + %"$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" -"$out_of_gas_1225": ; preds = %"$have_gas_1221" +"$out_of_gas_1227": ; preds = %"$have_gas_1223" call void @_out_of_gas() - br label %"$have_gas_1226" + br label %"$have_gas_1228" -"$have_gas_1226": ; preds = %"$out_of_gas_1225", %"$have_gas_1221" - %"$consume_1227" = sub i64 %"$gasrem_1223", 1 - store i64 %"$consume_1227", i64* @_gasrem, align 8 - store %Uint128 { i128 -1 }, %Uint128* %input_17, align 8, !dbg !127 - %"$gasrem_1228" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1229" = icmp ugt i64 1, %"$gasrem_1228" - br i1 %"$gascmp_1229", label %"$out_of_gas_1230", label %"$have_gas_1231" +"$have_gas_1228": ; preds = %"$out_of_gas_1227", %"$have_gas_1223" + %"$consume_1229" = sub i64 %"$gasrem_1225", 1 + store i64 %"$consume_1229", i64* @_gasrem, align 8 + store %Uint128 { i128 -1 }, %Uint128* %input_17, align 8, !dbg !255 + %"$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" -"$out_of_gas_1230": ; preds = %"$have_gas_1226" +"$out_of_gas_1232": ; preds = %"$have_gas_1228" call void @_out_of_gas() - br label %"$have_gas_1231" + br label %"$have_gas_1233" -"$have_gas_1231": ; preds = %"$out_of_gas_1230", %"$have_gas_1226" - %"$consume_1232" = sub i64 %"$gasrem_1228", 1 - store i64 %"$consume_1232", i64* @_gasrem, align 8 +"$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 %test_18 = alloca %TName_Bool*, align 8 - %"$gasrem_1234" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1235" = icmp ugt i64 8, %"$gasrem_1234" - br i1 %"$gascmp_1235", label %"$out_of_gas_1236", label %"$have_gas_1237" - -"$out_of_gas_1236": ; preds = %"$have_gas_1231" - call void @_out_of_gas() - br label %"$have_gas_1237" - -"$have_gas_1237": ; preds = %"$out_of_gas_1236", %"$have_gas_1231" - %"$consume_1238" = sub i64 %"$gasrem_1234", 8 - store i64 %"$consume_1238", i64* @_gasrem, align 8 - %"$execptr_load_1239" = load i8*, i8** @_execptr, align 8 - %"$res_1240" = load %Uint128, %Uint128* %res16, align 8 - %"$input__1241" = load %Uint128, %Uint128* %input_17, align 8 - %"$eq_call_1242" = call %TName_Bool* @_eq_Uint128(i8* %"$execptr_load_1239", %Uint128 %"$res_1240", %Uint128 %"$input__1241"), !dbg !130 - store %TName_Bool* %"$eq_call_1242", %TName_Bool** %test_18, align 8, !dbg !130 - %"$gasrem_1244" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1245" = icmp ugt i64 1, %"$gasrem_1244" - br i1 %"$gascmp_1245", label %"$out_of_gas_1246", label %"$have_gas_1247" - -"$out_of_gas_1246": ; preds = %"$have_gas_1237" - call void @_out_of_gas() - br label %"$have_gas_1247" - -"$have_gas_1247": ; preds = %"$out_of_gas_1246", %"$have_gas_1237" - %"$consume_1248" = sub i64 %"$gasrem_1244", 1 - store i64 %"$consume_1248", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %test_18, metadata !256, metadata !DIExpression()), !dbg !257 + %"$gasrem_1236" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1237" = icmp ugt i64 8, %"$gasrem_1236" + br i1 %"$gascmp_1237", label %"$out_of_gas_1238", label %"$have_gas_1239" + +"$out_of_gas_1238": ; preds = %"$have_gas_1233" + call void @_out_of_gas() + br label %"$have_gas_1239" + +"$have_gas_1239": ; preds = %"$out_of_gas_1238", %"$have_gas_1233" + %"$consume_1240" = sub i64 %"$gasrem_1236", 8 + store i64 %"$consume_1240", i64* @_gasrem, align 8 + %"$execptr_load_1241" = load i8*, i8** @_execptr, align 8 + %"$res_1242" = load %Uint128, %Uint128* %res16, align 8 + %"$input__1243" = load %Uint128, %Uint128* %input_17, align 8 + %"$eq_call_1244" = call %TName_Bool* @_eq_Uint128(i8* %"$execptr_load_1241", %Uint128 %"$res_1242", %Uint128 %"$input__1243"), !dbg !258 + store %TName_Bool* %"$eq_call_1244", %TName_Bool** %test_18, align 8, !dbg !258 + %"$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_1248": ; preds = %"$have_gas_1239" + call void @_out_of_gas() + br label %"$have_gas_1249" + +"$have_gas_1249": ; preds = %"$out_of_gas_1248", %"$have_gas_1239" + %"$consume_1250" = sub i64 %"$gasrem_1246", 1 + store i64 %"$consume_1250", i64* @_gasrem, align 8 %"$BoolUtils.andb_96" = alloca { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, align 8 - %"$BoolUtils.andb_1249" = 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_1250" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_1249", 0 - %"$BoolUtils.andb_envptr_1251" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_1249", 1 - %"$$test_36_1252" = load %TName_Bool*, %TName_Bool** %"$test_36", align 8 - %"$BoolUtils.andb_call_1253" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_1250"(i8* %"$BoolUtils.andb_envptr_1251", %TName_Bool* %"$$test_36_1252"), !dbg !131 - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_1253", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_96", align 8, !dbg !131 + %"$BoolUtils.andb_1251" = 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_1252" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_1251", 0 + %"$BoolUtils.andb_envptr_1253" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_1251", 1 + %"$$test_36_1254" = load %TName_Bool*, %TName_Bool** %"$test_36", align 8 + %"$BoolUtils.andb_call_1255" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_1252"(i8* %"$BoolUtils.andb_envptr_1253", %TName_Bool* %"$$test_36_1254"), !dbg !259 + store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_1255", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_96", align 8, !dbg !259 %"$BoolUtils.andb_97" = alloca %TName_Bool*, align 8 - %"$$BoolUtils.andb_96_1254" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_96", align 8 - %"$$BoolUtils.andb_96_fptr_1255" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_96_1254", 0 - %"$$BoolUtils.andb_96_envptr_1256" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_96_1254", 1 - %"$test__1257" = load %TName_Bool*, %TName_Bool** %test_18, align 8 - %"$$BoolUtils.andb_96_call_1258" = call %TName_Bool* %"$$BoolUtils.andb_96_fptr_1255"(i8* %"$$BoolUtils.andb_96_envptr_1256", %TName_Bool* %"$test__1257"), !dbg !131 - store %TName_Bool* %"$$BoolUtils.andb_96_call_1258", %TName_Bool** %"$BoolUtils.andb_97", align 8, !dbg !131 - %"$$BoolUtils.andb_97_1259" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_97", align 8 - store %TName_Bool* %"$$BoolUtils.andb_97_1259", %TName_Bool** %"$test_39", align 8, !dbg !131 - br label %"$matchsucc_1209" - -"$None_1260": ; preds = %"$have_gas_1207" - %"$$resopt_38_1261" = bitcast %TName_Option_Uint128* %"$$resopt_38_1210" to %CName_None_Uint128* - %"$gasrem_1262" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1263" = icmp ugt i64 1, %"$gasrem_1262" - br i1 %"$gascmp_1263", label %"$out_of_gas_1264", label %"$have_gas_1265" - -"$out_of_gas_1264": ; preds = %"$None_1260" - call void @_out_of_gas() - br label %"$have_gas_1265" - -"$have_gas_1265": ; preds = %"$out_of_gas_1264", %"$None_1260" - %"$consume_1266" = sub i64 %"$gasrem_1262", 1 - store i64 %"$consume_1266", i64* @_gasrem, align 8 - %"$false_1267" = load %TName_Bool*, %TName_Bool** %false, align 8 - store %TName_Bool* %"$false_1267", %TName_Bool** %"$test_39", align 8, !dbg !132 - br label %"$matchsucc_1209" - -"$empty_default_1213": ; preds = %"$have_gas_1207" - br label %"$matchsucc_1209" - -"$matchsucc_1209": ; preds = %"$have_gas_1265", %"$have_gas_1247", %"$empty_default_1213" - %"$gasrem_1268" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1269" = icmp ugt i64 1, %"$gasrem_1268" - br i1 %"$gascmp_1269", label %"$out_of_gas_1270", label %"$have_gas_1271" - -"$out_of_gas_1270": ; preds = %"$matchsucc_1209" - call void @_out_of_gas() - br label %"$have_gas_1271" - -"$have_gas_1271": ; preds = %"$out_of_gas_1270", %"$matchsucc_1209" - %"$consume_1272" = sub i64 %"$gasrem_1268", 1 - store i64 %"$consume_1272", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$BoolUtils.andb_97", metadata !260, metadata !DIExpression()), !dbg !259 + %"$$BoolUtils.andb_96_1256" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_96", align 8 + %"$$BoolUtils.andb_96_fptr_1257" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_96_1256", 0 + %"$$BoolUtils.andb_96_envptr_1258" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_96_1256", 1 + %"$test__1259" = load %TName_Bool*, %TName_Bool** %test_18, align 8 + %"$$BoolUtils.andb_96_call_1260" = call %TName_Bool* %"$$BoolUtils.andb_96_fptr_1257"(i8* %"$$BoolUtils.andb_96_envptr_1258", %TName_Bool* %"$test__1259"), !dbg !259 + store %TName_Bool* %"$$BoolUtils.andb_96_call_1260", %TName_Bool** %"$BoolUtils.andb_97", align 8, !dbg !259 + %"$$BoolUtils.andb_97_1261" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_97", align 8 + store %TName_Bool* %"$$BoolUtils.andb_97_1261", %TName_Bool** %"$test_39", align 8, !dbg !259 + br label %"$matchsucc_1211" + +"$None_1262": ; preds = %"$have_gas_1209" + %"$$resopt_38_1263" = bitcast %TName_Option_Uint128* %"$$resopt_38_1212" to %CName_None_Uint128* + %"$gasrem_1264" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1265" = icmp ugt i64 1, %"$gasrem_1264" + br i1 %"$gascmp_1265", label %"$out_of_gas_1266", label %"$have_gas_1267" + +"$out_of_gas_1266": ; preds = %"$None_1262" + call void @_out_of_gas() + br label %"$have_gas_1267" + +"$have_gas_1267": ; preds = %"$out_of_gas_1266", %"$None_1262" + %"$consume_1268" = sub i64 %"$gasrem_1264", 1 + store i64 %"$consume_1268", i64* @_gasrem, align 8 + %"$false_1269" = load %TName_Bool*, %TName_Bool** %false, align 8 + store %TName_Bool* %"$false_1269", %TName_Bool** %"$test_39", align 8, !dbg !261 + br label %"$matchsucc_1211" + +"$empty_default_1215": ; preds = %"$have_gas_1209" + br label %"$matchsucc_1211" + +"$matchsucc_1211": ; preds = %"$have_gas_1267", %"$have_gas_1249", %"$empty_default_1215" + %"$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 = %"$matchsucc_1211" + call void @_out_of_gas() + br label %"$have_gas_1273" + +"$have_gas_1273": ; preds = %"$out_of_gas_1272", %"$matchsucc_1211" + %"$consume_1274" = sub i64 %"$gasrem_1270", 1 + store i64 %"$consume_1274", i64* @_gasrem, align 8 %"$input_40" = alloca %Uint256, align 8 - %"$gasrem_1273" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1274" = icmp ugt i64 1, %"$gasrem_1273" - br i1 %"$gascmp_1274", label %"$out_of_gas_1275", label %"$have_gas_1276" + call void @llvm.dbg.declare(metadata %Uint256* %"$input_40", metadata !263, metadata !DIExpression()), !dbg !264 + %"$gasrem_1275" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1276" = icmp ugt i64 1, %"$gasrem_1275" + br i1 %"$gascmp_1276", label %"$out_of_gas_1277", label %"$have_gas_1278" -"$out_of_gas_1275": ; preds = %"$have_gas_1271" +"$out_of_gas_1277": ; preds = %"$have_gas_1273" call void @_out_of_gas() - br label %"$have_gas_1276" + br label %"$have_gas_1278" -"$have_gas_1276": ; preds = %"$out_of_gas_1275", %"$have_gas_1271" - %"$consume_1277" = sub i64 %"$gasrem_1273", 1 - store i64 %"$consume_1277", i64* @_gasrem, align 8 - store %Uint256 { i256 340282366920938463463374607431768211456 }, %Uint256* %"$input_40", align 8, !dbg !134 - %"$gasrem_1278" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1279" = icmp ugt i64 1, %"$gasrem_1278" - br i1 %"$gascmp_1279", label %"$out_of_gas_1280", label %"$have_gas_1281" +"$have_gas_1278": ; preds = %"$out_of_gas_1277", %"$have_gas_1273" + %"$consume_1279" = sub i64 %"$gasrem_1275", 1 + store i64 %"$consume_1279", i64* @_gasrem, align 8 + store %Uint256 { i256 340282366920938463463374607431768211456 }, %Uint256* %"$input_40", align 8, !dbg !265 + %"$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" -"$out_of_gas_1280": ; preds = %"$have_gas_1276" +"$out_of_gas_1282": ; preds = %"$have_gas_1278" call void @_out_of_gas() - br label %"$have_gas_1281" + br label %"$have_gas_1283" -"$have_gas_1281": ; preds = %"$out_of_gas_1280", %"$have_gas_1276" - %"$consume_1282" = sub i64 %"$gasrem_1278", 1 - store i64 %"$consume_1282", i64* @_gasrem, align 8 +"$have_gas_1283": ; preds = %"$out_of_gas_1282", %"$have_gas_1278" + %"$consume_1284" = sub i64 %"$gasrem_1280", 1 + store i64 %"$consume_1284", i64* @_gasrem, align 8 %"$resopt_41" = alloca %TName_Option_Uint128*, align 8 - %"$gasrem_1283" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1284" = icmp ugt i64 8, %"$gasrem_1283" - br i1 %"$gascmp_1284", label %"$out_of_gas_1285", label %"$have_gas_1286" - -"$out_of_gas_1285": ; preds = %"$have_gas_1281" - call void @_out_of_gas() - br label %"$have_gas_1286" - -"$have_gas_1286": ; preds = %"$out_of_gas_1285", %"$have_gas_1281" - %"$consume_1287" = sub i64 %"$gasrem_1283", 8 - store i64 %"$consume_1287", i64* @_gasrem, align 8 - %"$execptr_load_1288" = load i8*, i8** @_execptr, align 8 - %"$to_uint128_$input_40_1289" = alloca %Uint256, align 8 - %"$$input_40_1290" = load %Uint256, %Uint256* %"$input_40", align 8 - store %Uint256 %"$$input_40_1290", %Uint256* %"$to_uint128_$input_40_1289", align 8 - %"$$to_uint128_$input_40_1289_1291" = bitcast %Uint256* %"$to_uint128_$input_40_1289" to i8* - %"$to_uint128_call_1292" = call i8* @_to_uint128(i8* %"$execptr_load_1288", %_TyDescrTy_Typ* @"$TyDescr_Uint256_129", i8* %"$$to_uint128_$input_40_1289_1291"), !dbg !135 - %"$to_uint128_1293" = bitcast i8* %"$to_uint128_call_1292" to %TName_Option_Uint128* - store %TName_Option_Uint128* %"$to_uint128_1293", %TName_Option_Uint128** %"$resopt_41", align 8, !dbg !135 - %"$gasrem_1294" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1295" = icmp ugt i64 1, %"$gasrem_1294" - br i1 %"$gascmp_1295", label %"$out_of_gas_1296", label %"$have_gas_1297" - -"$out_of_gas_1296": ; preds = %"$have_gas_1286" - call void @_out_of_gas() - br label %"$have_gas_1297" - -"$have_gas_1297": ; preds = %"$out_of_gas_1296", %"$have_gas_1286" - %"$consume_1298" = sub i64 %"$gasrem_1294", 1 - store i64 %"$consume_1298", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Option_Uint128** %"$resopt_41", metadata !266, metadata !DIExpression()), !dbg !267 + %"$gasrem_1285" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1286" = icmp ugt i64 8, %"$gasrem_1285" + br i1 %"$gascmp_1286", label %"$out_of_gas_1287", label %"$have_gas_1288" + +"$out_of_gas_1287": ; preds = %"$have_gas_1283" + call void @_out_of_gas() + br label %"$have_gas_1288" + +"$have_gas_1288": ; preds = %"$out_of_gas_1287", %"$have_gas_1283" + %"$consume_1289" = sub i64 %"$gasrem_1285", 8 + store i64 %"$consume_1289", i64* @_gasrem, align 8 + %"$execptr_load_1290" = load i8*, i8** @_execptr, align 8 + %"$to_uint128_$input_40_1291" = alloca %Uint256, align 8 + %"$$input_40_1292" = load %Uint256, %Uint256* %"$input_40", align 8 + store %Uint256 %"$$input_40_1292", %Uint256* %"$to_uint128_$input_40_1291", align 8 + %"$$to_uint128_$input_40_1291_1293" = bitcast %Uint256* %"$to_uint128_$input_40_1291" to i8* + %"$to_uint128_call_1294" = call i8* @_to_uint128(i8* %"$execptr_load_1290", %_TyDescrTy_Typ* @"$TyDescr_Uint256_129", i8* %"$$to_uint128_$input_40_1291_1293"), !dbg !268 + %"$to_uint128_1295" = bitcast i8* %"$to_uint128_call_1294" to %TName_Option_Uint128* + store %TName_Option_Uint128* %"$to_uint128_1295", %TName_Option_Uint128** %"$resopt_41", align 8, !dbg !268 + %"$gasrem_1296" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1297" = icmp ugt i64 1, %"$gasrem_1296" + br i1 %"$gascmp_1297", label %"$out_of_gas_1298", label %"$have_gas_1299" + +"$out_of_gas_1298": ; preds = %"$have_gas_1288" + call void @_out_of_gas() + br label %"$have_gas_1299" + +"$have_gas_1299": ; preds = %"$out_of_gas_1298", %"$have_gas_1288" + %"$consume_1300" = sub i64 %"$gasrem_1296", 1 + store i64 %"$consume_1300", i64* @_gasrem, align 8 %"$test_42" = alloca %TName_Bool*, align 8 - %"$gasrem_1299" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1300" = icmp ugt i64 2, %"$gasrem_1299" - br i1 %"$gascmp_1300", label %"$out_of_gas_1301", label %"$have_gas_1302" - -"$out_of_gas_1301": ; preds = %"$have_gas_1297" - call void @_out_of_gas() - br label %"$have_gas_1302" - -"$have_gas_1302": ; preds = %"$out_of_gas_1301", %"$have_gas_1297" - %"$consume_1303" = sub i64 %"$gasrem_1299", 2 - store i64 %"$consume_1303", i64* @_gasrem, align 8 - %"$$resopt_41_1305" = load %TName_Option_Uint128*, %TName_Option_Uint128** %"$resopt_41", align 8 - %"$$resopt_41_tag_1306" = getelementptr inbounds %TName_Option_Uint128, %TName_Option_Uint128* %"$$resopt_41_1305", i32 0, i32 0 - %"$$resopt_41_tag_1307" = load i8, i8* %"$$resopt_41_tag_1306", align 1 - switch i8 %"$$resopt_41_tag_1307", label %"$empty_default_1308" [ - i8 0, label %"$Some_1309" - i8 1, label %"$None_1319" - ], !dbg !136 - -"$Some_1309": ; preds = %"$have_gas_1302" - %"$$resopt_41_1310" = bitcast %TName_Option_Uint128* %"$$resopt_41_1305" to %CName_Some_Uint128* - %"$$$resopt_41_78_gep_1311" = getelementptr inbounds %CName_Some_Uint128, %CName_Some_Uint128* %"$$resopt_41_1310", i32 0, i32 1 - %"$$$resopt_41_78_load_1312" = load %Uint128, %Uint128* %"$$$resopt_41_78_gep_1311", align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$test_42", metadata !269, metadata !DIExpression()), !dbg !270 + %"$gasrem_1301" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1302" = icmp ugt i64 2, %"$gasrem_1301" + br i1 %"$gascmp_1302", label %"$out_of_gas_1303", label %"$have_gas_1304" + +"$out_of_gas_1303": ; preds = %"$have_gas_1299" + call void @_out_of_gas() + br label %"$have_gas_1304" + +"$have_gas_1304": ; preds = %"$out_of_gas_1303", %"$have_gas_1299" + %"$consume_1305" = sub i64 %"$gasrem_1301", 2 + store i64 %"$consume_1305", i64* @_gasrem, align 8 + %"$$resopt_41_1307" = load %TName_Option_Uint128*, %TName_Option_Uint128** %"$resopt_41", align 8 + %"$$resopt_41_tag_1308" = getelementptr inbounds %TName_Option_Uint128, %TName_Option_Uint128* %"$$resopt_41_1307", i32 0, i32 0 + %"$$resopt_41_tag_1309" = load i8, i8* %"$$resopt_41_tag_1308", align 1 + switch i8 %"$$resopt_41_tag_1309", label %"$empty_default_1310" [ + i8 0, label %"$Some_1311" + i8 1, label %"$None_1321" + ], !dbg !271 + +"$Some_1311": ; preds = %"$have_gas_1304" + %"$$resopt_41_1312" = bitcast %TName_Option_Uint128* %"$$resopt_41_1307" to %CName_Some_Uint128* + %"$$$resopt_41_78_gep_1313" = getelementptr inbounds %CName_Some_Uint128, %CName_Some_Uint128* %"$$resopt_41_1312", i32 0, i32 1 + %"$$$resopt_41_78_load_1314" = load %Uint128, %Uint128* %"$$$resopt_41_78_gep_1313", align 8 %"$$resopt_41_78" = alloca %Uint128, align 8 - store %Uint128 %"$$$resopt_41_78_load_1312", %Uint128* %"$$resopt_41_78", align 8 - %"$gasrem_1313" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1314" = icmp ugt i64 1, %"$gasrem_1313" - br i1 %"$gascmp_1314", label %"$out_of_gas_1315", label %"$have_gas_1316" + store %Uint128 %"$$$resopt_41_78_load_1314", %Uint128* %"$$resopt_41_78", 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_1315": ; preds = %"$Some_1309" +"$out_of_gas_1317": ; preds = %"$Some_1311" call void @_out_of_gas() - br label %"$have_gas_1316" + br label %"$have_gas_1318" -"$have_gas_1316": ; preds = %"$out_of_gas_1315", %"$Some_1309" - %"$consume_1317" = sub i64 %"$gasrem_1313", 1 - store i64 %"$consume_1317", i64* @_gasrem, align 8 - %"$false_1318" = load %TName_Bool*, %TName_Bool** %false, align 8 - store %TName_Bool* %"$false_1318", %TName_Bool** %"$test_42", align 8, !dbg !137 - br label %"$matchsucc_1304" +"$have_gas_1318": ; preds = %"$out_of_gas_1317", %"$Some_1311" + %"$consume_1319" = sub i64 %"$gasrem_1315", 1 + store i64 %"$consume_1319", i64* @_gasrem, align 8 + %"$false_1320" = load %TName_Bool*, %TName_Bool** %false, align 8 + store %TName_Bool* %"$false_1320", %TName_Bool** %"$test_42", align 8, !dbg !272 + br label %"$matchsucc_1306" -"$None_1319": ; preds = %"$have_gas_1302" - %"$$resopt_41_1320" = bitcast %TName_Option_Uint128* %"$$resopt_41_1305" to %CName_None_Uint128* - %"$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" +"$None_1321": ; preds = %"$have_gas_1304" + %"$$resopt_41_1322" = bitcast %TName_Option_Uint128* %"$$resopt_41_1307" to %CName_None_Uint128* + %"$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" -"$out_of_gas_1323": ; preds = %"$None_1319" +"$out_of_gas_1325": ; preds = %"$None_1321" call void @_out_of_gas() - br label %"$have_gas_1324" + br label %"$have_gas_1326" -"$have_gas_1324": ; preds = %"$out_of_gas_1323", %"$None_1319" - %"$consume_1325" = sub i64 %"$gasrem_1321", 1 - store i64 %"$consume_1325", i64* @_gasrem, align 8 - %"$$test_39_1326" = load %TName_Bool*, %TName_Bool** %"$test_39", align 8 - store %TName_Bool* %"$$test_39_1326", %TName_Bool** %"$test_42", align 8, !dbg !140 - br label %"$matchsucc_1304" +"$have_gas_1326": ; preds = %"$out_of_gas_1325", %"$None_1321" + %"$consume_1327" = sub i64 %"$gasrem_1323", 1 + store i64 %"$consume_1327", i64* @_gasrem, align 8 + %"$$test_39_1328" = load %TName_Bool*, %TName_Bool** %"$test_39", align 8 + store %TName_Bool* %"$$test_39_1328", %TName_Bool** %"$test_42", align 8, !dbg !275 + br label %"$matchsucc_1306" -"$empty_default_1308": ; preds = %"$have_gas_1302" - br label %"$matchsucc_1304" +"$empty_default_1310": ; preds = %"$have_gas_1304" + br label %"$matchsucc_1306" -"$matchsucc_1304": ; preds = %"$have_gas_1324", %"$have_gas_1316", %"$empty_default_1308" - %"$gasrem_1327" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1328" = icmp ugt i64 1, %"$gasrem_1327" - br i1 %"$gascmp_1328", label %"$out_of_gas_1329", label %"$have_gas_1330" +"$matchsucc_1306": ; preds = %"$have_gas_1326", %"$have_gas_1318", %"$empty_default_1310" + %"$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" -"$out_of_gas_1329": ; preds = %"$matchsucc_1304" +"$out_of_gas_1331": ; preds = %"$matchsucc_1306" call void @_out_of_gas() - br label %"$have_gas_1330" + br label %"$have_gas_1332" -"$have_gas_1330": ; preds = %"$out_of_gas_1329", %"$matchsucc_1304" - %"$consume_1331" = sub i64 %"$gasrem_1327", 1 - store i64 %"$consume_1331", i64* @_gasrem, align 8 +"$have_gas_1332": ; preds = %"$out_of_gas_1331", %"$matchsucc_1306" + %"$consume_1333" = sub i64 %"$gasrem_1329", 1 + store i64 %"$consume_1333", i64* @_gasrem, align 8 %"$input_43" = alloca %Uint256, 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" + call void @llvm.dbg.declare(metadata %Uint256* %"$input_43", metadata !277, metadata !DIExpression()), !dbg !278 + %"$gasrem_1334" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1335" = icmp ugt i64 1, %"$gasrem_1334" + br i1 %"$gascmp_1335", label %"$out_of_gas_1336", label %"$have_gas_1337" -"$out_of_gas_1334": ; preds = %"$have_gas_1330" +"$out_of_gas_1336": ; preds = %"$have_gas_1332" call void @_out_of_gas() - br label %"$have_gas_1335" + br label %"$have_gas_1337" -"$have_gas_1335": ; preds = %"$out_of_gas_1334", %"$have_gas_1330" - %"$consume_1336" = sub i64 %"$gasrem_1332", 1 - store i64 %"$consume_1336", i64* @_gasrem, align 8 - store %Uint256 { i256 340282366920938463463374607431768211456 }, %Uint256* %"$input_43", align 8, !dbg !142 - %"$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" +"$have_gas_1337": ; preds = %"$out_of_gas_1336", %"$have_gas_1332" + %"$consume_1338" = sub i64 %"$gasrem_1334", 1 + store i64 %"$consume_1338", i64* @_gasrem, align 8 + store %Uint256 { i256 340282366920938463463374607431768211456 }, %Uint256* %"$input_43", align 8, !dbg !279 + %"$gasrem_1339" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1340" = icmp ugt i64 1, %"$gasrem_1339" + br i1 %"$gascmp_1340", label %"$out_of_gas_1341", label %"$have_gas_1342" -"$out_of_gas_1339": ; preds = %"$have_gas_1335" +"$out_of_gas_1341": ; preds = %"$have_gas_1337" call void @_out_of_gas() - br label %"$have_gas_1340" + br label %"$have_gas_1342" -"$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 +"$have_gas_1342": ; preds = %"$out_of_gas_1341", %"$have_gas_1337" + %"$consume_1343" = sub i64 %"$gasrem_1339", 1 + store i64 %"$consume_1343", i64* @_gasrem, align 8 %"$resopt_44" = alloca %TName_Option_Uint256*, align 8 - %"$gasrem_1342" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1343" = icmp ugt i64 16, %"$gasrem_1342" - br i1 %"$gascmp_1343", label %"$out_of_gas_1344", label %"$have_gas_1345" - -"$out_of_gas_1344": ; preds = %"$have_gas_1340" - call void @_out_of_gas() - br label %"$have_gas_1345" - -"$have_gas_1345": ; preds = %"$out_of_gas_1344", %"$have_gas_1340" - %"$consume_1346" = sub i64 %"$gasrem_1342", 16 - store i64 %"$consume_1346", i64* @_gasrem, align 8 - %"$execptr_load_1347" = load i8*, i8** @_execptr, align 8 - %"$to_uint256_$input_43_1348" = alloca %Uint256, align 8 - %"$$input_43_1349" = load %Uint256, %Uint256* %"$input_43", align 8 - store %Uint256 %"$$input_43_1349", %Uint256* %"$to_uint256_$input_43_1348", align 8 - %"$$to_uint256_$input_43_1348_1350" = bitcast %Uint256* %"$to_uint256_$input_43_1348" to i8* - %"$to_uint256_call_1351" = call i8* @_to_uint256(i8* %"$execptr_load_1347", %_TyDescrTy_Typ* @"$TyDescr_Uint256_129", i8* %"$$to_uint256_$input_43_1348_1350"), !dbg !143 - %"$to_uint256_1352" = bitcast i8* %"$to_uint256_call_1351" to %TName_Option_Uint256* - store %TName_Option_Uint256* %"$to_uint256_1352", %TName_Option_Uint256** %"$resopt_44", align 8, !dbg !143 - %"$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_1355": ; preds = %"$have_gas_1345" - call void @_out_of_gas() - br label %"$have_gas_1356" - -"$have_gas_1356": ; preds = %"$out_of_gas_1355", %"$have_gas_1345" - %"$consume_1357" = sub i64 %"$gasrem_1353", 1 - store i64 %"$consume_1357", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Option_Uint256** %"$resopt_44", metadata !280, metadata !DIExpression()), !dbg !283 + %"$gasrem_1344" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1345" = icmp ugt i64 16, %"$gasrem_1344" + br i1 %"$gascmp_1345", label %"$out_of_gas_1346", label %"$have_gas_1347" + +"$out_of_gas_1346": ; preds = %"$have_gas_1342" + call void @_out_of_gas() + br label %"$have_gas_1347" + +"$have_gas_1347": ; preds = %"$out_of_gas_1346", %"$have_gas_1342" + %"$consume_1348" = sub i64 %"$gasrem_1344", 16 + store i64 %"$consume_1348", i64* @_gasrem, align 8 + %"$execptr_load_1349" = load i8*, i8** @_execptr, align 8 + %"$to_uint256_$input_43_1350" = alloca %Uint256, align 8 + %"$$input_43_1351" = load %Uint256, %Uint256* %"$input_43", align 8 + store %Uint256 %"$$input_43_1351", %Uint256* %"$to_uint256_$input_43_1350", align 8 + %"$$to_uint256_$input_43_1350_1352" = bitcast %Uint256* %"$to_uint256_$input_43_1350" to i8* + %"$to_uint256_call_1353" = call i8* @_to_uint256(i8* %"$execptr_load_1349", %_TyDescrTy_Typ* @"$TyDescr_Uint256_129", i8* %"$$to_uint256_$input_43_1350_1352"), !dbg !284 + %"$to_uint256_1354" = bitcast i8* %"$to_uint256_call_1353" to %TName_Option_Uint256* + store %TName_Option_Uint256* %"$to_uint256_1354", %TName_Option_Uint256** %"$resopt_44", align 8, !dbg !284 + %"$gasrem_1355" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1356" = icmp ugt i64 1, %"$gasrem_1355" + br i1 %"$gascmp_1356", label %"$out_of_gas_1357", label %"$have_gas_1358" + +"$out_of_gas_1357": ; preds = %"$have_gas_1347" + call void @_out_of_gas() + br label %"$have_gas_1358" + +"$have_gas_1358": ; preds = %"$out_of_gas_1357", %"$have_gas_1347" + %"$consume_1359" = sub i64 %"$gasrem_1355", 1 + store i64 %"$consume_1359", i64* @_gasrem, align 8 %"$test_45" = alloca %TName_Bool*, align 8 - %"$gasrem_1358" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1359" = icmp ugt i64 2, %"$gasrem_1358" - br i1 %"$gascmp_1359", label %"$out_of_gas_1360", label %"$have_gas_1361" - -"$out_of_gas_1360": ; preds = %"$have_gas_1356" - call void @_out_of_gas() - br label %"$have_gas_1361" - -"$have_gas_1361": ; preds = %"$out_of_gas_1360", %"$have_gas_1356" - %"$consume_1362" = sub i64 %"$gasrem_1358", 2 - store i64 %"$consume_1362", i64* @_gasrem, align 8 - %"$$resopt_44_1364" = load %TName_Option_Uint256*, %TName_Option_Uint256** %"$resopt_44", align 8 - %"$$resopt_44_tag_1365" = getelementptr inbounds %TName_Option_Uint256, %TName_Option_Uint256* %"$$resopt_44_1364", i32 0, i32 0 - %"$$resopt_44_tag_1366" = load i8, i8* %"$$resopt_44_tag_1365", align 1 - switch i8 %"$$resopt_44_tag_1366", label %"$empty_default_1367" [ - i8 0, label %"$Some_1368" - i8 1, label %"$None_1416" - ], !dbg !144 - -"$Some_1368": ; preds = %"$have_gas_1361" - %"$$resopt_44_1369" = bitcast %TName_Option_Uint256* %"$$resopt_44_1364" to %CName_Some_Uint256* - %"$res_gep_1370" = getelementptr inbounds %CName_Some_Uint256, %CName_Some_Uint256* %"$$resopt_44_1369", i32 0, i32 1 - %"$res_load_1371" = load %Uint256, %Uint256* %"$res_gep_1370", align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$test_45", metadata !285, metadata !DIExpression()), !dbg !286 + %"$gasrem_1360" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1361" = icmp ugt i64 2, %"$gasrem_1360" + br i1 %"$gascmp_1361", label %"$out_of_gas_1362", label %"$have_gas_1363" + +"$out_of_gas_1362": ; preds = %"$have_gas_1358" + call void @_out_of_gas() + br label %"$have_gas_1363" + +"$have_gas_1363": ; preds = %"$out_of_gas_1362", %"$have_gas_1358" + %"$consume_1364" = sub i64 %"$gasrem_1360", 2 + store i64 %"$consume_1364", i64* @_gasrem, align 8 + %"$$resopt_44_1366" = load %TName_Option_Uint256*, %TName_Option_Uint256** %"$resopt_44", align 8 + %"$$resopt_44_tag_1367" = getelementptr inbounds %TName_Option_Uint256, %TName_Option_Uint256* %"$$resopt_44_1366", i32 0, i32 0 + %"$$resopt_44_tag_1368" = load i8, i8* %"$$resopt_44_tag_1367", align 1 + switch i8 %"$$resopt_44_tag_1368", label %"$empty_default_1369" [ + i8 0, label %"$Some_1370" + i8 1, label %"$None_1418" + ], !dbg !287 + +"$Some_1370": ; preds = %"$have_gas_1363" + %"$$resopt_44_1371" = bitcast %TName_Option_Uint256* %"$$resopt_44_1366" to %CName_Some_Uint256* + %"$res_gep_1372" = getelementptr inbounds %CName_Some_Uint256, %CName_Some_Uint256* %"$$resopt_44_1371", i32 0, i32 1 + %"$res_load_1373" = load %Uint256, %Uint256* %"$res_gep_1372", align 8 %res19 = alloca %Uint256, align 8 - store %Uint256 %"$res_load_1371", %Uint256* %res19, align 8 - %"$gasrem_1372" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1373" = icmp ugt i64 1, %"$gasrem_1372" - br i1 %"$gascmp_1373", label %"$out_of_gas_1374", label %"$have_gas_1375" + store %Uint256 %"$res_load_1373", %Uint256* %res19, align 8 + %"$gasrem_1374" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1375" = icmp ugt i64 1, %"$gasrem_1374" + br i1 %"$gascmp_1375", label %"$out_of_gas_1376", label %"$have_gas_1377" -"$out_of_gas_1374": ; preds = %"$Some_1368" +"$out_of_gas_1376": ; preds = %"$Some_1370" call void @_out_of_gas() - br label %"$have_gas_1375" + br label %"$have_gas_1377" -"$have_gas_1375": ; preds = %"$out_of_gas_1374", %"$Some_1368" - %"$consume_1376" = sub i64 %"$gasrem_1372", 1 - store i64 %"$consume_1376", i64* @_gasrem, align 8 +"$have_gas_1377": ; preds = %"$out_of_gas_1376", %"$Some_1370" + %"$consume_1378" = sub i64 %"$gasrem_1374", 1 + store i64 %"$consume_1378", i64* @_gasrem, align 8 %input_20 = alloca %Uint256, align 8 - %"$gasrem_1377" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1378" = icmp ugt i64 1, %"$gasrem_1377" - br i1 %"$gascmp_1378", label %"$out_of_gas_1379", label %"$have_gas_1380" + call void @llvm.dbg.declare(metadata %Uint256* %input_20, metadata !288, metadata !DIExpression()), !dbg !291 + %"$gasrem_1379" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1380" = icmp ugt i64 1, %"$gasrem_1379" + br i1 %"$gascmp_1380", label %"$out_of_gas_1381", label %"$have_gas_1382" -"$out_of_gas_1379": ; preds = %"$have_gas_1375" +"$out_of_gas_1381": ; preds = %"$have_gas_1377" call void @_out_of_gas() - br label %"$have_gas_1380" + br label %"$have_gas_1382" -"$have_gas_1380": ; preds = %"$out_of_gas_1379", %"$have_gas_1375" - %"$consume_1381" = sub i64 %"$gasrem_1377", 1 - store i64 %"$consume_1381", i64* @_gasrem, align 8 - store %Uint256 { i256 340282366920938463463374607431768211456 }, %Uint256* %input_20, align 8, !dbg !145 - %"$gasrem_1382" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1383" = icmp ugt i64 1, %"$gasrem_1382" - br i1 %"$gascmp_1383", label %"$out_of_gas_1384", label %"$have_gas_1385" +"$have_gas_1382": ; preds = %"$out_of_gas_1381", %"$have_gas_1377" + %"$consume_1383" = sub i64 %"$gasrem_1379", 1 + store i64 %"$consume_1383", i64* @_gasrem, align 8 + store %Uint256 { i256 340282366920938463463374607431768211456 }, %Uint256* %input_20, align 8, !dbg !292 + %"$gasrem_1384" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1385" = icmp ugt i64 1, %"$gasrem_1384" + br i1 %"$gascmp_1385", label %"$out_of_gas_1386", label %"$have_gas_1387" -"$out_of_gas_1384": ; preds = %"$have_gas_1380" +"$out_of_gas_1386": ; preds = %"$have_gas_1382" call void @_out_of_gas() - br label %"$have_gas_1385" + br label %"$have_gas_1387" -"$have_gas_1385": ; preds = %"$out_of_gas_1384", %"$have_gas_1380" - %"$consume_1386" = sub i64 %"$gasrem_1382", 1 - store i64 %"$consume_1386", i64* @_gasrem, align 8 +"$have_gas_1387": ; preds = %"$out_of_gas_1386", %"$have_gas_1382" + %"$consume_1388" = sub i64 %"$gasrem_1384", 1 + store i64 %"$consume_1388", i64* @_gasrem, align 8 %test_21 = alloca %TName_Bool*, align 8 - %"$gasrem_1388" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1389" = icmp ugt i64 16, %"$gasrem_1388" - br i1 %"$gascmp_1389", label %"$out_of_gas_1390", label %"$have_gas_1391" - -"$out_of_gas_1390": ; preds = %"$have_gas_1385" - call void @_out_of_gas() - br label %"$have_gas_1391" - -"$have_gas_1391": ; preds = %"$out_of_gas_1390", %"$have_gas_1385" - %"$consume_1392" = sub i64 %"$gasrem_1388", 16 - store i64 %"$consume_1392", i64* @_gasrem, align 8 - %"$execptr_load_1393" = load i8*, i8** @_execptr, align 8 - %"$eq_res_1394" = alloca %Uint256, align 8 - %"$res_1395" = load %Uint256, %Uint256* %res19, align 8 - store %Uint256 %"$res_1395", %Uint256* %"$eq_res_1394", align 8 - %"$eq_input__1396" = alloca %Uint256, align 8 - %"$input__1397" = load %Uint256, %Uint256* %input_20, align 8 - store %Uint256 %"$input__1397", %Uint256* %"$eq_input__1396", align 8 - %"$eq_call_1398" = call %TName_Bool* @_eq_Uint256(i8* %"$execptr_load_1393", %Uint256* %"$eq_res_1394", %Uint256* %"$eq_input__1396"), !dbg !148 - store %TName_Bool* %"$eq_call_1398", %TName_Bool** %test_21, align 8, !dbg !148 - %"$gasrem_1400" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1401" = icmp ugt i64 1, %"$gasrem_1400" - br i1 %"$gascmp_1401", label %"$out_of_gas_1402", label %"$have_gas_1403" - -"$out_of_gas_1402": ; preds = %"$have_gas_1391" - call void @_out_of_gas() - br label %"$have_gas_1403" - -"$have_gas_1403": ; preds = %"$out_of_gas_1402", %"$have_gas_1391" - %"$consume_1404" = sub i64 %"$gasrem_1400", 1 - store i64 %"$consume_1404", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %test_21, metadata !293, metadata !DIExpression()), !dbg !294 + %"$gasrem_1390" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1391" = icmp ugt i64 16, %"$gasrem_1390" + br i1 %"$gascmp_1391", label %"$out_of_gas_1392", label %"$have_gas_1393" + +"$out_of_gas_1392": ; preds = %"$have_gas_1387" + call void @_out_of_gas() + br label %"$have_gas_1393" + +"$have_gas_1393": ; preds = %"$out_of_gas_1392", %"$have_gas_1387" + %"$consume_1394" = sub i64 %"$gasrem_1390", 16 + store i64 %"$consume_1394", i64* @_gasrem, align 8 + %"$execptr_load_1395" = load i8*, i8** @_execptr, align 8 + %"$eq_res_1396" = alloca %Uint256, align 8 + %"$res_1397" = load %Uint256, %Uint256* %res19, align 8 + store %Uint256 %"$res_1397", %Uint256* %"$eq_res_1396", align 8 + %"$eq_input__1398" = alloca %Uint256, align 8 + %"$input__1399" = load %Uint256, %Uint256* %input_20, align 8 + store %Uint256 %"$input__1399", %Uint256* %"$eq_input__1398", align 8 + %"$eq_call_1400" = call %TName_Bool* @_eq_Uint256(i8* %"$execptr_load_1395", %Uint256* %"$eq_res_1396", %Uint256* %"$eq_input__1398"), !dbg !295 + store %TName_Bool* %"$eq_call_1400", %TName_Bool** %test_21, align 8, !dbg !295 + %"$gasrem_1402" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1403" = icmp ugt i64 1, %"$gasrem_1402" + br i1 %"$gascmp_1403", label %"$out_of_gas_1404", label %"$have_gas_1405" + +"$out_of_gas_1404": ; preds = %"$have_gas_1393" + call void @_out_of_gas() + br label %"$have_gas_1405" + +"$have_gas_1405": ; preds = %"$out_of_gas_1404", %"$have_gas_1393" + %"$consume_1406" = sub i64 %"$gasrem_1402", 1 + store i64 %"$consume_1406", i64* @_gasrem, align 8 %"$BoolUtils.andb_98" = alloca { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, align 8 - %"$BoolUtils.andb_1405" = 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_1406" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_1405", 0 - %"$BoolUtils.andb_envptr_1407" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_1405", 1 - %"$$test_42_1408" = load %TName_Bool*, %TName_Bool** %"$test_42", align 8 - %"$BoolUtils.andb_call_1409" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_1406"(i8* %"$BoolUtils.andb_envptr_1407", %TName_Bool* %"$$test_42_1408"), !dbg !149 - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_1409", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_98", align 8, !dbg !149 + %"$BoolUtils.andb_1407" = 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_1408" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_1407", 0 + %"$BoolUtils.andb_envptr_1409" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_1407", 1 + %"$$test_42_1410" = load %TName_Bool*, %TName_Bool** %"$test_42", align 8 + %"$BoolUtils.andb_call_1411" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_1408"(i8* %"$BoolUtils.andb_envptr_1409", %TName_Bool* %"$$test_42_1410"), !dbg !296 + store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_1411", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_98", align 8, !dbg !296 %"$BoolUtils.andb_99" = alloca %TName_Bool*, align 8 - %"$$BoolUtils.andb_98_1410" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_98", align 8 - %"$$BoolUtils.andb_98_fptr_1411" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_98_1410", 0 - %"$$BoolUtils.andb_98_envptr_1412" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_98_1410", 1 - %"$test__1413" = load %TName_Bool*, %TName_Bool** %test_21, align 8 - %"$$BoolUtils.andb_98_call_1414" = call %TName_Bool* %"$$BoolUtils.andb_98_fptr_1411"(i8* %"$$BoolUtils.andb_98_envptr_1412", %TName_Bool* %"$test__1413"), !dbg !149 - store %TName_Bool* %"$$BoolUtils.andb_98_call_1414", %TName_Bool** %"$BoolUtils.andb_99", align 8, !dbg !149 - %"$$BoolUtils.andb_99_1415" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_99", align 8 - store %TName_Bool* %"$$BoolUtils.andb_99_1415", %TName_Bool** %"$test_45", align 8, !dbg !149 - br label %"$matchsucc_1363" - -"$None_1416": ; preds = %"$have_gas_1361" - %"$$resopt_44_1417" = bitcast %TName_Option_Uint256* %"$$resopt_44_1364" to %CName_None_Uint256* - %"$gasrem_1418" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1419" = icmp ugt i64 1, %"$gasrem_1418" - br i1 %"$gascmp_1419", label %"$out_of_gas_1420", label %"$have_gas_1421" - -"$out_of_gas_1420": ; preds = %"$None_1416" - call void @_out_of_gas() - br label %"$have_gas_1421" - -"$have_gas_1421": ; preds = %"$out_of_gas_1420", %"$None_1416" - %"$consume_1422" = sub i64 %"$gasrem_1418", 1 - store i64 %"$consume_1422", i64* @_gasrem, align 8 - %"$false_1423" = load %TName_Bool*, %TName_Bool** %false, align 8 - store %TName_Bool* %"$false_1423", %TName_Bool** %"$test_45", align 8, !dbg !150 - br label %"$matchsucc_1363" - -"$empty_default_1367": ; preds = %"$have_gas_1361" - br label %"$matchsucc_1363" - -"$matchsucc_1363": ; preds = %"$have_gas_1421", %"$have_gas_1403", %"$empty_default_1367" - %"$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 = %"$matchsucc_1363" - call void @_out_of_gas() - br label %"$have_gas_1427" - -"$have_gas_1427": ; preds = %"$out_of_gas_1426", %"$matchsucc_1363" - %"$consume_1428" = sub i64 %"$gasrem_1424", 1 - store i64 %"$consume_1428", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$BoolUtils.andb_99", metadata !297, metadata !DIExpression()), !dbg !296 + %"$$BoolUtils.andb_98_1412" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_98", align 8 + %"$$BoolUtils.andb_98_fptr_1413" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_98_1412", 0 + %"$$BoolUtils.andb_98_envptr_1414" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_98_1412", 1 + %"$test__1415" = load %TName_Bool*, %TName_Bool** %test_21, align 8 + %"$$BoolUtils.andb_98_call_1416" = call %TName_Bool* %"$$BoolUtils.andb_98_fptr_1413"(i8* %"$$BoolUtils.andb_98_envptr_1414", %TName_Bool* %"$test__1415"), !dbg !296 + store %TName_Bool* %"$$BoolUtils.andb_98_call_1416", %TName_Bool** %"$BoolUtils.andb_99", align 8, !dbg !296 + %"$$BoolUtils.andb_99_1417" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_99", align 8 + store %TName_Bool* %"$$BoolUtils.andb_99_1417", %TName_Bool** %"$test_45", align 8, !dbg !296 + br label %"$matchsucc_1365" + +"$None_1418": ; preds = %"$have_gas_1363" + %"$$resopt_44_1419" = bitcast %TName_Option_Uint256* %"$$resopt_44_1366" to %CName_None_Uint256* + %"$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" + +"$out_of_gas_1422": ; preds = %"$None_1418" + call void @_out_of_gas() + br label %"$have_gas_1423" + +"$have_gas_1423": ; preds = %"$out_of_gas_1422", %"$None_1418" + %"$consume_1424" = sub i64 %"$gasrem_1420", 1 + store i64 %"$consume_1424", i64* @_gasrem, align 8 + %"$false_1425" = load %TName_Bool*, %TName_Bool** %false, align 8 + store %TName_Bool* %"$false_1425", %TName_Bool** %"$test_45", align 8, !dbg !298 + br label %"$matchsucc_1365" + +"$empty_default_1369": ; preds = %"$have_gas_1363" + br label %"$matchsucc_1365" + +"$matchsucc_1365": ; preds = %"$have_gas_1423", %"$have_gas_1405", %"$empty_default_1369" + %"$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" + +"$out_of_gas_1428": ; preds = %"$matchsucc_1365" + call void @_out_of_gas() + br label %"$have_gas_1429" + +"$have_gas_1429": ; preds = %"$out_of_gas_1428", %"$matchsucc_1365" + %"$consume_1430" = sub i64 %"$gasrem_1426", 1 + store i64 %"$consume_1430", i64* @_gasrem, align 8 %"$input_46" = alloca %Uint32, 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" + call void @llvm.dbg.declare(metadata %Uint32* %"$input_46", metadata !300, metadata !DIExpression()), !dbg !301 + %"$gasrem_1431" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1432" = icmp ugt i64 1, %"$gasrem_1431" + br i1 %"$gascmp_1432", label %"$out_of_gas_1433", label %"$have_gas_1434" -"$out_of_gas_1431": ; preds = %"$have_gas_1427" +"$out_of_gas_1433": ; preds = %"$have_gas_1429" call void @_out_of_gas() - br label %"$have_gas_1432" + br label %"$have_gas_1434" -"$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 - store %Uint32 { i32 22 }, %Uint32* %"$input_46", align 4, !dbg !152 - %"$gasrem_1434" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1435" = icmp ugt i64 1, %"$gasrem_1434" - br i1 %"$gascmp_1435", label %"$out_of_gas_1436", label %"$have_gas_1437" +"$have_gas_1434": ; preds = %"$out_of_gas_1433", %"$have_gas_1429" + %"$consume_1435" = sub i64 %"$gasrem_1431", 1 + store i64 %"$consume_1435", i64* @_gasrem, align 8 + store %Uint32 { i32 22 }, %Uint32* %"$input_46", align 4, !dbg !302 + %"$gasrem_1436" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1437" = icmp ugt i64 1, %"$gasrem_1436" + br i1 %"$gascmp_1437", label %"$out_of_gas_1438", label %"$have_gas_1439" -"$out_of_gas_1436": ; preds = %"$have_gas_1432" +"$out_of_gas_1438": ; preds = %"$have_gas_1434" call void @_out_of_gas() - br label %"$have_gas_1437" + br label %"$have_gas_1439" -"$have_gas_1437": ; preds = %"$out_of_gas_1436", %"$have_gas_1432" - %"$consume_1438" = sub i64 %"$gasrem_1434", 1 - store i64 %"$consume_1438", i64* @_gasrem, align 8 +"$have_gas_1439": ; preds = %"$out_of_gas_1438", %"$have_gas_1434" + %"$consume_1440" = sub i64 %"$gasrem_1436", 1 + store i64 %"$consume_1440", i64* @_gasrem, align 8 %"$resopt_47" = alloca %TName_Option_Uint256*, align 8 - %"$gasrem_1439" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1440" = icmp ugt i64 16, %"$gasrem_1439" - br i1 %"$gascmp_1440", label %"$out_of_gas_1441", label %"$have_gas_1442" - -"$out_of_gas_1441": ; preds = %"$have_gas_1437" - call void @_out_of_gas() - br label %"$have_gas_1442" - -"$have_gas_1442": ; preds = %"$out_of_gas_1441", %"$have_gas_1437" - %"$consume_1443" = sub i64 %"$gasrem_1439", 16 - store i64 %"$consume_1443", i64* @_gasrem, align 8 - %"$execptr_load_1444" = load i8*, i8** @_execptr, align 8 - %"$to_uint256_$input_46_1445" = alloca %Uint32, align 8 - %"$$input_46_1446" = load %Uint32, %Uint32* %"$input_46", align 4 - store %Uint32 %"$$input_46_1446", %Uint32* %"$to_uint256_$input_46_1445", align 4 - %"$$to_uint256_$input_46_1445_1447" = bitcast %Uint32* %"$to_uint256_$input_46_1445" to i8* - %"$to_uint256_call_1448" = call i8* @_to_uint256(i8* %"$execptr_load_1444", %_TyDescrTy_Typ* @"$TyDescr_Uint32_117", i8* %"$$to_uint256_$input_46_1445_1447"), !dbg !153 - %"$to_uint256_1449" = bitcast i8* %"$to_uint256_call_1448" to %TName_Option_Uint256* - store %TName_Option_Uint256* %"$to_uint256_1449", %TName_Option_Uint256** %"$resopt_47", align 8, !dbg !153 - %"$gasrem_1450" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1451" = icmp ugt i64 1, %"$gasrem_1450" - br i1 %"$gascmp_1451", label %"$out_of_gas_1452", label %"$have_gas_1453" - -"$out_of_gas_1452": ; preds = %"$have_gas_1442" - call void @_out_of_gas() - br label %"$have_gas_1453" - -"$have_gas_1453": ; preds = %"$out_of_gas_1452", %"$have_gas_1442" - %"$consume_1454" = sub i64 %"$gasrem_1450", 1 - store i64 %"$consume_1454", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Option_Uint256** %"$resopt_47", metadata !303, metadata !DIExpression()), !dbg !304 + %"$gasrem_1441" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1442" = icmp ugt i64 16, %"$gasrem_1441" + br i1 %"$gascmp_1442", label %"$out_of_gas_1443", label %"$have_gas_1444" + +"$out_of_gas_1443": ; preds = %"$have_gas_1439" + call void @_out_of_gas() + br label %"$have_gas_1444" + +"$have_gas_1444": ; preds = %"$out_of_gas_1443", %"$have_gas_1439" + %"$consume_1445" = sub i64 %"$gasrem_1441", 16 + store i64 %"$consume_1445", i64* @_gasrem, align 8 + %"$execptr_load_1446" = load i8*, i8** @_execptr, align 8 + %"$to_uint256_$input_46_1447" = alloca %Uint32, align 8 + %"$$input_46_1448" = load %Uint32, %Uint32* %"$input_46", align 4 + store %Uint32 %"$$input_46_1448", %Uint32* %"$to_uint256_$input_46_1447", align 4 + %"$$to_uint256_$input_46_1447_1449" = bitcast %Uint32* %"$to_uint256_$input_46_1447" to i8* + %"$to_uint256_call_1450" = call i8* @_to_uint256(i8* %"$execptr_load_1446", %_TyDescrTy_Typ* @"$TyDescr_Uint32_117", i8* %"$$to_uint256_$input_46_1447_1449"), !dbg !305 + %"$to_uint256_1451" = bitcast i8* %"$to_uint256_call_1450" to %TName_Option_Uint256* + store %TName_Option_Uint256* %"$to_uint256_1451", %TName_Option_Uint256** %"$resopt_47", align 8, !dbg !305 + %"$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_1454": ; preds = %"$have_gas_1444" + call void @_out_of_gas() + br label %"$have_gas_1455" + +"$have_gas_1455": ; preds = %"$out_of_gas_1454", %"$have_gas_1444" + %"$consume_1456" = sub i64 %"$gasrem_1452", 1 + store i64 %"$consume_1456", i64* @_gasrem, align 8 %"$test_48" = alloca %TName_Bool*, align 8 - %"$gasrem_1455" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1456" = icmp ugt i64 2, %"$gasrem_1455" - br i1 %"$gascmp_1456", label %"$out_of_gas_1457", label %"$have_gas_1458" - -"$out_of_gas_1457": ; preds = %"$have_gas_1453" - call void @_out_of_gas() - br label %"$have_gas_1458" - -"$have_gas_1458": ; preds = %"$out_of_gas_1457", %"$have_gas_1453" - %"$consume_1459" = sub i64 %"$gasrem_1455", 2 - store i64 %"$consume_1459", i64* @_gasrem, align 8 - %"$$resopt_47_1461" = load %TName_Option_Uint256*, %TName_Option_Uint256** %"$resopt_47", align 8 - %"$$resopt_47_tag_1462" = getelementptr inbounds %TName_Option_Uint256, %TName_Option_Uint256* %"$$resopt_47_1461", i32 0, i32 0 - %"$$resopt_47_tag_1463" = load i8, i8* %"$$resopt_47_tag_1462", align 1 - switch i8 %"$$resopt_47_tag_1463", label %"$empty_default_1464" [ - i8 0, label %"$Some_1465" - i8 1, label %"$None_1513" - ], !dbg !154 - -"$Some_1465": ; preds = %"$have_gas_1458" - %"$$resopt_47_1466" = bitcast %TName_Option_Uint256* %"$$resopt_47_1461" to %CName_Some_Uint256* - %"$res_gep_1467" = getelementptr inbounds %CName_Some_Uint256, %CName_Some_Uint256* %"$$resopt_47_1466", i32 0, i32 1 - %"$res_load_1468" = load %Uint256, %Uint256* %"$res_gep_1467", align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$test_48", metadata !306, metadata !DIExpression()), !dbg !307 + %"$gasrem_1457" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1458" = icmp ugt i64 2, %"$gasrem_1457" + br i1 %"$gascmp_1458", label %"$out_of_gas_1459", label %"$have_gas_1460" + +"$out_of_gas_1459": ; preds = %"$have_gas_1455" + call void @_out_of_gas() + br label %"$have_gas_1460" + +"$have_gas_1460": ; preds = %"$out_of_gas_1459", %"$have_gas_1455" + %"$consume_1461" = sub i64 %"$gasrem_1457", 2 + store i64 %"$consume_1461", i64* @_gasrem, align 8 + %"$$resopt_47_1463" = load %TName_Option_Uint256*, %TName_Option_Uint256** %"$resopt_47", align 8 + %"$$resopt_47_tag_1464" = getelementptr inbounds %TName_Option_Uint256, %TName_Option_Uint256* %"$$resopt_47_1463", i32 0, i32 0 + %"$$resopt_47_tag_1465" = load i8, i8* %"$$resopt_47_tag_1464", align 1 + switch i8 %"$$resopt_47_tag_1465", label %"$empty_default_1466" [ + i8 0, label %"$Some_1467" + i8 1, label %"$None_1515" + ], !dbg !308 + +"$Some_1467": ; preds = %"$have_gas_1460" + %"$$resopt_47_1468" = bitcast %TName_Option_Uint256* %"$$resopt_47_1463" to %CName_Some_Uint256* + %"$res_gep_1469" = getelementptr inbounds %CName_Some_Uint256, %CName_Some_Uint256* %"$$resopt_47_1468", i32 0, i32 1 + %"$res_load_1470" = load %Uint256, %Uint256* %"$res_gep_1469", align 8 %res22 = alloca %Uint256, align 8 - store %Uint256 %"$res_load_1468", %Uint256* %res22, 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" + store %Uint256 %"$res_load_1470", %Uint256* %res22, align 8 + %"$gasrem_1471" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1472" = icmp ugt i64 1, %"$gasrem_1471" + br i1 %"$gascmp_1472", label %"$out_of_gas_1473", label %"$have_gas_1474" -"$out_of_gas_1471": ; preds = %"$Some_1465" +"$out_of_gas_1473": ; preds = %"$Some_1467" call void @_out_of_gas() - br label %"$have_gas_1472" + br label %"$have_gas_1474" -"$have_gas_1472": ; preds = %"$out_of_gas_1471", %"$Some_1465" - %"$consume_1473" = sub i64 %"$gasrem_1469", 1 - store i64 %"$consume_1473", i64* @_gasrem, align 8 +"$have_gas_1474": ; preds = %"$out_of_gas_1473", %"$Some_1467" + %"$consume_1475" = sub i64 %"$gasrem_1471", 1 + store i64 %"$consume_1475", i64* @_gasrem, align 8 %input_23 = alloca %Uint256, 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" + call void @llvm.dbg.declare(metadata %Uint256* %input_23, metadata !309, metadata !DIExpression()), !dbg !312 + %"$gasrem_1476" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1477" = icmp ugt i64 1, %"$gasrem_1476" + br i1 %"$gascmp_1477", label %"$out_of_gas_1478", label %"$have_gas_1479" -"$out_of_gas_1476": ; preds = %"$have_gas_1472" +"$out_of_gas_1478": ; preds = %"$have_gas_1474" call void @_out_of_gas() - br label %"$have_gas_1477" + br label %"$have_gas_1479" -"$have_gas_1477": ; preds = %"$out_of_gas_1476", %"$have_gas_1472" - %"$consume_1478" = sub i64 %"$gasrem_1474", 1 - store i64 %"$consume_1478", i64* @_gasrem, align 8 - store %Uint256 { i256 22 }, %Uint256* %input_23, align 8, !dbg !155 - %"$gasrem_1479" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1480" = icmp ugt i64 1, %"$gasrem_1479" - br i1 %"$gascmp_1480", label %"$out_of_gas_1481", label %"$have_gas_1482" +"$have_gas_1479": ; preds = %"$out_of_gas_1478", %"$have_gas_1474" + %"$consume_1480" = sub i64 %"$gasrem_1476", 1 + store i64 %"$consume_1480", i64* @_gasrem, align 8 + store %Uint256 { i256 22 }, %Uint256* %input_23, align 8, !dbg !313 + %"$gasrem_1481" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1482" = icmp ugt i64 1, %"$gasrem_1481" + br i1 %"$gascmp_1482", label %"$out_of_gas_1483", label %"$have_gas_1484" -"$out_of_gas_1481": ; preds = %"$have_gas_1477" +"$out_of_gas_1483": ; preds = %"$have_gas_1479" call void @_out_of_gas() - br label %"$have_gas_1482" + br label %"$have_gas_1484" -"$have_gas_1482": ; preds = %"$out_of_gas_1481", %"$have_gas_1477" - %"$consume_1483" = sub i64 %"$gasrem_1479", 1 - store i64 %"$consume_1483", i64* @_gasrem, align 8 +"$have_gas_1484": ; preds = %"$out_of_gas_1483", %"$have_gas_1479" + %"$consume_1485" = sub i64 %"$gasrem_1481", 1 + store i64 %"$consume_1485", i64* @_gasrem, align 8 %test_24 = alloca %TName_Bool*, align 8 - %"$gasrem_1485" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1486" = icmp ugt i64 16, %"$gasrem_1485" - br i1 %"$gascmp_1486", label %"$out_of_gas_1487", label %"$have_gas_1488" - -"$out_of_gas_1487": ; preds = %"$have_gas_1482" - call void @_out_of_gas() - br label %"$have_gas_1488" - -"$have_gas_1488": ; preds = %"$out_of_gas_1487", %"$have_gas_1482" - %"$consume_1489" = sub i64 %"$gasrem_1485", 16 - store i64 %"$consume_1489", i64* @_gasrem, align 8 - %"$execptr_load_1490" = load i8*, i8** @_execptr, align 8 - %"$eq_res_1491" = alloca %Uint256, align 8 - %"$res_1492" = load %Uint256, %Uint256* %res22, align 8 - store %Uint256 %"$res_1492", %Uint256* %"$eq_res_1491", align 8 - %"$eq_input__1493" = alloca %Uint256, align 8 - %"$input__1494" = load %Uint256, %Uint256* %input_23, align 8 - store %Uint256 %"$input__1494", %Uint256* %"$eq_input__1493", align 8 - %"$eq_call_1495" = call %TName_Bool* @_eq_Uint256(i8* %"$execptr_load_1490", %Uint256* %"$eq_res_1491", %Uint256* %"$eq_input__1493"), !dbg !158 - store %TName_Bool* %"$eq_call_1495", %TName_Bool** %test_24, 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" - -"$out_of_gas_1499": ; preds = %"$have_gas_1488" - call void @_out_of_gas() - br label %"$have_gas_1500" - -"$have_gas_1500": ; preds = %"$out_of_gas_1499", %"$have_gas_1488" - %"$consume_1501" = sub i64 %"$gasrem_1497", 1 - store i64 %"$consume_1501", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %test_24, metadata !314, metadata !DIExpression()), !dbg !315 + %"$gasrem_1487" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1488" = icmp ugt i64 16, %"$gasrem_1487" + br i1 %"$gascmp_1488", label %"$out_of_gas_1489", label %"$have_gas_1490" + +"$out_of_gas_1489": ; preds = %"$have_gas_1484" + call void @_out_of_gas() + br label %"$have_gas_1490" + +"$have_gas_1490": ; preds = %"$out_of_gas_1489", %"$have_gas_1484" + %"$consume_1491" = sub i64 %"$gasrem_1487", 16 + store i64 %"$consume_1491", i64* @_gasrem, align 8 + %"$execptr_load_1492" = load i8*, i8** @_execptr, align 8 + %"$eq_res_1493" = alloca %Uint256, align 8 + %"$res_1494" = load %Uint256, %Uint256* %res22, align 8 + store %Uint256 %"$res_1494", %Uint256* %"$eq_res_1493", align 8 + %"$eq_input__1495" = alloca %Uint256, align 8 + %"$input__1496" = load %Uint256, %Uint256* %input_23, align 8 + store %Uint256 %"$input__1496", %Uint256* %"$eq_input__1495", align 8 + %"$eq_call_1497" = call %TName_Bool* @_eq_Uint256(i8* %"$execptr_load_1492", %Uint256* %"$eq_res_1493", %Uint256* %"$eq_input__1495"), !dbg !316 + store %TName_Bool* %"$eq_call_1497", %TName_Bool** %test_24, align 8, !dbg !316 + %"$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 = %"$have_gas_1490" + call void @_out_of_gas() + br label %"$have_gas_1502" + +"$have_gas_1502": ; preds = %"$out_of_gas_1501", %"$have_gas_1490" + %"$consume_1503" = sub i64 %"$gasrem_1499", 1 + store i64 %"$consume_1503", i64* @_gasrem, align 8 %"$BoolUtils.andb_100" = alloca { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, align 8 - %"$BoolUtils.andb_1502" = 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_1503" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_1502", 0 - %"$BoolUtils.andb_envptr_1504" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_1502", 1 - %"$$test_45_1505" = load %TName_Bool*, %TName_Bool** %"$test_45", align 8 - %"$BoolUtils.andb_call_1506" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_1503"(i8* %"$BoolUtils.andb_envptr_1504", %TName_Bool* %"$$test_45_1505"), !dbg !159 - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_1506", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_100", align 8, !dbg !159 + %"$BoolUtils.andb_1504" = 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_1505" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_1504", 0 + %"$BoolUtils.andb_envptr_1506" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_1504", 1 + %"$$test_45_1507" = load %TName_Bool*, %TName_Bool** %"$test_45", align 8 + %"$BoolUtils.andb_call_1508" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_1505"(i8* %"$BoolUtils.andb_envptr_1506", %TName_Bool* %"$$test_45_1507"), !dbg !317 + store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_1508", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_100", align 8, !dbg !317 %"$BoolUtils.andb_101" = alloca %TName_Bool*, align 8 - %"$$BoolUtils.andb_100_1507" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_100", align 8 - %"$$BoolUtils.andb_100_fptr_1508" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_100_1507", 0 - %"$$BoolUtils.andb_100_envptr_1509" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_100_1507", 1 - %"$test__1510" = load %TName_Bool*, %TName_Bool** %test_24, align 8 - %"$$BoolUtils.andb_100_call_1511" = call %TName_Bool* %"$$BoolUtils.andb_100_fptr_1508"(i8* %"$$BoolUtils.andb_100_envptr_1509", %TName_Bool* %"$test__1510"), !dbg !159 - store %TName_Bool* %"$$BoolUtils.andb_100_call_1511", %TName_Bool** %"$BoolUtils.andb_101", align 8, !dbg !159 - %"$$BoolUtils.andb_101_1512" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_101", align 8 - store %TName_Bool* %"$$BoolUtils.andb_101_1512", %TName_Bool** %"$test_48", align 8, !dbg !159 - br label %"$matchsucc_1460" - -"$None_1513": ; preds = %"$have_gas_1458" - %"$$resopt_47_1514" = bitcast %TName_Option_Uint256* %"$$resopt_47_1461" to %CName_None_Uint256* - %"$gasrem_1515" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1516" = icmp ugt i64 1, %"$gasrem_1515" - br i1 %"$gascmp_1516", label %"$out_of_gas_1517", label %"$have_gas_1518" - -"$out_of_gas_1517": ; preds = %"$None_1513" - call void @_out_of_gas() - br label %"$have_gas_1518" - -"$have_gas_1518": ; preds = %"$out_of_gas_1517", %"$None_1513" - %"$consume_1519" = sub i64 %"$gasrem_1515", 1 - store i64 %"$consume_1519", i64* @_gasrem, align 8 - %"$false_1520" = load %TName_Bool*, %TName_Bool** %false, align 8 - store %TName_Bool* %"$false_1520", %TName_Bool** %"$test_48", align 8, !dbg !160 - br label %"$matchsucc_1460" - -"$empty_default_1464": ; preds = %"$have_gas_1458" - br label %"$matchsucc_1460" - -"$matchsucc_1460": ; preds = %"$have_gas_1518", %"$have_gas_1500", %"$empty_default_1464" - %"$gasrem_1521" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1522" = icmp ugt i64 1, %"$gasrem_1521" - br i1 %"$gascmp_1522", label %"$out_of_gas_1523", label %"$have_gas_1524" - -"$out_of_gas_1523": ; preds = %"$matchsucc_1460" - call void @_out_of_gas() - br label %"$have_gas_1524" - -"$have_gas_1524": ; preds = %"$out_of_gas_1523", %"$matchsucc_1460" - %"$consume_1525" = sub i64 %"$gasrem_1521", 1 - store i64 %"$consume_1525", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$BoolUtils.andb_101", metadata !318, metadata !DIExpression()), !dbg !317 + %"$$BoolUtils.andb_100_1509" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_100", align 8 + %"$$BoolUtils.andb_100_fptr_1510" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_100_1509", 0 + %"$$BoolUtils.andb_100_envptr_1511" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_100_1509", 1 + %"$test__1512" = load %TName_Bool*, %TName_Bool** %test_24, align 8 + %"$$BoolUtils.andb_100_call_1513" = call %TName_Bool* %"$$BoolUtils.andb_100_fptr_1510"(i8* %"$$BoolUtils.andb_100_envptr_1511", %TName_Bool* %"$test__1512"), !dbg !317 + store %TName_Bool* %"$$BoolUtils.andb_100_call_1513", %TName_Bool** %"$BoolUtils.andb_101", align 8, !dbg !317 + %"$$BoolUtils.andb_101_1514" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_101", align 8 + store %TName_Bool* %"$$BoolUtils.andb_101_1514", %TName_Bool** %"$test_48", align 8, !dbg !317 + br label %"$matchsucc_1462" + +"$None_1515": ; preds = %"$have_gas_1460" + %"$$resopt_47_1516" = bitcast %TName_Option_Uint256* %"$$resopt_47_1463" to %CName_None_Uint256* + %"$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" + +"$out_of_gas_1519": ; preds = %"$None_1515" + call void @_out_of_gas() + br label %"$have_gas_1520" + +"$have_gas_1520": ; preds = %"$out_of_gas_1519", %"$None_1515" + %"$consume_1521" = sub i64 %"$gasrem_1517", 1 + store i64 %"$consume_1521", i64* @_gasrem, align 8 + %"$false_1522" = load %TName_Bool*, %TName_Bool** %false, align 8 + store %TName_Bool* %"$false_1522", %TName_Bool** %"$test_48", align 8, !dbg !319 + br label %"$matchsucc_1462" + +"$empty_default_1466": ; preds = %"$have_gas_1460" + br label %"$matchsucc_1462" + +"$matchsucc_1462": ; preds = %"$have_gas_1520", %"$have_gas_1502", %"$empty_default_1466" + %"$gasrem_1523" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1524" = icmp ugt i64 1, %"$gasrem_1523" + br i1 %"$gascmp_1524", label %"$out_of_gas_1525", label %"$have_gas_1526" + +"$out_of_gas_1525": ; preds = %"$matchsucc_1462" + call void @_out_of_gas() + br label %"$have_gas_1526" + +"$have_gas_1526": ; preds = %"$out_of_gas_1525", %"$matchsucc_1462" + %"$consume_1527" = sub i64 %"$gasrem_1523", 1 + store i64 %"$consume_1527", i64* @_gasrem, align 8 %"$input_49" = alloca %Int32, align 8 - %"$gasrem_1526" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1527" = icmp ugt i64 1, %"$gasrem_1526" - br i1 %"$gascmp_1527", label %"$out_of_gas_1528", label %"$have_gas_1529" + call void @llvm.dbg.declare(metadata %Int32* %"$input_49", metadata !321, metadata !DIExpression()), !dbg !323 + %"$gasrem_1528" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1529" = icmp ugt i64 1, %"$gasrem_1528" + br i1 %"$gascmp_1529", label %"$out_of_gas_1530", label %"$have_gas_1531" -"$out_of_gas_1528": ; preds = %"$have_gas_1524" +"$out_of_gas_1530": ; preds = %"$have_gas_1526" call void @_out_of_gas() - br label %"$have_gas_1529" + br label %"$have_gas_1531" -"$have_gas_1529": ; preds = %"$out_of_gas_1528", %"$have_gas_1524" - %"$consume_1530" = sub i64 %"$gasrem_1526", 1 - store i64 %"$consume_1530", i64* @_gasrem, align 8 - store %Int32 { i32 2147483647 }, %Int32* %"$input_49", align 4, !dbg !162 - %"$gasrem_1531" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1532" = icmp ugt i64 1, %"$gasrem_1531" - br i1 %"$gascmp_1532", label %"$out_of_gas_1533", label %"$have_gas_1534" +"$have_gas_1531": ; preds = %"$out_of_gas_1530", %"$have_gas_1526" + %"$consume_1532" = sub i64 %"$gasrem_1528", 1 + store i64 %"$consume_1532", i64* @_gasrem, align 8 + store %Int32 { i32 2147483647 }, %Int32* %"$input_49", align 4, !dbg !324 + %"$gasrem_1533" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1534" = icmp ugt i64 1, %"$gasrem_1533" + br i1 %"$gascmp_1534", label %"$out_of_gas_1535", label %"$have_gas_1536" -"$out_of_gas_1533": ; preds = %"$have_gas_1529" +"$out_of_gas_1535": ; preds = %"$have_gas_1531" call void @_out_of_gas() - br label %"$have_gas_1534" + br label %"$have_gas_1536" -"$have_gas_1534": ; preds = %"$out_of_gas_1533", %"$have_gas_1529" - %"$consume_1535" = sub i64 %"$gasrem_1531", 1 - store i64 %"$consume_1535", i64* @_gasrem, align 8 +"$have_gas_1536": ; preds = %"$out_of_gas_1535", %"$have_gas_1531" + %"$consume_1537" = sub i64 %"$gasrem_1533", 1 + store i64 %"$consume_1537", i64* @_gasrem, align 8 %"$resopt_50" = alloca %TName_Option_Uint32*, align 8 - %"$gasrem_1536" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1537" = icmp ugt i64 4, %"$gasrem_1536" - br i1 %"$gascmp_1537", label %"$out_of_gas_1538", label %"$have_gas_1539" - -"$out_of_gas_1538": ; preds = %"$have_gas_1534" - call void @_out_of_gas() - br label %"$have_gas_1539" - -"$have_gas_1539": ; preds = %"$out_of_gas_1538", %"$have_gas_1534" - %"$consume_1540" = sub i64 %"$gasrem_1536", 4 - store i64 %"$consume_1540", i64* @_gasrem, align 8 - %"$execptr_load_1541" = load i8*, i8** @_execptr, align 8 - %"$to_uint32_$input_49_1542" = alloca %Int32, align 8 - %"$$input_49_1543" = load %Int32, %Int32* %"$input_49", align 4 - store %Int32 %"$$input_49_1543", %Int32* %"$to_uint32_$input_49_1542", align 4 - %"$$to_uint32_$input_49_1542_1544" = bitcast %Int32* %"$to_uint32_$input_49_1542" to i8* - %"$to_uint32_call_1545" = call i8* @_to_uint32(i8* %"$execptr_load_1541", %_TyDescrTy_Typ* @"$TyDescr_Int32_115", i8* %"$$to_uint32_$input_49_1542_1544"), !dbg !163 - %"$to_uint32_1546" = bitcast i8* %"$to_uint32_call_1545" to %TName_Option_Uint32* - store %TName_Option_Uint32* %"$to_uint32_1546", %TName_Option_Uint32** %"$resopt_50", align 8, !dbg !163 - %"$gasrem_1547" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1548" = icmp ugt i64 1, %"$gasrem_1547" - br i1 %"$gascmp_1548", label %"$out_of_gas_1549", label %"$have_gas_1550" - -"$out_of_gas_1549": ; preds = %"$have_gas_1539" - call void @_out_of_gas() - br label %"$have_gas_1550" - -"$have_gas_1550": ; preds = %"$out_of_gas_1549", %"$have_gas_1539" - %"$consume_1551" = sub i64 %"$gasrem_1547", 1 - store i64 %"$consume_1551", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Option_Uint32** %"$resopt_50", metadata !325, metadata !DIExpression()), !dbg !326 + %"$gasrem_1538" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1539" = icmp ugt i64 4, %"$gasrem_1538" + br i1 %"$gascmp_1539", label %"$out_of_gas_1540", label %"$have_gas_1541" + +"$out_of_gas_1540": ; preds = %"$have_gas_1536" + call void @_out_of_gas() + br label %"$have_gas_1541" + +"$have_gas_1541": ; preds = %"$out_of_gas_1540", %"$have_gas_1536" + %"$consume_1542" = sub i64 %"$gasrem_1538", 4 + store i64 %"$consume_1542", i64* @_gasrem, align 8 + %"$execptr_load_1543" = load i8*, i8** @_execptr, align 8 + %"$to_uint32_$input_49_1544" = alloca %Int32, align 8 + %"$$input_49_1545" = load %Int32, %Int32* %"$input_49", align 4 + store %Int32 %"$$input_49_1545", %Int32* %"$to_uint32_$input_49_1544", align 4 + %"$$to_uint32_$input_49_1544_1546" = bitcast %Int32* %"$to_uint32_$input_49_1544" to i8* + %"$to_uint32_call_1547" = call i8* @_to_uint32(i8* %"$execptr_load_1543", %_TyDescrTy_Typ* @"$TyDescr_Int32_115", i8* %"$$to_uint32_$input_49_1544_1546"), !dbg !327 + %"$to_uint32_1548" = bitcast i8* %"$to_uint32_call_1547" to %TName_Option_Uint32* + store %TName_Option_Uint32* %"$to_uint32_1548", %TName_Option_Uint32** %"$resopt_50", align 8, !dbg !327 + %"$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 = %"$have_gas_1541" + call void @_out_of_gas() + br label %"$have_gas_1552" + +"$have_gas_1552": ; preds = %"$out_of_gas_1551", %"$have_gas_1541" + %"$consume_1553" = sub i64 %"$gasrem_1549", 1 + store i64 %"$consume_1553", i64* @_gasrem, align 8 %"$test_51" = alloca %TName_Bool*, align 8 - %"$gasrem_1552" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1553" = icmp ugt i64 2, %"$gasrem_1552" - br i1 %"$gascmp_1553", label %"$out_of_gas_1554", label %"$have_gas_1555" - -"$out_of_gas_1554": ; preds = %"$have_gas_1550" - call void @_out_of_gas() - br label %"$have_gas_1555" - -"$have_gas_1555": ; preds = %"$out_of_gas_1554", %"$have_gas_1550" - %"$consume_1556" = sub i64 %"$gasrem_1552", 2 - store i64 %"$consume_1556", i64* @_gasrem, align 8 - %"$$resopt_50_1558" = load %TName_Option_Uint32*, %TName_Option_Uint32** %"$resopt_50", align 8 - %"$$resopt_50_tag_1559" = getelementptr inbounds %TName_Option_Uint32, %TName_Option_Uint32* %"$$resopt_50_1558", i32 0, i32 0 - %"$$resopt_50_tag_1560" = load i8, i8* %"$$resopt_50_tag_1559", align 1 - switch i8 %"$$resopt_50_tag_1560", label %"$empty_default_1561" [ - i8 0, label %"$Some_1562" - i8 1, label %"$None_1607" - ], !dbg !164 - -"$Some_1562": ; preds = %"$have_gas_1555" - %"$$resopt_50_1563" = bitcast %TName_Option_Uint32* %"$$resopt_50_1558" to %CName_Some_Uint32* - %"$res_gep_1564" = getelementptr inbounds %CName_Some_Uint32, %CName_Some_Uint32* %"$$resopt_50_1563", i32 0, i32 1 - %"$res_load_1565" = load %Uint32, %Uint32* %"$res_gep_1564", align 4 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$test_51", metadata !328, metadata !DIExpression()), !dbg !329 + %"$gasrem_1554" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1555" = icmp ugt i64 2, %"$gasrem_1554" + br i1 %"$gascmp_1555", label %"$out_of_gas_1556", label %"$have_gas_1557" + +"$out_of_gas_1556": ; preds = %"$have_gas_1552" + call void @_out_of_gas() + br label %"$have_gas_1557" + +"$have_gas_1557": ; preds = %"$out_of_gas_1556", %"$have_gas_1552" + %"$consume_1558" = sub i64 %"$gasrem_1554", 2 + store i64 %"$consume_1558", i64* @_gasrem, align 8 + %"$$resopt_50_1560" = load %TName_Option_Uint32*, %TName_Option_Uint32** %"$resopt_50", align 8 + %"$$resopt_50_tag_1561" = getelementptr inbounds %TName_Option_Uint32, %TName_Option_Uint32* %"$$resopt_50_1560", i32 0, i32 0 + %"$$resopt_50_tag_1562" = load i8, i8* %"$$resopt_50_tag_1561", align 1 + switch i8 %"$$resopt_50_tag_1562", label %"$empty_default_1563" [ + i8 0, label %"$Some_1564" + i8 1, label %"$None_1609" + ], !dbg !330 + +"$Some_1564": ; preds = %"$have_gas_1557" + %"$$resopt_50_1565" = bitcast %TName_Option_Uint32* %"$$resopt_50_1560" to %CName_Some_Uint32* + %"$res_gep_1566" = getelementptr inbounds %CName_Some_Uint32, %CName_Some_Uint32* %"$$resopt_50_1565", i32 0, i32 1 + %"$res_load_1567" = load %Uint32, %Uint32* %"$res_gep_1566", align 4 %res25 = alloca %Uint32, align 8 - store %Uint32 %"$res_load_1565", %Uint32* %res25, align 4 - %"$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" + store %Uint32 %"$res_load_1567", %Uint32* %res25, align 4 + %"$gasrem_1568" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1569" = icmp ugt i64 1, %"$gasrem_1568" + br i1 %"$gascmp_1569", label %"$out_of_gas_1570", label %"$have_gas_1571" -"$out_of_gas_1568": ; preds = %"$Some_1562" +"$out_of_gas_1570": ; preds = %"$Some_1564" call void @_out_of_gas() - br label %"$have_gas_1569" + br label %"$have_gas_1571" -"$have_gas_1569": ; preds = %"$out_of_gas_1568", %"$Some_1562" - %"$consume_1570" = sub i64 %"$gasrem_1566", 1 - store i64 %"$consume_1570", i64* @_gasrem, align 8 +"$have_gas_1571": ; preds = %"$out_of_gas_1570", %"$Some_1564" + %"$consume_1572" = sub i64 %"$gasrem_1568", 1 + store i64 %"$consume_1572", i64* @_gasrem, align 8 %input_26 = alloca %Uint32, align 8 - %"$gasrem_1571" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1572" = icmp ugt i64 1, %"$gasrem_1571" - br i1 %"$gascmp_1572", label %"$out_of_gas_1573", label %"$have_gas_1574" + call void @llvm.dbg.declare(metadata %Uint32* %input_26, metadata !331, metadata !DIExpression()), !dbg !334 + %"$gasrem_1573" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1574" = icmp ugt i64 1, %"$gasrem_1573" + br i1 %"$gascmp_1574", label %"$out_of_gas_1575", label %"$have_gas_1576" -"$out_of_gas_1573": ; preds = %"$have_gas_1569" +"$out_of_gas_1575": ; preds = %"$have_gas_1571" call void @_out_of_gas() - br label %"$have_gas_1574" + br label %"$have_gas_1576" -"$have_gas_1574": ; preds = %"$out_of_gas_1573", %"$have_gas_1569" - %"$consume_1575" = sub i64 %"$gasrem_1571", 1 - store i64 %"$consume_1575", i64* @_gasrem, align 8 - store %Uint32 { i32 2147483647 }, %Uint32* %input_26, align 4, !dbg !165 - %"$gasrem_1576" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1577" = icmp ugt i64 1, %"$gasrem_1576" - br i1 %"$gascmp_1577", label %"$out_of_gas_1578", label %"$have_gas_1579" +"$have_gas_1576": ; preds = %"$out_of_gas_1575", %"$have_gas_1571" + %"$consume_1577" = sub i64 %"$gasrem_1573", 1 + store i64 %"$consume_1577", i64* @_gasrem, align 8 + store %Uint32 { i32 2147483647 }, %Uint32* %input_26, align 4, !dbg !335 + %"$gasrem_1578" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1579" = icmp ugt i64 1, %"$gasrem_1578" + br i1 %"$gascmp_1579", label %"$out_of_gas_1580", label %"$have_gas_1581" -"$out_of_gas_1578": ; preds = %"$have_gas_1574" +"$out_of_gas_1580": ; preds = %"$have_gas_1576" call void @_out_of_gas() - br label %"$have_gas_1579" + br label %"$have_gas_1581" -"$have_gas_1579": ; preds = %"$out_of_gas_1578", %"$have_gas_1574" - %"$consume_1580" = sub i64 %"$gasrem_1576", 1 - store i64 %"$consume_1580", i64* @_gasrem, align 8 +"$have_gas_1581": ; preds = %"$out_of_gas_1580", %"$have_gas_1576" + %"$consume_1582" = sub i64 %"$gasrem_1578", 1 + store i64 %"$consume_1582", i64* @_gasrem, align 8 %test_27 = alloca %TName_Bool*, align 8 - %"$gasrem_1581" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1582" = icmp ugt i64 4, %"$gasrem_1581" - br i1 %"$gascmp_1582", label %"$out_of_gas_1583", label %"$have_gas_1584" - -"$out_of_gas_1583": ; preds = %"$have_gas_1579" - call void @_out_of_gas() - br label %"$have_gas_1584" - -"$have_gas_1584": ; preds = %"$out_of_gas_1583", %"$have_gas_1579" - %"$consume_1585" = sub i64 %"$gasrem_1581", 4 - store i64 %"$consume_1585", i64* @_gasrem, align 8 - %"$execptr_load_1586" = load i8*, i8** @_execptr, align 8 - %"$res_1587" = load %Uint32, %Uint32* %res25, align 4 - %"$input__1588" = load %Uint32, %Uint32* %input_26, align 4 - %"$eq_call_1589" = call %TName_Bool* @_eq_Uint32(i8* %"$execptr_load_1586", %Uint32 %"$res_1587", %Uint32 %"$input__1588"), !dbg !168 - store %TName_Bool* %"$eq_call_1589", %TName_Bool** %test_27, align 8, !dbg !168 - %"$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_1584" - call void @_out_of_gas() - br label %"$have_gas_1594" - -"$have_gas_1594": ; preds = %"$out_of_gas_1593", %"$have_gas_1584" - %"$consume_1595" = sub i64 %"$gasrem_1591", 1 - store i64 %"$consume_1595", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %test_27, metadata !336, metadata !DIExpression()), !dbg !337 + %"$gasrem_1583" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1584" = icmp ugt i64 4, %"$gasrem_1583" + br i1 %"$gascmp_1584", label %"$out_of_gas_1585", label %"$have_gas_1586" + +"$out_of_gas_1585": ; preds = %"$have_gas_1581" + call void @_out_of_gas() + br label %"$have_gas_1586" + +"$have_gas_1586": ; preds = %"$out_of_gas_1585", %"$have_gas_1581" + %"$consume_1587" = sub i64 %"$gasrem_1583", 4 + store i64 %"$consume_1587", i64* @_gasrem, align 8 + %"$execptr_load_1588" = load i8*, i8** @_execptr, align 8 + %"$res_1589" = load %Uint32, %Uint32* %res25, align 4 + %"$input__1590" = load %Uint32, %Uint32* %input_26, align 4 + %"$eq_call_1591" = call %TName_Bool* @_eq_Uint32(i8* %"$execptr_load_1588", %Uint32 %"$res_1589", %Uint32 %"$input__1590"), !dbg !338 + store %TName_Bool* %"$eq_call_1591", %TName_Bool** %test_27, align 8, !dbg !338 + %"$gasrem_1593" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1594" = icmp ugt i64 1, %"$gasrem_1593" + br i1 %"$gascmp_1594", label %"$out_of_gas_1595", label %"$have_gas_1596" + +"$out_of_gas_1595": ; preds = %"$have_gas_1586" + call void @_out_of_gas() + br label %"$have_gas_1596" + +"$have_gas_1596": ; preds = %"$out_of_gas_1595", %"$have_gas_1586" + %"$consume_1597" = sub i64 %"$gasrem_1593", 1 + store i64 %"$consume_1597", i64* @_gasrem, align 8 %"$BoolUtils.andb_102" = alloca { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, align 8 - %"$BoolUtils.andb_1596" = 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_1597" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_1596", 0 - %"$BoolUtils.andb_envptr_1598" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_1596", 1 - %"$$test_48_1599" = load %TName_Bool*, %TName_Bool** %"$test_48", align 8 - %"$BoolUtils.andb_call_1600" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_1597"(i8* %"$BoolUtils.andb_envptr_1598", %TName_Bool* %"$$test_48_1599"), !dbg !169 - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_1600", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_102", align 8, !dbg !169 + %"$BoolUtils.andb_1598" = 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_1599" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_1598", 0 + %"$BoolUtils.andb_envptr_1600" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_1598", 1 + %"$$test_48_1601" = load %TName_Bool*, %TName_Bool** %"$test_48", align 8 + %"$BoolUtils.andb_call_1602" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_1599"(i8* %"$BoolUtils.andb_envptr_1600", %TName_Bool* %"$$test_48_1601"), !dbg !339 + store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_1602", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_102", align 8, !dbg !339 %"$BoolUtils.andb_103" = alloca %TName_Bool*, align 8 - %"$$BoolUtils.andb_102_1601" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_102", align 8 - %"$$BoolUtils.andb_102_fptr_1602" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_102_1601", 0 - %"$$BoolUtils.andb_102_envptr_1603" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_102_1601", 1 - %"$test__1604" = load %TName_Bool*, %TName_Bool** %test_27, align 8 - %"$$BoolUtils.andb_102_call_1605" = call %TName_Bool* %"$$BoolUtils.andb_102_fptr_1602"(i8* %"$$BoolUtils.andb_102_envptr_1603", %TName_Bool* %"$test__1604"), !dbg !169 - store %TName_Bool* %"$$BoolUtils.andb_102_call_1605", %TName_Bool** %"$BoolUtils.andb_103", align 8, !dbg !169 - %"$$BoolUtils.andb_103_1606" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_103", align 8 - store %TName_Bool* %"$$BoolUtils.andb_103_1606", %TName_Bool** %"$test_51", align 8, !dbg !169 - br label %"$matchsucc_1557" - -"$None_1607": ; preds = %"$have_gas_1555" - %"$$resopt_50_1608" = bitcast %TName_Option_Uint32* %"$$resopt_50_1558" to %CName_None_Uint32* - %"$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_1611": ; preds = %"$None_1607" - call void @_out_of_gas() - br label %"$have_gas_1612" - -"$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 - %"$false_1614" = load %TName_Bool*, %TName_Bool** %false, align 8 - store %TName_Bool* %"$false_1614", %TName_Bool** %"$test_51", align 8, !dbg !170 - br label %"$matchsucc_1557" - -"$empty_default_1561": ; preds = %"$have_gas_1555" - br label %"$matchsucc_1557" - -"$matchsucc_1557": ; preds = %"$have_gas_1612", %"$have_gas_1594", %"$empty_default_1561" - %"$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" - -"$out_of_gas_1617": ; preds = %"$matchsucc_1557" - call void @_out_of_gas() - br label %"$have_gas_1618" - -"$have_gas_1618": ; preds = %"$out_of_gas_1617", %"$matchsucc_1557" - %"$consume_1619" = sub i64 %"$gasrem_1615", 1 - store i64 %"$consume_1619", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$BoolUtils.andb_103", metadata !340, metadata !DIExpression()), !dbg !339 + %"$$BoolUtils.andb_102_1603" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_102", align 8 + %"$$BoolUtils.andb_102_fptr_1604" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_102_1603", 0 + %"$$BoolUtils.andb_102_envptr_1605" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_102_1603", 1 + %"$test__1606" = load %TName_Bool*, %TName_Bool** %test_27, align 8 + %"$$BoolUtils.andb_102_call_1607" = call %TName_Bool* %"$$BoolUtils.andb_102_fptr_1604"(i8* %"$$BoolUtils.andb_102_envptr_1605", %TName_Bool* %"$test__1606"), !dbg !339 + store %TName_Bool* %"$$BoolUtils.andb_102_call_1607", %TName_Bool** %"$BoolUtils.andb_103", align 8, !dbg !339 + %"$$BoolUtils.andb_103_1608" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_103", align 8 + store %TName_Bool* %"$$BoolUtils.andb_103_1608", %TName_Bool** %"$test_51", align 8, !dbg !339 + br label %"$matchsucc_1559" + +"$None_1609": ; preds = %"$have_gas_1557" + %"$$resopt_50_1610" = bitcast %TName_Option_Uint32* %"$$resopt_50_1560" to %CName_None_Uint32* + %"$gasrem_1611" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1612" = icmp ugt i64 1, %"$gasrem_1611" + br i1 %"$gascmp_1612", label %"$out_of_gas_1613", label %"$have_gas_1614" + +"$out_of_gas_1613": ; preds = %"$None_1609" + call void @_out_of_gas() + br label %"$have_gas_1614" + +"$have_gas_1614": ; preds = %"$out_of_gas_1613", %"$None_1609" + %"$consume_1615" = sub i64 %"$gasrem_1611", 1 + store i64 %"$consume_1615", i64* @_gasrem, align 8 + %"$false_1616" = load %TName_Bool*, %TName_Bool** %false, align 8 + store %TName_Bool* %"$false_1616", %TName_Bool** %"$test_51", align 8, !dbg !341 + br label %"$matchsucc_1559" + +"$empty_default_1563": ; preds = %"$have_gas_1557" + br label %"$matchsucc_1559" + +"$matchsucc_1559": ; preds = %"$have_gas_1614", %"$have_gas_1596", %"$empty_default_1563" + %"$gasrem_1617" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1618" = icmp ugt i64 1, %"$gasrem_1617" + br i1 %"$gascmp_1618", label %"$out_of_gas_1619", label %"$have_gas_1620" + +"$out_of_gas_1619": ; preds = %"$matchsucc_1559" + call void @_out_of_gas() + br label %"$have_gas_1620" + +"$have_gas_1620": ; preds = %"$out_of_gas_1619", %"$matchsucc_1559" + %"$consume_1621" = sub i64 %"$gasrem_1617", 1 + store i64 %"$consume_1621", i64* @_gasrem, align 8 %"$input_52" = alloca %Int32, 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" + call void @llvm.dbg.declare(metadata %Int32* %"$input_52", metadata !343, metadata !DIExpression()), !dbg !344 + %"$gasrem_1622" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1623" = icmp ugt i64 1, %"$gasrem_1622" + br i1 %"$gascmp_1623", label %"$out_of_gas_1624", label %"$have_gas_1625" -"$out_of_gas_1622": ; preds = %"$have_gas_1618" +"$out_of_gas_1624": ; preds = %"$have_gas_1620" call void @_out_of_gas() - br label %"$have_gas_1623" + br label %"$have_gas_1625" -"$have_gas_1623": ; preds = %"$out_of_gas_1622", %"$have_gas_1618" - %"$consume_1624" = sub i64 %"$gasrem_1620", 1 - store i64 %"$consume_1624", i64* @_gasrem, align 8 - store %Int32 { i32 -2147483648 }, %Int32* %"$input_52", align 4, !dbg !172 - %"$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" +"$have_gas_1625": ; preds = %"$out_of_gas_1624", %"$have_gas_1620" + %"$consume_1626" = sub i64 %"$gasrem_1622", 1 + store i64 %"$consume_1626", i64* @_gasrem, align 8 + store %Int32 { i32 -2147483648 }, %Int32* %"$input_52", align 4, !dbg !345 + %"$gasrem_1627" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1628" = icmp ugt i64 1, %"$gasrem_1627" + br i1 %"$gascmp_1628", label %"$out_of_gas_1629", label %"$have_gas_1630" -"$out_of_gas_1627": ; preds = %"$have_gas_1623" +"$out_of_gas_1629": ; preds = %"$have_gas_1625" call void @_out_of_gas() - br label %"$have_gas_1628" + br label %"$have_gas_1630" -"$have_gas_1628": ; preds = %"$out_of_gas_1627", %"$have_gas_1623" - %"$consume_1629" = sub i64 %"$gasrem_1625", 1 - store i64 %"$consume_1629", i64* @_gasrem, align 8 +"$have_gas_1630": ; preds = %"$out_of_gas_1629", %"$have_gas_1625" + %"$consume_1631" = sub i64 %"$gasrem_1627", 1 + store i64 %"$consume_1631", i64* @_gasrem, align 8 %"$resopt_53" = alloca %TName_Option_Uint32*, align 8 - %"$gasrem_1630" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1631" = icmp ugt i64 4, %"$gasrem_1630" - br i1 %"$gascmp_1631", label %"$out_of_gas_1632", label %"$have_gas_1633" - -"$out_of_gas_1632": ; preds = %"$have_gas_1628" - call void @_out_of_gas() - br label %"$have_gas_1633" - -"$have_gas_1633": ; preds = %"$out_of_gas_1632", %"$have_gas_1628" - %"$consume_1634" = sub i64 %"$gasrem_1630", 4 - store i64 %"$consume_1634", i64* @_gasrem, align 8 - %"$execptr_load_1635" = load i8*, i8** @_execptr, align 8 - %"$to_uint32_$input_52_1636" = alloca %Int32, align 8 - %"$$input_52_1637" = load %Int32, %Int32* %"$input_52", align 4 - store %Int32 %"$$input_52_1637", %Int32* %"$to_uint32_$input_52_1636", align 4 - %"$$to_uint32_$input_52_1636_1638" = bitcast %Int32* %"$to_uint32_$input_52_1636" to i8* - %"$to_uint32_call_1639" = call i8* @_to_uint32(i8* %"$execptr_load_1635", %_TyDescrTy_Typ* @"$TyDescr_Int32_115", i8* %"$$to_uint32_$input_52_1636_1638"), !dbg !173 - %"$to_uint32_1640" = bitcast i8* %"$to_uint32_call_1639" to %TName_Option_Uint32* - store %TName_Option_Uint32* %"$to_uint32_1640", %TName_Option_Uint32** %"$resopt_53", align 8, !dbg !173 - %"$gasrem_1641" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1642" = icmp ugt i64 1, %"$gasrem_1641" - br i1 %"$gascmp_1642", label %"$out_of_gas_1643", label %"$have_gas_1644" - -"$out_of_gas_1643": ; preds = %"$have_gas_1633" - call void @_out_of_gas() - br label %"$have_gas_1644" - -"$have_gas_1644": ; preds = %"$out_of_gas_1643", %"$have_gas_1633" - %"$consume_1645" = sub i64 %"$gasrem_1641", 1 - store i64 %"$consume_1645", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Option_Uint32** %"$resopt_53", metadata !346, metadata !DIExpression()), !dbg !347 + %"$gasrem_1632" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1633" = icmp ugt i64 4, %"$gasrem_1632" + br i1 %"$gascmp_1633", label %"$out_of_gas_1634", label %"$have_gas_1635" + +"$out_of_gas_1634": ; preds = %"$have_gas_1630" + call void @_out_of_gas() + br label %"$have_gas_1635" + +"$have_gas_1635": ; preds = %"$out_of_gas_1634", %"$have_gas_1630" + %"$consume_1636" = sub i64 %"$gasrem_1632", 4 + store i64 %"$consume_1636", i64* @_gasrem, align 8 + %"$execptr_load_1637" = load i8*, i8** @_execptr, align 8 + %"$to_uint32_$input_52_1638" = alloca %Int32, align 8 + %"$$input_52_1639" = load %Int32, %Int32* %"$input_52", align 4 + store %Int32 %"$$input_52_1639", %Int32* %"$to_uint32_$input_52_1638", align 4 + %"$$to_uint32_$input_52_1638_1640" = bitcast %Int32* %"$to_uint32_$input_52_1638" to i8* + %"$to_uint32_call_1641" = call i8* @_to_uint32(i8* %"$execptr_load_1637", %_TyDescrTy_Typ* @"$TyDescr_Int32_115", i8* %"$$to_uint32_$input_52_1638_1640"), !dbg !348 + %"$to_uint32_1642" = bitcast i8* %"$to_uint32_call_1641" to %TName_Option_Uint32* + store %TName_Option_Uint32* %"$to_uint32_1642", %TName_Option_Uint32** %"$resopt_53", align 8, !dbg !348 + %"$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_1635" + call void @_out_of_gas() + br label %"$have_gas_1646" + +"$have_gas_1646": ; preds = %"$out_of_gas_1645", %"$have_gas_1635" + %"$consume_1647" = sub i64 %"$gasrem_1643", 1 + store i64 %"$consume_1647", i64* @_gasrem, align 8 %"$test_54" = alloca %TName_Bool*, align 8 - %"$gasrem_1646" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1647" = icmp ugt i64 2, %"$gasrem_1646" - br i1 %"$gascmp_1647", label %"$out_of_gas_1648", label %"$have_gas_1649" - -"$out_of_gas_1648": ; preds = %"$have_gas_1644" - call void @_out_of_gas() - br label %"$have_gas_1649" - -"$have_gas_1649": ; preds = %"$out_of_gas_1648", %"$have_gas_1644" - %"$consume_1650" = sub i64 %"$gasrem_1646", 2 - store i64 %"$consume_1650", i64* @_gasrem, align 8 - %"$$resopt_53_1652" = load %TName_Option_Uint32*, %TName_Option_Uint32** %"$resopt_53", align 8 - %"$$resopt_53_tag_1653" = getelementptr inbounds %TName_Option_Uint32, %TName_Option_Uint32* %"$$resopt_53_1652", i32 0, i32 0 - %"$$resopt_53_tag_1654" = load i8, i8* %"$$resopt_53_tag_1653", align 1 - switch i8 %"$$resopt_53_tag_1654", label %"$empty_default_1655" [ - i8 0, label %"$Some_1656" - i8 1, label %"$None_1666" - ], !dbg !174 - -"$Some_1656": ; preds = %"$have_gas_1649" - %"$$resopt_53_1657" = bitcast %TName_Option_Uint32* %"$$resopt_53_1652" to %CName_Some_Uint32* - %"$$$resopt_53_79_gep_1658" = getelementptr inbounds %CName_Some_Uint32, %CName_Some_Uint32* %"$$resopt_53_1657", i32 0, i32 1 - %"$$$resopt_53_79_load_1659" = load %Uint32, %Uint32* %"$$$resopt_53_79_gep_1658", align 4 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$test_54", metadata !349, metadata !DIExpression()), !dbg !350 + %"$gasrem_1648" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1649" = icmp ugt i64 2, %"$gasrem_1648" + br i1 %"$gascmp_1649", label %"$out_of_gas_1650", label %"$have_gas_1651" + +"$out_of_gas_1650": ; preds = %"$have_gas_1646" + call void @_out_of_gas() + br label %"$have_gas_1651" + +"$have_gas_1651": ; preds = %"$out_of_gas_1650", %"$have_gas_1646" + %"$consume_1652" = sub i64 %"$gasrem_1648", 2 + store i64 %"$consume_1652", i64* @_gasrem, align 8 + %"$$resopt_53_1654" = load %TName_Option_Uint32*, %TName_Option_Uint32** %"$resopt_53", align 8 + %"$$resopt_53_tag_1655" = getelementptr inbounds %TName_Option_Uint32, %TName_Option_Uint32* %"$$resopt_53_1654", i32 0, i32 0 + %"$$resopt_53_tag_1656" = load i8, i8* %"$$resopt_53_tag_1655", align 1 + switch i8 %"$$resopt_53_tag_1656", label %"$empty_default_1657" [ + i8 0, label %"$Some_1658" + i8 1, label %"$None_1668" + ], !dbg !351 + +"$Some_1658": ; preds = %"$have_gas_1651" + %"$$resopt_53_1659" = bitcast %TName_Option_Uint32* %"$$resopt_53_1654" to %CName_Some_Uint32* + %"$$$resopt_53_79_gep_1660" = getelementptr inbounds %CName_Some_Uint32, %CName_Some_Uint32* %"$$resopt_53_1659", i32 0, i32 1 + %"$$$resopt_53_79_load_1661" = load %Uint32, %Uint32* %"$$$resopt_53_79_gep_1660", align 4 %"$$resopt_53_79" = alloca %Uint32, align 8 - store %Uint32 %"$$$resopt_53_79_load_1659", %Uint32* %"$$resopt_53_79", align 4 - %"$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" + store %Uint32 %"$$$resopt_53_79_load_1661", %Uint32* %"$$resopt_53_79", align 4 + %"$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_1662": ; preds = %"$Some_1656" +"$out_of_gas_1664": ; preds = %"$Some_1658" call void @_out_of_gas() - br label %"$have_gas_1663" + br label %"$have_gas_1665" -"$have_gas_1663": ; preds = %"$out_of_gas_1662", %"$Some_1656" - %"$consume_1664" = sub i64 %"$gasrem_1660", 1 - store i64 %"$consume_1664", i64* @_gasrem, align 8 - %"$false_1665" = load %TName_Bool*, %TName_Bool** %false, align 8 - store %TName_Bool* %"$false_1665", %TName_Bool** %"$test_54", align 8, !dbg !175 - br label %"$matchsucc_1651" +"$have_gas_1665": ; preds = %"$out_of_gas_1664", %"$Some_1658" + %"$consume_1666" = sub i64 %"$gasrem_1662", 1 + store i64 %"$consume_1666", i64* @_gasrem, align 8 + %"$false_1667" = load %TName_Bool*, %TName_Bool** %false, align 8 + store %TName_Bool* %"$false_1667", %TName_Bool** %"$test_54", align 8, !dbg !352 + br label %"$matchsucc_1653" -"$None_1666": ; preds = %"$have_gas_1649" - %"$$resopt_53_1667" = bitcast %TName_Option_Uint32* %"$$resopt_53_1652" to %CName_None_Uint32* - %"$gasrem_1668" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1669" = icmp ugt i64 1, %"$gasrem_1668" - br i1 %"$gascmp_1669", label %"$out_of_gas_1670", label %"$have_gas_1671" +"$None_1668": ; preds = %"$have_gas_1651" + %"$$resopt_53_1669" = bitcast %TName_Option_Uint32* %"$$resopt_53_1654" to %CName_None_Uint32* + %"$gasrem_1670" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1671" = icmp ugt i64 1, %"$gasrem_1670" + br i1 %"$gascmp_1671", label %"$out_of_gas_1672", label %"$have_gas_1673" -"$out_of_gas_1670": ; preds = %"$None_1666" +"$out_of_gas_1672": ; preds = %"$None_1668" call void @_out_of_gas() - br label %"$have_gas_1671" + br label %"$have_gas_1673" -"$have_gas_1671": ; preds = %"$out_of_gas_1670", %"$None_1666" - %"$consume_1672" = sub i64 %"$gasrem_1668", 1 - store i64 %"$consume_1672", i64* @_gasrem, align 8 - %"$$test_51_1673" = load %TName_Bool*, %TName_Bool** %"$test_51", align 8 - store %TName_Bool* %"$$test_51_1673", %TName_Bool** %"$test_54", align 8, !dbg !178 - br label %"$matchsucc_1651" +"$have_gas_1673": ; preds = %"$out_of_gas_1672", %"$None_1668" + %"$consume_1674" = sub i64 %"$gasrem_1670", 1 + store i64 %"$consume_1674", i64* @_gasrem, align 8 + %"$$test_51_1675" = load %TName_Bool*, %TName_Bool** %"$test_51", align 8 + store %TName_Bool* %"$$test_51_1675", %TName_Bool** %"$test_54", align 8, !dbg !355 + br label %"$matchsucc_1653" -"$empty_default_1655": ; preds = %"$have_gas_1649" - br label %"$matchsucc_1651" +"$empty_default_1657": ; preds = %"$have_gas_1651" + br label %"$matchsucc_1653" -"$matchsucc_1651": ; preds = %"$have_gas_1671", %"$have_gas_1663", %"$empty_default_1655" - %"$gasrem_1674" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1675" = icmp ugt i64 1, %"$gasrem_1674" - br i1 %"$gascmp_1675", label %"$out_of_gas_1676", label %"$have_gas_1677" +"$matchsucc_1653": ; preds = %"$have_gas_1673", %"$have_gas_1665", %"$empty_default_1657" + %"$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_1676": ; preds = %"$matchsucc_1651" +"$out_of_gas_1678": ; preds = %"$matchsucc_1653" call void @_out_of_gas() - br label %"$have_gas_1677" + br label %"$have_gas_1679" -"$have_gas_1677": ; preds = %"$out_of_gas_1676", %"$matchsucc_1651" - %"$consume_1678" = sub i64 %"$gasrem_1674", 1 - store i64 %"$consume_1678", i64* @_gasrem, align 8 +"$have_gas_1679": ; preds = %"$out_of_gas_1678", %"$matchsucc_1653" + %"$consume_1680" = sub i64 %"$gasrem_1676", 1 + store i64 %"$consume_1680", i64* @_gasrem, align 8 %"$input_55" = alloca %String, align 8 - %"$gasrem_1679" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1680" = icmp ugt i64 1, %"$gasrem_1679" - br i1 %"$gascmp_1680", label %"$out_of_gas_1681", label %"$have_gas_1682" + call void @llvm.dbg.declare(metadata %String* %"$input_55", metadata !357, metadata !DIExpression()), !dbg !359 + %"$gasrem_1681" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1682" = icmp ugt i64 1, %"$gasrem_1681" + br i1 %"$gascmp_1682", label %"$out_of_gas_1683", label %"$have_gas_1684" -"$out_of_gas_1681": ; preds = %"$have_gas_1677" +"$out_of_gas_1683": ; preds = %"$have_gas_1679" call void @_out_of_gas() - br label %"$have_gas_1682" + br label %"$have_gas_1684" -"$have_gas_1682": ; preds = %"$out_of_gas_1681", %"$have_gas_1677" - %"$consume_1683" = sub i64 %"$gasrem_1679", 1 - store i64 %"$consume_1683", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([11 x i8], [11 x i8]* @"$stringlit_1684", i32 0, i32 0), i32 11 }, %String* %"$input_55", align 8, !dbg !180 - %"$gasrem_1685" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1686" = icmp ugt i64 1, %"$gasrem_1685" - br i1 %"$gascmp_1686", label %"$out_of_gas_1687", label %"$have_gas_1688" +"$have_gas_1684": ; preds = %"$out_of_gas_1683", %"$have_gas_1679" + %"$consume_1685" = sub i64 %"$gasrem_1681", 1 + store i64 %"$consume_1685", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([11 x i8], [11 x i8]* @"$stringlit_1686", i32 0, i32 0), i32 11 }, %String* %"$input_55", align 8, !dbg !360 + %"$gasrem_1687" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1688" = icmp ugt i64 1, %"$gasrem_1687" + br i1 %"$gascmp_1688", label %"$out_of_gas_1689", label %"$have_gas_1690" -"$out_of_gas_1687": ; preds = %"$have_gas_1682" +"$out_of_gas_1689": ; preds = %"$have_gas_1684" call void @_out_of_gas() - br label %"$have_gas_1688" + br label %"$have_gas_1690" -"$have_gas_1688": ; preds = %"$out_of_gas_1687", %"$have_gas_1682" - %"$consume_1689" = sub i64 %"$gasrem_1685", 1 - store i64 %"$consume_1689", i64* @_gasrem, align 8 +"$have_gas_1690": ; preds = %"$out_of_gas_1689", %"$have_gas_1684" + %"$consume_1691" = sub i64 %"$gasrem_1687", 1 + store i64 %"$consume_1691", i64* @_gasrem, align 8 %"$resopt_56" = alloca %TName_Option_Uint32*, align 8 - %"$gasrem_1690" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1691" = icmp ugt i64 4, %"$gasrem_1690" - br i1 %"$gascmp_1691", label %"$out_of_gas_1692", label %"$have_gas_1693" - -"$out_of_gas_1692": ; preds = %"$have_gas_1688" - call void @_out_of_gas() - br label %"$have_gas_1693" - -"$have_gas_1693": ; preds = %"$out_of_gas_1692", %"$have_gas_1688" - %"$consume_1694" = sub i64 %"$gasrem_1690", 4 - store i64 %"$consume_1694", i64* @_gasrem, align 8 - %"$execptr_load_1695" = load i8*, i8** @_execptr, align 8 - %"$to_uint32_$input_55_1696" = alloca %String, align 8 - %"$$input_55_1697" = load %String, %String* %"$input_55", align 8 - store %String %"$$input_55_1697", %String* %"$to_uint32_$input_55_1696", align 8 - %"$$to_uint32_$input_55_1696_1698" = bitcast %String* %"$to_uint32_$input_55_1696" to i8* - %"$to_uint32_call_1699" = call i8* @_to_uint32(i8* %"$execptr_load_1695", %_TyDescrTy_Typ* @"$TyDescr_String_131", i8* %"$$to_uint32_$input_55_1696_1698"), !dbg !181 - %"$to_uint32_1700" = bitcast i8* %"$to_uint32_call_1699" to %TName_Option_Uint32* - store %TName_Option_Uint32* %"$to_uint32_1700", %TName_Option_Uint32** %"$resopt_56", align 8, !dbg !181 - %"$gasrem_1701" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1702" = icmp ugt i64 1, %"$gasrem_1701" - br i1 %"$gascmp_1702", label %"$out_of_gas_1703", label %"$have_gas_1704" - -"$out_of_gas_1703": ; preds = %"$have_gas_1693" - call void @_out_of_gas() - br label %"$have_gas_1704" - -"$have_gas_1704": ; preds = %"$out_of_gas_1703", %"$have_gas_1693" - %"$consume_1705" = sub i64 %"$gasrem_1701", 1 - store i64 %"$consume_1705", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Option_Uint32** %"$resopt_56", metadata !361, metadata !DIExpression()), !dbg !362 + %"$gasrem_1692" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1693" = icmp ugt i64 4, %"$gasrem_1692" + br i1 %"$gascmp_1693", label %"$out_of_gas_1694", label %"$have_gas_1695" + +"$out_of_gas_1694": ; preds = %"$have_gas_1690" + call void @_out_of_gas() + br label %"$have_gas_1695" + +"$have_gas_1695": ; preds = %"$out_of_gas_1694", %"$have_gas_1690" + %"$consume_1696" = sub i64 %"$gasrem_1692", 4 + store i64 %"$consume_1696", i64* @_gasrem, align 8 + %"$execptr_load_1697" = load i8*, i8** @_execptr, align 8 + %"$to_uint32_$input_55_1698" = alloca %String, align 8 + %"$$input_55_1699" = load %String, %String* %"$input_55", align 8 + store %String %"$$input_55_1699", %String* %"$to_uint32_$input_55_1698", align 8 + %"$$to_uint32_$input_55_1698_1700" = bitcast %String* %"$to_uint32_$input_55_1698" to i8* + %"$to_uint32_call_1701" = call i8* @_to_uint32(i8* %"$execptr_load_1697", %_TyDescrTy_Typ* @"$TyDescr_String_131", i8* %"$$to_uint32_$input_55_1698_1700"), !dbg !363 + %"$to_uint32_1702" = bitcast i8* %"$to_uint32_call_1701" to %TName_Option_Uint32* + store %TName_Option_Uint32* %"$to_uint32_1702", %TName_Option_Uint32** %"$resopt_56", align 8, !dbg !363 + %"$gasrem_1703" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1704" = icmp ugt i64 1, %"$gasrem_1703" + br i1 %"$gascmp_1704", label %"$out_of_gas_1705", label %"$have_gas_1706" + +"$out_of_gas_1705": ; preds = %"$have_gas_1695" + call void @_out_of_gas() + br label %"$have_gas_1706" + +"$have_gas_1706": ; preds = %"$out_of_gas_1705", %"$have_gas_1695" + %"$consume_1707" = sub i64 %"$gasrem_1703", 1 + store i64 %"$consume_1707", i64* @_gasrem, align 8 %"$test_57" = alloca %TName_Bool*, align 8 - %"$gasrem_1706" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1707" = icmp ugt i64 2, %"$gasrem_1706" - br i1 %"$gascmp_1707", label %"$out_of_gas_1708", label %"$have_gas_1709" - -"$out_of_gas_1708": ; preds = %"$have_gas_1704" - call void @_out_of_gas() - br label %"$have_gas_1709" - -"$have_gas_1709": ; preds = %"$out_of_gas_1708", %"$have_gas_1704" - %"$consume_1710" = sub i64 %"$gasrem_1706", 2 - store i64 %"$consume_1710", i64* @_gasrem, align 8 - %"$$resopt_56_1712" = load %TName_Option_Uint32*, %TName_Option_Uint32** %"$resopt_56", align 8 - %"$$resopt_56_tag_1713" = getelementptr inbounds %TName_Option_Uint32, %TName_Option_Uint32* %"$$resopt_56_1712", i32 0, i32 0 - %"$$resopt_56_tag_1714" = load i8, i8* %"$$resopt_56_tag_1713", align 1 - switch i8 %"$$resopt_56_tag_1714", label %"$empty_default_1715" [ - i8 0, label %"$Some_1716" - i8 1, label %"$None_1726" - ], !dbg !182 - -"$Some_1716": ; preds = %"$have_gas_1709" - %"$$resopt_56_1717" = bitcast %TName_Option_Uint32* %"$$resopt_56_1712" to %CName_Some_Uint32* - %"$$$resopt_56_80_gep_1718" = getelementptr inbounds %CName_Some_Uint32, %CName_Some_Uint32* %"$$resopt_56_1717", i32 0, i32 1 - %"$$$resopt_56_80_load_1719" = load %Uint32, %Uint32* %"$$$resopt_56_80_gep_1718", align 4 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$test_57", metadata !364, metadata !DIExpression()), !dbg !365 + %"$gasrem_1708" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1709" = icmp ugt i64 2, %"$gasrem_1708" + br i1 %"$gascmp_1709", label %"$out_of_gas_1710", label %"$have_gas_1711" + +"$out_of_gas_1710": ; preds = %"$have_gas_1706" + call void @_out_of_gas() + br label %"$have_gas_1711" + +"$have_gas_1711": ; preds = %"$out_of_gas_1710", %"$have_gas_1706" + %"$consume_1712" = sub i64 %"$gasrem_1708", 2 + store i64 %"$consume_1712", i64* @_gasrem, align 8 + %"$$resopt_56_1714" = load %TName_Option_Uint32*, %TName_Option_Uint32** %"$resopt_56", align 8 + %"$$resopt_56_tag_1715" = getelementptr inbounds %TName_Option_Uint32, %TName_Option_Uint32* %"$$resopt_56_1714", i32 0, i32 0 + %"$$resopt_56_tag_1716" = load i8, i8* %"$$resopt_56_tag_1715", align 1 + switch i8 %"$$resopt_56_tag_1716", label %"$empty_default_1717" [ + i8 0, label %"$Some_1718" + i8 1, label %"$None_1728" + ], !dbg !366 + +"$Some_1718": ; preds = %"$have_gas_1711" + %"$$resopt_56_1719" = bitcast %TName_Option_Uint32* %"$$resopt_56_1714" to %CName_Some_Uint32* + %"$$$resopt_56_80_gep_1720" = getelementptr inbounds %CName_Some_Uint32, %CName_Some_Uint32* %"$$resopt_56_1719", i32 0, i32 1 + %"$$$resopt_56_80_load_1721" = load %Uint32, %Uint32* %"$$$resopt_56_80_gep_1720", align 4 %"$$resopt_56_80" = alloca %Uint32, align 8 - store %Uint32 %"$$$resopt_56_80_load_1719", %Uint32* %"$$resopt_56_80", align 4 - %"$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" + store %Uint32 %"$$$resopt_56_80_load_1721", %Uint32* %"$$resopt_56_80", align 4 + %"$gasrem_1722" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1723" = icmp ugt i64 1, %"$gasrem_1722" + br i1 %"$gascmp_1723", label %"$out_of_gas_1724", label %"$have_gas_1725" -"$out_of_gas_1722": ; preds = %"$Some_1716" +"$out_of_gas_1724": ; preds = %"$Some_1718" call void @_out_of_gas() - br label %"$have_gas_1723" + br label %"$have_gas_1725" -"$have_gas_1723": ; preds = %"$out_of_gas_1722", %"$Some_1716" - %"$consume_1724" = sub i64 %"$gasrem_1720", 1 - store i64 %"$consume_1724", i64* @_gasrem, align 8 - %"$false_1725" = load %TName_Bool*, %TName_Bool** %false, align 8 - store %TName_Bool* %"$false_1725", %TName_Bool** %"$test_57", align 8, !dbg !183 - br label %"$matchsucc_1711" +"$have_gas_1725": ; preds = %"$out_of_gas_1724", %"$Some_1718" + %"$consume_1726" = sub i64 %"$gasrem_1722", 1 + store i64 %"$consume_1726", i64* @_gasrem, align 8 + %"$false_1727" = load %TName_Bool*, %TName_Bool** %false, align 8 + store %TName_Bool* %"$false_1727", %TName_Bool** %"$test_57", align 8, !dbg !367 + br label %"$matchsucc_1713" -"$None_1726": ; preds = %"$have_gas_1709" - %"$$resopt_56_1727" = bitcast %TName_Option_Uint32* %"$$resopt_56_1712" to %CName_None_Uint32* - %"$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" +"$None_1728": ; preds = %"$have_gas_1711" + %"$$resopt_56_1729" = bitcast %TName_Option_Uint32* %"$$resopt_56_1714" to %CName_None_Uint32* + %"$gasrem_1730" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1731" = icmp ugt i64 1, %"$gasrem_1730" + br i1 %"$gascmp_1731", label %"$out_of_gas_1732", label %"$have_gas_1733" -"$out_of_gas_1730": ; preds = %"$None_1726" +"$out_of_gas_1732": ; preds = %"$None_1728" call void @_out_of_gas() - br label %"$have_gas_1731" + br label %"$have_gas_1733" -"$have_gas_1731": ; preds = %"$out_of_gas_1730", %"$None_1726" - %"$consume_1732" = sub i64 %"$gasrem_1728", 1 - store i64 %"$consume_1732", i64* @_gasrem, align 8 - %"$$test_54_1733" = load %TName_Bool*, %TName_Bool** %"$test_54", align 8 - store %TName_Bool* %"$$test_54_1733", %TName_Bool** %"$test_57", align 8, !dbg !186 - br label %"$matchsucc_1711" +"$have_gas_1733": ; preds = %"$out_of_gas_1732", %"$None_1728" + %"$consume_1734" = sub i64 %"$gasrem_1730", 1 + store i64 %"$consume_1734", i64* @_gasrem, align 8 + %"$$test_54_1735" = load %TName_Bool*, %TName_Bool** %"$test_54", align 8 + store %TName_Bool* %"$$test_54_1735", %TName_Bool** %"$test_57", align 8, !dbg !370 + br label %"$matchsucc_1713" -"$empty_default_1715": ; preds = %"$have_gas_1709" - br label %"$matchsucc_1711" +"$empty_default_1717": ; preds = %"$have_gas_1711" + br label %"$matchsucc_1713" -"$matchsucc_1711": ; preds = %"$have_gas_1731", %"$have_gas_1723", %"$empty_default_1715" - %"$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" +"$matchsucc_1713": ; preds = %"$have_gas_1733", %"$have_gas_1725", %"$empty_default_1717" + %"$gasrem_1736" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1737" = icmp ugt i64 1, %"$gasrem_1736" + br i1 %"$gascmp_1737", label %"$out_of_gas_1738", label %"$have_gas_1739" -"$out_of_gas_1736": ; preds = %"$matchsucc_1711" +"$out_of_gas_1738": ; preds = %"$matchsucc_1713" call void @_out_of_gas() - br label %"$have_gas_1737" + br label %"$have_gas_1739" -"$have_gas_1737": ; preds = %"$out_of_gas_1736", %"$matchsucc_1711" - %"$consume_1738" = sub i64 %"$gasrem_1734", 1 - store i64 %"$consume_1738", i64* @_gasrem, align 8 +"$have_gas_1739": ; preds = %"$out_of_gas_1738", %"$matchsucc_1713" + %"$consume_1740" = sub i64 %"$gasrem_1736", 1 + store i64 %"$consume_1740", i64* @_gasrem, align 8 %"$input_58" = alloca %Int256, 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" + call void @llvm.dbg.declare(metadata %Int256* %"$input_58", metadata !372, metadata !DIExpression()), !dbg !374 + %"$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_1741": ; preds = %"$have_gas_1737" +"$out_of_gas_1743": ; preds = %"$have_gas_1739" call void @_out_of_gas() - br label %"$have_gas_1742" + br label %"$have_gas_1744" -"$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 - store %Int256 { i256 57896044618658097711785492504343953926634992332820282019728792003956564819967 }, %Int256* %"$input_58", align 8, !dbg !188 - %"$gasrem_1744" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1745" = icmp ugt i64 1, %"$gasrem_1744" - br i1 %"$gascmp_1745", label %"$out_of_gas_1746", label %"$have_gas_1747" +"$have_gas_1744": ; preds = %"$out_of_gas_1743", %"$have_gas_1739" + %"$consume_1745" = sub i64 %"$gasrem_1741", 1 + store i64 %"$consume_1745", i64* @_gasrem, align 8 + store %Int256 { i256 57896044618658097711785492504343953926634992332820282019728792003956564819967 }, %Int256* %"$input_58", align 8, !dbg !375 + %"$gasrem_1746" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1747" = icmp ugt i64 1, %"$gasrem_1746" + br i1 %"$gascmp_1747", label %"$out_of_gas_1748", label %"$have_gas_1749" -"$out_of_gas_1746": ; preds = %"$have_gas_1742" +"$out_of_gas_1748": ; preds = %"$have_gas_1744" call void @_out_of_gas() - br label %"$have_gas_1747" + br label %"$have_gas_1749" -"$have_gas_1747": ; preds = %"$out_of_gas_1746", %"$have_gas_1742" - %"$consume_1748" = sub i64 %"$gasrem_1744", 1 - store i64 %"$consume_1748", i64* @_gasrem, align 8 +"$have_gas_1749": ; preds = %"$out_of_gas_1748", %"$have_gas_1744" + %"$consume_1750" = sub i64 %"$gasrem_1746", 1 + store i64 %"$consume_1750", i64* @_gasrem, align 8 %"$resopt_59" = alloca %TName_Option_Uint256*, align 8 - %"$gasrem_1749" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1750" = icmp ugt i64 16, %"$gasrem_1749" - br i1 %"$gascmp_1750", label %"$out_of_gas_1751", label %"$have_gas_1752" - -"$out_of_gas_1751": ; preds = %"$have_gas_1747" - call void @_out_of_gas() - br label %"$have_gas_1752" - -"$have_gas_1752": ; preds = %"$out_of_gas_1751", %"$have_gas_1747" - %"$consume_1753" = sub i64 %"$gasrem_1749", 16 - store i64 %"$consume_1753", i64* @_gasrem, align 8 - %"$execptr_load_1754" = load i8*, i8** @_execptr, align 8 - %"$to_uint256_$input_58_1755" = alloca %Int256, align 8 - %"$$input_58_1756" = load %Int256, %Int256* %"$input_58", align 8 - store %Int256 %"$$input_58_1756", %Int256* %"$to_uint256_$input_58_1755", align 8 - %"$$to_uint256_$input_58_1755_1757" = bitcast %Int256* %"$to_uint256_$input_58_1755" to i8* - %"$to_uint256_call_1758" = call i8* @_to_uint256(i8* %"$execptr_load_1754", %_TyDescrTy_Typ* @"$TyDescr_Int256_127", i8* %"$$to_uint256_$input_58_1755_1757"), !dbg !189 - %"$to_uint256_1759" = bitcast i8* %"$to_uint256_call_1758" to %TName_Option_Uint256* - store %TName_Option_Uint256* %"$to_uint256_1759", %TName_Option_Uint256** %"$resopt_59", align 8, !dbg !189 - %"$gasrem_1760" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1761" = icmp ugt i64 1, %"$gasrem_1760" - br i1 %"$gascmp_1761", label %"$out_of_gas_1762", label %"$have_gas_1763" - -"$out_of_gas_1762": ; preds = %"$have_gas_1752" - call void @_out_of_gas() - br label %"$have_gas_1763" - -"$have_gas_1763": ; preds = %"$out_of_gas_1762", %"$have_gas_1752" - %"$consume_1764" = sub i64 %"$gasrem_1760", 1 - store i64 %"$consume_1764", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Option_Uint256** %"$resopt_59", metadata !376, metadata !DIExpression()), !dbg !377 + %"$gasrem_1751" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1752" = icmp ugt i64 16, %"$gasrem_1751" + br i1 %"$gascmp_1752", label %"$out_of_gas_1753", label %"$have_gas_1754" + +"$out_of_gas_1753": ; preds = %"$have_gas_1749" + call void @_out_of_gas() + br label %"$have_gas_1754" + +"$have_gas_1754": ; preds = %"$out_of_gas_1753", %"$have_gas_1749" + %"$consume_1755" = sub i64 %"$gasrem_1751", 16 + store i64 %"$consume_1755", i64* @_gasrem, align 8 + %"$execptr_load_1756" = load i8*, i8** @_execptr, align 8 + %"$to_uint256_$input_58_1757" = alloca %Int256, align 8 + %"$$input_58_1758" = load %Int256, %Int256* %"$input_58", align 8 + store %Int256 %"$$input_58_1758", %Int256* %"$to_uint256_$input_58_1757", align 8 + %"$$to_uint256_$input_58_1757_1759" = bitcast %Int256* %"$to_uint256_$input_58_1757" to i8* + %"$to_uint256_call_1760" = call i8* @_to_uint256(i8* %"$execptr_load_1756", %_TyDescrTy_Typ* @"$TyDescr_Int256_127", i8* %"$$to_uint256_$input_58_1757_1759"), !dbg !378 + %"$to_uint256_1761" = bitcast i8* %"$to_uint256_call_1760" to %TName_Option_Uint256* + store %TName_Option_Uint256* %"$to_uint256_1761", %TName_Option_Uint256** %"$resopt_59", align 8, !dbg !378 + %"$gasrem_1762" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1763" = icmp ugt i64 1, %"$gasrem_1762" + br i1 %"$gascmp_1763", label %"$out_of_gas_1764", label %"$have_gas_1765" + +"$out_of_gas_1764": ; preds = %"$have_gas_1754" + call void @_out_of_gas() + br label %"$have_gas_1765" + +"$have_gas_1765": ; preds = %"$out_of_gas_1764", %"$have_gas_1754" + %"$consume_1766" = sub i64 %"$gasrem_1762", 1 + store i64 %"$consume_1766", i64* @_gasrem, align 8 %"$test_60" = alloca %TName_Bool*, align 8 - %"$gasrem_1765" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1766" = icmp ugt i64 2, %"$gasrem_1765" - br i1 %"$gascmp_1766", label %"$out_of_gas_1767", label %"$have_gas_1768" - -"$out_of_gas_1767": ; preds = %"$have_gas_1763" - call void @_out_of_gas() - br label %"$have_gas_1768" - -"$have_gas_1768": ; preds = %"$out_of_gas_1767", %"$have_gas_1763" - %"$consume_1769" = sub i64 %"$gasrem_1765", 2 - store i64 %"$consume_1769", i64* @_gasrem, align 8 - %"$$resopt_59_1771" = load %TName_Option_Uint256*, %TName_Option_Uint256** %"$resopt_59", align 8 - %"$$resopt_59_tag_1772" = getelementptr inbounds %TName_Option_Uint256, %TName_Option_Uint256* %"$$resopt_59_1771", i32 0, i32 0 - %"$$resopt_59_tag_1773" = load i8, i8* %"$$resopt_59_tag_1772", align 1 - switch i8 %"$$resopt_59_tag_1773", label %"$empty_default_1774" [ - i8 0, label %"$Some_1775" - i8 1, label %"$None_1823" - ], !dbg !190 - -"$Some_1775": ; preds = %"$have_gas_1768" - %"$$resopt_59_1776" = bitcast %TName_Option_Uint256* %"$$resopt_59_1771" to %CName_Some_Uint256* - %"$res_gep_1777" = getelementptr inbounds %CName_Some_Uint256, %CName_Some_Uint256* %"$$resopt_59_1776", i32 0, i32 1 - %"$res_load_1778" = load %Uint256, %Uint256* %"$res_gep_1777", align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$test_60", metadata !379, metadata !DIExpression()), !dbg !380 + %"$gasrem_1767" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1768" = icmp ugt i64 2, %"$gasrem_1767" + br i1 %"$gascmp_1768", label %"$out_of_gas_1769", label %"$have_gas_1770" + +"$out_of_gas_1769": ; preds = %"$have_gas_1765" + call void @_out_of_gas() + br label %"$have_gas_1770" + +"$have_gas_1770": ; preds = %"$out_of_gas_1769", %"$have_gas_1765" + %"$consume_1771" = sub i64 %"$gasrem_1767", 2 + store i64 %"$consume_1771", i64* @_gasrem, align 8 + %"$$resopt_59_1773" = load %TName_Option_Uint256*, %TName_Option_Uint256** %"$resopt_59", align 8 + %"$$resopt_59_tag_1774" = getelementptr inbounds %TName_Option_Uint256, %TName_Option_Uint256* %"$$resopt_59_1773", i32 0, i32 0 + %"$$resopt_59_tag_1775" = load i8, i8* %"$$resopt_59_tag_1774", align 1 + switch i8 %"$$resopt_59_tag_1775", label %"$empty_default_1776" [ + i8 0, label %"$Some_1777" + i8 1, label %"$None_1825" + ], !dbg !381 + +"$Some_1777": ; preds = %"$have_gas_1770" + %"$$resopt_59_1778" = bitcast %TName_Option_Uint256* %"$$resopt_59_1773" to %CName_Some_Uint256* + %"$res_gep_1779" = getelementptr inbounds %CName_Some_Uint256, %CName_Some_Uint256* %"$$resopt_59_1778", i32 0, i32 1 + %"$res_load_1780" = load %Uint256, %Uint256* %"$res_gep_1779", align 8 %res28 = alloca %Uint256, align 8 - store %Uint256 %"$res_load_1778", %Uint256* %res28, align 8 - %"$gasrem_1779" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1780" = icmp ugt i64 1, %"$gasrem_1779" - br i1 %"$gascmp_1780", label %"$out_of_gas_1781", label %"$have_gas_1782" + store %Uint256 %"$res_load_1780", %Uint256* %res28, align 8 + %"$gasrem_1781" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1782" = icmp ugt i64 1, %"$gasrem_1781" + br i1 %"$gascmp_1782", label %"$out_of_gas_1783", label %"$have_gas_1784" -"$out_of_gas_1781": ; preds = %"$Some_1775" +"$out_of_gas_1783": ; preds = %"$Some_1777" call void @_out_of_gas() - br label %"$have_gas_1782" + br label %"$have_gas_1784" -"$have_gas_1782": ; preds = %"$out_of_gas_1781", %"$Some_1775" - %"$consume_1783" = sub i64 %"$gasrem_1779", 1 - store i64 %"$consume_1783", i64* @_gasrem, align 8 +"$have_gas_1784": ; preds = %"$out_of_gas_1783", %"$Some_1777" + %"$consume_1785" = sub i64 %"$gasrem_1781", 1 + store i64 %"$consume_1785", i64* @_gasrem, align 8 %input_29 = alloca %Uint256, align 8 - %"$gasrem_1784" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1785" = icmp ugt i64 1, %"$gasrem_1784" - br i1 %"$gascmp_1785", label %"$out_of_gas_1786", label %"$have_gas_1787" + call void @llvm.dbg.declare(metadata %Uint256* %input_29, metadata !382, metadata !DIExpression()), !dbg !385 + %"$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_1786": ; preds = %"$have_gas_1782" +"$out_of_gas_1788": ; preds = %"$have_gas_1784" call void @_out_of_gas() - br label %"$have_gas_1787" + br label %"$have_gas_1789" -"$have_gas_1787": ; preds = %"$out_of_gas_1786", %"$have_gas_1782" - %"$consume_1788" = sub i64 %"$gasrem_1784", 1 - store i64 %"$consume_1788", i64* @_gasrem, align 8 - store %Uint256 { i256 57896044618658097711785492504343953926634992332820282019728792003956564819967 }, %Uint256* %input_29, align 8, !dbg !191 - %"$gasrem_1789" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1790" = icmp ugt i64 1, %"$gasrem_1789" - br i1 %"$gascmp_1790", label %"$out_of_gas_1791", label %"$have_gas_1792" +"$have_gas_1789": ; preds = %"$out_of_gas_1788", %"$have_gas_1784" + %"$consume_1790" = sub i64 %"$gasrem_1786", 1 + store i64 %"$consume_1790", i64* @_gasrem, align 8 + store %Uint256 { i256 57896044618658097711785492504343953926634992332820282019728792003956564819967 }, %Uint256* %input_29, align 8, !dbg !386 + %"$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_1791": ; preds = %"$have_gas_1787" +"$out_of_gas_1793": ; preds = %"$have_gas_1789" call void @_out_of_gas() - br label %"$have_gas_1792" + br label %"$have_gas_1794" -"$have_gas_1792": ; preds = %"$out_of_gas_1791", %"$have_gas_1787" - %"$consume_1793" = sub i64 %"$gasrem_1789", 1 - store i64 %"$consume_1793", i64* @_gasrem, align 8 +"$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 %test_30 = alloca %TName_Bool*, align 8 - %"$gasrem_1795" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1796" = icmp ugt i64 16, %"$gasrem_1795" - br i1 %"$gascmp_1796", label %"$out_of_gas_1797", label %"$have_gas_1798" - -"$out_of_gas_1797": ; preds = %"$have_gas_1792" - call void @_out_of_gas() - br label %"$have_gas_1798" - -"$have_gas_1798": ; preds = %"$out_of_gas_1797", %"$have_gas_1792" - %"$consume_1799" = sub i64 %"$gasrem_1795", 16 - store i64 %"$consume_1799", i64* @_gasrem, align 8 - %"$execptr_load_1800" = load i8*, i8** @_execptr, align 8 - %"$eq_res_1801" = alloca %Uint256, align 8 - %"$res_1802" = load %Uint256, %Uint256* %res28, align 8 - store %Uint256 %"$res_1802", %Uint256* %"$eq_res_1801", align 8 - %"$eq_input__1803" = alloca %Uint256, align 8 - %"$input__1804" = load %Uint256, %Uint256* %input_29, align 8 - store %Uint256 %"$input__1804", %Uint256* %"$eq_input__1803", align 8 - %"$eq_call_1805" = call %TName_Bool* @_eq_Uint256(i8* %"$execptr_load_1800", %Uint256* %"$eq_res_1801", %Uint256* %"$eq_input__1803"), !dbg !194 - store %TName_Bool* %"$eq_call_1805", %TName_Bool** %test_30, align 8, !dbg !194 - %"$gasrem_1807" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1808" = icmp ugt i64 1, %"$gasrem_1807" - br i1 %"$gascmp_1808", label %"$out_of_gas_1809", label %"$have_gas_1810" - -"$out_of_gas_1809": ; preds = %"$have_gas_1798" - call void @_out_of_gas() - br label %"$have_gas_1810" - -"$have_gas_1810": ; preds = %"$out_of_gas_1809", %"$have_gas_1798" - %"$consume_1811" = sub i64 %"$gasrem_1807", 1 - store i64 %"$consume_1811", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %test_30, metadata !387, metadata !DIExpression()), !dbg !388 + %"$gasrem_1797" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1798" = icmp ugt i64 16, %"$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", 16 + store i64 %"$consume_1801", i64* @_gasrem, align 8 + %"$execptr_load_1802" = load i8*, i8** @_execptr, align 8 + %"$eq_res_1803" = alloca %Uint256, align 8 + %"$res_1804" = load %Uint256, %Uint256* %res28, align 8 + store %Uint256 %"$res_1804", %Uint256* %"$eq_res_1803", align 8 + %"$eq_input__1805" = alloca %Uint256, align 8 + %"$input__1806" = load %Uint256, %Uint256* %input_29, align 8 + store %Uint256 %"$input__1806", %Uint256* %"$eq_input__1805", align 8 + %"$eq_call_1807" = call %TName_Bool* @_eq_Uint256(i8* %"$execptr_load_1802", %Uint256* %"$eq_res_1803", %Uint256* %"$eq_input__1805"), !dbg !389 + store %TName_Bool* %"$eq_call_1807", %TName_Bool** %test_30, align 8, !dbg !389 + %"$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" + +"$out_of_gas_1811": ; preds = %"$have_gas_1800" + call void @_out_of_gas() + br label %"$have_gas_1812" + +"$have_gas_1812": ; preds = %"$out_of_gas_1811", %"$have_gas_1800" + %"$consume_1813" = sub i64 %"$gasrem_1809", 1 + store i64 %"$consume_1813", i64* @_gasrem, align 8 %"$BoolUtils.andb_104" = alloca { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, align 8 - %"$BoolUtils.andb_1812" = 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_1813" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_1812", 0 - %"$BoolUtils.andb_envptr_1814" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_1812", 1 - %"$$test_57_1815" = load %TName_Bool*, %TName_Bool** %"$test_57", align 8 - %"$BoolUtils.andb_call_1816" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_1813"(i8* %"$BoolUtils.andb_envptr_1814", %TName_Bool* %"$$test_57_1815"), !dbg !195 - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_1816", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_104", align 8, !dbg !195 + %"$BoolUtils.andb_1814" = 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_1815" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_1814", 0 + %"$BoolUtils.andb_envptr_1816" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_1814", 1 + %"$$test_57_1817" = load %TName_Bool*, %TName_Bool** %"$test_57", align 8 + %"$BoolUtils.andb_call_1818" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_1815"(i8* %"$BoolUtils.andb_envptr_1816", %TName_Bool* %"$$test_57_1817"), !dbg !390 + store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_1818", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_104", align 8, !dbg !390 %"$BoolUtils.andb_105" = alloca %TName_Bool*, align 8 - %"$$BoolUtils.andb_104_1817" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_104", align 8 - %"$$BoolUtils.andb_104_fptr_1818" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_104_1817", 0 - %"$$BoolUtils.andb_104_envptr_1819" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_104_1817", 1 - %"$test__1820" = load %TName_Bool*, %TName_Bool** %test_30, align 8 - %"$$BoolUtils.andb_104_call_1821" = call %TName_Bool* %"$$BoolUtils.andb_104_fptr_1818"(i8* %"$$BoolUtils.andb_104_envptr_1819", %TName_Bool* %"$test__1820"), !dbg !195 - store %TName_Bool* %"$$BoolUtils.andb_104_call_1821", %TName_Bool** %"$BoolUtils.andb_105", align 8, !dbg !195 - %"$$BoolUtils.andb_105_1822" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_105", align 8 - store %TName_Bool* %"$$BoolUtils.andb_105_1822", %TName_Bool** %"$test_60", align 8, !dbg !195 - br label %"$matchsucc_1770" - -"$None_1823": ; preds = %"$have_gas_1768" - %"$$resopt_59_1824" = bitcast %TName_Option_Uint256* %"$$resopt_59_1771" to %CName_None_Uint256* - %"$gasrem_1825" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1826" = icmp ugt i64 1, %"$gasrem_1825" - br i1 %"$gascmp_1826", label %"$out_of_gas_1827", label %"$have_gas_1828" - -"$out_of_gas_1827": ; preds = %"$None_1823" - call void @_out_of_gas() - br label %"$have_gas_1828" - -"$have_gas_1828": ; preds = %"$out_of_gas_1827", %"$None_1823" - %"$consume_1829" = sub i64 %"$gasrem_1825", 1 - store i64 %"$consume_1829", i64* @_gasrem, align 8 - %"$false_1830" = load %TName_Bool*, %TName_Bool** %false, align 8 - store %TName_Bool* %"$false_1830", %TName_Bool** %"$test_60", align 8, !dbg !196 - br label %"$matchsucc_1770" - -"$empty_default_1774": ; preds = %"$have_gas_1768" - br label %"$matchsucc_1770" - -"$matchsucc_1770": ; preds = %"$have_gas_1828", %"$have_gas_1810", %"$empty_default_1774" - %"$gasrem_1831" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1832" = icmp ugt i64 1, %"$gasrem_1831" - br i1 %"$gascmp_1832", label %"$out_of_gas_1833", label %"$have_gas_1834" - -"$out_of_gas_1833": ; preds = %"$matchsucc_1770" - call void @_out_of_gas() - br label %"$have_gas_1834" - -"$have_gas_1834": ; preds = %"$out_of_gas_1833", %"$matchsucc_1770" - %"$consume_1835" = sub i64 %"$gasrem_1831", 1 - store i64 %"$consume_1835", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$BoolUtils.andb_105", metadata !391, metadata !DIExpression()), !dbg !390 + %"$$BoolUtils.andb_104_1819" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_104", align 8 + %"$$BoolUtils.andb_104_fptr_1820" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_104_1819", 0 + %"$$BoolUtils.andb_104_envptr_1821" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_104_1819", 1 + %"$test__1822" = load %TName_Bool*, %TName_Bool** %test_30, align 8 + %"$$BoolUtils.andb_104_call_1823" = call %TName_Bool* %"$$BoolUtils.andb_104_fptr_1820"(i8* %"$$BoolUtils.andb_104_envptr_1821", %TName_Bool* %"$test__1822"), !dbg !390 + store %TName_Bool* %"$$BoolUtils.andb_104_call_1823", %TName_Bool** %"$BoolUtils.andb_105", align 8, !dbg !390 + %"$$BoolUtils.andb_105_1824" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_105", align 8 + store %TName_Bool* %"$$BoolUtils.andb_105_1824", %TName_Bool** %"$test_60", align 8, !dbg !390 + br label %"$matchsucc_1772" + +"$None_1825": ; preds = %"$have_gas_1770" + %"$$resopt_59_1826" = bitcast %TName_Option_Uint256* %"$$resopt_59_1773" to %CName_None_Uint256* + %"$gasrem_1827" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1828" = icmp ugt i64 1, %"$gasrem_1827" + br i1 %"$gascmp_1828", label %"$out_of_gas_1829", label %"$have_gas_1830" + +"$out_of_gas_1829": ; preds = %"$None_1825" + call void @_out_of_gas() + br label %"$have_gas_1830" + +"$have_gas_1830": ; preds = %"$out_of_gas_1829", %"$None_1825" + %"$consume_1831" = sub i64 %"$gasrem_1827", 1 + store i64 %"$consume_1831", i64* @_gasrem, align 8 + %"$false_1832" = load %TName_Bool*, %TName_Bool** %false, align 8 + store %TName_Bool* %"$false_1832", %TName_Bool** %"$test_60", align 8, !dbg !392 + br label %"$matchsucc_1772" + +"$empty_default_1776": ; preds = %"$have_gas_1770" + br label %"$matchsucc_1772" + +"$matchsucc_1772": ; preds = %"$have_gas_1830", %"$have_gas_1812", %"$empty_default_1776" + %"$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 = %"$matchsucc_1772" + call void @_out_of_gas() + br label %"$have_gas_1836" + +"$have_gas_1836": ; preds = %"$out_of_gas_1835", %"$matchsucc_1772" + %"$consume_1837" = sub i64 %"$gasrem_1833", 1 + store i64 %"$consume_1837", i64* @_gasrem, align 8 %"$input_61" = alloca %String, align 8 - %"$gasrem_1836" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1837" = icmp ugt i64 1, %"$gasrem_1836" - br i1 %"$gascmp_1837", label %"$out_of_gas_1838", label %"$have_gas_1839" + call void @llvm.dbg.declare(metadata %String* %"$input_61", metadata !394, metadata !DIExpression()), !dbg !395 + %"$gasrem_1838" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1839" = icmp ugt i64 1, %"$gasrem_1838" + br i1 %"$gascmp_1839", label %"$out_of_gas_1840", label %"$have_gas_1841" -"$out_of_gas_1838": ; preds = %"$have_gas_1834" +"$out_of_gas_1840": ; preds = %"$have_gas_1836" call void @_out_of_gas() - br label %"$have_gas_1839" + br label %"$have_gas_1841" -"$have_gas_1839": ; preds = %"$out_of_gas_1838", %"$have_gas_1834" - %"$consume_1840" = sub i64 %"$gasrem_1836", 1 - store i64 %"$consume_1840", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([77 x i8], [77 x i8]* @"$stringlit_1841", i32 0, i32 0), i32 77 }, %String* %"$input_61", align 8, !dbg !198 - %"$gasrem_1842" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1843" = icmp ugt i64 1, %"$gasrem_1842" - br i1 %"$gascmp_1843", label %"$out_of_gas_1844", label %"$have_gas_1845" +"$have_gas_1841": ; preds = %"$out_of_gas_1840", %"$have_gas_1836" + %"$consume_1842" = sub i64 %"$gasrem_1838", 1 + store i64 %"$consume_1842", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([77 x i8], [77 x i8]* @"$stringlit_1843", i32 0, i32 0), i32 77 }, %String* %"$input_61", align 8, !dbg !396 + %"$gasrem_1844" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1845" = icmp ugt i64 1, %"$gasrem_1844" + br i1 %"$gascmp_1845", label %"$out_of_gas_1846", label %"$have_gas_1847" -"$out_of_gas_1844": ; preds = %"$have_gas_1839" +"$out_of_gas_1846": ; preds = %"$have_gas_1841" call void @_out_of_gas() - br label %"$have_gas_1845" + br label %"$have_gas_1847" -"$have_gas_1845": ; preds = %"$out_of_gas_1844", %"$have_gas_1839" - %"$consume_1846" = sub i64 %"$gasrem_1842", 1 - store i64 %"$consume_1846", i64* @_gasrem, align 8 +"$have_gas_1847": ; preds = %"$out_of_gas_1846", %"$have_gas_1841" + %"$consume_1848" = sub i64 %"$gasrem_1844", 1 + store i64 %"$consume_1848", i64* @_gasrem, align 8 %"$resopt_62" = alloca %TName_Option_Uint256*, align 8 - %"$gasrem_1847" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1848" = icmp ugt i64 16, %"$gasrem_1847" - br i1 %"$gascmp_1848", label %"$out_of_gas_1849", label %"$have_gas_1850" - -"$out_of_gas_1849": ; preds = %"$have_gas_1845" - call void @_out_of_gas() - br label %"$have_gas_1850" - -"$have_gas_1850": ; preds = %"$out_of_gas_1849", %"$have_gas_1845" - %"$consume_1851" = sub i64 %"$gasrem_1847", 16 - store i64 %"$consume_1851", i64* @_gasrem, align 8 - %"$execptr_load_1852" = load i8*, i8** @_execptr, align 8 - %"$to_uint256_$input_61_1853" = alloca %String, align 8 - %"$$input_61_1854" = load %String, %String* %"$input_61", align 8 - store %String %"$$input_61_1854", %String* %"$to_uint256_$input_61_1853", align 8 - %"$$to_uint256_$input_61_1853_1855" = bitcast %String* %"$to_uint256_$input_61_1853" to i8* - %"$to_uint256_call_1856" = call i8* @_to_uint256(i8* %"$execptr_load_1852", %_TyDescrTy_Typ* @"$TyDescr_String_131", i8* %"$$to_uint256_$input_61_1853_1855"), !dbg !199 - %"$to_uint256_1857" = bitcast i8* %"$to_uint256_call_1856" to %TName_Option_Uint256* - store %TName_Option_Uint256* %"$to_uint256_1857", %TName_Option_Uint256** %"$resopt_62", align 8, !dbg !199 - %"$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 = %"$have_gas_1850" - call void @_out_of_gas() - br label %"$have_gas_1861" - -"$have_gas_1861": ; preds = %"$out_of_gas_1860", %"$have_gas_1850" - %"$consume_1862" = sub i64 %"$gasrem_1858", 1 - store i64 %"$consume_1862", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Option_Uint256** %"$resopt_62", metadata !397, metadata !DIExpression()), !dbg !398 + %"$gasrem_1849" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1850" = icmp ugt i64 16, %"$gasrem_1849" + br i1 %"$gascmp_1850", label %"$out_of_gas_1851", label %"$have_gas_1852" + +"$out_of_gas_1851": ; preds = %"$have_gas_1847" + call void @_out_of_gas() + br label %"$have_gas_1852" + +"$have_gas_1852": ; preds = %"$out_of_gas_1851", %"$have_gas_1847" + %"$consume_1853" = sub i64 %"$gasrem_1849", 16 + store i64 %"$consume_1853", i64* @_gasrem, align 8 + %"$execptr_load_1854" = load i8*, i8** @_execptr, align 8 + %"$to_uint256_$input_61_1855" = alloca %String, align 8 + %"$$input_61_1856" = load %String, %String* %"$input_61", align 8 + store %String %"$$input_61_1856", %String* %"$to_uint256_$input_61_1855", align 8 + %"$$to_uint256_$input_61_1855_1857" = bitcast %String* %"$to_uint256_$input_61_1855" to i8* + %"$to_uint256_call_1858" = call i8* @_to_uint256(i8* %"$execptr_load_1854", %_TyDescrTy_Typ* @"$TyDescr_String_131", i8* %"$$to_uint256_$input_61_1855_1857"), !dbg !399 + %"$to_uint256_1859" = bitcast i8* %"$to_uint256_call_1858" to %TName_Option_Uint256* + store %TName_Option_Uint256* %"$to_uint256_1859", %TName_Option_Uint256** %"$resopt_62", align 8, !dbg !399 + %"$gasrem_1860" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1861" = icmp ugt i64 1, %"$gasrem_1860" + br i1 %"$gascmp_1861", label %"$out_of_gas_1862", label %"$have_gas_1863" + +"$out_of_gas_1862": ; preds = %"$have_gas_1852" + call void @_out_of_gas() + br label %"$have_gas_1863" + +"$have_gas_1863": ; preds = %"$out_of_gas_1862", %"$have_gas_1852" + %"$consume_1864" = sub i64 %"$gasrem_1860", 1 + store i64 %"$consume_1864", i64* @_gasrem, align 8 %"$test_63" = alloca %TName_Bool*, align 8 - %"$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 - %"$$resopt_62_1869" = load %TName_Option_Uint256*, %TName_Option_Uint256** %"$resopt_62", align 8 - %"$$resopt_62_tag_1870" = getelementptr inbounds %TName_Option_Uint256, %TName_Option_Uint256* %"$$resopt_62_1869", i32 0, i32 0 - %"$$resopt_62_tag_1871" = load i8, i8* %"$$resopt_62_tag_1870", align 1 - switch i8 %"$$resopt_62_tag_1871", label %"$empty_default_1872" [ - i8 0, label %"$Some_1873" - i8 1, label %"$None_1921" - ], !dbg !200 - -"$Some_1873": ; preds = %"$have_gas_1866" - %"$$resopt_62_1874" = bitcast %TName_Option_Uint256* %"$$resopt_62_1869" to %CName_Some_Uint256* - %"$res_gep_1875" = getelementptr inbounds %CName_Some_Uint256, %CName_Some_Uint256* %"$$resopt_62_1874", i32 0, i32 1 - %"$res_load_1876" = load %Uint256, %Uint256* %"$res_gep_1875", align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$test_63", metadata !400, metadata !DIExpression()), !dbg !401 + %"$gasrem_1865" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1866" = icmp ugt i64 2, %"$gasrem_1865" + br i1 %"$gascmp_1866", label %"$out_of_gas_1867", label %"$have_gas_1868" + +"$out_of_gas_1867": ; preds = %"$have_gas_1863" + call void @_out_of_gas() + br label %"$have_gas_1868" + +"$have_gas_1868": ; preds = %"$out_of_gas_1867", %"$have_gas_1863" + %"$consume_1869" = sub i64 %"$gasrem_1865", 2 + store i64 %"$consume_1869", i64* @_gasrem, align 8 + %"$$resopt_62_1871" = load %TName_Option_Uint256*, %TName_Option_Uint256** %"$resopt_62", align 8 + %"$$resopt_62_tag_1872" = getelementptr inbounds %TName_Option_Uint256, %TName_Option_Uint256* %"$$resopt_62_1871", i32 0, i32 0 + %"$$resopt_62_tag_1873" = load i8, i8* %"$$resopt_62_tag_1872", align 1 + switch i8 %"$$resopt_62_tag_1873", label %"$empty_default_1874" [ + i8 0, label %"$Some_1875" + i8 1, label %"$None_1923" + ], !dbg !402 + +"$Some_1875": ; preds = %"$have_gas_1868" + %"$$resopt_62_1876" = bitcast %TName_Option_Uint256* %"$$resopt_62_1871" to %CName_Some_Uint256* + %"$res_gep_1877" = getelementptr inbounds %CName_Some_Uint256, %CName_Some_Uint256* %"$$resopt_62_1876", i32 0, i32 1 + %"$res_load_1878" = load %Uint256, %Uint256* %"$res_gep_1877", align 8 %res31 = alloca %Uint256, align 8 - store %Uint256 %"$res_load_1876", %Uint256* %res31, align 8 - %"$gasrem_1877" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1878" = icmp ugt i64 1, %"$gasrem_1877" - br i1 %"$gascmp_1878", label %"$out_of_gas_1879", label %"$have_gas_1880" + store %Uint256 %"$res_load_1878", %Uint256* %res31, align 8 + %"$gasrem_1879" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1880" = icmp ugt i64 1, %"$gasrem_1879" + br i1 %"$gascmp_1880", label %"$out_of_gas_1881", label %"$have_gas_1882" -"$out_of_gas_1879": ; preds = %"$Some_1873" +"$out_of_gas_1881": ; preds = %"$Some_1875" call void @_out_of_gas() - br label %"$have_gas_1880" + br label %"$have_gas_1882" -"$have_gas_1880": ; preds = %"$out_of_gas_1879", %"$Some_1873" - %"$consume_1881" = sub i64 %"$gasrem_1877", 1 - store i64 %"$consume_1881", i64* @_gasrem, align 8 +"$have_gas_1882": ; preds = %"$out_of_gas_1881", %"$Some_1875" + %"$consume_1883" = sub i64 %"$gasrem_1879", 1 + store i64 %"$consume_1883", i64* @_gasrem, align 8 %input_32 = alloca %Uint256, 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" + call void @llvm.dbg.declare(metadata %Uint256* %input_32, metadata !403, metadata !DIExpression()), !dbg !406 + %"$gasrem_1884" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1885" = icmp ugt i64 1, %"$gasrem_1884" + br i1 %"$gascmp_1885", label %"$out_of_gas_1886", label %"$have_gas_1887" -"$out_of_gas_1884": ; preds = %"$have_gas_1880" +"$out_of_gas_1886": ; preds = %"$have_gas_1882" call void @_out_of_gas() - br label %"$have_gas_1885" + br label %"$have_gas_1887" -"$have_gas_1885": ; preds = %"$out_of_gas_1884", %"$have_gas_1880" - %"$consume_1886" = sub i64 %"$gasrem_1882", 1 - store i64 %"$consume_1886", i64* @_gasrem, align 8 - store %Uint256 { i256 57896044618658097711785492504343953926634992332820282019728792003956564819967 }, %Uint256* %input_32, align 8, !dbg !201 - %"$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" +"$have_gas_1887": ; preds = %"$out_of_gas_1886", %"$have_gas_1882" + %"$consume_1888" = sub i64 %"$gasrem_1884", 1 + store i64 %"$consume_1888", i64* @_gasrem, align 8 + store %Uint256 { i256 57896044618658097711785492504343953926634992332820282019728792003956564819967 }, %Uint256* %input_32, align 8, !dbg !407 + %"$gasrem_1889" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1890" = icmp ugt i64 1, %"$gasrem_1889" + br i1 %"$gascmp_1890", label %"$out_of_gas_1891", label %"$have_gas_1892" -"$out_of_gas_1889": ; preds = %"$have_gas_1885" +"$out_of_gas_1891": ; preds = %"$have_gas_1887" call void @_out_of_gas() - br label %"$have_gas_1890" + br label %"$have_gas_1892" -"$have_gas_1890": ; preds = %"$out_of_gas_1889", %"$have_gas_1885" - %"$consume_1891" = sub i64 %"$gasrem_1887", 1 - store i64 %"$consume_1891", i64* @_gasrem, align 8 +"$have_gas_1892": ; preds = %"$out_of_gas_1891", %"$have_gas_1887" + %"$consume_1893" = sub i64 %"$gasrem_1889", 1 + store i64 %"$consume_1893", i64* @_gasrem, align 8 %test_33 = alloca %TName_Bool*, align 8 - %"$gasrem_1893" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1894" = icmp ugt i64 16, %"$gasrem_1893" - br i1 %"$gascmp_1894", label %"$out_of_gas_1895", label %"$have_gas_1896" - -"$out_of_gas_1895": ; preds = %"$have_gas_1890" - call void @_out_of_gas() - br label %"$have_gas_1896" - -"$have_gas_1896": ; preds = %"$out_of_gas_1895", %"$have_gas_1890" - %"$consume_1897" = sub i64 %"$gasrem_1893", 16 - store i64 %"$consume_1897", i64* @_gasrem, align 8 - %"$execptr_load_1898" = load i8*, i8** @_execptr, align 8 - %"$eq_res_1899" = alloca %Uint256, align 8 - %"$res_1900" = load %Uint256, %Uint256* %res31, align 8 - store %Uint256 %"$res_1900", %Uint256* %"$eq_res_1899", align 8 - %"$eq_input__1901" = alloca %Uint256, align 8 - %"$input__1902" = load %Uint256, %Uint256* %input_32, align 8 - store %Uint256 %"$input__1902", %Uint256* %"$eq_input__1901", align 8 - %"$eq_call_1903" = call %TName_Bool* @_eq_Uint256(i8* %"$execptr_load_1898", %Uint256* %"$eq_res_1899", %Uint256* %"$eq_input__1901"), !dbg !204 - store %TName_Bool* %"$eq_call_1903", %TName_Bool** %test_33, align 8, !dbg !204 - %"$gasrem_1905" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1906" = icmp ugt i64 1, %"$gasrem_1905" - br i1 %"$gascmp_1906", label %"$out_of_gas_1907", label %"$have_gas_1908" - -"$out_of_gas_1907": ; preds = %"$have_gas_1896" - call void @_out_of_gas() - br label %"$have_gas_1908" - -"$have_gas_1908": ; preds = %"$out_of_gas_1907", %"$have_gas_1896" - %"$consume_1909" = sub i64 %"$gasrem_1905", 1 - store i64 %"$consume_1909", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %test_33, metadata !408, metadata !DIExpression()), !dbg !409 + %"$gasrem_1895" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1896" = icmp ugt i64 16, %"$gasrem_1895" + br i1 %"$gascmp_1896", label %"$out_of_gas_1897", label %"$have_gas_1898" + +"$out_of_gas_1897": ; preds = %"$have_gas_1892" + call void @_out_of_gas() + br label %"$have_gas_1898" + +"$have_gas_1898": ; preds = %"$out_of_gas_1897", %"$have_gas_1892" + %"$consume_1899" = sub i64 %"$gasrem_1895", 16 + store i64 %"$consume_1899", i64* @_gasrem, align 8 + %"$execptr_load_1900" = load i8*, i8** @_execptr, align 8 + %"$eq_res_1901" = alloca %Uint256, align 8 + %"$res_1902" = load %Uint256, %Uint256* %res31, align 8 + store %Uint256 %"$res_1902", %Uint256* %"$eq_res_1901", align 8 + %"$eq_input__1903" = alloca %Uint256, align 8 + %"$input__1904" = load %Uint256, %Uint256* %input_32, align 8 + store %Uint256 %"$input__1904", %Uint256* %"$eq_input__1903", align 8 + %"$eq_call_1905" = call %TName_Bool* @_eq_Uint256(i8* %"$execptr_load_1900", %Uint256* %"$eq_res_1901", %Uint256* %"$eq_input__1903"), !dbg !410 + store %TName_Bool* %"$eq_call_1905", %TName_Bool** %test_33, align 8, !dbg !410 + %"$gasrem_1907" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1908" = icmp ugt i64 1, %"$gasrem_1907" + br i1 %"$gascmp_1908", label %"$out_of_gas_1909", label %"$have_gas_1910" + +"$out_of_gas_1909": ; preds = %"$have_gas_1898" + call void @_out_of_gas() + br label %"$have_gas_1910" + +"$have_gas_1910": ; preds = %"$out_of_gas_1909", %"$have_gas_1898" + %"$consume_1911" = sub i64 %"$gasrem_1907", 1 + store i64 %"$consume_1911", i64* @_gasrem, align 8 %"$BoolUtils.andb_106" = alloca { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, align 8 - %"$BoolUtils.andb_1910" = 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_1911" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_1910", 0 - %"$BoolUtils.andb_envptr_1912" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_1910", 1 - %"$$test_60_1913" = load %TName_Bool*, %TName_Bool** %"$test_60", align 8 - %"$BoolUtils.andb_call_1914" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_1911"(i8* %"$BoolUtils.andb_envptr_1912", %TName_Bool* %"$$test_60_1913"), !dbg !205 - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_1914", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_106", align 8, !dbg !205 + %"$BoolUtils.andb_1912" = 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_1913" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_1912", 0 + %"$BoolUtils.andb_envptr_1914" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_1912", 1 + %"$$test_60_1915" = load %TName_Bool*, %TName_Bool** %"$test_60", align 8 + %"$BoolUtils.andb_call_1916" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_1913"(i8* %"$BoolUtils.andb_envptr_1914", %TName_Bool* %"$$test_60_1915"), !dbg !411 + store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_1916", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_106", align 8, !dbg !411 %"$BoolUtils.andb_107" = alloca %TName_Bool*, align 8 - %"$$BoolUtils.andb_106_1915" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_106", align 8 - %"$$BoolUtils.andb_106_fptr_1916" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_106_1915", 0 - %"$$BoolUtils.andb_106_envptr_1917" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_106_1915", 1 - %"$test__1918" = load %TName_Bool*, %TName_Bool** %test_33, align 8 - %"$$BoolUtils.andb_106_call_1919" = call %TName_Bool* %"$$BoolUtils.andb_106_fptr_1916"(i8* %"$$BoolUtils.andb_106_envptr_1917", %TName_Bool* %"$test__1918"), !dbg !205 - store %TName_Bool* %"$$BoolUtils.andb_106_call_1919", %TName_Bool** %"$BoolUtils.andb_107", align 8, !dbg !205 - %"$$BoolUtils.andb_107_1920" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_107", align 8 - store %TName_Bool* %"$$BoolUtils.andb_107_1920", %TName_Bool** %"$test_63", align 8, !dbg !205 - br label %"$matchsucc_1868" - -"$None_1921": ; preds = %"$have_gas_1866" - %"$$resopt_62_1922" = bitcast %TName_Option_Uint256* %"$$resopt_62_1869" to %CName_None_Uint256* - %"$gasrem_1923" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1924" = icmp ugt i64 1, %"$gasrem_1923" - br i1 %"$gascmp_1924", label %"$out_of_gas_1925", label %"$have_gas_1926" - -"$out_of_gas_1925": ; preds = %"$None_1921" - call void @_out_of_gas() - br label %"$have_gas_1926" - -"$have_gas_1926": ; preds = %"$out_of_gas_1925", %"$None_1921" - %"$consume_1927" = sub i64 %"$gasrem_1923", 1 - store i64 %"$consume_1927", i64* @_gasrem, align 8 - %"$false_1928" = load %TName_Bool*, %TName_Bool** %false, align 8 - store %TName_Bool* %"$false_1928", %TName_Bool** %"$test_63", align 8, !dbg !206 - br label %"$matchsucc_1868" - -"$empty_default_1872": ; preds = %"$have_gas_1866" - br label %"$matchsucc_1868" - -"$matchsucc_1868": ; preds = %"$have_gas_1926", %"$have_gas_1908", %"$empty_default_1872" - %"$gasrem_1929" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1930" = icmp ugt i64 1, %"$gasrem_1929" - br i1 %"$gascmp_1930", label %"$out_of_gas_1931", label %"$have_gas_1932" - -"$out_of_gas_1931": ; preds = %"$matchsucc_1868" - call void @_out_of_gas() - br label %"$have_gas_1932" - -"$have_gas_1932": ; preds = %"$out_of_gas_1931", %"$matchsucc_1868" - %"$consume_1933" = sub i64 %"$gasrem_1929", 1 - store i64 %"$consume_1933", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$BoolUtils.andb_107", metadata !412, metadata !DIExpression()), !dbg !411 + %"$$BoolUtils.andb_106_1917" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_106", align 8 + %"$$BoolUtils.andb_106_fptr_1918" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_106_1917", 0 + %"$$BoolUtils.andb_106_envptr_1919" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_106_1917", 1 + %"$test__1920" = load %TName_Bool*, %TName_Bool** %test_33, align 8 + %"$$BoolUtils.andb_106_call_1921" = call %TName_Bool* %"$$BoolUtils.andb_106_fptr_1918"(i8* %"$$BoolUtils.andb_106_envptr_1919", %TName_Bool* %"$test__1920"), !dbg !411 + store %TName_Bool* %"$$BoolUtils.andb_106_call_1921", %TName_Bool** %"$BoolUtils.andb_107", align 8, !dbg !411 + %"$$BoolUtils.andb_107_1922" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_107", align 8 + store %TName_Bool* %"$$BoolUtils.andb_107_1922", %TName_Bool** %"$test_63", align 8, !dbg !411 + br label %"$matchsucc_1870" + +"$None_1923": ; preds = %"$have_gas_1868" + %"$$resopt_62_1924" = bitcast %TName_Option_Uint256* %"$$resopt_62_1871" to %CName_None_Uint256* + %"$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 = %"$None_1923" + call void @_out_of_gas() + br label %"$have_gas_1928" + +"$have_gas_1928": ; preds = %"$out_of_gas_1927", %"$None_1923" + %"$consume_1929" = sub i64 %"$gasrem_1925", 1 + store i64 %"$consume_1929", i64* @_gasrem, align 8 + %"$false_1930" = load %TName_Bool*, %TName_Bool** %false, align 8 + store %TName_Bool* %"$false_1930", %TName_Bool** %"$test_63", align 8, !dbg !413 + br label %"$matchsucc_1870" + +"$empty_default_1874": ; preds = %"$have_gas_1868" + br label %"$matchsucc_1870" + +"$matchsucc_1870": ; preds = %"$have_gas_1928", %"$have_gas_1910", %"$empty_default_1874" + %"$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 = %"$matchsucc_1870" + call void @_out_of_gas() + br label %"$have_gas_1934" + +"$have_gas_1934": ; preds = %"$out_of_gas_1933", %"$matchsucc_1870" + %"$consume_1935" = sub i64 %"$gasrem_1931", 1 + store i64 %"$consume_1935", i64* @_gasrem, align 8 %"$input_64" = alloca %Int256, align 8 - %"$gasrem_1934" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1935" = icmp ugt i64 1, %"$gasrem_1934" - br i1 %"$gascmp_1935", label %"$out_of_gas_1936", label %"$have_gas_1937" + call void @llvm.dbg.declare(metadata %Int256* %"$input_64", metadata !415, metadata !DIExpression()), !dbg !416 + %"$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_1936": ; preds = %"$have_gas_1932" +"$out_of_gas_1938": ; preds = %"$have_gas_1934" call void @_out_of_gas() - br label %"$have_gas_1937" + br label %"$have_gas_1939" -"$have_gas_1937": ; preds = %"$out_of_gas_1936", %"$have_gas_1932" - %"$consume_1938" = sub i64 %"$gasrem_1934", 1 - store i64 %"$consume_1938", i64* @_gasrem, align 8 - store %Int256 { i256 -282366920938463463374607431768211456 }, %Int256* %"$input_64", align 8, !dbg !208 - %"$gasrem_1939" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1940" = icmp ugt i64 1, %"$gasrem_1939" - br i1 %"$gascmp_1940", label %"$out_of_gas_1941", label %"$have_gas_1942" +"$have_gas_1939": ; preds = %"$out_of_gas_1938", %"$have_gas_1934" + %"$consume_1940" = sub i64 %"$gasrem_1936", 1 + store i64 %"$consume_1940", i64* @_gasrem, align 8 + store %Int256 { i256 -282366920938463463374607431768211456 }, %Int256* %"$input_64", align 8, !dbg !417 + %"$gasrem_1941" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1942" = icmp ugt i64 1, %"$gasrem_1941" + br i1 %"$gascmp_1942", label %"$out_of_gas_1943", label %"$have_gas_1944" -"$out_of_gas_1941": ; preds = %"$have_gas_1937" +"$out_of_gas_1943": ; preds = %"$have_gas_1939" call void @_out_of_gas() - br label %"$have_gas_1942" + br label %"$have_gas_1944" -"$have_gas_1942": ; preds = %"$out_of_gas_1941", %"$have_gas_1937" - %"$consume_1943" = sub i64 %"$gasrem_1939", 1 - store i64 %"$consume_1943", i64* @_gasrem, align 8 +"$have_gas_1944": ; preds = %"$out_of_gas_1943", %"$have_gas_1939" + %"$consume_1945" = sub i64 %"$gasrem_1941", 1 + store i64 %"$consume_1945", i64* @_gasrem, align 8 %"$resopt_65" = alloca %TName_Option_Uint256*, align 8 - %"$gasrem_1944" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1945" = icmp ugt i64 16, %"$gasrem_1944" - br i1 %"$gascmp_1945", label %"$out_of_gas_1946", label %"$have_gas_1947" - -"$out_of_gas_1946": ; preds = %"$have_gas_1942" - call void @_out_of_gas() - br label %"$have_gas_1947" - -"$have_gas_1947": ; preds = %"$out_of_gas_1946", %"$have_gas_1942" - %"$consume_1948" = sub i64 %"$gasrem_1944", 16 - store i64 %"$consume_1948", i64* @_gasrem, align 8 - %"$execptr_load_1949" = load i8*, i8** @_execptr, align 8 - %"$to_uint256_$input_64_1950" = alloca %Int256, align 8 - %"$$input_64_1951" = load %Int256, %Int256* %"$input_64", align 8 - store %Int256 %"$$input_64_1951", %Int256* %"$to_uint256_$input_64_1950", align 8 - %"$$to_uint256_$input_64_1950_1952" = bitcast %Int256* %"$to_uint256_$input_64_1950" to i8* - %"$to_uint256_call_1953" = call i8* @_to_uint256(i8* %"$execptr_load_1949", %_TyDescrTy_Typ* @"$TyDescr_Int256_127", i8* %"$$to_uint256_$input_64_1950_1952"), !dbg !209 - %"$to_uint256_1954" = bitcast i8* %"$to_uint256_call_1953" to %TName_Option_Uint256* - store %TName_Option_Uint256* %"$to_uint256_1954", %TName_Option_Uint256** %"$resopt_65", align 8, !dbg !209 - %"$gasrem_1955" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1956" = icmp ugt i64 1, %"$gasrem_1955" - br i1 %"$gascmp_1956", label %"$out_of_gas_1957", label %"$have_gas_1958" - -"$out_of_gas_1957": ; preds = %"$have_gas_1947" - call void @_out_of_gas() - br label %"$have_gas_1958" - -"$have_gas_1958": ; preds = %"$out_of_gas_1957", %"$have_gas_1947" - %"$consume_1959" = sub i64 %"$gasrem_1955", 1 - store i64 %"$consume_1959", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Option_Uint256** %"$resopt_65", metadata !418, metadata !DIExpression()), !dbg !419 + %"$gasrem_1946" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1947" = icmp ugt i64 16, %"$gasrem_1946" + br i1 %"$gascmp_1947", label %"$out_of_gas_1948", label %"$have_gas_1949" + +"$out_of_gas_1948": ; preds = %"$have_gas_1944" + call void @_out_of_gas() + br label %"$have_gas_1949" + +"$have_gas_1949": ; preds = %"$out_of_gas_1948", %"$have_gas_1944" + %"$consume_1950" = sub i64 %"$gasrem_1946", 16 + store i64 %"$consume_1950", i64* @_gasrem, align 8 + %"$execptr_load_1951" = load i8*, i8** @_execptr, align 8 + %"$to_uint256_$input_64_1952" = alloca %Int256, align 8 + %"$$input_64_1953" = load %Int256, %Int256* %"$input_64", align 8 + store %Int256 %"$$input_64_1953", %Int256* %"$to_uint256_$input_64_1952", align 8 + %"$$to_uint256_$input_64_1952_1954" = bitcast %Int256* %"$to_uint256_$input_64_1952" to i8* + %"$to_uint256_call_1955" = call i8* @_to_uint256(i8* %"$execptr_load_1951", %_TyDescrTy_Typ* @"$TyDescr_Int256_127", i8* %"$$to_uint256_$input_64_1952_1954"), !dbg !420 + %"$to_uint256_1956" = bitcast i8* %"$to_uint256_call_1955" to %TName_Option_Uint256* + store %TName_Option_Uint256* %"$to_uint256_1956", %TName_Option_Uint256** %"$resopt_65", align 8, !dbg !420 + %"$gasrem_1957" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1958" = icmp ugt i64 1, %"$gasrem_1957" + br i1 %"$gascmp_1958", label %"$out_of_gas_1959", label %"$have_gas_1960" + +"$out_of_gas_1959": ; preds = %"$have_gas_1949" + call void @_out_of_gas() + br label %"$have_gas_1960" + +"$have_gas_1960": ; preds = %"$out_of_gas_1959", %"$have_gas_1949" + %"$consume_1961" = sub i64 %"$gasrem_1957", 1 + store i64 %"$consume_1961", i64* @_gasrem, align 8 %"$test_66" = alloca %TName_Bool*, align 8 - %"$gasrem_1960" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1961" = icmp ugt i64 2, %"$gasrem_1960" - br i1 %"$gascmp_1961", label %"$out_of_gas_1962", label %"$have_gas_1963" - -"$out_of_gas_1962": ; preds = %"$have_gas_1958" - call void @_out_of_gas() - br label %"$have_gas_1963" - -"$have_gas_1963": ; preds = %"$out_of_gas_1962", %"$have_gas_1958" - %"$consume_1964" = sub i64 %"$gasrem_1960", 2 - store i64 %"$consume_1964", i64* @_gasrem, align 8 - %"$$resopt_65_1966" = load %TName_Option_Uint256*, %TName_Option_Uint256** %"$resopt_65", align 8 - %"$$resopt_65_tag_1967" = getelementptr inbounds %TName_Option_Uint256, %TName_Option_Uint256* %"$$resopt_65_1966", i32 0, i32 0 - %"$$resopt_65_tag_1968" = load i8, i8* %"$$resopt_65_tag_1967", align 1 - switch i8 %"$$resopt_65_tag_1968", label %"$empty_default_1969" [ - i8 0, label %"$Some_1970" - i8 1, label %"$None_1980" - ], !dbg !210 - -"$Some_1970": ; preds = %"$have_gas_1963" - %"$$resopt_65_1971" = bitcast %TName_Option_Uint256* %"$$resopt_65_1966" to %CName_Some_Uint256* - %"$$$resopt_65_81_gep_1972" = getelementptr inbounds %CName_Some_Uint256, %CName_Some_Uint256* %"$$resopt_65_1971", i32 0, i32 1 - %"$$$resopt_65_81_load_1973" = load %Uint256, %Uint256* %"$$$resopt_65_81_gep_1972", align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$test_66", metadata !421, metadata !DIExpression()), !dbg !422 + %"$gasrem_1962" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1963" = icmp ugt i64 2, %"$gasrem_1962" + br i1 %"$gascmp_1963", label %"$out_of_gas_1964", label %"$have_gas_1965" + +"$out_of_gas_1964": ; preds = %"$have_gas_1960" + call void @_out_of_gas() + br label %"$have_gas_1965" + +"$have_gas_1965": ; preds = %"$out_of_gas_1964", %"$have_gas_1960" + %"$consume_1966" = sub i64 %"$gasrem_1962", 2 + store i64 %"$consume_1966", i64* @_gasrem, align 8 + %"$$resopt_65_1968" = load %TName_Option_Uint256*, %TName_Option_Uint256** %"$resopt_65", align 8 + %"$$resopt_65_tag_1969" = getelementptr inbounds %TName_Option_Uint256, %TName_Option_Uint256* %"$$resopt_65_1968", i32 0, i32 0 + %"$$resopt_65_tag_1970" = load i8, i8* %"$$resopt_65_tag_1969", align 1 + switch i8 %"$$resopt_65_tag_1970", label %"$empty_default_1971" [ + i8 0, label %"$Some_1972" + i8 1, label %"$None_1982" + ], !dbg !423 + +"$Some_1972": ; preds = %"$have_gas_1965" + %"$$resopt_65_1973" = bitcast %TName_Option_Uint256* %"$$resopt_65_1968" to %CName_Some_Uint256* + %"$$$resopt_65_81_gep_1974" = getelementptr inbounds %CName_Some_Uint256, %CName_Some_Uint256* %"$$resopt_65_1973", i32 0, i32 1 + %"$$$resopt_65_81_load_1975" = load %Uint256, %Uint256* %"$$$resopt_65_81_gep_1974", align 8 %"$$resopt_65_81" = alloca %Uint256, align 8 - store %Uint256 %"$$$resopt_65_81_load_1973", %Uint256* %"$$resopt_65_81", align 8 - %"$gasrem_1974" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1975" = icmp ugt i64 1, %"$gasrem_1974" - br i1 %"$gascmp_1975", label %"$out_of_gas_1976", label %"$have_gas_1977" + store %Uint256 %"$$$resopt_65_81_load_1975", %Uint256* %"$$resopt_65_81", align 8 + %"$gasrem_1976" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1977" = icmp ugt i64 1, %"$gasrem_1976" + br i1 %"$gascmp_1977", label %"$out_of_gas_1978", label %"$have_gas_1979" -"$out_of_gas_1976": ; preds = %"$Some_1970" +"$out_of_gas_1978": ; preds = %"$Some_1972" call void @_out_of_gas() - br label %"$have_gas_1977" + br label %"$have_gas_1979" -"$have_gas_1977": ; preds = %"$out_of_gas_1976", %"$Some_1970" - %"$consume_1978" = sub i64 %"$gasrem_1974", 1 - store i64 %"$consume_1978", i64* @_gasrem, align 8 - %"$false_1979" = load %TName_Bool*, %TName_Bool** %false, align 8 - store %TName_Bool* %"$false_1979", %TName_Bool** %"$test_66", align 8, !dbg !211 - br label %"$matchsucc_1965" +"$have_gas_1979": ; preds = %"$out_of_gas_1978", %"$Some_1972" + %"$consume_1980" = sub i64 %"$gasrem_1976", 1 + store i64 %"$consume_1980", i64* @_gasrem, align 8 + %"$false_1981" = load %TName_Bool*, %TName_Bool** %false, align 8 + store %TName_Bool* %"$false_1981", %TName_Bool** %"$test_66", align 8, !dbg !424 + br label %"$matchsucc_1967" -"$None_1980": ; preds = %"$have_gas_1963" - %"$$resopt_65_1981" = bitcast %TName_Option_Uint256* %"$$resopt_65_1966" to %CName_None_Uint256* - %"$gasrem_1982" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1983" = icmp ugt i64 1, %"$gasrem_1982" - br i1 %"$gascmp_1983", label %"$out_of_gas_1984", label %"$have_gas_1985" +"$None_1982": ; preds = %"$have_gas_1965" + %"$$resopt_65_1983" = bitcast %TName_Option_Uint256* %"$$resopt_65_1968" to %CName_None_Uint256* + %"$gasrem_1984" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1985" = icmp ugt i64 1, %"$gasrem_1984" + br i1 %"$gascmp_1985", label %"$out_of_gas_1986", label %"$have_gas_1987" -"$out_of_gas_1984": ; preds = %"$None_1980" +"$out_of_gas_1986": ; preds = %"$None_1982" call void @_out_of_gas() - br label %"$have_gas_1985" + br label %"$have_gas_1987" -"$have_gas_1985": ; preds = %"$out_of_gas_1984", %"$None_1980" - %"$consume_1986" = sub i64 %"$gasrem_1982", 1 - store i64 %"$consume_1986", i64* @_gasrem, align 8 - %"$$test_63_1987" = load %TName_Bool*, %TName_Bool** %"$test_63", align 8 - store %TName_Bool* %"$$test_63_1987", %TName_Bool** %"$test_66", align 8, !dbg !214 - br label %"$matchsucc_1965" +"$have_gas_1987": ; preds = %"$out_of_gas_1986", %"$None_1982" + %"$consume_1988" = sub i64 %"$gasrem_1984", 1 + store i64 %"$consume_1988", i64* @_gasrem, align 8 + %"$$test_63_1989" = load %TName_Bool*, %TName_Bool** %"$test_63", align 8 + store %TName_Bool* %"$$test_63_1989", %TName_Bool** %"$test_66", align 8, !dbg !427 + br label %"$matchsucc_1967" -"$empty_default_1969": ; preds = %"$have_gas_1963" - br label %"$matchsucc_1965" +"$empty_default_1971": ; preds = %"$have_gas_1965" + br label %"$matchsucc_1967" -"$matchsucc_1965": ; preds = %"$have_gas_1985", %"$have_gas_1977", %"$empty_default_1969" - %"$gasrem_1988" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1989" = icmp ugt i64 1, %"$gasrem_1988" - br i1 %"$gascmp_1989", label %"$out_of_gas_1990", label %"$have_gas_1991" +"$matchsucc_1967": ; preds = %"$have_gas_1987", %"$have_gas_1979", %"$empty_default_1971" + %"$gasrem_1990" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1991" = icmp ugt i64 1, %"$gasrem_1990" + br i1 %"$gascmp_1991", label %"$out_of_gas_1992", label %"$have_gas_1993" -"$out_of_gas_1990": ; preds = %"$matchsucc_1965" +"$out_of_gas_1992": ; preds = %"$matchsucc_1967" call void @_out_of_gas() - br label %"$have_gas_1991" + br label %"$have_gas_1993" -"$have_gas_1991": ; preds = %"$out_of_gas_1990", %"$matchsucc_1965" - %"$consume_1992" = sub i64 %"$gasrem_1988", 1 - store i64 %"$consume_1992", i64* @_gasrem, align 8 +"$have_gas_1993": ; preds = %"$out_of_gas_1992", %"$matchsucc_1967" + %"$consume_1994" = sub i64 %"$gasrem_1990", 1 + store i64 %"$consume_1994", i64* @_gasrem, align 8 %"$input_67" = alloca %String, align 8 - %"$gasrem_1993" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1994" = icmp ugt i64 1, %"$gasrem_1993" - br i1 %"$gascmp_1994", label %"$out_of_gas_1995", label %"$have_gas_1996" + call void @llvm.dbg.declare(metadata %String* %"$input_67", metadata !429, metadata !DIExpression()), !dbg !430 + %"$gasrem_1995" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1996" = icmp ugt i64 1, %"$gasrem_1995" + br i1 %"$gascmp_1996", label %"$out_of_gas_1997", label %"$have_gas_1998" -"$out_of_gas_1995": ; preds = %"$have_gas_1991" +"$out_of_gas_1997": ; preds = %"$have_gas_1993" call void @_out_of_gas() - br label %"$have_gas_1996" + br label %"$have_gas_1998" -"$have_gas_1996": ; preds = %"$out_of_gas_1995", %"$have_gas_1991" - %"$consume_1997" = sub i64 %"$gasrem_1993", 1 - store i64 %"$consume_1997", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([37 x i8], [37 x i8]* @"$stringlit_1998", i32 0, i32 0), i32 37 }, %String* %"$input_67", align 8, !dbg !216 - %"$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" +"$have_gas_1998": ; preds = %"$out_of_gas_1997", %"$have_gas_1993" + %"$consume_1999" = sub i64 %"$gasrem_1995", 1 + store i64 %"$consume_1999", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([37 x i8], [37 x i8]* @"$stringlit_2000", i32 0, i32 0), i32 37 }, %String* %"$input_67", align 8, !dbg !431 + %"$gasrem_2001" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2002" = icmp ugt i64 1, %"$gasrem_2001" + br i1 %"$gascmp_2002", label %"$out_of_gas_2003", label %"$have_gas_2004" -"$out_of_gas_2001": ; preds = %"$have_gas_1996" +"$out_of_gas_2003": ; preds = %"$have_gas_1998" call void @_out_of_gas() - br label %"$have_gas_2002" + br label %"$have_gas_2004" -"$have_gas_2002": ; preds = %"$out_of_gas_2001", %"$have_gas_1996" - %"$consume_2003" = sub i64 %"$gasrem_1999", 1 - store i64 %"$consume_2003", i64* @_gasrem, align 8 +"$have_gas_2004": ; preds = %"$out_of_gas_2003", %"$have_gas_1998" + %"$consume_2005" = sub i64 %"$gasrem_2001", 1 + store i64 %"$consume_2005", i64* @_gasrem, align 8 %"$resopt_68" = alloca %TName_Option_Uint256*, align 8 - %"$gasrem_2004" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2005" = icmp ugt i64 16, %"$gasrem_2004" - br i1 %"$gascmp_2005", label %"$out_of_gas_2006", label %"$have_gas_2007" - -"$out_of_gas_2006": ; preds = %"$have_gas_2002" - call void @_out_of_gas() - br label %"$have_gas_2007" - -"$have_gas_2007": ; preds = %"$out_of_gas_2006", %"$have_gas_2002" - %"$consume_2008" = sub i64 %"$gasrem_2004", 16 - store i64 %"$consume_2008", i64* @_gasrem, align 8 - %"$execptr_load_2009" = load i8*, i8** @_execptr, align 8 - %"$to_uint256_$input_67_2010" = alloca %String, align 8 - %"$$input_67_2011" = load %String, %String* %"$input_67", align 8 - store %String %"$$input_67_2011", %String* %"$to_uint256_$input_67_2010", align 8 - %"$$to_uint256_$input_67_2010_2012" = bitcast %String* %"$to_uint256_$input_67_2010" to i8* - %"$to_uint256_call_2013" = call i8* @_to_uint256(i8* %"$execptr_load_2009", %_TyDescrTy_Typ* @"$TyDescr_String_131", i8* %"$$to_uint256_$input_67_2010_2012"), !dbg !217 - %"$to_uint256_2014" = bitcast i8* %"$to_uint256_call_2013" to %TName_Option_Uint256* - store %TName_Option_Uint256* %"$to_uint256_2014", %TName_Option_Uint256** %"$resopt_68", align 8, !dbg !217 - %"$gasrem_2015" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2016" = icmp ugt i64 1, %"$gasrem_2015" - br i1 %"$gascmp_2016", label %"$out_of_gas_2017", label %"$have_gas_2018" - -"$out_of_gas_2017": ; preds = %"$have_gas_2007" - call void @_out_of_gas() - br label %"$have_gas_2018" - -"$have_gas_2018": ; preds = %"$out_of_gas_2017", %"$have_gas_2007" - %"$consume_2019" = sub i64 %"$gasrem_2015", 1 - store i64 %"$consume_2019", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Option_Uint256** %"$resopt_68", metadata !432, metadata !DIExpression()), !dbg !433 + %"$gasrem_2006" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2007" = icmp ugt i64 16, %"$gasrem_2006" + br i1 %"$gascmp_2007", label %"$out_of_gas_2008", label %"$have_gas_2009" + +"$out_of_gas_2008": ; preds = %"$have_gas_2004" + call void @_out_of_gas() + br label %"$have_gas_2009" + +"$have_gas_2009": ; preds = %"$out_of_gas_2008", %"$have_gas_2004" + %"$consume_2010" = sub i64 %"$gasrem_2006", 16 + store i64 %"$consume_2010", i64* @_gasrem, align 8 + %"$execptr_load_2011" = load i8*, i8** @_execptr, align 8 + %"$to_uint256_$input_67_2012" = alloca %String, align 8 + %"$$input_67_2013" = load %String, %String* %"$input_67", align 8 + store %String %"$$input_67_2013", %String* %"$to_uint256_$input_67_2012", align 8 + %"$$to_uint256_$input_67_2012_2014" = bitcast %String* %"$to_uint256_$input_67_2012" to i8* + %"$to_uint256_call_2015" = call i8* @_to_uint256(i8* %"$execptr_load_2011", %_TyDescrTy_Typ* @"$TyDescr_String_131", i8* %"$$to_uint256_$input_67_2012_2014"), !dbg !434 + %"$to_uint256_2016" = bitcast i8* %"$to_uint256_call_2015" to %TName_Option_Uint256* + store %TName_Option_Uint256* %"$to_uint256_2016", %TName_Option_Uint256** %"$resopt_68", align 8, !dbg !434 + %"$gasrem_2017" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2018" = icmp ugt i64 1, %"$gasrem_2017" + br i1 %"$gascmp_2018", label %"$out_of_gas_2019", label %"$have_gas_2020" + +"$out_of_gas_2019": ; preds = %"$have_gas_2009" + call void @_out_of_gas() + br label %"$have_gas_2020" + +"$have_gas_2020": ; preds = %"$out_of_gas_2019", %"$have_gas_2009" + %"$consume_2021" = sub i64 %"$gasrem_2017", 1 + store i64 %"$consume_2021", i64* @_gasrem, align 8 %"$test_69" = alloca %TName_Bool*, align 8 - %"$gasrem_2020" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2021" = icmp ugt i64 2, %"$gasrem_2020" - br i1 %"$gascmp_2021", label %"$out_of_gas_2022", label %"$have_gas_2023" - -"$out_of_gas_2022": ; preds = %"$have_gas_2018" - call void @_out_of_gas() - br label %"$have_gas_2023" - -"$have_gas_2023": ; preds = %"$out_of_gas_2022", %"$have_gas_2018" - %"$consume_2024" = sub i64 %"$gasrem_2020", 2 - store i64 %"$consume_2024", i64* @_gasrem, align 8 - %"$$resopt_68_2026" = load %TName_Option_Uint256*, %TName_Option_Uint256** %"$resopt_68", align 8 - %"$$resopt_68_tag_2027" = getelementptr inbounds %TName_Option_Uint256, %TName_Option_Uint256* %"$$resopt_68_2026", i32 0, i32 0 - %"$$resopt_68_tag_2028" = load i8, i8* %"$$resopt_68_tag_2027", align 1 - switch i8 %"$$resopt_68_tag_2028", label %"$empty_default_2029" [ - i8 0, label %"$Some_2030" - i8 1, label %"$None_2040" - ], !dbg !218 - -"$Some_2030": ; preds = %"$have_gas_2023" - %"$$resopt_68_2031" = bitcast %TName_Option_Uint256* %"$$resopt_68_2026" to %CName_Some_Uint256* - %"$$$resopt_68_82_gep_2032" = getelementptr inbounds %CName_Some_Uint256, %CName_Some_Uint256* %"$$resopt_68_2031", i32 0, i32 1 - %"$$$resopt_68_82_load_2033" = load %Uint256, %Uint256* %"$$$resopt_68_82_gep_2032", align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$test_69", metadata !435, metadata !DIExpression()), !dbg !436 + %"$gasrem_2022" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2023" = icmp ugt i64 2, %"$gasrem_2022" + br i1 %"$gascmp_2023", label %"$out_of_gas_2024", label %"$have_gas_2025" + +"$out_of_gas_2024": ; preds = %"$have_gas_2020" + call void @_out_of_gas() + br label %"$have_gas_2025" + +"$have_gas_2025": ; preds = %"$out_of_gas_2024", %"$have_gas_2020" + %"$consume_2026" = sub i64 %"$gasrem_2022", 2 + store i64 %"$consume_2026", i64* @_gasrem, align 8 + %"$$resopt_68_2028" = load %TName_Option_Uint256*, %TName_Option_Uint256** %"$resopt_68", align 8 + %"$$resopt_68_tag_2029" = getelementptr inbounds %TName_Option_Uint256, %TName_Option_Uint256* %"$$resopt_68_2028", i32 0, i32 0 + %"$$resopt_68_tag_2030" = load i8, i8* %"$$resopt_68_tag_2029", align 1 + switch i8 %"$$resopt_68_tag_2030", label %"$empty_default_2031" [ + i8 0, label %"$Some_2032" + i8 1, label %"$None_2042" + ], !dbg !437 + +"$Some_2032": ; preds = %"$have_gas_2025" + %"$$resopt_68_2033" = bitcast %TName_Option_Uint256* %"$$resopt_68_2028" to %CName_Some_Uint256* + %"$$$resopt_68_82_gep_2034" = getelementptr inbounds %CName_Some_Uint256, %CName_Some_Uint256* %"$$resopt_68_2033", i32 0, i32 1 + %"$$$resopt_68_82_load_2035" = load %Uint256, %Uint256* %"$$$resopt_68_82_gep_2034", align 8 %"$$resopt_68_82" = alloca %Uint256, align 8 - store %Uint256 %"$$$resopt_68_82_load_2033", %Uint256* %"$$resopt_68_82", align 8 - %"$gasrem_2034" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2035" = icmp ugt i64 1, %"$gasrem_2034" - br i1 %"$gascmp_2035", label %"$out_of_gas_2036", label %"$have_gas_2037" + store %Uint256 %"$$$resopt_68_82_load_2035", %Uint256* %"$$resopt_68_82", 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" -"$out_of_gas_2036": ; preds = %"$Some_2030" +"$out_of_gas_2038": ; preds = %"$Some_2032" call void @_out_of_gas() - br label %"$have_gas_2037" + br label %"$have_gas_2039" -"$have_gas_2037": ; preds = %"$out_of_gas_2036", %"$Some_2030" - %"$consume_2038" = sub i64 %"$gasrem_2034", 1 - store i64 %"$consume_2038", i64* @_gasrem, align 8 - %"$false_2039" = load %TName_Bool*, %TName_Bool** %false, align 8 - store %TName_Bool* %"$false_2039", %TName_Bool** %"$test_69", align 8, !dbg !219 - br label %"$matchsucc_2025" +"$have_gas_2039": ; preds = %"$out_of_gas_2038", %"$Some_2032" + %"$consume_2040" = sub i64 %"$gasrem_2036", 1 + store i64 %"$consume_2040", i64* @_gasrem, align 8 + %"$false_2041" = load %TName_Bool*, %TName_Bool** %false, align 8 + store %TName_Bool* %"$false_2041", %TName_Bool** %"$test_69", align 8, !dbg !438 + br label %"$matchsucc_2027" -"$None_2040": ; preds = %"$have_gas_2023" - %"$$resopt_68_2041" = bitcast %TName_Option_Uint256* %"$$resopt_68_2026" to %CName_None_Uint256* - %"$gasrem_2042" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2043" = icmp ugt i64 1, %"$gasrem_2042" - br i1 %"$gascmp_2043", label %"$out_of_gas_2044", label %"$have_gas_2045" +"$None_2042": ; preds = %"$have_gas_2025" + %"$$resopt_68_2043" = bitcast %TName_Option_Uint256* %"$$resopt_68_2028" to %CName_None_Uint256* + %"$gasrem_2044" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2045" = icmp ugt i64 1, %"$gasrem_2044" + br i1 %"$gascmp_2045", label %"$out_of_gas_2046", label %"$have_gas_2047" -"$out_of_gas_2044": ; preds = %"$None_2040" +"$out_of_gas_2046": ; preds = %"$None_2042" call void @_out_of_gas() - br label %"$have_gas_2045" + br label %"$have_gas_2047" -"$have_gas_2045": ; preds = %"$out_of_gas_2044", %"$None_2040" - %"$consume_2046" = sub i64 %"$gasrem_2042", 1 - store i64 %"$consume_2046", i64* @_gasrem, align 8 - %"$$test_66_2047" = load %TName_Bool*, %TName_Bool** %"$test_66", align 8 - store %TName_Bool* %"$$test_66_2047", %TName_Bool** %"$test_69", align 8, !dbg !222 - br label %"$matchsucc_2025" +"$have_gas_2047": ; preds = %"$out_of_gas_2046", %"$None_2042" + %"$consume_2048" = sub i64 %"$gasrem_2044", 1 + store i64 %"$consume_2048", i64* @_gasrem, align 8 + %"$$test_66_2049" = load %TName_Bool*, %TName_Bool** %"$test_66", align 8 + store %TName_Bool* %"$$test_66_2049", %TName_Bool** %"$test_69", align 8, !dbg !441 + br label %"$matchsucc_2027" -"$empty_default_2029": ; preds = %"$have_gas_2023" - br label %"$matchsucc_2025" +"$empty_default_2031": ; preds = %"$have_gas_2025" + br label %"$matchsucc_2027" -"$matchsucc_2025": ; preds = %"$have_gas_2045", %"$have_gas_2037", %"$empty_default_2029" - %"$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" +"$matchsucc_2027": ; preds = %"$have_gas_2047", %"$have_gas_2039", %"$empty_default_2031" + %"$gasrem_2050" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2051" = icmp ugt i64 1, %"$gasrem_2050" + br i1 %"$gascmp_2051", label %"$out_of_gas_2052", label %"$have_gas_2053" -"$out_of_gas_2050": ; preds = %"$matchsucc_2025" +"$out_of_gas_2052": ; preds = %"$matchsucc_2027" call void @_out_of_gas() - br label %"$have_gas_2051" + br label %"$have_gas_2053" -"$have_gas_2051": ; preds = %"$out_of_gas_2050", %"$matchsucc_2025" - %"$consume_2052" = sub i64 %"$gasrem_2048", 1 - store i64 %"$consume_2052", i64* @_gasrem, align 8 +"$have_gas_2053": ; preds = %"$out_of_gas_2052", %"$matchsucc_2027" + %"$consume_2054" = sub i64 %"$gasrem_2050", 1 + store i64 %"$consume_2054", i64* @_gasrem, align 8 %"$input_70" = alloca %String, align 8 - %"$gasrem_2053" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2054" = icmp ugt i64 1, %"$gasrem_2053" - br i1 %"$gascmp_2054", label %"$out_of_gas_2055", label %"$have_gas_2056" + call void @llvm.dbg.declare(metadata %String* %"$input_70", metadata !443, metadata !DIExpression()), !dbg !444 + %"$gasrem_2055" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2056" = icmp ugt i64 1, %"$gasrem_2055" + br i1 %"$gascmp_2056", label %"$out_of_gas_2057", label %"$have_gas_2058" -"$out_of_gas_2055": ; preds = %"$have_gas_2051" +"$out_of_gas_2057": ; preds = %"$have_gas_2053" call void @_out_of_gas() - br label %"$have_gas_2056" + br label %"$have_gas_2058" -"$have_gas_2056": ; preds = %"$out_of_gas_2055", %"$have_gas_2051" - %"$consume_2057" = sub i64 %"$gasrem_2053", 1 - store i64 %"$consume_2057", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_2058", i32 0, i32 0), i32 4 }, %String* %"$input_70", align 8, !dbg !224 - %"$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" +"$have_gas_2058": ; preds = %"$out_of_gas_2057", %"$have_gas_2053" + %"$consume_2059" = sub i64 %"$gasrem_2055", 1 + store i64 %"$consume_2059", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_2060", i32 0, i32 0), i32 4 }, %String* %"$input_70", align 8, !dbg !445 + %"$gasrem_2061" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2062" = icmp ugt i64 1, %"$gasrem_2061" + br i1 %"$gascmp_2062", label %"$out_of_gas_2063", label %"$have_gas_2064" -"$out_of_gas_2061": ; preds = %"$have_gas_2056" +"$out_of_gas_2063": ; preds = %"$have_gas_2058" call void @_out_of_gas() - br label %"$have_gas_2062" + br label %"$have_gas_2064" -"$have_gas_2062": ; preds = %"$out_of_gas_2061", %"$have_gas_2056" - %"$consume_2063" = sub i64 %"$gasrem_2059", 1 - store i64 %"$consume_2063", i64* @_gasrem, align 8 +"$have_gas_2064": ; preds = %"$out_of_gas_2063", %"$have_gas_2058" + %"$consume_2065" = sub i64 %"$gasrem_2061", 1 + store i64 %"$consume_2065", i64* @_gasrem, align 8 %"$resopt_71" = alloca %TName_Option_Uint64*, align 8 - %"$gasrem_2064" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2065" = icmp ugt i64 4, %"$gasrem_2064" - br i1 %"$gascmp_2065", label %"$out_of_gas_2066", label %"$have_gas_2067" - -"$out_of_gas_2066": ; preds = %"$have_gas_2062" - call void @_out_of_gas() - br label %"$have_gas_2067" - -"$have_gas_2067": ; preds = %"$out_of_gas_2066", %"$have_gas_2062" - %"$consume_2068" = sub i64 %"$gasrem_2064", 4 - store i64 %"$consume_2068", i64* @_gasrem, align 8 - %"$execptr_load_2069" = load i8*, i8** @_execptr, align 8 - %"$to_uint64_$input_70_2070" = alloca %String, align 8 - %"$$input_70_2071" = load %String, %String* %"$input_70", align 8 - store %String %"$$input_70_2071", %String* %"$to_uint64_$input_70_2070", align 8 - %"$$to_uint64_$input_70_2070_2072" = bitcast %String* %"$to_uint64_$input_70_2070" to i8* - %"$to_uint64_call_2073" = call i8* @_to_uint64(i8* %"$execptr_load_2069", %_TyDescrTy_Typ* @"$TyDescr_String_131", i8* %"$$to_uint64_$input_70_2070_2072"), !dbg !225 - %"$to_uint64_2074" = bitcast i8* %"$to_uint64_call_2073" to %TName_Option_Uint64* - store %TName_Option_Uint64* %"$to_uint64_2074", %TName_Option_Uint64** %"$resopt_71", align 8, !dbg !225 - %"$gasrem_2075" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2076" = icmp ugt i64 1, %"$gasrem_2075" - br i1 %"$gascmp_2076", label %"$out_of_gas_2077", label %"$have_gas_2078" - -"$out_of_gas_2077": ; preds = %"$have_gas_2067" - call void @_out_of_gas() - br label %"$have_gas_2078" - -"$have_gas_2078": ; preds = %"$out_of_gas_2077", %"$have_gas_2067" - %"$consume_2079" = sub i64 %"$gasrem_2075", 1 - store i64 %"$consume_2079", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Option_Uint64** %"$resopt_71", metadata !446, metadata !DIExpression()), !dbg !447 + %"$gasrem_2066" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2067" = icmp ugt i64 4, %"$gasrem_2066" + br i1 %"$gascmp_2067", label %"$out_of_gas_2068", label %"$have_gas_2069" + +"$out_of_gas_2068": ; preds = %"$have_gas_2064" + call void @_out_of_gas() + br label %"$have_gas_2069" + +"$have_gas_2069": ; preds = %"$out_of_gas_2068", %"$have_gas_2064" + %"$consume_2070" = sub i64 %"$gasrem_2066", 4 + store i64 %"$consume_2070", i64* @_gasrem, align 8 + %"$execptr_load_2071" = load i8*, i8** @_execptr, align 8 + %"$to_uint64_$input_70_2072" = alloca %String, align 8 + %"$$input_70_2073" = load %String, %String* %"$input_70", align 8 + store %String %"$$input_70_2073", %String* %"$to_uint64_$input_70_2072", align 8 + %"$$to_uint64_$input_70_2072_2074" = bitcast %String* %"$to_uint64_$input_70_2072" to i8* + %"$to_uint64_call_2075" = call i8* @_to_uint64(i8* %"$execptr_load_2071", %_TyDescrTy_Typ* @"$TyDescr_String_131", i8* %"$$to_uint64_$input_70_2072_2074"), !dbg !448 + %"$to_uint64_2076" = bitcast i8* %"$to_uint64_call_2075" to %TName_Option_Uint64* + store %TName_Option_Uint64* %"$to_uint64_2076", %TName_Option_Uint64** %"$resopt_71", align 8, !dbg !448 + %"$gasrem_2077" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2078" = icmp ugt i64 1, %"$gasrem_2077" + br i1 %"$gascmp_2078", label %"$out_of_gas_2079", label %"$have_gas_2080" + +"$out_of_gas_2079": ; preds = %"$have_gas_2069" + call void @_out_of_gas() + br label %"$have_gas_2080" + +"$have_gas_2080": ; preds = %"$out_of_gas_2079", %"$have_gas_2069" + %"$consume_2081" = sub i64 %"$gasrem_2077", 1 + store i64 %"$consume_2081", i64* @_gasrem, align 8 %"$test_72" = alloca %TName_Bool*, 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_2078" - call void @_out_of_gas() - br label %"$have_gas_2083" - -"$have_gas_2083": ; preds = %"$out_of_gas_2082", %"$have_gas_2078" - %"$consume_2084" = sub i64 %"$gasrem_2080", 2 - store i64 %"$consume_2084", i64* @_gasrem, align 8 - %"$$resopt_71_2086" = load %TName_Option_Uint64*, %TName_Option_Uint64** %"$resopt_71", align 8 - %"$$resopt_71_tag_2087" = getelementptr inbounds %TName_Option_Uint64, %TName_Option_Uint64* %"$$resopt_71_2086", i32 0, i32 0 - %"$$resopt_71_tag_2088" = load i8, i8* %"$$resopt_71_tag_2087", align 1 - switch i8 %"$$resopt_71_tag_2088", label %"$empty_default_2089" [ - i8 0, label %"$Some_2090" - i8 1, label %"$None_2100" - ], !dbg !226 - -"$Some_2090": ; preds = %"$have_gas_2083" - %"$$resopt_71_2091" = bitcast %TName_Option_Uint64* %"$$resopt_71_2086" to %CName_Some_Uint64* - %"$$$resopt_71_83_gep_2092" = getelementptr inbounds %CName_Some_Uint64, %CName_Some_Uint64* %"$$resopt_71_2091", i32 0, i32 1 - %"$$$resopt_71_83_load_2093" = load %Uint64, %Uint64* %"$$$resopt_71_83_gep_2092", align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$test_72", metadata !449, metadata !DIExpression()), !dbg !450 + %"$gasrem_2082" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2083" = icmp ugt i64 2, %"$gasrem_2082" + br i1 %"$gascmp_2083", label %"$out_of_gas_2084", label %"$have_gas_2085" + +"$out_of_gas_2084": ; preds = %"$have_gas_2080" + call void @_out_of_gas() + br label %"$have_gas_2085" + +"$have_gas_2085": ; preds = %"$out_of_gas_2084", %"$have_gas_2080" + %"$consume_2086" = sub i64 %"$gasrem_2082", 2 + store i64 %"$consume_2086", i64* @_gasrem, align 8 + %"$$resopt_71_2088" = load %TName_Option_Uint64*, %TName_Option_Uint64** %"$resopt_71", align 8 + %"$$resopt_71_tag_2089" = getelementptr inbounds %TName_Option_Uint64, %TName_Option_Uint64* %"$$resopt_71_2088", i32 0, i32 0 + %"$$resopt_71_tag_2090" = load i8, i8* %"$$resopt_71_tag_2089", align 1 + switch i8 %"$$resopt_71_tag_2090", label %"$empty_default_2091" [ + i8 0, label %"$Some_2092" + i8 1, label %"$None_2102" + ], !dbg !451 + +"$Some_2092": ; preds = %"$have_gas_2085" + %"$$resopt_71_2093" = bitcast %TName_Option_Uint64* %"$$resopt_71_2088" to %CName_Some_Uint64* + %"$$$resopt_71_83_gep_2094" = getelementptr inbounds %CName_Some_Uint64, %CName_Some_Uint64* %"$$resopt_71_2093", i32 0, i32 1 + %"$$$resopt_71_83_load_2095" = load %Uint64, %Uint64* %"$$$resopt_71_83_gep_2094", align 8 %"$$resopt_71_83" = alloca %Uint64, align 8 - store %Uint64 %"$$$resopt_71_83_load_2093", %Uint64* %"$$resopt_71_83", align 8 - %"$gasrem_2094" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2095" = icmp ugt i64 1, %"$gasrem_2094" - br i1 %"$gascmp_2095", label %"$out_of_gas_2096", label %"$have_gas_2097" - -"$out_of_gas_2096": ; preds = %"$Some_2090" - call void @_out_of_gas() - br label %"$have_gas_2097" - -"$have_gas_2097": ; preds = %"$out_of_gas_2096", %"$Some_2090" - %"$consume_2098" = sub i64 %"$gasrem_2094", 1 - store i64 %"$consume_2098", i64* @_gasrem, align 8 - %"$false_2099" = load %TName_Bool*, %TName_Bool** %false, align 8 - store %TName_Bool* %"$false_2099", %TName_Bool** %"$test_72", align 8, !dbg !227 - br label %"$matchsucc_2085" - -"$None_2100": ; preds = %"$have_gas_2083" - %"$$resopt_71_2101" = bitcast %TName_Option_Uint64* %"$$resopt_71_2086" to %CName_None_Uint64* - %"$gasrem_2102" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2103" = icmp ugt i64 1, %"$gasrem_2102" - br i1 %"$gascmp_2103", label %"$out_of_gas_2104", label %"$have_gas_2105" - -"$out_of_gas_2104": ; preds = %"$None_2100" - call void @_out_of_gas() - br label %"$have_gas_2105" - -"$have_gas_2105": ; preds = %"$out_of_gas_2104", %"$None_2100" - %"$consume_2106" = sub i64 %"$gasrem_2102", 1 - store i64 %"$consume_2106", i64* @_gasrem, align 8 - %"$$test_69_2107" = load %TName_Bool*, %TName_Bool** %"$test_69", align 8 - store %TName_Bool* %"$$test_69_2107", %TName_Bool** %"$test_72", align 8, !dbg !230 - br label %"$matchsucc_2085" - -"$empty_default_2089": ; preds = %"$have_gas_2083" - br label %"$matchsucc_2085" - -"$matchsucc_2085": ; preds = %"$have_gas_2105", %"$have_gas_2097", %"$empty_default_2089" - %"$gasrem_2108" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2109" = icmp ugt i64 1, %"$gasrem_2108" - br i1 %"$gascmp_2109", label %"$out_of_gas_2110", label %"$have_gas_2111" - -"$out_of_gas_2110": ; preds = %"$matchsucc_2085" - call void @_out_of_gas() - br label %"$have_gas_2111" - -"$have_gas_2111": ; preds = %"$out_of_gas_2110", %"$matchsucc_2085" - %"$consume_2112" = sub i64 %"$gasrem_2108", 1 - store i64 %"$consume_2112", i64* @_gasrem, align 8 - %"$$test_72_2113" = load %TName_Bool*, %TName_Bool** %"$test_72", align 8 - store %TName_Bool* %"$$test_72_2113", %TName_Bool** %"$expr_112", align 8, !dbg !232 - %"$$expr_112_2114" = load %TName_Bool*, %TName_Bool** %"$expr_112", align 8 - ret %TName_Bool* %"$$expr_112_2114" + store %Uint64 %"$$$resopt_71_83_load_2095", %Uint64* %"$$resopt_71_83", align 8 + %"$gasrem_2096" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2097" = icmp ugt i64 1, %"$gasrem_2096" + br i1 %"$gascmp_2097", label %"$out_of_gas_2098", label %"$have_gas_2099" + +"$out_of_gas_2098": ; preds = %"$Some_2092" + call void @_out_of_gas() + br label %"$have_gas_2099" + +"$have_gas_2099": ; preds = %"$out_of_gas_2098", %"$Some_2092" + %"$consume_2100" = sub i64 %"$gasrem_2096", 1 + store i64 %"$consume_2100", i64* @_gasrem, align 8 + %"$false_2101" = load %TName_Bool*, %TName_Bool** %false, align 8 + store %TName_Bool* %"$false_2101", %TName_Bool** %"$test_72", align 8, !dbg !452 + br label %"$matchsucc_2087" + +"$None_2102": ; preds = %"$have_gas_2085" + %"$$resopt_71_2103" = bitcast %TName_Option_Uint64* %"$$resopt_71_2088" to %CName_None_Uint64* + %"$gasrem_2104" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2105" = icmp ugt i64 1, %"$gasrem_2104" + br i1 %"$gascmp_2105", label %"$out_of_gas_2106", label %"$have_gas_2107" + +"$out_of_gas_2106": ; preds = %"$None_2102" + call void @_out_of_gas() + br label %"$have_gas_2107" + +"$have_gas_2107": ; preds = %"$out_of_gas_2106", %"$None_2102" + %"$consume_2108" = sub i64 %"$gasrem_2104", 1 + store i64 %"$consume_2108", i64* @_gasrem, align 8 + %"$$test_69_2109" = load %TName_Bool*, %TName_Bool** %"$test_69", align 8 + store %TName_Bool* %"$$test_69_2109", %TName_Bool** %"$test_72", align 8, !dbg !455 + br label %"$matchsucc_2087" + +"$empty_default_2091": ; preds = %"$have_gas_2085" + br label %"$matchsucc_2087" + +"$matchsucc_2087": ; preds = %"$have_gas_2107", %"$have_gas_2099", %"$empty_default_2091" + %"$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" + +"$out_of_gas_2112": ; preds = %"$matchsucc_2087" + call void @_out_of_gas() + br label %"$have_gas_2113" + +"$have_gas_2113": ; preds = %"$out_of_gas_2112", %"$matchsucc_2087" + %"$consume_2114" = sub i64 %"$gasrem_2110", 1 + store i64 %"$consume_2114", i64* @_gasrem, align 8 + %"$$test_72_2115" = load %TName_Bool*, %TName_Bool** %"$test_72", align 8 + store %TName_Bool* %"$$test_72_2115", %TName_Bool** %"$expr_112", align 8, !dbg !457 + %"$$expr_112_2116" = load %TName_Bool*, %TName_Bool** %"$expr_112", align 8 + ret %TName_Bool* %"$$expr_112_2116" } declare i8* @_to_uint32(i8*, %_TyDescrTy_Typ*, i8*) @@ -4433,246 +4551,473 @@ declare void @_print_scilla_val(i8*, %_TyDescrTy_Typ*, i8*) define void @scilla_main() { entry: - %"$exprval_2115" = call %TName_Bool* @_scilla_expr_fun(i8* null) - %"$memvoidcast_2116" = bitcast %TName_Bool* %"$exprval_2115" to i8* - %"$execptr_load_2117" = load i8*, i8** @_execptr, align 8 - call void @_print_scilla_val(i8* %"$execptr_load_2117", %_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_151", i8* %"$memvoidcast_2116") + %"$exprval_2117" = call %TName_Bool* @_scilla_expr_fun(i8* null) + %"$memvoidcast_2118" = bitcast %TName_Bool* %"$exprval_2117" to i8* + %"$execptr_load_2119" = load i8*, i8** @_execptr, align 8 + call void @_print_scilla_val(i8* %"$execptr_load_2119", %_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_151", i8* %"$memvoidcast_2118") ret void } +attributes #0 = { nocallback nofree nosync nounwind readnone speculatable willreturn } + !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) +!1 = distinct !DICompileUnit(language: DW_LANG_C89, file: !2, producer: "Scilla Compiler", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false) !2 = !DIFile(filename: "builtin_to_uint.scilexp", directory: "codegen/expr") -!3 = !{} -!4 = distinct !DISubprogram(name: "$fundef_110", linkageName: "$fundef_110", scope: !5, file: !5, line: 8, type: !6, scopeLine: 8, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!5 = !DIFile(filename: "BoolUtils.scillib", directory: "../src/stdlib") -!6 = !DISubroutineType(types: !7) -!7 = !{!8} -!8 = !DIBasicType(tag: DW_TAG_unspecified_type, name: "void") -!9 = !DILocation(line: 8, column: 5, scope: !4) -!10 = !DILocation(line: 9, column: 16, scope: !11) -!11 = distinct !DILexicalBlock(scope: !12, file: !5, line: 9, column: 7) -!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_108", linkageName: "$fundef_108", 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: 0, scope: !17) -!20 = !DILocation(line: 7, column: 3, scope: !17) -!21 = distinct !DISubprogram(name: "_scilla_expr_fun", linkageName: "_scilla_expr_fun", scope: !2, file: !2, line: 1, type: !6, scopeLine: 1, spFlags: DISPFlagDefinition, unit: !1, retainedNodes: !3) -!22 = !DILocation(line: 1, column: 13, scope: !21) -!23 = !DILocation(line: 2, column: 12, scope: !21) -!24 = !DILocation(line: 4, column: 13, scope: !21) -!25 = !DILocation(line: 5, column: 14, scope: !21) -!26 = !DILocation(line: 7, column: 3, scope: !21) -!27 = !DILocation(line: 9, column: 18, scope: !28) -!28 = distinct !DILexicalBlock(scope: !29, file: !2, line: 8, column: 5) -!29 = distinct !DILexicalBlock(scope: !21, file: !2, line: 7, column: 3) -!30 = !DILocation(line: 10, column: 17, scope: !28) -!31 = !DILocation(line: 11, column: 5, scope: !28) -!32 = !DILocation(line: 12, column: 13, scope: !33) -!33 = distinct !DILexicalBlock(scope: !29, file: !2, line: 12, column: 5) -!34 = !DILocation(line: 16, column: 13, scope: !21) -!35 = !DILocation(line: 17, column: 14, scope: !21) -!36 = !DILocation(line: 19, column: 3, scope: !21) -!37 = !DILocation(line: 21, column: 18, scope: !38) -!38 = distinct !DILexicalBlock(scope: !39, file: !2, line: 20, column: 5) -!39 = distinct !DILexicalBlock(scope: !21, file: !2, line: 19, column: 3) -!40 = !DILocation(line: 22, column: 17, scope: !38) -!41 = !DILocation(line: 23, column: 5, scope: !38) -!42 = !DILocation(line: 24, column: 13, scope: !43) -!43 = distinct !DILexicalBlock(scope: !39, file: !2, line: 24, column: 5) -!44 = !DILocation(line: 28, column: 13, scope: !21) -!45 = !DILocation(line: 29, column: 14, scope: !21) -!46 = !DILocation(line: 31, column: 3, scope: !21) -!47 = !DILocation(line: 32, column: 15, scope: !48) -!48 = distinct !DILexicalBlock(scope: !49, file: !2, line: 32, column: 5) -!49 = distinct !DILexicalBlock(scope: !21, file: !2, line: 31, column: 3) -!50 = !DILocation(line: 33, column: 13, scope: !51) -!51 = distinct !DILexicalBlock(scope: !49, file: !2, line: 33, column: 5) -!52 = !DILocation(line: 37, column: 13, scope: !21) -!53 = !DILocation(line: 38, column: 14, scope: !21) -!54 = !DILocation(line: 40, column: 3, scope: !21) -!55 = !DILocation(line: 41, column: 15, scope: !56) -!56 = distinct !DILexicalBlock(scope: !57, file: !2, line: 41, column: 5) -!57 = distinct !DILexicalBlock(scope: !21, file: !2, line: 40, column: 3) -!58 = !DILocation(line: 42, column: 13, scope: !59) -!59 = distinct !DILexicalBlock(scope: !57, file: !2, line: 42, column: 5) -!60 = !DILocation(line: 46, column: 13, scope: !21) -!61 = !DILocation(line: 47, column: 14, scope: !21) -!62 = !DILocation(line: 49, column: 3, scope: !21) -!63 = !DILocation(line: 50, column: 15, scope: !64) -!64 = distinct !DILexicalBlock(scope: !65, file: !2, line: 50, column: 5) -!65 = distinct !DILexicalBlock(scope: !21, file: !2, line: 49, column: 3) -!66 = !DILocation(line: 51, column: 13, scope: !67) -!67 = distinct !DILexicalBlock(scope: !65, file: !2, line: 51, column: 5) -!68 = !DILocation(line: 55, column: 13, scope: !21) -!69 = !DILocation(line: 56, column: 14, scope: !21) -!70 = !DILocation(line: 58, column: 3, scope: !21) -!71 = !DILocation(line: 60, column: 18, scope: !72) -!72 = distinct !DILexicalBlock(scope: !73, file: !2, line: 59, column: 5) -!73 = distinct !DILexicalBlock(scope: !21, file: !2, line: 58, column: 3) -!74 = !DILocation(line: 61, column: 17, scope: !72) -!75 = !DILocation(line: 62, column: 5, scope: !72) -!76 = !DILocation(line: 63, column: 13, scope: !77) -!77 = distinct !DILexicalBlock(scope: !73, file: !2, line: 63, column: 5) -!78 = !DILocation(line: 67, column: 13, scope: !21) -!79 = !DILocation(line: 68, column: 14, scope: !21) -!80 = !DILocation(line: 70, column: 3, scope: !21) -!81 = !DILocation(line: 72, column: 18, scope: !82) -!82 = distinct !DILexicalBlock(scope: !83, file: !2, line: 71, column: 5) -!83 = distinct !DILexicalBlock(scope: !21, file: !2, line: 70, column: 3) -!84 = !DILocation(line: 73, column: 17, scope: !82) -!85 = !DILocation(line: 74, column: 5, scope: !82) -!86 = !DILocation(line: 75, column: 13, scope: !87) -!87 = distinct !DILexicalBlock(scope: !83, file: !2, line: 75, column: 5) -!88 = !DILocation(line: 79, column: 13, scope: !21) -!89 = !DILocation(line: 80, column: 14, scope: !21) -!90 = !DILocation(line: 82, column: 3, scope: !21) -!91 = !DILocation(line: 84, column: 18, scope: !92) -!92 = distinct !DILexicalBlock(scope: !93, file: !2, line: 83, column: 5) -!93 = distinct !DILexicalBlock(scope: !21, file: !2, line: 82, column: 3) -!94 = !DILocation(line: 85, column: 17, scope: !92) -!95 = !DILocation(line: 86, column: 5, scope: !92) -!96 = !DILocation(line: 87, column: 13, scope: !97) -!97 = distinct !DILexicalBlock(scope: !93, file: !2, line: 87, column: 5) -!98 = !DILocation(line: 91, column: 13, scope: !21) -!99 = !DILocation(line: 92, column: 14, scope: !21) -!100 = !DILocation(line: 94, column: 3, scope: !21) -!101 = !DILocation(line: 95, column: 15, scope: !102) -!102 = distinct !DILexicalBlock(scope: !103, file: !2, line: 95, column: 5) -!103 = distinct !DILexicalBlock(scope: !21, file: !2, line: 94, column: 3) -!104 = !DILocation(line: 96, column: 13, scope: !105) -!105 = distinct !DILexicalBlock(scope: !103, file: !2, line: 96, column: 5) -!106 = !DILocation(line: 100, column: 13, scope: !21) -!107 = !DILocation(line: 101, column: 14, scope: !21) -!108 = !DILocation(line: 103, column: 3, scope: !21) -!109 = !DILocation(line: 104, column: 15, scope: !110) -!110 = distinct !DILexicalBlock(scope: !111, file: !2, line: 104, column: 5) -!111 = distinct !DILexicalBlock(scope: !21, file: !2, line: 103, column: 3) -!112 = !DILocation(line: 105, column: 13, scope: !113) -!113 = distinct !DILexicalBlock(scope: !111, file: !2, line: 105, column: 5) -!114 = !DILocation(line: 109, column: 13, scope: !21) -!115 = !DILocation(line: 110, column: 14, scope: !21) -!116 = !DILocation(line: 112, column: 3, scope: !21) -!117 = !DILocation(line: 114, column: 18, scope: !118) -!118 = distinct !DILexicalBlock(scope: !119, file: !2, line: 113, column: 5) -!119 = distinct !DILexicalBlock(scope: !21, file: !2, line: 112, column: 3) -!120 = !DILocation(line: 115, column: 17, scope: !118) -!121 = !DILocation(line: 116, column: 5, scope: !118) -!122 = !DILocation(line: 117, column: 13, scope: !123) -!123 = distinct !DILexicalBlock(scope: !119, file: !2, line: 117, column: 5) -!124 = !DILocation(line: 121, column: 13, scope: !21) -!125 = !DILocation(line: 122, column: 14, scope: !21) -!126 = !DILocation(line: 124, column: 3, scope: !21) -!127 = !DILocation(line: 126, column: 18, scope: !128) -!128 = distinct !DILexicalBlock(scope: !129, file: !2, line: 125, column: 5) -!129 = distinct !DILexicalBlock(scope: !21, file: !2, line: 124, column: 3) -!130 = !DILocation(line: 127, column: 17, scope: !128) -!131 = !DILocation(line: 128, column: 5, scope: !128) -!132 = !DILocation(line: 129, column: 13, scope: !133) -!133 = distinct !DILexicalBlock(scope: !129, file: !2, line: 129, column: 5) -!134 = !DILocation(line: 133, column: 13, scope: !21) -!135 = !DILocation(line: 134, column: 14, scope: !21) -!136 = !DILocation(line: 136, column: 3, scope: !21) -!137 = !DILocation(line: 137, column: 15, scope: !138) -!138 = distinct !DILexicalBlock(scope: !139, file: !2, line: 137, column: 5) -!139 = distinct !DILexicalBlock(scope: !21, file: !2, line: 136, column: 3) -!140 = !DILocation(line: 138, column: 13, scope: !141) -!141 = distinct !DILexicalBlock(scope: !139, file: !2, line: 138, column: 5) -!142 = !DILocation(line: 142, column: 13, scope: !21) -!143 = !DILocation(line: 143, column: 14, scope: !21) -!144 = !DILocation(line: 145, column: 3, scope: !21) -!145 = !DILocation(line: 147, column: 18, scope: !146) -!146 = distinct !DILexicalBlock(scope: !147, file: !2, line: 146, column: 5) -!147 = distinct !DILexicalBlock(scope: !21, file: !2, line: 145, column: 3) -!148 = !DILocation(line: 148, column: 17, scope: !146) -!149 = !DILocation(line: 149, column: 5, scope: !146) -!150 = !DILocation(line: 150, column: 13, scope: !151) -!151 = distinct !DILexicalBlock(scope: !147, file: !2, line: 150, column: 5) -!152 = !DILocation(line: 154, column: 13, scope: !21) -!153 = !DILocation(line: 155, column: 14, scope: !21) -!154 = !DILocation(line: 157, column: 3, scope: !21) -!155 = !DILocation(line: 159, column: 18, scope: !156) -!156 = distinct !DILexicalBlock(scope: !157, file: !2, line: 158, column: 5) -!157 = distinct !DILexicalBlock(scope: !21, file: !2, line: 157, column: 3) -!158 = !DILocation(line: 160, column: 17, scope: !156) -!159 = !DILocation(line: 161, column: 5, scope: !156) -!160 = !DILocation(line: 162, column: 13, scope: !161) -!161 = distinct !DILexicalBlock(scope: !157, file: !2, line: 162, column: 5) -!162 = !DILocation(line: 166, column: 13, scope: !21) -!163 = !DILocation(line: 167, column: 14, scope: !21) -!164 = !DILocation(line: 169, column: 3, scope: !21) -!165 = !DILocation(line: 171, column: 18, scope: !166) -!166 = distinct !DILexicalBlock(scope: !167, file: !2, line: 170, column: 5) -!167 = distinct !DILexicalBlock(scope: !21, file: !2, line: 169, column: 3) -!168 = !DILocation(line: 172, column: 17, scope: !166) -!169 = !DILocation(line: 173, column: 5, scope: !166) -!170 = !DILocation(line: 174, column: 13, scope: !171) -!171 = distinct !DILexicalBlock(scope: !167, file: !2, line: 174, column: 5) -!172 = !DILocation(line: 178, column: 13, scope: !21) -!173 = !DILocation(line: 179, column: 14, scope: !21) -!174 = !DILocation(line: 181, column: 3, scope: !21) -!175 = !DILocation(line: 182, column: 15, scope: !176) -!176 = distinct !DILexicalBlock(scope: !177, file: !2, line: 182, column: 5) -!177 = distinct !DILexicalBlock(scope: !21, file: !2, line: 181, column: 3) -!178 = !DILocation(line: 183, column: 13, scope: !179) -!179 = distinct !DILexicalBlock(scope: !177, file: !2, line: 183, column: 5) -!180 = !DILocation(line: 187, column: 25, scope: !21) -!181 = !DILocation(line: 188, column: 14, scope: !21) -!182 = !DILocation(line: 190, column: 3, scope: !21) -!183 = !DILocation(line: 191, column: 15, scope: !184) -!184 = distinct !DILexicalBlock(scope: !185, file: !2, line: 191, column: 5) -!185 = distinct !DILexicalBlock(scope: !21, file: !2, line: 190, column: 3) -!186 = !DILocation(line: 192, column: 13, scope: !187) -!187 = distinct !DILexicalBlock(scope: !185, file: !2, line: 192, column: 5) -!188 = !DILocation(line: 196, column: 13, scope: !21) -!189 = !DILocation(line: 197, column: 14, scope: !21) -!190 = !DILocation(line: 199, column: 3, scope: !21) -!191 = !DILocation(line: 201, column: 18, scope: !192) -!192 = distinct !DILexicalBlock(scope: !193, file: !2, line: 200, column: 5) -!193 = distinct !DILexicalBlock(scope: !21, file: !2, line: 199, column: 3) -!194 = !DILocation(line: 202, column: 17, scope: !192) -!195 = !DILocation(line: 203, column: 5, scope: !192) -!196 = !DILocation(line: 204, column: 13, scope: !197) -!197 = distinct !DILexicalBlock(scope: !193, file: !2, line: 204, column: 5) -!198 = !DILocation(line: 208, column: 91, scope: !21) -!199 = !DILocation(line: 209, column: 14, scope: !21) -!200 = !DILocation(line: 211, column: 3, scope: !21) -!201 = !DILocation(line: 213, column: 18, scope: !202) -!202 = distinct !DILexicalBlock(scope: !203, file: !2, line: 212, column: 5) -!203 = distinct !DILexicalBlock(scope: !21, file: !2, line: 211, column: 3) -!204 = !DILocation(line: 214, column: 17, scope: !202) -!205 = !DILocation(line: 215, column: 5, scope: !202) -!206 = !DILocation(line: 216, column: 13, scope: !207) -!207 = distinct !DILexicalBlock(scope: !203, file: !2, line: 216, column: 5) -!208 = !DILocation(line: 220, column: 13, scope: !21) -!209 = !DILocation(line: 221, column: 14, scope: !21) -!210 = !DILocation(line: 223, column: 3, scope: !21) -!211 = !DILocation(line: 224, column: 15, scope: !212) -!212 = distinct !DILexicalBlock(scope: !213, file: !2, line: 224, column: 5) -!213 = distinct !DILexicalBlock(scope: !21, file: !2, line: 223, column: 3) -!214 = !DILocation(line: 225, column: 13, scope: !215) -!215 = distinct !DILexicalBlock(scope: !213, file: !2, line: 225, column: 5) -!216 = !DILocation(line: 229, column: 51, scope: !21) -!217 = !DILocation(line: 230, column: 14, scope: !21) -!218 = !DILocation(line: 232, column: 3, scope: !21) -!219 = !DILocation(line: 233, column: 15, scope: !220) -!220 = distinct !DILexicalBlock(scope: !221, file: !2, line: 233, column: 5) -!221 = distinct !DILexicalBlock(scope: !21, file: !2, line: 232, column: 3) -!222 = !DILocation(line: 234, column: 13, scope: !223) -!223 = distinct !DILexicalBlock(scope: !221, file: !2, line: 234, column: 5) -!224 = !DILocation(line: 238, column: 18, scope: !21) -!225 = !DILocation(line: 239, column: 14, scope: !21) -!226 = !DILocation(line: 241, column: 3, scope: !21) -!227 = !DILocation(line: 242, column: 15, scope: !228) -!228 = distinct !DILexicalBlock(scope: !229, file: !2, line: 242, column: 5) -!229 = distinct !DILexicalBlock(scope: !21, file: !2, line: 241, column: 3) -!230 = !DILocation(line: 243, column: 13, scope: !231) -!231 = distinct !DILexicalBlock(scope: !229, file: !2, line: 243, column: 5) -!232 = !DILocation(line: 247, column: 1, scope: !21) +!3 = distinct !DISubprogram(name: "$fundef_110", linkageName: "$fundef_110", scope: !4, file: !4, line: 8, type: !5, scopeLine: 8, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!4 = !DIFile(filename: "BoolUtils.scillib", directory: "../src/stdlib") +!5 = !DISubroutineType(types: !6) +!6 = !{!7} +!7 = !DIBasicType(tag: DW_TAG_unspecified_type, name: "void") +!8 = !{} +!9 = !DILocalVariable(name: "c", scope: !3, file: !4, line: 7, type: !10) +!10 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "Bool", baseType: !11, size: 8, align: 8, dwarfAddressSpace: 0) +!11 = !DIBasicType(name: "Bool", size: 8) +!12 = !DILocation(line: 7, column: 8, scope: !3) +!13 = !DILocalVariable(name: "$retval_111", scope: !3, file: !4, line: 8, type: !10) +!14 = !DILocation(line: 8, column: 5, scope: !3) +!15 = !DILocation(line: 9, column: 16, scope: !16) +!16 = distinct !DILexicalBlock(scope: !17, file: !4, line: 9, column: 7) +!17 = distinct !DILexicalBlock(scope: !3, file: !4, line: 8, column: 5) +!18 = !DILocation(line: 10, column: 16, scope: !19) +!19 = distinct !DILexicalBlock(scope: !17, file: !4, line: 10, column: 7) +!20 = distinct !DISubprogram(name: "$fundef_108", linkageName: "$fundef_108", scope: !4, file: !4, line: 7, type: !5, scopeLine: 7, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!21 = !DILocalVariable(name: "b", scope: !20, file: !4, line: 6, type: !10) +!22 = !DILocation(line: 6, column: 8, scope: !20) +!23 = !DILocation(line: 8, column: 5, scope: !20) +!24 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !25, file: !25, type: !5, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!25 = !DIFile(filename: ".", directory: ".") +!26 = !DILocation(line: 0, scope: !24) +!27 = !DILocation(line: 7, column: 3, scope: !24) +!28 = distinct !DISubprogram(name: "_scilla_expr_fun", linkageName: "_scilla_expr_fun", scope: !2, file: !2, line: 1, type: !5, scopeLine: 1, spFlags: DISPFlagDefinition, unit: !1, retainedNodes: !8) +!29 = !DILocalVariable(name: "$expr_112", scope: !28, file: !2, line: 1, type: !10) +!30 = !DILocation(line: 1, column: 13, scope: !28) +!31 = !DILocalVariable(name: "false", scope: !28, file: !2, line: 1, type: !10) +!32 = !DILocation(line: 1, column: 5, scope: !28) +!33 = !DILocalVariable(name: "test", scope: !28, file: !2, line: 2, type: !10) +!34 = !DILocation(line: 2, column: 5, scope: !28) +!35 = !DILocation(line: 2, column: 12, scope: !28) +!36 = !DILocalVariable(name: "input", scope: !28, file: !2, line: 4, type: !37) +!37 = !DIBasicType(name: "Uint32", size: 4) +!38 = !DILocation(line: 4, column: 5, scope: !28) +!39 = !DILocation(line: 4, column: 13, scope: !28) +!40 = !DILocalVariable(name: "resopt", scope: !28, file: !2, line: 5, type: !41) +!41 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "Option (Uint32)", baseType: !42, size: 8, align: 8, dwarfAddressSpace: 0) +!42 = !DIBasicType(name: "Option (Uint32)", size: 8) +!43 = !DILocation(line: 5, column: 5, scope: !28) +!44 = !DILocation(line: 5, column: 14, scope: !28) +!45 = !DILocalVariable(name: "$test_6", scope: !28, file: !2, line: 6, type: !10) +!46 = !DILocation(line: 6, column: 5, scope: !28) +!47 = !DILocation(line: 7, column: 3, scope: !28) +!48 = !DILocalVariable(name: "input_", scope: !49, file: !2, line: 9, type: !37) +!49 = distinct !DILexicalBlock(scope: !50, file: !2, line: 8, column: 5) +!50 = distinct !DILexicalBlock(scope: !28, file: !2, line: 7, column: 3) +!51 = !DILocation(line: 9, column: 9, scope: !49) +!52 = !DILocation(line: 9, column: 18, scope: !49) +!53 = !DILocalVariable(name: "test_", scope: !49, file: !2, line: 10, type: !10) +!54 = !DILocation(line: 10, column: 9, scope: !49) +!55 = !DILocation(line: 10, column: 17, scope: !49) +!56 = !DILocation(line: 11, column: 5, scope: !49) +!57 = !DILocalVariable(name: "$BoolUtils.andb_85", scope: !49, file: !2, line: 11, type: !10) +!58 = !DILocation(line: 12, column: 13, scope: !59) +!59 = distinct !DILexicalBlock(scope: !50, file: !2, line: 12, column: 5) +!60 = !DILocalVariable(name: "$input_7", scope: !28, file: !2, line: 16, type: !61) +!61 = !DIBasicType(name: "Uint128", size: 16) +!62 = !DILocation(line: 16, column: 5, scope: !28) +!63 = !DILocation(line: 16, column: 13, scope: !28) +!64 = !DILocalVariable(name: "$resopt_8", scope: !28, file: !2, line: 17, type: !41) +!65 = !DILocation(line: 17, column: 5, scope: !28) +!66 = !DILocation(line: 17, column: 14, scope: !28) +!67 = !DILocalVariable(name: "$test_9", scope: !28, file: !2, line: 18, type: !10) +!68 = !DILocation(line: 18, column: 5, scope: !28) +!69 = !DILocation(line: 19, column: 3, scope: !28) +!70 = !DILocalVariable(name: "input_", scope: !71, file: !2, line: 21, type: !37) +!71 = distinct !DILexicalBlock(scope: !72, file: !2, line: 20, column: 5) +!72 = distinct !DILexicalBlock(scope: !28, file: !2, line: 19, column: 3) +!73 = !DILocation(line: 21, column: 9, scope: !71) +!74 = !DILocation(line: 21, column: 18, scope: !71) +!75 = !DILocalVariable(name: "test_", scope: !71, file: !2, line: 22, type: !10) +!76 = !DILocation(line: 22, column: 9, scope: !71) +!77 = !DILocation(line: 22, column: 17, scope: !71) +!78 = !DILocation(line: 23, column: 5, scope: !71) +!79 = !DILocalVariable(name: "$BoolUtils.andb_87", scope: !71, file: !2, line: 23, type: !10) +!80 = !DILocation(line: 24, column: 13, scope: !81) +!81 = distinct !DILexicalBlock(scope: !72, file: !2, line: 24, column: 5) +!82 = !DILocalVariable(name: "$input_10", scope: !28, file: !2, line: 28, type: !83) +!83 = !DIBasicType(name: "Uint64", size: 8) +!84 = !DILocation(line: 28, column: 5, scope: !28) +!85 = !DILocation(line: 28, column: 13, scope: !28) +!86 = !DILocalVariable(name: "$resopt_11", scope: !28, file: !2, line: 29, type: !41) +!87 = !DILocation(line: 29, column: 5, scope: !28) +!88 = !DILocation(line: 29, column: 14, scope: !28) +!89 = !DILocalVariable(name: "$test_12", scope: !28, file: !2, line: 30, type: !10) +!90 = !DILocation(line: 30, column: 5, scope: !28) +!91 = !DILocation(line: 31, column: 3, scope: !28) +!92 = !DILocation(line: 32, column: 15, scope: !93) +!93 = distinct !DILexicalBlock(scope: !94, file: !2, line: 32, column: 5) +!94 = distinct !DILexicalBlock(scope: !28, file: !2, line: 31, column: 3) +!95 = !DILocation(line: 33, column: 13, scope: !96) +!96 = distinct !DILexicalBlock(scope: !94, file: !2, line: 33, column: 5) +!97 = !DILocalVariable(name: "$input_13", scope: !28, file: !2, line: 37, type: !61) +!98 = !DILocation(line: 37, column: 5, scope: !28) +!99 = !DILocation(line: 37, column: 13, scope: !28) +!100 = !DILocalVariable(name: "$resopt_14", scope: !28, file: !2, line: 38, type: !41) +!101 = !DILocation(line: 38, column: 5, scope: !28) +!102 = !DILocation(line: 38, column: 14, scope: !28) +!103 = !DILocalVariable(name: "$test_15", scope: !28, file: !2, line: 39, type: !10) +!104 = !DILocation(line: 39, column: 5, scope: !28) +!105 = !DILocation(line: 40, column: 3, scope: !28) +!106 = !DILocation(line: 41, column: 15, scope: !107) +!107 = distinct !DILexicalBlock(scope: !108, file: !2, line: 41, column: 5) +!108 = distinct !DILexicalBlock(scope: !28, file: !2, line: 40, column: 3) +!109 = !DILocation(line: 42, column: 13, scope: !110) +!110 = distinct !DILexicalBlock(scope: !108, file: !2, line: 42, column: 5) +!111 = !DILocalVariable(name: "$input_16", scope: !28, file: !2, line: 46, type: !112) +!112 = !DIBasicType(name: "Uint256", size: 32) +!113 = !DILocation(line: 46, column: 5, scope: !28) +!114 = !DILocation(line: 46, column: 13, scope: !28) +!115 = !DILocalVariable(name: "$resopt_17", scope: !28, file: !2, line: 47, type: !41) +!116 = !DILocation(line: 47, column: 5, scope: !28) +!117 = !DILocation(line: 47, column: 14, scope: !28) +!118 = !DILocalVariable(name: "$test_18", scope: !28, file: !2, line: 48, type: !10) +!119 = !DILocation(line: 48, column: 5, scope: !28) +!120 = !DILocation(line: 49, column: 3, scope: !28) +!121 = !DILocation(line: 50, column: 15, scope: !122) +!122 = distinct !DILexicalBlock(scope: !123, file: !2, line: 50, column: 5) +!123 = distinct !DILexicalBlock(scope: !28, file: !2, line: 49, column: 3) +!124 = !DILocation(line: 51, column: 13, scope: !125) +!125 = distinct !DILexicalBlock(scope: !123, file: !2, line: 51, column: 5) +!126 = !DILocalVariable(name: "$input_19", scope: !28, file: !2, line: 55, type: !37) +!127 = !DILocation(line: 55, column: 5, scope: !28) +!128 = !DILocation(line: 55, column: 13, scope: !28) +!129 = !DILocalVariable(name: "$resopt_20", scope: !28, file: !2, line: 56, type: !130) +!130 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "Option (Uint64)", baseType: !131, size: 8, align: 8, dwarfAddressSpace: 0) +!131 = !DIBasicType(name: "Option (Uint64)", size: 8) +!132 = !DILocation(line: 56, column: 5, scope: !28) +!133 = !DILocation(line: 56, column: 14, scope: !28) +!134 = !DILocalVariable(name: "$test_21", scope: !28, file: !2, line: 57, type: !10) +!135 = !DILocation(line: 57, column: 5, scope: !28) +!136 = !DILocation(line: 58, column: 3, scope: !28) +!137 = !DILocalVariable(name: "input_", scope: !138, file: !2, line: 60, type: !83) +!138 = distinct !DILexicalBlock(scope: !139, file: !2, line: 59, column: 5) +!139 = distinct !DILexicalBlock(scope: !28, file: !2, line: 58, column: 3) +!140 = !DILocation(line: 60, column: 9, scope: !138) +!141 = !DILocation(line: 60, column: 18, scope: !138) +!142 = !DILocalVariable(name: "test_", scope: !138, file: !2, line: 61, type: !10) +!143 = !DILocation(line: 61, column: 9, scope: !138) +!144 = !DILocation(line: 61, column: 17, scope: !138) +!145 = !DILocation(line: 62, column: 5, scope: !138) +!146 = !DILocalVariable(name: "$BoolUtils.andb_89", scope: !138, file: !2, line: 62, type: !10) +!147 = !DILocation(line: 63, column: 13, scope: !148) +!148 = distinct !DILexicalBlock(scope: !139, file: !2, line: 63, column: 5) +!149 = !DILocalVariable(name: "$input_22", scope: !28, file: !2, line: 67, type: !83) +!150 = !DILocation(line: 67, column: 5, scope: !28) +!151 = !DILocation(line: 67, column: 13, scope: !28) +!152 = !DILocalVariable(name: "$resopt_23", scope: !28, file: !2, line: 68, type: !130) +!153 = !DILocation(line: 68, column: 5, scope: !28) +!154 = !DILocation(line: 68, column: 14, scope: !28) +!155 = !DILocalVariable(name: "$test_24", scope: !28, file: !2, line: 69, type: !10) +!156 = !DILocation(line: 69, column: 5, scope: !28) +!157 = !DILocation(line: 70, column: 3, scope: !28) +!158 = !DILocalVariable(name: "input_", scope: !159, file: !2, line: 72, type: !83) +!159 = distinct !DILexicalBlock(scope: !160, file: !2, line: 71, column: 5) +!160 = distinct !DILexicalBlock(scope: !28, file: !2, line: 70, column: 3) +!161 = !DILocation(line: 72, column: 9, scope: !159) +!162 = !DILocation(line: 72, column: 18, scope: !159) +!163 = !DILocalVariable(name: "test_", scope: !159, file: !2, line: 73, type: !10) +!164 = !DILocation(line: 73, column: 9, scope: !159) +!165 = !DILocation(line: 73, column: 17, scope: !159) +!166 = !DILocation(line: 74, column: 5, scope: !159) +!167 = !DILocalVariable(name: "$BoolUtils.andb_91", scope: !159, file: !2, line: 74, type: !10) +!168 = !DILocation(line: 75, column: 13, scope: !169) +!169 = distinct !DILexicalBlock(scope: !160, file: !2, line: 75, column: 5) +!170 = !DILocalVariable(name: "$input_25", scope: !28, file: !2, line: 79, type: !61) +!171 = !DILocation(line: 79, column: 5, scope: !28) +!172 = !DILocation(line: 79, column: 13, scope: !28) +!173 = !DILocalVariable(name: "$resopt_26", scope: !28, file: !2, line: 80, type: !130) +!174 = !DILocation(line: 80, column: 5, scope: !28) +!175 = !DILocation(line: 80, column: 14, scope: !28) +!176 = !DILocalVariable(name: "$test_27", scope: !28, file: !2, line: 81, type: !10) +!177 = !DILocation(line: 81, column: 5, scope: !28) +!178 = !DILocation(line: 82, column: 3, scope: !28) +!179 = !DILocalVariable(name: "input_", scope: !180, file: !2, line: 84, type: !83) +!180 = distinct !DILexicalBlock(scope: !181, file: !2, line: 83, column: 5) +!181 = distinct !DILexicalBlock(scope: !28, file: !2, line: 82, column: 3) +!182 = !DILocation(line: 84, column: 9, scope: !180) +!183 = !DILocation(line: 84, column: 18, scope: !180) +!184 = !DILocalVariable(name: "test_", scope: !180, file: !2, line: 85, type: !10) +!185 = !DILocation(line: 85, column: 9, scope: !180) +!186 = !DILocation(line: 85, column: 17, scope: !180) +!187 = !DILocation(line: 86, column: 5, scope: !180) +!188 = !DILocalVariable(name: "$BoolUtils.andb_93", scope: !180, file: !2, line: 86, type: !10) +!189 = !DILocation(line: 87, column: 13, scope: !190) +!190 = distinct !DILexicalBlock(scope: !181, file: !2, line: 87, column: 5) +!191 = !DILocalVariable(name: "$input_28", scope: !28, file: !2, line: 91, type: !61) +!192 = !DILocation(line: 91, column: 5, scope: !28) +!193 = !DILocation(line: 91, column: 13, scope: !28) +!194 = !DILocalVariable(name: "$resopt_29", scope: !28, file: !2, line: 92, type: !130) +!195 = !DILocation(line: 92, column: 5, scope: !28) +!196 = !DILocation(line: 92, column: 14, scope: !28) +!197 = !DILocalVariable(name: "$test_30", scope: !28, file: !2, line: 93, type: !10) +!198 = !DILocation(line: 93, column: 5, scope: !28) +!199 = !DILocation(line: 94, column: 3, scope: !28) +!200 = !DILocation(line: 95, column: 15, scope: !201) +!201 = distinct !DILexicalBlock(scope: !202, file: !2, line: 95, column: 5) +!202 = distinct !DILexicalBlock(scope: !28, file: !2, line: 94, column: 3) +!203 = !DILocation(line: 96, column: 13, scope: !204) +!204 = distinct !DILexicalBlock(scope: !202, file: !2, line: 96, column: 5) +!205 = !DILocalVariable(name: "$input_31", scope: !28, file: !2, line: 100, type: !112) +!206 = !DILocation(line: 100, column: 5, scope: !28) +!207 = !DILocation(line: 100, column: 13, scope: !28) +!208 = !DILocalVariable(name: "$resopt_32", scope: !28, file: !2, line: 101, type: !130) +!209 = !DILocation(line: 101, column: 5, scope: !28) +!210 = !DILocation(line: 101, column: 14, scope: !28) +!211 = !DILocalVariable(name: "$test_33", scope: !28, file: !2, line: 102, type: !10) +!212 = !DILocation(line: 102, column: 5, scope: !28) +!213 = !DILocation(line: 103, column: 3, scope: !28) +!214 = !DILocation(line: 104, column: 15, scope: !215) +!215 = distinct !DILexicalBlock(scope: !216, file: !2, line: 104, column: 5) +!216 = distinct !DILexicalBlock(scope: !28, file: !2, line: 103, column: 3) +!217 = !DILocation(line: 105, column: 13, scope: !218) +!218 = distinct !DILexicalBlock(scope: !216, file: !2, line: 105, column: 5) +!219 = !DILocalVariable(name: "$input_34", scope: !28, file: !2, line: 109, type: !61) +!220 = !DILocation(line: 109, column: 5, scope: !28) +!221 = !DILocation(line: 109, column: 13, scope: !28) +!222 = !DILocalVariable(name: "$resopt_35", scope: !28, file: !2, line: 110, type: !223) +!223 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "Option (Uint128)", baseType: !224, size: 8, align: 8, dwarfAddressSpace: 0) +!224 = !DIBasicType(name: "Option (Uint128)", size: 8) +!225 = !DILocation(line: 110, column: 5, scope: !28) +!226 = !DILocation(line: 110, column: 14, scope: !28) +!227 = !DILocalVariable(name: "$test_36", scope: !28, file: !2, line: 111, type: !10) +!228 = !DILocation(line: 111, column: 5, scope: !28) +!229 = !DILocation(line: 112, column: 3, scope: !28) +!230 = !DILocalVariable(name: "input_", scope: !231, file: !2, line: 114, type: !61) +!231 = distinct !DILexicalBlock(scope: !232, file: !2, line: 113, column: 5) +!232 = distinct !DILexicalBlock(scope: !28, file: !2, line: 112, column: 3) +!233 = !DILocation(line: 114, column: 9, scope: !231) +!234 = !DILocation(line: 114, column: 18, scope: !231) +!235 = !DILocalVariable(name: "test_", scope: !231, file: !2, line: 115, type: !10) +!236 = !DILocation(line: 115, column: 9, scope: !231) +!237 = !DILocation(line: 115, column: 17, scope: !231) +!238 = !DILocation(line: 116, column: 5, scope: !231) +!239 = !DILocalVariable(name: "$BoolUtils.andb_95", scope: !231, file: !2, line: 116, type: !10) +!240 = !DILocation(line: 117, column: 13, scope: !241) +!241 = distinct !DILexicalBlock(scope: !232, file: !2, line: 117, column: 5) +!242 = !DILocalVariable(name: "$input_37", scope: !28, file: !2, line: 121, type: !61) +!243 = !DILocation(line: 121, column: 5, scope: !28) +!244 = !DILocation(line: 121, column: 13, scope: !28) +!245 = !DILocalVariable(name: "$resopt_38", scope: !28, file: !2, line: 122, type: !223) +!246 = !DILocation(line: 122, column: 5, scope: !28) +!247 = !DILocation(line: 122, column: 14, scope: !28) +!248 = !DILocalVariable(name: "$test_39", scope: !28, file: !2, line: 123, type: !10) +!249 = !DILocation(line: 123, column: 5, scope: !28) +!250 = !DILocation(line: 124, column: 3, scope: !28) +!251 = !DILocalVariable(name: "input_", scope: !252, file: !2, line: 126, type: !61) +!252 = distinct !DILexicalBlock(scope: !253, file: !2, line: 125, column: 5) +!253 = distinct !DILexicalBlock(scope: !28, file: !2, line: 124, column: 3) +!254 = !DILocation(line: 126, column: 9, scope: !252) +!255 = !DILocation(line: 126, column: 18, scope: !252) +!256 = !DILocalVariable(name: "test_", scope: !252, file: !2, line: 127, type: !10) +!257 = !DILocation(line: 127, column: 9, scope: !252) +!258 = !DILocation(line: 127, column: 17, scope: !252) +!259 = !DILocation(line: 128, column: 5, scope: !252) +!260 = !DILocalVariable(name: "$BoolUtils.andb_97", scope: !252, file: !2, line: 128, type: !10) +!261 = !DILocation(line: 129, column: 13, scope: !262) +!262 = distinct !DILexicalBlock(scope: !253, file: !2, line: 129, column: 5) +!263 = !DILocalVariable(name: "$input_40", scope: !28, file: !2, line: 133, type: !112) +!264 = !DILocation(line: 133, column: 5, scope: !28) +!265 = !DILocation(line: 133, column: 13, scope: !28) +!266 = !DILocalVariable(name: "$resopt_41", scope: !28, file: !2, line: 134, type: !223) +!267 = !DILocation(line: 134, column: 5, scope: !28) +!268 = !DILocation(line: 134, column: 14, scope: !28) +!269 = !DILocalVariable(name: "$test_42", scope: !28, file: !2, line: 135, type: !10) +!270 = !DILocation(line: 135, column: 5, scope: !28) +!271 = !DILocation(line: 136, column: 3, scope: !28) +!272 = !DILocation(line: 137, column: 15, scope: !273) +!273 = distinct !DILexicalBlock(scope: !274, file: !2, line: 137, column: 5) +!274 = distinct !DILexicalBlock(scope: !28, file: !2, line: 136, column: 3) +!275 = !DILocation(line: 138, column: 13, scope: !276) +!276 = distinct !DILexicalBlock(scope: !274, file: !2, line: 138, column: 5) +!277 = !DILocalVariable(name: "$input_43", scope: !28, file: !2, line: 142, type: !112) +!278 = !DILocation(line: 142, column: 5, scope: !28) +!279 = !DILocation(line: 142, column: 13, scope: !28) +!280 = !DILocalVariable(name: "$resopt_44", scope: !28, file: !2, line: 143, type: !281) +!281 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "Option (Uint256)", baseType: !282, size: 8, align: 8, dwarfAddressSpace: 0) +!282 = !DIBasicType(name: "Option (Uint256)", size: 8) +!283 = !DILocation(line: 143, column: 5, scope: !28) +!284 = !DILocation(line: 143, column: 14, scope: !28) +!285 = !DILocalVariable(name: "$test_45", scope: !28, file: !2, line: 144, type: !10) +!286 = !DILocation(line: 144, column: 5, scope: !28) +!287 = !DILocation(line: 145, column: 3, scope: !28) +!288 = !DILocalVariable(name: "input_", scope: !289, file: !2, line: 147, type: !112) +!289 = distinct !DILexicalBlock(scope: !290, file: !2, line: 146, column: 5) +!290 = distinct !DILexicalBlock(scope: !28, file: !2, line: 145, column: 3) +!291 = !DILocation(line: 147, column: 9, scope: !289) +!292 = !DILocation(line: 147, column: 18, scope: !289) +!293 = !DILocalVariable(name: "test_", scope: !289, file: !2, line: 148, type: !10) +!294 = !DILocation(line: 148, column: 9, scope: !289) +!295 = !DILocation(line: 148, column: 17, scope: !289) +!296 = !DILocation(line: 149, column: 5, scope: !289) +!297 = !DILocalVariable(name: "$BoolUtils.andb_99", scope: !289, file: !2, line: 149, type: !10) +!298 = !DILocation(line: 150, column: 13, scope: !299) +!299 = distinct !DILexicalBlock(scope: !290, file: !2, line: 150, column: 5) +!300 = !DILocalVariable(name: "$input_46", scope: !28, file: !2, line: 154, type: !37) +!301 = !DILocation(line: 154, column: 5, scope: !28) +!302 = !DILocation(line: 154, column: 13, scope: !28) +!303 = !DILocalVariable(name: "$resopt_47", scope: !28, file: !2, line: 155, type: !281) +!304 = !DILocation(line: 155, column: 5, scope: !28) +!305 = !DILocation(line: 155, column: 14, scope: !28) +!306 = !DILocalVariable(name: "$test_48", scope: !28, file: !2, line: 156, type: !10) +!307 = !DILocation(line: 156, column: 5, scope: !28) +!308 = !DILocation(line: 157, column: 3, scope: !28) +!309 = !DILocalVariable(name: "input_", scope: !310, file: !2, line: 159, type: !112) +!310 = distinct !DILexicalBlock(scope: !311, file: !2, line: 158, column: 5) +!311 = distinct !DILexicalBlock(scope: !28, file: !2, line: 157, column: 3) +!312 = !DILocation(line: 159, column: 9, scope: !310) +!313 = !DILocation(line: 159, column: 18, scope: !310) +!314 = !DILocalVariable(name: "test_", scope: !310, file: !2, line: 160, type: !10) +!315 = !DILocation(line: 160, column: 9, scope: !310) +!316 = !DILocation(line: 160, column: 17, scope: !310) +!317 = !DILocation(line: 161, column: 5, scope: !310) +!318 = !DILocalVariable(name: "$BoolUtils.andb_101", scope: !310, file: !2, line: 161, type: !10) +!319 = !DILocation(line: 162, column: 13, scope: !320) +!320 = distinct !DILexicalBlock(scope: !311, file: !2, line: 162, column: 5) +!321 = !DILocalVariable(name: "$input_49", scope: !28, file: !2, line: 166, type: !322) +!322 = !DIBasicType(name: "Int32", size: 4) +!323 = !DILocation(line: 166, column: 5, scope: !28) +!324 = !DILocation(line: 166, column: 13, scope: !28) +!325 = !DILocalVariable(name: "$resopt_50", scope: !28, file: !2, line: 167, type: !41) +!326 = !DILocation(line: 167, column: 5, scope: !28) +!327 = !DILocation(line: 167, column: 14, scope: !28) +!328 = !DILocalVariable(name: "$test_51", scope: !28, file: !2, line: 168, type: !10) +!329 = !DILocation(line: 168, column: 5, scope: !28) +!330 = !DILocation(line: 169, column: 3, scope: !28) +!331 = !DILocalVariable(name: "input_", scope: !332, file: !2, line: 171, type: !37) +!332 = distinct !DILexicalBlock(scope: !333, file: !2, line: 170, column: 5) +!333 = distinct !DILexicalBlock(scope: !28, file: !2, line: 169, column: 3) +!334 = !DILocation(line: 171, column: 9, scope: !332) +!335 = !DILocation(line: 171, column: 18, scope: !332) +!336 = !DILocalVariable(name: "test_", scope: !332, file: !2, line: 172, type: !10) +!337 = !DILocation(line: 172, column: 9, scope: !332) +!338 = !DILocation(line: 172, column: 17, scope: !332) +!339 = !DILocation(line: 173, column: 5, scope: !332) +!340 = !DILocalVariable(name: "$BoolUtils.andb_103", scope: !332, file: !2, line: 173, type: !10) +!341 = !DILocation(line: 174, column: 13, scope: !342) +!342 = distinct !DILexicalBlock(scope: !333, file: !2, line: 174, column: 5) +!343 = !DILocalVariable(name: "$input_52", scope: !28, file: !2, line: 178, type: !322) +!344 = !DILocation(line: 178, column: 5, scope: !28) +!345 = !DILocation(line: 178, column: 13, scope: !28) +!346 = !DILocalVariable(name: "$resopt_53", scope: !28, file: !2, line: 179, type: !41) +!347 = !DILocation(line: 179, column: 5, scope: !28) +!348 = !DILocation(line: 179, column: 14, scope: !28) +!349 = !DILocalVariable(name: "$test_54", scope: !28, file: !2, line: 180, type: !10) +!350 = !DILocation(line: 180, column: 5, scope: !28) +!351 = !DILocation(line: 181, column: 3, scope: !28) +!352 = !DILocation(line: 182, column: 15, scope: !353) +!353 = distinct !DILexicalBlock(scope: !354, file: !2, line: 182, column: 5) +!354 = distinct !DILexicalBlock(scope: !28, file: !2, line: 181, column: 3) +!355 = !DILocation(line: 183, column: 13, scope: !356) +!356 = distinct !DILexicalBlock(scope: !354, file: !2, line: 183, column: 5) +!357 = !DILocalVariable(name: "$input_55", scope: !28, file: !2, line: 187, type: !358) +!358 = !DIBasicType(name: "String", size: 16) +!359 = !DILocation(line: 187, column: 5, scope: !28) +!360 = !DILocation(line: 187, column: 25, scope: !28) +!361 = !DILocalVariable(name: "$resopt_56", scope: !28, file: !2, line: 188, type: !41) +!362 = !DILocation(line: 188, column: 5, scope: !28) +!363 = !DILocation(line: 188, column: 14, scope: !28) +!364 = !DILocalVariable(name: "$test_57", scope: !28, file: !2, line: 189, type: !10) +!365 = !DILocation(line: 189, column: 5, scope: !28) +!366 = !DILocation(line: 190, column: 3, scope: !28) +!367 = !DILocation(line: 191, column: 15, scope: !368) +!368 = distinct !DILexicalBlock(scope: !369, file: !2, line: 191, column: 5) +!369 = distinct !DILexicalBlock(scope: !28, file: !2, line: 190, column: 3) +!370 = !DILocation(line: 192, column: 13, scope: !371) +!371 = distinct !DILexicalBlock(scope: !369, file: !2, line: 192, column: 5) +!372 = !DILocalVariable(name: "$input_58", scope: !28, file: !2, line: 196, type: !373) +!373 = !DIBasicType(name: "Int256", size: 32) +!374 = !DILocation(line: 196, column: 5, scope: !28) +!375 = !DILocation(line: 196, column: 13, scope: !28) +!376 = !DILocalVariable(name: "$resopt_59", scope: !28, file: !2, line: 197, type: !281) +!377 = !DILocation(line: 197, column: 5, scope: !28) +!378 = !DILocation(line: 197, column: 14, scope: !28) +!379 = !DILocalVariable(name: "$test_60", scope: !28, file: !2, line: 198, type: !10) +!380 = !DILocation(line: 198, column: 5, scope: !28) +!381 = !DILocation(line: 199, column: 3, scope: !28) +!382 = !DILocalVariable(name: "input_", scope: !383, file: !2, line: 201, type: !112) +!383 = distinct !DILexicalBlock(scope: !384, file: !2, line: 200, column: 5) +!384 = distinct !DILexicalBlock(scope: !28, file: !2, line: 199, column: 3) +!385 = !DILocation(line: 201, column: 9, scope: !383) +!386 = !DILocation(line: 201, column: 18, scope: !383) +!387 = !DILocalVariable(name: "test_", scope: !383, file: !2, line: 202, type: !10) +!388 = !DILocation(line: 202, column: 9, scope: !383) +!389 = !DILocation(line: 202, column: 17, scope: !383) +!390 = !DILocation(line: 203, column: 5, scope: !383) +!391 = !DILocalVariable(name: "$BoolUtils.andb_105", scope: !383, file: !2, line: 203, type: !10) +!392 = !DILocation(line: 204, column: 13, scope: !393) +!393 = distinct !DILexicalBlock(scope: !384, file: !2, line: 204, column: 5) +!394 = !DILocalVariable(name: "$input_61", scope: !28, file: !2, line: 208, type: !358) +!395 = !DILocation(line: 208, column: 5, scope: !28) +!396 = !DILocation(line: 208, column: 91, scope: !28) +!397 = !DILocalVariable(name: "$resopt_62", scope: !28, file: !2, line: 209, type: !281) +!398 = !DILocation(line: 209, column: 5, scope: !28) +!399 = !DILocation(line: 209, column: 14, scope: !28) +!400 = !DILocalVariable(name: "$test_63", scope: !28, file: !2, line: 210, type: !10) +!401 = !DILocation(line: 210, column: 5, scope: !28) +!402 = !DILocation(line: 211, column: 3, scope: !28) +!403 = !DILocalVariable(name: "input_", scope: !404, file: !2, line: 213, type: !112) +!404 = distinct !DILexicalBlock(scope: !405, file: !2, line: 212, column: 5) +!405 = distinct !DILexicalBlock(scope: !28, file: !2, line: 211, column: 3) +!406 = !DILocation(line: 213, column: 9, scope: !404) +!407 = !DILocation(line: 213, column: 18, scope: !404) +!408 = !DILocalVariable(name: "test_", scope: !404, file: !2, line: 214, type: !10) +!409 = !DILocation(line: 214, column: 9, scope: !404) +!410 = !DILocation(line: 214, column: 17, scope: !404) +!411 = !DILocation(line: 215, column: 5, scope: !404) +!412 = !DILocalVariable(name: "$BoolUtils.andb_107", scope: !404, file: !2, line: 215, type: !10) +!413 = !DILocation(line: 216, column: 13, scope: !414) +!414 = distinct !DILexicalBlock(scope: !405, file: !2, line: 216, column: 5) +!415 = !DILocalVariable(name: "$input_64", scope: !28, file: !2, line: 220, type: !373) +!416 = !DILocation(line: 220, column: 5, scope: !28) +!417 = !DILocation(line: 220, column: 13, scope: !28) +!418 = !DILocalVariable(name: "$resopt_65", scope: !28, file: !2, line: 221, type: !281) +!419 = !DILocation(line: 221, column: 5, scope: !28) +!420 = !DILocation(line: 221, column: 14, scope: !28) +!421 = !DILocalVariable(name: "$test_66", scope: !28, file: !2, line: 222, type: !10) +!422 = !DILocation(line: 222, column: 5, scope: !28) +!423 = !DILocation(line: 223, column: 3, scope: !28) +!424 = !DILocation(line: 224, column: 15, scope: !425) +!425 = distinct !DILexicalBlock(scope: !426, file: !2, line: 224, column: 5) +!426 = distinct !DILexicalBlock(scope: !28, file: !2, line: 223, column: 3) +!427 = !DILocation(line: 225, column: 13, scope: !428) +!428 = distinct !DILexicalBlock(scope: !426, file: !2, line: 225, column: 5) +!429 = !DILocalVariable(name: "$input_67", scope: !28, file: !2, line: 229, type: !358) +!430 = !DILocation(line: 229, column: 5, scope: !28) +!431 = !DILocation(line: 229, column: 51, scope: !28) +!432 = !DILocalVariable(name: "$resopt_68", scope: !28, file: !2, line: 230, type: !281) +!433 = !DILocation(line: 230, column: 5, scope: !28) +!434 = !DILocation(line: 230, column: 14, scope: !28) +!435 = !DILocalVariable(name: "$test_69", scope: !28, file: !2, line: 231, type: !10) +!436 = !DILocation(line: 231, column: 5, scope: !28) +!437 = !DILocation(line: 232, column: 3, scope: !28) +!438 = !DILocation(line: 233, column: 15, scope: !439) +!439 = distinct !DILexicalBlock(scope: !440, file: !2, line: 233, column: 5) +!440 = distinct !DILexicalBlock(scope: !28, file: !2, line: 232, column: 3) +!441 = !DILocation(line: 234, column: 13, scope: !442) +!442 = distinct !DILexicalBlock(scope: !440, file: !2, line: 234, column: 5) +!443 = !DILocalVariable(name: "$input_70", scope: !28, file: !2, line: 238, type: !358) +!444 = !DILocation(line: 238, column: 5, scope: !28) +!445 = !DILocation(line: 238, column: 18, scope: !28) +!446 = !DILocalVariable(name: "$resopt_71", scope: !28, file: !2, line: 239, type: !130) +!447 = !DILocation(line: 239, column: 5, scope: !28) +!448 = !DILocation(line: 239, column: 14, scope: !28) +!449 = !DILocalVariable(name: "$test_72", scope: !28, file: !2, line: 240, type: !10) +!450 = !DILocation(line: 240, column: 5, scope: !28) +!451 = !DILocation(line: 241, column: 3, scope: !28) +!452 = !DILocation(line: 242, column: 15, scope: !453) +!453 = distinct !DILexicalBlock(scope: !454, file: !2, line: 242, column: 5) +!454 = distinct !DILexicalBlock(scope: !28, file: !2, line: 241, column: 3) +!455 = !DILocation(line: 243, column: 13, scope: !456) +!456 = distinct !DILexicalBlock(scope: !454, file: !2, line: 243, column: 5) +!457 = !DILocation(line: 247, column: 1, scope: !28) diff --git a/testsuite/expr/builtin_to_uint.ll b/testsuite/expr/builtin_to_uint.ll index d3fbc444..a7a207b3 100644 --- a/testsuite/expr/builtin_to_uint.ll +++ b/testsuite/expr/builtin_to_uint.ll @@ -248,7 +248,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-pc-linux-gnu" +target triple = "x86_64-unknown-linux-gnu" %"$TyDescrTy_PrimTyp_113" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/testsuite/expr/bystrx_uint_conversions.dbg.ll b/testsuite/expr/bystrx_uint_conversions.dbg.ll index 0782e7c1..0d38d819 100644 --- a/testsuite/expr/bystrx_uint_conversions.dbg.ll +++ b/testsuite/expr/bystrx_uint_conversions.dbg.ll @@ -44,7 +44,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-pc-linux-gnu" +target triple = "x86_64-unknown-linux-gnu" %"$TyDescrTy_PrimTyp_12" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } @@ -148,7 +148,7 @@ target triple = "x86_64-pc-linux-gnu" @_transition_parameters = constant [0 x %"$TransDescr_644"] zeroinitializer @_transition_parameters_length = constant i32 0 -define void @_init_libs() !dbg !4 { +define void @_init_libs() !dbg !3 { entry: %"$gasrem_85" = load i64, i64* @_gasrem, align 8 %"$gascmp_86" = icmp ugt i64 5, %"$gasrem_85" @@ -230,6 +230,7 @@ declare void @_out_of_gas() define internal %"TName_Pair_Pair_(Uint32)_(Uint64)_Pair_(Uint128)_(Uint256)"* @_scilla_expr_fun(i8* %0) !dbg !10 { entry: %"$expr_11" = alloca %"TName_Pair_Pair_(Uint32)_(Uint64)_Pair_(Uint128)_(Uint256)"*, align 8 + call void @llvm.dbg.declare(metadata %"TName_Pair_Pair_(Uint32)_(Uint64)_Pair_(Uint128)_(Uint256)"** %"$expr_11", metadata !11, metadata !DIExpression()), !dbg !14 %"$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" @@ -242,6 +243,7 @@ entry: %"$consume_119" = sub i64 %"$gasrem_115", 1 store i64 %"$consume_119", i64* @_gasrem, align 8 %zero = alloca [1 x i8], align 1 + call void @llvm.dbg.declare(metadata [1 x i8]* %zero, metadata !15, metadata !DIExpression()), !dbg !17 %"$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" @@ -253,7 +255,7 @@ entry: "$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 [1 x i8] zeroinitializer, [1 x i8]* %zero, align 1, !dbg !11 + store [1 x i8] zeroinitializer, [1 x i8]* %zero, align 1, !dbg !14 %"$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" @@ -266,6 +268,7 @@ entry: %"$consume_129" = sub i64 %"$gasrem_125", 1 store i64 %"$consume_129", i64* @_gasrem, align 8 %one_1 = alloca [1 x i8], align 1 + call void @llvm.dbg.declare(metadata [1 x i8]* %one_1, metadata !18, metadata !DIExpression()), !dbg !19 %"$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" @@ -277,7 +280,7 @@ entry: "$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 [1 x i8] c"\01", [1 x i8]* %one_1, align 1, !dbg !12 + store [1 x i8] c"\01", [1 x i8]* %one_1, align 1, !dbg !20 %"$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" @@ -290,6 +293,7 @@ entry: %"$consume_139" = sub i64 %"$gasrem_135", 1 store i64 %"$consume_139", i64* @_gasrem, align 8 %one_3 = alloca [3 x i8], align 1 + call void @llvm.dbg.declare(metadata [3 x i8]* %one_3, metadata !21, metadata !DIExpression()), !dbg !23 %"$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" @@ -301,7 +305,7 @@ entry: "$have_gas_143": ; preds = %"$out_of_gas_142", %"$have_gas_138" %"$consume_144" = sub i64 %"$gasrem_140", 1 store i64 %"$consume_144", i64* @_gasrem, align 8 - store [3 x i8] c"\00\00\01", [3 x i8]* %one_3, align 1, !dbg !13 + store [3 x i8] c"\00\00\01", [3 x i8]* %one_3, align 1, !dbg !24 %"$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" @@ -314,6 +318,7 @@ entry: %"$consume_149" = sub i64 %"$gasrem_145", 1 store i64 %"$consume_149", i64* @_gasrem, align 8 %one_4 = alloca [4 x i8], align 1 + call void @llvm.dbg.declare(metadata [4 x i8]* %one_4, metadata !25, metadata !DIExpression()), !dbg !27 %"$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" @@ -325,7 +330,7 @@ entry: "$have_gas_153": ; preds = %"$out_of_gas_152", %"$have_gas_148" %"$consume_154" = sub i64 %"$gasrem_150", 1 store i64 %"$consume_154", i64* @_gasrem, align 8 - store [4 x i8] c"\00\00\00\01", [4 x i8]* %one_4, align 1, !dbg !14 + store [4 x i8] c"\00\00\00\01", [4 x i8]* %one_4, align 1, !dbg !28 %"$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" @@ -338,6 +343,7 @@ entry: %"$consume_159" = sub i64 %"$gasrem_155", 1 store i64 %"$consume_159", i64* @_gasrem, align 8 %one_8 = alloca [8 x i8], align 1 + call void @llvm.dbg.declare(metadata [8 x i8]* %one_8, metadata !29, metadata !DIExpression()), !dbg !31 %"$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" @@ -349,7 +355,7 @@ entry: "$have_gas_163": ; preds = %"$out_of_gas_162", %"$have_gas_158" %"$consume_164" = sub i64 %"$gasrem_160", 1 store i64 %"$consume_164", i64* @_gasrem, align 8 - store [8 x i8] c"\00\00\00\00\00\00\00\01", [8 x i8]* %one_8, align 1, !dbg !15 + store [8 x i8] c"\00\00\00\00\00\00\00\01", [8 x i8]* %one_8, align 1, !dbg !32 %"$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" @@ -362,6 +368,7 @@ entry: %"$consume_169" = sub i64 %"$gasrem_165", 1 store i64 %"$consume_169", i64* @_gasrem, align 8 %one_16 = alloca [16 x i8], align 1 + call void @llvm.dbg.declare(metadata [16 x i8]* %one_16, metadata !33, metadata !DIExpression()), !dbg !35 %"$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" @@ -373,7 +380,7 @@ entry: "$have_gas_173": ; preds = %"$out_of_gas_172", %"$have_gas_168" %"$consume_174" = sub i64 %"$gasrem_170", 1 store i64 %"$consume_174", i64* @_gasrem, align 8 - store [16 x i8] c"\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\01", [16 x i8]* %one_16, align 1, !dbg !16 + store [16 x i8] c"\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\01", [16 x i8]* %one_16, align 1, !dbg !36 %"$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" @@ -386,6 +393,7 @@ entry: %"$consume_179" = sub i64 %"$gasrem_175", 1 store i64 %"$consume_179", i64* @_gasrem, align 8 %one_32 = alloca [32 x i8], align 1 + call void @llvm.dbg.declare(metadata [32 x i8]* %one_32, metadata !37, metadata !DIExpression()), !dbg !39 %"$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" @@ -397,7 +405,7 @@ entry: "$have_gas_183": ; preds = %"$out_of_gas_182", %"$have_gas_178" %"$consume_184" = sub i64 %"$gasrem_180", 1 store i64 %"$consume_184", i64* @_gasrem, align 8 - store [32 x i8] c"\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\01", [32 x i8]* %one_32, align 1, !dbg !17 + store [32 x i8] c"\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\01", [32 x i8]* %one_32, align 1, !dbg !40 %"$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" @@ -410,6 +418,7 @@ entry: %"$consume_189" = sub i64 %"$gasrem_185", 1 store i64 %"$consume_189", i64* @_gasrem, align 8 %res7 = alloca %Uint32, align 8 + call void @llvm.dbg.declare(metadata %Uint32* %res7, metadata !41, metadata !DIExpression()), !dbg !43 %"$gasrem_190" = load i64, i64* @_gasrem, align 8 %"$gascmp_191" = icmp ugt i64 4, %"$gasrem_190" br i1 %"$gascmp_191", label %"$out_of_gas_192", label %"$have_gas_193" @@ -426,8 +435,8 @@ entry: %"$zero_197" = load [1 x i8], [1 x i8]* %zero, align 1 store [1 x i8] %"$zero_197", [1 x i8]* %"$to_uint32_zero_196", align 1 %"$$to_uint32_zero_196_198" = bitcast [1 x i8]* %"$to_uint32_zero_196" to i8* - %"$to_uint32_call_199" = call %Uint32 @_bystrx_to_uint32(i8* %"$execptr_load_195", i32 1, i8* %"$$to_uint32_zero_196_198"), !dbg !18 - store %Uint32 %"$to_uint32_call_199", %Uint32* %res7, align 4, !dbg !18 + %"$to_uint32_call_199" = call %Uint32 @_bystrx_to_uint32(i8* %"$execptr_load_195", i32 1, i8* %"$$to_uint32_zero_196_198"), !dbg !44 + store %Uint32 %"$to_uint32_call_199", %Uint32* %res7, align 4, !dbg !44 %"$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" @@ -440,6 +449,7 @@ entry: %"$consume_204" = sub i64 %"$gasrem_200", 1 store i64 %"$consume_204", i64* @_gasrem, align 8 %res8 = alloca %Uint32, align 8 + call void @llvm.dbg.declare(metadata %Uint32* %res8, metadata !45, metadata !DIExpression()), !dbg !46 %"$gasrem_205" = load i64, i64* @_gasrem, align 8 %"$gascmp_206" = icmp ugt i64 4, %"$gasrem_205" br i1 %"$gascmp_206", label %"$out_of_gas_207", label %"$have_gas_208" @@ -456,8 +466,8 @@ entry: %"$one_1_212" = load [1 x i8], [1 x i8]* %one_1, align 1 store [1 x i8] %"$one_1_212", [1 x i8]* %"$to_uint32_one_1_211", align 1 %"$$to_uint32_one_1_211_213" = bitcast [1 x i8]* %"$to_uint32_one_1_211" to i8* - %"$to_uint32_call_214" = call %Uint32 @_bystrx_to_uint32(i8* %"$execptr_load_210", i32 1, i8* %"$$to_uint32_one_1_211_213"), !dbg !19 - store %Uint32 %"$to_uint32_call_214", %Uint32* %res8, align 4, !dbg !19 + %"$to_uint32_call_214" = call %Uint32 @_bystrx_to_uint32(i8* %"$execptr_load_210", i32 1, i8* %"$$to_uint32_one_1_211_213"), !dbg !47 + store %Uint32 %"$to_uint32_call_214", %Uint32* %res8, align 4, !dbg !47 %"$gasrem_215" = load i64, i64* @_gasrem, align 8 %"$gascmp_216" = icmp ugt i64 1, %"$gasrem_215" br i1 %"$gascmp_216", label %"$out_of_gas_217", label %"$have_gas_218" @@ -470,6 +480,7 @@ entry: %"$consume_219" = sub i64 %"$gasrem_215", 1 store i64 %"$consume_219", i64* @_gasrem, align 8 %res9 = alloca %Uint32, align 8 + call void @llvm.dbg.declare(metadata %Uint32* %res9, metadata !48, metadata !DIExpression()), !dbg !49 %"$gasrem_220" = load i64, i64* @_gasrem, align 8 %"$gascmp_221" = icmp ugt i64 4, %"$gasrem_220" br i1 %"$gascmp_221", label %"$out_of_gas_222", label %"$have_gas_223" @@ -486,8 +497,8 @@ entry: %"$one_3_227" = load [3 x i8], [3 x i8]* %one_3, align 1 store [3 x i8] %"$one_3_227", [3 x i8]* %"$to_uint32_one_3_226", align 1 %"$$to_uint32_one_3_226_228" = bitcast [3 x i8]* %"$to_uint32_one_3_226" to i8* - %"$to_uint32_call_229" = call %Uint32 @_bystrx_to_uint32(i8* %"$execptr_load_225", i32 3, i8* %"$$to_uint32_one_3_226_228"), !dbg !20 - store %Uint32 %"$to_uint32_call_229", %Uint32* %res9, align 4, !dbg !20 + %"$to_uint32_call_229" = call %Uint32 @_bystrx_to_uint32(i8* %"$execptr_load_225", i32 3, i8* %"$$to_uint32_one_3_226_228"), !dbg !50 + store %Uint32 %"$to_uint32_call_229", %Uint32* %res9, align 4, !dbg !50 %"$gasrem_230" = load i64, i64* @_gasrem, align 8 %"$gascmp_231" = icmp ugt i64 1, %"$gasrem_230" br i1 %"$gascmp_231", label %"$out_of_gas_232", label %"$have_gas_233" @@ -500,6 +511,7 @@ entry: %"$consume_234" = sub i64 %"$gasrem_230", 1 store i64 %"$consume_234", i64* @_gasrem, align 8 %res10 = alloca %Uint32, align 8 + call void @llvm.dbg.declare(metadata %Uint32* %res10, metadata !51, metadata !DIExpression()), !dbg !52 %"$gasrem_235" = load i64, i64* @_gasrem, align 8 %"$gascmp_236" = icmp ugt i64 4, %"$gasrem_235" br i1 %"$gascmp_236", label %"$out_of_gas_237", label %"$have_gas_238" @@ -516,8 +528,8 @@ entry: %"$one_4_242" = load [4 x i8], [4 x i8]* %one_4, align 1 store [4 x i8] %"$one_4_242", [4 x i8]* %"$to_uint32_one_4_241", align 1 %"$$to_uint32_one_4_241_243" = bitcast [4 x i8]* %"$to_uint32_one_4_241" to i8* - %"$to_uint32_call_244" = call %Uint32 @_bystrx_to_uint32(i8* %"$execptr_load_240", i32 4, i8* %"$$to_uint32_one_4_241_243"), !dbg !21 - store %Uint32 %"$to_uint32_call_244", %Uint32* %res10, align 4, !dbg !21 + %"$to_uint32_call_244" = call %Uint32 @_bystrx_to_uint32(i8* %"$execptr_load_240", i32 4, i8* %"$$to_uint32_one_4_241_243"), !dbg !53 + store %Uint32 %"$to_uint32_call_244", %Uint32* %res10, align 4, !dbg !53 %"$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" @@ -530,6 +542,7 @@ entry: %"$consume_249" = sub i64 %"$gasrem_245", 1 store i64 %"$consume_249", i64* @_gasrem, align 8 %sum1 = alloca %Uint32, align 8 + call void @llvm.dbg.declare(metadata %Uint32* %sum1, metadata !54, metadata !DIExpression()), !dbg !55 %"$gasrem_250" = load i64, i64* @_gasrem, align 8 %"$gascmp_251" = icmp ugt i64 4, %"$gasrem_250" br i1 %"$gascmp_251", label %"$out_of_gas_252", label %"$have_gas_253" @@ -543,8 +556,8 @@ entry: store i64 %"$consume_254", i64* @_gasrem, align 8 %"$res7_255" = load %Uint32, %Uint32* %res7, align 4 %"$res8_256" = load %Uint32, %Uint32* %res8, align 4 - %"$add_call_257" = call %Uint32 @_add_Uint32(%Uint32 %"$res7_255", %Uint32 %"$res8_256"), !dbg !22 - store %Uint32 %"$add_call_257", %Uint32* %sum1, align 4, !dbg !22 + %"$add_call_257" = call %Uint32 @_add_Uint32(%Uint32 %"$res7_255", %Uint32 %"$res8_256"), !dbg !56 + store %Uint32 %"$add_call_257", %Uint32* %sum1, align 4, !dbg !56 %"$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" @@ -557,6 +570,7 @@ entry: %"$consume_262" = sub i64 %"$gasrem_258", 1 store i64 %"$consume_262", i64* @_gasrem, align 8 %sum2 = alloca %Uint32, align 8 + call void @llvm.dbg.declare(metadata %Uint32* %sum2, metadata !57, metadata !DIExpression()), !dbg !58 %"$gasrem_263" = load i64, i64* @_gasrem, align 8 %"$gascmp_264" = icmp ugt i64 4, %"$gasrem_263" br i1 %"$gascmp_264", label %"$out_of_gas_265", label %"$have_gas_266" @@ -570,8 +584,8 @@ entry: store i64 %"$consume_267", i64* @_gasrem, align 8 %"$res9_268" = load %Uint32, %Uint32* %res9, align 4 %"$res10_269" = load %Uint32, %Uint32* %res10, align 4 - %"$add_call_270" = call %Uint32 @_add_Uint32(%Uint32 %"$res9_268", %Uint32 %"$res10_269"), !dbg !23 - store %Uint32 %"$add_call_270", %Uint32* %sum2, align 4, !dbg !23 + %"$add_call_270" = call %Uint32 @_add_Uint32(%Uint32 %"$res9_268", %Uint32 %"$res10_269"), !dbg !59 + store %Uint32 %"$add_call_270", %Uint32* %sum2, align 4, !dbg !59 %"$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" @@ -584,6 +598,7 @@ entry: %"$consume_275" = sub i64 %"$gasrem_271", 1 store i64 %"$consume_275", i64* @_gasrem, align 8 %sum_32 = alloca %Uint32, align 8 + call void @llvm.dbg.declare(metadata %Uint32* %sum_32, metadata !60, metadata !DIExpression()), !dbg !61 %"$gasrem_276" = load i64, i64* @_gasrem, align 8 %"$gascmp_277" = icmp ugt i64 4, %"$gasrem_276" br i1 %"$gascmp_277", label %"$out_of_gas_278", label %"$have_gas_279" @@ -597,8 +612,8 @@ entry: store i64 %"$consume_280", i64* @_gasrem, align 8 %"$sum1_281" = load %Uint32, %Uint32* %sum1, align 4 %"$sum2_282" = load %Uint32, %Uint32* %sum2, align 4 - %"$add_call_283" = call %Uint32 @_add_Uint32(%Uint32 %"$sum1_281", %Uint32 %"$sum2_282"), !dbg !24 - store %Uint32 %"$add_call_283", %Uint32* %sum_32, align 4, !dbg !24 + %"$add_call_283" = call %Uint32 @_add_Uint32(%Uint32 %"$sum1_281", %Uint32 %"$sum2_282"), !dbg !62 + store %Uint32 %"$add_call_283", %Uint32* %sum_32, align 4, !dbg !62 %"$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" @@ -611,6 +626,7 @@ entry: %"$consume_288" = sub i64 %"$gasrem_284", 1 store i64 %"$consume_288", i64* @_gasrem, align 8 %res12 = alloca %Uint64, align 8 + call void @llvm.dbg.declare(metadata %Uint64* %res12, metadata !63, metadata !DIExpression()), !dbg !65 %"$gasrem_289" = load i64, i64* @_gasrem, align 8 %"$gascmp_290" = icmp ugt i64 8, %"$gasrem_289" br i1 %"$gascmp_290", label %"$out_of_gas_291", label %"$have_gas_292" @@ -627,8 +643,8 @@ entry: %"$one_1_296" = load [1 x i8], [1 x i8]* %one_1, align 1 store [1 x i8] %"$one_1_296", [1 x i8]* %"$to_uint64_one_1_295", align 1 %"$$to_uint64_one_1_295_297" = bitcast [1 x i8]* %"$to_uint64_one_1_295" to i8* - %"$to_uint64_call_298" = call %Uint64 @_bystrx_to_uint64(i8* %"$execptr_load_294", i32 1, i8* %"$$to_uint64_one_1_295_297"), !dbg !25 - store %Uint64 %"$to_uint64_call_298", %Uint64* %res12, align 8, !dbg !25 + %"$to_uint64_call_298" = call %Uint64 @_bystrx_to_uint64(i8* %"$execptr_load_294", i32 1, i8* %"$$to_uint64_one_1_295_297"), !dbg !66 + store %Uint64 %"$to_uint64_call_298", %Uint64* %res12, align 8, !dbg !66 %"$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" @@ -641,6 +657,7 @@ entry: %"$consume_303" = sub i64 %"$gasrem_299", 1 store i64 %"$consume_303", i64* @_gasrem, align 8 %res13 = alloca %Uint64, align 8 + call void @llvm.dbg.declare(metadata %Uint64* %res13, metadata !67, metadata !DIExpression()), !dbg !68 %"$gasrem_304" = load i64, i64* @_gasrem, align 8 %"$gascmp_305" = icmp ugt i64 8, %"$gasrem_304" br i1 %"$gascmp_305", label %"$out_of_gas_306", label %"$have_gas_307" @@ -657,8 +674,8 @@ entry: %"$one_4_311" = load [4 x i8], [4 x i8]* %one_4, align 1 store [4 x i8] %"$one_4_311", [4 x i8]* %"$to_uint64_one_4_310", align 1 %"$$to_uint64_one_4_310_312" = bitcast [4 x i8]* %"$to_uint64_one_4_310" to i8* - %"$to_uint64_call_313" = call %Uint64 @_bystrx_to_uint64(i8* %"$execptr_load_309", i32 4, i8* %"$$to_uint64_one_4_310_312"), !dbg !26 - store %Uint64 %"$to_uint64_call_313", %Uint64* %res13, align 8, !dbg !26 + %"$to_uint64_call_313" = call %Uint64 @_bystrx_to_uint64(i8* %"$execptr_load_309", i32 4, i8* %"$$to_uint64_one_4_310_312"), !dbg !69 + store %Uint64 %"$to_uint64_call_313", %Uint64* %res13, align 8, !dbg !69 %"$gasrem_314" = load i64, i64* @_gasrem, align 8 %"$gascmp_315" = icmp ugt i64 1, %"$gasrem_314" br i1 %"$gascmp_315", label %"$out_of_gas_316", label %"$have_gas_317" @@ -671,6 +688,7 @@ entry: %"$consume_318" = sub i64 %"$gasrem_314", 1 store i64 %"$consume_318", i64* @_gasrem, align 8 %res14 = alloca %Uint64, align 8 + call void @llvm.dbg.declare(metadata %Uint64* %res14, metadata !70, metadata !DIExpression()), !dbg !71 %"$gasrem_319" = load i64, i64* @_gasrem, align 8 %"$gascmp_320" = icmp ugt i64 8, %"$gasrem_319" br i1 %"$gascmp_320", label %"$out_of_gas_321", label %"$have_gas_322" @@ -687,8 +705,8 @@ entry: %"$one_8_326" = load [8 x i8], [8 x i8]* %one_8, align 1 store [8 x i8] %"$one_8_326", [8 x i8]* %"$to_uint64_one_8_325", align 1 %"$$to_uint64_one_8_325_327" = bitcast [8 x i8]* %"$to_uint64_one_8_325" to i8* - %"$to_uint64_call_328" = call %Uint64 @_bystrx_to_uint64(i8* %"$execptr_load_324", i32 8, i8* %"$$to_uint64_one_8_325_327"), !dbg !27 - store %Uint64 %"$to_uint64_call_328", %Uint64* %res14, align 8, !dbg !27 + %"$to_uint64_call_328" = call %Uint64 @_bystrx_to_uint64(i8* %"$execptr_load_324", i32 8, i8* %"$$to_uint64_one_8_325_327"), !dbg !72 + store %Uint64 %"$to_uint64_call_328", %Uint64* %res14, align 8, !dbg !72 %"$gasrem_329" = load i64, i64* @_gasrem, align 8 %"$gascmp_330" = icmp ugt i64 1, %"$gasrem_329" br i1 %"$gascmp_330", label %"$out_of_gas_331", label %"$have_gas_332" @@ -701,6 +719,7 @@ entry: %"$consume_333" = sub i64 %"$gasrem_329", 1 store i64 %"$consume_333", i64* @_gasrem, align 8 %"$sum1_6" = alloca %Uint64, align 8 + call void @llvm.dbg.declare(metadata %Uint64* %"$sum1_6", metadata !73, metadata !DIExpression()), !dbg !74 %"$gasrem_334" = load i64, i64* @_gasrem, align 8 %"$gascmp_335" = icmp ugt i64 4, %"$gasrem_334" br i1 %"$gascmp_335", label %"$out_of_gas_336", label %"$have_gas_337" @@ -714,8 +733,8 @@ entry: store i64 %"$consume_338", i64* @_gasrem, align 8 %"$res12_339" = load %Uint64, %Uint64* %res12, align 8 %"$res13_340" = load %Uint64, %Uint64* %res13, align 8 - %"$add_call_341" = call %Uint64 @_add_Uint64(%Uint64 %"$res12_339", %Uint64 %"$res13_340"), !dbg !28 - store %Uint64 %"$add_call_341", %Uint64* %"$sum1_6", align 8, !dbg !28 + %"$add_call_341" = call %Uint64 @_add_Uint64(%Uint64 %"$res12_339", %Uint64 %"$res13_340"), !dbg !75 + store %Uint64 %"$add_call_341", %Uint64* %"$sum1_6", align 8, !dbg !75 %"$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" @@ -728,6 +747,7 @@ entry: %"$consume_346" = sub i64 %"$gasrem_342", 1 store i64 %"$consume_346", i64* @_gasrem, align 8 %sum_64 = alloca %Uint64, align 8 + call void @llvm.dbg.declare(metadata %Uint64* %sum_64, metadata !76, metadata !DIExpression()), !dbg !77 %"$gasrem_347" = load i64, i64* @_gasrem, align 8 %"$gascmp_348" = icmp ugt i64 4, %"$gasrem_347" br i1 %"$gascmp_348", label %"$out_of_gas_349", label %"$have_gas_350" @@ -741,8 +761,8 @@ entry: store i64 %"$consume_351", i64* @_gasrem, align 8 %"$$sum1_6_352" = load %Uint64, %Uint64* %"$sum1_6", align 8 %"$res14_353" = load %Uint64, %Uint64* %res14, align 8 - %"$add_call_354" = call %Uint64 @_add_Uint64(%Uint64 %"$$sum1_6_352", %Uint64 %"$res14_353"), !dbg !29 - store %Uint64 %"$add_call_354", %Uint64* %sum_64, align 8, !dbg !29 + %"$add_call_354" = call %Uint64 @_add_Uint64(%Uint64 %"$$sum1_6_352", %Uint64 %"$res14_353"), !dbg !78 + store %Uint64 %"$add_call_354", %Uint64* %sum_64, align 8, !dbg !78 %"$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" @@ -755,6 +775,7 @@ entry: %"$consume_359" = sub i64 %"$gasrem_355", 1 store i64 %"$consume_359", i64* @_gasrem, align 8 %res15 = alloca %Uint128, align 8 + call void @llvm.dbg.declare(metadata %Uint128* %res15, metadata !79, metadata !DIExpression()), !dbg !81 %"$gasrem_360" = load i64, i64* @_gasrem, align 8 %"$gascmp_361" = icmp ugt i64 16, %"$gasrem_360" br i1 %"$gascmp_361", label %"$out_of_gas_362", label %"$have_gas_363" @@ -771,8 +792,8 @@ entry: %"$one_1_367" = load [1 x i8], [1 x i8]* %one_1, align 1 store [1 x i8] %"$one_1_367", [1 x i8]* %"$to_uint128_one_1_366", align 1 %"$$to_uint128_one_1_366_368" = bitcast [1 x i8]* %"$to_uint128_one_1_366" to i8* - %"$to_uint128_call_369" = call %Uint128 @_bystrx_to_uint128(i8* %"$execptr_load_365", i32 1, i8* %"$$to_uint128_one_1_366_368"), !dbg !30 - store %Uint128 %"$to_uint128_call_369", %Uint128* %res15, align 8, !dbg !30 + %"$to_uint128_call_369" = call %Uint128 @_bystrx_to_uint128(i8* %"$execptr_load_365", i32 1, i8* %"$$to_uint128_one_1_366_368"), !dbg !82 + store %Uint128 %"$to_uint128_call_369", %Uint128* %res15, align 8, !dbg !82 %"$gasrem_370" = load i64, i64* @_gasrem, align 8 %"$gascmp_371" = icmp ugt i64 1, %"$gasrem_370" br i1 %"$gascmp_371", label %"$out_of_gas_372", label %"$have_gas_373" @@ -785,6 +806,7 @@ entry: %"$consume_374" = sub i64 %"$gasrem_370", 1 store i64 %"$consume_374", i64* @_gasrem, align 8 %res16 = alloca %Uint128, align 8 + call void @llvm.dbg.declare(metadata %Uint128* %res16, metadata !83, metadata !DIExpression()), !dbg !84 %"$gasrem_375" = load i64, i64* @_gasrem, align 8 %"$gascmp_376" = icmp ugt i64 16, %"$gasrem_375" br i1 %"$gascmp_376", label %"$out_of_gas_377", label %"$have_gas_378" @@ -801,8 +823,8 @@ entry: %"$one_4_382" = load [4 x i8], [4 x i8]* %one_4, align 1 store [4 x i8] %"$one_4_382", [4 x i8]* %"$to_uint128_one_4_381", align 1 %"$$to_uint128_one_4_381_383" = bitcast [4 x i8]* %"$to_uint128_one_4_381" to i8* - %"$to_uint128_call_384" = call %Uint128 @_bystrx_to_uint128(i8* %"$execptr_load_380", i32 4, i8* %"$$to_uint128_one_4_381_383"), !dbg !31 - store %Uint128 %"$to_uint128_call_384", %Uint128* %res16, align 8, !dbg !31 + %"$to_uint128_call_384" = call %Uint128 @_bystrx_to_uint128(i8* %"$execptr_load_380", i32 4, i8* %"$$to_uint128_one_4_381_383"), !dbg !85 + store %Uint128 %"$to_uint128_call_384", %Uint128* %res16, align 8, !dbg !85 %"$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" @@ -815,6 +837,7 @@ entry: %"$consume_389" = sub i64 %"$gasrem_385", 1 store i64 %"$consume_389", i64* @_gasrem, align 8 %res17 = alloca %Uint128, align 8 + call void @llvm.dbg.declare(metadata %Uint128* %res17, metadata !86, metadata !DIExpression()), !dbg !87 %"$gasrem_390" = load i64, i64* @_gasrem, align 8 %"$gascmp_391" = icmp ugt i64 16, %"$gasrem_390" br i1 %"$gascmp_391", label %"$out_of_gas_392", label %"$have_gas_393" @@ -831,8 +854,8 @@ entry: %"$one_8_397" = load [8 x i8], [8 x i8]* %one_8, align 1 store [8 x i8] %"$one_8_397", [8 x i8]* %"$to_uint128_one_8_396", align 1 %"$$to_uint128_one_8_396_398" = bitcast [8 x i8]* %"$to_uint128_one_8_396" to i8* - %"$to_uint128_call_399" = call %Uint128 @_bystrx_to_uint128(i8* %"$execptr_load_395", i32 8, i8* %"$$to_uint128_one_8_396_398"), !dbg !32 - store %Uint128 %"$to_uint128_call_399", %Uint128* %res17, align 8, !dbg !32 + %"$to_uint128_call_399" = call %Uint128 @_bystrx_to_uint128(i8* %"$execptr_load_395", i32 8, i8* %"$$to_uint128_one_8_396_398"), !dbg !88 + store %Uint128 %"$to_uint128_call_399", %Uint128* %res17, align 8, !dbg !88 %"$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" @@ -845,6 +868,7 @@ entry: %"$consume_404" = sub i64 %"$gasrem_400", 1 store i64 %"$consume_404", i64* @_gasrem, align 8 %res18 = alloca %Uint128, align 8 + call void @llvm.dbg.declare(metadata %Uint128* %res18, metadata !89, metadata !DIExpression()), !dbg !90 %"$gasrem_405" = load i64, i64* @_gasrem, align 8 %"$gascmp_406" = icmp ugt i64 16, %"$gasrem_405" br i1 %"$gascmp_406", label %"$out_of_gas_407", label %"$have_gas_408" @@ -861,8 +885,8 @@ entry: %"$one_16_412" = load [16 x i8], [16 x i8]* %one_16, align 1 store [16 x i8] %"$one_16_412", [16 x i8]* %"$to_uint128_one_16_411", align 1 %"$$to_uint128_one_16_411_413" = bitcast [16 x i8]* %"$to_uint128_one_16_411" to i8* - %"$to_uint128_call_414" = call %Uint128 @_bystrx_to_uint128(i8* %"$execptr_load_410", i32 16, i8* %"$$to_uint128_one_16_411_413"), !dbg !33 - store %Uint128 %"$to_uint128_call_414", %Uint128* %res18, align 8, !dbg !33 + %"$to_uint128_call_414" = call %Uint128 @_bystrx_to_uint128(i8* %"$execptr_load_410", i32 16, i8* %"$$to_uint128_one_16_411_413"), !dbg !91 + store %Uint128 %"$to_uint128_call_414", %Uint128* %res18, align 8, !dbg !91 %"$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" @@ -875,6 +899,7 @@ entry: %"$consume_419" = sub i64 %"$gasrem_415", 1 store i64 %"$consume_419", i64* @_gasrem, align 8 %"$sum1_7" = alloca %Uint128, align 8 + call void @llvm.dbg.declare(metadata %Uint128* %"$sum1_7", metadata !92, metadata !DIExpression()), !dbg !93 %"$gasrem_421" = load i64, i64* @_gasrem, align 8 %"$gascmp_422" = icmp ugt i64 8, %"$gasrem_421" br i1 %"$gascmp_422", label %"$out_of_gas_423", label %"$have_gas_424" @@ -888,8 +913,8 @@ entry: store i64 %"$consume_425", i64* @_gasrem, align 8 %"$res15_426" = load %Uint128, %Uint128* %res15, align 8 %"$res16_427" = load %Uint128, %Uint128* %res16, align 8 - %"$add_call_428" = call %Uint128 @_add_Uint128(%Uint128 %"$res15_426", %Uint128 %"$res16_427"), !dbg !34 - store %Uint128 %"$add_call_428", %Uint128* %"$sum1_7", align 8, !dbg !34 + %"$add_call_428" = call %Uint128 @_add_Uint128(%Uint128 %"$res15_426", %Uint128 %"$res16_427"), !dbg !94 + store %Uint128 %"$add_call_428", %Uint128* %"$sum1_7", align 8, !dbg !94 %"$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" @@ -902,6 +927,7 @@ entry: %"$consume_433" = sub i64 %"$gasrem_429", 1 store i64 %"$consume_433", i64* @_gasrem, align 8 %"$sum2_8" = alloca %Uint128, align 8 + call void @llvm.dbg.declare(metadata %Uint128* %"$sum2_8", metadata !95, metadata !DIExpression()), !dbg !96 %"$gasrem_435" = load i64, i64* @_gasrem, align 8 %"$gascmp_436" = icmp ugt i64 8, %"$gasrem_435" br i1 %"$gascmp_436", label %"$out_of_gas_437", label %"$have_gas_438" @@ -915,8 +941,8 @@ entry: store i64 %"$consume_439", i64* @_gasrem, align 8 %"$res17_440" = load %Uint128, %Uint128* %res17, align 8 %"$res18_441" = load %Uint128, %Uint128* %res18, align 8 - %"$add_call_442" = call %Uint128 @_add_Uint128(%Uint128 %"$res17_440", %Uint128 %"$res18_441"), !dbg !35 - store %Uint128 %"$add_call_442", %Uint128* %"$sum2_8", align 8, !dbg !35 + %"$add_call_442" = call %Uint128 @_add_Uint128(%Uint128 %"$res17_440", %Uint128 %"$res18_441"), !dbg !97 + store %Uint128 %"$add_call_442", %Uint128* %"$sum2_8", align 8, !dbg !97 %"$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" @@ -929,6 +955,7 @@ entry: %"$consume_447" = sub i64 %"$gasrem_443", 1 store i64 %"$consume_447", i64* @_gasrem, align 8 %sum_128 = alloca %Uint128, align 8 + call void @llvm.dbg.declare(metadata %Uint128* %sum_128, metadata !98, metadata !DIExpression()), !dbg !99 %"$gasrem_449" = load i64, i64* @_gasrem, align 8 %"$gascmp_450" = icmp ugt i64 8, %"$gasrem_449" br i1 %"$gascmp_450", label %"$out_of_gas_451", label %"$have_gas_452" @@ -942,8 +969,8 @@ entry: store i64 %"$consume_453", i64* @_gasrem, align 8 %"$$sum1_7_454" = load %Uint128, %Uint128* %"$sum1_7", align 8 %"$$sum2_8_455" = load %Uint128, %Uint128* %"$sum2_8", align 8 - %"$add_call_456" = call %Uint128 @_add_Uint128(%Uint128 %"$$sum1_7_454", %Uint128 %"$$sum2_8_455"), !dbg !36 - store %Uint128 %"$add_call_456", %Uint128* %sum_128, align 8, !dbg !36 + %"$add_call_456" = call %Uint128 @_add_Uint128(%Uint128 %"$$sum1_7_454", %Uint128 %"$$sum2_8_455"), !dbg !100 + store %Uint128 %"$add_call_456", %Uint128* %sum_128, align 8, !dbg !100 %"$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" @@ -956,6 +983,7 @@ entry: %"$consume_461" = sub i64 %"$gasrem_457", 1 store i64 %"$consume_461", i64* @_gasrem, align 8 %res19 = alloca %Uint256, align 8 + call void @llvm.dbg.declare(metadata %Uint256* %res19, metadata !101, metadata !DIExpression()), !dbg !103 %"$gasrem_462" = load i64, i64* @_gasrem, align 8 %"$gascmp_463" = icmp ugt i64 32, %"$gasrem_462" br i1 %"$gascmp_463", label %"$out_of_gas_464", label %"$have_gas_465" @@ -972,9 +1000,9 @@ entry: %"$one_1_469" = load [1 x i8], [1 x i8]* %one_1, align 1 store [1 x i8] %"$one_1_469", [1 x i8]* %"$to_uint256_one_1_468", align 1 %"$$to_uint256_one_1_468_470" = bitcast [1 x i8]* %"$to_uint256_one_1_468" to i8* - %"$to_uint256_call_471" = call %Uint256* @_bystrx_to_uint256(i8* %"$execptr_load_467", i32 1, i8* %"$$to_uint256_one_1_468_470"), !dbg !37 + %"$to_uint256_call_471" = call %Uint256* @_bystrx_to_uint256(i8* %"$execptr_load_467", i32 1, i8* %"$$to_uint256_one_1_468_470"), !dbg !104 %"$to_uint256_473" = load %Uint256, %Uint256* %"$to_uint256_call_471", align 8 - store %Uint256 %"$to_uint256_473", %Uint256* %res19, align 8, !dbg !37 + store %Uint256 %"$to_uint256_473", %Uint256* %res19, align 8, !dbg !104 %"$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" @@ -987,6 +1015,7 @@ entry: %"$consume_478" = sub i64 %"$gasrem_474", 1 store i64 %"$consume_478", i64* @_gasrem, align 8 %res20 = alloca %Uint256, align 8 + call void @llvm.dbg.declare(metadata %Uint256* %res20, metadata !105, metadata !DIExpression()), !dbg !106 %"$gasrem_479" = load i64, i64* @_gasrem, align 8 %"$gascmp_480" = icmp ugt i64 32, %"$gasrem_479" br i1 %"$gascmp_480", label %"$out_of_gas_481", label %"$have_gas_482" @@ -1003,9 +1032,9 @@ entry: %"$one_8_486" = load [8 x i8], [8 x i8]* %one_8, align 1 store [8 x i8] %"$one_8_486", [8 x i8]* %"$to_uint256_one_8_485", align 1 %"$$to_uint256_one_8_485_487" = bitcast [8 x i8]* %"$to_uint256_one_8_485" to i8* - %"$to_uint256_call_488" = call %Uint256* @_bystrx_to_uint256(i8* %"$execptr_load_484", i32 8, i8* %"$$to_uint256_one_8_485_487"), !dbg !38 + %"$to_uint256_call_488" = call %Uint256* @_bystrx_to_uint256(i8* %"$execptr_load_484", i32 8, i8* %"$$to_uint256_one_8_485_487"), !dbg !107 %"$to_uint256_490" = load %Uint256, %Uint256* %"$to_uint256_call_488", align 8 - store %Uint256 %"$to_uint256_490", %Uint256* %res20, align 8, !dbg !38 + store %Uint256 %"$to_uint256_490", %Uint256* %res20, align 8, !dbg !107 %"$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" @@ -1018,6 +1047,7 @@ entry: %"$consume_495" = sub i64 %"$gasrem_491", 1 store i64 %"$consume_495", i64* @_gasrem, align 8 %res21 = alloca %Uint256, align 8 + call void @llvm.dbg.declare(metadata %Uint256* %res21, metadata !108, metadata !DIExpression()), !dbg !109 %"$gasrem_496" = load i64, i64* @_gasrem, align 8 %"$gascmp_497" = icmp ugt i64 32, %"$gasrem_496" br i1 %"$gascmp_497", label %"$out_of_gas_498", label %"$have_gas_499" @@ -1034,9 +1064,9 @@ entry: %"$one_16_503" = load [16 x i8], [16 x i8]* %one_16, align 1 store [16 x i8] %"$one_16_503", [16 x i8]* %"$to_uint256_one_16_502", align 1 %"$$to_uint256_one_16_502_504" = bitcast [16 x i8]* %"$to_uint256_one_16_502" to i8* - %"$to_uint256_call_505" = call %Uint256* @_bystrx_to_uint256(i8* %"$execptr_load_501", i32 16, i8* %"$$to_uint256_one_16_502_504"), !dbg !39 + %"$to_uint256_call_505" = call %Uint256* @_bystrx_to_uint256(i8* %"$execptr_load_501", i32 16, i8* %"$$to_uint256_one_16_502_504"), !dbg !110 %"$to_uint256_507" = load %Uint256, %Uint256* %"$to_uint256_call_505", align 8 - store %Uint256 %"$to_uint256_507", %Uint256* %res21, align 8, !dbg !39 + store %Uint256 %"$to_uint256_507", %Uint256* %res21, align 8, !dbg !110 %"$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" @@ -1049,6 +1079,7 @@ entry: %"$consume_512" = sub i64 %"$gasrem_508", 1 store i64 %"$consume_512", i64* @_gasrem, align 8 %res22 = alloca %Uint256, align 8 + call void @llvm.dbg.declare(metadata %Uint256* %res22, metadata !111, metadata !DIExpression()), !dbg !112 %"$gasrem_513" = load i64, i64* @_gasrem, align 8 %"$gascmp_514" = icmp ugt i64 32, %"$gasrem_513" br i1 %"$gascmp_514", label %"$out_of_gas_515", label %"$have_gas_516" @@ -1065,9 +1096,9 @@ entry: %"$one_32_520" = load [32 x i8], [32 x i8]* %one_32, align 1 store [32 x i8] %"$one_32_520", [32 x i8]* %"$to_uint256_one_32_519", align 1 %"$$to_uint256_one_32_519_521" = bitcast [32 x i8]* %"$to_uint256_one_32_519" to i8* - %"$to_uint256_call_522" = call %Uint256* @_bystrx_to_uint256(i8* %"$execptr_load_518", i32 32, i8* %"$$to_uint256_one_32_519_521"), !dbg !40 + %"$to_uint256_call_522" = call %Uint256* @_bystrx_to_uint256(i8* %"$execptr_load_518", i32 32, i8* %"$$to_uint256_one_32_519_521"), !dbg !113 %"$to_uint256_524" = load %Uint256, %Uint256* %"$to_uint256_call_522", align 8 - store %Uint256 %"$to_uint256_524", %Uint256* %res22, align 8, !dbg !40 + store %Uint256 %"$to_uint256_524", %Uint256* %res22, align 8, !dbg !113 %"$gasrem_525" = load i64, i64* @_gasrem, align 8 %"$gascmp_526" = icmp ugt i64 1, %"$gasrem_525" br i1 %"$gascmp_526", label %"$out_of_gas_527", label %"$have_gas_528" @@ -1080,6 +1111,7 @@ entry: %"$consume_529" = sub i64 %"$gasrem_525", 1 store i64 %"$consume_529", i64* @_gasrem, align 8 %"$sum1_9" = alloca %Uint256, align 8 + call void @llvm.dbg.declare(metadata %Uint256* %"$sum1_9", metadata !114, metadata !DIExpression()), !dbg !115 %"$gasrem_531" = load i64, i64* @_gasrem, align 8 %"$gascmp_532" = icmp ugt i64 16, %"$gasrem_531" br i1 %"$gascmp_532", label %"$out_of_gas_533", label %"$have_gas_534" @@ -1098,9 +1130,9 @@ entry: %"$add_res20_539" = alloca %Uint256, align 8 %"$res20_540" = load %Uint256, %Uint256* %res20, align 8 store %Uint256 %"$res20_540", %Uint256* %"$add_res20_539", align 8 - %"$add_call_541" = call %Uint256* @_add_Uint256(i8* %"$execptr_load_536", %Uint256* %"$add_res19_537", %Uint256* %"$add_res20_539"), !dbg !41 + %"$add_call_541" = call %Uint256* @_add_Uint256(i8* %"$execptr_load_536", %Uint256* %"$add_res19_537", %Uint256* %"$add_res20_539"), !dbg !116 %"$add_543" = load %Uint256, %Uint256* %"$add_call_541", align 8 - store %Uint256 %"$add_543", %Uint256* %"$sum1_9", align 8, !dbg !41 + store %Uint256 %"$add_543", %Uint256* %"$sum1_9", align 8, !dbg !116 %"$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" @@ -1113,6 +1145,7 @@ entry: %"$consume_548" = sub i64 %"$gasrem_544", 1 store i64 %"$consume_548", i64* @_gasrem, align 8 %"$sum2_10" = alloca %Uint256, align 8 + call void @llvm.dbg.declare(metadata %Uint256* %"$sum2_10", metadata !117, metadata !DIExpression()), !dbg !118 %"$gasrem_550" = load i64, i64* @_gasrem, align 8 %"$gascmp_551" = icmp ugt i64 16, %"$gasrem_550" br i1 %"$gascmp_551", label %"$out_of_gas_552", label %"$have_gas_553" @@ -1131,9 +1164,9 @@ entry: %"$add_res22_558" = alloca %Uint256, align 8 %"$res22_559" = load %Uint256, %Uint256* %res22, align 8 store %Uint256 %"$res22_559", %Uint256* %"$add_res22_558", align 8 - %"$add_call_560" = call %Uint256* @_add_Uint256(i8* %"$execptr_load_555", %Uint256* %"$add_res21_556", %Uint256* %"$add_res22_558"), !dbg !42 + %"$add_call_560" = call %Uint256* @_add_Uint256(i8* %"$execptr_load_555", %Uint256* %"$add_res21_556", %Uint256* %"$add_res22_558"), !dbg !119 %"$add_562" = load %Uint256, %Uint256* %"$add_call_560", align 8 - store %Uint256 %"$add_562", %Uint256* %"$sum2_10", align 8, !dbg !42 + store %Uint256 %"$add_562", %Uint256* %"$sum2_10", align 8, !dbg !119 %"$gasrem_563" = load i64, i64* @_gasrem, align 8 %"$gascmp_564" = icmp ugt i64 1, %"$gasrem_563" br i1 %"$gascmp_564", label %"$out_of_gas_565", label %"$have_gas_566" @@ -1146,6 +1179,7 @@ entry: %"$consume_567" = sub i64 %"$gasrem_563", 1 store i64 %"$consume_567", i64* @_gasrem, align 8 %sum_256 = alloca %Uint256, align 8 + call void @llvm.dbg.declare(metadata %Uint256* %sum_256, metadata !120, metadata !DIExpression()), !dbg !121 %"$gasrem_569" = load i64, i64* @_gasrem, align 8 %"$gascmp_570" = icmp ugt i64 16, %"$gasrem_569" br i1 %"$gascmp_570", label %"$out_of_gas_571", label %"$have_gas_572" @@ -1164,9 +1198,9 @@ entry: %"$add_$sum2_10_577" = alloca %Uint256, align 8 %"$$sum2_10_578" = load %Uint256, %Uint256* %"$sum2_10", align 8 store %Uint256 %"$$sum2_10_578", %Uint256* %"$add_$sum2_10_577", align 8 - %"$add_call_579" = call %Uint256* @_add_Uint256(i8* %"$execptr_load_574", %Uint256* %"$add_$sum1_9_575", %Uint256* %"$add_$sum2_10_577"), !dbg !43 + %"$add_call_579" = call %Uint256* @_add_Uint256(i8* %"$execptr_load_574", %Uint256* %"$add_$sum1_9_575", %Uint256* %"$add_$sum2_10_577"), !dbg !122 %"$add_581" = load %Uint256, %Uint256* %"$add_call_579", align 8 - store %Uint256 %"$add_581", %Uint256* %sum_256, align 8, !dbg !43 + store %Uint256 %"$add_581", %Uint256* %sum_256, align 8, !dbg !122 %"$gasrem_582" = load i64, i64* @_gasrem, align 8 %"$gascmp_583" = icmp ugt i64 1, %"$gasrem_582" br i1 %"$gascmp_583", label %"$out_of_gas_584", label %"$have_gas_585" @@ -1179,6 +1213,7 @@ entry: %"$consume_586" = sub i64 %"$gasrem_582", 1 store i64 %"$consume_586", i64* @_gasrem, align 8 %respair1 = alloca %TName_Pair_Uint32_Uint64*, align 8 + call void @llvm.dbg.declare(metadata %TName_Pair_Uint32_Uint64** %respair1, metadata !123, metadata !DIExpression()), !dbg !126 %"$gasrem_587" = load i64, i64* @_gasrem, align 8 %"$gascmp_588" = icmp ugt i64 1, %"$gasrem_587" br i1 %"$gascmp_588", label %"$out_of_gas_589", label %"$have_gas_590" @@ -1202,7 +1237,7 @@ entry: %"$adtgep_597" = getelementptr inbounds %CName_Pair_Uint32_Uint64, %CName_Pair_Uint32_Uint64* %"$adtval_594", i32 0, i32 2 store %Uint64 %"$sum_64_593", %Uint64* %"$adtgep_597", align 8 %"$adtptr_598" = bitcast %CName_Pair_Uint32_Uint64* %"$adtval_594" to %TName_Pair_Uint32_Uint64* - store %TName_Pair_Uint32_Uint64* %"$adtptr_598", %TName_Pair_Uint32_Uint64** %respair1, align 8, !dbg !44 + store %TName_Pair_Uint32_Uint64* %"$adtptr_598", %TName_Pair_Uint32_Uint64** %respair1, align 8, !dbg !127 %"$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" @@ -1215,6 +1250,7 @@ entry: %"$consume_603" = sub i64 %"$gasrem_599", 1 store i64 %"$consume_603", i64* @_gasrem, align 8 %respair2 = alloca %TName_Pair_Uint128_Uint256*, align 8 + call void @llvm.dbg.declare(metadata %TName_Pair_Uint128_Uint256** %respair2, metadata !128, metadata !DIExpression()), !dbg !131 %"$gasrem_604" = load i64, i64* @_gasrem, align 8 %"$gascmp_605" = icmp ugt i64 1, %"$gasrem_604" br i1 %"$gascmp_605", label %"$out_of_gas_606", label %"$have_gas_607" @@ -1238,7 +1274,7 @@ entry: %"$adtgep_614" = getelementptr inbounds %CName_Pair_Uint128_Uint256, %CName_Pair_Uint128_Uint256* %"$adtval_611", i32 0, i32 2 store %Uint256 %"$sum_256_610", %Uint256* %"$adtgep_614", align 8 %"$adtptr_615" = bitcast %CName_Pair_Uint128_Uint256* %"$adtval_611" to %TName_Pair_Uint128_Uint256* - store %TName_Pair_Uint128_Uint256* %"$adtptr_615", %TName_Pair_Uint128_Uint256** %respair2, align 8, !dbg !45 + store %TName_Pair_Uint128_Uint256* %"$adtptr_615", %TName_Pair_Uint128_Uint256** %respair2, align 8, !dbg !132 %"$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" @@ -1251,6 +1287,7 @@ entry: %"$consume_620" = sub i64 %"$gasrem_616", 1 store i64 %"$consume_620", i64* @_gasrem, align 8 %restuple = alloca %"TName_Pair_Pair_(Uint32)_(Uint64)_Pair_(Uint128)_(Uint256)"*, align 8 + call void @llvm.dbg.declare(metadata %"TName_Pair_Pair_(Uint32)_(Uint64)_Pair_(Uint128)_(Uint256)"** %restuple, metadata !133, metadata !DIExpression()), !dbg !134 %"$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" @@ -1274,7 +1311,7 @@ entry: %"$adtgep_631" = getelementptr inbounds %"CName_Pair_Pair_(Uint32)_(Uint64)_Pair_(Uint128)_(Uint256)", %"CName_Pair_Pair_(Uint32)_(Uint64)_Pair_(Uint128)_(Uint256)"* %"$adtval_628", i32 0, i32 2 store %TName_Pair_Uint128_Uint256* %"$respair2_627", %TName_Pair_Uint128_Uint256** %"$adtgep_631", align 8 %"$adtptr_632" = bitcast %"CName_Pair_Pair_(Uint32)_(Uint64)_Pair_(Uint128)_(Uint256)"* %"$adtval_628" to %"TName_Pair_Pair_(Uint32)_(Uint64)_Pair_(Uint128)_(Uint256)"* - store %"TName_Pair_Pair_(Uint32)_(Uint64)_Pair_(Uint128)_(Uint256)"* %"$adtptr_632", %"TName_Pair_Pair_(Uint32)_(Uint64)_Pair_(Uint128)_(Uint256)"** %restuple, align 8, !dbg !46 + store %"TName_Pair_Pair_(Uint32)_(Uint64)_Pair_(Uint128)_(Uint256)"* %"$adtptr_632", %"TName_Pair_Pair_(Uint32)_(Uint64)_Pair_(Uint128)_(Uint256)"** %restuple, align 8, !dbg !135 %"$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" @@ -1287,11 +1324,14 @@ entry: %"$consume_637" = sub i64 %"$gasrem_633", 1 store i64 %"$consume_637", i64* @_gasrem, align 8 %"$restuple_638" = load %"TName_Pair_Pair_(Uint32)_(Uint64)_Pair_(Uint128)_(Uint256)"*, %"TName_Pair_Pair_(Uint32)_(Uint64)_Pair_(Uint128)_(Uint256)"** %restuple, align 8 - store %"TName_Pair_Pair_(Uint32)_(Uint64)_Pair_(Uint128)_(Uint256)"* %"$restuple_638", %"TName_Pair_Pair_(Uint32)_(Uint64)_Pair_(Uint128)_(Uint256)"** %"$expr_11", align 8, !dbg !47 + store %"TName_Pair_Pair_(Uint32)_(Uint64)_Pair_(Uint128)_(Uint256)"* %"$restuple_638", %"TName_Pair_Pair_(Uint32)_(Uint64)_Pair_(Uint128)_(Uint256)"** %"$expr_11", align 8, !dbg !136 %"$$expr_11_639" = load %"TName_Pair_Pair_(Uint32)_(Uint64)_Pair_(Uint128)_(Uint256)"*, %"TName_Pair_Pair_(Uint32)_(Uint64)_Pair_(Uint128)_(Uint256)"** %"$expr_11", align 8 ret %"TName_Pair_Pair_(Uint32)_(Uint64)_Pair_(Uint128)_(Uint256)"* %"$$expr_11_639" } +; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn +declare void @llvm.dbg.declare(metadata, metadata, metadata) #0 + declare %Uint32 @_bystrx_to_uint32(i8*, i32, i8*) declare %Uint32 @_add_Uint32(%Uint32, %Uint32) @@ -1321,54 +1361,145 @@ entry: ret void } +attributes #0 = { nocallback nofree nosync nounwind readnone speculatable willreturn } + !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) +!1 = distinct !DICompileUnit(language: DW_LANG_C89, file: !2, producer: "Scilla Compiler", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false) !2 = !DIFile(filename: "bystrx_uint_conversions.scilexp", directory: "codegen/expr") -!3 = !{} -!4 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !5, file: !5, type: !6, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!5 = !DIFile(filename: ".", directory: ".") -!6 = !DISubroutineType(types: !7) -!7 = !{!8} -!8 = !DIBasicType(tag: DW_TAG_unspecified_type, name: "void") -!9 = !DILocation(line: 0, scope: !4) -!10 = distinct !DISubprogram(name: "_scilla_expr_fun", linkageName: "_scilla_expr_fun", scope: !2, file: !2, line: 1, type: !6, scopeLine: 1, spFlags: DISPFlagDefinition, unit: !1, retainedNodes: !3) -!11 = !DILocation(line: 1, column: 12, scope: !10) -!12 = !DILocation(line: 2, column: 13, scope: !10) -!13 = !DILocation(line: 3, column: 13, scope: !10) -!14 = !DILocation(line: 4, column: 13, scope: !10) -!15 = !DILocation(line: 5, column: 13, scope: !10) -!16 = !DILocation(line: 6, column: 14, scope: !10) -!17 = !DILocation(line: 7, column: 14, scope: !10) -!18 = !DILocation(line: 9, column: 12, scope: !10) -!19 = !DILocation(line: 10, column: 12, scope: !10) -!20 = !DILocation(line: 11, column: 12, scope: !10) -!21 = !DILocation(line: 12, column: 13, scope: !10) -!22 = !DILocation(line: 13, column: 12, scope: !10) -!23 = !DILocation(line: 14, column: 12, scope: !10) -!24 = !DILocation(line: 15, column: 14, scope: !10) -!25 = !DILocation(line: 17, column: 13, scope: !10) -!26 = !DILocation(line: 18, column: 13, scope: !10) -!27 = !DILocation(line: 19, column: 13, scope: !10) -!28 = !DILocation(line: 20, column: 12, scope: !10) -!29 = !DILocation(line: 21, column: 14, scope: !10) -!30 = !DILocation(line: 23, column: 13, scope: !10) -!31 = !DILocation(line: 24, column: 13, scope: !10) -!32 = !DILocation(line: 25, column: 13, scope: !10) -!33 = !DILocation(line: 26, column: 13, scope: !10) -!34 = !DILocation(line: 27, column: 12, scope: !10) -!35 = !DILocation(line: 28, column: 12, scope: !10) -!36 = !DILocation(line: 29, column: 15, scope: !10) -!37 = !DILocation(line: 31, column: 13, scope: !10) -!38 = !DILocation(line: 32, column: 13, scope: !10) -!39 = !DILocation(line: 33, column: 13, scope: !10) -!40 = !DILocation(line: 34, column: 13, scope: !10) -!41 = !DILocation(line: 35, column: 12, scope: !10) -!42 = !DILocation(line: 36, column: 12, scope: !10) -!43 = !DILocation(line: 37, column: 15, scope: !10) -!44 = !DILocation(line: 39, column: 16, scope: !10) -!45 = !DILocation(line: 40, column: 16, scope: !10) -!46 = !DILocation(line: 41, column: 16, scope: !10) -!47 = !DILocation(line: 43, column: 1, scope: !10) +!3 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !4, file: !4, type: !5, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!4 = !DIFile(filename: ".", directory: ".") +!5 = !DISubroutineType(types: !6) +!6 = !{!7} +!7 = !DIBasicType(tag: DW_TAG_unspecified_type, name: "void") +!8 = !{} +!9 = !DILocation(line: 0, scope: !3) +!10 = distinct !DISubprogram(name: "_scilla_expr_fun", linkageName: "_scilla_expr_fun", scope: !2, file: !2, line: 1, type: !5, scopeLine: 1, spFlags: DISPFlagDefinition, unit: !1, retainedNodes: !8) +!11 = !DILocalVariable(name: "$expr_11", scope: !10, file: !2, line: 1, type: !12) +!12 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "Pair (Pair (Uint32) (Uint64)) (Pair (Uint128) (Uint256))", baseType: !13, size: 8, align: 8, dwarfAddressSpace: 0) +!13 = !DIBasicType(name: "Pair (Pair (Uint32) (Uint64)) (Pair (Uint128) (Uint256))", size: 8) +!14 = !DILocation(line: 1, column: 12, scope: !10) +!15 = !DILocalVariable(name: "zero", scope: !10, file: !2, line: 1, type: !16) +!16 = !DIBasicType(name: "ByStr1", size: 1) +!17 = !DILocation(line: 1, column: 5, scope: !10) +!18 = !DILocalVariable(name: "one_1", scope: !10, file: !2, line: 2, type: !16) +!19 = !DILocation(line: 2, column: 5, scope: !10) +!20 = !DILocation(line: 2, column: 13, scope: !10) +!21 = !DILocalVariable(name: "one_3", scope: !10, file: !2, line: 3, type: !22) +!22 = !DIBasicType(name: "ByStr3", size: 3) +!23 = !DILocation(line: 3, column: 5, scope: !10) +!24 = !DILocation(line: 3, column: 13, scope: !10) +!25 = !DILocalVariable(name: "one_4", scope: !10, file: !2, line: 4, type: !26) +!26 = !DIBasicType(name: "ByStr4", size: 4) +!27 = !DILocation(line: 4, column: 5, scope: !10) +!28 = !DILocation(line: 4, column: 13, scope: !10) +!29 = !DILocalVariable(name: "one_8", scope: !10, file: !2, line: 5, type: !30) +!30 = !DIBasicType(name: "ByStr8", size: 8) +!31 = !DILocation(line: 5, column: 5, scope: !10) +!32 = !DILocation(line: 5, column: 13, scope: !10) +!33 = !DILocalVariable(name: "one_16", scope: !10, file: !2, line: 6, type: !34) +!34 = !DIBasicType(name: "ByStr16", size: 16) +!35 = !DILocation(line: 6, column: 5, scope: !10) +!36 = !DILocation(line: 6, column: 14, scope: !10) +!37 = !DILocalVariable(name: "one_32", scope: !10, file: !2, line: 7, type: !38) +!38 = !DIBasicType(name: "ByStr32", size: 32) +!39 = !DILocation(line: 7, column: 5, scope: !10) +!40 = !DILocation(line: 7, column: 14, scope: !10) +!41 = !DILocalVariable(name: "res7", scope: !10, file: !2, line: 9, type: !42) +!42 = !DIBasicType(name: "Uint32", size: 4) +!43 = !DILocation(line: 9, column: 5, scope: !10) +!44 = !DILocation(line: 9, column: 12, scope: !10) +!45 = !DILocalVariable(name: "res8", scope: !10, file: !2, line: 10, type: !42) +!46 = !DILocation(line: 10, column: 5, scope: !10) +!47 = !DILocation(line: 10, column: 12, scope: !10) +!48 = !DILocalVariable(name: "res9", scope: !10, file: !2, line: 11, type: !42) +!49 = !DILocation(line: 11, column: 5, scope: !10) +!50 = !DILocation(line: 11, column: 12, scope: !10) +!51 = !DILocalVariable(name: "res10", scope: !10, file: !2, line: 12, type: !42) +!52 = !DILocation(line: 12, column: 5, scope: !10) +!53 = !DILocation(line: 12, column: 13, scope: !10) +!54 = !DILocalVariable(name: "sum1", scope: !10, file: !2, line: 13, type: !42) +!55 = !DILocation(line: 13, column: 5, scope: !10) +!56 = !DILocation(line: 13, column: 12, scope: !10) +!57 = !DILocalVariable(name: "sum2", scope: !10, file: !2, line: 14, type: !42) +!58 = !DILocation(line: 14, column: 5, scope: !10) +!59 = !DILocation(line: 14, column: 12, scope: !10) +!60 = !DILocalVariable(name: "sum_32", scope: !10, file: !2, line: 15, type: !42) +!61 = !DILocation(line: 15, column: 5, scope: !10) +!62 = !DILocation(line: 15, column: 14, scope: !10) +!63 = !DILocalVariable(name: "res12", scope: !10, file: !2, line: 17, type: !64) +!64 = !DIBasicType(name: "Uint64", size: 8) +!65 = !DILocation(line: 17, column: 5, scope: !10) +!66 = !DILocation(line: 17, column: 13, scope: !10) +!67 = !DILocalVariable(name: "res13", scope: !10, file: !2, line: 18, type: !64) +!68 = !DILocation(line: 18, column: 5, scope: !10) +!69 = !DILocation(line: 18, column: 13, scope: !10) +!70 = !DILocalVariable(name: "res14", scope: !10, file: !2, line: 19, type: !64) +!71 = !DILocation(line: 19, column: 5, scope: !10) +!72 = !DILocation(line: 19, column: 13, scope: !10) +!73 = !DILocalVariable(name: "$sum1_6", scope: !10, file: !2, line: 20, type: !64) +!74 = !DILocation(line: 20, column: 5, scope: !10) +!75 = !DILocation(line: 20, column: 12, scope: !10) +!76 = !DILocalVariable(name: "sum_64", scope: !10, file: !2, line: 21, type: !64) +!77 = !DILocation(line: 21, column: 5, scope: !10) +!78 = !DILocation(line: 21, column: 14, scope: !10) +!79 = !DILocalVariable(name: "res15", scope: !10, file: !2, line: 23, type: !80) +!80 = !DIBasicType(name: "Uint128", size: 16) +!81 = !DILocation(line: 23, column: 5, scope: !10) +!82 = !DILocation(line: 23, column: 13, scope: !10) +!83 = !DILocalVariable(name: "res16", scope: !10, file: !2, line: 24, type: !80) +!84 = !DILocation(line: 24, column: 5, scope: !10) +!85 = !DILocation(line: 24, column: 13, scope: !10) +!86 = !DILocalVariable(name: "res17", scope: !10, file: !2, line: 25, type: !80) +!87 = !DILocation(line: 25, column: 5, scope: !10) +!88 = !DILocation(line: 25, column: 13, scope: !10) +!89 = !DILocalVariable(name: "res18", scope: !10, file: !2, line: 26, type: !80) +!90 = !DILocation(line: 26, column: 5, scope: !10) +!91 = !DILocation(line: 26, column: 13, scope: !10) +!92 = !DILocalVariable(name: "$sum1_7", scope: !10, file: !2, line: 27, type: !80) +!93 = !DILocation(line: 27, column: 5, scope: !10) +!94 = !DILocation(line: 27, column: 12, scope: !10) +!95 = !DILocalVariable(name: "$sum2_8", scope: !10, file: !2, line: 28, type: !80) +!96 = !DILocation(line: 28, column: 5, scope: !10) +!97 = !DILocation(line: 28, column: 12, scope: !10) +!98 = !DILocalVariable(name: "sum_128", scope: !10, file: !2, line: 29, type: !80) +!99 = !DILocation(line: 29, column: 5, scope: !10) +!100 = !DILocation(line: 29, column: 15, scope: !10) +!101 = !DILocalVariable(name: "res19", scope: !10, file: !2, line: 31, type: !102) +!102 = !DIBasicType(name: "Uint256", size: 32) +!103 = !DILocation(line: 31, column: 5, scope: !10) +!104 = !DILocation(line: 31, column: 13, scope: !10) +!105 = !DILocalVariable(name: "res20", scope: !10, file: !2, line: 32, type: !102) +!106 = !DILocation(line: 32, column: 5, scope: !10) +!107 = !DILocation(line: 32, column: 13, scope: !10) +!108 = !DILocalVariable(name: "res21", scope: !10, file: !2, line: 33, type: !102) +!109 = !DILocation(line: 33, column: 5, scope: !10) +!110 = !DILocation(line: 33, column: 13, scope: !10) +!111 = !DILocalVariable(name: "res22", scope: !10, file: !2, line: 34, type: !102) +!112 = !DILocation(line: 34, column: 5, scope: !10) +!113 = !DILocation(line: 34, column: 13, scope: !10) +!114 = !DILocalVariable(name: "$sum1_9", scope: !10, file: !2, line: 35, type: !102) +!115 = !DILocation(line: 35, column: 5, scope: !10) +!116 = !DILocation(line: 35, column: 12, scope: !10) +!117 = !DILocalVariable(name: "$sum2_10", scope: !10, file: !2, line: 36, type: !102) +!118 = !DILocation(line: 36, column: 5, scope: !10) +!119 = !DILocation(line: 36, column: 12, scope: !10) +!120 = !DILocalVariable(name: "sum_256", scope: !10, file: !2, line: 37, type: !102) +!121 = !DILocation(line: 37, column: 5, scope: !10) +!122 = !DILocation(line: 37, column: 15, scope: !10) +!123 = !DILocalVariable(name: "respair1", scope: !10, file: !2, line: 39, type: !124) +!124 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "Pair (Uint32) (Uint64)", baseType: !125, size: 8, align: 8, dwarfAddressSpace: 0) +!125 = !DIBasicType(name: "Pair (Uint32) (Uint64)", size: 8) +!126 = !DILocation(line: 39, column: 5, scope: !10) +!127 = !DILocation(line: 39, column: 16, scope: !10) +!128 = !DILocalVariable(name: "respair2", scope: !10, file: !2, line: 40, type: !129) +!129 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "Pair (Uint128) (Uint256)", baseType: !130, size: 8, align: 8, dwarfAddressSpace: 0) +!130 = !DIBasicType(name: "Pair (Uint128) (Uint256)", size: 8) +!131 = !DILocation(line: 40, column: 5, scope: !10) +!132 = !DILocation(line: 40, column: 16, scope: !10) +!133 = !DILocalVariable(name: "restuple", scope: !10, file: !2, line: 41, type: !12) +!134 = !DILocation(line: 41, column: 5, scope: !10) +!135 = !DILocation(line: 41, column: 16, scope: !10) +!136 = !DILocation(line: 43, column: 1, scope: !10) diff --git a/testsuite/expr/bystrx_uint_conversions.ll b/testsuite/expr/bystrx_uint_conversions.ll index 22e66f6d..9a34ce86 100644 --- a/testsuite/expr/bystrx_uint_conversions.ll +++ b/testsuite/expr/bystrx_uint_conversions.ll @@ -44,7 +44,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-pc-linux-gnu" +target triple = "x86_64-unknown-linux-gnu" %"$TyDescrTy_PrimTyp_12" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/testsuite/expr/church_nat.dbg.ll b/testsuite/expr/church_nat.dbg.ll index 4ec92398..4f1aa2e3 100644 --- a/testsuite/expr/church_nat.dbg.ll +++ b/testsuite/expr/church_nat.dbg.ll @@ -48,14 +48,14 @@ ; 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-pc-linux-gnu" +target triple = "x86_64-unknown-linux-gnu" %"$TyDescrTy_PrimTyp_79" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } %Int32 = type { i32 } -%"$ParamDescr_969" = type { %ParamDescrString, %_TyDescrTy_Typ* } +%"$ParamDescr_973" = type { %ParamDescrString, %_TyDescrTy_Typ* } %ParamDescrString = type { i8*, i32 } -%"$TransDescr_970" = type { %ParamDescrString, i32, %"$ParamDescr_969"* } +%"$TransDescr_974" = type { %ParamDescrString, i32, %"$ParamDescr_973"* } %"$$fundef_77_env_116" = type { %Uint32 } %Uint32 = type { i32 } %"$$fundef_75_env_117" = type {} @@ -122,1121 +122,1147 @@ target triple = "x86_64-pc-linux-gnu" @"$_gas_charge_accPairUtils_4" = global %Int32 zeroinitializer @_tydescr_table = constant [15 x %_TyDescrTy_Typ*] [%_TyDescrTy_Typ* @"$TyDescr_Event_103", %_TyDescrTy_Typ* @"$TyDescr_Int64_85", %_TyDescrTy_Typ* @"$TyDescr_Uint256_95", %_TyDescrTy_Typ* @"$TyDescr_Uint32_83", %_TyDescrTy_Typ* @"$TyDescr_Uint64_87", %_TyDescrTy_Typ* @"$TyDescr_Bnum_99", %_TyDescrTy_Typ* @"$TyDescr_Uint128_91", %_TyDescrTy_Typ* @"$TyDescr_Exception_105", %_TyDescrTy_Typ* @"$TyDescr_String_97", %_TyDescrTy_Typ* @"$TyDescr_Int256_93", %_TyDescrTy_Typ* @"$TyDescr_Int128_89", %_TyDescrTy_Typ* @"$TyDescr_Bystr_109", %_TyDescrTy_Typ* @"$TyDescr_ReplicateContr_107", %_TyDescrTy_Typ* @"$TyDescr_Message_101", %_TyDescrTy_Typ* @"$TyDescr_Int32_81"] @_tydescr_table_length = constant i32 15 -@_contract_parameters = constant [0 x %"$ParamDescr_969"] zeroinitializer +@_contract_parameters = constant [0 x %"$ParamDescr_973"] zeroinitializer @_contract_parameters_length = constant i32 0 -@_transition_parameters = constant [0 x %"$TransDescr_970"] zeroinitializer +@_transition_parameters = constant [0 x %"$TransDescr_974"] zeroinitializer @_transition_parameters_length = constant i32 0 -define internal %Uint32 @"$fundef_77"(%"$$fundef_77_env_116"* %0, %Uint32 %1) !dbg !4 { +define internal %Uint32 @"$fundef_77"(%"$$fundef_77_env_116"* %0, %Uint32 %1) !dbg !3 { entry: - %"$$fundef_77_env_one_691" = getelementptr inbounds %"$$fundef_77_env_116", %"$$fundef_77_env_116"* %0, i32 0, i32 0 - %"$one_envload_692" = load %Uint32, %Uint32* %"$$fundef_77_env_one_691", align 4 + %"$x_704" = alloca %Uint32, align 8 + store %Uint32 %1, %Uint32* %"$x_704", align 4 + call void @llvm.dbg.declare(metadata %Uint32* %"$x_704", metadata !8, metadata !DIExpression()), !dbg !10 + %"$$fundef_77_env_one_694" = getelementptr inbounds %"$$fundef_77_env_116", %"$$fundef_77_env_116"* %0, i32 0, i32 0 + %"$one_envload_695" = load %Uint32, %Uint32* %"$$fundef_77_env_one_694", align 4 %one = alloca %Uint32, align 8 - store %Uint32 %"$one_envload_692", %Uint32* %one, align 4 + store %Uint32 %"$one_envload_695", %Uint32* %one, align 4 %"$retval_78" = alloca %Uint32, align 8 - %"$gasrem_693" = load i64, i64* @_gasrem, align 8 - %"$gascmp_694" = icmp ugt i64 4, %"$gasrem_693" - br i1 %"$gascmp_694", label %"$out_of_gas_695", label %"$have_gas_696" - -"$out_of_gas_695": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_696" - -"$have_gas_696": ; preds = %"$out_of_gas_695", %entry - %"$consume_697" = sub i64 %"$gasrem_693", 4 - store i64 %"$consume_697", i64* @_gasrem, align 8 - %"$one_698" = load %Uint32, %Uint32* %one, align 4 - %"$add_call_699" = call %Uint32 @_add_Uint32(%Uint32 %"$one_698", %Uint32 %1), !dbg !8 - store %Uint32 %"$add_call_699", %Uint32* %"$retval_78", align 4, !dbg !8 - %"$$retval_78_700" = load %Uint32, %Uint32* %"$retval_78", align 4 - ret %Uint32 %"$$retval_78_700" + call void @llvm.dbg.declare(metadata %Uint32* %"$retval_78", metadata !11, metadata !DIExpression()), !dbg !12 + %"$gasrem_696" = load i64, i64* @_gasrem, align 8 + %"$gascmp_697" = icmp ugt i64 4, %"$gasrem_696" + br i1 %"$gascmp_697", label %"$out_of_gas_698", label %"$have_gas_699" + +"$out_of_gas_698": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_699" + +"$have_gas_699": ; preds = %"$out_of_gas_698", %entry + %"$consume_700" = sub i64 %"$gasrem_696", 4 + store i64 %"$consume_700", i64* @_gasrem, align 8 + %"$one_701" = load %Uint32, %Uint32* %one, align 4 + %"$add_call_702" = call %Uint32 @_add_Uint32(%Uint32 %"$one_701", %Uint32 %1), !dbg !12 + store %Uint32 %"$add_call_702", %Uint32* %"$retval_78", align 4, !dbg !12 + %"$$retval_78_703" = load %Uint32, %Uint32* %"$retval_78", align 4 + ret %Uint32 %"$$retval_78_703" } -define internal %Uint32 @"$fundef_75"(%"$$fundef_75_env_117"* %0, { i8*, i8* }* %1) !dbg !9 { +define internal %Uint32 @"$fundef_75"(%"$$fundef_75_env_117"* %0, { i8*, i8* }* %1) !dbg !13 { entry: %"$retval_76" = alloca %Uint32, 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" + call void @llvm.dbg.declare(metadata %Uint32* %"$retval_76", metadata !14, metadata !DIExpression()), !dbg !15 + %"$gasrem_625" = load i64, i64* @_gasrem, align 8 + %"$gascmp_626" = icmp ugt i64 1, %"$gasrem_625" + br i1 %"$gascmp_626", label %"$out_of_gas_627", label %"$have_gas_628" -"$out_of_gas_624": ; preds = %entry +"$out_of_gas_627": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_625" + br label %"$have_gas_628" -"$have_gas_625": ; preds = %"$out_of_gas_624", %entry - %"$consume_626" = sub i64 %"$gasrem_622", 1 - store i64 %"$consume_626", i64* @_gasrem, align 8 +"$have_gas_628": ; preds = %"$out_of_gas_627", %entry + %"$consume_629" = sub i64 %"$gasrem_625", 1 + store i64 %"$consume_629", i64* @_gasrem, align 8 %zero = 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" + call void @llvm.dbg.declare(metadata %Uint32* %zero, metadata !16, metadata !DIExpression()), !dbg !17 + %"$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_629": ; preds = %"$have_gas_625" +"$out_of_gas_632": ; preds = %"$have_gas_628" call void @_out_of_gas() - br label %"$have_gas_630" + br label %"$have_gas_633" -"$have_gas_630": ; preds = %"$out_of_gas_629", %"$have_gas_625" - %"$consume_631" = sub i64 %"$gasrem_627", 1 - store i64 %"$consume_631", i64* @_gasrem, align 8 - store %Uint32 zeroinitializer, %Uint32* %zero, align 4, !dbg !10 - %"$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" +"$have_gas_633": ; preds = %"$out_of_gas_632", %"$have_gas_628" + %"$consume_634" = sub i64 %"$gasrem_630", 1 + store i64 %"$consume_634", i64* @_gasrem, align 8 + store %Uint32 zeroinitializer, %Uint32* %zero, align 4, !dbg !18 + %"$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_634": ; preds = %"$have_gas_630" +"$out_of_gas_637": ; preds = %"$have_gas_633" call void @_out_of_gas() - br label %"$have_gas_635" + br label %"$have_gas_638" -"$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 +"$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 %one = alloca %Uint32, 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" + call void @llvm.dbg.declare(metadata %Uint32* %one, metadata !19, metadata !DIExpression()), !dbg !20 + %"$gasrem_640" = load i64, i64* @_gasrem, align 8 + %"$gascmp_641" = icmp ugt i64 1, %"$gasrem_640" + br i1 %"$gascmp_641", label %"$out_of_gas_642", label %"$have_gas_643" -"$out_of_gas_639": ; preds = %"$have_gas_635" +"$out_of_gas_642": ; preds = %"$have_gas_638" call void @_out_of_gas() - br label %"$have_gas_640" + br label %"$have_gas_643" -"$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 - store %Uint32 { i32 1 }, %Uint32* %one, align 4, !dbg !11 - %"$gasrem_642" = load i64, i64* @_gasrem, align 8 - %"$gascmp_643" = icmp ugt i64 1, %"$gasrem_642" - br i1 %"$gascmp_643", label %"$out_of_gas_644", label %"$have_gas_645" +"$have_gas_643": ; preds = %"$out_of_gas_642", %"$have_gas_638" + %"$consume_644" = sub i64 %"$gasrem_640", 1 + store i64 %"$consume_644", i64* @_gasrem, align 8 + store %Uint32 { i32 1 }, %Uint32* %one, align 4, !dbg !21 + %"$gasrem_645" = load i64, i64* @_gasrem, align 8 + %"$gascmp_646" = icmp ugt i64 1, %"$gasrem_645" + br i1 %"$gascmp_646", label %"$out_of_gas_647", label %"$have_gas_648" -"$out_of_gas_644": ; preds = %"$have_gas_640" +"$out_of_gas_647": ; preds = %"$have_gas_643" call void @_out_of_gas() - br label %"$have_gas_645" + br label %"$have_gas_648" -"$have_gas_645": ; preds = %"$out_of_gas_644", %"$have_gas_640" - %"$consume_646" = sub i64 %"$gasrem_642", 1 - store i64 %"$consume_646", i64* @_gasrem, align 8 +"$have_gas_648": ; preds = %"$out_of_gas_647", %"$have_gas_643" + %"$consume_649" = sub i64 %"$gasrem_645", 1 + store i64 %"$consume_649", i64* @_gasrem, align 8 %add1 = alloca { %Uint32 (i8*, %Uint32)*, i8* }, align 8 - %"$gasrem_647" = load i64, i64* @_gasrem, align 8 - %"$gascmp_648" = icmp ugt i64 1, %"$gasrem_647" - br i1 %"$gascmp_648", label %"$out_of_gas_649", label %"$have_gas_650" - -"$out_of_gas_649": ; preds = %"$have_gas_645" - call void @_out_of_gas() - br label %"$have_gas_650" - -"$have_gas_650": ; preds = %"$out_of_gas_649", %"$have_gas_645" - %"$consume_651" = sub i64 %"$gasrem_647", 1 - store i64 %"$consume_651", i64* @_gasrem, align 8 - %"$$fundef_77_envp_652_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_77_envp_652_salloc" = call i8* @_salloc(i8* %"$$fundef_77_envp_652_load", i64 4) - %"$$fundef_77_envp_652" = bitcast i8* %"$$fundef_77_envp_652_salloc" to %"$$fundef_77_env_116"* - %"$$fundef_77_env_voidp_654" = bitcast %"$$fundef_77_env_116"* %"$$fundef_77_envp_652" to i8* - %"$$fundef_77_cloval_655" = insertvalue { %Uint32 (i8*, %Uint32)*, i8* } { %Uint32 (i8*, %Uint32)* bitcast (%Uint32 (%"$$fundef_77_env_116"*, %Uint32)* @"$fundef_77" to %Uint32 (i8*, %Uint32)*), i8* undef }, i8* %"$$fundef_77_env_voidp_654", 1 - %"$$fundef_77_env_one_656" = getelementptr inbounds %"$$fundef_77_env_116", %"$$fundef_77_env_116"* %"$$fundef_77_envp_652", i32 0, i32 0 - %"$one_657" = load %Uint32, %Uint32* %one, align 4 - store %Uint32 %"$one_657", %Uint32* %"$$fundef_77_env_one_656", align 4 - store { %Uint32 (i8*, %Uint32)*, i8* } %"$$fundef_77_cloval_655", { %Uint32 (i8*, %Uint32)*, i8* }* %add1, align 8, !dbg !12 - %"$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" - -"$out_of_gas_660": ; preds = %"$have_gas_650" - call void @_out_of_gas() - br label %"$have_gas_661" - -"$have_gas_661": ; preds = %"$out_of_gas_660", %"$have_gas_650" - %"$consume_662" = sub i64 %"$gasrem_658", 1 - store i64 %"$consume_662", i64* @_gasrem, 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_648" + call void @_out_of_gas() + br label %"$have_gas_653" + +"$have_gas_653": ; preds = %"$out_of_gas_652", %"$have_gas_648" + %"$consume_654" = sub i64 %"$gasrem_650", 1 + store i64 %"$consume_654", i64* @_gasrem, align 8 + %"$$fundef_77_envp_655_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_77_envp_655_salloc" = call i8* @_salloc(i8* %"$$fundef_77_envp_655_load", i64 4) + %"$$fundef_77_envp_655" = bitcast i8* %"$$fundef_77_envp_655_salloc" to %"$$fundef_77_env_116"* + %"$$fundef_77_env_voidp_657" = bitcast %"$$fundef_77_env_116"* %"$$fundef_77_envp_655" to i8* + %"$$fundef_77_cloval_658" = insertvalue { %Uint32 (i8*, %Uint32)*, i8* } { %Uint32 (i8*, %Uint32)* bitcast (%Uint32 (%"$$fundef_77_env_116"*, %Uint32)* @"$fundef_77" to %Uint32 (i8*, %Uint32)*), i8* undef }, i8* %"$$fundef_77_env_voidp_657", 1 + %"$$fundef_77_env_one_659" = getelementptr inbounds %"$$fundef_77_env_116", %"$$fundef_77_env_116"* %"$$fundef_77_envp_655", i32 0, i32 0 + %"$one_660" = load %Uint32, %Uint32* %one, align 4 + store %Uint32 %"$one_660", %Uint32* %"$$fundef_77_env_one_659", align 4 + store { %Uint32 (i8*, %Uint32)*, i8* } %"$$fundef_77_cloval_658", { %Uint32 (i8*, %Uint32)*, i8* }* %add1, align 8, !dbg !22 + %"$gasrem_661" = load i64, i64* @_gasrem, align 8 + %"$gascmp_662" = icmp ugt i64 1, %"$gasrem_661" + br i1 %"$gascmp_662", label %"$out_of_gas_663", label %"$have_gas_664" + +"$out_of_gas_663": ; preds = %"$have_gas_653" + call void @_out_of_gas() + br label %"$have_gas_664" + +"$have_gas_664": ; preds = %"$out_of_gas_663", %"$have_gas_653" + %"$consume_665" = sub i64 %"$gasrem_661", 1 + store i64 %"$consume_665", i64* @_gasrem, align 8 %c32 = alloca { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, align 8 - %"$gasrem_663" = load i64, i64* @_gasrem, align 8 - %"$gascmp_664" = icmp ugt i64 1, %"$gasrem_663" - br i1 %"$gascmp_664", label %"$out_of_gas_665", label %"$have_gas_666" - -"$out_of_gas_665": ; preds = %"$have_gas_661" - call void @_out_of_gas() - br label %"$have_gas_666" - -"$have_gas_666": ; preds = %"$out_of_gas_665", %"$have_gas_661" - %"$consume_667" = sub i64 %"$gasrem_663", 1 - store i64 %"$consume_667", i64* @_gasrem, align 8 - %"$c_668" = getelementptr { i8*, i8* }, { i8*, i8* }* %1, i32 0 - %"$c_669" = bitcast { i8*, i8* }* %"$c_668" to { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* }* - %"$c_670" = 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_669", align 8 - %"$c_fptr_671" = extractvalue { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* } %"$c_670", 0 - %"$c_envptr_672" = extractvalue { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* } %"$c_670", 1 - %"$c_call_673" = call { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$c_fptr_671"(i8* %"$c_envptr_672"), !dbg !13 - store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$c_call_673", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %c32, align 8, !dbg !14 - %"$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_666" - call void @_out_of_gas() - br label %"$have_gas_677" - -"$have_gas_677": ; preds = %"$out_of_gas_676", %"$have_gas_666" - %"$consume_678" = sub i64 %"$gasrem_674", 1 - store i64 %"$consume_678", i64* @_gasrem, 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_664" + call void @_out_of_gas() + br label %"$have_gas_669" + +"$have_gas_669": ; preds = %"$out_of_gas_668", %"$have_gas_664" + %"$consume_670" = sub i64 %"$gasrem_666", 1 + store i64 %"$consume_670", i64* @_gasrem, align 8 + %"$c_671" = getelementptr { i8*, i8* }, { i8*, i8* }* %1, i32 0 + %"$c_672" = bitcast { i8*, i8* }* %"$c_671" to { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* }* + %"$c_673" = 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_672", align 8 + %"$c_fptr_674" = extractvalue { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* } %"$c_673", 0 + %"$c_envptr_675" = extractvalue { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* } %"$c_673", 1 + %"$c_call_676" = call { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$c_fptr_674"(i8* %"$c_envptr_675"), !dbg !23 + store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$c_call_676", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %c32, align 8, !dbg !24 + %"$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_679": ; preds = %"$have_gas_669" + call void @_out_of_gas() + br label %"$have_gas_680" + +"$have_gas_680": ; preds = %"$out_of_gas_679", %"$have_gas_669" + %"$consume_681" = sub i64 %"$gasrem_677", 1 + store i64 %"$consume_681", i64* @_gasrem, align 8 %"$c32_15" = alloca { %Uint32 (i8*, %Uint32)*, i8* }, align 8 - %"$c32_679" = 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_680" = extractvalue { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$c32_679", 0 - %"$c32_envptr_681" = extractvalue { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$c32_679", 1 - %"$add1_682" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %add1, align 8 - %"$c32_call_683" = call { %Uint32 (i8*, %Uint32)*, i8* } %"$c32_fptr_680"(i8* %"$c32_envptr_681", { %Uint32 (i8*, %Uint32)*, i8* } %"$add1_682"), !dbg !15 - store { %Uint32 (i8*, %Uint32)*, i8* } %"$c32_call_683", { %Uint32 (i8*, %Uint32)*, i8* }* %"$c32_15", align 8, !dbg !15 + %"$c32_682" = 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_683" = extractvalue { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$c32_682", 0 + %"$c32_envptr_684" = extractvalue { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$c32_682", 1 + %"$add1_685" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %add1, align 8 + %"$c32_call_686" = call { %Uint32 (i8*, %Uint32)*, i8* } %"$c32_fptr_683"(i8* %"$c32_envptr_684", { %Uint32 (i8*, %Uint32)*, i8* } %"$add1_685"), !dbg !25 + store { %Uint32 (i8*, %Uint32)*, i8* } %"$c32_call_686", { %Uint32 (i8*, %Uint32)*, i8* }* %"$c32_15", align 8, !dbg !25 %"$c32_16" = alloca %Uint32, align 8 - %"$$c32_15_684" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %"$c32_15", align 8 - %"$$c32_15_fptr_685" = extractvalue { %Uint32 (i8*, %Uint32)*, i8* } %"$$c32_15_684", 0 - %"$$c32_15_envptr_686" = extractvalue { %Uint32 (i8*, %Uint32)*, i8* } %"$$c32_15_684", 1 - %"$zero_687" = load %Uint32, %Uint32* %zero, align 4 - %"$$c32_15_call_688" = call %Uint32 %"$$c32_15_fptr_685"(i8* %"$$c32_15_envptr_686", %Uint32 %"$zero_687"), !dbg !15 - store %Uint32 %"$$c32_15_call_688", %Uint32* %"$c32_16", align 4, !dbg !15 - %"$$c32_16_689" = load %Uint32, %Uint32* %"$c32_16", align 4 - store %Uint32 %"$$c32_16_689", %Uint32* %"$retval_76", align 4, !dbg !15 - %"$$retval_76_690" = load %Uint32, %Uint32* %"$retval_76", align 4 - ret %Uint32 %"$$retval_76_690" + call void @llvm.dbg.declare(metadata %Uint32* %"$c32_16", metadata !26, metadata !DIExpression()), !dbg !25 + %"$$c32_15_687" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %"$c32_15", align 8 + %"$$c32_15_fptr_688" = extractvalue { %Uint32 (i8*, %Uint32)*, i8* } %"$$c32_15_687", 0 + %"$$c32_15_envptr_689" = extractvalue { %Uint32 (i8*, %Uint32)*, i8* } %"$$c32_15_687", 1 + %"$zero_690" = load %Uint32, %Uint32* %zero, align 4 + %"$$c32_15_call_691" = call %Uint32 %"$$c32_15_fptr_688"(i8* %"$$c32_15_envptr_689", %Uint32 %"$zero_690"), !dbg !25 + store %Uint32 %"$$c32_15_call_691", %Uint32* %"$c32_16", align 4, !dbg !25 + %"$$c32_16_692" = load %Uint32, %Uint32* %"$c32_16", align 4 + store %Uint32 %"$$c32_16_692", %Uint32* %"$retval_76", align 4, !dbg !25 + %"$$retval_76_693" = load %Uint32, %Uint32* %"$retval_76", align 4 + ret %Uint32 %"$$retval_76_693" } -define internal { i8*, i8* }* @"$fundef_73"(%"$$fundef_73_env_118"* %0, { i8*, i8* }* %1) !dbg !16 { +define internal { i8*, i8* }* @"$fundef_73"(%"$$fundef_73_env_118"* %0, { i8*, i8* }* %1) !dbg !27 { entry: - %"$$fundef_73_env_c0_567" = getelementptr inbounds %"$$fundef_73_env_118", %"$$fundef_73_env_118"* %0, i32 0, i32 0 - %"$c0_envload_568" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_73_env_c0_567", align 8 + %"$$fundef_73_env_c0_570" = getelementptr inbounds %"$$fundef_73_env_118", %"$$fundef_73_env_118"* %0, i32 0, i32 0 + %"$c0_envload_571" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_73_env_c0_570", align 8 %c0 = alloca { i8*, i8* }*, align 8 - store { i8*, i8* }* %"$c0_envload_568", { i8*, i8* }** %c0, align 8 - %"$$fundef_73_env_cadd_569" = getelementptr inbounds %"$$fundef_73_env_118", %"$$fundef_73_env_118"* %0, i32 0, i32 1 - %"$cadd_envload_570" = load { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* }, { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* }* %"$$fundef_73_env_cadd_569", align 8 + store { i8*, i8* }* %"$c0_envload_571", { i8*, i8* }** %c0, align 8 + %"$$fundef_73_env_cadd_572" = getelementptr inbounds %"$$fundef_73_env_118", %"$$fundef_73_env_118"* %0, i32 0, i32 1 + %"$cadd_envload_573" = load { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* }, { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* }* %"$$fundef_73_env_cadd_572", 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_570", { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* }* %cadd, align 8 - %"$$fundef_73_env_m_571" = getelementptr inbounds %"$$fundef_73_env_118", %"$$fundef_73_env_118"* %0, i32 0, i32 2 - %"$m_envload_572" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_73_env_m_571", align 8 + store { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* } %"$cadd_envload_573", { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* }* %cadd, align 8 + %"$$fundef_73_env_m_574" = getelementptr inbounds %"$$fundef_73_env_118", %"$$fundef_73_env_118"* %0, i32 0, i32 2 + %"$m_envload_575" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_73_env_m_574", align 8 %m = alloca { i8*, i8* }*, align 8 - store { i8*, i8* }* %"$m_envload_572", { i8*, i8* }** %m, align 8 + store { i8*, i8* }* %"$m_envload_575", { i8*, i8* }** %m, align 8 %"$retval_74" = alloca { 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_576" = load i64, i64* @_gasrem, align 8 + %"$gascmp_577" = icmp ugt i64 1, %"$gasrem_576" + br i1 %"$gascmp_577", label %"$out_of_gas_578", label %"$have_gas_579" -"$out_of_gas_575": ; preds = %entry +"$out_of_gas_578": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_576" + br label %"$have_gas_579" -"$have_gas_576": ; preds = %"$out_of_gas_575", %entry - %"$consume_577" = sub i64 %"$gasrem_573", 1 - store i64 %"$consume_577", i64* @_gasrem, align 8 +"$have_gas_579": ; preds = %"$out_of_gas_578", %entry + %"$consume_580" = sub i64 %"$gasrem_576", 1 + store i64 %"$consume_580", i64* @_gasrem, align 8 %cadd_m = alloca { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }, 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" + %"$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_580": ; preds = %"$have_gas_576" +"$out_of_gas_583": ; preds = %"$have_gas_579" call void @_out_of_gas() - br label %"$have_gas_581" + br label %"$have_gas_584" -"$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 +"$have_gas_584": ; preds = %"$out_of_gas_583", %"$have_gas_579" + %"$consume_585" = sub i64 %"$gasrem_581", 1 + store i64 %"$consume_585", i64* @_gasrem, align 8 %"$cadd_12" = alloca { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }, align 8 - %"$cadd_583" = 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_584" = extractvalue { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* } %"$cadd_583", 0 - %"$cadd_envptr_585" = extractvalue { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* } %"$cadd_583", 1 - %"$m_586" = load { i8*, i8* }*, { i8*, i8* }** %m, align 8 - %"$cadd_call_587" = call { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$cadd_fptr_584"(i8* %"$cadd_envptr_585", { i8*, i8* }* %"$m_586"), !dbg !17 - store { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$cadd_call_587", { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %"$cadd_12", align 8, !dbg !17 - %"$$cadd_12_588" = load { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %"$cadd_12", align 8 - store { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$$cadd_12_588", { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %cadd_m, align 8, !dbg !17 - %"$gasrem_589" = load i64, i64* @_gasrem, align 8 - %"$gascmp_590" = icmp ugt i64 1, %"$gasrem_589" - br i1 %"$gascmp_590", label %"$out_of_gas_591", label %"$have_gas_592" - -"$out_of_gas_591": ; preds = %"$have_gas_581" - call void @_out_of_gas() - br label %"$have_gas_592" - -"$have_gas_592": ; preds = %"$out_of_gas_591", %"$have_gas_581" - %"$consume_593" = sub i64 %"$gasrem_589", 1 - store i64 %"$consume_593", i64* @_gasrem, align 8 + %"$cadd_586" = 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_587" = extractvalue { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* } %"$cadd_586", 0 + %"$cadd_envptr_588" = extractvalue { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* } %"$cadd_586", 1 + %"$m_589" = load { i8*, i8* }*, { i8*, i8* }** %m, align 8 + %"$cadd_call_590" = call { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$cadd_fptr_587"(i8* %"$cadd_envptr_588", { i8*, i8* }* %"$m_589"), !dbg !28 + store { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$cadd_call_590", { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %"$cadd_12", align 8, !dbg !28 + %"$$cadd_12_591" = load { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %"$cadd_12", align 8 + store { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$$cadd_12_591", { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %cadd_m, align 8, !dbg !28 + %"$gasrem_592" = load i64, i64* @_gasrem, align 8 + %"$gascmp_593" = icmp ugt i64 1, %"$gasrem_592" + br i1 %"$gascmp_593", label %"$out_of_gas_594", label %"$have_gas_595" + +"$out_of_gas_594": ; preds = %"$have_gas_584" + call void @_out_of_gas() + br label %"$have_gas_595" + +"$have_gas_595": ; preds = %"$out_of_gas_594", %"$have_gas_584" + %"$consume_596" = sub i64 %"$gasrem_592", 1 + store i64 %"$consume_596", i64* @_gasrem, align 8 %nI = alloca { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, 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 = %"$have_gas_592" - call void @_out_of_gas() - br label %"$have_gas_597" - -"$have_gas_597": ; preds = %"$out_of_gas_596", %"$have_gas_592" - %"$consume_598" = sub i64 %"$gasrem_594", 1 - store i64 %"$consume_598", i64* @_gasrem, align 8 - %"$n_599" = getelementptr { i8*, i8* }, { i8*, i8* }* %1, i32 1 - %"$n_600" = bitcast { i8*, i8* }* %"$n_599" to { { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } (i8*)*, i8* }* - %"$n_601" = 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_600", align 8 - %"$n_fptr_602" = extractvalue { { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } (i8*)*, i8* } %"$n_601", 0 - %"$n_envptr_603" = extractvalue { { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } (i8*)*, i8* } %"$n_601", 1 - %"$n_call_604" = call { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } %"$n_fptr_602"(i8* %"$n_envptr_603"), !dbg !18 - store { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } %"$n_call_604", { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* }* %nI, align 8, !dbg !19 - %"$gasrem_605" = load i64, i64* @_gasrem, align 8 - %"$gascmp_606" = icmp ugt i64 1, %"$gasrem_605" - br i1 %"$gascmp_606", label %"$out_of_gas_607", label %"$have_gas_608" - -"$out_of_gas_607": ; preds = %"$have_gas_597" - call void @_out_of_gas() - br label %"$have_gas_608" - -"$have_gas_608": ; preds = %"$out_of_gas_607", %"$have_gas_597" - %"$consume_609" = sub i64 %"$gasrem_605", 1 - store i64 %"$consume_609", i64* @_gasrem, 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_595" + call void @_out_of_gas() + br label %"$have_gas_600" + +"$have_gas_600": ; preds = %"$out_of_gas_599", %"$have_gas_595" + %"$consume_601" = sub i64 %"$gasrem_597", 1 + store i64 %"$consume_601", i64* @_gasrem, align 8 + %"$n_602" = getelementptr { i8*, i8* }, { i8*, i8* }* %1, i32 1 + %"$n_603" = bitcast { i8*, i8* }* %"$n_602" to { { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } (i8*)*, i8* }* + %"$n_604" = 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_603", align 8 + %"$n_fptr_605" = extractvalue { { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } (i8*)*, i8* } %"$n_604", 0 + %"$n_envptr_606" = extractvalue { { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } (i8*)*, i8* } %"$n_604", 1 + %"$n_call_607" = call { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } %"$n_fptr_605"(i8* %"$n_envptr_606"), !dbg !29 + store { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } %"$n_call_607", { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* }* %nI, align 8, !dbg !30 + %"$gasrem_608" = load i64, i64* @_gasrem, align 8 + %"$gascmp_609" = icmp ugt i64 1, %"$gasrem_608" + br i1 %"$gascmp_609", label %"$out_of_gas_610", label %"$have_gas_611" + +"$out_of_gas_610": ; preds = %"$have_gas_600" + call void @_out_of_gas() + br label %"$have_gas_611" + +"$have_gas_611": ; preds = %"$out_of_gas_610", %"$have_gas_600" + %"$consume_612" = sub i64 %"$gasrem_608", 1 + store i64 %"$consume_612", i64* @_gasrem, align 8 %"$nI_13" = alloca { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }, align 8 - %"$nI_610" = 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_611" = extractvalue { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } %"$nI_610", 0 - %"$nI_envptr_612" = extractvalue { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } %"$nI_610", 1 - %"$cadd_m_613" = load { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %cadd_m, align 8 - %"$nI_call_614" = call { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$nI_fptr_611"(i8* %"$nI_envptr_612", { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$cadd_m_613"), !dbg !20 - store { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$nI_call_614", { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %"$nI_13", align 8, !dbg !20 + %"$nI_613" = 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_614" = extractvalue { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } %"$nI_613", 0 + %"$nI_envptr_615" = extractvalue { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } %"$nI_613", 1 + %"$cadd_m_616" = load { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %cadd_m, align 8 + %"$nI_call_617" = call { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$nI_fptr_614"(i8* %"$nI_envptr_615", { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$cadd_m_616"), !dbg !31 + store { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$nI_call_617", { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %"$nI_13", align 8, !dbg !31 %"$nI_14" = alloca { i8*, i8* }*, align 8 - %"$$nI_13_615" = load { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %"$nI_13", align 8 - %"$$nI_13_fptr_616" = extractvalue { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$$nI_13_615", 0 - %"$$nI_13_envptr_617" = extractvalue { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$$nI_13_615", 1 - %"$c0_618" = load { i8*, i8* }*, { i8*, i8* }** %c0, align 8 - %"$$nI_13_call_619" = call { i8*, i8* }* %"$$nI_13_fptr_616"(i8* %"$$nI_13_envptr_617", { i8*, i8* }* %"$c0_618"), !dbg !20 - store { i8*, i8* }* %"$$nI_13_call_619", { i8*, i8* }** %"$nI_14", align 8, !dbg !20 - %"$$nI_14_620" = load { i8*, i8* }*, { i8*, i8* }** %"$nI_14", align 8 - store { i8*, i8* }* %"$$nI_14_620", { i8*, i8* }** %"$retval_74", align 8, !dbg !20 - %"$$retval_74_621" = load { i8*, i8* }*, { i8*, i8* }** %"$retval_74", align 8 - ret { i8*, i8* }* %"$$retval_74_621" + %"$$nI_13_618" = load { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %"$nI_13", align 8 + %"$$nI_13_fptr_619" = extractvalue { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$$nI_13_618", 0 + %"$$nI_13_envptr_620" = extractvalue { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$$nI_13_618", 1 + %"$c0_621" = load { i8*, i8* }*, { i8*, i8* }** %c0, align 8 + %"$$nI_13_call_622" = call { i8*, i8* }* %"$$nI_13_fptr_619"(i8* %"$$nI_13_envptr_620", { i8*, i8* }* %"$c0_621"), !dbg !31 + store { i8*, i8* }* %"$$nI_13_call_622", { i8*, i8* }** %"$nI_14", align 8, !dbg !31 + %"$$nI_14_623" = load { i8*, i8* }*, { i8*, i8* }** %"$nI_14", align 8 + store { i8*, i8* }* %"$$nI_14_623", { i8*, i8* }** %"$retval_74", align 8, !dbg !31 + %"$$retval_74_624" = load { i8*, i8* }*, { i8*, i8* }** %"$retval_74", align 8 + ret { i8*, i8* }* %"$$retval_74_624" } -define internal { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } @"$fundef_71"(%"$$fundef_71_env_119"* %0, { i8*, i8* }* %1) !dbg !21 { +define internal { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } @"$fundef_71"(%"$$fundef_71_env_119"* %0, { i8*, i8* }* %1) !dbg !32 { entry: - %"$$fundef_71_env_c0_548" = getelementptr inbounds %"$$fundef_71_env_119", %"$$fundef_71_env_119"* %0, i32 0, i32 0 - %"$c0_envload_549" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_71_env_c0_548", align 8 + %"$$fundef_71_env_c0_551" = getelementptr inbounds %"$$fundef_71_env_119", %"$$fundef_71_env_119"* %0, i32 0, i32 0 + %"$c0_envload_552" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_71_env_c0_551", align 8 %c0 = alloca { i8*, i8* }*, align 8 - store { i8*, i8* }* %"$c0_envload_549", { i8*, i8* }** %c0, align 8 - %"$$fundef_71_env_cadd_550" = getelementptr inbounds %"$$fundef_71_env_119", %"$$fundef_71_env_119"* %0, i32 0, i32 1 - %"$cadd_envload_551" = load { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* }, { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* }* %"$$fundef_71_env_cadd_550", align 8 + store { i8*, i8* }* %"$c0_envload_552", { i8*, i8* }** %c0, align 8 + %"$$fundef_71_env_cadd_553" = getelementptr inbounds %"$$fundef_71_env_119", %"$$fundef_71_env_119"* %0, i32 0, i32 1 + %"$cadd_envload_554" = load { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* }, { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* }* %"$$fundef_71_env_cadd_553", 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_551", { { { 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_envload_554", { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* }* %cadd, align 8 %"$retval_72" = alloca { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }, align 8 - %"$gasrem_552" = load i64, i64* @_gasrem, align 8 - %"$gascmp_553" = icmp ugt i64 1, %"$gasrem_552" - br i1 %"$gascmp_553", label %"$out_of_gas_554", label %"$have_gas_555" - -"$out_of_gas_554": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_555" - -"$have_gas_555": ; preds = %"$out_of_gas_554", %entry - %"$consume_556" = sub i64 %"$gasrem_552", 1 - store i64 %"$consume_556", i64* @_gasrem, align 8 - %"$$fundef_73_envp_557_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_73_envp_557_salloc" = call i8* @_salloc(i8* %"$$fundef_73_envp_557_load", i64 32) - %"$$fundef_73_envp_557" = bitcast i8* %"$$fundef_73_envp_557_salloc" to %"$$fundef_73_env_118"* - %"$$fundef_73_env_voidp_559" = bitcast %"$$fundef_73_env_118"* %"$$fundef_73_envp_557" to i8* - %"$$fundef_73_cloval_560" = insertvalue { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } { { i8*, i8* }* (i8*, { i8*, i8* }*)* bitcast ({ i8*, i8* }* (%"$$fundef_73_env_118"*, { i8*, i8* }*)* @"$fundef_73" to { i8*, i8* }* (i8*, { i8*, i8* }*)*), i8* undef }, i8* %"$$fundef_73_env_voidp_559", 1 - %"$$fundef_73_env_c0_561" = getelementptr inbounds %"$$fundef_73_env_118", %"$$fundef_73_env_118"* %"$$fundef_73_envp_557", i32 0, i32 0 - %"$c0_562" = load { i8*, i8* }*, { i8*, i8* }** %c0, align 8 - store { i8*, i8* }* %"$c0_562", { i8*, i8* }** %"$$fundef_73_env_c0_561", align 8 - %"$$fundef_73_env_cadd_563" = getelementptr inbounds %"$$fundef_73_env_118", %"$$fundef_73_env_118"* %"$$fundef_73_envp_557", i32 0, i32 1 - %"$cadd_564" = 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_564", { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* }* %"$$fundef_73_env_cadd_563", align 8 - %"$$fundef_73_env_m_565" = getelementptr inbounds %"$$fundef_73_env_118", %"$$fundef_73_env_118"* %"$$fundef_73_envp_557", i32 0, i32 2 - store { i8*, i8* }* %1, { i8*, i8* }** %"$$fundef_73_env_m_565", align 8 - store { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$$fundef_73_cloval_560", { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %"$retval_72", align 8, !dbg !22 - %"$$retval_72_566" = load { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %"$retval_72", align 8 - ret { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$$retval_72_566" + %"$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" + +"$out_of_gas_557": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_558" + +"$have_gas_558": ; preds = %"$out_of_gas_557", %entry + %"$consume_559" = sub i64 %"$gasrem_555", 1 + store i64 %"$consume_559", i64* @_gasrem, align 8 + %"$$fundef_73_envp_560_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_73_envp_560_salloc" = call i8* @_salloc(i8* %"$$fundef_73_envp_560_load", i64 32) + %"$$fundef_73_envp_560" = bitcast i8* %"$$fundef_73_envp_560_salloc" to %"$$fundef_73_env_118"* + %"$$fundef_73_env_voidp_562" = bitcast %"$$fundef_73_env_118"* %"$$fundef_73_envp_560" to i8* + %"$$fundef_73_cloval_563" = insertvalue { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } { { i8*, i8* }* (i8*, { i8*, i8* }*)* bitcast ({ i8*, i8* }* (%"$$fundef_73_env_118"*, { i8*, i8* }*)* @"$fundef_73" to { i8*, i8* }* (i8*, { i8*, i8* }*)*), i8* undef }, i8* %"$$fundef_73_env_voidp_562", 1 + %"$$fundef_73_env_c0_564" = getelementptr inbounds %"$$fundef_73_env_118", %"$$fundef_73_env_118"* %"$$fundef_73_envp_560", i32 0, i32 0 + %"$c0_565" = load { i8*, i8* }*, { i8*, i8* }** %c0, align 8 + store { i8*, i8* }* %"$c0_565", { i8*, i8* }** %"$$fundef_73_env_c0_564", align 8 + %"$$fundef_73_env_cadd_566" = getelementptr inbounds %"$$fundef_73_env_118", %"$$fundef_73_env_118"* %"$$fundef_73_envp_560", i32 0, i32 1 + %"$cadd_567" = 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_567", { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* }* %"$$fundef_73_env_cadd_566", align 8 + %"$$fundef_73_env_m_568" = getelementptr inbounds %"$$fundef_73_env_118", %"$$fundef_73_env_118"* %"$$fundef_73_envp_560", i32 0, i32 2 + store { i8*, i8* }* %1, { i8*, i8* }** %"$$fundef_73_env_m_568", align 8 + store { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$$fundef_73_cloval_563", { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %"$retval_72", align 8, !dbg !33 + %"$$retval_72_569" = load { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %"$retval_72", align 8 + ret { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$$retval_72_569" } -define internal { i8*, i8* }* @"$fundef_69"(%"$$fundef_69_env_120"* %0, { i8*, i8* }* %1) !dbg !23 { +define internal { i8*, i8* }* @"$fundef_69"(%"$$fundef_69_env_120"* %0, { i8*, i8* }* %1) !dbg !34 { entry: - %"$$fundef_69_env_m_471" = getelementptr inbounds %"$$fundef_69_env_120", %"$$fundef_69_env_120"* %0, i32 0, i32 0 - %"$m_envload_472" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_69_env_m_471", align 8 + %"$$fundef_69_env_m_474" = getelementptr inbounds %"$$fundef_69_env_120", %"$$fundef_69_env_120"* %0, i32 0, i32 0 + %"$m_envload_475" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_69_env_m_474", align 8 %m = alloca { i8*, i8* }*, align 8 - store { i8*, i8* }* %"$m_envload_472", { i8*, i8* }** %m, align 8 - %"$$fundef_69_env_n_473" = getelementptr inbounds %"$$fundef_69_env_120", %"$$fundef_69_env_120"* %0, i32 0, i32 1 - %"$n_envload_474" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_69_env_n_473", align 8 + store { i8*, i8* }* %"$m_envload_475", { i8*, i8* }** %m, align 8 + %"$$fundef_69_env_n_476" = getelementptr inbounds %"$$fundef_69_env_120", %"$$fundef_69_env_120"* %0, i32 0, i32 1 + %"$n_envload_477" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_69_env_n_476", align 8 %n = alloca { i8*, i8* }*, align 8 - store { i8*, i8* }* %"$n_envload_474", { i8*, i8* }** %n, align 8 - %"$$fundef_69_env_s_475" = getelementptr inbounds %"$$fundef_69_env_120", %"$$fundef_69_env_120"* %0, i32 0, i32 2 - %"$s_envload_476" = load { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %"$$fundef_69_env_s_475", align 8 + store { i8*, i8* }* %"$n_envload_477", { i8*, i8* }** %n, align 8 + %"$$fundef_69_env_s_478" = getelementptr inbounds %"$$fundef_69_env_120", %"$$fundef_69_env_120"* %0, i32 0, i32 2 + %"$s_envload_479" = load { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %"$$fundef_69_env_s_478", align 8 %s = alloca { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }, align 8 - store { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$s_envload_476", { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %s, align 8 + store { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$s_envload_479", { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %s, align 8 %"$retval_70" = alloca { i8*, i8* }*, align 8 - %"$gasrem_477" = load i64, i64* @_gasrem, align 8 - %"$gascmp_478" = icmp ugt i64 1, %"$gasrem_477" - br i1 %"$gascmp_478", label %"$out_of_gas_479", label %"$have_gas_480" + %"$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_479": ; preds = %entry +"$out_of_gas_482": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_480" + br label %"$have_gas_483" -"$have_gas_480": ; preds = %"$out_of_gas_479", %entry - %"$consume_481" = sub i64 %"$gasrem_477", 1 - store i64 %"$consume_481", i64* @_gasrem, align 8 +"$have_gas_483": ; preds = %"$out_of_gas_482", %entry + %"$consume_484" = sub i64 %"$gasrem_480", 1 + store i64 %"$consume_484", i64* @_gasrem, align 8 %mX = alloca { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* }, align 8 - %"$gasrem_482" = load i64, i64* @_gasrem, align 8 - %"$gascmp_483" = icmp ugt i64 1, %"$gasrem_482" - br i1 %"$gascmp_483", label %"$out_of_gas_484", label %"$have_gas_485" - -"$out_of_gas_484": ; preds = %"$have_gas_480" - call void @_out_of_gas() - br label %"$have_gas_485" - -"$have_gas_485": ; preds = %"$out_of_gas_484", %"$have_gas_480" - %"$consume_486" = sub i64 %"$gasrem_482", 1 - store i64 %"$consume_486", i64* @_gasrem, align 8 - %"$m_487" = load { i8*, i8* }*, { i8*, i8* }** %m, align 8 - %"$m_488" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$m_487", i32 1 - %"$m_489" = bitcast { i8*, i8* }* %"$m_488" to { { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } (i8*)*, i8* }* - %"$m_490" = 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_489", align 8 - %"$m_fptr_491" = extractvalue { { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } (i8*)*, i8* } %"$m_490", 0 - %"$m_envptr_492" = extractvalue { { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } (i8*)*, i8* } %"$m_490", 1 - %"$m_call_493" = call { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } %"$m_fptr_491"(i8* %"$m_envptr_492"), !dbg !24 - store { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } %"$m_call_493", { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* }* %mX, align 8, !dbg !25 - %"$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_485" - call void @_out_of_gas() - br label %"$have_gas_497" - -"$have_gas_497": ; preds = %"$out_of_gas_496", %"$have_gas_485" - %"$consume_498" = sub i64 %"$gasrem_494", 1 - store i64 %"$consume_498", i64* @_gasrem, 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" + +"$out_of_gas_487": ; preds = %"$have_gas_483" + call void @_out_of_gas() + br label %"$have_gas_488" + +"$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 + %"$m_490" = load { i8*, i8* }*, { i8*, i8* }** %m, align 8 + %"$m_491" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$m_490", i32 1 + %"$m_492" = bitcast { i8*, i8* }* %"$m_491" to { { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } (i8*)*, i8* }* + %"$m_493" = 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_492", align 8 + %"$m_fptr_494" = extractvalue { { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } (i8*)*, i8* } %"$m_493", 0 + %"$m_envptr_495" = extractvalue { { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } (i8*)*, i8* } %"$m_493", 1 + %"$m_call_496" = call { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } %"$m_fptr_494"(i8* %"$m_envptr_495"), !dbg !35 + store { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } %"$m_call_496", { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* }* %mX, align 8, !dbg !36 + %"$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_499": ; preds = %"$have_gas_488" + call void @_out_of_gas() + br label %"$have_gas_500" + +"$have_gas_500": ; preds = %"$out_of_gas_499", %"$have_gas_488" + %"$consume_501" = sub i64 %"$gasrem_497", 1 + store i64 %"$consume_501", i64* @_gasrem, align 8 %nX = alloca { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* }, 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_497" - call void @_out_of_gas() - br label %"$have_gas_502" - -"$have_gas_502": ; preds = %"$out_of_gas_501", %"$have_gas_497" - %"$consume_503" = sub i64 %"$gasrem_499", 1 - store i64 %"$consume_503", i64* @_gasrem, align 8 - %"$n_504" = load { i8*, i8* }*, { i8*, i8* }** %n, align 8 - %"$n_505" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$n_504", i32 1 - %"$n_506" = bitcast { i8*, i8* }* %"$n_505" to { { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } (i8*)*, i8* }* - %"$n_507" = 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_506", align 8 - %"$n_fptr_508" = extractvalue { { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } (i8*)*, i8* } %"$n_507", 0 - %"$n_envptr_509" = extractvalue { { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } (i8*)*, i8* } %"$n_507", 1 - %"$n_call_510" = call { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } %"$n_fptr_508"(i8* %"$n_envptr_509"), !dbg !26 - store { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } %"$n_call_510", { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* }* %nX, align 8, !dbg !27 - %"$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_502" - call void @_out_of_gas() - br label %"$have_gas_514" - -"$have_gas_514": ; preds = %"$out_of_gas_513", %"$have_gas_502" - %"$consume_515" = sub i64 %"$gasrem_511", 1 - store i64 %"$consume_515", i64* @_gasrem, 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_500" + call void @_out_of_gas() + br label %"$have_gas_505" + +"$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 + %"$n_507" = load { i8*, i8* }*, { i8*, i8* }** %n, align 8 + %"$n_508" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$n_507", i32 1 + %"$n_509" = bitcast { i8*, i8* }* %"$n_508" to { { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } (i8*)*, i8* }* + %"$n_510" = 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_509", align 8 + %"$n_fptr_511" = extractvalue { { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } (i8*)*, i8* } %"$n_510", 0 + %"$n_envptr_512" = extractvalue { { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } (i8*)*, i8* } %"$n_510", 1 + %"$n_call_513" = call { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } %"$n_fptr_511"(i8* %"$n_envptr_512"), !dbg !37 + store { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } %"$n_call_513", { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* }* %nX, align 8, !dbg !38 + %"$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 = %"$have_gas_505" + call void @_out_of_gas() + br label %"$have_gas_517" + +"$have_gas_517": ; preds = %"$out_of_gas_516", %"$have_gas_505" + %"$consume_518" = sub i64 %"$gasrem_514", 1 + store i64 %"$consume_518", i64* @_gasrem, align 8 %nXsz = alloca { i8*, 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" + %"$gasrem_519" = load i64, i64* @_gasrem, align 8 + %"$gascmp_520" = icmp ugt i64 1, %"$gasrem_519" + br i1 %"$gascmp_520", label %"$out_of_gas_521", label %"$have_gas_522" -"$out_of_gas_518": ; preds = %"$have_gas_514" +"$out_of_gas_521": ; preds = %"$have_gas_517" call void @_out_of_gas() - br label %"$have_gas_519" + br label %"$have_gas_522" -"$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_522": ; preds = %"$out_of_gas_521", %"$have_gas_517" + %"$consume_523" = sub i64 %"$gasrem_519", 1 + store i64 %"$consume_523", i64* @_gasrem, align 8 %"$nX_8" = alloca { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }, align 8 - %"$nX_521" = 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_522" = extractvalue { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } %"$nX_521", 0 - %"$nX_envptr_523" = extractvalue { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } %"$nX_521", 1 - %"$s_524" = load { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %s, align 8 - %"$nX_call_525" = call { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$nX_fptr_522"(i8* %"$nX_envptr_523", { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$s_524"), !dbg !28 - store { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$nX_call_525", { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %"$nX_8", align 8, !dbg !28 + %"$nX_524" = 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_525" = extractvalue { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } %"$nX_524", 0 + %"$nX_envptr_526" = extractvalue { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } %"$nX_524", 1 + %"$s_527" = load { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %s, align 8 + %"$nX_call_528" = call { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$nX_fptr_525"(i8* %"$nX_envptr_526", { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$s_527"), !dbg !39 + store { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$nX_call_528", { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %"$nX_8", align 8, !dbg !39 %"$nX_9" = alloca { i8*, i8* }*, align 8 - %"$$nX_8_526" = load { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %"$nX_8", align 8 - %"$$nX_8_fptr_527" = extractvalue { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$$nX_8_526", 0 - %"$$nX_8_envptr_528" = extractvalue { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$$nX_8_526", 1 - %"$$nX_8_call_529" = call { i8*, i8* }* %"$$nX_8_fptr_527"(i8* %"$$nX_8_envptr_528", { i8*, i8* }* %1), !dbg !28 - store { i8*, i8* }* %"$$nX_8_call_529", { i8*, i8* }** %"$nX_9", align 8, !dbg !28 - %"$$nX_9_530" = load { i8*, i8* }*, { i8*, i8* }** %"$nX_9", align 8 - store { i8*, i8* }* %"$$nX_9_530", { i8*, i8* }** %nXsz, align 8, !dbg !28 - %"$gasrem_531" = load i64, i64* @_gasrem, align 8 - %"$gascmp_532" = icmp ugt i64 1, %"$gasrem_531" - br i1 %"$gascmp_532", label %"$out_of_gas_533", label %"$have_gas_534" - -"$out_of_gas_533": ; preds = %"$have_gas_519" - call void @_out_of_gas() - br label %"$have_gas_534" - -"$have_gas_534": ; preds = %"$out_of_gas_533", %"$have_gas_519" - %"$consume_535" = sub i64 %"$gasrem_531", 1 - store i64 %"$consume_535", i64* @_gasrem, align 8 + %"$$nX_8_529" = load { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %"$nX_8", align 8 + %"$$nX_8_fptr_530" = extractvalue { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$$nX_8_529", 0 + %"$$nX_8_envptr_531" = extractvalue { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$$nX_8_529", 1 + %"$$nX_8_call_532" = call { i8*, i8* }* %"$$nX_8_fptr_530"(i8* %"$$nX_8_envptr_531", { i8*, i8* }* %1), !dbg !39 + store { i8*, i8* }* %"$$nX_8_call_532", { i8*, i8* }** %"$nX_9", align 8, !dbg !39 + %"$$nX_9_533" = load { i8*, i8* }*, { i8*, i8* }** %"$nX_9", align 8 + store { i8*, i8* }* %"$$nX_9_533", { i8*, i8* }** %nXsz, align 8, !dbg !39 + %"$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" + +"$out_of_gas_536": ; preds = %"$have_gas_522" + call void @_out_of_gas() + br label %"$have_gas_537" + +"$have_gas_537": ; preds = %"$out_of_gas_536", %"$have_gas_522" + %"$consume_538" = sub i64 %"$gasrem_534", 1 + store i64 %"$consume_538", i64* @_gasrem, align 8 %"$mX_10" = alloca { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }, align 8 - %"$mX_536" = 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_537" = extractvalue { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } %"$mX_536", 0 - %"$mX_envptr_538" = extractvalue { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } %"$mX_536", 1 - %"$s_539" = load { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %s, align 8 - %"$mX_call_540" = call { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$mX_fptr_537"(i8* %"$mX_envptr_538", { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$s_539"), !dbg !29 - store { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$mX_call_540", { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %"$mX_10", align 8, !dbg !29 + %"$mX_539" = 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_540" = extractvalue { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } %"$mX_539", 0 + %"$mX_envptr_541" = extractvalue { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } %"$mX_539", 1 + %"$s_542" = load { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %s, align 8 + %"$mX_call_543" = call { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$mX_fptr_540"(i8* %"$mX_envptr_541", { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$s_542"), !dbg !40 + store { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$mX_call_543", { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %"$mX_10", align 8, !dbg !40 %"$mX_11" = alloca { i8*, i8* }*, align 8 - %"$$mX_10_541" = load { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %"$mX_10", align 8 - %"$$mX_10_fptr_542" = extractvalue { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$$mX_10_541", 0 - %"$$mX_10_envptr_543" = extractvalue { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$$mX_10_541", 1 - %"$nXsz_544" = load { i8*, i8* }*, { i8*, i8* }** %nXsz, align 8 - %"$$mX_10_call_545" = call { i8*, i8* }* %"$$mX_10_fptr_542"(i8* %"$$mX_10_envptr_543", { i8*, i8* }* %"$nXsz_544"), !dbg !29 - store { i8*, i8* }* %"$$mX_10_call_545", { i8*, i8* }** %"$mX_11", align 8, !dbg !29 - %"$$mX_11_546" = load { i8*, i8* }*, { i8*, i8* }** %"$mX_11", align 8 - store { i8*, i8* }* %"$$mX_11_546", { i8*, i8* }** %"$retval_70", align 8, !dbg !29 - %"$$retval_70_547" = load { i8*, i8* }*, { i8*, i8* }** %"$retval_70", align 8 - ret { i8*, i8* }* %"$$retval_70_547" + %"$$mX_10_544" = load { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %"$mX_10", align 8 + %"$$mX_10_fptr_545" = extractvalue { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$$mX_10_544", 0 + %"$$mX_10_envptr_546" = extractvalue { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$$mX_10_544", 1 + %"$nXsz_547" = load { i8*, i8* }*, { i8*, i8* }** %nXsz, align 8 + %"$$mX_10_call_548" = call { i8*, i8* }* %"$$mX_10_fptr_545"(i8* %"$$mX_10_envptr_546", { i8*, i8* }* %"$nXsz_547"), !dbg !40 + store { i8*, i8* }* %"$$mX_10_call_548", { i8*, i8* }** %"$mX_11", align 8, !dbg !40 + %"$$mX_11_549" = load { i8*, i8* }*, { i8*, i8* }** %"$mX_11", align 8 + store { i8*, i8* }* %"$$mX_11_549", { i8*, i8* }** %"$retval_70", align 8, !dbg !40 + %"$$retval_70_550" = load { i8*, i8* }*, { i8*, i8* }** %"$retval_70", align 8 + ret { i8*, i8* }* %"$$retval_70_550" } -define internal { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } @"$fundef_67"(%"$$fundef_67_env_121"* %0, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %1) !dbg !30 { +define internal { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } @"$fundef_67"(%"$$fundef_67_env_121"* %0, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %1) !dbg !41 { entry: - %"$$fundef_67_env_m_452" = getelementptr inbounds %"$$fundef_67_env_121", %"$$fundef_67_env_121"* %0, i32 0, i32 0 - %"$m_envload_453" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_67_env_m_452", align 8 + %"$$fundef_67_env_m_455" = getelementptr inbounds %"$$fundef_67_env_121", %"$$fundef_67_env_121"* %0, i32 0, i32 0 + %"$m_envload_456" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_67_env_m_455", align 8 %m = alloca { i8*, i8* }*, align 8 - store { i8*, i8* }* %"$m_envload_453", { i8*, i8* }** %m, align 8 - %"$$fundef_67_env_n_454" = getelementptr inbounds %"$$fundef_67_env_121", %"$$fundef_67_env_121"* %0, i32 0, i32 1 - %"$n_envload_455" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_67_env_n_454", align 8 + store { i8*, i8* }* %"$m_envload_456", { i8*, i8* }** %m, align 8 + %"$$fundef_67_env_n_457" = getelementptr inbounds %"$$fundef_67_env_121", %"$$fundef_67_env_121"* %0, i32 0, i32 1 + %"$n_envload_458" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_67_env_n_457", align 8 %n = alloca { i8*, i8* }*, align 8 - store { i8*, i8* }* %"$n_envload_455", { i8*, i8* }** %n, align 8 + store { i8*, i8* }* %"$n_envload_458", { i8*, i8* }** %n, align 8 %"$retval_68" = alloca { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }, align 8 - %"$gasrem_456" = load i64, i64* @_gasrem, align 8 - %"$gascmp_457" = icmp ugt i64 1, %"$gasrem_456" - br i1 %"$gascmp_457", label %"$out_of_gas_458", label %"$have_gas_459" - -"$out_of_gas_458": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_459" - -"$have_gas_459": ; preds = %"$out_of_gas_458", %entry - %"$consume_460" = sub i64 %"$gasrem_456", 1 - store i64 %"$consume_460", i64* @_gasrem, align 8 - %"$$fundef_69_envp_461_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_69_envp_461_salloc" = call i8* @_salloc(i8* %"$$fundef_69_envp_461_load", i64 32) - %"$$fundef_69_envp_461" = bitcast i8* %"$$fundef_69_envp_461_salloc" to %"$$fundef_69_env_120"* - %"$$fundef_69_env_voidp_463" = bitcast %"$$fundef_69_env_120"* %"$$fundef_69_envp_461" to i8* - %"$$fundef_69_cloval_464" = insertvalue { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } { { i8*, i8* }* (i8*, { i8*, i8* }*)* bitcast ({ i8*, i8* }* (%"$$fundef_69_env_120"*, { i8*, i8* }*)* @"$fundef_69" to { i8*, i8* }* (i8*, { i8*, i8* }*)*), i8* undef }, i8* %"$$fundef_69_env_voidp_463", 1 - %"$$fundef_69_env_m_465" = getelementptr inbounds %"$$fundef_69_env_120", %"$$fundef_69_env_120"* %"$$fundef_69_envp_461", i32 0, i32 0 - %"$m_466" = load { i8*, i8* }*, { i8*, i8* }** %m, align 8 - store { i8*, i8* }* %"$m_466", { i8*, i8* }** %"$$fundef_69_env_m_465", align 8 - %"$$fundef_69_env_n_467" = getelementptr inbounds %"$$fundef_69_env_120", %"$$fundef_69_env_120"* %"$$fundef_69_envp_461", i32 0, i32 1 - %"$n_468" = load { i8*, i8* }*, { i8*, i8* }** %n, align 8 - store { i8*, i8* }* %"$n_468", { i8*, i8* }** %"$$fundef_69_env_n_467", align 8 - %"$$fundef_69_env_s_469" = getelementptr inbounds %"$$fundef_69_env_120", %"$$fundef_69_env_120"* %"$$fundef_69_envp_461", i32 0, i32 2 - store { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %1, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %"$$fundef_69_env_s_469", align 8 - store { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$$fundef_69_cloval_464", { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %"$retval_68", align 8, !dbg !31 - %"$$retval_68_470" = load { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %"$retval_68", align 8 - ret { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$$retval_68_470" + %"$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 = %entry + call void @_out_of_gas() + br label %"$have_gas_462" + +"$have_gas_462": ; preds = %"$out_of_gas_461", %entry + %"$consume_463" = sub i64 %"$gasrem_459", 1 + store i64 %"$consume_463", i64* @_gasrem, align 8 + %"$$fundef_69_envp_464_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_69_envp_464_salloc" = call i8* @_salloc(i8* %"$$fundef_69_envp_464_load", i64 32) + %"$$fundef_69_envp_464" = bitcast i8* %"$$fundef_69_envp_464_salloc" to %"$$fundef_69_env_120"* + %"$$fundef_69_env_voidp_466" = bitcast %"$$fundef_69_env_120"* %"$$fundef_69_envp_464" to i8* + %"$$fundef_69_cloval_467" = insertvalue { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } { { i8*, i8* }* (i8*, { i8*, i8* }*)* bitcast ({ i8*, i8* }* (%"$$fundef_69_env_120"*, { i8*, i8* }*)* @"$fundef_69" to { i8*, i8* }* (i8*, { i8*, i8* }*)*), i8* undef }, i8* %"$$fundef_69_env_voidp_466", 1 + %"$$fundef_69_env_m_468" = getelementptr inbounds %"$$fundef_69_env_120", %"$$fundef_69_env_120"* %"$$fundef_69_envp_464", i32 0, i32 0 + %"$m_469" = load { i8*, i8* }*, { i8*, i8* }** %m, align 8 + store { i8*, i8* }* %"$m_469", { i8*, i8* }** %"$$fundef_69_env_m_468", align 8 + %"$$fundef_69_env_n_470" = getelementptr inbounds %"$$fundef_69_env_120", %"$$fundef_69_env_120"* %"$$fundef_69_envp_464", i32 0, i32 1 + %"$n_471" = load { i8*, i8* }*, { i8*, i8* }** %n, align 8 + store { i8*, i8* }* %"$n_471", { i8*, i8* }** %"$$fundef_69_env_n_470", align 8 + %"$$fundef_69_env_s_472" = getelementptr inbounds %"$$fundef_69_env_120", %"$$fundef_69_env_120"* %"$$fundef_69_envp_464", i32 0, i32 2 + store { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %1, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %"$$fundef_69_env_s_472", align 8 + store { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$$fundef_69_cloval_467", { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %"$retval_68", align 8, !dbg !42 + %"$$retval_68_473" = load { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %"$retval_68", align 8 + ret { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$$retval_68_473" } -define internal { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } @"$fundef_65"(%"$$fundef_65_env_122"* %0) !dbg !32 { +define internal { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } @"$fundef_65"(%"$$fundef_65_env_122"* %0) !dbg !43 { entry: - %"$$fundef_65_env_m_434" = getelementptr inbounds %"$$fundef_65_env_122", %"$$fundef_65_env_122"* %0, i32 0, i32 0 - %"$m_envload_435" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_65_env_m_434", align 8 + %"$$fundef_65_env_m_437" = getelementptr inbounds %"$$fundef_65_env_122", %"$$fundef_65_env_122"* %0, i32 0, i32 0 + %"$m_envload_438" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_65_env_m_437", align 8 %m = alloca { i8*, i8* }*, align 8 - store { i8*, i8* }* %"$m_envload_435", { i8*, i8* }** %m, align 8 - %"$$fundef_65_env_n_436" = getelementptr inbounds %"$$fundef_65_env_122", %"$$fundef_65_env_122"* %0, i32 0, i32 1 - %"$n_envload_437" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_65_env_n_436", align 8 + store { i8*, i8* }* %"$m_envload_438", { i8*, i8* }** %m, align 8 + %"$$fundef_65_env_n_439" = getelementptr inbounds %"$$fundef_65_env_122", %"$$fundef_65_env_122"* %0, i32 0, i32 1 + %"$n_envload_440" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_65_env_n_439", align 8 %n = alloca { i8*, i8* }*, align 8 - store { i8*, i8* }* %"$n_envload_437", { i8*, i8* }** %n, align 8 + store { i8*, i8* }* %"$n_envload_440", { i8*, i8* }** %n, align 8 %"$retval_66" = alloca { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* }, 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 = %entry - call void @_out_of_gas() - br label %"$have_gas_441" - -"$have_gas_441": ; preds = %"$out_of_gas_440", %entry - %"$consume_442" = sub i64 %"$gasrem_438", 1 - store i64 %"$consume_442", i64* @_gasrem, align 8 - %"$$fundef_67_envp_443_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_67_envp_443_salloc" = call i8* @_salloc(i8* %"$$fundef_67_envp_443_load", i64 16) - %"$$fundef_67_envp_443" = bitcast i8* %"$$fundef_67_envp_443_salloc" to %"$$fundef_67_env_121"* - %"$$fundef_67_env_voidp_445" = bitcast %"$$fundef_67_env_121"* %"$$fundef_67_envp_443" to i8* - %"$$fundef_67_cloval_446" = 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_67_env_121"*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })* @"$fundef_67" to { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*), i8* undef }, i8* %"$$fundef_67_env_voidp_445", 1 - %"$$fundef_67_env_m_447" = getelementptr inbounds %"$$fundef_67_env_121", %"$$fundef_67_env_121"* %"$$fundef_67_envp_443", i32 0, i32 0 - %"$m_448" = load { i8*, i8* }*, { i8*, i8* }** %m, align 8 - store { i8*, i8* }* %"$m_448", { i8*, i8* }** %"$$fundef_67_env_m_447", align 8 - %"$$fundef_67_env_n_449" = getelementptr inbounds %"$$fundef_67_env_121", %"$$fundef_67_env_121"* %"$$fundef_67_envp_443", i32 0, i32 1 - %"$n_450" = load { i8*, i8* }*, { i8*, i8* }** %n, align 8 - store { i8*, i8* }* %"$n_450", { i8*, i8* }** %"$$fundef_67_env_n_449", align 8 - store { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } %"$$fundef_67_cloval_446", { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* }* %"$retval_66", align 8, !dbg !33 - %"$$retval_66_451" = 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_66", align 8 - ret { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } %"$$retval_66_451" + %"$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" + +"$out_of_gas_443": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_444" + +"$have_gas_444": ; preds = %"$out_of_gas_443", %entry + %"$consume_445" = sub i64 %"$gasrem_441", 1 + store i64 %"$consume_445", i64* @_gasrem, align 8 + %"$$fundef_67_envp_446_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_67_envp_446_salloc" = call i8* @_salloc(i8* %"$$fundef_67_envp_446_load", i64 16) + %"$$fundef_67_envp_446" = bitcast i8* %"$$fundef_67_envp_446_salloc" to %"$$fundef_67_env_121"* + %"$$fundef_67_env_voidp_448" = bitcast %"$$fundef_67_env_121"* %"$$fundef_67_envp_446" to i8* + %"$$fundef_67_cloval_449" = 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_67_env_121"*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })* @"$fundef_67" to { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*), i8* undef }, i8* %"$$fundef_67_env_voidp_448", 1 + %"$$fundef_67_env_m_450" = getelementptr inbounds %"$$fundef_67_env_121", %"$$fundef_67_env_121"* %"$$fundef_67_envp_446", i32 0, i32 0 + %"$m_451" = load { i8*, i8* }*, { i8*, i8* }** %m, align 8 + store { i8*, i8* }* %"$m_451", { i8*, i8* }** %"$$fundef_67_env_m_450", align 8 + %"$$fundef_67_env_n_452" = getelementptr inbounds %"$$fundef_67_env_121", %"$$fundef_67_env_121"* %"$$fundef_67_envp_446", i32 0, i32 1 + %"$n_453" = load { i8*, i8* }*, { i8*, i8* }** %n, align 8 + store { i8*, i8* }* %"$n_453", { i8*, i8* }** %"$$fundef_67_env_n_452", align 8 + store { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } %"$$fundef_67_cloval_449", { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* }* %"$retval_66", align 8, !dbg !44 + %"$$retval_66_454" = 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_66", align 8 + ret { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } %"$$retval_66_454" } -define internal %Uint32 @"$fundef_63"(%"$$fundef_63_env_123"* %0, %Uint32 %1) !dbg !34 { +define internal %Uint32 @"$fundef_63"(%"$$fundef_63_env_123"* %0, %Uint32 %1) !dbg !45 { entry: - %"$$fundef_63_env_m_357" = getelementptr inbounds %"$$fundef_63_env_123", %"$$fundef_63_env_123"* %0, i32 0, i32 0 - %"$m_envload_358" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_63_env_m_357", align 8 + %"$z_436" = alloca %Uint32, align 8 + store %Uint32 %1, %Uint32* %"$z_436", align 4 + call void @llvm.dbg.declare(metadata %Uint32* %"$z_436", metadata !46, metadata !DIExpression()), !dbg !47 + %"$$fundef_63_env_m_359" = getelementptr inbounds %"$$fundef_63_env_123", %"$$fundef_63_env_123"* %0, i32 0, i32 0 + %"$m_envload_360" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_63_env_m_359", align 8 %m = alloca { i8*, i8* }*, align 8 - store { i8*, i8* }* %"$m_envload_358", { i8*, i8* }** %m, align 8 - %"$$fundef_63_env_n_359" = getelementptr inbounds %"$$fundef_63_env_123", %"$$fundef_63_env_123"* %0, i32 0, i32 1 - %"$n_envload_360" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_63_env_n_359", align 8 + store { i8*, i8* }* %"$m_envload_360", { i8*, i8* }** %m, align 8 + %"$$fundef_63_env_n_361" = getelementptr inbounds %"$$fundef_63_env_123", %"$$fundef_63_env_123"* %0, i32 0, i32 1 + %"$n_envload_362" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_63_env_n_361", align 8 %n = alloca { i8*, i8* }*, align 8 - store { i8*, i8* }* %"$n_envload_360", { i8*, i8* }** %n, align 8 - %"$$fundef_63_env_s_361" = getelementptr inbounds %"$$fundef_63_env_123", %"$$fundef_63_env_123"* %0, i32 0, i32 2 - %"$s_envload_362" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %"$$fundef_63_env_s_361", align 8 + store { i8*, i8* }* %"$n_envload_362", { i8*, i8* }** %n, align 8 + %"$$fundef_63_env_s_363" = getelementptr inbounds %"$$fundef_63_env_123", %"$$fundef_63_env_123"* %0, i32 0, i32 2 + %"$s_envload_364" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %"$$fundef_63_env_s_363", align 8 %s = alloca { %Uint32 (i8*, %Uint32)*, i8* }, align 8 - store { %Uint32 (i8*, %Uint32)*, i8* } %"$s_envload_362", { %Uint32 (i8*, %Uint32)*, i8* }* %s, align 8 + store { %Uint32 (i8*, %Uint32)*, i8* } %"$s_envload_364", { %Uint32 (i8*, %Uint32)*, i8* }* %s, align 8 %"$retval_64" = alloca %Uint32, 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" + call void @llvm.dbg.declare(metadata %Uint32* %"$retval_64", metadata !48, metadata !DIExpression()), !dbg !49 + %"$gasrem_365" = load i64, i64* @_gasrem, align 8 + %"$gascmp_366" = icmp ugt i64 1, %"$gasrem_365" + br i1 %"$gascmp_366", label %"$out_of_gas_367", label %"$have_gas_368" -"$out_of_gas_365": ; preds = %entry +"$out_of_gas_367": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_366" + br label %"$have_gas_368" -"$have_gas_366": ; preds = %"$out_of_gas_365", %entry - %"$consume_367" = sub i64 %"$gasrem_363", 1 - store i64 %"$consume_367", i64* @_gasrem, align 8 +"$have_gas_368": ; preds = %"$out_of_gas_367", %entry + %"$consume_369" = sub i64 %"$gasrem_365", 1 + store i64 %"$consume_369", i64* @_gasrem, align 8 %mX = alloca { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, align 8 - %"$gasrem_368" = load i64, i64* @_gasrem, align 8 - %"$gascmp_369" = icmp ugt i64 1, %"$gasrem_368" - br i1 %"$gascmp_369", label %"$out_of_gas_370", label %"$have_gas_371" - -"$out_of_gas_370": ; preds = %"$have_gas_366" - call void @_out_of_gas() - br label %"$have_gas_371" - -"$have_gas_371": ; preds = %"$out_of_gas_370", %"$have_gas_366" - %"$consume_372" = sub i64 %"$gasrem_368", 1 - store i64 %"$consume_372", i64* @_gasrem, align 8 - %"$m_373" = load { i8*, i8* }*, { i8*, i8* }** %m, align 8 - %"$m_374" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$m_373", i32 0 - %"$m_375" = bitcast { i8*, i8* }* %"$m_374" to { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* }* - %"$m_376" = 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_375", align 8 - %"$m_fptr_377" = extractvalue { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* } %"$m_376", 0 - %"$m_envptr_378" = extractvalue { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* } %"$m_376", 1 - %"$m_call_379" = call { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$m_fptr_377"(i8* %"$m_envptr_378"), !dbg !35 - store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$m_call_379", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %mX, align 8, !dbg !36 - %"$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_382": ; preds = %"$have_gas_371" - call void @_out_of_gas() - br label %"$have_gas_383" - -"$have_gas_383": ; preds = %"$out_of_gas_382", %"$have_gas_371" - %"$consume_384" = sub i64 %"$gasrem_380", 1 - store i64 %"$consume_384", i64* @_gasrem, align 8 + %"$gasrem_370" = load i64, i64* @_gasrem, align 8 + %"$gascmp_371" = icmp ugt i64 1, %"$gasrem_370" + br i1 %"$gascmp_371", label %"$out_of_gas_372", label %"$have_gas_373" + +"$out_of_gas_372": ; preds = %"$have_gas_368" + call void @_out_of_gas() + br label %"$have_gas_373" + +"$have_gas_373": ; preds = %"$out_of_gas_372", %"$have_gas_368" + %"$consume_374" = sub i64 %"$gasrem_370", 1 + store i64 %"$consume_374", i64* @_gasrem, align 8 + %"$m_375" = load { i8*, i8* }*, { i8*, i8* }** %m, align 8 + %"$m_376" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$m_375", i32 0 + %"$m_377" = bitcast { i8*, i8* }* %"$m_376" to { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* }* + %"$m_378" = 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_377", align 8 + %"$m_fptr_379" = extractvalue { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* } %"$m_378", 0 + %"$m_envptr_380" = extractvalue { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* } %"$m_378", 1 + %"$m_call_381" = call { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$m_fptr_379"(i8* %"$m_envptr_380"), !dbg !50 + store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$m_call_381", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %mX, align 8, !dbg !51 + %"$gasrem_382" = load i64, i64* @_gasrem, align 8 + %"$gascmp_383" = icmp ugt i64 1, %"$gasrem_382" + br i1 %"$gascmp_383", label %"$out_of_gas_384", label %"$have_gas_385" + +"$out_of_gas_384": ; preds = %"$have_gas_373" + call void @_out_of_gas() + br label %"$have_gas_385" + +"$have_gas_385": ; preds = %"$out_of_gas_384", %"$have_gas_373" + %"$consume_386" = sub i64 %"$gasrem_382", 1 + store i64 %"$consume_386", i64* @_gasrem, align 8 %nX = alloca { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, 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_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", 1 - store i64 %"$consume_389", i64* @_gasrem, align 8 - %"$n_390" = load { i8*, i8* }*, { i8*, i8* }** %n, align 8 - %"$n_391" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$n_390", i32 0 - %"$n_392" = bitcast { i8*, i8* }* %"$n_391" to { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* }* - %"$n_393" = 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_392", align 8 - %"$n_fptr_394" = extractvalue { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* } %"$n_393", 0 - %"$n_envptr_395" = extractvalue { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* } %"$n_393", 1 - %"$n_call_396" = call { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$n_fptr_394"(i8* %"$n_envptr_395"), !dbg !37 - store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$n_call_396", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %nX, align 8, !dbg !38 - %"$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 = %"$have_gas_388" - call void @_out_of_gas() - br label %"$have_gas_400" - -"$have_gas_400": ; preds = %"$out_of_gas_399", %"$have_gas_388" - %"$consume_401" = sub i64 %"$gasrem_397", 1 - store i64 %"$consume_401", i64* @_gasrem, align 8 + %"$gasrem_387" = load i64, i64* @_gasrem, align 8 + %"$gascmp_388" = icmp ugt i64 1, %"$gasrem_387" + br i1 %"$gascmp_388", label %"$out_of_gas_389", label %"$have_gas_390" + +"$out_of_gas_389": ; preds = %"$have_gas_385" + call void @_out_of_gas() + br label %"$have_gas_390" + +"$have_gas_390": ; preds = %"$out_of_gas_389", %"$have_gas_385" + %"$consume_391" = sub i64 %"$gasrem_387", 1 + store i64 %"$consume_391", i64* @_gasrem, align 8 + %"$n_392" = load { i8*, i8* }*, { i8*, i8* }** %n, align 8 + %"$n_393" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$n_392", i32 0 + %"$n_394" = bitcast { i8*, i8* }* %"$n_393" to { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* }* + %"$n_395" = 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_394", align 8 + %"$n_fptr_396" = extractvalue { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* } %"$n_395", 0 + %"$n_envptr_397" = extractvalue { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* } %"$n_395", 1 + %"$n_call_398" = call { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$n_fptr_396"(i8* %"$n_envptr_397"), !dbg !52 + store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$n_call_398", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %nX, align 8, !dbg !53 + %"$gasrem_399" = load i64, i64* @_gasrem, align 8 + %"$gascmp_400" = icmp ugt i64 1, %"$gasrem_399" + br i1 %"$gascmp_400", label %"$out_of_gas_401", label %"$have_gas_402" + +"$out_of_gas_401": ; preds = %"$have_gas_390" + call void @_out_of_gas() + br label %"$have_gas_402" + +"$have_gas_402": ; preds = %"$out_of_gas_401", %"$have_gas_390" + %"$consume_403" = sub i64 %"$gasrem_399", 1 + store i64 %"$consume_403", i64* @_gasrem, align 8 %nXsz = alloca %Uint32, 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" + call void @llvm.dbg.declare(metadata %Uint32* %nXsz, metadata !54, metadata !DIExpression()), !dbg !55 + %"$gasrem_404" = load i64, i64* @_gasrem, align 8 + %"$gascmp_405" = icmp ugt i64 1, %"$gasrem_404" + br i1 %"$gascmp_405", label %"$out_of_gas_406", label %"$have_gas_407" -"$out_of_gas_404": ; preds = %"$have_gas_400" +"$out_of_gas_406": ; preds = %"$have_gas_402" call void @_out_of_gas() - br label %"$have_gas_405" + br label %"$have_gas_407" -"$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 +"$have_gas_407": ; preds = %"$out_of_gas_406", %"$have_gas_402" + %"$consume_408" = sub i64 %"$gasrem_404", 1 + store i64 %"$consume_408", i64* @_gasrem, align 8 %"$nX_8" = alloca { %Uint32 (i8*, %Uint32)*, i8* }, align 8 - %"$nX_407" = 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_408" = extractvalue { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$nX_407", 0 - %"$nX_envptr_409" = extractvalue { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$nX_407", 1 - %"$s_410" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %s, align 8 - %"$nX_call_411" = call { %Uint32 (i8*, %Uint32)*, i8* } %"$nX_fptr_408"(i8* %"$nX_envptr_409", { %Uint32 (i8*, %Uint32)*, i8* } %"$s_410"), !dbg !39 - store { %Uint32 (i8*, %Uint32)*, i8* } %"$nX_call_411", { %Uint32 (i8*, %Uint32)*, i8* }* %"$nX_8", align 8, !dbg !39 + %"$nX_409" = 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_410" = extractvalue { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$nX_409", 0 + %"$nX_envptr_411" = extractvalue { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$nX_409", 1 + %"$s_412" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %s, align 8 + %"$nX_call_413" = call { %Uint32 (i8*, %Uint32)*, i8* } %"$nX_fptr_410"(i8* %"$nX_envptr_411", { %Uint32 (i8*, %Uint32)*, i8* } %"$s_412"), !dbg !56 + store { %Uint32 (i8*, %Uint32)*, i8* } %"$nX_call_413", { %Uint32 (i8*, %Uint32)*, i8* }* %"$nX_8", align 8, !dbg !56 %"$nX_9" = alloca %Uint32, align 8 - %"$$nX_8_412" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %"$nX_8", align 8 - %"$$nX_8_fptr_413" = extractvalue { %Uint32 (i8*, %Uint32)*, i8* } %"$$nX_8_412", 0 - %"$$nX_8_envptr_414" = extractvalue { %Uint32 (i8*, %Uint32)*, i8* } %"$$nX_8_412", 1 - %"$$nX_8_call_415" = call %Uint32 %"$$nX_8_fptr_413"(i8* %"$$nX_8_envptr_414", %Uint32 %1), !dbg !39 - store %Uint32 %"$$nX_8_call_415", %Uint32* %"$nX_9", align 4, !dbg !39 - %"$$nX_9_416" = load %Uint32, %Uint32* %"$nX_9", align 4 - store %Uint32 %"$$nX_9_416", %Uint32* %nXsz, align 4, !dbg !39 - %"$gasrem_417" = load i64, i64* @_gasrem, align 8 - %"$gascmp_418" = icmp ugt i64 1, %"$gasrem_417" - br i1 %"$gascmp_418", label %"$out_of_gas_419", label %"$have_gas_420" - -"$out_of_gas_419": ; preds = %"$have_gas_405" - call void @_out_of_gas() - br label %"$have_gas_420" - -"$have_gas_420": ; preds = %"$out_of_gas_419", %"$have_gas_405" - %"$consume_421" = sub i64 %"$gasrem_417", 1 - store i64 %"$consume_421", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %Uint32* %"$nX_9", metadata !57, metadata !DIExpression()), !dbg !56 + %"$$nX_8_414" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %"$nX_8", align 8 + %"$$nX_8_fptr_415" = extractvalue { %Uint32 (i8*, %Uint32)*, i8* } %"$$nX_8_414", 0 + %"$$nX_8_envptr_416" = extractvalue { %Uint32 (i8*, %Uint32)*, i8* } %"$$nX_8_414", 1 + %"$$nX_8_call_417" = call %Uint32 %"$$nX_8_fptr_415"(i8* %"$$nX_8_envptr_416", %Uint32 %1), !dbg !56 + store %Uint32 %"$$nX_8_call_417", %Uint32* %"$nX_9", align 4, !dbg !56 + %"$$nX_9_418" = load %Uint32, %Uint32* %"$nX_9", align 4 + store %Uint32 %"$$nX_9_418", %Uint32* %nXsz, align 4, !dbg !56 + %"$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 = %"$have_gas_407" + call void @_out_of_gas() + br label %"$have_gas_422" + +"$have_gas_422": ; preds = %"$out_of_gas_421", %"$have_gas_407" + %"$consume_423" = sub i64 %"$gasrem_419", 1 + store i64 %"$consume_423", i64* @_gasrem, align 8 %"$mX_10" = alloca { %Uint32 (i8*, %Uint32)*, i8* }, align 8 - %"$mX_422" = 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_423" = extractvalue { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$mX_422", 0 - %"$mX_envptr_424" = extractvalue { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$mX_422", 1 - %"$s_425" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %s, align 8 - %"$mX_call_426" = call { %Uint32 (i8*, %Uint32)*, i8* } %"$mX_fptr_423"(i8* %"$mX_envptr_424", { %Uint32 (i8*, %Uint32)*, i8* } %"$s_425"), !dbg !40 - store { %Uint32 (i8*, %Uint32)*, i8* } %"$mX_call_426", { %Uint32 (i8*, %Uint32)*, i8* }* %"$mX_10", align 8, !dbg !40 + %"$mX_424" = 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_425" = extractvalue { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$mX_424", 0 + %"$mX_envptr_426" = extractvalue { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$mX_424", 1 + %"$s_427" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %s, align 8 + %"$mX_call_428" = call { %Uint32 (i8*, %Uint32)*, i8* } %"$mX_fptr_425"(i8* %"$mX_envptr_426", { %Uint32 (i8*, %Uint32)*, i8* } %"$s_427"), !dbg !58 + store { %Uint32 (i8*, %Uint32)*, i8* } %"$mX_call_428", { %Uint32 (i8*, %Uint32)*, i8* }* %"$mX_10", align 8, !dbg !58 %"$mX_11" = alloca %Uint32, align 8 - %"$$mX_10_427" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %"$mX_10", align 8 - %"$$mX_10_fptr_428" = extractvalue { %Uint32 (i8*, %Uint32)*, i8* } %"$$mX_10_427", 0 - %"$$mX_10_envptr_429" = extractvalue { %Uint32 (i8*, %Uint32)*, i8* } %"$$mX_10_427", 1 - %"$nXsz_430" = load %Uint32, %Uint32* %nXsz, align 4 - %"$$mX_10_call_431" = call %Uint32 %"$$mX_10_fptr_428"(i8* %"$$mX_10_envptr_429", %Uint32 %"$nXsz_430"), !dbg !40 - store %Uint32 %"$$mX_10_call_431", %Uint32* %"$mX_11", align 4, !dbg !40 - %"$$mX_11_432" = load %Uint32, %Uint32* %"$mX_11", align 4 - store %Uint32 %"$$mX_11_432", %Uint32* %"$retval_64", align 4, !dbg !40 - %"$$retval_64_433" = load %Uint32, %Uint32* %"$retval_64", align 4 - ret %Uint32 %"$$retval_64_433" + call void @llvm.dbg.declare(metadata %Uint32* %"$mX_11", metadata !59, metadata !DIExpression()), !dbg !58 + %"$$mX_10_429" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %"$mX_10", align 8 + %"$$mX_10_fptr_430" = extractvalue { %Uint32 (i8*, %Uint32)*, i8* } %"$$mX_10_429", 0 + %"$$mX_10_envptr_431" = extractvalue { %Uint32 (i8*, %Uint32)*, i8* } %"$$mX_10_429", 1 + %"$nXsz_432" = load %Uint32, %Uint32* %nXsz, align 4 + %"$$mX_10_call_433" = call %Uint32 %"$$mX_10_fptr_430"(i8* %"$$mX_10_envptr_431", %Uint32 %"$nXsz_432"), !dbg !58 + store %Uint32 %"$$mX_10_call_433", %Uint32* %"$mX_11", align 4, !dbg !58 + %"$$mX_11_434" = load %Uint32, %Uint32* %"$mX_11", align 4 + store %Uint32 %"$$mX_11_434", %Uint32* %"$retval_64", align 4, !dbg !58 + %"$$retval_64_435" = load %Uint32, %Uint32* %"$retval_64", align 4 + ret %Uint32 %"$$retval_64_435" } -define internal { %Uint32 (i8*, %Uint32)*, i8* } @"$fundef_61"(%"$$fundef_61_env_124"* %0, { %Uint32 (i8*, %Uint32)*, i8* } %1) !dbg !41 { +define internal { %Uint32 (i8*, %Uint32)*, i8* } @"$fundef_61"(%"$$fundef_61_env_124"* %0, { %Uint32 (i8*, %Uint32)*, i8* } %1) !dbg !60 { entry: - %"$$fundef_61_env_m_338" = getelementptr inbounds %"$$fundef_61_env_124", %"$$fundef_61_env_124"* %0, i32 0, i32 0 - %"$m_envload_339" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_61_env_m_338", align 8 + %"$$fundef_61_env_m_340" = getelementptr inbounds %"$$fundef_61_env_124", %"$$fundef_61_env_124"* %0, i32 0, i32 0 + %"$m_envload_341" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_61_env_m_340", align 8 %m = alloca { i8*, i8* }*, align 8 - store { i8*, i8* }* %"$m_envload_339", { i8*, i8* }** %m, align 8 - %"$$fundef_61_env_n_340" = getelementptr inbounds %"$$fundef_61_env_124", %"$$fundef_61_env_124"* %0, i32 0, i32 1 - %"$n_envload_341" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_61_env_n_340", align 8 + store { i8*, i8* }* %"$m_envload_341", { i8*, i8* }** %m, align 8 + %"$$fundef_61_env_n_342" = getelementptr inbounds %"$$fundef_61_env_124", %"$$fundef_61_env_124"* %0, i32 0, i32 1 + %"$n_envload_343" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_61_env_n_342", align 8 %n = alloca { i8*, i8* }*, align 8 - store { i8*, i8* }* %"$n_envload_341", { i8*, i8* }** %n, align 8 + store { i8*, i8* }* %"$n_envload_343", { i8*, i8* }** %n, align 8 %"$retval_62" = alloca { %Uint32 (i8*, %Uint32)*, i8* }, 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" - -"$out_of_gas_344": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_345" - -"$have_gas_345": ; preds = %"$out_of_gas_344", %entry - %"$consume_346" = sub i64 %"$gasrem_342", 1 - store i64 %"$consume_346", i64* @_gasrem, align 8 - %"$$fundef_63_envp_347_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_63_envp_347_salloc" = call i8* @_salloc(i8* %"$$fundef_63_envp_347_load", i64 32) - %"$$fundef_63_envp_347" = bitcast i8* %"$$fundef_63_envp_347_salloc" to %"$$fundef_63_env_123"* - %"$$fundef_63_env_voidp_349" = bitcast %"$$fundef_63_env_123"* %"$$fundef_63_envp_347" to i8* - %"$$fundef_63_cloval_350" = insertvalue { %Uint32 (i8*, %Uint32)*, i8* } { %Uint32 (i8*, %Uint32)* bitcast (%Uint32 (%"$$fundef_63_env_123"*, %Uint32)* @"$fundef_63" to %Uint32 (i8*, %Uint32)*), i8* undef }, i8* %"$$fundef_63_env_voidp_349", 1 - %"$$fundef_63_env_m_351" = getelementptr inbounds %"$$fundef_63_env_123", %"$$fundef_63_env_123"* %"$$fundef_63_envp_347", i32 0, i32 0 - %"$m_352" = load { i8*, i8* }*, { i8*, i8* }** %m, align 8 - store { i8*, i8* }* %"$m_352", { i8*, i8* }** %"$$fundef_63_env_m_351", align 8 - %"$$fundef_63_env_n_353" = getelementptr inbounds %"$$fundef_63_env_123", %"$$fundef_63_env_123"* %"$$fundef_63_envp_347", i32 0, i32 1 - %"$n_354" = load { i8*, i8* }*, { i8*, i8* }** %n, align 8 - store { i8*, i8* }* %"$n_354", { i8*, i8* }** %"$$fundef_63_env_n_353", align 8 - %"$$fundef_63_env_s_355" = getelementptr inbounds %"$$fundef_63_env_123", %"$$fundef_63_env_123"* %"$$fundef_63_envp_347", i32 0, i32 2 - store { %Uint32 (i8*, %Uint32)*, i8* } %1, { %Uint32 (i8*, %Uint32)*, i8* }* %"$$fundef_63_env_s_355", align 8 - store { %Uint32 (i8*, %Uint32)*, i8* } %"$$fundef_63_cloval_350", { %Uint32 (i8*, %Uint32)*, i8* }* %"$retval_62", align 8, !dbg !42 - %"$$retval_62_356" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %"$retval_62", align 8 - ret { %Uint32 (i8*, %Uint32)*, i8* } %"$$retval_62_356" + %"$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_346": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_347" + +"$have_gas_347": ; preds = %"$out_of_gas_346", %entry + %"$consume_348" = sub i64 %"$gasrem_344", 1 + store i64 %"$consume_348", i64* @_gasrem, align 8 + %"$$fundef_63_envp_349_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_63_envp_349_salloc" = call i8* @_salloc(i8* %"$$fundef_63_envp_349_load", i64 32) + %"$$fundef_63_envp_349" = bitcast i8* %"$$fundef_63_envp_349_salloc" to %"$$fundef_63_env_123"* + %"$$fundef_63_env_voidp_351" = bitcast %"$$fundef_63_env_123"* %"$$fundef_63_envp_349" to i8* + %"$$fundef_63_cloval_352" = insertvalue { %Uint32 (i8*, %Uint32)*, i8* } { %Uint32 (i8*, %Uint32)* bitcast (%Uint32 (%"$$fundef_63_env_123"*, %Uint32)* @"$fundef_63" to %Uint32 (i8*, %Uint32)*), i8* undef }, i8* %"$$fundef_63_env_voidp_351", 1 + %"$$fundef_63_env_m_353" = getelementptr inbounds %"$$fundef_63_env_123", %"$$fundef_63_env_123"* %"$$fundef_63_envp_349", i32 0, i32 0 + %"$m_354" = load { i8*, i8* }*, { i8*, i8* }** %m, align 8 + store { i8*, i8* }* %"$m_354", { i8*, i8* }** %"$$fundef_63_env_m_353", align 8 + %"$$fundef_63_env_n_355" = getelementptr inbounds %"$$fundef_63_env_123", %"$$fundef_63_env_123"* %"$$fundef_63_envp_349", i32 0, i32 1 + %"$n_356" = load { i8*, i8* }*, { i8*, i8* }** %n, align 8 + store { i8*, i8* }* %"$n_356", { i8*, i8* }** %"$$fundef_63_env_n_355", align 8 + %"$$fundef_63_env_s_357" = getelementptr inbounds %"$$fundef_63_env_123", %"$$fundef_63_env_123"* %"$$fundef_63_envp_349", i32 0, i32 2 + store { %Uint32 (i8*, %Uint32)*, i8* } %1, { %Uint32 (i8*, %Uint32)*, i8* }* %"$$fundef_63_env_s_357", align 8 + store { %Uint32 (i8*, %Uint32)*, i8* } %"$$fundef_63_cloval_352", { %Uint32 (i8*, %Uint32)*, i8* }* %"$retval_62", align 8, !dbg !61 + %"$$retval_62_358" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %"$retval_62", align 8 + ret { %Uint32 (i8*, %Uint32)*, i8* } %"$$retval_62_358" } -define internal { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } @"$fundef_59"(%"$$fundef_59_env_125"* %0) !dbg !43 { +define internal { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } @"$fundef_59"(%"$$fundef_59_env_125"* %0) !dbg !62 { entry: - %"$$fundef_59_env_m_320" = getelementptr inbounds %"$$fundef_59_env_125", %"$$fundef_59_env_125"* %0, i32 0, i32 0 - %"$m_envload_321" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_59_env_m_320", align 8 + %"$$fundef_59_env_m_322" = getelementptr inbounds %"$$fundef_59_env_125", %"$$fundef_59_env_125"* %0, i32 0, i32 0 + %"$m_envload_323" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_59_env_m_322", align 8 %m = alloca { i8*, i8* }*, align 8 - store { i8*, i8* }* %"$m_envload_321", { i8*, i8* }** %m, align 8 - %"$$fundef_59_env_n_322" = getelementptr inbounds %"$$fundef_59_env_125", %"$$fundef_59_env_125"* %0, i32 0, i32 1 - %"$n_envload_323" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_59_env_n_322", align 8 + store { i8*, i8* }* %"$m_envload_323", { i8*, i8* }** %m, align 8 + %"$$fundef_59_env_n_324" = getelementptr inbounds %"$$fundef_59_env_125", %"$$fundef_59_env_125"* %0, i32 0, i32 1 + %"$n_envload_325" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_59_env_n_324", align 8 %n = alloca { i8*, i8* }*, align 8 - store { i8*, i8* }* %"$n_envload_323", { i8*, i8* }** %n, align 8 + store { i8*, i8* }* %"$n_envload_325", { i8*, i8* }** %n, align 8 %"$retval_60" = alloca { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, align 8 - %"$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" - -"$out_of_gas_326": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_327" - -"$have_gas_327": ; preds = %"$out_of_gas_326", %entry - %"$consume_328" = sub i64 %"$gasrem_324", 1 - store i64 %"$consume_328", i64* @_gasrem, align 8 - %"$$fundef_61_envp_329_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_61_envp_329_salloc" = call i8* @_salloc(i8* %"$$fundef_61_envp_329_load", i64 16) - %"$$fundef_61_envp_329" = bitcast i8* %"$$fundef_61_envp_329_salloc" to %"$$fundef_61_env_124"* - %"$$fundef_61_env_voidp_331" = bitcast %"$$fundef_61_env_124"* %"$$fundef_61_envp_329" to i8* - %"$$fundef_61_cloval_332" = 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_124"*, { %Uint32 (i8*, %Uint32)*, i8* })* @"$fundef_61" to { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*), i8* undef }, i8* %"$$fundef_61_env_voidp_331", 1 - %"$$fundef_61_env_m_333" = getelementptr inbounds %"$$fundef_61_env_124", %"$$fundef_61_env_124"* %"$$fundef_61_envp_329", i32 0, i32 0 - %"$m_334" = load { i8*, i8* }*, { i8*, i8* }** %m, align 8 - store { i8*, i8* }* %"$m_334", { i8*, i8* }** %"$$fundef_61_env_m_333", align 8 - %"$$fundef_61_env_n_335" = getelementptr inbounds %"$$fundef_61_env_124", %"$$fundef_61_env_124"* %"$$fundef_61_envp_329", i32 0, i32 1 - %"$n_336" = load { i8*, i8* }*, { i8*, i8* }** %n, align 8 - store { i8*, i8* }* %"$n_336", { i8*, i8* }** %"$$fundef_61_env_n_335", align 8 - store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$$fundef_61_cloval_332", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$retval_60", align 8, !dbg !44 - %"$$retval_60_337" = 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_337" + %"$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 + call void @_out_of_gas() + br label %"$have_gas_329" + +"$have_gas_329": ; preds = %"$out_of_gas_328", %entry + %"$consume_330" = sub i64 %"$gasrem_326", 1 + store i64 %"$consume_330", i64* @_gasrem, align 8 + %"$$fundef_61_envp_331_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_61_envp_331_salloc" = call i8* @_salloc(i8* %"$$fundef_61_envp_331_load", i64 16) + %"$$fundef_61_envp_331" = bitcast i8* %"$$fundef_61_envp_331_salloc" to %"$$fundef_61_env_124"* + %"$$fundef_61_env_voidp_333" = bitcast %"$$fundef_61_env_124"* %"$$fundef_61_envp_331" to i8* + %"$$fundef_61_cloval_334" = 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_124"*, { %Uint32 (i8*, %Uint32)*, i8* })* @"$fundef_61" to { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*), i8* undef }, i8* %"$$fundef_61_env_voidp_333", 1 + %"$$fundef_61_env_m_335" = getelementptr inbounds %"$$fundef_61_env_124", %"$$fundef_61_env_124"* %"$$fundef_61_envp_331", i32 0, i32 0 + %"$m_336" = load { i8*, i8* }*, { i8*, i8* }** %m, align 8 + store { i8*, i8* }* %"$m_336", { i8*, i8* }** %"$$fundef_61_env_m_335", align 8 + %"$$fundef_61_env_n_337" = getelementptr inbounds %"$$fundef_61_env_124", %"$$fundef_61_env_124"* %"$$fundef_61_envp_331", i32 0, i32 1 + %"$n_338" = load { i8*, i8* }*, { i8*, i8* }** %n, align 8 + store { i8*, i8* }* %"$n_338", { i8*, i8* }** %"$$fundef_61_env_n_337", align 8 + store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$$fundef_61_cloval_334", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$retval_60", align 8, !dbg !63 + %"$$retval_60_339" = 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_339" } -define internal { i8*, i8* }* @"$fundef_57"(%"$$fundef_57_env_126"* %0, { i8*, i8* }* %1) !dbg !45 { +define internal { i8*, i8* }* @"$fundef_57"(%"$$fundef_57_env_126"* %0, { i8*, i8* }* %1) !dbg !64 { entry: - %"$$fundef_57_env_m_297" = getelementptr inbounds %"$$fundef_57_env_126", %"$$fundef_57_env_126"* %0, i32 0, i32 0 - %"$m_envload_298" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_57_env_m_297", align 8 + %"$$fundef_57_env_m_299" = getelementptr inbounds %"$$fundef_57_env_126", %"$$fundef_57_env_126"* %0, i32 0, i32 0 + %"$m_envload_300" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_57_env_m_299", align 8 %m = alloca { i8*, i8* }*, align 8 - store { i8*, i8* }* %"$m_envload_298", { i8*, i8* }** %m, align 8 + store { i8*, i8* }* %"$m_envload_300", { i8*, i8* }** %m, align 8 %"$retval_58" = alloca { 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 = %entry - call void @_out_of_gas() - br label %"$have_gas_302" - -"$have_gas_302": ; preds = %"$out_of_gas_301", %entry - %"$consume_303" = sub i64 %"$gasrem_299", 1 - store i64 %"$consume_303", i64* @_gasrem, align 8 - %"$$fundef_59_envp_304_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_59_envp_304_salloc" = call i8* @_salloc(i8* %"$$fundef_59_envp_304_load", i64 16) - %"$$fundef_59_envp_304" = bitcast i8* %"$$fundef_59_envp_304_salloc" to %"$$fundef_59_env_125"* - %"$$fundef_59_env_voidp_306" = bitcast %"$$fundef_59_env_125"* %"$$fundef_59_envp_304" to i8* - %"$$fundef_59_cloval_307" = 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_59_env_125"*)* @"$fundef_59" to { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*)*), i8* undef }, i8* %"$$fundef_59_env_voidp_306", 1 - %"$$fundef_59_env_m_308" = getelementptr inbounds %"$$fundef_59_env_125", %"$$fundef_59_env_125"* %"$$fundef_59_envp_304", i32 0, i32 0 - %"$m_309" = load { i8*, i8* }*, { i8*, i8* }** %m, align 8 - store { i8*, i8* }* %"$m_309", { i8*, i8* }** %"$$fundef_59_env_m_308", align 8 - %"$$fundef_59_env_n_310" = getelementptr inbounds %"$$fundef_59_env_125", %"$$fundef_59_env_125"* %"$$fundef_59_envp_304", i32 0, i32 1 - store { i8*, i8* }* %1, { i8*, i8* }** %"$$fundef_59_env_n_310", align 8 - %"$$fundef_65_env_voidp_312" = bitcast %"$$fundef_59_env_125"* %"$$fundef_59_envp_304" to i8* - %"$$fundef_65_cloval_313" = 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_65_env_122"*)* @"$fundef_65" to { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } (i8*)*), i8* undef }, i8* %"$$fundef_65_env_voidp_312", 1 - %"$dyndisp_table_314_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$dyndisp_table_314_salloc_salloc" = call i8* @_salloc(i8* %"$dyndisp_table_314_salloc_load", i64 32) - %"$dyndisp_table_314_salloc" = bitcast i8* %"$dyndisp_table_314_salloc_salloc" to [2 x { i8*, i8* }]* - %"$dyndisp_table_314" = bitcast [2 x { i8*, i8* }]* %"$dyndisp_table_314_salloc" to { i8*, i8* }* - %"$dyndisp_gep_315" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_314", i32 0 - %"$dyndisp_pcast_316" = bitcast { i8*, i8* }* %"$dyndisp_gep_315" 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_59_cloval_307", { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* }* %"$dyndisp_pcast_316", align 8 - %"$dyndisp_gep_317" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_314", i32 1 - %"$dyndisp_pcast_318" = bitcast { i8*, i8* }* %"$dyndisp_gep_317" 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_65_cloval_313", { { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } (i8*)*, i8* }* %"$dyndisp_pcast_318", align 8 - store { i8*, i8* }* %"$dyndisp_table_314", { i8*, i8* }** %"$retval_58", align 8, !dbg !46 - %"$$retval_58_319" = load { i8*, i8* }*, { i8*, i8* }** %"$retval_58", align 8 - ret { i8*, i8* }* %"$$retval_58_319" + %"$gasrem_301" = load i64, i64* @_gasrem, align 8 + %"$gascmp_302" = icmp ugt i64 1, %"$gasrem_301" + br i1 %"$gascmp_302", label %"$out_of_gas_303", label %"$have_gas_304" + +"$out_of_gas_303": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_304" + +"$have_gas_304": ; preds = %"$out_of_gas_303", %entry + %"$consume_305" = sub i64 %"$gasrem_301", 1 + store i64 %"$consume_305", i64* @_gasrem, align 8 + %"$$fundef_59_envp_306_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_59_envp_306_salloc" = call i8* @_salloc(i8* %"$$fundef_59_envp_306_load", i64 16) + %"$$fundef_59_envp_306" = bitcast i8* %"$$fundef_59_envp_306_salloc" to %"$$fundef_59_env_125"* + %"$$fundef_59_env_voidp_308" = bitcast %"$$fundef_59_env_125"* %"$$fundef_59_envp_306" to i8* + %"$$fundef_59_cloval_309" = 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_59_env_125"*)* @"$fundef_59" to { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*)*), i8* undef }, i8* %"$$fundef_59_env_voidp_308", 1 + %"$$fundef_59_env_m_310" = getelementptr inbounds %"$$fundef_59_env_125", %"$$fundef_59_env_125"* %"$$fundef_59_envp_306", i32 0, i32 0 + %"$m_311" = load { i8*, i8* }*, { i8*, i8* }** %m, align 8 + store { i8*, i8* }* %"$m_311", { i8*, i8* }** %"$$fundef_59_env_m_310", align 8 + %"$$fundef_59_env_n_312" = getelementptr inbounds %"$$fundef_59_env_125", %"$$fundef_59_env_125"* %"$$fundef_59_envp_306", i32 0, i32 1 + store { i8*, i8* }* %1, { i8*, i8* }** %"$$fundef_59_env_n_312", align 8 + %"$$fundef_65_env_voidp_314" = bitcast %"$$fundef_59_env_125"* %"$$fundef_59_envp_306" to i8* + %"$$fundef_65_cloval_315" = 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_65_env_122"*)* @"$fundef_65" to { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } (i8*)*), i8* undef }, i8* %"$$fundef_65_env_voidp_314", 1 + %"$dyndisp_table_316_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$dyndisp_table_316_salloc_salloc" = call i8* @_salloc(i8* %"$dyndisp_table_316_salloc_load", i64 32) + %"$dyndisp_table_316_salloc" = bitcast i8* %"$dyndisp_table_316_salloc_salloc" to [2 x { i8*, i8* }]* + %"$dyndisp_table_316" = bitcast [2 x { i8*, i8* }]* %"$dyndisp_table_316_salloc" to { i8*, i8* }* + %"$dyndisp_gep_317" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_316", i32 0 + %"$dyndisp_pcast_318" = bitcast { i8*, i8* }* %"$dyndisp_gep_317" 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_59_cloval_309", { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* }* %"$dyndisp_pcast_318", align 8 + %"$dyndisp_gep_319" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_316", i32 1 + %"$dyndisp_pcast_320" = bitcast { i8*, i8* }* %"$dyndisp_gep_319" 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_65_cloval_315", { { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } (i8*)*, i8* }* %"$dyndisp_pcast_320", align 8 + store { i8*, i8* }* %"$dyndisp_table_316", { i8*, i8* }** %"$retval_58", align 8, !dbg !65 + %"$$retval_58_321" = load { i8*, i8* }*, { i8*, i8* }** %"$retval_58", align 8 + ret { i8*, i8* }* %"$$retval_58_321" } -define internal { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } @"$fundef_55"(%"$$fundef_55_env_127"* %0, { i8*, i8* }* %1) !dbg !47 { +define internal { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } @"$fundef_55"(%"$$fundef_55_env_127"* %0, { i8*, i8* }* %1) !dbg !66 { entry: %"$retval_56" = alloca { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }, align 8 - %"$gasrem_286" = load i64, i64* @_gasrem, align 8 - %"$gascmp_287" = icmp ugt i64 1, %"$gasrem_286" - br i1 %"$gascmp_287", label %"$out_of_gas_288", label %"$have_gas_289" - -"$out_of_gas_288": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_289" - -"$have_gas_289": ; preds = %"$out_of_gas_288", %entry - %"$consume_290" = sub i64 %"$gasrem_286", 1 - store i64 %"$consume_290", i64* @_gasrem, align 8 - %"$$fundef_57_envp_291_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_57_envp_291_salloc" = call i8* @_salloc(i8* %"$$fundef_57_envp_291_load", i64 8) - %"$$fundef_57_envp_291" = bitcast i8* %"$$fundef_57_envp_291_salloc" to %"$$fundef_57_env_126"* - %"$$fundef_57_env_voidp_293" = bitcast %"$$fundef_57_env_126"* %"$$fundef_57_envp_291" to i8* - %"$$fundef_57_cloval_294" = insertvalue { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } { { i8*, i8* }* (i8*, { i8*, i8* }*)* bitcast ({ i8*, i8* }* (%"$$fundef_57_env_126"*, { i8*, i8* }*)* @"$fundef_57" to { i8*, i8* }* (i8*, { i8*, i8* }*)*), i8* undef }, i8* %"$$fundef_57_env_voidp_293", 1 - %"$$fundef_57_env_m_295" = getelementptr inbounds %"$$fundef_57_env_126", %"$$fundef_57_env_126"* %"$$fundef_57_envp_291", i32 0, i32 0 - store { i8*, i8* }* %1, { i8*, i8* }** %"$$fundef_57_env_m_295", align 8 - store { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$$fundef_57_cloval_294", { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %"$retval_56", align 8, !dbg !48 - %"$$retval_56_296" = 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_296" + %"$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_57_envp_293_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_57_envp_293_salloc" = call i8* @_salloc(i8* %"$$fundef_57_envp_293_load", i64 8) + %"$$fundef_57_envp_293" = bitcast i8* %"$$fundef_57_envp_293_salloc" to %"$$fundef_57_env_126"* + %"$$fundef_57_env_voidp_295" = bitcast %"$$fundef_57_env_126"* %"$$fundef_57_envp_293" to i8* + %"$$fundef_57_cloval_296" = insertvalue { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } { { i8*, i8* }* (i8*, { i8*, i8* }*)* bitcast ({ i8*, i8* }* (%"$$fundef_57_env_126"*, { i8*, i8* }*)* @"$fundef_57" to { i8*, i8* }* (i8*, { i8*, i8* }*)*), i8* undef }, i8* %"$$fundef_57_env_voidp_295", 1 + %"$$fundef_57_env_m_297" = getelementptr inbounds %"$$fundef_57_env_126", %"$$fundef_57_env_126"* %"$$fundef_57_envp_293", i32 0, i32 0 + store { i8*, i8* }* %1, { i8*, i8* }** %"$$fundef_57_env_m_297", align 8 + store { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$$fundef_57_cloval_296", { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %"$retval_56", align 8, !dbg !67 + %"$$retval_56_298" = 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_298" } -define internal { i8*, i8* }* @"$fundef_53"(%"$$fundef_53_env_128"* %0, { i8*, i8* }* %1) !dbg !49 { +define internal { i8*, i8* }* @"$fundef_53"(%"$$fundef_53_env_128"* %0, { i8*, i8* }* %1) !dbg !68 { entry: - %"$$fundef_53_env_s_257" = getelementptr inbounds %"$$fundef_53_env_128", %"$$fundef_53_env_128"* %0, i32 0, i32 0 - %"$s_envload_258" = load { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %"$$fundef_53_env_s_257", align 8 + %"$$fundef_53_env_s_259" = getelementptr inbounds %"$$fundef_53_env_128", %"$$fundef_53_env_128"* %0, i32 0, i32 0 + %"$s_envload_260" = load { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %"$$fundef_53_env_s_259", align 8 %s = alloca { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }, align 8 - store { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$s_envload_258", { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %s, align 8 + store { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$s_envload_260", { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %s, align 8 %"$retval_54" = alloca { i8*, i8* }*, align 8 - %"$gasrem_259" = load i64, i64* @_gasrem, align 8 - %"$gascmp_260" = icmp ugt i64 1, %"$gasrem_259" - br i1 %"$gascmp_260", label %"$out_of_gas_261", label %"$have_gas_262" + %"$gasrem_261" = load i64, i64* @_gasrem, align 8 + %"$gascmp_262" = icmp ugt i64 1, %"$gasrem_261" + br i1 %"$gascmp_262", label %"$out_of_gas_263", label %"$have_gas_264" -"$out_of_gas_261": ; preds = %entry +"$out_of_gas_263": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_262" + br label %"$have_gas_264" -"$have_gas_262": ; preds = %"$out_of_gas_261", %entry - %"$consume_263" = sub i64 %"$gasrem_259", 1 - store i64 %"$consume_263", i64* @_gasrem, align 8 +"$have_gas_264": ; preds = %"$out_of_gas_263", %entry + %"$consume_265" = sub i64 %"$gasrem_261", 1 + store i64 %"$consume_265", i64* @_gasrem, align 8 %sz = alloca { i8*, i8* }*, 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" + %"$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_266": ; preds = %"$have_gas_262" +"$out_of_gas_268": ; preds = %"$have_gas_264" call void @_out_of_gas() - br label %"$have_gas_267" + br label %"$have_gas_269" -"$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 +"$have_gas_269": ; preds = %"$out_of_gas_268", %"$have_gas_264" + %"$consume_270" = sub i64 %"$gasrem_266", 1 + store i64 %"$consume_270", i64* @_gasrem, align 8 %"$s_6" = alloca { i8*, i8* }*, align 8 - %"$s_269" = load { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %s, align 8 - %"$s_fptr_270" = extractvalue { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$s_269", 0 - %"$s_envptr_271" = extractvalue { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$s_269", 1 - %"$s_call_272" = call { i8*, i8* }* %"$s_fptr_270"(i8* %"$s_envptr_271", { i8*, i8* }* %1), !dbg !50 - store { i8*, i8* }* %"$s_call_272", { i8*, i8* }** %"$s_6", align 8, !dbg !50 - %"$$s_6_273" = load { i8*, i8* }*, { i8*, i8* }** %"$s_6", align 8 - store { i8*, i8* }* %"$$s_6_273", { i8*, i8* }** %sz, align 8, !dbg !50 - %"$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 = %"$have_gas_267" - call void @_out_of_gas() - br label %"$have_gas_277" - -"$have_gas_277": ; preds = %"$out_of_gas_276", %"$have_gas_267" - %"$consume_278" = sub i64 %"$gasrem_274", 1 - store i64 %"$consume_278", i64* @_gasrem, 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 + %"$s_call_274" = call { i8*, i8* }* %"$s_fptr_272"(i8* %"$s_envptr_273", { i8*, i8* }* %1), !dbg !69 + store { i8*, i8* }* %"$s_call_274", { i8*, i8* }** %"$s_6", align 8, !dbg !69 + %"$$s_6_275" = load { i8*, i8* }*, { i8*, i8* }** %"$s_6", align 8 + store { i8*, i8* }* %"$$s_6_275", { i8*, i8* }** %sz, align 8, !dbg !69 + %"$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 = %"$have_gas_269" + call void @_out_of_gas() + br label %"$have_gas_279" + +"$have_gas_279": ; preds = %"$out_of_gas_278", %"$have_gas_269" + %"$consume_280" = sub i64 %"$gasrem_276", 1 + store i64 %"$consume_280", i64* @_gasrem, align 8 %"$s_7" = alloca { i8*, i8* }*, align 8 - %"$s_279" = load { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %s, align 8 - %"$s_fptr_280" = extractvalue { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$s_279", 0 - %"$s_envptr_281" = extractvalue { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$s_279", 1 - %"$sz_282" = load { i8*, i8* }*, { i8*, i8* }** %sz, align 8 - %"$s_call_283" = call { i8*, i8* }* %"$s_fptr_280"(i8* %"$s_envptr_281", { i8*, i8* }* %"$sz_282"), !dbg !51 - store { i8*, i8* }* %"$s_call_283", { i8*, i8* }** %"$s_7", align 8, !dbg !51 - %"$$s_7_284" = load { i8*, i8* }*, { i8*, i8* }** %"$s_7", align 8 - store { i8*, i8* }* %"$$s_7_284", { i8*, i8* }** %"$retval_54", align 8, !dbg !51 - %"$$retval_54_285" = load { i8*, i8* }*, { i8*, i8* }** %"$retval_54", align 8 - ret { i8*, i8* }* %"$$retval_54_285" + %"$s_281" = load { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %s, align 8 + %"$s_fptr_282" = extractvalue { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$s_281", 0 + %"$s_envptr_283" = extractvalue { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$s_281", 1 + %"$sz_284" = load { i8*, i8* }*, { i8*, i8* }** %sz, align 8 + %"$s_call_285" = call { i8*, i8* }* %"$s_fptr_282"(i8* %"$s_envptr_283", { i8*, i8* }* %"$sz_284"), !dbg !70 + store { i8*, i8* }* %"$s_call_285", { i8*, i8* }** %"$s_7", align 8, !dbg !70 + %"$$s_7_286" = load { i8*, i8* }*, { i8*, i8* }** %"$s_7", align 8 + store { i8*, i8* }* %"$$s_7_286", { i8*, i8* }** %"$retval_54", align 8, !dbg !70 + %"$$retval_54_287" = load { i8*, i8* }*, { i8*, i8* }** %"$retval_54", align 8 + ret { i8*, i8* }* %"$$retval_54_287" } -define internal { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } @"$fundef_51"(%"$$fundef_51_env_129"* %0, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %1) !dbg !52 { +define internal { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } @"$fundef_51"(%"$$fundef_51_env_129"* %0, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %1) !dbg !71 { entry: %"$retval_52" = alloca { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }, 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 = %entry - call void @_out_of_gas() - br label %"$have_gas_249" - -"$have_gas_249": ; preds = %"$out_of_gas_248", %entry - %"$consume_250" = sub i64 %"$gasrem_246", 1 - store i64 %"$consume_250", i64* @_gasrem, align 8 - %"$$fundef_53_envp_251_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_53_envp_251_salloc" = call i8* @_salloc(i8* %"$$fundef_53_envp_251_load", i64 16) - %"$$fundef_53_envp_251" = bitcast i8* %"$$fundef_53_envp_251_salloc" to %"$$fundef_53_env_128"* - %"$$fundef_53_env_voidp_253" = bitcast %"$$fundef_53_env_128"* %"$$fundef_53_envp_251" to i8* - %"$$fundef_53_cloval_254" = insertvalue { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } { { i8*, i8* }* (i8*, { i8*, i8* }*)* bitcast ({ i8*, i8* }* (%"$$fundef_53_env_128"*, { i8*, i8* }*)* @"$fundef_53" to { i8*, i8* }* (i8*, { i8*, i8* }*)*), i8* undef }, i8* %"$$fundef_53_env_voidp_253", 1 - %"$$fundef_53_env_s_255" = getelementptr inbounds %"$$fundef_53_env_128", %"$$fundef_53_env_128"* %"$$fundef_53_envp_251", i32 0, i32 0 - store { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %1, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %"$$fundef_53_env_s_255", align 8 - store { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$$fundef_53_cloval_254", { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %"$retval_52", align 8, !dbg !53 - %"$$retval_52_256" = load { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %"$retval_52", align 8 - ret { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$$retval_52_256" + %"$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 = %entry + call void @_out_of_gas() + br label %"$have_gas_251" + +"$have_gas_251": ; preds = %"$out_of_gas_250", %entry + %"$consume_252" = sub i64 %"$gasrem_248", 1 + store i64 %"$consume_252", i64* @_gasrem, align 8 + %"$$fundef_53_envp_253_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_53_envp_253_salloc" = call i8* @_salloc(i8* %"$$fundef_53_envp_253_load", i64 16) + %"$$fundef_53_envp_253" = bitcast i8* %"$$fundef_53_envp_253_salloc" to %"$$fundef_53_env_128"* + %"$$fundef_53_env_voidp_255" = bitcast %"$$fundef_53_env_128"* %"$$fundef_53_envp_253" to i8* + %"$$fundef_53_cloval_256" = insertvalue { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } { { i8*, i8* }* (i8*, { i8*, i8* }*)* bitcast ({ i8*, i8* }* (%"$$fundef_53_env_128"*, { i8*, i8* }*)* @"$fundef_53" to { i8*, i8* }* (i8*, { i8*, i8* }*)*), i8* undef }, i8* %"$$fundef_53_env_voidp_255", 1 + %"$$fundef_53_env_s_257" = getelementptr inbounds %"$$fundef_53_env_128", %"$$fundef_53_env_128"* %"$$fundef_53_envp_253", i32 0, i32 0 + store { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %1, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %"$$fundef_53_env_s_257", align 8 + store { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$$fundef_53_cloval_256", { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %"$retval_52", align 8, !dbg !72 + %"$$retval_52_258" = load { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %"$retval_52", align 8 + ret { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$$retval_52_258" } -define internal { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } @"$fundef_49"(%"$$fundef_49_env_130"* %0) !dbg !54 { +define internal { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } @"$fundef_49"(%"$$fundef_49_env_130"* %0) !dbg !73 { entry: %"$retval_50" = alloca { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, 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" + %"$gasrem_239" = load i64, i64* @_gasrem, align 8 + %"$gascmp_240" = icmp ugt i64 1, %"$gasrem_239" + br i1 %"$gascmp_240", label %"$out_of_gas_241", label %"$have_gas_242" -"$out_of_gas_239": ; preds = %entry +"$out_of_gas_241": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_240" + br label %"$have_gas_242" -"$have_gas_240": ; preds = %"$out_of_gas_239", %entry - %"$consume_241" = sub i64 %"$gasrem_237", 1 - store i64 %"$consume_241", 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_51_env_129"*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })* @"$fundef_51" 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_50", align 8, !dbg !55 - %"$$retval_50_245" = 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_50", align 8 - ret { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } %"$$retval_50_245" +"$have_gas_242": ; preds = %"$out_of_gas_241", %entry + %"$consume_243" = sub i64 %"$gasrem_239", 1 + store i64 %"$consume_243", 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_51_env_129"*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })* @"$fundef_51" 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_50", align 8, !dbg !74 + %"$$retval_50_247" = 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_50", align 8 + ret { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } %"$$retval_50_247" } -define internal %Uint32 @"$fundef_47"(%"$$fundef_47_env_131"* %0, %Uint32 %1) !dbg !56 { +define internal %Uint32 @"$fundef_47"(%"$$fundef_47_env_131"* %0, %Uint32 %1) !dbg !75 { entry: - %"$$fundef_47_env_s_208" = getelementptr inbounds %"$$fundef_47_env_131", %"$$fundef_47_env_131"* %0, i32 0, i32 0 - %"$s_envload_209" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %"$$fundef_47_env_s_208", align 8 + %"$z_238" = alloca %Uint32, align 8 + store %Uint32 %1, %Uint32* %"$z_238", align 4 + call void @llvm.dbg.declare(metadata %Uint32* %"$z_238", metadata !76, metadata !DIExpression()), !dbg !77 + %"$$fundef_47_env_s_209" = getelementptr inbounds %"$$fundef_47_env_131", %"$$fundef_47_env_131"* %0, i32 0, i32 0 + %"$s_envload_210" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %"$$fundef_47_env_s_209", align 8 %s = alloca { %Uint32 (i8*, %Uint32)*, i8* }, align 8 - store { %Uint32 (i8*, %Uint32)*, i8* } %"$s_envload_209", { %Uint32 (i8*, %Uint32)*, i8* }* %s, align 8 + store { %Uint32 (i8*, %Uint32)*, i8* } %"$s_envload_210", { %Uint32 (i8*, %Uint32)*, i8* }* %s, align 8 %"$retval_48" = alloca %Uint32, align 8 - %"$gasrem_210" = load i64, i64* @_gasrem, align 8 - %"$gascmp_211" = icmp ugt i64 1, %"$gasrem_210" - br i1 %"$gascmp_211", label %"$out_of_gas_212", label %"$have_gas_213" + call void @llvm.dbg.declare(metadata %Uint32* %"$retval_48", metadata !78, metadata !DIExpression()), !dbg !79 + %"$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_212": ; preds = %entry +"$out_of_gas_213": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_213" + br label %"$have_gas_214" -"$have_gas_213": ; preds = %"$out_of_gas_212", %entry - %"$consume_214" = sub i64 %"$gasrem_210", 1 - store i64 %"$consume_214", i64* @_gasrem, align 8 +"$have_gas_214": ; preds = %"$out_of_gas_213", %entry + %"$consume_215" = sub i64 %"$gasrem_211", 1 + store i64 %"$consume_215", i64* @_gasrem, align 8 %sz = alloca %Uint32, align 8 - %"$gasrem_215" = load i64, i64* @_gasrem, align 8 - %"$gascmp_216" = icmp ugt i64 1, %"$gasrem_215" - br i1 %"$gascmp_216", label %"$out_of_gas_217", label %"$have_gas_218" + call void @llvm.dbg.declare(metadata %Uint32* %sz, metadata !80, metadata !DIExpression()), !dbg !81 + %"$gasrem_216" = load i64, i64* @_gasrem, align 8 + %"$gascmp_217" = icmp ugt i64 1, %"$gasrem_216" + br i1 %"$gascmp_217", label %"$out_of_gas_218", label %"$have_gas_219" -"$out_of_gas_217": ; preds = %"$have_gas_213" +"$out_of_gas_218": ; preds = %"$have_gas_214" call void @_out_of_gas() - br label %"$have_gas_218" + br label %"$have_gas_219" -"$have_gas_218": ; preds = %"$out_of_gas_217", %"$have_gas_213" - %"$consume_219" = sub i64 %"$gasrem_215", 1 - store i64 %"$consume_219", i64* @_gasrem, align 8 +"$have_gas_219": ; preds = %"$out_of_gas_218", %"$have_gas_214" + %"$consume_220" = sub i64 %"$gasrem_216", 1 + store i64 %"$consume_220", i64* @_gasrem, align 8 %"$s_6" = alloca %Uint32, align 8 - %"$s_220" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %s, align 8 - %"$s_fptr_221" = extractvalue { %Uint32 (i8*, %Uint32)*, i8* } %"$s_220", 0 - %"$s_envptr_222" = extractvalue { %Uint32 (i8*, %Uint32)*, i8* } %"$s_220", 1 - %"$s_call_223" = call %Uint32 %"$s_fptr_221"(i8* %"$s_envptr_222", %Uint32 %1), !dbg !57 - store %Uint32 %"$s_call_223", %Uint32* %"$s_6", align 4, !dbg !57 - %"$$s_6_224" = load %Uint32, %Uint32* %"$s_6", align 4 - store %Uint32 %"$$s_6_224", %Uint32* %sz, align 4, !dbg !57 - %"$gasrem_225" = load i64, i64* @_gasrem, align 8 - %"$gascmp_226" = icmp ugt i64 1, %"$gasrem_225" - br i1 %"$gascmp_226", label %"$out_of_gas_227", label %"$have_gas_228" - -"$out_of_gas_227": ; preds = %"$have_gas_218" - call void @_out_of_gas() - br label %"$have_gas_228" - -"$have_gas_228": ; preds = %"$out_of_gas_227", %"$have_gas_218" - %"$consume_229" = sub i64 %"$gasrem_225", 1 - store i64 %"$consume_229", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %Uint32* %"$s_6", metadata !82, metadata !DIExpression()), !dbg !83 + %"$s_221" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %s, align 8 + %"$s_fptr_222" = extractvalue { %Uint32 (i8*, %Uint32)*, i8* } %"$s_221", 0 + %"$s_envptr_223" = extractvalue { %Uint32 (i8*, %Uint32)*, i8* } %"$s_221", 1 + %"$s_call_224" = call %Uint32 %"$s_fptr_222"(i8* %"$s_envptr_223", %Uint32 %1), !dbg !83 + store %Uint32 %"$s_call_224", %Uint32* %"$s_6", align 4, !dbg !83 + %"$$s_6_225" = load %Uint32, %Uint32* %"$s_6", align 4 + store %Uint32 %"$$s_6_225", %Uint32* %sz, align 4, !dbg !83 + %"$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_228": ; preds = %"$have_gas_219" + call void @_out_of_gas() + br label %"$have_gas_229" + +"$have_gas_229": ; preds = %"$out_of_gas_228", %"$have_gas_219" + %"$consume_230" = sub i64 %"$gasrem_226", 1 + store i64 %"$consume_230", i64* @_gasrem, align 8 %"$s_7" = alloca %Uint32, align 8 - %"$s_230" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %s, align 8 - %"$s_fptr_231" = extractvalue { %Uint32 (i8*, %Uint32)*, i8* } %"$s_230", 0 - %"$s_envptr_232" = extractvalue { %Uint32 (i8*, %Uint32)*, i8* } %"$s_230", 1 - %"$sz_233" = load %Uint32, %Uint32* %sz, align 4 - %"$s_call_234" = call %Uint32 %"$s_fptr_231"(i8* %"$s_envptr_232", %Uint32 %"$sz_233"), !dbg !58 - store %Uint32 %"$s_call_234", %Uint32* %"$s_7", align 4, !dbg !58 - %"$$s_7_235" = load %Uint32, %Uint32* %"$s_7", align 4 - store %Uint32 %"$$s_7_235", %Uint32* %"$retval_48", align 4, !dbg !58 - %"$$retval_48_236" = load %Uint32, %Uint32* %"$retval_48", align 4 - ret %Uint32 %"$$retval_48_236" + call void @llvm.dbg.declare(metadata %Uint32* %"$s_7", metadata !84, metadata !DIExpression()), !dbg !85 + %"$s_231" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %s, align 8 + %"$s_fptr_232" = extractvalue { %Uint32 (i8*, %Uint32)*, i8* } %"$s_231", 0 + %"$s_envptr_233" = extractvalue { %Uint32 (i8*, %Uint32)*, i8* } %"$s_231", 1 + %"$sz_234" = load %Uint32, %Uint32* %sz, align 4 + %"$s_call_235" = call %Uint32 %"$s_fptr_232"(i8* %"$s_envptr_233", %Uint32 %"$sz_234"), !dbg !85 + store %Uint32 %"$s_call_235", %Uint32* %"$s_7", align 4, !dbg !85 + %"$$s_7_236" = load %Uint32, %Uint32* %"$s_7", align 4 + store %Uint32 %"$$s_7_236", %Uint32* %"$retval_48", align 4, !dbg !85 + %"$$retval_48_237" = load %Uint32, %Uint32* %"$retval_48", align 4 + ret %Uint32 %"$$retval_48_237" } -define internal { %Uint32 (i8*, %Uint32)*, i8* } @"$fundef_45"(%"$$fundef_45_env_132"* %0, { %Uint32 (i8*, %Uint32)*, i8* } %1) !dbg !59 { +define internal { %Uint32 (i8*, %Uint32)*, i8* } @"$fundef_45"(%"$$fundef_45_env_132"* %0, { %Uint32 (i8*, %Uint32)*, i8* } %1) !dbg !86 { entry: %"$retval_46" = alloca { %Uint32 (i8*, %Uint32)*, i8* }, 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 = %entry - call void @_out_of_gas() - br label %"$have_gas_200" - -"$have_gas_200": ; preds = %"$out_of_gas_199", %entry - %"$consume_201" = sub i64 %"$gasrem_197", 1 - store i64 %"$consume_201", i64* @_gasrem, align 8 - %"$$fundef_47_envp_202_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_47_envp_202_salloc" = call i8* @_salloc(i8* %"$$fundef_47_envp_202_load", i64 16) - %"$$fundef_47_envp_202" = bitcast i8* %"$$fundef_47_envp_202_salloc" to %"$$fundef_47_env_131"* - %"$$fundef_47_env_voidp_204" = bitcast %"$$fundef_47_env_131"* %"$$fundef_47_envp_202" to i8* - %"$$fundef_47_cloval_205" = insertvalue { %Uint32 (i8*, %Uint32)*, i8* } { %Uint32 (i8*, %Uint32)* bitcast (%Uint32 (%"$$fundef_47_env_131"*, %Uint32)* @"$fundef_47" to %Uint32 (i8*, %Uint32)*), i8* undef }, i8* %"$$fundef_47_env_voidp_204", 1 - %"$$fundef_47_env_s_206" = getelementptr inbounds %"$$fundef_47_env_131", %"$$fundef_47_env_131"* %"$$fundef_47_envp_202", i32 0, i32 0 - store { %Uint32 (i8*, %Uint32)*, i8* } %1, { %Uint32 (i8*, %Uint32)*, i8* }* %"$$fundef_47_env_s_206", align 8 - store { %Uint32 (i8*, %Uint32)*, i8* } %"$$fundef_47_cloval_205", { %Uint32 (i8*, %Uint32)*, i8* }* %"$retval_46", align 8, !dbg !60 - %"$$retval_46_207" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %"$retval_46", align 8 - ret { %Uint32 (i8*, %Uint32)*, i8* } %"$$retval_46_207" + %"$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 = %entry + call void @_out_of_gas() + br label %"$have_gas_201" + +"$have_gas_201": ; preds = %"$out_of_gas_200", %entry + %"$consume_202" = sub i64 %"$gasrem_198", 1 + store i64 %"$consume_202", i64* @_gasrem, align 8 + %"$$fundef_47_envp_203_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_47_envp_203_salloc" = call i8* @_salloc(i8* %"$$fundef_47_envp_203_load", i64 16) + %"$$fundef_47_envp_203" = bitcast i8* %"$$fundef_47_envp_203_salloc" to %"$$fundef_47_env_131"* + %"$$fundef_47_env_voidp_205" = bitcast %"$$fundef_47_env_131"* %"$$fundef_47_envp_203" to i8* + %"$$fundef_47_cloval_206" = insertvalue { %Uint32 (i8*, %Uint32)*, i8* } { %Uint32 (i8*, %Uint32)* bitcast (%Uint32 (%"$$fundef_47_env_131"*, %Uint32)* @"$fundef_47" to %Uint32 (i8*, %Uint32)*), i8* undef }, i8* %"$$fundef_47_env_voidp_205", 1 + %"$$fundef_47_env_s_207" = getelementptr inbounds %"$$fundef_47_env_131", %"$$fundef_47_env_131"* %"$$fundef_47_envp_203", i32 0, i32 0 + store { %Uint32 (i8*, %Uint32)*, i8* } %1, { %Uint32 (i8*, %Uint32)*, i8* }* %"$$fundef_47_env_s_207", align 8 + store { %Uint32 (i8*, %Uint32)*, i8* } %"$$fundef_47_cloval_206", { %Uint32 (i8*, %Uint32)*, i8* }* %"$retval_46", align 8, !dbg !87 + %"$$retval_46_208" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %"$retval_46", align 8 + ret { %Uint32 (i8*, %Uint32)*, i8* } %"$$retval_46_208" } -define internal { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } @"$fundef_43"(%"$$fundef_43_env_133"* %0) !dbg !61 { +define internal { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } @"$fundef_43"(%"$$fundef_43_env_133"* %0) !dbg !88 { entry: %"$retval_44" = alloca { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, 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" + %"$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_190": ; preds = %entry +"$out_of_gas_191": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_191" + br label %"$have_gas_192" -"$have_gas_191": ; preds = %"$out_of_gas_190", %entry - %"$consume_192" = sub i64 %"$gasrem_188", 1 - store i64 %"$consume_192", 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_45_env_132"*, { %Uint32 (i8*, %Uint32)*, i8* })* @"$fundef_45" to { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*), i8* null }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$retval_44", align 8, !dbg !62 - %"$$retval_44_196" = 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_196" +"$have_gas_192": ; preds = %"$out_of_gas_191", %entry + %"$consume_193" = sub i64 %"$gasrem_189", 1 + store i64 %"$consume_193", 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_45_env_132"*, { %Uint32 (i8*, %Uint32)*, i8* })* @"$fundef_45" to { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*), i8* null }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$retval_44", align 8, !dbg !89 + %"$$retval_44_197" = 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_197" } -define internal { i8*, i8* }* @"$fundef_41"(%"$$fundef_41_env_134"* %0, { i8*, i8* }* %1) !dbg !63 { +define internal { i8*, i8* }* @"$fundef_41"(%"$$fundef_41_env_134"* %0, { i8*, i8* }* %1) !dbg !90 { entry: %"$retval_42" = alloca { i8*, i8* }*, 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" + %"$gasrem_183" = load i64, i64* @_gasrem, align 8 + %"$gascmp_184" = icmp ugt i64 1, %"$gasrem_183" + br i1 %"$gascmp_184", label %"$out_of_gas_185", label %"$have_gas_186" -"$out_of_gas_184": ; preds = %entry +"$out_of_gas_185": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_185" + br label %"$have_gas_186" -"$have_gas_185": ; preds = %"$out_of_gas_184", %entry - %"$consume_186" = sub i64 %"$gasrem_182", 1 - store i64 %"$consume_186", i64* @_gasrem, align 8 - store { i8*, i8* }* %1, { i8*, i8* }** %"$retval_42", align 8, !dbg !64 - %"$$retval_42_187" = load { i8*, i8* }*, { i8*, i8* }** %"$retval_42", align 8 - ret { i8*, i8* }* %"$$retval_42_187" +"$have_gas_186": ; preds = %"$out_of_gas_185", %entry + %"$consume_187" = sub i64 %"$gasrem_183", 1 + store i64 %"$consume_187", i64* @_gasrem, align 8 + store { i8*, i8* }* %1, { i8*, i8* }** %"$retval_42", align 8, !dbg !91 + %"$$retval_42_188" = load { i8*, i8* }*, { i8*, i8* }** %"$retval_42", align 8 + ret { i8*, i8* }* %"$$retval_42_188" } -define internal { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } @"$fundef_39"(%"$$fundef_39_env_135"* %0, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %1) !dbg !65 { +define internal { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } @"$fundef_39"(%"$$fundef_39_env_135"* %0, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %1) !dbg !92 { entry: %"$retval_40" = alloca { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }, align 8 - %"$gasrem_173" = load i64, i64* @_gasrem, align 8 - %"$gascmp_174" = icmp ugt i64 1, %"$gasrem_173" - br i1 %"$gascmp_174", label %"$out_of_gas_175", label %"$have_gas_176" + %"$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_175": ; preds = %entry +"$out_of_gas_176": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_176" + br label %"$have_gas_177" -"$have_gas_176": ; preds = %"$out_of_gas_175", %entry - %"$consume_177" = sub i64 %"$gasrem_173", 1 - store i64 %"$consume_177", i64* @_gasrem, align 8 - store { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } { { i8*, i8* }* (i8*, { i8*, i8* }*)* bitcast ({ i8*, i8* }* (%"$$fundef_41_env_134"*, { i8*, i8* }*)* @"$fundef_41" to { i8*, i8* }* (i8*, { i8*, i8* }*)*), i8* null }, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %"$retval_40", align 8, !dbg !66 - %"$$retval_40_181" = load { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %"$retval_40", align 8 - ret { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$$retval_40_181" +"$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* }* (i8*, { i8*, i8* }*)*, i8* } { { i8*, i8* }* (i8*, { i8*, i8* }*)* bitcast ({ i8*, i8* }* (%"$$fundef_41_env_134"*, { i8*, i8* }*)* @"$fundef_41" to { i8*, i8* }* (i8*, { i8*, i8* }*)*), i8* null }, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %"$retval_40", align 8, !dbg !93 + %"$$retval_40_182" = load { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %"$retval_40", align 8 + ret { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$$retval_40_182" } -define internal { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } @"$fundef_37"(%"$$fundef_37_env_136"* %0) !dbg !67 { +define internal { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } @"$fundef_37"(%"$$fundef_37_env_136"* %0) !dbg !94 { entry: %"$retval_38" = alloca { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* }, align 8 - %"$gasrem_164" = load i64, i64* @_gasrem, align 8 - %"$gascmp_165" = icmp ugt i64 1, %"$gasrem_164" - br i1 %"$gascmp_165", label %"$out_of_gas_166", label %"$have_gas_167" + %"$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" -"$out_of_gas_166": ; preds = %entry +"$out_of_gas_167": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_167" + br label %"$have_gas_168" -"$have_gas_167": ; preds = %"$out_of_gas_166", %entry - %"$consume_168" = sub i64 %"$gasrem_164", 1 - store i64 %"$consume_168", 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_39_env_135"*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })* @"$fundef_39" 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_38", align 8, !dbg !68 - %"$$retval_38_172" = 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_38", align 8 - ret { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } %"$$retval_38_172" +"$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*, i8* }*)*, i8* })*, i8* } { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })* bitcast ({ { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (%"$$fundef_39_env_135"*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })* @"$fundef_39" 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_38", align 8, !dbg !95 + %"$$retval_38_173" = 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_38", align 8 + ret { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } %"$$retval_38_173" } -define internal %Uint32 @"$fundef_35"(%"$$fundef_35_env_137"* %0, %Uint32 %1) !dbg !69 { +define internal %Uint32 @"$fundef_35"(%"$$fundef_35_env_137"* %0, %Uint32 %1) !dbg !96 { entry: + %"$z_164" = alloca %Uint32, align 8 + store %Uint32 %1, %Uint32* %"$z_164", align 4 + call void @llvm.dbg.declare(metadata %Uint32* %"$z_164", metadata !97, metadata !DIExpression()), !dbg !98 %"$retval_36" = alloca %Uint32, align 8 + call void @llvm.dbg.declare(metadata %Uint32* %"$retval_36", metadata !99, metadata !DIExpression()), !dbg !100 %"$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" @@ -1248,12 +1274,12 @@ entry: "$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 %1, %Uint32* %"$retval_36", align 4, !dbg !70 + store %Uint32 %1, %Uint32* %"$retval_36", align 4, !dbg !100 %"$$retval_36_163" = load %Uint32, %Uint32* %"$retval_36", align 4 ret %Uint32 %"$$retval_36_163" } -define internal { %Uint32 (i8*, %Uint32)*, i8* } @"$fundef_33"(%"$$fundef_33_env_138"* %0, { %Uint32 (i8*, %Uint32)*, i8* } %1) !dbg !71 { +define internal { %Uint32 (i8*, %Uint32)*, i8* } @"$fundef_33"(%"$$fundef_33_env_138"* %0, { %Uint32 (i8*, %Uint32)*, i8* } %1) !dbg !101 { entry: %"$retval_34" = alloca { %Uint32 (i8*, %Uint32)*, i8* }, align 8 %"$gasrem_149" = load i64, i64* @_gasrem, align 8 @@ -1267,12 +1293,12 @@ entry: "$have_gas_152": ; preds = %"$out_of_gas_151", %entry %"$consume_153" = sub i64 %"$gasrem_149", 1 store i64 %"$consume_153", i64* @_gasrem, align 8 - store { %Uint32 (i8*, %Uint32)*, i8* } { %Uint32 (i8*, %Uint32)* bitcast (%Uint32 (%"$$fundef_35_env_137"*, %Uint32)* @"$fundef_35" to %Uint32 (i8*, %Uint32)*), i8* null }, { %Uint32 (i8*, %Uint32)*, i8* }* %"$retval_34", align 8, !dbg !72 + store { %Uint32 (i8*, %Uint32)*, i8* } { %Uint32 (i8*, %Uint32)* bitcast (%Uint32 (%"$$fundef_35_env_137"*, %Uint32)* @"$fundef_35" to %Uint32 (i8*, %Uint32)*), i8* null }, { %Uint32 (i8*, %Uint32)*, i8* }* %"$retval_34", align 8, !dbg !102 %"$$retval_34_157" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %"$retval_34", align 8 ret { %Uint32 (i8*, %Uint32)*, i8* } %"$$retval_34_157" } -define internal { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } @"$fundef_31"(%"$$fundef_31_env_139"* %0) !dbg !73 { +define internal { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } @"$fundef_31"(%"$$fundef_31_env_139"* %0) !dbg !103 { entry: %"$retval_32" = alloca { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, align 8 %"$gasrem_140" = load i64, i64* @_gasrem, align 8 @@ -1286,632 +1312,671 @@ entry: "$have_gas_143": ; preds = %"$out_of_gas_142", %entry %"$consume_144" = sub i64 %"$gasrem_140", 1 store i64 %"$consume_144", 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_33_env_138"*, { %Uint32 (i8*, %Uint32)*, i8* })* @"$fundef_33" to { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*), i8* null }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$retval_32", align 8, !dbg !74 + 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_33_env_138"*, { %Uint32 (i8*, %Uint32)*, i8* })* @"$fundef_33" to { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*), i8* null }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$retval_32", align 8, !dbg !104 %"$$retval_32_148" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$retval_32", align 8 ret { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$$retval_32_148" } declare void @_out_of_gas() +; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn +declare void @llvm.dbg.declare(metadata, metadata, metadata) #0 + declare i8* @_salloc(i8*, i64) declare %Uint32 @_add_Uint32(%Uint32, %Uint32) -define void @_init_libs() !dbg !75 { +define void @_init_libs() !dbg !105 { entry: - %"$gasrem_701" = load i64, i64* @_gasrem, align 8 - %"$gascmp_702" = icmp ugt i64 5, %"$gasrem_701" - br i1 %"$gascmp_702", label %"$out_of_gas_703", label %"$have_gas_704" + %"$gasrem_705" = load i64, i64* @_gasrem, align 8 + %"$gascmp_706" = icmp ugt i64 5, %"$gasrem_705" + br i1 %"$gascmp_706", label %"$out_of_gas_707", label %"$have_gas_708" -"$out_of_gas_703": ; preds = %entry +"$out_of_gas_707": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_704" + br label %"$have_gas_708" -"$have_gas_704": ; preds = %"$out_of_gas_703", %entry - %"$consume_705" = sub i64 %"$gasrem_701", 5 - store i64 %"$consume_705", i64* @_gasrem, align 8 - store %Int32 { i32 5 }, %Int32* @"$_gas_charge_accrec_lib_5", align 4, !dbg !77 - %"$gasrem_706" = load i64, i64* @_gasrem, align 8 - %"$gascmp_707" = icmp ugt i64 8, %"$gasrem_706" - br i1 %"$gascmp_707", label %"$out_of_gas_708", label %"$have_gas_709" +"$have_gas_708": ; preds = %"$out_of_gas_707", %entry + %"$consume_709" = sub i64 %"$gasrem_705", 5 + store i64 %"$consume_709", i64* @_gasrem, align 8 + store %Int32 { i32 5 }, %Int32* @"$_gas_charge_accrec_lib_5", align 4, !dbg !107 + %"$gasrem_710" = load i64, i64* @_gasrem, align 8 + %"$gascmp_711" = icmp ugt i64 8, %"$gasrem_710" + br i1 %"$gascmp_711", label %"$out_of_gas_712", label %"$have_gas_713" -"$out_of_gas_708": ; preds = %"$have_gas_704" +"$out_of_gas_712": ; preds = %"$have_gas_708" call void @_out_of_gas() - br label %"$have_gas_709" + br label %"$have_gas_713" -"$have_gas_709": ; preds = %"$out_of_gas_708", %"$have_gas_704" - %"$consume_710" = sub i64 %"$gasrem_706", 8 - store i64 %"$consume_710", i64* @_gasrem, align 8 - store %Int32 { i32 8 }, %Int32* @"$_gas_charge_accBoolUtils_0", align 4, !dbg !77 - %"$gasrem_711" = load i64, i64* @_gasrem, align 8 - %"$gascmp_712" = icmp ugt i64 196, %"$gasrem_711" - br i1 %"$gascmp_712", label %"$out_of_gas_713", label %"$have_gas_714" +"$have_gas_713": ; preds = %"$out_of_gas_712", %"$have_gas_708" + %"$consume_714" = sub i64 %"$gasrem_710", 8 + store i64 %"$consume_714", i64* @_gasrem, align 8 + store %Int32 { i32 8 }, %Int32* @"$_gas_charge_accBoolUtils_0", align 4, !dbg !107 + %"$gasrem_715" = load i64, i64* @_gasrem, align 8 + %"$gascmp_716" = icmp ugt i64 196, %"$gasrem_715" + br i1 %"$gascmp_716", label %"$out_of_gas_717", label %"$have_gas_718" -"$out_of_gas_713": ; preds = %"$have_gas_709" +"$out_of_gas_717": ; preds = %"$have_gas_713" call void @_out_of_gas() - br label %"$have_gas_714" + br label %"$have_gas_718" -"$have_gas_714": ; preds = %"$out_of_gas_713", %"$have_gas_709" - %"$consume_715" = sub i64 %"$gasrem_711", 196 - store i64 %"$consume_715", i64* @_gasrem, align 8 - store %Int32 { i32 196 }, %Int32* @"$_gas_charge_accIntUtils_1", align 4, !dbg !77 - %"$gasrem_716" = load i64, i64* @_gasrem, align 8 - %"$gascmp_717" = icmp ugt i64 20, %"$gasrem_716" - br i1 %"$gascmp_717", label %"$out_of_gas_718", label %"$have_gas_719" +"$have_gas_718": ; preds = %"$out_of_gas_717", %"$have_gas_713" + %"$consume_719" = sub i64 %"$gasrem_715", 196 + store i64 %"$consume_719", i64* @_gasrem, align 8 + store %Int32 { i32 196 }, %Int32* @"$_gas_charge_accIntUtils_1", align 4, !dbg !107 + %"$gasrem_720" = load i64, i64* @_gasrem, align 8 + %"$gascmp_721" = icmp ugt i64 20, %"$gasrem_720" + br i1 %"$gascmp_721", label %"$out_of_gas_722", label %"$have_gas_723" -"$out_of_gas_718": ; preds = %"$have_gas_714" +"$out_of_gas_722": ; preds = %"$have_gas_718" call void @_out_of_gas() - br label %"$have_gas_719" + br label %"$have_gas_723" -"$have_gas_719": ; preds = %"$out_of_gas_718", %"$have_gas_714" - %"$consume_720" = sub i64 %"$gasrem_716", 20 - store i64 %"$consume_720", i64* @_gasrem, align 8 - store %Int32 { i32 20 }, %Int32* @"$_gas_charge_accListUtils_2", align 4, !dbg !77 - %"$gasrem_721" = load i64, i64* @_gasrem, align 8 - %"$gascmp_722" = icmp ugt i64 12, %"$gasrem_721" - br i1 %"$gascmp_722", label %"$out_of_gas_723", label %"$have_gas_724" +"$have_gas_723": ; preds = %"$out_of_gas_722", %"$have_gas_718" + %"$consume_724" = sub i64 %"$gasrem_720", 20 + store i64 %"$consume_724", i64* @_gasrem, align 8 + store %Int32 { i32 20 }, %Int32* @"$_gas_charge_accListUtils_2", align 4, !dbg !107 + %"$gasrem_725" = load i64, i64* @_gasrem, align 8 + %"$gascmp_726" = icmp ugt i64 12, %"$gasrem_725" + br i1 %"$gascmp_726", label %"$out_of_gas_727", label %"$have_gas_728" -"$out_of_gas_723": ; preds = %"$have_gas_719" +"$out_of_gas_727": ; preds = %"$have_gas_723" call void @_out_of_gas() - br label %"$have_gas_724" + br label %"$have_gas_728" -"$have_gas_724": ; preds = %"$out_of_gas_723", %"$have_gas_719" - %"$consume_725" = sub i64 %"$gasrem_721", 12 - store i64 %"$consume_725", i64* @_gasrem, align 8 - store %Int32 { i32 12 }, %Int32* @"$_gas_charge_accNatUtils_3", align 4, !dbg !77 - %"$gasrem_726" = load i64, i64* @_gasrem, align 8 - %"$gascmp_727" = icmp ugt i64 2, %"$gasrem_726" - br i1 %"$gascmp_727", label %"$out_of_gas_728", label %"$have_gas_729" +"$have_gas_728": ; preds = %"$out_of_gas_727", %"$have_gas_723" + %"$consume_729" = sub i64 %"$gasrem_725", 12 + store i64 %"$consume_729", i64* @_gasrem, align 8 + store %Int32 { i32 12 }, %Int32* @"$_gas_charge_accNatUtils_3", align 4, !dbg !107 + %"$gasrem_730" = load i64, i64* @_gasrem, align 8 + %"$gascmp_731" = icmp ugt i64 2, %"$gasrem_730" + br i1 %"$gascmp_731", label %"$out_of_gas_732", label %"$have_gas_733" -"$out_of_gas_728": ; preds = %"$have_gas_724" +"$out_of_gas_732": ; preds = %"$have_gas_728" call void @_out_of_gas() - br label %"$have_gas_729" + br label %"$have_gas_733" -"$have_gas_729": ; preds = %"$out_of_gas_728", %"$have_gas_724" - %"$consume_730" = sub i64 %"$gasrem_726", 2 - store i64 %"$consume_730", i64* @_gasrem, align 8 - store %Int32 { i32 2 }, %Int32* @"$_gas_charge_accPairUtils_4", align 4, !dbg !77 +"$have_gas_733": ; preds = %"$out_of_gas_732", %"$have_gas_728" + %"$consume_734" = sub i64 %"$gasrem_730", 2 + store i64 %"$consume_734", i64* @_gasrem, align 8 + store %Int32 { i32 2 }, %Int32* @"$_gas_charge_accPairUtils_4", align 4, !dbg !107 ret void } -define internal %Uint32 @_scilla_expr_fun(i8* %0) !dbg !78 { +define internal %Uint32 @_scilla_expr_fun(i8* %0) !dbg !108 { entry: %"$expr_30" = alloca %Uint32, align 8 - %"$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" + call void @llvm.dbg.declare(metadata %Uint32* %"$expr_30", metadata !109, metadata !DIExpression()), !dbg !110 + %"$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_733": ; preds = %entry +"$out_of_gas_737": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_734" + br label %"$have_gas_738" -"$have_gas_734": ; preds = %"$out_of_gas_733", %entry - %"$consume_735" = sub i64 %"$gasrem_731", 1 - store i64 %"$consume_735", i64* @_gasrem, align 8 +"$have_gas_738": ; preds = %"$out_of_gas_737", %entry + %"$consume_739" = sub i64 %"$gasrem_735", 1 + store i64 %"$consume_739", i64* @_gasrem, align 8 %c0 = alloca { i8*, i8* }*, 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_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", 1 - store i64 %"$consume_740", i64* @_gasrem, align 8 - %"$dyndisp_table_747_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$dyndisp_table_747_salloc_salloc" = call i8* @_salloc(i8* %"$dyndisp_table_747_salloc_load", i64 32) - %"$dyndisp_table_747_salloc" = bitcast i8* %"$dyndisp_table_747_salloc_salloc" to [2 x { i8*, i8* }]* - %"$dyndisp_table_747" = bitcast [2 x { i8*, i8* }]* %"$dyndisp_table_747_salloc" to { i8*, i8* }* - %"$dyndisp_gep_748" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_747", i32 0 - %"$dyndisp_pcast_749" = bitcast { i8*, i8* }* %"$dyndisp_gep_748" 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_31_env_139"*)* @"$fundef_31" 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_749", align 8 - %"$dyndisp_gep_750" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_747", i32 1 - %"$dyndisp_pcast_751" = bitcast { i8*, i8* }* %"$dyndisp_gep_750" 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_37_env_136"*)* @"$fundef_37" 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_751", align 8 - store { i8*, i8* }* %"$dyndisp_table_747", { i8*, i8* }** %c0, align 8, !dbg !79 - %"$gasrem_752" = load i64, i64* @_gasrem, align 8 - %"$gascmp_753" = icmp ugt i64 1, %"$gasrem_752" - br i1 %"$gascmp_753", label %"$out_of_gas_754", label %"$have_gas_755" - -"$out_of_gas_754": ; preds = %"$have_gas_739" - call void @_out_of_gas() - br label %"$have_gas_755" - -"$have_gas_755": ; preds = %"$out_of_gas_754", %"$have_gas_739" - %"$consume_756" = sub i64 %"$gasrem_752", 1 - store i64 %"$consume_756", i64* @_gasrem, align 8 - %"$gasrem_757" = load i64, i64* @_gasrem, align 8 - %"$gascmp_758" = icmp ugt i64 1, %"$gasrem_757" - br i1 %"$gascmp_758", label %"$out_of_gas_759", label %"$have_gas_760" - -"$out_of_gas_759": ; preds = %"$have_gas_755" - call void @_out_of_gas() - br label %"$have_gas_760" - -"$have_gas_760": ; preds = %"$out_of_gas_759", %"$have_gas_755" - %"$consume_761" = sub i64 %"$gasrem_757", 1 - store i64 %"$consume_761", i64* @_gasrem, 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_760" - call void @_out_of_gas() - br label %"$have_gas_765" - -"$have_gas_765": ; preds = %"$out_of_gas_764", %"$have_gas_760" - %"$consume_766" = sub i64 %"$gasrem_762", 1 - store i64 %"$consume_766", 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 + %"$dyndisp_table_751_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$dyndisp_table_751_salloc_salloc" = call i8* @_salloc(i8* %"$dyndisp_table_751_salloc_load", i64 32) + %"$dyndisp_table_751_salloc" = bitcast i8* %"$dyndisp_table_751_salloc_salloc" to [2 x { i8*, i8* }]* + %"$dyndisp_table_751" = bitcast [2 x { i8*, i8* }]* %"$dyndisp_table_751_salloc" to { i8*, i8* }* + %"$dyndisp_gep_752" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_751", i32 0 + %"$dyndisp_pcast_753" = bitcast { i8*, i8* }* %"$dyndisp_gep_752" 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_31_env_139"*)* @"$fundef_31" 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_753", align 8 + %"$dyndisp_gep_754" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_751", i32 1 + %"$dyndisp_pcast_755" = bitcast { i8*, i8* }* %"$dyndisp_gep_754" 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_37_env_136"*)* @"$fundef_37" 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_755", align 8 + store { i8*, i8* }* %"$dyndisp_table_751", { i8*, i8* }** %c0, align 8, !dbg !110 + %"$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_743" + call void @_out_of_gas() + br label %"$have_gas_759" + +"$have_gas_759": ; preds = %"$out_of_gas_758", %"$have_gas_743" + %"$consume_760" = sub i64 %"$gasrem_756", 1 + store i64 %"$consume_760", i64* @_gasrem, align 8 + %"$gasrem_761" = load i64, i64* @_gasrem, align 8 + %"$gascmp_762" = icmp ugt i64 1, %"$gasrem_761" + br i1 %"$gascmp_762", label %"$out_of_gas_763", label %"$have_gas_764" + +"$out_of_gas_763": ; preds = %"$have_gas_759" + call void @_out_of_gas() + br label %"$have_gas_764" + +"$have_gas_764": ; preds = %"$out_of_gas_763", %"$have_gas_759" + %"$consume_765" = sub i64 %"$gasrem_761", 1 + store i64 %"$consume_765", i64* @_gasrem, align 8 + %"$gasrem_766" = load i64, i64* @_gasrem, align 8 + %"$gascmp_767" = icmp ugt i64 1, %"$gasrem_766" + br i1 %"$gascmp_767", label %"$out_of_gas_768", label %"$have_gas_769" + +"$out_of_gas_768": ; preds = %"$have_gas_764" + call void @_out_of_gas() + br label %"$have_gas_769" + +"$have_gas_769": ; preds = %"$out_of_gas_768", %"$have_gas_764" + %"$consume_770" = sub i64 %"$gasrem_766", 1 + store i64 %"$consume_770", i64* @_gasrem, align 8 %c2 = alloca { 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 = %"$have_gas_765" - call void @_out_of_gas() - br label %"$have_gas_770" - -"$have_gas_770": ; preds = %"$out_of_gas_769", %"$have_gas_765" - %"$consume_771" = sub i64 %"$gasrem_767", 1 - store i64 %"$consume_771", i64* @_gasrem, align 8 - %"$dyndisp_table_778_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$dyndisp_table_778_salloc_salloc" = call i8* @_salloc(i8* %"$dyndisp_table_778_salloc_load", i64 32) - %"$dyndisp_table_778_salloc" = bitcast i8* %"$dyndisp_table_778_salloc_salloc" to [2 x { i8*, i8* }]* - %"$dyndisp_table_778" = bitcast [2 x { i8*, i8* }]* %"$dyndisp_table_778_salloc" to { i8*, i8* }* - %"$dyndisp_gep_779" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_778", i32 0 - %"$dyndisp_pcast_780" = bitcast { i8*, i8* }* %"$dyndisp_gep_779" 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_43_env_133"*)* @"$fundef_43" 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_780", align 8 - %"$dyndisp_gep_781" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_778", i32 1 - %"$dyndisp_pcast_782" = bitcast { i8*, i8* }* %"$dyndisp_gep_781" 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_49_env_130"*)* @"$fundef_49" 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_782", align 8 - store { i8*, i8* }* %"$dyndisp_table_778", { i8*, i8* }** %c2, align 8, !dbg !80 - %"$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_770" - call void @_out_of_gas() - br label %"$have_gas_786" - -"$have_gas_786": ; preds = %"$out_of_gas_785", %"$have_gas_770" - %"$consume_787" = sub i64 %"$gasrem_783", 1 - store i64 %"$consume_787", i64* @_gasrem, 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_769" + call void @_out_of_gas() + br label %"$have_gas_774" + +"$have_gas_774": ; preds = %"$out_of_gas_773", %"$have_gas_769" + %"$consume_775" = sub i64 %"$gasrem_771", 1 + store i64 %"$consume_775", i64* @_gasrem, align 8 + %"$dyndisp_table_782_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$dyndisp_table_782_salloc_salloc" = call i8* @_salloc(i8* %"$dyndisp_table_782_salloc_load", i64 32) + %"$dyndisp_table_782_salloc" = bitcast i8* %"$dyndisp_table_782_salloc_salloc" to [2 x { i8*, i8* }]* + %"$dyndisp_table_782" = bitcast [2 x { i8*, i8* }]* %"$dyndisp_table_782_salloc" to { i8*, i8* }* + %"$dyndisp_gep_783" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_782", i32 0 + %"$dyndisp_pcast_784" = bitcast { i8*, i8* }* %"$dyndisp_gep_783" 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_43_env_133"*)* @"$fundef_43" 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_784", align 8 + %"$dyndisp_gep_785" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_782", i32 1 + %"$dyndisp_pcast_786" = bitcast { i8*, i8* }* %"$dyndisp_gep_785" 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_49_env_130"*)* @"$fundef_49" 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_786", align 8 + store { i8*, i8* }* %"$dyndisp_table_782", { i8*, i8* }** %c2, align 8, !dbg !111 + %"$gasrem_787" = load i64, i64* @_gasrem, align 8 + %"$gascmp_788" = icmp ugt i64 1, %"$gasrem_787" + br i1 %"$gascmp_788", label %"$out_of_gas_789", label %"$have_gas_790" + +"$out_of_gas_789": ; preds = %"$have_gas_774" + call void @_out_of_gas() + br label %"$have_gas_790" + +"$have_gas_790": ; preds = %"$out_of_gas_789", %"$have_gas_774" + %"$consume_791" = sub i64 %"$gasrem_787", 1 + store i64 %"$consume_791", i64* @_gasrem, align 8 %cadd = alloca { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* }, 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" + %"$gasrem_792" = load i64, i64* @_gasrem, align 8 + %"$gascmp_793" = icmp ugt i64 1, %"$gasrem_792" + br i1 %"$gascmp_793", label %"$out_of_gas_794", label %"$have_gas_795" -"$out_of_gas_790": ; preds = %"$have_gas_786" +"$out_of_gas_794": ; preds = %"$have_gas_790" call void @_out_of_gas() - br label %"$have_gas_791" + br label %"$have_gas_795" -"$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 - 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_55_env_127"*, { i8*, i8* }*)* @"$fundef_55" 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 !81 - %"$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" +"$have_gas_795": ; preds = %"$out_of_gas_794", %"$have_gas_790" + %"$consume_796" = sub i64 %"$gasrem_792", 1 + store i64 %"$consume_796", 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_55_env_127"*, { i8*, i8* }*)* @"$fundef_55" 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 !112 + %"$gasrem_800" = load i64, i64* @_gasrem, align 8 + %"$gascmp_801" = icmp ugt i64 1, %"$gasrem_800" + br i1 %"$gascmp_801", label %"$out_of_gas_802", label %"$have_gas_803" -"$out_of_gas_798": ; preds = %"$have_gas_791" +"$out_of_gas_802": ; preds = %"$have_gas_795" call void @_out_of_gas() - br label %"$have_gas_799" + br label %"$have_gas_803" -"$have_gas_799": ; preds = %"$out_of_gas_798", %"$have_gas_791" - %"$consume_800" = sub i64 %"$gasrem_796", 1 - store i64 %"$consume_800", i64* @_gasrem, align 8 +"$have_gas_803": ; preds = %"$out_of_gas_802", %"$have_gas_795" + %"$consume_804" = sub i64 %"$gasrem_800", 1 + store i64 %"$consume_804", i64* @_gasrem, align 8 %cmul = alloca { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* }, align 8 - %"$gasrem_801" = load i64, i64* @_gasrem, align 8 - %"$gascmp_802" = icmp ugt i64 1, %"$gasrem_801" - br i1 %"$gascmp_802", label %"$out_of_gas_803", label %"$have_gas_804" - -"$out_of_gas_803": ; preds = %"$have_gas_799" - call void @_out_of_gas() - br label %"$have_gas_804" - -"$have_gas_804": ; preds = %"$out_of_gas_803", %"$have_gas_799" - %"$consume_805" = sub i64 %"$gasrem_801", 1 - store i64 %"$consume_805", i64* @_gasrem, align 8 - %"$$fundef_71_envp_806_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_71_envp_806_salloc" = call i8* @_salloc(i8* %"$$fundef_71_envp_806_load", i64 24) - %"$$fundef_71_envp_806" = bitcast i8* %"$$fundef_71_envp_806_salloc" to %"$$fundef_71_env_119"* - %"$$fundef_71_env_voidp_808" = bitcast %"$$fundef_71_env_119"* %"$$fundef_71_envp_806" to i8* - %"$$fundef_71_cloval_809" = 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_71_env_119"*, { i8*, i8* }*)* @"$fundef_71" to { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*), i8* undef }, i8* %"$$fundef_71_env_voidp_808", 1 - %"$$fundef_71_env_c0_810" = getelementptr inbounds %"$$fundef_71_env_119", %"$$fundef_71_env_119"* %"$$fundef_71_envp_806", i32 0, i32 0 - %"$c0_811" = load { i8*, i8* }*, { i8*, i8* }** %c0, align 8 - store { i8*, i8* }* %"$c0_811", { i8*, i8* }** %"$$fundef_71_env_c0_810", align 8 - %"$$fundef_71_env_cadd_812" = getelementptr inbounds %"$$fundef_71_env_119", %"$$fundef_71_env_119"* %"$$fundef_71_envp_806", i32 0, i32 1 - %"$cadd_813" = 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_813", { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* }* %"$$fundef_71_env_cadd_812", align 8 - store { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* } %"$$fundef_71_cloval_809", { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* }* %cmul, align 8, !dbg !82 - %"$gasrem_814" = load i64, i64* @_gasrem, align 8 - %"$gascmp_815" = icmp ugt i64 1, %"$gasrem_814" - br i1 %"$gascmp_815", label %"$out_of_gas_816", label %"$have_gas_817" - -"$out_of_gas_816": ; preds = %"$have_gas_804" - call void @_out_of_gas() - br label %"$have_gas_817" - -"$have_gas_817": ; preds = %"$out_of_gas_816", %"$have_gas_804" - %"$consume_818" = sub i64 %"$gasrem_814", 1 - store i64 %"$consume_818", i64* @_gasrem, 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_803" + call void @_out_of_gas() + br label %"$have_gas_808" + +"$have_gas_808": ; preds = %"$out_of_gas_807", %"$have_gas_803" + %"$consume_809" = sub i64 %"$gasrem_805", 1 + store i64 %"$consume_809", i64* @_gasrem, align 8 + %"$$fundef_71_envp_810_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_71_envp_810_salloc" = call i8* @_salloc(i8* %"$$fundef_71_envp_810_load", i64 24) + %"$$fundef_71_envp_810" = bitcast i8* %"$$fundef_71_envp_810_salloc" to %"$$fundef_71_env_119"* + %"$$fundef_71_env_voidp_812" = bitcast %"$$fundef_71_env_119"* %"$$fundef_71_envp_810" to i8* + %"$$fundef_71_cloval_813" = 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_71_env_119"*, { i8*, i8* }*)* @"$fundef_71" to { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*), i8* undef }, i8* %"$$fundef_71_env_voidp_812", 1 + %"$$fundef_71_env_c0_814" = getelementptr inbounds %"$$fundef_71_env_119", %"$$fundef_71_env_119"* %"$$fundef_71_envp_810", i32 0, i32 0 + %"$c0_815" = load { i8*, i8* }*, { i8*, i8* }** %c0, align 8 + store { i8*, i8* }* %"$c0_815", { i8*, i8* }** %"$$fundef_71_env_c0_814", align 8 + %"$$fundef_71_env_cadd_816" = getelementptr inbounds %"$$fundef_71_env_119", %"$$fundef_71_env_119"* %"$$fundef_71_envp_810", i32 0, i32 1 + %"$cadd_817" = 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_817", { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* }* %"$$fundef_71_env_cadd_816", align 8 + store { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* } %"$$fundef_71_cloval_813", { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* }* %cmul, align 8, !dbg !113 + %"$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 = %"$have_gas_808" + call void @_out_of_gas() + br label %"$have_gas_821" + +"$have_gas_821": ; preds = %"$out_of_gas_820", %"$have_gas_808" + %"$consume_822" = sub i64 %"$gasrem_818", 1 + store i64 %"$consume_822", i64* @_gasrem, align 8 %church_nat_to_uint32 = alloca { %Uint32 (i8*, { i8*, i8* }*)*, i8* }, align 8 - %"$gasrem_819" = load i64, i64* @_gasrem, align 8 - %"$gascmp_820" = icmp ugt i64 1, %"$gasrem_819" - br i1 %"$gascmp_820", label %"$out_of_gas_821", label %"$have_gas_822" + %"$gasrem_823" = load i64, i64* @_gasrem, align 8 + %"$gascmp_824" = icmp ugt i64 1, %"$gasrem_823" + br i1 %"$gascmp_824", label %"$out_of_gas_825", label %"$have_gas_826" -"$out_of_gas_821": ; preds = %"$have_gas_817" +"$out_of_gas_825": ; preds = %"$have_gas_821" call void @_out_of_gas() - br label %"$have_gas_822" + br label %"$have_gas_826" -"$have_gas_822": ; preds = %"$out_of_gas_821", %"$have_gas_817" - %"$consume_823" = sub i64 %"$gasrem_819", 1 - store i64 %"$consume_823", i64* @_gasrem, align 8 - store { %Uint32 (i8*, { i8*, i8* }*)*, i8* } { %Uint32 (i8*, { i8*, i8* }*)* bitcast (%Uint32 (%"$$fundef_75_env_117"*, { i8*, i8* }*)* @"$fundef_75" to %Uint32 (i8*, { i8*, i8* }*)*), i8* null }, { %Uint32 (i8*, { i8*, i8* }*)*, i8* }* %church_nat_to_uint32, align 8, !dbg !83 - %"$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" +"$have_gas_826": ; preds = %"$out_of_gas_825", %"$have_gas_821" + %"$consume_827" = sub i64 %"$gasrem_823", 1 + store i64 %"$consume_827", i64* @_gasrem, align 8 + store { %Uint32 (i8*, { i8*, i8* }*)*, i8* } { %Uint32 (i8*, { i8*, i8* }*)* bitcast (%Uint32 (%"$$fundef_75_env_117"*, { i8*, i8* }*)* @"$fundef_75" to %Uint32 (i8*, { i8*, i8* }*)*), i8* null }, { %Uint32 (i8*, { i8*, i8* }*)*, i8* }* %church_nat_to_uint32, align 8, !dbg !114 + %"$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_829": ; preds = %"$have_gas_822" +"$out_of_gas_833": ; preds = %"$have_gas_826" call void @_out_of_gas() - br label %"$have_gas_830" + br label %"$have_gas_834" -"$have_gas_830": ; preds = %"$out_of_gas_829", %"$have_gas_822" - %"$consume_831" = sub i64 %"$gasrem_827", 1 - store i64 %"$consume_831", i64* @_gasrem, align 8 +"$have_gas_834": ; preds = %"$out_of_gas_833", %"$have_gas_826" + %"$consume_835" = sub i64 %"$gasrem_831", 1 + store i64 %"$consume_835", i64* @_gasrem, align 8 %c4 = alloca { i8*, i8* }*, align 8 - %"$gasrem_832" = load i64, i64* @_gasrem, align 8 - %"$gascmp_833" = icmp ugt i64 1, %"$gasrem_832" - br i1 %"$gascmp_833", label %"$out_of_gas_834", label %"$have_gas_835" + %"$gasrem_836" = load i64, i64* @_gasrem, align 8 + %"$gascmp_837" = icmp ugt i64 1, %"$gasrem_836" + br i1 %"$gascmp_837", label %"$out_of_gas_838", label %"$have_gas_839" -"$out_of_gas_834": ; preds = %"$have_gas_830" +"$out_of_gas_838": ; preds = %"$have_gas_834" call void @_out_of_gas() - br label %"$have_gas_835" + br label %"$have_gas_839" -"$have_gas_835": ; preds = %"$out_of_gas_834", %"$have_gas_830" - %"$consume_836" = sub i64 %"$gasrem_832", 1 - store i64 %"$consume_836", i64* @_gasrem, align 8 +"$have_gas_839": ; preds = %"$out_of_gas_838", %"$have_gas_834" + %"$consume_840" = sub i64 %"$gasrem_836", 1 + store i64 %"$consume_840", i64* @_gasrem, align 8 %"$cmul_17" = alloca { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }, align 8 - %"$cmul_837" = 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_838" = extractvalue { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* } %"$cmul_837", 0 - %"$cmul_envptr_839" = extractvalue { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* } %"$cmul_837", 1 - %"$c2_840" = load { i8*, i8* }*, { i8*, i8* }** %c2, align 8 - %"$cmul_call_841" = call { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$cmul_fptr_838"(i8* %"$cmul_envptr_839", { i8*, i8* }* %"$c2_840"), !dbg !84 - store { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$cmul_call_841", { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %"$cmul_17", align 8, !dbg !84 + %"$cmul_841" = 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_842" = extractvalue { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* } %"$cmul_841", 0 + %"$cmul_envptr_843" = extractvalue { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* } %"$cmul_841", 1 + %"$c2_844" = load { i8*, i8* }*, { i8*, i8* }** %c2, align 8 + %"$cmul_call_845" = call { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$cmul_fptr_842"(i8* %"$cmul_envptr_843", { i8*, i8* }* %"$c2_844"), !dbg !115 + store { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$cmul_call_845", { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %"$cmul_17", align 8, !dbg !115 %"$cmul_18" = alloca { i8*, i8* }*, align 8 - %"$$cmul_17_842" = load { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %"$cmul_17", align 8 - %"$$cmul_17_fptr_843" = extractvalue { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$$cmul_17_842", 0 - %"$$cmul_17_envptr_844" = extractvalue { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$$cmul_17_842", 1 - %"$c2_845" = load { i8*, i8* }*, { i8*, i8* }** %c2, align 8 - %"$$cmul_17_call_846" = call { i8*, i8* }* %"$$cmul_17_fptr_843"(i8* %"$$cmul_17_envptr_844", { i8*, i8* }* %"$c2_845"), !dbg !84 - store { i8*, i8* }* %"$$cmul_17_call_846", { i8*, i8* }** %"$cmul_18", align 8, !dbg !84 - %"$$cmul_18_847" = load { i8*, i8* }*, { i8*, i8* }** %"$cmul_18", align 8 - store { i8*, i8* }* %"$$cmul_18_847", { i8*, i8* }** %c4, align 8, !dbg !84 - %"$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 = %"$have_gas_835" - call void @_out_of_gas() - br label %"$have_gas_851" - -"$have_gas_851": ; preds = %"$out_of_gas_850", %"$have_gas_835" - %"$consume_852" = sub i64 %"$gasrem_848", 1 - store i64 %"$consume_852", i64* @_gasrem, align 8 + %"$$cmul_17_846" = load { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %"$cmul_17", align 8 + %"$$cmul_17_fptr_847" = extractvalue { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$$cmul_17_846", 0 + %"$$cmul_17_envptr_848" = extractvalue { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$$cmul_17_846", 1 + %"$c2_849" = load { i8*, i8* }*, { i8*, i8* }** %c2, align 8 + %"$$cmul_17_call_850" = call { i8*, i8* }* %"$$cmul_17_fptr_847"(i8* %"$$cmul_17_envptr_848", { i8*, i8* }* %"$c2_849"), !dbg !115 + store { i8*, i8* }* %"$$cmul_17_call_850", { i8*, i8* }** %"$cmul_18", align 8, !dbg !115 + %"$$cmul_18_851" = load { i8*, i8* }*, { i8*, i8* }** %"$cmul_18", align 8 + store { i8*, i8* }* %"$$cmul_18_851", { i8*, i8* }** %c4, align 8, !dbg !115 + %"$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_839" + call void @_out_of_gas() + br label %"$have_gas_855" + +"$have_gas_855": ; preds = %"$out_of_gas_854", %"$have_gas_839" + %"$consume_856" = sub i64 %"$gasrem_852", 1 + store i64 %"$consume_856", i64* @_gasrem, align 8 %c16 = alloca { i8*, i8* }*, align 8 - %"$gasrem_853" = load i64, i64* @_gasrem, align 8 - %"$gascmp_854" = icmp ugt i64 1, %"$gasrem_853" - br i1 %"$gascmp_854", label %"$out_of_gas_855", label %"$have_gas_856" + %"$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_855": ; preds = %"$have_gas_851" +"$out_of_gas_859": ; preds = %"$have_gas_855" call void @_out_of_gas() - br label %"$have_gas_856" + br label %"$have_gas_860" -"$have_gas_856": ; preds = %"$out_of_gas_855", %"$have_gas_851" - %"$consume_857" = sub i64 %"$gasrem_853", 1 - store i64 %"$consume_857", i64* @_gasrem, align 8 +"$have_gas_860": ; preds = %"$out_of_gas_859", %"$have_gas_855" + %"$consume_861" = sub i64 %"$gasrem_857", 1 + store i64 %"$consume_861", i64* @_gasrem, align 8 %"$cmul_19" = alloca { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }, align 8 - %"$cmul_858" = 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_859" = extractvalue { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* } %"$cmul_858", 0 - %"$cmul_envptr_860" = extractvalue { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* } %"$cmul_858", 1 - %"$c4_861" = load { i8*, i8* }*, { i8*, i8* }** %c4, align 8 - %"$cmul_call_862" = call { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$cmul_fptr_859"(i8* %"$cmul_envptr_860", { i8*, i8* }* %"$c4_861"), !dbg !85 - store { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$cmul_call_862", { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %"$cmul_19", align 8, !dbg !85 + %"$cmul_862" = 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_863" = extractvalue { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* } %"$cmul_862", 0 + %"$cmul_envptr_864" = extractvalue { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* } %"$cmul_862", 1 + %"$c4_865" = load { i8*, i8* }*, { i8*, i8* }** %c4, align 8 + %"$cmul_call_866" = call { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$cmul_fptr_863"(i8* %"$cmul_envptr_864", { i8*, i8* }* %"$c4_865"), !dbg !116 + store { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$cmul_call_866", { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %"$cmul_19", align 8, !dbg !116 %"$cmul_20" = alloca { i8*, i8* }*, align 8 - %"$$cmul_19_863" = load { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %"$cmul_19", align 8 - %"$$cmul_19_fptr_864" = extractvalue { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$$cmul_19_863", 0 - %"$$cmul_19_envptr_865" = extractvalue { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$$cmul_19_863", 1 - %"$c4_866" = load { i8*, i8* }*, { i8*, i8* }** %c4, align 8 - %"$$cmul_19_call_867" = call { i8*, i8* }* %"$$cmul_19_fptr_864"(i8* %"$$cmul_19_envptr_865", { i8*, i8* }* %"$c4_866"), !dbg !85 - store { i8*, i8* }* %"$$cmul_19_call_867", { i8*, i8* }** %"$cmul_20", align 8, !dbg !85 - %"$$cmul_20_868" = load { i8*, i8* }*, { i8*, i8* }** %"$cmul_20", align 8 - store { i8*, i8* }* %"$$cmul_20_868", { i8*, i8* }** %c16, align 8, !dbg !85 - %"$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_856" - call void @_out_of_gas() - br label %"$have_gas_872" - -"$have_gas_872": ; preds = %"$out_of_gas_871", %"$have_gas_856" - %"$consume_873" = sub i64 %"$gasrem_869", 1 - store i64 %"$consume_873", i64* @_gasrem, align 8 + %"$$cmul_19_867" = load { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %"$cmul_19", align 8 + %"$$cmul_19_fptr_868" = extractvalue { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$$cmul_19_867", 0 + %"$$cmul_19_envptr_869" = extractvalue { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$$cmul_19_867", 1 + %"$c4_870" = load { i8*, i8* }*, { i8*, i8* }** %c4, align 8 + %"$$cmul_19_call_871" = call { i8*, i8* }* %"$$cmul_19_fptr_868"(i8* %"$$cmul_19_envptr_869", { i8*, i8* }* %"$c4_870"), !dbg !116 + store { i8*, i8* }* %"$$cmul_19_call_871", { i8*, i8* }** %"$cmul_20", align 8, !dbg !116 + %"$$cmul_20_872" = load { i8*, i8* }*, { i8*, i8* }** %"$cmul_20", align 8 + store { i8*, i8* }* %"$$cmul_20_872", { i8*, i8* }** %c16, align 8, !dbg !116 + %"$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_860" + call void @_out_of_gas() + br label %"$have_gas_876" + +"$have_gas_876": ; preds = %"$out_of_gas_875", %"$have_gas_860" + %"$consume_877" = sub i64 %"$gasrem_873", 1 + store i64 %"$consume_877", i64* @_gasrem, align 8 %c32 = alloca { i8*, 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" + %"$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_876": ; preds = %"$have_gas_872" +"$out_of_gas_880": ; preds = %"$have_gas_876" call void @_out_of_gas() - br label %"$have_gas_877" + br label %"$have_gas_881" -"$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 +"$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 %"$cadd_21" = alloca { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }, align 8 - %"$cadd_879" = 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_880" = extractvalue { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* } %"$cadd_879", 0 - %"$cadd_envptr_881" = extractvalue { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* } %"$cadd_879", 1 - %"$c16_882" = load { i8*, i8* }*, { i8*, i8* }** %c16, align 8 - %"$cadd_call_883" = call { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$cadd_fptr_880"(i8* %"$cadd_envptr_881", { i8*, i8* }* %"$c16_882"), !dbg !86 - store { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$cadd_call_883", { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %"$cadd_21", align 8, !dbg !86 + %"$cadd_883" = 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_884" = extractvalue { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* } %"$cadd_883", 0 + %"$cadd_envptr_885" = extractvalue { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* } %"$cadd_883", 1 + %"$c16_886" = load { i8*, i8* }*, { i8*, i8* }** %c16, align 8 + %"$cadd_call_887" = call { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$cadd_fptr_884"(i8* %"$cadd_envptr_885", { i8*, i8* }* %"$c16_886"), !dbg !117 + store { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$cadd_call_887", { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %"$cadd_21", align 8, !dbg !117 %"$cadd_22" = alloca { i8*, i8* }*, align 8 - %"$$cadd_21_884" = load { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %"$cadd_21", align 8 - %"$$cadd_21_fptr_885" = extractvalue { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$$cadd_21_884", 0 - %"$$cadd_21_envptr_886" = extractvalue { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$$cadd_21_884", 1 - %"$c16_887" = load { i8*, i8* }*, { i8*, i8* }** %c16, align 8 - %"$$cadd_21_call_888" = call { i8*, i8* }* %"$$cadd_21_fptr_885"(i8* %"$$cadd_21_envptr_886", { i8*, i8* }* %"$c16_887"), !dbg !86 - store { i8*, i8* }* %"$$cadd_21_call_888", { i8*, i8* }** %"$cadd_22", align 8, !dbg !86 - %"$$cadd_22_889" = load { i8*, i8* }*, { i8*, i8* }** %"$cadd_22", align 8 - store { i8*, i8* }* %"$$cadd_22_889", { i8*, i8* }** %c32, align 8, !dbg !86 - %"$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_877" - call void @_out_of_gas() - br label %"$have_gas_893" - -"$have_gas_893": ; preds = %"$out_of_gas_892", %"$have_gas_877" - %"$consume_894" = sub i64 %"$gasrem_890", 1 - store i64 %"$consume_894", i64* @_gasrem, align 8 + %"$$cadd_21_888" = load { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %"$cadd_21", align 8 + %"$$cadd_21_fptr_889" = extractvalue { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$$cadd_21_888", 0 + %"$$cadd_21_envptr_890" = extractvalue { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$$cadd_21_888", 1 + %"$c16_891" = load { i8*, i8* }*, { i8*, i8* }** %c16, align 8 + %"$$cadd_21_call_892" = call { i8*, i8* }* %"$$cadd_21_fptr_889"(i8* %"$$cadd_21_envptr_890", { i8*, i8* }* %"$c16_891"), !dbg !117 + store { i8*, i8* }* %"$$cadd_21_call_892", { i8*, i8* }** %"$cadd_22", align 8, !dbg !117 + %"$$cadd_22_893" = load { i8*, i8* }*, { i8*, i8* }** %"$cadd_22", align 8 + store { i8*, i8* }* %"$$cadd_22_893", { i8*, i8* }** %c32, align 8, !dbg !117 + %"$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_881" + call void @_out_of_gas() + br label %"$have_gas_897" + +"$have_gas_897": ; preds = %"$out_of_gas_896", %"$have_gas_881" + %"$consume_898" = sub i64 %"$gasrem_894", 1 + store i64 %"$consume_898", i64* @_gasrem, align 8 %c128 = alloca { i8*, i8* }*, 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" + %"$gasrem_899" = load i64, i64* @_gasrem, align 8 + %"$gascmp_900" = icmp ugt i64 1, %"$gasrem_899" + br i1 %"$gascmp_900", label %"$out_of_gas_901", label %"$have_gas_902" -"$out_of_gas_897": ; preds = %"$have_gas_893" +"$out_of_gas_901": ; preds = %"$have_gas_897" call void @_out_of_gas() - br label %"$have_gas_898" + br label %"$have_gas_902" -"$have_gas_898": ; preds = %"$out_of_gas_897", %"$have_gas_893" - %"$consume_899" = sub i64 %"$gasrem_895", 1 - store i64 %"$consume_899", i64* @_gasrem, align 8 +"$have_gas_902": ; preds = %"$out_of_gas_901", %"$have_gas_897" + %"$consume_903" = sub i64 %"$gasrem_899", 1 + store i64 %"$consume_903", i64* @_gasrem, align 8 %"$cmul_23" = alloca { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }, align 8 - %"$cmul_900" = 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_901" = extractvalue { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* } %"$cmul_900", 0 - %"$cmul_envptr_902" = extractvalue { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* } %"$cmul_900", 1 - %"$c4_903" = load { i8*, i8* }*, { i8*, i8* }** %c4, align 8 - %"$cmul_call_904" = call { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$cmul_fptr_901"(i8* %"$cmul_envptr_902", { i8*, i8* }* %"$c4_903"), !dbg !87 - store { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$cmul_call_904", { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %"$cmul_23", align 8, !dbg !87 + %"$cmul_904" = 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_905" = extractvalue { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* } %"$cmul_904", 0 + %"$cmul_envptr_906" = extractvalue { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* } %"$cmul_904", 1 + %"$c4_907" = load { i8*, i8* }*, { i8*, i8* }** %c4, align 8 + %"$cmul_call_908" = call { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$cmul_fptr_905"(i8* %"$cmul_envptr_906", { i8*, i8* }* %"$c4_907"), !dbg !118 + store { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$cmul_call_908", { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %"$cmul_23", align 8, !dbg !118 %"$cmul_24" = alloca { i8*, i8* }*, align 8 - %"$$cmul_23_905" = load { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %"$cmul_23", align 8 - %"$$cmul_23_fptr_906" = extractvalue { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$$cmul_23_905", 0 - %"$$cmul_23_envptr_907" = extractvalue { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$$cmul_23_905", 1 - %"$c32_908" = load { i8*, i8* }*, { i8*, i8* }** %c32, align 8 - %"$$cmul_23_call_909" = call { i8*, i8* }* %"$$cmul_23_fptr_906"(i8* %"$$cmul_23_envptr_907", { i8*, i8* }* %"$c32_908"), !dbg !87 - store { i8*, i8* }* %"$$cmul_23_call_909", { i8*, i8* }** %"$cmul_24", align 8, !dbg !87 - %"$$cmul_24_910" = load { i8*, i8* }*, { i8*, i8* }** %"$cmul_24", align 8 - store { i8*, i8* }* %"$$cmul_24_910", { i8*, i8* }** %c128, align 8, !dbg !87 - %"$gasrem_911" = load i64, i64* @_gasrem, align 8 - %"$gascmp_912" = icmp ugt i64 1, %"$gasrem_911" - br i1 %"$gascmp_912", label %"$out_of_gas_913", label %"$have_gas_914" - -"$out_of_gas_913": ; preds = %"$have_gas_898" - call void @_out_of_gas() - br label %"$have_gas_914" - -"$have_gas_914": ; preds = %"$out_of_gas_913", %"$have_gas_898" - %"$consume_915" = sub i64 %"$gasrem_911", 1 - store i64 %"$consume_915", i64* @_gasrem, align 8 + %"$$cmul_23_909" = load { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %"$cmul_23", align 8 + %"$$cmul_23_fptr_910" = extractvalue { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$$cmul_23_909", 0 + %"$$cmul_23_envptr_911" = extractvalue { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$$cmul_23_909", 1 + %"$c32_912" = load { i8*, i8* }*, { i8*, i8* }** %c32, align 8 + %"$$cmul_23_call_913" = call { i8*, i8* }* %"$$cmul_23_fptr_910"(i8* %"$$cmul_23_envptr_911", { i8*, i8* }* %"$c32_912"), !dbg !118 + store { i8*, i8* }* %"$$cmul_23_call_913", { i8*, i8* }** %"$cmul_24", align 8, !dbg !118 + %"$$cmul_24_914" = load { i8*, i8* }*, { i8*, i8* }** %"$cmul_24", align 8 + store { i8*, i8* }* %"$$cmul_24_914", { i8*, i8* }** %c128, align 8, !dbg !118 + %"$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_902" + call void @_out_of_gas() + br label %"$have_gas_918" + +"$have_gas_918": ; preds = %"$out_of_gas_917", %"$have_gas_902" + %"$consume_919" = sub i64 %"$gasrem_915", 1 + store i64 %"$consume_919", i64* @_gasrem, align 8 %c256 = alloca { i8*, i8* }*, align 8 - %"$gasrem_916" = load i64, i64* @_gasrem, align 8 - %"$gascmp_917" = icmp ugt i64 1, %"$gasrem_916" - br i1 %"$gascmp_917", label %"$out_of_gas_918", label %"$have_gas_919" + %"$gasrem_920" = load i64, i64* @_gasrem, align 8 + %"$gascmp_921" = icmp ugt i64 1, %"$gasrem_920" + br i1 %"$gascmp_921", label %"$out_of_gas_922", label %"$have_gas_923" -"$out_of_gas_918": ; preds = %"$have_gas_914" +"$out_of_gas_922": ; preds = %"$have_gas_918" call void @_out_of_gas() - br label %"$have_gas_919" + br label %"$have_gas_923" -"$have_gas_919": ; preds = %"$out_of_gas_918", %"$have_gas_914" - %"$consume_920" = sub i64 %"$gasrem_916", 1 - store i64 %"$consume_920", i64* @_gasrem, align 8 +"$have_gas_923": ; preds = %"$out_of_gas_922", %"$have_gas_918" + %"$consume_924" = sub i64 %"$gasrem_920", 1 + store i64 %"$consume_924", i64* @_gasrem, align 8 %"$cadd_25" = alloca { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }, align 8 - %"$cadd_921" = 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_922" = extractvalue { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* } %"$cadd_921", 0 - %"$cadd_envptr_923" = extractvalue { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* } %"$cadd_921", 1 - %"$c128_924" = load { i8*, i8* }*, { i8*, i8* }** %c128, align 8 - %"$cadd_call_925" = call { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$cadd_fptr_922"(i8* %"$cadd_envptr_923", { i8*, i8* }* %"$c128_924"), !dbg !88 - store { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$cadd_call_925", { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %"$cadd_25", align 8, !dbg !88 + %"$cadd_925" = 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_926" = extractvalue { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* } %"$cadd_925", 0 + %"$cadd_envptr_927" = extractvalue { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* } %"$cadd_925", 1 + %"$c128_928" = load { i8*, i8* }*, { i8*, i8* }** %c128, align 8 + %"$cadd_call_929" = call { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$cadd_fptr_926"(i8* %"$cadd_envptr_927", { i8*, i8* }* %"$c128_928"), !dbg !119 + store { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$cadd_call_929", { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %"$cadd_25", align 8, !dbg !119 %"$cadd_26" = alloca { i8*, i8* }*, align 8 - %"$$cadd_25_926" = load { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %"$cadd_25", align 8 - %"$$cadd_25_fptr_927" = extractvalue { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$$cadd_25_926", 0 - %"$$cadd_25_envptr_928" = extractvalue { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$$cadd_25_926", 1 - %"$c128_929" = load { i8*, i8* }*, { i8*, i8* }** %c128, align 8 - %"$$cadd_25_call_930" = call { i8*, i8* }* %"$$cadd_25_fptr_927"(i8* %"$$cadd_25_envptr_928", { i8*, i8* }* %"$c128_929"), !dbg !88 - store { i8*, i8* }* %"$$cadd_25_call_930", { i8*, i8* }** %"$cadd_26", align 8, !dbg !88 - %"$$cadd_26_931" = load { i8*, i8* }*, { i8*, i8* }** %"$cadd_26", align 8 - store { i8*, i8* }* %"$$cadd_26_931", { i8*, i8* }** %c256, align 8, !dbg !88 - %"$gasrem_932" = load i64, i64* @_gasrem, align 8 - %"$gascmp_933" = icmp ugt i64 1, %"$gasrem_932" - br i1 %"$gascmp_933", label %"$out_of_gas_934", label %"$have_gas_935" - -"$out_of_gas_934": ; preds = %"$have_gas_919" - call void @_out_of_gas() - br label %"$have_gas_935" - -"$have_gas_935": ; preds = %"$out_of_gas_934", %"$have_gas_919" - %"$consume_936" = sub i64 %"$gasrem_932", 1 - store i64 %"$consume_936", i64* @_gasrem, align 8 + %"$$cadd_25_930" = load { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %"$cadd_25", align 8 + %"$$cadd_25_fptr_931" = extractvalue { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$$cadd_25_930", 0 + %"$$cadd_25_envptr_932" = extractvalue { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$$cadd_25_930", 1 + %"$c128_933" = load { i8*, i8* }*, { i8*, i8* }** %c128, align 8 + %"$$cadd_25_call_934" = call { i8*, i8* }* %"$$cadd_25_fptr_931"(i8* %"$$cadd_25_envptr_932", { i8*, i8* }* %"$c128_933"), !dbg !119 + store { i8*, i8* }* %"$$cadd_25_call_934", { i8*, i8* }** %"$cadd_26", align 8, !dbg !119 + %"$$cadd_26_935" = load { i8*, i8* }*, { i8*, i8* }** %"$cadd_26", align 8 + store { i8*, i8* }* %"$$cadd_26_935", { i8*, i8* }** %c256, align 8, !dbg !119 + %"$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_923" + call void @_out_of_gas() + br label %"$have_gas_939" + +"$have_gas_939": ; preds = %"$out_of_gas_938", %"$have_gas_923" + %"$consume_940" = sub i64 %"$gasrem_936", 1 + store i64 %"$consume_940", i64* @_gasrem, align 8 %c65536 = alloca { i8*, i8* }*, align 8 - %"$gasrem_937" = load i64, i64* @_gasrem, align 8 - %"$gascmp_938" = icmp ugt i64 1, %"$gasrem_937" - br i1 %"$gascmp_938", label %"$out_of_gas_939", label %"$have_gas_940" + %"$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" -"$out_of_gas_939": ; preds = %"$have_gas_935" +"$out_of_gas_943": ; preds = %"$have_gas_939" call void @_out_of_gas() - br label %"$have_gas_940" + br label %"$have_gas_944" -"$have_gas_940": ; preds = %"$out_of_gas_939", %"$have_gas_935" - %"$consume_941" = sub i64 %"$gasrem_937", 1 - store i64 %"$consume_941", i64* @_gasrem, align 8 +"$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 %"$cmul_27" = alloca { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }, align 8 - %"$cmul_942" = 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_943" = extractvalue { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* } %"$cmul_942", 0 - %"$cmul_envptr_944" = extractvalue { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* } %"$cmul_942", 1 - %"$c256_945" = load { i8*, i8* }*, { i8*, i8* }** %c256, align 8 - %"$cmul_call_946" = call { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$cmul_fptr_943"(i8* %"$cmul_envptr_944", { i8*, i8* }* %"$c256_945"), !dbg !89 - store { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$cmul_call_946", { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %"$cmul_27", align 8, !dbg !89 + %"$cmul_946" = 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_947" = extractvalue { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* } %"$cmul_946", 0 + %"$cmul_envptr_948" = extractvalue { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* } %"$cmul_946", 1 + %"$c256_949" = load { i8*, i8* }*, { i8*, i8* }** %c256, align 8 + %"$cmul_call_950" = call { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$cmul_fptr_947"(i8* %"$cmul_envptr_948", { i8*, i8* }* %"$c256_949"), !dbg !120 + store { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$cmul_call_950", { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %"$cmul_27", align 8, !dbg !120 %"$cmul_28" = alloca { i8*, i8* }*, align 8 - %"$$cmul_27_947" = load { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %"$cmul_27", align 8 - %"$$cmul_27_fptr_948" = extractvalue { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$$cmul_27_947", 0 - %"$$cmul_27_envptr_949" = extractvalue { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$$cmul_27_947", 1 - %"$c256_950" = load { i8*, i8* }*, { i8*, i8* }** %c256, align 8 - %"$$cmul_27_call_951" = call { i8*, i8* }* %"$$cmul_27_fptr_948"(i8* %"$$cmul_27_envptr_949", { i8*, i8* }* %"$c256_950"), !dbg !89 - store { i8*, i8* }* %"$$cmul_27_call_951", { i8*, i8* }** %"$cmul_28", align 8, !dbg !89 - %"$$cmul_28_952" = load { i8*, i8* }*, { i8*, i8* }** %"$cmul_28", align 8 - store { i8*, i8* }* %"$$cmul_28_952", { i8*, i8* }** %c65536, align 8, !dbg !89 - %"$gasrem_953" = load i64, i64* @_gasrem, align 8 - %"$gascmp_954" = icmp ugt i64 1, %"$gasrem_953" - br i1 %"$gascmp_954", label %"$out_of_gas_955", label %"$have_gas_956" - -"$out_of_gas_955": ; preds = %"$have_gas_940" - call void @_out_of_gas() - br label %"$have_gas_956" - -"$have_gas_956": ; preds = %"$out_of_gas_955", %"$have_gas_940" - %"$consume_957" = sub i64 %"$gasrem_953", 1 - store i64 %"$consume_957", i64* @_gasrem, align 8 + %"$$cmul_27_951" = load { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %"$cmul_27", align 8 + %"$$cmul_27_fptr_952" = extractvalue { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$$cmul_27_951", 0 + %"$$cmul_27_envptr_953" = extractvalue { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$$cmul_27_951", 1 + %"$c256_954" = load { i8*, i8* }*, { i8*, i8* }** %c256, align 8 + %"$$cmul_27_call_955" = call { i8*, i8* }* %"$$cmul_27_fptr_952"(i8* %"$$cmul_27_envptr_953", { i8*, i8* }* %"$c256_954"), !dbg !120 + store { i8*, i8* }* %"$$cmul_27_call_955", { i8*, i8* }** %"$cmul_28", align 8, !dbg !120 + %"$$cmul_28_956" = load { i8*, i8* }*, { i8*, i8* }** %"$cmul_28", align 8 + store { i8*, i8* }* %"$$cmul_28_956", { i8*, i8* }** %c65536, align 8, !dbg !120 + %"$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_944" + call void @_out_of_gas() + br label %"$have_gas_960" + +"$have_gas_960": ; preds = %"$out_of_gas_959", %"$have_gas_944" + %"$consume_961" = sub i64 %"$gasrem_957", 1 + store i64 %"$consume_961", i64* @_gasrem, align 8 %"$church_nat_to_uint32_29" = alloca %Uint32, align 8 - %"$church_nat_to_uint32_958" = load { %Uint32 (i8*, { i8*, i8* }*)*, i8* }, { %Uint32 (i8*, { i8*, i8* }*)*, i8* }* %church_nat_to_uint32, align 8 - %"$church_nat_to_uint32_fptr_959" = extractvalue { %Uint32 (i8*, { i8*, i8* }*)*, i8* } %"$church_nat_to_uint32_958", 0 - %"$church_nat_to_uint32_envptr_960" = extractvalue { %Uint32 (i8*, { i8*, i8* }*)*, i8* } %"$church_nat_to_uint32_958", 1 - %"$c65536_961" = load { i8*, i8* }*, { i8*, i8* }** %c65536, align 8 - %"$church_nat_to_uint32_call_962" = call %Uint32 %"$church_nat_to_uint32_fptr_959"(i8* %"$church_nat_to_uint32_envptr_960", { i8*, i8* }* %"$c65536_961"), !dbg !90 - store %Uint32 %"$church_nat_to_uint32_call_962", %Uint32* %"$church_nat_to_uint32_29", align 4, !dbg !90 - %"$$church_nat_to_uint32_29_963" = load %Uint32, %Uint32* %"$church_nat_to_uint32_29", align 4 - store %Uint32 %"$$church_nat_to_uint32_29_963", %Uint32* %"$expr_30", align 4, !dbg !90 - %"$$expr_30_964" = load %Uint32, %Uint32* %"$expr_30", align 4 - ret %Uint32 %"$$expr_30_964" + call void @llvm.dbg.declare(metadata %Uint32* %"$church_nat_to_uint32_29", metadata !121, metadata !DIExpression()), !dbg !122 + %"$church_nat_to_uint32_962" = load { %Uint32 (i8*, { i8*, i8* }*)*, i8* }, { %Uint32 (i8*, { i8*, i8* }*)*, i8* }* %church_nat_to_uint32, align 8 + %"$church_nat_to_uint32_fptr_963" = extractvalue { %Uint32 (i8*, { i8*, i8* }*)*, i8* } %"$church_nat_to_uint32_962", 0 + %"$church_nat_to_uint32_envptr_964" = extractvalue { %Uint32 (i8*, { i8*, i8* }*)*, i8* } %"$church_nat_to_uint32_962", 1 + %"$c65536_965" = load { i8*, i8* }*, { i8*, i8* }** %c65536, align 8 + %"$church_nat_to_uint32_call_966" = call %Uint32 %"$church_nat_to_uint32_fptr_963"(i8* %"$church_nat_to_uint32_envptr_964", { i8*, i8* }* %"$c65536_965"), !dbg !122 + store %Uint32 %"$church_nat_to_uint32_call_966", %Uint32* %"$church_nat_to_uint32_29", align 4, !dbg !122 + %"$$church_nat_to_uint32_29_967" = load %Uint32, %Uint32* %"$church_nat_to_uint32_29", align 4 + store %Uint32 %"$$church_nat_to_uint32_29_967", %Uint32* %"$expr_30", align 4, !dbg !122 + %"$$expr_30_968" = load %Uint32, %Uint32* %"$expr_30", align 4 + ret %Uint32 %"$$expr_30_968" } declare void @_print_scilla_val(i8*, %_TyDescrTy_Typ*, i8*) define void @scilla_main() { entry: - %"$exprval_965" = call %Uint32 @_scilla_expr_fun(i8* null) - %"$pval_966" = alloca %Uint32, align 8 - %"$memvoidcast_967" = bitcast %Uint32* %"$pval_966" to i8* - store %Uint32 %"$exprval_965", %Uint32* %"$pval_966", align 4 - %"$execptr_load_968" = load i8*, i8** @_execptr, align 8 - call void @_print_scilla_val(i8* %"$execptr_load_968", %_TyDescrTy_Typ* @"$TyDescr_Uint32_83", i8* %"$memvoidcast_967") + %"$exprval_969" = call %Uint32 @_scilla_expr_fun(i8* null) + %"$pval_970" = alloca %Uint32, align 8 + %"$memvoidcast_971" = bitcast %Uint32* %"$pval_970" to i8* + store %Uint32 %"$exprval_969", %Uint32* %"$pval_970", align 4 + %"$execptr_load_972" = load i8*, i8** @_execptr, align 8 + call void @_print_scilla_val(i8* %"$execptr_load_972", %_TyDescrTy_Typ* @"$TyDescr_Uint32_83", i8* %"$memvoidcast_971") ret void } +attributes #0 = { nocallback nofree nosync nounwind readnone speculatable willreturn } + !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) +!1 = distinct !DICompileUnit(language: DW_LANG_C89, file: !2, producer: "Scilla Compiler", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false) !2 = !DIFile(filename: "church_nat.scilexp", directory: "codegen/expr") -!3 = !{} -!4 = distinct !DISubprogram(name: "$fundef_77", linkageName: "$fundef_77", 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_75", linkageName: "$fundef_75", 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_73", linkageName: "$fundef_73", scope: !2, file: !2, line: 27, type: !5, scopeLine: 27, 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_71", linkageName: "$fundef_71", 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_69", linkageName: "$fundef_69", 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_67", linkageName: "$fundef_67", 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_65", linkageName: "$fundef_65", 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_63", linkageName: "$fundef_63", scope: !2, file: !2, line: 18, type: !5, scopeLine: 18, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!3 = distinct !DISubprogram(name: "$fundef_77", linkageName: "$fundef_77", scope: !2, file: !2, line: 36, type: !4, scopeLine: 36, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!4 = !DISubroutineType(types: !5) +!5 = !{!6} +!6 = !DIBasicType(tag: DW_TAG_unspecified_type, name: "void") +!7 = !{} +!8 = !DILocalVariable(name: "x", scope: !3, file: !2, line: 36, type: !9) +!9 = !DIBasicType(name: "Uint32", size: 4) +!10 = !DILocation(line: 36, column: 21, scope: !3) +!11 = !DILocalVariable(name: "$retval_78", scope: !3, file: !2, line: 36, type: !9) +!12 = !DILocation(line: 36, column: 36, scope: !3) +!13 = distinct !DISubprogram(name: "$fundef_75", linkageName: "$fundef_75", scope: !2, file: !2, line: 34, type: !4, scopeLine: 34, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!14 = !DILocalVariable(name: "$retval_76", scope: !13, file: !2, line: 34, type: !9) +!15 = !DILocation(line: 34, column: 5, scope: !13) +!16 = !DILocalVariable(name: "zero", scope: !13, file: !2, line: 34, type: !9) +!17 = !DILocation(line: 34, column: 9, scope: !13) +!18 = !DILocation(line: 34, column: 16, scope: !13) +!19 = !DILocalVariable(name: "one", scope: !13, file: !2, line: 35, type: !9) +!20 = !DILocation(line: 35, column: 9, scope: !13) +!21 = !DILocation(line: 35, column: 15, scope: !13) +!22 = !DILocation(line: 36, column: 36, scope: !13) +!23 = !DILocation(line: 37, column: 16, scope: !13) +!24 = !DILocation(line: 37, column: 15, scope: !13) +!25 = !DILocation(line: 38, column: 5, scope: !13) +!26 = !DILocalVariable(name: "$c32_16", scope: !13, file: !2, line: 38, type: !9) +!27 = distinct !DISubprogram(name: "$fundef_73", linkageName: "$fundef_73", scope: !2, file: !2, line: 27, type: !4, scopeLine: 27, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!28 = !DILocation(line: 27, column: 16, scope: !27) +!29 = !DILocation(line: 28, column: 13, scope: !27) +!30 = !DILocation(line: 28, column: 12, scope: !27) +!31 = !DILocation(line: 29, column: 3, scope: !27) +!32 = distinct !DISubprogram(name: "$fundef_71", linkageName: "$fundef_71", scope: !2, file: !2, line: 26, type: !4, scopeLine: 26, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!33 = !DILocation(line: 27, column: 3, scope: !32) +!34 = distinct !DISubprogram(name: "$fundef_69", linkageName: "$fundef_69", scope: !2, file: !2, line: 18, type: !4, scopeLine: 18, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) !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_61", linkageName: "$fundef_61", scope: !2, file: !2, line: 17, type: !5, scopeLine: 17, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!41 = distinct !DISubprogram(name: "$fundef_67", linkageName: "$fundef_67", scope: !2, file: !2, line: 17, type: !4, scopeLine: 17, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) !42 = !DILocation(line: 18, column: 3, scope: !41) -!43 = 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) +!43 = distinct !DISubprogram(name: "$fundef_65", linkageName: "$fundef_65", scope: !2, file: !2, line: 17, type: !4, scopeLine: 17, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) !44 = !DILocation(line: 17, column: 3, scope: !43) -!45 = distinct !DISubprogram(name: "$fundef_57", linkageName: "$fundef_57", scope: !2, file: !2, line: 15, type: !5, scopeLine: 15, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!46 = !DILocation(line: 15, column: 3, scope: !45) -!47 = distinct !DISubprogram(name: "$fundef_55", linkageName: "$fundef_55", 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_53", linkageName: "$fundef_53", 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_51", linkageName: "$fundef_51", 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_49", linkageName: "$fundef_49", 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_47", linkageName: "$fundef_47", 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_45", linkageName: "$fundef_45", 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_43", linkageName: "$fundef_43", 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_41", linkageName: "$fundef_41", 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_39", linkageName: "$fundef_39", 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_37", linkageName: "$fundef_37", 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_35", linkageName: "$fundef_35", 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_33", linkageName: "$fundef_33", 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_31", linkageName: "$fundef_31", 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 = !DILocation(line: 0, scope: !75) -!78 = 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) -!79 = !DILocation(line: 3, column: 10, scope: !78) -!80 = !DILocation(line: 9, column: 10, scope: !78) -!81 = !DILocation(line: 14, column: 3, scope: !78) -!82 = !DILocation(line: 26, column: 3, scope: !78) -!83 = !DILocation(line: 34, column: 5, scope: !78) -!84 = !DILocation(line: 41, column: 10, scope: !78) -!85 = !DILocation(line: 42, column: 11, scope: !78) -!86 = !DILocation(line: 43, column: 11, scope: !78) -!87 = !DILocation(line: 44, column: 12, scope: !78) -!88 = !DILocation(line: 45, column: 12, scope: !78) -!89 = !DILocation(line: 46, column: 14, scope: !78) -!90 = !DILocation(line: 47, column: 1, scope: !78) +!45 = distinct !DISubprogram(name: "$fundef_63", linkageName: "$fundef_63", scope: !2, file: !2, line: 18, type: !4, scopeLine: 18, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!46 = !DILocalVariable(name: "z", scope: !45, file: !2, line: 17, type: !9) +!47 = !DILocation(line: 17, column: 8, scope: !45) +!48 = !DILocalVariable(name: "$retval_64", scope: !45, file: !2, line: 18, type: !9) +!49 = !DILocation(line: 18, column: 3, scope: !45) +!50 = !DILocation(line: 18, column: 13, scope: !45) +!51 = !DILocation(line: 18, column: 12, scope: !45) +!52 = !DILocation(line: 19, column: 13, scope: !45) +!53 = !DILocation(line: 19, column: 12, scope: !45) +!54 = !DILocalVariable(name: "nXsz", scope: !45, file: !2, line: 20, type: !9) +!55 = !DILocation(line: 20, column: 7, scope: !45) +!56 = !DILocation(line: 20, column: 14, scope: !45) +!57 = !DILocalVariable(name: "$nX_9", scope: !45, file: !2, line: 20, type: !9) +!58 = !DILocation(line: 21, column: 3, scope: !45) +!59 = !DILocalVariable(name: "$mX_11", scope: !45, file: !2, line: 21, type: !9) +!60 = distinct !DISubprogram(name: "$fundef_61", linkageName: "$fundef_61", scope: !2, file: !2, line: 17, type: !4, scopeLine: 17, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!61 = !DILocation(line: 18, column: 3, scope: !60) +!62 = distinct !DISubprogram(name: "$fundef_59", linkageName: "$fundef_59", scope: !2, file: !2, line: 17, type: !4, scopeLine: 17, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!63 = !DILocation(line: 17, column: 3, scope: !62) +!64 = distinct !DISubprogram(name: "$fundef_57", linkageName: "$fundef_57", scope: !2, file: !2, line: 15, type: !4, scopeLine: 15, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!65 = !DILocation(line: 15, column: 3, scope: !64) +!66 = distinct !DISubprogram(name: "$fundef_55", linkageName: "$fundef_55", scope: !2, file: !2, line: 14, type: !4, scopeLine: 14, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!67 = !DILocation(line: 15, column: 3, scope: !66) +!68 = distinct !DISubprogram(name: "$fundef_53", linkageName: "$fundef_53", scope: !2, file: !2, line: 9, type: !4, scopeLine: 9, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!69 = !DILocation(line: 9, column: 68, scope: !68) +!70 = !DILocation(line: 9, column: 75, scope: !68) +!71 = distinct !DISubprogram(name: "$fundef_51", linkageName: "$fundef_51", scope: !2, file: !2, line: 9, type: !4, scopeLine: 9, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!72 = !DILocation(line: 9, column: 59, scope: !71) +!73 = distinct !DISubprogram(name: "$fundef_49", linkageName: "$fundef_49", scope: !2, file: !2, line: 9, type: !4, scopeLine: 9, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!74 = !DILocation(line: 9, column: 43, scope: !73) +!75 = distinct !DISubprogram(name: "$fundef_47", linkageName: "$fundef_47", scope: !2, file: !2, line: 9, type: !4, scopeLine: 9, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!76 = !DILocalVariable(name: "z", scope: !75, file: !2, line: 9, type: !9) +!77 = !DILocation(line: 9, column: 48, scope: !75) +!78 = !DILocalVariable(name: "$retval_48", scope: !75, file: !2, line: 9, type: !9) +!79 = !DILocation(line: 9, column: 59, scope: !75) +!80 = !DILocalVariable(name: "sz", scope: !75, file: !2, line: 9, type: !9) +!81 = !DILocation(line: 9, column: 63, scope: !75) +!82 = !DILocalVariable(name: "$s_6", scope: !75, file: !2, line: 9, type: !9) +!83 = !DILocation(line: 9, column: 68, scope: !75) +!84 = !DILocalVariable(name: "$s_7", scope: !75, file: !2, line: 9, type: !9) +!85 = !DILocation(line: 9, column: 75, scope: !75) +!86 = distinct !DISubprogram(name: "$fundef_45", linkageName: "$fundef_45", scope: !2, file: !2, line: 9, type: !4, scopeLine: 9, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!87 = !DILocation(line: 9, column: 59, scope: !86) +!88 = distinct !DISubprogram(name: "$fundef_43", linkageName: "$fundef_43", scope: !2, file: !2, line: 9, type: !4, scopeLine: 9, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!89 = !DILocation(line: 9, column: 43, scope: !88) +!90 = distinct !DISubprogram(name: "$fundef_41", linkageName: "$fundef_41", scope: !2, file: !2, line: 3, type: !4, scopeLine: 3, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!91 = !DILocation(line: 3, column: 59, scope: !90) +!92 = distinct !DISubprogram(name: "$fundef_39", linkageName: "$fundef_39", scope: !2, file: !2, line: 3, type: !4, scopeLine: 3, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!93 = !DILocation(line: 3, column: 59, scope: !92) +!94 = distinct !DISubprogram(name: "$fundef_37", linkageName: "$fundef_37", scope: !2, file: !2, line: 3, type: !4, scopeLine: 3, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!95 = !DILocation(line: 3, column: 43, scope: !94) +!96 = distinct !DISubprogram(name: "$fundef_35", linkageName: "$fundef_35", scope: !2, file: !2, line: 3, type: !4, scopeLine: 3, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!97 = !DILocalVariable(name: "z", scope: !96, file: !2, line: 3, type: !9) +!98 = !DILocation(line: 3, column: 48, scope: !96) +!99 = !DILocalVariable(name: "$retval_36", scope: !96, file: !2, line: 3, type: !9) +!100 = !DILocation(line: 3, column: 59, scope: !96) +!101 = distinct !DISubprogram(name: "$fundef_33", linkageName: "$fundef_33", scope: !2, file: !2, line: 3, type: !4, scopeLine: 3, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!102 = !DILocation(line: 3, column: 59, scope: !101) +!103 = distinct !DISubprogram(name: "$fundef_31", linkageName: "$fundef_31", scope: !2, file: !2, line: 3, type: !4, scopeLine: 3, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!104 = !DILocation(line: 3, column: 43, scope: !103) +!105 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !106, file: !106, type: !4, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!106 = !DIFile(filename: ".", directory: ".") +!107 = !DILocation(line: 0, scope: !105) +!108 = distinct !DISubprogram(name: "_scilla_expr_fun", linkageName: "_scilla_expr_fun", scope: !2, file: !2, line: 3, type: !4, scopeLine: 3, spFlags: DISPFlagDefinition, unit: !1, retainedNodes: !7) +!109 = !DILocalVariable(name: "$expr_30", scope: !108, file: !2, line: 3, type: !9) +!110 = !DILocation(line: 3, column: 10, scope: !108) +!111 = !DILocation(line: 9, column: 10, scope: !108) +!112 = !DILocation(line: 14, column: 3, scope: !108) +!113 = !DILocation(line: 26, column: 3, scope: !108) +!114 = !DILocation(line: 34, column: 5, scope: !108) +!115 = !DILocation(line: 41, column: 10, scope: !108) +!116 = !DILocation(line: 42, column: 11, scope: !108) +!117 = !DILocation(line: 43, column: 11, scope: !108) +!118 = !DILocation(line: 44, column: 12, scope: !108) +!119 = !DILocation(line: 45, column: 12, scope: !108) +!120 = !DILocation(line: 46, column: 14, scope: !108) +!121 = !DILocalVariable(name: "$church_nat_to_uint32_29", scope: !108, file: !2, line: 47, type: !9) +!122 = !DILocation(line: 47, column: 1, scope: !108) diff --git a/testsuite/expr/church_nat.ll b/testsuite/expr/church_nat.ll index 098e3d51..a209930c 100644 --- a/testsuite/expr/church_nat.ll +++ b/testsuite/expr/church_nat.ll @@ -48,7 +48,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-pc-linux-gnu" +target triple = "x86_64-unknown-linux-gnu" %"$TyDescrTy_PrimTyp_79" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/testsuite/expr/church_nat_stlc.dbg.ll b/testsuite/expr/church_nat_stlc.dbg.ll index ba725829..64857bdf 100644 --- a/testsuite/expr/church_nat_stlc.dbg.ll +++ b/testsuite/expr/church_nat_stlc.dbg.ll @@ -61,14 +61,14 @@ ; 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-pc-linux-gnu" +target triple = "x86_64-unknown-linux-gnu" %"$TyDescrTy_PrimTyp_77" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } %Int32 = type { i32 } -%"$ParamDescr_860" = type { %ParamDescrString, %_TyDescrTy_Typ* } +%"$ParamDescr_864" = type { %ParamDescrString, %_TyDescrTy_Typ* } %ParamDescrString = type { i8*, i32 } -%"$TransDescr_861" = type { %ParamDescrString, i32, %"$ParamDescr_860"* } +%"$TransDescr_865" = type { %ParamDescrString, i32, %"$ParamDescr_864"* } %"$$fundef_75_env_114" = type { %Uint32 } %Uint32 = type { i32 } %"$$fundef_73_env_115" = type {} @@ -128,760 +128,788 @@ target triple = "x86_64-pc-linux-gnu" @"$_gas_charge_accPairUtils_4" = global %Int32 zeroinitializer @_tydescr_table = constant [15 x %_TyDescrTy_Typ*] [%_TyDescrTy_Typ* @"$TyDescr_Event_101", %_TyDescrTy_Typ* @"$TyDescr_Int64_83", %_TyDescrTy_Typ* @"$TyDescr_Uint256_93", %_TyDescrTy_Typ* @"$TyDescr_Uint32_81", %_TyDescrTy_Typ* @"$TyDescr_Uint64_85", %_TyDescrTy_Typ* @"$TyDescr_Bnum_97", %_TyDescrTy_Typ* @"$TyDescr_Uint128_89", %_TyDescrTy_Typ* @"$TyDescr_Exception_103", %_TyDescrTy_Typ* @"$TyDescr_String_95", %_TyDescrTy_Typ* @"$TyDescr_Int256_91", %_TyDescrTy_Typ* @"$TyDescr_Int128_87", %_TyDescrTy_Typ* @"$TyDescr_Bystr_107", %_TyDescrTy_Typ* @"$TyDescr_ReplicateContr_105", %_TyDescrTy_Typ* @"$TyDescr_Message_99", %_TyDescrTy_Typ* @"$TyDescr_Int32_79"] @_tydescr_table_length = constant i32 15 -@_contract_parameters = constant [0 x %"$ParamDescr_860"] zeroinitializer +@_contract_parameters = constant [0 x %"$ParamDescr_864"] zeroinitializer @_contract_parameters_length = constant i32 0 -@_transition_parameters = constant [0 x %"$TransDescr_861"] zeroinitializer +@_transition_parameters = constant [0 x %"$TransDescr_865"] zeroinitializer @_transition_parameters_length = constant i32 0 -define internal %Uint32 @"$fundef_75"(%"$$fundef_75_env_114"* %0, %Uint32 %1) !dbg !4 { +define internal %Uint32 @"$fundef_75"(%"$$fundef_75_env_114"* %0, %Uint32 %1) !dbg !3 { entry: - %"$$fundef_75_env_one_504" = getelementptr inbounds %"$$fundef_75_env_114", %"$$fundef_75_env_114"* %0, i32 0, i32 0 - %"$one_envload_505" = load %Uint32, %Uint32* %"$$fundef_75_env_one_504", align 4 + %"$x_517" = alloca %Uint32, align 8 + store %Uint32 %1, %Uint32* %"$x_517", align 4 + call void @llvm.dbg.declare(metadata %Uint32* %"$x_517", metadata !8, metadata !DIExpression()), !dbg !10 + %"$$fundef_75_env_one_507" = getelementptr inbounds %"$$fundef_75_env_114", %"$$fundef_75_env_114"* %0, i32 0, i32 0 + %"$one_envload_508" = load %Uint32, %Uint32* %"$$fundef_75_env_one_507", align 4 %one = alloca %Uint32, align 8 - store %Uint32 %"$one_envload_505", %Uint32* %one, align 4 + store %Uint32 %"$one_envload_508", %Uint32* %one, align 4 %"$retval_76" = alloca %Uint32, align 8 - %"$gasrem_506" = load i64, i64* @_gasrem, align 8 - %"$gascmp_507" = icmp ugt i64 4, %"$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", 4 - store i64 %"$consume_510", i64* @_gasrem, align 8 - %"$one_511" = load %Uint32, %Uint32* %one, align 4 - %"$add_call_512" = call %Uint32 @_add_Uint32(%Uint32 %"$one_511", %Uint32 %1), !dbg !8 - store %Uint32 %"$add_call_512", %Uint32* %"$retval_76", align 4, !dbg !8 - %"$$retval_76_513" = load %Uint32, %Uint32* %"$retval_76", align 4 - ret %Uint32 %"$$retval_76_513" + call void @llvm.dbg.declare(metadata %Uint32* %"$retval_76", metadata !11, metadata !DIExpression()), !dbg !12 + %"$gasrem_509" = load i64, i64* @_gasrem, align 8 + %"$gascmp_510" = icmp ugt i64 4, %"$gasrem_509" + br i1 %"$gascmp_510", label %"$out_of_gas_511", label %"$have_gas_512" + +"$out_of_gas_511": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_512" + +"$have_gas_512": ; preds = %"$out_of_gas_511", %entry + %"$consume_513" = sub i64 %"$gasrem_509", 4 + store i64 %"$consume_513", i64* @_gasrem, align 8 + %"$one_514" = load %Uint32, %Uint32* %one, align 4 + %"$add_call_515" = call %Uint32 @_add_Uint32(%Uint32 %"$one_514", %Uint32 %1), !dbg !12 + store %Uint32 %"$add_call_515", %Uint32* %"$retval_76", align 4, !dbg !12 + %"$$retval_76_516" = load %Uint32, %Uint32* %"$retval_76", align 4 + ret %Uint32 %"$$retval_76_516" } -define internal %Uint32 @"$fundef_73"(%"$$fundef_73_env_115"* %0, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %1) !dbg !9 { +define internal %Uint32 @"$fundef_73"(%"$$fundef_73_env_115"* %0, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %1) !dbg !13 { entry: %"$retval_74" = alloca %Uint32, align 8 - %"$gasrem_452" = load i64, i64* @_gasrem, align 8 - %"$gascmp_453" = icmp ugt i64 1, %"$gasrem_452" - br i1 %"$gascmp_453", label %"$out_of_gas_454", label %"$have_gas_455" + call void @llvm.dbg.declare(metadata %Uint32* %"$retval_74", metadata !14, metadata !DIExpression()), !dbg !15 + %"$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_454": ; preds = %entry +"$out_of_gas_457": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_455" + br label %"$have_gas_458" -"$have_gas_455": ; preds = %"$out_of_gas_454", %entry - %"$consume_456" = sub i64 %"$gasrem_452", 1 - store i64 %"$consume_456", i64* @_gasrem, align 8 +"$have_gas_458": ; preds = %"$out_of_gas_457", %entry + %"$consume_459" = sub i64 %"$gasrem_455", 1 + store i64 %"$consume_459", i64* @_gasrem, align 8 %zero = alloca %Uint32, align 8 - %"$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" + call void @llvm.dbg.declare(metadata %Uint32* %zero, metadata !16, metadata !DIExpression()), !dbg !17 + %"$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_459": ; preds = %"$have_gas_455" +"$out_of_gas_462": ; preds = %"$have_gas_458" call void @_out_of_gas() - br label %"$have_gas_460" + br label %"$have_gas_463" -"$have_gas_460": ; preds = %"$out_of_gas_459", %"$have_gas_455" - %"$consume_461" = sub i64 %"$gasrem_457", 1 - store i64 %"$consume_461", i64* @_gasrem, align 8 - store %Uint32 zeroinitializer, %Uint32* %zero, align 4, !dbg !10 - %"$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" +"$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 %Uint32 zeroinitializer, %Uint32* %zero, align 4, !dbg !18 + %"$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" -"$out_of_gas_464": ; preds = %"$have_gas_460" +"$out_of_gas_467": ; preds = %"$have_gas_463" call void @_out_of_gas() - br label %"$have_gas_465" + br label %"$have_gas_468" -"$have_gas_465": ; preds = %"$out_of_gas_464", %"$have_gas_460" - %"$consume_466" = sub i64 %"$gasrem_462", 1 - store i64 %"$consume_466", i64* @_gasrem, align 8 +"$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 %one = alloca %Uint32, 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" + call void @llvm.dbg.declare(metadata %Uint32* %one, metadata !19, metadata !DIExpression()), !dbg !20 + %"$gasrem_470" = load i64, i64* @_gasrem, align 8 + %"$gascmp_471" = icmp ugt i64 1, %"$gasrem_470" + br i1 %"$gascmp_471", label %"$out_of_gas_472", label %"$have_gas_473" -"$out_of_gas_469": ; preds = %"$have_gas_465" +"$out_of_gas_472": ; preds = %"$have_gas_468" call void @_out_of_gas() - br label %"$have_gas_470" + br label %"$have_gas_473" -"$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 - store %Uint32 { i32 1 }, %Uint32* %one, align 4, !dbg !11 - %"$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" +"$have_gas_473": ; preds = %"$out_of_gas_472", %"$have_gas_468" + %"$consume_474" = sub i64 %"$gasrem_470", 1 + store i64 %"$consume_474", i64* @_gasrem, align 8 + store %Uint32 { i32 1 }, %Uint32* %one, align 4, !dbg !21 + %"$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_474": ; preds = %"$have_gas_470" +"$out_of_gas_477": ; preds = %"$have_gas_473" call void @_out_of_gas() - br label %"$have_gas_475" + br label %"$have_gas_478" -"$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 +"$have_gas_478": ; preds = %"$out_of_gas_477", %"$have_gas_473" + %"$consume_479" = sub i64 %"$gasrem_475", 1 + store i64 %"$consume_479", i64* @_gasrem, align 8 %add1 = alloca { %Uint32 (i8*, %Uint32)*, i8* }, align 8 - %"$gasrem_477" = load i64, i64* @_gasrem, align 8 - %"$gascmp_478" = icmp ugt i64 1, %"$gasrem_477" - br i1 %"$gascmp_478", label %"$out_of_gas_479", label %"$have_gas_480" - -"$out_of_gas_479": ; preds = %"$have_gas_475" - call void @_out_of_gas() - br label %"$have_gas_480" - -"$have_gas_480": ; preds = %"$out_of_gas_479", %"$have_gas_475" - %"$consume_481" = sub i64 %"$gasrem_477", 1 - store i64 %"$consume_481", i64* @_gasrem, align 8 - %"$$fundef_75_envp_482_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_75_envp_482_salloc" = call i8* @_salloc(i8* %"$$fundef_75_envp_482_load", i64 4) - %"$$fundef_75_envp_482" = bitcast i8* %"$$fundef_75_envp_482_salloc" to %"$$fundef_75_env_114"* - %"$$fundef_75_env_voidp_484" = bitcast %"$$fundef_75_env_114"* %"$$fundef_75_envp_482" to i8* - %"$$fundef_75_cloval_485" = insertvalue { %Uint32 (i8*, %Uint32)*, i8* } { %Uint32 (i8*, %Uint32)* bitcast (%Uint32 (%"$$fundef_75_env_114"*, %Uint32)* @"$fundef_75" to %Uint32 (i8*, %Uint32)*), i8* undef }, i8* %"$$fundef_75_env_voidp_484", 1 - %"$$fundef_75_env_one_486" = getelementptr inbounds %"$$fundef_75_env_114", %"$$fundef_75_env_114"* %"$$fundef_75_envp_482", i32 0, i32 0 - %"$one_487" = load %Uint32, %Uint32* %one, align 4 - store %Uint32 %"$one_487", %Uint32* %"$$fundef_75_env_one_486", align 4 - store { %Uint32 (i8*, %Uint32)*, i8* } %"$$fundef_75_cloval_485", { %Uint32 (i8*, %Uint32)*, i8* }* %add1, align 8, !dbg !12 - %"$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_480" - call void @_out_of_gas() - br label %"$have_gas_491" - -"$have_gas_491": ; preds = %"$out_of_gas_490", %"$have_gas_480" - %"$consume_492" = sub i64 %"$gasrem_488", 1 - store i64 %"$consume_492", 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 + %"$$fundef_75_envp_485_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_75_envp_485_salloc" = call i8* @_salloc(i8* %"$$fundef_75_envp_485_load", i64 4) + %"$$fundef_75_envp_485" = bitcast i8* %"$$fundef_75_envp_485_salloc" to %"$$fundef_75_env_114"* + %"$$fundef_75_env_voidp_487" = bitcast %"$$fundef_75_env_114"* %"$$fundef_75_envp_485" to i8* + %"$$fundef_75_cloval_488" = insertvalue { %Uint32 (i8*, %Uint32)*, i8* } { %Uint32 (i8*, %Uint32)* bitcast (%Uint32 (%"$$fundef_75_env_114"*, %Uint32)* @"$fundef_75" to %Uint32 (i8*, %Uint32)*), i8* undef }, i8* %"$$fundef_75_env_voidp_487", 1 + %"$$fundef_75_env_one_489" = getelementptr inbounds %"$$fundef_75_env_114", %"$$fundef_75_env_114"* %"$$fundef_75_envp_485", i32 0, i32 0 + %"$one_490" = load %Uint32, %Uint32* %one, align 4 + store %Uint32 %"$one_490", %Uint32* %"$$fundef_75_env_one_489", align 4 + store { %Uint32 (i8*, %Uint32)*, i8* } %"$$fundef_75_cloval_488", { %Uint32 (i8*, %Uint32)*, i8* }* %add1, align 8, !dbg !22 + %"$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_483" + call void @_out_of_gas() + br label %"$have_gas_494" + +"$have_gas_494": ; preds = %"$out_of_gas_493", %"$have_gas_483" + %"$consume_495" = sub i64 %"$gasrem_491", 1 + store i64 %"$consume_495", i64* @_gasrem, align 8 %"$c_21" = alloca { %Uint32 (i8*, %Uint32)*, i8* }, align 8 - %"$c_fptr_493" = extractvalue { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %1, 0 - %"$c_envptr_494" = extractvalue { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %1, 1 - %"$add1_495" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %add1, align 8 - %"$c_call_496" = call { %Uint32 (i8*, %Uint32)*, i8* } %"$c_fptr_493"(i8* %"$c_envptr_494", { %Uint32 (i8*, %Uint32)*, i8* } %"$add1_495"), !dbg !13 - store { %Uint32 (i8*, %Uint32)*, i8* } %"$c_call_496", { %Uint32 (i8*, %Uint32)*, i8* }* %"$c_21", align 8, !dbg !13 + %"$c_fptr_496" = extractvalue { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %1, 0 + %"$c_envptr_497" = extractvalue { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %1, 1 + %"$add1_498" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %add1, align 8 + %"$c_call_499" = call { %Uint32 (i8*, %Uint32)*, i8* } %"$c_fptr_496"(i8* %"$c_envptr_497", { %Uint32 (i8*, %Uint32)*, i8* } %"$add1_498"), !dbg !23 + store { %Uint32 (i8*, %Uint32)*, i8* } %"$c_call_499", { %Uint32 (i8*, %Uint32)*, i8* }* %"$c_21", align 8, !dbg !23 %"$c_22" = alloca %Uint32, align 8 - %"$$c_21_497" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %"$c_21", align 8 - %"$$c_21_fptr_498" = extractvalue { %Uint32 (i8*, %Uint32)*, i8* } %"$$c_21_497", 0 - %"$$c_21_envptr_499" = extractvalue { %Uint32 (i8*, %Uint32)*, i8* } %"$$c_21_497", 1 - %"$zero_500" = load %Uint32, %Uint32* %zero, align 4 - %"$$c_21_call_501" = call %Uint32 %"$$c_21_fptr_498"(i8* %"$$c_21_envptr_499", %Uint32 %"$zero_500"), !dbg !13 - store %Uint32 %"$$c_21_call_501", %Uint32* %"$c_22", align 4, !dbg !13 - %"$$c_22_502" = load %Uint32, %Uint32* %"$c_22", align 4 - store %Uint32 %"$$c_22_502", %Uint32* %"$retval_74", align 4, !dbg !13 - %"$$retval_74_503" = load %Uint32, %Uint32* %"$retval_74", align 4 - ret %Uint32 %"$$retval_74_503" + call void @llvm.dbg.declare(metadata %Uint32* %"$c_22", metadata !24, metadata !DIExpression()), !dbg !23 + %"$$c_21_500" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %"$c_21", align 8 + %"$$c_21_fptr_501" = extractvalue { %Uint32 (i8*, %Uint32)*, i8* } %"$$c_21_500", 0 + %"$$c_21_envptr_502" = extractvalue { %Uint32 (i8*, %Uint32)*, i8* } %"$$c_21_500", 1 + %"$zero_503" = load %Uint32, %Uint32* %zero, align 4 + %"$$c_21_call_504" = call %Uint32 %"$$c_21_fptr_501"(i8* %"$$c_21_envptr_502", %Uint32 %"$zero_503"), !dbg !23 + store %Uint32 %"$$c_21_call_504", %Uint32* %"$c_22", align 4, !dbg !23 + %"$$c_22_505" = load %Uint32, %Uint32* %"$c_22", align 4 + store %Uint32 %"$$c_22_505", %Uint32* %"$retval_74", align 4, !dbg !23 + %"$$retval_74_506" = load %Uint32, %Uint32* %"$retval_74", align 4 + ret %Uint32 %"$$retval_74_506" } -define internal { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } @"$fundef_71"(%"$$fundef_71_env_116"* %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_71"(%"$$fundef_71_env_116"* %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 !25 { entry: - %"$$fundef_71_env_m_439" = getelementptr inbounds %"$$fundef_71_env_116", %"$$fundef_71_env_116"* %0, i32 0, i32 0 - %"$m_envload_440" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$$fundef_71_env_m_439", align 8 + %"$$fundef_71_env_m_442" = getelementptr inbounds %"$$fundef_71_env_116", %"$$fundef_71_env_116"* %0, i32 0, i32 0 + %"$m_envload_443" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$$fundef_71_env_m_442", 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_440", { { %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_envload_443", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %m, align 8 %"$retval_72" = alloca { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, align 8 - %"$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" + %"$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_443": ; preds = %entry +"$out_of_gas_446": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_444" + br label %"$have_gas_447" -"$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_447": ; preds = %"$out_of_gas_446", %entry + %"$consume_448" = sub i64 %"$gasrem_444", 1 + store i64 %"$consume_448", i64* @_gasrem, align 8 %"$n_20" = alloca { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, align 8 - %"$n_fptr_446" = 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_447" = 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_448" = 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_449" = call { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$n_fptr_446"(i8* %"$n_envptr_447", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$m_448"), !dbg !15 - store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$n_call_449", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$n_20", align 8, !dbg !15 - %"$$n_20_450" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$n_20", align 8 - store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$$n_20_450", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$retval_72", align 8, !dbg !15 - %"$$retval_72_451" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$retval_72", align 8 - ret { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$$retval_72_451" + %"$n_fptr_449" = 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_450" = 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_451" = 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_452" = call { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$n_fptr_449"(i8* %"$n_envptr_450", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$m_451"), !dbg !26 + store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$n_call_452", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$n_20", align 8, !dbg !26 + %"$$n_20_453" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$n_20", align 8 + store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$$n_20_453", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$retval_72", align 8, !dbg !26 + %"$$retval_72_454" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$retval_72", align 8 + ret { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$$retval_72_454" } -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_69"(%"$$fundef_69_env_117"* %0, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %1) !dbg !16 { +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_69"(%"$$fundef_69_env_117"* %0, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %1) !dbg !27 { entry: %"$retval_70" = 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_428" = load i64, i64* @_gasrem, align 8 - %"$gascmp_429" = icmp ugt i64 1, %"$gasrem_428" - br i1 %"$gascmp_429", label %"$out_of_gas_430", label %"$have_gas_431" - -"$out_of_gas_430": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_431" - -"$have_gas_431": ; preds = %"$out_of_gas_430", %entry - %"$consume_432" = sub i64 %"$gasrem_428", 1 - store i64 %"$consume_432", i64* @_gasrem, align 8 - %"$$fundef_71_envp_433_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_71_envp_433_salloc" = call i8* @_salloc(i8* %"$$fundef_71_envp_433_load", i64 16) - %"$$fundef_71_envp_433" = bitcast i8* %"$$fundef_71_envp_433_salloc" to %"$$fundef_71_env_116"* - %"$$fundef_71_env_voidp_435" = bitcast %"$$fundef_71_env_116"* %"$$fundef_71_envp_433" to i8* - %"$$fundef_71_cloval_436" = 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_71_env_116"*, { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* })* @"$fundef_71" 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_71_env_voidp_435", 1 - %"$$fundef_71_env_m_437" = getelementptr inbounds %"$$fundef_71_env_116", %"$$fundef_71_env_116"* %"$$fundef_71_envp_433", 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_71_env_m_437", 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_71_cloval_436", { { { %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_70", align 8, !dbg !17 - %"$$retval_70_438" = 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_70", 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_70_438" + %"$gasrem_431" = load i64, i64* @_gasrem, align 8 + %"$gascmp_432" = icmp ugt i64 1, %"$gasrem_431" + br i1 %"$gascmp_432", label %"$out_of_gas_433", label %"$have_gas_434" + +"$out_of_gas_433": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_434" + +"$have_gas_434": ; preds = %"$out_of_gas_433", %entry + %"$consume_435" = sub i64 %"$gasrem_431", 1 + store i64 %"$consume_435", i64* @_gasrem, align 8 + %"$$fundef_71_envp_436_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_71_envp_436_salloc" = call i8* @_salloc(i8* %"$$fundef_71_envp_436_load", i64 16) + %"$$fundef_71_envp_436" = bitcast i8* %"$$fundef_71_envp_436_salloc" to %"$$fundef_71_env_116"* + %"$$fundef_71_env_voidp_438" = bitcast %"$$fundef_71_env_116"* %"$$fundef_71_envp_436" to i8* + %"$$fundef_71_cloval_439" = 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_71_env_116"*, { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* })* @"$fundef_71" 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_71_env_voidp_438", 1 + %"$$fundef_71_env_m_440" = getelementptr inbounds %"$$fundef_71_env_116", %"$$fundef_71_env_116"* %"$$fundef_71_envp_436", 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_71_env_m_440", 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_71_cloval_439", { { { %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_70", align 8, !dbg !28 + %"$$retval_70_441" = 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_70", 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_70_441" } -define internal { %Uint32 (i8*, %Uint32)*, i8* } @"$fundef_67"(%"$$fundef_67_env_118"* %0, { %Uint32 (i8*, %Uint32)*, i8* } %1) !dbg !18 { +define internal { %Uint32 (i8*, %Uint32)*, i8* } @"$fundef_67"(%"$$fundef_67_env_118"* %0, { %Uint32 (i8*, %Uint32)*, i8* } %1) !dbg !29 { entry: - %"$$fundef_67_env_m_397" = getelementptr inbounds %"$$fundef_67_env_118", %"$$fundef_67_env_118"* %0, i32 0, i32 0 - %"$m_envload_398" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$$fundef_67_env_m_397", align 8 + %"$$fundef_67_env_m_400" = getelementptr inbounds %"$$fundef_67_env_118", %"$$fundef_67_env_118"* %0, i32 0, i32 0 + %"$m_envload_401" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$$fundef_67_env_m_400", 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_398", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %m, align 8 - %"$$fundef_67_env_n_399" = getelementptr inbounds %"$$fundef_67_env_118", %"$$fundef_67_env_118"* %0, i32 0, i32 1 - %"$n_envload_400" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$$fundef_67_env_n_399", align 8 + store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$m_envload_401", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %m, align 8 + %"$$fundef_67_env_n_402" = getelementptr inbounds %"$$fundef_67_env_118", %"$$fundef_67_env_118"* %0, i32 0, i32 1 + %"$n_envload_403" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$$fundef_67_env_n_402", 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_400", { { %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_envload_403", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %n, align 8 %"$retval_68" = alloca { %Uint32 (i8*, %Uint32)*, 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" + %"$gasrem_404" = load i64, i64* @_gasrem, align 8 + %"$gascmp_405" = icmp ugt i64 1, %"$gasrem_404" + br i1 %"$gascmp_405", label %"$out_of_gas_406", label %"$have_gas_407" -"$out_of_gas_403": ; preds = %entry +"$out_of_gas_406": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_404" + br label %"$have_gas_407" -"$have_gas_404": ; preds = %"$out_of_gas_403", %entry - %"$consume_405" = sub i64 %"$gasrem_401", 1 - store i64 %"$consume_405", i64* @_gasrem, align 8 +"$have_gas_407": ; preds = %"$out_of_gas_406", %entry + %"$consume_408" = sub i64 %"$gasrem_404", 1 + store i64 %"$consume_408", i64* @_gasrem, align 8 %add_m = alloca { %Uint32 (i8*, %Uint32)*, i8* }, 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" + %"$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_408": ; preds = %"$have_gas_404" +"$out_of_gas_411": ; preds = %"$have_gas_407" call void @_out_of_gas() - br label %"$have_gas_409" + br label %"$have_gas_412" -"$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 +"$have_gas_412": ; preds = %"$out_of_gas_411", %"$have_gas_407" + %"$consume_413" = sub i64 %"$gasrem_409", 1 + store i64 %"$consume_413", i64* @_gasrem, align 8 %"$m_18" = alloca { %Uint32 (i8*, %Uint32)*, i8* }, align 8 - %"$m_411" = 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_412" = extractvalue { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$m_411", 0 - %"$m_envptr_413" = extractvalue { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$m_411", 1 - %"$m_call_414" = call { %Uint32 (i8*, %Uint32)*, i8* } %"$m_fptr_412"(i8* %"$m_envptr_413", { %Uint32 (i8*, %Uint32)*, i8* } %1), !dbg !19 - store { %Uint32 (i8*, %Uint32)*, i8* } %"$m_call_414", { %Uint32 (i8*, %Uint32)*, i8* }* %"$m_18", align 8, !dbg !19 - %"$$m_18_415" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %"$m_18", align 8 - store { %Uint32 (i8*, %Uint32)*, i8* } %"$$m_18_415", { %Uint32 (i8*, %Uint32)*, i8* }* %add_m, align 8, !dbg !19 - %"$gasrem_416" = load i64, i64* @_gasrem, align 8 - %"$gascmp_417" = icmp ugt i64 1, %"$gasrem_416" - br i1 %"$gascmp_417", label %"$out_of_gas_418", label %"$have_gas_419" - -"$out_of_gas_418": ; preds = %"$have_gas_409" - call void @_out_of_gas() - br label %"$have_gas_419" - -"$have_gas_419": ; preds = %"$out_of_gas_418", %"$have_gas_409" - %"$consume_420" = sub i64 %"$gasrem_416", 1 - store i64 %"$consume_420", i64* @_gasrem, align 8 + %"$m_414" = 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_415" = extractvalue { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$m_414", 0 + %"$m_envptr_416" = extractvalue { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$m_414", 1 + %"$m_call_417" = call { %Uint32 (i8*, %Uint32)*, i8* } %"$m_fptr_415"(i8* %"$m_envptr_416", { %Uint32 (i8*, %Uint32)*, i8* } %1), !dbg !30 + store { %Uint32 (i8*, %Uint32)*, i8* } %"$m_call_417", { %Uint32 (i8*, %Uint32)*, i8* }* %"$m_18", align 8, !dbg !30 + %"$$m_18_418" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %"$m_18", align 8 + store { %Uint32 (i8*, %Uint32)*, i8* } %"$$m_18_418", { %Uint32 (i8*, %Uint32)*, i8* }* %add_m, align 8, !dbg !30 + %"$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 = %"$have_gas_412" + call void @_out_of_gas() + br label %"$have_gas_422" + +"$have_gas_422": ; preds = %"$out_of_gas_421", %"$have_gas_412" + %"$consume_423" = sub i64 %"$gasrem_419", 1 + store i64 %"$consume_423", i64* @_gasrem, align 8 %"$n_19" = alloca { %Uint32 (i8*, %Uint32)*, i8* }, align 8 - %"$n_421" = 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_422" = extractvalue { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$n_421", 0 - %"$n_envptr_423" = extractvalue { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$n_421", 1 - %"$add_m_424" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %add_m, align 8 - %"$n_call_425" = call { %Uint32 (i8*, %Uint32)*, i8* } %"$n_fptr_422"(i8* %"$n_envptr_423", { %Uint32 (i8*, %Uint32)*, i8* } %"$add_m_424"), !dbg !20 - store { %Uint32 (i8*, %Uint32)*, i8* } %"$n_call_425", { %Uint32 (i8*, %Uint32)*, i8* }* %"$n_19", align 8, !dbg !20 - %"$$n_19_426" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %"$n_19", align 8 - store { %Uint32 (i8*, %Uint32)*, i8* } %"$$n_19_426", { %Uint32 (i8*, %Uint32)*, i8* }* %"$retval_68", align 8, !dbg !20 - %"$$retval_68_427" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %"$retval_68", align 8 - ret { %Uint32 (i8*, %Uint32)*, i8* } %"$$retval_68_427" + %"$n_424" = 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_425" = extractvalue { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$n_424", 0 + %"$n_envptr_426" = extractvalue { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$n_424", 1 + %"$add_m_427" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %add_m, align 8 + %"$n_call_428" = call { %Uint32 (i8*, %Uint32)*, i8* } %"$n_fptr_425"(i8* %"$n_envptr_426", { %Uint32 (i8*, %Uint32)*, i8* } %"$add_m_427"), !dbg !31 + store { %Uint32 (i8*, %Uint32)*, i8* } %"$n_call_428", { %Uint32 (i8*, %Uint32)*, i8* }* %"$n_19", align 8, !dbg !31 + %"$$n_19_429" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %"$n_19", align 8 + store { %Uint32 (i8*, %Uint32)*, i8* } %"$$n_19_429", { %Uint32 (i8*, %Uint32)*, i8* }* %"$retval_68", align 8, !dbg !31 + %"$$retval_68_430" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %"$retval_68", align 8 + ret { %Uint32 (i8*, %Uint32)*, i8* } %"$$retval_68_430" } -define internal { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } @"$fundef_65"(%"$$fundef_65_env_119"* %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_65"(%"$$fundef_65_env_119"* %0, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %1) !dbg !32 { entry: - %"$$fundef_65_env_m_382" = getelementptr inbounds %"$$fundef_65_env_119", %"$$fundef_65_env_119"* %0, i32 0, i32 0 - %"$m_envload_383" = 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_382", align 8 + %"$$fundef_65_env_m_385" = getelementptr inbounds %"$$fundef_65_env_119", %"$$fundef_65_env_119"* %0, i32 0, i32 0 + %"$m_envload_386" = 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_385", 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_383", { { %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_envload_386", { { %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_384" = load i64, i64* @_gasrem, align 8 - %"$gascmp_385" = icmp ugt i64 1, %"$gasrem_384" - br i1 %"$gascmp_385", label %"$out_of_gas_386", label %"$have_gas_387" - -"$out_of_gas_386": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_387" - -"$have_gas_387": ; preds = %"$out_of_gas_386", %entry - %"$consume_388" = sub i64 %"$gasrem_384", 1 - store i64 %"$consume_388", i64* @_gasrem, align 8 - %"$$fundef_67_envp_389_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_67_envp_389_salloc" = call i8* @_salloc(i8* %"$$fundef_67_envp_389_load", i64 32) - %"$$fundef_67_envp_389" = bitcast i8* %"$$fundef_67_envp_389_salloc" to %"$$fundef_67_env_118"* - %"$$fundef_67_env_voidp_391" = bitcast %"$$fundef_67_env_118"* %"$$fundef_67_envp_389" to i8* - %"$$fundef_67_cloval_392" = 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_67_env_118"*, { %Uint32 (i8*, %Uint32)*, i8* })* @"$fundef_67" to { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*), i8* undef }, i8* %"$$fundef_67_env_voidp_391", 1 - %"$$fundef_67_env_m_393" = getelementptr inbounds %"$$fundef_67_env_118", %"$$fundef_67_env_118"* %"$$fundef_67_envp_389", i32 0, i32 0 - %"$m_394" = 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_394", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$$fundef_67_env_m_393", align 8 - %"$$fundef_67_env_n_395" = getelementptr inbounds %"$$fundef_67_env_118", %"$$fundef_67_env_118"* %"$$fundef_67_envp_389", 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_67_env_n_395", align 8 - store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$$fundef_67_cloval_392", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$retval_66", align 8, !dbg !22 - %"$$retval_66_396" = 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_396" + %"$gasrem_387" = load i64, i64* @_gasrem, align 8 + %"$gascmp_388" = icmp ugt i64 1, %"$gasrem_387" + br i1 %"$gascmp_388", label %"$out_of_gas_389", label %"$have_gas_390" + +"$out_of_gas_389": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_390" + +"$have_gas_390": ; preds = %"$out_of_gas_389", %entry + %"$consume_391" = sub i64 %"$gasrem_387", 1 + store i64 %"$consume_391", i64* @_gasrem, align 8 + %"$$fundef_67_envp_392_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_67_envp_392_salloc" = call i8* @_salloc(i8* %"$$fundef_67_envp_392_load", i64 32) + %"$$fundef_67_envp_392" = bitcast i8* %"$$fundef_67_envp_392_salloc" to %"$$fundef_67_env_118"* + %"$$fundef_67_env_voidp_394" = bitcast %"$$fundef_67_env_118"* %"$$fundef_67_envp_392" to i8* + %"$$fundef_67_cloval_395" = 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_67_env_118"*, { %Uint32 (i8*, %Uint32)*, i8* })* @"$fundef_67" to { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*), i8* undef }, i8* %"$$fundef_67_env_voidp_394", 1 + %"$$fundef_67_env_m_396" = getelementptr inbounds %"$$fundef_67_env_118", %"$$fundef_67_env_118"* %"$$fundef_67_envp_392", i32 0, i32 0 + %"$m_397" = 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_397", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$$fundef_67_env_m_396", align 8 + %"$$fundef_67_env_n_398" = getelementptr inbounds %"$$fundef_67_env_118", %"$$fundef_67_env_118"* %"$$fundef_67_envp_392", 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_67_env_n_398", align 8 + store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$$fundef_67_cloval_395", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$retval_66", align 8, !dbg !33 + %"$$retval_66_399" = 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_399" } -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_63"(%"$$fundef_63_env_120"* %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_63"(%"$$fundef_63_env_120"* %0, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %1) !dbg !34 { 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* }, 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_65_envp_376_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_65_envp_376_salloc" = call i8* @_salloc(i8* %"$$fundef_65_envp_376_load", i64 16) - %"$$fundef_65_envp_376" = bitcast i8* %"$$fundef_65_envp_376_salloc" to %"$$fundef_65_env_119"* - %"$$fundef_65_env_voidp_378" = bitcast %"$$fundef_65_env_119"* %"$$fundef_65_envp_376" to i8* - %"$$fundef_65_cloval_379" = 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_65_env_119"*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, 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* undef }, i8* %"$$fundef_65_env_voidp_378", 1 - %"$$fundef_65_env_m_380" = getelementptr inbounds %"$$fundef_65_env_119", %"$$fundef_65_env_119"* %"$$fundef_65_envp_376", 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_380", 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_65_cloval_379", { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }* %"$retval_64", align 8, !dbg !24 - %"$$retval_64_381" = 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_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* } %"$$retval_64_381" + %"$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 = %entry + call void @_out_of_gas() + br label %"$have_gas_377" + +"$have_gas_377": ; preds = %"$out_of_gas_376", %entry + %"$consume_378" = sub i64 %"$gasrem_374", 1 + store i64 %"$consume_378", i64* @_gasrem, align 8 + %"$$fundef_65_envp_379_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_65_envp_379_salloc" = call i8* @_salloc(i8* %"$$fundef_65_envp_379_load", i64 16) + %"$$fundef_65_envp_379" = bitcast i8* %"$$fundef_65_envp_379_salloc" to %"$$fundef_65_env_119"* + %"$$fundef_65_env_voidp_381" = bitcast %"$$fundef_65_env_119"* %"$$fundef_65_envp_379" to i8* + %"$$fundef_65_cloval_382" = 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_65_env_119"*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, 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* undef }, i8* %"$$fundef_65_env_voidp_381", 1 + %"$$fundef_65_env_m_383" = getelementptr inbounds %"$$fundef_65_env_119", %"$$fundef_65_env_119"* %"$$fundef_65_envp_379", 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_383", 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_65_cloval_382", { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }* %"$retval_64", align 8, !dbg !35 + %"$$retval_64_384" = 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_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* } %"$$retval_64_384" } -define internal %Uint32 @"$fundef_61"(%"$$fundef_61_env_121"* %0, %Uint32 %1) !dbg !25 { +define internal %Uint32 @"$fundef_61"(%"$$fundef_61_env_121"* %0, %Uint32 %1) !dbg !36 { entry: - %"$$fundef_61_env_m_328" = getelementptr inbounds %"$$fundef_61_env_121", %"$$fundef_61_env_121"* %0, i32 0, i32 0 - %"$m_envload_329" = 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_328", align 8 + %"$z_373" = alloca %Uint32, align 8 + store %Uint32 %1, %Uint32* %"$z_373", align 4 + call void @llvm.dbg.declare(metadata %Uint32* %"$z_373", metadata !37, metadata !DIExpression()), !dbg !38 + %"$$fundef_61_env_m_330" = getelementptr inbounds %"$$fundef_61_env_121", %"$$fundef_61_env_121"* %0, i32 0, i32 0 + %"$m_envload_331" = 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_330", 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_329", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %m, align 8 - %"$$fundef_61_env_n_330" = getelementptr inbounds %"$$fundef_61_env_121", %"$$fundef_61_env_121"* %0, i32 0, i32 1 - %"$n_envload_331" = 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_330", align 8 + store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$m_envload_331", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %m, align 8 + %"$$fundef_61_env_n_332" = getelementptr inbounds %"$$fundef_61_env_121", %"$$fundef_61_env_121"* %0, i32 0, i32 1 + %"$n_envload_333" = 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_332", 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_331", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %n, align 8 - %"$$fundef_61_env_s_332" = getelementptr inbounds %"$$fundef_61_env_121", %"$$fundef_61_env_121"* %0, i32 0, i32 2 - %"$s_envload_333" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %"$$fundef_61_env_s_332", align 8 + store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$n_envload_333", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %n, align 8 + %"$$fundef_61_env_s_334" = getelementptr inbounds %"$$fundef_61_env_121", %"$$fundef_61_env_121"* %0, i32 0, i32 2 + %"$s_envload_335" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %"$$fundef_61_env_s_334", align 8 %s = alloca { %Uint32 (i8*, %Uint32)*, i8* }, align 8 - store { %Uint32 (i8*, %Uint32)*, i8* } %"$s_envload_333", { %Uint32 (i8*, %Uint32)*, i8* }* %s, align 8 + store { %Uint32 (i8*, %Uint32)*, i8* } %"$s_envload_335", { %Uint32 (i8*, %Uint32)*, i8* }* %s, align 8 %"$retval_62" = alloca %Uint32, 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" + call void @llvm.dbg.declare(metadata %Uint32* %"$retval_62", metadata !39, metadata !DIExpression()), !dbg !40 + %"$gasrem_336" = load i64, i64* @_gasrem, align 8 + %"$gascmp_337" = icmp ugt i64 1, %"$gasrem_336" + br i1 %"$gascmp_337", label %"$out_of_gas_338", label %"$have_gas_339" -"$out_of_gas_336": ; preds = %entry +"$out_of_gas_338": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_337" + br label %"$have_gas_339" -"$have_gas_337": ; preds = %"$out_of_gas_336", %entry - %"$consume_338" = sub i64 %"$gasrem_334", 1 - store i64 %"$consume_338", i64* @_gasrem, align 8 +"$have_gas_339": ; preds = %"$out_of_gas_338", %entry + %"$consume_340" = sub i64 %"$gasrem_336", 1 + store i64 %"$consume_340", i64* @_gasrem, align 8 %nsz = alloca %Uint32, align 8 - %"$gasrem_339" = load i64, i64* @_gasrem, align 8 - %"$gascmp_340" = icmp ugt i64 1, %"$gasrem_339" - br i1 %"$gascmp_340", label %"$out_of_gas_341", label %"$have_gas_342" + call void @llvm.dbg.declare(metadata %Uint32* %nsz, metadata !41, metadata !DIExpression()), !dbg !42 + %"$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_341": ; preds = %"$have_gas_337" +"$out_of_gas_343": ; preds = %"$have_gas_339" call void @_out_of_gas() - br label %"$have_gas_342" + br label %"$have_gas_344" -"$have_gas_342": ; preds = %"$out_of_gas_341", %"$have_gas_337" - %"$consume_343" = sub i64 %"$gasrem_339", 1 - store i64 %"$consume_343", i64* @_gasrem, align 8 +"$have_gas_344": ; preds = %"$out_of_gas_343", %"$have_gas_339" + %"$consume_345" = sub i64 %"$gasrem_341", 1 + store i64 %"$consume_345", i64* @_gasrem, align 8 %"$n_14" = alloca { %Uint32 (i8*, %Uint32)*, i8* }, align 8 - %"$n_344" = 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_345" = extractvalue { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$n_344", 0 - %"$n_envptr_346" = extractvalue { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$n_344", 1 - %"$s_347" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %s, align 8 - %"$n_call_348" = call { %Uint32 (i8*, %Uint32)*, i8* } %"$n_fptr_345"(i8* %"$n_envptr_346", { %Uint32 (i8*, %Uint32)*, i8* } %"$s_347"), !dbg !26 - store { %Uint32 (i8*, %Uint32)*, i8* } %"$n_call_348", { %Uint32 (i8*, %Uint32)*, i8* }* %"$n_14", align 8, !dbg !26 + %"$n_346" = 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_347" = extractvalue { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$n_346", 0 + %"$n_envptr_348" = extractvalue { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$n_346", 1 + %"$s_349" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %s, align 8 + %"$n_call_350" = call { %Uint32 (i8*, %Uint32)*, i8* } %"$n_fptr_347"(i8* %"$n_envptr_348", { %Uint32 (i8*, %Uint32)*, i8* } %"$s_349"), !dbg !43 + store { %Uint32 (i8*, %Uint32)*, i8* } %"$n_call_350", { %Uint32 (i8*, %Uint32)*, i8* }* %"$n_14", align 8, !dbg !43 %"$n_15" = alloca %Uint32, align 8 - %"$$n_14_349" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %"$n_14", align 8 - %"$$n_14_fptr_350" = extractvalue { %Uint32 (i8*, %Uint32)*, i8* } %"$$n_14_349", 0 - %"$$n_14_envptr_351" = extractvalue { %Uint32 (i8*, %Uint32)*, i8* } %"$$n_14_349", 1 - %"$$n_14_call_352" = call %Uint32 %"$$n_14_fptr_350"(i8* %"$$n_14_envptr_351", %Uint32 %1), !dbg !26 - store %Uint32 %"$$n_14_call_352", %Uint32* %"$n_15", align 4, !dbg !26 - %"$$n_15_353" = load %Uint32, %Uint32* %"$n_15", align 4 - store %Uint32 %"$$n_15_353", %Uint32* %nsz, align 4, !dbg !26 - %"$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" - -"$out_of_gas_356": ; preds = %"$have_gas_342" - call void @_out_of_gas() - br label %"$have_gas_357" - -"$have_gas_357": ; preds = %"$out_of_gas_356", %"$have_gas_342" - %"$consume_358" = sub i64 %"$gasrem_354", 1 - store i64 %"$consume_358", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %Uint32* %"$n_15", metadata !44, metadata !DIExpression()), !dbg !43 + %"$$n_14_351" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %"$n_14", align 8 + %"$$n_14_fptr_352" = extractvalue { %Uint32 (i8*, %Uint32)*, i8* } %"$$n_14_351", 0 + %"$$n_14_envptr_353" = extractvalue { %Uint32 (i8*, %Uint32)*, i8* } %"$$n_14_351", 1 + %"$$n_14_call_354" = call %Uint32 %"$$n_14_fptr_352"(i8* %"$$n_14_envptr_353", %Uint32 %1), !dbg !43 + store %Uint32 %"$$n_14_call_354", %Uint32* %"$n_15", align 4, !dbg !43 + %"$$n_15_355" = load %Uint32, %Uint32* %"$n_15", align 4 + store %Uint32 %"$$n_15_355", %Uint32* %nsz, align 4, !dbg !43 + %"$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 = %"$have_gas_344" + call void @_out_of_gas() + br label %"$have_gas_359" + +"$have_gas_359": ; preds = %"$out_of_gas_358", %"$have_gas_344" + %"$consume_360" = sub i64 %"$gasrem_356", 1 + store i64 %"$consume_360", i64* @_gasrem, align 8 %"$m_16" = alloca { %Uint32 (i8*, %Uint32)*, i8* }, align 8 - %"$m_359" = 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_360" = extractvalue { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$m_359", 0 - %"$m_envptr_361" = extractvalue { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$m_359", 1 - %"$s_362" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %s, align 8 - %"$m_call_363" = call { %Uint32 (i8*, %Uint32)*, i8* } %"$m_fptr_360"(i8* %"$m_envptr_361", { %Uint32 (i8*, %Uint32)*, i8* } %"$s_362"), !dbg !27 - store { %Uint32 (i8*, %Uint32)*, i8* } %"$m_call_363", { %Uint32 (i8*, %Uint32)*, i8* }* %"$m_16", align 8, !dbg !27 + %"$m_361" = 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_362" = extractvalue { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$m_361", 0 + %"$m_envptr_363" = extractvalue { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$m_361", 1 + %"$s_364" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %s, align 8 + %"$m_call_365" = call { %Uint32 (i8*, %Uint32)*, i8* } %"$m_fptr_362"(i8* %"$m_envptr_363", { %Uint32 (i8*, %Uint32)*, i8* } %"$s_364"), !dbg !45 + store { %Uint32 (i8*, %Uint32)*, i8* } %"$m_call_365", { %Uint32 (i8*, %Uint32)*, i8* }* %"$m_16", align 8, !dbg !45 %"$m_17" = alloca %Uint32, align 8 - %"$$m_16_364" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %"$m_16", align 8 - %"$$m_16_fptr_365" = extractvalue { %Uint32 (i8*, %Uint32)*, i8* } %"$$m_16_364", 0 - %"$$m_16_envptr_366" = extractvalue { %Uint32 (i8*, %Uint32)*, i8* } %"$$m_16_364", 1 - %"$nsz_367" = load %Uint32, %Uint32* %nsz, align 4 - %"$$m_16_call_368" = call %Uint32 %"$$m_16_fptr_365"(i8* %"$$m_16_envptr_366", %Uint32 %"$nsz_367"), !dbg !27 - store %Uint32 %"$$m_16_call_368", %Uint32* %"$m_17", align 4, !dbg !27 - %"$$m_17_369" = load %Uint32, %Uint32* %"$m_17", align 4 - store %Uint32 %"$$m_17_369", %Uint32* %"$retval_62", align 4, !dbg !27 - %"$$retval_62_370" = load %Uint32, %Uint32* %"$retval_62", align 4 - ret %Uint32 %"$$retval_62_370" + call void @llvm.dbg.declare(metadata %Uint32* %"$m_17", metadata !46, metadata !DIExpression()), !dbg !45 + %"$$m_16_366" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %"$m_16", align 8 + %"$$m_16_fptr_367" = extractvalue { %Uint32 (i8*, %Uint32)*, i8* } %"$$m_16_366", 0 + %"$$m_16_envptr_368" = extractvalue { %Uint32 (i8*, %Uint32)*, i8* } %"$$m_16_366", 1 + %"$nsz_369" = load %Uint32, %Uint32* %nsz, align 4 + %"$$m_16_call_370" = call %Uint32 %"$$m_16_fptr_367"(i8* %"$$m_16_envptr_368", %Uint32 %"$nsz_369"), !dbg !45 + store %Uint32 %"$$m_16_call_370", %Uint32* %"$m_17", align 4, !dbg !45 + %"$$m_17_371" = load %Uint32, %Uint32* %"$m_17", align 4 + store %Uint32 %"$$m_17_371", %Uint32* %"$retval_62", align 4, !dbg !45 + %"$$retval_62_372" = load %Uint32, %Uint32* %"$retval_62", align 4 + ret %Uint32 %"$$retval_62_372" } -define internal { %Uint32 (i8*, %Uint32)*, i8* } @"$fundef_59"(%"$$fundef_59_env_122"* %0, { %Uint32 (i8*, %Uint32)*, i8* } %1) !dbg !28 { +define internal { %Uint32 (i8*, %Uint32)*, i8* } @"$fundef_59"(%"$$fundef_59_env_122"* %0, { %Uint32 (i8*, %Uint32)*, i8* } %1) !dbg !47 { entry: - %"$$fundef_59_env_m_309" = getelementptr inbounds %"$$fundef_59_env_122", %"$$fundef_59_env_122"* %0, i32 0, i32 0 - %"$m_envload_310" = 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_309", align 8 + %"$$fundef_59_env_m_311" = getelementptr inbounds %"$$fundef_59_env_122", %"$$fundef_59_env_122"* %0, i32 0, i32 0 + %"$m_envload_312" = 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_311", 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_310", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %m, align 8 - %"$$fundef_59_env_n_311" = getelementptr inbounds %"$$fundef_59_env_122", %"$$fundef_59_env_122"* %0, i32 0, i32 1 - %"$n_envload_312" = 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_311", align 8 + store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$m_envload_312", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %m, align 8 + %"$$fundef_59_env_n_313" = getelementptr inbounds %"$$fundef_59_env_122", %"$$fundef_59_env_122"* %0, i32 0, i32 1 + %"$n_envload_314" = 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_313", 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_312", { { %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_envload_314", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %n, align 8 %"$retval_60" = alloca { %Uint32 (i8*, %Uint32)*, i8* }, 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 = %entry - call void @_out_of_gas() - br label %"$have_gas_316" - -"$have_gas_316": ; preds = %"$out_of_gas_315", %entry - %"$consume_317" = sub i64 %"$gasrem_313", 1 - store i64 %"$consume_317", i64* @_gasrem, align 8 - %"$$fundef_61_envp_318_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_61_envp_318_salloc" = call i8* @_salloc(i8* %"$$fundef_61_envp_318_load", i64 48) - %"$$fundef_61_envp_318" = bitcast i8* %"$$fundef_61_envp_318_salloc" to %"$$fundef_61_env_121"* - %"$$fundef_61_env_voidp_320" = bitcast %"$$fundef_61_env_121"* %"$$fundef_61_envp_318" to i8* - %"$$fundef_61_cloval_321" = insertvalue { %Uint32 (i8*, %Uint32)*, i8* } { %Uint32 (i8*, %Uint32)* bitcast (%Uint32 (%"$$fundef_61_env_121"*, %Uint32)* @"$fundef_61" to %Uint32 (i8*, %Uint32)*), i8* undef }, i8* %"$$fundef_61_env_voidp_320", 1 - %"$$fundef_61_env_m_322" = getelementptr inbounds %"$$fundef_61_env_121", %"$$fundef_61_env_121"* %"$$fundef_61_envp_318", i32 0, i32 0 - %"$m_323" = 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_323", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$$fundef_61_env_m_322", align 8 - %"$$fundef_61_env_n_324" = getelementptr inbounds %"$$fundef_61_env_121", %"$$fundef_61_env_121"* %"$$fundef_61_envp_318", i32 0, i32 1 - %"$n_325" = 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_325", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$$fundef_61_env_n_324", align 8 - %"$$fundef_61_env_s_326" = getelementptr inbounds %"$$fundef_61_env_121", %"$$fundef_61_env_121"* %"$$fundef_61_envp_318", i32 0, i32 2 - store { %Uint32 (i8*, %Uint32)*, i8* } %1, { %Uint32 (i8*, %Uint32)*, i8* }* %"$$fundef_61_env_s_326", align 8 - store { %Uint32 (i8*, %Uint32)*, i8* } %"$$fundef_61_cloval_321", { %Uint32 (i8*, %Uint32)*, i8* }* %"$retval_60", align 8, !dbg !29 - %"$$retval_60_327" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %"$retval_60", align 8 - ret { %Uint32 (i8*, %Uint32)*, i8* } %"$$retval_60_327" + %"$gasrem_315" = load i64, i64* @_gasrem, align 8 + %"$gascmp_316" = icmp ugt i64 1, %"$gasrem_315" + br i1 %"$gascmp_316", label %"$out_of_gas_317", label %"$have_gas_318" + +"$out_of_gas_317": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_318" + +"$have_gas_318": ; preds = %"$out_of_gas_317", %entry + %"$consume_319" = sub i64 %"$gasrem_315", 1 + store i64 %"$consume_319", i64* @_gasrem, align 8 + %"$$fundef_61_envp_320_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_61_envp_320_salloc" = call i8* @_salloc(i8* %"$$fundef_61_envp_320_load", i64 48) + %"$$fundef_61_envp_320" = bitcast i8* %"$$fundef_61_envp_320_salloc" to %"$$fundef_61_env_121"* + %"$$fundef_61_env_voidp_322" = bitcast %"$$fundef_61_env_121"* %"$$fundef_61_envp_320" to i8* + %"$$fundef_61_cloval_323" = insertvalue { %Uint32 (i8*, %Uint32)*, i8* } { %Uint32 (i8*, %Uint32)* bitcast (%Uint32 (%"$$fundef_61_env_121"*, %Uint32)* @"$fundef_61" to %Uint32 (i8*, %Uint32)*), i8* undef }, i8* %"$$fundef_61_env_voidp_322", 1 + %"$$fundef_61_env_m_324" = getelementptr inbounds %"$$fundef_61_env_121", %"$$fundef_61_env_121"* %"$$fundef_61_envp_320", i32 0, i32 0 + %"$m_325" = 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_325", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$$fundef_61_env_m_324", align 8 + %"$$fundef_61_env_n_326" = getelementptr inbounds %"$$fundef_61_env_121", %"$$fundef_61_env_121"* %"$$fundef_61_envp_320", i32 0, i32 1 + %"$n_327" = 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_327", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$$fundef_61_env_n_326", align 8 + %"$$fundef_61_env_s_328" = getelementptr inbounds %"$$fundef_61_env_121", %"$$fundef_61_env_121"* %"$$fundef_61_envp_320", i32 0, i32 2 + store { %Uint32 (i8*, %Uint32)*, i8* } %1, { %Uint32 (i8*, %Uint32)*, i8* }* %"$$fundef_61_env_s_328", align 8 + store { %Uint32 (i8*, %Uint32)*, i8* } %"$$fundef_61_cloval_323", { %Uint32 (i8*, %Uint32)*, i8* }* %"$retval_60", align 8, !dbg !48 + %"$$retval_60_329" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %"$retval_60", align 8 + ret { %Uint32 (i8*, %Uint32)*, i8* } %"$$retval_60_329" } -define internal { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } @"$fundef_57"(%"$$fundef_57_env_123"* %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_57"(%"$$fundef_57_env_123"* %0, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %1) !dbg !49 { entry: - %"$$fundef_57_env_m_294" = getelementptr inbounds %"$$fundef_57_env_123", %"$$fundef_57_env_123"* %0, i32 0, i32 0 - %"$m_envload_295" = 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_294", align 8 + %"$$fundef_57_env_m_296" = getelementptr inbounds %"$$fundef_57_env_123", %"$$fundef_57_env_123"* %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_57_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_295", { { %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_envload_297", { { %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_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 - %"$$fundef_59_envp_301_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_59_envp_301_salloc" = call i8* @_salloc(i8* %"$$fundef_59_envp_301_load", i64 32) - %"$$fundef_59_envp_301" = bitcast i8* %"$$fundef_59_envp_301_salloc" to %"$$fundef_59_env_122"* - %"$$fundef_59_env_voidp_303" = bitcast %"$$fundef_59_env_122"* %"$$fundef_59_envp_301" to i8* - %"$$fundef_59_cloval_304" = 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_122"*, { %Uint32 (i8*, %Uint32)*, i8* })* @"$fundef_59" to { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*), i8* undef }, i8* %"$$fundef_59_env_voidp_303", 1 - %"$$fundef_59_env_m_305" = getelementptr inbounds %"$$fundef_59_env_122", %"$$fundef_59_env_122"* %"$$fundef_59_envp_301", i32 0, i32 0 - %"$m_306" = 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_306", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$$fundef_59_env_m_305", align 8 - %"$$fundef_59_env_n_307" = getelementptr inbounds %"$$fundef_59_env_122", %"$$fundef_59_env_122"* %"$$fundef_59_envp_301", 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_307", align 8 - store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$$fundef_59_cloval_304", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$retval_58", align 8, !dbg !31 - %"$$retval_58_308" = 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_308" + %"$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 = %entry + call void @_out_of_gas() + br label %"$have_gas_301" + +"$have_gas_301": ; preds = %"$out_of_gas_300", %entry + %"$consume_302" = sub i64 %"$gasrem_298", 1 + store i64 %"$consume_302", i64* @_gasrem, align 8 + %"$$fundef_59_envp_303_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_59_envp_303_salloc" = call i8* @_salloc(i8* %"$$fundef_59_envp_303_load", i64 32) + %"$$fundef_59_envp_303" = bitcast i8* %"$$fundef_59_envp_303_salloc" to %"$$fundef_59_env_122"* + %"$$fundef_59_env_voidp_305" = bitcast %"$$fundef_59_env_122"* %"$$fundef_59_envp_303" to i8* + %"$$fundef_59_cloval_306" = 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_122"*, { %Uint32 (i8*, %Uint32)*, i8* })* @"$fundef_59" to { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*), i8* undef }, i8* %"$$fundef_59_env_voidp_305", 1 + %"$$fundef_59_env_m_307" = getelementptr inbounds %"$$fundef_59_env_122", %"$$fundef_59_env_122"* %"$$fundef_59_envp_303", i32 0, i32 0 + %"$m_308" = 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_308", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$$fundef_59_env_m_307", align 8 + %"$$fundef_59_env_n_309" = getelementptr inbounds %"$$fundef_59_env_122", %"$$fundef_59_env_122"* %"$$fundef_59_envp_303", 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_309", align 8 + store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$$fundef_59_cloval_306", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$retval_58", align 8, !dbg !50 + %"$$retval_58_310" = 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_310" } -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_124"* %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_55"(%"$$fundef_55_env_124"* %0, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %1) !dbg !51 { entry: %"$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_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_57_envp_288_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_57_envp_288_salloc" = call i8* @_salloc(i8* %"$$fundef_57_envp_288_load", i64 16) - %"$$fundef_57_envp_288" = bitcast i8* %"$$fundef_57_envp_288_salloc" to %"$$fundef_57_env_123"* - %"$$fundef_57_env_voidp_290" = bitcast %"$$fundef_57_env_123"* %"$$fundef_57_envp_288" to i8* - %"$$fundef_57_cloval_291" = 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_123"*, { { %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_290", 1 - %"$$fundef_57_env_m_292" = getelementptr inbounds %"$$fundef_57_env_123", %"$$fundef_57_env_123"* %"$$fundef_57_envp_288", 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_292", 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_291", { { { %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 !33 - %"$$retval_56_293" = 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_293" + %"$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 = %entry + call void @_out_of_gas() + br label %"$have_gas_288" + +"$have_gas_288": ; preds = %"$out_of_gas_287", %entry + %"$consume_289" = sub i64 %"$gasrem_285", 1 + store i64 %"$consume_289", i64* @_gasrem, align 8 + %"$$fundef_57_envp_290_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_57_envp_290_salloc" = call i8* @_salloc(i8* %"$$fundef_57_envp_290_load", i64 16) + %"$$fundef_57_envp_290" = bitcast i8* %"$$fundef_57_envp_290_salloc" to %"$$fundef_57_env_123"* + %"$$fundef_57_env_voidp_292" = bitcast %"$$fundef_57_env_123"* %"$$fundef_57_envp_290" to i8* + %"$$fundef_57_cloval_293" = 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_123"*, { { %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_292", 1 + %"$$fundef_57_env_m_294" = getelementptr inbounds %"$$fundef_57_env_123", %"$$fundef_57_env_123"* %"$$fundef_57_envp_290", 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_294", 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_293", { { { %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 !52 + %"$$retval_56_295" = 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_295" } -define internal { %Uint32 (i8*, %Uint32)*, i8* } @"$fundef_53"(%"$$fundef_53_env_125"* %0, { %Uint32 (i8*, %Uint32)*, i8* } %1) !dbg !34 { +define internal { %Uint32 (i8*, %Uint32)*, i8* } @"$fundef_53"(%"$$fundef_53_env_125"* %0, { %Uint32 (i8*, %Uint32)*, i8* } %1) !dbg !53 { entry: - %"$$fundef_53_env_s_238" = getelementptr inbounds %"$$fundef_53_env_125", %"$$fundef_53_env_125"* %0, i32 0, i32 0 - %"$s_envload_239" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$$fundef_53_env_s_238", align 8 + %"$$fundef_53_env_s_240" = getelementptr inbounds %"$$fundef_53_env_125", %"$$fundef_53_env_125"* %0, i32 0, i32 0 + %"$s_envload_241" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$$fundef_53_env_s_240", 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_239", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %s, align 8 + store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$s_envload_241", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %s, align 8 %"$retval_54" = alloca { %Uint32 (i8*, %Uint32)*, 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" + %"$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_242": ; preds = %entry +"$out_of_gas_244": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_243" + br label %"$have_gas_245" -"$have_gas_243": ; preds = %"$out_of_gas_242", %entry - %"$consume_244" = sub i64 %"$gasrem_240", 1 - store i64 %"$consume_244", i64* @_gasrem, align 8 +"$have_gas_245": ; preds = %"$out_of_gas_244", %entry + %"$consume_246" = sub i64 %"$gasrem_242", 1 + store i64 %"$consume_246", i64* @_gasrem, align 8 %sz = alloca { %Uint32 (i8*, %Uint32)*, i8* }, align 8 - %"$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" + %"$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_247": ; preds = %"$have_gas_243" +"$out_of_gas_249": ; preds = %"$have_gas_245" call void @_out_of_gas() - br label %"$have_gas_248" + br label %"$have_gas_250" -"$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 +"$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 %"$s_11" = alloca { %Uint32 (i8*, %Uint32)*, i8* }, align 8 - %"$s_250" = 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_251" = extractvalue { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$s_250", 0 - %"$s_envptr_252" = extractvalue { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$s_250", 1 - %"$s_call_253" = call { %Uint32 (i8*, %Uint32)*, i8* } %"$s_fptr_251"(i8* %"$s_envptr_252", { %Uint32 (i8*, %Uint32)*, i8* } %1), !dbg !35 - store { %Uint32 (i8*, %Uint32)*, i8* } %"$s_call_253", { %Uint32 (i8*, %Uint32)*, i8* }* %"$s_11", align 8, !dbg !35 - %"$$s_11_254" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %"$s_11", align 8 - store { %Uint32 (i8*, %Uint32)*, i8* } %"$$s_11_254", { %Uint32 (i8*, %Uint32)*, i8* }* %sz, align 8, !dbg !35 - %"$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_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 + %"$s_call_255" = call { %Uint32 (i8*, %Uint32)*, i8* } %"$s_fptr_253"(i8* %"$s_envptr_254", { %Uint32 (i8*, %Uint32)*, i8* } %1), !dbg !54 + store { %Uint32 (i8*, %Uint32)*, i8* } %"$s_call_255", { %Uint32 (i8*, %Uint32)*, i8* }* %"$s_11", align 8, !dbg !54 + %"$$s_11_256" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %"$s_11", align 8 + store { %Uint32 (i8*, %Uint32)*, i8* } %"$$s_11_256", { %Uint32 (i8*, %Uint32)*, i8* }* %sz, align 8, !dbg !54 + %"$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_250" + call void @_out_of_gas() + br label %"$have_gas_260" + +"$have_gas_260": ; preds = %"$out_of_gas_259", %"$have_gas_250" + %"$consume_261" = sub i64 %"$gasrem_257", 1 + store i64 %"$consume_261", i64* @_gasrem, align 8 %ssz = alloca { %Uint32 (i8*, %Uint32)*, i8* }, align 8 - %"$gasrem_260" = load i64, i64* @_gasrem, align 8 - %"$gascmp_261" = icmp ugt i64 1, %"$gasrem_260" - br i1 %"$gascmp_261", label %"$out_of_gas_262", label %"$have_gas_263" + %"$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_262": ; preds = %"$have_gas_258" +"$out_of_gas_264": ; preds = %"$have_gas_260" call void @_out_of_gas() - br label %"$have_gas_263" + br label %"$have_gas_265" -"$have_gas_263": ; preds = %"$out_of_gas_262", %"$have_gas_258" - %"$consume_264" = sub i64 %"$gasrem_260", 1 - store i64 %"$consume_264", i64* @_gasrem, align 8 +"$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 %"$s_12" = alloca { %Uint32 (i8*, %Uint32)*, i8* }, align 8 - %"$s_265" = 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_266" = extractvalue { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$s_265", 0 - %"$s_envptr_267" = extractvalue { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$s_265", 1 - %"$sz_268" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %sz, align 8 - %"$s_call_269" = call { %Uint32 (i8*, %Uint32)*, i8* } %"$s_fptr_266"(i8* %"$s_envptr_267", { %Uint32 (i8*, %Uint32)*, i8* } %"$sz_268"), !dbg !36 - store { %Uint32 (i8*, %Uint32)*, i8* } %"$s_call_269", { %Uint32 (i8*, %Uint32)*, i8* }* %"$s_12", align 8, !dbg !36 - %"$$s_12_270" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %"$s_12", align 8 - store { %Uint32 (i8*, %Uint32)*, i8* } %"$$s_12_270", { %Uint32 (i8*, %Uint32)*, i8* }* %ssz, align 8, !dbg !36 - %"$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_263" - call void @_out_of_gas() - br label %"$have_gas_274" - -"$have_gas_274": ; preds = %"$out_of_gas_273", %"$have_gas_263" - %"$consume_275" = sub i64 %"$gasrem_271", 1 - store i64 %"$consume_275", i64* @_gasrem, align 8 + %"$s_267" = 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_268" = extractvalue { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$s_267", 0 + %"$s_envptr_269" = extractvalue { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$s_267", 1 + %"$sz_270" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %sz, align 8 + %"$s_call_271" = call { %Uint32 (i8*, %Uint32)*, i8* } %"$s_fptr_268"(i8* %"$s_envptr_269", { %Uint32 (i8*, %Uint32)*, i8* } %"$sz_270"), !dbg !55 + store { %Uint32 (i8*, %Uint32)*, i8* } %"$s_call_271", { %Uint32 (i8*, %Uint32)*, i8* }* %"$s_12", align 8, !dbg !55 + %"$$s_12_272" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %"$s_12", align 8 + store { %Uint32 (i8*, %Uint32)*, i8* } %"$$s_12_272", { %Uint32 (i8*, %Uint32)*, i8* }* %ssz, align 8, !dbg !55 + %"$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_265" + call void @_out_of_gas() + br label %"$have_gas_276" + +"$have_gas_276": ; preds = %"$out_of_gas_275", %"$have_gas_265" + %"$consume_277" = sub i64 %"$gasrem_273", 1 + store i64 %"$consume_277", i64* @_gasrem, align 8 %"$s_13" = alloca { %Uint32 (i8*, %Uint32)*, i8* }, align 8 - %"$s_276" = 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_277" = extractvalue { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$s_276", 0 - %"$s_envptr_278" = extractvalue { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$s_276", 1 - %"$ssz_279" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %ssz, align 8 - %"$s_call_280" = call { %Uint32 (i8*, %Uint32)*, i8* } %"$s_fptr_277"(i8* %"$s_envptr_278", { %Uint32 (i8*, %Uint32)*, i8* } %"$ssz_279"), !dbg !37 - store { %Uint32 (i8*, %Uint32)*, i8* } %"$s_call_280", { %Uint32 (i8*, %Uint32)*, i8* }* %"$s_13", align 8, !dbg !37 - %"$$s_13_281" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %"$s_13", align 8 - store { %Uint32 (i8*, %Uint32)*, i8* } %"$$s_13_281", { %Uint32 (i8*, %Uint32)*, i8* }* %"$retval_54", align 8, !dbg !37 - %"$$retval_54_282" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %"$retval_54", align 8 - ret { %Uint32 (i8*, %Uint32)*, i8* } %"$$retval_54_282" + %"$s_278" = 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_279" = extractvalue { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$s_278", 0 + %"$s_envptr_280" = extractvalue { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$s_278", 1 + %"$ssz_281" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %ssz, align 8 + %"$s_call_282" = call { %Uint32 (i8*, %Uint32)*, i8* } %"$s_fptr_279"(i8* %"$s_envptr_280", { %Uint32 (i8*, %Uint32)*, i8* } %"$ssz_281"), !dbg !56 + store { %Uint32 (i8*, %Uint32)*, i8* } %"$s_call_282", { %Uint32 (i8*, %Uint32)*, i8* }* %"$s_13", align 8, !dbg !56 + %"$$s_13_283" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %"$s_13", align 8 + store { %Uint32 (i8*, %Uint32)*, i8* } %"$$s_13_283", { %Uint32 (i8*, %Uint32)*, i8* }* %"$retval_54", align 8, !dbg !56 + %"$$retval_54_284" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %"$retval_54", align 8 + ret { %Uint32 (i8*, %Uint32)*, i8* } %"$$retval_54_284" } -define internal { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } @"$fundef_51"(%"$$fundef_51_env_126"* %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_51"(%"$$fundef_51_env_126"* %0, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %1) !dbg !57 { entry: %"$retval_52" = alloca { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, 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_53_envp_232_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_53_envp_232_salloc" = call i8* @_salloc(i8* %"$$fundef_53_envp_232_load", i64 16) - %"$$fundef_53_envp_232" = bitcast i8* %"$$fundef_53_envp_232_salloc" to %"$$fundef_53_env_125"* - %"$$fundef_53_env_voidp_234" = bitcast %"$$fundef_53_env_125"* %"$$fundef_53_envp_232" to i8* - %"$$fundef_53_cloval_235" = 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_125"*, { %Uint32 (i8*, %Uint32)*, i8* })* @"$fundef_53" to { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*), i8* undef }, i8* %"$$fundef_53_env_voidp_234", 1 - %"$$fundef_53_env_s_236" = getelementptr inbounds %"$$fundef_53_env_125", %"$$fundef_53_env_125"* %"$$fundef_53_envp_232", 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_53_env_s_236", align 8 - store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$$fundef_53_cloval_235", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$retval_52", align 8, !dbg !39 - %"$$retval_52_237" = 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_237" + %"$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 = %entry + call void @_out_of_gas() + br label %"$have_gas_232" + +"$have_gas_232": ; preds = %"$out_of_gas_231", %entry + %"$consume_233" = sub i64 %"$gasrem_229", 1 + store i64 %"$consume_233", i64* @_gasrem, align 8 + %"$$fundef_53_envp_234_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_53_envp_234_salloc" = call i8* @_salloc(i8* %"$$fundef_53_envp_234_load", i64 16) + %"$$fundef_53_envp_234" = bitcast i8* %"$$fundef_53_envp_234_salloc" to %"$$fundef_53_env_125"* + %"$$fundef_53_env_voidp_236" = bitcast %"$$fundef_53_env_125"* %"$$fundef_53_envp_234" to i8* + %"$$fundef_53_cloval_237" = 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_125"*, { %Uint32 (i8*, %Uint32)*, i8* })* @"$fundef_53" to { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*), i8* undef }, i8* %"$$fundef_53_env_voidp_236", 1 + %"$$fundef_53_env_s_238" = getelementptr inbounds %"$$fundef_53_env_125", %"$$fundef_53_env_125"* %"$$fundef_53_envp_234", 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_53_env_s_238", align 8 + store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$$fundef_53_cloval_237", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$retval_52", align 8, !dbg !58 + %"$$retval_52_239" = 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_239" } -define internal %Uint32 @"$fundef_49"(%"$$fundef_49_env_127"* %0, %Uint32 %1) !dbg !40 { +define internal %Uint32 @"$fundef_49"(%"$$fundef_49_env_127"* %0, %Uint32 %1) !dbg !59 { entry: - %"$$fundef_49_env_s_182" = getelementptr inbounds %"$$fundef_49_env_127", %"$$fundef_49_env_127"* %0, i32 0, i32 0 - %"$s_envload_183" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %"$$fundef_49_env_s_182", align 8 + %"$z_228" = alloca %Uint32, align 8 + store %Uint32 %1, %Uint32* %"$z_228", align 4 + call void @llvm.dbg.declare(metadata %Uint32* %"$z_228", metadata !60, metadata !DIExpression()), !dbg !61 + %"$$fundef_49_env_s_183" = getelementptr inbounds %"$$fundef_49_env_127", %"$$fundef_49_env_127"* %0, i32 0, i32 0 + %"$s_envload_184" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %"$$fundef_49_env_s_183", align 8 %s = alloca { %Uint32 (i8*, %Uint32)*, i8* }, align 8 - store { %Uint32 (i8*, %Uint32)*, i8* } %"$s_envload_183", { %Uint32 (i8*, %Uint32)*, i8* }* %s, align 8 + store { %Uint32 (i8*, %Uint32)*, i8* } %"$s_envload_184", { %Uint32 (i8*, %Uint32)*, i8* }* %s, align 8 %"$retval_50" = alloca %Uint32, align 8 - %"$gasrem_184" = load i64, i64* @_gasrem, align 8 - %"$gascmp_185" = icmp ugt i64 1, %"$gasrem_184" - br i1 %"$gascmp_185", label %"$out_of_gas_186", label %"$have_gas_187" + call void @llvm.dbg.declare(metadata %Uint32* %"$retval_50", metadata !62, metadata !DIExpression()), !dbg !63 + %"$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_186": ; preds = %entry +"$out_of_gas_187": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_187" + br label %"$have_gas_188" -"$have_gas_187": ; preds = %"$out_of_gas_186", %entry - %"$consume_188" = sub i64 %"$gasrem_184", 1 - store i64 %"$consume_188", i64* @_gasrem, align 8 +"$have_gas_188": ; preds = %"$out_of_gas_187", %entry + %"$consume_189" = sub i64 %"$gasrem_185", 1 + store i64 %"$consume_189", i64* @_gasrem, align 8 %sz = alloca %Uint32, 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" + call void @llvm.dbg.declare(metadata %Uint32* %sz, metadata !64, metadata !DIExpression()), !dbg !65 + %"$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_191": ; preds = %"$have_gas_187" +"$out_of_gas_192": ; preds = %"$have_gas_188" call void @_out_of_gas() - br label %"$have_gas_192" + br label %"$have_gas_193" -"$have_gas_192": ; preds = %"$out_of_gas_191", %"$have_gas_187" - %"$consume_193" = sub i64 %"$gasrem_189", 1 - store i64 %"$consume_193", i64* @_gasrem, align 8 +"$have_gas_193": ; preds = %"$out_of_gas_192", %"$have_gas_188" + %"$consume_194" = sub i64 %"$gasrem_190", 1 + store i64 %"$consume_194", i64* @_gasrem, align 8 %"$s_8" = alloca %Uint32, align 8 - %"$s_194" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %s, align 8 - %"$s_fptr_195" = extractvalue { %Uint32 (i8*, %Uint32)*, i8* } %"$s_194", 0 - %"$s_envptr_196" = extractvalue { %Uint32 (i8*, %Uint32)*, i8* } %"$s_194", 1 - %"$s_call_197" = call %Uint32 %"$s_fptr_195"(i8* %"$s_envptr_196", %Uint32 %1), !dbg !41 - store %Uint32 %"$s_call_197", %Uint32* %"$s_8", align 4, !dbg !41 - %"$$s_8_198" = load %Uint32, %Uint32* %"$s_8", align 4 - store %Uint32 %"$$s_8_198", %Uint32* %sz, align 4, !dbg !41 - %"$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 = %"$have_gas_192" - call void @_out_of_gas() - br label %"$have_gas_202" - -"$have_gas_202": ; preds = %"$out_of_gas_201", %"$have_gas_192" - %"$consume_203" = sub i64 %"$gasrem_199", 1 - store i64 %"$consume_203", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %Uint32* %"$s_8", metadata !66, metadata !DIExpression()), !dbg !67 + %"$s_195" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %s, align 8 + %"$s_fptr_196" = extractvalue { %Uint32 (i8*, %Uint32)*, i8* } %"$s_195", 0 + %"$s_envptr_197" = extractvalue { %Uint32 (i8*, %Uint32)*, i8* } %"$s_195", 1 + %"$s_call_198" = call %Uint32 %"$s_fptr_196"(i8* %"$s_envptr_197", %Uint32 %1), !dbg !67 + store %Uint32 %"$s_call_198", %Uint32* %"$s_8", align 4, !dbg !67 + %"$$s_8_199" = load %Uint32, %Uint32* %"$s_8", align 4 + store %Uint32 %"$$s_8_199", %Uint32* %sz, align 4, !dbg !67 + %"$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_193" + call void @_out_of_gas() + br label %"$have_gas_203" + +"$have_gas_203": ; preds = %"$out_of_gas_202", %"$have_gas_193" + %"$consume_204" = sub i64 %"$gasrem_200", 1 + store i64 %"$consume_204", i64* @_gasrem, align 8 %ssz = alloca %Uint32, 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" + call void @llvm.dbg.declare(metadata %Uint32* %ssz, metadata !68, metadata !DIExpression()), !dbg !69 + %"$gasrem_205" = load i64, i64* @_gasrem, align 8 + %"$gascmp_206" = icmp ugt i64 1, %"$gasrem_205" + br i1 %"$gascmp_206", label %"$out_of_gas_207", label %"$have_gas_208" -"$out_of_gas_206": ; preds = %"$have_gas_202" +"$out_of_gas_207": ; preds = %"$have_gas_203" call void @_out_of_gas() - br label %"$have_gas_207" + br label %"$have_gas_208" -"$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 +"$have_gas_208": ; preds = %"$out_of_gas_207", %"$have_gas_203" + %"$consume_209" = sub i64 %"$gasrem_205", 1 + store i64 %"$consume_209", i64* @_gasrem, align 8 %"$s_9" = alloca %Uint32, align 8 - %"$s_209" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %s, align 8 - %"$s_fptr_210" = extractvalue { %Uint32 (i8*, %Uint32)*, i8* } %"$s_209", 0 - %"$s_envptr_211" = extractvalue { %Uint32 (i8*, %Uint32)*, i8* } %"$s_209", 1 - %"$sz_212" = load %Uint32, %Uint32* %sz, align 4 - %"$s_call_213" = call %Uint32 %"$s_fptr_210"(i8* %"$s_envptr_211", %Uint32 %"$sz_212"), !dbg !42 - store %Uint32 %"$s_call_213", %Uint32* %"$s_9", align 4, !dbg !42 - %"$$s_9_214" = load %Uint32, %Uint32* %"$s_9", align 4 - store %Uint32 %"$$s_9_214", %Uint32* %ssz, align 4, !dbg !42 - %"$gasrem_215" = load i64, i64* @_gasrem, align 8 - %"$gascmp_216" = icmp ugt i64 1, %"$gasrem_215" - br i1 %"$gascmp_216", label %"$out_of_gas_217", label %"$have_gas_218" - -"$out_of_gas_217": ; preds = %"$have_gas_207" - call void @_out_of_gas() - br label %"$have_gas_218" - -"$have_gas_218": ; preds = %"$out_of_gas_217", %"$have_gas_207" - %"$consume_219" = sub i64 %"$gasrem_215", 1 - store i64 %"$consume_219", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %Uint32* %"$s_9", metadata !70, metadata !DIExpression()), !dbg !71 + %"$s_210" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %s, align 8 + %"$s_fptr_211" = extractvalue { %Uint32 (i8*, %Uint32)*, i8* } %"$s_210", 0 + %"$s_envptr_212" = extractvalue { %Uint32 (i8*, %Uint32)*, i8* } %"$s_210", 1 + %"$sz_213" = load %Uint32, %Uint32* %sz, align 4 + %"$s_call_214" = call %Uint32 %"$s_fptr_211"(i8* %"$s_envptr_212", %Uint32 %"$sz_213"), !dbg !71 + store %Uint32 %"$s_call_214", %Uint32* %"$s_9", align 4, !dbg !71 + %"$$s_9_215" = load %Uint32, %Uint32* %"$s_9", align 4 + store %Uint32 %"$$s_9_215", %Uint32* %ssz, align 4, !dbg !71 + %"$gasrem_216" = load i64, i64* @_gasrem, align 8 + %"$gascmp_217" = icmp ugt i64 1, %"$gasrem_216" + br i1 %"$gascmp_217", label %"$out_of_gas_218", label %"$have_gas_219" + +"$out_of_gas_218": ; preds = %"$have_gas_208" + call void @_out_of_gas() + br label %"$have_gas_219" + +"$have_gas_219": ; preds = %"$out_of_gas_218", %"$have_gas_208" + %"$consume_220" = sub i64 %"$gasrem_216", 1 + store i64 %"$consume_220", i64* @_gasrem, align 8 %"$s_10" = alloca %Uint32, align 8 - %"$s_220" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %s, align 8 - %"$s_fptr_221" = extractvalue { %Uint32 (i8*, %Uint32)*, i8* } %"$s_220", 0 - %"$s_envptr_222" = extractvalue { %Uint32 (i8*, %Uint32)*, i8* } %"$s_220", 1 - %"$ssz_223" = load %Uint32, %Uint32* %ssz, align 4 - %"$s_call_224" = call %Uint32 %"$s_fptr_221"(i8* %"$s_envptr_222", %Uint32 %"$ssz_223"), !dbg !43 - store %Uint32 %"$s_call_224", %Uint32* %"$s_10", align 4, !dbg !43 - %"$$s_10_225" = load %Uint32, %Uint32* %"$s_10", align 4 - store %Uint32 %"$$s_10_225", %Uint32* %"$retval_50", align 4, !dbg !43 - %"$$retval_50_226" = load %Uint32, %Uint32* %"$retval_50", align 4 - ret %Uint32 %"$$retval_50_226" + call void @llvm.dbg.declare(metadata %Uint32* %"$s_10", metadata !72, metadata !DIExpression()), !dbg !73 + %"$s_221" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %s, align 8 + %"$s_fptr_222" = extractvalue { %Uint32 (i8*, %Uint32)*, i8* } %"$s_221", 0 + %"$s_envptr_223" = extractvalue { %Uint32 (i8*, %Uint32)*, i8* } %"$s_221", 1 + %"$ssz_224" = load %Uint32, %Uint32* %ssz, align 4 + %"$s_call_225" = call %Uint32 %"$s_fptr_222"(i8* %"$s_envptr_223", %Uint32 %"$ssz_224"), !dbg !73 + store %Uint32 %"$s_call_225", %Uint32* %"$s_10", align 4, !dbg !73 + %"$$s_10_226" = load %Uint32, %Uint32* %"$s_10", align 4 + store %Uint32 %"$$s_10_226", %Uint32* %"$retval_50", align 4, !dbg !73 + %"$$retval_50_227" = load %Uint32, %Uint32* %"$retval_50", align 4 + ret %Uint32 %"$$retval_50_227" } -define internal { %Uint32 (i8*, %Uint32)*, i8* } @"$fundef_47"(%"$$fundef_47_env_128"* %0, { %Uint32 (i8*, %Uint32)*, i8* } %1) !dbg !44 { +define internal { %Uint32 (i8*, %Uint32)*, i8* } @"$fundef_47"(%"$$fundef_47_env_128"* %0, { %Uint32 (i8*, %Uint32)*, i8* } %1) !dbg !74 { entry: %"$retval_48" = alloca { %Uint32 (i8*, %Uint32)*, i8* }, 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 - %"$$fundef_49_envp_176_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_49_envp_176_salloc" = call i8* @_salloc(i8* %"$$fundef_49_envp_176_load", i64 16) - %"$$fundef_49_envp_176" = bitcast i8* %"$$fundef_49_envp_176_salloc" to %"$$fundef_49_env_127"* - %"$$fundef_49_env_voidp_178" = bitcast %"$$fundef_49_env_127"* %"$$fundef_49_envp_176" to i8* - %"$$fundef_49_cloval_179" = insertvalue { %Uint32 (i8*, %Uint32)*, i8* } { %Uint32 (i8*, %Uint32)* bitcast (%Uint32 (%"$$fundef_49_env_127"*, %Uint32)* @"$fundef_49" to %Uint32 (i8*, %Uint32)*), i8* undef }, i8* %"$$fundef_49_env_voidp_178", 1 - %"$$fundef_49_env_s_180" = getelementptr inbounds %"$$fundef_49_env_127", %"$$fundef_49_env_127"* %"$$fundef_49_envp_176", i32 0, i32 0 - store { %Uint32 (i8*, %Uint32)*, i8* } %1, { %Uint32 (i8*, %Uint32)*, i8* }* %"$$fundef_49_env_s_180", align 8 - store { %Uint32 (i8*, %Uint32)*, i8* } %"$$fundef_49_cloval_179", { %Uint32 (i8*, %Uint32)*, i8* }* %"$retval_48", align 8, !dbg !45 - %"$$retval_48_181" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %"$retval_48", align 8 - ret { %Uint32 (i8*, %Uint32)*, i8* } %"$$retval_48_181" + %"$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 = %entry + call void @_out_of_gas() + br label %"$have_gas_175" + +"$have_gas_175": ; preds = %"$out_of_gas_174", %entry + %"$consume_176" = sub i64 %"$gasrem_172", 1 + store i64 %"$consume_176", i64* @_gasrem, align 8 + %"$$fundef_49_envp_177_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_49_envp_177_salloc" = call i8* @_salloc(i8* %"$$fundef_49_envp_177_load", i64 16) + %"$$fundef_49_envp_177" = bitcast i8* %"$$fundef_49_envp_177_salloc" to %"$$fundef_49_env_127"* + %"$$fundef_49_env_voidp_179" = bitcast %"$$fundef_49_env_127"* %"$$fundef_49_envp_177" to i8* + %"$$fundef_49_cloval_180" = insertvalue { %Uint32 (i8*, %Uint32)*, i8* } { %Uint32 (i8*, %Uint32)* bitcast (%Uint32 (%"$$fundef_49_env_127"*, %Uint32)* @"$fundef_49" to %Uint32 (i8*, %Uint32)*), i8* undef }, i8* %"$$fundef_49_env_voidp_179", 1 + %"$$fundef_49_env_s_181" = getelementptr inbounds %"$$fundef_49_env_127", %"$$fundef_49_env_127"* %"$$fundef_49_envp_177", i32 0, i32 0 + store { %Uint32 (i8*, %Uint32)*, i8* } %1, { %Uint32 (i8*, %Uint32)*, i8* }* %"$$fundef_49_env_s_181", align 8 + store { %Uint32 (i8*, %Uint32)*, i8* } %"$$fundef_49_cloval_180", { %Uint32 (i8*, %Uint32)*, i8* }* %"$retval_48", align 8, !dbg !75 + %"$$retval_48_182" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %"$retval_48", align 8 + ret { %Uint32 (i8*, %Uint32)*, i8* } %"$$retval_48_182" } -define internal %Uint32 @"$fundef_45"(%"$$fundef_45_env_129"* %0, %Uint32 %1) !dbg !46 { +define internal %Uint32 @"$fundef_45"(%"$$fundef_45_env_129"* %0, %Uint32 %1) !dbg !76 { entry: + %"$z_171" = alloca %Uint32, align 8 + store %Uint32 %1, %Uint32* %"$z_171", align 4 + call void @llvm.dbg.declare(metadata %Uint32* %"$z_171", metadata !77, metadata !DIExpression()), !dbg !78 %"$$fundef_45_env_s_142" = getelementptr inbounds %"$$fundef_45_env_129", %"$$fundef_45_env_129"* %0, i32 0, i32 0 %"$s_envload_143" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %"$$fundef_45_env_s_142", align 8 %s = alloca { %Uint32 (i8*, %Uint32)*, i8* }, align 8 store { %Uint32 (i8*, %Uint32)*, i8* } %"$s_envload_143", { %Uint32 (i8*, %Uint32)*, i8* }* %s, align 8 %"$retval_46" = alloca %Uint32, align 8 + call void @llvm.dbg.declare(metadata %Uint32* %"$retval_46", metadata !79, metadata !DIExpression()), !dbg !80 %"$gasrem_144" = load i64, i64* @_gasrem, align 8 %"$gascmp_145" = icmp ugt i64 1, %"$gasrem_144" br i1 %"$gascmp_145", label %"$out_of_gas_146", label %"$have_gas_147" @@ -894,6 +922,7 @@ entry: %"$consume_148" = sub i64 %"$gasrem_144", 1 store i64 %"$consume_148", i64* @_gasrem, align 8 %sz = alloca %Uint32, align 8 + call void @llvm.dbg.declare(metadata %Uint32* %sz, metadata !81, metadata !DIExpression()), !dbg !82 %"$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" @@ -906,13 +935,14 @@ entry: %"$consume_153" = sub i64 %"$gasrem_149", 1 store i64 %"$consume_153", i64* @_gasrem, align 8 %"$s_6" = alloca %Uint32, align 8 + call void @llvm.dbg.declare(metadata %Uint32* %"$s_6", metadata !83, metadata !DIExpression()), !dbg !84 %"$s_154" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %s, align 8 %"$s_fptr_155" = extractvalue { %Uint32 (i8*, %Uint32)*, i8* } %"$s_154", 0 %"$s_envptr_156" = extractvalue { %Uint32 (i8*, %Uint32)*, i8* } %"$s_154", 1 - %"$s_call_157" = call %Uint32 %"$s_fptr_155"(i8* %"$s_envptr_156", %Uint32 %1), !dbg !47 - store %Uint32 %"$s_call_157", %Uint32* %"$s_6", align 4, !dbg !47 + %"$s_call_157" = call %Uint32 %"$s_fptr_155"(i8* %"$s_envptr_156", %Uint32 %1), !dbg !84 + store %Uint32 %"$s_call_157", %Uint32* %"$s_6", align 4, !dbg !84 %"$$s_6_158" = load %Uint32, %Uint32* %"$s_6", align 4 - store %Uint32 %"$$s_6_158", %Uint32* %sz, align 4, !dbg !47 + store %Uint32 %"$$s_6_158", %Uint32* %sz, align 4, !dbg !84 %"$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" @@ -925,19 +955,20 @@ entry: %"$consume_163" = sub i64 %"$gasrem_159", 1 store i64 %"$consume_163", i64* @_gasrem, align 8 %"$s_7" = alloca %Uint32, align 8 + call void @llvm.dbg.declare(metadata %Uint32* %"$s_7", metadata !85, metadata !DIExpression()), !dbg !86 %"$s_164" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %s, align 8 %"$s_fptr_165" = extractvalue { %Uint32 (i8*, %Uint32)*, i8* } %"$s_164", 0 %"$s_envptr_166" = extractvalue { %Uint32 (i8*, %Uint32)*, i8* } %"$s_164", 1 %"$sz_167" = load %Uint32, %Uint32* %sz, align 4 - %"$s_call_168" = call %Uint32 %"$s_fptr_165"(i8* %"$s_envptr_166", %Uint32 %"$sz_167"), !dbg !48 - store %Uint32 %"$s_call_168", %Uint32* %"$s_7", align 4, !dbg !48 + %"$s_call_168" = call %Uint32 %"$s_fptr_165"(i8* %"$s_envptr_166", %Uint32 %"$sz_167"), !dbg !86 + store %Uint32 %"$s_call_168", %Uint32* %"$s_7", align 4, !dbg !86 %"$$s_7_169" = load %Uint32, %Uint32* %"$s_7", align 4 - store %Uint32 %"$$s_7_169", %Uint32* %"$retval_46", align 4, !dbg !48 + store %Uint32 %"$$s_7_169", %Uint32* %"$retval_46", align 4, !dbg !86 %"$$retval_46_170" = load %Uint32, %Uint32* %"$retval_46", align 4 ret %Uint32 %"$$retval_46_170" } -define internal { %Uint32 (i8*, %Uint32)*, i8* } @"$fundef_43"(%"$$fundef_43_env_130"* %0, { %Uint32 (i8*, %Uint32)*, i8* } %1) !dbg !49 { +define internal { %Uint32 (i8*, %Uint32)*, i8* } @"$fundef_43"(%"$$fundef_43_env_130"* %0, { %Uint32 (i8*, %Uint32)*, i8* } %1) !dbg !87 { entry: %"$retval_44" = alloca { %Uint32 (i8*, %Uint32)*, i8* }, align 8 %"$gasrem_131" = load i64, i64* @_gasrem, align 8 @@ -958,7 +989,7 @@ entry: %"$$fundef_45_cloval_139" = insertvalue { %Uint32 (i8*, %Uint32)*, i8* } { %Uint32 (i8*, %Uint32)* bitcast (%Uint32 (%"$$fundef_45_env_129"*, %Uint32)* @"$fundef_45" to %Uint32 (i8*, %Uint32)*), i8* undef }, i8* %"$$fundef_45_env_voidp_138", 1 %"$$fundef_45_env_s_140" = getelementptr inbounds %"$$fundef_45_env_129", %"$$fundef_45_env_129"* %"$$fundef_45_envp_136", i32 0, i32 0 store { %Uint32 (i8*, %Uint32)*, i8* } %1, { %Uint32 (i8*, %Uint32)*, i8* }* %"$$fundef_45_env_s_140", align 8 - store { %Uint32 (i8*, %Uint32)*, i8* } %"$$fundef_45_cloval_139", { %Uint32 (i8*, %Uint32)*, i8* }* %"$retval_44", align 8, !dbg !50 + store { %Uint32 (i8*, %Uint32)*, i8* } %"$$fundef_45_cloval_139", { %Uint32 (i8*, %Uint32)*, i8* }* %"$retval_44", align 8, !dbg !88 %"$$retval_44_141" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %"$retval_44", align 8 ret { %Uint32 (i8*, %Uint32)*, i8* } %"$$retval_44_141" } @@ -967,760 +998,808 @@ declare void @_out_of_gas() declare i8* @_salloc(i8*, i64) +; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn +declare void @llvm.dbg.declare(metadata, metadata, metadata) #0 + declare %Uint32 @_add_Uint32(%Uint32, %Uint32) -define void @_init_libs() !dbg !51 { +define void @_init_libs() !dbg !89 { entry: - %"$gasrem_514" = load i64, i64* @_gasrem, align 8 - %"$gascmp_515" = icmp ugt i64 5, %"$gasrem_514" - br i1 %"$gascmp_515", label %"$out_of_gas_516", label %"$have_gas_517" + %"$gasrem_518" = load i64, i64* @_gasrem, align 8 + %"$gascmp_519" = icmp ugt i64 5, %"$gasrem_518" + br i1 %"$gascmp_519", label %"$out_of_gas_520", label %"$have_gas_521" -"$out_of_gas_516": ; preds = %entry +"$out_of_gas_520": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_517" + br label %"$have_gas_521" -"$have_gas_517": ; preds = %"$out_of_gas_516", %entry - %"$consume_518" = sub i64 %"$gasrem_514", 5 - store i64 %"$consume_518", i64* @_gasrem, align 8 - store %Int32 { i32 5 }, %Int32* @"$_gas_charge_accrec_lib_5", align 4, !dbg !53 - %"$gasrem_519" = load i64, i64* @_gasrem, align 8 - %"$gascmp_520" = icmp ugt i64 8, %"$gasrem_519" - br i1 %"$gascmp_520", label %"$out_of_gas_521", label %"$have_gas_522" +"$have_gas_521": ; preds = %"$out_of_gas_520", %entry + %"$consume_522" = sub i64 %"$gasrem_518", 5 + store i64 %"$consume_522", i64* @_gasrem, align 8 + store %Int32 { i32 5 }, %Int32* @"$_gas_charge_accrec_lib_5", align 4, !dbg !91 + %"$gasrem_523" = load i64, i64* @_gasrem, align 8 + %"$gascmp_524" = icmp ugt i64 8, %"$gasrem_523" + br i1 %"$gascmp_524", label %"$out_of_gas_525", label %"$have_gas_526" -"$out_of_gas_521": ; preds = %"$have_gas_517" +"$out_of_gas_525": ; preds = %"$have_gas_521" call void @_out_of_gas() - br label %"$have_gas_522" + br label %"$have_gas_526" -"$have_gas_522": ; preds = %"$out_of_gas_521", %"$have_gas_517" - %"$consume_523" = sub i64 %"$gasrem_519", 8 - store i64 %"$consume_523", i64* @_gasrem, align 8 - store %Int32 { i32 8 }, %Int32* @"$_gas_charge_accBoolUtils_0", align 4, !dbg !53 - %"$gasrem_524" = load i64, i64* @_gasrem, align 8 - %"$gascmp_525" = icmp ugt i64 196, %"$gasrem_524" - br i1 %"$gascmp_525", label %"$out_of_gas_526", label %"$have_gas_527" +"$have_gas_526": ; preds = %"$out_of_gas_525", %"$have_gas_521" + %"$consume_527" = sub i64 %"$gasrem_523", 8 + store i64 %"$consume_527", i64* @_gasrem, align 8 + store %Int32 { i32 8 }, %Int32* @"$_gas_charge_accBoolUtils_0", align 4, !dbg !91 + %"$gasrem_528" = load i64, i64* @_gasrem, align 8 + %"$gascmp_529" = icmp ugt i64 196, %"$gasrem_528" + br i1 %"$gascmp_529", label %"$out_of_gas_530", label %"$have_gas_531" -"$out_of_gas_526": ; preds = %"$have_gas_522" +"$out_of_gas_530": ; preds = %"$have_gas_526" call void @_out_of_gas() - br label %"$have_gas_527" + br label %"$have_gas_531" -"$have_gas_527": ; preds = %"$out_of_gas_526", %"$have_gas_522" - %"$consume_528" = sub i64 %"$gasrem_524", 196 - store i64 %"$consume_528", i64* @_gasrem, align 8 - store %Int32 { i32 196 }, %Int32* @"$_gas_charge_accIntUtils_1", align 4, !dbg !53 - %"$gasrem_529" = load i64, i64* @_gasrem, align 8 - %"$gascmp_530" = icmp ugt i64 20, %"$gasrem_529" - br i1 %"$gascmp_530", label %"$out_of_gas_531", label %"$have_gas_532" +"$have_gas_531": ; preds = %"$out_of_gas_530", %"$have_gas_526" + %"$consume_532" = sub i64 %"$gasrem_528", 196 + store i64 %"$consume_532", i64* @_gasrem, align 8 + store %Int32 { i32 196 }, %Int32* @"$_gas_charge_accIntUtils_1", align 4, !dbg !91 + %"$gasrem_533" = load i64, i64* @_gasrem, align 8 + %"$gascmp_534" = icmp ugt i64 20, %"$gasrem_533" + br i1 %"$gascmp_534", label %"$out_of_gas_535", label %"$have_gas_536" -"$out_of_gas_531": ; preds = %"$have_gas_527" +"$out_of_gas_535": ; preds = %"$have_gas_531" call void @_out_of_gas() - br label %"$have_gas_532" + br label %"$have_gas_536" -"$have_gas_532": ; preds = %"$out_of_gas_531", %"$have_gas_527" - %"$consume_533" = sub i64 %"$gasrem_529", 20 - store i64 %"$consume_533", i64* @_gasrem, align 8 - store %Int32 { i32 20 }, %Int32* @"$_gas_charge_accListUtils_2", align 4, !dbg !53 - %"$gasrem_534" = load i64, i64* @_gasrem, align 8 - %"$gascmp_535" = icmp ugt i64 12, %"$gasrem_534" - br i1 %"$gascmp_535", label %"$out_of_gas_536", label %"$have_gas_537" +"$have_gas_536": ; preds = %"$out_of_gas_535", %"$have_gas_531" + %"$consume_537" = sub i64 %"$gasrem_533", 20 + store i64 %"$consume_537", i64* @_gasrem, align 8 + store %Int32 { i32 20 }, %Int32* @"$_gas_charge_accListUtils_2", align 4, !dbg !91 + %"$gasrem_538" = load i64, i64* @_gasrem, align 8 + %"$gascmp_539" = icmp ugt i64 12, %"$gasrem_538" + br i1 %"$gascmp_539", label %"$out_of_gas_540", label %"$have_gas_541" -"$out_of_gas_536": ; preds = %"$have_gas_532" +"$out_of_gas_540": ; preds = %"$have_gas_536" call void @_out_of_gas() - br label %"$have_gas_537" + br label %"$have_gas_541" -"$have_gas_537": ; preds = %"$out_of_gas_536", %"$have_gas_532" - %"$consume_538" = sub i64 %"$gasrem_534", 12 - store i64 %"$consume_538", i64* @_gasrem, align 8 - store %Int32 { i32 12 }, %Int32* @"$_gas_charge_accNatUtils_3", align 4, !dbg !53 - %"$gasrem_539" = load i64, i64* @_gasrem, align 8 - %"$gascmp_540" = icmp ugt i64 2, %"$gasrem_539" - br i1 %"$gascmp_540", label %"$out_of_gas_541", label %"$have_gas_542" +"$have_gas_541": ; preds = %"$out_of_gas_540", %"$have_gas_536" + %"$consume_542" = sub i64 %"$gasrem_538", 12 + store i64 %"$consume_542", i64* @_gasrem, align 8 + store %Int32 { i32 12 }, %Int32* @"$_gas_charge_accNatUtils_3", align 4, !dbg !91 + %"$gasrem_543" = load i64, i64* @_gasrem, align 8 + %"$gascmp_544" = icmp ugt i64 2, %"$gasrem_543" + br i1 %"$gascmp_544", label %"$out_of_gas_545", label %"$have_gas_546" -"$out_of_gas_541": ; preds = %"$have_gas_537" +"$out_of_gas_545": ; preds = %"$have_gas_541" call void @_out_of_gas() - br label %"$have_gas_542" + br label %"$have_gas_546" -"$have_gas_542": ; preds = %"$out_of_gas_541", %"$have_gas_537" - %"$consume_543" = sub i64 %"$gasrem_539", 2 - store i64 %"$consume_543", i64* @_gasrem, align 8 - store %Int32 { i32 2 }, %Int32* @"$_gas_charge_accPairUtils_4", align 4, !dbg !53 +"$have_gas_546": ; preds = %"$out_of_gas_545", %"$have_gas_541" + %"$consume_547" = sub i64 %"$gasrem_543", 2 + store i64 %"$consume_547", i64* @_gasrem, align 8 + store %Int32 { i32 2 }, %Int32* @"$_gas_charge_accPairUtils_4", align 4, !dbg !91 ret void } -define internal %Uint32 @_scilla_expr_fun(i8* %0) !dbg !54 { +define internal %Uint32 @_scilla_expr_fun(i8* %0) !dbg !92 { entry: %"$expr_42" = 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" + call void @llvm.dbg.declare(metadata %Uint32* %"$expr_42", metadata !93, metadata !DIExpression()), !dbg !94 + %"$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_546": ; preds = %entry +"$out_of_gas_550": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_547" + br label %"$have_gas_551" -"$have_gas_547": ; preds = %"$out_of_gas_546", %entry - %"$consume_548" = sub i64 %"$gasrem_544", 1 - store i64 %"$consume_548", i64* @_gasrem, 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" +"$have_gas_551": ; preds = %"$out_of_gas_550", %entry + %"$consume_552" = sub i64 %"$gasrem_548", 1 + store i64 %"$consume_552", 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_551": ; preds = %"$have_gas_547" +"$out_of_gas_555": ; preds = %"$have_gas_551" call void @_out_of_gas() - br label %"$have_gas_552" + br label %"$have_gas_556" -"$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 - %"$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" +"$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 + %"$gasrem_558" = load i64, i64* @_gasrem, align 8 + %"$gascmp_559" = icmp ugt i64 1, %"$gasrem_558" + br i1 %"$gascmp_559", label %"$out_of_gas_560", label %"$have_gas_561" -"$out_of_gas_556": ; preds = %"$have_gas_552" +"$out_of_gas_560": ; preds = %"$have_gas_556" call void @_out_of_gas() - br label %"$have_gas_557" + br label %"$have_gas_561" -"$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 - %"$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" +"$have_gas_561": ; preds = %"$out_of_gas_560", %"$have_gas_556" + %"$consume_562" = sub i64 %"$gasrem_558", 1 + store i64 %"$consume_562", i64* @_gasrem, align 8 + %"$gasrem_563" = load i64, i64* @_gasrem, align 8 + %"$gascmp_564" = icmp ugt i64 1, %"$gasrem_563" + br i1 %"$gascmp_564", label %"$out_of_gas_565", label %"$have_gas_566" -"$out_of_gas_561": ; preds = %"$have_gas_557" +"$out_of_gas_565": ; preds = %"$have_gas_561" call void @_out_of_gas() - br label %"$have_gas_562" + br label %"$have_gas_566" -"$have_gas_562": ; preds = %"$out_of_gas_561", %"$have_gas_557" - %"$consume_563" = sub i64 %"$gasrem_559", 1 - store i64 %"$consume_563", i64* @_gasrem, 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" +"$have_gas_566": ; preds = %"$out_of_gas_565", %"$have_gas_561" + %"$consume_567" = sub i64 %"$gasrem_563", 1 + store i64 %"$consume_567", i64* @_gasrem, 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" -"$out_of_gas_566": ; preds = %"$have_gas_562" +"$out_of_gas_570": ; preds = %"$have_gas_566" call void @_out_of_gas() - br label %"$have_gas_567" + br label %"$have_gas_571" -"$have_gas_567": ; preds = %"$out_of_gas_566", %"$have_gas_562" - %"$consume_568" = sub i64 %"$gasrem_564", 1 - store i64 %"$consume_568", i64* @_gasrem, align 8 +"$have_gas_571": ; preds = %"$out_of_gas_570", %"$have_gas_566" + %"$consume_572" = sub i64 %"$gasrem_568", 1 + store i64 %"$consume_572", i64* @_gasrem, align 8 %c2 = alloca { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, 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" + %"$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_571": ; preds = %"$have_gas_567" +"$out_of_gas_575": ; preds = %"$have_gas_571" call void @_out_of_gas() - br label %"$have_gas_572" + br label %"$have_gas_576" -"$have_gas_572": ; preds = %"$out_of_gas_571", %"$have_gas_567" - %"$consume_573" = sub i64 %"$gasrem_569", 1 - store i64 %"$consume_573", 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_43_env_130"*, { %Uint32 (i8*, %Uint32)*, i8* })* @"$fundef_43" 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 !55 - %"$gasrem_577" = load i64, i64* @_gasrem, align 8 - %"$gascmp_578" = icmp ugt i64 1, %"$gasrem_577" - br i1 %"$gascmp_578", label %"$out_of_gas_579", label %"$have_gas_580" +"$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* } { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })* bitcast ({ %Uint32 (i8*, %Uint32)*, i8* } (%"$$fundef_43_env_130"*, { %Uint32 (i8*, %Uint32)*, i8* })* @"$fundef_43" 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 !95 + %"$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_579": ; preds = %"$have_gas_572" +"$out_of_gas_583": ; preds = %"$have_gas_576" call void @_out_of_gas() - br label %"$have_gas_580" + br label %"$have_gas_584" -"$have_gas_580": ; preds = %"$out_of_gas_579", %"$have_gas_572" - %"$consume_581" = sub i64 %"$gasrem_577", 1 - store i64 %"$consume_581", i64* @_gasrem, align 8 +"$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 %c3 = alloca { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, align 8 - %"$gasrem_582" = load i64, i64* @_gasrem, align 8 - %"$gascmp_583" = icmp ugt i64 1, %"$gasrem_582" - br i1 %"$gascmp_583", label %"$out_of_gas_584", label %"$have_gas_585" + %"$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_584": ; preds = %"$have_gas_580" +"$out_of_gas_588": ; preds = %"$have_gas_584" call void @_out_of_gas() - br label %"$have_gas_585" + br label %"$have_gas_589" -"$have_gas_585": ; preds = %"$out_of_gas_584", %"$have_gas_580" - %"$consume_586" = sub i64 %"$gasrem_582", 1 - store i64 %"$consume_586", 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_47_env_128"*, { %Uint32 (i8*, %Uint32)*, i8* })* @"$fundef_47" 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 !56 - %"$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" +"$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* } { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })* bitcast ({ %Uint32 (i8*, %Uint32)*, i8* } (%"$$fundef_47_env_128"*, { %Uint32 (i8*, %Uint32)*, i8* })* @"$fundef_47" 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 !96 + %"$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_592": ; preds = %"$have_gas_585" +"$out_of_gas_596": ; preds = %"$have_gas_589" call void @_out_of_gas() - br label %"$have_gas_593" + br label %"$have_gas_597" -"$have_gas_593": ; preds = %"$out_of_gas_592", %"$have_gas_585" - %"$consume_594" = sub i64 %"$gasrem_590", 1 - store i64 %"$consume_594", i64* @_gasrem, align 8 +"$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 %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_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" + %"$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" -"$out_of_gas_597": ; preds = %"$have_gas_593" +"$out_of_gas_601": ; preds = %"$have_gas_597" call void @_out_of_gas() - br label %"$have_gas_598" + br label %"$have_gas_602" -"$have_gas_598": ; preds = %"$out_of_gas_597", %"$have_gas_593" - %"$consume_599" = sub i64 %"$gasrem_595", 1 - store i64 %"$consume_599", 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_51_env_126"*, { { %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* 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 !57 - %"$gasrem_603" = load i64, i64* @_gasrem, align 8 - %"$gascmp_604" = icmp ugt i64 1, %"$gasrem_603" - br i1 %"$gascmp_604", label %"$out_of_gas_605", label %"$have_gas_606" +"$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* } (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_126"*, { { %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* 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 !97 + %"$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" -"$out_of_gas_605": ; preds = %"$have_gas_598" +"$out_of_gas_609": ; preds = %"$have_gas_602" call void @_out_of_gas() - br label %"$have_gas_606" + br label %"$have_gas_610" -"$have_gas_606": ; preds = %"$out_of_gas_605", %"$have_gas_598" - %"$consume_607" = sub i64 %"$gasrem_603", 1 - store i64 %"$consume_607", i64* @_gasrem, align 8 +"$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 %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_608" = load i64, i64* @_gasrem, align 8 - %"$gascmp_609" = icmp ugt i64 1, %"$gasrem_608" - br i1 %"$gascmp_609", label %"$out_of_gas_610", label %"$have_gas_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_610": ; preds = %"$have_gas_606" +"$out_of_gas_614": ; preds = %"$have_gas_610" call void @_out_of_gas() - br label %"$have_gas_611" + br label %"$have_gas_615" -"$have_gas_611": ; preds = %"$out_of_gas_610", %"$have_gas_606" - %"$consume_612" = sub i64 %"$gasrem_608", 1 - store i64 %"$consume_612", 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_124"*, { { %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* }* %cadd, align 8, !dbg !58 - %"$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" +"$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 + 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_124"*, { { %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* }* %cadd, align 8, !dbg !98 + %"$gasrem_620" = load i64, i64* @_gasrem, align 8 + %"$gascmp_621" = icmp ugt i64 1, %"$gasrem_620" + br i1 %"$gascmp_621", label %"$out_of_gas_622", label %"$have_gas_623" -"$out_of_gas_618": ; preds = %"$have_gas_611" +"$out_of_gas_622": ; preds = %"$have_gas_615" call void @_out_of_gas() - br label %"$have_gas_619" + br label %"$have_gas_623" -"$have_gas_619": ; preds = %"$out_of_gas_618", %"$have_gas_611" - %"$consume_620" = sub i64 %"$gasrem_616", 1 - store i64 %"$consume_620", i64* @_gasrem, align 8 +"$have_gas_623": ; preds = %"$out_of_gas_622", %"$have_gas_615" + %"$consume_624" = sub i64 %"$gasrem_620", 1 + store i64 %"$consume_624", 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_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" + %"$gasrem_625" = load i64, i64* @_gasrem, align 8 + %"$gascmp_626" = icmp ugt i64 1, %"$gasrem_625" + br i1 %"$gascmp_626", label %"$out_of_gas_627", label %"$have_gas_628" -"$out_of_gas_623": ; preds = %"$have_gas_619" +"$out_of_gas_627": ; preds = %"$have_gas_623" call void @_out_of_gas() - br label %"$have_gas_624" + br label %"$have_gas_628" -"$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 - 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_63_env_120"*, { { %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* } (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 !59 - %"$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" +"$have_gas_628": ; preds = %"$out_of_gas_627", %"$have_gas_623" + %"$consume_629" = sub i64 %"$gasrem_625", 1 + store i64 %"$consume_629", 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_63_env_120"*, { { %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* } (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 !99 + %"$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_631": ; preds = %"$have_gas_624" +"$out_of_gas_635": ; preds = %"$have_gas_628" call void @_out_of_gas() - br label %"$have_gas_632" + br label %"$have_gas_636" -"$have_gas_632": ; preds = %"$out_of_gas_631", %"$have_gas_624" - %"$consume_633" = sub i64 %"$gasrem_629", 1 - store i64 %"$consume_633", i64* @_gasrem, align 8 +"$have_gas_636": ; preds = %"$out_of_gas_635", %"$have_gas_628" + %"$consume_637" = sub i64 %"$gasrem_633", 1 + store i64 %"$consume_637", 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_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_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" -"$out_of_gas_636": ; preds = %"$have_gas_632" +"$out_of_gas_640": ; preds = %"$have_gas_636" call void @_out_of_gas() - br label %"$have_gas_637" + br label %"$have_gas_641" -"$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 - 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_69_env_117"*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })* @"$fundef_69" 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 !60 - %"$gasrem_642" = load i64, i64* @_gasrem, align 8 - %"$gascmp_643" = icmp ugt i64 1, %"$gasrem_642" - br i1 %"$gascmp_643", label %"$out_of_gas_644", label %"$have_gas_645" +"$have_gas_641": ; preds = %"$out_of_gas_640", %"$have_gas_636" + %"$consume_642" = sub i64 %"$gasrem_638", 1 + store i64 %"$consume_642", 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_69_env_117"*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })* @"$fundef_69" 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 !100 + %"$gasrem_646" = load i64, i64* @_gasrem, align 8 + %"$gascmp_647" = icmp ugt i64 1, %"$gasrem_646" + br i1 %"$gascmp_647", label %"$out_of_gas_648", label %"$have_gas_649" -"$out_of_gas_644": ; preds = %"$have_gas_637" +"$out_of_gas_648": ; preds = %"$have_gas_641" call void @_out_of_gas() - br label %"$have_gas_645" + br label %"$have_gas_649" -"$have_gas_645": ; preds = %"$out_of_gas_644", %"$have_gas_637" - %"$consume_646" = sub i64 %"$gasrem_642", 1 - store i64 %"$consume_646", i64* @_gasrem, align 8 +"$have_gas_649": ; preds = %"$out_of_gas_648", %"$have_gas_641" + %"$consume_650" = sub i64 %"$gasrem_646", 1 + store i64 %"$consume_650", 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_647" = load i64, i64* @_gasrem, align 8 - %"$gascmp_648" = icmp ugt i64 1, %"$gasrem_647" - br i1 %"$gascmp_648", label %"$out_of_gas_649", label %"$have_gas_650" + %"$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_649": ; preds = %"$have_gas_645" +"$out_of_gas_653": ; preds = %"$have_gas_649" call void @_out_of_gas() - br label %"$have_gas_650" + br label %"$have_gas_654" -"$have_gas_650": ; preds = %"$out_of_gas_649", %"$have_gas_645" - %"$consume_651" = sub i64 %"$gasrem_647", 1 - store i64 %"$consume_651", 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_73_env_115"*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })* @"$fundef_73" 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 !61 - %"$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" +"$have_gas_654": ; preds = %"$out_of_gas_653", %"$have_gas_649" + %"$consume_655" = sub i64 %"$gasrem_651", 1 + store i64 %"$consume_655", 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_73_env_115"*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })* @"$fundef_73" 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 !101 + %"$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_657": ; preds = %"$have_gas_650" +"$out_of_gas_661": ; preds = %"$have_gas_654" call void @_out_of_gas() - br label %"$have_gas_658" + br label %"$have_gas_662" -"$have_gas_658": ; preds = %"$out_of_gas_657", %"$have_gas_650" - %"$consume_659" = sub i64 %"$gasrem_655", 1 - store i64 %"$consume_659", i64* @_gasrem, align 8 +"$have_gas_662": ; preds = %"$out_of_gas_661", %"$have_gas_654" + %"$consume_663" = sub i64 %"$gasrem_659", 1 + store i64 %"$consume_663", i64* @_gasrem, align 8 %c4 = alloca { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, 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" + %"$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_662": ; preds = %"$have_gas_658" +"$out_of_gas_666": ; preds = %"$have_gas_662" call void @_out_of_gas() - br label %"$have_gas_663" + br label %"$have_gas_667" -"$have_gas_663": ; preds = %"$out_of_gas_662", %"$have_gas_658" - %"$consume_664" = sub i64 %"$gasrem_660", 1 - store i64 %"$consume_664", 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 %"$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_665" = 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_666" = 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_665", 0 - %"$cmul_envptr_667" = 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_665", 1 - %"$c2_668" = 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_669" = 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_666"(i8* %"$cmul_envptr_667", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$c2_668"), !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_669", { { { %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_669" = 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_670" = 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_669", 0 + %"$cmul_envptr_671" = 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_669", 1 + %"$c2_672" = 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_673" = 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_670"(i8* %"$cmul_envptr_671", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$c2_672"), !dbg !102 + 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_673", { { { %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 !102 %"$cmul_24" = alloca { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, align 8 - %"$$cmul_23_670" = 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_671" = 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_670", 0 - %"$$cmul_23_envptr_672" = 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_670", 1 - %"$c2_673" = 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_23_call_674" = call { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$$cmul_23_fptr_671"(i8* %"$$cmul_23_envptr_672", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$c2_673"), !dbg !62 - store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$$cmul_23_call_674", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$cmul_24", align 8, !dbg !62 - %"$$cmul_24_675" = 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_675", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %c4, align 8, !dbg !62 - %"$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 = %"$have_gas_663" - call void @_out_of_gas() - br label %"$have_gas_679" - -"$have_gas_679": ; preds = %"$out_of_gas_678", %"$have_gas_663" - %"$consume_680" = sub i64 %"$gasrem_676", 1 - store i64 %"$consume_680", i64* @_gasrem, align 8 + %"$$cmul_23_674" = 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_675" = 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_674", 0 + %"$$cmul_23_envptr_676" = 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_674", 1 + %"$c2_677" = 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_23_call_678" = call { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$$cmul_23_fptr_675"(i8* %"$$cmul_23_envptr_676", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$c2_677"), !dbg !102 + store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$$cmul_23_call_678", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$cmul_24", align 8, !dbg !102 + %"$$cmul_24_679" = 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_679", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %c4, align 8, !dbg !102 + %"$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_667" + call void @_out_of_gas() + br label %"$have_gas_683" + +"$have_gas_683": ; preds = %"$out_of_gas_682", %"$have_gas_667" + %"$consume_684" = sub i64 %"$gasrem_680", 1 + store i64 %"$consume_684", i64* @_gasrem, align 8 %c16 = alloca { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, 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" + %"$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_683": ; preds = %"$have_gas_679" +"$out_of_gas_687": ; preds = %"$have_gas_683" call void @_out_of_gas() - br label %"$have_gas_684" + br label %"$have_gas_688" -"$have_gas_684": ; preds = %"$out_of_gas_683", %"$have_gas_679" - %"$consume_685" = sub i64 %"$gasrem_681", 1 - store i64 %"$consume_685", i64* @_gasrem, align 8 +"$have_gas_688": ; preds = %"$out_of_gas_687", %"$have_gas_683" + %"$consume_689" = sub i64 %"$gasrem_685", 1 + store i64 %"$consume_689", i64* @_gasrem, align 8 %"$cmul_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 - %"$cmul_686" = 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_687" = 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_686", 0 - %"$cmul_envptr_688" = 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_686", 1 - %"$c4_689" = 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_690" = 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_687"(i8* %"$cmul_envptr_688", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$c4_689"), !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* } %"$cmul_call_690", { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }* %"$cmul_25", align 8, !dbg !63 + %"$cmul_690" = 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_691" = 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_690", 0 + %"$cmul_envptr_692" = 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_690", 1 + %"$c4_693" = 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_694" = 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_691"(i8* %"$cmul_envptr_692", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$c4_693"), !dbg !103 + 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_694", { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }* %"$cmul_25", align 8, !dbg !103 %"$cmul_26" = alloca { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, align 8 - %"$$cmul_25_691" = 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_25", align 8 - %"$$cmul_25_fptr_692" = extractvalue { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$$cmul_25_691", 0 - %"$$cmul_25_envptr_693" = extractvalue { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$$cmul_25_691", 1 - %"$c4_694" = 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_25_call_695" = call { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$$cmul_25_fptr_692"(i8* %"$$cmul_25_envptr_693", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$c4_694"), !dbg !63 - store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$$cmul_25_call_695", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$cmul_26", align 8, !dbg !63 - %"$$cmul_26_696" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$cmul_26", align 8 - store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$$cmul_26_696", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %c16, align 8, !dbg !63 - %"$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 = %"$have_gas_684" - call void @_out_of_gas() - br label %"$have_gas_700" - -"$have_gas_700": ; preds = %"$out_of_gas_699", %"$have_gas_684" - %"$consume_701" = sub i64 %"$gasrem_697", 1 - store i64 %"$consume_701", i64* @_gasrem, align 8 + %"$$cmul_25_695" = 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_25", align 8 + %"$$cmul_25_fptr_696" = extractvalue { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$$cmul_25_695", 0 + %"$$cmul_25_envptr_697" = extractvalue { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$$cmul_25_695", 1 + %"$c4_698" = 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_25_call_699" = call { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$$cmul_25_fptr_696"(i8* %"$$cmul_25_envptr_697", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$c4_698"), !dbg !103 + store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$$cmul_25_call_699", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$cmul_26", align 8, !dbg !103 + %"$$cmul_26_700" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$cmul_26", align 8 + store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$$cmul_26_700", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %c16, align 8, !dbg !103 + %"$gasrem_701" = load i64, i64* @_gasrem, align 8 + %"$gascmp_702" = icmp ugt i64 1, %"$gasrem_701" + br i1 %"$gascmp_702", label %"$out_of_gas_703", label %"$have_gas_704" + +"$out_of_gas_703": ; preds = %"$have_gas_688" + call void @_out_of_gas() + br label %"$have_gas_704" + +"$have_gas_704": ; preds = %"$out_of_gas_703", %"$have_gas_688" + %"$consume_705" = sub i64 %"$gasrem_701", 1 + store i64 %"$consume_705", i64* @_gasrem, align 8 %c32 = alloca { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, align 8 - %"$gasrem_702" = load i64, i64* @_gasrem, align 8 - %"$gascmp_703" = icmp ugt i64 1, %"$gasrem_702" - br i1 %"$gascmp_703", label %"$out_of_gas_704", label %"$have_gas_705" + %"$gasrem_706" = load i64, i64* @_gasrem, align 8 + %"$gascmp_707" = icmp ugt i64 1, %"$gasrem_706" + br i1 %"$gascmp_707", label %"$out_of_gas_708", label %"$have_gas_709" -"$out_of_gas_704": ; preds = %"$have_gas_700" +"$out_of_gas_708": ; preds = %"$have_gas_704" call void @_out_of_gas() - br label %"$have_gas_705" + br label %"$have_gas_709" -"$have_gas_705": ; preds = %"$out_of_gas_704", %"$have_gas_700" - %"$consume_706" = sub i64 %"$gasrem_702", 1 - store i64 %"$consume_706", i64* @_gasrem, align 8 +"$have_gas_709": ; preds = %"$out_of_gas_708", %"$have_gas_704" + %"$consume_710" = sub i64 %"$gasrem_706", 1 + store i64 %"$consume_710", i64* @_gasrem, align 8 %"$cadd_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 - %"$cadd_707" = 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_708" = 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_707", 0 - %"$cadd_envptr_709" = 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_707", 1 - %"$c16_710" = 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_711" = 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_708"(i8* %"$cadd_envptr_709", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$c16_710"), !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* } %"$cadd_call_711", { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }* %"$cadd_27", align 8, !dbg !64 + %"$cadd_711" = 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_712" = 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_711", 0 + %"$cadd_envptr_713" = 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_711", 1 + %"$c16_714" = 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_715" = 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_712"(i8* %"$cadd_envptr_713", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$c16_714"), !dbg !104 + 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_715", { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }* %"$cadd_27", align 8, !dbg !104 %"$cadd_28" = alloca { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, align 8 - %"$$cadd_27_712" = 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_27", align 8 - %"$$cadd_27_fptr_713" = extractvalue { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$$cadd_27_712", 0 - %"$$cadd_27_envptr_714" = extractvalue { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$$cadd_27_712", 1 - %"$c16_715" = 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_27_call_716" = call { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$$cadd_27_fptr_713"(i8* %"$$cadd_27_envptr_714", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$c16_715"), !dbg !64 - store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$$cadd_27_call_716", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$cadd_28", align 8, !dbg !64 - %"$$cadd_28_717" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$cadd_28", align 8 - store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$$cadd_28_717", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %c32, align 8, !dbg !64 - %"$gasrem_718" = load i64, i64* @_gasrem, align 8 - %"$gascmp_719" = icmp ugt i64 1, %"$gasrem_718" - br i1 %"$gascmp_719", label %"$out_of_gas_720", label %"$have_gas_721" - -"$out_of_gas_720": ; preds = %"$have_gas_705" - call void @_out_of_gas() - br label %"$have_gas_721" - -"$have_gas_721": ; preds = %"$out_of_gas_720", %"$have_gas_705" - %"$consume_722" = sub i64 %"$gasrem_718", 1 - store i64 %"$consume_722", i64* @_gasrem, align 8 + %"$$cadd_27_716" = 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_27", align 8 + %"$$cadd_27_fptr_717" = extractvalue { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$$cadd_27_716", 0 + %"$$cadd_27_envptr_718" = extractvalue { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$$cadd_27_716", 1 + %"$c16_719" = 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_27_call_720" = call { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$$cadd_27_fptr_717"(i8* %"$$cadd_27_envptr_718", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$c16_719"), !dbg !104 + store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$$cadd_27_call_720", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$cadd_28", align 8, !dbg !104 + %"$$cadd_28_721" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$cadd_28", align 8 + store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$$cadd_28_721", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %c32, align 8, !dbg !104 + %"$gasrem_722" = load i64, i64* @_gasrem, align 8 + %"$gascmp_723" = icmp ugt i64 1, %"$gasrem_722" + br i1 %"$gascmp_723", label %"$out_of_gas_724", label %"$have_gas_725" + +"$out_of_gas_724": ; preds = %"$have_gas_709" + call void @_out_of_gas() + br label %"$have_gas_725" + +"$have_gas_725": ; preds = %"$out_of_gas_724", %"$have_gas_709" + %"$consume_726" = sub i64 %"$gasrem_722", 1 + store i64 %"$consume_726", i64* @_gasrem, align 8 %c128 = alloca { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, align 8 - %"$gasrem_723" = load i64, i64* @_gasrem, align 8 - %"$gascmp_724" = icmp ugt i64 1, %"$gasrem_723" - br i1 %"$gascmp_724", label %"$out_of_gas_725", label %"$have_gas_726" + %"$gasrem_727" = load i64, i64* @_gasrem, align 8 + %"$gascmp_728" = icmp ugt i64 1, %"$gasrem_727" + br i1 %"$gascmp_728", label %"$out_of_gas_729", label %"$have_gas_730" -"$out_of_gas_725": ; preds = %"$have_gas_721" +"$out_of_gas_729": ; preds = %"$have_gas_725" call void @_out_of_gas() - br label %"$have_gas_726" + br label %"$have_gas_730" -"$have_gas_726": ; preds = %"$out_of_gas_725", %"$have_gas_721" - %"$consume_727" = sub i64 %"$gasrem_723", 1 - store i64 %"$consume_727", i64* @_gasrem, align 8 +"$have_gas_730": ; preds = %"$out_of_gas_729", %"$have_gas_725" + %"$consume_731" = sub i64 %"$gasrem_727", 1 + store i64 %"$consume_731", i64* @_gasrem, align 8 %"$cmul_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 - %"$cmul_728" = 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_729" = 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_728", 0 - %"$cmul_envptr_730" = 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_728", 1 - %"$c4_731" = 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_732" = 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_729"(i8* %"$cmul_envptr_730", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$c4_731"), !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* } %"$cmul_call_732", { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }* %"$cmul_29", align 8, !dbg !65 + %"$cmul_732" = 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_733" = 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_732", 0 + %"$cmul_envptr_734" = 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_732", 1 + %"$c4_735" = 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_736" = 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_733"(i8* %"$cmul_envptr_734", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$c4_735"), !dbg !105 + 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_736", { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }* %"$cmul_29", align 8, !dbg !105 %"$cmul_30" = alloca { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, align 8 - %"$$cmul_29_733" = 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_29", align 8 - %"$$cmul_29_fptr_734" = extractvalue { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$$cmul_29_733", 0 - %"$$cmul_29_envptr_735" = extractvalue { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$$cmul_29_733", 1 - %"$c32_736" = 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_29_call_737" = call { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$$cmul_29_fptr_734"(i8* %"$$cmul_29_envptr_735", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$c32_736"), !dbg !65 - store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$$cmul_29_call_737", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$cmul_30", align 8, !dbg !65 - %"$$cmul_30_738" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$cmul_30", align 8 - store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$$cmul_30_738", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %c128, align 8, !dbg !65 - %"$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_726" - call void @_out_of_gas() - br label %"$have_gas_742" - -"$have_gas_742": ; preds = %"$out_of_gas_741", %"$have_gas_726" - %"$consume_743" = sub i64 %"$gasrem_739", 1 - store i64 %"$consume_743", i64* @_gasrem, align 8 + %"$$cmul_29_737" = 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_29", align 8 + %"$$cmul_29_fptr_738" = extractvalue { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$$cmul_29_737", 0 + %"$$cmul_29_envptr_739" = extractvalue { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$$cmul_29_737", 1 + %"$c32_740" = 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_29_call_741" = call { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$$cmul_29_fptr_738"(i8* %"$$cmul_29_envptr_739", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$c32_740"), !dbg !105 + store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$$cmul_29_call_741", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$cmul_30", align 8, !dbg !105 + %"$$cmul_30_742" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$cmul_30", align 8 + store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$$cmul_30_742", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %c128, align 8, !dbg !105 + %"$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_730" + call void @_out_of_gas() + br label %"$have_gas_746" + +"$have_gas_746": ; preds = %"$out_of_gas_745", %"$have_gas_730" + %"$consume_747" = sub i64 %"$gasrem_743", 1 + store i64 %"$consume_747", i64* @_gasrem, align 8 %c256 = alloca { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, 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" + %"$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_746": ; preds = %"$have_gas_742" +"$out_of_gas_750": ; preds = %"$have_gas_746" call void @_out_of_gas() - br label %"$have_gas_747" + br label %"$have_gas_751" -"$have_gas_747": ; preds = %"$out_of_gas_746", %"$have_gas_742" - %"$consume_748" = sub i64 %"$gasrem_744", 1 - store i64 %"$consume_748", i64* @_gasrem, align 8 +"$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 %"$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_749" = 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_750" = 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_749", 0 - %"$cadd_envptr_751" = 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_749", 1 - %"$c128_752" = 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_753" = 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_750"(i8* %"$cadd_envptr_751", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$c128_752"), !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* } %"$cadd_call_753", { { { %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 !66 + %"$cadd_753" = 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_754" = 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_753", 0 + %"$cadd_envptr_755" = 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_753", 1 + %"$c128_756" = 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_757" = 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_754"(i8* %"$cadd_envptr_755", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$c128_756"), !dbg !106 + 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_757", { { { %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 !106 %"$cadd_32" = alloca { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, align 8 - %"$$cadd_31_754" = 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_755" = 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_754", 0 - %"$$cadd_31_envptr_756" = 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_754", 1 - %"$c128_757" = 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_31_call_758" = call { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$$cadd_31_fptr_755"(i8* %"$$cadd_31_envptr_756", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$c128_757"), !dbg !66 - store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$$cadd_31_call_758", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$cadd_32", align 8, !dbg !66 - %"$$cadd_32_759" = 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_759", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %c256, align 8, !dbg !66 - %"$gasrem_760" = load i64, i64* @_gasrem, align 8 - %"$gascmp_761" = icmp ugt i64 1, %"$gasrem_760" - br i1 %"$gascmp_761", label %"$out_of_gas_762", label %"$have_gas_763" - -"$out_of_gas_762": ; preds = %"$have_gas_747" - call void @_out_of_gas() - br label %"$have_gas_763" - -"$have_gas_763": ; preds = %"$out_of_gas_762", %"$have_gas_747" - %"$consume_764" = sub i64 %"$gasrem_760", 1 - store i64 %"$consume_764", i64* @_gasrem, align 8 + %"$$cadd_31_758" = 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_759" = 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_758", 0 + %"$$cadd_31_envptr_760" = 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_758", 1 + %"$c128_761" = 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_31_call_762" = call { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$$cadd_31_fptr_759"(i8* %"$$cadd_31_envptr_760", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$c128_761"), !dbg !106 + store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$$cadd_31_call_762", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$cadd_32", align 8, !dbg !106 + %"$$cadd_32_763" = 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_763", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %c256, align 8, !dbg !106 + %"$gasrem_764" = load i64, i64* @_gasrem, align 8 + %"$gascmp_765" = icmp ugt i64 1, %"$gasrem_764" + br i1 %"$gascmp_765", label %"$out_of_gas_766", label %"$have_gas_767" + +"$out_of_gas_766": ; preds = %"$have_gas_751" + call void @_out_of_gas() + br label %"$have_gas_767" + +"$have_gas_767": ; preds = %"$out_of_gas_766", %"$have_gas_751" + %"$consume_768" = sub i64 %"$gasrem_764", 1 + store i64 %"$consume_768", i64* @_gasrem, align 8 %c65536 = alloca { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, align 8 - %"$gasrem_765" = load i64, i64* @_gasrem, align 8 - %"$gascmp_766" = icmp ugt i64 1, %"$gasrem_765" - br i1 %"$gascmp_766", label %"$out_of_gas_767", label %"$have_gas_768" + %"$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_767": ; preds = %"$have_gas_763" +"$out_of_gas_771": ; preds = %"$have_gas_767" call void @_out_of_gas() - br label %"$have_gas_768" + br label %"$have_gas_772" -"$have_gas_768": ; preds = %"$out_of_gas_767", %"$have_gas_763" - %"$consume_769" = sub i64 %"$gasrem_765", 1 - store i64 %"$consume_769", i64* @_gasrem, align 8 +"$have_gas_772": ; preds = %"$out_of_gas_771", %"$have_gas_767" + %"$consume_773" = sub i64 %"$gasrem_769", 1 + store i64 %"$consume_773", i64* @_gasrem, align 8 %"$cmul_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 - %"$cmul_770" = 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_771" = 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_770", 0 - %"$cmul_envptr_772" = 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_770", 1 - %"$c256_773" = 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_774" = 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_771"(i8* %"$cmul_envptr_772", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$c256_773"), !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* } %"$cmul_call_774", { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }* %"$cmul_33", align 8, !dbg !67 + %"$cmul_774" = 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_775" = 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_774", 0 + %"$cmul_envptr_776" = 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_774", 1 + %"$c256_777" = 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_778" = 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_775"(i8* %"$cmul_envptr_776", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$c256_777"), !dbg !107 + 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_778", { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }* %"$cmul_33", align 8, !dbg !107 %"$cmul_34" = alloca { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, align 8 - %"$$cmul_33_775" = 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_33", align 8 - %"$$cmul_33_fptr_776" = extractvalue { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$$cmul_33_775", 0 - %"$$cmul_33_envptr_777" = extractvalue { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$$cmul_33_775", 1 - %"$c256_778" = 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_33_call_779" = call { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$$cmul_33_fptr_776"(i8* %"$$cmul_33_envptr_777", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$c256_778"), !dbg !67 - store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$$cmul_33_call_779", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$cmul_34", align 8, !dbg !67 - %"$$cmul_34_780" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$cmul_34", align 8 - store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$$cmul_34_780", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %c65536, align 8, !dbg !67 - %"$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 = %"$have_gas_768" - call void @_out_of_gas() - br label %"$have_gas_784" - -"$have_gas_784": ; preds = %"$out_of_gas_783", %"$have_gas_768" - %"$consume_785" = sub i64 %"$gasrem_781", 1 - store i64 %"$consume_785", i64* @_gasrem, align 8 + %"$$cmul_33_779" = 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_33", align 8 + %"$$cmul_33_fptr_780" = extractvalue { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$$cmul_33_779", 0 + %"$$cmul_33_envptr_781" = extractvalue { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$$cmul_33_779", 1 + %"$c256_782" = 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_33_call_783" = call { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$$cmul_33_fptr_780"(i8* %"$$cmul_33_envptr_781", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$c256_782"), !dbg !107 + store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$$cmul_33_call_783", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$cmul_34", align 8, !dbg !107 + %"$$cmul_34_784" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$cmul_34", align 8 + store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$$cmul_34_784", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %c65536, align 8, !dbg !107 + %"$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 %c131072 = alloca { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, align 8 - %"$gasrem_786" = load i64, i64* @_gasrem, align 8 - %"$gascmp_787" = icmp ugt i64 1, %"$gasrem_786" - br i1 %"$gascmp_787", label %"$out_of_gas_788", label %"$have_gas_789" + %"$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" -"$out_of_gas_788": ; preds = %"$have_gas_784" +"$out_of_gas_792": ; preds = %"$have_gas_788" call void @_out_of_gas() - br label %"$have_gas_789" + br label %"$have_gas_793" -"$have_gas_789": ; preds = %"$out_of_gas_788", %"$have_gas_784" - %"$consume_790" = sub i64 %"$gasrem_786", 1 - store i64 %"$consume_790", i64* @_gasrem, align 8 +"$have_gas_793": ; preds = %"$out_of_gas_792", %"$have_gas_788" + %"$consume_794" = sub i64 %"$gasrem_790", 1 + store i64 %"$consume_794", i64* @_gasrem, align 8 %"$cadd_35" = 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_791" = 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_792" = 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_791", 0 - %"$cadd_envptr_793" = 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_791", 1 - %"$c65536_794" = 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_795" = 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_792"(i8* %"$cadd_envptr_793", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$c65536_794"), !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* } %"$cadd_call_795", { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }* %"$cadd_35", align 8, !dbg !68 + %"$cadd_795" = 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_796" = 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_795", 0 + %"$cadd_envptr_797" = 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_795", 1 + %"$c65536_798" = 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_799" = 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_796"(i8* %"$cadd_envptr_797", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$c65536_798"), !dbg !108 + 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_799", { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }* %"$cadd_35", align 8, !dbg !108 %"$cadd_36" = alloca { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, align 8 - %"$$cadd_35_796" = 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_35", align 8 - %"$$cadd_35_fptr_797" = extractvalue { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$$cadd_35_796", 0 - %"$$cadd_35_envptr_798" = extractvalue { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$$cadd_35_796", 1 - %"$c65536_799" = 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_35_call_800" = call { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$$cadd_35_fptr_797"(i8* %"$$cadd_35_envptr_798", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$c65536_799"), !dbg !68 - store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$$cadd_35_call_800", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$cadd_36", align 8, !dbg !68 - %"$$cadd_36_801" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$cadd_36", align 8 - store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$$cadd_36_801", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %c131072, align 8, !dbg !68 - %"$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_789" - call void @_out_of_gas() - br label %"$have_gas_805" - -"$have_gas_805": ; preds = %"$out_of_gas_804", %"$have_gas_789" - %"$consume_806" = sub i64 %"$gasrem_802", 1 - store i64 %"$consume_806", i64* @_gasrem, align 8 + %"$$cadd_35_800" = 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_35", align 8 + %"$$cadd_35_fptr_801" = extractvalue { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$$cadd_35_800", 0 + %"$$cadd_35_envptr_802" = extractvalue { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$$cadd_35_800", 1 + %"$c65536_803" = 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_35_call_804" = call { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$$cadd_35_fptr_801"(i8* %"$$cadd_35_envptr_802", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$c65536_803"), !dbg !108 + store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$$cadd_35_call_804", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$cadd_36", align 8, !dbg !108 + %"$$cadd_36_805" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$cadd_36", align 8 + store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$$cadd_36_805", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %c131072, align 8, !dbg !108 + %"$gasrem_806" = load i64, i64* @_gasrem, align 8 + %"$gascmp_807" = icmp ugt i64 1, %"$gasrem_806" + br i1 %"$gascmp_807", label %"$out_of_gas_808", label %"$have_gas_809" + +"$out_of_gas_808": ; preds = %"$have_gas_793" + call void @_out_of_gas() + br label %"$have_gas_809" + +"$have_gas_809": ; preds = %"$out_of_gas_808", %"$have_gas_793" + %"$consume_810" = sub i64 %"$gasrem_806", 1 + store i64 %"$consume_810", i64* @_gasrem, align 8 %c27 = alloca { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, align 8 - %"$gasrem_807" = load i64, i64* @_gasrem, align 8 - %"$gascmp_808" = icmp ugt i64 1, %"$gasrem_807" - br i1 %"$gascmp_808", label %"$out_of_gas_809", label %"$have_gas_810" + %"$gasrem_811" = load i64, i64* @_gasrem, align 8 + %"$gascmp_812" = icmp ugt i64 1, %"$gasrem_811" + br i1 %"$gascmp_812", label %"$out_of_gas_813", label %"$have_gas_814" -"$out_of_gas_809": ; preds = %"$have_gas_805" +"$out_of_gas_813": ; preds = %"$have_gas_809" call void @_out_of_gas() - br label %"$have_gas_810" + br label %"$have_gas_814" -"$have_gas_810": ; preds = %"$out_of_gas_809", %"$have_gas_805" - %"$consume_811" = sub i64 %"$gasrem_807", 1 - store i64 %"$consume_811", i64* @_gasrem, align 8 +"$have_gas_814": ; preds = %"$out_of_gas_813", %"$have_gas_809" + %"$consume_815" = sub i64 %"$gasrem_811", 1 + store i64 %"$consume_815", i64* @_gasrem, align 8 %"$cexp_37" = 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_812" = 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_813" = 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_812", 0 - %"$cexp_envptr_814" = 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_812", 1 - %"$c3_815" = 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_816" = 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_813"(i8* %"$cexp_envptr_814", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$c3_815"), !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*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* })*, i8* } %"$cexp_call_816", { { { %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_37", align 8, !dbg !69 + %"$cexp_816" = 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_817" = 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_816", 0 + %"$cexp_envptr_818" = 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_816", 1 + %"$c3_819" = 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_820" = 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_817"(i8* %"$cexp_envptr_818", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$c3_819"), !dbg !109 + 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_820", { { { %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_37", align 8, !dbg !109 %"$cexp_38" = alloca { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, align 8 - %"$$cexp_37_817" = 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_37", align 8 - %"$$cexp_37_fptr_818" = 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_37_817", 0 - %"$$cexp_37_envptr_819" = 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_37_817", 1 - %"$c3__820" = 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_37_call_821" = call { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$$cexp_37_fptr_818"(i8* %"$$cexp_37_envptr_819", { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$c3__820"), !dbg !69 - store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$$cexp_37_call_821", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$cexp_38", align 8, !dbg !69 - %"$$cexp_38_822" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$cexp_38", align 8 - store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$$cexp_38_822", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %c27, align 8, !dbg !69 - %"$gasrem_823" = load i64, i64* @_gasrem, align 8 - %"$gascmp_824" = icmp ugt i64 1, %"$gasrem_823" - br i1 %"$gascmp_824", label %"$out_of_gas_825", label %"$have_gas_826" - -"$out_of_gas_825": ; preds = %"$have_gas_810" - call void @_out_of_gas() - br label %"$have_gas_826" - -"$have_gas_826": ; preds = %"$out_of_gas_825", %"$have_gas_810" - %"$consume_827" = sub i64 %"$gasrem_823", 1 - store i64 %"$consume_827", i64* @_gasrem, align 8 + %"$$cexp_37_821" = 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_37", align 8 + %"$$cexp_37_fptr_822" = 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_37_821", 0 + %"$$cexp_37_envptr_823" = 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_37_821", 1 + %"$c3__824" = 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_37_call_825" = call { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$$cexp_37_fptr_822"(i8* %"$$cexp_37_envptr_823", { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$c3__824"), !dbg !109 + store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$$cexp_37_call_825", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$cexp_38", align 8, !dbg !109 + %"$$cexp_38_826" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$cexp_38", align 8 + store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$$cexp_38_826", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %c27, align 8, !dbg !109 + %"$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 = %"$have_gas_814" + call void @_out_of_gas() + br label %"$have_gas_830" + +"$have_gas_830": ; preds = %"$out_of_gas_829", %"$have_gas_814" + %"$consume_831" = sub i64 %"$gasrem_827", 1 + store i64 %"$consume_831", i64* @_gasrem, align 8 %c131099 = alloca { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, 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" + %"$gasrem_832" = load i64, i64* @_gasrem, align 8 + %"$gascmp_833" = icmp ugt i64 1, %"$gasrem_832" + br i1 %"$gascmp_833", label %"$out_of_gas_834", label %"$have_gas_835" -"$out_of_gas_830": ; preds = %"$have_gas_826" +"$out_of_gas_834": ; preds = %"$have_gas_830" call void @_out_of_gas() - br label %"$have_gas_831" + br label %"$have_gas_835" -"$have_gas_831": ; preds = %"$out_of_gas_830", %"$have_gas_826" - %"$consume_832" = sub i64 %"$gasrem_828", 1 - store i64 %"$consume_832", i64* @_gasrem, align 8 +"$have_gas_835": ; preds = %"$out_of_gas_834", %"$have_gas_830" + %"$consume_836" = sub i64 %"$gasrem_832", 1 + store i64 %"$consume_836", i64* @_gasrem, align 8 %"$cadd_39" = 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_833" = 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_834" = 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_833", 0 - %"$cadd_envptr_835" = 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_833", 1 - %"$c131072_836" = 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_837" = 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_834"(i8* %"$cadd_envptr_835", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$c131072_836"), !dbg !70 - 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_837", { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }* %"$cadd_39", align 8, !dbg !70 + %"$cadd_837" = 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_838" = 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_837", 0 + %"$cadd_envptr_839" = 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_837", 1 + %"$c131072_840" = 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_841" = 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_838"(i8* %"$cadd_envptr_839", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$c131072_840"), !dbg !110 + 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_841", { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }* %"$cadd_39", align 8, !dbg !110 %"$cadd_40" = alloca { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, align 8 - %"$$cadd_39_838" = 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_39", align 8 - %"$$cadd_39_fptr_839" = extractvalue { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$$cadd_39_838", 0 - %"$$cadd_39_envptr_840" = extractvalue { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$$cadd_39_838", 1 - %"$c27_841" = 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_39_call_842" = call { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$$cadd_39_fptr_839"(i8* %"$$cadd_39_envptr_840", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$c27_841"), !dbg !70 - store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$$cadd_39_call_842", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$cadd_40", align 8, !dbg !70 - %"$$cadd_40_843" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$cadd_40", align 8 - store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$$cadd_40_843", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %c131099, align 8, !dbg !70 - %"$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_846": ; preds = %"$have_gas_831" - call void @_out_of_gas() - br label %"$have_gas_847" - -"$have_gas_847": ; preds = %"$out_of_gas_846", %"$have_gas_831" - %"$consume_848" = sub i64 %"$gasrem_844", 1 - store i64 %"$consume_848", i64* @_gasrem, align 8 + %"$$cadd_39_842" = 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_39", align 8 + %"$$cadd_39_fptr_843" = extractvalue { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$$cadd_39_842", 0 + %"$$cadd_39_envptr_844" = extractvalue { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$$cadd_39_842", 1 + %"$c27_845" = 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_39_call_846" = call { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$$cadd_39_fptr_843"(i8* %"$$cadd_39_envptr_844", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$c27_845"), !dbg !110 + store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$$cadd_39_call_846", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$cadd_40", align 8, !dbg !110 + %"$$cadd_40_847" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$cadd_40", align 8 + store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$$cadd_40_847", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %c131099, align 8, !dbg !110 + %"$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 = %"$have_gas_835" + call void @_out_of_gas() + br label %"$have_gas_851" + +"$have_gas_851": ; preds = %"$out_of_gas_850", %"$have_gas_835" + %"$consume_852" = sub i64 %"$gasrem_848", 1 + store i64 %"$consume_852", i64* @_gasrem, align 8 %"$church_nat_to_uint32_41" = alloca %Uint32, align 8 - %"$church_nat_to_uint32_849" = 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_850" = extractvalue { %Uint32 (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$church_nat_to_uint32_849", 0 - %"$church_nat_to_uint32_envptr_851" = extractvalue { %Uint32 (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$church_nat_to_uint32_849", 1 - %"$c131099_852" = 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_853" = call %Uint32 %"$church_nat_to_uint32_fptr_850"(i8* %"$church_nat_to_uint32_envptr_851", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$c131099_852"), !dbg !71 - store %Uint32 %"$church_nat_to_uint32_call_853", %Uint32* %"$church_nat_to_uint32_41", align 4, !dbg !71 - %"$$church_nat_to_uint32_41_854" = load %Uint32, %Uint32* %"$church_nat_to_uint32_41", align 4 - store %Uint32 %"$$church_nat_to_uint32_41_854", %Uint32* %"$expr_42", align 4, !dbg !71 - %"$$expr_42_855" = load %Uint32, %Uint32* %"$expr_42", align 4 - ret %Uint32 %"$$expr_42_855" + call void @llvm.dbg.declare(metadata %Uint32* %"$church_nat_to_uint32_41", metadata !111, metadata !DIExpression()), !dbg !112 + %"$church_nat_to_uint32_853" = 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_854" = extractvalue { %Uint32 (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$church_nat_to_uint32_853", 0 + %"$church_nat_to_uint32_envptr_855" = extractvalue { %Uint32 (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$church_nat_to_uint32_853", 1 + %"$c131099_856" = 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_857" = call %Uint32 %"$church_nat_to_uint32_fptr_854"(i8* %"$church_nat_to_uint32_envptr_855", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$c131099_856"), !dbg !112 + store %Uint32 %"$church_nat_to_uint32_call_857", %Uint32* %"$church_nat_to_uint32_41", align 4, !dbg !112 + %"$$church_nat_to_uint32_41_858" = load %Uint32, %Uint32* %"$church_nat_to_uint32_41", align 4 + store %Uint32 %"$$church_nat_to_uint32_41_858", %Uint32* %"$expr_42", align 4, !dbg !112 + %"$$expr_42_859" = load %Uint32, %Uint32* %"$expr_42", align 4 + ret %Uint32 %"$$expr_42_859" } declare void @_print_scilla_val(i8*, %_TyDescrTy_Typ*, i8*) define void @scilla_main() { entry: - %"$exprval_856" = call %Uint32 @_scilla_expr_fun(i8* null) - %"$pval_857" = alloca %Uint32, align 8 - %"$memvoidcast_858" = bitcast %Uint32* %"$pval_857" to i8* - store %Uint32 %"$exprval_856", %Uint32* %"$pval_857", align 4 - %"$execptr_load_859" = load i8*, i8** @_execptr, align 8 - call void @_print_scilla_val(i8* %"$execptr_load_859", %_TyDescrTy_Typ* @"$TyDescr_Uint32_81", i8* %"$memvoidcast_858") + %"$exprval_860" = call %Uint32 @_scilla_expr_fun(i8* null) + %"$pval_861" = alloca %Uint32, align 8 + %"$memvoidcast_862" = bitcast %Uint32* %"$pval_861" to i8* + store %Uint32 %"$exprval_860", %Uint32* %"$pval_861", align 4 + %"$execptr_load_863" = load i8*, i8** @_execptr, align 8 + call void @_print_scilla_val(i8* %"$execptr_load_863", %_TyDescrTy_Typ* @"$TyDescr_Uint32_81", i8* %"$memvoidcast_862") ret void } +attributes #0 = { nocallback nofree nosync nounwind readnone speculatable willreturn } + !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) +!1 = distinct !DICompileUnit(language: DW_LANG_C89, file: !2, producer: "Scilla Compiler", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false) !2 = !DIFile(filename: "church_nat_stlc.scilexp", directory: "codegen/expr") -!3 = !{} -!4 = distinct !DISubprogram(name: "$fundef_75", linkageName: "$fundef_75", 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_73", linkageName: "$fundef_73", 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_71", linkageName: "$fundef_71", scope: !2, file: !2, line: 39, type: !5, scopeLine: 39, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!15 = !DILocation(line: 39, column: 3, scope: !14) -!16 = distinct !DISubprogram(name: "$fundef_69", linkageName: "$fundef_69", 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_67", linkageName: "$fundef_67", 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_65", linkageName: "$fundef_65", 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_63", linkageName: "$fundef_63", 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_61", linkageName: "$fundef_61", 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_59", linkageName: "$fundef_59", 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_57", linkageName: "$fundef_57", 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_55", linkageName: "$fundef_55", 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_53", linkageName: "$fundef_53", 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_51", linkageName: "$fundef_51", 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_49", linkageName: "$fundef_49", 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_47", linkageName: "$fundef_47", 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_45", linkageName: "$fundef_45", 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_43", linkageName: "$fundef_43", 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 = !DILocation(line: 0, scope: !51) -!54 = 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) -!55 = !DILocation(line: 9, column: 40, scope: !54) -!56 = !DILocation(line: 11, column: 40, scope: !54) -!57 = !DILocation(line: 14, column: 65, scope: !54) -!58 = !DILocation(line: 20, column: 3, scope: !54) -!59 = !DILocation(line: 29, column: 3, scope: !54) -!60 = !DILocation(line: 38, column: 3, scope: !54) -!61 = !DILocation(line: 45, column: 5, scope: !54) -!62 = !DILocation(line: 51, column: 10, scope: !54) -!63 = !DILocation(line: 52, column: 11, scope: !54) -!64 = !DILocation(line: 53, column: 11, scope: !54) -!65 = !DILocation(line: 54, column: 12, scope: !54) -!66 = !DILocation(line: 55, column: 12, scope: !54) -!67 = !DILocation(line: 56, column: 14, scope: !54) -!68 = !DILocation(line: 57, column: 15, scope: !54) -!69 = !DILocation(line: 58, column: 11, scope: !54) -!70 = !DILocation(line: 59, column: 15, scope: !54) -!71 = !DILocation(line: 60, column: 1, scope: !54) +!3 = distinct !DISubprogram(name: "$fundef_75", linkageName: "$fundef_75", scope: !2, file: !2, line: 47, type: !4, scopeLine: 47, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!4 = !DISubroutineType(types: !5) +!5 = !{!6} +!6 = !DIBasicType(tag: DW_TAG_unspecified_type, name: "void") +!7 = !{} +!8 = !DILocalVariable(name: "x", scope: !3, file: !2, line: 47, type: !9) +!9 = !DIBasicType(name: "Uint32", size: 4) +!10 = !DILocation(line: 47, column: 21, scope: !3) +!11 = !DILocalVariable(name: "$retval_76", scope: !3, file: !2, line: 47, type: !9) +!12 = !DILocation(line: 47, column: 36, scope: !3) +!13 = distinct !DISubprogram(name: "$fundef_73", linkageName: "$fundef_73", scope: !2, file: !2, line: 45, type: !4, scopeLine: 45, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!14 = !DILocalVariable(name: "$retval_74", scope: !13, file: !2, line: 45, type: !9) +!15 = !DILocation(line: 45, column: 5, scope: !13) +!16 = !DILocalVariable(name: "zero", scope: !13, file: !2, line: 45, type: !9) +!17 = !DILocation(line: 45, column: 9, scope: !13) +!18 = !DILocation(line: 45, column: 16, scope: !13) +!19 = !DILocalVariable(name: "one", scope: !13, file: !2, line: 46, type: !9) +!20 = !DILocation(line: 46, column: 9, scope: !13) +!21 = !DILocation(line: 46, column: 15, scope: !13) +!22 = !DILocation(line: 47, column: 36, scope: !13) +!23 = !DILocation(line: 48, column: 5, scope: !13) +!24 = !DILocalVariable(name: "$c_22", scope: !13, file: !2, line: 48, type: !9) +!25 = distinct !DISubprogram(name: "$fundef_71", linkageName: "$fundef_71", scope: !2, file: !2, line: 39, type: !4, scopeLine: 39, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!26 = !DILocation(line: 39, column: 3, scope: !25) +!27 = distinct !DISubprogram(name: "$fundef_69", linkageName: "$fundef_69", scope: !2, file: !2, line: 38, type: !4, scopeLine: 38, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!28 = !DILocation(line: 39, column: 3, scope: !27) +!29 = distinct !DISubprogram(name: "$fundef_67", linkageName: "$fundef_67", scope: !2, file: !2, line: 31, type: !4, scopeLine: 31, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!30 = !DILocation(line: 31, column: 15, scope: !29) +!31 = !DILocation(line: 32, column: 3, scope: !29) +!32 = distinct !DISubprogram(name: "$fundef_65", linkageName: "$fundef_65", scope: !2, file: !2, line: 30, type: !4, scopeLine: 30, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!33 = !DILocation(line: 31, column: 3, scope: !32) +!34 = distinct !DISubprogram(name: "$fundef_63", linkageName: "$fundef_63", scope: !2, file: !2, line: 29, type: !4, scopeLine: 29, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!35 = !DILocation(line: 30, column: 3, scope: !34) +!36 = distinct !DISubprogram(name: "$fundef_61", linkageName: "$fundef_61", scope: !2, file: !2, line: 23, type: !4, scopeLine: 23, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!37 = !DILocalVariable(name: "z", scope: !36, file: !2, line: 22, type: !9) +!38 = !DILocation(line: 22, column: 8, scope: !36) +!39 = !DILocalVariable(name: "$retval_62", scope: !36, file: !2, line: 23, type: !9) +!40 = !DILocation(line: 23, column: 3, scope: !36) +!41 = !DILocalVariable(name: "nsz", scope: !36, file: !2, line: 23, type: !9) +!42 = !DILocation(line: 23, column: 7, scope: !36) +!43 = !DILocation(line: 23, column: 13, scope: !36) +!44 = !DILocalVariable(name: "$n_15", scope: !36, file: !2, line: 23, type: !9) +!45 = !DILocation(line: 24, column: 3, scope: !36) +!46 = !DILocalVariable(name: "$m_17", scope: !36, file: !2, line: 24, type: !9) +!47 = distinct !DISubprogram(name: "$fundef_59", linkageName: "$fundef_59", scope: !2, file: !2, line: 22, type: !4, scopeLine: 22, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!48 = !DILocation(line: 23, column: 3, scope: !47) +!49 = distinct !DISubprogram(name: "$fundef_57", linkageName: "$fundef_57", scope: !2, file: !2, line: 21, type: !4, scopeLine: 21, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!50 = !DILocation(line: 22, column: 3, scope: !49) +!51 = distinct !DISubprogram(name: "$fundef_55", linkageName: "$fundef_55", scope: !2, file: !2, line: 20, type: !4, scopeLine: 20, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!52 = !DILocation(line: 21, column: 3, scope: !51) +!53 = distinct !DISubprogram(name: "$fundef_53", linkageName: "$fundef_53", scope: !2, file: !2, line: 14, type: !4, scopeLine: 14, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!54 = !DILocation(line: 14, column: 104, scope: !53) +!55 = !DILocation(line: 14, column: 121, scope: !53) +!56 = !DILocation(line: 14, column: 129, scope: !53) +!57 = distinct !DISubprogram(name: "$fundef_51", linkageName: "$fundef_51", scope: !2, file: !2, line: 14, type: !4, scopeLine: 14, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!58 = !DILocation(line: 14, column: 95, scope: !57) +!59 = distinct !DISubprogram(name: "$fundef_49", linkageName: "$fundef_49", scope: !2, file: !2, line: 11, type: !4, scopeLine: 11, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!60 = !DILocalVariable(name: "z", scope: !59, file: !2, line: 11, type: !9) +!61 = !DILocation(line: 11, column: 45, scope: !59) +!62 = !DILocalVariable(name: "$retval_50", scope: !59, file: !2, line: 11, type: !9) +!63 = !DILocation(line: 11, column: 60, scope: !59) +!64 = !DILocalVariable(name: "sz", scope: !59, file: !2, line: 11, type: !9) +!65 = !DILocation(line: 11, column: 64, scope: !59) +!66 = !DILocalVariable(name: "$s_8", scope: !59, file: !2, line: 11, type: !9) +!67 = !DILocation(line: 11, column: 69, scope: !59) +!68 = !DILocalVariable(name: "ssz", scope: !59, file: !2, line: 11, type: !9) +!69 = !DILocation(line: 11, column: 80, scope: !59) +!70 = !DILocalVariable(name: "$s_9", scope: !59, file: !2, line: 11, type: !9) +!71 = !DILocation(line: 11, column: 86, scope: !59) +!72 = !DILocalVariable(name: "$s_10", scope: !59, file: !2, line: 11, type: !9) +!73 = !DILocation(line: 11, column: 94, scope: !59) +!74 = distinct !DISubprogram(name: "$fundef_47", linkageName: "$fundef_47", scope: !2, file: !2, line: 11, type: !4, scopeLine: 11, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!75 = !DILocation(line: 11, column: 60, scope: !74) +!76 = distinct !DISubprogram(name: "$fundef_45", linkageName: "$fundef_45", scope: !2, file: !2, line: 9, type: !4, scopeLine: 9, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!77 = !DILocalVariable(name: "z", scope: !76, file: !2, line: 9, type: !9) +!78 = !DILocation(line: 9, column: 45, scope: !76) +!79 = !DILocalVariable(name: "$retval_46", scope: !76, file: !2, line: 9, type: !9) +!80 = !DILocation(line: 9, column: 60, scope: !76) +!81 = !DILocalVariable(name: "sz", scope: !76, file: !2, line: 9, type: !9) +!82 = !DILocation(line: 9, column: 64, scope: !76) +!83 = !DILocalVariable(name: "$s_6", scope: !76, file: !2, line: 9, type: !9) +!84 = !DILocation(line: 9, column: 69, scope: !76) +!85 = !DILocalVariable(name: "$s_7", scope: !76, file: !2, line: 9, type: !9) +!86 = !DILocation(line: 9, column: 76, scope: !76) +!87 = distinct !DISubprogram(name: "$fundef_43", linkageName: "$fundef_43", scope: !2, file: !2, line: 9, type: !4, scopeLine: 9, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!88 = !DILocation(line: 9, column: 60, scope: !87) +!89 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !90, file: !90, type: !4, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!90 = !DIFile(filename: ".", directory: ".") +!91 = !DILocation(line: 0, scope: !89) +!92 = distinct !DISubprogram(name: "_scilla_expr_fun", linkageName: "_scilla_expr_fun", scope: !2, file: !2, line: 3, type: !4, scopeLine: 3, spFlags: DISPFlagDefinition, unit: !1, retainedNodes: !7) +!93 = !DILocalVariable(name: "$expr_42", scope: !92, file: !2, line: 3, type: !9) +!94 = !DILocation(line: 3, column: 10, scope: !92) +!95 = !DILocation(line: 9, column: 40, scope: !92) +!96 = !DILocation(line: 11, column: 40, scope: !92) +!97 = !DILocation(line: 14, column: 65, scope: !92) +!98 = !DILocation(line: 20, column: 3, scope: !92) +!99 = !DILocation(line: 29, column: 3, scope: !92) +!100 = !DILocation(line: 38, column: 3, scope: !92) +!101 = !DILocation(line: 45, column: 5, scope: !92) +!102 = !DILocation(line: 51, column: 10, scope: !92) +!103 = !DILocation(line: 52, column: 11, scope: !92) +!104 = !DILocation(line: 53, column: 11, scope: !92) +!105 = !DILocation(line: 54, column: 12, scope: !92) +!106 = !DILocation(line: 55, column: 12, scope: !92) +!107 = !DILocation(line: 56, column: 14, scope: !92) +!108 = !DILocation(line: 57, column: 15, scope: !92) +!109 = !DILocation(line: 58, column: 11, scope: !92) +!110 = !DILocation(line: 59, column: 15, scope: !92) +!111 = !DILocalVariable(name: "$church_nat_to_uint32_41", scope: !92, file: !2, line: 60, type: !9) +!112 = !DILocation(line: 60, column: 1, scope: !92) diff --git a/testsuite/expr/church_nat_stlc.ll b/testsuite/expr/church_nat_stlc.ll index b39ee0d1..5ee94821 100644 --- a/testsuite/expr/church_nat_stlc.ll +++ b/testsuite/expr/church_nat_stlc.ll @@ -61,7 +61,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-pc-linux-gnu" +target triple = "x86_64-unknown-linux-gnu" %"$TyDescrTy_PrimTyp_77" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/testsuite/expr/cn.dbg.ll b/testsuite/expr/cn.dbg.ll index ce9a08d3..e0c6e0c3 100644 --- a/testsuite/expr/cn.dbg.ll +++ b/testsuite/expr/cn.dbg.ll @@ -23,14 +23,14 @@ ; 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-pc-linux-gnu" +target triple = "x86_64-unknown-linux-gnu" %"$TyDescrTy_PrimTyp_24" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } %Int32 = type { i32 } -%"$ParamDescr_309" = type { %ParamDescrString, %_TyDescrTy_Typ* } +%"$ParamDescr_311" = type { %ParamDescrString, %_TyDescrTy_Typ* } %ParamDescrString = type { i8*, i32 } -%"$TransDescr_310" = type { %ParamDescrString, i32, %"$ParamDescr_309"* } +%"$TransDescr_312" = type { %ParamDescrString, i32, %"$ParamDescr_311"* } %Uint32 = type { i32 } %"$$fundef_22_env_61" = type {} %"$$fundef_20_env_62" = type { { i8*, i8* }* } @@ -79,245 +79,258 @@ target triple = "x86_64-pc-linux-gnu" @"$_gas_charge_accPairUtils_4" = global %Int32 zeroinitializer @_tydescr_table = constant [15 x %_TyDescrTy_Typ*] [%_TyDescrTy_Typ* @"$TyDescr_Event_48", %_TyDescrTy_Typ* @"$TyDescr_Int64_30", %_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_54", %_TyDescrTy_Typ* @"$TyDescr_ReplicateContr_52", %_TyDescrTy_Typ* @"$TyDescr_Message_46", %_TyDescrTy_Typ* @"$TyDescr_Int32_26"] @_tydescr_table_length = constant i32 15 -@_contract_parameters = constant [0 x %"$ParamDescr_309"] zeroinitializer +@_contract_parameters = constant [0 x %"$ParamDescr_311"] zeroinitializer @_contract_parameters_length = constant i32 0 -@_transition_parameters = constant [0 x %"$TransDescr_310"] zeroinitializer +@_transition_parameters = constant [0 x %"$TransDescr_312"] zeroinitializer @_transition_parameters_length = constant i32 0 -define internal %Uint32 @"$fundef_22"(%"$$fundef_22_env_61"* %0, { i8*, i8* }* %1) !dbg !4 { +define internal %Uint32 @"$fundef_22"(%"$$fundef_22_env_61"* %0, { i8*, i8* }* %1) !dbg !3 { entry: %"$retval_23" = 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" + call void @llvm.dbg.declare(metadata %Uint32* %"$retval_23", metadata !8, metadata !DIExpression()), !dbg !10 + %"$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_153": ; preds = %entry +"$out_of_gas_155": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_154" + br label %"$have_gas_156" -"$have_gas_154": ; preds = %"$out_of_gas_153", %entry - %"$consume_155" = sub i64 %"$gasrem_151", 1 - store i64 %"$consume_155", i64* @_gasrem, align 8 +"$have_gas_156": ; preds = %"$out_of_gas_155", %entry + %"$consume_157" = sub i64 %"$gasrem_153", 1 + store i64 %"$consume_157", i64* @_gasrem, align 8 %zero = alloca %Uint32, 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" + call void @llvm.dbg.declare(metadata %Uint32* %zero, metadata !11, metadata !DIExpression()), !dbg !12 + %"$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_158": ; preds = %"$have_gas_154" +"$out_of_gas_160": ; preds = %"$have_gas_156" call void @_out_of_gas() - br label %"$have_gas_159" + br label %"$have_gas_161" -"$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 - store %Uint32 zeroinitializer, %Uint32* %zero, align 4, !dbg !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" +"$have_gas_161": ; preds = %"$out_of_gas_160", %"$have_gas_156" + %"$consume_162" = sub i64 %"$gasrem_158", 1 + store i64 %"$consume_162", i64* @_gasrem, align 8 + store %Uint32 zeroinitializer, %Uint32* %zero, align 4, !dbg !13 + %"$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_163": ; preds = %"$have_gas_159" +"$out_of_gas_165": ; preds = %"$have_gas_161" call void @_out_of_gas() - br label %"$have_gas_164" + br label %"$have_gas_166" -"$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_166": ; preds = %"$out_of_gas_165", %"$have_gas_161" + %"$consume_167" = sub i64 %"$gasrem_163", 1 + store i64 %"$consume_167", i64* @_gasrem, align 8 %c32 = alloca { %Uint32 (i8*, %Uint32)*, i8* }, 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" + %"$gasrem_168" = load i64, i64* @_gasrem, align 8 + %"$gascmp_169" = icmp ugt i64 1, %"$gasrem_168" + br i1 %"$gascmp_169", label %"$out_of_gas_170", label %"$have_gas_171" -"$out_of_gas_168": ; preds = %"$have_gas_164" +"$out_of_gas_170": ; preds = %"$have_gas_166" 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 - %"$c_171" = getelementptr { i8*, i8* }, { i8*, i8* }* %1, i32 0 - %"$c_172" = bitcast { i8*, i8* }* %"$c_171" to { { %Uint32 (i8*, %Uint32)*, i8* } (i8*)*, i8* }* - %"$c_173" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*)*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*)*, i8* }* %"$c_172", align 8 - %"$c_fptr_174" = extractvalue { { %Uint32 (i8*, %Uint32)*, i8* } (i8*)*, i8* } %"$c_173", 0 - %"$c_envptr_175" = extractvalue { { %Uint32 (i8*, %Uint32)*, i8* } (i8*)*, i8* } %"$c_173", 1 - %"$c_call_176" = call { %Uint32 (i8*, %Uint32)*, i8* } %"$c_fptr_174"(i8* %"$c_envptr_175"), !dbg !9 - store { %Uint32 (i8*, %Uint32)*, i8* } %"$c_call_176", { %Uint32 (i8*, %Uint32)*, i8* }* %c32, align 8, !dbg !10 - %"$gasrem_177" = load i64, i64* @_gasrem, align 8 - %"$gascmp_178" = icmp ugt i64 1, %"$gasrem_177" - br i1 %"$gascmp_178", label %"$out_of_gas_179", label %"$have_gas_180" - -"$out_of_gas_179": ; preds = %"$have_gas_169" + br label %"$have_gas_171" + +"$have_gas_171": ; preds = %"$out_of_gas_170", %"$have_gas_166" + %"$consume_172" = sub i64 %"$gasrem_168", 1 + store i64 %"$consume_172", i64* @_gasrem, align 8 + %"$c_173" = getelementptr { i8*, i8* }, { i8*, i8* }* %1, i32 0 + %"$c_174" = bitcast { i8*, i8* }* %"$c_173" to { { %Uint32 (i8*, %Uint32)*, i8* } (i8*)*, i8* }* + %"$c_175" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*)*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*)*, i8* }* %"$c_174", align 8 + %"$c_fptr_176" = extractvalue { { %Uint32 (i8*, %Uint32)*, i8* } (i8*)*, i8* } %"$c_175", 0 + %"$c_envptr_177" = extractvalue { { %Uint32 (i8*, %Uint32)*, i8* } (i8*)*, i8* } %"$c_175", 1 + %"$c_call_178" = call { %Uint32 (i8*, %Uint32)*, i8* } %"$c_fptr_176"(i8* %"$c_envptr_177"), !dbg !14 + store { %Uint32 (i8*, %Uint32)*, i8* } %"$c_call_178", { %Uint32 (i8*, %Uint32)*, i8* }* %c32, align 8, !dbg !15 + %"$gasrem_179" = load i64, i64* @_gasrem, align 8 + %"$gascmp_180" = icmp ugt i64 1, %"$gasrem_179" + br i1 %"$gascmp_180", label %"$out_of_gas_181", label %"$have_gas_182" + +"$out_of_gas_181": ; preds = %"$have_gas_171" call void @_out_of_gas() - br label %"$have_gas_180" + br label %"$have_gas_182" -"$have_gas_180": ; preds = %"$out_of_gas_179", %"$have_gas_169" - %"$consume_181" = sub i64 %"$gasrem_177", 1 - store i64 %"$consume_181", i64* @_gasrem, align 8 +"$have_gas_182": ; preds = %"$out_of_gas_181", %"$have_gas_171" + %"$consume_183" = sub i64 %"$gasrem_179", 1 + store i64 %"$consume_183", i64* @_gasrem, align 8 %"$c32_7" = alloca %Uint32, align 8 - %"$c32_182" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %c32, align 8 - %"$c32_fptr_183" = extractvalue { %Uint32 (i8*, %Uint32)*, i8* } %"$c32_182", 0 - %"$c32_envptr_184" = extractvalue { %Uint32 (i8*, %Uint32)*, i8* } %"$c32_182", 1 - %"$zero_185" = load %Uint32, %Uint32* %zero, align 4 - %"$c32_call_186" = call %Uint32 %"$c32_fptr_183"(i8* %"$c32_envptr_184", %Uint32 %"$zero_185"), !dbg !11 - store %Uint32 %"$c32_call_186", %Uint32* %"$c32_7", align 4, !dbg !11 - %"$$c32_7_187" = load %Uint32, %Uint32* %"$c32_7", align 4 - store %Uint32 %"$$c32_7_187", %Uint32* %"$retval_23", align 4, !dbg !11 - %"$$retval_23_188" = load %Uint32, %Uint32* %"$retval_23", align 4 - ret %Uint32 %"$$retval_23_188" + call void @llvm.dbg.declare(metadata %Uint32* %"$c32_7", metadata !16, metadata !DIExpression()), !dbg !17 + %"$c32_184" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %c32, align 8 + %"$c32_fptr_185" = extractvalue { %Uint32 (i8*, %Uint32)*, i8* } %"$c32_184", 0 + %"$c32_envptr_186" = extractvalue { %Uint32 (i8*, %Uint32)*, i8* } %"$c32_184", 1 + %"$zero_187" = load %Uint32, %Uint32* %zero, align 4 + %"$c32_call_188" = call %Uint32 %"$c32_fptr_185"(i8* %"$c32_envptr_186", %Uint32 %"$zero_187"), !dbg !17 + store %Uint32 %"$c32_call_188", %Uint32* %"$c32_7", align 4, !dbg !17 + %"$$c32_7_189" = load %Uint32, %Uint32* %"$c32_7", align 4 + store %Uint32 %"$$c32_7_189", %Uint32* %"$retval_23", align 4, !dbg !17 + %"$$retval_23_190" = load %Uint32, %Uint32* %"$retval_23", align 4 + ret %Uint32 %"$$retval_23_190" } -define internal %Uint32 @"$fundef_20"(%"$$fundef_20_env_62"* %0, %Uint32 %1) !dbg !12 { +define internal %Uint32 @"$fundef_20"(%"$$fundef_20_env_62"* %0, %Uint32 %1) !dbg !18 { entry: - %"$$fundef_20_env_n_110" = getelementptr inbounds %"$$fundef_20_env_62", %"$$fundef_20_env_62"* %0, i32 0, i32 0 - %"$n_envload_111" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_20_env_n_110", align 8 + %"$z_152" = alloca %Uint32, align 8 + store %Uint32 %1, %Uint32* %"$z_152", align 4 + call void @llvm.dbg.declare(metadata %Uint32* %"$z_152", metadata !19, metadata !DIExpression()), !dbg !20 + %"$$fundef_20_env_n_111" = getelementptr inbounds %"$$fundef_20_env_62", %"$$fundef_20_env_62"* %0, i32 0, i32 0 + %"$n_envload_112" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_20_env_n_111", align 8 %n = alloca { i8*, i8* }*, align 8 - store { i8*, i8* }* %"$n_envload_111", { i8*, i8* }** %n, align 8 + store { i8*, i8* }* %"$n_envload_112", { i8*, i8* }** %n, align 8 %"$retval_21" = alloca %Uint32, align 8 - %"$gasrem_112" = load i64, i64* @_gasrem, align 8 - %"$gascmp_113" = icmp ugt i64 1, %"$gasrem_112" - br i1 %"$gascmp_113", label %"$out_of_gas_114", label %"$have_gas_115" + call void @llvm.dbg.declare(metadata %Uint32* %"$retval_21", metadata !21, metadata !DIExpression()), !dbg !22 + %"$gasrem_113" = load i64, i64* @_gasrem, align 8 + %"$gascmp_114" = icmp ugt i64 1, %"$gasrem_113" + br i1 %"$gascmp_114", label %"$out_of_gas_115", label %"$have_gas_116" -"$out_of_gas_114": ; preds = %entry +"$out_of_gas_115": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_115" + br label %"$have_gas_116" -"$have_gas_115": ; preds = %"$out_of_gas_114", %entry - %"$consume_116" = sub i64 %"$gasrem_112", 1 - store i64 %"$consume_116", i64* @_gasrem, align 8 +"$have_gas_116": ; preds = %"$out_of_gas_115", %entry + %"$consume_117" = sub i64 %"$gasrem_113", 1 + store i64 %"$consume_117", i64* @_gasrem, align 8 %nX = alloca { %Uint32 (i8*, %Uint32)*, i8* }, 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" + %"$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_119": ; preds = %"$have_gas_115" +"$out_of_gas_120": ; preds = %"$have_gas_116" call void @_out_of_gas() - br label %"$have_gas_120" - -"$have_gas_120": ; preds = %"$out_of_gas_119", %"$have_gas_115" - %"$consume_121" = sub i64 %"$gasrem_117", 1 - store i64 %"$consume_121", i64* @_gasrem, align 8 - %"$n_122" = load { i8*, i8* }*, { i8*, i8* }** %n, align 8 - %"$n_123" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$n_122", i32 0 - %"$n_124" = bitcast { i8*, i8* }* %"$n_123" to { { %Uint32 (i8*, %Uint32)*, i8* } (i8*)*, i8* }* - %"$n_125" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*)*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*)*, i8* }* %"$n_124", align 8 - %"$n_fptr_126" = extractvalue { { %Uint32 (i8*, %Uint32)*, i8* } (i8*)*, i8* } %"$n_125", 0 - %"$n_envptr_127" = extractvalue { { %Uint32 (i8*, %Uint32)*, i8* } (i8*)*, i8* } %"$n_125", 1 - %"$n_call_128" = call { %Uint32 (i8*, %Uint32)*, i8* } %"$n_fptr_126"(i8* %"$n_envptr_127"), !dbg !13 - store { %Uint32 (i8*, %Uint32)*, i8* } %"$n_call_128", { %Uint32 (i8*, %Uint32)*, i8* }* %nX, align 8, !dbg !14 - %"$gasrem_129" = load i64, i64* @_gasrem, align 8 - %"$gascmp_130" = icmp ugt i64 1, %"$gasrem_129" - br i1 %"$gascmp_130", label %"$out_of_gas_131", label %"$have_gas_132" - -"$out_of_gas_131": ; preds = %"$have_gas_120" + br label %"$have_gas_121" + +"$have_gas_121": ; preds = %"$out_of_gas_120", %"$have_gas_116" + %"$consume_122" = sub i64 %"$gasrem_118", 1 + store i64 %"$consume_122", i64* @_gasrem, align 8 + %"$n_123" = load { i8*, i8* }*, { i8*, i8* }** %n, align 8 + %"$n_124" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$n_123", i32 0 + %"$n_125" = bitcast { i8*, i8* }* %"$n_124" to { { %Uint32 (i8*, %Uint32)*, i8* } (i8*)*, i8* }* + %"$n_126" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*)*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*)*, i8* }* %"$n_125", align 8 + %"$n_fptr_127" = extractvalue { { %Uint32 (i8*, %Uint32)*, i8* } (i8*)*, i8* } %"$n_126", 0 + %"$n_envptr_128" = extractvalue { { %Uint32 (i8*, %Uint32)*, i8* } (i8*)*, i8* } %"$n_126", 1 + %"$n_call_129" = call { %Uint32 (i8*, %Uint32)*, i8* } %"$n_fptr_127"(i8* %"$n_envptr_128"), !dbg !23 + store { %Uint32 (i8*, %Uint32)*, i8* } %"$n_call_129", { %Uint32 (i8*, %Uint32)*, i8* }* %nX, align 8, !dbg !24 + %"$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_121" call void @_out_of_gas() - br label %"$have_gas_132" + br label %"$have_gas_133" -"$have_gas_132": ; preds = %"$out_of_gas_131", %"$have_gas_120" - %"$consume_133" = sub i64 %"$gasrem_129", 1 - store i64 %"$consume_133", i64* @_gasrem, align 8 +"$have_gas_133": ; preds = %"$out_of_gas_132", %"$have_gas_121" + %"$consume_134" = sub i64 %"$gasrem_130", 1 + store i64 %"$consume_134", i64* @_gasrem, align 8 %nXz = alloca %Uint32, align 8 - %"$gasrem_134" = load i64, i64* @_gasrem, align 8 - %"$gascmp_135" = icmp ugt i64 1, %"$gasrem_134" - br i1 %"$gascmp_135", label %"$out_of_gas_136", label %"$have_gas_137" + call void @llvm.dbg.declare(metadata %Uint32* %nXz, metadata !25, metadata !DIExpression()), !dbg !26 + %"$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_136": ; preds = %"$have_gas_132" +"$out_of_gas_137": ; preds = %"$have_gas_133" call void @_out_of_gas() - br label %"$have_gas_137" + br label %"$have_gas_138" -"$have_gas_137": ; preds = %"$out_of_gas_136", %"$have_gas_132" - %"$consume_138" = sub i64 %"$gasrem_134", 1 - store i64 %"$consume_138", i64* @_gasrem, align 8 +"$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 %"$nX_6" = alloca %Uint32, align 8 - %"$nX_139" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %nX, align 8 - %"$nX_fptr_140" = extractvalue { %Uint32 (i8*, %Uint32)*, i8* } %"$nX_139", 0 - %"$nX_envptr_141" = extractvalue { %Uint32 (i8*, %Uint32)*, i8* } %"$nX_139", 1 - %"$nX_call_142" = call %Uint32 %"$nX_fptr_140"(i8* %"$nX_envptr_141", %Uint32 %1), !dbg !15 - store %Uint32 %"$nX_call_142", %Uint32* %"$nX_6", align 4, !dbg !15 - %"$$nX_6_143" = load %Uint32, %Uint32* %"$nX_6", align 4 - store %Uint32 %"$$nX_6_143", %Uint32* %nXz, align 4, !dbg !15 - %"$gasrem_144" = load i64, i64* @_gasrem, align 8 - %"$gascmp_145" = icmp ugt i64 1, %"$gasrem_144" - br i1 %"$gascmp_145", label %"$out_of_gas_146", label %"$have_gas_147" - -"$out_of_gas_146": ; preds = %"$have_gas_137" + call void @llvm.dbg.declare(metadata %Uint32* %"$nX_6", metadata !27, metadata !DIExpression()), !dbg !28 + %"$nX_140" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %nX, align 8 + %"$nX_fptr_141" = extractvalue { %Uint32 (i8*, %Uint32)*, i8* } %"$nX_140", 0 + %"$nX_envptr_142" = extractvalue { %Uint32 (i8*, %Uint32)*, i8* } %"$nX_140", 1 + %"$nX_call_143" = call %Uint32 %"$nX_fptr_141"(i8* %"$nX_envptr_142", %Uint32 %1), !dbg !28 + store %Uint32 %"$nX_call_143", %Uint32* %"$nX_6", align 4, !dbg !28 + %"$$nX_6_144" = load %Uint32, %Uint32* %"$nX_6", align 4 + store %Uint32 %"$$nX_6_144", %Uint32* %nXz, align 4, !dbg !28 + %"$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 = %"$have_gas_138" call void @_out_of_gas() - br label %"$have_gas_147" - -"$have_gas_147": ; preds = %"$out_of_gas_146", %"$have_gas_137" - %"$consume_148" = sub i64 %"$gasrem_144", 1 - store i64 %"$consume_148", i64* @_gasrem, align 8 - %"$nXz_149" = load %Uint32, %Uint32* %nXz, align 4 - store %Uint32 %"$nXz_149", %Uint32* %"$retval_21", align 4, !dbg !16 - %"$$retval_21_150" = load %Uint32, %Uint32* %"$retval_21", align 4 - ret %Uint32 %"$$retval_21_150" + br label %"$have_gas_148" + +"$have_gas_148": ; preds = %"$out_of_gas_147", %"$have_gas_138" + %"$consume_149" = sub i64 %"$gasrem_145", 1 + store i64 %"$consume_149", i64* @_gasrem, align 8 + %"$nXz_150" = load %Uint32, %Uint32* %nXz, align 4 + store %Uint32 %"$nXz_150", %Uint32* %"$retval_21", align 4, !dbg !29 + %"$$retval_21_151" = load %Uint32, %Uint32* %"$retval_21", align 4 + ret %Uint32 %"$$retval_21_151" } -define internal { %Uint32 (i8*, %Uint32)*, i8* } @"$fundef_18"(%"$$fundef_18_env_63"* %0) !dbg !17 { +define internal { %Uint32 (i8*, %Uint32)*, i8* } @"$fundef_18"(%"$$fundef_18_env_63"* %0) !dbg !30 { entry: - %"$$fundef_18_env_n_96" = getelementptr inbounds %"$$fundef_18_env_63", %"$$fundef_18_env_63"* %0, i32 0, i32 0 - %"$n_envload_97" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_18_env_n_96", align 8 + %"$$fundef_18_env_n_97" = getelementptr inbounds %"$$fundef_18_env_63", %"$$fundef_18_env_63"* %0, i32 0, i32 0 + %"$n_envload_98" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_18_env_n_97", align 8 %n = alloca { i8*, i8* }*, align 8 - store { i8*, i8* }* %"$n_envload_97", { i8*, i8* }** %n, align 8 + store { i8*, i8* }* %"$n_envload_98", { i8*, i8* }** %n, align 8 %"$retval_19" = alloca { %Uint32 (i8*, %Uint32)*, i8* }, align 8 - %"$gasrem_98" = load i64, i64* @_gasrem, align 8 - %"$gascmp_99" = icmp ugt i64 1, %"$gasrem_98" - br i1 %"$gascmp_99", label %"$out_of_gas_100", label %"$have_gas_101" + %"$gasrem_99" = load i64, i64* @_gasrem, align 8 + %"$gascmp_100" = icmp ugt i64 1, %"$gasrem_99" + br i1 %"$gascmp_100", label %"$out_of_gas_101", label %"$have_gas_102" -"$out_of_gas_100": ; preds = %entry +"$out_of_gas_101": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_101" - -"$have_gas_101": ; preds = %"$out_of_gas_100", %entry - %"$consume_102" = sub i64 %"$gasrem_98", 1 - store i64 %"$consume_102", i64* @_gasrem, align 8 - %"$$fundef_20_envp_103_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_20_envp_103_salloc" = call i8* @_salloc(i8* %"$$fundef_20_envp_103_load", i64 8) - %"$$fundef_20_envp_103" = bitcast i8* %"$$fundef_20_envp_103_salloc" to %"$$fundef_20_env_62"* - %"$$fundef_20_env_voidp_105" = bitcast %"$$fundef_20_env_62"* %"$$fundef_20_envp_103" to i8* - %"$$fundef_20_cloval_106" = insertvalue { %Uint32 (i8*, %Uint32)*, i8* } { %Uint32 (i8*, %Uint32)* bitcast (%Uint32 (%"$$fundef_20_env_62"*, %Uint32)* @"$fundef_20" to %Uint32 (i8*, %Uint32)*), i8* undef }, i8* %"$$fundef_20_env_voidp_105", 1 - %"$$fundef_20_env_n_107" = getelementptr inbounds %"$$fundef_20_env_62", %"$$fundef_20_env_62"* %"$$fundef_20_envp_103", i32 0, i32 0 - %"$n_108" = load { i8*, i8* }*, { i8*, i8* }** %n, align 8 - store { i8*, i8* }* %"$n_108", { i8*, i8* }** %"$$fundef_20_env_n_107", align 8 - store { %Uint32 (i8*, %Uint32)*, i8* } %"$$fundef_20_cloval_106", { %Uint32 (i8*, %Uint32)*, i8* }* %"$retval_19", align 8, !dbg !18 - %"$$retval_19_109" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %"$retval_19", align 8 - ret { %Uint32 (i8*, %Uint32)*, i8* } %"$$retval_19_109" + br label %"$have_gas_102" + +"$have_gas_102": ; preds = %"$out_of_gas_101", %entry + %"$consume_103" = sub i64 %"$gasrem_99", 1 + store i64 %"$consume_103", i64* @_gasrem, align 8 + %"$$fundef_20_envp_104_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_20_envp_104_salloc" = call i8* @_salloc(i8* %"$$fundef_20_envp_104_load", i64 8) + %"$$fundef_20_envp_104" = bitcast i8* %"$$fundef_20_envp_104_salloc" to %"$$fundef_20_env_62"* + %"$$fundef_20_env_voidp_106" = bitcast %"$$fundef_20_env_62"* %"$$fundef_20_envp_104" to i8* + %"$$fundef_20_cloval_107" = insertvalue { %Uint32 (i8*, %Uint32)*, i8* } { %Uint32 (i8*, %Uint32)* bitcast (%Uint32 (%"$$fundef_20_env_62"*, %Uint32)* @"$fundef_20" to %Uint32 (i8*, %Uint32)*), i8* undef }, i8* %"$$fundef_20_env_voidp_106", 1 + %"$$fundef_20_env_n_108" = getelementptr inbounds %"$$fundef_20_env_62", %"$$fundef_20_env_62"* %"$$fundef_20_envp_104", i32 0, i32 0 + %"$n_109" = load { i8*, i8* }*, { i8*, i8* }** %n, align 8 + store { i8*, i8* }* %"$n_109", { i8*, i8* }** %"$$fundef_20_env_n_108", align 8 + store { %Uint32 (i8*, %Uint32)*, i8* } %"$$fundef_20_cloval_107", { %Uint32 (i8*, %Uint32)*, i8* }* %"$retval_19", align 8, !dbg !31 + %"$$retval_19_110" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %"$retval_19", align 8 + ret { %Uint32 (i8*, %Uint32)*, i8* } %"$$retval_19_110" } -define internal { i8*, i8* }* @"$fundef_16"(%"$$fundef_16_env_64"* %0, { i8*, i8* }* %1) !dbg !19 { +define internal { i8*, i8* }* @"$fundef_16"(%"$$fundef_16_env_64"* %0, { i8*, i8* }* %1) !dbg !32 { entry: %"$retval_17" = alloca { i8*, i8* }*, align 8 - %"$gasrem_82" = load i64, i64* @_gasrem, align 8 - %"$gascmp_83" = icmp ugt i64 1, %"$gasrem_82" - br i1 %"$gascmp_83", label %"$out_of_gas_84", label %"$have_gas_85" + %"$gasrem_83" = load i64, i64* @_gasrem, align 8 + %"$gascmp_84" = icmp ugt i64 1, %"$gasrem_83" + br i1 %"$gascmp_84", label %"$out_of_gas_85", label %"$have_gas_86" -"$out_of_gas_84": ; preds = %entry +"$out_of_gas_85": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_85" - -"$have_gas_85": ; preds = %"$out_of_gas_84", %entry - %"$consume_86" = sub i64 %"$gasrem_82", 1 - store i64 %"$consume_86", i64* @_gasrem, align 8 - %"$$fundef_18_envp_87_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_18_envp_87_salloc" = call i8* @_salloc(i8* %"$$fundef_18_envp_87_load", i64 8) - %"$$fundef_18_envp_87" = bitcast i8* %"$$fundef_18_envp_87_salloc" to %"$$fundef_18_env_63"* - %"$$fundef_18_env_voidp_89" = bitcast %"$$fundef_18_env_63"* %"$$fundef_18_envp_87" to i8* - %"$$fundef_18_cloval_90" = insertvalue { { %Uint32 (i8*, %Uint32)*, i8* } (i8*)*, i8* } { { %Uint32 (i8*, %Uint32)*, i8* } (i8*)* bitcast ({ %Uint32 (i8*, %Uint32)*, i8* } (%"$$fundef_18_env_63"*)* @"$fundef_18" to { %Uint32 (i8*, %Uint32)*, i8* } (i8*)*), i8* undef }, i8* %"$$fundef_18_env_voidp_89", 1 - %"$$fundef_18_env_n_91" = getelementptr inbounds %"$$fundef_18_env_63", %"$$fundef_18_env_63"* %"$$fundef_18_envp_87", i32 0, i32 0 - store { i8*, i8* }* %1, { i8*, i8* }** %"$$fundef_18_env_n_91", align 8 - %"$dyndisp_table_92_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$dyndisp_table_92_salloc_salloc" = call i8* @_salloc(i8* %"$dyndisp_table_92_salloc_load", i64 16) - %"$dyndisp_table_92_salloc" = bitcast i8* %"$dyndisp_table_92_salloc_salloc" to [1 x { i8*, i8* }]* - %"$dyndisp_table_92" = bitcast [1 x { i8*, i8* }]* %"$dyndisp_table_92_salloc" to { i8*, i8* }* - %"$dyndisp_gep_93" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_92", i32 0 - %"$dyndisp_pcast_94" = bitcast { i8*, i8* }* %"$dyndisp_gep_93" to { { %Uint32 (i8*, %Uint32)*, i8* } (i8*)*, i8* }* - store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*)*, i8* } %"$$fundef_18_cloval_90", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*)*, i8* }* %"$dyndisp_pcast_94", align 8 - store { i8*, i8* }* %"$dyndisp_table_92", { i8*, i8* }** %"$retval_17", align 8, !dbg !20 - %"$$retval_17_95" = load { i8*, i8* }*, { i8*, i8* }** %"$retval_17", align 8 - ret { i8*, i8* }* %"$$retval_17_95" + br label %"$have_gas_86" + +"$have_gas_86": ; preds = %"$out_of_gas_85", %entry + %"$consume_87" = sub i64 %"$gasrem_83", 1 + store i64 %"$consume_87", i64* @_gasrem, align 8 + %"$$fundef_18_envp_88_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_18_envp_88_salloc" = call i8* @_salloc(i8* %"$$fundef_18_envp_88_load", i64 8) + %"$$fundef_18_envp_88" = bitcast i8* %"$$fundef_18_envp_88_salloc" to %"$$fundef_18_env_63"* + %"$$fundef_18_env_voidp_90" = bitcast %"$$fundef_18_env_63"* %"$$fundef_18_envp_88" to i8* + %"$$fundef_18_cloval_91" = insertvalue { { %Uint32 (i8*, %Uint32)*, i8* } (i8*)*, i8* } { { %Uint32 (i8*, %Uint32)*, i8* } (i8*)* bitcast ({ %Uint32 (i8*, %Uint32)*, i8* } (%"$$fundef_18_env_63"*)* @"$fundef_18" to { %Uint32 (i8*, %Uint32)*, i8* } (i8*)*), i8* undef }, i8* %"$$fundef_18_env_voidp_90", 1 + %"$$fundef_18_env_n_92" = getelementptr inbounds %"$$fundef_18_env_63", %"$$fundef_18_env_63"* %"$$fundef_18_envp_88", i32 0, i32 0 + store { i8*, i8* }* %1, { i8*, i8* }** %"$$fundef_18_env_n_92", align 8 + %"$dyndisp_table_93_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$dyndisp_table_93_salloc_salloc" = call i8* @_salloc(i8* %"$dyndisp_table_93_salloc_load", i64 16) + %"$dyndisp_table_93_salloc" = bitcast i8* %"$dyndisp_table_93_salloc_salloc" to [1 x { i8*, i8* }]* + %"$dyndisp_table_93" = bitcast [1 x { i8*, i8* }]* %"$dyndisp_table_93_salloc" to { i8*, i8* }* + %"$dyndisp_gep_94" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_93", i32 0 + %"$dyndisp_pcast_95" = bitcast { i8*, i8* }* %"$dyndisp_gep_94" to { { %Uint32 (i8*, %Uint32)*, i8* } (i8*)*, i8* }* + store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*)*, i8* } %"$$fundef_18_cloval_91", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*)*, i8* }* %"$dyndisp_pcast_95", align 8 + store { i8*, i8* }* %"$dyndisp_table_93", { i8*, i8* }** %"$retval_17", align 8, !dbg !33 + %"$$retval_17_96" = load { i8*, i8* }*, { i8*, i8* }** %"$retval_17", align 8 + ret { i8*, i8* }* %"$$retval_17_96" } -define internal %Uint32 @"$fundef_14"(%"$$fundef_14_env_65"* %0, %Uint32 %1) !dbg !21 { +define internal %Uint32 @"$fundef_14"(%"$$fundef_14_env_65"* %0, %Uint32 %1) !dbg !34 { entry: + %"$z_82" = alloca %Uint32, align 8 + store %Uint32 %1, %Uint32* %"$z_82", align 4 + call void @llvm.dbg.declare(metadata %Uint32* %"$z_82", metadata !35, metadata !DIExpression()), !dbg !36 %"$retval_15" = alloca %Uint32, align 8 + call void @llvm.dbg.declare(metadata %Uint32* %"$retval_15", metadata !37, metadata !DIExpression()), !dbg !38 %"$gasrem_76" = load i64, i64* @_gasrem, align 8 %"$gascmp_77" = icmp ugt i64 1, %"$gasrem_76" br i1 %"$gascmp_77", label %"$out_of_gas_78", label %"$have_gas_79" @@ -329,12 +342,12 @@ entry: "$have_gas_79": ; preds = %"$out_of_gas_78", %entry %"$consume_80" = sub i64 %"$gasrem_76", 1 store i64 %"$consume_80", i64* @_gasrem, align 8 - store %Uint32 %1, %Uint32* %"$retval_15", align 4, !dbg !22 + store %Uint32 %1, %Uint32* %"$retval_15", align 4, !dbg !38 %"$$retval_15_81" = load %Uint32, %Uint32* %"$retval_15", align 4 ret %Uint32 %"$$retval_15_81" } -define internal { %Uint32 (i8*, %Uint32)*, i8* } @"$fundef_12"(%"$$fundef_12_env_66"* %0) !dbg !23 { +define internal { %Uint32 (i8*, %Uint32)*, i8* } @"$fundef_12"(%"$$fundef_12_env_66"* %0) !dbg !39 { entry: %"$retval_13" = alloca { %Uint32 (i8*, %Uint32)*, i8* }, align 8 %"$gasrem_67" = load i64, i64* @_gasrem, align 8 @@ -348,310 +361,335 @@ entry: "$have_gas_70": ; preds = %"$out_of_gas_69", %entry %"$consume_71" = sub i64 %"$gasrem_67", 1 store i64 %"$consume_71", i64* @_gasrem, align 8 - store { %Uint32 (i8*, %Uint32)*, i8* } { %Uint32 (i8*, %Uint32)* bitcast (%Uint32 (%"$$fundef_14_env_65"*, %Uint32)* @"$fundef_14" to %Uint32 (i8*, %Uint32)*), i8* null }, { %Uint32 (i8*, %Uint32)*, i8* }* %"$retval_13", align 8, !dbg !24 + store { %Uint32 (i8*, %Uint32)*, i8* } { %Uint32 (i8*, %Uint32)* bitcast (%Uint32 (%"$$fundef_14_env_65"*, %Uint32)* @"$fundef_14" to %Uint32 (i8*, %Uint32)*), i8* null }, { %Uint32 (i8*, %Uint32)*, i8* }* %"$retval_13", align 8, !dbg !40 %"$$retval_13_75" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %"$retval_13", align 8 ret { %Uint32 (i8*, %Uint32)*, i8* } %"$$retval_13_75" } declare void @_out_of_gas() +; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn +declare void @llvm.dbg.declare(metadata, metadata, metadata) #0 + declare i8* @_salloc(i8*, i64) -define void @_init_libs() !dbg !25 { +define void @_init_libs() !dbg !41 { entry: - %"$gasrem_189" = load i64, i64* @_gasrem, align 8 - %"$gascmp_190" = icmp ugt i64 5, %"$gasrem_189" - br i1 %"$gascmp_190", label %"$out_of_gas_191", label %"$have_gas_192" + %"$gasrem_191" = load i64, i64* @_gasrem, align 8 + %"$gascmp_192" = icmp ugt i64 5, %"$gasrem_191" + br i1 %"$gascmp_192", label %"$out_of_gas_193", label %"$have_gas_194" -"$out_of_gas_191": ; preds = %entry +"$out_of_gas_193": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_192" + br label %"$have_gas_194" -"$have_gas_192": ; preds = %"$out_of_gas_191", %entry - %"$consume_193" = sub i64 %"$gasrem_189", 5 - store i64 %"$consume_193", i64* @_gasrem, align 8 - store %Int32 { i32 5 }, %Int32* @"$_gas_charge_accrec_lib_5", align 4, !dbg !27 - %"$gasrem_194" = load i64, i64* @_gasrem, align 8 - %"$gascmp_195" = icmp ugt i64 8, %"$gasrem_194" - br i1 %"$gascmp_195", label %"$out_of_gas_196", label %"$have_gas_197" +"$have_gas_194": ; preds = %"$out_of_gas_193", %entry + %"$consume_195" = sub i64 %"$gasrem_191", 5 + store i64 %"$consume_195", i64* @_gasrem, align 8 + store %Int32 { i32 5 }, %Int32* @"$_gas_charge_accrec_lib_5", align 4, !dbg !43 + %"$gasrem_196" = load i64, i64* @_gasrem, align 8 + %"$gascmp_197" = icmp ugt i64 8, %"$gasrem_196" + br i1 %"$gascmp_197", label %"$out_of_gas_198", label %"$have_gas_199" -"$out_of_gas_196": ; preds = %"$have_gas_192" +"$out_of_gas_198": ; preds = %"$have_gas_194" call void @_out_of_gas() - br label %"$have_gas_197" + br label %"$have_gas_199" -"$have_gas_197": ; preds = %"$out_of_gas_196", %"$have_gas_192" - %"$consume_198" = sub i64 %"$gasrem_194", 8 - store i64 %"$consume_198", i64* @_gasrem, align 8 - store %Int32 { i32 8 }, %Int32* @"$_gas_charge_accBoolUtils_0", align 4, !dbg !27 - %"$gasrem_199" = load i64, i64* @_gasrem, align 8 - %"$gascmp_200" = icmp ugt i64 196, %"$gasrem_199" - br i1 %"$gascmp_200", label %"$out_of_gas_201", label %"$have_gas_202" +"$have_gas_199": ; preds = %"$out_of_gas_198", %"$have_gas_194" + %"$consume_200" = sub i64 %"$gasrem_196", 8 + store i64 %"$consume_200", i64* @_gasrem, align 8 + store %Int32 { i32 8 }, %Int32* @"$_gas_charge_accBoolUtils_0", align 4, !dbg !43 + %"$gasrem_201" = load i64, i64* @_gasrem, align 8 + %"$gascmp_202" = icmp ugt i64 196, %"$gasrem_201" + br i1 %"$gascmp_202", label %"$out_of_gas_203", label %"$have_gas_204" -"$out_of_gas_201": ; preds = %"$have_gas_197" +"$out_of_gas_203": ; preds = %"$have_gas_199" call void @_out_of_gas() - br label %"$have_gas_202" + br label %"$have_gas_204" -"$have_gas_202": ; preds = %"$out_of_gas_201", %"$have_gas_197" - %"$consume_203" = sub i64 %"$gasrem_199", 196 - store i64 %"$consume_203", i64* @_gasrem, align 8 - store %Int32 { i32 196 }, %Int32* @"$_gas_charge_accIntUtils_1", align 4, !dbg !27 - %"$gasrem_204" = load i64, i64* @_gasrem, align 8 - %"$gascmp_205" = icmp ugt i64 20, %"$gasrem_204" - br i1 %"$gascmp_205", label %"$out_of_gas_206", label %"$have_gas_207" +"$have_gas_204": ; preds = %"$out_of_gas_203", %"$have_gas_199" + %"$consume_205" = sub i64 %"$gasrem_201", 196 + store i64 %"$consume_205", i64* @_gasrem, align 8 + store %Int32 { i32 196 }, %Int32* @"$_gas_charge_accIntUtils_1", align 4, !dbg !43 + %"$gasrem_206" = load i64, i64* @_gasrem, align 8 + %"$gascmp_207" = icmp ugt i64 20, %"$gasrem_206" + br i1 %"$gascmp_207", label %"$out_of_gas_208", label %"$have_gas_209" -"$out_of_gas_206": ; preds = %"$have_gas_202" +"$out_of_gas_208": ; preds = %"$have_gas_204" call void @_out_of_gas() - br label %"$have_gas_207" + br label %"$have_gas_209" -"$have_gas_207": ; preds = %"$out_of_gas_206", %"$have_gas_202" - %"$consume_208" = sub i64 %"$gasrem_204", 20 - store i64 %"$consume_208", i64* @_gasrem, align 8 - store %Int32 { i32 20 }, %Int32* @"$_gas_charge_accListUtils_2", align 4, !dbg !27 - %"$gasrem_209" = load i64, i64* @_gasrem, align 8 - %"$gascmp_210" = icmp ugt i64 12, %"$gasrem_209" - br i1 %"$gascmp_210", label %"$out_of_gas_211", label %"$have_gas_212" +"$have_gas_209": ; preds = %"$out_of_gas_208", %"$have_gas_204" + %"$consume_210" = sub i64 %"$gasrem_206", 20 + store i64 %"$consume_210", i64* @_gasrem, align 8 + store %Int32 { i32 20 }, %Int32* @"$_gas_charge_accListUtils_2", align 4, !dbg !43 + %"$gasrem_211" = load i64, i64* @_gasrem, align 8 + %"$gascmp_212" = icmp ugt i64 12, %"$gasrem_211" + br i1 %"$gascmp_212", label %"$out_of_gas_213", label %"$have_gas_214" -"$out_of_gas_211": ; preds = %"$have_gas_207" +"$out_of_gas_213": ; preds = %"$have_gas_209" call void @_out_of_gas() - br label %"$have_gas_212" + br label %"$have_gas_214" -"$have_gas_212": ; preds = %"$out_of_gas_211", %"$have_gas_207" - %"$consume_213" = sub i64 %"$gasrem_209", 12 - store i64 %"$consume_213", i64* @_gasrem, align 8 - store %Int32 { i32 12 }, %Int32* @"$_gas_charge_accNatUtils_3", align 4, !dbg !27 - %"$gasrem_214" = load i64, i64* @_gasrem, align 8 - %"$gascmp_215" = icmp ugt i64 2, %"$gasrem_214" - br i1 %"$gascmp_215", label %"$out_of_gas_216", label %"$have_gas_217" +"$have_gas_214": ; preds = %"$out_of_gas_213", %"$have_gas_209" + %"$consume_215" = sub i64 %"$gasrem_211", 12 + store i64 %"$consume_215", i64* @_gasrem, align 8 + store %Int32 { i32 12 }, %Int32* @"$_gas_charge_accNatUtils_3", align 4, !dbg !43 + %"$gasrem_216" = load i64, i64* @_gasrem, align 8 + %"$gascmp_217" = icmp ugt i64 2, %"$gasrem_216" + br i1 %"$gascmp_217", label %"$out_of_gas_218", label %"$have_gas_219" -"$out_of_gas_216": ; preds = %"$have_gas_212" +"$out_of_gas_218": ; preds = %"$have_gas_214" call void @_out_of_gas() - br label %"$have_gas_217" + br label %"$have_gas_219" -"$have_gas_217": ; preds = %"$out_of_gas_216", %"$have_gas_212" - %"$consume_218" = sub i64 %"$gasrem_214", 2 - store i64 %"$consume_218", i64* @_gasrem, align 8 - store %Int32 { i32 2 }, %Int32* @"$_gas_charge_accPairUtils_4", align 4, !dbg !27 +"$have_gas_219": ; preds = %"$out_of_gas_218", %"$have_gas_214" + %"$consume_220" = sub i64 %"$gasrem_216", 2 + store i64 %"$consume_220", i64* @_gasrem, align 8 + store %Int32 { i32 2 }, %Int32* @"$_gas_charge_accPairUtils_4", align 4, !dbg !43 ret void } -define internal %Uint32 @_scilla_expr_fun(i8* %0) !dbg !28 { +define internal %Uint32 @_scilla_expr_fun(i8* %0) !dbg !44 { entry: %"$expr_11" = alloca %Uint32, 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" + call void @llvm.dbg.declare(metadata %Uint32* %"$expr_11", metadata !45, metadata !DIExpression()), !dbg !46 + %"$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_221": ; preds = %entry +"$out_of_gas_223": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_222" + br label %"$have_gas_224" -"$have_gas_222": ; preds = %"$out_of_gas_221", %entry - %"$consume_223" = sub i64 %"$gasrem_219", 1 - store i64 %"$consume_223", i64* @_gasrem, align 8 +"$have_gas_224": ; preds = %"$out_of_gas_223", %entry + %"$consume_225" = sub i64 %"$gasrem_221", 1 + store i64 %"$consume_225", i64* @_gasrem, align 8 %c1 = alloca { i8*, i8* }*, 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" + %"$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_226": ; preds = %"$have_gas_222" +"$out_of_gas_228": ; preds = %"$have_gas_224" call void @_out_of_gas() - br label %"$have_gas_227" - -"$have_gas_227": ; preds = %"$out_of_gas_226", %"$have_gas_222" - %"$consume_228" = sub i64 %"$gasrem_224", 1 - store i64 %"$consume_228", i64* @_gasrem, align 8 - %"$dyndisp_table_232_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$dyndisp_table_232_salloc_salloc" = call i8* @_salloc(i8* %"$dyndisp_table_232_salloc_load", i64 16) - %"$dyndisp_table_232_salloc" = bitcast i8* %"$dyndisp_table_232_salloc_salloc" to [1 x { i8*, i8* }]* - %"$dyndisp_table_232" = bitcast [1 x { i8*, i8* }]* %"$dyndisp_table_232_salloc" to { i8*, i8* }* - %"$dyndisp_gep_233" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_232", i32 0 - %"$dyndisp_pcast_234" = bitcast { i8*, i8* }* %"$dyndisp_gep_233" to { { %Uint32 (i8*, %Uint32)*, i8* } (i8*)*, i8* }* - store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*)*, i8* } { { %Uint32 (i8*, %Uint32)*, i8* } (i8*)* bitcast ({ %Uint32 (i8*, %Uint32)*, i8* } (%"$$fundef_12_env_66"*)* @"$fundef_12" to { %Uint32 (i8*, %Uint32)*, i8* } (i8*)*), i8* null }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*)*, i8* }* %"$dyndisp_pcast_234", align 8 - store { i8*, i8* }* %"$dyndisp_table_232", { i8*, i8* }** %c1, align 8, !dbg !29 - %"$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" - -"$out_of_gas_237": ; preds = %"$have_gas_227" + br label %"$have_gas_229" + +"$have_gas_229": ; preds = %"$out_of_gas_228", %"$have_gas_224" + %"$consume_230" = sub i64 %"$gasrem_226", 1 + store i64 %"$consume_230", i64* @_gasrem, align 8 + %"$dyndisp_table_234_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$dyndisp_table_234_salloc_salloc" = call i8* @_salloc(i8* %"$dyndisp_table_234_salloc_load", i64 16) + %"$dyndisp_table_234_salloc" = bitcast i8* %"$dyndisp_table_234_salloc_salloc" to [1 x { i8*, i8* }]* + %"$dyndisp_table_234" = bitcast [1 x { i8*, i8* }]* %"$dyndisp_table_234_salloc" to { i8*, i8* }* + %"$dyndisp_gep_235" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_234", i32 0 + %"$dyndisp_pcast_236" = bitcast { i8*, i8* }* %"$dyndisp_gep_235" to { { %Uint32 (i8*, %Uint32)*, i8* } (i8*)*, i8* }* + store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*)*, i8* } { { %Uint32 (i8*, %Uint32)*, i8* } (i8*)* bitcast ({ %Uint32 (i8*, %Uint32)*, i8* } (%"$$fundef_12_env_66"*)* @"$fundef_12" to { %Uint32 (i8*, %Uint32)*, i8* } (i8*)*), i8* null }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*)*, i8* }* %"$dyndisp_pcast_236", align 8 + store { i8*, i8* }* %"$dyndisp_table_234", { i8*, i8* }** %c1, align 8, !dbg !46 + %"$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_229" call void @_out_of_gas() - br label %"$have_gas_238" + br label %"$have_gas_240" -"$have_gas_238": ; preds = %"$out_of_gas_237", %"$have_gas_227" - %"$consume_239" = sub i64 %"$gasrem_235", 1 - store i64 %"$consume_239", i64* @_gasrem, align 8 +"$have_gas_240": ; preds = %"$out_of_gas_239", %"$have_gas_229" + %"$consume_241" = sub i64 %"$gasrem_237", 1 + store i64 %"$consume_241", i64* @_gasrem, align 8 %app_arg = alloca { { i8*, i8* }* (i8*, { i8*, 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" + %"$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_242": ; preds = %"$have_gas_238" +"$out_of_gas_244": ; preds = %"$have_gas_240" call void @_out_of_gas() - br label %"$have_gas_243" + br label %"$have_gas_245" -"$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 - store { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } { { i8*, i8* }* (i8*, { i8*, i8* }*)* bitcast ({ i8*, i8* }* (%"$$fundef_16_env_64"*, { i8*, i8* }*)* @"$fundef_16" to { i8*, i8* }* (i8*, { i8*, i8* }*)*), i8* null }, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %app_arg, align 8, !dbg !30 - %"$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" +"$have_gas_245": ; preds = %"$out_of_gas_244", %"$have_gas_240" + %"$consume_246" = sub i64 %"$gasrem_242", 1 + store i64 %"$consume_246", i64* @_gasrem, align 8 + store { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } { { i8*, i8* }* (i8*, { i8*, i8* }*)* bitcast ({ i8*, i8* }* (%"$$fundef_16_env_64"*, { i8*, i8* }*)* @"$fundef_16" to { i8*, i8* }* (i8*, { i8*, i8* }*)*), i8* null }, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %app_arg, align 8, !dbg !47 + %"$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_250": ; preds = %"$have_gas_243" +"$out_of_gas_252": ; preds = %"$have_gas_245" call void @_out_of_gas() - br label %"$have_gas_251" + br label %"$have_gas_253" -"$have_gas_251": ; preds = %"$out_of_gas_250", %"$have_gas_243" - %"$consume_252" = sub i64 %"$gasrem_248", 1 - store i64 %"$consume_252", i64* @_gasrem, align 8 +"$have_gas_253": ; preds = %"$out_of_gas_252", %"$have_gas_245" + %"$consume_254" = sub i64 %"$gasrem_250", 1 + store i64 %"$consume_254", i64* @_gasrem, align 8 %start = alloca { %Uint32 (i8*, { i8*, i8* }*)*, i8* }, align 8 - %"$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" + %"$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_255": ; preds = %"$have_gas_251" +"$out_of_gas_257": ; preds = %"$have_gas_253" call void @_out_of_gas() - br label %"$have_gas_256" + br label %"$have_gas_258" -"$have_gas_256": ; preds = %"$out_of_gas_255", %"$have_gas_251" - %"$consume_257" = sub i64 %"$gasrem_253", 1 - store i64 %"$consume_257", i64* @_gasrem, align 8 - store { %Uint32 (i8*, { i8*, i8* }*)*, i8* } { %Uint32 (i8*, { i8*, i8* }*)* bitcast (%Uint32 (%"$$fundef_22_env_61"*, { i8*, i8* }*)* @"$fundef_22" to %Uint32 (i8*, { i8*, i8* }*)*), i8* null }, { %Uint32 (i8*, { i8*, i8* }*)*, i8* }* %start, align 8, !dbg !31 - %"$gasrem_261" = load i64, i64* @_gasrem, align 8 - %"$gascmp_262" = icmp ugt i64 1, %"$gasrem_261" - br i1 %"$gascmp_262", label %"$out_of_gas_263", label %"$have_gas_264" +"$have_gas_258": ; preds = %"$out_of_gas_257", %"$have_gas_253" + %"$consume_259" = sub i64 %"$gasrem_255", 1 + store i64 %"$consume_259", i64* @_gasrem, align 8 + store { %Uint32 (i8*, { i8*, i8* }*)*, i8* } { %Uint32 (i8*, { i8*, i8* }*)* bitcast (%Uint32 (%"$$fundef_22_env_61"*, { i8*, i8* }*)* @"$fundef_22" to %Uint32 (i8*, { i8*, i8* }*)*), i8* null }, { %Uint32 (i8*, { i8*, i8* }*)*, i8* }* %start, align 8, !dbg !48 + %"$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_263": ; preds = %"$have_gas_256" +"$out_of_gas_265": ; preds = %"$have_gas_258" call void @_out_of_gas() - br label %"$have_gas_264" + br label %"$have_gas_266" -"$have_gas_264": ; preds = %"$out_of_gas_263", %"$have_gas_256" - %"$consume_265" = sub i64 %"$gasrem_261", 1 - store i64 %"$consume_265", i64* @_gasrem, align 8 +"$have_gas_266": ; preds = %"$out_of_gas_265", %"$have_gas_258" + %"$consume_267" = sub i64 %"$gasrem_263", 1 + store i64 %"$consume_267", i64* @_gasrem, align 8 %c2 = alloca { i8*, i8* }*, 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" + %"$gasrem_268" = load i64, i64* @_gasrem, align 8 + %"$gascmp_269" = icmp ugt i64 1, %"$gasrem_268" + br i1 %"$gascmp_269", label %"$out_of_gas_270", label %"$have_gas_271" -"$out_of_gas_268": ; preds = %"$have_gas_264" +"$out_of_gas_270": ; preds = %"$have_gas_266" call void @_out_of_gas() - br label %"$have_gas_269" + br label %"$have_gas_271" -"$have_gas_269": ; preds = %"$out_of_gas_268", %"$have_gas_264" - %"$consume_270" = sub i64 %"$gasrem_266", 1 - store i64 %"$consume_270", i64* @_gasrem, align 8 +"$have_gas_271": ; preds = %"$out_of_gas_270", %"$have_gas_266" + %"$consume_272" = sub i64 %"$gasrem_268", 1 + store i64 %"$consume_272", i64* @_gasrem, align 8 %"$app_arg_8" = alloca { i8*, i8* }*, align 8 - %"$app_arg_271" = load { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %app_arg, align 8 - %"$app_arg_fptr_272" = extractvalue { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$app_arg_271", 0 - %"$app_arg_envptr_273" = extractvalue { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$app_arg_271", 1 - %"$c1_274" = load { i8*, i8* }*, { i8*, i8* }** %c1, align 8 - %"$app_arg_call_275" = call { i8*, i8* }* %"$app_arg_fptr_272"(i8* %"$app_arg_envptr_273", { i8*, i8* }* %"$c1_274"), !dbg !32 - store { i8*, i8* }* %"$app_arg_call_275", { i8*, i8* }** %"$app_arg_8", align 8, !dbg !32 - %"$$app_arg_8_276" = load { i8*, i8* }*, { i8*, i8* }** %"$app_arg_8", align 8 - store { i8*, i8* }* %"$$app_arg_8_276", { i8*, i8* }** %c2, align 8, !dbg !32 - %"$gasrem_277" = load i64, i64* @_gasrem, align 8 - %"$gascmp_278" = icmp ugt i64 1, %"$gasrem_277" - br i1 %"$gascmp_278", label %"$out_of_gas_279", label %"$have_gas_280" - -"$out_of_gas_279": ; preds = %"$have_gas_269" + %"$app_arg_273" = load { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %app_arg, align 8 + %"$app_arg_fptr_274" = extractvalue { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$app_arg_273", 0 + %"$app_arg_envptr_275" = extractvalue { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$app_arg_273", 1 + %"$c1_276" = load { i8*, i8* }*, { i8*, i8* }** %c1, align 8 + %"$app_arg_call_277" = call { i8*, i8* }* %"$app_arg_fptr_274"(i8* %"$app_arg_envptr_275", { i8*, i8* }* %"$c1_276"), !dbg !49 + store { i8*, i8* }* %"$app_arg_call_277", { i8*, i8* }** %"$app_arg_8", align 8, !dbg !49 + %"$$app_arg_8_278" = load { i8*, i8* }*, { i8*, i8* }** %"$app_arg_8", align 8 + store { i8*, i8* }* %"$$app_arg_8_278", { i8*, i8* }** %c2, align 8, !dbg !49 + %"$gasrem_279" = load i64, i64* @_gasrem, align 8 + %"$gascmp_280" = icmp ugt i64 1, %"$gasrem_279" + br i1 %"$gascmp_280", label %"$out_of_gas_281", label %"$have_gas_282" + +"$out_of_gas_281": ; preds = %"$have_gas_271" call void @_out_of_gas() - br label %"$have_gas_280" + br label %"$have_gas_282" -"$have_gas_280": ; preds = %"$out_of_gas_279", %"$have_gas_269" - %"$consume_281" = sub i64 %"$gasrem_277", 1 - store i64 %"$consume_281", i64* @_gasrem, align 8 +"$have_gas_282": ; preds = %"$out_of_gas_281", %"$have_gas_271" + %"$consume_283" = sub i64 %"$gasrem_279", 1 + store i64 %"$consume_283", i64* @_gasrem, align 8 %c3 = alloca { 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" + %"$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_284": ; preds = %"$have_gas_280" +"$out_of_gas_286": ; preds = %"$have_gas_282" call void @_out_of_gas() - br label %"$have_gas_285" + br label %"$have_gas_287" -"$have_gas_285": ; preds = %"$out_of_gas_284", %"$have_gas_280" - %"$consume_286" = sub i64 %"$gasrem_282", 1 - store i64 %"$consume_286", i64* @_gasrem, align 8 +"$have_gas_287": ; preds = %"$out_of_gas_286", %"$have_gas_282" + %"$consume_288" = sub i64 %"$gasrem_284", 1 + store i64 %"$consume_288", i64* @_gasrem, align 8 %"$app_arg_9" = alloca { i8*, i8* }*, align 8 - %"$app_arg_287" = load { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %app_arg, align 8 - %"$app_arg_fptr_288" = extractvalue { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$app_arg_287", 0 - %"$app_arg_envptr_289" = extractvalue { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$app_arg_287", 1 - %"$c2_290" = load { i8*, i8* }*, { i8*, i8* }** %c2, align 8 - %"$app_arg_call_291" = call { i8*, i8* }* %"$app_arg_fptr_288"(i8* %"$app_arg_envptr_289", { i8*, i8* }* %"$c2_290"), !dbg !33 - store { i8*, i8* }* %"$app_arg_call_291", { i8*, i8* }** %"$app_arg_9", align 8, !dbg !33 - %"$$app_arg_9_292" = load { i8*, i8* }*, { i8*, i8* }** %"$app_arg_9", align 8 - store { i8*, i8* }* %"$$app_arg_9_292", { i8*, i8* }** %c3, align 8, !dbg !33 - %"$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" - -"$out_of_gas_295": ; preds = %"$have_gas_285" + %"$app_arg_289" = load { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %app_arg, align 8 + %"$app_arg_fptr_290" = extractvalue { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$app_arg_289", 0 + %"$app_arg_envptr_291" = extractvalue { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$app_arg_289", 1 + %"$c2_292" = load { i8*, i8* }*, { i8*, i8* }** %c2, align 8 + %"$app_arg_call_293" = call { i8*, i8* }* %"$app_arg_fptr_290"(i8* %"$app_arg_envptr_291", { i8*, i8* }* %"$c2_292"), !dbg !50 + store { i8*, i8* }* %"$app_arg_call_293", { i8*, i8* }** %"$app_arg_9", align 8, !dbg !50 + %"$$app_arg_9_294" = load { i8*, i8* }*, { i8*, i8* }** %"$app_arg_9", align 8 + store { i8*, i8* }* %"$$app_arg_9_294", { i8*, i8* }** %c3, align 8, !dbg !50 + %"$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 = %"$have_gas_287" call void @_out_of_gas() - br label %"$have_gas_296" + br label %"$have_gas_298" -"$have_gas_296": ; preds = %"$out_of_gas_295", %"$have_gas_285" - %"$consume_297" = sub i64 %"$gasrem_293", 1 - store i64 %"$consume_297", i64* @_gasrem, align 8 +"$have_gas_298": ; preds = %"$out_of_gas_297", %"$have_gas_287" + %"$consume_299" = sub i64 %"$gasrem_295", 1 + store i64 %"$consume_299", i64* @_gasrem, align 8 %"$start_10" = alloca %Uint32, align 8 - %"$start_298" = load { %Uint32 (i8*, { i8*, i8* }*)*, i8* }, { %Uint32 (i8*, { i8*, i8* }*)*, i8* }* %start, align 8 - %"$start_fptr_299" = extractvalue { %Uint32 (i8*, { i8*, i8* }*)*, i8* } %"$start_298", 0 - %"$start_envptr_300" = extractvalue { %Uint32 (i8*, { i8*, i8* }*)*, i8* } %"$start_298", 1 - %"$c3_301" = load { i8*, i8* }*, { i8*, i8* }** %c3, align 8 - %"$start_call_302" = call %Uint32 %"$start_fptr_299"(i8* %"$start_envptr_300", { i8*, i8* }* %"$c3_301"), !dbg !34 - store %Uint32 %"$start_call_302", %Uint32* %"$start_10", align 4, !dbg !34 - %"$$start_10_303" = load %Uint32, %Uint32* %"$start_10", align 4 - store %Uint32 %"$$start_10_303", %Uint32* %"$expr_11", align 4, !dbg !34 - %"$$expr_11_304" = load %Uint32, %Uint32* %"$expr_11", align 4 - ret %Uint32 %"$$expr_11_304" + call void @llvm.dbg.declare(metadata %Uint32* %"$start_10", metadata !51, metadata !DIExpression()), !dbg !52 + %"$start_300" = load { %Uint32 (i8*, { i8*, i8* }*)*, i8* }, { %Uint32 (i8*, { i8*, i8* }*)*, i8* }* %start, align 8 + %"$start_fptr_301" = extractvalue { %Uint32 (i8*, { i8*, i8* }*)*, i8* } %"$start_300", 0 + %"$start_envptr_302" = extractvalue { %Uint32 (i8*, { i8*, i8* }*)*, i8* } %"$start_300", 1 + %"$c3_303" = load { i8*, i8* }*, { i8*, i8* }** %c3, align 8 + %"$start_call_304" = call %Uint32 %"$start_fptr_301"(i8* %"$start_envptr_302", { i8*, i8* }* %"$c3_303"), !dbg !52 + store %Uint32 %"$start_call_304", %Uint32* %"$start_10", align 4, !dbg !52 + %"$$start_10_305" = load %Uint32, %Uint32* %"$start_10", align 4 + store %Uint32 %"$$start_10_305", %Uint32* %"$expr_11", align 4, !dbg !52 + %"$$expr_11_306" = load %Uint32, %Uint32* %"$expr_11", align 4 + ret %Uint32 %"$$expr_11_306" } declare void @_print_scilla_val(i8*, %_TyDescrTy_Typ*, i8*) define void @scilla_main() { entry: - %"$exprval_305" = call %Uint32 @_scilla_expr_fun(i8* null) - %"$pval_306" = alloca %Uint32, align 8 - %"$memvoidcast_307" = bitcast %Uint32* %"$pval_306" to i8* - store %Uint32 %"$exprval_305", %Uint32* %"$pval_306", align 4 - %"$execptr_load_308" = load i8*, i8** @_execptr, align 8 - call void @_print_scilla_val(i8* %"$execptr_load_308", %_TyDescrTy_Typ* @"$TyDescr_Uint32_28", i8* %"$memvoidcast_307") + %"$exprval_307" = call %Uint32 @_scilla_expr_fun(i8* null) + %"$pval_308" = alloca %Uint32, align 8 + %"$memvoidcast_309" = bitcast %Uint32* %"$pval_308" to i8* + store %Uint32 %"$exprval_307", %Uint32* %"$pval_308", align 4 + %"$execptr_load_310" = load i8*, i8** @_execptr, align 8 + call void @_print_scilla_val(i8* %"$execptr_load_310", %_TyDescrTy_Typ* @"$TyDescr_Uint32_28", i8* %"$memvoidcast_309") ret void } +attributes #0 = { nocallback nofree nosync nounwind readnone speculatable willreturn } + !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) +!1 = distinct !DICompileUnit(language: DW_LANG_C89, file: !2, producer: "Scilla Compiler", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false) !2 = !DIFile(filename: "cn.scilexp", directory: "codegen/expr") -!3 = !{} -!4 = distinct !DISubprogram(name: "$fundef_22", linkageName: "$fundef_22", scope: !2, file: !2, line: 15, type: !5, scopeLine: 15, 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: 15, column: 16, scope: !4) -!9 = !DILocation(line: 16, column: 16, scope: !4) -!10 = !DILocation(line: 16, column: 15, scope: !4) -!11 = !DILocation(line: 17, column: 5, scope: !4) -!12 = distinct !DISubprogram(name: "$fundef_20", linkageName: "$fundef_20", scope: !2, file: !2, line: 8, type: !5, scopeLine: 8, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!13 = !DILocation(line: 8, column: 13, scope: !12) -!14 = !DILocation(line: 8, column: 12, scope: !12) -!15 = !DILocation(line: 9, column: 13, scope: !12) -!16 = !DILocation(line: 10, column: 3, scope: !12) -!17 = distinct !DISubprogram(name: "$fundef_18", linkageName: "$fundef_18", scope: !2, file: !2, line: 8, type: !5, scopeLine: 8, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!18 = !DILocation(line: 8, column: 3, scope: !17) -!19 = distinct !DISubprogram(name: "$fundef_16", linkageName: "$fundef_16", scope: !2, file: !2, line: 6, type: !5, scopeLine: 6, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!20 = !DILocation(line: 6, column: 3, scope: !19) -!21 = distinct !DISubprogram(name: "$fundef_14", linkageName: "$fundef_14", scope: !2, file: !2, line: 2, type: !5, scopeLine: 2, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!22 = !DILocation(line: 2, column: 37, scope: !21) -!23 = distinct !DISubprogram(name: "$fundef_12", linkageName: "$fundef_12", scope: !2, file: !2, line: 2, type: !5, scopeLine: 2, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!24 = !DILocation(line: 2, column: 37, scope: !23) -!25 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !26, file: !26, type: !5, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!26 = !DIFile(filename: ".", directory: ".") -!27 = !DILocation(line: 0, scope: !25) -!28 = 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) -!29 = !DILocation(line: 2, column: 10, scope: !28) -!30 = !DILocation(line: 6, column: 3, scope: !28) -!31 = !DILocation(line: 15, column: 5, scope: !28) -!32 = !DILocation(line: 20, column: 10, scope: !28) -!33 = !DILocation(line: 21, column: 10, scope: !28) -!34 = !DILocation(line: 22, column: 1, scope: !28) +!3 = distinct !DISubprogram(name: "$fundef_22", linkageName: "$fundef_22", scope: !2, file: !2, line: 15, type: !4, scopeLine: 15, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!4 = !DISubroutineType(types: !5) +!5 = !{!6} +!6 = !DIBasicType(tag: DW_TAG_unspecified_type, name: "void") +!7 = !{} +!8 = !DILocalVariable(name: "$retval_23", scope: !3, file: !2, line: 15, type: !9) +!9 = !DIBasicType(name: "Uint32", size: 4) +!10 = !DILocation(line: 15, column: 5, scope: !3) +!11 = !DILocalVariable(name: "zero", scope: !3, file: !2, line: 15, type: !9) +!12 = !DILocation(line: 15, column: 9, scope: !3) +!13 = !DILocation(line: 15, column: 16, scope: !3) +!14 = !DILocation(line: 16, column: 16, scope: !3) +!15 = !DILocation(line: 16, column: 15, scope: !3) +!16 = !DILocalVariable(name: "$c32_7", scope: !3, file: !2, line: 17, type: !9) +!17 = !DILocation(line: 17, column: 5, scope: !3) +!18 = distinct !DISubprogram(name: "$fundef_20", linkageName: "$fundef_20", scope: !2, file: !2, line: 8, type: !4, scopeLine: 8, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!19 = !DILocalVariable(name: "z", scope: !18, file: !2, line: 7, type: !9) +!20 = !DILocation(line: 7, column: 8, scope: !18) +!21 = !DILocalVariable(name: "$retval_21", scope: !18, file: !2, line: 8, type: !9) +!22 = !DILocation(line: 8, column: 3, scope: !18) +!23 = !DILocation(line: 8, column: 13, scope: !18) +!24 = !DILocation(line: 8, column: 12, scope: !18) +!25 = !DILocalVariable(name: "nXz", scope: !18, file: !2, line: 9, type: !9) +!26 = !DILocation(line: 9, column: 7, scope: !18) +!27 = !DILocalVariable(name: "$nX_6", scope: !18, file: !2, line: 9, type: !9) +!28 = !DILocation(line: 9, column: 13, scope: !18) +!29 = !DILocation(line: 10, column: 3, scope: !18) +!30 = distinct !DISubprogram(name: "$fundef_18", linkageName: "$fundef_18", scope: !2, file: !2, line: 8, type: !4, scopeLine: 8, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!31 = !DILocation(line: 8, column: 3, scope: !30) +!32 = distinct !DISubprogram(name: "$fundef_16", linkageName: "$fundef_16", scope: !2, file: !2, line: 6, type: !4, scopeLine: 6, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!33 = !DILocation(line: 6, column: 3, scope: !32) +!34 = distinct !DISubprogram(name: "$fundef_14", linkageName: "$fundef_14", scope: !2, file: !2, line: 2, type: !4, scopeLine: 2, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!35 = !DILocalVariable(name: "z", scope: !34, file: !2, line: 2, type: !9) +!36 = !DILocation(line: 2, column: 26, scope: !34) +!37 = !DILocalVariable(name: "$retval_15", scope: !34, file: !2, line: 2, type: !9) +!38 = !DILocation(line: 2, column: 37, scope: !34) +!39 = distinct !DISubprogram(name: "$fundef_12", linkageName: "$fundef_12", scope: !2, file: !2, line: 2, type: !4, scopeLine: 2, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!40 = !DILocation(line: 2, column: 37, scope: !39) +!41 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !42, file: !42, type: !4, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!42 = !DIFile(filename: ".", directory: ".") +!43 = !DILocation(line: 0, scope: !41) +!44 = distinct !DISubprogram(name: "_scilla_expr_fun", linkageName: "_scilla_expr_fun", scope: !2, file: !2, line: 2, type: !4, scopeLine: 2, spFlags: DISPFlagDefinition, unit: !1, retainedNodes: !7) +!45 = !DILocalVariable(name: "$expr_11", scope: !44, file: !2, line: 2, type: !9) +!46 = !DILocation(line: 2, column: 10, scope: !44) +!47 = !DILocation(line: 6, column: 3, scope: !44) +!48 = !DILocation(line: 15, column: 5, scope: !44) +!49 = !DILocation(line: 20, column: 10, scope: !44) +!50 = !DILocation(line: 21, column: 10, scope: !44) +!51 = !DILocalVariable(name: "$start_10", scope: !44, file: !2, line: 22, type: !9) +!52 = !DILocation(line: 22, column: 1, scope: !44) diff --git a/testsuite/expr/cn.ll b/testsuite/expr/cn.ll index 112affbc..f5935330 100644 --- a/testsuite/expr/cn.ll +++ b/testsuite/expr/cn.ll @@ -23,7 +23,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-pc-linux-gnu" +target triple = "x86_64-unknown-linux-gnu" %"$TyDescrTy_PrimTyp_24" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/testsuite/expr/fib.dbg.ll b/testsuite/expr/fib.dbg.ll index d2bbcd52..2f43b9c1 100644 --- a/testsuite/expr/fib.dbg.ll +++ b/testsuite/expr/fib.dbg.ll @@ -33,7 +33,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-pc-linux-gnu" +target triple = "x86_64-unknown-linux-gnu" %"$TyDescrTy_PrimTyp_32" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } @@ -42,9 +42,9 @@ target triple = "x86_64-pc-linux-gnu" %"$TyDescrTy_ADTTyp_Specl_63" = type { %_TyDescrTy_Typ**, %"$TyDescrTy_ADTTyp_Constr_65"**, %"$TyDescrTy_ADTTyp_64"* } %"$TyDescrTy_ADTTyp_Constr_65" = type { %TyDescrString, i32, %_TyDescrTy_Typ** } %Int32 = type { i32 } -%"$ParamDescr_585" = type { %ParamDescrString, %_TyDescrTy_Typ* } +%"$ParamDescr_590" = type { %ParamDescrString, %_TyDescrTy_Typ* } %ParamDescrString = type { i8*, i32 } -%"$TransDescr_586" = type { %ParamDescrString, i32, %"$ParamDescr_585"* } +%"$TransDescr_591" = type { %ParamDescrString, i32, %"$ParamDescr_590"* } %TName_Pair_Int32_Int32 = type { i8, %CName_Pair_Int32_Int32* } %CName_Pair_Int32_Int32 = type <{ i8, %Int32, %Int32 }> %"$$fundef_30_env_92" = type { %TName_Pair_Int32_Int32* } @@ -122,534 +122,561 @@ target triple = "x86_64-pc-linux-gnu" @"$_gas_charge_accPairUtils_4" = global %Int32 zeroinitializer @_tydescr_table = constant [17 x %_TyDescrTy_Typ*] [%_TyDescrTy_Typ* @"$TyDescr_Event_56", %_TyDescrTy_Typ* @"$TyDescr_Int64_38", %_TyDescrTy_Typ* @"$TyDescr_ADT_Nat_66", %_TyDescrTy_Typ* @"$TyDescr_Uint256_48", %_TyDescrTy_Typ* @"$TyDescr_Uint32_36", %_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_Int256_46", %_TyDescrTy_Typ* @"$TyDescr_Int128_42", %_TyDescrTy_Typ* @"$TyDescr_ADT_Pair_Int32_Int32_67", %_TyDescrTy_Typ* @"$TyDescr_Bystr_62", %_TyDescrTy_Typ* @"$TyDescr_ReplicateContr_60", %_TyDescrTy_Typ* @"$TyDescr_Message_54", %_TyDescrTy_Typ* @"$TyDescr_Int32_34"] @_tydescr_table_length = constant i32 17 -@_contract_parameters = constant [0 x %"$ParamDescr_585"] zeroinitializer +@_contract_parameters = constant [0 x %"$ParamDescr_590"] zeroinitializer @_contract_parameters_length = constant i32 0 -@_transition_parameters = constant [0 x %"$TransDescr_586"] zeroinitializer +@_transition_parameters = constant [0 x %"$TransDescr_591"] zeroinitializer @_transition_parameters_length = constant i32 0 -define internal %TName_Pair_Int32_Int32* @"$fundef_30"(%"$$fundef_30_env_92"* %0, %TName_Nat* %1) !dbg !4 { +define internal %TName_Pair_Int32_Int32* @"$fundef_30"(%"$$fundef_30_env_92"* %0, %TName_Nat* %1) !dbg !3 { entry: - %"$$fundef_30_env_res_350" = getelementptr inbounds %"$$fundef_30_env_92", %"$$fundef_30_env_92"* %0, i32 0, i32 0 - %"$res_envload_351" = load %TName_Pair_Int32_Int32*, %TName_Pair_Int32_Int32** %"$$fundef_30_env_res_350", align 8 + %"$$n_6_398" = alloca %TName_Nat*, align 8 + store %TName_Nat* %1, %TName_Nat** %"$$n_6_398", align 8 + call void @llvm.dbg.declare(metadata %TName_Nat** %"$$n_6_398", metadata !8, metadata !DIExpression()), !dbg !11 + %"$$fundef_30_env_res_354" = getelementptr inbounds %"$$fundef_30_env_92", %"$$fundef_30_env_92"* %0, i32 0, i32 0 + %"$res_envload_355" = load %TName_Pair_Int32_Int32*, %TName_Pair_Int32_Int32** %"$$fundef_30_env_res_354", align 8 %res = alloca %TName_Pair_Int32_Int32*, align 8 - store %TName_Pair_Int32_Int32* %"$res_envload_351", %TName_Pair_Int32_Int32** %res, align 8 + store %TName_Pair_Int32_Int32* %"$res_envload_355", %TName_Pair_Int32_Int32** %res, align 8 %"$retval_31" = alloca %TName_Pair_Int32_Int32*, 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" + call void @llvm.dbg.declare(metadata %TName_Pair_Int32_Int32** %"$retval_31", metadata !12, metadata !DIExpression()), !dbg !15 + %"$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_354": ; preds = %entry +"$out_of_gas_358": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_355" - -"$have_gas_355": ; preds = %"$out_of_gas_354", %entry - %"$consume_356" = sub i64 %"$gasrem_352", 1 - store i64 %"$consume_356", i64* @_gasrem, align 8 - %"$res_358" = load %TName_Pair_Int32_Int32*, %TName_Pair_Int32_Int32** %res, align 8 - %"$res_tag_359" = getelementptr inbounds %TName_Pair_Int32_Int32, %TName_Pair_Int32_Int32* %"$res_358", i32 0, i32 0 - %"$res_tag_360" = load i8, i8* %"$res_tag_359", align 1 - switch i8 %"$res_tag_360", label %"$empty_default_361" [ - i8 0, label %"$Pair_362" - ], !dbg !8 - -"$Pair_362": ; preds = %"$have_gas_355" - %"$res_363" = bitcast %TName_Pair_Int32_Int32* %"$res_358" to %CName_Pair_Int32_Int32* - %"$x_gep_364" = getelementptr inbounds %CName_Pair_Int32_Int32, %CName_Pair_Int32_Int32* %"$res_363", i32 0, i32 1 - %"$x_load_365" = load %Int32, %Int32* %"$x_gep_364", align 4 + 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 + %"$res_362" = load %TName_Pair_Int32_Int32*, %TName_Pair_Int32_Int32** %res, align 8 + %"$res_tag_363" = getelementptr inbounds %TName_Pair_Int32_Int32, %TName_Pair_Int32_Int32* %"$res_362", i32 0, i32 0 + %"$res_tag_364" = load i8, i8* %"$res_tag_363", align 1 + switch i8 %"$res_tag_364", label %"$empty_default_365" [ + i8 0, label %"$Pair_366" + ], !dbg !15 + +"$Pair_366": ; preds = %"$have_gas_359" + %"$res_367" = bitcast %TName_Pair_Int32_Int32* %"$res_362" to %CName_Pair_Int32_Int32* + %"$x_gep_368" = getelementptr inbounds %CName_Pair_Int32_Int32, %CName_Pair_Int32_Int32* %"$res_367", i32 0, i32 1 + %"$x_load_369" = load %Int32, %Int32* %"$x_gep_368", align 4 %x = alloca %Int32, align 8 - store %Int32 %"$x_load_365", %Int32* %x, align 4 - %"$y_gep_366" = getelementptr inbounds %CName_Pair_Int32_Int32, %CName_Pair_Int32_Int32* %"$res_363", i32 0, i32 2 - %"$y_load_367" = load %Int32, %Int32* %"$y_gep_366", align 4 + store %Int32 %"$x_load_369", %Int32* %x, align 4 + %"$y_gep_370" = getelementptr inbounds %CName_Pair_Int32_Int32, %CName_Pair_Int32_Int32* %"$res_367", i32 0, i32 2 + %"$y_load_371" = load %Int32, %Int32* %"$y_gep_370", align 4 %y = alloca %Int32, align 8 - store %Int32 %"$y_load_367", %Int32* %y, align 4 - %"$gasrem_368" = load i64, i64* @_gasrem, align 8 - %"$gascmp_369" = icmp ugt i64 1, %"$gasrem_368" - br i1 %"$gascmp_369", label %"$out_of_gas_370", label %"$have_gas_371" + store %Int32 %"$y_load_371", %Int32* %y, align 4 + %"$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_370": ; preds = %"$Pair_362" +"$out_of_gas_374": ; preds = %"$Pair_366" call void @_out_of_gas() - br label %"$have_gas_371" + br label %"$have_gas_375" -"$have_gas_371": ; preds = %"$out_of_gas_370", %"$Pair_362" - %"$consume_372" = sub i64 %"$gasrem_368", 1 - store i64 %"$consume_372", i64* @_gasrem, align 8 +"$have_gas_375": ; preds = %"$out_of_gas_374", %"$Pair_366" + %"$consume_376" = sub i64 %"$gasrem_372", 1 + store i64 %"$consume_376", i64* @_gasrem, align 8 %z = alloca %Int32, align 8 - %"$gasrem_373" = load i64, i64* @_gasrem, align 8 - %"$gascmp_374" = icmp ugt i64 4, %"$gasrem_373" - br i1 %"$gascmp_374", label %"$out_of_gas_375", label %"$have_gas_376" + call void @llvm.dbg.declare(metadata %Int32* %z, metadata !16, metadata !DIExpression()), !dbg !20 + %"$gasrem_377" = load i64, i64* @_gasrem, align 8 + %"$gascmp_378" = icmp ugt i64 4, %"$gasrem_377" + br i1 %"$gascmp_378", label %"$out_of_gas_379", label %"$have_gas_380" -"$out_of_gas_375": ; preds = %"$have_gas_371" +"$out_of_gas_379": ; preds = %"$have_gas_375" call void @_out_of_gas() - br label %"$have_gas_376" - -"$have_gas_376": ; preds = %"$out_of_gas_375", %"$have_gas_371" - %"$consume_377" = sub i64 %"$gasrem_373", 4 - store i64 %"$consume_377", i64* @_gasrem, align 8 - %"$x_378" = load %Int32, %Int32* %x, align 4 - %"$y_379" = load %Int32, %Int32* %y, align 4 - %"$add_call_380" = call %Int32 @_add_Int32(%Int32 %"$x_378", %Int32 %"$y_379"), !dbg !9 - store %Int32 %"$add_call_380", %Int32* %z, align 4, !dbg !9 - %"$gasrem_381" = load i64, i64* @_gasrem, align 8 - %"$gascmp_382" = icmp ugt i64 1, %"$gasrem_381" - br i1 %"$gascmp_382", label %"$out_of_gas_383", label %"$have_gas_384" - -"$out_of_gas_383": ; preds = %"$have_gas_376" + br label %"$have_gas_380" + +"$have_gas_380": ; preds = %"$out_of_gas_379", %"$have_gas_375" + %"$consume_381" = sub i64 %"$gasrem_377", 4 + store i64 %"$consume_381", i64* @_gasrem, align 8 + %"$x_382" = load %Int32, %Int32* %x, align 4 + %"$y_383" = load %Int32, %Int32* %y, align 4 + %"$add_call_384" = call %Int32 @_add_Int32(%Int32 %"$x_382", %Int32 %"$y_383"), !dbg !21 + store %Int32 %"$add_call_384", %Int32* %z, align 4, !dbg !21 + %"$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_380" call void @_out_of_gas() - br label %"$have_gas_384" - -"$have_gas_384": ; preds = %"$out_of_gas_383", %"$have_gas_376" - %"$consume_385" = sub i64 %"$gasrem_381", 1 - store i64 %"$consume_385", i64* @_gasrem, align 8 - %"$z_386" = load %Int32, %Int32* %z, align 4 - %"$x_387" = load %Int32, %Int32* %x, align 4 - %"$adtval_388_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_388_salloc" = call i8* @_salloc(i8* %"$adtval_388_load", i64 9) - %"$adtval_388" = bitcast i8* %"$adtval_388_salloc" to %CName_Pair_Int32_Int32* - %"$adtgep_389" = getelementptr inbounds %CName_Pair_Int32_Int32, %CName_Pair_Int32_Int32* %"$adtval_388", i32 0, i32 0 - store i8 0, i8* %"$adtgep_389", align 1 - %"$adtgep_390" = getelementptr inbounds %CName_Pair_Int32_Int32, %CName_Pair_Int32_Int32* %"$adtval_388", i32 0, i32 1 - store %Int32 %"$z_386", %Int32* %"$adtgep_390", align 4 - %"$adtgep_391" = getelementptr inbounds %CName_Pair_Int32_Int32, %CName_Pair_Int32_Int32* %"$adtval_388", i32 0, i32 2 - store %Int32 %"$x_387", %Int32* %"$adtgep_391", align 4 - %"$adtptr_392" = bitcast %CName_Pair_Int32_Int32* %"$adtval_388" to %TName_Pair_Int32_Int32* - store %TName_Pair_Int32_Int32* %"$adtptr_392", %TName_Pair_Int32_Int32** %"$retval_31", align 8, !dbg !12 - br label %"$matchsucc_357" - -"$empty_default_361": ; preds = %"$have_gas_355" - br label %"$matchsucc_357" - -"$matchsucc_357": ; preds = %"$have_gas_384", %"$empty_default_361" - %"$$retval_31_393" = load %TName_Pair_Int32_Int32*, %TName_Pair_Int32_Int32** %"$retval_31", align 8 - ret %TName_Pair_Int32_Int32* %"$$retval_31_393" + br label %"$have_gas_388" + +"$have_gas_388": ; preds = %"$out_of_gas_387", %"$have_gas_380" + %"$consume_389" = sub i64 %"$gasrem_385", 1 + store i64 %"$consume_389", i64* @_gasrem, align 8 + %"$z_390" = load %Int32, %Int32* %z, align 4 + %"$x_391" = load %Int32, %Int32* %x, align 4 + %"$adtval_392_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_392_salloc" = call i8* @_salloc(i8* %"$adtval_392_load", i64 9) + %"$adtval_392" = bitcast i8* %"$adtval_392_salloc" to %CName_Pair_Int32_Int32* + %"$adtgep_393" = getelementptr inbounds %CName_Pair_Int32_Int32, %CName_Pair_Int32_Int32* %"$adtval_392", i32 0, i32 0 + store i8 0, i8* %"$adtgep_393", align 1 + %"$adtgep_394" = getelementptr inbounds %CName_Pair_Int32_Int32, %CName_Pair_Int32_Int32* %"$adtval_392", i32 0, i32 1 + store %Int32 %"$z_390", %Int32* %"$adtgep_394", align 4 + %"$adtgep_395" = getelementptr inbounds %CName_Pair_Int32_Int32, %CName_Pair_Int32_Int32* %"$adtval_392", i32 0, i32 2 + store %Int32 %"$x_391", %Int32* %"$adtgep_395", align 4 + %"$adtptr_396" = bitcast %CName_Pair_Int32_Int32* %"$adtval_392" to %TName_Pair_Int32_Int32* + store %TName_Pair_Int32_Int32* %"$adtptr_396", %TName_Pair_Int32_Int32** %"$retval_31", align 8, !dbg !22 + br label %"$matchsucc_361" + +"$empty_default_365": ; preds = %"$have_gas_359" + br label %"$matchsucc_361" + +"$matchsucc_361": ; preds = %"$have_gas_388", %"$empty_default_365" + %"$$retval_31_397" = load %TName_Pair_Int32_Int32*, %TName_Pair_Int32_Int32** %"$retval_31", align 8 + ret %TName_Pair_Int32_Int32* %"$$retval_31_397" } -define internal { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } @"$fundef_28"(%"$$fundef_28_env_93"* %0, %TName_Pair_Int32_Int32* %1) !dbg !13 { +define internal { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } @"$fundef_28"(%"$$fundef_28_env_93"* %0, %TName_Pair_Int32_Int32* %1) !dbg !23 { entry: + %"$res_353" = alloca %TName_Pair_Int32_Int32*, align 8 + store %TName_Pair_Int32_Int32* %1, %TName_Pair_Int32_Int32** %"$res_353", align 8 + call void @llvm.dbg.declare(metadata %TName_Pair_Int32_Int32** %"$res_353", metadata !24, metadata !DIExpression()), !dbg !25 %"$retval_29" = alloca { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* }, align 8 - %"$gasrem_339" = load i64, i64* @_gasrem, align 8 - %"$gascmp_340" = icmp ugt i64 1, %"$gasrem_339" - br i1 %"$gascmp_340", label %"$out_of_gas_341", label %"$have_gas_342" + %"$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" -"$out_of_gas_341": ; preds = %entry +"$out_of_gas_344": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_342" - -"$have_gas_342": ; preds = %"$out_of_gas_341", %entry - %"$consume_343" = sub i64 %"$gasrem_339", 1 - store i64 %"$consume_343", i64* @_gasrem, align 8 - %"$$fundef_30_envp_344_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_30_envp_344_salloc" = call i8* @_salloc(i8* %"$$fundef_30_envp_344_load", i64 8) - %"$$fundef_30_envp_344" = bitcast i8* %"$$fundef_30_envp_344_salloc" to %"$$fundef_30_env_92"* - %"$$fundef_30_env_voidp_346" = bitcast %"$$fundef_30_env_92"* %"$$fundef_30_envp_344" to i8* - %"$$fundef_30_cloval_347" = insertvalue { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)* bitcast (%TName_Pair_Int32_Int32* (%"$$fundef_30_env_92"*, %TName_Nat*)* @"$fundef_30" to %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*), i8* undef }, i8* %"$$fundef_30_env_voidp_346", 1 - %"$$fundef_30_env_res_348" = getelementptr inbounds %"$$fundef_30_env_92", %"$$fundef_30_env_92"* %"$$fundef_30_envp_344", i32 0, i32 0 - store %TName_Pair_Int32_Int32* %1, %TName_Pair_Int32_Int32** %"$$fundef_30_env_res_348", align 8 - store { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } %"$$fundef_30_cloval_347", { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* }* %"$retval_29", align 8, !dbg !14 - %"$$retval_29_349" = load { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* }, { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* }* %"$retval_29", align 8 - ret { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } %"$$retval_29_349" + br label %"$have_gas_345" + +"$have_gas_345": ; preds = %"$out_of_gas_344", %entry + %"$consume_346" = sub i64 %"$gasrem_342", 1 + store i64 %"$consume_346", i64* @_gasrem, align 8 + %"$$fundef_30_envp_347_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_30_envp_347_salloc" = call i8* @_salloc(i8* %"$$fundef_30_envp_347_load", i64 8) + %"$$fundef_30_envp_347" = bitcast i8* %"$$fundef_30_envp_347_salloc" to %"$$fundef_30_env_92"* + %"$$fundef_30_env_voidp_349" = bitcast %"$$fundef_30_env_92"* %"$$fundef_30_envp_347" to i8* + %"$$fundef_30_cloval_350" = insertvalue { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)* bitcast (%TName_Pair_Int32_Int32* (%"$$fundef_30_env_92"*, %TName_Nat*)* @"$fundef_30" to %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*), i8* undef }, i8* %"$$fundef_30_env_voidp_349", 1 + %"$$fundef_30_env_res_351" = getelementptr inbounds %"$$fundef_30_env_92", %"$$fundef_30_env_92"* %"$$fundef_30_envp_347", i32 0, i32 0 + store %TName_Pair_Int32_Int32* %1, %TName_Pair_Int32_Int32** %"$$fundef_30_env_res_351", align 8 + store { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } %"$$fundef_30_cloval_350", { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* }* %"$retval_29", align 8, !dbg !26 + %"$$retval_29_352" = load { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* }, { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* }* %"$retval_29", align 8 + ret { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } %"$$retval_29_352" } -define internal %Int32 @"$fundef_26"(%"$$fundef_26_env_94"* %0, %TName_Nat* %1) !dbg !15 { +define internal %Int32 @"$fundef_26"(%"$$fundef_26_env_94"* %0, %TName_Nat* %1) !dbg !27 { entry: - %"$$fundef_26_env_nat_fold_211" = getelementptr inbounds %"$$fundef_26_env_94", %"$$fundef_26_env_94"* %0, i32 0, i32 0 - %"$nat_fold_envload_212" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_26_env_nat_fold_211", align 8 + %"$n_341" = alloca %TName_Nat*, align 8 + store %TName_Nat* %1, %TName_Nat** %"$n_341", align 8 + call void @llvm.dbg.declare(metadata %TName_Nat** %"$n_341", metadata !28, metadata !DIExpression()), !dbg !29 + %"$$fundef_26_env_nat_fold_213" = getelementptr inbounds %"$$fundef_26_env_94", %"$$fundef_26_env_94"* %0, i32 0, i32 0 + %"$nat_fold_envload_214" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_26_env_nat_fold_213", align 8 %nat_fold = alloca { i8*, i8* }*, align 8 - store { i8*, i8* }* %"$nat_fold_envload_212", { i8*, i8* }** %nat_fold, align 8 + store { i8*, i8* }* %"$nat_fold_envload_214", { i8*, i8* }** %nat_fold, align 8 %"$retval_27" = alloca %Int32, align 8 - %"$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" + call void @llvm.dbg.declare(metadata %Int32* %"$retval_27", metadata !30, metadata !DIExpression()), !dbg !31 + %"$gasrem_215" = load i64, i64* @_gasrem, align 8 + %"$gascmp_216" = icmp ugt i64 1, %"$gasrem_215" + br i1 %"$gascmp_216", label %"$out_of_gas_217", label %"$have_gas_218" -"$out_of_gas_215": ; preds = %entry +"$out_of_gas_217": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_216" + br label %"$have_gas_218" -"$have_gas_216": ; preds = %"$out_of_gas_215", %entry - %"$consume_217" = sub i64 %"$gasrem_213", 1 - store i64 %"$consume_217", i64* @_gasrem, align 8 +"$have_gas_218": ; preds = %"$out_of_gas_217", %entry + %"$consume_219" = sub i64 %"$gasrem_215", 1 + store i64 %"$consume_219", i64* @_gasrem, align 8 %iter_fun = alloca { { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Pair_Int32_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" + %"$gasrem_220" = load i64, i64* @_gasrem, align 8 + %"$gascmp_221" = icmp ugt i64 1, %"$gasrem_220" + br i1 %"$gascmp_221", label %"$out_of_gas_222", label %"$have_gas_223" -"$out_of_gas_220": ; preds = %"$have_gas_216" +"$out_of_gas_222": ; preds = %"$have_gas_218" call void @_out_of_gas() - br label %"$have_gas_221" + br label %"$have_gas_223" -"$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 - store { { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Pair_Int32_Int32*)*, i8* } { { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Pair_Int32_Int32*)* bitcast ({ %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } (%"$$fundef_28_env_93"*, %TName_Pair_Int32_Int32*)* @"$fundef_28" to { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Pair_Int32_Int32*)*), i8* null }, { { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Pair_Int32_Int32*)*, i8* }* %iter_fun, align 8, !dbg !16 - %"$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" +"$have_gas_223": ; preds = %"$out_of_gas_222", %"$have_gas_218" + %"$consume_224" = sub i64 %"$gasrem_220", 1 + store i64 %"$consume_224", i64* @_gasrem, align 8 + store { { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Pair_Int32_Int32*)*, i8* } { { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Pair_Int32_Int32*)* bitcast ({ %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } (%"$$fundef_28_env_93"*, %TName_Pair_Int32_Int32*)* @"$fundef_28" to { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Pair_Int32_Int32*)*), i8* null }, { { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Pair_Int32_Int32*)*, i8* }* %iter_fun, align 8, !dbg !32 + %"$gasrem_228" = load i64, i64* @_gasrem, align 8 + %"$gascmp_229" = icmp ugt i64 1, %"$gasrem_228" + br i1 %"$gascmp_229", label %"$out_of_gas_230", label %"$have_gas_231" -"$out_of_gas_228": ; preds = %"$have_gas_221" +"$out_of_gas_230": ; preds = %"$have_gas_223" call void @_out_of_gas() - br label %"$have_gas_229" + br label %"$have_gas_231" -"$have_gas_229": ; preds = %"$out_of_gas_228", %"$have_gas_221" - %"$consume_230" = sub i64 %"$gasrem_226", 1 - store i64 %"$consume_230", i64* @_gasrem, align 8 +"$have_gas_231": ; preds = %"$out_of_gas_230", %"$have_gas_223" + %"$consume_232" = sub i64 %"$gasrem_228", 1 + store i64 %"$consume_232", i64* @_gasrem, align 8 %"$zero_7" = alloca %Int32, 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" + call void @llvm.dbg.declare(metadata %Int32* %"$zero_7", metadata !33, metadata !DIExpression()), !dbg !34 + %"$gasrem_233" = load i64, i64* @_gasrem, align 8 + %"$gascmp_234" = icmp ugt i64 1, %"$gasrem_233" + br i1 %"$gascmp_234", label %"$out_of_gas_235", label %"$have_gas_236" -"$out_of_gas_233": ; preds = %"$have_gas_229" +"$out_of_gas_235": ; preds = %"$have_gas_231" call void @_out_of_gas() - br label %"$have_gas_234" + br label %"$have_gas_236" -"$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 - store %Int32 zeroinitializer, %Int32* %"$zero_7", align 4, !dbg !17 - %"$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" +"$have_gas_236": ; preds = %"$out_of_gas_235", %"$have_gas_231" + %"$consume_237" = sub i64 %"$gasrem_233", 1 + store i64 %"$consume_237", i64* @_gasrem, align 8 + store %Int32 zeroinitializer, %Int32* %"$zero_7", align 4, !dbg !35 + %"$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_238": ; preds = %"$have_gas_234" +"$out_of_gas_240": ; preds = %"$have_gas_236" call void @_out_of_gas() - br label %"$have_gas_239" + br label %"$have_gas_241" -"$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 +"$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 %"$one_8" = 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" + call void @llvm.dbg.declare(metadata %Int32* %"$one_8", metadata !36, metadata !DIExpression()), !dbg !37 + %"$gasrem_243" = load i64, i64* @_gasrem, align 8 + %"$gascmp_244" = icmp ugt i64 1, %"$gasrem_243" + br i1 %"$gascmp_244", label %"$out_of_gas_245", label %"$have_gas_246" -"$out_of_gas_243": ; preds = %"$have_gas_239" +"$out_of_gas_245": ; preds = %"$have_gas_241" call void @_out_of_gas() - br label %"$have_gas_244" + br label %"$have_gas_246" -"$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 - store %Int32 { i32 1 }, %Int32* %"$one_8", align 4, !dbg !18 - %"$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" +"$have_gas_246": ; preds = %"$out_of_gas_245", %"$have_gas_241" + %"$consume_247" = sub i64 %"$gasrem_243", 1 + store i64 %"$consume_247", i64* @_gasrem, align 8 + store %Int32 { i32 1 }, %Int32* %"$one_8", align 4, !dbg !38 + %"$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_248": ; preds = %"$have_gas_244" +"$out_of_gas_250": ; preds = %"$have_gas_246" call void @_out_of_gas() - br label %"$have_gas_249" + br label %"$have_gas_251" -"$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 +"$have_gas_251": ; preds = %"$out_of_gas_250", %"$have_gas_246" + %"$consume_252" = sub i64 %"$gasrem_248", 1 + store i64 %"$consume_252", i64* @_gasrem, align 8 %init_val = alloca %TName_Pair_Int32_Int32*, 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" + call void @llvm.dbg.declare(metadata %TName_Pair_Int32_Int32** %init_val, metadata !39, metadata !DIExpression()), !dbg !40 + %"$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_253": ; preds = %"$have_gas_249" +"$out_of_gas_255": ; preds = %"$have_gas_251" 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 - %"$$one_8_256" = load %Int32, %Int32* %"$one_8", align 4 - %"$$zero_7_257" = load %Int32, %Int32* %"$zero_7", align 4 - %"$adtval_258_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_258_salloc" = call i8* @_salloc(i8* %"$adtval_258_load", i64 9) - %"$adtval_258" = bitcast i8* %"$adtval_258_salloc" to %CName_Pair_Int32_Int32* - %"$adtgep_259" = getelementptr inbounds %CName_Pair_Int32_Int32, %CName_Pair_Int32_Int32* %"$adtval_258", i32 0, i32 0 - store i8 0, i8* %"$adtgep_259", align 1 - %"$adtgep_260" = getelementptr inbounds %CName_Pair_Int32_Int32, %CName_Pair_Int32_Int32* %"$adtval_258", i32 0, i32 1 - store %Int32 %"$$one_8_256", %Int32* %"$adtgep_260", align 4 - %"$adtgep_261" = getelementptr inbounds %CName_Pair_Int32_Int32, %CName_Pair_Int32_Int32* %"$adtval_258", i32 0, i32 2 - store %Int32 %"$$zero_7_257", %Int32* %"$adtgep_261", align 4 - %"$adtptr_262" = bitcast %CName_Pair_Int32_Int32* %"$adtval_258" to %TName_Pair_Int32_Int32* - store %TName_Pair_Int32_Int32* %"$adtptr_262", %TName_Pair_Int32_Int32** %init_val, align 8, !dbg !19 - %"$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_254" + br label %"$have_gas_256" + +"$have_gas_256": ; preds = %"$out_of_gas_255", %"$have_gas_251" + %"$consume_257" = sub i64 %"$gasrem_253", 1 + store i64 %"$consume_257", i64* @_gasrem, align 8 + %"$$one_8_258" = load %Int32, %Int32* %"$one_8", align 4 + %"$$zero_7_259" = load %Int32, %Int32* %"$zero_7", align 4 + %"$adtval_260_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_260_salloc" = call i8* @_salloc(i8* %"$adtval_260_load", i64 9) + %"$adtval_260" = bitcast i8* %"$adtval_260_salloc" to %CName_Pair_Int32_Int32* + %"$adtgep_261" = getelementptr inbounds %CName_Pair_Int32_Int32, %CName_Pair_Int32_Int32* %"$adtval_260", i32 0, i32 0 + store i8 0, i8* %"$adtgep_261", align 1 + %"$adtgep_262" = getelementptr inbounds %CName_Pair_Int32_Int32, %CName_Pair_Int32_Int32* %"$adtval_260", i32 0, i32 1 + store %Int32 %"$$one_8_258", %Int32* %"$adtgep_262", align 4 + %"$adtgep_263" = getelementptr inbounds %CName_Pair_Int32_Int32, %CName_Pair_Int32_Int32* %"$adtval_260", i32 0, i32 2 + store %Int32 %"$$zero_7_259", %Int32* %"$adtgep_263", align 4 + %"$adtptr_264" = bitcast %CName_Pair_Int32_Int32* %"$adtval_260" to %TName_Pair_Int32_Int32* + store %TName_Pair_Int32_Int32* %"$adtptr_264", %TName_Pair_Int32_Int32** %init_val, align 8, !dbg !41 + %"$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 = %"$have_gas_256" call void @_out_of_gas() - br label %"$have_gas_266" + br label %"$have_gas_268" -"$have_gas_266": ; preds = %"$out_of_gas_265", %"$have_gas_254" - %"$consume_267" = sub i64 %"$gasrem_263", 1 - store i64 %"$consume_267", i64* @_gasrem, align 8 +"$have_gas_268": ; preds = %"$out_of_gas_267", %"$have_gas_256" + %"$consume_269" = sub i64 %"$gasrem_265", 1 + store i64 %"$consume_269", i64* @_gasrem, align 8 %typed_folder = alloca { { { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Pair_Int32_Int32*)*, i8* } (i8*, { { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Pair_Int32_Int32*)*, i8* })*, i8* }, align 8 - %"$gasrem_268" = load i64, i64* @_gasrem, align 8 - %"$gascmp_269" = icmp ugt i64 1, %"$gasrem_268" - br i1 %"$gascmp_269", label %"$out_of_gas_270", label %"$have_gas_271" + %"$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_270": ; preds = %"$have_gas_266" +"$out_of_gas_272": ; preds = %"$have_gas_268" call void @_out_of_gas() - br label %"$have_gas_271" - -"$have_gas_271": ; preds = %"$out_of_gas_270", %"$have_gas_266" - %"$consume_272" = sub i64 %"$gasrem_268", 1 - store i64 %"$consume_272", i64* @_gasrem, align 8 - %"$nat_fold_273" = load { i8*, i8* }*, { i8*, i8* }** %nat_fold, align 8 - %"$nat_fold_274" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$nat_fold_273", i32 0 - %"$nat_fold_275" = bitcast { i8*, i8* }* %"$nat_fold_274" to { { { { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Pair_Int32_Int32*)*, i8* } (i8*, { { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Pair_Int32_Int32*)*, i8* })*, i8* } (i8*)*, i8* }* - %"$nat_fold_276" = load { { { { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Pair_Int32_Int32*)*, i8* } (i8*, { { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Pair_Int32_Int32*)*, i8* })*, i8* } (i8*)*, i8* }, { { { { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Pair_Int32_Int32*)*, i8* } (i8*, { { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Pair_Int32_Int32*)*, i8* })*, i8* } (i8*)*, i8* }* %"$nat_fold_275", align 8 - %"$nat_fold_fptr_277" = extractvalue { { { { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Pair_Int32_Int32*)*, i8* } (i8*, { { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Pair_Int32_Int32*)*, i8* })*, i8* } (i8*)*, i8* } %"$nat_fold_276", 0 - %"$nat_fold_envptr_278" = extractvalue { { { { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Pair_Int32_Int32*)*, i8* } (i8*, { { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Pair_Int32_Int32*)*, i8* })*, i8* } (i8*)*, i8* } %"$nat_fold_276", 1 - %"$nat_fold_call_279" = call { { { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Pair_Int32_Int32*)*, i8* } (i8*, { { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Pair_Int32_Int32*)*, i8* })*, i8* } %"$nat_fold_fptr_277"(i8* %"$nat_fold_envptr_278"), !dbg !20 - store { { { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Pair_Int32_Int32*)*, i8* } (i8*, { { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Pair_Int32_Int32*)*, i8* })*, i8* } %"$nat_fold_call_279", { { { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Pair_Int32_Int32*)*, i8* } (i8*, { { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Pair_Int32_Int32*)*, i8* })*, i8* }* %typed_folder, align 8, !dbg !21 - %"$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 = %"$have_gas_271" + br label %"$have_gas_273" + +"$have_gas_273": ; preds = %"$out_of_gas_272", %"$have_gas_268" + %"$consume_274" = sub i64 %"$gasrem_270", 1 + store i64 %"$consume_274", i64* @_gasrem, align 8 + %"$nat_fold_275" = load { i8*, i8* }*, { i8*, i8* }** %nat_fold, align 8 + %"$nat_fold_276" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$nat_fold_275", i32 0 + %"$nat_fold_277" = bitcast { i8*, i8* }* %"$nat_fold_276" to { { { { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Pair_Int32_Int32*)*, i8* } (i8*, { { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Pair_Int32_Int32*)*, i8* })*, i8* } (i8*)*, i8* }* + %"$nat_fold_278" = load { { { { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Pair_Int32_Int32*)*, i8* } (i8*, { { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Pair_Int32_Int32*)*, i8* })*, i8* } (i8*)*, i8* }, { { { { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Pair_Int32_Int32*)*, i8* } (i8*, { { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Pair_Int32_Int32*)*, i8* })*, i8* } (i8*)*, i8* }* %"$nat_fold_277", align 8 + %"$nat_fold_fptr_279" = extractvalue { { { { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Pair_Int32_Int32*)*, i8* } (i8*, { { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Pair_Int32_Int32*)*, i8* })*, i8* } (i8*)*, i8* } %"$nat_fold_278", 0 + %"$nat_fold_envptr_280" = extractvalue { { { { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Pair_Int32_Int32*)*, i8* } (i8*, { { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Pair_Int32_Int32*)*, i8* })*, i8* } (i8*)*, i8* } %"$nat_fold_278", 1 + %"$nat_fold_call_281" = call { { { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Pair_Int32_Int32*)*, i8* } (i8*, { { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Pair_Int32_Int32*)*, i8* })*, i8* } %"$nat_fold_fptr_279"(i8* %"$nat_fold_envptr_280"), !dbg !42 + store { { { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Pair_Int32_Int32*)*, i8* } (i8*, { { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Pair_Int32_Int32*)*, i8* })*, i8* } %"$nat_fold_call_281", { { { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Pair_Int32_Int32*)*, i8* } (i8*, { { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Pair_Int32_Int32*)*, i8* })*, i8* }* %typed_folder, align 8, !dbg !43 + %"$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 = %"$have_gas_273" call void @_out_of_gas() - br label %"$have_gas_283" + br label %"$have_gas_285" -"$have_gas_283": ; preds = %"$out_of_gas_282", %"$have_gas_271" - %"$consume_284" = sub i64 %"$gasrem_280", 1 - store i64 %"$consume_284", i64* @_gasrem, align 8 +"$have_gas_285": ; preds = %"$out_of_gas_284", %"$have_gas_273" + %"$consume_286" = sub i64 %"$gasrem_282", 1 + store i64 %"$consume_286", i64* @_gasrem, align 8 %folder = alloca { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* }, align 8 - %"$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" + %"$gasrem_287" = load i64, i64* @_gasrem, align 8 + %"$gascmp_288" = icmp ugt i64 1, %"$gasrem_287" + br i1 %"$gascmp_288", label %"$out_of_gas_289", label %"$have_gas_290" -"$out_of_gas_287": ; preds = %"$have_gas_283" +"$out_of_gas_289": ; preds = %"$have_gas_285" call void @_out_of_gas() - br label %"$have_gas_288" + br label %"$have_gas_290" -"$have_gas_288": ; preds = %"$out_of_gas_287", %"$have_gas_283" - %"$consume_289" = sub i64 %"$gasrem_285", 1 - store i64 %"$consume_289", i64* @_gasrem, align 8 +"$have_gas_290": ; preds = %"$out_of_gas_289", %"$have_gas_285" + %"$consume_291" = sub i64 %"$gasrem_287", 1 + store i64 %"$consume_291", i64* @_gasrem, align 8 %"$typed_folder_13" = alloca { { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Pair_Int32_Int32*)*, i8* }, align 8 - %"$typed_folder_290" = load { { { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Pair_Int32_Int32*)*, i8* } (i8*, { { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Pair_Int32_Int32*)*, i8* })*, i8* }, { { { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Pair_Int32_Int32*)*, i8* } (i8*, { { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Pair_Int32_Int32*)*, i8* })*, i8* }* %typed_folder, align 8 - %"$typed_folder_fptr_291" = extractvalue { { { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Pair_Int32_Int32*)*, i8* } (i8*, { { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Pair_Int32_Int32*)*, i8* })*, i8* } %"$typed_folder_290", 0 - %"$typed_folder_envptr_292" = extractvalue { { { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Pair_Int32_Int32*)*, i8* } (i8*, { { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Pair_Int32_Int32*)*, i8* })*, i8* } %"$typed_folder_290", 1 - %"$iter_fun_293" = load { { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Pair_Int32_Int32*)*, i8* }, { { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Pair_Int32_Int32*)*, i8* }* %iter_fun, align 8 - %"$typed_folder_call_294" = call { { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Pair_Int32_Int32*)*, i8* } %"$typed_folder_fptr_291"(i8* %"$typed_folder_envptr_292", { { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Pair_Int32_Int32*)*, i8* } %"$iter_fun_293"), !dbg !22 - store { { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Pair_Int32_Int32*)*, i8* } %"$typed_folder_call_294", { { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Pair_Int32_Int32*)*, i8* }* %"$typed_folder_13", align 8, !dbg !22 + %"$typed_folder_292" = load { { { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Pair_Int32_Int32*)*, i8* } (i8*, { { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Pair_Int32_Int32*)*, i8* })*, i8* }, { { { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Pair_Int32_Int32*)*, i8* } (i8*, { { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Pair_Int32_Int32*)*, i8* })*, i8* }* %typed_folder, align 8 + %"$typed_folder_fptr_293" = extractvalue { { { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Pair_Int32_Int32*)*, i8* } (i8*, { { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Pair_Int32_Int32*)*, i8* })*, i8* } %"$typed_folder_292", 0 + %"$typed_folder_envptr_294" = extractvalue { { { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Pair_Int32_Int32*)*, i8* } (i8*, { { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Pair_Int32_Int32*)*, i8* })*, i8* } %"$typed_folder_292", 1 + %"$iter_fun_295" = load { { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Pair_Int32_Int32*)*, i8* }, { { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Pair_Int32_Int32*)*, i8* }* %iter_fun, align 8 + %"$typed_folder_call_296" = call { { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Pair_Int32_Int32*)*, i8* } %"$typed_folder_fptr_293"(i8* %"$typed_folder_envptr_294", { { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Pair_Int32_Int32*)*, i8* } %"$iter_fun_295"), !dbg !44 + store { { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Pair_Int32_Int32*)*, i8* } %"$typed_folder_call_296", { { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Pair_Int32_Int32*)*, i8* }* %"$typed_folder_13", align 8, !dbg !44 %"$typed_folder_14" = alloca { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* }, align 8 - %"$$typed_folder_13_295" = load { { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Pair_Int32_Int32*)*, i8* }, { { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Pair_Int32_Int32*)*, i8* }* %"$typed_folder_13", align 8 - %"$$typed_folder_13_fptr_296" = extractvalue { { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Pair_Int32_Int32*)*, i8* } %"$$typed_folder_13_295", 0 - %"$$typed_folder_13_envptr_297" = extractvalue { { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Pair_Int32_Int32*)*, i8* } %"$$typed_folder_13_295", 1 - %"$init_val_298" = load %TName_Pair_Int32_Int32*, %TName_Pair_Int32_Int32** %init_val, align 8 - %"$$typed_folder_13_call_299" = call { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } %"$$typed_folder_13_fptr_296"(i8* %"$$typed_folder_13_envptr_297", %TName_Pair_Int32_Int32* %"$init_val_298"), !dbg !22 - store { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } %"$$typed_folder_13_call_299", { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* }* %"$typed_folder_14", align 8, !dbg !22 - %"$$typed_folder_14_300" = load { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* }, { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* }* %"$typed_folder_14", align 8 - store { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } %"$$typed_folder_14_300", { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* }* %folder, align 8, !dbg !22 - %"$gasrem_301" = load i64, i64* @_gasrem, align 8 - %"$gascmp_302" = icmp ugt i64 1, %"$gasrem_301" - br i1 %"$gascmp_302", label %"$out_of_gas_303", label %"$have_gas_304" - -"$out_of_gas_303": ; preds = %"$have_gas_288" + %"$$typed_folder_13_297" = load { { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Pair_Int32_Int32*)*, i8* }, { { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Pair_Int32_Int32*)*, i8* }* %"$typed_folder_13", align 8 + %"$$typed_folder_13_fptr_298" = extractvalue { { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Pair_Int32_Int32*)*, i8* } %"$$typed_folder_13_297", 0 + %"$$typed_folder_13_envptr_299" = extractvalue { { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Pair_Int32_Int32*)*, i8* } %"$$typed_folder_13_297", 1 + %"$init_val_300" = load %TName_Pair_Int32_Int32*, %TName_Pair_Int32_Int32** %init_val, align 8 + %"$$typed_folder_13_call_301" = call { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } %"$$typed_folder_13_fptr_298"(i8* %"$$typed_folder_13_envptr_299", %TName_Pair_Int32_Int32* %"$init_val_300"), !dbg !44 + store { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } %"$$typed_folder_13_call_301", { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* }* %"$typed_folder_14", align 8, !dbg !44 + %"$$typed_folder_14_302" = load { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* }, { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* }* %"$typed_folder_14", align 8 + store { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } %"$$typed_folder_14_302", { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* }* %folder, align 8, !dbg !44 + %"$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_290" call void @_out_of_gas() - br label %"$have_gas_304" + br label %"$have_gas_306" -"$have_gas_304": ; preds = %"$out_of_gas_303", %"$have_gas_288" - %"$consume_305" = sub i64 %"$gasrem_301", 1 - store i64 %"$consume_305", i64* @_gasrem, align 8 +"$have_gas_306": ; preds = %"$out_of_gas_305", %"$have_gas_290" + %"$consume_307" = sub i64 %"$gasrem_303", 1 + store i64 %"$consume_307", i64* @_gasrem, align 8 %res = alloca %TName_Pair_Int32_Int32*, 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" + call void @llvm.dbg.declare(metadata %TName_Pair_Int32_Int32** %res, metadata !45, metadata !DIExpression()), !dbg !46 + %"$gasrem_308" = load i64, i64* @_gasrem, align 8 + %"$gascmp_309" = icmp ugt i64 1, %"$gasrem_308" + br i1 %"$gascmp_309", label %"$out_of_gas_310", label %"$have_gas_311" -"$out_of_gas_308": ; preds = %"$have_gas_304" +"$out_of_gas_310": ; preds = %"$have_gas_306" call void @_out_of_gas() - br label %"$have_gas_309" + br label %"$have_gas_311" -"$have_gas_309": ; preds = %"$out_of_gas_308", %"$have_gas_304" - %"$consume_310" = sub i64 %"$gasrem_306", 1 - store i64 %"$consume_310", i64* @_gasrem, align 8 +"$have_gas_311": ; preds = %"$out_of_gas_310", %"$have_gas_306" + %"$consume_312" = sub i64 %"$gasrem_308", 1 + store i64 %"$consume_312", i64* @_gasrem, align 8 %"$folder_15" = alloca %TName_Pair_Int32_Int32*, align 8 - %"$folder_311" = load { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* }, { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* }* %folder, align 8 - %"$folder_fptr_312" = extractvalue { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } %"$folder_311", 0 - %"$folder_envptr_313" = extractvalue { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } %"$folder_311", 1 - %"$folder_call_314" = call %TName_Pair_Int32_Int32* %"$folder_fptr_312"(i8* %"$folder_envptr_313", %TName_Nat* %1), !dbg !23 - store %TName_Pair_Int32_Int32* %"$folder_call_314", %TName_Pair_Int32_Int32** %"$folder_15", align 8, !dbg !23 - %"$$folder_15_315" = load %TName_Pair_Int32_Int32*, %TName_Pair_Int32_Int32** %"$folder_15", align 8 - store %TName_Pair_Int32_Int32* %"$$folder_15_315", %TName_Pair_Int32_Int32** %res, align 8, !dbg !23 - %"$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 = %"$have_gas_309" + call void @llvm.dbg.declare(metadata %TName_Pair_Int32_Int32** %"$folder_15", metadata !47, metadata !DIExpression()), !dbg !48 + %"$folder_313" = load { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* }, { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* }* %folder, align 8 + %"$folder_fptr_314" = extractvalue { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } %"$folder_313", 0 + %"$folder_envptr_315" = extractvalue { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } %"$folder_313", 1 + %"$folder_call_316" = call %TName_Pair_Int32_Int32* %"$folder_fptr_314"(i8* %"$folder_envptr_315", %TName_Nat* %1), !dbg !48 + store %TName_Pair_Int32_Int32* %"$folder_call_316", %TName_Pair_Int32_Int32** %"$folder_15", align 8, !dbg !48 + %"$$folder_15_317" = load %TName_Pair_Int32_Int32*, %TName_Pair_Int32_Int32** %"$folder_15", align 8 + store %TName_Pair_Int32_Int32* %"$$folder_15_317", %TName_Pair_Int32_Int32** %res, align 8, !dbg !48 + %"$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_311" call void @_out_of_gas() - br label %"$have_gas_319" - -"$have_gas_319": ; preds = %"$out_of_gas_318", %"$have_gas_309" - %"$consume_320" = sub i64 %"$gasrem_316", 1 - store i64 %"$consume_320", i64* @_gasrem, align 8 - %"$res_322" = load %TName_Pair_Int32_Int32*, %TName_Pair_Int32_Int32** %res, align 8 - %"$res_tag_323" = getelementptr inbounds %TName_Pair_Int32_Int32, %TName_Pair_Int32_Int32* %"$res_322", i32 0, i32 0 - %"$res_tag_324" = load i8, i8* %"$res_tag_323", align 1 - switch i8 %"$res_tag_324", label %"$empty_default_325" [ - i8 0, label %"$Pair_326" - ], !dbg !24 - -"$Pair_326": ; preds = %"$have_gas_319" - %"$res_327" = bitcast %TName_Pair_Int32_Int32* %"$res_322" to %CName_Pair_Int32_Int32* - %"$x_gep_328" = getelementptr inbounds %CName_Pair_Int32_Int32, %CName_Pair_Int32_Int32* %"$res_327", i32 0, i32 1 - %"$x_load_329" = load %Int32, %Int32* %"$x_gep_328", align 4 + br label %"$have_gas_321" + +"$have_gas_321": ; preds = %"$out_of_gas_320", %"$have_gas_311" + %"$consume_322" = sub i64 %"$gasrem_318", 1 + store i64 %"$consume_322", i64* @_gasrem, align 8 + %"$res_324" = load %TName_Pair_Int32_Int32*, %TName_Pair_Int32_Int32** %res, align 8 + %"$res_tag_325" = getelementptr inbounds %TName_Pair_Int32_Int32, %TName_Pair_Int32_Int32* %"$res_324", i32 0, i32 0 + %"$res_tag_326" = load i8, i8* %"$res_tag_325", align 1 + switch i8 %"$res_tag_326", label %"$empty_default_327" [ + i8 0, label %"$Pair_328" + ], !dbg !49 + +"$Pair_328": ; preds = %"$have_gas_321" + %"$res_329" = bitcast %TName_Pair_Int32_Int32* %"$res_324" to %CName_Pair_Int32_Int32* + %"$x_gep_330" = getelementptr inbounds %CName_Pair_Int32_Int32, %CName_Pair_Int32_Int32* %"$res_329", i32 0, i32 1 + %"$x_load_331" = load %Int32, %Int32* %"$x_gep_330", align 4 %x = alloca %Int32, align 8 - store %Int32 %"$x_load_329", %Int32* %x, align 4 - %"$y_gep_330" = getelementptr inbounds %CName_Pair_Int32_Int32, %CName_Pair_Int32_Int32* %"$res_327", i32 0, i32 2 - %"$y_load_331" = load %Int32, %Int32* %"$y_gep_330", align 4 + store %Int32 %"$x_load_331", %Int32* %x, align 4 + %"$y_gep_332" = getelementptr inbounds %CName_Pair_Int32_Int32, %CName_Pair_Int32_Int32* %"$res_329", i32 0, i32 2 + %"$y_load_333" = load %Int32, %Int32* %"$y_gep_332", align 4 %y = alloca %Int32, align 8 - store %Int32 %"$y_load_331", %Int32* %y, align 4 - %"$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" + store %Int32 %"$y_load_333", %Int32* %y, align 4 + %"$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_334": ; preds = %"$Pair_326" +"$out_of_gas_336": ; preds = %"$Pair_328" call void @_out_of_gas() - br label %"$have_gas_335" + br label %"$have_gas_337" -"$have_gas_335": ; preds = %"$out_of_gas_334", %"$Pair_326" - %"$consume_336" = sub i64 %"$gasrem_332", 1 - store i64 %"$consume_336", i64* @_gasrem, align 8 - %"$x_337" = load %Int32, %Int32* %x, align 4 - store %Int32 %"$x_337", %Int32* %"$retval_27", align 4, !dbg !25 - br label %"$matchsucc_321" +"$have_gas_337": ; preds = %"$out_of_gas_336", %"$Pair_328" + %"$consume_338" = sub i64 %"$gasrem_334", 1 + store i64 %"$consume_338", i64* @_gasrem, align 8 + %"$x_339" = load %Int32, %Int32* %x, align 4 + store %Int32 %"$x_339", %Int32* %"$retval_27", align 4, !dbg !50 + br label %"$matchsucc_323" -"$empty_default_325": ; preds = %"$have_gas_319" - br label %"$matchsucc_321" +"$empty_default_327": ; preds = %"$have_gas_321" + br label %"$matchsucc_323" -"$matchsucc_321": ; preds = %"$have_gas_335", %"$empty_default_325" - %"$$retval_27_338" = load %Int32, %Int32* %"$retval_27", align 4 - ret %Int32 %"$$retval_27_338" +"$matchsucc_323": ; preds = %"$have_gas_337", %"$empty_default_327" + %"$$retval_27_340" = load %Int32, %Int32* %"$retval_27", align 4 + ret %Int32 %"$$retval_27_340" } -define internal %TName_Pair_Int32_Int32* @"$fundef_23"(%"$$fundef_23_env_95"* %0, %TName_Nat* %1) !dbg !28 { +define internal %TName_Pair_Int32_Int32* @"$fundef_23"(%"$$fundef_23_env_95"* %0, %TName_Nat* %1) !dbg !53 { entry: - %"$$fundef_23_env_f0_146" = getelementptr inbounds %"$$fundef_23_env_95", %"$$fundef_23_env_95"* %0, i32 0, i32 0 - %"$f0_envload_147" = load %TName_Pair_Int32_Int32*, %TName_Pair_Int32_Int32** %"$$fundef_23_env_f0_146", align 8 + %"$n_212" = alloca %TName_Nat*, align 8 + store %TName_Nat* %1, %TName_Nat** %"$n_212", align 8 + call void @llvm.dbg.declare(metadata %TName_Nat** %"$n_212", metadata !55, metadata !DIExpression()), !dbg !56 + %"$$fundef_23_env_f0_147" = getelementptr inbounds %"$$fundef_23_env_95", %"$$fundef_23_env_95"* %0, i32 0, i32 0 + %"$f0_envload_148" = load %TName_Pair_Int32_Int32*, %TName_Pair_Int32_Int32** %"$$fundef_23_env_f0_147", align 8 %f0 = alloca %TName_Pair_Int32_Int32*, align 8 - store %TName_Pair_Int32_Int32* %"$f0_envload_147", %TName_Pair_Int32_Int32** %f0, align 8 - %"$$fundef_23_env_fn_148" = getelementptr inbounds %"$$fundef_23_env_95", %"$$fundef_23_env_95"* %0, i32 0, i32 1 - %"$fn_envload_149" = load { { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Pair_Int32_Int32*)*, i8* }, { { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Pair_Int32_Int32*)*, i8* }* %"$$fundef_23_env_fn_148", align 8 + store %TName_Pair_Int32_Int32* %"$f0_envload_148", %TName_Pair_Int32_Int32** %f0, align 8 + %"$$fundef_23_env_fn_149" = getelementptr inbounds %"$$fundef_23_env_95", %"$$fundef_23_env_95"* %0, i32 0, i32 1 + %"$fn_envload_150" = load { { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Pair_Int32_Int32*)*, i8* }, { { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Pair_Int32_Int32*)*, i8* }* %"$$fundef_23_env_fn_149", align 8 %fn = alloca { { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Pair_Int32_Int32*)*, i8* }, align 8 - store { { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Pair_Int32_Int32*)*, i8* } %"$fn_envload_149", { { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Pair_Int32_Int32*)*, i8* }* %fn, align 8 - %"$$fundef_23_env_g_150" = getelementptr inbounds %"$$fundef_23_env_95", %"$$fundef_23_env_95"* %0, i32 0, i32 2 - %"$g_envload_151" = load { { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Pair_Int32_Int32*)*, i8* }, { { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Pair_Int32_Int32*)*, i8* }* %"$$fundef_23_env_g_150", align 8 + store { { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Pair_Int32_Int32*)*, i8* } %"$fn_envload_150", { { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Pair_Int32_Int32*)*, i8* }* %fn, align 8 + %"$$fundef_23_env_g_151" = getelementptr inbounds %"$$fundef_23_env_95", %"$$fundef_23_env_95"* %0, i32 0, i32 2 + %"$g_envload_152" = load { { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Pair_Int32_Int32*)*, i8* }, { { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Pair_Int32_Int32*)*, i8* }* %"$$fundef_23_env_g_151", align 8 %g = alloca { { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Pair_Int32_Int32*)*, i8* }, align 8 - store { { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Pair_Int32_Int32*)*, i8* } %"$g_envload_151", { { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Pair_Int32_Int32*)*, i8* }* %g, align 8 + store { { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Pair_Int32_Int32*)*, i8* } %"$g_envload_152", { { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Pair_Int32_Int32*)*, i8* }* %g, align 8 %"$retval_24" = alloca %TName_Pair_Int32_Int32*, align 8 - %"$gasrem_152" = load i64, i64* @_gasrem, align 8 - %"$gascmp_153" = icmp ugt i64 2, %"$gasrem_152" - br i1 %"$gascmp_153", label %"$out_of_gas_154", label %"$have_gas_155" + call void @llvm.dbg.declare(metadata %TName_Pair_Int32_Int32** %"$retval_24", metadata !57, metadata !DIExpression()), !dbg !58 + %"$gasrem_153" = load i64, i64* @_gasrem, align 8 + %"$gascmp_154" = icmp ugt i64 2, %"$gasrem_153" + br i1 %"$gascmp_154", label %"$out_of_gas_155", label %"$have_gas_156" -"$out_of_gas_154": ; preds = %entry +"$out_of_gas_155": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_155" - -"$have_gas_155": ; preds = %"$out_of_gas_154", %entry - %"$consume_156" = sub i64 %"$gasrem_152", 2 - store i64 %"$consume_156", i64* @_gasrem, align 8 - %"$n_tag_158" = getelementptr inbounds %TName_Nat, %TName_Nat* %1, i32 0, i32 0 - %"$n_tag_159" = load i8, i8* %"$n_tag_158", align 1 - switch i8 %"$n_tag_159", label %"$empty_default_160" [ - i8 1, label %"$Succ_161" - i8 0, label %"$Zero_202" - ], !dbg !30 - -"$Succ_161": ; preds = %"$have_gas_155" - %"$n_162" = bitcast %TName_Nat* %1 to %CName_Succ* - %"$n1_gep_163" = getelementptr inbounds %CName_Succ, %CName_Succ* %"$n_162", i32 0, i32 1 - %"$n1_load_164" = load %TName_Nat*, %TName_Nat** %"$n1_gep_163", align 8 + br label %"$have_gas_156" + +"$have_gas_156": ; preds = %"$out_of_gas_155", %entry + %"$consume_157" = sub i64 %"$gasrem_153", 2 + store i64 %"$consume_157", i64* @_gasrem, align 8 + %"$n_tag_159" = getelementptr inbounds %TName_Nat, %TName_Nat* %1, i32 0, i32 0 + %"$n_tag_160" = load i8, i8* %"$n_tag_159", align 1 + switch i8 %"$n_tag_160", label %"$empty_default_161" [ + i8 1, label %"$Succ_162" + i8 0, label %"$Zero_203" + ], !dbg !58 + +"$Succ_162": ; preds = %"$have_gas_156" + %"$n_163" = bitcast %TName_Nat* %1 to %CName_Succ* + %"$n1_gep_164" = getelementptr inbounds %CName_Succ, %CName_Succ* %"$n_163", i32 0, i32 1 + %"$n1_load_165" = load %TName_Nat*, %TName_Nat** %"$n1_gep_164", align 8 %n1 = alloca %TName_Nat*, align 8 - store %TName_Nat* %"$n1_load_164", %TName_Nat** %n1, 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" + store %TName_Nat* %"$n1_load_165", %TName_Nat** %n1, 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_167": ; preds = %"$Succ_161" +"$out_of_gas_168": ; preds = %"$Succ_162" call void @_out_of_gas() - br label %"$have_gas_168" + br label %"$have_gas_169" -"$have_gas_168": ; preds = %"$out_of_gas_167", %"$Succ_161" - %"$consume_169" = sub i64 %"$gasrem_165", 1 - store i64 %"$consume_169", i64* @_gasrem, align 8 +"$have_gas_169": ; preds = %"$out_of_gas_168", %"$Succ_162" + %"$consume_170" = sub i64 %"$gasrem_166", 1 + store i64 %"$consume_170", i64* @_gasrem, align 8 %res = alloca %TName_Pair_Int32_Int32*, align 8 - %"$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" + call void @llvm.dbg.declare(metadata %TName_Pair_Int32_Int32** %res, metadata !59, metadata !DIExpression()), !dbg !62 + %"$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_172": ; preds = %"$have_gas_168" +"$out_of_gas_173": ; preds = %"$have_gas_169" call void @_out_of_gas() - br label %"$have_gas_173" + br label %"$have_gas_174" -"$have_gas_173": ; preds = %"$out_of_gas_172", %"$have_gas_168" - %"$consume_174" = sub i64 %"$gasrem_170", 1 - store i64 %"$consume_174", i64* @_gasrem, align 8 +"$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 %"$fn_9" = alloca { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* }, align 8 - %"$fn_175" = load { { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Pair_Int32_Int32*)*, i8* }, { { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Pair_Int32_Int32*)*, i8* }* %fn, align 8 - %"$fn_fptr_176" = extractvalue { { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Pair_Int32_Int32*)*, i8* } %"$fn_175", 0 - %"$fn_envptr_177" = extractvalue { { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Pair_Int32_Int32*)*, i8* } %"$fn_175", 1 - %"$f0_178" = load %TName_Pair_Int32_Int32*, %TName_Pair_Int32_Int32** %f0, align 8 - %"$fn_call_179" = call { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } %"$fn_fptr_176"(i8* %"$fn_envptr_177", %TName_Pair_Int32_Int32* %"$f0_178"), !dbg !31 - store { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } %"$fn_call_179", { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* }* %"$fn_9", align 8, !dbg !31 + %"$fn_176" = load { { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Pair_Int32_Int32*)*, i8* }, { { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Pair_Int32_Int32*)*, i8* }* %fn, align 8 + %"$fn_fptr_177" = extractvalue { { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Pair_Int32_Int32*)*, i8* } %"$fn_176", 0 + %"$fn_envptr_178" = extractvalue { { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Pair_Int32_Int32*)*, i8* } %"$fn_176", 1 + %"$f0_179" = load %TName_Pair_Int32_Int32*, %TName_Pair_Int32_Int32** %f0, align 8 + %"$fn_call_180" = call { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } %"$fn_fptr_177"(i8* %"$fn_envptr_178", %TName_Pair_Int32_Int32* %"$f0_179"), !dbg !63 + store { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } %"$fn_call_180", { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* }* %"$fn_9", align 8, !dbg !63 %"$fn_10" = alloca %TName_Pair_Int32_Int32*, align 8 - %"$$fn_9_180" = load { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* }, { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* }* %"$fn_9", align 8 - %"$$fn_9_fptr_181" = extractvalue { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } %"$$fn_9_180", 0 - %"$$fn_9_envptr_182" = extractvalue { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } %"$$fn_9_180", 1 - %"$n1_183" = load %TName_Nat*, %TName_Nat** %n1, align 8 - %"$$fn_9_call_184" = call %TName_Pair_Int32_Int32* %"$$fn_9_fptr_181"(i8* %"$$fn_9_envptr_182", %TName_Nat* %"$n1_183"), !dbg !31 - store %TName_Pair_Int32_Int32* %"$$fn_9_call_184", %TName_Pair_Int32_Int32** %"$fn_10", align 8, !dbg !31 - %"$$fn_10_185" = load %TName_Pair_Int32_Int32*, %TName_Pair_Int32_Int32** %"$fn_10", align 8 - store %TName_Pair_Int32_Int32* %"$$fn_10_185", %TName_Pair_Int32_Int32** %res, align 8, !dbg !31 - %"$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_173" + call void @llvm.dbg.declare(metadata %TName_Pair_Int32_Int32** %"$fn_10", metadata !64, metadata !DIExpression()), !dbg !63 + %"$$fn_9_181" = load { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* }, { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* }* %"$fn_9", align 8 + %"$$fn_9_fptr_182" = extractvalue { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } %"$$fn_9_181", 0 + %"$$fn_9_envptr_183" = extractvalue { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } %"$$fn_9_181", 1 + %"$n1_184" = load %TName_Nat*, %TName_Nat** %n1, align 8 + %"$$fn_9_call_185" = call %TName_Pair_Int32_Int32* %"$$fn_9_fptr_182"(i8* %"$$fn_9_envptr_183", %TName_Nat* %"$n1_184"), !dbg !63 + store %TName_Pair_Int32_Int32* %"$$fn_9_call_185", %TName_Pair_Int32_Int32** %"$fn_10", align 8, !dbg !63 + %"$$fn_10_186" = load %TName_Pair_Int32_Int32*, %TName_Pair_Int32_Int32** %"$fn_10", align 8 + store %TName_Pair_Int32_Int32* %"$$fn_10_186", %TName_Pair_Int32_Int32** %res, align 8, !dbg !63 + %"$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_174" call void @_out_of_gas() - br label %"$have_gas_189" + br label %"$have_gas_190" -"$have_gas_189": ; preds = %"$out_of_gas_188", %"$have_gas_173" - %"$consume_190" = sub i64 %"$gasrem_186", 1 - store i64 %"$consume_190", i64* @_gasrem, align 8 +"$have_gas_190": ; preds = %"$out_of_gas_189", %"$have_gas_174" + %"$consume_191" = sub i64 %"$gasrem_187", 1 + store i64 %"$consume_191", i64* @_gasrem, align 8 %"$g_11" = alloca { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* }, align 8 - %"$g_191" = load { { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Pair_Int32_Int32*)*, i8* }, { { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Pair_Int32_Int32*)*, i8* }* %g, align 8 - %"$g_fptr_192" = extractvalue { { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Pair_Int32_Int32*)*, i8* } %"$g_191", 0 - %"$g_envptr_193" = extractvalue { { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Pair_Int32_Int32*)*, i8* } %"$g_191", 1 - %"$res_194" = load %TName_Pair_Int32_Int32*, %TName_Pair_Int32_Int32** %res, align 8 - %"$g_call_195" = call { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } %"$g_fptr_192"(i8* %"$g_envptr_193", %TName_Pair_Int32_Int32* %"$res_194"), !dbg !34 - store { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } %"$g_call_195", { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* }* %"$g_11", align 8, !dbg !34 + %"$g_192" = load { { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Pair_Int32_Int32*)*, i8* }, { { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Pair_Int32_Int32*)*, i8* }* %g, align 8 + %"$g_fptr_193" = extractvalue { { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Pair_Int32_Int32*)*, i8* } %"$g_192", 0 + %"$g_envptr_194" = extractvalue { { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Pair_Int32_Int32*)*, i8* } %"$g_192", 1 + %"$res_195" = load %TName_Pair_Int32_Int32*, %TName_Pair_Int32_Int32** %res, align 8 + %"$g_call_196" = call { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } %"$g_fptr_193"(i8* %"$g_envptr_194", %TName_Pair_Int32_Int32* %"$res_195"), !dbg !65 + store { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } %"$g_call_196", { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* }* %"$g_11", align 8, !dbg !65 %"$g_12" = alloca %TName_Pair_Int32_Int32*, align 8 - %"$$g_11_196" = load { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* }, { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* }* %"$g_11", align 8 - %"$$g_11_fptr_197" = extractvalue { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } %"$$g_11_196", 0 - %"$$g_11_envptr_198" = extractvalue { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } %"$$g_11_196", 1 - %"$n1_199" = load %TName_Nat*, %TName_Nat** %n1, align 8 - %"$$g_11_call_200" = call %TName_Pair_Int32_Int32* %"$$g_11_fptr_197"(i8* %"$$g_11_envptr_198", %TName_Nat* %"$n1_199"), !dbg !34 - store %TName_Pair_Int32_Int32* %"$$g_11_call_200", %TName_Pair_Int32_Int32** %"$g_12", align 8, !dbg !34 - %"$$g_12_201" = load %TName_Pair_Int32_Int32*, %TName_Pair_Int32_Int32** %"$g_12", align 8 - store %TName_Pair_Int32_Int32* %"$$g_12_201", %TName_Pair_Int32_Int32** %"$retval_24", align 8, !dbg !34 - br label %"$matchsucc_157" - -"$Zero_202": ; preds = %"$have_gas_155" - %"$n_203" = bitcast %TName_Nat* %1 to %CName_Zero* - %"$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 = %"$Zero_202" + call void @llvm.dbg.declare(metadata %TName_Pair_Int32_Int32** %"$g_12", metadata !66, metadata !DIExpression()), !dbg !65 + %"$$g_11_197" = load { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* }, { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* }* %"$g_11", align 8 + %"$$g_11_fptr_198" = extractvalue { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } %"$$g_11_197", 0 + %"$$g_11_envptr_199" = extractvalue { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } %"$$g_11_197", 1 + %"$n1_200" = load %TName_Nat*, %TName_Nat** %n1, align 8 + %"$$g_11_call_201" = call %TName_Pair_Int32_Int32* %"$$g_11_fptr_198"(i8* %"$$g_11_envptr_199", %TName_Nat* %"$n1_200"), !dbg !65 + store %TName_Pair_Int32_Int32* %"$$g_11_call_201", %TName_Pair_Int32_Int32** %"$g_12", align 8, !dbg !65 + %"$$g_12_202" = load %TName_Pair_Int32_Int32*, %TName_Pair_Int32_Int32** %"$g_12", align 8 + store %TName_Pair_Int32_Int32* %"$$g_12_202", %TName_Pair_Int32_Int32** %"$retval_24", align 8, !dbg !65 + br label %"$matchsucc_158" + +"$Zero_203": ; preds = %"$have_gas_156" + %"$n_204" = bitcast %TName_Nat* %1 to %CName_Zero* + %"$gasrem_205" = load i64, i64* @_gasrem, align 8 + %"$gascmp_206" = icmp ugt i64 1, %"$gasrem_205" + br i1 %"$gascmp_206", label %"$out_of_gas_207", label %"$have_gas_208" + +"$out_of_gas_207": ; preds = %"$Zero_203" call void @_out_of_gas() - br label %"$have_gas_207" + br label %"$have_gas_208" -"$have_gas_207": ; preds = %"$out_of_gas_206", %"$Zero_202" - %"$consume_208" = sub i64 %"$gasrem_204", 1 - store i64 %"$consume_208", i64* @_gasrem, align 8 - %"$f0_209" = load %TName_Pair_Int32_Int32*, %TName_Pair_Int32_Int32** %f0, align 8 - store %TName_Pair_Int32_Int32* %"$f0_209", %TName_Pair_Int32_Int32** %"$retval_24", align 8, !dbg !35 - br label %"$matchsucc_157" +"$have_gas_208": ; preds = %"$out_of_gas_207", %"$Zero_203" + %"$consume_209" = sub i64 %"$gasrem_205", 1 + store i64 %"$consume_209", i64* @_gasrem, align 8 + %"$f0_210" = load %TName_Pair_Int32_Int32*, %TName_Pair_Int32_Int32** %f0, align 8 + store %TName_Pair_Int32_Int32* %"$f0_210", %TName_Pair_Int32_Int32** %"$retval_24", align 8, !dbg !67 + br label %"$matchsucc_158" -"$empty_default_160": ; preds = %"$have_gas_155" - br label %"$matchsucc_157" +"$empty_default_161": ; preds = %"$have_gas_156" + br label %"$matchsucc_158" -"$matchsucc_157": ; preds = %"$have_gas_207", %"$have_gas_189", %"$empty_default_160" - %"$$retval_24_210" = load %TName_Pair_Int32_Int32*, %TName_Pair_Int32_Int32** %"$retval_24", align 8 - ret %TName_Pair_Int32_Int32* %"$$retval_24_210" +"$matchsucc_158": ; preds = %"$have_gas_208", %"$have_gas_190", %"$empty_default_161" + %"$$retval_24_211" = load %TName_Pair_Int32_Int32*, %TName_Pair_Int32_Int32** %"$retval_24", align 8 + ret %TName_Pair_Int32_Int32* %"$$retval_24_211" } -define internal { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } @"$fundef_21"(%"$$fundef_21_env_96"* %0, %TName_Pair_Int32_Int32* %1) !dbg !37 { +define internal { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } @"$fundef_21"(%"$$fundef_21_env_96"* %0, %TName_Pair_Int32_Int32* %1) !dbg !69 { entry: + %"$f0_146" = alloca %TName_Pair_Int32_Int32*, align 8 + store %TName_Pair_Int32_Int32* %1, %TName_Pair_Int32_Int32** %"$f0_146", align 8 + call void @llvm.dbg.declare(metadata %TName_Pair_Int32_Int32** %"$f0_146", metadata !70, metadata !DIExpression()), !dbg !71 %"$$fundef_21_env_fn_122" = getelementptr inbounds %"$$fundef_21_env_96", %"$$fundef_21_env_96"* %0, i32 0, i32 0 %"$fn_envload_123" = load { { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Pair_Int32_Int32*)*, i8* }, { { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Pair_Int32_Int32*)*, i8* }* %"$$fundef_21_env_fn_122", align 8 %fn = alloca { { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Pair_Int32_Int32*)*, i8* }, align 8 @@ -694,12 +721,12 @@ entry: %"$$fundef_23_env_g_143" = getelementptr inbounds %"$$fundef_23_env_95", %"$$fundef_23_env_95"* %"$$fundef_23_envp_136", i32 0, i32 2 %"$g_144" = load { { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Pair_Int32_Int32*)*, i8* }, { { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Pair_Int32_Int32*)*, i8* }* %g, align 8 store { { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Pair_Int32_Int32*)*, i8* } %"$g_144", { { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Pair_Int32_Int32*)*, i8* }* %"$$fundef_23_env_g_143", align 8 - store { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } %"$$fundef_23_cloval_139", { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* }* %"$retval_22", align 8, !dbg !38 + store { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } %"$$fundef_23_cloval_139", { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* }* %"$retval_22", align 8, !dbg !72 %"$$retval_22_145" = load { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* }, { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* }* %"$retval_22", align 8 ret { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } %"$$retval_22_145" } -define internal { { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Pair_Int32_Int32*)*, i8* } @"$fundef_19"(%"$$fundef_19_env_97"* %0, { { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Pair_Int32_Int32*)*, i8* } %1) !dbg !39 { +define internal { { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Pair_Int32_Int32*)*, i8* } @"$fundef_19"(%"$$fundef_19_env_97"* %0, { { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Pair_Int32_Int32*)*, i8* } %1) !dbg !73 { entry: %"$retval_20" = alloca { { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Pair_Int32_Int32*)*, i8* }, align 8 %"$gasrem_108" = load i64, i64* @_gasrem, align 8 @@ -719,19 +746,19 @@ entry: %"$$fundef_21_env_voidp_115" = bitcast %"$$fundef_21_env_96"* %"$$fundef_21_envp_113" to i8* %"$$fundef_21_cloval_116" = insertvalue { { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Pair_Int32_Int32*)*, i8* } { { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Pair_Int32_Int32*)* bitcast ({ %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } (%"$$fundef_21_env_96"*, %TName_Pair_Int32_Int32*)* @"$fundef_21" to { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Pair_Int32_Int32*)*), i8* undef }, i8* %"$$fundef_21_env_voidp_115", 1 %g = alloca { { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Pair_Int32_Int32*)*, i8* }, align 8 - store { { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Pair_Int32_Int32*)*, i8* } %"$$fundef_21_cloval_116", { { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Pair_Int32_Int32*)*, i8* }* %g, align 8, !dbg !40 + store { { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Pair_Int32_Int32*)*, i8* } %"$$fundef_21_cloval_116", { { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Pair_Int32_Int32*)*, i8* }* %g, align 8, !dbg !74 %"$$fundef_21_env_fn_117" = getelementptr inbounds %"$$fundef_21_env_96", %"$$fundef_21_env_96"* %"$$fundef_21_envp_113", i32 0, i32 0 store { { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Pair_Int32_Int32*)*, i8* } %1, { { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Pair_Int32_Int32*)*, i8* }* %"$$fundef_21_env_fn_117", align 8 %"$$fundef_21_env_g_118" = getelementptr inbounds %"$$fundef_21_env_96", %"$$fundef_21_env_96"* %"$$fundef_21_envp_113", i32 0, i32 1 %"$g_119" = load { { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Pair_Int32_Int32*)*, i8* }, { { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Pair_Int32_Int32*)*, i8* }* %g, align 8 store { { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Pair_Int32_Int32*)*, i8* } %"$g_119", { { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Pair_Int32_Int32*)*, i8* }* %"$$fundef_21_env_g_118", align 8 %"$g_120" = load { { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Pair_Int32_Int32*)*, i8* }, { { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Pair_Int32_Int32*)*, i8* }* %g, align 8 - store { { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Pair_Int32_Int32*)*, i8* } %"$g_120", { { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Pair_Int32_Int32*)*, i8* }* %"$retval_20", align 8, !dbg !40 + store { { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Pair_Int32_Int32*)*, i8* } %"$g_120", { { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Pair_Int32_Int32*)*, i8* }* %"$retval_20", align 8, !dbg !74 %"$$retval_20_121" = load { { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Pair_Int32_Int32*)*, i8* }, { { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Pair_Int32_Int32*)*, i8* }* %"$retval_20", align 8 ret { { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Pair_Int32_Int32*)*, i8* } %"$$retval_20_121" } -define internal { { { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Pair_Int32_Int32*)*, i8* } (i8*, { { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Pair_Int32_Int32*)*, i8* })*, i8* } @"$fundef_17"(%"$$fundef_17_env_98"* %0) !dbg !41 { +define internal { { { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Pair_Int32_Int32*)*, i8* } (i8*, { { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Pair_Int32_Int32*)*, i8* })*, i8* } @"$fundef_17"(%"$$fundef_17_env_98"* %0) !dbg !75 { entry: %"$retval_18" = alloca { { { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Pair_Int32_Int32*)*, i8* } (i8*, { { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Pair_Int32_Int32*)*, i8* })*, i8* }, align 8 %"$gasrem_99" = load i64, i64* @_gasrem, align 8 @@ -745,7 +772,7 @@ entry: "$have_gas_102": ; preds = %"$out_of_gas_101", %entry %"$consume_103" = sub i64 %"$gasrem_99", 1 store i64 %"$consume_103", i64* @_gasrem, align 8 - store { { { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Pair_Int32_Int32*)*, i8* } (i8*, { { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Pair_Int32_Int32*)*, i8* })*, i8* } { { { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Pair_Int32_Int32*)*, i8* } (i8*, { { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Pair_Int32_Int32*)*, i8* })* bitcast ({ { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Pair_Int32_Int32*)*, i8* } (%"$$fundef_19_env_97"*, { { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Pair_Int32_Int32*)*, i8* })* @"$fundef_19" to { { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Pair_Int32_Int32*)*, i8* } (i8*, { { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Pair_Int32_Int32*)*, i8* })*), i8* null }, { { { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Pair_Int32_Int32*)*, i8* } (i8*, { { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Pair_Int32_Int32*)*, i8* })*, i8* }* %"$retval_18", align 8, !dbg !42 + store { { { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Pair_Int32_Int32*)*, i8* } (i8*, { { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Pair_Int32_Int32*)*, i8* })*, i8* } { { { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Pair_Int32_Int32*)*, i8* } (i8*, { { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Pair_Int32_Int32*)*, i8* })* bitcast ({ { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Pair_Int32_Int32*)*, i8* } (%"$$fundef_19_env_97"*, { { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Pair_Int32_Int32*)*, i8* })* @"$fundef_19" to { { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Pair_Int32_Int32*)*, i8* } (i8*, { { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Pair_Int32_Int32*)*, i8* })*), i8* null }, { { { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Pair_Int32_Int32*)*, i8* } (i8*, { { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Pair_Int32_Int32*)*, i8* })*, i8* }* %"$retval_18", align 8, !dbg !76 %"$$retval_18_107" = load { { { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Pair_Int32_Int32*)*, i8* } (i8*, { { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Pair_Int32_Int32*)*, i8* })*, i8* }, { { { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Pair_Int32_Int32*)*, i8* } (i8*, { { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Pair_Int32_Int32*)*, i8* })*, i8* }* %"$retval_18", align 8 ret { { { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Pair_Int32_Int32*)*, i8* } (i8*, { { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Pair_Int32_Int32*)*, i8* })*, i8* } %"$$retval_18_107" } @@ -754,67 +781,58 @@ declare void @_out_of_gas() declare i8* @_salloc(i8*, i64) +; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn +declare void @llvm.dbg.declare(metadata, metadata, metadata) #0 + declare %Int32 @_add_Int32(%Int32, %Int32) -define void @_init_libs() !dbg !43 { +define void @_init_libs() !dbg !77 { entry: - %"$gasrem_394" = load i64, i64* @_gasrem, align 8 - %"$gascmp_395" = icmp ugt i64 4, %"$gasrem_394" - br i1 %"$gascmp_395", label %"$out_of_gas_396", label %"$have_gas_397" - -"$out_of_gas_396": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_397" - -"$have_gas_397": ; preds = %"$out_of_gas_396", %entry - %"$consume_398" = sub i64 %"$gasrem_394", 4 - store i64 %"$consume_398", i64* @_gasrem, align 8 - store %Int32 { i32 4 }, %Int32* @"$_gas_charge_accrec_lib_5", align 4, !dbg !45 %"$gasrem_399" = load i64, i64* @_gasrem, align 8 - %"$gascmp_400" = icmp ugt i64 1, %"$gasrem_399" + %"$gascmp_400" = icmp ugt i64 4, %"$gasrem_399" br i1 %"$gascmp_400", label %"$out_of_gas_401", label %"$have_gas_402" -"$out_of_gas_401": ; preds = %"$have_gas_397" +"$out_of_gas_401": ; preds = %entry call void @_out_of_gas() br label %"$have_gas_402" -"$have_gas_402": ; preds = %"$out_of_gas_401", %"$have_gas_397" - %"$consume_403" = sub i64 %"$gasrem_399", 1 +"$have_gas_402": ; preds = %"$out_of_gas_401", %entry + %"$consume_403" = sub i64 %"$gasrem_399", 4 store i64 %"$consume_403", i64* @_gasrem, align 8 - %"$dyndisp_table_407_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$dyndisp_table_407_salloc_salloc" = call i8* @_salloc(i8* %"$dyndisp_table_407_salloc_load", i64 16) - %"$dyndisp_table_407_salloc" = bitcast i8* %"$dyndisp_table_407_salloc_salloc" to [1 x { i8*, i8* }]* - %"$dyndisp_table_407" = bitcast [1 x { i8*, i8* }]* %"$dyndisp_table_407_salloc" to { i8*, i8* }* - %"$dyndisp_gep_408" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_407", i32 0 - %"$dyndisp_pcast_409" = bitcast { i8*, i8* }* %"$dyndisp_gep_408" to { { { { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Pair_Int32_Int32*)*, i8* } (i8*, { { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Pair_Int32_Int32*)*, i8* })*, i8* } (i8*)*, i8* }* - store { { { { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Pair_Int32_Int32*)*, i8* } (i8*, { { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Pair_Int32_Int32*)*, i8* })*, i8* } (i8*)*, i8* } { { { { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Pair_Int32_Int32*)*, i8* } (i8*, { { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Pair_Int32_Int32*)*, i8* })*, i8* } (i8*)* bitcast ({ { { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Pair_Int32_Int32*)*, i8* } (i8*, { { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Pair_Int32_Int32*)*, i8* })*, i8* } (%"$$fundef_17_env_98"*)* @"$fundef_17" to { { { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Pair_Int32_Int32*)*, i8* } (i8*, { { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Pair_Int32_Int32*)*, i8* })*, i8* } (i8*)*), i8* null }, { { { { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Pair_Int32_Int32*)*, i8* } (i8*, { { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Pair_Int32_Int32*)*, i8* })*, i8* } (i8*)*, i8* }* %"$dyndisp_pcast_409", align 8 - store { i8*, i8* }* %"$dyndisp_table_407", { i8*, i8* }** @nat_fold, align 8, !dbg !46 - %"$gasrem_410" = load i64, i64* @_gasrem, align 8 - %"$gascmp_411" = icmp ugt i64 8, %"$gasrem_410" - br i1 %"$gascmp_411", label %"$out_of_gas_412", label %"$have_gas_413" - -"$out_of_gas_412": ; preds = %"$have_gas_402" - call void @_out_of_gas() - br label %"$have_gas_413" + store %Int32 { i32 4 }, %Int32* @"$_gas_charge_accrec_lib_5", align 4, !dbg !79 + %"$gasrem_404" = load i64, i64* @_gasrem, align 8 + %"$gascmp_405" = icmp ugt i64 1, %"$gasrem_404" + br i1 %"$gascmp_405", label %"$out_of_gas_406", label %"$have_gas_407" -"$have_gas_413": ; preds = %"$out_of_gas_412", %"$have_gas_402" - %"$consume_414" = sub i64 %"$gasrem_410", 8 - store i64 %"$consume_414", i64* @_gasrem, align 8 - store %Int32 { i32 8 }, %Int32* @"$_gas_charge_accBoolUtils_0", align 4, !dbg !45 +"$out_of_gas_406": ; preds = %"$have_gas_402" + call void @_out_of_gas() + br label %"$have_gas_407" + +"$have_gas_407": ; preds = %"$out_of_gas_406", %"$have_gas_402" + %"$consume_408" = sub i64 %"$gasrem_404", 1 + store i64 %"$consume_408", i64* @_gasrem, align 8 + %"$dyndisp_table_412_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$dyndisp_table_412_salloc_salloc" = call i8* @_salloc(i8* %"$dyndisp_table_412_salloc_load", i64 16) + %"$dyndisp_table_412_salloc" = bitcast i8* %"$dyndisp_table_412_salloc_salloc" to [1 x { i8*, i8* }]* + %"$dyndisp_table_412" = bitcast [1 x { i8*, i8* }]* %"$dyndisp_table_412_salloc" to { i8*, i8* }* + %"$dyndisp_gep_413" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_412", i32 0 + %"$dyndisp_pcast_414" = bitcast { i8*, i8* }* %"$dyndisp_gep_413" to { { { { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Pair_Int32_Int32*)*, i8* } (i8*, { { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Pair_Int32_Int32*)*, i8* })*, i8* } (i8*)*, i8* }* + store { { { { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Pair_Int32_Int32*)*, i8* } (i8*, { { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Pair_Int32_Int32*)*, i8* })*, i8* } (i8*)*, i8* } { { { { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Pair_Int32_Int32*)*, i8* } (i8*, { { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Pair_Int32_Int32*)*, i8* })*, i8* } (i8*)* bitcast ({ { { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Pair_Int32_Int32*)*, i8* } (i8*, { { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Pair_Int32_Int32*)*, i8* })*, i8* } (%"$$fundef_17_env_98"*)* @"$fundef_17" to { { { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Pair_Int32_Int32*)*, i8* } (i8*, { { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Pair_Int32_Int32*)*, i8* })*, i8* } (i8*)*), i8* null }, { { { { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Pair_Int32_Int32*)*, i8* } (i8*, { { %TName_Pair_Int32_Int32* (i8*, %TName_Nat*)*, i8* } (i8*, %TName_Pair_Int32_Int32*)*, i8* })*, i8* } (i8*)*, i8* }* %"$dyndisp_pcast_414", align 8 + store { i8*, i8* }* %"$dyndisp_table_412", { i8*, i8* }** @nat_fold, align 8, !dbg !80 %"$gasrem_415" = load i64, i64* @_gasrem, align 8 - %"$gascmp_416" = icmp ugt i64 196, %"$gasrem_415" + %"$gascmp_416" = icmp ugt i64 8, %"$gasrem_415" br i1 %"$gascmp_416", label %"$out_of_gas_417", label %"$have_gas_418" -"$out_of_gas_417": ; preds = %"$have_gas_413" +"$out_of_gas_417": ; preds = %"$have_gas_407" 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", 196 +"$have_gas_418": ; preds = %"$out_of_gas_417", %"$have_gas_407" + %"$consume_419" = sub i64 %"$gasrem_415", 8 store i64 %"$consume_419", i64* @_gasrem, align 8 - store %Int32 { i32 196 }, %Int32* @"$_gas_charge_accIntUtils_1", align 4, !dbg !45 + store %Int32 { i32 8 }, %Int32* @"$_gas_charge_accBoolUtils_0", align 4, !dbg !79 %"$gasrem_420" = load i64, i64* @_gasrem, align 8 - %"$gascmp_421" = icmp ugt i64 20, %"$gasrem_420" + %"$gascmp_421" = icmp ugt i64 196, %"$gasrem_420" br i1 %"$gascmp_421", label %"$out_of_gas_422", label %"$have_gas_423" "$out_of_gas_422": ; preds = %"$have_gas_418" @@ -822,11 +840,11 @@ entry: br label %"$have_gas_423" "$have_gas_423": ; preds = %"$out_of_gas_422", %"$have_gas_418" - %"$consume_424" = sub i64 %"$gasrem_420", 20 + %"$consume_424" = sub i64 %"$gasrem_420", 196 store i64 %"$consume_424", i64* @_gasrem, align 8 - store %Int32 { i32 20 }, %Int32* @"$_gas_charge_accListUtils_2", align 4, !dbg !45 + store %Int32 { i32 196 }, %Int32* @"$_gas_charge_accIntUtils_1", align 4, !dbg !79 %"$gasrem_425" = load i64, i64* @_gasrem, align 8 - %"$gascmp_426" = icmp ugt i64 12, %"$gasrem_425" + %"$gascmp_426" = icmp ugt i64 20, %"$gasrem_425" br i1 %"$gascmp_426", label %"$out_of_gas_427", label %"$have_gas_428" "$out_of_gas_427": ; preds = %"$have_gas_423" @@ -834,11 +852,11 @@ entry: br label %"$have_gas_428" "$have_gas_428": ; preds = %"$out_of_gas_427", %"$have_gas_423" - %"$consume_429" = sub i64 %"$gasrem_425", 12 + %"$consume_429" = sub i64 %"$gasrem_425", 20 store i64 %"$consume_429", i64* @_gasrem, align 8 - store %Int32 { i32 12 }, %Int32* @"$_gas_charge_accNatUtils_3", align 4, !dbg !45 + store %Int32 { i32 20 }, %Int32* @"$_gas_charge_accListUtils_2", align 4, !dbg !79 %"$gasrem_430" = load i64, i64* @_gasrem, align 8 - %"$gascmp_431" = icmp ugt i64 2, %"$gasrem_430" + %"$gascmp_431" = icmp ugt i64 12, %"$gasrem_430" br i1 %"$gascmp_431", label %"$out_of_gas_432", label %"$have_gas_433" "$out_of_gas_432": ; preds = %"$have_gas_428" @@ -846,403 +864,479 @@ entry: br label %"$have_gas_433" "$have_gas_433": ; preds = %"$out_of_gas_432", %"$have_gas_428" - %"$consume_434" = sub i64 %"$gasrem_430", 2 + %"$consume_434" = sub i64 %"$gasrem_430", 12 store i64 %"$consume_434", i64* @_gasrem, align 8 - store %Int32 { i32 2 }, %Int32* @"$_gas_charge_accPairUtils_4", align 4, !dbg !45 - ret void -} - -define internal %Int32 @_scilla_expr_fun(i8* %0) !dbg !47 { -entry: - %"$expr_25" = alloca %Int32, align 8 + store %Int32 { i32 12 }, %Int32* @"$_gas_charge_accNatUtils_3", align 4, !dbg !79 %"$gasrem_435" = load i64, i64* @_gasrem, align 8 - %"$gascmp_436" = icmp ugt i64 1, %"$gasrem_435" + %"$gascmp_436" = icmp ugt i64 2, %"$gasrem_435" br i1 %"$gascmp_436", label %"$out_of_gas_437", label %"$have_gas_438" -"$out_of_gas_437": ; preds = %entry +"$out_of_gas_437": ; preds = %"$have_gas_433" call void @_out_of_gas() br label %"$have_gas_438" -"$have_gas_438": ; preds = %"$out_of_gas_437", %entry - %"$consume_439" = sub i64 %"$gasrem_435", 1 +"$have_gas_438": ; preds = %"$out_of_gas_437", %"$have_gas_433" + %"$consume_439" = sub i64 %"$gasrem_435", 2 store i64 %"$consume_439", i64* @_gasrem, align 8 - %zero = alloca %TName_Nat*, align 8 + store %Int32 { i32 2 }, %Int32* @"$_gas_charge_accPairUtils_4", align 4, !dbg !79 + ret void +} + +define internal %Int32 @_scilla_expr_fun(i8* %0) !dbg !81 { +entry: + %"$expr_25" = alloca %Int32, align 8 + call void @llvm.dbg.declare(metadata %Int32* %"$expr_25", metadata !82, metadata !DIExpression()), !dbg !83 %"$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_442": ; preds = %"$have_gas_438" +"$out_of_gas_442": ; preds = %entry call void @_out_of_gas() br label %"$have_gas_443" -"$have_gas_443": ; preds = %"$out_of_gas_442", %"$have_gas_438" +"$have_gas_443": ; preds = %"$out_of_gas_442", %entry %"$consume_444" = sub i64 %"$gasrem_440", 1 store i64 %"$consume_444", i64* @_gasrem, align 8 - %"$adtval_445_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_445_salloc" = call i8* @_salloc(i8* %"$adtval_445_load", i64 1) - %"$adtval_445" = bitcast i8* %"$adtval_445_salloc" to %CName_Zero* - %"$adtgep_446" = getelementptr inbounds %CName_Zero, %CName_Zero* %"$adtval_445", i32 0, i32 0 - store i8 0, i8* %"$adtgep_446", align 1 - %"$adtptr_447" = bitcast %CName_Zero* %"$adtval_445" to %TName_Nat* - store %TName_Nat* %"$adtptr_447", %TName_Nat** %zero, align 8, !dbg !48 - %"$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_443" - call void @_out_of_gas() - br label %"$have_gas_451" + %zero = alloca %TName_Nat*, align 8 + call void @llvm.dbg.declare(metadata %TName_Nat** %zero, metadata !84, metadata !DIExpression()), !dbg !85 + %"$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_451": ; preds = %"$out_of_gas_450", %"$have_gas_443" - %"$consume_452" = sub i64 %"$gasrem_448", 1 - store i64 %"$consume_452", i64* @_gasrem, align 8 - %one = alloca %TName_Nat*, align 8 +"$out_of_gas_447": ; preds = %"$have_gas_443" + call void @_out_of_gas() + br label %"$have_gas_448" + +"$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 + %"$adtval_450_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_450_salloc" = call i8* @_salloc(i8* %"$adtval_450_load", i64 1) + %"$adtval_450" = bitcast i8* %"$adtval_450_salloc" to %CName_Zero* + %"$adtgep_451" = getelementptr inbounds %CName_Zero, %CName_Zero* %"$adtval_450", i32 0, i32 0 + store i8 0, i8* %"$adtgep_451", align 1 + %"$adtptr_452" = bitcast %CName_Zero* %"$adtval_450" to %TName_Nat* + store %TName_Nat* %"$adtptr_452", %TName_Nat** %zero, align 8, !dbg !83 %"$gasrem_453" = load i64, i64* @_gasrem, align 8 %"$gascmp_454" = icmp ugt i64 1, %"$gasrem_453" br i1 %"$gascmp_454", label %"$out_of_gas_455", label %"$have_gas_456" -"$out_of_gas_455": ; preds = %"$have_gas_451" +"$out_of_gas_455": ; preds = %"$have_gas_448" call void @_out_of_gas() br label %"$have_gas_456" -"$have_gas_456": ; preds = %"$out_of_gas_455", %"$have_gas_451" +"$have_gas_456": ; preds = %"$out_of_gas_455", %"$have_gas_448" %"$consume_457" = sub i64 %"$gasrem_453", 1 store i64 %"$consume_457", i64* @_gasrem, align 8 - %"$zero_458" = load %TName_Nat*, %TName_Nat** %zero, align 8 - %"$adtval_459_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_459_salloc" = call i8* @_salloc(i8* %"$adtval_459_load", i64 9) - %"$adtval_459" = bitcast i8* %"$adtval_459_salloc" to %CName_Succ* - %"$adtgep_460" = getelementptr inbounds %CName_Succ, %CName_Succ* %"$adtval_459", i32 0, i32 0 - store i8 1, i8* %"$adtgep_460", align 1 - %"$adtgep_461" = getelementptr inbounds %CName_Succ, %CName_Succ* %"$adtval_459", i32 0, i32 1 - store %TName_Nat* %"$zero_458", %TName_Nat** %"$adtgep_461", align 8 - %"$adtptr_462" = bitcast %CName_Succ* %"$adtval_459" to %TName_Nat* - store %TName_Nat* %"$adtptr_462", %TName_Nat** %one, align 8, !dbg !49 - %"$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_456" - call void @_out_of_gas() - br label %"$have_gas_466" + %one = alloca %TName_Nat*, align 8 + call void @llvm.dbg.declare(metadata %TName_Nat** %one, metadata !86, metadata !DIExpression()), !dbg !87 + %"$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" -"$have_gas_466": ; preds = %"$out_of_gas_465", %"$have_gas_456" - %"$consume_467" = sub i64 %"$gasrem_463", 1 - store i64 %"$consume_467", i64* @_gasrem, align 8 - %two = alloca %TName_Nat*, align 8 +"$out_of_gas_460": ; preds = %"$have_gas_456" + call void @_out_of_gas() + br label %"$have_gas_461" + +"$have_gas_461": ; preds = %"$out_of_gas_460", %"$have_gas_456" + %"$consume_462" = sub i64 %"$gasrem_458", 1 + store i64 %"$consume_462", i64* @_gasrem, align 8 + %"$zero_463" = load %TName_Nat*, %TName_Nat** %zero, align 8 + %"$adtval_464_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_464_salloc" = call i8* @_salloc(i8* %"$adtval_464_load", i64 9) + %"$adtval_464" = bitcast i8* %"$adtval_464_salloc" to %CName_Succ* + %"$adtgep_465" = getelementptr inbounds %CName_Succ, %CName_Succ* %"$adtval_464", i32 0, i32 0 + store i8 1, i8* %"$adtgep_465", align 1 + %"$adtgep_466" = getelementptr inbounds %CName_Succ, %CName_Succ* %"$adtval_464", i32 0, i32 1 + store %TName_Nat* %"$zero_463", %TName_Nat** %"$adtgep_466", align 8 + %"$adtptr_467" = bitcast %CName_Succ* %"$adtval_464" to %TName_Nat* + store %TName_Nat* %"$adtptr_467", %TName_Nat** %one, align 8, !dbg !88 %"$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 = %"$have_gas_466" +"$out_of_gas_470": ; preds = %"$have_gas_461" call void @_out_of_gas() br label %"$have_gas_471" -"$have_gas_471": ; preds = %"$out_of_gas_470", %"$have_gas_466" +"$have_gas_471": ; preds = %"$out_of_gas_470", %"$have_gas_461" %"$consume_472" = sub i64 %"$gasrem_468", 1 store i64 %"$consume_472", i64* @_gasrem, align 8 - %"$one_473" = load %TName_Nat*, %TName_Nat** %one, align 8 - %"$adtval_474_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_474_salloc" = call i8* @_salloc(i8* %"$adtval_474_load", i64 9) - %"$adtval_474" = bitcast i8* %"$adtval_474_salloc" to %CName_Succ* - %"$adtgep_475" = getelementptr inbounds %CName_Succ, %CName_Succ* %"$adtval_474", i32 0, i32 0 - store i8 1, i8* %"$adtgep_475", align 1 - %"$adtgep_476" = getelementptr inbounds %CName_Succ, %CName_Succ* %"$adtval_474", i32 0, i32 1 - store %TName_Nat* %"$one_473", %TName_Nat** %"$adtgep_476", align 8 - %"$adtptr_477" = bitcast %CName_Succ* %"$adtval_474" to %TName_Nat* - store %TName_Nat* %"$adtptr_477", %TName_Nat** %two, align 8, !dbg !50 - %"$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" - -"$out_of_gas_480": ; preds = %"$have_gas_471" - call void @_out_of_gas() - br label %"$have_gas_481" + %two = alloca %TName_Nat*, align 8 + call void @llvm.dbg.declare(metadata %TName_Nat** %two, metadata !89, metadata !DIExpression()), !dbg !90 + %"$gasrem_473" = load i64, i64* @_gasrem, align 8 + %"$gascmp_474" = icmp ugt i64 1, %"$gasrem_473" + br i1 %"$gascmp_474", label %"$out_of_gas_475", label %"$have_gas_476" -"$have_gas_481": ; preds = %"$out_of_gas_480", %"$have_gas_471" - %"$consume_482" = sub i64 %"$gasrem_478", 1 - store i64 %"$consume_482", i64* @_gasrem, align 8 - %three = alloca %TName_Nat*, align 8 +"$out_of_gas_475": ; preds = %"$have_gas_471" + call void @_out_of_gas() + br label %"$have_gas_476" + +"$have_gas_476": ; preds = %"$out_of_gas_475", %"$have_gas_471" + %"$consume_477" = sub i64 %"$gasrem_473", 1 + store i64 %"$consume_477", i64* @_gasrem, align 8 + %"$one_478" = load %TName_Nat*, %TName_Nat** %one, align 8 + %"$adtval_479_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_479_salloc" = call i8* @_salloc(i8* %"$adtval_479_load", i64 9) + %"$adtval_479" = bitcast i8* %"$adtval_479_salloc" to %CName_Succ* + %"$adtgep_480" = getelementptr inbounds %CName_Succ, %CName_Succ* %"$adtval_479", i32 0, i32 0 + store i8 1, i8* %"$adtgep_480", align 1 + %"$adtgep_481" = getelementptr inbounds %CName_Succ, %CName_Succ* %"$adtval_479", i32 0, i32 1 + store %TName_Nat* %"$one_478", %TName_Nat** %"$adtgep_481", align 8 + %"$adtptr_482" = bitcast %CName_Succ* %"$adtval_479" to %TName_Nat* + store %TName_Nat* %"$adtptr_482", %TName_Nat** %two, align 8, !dbg !91 %"$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_481" +"$out_of_gas_485": ; preds = %"$have_gas_476" call void @_out_of_gas() br label %"$have_gas_486" -"$have_gas_486": ; preds = %"$out_of_gas_485", %"$have_gas_481" +"$have_gas_486": ; preds = %"$out_of_gas_485", %"$have_gas_476" %"$consume_487" = sub i64 %"$gasrem_483", 1 store i64 %"$consume_487", i64* @_gasrem, align 8 - %"$two_488" = load %TName_Nat*, %TName_Nat** %two, align 8 - %"$adtval_489_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_489_salloc" = call i8* @_salloc(i8* %"$adtval_489_load", i64 9) - %"$adtval_489" = bitcast i8* %"$adtval_489_salloc" to %CName_Succ* - %"$adtgep_490" = getelementptr inbounds %CName_Succ, %CName_Succ* %"$adtval_489", i32 0, i32 0 - store i8 1, i8* %"$adtgep_490", align 1 - %"$adtgep_491" = getelementptr inbounds %CName_Succ, %CName_Succ* %"$adtval_489", i32 0, i32 1 - store %TName_Nat* %"$two_488", %TName_Nat** %"$adtgep_491", align 8 - %"$adtptr_492" = bitcast %CName_Succ* %"$adtval_489" to %TName_Nat* - store %TName_Nat* %"$adtptr_492", %TName_Nat** %three, align 8, !dbg !51 - %"$gasrem_493" = load i64, i64* @_gasrem, align 8 - %"$gascmp_494" = icmp ugt i64 1, %"$gasrem_493" - br i1 %"$gascmp_494", label %"$out_of_gas_495", label %"$have_gas_496" - -"$out_of_gas_495": ; preds = %"$have_gas_486" - call void @_out_of_gas() - br label %"$have_gas_496" + %three = alloca %TName_Nat*, align 8 + call void @llvm.dbg.declare(metadata %TName_Nat** %three, metadata !92, metadata !DIExpression()), !dbg !93 + %"$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" -"$have_gas_496": ; preds = %"$out_of_gas_495", %"$have_gas_486" - %"$consume_497" = sub i64 %"$gasrem_493", 1 - store i64 %"$consume_497", i64* @_gasrem, align 8 - %four = alloca %TName_Nat*, align 8 +"$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 + %"$two_493" = load %TName_Nat*, %TName_Nat** %two, align 8 + %"$adtval_494_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_494_salloc" = call i8* @_salloc(i8* %"$adtval_494_load", i64 9) + %"$adtval_494" = bitcast i8* %"$adtval_494_salloc" to %CName_Succ* + %"$adtgep_495" = getelementptr inbounds %CName_Succ, %CName_Succ* %"$adtval_494", i32 0, i32 0 + store i8 1, i8* %"$adtgep_495", align 1 + %"$adtgep_496" = getelementptr inbounds %CName_Succ, %CName_Succ* %"$adtval_494", i32 0, i32 1 + store %TName_Nat* %"$two_493", %TName_Nat** %"$adtgep_496", align 8 + %"$adtptr_497" = bitcast %CName_Succ* %"$adtval_494" to %TName_Nat* + store %TName_Nat* %"$adtptr_497", %TName_Nat** %three, align 8, !dbg !94 %"$gasrem_498" = load i64, i64* @_gasrem, align 8 %"$gascmp_499" = icmp ugt i64 1, %"$gasrem_498" br i1 %"$gascmp_499", label %"$out_of_gas_500", label %"$have_gas_501" -"$out_of_gas_500": ; preds = %"$have_gas_496" +"$out_of_gas_500": ; preds = %"$have_gas_491" call void @_out_of_gas() br label %"$have_gas_501" -"$have_gas_501": ; preds = %"$out_of_gas_500", %"$have_gas_496" +"$have_gas_501": ; preds = %"$out_of_gas_500", %"$have_gas_491" %"$consume_502" = sub i64 %"$gasrem_498", 1 store i64 %"$consume_502", i64* @_gasrem, align 8 - %"$three_503" = load %TName_Nat*, %TName_Nat** %three, align 8 - %"$adtval_504_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_504_salloc" = call i8* @_salloc(i8* %"$adtval_504_load", i64 9) - %"$adtval_504" = bitcast i8* %"$adtval_504_salloc" to %CName_Succ* - %"$adtgep_505" = getelementptr inbounds %CName_Succ, %CName_Succ* %"$adtval_504", i32 0, i32 0 - store i8 1, i8* %"$adtgep_505", align 1 - %"$adtgep_506" = getelementptr inbounds %CName_Succ, %CName_Succ* %"$adtval_504", i32 0, i32 1 - store %TName_Nat* %"$three_503", %TName_Nat** %"$adtgep_506", align 8 - %"$adtptr_507" = bitcast %CName_Succ* %"$adtval_504" to %TName_Nat* - store %TName_Nat* %"$adtptr_507", %TName_Nat** %four, align 8, !dbg !52 - %"$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" - -"$out_of_gas_510": ; preds = %"$have_gas_501" - call void @_out_of_gas() - br label %"$have_gas_511" + %four = alloca %TName_Nat*, align 8 + call void @llvm.dbg.declare(metadata %TName_Nat** %four, metadata !95, metadata !DIExpression()), !dbg !96 + %"$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" -"$have_gas_511": ; preds = %"$out_of_gas_510", %"$have_gas_501" - %"$consume_512" = sub i64 %"$gasrem_508", 1 - store i64 %"$consume_512", i64* @_gasrem, align 8 - %five = alloca %TName_Nat*, align 8 +"$out_of_gas_505": ; preds = %"$have_gas_501" + call void @_out_of_gas() + br label %"$have_gas_506" + +"$have_gas_506": ; preds = %"$out_of_gas_505", %"$have_gas_501" + %"$consume_507" = sub i64 %"$gasrem_503", 1 + store i64 %"$consume_507", i64* @_gasrem, align 8 + %"$three_508" = load %TName_Nat*, %TName_Nat** %three, align 8 + %"$adtval_509_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_509_salloc" = call i8* @_salloc(i8* %"$adtval_509_load", i64 9) + %"$adtval_509" = bitcast i8* %"$adtval_509_salloc" to %CName_Succ* + %"$adtgep_510" = getelementptr inbounds %CName_Succ, %CName_Succ* %"$adtval_509", i32 0, i32 0 + store i8 1, i8* %"$adtgep_510", align 1 + %"$adtgep_511" = getelementptr inbounds %CName_Succ, %CName_Succ* %"$adtval_509", i32 0, i32 1 + store %TName_Nat* %"$three_508", %TName_Nat** %"$adtgep_511", align 8 + %"$adtptr_512" = bitcast %CName_Succ* %"$adtval_509" to %TName_Nat* + store %TName_Nat* %"$adtptr_512", %TName_Nat** %four, align 8, !dbg !97 %"$gasrem_513" = load i64, i64* @_gasrem, align 8 %"$gascmp_514" = icmp ugt i64 1, %"$gasrem_513" br i1 %"$gascmp_514", label %"$out_of_gas_515", label %"$have_gas_516" -"$out_of_gas_515": ; preds = %"$have_gas_511" +"$out_of_gas_515": ; preds = %"$have_gas_506" call void @_out_of_gas() br label %"$have_gas_516" -"$have_gas_516": ; preds = %"$out_of_gas_515", %"$have_gas_511" +"$have_gas_516": ; preds = %"$out_of_gas_515", %"$have_gas_506" %"$consume_517" = sub i64 %"$gasrem_513", 1 store i64 %"$consume_517", i64* @_gasrem, align 8 - %"$four_518" = load %TName_Nat*, %TName_Nat** %four, align 8 - %"$adtval_519_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_519_salloc" = call i8* @_salloc(i8* %"$adtval_519_load", i64 9) - %"$adtval_519" = bitcast i8* %"$adtval_519_salloc" to %CName_Succ* - %"$adtgep_520" = getelementptr inbounds %CName_Succ, %CName_Succ* %"$adtval_519", i32 0, i32 0 - store i8 1, i8* %"$adtgep_520", align 1 - %"$adtgep_521" = getelementptr inbounds %CName_Succ, %CName_Succ* %"$adtval_519", i32 0, i32 1 - store %TName_Nat* %"$four_518", %TName_Nat** %"$adtgep_521", align 8 - %"$adtptr_522" = bitcast %CName_Succ* %"$adtval_519" to %TName_Nat* - store %TName_Nat* %"$adtptr_522", %TName_Nat** %five, 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_525": ; preds = %"$have_gas_516" - call void @_out_of_gas() - br label %"$have_gas_526" + %five = alloca %TName_Nat*, align 8 + call void @llvm.dbg.declare(metadata %TName_Nat** %five, metadata !98, metadata !DIExpression()), !dbg !99 + %"$gasrem_518" = load i64, i64* @_gasrem, align 8 + %"$gascmp_519" = icmp ugt i64 1, %"$gasrem_518" + br i1 %"$gascmp_519", label %"$out_of_gas_520", label %"$have_gas_521" -"$have_gas_526": ; preds = %"$out_of_gas_525", %"$have_gas_516" - %"$consume_527" = sub i64 %"$gasrem_523", 1 - store i64 %"$consume_527", i64* @_gasrem, align 8 - %six = alloca %TName_Nat*, align 8 +"$out_of_gas_520": ; preds = %"$have_gas_516" + call void @_out_of_gas() + br label %"$have_gas_521" + +"$have_gas_521": ; preds = %"$out_of_gas_520", %"$have_gas_516" + %"$consume_522" = sub i64 %"$gasrem_518", 1 + store i64 %"$consume_522", i64* @_gasrem, align 8 + %"$four_523" = load %TName_Nat*, %TName_Nat** %four, align 8 + %"$adtval_524_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_524_salloc" = call i8* @_salloc(i8* %"$adtval_524_load", i64 9) + %"$adtval_524" = bitcast i8* %"$adtval_524_salloc" to %CName_Succ* + %"$adtgep_525" = getelementptr inbounds %CName_Succ, %CName_Succ* %"$adtval_524", i32 0, i32 0 + store i8 1, i8* %"$adtgep_525", align 1 + %"$adtgep_526" = getelementptr inbounds %CName_Succ, %CName_Succ* %"$adtval_524", i32 0, i32 1 + store %TName_Nat* %"$four_523", %TName_Nat** %"$adtgep_526", align 8 + %"$adtptr_527" = bitcast %CName_Succ* %"$adtval_524" to %TName_Nat* + store %TName_Nat* %"$adtptr_527", %TName_Nat** %five, align 8, !dbg !100 %"$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_530": ; preds = %"$have_gas_526" +"$out_of_gas_530": ; preds = %"$have_gas_521" call void @_out_of_gas() br label %"$have_gas_531" -"$have_gas_531": ; preds = %"$out_of_gas_530", %"$have_gas_526" +"$have_gas_531": ; preds = %"$out_of_gas_530", %"$have_gas_521" %"$consume_532" = sub i64 %"$gasrem_528", 1 store i64 %"$consume_532", i64* @_gasrem, align 8 - %"$five_533" = load %TName_Nat*, %TName_Nat** %five, align 8 - %"$adtval_534_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_534_salloc" = call i8* @_salloc(i8* %"$adtval_534_load", i64 9) - %"$adtval_534" = bitcast i8* %"$adtval_534_salloc" to %CName_Succ* - %"$adtgep_535" = getelementptr inbounds %CName_Succ, %CName_Succ* %"$adtval_534", i32 0, i32 0 - store i8 1, i8* %"$adtgep_535", align 1 - %"$adtgep_536" = getelementptr inbounds %CName_Succ, %CName_Succ* %"$adtval_534", i32 0, i32 1 - store %TName_Nat* %"$five_533", %TName_Nat** %"$adtgep_536", align 8 - %"$adtptr_537" = bitcast %CName_Succ* %"$adtval_534" to %TName_Nat* - store %TName_Nat* %"$adtptr_537", %TName_Nat** %six, align 8, !dbg !54 - %"$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 = %"$have_gas_531" - call void @_out_of_gas() - br label %"$have_gas_541" + %six = alloca %TName_Nat*, align 8 + call void @llvm.dbg.declare(metadata %TName_Nat** %six, metadata !101, metadata !DIExpression()), !dbg !102 + %"$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" -"$have_gas_541": ; preds = %"$out_of_gas_540", %"$have_gas_531" - %"$consume_542" = sub i64 %"$gasrem_538", 1 - store i64 %"$consume_542", i64* @_gasrem, align 8 - %seven = alloca %TName_Nat*, align 8 +"$out_of_gas_535": ; preds = %"$have_gas_531" + call void @_out_of_gas() + br label %"$have_gas_536" + +"$have_gas_536": ; preds = %"$out_of_gas_535", %"$have_gas_531" + %"$consume_537" = sub i64 %"$gasrem_533", 1 + store i64 %"$consume_537", i64* @_gasrem, align 8 + %"$five_538" = load %TName_Nat*, %TName_Nat** %five, align 8 + %"$adtval_539_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_539_salloc" = call i8* @_salloc(i8* %"$adtval_539_load", i64 9) + %"$adtval_539" = bitcast i8* %"$adtval_539_salloc" to %CName_Succ* + %"$adtgep_540" = getelementptr inbounds %CName_Succ, %CName_Succ* %"$adtval_539", i32 0, i32 0 + store i8 1, i8* %"$adtgep_540", align 1 + %"$adtgep_541" = getelementptr inbounds %CName_Succ, %CName_Succ* %"$adtval_539", i32 0, i32 1 + store %TName_Nat* %"$five_538", %TName_Nat** %"$adtgep_541", align 8 + %"$adtptr_542" = bitcast %CName_Succ* %"$adtval_539" to %TName_Nat* + store %TName_Nat* %"$adtptr_542", %TName_Nat** %six, align 8, !dbg !103 %"$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" +"$out_of_gas_545": ; preds = %"$have_gas_536" call void @_out_of_gas() br label %"$have_gas_546" -"$have_gas_546": ; preds = %"$out_of_gas_545", %"$have_gas_541" +"$have_gas_546": ; preds = %"$out_of_gas_545", %"$have_gas_536" %"$consume_547" = sub i64 %"$gasrem_543", 1 store i64 %"$consume_547", i64* @_gasrem, align 8 - %"$six_548" = load %TName_Nat*, %TName_Nat** %six, align 8 - %"$adtval_549_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_549_salloc" = call i8* @_salloc(i8* %"$adtval_549_load", i64 9) - %"$adtval_549" = bitcast i8* %"$adtval_549_salloc" to %CName_Succ* - %"$adtgep_550" = getelementptr inbounds %CName_Succ, %CName_Succ* %"$adtval_549", i32 0, i32 0 - store i8 1, i8* %"$adtgep_550", align 1 - %"$adtgep_551" = getelementptr inbounds %CName_Succ, %CName_Succ* %"$adtval_549", i32 0, i32 1 - store %TName_Nat* %"$six_548", %TName_Nat** %"$adtgep_551", align 8 - %"$adtptr_552" = bitcast %CName_Succ* %"$adtval_549" to %TName_Nat* - store %TName_Nat* %"$adtptr_552", %TName_Nat** %seven, align 8, !dbg !55 - %"$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_546" - call void @_out_of_gas() - br label %"$have_gas_556" + %seven = alloca %TName_Nat*, align 8 + call void @llvm.dbg.declare(metadata %TName_Nat** %seven, metadata !104, metadata !DIExpression()), !dbg !105 + %"$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" -"$have_gas_556": ; preds = %"$out_of_gas_555", %"$have_gas_546" - %"$consume_557" = sub i64 %"$gasrem_553", 1 - store i64 %"$consume_557", i64* @_gasrem, align 8 - %fib = alloca { %Int32 (i8*, %TName_Nat*)*, i8* }, align 8 +"$out_of_gas_550": ; preds = %"$have_gas_546" + call void @_out_of_gas() + br label %"$have_gas_551" + +"$have_gas_551": ; preds = %"$out_of_gas_550", %"$have_gas_546" + %"$consume_552" = sub i64 %"$gasrem_548", 1 + store i64 %"$consume_552", i64* @_gasrem, align 8 + %"$six_553" = load %TName_Nat*, %TName_Nat** %six, align 8 + %"$adtval_554_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_554_salloc" = call i8* @_salloc(i8* %"$adtval_554_load", i64 9) + %"$adtval_554" = bitcast i8* %"$adtval_554_salloc" to %CName_Succ* + %"$adtgep_555" = getelementptr inbounds %CName_Succ, %CName_Succ* %"$adtval_554", i32 0, i32 0 + store i8 1, i8* %"$adtgep_555", align 1 + %"$adtgep_556" = getelementptr inbounds %CName_Succ, %CName_Succ* %"$adtval_554", i32 0, i32 1 + store %TName_Nat* %"$six_553", %TName_Nat** %"$adtgep_556", align 8 + %"$adtptr_557" = bitcast %CName_Succ* %"$adtval_554" to %TName_Nat* + store %TName_Nat* %"$adtptr_557", %TName_Nat** %seven, align 8, !dbg !106 %"$gasrem_558" = load i64, i64* @_gasrem, align 8 %"$gascmp_559" = icmp ugt i64 1, %"$gasrem_558" br i1 %"$gascmp_559", label %"$out_of_gas_560", label %"$have_gas_561" -"$out_of_gas_560": ; preds = %"$have_gas_556" +"$out_of_gas_560": ; preds = %"$have_gas_551" call void @_out_of_gas() br label %"$have_gas_561" -"$have_gas_561": ; preds = %"$out_of_gas_560", %"$have_gas_556" +"$have_gas_561": ; preds = %"$out_of_gas_560", %"$have_gas_551" %"$consume_562" = sub i64 %"$gasrem_558", 1 store i64 %"$consume_562", i64* @_gasrem, align 8 - %"$$fundef_26_envp_563_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_26_envp_563_salloc" = call i8* @_salloc(i8* %"$$fundef_26_envp_563_load", i64 8) - %"$$fundef_26_envp_563" = bitcast i8* %"$$fundef_26_envp_563_salloc" to %"$$fundef_26_env_94"* - %"$$fundef_26_env_voidp_565" = bitcast %"$$fundef_26_env_94"* %"$$fundef_26_envp_563" to i8* - %"$$fundef_26_cloval_566" = insertvalue { %Int32 (i8*, %TName_Nat*)*, i8* } { %Int32 (i8*, %TName_Nat*)* bitcast (%Int32 (%"$$fundef_26_env_94"*, %TName_Nat*)* @"$fundef_26" to %Int32 (i8*, %TName_Nat*)*), i8* undef }, i8* %"$$fundef_26_env_voidp_565", 1 - %"$$fundef_26_env_nat_fold_567" = getelementptr inbounds %"$$fundef_26_env_94", %"$$fundef_26_env_94"* %"$$fundef_26_envp_563", i32 0, i32 0 - %"$nat_fold_568" = load { i8*, i8* }*, { i8*, i8* }** @nat_fold, align 8 - store { i8*, i8* }* %"$nat_fold_568", { i8*, i8* }** %"$$fundef_26_env_nat_fold_567", align 8 - store { %Int32 (i8*, %TName_Nat*)*, i8* } %"$$fundef_26_cloval_566", { %Int32 (i8*, %TName_Nat*)*, i8* }* %fib, align 8, !dbg !56 - %"$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_561" + %fib = alloca { %Int32 (i8*, %TName_Nat*)*, i8* }, align 8 + %"$gasrem_563" = load i64, i64* @_gasrem, align 8 + %"$gascmp_564" = icmp ugt i64 1, %"$gasrem_563" + br i1 %"$gascmp_564", label %"$out_of_gas_565", label %"$have_gas_566" + +"$out_of_gas_565": ; preds = %"$have_gas_561" + call void @_out_of_gas() + br label %"$have_gas_566" + +"$have_gas_566": ; preds = %"$out_of_gas_565", %"$have_gas_561" + %"$consume_567" = sub i64 %"$gasrem_563", 1 + store i64 %"$consume_567", i64* @_gasrem, align 8 + %"$$fundef_26_envp_568_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_26_envp_568_salloc" = call i8* @_salloc(i8* %"$$fundef_26_envp_568_load", i64 8) + %"$$fundef_26_envp_568" = bitcast i8* %"$$fundef_26_envp_568_salloc" to %"$$fundef_26_env_94"* + %"$$fundef_26_env_voidp_570" = bitcast %"$$fundef_26_env_94"* %"$$fundef_26_envp_568" to i8* + %"$$fundef_26_cloval_571" = insertvalue { %Int32 (i8*, %TName_Nat*)*, i8* } { %Int32 (i8*, %TName_Nat*)* bitcast (%Int32 (%"$$fundef_26_env_94"*, %TName_Nat*)* @"$fundef_26" to %Int32 (i8*, %TName_Nat*)*), i8* undef }, i8* %"$$fundef_26_env_voidp_570", 1 + %"$$fundef_26_env_nat_fold_572" = getelementptr inbounds %"$$fundef_26_env_94", %"$$fundef_26_env_94"* %"$$fundef_26_envp_568", i32 0, i32 0 + %"$nat_fold_573" = load { i8*, i8* }*, { i8*, i8* }** @nat_fold, align 8 + store { i8*, i8* }* %"$nat_fold_573", { i8*, i8* }** %"$$fundef_26_env_nat_fold_572", align 8 + store { %Int32 (i8*, %TName_Nat*)*, i8* } %"$$fundef_26_cloval_571", { %Int32 (i8*, %TName_Nat*)*, i8* }* %fib, align 8, !dbg !107 + %"$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" + +"$out_of_gas_576": ; preds = %"$have_gas_566" call void @_out_of_gas() - br label %"$have_gas_572" + br label %"$have_gas_577" -"$have_gas_572": ; preds = %"$out_of_gas_571", %"$have_gas_561" - %"$consume_573" = sub i64 %"$gasrem_569", 1 - store i64 %"$consume_573", i64* @_gasrem, align 8 +"$have_gas_577": ; preds = %"$out_of_gas_576", %"$have_gas_566" + %"$consume_578" = sub i64 %"$gasrem_574", 1 + store i64 %"$consume_578", i64* @_gasrem, align 8 %"$fib_16" = alloca %Int32, align 8 - %"$fib_574" = load { %Int32 (i8*, %TName_Nat*)*, i8* }, { %Int32 (i8*, %TName_Nat*)*, i8* }* %fib, align 8 - %"$fib_fptr_575" = extractvalue { %Int32 (i8*, %TName_Nat*)*, i8* } %"$fib_574", 0 - %"$fib_envptr_576" = extractvalue { %Int32 (i8*, %TName_Nat*)*, i8* } %"$fib_574", 1 - %"$seven_577" = load %TName_Nat*, %TName_Nat** %seven, align 8 - %"$fib_call_578" = call %Int32 %"$fib_fptr_575"(i8* %"$fib_envptr_576", %TName_Nat* %"$seven_577"), !dbg !57 - store %Int32 %"$fib_call_578", %Int32* %"$fib_16", align 4, !dbg !57 - %"$$fib_16_579" = load %Int32, %Int32* %"$fib_16", align 4 - store %Int32 %"$$fib_16_579", %Int32* %"$expr_25", align 4, !dbg !57 - %"$$expr_25_580" = load %Int32, %Int32* %"$expr_25", align 4 - ret %Int32 %"$$expr_25_580" + call void @llvm.dbg.declare(metadata %Int32* %"$fib_16", metadata !108, metadata !DIExpression()), !dbg !109 + %"$fib_579" = load { %Int32 (i8*, %TName_Nat*)*, i8* }, { %Int32 (i8*, %TName_Nat*)*, i8* }* %fib, align 8 + %"$fib_fptr_580" = extractvalue { %Int32 (i8*, %TName_Nat*)*, i8* } %"$fib_579", 0 + %"$fib_envptr_581" = extractvalue { %Int32 (i8*, %TName_Nat*)*, i8* } %"$fib_579", 1 + %"$seven_582" = load %TName_Nat*, %TName_Nat** %seven, align 8 + %"$fib_call_583" = call %Int32 %"$fib_fptr_580"(i8* %"$fib_envptr_581", %TName_Nat* %"$seven_582"), !dbg !109 + store %Int32 %"$fib_call_583", %Int32* %"$fib_16", align 4, !dbg !109 + %"$$fib_16_584" = load %Int32, %Int32* %"$fib_16", align 4 + store %Int32 %"$$fib_16_584", %Int32* %"$expr_25", align 4, !dbg !109 + %"$$expr_25_585" = load %Int32, %Int32* %"$expr_25", align 4 + ret %Int32 %"$$expr_25_585" } declare void @_print_scilla_val(i8*, %_TyDescrTy_Typ*, i8*) define void @scilla_main() { entry: - %"$exprval_581" = call %Int32 @_scilla_expr_fun(i8* null) - %"$pval_582" = alloca %Int32, align 8 - %"$memvoidcast_583" = bitcast %Int32* %"$pval_582" to i8* - store %Int32 %"$exprval_581", %Int32* %"$pval_582", align 4 - %"$execptr_load_584" = load i8*, i8** @_execptr, align 8 - call void @_print_scilla_val(i8* %"$execptr_load_584", %_TyDescrTy_Typ* @"$TyDescr_Int32_34", i8* %"$memvoidcast_583") + %"$exprval_586" = call %Int32 @_scilla_expr_fun(i8* null) + %"$pval_587" = alloca %Int32, align 8 + %"$memvoidcast_588" = bitcast %Int32* %"$pval_587" to i8* + store %Int32 %"$exprval_586", %Int32* %"$pval_587", align 4 + %"$execptr_load_589" = load i8*, i8** @_execptr, align 8 + call void @_print_scilla_val(i8* %"$execptr_load_589", %_TyDescrTy_Typ* @"$TyDescr_Int32_34", i8* %"$memvoidcast_588") ret void } +attributes #0 = { nocallback nofree nosync nounwind readnone speculatable willreturn } + !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) +!1 = distinct !DICompileUnit(language: DW_LANG_C89, file: !2, producer: "Scilla Compiler", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false) !2 = !DIFile(filename: "fib.scilexp", directory: "codegen/expr") -!3 = !{} -!4 = distinct !DISubprogram(name: "$fundef_30", linkageName: "$fundef_30", scope: !2, file: !2, line: 15, type: !5, scopeLine: 15, 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: 15, column: 7, scope: !4) -!9 = !DILocation(line: 16, column: 29, scope: !10) -!10 = distinct !DILexicalBlock(scope: !11, file: !2, line: 16, column: 9) -!11 = distinct !DILexicalBlock(scope: !4, file: !2, line: 15, column: 7) -!12 = !DILocation(line: 17, column: 7, scope: !10) -!13 = distinct !DISubprogram(name: "$fundef_28", linkageName: "$fundef_28", scope: !2, file: !2, line: 14, type: !5, scopeLine: 14, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!14 = !DILocation(line: 15, column: 7, scope: !13) -!15 = distinct !DISubprogram(name: "$fundef_26", linkageName: "$fundef_26", scope: !2, file: !2, line: 13, type: !5, scopeLine: 13, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!16 = !DILocation(line: 14, column: 37, scope: !15) -!17 = !DILocation(line: 20, column: 14, scope: !15) -!18 = !DILocation(line: 21, column: 13, scope: !15) -!19 = !DILocation(line: 22, column: 18, scope: !15) -!20 = !DILocation(line: 23, column: 23, scope: !15) -!21 = !DILocation(line: 23, column: 22, scope: !15) -!22 = !DILocation(line: 24, column: 15, scope: !15) -!23 = !DILocation(line: 25, column: 13, scope: !15) -!24 = !DILocation(line: 26, column: 2, scope: !15) -!25 = !DILocation(line: 27, column: 16, scope: !26) -!26 = distinct !DILexicalBlock(scope: !27, file: !2, line: 27, column: 4) -!27 = distinct !DILexicalBlock(scope: !15, file: !2, line: 26, column: 2) -!28 = distinct !DISubprogram(name: "$fundef_23", linkageName: "$fundef_23", scope: !29, file: !29, line: 1, type: !5, scopeLine: 1, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!29 = !DIFile(filename: "Prelude", directory: ".") -!30 = !DILocation(line: 1, column: 34, scope: !28) -!31 = !DILocation(line: 1, column: 71, scope: !32) -!32 = distinct !DILexicalBlock(scope: !33, file: !29, line: 1, column: 50) -!33 = distinct !DILexicalBlock(scope: !28, file: !29, line: 1, column: 34) -!34 = !DILocation(line: 1, column: 86, scope: !32) -!35 = !DILocation(line: 1, column: 106, scope: !36) -!36 = distinct !DILexicalBlock(scope: !33, file: !29, line: 1, column: 98) -!37 = distinct !DISubprogram(name: "$fundef_21", linkageName: "$fundef_21", scope: !29, file: !29, line: 1, type: !5, scopeLine: 1, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!38 = !DILocation(line: 1, column: 34, scope: !37) -!39 = distinct !DISubprogram(name: "$fundef_19", linkageName: "$fundef_19", scope: !29, file: !29, line: 1, type: !5, scopeLine: 1, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!40 = !DILocation(line: 1, column: 18, scope: !39) -!41 = distinct !DISubprogram(name: "$fundef_17", linkageName: "$fundef_17", scope: !29, file: !29, line: 1, type: !5, scopeLine: 1, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!42 = !DILocation(line: 1, column: 18, scope: !41) -!43 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !44, file: !44, type: !5, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!44 = !DIFile(filename: ".", directory: ".") -!45 = !DILocation(line: 0, scope: !43) -!46 = !DILocation(line: 1, column: 18, scope: !43) -!47 = 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) -!48 = !DILocation(line: 3, column: 12, scope: !47) -!49 = !DILocation(line: 4, column: 12, scope: !47) -!50 = !DILocation(line: 5, column: 12, scope: !47) -!51 = !DILocation(line: 6, column: 13, scope: !47) -!52 = !DILocation(line: 7, column: 12, scope: !47) -!53 = !DILocation(line: 8, column: 12, scope: !47) -!54 = !DILocation(line: 9, column: 11, scope: !47) -!55 = !DILocation(line: 10, column: 13, scope: !47) -!56 = !DILocation(line: 13, column: 3, scope: !47) -!57 = !DILocation(line: 32, column: 1, scope: !47) +!3 = distinct !DISubprogram(name: "$fundef_30", linkageName: "$fundef_30", scope: !2, file: !2, line: 15, type: !4, scopeLine: 15, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!4 = !DISubroutineType(types: !5) +!5 = !{!6} +!6 = !DIBasicType(tag: DW_TAG_unspecified_type, name: "void") +!7 = !{} +!8 = !DILocalVariable(name: "$n_6", scope: !3, file: !2, line: 14, type: !9) +!9 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "Nat", baseType: !10, size: 8, align: 8, dwarfAddressSpace: 0) +!10 = !DIBasicType(name: "Nat", size: 8) +!11 = !DILocation(line: 14, column: 42, scope: !3) +!12 = !DILocalVariable(name: "$retval_31", scope: !3, file: !2, line: 15, type: !13) +!13 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "Pair (Int32) (Int32)", baseType: !14, size: 8, align: 8, dwarfAddressSpace: 0) +!14 = !DIBasicType(name: "Pair (Int32) (Int32)", size: 8) +!15 = !DILocation(line: 15, column: 7, scope: !3) +!16 = !DILocalVariable(name: "z", scope: !17, file: !2, line: 16, type: !19) +!17 = distinct !DILexicalBlock(scope: !18, file: !2, line: 16, column: 9) +!18 = distinct !DILexicalBlock(scope: !3, file: !2, line: 15, column: 7) +!19 = !DIBasicType(name: "Int32", size: 4) +!20 = !DILocation(line: 16, column: 25, scope: !17) +!21 = !DILocation(line: 16, column: 29, scope: !17) +!22 = !DILocation(line: 17, column: 7, scope: !17) +!23 = distinct !DISubprogram(name: "$fundef_28", linkageName: "$fundef_28", scope: !2, file: !2, line: 14, type: !4, scopeLine: 14, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!24 = !DILocalVariable(name: "res", scope: !23, file: !2, line: 14, type: !13) +!25 = !DILocation(line: 14, column: 10, scope: !23) +!26 = !DILocation(line: 15, column: 7, scope: !23) +!27 = distinct !DISubprogram(name: "$fundef_26", linkageName: "$fundef_26", scope: !2, file: !2, line: 13, type: !4, scopeLine: 13, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!28 = !DILocalVariable(name: "n", scope: !27, file: !2, line: 12, type: !9) +!29 = !DILocation(line: 12, column: 16, scope: !27) +!30 = !DILocalVariable(name: "$retval_27", scope: !27, file: !2, line: 13, type: !19) +!31 = !DILocation(line: 13, column: 3, scope: !27) +!32 = !DILocation(line: 14, column: 37, scope: !27) +!33 = !DILocalVariable(name: "$zero_7", scope: !27, file: !2, line: 20, type: !19) +!34 = !DILocation(line: 20, column: 7, scope: !27) +!35 = !DILocation(line: 20, column: 14, scope: !27) +!36 = !DILocalVariable(name: "$one_8", scope: !27, file: !2, line: 21, type: !19) +!37 = !DILocation(line: 21, column: 7, scope: !27) +!38 = !DILocation(line: 21, column: 13, scope: !27) +!39 = !DILocalVariable(name: "init_val", scope: !27, file: !2, line: 22, type: !13) +!40 = !DILocation(line: 22, column: 7, scope: !27) +!41 = !DILocation(line: 22, column: 18, scope: !27) +!42 = !DILocation(line: 23, column: 23, scope: !27) +!43 = !DILocation(line: 23, column: 22, scope: !27) +!44 = !DILocation(line: 24, column: 15, scope: !27) +!45 = !DILocalVariable(name: "res", scope: !27, file: !2, line: 25, type: !13) +!46 = !DILocation(line: 25, column: 7, scope: !27) +!47 = !DILocalVariable(name: "$folder_15", scope: !27, file: !2, line: 25, type: !13) +!48 = !DILocation(line: 25, column: 13, scope: !27) +!49 = !DILocation(line: 26, column: 2, scope: !27) +!50 = !DILocation(line: 27, column: 16, scope: !51) +!51 = distinct !DILexicalBlock(scope: !52, file: !2, line: 27, column: 4) +!52 = distinct !DILexicalBlock(scope: !27, file: !2, line: 26, column: 2) +!53 = distinct !DISubprogram(name: "$fundef_23", linkageName: "$fundef_23", scope: !54, file: !54, line: 1, type: !4, scopeLine: 1, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!54 = !DIFile(filename: "Prelude", directory: ".") +!55 = !DILocalVariable(name: "n", scope: !53, file: !54, line: 1, type: !9) +!56 = !DILocation(line: 1, column: 23, scope: !53) +!57 = !DILocalVariable(name: "$retval_24", scope: !53, file: !54, line: 1, type: !13) +!58 = !DILocation(line: 1, column: 34, scope: !53) +!59 = !DILocalVariable(name: "res", scope: !60, file: !54, line: 1, type: !13) +!60 = distinct !DILexicalBlock(scope: !61, file: !54, line: 1, column: 50) +!61 = distinct !DILexicalBlock(scope: !53, file: !54, line: 1, column: 34) +!62 = !DILocation(line: 1, column: 65, scope: !60) +!63 = !DILocation(line: 1, column: 71, scope: !60) +!64 = !DILocalVariable(name: "$fn_10", scope: !60, file: !54, line: 1, type: !13) +!65 = !DILocation(line: 1, column: 86, scope: !60) +!66 = !DILocalVariable(name: "$g_12", scope: !60, file: !54, line: 1, type: !13) +!67 = !DILocation(line: 1, column: 106, scope: !68) +!68 = distinct !DILexicalBlock(scope: !61, file: !54, line: 1, column: 98) +!69 = distinct !DISubprogram(name: "$fundef_21", linkageName: "$fundef_21", scope: !54, file: !54, line: 1, type: !4, scopeLine: 1, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!70 = !DILocalVariable(name: "f0", scope: !69, file: !54, line: 1, type: !13) +!71 = !DILocation(line: 1, column: 6, scope: !69) +!72 = !DILocation(line: 1, column: 34, scope: !69) +!73 = distinct !DISubprogram(name: "$fundef_19", linkageName: "$fundef_19", scope: !54, file: !54, line: 1, type: !4, scopeLine: 1, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!74 = !DILocation(line: 1, column: 18, scope: !73) +!75 = distinct !DISubprogram(name: "$fundef_17", linkageName: "$fundef_17", scope: !54, file: !54, line: 1, type: !4, scopeLine: 1, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!76 = !DILocation(line: 1, column: 18, scope: !75) +!77 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !78, file: !78, type: !4, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!78 = !DIFile(filename: ".", directory: ".") +!79 = !DILocation(line: 0, scope: !77) +!80 = !DILocation(line: 1, column: 18, scope: !77) +!81 = distinct !DISubprogram(name: "_scilla_expr_fun", linkageName: "_scilla_expr_fun", scope: !2, file: !2, line: 3, type: !4, scopeLine: 3, spFlags: DISPFlagDefinition, unit: !1, retainedNodes: !7) +!82 = !DILocalVariable(name: "$expr_25", scope: !81, file: !2, line: 3, type: !19) +!83 = !DILocation(line: 3, column: 12, scope: !81) +!84 = !DILocalVariable(name: "zero", scope: !81, file: !2, line: 3, type: !9) +!85 = !DILocation(line: 3, column: 5, scope: !81) +!86 = !DILocalVariable(name: "one", scope: !81, file: !2, line: 4, type: !9) +!87 = !DILocation(line: 4, column: 5, scope: !81) +!88 = !DILocation(line: 4, column: 12, scope: !81) +!89 = !DILocalVariable(name: "two", scope: !81, file: !2, line: 5, type: !9) +!90 = !DILocation(line: 5, column: 5, scope: !81) +!91 = !DILocation(line: 5, column: 12, scope: !81) +!92 = !DILocalVariable(name: "three", scope: !81, file: !2, line: 6, type: !9) +!93 = !DILocation(line: 6, column: 5, scope: !81) +!94 = !DILocation(line: 6, column: 13, scope: !81) +!95 = !DILocalVariable(name: "four", scope: !81, file: !2, line: 7, type: !9) +!96 = !DILocation(line: 7, column: 5, scope: !81) +!97 = !DILocation(line: 7, column: 12, scope: !81) +!98 = !DILocalVariable(name: "five", scope: !81, file: !2, line: 8, type: !9) +!99 = !DILocation(line: 8, column: 5, scope: !81) +!100 = !DILocation(line: 8, column: 12, scope: !81) +!101 = !DILocalVariable(name: "six", scope: !81, file: !2, line: 9, type: !9) +!102 = !DILocation(line: 9, column: 5, scope: !81) +!103 = !DILocation(line: 9, column: 11, scope: !81) +!104 = !DILocalVariable(name: "seven", scope: !81, file: !2, line: 10, type: !9) +!105 = !DILocation(line: 10, column: 5, scope: !81) +!106 = !DILocation(line: 10, column: 13, scope: !81) +!107 = !DILocation(line: 13, column: 3, scope: !81) +!108 = !DILocalVariable(name: "$fib_16", scope: !81, file: !2, line: 32, type: !19) +!109 = !DILocation(line: 32, column: 1, scope: !81) diff --git a/testsuite/expr/fib.ll b/testsuite/expr/fib.ll index 52ed875f..c665131d 100644 --- a/testsuite/expr/fib.ll +++ b/testsuite/expr/fib.ll @@ -33,7 +33,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-pc-linux-gnu" +target triple = "x86_64-unknown-linux-gnu" %"$TyDescrTy_PrimTyp_32" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/testsuite/expr/fun-type-inst.dbg.ll b/testsuite/expr/fun-type-inst.dbg.ll index 375d2519..62421a2e 100644 --- a/testsuite/expr/fun-type-inst.dbg.ll +++ b/testsuite/expr/fun-type-inst.dbg.ll @@ -39,7 +39,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-pc-linux-gnu" +target triple = "x86_64-unknown-linux-gnu" %"$TyDescrTy_PrimTyp_75" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } @@ -48,9 +48,9 @@ target triple = "x86_64-pc-linux-gnu" %"$TyDescrTy_ADTTyp_Specl_106" = type { %_TyDescrTy_Typ**, %"$TyDescrTy_ADTTyp_Constr_108"**, %"$TyDescrTy_ADTTyp_107"* } %"$TyDescrTy_ADTTyp_Constr_108" = type { %TyDescrString, i32, %_TyDescrTy_Typ** } %Int32 = type { i32 } -%"$ParamDescr_1179" = type { %ParamDescrString, %_TyDescrTy_Typ* } +%"$ParamDescr_1191" = type { %ParamDescrString, %_TyDescrTy_Typ* } %ParamDescrString = type { i8*, i32 } -%"$TransDescr_1180" = type { %ParamDescrString, i32, %"$ParamDescr_1179"* } +%"$TransDescr_1192" = type { %ParamDescrString, i32, %"$ParamDescr_1191"* } %TName_List_Int64 = type { i8, %CName_Cons_Int64*, %CName_Nil_Int64* } %CName_Cons_Int64 = type <{ i8, %Int64, %TName_List_Int64* }> %CName_Nil_Int64 = type <{ i8 }> @@ -168,39 +168,58 @@ target triple = "x86_64-pc-linux-gnu" @"$_gas_charge_accPairUtils_4" = global %Int32 zeroinitializer @_tydescr_table = constant [18 x %_TyDescrTy_Typ*] [%_TyDescrTy_Typ* @"$TyDescr_Event_99", %_TyDescrTy_Typ* @"$TyDescr_Int64_81", %_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_109", %_TyDescrTy_Typ* @"$TyDescr_Uint256_91", %_TyDescrTy_Typ* @"$TyDescr_Uint32_79", %_TyDescrTy_Typ* @"$TyDescr_Uint64_83", %_TyDescrTy_Typ* @"$TyDescr_Bnum_95", %_TyDescrTy_Typ* @"$TyDescr_Uint128_87", %_TyDescrTy_Typ* @"$TyDescr_Exception_101", %_TyDescrTy_Typ* @"$TyDescr_String_93", %_TyDescrTy_Typ* @"$TyDescr_ADT_List_Int64_110", %_TyDescrTy_Typ* @"$TyDescr_Int256_89", %_TyDescrTy_Typ* @"$TyDescr_Int128_85", %_TyDescrTy_Typ* @"$TyDescr_Bystr_105", %_TyDescrTy_Typ* @"$TyDescr_ReplicateContr_103", %_TyDescrTy_Typ* @"$TyDescr_Message_97", %_TyDescrTy_Typ* @"$TyDescr_ADT_List_Int32_111", %_TyDescrTy_Typ* @"$TyDescr_Int32_77"] @_tydescr_table_length = constant i32 18 -@_contract_parameters = constant [0 x %"$ParamDescr_1179"] zeroinitializer +@_contract_parameters = constant [0 x %"$ParamDescr_1191"] zeroinitializer @_contract_parameters_length = constant i32 0 -@_transition_parameters = constant [0 x %"$TransDescr_1180"] zeroinitializer +@_transition_parameters = constant [0 x %"$TransDescr_1192"] zeroinitializer @_transition_parameters_length = constant i32 0 -define internal { %TName_List_Int64* (i8*, %Int64)*, i8* } @"$fundef_73"(%"$$fundef_73_env_148"* %0, { i8*, i8* }* %1) !dbg !4 { +define internal { %TName_List_Int64* (i8*, %Int64)*, i8* } @"$fundef_73"(%"$$fundef_73_env_148"* %0, { i8*, i8* }* %1) !dbg !3 { entry: %"$retval_74" = alloca { %TName_List_Int64* (i8*, %Int64)*, i8* }, align 8 - %"$gasrem_838" = load i64, i64* @_gasrem, align 8 - %"$gascmp_839" = icmp ugt i64 1, %"$gasrem_838" - br i1 %"$gascmp_839", label %"$out_of_gas_840", label %"$have_gas_841" - -"$out_of_gas_840": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_841" - -"$have_gas_841": ; preds = %"$out_of_gas_840", %entry - %"$consume_842" = sub i64 %"$gasrem_838", 1 - store i64 %"$consume_842", i64* @_gasrem, align 8 - %"$f_843" = getelementptr { i8*, i8* }, { i8*, i8* }* %1, i32 2 - %"$f_844" = bitcast { i8*, i8* }* %"$f_843" to { { %TName_List_Int64* (i8*, %Int64)*, i8* } (i8*)*, i8* }* - %"$f_845" = load { { %TName_List_Int64* (i8*, %Int64)*, i8* } (i8*)*, i8* }, { { %TName_List_Int64* (i8*, %Int64)*, i8* } (i8*)*, i8* }* %"$f_844", align 8 - %"$f_fptr_846" = extractvalue { { %TName_List_Int64* (i8*, %Int64)*, i8* } (i8*)*, i8* } %"$f_845", 0 - %"$f_envptr_847" = extractvalue { { %TName_List_Int64* (i8*, %Int64)*, i8* } (i8*)*, i8* } %"$f_845", 1 - %"$f_call_848" = call { %TName_List_Int64* (i8*, %Int64)*, i8* } %"$f_fptr_846"(i8* %"$f_envptr_847"), !dbg !8 - store { %TName_List_Int64* (i8*, %Int64)*, i8* } %"$f_call_848", { %TName_List_Int64* (i8*, %Int64)*, i8* }* %"$retval_74", align 8, !dbg !9 - %"$$retval_74_849" = load { %TName_List_Int64* (i8*, %Int64)*, i8* }, { %TName_List_Int64* (i8*, %Int64)*, i8* }* %"$retval_74", align 8 - ret { %TName_List_Int64* (i8*, %Int64)*, i8* } %"$$retval_74_849" + %"$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 = %entry + call void @_out_of_gas() + br label %"$have_gas_853" + +"$have_gas_853": ; preds = %"$out_of_gas_852", %entry + %"$consume_854" = sub i64 %"$gasrem_850", 1 + store i64 %"$consume_854", i64* @_gasrem, align 8 + %"$f_855" = getelementptr { i8*, i8* }, { i8*, i8* }* %1, i32 2 + %"$f_856" = bitcast { i8*, i8* }* %"$f_855" to { { %TName_List_Int64* (i8*, %Int64)*, i8* } (i8*)*, i8* }* + %"$f_857" = load { { %TName_List_Int64* (i8*, %Int64)*, i8* } (i8*)*, i8* }, { { %TName_List_Int64* (i8*, %Int64)*, i8* } (i8*)*, i8* }* %"$f_856", align 8 + %"$f_fptr_858" = extractvalue { { %TName_List_Int64* (i8*, %Int64)*, i8* } (i8*)*, i8* } %"$f_857", 0 + %"$f_envptr_859" = extractvalue { { %TName_List_Int64* (i8*, %Int64)*, i8* } (i8*)*, i8* } %"$f_857", 1 + %"$f_call_860" = call { %TName_List_Int64* (i8*, %Int64)*, i8* } %"$f_fptr_858"(i8* %"$f_envptr_859"), !dbg !8 + store { %TName_List_Int64* (i8*, %Int64)*, i8* } %"$f_call_860", { %TName_List_Int64* (i8*, %Int64)*, i8* }* %"$retval_74", align 8, !dbg !9 + %"$$retval_74_861" = load { %TName_List_Int64* (i8*, %Int64)*, i8* }, { %TName_List_Int64* (i8*, %Int64)*, i8* }* %"$retval_74", align 8 + ret { %TName_List_Int64* (i8*, %Int64)*, i8* } %"$$retval_74_861" } define internal { { %TName_List_Int64* (i8*, %Int64)*, i8* } (i8*, { i8*, i8* }*)*, i8* } @"$fundef_71"(%"$$fundef_71_env_149"* %0) !dbg !10 { entry: %"$retval_72" = alloca { { %TName_List_Int64* (i8*, %Int64)*, i8* } (i8*, { i8*, i8* }*)*, i8* }, 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 = %entry + call void @_out_of_gas() + br label %"$have_gas_844" + +"$have_gas_844": ; preds = %"$out_of_gas_843", %entry + %"$consume_845" = sub i64 %"$gasrem_841", 1 + store i64 %"$consume_845", i64* @_gasrem, align 8 + store { { %TName_List_Int64* (i8*, %Int64)*, i8* } (i8*, { i8*, i8* }*)*, i8* } { { %TName_List_Int64* (i8*, %Int64)*, i8* } (i8*, { i8*, i8* }*)* bitcast ({ %TName_List_Int64* (i8*, %Int64)*, i8* } (%"$$fundef_73_env_148"*, { i8*, i8* }*)* @"$fundef_73" to { %TName_List_Int64* (i8*, %Int64)*, i8* } (i8*, { i8*, i8* }*)*), i8* null }, { { %TName_List_Int64* (i8*, %Int64)*, i8* } (i8*, { i8*, i8* }*)*, i8* }* %"$retval_72", align 8, !dbg !11 + %"$$retval_72_849" = load { { %TName_List_Int64* (i8*, %Int64)*, i8* } (i8*, { i8*, i8* }*)*, i8* }, { { %TName_List_Int64* (i8*, %Int64)*, i8* } (i8*, { i8*, i8* }*)*, i8* }* %"$retval_72", align 8 + ret { { %TName_List_Int64* (i8*, %Int64)*, i8* } (i8*, { i8*, i8* }*)*, i8* } %"$$retval_72_849" +} + +define internal { %TName_List_Int32* (i8*, %Int32)*, i8* } @"$fundef_69"(%"$$fundef_69_env_150"* %0, { i8*, i8* }* %1) !dbg !12 { +entry: + %"$retval_70" = alloca { %TName_List_Int32* (i8*, %Int32)*, i8* }, align 8 %"$gasrem_829" = load i64, i64* @_gasrem, align 8 %"$gascmp_830" = icmp ugt i64 1, %"$gasrem_829" br i1 %"$gascmp_830", label %"$out_of_gas_831", label %"$have_gas_832" @@ -212,135 +231,99 @@ entry: "$have_gas_832": ; preds = %"$out_of_gas_831", %entry %"$consume_833" = sub i64 %"$gasrem_829", 1 store i64 %"$consume_833", i64* @_gasrem, align 8 - store { { %TName_List_Int64* (i8*, %Int64)*, i8* } (i8*, { i8*, i8* }*)*, i8* } { { %TName_List_Int64* (i8*, %Int64)*, i8* } (i8*, { i8*, i8* }*)* bitcast ({ %TName_List_Int64* (i8*, %Int64)*, i8* } (%"$$fundef_73_env_148"*, { i8*, i8* }*)* @"$fundef_73" to { %TName_List_Int64* (i8*, %Int64)*, i8* } (i8*, { i8*, i8* }*)*), i8* null }, { { %TName_List_Int64* (i8*, %Int64)*, i8* } (i8*, { i8*, i8* }*)*, i8* }* %"$retval_72", align 8, !dbg !11 - %"$$retval_72_837" = load { { %TName_List_Int64* (i8*, %Int64)*, i8* } (i8*, { i8*, i8* }*)*, i8* }, { { %TName_List_Int64* (i8*, %Int64)*, i8* } (i8*, { i8*, i8* }*)*, i8* }* %"$retval_72", align 8 - ret { { %TName_List_Int64* (i8*, %Int64)*, i8* } (i8*, { i8*, i8* }*)*, i8* } %"$$retval_72_837" -} - -define internal { %TName_List_Int32* (i8*, %Int32)*, i8* } @"$fundef_69"(%"$$fundef_69_env_150"* %0, { i8*, i8* }* %1) !dbg !12 { -entry: - %"$retval_70" = alloca { %TName_List_Int32* (i8*, %Int32)*, i8* }, align 8 - %"$gasrem_817" = load i64, i64* @_gasrem, align 8 - %"$gascmp_818" = icmp ugt i64 1, %"$gasrem_817" - br i1 %"$gascmp_818", label %"$out_of_gas_819", label %"$have_gas_820" - -"$out_of_gas_819": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_820" - -"$have_gas_820": ; preds = %"$out_of_gas_819", %entry - %"$consume_821" = sub i64 %"$gasrem_817", 1 - store i64 %"$consume_821", i64* @_gasrem, align 8 - %"$f_822" = getelementptr { i8*, i8* }, { i8*, i8* }* %1, i32 0 - %"$f_823" = bitcast { i8*, i8* }* %"$f_822" to { { %TName_List_Int32* (i8*, %Int32)*, i8* } (i8*)*, i8* }* - %"$f_824" = load { { %TName_List_Int32* (i8*, %Int32)*, i8* } (i8*)*, i8* }, { { %TName_List_Int32* (i8*, %Int32)*, i8* } (i8*)*, i8* }* %"$f_823", align 8 - %"$f_fptr_825" = extractvalue { { %TName_List_Int32* (i8*, %Int32)*, i8* } (i8*)*, i8* } %"$f_824", 0 - %"$f_envptr_826" = extractvalue { { %TName_List_Int32* (i8*, %Int32)*, i8* } (i8*)*, i8* } %"$f_824", 1 - %"$f_call_827" = call { %TName_List_Int32* (i8*, %Int32)*, i8* } %"$f_fptr_825"(i8* %"$f_envptr_826"), !dbg !13 - store { %TName_List_Int32* (i8*, %Int32)*, i8* } %"$f_call_827", { %TName_List_Int32* (i8*, %Int32)*, i8* }* %"$retval_70", align 8, !dbg !14 - %"$$retval_70_828" = load { %TName_List_Int32* (i8*, %Int32)*, i8* }, { %TName_List_Int32* (i8*, %Int32)*, i8* }* %"$retval_70", align 8 - ret { %TName_List_Int32* (i8*, %Int32)*, i8* } %"$$retval_70_828" + %"$f_834" = getelementptr { i8*, i8* }, { i8*, i8* }* %1, i32 0 + %"$f_835" = bitcast { i8*, i8* }* %"$f_834" to { { %TName_List_Int32* (i8*, %Int32)*, i8* } (i8*)*, i8* }* + %"$f_836" = load { { %TName_List_Int32* (i8*, %Int32)*, i8* } (i8*)*, i8* }, { { %TName_List_Int32* (i8*, %Int32)*, i8* } (i8*)*, i8* }* %"$f_835", align 8 + %"$f_fptr_837" = extractvalue { { %TName_List_Int32* (i8*, %Int32)*, i8* } (i8*)*, i8* } %"$f_836", 0 + %"$f_envptr_838" = extractvalue { { %TName_List_Int32* (i8*, %Int32)*, i8* } (i8*)*, i8* } %"$f_836", 1 + %"$f_call_839" = call { %TName_List_Int32* (i8*, %Int32)*, i8* } %"$f_fptr_837"(i8* %"$f_envptr_838"), !dbg !13 + store { %TName_List_Int32* (i8*, %Int32)*, i8* } %"$f_call_839", { %TName_List_Int32* (i8*, %Int32)*, i8* }* %"$retval_70", align 8, !dbg !14 + %"$$retval_70_840" = load { %TName_List_Int32* (i8*, %Int32)*, i8* }, { %TName_List_Int32* (i8*, %Int32)*, i8* }* %"$retval_70", align 8 + ret { %TName_List_Int32* (i8*, %Int32)*, i8* } %"$$retval_70_840" } define internal { { %TName_List_Int32* (i8*, %Int32)*, i8* } (i8*, { i8*, i8* }*)*, i8* } @"$fundef_67"(%"$$fundef_67_env_151"* %0) !dbg !15 { entry: %"$retval_68" = alloca { { %TName_List_Int32* (i8*, %Int32)*, i8* } (i8*, { i8*, i8* }*)*, i8* }, align 8 - %"$gasrem_808" = load i64, i64* @_gasrem, align 8 - %"$gascmp_809" = icmp ugt i64 1, %"$gasrem_808" - br i1 %"$gascmp_809", label %"$out_of_gas_810", label %"$have_gas_811" + %"$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_810": ; preds = %entry +"$out_of_gas_822": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_811" + br label %"$have_gas_823" -"$have_gas_811": ; preds = %"$out_of_gas_810", %entry - %"$consume_812" = sub i64 %"$gasrem_808", 1 - store i64 %"$consume_812", i64* @_gasrem, align 8 +"$have_gas_823": ; preds = %"$out_of_gas_822", %entry + %"$consume_824" = sub i64 %"$gasrem_820", 1 + store i64 %"$consume_824", i64* @_gasrem, align 8 store { { %TName_List_Int32* (i8*, %Int32)*, i8* } (i8*, { i8*, i8* }*)*, i8* } { { %TName_List_Int32* (i8*, %Int32)*, i8* } (i8*, { i8*, i8* }*)* bitcast ({ %TName_List_Int32* (i8*, %Int32)*, i8* } (%"$$fundef_69_env_150"*, { i8*, i8* }*)* @"$fundef_69" to { %TName_List_Int32* (i8*, %Int32)*, i8* } (i8*, { i8*, i8* }*)*), i8* null }, { { %TName_List_Int32* (i8*, %Int32)*, i8* } (i8*, { i8*, i8* }*)*, i8* }* %"$retval_68", align 8, !dbg !16 - %"$$retval_68_816" = load { { %TName_List_Int32* (i8*, %Int32)*, i8* } (i8*, { i8*, i8* }*)*, i8* }, { { %TName_List_Int32* (i8*, %Int32)*, i8* } (i8*, { i8*, i8* }*)*, i8* }* %"$retval_68", align 8 - ret { { %TName_List_Int32* (i8*, %Int32)*, i8* } (i8*, { i8*, i8* }*)*, i8* } %"$$retval_68_816" + %"$$retval_68_828" = load { { %TName_List_Int32* (i8*, %Int32)*, i8* } (i8*, { i8*, i8* }*)*, i8* }, { { %TName_List_Int32* (i8*, %Int32)*, i8* } (i8*, { i8*, i8* }*)*, i8* }* %"$retval_68", align 8 + ret { { %TName_List_Int32* (i8*, %Int32)*, i8* } (i8*, { i8*, i8* }*)*, i8* } %"$$retval_68_828" } define internal %TName_List_Int64* @"$fundef_65"(%"$$fundef_65_env_152"* %0, %Int64 %1) !dbg !17 { entry: + %"$a_819" = alloca %Int64, align 8 + store %Int64 %1, %Int64* %"$a_819", align 8 + call void @llvm.dbg.declare(metadata %Int64* %"$a_819", metadata !18, metadata !DIExpression()), !dbg !20 %"$retval_66" = alloca %TName_List_Int64*, 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" + call void @llvm.dbg.declare(metadata %TName_List_Int64** %"$retval_66", metadata !21, metadata !DIExpression()), !dbg !24 + %"$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_769": ; preds = %entry +"$out_of_gas_780": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_770" + br label %"$have_gas_781" -"$have_gas_770": ; preds = %"$out_of_gas_769", %entry - %"$consume_771" = sub i64 %"$gasrem_767", 1 - store i64 %"$consume_771", i64* @_gasrem, align 8 +"$have_gas_781": ; preds = %"$out_of_gas_780", %entry + %"$consume_782" = sub i64 %"$gasrem_778", 1 + store i64 %"$consume_782", i64* @_gasrem, align 8 %an = alloca %TName_List_Int64*, 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 - %"$adtval_777_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_777_salloc" = call i8* @_salloc(i8* %"$adtval_777_load", i64 1) - %"$adtval_777" = bitcast i8* %"$adtval_777_salloc" to %CName_Nil_Int64* - %"$adtgep_778" = getelementptr inbounds %CName_Nil_Int64, %CName_Nil_Int64* %"$adtval_777", i32 0, i32 0 - store i8 1, i8* %"$adtgep_778", align 1 - %"$adtptr_779" = bitcast %CName_Nil_Int64* %"$adtval_777" to %TName_List_Int64* - store %TName_List_Int64* %"$adtptr_779", %TName_List_Int64** %an, align 8, !dbg !18 - %"$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_775" - call void @_out_of_gas() - br label %"$have_gas_783" - -"$have_gas_783": ; preds = %"$out_of_gas_782", %"$have_gas_775" - %"$consume_784" = sub i64 %"$gasrem_780", 1 - store i64 %"$consume_784", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_List_Int64** %an, metadata !25, metadata !DIExpression()), !dbg !26 + %"$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_786" + +"$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 + %"$adtval_788_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_788_salloc" = call i8* @_salloc(i8* %"$adtval_788_load", i64 1) + %"$adtval_788" = bitcast i8* %"$adtval_788_salloc" to %CName_Nil_Int64* + %"$adtgep_789" = getelementptr inbounds %CName_Nil_Int64, %CName_Nil_Int64* %"$adtval_788", i32 0, i32 0 + store i8 1, i8* %"$adtgep_789", align 1 + %"$adtptr_790" = bitcast %CName_Nil_Int64* %"$adtval_788" to %TName_List_Int64* + store %TName_List_Int64* %"$adtptr_790", %TName_List_Int64** %an, align 8, !dbg !27 + %"$gasrem_791" = load i64, i64* @_gasrem, align 8 + %"$gascmp_792" = icmp ugt i64 1, %"$gasrem_791" + br i1 %"$gascmp_792", label %"$out_of_gas_793", label %"$have_gas_794" + +"$out_of_gas_793": ; preds = %"$have_gas_786" + call void @_out_of_gas() + br label %"$have_gas_794" + +"$have_gas_794": ; preds = %"$out_of_gas_793", %"$have_gas_786" + %"$consume_795" = sub i64 %"$gasrem_791", 1 + store i64 %"$consume_795", i64* @_gasrem, align 8 %a1 = alloca %TName_List_Int64*, 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_783" - call void @_out_of_gas() - br label %"$have_gas_788" - -"$have_gas_788": ; preds = %"$out_of_gas_787", %"$have_gas_783" - %"$consume_789" = sub i64 %"$gasrem_785", 1 - store i64 %"$consume_789", i64* @_gasrem, align 8 - %"$an_790" = load %TName_List_Int64*, %TName_List_Int64** %an, align 8 - %"$adtval_791_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_791_salloc" = call i8* @_salloc(i8* %"$adtval_791_load", i64 17) - %"$adtval_791" = bitcast i8* %"$adtval_791_salloc" to %CName_Cons_Int64* - %"$adtgep_792" = getelementptr inbounds %CName_Cons_Int64, %CName_Cons_Int64* %"$adtval_791", i32 0, i32 0 - store i8 0, i8* %"$adtgep_792", align 1 - %"$adtgep_793" = getelementptr inbounds %CName_Cons_Int64, %CName_Cons_Int64* %"$adtval_791", i32 0, i32 1 - store %Int64 %1, %Int64* %"$adtgep_793", align 8 - %"$adtgep_794" = getelementptr inbounds %CName_Cons_Int64, %CName_Cons_Int64* %"$adtval_791", i32 0, i32 2 - store %TName_List_Int64* %"$an_790", %TName_List_Int64** %"$adtgep_794", align 8 - %"$adtptr_795" = bitcast %CName_Cons_Int64* %"$adtval_791" to %TName_List_Int64* - store %TName_List_Int64* %"$adtptr_795", %TName_List_Int64** %a1, align 8, !dbg !19 + call void @llvm.dbg.declare(metadata %TName_List_Int64** %a1, metadata !28, metadata !DIExpression()), !dbg !29 %"$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_788" +"$out_of_gas_798": ; preds = %"$have_gas_794" call void @_out_of_gas() br label %"$have_gas_799" -"$have_gas_799": ; preds = %"$out_of_gas_798", %"$have_gas_788" +"$have_gas_799": ; preds = %"$out_of_gas_798", %"$have_gas_794" %"$consume_800" = sub i64 %"$gasrem_796", 1 store i64 %"$consume_800", i64* @_gasrem, align 8 - %"$a1_801" = load %TName_List_Int64*, %TName_List_Int64** %a1, align 8 + %"$an_801" = load %TName_List_Int64*, %TName_List_Int64** %an, align 8 %"$adtval_802_load" = load i8*, i8** @_execptr, align 8 %"$adtval_802_salloc" = call i8* @_salloc(i8* %"$adtval_802_load", i64 17) %"$adtval_802" = bitcast i8* %"$adtval_802_salloc" to %CName_Cons_Int64* @@ -349,1142 +332,1219 @@ entry: %"$adtgep_804" = getelementptr inbounds %CName_Cons_Int64, %CName_Cons_Int64* %"$adtval_802", i32 0, i32 1 store %Int64 %1, %Int64* %"$adtgep_804", align 8 %"$adtgep_805" = getelementptr inbounds %CName_Cons_Int64, %CName_Cons_Int64* %"$adtval_802", i32 0, i32 2 - store %TName_List_Int64* %"$a1_801", %TName_List_Int64** %"$adtgep_805", align 8 + store %TName_List_Int64* %"$an_801", %TName_List_Int64** %"$adtgep_805", align 8 %"$adtptr_806" = bitcast %CName_Cons_Int64* %"$adtval_802" to %TName_List_Int64* - store %TName_List_Int64* %"$adtptr_806", %TName_List_Int64** %"$retval_66", align 8, !dbg !20 - %"$$retval_66_807" = load %TName_List_Int64*, %TName_List_Int64** %"$retval_66", align 8 - ret %TName_List_Int64* %"$$retval_66_807" + store %TName_List_Int64* %"$adtptr_806", %TName_List_Int64** %a1, align 8, !dbg !30 + %"$gasrem_807" = load i64, i64* @_gasrem, align 8 + %"$gascmp_808" = icmp ugt i64 1, %"$gasrem_807" + br i1 %"$gascmp_808", label %"$out_of_gas_809", label %"$have_gas_810" + +"$out_of_gas_809": ; preds = %"$have_gas_799" + call void @_out_of_gas() + br label %"$have_gas_810" + +"$have_gas_810": ; preds = %"$out_of_gas_809", %"$have_gas_799" + %"$consume_811" = sub i64 %"$gasrem_807", 1 + store i64 %"$consume_811", i64* @_gasrem, align 8 + %"$a1_812" = load %TName_List_Int64*, %TName_List_Int64** %a1, align 8 + %"$adtval_813_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_813_salloc" = call i8* @_salloc(i8* %"$adtval_813_load", i64 17) + %"$adtval_813" = bitcast i8* %"$adtval_813_salloc" to %CName_Cons_Int64* + %"$adtgep_814" = getelementptr inbounds %CName_Cons_Int64, %CName_Cons_Int64* %"$adtval_813", i32 0, i32 0 + store i8 0, i8* %"$adtgep_814", align 1 + %"$adtgep_815" = getelementptr inbounds %CName_Cons_Int64, %CName_Cons_Int64* %"$adtval_813", i32 0, i32 1 + store %Int64 %1, %Int64* %"$adtgep_815", align 8 + %"$adtgep_816" = getelementptr inbounds %CName_Cons_Int64, %CName_Cons_Int64* %"$adtval_813", i32 0, i32 2 + store %TName_List_Int64* %"$a1_812", %TName_List_Int64** %"$adtgep_816", align 8 + %"$adtptr_817" = bitcast %CName_Cons_Int64* %"$adtval_813" to %TName_List_Int64* + store %TName_List_Int64* %"$adtptr_817", %TName_List_Int64** %"$retval_66", align 8, !dbg !31 + %"$$retval_66_818" = load %TName_List_Int64*, %TName_List_Int64** %"$retval_66", align 8 + ret %TName_List_Int64* %"$$retval_66_818" } -define internal { %TName_List_Int64* (i8*, %Int64)*, i8* } @"$fundef_63"(%"$$fundef_63_env_153"* %0) !dbg !21 { +define internal { %TName_List_Int64* (i8*, %Int64)*, i8* } @"$fundef_63"(%"$$fundef_63_env_153"* %0) !dbg !32 { entry: %"$retval_64" = alloca { %TName_List_Int64* (i8*, %Int64)*, 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" + %"$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_760": ; preds = %entry +"$out_of_gas_771": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_761" + br label %"$have_gas_772" -"$have_gas_761": ; preds = %"$out_of_gas_760", %entry - %"$consume_762" = sub i64 %"$gasrem_758", 1 - store i64 %"$consume_762", i64* @_gasrem, align 8 - store { %TName_List_Int64* (i8*, %Int64)*, i8* } { %TName_List_Int64* (i8*, %Int64)* bitcast (%TName_List_Int64* (%"$$fundef_65_env_152"*, %Int64)* @"$fundef_65" to %TName_List_Int64* (i8*, %Int64)*), i8* null }, { %TName_List_Int64* (i8*, %Int64)*, i8* }* %"$retval_64", align 8, !dbg !22 - %"$$retval_64_766" = load { %TName_List_Int64* (i8*, %Int64)*, i8* }, { %TName_List_Int64* (i8*, %Int64)*, i8* }* %"$retval_64", align 8 - ret { %TName_List_Int64* (i8*, %Int64)*, i8* } %"$$retval_64_766" +"$have_gas_772": ; preds = %"$out_of_gas_771", %entry + %"$consume_773" = sub i64 %"$gasrem_769", 1 + store i64 %"$consume_773", i64* @_gasrem, align 8 + store { %TName_List_Int64* (i8*, %Int64)*, i8* } { %TName_List_Int64* (i8*, %Int64)* bitcast (%TName_List_Int64* (%"$$fundef_65_env_152"*, %Int64)* @"$fundef_65" to %TName_List_Int64* (i8*, %Int64)*), i8* null }, { %TName_List_Int64* (i8*, %Int64)*, i8* }* %"$retval_64", align 8, !dbg !33 + %"$$retval_64_777" = load { %TName_List_Int64* (i8*, %Int64)*, i8* }, { %TName_List_Int64* (i8*, %Int64)*, i8* }* %"$retval_64", align 8 + ret { %TName_List_Int64* (i8*, %Int64)*, i8* } %"$$retval_64_777" } -define internal %TName_List_Int32* @"$fundef_61"(%"$$fundef_61_env_154"* %0, %Int32 %1) !dbg !23 { +define internal %TName_List_Int32* @"$fundef_61"(%"$$fundef_61_env_154"* %0, %Int32 %1) !dbg !34 { entry: + %"$a_768" = alloca %Int32, align 8 + store %Int32 %1, %Int32* %"$a_768", align 4 + call void @llvm.dbg.declare(metadata %Int32* %"$a_768", metadata !35, metadata !DIExpression()), !dbg !37 %"$retval_62" = alloca %TName_List_Int32*, 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" + call void @llvm.dbg.declare(metadata %TName_List_Int32** %"$retval_62", metadata !38, metadata !DIExpression()), !dbg !41 + %"$gasrem_727" = load i64, i64* @_gasrem, align 8 + %"$gascmp_728" = icmp ugt i64 1, %"$gasrem_727" + br i1 %"$gascmp_728", label %"$out_of_gas_729", label %"$have_gas_730" -"$out_of_gas_719": ; preds = %entry +"$out_of_gas_729": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_720" + br label %"$have_gas_730" -"$have_gas_720": ; preds = %"$out_of_gas_719", %entry - %"$consume_721" = sub i64 %"$gasrem_717", 1 - store i64 %"$consume_721", i64* @_gasrem, align 8 +"$have_gas_730": ; preds = %"$out_of_gas_729", %entry + %"$consume_731" = sub i64 %"$gasrem_727", 1 + store i64 %"$consume_731", i64* @_gasrem, align 8 %an = alloca %TName_List_Int32*, align 8 - %"$gasrem_722" = load i64, i64* @_gasrem, align 8 - %"$gascmp_723" = icmp ugt i64 1, %"$gasrem_722" - br i1 %"$gascmp_723", label %"$out_of_gas_724", label %"$have_gas_725" - -"$out_of_gas_724": ; preds = %"$have_gas_720" - call void @_out_of_gas() - br label %"$have_gas_725" - -"$have_gas_725": ; preds = %"$out_of_gas_724", %"$have_gas_720" - %"$consume_726" = sub i64 %"$gasrem_722", 1 - store i64 %"$consume_726", i64* @_gasrem, align 8 - %"$adtval_727_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_727_salloc" = call i8* @_salloc(i8* %"$adtval_727_load", i64 1) - %"$adtval_727" = bitcast i8* %"$adtval_727_salloc" to %CName_Nil_Int32* - %"$adtgep_728" = getelementptr inbounds %CName_Nil_Int32, %CName_Nil_Int32* %"$adtval_727", i32 0, i32 0 - store i8 1, i8* %"$adtgep_728", align 1 - %"$adtptr_729" = bitcast %CName_Nil_Int32* %"$adtval_727" to %TName_List_Int32* - store %TName_List_Int32* %"$adtptr_729", %TName_List_Int32** %an, align 8, !dbg !24 - %"$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_725" - call void @_out_of_gas() - br label %"$have_gas_733" - -"$have_gas_733": ; preds = %"$out_of_gas_732", %"$have_gas_725" - %"$consume_734" = sub i64 %"$gasrem_730", 1 - store i64 %"$consume_734", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_List_Int32** %an, metadata !42, metadata !DIExpression()), !dbg !43 + %"$gasrem_732" = load i64, i64* @_gasrem, align 8 + %"$gascmp_733" = icmp ugt i64 1, %"$gasrem_732" + br i1 %"$gascmp_733", label %"$out_of_gas_734", label %"$have_gas_735" + +"$out_of_gas_734": ; preds = %"$have_gas_730" + call void @_out_of_gas() + br label %"$have_gas_735" + +"$have_gas_735": ; preds = %"$out_of_gas_734", %"$have_gas_730" + %"$consume_736" = sub i64 %"$gasrem_732", 1 + store i64 %"$consume_736", i64* @_gasrem, align 8 + %"$adtval_737_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_737_salloc" = call i8* @_salloc(i8* %"$adtval_737_load", i64 1) + %"$adtval_737" = bitcast i8* %"$adtval_737_salloc" to %CName_Nil_Int32* + %"$adtgep_738" = getelementptr inbounds %CName_Nil_Int32, %CName_Nil_Int32* %"$adtval_737", i32 0, i32 0 + store i8 1, i8* %"$adtgep_738", align 1 + %"$adtptr_739" = bitcast %CName_Nil_Int32* %"$adtval_737" to %TName_List_Int32* + store %TName_List_Int32* %"$adtptr_739", %TName_List_Int32** %an, align 8, !dbg !44 + %"$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_735" + call void @_out_of_gas() + br label %"$have_gas_743" + +"$have_gas_743": ; preds = %"$out_of_gas_742", %"$have_gas_735" + %"$consume_744" = sub i64 %"$gasrem_740", 1 + store i64 %"$consume_744", i64* @_gasrem, align 8 %a1 = alloca %TName_List_Int32*, 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_733" - call void @_out_of_gas() - br label %"$have_gas_738" - -"$have_gas_738": ; preds = %"$out_of_gas_737", %"$have_gas_733" - %"$consume_739" = sub i64 %"$gasrem_735", 1 - store i64 %"$consume_739", i64* @_gasrem, align 8 - %"$an_740" = load %TName_List_Int32*, %TName_List_Int32** %an, align 8 - %"$adtval_741_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_741_salloc" = call i8* @_salloc(i8* %"$adtval_741_load", i64 13) - %"$adtval_741" = bitcast i8* %"$adtval_741_salloc" to %CName_Cons_Int32* - %"$adtgep_742" = getelementptr inbounds %CName_Cons_Int32, %CName_Cons_Int32* %"$adtval_741", i32 0, i32 0 - store i8 0, i8* %"$adtgep_742", align 1 - %"$adtgep_743" = getelementptr inbounds %CName_Cons_Int32, %CName_Cons_Int32* %"$adtval_741", i32 0, i32 1 - store %Int32 %1, %Int32* %"$adtgep_743", align 4 - %"$adtgep_744" = getelementptr inbounds %CName_Cons_Int32, %CName_Cons_Int32* %"$adtval_741", i32 0, i32 2 - store %TName_List_Int32* %"$an_740", %TName_List_Int32** %"$adtgep_744", align 8 - %"$adtptr_745" = bitcast %CName_Cons_Int32* %"$adtval_741" to %TName_List_Int32* - store %TName_List_Int32* %"$adtptr_745", %TName_List_Int32** %a1, align 8, !dbg !25 - %"$gasrem_746" = load i64, i64* @_gasrem, align 8 - %"$gascmp_747" = icmp ugt i64 1, %"$gasrem_746" - br i1 %"$gascmp_747", label %"$out_of_gas_748", label %"$have_gas_749" - -"$out_of_gas_748": ; preds = %"$have_gas_738" - call void @_out_of_gas() - br label %"$have_gas_749" - -"$have_gas_749": ; preds = %"$out_of_gas_748", %"$have_gas_738" - %"$consume_750" = sub i64 %"$gasrem_746", 1 - store i64 %"$consume_750", i64* @_gasrem, align 8 - %"$a1_751" = load %TName_List_Int32*, %TName_List_Int32** %a1, align 8 - %"$adtval_752_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_752_salloc" = call i8* @_salloc(i8* %"$adtval_752_load", i64 13) - %"$adtval_752" = bitcast i8* %"$adtval_752_salloc" to %CName_Cons_Int32* - %"$adtgep_753" = getelementptr inbounds %CName_Cons_Int32, %CName_Cons_Int32* %"$adtval_752", i32 0, i32 0 - store i8 0, i8* %"$adtgep_753", align 1 - %"$adtgep_754" = getelementptr inbounds %CName_Cons_Int32, %CName_Cons_Int32* %"$adtval_752", i32 0, i32 1 - store %Int32 %1, %Int32* %"$adtgep_754", align 4 - %"$adtgep_755" = getelementptr inbounds %CName_Cons_Int32, %CName_Cons_Int32* %"$adtval_752", i32 0, i32 2 - store %TName_List_Int32* %"$a1_751", %TName_List_Int32** %"$adtgep_755", align 8 - %"$adtptr_756" = bitcast %CName_Cons_Int32* %"$adtval_752" to %TName_List_Int32* - store %TName_List_Int32* %"$adtptr_756", %TName_List_Int32** %"$retval_62", align 8, !dbg !26 - %"$$retval_62_757" = load %TName_List_Int32*, %TName_List_Int32** %"$retval_62", align 8 - ret %TName_List_Int32* %"$$retval_62_757" + call void @llvm.dbg.declare(metadata %TName_List_Int32** %a1, metadata !45, metadata !DIExpression()), !dbg !46 + %"$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 + %"$an_750" = load %TName_List_Int32*, %TName_List_Int32** %an, align 8 + %"$adtval_751_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_751_salloc" = call i8* @_salloc(i8* %"$adtval_751_load", i64 13) + %"$adtval_751" = bitcast i8* %"$adtval_751_salloc" to %CName_Cons_Int32* + %"$adtgep_752" = getelementptr inbounds %CName_Cons_Int32, %CName_Cons_Int32* %"$adtval_751", i32 0, i32 0 + store i8 0, i8* %"$adtgep_752", align 1 + %"$adtgep_753" = getelementptr inbounds %CName_Cons_Int32, %CName_Cons_Int32* %"$adtval_751", i32 0, i32 1 + store %Int32 %1, %Int32* %"$adtgep_753", align 4 + %"$adtgep_754" = getelementptr inbounds %CName_Cons_Int32, %CName_Cons_Int32* %"$adtval_751", i32 0, i32 2 + store %TName_List_Int32* %"$an_750", %TName_List_Int32** %"$adtgep_754", align 8 + %"$adtptr_755" = bitcast %CName_Cons_Int32* %"$adtval_751" to %TName_List_Int32* + store %TName_List_Int32* %"$adtptr_755", %TName_List_Int32** %a1, align 8, !dbg !47 + %"$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_748" + call void @_out_of_gas() + br label %"$have_gas_759" + +"$have_gas_759": ; preds = %"$out_of_gas_758", %"$have_gas_748" + %"$consume_760" = sub i64 %"$gasrem_756", 1 + store i64 %"$consume_760", i64* @_gasrem, align 8 + %"$a1_761" = load %TName_List_Int32*, %TName_List_Int32** %a1, align 8 + %"$adtval_762_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_762_salloc" = call i8* @_salloc(i8* %"$adtval_762_load", i64 13) + %"$adtval_762" = bitcast i8* %"$adtval_762_salloc" to %CName_Cons_Int32* + %"$adtgep_763" = getelementptr inbounds %CName_Cons_Int32, %CName_Cons_Int32* %"$adtval_762", i32 0, i32 0 + store i8 0, i8* %"$adtgep_763", align 1 + %"$adtgep_764" = getelementptr inbounds %CName_Cons_Int32, %CName_Cons_Int32* %"$adtval_762", i32 0, i32 1 + store %Int32 %1, %Int32* %"$adtgep_764", align 4 + %"$adtgep_765" = getelementptr inbounds %CName_Cons_Int32, %CName_Cons_Int32* %"$adtval_762", i32 0, i32 2 + store %TName_List_Int32* %"$a1_761", %TName_List_Int32** %"$adtgep_765", align 8 + %"$adtptr_766" = bitcast %CName_Cons_Int32* %"$adtval_762" to %TName_List_Int32* + store %TName_List_Int32* %"$adtptr_766", %TName_List_Int32** %"$retval_62", align 8, !dbg !48 + %"$$retval_62_767" = load %TName_List_Int32*, %TName_List_Int32** %"$retval_62", align 8 + ret %TName_List_Int32* %"$$retval_62_767" } -define internal { %TName_List_Int32* (i8*, %Int32)*, i8* } @"$fundef_59"(%"$$fundef_59_env_155"* %0) !dbg !27 { +define internal { %TName_List_Int32* (i8*, %Int32)*, i8* } @"$fundef_59"(%"$$fundef_59_env_155"* %0) !dbg !49 { entry: %"$retval_60" = alloca { %TName_List_Int32* (i8*, %Int32)*, 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" + %"$gasrem_718" = load i64, i64* @_gasrem, align 8 + %"$gascmp_719" = icmp ugt i64 1, %"$gasrem_718" + br i1 %"$gascmp_719", label %"$out_of_gas_720", label %"$have_gas_721" -"$out_of_gas_710": ; preds = %entry +"$out_of_gas_720": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_711" + br label %"$have_gas_721" -"$have_gas_711": ; preds = %"$out_of_gas_710", %entry - %"$consume_712" = sub i64 %"$gasrem_708", 1 - store i64 %"$consume_712", i64* @_gasrem, align 8 - store { %TName_List_Int32* (i8*, %Int32)*, i8* } { %TName_List_Int32* (i8*, %Int32)* bitcast (%TName_List_Int32* (%"$$fundef_61_env_154"*, %Int32)* @"$fundef_61" to %TName_List_Int32* (i8*, %Int32)*), i8* null }, { %TName_List_Int32* (i8*, %Int32)*, i8* }* %"$retval_60", align 8, !dbg !28 - %"$$retval_60_716" = load { %TName_List_Int32* (i8*, %Int32)*, i8* }, { %TName_List_Int32* (i8*, %Int32)*, i8* }* %"$retval_60", align 8 - ret { %TName_List_Int32* (i8*, %Int32)*, i8* } %"$$retval_60_716" +"$have_gas_721": ; preds = %"$out_of_gas_720", %entry + %"$consume_722" = sub i64 %"$gasrem_718", 1 + store i64 %"$consume_722", i64* @_gasrem, align 8 + store { %TName_List_Int32* (i8*, %Int32)*, i8* } { %TName_List_Int32* (i8*, %Int32)* bitcast (%TName_List_Int32* (%"$$fundef_61_env_154"*, %Int32)* @"$fundef_61" to %TName_List_Int32* (i8*, %Int32)*), i8* null }, { %TName_List_Int32* (i8*, %Int32)*, i8* }* %"$retval_60", align 8, !dbg !50 + %"$$retval_60_726" = load { %TName_List_Int32* (i8*, %Int32)*, i8* }, { %TName_List_Int32* (i8*, %Int32)*, i8* }* %"$retval_60", align 8 + ret { %TName_List_Int32* (i8*, %Int32)*, i8* } %"$$retval_60_726" } -define internal %TName_List_Int64* @"$fundef_57"(%"$$fundef_57_env_156"* %0, %Int64 %1) !dbg !29 { +define internal %TName_List_Int64* @"$fundef_57"(%"$$fundef_57_env_156"* %0, %Int64 %1) !dbg !51 { entry: + %"$a_717" = alloca %Int64, align 8 + store %Int64 %1, %Int64* %"$a_717", align 8 + call void @llvm.dbg.declare(metadata %Int64* %"$a_717", metadata !52, metadata !DIExpression()), !dbg !53 %"$retval_58" = alloca %TName_List_Int64*, align 8 - %"$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" + call void @llvm.dbg.declare(metadata %TName_List_Int64** %"$retval_58", metadata !54, metadata !DIExpression()), !dbg !55 + %"$gasrem_692" = load i64, i64* @_gasrem, align 8 + %"$gascmp_693" = icmp ugt i64 1, %"$gasrem_692" + br i1 %"$gascmp_693", label %"$out_of_gas_694", label %"$have_gas_695" -"$out_of_gas_685": ; preds = %entry +"$out_of_gas_694": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_686" + br label %"$have_gas_695" -"$have_gas_686": ; preds = %"$out_of_gas_685", %entry - %"$consume_687" = sub i64 %"$gasrem_683", 1 - store i64 %"$consume_687", i64* @_gasrem, align 8 +"$have_gas_695": ; preds = %"$out_of_gas_694", %entry + %"$consume_696" = sub i64 %"$gasrem_692", 1 + store i64 %"$consume_696", i64* @_gasrem, align 8 %an = alloca %TName_List_Int64*, 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 - %"$adtval_693_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_693_salloc" = call i8* @_salloc(i8* %"$adtval_693_load", i64 1) - %"$adtval_693" = bitcast i8* %"$adtval_693_salloc" to %CName_Nil_Int64* - %"$adtgep_694" = getelementptr inbounds %CName_Nil_Int64, %CName_Nil_Int64* %"$adtval_693", i32 0, i32 0 - store i8 1, i8* %"$adtgep_694", align 1 - %"$adtptr_695" = bitcast %CName_Nil_Int64* %"$adtval_693" to %TName_List_Int64* - store %TName_List_Int64* %"$adtptr_695", %TName_List_Int64** %an, align 8, !dbg !30 - %"$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" - -"$out_of_gas_698": ; preds = %"$have_gas_691" - call void @_out_of_gas() - br label %"$have_gas_699" - -"$have_gas_699": ; preds = %"$out_of_gas_698", %"$have_gas_691" - %"$consume_700" = sub i64 %"$gasrem_696", 1 - store i64 %"$consume_700", i64* @_gasrem, align 8 - %"$an_701" = load %TName_List_Int64*, %TName_List_Int64** %an, align 8 + call void @llvm.dbg.declare(metadata %TName_List_Int64** %an, metadata !56, metadata !DIExpression()), !dbg !57 + %"$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 = %"$have_gas_695" + call void @_out_of_gas() + br label %"$have_gas_700" + +"$have_gas_700": ; preds = %"$out_of_gas_699", %"$have_gas_695" + %"$consume_701" = sub i64 %"$gasrem_697", 1 + store i64 %"$consume_701", i64* @_gasrem, align 8 %"$adtval_702_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_702_salloc" = call i8* @_salloc(i8* %"$adtval_702_load", i64 17) - %"$adtval_702" = bitcast i8* %"$adtval_702_salloc" to %CName_Cons_Int64* - %"$adtgep_703" = getelementptr inbounds %CName_Cons_Int64, %CName_Cons_Int64* %"$adtval_702", i32 0, i32 0 - store i8 0, i8* %"$adtgep_703", align 1 - %"$adtgep_704" = getelementptr inbounds %CName_Cons_Int64, %CName_Cons_Int64* %"$adtval_702", i32 0, i32 1 - store %Int64 %1, %Int64* %"$adtgep_704", align 8 - %"$adtgep_705" = getelementptr inbounds %CName_Cons_Int64, %CName_Cons_Int64* %"$adtval_702", i32 0, i32 2 - store %TName_List_Int64* %"$an_701", %TName_List_Int64** %"$adtgep_705", align 8 - %"$adtptr_706" = bitcast %CName_Cons_Int64* %"$adtval_702" to %TName_List_Int64* - store %TName_List_Int64* %"$adtptr_706", %TName_List_Int64** %"$retval_58", align 8, !dbg !31 - %"$$retval_58_707" = load %TName_List_Int64*, %TName_List_Int64** %"$retval_58", align 8 - ret %TName_List_Int64* %"$$retval_58_707" + %"$adtval_702_salloc" = call i8* @_salloc(i8* %"$adtval_702_load", i64 1) + %"$adtval_702" = bitcast i8* %"$adtval_702_salloc" to %CName_Nil_Int64* + %"$adtgep_703" = getelementptr inbounds %CName_Nil_Int64, %CName_Nil_Int64* %"$adtval_702", i32 0, i32 0 + store i8 1, i8* %"$adtgep_703", align 1 + %"$adtptr_704" = bitcast %CName_Nil_Int64* %"$adtval_702" to %TName_List_Int64* + store %TName_List_Int64* %"$adtptr_704", %TName_List_Int64** %an, align 8, !dbg !58 + %"$gasrem_705" = load i64, i64* @_gasrem, align 8 + %"$gascmp_706" = icmp ugt i64 1, %"$gasrem_705" + br i1 %"$gascmp_706", label %"$out_of_gas_707", label %"$have_gas_708" + +"$out_of_gas_707": ; preds = %"$have_gas_700" + call void @_out_of_gas() + br label %"$have_gas_708" + +"$have_gas_708": ; preds = %"$out_of_gas_707", %"$have_gas_700" + %"$consume_709" = sub i64 %"$gasrem_705", 1 + store i64 %"$consume_709", i64* @_gasrem, align 8 + %"$an_710" = load %TName_List_Int64*, %TName_List_Int64** %an, align 8 + %"$adtval_711_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_711_salloc" = call i8* @_salloc(i8* %"$adtval_711_load", i64 17) + %"$adtval_711" = bitcast i8* %"$adtval_711_salloc" to %CName_Cons_Int64* + %"$adtgep_712" = getelementptr inbounds %CName_Cons_Int64, %CName_Cons_Int64* %"$adtval_711", i32 0, i32 0 + store i8 0, i8* %"$adtgep_712", align 1 + %"$adtgep_713" = getelementptr inbounds %CName_Cons_Int64, %CName_Cons_Int64* %"$adtval_711", i32 0, i32 1 + store %Int64 %1, %Int64* %"$adtgep_713", align 8 + %"$adtgep_714" = getelementptr inbounds %CName_Cons_Int64, %CName_Cons_Int64* %"$adtval_711", i32 0, i32 2 + store %TName_List_Int64* %"$an_710", %TName_List_Int64** %"$adtgep_714", align 8 + %"$adtptr_715" = bitcast %CName_Cons_Int64* %"$adtval_711" to %TName_List_Int64* + store %TName_List_Int64* %"$adtptr_715", %TName_List_Int64** %"$retval_58", align 8, !dbg !59 + %"$$retval_58_716" = load %TName_List_Int64*, %TName_List_Int64** %"$retval_58", align 8 + ret %TName_List_Int64* %"$$retval_58_716" } -define internal { %TName_List_Int64* (i8*, %Int64)*, i8* } @"$fundef_55"(%"$$fundef_55_env_157"* %0) !dbg !32 { +define internal { %TName_List_Int64* (i8*, %Int64)*, i8* } @"$fundef_55"(%"$$fundef_55_env_157"* %0) !dbg !60 { entry: %"$retval_56" = alloca { %TName_List_Int64* (i8*, %Int64)*, 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" + %"$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_676": ; preds = %entry +"$out_of_gas_685": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_677" + br label %"$have_gas_686" -"$have_gas_677": ; preds = %"$out_of_gas_676", %entry - %"$consume_678" = sub i64 %"$gasrem_674", 1 - store i64 %"$consume_678", i64* @_gasrem, align 8 - store { %TName_List_Int64* (i8*, %Int64)*, i8* } { %TName_List_Int64* (i8*, %Int64)* bitcast (%TName_List_Int64* (%"$$fundef_57_env_156"*, %Int64)* @"$fundef_57" to %TName_List_Int64* (i8*, %Int64)*), i8* null }, { %TName_List_Int64* (i8*, %Int64)*, i8* }* %"$retval_56", align 8, !dbg !33 - %"$$retval_56_682" = load { %TName_List_Int64* (i8*, %Int64)*, i8* }, { %TName_List_Int64* (i8*, %Int64)*, i8* }* %"$retval_56", align 8 - ret { %TName_List_Int64* (i8*, %Int64)*, i8* } %"$$retval_56_682" +"$have_gas_686": ; preds = %"$out_of_gas_685", %entry + %"$consume_687" = sub i64 %"$gasrem_683", 1 + store i64 %"$consume_687", i64* @_gasrem, align 8 + store { %TName_List_Int64* (i8*, %Int64)*, i8* } { %TName_List_Int64* (i8*, %Int64)* bitcast (%TName_List_Int64* (%"$$fundef_57_env_156"*, %Int64)* @"$fundef_57" to %TName_List_Int64* (i8*, %Int64)*), i8* null }, { %TName_List_Int64* (i8*, %Int64)*, i8* }* %"$retval_56", align 8, !dbg !61 + %"$$retval_56_691" = load { %TName_List_Int64* (i8*, %Int64)*, i8* }, { %TName_List_Int64* (i8*, %Int64)*, i8* }* %"$retval_56", align 8 + ret { %TName_List_Int64* (i8*, %Int64)*, i8* } %"$$retval_56_691" } -define internal %TName_List_Int32* @"$fundef_53"(%"$$fundef_53_env_158"* %0, %Int32 %1) !dbg !34 { +define internal %TName_List_Int32* @"$fundef_53"(%"$$fundef_53_env_158"* %0, %Int32 %1) !dbg !62 { entry: + %"$a_682" = alloca %Int32, align 8 + store %Int32 %1, %Int32* %"$a_682", align 4 + call void @llvm.dbg.declare(metadata %Int32* %"$a_682", metadata !63, metadata !DIExpression()), !dbg !64 %"$retval_54" = alloca %TName_List_Int32*, 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" + call void @llvm.dbg.declare(metadata %TName_List_Int32** %"$retval_54", metadata !65, metadata !DIExpression()), !dbg !66 + %"$gasrem_657" = load i64, i64* @_gasrem, align 8 + %"$gascmp_658" = icmp ugt i64 1, %"$gasrem_657" + br i1 %"$gascmp_658", label %"$out_of_gas_659", label %"$have_gas_660" -"$out_of_gas_651": ; preds = %entry +"$out_of_gas_659": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_652" + br label %"$have_gas_660" -"$have_gas_652": ; preds = %"$out_of_gas_651", %entry - %"$consume_653" = sub i64 %"$gasrem_649", 1 - store i64 %"$consume_653", i64* @_gasrem, align 8 +"$have_gas_660": ; preds = %"$out_of_gas_659", %entry + %"$consume_661" = sub i64 %"$gasrem_657", 1 + store i64 %"$consume_661", i64* @_gasrem, align 8 %an = alloca %TName_List_Int32*, 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" - -"$out_of_gas_656": ; preds = %"$have_gas_652" - call void @_out_of_gas() - br label %"$have_gas_657" - -"$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 - %"$adtval_659_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_659_salloc" = call i8* @_salloc(i8* %"$adtval_659_load", i64 1) - %"$adtval_659" = bitcast i8* %"$adtval_659_salloc" to %CName_Nil_Int32* - %"$adtgep_660" = getelementptr inbounds %CName_Nil_Int32, %CName_Nil_Int32* %"$adtval_659", i32 0, i32 0 - store i8 1, i8* %"$adtgep_660", align 1 - %"$adtptr_661" = bitcast %CName_Nil_Int32* %"$adtval_659" to %TName_List_Int32* - store %TName_List_Int32* %"$adtptr_661", %TName_List_Int32** %an, align 8, !dbg !35 + call void @llvm.dbg.declare(metadata %TName_List_Int32** %an, metadata !67, metadata !DIExpression()), !dbg !68 %"$gasrem_662" = load i64, i64* @_gasrem, align 8 %"$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_657" +"$out_of_gas_664": ; preds = %"$have_gas_660" call void @_out_of_gas() br label %"$have_gas_665" -"$have_gas_665": ; preds = %"$out_of_gas_664", %"$have_gas_657" +"$have_gas_665": ; preds = %"$out_of_gas_664", %"$have_gas_660" %"$consume_666" = sub i64 %"$gasrem_662", 1 store i64 %"$consume_666", i64* @_gasrem, align 8 - %"$an_667" = load %TName_List_Int32*, %TName_List_Int32** %an, align 8 - %"$adtval_668_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_668_salloc" = call i8* @_salloc(i8* %"$adtval_668_load", i64 13) - %"$adtval_668" = bitcast i8* %"$adtval_668_salloc" to %CName_Cons_Int32* - %"$adtgep_669" = getelementptr inbounds %CName_Cons_Int32, %CName_Cons_Int32* %"$adtval_668", i32 0, i32 0 - store i8 0, i8* %"$adtgep_669", align 1 - %"$adtgep_670" = getelementptr inbounds %CName_Cons_Int32, %CName_Cons_Int32* %"$adtval_668", i32 0, i32 1 - store %Int32 %1, %Int32* %"$adtgep_670", align 4 - %"$adtgep_671" = getelementptr inbounds %CName_Cons_Int32, %CName_Cons_Int32* %"$adtval_668", i32 0, i32 2 - store %TName_List_Int32* %"$an_667", %TName_List_Int32** %"$adtgep_671", align 8 - %"$adtptr_672" = bitcast %CName_Cons_Int32* %"$adtval_668" to %TName_List_Int32* - store %TName_List_Int32* %"$adtptr_672", %TName_List_Int32** %"$retval_54", align 8, !dbg !36 - %"$$retval_54_673" = load %TName_List_Int32*, %TName_List_Int32** %"$retval_54", align 8 - ret %TName_List_Int32* %"$$retval_54_673" + %"$adtval_667_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_667_salloc" = call i8* @_salloc(i8* %"$adtval_667_load", i64 1) + %"$adtval_667" = bitcast i8* %"$adtval_667_salloc" to %CName_Nil_Int32* + %"$adtgep_668" = getelementptr inbounds %CName_Nil_Int32, %CName_Nil_Int32* %"$adtval_667", i32 0, i32 0 + store i8 1, i8* %"$adtgep_668", align 1 + %"$adtptr_669" = bitcast %CName_Nil_Int32* %"$adtval_667" to %TName_List_Int32* + store %TName_List_Int32* %"$adtptr_669", %TName_List_Int32** %an, align 8, !dbg !69 + %"$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_665" + call void @_out_of_gas() + br label %"$have_gas_673" + +"$have_gas_673": ; preds = %"$out_of_gas_672", %"$have_gas_665" + %"$consume_674" = sub i64 %"$gasrem_670", 1 + store i64 %"$consume_674", i64* @_gasrem, align 8 + %"$an_675" = load %TName_List_Int32*, %TName_List_Int32** %an, align 8 + %"$adtval_676_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_676_salloc" = call i8* @_salloc(i8* %"$adtval_676_load", i64 13) + %"$adtval_676" = bitcast i8* %"$adtval_676_salloc" to %CName_Cons_Int32* + %"$adtgep_677" = getelementptr inbounds %CName_Cons_Int32, %CName_Cons_Int32* %"$adtval_676", i32 0, i32 0 + store i8 0, i8* %"$adtgep_677", align 1 + %"$adtgep_678" = getelementptr inbounds %CName_Cons_Int32, %CName_Cons_Int32* %"$adtval_676", i32 0, i32 1 + store %Int32 %1, %Int32* %"$adtgep_678", align 4 + %"$adtgep_679" = getelementptr inbounds %CName_Cons_Int32, %CName_Cons_Int32* %"$adtval_676", i32 0, i32 2 + store %TName_List_Int32* %"$an_675", %TName_List_Int32** %"$adtgep_679", align 8 + %"$adtptr_680" = bitcast %CName_Cons_Int32* %"$adtval_676" to %TName_List_Int32* + store %TName_List_Int32* %"$adtptr_680", %TName_List_Int32** %"$retval_54", align 8, !dbg !70 + %"$$retval_54_681" = load %TName_List_Int32*, %TName_List_Int32** %"$retval_54", align 8 + ret %TName_List_Int32* %"$$retval_54_681" } -define internal { %TName_List_Int32* (i8*, %Int32)*, i8* } @"$fundef_51"(%"$$fundef_51_env_159"* %0) !dbg !37 { +define internal { %TName_List_Int32* (i8*, %Int32)*, i8* } @"$fundef_51"(%"$$fundef_51_env_159"* %0) !dbg !71 { entry: %"$retval_52" = alloca { %TName_List_Int32* (i8*, %Int32)*, i8* }, align 8 - %"$gasrem_640" = load i64, i64* @_gasrem, align 8 - %"$gascmp_641" = icmp ugt i64 1, %"$gasrem_640" - br i1 %"$gascmp_641", label %"$out_of_gas_642", label %"$have_gas_643" + %"$gasrem_648" = load i64, i64* @_gasrem, align 8 + %"$gascmp_649" = icmp ugt i64 1, %"$gasrem_648" + br i1 %"$gascmp_649", label %"$out_of_gas_650", label %"$have_gas_651" -"$out_of_gas_642": ; preds = %entry +"$out_of_gas_650": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_643" + br label %"$have_gas_651" -"$have_gas_643": ; preds = %"$out_of_gas_642", %entry - %"$consume_644" = sub i64 %"$gasrem_640", 1 - store i64 %"$consume_644", i64* @_gasrem, align 8 - store { %TName_List_Int32* (i8*, %Int32)*, i8* } { %TName_List_Int32* (i8*, %Int32)* bitcast (%TName_List_Int32* (%"$$fundef_53_env_158"*, %Int32)* @"$fundef_53" to %TName_List_Int32* (i8*, %Int32)*), i8* null }, { %TName_List_Int32* (i8*, %Int32)*, i8* }* %"$retval_52", align 8, !dbg !38 - %"$$retval_52_648" = load { %TName_List_Int32* (i8*, %Int32)*, i8* }, { %TName_List_Int32* (i8*, %Int32)*, i8* }* %"$retval_52", align 8 - ret { %TName_List_Int32* (i8*, %Int32)*, i8* } %"$$retval_52_648" +"$have_gas_651": ; preds = %"$out_of_gas_650", %entry + %"$consume_652" = sub i64 %"$gasrem_648", 1 + store i64 %"$consume_652", i64* @_gasrem, align 8 + store { %TName_List_Int32* (i8*, %Int32)*, i8* } { %TName_List_Int32* (i8*, %Int32)* bitcast (%TName_List_Int32* (%"$$fundef_53_env_158"*, %Int32)* @"$fundef_53" to %TName_List_Int32* (i8*, %Int32)*), i8* null }, { %TName_List_Int32* (i8*, %Int32)*, i8* }* %"$retval_52", align 8, !dbg !72 + %"$$retval_52_656" = load { %TName_List_Int32* (i8*, %Int32)*, i8* }, { %TName_List_Int32* (i8*, %Int32)*, i8* }* %"$retval_52", align 8 + ret { %TName_List_Int32* (i8*, %Int32)*, i8* } %"$$retval_52_656" } -define internal %Uint32 @"$fundef_48"(%"$$fundef_48_env_160"* %0, %Int64 %1) !dbg !39 { +define internal %Uint32 @"$fundef_48"(%"$$fundef_48_env_160"* %0, %Int64 %1) !dbg !73 { entry: - %"$$fundef_48_env_one_627" = getelementptr inbounds %"$$fundef_48_env_160", %"$$fundef_48_env_160"* %0, i32 0, i32 0 - %"$one_envload_628" = load %Uint32, %Uint32* %"$$fundef_48_env_one_627", align 4 + %"$h_647" = alloca %Int64, align 8 + store %Int64 %1, %Int64* %"$h_647", align 8 + call void @llvm.dbg.declare(metadata %Int64* %"$h_647", metadata !75, metadata !DIExpression()), !dbg !76 + %"$$fundef_48_env_one_634" = getelementptr inbounds %"$$fundef_48_env_160", %"$$fundef_48_env_160"* %0, i32 0, i32 0 + %"$one_envload_635" = load %Uint32, %Uint32* %"$$fundef_48_env_one_634", align 4 %one = alloca %Uint32, align 8 - store %Uint32 %"$one_envload_628", %Uint32* %one, align 4 - %"$$fundef_48_env_z_629" = getelementptr inbounds %"$$fundef_48_env_160", %"$$fundef_48_env_160"* %0, i32 0, i32 1 - %"$z_envload_630" = load %Uint32, %Uint32* %"$$fundef_48_env_z_629", align 4 + store %Uint32 %"$one_envload_635", %Uint32* %one, align 4 + %"$$fundef_48_env_z_636" = getelementptr inbounds %"$$fundef_48_env_160", %"$$fundef_48_env_160"* %0, i32 0, i32 1 + %"$z_envload_637" = load %Uint32, %Uint32* %"$$fundef_48_env_z_636", align 4 %z = alloca %Uint32, align 8 - store %Uint32 %"$z_envload_630", %Uint32* %z, align 4 + store %Uint32 %"$z_envload_637", %Uint32* %z, align 4 %"$retval_49" = alloca %Uint32, align 8 - %"$gasrem_631" = load i64, i64* @_gasrem, align 8 - %"$gascmp_632" = icmp ugt i64 4, %"$gasrem_631" - br i1 %"$gascmp_632", label %"$out_of_gas_633", label %"$have_gas_634" - -"$out_of_gas_633": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_634" - -"$have_gas_634": ; preds = %"$out_of_gas_633", %entry - %"$consume_635" = sub i64 %"$gasrem_631", 4 - store i64 %"$consume_635", i64* @_gasrem, align 8 - %"$one_636" = load %Uint32, %Uint32* %one, align 4 - %"$z_637" = load %Uint32, %Uint32* %z, align 4 - %"$add_call_638" = call %Uint32 @_add_Uint32(%Uint32 %"$one_636", %Uint32 %"$z_637"), !dbg !41 - store %Uint32 %"$add_call_638", %Uint32* %"$retval_49", align 4, !dbg !41 - %"$$retval_49_639" = load %Uint32, %Uint32* %"$retval_49", align 4 - ret %Uint32 %"$$retval_49_639" + call void @llvm.dbg.declare(metadata %Uint32* %"$retval_49", metadata !77, metadata !DIExpression()), !dbg !79 + %"$gasrem_638" = load i64, i64* @_gasrem, align 8 + %"$gascmp_639" = icmp ugt i64 4, %"$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", 4 + store i64 %"$consume_642", i64* @_gasrem, align 8 + %"$one_643" = load %Uint32, %Uint32* %one, align 4 + %"$z_644" = load %Uint32, %Uint32* %z, align 4 + %"$add_call_645" = call %Uint32 @_add_Uint32(%Uint32 %"$one_643", %Uint32 %"$z_644"), !dbg !79 + store %Uint32 %"$add_call_645", %Uint32* %"$retval_49", align 4, !dbg !79 + %"$$retval_49_646" = load %Uint32, %Uint32* %"$retval_49", align 4 + ret %Uint32 %"$$retval_49_646" } -define internal { %Uint32 (i8*, %Int64)*, i8* } @"$fundef_46"(%"$$fundef_46_env_161"* %0, %Uint32 %1) !dbg !42 { +define internal { %Uint32 (i8*, %Int64)*, i8* } @"$fundef_46"(%"$$fundef_46_env_161"* %0, %Uint32 %1) !dbg !80 { entry: - %"$$fundef_46_env_one_612" = getelementptr inbounds %"$$fundef_46_env_161", %"$$fundef_46_env_161"* %0, i32 0, i32 0 - %"$one_envload_613" = load %Uint32, %Uint32* %"$$fundef_46_env_one_612", align 4 + %"$z_633" = alloca %Uint32, align 8 + store %Uint32 %1, %Uint32* %"$z_633", align 4 + call void @llvm.dbg.declare(metadata %Uint32* %"$z_633", metadata !81, metadata !DIExpression()), !dbg !82 + %"$$fundef_46_env_one_618" = getelementptr inbounds %"$$fundef_46_env_161", %"$$fundef_46_env_161"* %0, i32 0, i32 0 + %"$one_envload_619" = load %Uint32, %Uint32* %"$$fundef_46_env_one_618", align 4 %one = alloca %Uint32, align 8 - store %Uint32 %"$one_envload_613", %Uint32* %one, align 4 + store %Uint32 %"$one_envload_619", %Uint32* %one, align 4 %"$retval_47" = alloca { %Uint32 (i8*, %Int64)*, i8* }, 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" - -"$out_of_gas_616": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_617" - -"$have_gas_617": ; preds = %"$out_of_gas_616", %entry - %"$consume_618" = sub i64 %"$gasrem_614", 1 - store i64 %"$consume_618", i64* @_gasrem, align 8 - %"$$fundef_48_envp_619_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_48_envp_619_salloc" = call i8* @_salloc(i8* %"$$fundef_48_envp_619_load", i64 8) - %"$$fundef_48_envp_619" = bitcast i8* %"$$fundef_48_envp_619_salloc" to %"$$fundef_48_env_160"* - %"$$fundef_48_env_voidp_621" = bitcast %"$$fundef_48_env_160"* %"$$fundef_48_envp_619" to i8* - %"$$fundef_48_cloval_622" = insertvalue { %Uint32 (i8*, %Int64)*, i8* } { %Uint32 (i8*, %Int64)* bitcast (%Uint32 (%"$$fundef_48_env_160"*, %Int64)* @"$fundef_48" to %Uint32 (i8*, %Int64)*), i8* undef }, i8* %"$$fundef_48_env_voidp_621", 1 - %"$$fundef_48_env_one_623" = getelementptr inbounds %"$$fundef_48_env_160", %"$$fundef_48_env_160"* %"$$fundef_48_envp_619", i32 0, i32 0 - %"$one_624" = load %Uint32, %Uint32* %one, align 4 - store %Uint32 %"$one_624", %Uint32* %"$$fundef_48_env_one_623", align 4 - %"$$fundef_48_env_z_625" = getelementptr inbounds %"$$fundef_48_env_160", %"$$fundef_48_env_160"* %"$$fundef_48_envp_619", i32 0, i32 1 - store %Uint32 %1, %Uint32* %"$$fundef_48_env_z_625", align 4 - store { %Uint32 (i8*, %Int64)*, i8* } %"$$fundef_48_cloval_622", { %Uint32 (i8*, %Int64)*, i8* }* %"$retval_47", align 8, !dbg !43 - %"$$retval_47_626" = load { %Uint32 (i8*, %Int64)*, i8* }, { %Uint32 (i8*, %Int64)*, i8* }* %"$retval_47", align 8 - ret { %Uint32 (i8*, %Int64)*, i8* } %"$$retval_47_626" + %"$gasrem_620" = load i64, i64* @_gasrem, align 8 + %"$gascmp_621" = icmp ugt i64 1, %"$gasrem_620" + br i1 %"$gascmp_621", label %"$out_of_gas_622", label %"$have_gas_623" + +"$out_of_gas_622": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_623" + +"$have_gas_623": ; preds = %"$out_of_gas_622", %entry + %"$consume_624" = sub i64 %"$gasrem_620", 1 + store i64 %"$consume_624", i64* @_gasrem, align 8 + %"$$fundef_48_envp_625_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_48_envp_625_salloc" = call i8* @_salloc(i8* %"$$fundef_48_envp_625_load", i64 8) + %"$$fundef_48_envp_625" = bitcast i8* %"$$fundef_48_envp_625_salloc" to %"$$fundef_48_env_160"* + %"$$fundef_48_env_voidp_627" = bitcast %"$$fundef_48_env_160"* %"$$fundef_48_envp_625" to i8* + %"$$fundef_48_cloval_628" = insertvalue { %Uint32 (i8*, %Int64)*, i8* } { %Uint32 (i8*, %Int64)* bitcast (%Uint32 (%"$$fundef_48_env_160"*, %Int64)* @"$fundef_48" to %Uint32 (i8*, %Int64)*), i8* undef }, i8* %"$$fundef_48_env_voidp_627", 1 + %"$$fundef_48_env_one_629" = getelementptr inbounds %"$$fundef_48_env_160", %"$$fundef_48_env_160"* %"$$fundef_48_envp_625", i32 0, i32 0 + %"$one_630" = load %Uint32, %Uint32* %one, align 4 + store %Uint32 %"$one_630", %Uint32* %"$$fundef_48_env_one_629", align 4 + %"$$fundef_48_env_z_631" = getelementptr inbounds %"$$fundef_48_env_160", %"$$fundef_48_env_160"* %"$$fundef_48_envp_625", i32 0, i32 1 + store %Uint32 %1, %Uint32* %"$$fundef_48_env_z_631", align 4 + store { %Uint32 (i8*, %Int64)*, i8* } %"$$fundef_48_cloval_628", { %Uint32 (i8*, %Int64)*, i8* }* %"$retval_47", align 8, !dbg !83 + %"$$retval_47_632" = load { %Uint32 (i8*, %Int64)*, i8* }, { %Uint32 (i8*, %Int64)*, i8* }* %"$retval_47", align 8 + ret { %Uint32 (i8*, %Int64)*, i8* } %"$$retval_47_632" } -define internal { %Uint32 (i8*, %TName_List_Int64*)*, i8* } @"$fundef_44"(%"$$fundef_44_env_162"* %0) !dbg !44 { +define internal { %Uint32 (i8*, %TName_List_Int64*)*, i8* } @"$fundef_44"(%"$$fundef_44_env_162"* %0) !dbg !84 { entry: - %"$$fundef_44_env_list_foldl_534" = getelementptr inbounds %"$$fundef_44_env_162", %"$$fundef_44_env_162"* %0, i32 0, i32 0 - %"$list_foldl_envload_535" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_44_env_list_foldl_534", align 8 + %"$$fundef_44_env_list_foldl_540" = getelementptr inbounds %"$$fundef_44_env_162", %"$$fundef_44_env_162"* %0, i32 0, i32 0 + %"$list_foldl_envload_541" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_44_env_list_foldl_540", align 8 %list_foldl = alloca { i8*, i8* }*, align 8 - store { i8*, i8* }* %"$list_foldl_envload_535", { i8*, i8* }** %list_foldl, align 8 + store { i8*, i8* }* %"$list_foldl_envload_541", { i8*, i8* }** %list_foldl, align 8 %"$retval_45" = alloca { %Uint32 (i8*, %TName_List_Int64*)*, i8* }, 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" + %"$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_538": ; preds = %entry +"$out_of_gas_544": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_539" + br label %"$have_gas_545" -"$have_gas_539": ; preds = %"$out_of_gas_538", %entry - %"$consume_540" = sub i64 %"$gasrem_536", 1 - store i64 %"$consume_540", i64* @_gasrem, align 8 +"$have_gas_545": ; preds = %"$out_of_gas_544", %entry + %"$consume_546" = sub i64 %"$gasrem_542", 1 + store i64 %"$consume_546", i64* @_gasrem, align 8 %foldl = alloca { { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %Int64)*, i8* } (i8*, %Uint32)*, i8* })*, i8* }, align 8 - %"$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_543": ; preds = %"$have_gas_539" - call void @_out_of_gas() - br label %"$have_gas_544" - -"$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 - %"$list_foldl_546" = load { i8*, i8* }*, { i8*, i8* }** %list_foldl, align 8 - %"$list_foldl_547" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$list_foldl_546", i32 2 - %"$list_foldl_548" = bitcast { i8*, i8* }* %"$list_foldl_547" to { { i8*, i8* }* (i8*)*, i8* }* - %"$list_foldl_549" = load { { i8*, i8* }* (i8*)*, i8* }, { { i8*, i8* }* (i8*)*, i8* }* %"$list_foldl_548", align 8 - %"$list_foldl_fptr_550" = extractvalue { { i8*, i8* }* (i8*)*, i8* } %"$list_foldl_549", 0 - %"$list_foldl_envptr_551" = extractvalue { { i8*, i8* }* (i8*)*, i8* } %"$list_foldl_549", 1 - %"$list_foldl_call_552" = call { i8*, i8* }* %"$list_foldl_fptr_550"(i8* %"$list_foldl_envptr_551"), !dbg !45 - %"$list_foldl_553" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$list_foldl_call_552", i32 1 - %"$list_foldl_554" = bitcast { i8*, i8* }* %"$list_foldl_553" to { { { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %Int64)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* }* - %"$list_foldl_555" = load { { { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %Int64)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* }, { { { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %Int64)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* }* %"$list_foldl_554", align 8 - %"$list_foldl_fptr_556" = extractvalue { { { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %Int64)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* } %"$list_foldl_555", 0 - %"$list_foldl_envptr_557" = extractvalue { { { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %Int64)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* } %"$list_foldl_555", 1 - %"$list_foldl_call_558" = call { { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %Int64)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } %"$list_foldl_fptr_556"(i8* %"$list_foldl_envptr_557"), !dbg !45 - store { { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %Int64)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } %"$list_foldl_call_558", { { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %Int64)*, i8* } (i8*, %Uint32)*, i8* })*, i8* }* %foldl, align 8, !dbg !46 - %"$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_544" - call void @_out_of_gas() - br label %"$have_gas_562" - -"$have_gas_562": ; preds = %"$out_of_gas_561", %"$have_gas_544" - %"$consume_563" = sub i64 %"$gasrem_559", 1 - store i64 %"$consume_563", 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 + %"$list_foldl_552" = load { i8*, i8* }*, { i8*, i8* }** %list_foldl, align 8 + %"$list_foldl_553" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$list_foldl_552", i32 2 + %"$list_foldl_554" = bitcast { i8*, i8* }* %"$list_foldl_553" to { { i8*, i8* }* (i8*)*, i8* }* + %"$list_foldl_555" = load { { i8*, i8* }* (i8*)*, i8* }, { { i8*, i8* }* (i8*)*, i8* }* %"$list_foldl_554", align 8 + %"$list_foldl_fptr_556" = extractvalue { { i8*, i8* }* (i8*)*, i8* } %"$list_foldl_555", 0 + %"$list_foldl_envptr_557" = extractvalue { { i8*, i8* }* (i8*)*, i8* } %"$list_foldl_555", 1 + %"$list_foldl_call_558" = call { i8*, i8* }* %"$list_foldl_fptr_556"(i8* %"$list_foldl_envptr_557"), !dbg !85 + %"$list_foldl_559" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$list_foldl_call_558", i32 1 + %"$list_foldl_560" = bitcast { i8*, i8* }* %"$list_foldl_559" to { { { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %Int64)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* }* + %"$list_foldl_561" = load { { { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %Int64)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* }, { { { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %Int64)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* }* %"$list_foldl_560", align 8 + %"$list_foldl_fptr_562" = extractvalue { { { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %Int64)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* } %"$list_foldl_561", 0 + %"$list_foldl_envptr_563" = extractvalue { { { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %Int64)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* } %"$list_foldl_561", 1 + %"$list_foldl_call_564" = call { { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %Int64)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } %"$list_foldl_fptr_562"(i8* %"$list_foldl_envptr_563"), !dbg !85 + store { { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %Int64)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } %"$list_foldl_call_564", { { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %Int64)*, i8* } (i8*, %Uint32)*, i8* })*, i8* }* %foldl, align 8, !dbg !86 + %"$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_550" + call void @_out_of_gas() + br label %"$have_gas_568" + +"$have_gas_568": ; preds = %"$out_of_gas_567", %"$have_gas_550" + %"$consume_569" = sub i64 %"$gasrem_565", 1 + store i64 %"$consume_569", i64* @_gasrem, align 8 %one = alloca %Uint32, 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" + call void @llvm.dbg.declare(metadata %Uint32* %one, metadata !87, metadata !DIExpression()), !dbg !88 + %"$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" -"$out_of_gas_566": ; preds = %"$have_gas_562" +"$out_of_gas_572": ; preds = %"$have_gas_568" call void @_out_of_gas() - br label %"$have_gas_567" + br label %"$have_gas_573" -"$have_gas_567": ; preds = %"$out_of_gas_566", %"$have_gas_562" - %"$consume_568" = sub i64 %"$gasrem_564", 1 - store i64 %"$consume_568", i64* @_gasrem, align 8 - store %Uint32 { i32 1 }, %Uint32* %one, align 4, !dbg !47 - %"$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" +"$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 { i32 1 }, %Uint32* %one, align 4, !dbg !89 + %"$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_571": ; preds = %"$have_gas_567" +"$out_of_gas_577": ; preds = %"$have_gas_573" call void @_out_of_gas() - br label %"$have_gas_572" + br label %"$have_gas_578" -"$have_gas_572": ; preds = %"$out_of_gas_571", %"$have_gas_567" - %"$consume_573" = sub i64 %"$gasrem_569", 1 - store i64 %"$consume_573", i64* @_gasrem, align 8 +"$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 %iter = alloca { { %Uint32 (i8*, %Int64)*, i8* } (i8*, %Uint32)*, i8* }, align 8 - %"$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" - -"$out_of_gas_576": ; preds = %"$have_gas_572" - call void @_out_of_gas() - br label %"$have_gas_577" - -"$have_gas_577": ; preds = %"$out_of_gas_576", %"$have_gas_572" - %"$consume_578" = sub i64 %"$gasrem_574", 1 - store i64 %"$consume_578", i64* @_gasrem, align 8 - %"$$fundef_46_envp_579_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_46_envp_579_salloc" = call i8* @_salloc(i8* %"$$fundef_46_envp_579_load", i64 4) - %"$$fundef_46_envp_579" = bitcast i8* %"$$fundef_46_envp_579_salloc" to %"$$fundef_46_env_161"* - %"$$fundef_46_env_voidp_581" = bitcast %"$$fundef_46_env_161"* %"$$fundef_46_envp_579" to i8* - %"$$fundef_46_cloval_582" = insertvalue { { %Uint32 (i8*, %Int64)*, i8* } (i8*, %Uint32)*, i8* } { { %Uint32 (i8*, %Int64)*, i8* } (i8*, %Uint32)* bitcast ({ %Uint32 (i8*, %Int64)*, i8* } (%"$$fundef_46_env_161"*, %Uint32)* @"$fundef_46" to { %Uint32 (i8*, %Int64)*, i8* } (i8*, %Uint32)*), i8* undef }, i8* %"$$fundef_46_env_voidp_581", 1 - %"$$fundef_46_env_one_583" = getelementptr inbounds %"$$fundef_46_env_161", %"$$fundef_46_env_161"* %"$$fundef_46_envp_579", i32 0, i32 0 - %"$one_584" = load %Uint32, %Uint32* %one, align 4 - store %Uint32 %"$one_584", %Uint32* %"$$fundef_46_env_one_583", align 4 - store { { %Uint32 (i8*, %Int64)*, i8* } (i8*, %Uint32)*, i8* } %"$$fundef_46_cloval_582", { { %Uint32 (i8*, %Int64)*, i8* } (i8*, %Uint32)*, i8* }* %iter, align 8, !dbg !48 - %"$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 = %"$have_gas_577" - call void @_out_of_gas() - br label %"$have_gas_588" - -"$have_gas_588": ; preds = %"$out_of_gas_587", %"$have_gas_577" - %"$consume_589" = sub i64 %"$gasrem_585", 1 - store i64 %"$consume_589", i64* @_gasrem, align 8 + %"$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_582": ; preds = %"$have_gas_578" + call void @_out_of_gas() + br label %"$have_gas_583" + +"$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 + %"$$fundef_46_envp_585_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_46_envp_585_salloc" = call i8* @_salloc(i8* %"$$fundef_46_envp_585_load", i64 4) + %"$$fundef_46_envp_585" = bitcast i8* %"$$fundef_46_envp_585_salloc" to %"$$fundef_46_env_161"* + %"$$fundef_46_env_voidp_587" = bitcast %"$$fundef_46_env_161"* %"$$fundef_46_envp_585" to i8* + %"$$fundef_46_cloval_588" = insertvalue { { %Uint32 (i8*, %Int64)*, i8* } (i8*, %Uint32)*, i8* } { { %Uint32 (i8*, %Int64)*, i8* } (i8*, %Uint32)* bitcast ({ %Uint32 (i8*, %Int64)*, i8* } (%"$$fundef_46_env_161"*, %Uint32)* @"$fundef_46" to { %Uint32 (i8*, %Int64)*, i8* } (i8*, %Uint32)*), i8* undef }, i8* %"$$fundef_46_env_voidp_587", 1 + %"$$fundef_46_env_one_589" = getelementptr inbounds %"$$fundef_46_env_161", %"$$fundef_46_env_161"* %"$$fundef_46_envp_585", i32 0, i32 0 + %"$one_590" = load %Uint32, %Uint32* %one, align 4 + store %Uint32 %"$one_590", %Uint32* %"$$fundef_46_env_one_589", align 4 + store { { %Uint32 (i8*, %Int64)*, i8* } (i8*, %Uint32)*, i8* } %"$$fundef_46_cloval_588", { { %Uint32 (i8*, %Int64)*, i8* } (i8*, %Uint32)*, i8* }* %iter, align 8, !dbg !90 + %"$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_593": ; preds = %"$have_gas_583" + call void @_out_of_gas() + br label %"$have_gas_594" + +"$have_gas_594": ; preds = %"$out_of_gas_593", %"$have_gas_583" + %"$consume_595" = sub i64 %"$gasrem_591", 1 + store i64 %"$consume_595", i64* @_gasrem, align 8 %init = alloca %Uint32, 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" + call void @llvm.dbg.declare(metadata %Uint32* %init, metadata !91, metadata !DIExpression()), !dbg !92 + %"$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_592": ; preds = %"$have_gas_588" +"$out_of_gas_598": ; preds = %"$have_gas_594" call void @_out_of_gas() - br label %"$have_gas_593" + br label %"$have_gas_599" -"$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 %Uint32 zeroinitializer, %Uint32* %init, align 4, !dbg !49 - %"$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" +"$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 zeroinitializer, %Uint32* %init, align 4, !dbg !93 + %"$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_597": ; preds = %"$have_gas_593" +"$out_of_gas_603": ; preds = %"$have_gas_599" call void @_out_of_gas() - br label %"$have_gas_598" + br label %"$have_gas_604" -"$have_gas_598": ; preds = %"$out_of_gas_597", %"$have_gas_593" - %"$consume_599" = sub i64 %"$gasrem_595", 1 - store i64 %"$consume_599", 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 %"$foldl_10" = alloca { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* }, align 8 - %"$foldl_600" = load { { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %Int64)*, i8* } (i8*, %Uint32)*, i8* })*, i8* }, { { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %Int64)*, i8* } (i8*, %Uint32)*, i8* })*, i8* }* %foldl, align 8 - %"$foldl_fptr_601" = extractvalue { { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %Int64)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } %"$foldl_600", 0 - %"$foldl_envptr_602" = extractvalue { { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %Int64)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } %"$foldl_600", 1 - %"$iter_603" = load { { %Uint32 (i8*, %Int64)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %Int64)*, i8* } (i8*, %Uint32)*, i8* }* %iter, align 8 - %"$foldl_call_604" = call { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* } %"$foldl_fptr_601"(i8* %"$foldl_envptr_602", { { %Uint32 (i8*, %Int64)*, i8* } (i8*, %Uint32)*, i8* } %"$iter_603"), !dbg !50 - store { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* } %"$foldl_call_604", { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* }* %"$foldl_10", align 8, !dbg !50 + %"$foldl_606" = load { { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %Int64)*, i8* } (i8*, %Uint32)*, i8* })*, i8* }, { { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %Int64)*, i8* } (i8*, %Uint32)*, i8* })*, i8* }* %foldl, align 8 + %"$foldl_fptr_607" = extractvalue { { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %Int64)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } %"$foldl_606", 0 + %"$foldl_envptr_608" = extractvalue { { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %Int64)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } %"$foldl_606", 1 + %"$iter_609" = load { { %Uint32 (i8*, %Int64)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %Int64)*, i8* } (i8*, %Uint32)*, i8* }* %iter, align 8 + %"$foldl_call_610" = call { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* } %"$foldl_fptr_607"(i8* %"$foldl_envptr_608", { { %Uint32 (i8*, %Int64)*, i8* } (i8*, %Uint32)*, i8* } %"$iter_609"), !dbg !94 + store { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* } %"$foldl_call_610", { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* }* %"$foldl_10", align 8, !dbg !94 %"$foldl_11" = alloca { %Uint32 (i8*, %TName_List_Int64*)*, i8* }, align 8 - %"$$foldl_10_605" = load { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* }* %"$foldl_10", align 8 - %"$$foldl_10_fptr_606" = extractvalue { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* } %"$$foldl_10_605", 0 - %"$$foldl_10_envptr_607" = extractvalue { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* } %"$$foldl_10_605", 1 - %"$init_608" = load %Uint32, %Uint32* %init, align 4 - %"$$foldl_10_call_609" = call { %Uint32 (i8*, %TName_List_Int64*)*, i8* } %"$$foldl_10_fptr_606"(i8* %"$$foldl_10_envptr_607", %Uint32 %"$init_608"), !dbg !50 - store { %Uint32 (i8*, %TName_List_Int64*)*, i8* } %"$$foldl_10_call_609", { %Uint32 (i8*, %TName_List_Int64*)*, i8* }* %"$foldl_11", align 8, !dbg !50 - %"$$foldl_11_610" = load { %Uint32 (i8*, %TName_List_Int64*)*, i8* }, { %Uint32 (i8*, %TName_List_Int64*)*, i8* }* %"$foldl_11", align 8 - store { %Uint32 (i8*, %TName_List_Int64*)*, i8* } %"$$foldl_11_610", { %Uint32 (i8*, %TName_List_Int64*)*, i8* }* %"$retval_45", align 8, !dbg !50 - %"$$retval_45_611" = load { %Uint32 (i8*, %TName_List_Int64*)*, i8* }, { %Uint32 (i8*, %TName_List_Int64*)*, i8* }* %"$retval_45", align 8 - ret { %Uint32 (i8*, %TName_List_Int64*)*, i8* } %"$$retval_45_611" + %"$$foldl_10_611" = load { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* }* %"$foldl_10", align 8 + %"$$foldl_10_fptr_612" = extractvalue { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* } %"$$foldl_10_611", 0 + %"$$foldl_10_envptr_613" = extractvalue { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* } %"$$foldl_10_611", 1 + %"$init_614" = load %Uint32, %Uint32* %init, align 4 + %"$$foldl_10_call_615" = call { %Uint32 (i8*, %TName_List_Int64*)*, i8* } %"$$foldl_10_fptr_612"(i8* %"$$foldl_10_envptr_613", %Uint32 %"$init_614"), !dbg !94 + store { %Uint32 (i8*, %TName_List_Int64*)*, i8* } %"$$foldl_10_call_615", { %Uint32 (i8*, %TName_List_Int64*)*, i8* }* %"$foldl_11", align 8, !dbg !94 + %"$$foldl_11_616" = load { %Uint32 (i8*, %TName_List_Int64*)*, i8* }, { %Uint32 (i8*, %TName_List_Int64*)*, i8* }* %"$foldl_11", align 8 + store { %Uint32 (i8*, %TName_List_Int64*)*, i8* } %"$$foldl_11_616", { %Uint32 (i8*, %TName_List_Int64*)*, i8* }* %"$retval_45", align 8, !dbg !94 + %"$$retval_45_617" = load { %Uint32 (i8*, %TName_List_Int64*)*, i8* }, { %Uint32 (i8*, %TName_List_Int64*)*, i8* }* %"$retval_45", align 8 + ret { %Uint32 (i8*, %TName_List_Int64*)*, i8* } %"$$retval_45_617" } -define internal %Uint32 @"$fundef_42"(%"$$fundef_42_env_163"* %0, %Int32 %1) !dbg !51 { +define internal %Uint32 @"$fundef_42"(%"$$fundef_42_env_163"* %0, %Int32 %1) !dbg !95 { entry: - %"$$fundef_42_env_one_521" = getelementptr inbounds %"$$fundef_42_env_163", %"$$fundef_42_env_163"* %0, i32 0, i32 0 - %"$one_envload_522" = load %Uint32, %Uint32* %"$$fundef_42_env_one_521", align 4 + %"$h_539" = alloca %Int32, align 8 + store %Int32 %1, %Int32* %"$h_539", align 4 + call void @llvm.dbg.declare(metadata %Int32* %"$h_539", metadata !96, metadata !DIExpression()), !dbg !97 + %"$$fundef_42_env_one_526" = getelementptr inbounds %"$$fundef_42_env_163", %"$$fundef_42_env_163"* %0, i32 0, i32 0 + %"$one_envload_527" = load %Uint32, %Uint32* %"$$fundef_42_env_one_526", align 4 %one = alloca %Uint32, align 8 - store %Uint32 %"$one_envload_522", %Uint32* %one, align 4 - %"$$fundef_42_env_z_523" = getelementptr inbounds %"$$fundef_42_env_163", %"$$fundef_42_env_163"* %0, i32 0, i32 1 - %"$z_envload_524" = load %Uint32, %Uint32* %"$$fundef_42_env_z_523", align 4 + store %Uint32 %"$one_envload_527", %Uint32* %one, align 4 + %"$$fundef_42_env_z_528" = getelementptr inbounds %"$$fundef_42_env_163", %"$$fundef_42_env_163"* %0, i32 0, i32 1 + %"$z_envload_529" = load %Uint32, %Uint32* %"$$fundef_42_env_z_528", align 4 %z = alloca %Uint32, align 8 - store %Uint32 %"$z_envload_524", %Uint32* %z, align 4 + store %Uint32 %"$z_envload_529", %Uint32* %z, align 4 %"$retval_43" = alloca %Uint32, align 8 - %"$gasrem_525" = load i64, i64* @_gasrem, align 8 - %"$gascmp_526" = icmp ugt i64 4, %"$gasrem_525" - br i1 %"$gascmp_526", label %"$out_of_gas_527", label %"$have_gas_528" - -"$out_of_gas_527": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_528" - -"$have_gas_528": ; preds = %"$out_of_gas_527", %entry - %"$consume_529" = sub i64 %"$gasrem_525", 4 - store i64 %"$consume_529", i64* @_gasrem, align 8 - %"$one_530" = load %Uint32, %Uint32* %one, align 4 - %"$z_531" = load %Uint32, %Uint32* %z, align 4 - %"$add_call_532" = call %Uint32 @_add_Uint32(%Uint32 %"$one_530", %Uint32 %"$z_531"), !dbg !52 - store %Uint32 %"$add_call_532", %Uint32* %"$retval_43", align 4, !dbg !52 - %"$$retval_43_533" = load %Uint32, %Uint32* %"$retval_43", align 4 - ret %Uint32 %"$$retval_43_533" + call void @llvm.dbg.declare(metadata %Uint32* %"$retval_43", metadata !98, metadata !DIExpression()), !dbg !99 + %"$gasrem_530" = load i64, i64* @_gasrem, align 8 + %"$gascmp_531" = icmp ugt i64 4, %"$gasrem_530" + br i1 %"$gascmp_531", label %"$out_of_gas_532", label %"$have_gas_533" + +"$out_of_gas_532": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_533" + +"$have_gas_533": ; preds = %"$out_of_gas_532", %entry + %"$consume_534" = sub i64 %"$gasrem_530", 4 + store i64 %"$consume_534", i64* @_gasrem, align 8 + %"$one_535" = load %Uint32, %Uint32* %one, align 4 + %"$z_536" = load %Uint32, %Uint32* %z, align 4 + %"$add_call_537" = call %Uint32 @_add_Uint32(%Uint32 %"$one_535", %Uint32 %"$z_536"), !dbg !99 + store %Uint32 %"$add_call_537", %Uint32* %"$retval_43", align 4, !dbg !99 + %"$$retval_43_538" = load %Uint32, %Uint32* %"$retval_43", align 4 + ret %Uint32 %"$$retval_43_538" } -define internal { %Uint32 (i8*, %Int32)*, i8* } @"$fundef_40"(%"$$fundef_40_env_164"* %0, %Uint32 %1) !dbg !53 { +define internal { %Uint32 (i8*, %Int32)*, i8* } @"$fundef_40"(%"$$fundef_40_env_164"* %0, %Uint32 %1) !dbg !100 { entry: - %"$$fundef_40_env_one_506" = getelementptr inbounds %"$$fundef_40_env_164", %"$$fundef_40_env_164"* %0, i32 0, i32 0 - %"$one_envload_507" = load %Uint32, %Uint32* %"$$fundef_40_env_one_506", align 4 + %"$z_525" = alloca %Uint32, align 8 + store %Uint32 %1, %Uint32* %"$z_525", align 4 + call void @llvm.dbg.declare(metadata %Uint32* %"$z_525", metadata !101, metadata !DIExpression()), !dbg !102 + %"$$fundef_40_env_one_510" = getelementptr inbounds %"$$fundef_40_env_164", %"$$fundef_40_env_164"* %0, i32 0, i32 0 + %"$one_envload_511" = load %Uint32, %Uint32* %"$$fundef_40_env_one_510", align 4 %one = alloca %Uint32, align 8 - store %Uint32 %"$one_envload_507", %Uint32* %one, align 4 + store %Uint32 %"$one_envload_511", %Uint32* %one, align 4 %"$retval_41" = alloca { %Uint32 (i8*, %Int32)*, 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" - -"$out_of_gas_510": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_511" - -"$have_gas_511": ; preds = %"$out_of_gas_510", %entry - %"$consume_512" = sub i64 %"$gasrem_508", 1 - store i64 %"$consume_512", i64* @_gasrem, align 8 - %"$$fundef_42_envp_513_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_42_envp_513_salloc" = call i8* @_salloc(i8* %"$$fundef_42_envp_513_load", i64 8) - %"$$fundef_42_envp_513" = bitcast i8* %"$$fundef_42_envp_513_salloc" to %"$$fundef_42_env_163"* - %"$$fundef_42_env_voidp_515" = bitcast %"$$fundef_42_env_163"* %"$$fundef_42_envp_513" to i8* - %"$$fundef_42_cloval_516" = insertvalue { %Uint32 (i8*, %Int32)*, i8* } { %Uint32 (i8*, %Int32)* bitcast (%Uint32 (%"$$fundef_42_env_163"*, %Int32)* @"$fundef_42" to %Uint32 (i8*, %Int32)*), i8* undef }, i8* %"$$fundef_42_env_voidp_515", 1 - %"$$fundef_42_env_one_517" = getelementptr inbounds %"$$fundef_42_env_163", %"$$fundef_42_env_163"* %"$$fundef_42_envp_513", i32 0, i32 0 - %"$one_518" = load %Uint32, %Uint32* %one, align 4 - store %Uint32 %"$one_518", %Uint32* %"$$fundef_42_env_one_517", align 4 - %"$$fundef_42_env_z_519" = getelementptr inbounds %"$$fundef_42_env_163", %"$$fundef_42_env_163"* %"$$fundef_42_envp_513", i32 0, i32 1 - store %Uint32 %1, %Uint32* %"$$fundef_42_env_z_519", align 4 - store { %Uint32 (i8*, %Int32)*, i8* } %"$$fundef_42_cloval_516", { %Uint32 (i8*, %Int32)*, i8* }* %"$retval_41", align 8, !dbg !54 - %"$$retval_41_520" = load { %Uint32 (i8*, %Int32)*, i8* }, { %Uint32 (i8*, %Int32)*, i8* }* %"$retval_41", align 8 - ret { %Uint32 (i8*, %Int32)*, i8* } %"$$retval_41_520" + %"$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_42_envp_517_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_42_envp_517_salloc" = call i8* @_salloc(i8* %"$$fundef_42_envp_517_load", i64 8) + %"$$fundef_42_envp_517" = bitcast i8* %"$$fundef_42_envp_517_salloc" to %"$$fundef_42_env_163"* + %"$$fundef_42_env_voidp_519" = bitcast %"$$fundef_42_env_163"* %"$$fundef_42_envp_517" to i8* + %"$$fundef_42_cloval_520" = insertvalue { %Uint32 (i8*, %Int32)*, i8* } { %Uint32 (i8*, %Int32)* bitcast (%Uint32 (%"$$fundef_42_env_163"*, %Int32)* @"$fundef_42" to %Uint32 (i8*, %Int32)*), i8* undef }, i8* %"$$fundef_42_env_voidp_519", 1 + %"$$fundef_42_env_one_521" = getelementptr inbounds %"$$fundef_42_env_163", %"$$fundef_42_env_163"* %"$$fundef_42_envp_517", i32 0, i32 0 + %"$one_522" = load %Uint32, %Uint32* %one, align 4 + store %Uint32 %"$one_522", %Uint32* %"$$fundef_42_env_one_521", align 4 + %"$$fundef_42_env_z_523" = getelementptr inbounds %"$$fundef_42_env_163", %"$$fundef_42_env_163"* %"$$fundef_42_envp_517", i32 0, i32 1 + store %Uint32 %1, %Uint32* %"$$fundef_42_env_z_523", align 4 + store { %Uint32 (i8*, %Int32)*, i8* } %"$$fundef_42_cloval_520", { %Uint32 (i8*, %Int32)*, i8* }* %"$retval_41", align 8, !dbg !103 + %"$$retval_41_524" = load { %Uint32 (i8*, %Int32)*, i8* }, { %Uint32 (i8*, %Int32)*, i8* }* %"$retval_41", align 8 + ret { %Uint32 (i8*, %Int32)*, i8* } %"$$retval_41_524" } -define internal { %Uint32 (i8*, %TName_List_Int32*)*, i8* } @"$fundef_38"(%"$$fundef_38_env_165"* %0) !dbg !55 { +define internal { %Uint32 (i8*, %TName_List_Int32*)*, i8* } @"$fundef_38"(%"$$fundef_38_env_165"* %0) !dbg !104 { entry: - %"$$fundef_38_env_list_foldl_428" = getelementptr inbounds %"$$fundef_38_env_165", %"$$fundef_38_env_165"* %0, i32 0, i32 0 - %"$list_foldl_envload_429" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_38_env_list_foldl_428", align 8 + %"$$fundef_38_env_list_foldl_432" = getelementptr inbounds %"$$fundef_38_env_165", %"$$fundef_38_env_165"* %0, i32 0, i32 0 + %"$list_foldl_envload_433" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_38_env_list_foldl_432", align 8 %list_foldl = alloca { i8*, i8* }*, align 8 - store { i8*, i8* }* %"$list_foldl_envload_429", { i8*, i8* }** %list_foldl, align 8 + store { i8*, i8* }* %"$list_foldl_envload_433", { i8*, i8* }** %list_foldl, align 8 %"$retval_39" = alloca { %Uint32 (i8*, %TName_List_Int32*)*, 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" + %"$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_432": ; preds = %entry +"$out_of_gas_436": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_433" + br label %"$have_gas_437" -"$have_gas_433": ; preds = %"$out_of_gas_432", %entry - %"$consume_434" = sub i64 %"$gasrem_430", 1 - store i64 %"$consume_434", i64* @_gasrem, align 8 +"$have_gas_437": ; preds = %"$out_of_gas_436", %entry + %"$consume_438" = sub i64 %"$gasrem_434", 1 + store i64 %"$consume_438", i64* @_gasrem, align 8 %foldl = alloca { { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %Int32)*, i8* } (i8*, %Uint32)*, i8* })*, i8* }, 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" - -"$out_of_gas_437": ; preds = %"$have_gas_433" - call void @_out_of_gas() - br label %"$have_gas_438" - -"$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 - %"$list_foldl_440" = load { i8*, i8* }*, { i8*, i8* }** %list_foldl, align 8 - %"$list_foldl_441" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$list_foldl_440", i32 0 - %"$list_foldl_442" = bitcast { i8*, i8* }* %"$list_foldl_441" to { { i8*, i8* }* (i8*)*, i8* }* - %"$list_foldl_443" = load { { i8*, i8* }* (i8*)*, i8* }, { { i8*, i8* }* (i8*)*, i8* }* %"$list_foldl_442", align 8 - %"$list_foldl_fptr_444" = extractvalue { { i8*, i8* }* (i8*)*, i8* } %"$list_foldl_443", 0 - %"$list_foldl_envptr_445" = extractvalue { { i8*, i8* }* (i8*)*, i8* } %"$list_foldl_443", 1 - %"$list_foldl_call_446" = call { i8*, i8* }* %"$list_foldl_fptr_444"(i8* %"$list_foldl_envptr_445"), !dbg !56 - %"$list_foldl_447" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$list_foldl_call_446", i32 1 - %"$list_foldl_448" = bitcast { i8*, i8* }* %"$list_foldl_447" to { { { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %Int32)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* }* - %"$list_foldl_449" = load { { { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %Int32)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* }, { { { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %Int32)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* }* %"$list_foldl_448", align 8 - %"$list_foldl_fptr_450" = extractvalue { { { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %Int32)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* } %"$list_foldl_449", 0 - %"$list_foldl_envptr_451" = extractvalue { { { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %Int32)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* } %"$list_foldl_449", 1 - %"$list_foldl_call_452" = call { { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %Int32)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } %"$list_foldl_fptr_450"(i8* %"$list_foldl_envptr_451"), !dbg !56 - store { { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %Int32)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } %"$list_foldl_call_452", { { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %Int32)*, i8* } (i8*, %Uint32)*, i8* })*, i8* }* %foldl, align 8, !dbg !57 - %"$gasrem_453" = load i64, i64* @_gasrem, align 8 - %"$gascmp_454" = icmp ugt i64 1, %"$gasrem_453" - br i1 %"$gascmp_454", label %"$out_of_gas_455", label %"$have_gas_456" - -"$out_of_gas_455": ; preds = %"$have_gas_438" - call void @_out_of_gas() - br label %"$have_gas_456" - -"$have_gas_456": ; preds = %"$out_of_gas_455", %"$have_gas_438" - %"$consume_457" = sub i64 %"$gasrem_453", 1 - store i64 %"$consume_457", 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 + %"$list_foldl_444" = load { i8*, i8* }*, { i8*, i8* }** %list_foldl, align 8 + %"$list_foldl_445" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$list_foldl_444", i32 0 + %"$list_foldl_446" = bitcast { i8*, i8* }* %"$list_foldl_445" to { { i8*, i8* }* (i8*)*, i8* }* + %"$list_foldl_447" = load { { i8*, i8* }* (i8*)*, i8* }, { { i8*, i8* }* (i8*)*, i8* }* %"$list_foldl_446", align 8 + %"$list_foldl_fptr_448" = extractvalue { { i8*, i8* }* (i8*)*, i8* } %"$list_foldl_447", 0 + %"$list_foldl_envptr_449" = extractvalue { { i8*, i8* }* (i8*)*, i8* } %"$list_foldl_447", 1 + %"$list_foldl_call_450" = call { i8*, i8* }* %"$list_foldl_fptr_448"(i8* %"$list_foldl_envptr_449"), !dbg !105 + %"$list_foldl_451" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$list_foldl_call_450", i32 1 + %"$list_foldl_452" = bitcast { i8*, i8* }* %"$list_foldl_451" to { { { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %Int32)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* }* + %"$list_foldl_453" = load { { { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %Int32)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* }, { { { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %Int32)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* }* %"$list_foldl_452", align 8 + %"$list_foldl_fptr_454" = extractvalue { { { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %Int32)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* } %"$list_foldl_453", 0 + %"$list_foldl_envptr_455" = extractvalue { { { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %Int32)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* } %"$list_foldl_453", 1 + %"$list_foldl_call_456" = call { { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %Int32)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } %"$list_foldl_fptr_454"(i8* %"$list_foldl_envptr_455"), !dbg !105 + store { { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %Int32)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } %"$list_foldl_call_456", { { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %Int32)*, i8* } (i8*, %Uint32)*, i8* })*, i8* }* %foldl, align 8, !dbg !106 + %"$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_459": ; preds = %"$have_gas_442" + call void @_out_of_gas() + br label %"$have_gas_460" + +"$have_gas_460": ; preds = %"$out_of_gas_459", %"$have_gas_442" + %"$consume_461" = sub i64 %"$gasrem_457", 1 + store i64 %"$consume_461", i64* @_gasrem, align 8 %one = alloca %Uint32, 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" + call void @llvm.dbg.declare(metadata %Uint32* %one, metadata !107, metadata !DIExpression()), !dbg !108 + %"$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_460": ; preds = %"$have_gas_456" +"$out_of_gas_464": ; preds = %"$have_gas_460" call void @_out_of_gas() - br label %"$have_gas_461" + br label %"$have_gas_465" -"$have_gas_461": ; preds = %"$out_of_gas_460", %"$have_gas_456" - %"$consume_462" = sub i64 %"$gasrem_458", 1 - store i64 %"$consume_462", i64* @_gasrem, align 8 - store %Uint32 { i32 1 }, %Uint32* %one, align 4, !dbg !58 - %"$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" +"$have_gas_465": ; preds = %"$out_of_gas_464", %"$have_gas_460" + %"$consume_466" = sub i64 %"$gasrem_462", 1 + store i64 %"$consume_466", i64* @_gasrem, align 8 + store %Uint32 { i32 1 }, %Uint32* %one, align 4, !dbg !109 + %"$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_465": ; preds = %"$have_gas_461" +"$out_of_gas_469": ; preds = %"$have_gas_465" call void @_out_of_gas() - br label %"$have_gas_466" + br label %"$have_gas_470" -"$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 +"$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 %iter = alloca { { %Uint32 (i8*, %Int32)*, i8* } (i8*, %Uint32)*, 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 = %"$have_gas_466" - call void @_out_of_gas() - br label %"$have_gas_471" - -"$have_gas_471": ; preds = %"$out_of_gas_470", %"$have_gas_466" - %"$consume_472" = sub i64 %"$gasrem_468", 1 - store i64 %"$consume_472", i64* @_gasrem, align 8 - %"$$fundef_40_envp_473_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_40_envp_473_salloc" = call i8* @_salloc(i8* %"$$fundef_40_envp_473_load", i64 4) - %"$$fundef_40_envp_473" = bitcast i8* %"$$fundef_40_envp_473_salloc" to %"$$fundef_40_env_164"* - %"$$fundef_40_env_voidp_475" = bitcast %"$$fundef_40_env_164"* %"$$fundef_40_envp_473" to i8* - %"$$fundef_40_cloval_476" = insertvalue { { %Uint32 (i8*, %Int32)*, i8* } (i8*, %Uint32)*, i8* } { { %Uint32 (i8*, %Int32)*, i8* } (i8*, %Uint32)* bitcast ({ %Uint32 (i8*, %Int32)*, i8* } (%"$$fundef_40_env_164"*, %Uint32)* @"$fundef_40" to { %Uint32 (i8*, %Int32)*, i8* } (i8*, %Uint32)*), i8* undef }, i8* %"$$fundef_40_env_voidp_475", 1 - %"$$fundef_40_env_one_477" = getelementptr inbounds %"$$fundef_40_env_164", %"$$fundef_40_env_164"* %"$$fundef_40_envp_473", i32 0, i32 0 - %"$one_478" = load %Uint32, %Uint32* %one, align 4 - store %Uint32 %"$one_478", %Uint32* %"$$fundef_40_env_one_477", align 4 - store { { %Uint32 (i8*, %Int32)*, i8* } (i8*, %Uint32)*, i8* } %"$$fundef_40_cloval_476", { { %Uint32 (i8*, %Int32)*, i8* } (i8*, %Uint32)*, i8* }* %iter, align 8, !dbg !59 - %"$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 = %"$have_gas_471" - call void @_out_of_gas() - br label %"$have_gas_482" - -"$have_gas_482": ; preds = %"$out_of_gas_481", %"$have_gas_471" - %"$consume_483" = sub i64 %"$gasrem_479", 1 - store i64 %"$consume_483", i64* @_gasrem, 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" + +"$out_of_gas_474": ; preds = %"$have_gas_470" + call void @_out_of_gas() + br label %"$have_gas_475" + +"$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 + %"$$fundef_40_envp_477_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_40_envp_477_salloc" = call i8* @_salloc(i8* %"$$fundef_40_envp_477_load", i64 4) + %"$$fundef_40_envp_477" = bitcast i8* %"$$fundef_40_envp_477_salloc" to %"$$fundef_40_env_164"* + %"$$fundef_40_env_voidp_479" = bitcast %"$$fundef_40_env_164"* %"$$fundef_40_envp_477" to i8* + %"$$fundef_40_cloval_480" = insertvalue { { %Uint32 (i8*, %Int32)*, i8* } (i8*, %Uint32)*, i8* } { { %Uint32 (i8*, %Int32)*, i8* } (i8*, %Uint32)* bitcast ({ %Uint32 (i8*, %Int32)*, i8* } (%"$$fundef_40_env_164"*, %Uint32)* @"$fundef_40" to { %Uint32 (i8*, %Int32)*, i8* } (i8*, %Uint32)*), i8* undef }, i8* %"$$fundef_40_env_voidp_479", 1 + %"$$fundef_40_env_one_481" = getelementptr inbounds %"$$fundef_40_env_164", %"$$fundef_40_env_164"* %"$$fundef_40_envp_477", i32 0, i32 0 + %"$one_482" = load %Uint32, %Uint32* %one, align 4 + store %Uint32 %"$one_482", %Uint32* %"$$fundef_40_env_one_481", align 4 + store { { %Uint32 (i8*, %Int32)*, i8* } (i8*, %Uint32)*, i8* } %"$$fundef_40_cloval_480", { { %Uint32 (i8*, %Int32)*, i8* } (i8*, %Uint32)*, i8* }* %iter, align 8, !dbg !110 + %"$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_475" + call void @_out_of_gas() + br label %"$have_gas_486" + +"$have_gas_486": ; preds = %"$out_of_gas_485", %"$have_gas_475" + %"$consume_487" = sub i64 %"$gasrem_483", 1 + store i64 %"$consume_487", i64* @_gasrem, align 8 %init = alloca %Uint32, align 8 - %"$gasrem_484" = load i64, i64* @_gasrem, align 8 - %"$gascmp_485" = icmp ugt i64 1, %"$gasrem_484" - br i1 %"$gascmp_485", label %"$out_of_gas_486", label %"$have_gas_487" + call void @llvm.dbg.declare(metadata %Uint32* %init, metadata !111, metadata !DIExpression()), !dbg !112 + %"$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_486": ; preds = %"$have_gas_482" +"$out_of_gas_490": ; preds = %"$have_gas_486" call void @_out_of_gas() - br label %"$have_gas_487" + br label %"$have_gas_491" -"$have_gas_487": ; preds = %"$out_of_gas_486", %"$have_gas_482" - %"$consume_488" = sub i64 %"$gasrem_484", 1 - store i64 %"$consume_488", i64* @_gasrem, align 8 - store %Uint32 zeroinitializer, %Uint32* %init, align 4, !dbg !60 - %"$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" +"$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 + store %Uint32 zeroinitializer, %Uint32* %init, align 4, !dbg !113 + %"$gasrem_493" = load i64, i64* @_gasrem, align 8 + %"$gascmp_494" = icmp ugt i64 1, %"$gasrem_493" + br i1 %"$gascmp_494", label %"$out_of_gas_495", label %"$have_gas_496" -"$out_of_gas_491": ; preds = %"$have_gas_487" +"$out_of_gas_495": ; preds = %"$have_gas_491" call void @_out_of_gas() - br label %"$have_gas_492" + br label %"$have_gas_496" -"$have_gas_492": ; preds = %"$out_of_gas_491", %"$have_gas_487" - %"$consume_493" = sub i64 %"$gasrem_489", 1 - store i64 %"$consume_493", i64* @_gasrem, align 8 +"$have_gas_496": ; preds = %"$out_of_gas_495", %"$have_gas_491" + %"$consume_497" = sub i64 %"$gasrem_493", 1 + store i64 %"$consume_497", i64* @_gasrem, align 8 %"$foldl_10" = alloca { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*, %Uint32)*, i8* }, align 8 - %"$foldl_494" = load { { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %Int32)*, i8* } (i8*, %Uint32)*, i8* })*, i8* }, { { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %Int32)*, i8* } (i8*, %Uint32)*, i8* })*, i8* }* %foldl, align 8 - %"$foldl_fptr_495" = extractvalue { { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %Int32)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } %"$foldl_494", 0 - %"$foldl_envptr_496" = extractvalue { { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %Int32)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } %"$foldl_494", 1 - %"$iter_497" = load { { %Uint32 (i8*, %Int32)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %Int32)*, i8* } (i8*, %Uint32)*, i8* }* %iter, align 8 - %"$foldl_call_498" = call { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*, %Uint32)*, i8* } %"$foldl_fptr_495"(i8* %"$foldl_envptr_496", { { %Uint32 (i8*, %Int32)*, i8* } (i8*, %Uint32)*, i8* } %"$iter_497"), !dbg !61 - store { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*, %Uint32)*, i8* } %"$foldl_call_498", { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*, %Uint32)*, i8* }* %"$foldl_10", align 8, !dbg !61 + %"$foldl_498" = load { { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %Int32)*, i8* } (i8*, %Uint32)*, i8* })*, i8* }, { { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %Int32)*, i8* } (i8*, %Uint32)*, i8* })*, i8* }* %foldl, align 8 + %"$foldl_fptr_499" = extractvalue { { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %Int32)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } %"$foldl_498", 0 + %"$foldl_envptr_500" = extractvalue { { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %Int32)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } %"$foldl_498", 1 + %"$iter_501" = load { { %Uint32 (i8*, %Int32)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %Int32)*, i8* } (i8*, %Uint32)*, i8* }* %iter, align 8 + %"$foldl_call_502" = call { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*, %Uint32)*, i8* } %"$foldl_fptr_499"(i8* %"$foldl_envptr_500", { { %Uint32 (i8*, %Int32)*, i8* } (i8*, %Uint32)*, i8* } %"$iter_501"), !dbg !114 + store { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*, %Uint32)*, i8* } %"$foldl_call_502", { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*, %Uint32)*, i8* }* %"$foldl_10", align 8, !dbg !114 %"$foldl_11" = alloca { %Uint32 (i8*, %TName_List_Int32*)*, i8* }, align 8 - %"$$foldl_10_499" = load { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*, %Uint32)*, i8* }* %"$foldl_10", align 8 - %"$$foldl_10_fptr_500" = extractvalue { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*, %Uint32)*, i8* } %"$$foldl_10_499", 0 - %"$$foldl_10_envptr_501" = extractvalue { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*, %Uint32)*, i8* } %"$$foldl_10_499", 1 - %"$init_502" = load %Uint32, %Uint32* %init, align 4 - %"$$foldl_10_call_503" = call { %Uint32 (i8*, %TName_List_Int32*)*, i8* } %"$$foldl_10_fptr_500"(i8* %"$$foldl_10_envptr_501", %Uint32 %"$init_502"), !dbg !61 - store { %Uint32 (i8*, %TName_List_Int32*)*, i8* } %"$$foldl_10_call_503", { %Uint32 (i8*, %TName_List_Int32*)*, i8* }* %"$foldl_11", align 8, !dbg !61 - %"$$foldl_11_504" = load { %Uint32 (i8*, %TName_List_Int32*)*, i8* }, { %Uint32 (i8*, %TName_List_Int32*)*, i8* }* %"$foldl_11", align 8 - store { %Uint32 (i8*, %TName_List_Int32*)*, i8* } %"$$foldl_11_504", { %Uint32 (i8*, %TName_List_Int32*)*, i8* }* %"$retval_39", align 8, !dbg !61 - %"$$retval_39_505" = load { %Uint32 (i8*, %TName_List_Int32*)*, i8* }, { %Uint32 (i8*, %TName_List_Int32*)*, i8* }* %"$retval_39", align 8 - ret { %Uint32 (i8*, %TName_List_Int32*)*, i8* } %"$$retval_39_505" + %"$$foldl_10_503" = load { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*, %Uint32)*, i8* }* %"$foldl_10", align 8 + %"$$foldl_10_fptr_504" = extractvalue { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*, %Uint32)*, i8* } %"$$foldl_10_503", 0 + %"$$foldl_10_envptr_505" = extractvalue { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*, %Uint32)*, i8* } %"$$foldl_10_503", 1 + %"$init_506" = load %Uint32, %Uint32* %init, align 4 + %"$$foldl_10_call_507" = call { %Uint32 (i8*, %TName_List_Int32*)*, i8* } %"$$foldl_10_fptr_504"(i8* %"$$foldl_10_envptr_505", %Uint32 %"$init_506"), !dbg !114 + store { %Uint32 (i8*, %TName_List_Int32*)*, i8* } %"$$foldl_10_call_507", { %Uint32 (i8*, %TName_List_Int32*)*, i8* }* %"$foldl_11", align 8, !dbg !114 + %"$$foldl_11_508" = load { %Uint32 (i8*, %TName_List_Int32*)*, i8* }, { %Uint32 (i8*, %TName_List_Int32*)*, i8* }* %"$foldl_11", align 8 + store { %Uint32 (i8*, %TName_List_Int32*)*, i8* } %"$$foldl_11_508", { %Uint32 (i8*, %TName_List_Int32*)*, i8* }* %"$retval_39", align 8, !dbg !114 + %"$$retval_39_509" = load { %Uint32 (i8*, %TName_List_Int32*)*, i8* }, { %Uint32 (i8*, %TName_List_Int32*)*, i8* }* %"$retval_39", align 8 + ret { %Uint32 (i8*, %TName_List_Int32*)*, i8* } %"$$retval_39_509" } -define internal %Uint32 @"$fundef_36"(%"$$fundef_36_env_166"* %0, %TName_List_Int64* %1) !dbg !62 { +define internal %Uint32 @"$fundef_36"(%"$$fundef_36_env_166"* %0, %TName_List_Int64* %1) !dbg !115 { entry: - %"$$fundef_36_env_f_361" = getelementptr inbounds %"$$fundef_36_env_166", %"$$fundef_36_env_166"* %0, i32 0, i32 0 - %"$f_envload_362" = load { { %Uint32 (i8*, %Int64)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %Int64)*, i8* } (i8*, %Uint32)*, i8* }* %"$$fundef_36_env_f_361", align 8 + %"$l_431" = alloca %TName_List_Int64*, align 8 + store %TName_List_Int64* %1, %TName_List_Int64** %"$l_431", align 8 + call void @llvm.dbg.declare(metadata %TName_List_Int64** %"$l_431", metadata !117, metadata !DIExpression()), !dbg !118 + %"$$fundef_36_env_f_364" = getelementptr inbounds %"$$fundef_36_env_166", %"$$fundef_36_env_166"* %0, i32 0, i32 0 + %"$f_envload_365" = load { { %Uint32 (i8*, %Int64)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %Int64)*, i8* } (i8*, %Uint32)*, i8* }* %"$$fundef_36_env_f_364", align 8 %f = alloca { { %Uint32 (i8*, %Int64)*, i8* } (i8*, %Uint32)*, i8* }, align 8 - store { { %Uint32 (i8*, %Int64)*, i8* } (i8*, %Uint32)*, i8* } %"$f_envload_362", { { %Uint32 (i8*, %Int64)*, i8* } (i8*, %Uint32)*, i8* }* %f, align 8 - %"$$fundef_36_env_g_363" = getelementptr inbounds %"$$fundef_36_env_166", %"$$fundef_36_env_166"* %0, i32 0, i32 1 - %"$g_envload_364" = load { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* }* %"$$fundef_36_env_g_363", align 8 + store { { %Uint32 (i8*, %Int64)*, i8* } (i8*, %Uint32)*, i8* } %"$f_envload_365", { { %Uint32 (i8*, %Int64)*, i8* } (i8*, %Uint32)*, i8* }* %f, align 8 + %"$$fundef_36_env_g_366" = getelementptr inbounds %"$$fundef_36_env_166", %"$$fundef_36_env_166"* %0, i32 0, i32 1 + %"$g_envload_367" = load { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* }* %"$$fundef_36_env_g_366", align 8 %g = alloca { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* }, align 8 - store { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* } %"$g_envload_364", { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* }* %g, align 8 - %"$$fundef_36_env_z_365" = getelementptr inbounds %"$$fundef_36_env_166", %"$$fundef_36_env_166"* %0, i32 0, i32 2 - %"$z_envload_366" = load %Uint32, %Uint32* %"$$fundef_36_env_z_365", align 4 + store { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* } %"$g_envload_367", { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* }* %g, align 8 + %"$$fundef_36_env_z_368" = getelementptr inbounds %"$$fundef_36_env_166", %"$$fundef_36_env_166"* %0, i32 0, i32 2 + %"$z_envload_369" = load %Uint32, %Uint32* %"$$fundef_36_env_z_368", align 4 %z = alloca %Uint32, align 8 - store %Uint32 %"$z_envload_366", %Uint32* %z, align 4 + store %Uint32 %"$z_envload_369", %Uint32* %z, align 4 %"$retval_37" = alloca %Uint32, align 8 - %"$gasrem_367" = load i64, i64* @_gasrem, align 8 - %"$gascmp_368" = icmp ugt i64 2, %"$gasrem_367" - br i1 %"$gascmp_368", label %"$out_of_gas_369", label %"$have_gas_370" - -"$out_of_gas_369": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_370" - -"$have_gas_370": ; preds = %"$out_of_gas_369", %entry - %"$consume_371" = sub i64 %"$gasrem_367", 2 - store i64 %"$consume_371", i64* @_gasrem, align 8 - %"$l_tag_373" = getelementptr inbounds %TName_List_Int64, %TName_List_Int64* %1, i32 0, i32 0 - %"$l_tag_374" = load i8, i8* %"$l_tag_373", align 1 - switch i8 %"$l_tag_374", label %"$empty_default_375" [ - i8 0, label %"$Cons_376" - i8 1, label %"$Nil_419" - ], !dbg !64 - -"$Cons_376": ; preds = %"$have_gas_370" - %"$l_377" = bitcast %TName_List_Int64* %1 to %CName_Cons_Int64* - %"$h_gep_378" = getelementptr inbounds %CName_Cons_Int64, %CName_Cons_Int64* %"$l_377", i32 0, i32 1 - %"$h_load_379" = load %Int64, %Int64* %"$h_gep_378", align 8 + call void @llvm.dbg.declare(metadata %Uint32* %"$retval_37", metadata !119, metadata !DIExpression()), !dbg !120 + %"$gasrem_370" = load i64, i64* @_gasrem, align 8 + %"$gascmp_371" = icmp ugt i64 2, %"$gasrem_370" + br i1 %"$gascmp_371", label %"$out_of_gas_372", label %"$have_gas_373" + +"$out_of_gas_372": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_373" + +"$have_gas_373": ; preds = %"$out_of_gas_372", %entry + %"$consume_374" = sub i64 %"$gasrem_370", 2 + store i64 %"$consume_374", i64* @_gasrem, align 8 + %"$l_tag_376" = getelementptr inbounds %TName_List_Int64, %TName_List_Int64* %1, i32 0, i32 0 + %"$l_tag_377" = load i8, i8* %"$l_tag_376", align 1 + switch i8 %"$l_tag_377", label %"$empty_default_378" [ + i8 0, label %"$Cons_379" + i8 1, label %"$Nil_422" + ], !dbg !120 + +"$Cons_379": ; preds = %"$have_gas_373" + %"$l_380" = bitcast %TName_List_Int64* %1 to %CName_Cons_Int64* + %"$h_gep_381" = getelementptr inbounds %CName_Cons_Int64, %CName_Cons_Int64* %"$l_380", i32 0, i32 1 + %"$h_load_382" = load %Int64, %Int64* %"$h_gep_381", align 8 %h = alloca %Int64, align 8 - store %Int64 %"$h_load_379", %Int64* %h, align 8 - %"$t_gep_380" = getelementptr inbounds %CName_Cons_Int64, %CName_Cons_Int64* %"$l_377", i32 0, i32 2 - %"$t_load_381" = load %TName_List_Int64*, %TName_List_Int64** %"$t_gep_380", align 8 + store %Int64 %"$h_load_382", %Int64* %h, align 8 + %"$t_gep_383" = getelementptr inbounds %CName_Cons_Int64, %CName_Cons_Int64* %"$l_380", i32 0, i32 2 + %"$t_load_384" = load %TName_List_Int64*, %TName_List_Int64** %"$t_gep_383", align 8 %t = alloca %TName_List_Int64*, align 8 - store %TName_List_Int64* %"$t_load_381", %TName_List_Int64** %t, align 8 - %"$gasrem_382" = load i64, i64* @_gasrem, align 8 - %"$gascmp_383" = icmp ugt i64 1, %"$gasrem_382" - br i1 %"$gascmp_383", label %"$out_of_gas_384", label %"$have_gas_385" + store %TName_List_Int64* %"$t_load_384", %TName_List_Int64** %t, 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_384": ; preds = %"$Cons_376" +"$out_of_gas_387": ; preds = %"$Cons_379" call void @_out_of_gas() - br label %"$have_gas_385" + br label %"$have_gas_388" -"$have_gas_385": ; preds = %"$out_of_gas_384", %"$Cons_376" - %"$consume_386" = sub i64 %"$gasrem_382", 1 - store i64 %"$consume_386", i64* @_gasrem, align 8 +"$have_gas_388": ; preds = %"$out_of_gas_387", %"$Cons_379" + %"$consume_389" = sub i64 %"$gasrem_385", 1 + store i64 %"$consume_389", i64* @_gasrem, align 8 %res = alloca %Uint32, align 8 - %"$gasrem_387" = load i64, i64* @_gasrem, align 8 - %"$gascmp_388" = icmp ugt i64 1, %"$gasrem_387" - br i1 %"$gascmp_388", label %"$out_of_gas_389", label %"$have_gas_390" + call void @llvm.dbg.declare(metadata %Uint32* %res, metadata !121, metadata !DIExpression()), !dbg !124 + %"$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_389": ; preds = %"$have_gas_385" +"$out_of_gas_392": ; preds = %"$have_gas_388" call void @_out_of_gas() - br label %"$have_gas_390" + br label %"$have_gas_393" -"$have_gas_390": ; preds = %"$out_of_gas_389", %"$have_gas_385" - %"$consume_391" = sub i64 %"$gasrem_387", 1 - store i64 %"$consume_391", 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 %"$f_6" = alloca { %Uint32 (i8*, %Int64)*, i8* }, align 8 - %"$f_392" = load { { %Uint32 (i8*, %Int64)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %Int64)*, i8* } (i8*, %Uint32)*, i8* }* %f, align 8 - %"$f_fptr_393" = extractvalue { { %Uint32 (i8*, %Int64)*, i8* } (i8*, %Uint32)*, i8* } %"$f_392", 0 - %"$f_envptr_394" = extractvalue { { %Uint32 (i8*, %Int64)*, i8* } (i8*, %Uint32)*, i8* } %"$f_392", 1 - %"$z_395" = load %Uint32, %Uint32* %z, align 4 - %"$f_call_396" = call { %Uint32 (i8*, %Int64)*, i8* } %"$f_fptr_393"(i8* %"$f_envptr_394", %Uint32 %"$z_395"), !dbg !65 - store { %Uint32 (i8*, %Int64)*, i8* } %"$f_call_396", { %Uint32 (i8*, %Int64)*, i8* }* %"$f_6", align 8, !dbg !65 + %"$f_395" = load { { %Uint32 (i8*, %Int64)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %Int64)*, i8* } (i8*, %Uint32)*, i8* }* %f, align 8 + %"$f_fptr_396" = extractvalue { { %Uint32 (i8*, %Int64)*, i8* } (i8*, %Uint32)*, i8* } %"$f_395", 0 + %"$f_envptr_397" = extractvalue { { %Uint32 (i8*, %Int64)*, i8* } (i8*, %Uint32)*, i8* } %"$f_395", 1 + %"$z_398" = load %Uint32, %Uint32* %z, align 4 + %"$f_call_399" = call { %Uint32 (i8*, %Int64)*, i8* } %"$f_fptr_396"(i8* %"$f_envptr_397", %Uint32 %"$z_398"), !dbg !125 + store { %Uint32 (i8*, %Int64)*, i8* } %"$f_call_399", { %Uint32 (i8*, %Int64)*, i8* }* %"$f_6", align 8, !dbg !125 %"$f_7" = alloca %Uint32, align 8 - %"$$f_6_397" = load { %Uint32 (i8*, %Int64)*, i8* }, { %Uint32 (i8*, %Int64)*, i8* }* %"$f_6", align 8 - %"$$f_6_fptr_398" = extractvalue { %Uint32 (i8*, %Int64)*, i8* } %"$$f_6_397", 0 - %"$$f_6_envptr_399" = extractvalue { %Uint32 (i8*, %Int64)*, i8* } %"$$f_6_397", 1 - %"$h_400" = load %Int64, %Int64* %h, align 8 - %"$$f_6_call_401" = call %Uint32 %"$$f_6_fptr_398"(i8* %"$$f_6_envptr_399", %Int64 %"$h_400"), !dbg !65 - store %Uint32 %"$$f_6_call_401", %Uint32* %"$f_7", align 4, !dbg !65 - %"$$f_7_402" = load %Uint32, %Uint32* %"$f_7", align 4 - store %Uint32 %"$$f_7_402", %Uint32* %res, align 4, !dbg !65 - %"$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_390" - call void @_out_of_gas() - br label %"$have_gas_406" - -"$have_gas_406": ; preds = %"$out_of_gas_405", %"$have_gas_390" - %"$consume_407" = sub i64 %"$gasrem_403", 1 - store i64 %"$consume_407", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %Uint32* %"$f_7", metadata !126, metadata !DIExpression()), !dbg !125 + %"$$f_6_400" = load { %Uint32 (i8*, %Int64)*, i8* }, { %Uint32 (i8*, %Int64)*, i8* }* %"$f_6", align 8 + %"$$f_6_fptr_401" = extractvalue { %Uint32 (i8*, %Int64)*, i8* } %"$$f_6_400", 0 + %"$$f_6_envptr_402" = extractvalue { %Uint32 (i8*, %Int64)*, i8* } %"$$f_6_400", 1 + %"$h_403" = load %Int64, %Int64* %h, align 8 + %"$$f_6_call_404" = call %Uint32 %"$$f_6_fptr_401"(i8* %"$$f_6_envptr_402", %Int64 %"$h_403"), !dbg !125 + store %Uint32 %"$$f_6_call_404", %Uint32* %"$f_7", align 4, !dbg !125 + %"$$f_7_405" = load %Uint32, %Uint32* %"$f_7", align 4 + store %Uint32 %"$$f_7_405", %Uint32* %res, align 4, !dbg !125 + %"$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_393" + call void @_out_of_gas() + br label %"$have_gas_409" + +"$have_gas_409": ; preds = %"$out_of_gas_408", %"$have_gas_393" + %"$consume_410" = sub i64 %"$gasrem_406", 1 + store i64 %"$consume_410", i64* @_gasrem, align 8 %"$g_8" = alloca { %Uint32 (i8*, %TName_List_Int64*)*, i8* }, align 8 - %"$g_408" = load { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* }* %g, align 8 - %"$g_fptr_409" = extractvalue { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* } %"$g_408", 0 - %"$g_envptr_410" = extractvalue { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* } %"$g_408", 1 - %"$res_411" = load %Uint32, %Uint32* %res, align 4 - %"$g_call_412" = call { %Uint32 (i8*, %TName_List_Int64*)*, i8* } %"$g_fptr_409"(i8* %"$g_envptr_410", %Uint32 %"$res_411"), !dbg !68 - store { %Uint32 (i8*, %TName_List_Int64*)*, i8* } %"$g_call_412", { %Uint32 (i8*, %TName_List_Int64*)*, i8* }* %"$g_8", align 8, !dbg !68 + %"$g_411" = load { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* }* %g, align 8 + %"$g_fptr_412" = extractvalue { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* } %"$g_411", 0 + %"$g_envptr_413" = extractvalue { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* } %"$g_411", 1 + %"$res_414" = load %Uint32, %Uint32* %res, align 4 + %"$g_call_415" = call { %Uint32 (i8*, %TName_List_Int64*)*, i8* } %"$g_fptr_412"(i8* %"$g_envptr_413", %Uint32 %"$res_414"), !dbg !127 + store { %Uint32 (i8*, %TName_List_Int64*)*, i8* } %"$g_call_415", { %Uint32 (i8*, %TName_List_Int64*)*, i8* }* %"$g_8", align 8, !dbg !127 %"$g_9" = alloca %Uint32, align 8 - %"$$g_8_413" = load { %Uint32 (i8*, %TName_List_Int64*)*, i8* }, { %Uint32 (i8*, %TName_List_Int64*)*, i8* }* %"$g_8", align 8 - %"$$g_8_fptr_414" = extractvalue { %Uint32 (i8*, %TName_List_Int64*)*, i8* } %"$$g_8_413", 0 - %"$$g_8_envptr_415" = extractvalue { %Uint32 (i8*, %TName_List_Int64*)*, i8* } %"$$g_8_413", 1 - %"$t_416" = load %TName_List_Int64*, %TName_List_Int64** %t, align 8 - %"$$g_8_call_417" = call %Uint32 %"$$g_8_fptr_414"(i8* %"$$g_8_envptr_415", %TName_List_Int64* %"$t_416"), !dbg !68 - store %Uint32 %"$$g_8_call_417", %Uint32* %"$g_9", align 4, !dbg !68 - %"$$g_9_418" = load %Uint32, %Uint32* %"$g_9", align 4 - store %Uint32 %"$$g_9_418", %Uint32* %"$retval_37", align 4, !dbg !68 - br label %"$matchsucc_372" - -"$Nil_419": ; preds = %"$have_gas_370" - %"$l_420" = bitcast %TName_List_Int64* %1 to %CName_Nil_Int64* - %"$gasrem_421" = load i64, i64* @_gasrem, align 8 - %"$gascmp_422" = icmp ugt i64 1, %"$gasrem_421" - br i1 %"$gascmp_422", label %"$out_of_gas_423", label %"$have_gas_424" - -"$out_of_gas_423": ; preds = %"$Nil_419" - call void @_out_of_gas() - br label %"$have_gas_424" - -"$have_gas_424": ; preds = %"$out_of_gas_423", %"$Nil_419" - %"$consume_425" = sub i64 %"$gasrem_421", 1 - store i64 %"$consume_425", i64* @_gasrem, align 8 - %"$z_426" = load %Uint32, %Uint32* %z, align 4 - store %Uint32 %"$z_426", %Uint32* %"$retval_37", align 4, !dbg !69 - br label %"$matchsucc_372" - -"$empty_default_375": ; preds = %"$have_gas_370" - br label %"$matchsucc_372" - -"$matchsucc_372": ; preds = %"$have_gas_424", %"$have_gas_406", %"$empty_default_375" - %"$$retval_37_427" = load %Uint32, %Uint32* %"$retval_37", align 4 - ret %Uint32 %"$$retval_37_427" + call void @llvm.dbg.declare(metadata %Uint32* %"$g_9", metadata !128, metadata !DIExpression()), !dbg !127 + %"$$g_8_416" = load { %Uint32 (i8*, %TName_List_Int64*)*, i8* }, { %Uint32 (i8*, %TName_List_Int64*)*, i8* }* %"$g_8", align 8 + %"$$g_8_fptr_417" = extractvalue { %Uint32 (i8*, %TName_List_Int64*)*, i8* } %"$$g_8_416", 0 + %"$$g_8_envptr_418" = extractvalue { %Uint32 (i8*, %TName_List_Int64*)*, i8* } %"$$g_8_416", 1 + %"$t_419" = load %TName_List_Int64*, %TName_List_Int64** %t, align 8 + %"$$g_8_call_420" = call %Uint32 %"$$g_8_fptr_417"(i8* %"$$g_8_envptr_418", %TName_List_Int64* %"$t_419"), !dbg !127 + store %Uint32 %"$$g_8_call_420", %Uint32* %"$g_9", align 4, !dbg !127 + %"$$g_9_421" = load %Uint32, %Uint32* %"$g_9", align 4 + store %Uint32 %"$$g_9_421", %Uint32* %"$retval_37", align 4, !dbg !127 + br label %"$matchsucc_375" + +"$Nil_422": ; preds = %"$have_gas_373" + %"$l_423" = bitcast %TName_List_Int64* %1 to %CName_Nil_Int64* + %"$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 = %"$Nil_422" + call void @_out_of_gas() + br label %"$have_gas_427" + +"$have_gas_427": ; preds = %"$out_of_gas_426", %"$Nil_422" + %"$consume_428" = sub i64 %"$gasrem_424", 1 + store i64 %"$consume_428", i64* @_gasrem, align 8 + %"$z_429" = load %Uint32, %Uint32* %z, align 4 + store %Uint32 %"$z_429", %Uint32* %"$retval_37", align 4, !dbg !129 + br label %"$matchsucc_375" + +"$empty_default_378": ; preds = %"$have_gas_373" + br label %"$matchsucc_375" + +"$matchsucc_375": ; preds = %"$have_gas_427", %"$have_gas_409", %"$empty_default_378" + %"$$retval_37_430" = load %Uint32, %Uint32* %"$retval_37", align 4 + ret %Uint32 %"$$retval_37_430" } -define internal { %Uint32 (i8*, %TName_List_Int64*)*, i8* } @"$fundef_34"(%"$$fundef_34_env_167"* %0, %Uint32 %1) !dbg !71 { +define internal { %Uint32 (i8*, %TName_List_Int64*)*, i8* } @"$fundef_34"(%"$$fundef_34_env_167"* %0, %Uint32 %1) !dbg !131 { entry: - %"$$fundef_34_env_f_337" = getelementptr inbounds %"$$fundef_34_env_167", %"$$fundef_34_env_167"* %0, i32 0, i32 0 - %"$f_envload_338" = load { { %Uint32 (i8*, %Int64)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %Int64)*, i8* } (i8*, %Uint32)*, i8* }* %"$$fundef_34_env_f_337", align 8 + %"$z_363" = alloca %Uint32, align 8 + store %Uint32 %1, %Uint32* %"$z_363", align 4 + call void @llvm.dbg.declare(metadata %Uint32* %"$z_363", metadata !132, metadata !DIExpression()), !dbg !133 + %"$$fundef_34_env_f_339" = getelementptr inbounds %"$$fundef_34_env_167", %"$$fundef_34_env_167"* %0, i32 0, i32 0 + %"$f_envload_340" = load { { %Uint32 (i8*, %Int64)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %Int64)*, i8* } (i8*, %Uint32)*, i8* }* %"$$fundef_34_env_f_339", align 8 %f = alloca { { %Uint32 (i8*, %Int64)*, i8* } (i8*, %Uint32)*, i8* }, align 8 - store { { %Uint32 (i8*, %Int64)*, i8* } (i8*, %Uint32)*, i8* } %"$f_envload_338", { { %Uint32 (i8*, %Int64)*, i8* } (i8*, %Uint32)*, i8* }* %f, align 8 - %"$$fundef_34_env_g_339" = getelementptr inbounds %"$$fundef_34_env_167", %"$$fundef_34_env_167"* %0, i32 0, i32 1 - %"$g_envload_340" = load { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* }* %"$$fundef_34_env_g_339", align 8 + store { { %Uint32 (i8*, %Int64)*, i8* } (i8*, %Uint32)*, i8* } %"$f_envload_340", { { %Uint32 (i8*, %Int64)*, i8* } (i8*, %Uint32)*, i8* }* %f, align 8 + %"$$fundef_34_env_g_341" = getelementptr inbounds %"$$fundef_34_env_167", %"$$fundef_34_env_167"* %0, i32 0, i32 1 + %"$g_envload_342" = load { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* }* %"$$fundef_34_env_g_341", align 8 %g = alloca { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* }, align 8 - store { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* } %"$g_envload_340", { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* }* %g, align 8 + store { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* } %"$g_envload_342", { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* }* %g, align 8 %"$retval_35" = alloca { %Uint32 (i8*, %TName_List_Int64*)*, i8* }, align 8 - %"$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 = %entry - call void @_out_of_gas() - br label %"$have_gas_344" - -"$have_gas_344": ; preds = %"$out_of_gas_343", %entry - %"$consume_345" = sub i64 %"$gasrem_341", 1 - store i64 %"$consume_345", i64* @_gasrem, align 8 - %"$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_344" - call void @_out_of_gas() - br label %"$have_gas_349" - -"$have_gas_349": ; preds = %"$out_of_gas_348", %"$have_gas_344" - %"$consume_350" = sub i64 %"$gasrem_346", 1 - store i64 %"$consume_350", i64* @_gasrem, align 8 - %"$$fundef_36_envp_351_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_36_envp_351_salloc" = call i8* @_salloc(i8* %"$$fundef_36_envp_351_load", i64 40) - %"$$fundef_36_envp_351" = bitcast i8* %"$$fundef_36_envp_351_salloc" to %"$$fundef_36_env_166"* - %"$$fundef_36_env_voidp_353" = bitcast %"$$fundef_36_env_166"* %"$$fundef_36_envp_351" to i8* - %"$$fundef_36_cloval_354" = insertvalue { %Uint32 (i8*, %TName_List_Int64*)*, i8* } { %Uint32 (i8*, %TName_List_Int64*)* bitcast (%Uint32 (%"$$fundef_36_env_166"*, %TName_List_Int64*)* @"$fundef_36" to %Uint32 (i8*, %TName_List_Int64*)*), i8* undef }, i8* %"$$fundef_36_env_voidp_353", 1 - %"$$fundef_36_env_f_355" = getelementptr inbounds %"$$fundef_36_env_166", %"$$fundef_36_env_166"* %"$$fundef_36_envp_351", i32 0, i32 0 - %"$f_356" = load { { %Uint32 (i8*, %Int64)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %Int64)*, i8* } (i8*, %Uint32)*, i8* }* %f, align 8 - store { { %Uint32 (i8*, %Int64)*, i8* } (i8*, %Uint32)*, i8* } %"$f_356", { { %Uint32 (i8*, %Int64)*, i8* } (i8*, %Uint32)*, i8* }* %"$$fundef_36_env_f_355", align 8 - %"$$fundef_36_env_g_357" = getelementptr inbounds %"$$fundef_36_env_166", %"$$fundef_36_env_166"* %"$$fundef_36_envp_351", i32 0, i32 1 - %"$g_358" = load { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* }* %g, align 8 - store { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* } %"$g_358", { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* }* %"$$fundef_36_env_g_357", align 8 - %"$$fundef_36_env_z_359" = getelementptr inbounds %"$$fundef_36_env_166", %"$$fundef_36_env_166"* %"$$fundef_36_envp_351", i32 0, i32 2 - store %Uint32 %1, %Uint32* %"$$fundef_36_env_z_359", align 4 - store { %Uint32 (i8*, %TName_List_Int64*)*, i8* } %"$$fundef_36_cloval_354", { %Uint32 (i8*, %TName_List_Int64*)*, i8* }* %"$retval_35", align 8, !dbg !72 - %"$$retval_35_360" = load { %Uint32 (i8*, %TName_List_Int64*)*, i8* }, { %Uint32 (i8*, %TName_List_Int64*)*, i8* }* %"$retval_35", align 8 - ret { %Uint32 (i8*, %TName_List_Int64*)*, i8* } %"$$retval_35_360" + %"$gasrem_343" = load i64, i64* @_gasrem, align 8 + %"$gascmp_344" = icmp ugt i64 1, %"$gasrem_343" + br i1 %"$gascmp_344", label %"$out_of_gas_345", label %"$have_gas_346" + +"$out_of_gas_345": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_346" + +"$have_gas_346": ; preds = %"$out_of_gas_345", %entry + %"$consume_347" = sub i64 %"$gasrem_343", 1 + store i64 %"$consume_347", i64* @_gasrem, 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" + +"$out_of_gas_350": ; preds = %"$have_gas_346" + call void @_out_of_gas() + br label %"$have_gas_351" + +"$have_gas_351": ; preds = %"$out_of_gas_350", %"$have_gas_346" + %"$consume_352" = sub i64 %"$gasrem_348", 1 + store i64 %"$consume_352", i64* @_gasrem, align 8 + %"$$fundef_36_envp_353_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_36_envp_353_salloc" = call i8* @_salloc(i8* %"$$fundef_36_envp_353_load", i64 40) + %"$$fundef_36_envp_353" = bitcast i8* %"$$fundef_36_envp_353_salloc" to %"$$fundef_36_env_166"* + %"$$fundef_36_env_voidp_355" = bitcast %"$$fundef_36_env_166"* %"$$fundef_36_envp_353" to i8* + %"$$fundef_36_cloval_356" = insertvalue { %Uint32 (i8*, %TName_List_Int64*)*, i8* } { %Uint32 (i8*, %TName_List_Int64*)* bitcast (%Uint32 (%"$$fundef_36_env_166"*, %TName_List_Int64*)* @"$fundef_36" to %Uint32 (i8*, %TName_List_Int64*)*), i8* undef }, i8* %"$$fundef_36_env_voidp_355", 1 + %"$$fundef_36_env_f_357" = getelementptr inbounds %"$$fundef_36_env_166", %"$$fundef_36_env_166"* %"$$fundef_36_envp_353", i32 0, i32 0 + %"$f_358" = load { { %Uint32 (i8*, %Int64)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %Int64)*, i8* } (i8*, %Uint32)*, i8* }* %f, align 8 + store { { %Uint32 (i8*, %Int64)*, i8* } (i8*, %Uint32)*, i8* } %"$f_358", { { %Uint32 (i8*, %Int64)*, i8* } (i8*, %Uint32)*, i8* }* %"$$fundef_36_env_f_357", align 8 + %"$$fundef_36_env_g_359" = getelementptr inbounds %"$$fundef_36_env_166", %"$$fundef_36_env_166"* %"$$fundef_36_envp_353", i32 0, i32 1 + %"$g_360" = load { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* }* %g, align 8 + store { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* } %"$g_360", { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* }* %"$$fundef_36_env_g_359", align 8 + %"$$fundef_36_env_z_361" = getelementptr inbounds %"$$fundef_36_env_166", %"$$fundef_36_env_166"* %"$$fundef_36_envp_353", i32 0, i32 2 + store %Uint32 %1, %Uint32* %"$$fundef_36_env_z_361", align 4 + store { %Uint32 (i8*, %TName_List_Int64*)*, i8* } %"$$fundef_36_cloval_356", { %Uint32 (i8*, %TName_List_Int64*)*, i8* }* %"$retval_35", align 8, !dbg !134 + %"$$retval_35_362" = load { %Uint32 (i8*, %TName_List_Int64*)*, i8* }, { %Uint32 (i8*, %TName_List_Int64*)*, i8* }* %"$retval_35", align 8 + ret { %Uint32 (i8*, %TName_List_Int64*)*, i8* } %"$$retval_35_362" } -define internal { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* } @"$fundef_32"(%"$$fundef_32_env_168"* %0, { { %Uint32 (i8*, %Int64)*, i8* } (i8*, %Uint32)*, i8* } %1) !dbg !73 { +define internal { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* } @"$fundef_32"(%"$$fundef_32_env_168"* %0, { { %Uint32 (i8*, %Int64)*, i8* } (i8*, %Uint32)*, i8* } %1) !dbg !135 { entry: %"$retval_33" = alloca { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (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_34_envp_328_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_34_envp_328_salloc" = call i8* @_salloc(i8* %"$$fundef_34_envp_328_load", i64 32) - %"$$fundef_34_envp_328" = bitcast i8* %"$$fundef_34_envp_328_salloc" to %"$$fundef_34_env_167"* - %"$$fundef_34_env_voidp_330" = bitcast %"$$fundef_34_env_167"* %"$$fundef_34_envp_328" to i8* - %"$$fundef_34_cloval_331" = insertvalue { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* } { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)* bitcast ({ %Uint32 (i8*, %TName_List_Int64*)*, i8* } (%"$$fundef_34_env_167"*, %Uint32)* @"$fundef_34" to { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*), i8* undef }, i8* %"$$fundef_34_env_voidp_330", 1 + %"$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_34_envp_330_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_34_envp_330_salloc" = call i8* @_salloc(i8* %"$$fundef_34_envp_330_load", i64 32) + %"$$fundef_34_envp_330" = bitcast i8* %"$$fundef_34_envp_330_salloc" to %"$$fundef_34_env_167"* + %"$$fundef_34_env_voidp_332" = bitcast %"$$fundef_34_env_167"* %"$$fundef_34_envp_330" to i8* + %"$$fundef_34_cloval_333" = insertvalue { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* } { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)* bitcast ({ %Uint32 (i8*, %TName_List_Int64*)*, i8* } (%"$$fundef_34_env_167"*, %Uint32)* @"$fundef_34" to { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*), i8* undef }, i8* %"$$fundef_34_env_voidp_332", 1 %g = alloca { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* }, align 8 - store { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* } %"$$fundef_34_cloval_331", { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* }* %g, align 8, !dbg !74 - %"$$fundef_34_env_f_332" = getelementptr inbounds %"$$fundef_34_env_167", %"$$fundef_34_env_167"* %"$$fundef_34_envp_328", i32 0, i32 0 - store { { %Uint32 (i8*, %Int64)*, i8* } (i8*, %Uint32)*, i8* } %1, { { %Uint32 (i8*, %Int64)*, i8* } (i8*, %Uint32)*, i8* }* %"$$fundef_34_env_f_332", align 8 - %"$$fundef_34_env_g_333" = getelementptr inbounds %"$$fundef_34_env_167", %"$$fundef_34_env_167"* %"$$fundef_34_envp_328", i32 0, i32 1 - %"$g_334" = load { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* }* %g, align 8 - store { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* } %"$g_334", { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* }* %"$$fundef_34_env_g_333", align 8 - %"$g_335" = load { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* }* %g, align 8 - store { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* } %"$g_335", { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* }* %"$retval_33", align 8, !dbg !74 - %"$$retval_33_336" = load { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* }* %"$retval_33", align 8 - ret { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* } %"$$retval_33_336" + store { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* } %"$$fundef_34_cloval_333", { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* }* %g, align 8, !dbg !136 + %"$$fundef_34_env_f_334" = getelementptr inbounds %"$$fundef_34_env_167", %"$$fundef_34_env_167"* %"$$fundef_34_envp_330", i32 0, i32 0 + store { { %Uint32 (i8*, %Int64)*, i8* } (i8*, %Uint32)*, i8* } %1, { { %Uint32 (i8*, %Int64)*, i8* } (i8*, %Uint32)*, i8* }* %"$$fundef_34_env_f_334", align 8 + %"$$fundef_34_env_g_335" = getelementptr inbounds %"$$fundef_34_env_167", %"$$fundef_34_env_167"* %"$$fundef_34_envp_330", i32 0, i32 1 + %"$g_336" = load { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* }* %g, align 8 + store { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* } %"$g_336", { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* }* %"$$fundef_34_env_g_335", align 8 + %"$g_337" = load { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* }* %g, align 8 + store { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* } %"$g_337", { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* }* %"$retval_33", align 8, !dbg !136 + %"$$retval_33_338" = load { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* }* %"$retval_33", align 8 + ret { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* } %"$$retval_33_338" } -define internal { { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %Int64)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } @"$fundef_30"(%"$$fundef_30_env_169"* %0) !dbg !75 { +define internal { { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %Int64)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } @"$fundef_30"(%"$$fundef_30_env_169"* %0) !dbg !137 { entry: %"$retval_31" = alloca { { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %Int64)*, i8* } (i8*, %Uint32)*, i8* })*, i8* }, align 8 - %"$gasrem_314" = load i64, i64* @_gasrem, align 8 - %"$gascmp_315" = icmp ugt i64 1, %"$gasrem_314" - br i1 %"$gascmp_315", label %"$out_of_gas_316", label %"$have_gas_317" + %"$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_316": ; preds = %entry +"$out_of_gas_318": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_317" + br label %"$have_gas_319" -"$have_gas_317": ; preds = %"$out_of_gas_316", %entry - %"$consume_318" = sub i64 %"$gasrem_314", 1 - store i64 %"$consume_318", i64* @_gasrem, align 8 - store { { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %Int64)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } { { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %Int64)*, i8* } (i8*, %Uint32)*, i8* })* bitcast ({ { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* } (%"$$fundef_32_env_168"*, { { %Uint32 (i8*, %Int64)*, i8* } (i8*, %Uint32)*, i8* })* @"$fundef_32" to { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %Int64)*, i8* } (i8*, %Uint32)*, i8* })*), i8* null }, { { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %Int64)*, i8* } (i8*, %Uint32)*, i8* })*, i8* }* %"$retval_31", align 8, !dbg !76 - %"$$retval_31_322" = load { { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %Int64)*, i8* } (i8*, %Uint32)*, i8* })*, i8* }, { { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %Int64)*, i8* } (i8*, %Uint32)*, i8* })*, i8* }* %"$retval_31", align 8 - ret { { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %Int64)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } %"$$retval_31_322" +"$have_gas_319": ; preds = %"$out_of_gas_318", %entry + %"$consume_320" = sub i64 %"$gasrem_316", 1 + store i64 %"$consume_320", i64* @_gasrem, align 8 + store { { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %Int64)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } { { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %Int64)*, i8* } (i8*, %Uint32)*, i8* })* bitcast ({ { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* } (%"$$fundef_32_env_168"*, { { %Uint32 (i8*, %Int64)*, i8* } (i8*, %Uint32)*, i8* })* @"$fundef_32" to { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %Int64)*, i8* } (i8*, %Uint32)*, i8* })*), i8* null }, { { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %Int64)*, i8* } (i8*, %Uint32)*, i8* })*, i8* }* %"$retval_31", align 8, !dbg !138 + %"$$retval_31_324" = load { { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %Int64)*, i8* } (i8*, %Uint32)*, i8* })*, i8* }, { { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %Int64)*, i8* } (i8*, %Uint32)*, i8* })*, i8* }* %"$retval_31", align 8 + ret { { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %Int64)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } %"$$retval_31_324" } -define internal { i8*, i8* }* @"$fundef_28"(%"$$fundef_28_env_170"* %0) !dbg !77 { +define internal { i8*, i8* }* @"$fundef_28"(%"$$fundef_28_env_170"* %0) !dbg !139 { entry: %"$retval_29" = alloca { i8*, 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 - %"$dyndisp_table_310_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$dyndisp_table_310_salloc_salloc" = call i8* @_salloc(i8* %"$dyndisp_table_310_salloc_load", i64 48) - %"$dyndisp_table_310_salloc" = bitcast i8* %"$dyndisp_table_310_salloc_salloc" to [3 x { i8*, i8* }]* - %"$dyndisp_table_310" = bitcast [3 x { i8*, i8* }]* %"$dyndisp_table_310_salloc" to { i8*, i8* }* - %"$dyndisp_gep_311" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_310", i32 1 - %"$dyndisp_pcast_312" = bitcast { i8*, i8* }* %"$dyndisp_gep_311" to { { { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %Int64)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* }* - store { { { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %Int64)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* } { { { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %Int64)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } (i8*)* bitcast ({ { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %Int64)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } (%"$$fundef_30_env_169"*)* @"$fundef_30" to { { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %Int64)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } (i8*)*), i8* null }, { { { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %Int64)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* }* %"$dyndisp_pcast_312", align 8 - store { i8*, i8* }* %"$dyndisp_table_310", { i8*, i8* }** %"$retval_29", align 8, !dbg !78 - %"$$retval_29_313" = load { i8*, i8* }*, { i8*, i8* }** %"$retval_29", align 8 - ret { i8*, i8* }* %"$$retval_29_313" + %"$gasrem_304" = load i64, i64* @_gasrem, align 8 + %"$gascmp_305" = icmp ugt i64 1, %"$gasrem_304" + br i1 %"$gascmp_305", label %"$out_of_gas_306", label %"$have_gas_307" + +"$out_of_gas_306": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_307" + +"$have_gas_307": ; preds = %"$out_of_gas_306", %entry + %"$consume_308" = sub i64 %"$gasrem_304", 1 + store i64 %"$consume_308", i64* @_gasrem, align 8 + %"$dyndisp_table_312_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$dyndisp_table_312_salloc_salloc" = call i8* @_salloc(i8* %"$dyndisp_table_312_salloc_load", i64 48) + %"$dyndisp_table_312_salloc" = bitcast i8* %"$dyndisp_table_312_salloc_salloc" to [3 x { i8*, i8* }]* + %"$dyndisp_table_312" = bitcast [3 x { i8*, i8* }]* %"$dyndisp_table_312_salloc" to { i8*, i8* }* + %"$dyndisp_gep_313" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_312", i32 1 + %"$dyndisp_pcast_314" = bitcast { i8*, i8* }* %"$dyndisp_gep_313" to { { { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %Int64)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* }* + store { { { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %Int64)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* } { { { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %Int64)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } (i8*)* bitcast ({ { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %Int64)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } (%"$$fundef_30_env_169"*)* @"$fundef_30" to { { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %Int64)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } (i8*)*), i8* null }, { { { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %Int64)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* }* %"$dyndisp_pcast_314", align 8 + store { i8*, i8* }* %"$dyndisp_table_312", { i8*, i8* }** %"$retval_29", align 8, !dbg !140 + %"$$retval_29_315" = load { i8*, i8* }*, { i8*, i8* }** %"$retval_29", align 8 + ret { i8*, i8* }* %"$$retval_29_315" } -define internal %Uint32 @"$fundef_26"(%"$$fundef_26_env_171"* %0, %TName_List_Int32* %1) !dbg !79 { +define internal %Uint32 @"$fundef_26"(%"$$fundef_26_env_171"* %0, %TName_List_Int32* %1) !dbg !141 { entry: - %"$$fundef_26_env_f_235" = getelementptr inbounds %"$$fundef_26_env_171", %"$$fundef_26_env_171"* %0, i32 0, i32 0 - %"$f_envload_236" = load { { %Uint32 (i8*, %Int32)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %Int32)*, i8* } (i8*, %Uint32)*, i8* }* %"$$fundef_26_env_f_235", align 8 + %"$l_303" = alloca %TName_List_Int32*, align 8 + store %TName_List_Int32* %1, %TName_List_Int32** %"$l_303", align 8 + call void @llvm.dbg.declare(metadata %TName_List_Int32** %"$l_303", metadata !142, metadata !DIExpression()), !dbg !143 + %"$$fundef_26_env_f_236" = getelementptr inbounds %"$$fundef_26_env_171", %"$$fundef_26_env_171"* %0, i32 0, i32 0 + %"$f_envload_237" = load { { %Uint32 (i8*, %Int32)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %Int32)*, i8* } (i8*, %Uint32)*, i8* }* %"$$fundef_26_env_f_236", align 8 %f = alloca { { %Uint32 (i8*, %Int32)*, i8* } (i8*, %Uint32)*, i8* }, align 8 - store { { %Uint32 (i8*, %Int32)*, i8* } (i8*, %Uint32)*, i8* } %"$f_envload_236", { { %Uint32 (i8*, %Int32)*, i8* } (i8*, %Uint32)*, i8* }* %f, align 8 - %"$$fundef_26_env_g_237" = getelementptr inbounds %"$$fundef_26_env_171", %"$$fundef_26_env_171"* %0, i32 0, i32 1 - %"$g_envload_238" = load { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*, %Uint32)*, i8* }* %"$$fundef_26_env_g_237", align 8 + store { { %Uint32 (i8*, %Int32)*, i8* } (i8*, %Uint32)*, i8* } %"$f_envload_237", { { %Uint32 (i8*, %Int32)*, i8* } (i8*, %Uint32)*, i8* }* %f, align 8 + %"$$fundef_26_env_g_238" = getelementptr inbounds %"$$fundef_26_env_171", %"$$fundef_26_env_171"* %0, i32 0, i32 1 + %"$g_envload_239" = load { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*, %Uint32)*, i8* }* %"$$fundef_26_env_g_238", align 8 %g = alloca { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*, %Uint32)*, i8* }, align 8 - store { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*, %Uint32)*, i8* } %"$g_envload_238", { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*, %Uint32)*, i8* }* %g, align 8 - %"$$fundef_26_env_z_239" = getelementptr inbounds %"$$fundef_26_env_171", %"$$fundef_26_env_171"* %0, i32 0, i32 2 - %"$z_envload_240" = load %Uint32, %Uint32* %"$$fundef_26_env_z_239", align 4 + store { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*, %Uint32)*, i8* } %"$g_envload_239", { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*, %Uint32)*, i8* }* %g, align 8 + %"$$fundef_26_env_z_240" = getelementptr inbounds %"$$fundef_26_env_171", %"$$fundef_26_env_171"* %0, i32 0, i32 2 + %"$z_envload_241" = load %Uint32, %Uint32* %"$$fundef_26_env_z_240", align 4 %z = alloca %Uint32, align 8 - store %Uint32 %"$z_envload_240", %Uint32* %z, align 4 + store %Uint32 %"$z_envload_241", %Uint32* %z, align 4 %"$retval_27" = alloca %Uint32, align 8 - %"$gasrem_241" = load i64, i64* @_gasrem, align 8 - %"$gascmp_242" = icmp ugt i64 2, %"$gasrem_241" - br i1 %"$gascmp_242", label %"$out_of_gas_243", label %"$have_gas_244" - -"$out_of_gas_243": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_244" - -"$have_gas_244": ; preds = %"$out_of_gas_243", %entry - %"$consume_245" = sub i64 %"$gasrem_241", 2 - store i64 %"$consume_245", i64* @_gasrem, align 8 - %"$l_tag_247" = getelementptr inbounds %TName_List_Int32, %TName_List_Int32* %1, i32 0, i32 0 - %"$l_tag_248" = load i8, i8* %"$l_tag_247", align 1 - switch i8 %"$l_tag_248", label %"$empty_default_249" [ - i8 0, label %"$Cons_250" - i8 1, label %"$Nil_293" - ], !dbg !80 - -"$Cons_250": ; preds = %"$have_gas_244" - %"$l_251" = bitcast %TName_List_Int32* %1 to %CName_Cons_Int32* - %"$h_gep_252" = getelementptr inbounds %CName_Cons_Int32, %CName_Cons_Int32* %"$l_251", i32 0, i32 1 - %"$h_load_253" = load %Int32, %Int32* %"$h_gep_252", align 4 + call void @llvm.dbg.declare(metadata %Uint32* %"$retval_27", metadata !144, metadata !DIExpression()), !dbg !145 + %"$gasrem_242" = load i64, i64* @_gasrem, align 8 + %"$gascmp_243" = icmp ugt i64 2, %"$gasrem_242" + br i1 %"$gascmp_243", label %"$out_of_gas_244", label %"$have_gas_245" + +"$out_of_gas_244": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_245" + +"$have_gas_245": ; preds = %"$out_of_gas_244", %entry + %"$consume_246" = sub i64 %"$gasrem_242", 2 + store i64 %"$consume_246", i64* @_gasrem, align 8 + %"$l_tag_248" = getelementptr inbounds %TName_List_Int32, %TName_List_Int32* %1, i32 0, i32 0 + %"$l_tag_249" = load i8, i8* %"$l_tag_248", align 1 + switch i8 %"$l_tag_249", label %"$empty_default_250" [ + i8 0, label %"$Cons_251" + i8 1, label %"$Nil_294" + ], !dbg !145 + +"$Cons_251": ; preds = %"$have_gas_245" + %"$l_252" = bitcast %TName_List_Int32* %1 to %CName_Cons_Int32* + %"$h_gep_253" = getelementptr inbounds %CName_Cons_Int32, %CName_Cons_Int32* %"$l_252", i32 0, i32 1 + %"$h_load_254" = load %Int32, %Int32* %"$h_gep_253", align 4 %h = alloca %Int32, align 8 - store %Int32 %"$h_load_253", %Int32* %h, align 4 - %"$t_gep_254" = getelementptr inbounds %CName_Cons_Int32, %CName_Cons_Int32* %"$l_251", i32 0, i32 2 - %"$t_load_255" = load %TName_List_Int32*, %TName_List_Int32** %"$t_gep_254", align 8 + store %Int32 %"$h_load_254", %Int32* %h, align 4 + %"$t_gep_255" = getelementptr inbounds %CName_Cons_Int32, %CName_Cons_Int32* %"$l_252", i32 0, i32 2 + %"$t_load_256" = load %TName_List_Int32*, %TName_List_Int32** %"$t_gep_255", align 8 %t = alloca %TName_List_Int32*, align 8 - store %TName_List_Int32* %"$t_load_255", %TName_List_Int32** %t, 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" + store %TName_List_Int32* %"$t_load_256", %TName_List_Int32** %t, 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_258": ; preds = %"$Cons_250" +"$out_of_gas_259": ; preds = %"$Cons_251" call void @_out_of_gas() - br label %"$have_gas_259" + br label %"$have_gas_260" -"$have_gas_259": ; preds = %"$out_of_gas_258", %"$Cons_250" - %"$consume_260" = sub i64 %"$gasrem_256", 1 - store i64 %"$consume_260", i64* @_gasrem, align 8 +"$have_gas_260": ; preds = %"$out_of_gas_259", %"$Cons_251" + %"$consume_261" = sub i64 %"$gasrem_257", 1 + store i64 %"$consume_261", i64* @_gasrem, align 8 %res = alloca %Uint32, align 8 - %"$gasrem_261" = load i64, i64* @_gasrem, align 8 - %"$gascmp_262" = icmp ugt i64 1, %"$gasrem_261" - br i1 %"$gascmp_262", label %"$out_of_gas_263", label %"$have_gas_264" + call void @llvm.dbg.declare(metadata %Uint32* %res, metadata !146, metadata !DIExpression()), !dbg !149 + %"$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_263": ; preds = %"$have_gas_259" +"$out_of_gas_264": ; preds = %"$have_gas_260" call void @_out_of_gas() - br label %"$have_gas_264" + br label %"$have_gas_265" -"$have_gas_264": ; preds = %"$out_of_gas_263", %"$have_gas_259" - %"$consume_265" = sub i64 %"$gasrem_261", 1 - store i64 %"$consume_265", i64* @_gasrem, align 8 +"$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 %"$f_6" = alloca { %Uint32 (i8*, %Int32)*, i8* }, align 8 - %"$f_266" = load { { %Uint32 (i8*, %Int32)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %Int32)*, i8* } (i8*, %Uint32)*, i8* }* %f, align 8 - %"$f_fptr_267" = extractvalue { { %Uint32 (i8*, %Int32)*, i8* } (i8*, %Uint32)*, i8* } %"$f_266", 0 - %"$f_envptr_268" = extractvalue { { %Uint32 (i8*, %Int32)*, i8* } (i8*, %Uint32)*, i8* } %"$f_266", 1 - %"$z_269" = load %Uint32, %Uint32* %z, align 4 - %"$f_call_270" = call { %Uint32 (i8*, %Int32)*, i8* } %"$f_fptr_267"(i8* %"$f_envptr_268", %Uint32 %"$z_269"), !dbg !81 - store { %Uint32 (i8*, %Int32)*, i8* } %"$f_call_270", { %Uint32 (i8*, %Int32)*, i8* }* %"$f_6", align 8, !dbg !81 + %"$f_267" = load { { %Uint32 (i8*, %Int32)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %Int32)*, i8* } (i8*, %Uint32)*, i8* }* %f, align 8 + %"$f_fptr_268" = extractvalue { { %Uint32 (i8*, %Int32)*, i8* } (i8*, %Uint32)*, i8* } %"$f_267", 0 + %"$f_envptr_269" = extractvalue { { %Uint32 (i8*, %Int32)*, i8* } (i8*, %Uint32)*, i8* } %"$f_267", 1 + %"$z_270" = load %Uint32, %Uint32* %z, align 4 + %"$f_call_271" = call { %Uint32 (i8*, %Int32)*, i8* } %"$f_fptr_268"(i8* %"$f_envptr_269", %Uint32 %"$z_270"), !dbg !150 + store { %Uint32 (i8*, %Int32)*, i8* } %"$f_call_271", { %Uint32 (i8*, %Int32)*, i8* }* %"$f_6", align 8, !dbg !150 %"$f_7" = alloca %Uint32, align 8 - %"$$f_6_271" = load { %Uint32 (i8*, %Int32)*, i8* }, { %Uint32 (i8*, %Int32)*, i8* }* %"$f_6", align 8 - %"$$f_6_fptr_272" = extractvalue { %Uint32 (i8*, %Int32)*, i8* } %"$$f_6_271", 0 - %"$$f_6_envptr_273" = extractvalue { %Uint32 (i8*, %Int32)*, i8* } %"$$f_6_271", 1 - %"$h_274" = load %Int32, %Int32* %h, align 4 - %"$$f_6_call_275" = call %Uint32 %"$$f_6_fptr_272"(i8* %"$$f_6_envptr_273", %Int32 %"$h_274"), !dbg !81 - store %Uint32 %"$$f_6_call_275", %Uint32* %"$f_7", align 4, !dbg !81 - %"$$f_7_276" = load %Uint32, %Uint32* %"$f_7", align 4 - store %Uint32 %"$$f_7_276", %Uint32* %res, align 4, !dbg !81 - %"$gasrem_277" = load i64, i64* @_gasrem, align 8 - %"$gascmp_278" = icmp ugt i64 1, %"$gasrem_277" - br i1 %"$gascmp_278", label %"$out_of_gas_279", label %"$have_gas_280" - -"$out_of_gas_279": ; preds = %"$have_gas_264" - call void @_out_of_gas() - br label %"$have_gas_280" - -"$have_gas_280": ; preds = %"$out_of_gas_279", %"$have_gas_264" - %"$consume_281" = sub i64 %"$gasrem_277", 1 - store i64 %"$consume_281", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %Uint32* %"$f_7", metadata !151, metadata !DIExpression()), !dbg !150 + %"$$f_6_272" = load { %Uint32 (i8*, %Int32)*, i8* }, { %Uint32 (i8*, %Int32)*, i8* }* %"$f_6", align 8 + %"$$f_6_fptr_273" = extractvalue { %Uint32 (i8*, %Int32)*, i8* } %"$$f_6_272", 0 + %"$$f_6_envptr_274" = extractvalue { %Uint32 (i8*, %Int32)*, i8* } %"$$f_6_272", 1 + %"$h_275" = load %Int32, %Int32* %h, align 4 + %"$$f_6_call_276" = call %Uint32 %"$$f_6_fptr_273"(i8* %"$$f_6_envptr_274", %Int32 %"$h_275"), !dbg !150 + store %Uint32 %"$$f_6_call_276", %Uint32* %"$f_7", align 4, !dbg !150 + %"$$f_7_277" = load %Uint32, %Uint32* %"$f_7", align 4 + store %Uint32 %"$$f_7_277", %Uint32* %res, align 4, !dbg !150 + %"$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_265" + call void @_out_of_gas() + br label %"$have_gas_281" + +"$have_gas_281": ; preds = %"$out_of_gas_280", %"$have_gas_265" + %"$consume_282" = sub i64 %"$gasrem_278", 1 + store i64 %"$consume_282", i64* @_gasrem, align 8 %"$g_8" = alloca { %Uint32 (i8*, %TName_List_Int32*)*, i8* }, align 8 - %"$g_282" = load { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*, %Uint32)*, i8* }* %g, align 8 - %"$g_fptr_283" = extractvalue { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*, %Uint32)*, i8* } %"$g_282", 0 - %"$g_envptr_284" = extractvalue { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*, %Uint32)*, i8* } %"$g_282", 1 - %"$res_285" = load %Uint32, %Uint32* %res, align 4 - %"$g_call_286" = call { %Uint32 (i8*, %TName_List_Int32*)*, i8* } %"$g_fptr_283"(i8* %"$g_envptr_284", %Uint32 %"$res_285"), !dbg !84 - store { %Uint32 (i8*, %TName_List_Int32*)*, i8* } %"$g_call_286", { %Uint32 (i8*, %TName_List_Int32*)*, i8* }* %"$g_8", align 8, !dbg !84 + %"$g_283" = load { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*, %Uint32)*, i8* }* %g, align 8 + %"$g_fptr_284" = extractvalue { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*, %Uint32)*, i8* } %"$g_283", 0 + %"$g_envptr_285" = extractvalue { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*, %Uint32)*, i8* } %"$g_283", 1 + %"$res_286" = load %Uint32, %Uint32* %res, align 4 + %"$g_call_287" = call { %Uint32 (i8*, %TName_List_Int32*)*, i8* } %"$g_fptr_284"(i8* %"$g_envptr_285", %Uint32 %"$res_286"), !dbg !152 + store { %Uint32 (i8*, %TName_List_Int32*)*, i8* } %"$g_call_287", { %Uint32 (i8*, %TName_List_Int32*)*, i8* }* %"$g_8", align 8, !dbg !152 %"$g_9" = alloca %Uint32, align 8 - %"$$g_8_287" = load { %Uint32 (i8*, %TName_List_Int32*)*, i8* }, { %Uint32 (i8*, %TName_List_Int32*)*, i8* }* %"$g_8", align 8 - %"$$g_8_fptr_288" = extractvalue { %Uint32 (i8*, %TName_List_Int32*)*, i8* } %"$$g_8_287", 0 - %"$$g_8_envptr_289" = extractvalue { %Uint32 (i8*, %TName_List_Int32*)*, i8* } %"$$g_8_287", 1 - %"$t_290" = load %TName_List_Int32*, %TName_List_Int32** %t, align 8 - %"$$g_8_call_291" = call %Uint32 %"$$g_8_fptr_288"(i8* %"$$g_8_envptr_289", %TName_List_Int32* %"$t_290"), !dbg !84 - store %Uint32 %"$$g_8_call_291", %Uint32* %"$g_9", align 4, !dbg !84 - %"$$g_9_292" = load %Uint32, %Uint32* %"$g_9", align 4 - store %Uint32 %"$$g_9_292", %Uint32* %"$retval_27", align 4, !dbg !84 - br label %"$matchsucc_246" - -"$Nil_293": ; preds = %"$have_gas_244" - %"$l_294" = bitcast %TName_List_Int32* %1 to %CName_Nil_Int32* - %"$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 = %"$Nil_293" - call void @_out_of_gas() - br label %"$have_gas_298" - -"$have_gas_298": ; preds = %"$out_of_gas_297", %"$Nil_293" - %"$consume_299" = sub i64 %"$gasrem_295", 1 - store i64 %"$consume_299", i64* @_gasrem, align 8 - %"$z_300" = load %Uint32, %Uint32* %z, align 4 - store %Uint32 %"$z_300", %Uint32* %"$retval_27", align 4, !dbg !85 - br label %"$matchsucc_246" - -"$empty_default_249": ; preds = %"$have_gas_244" - br label %"$matchsucc_246" - -"$matchsucc_246": ; preds = %"$have_gas_298", %"$have_gas_280", %"$empty_default_249" - %"$$retval_27_301" = load %Uint32, %Uint32* %"$retval_27", align 4 - ret %Uint32 %"$$retval_27_301" + call void @llvm.dbg.declare(metadata %Uint32* %"$g_9", metadata !153, metadata !DIExpression()), !dbg !152 + %"$$g_8_288" = load { %Uint32 (i8*, %TName_List_Int32*)*, i8* }, { %Uint32 (i8*, %TName_List_Int32*)*, i8* }* %"$g_8", align 8 + %"$$g_8_fptr_289" = extractvalue { %Uint32 (i8*, %TName_List_Int32*)*, i8* } %"$$g_8_288", 0 + %"$$g_8_envptr_290" = extractvalue { %Uint32 (i8*, %TName_List_Int32*)*, i8* } %"$$g_8_288", 1 + %"$t_291" = load %TName_List_Int32*, %TName_List_Int32** %t, align 8 + %"$$g_8_call_292" = call %Uint32 %"$$g_8_fptr_289"(i8* %"$$g_8_envptr_290", %TName_List_Int32* %"$t_291"), !dbg !152 + store %Uint32 %"$$g_8_call_292", %Uint32* %"$g_9", align 4, !dbg !152 + %"$$g_9_293" = load %Uint32, %Uint32* %"$g_9", align 4 + store %Uint32 %"$$g_9_293", %Uint32* %"$retval_27", align 4, !dbg !152 + br label %"$matchsucc_247" + +"$Nil_294": ; preds = %"$have_gas_245" + %"$l_295" = bitcast %TName_List_Int32* %1 to %CName_Nil_Int32* + %"$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 = %"$Nil_294" + call void @_out_of_gas() + br label %"$have_gas_299" + +"$have_gas_299": ; preds = %"$out_of_gas_298", %"$Nil_294" + %"$consume_300" = sub i64 %"$gasrem_296", 1 + store i64 %"$consume_300", i64* @_gasrem, align 8 + %"$z_301" = load %Uint32, %Uint32* %z, align 4 + store %Uint32 %"$z_301", %Uint32* %"$retval_27", align 4, !dbg !154 + br label %"$matchsucc_247" + +"$empty_default_250": ; preds = %"$have_gas_245" + br label %"$matchsucc_247" + +"$matchsucc_247": ; preds = %"$have_gas_299", %"$have_gas_281", %"$empty_default_250" + %"$$retval_27_302" = load %Uint32, %Uint32* %"$retval_27", align 4 + ret %Uint32 %"$$retval_27_302" } -define internal { %Uint32 (i8*, %TName_List_Int32*)*, i8* } @"$fundef_24"(%"$$fundef_24_env_172"* %0, %Uint32 %1) !dbg !87 { +define internal { %Uint32 (i8*, %TName_List_Int32*)*, i8* } @"$fundef_24"(%"$$fundef_24_env_172"* %0, %Uint32 %1) !dbg !156 { entry: + %"$z_235" = alloca %Uint32, align 8 + store %Uint32 %1, %Uint32* %"$z_235", align 4 + call void @llvm.dbg.declare(metadata %Uint32* %"$z_235", metadata !157, metadata !DIExpression()), !dbg !158 %"$$fundef_24_env_f_211" = getelementptr inbounds %"$$fundef_24_env_172", %"$$fundef_24_env_172"* %0, i32 0, i32 0 %"$f_envload_212" = load { { %Uint32 (i8*, %Int32)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %Int32)*, i8* } (i8*, %Uint32)*, i8* }* %"$$fundef_24_env_f_211", align 8 %f = alloca { { %Uint32 (i8*, %Int32)*, i8* } (i8*, %Uint32)*, i8* }, align 8 @@ -1529,12 +1589,12 @@ entry: store { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*, %Uint32)*, i8* } %"$g_232", { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*, %Uint32)*, i8* }* %"$$fundef_26_env_g_231", align 8 %"$$fundef_26_env_z_233" = getelementptr inbounds %"$$fundef_26_env_171", %"$$fundef_26_env_171"* %"$$fundef_26_envp_225", i32 0, i32 2 store %Uint32 %1, %Uint32* %"$$fundef_26_env_z_233", align 4 - store { %Uint32 (i8*, %TName_List_Int32*)*, i8* } %"$$fundef_26_cloval_228", { %Uint32 (i8*, %TName_List_Int32*)*, i8* }* %"$retval_25", align 8, !dbg !88 + store { %Uint32 (i8*, %TName_List_Int32*)*, i8* } %"$$fundef_26_cloval_228", { %Uint32 (i8*, %TName_List_Int32*)*, i8* }* %"$retval_25", align 8, !dbg !159 %"$$retval_25_234" = load { %Uint32 (i8*, %TName_List_Int32*)*, i8* }, { %Uint32 (i8*, %TName_List_Int32*)*, i8* }* %"$retval_25", align 8 ret { %Uint32 (i8*, %TName_List_Int32*)*, i8* } %"$$retval_25_234" } -define internal { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*, %Uint32)*, i8* } @"$fundef_22"(%"$$fundef_22_env_173"* %0, { { %Uint32 (i8*, %Int32)*, i8* } (i8*, %Uint32)*, i8* } %1) !dbg !89 { +define internal { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*, %Uint32)*, i8* } @"$fundef_22"(%"$$fundef_22_env_173"* %0, { { %Uint32 (i8*, %Int32)*, i8* } (i8*, %Uint32)*, i8* } %1) !dbg !160 { entry: %"$retval_23" = alloca { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*, %Uint32)*, i8* }, align 8 %"$gasrem_197" = load i64, i64* @_gasrem, align 8 @@ -1554,19 +1614,19 @@ entry: %"$$fundef_24_env_voidp_204" = bitcast %"$$fundef_24_env_172"* %"$$fundef_24_envp_202" to i8* %"$$fundef_24_cloval_205" = insertvalue { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*, %Uint32)*, i8* } { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*, %Uint32)* bitcast ({ %Uint32 (i8*, %TName_List_Int32*)*, i8* } (%"$$fundef_24_env_172"*, %Uint32)* @"$fundef_24" to { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*, %Uint32)*), i8* undef }, i8* %"$$fundef_24_env_voidp_204", 1 %g = alloca { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*, %Uint32)*, i8* }, align 8 - store { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*, %Uint32)*, i8* } %"$$fundef_24_cloval_205", { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*, %Uint32)*, i8* }* %g, align 8, !dbg !90 + store { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*, %Uint32)*, i8* } %"$$fundef_24_cloval_205", { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*, %Uint32)*, i8* }* %g, align 8, !dbg !161 %"$$fundef_24_env_f_206" = getelementptr inbounds %"$$fundef_24_env_172", %"$$fundef_24_env_172"* %"$$fundef_24_envp_202", i32 0, i32 0 store { { %Uint32 (i8*, %Int32)*, i8* } (i8*, %Uint32)*, i8* } %1, { { %Uint32 (i8*, %Int32)*, i8* } (i8*, %Uint32)*, i8* }* %"$$fundef_24_env_f_206", align 8 %"$$fundef_24_env_g_207" = getelementptr inbounds %"$$fundef_24_env_172", %"$$fundef_24_env_172"* %"$$fundef_24_envp_202", i32 0, i32 1 %"$g_208" = load { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*, %Uint32)*, i8* }* %g, align 8 store { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*, %Uint32)*, i8* } %"$g_208", { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*, %Uint32)*, i8* }* %"$$fundef_24_env_g_207", align 8 %"$g_209" = load { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*, %Uint32)*, i8* }* %g, align 8 - store { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*, %Uint32)*, i8* } %"$g_209", { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*, %Uint32)*, i8* }* %"$retval_23", align 8, !dbg !90 + store { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*, %Uint32)*, i8* } %"$g_209", { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*, %Uint32)*, i8* }* %"$retval_23", align 8, !dbg !161 %"$$retval_23_210" = load { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*, %Uint32)*, i8* }* %"$retval_23", align 8 ret { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*, %Uint32)*, i8* } %"$$retval_23_210" } -define internal { { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %Int32)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } @"$fundef_20"(%"$$fundef_20_env_174"* %0) !dbg !91 { +define internal { { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %Int32)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } @"$fundef_20"(%"$$fundef_20_env_174"* %0) !dbg !162 { entry: %"$retval_21" = alloca { { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %Int32)*, i8* } (i8*, %Uint32)*, i8* })*, i8* }, align 8 %"$gasrem_188" = load i64, i64* @_gasrem, align 8 @@ -1580,12 +1640,12 @@ entry: "$have_gas_191": ; preds = %"$out_of_gas_190", %entry %"$consume_192" = sub i64 %"$gasrem_188", 1 store i64 %"$consume_192", i64* @_gasrem, align 8 - store { { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %Int32)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } { { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %Int32)*, i8* } (i8*, %Uint32)*, i8* })* bitcast ({ { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*, %Uint32)*, i8* } (%"$$fundef_22_env_173"*, { { %Uint32 (i8*, %Int32)*, i8* } (i8*, %Uint32)*, i8* })* @"$fundef_22" to { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %Int32)*, i8* } (i8*, %Uint32)*, i8* })*), i8* null }, { { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %Int32)*, i8* } (i8*, %Uint32)*, i8* })*, i8* }* %"$retval_21", align 8, !dbg !92 + store { { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %Int32)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } { { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %Int32)*, i8* } (i8*, %Uint32)*, i8* })* bitcast ({ { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*, %Uint32)*, i8* } (%"$$fundef_22_env_173"*, { { %Uint32 (i8*, %Int32)*, i8* } (i8*, %Uint32)*, i8* })* @"$fundef_22" to { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %Int32)*, i8* } (i8*, %Uint32)*, i8* })*), i8* null }, { { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %Int32)*, i8* } (i8*, %Uint32)*, i8* })*, i8* }* %"$retval_21", align 8, !dbg !163 %"$$retval_21_196" = load { { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %Int32)*, i8* } (i8*, %Uint32)*, i8* })*, i8* }, { { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %Int32)*, i8* } (i8*, %Uint32)*, i8* })*, i8* }* %"$retval_21", align 8 ret { { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %Int32)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } %"$$retval_21_196" } -define internal { i8*, i8* }* @"$fundef_18"(%"$$fundef_18_env_175"* %0) !dbg !93 { +define internal { i8*, i8* }* @"$fundef_18"(%"$$fundef_18_env_175"* %0) !dbg !164 { entry: %"$retval_19" = alloca { i8*, i8* }*, align 8 %"$gasrem_176" = load i64, i64* @_gasrem, align 8 @@ -1606,7 +1666,7 @@ entry: %"$dyndisp_gep_185" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_184", i32 1 %"$dyndisp_pcast_186" = bitcast { i8*, i8* }* %"$dyndisp_gep_185" to { { { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %Int32)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* }* store { { { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %Int32)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* } { { { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %Int32)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } (i8*)* bitcast ({ { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %Int32)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } (%"$$fundef_20_env_174"*)* @"$fundef_20" to { { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %Int32)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } (i8*)*), i8* null }, { { { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %Int32)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* }* %"$dyndisp_pcast_186", align 8 - store { i8*, i8* }* %"$dyndisp_table_184", { i8*, i8* }** %"$retval_19", align 8, !dbg !94 + store { i8*, i8* }* %"$dyndisp_table_184", { i8*, i8* }** %"$retval_19", align 8, !dbg !165 %"$$retval_19_187" = load { i8*, i8* }*, { i8*, i8* }** %"$retval_19", align 8 ret { i8*, i8* }* %"$$retval_19_187" } @@ -1615,777 +1675,880 @@ declare void @_out_of_gas() declare i8* @_salloc(i8*, i64) +; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn +declare void @llvm.dbg.declare(metadata, metadata, metadata) #0 + declare %Uint32 @_add_Uint32(%Uint32, %Uint32) -define void @_init_libs() !dbg !95 { +define void @_init_libs() !dbg !166 { entry: - %"$gasrem_850" = load i64, i64* @_gasrem, align 8 - %"$gascmp_851" = icmp ugt i64 5, %"$gasrem_850" - br i1 %"$gascmp_851", label %"$out_of_gas_852", label %"$have_gas_853" + %"$gasrem_862" = load i64, i64* @_gasrem, align 8 + %"$gascmp_863" = icmp ugt i64 5, %"$gasrem_862" + br i1 %"$gascmp_863", label %"$out_of_gas_864", label %"$have_gas_865" -"$out_of_gas_852": ; preds = %entry +"$out_of_gas_864": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_853" + br label %"$have_gas_865" -"$have_gas_853": ; preds = %"$out_of_gas_852", %entry - %"$consume_854" = sub i64 %"$gasrem_850", 5 - store i64 %"$consume_854", i64* @_gasrem, align 8 - store %Int32 { i32 5 }, %Int32* @"$_gas_charge_accrec_lib_5", align 4, !dbg !97 - %"$gasrem_855" = load i64, i64* @_gasrem, align 8 - %"$gascmp_856" = icmp ugt i64 8, %"$gasrem_855" - br i1 %"$gascmp_856", label %"$out_of_gas_857", label %"$have_gas_858" +"$have_gas_865": ; preds = %"$out_of_gas_864", %entry + %"$consume_866" = sub i64 %"$gasrem_862", 5 + store i64 %"$consume_866", i64* @_gasrem, align 8 + store %Int32 { i32 5 }, %Int32* @"$_gas_charge_accrec_lib_5", align 4, !dbg !168 + %"$gasrem_867" = load i64, i64* @_gasrem, align 8 + %"$gascmp_868" = icmp ugt i64 8, %"$gasrem_867" + br i1 %"$gascmp_868", label %"$out_of_gas_869", label %"$have_gas_870" -"$out_of_gas_857": ; preds = %"$have_gas_853" +"$out_of_gas_869": ; preds = %"$have_gas_865" call void @_out_of_gas() - br label %"$have_gas_858" + br label %"$have_gas_870" -"$have_gas_858": ; preds = %"$out_of_gas_857", %"$have_gas_853" - %"$consume_859" = sub i64 %"$gasrem_855", 8 - store i64 %"$consume_859", i64* @_gasrem, align 8 - store %Int32 { i32 8 }, %Int32* @"$_gas_charge_accBoolUtils_0", align 4, !dbg !97 - %"$gasrem_860" = load i64, i64* @_gasrem, align 8 - %"$gascmp_861" = icmp ugt i64 196, %"$gasrem_860" - br i1 %"$gascmp_861", label %"$out_of_gas_862", label %"$have_gas_863" +"$have_gas_870": ; preds = %"$out_of_gas_869", %"$have_gas_865" + %"$consume_871" = sub i64 %"$gasrem_867", 8 + store i64 %"$consume_871", i64* @_gasrem, align 8 + store %Int32 { i32 8 }, %Int32* @"$_gas_charge_accBoolUtils_0", align 4, !dbg !168 + %"$gasrem_872" = load i64, i64* @_gasrem, align 8 + %"$gascmp_873" = icmp ugt i64 196, %"$gasrem_872" + br i1 %"$gascmp_873", label %"$out_of_gas_874", label %"$have_gas_875" -"$out_of_gas_862": ; preds = %"$have_gas_858" +"$out_of_gas_874": ; preds = %"$have_gas_870" call void @_out_of_gas() - br label %"$have_gas_863" + br label %"$have_gas_875" -"$have_gas_863": ; preds = %"$out_of_gas_862", %"$have_gas_858" - %"$consume_864" = sub i64 %"$gasrem_860", 196 - store i64 %"$consume_864", i64* @_gasrem, align 8 - store %Int32 { i32 196 }, %Int32* @"$_gas_charge_accIntUtils_1", align 4, !dbg !97 - %"$gasrem_865" = load i64, i64* @_gasrem, align 8 - %"$gascmp_866" = icmp ugt i64 19, %"$gasrem_865" - br i1 %"$gascmp_866", label %"$out_of_gas_867", label %"$have_gas_868" +"$have_gas_875": ; preds = %"$out_of_gas_874", %"$have_gas_870" + %"$consume_876" = sub i64 %"$gasrem_872", 196 + store i64 %"$consume_876", i64* @_gasrem, align 8 + store %Int32 { i32 196 }, %Int32* @"$_gas_charge_accIntUtils_1", align 4, !dbg !168 + %"$gasrem_877" = load i64, i64* @_gasrem, align 8 + %"$gascmp_878" = icmp ugt i64 19, %"$gasrem_877" + br i1 %"$gascmp_878", label %"$out_of_gas_879", label %"$have_gas_880" -"$out_of_gas_867": ; preds = %"$have_gas_863" +"$out_of_gas_879": ; preds = %"$have_gas_875" call void @_out_of_gas() - br label %"$have_gas_868" + br label %"$have_gas_880" -"$have_gas_868": ; preds = %"$out_of_gas_867", %"$have_gas_863" - %"$consume_869" = sub i64 %"$gasrem_865", 19 - store i64 %"$consume_869", i64* @_gasrem, align 8 - store %Int32 { i32 19 }, %Int32* @"$_gas_charge_accListUtils_2", align 4, !dbg !97 - %"$gasrem_870" = load i64, i64* @_gasrem, align 8 - %"$gascmp_871" = icmp ugt i64 1, %"$gasrem_870" - br i1 %"$gascmp_871", label %"$out_of_gas_872", label %"$have_gas_873" +"$have_gas_880": ; preds = %"$out_of_gas_879", %"$have_gas_875" + %"$consume_881" = sub i64 %"$gasrem_877", 19 + store i64 %"$consume_881", i64* @_gasrem, align 8 + store %Int32 { i32 19 }, %Int32* @"$_gas_charge_accListUtils_2", align 4, !dbg !168 + %"$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_872": ; preds = %"$have_gas_868" +"$out_of_gas_884": ; preds = %"$have_gas_880" call void @_out_of_gas() - br label %"$have_gas_873" + br label %"$have_gas_885" -"$have_gas_873": ; preds = %"$out_of_gas_872", %"$have_gas_868" - %"$consume_874" = sub i64 %"$gasrem_870", 1 - store i64 %"$consume_874", i64* @_gasrem, align 8 +"$have_gas_885": ; preds = %"$out_of_gas_884", %"$have_gas_880" + %"$consume_886" = sub i64 %"$gasrem_882", 1 + store i64 %"$consume_886", i64* @_gasrem, align 8 %list_foldl = alloca { i8*, i8* }*, align 8 - %"$dyndisp_table_881_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$dyndisp_table_881_salloc_salloc" = call i8* @_salloc(i8* %"$dyndisp_table_881_salloc_load", i64 48) - %"$dyndisp_table_881_salloc" = bitcast i8* %"$dyndisp_table_881_salloc_salloc" to [3 x { i8*, i8* }]* - %"$dyndisp_table_881" = bitcast [3 x { i8*, i8* }]* %"$dyndisp_table_881_salloc" to { i8*, i8* }* - %"$dyndisp_gep_882" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_881", i32 0 - %"$dyndisp_pcast_883" = bitcast { i8*, i8* }* %"$dyndisp_gep_882" to { { i8*, i8* }* (i8*)*, i8* }* - store { { i8*, i8* }* (i8*)*, i8* } { { i8*, i8* }* (i8*)* bitcast ({ i8*, i8* }* (%"$$fundef_18_env_175"*)* @"$fundef_18" to { i8*, i8* }* (i8*)*), i8* null }, { { i8*, i8* }* (i8*)*, i8* }* %"$dyndisp_pcast_883", align 8 - %"$dyndisp_gep_884" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_881", i32 2 - %"$dyndisp_pcast_885" = bitcast { i8*, i8* }* %"$dyndisp_gep_884" to { { i8*, i8* }* (i8*)*, i8* }* - store { { i8*, i8* }* (i8*)*, i8* } { { i8*, i8* }* (i8*)* bitcast ({ i8*, i8* }* (%"$$fundef_28_env_170"*)* @"$fundef_28" to { i8*, i8* }* (i8*)*), i8* null }, { { i8*, i8* }* (i8*)*, i8* }* %"$dyndisp_pcast_885", align 8 - store { i8*, i8* }* %"$dyndisp_table_881", { i8*, i8* }** %list_foldl, align 8, !dbg !98 - %"$$fundef_38_envp_886_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_38_envp_886_salloc" = call i8* @_salloc(i8* %"$$fundef_38_envp_886_load", i64 8) - %"$$fundef_38_envp_886" = bitcast i8* %"$$fundef_38_envp_886_salloc" to %"$$fundef_38_env_165"* - %"$$fundef_38_env_voidp_888" = bitcast %"$$fundef_38_env_165"* %"$$fundef_38_envp_886" to i8* - %"$$fundef_38_cloval_889" = insertvalue { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*)*, i8* } { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*)* bitcast ({ %Uint32 (i8*, %TName_List_Int32*)*, i8* } (%"$$fundef_38_env_165"*)* @"$fundef_38" to { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*)*), i8* undef }, i8* %"$$fundef_38_env_voidp_888", 1 - %"$$fundef_38_env_list_foldl_890" = getelementptr inbounds %"$$fundef_38_env_165", %"$$fundef_38_env_165"* %"$$fundef_38_envp_886", i32 0, i32 0 - %"$list_foldl_891" = load { i8*, i8* }*, { i8*, i8* }** %list_foldl, align 8 - store { i8*, i8* }* %"$list_foldl_891", { i8*, i8* }** %"$$fundef_38_env_list_foldl_890", align 8 - %"$$fundef_44_env_voidp_893" = bitcast %"$$fundef_38_env_165"* %"$$fundef_38_envp_886" to i8* - %"$$fundef_44_cloval_894" = insertvalue { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*)*, i8* } { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*)* bitcast ({ %Uint32 (i8*, %TName_List_Int64*)*, i8* } (%"$$fundef_44_env_162"*)* @"$fundef_44" to { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*)*), i8* undef }, i8* %"$$fundef_44_env_voidp_893", 1 - %"$dyndisp_table_895_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$dyndisp_table_895_salloc_salloc" = call i8* @_salloc(i8* %"$dyndisp_table_895_salloc_load", i64 48) - %"$dyndisp_table_895_salloc" = bitcast i8* %"$dyndisp_table_895_salloc_salloc" to [3 x { i8*, i8* }]* - %"$dyndisp_table_895" = bitcast [3 x { i8*, i8* }]* %"$dyndisp_table_895_salloc" to { i8*, i8* }* - %"$dyndisp_gep_896" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_895", i32 0 - %"$dyndisp_pcast_897" = bitcast { i8*, i8* }* %"$dyndisp_gep_896" to { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*)*, i8* }* - store { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*)*, i8* } %"$$fundef_38_cloval_889", { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*)*, i8* }* %"$dyndisp_pcast_897", align 8 - %"$dyndisp_gep_898" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_895", i32 2 - %"$dyndisp_pcast_899" = bitcast { i8*, i8* }* %"$dyndisp_gep_898" to { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*)*, i8* }* - store { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*)*, i8* } %"$$fundef_44_cloval_894", { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*)*, i8* }* %"$dyndisp_pcast_899", align 8 - store { i8*, i8* }* %"$dyndisp_table_895", { i8*, i8* }** @ListUtils.list_length, align 8, !dbg !99 - %"$gasrem_900" = load i64, i64* @_gasrem, align 8 - %"$gascmp_901" = icmp ugt i64 12, %"$gasrem_900" - br i1 %"$gascmp_901", label %"$out_of_gas_902", label %"$have_gas_903" - -"$out_of_gas_902": ; preds = %"$have_gas_873" - call void @_out_of_gas() - br label %"$have_gas_903" - -"$have_gas_903": ; preds = %"$out_of_gas_902", %"$have_gas_873" - %"$consume_904" = sub i64 %"$gasrem_900", 12 - store i64 %"$consume_904", i64* @_gasrem, align 8 - store %Int32 { i32 12 }, %Int32* @"$_gas_charge_accNatUtils_3", align 4, !dbg !97 - %"$gasrem_905" = load i64, i64* @_gasrem, align 8 - %"$gascmp_906" = icmp ugt i64 2, %"$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", 2 - store i64 %"$consume_909", i64* @_gasrem, align 8 - store %Int32 { i32 2 }, %Int32* @"$_gas_charge_accPairUtils_4", align 4, !dbg !97 + %"$dyndisp_table_893_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$dyndisp_table_893_salloc_salloc" = call i8* @_salloc(i8* %"$dyndisp_table_893_salloc_load", i64 48) + %"$dyndisp_table_893_salloc" = bitcast i8* %"$dyndisp_table_893_salloc_salloc" to [3 x { i8*, i8* }]* + %"$dyndisp_table_893" = bitcast [3 x { i8*, i8* }]* %"$dyndisp_table_893_salloc" to { i8*, i8* }* + %"$dyndisp_gep_894" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_893", i32 0 + %"$dyndisp_pcast_895" = bitcast { i8*, i8* }* %"$dyndisp_gep_894" to { { i8*, i8* }* (i8*)*, i8* }* + store { { i8*, i8* }* (i8*)*, i8* } { { i8*, i8* }* (i8*)* bitcast ({ i8*, i8* }* (%"$$fundef_18_env_175"*)* @"$fundef_18" to { i8*, i8* }* (i8*)*), i8* null }, { { i8*, i8* }* (i8*)*, i8* }* %"$dyndisp_pcast_895", align 8 + %"$dyndisp_gep_896" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_893", i32 2 + %"$dyndisp_pcast_897" = bitcast { i8*, i8* }* %"$dyndisp_gep_896" to { { i8*, i8* }* (i8*)*, i8* }* + store { { i8*, i8* }* (i8*)*, i8* } { { i8*, i8* }* (i8*)* bitcast ({ i8*, i8* }* (%"$$fundef_28_env_170"*)* @"$fundef_28" to { i8*, i8* }* (i8*)*), i8* null }, { { i8*, i8* }* (i8*)*, i8* }* %"$dyndisp_pcast_897", align 8 + store { i8*, i8* }* %"$dyndisp_table_893", { i8*, i8* }** %list_foldl, align 8, !dbg !169 + %"$$fundef_38_envp_898_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_38_envp_898_salloc" = call i8* @_salloc(i8* %"$$fundef_38_envp_898_load", i64 8) + %"$$fundef_38_envp_898" = bitcast i8* %"$$fundef_38_envp_898_salloc" to %"$$fundef_38_env_165"* + %"$$fundef_38_env_voidp_900" = bitcast %"$$fundef_38_env_165"* %"$$fundef_38_envp_898" to i8* + %"$$fundef_38_cloval_901" = insertvalue { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*)*, i8* } { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*)* bitcast ({ %Uint32 (i8*, %TName_List_Int32*)*, i8* } (%"$$fundef_38_env_165"*)* @"$fundef_38" to { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*)*), i8* undef }, i8* %"$$fundef_38_env_voidp_900", 1 + %"$$fundef_38_env_list_foldl_902" = getelementptr inbounds %"$$fundef_38_env_165", %"$$fundef_38_env_165"* %"$$fundef_38_envp_898", i32 0, i32 0 + %"$list_foldl_903" = load { i8*, i8* }*, { i8*, i8* }** %list_foldl, align 8 + store { i8*, i8* }* %"$list_foldl_903", { i8*, i8* }** %"$$fundef_38_env_list_foldl_902", align 8 + %"$$fundef_44_env_voidp_905" = bitcast %"$$fundef_38_env_165"* %"$$fundef_38_envp_898" to i8* + %"$$fundef_44_cloval_906" = insertvalue { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*)*, i8* } { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*)* bitcast ({ %Uint32 (i8*, %TName_List_Int64*)*, i8* } (%"$$fundef_44_env_162"*)* @"$fundef_44" to { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*)*), i8* undef }, i8* %"$$fundef_44_env_voidp_905", 1 + %"$dyndisp_table_907_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$dyndisp_table_907_salloc_salloc" = call i8* @_salloc(i8* %"$dyndisp_table_907_salloc_load", i64 48) + %"$dyndisp_table_907_salloc" = bitcast i8* %"$dyndisp_table_907_salloc_salloc" to [3 x { i8*, i8* }]* + %"$dyndisp_table_907" = bitcast [3 x { i8*, i8* }]* %"$dyndisp_table_907_salloc" to { i8*, i8* }* + %"$dyndisp_gep_908" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_907", i32 0 + %"$dyndisp_pcast_909" = bitcast { i8*, i8* }* %"$dyndisp_gep_908" to { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*)*, i8* }* + store { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*)*, i8* } %"$$fundef_38_cloval_901", { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*)*, i8* }* %"$dyndisp_pcast_909", align 8 + %"$dyndisp_gep_910" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_907", i32 2 + %"$dyndisp_pcast_911" = bitcast { i8*, i8* }* %"$dyndisp_gep_910" to { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*)*, i8* }* + store { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*)*, i8* } %"$$fundef_44_cloval_906", { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*)*, i8* }* %"$dyndisp_pcast_911", align 8 + store { i8*, i8* }* %"$dyndisp_table_907", { i8*, i8* }** @ListUtils.list_length, align 8, !dbg !170 + %"$gasrem_912" = load i64, i64* @_gasrem, align 8 + %"$gascmp_913" = icmp ugt i64 12, %"$gasrem_912" + br i1 %"$gascmp_913", label %"$out_of_gas_914", label %"$have_gas_915" + +"$out_of_gas_914": ; preds = %"$have_gas_885" + call void @_out_of_gas() + br label %"$have_gas_915" + +"$have_gas_915": ; preds = %"$out_of_gas_914", %"$have_gas_885" + %"$consume_916" = sub i64 %"$gasrem_912", 12 + store i64 %"$consume_916", i64* @_gasrem, align 8 + store %Int32 { i32 12 }, %Int32* @"$_gas_charge_accNatUtils_3", align 4, !dbg !168 + %"$gasrem_917" = load i64, i64* @_gasrem, align 8 + %"$gascmp_918" = icmp ugt i64 2, %"$gasrem_917" + br i1 %"$gascmp_918", label %"$out_of_gas_919", label %"$have_gas_920" + +"$out_of_gas_919": ; preds = %"$have_gas_915" + call void @_out_of_gas() + br label %"$have_gas_920" + +"$have_gas_920": ; preds = %"$out_of_gas_919", %"$have_gas_915" + %"$consume_921" = sub i64 %"$gasrem_917", 2 + store i64 %"$consume_921", i64* @_gasrem, align 8 + store %Int32 { i32 2 }, %Int32* @"$_gas_charge_accPairUtils_4", align 4, !dbg !168 ret void } -define internal %Uint32 @_scilla_expr_fun(i8* %0) !dbg !100 { +define internal %Uint32 @_scilla_expr_fun(i8* %0) !dbg !171 { entry: %"$expr_50" = alloca %Uint32, 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" + call void @llvm.dbg.declare(metadata %Uint32* %"$expr_50", metadata !172, metadata !DIExpression()), !dbg !173 + %"$gasrem_922" = load i64, i64* @_gasrem, align 8 + %"$gascmp_923" = icmp ugt i64 1, %"$gasrem_922" + br i1 %"$gascmp_923", label %"$out_of_gas_924", label %"$have_gas_925" -"$out_of_gas_912": ; preds = %entry +"$out_of_gas_924": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_913" + br label %"$have_gas_925" -"$have_gas_913": ; preds = %"$out_of_gas_912", %entry - %"$consume_914" = sub i64 %"$gasrem_910", 1 - store i64 %"$consume_914", i64* @_gasrem, align 8 +"$have_gas_925": ; preds = %"$out_of_gas_924", %entry + %"$consume_926" = sub i64 %"$gasrem_922", 1 + store i64 %"$consume_926", i64* @_gasrem, align 8 %t1 = alloca { i8*, i8* }*, 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 - %"$dyndisp_table_926_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$dyndisp_table_926_salloc_salloc" = call i8* @_salloc(i8* %"$dyndisp_table_926_salloc_load", i64 48) - %"$dyndisp_table_926_salloc" = bitcast i8* %"$dyndisp_table_926_salloc_salloc" to [3 x { i8*, i8* }]* - %"$dyndisp_table_926" = bitcast [3 x { i8*, i8* }]* %"$dyndisp_table_926_salloc" to { i8*, i8* }* - %"$dyndisp_gep_927" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_926", i32 0 - %"$dyndisp_pcast_928" = bitcast { i8*, i8* }* %"$dyndisp_gep_927" to { { %TName_List_Int32* (i8*, %Int32)*, i8* } (i8*)*, i8* }* - store { { %TName_List_Int32* (i8*, %Int32)*, i8* } (i8*)*, i8* } { { %TName_List_Int32* (i8*, %Int32)*, i8* } (i8*)* bitcast ({ %TName_List_Int32* (i8*, %Int32)*, i8* } (%"$$fundef_51_env_159"*)* @"$fundef_51" to { %TName_List_Int32* (i8*, %Int32)*, i8* } (i8*)*), i8* null }, { { %TName_List_Int32* (i8*, %Int32)*, i8* } (i8*)*, i8* }* %"$dyndisp_pcast_928", align 8 - %"$dyndisp_gep_929" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_926", i32 2 - %"$dyndisp_pcast_930" = bitcast { i8*, i8* }* %"$dyndisp_gep_929" to { { %TName_List_Int64* (i8*, %Int64)*, i8* } (i8*)*, i8* }* - store { { %TName_List_Int64* (i8*, %Int64)*, i8* } (i8*)*, i8* } { { %TName_List_Int64* (i8*, %Int64)*, i8* } (i8*)* bitcast ({ %TName_List_Int64* (i8*, %Int64)*, i8* } (%"$$fundef_55_env_157"*)* @"$fundef_55" to { %TName_List_Int64* (i8*, %Int64)*, i8* } (i8*)*), i8* null }, { { %TName_List_Int64* (i8*, %Int64)*, i8* } (i8*)*, i8* }* %"$dyndisp_pcast_930", align 8 - store { i8*, i8* }* %"$dyndisp_table_926", { i8*, i8* }** %t1, align 8, !dbg !101 - %"$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_918" - call void @_out_of_gas() - br label %"$have_gas_934" - -"$have_gas_934": ; preds = %"$out_of_gas_933", %"$have_gas_918" - %"$consume_935" = sub i64 %"$gasrem_931", 1 - store i64 %"$consume_935", i64* @_gasrem, align 8 + %"$gasrem_927" = load i64, i64* @_gasrem, align 8 + %"$gascmp_928" = icmp ugt i64 1, %"$gasrem_927" + br i1 %"$gascmp_928", label %"$out_of_gas_929", label %"$have_gas_930" + +"$out_of_gas_929": ; preds = %"$have_gas_925" + call void @_out_of_gas() + br label %"$have_gas_930" + +"$have_gas_930": ; preds = %"$out_of_gas_929", %"$have_gas_925" + %"$consume_931" = sub i64 %"$gasrem_927", 1 + store i64 %"$consume_931", i64* @_gasrem, align 8 + %"$dyndisp_table_938_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$dyndisp_table_938_salloc_salloc" = call i8* @_salloc(i8* %"$dyndisp_table_938_salloc_load", i64 48) + %"$dyndisp_table_938_salloc" = bitcast i8* %"$dyndisp_table_938_salloc_salloc" to [3 x { i8*, i8* }]* + %"$dyndisp_table_938" = bitcast [3 x { i8*, i8* }]* %"$dyndisp_table_938_salloc" to { i8*, i8* }* + %"$dyndisp_gep_939" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_938", i32 0 + %"$dyndisp_pcast_940" = bitcast { i8*, i8* }* %"$dyndisp_gep_939" to { { %TName_List_Int32* (i8*, %Int32)*, i8* } (i8*)*, i8* }* + store { { %TName_List_Int32* (i8*, %Int32)*, i8* } (i8*)*, i8* } { { %TName_List_Int32* (i8*, %Int32)*, i8* } (i8*)* bitcast ({ %TName_List_Int32* (i8*, %Int32)*, i8* } (%"$$fundef_51_env_159"*)* @"$fundef_51" to { %TName_List_Int32* (i8*, %Int32)*, i8* } (i8*)*), i8* null }, { { %TName_List_Int32* (i8*, %Int32)*, i8* } (i8*)*, i8* }* %"$dyndisp_pcast_940", align 8 + %"$dyndisp_gep_941" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_938", i32 2 + %"$dyndisp_pcast_942" = bitcast { i8*, i8* }* %"$dyndisp_gep_941" to { { %TName_List_Int64* (i8*, %Int64)*, i8* } (i8*)*, i8* }* + store { { %TName_List_Int64* (i8*, %Int64)*, i8* } (i8*)*, i8* } { { %TName_List_Int64* (i8*, %Int64)*, i8* } (i8*)* bitcast ({ %TName_List_Int64* (i8*, %Int64)*, i8* } (%"$$fundef_55_env_157"*)* @"$fundef_55" to { %TName_List_Int64* (i8*, %Int64)*, i8* } (i8*)*), i8* null }, { { %TName_List_Int64* (i8*, %Int64)*, i8* } (i8*)*, i8* }* %"$dyndisp_pcast_942", align 8 + store { i8*, i8* }* %"$dyndisp_table_938", { i8*, i8* }** %t1, align 8, !dbg !173 + %"$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_930" + call void @_out_of_gas() + br label %"$have_gas_946" + +"$have_gas_946": ; preds = %"$out_of_gas_945", %"$have_gas_930" + %"$consume_947" = sub i64 %"$gasrem_943", 1 + store i64 %"$consume_947", i64* @_gasrem, align 8 %t2 = alloca { 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 = %"$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 - %"$dyndisp_table_947_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$dyndisp_table_947_salloc_salloc" = call i8* @_salloc(i8* %"$dyndisp_table_947_salloc_load", i64 48) - %"$dyndisp_table_947_salloc" = bitcast i8* %"$dyndisp_table_947_salloc_salloc" to [3 x { i8*, i8* }]* - %"$dyndisp_table_947" = bitcast [3 x { i8*, i8* }]* %"$dyndisp_table_947_salloc" to { i8*, i8* }* - %"$dyndisp_gep_948" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_947", i32 0 - %"$dyndisp_pcast_949" = bitcast { i8*, i8* }* %"$dyndisp_gep_948" to { { %TName_List_Int32* (i8*, %Int32)*, i8* } (i8*)*, i8* }* - store { { %TName_List_Int32* (i8*, %Int32)*, i8* } (i8*)*, i8* } { { %TName_List_Int32* (i8*, %Int32)*, i8* } (i8*)* bitcast ({ %TName_List_Int32* (i8*, %Int32)*, i8* } (%"$$fundef_59_env_155"*)* @"$fundef_59" to { %TName_List_Int32* (i8*, %Int32)*, i8* } (i8*)*), i8* null }, { { %TName_List_Int32* (i8*, %Int32)*, i8* } (i8*)*, i8* }* %"$dyndisp_pcast_949", align 8 - %"$dyndisp_gep_950" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_947", i32 2 - %"$dyndisp_pcast_951" = bitcast { i8*, i8* }* %"$dyndisp_gep_950" to { { %TName_List_Int64* (i8*, %Int64)*, i8* } (i8*)*, i8* }* - store { { %TName_List_Int64* (i8*, %Int64)*, i8* } (i8*)*, i8* } { { %TName_List_Int64* (i8*, %Int64)*, i8* } (i8*)* bitcast ({ %TName_List_Int64* (i8*, %Int64)*, i8* } (%"$$fundef_63_env_153"*)* @"$fundef_63" to { %TName_List_Int64* (i8*, %Int64)*, i8* } (i8*)*), i8* null }, { { %TName_List_Int64* (i8*, %Int64)*, i8* } (i8*)*, i8* }* %"$dyndisp_pcast_951", align 8 - store { i8*, i8* }* %"$dyndisp_table_947", { i8*, i8* }** %t2, align 8, !dbg !102 - %"$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_939" - call void @_out_of_gas() - br label %"$have_gas_955" - -"$have_gas_955": ; preds = %"$out_of_gas_954", %"$have_gas_939" - %"$consume_956" = sub i64 %"$gasrem_952", 1 - store i64 %"$consume_956", i64* @_gasrem, align 8 + %"$gasrem_948" = load i64, i64* @_gasrem, align 8 + %"$gascmp_949" = icmp ugt i64 1, %"$gasrem_948" + br i1 %"$gascmp_949", label %"$out_of_gas_950", label %"$have_gas_951" + +"$out_of_gas_950": ; preds = %"$have_gas_946" + call void @_out_of_gas() + br label %"$have_gas_951" + +"$have_gas_951": ; preds = %"$out_of_gas_950", %"$have_gas_946" + %"$consume_952" = sub i64 %"$gasrem_948", 1 + store i64 %"$consume_952", i64* @_gasrem, align 8 + %"$dyndisp_table_959_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$dyndisp_table_959_salloc_salloc" = call i8* @_salloc(i8* %"$dyndisp_table_959_salloc_load", i64 48) + %"$dyndisp_table_959_salloc" = bitcast i8* %"$dyndisp_table_959_salloc_salloc" to [3 x { i8*, i8* }]* + %"$dyndisp_table_959" = bitcast [3 x { i8*, i8* }]* %"$dyndisp_table_959_salloc" to { i8*, i8* }* + %"$dyndisp_gep_960" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_959", i32 0 + %"$dyndisp_pcast_961" = bitcast { i8*, i8* }* %"$dyndisp_gep_960" to { { %TName_List_Int32* (i8*, %Int32)*, i8* } (i8*)*, i8* }* + store { { %TName_List_Int32* (i8*, %Int32)*, i8* } (i8*)*, i8* } { { %TName_List_Int32* (i8*, %Int32)*, i8* } (i8*)* bitcast ({ %TName_List_Int32* (i8*, %Int32)*, i8* } (%"$$fundef_59_env_155"*)* @"$fundef_59" to { %TName_List_Int32* (i8*, %Int32)*, i8* } (i8*)*), i8* null }, { { %TName_List_Int32* (i8*, %Int32)*, i8* } (i8*)*, i8* }* %"$dyndisp_pcast_961", align 8 + %"$dyndisp_gep_962" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_959", i32 2 + %"$dyndisp_pcast_963" = bitcast { i8*, i8* }* %"$dyndisp_gep_962" to { { %TName_List_Int64* (i8*, %Int64)*, i8* } (i8*)*, i8* }* + store { { %TName_List_Int64* (i8*, %Int64)*, i8* } (i8*)*, i8* } { { %TName_List_Int64* (i8*, %Int64)*, i8* } (i8*)* bitcast ({ %TName_List_Int64* (i8*, %Int64)*, i8* } (%"$$fundef_63_env_153"*)* @"$fundef_63" to { %TName_List_Int64* (i8*, %Int64)*, i8* } (i8*)*), i8* null }, { { %TName_List_Int64* (i8*, %Int64)*, i8* } (i8*)*, i8* }* %"$dyndisp_pcast_963", align 8 + store { i8*, i8* }* %"$dyndisp_table_959", { i8*, i8* }** %t2, align 8, !dbg !174 + %"$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" + +"$out_of_gas_966": ; preds = %"$have_gas_951" + call void @_out_of_gas() + br label %"$have_gas_967" + +"$have_gas_967": ; preds = %"$out_of_gas_966", %"$have_gas_951" + %"$consume_968" = sub i64 %"$gasrem_964", 1 + store i64 %"$consume_968", i64* @_gasrem, align 8 %t = alloca { i8*, i8* }*, 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 - %"$dyndisp_table_968_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$dyndisp_table_968_salloc_salloc" = call i8* @_salloc(i8* %"$dyndisp_table_968_salloc_load", i64 48) - %"$dyndisp_table_968_salloc" = bitcast i8* %"$dyndisp_table_968_salloc_salloc" to [3 x { i8*, i8* }]* - %"$dyndisp_table_968" = bitcast [3 x { i8*, i8* }]* %"$dyndisp_table_968_salloc" to { i8*, i8* }* - %"$dyndisp_gep_969" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_968", i32 0 - %"$dyndisp_pcast_970" = bitcast { i8*, i8* }* %"$dyndisp_gep_969" to { { { %TName_List_Int32* (i8*, %Int32)*, i8* } (i8*, { i8*, i8* }*)*, i8* } (i8*)*, i8* }* - store { { { %TName_List_Int32* (i8*, %Int32)*, i8* } (i8*, { i8*, i8* }*)*, i8* } (i8*)*, i8* } { { { %TName_List_Int32* (i8*, %Int32)*, i8* } (i8*, { i8*, i8* }*)*, i8* } (i8*)* bitcast ({ { %TName_List_Int32* (i8*, %Int32)*, i8* } (i8*, { i8*, i8* }*)*, i8* } (%"$$fundef_67_env_151"*)* @"$fundef_67" to { { %TName_List_Int32* (i8*, %Int32)*, i8* } (i8*, { i8*, i8* }*)*, i8* } (i8*)*), i8* null }, { { { %TName_List_Int32* (i8*, %Int32)*, i8* } (i8*, { i8*, i8* }*)*, i8* } (i8*)*, i8* }* %"$dyndisp_pcast_970", align 8 - %"$dyndisp_gep_971" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_968", i32 2 - %"$dyndisp_pcast_972" = bitcast { i8*, i8* }* %"$dyndisp_gep_971" to { { { %TName_List_Int64* (i8*, %Int64)*, i8* } (i8*, { i8*, i8* }*)*, i8* } (i8*)*, i8* }* - store { { { %TName_List_Int64* (i8*, %Int64)*, i8* } (i8*, { i8*, i8* }*)*, i8* } (i8*)*, i8* } { { { %TName_List_Int64* (i8*, %Int64)*, i8* } (i8*, { i8*, i8* }*)*, i8* } (i8*)* bitcast ({ { %TName_List_Int64* (i8*, %Int64)*, i8* } (i8*, { i8*, i8* }*)*, i8* } (%"$$fundef_71_env_149"*)* @"$fundef_71" to { { %TName_List_Int64* (i8*, %Int64)*, i8* } (i8*, { i8*, i8* }*)*, i8* } (i8*)*), i8* null }, { { { %TName_List_Int64* (i8*, %Int64)*, i8* } (i8*, { i8*, i8* }*)*, i8* } (i8*)*, i8* }* %"$dyndisp_pcast_972", align 8 - store { i8*, i8* }* %"$dyndisp_table_968", { i8*, i8* }** %t, align 8, !dbg !103 - %"$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_960" - call void @_out_of_gas() - br label %"$have_gas_976" - -"$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 + %"$gasrem_969" = load i64, i64* @_gasrem, align 8 + %"$gascmp_970" = icmp ugt i64 1, %"$gasrem_969" + br i1 %"$gascmp_970", label %"$out_of_gas_971", label %"$have_gas_972" + +"$out_of_gas_971": ; preds = %"$have_gas_967" + call void @_out_of_gas() + br label %"$have_gas_972" + +"$have_gas_972": ; preds = %"$out_of_gas_971", %"$have_gas_967" + %"$consume_973" = sub i64 %"$gasrem_969", 1 + store i64 %"$consume_973", i64* @_gasrem, align 8 + %"$dyndisp_table_980_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$dyndisp_table_980_salloc_salloc" = call i8* @_salloc(i8* %"$dyndisp_table_980_salloc_load", i64 48) + %"$dyndisp_table_980_salloc" = bitcast i8* %"$dyndisp_table_980_salloc_salloc" to [3 x { i8*, i8* }]* + %"$dyndisp_table_980" = bitcast [3 x { i8*, i8* }]* %"$dyndisp_table_980_salloc" to { i8*, i8* }* + %"$dyndisp_gep_981" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_980", i32 0 + %"$dyndisp_pcast_982" = bitcast { i8*, i8* }* %"$dyndisp_gep_981" to { { { %TName_List_Int32* (i8*, %Int32)*, i8* } (i8*, { i8*, i8* }*)*, i8* } (i8*)*, i8* }* + store { { { %TName_List_Int32* (i8*, %Int32)*, i8* } (i8*, { i8*, i8* }*)*, i8* } (i8*)*, i8* } { { { %TName_List_Int32* (i8*, %Int32)*, i8* } (i8*, { i8*, i8* }*)*, i8* } (i8*)* bitcast ({ { %TName_List_Int32* (i8*, %Int32)*, i8* } (i8*, { i8*, i8* }*)*, i8* } (%"$$fundef_67_env_151"*)* @"$fundef_67" to { { %TName_List_Int32* (i8*, %Int32)*, i8* } (i8*, { i8*, i8* }*)*, i8* } (i8*)*), i8* null }, { { { %TName_List_Int32* (i8*, %Int32)*, i8* } (i8*, { i8*, i8* }*)*, i8* } (i8*)*, i8* }* %"$dyndisp_pcast_982", align 8 + %"$dyndisp_gep_983" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_980", i32 2 + %"$dyndisp_pcast_984" = bitcast { i8*, i8* }* %"$dyndisp_gep_983" to { { { %TName_List_Int64* (i8*, %Int64)*, i8* } (i8*, { i8*, i8* }*)*, i8* } (i8*)*, i8* }* + store { { { %TName_List_Int64* (i8*, %Int64)*, i8* } (i8*, { i8*, i8* }*)*, i8* } (i8*)*, i8* } { { { %TName_List_Int64* (i8*, %Int64)*, i8* } (i8*, { i8*, i8* }*)*, i8* } (i8*)* bitcast ({ { %TName_List_Int64* (i8*, %Int64)*, i8* } (i8*, { i8*, i8* }*)*, i8* } (%"$$fundef_71_env_149"*)* @"$fundef_71" to { { %TName_List_Int64* (i8*, %Int64)*, i8* } (i8*, { i8*, i8* }*)*, i8* } (i8*)*), i8* null }, { { { %TName_List_Int64* (i8*, %Int64)*, i8* } (i8*, { i8*, i8* }*)*, i8* } (i8*)*, i8* }* %"$dyndisp_pcast_984", align 8 + store { i8*, i8* }* %"$dyndisp_table_980", { i8*, i8* }** %t, align 8, !dbg !175 + %"$gasrem_985" = load i64, i64* @_gasrem, align 8 + %"$gascmp_986" = icmp ugt i64 1, %"$gasrem_985" + br i1 %"$gascmp_986", label %"$out_of_gas_987", label %"$have_gas_988" + +"$out_of_gas_987": ; preds = %"$have_gas_972" + call void @_out_of_gas() + br label %"$have_gas_988" + +"$have_gas_988": ; preds = %"$out_of_gas_987", %"$have_gas_972" + %"$consume_989" = sub i64 %"$gasrem_985", 1 + store i64 %"$consume_989", i64* @_gasrem, align 8 %some_bool = 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 - %"$adtval_983_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_983_salloc" = call i8* @_salloc(i8* %"$adtval_983_load", i64 1) - %"$adtval_983" = bitcast i8* %"$adtval_983_salloc" to %CName_False* - %"$adtgep_984" = getelementptr inbounds %CName_False, %CName_False* %"$adtval_983", i32 0, i32 0 - store i8 1, i8* %"$adtgep_984", align 1 - %"$adtptr_985" = bitcast %CName_False* %"$adtval_983" to %TName_Bool* - store %TName_Bool* %"$adtptr_985", %TName_Bool** %some_bool, align 8, !dbg !104 - %"$gasrem_986" = load i64, i64* @_gasrem, align 8 - %"$gascmp_987" = icmp ugt i64 2, %"$gasrem_986" - br i1 %"$gascmp_987", label %"$out_of_gas_988", label %"$have_gas_989" - -"$out_of_gas_988": ; preds = %"$have_gas_981" - call void @_out_of_gas() - br label %"$have_gas_989" - -"$have_gas_989": ; preds = %"$out_of_gas_988", %"$have_gas_981" - %"$consume_990" = sub i64 %"$gasrem_986", 2 - store i64 %"$consume_990", i64* @_gasrem, align 8 - %"$some_bool_992" = load %TName_Bool*, %TName_Bool** %some_bool, align 8 - %"$some_bool_tag_993" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$some_bool_992", i32 0, i32 0 - %"$some_bool_tag_994" = load i8, i8* %"$some_bool_tag_993", align 1 - switch i8 %"$some_bool_tag_994", label %"$empty_default_995" [ - i8 0, label %"$True_996" - i8 1, label %"$False_1085" - ], !dbg !105 - -"$True_996": ; preds = %"$have_gas_989" - %"$some_bool_997" = bitcast %TName_Bool* %"$some_bool_992" to %CName_True* + call void @llvm.dbg.declare(metadata %TName_Bool** %some_bool, metadata !176, metadata !DIExpression()), !dbg !179 + %"$gasrem_990" = load i64, i64* @_gasrem, align 8 + %"$gascmp_991" = icmp ugt i64 1, %"$gasrem_990" + br i1 %"$gascmp_991", label %"$out_of_gas_992", label %"$have_gas_993" + +"$out_of_gas_992": ; preds = %"$have_gas_988" + call void @_out_of_gas() + br label %"$have_gas_993" + +"$have_gas_993": ; preds = %"$out_of_gas_992", %"$have_gas_988" + %"$consume_994" = sub i64 %"$gasrem_990", 1 + store i64 %"$consume_994", i64* @_gasrem, align 8 + %"$adtval_995_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_995_salloc" = call i8* @_salloc(i8* %"$adtval_995_load", i64 1) + %"$adtval_995" = bitcast i8* %"$adtval_995_salloc" to %CName_False* + %"$adtgep_996" = getelementptr inbounds %CName_False, %CName_False* %"$adtval_995", i32 0, i32 0 + store i8 1, i8* %"$adtgep_996", align 1 + %"$adtptr_997" = bitcast %CName_False* %"$adtval_995" to %TName_Bool* + store %TName_Bool* %"$adtptr_997", %TName_Bool** %some_bool, align 8, !dbg !180 %"$gasrem_998" = load i64, i64* @_gasrem, align 8 - %"$gascmp_999" = icmp ugt i64 1, %"$gasrem_998" + %"$gascmp_999" = icmp ugt i64 2, %"$gasrem_998" br i1 %"$gascmp_999", label %"$out_of_gas_1000", label %"$have_gas_1001" -"$out_of_gas_1000": ; preds = %"$True_996" +"$out_of_gas_1000": ; preds = %"$have_gas_993" call void @_out_of_gas() br label %"$have_gas_1001" -"$have_gas_1001": ; preds = %"$out_of_gas_1000", %"$True_996" - %"$consume_1002" = sub i64 %"$gasrem_998", 1 +"$have_gas_1001": ; preds = %"$out_of_gas_1000", %"$have_gas_993" + %"$consume_1002" = sub i64 %"$gasrem_998", 2 store i64 %"$consume_1002", i64* @_gasrem, align 8 + %"$some_bool_1004" = load %TName_Bool*, %TName_Bool** %some_bool, align 8 + %"$some_bool_tag_1005" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$some_bool_1004", i32 0, i32 0 + %"$some_bool_tag_1006" = load i8, i8* %"$some_bool_tag_1005", align 1 + switch i8 %"$some_bool_tag_1006", label %"$empty_default_1007" [ + i8 0, label %"$True_1008" + i8 1, label %"$False_1097" + ], !dbg !181 + +"$True_1008": ; preds = %"$have_gas_1001" + %"$some_bool_1009" = bitcast %TName_Bool* %"$some_bool_1004" to %CName_True* + %"$gasrem_1010" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1011" = icmp ugt i64 1, %"$gasrem_1010" + br i1 %"$gascmp_1011", label %"$out_of_gas_1012", label %"$have_gas_1013" + +"$out_of_gas_1012": ; preds = %"$True_1008" + call void @_out_of_gas() + br label %"$have_gas_1013" + +"$have_gas_1013": ; preds = %"$out_of_gas_1012", %"$True_1008" + %"$consume_1014" = sub i64 %"$gasrem_1010", 1 + store i64 %"$consume_1014", i64* @_gasrem, align 8 %f11 = alloca { { %TName_List_Int32* (i8*, %Int32)*, i8* } (i8*, { i8*, i8* }*)*, i8* }, align 8 - %"$gasrem_1003" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1004" = icmp ugt i64 1, %"$gasrem_1003" - br i1 %"$gascmp_1004", label %"$out_of_gas_1005", label %"$have_gas_1006" - -"$out_of_gas_1005": ; preds = %"$have_gas_1001" - call void @_out_of_gas() - br label %"$have_gas_1006" - -"$have_gas_1006": ; preds = %"$out_of_gas_1005", %"$have_gas_1001" - %"$consume_1007" = sub i64 %"$gasrem_1003", 1 - store i64 %"$consume_1007", i64* @_gasrem, align 8 - %"$t_1008" = load { i8*, i8* }*, { i8*, i8* }** %t, align 8 - %"$t_1009" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$t_1008", i32 0 - %"$t_1010" = bitcast { i8*, i8* }* %"$t_1009" to { { { %TName_List_Int32* (i8*, %Int32)*, i8* } (i8*, { i8*, i8* }*)*, i8* } (i8*)*, i8* }* - %"$t_1011" = load { { { %TName_List_Int32* (i8*, %Int32)*, i8* } (i8*, { i8*, i8* }*)*, i8* } (i8*)*, i8* }, { { { %TName_List_Int32* (i8*, %Int32)*, i8* } (i8*, { i8*, i8* }*)*, i8* } (i8*)*, i8* }* %"$t_1010", align 8 - %"$t_fptr_1012" = extractvalue { { { %TName_List_Int32* (i8*, %Int32)*, i8* } (i8*, { i8*, i8* }*)*, i8* } (i8*)*, i8* } %"$t_1011", 0 - %"$t_envptr_1013" = extractvalue { { { %TName_List_Int32* (i8*, %Int32)*, i8* } (i8*, { i8*, i8* }*)*, i8* } (i8*)*, i8* } %"$t_1011", 1 - %"$t_call_1014" = call { { %TName_List_Int32* (i8*, %Int32)*, i8* } (i8*, { i8*, i8* }*)*, i8* } %"$t_fptr_1012"(i8* %"$t_envptr_1013"), !dbg !106 - store { { %TName_List_Int32* (i8*, %Int32)*, i8* } (i8*, { i8*, i8* }*)*, i8* } %"$t_call_1014", { { %TName_List_Int32* (i8*, %Int32)*, i8* } (i8*, { i8*, i8* }*)*, i8* }* %f11, align 8, !dbg !109 %"$gasrem_1015" = load i64, i64* @_gasrem, align 8 %"$gascmp_1016" = icmp ugt i64 1, %"$gasrem_1015" br i1 %"$gascmp_1016", label %"$out_of_gas_1017", label %"$have_gas_1018" -"$out_of_gas_1017": ; preds = %"$have_gas_1006" +"$out_of_gas_1017": ; preds = %"$have_gas_1013" call void @_out_of_gas() br label %"$have_gas_1018" -"$have_gas_1018": ; preds = %"$out_of_gas_1017", %"$have_gas_1006" +"$have_gas_1018": ; preds = %"$out_of_gas_1017", %"$have_gas_1013" %"$consume_1019" = sub i64 %"$gasrem_1015", 1 store i64 %"$consume_1019", i64* @_gasrem, align 8 + %"$t_1020" = load { i8*, i8* }*, { i8*, i8* }** %t, align 8 + %"$t_1021" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$t_1020", i32 0 + %"$t_1022" = bitcast { i8*, i8* }* %"$t_1021" to { { { %TName_List_Int32* (i8*, %Int32)*, i8* } (i8*, { i8*, i8* }*)*, i8* } (i8*)*, i8* }* + %"$t_1023" = load { { { %TName_List_Int32* (i8*, %Int32)*, i8* } (i8*, { i8*, i8* }*)*, i8* } (i8*)*, i8* }, { { { %TName_List_Int32* (i8*, %Int32)*, i8* } (i8*, { i8*, i8* }*)*, i8* } (i8*)*, i8* }* %"$t_1022", align 8 + %"$t_fptr_1024" = extractvalue { { { %TName_List_Int32* (i8*, %Int32)*, i8* } (i8*, { i8*, i8* }*)*, i8* } (i8*)*, i8* } %"$t_1023", 0 + %"$t_envptr_1025" = extractvalue { { { %TName_List_Int32* (i8*, %Int32)*, i8* } (i8*, { i8*, i8* }*)*, i8* } (i8*)*, i8* } %"$t_1023", 1 + %"$t_call_1026" = call { { %TName_List_Int32* (i8*, %Int32)*, i8* } (i8*, { i8*, i8* }*)*, i8* } %"$t_fptr_1024"(i8* %"$t_envptr_1025"), !dbg !182 + store { { %TName_List_Int32* (i8*, %Int32)*, i8* } (i8*, { i8*, i8* }*)*, i8* } %"$t_call_1026", { { %TName_List_Int32* (i8*, %Int32)*, i8* } (i8*, { i8*, i8* }*)*, i8* }* %f11, align 8, !dbg !185 + %"$gasrem_1027" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1028" = icmp ugt i64 1, %"$gasrem_1027" + br i1 %"$gascmp_1028", label %"$out_of_gas_1029", label %"$have_gas_1030" + +"$out_of_gas_1029": ; preds = %"$have_gas_1018" + call void @_out_of_gas() + br label %"$have_gas_1030" + +"$have_gas_1030": ; preds = %"$out_of_gas_1029", %"$have_gas_1018" + %"$consume_1031" = sub i64 %"$gasrem_1027", 1 + store i64 %"$consume_1031", i64* @_gasrem, align 8 %f1 = alloca { %TName_List_Int32* (i8*, %Int32)*, i8* }, 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" + %"$gasrem_1032" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1033" = icmp ugt i64 1, %"$gasrem_1032" + br i1 %"$gascmp_1033", label %"$out_of_gas_1034", label %"$have_gas_1035" -"$out_of_gas_1022": ; preds = %"$have_gas_1018" +"$out_of_gas_1034": ; preds = %"$have_gas_1030" call void @_out_of_gas() - br label %"$have_gas_1023" + br label %"$have_gas_1035" -"$have_gas_1023": ; preds = %"$out_of_gas_1022", %"$have_gas_1018" - %"$consume_1024" = sub i64 %"$gasrem_1020", 1 - store i64 %"$consume_1024", i64* @_gasrem, align 8 +"$have_gas_1035": ; preds = %"$out_of_gas_1034", %"$have_gas_1030" + %"$consume_1036" = sub i64 %"$gasrem_1032", 1 + store i64 %"$consume_1036", i64* @_gasrem, align 8 %"$f11_12" = alloca { %TName_List_Int32* (i8*, %Int32)*, i8* }, align 8 - %"$f11_1025" = load { { %TName_List_Int32* (i8*, %Int32)*, i8* } (i8*, { i8*, i8* }*)*, i8* }, { { %TName_List_Int32* (i8*, %Int32)*, i8* } (i8*, { i8*, i8* }*)*, i8* }* %f11, align 8 - %"$f11_fptr_1026" = extractvalue { { %TName_List_Int32* (i8*, %Int32)*, i8* } (i8*, { i8*, i8* }*)*, i8* } %"$f11_1025", 0 - %"$f11_envptr_1027" = extractvalue { { %TName_List_Int32* (i8*, %Int32)*, i8* } (i8*, { i8*, i8* }*)*, i8* } %"$f11_1025", 1 - %"$t1_1028" = load { i8*, i8* }*, { i8*, i8* }** %t1, align 8 - %"$f11_call_1029" = call { %TName_List_Int32* (i8*, %Int32)*, i8* } %"$f11_fptr_1026"(i8* %"$f11_envptr_1027", { i8*, i8* }* %"$t1_1028"), !dbg !110 - store { %TName_List_Int32* (i8*, %Int32)*, i8* } %"$f11_call_1029", { %TName_List_Int32* (i8*, %Int32)*, i8* }* %"$f11_12", align 8, !dbg !110 - %"$$f11_12_1030" = load { %TName_List_Int32* (i8*, %Int32)*, i8* }, { %TName_List_Int32* (i8*, %Int32)*, i8* }* %"$f11_12", align 8 - store { %TName_List_Int32* (i8*, %Int32)*, i8* } %"$$f11_12_1030", { %TName_List_Int32* (i8*, %Int32)*, i8* }* %f1, align 8, !dbg !110 - %"$gasrem_1031" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1032" = icmp ugt i64 1, %"$gasrem_1031" - br i1 %"$gascmp_1032", label %"$out_of_gas_1033", label %"$have_gas_1034" - -"$out_of_gas_1033": ; preds = %"$have_gas_1023" - call void @_out_of_gas() - br label %"$have_gas_1034" - -"$have_gas_1034": ; preds = %"$out_of_gas_1033", %"$have_gas_1023" - %"$consume_1035" = sub i64 %"$gasrem_1031", 1 - store i64 %"$consume_1035", i64* @_gasrem, align 8 + %"$f11_1037" = load { { %TName_List_Int32* (i8*, %Int32)*, i8* } (i8*, { i8*, i8* }*)*, i8* }, { { %TName_List_Int32* (i8*, %Int32)*, i8* } (i8*, { i8*, i8* }*)*, i8* }* %f11, align 8 + %"$f11_fptr_1038" = extractvalue { { %TName_List_Int32* (i8*, %Int32)*, i8* } (i8*, { i8*, i8* }*)*, i8* } %"$f11_1037", 0 + %"$f11_envptr_1039" = extractvalue { { %TName_List_Int32* (i8*, %Int32)*, i8* } (i8*, { i8*, i8* }*)*, i8* } %"$f11_1037", 1 + %"$t1_1040" = load { i8*, i8* }*, { i8*, i8* }** %t1, align 8 + %"$f11_call_1041" = call { %TName_List_Int32* (i8*, %Int32)*, i8* } %"$f11_fptr_1038"(i8* %"$f11_envptr_1039", { i8*, i8* }* %"$t1_1040"), !dbg !186 + store { %TName_List_Int32* (i8*, %Int32)*, i8* } %"$f11_call_1041", { %TName_List_Int32* (i8*, %Int32)*, i8* }* %"$f11_12", align 8, !dbg !186 + %"$$f11_12_1042" = load { %TName_List_Int32* (i8*, %Int32)*, i8* }, { %TName_List_Int32* (i8*, %Int32)*, i8* }* %"$f11_12", align 8 + store { %TName_List_Int32* (i8*, %Int32)*, i8* } %"$$f11_12_1042", { %TName_List_Int32* (i8*, %Int32)*, i8* }* %f1, align 8, !dbg !186 + %"$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_1035" + call void @_out_of_gas() + br label %"$have_gas_1046" + +"$have_gas_1046": ; preds = %"$out_of_gas_1045", %"$have_gas_1035" + %"$consume_1047" = sub i64 %"$gasrem_1043", 1 + store i64 %"$consume_1047", i64* @_gasrem, align 8 %len = alloca { %Uint32 (i8*, %TName_List_Int32*)*, i8* }, 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_1034" - call void @_out_of_gas() - br label %"$have_gas_1039" - -"$have_gas_1039": ; preds = %"$out_of_gas_1038", %"$have_gas_1034" - %"$consume_1040" = sub i64 %"$gasrem_1036", 1 - store i64 %"$consume_1040", i64* @_gasrem, align 8 - %"$ListUtils.list_length_1041" = load { i8*, i8* }*, { i8*, i8* }** @ListUtils.list_length, align 8 - %"$ListUtils.list_length_1042" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$ListUtils.list_length_1041", i32 0 - %"$ListUtils.list_length_1043" = bitcast { i8*, i8* }* %"$ListUtils.list_length_1042" to { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*)*, i8* }* - %"$ListUtils.list_length_1044" = load { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*)*, i8* }, { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*)*, i8* }* %"$ListUtils.list_length_1043", align 8 - %"$ListUtils.list_length_fptr_1045" = extractvalue { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*)*, i8* } %"$ListUtils.list_length_1044", 0 - %"$ListUtils.list_length_envptr_1046" = extractvalue { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*)*, i8* } %"$ListUtils.list_length_1044", 1 - %"$ListUtils.list_length_call_1047" = call { %Uint32 (i8*, %TName_List_Int32*)*, i8* } %"$ListUtils.list_length_fptr_1045"(i8* %"$ListUtils.list_length_envptr_1046"), !dbg !111 - store { %Uint32 (i8*, %TName_List_Int32*)*, i8* } %"$ListUtils.list_length_call_1047", { %Uint32 (i8*, %TName_List_Int32*)*, i8* }* %len, align 8, !dbg !112 %"$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_1039" +"$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_1039" +"$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 + %"$ListUtils.list_length_1053" = load { i8*, i8* }*, { i8*, i8* }** @ListUtils.list_length, align 8 + %"$ListUtils.list_length_1054" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$ListUtils.list_length_1053", i32 0 + %"$ListUtils.list_length_1055" = bitcast { i8*, i8* }* %"$ListUtils.list_length_1054" to { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*)*, i8* }* + %"$ListUtils.list_length_1056" = load { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*)*, i8* }, { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*)*, i8* }* %"$ListUtils.list_length_1055", align 8 + %"$ListUtils.list_length_fptr_1057" = extractvalue { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*)*, i8* } %"$ListUtils.list_length_1056", 0 + %"$ListUtils.list_length_envptr_1058" = extractvalue { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*)*, i8* } %"$ListUtils.list_length_1056", 1 + %"$ListUtils.list_length_call_1059" = call { %Uint32 (i8*, %TName_List_Int32*)*, i8* } %"$ListUtils.list_length_fptr_1057"(i8* %"$ListUtils.list_length_envptr_1058"), !dbg !187 + store { %Uint32 (i8*, %TName_List_Int32*)*, i8* } %"$ListUtils.list_length_call_1059", { %Uint32 (i8*, %TName_List_Int32*)*, i8* }* %len, align 8, !dbg !188 + %"$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_1062": ; preds = %"$have_gas_1051" + call void @_out_of_gas() + br label %"$have_gas_1063" + +"$have_gas_1063": ; preds = %"$out_of_gas_1062", %"$have_gas_1051" + %"$consume_1064" = sub i64 %"$gasrem_1060", 1 + store i64 %"$consume_1064", i64* @_gasrem, align 8 %one = alloca %Int32, align 8 - %"$gasrem_1053" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1054" = icmp ugt i64 1, %"$gasrem_1053" - br i1 %"$gascmp_1054", label %"$out_of_gas_1055", label %"$have_gas_1056" + call void @llvm.dbg.declare(metadata %Int32* %one, metadata !189, metadata !DIExpression()), !dbg !190 + %"$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_1055": ; preds = %"$have_gas_1051" +"$out_of_gas_1067": ; preds = %"$have_gas_1063" call void @_out_of_gas() - br label %"$have_gas_1056" + br label %"$have_gas_1068" -"$have_gas_1056": ; preds = %"$out_of_gas_1055", %"$have_gas_1051" - %"$consume_1057" = sub i64 %"$gasrem_1053", 1 - store i64 %"$consume_1057", i64* @_gasrem, align 8 - store %Int32 { i32 1 }, %Int32* %one, align 4, !dbg !113 - %"$gasrem_1058" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1059" = icmp ugt i64 1, %"$gasrem_1058" - br i1 %"$gascmp_1059", label %"$out_of_gas_1060", label %"$have_gas_1061" +"$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 + store %Int32 { i32 1 }, %Int32* %one, align 4, !dbg !191 + %"$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_1060": ; preds = %"$have_gas_1056" +"$out_of_gas_1072": ; preds = %"$have_gas_1068" call void @_out_of_gas() - br label %"$have_gas_1061" + br label %"$have_gas_1073" -"$have_gas_1061": ; preds = %"$out_of_gas_1060", %"$have_gas_1056" - %"$consume_1062" = sub i64 %"$gasrem_1058", 1 - store i64 %"$consume_1062", i64* @_gasrem, align 8 +"$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 %f1l = alloca %TName_List_Int32*, align 8 - %"$gasrem_1063" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1064" = icmp ugt i64 1, %"$gasrem_1063" - br i1 %"$gascmp_1064", label %"$out_of_gas_1065", label %"$have_gas_1066" + call void @llvm.dbg.declare(metadata %TName_List_Int32** %f1l, metadata !192, metadata !DIExpression()), !dbg !193 + %"$gasrem_1075" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1076" = icmp ugt i64 1, %"$gasrem_1075" + br i1 %"$gascmp_1076", label %"$out_of_gas_1077", label %"$have_gas_1078" -"$out_of_gas_1065": ; preds = %"$have_gas_1061" +"$out_of_gas_1077": ; preds = %"$have_gas_1073" call void @_out_of_gas() - br label %"$have_gas_1066" + br label %"$have_gas_1078" -"$have_gas_1066": ; preds = %"$out_of_gas_1065", %"$have_gas_1061" - %"$consume_1067" = sub i64 %"$gasrem_1063", 1 - store i64 %"$consume_1067", i64* @_gasrem, align 8 +"$have_gas_1078": ; preds = %"$out_of_gas_1077", %"$have_gas_1073" + %"$consume_1079" = sub i64 %"$gasrem_1075", 1 + store i64 %"$consume_1079", i64* @_gasrem, align 8 %"$f1_13" = alloca %TName_List_Int32*, align 8 - %"$f1_1068" = load { %TName_List_Int32* (i8*, %Int32)*, i8* }, { %TName_List_Int32* (i8*, %Int32)*, i8* }* %f1, align 8 - %"$f1_fptr_1069" = extractvalue { %TName_List_Int32* (i8*, %Int32)*, i8* } %"$f1_1068", 0 - %"$f1_envptr_1070" = extractvalue { %TName_List_Int32* (i8*, %Int32)*, i8* } %"$f1_1068", 1 - %"$one_1071" = load %Int32, %Int32* %one, align 4 - %"$f1_call_1072" = call %TName_List_Int32* %"$f1_fptr_1069"(i8* %"$f1_envptr_1070", %Int32 %"$one_1071"), !dbg !114 - store %TName_List_Int32* %"$f1_call_1072", %TName_List_Int32** %"$f1_13", align 8, !dbg !114 - %"$$f1_13_1073" = load %TName_List_Int32*, %TName_List_Int32** %"$f1_13", align 8 - store %TName_List_Int32* %"$$f1_13_1073", %TName_List_Int32** %f1l, align 8, !dbg !114 - %"$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_1066" - call void @_out_of_gas() - br label %"$have_gas_1077" - -"$have_gas_1077": ; preds = %"$out_of_gas_1076", %"$have_gas_1066" - %"$consume_1078" = sub i64 %"$gasrem_1074", 1 - store i64 %"$consume_1078", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_List_Int32** %"$f1_13", metadata !194, metadata !DIExpression()), !dbg !195 + %"$f1_1080" = load { %TName_List_Int32* (i8*, %Int32)*, i8* }, { %TName_List_Int32* (i8*, %Int32)*, i8* }* %f1, align 8 + %"$f1_fptr_1081" = extractvalue { %TName_List_Int32* (i8*, %Int32)*, i8* } %"$f1_1080", 0 + %"$f1_envptr_1082" = extractvalue { %TName_List_Int32* (i8*, %Int32)*, i8* } %"$f1_1080", 1 + %"$one_1083" = load %Int32, %Int32* %one, align 4 + %"$f1_call_1084" = call %TName_List_Int32* %"$f1_fptr_1081"(i8* %"$f1_envptr_1082", %Int32 %"$one_1083"), !dbg !195 + store %TName_List_Int32* %"$f1_call_1084", %TName_List_Int32** %"$f1_13", align 8, !dbg !195 + %"$$f1_13_1085" = load %TName_List_Int32*, %TName_List_Int32** %"$f1_13", align 8 + store %TName_List_Int32* %"$$f1_13_1085", %TName_List_Int32** %f1l, align 8, !dbg !195 + %"$gasrem_1086" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1087" = icmp ugt i64 1, %"$gasrem_1086" + br i1 %"$gascmp_1087", label %"$out_of_gas_1088", label %"$have_gas_1089" + +"$out_of_gas_1088": ; preds = %"$have_gas_1078" + call void @_out_of_gas() + br label %"$have_gas_1089" + +"$have_gas_1089": ; preds = %"$out_of_gas_1088", %"$have_gas_1078" + %"$consume_1090" = sub i64 %"$gasrem_1086", 1 + store i64 %"$consume_1090", i64* @_gasrem, align 8 %"$len_14" = alloca %Uint32, align 8 - %"$len_1079" = load { %Uint32 (i8*, %TName_List_Int32*)*, i8* }, { %Uint32 (i8*, %TName_List_Int32*)*, i8* }* %len, align 8 - %"$len_fptr_1080" = extractvalue { %Uint32 (i8*, %TName_List_Int32*)*, i8* } %"$len_1079", 0 - %"$len_envptr_1081" = extractvalue { %Uint32 (i8*, %TName_List_Int32*)*, i8* } %"$len_1079", 1 - %"$f1l_1082" = load %TName_List_Int32*, %TName_List_Int32** %f1l, align 8 - %"$len_call_1083" = call %Uint32 %"$len_fptr_1080"(i8* %"$len_envptr_1081", %TName_List_Int32* %"$f1l_1082"), !dbg !115 - store %Uint32 %"$len_call_1083", %Uint32* %"$len_14", align 4, !dbg !115 - %"$$len_14_1084" = load %Uint32, %Uint32* %"$len_14", align 4 - store %Uint32 %"$$len_14_1084", %Uint32* %"$expr_50", align 4, !dbg !115 - br label %"$matchsucc_991" - -"$False_1085": ; preds = %"$have_gas_989" - %"$some_bool_1086" = bitcast %TName_Bool* %"$some_bool_992" to %CName_False* - %"$gasrem_1087" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1088" = icmp ugt i64 1, %"$gasrem_1087" - br i1 %"$gascmp_1088", label %"$out_of_gas_1089", label %"$have_gas_1090" - -"$out_of_gas_1089": ; preds = %"$False_1085" - call void @_out_of_gas() - br label %"$have_gas_1090" - -"$have_gas_1090": ; preds = %"$out_of_gas_1089", %"$False_1085" - %"$consume_1091" = sub i64 %"$gasrem_1087", 1 - store i64 %"$consume_1091", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %Uint32* %"$len_14", metadata !196, metadata !DIExpression()), !dbg !197 + %"$len_1091" = load { %Uint32 (i8*, %TName_List_Int32*)*, i8* }, { %Uint32 (i8*, %TName_List_Int32*)*, i8* }* %len, align 8 + %"$len_fptr_1092" = extractvalue { %Uint32 (i8*, %TName_List_Int32*)*, i8* } %"$len_1091", 0 + %"$len_envptr_1093" = extractvalue { %Uint32 (i8*, %TName_List_Int32*)*, i8* } %"$len_1091", 1 + %"$f1l_1094" = load %TName_List_Int32*, %TName_List_Int32** %f1l, align 8 + %"$len_call_1095" = call %Uint32 %"$len_fptr_1092"(i8* %"$len_envptr_1093", %TName_List_Int32* %"$f1l_1094"), !dbg !197 + store %Uint32 %"$len_call_1095", %Uint32* %"$len_14", align 4, !dbg !197 + %"$$len_14_1096" = load %Uint32, %Uint32* %"$len_14", align 4 + store %Uint32 %"$$len_14_1096", %Uint32* %"$expr_50", align 4, !dbg !197 + br label %"$matchsucc_1003" + +"$False_1097": ; preds = %"$have_gas_1001" + %"$some_bool_1098" = bitcast %TName_Bool* %"$some_bool_1004" to %CName_False* + %"$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" + +"$out_of_gas_1101": ; preds = %"$False_1097" + call void @_out_of_gas() + br label %"$have_gas_1102" + +"$have_gas_1102": ; preds = %"$out_of_gas_1101", %"$False_1097" + %"$consume_1103" = sub i64 %"$gasrem_1099", 1 + store i64 %"$consume_1103", i64* @_gasrem, align 8 %f22 = alloca { { %TName_List_Int64* (i8*, %Int64)*, i8* } (i8*, { i8*, i8* }*)*, i8* }, align 8 - %"$gasrem_1092" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1093" = icmp ugt i64 1, %"$gasrem_1092" - br i1 %"$gascmp_1093", label %"$out_of_gas_1094", label %"$have_gas_1095" - -"$out_of_gas_1094": ; preds = %"$have_gas_1090" - call void @_out_of_gas() - br label %"$have_gas_1095" - -"$have_gas_1095": ; preds = %"$out_of_gas_1094", %"$have_gas_1090" - %"$consume_1096" = sub i64 %"$gasrem_1092", 1 - store i64 %"$consume_1096", i64* @_gasrem, align 8 - %"$t_1097" = load { i8*, i8* }*, { i8*, i8* }** %t, align 8 - %"$t_1098" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$t_1097", i32 2 - %"$t_1099" = bitcast { i8*, i8* }* %"$t_1098" to { { { %TName_List_Int64* (i8*, %Int64)*, i8* } (i8*, { i8*, i8* }*)*, i8* } (i8*)*, i8* }* - %"$t_1100" = load { { { %TName_List_Int64* (i8*, %Int64)*, i8* } (i8*, { i8*, i8* }*)*, i8* } (i8*)*, i8* }, { { { %TName_List_Int64* (i8*, %Int64)*, i8* } (i8*, { i8*, i8* }*)*, i8* } (i8*)*, i8* }* %"$t_1099", align 8 - %"$t_fptr_1101" = extractvalue { { { %TName_List_Int64* (i8*, %Int64)*, i8* } (i8*, { i8*, i8* }*)*, i8* } (i8*)*, i8* } %"$t_1100", 0 - %"$t_envptr_1102" = extractvalue { { { %TName_List_Int64* (i8*, %Int64)*, i8* } (i8*, { i8*, i8* }*)*, i8* } (i8*)*, i8* } %"$t_1100", 1 - %"$t_call_1103" = call { { %TName_List_Int64* (i8*, %Int64)*, i8* } (i8*, { i8*, i8* }*)*, i8* } %"$t_fptr_1101"(i8* %"$t_envptr_1102"), !dbg !116 - store { { %TName_List_Int64* (i8*, %Int64)*, i8* } (i8*, { i8*, i8* }*)*, i8* } %"$t_call_1103", { { %TName_List_Int64* (i8*, %Int64)*, i8* } (i8*, { i8*, i8* }*)*, i8* }* %f22, align 8, !dbg !118 %"$gasrem_1104" = load i64, i64* @_gasrem, align 8 %"$gascmp_1105" = icmp ugt i64 1, %"$gasrem_1104" br i1 %"$gascmp_1105", label %"$out_of_gas_1106", label %"$have_gas_1107" -"$out_of_gas_1106": ; preds = %"$have_gas_1095" +"$out_of_gas_1106": ; preds = %"$have_gas_1102" call void @_out_of_gas() br label %"$have_gas_1107" -"$have_gas_1107": ; preds = %"$out_of_gas_1106", %"$have_gas_1095" +"$have_gas_1107": ; preds = %"$out_of_gas_1106", %"$have_gas_1102" %"$consume_1108" = sub i64 %"$gasrem_1104", 1 store i64 %"$consume_1108", i64* @_gasrem, align 8 + %"$t_1109" = load { i8*, i8* }*, { i8*, i8* }** %t, align 8 + %"$t_1110" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$t_1109", i32 2 + %"$t_1111" = bitcast { i8*, i8* }* %"$t_1110" to { { { %TName_List_Int64* (i8*, %Int64)*, i8* } (i8*, { i8*, i8* }*)*, i8* } (i8*)*, i8* }* + %"$t_1112" = load { { { %TName_List_Int64* (i8*, %Int64)*, i8* } (i8*, { i8*, i8* }*)*, i8* } (i8*)*, i8* }, { { { %TName_List_Int64* (i8*, %Int64)*, i8* } (i8*, { i8*, i8* }*)*, i8* } (i8*)*, i8* }* %"$t_1111", align 8 + %"$t_fptr_1113" = extractvalue { { { %TName_List_Int64* (i8*, %Int64)*, i8* } (i8*, { i8*, i8* }*)*, i8* } (i8*)*, i8* } %"$t_1112", 0 + %"$t_envptr_1114" = extractvalue { { { %TName_List_Int64* (i8*, %Int64)*, i8* } (i8*, { i8*, i8* }*)*, i8* } (i8*)*, i8* } %"$t_1112", 1 + %"$t_call_1115" = call { { %TName_List_Int64* (i8*, %Int64)*, i8* } (i8*, { i8*, i8* }*)*, i8* } %"$t_fptr_1113"(i8* %"$t_envptr_1114"), !dbg !198 + store { { %TName_List_Int64* (i8*, %Int64)*, i8* } (i8*, { i8*, i8* }*)*, i8* } %"$t_call_1115", { { %TName_List_Int64* (i8*, %Int64)*, i8* } (i8*, { i8*, i8* }*)*, i8* }* %f22, align 8, !dbg !200 + %"$gasrem_1116" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1117" = icmp ugt i64 1, %"$gasrem_1116" + br i1 %"$gascmp_1117", label %"$out_of_gas_1118", label %"$have_gas_1119" + +"$out_of_gas_1118": ; preds = %"$have_gas_1107" + call void @_out_of_gas() + br label %"$have_gas_1119" + +"$have_gas_1119": ; preds = %"$out_of_gas_1118", %"$have_gas_1107" + %"$consume_1120" = sub i64 %"$gasrem_1116", 1 + store i64 %"$consume_1120", i64* @_gasrem, align 8 %f2 = alloca { %TName_List_Int64* (i8*, %Int64)*, i8* }, align 8 - %"$gasrem_1109" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1110" = icmp ugt i64 1, %"$gasrem_1109" - br i1 %"$gascmp_1110", label %"$out_of_gas_1111", label %"$have_gas_1112" + %"$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_1111": ; preds = %"$have_gas_1107" +"$out_of_gas_1123": ; preds = %"$have_gas_1119" call void @_out_of_gas() - br label %"$have_gas_1112" + br label %"$have_gas_1124" -"$have_gas_1112": ; preds = %"$out_of_gas_1111", %"$have_gas_1107" - %"$consume_1113" = sub i64 %"$gasrem_1109", 1 - store i64 %"$consume_1113", i64* @_gasrem, align 8 +"$have_gas_1124": ; preds = %"$out_of_gas_1123", %"$have_gas_1119" + %"$consume_1125" = sub i64 %"$gasrem_1121", 1 + store i64 %"$consume_1125", i64* @_gasrem, align 8 %"$f22_15" = alloca { %TName_List_Int64* (i8*, %Int64)*, i8* }, align 8 - %"$f22_1114" = load { { %TName_List_Int64* (i8*, %Int64)*, i8* } (i8*, { i8*, i8* }*)*, i8* }, { { %TName_List_Int64* (i8*, %Int64)*, i8* } (i8*, { i8*, i8* }*)*, i8* }* %f22, align 8 - %"$f22_fptr_1115" = extractvalue { { %TName_List_Int64* (i8*, %Int64)*, i8* } (i8*, { i8*, i8* }*)*, i8* } %"$f22_1114", 0 - %"$f22_envptr_1116" = extractvalue { { %TName_List_Int64* (i8*, %Int64)*, i8* } (i8*, { i8*, i8* }*)*, i8* } %"$f22_1114", 1 - %"$t2_1117" = load { i8*, i8* }*, { i8*, i8* }** %t2, align 8 - %"$f22_call_1118" = call { %TName_List_Int64* (i8*, %Int64)*, i8* } %"$f22_fptr_1115"(i8* %"$f22_envptr_1116", { i8*, i8* }* %"$t2_1117"), !dbg !119 - store { %TName_List_Int64* (i8*, %Int64)*, i8* } %"$f22_call_1118", { %TName_List_Int64* (i8*, %Int64)*, i8* }* %"$f22_15", align 8, !dbg !119 - %"$$f22_15_1119" = load { %TName_List_Int64* (i8*, %Int64)*, i8* }, { %TName_List_Int64* (i8*, %Int64)*, i8* }* %"$f22_15", align 8 - store { %TName_List_Int64* (i8*, %Int64)*, i8* } %"$$f22_15_1119", { %TName_List_Int64* (i8*, %Int64)*, i8* }* %f2, align 8, !dbg !119 - %"$gasrem_1120" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1121" = icmp ugt i64 1, %"$gasrem_1120" - br i1 %"$gascmp_1121", label %"$out_of_gas_1122", label %"$have_gas_1123" - -"$out_of_gas_1122": ; preds = %"$have_gas_1112" - call void @_out_of_gas() - br label %"$have_gas_1123" - -"$have_gas_1123": ; preds = %"$out_of_gas_1122", %"$have_gas_1112" - %"$consume_1124" = sub i64 %"$gasrem_1120", 1 - store i64 %"$consume_1124", i64* @_gasrem, align 8 + %"$f22_1126" = load { { %TName_List_Int64* (i8*, %Int64)*, i8* } (i8*, { i8*, i8* }*)*, i8* }, { { %TName_List_Int64* (i8*, %Int64)*, i8* } (i8*, { i8*, i8* }*)*, i8* }* %f22, align 8 + %"$f22_fptr_1127" = extractvalue { { %TName_List_Int64* (i8*, %Int64)*, i8* } (i8*, { i8*, i8* }*)*, i8* } %"$f22_1126", 0 + %"$f22_envptr_1128" = extractvalue { { %TName_List_Int64* (i8*, %Int64)*, i8* } (i8*, { i8*, i8* }*)*, i8* } %"$f22_1126", 1 + %"$t2_1129" = load { i8*, i8* }*, { i8*, i8* }** %t2, align 8 + %"$f22_call_1130" = call { %TName_List_Int64* (i8*, %Int64)*, i8* } %"$f22_fptr_1127"(i8* %"$f22_envptr_1128", { i8*, i8* }* %"$t2_1129"), !dbg !201 + store { %TName_List_Int64* (i8*, %Int64)*, i8* } %"$f22_call_1130", { %TName_List_Int64* (i8*, %Int64)*, i8* }* %"$f22_15", align 8, !dbg !201 + %"$$f22_15_1131" = load { %TName_List_Int64* (i8*, %Int64)*, i8* }, { %TName_List_Int64* (i8*, %Int64)*, i8* }* %"$f22_15", align 8 + store { %TName_List_Int64* (i8*, %Int64)*, i8* } %"$$f22_15_1131", { %TName_List_Int64* (i8*, %Int64)*, i8* }* %f2, align 8, !dbg !201 + %"$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 = %"$have_gas_1124" + call void @_out_of_gas() + br label %"$have_gas_1135" + +"$have_gas_1135": ; preds = %"$out_of_gas_1134", %"$have_gas_1124" + %"$consume_1136" = sub i64 %"$gasrem_1132", 1 + store i64 %"$consume_1136", i64* @_gasrem, align 8 %len1 = alloca { %Uint32 (i8*, %TName_List_Int64*)*, i8* }, align 8 - %"$gasrem_1125" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1126" = icmp ugt i64 1, %"$gasrem_1125" - br i1 %"$gascmp_1126", label %"$out_of_gas_1127", label %"$have_gas_1128" - -"$out_of_gas_1127": ; preds = %"$have_gas_1123" - call void @_out_of_gas() - br label %"$have_gas_1128" - -"$have_gas_1128": ; preds = %"$out_of_gas_1127", %"$have_gas_1123" - %"$consume_1129" = sub i64 %"$gasrem_1125", 1 - store i64 %"$consume_1129", i64* @_gasrem, align 8 - %"$ListUtils.list_length_1130" = load { i8*, i8* }*, { i8*, i8* }** @ListUtils.list_length, align 8 - %"$ListUtils.list_length_1131" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$ListUtils.list_length_1130", i32 2 - %"$ListUtils.list_length_1132" = bitcast { i8*, i8* }* %"$ListUtils.list_length_1131" to { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*)*, i8* }* - %"$ListUtils.list_length_1133" = load { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*)*, i8* }, { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*)*, i8* }* %"$ListUtils.list_length_1132", align 8 - %"$ListUtils.list_length_fptr_1134" = extractvalue { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*)*, i8* } %"$ListUtils.list_length_1133", 0 - %"$ListUtils.list_length_envptr_1135" = extractvalue { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*)*, i8* } %"$ListUtils.list_length_1133", 1 - %"$ListUtils.list_length_call_1136" = call { %Uint32 (i8*, %TName_List_Int64*)*, i8* } %"$ListUtils.list_length_fptr_1134"(i8* %"$ListUtils.list_length_envptr_1135"), !dbg !120 - store { %Uint32 (i8*, %TName_List_Int64*)*, i8* } %"$ListUtils.list_length_call_1136", { %Uint32 (i8*, %TName_List_Int64*)*, i8* }* %len1, align 8, !dbg !121 %"$gasrem_1137" = load i64, i64* @_gasrem, align 8 %"$gascmp_1138" = icmp ugt i64 1, %"$gasrem_1137" br i1 %"$gascmp_1138", label %"$out_of_gas_1139", label %"$have_gas_1140" -"$out_of_gas_1139": ; preds = %"$have_gas_1128" +"$out_of_gas_1139": ; preds = %"$have_gas_1135" call void @_out_of_gas() br label %"$have_gas_1140" -"$have_gas_1140": ; preds = %"$out_of_gas_1139", %"$have_gas_1128" +"$have_gas_1140": ; preds = %"$out_of_gas_1139", %"$have_gas_1135" %"$consume_1141" = sub i64 %"$gasrem_1137", 1 store i64 %"$consume_1141", i64* @_gasrem, align 8 + %"$ListUtils.list_length_1142" = load { i8*, i8* }*, { i8*, i8* }** @ListUtils.list_length, align 8 + %"$ListUtils.list_length_1143" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$ListUtils.list_length_1142", i32 2 + %"$ListUtils.list_length_1144" = bitcast { i8*, i8* }* %"$ListUtils.list_length_1143" to { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*)*, i8* }* + %"$ListUtils.list_length_1145" = load { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*)*, i8* }, { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*)*, i8* }* %"$ListUtils.list_length_1144", align 8 + %"$ListUtils.list_length_fptr_1146" = extractvalue { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*)*, i8* } %"$ListUtils.list_length_1145", 0 + %"$ListUtils.list_length_envptr_1147" = extractvalue { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*)*, i8* } %"$ListUtils.list_length_1145", 1 + %"$ListUtils.list_length_call_1148" = call { %Uint32 (i8*, %TName_List_Int64*)*, i8* } %"$ListUtils.list_length_fptr_1146"(i8* %"$ListUtils.list_length_envptr_1147"), !dbg !202 + store { %Uint32 (i8*, %TName_List_Int64*)*, i8* } %"$ListUtils.list_length_call_1148", { %Uint32 (i8*, %TName_List_Int64*)*, i8* }* %len1, align 8, !dbg !203 + %"$gasrem_1149" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1150" = icmp ugt i64 1, %"$gasrem_1149" + br i1 %"$gascmp_1150", label %"$out_of_gas_1151", label %"$have_gas_1152" + +"$out_of_gas_1151": ; preds = %"$have_gas_1140" + call void @_out_of_gas() + br label %"$have_gas_1152" + +"$have_gas_1152": ; preds = %"$out_of_gas_1151", %"$have_gas_1140" + %"$consume_1153" = sub i64 %"$gasrem_1149", 1 + store i64 %"$consume_1153", i64* @_gasrem, align 8 %one2 = alloca %Int64, 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" + call void @llvm.dbg.declare(metadata %Int64* %one2, metadata !204, metadata !DIExpression()), !dbg !205 + %"$gasrem_1154" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1155" = icmp ugt i64 1, %"$gasrem_1154" + br i1 %"$gascmp_1155", label %"$out_of_gas_1156", label %"$have_gas_1157" -"$out_of_gas_1144": ; preds = %"$have_gas_1140" +"$out_of_gas_1156": ; preds = %"$have_gas_1152" call void @_out_of_gas() - br label %"$have_gas_1145" + br label %"$have_gas_1157" -"$have_gas_1145": ; preds = %"$out_of_gas_1144", %"$have_gas_1140" - %"$consume_1146" = sub i64 %"$gasrem_1142", 1 - store i64 %"$consume_1146", i64* @_gasrem, align 8 - store %Int64 { i64 1 }, %Int64* %one2, align 8, !dbg !122 - %"$gasrem_1147" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1148" = icmp ugt i64 1, %"$gasrem_1147" - br i1 %"$gascmp_1148", label %"$out_of_gas_1149", label %"$have_gas_1150" +"$have_gas_1157": ; preds = %"$out_of_gas_1156", %"$have_gas_1152" + %"$consume_1158" = sub i64 %"$gasrem_1154", 1 + store i64 %"$consume_1158", i64* @_gasrem, align 8 + store %Int64 { i64 1 }, %Int64* %one2, align 8, !dbg !206 + %"$gasrem_1159" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1160" = icmp ugt i64 1, %"$gasrem_1159" + br i1 %"$gascmp_1160", label %"$out_of_gas_1161", label %"$have_gas_1162" -"$out_of_gas_1149": ; preds = %"$have_gas_1145" +"$out_of_gas_1161": ; preds = %"$have_gas_1157" call void @_out_of_gas() - br label %"$have_gas_1150" + br label %"$have_gas_1162" -"$have_gas_1150": ; preds = %"$out_of_gas_1149", %"$have_gas_1145" - %"$consume_1151" = sub i64 %"$gasrem_1147", 1 - store i64 %"$consume_1151", i64* @_gasrem, align 8 +"$have_gas_1162": ; preds = %"$out_of_gas_1161", %"$have_gas_1157" + %"$consume_1163" = sub i64 %"$gasrem_1159", 1 + store i64 %"$consume_1163", i64* @_gasrem, align 8 %f2l = alloca %TName_List_Int64*, align 8 - %"$gasrem_1152" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1153" = icmp ugt i64 1, %"$gasrem_1152" - br i1 %"$gascmp_1153", label %"$out_of_gas_1154", label %"$have_gas_1155" + call void @llvm.dbg.declare(metadata %TName_List_Int64** %f2l, metadata !207, metadata !DIExpression()), !dbg !208 + %"$gasrem_1164" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1165" = icmp ugt i64 1, %"$gasrem_1164" + br i1 %"$gascmp_1165", label %"$out_of_gas_1166", label %"$have_gas_1167" -"$out_of_gas_1154": ; preds = %"$have_gas_1150" +"$out_of_gas_1166": ; preds = %"$have_gas_1162" call void @_out_of_gas() - br label %"$have_gas_1155" + br label %"$have_gas_1167" -"$have_gas_1155": ; preds = %"$out_of_gas_1154", %"$have_gas_1150" - %"$consume_1156" = sub i64 %"$gasrem_1152", 1 - store i64 %"$consume_1156", i64* @_gasrem, align 8 +"$have_gas_1167": ; preds = %"$out_of_gas_1166", %"$have_gas_1162" + %"$consume_1168" = sub i64 %"$gasrem_1164", 1 + store i64 %"$consume_1168", i64* @_gasrem, align 8 %"$f2_16" = alloca %TName_List_Int64*, align 8 - %"$f2_1157" = load { %TName_List_Int64* (i8*, %Int64)*, i8* }, { %TName_List_Int64* (i8*, %Int64)*, i8* }* %f2, align 8 - %"$f2_fptr_1158" = extractvalue { %TName_List_Int64* (i8*, %Int64)*, i8* } %"$f2_1157", 0 - %"$f2_envptr_1159" = extractvalue { %TName_List_Int64* (i8*, %Int64)*, i8* } %"$f2_1157", 1 - %"$one_1160" = load %Int64, %Int64* %one2, align 8 - %"$f2_call_1161" = call %TName_List_Int64* %"$f2_fptr_1158"(i8* %"$f2_envptr_1159", %Int64 %"$one_1160"), !dbg !123 - store %TName_List_Int64* %"$f2_call_1161", %TName_List_Int64** %"$f2_16", align 8, !dbg !123 - %"$$f2_16_1162" = load %TName_List_Int64*, %TName_List_Int64** %"$f2_16", align 8 - store %TName_List_Int64* %"$$f2_16_1162", %TName_List_Int64** %f2l, align 8, !dbg !123 - %"$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_1165": ; preds = %"$have_gas_1155" - call void @_out_of_gas() - br label %"$have_gas_1166" - -"$have_gas_1166": ; preds = %"$out_of_gas_1165", %"$have_gas_1155" - %"$consume_1167" = sub i64 %"$gasrem_1163", 1 - store i64 %"$consume_1167", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_List_Int64** %"$f2_16", metadata !209, metadata !DIExpression()), !dbg !210 + %"$f2_1169" = load { %TName_List_Int64* (i8*, %Int64)*, i8* }, { %TName_List_Int64* (i8*, %Int64)*, i8* }* %f2, align 8 + %"$f2_fptr_1170" = extractvalue { %TName_List_Int64* (i8*, %Int64)*, i8* } %"$f2_1169", 0 + %"$f2_envptr_1171" = extractvalue { %TName_List_Int64* (i8*, %Int64)*, i8* } %"$f2_1169", 1 + %"$one_1172" = load %Int64, %Int64* %one2, align 8 + %"$f2_call_1173" = call %TName_List_Int64* %"$f2_fptr_1170"(i8* %"$f2_envptr_1171", %Int64 %"$one_1172"), !dbg !210 + store %TName_List_Int64* %"$f2_call_1173", %TName_List_Int64** %"$f2_16", align 8, !dbg !210 + %"$$f2_16_1174" = load %TName_List_Int64*, %TName_List_Int64** %"$f2_16", align 8 + store %TName_List_Int64* %"$$f2_16_1174", %TName_List_Int64** %f2l, align 8, !dbg !210 + %"$gasrem_1175" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1176" = icmp ugt i64 1, %"$gasrem_1175" + br i1 %"$gascmp_1176", label %"$out_of_gas_1177", label %"$have_gas_1178" + +"$out_of_gas_1177": ; preds = %"$have_gas_1167" + call void @_out_of_gas() + br label %"$have_gas_1178" + +"$have_gas_1178": ; preds = %"$out_of_gas_1177", %"$have_gas_1167" + %"$consume_1179" = sub i64 %"$gasrem_1175", 1 + store i64 %"$consume_1179", i64* @_gasrem, align 8 %"$len_17" = alloca %Uint32, align 8 - %"$len_1168" = load { %Uint32 (i8*, %TName_List_Int64*)*, i8* }, { %Uint32 (i8*, %TName_List_Int64*)*, i8* }* %len1, align 8 - %"$len_fptr_1169" = extractvalue { %Uint32 (i8*, %TName_List_Int64*)*, i8* } %"$len_1168", 0 - %"$len_envptr_1170" = extractvalue { %Uint32 (i8*, %TName_List_Int64*)*, i8* } %"$len_1168", 1 - %"$f2l_1171" = load %TName_List_Int64*, %TName_List_Int64** %f2l, align 8 - %"$len_call_1172" = call %Uint32 %"$len_fptr_1169"(i8* %"$len_envptr_1170", %TName_List_Int64* %"$f2l_1171"), !dbg !124 - store %Uint32 %"$len_call_1172", %Uint32* %"$len_17", align 4, !dbg !124 - %"$$len_17_1173" = load %Uint32, %Uint32* %"$len_17", align 4 - store %Uint32 %"$$len_17_1173", %Uint32* %"$expr_50", align 4, !dbg !124 - br label %"$matchsucc_991" - -"$empty_default_995": ; preds = %"$have_gas_989" - br label %"$matchsucc_991" - -"$matchsucc_991": ; preds = %"$have_gas_1166", %"$have_gas_1077", %"$empty_default_995" - %"$$expr_50_1174" = load %Uint32, %Uint32* %"$expr_50", align 4 - ret %Uint32 %"$$expr_50_1174" + call void @llvm.dbg.declare(metadata %Uint32* %"$len_17", metadata !211, metadata !DIExpression()), !dbg !212 + %"$len_1180" = load { %Uint32 (i8*, %TName_List_Int64*)*, i8* }, { %Uint32 (i8*, %TName_List_Int64*)*, i8* }* %len1, align 8 + %"$len_fptr_1181" = extractvalue { %Uint32 (i8*, %TName_List_Int64*)*, i8* } %"$len_1180", 0 + %"$len_envptr_1182" = extractvalue { %Uint32 (i8*, %TName_List_Int64*)*, i8* } %"$len_1180", 1 + %"$f2l_1183" = load %TName_List_Int64*, %TName_List_Int64** %f2l, align 8 + %"$len_call_1184" = call %Uint32 %"$len_fptr_1181"(i8* %"$len_envptr_1182", %TName_List_Int64* %"$f2l_1183"), !dbg !212 + store %Uint32 %"$len_call_1184", %Uint32* %"$len_17", align 4, !dbg !212 + %"$$len_17_1185" = load %Uint32, %Uint32* %"$len_17", align 4 + store %Uint32 %"$$len_17_1185", %Uint32* %"$expr_50", align 4, !dbg !212 + br label %"$matchsucc_1003" + +"$empty_default_1007": ; preds = %"$have_gas_1001" + br label %"$matchsucc_1003" + +"$matchsucc_1003": ; preds = %"$have_gas_1178", %"$have_gas_1089", %"$empty_default_1007" + %"$$expr_50_1186" = load %Uint32, %Uint32* %"$expr_50", align 4 + ret %Uint32 %"$$expr_50_1186" } declare void @_print_scilla_val(i8*, %_TyDescrTy_Typ*, i8*) define void @scilla_main() { entry: - %"$exprval_1175" = call %Uint32 @_scilla_expr_fun(i8* null) - %"$pval_1176" = alloca %Uint32, align 8 - %"$memvoidcast_1177" = bitcast %Uint32* %"$pval_1176" to i8* - store %Uint32 %"$exprval_1175", %Uint32* %"$pval_1176", align 4 - %"$execptr_load_1178" = load i8*, i8** @_execptr, align 8 - call void @_print_scilla_val(i8* %"$execptr_load_1178", %_TyDescrTy_Typ* @"$TyDescr_Uint32_79", i8* %"$memvoidcast_1177") + %"$exprval_1187" = call %Uint32 @_scilla_expr_fun(i8* null) + %"$pval_1188" = alloca %Uint32, align 8 + %"$memvoidcast_1189" = bitcast %Uint32* %"$pval_1188" to i8* + store %Uint32 %"$exprval_1187", %Uint32* %"$pval_1188", align 4 + %"$execptr_load_1190" = load i8*, i8** @_execptr, align 8 + call void @_print_scilla_val(i8* %"$execptr_load_1190", %_TyDescrTy_Typ* @"$TyDescr_Uint32_79", i8* %"$memvoidcast_1189") ret void } +attributes #0 = { nocallback nofree nosync nounwind readnone speculatable willreturn } + !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) +!1 = distinct !DICompileUnit(language: DW_LANG_C89, file: !2, producer: "Scilla Compiler", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false) !2 = !DIFile(filename: "fun-type-inst.scilexp", directory: "codegen/expr") -!3 = !{} -!4 = distinct !DISubprogram(name: "$fundef_73", linkageName: "$fundef_73", scope: !2, file: !2, line: 19, type: !5, scopeLine: 19, 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: 19, column: 6, scope: !4) -!9 = !DILocation(line: 19, column: 5, scope: !4) -!10 = distinct !DISubprogram(name: "$fundef_71", linkageName: "$fundef_71", scope: !2, file: !2, line: 19, type: !5, scopeLine: 19, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!3 = distinct !DISubprogram(name: "$fundef_73", linkageName: "$fundef_73", scope: !2, file: !2, line: 19, type: !4, scopeLine: 19, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!4 = !DISubroutineType(types: !5) +!5 = !{!6} +!6 = !DIBasicType(tag: DW_TAG_unspecified_type, name: "void") +!7 = !{} +!8 = !DILocation(line: 19, column: 6, scope: !3) +!9 = !DILocation(line: 19, column: 5, scope: !3) +!10 = distinct !DISubprogram(name: "$fundef_71", linkageName: "$fundef_71", scope: !2, file: !2, line: 19, type: !4, scopeLine: 19, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) !11 = !DILocation(line: 19, column: 5, scope: !10) -!12 = distinct !DISubprogram(name: "$fundef_69", linkageName: "$fundef_69", scope: !2, file: !2, line: 19, type: !5, scopeLine: 19, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!12 = distinct !DISubprogram(name: "$fundef_69", linkageName: "$fundef_69", scope: !2, file: !2, line: 19, type: !4, scopeLine: 19, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) !13 = !DILocation(line: 19, column: 6, scope: !12) !14 = !DILocation(line: 19, column: 5, scope: !12) -!15 = distinct !DISubprogram(name: "$fundef_67", linkageName: "$fundef_67", scope: !2, file: !2, line: 19, type: !5, scopeLine: 19, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!15 = distinct !DISubprogram(name: "$fundef_67", linkageName: "$fundef_67", scope: !2, file: !2, line: 19, type: !4, scopeLine: 19, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) !16 = !DILocation(line: 19, column: 5, scope: !15) -!17 = distinct !DISubprogram(name: "$fundef_65", linkageName: "$fundef_65", scope: !2, file: !2, line: 11, type: !5, scopeLine: 11, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!18 = !DILocation(line: 11, column: 14, scope: !17) -!19 = !DILocation(line: 12, column: 14, scope: !17) -!20 = !DILocation(line: 13, column: 5, scope: !17) -!21 = distinct !DISubprogram(name: "$fundef_63", linkageName: "$fundef_63", scope: !2, file: !2, line: 11, type: !5, scopeLine: 11, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!22 = !DILocation(line: 11, column: 5, scope: !21) -!23 = distinct !DISubprogram(name: "$fundef_61", linkageName: "$fundef_61", scope: !2, file: !2, line: 11, type: !5, scopeLine: 11, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!24 = !DILocation(line: 11, column: 14, scope: !23) -!25 = !DILocation(line: 12, column: 14, scope: !23) -!26 = !DILocation(line: 13, column: 5, scope: !23) -!27 = distinct !DISubprogram(name: "$fundef_59", linkageName: "$fundef_59", scope: !2, file: !2, line: 11, type: !5, scopeLine: 11, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!28 = !DILocation(line: 11, column: 5, scope: !27) -!29 = distinct !DISubprogram(name: "$fundef_57", linkageName: "$fundef_57", scope: !2, file: !2, line: 4, type: !5, scopeLine: 4, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!30 = !DILocation(line: 4, column: 14, scope: !29) -!31 = !DILocation(line: 5, column: 5, scope: !29) -!32 = distinct !DISubprogram(name: "$fundef_55", linkageName: "$fundef_55", 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_53", linkageName: "$fundef_53", scope: !2, file: !2, line: 4, type: !5, scopeLine: 4, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!35 = !DILocation(line: 4, column: 14, scope: !34) -!36 = !DILocation(line: 5, column: 5, scope: !34) -!37 = 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) -!38 = !DILocation(line: 4, column: 5, scope: !37) -!39 = distinct !DISubprogram(name: "$fundef_48", linkageName: "$fundef_48", scope: !40, file: !40, line: 104, type: !5, scopeLine: 104, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!40 = !DIFile(filename: "ListUtils.scillib", directory: "../src/stdlib") -!41 = !DILocation(line: 104, column: 5, scope: !39) -!42 = distinct !DISubprogram(name: "$fundef_46", linkageName: "$fundef_46", scope: !40, file: !40, line: 103, type: !5, scopeLine: 103, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!43 = !DILocation(line: 104, column: 5, scope: !42) -!44 = distinct !DISubprogram(name: "$fundef_44", linkageName: "$fundef_44", scope: !40, file: !40, line: 101, type: !5, scopeLine: 101, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!45 = !DILocation(line: 101, column: 16, scope: !44) -!46 = !DILocation(line: 101, column: 15, scope: !44) -!47 = !DILocation(line: 102, column: 13, scope: !44) -!48 = !DILocation(line: 103, column: 34, scope: !44) -!49 = !DILocation(line: 105, column: 14, scope: !44) -!50 = !DILocation(line: 106, column: 3, scope: !44) -!51 = distinct !DISubprogram(name: "$fundef_42", linkageName: "$fundef_42", scope: !40, file: !40, line: 104, type: !5, scopeLine: 104, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!52 = !DILocation(line: 104, column: 5, scope: !51) -!53 = distinct !DISubprogram(name: "$fundef_40", linkageName: "$fundef_40", scope: !40, file: !40, line: 103, type: !5, scopeLine: 103, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!54 = !DILocation(line: 104, column: 5, scope: !53) -!55 = distinct !DISubprogram(name: "$fundef_38", linkageName: "$fundef_38", scope: !40, file: !40, line: 101, type: !5, scopeLine: 101, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!56 = !DILocation(line: 101, column: 16, scope: !55) -!57 = !DILocation(line: 101, column: 15, scope: !55) -!58 = !DILocation(line: 102, column: 13, scope: !55) -!59 = !DILocation(line: 103, column: 34, scope: !55) -!60 = !DILocation(line: 105, column: 14, scope: !55) -!61 = !DILocation(line: 106, column: 3, scope: !55) -!62 = distinct !DISubprogram(name: "$fundef_36", linkageName: "$fundef_36", scope: !63, file: !63, line: 1, type: !5, scopeLine: 1, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!63 = !DIFile(filename: "Prelude", directory: ".") -!64 = !DILocation(line: 1, column: 37, scope: !62) -!65 = !DILocation(line: 1, column: 74, scope: !66) -!66 = distinct !DILexicalBlock(scope: !67, file: !63, line: 1, column: 52) -!67 = distinct !DILexicalBlock(scope: !62, file: !63, line: 1, column: 37) -!68 = !DILocation(line: 1, column: 83, scope: !66) -!69 = !DILocation(line: 1, column: 100, scope: !70) -!70 = distinct !DILexicalBlock(scope: !67, file: !63, line: 1, column: 93) -!71 = distinct !DISubprogram(name: "$fundef_34", linkageName: "$fundef_34", scope: !63, file: !63, line: 1, type: !5, scopeLine: 1, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!72 = !DILocation(line: 1, column: 37, scope: !71) -!73 = distinct !DISubprogram(name: "$fundef_32", linkageName: "$fundef_32", scope: !63, file: !63, line: 1, type: !5, scopeLine: 1, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!74 = !DILocation(line: 1, column: 17, scope: !73) -!75 = distinct !DISubprogram(name: "$fundef_30", linkageName: "$fundef_30", scope: !63, file: !63, line: 1, type: !5, scopeLine: 1, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!76 = !DILocation(line: 1, column: 17, scope: !75) -!77 = distinct !DISubprogram(name: "$fundef_28", linkageName: "$fundef_28", scope: !63, file: !63, line: 1, type: !5, scopeLine: 1, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!78 = !DILocation(line: 1, column: 17, scope: !77) -!79 = distinct !DISubprogram(name: "$fundef_26", linkageName: "$fundef_26", scope: !63, file: !63, line: 1, type: !5, scopeLine: 1, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!80 = !DILocation(line: 1, column: 37, scope: !79) -!81 = !DILocation(line: 1, column: 74, scope: !82) -!82 = distinct !DILexicalBlock(scope: !83, file: !63, line: 1, column: 52) -!83 = distinct !DILexicalBlock(scope: !79, file: !63, line: 1, column: 37) -!84 = !DILocation(line: 1, column: 83, scope: !82) -!85 = !DILocation(line: 1, column: 100, scope: !86) -!86 = distinct !DILexicalBlock(scope: !83, file: !63, line: 1, column: 93) -!87 = distinct !DISubprogram(name: "$fundef_24", linkageName: "$fundef_24", scope: !63, file: !63, line: 1, type: !5, scopeLine: 1, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!88 = !DILocation(line: 1, column: 37, scope: !87) -!89 = distinct !DISubprogram(name: "$fundef_22", linkageName: "$fundef_22", scope: !63, file: !63, line: 1, type: !5, scopeLine: 1, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!90 = !DILocation(line: 1, column: 17, scope: !89) -!91 = distinct !DISubprogram(name: "$fundef_20", linkageName: "$fundef_20", scope: !63, file: !63, line: 1, type: !5, scopeLine: 1, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!92 = !DILocation(line: 1, column: 17, scope: !91) -!93 = distinct !DISubprogram(name: "$fundef_18", linkageName: "$fundef_18", scope: !63, file: !63, line: 1, type: !5, scopeLine: 1, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!94 = !DILocation(line: 1, column: 17, scope: !93) -!95 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !96, file: !96, type: !5, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!96 = !DIFile(filename: ".", directory: ".") -!97 = !DILocation(line: 0, scope: !95) -!98 = !DILocation(line: 1, column: 17, scope: !95) -!99 = !DILocation(line: 100, column: 3, scope: !95) -!100 = 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) -!101 = !DILocation(line: 2, column: 3, scope: !100) -!102 = !DILocation(line: 9, column: 3, scope: !100) -!103 = !DILocation(line: 17, column: 3, scope: !100) -!104 = !DILocation(line: 22, column: 17, scope: !100) -!105 = !DILocation(line: 23, column: 1, scope: !100) -!106 = !DILocation(line: 25, column: 14, scope: !107) -!107 = distinct !DILexicalBlock(scope: !108, file: !2, line: 24, column: 3) -!108 = distinct !DILexicalBlock(scope: !100, file: !2, line: 23, column: 1) -!109 = !DILocation(line: 25, column: 13, scope: !107) -!110 = !DILocation(line: 26, column: 12, scope: !107) -!111 = !DILocation(line: 27, column: 14, scope: !107) -!112 = !DILocation(line: 27, column: 13, scope: !107) -!113 = !DILocation(line: 28, column: 13, scope: !107) -!114 = !DILocation(line: 29, column: 13, scope: !107) -!115 = !DILocation(line: 30, column: 3, scope: !107) -!116 = !DILocation(line: 32, column: 14, scope: !117) -!117 = distinct !DILexicalBlock(scope: !108, file: !2, line: 31, column: 3) -!118 = !DILocation(line: 32, column: 13, scope: !117) -!119 = !DILocation(line: 33, column: 12, scope: !117) -!120 = !DILocation(line: 34, column: 14, scope: !117) -!121 = !DILocation(line: 34, column: 13, scope: !117) -!122 = !DILocation(line: 35, column: 13, scope: !117) -!123 = !DILocation(line: 36, column: 13, scope: !117) -!124 = !DILocation(line: 37, column: 3, scope: !117) +!17 = distinct !DISubprogram(name: "$fundef_65", linkageName: "$fundef_65", scope: !2, file: !2, line: 11, type: !4, scopeLine: 11, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!18 = !DILocalVariable(name: "a", scope: !17, file: !2, line: 10, type: !19) +!19 = !DIBasicType(name: "Int64", size: 8) +!20 = !DILocation(line: 10, column: 8, scope: !17) +!21 = !DILocalVariable(name: "$retval_66", scope: !17, file: !2, line: 11, type: !22) +!22 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "List (Int64)", baseType: !23, size: 8, align: 8, dwarfAddressSpace: 0) +!23 = !DIBasicType(name: "List (Int64)", size: 8) +!24 = !DILocation(line: 11, column: 5, scope: !17) +!25 = !DILocalVariable(name: "an", scope: !17, file: !2, line: 11, type: !22) +!26 = !DILocation(line: 11, column: 9, scope: !17) +!27 = !DILocation(line: 11, column: 14, scope: !17) +!28 = !DILocalVariable(name: "a1", scope: !17, file: !2, line: 12, type: !22) +!29 = !DILocation(line: 12, column: 9, scope: !17) +!30 = !DILocation(line: 12, column: 14, scope: !17) +!31 = !DILocation(line: 13, column: 5, scope: !17) +!32 = distinct !DISubprogram(name: "$fundef_63", linkageName: "$fundef_63", scope: !2, file: !2, line: 11, type: !4, scopeLine: 11, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!33 = !DILocation(line: 11, column: 5, scope: !32) +!34 = distinct !DISubprogram(name: "$fundef_61", linkageName: "$fundef_61", scope: !2, file: !2, line: 11, type: !4, scopeLine: 11, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!35 = !DILocalVariable(name: "a", scope: !34, file: !2, line: 10, type: !36) +!36 = !DIBasicType(name: "Int32", size: 4) +!37 = !DILocation(line: 10, column: 8, scope: !34) +!38 = !DILocalVariable(name: "$retval_62", scope: !34, file: !2, line: 11, type: !39) +!39 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "List (Int32)", baseType: !40, size: 8, align: 8, dwarfAddressSpace: 0) +!40 = !DIBasicType(name: "List (Int32)", size: 8) +!41 = !DILocation(line: 11, column: 5, scope: !34) +!42 = !DILocalVariable(name: "an", scope: !34, file: !2, line: 11, type: !39) +!43 = !DILocation(line: 11, column: 9, scope: !34) +!44 = !DILocation(line: 11, column: 14, scope: !34) +!45 = !DILocalVariable(name: "a1", scope: !34, file: !2, line: 12, type: !39) +!46 = !DILocation(line: 12, column: 9, scope: !34) +!47 = !DILocation(line: 12, column: 14, scope: !34) +!48 = !DILocation(line: 13, column: 5, scope: !34) +!49 = distinct !DISubprogram(name: "$fundef_59", linkageName: "$fundef_59", scope: !2, file: !2, line: 11, type: !4, scopeLine: 11, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!50 = !DILocation(line: 11, column: 5, scope: !49) +!51 = distinct !DISubprogram(name: "$fundef_57", linkageName: "$fundef_57", scope: !2, file: !2, line: 4, type: !4, scopeLine: 4, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!52 = !DILocalVariable(name: "a", scope: !51, file: !2, line: 3, type: !19) +!53 = !DILocation(line: 3, column: 8, scope: !51) +!54 = !DILocalVariable(name: "$retval_58", scope: !51, file: !2, line: 4, type: !22) +!55 = !DILocation(line: 4, column: 5, scope: !51) +!56 = !DILocalVariable(name: "an", scope: !51, file: !2, line: 4, type: !22) +!57 = !DILocation(line: 4, column: 9, scope: !51) +!58 = !DILocation(line: 4, column: 14, scope: !51) +!59 = !DILocation(line: 5, column: 5, scope: !51) +!60 = distinct !DISubprogram(name: "$fundef_55", linkageName: "$fundef_55", scope: !2, file: !2, line: 4, type: !4, scopeLine: 4, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!61 = !DILocation(line: 4, column: 5, scope: !60) +!62 = distinct !DISubprogram(name: "$fundef_53", linkageName: "$fundef_53", scope: !2, file: !2, line: 4, type: !4, scopeLine: 4, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!63 = !DILocalVariable(name: "a", scope: !62, file: !2, line: 3, type: !36) +!64 = !DILocation(line: 3, column: 8, scope: !62) +!65 = !DILocalVariable(name: "$retval_54", scope: !62, file: !2, line: 4, type: !39) +!66 = !DILocation(line: 4, column: 5, scope: !62) +!67 = !DILocalVariable(name: "an", scope: !62, file: !2, line: 4, type: !39) +!68 = !DILocation(line: 4, column: 9, scope: !62) +!69 = !DILocation(line: 4, column: 14, scope: !62) +!70 = !DILocation(line: 5, column: 5, scope: !62) +!71 = distinct !DISubprogram(name: "$fundef_51", linkageName: "$fundef_51", scope: !2, file: !2, line: 4, type: !4, scopeLine: 4, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!72 = !DILocation(line: 4, column: 5, scope: !71) +!73 = distinct !DISubprogram(name: "$fundef_48", linkageName: "$fundef_48", scope: !74, file: !74, line: 104, type: !4, scopeLine: 104, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!74 = !DIFile(filename: "ListUtils.scillib", directory: "../src/stdlib") +!75 = !DILocalVariable(name: "h", scope: !73, file: !74, line: 103, type: !19) +!76 = !DILocation(line: 103, column: 39, scope: !73) +!77 = !DILocalVariable(name: "$retval_49", scope: !73, file: !74, line: 104, type: !78) +!78 = !DIBasicType(name: "Uint32", size: 4) +!79 = !DILocation(line: 104, column: 5, scope: !73) +!80 = distinct !DISubprogram(name: "$fundef_46", linkageName: "$fundef_46", scope: !74, file: !74, line: 103, type: !4, scopeLine: 103, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!81 = !DILocalVariable(name: "z", scope: !80, file: !74, line: 103, type: !78) +!82 = !DILocation(line: 103, column: 19, scope: !80) +!83 = !DILocation(line: 104, column: 5, scope: !80) +!84 = distinct !DISubprogram(name: "$fundef_44", linkageName: "$fundef_44", scope: !74, file: !74, line: 101, type: !4, scopeLine: 101, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!85 = !DILocation(line: 101, column: 16, scope: !84) +!86 = !DILocation(line: 101, column: 15, scope: !84) +!87 = !DILocalVariable(name: "one", scope: !84, file: !74, line: 102, type: !78) +!88 = !DILocation(line: 102, column: 7, scope: !84) +!89 = !DILocation(line: 102, column: 13, scope: !84) +!90 = !DILocation(line: 103, column: 34, scope: !84) +!91 = !DILocalVariable(name: "init", scope: !84, file: !74, line: 105, type: !78) +!92 = !DILocation(line: 105, column: 7, scope: !84) +!93 = !DILocation(line: 105, column: 14, scope: !84) +!94 = !DILocation(line: 106, column: 3, scope: !84) +!95 = distinct !DISubprogram(name: "$fundef_42", linkageName: "$fundef_42", scope: !74, file: !74, line: 104, type: !4, scopeLine: 104, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!96 = !DILocalVariable(name: "h", scope: !95, file: !74, line: 103, type: !36) +!97 = !DILocation(line: 103, column: 39, scope: !95) +!98 = !DILocalVariable(name: "$retval_43", scope: !95, file: !74, line: 104, type: !78) +!99 = !DILocation(line: 104, column: 5, scope: !95) +!100 = distinct !DISubprogram(name: "$fundef_40", linkageName: "$fundef_40", scope: !74, file: !74, line: 103, type: !4, scopeLine: 103, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!101 = !DILocalVariable(name: "z", scope: !100, file: !74, line: 103, type: !78) +!102 = !DILocation(line: 103, column: 19, scope: !100) +!103 = !DILocation(line: 104, column: 5, scope: !100) +!104 = distinct !DISubprogram(name: "$fundef_38", linkageName: "$fundef_38", scope: !74, file: !74, line: 101, type: !4, scopeLine: 101, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!105 = !DILocation(line: 101, column: 16, scope: !104) +!106 = !DILocation(line: 101, column: 15, scope: !104) +!107 = !DILocalVariable(name: "one", scope: !104, file: !74, line: 102, type: !78) +!108 = !DILocation(line: 102, column: 7, scope: !104) +!109 = !DILocation(line: 102, column: 13, scope: !104) +!110 = !DILocation(line: 103, column: 34, scope: !104) +!111 = !DILocalVariable(name: "init", scope: !104, file: !74, line: 105, type: !78) +!112 = !DILocation(line: 105, column: 7, scope: !104) +!113 = !DILocation(line: 105, column: 14, scope: !104) +!114 = !DILocation(line: 106, column: 3, scope: !104) +!115 = distinct !DISubprogram(name: "$fundef_36", linkageName: "$fundef_36", scope: !116, file: !116, line: 1, type: !4, scopeLine: 1, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!116 = !DIFile(filename: "Prelude", directory: ".") +!117 = !DILocalVariable(name: "l", scope: !115, file: !116, line: 1, type: !22) +!118 = !DILocation(line: 1, column: 22, scope: !115) +!119 = !DILocalVariable(name: "$retval_37", scope: !115, file: !116, line: 1, type: !78) +!120 = !DILocation(line: 1, column: 37, scope: !115) +!121 = !DILocalVariable(name: "res", scope: !122, file: !116, line: 1, type: !78) +!122 = distinct !DILexicalBlock(scope: !123, file: !116, line: 1, column: 52) +!123 = distinct !DILexicalBlock(scope: !115, file: !116, line: 1, column: 37) +!124 = !DILocation(line: 1, column: 68, scope: !122) +!125 = !DILocation(line: 1, column: 74, scope: !122) +!126 = !DILocalVariable(name: "$f_7", scope: !122, file: !116, line: 1, type: !78) +!127 = !DILocation(line: 1, column: 83, scope: !122) +!128 = !DILocalVariable(name: "$g_9", scope: !122, file: !116, line: 1, type: !78) +!129 = !DILocation(line: 1, column: 100, scope: !130) +!130 = distinct !DILexicalBlock(scope: !123, file: !116, line: 1, column: 93) +!131 = distinct !DISubprogram(name: "$fundef_34", linkageName: "$fundef_34", scope: !116, file: !116, line: 1, type: !4, scopeLine: 1, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!132 = !DILocalVariable(name: "z", scope: !131, file: !116, line: 1, type: !78) +!133 = !DILocation(line: 1, column: 6, scope: !131) +!134 = !DILocation(line: 1, column: 37, scope: !131) +!135 = distinct !DISubprogram(name: "$fundef_32", linkageName: "$fundef_32", scope: !116, file: !116, line: 1, type: !4, scopeLine: 1, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!136 = !DILocation(line: 1, column: 17, scope: !135) +!137 = distinct !DISubprogram(name: "$fundef_30", linkageName: "$fundef_30", scope: !116, file: !116, line: 1, type: !4, scopeLine: 1, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!138 = !DILocation(line: 1, column: 17, scope: !137) +!139 = distinct !DISubprogram(name: "$fundef_28", linkageName: "$fundef_28", scope: !116, file: !116, line: 1, type: !4, scopeLine: 1, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!140 = !DILocation(line: 1, column: 17, scope: !139) +!141 = distinct !DISubprogram(name: "$fundef_26", linkageName: "$fundef_26", scope: !116, file: !116, line: 1, type: !4, scopeLine: 1, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!142 = !DILocalVariable(name: "l", scope: !141, file: !116, line: 1, type: !39) +!143 = !DILocation(line: 1, column: 22, scope: !141) +!144 = !DILocalVariable(name: "$retval_27", scope: !141, file: !116, line: 1, type: !78) +!145 = !DILocation(line: 1, column: 37, scope: !141) +!146 = !DILocalVariable(name: "res", scope: !147, file: !116, line: 1, type: !78) +!147 = distinct !DILexicalBlock(scope: !148, file: !116, line: 1, column: 52) +!148 = distinct !DILexicalBlock(scope: !141, file: !116, line: 1, column: 37) +!149 = !DILocation(line: 1, column: 68, scope: !147) +!150 = !DILocation(line: 1, column: 74, scope: !147) +!151 = !DILocalVariable(name: "$f_7", scope: !147, file: !116, line: 1, type: !78) +!152 = !DILocation(line: 1, column: 83, scope: !147) +!153 = !DILocalVariable(name: "$g_9", scope: !147, file: !116, line: 1, type: !78) +!154 = !DILocation(line: 1, column: 100, scope: !155) +!155 = distinct !DILexicalBlock(scope: !148, file: !116, line: 1, column: 93) +!156 = distinct !DISubprogram(name: "$fundef_24", linkageName: "$fundef_24", scope: !116, file: !116, line: 1, type: !4, scopeLine: 1, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!157 = !DILocalVariable(name: "z", scope: !156, file: !116, line: 1, type: !78) +!158 = !DILocation(line: 1, column: 6, scope: !156) +!159 = !DILocation(line: 1, column: 37, scope: !156) +!160 = distinct !DISubprogram(name: "$fundef_22", linkageName: "$fundef_22", scope: !116, file: !116, line: 1, type: !4, scopeLine: 1, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!161 = !DILocation(line: 1, column: 17, scope: !160) +!162 = distinct !DISubprogram(name: "$fundef_20", linkageName: "$fundef_20", scope: !116, file: !116, line: 1, type: !4, scopeLine: 1, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!163 = !DILocation(line: 1, column: 17, scope: !162) +!164 = distinct !DISubprogram(name: "$fundef_18", linkageName: "$fundef_18", scope: !116, file: !116, line: 1, type: !4, scopeLine: 1, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!165 = !DILocation(line: 1, column: 17, scope: !164) +!166 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !167, file: !167, type: !4, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!167 = !DIFile(filename: ".", directory: ".") +!168 = !DILocation(line: 0, scope: !166) +!169 = !DILocation(line: 1, column: 17, scope: !166) +!170 = !DILocation(line: 100, column: 3, scope: !166) +!171 = distinct !DISubprogram(name: "_scilla_expr_fun", linkageName: "_scilla_expr_fun", scope: !2, file: !2, line: 2, type: !4, scopeLine: 2, spFlags: DISPFlagDefinition, unit: !1, retainedNodes: !7) +!172 = !DILocalVariable(name: "$expr_50", scope: !171, file: !2, line: 2, type: !78) +!173 = !DILocation(line: 2, column: 3, scope: !171) +!174 = !DILocation(line: 9, column: 3, scope: !171) +!175 = !DILocation(line: 17, column: 3, scope: !171) +!176 = !DILocalVariable(name: "some_bool", scope: !171, file: !2, line: 22, type: !177) +!177 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "Bool", baseType: !178, size: 8, align: 8, dwarfAddressSpace: 0) +!178 = !DIBasicType(name: "Bool", size: 8) +!179 = !DILocation(line: 22, column: 5, scope: !171) +!180 = !DILocation(line: 22, column: 17, scope: !171) +!181 = !DILocation(line: 23, column: 1, scope: !171) +!182 = !DILocation(line: 25, column: 14, scope: !183) +!183 = distinct !DILexicalBlock(scope: !184, file: !2, line: 24, column: 3) +!184 = distinct !DILexicalBlock(scope: !171, file: !2, line: 23, column: 1) +!185 = !DILocation(line: 25, column: 13, scope: !183) +!186 = !DILocation(line: 26, column: 12, scope: !183) +!187 = !DILocation(line: 27, column: 14, scope: !183) +!188 = !DILocation(line: 27, column: 13, scope: !183) +!189 = !DILocalVariable(name: "one", scope: !183, file: !2, line: 28, type: !36) +!190 = !DILocation(line: 28, column: 7, scope: !183) +!191 = !DILocation(line: 28, column: 13, scope: !183) +!192 = !DILocalVariable(name: "f1l", scope: !183, file: !2, line: 29, type: !39) +!193 = !DILocation(line: 29, column: 7, scope: !183) +!194 = !DILocalVariable(name: "$f1_13", scope: !183, file: !2, line: 29, type: !39) +!195 = !DILocation(line: 29, column: 13, scope: !183) +!196 = !DILocalVariable(name: "$len_14", scope: !183, file: !2, line: 30, type: !78) +!197 = !DILocation(line: 30, column: 3, scope: !183) +!198 = !DILocation(line: 32, column: 14, scope: !199) +!199 = distinct !DILexicalBlock(scope: !184, file: !2, line: 31, column: 3) +!200 = !DILocation(line: 32, column: 13, scope: !199) +!201 = !DILocation(line: 33, column: 12, scope: !199) +!202 = !DILocation(line: 34, column: 14, scope: !199) +!203 = !DILocation(line: 34, column: 13, scope: !199) +!204 = !DILocalVariable(name: "one", scope: !199, file: !2, line: 35, type: !19) +!205 = !DILocation(line: 35, column: 7, scope: !199) +!206 = !DILocation(line: 35, column: 13, scope: !199) +!207 = !DILocalVariable(name: "f2l", scope: !199, file: !2, line: 36, type: !22) +!208 = !DILocation(line: 36, column: 7, scope: !199) +!209 = !DILocalVariable(name: "$f2_16", scope: !199, file: !2, line: 36, type: !22) +!210 = !DILocation(line: 36, column: 13, scope: !199) +!211 = !DILocalVariable(name: "$len_17", scope: !199, file: !2, line: 37, type: !78) +!212 = !DILocation(line: 37, column: 3, scope: !199) diff --git a/testsuite/expr/fun-type-inst.ll b/testsuite/expr/fun-type-inst.ll index c2932c21..77749a71 100644 --- a/testsuite/expr/fun-type-inst.ll +++ b/testsuite/expr/fun-type-inst.ll @@ -39,7 +39,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-pc-linux-gnu" +target triple = "x86_64-unknown-linux-gnu" %"$TyDescrTy_PrimTyp_75" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/testsuite/expr/lit-bnum.dbg.ll b/testsuite/expr/lit-bnum.dbg.ll index 4a2363c5..30edc65e 100644 --- a/testsuite/expr/lit-bnum.dbg.ll +++ b/testsuite/expr/lit-bnum.dbg.ll @@ -2,7 +2,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-pc-linux-gnu" +target triple = "x86_64-unknown-linux-gnu" %"$TyDescrTy_PrimTyp_7" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } @@ -58,7 +58,7 @@ target triple = "x86_64-pc-linux-gnu" @_transition_parameters = constant [0 x %"$TransDescr_88"] zeroinitializer @_transition_parameters_length = constant i32 0 -define void @_init_libs() !dbg !4 { +define void @_init_libs() !dbg !3 { entry: %"$gasrem_44" = load i64, i64* @_gasrem, align 8 %"$gascmp_45" = icmp ugt i64 5, %"$gasrem_44" @@ -140,6 +140,7 @@ declare void @_out_of_gas() define internal i8* @_scilla_expr_fun(i8* %0) !dbg !10 { entry: %"$expr_6" = alloca i8*, align 8 + call void @llvm.dbg.declare(metadata i8** %"$expr_6", metadata !11, metadata !DIExpression()), !dbg !14 %"$gasrem_74" = load i64, i64* @_gasrem, align 8 %"$gascmp_75" = icmp ugt i64 1, %"$gasrem_74" br i1 %"$gascmp_75", label %"$out_of_gas_76", label %"$have_gas_77" @@ -153,11 +154,14 @@ entry: store i64 %"$consume_78", i64* @_gasrem, align 8 %"$execptr_load_80" = load i8*, i8** @_execptr, align 8 %"$_new_bnum_call_81" = call i8* @_new_bnum(i8* %"$execptr_load_80", %BNumString { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$BNumLit_79", i32 0, i32 0), i32 3 }) - store i8* %"$_new_bnum_call_81", i8** %"$expr_6", align 8, !dbg !11 + store i8* %"$_new_bnum_call_81", i8** %"$expr_6", align 8, !dbg !14 %"$$expr_6_83" = load i8*, i8** %"$expr_6", align 8 ret i8* %"$$expr_6_83" } +; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn +declare void @llvm.dbg.declare(metadata, metadata, metadata) #0 + declare i8* @_new_bnum(i8*, %BNumString) declare void @_print_scilla_val(i8*, %_TyDescrTy_Typ*, i8*) @@ -170,18 +174,23 @@ entry: ret void } +attributes #0 = { nocallback nofree nosync nounwind readnone speculatable willreturn } + !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) +!1 = distinct !DICompileUnit(language: DW_LANG_C89, file: !2, producer: "Scilla Compiler", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false) !2 = !DIFile(filename: "lit-bnum.scilexp", directory: "codegen/expr") -!3 = !{} -!4 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !5, file: !5, type: !6, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!5 = !DIFile(filename: ".", directory: ".") -!6 = !DISubroutineType(types: !7) -!7 = !{!8} -!8 = !DIBasicType(tag: DW_TAG_unspecified_type, name: "void") -!9 = !DILocation(line: 0, scope: !4) -!10 = distinct !DISubprogram(name: "_scilla_expr_fun", linkageName: "_scilla_expr_fun", scope: !2, file: !2, line: 1, type: !6, scopeLine: 1, spFlags: DISPFlagDefinition, unit: !1, retainedNodes: !3) -!11 = !DILocation(line: 1, column: 1, scope: !10) +!3 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !4, file: !4, type: !5, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!4 = !DIFile(filename: ".", directory: ".") +!5 = !DISubroutineType(types: !6) +!6 = !{!7} +!7 = !DIBasicType(tag: DW_TAG_unspecified_type, name: "void") +!8 = !{} +!9 = !DILocation(line: 0, scope: !3) +!10 = distinct !DISubprogram(name: "_scilla_expr_fun", linkageName: "_scilla_expr_fun", scope: !2, file: !2, line: 1, type: !5, scopeLine: 1, spFlags: DISPFlagDefinition, unit: !1, retainedNodes: !8) +!11 = !DILocalVariable(name: "$expr_6", scope: !10, file: !2, line: 1, type: !12) +!12 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "BNum", baseType: !13, size: 8, align: 8, dwarfAddressSpace: 0) +!13 = !DIBasicType(name: "BNum", size: 8) +!14 = !DILocation(line: 1, column: 1, scope: !10) diff --git a/testsuite/expr/lit-bnum.ll b/testsuite/expr/lit-bnum.ll index 9c2aa309..7c6ad999 100644 --- a/testsuite/expr/lit-bnum.ll +++ b/testsuite/expr/lit-bnum.ll @@ -2,7 +2,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-pc-linux-gnu" +target triple = "x86_64-unknown-linux-gnu" %"$TyDescrTy_PrimTyp_7" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/testsuite/expr/lit-bystr3.dbg.ll b/testsuite/expr/lit-bystr3.dbg.ll index 9e775614..57edc120 100644 --- a/testsuite/expr/lit-bystr3.dbg.ll +++ b/testsuite/expr/lit-bystr3.dbg.ll @@ -2,7 +2,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-pc-linux-gnu" +target triple = "x86_64-unknown-linux-gnu" %"$TyDescrTy_PrimTyp_7" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } @@ -58,7 +58,7 @@ target triple = "x86_64-pc-linux-gnu" @_transition_parameters = constant [0 x %"$TransDescr_87"] zeroinitializer @_transition_parameters_length = constant i32 0 -define void @_init_libs() !dbg !4 { +define void @_init_libs() !dbg !3 { entry: %"$gasrem_46" = load i64, i64* @_gasrem, align 8 %"$gascmp_47" = icmp ugt i64 5, %"$gasrem_46" @@ -140,6 +140,7 @@ declare void @_out_of_gas() define internal [3 x i8] @_scilla_expr_fun(i8* %0) !dbg !10 { entry: %"$expr_6" = alloca [3 x i8], align 1 + call void @llvm.dbg.declare(metadata [3 x i8]* %"$expr_6", metadata !11, metadata !DIExpression()), !dbg !13 %"$gasrem_76" = load i64, i64* @_gasrem, align 8 %"$gascmp_77" = icmp ugt i64 1, %"$gasrem_76" br i1 %"$gascmp_77", label %"$out_of_gas_78", label %"$have_gas_79" @@ -151,11 +152,14 @@ entry: "$have_gas_79": ; preds = %"$out_of_gas_78", %entry %"$consume_80" = sub i64 %"$gasrem_76", 1 store i64 %"$consume_80", i64* @_gasrem, align 8 - store [3 x i8] c"\AB\09\FE", [3 x i8]* %"$expr_6", align 1, !dbg !11 + store [3 x i8] c"\AB\09\FE", [3 x i8]* %"$expr_6", align 1, !dbg !13 %"$$expr_6_81" = load [3 x i8], [3 x i8]* %"$expr_6", align 1 ret [3 x i8] %"$$expr_6_81" } +; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn +declare void @llvm.dbg.declare(metadata, metadata, metadata) #0 + declare void @_print_scilla_val(i8*, %_TyDescrTy_Typ*, i8*) define void @scilla_main() { @@ -169,18 +173,22 @@ entry: ret void } +attributes #0 = { nocallback nofree nosync nounwind readnone speculatable willreturn } + !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) +!1 = distinct !DICompileUnit(language: DW_LANG_C89, file: !2, producer: "Scilla Compiler", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false) !2 = !DIFile(filename: "lit-bystr3.scilexp", directory: "codegen/expr") -!3 = !{} -!4 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !5, file: !5, type: !6, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!5 = !DIFile(filename: ".", directory: ".") -!6 = !DISubroutineType(types: !7) -!7 = !{!8} -!8 = !DIBasicType(tag: DW_TAG_unspecified_type, name: "void") -!9 = !DILocation(line: 0, scope: !4) -!10 = distinct !DISubprogram(name: "_scilla_expr_fun", linkageName: "_scilla_expr_fun", scope: !2, file: !2, line: 1, type: !6, scopeLine: 1, spFlags: DISPFlagDefinition, unit: !1, retainedNodes: !3) -!11 = !DILocation(line: 1, column: 1, scope: !10) +!3 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !4, file: !4, type: !5, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!4 = !DIFile(filename: ".", directory: ".") +!5 = !DISubroutineType(types: !6) +!6 = !{!7} +!7 = !DIBasicType(tag: DW_TAG_unspecified_type, name: "void") +!8 = !{} +!9 = !DILocation(line: 0, scope: !3) +!10 = distinct !DISubprogram(name: "_scilla_expr_fun", linkageName: "_scilla_expr_fun", scope: !2, file: !2, line: 1, type: !5, scopeLine: 1, spFlags: DISPFlagDefinition, unit: !1, retainedNodes: !8) +!11 = !DILocalVariable(name: "$expr_6", scope: !10, file: !2, line: 1, type: !12) +!12 = !DIBasicType(name: "ByStr3", size: 3) +!13 = !DILocation(line: 1, column: 1, scope: !10) diff --git a/testsuite/expr/lit-bystr3.ll b/testsuite/expr/lit-bystr3.ll index 54630e14..bf3c14ff 100644 --- a/testsuite/expr/lit-bystr3.ll +++ b/testsuite/expr/lit-bystr3.ll @@ -2,7 +2,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-pc-linux-gnu" +target triple = "x86_64-unknown-linux-gnu" %"$TyDescrTy_PrimTyp_7" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/testsuite/expr/lit-emp_i32_i32.dbg.ll b/testsuite/expr/lit-emp_i32_i32.dbg.ll index 38904f10..d0201b58 100644 --- a/testsuite/expr/lit-emp_i32_i32.dbg.ll +++ b/testsuite/expr/lit-emp_i32_i32.dbg.ll @@ -2,7 +2,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-pc-linux-gnu" +target triple = "x86_64-unknown-linux-gnu" %"$TyDescrTy_PrimTyp_7" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } @@ -60,7 +60,7 @@ target triple = "x86_64-pc-linux-gnu" @_transition_parameters = constant [0 x %"$TransDescr_89"] zeroinitializer @_transition_parameters_length = constant i32 0 -define void @_init_libs() !dbg !4 { +define void @_init_libs() !dbg !3 { entry: %"$gasrem_46" = load i64, i64* @_gasrem, align 8 %"$gascmp_47" = icmp ugt i64 5, %"$gasrem_46" @@ -142,6 +142,7 @@ declare void @_out_of_gas() define internal %Map_Int32_Int32* @_scilla_expr_fun(i8* %0) !dbg !10 { entry: %"$expr_6" = alloca %Map_Int32_Int32*, align 8 + call void @llvm.dbg.declare(metadata %Map_Int32_Int32** %"$expr_6", metadata !11, metadata !DIExpression()), !dbg !14 %"$gasrem_76" = load i64, i64* @_gasrem, align 8 %"$gascmp_77" = icmp ugt i64 1, %"$gasrem_76" br i1 %"$gascmp_77", label %"$out_of_gas_78", label %"$have_gas_79" @@ -156,11 +157,14 @@ entry: %"$execptr_load_81" = load i8*, i8** @_execptr, align 8 %"$_new_empty_map_call_82" = call i8* @_new_empty_map(i8* %"$execptr_load_81") %"$_new_empty_map_83" = bitcast i8* %"$_new_empty_map_call_82" to %Map_Int32_Int32* - store %Map_Int32_Int32* %"$_new_empty_map_83", %Map_Int32_Int32** %"$expr_6", align 8, !dbg !11 + store %Map_Int32_Int32* %"$_new_empty_map_83", %Map_Int32_Int32** %"$expr_6", align 8, !dbg !14 %"$$expr_6_84" = load %Map_Int32_Int32*, %Map_Int32_Int32** %"$expr_6", align 8 ret %Map_Int32_Int32* %"$$expr_6_84" } +; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn +declare void @llvm.dbg.declare(metadata, metadata, metadata) #0 + declare i8* @_new_empty_map(i8*) declare void @_print_scilla_val(i8*, %_TyDescrTy_Typ*, i8*) @@ -174,18 +178,23 @@ entry: ret void } +attributes #0 = { nocallback nofree nosync nounwind readnone speculatable willreturn } + !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) +!1 = distinct !DICompileUnit(language: DW_LANG_C89, file: !2, producer: "Scilla Compiler", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false) !2 = !DIFile(filename: "lit-emp_i32_i32.scilexp", directory: "codegen/expr") -!3 = !{} -!4 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !5, file: !5, type: !6, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!5 = !DIFile(filename: ".", directory: ".") -!6 = !DISubroutineType(types: !7) -!7 = !{!8} -!8 = !DIBasicType(tag: DW_TAG_unspecified_type, name: "void") -!9 = !DILocation(line: 0, scope: !4) -!10 = distinct !DISubprogram(name: "_scilla_expr_fun", linkageName: "_scilla_expr_fun", scope: !2, file: !2, line: 1, type: !6, scopeLine: 1, spFlags: DISPFlagDefinition, unit: !1, retainedNodes: !3) -!11 = !DILocation(line: 1, column: 1, scope: !10) +!3 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !4, file: !4, type: !5, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!4 = !DIFile(filename: ".", directory: ".") +!5 = !DISubroutineType(types: !6) +!6 = !{!7} +!7 = !DIBasicType(tag: DW_TAG_unspecified_type, name: "void") +!8 = !{} +!9 = !DILocation(line: 0, scope: !3) +!10 = distinct !DISubprogram(name: "_scilla_expr_fun", linkageName: "_scilla_expr_fun", scope: !2, file: !2, line: 1, type: !5, scopeLine: 1, spFlags: DISPFlagDefinition, unit: !1, retainedNodes: !8) +!11 = !DILocalVariable(name: "$expr_6", scope: !10, file: !2, line: 1, type: !12) +!12 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "Map (Int32) (Int32)", baseType: !13, size: 8, align: 8, dwarfAddressSpace: 0) +!13 = !DIBasicType(name: "Map (Int32) (Int32)", size: 8) +!14 = !DILocation(line: 1, column: 1, scope: !10) diff --git a/testsuite/expr/lit-emp_i32_i32.ll b/testsuite/expr/lit-emp_i32_i32.ll index 045cc8bf..da382f17 100644 --- a/testsuite/expr/lit-emp_i32_i32.ll +++ b/testsuite/expr/lit-emp_i32_i32.ll @@ -2,7 +2,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-pc-linux-gnu" +target triple = "x86_64-unknown-linux-gnu" %"$TyDescrTy_PrimTyp_7" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/testsuite/expr/lit-emp_i32_list_string.dbg.ll b/testsuite/expr/lit-emp_i32_list_string.dbg.ll index 8f55529b..a8ee37fd 100644 --- a/testsuite/expr/lit-emp_i32_list_string.dbg.ll +++ b/testsuite/expr/lit-emp_i32_list_string.dbg.ll @@ -2,7 +2,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-pc-linux-gnu" +target triple = "x86_64-unknown-linux-gnu" %"$TyDescrTy_PrimTyp_7" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } @@ -81,7 +81,7 @@ target triple = "x86_64-pc-linux-gnu" @_transition_parameters = constant [0 x %"$TransDescr_102"] zeroinitializer @_transition_parameters_length = constant i32 0 -define void @_init_libs() !dbg !4 { +define void @_init_libs() !dbg !3 { entry: %"$gasrem_59" = load i64, i64* @_gasrem, align 8 %"$gascmp_60" = icmp ugt i64 5, %"$gasrem_59" @@ -163,6 +163,7 @@ declare void @_out_of_gas() define internal %"Map_Int32_List_(String)"* @_scilla_expr_fun(i8* %0) !dbg !10 { entry: %"$expr_6" = alloca %"Map_Int32_List_(String)"*, align 8 + call void @llvm.dbg.declare(metadata %"Map_Int32_List_(String)"** %"$expr_6", metadata !11, metadata !DIExpression()), !dbg !14 %"$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" @@ -177,11 +178,14 @@ entry: %"$execptr_load_94" = load i8*, i8** @_execptr, align 8 %"$_new_empty_map_call_95" = call i8* @_new_empty_map(i8* %"$execptr_load_94") %"$_new_empty_map_96" = bitcast i8* %"$_new_empty_map_call_95" to %"Map_Int32_List_(String)"* - store %"Map_Int32_List_(String)"* %"$_new_empty_map_96", %"Map_Int32_List_(String)"** %"$expr_6", align 8, !dbg !11 + store %"Map_Int32_List_(String)"* %"$_new_empty_map_96", %"Map_Int32_List_(String)"** %"$expr_6", align 8, !dbg !14 %"$$expr_6_97" = load %"Map_Int32_List_(String)"*, %"Map_Int32_List_(String)"** %"$expr_6", align 8 ret %"Map_Int32_List_(String)"* %"$$expr_6_97" } +; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn +declare void @llvm.dbg.declare(metadata, metadata, metadata) #0 + declare i8* @_new_empty_map(i8*) declare void @_print_scilla_val(i8*, %_TyDescrTy_Typ*, i8*) @@ -195,18 +199,23 @@ entry: ret void } +attributes #0 = { nocallback nofree nosync nounwind readnone speculatable willreturn } + !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) +!1 = distinct !DICompileUnit(language: DW_LANG_C89, file: !2, producer: "Scilla Compiler", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false) !2 = !DIFile(filename: "lit-emp_i32_list_string.scilexp", directory: "codegen/expr") -!3 = !{} -!4 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !5, file: !5, type: !6, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!5 = !DIFile(filename: ".", directory: ".") -!6 = !DISubroutineType(types: !7) -!7 = !{!8} -!8 = !DIBasicType(tag: DW_TAG_unspecified_type, name: "void") -!9 = !DILocation(line: 0, scope: !4) -!10 = distinct !DISubprogram(name: "_scilla_expr_fun", linkageName: "_scilla_expr_fun", scope: !2, file: !2, line: 1, type: !6, scopeLine: 1, spFlags: DISPFlagDefinition, unit: !1, retainedNodes: !3) -!11 = !DILocation(line: 1, column: 1, scope: !10) +!3 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !4, file: !4, type: !5, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!4 = !DIFile(filename: ".", directory: ".") +!5 = !DISubroutineType(types: !6) +!6 = !{!7} +!7 = !DIBasicType(tag: DW_TAG_unspecified_type, name: "void") +!8 = !{} +!9 = !DILocation(line: 0, scope: !3) +!10 = distinct !DISubprogram(name: "_scilla_expr_fun", linkageName: "_scilla_expr_fun", scope: !2, file: !2, line: 1, type: !5, scopeLine: 1, spFlags: DISPFlagDefinition, unit: !1, retainedNodes: !8) +!11 = !DILocalVariable(name: "$expr_6", scope: !10, file: !2, line: 1, type: !12) +!12 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "Map (Int32) (List (String))", baseType: !13, size: 8, align: 8, dwarfAddressSpace: 0) +!13 = !DIBasicType(name: "Map (Int32) (List (String))", size: 8) +!14 = !DILocation(line: 1, column: 1, scope: !10) diff --git a/testsuite/expr/lit-emp_i32_list_string.ll b/testsuite/expr/lit-emp_i32_list_string.ll index 5db24dc7..06e94a20 100644 --- a/testsuite/expr/lit-emp_i32_list_string.ll +++ b/testsuite/expr/lit-emp_i32_list_string.ll @@ -2,7 +2,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-pc-linux-gnu" +target triple = "x86_64-unknown-linux-gnu" %"$TyDescrTy_PrimTyp_7" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/testsuite/expr/lit-i256-4.dbg.ll b/testsuite/expr/lit-i256-4.dbg.ll index 63dcecb2..d253e5a7 100644 --- a/testsuite/expr/lit-i256-4.dbg.ll +++ b/testsuite/expr/lit-i256-4.dbg.ll @@ -2,7 +2,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-pc-linux-gnu" +target triple = "x86_64-unknown-linux-gnu" %"$TyDescrTy_PrimTyp_7" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } @@ -57,7 +57,7 @@ target triple = "x86_64-pc-linux-gnu" @_transition_parameters = constant [0 x %"$TransDescr_84"] zeroinitializer @_transition_parameters_length = constant i32 0 -define void @_init_libs() !dbg !4 { +define void @_init_libs() !dbg !3 { entry: %"$gasrem_44" = load i64, i64* @_gasrem, align 8 %"$gascmp_45" = icmp ugt i64 5, %"$gasrem_44" @@ -139,6 +139,7 @@ declare void @_out_of_gas() define internal void @_scilla_expr_fun(i8* %0, %Int256* %1) !dbg !10 { entry: %"$expr_6" = alloca %Int256, align 8 + call void @llvm.dbg.declare(metadata %Int256* %"$expr_6", metadata !11, metadata !DIExpression()), !dbg !13 %"$gasrem_74" = load i64, i64* @_gasrem, align 8 %"$gascmp_75" = icmp ugt i64 1, %"$gasrem_74" br i1 %"$gascmp_75", label %"$out_of_gas_76", label %"$have_gas_77" @@ -150,12 +151,15 @@ entry: "$have_gas_77": ; preds = %"$out_of_gas_76", %entry %"$consume_78" = sub i64 %"$gasrem_74", 1 store i64 %"$consume_78", i64* @_gasrem, align 8 - store %Int256 { i256 4 }, %Int256* %"$expr_6", align 8, !dbg !11 + store %Int256 { i256 4 }, %Int256* %"$expr_6", align 8, !dbg !13 %"$$expr_6_79" = load %Int256, %Int256* %"$expr_6", align 8 store %Int256 %"$$expr_6_79", %Int256* %1, align 8 ret void } +; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn +declare void @llvm.dbg.declare(metadata, metadata, metadata) #0 + declare void @_print_scilla_val(i8*, %_TyDescrTy_Typ*, i8*) define void @scilla_main() { @@ -168,18 +172,22 @@ entry: ret void } +attributes #0 = { nocallback nofree nosync nounwind readnone speculatable willreturn } + !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) +!1 = distinct !DICompileUnit(language: DW_LANG_C89, file: !2, producer: "Scilla Compiler", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false) !2 = !DIFile(filename: "lit-i256-4.scilexp", directory: "codegen/expr") -!3 = !{} -!4 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !5, file: !5, type: !6, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!5 = !DIFile(filename: ".", directory: ".") -!6 = !DISubroutineType(types: !7) -!7 = !{!8} -!8 = !DIBasicType(tag: DW_TAG_unspecified_type, name: "void") -!9 = !DILocation(line: 0, scope: !4) -!10 = distinct !DISubprogram(name: "_scilla_expr_fun", linkageName: "_scilla_expr_fun", scope: !2, file: !2, line: 1, type: !6, scopeLine: 1, spFlags: DISPFlagDefinition, unit: !1, retainedNodes: !3) -!11 = !DILocation(line: 1, column: 1, scope: !10) +!3 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !4, file: !4, type: !5, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!4 = !DIFile(filename: ".", directory: ".") +!5 = !DISubroutineType(types: !6) +!6 = !{!7} +!7 = !DIBasicType(tag: DW_TAG_unspecified_type, name: "void") +!8 = !{} +!9 = !DILocation(line: 0, scope: !3) +!10 = distinct !DISubprogram(name: "_scilla_expr_fun", linkageName: "_scilla_expr_fun", scope: !2, file: !2, line: 1, type: !5, scopeLine: 1, spFlags: DISPFlagDefinition, unit: !1, retainedNodes: !8) +!11 = !DILocalVariable(name: "$expr_6", scope: !10, file: !2, line: 1, type: !12) +!12 = !DIBasicType(name: "Int256", size: 32) +!13 = !DILocation(line: 1, column: 1, scope: !10) diff --git a/testsuite/expr/lit-i256-4.ll b/testsuite/expr/lit-i256-4.ll index 06be7f30..445b6073 100644 --- a/testsuite/expr/lit-i256-4.ll +++ b/testsuite/expr/lit-i256-4.ll @@ -2,7 +2,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-pc-linux-gnu" +target triple = "x86_64-unknown-linux-gnu" %"$TyDescrTy_PrimTyp_7" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/testsuite/expr/lit-i256-max.dbg.ll b/testsuite/expr/lit-i256-max.dbg.ll index 2ede672f..101026d6 100644 --- a/testsuite/expr/lit-i256-max.dbg.ll +++ b/testsuite/expr/lit-i256-max.dbg.ll @@ -2,7 +2,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-pc-linux-gnu" +target triple = "x86_64-unknown-linux-gnu" %"$TyDescrTy_PrimTyp_7" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } @@ -57,7 +57,7 @@ target triple = "x86_64-pc-linux-gnu" @_transition_parameters = constant [0 x %"$TransDescr_84"] zeroinitializer @_transition_parameters_length = constant i32 0 -define void @_init_libs() !dbg !4 { +define void @_init_libs() !dbg !3 { entry: %"$gasrem_44" = load i64, i64* @_gasrem, align 8 %"$gascmp_45" = icmp ugt i64 5, %"$gasrem_44" @@ -139,6 +139,7 @@ declare void @_out_of_gas() define internal void @_scilla_expr_fun(i8* %0, %Int256* %1) !dbg !10 { entry: %"$expr_6" = alloca %Int256, align 8 + call void @llvm.dbg.declare(metadata %Int256* %"$expr_6", metadata !11, metadata !DIExpression()), !dbg !13 %"$gasrem_74" = load i64, i64* @_gasrem, align 8 %"$gascmp_75" = icmp ugt i64 1, %"$gasrem_74" br i1 %"$gascmp_75", label %"$out_of_gas_76", label %"$have_gas_77" @@ -150,12 +151,15 @@ entry: "$have_gas_77": ; preds = %"$out_of_gas_76", %entry %"$consume_78" = sub i64 %"$gasrem_74", 1 store i64 %"$consume_78", i64* @_gasrem, align 8 - store %Int256 { i256 57896044618658097711785492504343953926634992332820282019728792003956564819967 }, %Int256* %"$expr_6", align 8, !dbg !11 + store %Int256 { i256 57896044618658097711785492504343953926634992332820282019728792003956564819967 }, %Int256* %"$expr_6", align 8, !dbg !13 %"$$expr_6_79" = load %Int256, %Int256* %"$expr_6", align 8 store %Int256 %"$$expr_6_79", %Int256* %1, align 8 ret void } +; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn +declare void @llvm.dbg.declare(metadata, metadata, metadata) #0 + declare void @_print_scilla_val(i8*, %_TyDescrTy_Typ*, i8*) define void @scilla_main() { @@ -168,18 +172,22 @@ entry: ret void } +attributes #0 = { nocallback nofree nosync nounwind readnone speculatable willreturn } + !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) +!1 = distinct !DICompileUnit(language: DW_LANG_C89, file: !2, producer: "Scilla Compiler", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false) !2 = !DIFile(filename: "lit-i256-max.scilexp", directory: "codegen/expr") -!3 = !{} -!4 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !5, file: !5, type: !6, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!5 = !DIFile(filename: ".", directory: ".") -!6 = !DISubroutineType(types: !7) -!7 = !{!8} -!8 = !DIBasicType(tag: DW_TAG_unspecified_type, name: "void") -!9 = !DILocation(line: 0, scope: !4) -!10 = distinct !DISubprogram(name: "_scilla_expr_fun", linkageName: "_scilla_expr_fun", scope: !2, file: !2, line: 1, type: !6, scopeLine: 1, spFlags: DISPFlagDefinition, unit: !1, retainedNodes: !3) -!11 = !DILocation(line: 1, column: 1, scope: !10) +!3 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !4, file: !4, type: !5, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!4 = !DIFile(filename: ".", directory: ".") +!5 = !DISubroutineType(types: !6) +!6 = !{!7} +!7 = !DIBasicType(tag: DW_TAG_unspecified_type, name: "void") +!8 = !{} +!9 = !DILocation(line: 0, scope: !3) +!10 = distinct !DISubprogram(name: "_scilla_expr_fun", linkageName: "_scilla_expr_fun", scope: !2, file: !2, line: 1, type: !5, scopeLine: 1, spFlags: DISPFlagDefinition, unit: !1, retainedNodes: !8) +!11 = !DILocalVariable(name: "$expr_6", scope: !10, file: !2, line: 1, type: !12) +!12 = !DIBasicType(name: "Int256", size: 32) +!13 = !DILocation(line: 1, column: 1, scope: !10) diff --git a/testsuite/expr/lit-i256-max.ll b/testsuite/expr/lit-i256-max.ll index 615bedd3..09b42d68 100644 --- a/testsuite/expr/lit-i256-max.ll +++ b/testsuite/expr/lit-i256-max.ll @@ -2,7 +2,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-pc-linux-gnu" +target triple = "x86_64-unknown-linux-gnu" %"$TyDescrTy_PrimTyp_7" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/testsuite/expr/lit-i256-min.dbg.ll b/testsuite/expr/lit-i256-min.dbg.ll index 72f710a6..b93c42ee 100644 --- a/testsuite/expr/lit-i256-min.dbg.ll +++ b/testsuite/expr/lit-i256-min.dbg.ll @@ -2,7 +2,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-pc-linux-gnu" +target triple = "x86_64-unknown-linux-gnu" %"$TyDescrTy_PrimTyp_7" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } @@ -57,7 +57,7 @@ target triple = "x86_64-pc-linux-gnu" @_transition_parameters = constant [0 x %"$TransDescr_84"] zeroinitializer @_transition_parameters_length = constant i32 0 -define void @_init_libs() !dbg !4 { +define void @_init_libs() !dbg !3 { entry: %"$gasrem_44" = load i64, i64* @_gasrem, align 8 %"$gascmp_45" = icmp ugt i64 5, %"$gasrem_44" @@ -139,6 +139,7 @@ declare void @_out_of_gas() define internal void @_scilla_expr_fun(i8* %0, %Int256* %1) !dbg !10 { entry: %"$expr_6" = alloca %Int256, align 8 + call void @llvm.dbg.declare(metadata %Int256* %"$expr_6", metadata !11, metadata !DIExpression()), !dbg !13 %"$gasrem_74" = load i64, i64* @_gasrem, align 8 %"$gascmp_75" = icmp ugt i64 1, %"$gasrem_74" br i1 %"$gascmp_75", label %"$out_of_gas_76", label %"$have_gas_77" @@ -150,12 +151,15 @@ entry: "$have_gas_77": ; preds = %"$out_of_gas_76", %entry %"$consume_78" = sub i64 %"$gasrem_74", 1 store i64 %"$consume_78", i64* @_gasrem, align 8 - store %Int256 { i256 -57896044618658097711785492504343953926634992332820282019728792003956564819968 }, %Int256* %"$expr_6", align 8, !dbg !11 + store %Int256 { i256 -57896044618658097711785492504343953926634992332820282019728792003956564819968 }, %Int256* %"$expr_6", align 8, !dbg !13 %"$$expr_6_79" = load %Int256, %Int256* %"$expr_6", align 8 store %Int256 %"$$expr_6_79", %Int256* %1, align 8 ret void } +; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn +declare void @llvm.dbg.declare(metadata, metadata, metadata) #0 + declare void @_print_scilla_val(i8*, %_TyDescrTy_Typ*, i8*) define void @scilla_main() { @@ -168,18 +172,22 @@ entry: ret void } +attributes #0 = { nocallback nofree nosync nounwind readnone speculatable willreturn } + !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) +!1 = distinct !DICompileUnit(language: DW_LANG_C89, file: !2, producer: "Scilla Compiler", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false) !2 = !DIFile(filename: "lit-i256-min.scilexp", directory: "codegen/expr") -!3 = !{} -!4 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !5, file: !5, type: !6, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!5 = !DIFile(filename: ".", directory: ".") -!6 = !DISubroutineType(types: !7) -!7 = !{!8} -!8 = !DIBasicType(tag: DW_TAG_unspecified_type, name: "void") -!9 = !DILocation(line: 0, scope: !4) -!10 = distinct !DISubprogram(name: "_scilla_expr_fun", linkageName: "_scilla_expr_fun", scope: !2, file: !2, line: 1, type: !6, scopeLine: 1, spFlags: DISPFlagDefinition, unit: !1, retainedNodes: !3) -!11 = !DILocation(line: 1, column: 1, scope: !10) +!3 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !4, file: !4, type: !5, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!4 = !DIFile(filename: ".", directory: ".") +!5 = !DISubroutineType(types: !6) +!6 = !{!7} +!7 = !DIBasicType(tag: DW_TAG_unspecified_type, name: "void") +!8 = !{} +!9 = !DILocation(line: 0, scope: !3) +!10 = distinct !DISubprogram(name: "_scilla_expr_fun", linkageName: "_scilla_expr_fun", scope: !2, file: !2, line: 1, type: !5, scopeLine: 1, spFlags: DISPFlagDefinition, unit: !1, retainedNodes: !8) +!11 = !DILocalVariable(name: "$expr_6", scope: !10, file: !2, line: 1, type: !12) +!12 = !DIBasicType(name: "Int256", size: 32) +!13 = !DILocation(line: 1, column: 1, scope: !10) diff --git a/testsuite/expr/lit-i256-min.ll b/testsuite/expr/lit-i256-min.ll index 8d25074b..b2498c66 100644 --- a/testsuite/expr/lit-i256-min.ll +++ b/testsuite/expr/lit-i256-min.ll @@ -2,7 +2,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-pc-linux-gnu" +target triple = "x86_64-unknown-linux-gnu" %"$TyDescrTy_PrimTyp_7" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/testsuite/expr/lit-int32-1.dbg.ll b/testsuite/expr/lit-int32-1.dbg.ll index 62e3f08e..bcaec0e2 100644 --- a/testsuite/expr/lit-int32-1.dbg.ll +++ b/testsuite/expr/lit-int32-1.dbg.ll @@ -2,7 +2,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-pc-linux-gnu" +target triple = "x86_64-unknown-linux-gnu" %"$TyDescrTy_PrimTyp_7" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } @@ -56,7 +56,7 @@ target triple = "x86_64-pc-linux-gnu" @_transition_parameters = constant [0 x %"$TransDescr_85"] zeroinitializer @_transition_parameters_length = constant i32 0 -define void @_init_libs() !dbg !4 { +define void @_init_libs() !dbg !3 { entry: %"$gasrem_44" = load i64, i64* @_gasrem, align 8 %"$gascmp_45" = icmp ugt i64 5, %"$gasrem_44" @@ -138,6 +138,7 @@ declare void @_out_of_gas() define internal %Int32 @_scilla_expr_fun(i8* %0) !dbg !10 { entry: %"$expr_6" = alloca %Int32, align 8 + call void @llvm.dbg.declare(metadata %Int32* %"$expr_6", metadata !11, metadata !DIExpression()), !dbg !13 %"$gasrem_74" = load i64, i64* @_gasrem, align 8 %"$gascmp_75" = icmp ugt i64 1, %"$gasrem_74" br i1 %"$gascmp_75", label %"$out_of_gas_76", label %"$have_gas_77" @@ -149,11 +150,14 @@ entry: "$have_gas_77": ; preds = %"$out_of_gas_76", %entry %"$consume_78" = sub i64 %"$gasrem_74", 1 store i64 %"$consume_78", i64* @_gasrem, align 8 - store %Int32 { i32 -1 }, %Int32* %"$expr_6", align 4, !dbg !11 + store %Int32 { i32 -1 }, %Int32* %"$expr_6", align 4, !dbg !13 %"$$expr_6_79" = load %Int32, %Int32* %"$expr_6", align 4 ret %Int32 %"$$expr_6_79" } +; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn +declare void @llvm.dbg.declare(metadata, metadata, metadata) #0 + declare void @_print_scilla_val(i8*, %_TyDescrTy_Typ*, i8*) define void @scilla_main() { @@ -167,18 +171,22 @@ entry: ret void } +attributes #0 = { nocallback nofree nosync nounwind readnone speculatable willreturn } + !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) +!1 = distinct !DICompileUnit(language: DW_LANG_C89, file: !2, producer: "Scilla Compiler", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false) !2 = !DIFile(filename: "lit-int32-1.scilexp", directory: "codegen/expr") -!3 = !{} -!4 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !5, file: !5, type: !6, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!5 = !DIFile(filename: ".", directory: ".") -!6 = !DISubroutineType(types: !7) -!7 = !{!8} -!8 = !DIBasicType(tag: DW_TAG_unspecified_type, name: "void") -!9 = !DILocation(line: 0, scope: !4) -!10 = distinct !DISubprogram(name: "_scilla_expr_fun", linkageName: "_scilla_expr_fun", scope: !2, file: !2, line: 1, type: !6, scopeLine: 1, spFlags: DISPFlagDefinition, unit: !1, retainedNodes: !3) -!11 = !DILocation(line: 1, column: 1, scope: !10) +!3 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !4, file: !4, type: !5, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!4 = !DIFile(filename: ".", directory: ".") +!5 = !DISubroutineType(types: !6) +!6 = !{!7} +!7 = !DIBasicType(tag: DW_TAG_unspecified_type, name: "void") +!8 = !{} +!9 = !DILocation(line: 0, scope: !3) +!10 = distinct !DISubprogram(name: "_scilla_expr_fun", linkageName: "_scilla_expr_fun", scope: !2, file: !2, line: 1, type: !5, scopeLine: 1, spFlags: DISPFlagDefinition, unit: !1, retainedNodes: !8) +!11 = !DILocalVariable(name: "$expr_6", scope: !10, file: !2, line: 1, type: !12) +!12 = !DIBasicType(name: "Int32", size: 4) +!13 = !DILocation(line: 1, column: 1, scope: !10) diff --git a/testsuite/expr/lit-int32-1.ll b/testsuite/expr/lit-int32-1.ll index 06e46e4c..e88fabb5 100644 --- a/testsuite/expr/lit-int32-1.ll +++ b/testsuite/expr/lit-int32-1.ll @@ -2,7 +2,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-pc-linux-gnu" +target triple = "x86_64-unknown-linux-gnu" %"$TyDescrTy_PrimTyp_7" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/testsuite/expr/lit-int32.dbg.ll b/testsuite/expr/lit-int32.dbg.ll index dd063fea..f1865ead 100644 --- a/testsuite/expr/lit-int32.dbg.ll +++ b/testsuite/expr/lit-int32.dbg.ll @@ -2,7 +2,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-pc-linux-gnu" +target triple = "x86_64-unknown-linux-gnu" %"$TyDescrTy_PrimTyp_7" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } @@ -56,7 +56,7 @@ target triple = "x86_64-pc-linux-gnu" @_transition_parameters = constant [0 x %"$TransDescr_85"] zeroinitializer @_transition_parameters_length = constant i32 0 -define void @_init_libs() !dbg !4 { +define void @_init_libs() !dbg !3 { entry: %"$gasrem_44" = load i64, i64* @_gasrem, align 8 %"$gascmp_45" = icmp ugt i64 5, %"$gasrem_44" @@ -138,6 +138,7 @@ declare void @_out_of_gas() define internal %Int32 @_scilla_expr_fun(i8* %0) !dbg !10 { entry: %"$expr_6" = alloca %Int32, align 8 + call void @llvm.dbg.declare(metadata %Int32* %"$expr_6", metadata !11, metadata !DIExpression()), !dbg !13 %"$gasrem_74" = load i64, i64* @_gasrem, align 8 %"$gascmp_75" = icmp ugt i64 1, %"$gasrem_74" br i1 %"$gascmp_75", label %"$out_of_gas_76", label %"$have_gas_77" @@ -149,11 +150,14 @@ entry: "$have_gas_77": ; preds = %"$out_of_gas_76", %entry %"$consume_78" = sub i64 %"$gasrem_74", 1 store i64 %"$consume_78", i64* @_gasrem, align 8 - store %Int32 { i32 4 }, %Int32* %"$expr_6", align 4, !dbg !11 + store %Int32 { i32 4 }, %Int32* %"$expr_6", align 4, !dbg !13 %"$$expr_6_79" = load %Int32, %Int32* %"$expr_6", align 4 ret %Int32 %"$$expr_6_79" } +; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn +declare void @llvm.dbg.declare(metadata, metadata, metadata) #0 + declare void @_print_scilla_val(i8*, %_TyDescrTy_Typ*, i8*) define void @scilla_main() { @@ -167,18 +171,22 @@ entry: ret void } +attributes #0 = { nocallback nofree nosync nounwind readnone speculatable willreturn } + !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) +!1 = distinct !DICompileUnit(language: DW_LANG_C89, file: !2, producer: "Scilla Compiler", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false) !2 = !DIFile(filename: "lit-int32.scilexp", directory: "codegen/expr") -!3 = !{} -!4 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !5, file: !5, type: !6, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!5 = !DIFile(filename: ".", directory: ".") -!6 = !DISubroutineType(types: !7) -!7 = !{!8} -!8 = !DIBasicType(tag: DW_TAG_unspecified_type, name: "void") -!9 = !DILocation(line: 0, scope: !4) -!10 = distinct !DISubprogram(name: "_scilla_expr_fun", linkageName: "_scilla_expr_fun", scope: !2, file: !2, line: 1, type: !6, scopeLine: 1, spFlags: DISPFlagDefinition, unit: !1, retainedNodes: !3) -!11 = !DILocation(line: 1, column: 1, scope: !10) +!3 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !4, file: !4, type: !5, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!4 = !DIFile(filename: ".", directory: ".") +!5 = !DISubroutineType(types: !6) +!6 = !{!7} +!7 = !DIBasicType(tag: DW_TAG_unspecified_type, name: "void") +!8 = !{} +!9 = !DILocation(line: 0, scope: !3) +!10 = distinct !DISubprogram(name: "_scilla_expr_fun", linkageName: "_scilla_expr_fun", scope: !2, file: !2, line: 1, type: !5, scopeLine: 1, spFlags: DISPFlagDefinition, unit: !1, retainedNodes: !8) +!11 = !DILocalVariable(name: "$expr_6", scope: !10, file: !2, line: 1, type: !12) +!12 = !DIBasicType(name: "Int32", size: 4) +!13 = !DILocation(line: 1, column: 1, scope: !10) diff --git a/testsuite/expr/lit-int32.ll b/testsuite/expr/lit-int32.ll index be51a6f5..134c46fe 100644 --- a/testsuite/expr/lit-int32.ll +++ b/testsuite/expr/lit-int32.ll @@ -2,7 +2,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-pc-linux-gnu" +target triple = "x86_64-unknown-linux-gnu" %"$TyDescrTy_PrimTyp_7" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/testsuite/expr/lit-nat_two.dbg.ll b/testsuite/expr/lit-nat_two.dbg.ll index 3923cd0c..020780bf 100644 --- a/testsuite/expr/lit-nat_two.dbg.ll +++ b/testsuite/expr/lit-nat_two.dbg.ll @@ -5,7 +5,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-pc-linux-gnu" +target triple = "x86_64-unknown-linux-gnu" %"$TyDescrTy_PrimTyp_7" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } @@ -79,7 +79,7 @@ target triple = "x86_64-pc-linux-gnu" @_transition_parameters = constant [0 x %"$TransDescr_141"] zeroinitializer @_transition_parameters_length = constant i32 0 -define void @_init_libs() !dbg !4 { +define void @_init_libs() !dbg !3 { entry: %"$gasrem_57" = load i64, i64* @_gasrem, align 8 %"$gascmp_58" = icmp ugt i64 5, %"$gasrem_57" @@ -161,6 +161,7 @@ declare void @_out_of_gas() define internal %TName_Nat* @_scilla_expr_fun(i8* %0) !dbg !10 { entry: %"$expr_6" = alloca %TName_Nat*, align 8 + call void @llvm.dbg.declare(metadata %TName_Nat** %"$expr_6", metadata !11, metadata !DIExpression()), !dbg !14 %"$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" @@ -173,6 +174,7 @@ entry: %"$consume_91" = sub i64 %"$gasrem_87", 1 store i64 %"$consume_91", i64* @_gasrem, align 8 %zero = alloca %TName_Nat*, align 8 + call void @llvm.dbg.declare(metadata %TName_Nat** %zero, metadata !15, metadata !DIExpression()), !dbg !16 %"$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" @@ -190,7 +192,7 @@ entry: %"$adtgep_98" = getelementptr inbounds %CName_Zero, %CName_Zero* %"$adtval_97", i32 0, i32 0 store i8 0, i8* %"$adtgep_98", align 1 %"$adtptr_99" = bitcast %CName_Zero* %"$adtval_97" to %TName_Nat* - store %TName_Nat* %"$adtptr_99", %TName_Nat** %zero, align 8, !dbg !11 + store %TName_Nat* %"$adtptr_99", %TName_Nat** %zero, align 8, !dbg !14 %"$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" @@ -203,6 +205,7 @@ entry: %"$consume_104" = sub i64 %"$gasrem_100", 1 store i64 %"$consume_104", i64* @_gasrem, align 8 %one = alloca %TName_Nat*, align 8 + call void @llvm.dbg.declare(metadata %TName_Nat** %one, metadata !17, metadata !DIExpression()), !dbg !18 %"$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" @@ -223,7 +226,7 @@ entry: %"$adtgep_113" = getelementptr inbounds %CName_Succ, %CName_Succ* %"$adtval_111", i32 0, i32 1 store %TName_Nat* %"$zero_110", %TName_Nat** %"$adtgep_113", align 8 %"$adtptr_114" = bitcast %CName_Succ* %"$adtval_111" to %TName_Nat* - store %TName_Nat* %"$adtptr_114", %TName_Nat** %one, align 8, !dbg !12 + store %TName_Nat* %"$adtptr_114", %TName_Nat** %one, align 8, !dbg !19 %"$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" @@ -236,6 +239,7 @@ entry: %"$consume_119" = sub i64 %"$gasrem_115", 1 store i64 %"$consume_119", i64* @_gasrem, align 8 %two = alloca %TName_Nat*, align 8 + call void @llvm.dbg.declare(metadata %TName_Nat** %two, metadata !20, metadata !DIExpression()), !dbg !21 %"$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" @@ -256,7 +260,7 @@ entry: %"$adtgep_128" = getelementptr inbounds %CName_Succ, %CName_Succ* %"$adtval_126", i32 0, i32 1 store %TName_Nat* %"$one_125", %TName_Nat** %"$adtgep_128", align 8 %"$adtptr_129" = bitcast %CName_Succ* %"$adtval_126" to %TName_Nat* - store %TName_Nat* %"$adtptr_129", %TName_Nat** %two, align 8, !dbg !13 + store %TName_Nat* %"$adtptr_129", %TName_Nat** %two, align 8, !dbg !22 %"$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" @@ -269,11 +273,14 @@ entry: %"$consume_134" = sub i64 %"$gasrem_130", 1 store i64 %"$consume_134", i64* @_gasrem, align 8 %"$two_135" = load %TName_Nat*, %TName_Nat** %two, align 8 - store %TName_Nat* %"$two_135", %TName_Nat** %"$expr_6", align 8, !dbg !14 + store %TName_Nat* %"$two_135", %TName_Nat** %"$expr_6", align 8, !dbg !23 %"$$expr_6_136" = load %TName_Nat*, %TName_Nat** %"$expr_6", align 8 ret %TName_Nat* %"$$expr_6_136" } +; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn +declare void @llvm.dbg.declare(metadata, metadata, metadata) #0 + declare i8* @_salloc(i8*, i64) declare void @_print_scilla_val(i8*, %_TyDescrTy_Typ*, i8*) @@ -287,21 +294,32 @@ entry: ret void } +attributes #0 = { nocallback nofree nosync nounwind readnone speculatable willreturn } + !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) +!1 = distinct !DICompileUnit(language: DW_LANG_C89, file: !2, producer: "Scilla Compiler", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false) !2 = !DIFile(filename: "lit-nat_two.scilexp", directory: "codegen/expr") -!3 = !{} -!4 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !5, file: !5, type: !6, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!5 = !DIFile(filename: ".", directory: ".") -!6 = !DISubroutineType(types: !7) -!7 = !{!8} -!8 = !DIBasicType(tag: DW_TAG_unspecified_type, name: "void") -!9 = !DILocation(line: 0, scope: !4) -!10 = distinct !DISubprogram(name: "_scilla_expr_fun", linkageName: "_scilla_expr_fun", scope: !2, file: !2, line: 1, type: !6, scopeLine: 1, spFlags: DISPFlagDefinition, unit: !1, retainedNodes: !3) -!11 = !DILocation(line: 1, column: 12, scope: !10) -!12 = !DILocation(line: 2, column: 11, scope: !10) -!13 = !DILocation(line: 3, column: 11, scope: !10) -!14 = !DILocation(line: 4, column: 1, scope: !10) +!3 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !4, file: !4, type: !5, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!4 = !DIFile(filename: ".", directory: ".") +!5 = !DISubroutineType(types: !6) +!6 = !{!7} +!7 = !DIBasicType(tag: DW_TAG_unspecified_type, name: "void") +!8 = !{} +!9 = !DILocation(line: 0, scope: !3) +!10 = distinct !DISubprogram(name: "_scilla_expr_fun", linkageName: "_scilla_expr_fun", scope: !2, file: !2, line: 1, type: !5, scopeLine: 1, spFlags: DISPFlagDefinition, unit: !1, retainedNodes: !8) +!11 = !DILocalVariable(name: "$expr_6", scope: !10, file: !2, line: 1, type: !12) +!12 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "Nat", baseType: !13, size: 8, align: 8, dwarfAddressSpace: 0) +!13 = !DIBasicType(name: "Nat", size: 8) +!14 = !DILocation(line: 1, column: 12, scope: !10) +!15 = !DILocalVariable(name: "zero", scope: !10, file: !2, line: 1, type: !12) +!16 = !DILocation(line: 1, column: 5, scope: !10) +!17 = !DILocalVariable(name: "one", scope: !10, file: !2, line: 2, type: !12) +!18 = !DILocation(line: 2, column: 5, scope: !10) +!19 = !DILocation(line: 2, column: 11, scope: !10) +!20 = !DILocalVariable(name: "two", scope: !10, file: !2, line: 3, type: !12) +!21 = !DILocation(line: 3, column: 5, scope: !10) +!22 = !DILocation(line: 3, column: 11, scope: !10) +!23 = !DILocation(line: 4, column: 1, scope: !10) diff --git a/testsuite/expr/lit-nat_two.ll b/testsuite/expr/lit-nat_two.ll index 59a68fbb..6f48edbf 100644 --- a/testsuite/expr/lit-nat_two.ll +++ b/testsuite/expr/lit-nat_two.ll @@ -5,7 +5,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-pc-linux-gnu" +target triple = "x86_64-unknown-linux-gnu" %"$TyDescrTy_PrimTyp_7" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/testsuite/expr/lit-nat_zero.dbg.ll b/testsuite/expr/lit-nat_zero.dbg.ll index 2824a6e0..8116d861 100644 --- a/testsuite/expr/lit-nat_zero.dbg.ll +++ b/testsuite/expr/lit-nat_zero.dbg.ll @@ -2,7 +2,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-pc-linux-gnu" +target triple = "x86_64-unknown-linux-gnu" %"$TyDescrTy_PrimTyp_7" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } @@ -76,7 +76,7 @@ target triple = "x86_64-pc-linux-gnu" @_transition_parameters = constant [0 x %"$TransDescr_100"] zeroinitializer @_transition_parameters_length = constant i32 0 -define void @_init_libs() !dbg !4 { +define void @_init_libs() !dbg !3 { entry: %"$gasrem_57" = load i64, i64* @_gasrem, align 8 %"$gascmp_58" = icmp ugt i64 5, %"$gasrem_57" @@ -158,6 +158,7 @@ declare void @_out_of_gas() define internal %TName_Nat* @_scilla_expr_fun(i8* %0) !dbg !10 { entry: %"$expr_6" = alloca %TName_Nat*, align 8 + call void @llvm.dbg.declare(metadata %TName_Nat** %"$expr_6", metadata !11, metadata !DIExpression()), !dbg !14 %"$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" @@ -175,11 +176,14 @@ entry: %"$adtgep_93" = getelementptr inbounds %CName_Zero, %CName_Zero* %"$adtval_92", i32 0, i32 0 store i8 0, i8* %"$adtgep_93", align 1 %"$adtptr_94" = bitcast %CName_Zero* %"$adtval_92" to %TName_Nat* - store %TName_Nat* %"$adtptr_94", %TName_Nat** %"$expr_6", align 8, !dbg !11 + store %TName_Nat* %"$adtptr_94", %TName_Nat** %"$expr_6", align 8, !dbg !14 %"$$expr_6_95" = load %TName_Nat*, %TName_Nat** %"$expr_6", align 8 ret %TName_Nat* %"$$expr_6_95" } +; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn +declare void @llvm.dbg.declare(metadata, metadata, metadata) #0 + declare i8* @_salloc(i8*, i64) declare void @_print_scilla_val(i8*, %_TyDescrTy_Typ*, i8*) @@ -193,18 +197,23 @@ entry: ret void } +attributes #0 = { nocallback nofree nosync nounwind readnone speculatable willreturn } + !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) +!1 = distinct !DICompileUnit(language: DW_LANG_C89, file: !2, producer: "Scilla Compiler", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false) !2 = !DIFile(filename: "lit-nat_zero.scilexp", directory: "codegen/expr") -!3 = !{} -!4 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !5, file: !5, type: !6, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!5 = !DIFile(filename: ".", directory: ".") -!6 = !DISubroutineType(types: !7) -!7 = !{!8} -!8 = !DIBasicType(tag: DW_TAG_unspecified_type, name: "void") -!9 = !DILocation(line: 0, scope: !4) -!10 = distinct !DISubprogram(name: "_scilla_expr_fun", linkageName: "_scilla_expr_fun", scope: !2, file: !2, line: 1, type: !6, scopeLine: 1, spFlags: DISPFlagDefinition, unit: !1, retainedNodes: !3) -!11 = !DILocation(line: 1, column: 1, scope: !10) +!3 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !4, file: !4, type: !5, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!4 = !DIFile(filename: ".", directory: ".") +!5 = !DISubroutineType(types: !6) +!6 = !{!7} +!7 = !DIBasicType(tag: DW_TAG_unspecified_type, name: "void") +!8 = !{} +!9 = !DILocation(line: 0, scope: !3) +!10 = distinct !DISubprogram(name: "_scilla_expr_fun", linkageName: "_scilla_expr_fun", scope: !2, file: !2, line: 1, type: !5, scopeLine: 1, spFlags: DISPFlagDefinition, unit: !1, retainedNodes: !8) +!11 = !DILocalVariable(name: "$expr_6", scope: !10, file: !2, line: 1, type: !12) +!12 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "Nat", baseType: !13, size: 8, align: 8, dwarfAddressSpace: 0) +!13 = !DIBasicType(name: "Nat", size: 8) +!14 = !DILocation(line: 1, column: 1, scope: !10) diff --git a/testsuite/expr/lit-nat_zero.ll b/testsuite/expr/lit-nat_zero.ll index f0c3b5df..2cbde798 100644 --- a/testsuite/expr/lit-nat_zero.ll +++ b/testsuite/expr/lit-nat_zero.ll @@ -2,7 +2,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-pc-linux-gnu" +target triple = "x86_64-unknown-linux-gnu" %"$TyDescrTy_PrimTyp_7" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/testsuite/expr/lit-nil.dbg.ll b/testsuite/expr/lit-nil.dbg.ll index fbab187e..2944dc72 100644 --- a/testsuite/expr/lit-nil.dbg.ll +++ b/testsuite/expr/lit-nil.dbg.ll @@ -2,7 +2,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-pc-linux-gnu" +target triple = "x86_64-unknown-linux-gnu" %"$TyDescrTy_PrimTyp_7" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } @@ -76,7 +76,7 @@ target triple = "x86_64-pc-linux-gnu" @_transition_parameters = constant [0 x %"$TransDescr_100"] zeroinitializer @_transition_parameters_length = constant i32 0 -define void @_init_libs() !dbg !4 { +define void @_init_libs() !dbg !3 { entry: %"$gasrem_57" = load i64, i64* @_gasrem, align 8 %"$gascmp_58" = icmp ugt i64 5, %"$gasrem_57" @@ -158,6 +158,7 @@ declare void @_out_of_gas() define internal %TName_List_Int32* @_scilla_expr_fun(i8* %0) !dbg !10 { entry: %"$expr_6" = alloca %TName_List_Int32*, align 8 + call void @llvm.dbg.declare(metadata %TName_List_Int32** %"$expr_6", metadata !11, metadata !DIExpression()), !dbg !14 %"$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" @@ -175,11 +176,14 @@ entry: %"$adtgep_93" = getelementptr inbounds %CName_Nil_Int32, %CName_Nil_Int32* %"$adtval_92", i32 0, i32 0 store i8 1, i8* %"$adtgep_93", align 1 %"$adtptr_94" = bitcast %CName_Nil_Int32* %"$adtval_92" to %TName_List_Int32* - store %TName_List_Int32* %"$adtptr_94", %TName_List_Int32** %"$expr_6", align 8, !dbg !11 + store %TName_List_Int32* %"$adtptr_94", %TName_List_Int32** %"$expr_6", align 8, !dbg !14 %"$$expr_6_95" = load %TName_List_Int32*, %TName_List_Int32** %"$expr_6", align 8 ret %TName_List_Int32* %"$$expr_6_95" } +; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn +declare void @llvm.dbg.declare(metadata, metadata, metadata) #0 + declare i8* @_salloc(i8*, i64) declare void @_print_scilla_val(i8*, %_TyDescrTy_Typ*, i8*) @@ -193,18 +197,23 @@ entry: ret void } +attributes #0 = { nocallback nofree nosync nounwind readnone speculatable willreturn } + !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) +!1 = distinct !DICompileUnit(language: DW_LANG_C89, file: !2, producer: "Scilla Compiler", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false) !2 = !DIFile(filename: "lit-nil.scilexp", directory: "codegen/expr") -!3 = !{} -!4 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !5, file: !5, type: !6, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!5 = !DIFile(filename: ".", directory: ".") -!6 = !DISubroutineType(types: !7) -!7 = !{!8} -!8 = !DIBasicType(tag: DW_TAG_unspecified_type, name: "void") -!9 = !DILocation(line: 0, scope: !4) -!10 = distinct !DISubprogram(name: "_scilla_expr_fun", linkageName: "_scilla_expr_fun", scope: !2, file: !2, line: 1, type: !6, scopeLine: 1, spFlags: DISPFlagDefinition, unit: !1, retainedNodes: !3) -!11 = !DILocation(line: 1, column: 1, scope: !10) +!3 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !4, file: !4, type: !5, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!4 = !DIFile(filename: ".", directory: ".") +!5 = !DISubroutineType(types: !6) +!6 = !{!7} +!7 = !DIBasicType(tag: DW_TAG_unspecified_type, name: "void") +!8 = !{} +!9 = !DILocation(line: 0, scope: !3) +!10 = distinct !DISubprogram(name: "_scilla_expr_fun", linkageName: "_scilla_expr_fun", scope: !2, file: !2, line: 1, type: !5, scopeLine: 1, spFlags: DISPFlagDefinition, unit: !1, retainedNodes: !8) +!11 = !DILocalVariable(name: "$expr_6", scope: !10, file: !2, line: 1, type: !12) +!12 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "List (Int32)", baseType: !13, size: 8, align: 8, dwarfAddressSpace: 0) +!13 = !DIBasicType(name: "List (Int32)", size: 8) +!14 = !DILocation(line: 1, column: 1, scope: !10) diff --git a/testsuite/expr/lit-nil.ll b/testsuite/expr/lit-nil.ll index be0defac..cce0b0a7 100644 --- a/testsuite/expr/lit-nil.ll +++ b/testsuite/expr/lit-nil.ll @@ -2,7 +2,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-pc-linux-gnu" +target triple = "x86_64-unknown-linux-gnu" %"$TyDescrTy_PrimTyp_7" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/testsuite/expr/lit-pair-list-int.dbg.ll b/testsuite/expr/lit-pair-list-int.dbg.ll index efbd954b..a49bec40 100644 --- a/testsuite/expr/lit-pair-list-int.dbg.ll +++ b/testsuite/expr/lit-pair-list-int.dbg.ll @@ -8,7 +8,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-pc-linux-gnu" +target triple = "x86_64-unknown-linux-gnu" %"$TyDescrTy_PrimTyp_7" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } @@ -108,7 +108,7 @@ target triple = "x86_64-pc-linux-gnu" @_transition_parameters = constant [0 x %"$TransDescr_204"] zeroinitializer @_transition_parameters_length = constant i32 0 -define void @_init_libs() !dbg !4 { +define void @_init_libs() !dbg !3 { entry: %"$gasrem_77" = load i64, i64* @_gasrem, align 8 %"$gascmp_78" = icmp ugt i64 5, %"$gasrem_77" @@ -190,6 +190,7 @@ declare void @_out_of_gas() define internal %"TName_Pair_List_(Int32)_List_(Uint32)"* @_scilla_expr_fun(i8* %0) !dbg !10 { entry: %"$expr_6" = alloca %"TName_Pair_List_(Int32)_List_(Uint32)"*, align 8 + call void @llvm.dbg.declare(metadata %"TName_Pair_List_(Int32)_List_(Uint32)"** %"$expr_6", metadata !11, metadata !DIExpression()), !dbg !14 %"$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" @@ -202,6 +203,7 @@ entry: %"$consume_111" = sub i64 %"$gasrem_107", 1 store i64 %"$consume_111", i64* @_gasrem, align 8 %nil_int32 = alloca %TName_List_Int32*, align 8 + call void @llvm.dbg.declare(metadata %TName_List_Int32** %nil_int32, metadata !15, metadata !DIExpression()), !dbg !18 %"$gasrem_112" = load i64, i64* @_gasrem, align 8 %"$gascmp_113" = icmp ugt i64 1, %"$gasrem_112" br i1 %"$gascmp_113", label %"$out_of_gas_114", label %"$have_gas_115" @@ -219,7 +221,7 @@ entry: %"$adtgep_118" = getelementptr inbounds %CName_Nil_Int32, %CName_Nil_Int32* %"$adtval_117", i32 0, i32 0 store i8 1, i8* %"$adtgep_118", align 1 %"$adtptr_119" = bitcast %CName_Nil_Int32* %"$adtval_117" to %TName_List_Int32* - store %TName_List_Int32* %"$adtptr_119", %TName_List_Int32** %nil_int32, align 8, !dbg !11 + store %TName_List_Int32* %"$adtptr_119", %TName_List_Int32** %nil_int32, align 8, !dbg !14 %"$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" @@ -232,6 +234,7 @@ entry: %"$consume_124" = sub i64 %"$gasrem_120", 1 store i64 %"$consume_124", i64* @_gasrem, align 8 %ione = alloca %Int32, align 8 + call void @llvm.dbg.declare(metadata %Int32* %ione, metadata !19, metadata !DIExpression()), !dbg !21 %"$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" @@ -243,7 +246,7 @@ entry: "$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 - store %Int32 { i32 1 }, %Int32* %ione, align 4, !dbg !12 + store %Int32 { i32 1 }, %Int32* %ione, align 4, !dbg !22 %"$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" @@ -256,6 +259,7 @@ entry: %"$consume_134" = sub i64 %"$gasrem_130", 1 store i64 %"$consume_134", i64* @_gasrem, align 8 %cons_int32 = alloca %TName_List_Int32*, align 8 + call void @llvm.dbg.declare(metadata %TName_List_Int32** %cons_int32, metadata !23, metadata !DIExpression()), !dbg !24 %"$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" @@ -279,7 +283,7 @@ entry: %"$adtgep_145" = getelementptr inbounds %CName_Cons_Int32, %CName_Cons_Int32* %"$adtval_142", i32 0, i32 2 store %TName_List_Int32* %"$nil_int32_141", %TName_List_Int32** %"$adtgep_145", align 8 %"$adtptr_146" = bitcast %CName_Cons_Int32* %"$adtval_142" to %TName_List_Int32* - store %TName_List_Int32* %"$adtptr_146", %TName_List_Int32** %cons_int32, align 8, !dbg !13 + store %TName_List_Int32* %"$adtptr_146", %TName_List_Int32** %cons_int32, align 8, !dbg !25 %"$gasrem_147" = load i64, i64* @_gasrem, align 8 %"$gascmp_148" = icmp ugt i64 1, %"$gasrem_147" br i1 %"$gascmp_148", label %"$out_of_gas_149", label %"$have_gas_150" @@ -292,6 +296,7 @@ entry: %"$consume_151" = sub i64 %"$gasrem_147", 1 store i64 %"$consume_151", i64* @_gasrem, align 8 %nil_uint32 = alloca %TName_List_Uint32*, align 8 + call void @llvm.dbg.declare(metadata %TName_List_Uint32** %nil_uint32, metadata !26, metadata !DIExpression()), !dbg !29 %"$gasrem_152" = load i64, i64* @_gasrem, align 8 %"$gascmp_153" = icmp ugt i64 1, %"$gasrem_152" br i1 %"$gascmp_153", label %"$out_of_gas_154", label %"$have_gas_155" @@ -309,7 +314,7 @@ entry: %"$adtgep_158" = getelementptr inbounds %CName_Nil_Uint32, %CName_Nil_Uint32* %"$adtval_157", i32 0, i32 0 store i8 1, i8* %"$adtgep_158", align 1 %"$adtptr_159" = bitcast %CName_Nil_Uint32* %"$adtval_157" to %TName_List_Uint32* - store %TName_List_Uint32* %"$adtptr_159", %TName_List_Uint32** %nil_uint32, align 8, !dbg !14 + store %TName_List_Uint32* %"$adtptr_159", %TName_List_Uint32** %nil_uint32, align 8, !dbg !30 %"$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" @@ -322,6 +327,7 @@ entry: %"$consume_164" = sub i64 %"$gasrem_160", 1 store i64 %"$consume_164", i64* @_gasrem, align 8 %uione = alloca %Uint32, align 8 + call void @llvm.dbg.declare(metadata %Uint32* %uione, metadata !31, metadata !DIExpression()), !dbg !33 %"$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" @@ -333,7 +339,7 @@ entry: "$have_gas_168": ; preds = %"$out_of_gas_167", %"$have_gas_163" %"$consume_169" = sub i64 %"$gasrem_165", 1 store i64 %"$consume_169", i64* @_gasrem, align 8 - store %Uint32 { i32 1 }, %Uint32* %uione, align 4, !dbg !15 + store %Uint32 { i32 1 }, %Uint32* %uione, align 4, !dbg !34 %"$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" @@ -346,6 +352,7 @@ entry: %"$consume_174" = sub i64 %"$gasrem_170", 1 store i64 %"$consume_174", i64* @_gasrem, align 8 %cons_uint32 = alloca %TName_List_Uint32*, align 8 + call void @llvm.dbg.declare(metadata %TName_List_Uint32** %cons_uint32, metadata !35, metadata !DIExpression()), !dbg !36 %"$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" @@ -369,7 +376,7 @@ entry: %"$adtgep_185" = getelementptr inbounds %CName_Cons_Uint32, %CName_Cons_Uint32* %"$adtval_182", i32 0, i32 2 store %TName_List_Uint32* %"$nil_uint32_181", %TName_List_Uint32** %"$adtgep_185", align 8 %"$adtptr_186" = bitcast %CName_Cons_Uint32* %"$adtval_182" to %TName_List_Uint32* - store %TName_List_Uint32* %"$adtptr_186", %TName_List_Uint32** %cons_uint32, align 8, !dbg !16 + store %TName_List_Uint32* %"$adtptr_186", %TName_List_Uint32** %cons_uint32, align 8, !dbg !37 %"$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" @@ -393,11 +400,14 @@ entry: %"$adtgep_197" = getelementptr inbounds %"CName_Pair_List_(Int32)_List_(Uint32)", %"CName_Pair_List_(Int32)_List_(Uint32)"* %"$adtval_194", i32 0, i32 2 store %TName_List_Uint32* %"$cons_uint32_193", %TName_List_Uint32** %"$adtgep_197", align 8 %"$adtptr_198" = bitcast %"CName_Pair_List_(Int32)_List_(Uint32)"* %"$adtval_194" to %"TName_Pair_List_(Int32)_List_(Uint32)"* - store %"TName_Pair_List_(Int32)_List_(Uint32)"* %"$adtptr_198", %"TName_Pair_List_(Int32)_List_(Uint32)"** %"$expr_6", align 8, !dbg !17 + store %"TName_Pair_List_(Int32)_List_(Uint32)"* %"$adtptr_198", %"TName_Pair_List_(Int32)_List_(Uint32)"** %"$expr_6", align 8, !dbg !38 %"$$expr_6_199" = load %"TName_Pair_List_(Int32)_List_(Uint32)"*, %"TName_Pair_List_(Int32)_List_(Uint32)"** %"$expr_6", align 8 ret %"TName_Pair_List_(Int32)_List_(Uint32)"* %"$$expr_6_199" } +; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn +declare void @llvm.dbg.declare(metadata, metadata, metadata) #0 + declare i8* @_salloc(i8*, i64) declare void @_print_scilla_val(i8*, %_TyDescrTy_Typ*, i8*) @@ -411,24 +421,47 @@ entry: ret void } +attributes #0 = { nocallback nofree nosync nounwind readnone speculatable willreturn } + !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) +!1 = distinct !DICompileUnit(language: DW_LANG_C89, file: !2, producer: "Scilla Compiler", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false) !2 = !DIFile(filename: "lit-pair-list-int.scilexp", directory: "codegen/expr") -!3 = !{} -!4 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !5, file: !5, type: !6, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!5 = !DIFile(filename: ".", directory: ".") -!6 = !DISubroutineType(types: !7) -!7 = !{!8} -!8 = !DIBasicType(tag: DW_TAG_unspecified_type, name: "void") -!9 = !DILocation(line: 0, scope: !4) -!10 = distinct !DISubprogram(name: "_scilla_expr_fun", linkageName: "_scilla_expr_fun", scope: !2, file: !2, line: 1, type: !6, scopeLine: 1, spFlags: DISPFlagDefinition, unit: !1, retainedNodes: !3) -!11 = !DILocation(line: 1, column: 17, scope: !10) -!12 = !DILocation(line: 2, column: 12, scope: !10) -!13 = !DILocation(line: 3, column: 18, scope: !10) -!14 = !DILocation(line: 4, column: 18, scope: !10) -!15 = !DILocation(line: 5, column: 13, scope: !10) -!16 = !DILocation(line: 6, column: 19, scope: !10) -!17 = !DILocation(line: 7, column: 1, scope: !10) +!3 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !4, file: !4, type: !5, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!4 = !DIFile(filename: ".", directory: ".") +!5 = !DISubroutineType(types: !6) +!6 = !{!7} +!7 = !DIBasicType(tag: DW_TAG_unspecified_type, name: "void") +!8 = !{} +!9 = !DILocation(line: 0, scope: !3) +!10 = distinct !DISubprogram(name: "_scilla_expr_fun", linkageName: "_scilla_expr_fun", scope: !2, file: !2, line: 1, type: !5, scopeLine: 1, spFlags: DISPFlagDefinition, unit: !1, retainedNodes: !8) +!11 = !DILocalVariable(name: "$expr_6", scope: !10, file: !2, line: 1, type: !12) +!12 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "Pair (List (Int32)) (List (Uint32))", baseType: !13, size: 8, align: 8, dwarfAddressSpace: 0) +!13 = !DIBasicType(name: "Pair (List (Int32)) (List (Uint32))", size: 8) +!14 = !DILocation(line: 1, column: 17, scope: !10) +!15 = !DILocalVariable(name: "nil_int32", scope: !10, file: !2, line: 1, type: !16) +!16 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "List (Int32)", baseType: !17, size: 8, align: 8, dwarfAddressSpace: 0) +!17 = !DIBasicType(name: "List (Int32)", size: 8) +!18 = !DILocation(line: 1, column: 5, scope: !10) +!19 = !DILocalVariable(name: "ione", scope: !10, file: !2, line: 2, type: !20) +!20 = !DIBasicType(name: "Int32", size: 4) +!21 = !DILocation(line: 2, column: 5, scope: !10) +!22 = !DILocation(line: 2, column: 12, scope: !10) +!23 = !DILocalVariable(name: "cons_int32", scope: !10, file: !2, line: 3, type: !16) +!24 = !DILocation(line: 3, column: 5, scope: !10) +!25 = !DILocation(line: 3, column: 18, scope: !10) +!26 = !DILocalVariable(name: "nil_uint32", scope: !10, file: !2, line: 4, type: !27) +!27 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "List (Uint32)", baseType: !28, size: 8, align: 8, dwarfAddressSpace: 0) +!28 = !DIBasicType(name: "List (Uint32)", size: 8) +!29 = !DILocation(line: 4, column: 5, scope: !10) +!30 = !DILocation(line: 4, column: 18, scope: !10) +!31 = !DILocalVariable(name: "uione", scope: !10, file: !2, line: 5, type: !32) +!32 = !DIBasicType(name: "Uint32", size: 4) +!33 = !DILocation(line: 5, column: 5, scope: !10) +!34 = !DILocation(line: 5, column: 13, scope: !10) +!35 = !DILocalVariable(name: "cons_uint32", scope: !10, file: !2, line: 6, type: !27) +!36 = !DILocation(line: 6, column: 5, scope: !10) +!37 = !DILocation(line: 6, column: 19, scope: !10) +!38 = !DILocation(line: 7, column: 1, scope: !10) diff --git a/testsuite/expr/lit-pair-list-int.ll b/testsuite/expr/lit-pair-list-int.ll index 21922c70..17ec4486 100644 --- a/testsuite/expr/lit-pair-list-int.ll +++ b/testsuite/expr/lit-pair-list-int.ll @@ -8,7 +8,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-pc-linux-gnu" +target triple = "x86_64-unknown-linux-gnu" %"$TyDescrTy_PrimTyp_7" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/testsuite/expr/lit-string.dbg.ll b/testsuite/expr/lit-string.dbg.ll index dac6efb9..15c9a83d 100644 --- a/testsuite/expr/lit-string.dbg.ll +++ b/testsuite/expr/lit-string.dbg.ll @@ -2,7 +2,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-pc-linux-gnu" +target triple = "x86_64-unknown-linux-gnu" %"$TyDescrTy_PrimTyp_7" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } @@ -58,7 +58,7 @@ target triple = "x86_64-pc-linux-gnu" @_transition_parameters = constant [0 x %"$TransDescr_86"] zeroinitializer @_transition_parameters_length = constant i32 0 -define void @_init_libs() !dbg !4 { +define void @_init_libs() !dbg !3 { entry: %"$gasrem_44" = load i64, i64* @_gasrem, align 8 %"$gascmp_45" = icmp ugt i64 5, %"$gasrem_44" @@ -140,6 +140,7 @@ declare void @_out_of_gas() define internal %String @_scilla_expr_fun(i8* %0) !dbg !10 { entry: %"$expr_6" = alloca %String, align 8 + call void @llvm.dbg.declare(metadata %String* %"$expr_6", metadata !11, metadata !DIExpression()), !dbg !13 %"$gasrem_74" = load i64, i64* @_gasrem, align 8 %"$gascmp_75" = icmp ugt i64 1, %"$gasrem_74" br i1 %"$gascmp_75", label %"$out_of_gas_76", label %"$have_gas_77" @@ -151,11 +152,14 @@ entry: "$have_gas_77": ; preds = %"$out_of_gas_76", %entry %"$consume_78" = sub i64 %"$gasrem_74", 1 store i64 %"$consume_78", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([11 x i8], [11 x i8]* @"$stringlit_79", i32 0, i32 0), i32 11 }, %String* %"$expr_6", align 8, !dbg !11 + store %String { i8* getelementptr inbounds ([11 x i8], [11 x i8]* @"$stringlit_79", i32 0, i32 0), i32 11 }, %String* %"$expr_6", align 8, !dbg !13 %"$$expr_6_80" = load %String, %String* %"$expr_6", align 8 ret %String %"$$expr_6_80" } +; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn +declare void @llvm.dbg.declare(metadata, metadata, metadata) #0 + declare void @_print_scilla_val(i8*, %_TyDescrTy_Typ*, i8*) define void @scilla_main() { @@ -169,18 +173,22 @@ entry: ret void } +attributes #0 = { nocallback nofree nosync nounwind readnone speculatable willreturn } + !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) +!1 = distinct !DICompileUnit(language: DW_LANG_C89, file: !2, producer: "Scilla Compiler", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false) !2 = !DIFile(filename: "lit-string.scilexp", directory: "codegen/expr") -!3 = !{} -!4 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !5, file: !5, type: !6, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!5 = !DIFile(filename: ".", directory: ".") -!6 = !DISubroutineType(types: !7) -!7 = !{!8} -!8 = !DIBasicType(tag: DW_TAG_unspecified_type, name: "void") -!9 = !DILocation(line: 0, scope: !4) -!10 = distinct !DISubprogram(name: "_scilla_expr_fun", linkageName: "_scilla_expr_fun", scope: !2, file: !2, line: 1, type: !6, scopeLine: 1, spFlags: DISPFlagDefinition, unit: !1, retainedNodes: !3) -!11 = !DILocation(line: 1, column: 13, scope: !10) +!3 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !4, file: !4, type: !5, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!4 = !DIFile(filename: ".", directory: ".") +!5 = !DISubroutineType(types: !6) +!6 = !{!7} +!7 = !DIBasicType(tag: DW_TAG_unspecified_type, name: "void") +!8 = !{} +!9 = !DILocation(line: 0, scope: !3) +!10 = distinct !DISubprogram(name: "_scilla_expr_fun", linkageName: "_scilla_expr_fun", scope: !2, file: !2, line: 1, type: !5, scopeLine: 1, spFlags: DISPFlagDefinition, unit: !1, retainedNodes: !8) +!11 = !DILocalVariable(name: "$expr_6", scope: !10, file: !2, line: 1, type: !12) +!12 = !DIBasicType(name: "String", size: 16) +!13 = !DILocation(line: 1, column: 13, scope: !10) diff --git a/testsuite/expr/lit-string.ll b/testsuite/expr/lit-string.ll index 06238359..ad6afc30 100644 --- a/testsuite/expr/lit-string.ll +++ b/testsuite/expr/lit-string.ll @@ -2,7 +2,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-pc-linux-gnu" +target triple = "x86_64-unknown-linux-gnu" %"$TyDescrTy_PrimTyp_7" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/testsuite/expr/lit-ui256-4.dbg.ll b/testsuite/expr/lit-ui256-4.dbg.ll index 5b54d978..656cf47e 100644 --- a/testsuite/expr/lit-ui256-4.dbg.ll +++ b/testsuite/expr/lit-ui256-4.dbg.ll @@ -2,7 +2,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-pc-linux-gnu" +target triple = "x86_64-unknown-linux-gnu" %"$TyDescrTy_PrimTyp_7" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } @@ -57,7 +57,7 @@ target triple = "x86_64-pc-linux-gnu" @_transition_parameters = constant [0 x %"$TransDescr_84"] zeroinitializer @_transition_parameters_length = constant i32 0 -define void @_init_libs() !dbg !4 { +define void @_init_libs() !dbg !3 { entry: %"$gasrem_44" = load i64, i64* @_gasrem, align 8 %"$gascmp_45" = icmp ugt i64 5, %"$gasrem_44" @@ -139,6 +139,7 @@ declare void @_out_of_gas() define internal void @_scilla_expr_fun(i8* %0, %Uint256* %1) !dbg !10 { entry: %"$expr_6" = alloca %Uint256, align 8 + call void @llvm.dbg.declare(metadata %Uint256* %"$expr_6", metadata !11, metadata !DIExpression()), !dbg !13 %"$gasrem_74" = load i64, i64* @_gasrem, align 8 %"$gascmp_75" = icmp ugt i64 1, %"$gasrem_74" br i1 %"$gascmp_75", label %"$out_of_gas_76", label %"$have_gas_77" @@ -150,12 +151,15 @@ entry: "$have_gas_77": ; preds = %"$out_of_gas_76", %entry %"$consume_78" = sub i64 %"$gasrem_74", 1 store i64 %"$consume_78", i64* @_gasrem, align 8 - store %Uint256 { i256 4 }, %Uint256* %"$expr_6", align 8, !dbg !11 + store %Uint256 { i256 4 }, %Uint256* %"$expr_6", align 8, !dbg !13 %"$$expr_6_79" = load %Uint256, %Uint256* %"$expr_6", align 8 store %Uint256 %"$$expr_6_79", %Uint256* %1, align 8 ret void } +; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn +declare void @llvm.dbg.declare(metadata, metadata, metadata) #0 + declare void @_print_scilla_val(i8*, %_TyDescrTy_Typ*, i8*) define void @scilla_main() { @@ -168,18 +172,22 @@ entry: ret void } +attributes #0 = { nocallback nofree nosync nounwind readnone speculatable willreturn } + !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) +!1 = distinct !DICompileUnit(language: DW_LANG_C89, file: !2, producer: "Scilla Compiler", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false) !2 = !DIFile(filename: "lit-ui256-4.scilexp", directory: "codegen/expr") -!3 = !{} -!4 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !5, file: !5, type: !6, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!5 = !DIFile(filename: ".", directory: ".") -!6 = !DISubroutineType(types: !7) -!7 = !{!8} -!8 = !DIBasicType(tag: DW_TAG_unspecified_type, name: "void") -!9 = !DILocation(line: 0, scope: !4) -!10 = distinct !DISubprogram(name: "_scilla_expr_fun", linkageName: "_scilla_expr_fun", scope: !2, file: !2, line: 1, type: !6, scopeLine: 1, spFlags: DISPFlagDefinition, unit: !1, retainedNodes: !3) -!11 = !DILocation(line: 1, column: 1, scope: !10) +!3 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !4, file: !4, type: !5, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!4 = !DIFile(filename: ".", directory: ".") +!5 = !DISubroutineType(types: !6) +!6 = !{!7} +!7 = !DIBasicType(tag: DW_TAG_unspecified_type, name: "void") +!8 = !{} +!9 = !DILocation(line: 0, scope: !3) +!10 = distinct !DISubprogram(name: "_scilla_expr_fun", linkageName: "_scilla_expr_fun", scope: !2, file: !2, line: 1, type: !5, scopeLine: 1, spFlags: DISPFlagDefinition, unit: !1, retainedNodes: !8) +!11 = !DILocalVariable(name: "$expr_6", scope: !10, file: !2, line: 1, type: !12) +!12 = !DIBasicType(name: "Uint256", size: 32) +!13 = !DILocation(line: 1, column: 1, scope: !10) diff --git a/testsuite/expr/lit-ui256-4.ll b/testsuite/expr/lit-ui256-4.ll index 1243f847..455e2f6a 100644 --- a/testsuite/expr/lit-ui256-4.ll +++ b/testsuite/expr/lit-ui256-4.ll @@ -2,7 +2,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-pc-linux-gnu" +target triple = "x86_64-unknown-linux-gnu" %"$TyDescrTy_PrimTyp_7" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/testsuite/expr/lit-ui256-max.dbg.ll b/testsuite/expr/lit-ui256-max.dbg.ll index 396ed4a6..eff5e7a8 100644 --- a/testsuite/expr/lit-ui256-max.dbg.ll +++ b/testsuite/expr/lit-ui256-max.dbg.ll @@ -2,7 +2,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-pc-linux-gnu" +target triple = "x86_64-unknown-linux-gnu" %"$TyDescrTy_PrimTyp_7" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } @@ -57,7 +57,7 @@ target triple = "x86_64-pc-linux-gnu" @_transition_parameters = constant [0 x %"$TransDescr_84"] zeroinitializer @_transition_parameters_length = constant i32 0 -define void @_init_libs() !dbg !4 { +define void @_init_libs() !dbg !3 { entry: %"$gasrem_44" = load i64, i64* @_gasrem, align 8 %"$gascmp_45" = icmp ugt i64 5, %"$gasrem_44" @@ -139,6 +139,7 @@ declare void @_out_of_gas() define internal void @_scilla_expr_fun(i8* %0, %Uint256* %1) !dbg !10 { entry: %"$expr_6" = alloca %Uint256, align 8 + call void @llvm.dbg.declare(metadata %Uint256* %"$expr_6", metadata !11, metadata !DIExpression()), !dbg !13 %"$gasrem_74" = load i64, i64* @_gasrem, align 8 %"$gascmp_75" = icmp ugt i64 1, %"$gasrem_74" br i1 %"$gascmp_75", label %"$out_of_gas_76", label %"$have_gas_77" @@ -150,12 +151,15 @@ entry: "$have_gas_77": ; preds = %"$out_of_gas_76", %entry %"$consume_78" = sub i64 %"$gasrem_74", 1 store i64 %"$consume_78", i64* @_gasrem, align 8 - store %Uint256 { i256 -1 }, %Uint256* %"$expr_6", align 8, !dbg !11 + store %Uint256 { i256 -1 }, %Uint256* %"$expr_6", align 8, !dbg !13 %"$$expr_6_79" = load %Uint256, %Uint256* %"$expr_6", align 8 store %Uint256 %"$$expr_6_79", %Uint256* %1, align 8 ret void } +; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn +declare void @llvm.dbg.declare(metadata, metadata, metadata) #0 + declare void @_print_scilla_val(i8*, %_TyDescrTy_Typ*, i8*) define void @scilla_main() { @@ -168,18 +172,22 @@ entry: ret void } +attributes #0 = { nocallback nofree nosync nounwind readnone speculatable willreturn } + !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) +!1 = distinct !DICompileUnit(language: DW_LANG_C89, file: !2, producer: "Scilla Compiler", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false) !2 = !DIFile(filename: "lit-ui256-max.scilexp", directory: "codegen/expr") -!3 = !{} -!4 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !5, file: !5, type: !6, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!5 = !DIFile(filename: ".", directory: ".") -!6 = !DISubroutineType(types: !7) -!7 = !{!8} -!8 = !DIBasicType(tag: DW_TAG_unspecified_type, name: "void") -!9 = !DILocation(line: 0, scope: !4) -!10 = distinct !DISubprogram(name: "_scilla_expr_fun", linkageName: "_scilla_expr_fun", scope: !2, file: !2, line: 1, type: !6, scopeLine: 1, spFlags: DISPFlagDefinition, unit: !1, retainedNodes: !3) -!11 = !DILocation(line: 1, column: 1, scope: !10) +!3 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !4, file: !4, type: !5, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!4 = !DIFile(filename: ".", directory: ".") +!5 = !DISubroutineType(types: !6) +!6 = !{!7} +!7 = !DIBasicType(tag: DW_TAG_unspecified_type, name: "void") +!8 = !{} +!9 = !DILocation(line: 0, scope: !3) +!10 = distinct !DISubprogram(name: "_scilla_expr_fun", linkageName: "_scilla_expr_fun", scope: !2, file: !2, line: 1, type: !5, scopeLine: 1, spFlags: DISPFlagDefinition, unit: !1, retainedNodes: !8) +!11 = !DILocalVariable(name: "$expr_6", scope: !10, file: !2, line: 1, type: !12) +!12 = !DIBasicType(name: "Uint256", size: 32) +!13 = !DILocation(line: 1, column: 1, scope: !10) diff --git a/testsuite/expr/lit-ui256-max.ll b/testsuite/expr/lit-ui256-max.ll index e133f263..60f4fc91 100644 --- a/testsuite/expr/lit-ui256-max.ll +++ b/testsuite/expr/lit-ui256-max.ll @@ -2,7 +2,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-pc-linux-gnu" +target triple = "x86_64-unknown-linux-gnu" %"$TyDescrTy_PrimTyp_7" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/testsuite/expr/map1.dbg.ll b/testsuite/expr/map1.dbg.ll index e1f4363a..93cba6b6 100644 --- a/testsuite/expr/map1.dbg.ll +++ b/testsuite/expr/map1.dbg.ll @@ -5,7 +5,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-pc-linux-gnu" +target triple = "x86_64-unknown-linux-gnu" %"$TyDescrTy_PrimTyp_7" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } @@ -91,7 +91,7 @@ target triple = "x86_64-pc-linux-gnu" @_transition_parameters = constant [0 x %"$TransDescr_136"] zeroinitializer @_transition_parameters_length = constant i32 0 -define void @_init_libs() !dbg !4 { +define void @_init_libs() !dbg !3 { entry: %"$gasrem_63" = load i64, i64* @_gasrem, align 8 %"$gascmp_64" = icmp ugt i64 5, %"$gasrem_63" @@ -173,6 +173,7 @@ declare void @_out_of_gas() define internal %"Map_Uint128_List_(Map_(Int32)_(Map_(String)_(Int32)))"* @_scilla_expr_fun(i8* %0) !dbg !10 { entry: %"$expr_6" = alloca %"Map_Uint128_List_(Map_(Int32)_(Map_(String)_(Int32)))"*, align 8 + call void @llvm.dbg.declare(metadata %"Map_Uint128_List_(Map_(Int32)_(Map_(String)_(Int32)))"** %"$expr_6", metadata !11, metadata !DIExpression()), !dbg !14 %"$gasrem_93" = load i64, i64* @_gasrem, align 8 %"$gascmp_94" = icmp ugt i64 1, %"$gasrem_93" br i1 %"$gascmp_94", label %"$out_of_gas_95", label %"$have_gas_96" @@ -253,11 +254,14 @@ entry: %"$execptr_load_128" = load i8*, i8** @_execptr, align 8 %"$_new_empty_map_call_129" = call i8* @_new_empty_map(i8* %"$execptr_load_128") %"$_new_empty_map_130" = bitcast i8* %"$_new_empty_map_call_129" to %"Map_Uint128_List_(Map_(Int32)_(Map_(String)_(Int32)))"* - store %"Map_Uint128_List_(Map_(Int32)_(Map_(String)_(Int32)))"* %"$_new_empty_map_130", %"Map_Uint128_List_(Map_(Int32)_(Map_(String)_(Int32)))"** %"$expr_6", align 8, !dbg !11 + store %"Map_Uint128_List_(Map_(Int32)_(Map_(String)_(Int32)))"* %"$_new_empty_map_130", %"Map_Uint128_List_(Map_(Int32)_(Map_(String)_(Int32)))"** %"$expr_6", align 8, !dbg !15 %"$$expr_6_131" = load %"Map_Uint128_List_(Map_(Int32)_(Map_(String)_(Int32)))"*, %"Map_Uint128_List_(Map_(Int32)_(Map_(String)_(Int32)))"** %"$expr_6", align 8 ret %"Map_Uint128_List_(Map_(Int32)_(Map_(String)_(Int32)))"* %"$$expr_6_131" } +; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn +declare void @llvm.dbg.declare(metadata, metadata, metadata) #0 + declare i8* @_new_empty_map(i8*) declare void @_print_scilla_val(i8*, %_TyDescrTy_Typ*, i8*) @@ -271,18 +275,24 @@ entry: ret void } +attributes #0 = { nocallback nofree nosync nounwind readnone speculatable willreturn } + !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) +!1 = distinct !DICompileUnit(language: DW_LANG_C89, file: !2, producer: "Scilla Compiler", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false) !2 = !DIFile(filename: "map1.scilexp", directory: "codegen/expr") -!3 = !{} -!4 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !5, file: !5, type: !6, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!5 = !DIFile(filename: ".", directory: ".") -!6 = !DISubroutineType(types: !7) -!7 = !{!8} -!8 = !DIBasicType(tag: DW_TAG_unspecified_type, name: "void") -!9 = !DILocation(line: 0, scope: !4) -!10 = distinct !DISubprogram(name: "_scilla_expr_fun", linkageName: "_scilla_expr_fun", scope: !2, file: !2, line: 1, type: !6, scopeLine: 1, spFlags: DISPFlagDefinition, unit: !1, retainedNodes: !3) -!11 = !DILocation(line: 4, column: 1, scope: !10) +!3 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !4, file: !4, type: !5, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!4 = !DIFile(filename: ".", directory: ".") +!5 = !DISubroutineType(types: !6) +!6 = !{!7} +!7 = !DIBasicType(tag: DW_TAG_unspecified_type, name: "void") +!8 = !{} +!9 = !DILocation(line: 0, scope: !3) +!10 = distinct !DISubprogram(name: "_scilla_expr_fun", linkageName: "_scilla_expr_fun", scope: !2, file: !2, line: 1, type: !5, scopeLine: 1, spFlags: DISPFlagDefinition, unit: !1, retainedNodes: !8) +!11 = !DILocalVariable(name: "$expr_6", scope: !10, file: !2, line: 1, type: !12) +!12 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "Map (Uint128) (List (Map (Int32) (Map (String) (Int32))))", baseType: !13, size: 8, align: 8, dwarfAddressSpace: 0) +!13 = !DIBasicType(name: "Map (Uint128) (List (Map (Int32) (Map (String) (Int32))))", size: 8) +!14 = !DILocation(line: 1, column: 9, scope: !10) +!15 = !DILocation(line: 4, column: 1, scope: !10) diff --git a/testsuite/expr/map1.ll b/testsuite/expr/map1.ll index eb7a08b2..796d2cb6 100644 --- a/testsuite/expr/map1.ll +++ b/testsuite/expr/map1.ll @@ -5,7 +5,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-pc-linux-gnu" +target triple = "x86_64-unknown-linux-gnu" %"$TyDescrTy_PrimTyp_7" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/testsuite/expr/map_to_list.dbg.ll b/testsuite/expr/map_to_list.dbg.ll index f43a7d31..ff1521d1 100644 --- a/testsuite/expr/map_to_list.dbg.ll +++ b/testsuite/expr/map_to_list.dbg.ll @@ -13,7 +13,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-pc-linux-gnu" +target triple = "x86_64-unknown-linux-gnu" %"$TyDescrTy_PrimTyp_7" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } @@ -103,7 +103,7 @@ target triple = "x86_64-pc-linux-gnu" @_transition_parameters = constant [0 x %"$TransDescr_274"] zeroinitializer @_transition_parameters_length = constant i32 0 -define void @_init_libs() !dbg !4 { +define void @_init_libs() !dbg !3 { entry: %"$gasrem_69" = load i64, i64* @_gasrem, align 8 %"$gascmp_70" = icmp ugt i64 5, %"$gasrem_69" @@ -185,6 +185,7 @@ declare void @_out_of_gas() define internal %"TName_List_Pair_(Int32)_(Int32)"* @_scilla_expr_fun(i8* %0) !dbg !10 { entry: %"$expr_6" = alloca %"TName_List_Pair_(Int32)_(Int32)"*, align 8 + call void @llvm.dbg.declare(metadata %"TName_List_Pair_(Int32)_(Int32)"** %"$expr_6", metadata !11, metadata !DIExpression()), !dbg !14 %"$gasrem_99" = load i64, i64* @_gasrem, align 8 %"$gascmp_100" = icmp ugt i64 1, %"$gasrem_99" br i1 %"$gascmp_100", label %"$out_of_gas_101", label %"$have_gas_102" @@ -197,6 +198,7 @@ entry: %"$consume_103" = sub i64 %"$gasrem_99", 1 store i64 %"$consume_103", i64* @_gasrem, align 8 %k1 = alloca %Int32, align 8 + call void @llvm.dbg.declare(metadata %Int32* %k1, metadata !15, metadata !DIExpression()), !dbg !17 %"$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" @@ -208,7 +210,7 @@ entry: "$have_gas_107": ; preds = %"$out_of_gas_106", %"$have_gas_102" %"$consume_108" = sub i64 %"$gasrem_104", 1 store i64 %"$consume_108", i64* @_gasrem, align 8 - store %Int32 { i32 1 }, %Int32* %k1, align 4, !dbg !11 + store %Int32 { i32 1 }, %Int32* %k1, align 4, !dbg !14 %"$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" @@ -221,6 +223,7 @@ entry: %"$consume_113" = sub i64 %"$gasrem_109", 1 store i64 %"$consume_113", i64* @_gasrem, align 8 %k2 = alloca %Int32, align 8 + call void @llvm.dbg.declare(metadata %Int32* %k2, metadata !18, metadata !DIExpression()), !dbg !19 %"$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" @@ -232,7 +235,7 @@ entry: "$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 - store %Int32 { i32 2 }, %Int32* %k2, align 4, !dbg !12 + store %Int32 { i32 2 }, %Int32* %k2, align 4, !dbg !20 %"$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" @@ -245,6 +248,7 @@ entry: %"$consume_123" = sub i64 %"$gasrem_119", 1 store i64 %"$consume_123", i64* @_gasrem, align 8 %k3 = alloca %Int32, align 8 + call void @llvm.dbg.declare(metadata %Int32* %k3, metadata !21, metadata !DIExpression()), !dbg !22 %"$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" @@ -256,7 +260,7 @@ entry: "$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 - store %Int32 { i32 3 }, %Int32* %k3, align 4, !dbg !13 + store %Int32 { i32 3 }, %Int32* %k3, align 4, !dbg !23 %"$gasrem_129" = load i64, i64* @_gasrem, align 8 %"$gascmp_130" = icmp ugt i64 1, %"$gasrem_129" br i1 %"$gascmp_130", label %"$out_of_gas_131", label %"$have_gas_132" @@ -269,6 +273,7 @@ entry: %"$consume_133" = sub i64 %"$gasrem_129", 1 store i64 %"$consume_133", i64* @_gasrem, align 8 %v1 = alloca %Int32, align 8 + call void @llvm.dbg.declare(metadata %Int32* %v1, metadata !24, metadata !DIExpression()), !dbg !25 %"$gasrem_134" = load i64, i64* @_gasrem, align 8 %"$gascmp_135" = icmp ugt i64 1, %"$gasrem_134" br i1 %"$gascmp_135", label %"$out_of_gas_136", label %"$have_gas_137" @@ -280,7 +285,7 @@ entry: "$have_gas_137": ; preds = %"$out_of_gas_136", %"$have_gas_132" %"$consume_138" = sub i64 %"$gasrem_134", 1 store i64 %"$consume_138", i64* @_gasrem, align 8 - store %Int32 { i32 42 }, %Int32* %v1, align 4, !dbg !14 + store %Int32 { i32 42 }, %Int32* %v1, align 4, !dbg !26 %"$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" @@ -293,6 +298,7 @@ entry: %"$consume_143" = sub i64 %"$gasrem_139", 1 store i64 %"$consume_143", i64* @_gasrem, align 8 %v2 = alloca %Int32, align 8 + call void @llvm.dbg.declare(metadata %Int32* %v2, metadata !27, metadata !DIExpression()), !dbg !28 %"$gasrem_144" = load i64, i64* @_gasrem, align 8 %"$gascmp_145" = icmp ugt i64 1, %"$gasrem_144" br i1 %"$gascmp_145", label %"$out_of_gas_146", label %"$have_gas_147" @@ -304,7 +310,7 @@ entry: "$have_gas_147": ; preds = %"$out_of_gas_146", %"$have_gas_142" %"$consume_148" = sub i64 %"$gasrem_144", 1 store i64 %"$consume_148", i64* @_gasrem, align 8 - store %Int32 { i32 239 }, %Int32* %v2, align 4, !dbg !15 + store %Int32 { i32 239 }, %Int32* %v2, align 4, !dbg !29 %"$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" @@ -317,6 +323,7 @@ entry: %"$consume_153" = sub i64 %"$gasrem_149", 1 store i64 %"$consume_153", i64* @_gasrem, align 8 %v3 = alloca %Int32, align 8 + call void @llvm.dbg.declare(metadata %Int32* %v3, metadata !30, metadata !DIExpression()), !dbg !31 %"$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" @@ -328,7 +335,7 @@ entry: "$have_gas_157": ; preds = %"$out_of_gas_156", %"$have_gas_152" %"$consume_158" = sub i64 %"$gasrem_154", 1 store i64 %"$consume_158", i64* @_gasrem, align 8 - store %Int32 { i32 112 }, %Int32* %v3, align 4, !dbg !16 + store %Int32 { i32 112 }, %Int32* %v3, align 4, !dbg !32 %"$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" @@ -341,6 +348,7 @@ entry: %"$consume_163" = sub i64 %"$gasrem_159", 1 store i64 %"$consume_163", i64* @_gasrem, align 8 %m0 = alloca %Map_Int32_Int32*, align 8 + call void @llvm.dbg.declare(metadata %Map_Int32_Int32** %m0, metadata !33, metadata !DIExpression()), !dbg !36 %"$gasrem_164" = load i64, i64* @_gasrem, align 8 %"$gascmp_165" = icmp ugt i64 1, %"$gasrem_164" br i1 %"$gascmp_165", label %"$out_of_gas_166", label %"$have_gas_167" @@ -355,7 +363,7 @@ entry: %"$execptr_load_169" = load i8*, i8** @_execptr, align 8 %"$_new_empty_map_call_170" = call i8* @_new_empty_map(i8* %"$execptr_load_169") %"$_new_empty_map_171" = bitcast i8* %"$_new_empty_map_call_170" to %Map_Int32_Int32* - store %Map_Int32_Int32* %"$_new_empty_map_171", %Map_Int32_Int32** %m0, align 8, !dbg !17 + store %Map_Int32_Int32* %"$_new_empty_map_171", %Map_Int32_Int32** %m0, align 8, !dbg !37 %"$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" @@ -368,6 +376,7 @@ entry: %"$consume_176" = sub i64 %"$gasrem_172", 1 store i64 %"$consume_176", i64* @_gasrem, align 8 %m1 = alloca %Map_Int32_Int32*, align 8 + call void @llvm.dbg.declare(metadata %Map_Int32_Int32** %m1, metadata !38, metadata !DIExpression()), !dbg !39 %"$m0_177" = load %Map_Int32_Int32*, %Map_Int32_Int32** %m0, align 8 %"$$m0_177_178" = bitcast %Map_Int32_Int32* %"$m0_177" to i8* %"$_lengthof_call_179" = call i64 @_lengthof(%_TyDescrTy_Typ* @"$TyDescr_Map_44", i8* %"$$m0_177_178") @@ -394,9 +403,9 @@ entry: %"$v1_193" = load %Int32, %Int32* %v1, align 4 store %Int32 %"$v1_193", %Int32* %"$put_v1_192", align 4 %"$$put_v1_192_194" = bitcast %Int32* %"$put_v1_192" to i8* - %"$put_call_195" = call i8* @_put(i8* %"$execptr_load_186", %_TyDescrTy_Typ* @"$TyDescr_Map_44", i8* %"$$m0_187_188", i8* %"$$put_k1_189_191", i8* %"$$put_v1_192_194"), !dbg !18 + %"$put_call_195" = call i8* @_put(i8* %"$execptr_load_186", %_TyDescrTy_Typ* @"$TyDescr_Map_44", i8* %"$$m0_187_188", i8* %"$$put_k1_189_191", i8* %"$$put_v1_192_194"), !dbg !40 %"$put_196" = bitcast i8* %"$put_call_195" to %Map_Int32_Int32* - store %Map_Int32_Int32* %"$put_196", %Map_Int32_Int32** %m1, align 8, !dbg !18 + store %Map_Int32_Int32* %"$put_196", %Map_Int32_Int32** %m1, align 8, !dbg !40 %"$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" @@ -409,6 +418,7 @@ entry: %"$consume_201" = sub i64 %"$gasrem_197", 1 store i64 %"$consume_201", i64* @_gasrem, align 8 %m2 = alloca %Map_Int32_Int32*, align 8 + call void @llvm.dbg.declare(metadata %Map_Int32_Int32** %m2, metadata !41, metadata !DIExpression()), !dbg !42 %"$m1_202" = load %Map_Int32_Int32*, %Map_Int32_Int32** %m1, align 8 %"$$m1_202_203" = bitcast %Map_Int32_Int32* %"$m1_202" to i8* %"$_lengthof_call_204" = call i64 @_lengthof(%_TyDescrTy_Typ* @"$TyDescr_Map_44", i8* %"$$m1_202_203") @@ -435,9 +445,9 @@ entry: %"$v2_218" = load %Int32, %Int32* %v2, align 4 store %Int32 %"$v2_218", %Int32* %"$put_v2_217", align 4 %"$$put_v2_217_219" = bitcast %Int32* %"$put_v2_217" to i8* - %"$put_call_220" = call i8* @_put(i8* %"$execptr_load_211", %_TyDescrTy_Typ* @"$TyDescr_Map_44", i8* %"$$m1_212_213", i8* %"$$put_k2_214_216", i8* %"$$put_v2_217_219"), !dbg !19 + %"$put_call_220" = call i8* @_put(i8* %"$execptr_load_211", %_TyDescrTy_Typ* @"$TyDescr_Map_44", i8* %"$$m1_212_213", i8* %"$$put_k2_214_216", i8* %"$$put_v2_217_219"), !dbg !43 %"$put_221" = bitcast i8* %"$put_call_220" to %Map_Int32_Int32* - store %Map_Int32_Int32* %"$put_221", %Map_Int32_Int32** %m2, align 8, !dbg !19 + store %Map_Int32_Int32* %"$put_221", %Map_Int32_Int32** %m2, align 8, !dbg !43 %"$gasrem_222" = load i64, i64* @_gasrem, align 8 %"$gascmp_223" = icmp ugt i64 1, %"$gasrem_222" br i1 %"$gascmp_223", label %"$out_of_gas_224", label %"$have_gas_225" @@ -450,6 +460,7 @@ entry: %"$consume_226" = sub i64 %"$gasrem_222", 1 store i64 %"$consume_226", i64* @_gasrem, align 8 %m3 = alloca %Map_Int32_Int32*, align 8 + call void @llvm.dbg.declare(metadata %Map_Int32_Int32** %m3, metadata !44, metadata !DIExpression()), !dbg !45 %"$m2_227" = load %Map_Int32_Int32*, %Map_Int32_Int32** %m2, align 8 %"$$m2_227_228" = bitcast %Map_Int32_Int32* %"$m2_227" to i8* %"$_lengthof_call_229" = call i64 @_lengthof(%_TyDescrTy_Typ* @"$TyDescr_Map_44", i8* %"$$m2_227_228") @@ -476,9 +487,9 @@ entry: %"$v3_243" = load %Int32, %Int32* %v3, align 4 store %Int32 %"$v3_243", %Int32* %"$put_v3_242", align 4 %"$$put_v3_242_244" = bitcast %Int32* %"$put_v3_242" to i8* - %"$put_call_245" = call i8* @_put(i8* %"$execptr_load_236", %_TyDescrTy_Typ* @"$TyDescr_Map_44", i8* %"$$m2_237_238", i8* %"$$put_k3_239_241", i8* %"$$put_v3_242_244"), !dbg !20 + %"$put_call_245" = call i8* @_put(i8* %"$execptr_load_236", %_TyDescrTy_Typ* @"$TyDescr_Map_44", i8* %"$$m2_237_238", i8* %"$$put_k3_239_241", i8* %"$$put_v3_242_244"), !dbg !46 %"$put_246" = bitcast i8* %"$put_call_245" to %Map_Int32_Int32* - store %Map_Int32_Int32* %"$put_246", %Map_Int32_Int32** %m3, align 8, !dbg !20 + store %Map_Int32_Int32* %"$put_246", %Map_Int32_Int32** %m3, align 8, !dbg !46 %"$m3_247" = load %Map_Int32_Int32*, %Map_Int32_Int32** %m3, align 8 %"$$m3_247_248" = bitcast %Map_Int32_Int32* %"$m3_247" to i8* %"$_lengthof_call_249" = call i64 @_lengthof(%_TyDescrTy_Typ* @"$TyDescr_Map_44", i8* %"$$m3_247_248") @@ -505,20 +516,23 @@ entry: %"$execptr_load_264" = load i8*, i8** @_execptr, align 8 %"$m3_265" = load %Map_Int32_Int32*, %Map_Int32_Int32** %m3, align 8 %"$$m3_265_266" = bitcast %Map_Int32_Int32* %"$m3_265" to i8* - %"$to_list_call_267" = call i8* @_map_to_list(i8* %"$execptr_load_264", %_TyDescrTy_Typ* @"$TyDescr_Map_44", i8* %"$$m3_265_266"), !dbg !21 + %"$to_list_call_267" = call i8* @_map_to_list(i8* %"$execptr_load_264", %_TyDescrTy_Typ* @"$TyDescr_Map_44", i8* %"$$m3_265_266"), !dbg !47 %"$to_list_268" = bitcast i8* %"$to_list_call_267" to %"TName_List_Pair_(Int32)_(Int32)"* - store %"TName_List_Pair_(Int32)_(Int32)"* %"$to_list_268", %"TName_List_Pair_(Int32)_(Int32)"** %"$expr_6", align 8, !dbg !21 + store %"TName_List_Pair_(Int32)_(Int32)"* %"$to_list_268", %"TName_List_Pair_(Int32)_(Int32)"** %"$expr_6", align 8, !dbg !47 %"$$expr_6_269" = load %"TName_List_Pair_(Int32)_(Int32)"*, %"TName_List_Pair_(Int32)_(Int32)"** %"$expr_6", align 8 ret %"TName_List_Pair_(Int32)_(Int32)"* %"$$expr_6_269" } +; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn +declare void @llvm.dbg.declare(metadata, metadata, metadata) #0 + declare i8* @_new_empty_map(i8*) declare i64 @_lengthof(%_TyDescrTy_Typ*, i8*) declare i8* @_put(i8*, %_TyDescrTy_Typ*, i8*, i8*, i8*) -; Function Attrs: nofree nosync nounwind readnone speculatable willreturn +; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn declare double @llvm.log.f64(double) #0 declare i8* @_map_to_list(i8*, %_TyDescrTy_Typ*, i8*) @@ -534,30 +548,56 @@ entry: ret void } -attributes #0 = { nofree nosync nounwind readnone speculatable willreturn } +attributes #0 = { nocallback nofree nosync nounwind readnone speculatable willreturn } !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) +!1 = distinct !DICompileUnit(language: DW_LANG_C89, file: !2, producer: "Scilla Compiler", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false) !2 = !DIFile(filename: "map_to_list.scilexp", directory: "codegen/expr") -!3 = !{} -!4 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !5, file: !5, type: !6, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!5 = !DIFile(filename: ".", directory: ".") -!6 = !DISubroutineType(types: !7) -!7 = !{!8} -!8 = !DIBasicType(tag: DW_TAG_unspecified_type, name: "void") -!9 = !DILocation(line: 0, scope: !4) -!10 = distinct !DISubprogram(name: "_scilla_expr_fun", linkageName: "_scilla_expr_fun", scope: !2, file: !2, line: 1, type: !6, scopeLine: 1, spFlags: DISPFlagDefinition, unit: !1, retainedNodes: !3) -!11 = !DILocation(line: 1, column: 10, scope: !10) -!12 = !DILocation(line: 2, column: 10, scope: !10) -!13 = !DILocation(line: 3, column: 10, scope: !10) -!14 = !DILocation(line: 4, column: 10, scope: !10) -!15 = !DILocation(line: 5, column: 10, scope: !10) -!16 = !DILocation(line: 6, column: 10, scope: !10) -!17 = !DILocation(line: 8, column: 10, scope: !10) -!18 = !DILocation(line: 9, column: 10, scope: !10) -!19 = !DILocation(line: 10, column: 10, scope: !10) -!20 = !DILocation(line: 11, column: 10, scope: !10) -!21 = !DILocation(line: 12, column: 3, scope: !10) +!3 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !4, file: !4, type: !5, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!4 = !DIFile(filename: ".", directory: ".") +!5 = !DISubroutineType(types: !6) +!6 = !{!7} +!7 = !DIBasicType(tag: DW_TAG_unspecified_type, name: "void") +!8 = !{} +!9 = !DILocation(line: 0, scope: !3) +!10 = distinct !DISubprogram(name: "_scilla_expr_fun", linkageName: "_scilla_expr_fun", scope: !2, file: !2, line: 1, type: !5, scopeLine: 1, spFlags: DISPFlagDefinition, unit: !1, retainedNodes: !8) +!11 = !DILocalVariable(name: "$expr_6", scope: !10, file: !2, line: 1, type: !12) +!12 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "List (Pair (Int32) (Int32))", baseType: !13, size: 8, align: 8, dwarfAddressSpace: 0) +!13 = !DIBasicType(name: "List (Pair (Int32) (Int32))", size: 8) +!14 = !DILocation(line: 1, column: 10, scope: !10) +!15 = !DILocalVariable(name: "k1", scope: !10, file: !2, line: 1, type: !16) +!16 = !DIBasicType(name: "Int32", size: 4) +!17 = !DILocation(line: 1, column: 5, scope: !10) +!18 = !DILocalVariable(name: "k2", scope: !10, file: !2, line: 2, type: !16) +!19 = !DILocation(line: 2, column: 5, scope: !10) +!20 = !DILocation(line: 2, column: 10, scope: !10) +!21 = !DILocalVariable(name: "k3", scope: !10, file: !2, line: 3, type: !16) +!22 = !DILocation(line: 3, column: 5, scope: !10) +!23 = !DILocation(line: 3, column: 10, scope: !10) +!24 = !DILocalVariable(name: "v1", scope: !10, file: !2, line: 4, type: !16) +!25 = !DILocation(line: 4, column: 5, scope: !10) +!26 = !DILocation(line: 4, column: 10, scope: !10) +!27 = !DILocalVariable(name: "v2", scope: !10, file: !2, line: 5, type: !16) +!28 = !DILocation(line: 5, column: 5, scope: !10) +!29 = !DILocation(line: 5, column: 10, scope: !10) +!30 = !DILocalVariable(name: "v3", scope: !10, file: !2, line: 6, type: !16) +!31 = !DILocation(line: 6, column: 5, scope: !10) +!32 = !DILocation(line: 6, column: 10, scope: !10) +!33 = !DILocalVariable(name: "m0", scope: !10, file: !2, line: 8, type: !34) +!34 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "Map (Int32) (Int32)", baseType: !35, size: 8, align: 8, dwarfAddressSpace: 0) +!35 = !DIBasicType(name: "Map (Int32) (Int32)", size: 8) +!36 = !DILocation(line: 8, column: 5, scope: !10) +!37 = !DILocation(line: 8, column: 10, scope: !10) +!38 = !DILocalVariable(name: "m1", scope: !10, file: !2, line: 9, type: !34) +!39 = !DILocation(line: 9, column: 5, scope: !10) +!40 = !DILocation(line: 9, column: 10, scope: !10) +!41 = !DILocalVariable(name: "m2", scope: !10, file: !2, line: 10, type: !34) +!42 = !DILocation(line: 10, column: 5, scope: !10) +!43 = !DILocation(line: 10, column: 10, scope: !10) +!44 = !DILocalVariable(name: "m3", scope: !10, file: !2, line: 11, type: !34) +!45 = !DILocation(line: 11, column: 5, scope: !10) +!46 = !DILocation(line: 11, column: 10, scope: !10) +!47 = !DILocation(line: 12, column: 3, scope: !10) diff --git a/testsuite/expr/map_to_list.ll b/testsuite/expr/map_to_list.ll index 17adb5be..f693148b 100644 --- a/testsuite/expr/map_to_list.ll +++ b/testsuite/expr/map_to_list.ll @@ -13,7 +13,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-pc-linux-gnu" +target triple = "x86_64-unknown-linux-gnu" %"$TyDescrTy_PrimTyp_7" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } @@ -518,7 +518,7 @@ declare i64 @_lengthof(%_TyDescrTy_Typ*, i8*) declare i8* @_put(i8*, %_TyDescrTy_Typ*, i8*, i8*, i8*) -; Function Attrs: nofree nosync nounwind readnone speculatable willreturn +; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn declare double @llvm.log.f64(double) #0 declare i8* @_map_to_list(i8*, %_TyDescrTy_Typ*, i8*) @@ -534,4 +534,4 @@ entry: ret void } -attributes #0 = { nofree nosync nounwind readnone speculatable willreturn } +attributes #0 = { nocallback nofree nosync nounwind readnone speculatable willreturn } diff --git a/testsuite/expr/map_to_list2.dbg.ll b/testsuite/expr/map_to_list2.dbg.ll index b3273281..e0b7ebba 100644 --- a/testsuite/expr/map_to_list2.dbg.ll +++ b/testsuite/expr/map_to_list2.dbg.ll @@ -17,7 +17,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-pc-linux-gnu" +target triple = "x86_64-unknown-linux-gnu" %"$TyDescrTy_PrimTyp_7" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } @@ -114,7 +114,7 @@ target triple = "x86_64-pc-linux-gnu" @_transition_parameters = constant [0 x %"$TransDescr_322"] zeroinitializer @_transition_parameters_length = constant i32 0 -define void @_init_libs() !dbg !4 { +define void @_init_libs() !dbg !3 { entry: %"$gasrem_71" = load i64, i64* @_gasrem, align 8 %"$gascmp_72" = icmp ugt i64 5, %"$gasrem_71" @@ -196,6 +196,7 @@ declare void @_out_of_gas() define internal %"TName_List_Pair_(Int32)_(Map_(BNum)_(Int32))"* @_scilla_expr_fun(i8* %0) !dbg !10 { entry: %"$expr_6" = alloca %"TName_List_Pair_(Int32)_(Map_(BNum)_(Int32))"*, align 8 + call void @llvm.dbg.declare(metadata %"TName_List_Pair_(Int32)_(Map_(BNum)_(Int32))"** %"$expr_6", metadata !11, metadata !DIExpression()), !dbg !14 %"$gasrem_101" = load i64, i64* @_gasrem, align 8 %"$gascmp_102" = icmp ugt i64 1, %"$gasrem_101" br i1 %"$gascmp_102", label %"$out_of_gas_103", label %"$have_gas_104" @@ -208,6 +209,7 @@ entry: %"$consume_105" = sub i64 %"$gasrem_101", 1 store i64 %"$consume_105", i64* @_gasrem, align 8 %k1 = alloca i8*, align 8 + call void @llvm.dbg.declare(metadata i8** %k1, metadata !15, metadata !DIExpression()), !dbg !18 %"$gasrem_106" = load i64, i64* @_gasrem, align 8 %"$gascmp_107" = icmp ugt i64 1, %"$gasrem_106" br i1 %"$gascmp_107", label %"$out_of_gas_108", label %"$have_gas_109" @@ -221,7 +223,7 @@ entry: store i64 %"$consume_110", i64* @_gasrem, align 8 %"$execptr_load_112" = load i8*, i8** @_execptr, align 8 %"$_new_bnum_call_113" = call i8* @_new_bnum(i8* %"$execptr_load_112", %BNumString { i8* getelementptr inbounds ([1 x i8], [1 x i8]* @"$BNumLit_111", i32 0, i32 0), i32 1 }) - store i8* %"$_new_bnum_call_113", i8** %k1, align 8, !dbg !11 + store i8* %"$_new_bnum_call_113", i8** %k1, align 8, !dbg !14 %"$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" @@ -234,6 +236,7 @@ entry: %"$consume_119" = sub i64 %"$gasrem_115", 1 store i64 %"$consume_119", i64* @_gasrem, align 8 %k2 = alloca i8*, align 8 + call void @llvm.dbg.declare(metadata i8** %k2, metadata !19, metadata !DIExpression()), !dbg !20 %"$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" @@ -247,7 +250,7 @@ entry: store i64 %"$consume_124", i64* @_gasrem, align 8 %"$execptr_load_126" = load i8*, i8** @_execptr, align 8 %"$_new_bnum_call_127" = call i8* @_new_bnum(i8* %"$execptr_load_126", %BNumString { i8* getelementptr inbounds ([1 x i8], [1 x i8]* @"$BNumLit_125", i32 0, i32 0), i32 1 }) - store i8* %"$_new_bnum_call_127", i8** %k2, align 8, !dbg !12 + store i8* %"$_new_bnum_call_127", i8** %k2, align 8, !dbg !21 %"$gasrem_129" = load i64, i64* @_gasrem, align 8 %"$gascmp_130" = icmp ugt i64 1, %"$gasrem_129" br i1 %"$gascmp_130", label %"$out_of_gas_131", label %"$have_gas_132" @@ -260,6 +263,7 @@ entry: %"$consume_133" = sub i64 %"$gasrem_129", 1 store i64 %"$consume_133", i64* @_gasrem, align 8 %k3 = alloca i8*, align 8 + call void @llvm.dbg.declare(metadata i8** %k3, metadata !22, metadata !DIExpression()), !dbg !23 %"$gasrem_134" = load i64, i64* @_gasrem, align 8 %"$gascmp_135" = icmp ugt i64 1, %"$gasrem_134" br i1 %"$gascmp_135", label %"$out_of_gas_136", label %"$have_gas_137" @@ -273,7 +277,7 @@ entry: store i64 %"$consume_138", i64* @_gasrem, align 8 %"$execptr_load_140" = load i8*, i8** @_execptr, align 8 %"$_new_bnum_call_141" = call i8* @_new_bnum(i8* %"$execptr_load_140", %BNumString { i8* getelementptr inbounds ([1 x i8], [1 x i8]* @"$BNumLit_139", i32 0, i32 0), i32 1 }) - store i8* %"$_new_bnum_call_141", i8** %k3, align 8, !dbg !13 + store i8* %"$_new_bnum_call_141", i8** %k3, align 8, !dbg !24 %"$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" @@ -286,6 +290,7 @@ entry: %"$consume_147" = sub i64 %"$gasrem_143", 1 store i64 %"$consume_147", i64* @_gasrem, align 8 %v1 = alloca %Int32, align 8 + call void @llvm.dbg.declare(metadata %Int32* %v1, metadata !25, metadata !DIExpression()), !dbg !27 %"$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" @@ -297,7 +302,7 @@ entry: "$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 { i32 42 }, %Int32* %v1, align 4, !dbg !14 + store %Int32 { i32 42 }, %Int32* %v1, align 4, !dbg !28 %"$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" @@ -310,6 +315,7 @@ entry: %"$consume_157" = sub i64 %"$gasrem_153", 1 store i64 %"$consume_157", i64* @_gasrem, align 8 %v2 = alloca %Int32, align 8 + call void @llvm.dbg.declare(metadata %Int32* %v2, metadata !29, metadata !DIExpression()), !dbg !30 %"$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" @@ -321,7 +327,7 @@ entry: "$have_gas_161": ; preds = %"$out_of_gas_160", %"$have_gas_156" %"$consume_162" = sub i64 %"$gasrem_158", 1 store i64 %"$consume_162", i64* @_gasrem, align 8 - store %Int32 { i32 239 }, %Int32* %v2, align 4, !dbg !15 + store %Int32 { i32 239 }, %Int32* %v2, align 4, !dbg !31 %"$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" @@ -334,6 +340,7 @@ entry: %"$consume_167" = sub i64 %"$gasrem_163", 1 store i64 %"$consume_167", i64* @_gasrem, align 8 %v3 = alloca %Int32, align 8 + call void @llvm.dbg.declare(metadata %Int32* %v3, metadata !32, metadata !DIExpression()), !dbg !33 %"$gasrem_168" = load i64, i64* @_gasrem, align 8 %"$gascmp_169" = icmp ugt i64 1, %"$gasrem_168" br i1 %"$gascmp_169", label %"$out_of_gas_170", label %"$have_gas_171" @@ -345,7 +352,7 @@ entry: "$have_gas_171": ; preds = %"$out_of_gas_170", %"$have_gas_166" %"$consume_172" = sub i64 %"$gasrem_168", 1 store i64 %"$consume_172", i64* @_gasrem, align 8 - store %Int32 { i32 112 }, %Int32* %v3, align 4, !dbg !16 + store %Int32 { i32 112 }, %Int32* %v3, align 4, !dbg !34 %"$gasrem_173" = load i64, i64* @_gasrem, align 8 %"$gascmp_174" = icmp ugt i64 1, %"$gasrem_173" br i1 %"$gascmp_174", label %"$out_of_gas_175", label %"$have_gas_176" @@ -358,6 +365,7 @@ entry: %"$consume_177" = sub i64 %"$gasrem_173", 1 store i64 %"$consume_177", i64* @_gasrem, align 8 %m0 = alloca %Map_BNum_Int32*, align 8 + call void @llvm.dbg.declare(metadata %Map_BNum_Int32** %m0, metadata !35, metadata !DIExpression()), !dbg !38 %"$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" @@ -372,7 +380,7 @@ entry: %"$execptr_load_183" = load i8*, i8** @_execptr, align 8 %"$_new_empty_map_call_184" = call i8* @_new_empty_map(i8* %"$execptr_load_183") %"$_new_empty_map_185" = bitcast i8* %"$_new_empty_map_call_184" to %Map_BNum_Int32* - store %Map_BNum_Int32* %"$_new_empty_map_185", %Map_BNum_Int32** %m0, align 8, !dbg !17 + store %Map_BNum_Int32* %"$_new_empty_map_185", %Map_BNum_Int32** %m0, align 8, !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" @@ -385,6 +393,7 @@ entry: %"$consume_190" = sub i64 %"$gasrem_186", 1 store i64 %"$consume_190", i64* @_gasrem, align 8 %m1 = alloca %Map_BNum_Int32*, align 8 + call void @llvm.dbg.declare(metadata %Map_BNum_Int32** %m1, metadata !40, metadata !DIExpression()), !dbg !41 %"$m0_191" = load %Map_BNum_Int32*, %Map_BNum_Int32** %m0, align 8 %"$$m0_191_192" = bitcast %Map_BNum_Int32* %"$m0_191" to i8* %"$_lengthof_call_193" = call i64 @_lengthof(%_TyDescrTy_Typ* @"$TyDescr_Map_45", i8* %"$$m0_191_192") @@ -408,9 +417,9 @@ entry: %"$v1_206" = load %Int32, %Int32* %v1, align 4 store %Int32 %"$v1_206", %Int32* %"$put_v1_205", align 4 %"$$put_v1_205_207" = bitcast %Int32* %"$put_v1_205" to i8* - %"$put_call_208" = call i8* @_put(i8* %"$execptr_load_200", %_TyDescrTy_Typ* @"$TyDescr_Map_45", i8* %"$$m0_201_202", i8* %"$k1_203", i8* %"$$put_v1_205_207"), !dbg !18 + %"$put_call_208" = call i8* @_put(i8* %"$execptr_load_200", %_TyDescrTy_Typ* @"$TyDescr_Map_45", i8* %"$$m0_201_202", i8* %"$k1_203", i8* %"$$put_v1_205_207"), !dbg !42 %"$put_209" = bitcast i8* %"$put_call_208" to %Map_BNum_Int32* - store %Map_BNum_Int32* %"$put_209", %Map_BNum_Int32** %m1, align 8, !dbg !18 + store %Map_BNum_Int32* %"$put_209", %Map_BNum_Int32** %m1, align 8, !dbg !42 %"$gasrem_210" = load i64, i64* @_gasrem, align 8 %"$gascmp_211" = icmp ugt i64 1, %"$gasrem_210" br i1 %"$gascmp_211", label %"$out_of_gas_212", label %"$have_gas_213" @@ -423,6 +432,7 @@ entry: %"$consume_214" = sub i64 %"$gasrem_210", 1 store i64 %"$consume_214", i64* @_gasrem, align 8 %m2 = alloca %Map_BNum_Int32*, align 8 + call void @llvm.dbg.declare(metadata %Map_BNum_Int32** %m2, metadata !43, metadata !DIExpression()), !dbg !44 %"$m1_215" = load %Map_BNum_Int32*, %Map_BNum_Int32** %m1, align 8 %"$$m1_215_216" = bitcast %Map_BNum_Int32* %"$m1_215" to i8* %"$_lengthof_call_217" = call i64 @_lengthof(%_TyDescrTy_Typ* @"$TyDescr_Map_45", i8* %"$$m1_215_216") @@ -446,9 +456,9 @@ entry: %"$v2_230" = load %Int32, %Int32* %v2, align 4 store %Int32 %"$v2_230", %Int32* %"$put_v2_229", align 4 %"$$put_v2_229_231" = bitcast %Int32* %"$put_v2_229" to i8* - %"$put_call_232" = call i8* @_put(i8* %"$execptr_load_224", %_TyDescrTy_Typ* @"$TyDescr_Map_45", i8* %"$$m1_225_226", i8* %"$k2_227", i8* %"$$put_v2_229_231"), !dbg !19 + %"$put_call_232" = call i8* @_put(i8* %"$execptr_load_224", %_TyDescrTy_Typ* @"$TyDescr_Map_45", i8* %"$$m1_225_226", i8* %"$k2_227", i8* %"$$put_v2_229_231"), !dbg !45 %"$put_233" = bitcast i8* %"$put_call_232" to %Map_BNum_Int32* - store %Map_BNum_Int32* %"$put_233", %Map_BNum_Int32** %m2, align 8, !dbg !19 + store %Map_BNum_Int32* %"$put_233", %Map_BNum_Int32** %m2, align 8, !dbg !45 %"$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" @@ -461,6 +471,7 @@ entry: %"$consume_238" = sub i64 %"$gasrem_234", 1 store i64 %"$consume_238", i64* @_gasrem, align 8 %m3 = alloca %Map_BNum_Int32*, align 8 + call void @llvm.dbg.declare(metadata %Map_BNum_Int32** %m3, metadata !46, metadata !DIExpression()), !dbg !47 %"$m2_239" = load %Map_BNum_Int32*, %Map_BNum_Int32** %m2, align 8 %"$$m2_239_240" = bitcast %Map_BNum_Int32* %"$m2_239" to i8* %"$_lengthof_call_241" = call i64 @_lengthof(%_TyDescrTy_Typ* @"$TyDescr_Map_45", i8* %"$$m2_239_240") @@ -484,9 +495,9 @@ entry: %"$v3_254" = load %Int32, %Int32* %v3, align 4 store %Int32 %"$v3_254", %Int32* %"$put_v3_253", align 4 %"$$put_v3_253_255" = bitcast %Int32* %"$put_v3_253" to i8* - %"$put_call_256" = call i8* @_put(i8* %"$execptr_load_248", %_TyDescrTy_Typ* @"$TyDescr_Map_45", i8* %"$$m2_249_250", i8* %"$k3_251", i8* %"$$put_v3_253_255"), !dbg !20 + %"$put_call_256" = call i8* @_put(i8* %"$execptr_load_248", %_TyDescrTy_Typ* @"$TyDescr_Map_45", i8* %"$$m2_249_250", i8* %"$k3_251", i8* %"$$put_v3_253_255"), !dbg !48 %"$put_257" = bitcast i8* %"$put_call_256" to %Map_BNum_Int32* - store %Map_BNum_Int32* %"$put_257", %Map_BNum_Int32** %m3, align 8, !dbg !20 + store %Map_BNum_Int32* %"$put_257", %Map_BNum_Int32** %m3, align 8, !dbg !48 %"$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" @@ -499,6 +510,7 @@ entry: %"$consume_262" = sub i64 %"$gasrem_258", 1 store i64 %"$consume_262", i64* @_gasrem, align 8 %mm0 = alloca %"Map_Int32_Map_(BNum)_(Int32)"*, align 8 + call void @llvm.dbg.declare(metadata %"Map_Int32_Map_(BNum)_(Int32)"** %mm0, metadata !49, metadata !DIExpression()), !dbg !52 %"$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" @@ -513,7 +525,7 @@ entry: %"$execptr_load_268" = load i8*, i8** @_execptr, align 8 %"$_new_empty_map_call_269" = call i8* @_new_empty_map(i8* %"$execptr_load_268") %"$_new_empty_map_270" = bitcast i8* %"$_new_empty_map_call_269" to %"Map_Int32_Map_(BNum)_(Int32)"* - store %"Map_Int32_Map_(BNum)_(Int32)"* %"$_new_empty_map_270", %"Map_Int32_Map_(BNum)_(Int32)"** %mm0, align 8, !dbg !21 + store %"Map_Int32_Map_(BNum)_(Int32)"* %"$_new_empty_map_270", %"Map_Int32_Map_(BNum)_(Int32)"** %mm0, align 8, !dbg !53 %"$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" @@ -526,6 +538,7 @@ entry: %"$consume_275" = sub i64 %"$gasrem_271", 1 store i64 %"$consume_275", i64* @_gasrem, align 8 %mm1 = alloca %"Map_Int32_Map_(BNum)_(Int32)"*, align 8 + call void @llvm.dbg.declare(metadata %"Map_Int32_Map_(BNum)_(Int32)"** %mm1, metadata !54, metadata !DIExpression()), !dbg !55 %"$mm0_276" = load %"Map_Int32_Map_(BNum)_(Int32)"*, %"Map_Int32_Map_(BNum)_(Int32)"** %mm0, align 8 %"$$mm0_276_277" = bitcast %"Map_Int32_Map_(BNum)_(Int32)"* %"$mm0_276" to i8* %"$_lengthof_call_278" = call i64 @_lengthof(%_TyDescrTy_Typ* @"$TyDescr_Map_44", i8* %"$$mm0_276_277") @@ -550,9 +563,9 @@ entry: %"$$put_v1_288_290" = bitcast %Int32* %"$put_v1_288" to i8* %"$m3_291" = load %Map_BNum_Int32*, %Map_BNum_Int32** %m3, align 8 %"$$m3_291_292" = bitcast %Map_BNum_Int32* %"$m3_291" to i8* - %"$put_call_293" = call i8* @_put(i8* %"$execptr_load_285", %_TyDescrTy_Typ* @"$TyDescr_Map_44", i8* %"$$mm0_286_287", i8* %"$$put_v1_288_290", i8* %"$$m3_291_292"), !dbg !22 + %"$put_call_293" = call i8* @_put(i8* %"$execptr_load_285", %_TyDescrTy_Typ* @"$TyDescr_Map_44", i8* %"$$mm0_286_287", i8* %"$$put_v1_288_290", i8* %"$$m3_291_292"), !dbg !56 %"$put_294" = bitcast i8* %"$put_call_293" to %"Map_Int32_Map_(BNum)_(Int32)"* - store %"Map_Int32_Map_(BNum)_(Int32)"* %"$put_294", %"Map_Int32_Map_(BNum)_(Int32)"** %mm1, align 8, !dbg !22 + store %"Map_Int32_Map_(BNum)_(Int32)"* %"$put_294", %"Map_Int32_Map_(BNum)_(Int32)"** %mm1, align 8, !dbg !56 %"$mm1_295" = load %"Map_Int32_Map_(BNum)_(Int32)"*, %"Map_Int32_Map_(BNum)_(Int32)"** %mm1, align 8 %"$$mm1_295_296" = bitcast %"Map_Int32_Map_(BNum)_(Int32)"* %"$mm1_295" to i8* %"$_lengthof_call_297" = call i64 @_lengthof(%_TyDescrTy_Typ* @"$TyDescr_Map_44", i8* %"$$mm1_295_296") @@ -579,13 +592,16 @@ entry: %"$execptr_load_312" = load i8*, i8** @_execptr, align 8 %"$mm1_313" = load %"Map_Int32_Map_(BNum)_(Int32)"*, %"Map_Int32_Map_(BNum)_(Int32)"** %mm1, align 8 %"$$mm1_313_314" = bitcast %"Map_Int32_Map_(BNum)_(Int32)"* %"$mm1_313" to i8* - %"$to_list_call_315" = call i8* @_map_to_list(i8* %"$execptr_load_312", %_TyDescrTy_Typ* @"$TyDescr_Map_44", i8* %"$$mm1_313_314"), !dbg !23 + %"$to_list_call_315" = call i8* @_map_to_list(i8* %"$execptr_load_312", %_TyDescrTy_Typ* @"$TyDescr_Map_44", i8* %"$$mm1_313_314"), !dbg !57 %"$to_list_316" = bitcast i8* %"$to_list_call_315" to %"TName_List_Pair_(Int32)_(Map_(BNum)_(Int32))"* - store %"TName_List_Pair_(Int32)_(Map_(BNum)_(Int32))"* %"$to_list_316", %"TName_List_Pair_(Int32)_(Map_(BNum)_(Int32))"** %"$expr_6", align 8, !dbg !23 + store %"TName_List_Pair_(Int32)_(Map_(BNum)_(Int32))"* %"$to_list_316", %"TName_List_Pair_(Int32)_(Map_(BNum)_(Int32))"** %"$expr_6", align 8, !dbg !57 %"$$expr_6_317" = load %"TName_List_Pair_(Int32)_(Map_(BNum)_(Int32))"*, %"TName_List_Pair_(Int32)_(Map_(BNum)_(Int32))"** %"$expr_6", align 8 ret %"TName_List_Pair_(Int32)_(Map_(BNum)_(Int32))"* %"$$expr_6_317" } +; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn +declare void @llvm.dbg.declare(metadata, metadata, metadata) #0 + declare i8* @_new_bnum(i8*, %BNumString) declare i8* @_new_empty_map(i8*) @@ -594,7 +610,7 @@ declare i64 @_lengthof(%_TyDescrTy_Typ*, i8*) declare i8* @_put(i8*, %_TyDescrTy_Typ*, i8*, i8*, i8*) -; Function Attrs: nofree nosync nounwind readnone speculatable willreturn +; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn declare double @llvm.log.f64(double) #0 declare i8* @_map_to_list(i8*, %_TyDescrTy_Typ*, i8*) @@ -610,32 +626,66 @@ entry: ret void } -attributes #0 = { nofree nosync nounwind readnone speculatable willreturn } +attributes #0 = { nocallback nofree nosync nounwind readnone speculatable willreturn } !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) +!1 = distinct !DICompileUnit(language: DW_LANG_C89, file: !2, producer: "Scilla Compiler", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false) !2 = !DIFile(filename: "map_to_list2.scilexp", directory: "codegen/expr") -!3 = !{} -!4 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !5, file: !5, type: !6, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!5 = !DIFile(filename: ".", directory: ".") -!6 = !DISubroutineType(types: !7) -!7 = !{!8} -!8 = !DIBasicType(tag: DW_TAG_unspecified_type, name: "void") -!9 = !DILocation(line: 0, scope: !4) -!10 = distinct !DISubprogram(name: "_scilla_expr_fun", linkageName: "_scilla_expr_fun", scope: !2, file: !2, line: 1, type: !6, scopeLine: 1, spFlags: DISPFlagDefinition, unit: !1, retainedNodes: !3) -!11 = !DILocation(line: 1, column: 10, scope: !10) -!12 = !DILocation(line: 2, column: 10, scope: !10) -!13 = !DILocation(line: 3, column: 10, scope: !10) -!14 = !DILocation(line: 4, column: 10, scope: !10) -!15 = !DILocation(line: 5, column: 10, scope: !10) -!16 = !DILocation(line: 6, column: 10, scope: !10) -!17 = !DILocation(line: 8, column: 10, scope: !10) -!18 = !DILocation(line: 9, column: 10, scope: !10) -!19 = !DILocation(line: 10, column: 10, scope: !10) -!20 = !DILocation(line: 11, column: 10, scope: !10) -!21 = !DILocation(line: 13, column: 11, scope: !10) -!22 = !DILocation(line: 14, column: 11, scope: !10) -!23 = !DILocation(line: 16, column: 1, scope: !10) +!3 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !4, file: !4, type: !5, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!4 = !DIFile(filename: ".", directory: ".") +!5 = !DISubroutineType(types: !6) +!6 = !{!7} +!7 = !DIBasicType(tag: DW_TAG_unspecified_type, name: "void") +!8 = !{} +!9 = !DILocation(line: 0, scope: !3) +!10 = distinct !DISubprogram(name: "_scilla_expr_fun", linkageName: "_scilla_expr_fun", scope: !2, file: !2, line: 1, type: !5, scopeLine: 1, spFlags: DISPFlagDefinition, unit: !1, retainedNodes: !8) +!11 = !DILocalVariable(name: "$expr_6", scope: !10, file: !2, line: 1, type: !12) +!12 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "List (Pair (Int32) (Map (BNum) (Int32)))", baseType: !13, size: 8, align: 8, dwarfAddressSpace: 0) +!13 = !DIBasicType(name: "List (Pair (Int32) (Map (BNum) (Int32)))", size: 8) +!14 = !DILocation(line: 1, column: 10, scope: !10) +!15 = !DILocalVariable(name: "k1", scope: !10, file: !2, line: 1, type: !16) +!16 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "BNum", baseType: !17, size: 8, align: 8, dwarfAddressSpace: 0) +!17 = !DIBasicType(name: "BNum", size: 8) +!18 = !DILocation(line: 1, column: 5, scope: !10) +!19 = !DILocalVariable(name: "k2", scope: !10, file: !2, line: 2, type: !16) +!20 = !DILocation(line: 2, column: 5, scope: !10) +!21 = !DILocation(line: 2, column: 10, scope: !10) +!22 = !DILocalVariable(name: "k3", scope: !10, file: !2, line: 3, type: !16) +!23 = !DILocation(line: 3, column: 5, scope: !10) +!24 = !DILocation(line: 3, column: 10, scope: !10) +!25 = !DILocalVariable(name: "v1", scope: !10, file: !2, line: 4, type: !26) +!26 = !DIBasicType(name: "Int32", size: 4) +!27 = !DILocation(line: 4, column: 5, scope: !10) +!28 = !DILocation(line: 4, column: 10, scope: !10) +!29 = !DILocalVariable(name: "v2", scope: !10, file: !2, line: 5, type: !26) +!30 = !DILocation(line: 5, column: 5, scope: !10) +!31 = !DILocation(line: 5, column: 10, scope: !10) +!32 = !DILocalVariable(name: "v3", scope: !10, file: !2, line: 6, type: !26) +!33 = !DILocation(line: 6, column: 5, scope: !10) +!34 = !DILocation(line: 6, column: 10, scope: !10) +!35 = !DILocalVariable(name: "m0", scope: !10, file: !2, line: 8, type: !36) +!36 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "Map (BNum) (Int32)", baseType: !37, size: 8, align: 8, dwarfAddressSpace: 0) +!37 = !DIBasicType(name: "Map (BNum) (Int32)", size: 8) +!38 = !DILocation(line: 8, column: 5, scope: !10) +!39 = !DILocation(line: 8, column: 10, scope: !10) +!40 = !DILocalVariable(name: "m1", scope: !10, file: !2, line: 9, type: !36) +!41 = !DILocation(line: 9, column: 5, scope: !10) +!42 = !DILocation(line: 9, column: 10, scope: !10) +!43 = !DILocalVariable(name: "m2", scope: !10, file: !2, line: 10, type: !36) +!44 = !DILocation(line: 10, column: 5, scope: !10) +!45 = !DILocation(line: 10, column: 10, scope: !10) +!46 = !DILocalVariable(name: "m3", scope: !10, file: !2, line: 11, type: !36) +!47 = !DILocation(line: 11, column: 5, scope: !10) +!48 = !DILocation(line: 11, column: 10, scope: !10) +!49 = !DILocalVariable(name: "mm0", scope: !10, file: !2, line: 13, type: !50) +!50 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "Map (Int32) (Map (BNum) (Int32))", baseType: !51, size: 8, align: 8, dwarfAddressSpace: 0) +!51 = !DIBasicType(name: "Map (Int32) (Map (BNum) (Int32))", size: 8) +!52 = !DILocation(line: 13, column: 5, scope: !10) +!53 = !DILocation(line: 13, column: 11, scope: !10) +!54 = !DILocalVariable(name: "mm1", scope: !10, file: !2, line: 14, type: !50) +!55 = !DILocation(line: 14, column: 5, scope: !10) +!56 = !DILocation(line: 14, column: 11, scope: !10) +!57 = !DILocation(line: 16, column: 1, scope: !10) diff --git a/testsuite/expr/map_to_list2.ll b/testsuite/expr/map_to_list2.ll index b532bf4f..c62c6149 100644 --- a/testsuite/expr/map_to_list2.ll +++ b/testsuite/expr/map_to_list2.ll @@ -17,7 +17,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-pc-linux-gnu" +target triple = "x86_64-unknown-linux-gnu" %"$TyDescrTy_PrimTyp_7" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } @@ -594,7 +594,7 @@ declare i64 @_lengthof(%_TyDescrTy_Typ*, i8*) declare i8* @_put(i8*, %_TyDescrTy_Typ*, i8*, i8*, i8*) -; Function Attrs: nofree nosync nounwind readnone speculatable willreturn +; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn declare double @llvm.log.f64(double) #0 declare i8* @_map_to_list(i8*, %_TyDescrTy_Typ*, i8*) @@ -610,4 +610,4 @@ entry: ret void } -attributes #0 = { nofree nosync nounwind readnone speculatable willreturn } +attributes #0 = { nocallback nofree nosync nounwind readnone speculatable willreturn } diff --git a/testsuite/expr/match_assign.dbg.ll b/testsuite/expr/match_assign.dbg.ll index 71702e4d..7cc03507 100644 --- a/testsuite/expr/match_assign.dbg.ll +++ b/testsuite/expr/match_assign.dbg.ll @@ -10,7 +10,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-pc-linux-gnu" +target triple = "x86_64-unknown-linux-gnu" %"$TyDescrTy_PrimTyp_7" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } @@ -84,7 +84,7 @@ target triple = "x86_64-pc-linux-gnu" @_transition_parameters = constant [0 x %"$TransDescr_152"] zeroinitializer @_transition_parameters_length = constant i32 0 -define void @_init_libs() !dbg !4 { +define void @_init_libs() !dbg !3 { entry: %"$gasrem_57" = load i64, i64* @_gasrem, align 8 %"$gascmp_58" = icmp ugt i64 5, %"$gasrem_57" @@ -166,6 +166,7 @@ declare void @_out_of_gas() define internal %Int32 @_scilla_expr_fun(i8* %0) !dbg !10 { entry: %"$expr_6" = alloca %Int32, align 8 + call void @llvm.dbg.declare(metadata %Int32* %"$expr_6", metadata !11, metadata !DIExpression()), !dbg !13 %"$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" @@ -178,6 +179,7 @@ entry: %"$consume_91" = sub i64 %"$gasrem_87", 1 store i64 %"$consume_91", i64* @_gasrem, align 8 %b = alloca %TName_Bool*, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %b, metadata !14, metadata !DIExpression()), !dbg !17 %"$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" @@ -195,7 +197,7 @@ entry: %"$adtgep_98" = getelementptr inbounds %CName_False, %CName_False* %"$adtval_97", i32 0, i32 0 store i8 1, i8* %"$adtgep_98", align 1 %"$adtptr_99" = bitcast %CName_False* %"$adtval_97" to %TName_Bool* - store %TName_Bool* %"$adtptr_99", %TName_Bool** %b, align 8, !dbg !11 + store %TName_Bool* %"$adtptr_99", %TName_Bool** %b, align 8, !dbg !13 %"$gasrem_100" = load i64, i64* @_gasrem, align 8 %"$gascmp_101" = icmp ugt i64 2, %"$gasrem_100" br i1 %"$gascmp_101", label %"$out_of_gas_102", label %"$have_gas_103" @@ -213,7 +215,7 @@ entry: switch i8 %"$b_tag_108", label %"$empty_default_109" [ i8 0, label %"$True_110" i8 1, label %"$False_128" - ], !dbg !12 + ], !dbg !18 "$True_110": ; preds = %"$have_gas_103" %"$b_111" = bitcast %TName_Bool* %"$b_106" to %CName_True* @@ -229,6 +231,7 @@ entry: %"$consume_116" = sub i64 %"$gasrem_112", 1 store i64 %"$consume_116", i64* @_gasrem, align 8 %x = alloca %Int32, align 8 + call void @llvm.dbg.declare(metadata %Int32* %x, metadata !19, metadata !DIExpression()), !dbg !22 %"$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" @@ -240,7 +243,7 @@ entry: "$have_gas_120": ; preds = %"$out_of_gas_119", %"$have_gas_115" %"$consume_121" = sub i64 %"$gasrem_117", 1 store i64 %"$consume_121", i64* @_gasrem, align 8 - store %Int32 { i32 1 }, %Int32* %x, align 4, !dbg !13 + store %Int32 { i32 1 }, %Int32* %x, align 4, !dbg !23 %"$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" @@ -253,7 +256,7 @@ entry: %"$consume_126" = sub i64 %"$gasrem_122", 1 store i64 %"$consume_126", i64* @_gasrem, align 8 %"$x_127" = load %Int32, %Int32* %x, align 4 - store %Int32 %"$x_127", %Int32* %"$expr_6", align 4, !dbg !16 + store %Int32 %"$x_127", %Int32* %"$expr_6", align 4, !dbg !24 br label %"$matchsucc_105" "$False_128": ; preds = %"$have_gas_103" @@ -270,6 +273,7 @@ entry: %"$consume_134" = sub i64 %"$gasrem_130", 1 store i64 %"$consume_134", i64* @_gasrem, align 8 %x1 = alloca %Int32, align 8 + call void @llvm.dbg.declare(metadata %Int32* %x1, metadata !25, metadata !DIExpression()), !dbg !27 %"$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" @@ -281,7 +285,7 @@ entry: "$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 { i32 2 }, %Int32* %x1, align 4, !dbg !17 + store %Int32 { i32 2 }, %Int32* %x1, align 4, !dbg !28 %"$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" @@ -294,7 +298,7 @@ entry: %"$consume_144" = sub i64 %"$gasrem_140", 1 store i64 %"$consume_144", i64* @_gasrem, align 8 %"$x_145" = load %Int32, %Int32* %x1, align 4 - store %Int32 %"$x_145", %Int32* %"$expr_6", align 4, !dbg !19 + store %Int32 %"$x_145", %Int32* %"$expr_6", align 4, !dbg !29 br label %"$matchsucc_105" "$empty_default_109": ; preds = %"$have_gas_103" @@ -305,6 +309,9 @@ entry: ret %Int32 %"$$expr_6_146" } +; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn +declare void @llvm.dbg.declare(metadata, metadata, metadata) #0 + declare i8* @_salloc(i8*, i64) declare void @_print_scilla_val(i8*, %_TyDescrTy_Typ*, i8*) @@ -320,26 +327,38 @@ entry: ret void } +attributes #0 = { nocallback nofree nosync nounwind readnone speculatable willreturn } + !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) +!1 = distinct !DICompileUnit(language: DW_LANG_C89, file: !2, producer: "Scilla Compiler", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false) !2 = !DIFile(filename: "match_assign.scilexp", directory: "codegen/expr") -!3 = !{} -!4 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !5, file: !5, type: !6, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!5 = !DIFile(filename: ".", directory: ".") -!6 = !DISubroutineType(types: !7) -!7 = !{!8} -!8 = !DIBasicType(tag: DW_TAG_unspecified_type, name: "void") -!9 = !DILocation(line: 0, scope: !4) -!10 = distinct !DISubprogram(name: "_scilla_expr_fun", linkageName: "_scilla_expr_fun", scope: !2, file: !2, line: 1, type: !6, scopeLine: 1, spFlags: DISPFlagDefinition, unit: !1, retainedNodes: !3) -!11 = !DILocation(line: 1, column: 9, scope: !10) -!12 = !DILocation(line: 2, column: 1, scope: !10) -!13 = !DILocation(line: 4, column: 11, scope: !14) -!14 = distinct !DILexicalBlock(scope: !15, file: !2, line: 3, column: 3) -!15 = distinct !DILexicalBlock(scope: !10, file: !2, line: 2, column: 1) -!16 = !DILocation(line: 5, column: 3, scope: !14) -!17 = !DILocation(line: 7, column: 11, scope: !18) -!18 = distinct !DILexicalBlock(scope: !15, file: !2, line: 6, column: 3) -!19 = !DILocation(line: 8, column: 3, scope: !18) +!3 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !4, file: !4, type: !5, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!4 = !DIFile(filename: ".", directory: ".") +!5 = !DISubroutineType(types: !6) +!6 = !{!7} +!7 = !DIBasicType(tag: DW_TAG_unspecified_type, name: "void") +!8 = !{} +!9 = !DILocation(line: 0, scope: !3) +!10 = distinct !DISubprogram(name: "_scilla_expr_fun", linkageName: "_scilla_expr_fun", scope: !2, file: !2, line: 1, type: !5, scopeLine: 1, spFlags: DISPFlagDefinition, unit: !1, retainedNodes: !8) +!11 = !DILocalVariable(name: "$expr_6", scope: !10, file: !2, line: 1, type: !12) +!12 = !DIBasicType(name: "Int32", size: 4) +!13 = !DILocation(line: 1, column: 9, scope: !10) +!14 = !DILocalVariable(name: "b", scope: !10, file: !2, line: 1, type: !15) +!15 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "Bool", baseType: !16, size: 8, align: 8, dwarfAddressSpace: 0) +!16 = !DIBasicType(name: "Bool", size: 8) +!17 = !DILocation(line: 1, column: 5, scope: !10) +!18 = !DILocation(line: 2, column: 1, scope: !10) +!19 = !DILocalVariable(name: "x", scope: !20, file: !2, line: 4, type: !12) +!20 = distinct !DILexicalBlock(scope: !21, file: !2, line: 3, column: 3) +!21 = distinct !DILexicalBlock(scope: !10, file: !2, line: 2, column: 1) +!22 = !DILocation(line: 4, column: 7, scope: !20) +!23 = !DILocation(line: 4, column: 11, scope: !20) +!24 = !DILocation(line: 5, column: 3, scope: !20) +!25 = !DILocalVariable(name: "x", scope: !26, file: !2, line: 7, type: !12) +!26 = distinct !DILexicalBlock(scope: !21, file: !2, line: 6, column: 3) +!27 = !DILocation(line: 7, column: 7, scope: !26) +!28 = !DILocation(line: 7, column: 11, scope: !26) +!29 = !DILocation(line: 8, column: 3, scope: !26) diff --git a/testsuite/expr/match_assign.ll b/testsuite/expr/match_assign.ll index 12013dca..f9b864ed 100644 --- a/testsuite/expr/match_assign.ll +++ b/testsuite/expr/match_assign.ll @@ -10,7 +10,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-pc-linux-gnu" +target triple = "x86_64-unknown-linux-gnu" %"$TyDescrTy_PrimTyp_7" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/testsuite/expr/multi-type-inst.dbg.ll b/testsuite/expr/multi-type-inst.dbg.ll index 407c9dbb..be3babbf 100644 --- a/testsuite/expr/multi-type-inst.dbg.ll +++ b/testsuite/expr/multi-type-inst.dbg.ll @@ -39,7 +39,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-pc-linux-gnu" +target triple = "x86_64-unknown-linux-gnu" %"$TyDescrTy_PrimTyp_65" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } @@ -48,9 +48,9 @@ target triple = "x86_64-pc-linux-gnu" %"$TyDescrTy_ADTTyp_Specl_96" = type { %_TyDescrTy_Typ**, %"$TyDescrTy_ADTTyp_Constr_98"**, %"$TyDescrTy_ADTTyp_97"* } %"$TyDescrTy_ADTTyp_Constr_98" = type { %TyDescrString, i32, %_TyDescrTy_Typ** } %Int32 = type { i32 } -%"$ParamDescr_1114" = type { %ParamDescrString, %_TyDescrTy_Typ* } +%"$ParamDescr_1126" = type { %ParamDescrString, %_TyDescrTy_Typ* } %ParamDescrString = type { i8*, i32 } -%"$TransDescr_1115" = type { %ParamDescrString, i32, %"$ParamDescr_1114"* } +%"$TransDescr_1127" = type { %ParamDescrString, i32, %"$ParamDescr_1126"* } %TName_List_Int64 = type { i8, %CName_Cons_Int64*, %CName_Nil_Int64* } %CName_Cons_Int64 = type <{ i8, %Int64, %TName_List_Int64* }> %CName_Nil_Int64 = type <{ i8 }> @@ -164,91 +164,74 @@ target triple = "x86_64-pc-linux-gnu" @"$_gas_charge_accPairUtils_4" = global %Int32 zeroinitializer @_tydescr_table = constant [18 x %_TyDescrTy_Typ*] [%_TyDescrTy_Typ* @"$TyDescr_Event_89", %_TyDescrTy_Typ* @"$TyDescr_Int64_71", %_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_99", %_TyDescrTy_Typ* @"$TyDescr_Uint256_81", %_TyDescrTy_Typ* @"$TyDescr_Uint32_69", %_TyDescrTy_Typ* @"$TyDescr_Uint64_73", %_TyDescrTy_Typ* @"$TyDescr_Bnum_85", %_TyDescrTy_Typ* @"$TyDescr_Uint128_77", %_TyDescrTy_Typ* @"$TyDescr_Exception_91", %_TyDescrTy_Typ* @"$TyDescr_String_83", %_TyDescrTy_Typ* @"$TyDescr_ADT_List_Int64_100", %_TyDescrTy_Typ* @"$TyDescr_Int256_79", %_TyDescrTy_Typ* @"$TyDescr_Int128_75", %_TyDescrTy_Typ* @"$TyDescr_Bystr_95", %_TyDescrTy_Typ* @"$TyDescr_ReplicateContr_93", %_TyDescrTy_Typ* @"$TyDescr_Message_87", %_TyDescrTy_Typ* @"$TyDescr_ADT_List_Int32_101", %_TyDescrTy_Typ* @"$TyDescr_Int32_67"] @_tydescr_table_length = constant i32 18 -@_contract_parameters = constant [0 x %"$ParamDescr_1114"] zeroinitializer +@_contract_parameters = constant [0 x %"$ParamDescr_1126"] zeroinitializer @_contract_parameters_length = constant i32 0 -@_transition_parameters = constant [0 x %"$TransDescr_1115"] zeroinitializer +@_transition_parameters = constant [0 x %"$TransDescr_1127"] zeroinitializer @_transition_parameters_length = constant i32 0 -define internal %TName_List_Int64* @"$fundef_63"(%"$$fundef_63_env_138"* %0, %Int64 %1) !dbg !4 { +define internal %TName_List_Int64* @"$fundef_63"(%"$$fundef_63_env_138"* %0, %Int64 %1) !dbg !3 { entry: + %"$a_805" = alloca %Int64, align 8 + store %Int64 %1, %Int64* %"$a_805", align 8 + call void @llvm.dbg.declare(metadata %Int64* %"$a_805", metadata !8, metadata !DIExpression()), !dbg !10 %"$retval_64" = alloca %TName_List_Int64*, 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" + call void @llvm.dbg.declare(metadata %TName_List_Int64** %"$retval_64", metadata !11, metadata !DIExpression()), !dbg !14 + %"$gasrem_764" = load i64, i64* @_gasrem, align 8 + %"$gascmp_765" = icmp ugt i64 1, %"$gasrem_764" + br i1 %"$gascmp_765", label %"$out_of_gas_766", label %"$have_gas_767" -"$out_of_gas_755": ; preds = %entry +"$out_of_gas_766": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_756" + br label %"$have_gas_767" -"$have_gas_756": ; preds = %"$out_of_gas_755", %entry - %"$consume_757" = sub i64 %"$gasrem_753", 1 - store i64 %"$consume_757", i64* @_gasrem, align 8 +"$have_gas_767": ; preds = %"$out_of_gas_766", %entry + %"$consume_768" = sub i64 %"$gasrem_764", 1 + store i64 %"$consume_768", i64* @_gasrem, align 8 %an = alloca %TName_List_Int64*, 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 - %"$adtval_763_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_763_salloc" = call i8* @_salloc(i8* %"$adtval_763_load", i64 1) - %"$adtval_763" = bitcast i8* %"$adtval_763_salloc" to %CName_Nil_Int64* - %"$adtgep_764" = getelementptr inbounds %CName_Nil_Int64, %CName_Nil_Int64* %"$adtval_763", i32 0, i32 0 - store i8 1, i8* %"$adtgep_764", align 1 - %"$adtptr_765" = bitcast %CName_Nil_Int64* %"$adtval_763" to %TName_List_Int64* - store %TName_List_Int64* %"$adtptr_765", %TName_List_Int64** %an, align 8, !dbg !8 - %"$gasrem_766" = load i64, i64* @_gasrem, align 8 - %"$gascmp_767" = icmp ugt i64 1, %"$gasrem_766" - br i1 %"$gascmp_767", label %"$out_of_gas_768", label %"$have_gas_769" - -"$out_of_gas_768": ; preds = %"$have_gas_761" - call void @_out_of_gas() - br label %"$have_gas_769" - -"$have_gas_769": ; preds = %"$out_of_gas_768", %"$have_gas_761" - %"$consume_770" = sub i64 %"$gasrem_766", 1 - store i64 %"$consume_770", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_List_Int64** %an, metadata !15, metadata !DIExpression()), !dbg !16 + %"$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 = %"$have_gas_767" + call void @_out_of_gas() + br label %"$have_gas_772" + +"$have_gas_772": ; preds = %"$out_of_gas_771", %"$have_gas_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_Nil_Int64* + %"$adtgep_775" = getelementptr inbounds %CName_Nil_Int64, %CName_Nil_Int64* %"$adtval_774", i32 0, i32 0 + store i8 1, i8* %"$adtgep_775", align 1 + %"$adtptr_776" = bitcast %CName_Nil_Int64* %"$adtval_774" to %TName_List_Int64* + store %TName_List_Int64* %"$adtptr_776", %TName_List_Int64** %an, align 8, !dbg !17 + %"$gasrem_777" = load i64, i64* @_gasrem, align 8 + %"$gascmp_778" = icmp ugt i64 1, %"$gasrem_777" + br i1 %"$gascmp_778", label %"$out_of_gas_779", label %"$have_gas_780" + +"$out_of_gas_779": ; preds = %"$have_gas_772" + call void @_out_of_gas() + br label %"$have_gas_780" + +"$have_gas_780": ; preds = %"$out_of_gas_779", %"$have_gas_772" + %"$consume_781" = sub i64 %"$gasrem_777", 1 + store i64 %"$consume_781", i64* @_gasrem, align 8 %a1 = alloca %TName_List_Int64*, 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_769" - call void @_out_of_gas() - br label %"$have_gas_774" - -"$have_gas_774": ; preds = %"$out_of_gas_773", %"$have_gas_769" - %"$consume_775" = sub i64 %"$gasrem_771", 1 - store i64 %"$consume_775", i64* @_gasrem, align 8 - %"$an_776" = load %TName_List_Int64*, %TName_List_Int64** %an, align 8 - %"$adtval_777_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_777_salloc" = call i8* @_salloc(i8* %"$adtval_777_load", i64 17) - %"$adtval_777" = bitcast i8* %"$adtval_777_salloc" to %CName_Cons_Int64* - %"$adtgep_778" = getelementptr inbounds %CName_Cons_Int64, %CName_Cons_Int64* %"$adtval_777", i32 0, i32 0 - store i8 0, i8* %"$adtgep_778", align 1 - %"$adtgep_779" = getelementptr inbounds %CName_Cons_Int64, %CName_Cons_Int64* %"$adtval_777", i32 0, i32 1 - store %Int64 %1, %Int64* %"$adtgep_779", align 8 - %"$adtgep_780" = getelementptr inbounds %CName_Cons_Int64, %CName_Cons_Int64* %"$adtval_777", i32 0, i32 2 - store %TName_List_Int64* %"$an_776", %TName_List_Int64** %"$adtgep_780", align 8 - %"$adtptr_781" = bitcast %CName_Cons_Int64* %"$adtval_777" to %TName_List_Int64* - store %TName_List_Int64* %"$adtptr_781", %TName_List_Int64** %a1, align 8, !dbg !9 + call void @llvm.dbg.declare(metadata %TName_List_Int64** %a1, metadata !18, metadata !DIExpression()), !dbg !19 %"$gasrem_782" = load i64, i64* @_gasrem, align 8 %"$gascmp_783" = icmp ugt i64 1, %"$gasrem_782" br i1 %"$gascmp_783", label %"$out_of_gas_784", label %"$have_gas_785" -"$out_of_gas_784": ; preds = %"$have_gas_774" +"$out_of_gas_784": ; preds = %"$have_gas_780" call void @_out_of_gas() br label %"$have_gas_785" -"$have_gas_785": ; preds = %"$out_of_gas_784", %"$have_gas_774" +"$have_gas_785": ; preds = %"$out_of_gas_784", %"$have_gas_780" %"$consume_786" = sub i64 %"$gasrem_782", 1 store i64 %"$consume_786", i64* @_gasrem, align 8 - %"$a1_787" = load %TName_List_Int64*, %TName_List_Int64** %a1, align 8 + %"$an_787" = load %TName_List_Int64*, %TName_List_Int64** %an, align 8 %"$adtval_788_load" = load i8*, i8** @_execptr, align 8 %"$adtval_788_salloc" = call i8* @_salloc(i8* %"$adtval_788_load", i64 17) %"$adtval_788" = bitcast i8* %"$adtval_788_salloc" to %CName_Cons_Int64* @@ -257,1142 +240,1219 @@ entry: %"$adtgep_790" = getelementptr inbounds %CName_Cons_Int64, %CName_Cons_Int64* %"$adtval_788", i32 0, i32 1 store %Int64 %1, %Int64* %"$adtgep_790", align 8 %"$adtgep_791" = getelementptr inbounds %CName_Cons_Int64, %CName_Cons_Int64* %"$adtval_788", i32 0, i32 2 - store %TName_List_Int64* %"$a1_787", %TName_List_Int64** %"$adtgep_791", align 8 + store %TName_List_Int64* %"$an_787", %TName_List_Int64** %"$adtgep_791", align 8 %"$adtptr_792" = bitcast %CName_Cons_Int64* %"$adtval_788" to %TName_List_Int64* - store %TName_List_Int64* %"$adtptr_792", %TName_List_Int64** %"$retval_64", align 8, !dbg !10 - %"$$retval_64_793" = load %TName_List_Int64*, %TName_List_Int64** %"$retval_64", align 8 - ret %TName_List_Int64* %"$$retval_64_793" + store %TName_List_Int64* %"$adtptr_792", %TName_List_Int64** %a1, align 8, !dbg !20 + %"$gasrem_793" = load i64, i64* @_gasrem, align 8 + %"$gascmp_794" = icmp ugt i64 1, %"$gasrem_793" + br i1 %"$gascmp_794", label %"$out_of_gas_795", label %"$have_gas_796" + +"$out_of_gas_795": ; preds = %"$have_gas_785" + call void @_out_of_gas() + br label %"$have_gas_796" + +"$have_gas_796": ; preds = %"$out_of_gas_795", %"$have_gas_785" + %"$consume_797" = sub i64 %"$gasrem_793", 1 + store i64 %"$consume_797", i64* @_gasrem, align 8 + %"$a1_798" = load %TName_List_Int64*, %TName_List_Int64** %a1, align 8 + %"$adtval_799_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_799_salloc" = call i8* @_salloc(i8* %"$adtval_799_load", i64 17) + %"$adtval_799" = bitcast i8* %"$adtval_799_salloc" to %CName_Cons_Int64* + %"$adtgep_800" = getelementptr inbounds %CName_Cons_Int64, %CName_Cons_Int64* %"$adtval_799", i32 0, i32 0 + store i8 0, i8* %"$adtgep_800", align 1 + %"$adtgep_801" = getelementptr inbounds %CName_Cons_Int64, %CName_Cons_Int64* %"$adtval_799", i32 0, i32 1 + store %Int64 %1, %Int64* %"$adtgep_801", align 8 + %"$adtgep_802" = getelementptr inbounds %CName_Cons_Int64, %CName_Cons_Int64* %"$adtval_799", i32 0, i32 2 + store %TName_List_Int64* %"$a1_798", %TName_List_Int64** %"$adtgep_802", align 8 + %"$adtptr_803" = bitcast %CName_Cons_Int64* %"$adtval_799" to %TName_List_Int64* + store %TName_List_Int64* %"$adtptr_803", %TName_List_Int64** %"$retval_64", align 8, !dbg !21 + %"$$retval_64_804" = load %TName_List_Int64*, %TName_List_Int64** %"$retval_64", align 8 + ret %TName_List_Int64* %"$$retval_64_804" } -define internal { %TName_List_Int64* (i8*, %Int64)*, i8* } @"$fundef_61"(%"$$fundef_61_env_139"* %0) !dbg !11 { +define internal { %TName_List_Int64* (i8*, %Int64)*, i8* } @"$fundef_61"(%"$$fundef_61_env_139"* %0) !dbg !22 { entry: %"$retval_62" = alloca { %TName_List_Int64* (i8*, %Int64)*, 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" + %"$gasrem_755" = load i64, i64* @_gasrem, align 8 + %"$gascmp_756" = icmp ugt i64 1, %"$gasrem_755" + br i1 %"$gascmp_756", label %"$out_of_gas_757", label %"$have_gas_758" -"$out_of_gas_746": ; preds = %entry +"$out_of_gas_757": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_747" + br label %"$have_gas_758" -"$have_gas_747": ; preds = %"$out_of_gas_746", %entry - %"$consume_748" = sub i64 %"$gasrem_744", 1 - store i64 %"$consume_748", i64* @_gasrem, align 8 - store { %TName_List_Int64* (i8*, %Int64)*, i8* } { %TName_List_Int64* (i8*, %Int64)* bitcast (%TName_List_Int64* (%"$$fundef_63_env_138"*, %Int64)* @"$fundef_63" to %TName_List_Int64* (i8*, %Int64)*), i8* null }, { %TName_List_Int64* (i8*, %Int64)*, i8* }* %"$retval_62", align 8, !dbg !12 - %"$$retval_62_752" = load { %TName_List_Int64* (i8*, %Int64)*, i8* }, { %TName_List_Int64* (i8*, %Int64)*, i8* }* %"$retval_62", align 8 - ret { %TName_List_Int64* (i8*, %Int64)*, i8* } %"$$retval_62_752" +"$have_gas_758": ; preds = %"$out_of_gas_757", %entry + %"$consume_759" = sub i64 %"$gasrem_755", 1 + store i64 %"$consume_759", i64* @_gasrem, align 8 + store { %TName_List_Int64* (i8*, %Int64)*, i8* } { %TName_List_Int64* (i8*, %Int64)* bitcast (%TName_List_Int64* (%"$$fundef_63_env_138"*, %Int64)* @"$fundef_63" to %TName_List_Int64* (i8*, %Int64)*), i8* null }, { %TName_List_Int64* (i8*, %Int64)*, i8* }* %"$retval_62", align 8, !dbg !23 + %"$$retval_62_763" = load { %TName_List_Int64* (i8*, %Int64)*, i8* }, { %TName_List_Int64* (i8*, %Int64)*, i8* }* %"$retval_62", align 8 + ret { %TName_List_Int64* (i8*, %Int64)*, i8* } %"$$retval_62_763" } -define internal %TName_List_Int32* @"$fundef_59"(%"$$fundef_59_env_140"* %0, %Int32 %1) !dbg !13 { +define internal %TName_List_Int32* @"$fundef_59"(%"$$fundef_59_env_140"* %0, %Int32 %1) !dbg !24 { entry: + %"$a_754" = alloca %Int32, align 8 + store %Int32 %1, %Int32* %"$a_754", align 4 + call void @llvm.dbg.declare(metadata %Int32* %"$a_754", metadata !25, metadata !DIExpression()), !dbg !27 %"$retval_60" = alloca %TName_List_Int32*, 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" + call void @llvm.dbg.declare(metadata %TName_List_Int32** %"$retval_60", metadata !28, metadata !DIExpression()), !dbg !31 + %"$gasrem_713" = load i64, i64* @_gasrem, align 8 + %"$gascmp_714" = icmp ugt i64 1, %"$gasrem_713" + br i1 %"$gascmp_714", label %"$out_of_gas_715", label %"$have_gas_716" -"$out_of_gas_705": ; preds = %entry +"$out_of_gas_715": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_706" + br label %"$have_gas_716" -"$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_716": ; preds = %"$out_of_gas_715", %entry + %"$consume_717" = sub i64 %"$gasrem_713", 1 + store i64 %"$consume_717", i64* @_gasrem, align 8 %an = alloca %TName_List_Int32*, 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 - %"$adtval_713_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_713_salloc" = call i8* @_salloc(i8* %"$adtval_713_load", i64 1) - %"$adtval_713" = bitcast i8* %"$adtval_713_salloc" to %CName_Nil_Int32* - %"$adtgep_714" = getelementptr inbounds %CName_Nil_Int32, %CName_Nil_Int32* %"$adtval_713", i32 0, i32 0 - store i8 1, i8* %"$adtgep_714", align 1 - %"$adtptr_715" = bitcast %CName_Nil_Int32* %"$adtval_713" to %TName_List_Int32* - store %TName_List_Int32* %"$adtptr_715", %TName_List_Int32** %an, align 8, !dbg !14 - %"$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_711" - call void @_out_of_gas() - br label %"$have_gas_719" - -"$have_gas_719": ; preds = %"$out_of_gas_718", %"$have_gas_711" - %"$consume_720" = sub i64 %"$gasrem_716", 1 - store i64 %"$consume_720", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_List_Int32** %an, metadata !32, metadata !DIExpression()), !dbg !33 + %"$gasrem_718" = load i64, i64* @_gasrem, align 8 + %"$gascmp_719" = icmp ugt i64 1, %"$gasrem_718" + br i1 %"$gascmp_719", label %"$out_of_gas_720", label %"$have_gas_721" + +"$out_of_gas_720": ; preds = %"$have_gas_716" + call void @_out_of_gas() + br label %"$have_gas_721" + +"$have_gas_721": ; preds = %"$out_of_gas_720", %"$have_gas_716" + %"$consume_722" = sub i64 %"$gasrem_718", 1 + store i64 %"$consume_722", i64* @_gasrem, align 8 + %"$adtval_723_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_723_salloc" = call i8* @_salloc(i8* %"$adtval_723_load", i64 1) + %"$adtval_723" = bitcast i8* %"$adtval_723_salloc" to %CName_Nil_Int32* + %"$adtgep_724" = getelementptr inbounds %CName_Nil_Int32, %CName_Nil_Int32* %"$adtval_723", i32 0, i32 0 + store i8 1, i8* %"$adtgep_724", align 1 + %"$adtptr_725" = bitcast %CName_Nil_Int32* %"$adtval_723" to %TName_List_Int32* + store %TName_List_Int32* %"$adtptr_725", %TName_List_Int32** %an, align 8, !dbg !34 + %"$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_721" + call void @_out_of_gas() + br label %"$have_gas_729" + +"$have_gas_729": ; preds = %"$out_of_gas_728", %"$have_gas_721" + %"$consume_730" = sub i64 %"$gasrem_726", 1 + store i64 %"$consume_730", i64* @_gasrem, align 8 %a1 = alloca %TName_List_Int32*, align 8 - %"$gasrem_721" = load i64, i64* @_gasrem, align 8 - %"$gascmp_722" = icmp ugt i64 1, %"$gasrem_721" - br i1 %"$gascmp_722", label %"$out_of_gas_723", label %"$have_gas_724" - -"$out_of_gas_723": ; preds = %"$have_gas_719" - call void @_out_of_gas() - br label %"$have_gas_724" - -"$have_gas_724": ; preds = %"$out_of_gas_723", %"$have_gas_719" - %"$consume_725" = sub i64 %"$gasrem_721", 1 - store i64 %"$consume_725", i64* @_gasrem, align 8 - %"$an_726" = load %TName_List_Int32*, %TName_List_Int32** %an, align 8 - %"$adtval_727_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_727_salloc" = call i8* @_salloc(i8* %"$adtval_727_load", i64 13) - %"$adtval_727" = bitcast i8* %"$adtval_727_salloc" to %CName_Cons_Int32* - %"$adtgep_728" = getelementptr inbounds %CName_Cons_Int32, %CName_Cons_Int32* %"$adtval_727", i32 0, i32 0 - store i8 0, i8* %"$adtgep_728", align 1 - %"$adtgep_729" = getelementptr inbounds %CName_Cons_Int32, %CName_Cons_Int32* %"$adtval_727", i32 0, i32 1 - store %Int32 %1, %Int32* %"$adtgep_729", align 4 - %"$adtgep_730" = getelementptr inbounds %CName_Cons_Int32, %CName_Cons_Int32* %"$adtval_727", i32 0, i32 2 - store %TName_List_Int32* %"$an_726", %TName_List_Int32** %"$adtgep_730", align 8 - %"$adtptr_731" = bitcast %CName_Cons_Int32* %"$adtval_727" to %TName_List_Int32* - store %TName_List_Int32* %"$adtptr_731", %TName_List_Int32** %a1, align 8, !dbg !15 - %"$gasrem_732" = load i64, i64* @_gasrem, align 8 - %"$gascmp_733" = icmp ugt i64 1, %"$gasrem_732" - br i1 %"$gascmp_733", label %"$out_of_gas_734", label %"$have_gas_735" - -"$out_of_gas_734": ; preds = %"$have_gas_724" - call void @_out_of_gas() - br label %"$have_gas_735" - -"$have_gas_735": ; preds = %"$out_of_gas_734", %"$have_gas_724" - %"$consume_736" = sub i64 %"$gasrem_732", 1 - store i64 %"$consume_736", i64* @_gasrem, align 8 - %"$a1_737" = load %TName_List_Int32*, %TName_List_Int32** %a1, align 8 - %"$adtval_738_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_738_salloc" = call i8* @_salloc(i8* %"$adtval_738_load", i64 13) - %"$adtval_738" = bitcast i8* %"$adtval_738_salloc" to %CName_Cons_Int32* - %"$adtgep_739" = getelementptr inbounds %CName_Cons_Int32, %CName_Cons_Int32* %"$adtval_738", i32 0, i32 0 - store i8 0, i8* %"$adtgep_739", align 1 - %"$adtgep_740" = getelementptr inbounds %CName_Cons_Int32, %CName_Cons_Int32* %"$adtval_738", i32 0, i32 1 - store %Int32 %1, %Int32* %"$adtgep_740", align 4 - %"$adtgep_741" = getelementptr inbounds %CName_Cons_Int32, %CName_Cons_Int32* %"$adtval_738", i32 0, i32 2 - store %TName_List_Int32* %"$a1_737", %TName_List_Int32** %"$adtgep_741", align 8 - %"$adtptr_742" = bitcast %CName_Cons_Int32* %"$adtval_738" to %TName_List_Int32* - store %TName_List_Int32* %"$adtptr_742", %TName_List_Int32** %"$retval_60", align 8, !dbg !16 - %"$$retval_60_743" = load %TName_List_Int32*, %TName_List_Int32** %"$retval_60", align 8 - ret %TName_List_Int32* %"$$retval_60_743" + call void @llvm.dbg.declare(metadata %TName_List_Int32** %a1, metadata !35, metadata !DIExpression()), !dbg !36 + %"$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 + %"$an_736" = load %TName_List_Int32*, %TName_List_Int32** %an, align 8 + %"$adtval_737_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_737_salloc" = call i8* @_salloc(i8* %"$adtval_737_load", i64 13) + %"$adtval_737" = bitcast i8* %"$adtval_737_salloc" to %CName_Cons_Int32* + %"$adtgep_738" = getelementptr inbounds %CName_Cons_Int32, %CName_Cons_Int32* %"$adtval_737", i32 0, i32 0 + store i8 0, i8* %"$adtgep_738", align 1 + %"$adtgep_739" = getelementptr inbounds %CName_Cons_Int32, %CName_Cons_Int32* %"$adtval_737", i32 0, i32 1 + store %Int32 %1, %Int32* %"$adtgep_739", align 4 + %"$adtgep_740" = getelementptr inbounds %CName_Cons_Int32, %CName_Cons_Int32* %"$adtval_737", i32 0, i32 2 + store %TName_List_Int32* %"$an_736", %TName_List_Int32** %"$adtgep_740", align 8 + %"$adtptr_741" = bitcast %CName_Cons_Int32* %"$adtval_737" to %TName_List_Int32* + store %TName_List_Int32* %"$adtptr_741", %TName_List_Int32** %a1, align 8, !dbg !37 + %"$gasrem_742" = load i64, i64* @_gasrem, align 8 + %"$gascmp_743" = icmp ugt i64 1, %"$gasrem_742" + br i1 %"$gascmp_743", label %"$out_of_gas_744", label %"$have_gas_745" + +"$out_of_gas_744": ; preds = %"$have_gas_734" + call void @_out_of_gas() + br label %"$have_gas_745" + +"$have_gas_745": ; preds = %"$out_of_gas_744", %"$have_gas_734" + %"$consume_746" = sub i64 %"$gasrem_742", 1 + store i64 %"$consume_746", i64* @_gasrem, align 8 + %"$a1_747" = load %TName_List_Int32*, %TName_List_Int32** %a1, align 8 + %"$adtval_748_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_748_salloc" = call i8* @_salloc(i8* %"$adtval_748_load", i64 13) + %"$adtval_748" = bitcast i8* %"$adtval_748_salloc" to %CName_Cons_Int32* + %"$adtgep_749" = getelementptr inbounds %CName_Cons_Int32, %CName_Cons_Int32* %"$adtval_748", i32 0, i32 0 + store i8 0, i8* %"$adtgep_749", align 1 + %"$adtgep_750" = getelementptr inbounds %CName_Cons_Int32, %CName_Cons_Int32* %"$adtval_748", i32 0, i32 1 + store %Int32 %1, %Int32* %"$adtgep_750", align 4 + %"$adtgep_751" = getelementptr inbounds %CName_Cons_Int32, %CName_Cons_Int32* %"$adtval_748", i32 0, i32 2 + store %TName_List_Int32* %"$a1_747", %TName_List_Int32** %"$adtgep_751", align 8 + %"$adtptr_752" = bitcast %CName_Cons_Int32* %"$adtval_748" to %TName_List_Int32* + store %TName_List_Int32* %"$adtptr_752", %TName_List_Int32** %"$retval_60", align 8, !dbg !38 + %"$$retval_60_753" = load %TName_List_Int32*, %TName_List_Int32** %"$retval_60", align 8 + ret %TName_List_Int32* %"$$retval_60_753" } -define internal { %TName_List_Int32* (i8*, %Int32)*, i8* } @"$fundef_57"(%"$$fundef_57_env_141"* %0) !dbg !17 { +define internal { %TName_List_Int32* (i8*, %Int32)*, i8* } @"$fundef_57"(%"$$fundef_57_env_141"* %0) !dbg !39 { entry: %"$retval_58" = alloca { %TName_List_Int32* (i8*, %Int32)*, i8* }, 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" + %"$gasrem_704" = load i64, i64* @_gasrem, align 8 + %"$gascmp_705" = icmp ugt i64 1, %"$gasrem_704" + br i1 %"$gascmp_705", label %"$out_of_gas_706", label %"$have_gas_707" -"$out_of_gas_696": ; preds = %entry +"$out_of_gas_706": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_697" + br label %"$have_gas_707" -"$have_gas_697": ; preds = %"$out_of_gas_696", %entry - %"$consume_698" = sub i64 %"$gasrem_694", 1 - store i64 %"$consume_698", i64* @_gasrem, align 8 - store { %TName_List_Int32* (i8*, %Int32)*, i8* } { %TName_List_Int32* (i8*, %Int32)* bitcast (%TName_List_Int32* (%"$$fundef_59_env_140"*, %Int32)* @"$fundef_59" to %TName_List_Int32* (i8*, %Int32)*), i8* null }, { %TName_List_Int32* (i8*, %Int32)*, i8* }* %"$retval_58", align 8, !dbg !18 - %"$$retval_58_702" = load { %TName_List_Int32* (i8*, %Int32)*, i8* }, { %TName_List_Int32* (i8*, %Int32)*, i8* }* %"$retval_58", align 8 - ret { %TName_List_Int32* (i8*, %Int32)*, i8* } %"$$retval_58_702" +"$have_gas_707": ; preds = %"$out_of_gas_706", %entry + %"$consume_708" = sub i64 %"$gasrem_704", 1 + store i64 %"$consume_708", i64* @_gasrem, align 8 + store { %TName_List_Int32* (i8*, %Int32)*, i8* } { %TName_List_Int32* (i8*, %Int32)* bitcast (%TName_List_Int32* (%"$$fundef_59_env_140"*, %Int32)* @"$fundef_59" to %TName_List_Int32* (i8*, %Int32)*), i8* null }, { %TName_List_Int32* (i8*, %Int32)*, i8* }* %"$retval_58", align 8, !dbg !40 + %"$$retval_58_712" = load { %TName_List_Int32* (i8*, %Int32)*, i8* }, { %TName_List_Int32* (i8*, %Int32)*, i8* }* %"$retval_58", align 8 + ret { %TName_List_Int32* (i8*, %Int32)*, i8* } %"$$retval_58_712" } -define internal %TName_List_Int64* @"$fundef_55"(%"$$fundef_55_env_142"* %0, %Int64 %1) !dbg !19 { +define internal %TName_List_Int64* @"$fundef_55"(%"$$fundef_55_env_142"* %0, %Int64 %1) !dbg !41 { entry: + %"$a_703" = alloca %Int64, align 8 + store %Int64 %1, %Int64* %"$a_703", align 8 + call void @llvm.dbg.declare(metadata %Int64* %"$a_703", metadata !42, metadata !DIExpression()), !dbg !43 %"$retval_56" = alloca %TName_List_Int64*, align 8 - %"$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" + call void @llvm.dbg.declare(metadata %TName_List_Int64** %"$retval_56", metadata !44, metadata !DIExpression()), !dbg !45 + %"$gasrem_678" = load i64, i64* @_gasrem, align 8 + %"$gascmp_679" = icmp ugt i64 1, %"$gasrem_678" + br i1 %"$gascmp_679", label %"$out_of_gas_680", label %"$have_gas_681" -"$out_of_gas_671": ; preds = %entry +"$out_of_gas_680": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_672" + br label %"$have_gas_681" -"$have_gas_672": ; preds = %"$out_of_gas_671", %entry - %"$consume_673" = sub i64 %"$gasrem_669", 1 - store i64 %"$consume_673", i64* @_gasrem, align 8 +"$have_gas_681": ; preds = %"$out_of_gas_680", %entry + %"$consume_682" = sub i64 %"$gasrem_678", 1 + store i64 %"$consume_682", i64* @_gasrem, align 8 %an = alloca %TName_List_Int64*, 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 - %"$adtval_679_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_679_salloc" = call i8* @_salloc(i8* %"$adtval_679_load", i64 1) - %"$adtval_679" = bitcast i8* %"$adtval_679_salloc" to %CName_Nil_Int64* - %"$adtgep_680" = getelementptr inbounds %CName_Nil_Int64, %CName_Nil_Int64* %"$adtval_679", i32 0, i32 0 - store i8 1, i8* %"$adtgep_680", align 1 - %"$adtptr_681" = bitcast %CName_Nil_Int64* %"$adtval_679" to %TName_List_Int64* - store %TName_List_Int64* %"$adtptr_681", %TName_List_Int64** %an, align 8, !dbg !20 - %"$gasrem_682" = load i64, i64* @_gasrem, align 8 - %"$gascmp_683" = icmp ugt i64 1, %"$gasrem_682" - br i1 %"$gascmp_683", label %"$out_of_gas_684", label %"$have_gas_685" - -"$out_of_gas_684": ; preds = %"$have_gas_677" - call void @_out_of_gas() - br label %"$have_gas_685" - -"$have_gas_685": ; preds = %"$out_of_gas_684", %"$have_gas_677" - %"$consume_686" = sub i64 %"$gasrem_682", 1 - store i64 %"$consume_686", i64* @_gasrem, align 8 - %"$an_687" = load %TName_List_Int64*, %TName_List_Int64** %an, align 8 + call void @llvm.dbg.declare(metadata %TName_List_Int64** %an, metadata !46, metadata !DIExpression()), !dbg !47 + %"$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 = %"$have_gas_681" + call void @_out_of_gas() + br label %"$have_gas_686" + +"$have_gas_686": ; preds = %"$out_of_gas_685", %"$have_gas_681" + %"$consume_687" = sub i64 %"$gasrem_683", 1 + store i64 %"$consume_687", i64* @_gasrem, align 8 %"$adtval_688_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_688_salloc" = call i8* @_salloc(i8* %"$adtval_688_load", i64 17) - %"$adtval_688" = bitcast i8* %"$adtval_688_salloc" to %CName_Cons_Int64* - %"$adtgep_689" = getelementptr inbounds %CName_Cons_Int64, %CName_Cons_Int64* %"$adtval_688", i32 0, i32 0 - store i8 0, i8* %"$adtgep_689", align 1 - %"$adtgep_690" = getelementptr inbounds %CName_Cons_Int64, %CName_Cons_Int64* %"$adtval_688", i32 0, i32 1 - store %Int64 %1, %Int64* %"$adtgep_690", align 8 - %"$adtgep_691" = getelementptr inbounds %CName_Cons_Int64, %CName_Cons_Int64* %"$adtval_688", i32 0, i32 2 - store %TName_List_Int64* %"$an_687", %TName_List_Int64** %"$adtgep_691", align 8 - %"$adtptr_692" = bitcast %CName_Cons_Int64* %"$adtval_688" to %TName_List_Int64* - store %TName_List_Int64* %"$adtptr_692", %TName_List_Int64** %"$retval_56", align 8, !dbg !21 - %"$$retval_56_693" = load %TName_List_Int64*, %TName_List_Int64** %"$retval_56", align 8 - ret %TName_List_Int64* %"$$retval_56_693" + %"$adtval_688_salloc" = call i8* @_salloc(i8* %"$adtval_688_load", i64 1) + %"$adtval_688" = bitcast i8* %"$adtval_688_salloc" to %CName_Nil_Int64* + %"$adtgep_689" = getelementptr inbounds %CName_Nil_Int64, %CName_Nil_Int64* %"$adtval_688", i32 0, i32 0 + store i8 1, i8* %"$adtgep_689", align 1 + %"$adtptr_690" = bitcast %CName_Nil_Int64* %"$adtval_688" to %TName_List_Int64* + store %TName_List_Int64* %"$adtptr_690", %TName_List_Int64** %an, align 8, !dbg !48 + %"$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_686" + call void @_out_of_gas() + br label %"$have_gas_694" + +"$have_gas_694": ; preds = %"$out_of_gas_693", %"$have_gas_686" + %"$consume_695" = sub i64 %"$gasrem_691", 1 + store i64 %"$consume_695", i64* @_gasrem, align 8 + %"$an_696" = load %TName_List_Int64*, %TName_List_Int64** %an, align 8 + %"$adtval_697_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_697_salloc" = call i8* @_salloc(i8* %"$adtval_697_load", i64 17) + %"$adtval_697" = bitcast i8* %"$adtval_697_salloc" to %CName_Cons_Int64* + %"$adtgep_698" = getelementptr inbounds %CName_Cons_Int64, %CName_Cons_Int64* %"$adtval_697", i32 0, i32 0 + store i8 0, i8* %"$adtgep_698", align 1 + %"$adtgep_699" = getelementptr inbounds %CName_Cons_Int64, %CName_Cons_Int64* %"$adtval_697", i32 0, i32 1 + store %Int64 %1, %Int64* %"$adtgep_699", align 8 + %"$adtgep_700" = getelementptr inbounds %CName_Cons_Int64, %CName_Cons_Int64* %"$adtval_697", i32 0, i32 2 + store %TName_List_Int64* %"$an_696", %TName_List_Int64** %"$adtgep_700", align 8 + %"$adtptr_701" = bitcast %CName_Cons_Int64* %"$adtval_697" to %TName_List_Int64* + store %TName_List_Int64* %"$adtptr_701", %TName_List_Int64** %"$retval_56", align 8, !dbg !49 + %"$$retval_56_702" = load %TName_List_Int64*, %TName_List_Int64** %"$retval_56", align 8 + ret %TName_List_Int64* %"$$retval_56_702" } -define internal { %TName_List_Int64* (i8*, %Int64)*, i8* } @"$fundef_53"(%"$$fundef_53_env_143"* %0) !dbg !22 { +define internal { %TName_List_Int64* (i8*, %Int64)*, i8* } @"$fundef_53"(%"$$fundef_53_env_143"* %0) !dbg !50 { entry: %"$retval_54" = alloca { %TName_List_Int64* (i8*, %Int64)*, i8* }, 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" + %"$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_662": ; preds = %entry +"$out_of_gas_671": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_663" + br label %"$have_gas_672" -"$have_gas_663": ; preds = %"$out_of_gas_662", %entry - %"$consume_664" = sub i64 %"$gasrem_660", 1 - store i64 %"$consume_664", i64* @_gasrem, align 8 - store { %TName_List_Int64* (i8*, %Int64)*, i8* } { %TName_List_Int64* (i8*, %Int64)* bitcast (%TName_List_Int64* (%"$$fundef_55_env_142"*, %Int64)* @"$fundef_55" to %TName_List_Int64* (i8*, %Int64)*), i8* null }, { %TName_List_Int64* (i8*, %Int64)*, i8* }* %"$retval_54", align 8, !dbg !23 - %"$$retval_54_668" = load { %TName_List_Int64* (i8*, %Int64)*, i8* }, { %TName_List_Int64* (i8*, %Int64)*, i8* }* %"$retval_54", align 8 - ret { %TName_List_Int64* (i8*, %Int64)*, i8* } %"$$retval_54_668" +"$have_gas_672": ; preds = %"$out_of_gas_671", %entry + %"$consume_673" = sub i64 %"$gasrem_669", 1 + store i64 %"$consume_673", i64* @_gasrem, align 8 + store { %TName_List_Int64* (i8*, %Int64)*, i8* } { %TName_List_Int64* (i8*, %Int64)* bitcast (%TName_List_Int64* (%"$$fundef_55_env_142"*, %Int64)* @"$fundef_55" to %TName_List_Int64* (i8*, %Int64)*), i8* null }, { %TName_List_Int64* (i8*, %Int64)*, i8* }* %"$retval_54", align 8, !dbg !51 + %"$$retval_54_677" = load { %TName_List_Int64* (i8*, %Int64)*, i8* }, { %TName_List_Int64* (i8*, %Int64)*, i8* }* %"$retval_54", align 8 + ret { %TName_List_Int64* (i8*, %Int64)*, i8* } %"$$retval_54_677" } -define internal %TName_List_Int32* @"$fundef_51"(%"$$fundef_51_env_144"* %0, %Int32 %1) !dbg !24 { +define internal %TName_List_Int32* @"$fundef_51"(%"$$fundef_51_env_144"* %0, %Int32 %1) !dbg !52 { entry: + %"$a_668" = alloca %Int32, align 8 + store %Int32 %1, %Int32* %"$a_668", align 4 + call void @llvm.dbg.declare(metadata %Int32* %"$a_668", metadata !53, metadata !DIExpression()), !dbg !54 %"$retval_52" = alloca %TName_List_Int32*, align 8 - %"$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" + call void @llvm.dbg.declare(metadata %TName_List_Int32** %"$retval_52", metadata !55, metadata !DIExpression()), !dbg !56 + %"$gasrem_643" = load i64, i64* @_gasrem, align 8 + %"$gascmp_644" = icmp ugt i64 1, %"$gasrem_643" + br i1 %"$gascmp_644", label %"$out_of_gas_645", label %"$have_gas_646" -"$out_of_gas_637": ; preds = %entry +"$out_of_gas_645": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_638" + br label %"$have_gas_646" -"$have_gas_638": ; preds = %"$out_of_gas_637", %entry - %"$consume_639" = sub i64 %"$gasrem_635", 1 - store i64 %"$consume_639", i64* @_gasrem, align 8 +"$have_gas_646": ; preds = %"$out_of_gas_645", %entry + %"$consume_647" = sub i64 %"$gasrem_643", 1 + store i64 %"$consume_647", i64* @_gasrem, align 8 %an = alloca %TName_List_Int32*, align 8 - %"$gasrem_640" = load i64, i64* @_gasrem, align 8 - %"$gascmp_641" = icmp ugt i64 1, %"$gasrem_640" - br i1 %"$gascmp_641", label %"$out_of_gas_642", label %"$have_gas_643" - -"$out_of_gas_642": ; preds = %"$have_gas_638" - call void @_out_of_gas() - br label %"$have_gas_643" - -"$have_gas_643": ; preds = %"$out_of_gas_642", %"$have_gas_638" - %"$consume_644" = sub i64 %"$gasrem_640", 1 - store i64 %"$consume_644", i64* @_gasrem, align 8 - %"$adtval_645_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_645_salloc" = call i8* @_salloc(i8* %"$adtval_645_load", i64 1) - %"$adtval_645" = bitcast i8* %"$adtval_645_salloc" to %CName_Nil_Int32* - %"$adtgep_646" = getelementptr inbounds %CName_Nil_Int32, %CName_Nil_Int32* %"$adtval_645", i32 0, i32 0 - store i8 1, i8* %"$adtgep_646", align 1 - %"$adtptr_647" = bitcast %CName_Nil_Int32* %"$adtval_645" to %TName_List_Int32* - store %TName_List_Int32* %"$adtptr_647", %TName_List_Int32** %an, align 8, !dbg !25 + call void @llvm.dbg.declare(metadata %TName_List_Int32** %an, metadata !57, metadata !DIExpression()), !dbg !58 %"$gasrem_648" = load i64, i64* @_gasrem, align 8 %"$gascmp_649" = icmp ugt i64 1, %"$gasrem_648" br i1 %"$gascmp_649", label %"$out_of_gas_650", label %"$have_gas_651" -"$out_of_gas_650": ; preds = %"$have_gas_643" +"$out_of_gas_650": ; preds = %"$have_gas_646" call void @_out_of_gas() br label %"$have_gas_651" -"$have_gas_651": ; preds = %"$out_of_gas_650", %"$have_gas_643" +"$have_gas_651": ; preds = %"$out_of_gas_650", %"$have_gas_646" %"$consume_652" = sub i64 %"$gasrem_648", 1 store i64 %"$consume_652", i64* @_gasrem, align 8 - %"$an_653" = load %TName_List_Int32*, %TName_List_Int32** %an, align 8 - %"$adtval_654_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_654_salloc" = call i8* @_salloc(i8* %"$adtval_654_load", i64 13) - %"$adtval_654" = bitcast i8* %"$adtval_654_salloc" to %CName_Cons_Int32* - %"$adtgep_655" = getelementptr inbounds %CName_Cons_Int32, %CName_Cons_Int32* %"$adtval_654", i32 0, i32 0 - store i8 0, i8* %"$adtgep_655", align 1 - %"$adtgep_656" = getelementptr inbounds %CName_Cons_Int32, %CName_Cons_Int32* %"$adtval_654", i32 0, i32 1 - store %Int32 %1, %Int32* %"$adtgep_656", align 4 - %"$adtgep_657" = getelementptr inbounds %CName_Cons_Int32, %CName_Cons_Int32* %"$adtval_654", i32 0, i32 2 - store %TName_List_Int32* %"$an_653", %TName_List_Int32** %"$adtgep_657", align 8 - %"$adtptr_658" = bitcast %CName_Cons_Int32* %"$adtval_654" to %TName_List_Int32* - store %TName_List_Int32* %"$adtptr_658", %TName_List_Int32** %"$retval_52", align 8, !dbg !26 - %"$$retval_52_659" = load %TName_List_Int32*, %TName_List_Int32** %"$retval_52", align 8 - ret %TName_List_Int32* %"$$retval_52_659" + %"$adtval_653_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_653_salloc" = call i8* @_salloc(i8* %"$adtval_653_load", i64 1) + %"$adtval_653" = bitcast i8* %"$adtval_653_salloc" to %CName_Nil_Int32* + %"$adtgep_654" = getelementptr inbounds %CName_Nil_Int32, %CName_Nil_Int32* %"$adtval_653", i32 0, i32 0 + store i8 1, i8* %"$adtgep_654", align 1 + %"$adtptr_655" = bitcast %CName_Nil_Int32* %"$adtval_653" to %TName_List_Int32* + store %TName_List_Int32* %"$adtptr_655", %TName_List_Int32** %an, align 8, !dbg !59 + %"$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_651" + call void @_out_of_gas() + br label %"$have_gas_659" + +"$have_gas_659": ; preds = %"$out_of_gas_658", %"$have_gas_651" + %"$consume_660" = sub i64 %"$gasrem_656", 1 + store i64 %"$consume_660", i64* @_gasrem, align 8 + %"$an_661" = load %TName_List_Int32*, %TName_List_Int32** %an, align 8 + %"$adtval_662_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_662_salloc" = call i8* @_salloc(i8* %"$adtval_662_load", i64 13) + %"$adtval_662" = bitcast i8* %"$adtval_662_salloc" to %CName_Cons_Int32* + %"$adtgep_663" = getelementptr inbounds %CName_Cons_Int32, %CName_Cons_Int32* %"$adtval_662", i32 0, i32 0 + store i8 0, i8* %"$adtgep_663", align 1 + %"$adtgep_664" = getelementptr inbounds %CName_Cons_Int32, %CName_Cons_Int32* %"$adtval_662", i32 0, i32 1 + store %Int32 %1, %Int32* %"$adtgep_664", align 4 + %"$adtgep_665" = getelementptr inbounds %CName_Cons_Int32, %CName_Cons_Int32* %"$adtval_662", i32 0, i32 2 + store %TName_List_Int32* %"$an_661", %TName_List_Int32** %"$adtgep_665", align 8 + %"$adtptr_666" = bitcast %CName_Cons_Int32* %"$adtval_662" to %TName_List_Int32* + store %TName_List_Int32* %"$adtptr_666", %TName_List_Int32** %"$retval_52", align 8, !dbg !60 + %"$$retval_52_667" = load %TName_List_Int32*, %TName_List_Int32** %"$retval_52", align 8 + ret %TName_List_Int32* %"$$retval_52_667" } -define internal { %TName_List_Int32* (i8*, %Int32)*, i8* } @"$fundef_49"(%"$$fundef_49_env_145"* %0) !dbg !27 { +define internal { %TName_List_Int32* (i8*, %Int32)*, i8* } @"$fundef_49"(%"$$fundef_49_env_145"* %0) !dbg !61 { entry: %"$retval_50" = alloca { %TName_List_Int32* (i8*, %Int32)*, i8* }, align 8 - %"$gasrem_626" = load i64, i64* @_gasrem, align 8 - %"$gascmp_627" = icmp ugt i64 1, %"$gasrem_626" - br i1 %"$gascmp_627", label %"$out_of_gas_628", label %"$have_gas_629" + %"$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" -"$out_of_gas_628": ; preds = %entry +"$out_of_gas_636": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_629" + br label %"$have_gas_637" -"$have_gas_629": ; preds = %"$out_of_gas_628", %entry - %"$consume_630" = sub i64 %"$gasrem_626", 1 - store i64 %"$consume_630", i64* @_gasrem, align 8 - store { %TName_List_Int32* (i8*, %Int32)*, i8* } { %TName_List_Int32* (i8*, %Int32)* bitcast (%TName_List_Int32* (%"$$fundef_51_env_144"*, %Int32)* @"$fundef_51" to %TName_List_Int32* (i8*, %Int32)*), i8* null }, { %TName_List_Int32* (i8*, %Int32)*, i8* }* %"$retval_50", align 8, !dbg !28 - %"$$retval_50_634" = load { %TName_List_Int32* (i8*, %Int32)*, i8* }, { %TName_List_Int32* (i8*, %Int32)*, i8* }* %"$retval_50", align 8 - ret { %TName_List_Int32* (i8*, %Int32)*, i8* } %"$$retval_50_634" +"$have_gas_637": ; preds = %"$out_of_gas_636", %entry + %"$consume_638" = sub i64 %"$gasrem_634", 1 + store i64 %"$consume_638", i64* @_gasrem, align 8 + store { %TName_List_Int32* (i8*, %Int32)*, i8* } { %TName_List_Int32* (i8*, %Int32)* bitcast (%TName_List_Int32* (%"$$fundef_51_env_144"*, %Int32)* @"$fundef_51" to %TName_List_Int32* (i8*, %Int32)*), i8* null }, { %TName_List_Int32* (i8*, %Int32)*, i8* }* %"$retval_50", align 8, !dbg !62 + %"$$retval_50_642" = load { %TName_List_Int32* (i8*, %Int32)*, i8* }, { %TName_List_Int32* (i8*, %Int32)*, i8* }* %"$retval_50", align 8 + ret { %TName_List_Int32* (i8*, %Int32)*, i8* } %"$$retval_50_642" } -define internal %Uint32 @"$fundef_46"(%"$$fundef_46_env_146"* %0, %Int64 %1) !dbg !29 { +define internal %Uint32 @"$fundef_46"(%"$$fundef_46_env_146"* %0, %Int64 %1) !dbg !63 { entry: - %"$$fundef_46_env_one_613" = getelementptr inbounds %"$$fundef_46_env_146", %"$$fundef_46_env_146"* %0, i32 0, i32 0 - %"$one_envload_614" = load %Uint32, %Uint32* %"$$fundef_46_env_one_613", align 4 + %"$h_633" = alloca %Int64, align 8 + store %Int64 %1, %Int64* %"$h_633", align 8 + call void @llvm.dbg.declare(metadata %Int64* %"$h_633", metadata !65, metadata !DIExpression()), !dbg !66 + %"$$fundef_46_env_one_620" = getelementptr inbounds %"$$fundef_46_env_146", %"$$fundef_46_env_146"* %0, i32 0, i32 0 + %"$one_envload_621" = load %Uint32, %Uint32* %"$$fundef_46_env_one_620", align 4 %one = alloca %Uint32, align 8 - store %Uint32 %"$one_envload_614", %Uint32* %one, align 4 - %"$$fundef_46_env_z_615" = getelementptr inbounds %"$$fundef_46_env_146", %"$$fundef_46_env_146"* %0, i32 0, i32 1 - %"$z_envload_616" = load %Uint32, %Uint32* %"$$fundef_46_env_z_615", align 4 + store %Uint32 %"$one_envload_621", %Uint32* %one, align 4 + %"$$fundef_46_env_z_622" = getelementptr inbounds %"$$fundef_46_env_146", %"$$fundef_46_env_146"* %0, i32 0, i32 1 + %"$z_envload_623" = load %Uint32, %Uint32* %"$$fundef_46_env_z_622", align 4 %z = alloca %Uint32, align 8 - store %Uint32 %"$z_envload_616", %Uint32* %z, align 4 + store %Uint32 %"$z_envload_623", %Uint32* %z, align 4 %"$retval_47" = alloca %Uint32, align 8 - %"$gasrem_617" = load i64, i64* @_gasrem, align 8 - %"$gascmp_618" = icmp ugt i64 4, %"$gasrem_617" - br i1 %"$gascmp_618", label %"$out_of_gas_619", label %"$have_gas_620" - -"$out_of_gas_619": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_620" - -"$have_gas_620": ; preds = %"$out_of_gas_619", %entry - %"$consume_621" = sub i64 %"$gasrem_617", 4 - store i64 %"$consume_621", i64* @_gasrem, align 8 - %"$one_622" = load %Uint32, %Uint32* %one, align 4 - %"$z_623" = load %Uint32, %Uint32* %z, align 4 - %"$add_call_624" = call %Uint32 @_add_Uint32(%Uint32 %"$one_622", %Uint32 %"$z_623"), !dbg !31 - store %Uint32 %"$add_call_624", %Uint32* %"$retval_47", align 4, !dbg !31 - %"$$retval_47_625" = load %Uint32, %Uint32* %"$retval_47", align 4 - ret %Uint32 %"$$retval_47_625" + call void @llvm.dbg.declare(metadata %Uint32* %"$retval_47", metadata !67, metadata !DIExpression()), !dbg !69 + %"$gasrem_624" = load i64, i64* @_gasrem, align 8 + %"$gascmp_625" = icmp ugt i64 4, %"$gasrem_624" + br i1 %"$gascmp_625", label %"$out_of_gas_626", label %"$have_gas_627" + +"$out_of_gas_626": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_627" + +"$have_gas_627": ; preds = %"$out_of_gas_626", %entry + %"$consume_628" = sub i64 %"$gasrem_624", 4 + store i64 %"$consume_628", i64* @_gasrem, align 8 + %"$one_629" = load %Uint32, %Uint32* %one, align 4 + %"$z_630" = load %Uint32, %Uint32* %z, align 4 + %"$add_call_631" = call %Uint32 @_add_Uint32(%Uint32 %"$one_629", %Uint32 %"$z_630"), !dbg !69 + store %Uint32 %"$add_call_631", %Uint32* %"$retval_47", align 4, !dbg !69 + %"$$retval_47_632" = load %Uint32, %Uint32* %"$retval_47", align 4 + ret %Uint32 %"$$retval_47_632" } -define internal { %Uint32 (i8*, %Int64)*, i8* } @"$fundef_44"(%"$$fundef_44_env_147"* %0, %Uint32 %1) !dbg !32 { +define internal { %Uint32 (i8*, %Int64)*, i8* } @"$fundef_44"(%"$$fundef_44_env_147"* %0, %Uint32 %1) !dbg !70 { entry: - %"$$fundef_44_env_one_598" = getelementptr inbounds %"$$fundef_44_env_147", %"$$fundef_44_env_147"* %0, i32 0, i32 0 - %"$one_envload_599" = load %Uint32, %Uint32* %"$$fundef_44_env_one_598", align 4 + %"$z_619" = alloca %Uint32, align 8 + store %Uint32 %1, %Uint32* %"$z_619", align 4 + call void @llvm.dbg.declare(metadata %Uint32* %"$z_619", metadata !71, metadata !DIExpression()), !dbg !72 + %"$$fundef_44_env_one_604" = getelementptr inbounds %"$$fundef_44_env_147", %"$$fundef_44_env_147"* %0, i32 0, i32 0 + %"$one_envload_605" = load %Uint32, %Uint32* %"$$fundef_44_env_one_604", align 4 %one = alloca %Uint32, align 8 - store %Uint32 %"$one_envload_599", %Uint32* %one, align 4 + store %Uint32 %"$one_envload_605", %Uint32* %one, align 4 %"$retval_45" = alloca { %Uint32 (i8*, %Int64)*, i8* }, align 8 - %"$gasrem_600" = load i64, i64* @_gasrem, align 8 - %"$gascmp_601" = icmp ugt i64 1, %"$gasrem_600" - br i1 %"$gascmp_601", label %"$out_of_gas_602", label %"$have_gas_603" - -"$out_of_gas_602": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_603" - -"$have_gas_603": ; preds = %"$out_of_gas_602", %entry - %"$consume_604" = sub i64 %"$gasrem_600", 1 - store i64 %"$consume_604", i64* @_gasrem, align 8 - %"$$fundef_46_envp_605_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_46_envp_605_salloc" = call i8* @_salloc(i8* %"$$fundef_46_envp_605_load", i64 8) - %"$$fundef_46_envp_605" = bitcast i8* %"$$fundef_46_envp_605_salloc" to %"$$fundef_46_env_146"* - %"$$fundef_46_env_voidp_607" = bitcast %"$$fundef_46_env_146"* %"$$fundef_46_envp_605" to i8* - %"$$fundef_46_cloval_608" = insertvalue { %Uint32 (i8*, %Int64)*, i8* } { %Uint32 (i8*, %Int64)* bitcast (%Uint32 (%"$$fundef_46_env_146"*, %Int64)* @"$fundef_46" to %Uint32 (i8*, %Int64)*), i8* undef }, i8* %"$$fundef_46_env_voidp_607", 1 - %"$$fundef_46_env_one_609" = getelementptr inbounds %"$$fundef_46_env_146", %"$$fundef_46_env_146"* %"$$fundef_46_envp_605", i32 0, i32 0 - %"$one_610" = load %Uint32, %Uint32* %one, align 4 - store %Uint32 %"$one_610", %Uint32* %"$$fundef_46_env_one_609", align 4 - %"$$fundef_46_env_z_611" = getelementptr inbounds %"$$fundef_46_env_146", %"$$fundef_46_env_146"* %"$$fundef_46_envp_605", i32 0, i32 1 - store %Uint32 %1, %Uint32* %"$$fundef_46_env_z_611", align 4 - store { %Uint32 (i8*, %Int64)*, i8* } %"$$fundef_46_cloval_608", { %Uint32 (i8*, %Int64)*, i8* }* %"$retval_45", align 8, !dbg !33 - %"$$retval_45_612" = load { %Uint32 (i8*, %Int64)*, i8* }, { %Uint32 (i8*, %Int64)*, i8* }* %"$retval_45", align 8 - ret { %Uint32 (i8*, %Int64)*, i8* } %"$$retval_45_612" + %"$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 = %entry + call void @_out_of_gas() + br label %"$have_gas_609" + +"$have_gas_609": ; preds = %"$out_of_gas_608", %entry + %"$consume_610" = sub i64 %"$gasrem_606", 1 + store i64 %"$consume_610", i64* @_gasrem, align 8 + %"$$fundef_46_envp_611_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_46_envp_611_salloc" = call i8* @_salloc(i8* %"$$fundef_46_envp_611_load", i64 8) + %"$$fundef_46_envp_611" = bitcast i8* %"$$fundef_46_envp_611_salloc" to %"$$fundef_46_env_146"* + %"$$fundef_46_env_voidp_613" = bitcast %"$$fundef_46_env_146"* %"$$fundef_46_envp_611" to i8* + %"$$fundef_46_cloval_614" = insertvalue { %Uint32 (i8*, %Int64)*, i8* } { %Uint32 (i8*, %Int64)* bitcast (%Uint32 (%"$$fundef_46_env_146"*, %Int64)* @"$fundef_46" to %Uint32 (i8*, %Int64)*), i8* undef }, i8* %"$$fundef_46_env_voidp_613", 1 + %"$$fundef_46_env_one_615" = getelementptr inbounds %"$$fundef_46_env_146", %"$$fundef_46_env_146"* %"$$fundef_46_envp_611", i32 0, i32 0 + %"$one_616" = load %Uint32, %Uint32* %one, align 4 + store %Uint32 %"$one_616", %Uint32* %"$$fundef_46_env_one_615", align 4 + %"$$fundef_46_env_z_617" = getelementptr inbounds %"$$fundef_46_env_146", %"$$fundef_46_env_146"* %"$$fundef_46_envp_611", i32 0, i32 1 + store %Uint32 %1, %Uint32* %"$$fundef_46_env_z_617", align 4 + store { %Uint32 (i8*, %Int64)*, i8* } %"$$fundef_46_cloval_614", { %Uint32 (i8*, %Int64)*, i8* }* %"$retval_45", align 8, !dbg !73 + %"$$retval_45_618" = load { %Uint32 (i8*, %Int64)*, i8* }, { %Uint32 (i8*, %Int64)*, i8* }* %"$retval_45", align 8 + ret { %Uint32 (i8*, %Int64)*, i8* } %"$$retval_45_618" } -define internal { %Uint32 (i8*, %TName_List_Int64*)*, i8* } @"$fundef_42"(%"$$fundef_42_env_148"* %0) !dbg !34 { +define internal { %Uint32 (i8*, %TName_List_Int64*)*, i8* } @"$fundef_42"(%"$$fundef_42_env_148"* %0) !dbg !74 { entry: - %"$$fundef_42_env_list_foldl_520" = getelementptr inbounds %"$$fundef_42_env_148", %"$$fundef_42_env_148"* %0, i32 0, i32 0 - %"$list_foldl_envload_521" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_42_env_list_foldl_520", align 8 + %"$$fundef_42_env_list_foldl_526" = getelementptr inbounds %"$$fundef_42_env_148", %"$$fundef_42_env_148"* %0, i32 0, i32 0 + %"$list_foldl_envload_527" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_42_env_list_foldl_526", align 8 %list_foldl = alloca { i8*, i8* }*, align 8 - store { i8*, i8* }* %"$list_foldl_envload_521", { i8*, i8* }** %list_foldl, align 8 + store { i8*, i8* }* %"$list_foldl_envload_527", { i8*, i8* }** %list_foldl, align 8 %"$retval_43" = alloca { %Uint32 (i8*, %TName_List_Int64*)*, i8* }, align 8 - %"$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_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_524": ; preds = %entry +"$out_of_gas_530": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_525" + br label %"$have_gas_531" -"$have_gas_525": ; preds = %"$out_of_gas_524", %entry - %"$consume_526" = sub i64 %"$gasrem_522", 1 - store i64 %"$consume_526", i64* @_gasrem, align 8 +"$have_gas_531": ; preds = %"$out_of_gas_530", %entry + %"$consume_532" = sub i64 %"$gasrem_528", 1 + store i64 %"$consume_532", i64* @_gasrem, align 8 %foldl = alloca { { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %Int64)*, i8* } (i8*, %Uint32)*, i8* })*, i8* }, align 8 - %"$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 - %"$list_foldl_532" = load { i8*, i8* }*, { i8*, i8* }** %list_foldl, align 8 - %"$list_foldl_533" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$list_foldl_532", i32 2 - %"$list_foldl_534" = bitcast { i8*, i8* }* %"$list_foldl_533" to { { i8*, i8* }* (i8*)*, i8* }* - %"$list_foldl_535" = load { { i8*, i8* }* (i8*)*, i8* }, { { i8*, i8* }* (i8*)*, i8* }* %"$list_foldl_534", align 8 - %"$list_foldl_fptr_536" = extractvalue { { i8*, i8* }* (i8*)*, i8* } %"$list_foldl_535", 0 - %"$list_foldl_envptr_537" = extractvalue { { i8*, i8* }* (i8*)*, i8* } %"$list_foldl_535", 1 - %"$list_foldl_call_538" = call { i8*, i8* }* %"$list_foldl_fptr_536"(i8* %"$list_foldl_envptr_537"), !dbg !35 - %"$list_foldl_539" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$list_foldl_call_538", i32 1 - %"$list_foldl_540" = bitcast { i8*, i8* }* %"$list_foldl_539" to { { { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %Int64)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* }* - %"$list_foldl_541" = load { { { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %Int64)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* }, { { { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %Int64)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* }* %"$list_foldl_540", align 8 - %"$list_foldl_fptr_542" = extractvalue { { { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %Int64)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* } %"$list_foldl_541", 0 - %"$list_foldl_envptr_543" = extractvalue { { { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %Int64)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* } %"$list_foldl_541", 1 - %"$list_foldl_call_544" = call { { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %Int64)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } %"$list_foldl_fptr_542"(i8* %"$list_foldl_envptr_543"), !dbg !35 - store { { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %Int64)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } %"$list_foldl_call_544", { { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %Int64)*, i8* } (i8*, %Uint32)*, i8* })*, i8* }* %foldl, align 8, !dbg !36 - %"$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_530" - call void @_out_of_gas() - br label %"$have_gas_548" - -"$have_gas_548": ; preds = %"$out_of_gas_547", %"$have_gas_530" - %"$consume_549" = sub i64 %"$gasrem_545", 1 - store i64 %"$consume_549", i64* @_gasrem, 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_535": ; preds = %"$have_gas_531" + call void @_out_of_gas() + br label %"$have_gas_536" + +"$have_gas_536": ; preds = %"$out_of_gas_535", %"$have_gas_531" + %"$consume_537" = sub i64 %"$gasrem_533", 1 + store i64 %"$consume_537", i64* @_gasrem, align 8 + %"$list_foldl_538" = load { i8*, i8* }*, { i8*, i8* }** %list_foldl, align 8 + %"$list_foldl_539" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$list_foldl_538", i32 2 + %"$list_foldl_540" = bitcast { i8*, i8* }* %"$list_foldl_539" to { { i8*, i8* }* (i8*)*, i8* }* + %"$list_foldl_541" = load { { i8*, i8* }* (i8*)*, i8* }, { { i8*, i8* }* (i8*)*, i8* }* %"$list_foldl_540", align 8 + %"$list_foldl_fptr_542" = extractvalue { { i8*, i8* }* (i8*)*, i8* } %"$list_foldl_541", 0 + %"$list_foldl_envptr_543" = extractvalue { { i8*, i8* }* (i8*)*, i8* } %"$list_foldl_541", 1 + %"$list_foldl_call_544" = call { i8*, i8* }* %"$list_foldl_fptr_542"(i8* %"$list_foldl_envptr_543"), !dbg !75 + %"$list_foldl_545" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$list_foldl_call_544", i32 1 + %"$list_foldl_546" = bitcast { i8*, i8* }* %"$list_foldl_545" to { { { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %Int64)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* }* + %"$list_foldl_547" = load { { { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %Int64)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* }, { { { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %Int64)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* }* %"$list_foldl_546", align 8 + %"$list_foldl_fptr_548" = extractvalue { { { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %Int64)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* } %"$list_foldl_547", 0 + %"$list_foldl_envptr_549" = extractvalue { { { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %Int64)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* } %"$list_foldl_547", 1 + %"$list_foldl_call_550" = call { { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %Int64)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } %"$list_foldl_fptr_548"(i8* %"$list_foldl_envptr_549"), !dbg !75 + store { { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %Int64)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } %"$list_foldl_call_550", { { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %Int64)*, i8* } (i8*, %Uint32)*, i8* })*, i8* }* %foldl, align 8, !dbg !76 + %"$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_553": ; preds = %"$have_gas_536" + call void @_out_of_gas() + br label %"$have_gas_554" + +"$have_gas_554": ; preds = %"$out_of_gas_553", %"$have_gas_536" + %"$consume_555" = sub i64 %"$gasrem_551", 1 + store i64 %"$consume_555", i64* @_gasrem, align 8 %one = alloca %Uint32, align 8 - %"$gasrem_550" = load i64, i64* @_gasrem, align 8 - %"$gascmp_551" = icmp ugt i64 1, %"$gasrem_550" - br i1 %"$gascmp_551", label %"$out_of_gas_552", label %"$have_gas_553" + call void @llvm.dbg.declare(metadata %Uint32* %one, metadata !77, metadata !DIExpression()), !dbg !78 + %"$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_552": ; preds = %"$have_gas_548" +"$out_of_gas_558": ; preds = %"$have_gas_554" call void @_out_of_gas() - br label %"$have_gas_553" + br label %"$have_gas_559" -"$have_gas_553": ; preds = %"$out_of_gas_552", %"$have_gas_548" - %"$consume_554" = sub i64 %"$gasrem_550", 1 - store i64 %"$consume_554", i64* @_gasrem, align 8 - store %Uint32 { i32 1 }, %Uint32* %one, align 4, !dbg !37 - %"$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_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 %Uint32 { i32 1 }, %Uint32* %one, align 4, !dbg !79 + %"$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_557": ; preds = %"$have_gas_553" +"$out_of_gas_563": ; preds = %"$have_gas_559" call void @_out_of_gas() - br label %"$have_gas_558" + br label %"$have_gas_564" -"$have_gas_558": ; preds = %"$out_of_gas_557", %"$have_gas_553" - %"$consume_559" = sub i64 %"$gasrem_555", 1 - store i64 %"$consume_559", 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 %iter = alloca { { %Uint32 (i8*, %Int64)*, i8* } (i8*, %Uint32)*, 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" - -"$out_of_gas_562": ; preds = %"$have_gas_558" - call void @_out_of_gas() - br label %"$have_gas_563" - -"$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 - %"$$fundef_44_envp_565_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_44_envp_565_salloc" = call i8* @_salloc(i8* %"$$fundef_44_envp_565_load", i64 4) - %"$$fundef_44_envp_565" = bitcast i8* %"$$fundef_44_envp_565_salloc" to %"$$fundef_44_env_147"* - %"$$fundef_44_env_voidp_567" = bitcast %"$$fundef_44_env_147"* %"$$fundef_44_envp_565" to i8* - %"$$fundef_44_cloval_568" = insertvalue { { %Uint32 (i8*, %Int64)*, i8* } (i8*, %Uint32)*, i8* } { { %Uint32 (i8*, %Int64)*, i8* } (i8*, %Uint32)* bitcast ({ %Uint32 (i8*, %Int64)*, i8* } (%"$$fundef_44_env_147"*, %Uint32)* @"$fundef_44" to { %Uint32 (i8*, %Int64)*, i8* } (i8*, %Uint32)*), i8* undef }, i8* %"$$fundef_44_env_voidp_567", 1 - %"$$fundef_44_env_one_569" = getelementptr inbounds %"$$fundef_44_env_147", %"$$fundef_44_env_147"* %"$$fundef_44_envp_565", i32 0, i32 0 - %"$one_570" = load %Uint32, %Uint32* %one, align 4 - store %Uint32 %"$one_570", %Uint32* %"$$fundef_44_env_one_569", align 4 - store { { %Uint32 (i8*, %Int64)*, i8* } (i8*, %Uint32)*, i8* } %"$$fundef_44_cloval_568", { { %Uint32 (i8*, %Int64)*, i8* } (i8*, %Uint32)*, i8* }* %iter, align 8, !dbg !38 - %"$gasrem_571" = load i64, i64* @_gasrem, align 8 - %"$gascmp_572" = icmp ugt i64 1, %"$gasrem_571" - br i1 %"$gascmp_572", label %"$out_of_gas_573", label %"$have_gas_574" - -"$out_of_gas_573": ; preds = %"$have_gas_563" - call void @_out_of_gas() - br label %"$have_gas_574" - -"$have_gas_574": ; preds = %"$out_of_gas_573", %"$have_gas_563" - %"$consume_575" = sub i64 %"$gasrem_571", 1 - store i64 %"$consume_575", i64* @_gasrem, align 8 + %"$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_568": ; preds = %"$have_gas_564" + call void @_out_of_gas() + br label %"$have_gas_569" + +"$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 + %"$$fundef_44_envp_571_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_44_envp_571_salloc" = call i8* @_salloc(i8* %"$$fundef_44_envp_571_load", i64 4) + %"$$fundef_44_envp_571" = bitcast i8* %"$$fundef_44_envp_571_salloc" to %"$$fundef_44_env_147"* + %"$$fundef_44_env_voidp_573" = bitcast %"$$fundef_44_env_147"* %"$$fundef_44_envp_571" to i8* + %"$$fundef_44_cloval_574" = insertvalue { { %Uint32 (i8*, %Int64)*, i8* } (i8*, %Uint32)*, i8* } { { %Uint32 (i8*, %Int64)*, i8* } (i8*, %Uint32)* bitcast ({ %Uint32 (i8*, %Int64)*, i8* } (%"$$fundef_44_env_147"*, %Uint32)* @"$fundef_44" to { %Uint32 (i8*, %Int64)*, i8* } (i8*, %Uint32)*), i8* undef }, i8* %"$$fundef_44_env_voidp_573", 1 + %"$$fundef_44_env_one_575" = getelementptr inbounds %"$$fundef_44_env_147", %"$$fundef_44_env_147"* %"$$fundef_44_envp_571", i32 0, i32 0 + %"$one_576" = load %Uint32, %Uint32* %one, align 4 + store %Uint32 %"$one_576", %Uint32* %"$$fundef_44_env_one_575", align 4 + store { { %Uint32 (i8*, %Int64)*, i8* } (i8*, %Uint32)*, i8* } %"$$fundef_44_cloval_574", { { %Uint32 (i8*, %Int64)*, i8* } (i8*, %Uint32)*, i8* }* %iter, align 8, !dbg !80 + %"$gasrem_577" = load i64, i64* @_gasrem, align 8 + %"$gascmp_578" = icmp ugt i64 1, %"$gasrem_577" + br i1 %"$gascmp_578", label %"$out_of_gas_579", label %"$have_gas_580" + +"$out_of_gas_579": ; preds = %"$have_gas_569" + call void @_out_of_gas() + br label %"$have_gas_580" + +"$have_gas_580": ; preds = %"$out_of_gas_579", %"$have_gas_569" + %"$consume_581" = sub i64 %"$gasrem_577", 1 + store i64 %"$consume_581", i64* @_gasrem, align 8 %init = alloca %Uint32, align 8 - %"$gasrem_576" = load i64, i64* @_gasrem, align 8 - %"$gascmp_577" = icmp ugt i64 1, %"$gasrem_576" - br i1 %"$gascmp_577", label %"$out_of_gas_578", label %"$have_gas_579" + call void @llvm.dbg.declare(metadata %Uint32* %init, metadata !81, metadata !DIExpression()), !dbg !82 + %"$gasrem_582" = load i64, i64* @_gasrem, align 8 + %"$gascmp_583" = icmp ugt i64 1, %"$gasrem_582" + br i1 %"$gascmp_583", label %"$out_of_gas_584", label %"$have_gas_585" -"$out_of_gas_578": ; preds = %"$have_gas_574" +"$out_of_gas_584": ; preds = %"$have_gas_580" call void @_out_of_gas() - br label %"$have_gas_579" + br label %"$have_gas_585" -"$have_gas_579": ; preds = %"$out_of_gas_578", %"$have_gas_574" - %"$consume_580" = sub i64 %"$gasrem_576", 1 - store i64 %"$consume_580", i64* @_gasrem, align 8 - store %Uint32 zeroinitializer, %Uint32* %init, align 4, !dbg !39 - %"$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_585": ; preds = %"$out_of_gas_584", %"$have_gas_580" + %"$consume_586" = sub i64 %"$gasrem_582", 1 + store i64 %"$consume_586", i64* @_gasrem, align 8 + store %Uint32 zeroinitializer, %Uint32* %init, align 4, !dbg !83 + %"$gasrem_587" = load i64, i64* @_gasrem, align 8 + %"$gascmp_588" = icmp ugt i64 1, %"$gasrem_587" + br i1 %"$gascmp_588", label %"$out_of_gas_589", label %"$have_gas_590" -"$out_of_gas_583": ; preds = %"$have_gas_579" +"$out_of_gas_589": ; preds = %"$have_gas_585" call void @_out_of_gas() - br label %"$have_gas_584" + br label %"$have_gas_590" -"$have_gas_584": ; preds = %"$out_of_gas_583", %"$have_gas_579" - %"$consume_585" = sub i64 %"$gasrem_581", 1 - store i64 %"$consume_585", i64* @_gasrem, align 8 +"$have_gas_590": ; preds = %"$out_of_gas_589", %"$have_gas_585" + %"$consume_591" = sub i64 %"$gasrem_587", 1 + store i64 %"$consume_591", i64* @_gasrem, align 8 %"$foldl_10" = alloca { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* }, align 8 - %"$foldl_586" = load { { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %Int64)*, i8* } (i8*, %Uint32)*, i8* })*, i8* }, { { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %Int64)*, i8* } (i8*, %Uint32)*, i8* })*, i8* }* %foldl, align 8 - %"$foldl_fptr_587" = extractvalue { { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %Int64)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } %"$foldl_586", 0 - %"$foldl_envptr_588" = extractvalue { { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %Int64)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } %"$foldl_586", 1 - %"$iter_589" = load { { %Uint32 (i8*, %Int64)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %Int64)*, i8* } (i8*, %Uint32)*, i8* }* %iter, align 8 - %"$foldl_call_590" = call { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* } %"$foldl_fptr_587"(i8* %"$foldl_envptr_588", { { %Uint32 (i8*, %Int64)*, i8* } (i8*, %Uint32)*, i8* } %"$iter_589"), !dbg !40 - store { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* } %"$foldl_call_590", { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* }* %"$foldl_10", align 8, !dbg !40 + %"$foldl_592" = load { { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %Int64)*, i8* } (i8*, %Uint32)*, i8* })*, i8* }, { { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %Int64)*, i8* } (i8*, %Uint32)*, i8* })*, i8* }* %foldl, align 8 + %"$foldl_fptr_593" = extractvalue { { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %Int64)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } %"$foldl_592", 0 + %"$foldl_envptr_594" = extractvalue { { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %Int64)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } %"$foldl_592", 1 + %"$iter_595" = load { { %Uint32 (i8*, %Int64)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %Int64)*, i8* } (i8*, %Uint32)*, i8* }* %iter, align 8 + %"$foldl_call_596" = call { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* } %"$foldl_fptr_593"(i8* %"$foldl_envptr_594", { { %Uint32 (i8*, %Int64)*, i8* } (i8*, %Uint32)*, i8* } %"$iter_595"), !dbg !84 + store { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* } %"$foldl_call_596", { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* }* %"$foldl_10", align 8, !dbg !84 %"$foldl_11" = alloca { %Uint32 (i8*, %TName_List_Int64*)*, i8* }, align 8 - %"$$foldl_10_591" = load { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* }* %"$foldl_10", align 8 - %"$$foldl_10_fptr_592" = extractvalue { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* } %"$$foldl_10_591", 0 - %"$$foldl_10_envptr_593" = extractvalue { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* } %"$$foldl_10_591", 1 - %"$init_594" = load %Uint32, %Uint32* %init, align 4 - %"$$foldl_10_call_595" = call { %Uint32 (i8*, %TName_List_Int64*)*, i8* } %"$$foldl_10_fptr_592"(i8* %"$$foldl_10_envptr_593", %Uint32 %"$init_594"), !dbg !40 - store { %Uint32 (i8*, %TName_List_Int64*)*, i8* } %"$$foldl_10_call_595", { %Uint32 (i8*, %TName_List_Int64*)*, i8* }* %"$foldl_11", align 8, !dbg !40 - %"$$foldl_11_596" = load { %Uint32 (i8*, %TName_List_Int64*)*, i8* }, { %Uint32 (i8*, %TName_List_Int64*)*, i8* }* %"$foldl_11", align 8 - store { %Uint32 (i8*, %TName_List_Int64*)*, i8* } %"$$foldl_11_596", { %Uint32 (i8*, %TName_List_Int64*)*, i8* }* %"$retval_43", align 8, !dbg !40 - %"$$retval_43_597" = load { %Uint32 (i8*, %TName_List_Int64*)*, i8* }, { %Uint32 (i8*, %TName_List_Int64*)*, i8* }* %"$retval_43", align 8 - ret { %Uint32 (i8*, %TName_List_Int64*)*, i8* } %"$$retval_43_597" + %"$$foldl_10_597" = load { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* }* %"$foldl_10", align 8 + %"$$foldl_10_fptr_598" = extractvalue { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* } %"$$foldl_10_597", 0 + %"$$foldl_10_envptr_599" = extractvalue { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* } %"$$foldl_10_597", 1 + %"$init_600" = load %Uint32, %Uint32* %init, align 4 + %"$$foldl_10_call_601" = call { %Uint32 (i8*, %TName_List_Int64*)*, i8* } %"$$foldl_10_fptr_598"(i8* %"$$foldl_10_envptr_599", %Uint32 %"$init_600"), !dbg !84 + store { %Uint32 (i8*, %TName_List_Int64*)*, i8* } %"$$foldl_10_call_601", { %Uint32 (i8*, %TName_List_Int64*)*, i8* }* %"$foldl_11", align 8, !dbg !84 + %"$$foldl_11_602" = load { %Uint32 (i8*, %TName_List_Int64*)*, i8* }, { %Uint32 (i8*, %TName_List_Int64*)*, i8* }* %"$foldl_11", align 8 + store { %Uint32 (i8*, %TName_List_Int64*)*, i8* } %"$$foldl_11_602", { %Uint32 (i8*, %TName_List_Int64*)*, i8* }* %"$retval_43", align 8, !dbg !84 + %"$$retval_43_603" = load { %Uint32 (i8*, %TName_List_Int64*)*, i8* }, { %Uint32 (i8*, %TName_List_Int64*)*, i8* }* %"$retval_43", align 8 + ret { %Uint32 (i8*, %TName_List_Int64*)*, i8* } %"$$retval_43_603" } -define internal %Uint32 @"$fundef_40"(%"$$fundef_40_env_149"* %0, %Int32 %1) !dbg !41 { +define internal %Uint32 @"$fundef_40"(%"$$fundef_40_env_149"* %0, %Int32 %1) !dbg !85 { entry: - %"$$fundef_40_env_one_507" = getelementptr inbounds %"$$fundef_40_env_149", %"$$fundef_40_env_149"* %0, i32 0, i32 0 - %"$one_envload_508" = load %Uint32, %Uint32* %"$$fundef_40_env_one_507", align 4 + %"$h_525" = alloca %Int32, align 8 + store %Int32 %1, %Int32* %"$h_525", align 4 + call void @llvm.dbg.declare(metadata %Int32* %"$h_525", metadata !86, metadata !DIExpression()), !dbg !87 + %"$$fundef_40_env_one_512" = getelementptr inbounds %"$$fundef_40_env_149", %"$$fundef_40_env_149"* %0, i32 0, i32 0 + %"$one_envload_513" = load %Uint32, %Uint32* %"$$fundef_40_env_one_512", align 4 %one = alloca %Uint32, align 8 - store %Uint32 %"$one_envload_508", %Uint32* %one, align 4 - %"$$fundef_40_env_z_509" = getelementptr inbounds %"$$fundef_40_env_149", %"$$fundef_40_env_149"* %0, i32 0, i32 1 - %"$z_envload_510" = load %Uint32, %Uint32* %"$$fundef_40_env_z_509", align 4 + store %Uint32 %"$one_envload_513", %Uint32* %one, align 4 + %"$$fundef_40_env_z_514" = getelementptr inbounds %"$$fundef_40_env_149", %"$$fundef_40_env_149"* %0, i32 0, i32 1 + %"$z_envload_515" = load %Uint32, %Uint32* %"$$fundef_40_env_z_514", align 4 %z = alloca %Uint32, align 8 - store %Uint32 %"$z_envload_510", %Uint32* %z, align 4 + store %Uint32 %"$z_envload_515", %Uint32* %z, align 4 %"$retval_41" = alloca %Uint32, align 8 - %"$gasrem_511" = load i64, i64* @_gasrem, align 8 - %"$gascmp_512" = icmp ugt i64 4, %"$gasrem_511" - br i1 %"$gascmp_512", label %"$out_of_gas_513", label %"$have_gas_514" - -"$out_of_gas_513": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_514" - -"$have_gas_514": ; preds = %"$out_of_gas_513", %entry - %"$consume_515" = sub i64 %"$gasrem_511", 4 - store i64 %"$consume_515", i64* @_gasrem, align 8 - %"$one_516" = load %Uint32, %Uint32* %one, align 4 - %"$z_517" = load %Uint32, %Uint32* %z, align 4 - %"$add_call_518" = call %Uint32 @_add_Uint32(%Uint32 %"$one_516", %Uint32 %"$z_517"), !dbg !42 - store %Uint32 %"$add_call_518", %Uint32* %"$retval_41", align 4, !dbg !42 - %"$$retval_41_519" = load %Uint32, %Uint32* %"$retval_41", align 4 - ret %Uint32 %"$$retval_41_519" + call void @llvm.dbg.declare(metadata %Uint32* %"$retval_41", metadata !88, metadata !DIExpression()), !dbg !89 + %"$gasrem_516" = load i64, i64* @_gasrem, align 8 + %"$gascmp_517" = icmp ugt i64 4, %"$gasrem_516" + br i1 %"$gascmp_517", label %"$out_of_gas_518", label %"$have_gas_519" + +"$out_of_gas_518": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_519" + +"$have_gas_519": ; preds = %"$out_of_gas_518", %entry + %"$consume_520" = sub i64 %"$gasrem_516", 4 + store i64 %"$consume_520", i64* @_gasrem, align 8 + %"$one_521" = load %Uint32, %Uint32* %one, align 4 + %"$z_522" = load %Uint32, %Uint32* %z, align 4 + %"$add_call_523" = call %Uint32 @_add_Uint32(%Uint32 %"$one_521", %Uint32 %"$z_522"), !dbg !89 + store %Uint32 %"$add_call_523", %Uint32* %"$retval_41", align 4, !dbg !89 + %"$$retval_41_524" = load %Uint32, %Uint32* %"$retval_41", align 4 + ret %Uint32 %"$$retval_41_524" } -define internal { %Uint32 (i8*, %Int32)*, i8* } @"$fundef_38"(%"$$fundef_38_env_150"* %0, %Uint32 %1) !dbg !43 { +define internal { %Uint32 (i8*, %Int32)*, i8* } @"$fundef_38"(%"$$fundef_38_env_150"* %0, %Uint32 %1) !dbg !90 { entry: - %"$$fundef_38_env_one_492" = getelementptr inbounds %"$$fundef_38_env_150", %"$$fundef_38_env_150"* %0, i32 0, i32 0 - %"$one_envload_493" = load %Uint32, %Uint32* %"$$fundef_38_env_one_492", align 4 + %"$z_511" = alloca %Uint32, align 8 + store %Uint32 %1, %Uint32* %"$z_511", align 4 + call void @llvm.dbg.declare(metadata %Uint32* %"$z_511", metadata !91, metadata !DIExpression()), !dbg !92 + %"$$fundef_38_env_one_496" = getelementptr inbounds %"$$fundef_38_env_150", %"$$fundef_38_env_150"* %0, i32 0, i32 0 + %"$one_envload_497" = load %Uint32, %Uint32* %"$$fundef_38_env_one_496", align 4 %one = alloca %Uint32, align 8 - store %Uint32 %"$one_envload_493", %Uint32* %one, align 4 + store %Uint32 %"$one_envload_497", %Uint32* %one, align 4 %"$retval_39" = alloca { %Uint32 (i8*, %Int32)*, i8* }, 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 = %entry - call void @_out_of_gas() - br label %"$have_gas_497" - -"$have_gas_497": ; preds = %"$out_of_gas_496", %entry - %"$consume_498" = sub i64 %"$gasrem_494", 1 - store i64 %"$consume_498", i64* @_gasrem, align 8 - %"$$fundef_40_envp_499_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_40_envp_499_salloc" = call i8* @_salloc(i8* %"$$fundef_40_envp_499_load", i64 8) - %"$$fundef_40_envp_499" = bitcast i8* %"$$fundef_40_envp_499_salloc" to %"$$fundef_40_env_149"* - %"$$fundef_40_env_voidp_501" = bitcast %"$$fundef_40_env_149"* %"$$fundef_40_envp_499" to i8* - %"$$fundef_40_cloval_502" = insertvalue { %Uint32 (i8*, %Int32)*, i8* } { %Uint32 (i8*, %Int32)* bitcast (%Uint32 (%"$$fundef_40_env_149"*, %Int32)* @"$fundef_40" to %Uint32 (i8*, %Int32)*), i8* undef }, i8* %"$$fundef_40_env_voidp_501", 1 - %"$$fundef_40_env_one_503" = getelementptr inbounds %"$$fundef_40_env_149", %"$$fundef_40_env_149"* %"$$fundef_40_envp_499", i32 0, i32 0 - %"$one_504" = load %Uint32, %Uint32* %one, align 4 - store %Uint32 %"$one_504", %Uint32* %"$$fundef_40_env_one_503", align 4 - %"$$fundef_40_env_z_505" = getelementptr inbounds %"$$fundef_40_env_149", %"$$fundef_40_env_149"* %"$$fundef_40_envp_499", i32 0, i32 1 - store %Uint32 %1, %Uint32* %"$$fundef_40_env_z_505", align 4 - store { %Uint32 (i8*, %Int32)*, i8* } %"$$fundef_40_cloval_502", { %Uint32 (i8*, %Int32)*, i8* }* %"$retval_39", align 8, !dbg !44 - %"$$retval_39_506" = load { %Uint32 (i8*, %Int32)*, i8* }, { %Uint32 (i8*, %Int32)*, i8* }* %"$retval_39", align 8 - ret { %Uint32 (i8*, %Int32)*, i8* } %"$$retval_39_506" + %"$gasrem_498" = load i64, i64* @_gasrem, align 8 + %"$gascmp_499" = icmp ugt i64 1, %"$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", 1 + store i64 %"$consume_502", i64* @_gasrem, align 8 + %"$$fundef_40_envp_503_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_40_envp_503_salloc" = call i8* @_salloc(i8* %"$$fundef_40_envp_503_load", i64 8) + %"$$fundef_40_envp_503" = bitcast i8* %"$$fundef_40_envp_503_salloc" to %"$$fundef_40_env_149"* + %"$$fundef_40_env_voidp_505" = bitcast %"$$fundef_40_env_149"* %"$$fundef_40_envp_503" to i8* + %"$$fundef_40_cloval_506" = insertvalue { %Uint32 (i8*, %Int32)*, i8* } { %Uint32 (i8*, %Int32)* bitcast (%Uint32 (%"$$fundef_40_env_149"*, %Int32)* @"$fundef_40" to %Uint32 (i8*, %Int32)*), i8* undef }, i8* %"$$fundef_40_env_voidp_505", 1 + %"$$fundef_40_env_one_507" = getelementptr inbounds %"$$fundef_40_env_149", %"$$fundef_40_env_149"* %"$$fundef_40_envp_503", i32 0, i32 0 + %"$one_508" = load %Uint32, %Uint32* %one, align 4 + store %Uint32 %"$one_508", %Uint32* %"$$fundef_40_env_one_507", align 4 + %"$$fundef_40_env_z_509" = getelementptr inbounds %"$$fundef_40_env_149", %"$$fundef_40_env_149"* %"$$fundef_40_envp_503", i32 0, i32 1 + store %Uint32 %1, %Uint32* %"$$fundef_40_env_z_509", align 4 + store { %Uint32 (i8*, %Int32)*, i8* } %"$$fundef_40_cloval_506", { %Uint32 (i8*, %Int32)*, i8* }* %"$retval_39", align 8, !dbg !93 + %"$$retval_39_510" = load { %Uint32 (i8*, %Int32)*, i8* }, { %Uint32 (i8*, %Int32)*, i8* }* %"$retval_39", align 8 + ret { %Uint32 (i8*, %Int32)*, i8* } %"$$retval_39_510" } -define internal { %Uint32 (i8*, %TName_List_Int32*)*, i8* } @"$fundef_36"(%"$$fundef_36_env_151"* %0) !dbg !45 { +define internal { %Uint32 (i8*, %TName_List_Int32*)*, i8* } @"$fundef_36"(%"$$fundef_36_env_151"* %0) !dbg !94 { entry: - %"$$fundef_36_env_list_foldl_414" = getelementptr inbounds %"$$fundef_36_env_151", %"$$fundef_36_env_151"* %0, i32 0, i32 0 - %"$list_foldl_envload_415" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_36_env_list_foldl_414", align 8 + %"$$fundef_36_env_list_foldl_418" = getelementptr inbounds %"$$fundef_36_env_151", %"$$fundef_36_env_151"* %0, i32 0, i32 0 + %"$list_foldl_envload_419" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_36_env_list_foldl_418", align 8 %list_foldl = alloca { i8*, i8* }*, align 8 - store { i8*, i8* }* %"$list_foldl_envload_415", { i8*, i8* }** %list_foldl, align 8 + store { i8*, i8* }* %"$list_foldl_envload_419", { i8*, i8* }** %list_foldl, align 8 %"$retval_37" = alloca { %Uint32 (i8*, %TName_List_Int32*)*, i8* }, align 8 - %"$gasrem_416" = load i64, i64* @_gasrem, align 8 - %"$gascmp_417" = icmp ugt i64 1, %"$gasrem_416" - br i1 %"$gascmp_417", label %"$out_of_gas_418", label %"$have_gas_419" + %"$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_418": ; preds = %entry +"$out_of_gas_422": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_419" + br label %"$have_gas_423" -"$have_gas_419": ; preds = %"$out_of_gas_418", %entry - %"$consume_420" = sub i64 %"$gasrem_416", 1 - store i64 %"$consume_420", i64* @_gasrem, align 8 +"$have_gas_423": ; preds = %"$out_of_gas_422", %entry + %"$consume_424" = sub i64 %"$gasrem_420", 1 + store i64 %"$consume_424", i64* @_gasrem, align 8 %foldl = alloca { { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %Int32)*, i8* } (i8*, %Uint32)*, i8* })*, i8* }, align 8 - %"$gasrem_421" = load i64, i64* @_gasrem, align 8 - %"$gascmp_422" = icmp ugt i64 1, %"$gasrem_421" - br i1 %"$gascmp_422", label %"$out_of_gas_423", label %"$have_gas_424" - -"$out_of_gas_423": ; preds = %"$have_gas_419" - call void @_out_of_gas() - br label %"$have_gas_424" - -"$have_gas_424": ; preds = %"$out_of_gas_423", %"$have_gas_419" - %"$consume_425" = sub i64 %"$gasrem_421", 1 - store i64 %"$consume_425", i64* @_gasrem, align 8 - %"$list_foldl_426" = load { i8*, i8* }*, { i8*, i8* }** %list_foldl, align 8 - %"$list_foldl_427" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$list_foldl_426", i32 0 - %"$list_foldl_428" = bitcast { i8*, i8* }* %"$list_foldl_427" to { { i8*, i8* }* (i8*)*, i8* }* - %"$list_foldl_429" = load { { i8*, i8* }* (i8*)*, i8* }, { { i8*, i8* }* (i8*)*, i8* }* %"$list_foldl_428", align 8 - %"$list_foldl_fptr_430" = extractvalue { { i8*, i8* }* (i8*)*, i8* } %"$list_foldl_429", 0 - %"$list_foldl_envptr_431" = extractvalue { { i8*, i8* }* (i8*)*, i8* } %"$list_foldl_429", 1 - %"$list_foldl_call_432" = call { i8*, i8* }* %"$list_foldl_fptr_430"(i8* %"$list_foldl_envptr_431"), !dbg !46 - %"$list_foldl_433" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$list_foldl_call_432", i32 1 - %"$list_foldl_434" = bitcast { i8*, i8* }* %"$list_foldl_433" to { { { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %Int32)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* }* - %"$list_foldl_435" = load { { { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %Int32)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* }, { { { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %Int32)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* }* %"$list_foldl_434", align 8 - %"$list_foldl_fptr_436" = extractvalue { { { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %Int32)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* } %"$list_foldl_435", 0 - %"$list_foldl_envptr_437" = extractvalue { { { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %Int32)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* } %"$list_foldl_435", 1 - %"$list_foldl_call_438" = call { { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %Int32)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } %"$list_foldl_fptr_436"(i8* %"$list_foldl_envptr_437"), !dbg !46 - store { { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %Int32)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } %"$list_foldl_call_438", { { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %Int32)*, i8* } (i8*, %Uint32)*, i8* })*, i8* }* %foldl, align 8, !dbg !47 - %"$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_424" - call void @_out_of_gas() - br label %"$have_gas_442" - -"$have_gas_442": ; preds = %"$out_of_gas_441", %"$have_gas_424" - %"$consume_443" = sub i64 %"$gasrem_439", 1 - store i64 %"$consume_443", i64* @_gasrem, 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_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", 1 + store i64 %"$consume_429", i64* @_gasrem, align 8 + %"$list_foldl_430" = load { i8*, i8* }*, { i8*, i8* }** %list_foldl, align 8 + %"$list_foldl_431" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$list_foldl_430", i32 0 + %"$list_foldl_432" = bitcast { i8*, i8* }* %"$list_foldl_431" to { { i8*, i8* }* (i8*)*, i8* }* + %"$list_foldl_433" = load { { i8*, i8* }* (i8*)*, i8* }, { { i8*, i8* }* (i8*)*, i8* }* %"$list_foldl_432", align 8 + %"$list_foldl_fptr_434" = extractvalue { { i8*, i8* }* (i8*)*, i8* } %"$list_foldl_433", 0 + %"$list_foldl_envptr_435" = extractvalue { { i8*, i8* }* (i8*)*, i8* } %"$list_foldl_433", 1 + %"$list_foldl_call_436" = call { i8*, i8* }* %"$list_foldl_fptr_434"(i8* %"$list_foldl_envptr_435"), !dbg !95 + %"$list_foldl_437" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$list_foldl_call_436", i32 1 + %"$list_foldl_438" = bitcast { i8*, i8* }* %"$list_foldl_437" to { { { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %Int32)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* }* + %"$list_foldl_439" = load { { { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %Int32)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* }, { { { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %Int32)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* }* %"$list_foldl_438", align 8 + %"$list_foldl_fptr_440" = extractvalue { { { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %Int32)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* } %"$list_foldl_439", 0 + %"$list_foldl_envptr_441" = extractvalue { { { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %Int32)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* } %"$list_foldl_439", 1 + %"$list_foldl_call_442" = call { { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %Int32)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } %"$list_foldl_fptr_440"(i8* %"$list_foldl_envptr_441"), !dbg !95 + store { { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %Int32)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } %"$list_foldl_call_442", { { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %Int32)*, i8* } (i8*, %Uint32)*, i8* })*, i8* }* %foldl, align 8, !dbg !96 + %"$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_445": ; preds = %"$have_gas_428" + call void @_out_of_gas() + br label %"$have_gas_446" + +"$have_gas_446": ; preds = %"$out_of_gas_445", %"$have_gas_428" + %"$consume_447" = sub i64 %"$gasrem_443", 1 + store i64 %"$consume_447", i64* @_gasrem, align 8 %one = 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" + call void @llvm.dbg.declare(metadata %Uint32* %one, metadata !97, metadata !DIExpression()), !dbg !98 + %"$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_446": ; preds = %"$have_gas_442" +"$out_of_gas_450": ; preds = %"$have_gas_446" call void @_out_of_gas() - br label %"$have_gas_447" + br label %"$have_gas_451" -"$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 - store %Uint32 { i32 1 }, %Uint32* %one, align 4, !dbg !48 - %"$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" +"$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 + store %Uint32 { i32 1 }, %Uint32* %one, align 4, !dbg !99 + %"$gasrem_453" = load i64, i64* @_gasrem, align 8 + %"$gascmp_454" = icmp ugt i64 1, %"$gasrem_453" + br i1 %"$gascmp_454", label %"$out_of_gas_455", label %"$have_gas_456" -"$out_of_gas_451": ; preds = %"$have_gas_447" +"$out_of_gas_455": ; preds = %"$have_gas_451" call void @_out_of_gas() - br label %"$have_gas_452" + br label %"$have_gas_456" -"$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_456": ; preds = %"$out_of_gas_455", %"$have_gas_451" + %"$consume_457" = sub i64 %"$gasrem_453", 1 + store i64 %"$consume_457", i64* @_gasrem, align 8 %iter = alloca { { %Uint32 (i8*, %Int32)*, i8* } (i8*, %Uint32)*, i8* }, 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_452" - call void @_out_of_gas() - br label %"$have_gas_457" - -"$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 - %"$$fundef_38_envp_459_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_38_envp_459_salloc" = call i8* @_salloc(i8* %"$$fundef_38_envp_459_load", i64 4) - %"$$fundef_38_envp_459" = bitcast i8* %"$$fundef_38_envp_459_salloc" to %"$$fundef_38_env_150"* - %"$$fundef_38_env_voidp_461" = bitcast %"$$fundef_38_env_150"* %"$$fundef_38_envp_459" to i8* - %"$$fundef_38_cloval_462" = insertvalue { { %Uint32 (i8*, %Int32)*, i8* } (i8*, %Uint32)*, i8* } { { %Uint32 (i8*, %Int32)*, i8* } (i8*, %Uint32)* bitcast ({ %Uint32 (i8*, %Int32)*, i8* } (%"$$fundef_38_env_150"*, %Uint32)* @"$fundef_38" to { %Uint32 (i8*, %Int32)*, i8* } (i8*, %Uint32)*), i8* undef }, i8* %"$$fundef_38_env_voidp_461", 1 - %"$$fundef_38_env_one_463" = getelementptr inbounds %"$$fundef_38_env_150", %"$$fundef_38_env_150"* %"$$fundef_38_envp_459", i32 0, i32 0 - %"$one_464" = load %Uint32, %Uint32* %one, align 4 - store %Uint32 %"$one_464", %Uint32* %"$$fundef_38_env_one_463", align 4 - store { { %Uint32 (i8*, %Int32)*, i8* } (i8*, %Uint32)*, i8* } %"$$fundef_38_cloval_462", { { %Uint32 (i8*, %Int32)*, i8* } (i8*, %Uint32)*, i8* }* %iter, align 8, !dbg !49 - %"$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" - -"$out_of_gas_467": ; preds = %"$have_gas_457" - call void @_out_of_gas() - br label %"$have_gas_468" - -"$have_gas_468": ; preds = %"$out_of_gas_467", %"$have_gas_457" - %"$consume_469" = sub i64 %"$gasrem_465", 1 - store i64 %"$consume_469", i64* @_gasrem, 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_460": ; preds = %"$have_gas_456" + call void @_out_of_gas() + br label %"$have_gas_461" + +"$have_gas_461": ; preds = %"$out_of_gas_460", %"$have_gas_456" + %"$consume_462" = sub i64 %"$gasrem_458", 1 + store i64 %"$consume_462", i64* @_gasrem, align 8 + %"$$fundef_38_envp_463_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_38_envp_463_salloc" = call i8* @_salloc(i8* %"$$fundef_38_envp_463_load", i64 4) + %"$$fundef_38_envp_463" = bitcast i8* %"$$fundef_38_envp_463_salloc" to %"$$fundef_38_env_150"* + %"$$fundef_38_env_voidp_465" = bitcast %"$$fundef_38_env_150"* %"$$fundef_38_envp_463" to i8* + %"$$fundef_38_cloval_466" = insertvalue { { %Uint32 (i8*, %Int32)*, i8* } (i8*, %Uint32)*, i8* } { { %Uint32 (i8*, %Int32)*, i8* } (i8*, %Uint32)* bitcast ({ %Uint32 (i8*, %Int32)*, i8* } (%"$$fundef_38_env_150"*, %Uint32)* @"$fundef_38" to { %Uint32 (i8*, %Int32)*, i8* } (i8*, %Uint32)*), i8* undef }, i8* %"$$fundef_38_env_voidp_465", 1 + %"$$fundef_38_env_one_467" = getelementptr inbounds %"$$fundef_38_env_150", %"$$fundef_38_env_150"* %"$$fundef_38_envp_463", i32 0, i32 0 + %"$one_468" = load %Uint32, %Uint32* %one, align 4 + store %Uint32 %"$one_468", %Uint32* %"$$fundef_38_env_one_467", align 4 + store { { %Uint32 (i8*, %Int32)*, i8* } (i8*, %Uint32)*, i8* } %"$$fundef_38_cloval_466", { { %Uint32 (i8*, %Int32)*, i8* } (i8*, %Uint32)*, i8* }* %iter, align 8, !dbg !100 + %"$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_461" + call void @_out_of_gas() + br label %"$have_gas_472" + +"$have_gas_472": ; preds = %"$out_of_gas_471", %"$have_gas_461" + %"$consume_473" = sub i64 %"$gasrem_469", 1 + store i64 %"$consume_473", i64* @_gasrem, align 8 %init = alloca %Uint32, align 8 - %"$gasrem_470" = load i64, i64* @_gasrem, align 8 - %"$gascmp_471" = icmp ugt i64 1, %"$gasrem_470" - br i1 %"$gascmp_471", label %"$out_of_gas_472", label %"$have_gas_473" + call void @llvm.dbg.declare(metadata %Uint32* %init, metadata !101, metadata !DIExpression()), !dbg !102 + %"$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_472": ; preds = %"$have_gas_468" +"$out_of_gas_476": ; preds = %"$have_gas_472" call void @_out_of_gas() - br label %"$have_gas_473" + br label %"$have_gas_477" -"$have_gas_473": ; preds = %"$out_of_gas_472", %"$have_gas_468" - %"$consume_474" = sub i64 %"$gasrem_470", 1 - store i64 %"$consume_474", i64* @_gasrem, align 8 - store %Uint32 zeroinitializer, %Uint32* %init, align 4, !dbg !50 - %"$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" +"$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 + store %Uint32 zeroinitializer, %Uint32* %init, align 4, !dbg !103 + %"$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_477": ; preds = %"$have_gas_473" +"$out_of_gas_481": ; preds = %"$have_gas_477" call void @_out_of_gas() - br label %"$have_gas_478" + br label %"$have_gas_482" -"$have_gas_478": ; preds = %"$out_of_gas_477", %"$have_gas_473" - %"$consume_479" = sub i64 %"$gasrem_475", 1 - store i64 %"$consume_479", i64* @_gasrem, align 8 +"$have_gas_482": ; preds = %"$out_of_gas_481", %"$have_gas_477" + %"$consume_483" = sub i64 %"$gasrem_479", 1 + store i64 %"$consume_483", i64* @_gasrem, align 8 %"$foldl_10" = alloca { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*, %Uint32)*, i8* }, align 8 - %"$foldl_480" = load { { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %Int32)*, i8* } (i8*, %Uint32)*, i8* })*, i8* }, { { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %Int32)*, i8* } (i8*, %Uint32)*, i8* })*, i8* }* %foldl, align 8 - %"$foldl_fptr_481" = extractvalue { { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %Int32)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } %"$foldl_480", 0 - %"$foldl_envptr_482" = extractvalue { { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %Int32)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } %"$foldl_480", 1 - %"$iter_483" = load { { %Uint32 (i8*, %Int32)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %Int32)*, i8* } (i8*, %Uint32)*, i8* }* %iter, align 8 - %"$foldl_call_484" = call { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*, %Uint32)*, i8* } %"$foldl_fptr_481"(i8* %"$foldl_envptr_482", { { %Uint32 (i8*, %Int32)*, i8* } (i8*, %Uint32)*, i8* } %"$iter_483"), !dbg !51 - store { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*, %Uint32)*, i8* } %"$foldl_call_484", { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*, %Uint32)*, i8* }* %"$foldl_10", align 8, !dbg !51 + %"$foldl_484" = load { { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %Int32)*, i8* } (i8*, %Uint32)*, i8* })*, i8* }, { { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %Int32)*, i8* } (i8*, %Uint32)*, i8* })*, i8* }* %foldl, align 8 + %"$foldl_fptr_485" = extractvalue { { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %Int32)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } %"$foldl_484", 0 + %"$foldl_envptr_486" = extractvalue { { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %Int32)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } %"$foldl_484", 1 + %"$iter_487" = load { { %Uint32 (i8*, %Int32)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %Int32)*, i8* } (i8*, %Uint32)*, i8* }* %iter, align 8 + %"$foldl_call_488" = call { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*, %Uint32)*, i8* } %"$foldl_fptr_485"(i8* %"$foldl_envptr_486", { { %Uint32 (i8*, %Int32)*, i8* } (i8*, %Uint32)*, i8* } %"$iter_487"), !dbg !104 + store { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*, %Uint32)*, i8* } %"$foldl_call_488", { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*, %Uint32)*, i8* }* %"$foldl_10", align 8, !dbg !104 %"$foldl_11" = alloca { %Uint32 (i8*, %TName_List_Int32*)*, i8* }, align 8 - %"$$foldl_10_485" = load { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*, %Uint32)*, i8* }* %"$foldl_10", align 8 - %"$$foldl_10_fptr_486" = extractvalue { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*, %Uint32)*, i8* } %"$$foldl_10_485", 0 - %"$$foldl_10_envptr_487" = extractvalue { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*, %Uint32)*, i8* } %"$$foldl_10_485", 1 - %"$init_488" = load %Uint32, %Uint32* %init, align 4 - %"$$foldl_10_call_489" = call { %Uint32 (i8*, %TName_List_Int32*)*, i8* } %"$$foldl_10_fptr_486"(i8* %"$$foldl_10_envptr_487", %Uint32 %"$init_488"), !dbg !51 - store { %Uint32 (i8*, %TName_List_Int32*)*, i8* } %"$$foldl_10_call_489", { %Uint32 (i8*, %TName_List_Int32*)*, i8* }* %"$foldl_11", align 8, !dbg !51 - %"$$foldl_11_490" = load { %Uint32 (i8*, %TName_List_Int32*)*, i8* }, { %Uint32 (i8*, %TName_List_Int32*)*, i8* }* %"$foldl_11", align 8 - store { %Uint32 (i8*, %TName_List_Int32*)*, i8* } %"$$foldl_11_490", { %Uint32 (i8*, %TName_List_Int32*)*, i8* }* %"$retval_37", align 8, !dbg !51 - %"$$retval_37_491" = load { %Uint32 (i8*, %TName_List_Int32*)*, i8* }, { %Uint32 (i8*, %TName_List_Int32*)*, i8* }* %"$retval_37", align 8 - ret { %Uint32 (i8*, %TName_List_Int32*)*, i8* } %"$$retval_37_491" + %"$$foldl_10_489" = load { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*, %Uint32)*, i8* }* %"$foldl_10", align 8 + %"$$foldl_10_fptr_490" = extractvalue { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*, %Uint32)*, i8* } %"$$foldl_10_489", 0 + %"$$foldl_10_envptr_491" = extractvalue { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*, %Uint32)*, i8* } %"$$foldl_10_489", 1 + %"$init_492" = load %Uint32, %Uint32* %init, align 4 + %"$$foldl_10_call_493" = call { %Uint32 (i8*, %TName_List_Int32*)*, i8* } %"$$foldl_10_fptr_490"(i8* %"$$foldl_10_envptr_491", %Uint32 %"$init_492"), !dbg !104 + store { %Uint32 (i8*, %TName_List_Int32*)*, i8* } %"$$foldl_10_call_493", { %Uint32 (i8*, %TName_List_Int32*)*, i8* }* %"$foldl_11", align 8, !dbg !104 + %"$$foldl_11_494" = load { %Uint32 (i8*, %TName_List_Int32*)*, i8* }, { %Uint32 (i8*, %TName_List_Int32*)*, i8* }* %"$foldl_11", align 8 + store { %Uint32 (i8*, %TName_List_Int32*)*, i8* } %"$$foldl_11_494", { %Uint32 (i8*, %TName_List_Int32*)*, i8* }* %"$retval_37", align 8, !dbg !104 + %"$$retval_37_495" = load { %Uint32 (i8*, %TName_List_Int32*)*, i8* }, { %Uint32 (i8*, %TName_List_Int32*)*, i8* }* %"$retval_37", align 8 + ret { %Uint32 (i8*, %TName_List_Int32*)*, i8* } %"$$retval_37_495" } -define internal %Uint32 @"$fundef_34"(%"$$fundef_34_env_152"* %0, %TName_List_Int64* %1) !dbg !52 { +define internal %Uint32 @"$fundef_34"(%"$$fundef_34_env_152"* %0, %TName_List_Int64* %1) !dbg !105 { entry: - %"$$fundef_34_env_f_347" = getelementptr inbounds %"$$fundef_34_env_152", %"$$fundef_34_env_152"* %0, i32 0, i32 0 - %"$f_envload_348" = load { { %Uint32 (i8*, %Int64)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %Int64)*, i8* } (i8*, %Uint32)*, i8* }* %"$$fundef_34_env_f_347", align 8 + %"$l_417" = alloca %TName_List_Int64*, align 8 + store %TName_List_Int64* %1, %TName_List_Int64** %"$l_417", align 8 + call void @llvm.dbg.declare(metadata %TName_List_Int64** %"$l_417", metadata !107, metadata !DIExpression()), !dbg !108 + %"$$fundef_34_env_f_350" = getelementptr inbounds %"$$fundef_34_env_152", %"$$fundef_34_env_152"* %0, i32 0, i32 0 + %"$f_envload_351" = load { { %Uint32 (i8*, %Int64)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %Int64)*, i8* } (i8*, %Uint32)*, i8* }* %"$$fundef_34_env_f_350", align 8 %f = alloca { { %Uint32 (i8*, %Int64)*, i8* } (i8*, %Uint32)*, i8* }, align 8 - store { { %Uint32 (i8*, %Int64)*, i8* } (i8*, %Uint32)*, i8* } %"$f_envload_348", { { %Uint32 (i8*, %Int64)*, i8* } (i8*, %Uint32)*, i8* }* %f, align 8 - %"$$fundef_34_env_g_349" = getelementptr inbounds %"$$fundef_34_env_152", %"$$fundef_34_env_152"* %0, i32 0, i32 1 - %"$g_envload_350" = load { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* }* %"$$fundef_34_env_g_349", align 8 + store { { %Uint32 (i8*, %Int64)*, i8* } (i8*, %Uint32)*, i8* } %"$f_envload_351", { { %Uint32 (i8*, %Int64)*, i8* } (i8*, %Uint32)*, i8* }* %f, align 8 + %"$$fundef_34_env_g_352" = getelementptr inbounds %"$$fundef_34_env_152", %"$$fundef_34_env_152"* %0, i32 0, i32 1 + %"$g_envload_353" = load { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* }* %"$$fundef_34_env_g_352", align 8 %g = alloca { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* }, align 8 - store { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* } %"$g_envload_350", { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* }* %g, align 8 - %"$$fundef_34_env_z_351" = getelementptr inbounds %"$$fundef_34_env_152", %"$$fundef_34_env_152"* %0, i32 0, i32 2 - %"$z_envload_352" = load %Uint32, %Uint32* %"$$fundef_34_env_z_351", align 4 + store { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* } %"$g_envload_353", { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* }* %g, align 8 + %"$$fundef_34_env_z_354" = getelementptr inbounds %"$$fundef_34_env_152", %"$$fundef_34_env_152"* %0, i32 0, i32 2 + %"$z_envload_355" = load %Uint32, %Uint32* %"$$fundef_34_env_z_354", align 4 %z = alloca %Uint32, align 8 - store %Uint32 %"$z_envload_352", %Uint32* %z, align 4 + store %Uint32 %"$z_envload_355", %Uint32* %z, align 4 %"$retval_35" = alloca %Uint32, align 8 - %"$gasrem_353" = load i64, i64* @_gasrem, align 8 - %"$gascmp_354" = icmp ugt i64 2, %"$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", 2 - store i64 %"$consume_357", i64* @_gasrem, align 8 - %"$l_tag_359" = getelementptr inbounds %TName_List_Int64, %TName_List_Int64* %1, i32 0, i32 0 - %"$l_tag_360" = load i8, i8* %"$l_tag_359", align 1 - switch i8 %"$l_tag_360", label %"$empty_default_361" [ - i8 0, label %"$Cons_362" - i8 1, label %"$Nil_405" - ], !dbg !54 - -"$Cons_362": ; preds = %"$have_gas_356" - %"$l_363" = bitcast %TName_List_Int64* %1 to %CName_Cons_Int64* - %"$h_gep_364" = getelementptr inbounds %CName_Cons_Int64, %CName_Cons_Int64* %"$l_363", i32 0, i32 1 - %"$h_load_365" = load %Int64, %Int64* %"$h_gep_364", align 8 + call void @llvm.dbg.declare(metadata %Uint32* %"$retval_35", metadata !109, metadata !DIExpression()), !dbg !110 + %"$gasrem_356" = load i64, i64* @_gasrem, align 8 + %"$gascmp_357" = icmp ugt i64 2, %"$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", 2 + store i64 %"$consume_360", i64* @_gasrem, align 8 + %"$l_tag_362" = getelementptr inbounds %TName_List_Int64, %TName_List_Int64* %1, i32 0, i32 0 + %"$l_tag_363" = load i8, i8* %"$l_tag_362", align 1 + switch i8 %"$l_tag_363", label %"$empty_default_364" [ + i8 0, label %"$Cons_365" + i8 1, label %"$Nil_408" + ], !dbg !110 + +"$Cons_365": ; preds = %"$have_gas_359" + %"$l_366" = bitcast %TName_List_Int64* %1 to %CName_Cons_Int64* + %"$h_gep_367" = getelementptr inbounds %CName_Cons_Int64, %CName_Cons_Int64* %"$l_366", i32 0, i32 1 + %"$h_load_368" = load %Int64, %Int64* %"$h_gep_367", align 8 %h = alloca %Int64, align 8 - store %Int64 %"$h_load_365", %Int64* %h, align 8 - %"$t_gep_366" = getelementptr inbounds %CName_Cons_Int64, %CName_Cons_Int64* %"$l_363", i32 0, i32 2 - %"$t_load_367" = load %TName_List_Int64*, %TName_List_Int64** %"$t_gep_366", align 8 + store %Int64 %"$h_load_368", %Int64* %h, align 8 + %"$t_gep_369" = getelementptr inbounds %CName_Cons_Int64, %CName_Cons_Int64* %"$l_366", i32 0, i32 2 + %"$t_load_370" = load %TName_List_Int64*, %TName_List_Int64** %"$t_gep_369", align 8 %t = alloca %TName_List_Int64*, align 8 - store %TName_List_Int64* %"$t_load_367", %TName_List_Int64** %t, align 8 - %"$gasrem_368" = load i64, i64* @_gasrem, align 8 - %"$gascmp_369" = icmp ugt i64 1, %"$gasrem_368" - br i1 %"$gascmp_369", label %"$out_of_gas_370", label %"$have_gas_371" + store %TName_List_Int64* %"$t_load_370", %TName_List_Int64** %t, 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_370": ; preds = %"$Cons_362" +"$out_of_gas_373": ; preds = %"$Cons_365" call void @_out_of_gas() - br label %"$have_gas_371" + br label %"$have_gas_374" -"$have_gas_371": ; preds = %"$out_of_gas_370", %"$Cons_362" - %"$consume_372" = sub i64 %"$gasrem_368", 1 - store i64 %"$consume_372", i64* @_gasrem, align 8 +"$have_gas_374": ; preds = %"$out_of_gas_373", %"$Cons_365" + %"$consume_375" = sub i64 %"$gasrem_371", 1 + store i64 %"$consume_375", i64* @_gasrem, align 8 %res = alloca %Uint32, align 8 - %"$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" + call void @llvm.dbg.declare(metadata %Uint32* %res, metadata !111, metadata !DIExpression()), !dbg !114 + %"$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_375": ; preds = %"$have_gas_371" +"$out_of_gas_378": ; preds = %"$have_gas_374" call void @_out_of_gas() - br label %"$have_gas_376" + br label %"$have_gas_379" -"$have_gas_376": ; preds = %"$out_of_gas_375", %"$have_gas_371" - %"$consume_377" = sub i64 %"$gasrem_373", 1 - store i64 %"$consume_377", i64* @_gasrem, align 8 +"$have_gas_379": ; preds = %"$out_of_gas_378", %"$have_gas_374" + %"$consume_380" = sub i64 %"$gasrem_376", 1 + store i64 %"$consume_380", i64* @_gasrem, align 8 %"$f_6" = alloca { %Uint32 (i8*, %Int64)*, i8* }, align 8 - %"$f_378" = load { { %Uint32 (i8*, %Int64)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %Int64)*, i8* } (i8*, %Uint32)*, i8* }* %f, align 8 - %"$f_fptr_379" = extractvalue { { %Uint32 (i8*, %Int64)*, i8* } (i8*, %Uint32)*, i8* } %"$f_378", 0 - %"$f_envptr_380" = extractvalue { { %Uint32 (i8*, %Int64)*, i8* } (i8*, %Uint32)*, i8* } %"$f_378", 1 - %"$z_381" = load %Uint32, %Uint32* %z, align 4 - %"$f_call_382" = call { %Uint32 (i8*, %Int64)*, i8* } %"$f_fptr_379"(i8* %"$f_envptr_380", %Uint32 %"$z_381"), !dbg !55 - store { %Uint32 (i8*, %Int64)*, i8* } %"$f_call_382", { %Uint32 (i8*, %Int64)*, i8* }* %"$f_6", align 8, !dbg !55 + %"$f_381" = load { { %Uint32 (i8*, %Int64)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %Int64)*, i8* } (i8*, %Uint32)*, i8* }* %f, align 8 + %"$f_fptr_382" = extractvalue { { %Uint32 (i8*, %Int64)*, i8* } (i8*, %Uint32)*, i8* } %"$f_381", 0 + %"$f_envptr_383" = extractvalue { { %Uint32 (i8*, %Int64)*, i8* } (i8*, %Uint32)*, i8* } %"$f_381", 1 + %"$z_384" = load %Uint32, %Uint32* %z, align 4 + %"$f_call_385" = call { %Uint32 (i8*, %Int64)*, i8* } %"$f_fptr_382"(i8* %"$f_envptr_383", %Uint32 %"$z_384"), !dbg !115 + store { %Uint32 (i8*, %Int64)*, i8* } %"$f_call_385", { %Uint32 (i8*, %Int64)*, i8* }* %"$f_6", align 8, !dbg !115 %"$f_7" = alloca %Uint32, align 8 - %"$$f_6_383" = load { %Uint32 (i8*, %Int64)*, i8* }, { %Uint32 (i8*, %Int64)*, i8* }* %"$f_6", align 8 - %"$$f_6_fptr_384" = extractvalue { %Uint32 (i8*, %Int64)*, i8* } %"$$f_6_383", 0 - %"$$f_6_envptr_385" = extractvalue { %Uint32 (i8*, %Int64)*, i8* } %"$$f_6_383", 1 - %"$h_386" = load %Int64, %Int64* %h, align 8 - %"$$f_6_call_387" = call %Uint32 %"$$f_6_fptr_384"(i8* %"$$f_6_envptr_385", %Int64 %"$h_386"), !dbg !55 - store %Uint32 %"$$f_6_call_387", %Uint32* %"$f_7", align 4, !dbg !55 - %"$$f_7_388" = load %Uint32, %Uint32* %"$f_7", align 4 - store %Uint32 %"$$f_7_388", %Uint32* %res, align 4, !dbg !55 - %"$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_376" - call void @_out_of_gas() - br label %"$have_gas_392" - -"$have_gas_392": ; preds = %"$out_of_gas_391", %"$have_gas_376" - %"$consume_393" = sub i64 %"$gasrem_389", 1 - store i64 %"$consume_393", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %Uint32* %"$f_7", metadata !116, metadata !DIExpression()), !dbg !115 + %"$$f_6_386" = load { %Uint32 (i8*, %Int64)*, i8* }, { %Uint32 (i8*, %Int64)*, i8* }* %"$f_6", align 8 + %"$$f_6_fptr_387" = extractvalue { %Uint32 (i8*, %Int64)*, i8* } %"$$f_6_386", 0 + %"$$f_6_envptr_388" = extractvalue { %Uint32 (i8*, %Int64)*, i8* } %"$$f_6_386", 1 + %"$h_389" = load %Int64, %Int64* %h, align 8 + %"$$f_6_call_390" = call %Uint32 %"$$f_6_fptr_387"(i8* %"$$f_6_envptr_388", %Int64 %"$h_389"), !dbg !115 + store %Uint32 %"$$f_6_call_390", %Uint32* %"$f_7", align 4, !dbg !115 + %"$$f_7_391" = load %Uint32, %Uint32* %"$f_7", align 4 + store %Uint32 %"$$f_7_391", %Uint32* %res, align 4, !dbg !115 + %"$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 = %"$have_gas_379" + call void @_out_of_gas() + br label %"$have_gas_395" + +"$have_gas_395": ; preds = %"$out_of_gas_394", %"$have_gas_379" + %"$consume_396" = sub i64 %"$gasrem_392", 1 + store i64 %"$consume_396", i64* @_gasrem, align 8 %"$g_8" = alloca { %Uint32 (i8*, %TName_List_Int64*)*, i8* }, align 8 - %"$g_394" = load { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* }* %g, align 8 - %"$g_fptr_395" = extractvalue { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* } %"$g_394", 0 - %"$g_envptr_396" = extractvalue { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* } %"$g_394", 1 - %"$res_397" = load %Uint32, %Uint32* %res, align 4 - %"$g_call_398" = call { %Uint32 (i8*, %TName_List_Int64*)*, i8* } %"$g_fptr_395"(i8* %"$g_envptr_396", %Uint32 %"$res_397"), !dbg !58 - store { %Uint32 (i8*, %TName_List_Int64*)*, i8* } %"$g_call_398", { %Uint32 (i8*, %TName_List_Int64*)*, i8* }* %"$g_8", align 8, !dbg !58 + %"$g_397" = load { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* }* %g, align 8 + %"$g_fptr_398" = extractvalue { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* } %"$g_397", 0 + %"$g_envptr_399" = extractvalue { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* } %"$g_397", 1 + %"$res_400" = load %Uint32, %Uint32* %res, align 4 + %"$g_call_401" = call { %Uint32 (i8*, %TName_List_Int64*)*, i8* } %"$g_fptr_398"(i8* %"$g_envptr_399", %Uint32 %"$res_400"), !dbg !117 + store { %Uint32 (i8*, %TName_List_Int64*)*, i8* } %"$g_call_401", { %Uint32 (i8*, %TName_List_Int64*)*, i8* }* %"$g_8", align 8, !dbg !117 %"$g_9" = alloca %Uint32, align 8 - %"$$g_8_399" = load { %Uint32 (i8*, %TName_List_Int64*)*, i8* }, { %Uint32 (i8*, %TName_List_Int64*)*, i8* }* %"$g_8", align 8 - %"$$g_8_fptr_400" = extractvalue { %Uint32 (i8*, %TName_List_Int64*)*, i8* } %"$$g_8_399", 0 - %"$$g_8_envptr_401" = extractvalue { %Uint32 (i8*, %TName_List_Int64*)*, i8* } %"$$g_8_399", 1 - %"$t_402" = load %TName_List_Int64*, %TName_List_Int64** %t, align 8 - %"$$g_8_call_403" = call %Uint32 %"$$g_8_fptr_400"(i8* %"$$g_8_envptr_401", %TName_List_Int64* %"$t_402"), !dbg !58 - store %Uint32 %"$$g_8_call_403", %Uint32* %"$g_9", align 4, !dbg !58 - %"$$g_9_404" = load %Uint32, %Uint32* %"$g_9", align 4 - store %Uint32 %"$$g_9_404", %Uint32* %"$retval_35", align 4, !dbg !58 - br label %"$matchsucc_358" - -"$Nil_405": ; preds = %"$have_gas_356" - %"$l_406" = bitcast %TName_List_Int64* %1 to %CName_Nil_Int64* - %"$gasrem_407" = load i64, i64* @_gasrem, align 8 - %"$gascmp_408" = icmp ugt i64 1, %"$gasrem_407" - br i1 %"$gascmp_408", label %"$out_of_gas_409", label %"$have_gas_410" - -"$out_of_gas_409": ; preds = %"$Nil_405" - call void @_out_of_gas() - br label %"$have_gas_410" - -"$have_gas_410": ; preds = %"$out_of_gas_409", %"$Nil_405" - %"$consume_411" = sub i64 %"$gasrem_407", 1 - store i64 %"$consume_411", i64* @_gasrem, align 8 - %"$z_412" = load %Uint32, %Uint32* %z, align 4 - store %Uint32 %"$z_412", %Uint32* %"$retval_35", align 4, !dbg !59 - br label %"$matchsucc_358" - -"$empty_default_361": ; preds = %"$have_gas_356" - br label %"$matchsucc_358" - -"$matchsucc_358": ; preds = %"$have_gas_410", %"$have_gas_392", %"$empty_default_361" - %"$$retval_35_413" = load %Uint32, %Uint32* %"$retval_35", align 4 - ret %Uint32 %"$$retval_35_413" + call void @llvm.dbg.declare(metadata %Uint32* %"$g_9", metadata !118, metadata !DIExpression()), !dbg !117 + %"$$g_8_402" = load { %Uint32 (i8*, %TName_List_Int64*)*, i8* }, { %Uint32 (i8*, %TName_List_Int64*)*, i8* }* %"$g_8", align 8 + %"$$g_8_fptr_403" = extractvalue { %Uint32 (i8*, %TName_List_Int64*)*, i8* } %"$$g_8_402", 0 + %"$$g_8_envptr_404" = extractvalue { %Uint32 (i8*, %TName_List_Int64*)*, i8* } %"$$g_8_402", 1 + %"$t_405" = load %TName_List_Int64*, %TName_List_Int64** %t, align 8 + %"$$g_8_call_406" = call %Uint32 %"$$g_8_fptr_403"(i8* %"$$g_8_envptr_404", %TName_List_Int64* %"$t_405"), !dbg !117 + store %Uint32 %"$$g_8_call_406", %Uint32* %"$g_9", align 4, !dbg !117 + %"$$g_9_407" = load %Uint32, %Uint32* %"$g_9", align 4 + store %Uint32 %"$$g_9_407", %Uint32* %"$retval_35", align 4, !dbg !117 + br label %"$matchsucc_361" + +"$Nil_408": ; preds = %"$have_gas_359" + %"$l_409" = bitcast %TName_List_Int64* %1 to %CName_Nil_Int64* + %"$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 = %"$Nil_408" + call void @_out_of_gas() + br label %"$have_gas_413" + +"$have_gas_413": ; preds = %"$out_of_gas_412", %"$Nil_408" + %"$consume_414" = sub i64 %"$gasrem_410", 1 + store i64 %"$consume_414", i64* @_gasrem, align 8 + %"$z_415" = load %Uint32, %Uint32* %z, align 4 + store %Uint32 %"$z_415", %Uint32* %"$retval_35", align 4, !dbg !119 + br label %"$matchsucc_361" + +"$empty_default_364": ; preds = %"$have_gas_359" + br label %"$matchsucc_361" + +"$matchsucc_361": ; preds = %"$have_gas_413", %"$have_gas_395", %"$empty_default_364" + %"$$retval_35_416" = load %Uint32, %Uint32* %"$retval_35", align 4 + ret %Uint32 %"$$retval_35_416" } -define internal { %Uint32 (i8*, %TName_List_Int64*)*, i8* } @"$fundef_32"(%"$$fundef_32_env_153"* %0, %Uint32 %1) !dbg !61 { +define internal { %Uint32 (i8*, %TName_List_Int64*)*, i8* } @"$fundef_32"(%"$$fundef_32_env_153"* %0, %Uint32 %1) !dbg !121 { entry: - %"$$fundef_32_env_f_323" = getelementptr inbounds %"$$fundef_32_env_153", %"$$fundef_32_env_153"* %0, i32 0, i32 0 - %"$f_envload_324" = load { { %Uint32 (i8*, %Int64)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %Int64)*, i8* } (i8*, %Uint32)*, i8* }* %"$$fundef_32_env_f_323", align 8 + %"$z_349" = alloca %Uint32, align 8 + store %Uint32 %1, %Uint32* %"$z_349", align 4 + call void @llvm.dbg.declare(metadata %Uint32* %"$z_349", metadata !122, metadata !DIExpression()), !dbg !123 + %"$$fundef_32_env_f_325" = getelementptr inbounds %"$$fundef_32_env_153", %"$$fundef_32_env_153"* %0, i32 0, i32 0 + %"$f_envload_326" = load { { %Uint32 (i8*, %Int64)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %Int64)*, i8* } (i8*, %Uint32)*, i8* }* %"$$fundef_32_env_f_325", align 8 %f = alloca { { %Uint32 (i8*, %Int64)*, i8* } (i8*, %Uint32)*, i8* }, align 8 - store { { %Uint32 (i8*, %Int64)*, i8* } (i8*, %Uint32)*, i8* } %"$f_envload_324", { { %Uint32 (i8*, %Int64)*, i8* } (i8*, %Uint32)*, i8* }* %f, align 8 - %"$$fundef_32_env_g_325" = getelementptr inbounds %"$$fundef_32_env_153", %"$$fundef_32_env_153"* %0, i32 0, i32 1 - %"$g_envload_326" = load { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* }* %"$$fundef_32_env_g_325", align 8 + store { { %Uint32 (i8*, %Int64)*, i8* } (i8*, %Uint32)*, i8* } %"$f_envload_326", { { %Uint32 (i8*, %Int64)*, i8* } (i8*, %Uint32)*, i8* }* %f, align 8 + %"$$fundef_32_env_g_327" = getelementptr inbounds %"$$fundef_32_env_153", %"$$fundef_32_env_153"* %0, i32 0, i32 1 + %"$g_envload_328" = load { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* }* %"$$fundef_32_env_g_327", align 8 %g = alloca { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* }, align 8 - store { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* } %"$g_envload_326", { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* }* %g, align 8 + store { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* } %"$g_envload_328", { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* }* %g, align 8 %"$retval_33" = alloca { %Uint32 (i8*, %TName_List_Int64*)*, i8* }, align 8 - %"$gasrem_327" = load i64, i64* @_gasrem, align 8 - %"$gascmp_328" = icmp ugt i64 1, %"$gasrem_327" - br i1 %"$gascmp_328", label %"$out_of_gas_329", label %"$have_gas_330" - -"$out_of_gas_329": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_330" - -"$have_gas_330": ; preds = %"$out_of_gas_329", %entry - %"$consume_331" = sub i64 %"$gasrem_327", 1 - store i64 %"$consume_331", i64* @_gasrem, align 8 - %"$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 = %"$have_gas_330" - call void @_out_of_gas() - br label %"$have_gas_335" - -"$have_gas_335": ; preds = %"$out_of_gas_334", %"$have_gas_330" - %"$consume_336" = sub i64 %"$gasrem_332", 1 - store i64 %"$consume_336", i64* @_gasrem, align 8 - %"$$fundef_34_envp_337_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_34_envp_337_salloc" = call i8* @_salloc(i8* %"$$fundef_34_envp_337_load", i64 40) - %"$$fundef_34_envp_337" = bitcast i8* %"$$fundef_34_envp_337_salloc" to %"$$fundef_34_env_152"* - %"$$fundef_34_env_voidp_339" = bitcast %"$$fundef_34_env_152"* %"$$fundef_34_envp_337" to i8* - %"$$fundef_34_cloval_340" = insertvalue { %Uint32 (i8*, %TName_List_Int64*)*, i8* } { %Uint32 (i8*, %TName_List_Int64*)* bitcast (%Uint32 (%"$$fundef_34_env_152"*, %TName_List_Int64*)* @"$fundef_34" to %Uint32 (i8*, %TName_List_Int64*)*), i8* undef }, i8* %"$$fundef_34_env_voidp_339", 1 - %"$$fundef_34_env_f_341" = getelementptr inbounds %"$$fundef_34_env_152", %"$$fundef_34_env_152"* %"$$fundef_34_envp_337", i32 0, i32 0 - %"$f_342" = load { { %Uint32 (i8*, %Int64)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %Int64)*, i8* } (i8*, %Uint32)*, i8* }* %f, align 8 - store { { %Uint32 (i8*, %Int64)*, i8* } (i8*, %Uint32)*, i8* } %"$f_342", { { %Uint32 (i8*, %Int64)*, i8* } (i8*, %Uint32)*, i8* }* %"$$fundef_34_env_f_341", align 8 - %"$$fundef_34_env_g_343" = getelementptr inbounds %"$$fundef_34_env_152", %"$$fundef_34_env_152"* %"$$fundef_34_envp_337", i32 0, i32 1 - %"$g_344" = load { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* }* %g, align 8 - store { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* } %"$g_344", { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* }* %"$$fundef_34_env_g_343", align 8 - %"$$fundef_34_env_z_345" = getelementptr inbounds %"$$fundef_34_env_152", %"$$fundef_34_env_152"* %"$$fundef_34_envp_337", i32 0, i32 2 - store %Uint32 %1, %Uint32* %"$$fundef_34_env_z_345", align 4 - store { %Uint32 (i8*, %TName_List_Int64*)*, i8* } %"$$fundef_34_cloval_340", { %Uint32 (i8*, %TName_List_Int64*)*, i8* }* %"$retval_33", align 8, !dbg !62 - %"$$retval_33_346" = load { %Uint32 (i8*, %TName_List_Int64*)*, i8* }, { %Uint32 (i8*, %TName_List_Int64*)*, i8* }* %"$retval_33", align 8 - ret { %Uint32 (i8*, %TName_List_Int64*)*, i8* } %"$$retval_33_346" + %"$gasrem_329" = load i64, i64* @_gasrem, align 8 + %"$gascmp_330" = icmp ugt i64 1, %"$gasrem_329" + br i1 %"$gascmp_330", label %"$out_of_gas_331", label %"$have_gas_332" + +"$out_of_gas_331": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_332" + +"$have_gas_332": ; preds = %"$out_of_gas_331", %entry + %"$consume_333" = sub i64 %"$gasrem_329", 1 + store i64 %"$consume_333", i64* @_gasrem, 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 = %"$have_gas_332" + call void @_out_of_gas() + br label %"$have_gas_337" + +"$have_gas_337": ; preds = %"$out_of_gas_336", %"$have_gas_332" + %"$consume_338" = sub i64 %"$gasrem_334", 1 + store i64 %"$consume_338", i64* @_gasrem, align 8 + %"$$fundef_34_envp_339_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_34_envp_339_salloc" = call i8* @_salloc(i8* %"$$fundef_34_envp_339_load", i64 40) + %"$$fundef_34_envp_339" = bitcast i8* %"$$fundef_34_envp_339_salloc" to %"$$fundef_34_env_152"* + %"$$fundef_34_env_voidp_341" = bitcast %"$$fundef_34_env_152"* %"$$fundef_34_envp_339" to i8* + %"$$fundef_34_cloval_342" = insertvalue { %Uint32 (i8*, %TName_List_Int64*)*, i8* } { %Uint32 (i8*, %TName_List_Int64*)* bitcast (%Uint32 (%"$$fundef_34_env_152"*, %TName_List_Int64*)* @"$fundef_34" to %Uint32 (i8*, %TName_List_Int64*)*), i8* undef }, i8* %"$$fundef_34_env_voidp_341", 1 + %"$$fundef_34_env_f_343" = getelementptr inbounds %"$$fundef_34_env_152", %"$$fundef_34_env_152"* %"$$fundef_34_envp_339", i32 0, i32 0 + %"$f_344" = load { { %Uint32 (i8*, %Int64)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %Int64)*, i8* } (i8*, %Uint32)*, i8* }* %f, align 8 + store { { %Uint32 (i8*, %Int64)*, i8* } (i8*, %Uint32)*, i8* } %"$f_344", { { %Uint32 (i8*, %Int64)*, i8* } (i8*, %Uint32)*, i8* }* %"$$fundef_34_env_f_343", align 8 + %"$$fundef_34_env_g_345" = getelementptr inbounds %"$$fundef_34_env_152", %"$$fundef_34_env_152"* %"$$fundef_34_envp_339", i32 0, i32 1 + %"$g_346" = load { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* }* %g, align 8 + store { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* } %"$g_346", { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* }* %"$$fundef_34_env_g_345", align 8 + %"$$fundef_34_env_z_347" = getelementptr inbounds %"$$fundef_34_env_152", %"$$fundef_34_env_152"* %"$$fundef_34_envp_339", i32 0, i32 2 + store %Uint32 %1, %Uint32* %"$$fundef_34_env_z_347", align 4 + store { %Uint32 (i8*, %TName_List_Int64*)*, i8* } %"$$fundef_34_cloval_342", { %Uint32 (i8*, %TName_List_Int64*)*, i8* }* %"$retval_33", align 8, !dbg !124 + %"$$retval_33_348" = load { %Uint32 (i8*, %TName_List_Int64*)*, i8* }, { %Uint32 (i8*, %TName_List_Int64*)*, i8* }* %"$retval_33", align 8 + ret { %Uint32 (i8*, %TName_List_Int64*)*, i8* } %"$$retval_33_348" } -define internal { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* } @"$fundef_30"(%"$$fundef_30_env_154"* %0, { { %Uint32 (i8*, %Int64)*, i8* } (i8*, %Uint32)*, i8* } %1) !dbg !63 { +define internal { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* } @"$fundef_30"(%"$$fundef_30_env_154"* %0, { { %Uint32 (i8*, %Int64)*, i8* } (i8*, %Uint32)*, i8* } %1) !dbg !125 { entry: %"$retval_31" = alloca { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* }, 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_311": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_312" - -"$have_gas_312": ; preds = %"$out_of_gas_311", %entry - %"$consume_313" = sub i64 %"$gasrem_309", 1 - store i64 %"$consume_313", i64* @_gasrem, align 8 - %"$$fundef_32_envp_314_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_32_envp_314_salloc" = call i8* @_salloc(i8* %"$$fundef_32_envp_314_load", i64 32) - %"$$fundef_32_envp_314" = bitcast i8* %"$$fundef_32_envp_314_salloc" to %"$$fundef_32_env_153"* - %"$$fundef_32_env_voidp_316" = bitcast %"$$fundef_32_env_153"* %"$$fundef_32_envp_314" to i8* - %"$$fundef_32_cloval_317" = insertvalue { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* } { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)* bitcast ({ %Uint32 (i8*, %TName_List_Int64*)*, i8* } (%"$$fundef_32_env_153"*, %Uint32)* @"$fundef_32" to { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*), i8* undef }, i8* %"$$fundef_32_env_voidp_316", 1 + %"$gasrem_311" = load i64, i64* @_gasrem, align 8 + %"$gascmp_312" = icmp ugt i64 1, %"$gasrem_311" + br i1 %"$gascmp_312", label %"$out_of_gas_313", label %"$have_gas_314" + +"$out_of_gas_313": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_314" + +"$have_gas_314": ; preds = %"$out_of_gas_313", %entry + %"$consume_315" = sub i64 %"$gasrem_311", 1 + store i64 %"$consume_315", i64* @_gasrem, align 8 + %"$$fundef_32_envp_316_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_32_envp_316_salloc" = call i8* @_salloc(i8* %"$$fundef_32_envp_316_load", i64 32) + %"$$fundef_32_envp_316" = bitcast i8* %"$$fundef_32_envp_316_salloc" to %"$$fundef_32_env_153"* + %"$$fundef_32_env_voidp_318" = bitcast %"$$fundef_32_env_153"* %"$$fundef_32_envp_316" to i8* + %"$$fundef_32_cloval_319" = insertvalue { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* } { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)* bitcast ({ %Uint32 (i8*, %TName_List_Int64*)*, i8* } (%"$$fundef_32_env_153"*, %Uint32)* @"$fundef_32" to { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*), i8* undef }, i8* %"$$fundef_32_env_voidp_318", 1 %g = alloca { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* }, align 8 - store { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* } %"$$fundef_32_cloval_317", { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* }* %g, align 8, !dbg !64 - %"$$fundef_32_env_f_318" = getelementptr inbounds %"$$fundef_32_env_153", %"$$fundef_32_env_153"* %"$$fundef_32_envp_314", i32 0, i32 0 - store { { %Uint32 (i8*, %Int64)*, i8* } (i8*, %Uint32)*, i8* } %1, { { %Uint32 (i8*, %Int64)*, i8* } (i8*, %Uint32)*, i8* }* %"$$fundef_32_env_f_318", align 8 - %"$$fundef_32_env_g_319" = getelementptr inbounds %"$$fundef_32_env_153", %"$$fundef_32_env_153"* %"$$fundef_32_envp_314", i32 0, i32 1 - %"$g_320" = load { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* }* %g, align 8 - store { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* } %"$g_320", { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* }* %"$$fundef_32_env_g_319", align 8 - %"$g_321" = load { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* }* %g, align 8 - store { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* } %"$g_321", { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* }* %"$retval_31", align 8, !dbg !64 - %"$$retval_31_322" = load { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* }* %"$retval_31", align 8 - ret { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* } %"$$retval_31_322" + store { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* } %"$$fundef_32_cloval_319", { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* }* %g, align 8, !dbg !126 + %"$$fundef_32_env_f_320" = getelementptr inbounds %"$$fundef_32_env_153", %"$$fundef_32_env_153"* %"$$fundef_32_envp_316", i32 0, i32 0 + store { { %Uint32 (i8*, %Int64)*, i8* } (i8*, %Uint32)*, i8* } %1, { { %Uint32 (i8*, %Int64)*, i8* } (i8*, %Uint32)*, i8* }* %"$$fundef_32_env_f_320", align 8 + %"$$fundef_32_env_g_321" = getelementptr inbounds %"$$fundef_32_env_153", %"$$fundef_32_env_153"* %"$$fundef_32_envp_316", i32 0, i32 1 + %"$g_322" = load { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* }* %g, align 8 + store { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* } %"$g_322", { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* }* %"$$fundef_32_env_g_321", align 8 + %"$g_323" = load { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* }* %g, align 8 + store { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* } %"$g_323", { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* }* %"$retval_31", align 8, !dbg !126 + %"$$retval_31_324" = load { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* }* %"$retval_31", align 8 + ret { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* } %"$$retval_31_324" } -define internal { { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %Int64)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } @"$fundef_28"(%"$$fundef_28_env_155"* %0) !dbg !65 { +define internal { { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %Int64)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } @"$fundef_28"(%"$$fundef_28_env_155"* %0) !dbg !127 { entry: %"$retval_29" = alloca { { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %Int64)*, i8* } (i8*, %Uint32)*, i8* })*, 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" + %"$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_302": ; preds = %entry +"$out_of_gas_304": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_303" + br label %"$have_gas_305" -"$have_gas_303": ; preds = %"$out_of_gas_302", %entry - %"$consume_304" = sub i64 %"$gasrem_300", 1 - store i64 %"$consume_304", i64* @_gasrem, align 8 - store { { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %Int64)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } { { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %Int64)*, i8* } (i8*, %Uint32)*, i8* })* bitcast ({ { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* } (%"$$fundef_30_env_154"*, { { %Uint32 (i8*, %Int64)*, i8* } (i8*, %Uint32)*, i8* })* @"$fundef_30" to { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %Int64)*, i8* } (i8*, %Uint32)*, i8* })*), i8* null }, { { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %Int64)*, i8* } (i8*, %Uint32)*, i8* })*, i8* }* %"$retval_29", align 8, !dbg !66 - %"$$retval_29_308" = load { { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %Int64)*, i8* } (i8*, %Uint32)*, i8* })*, i8* }, { { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %Int64)*, i8* } (i8*, %Uint32)*, i8* })*, i8* }* %"$retval_29", align 8 - ret { { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %Int64)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } %"$$retval_29_308" +"$have_gas_305": ; preds = %"$out_of_gas_304", %entry + %"$consume_306" = sub i64 %"$gasrem_302", 1 + store i64 %"$consume_306", i64* @_gasrem, align 8 + store { { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %Int64)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } { { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %Int64)*, i8* } (i8*, %Uint32)*, i8* })* bitcast ({ { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* } (%"$$fundef_30_env_154"*, { { %Uint32 (i8*, %Int64)*, i8* } (i8*, %Uint32)*, i8* })* @"$fundef_30" to { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %Int64)*, i8* } (i8*, %Uint32)*, i8* })*), i8* null }, { { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %Int64)*, i8* } (i8*, %Uint32)*, i8* })*, i8* }* %"$retval_29", align 8, !dbg !128 + %"$$retval_29_310" = load { { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %Int64)*, i8* } (i8*, %Uint32)*, i8* })*, i8* }, { { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %Int64)*, i8* } (i8*, %Uint32)*, i8* })*, i8* }* %"$retval_29", align 8 + ret { { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %Int64)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } %"$$retval_29_310" } -define internal { i8*, i8* }* @"$fundef_26"(%"$$fundef_26_env_156"* %0) !dbg !67 { +define internal { i8*, i8* }* @"$fundef_26"(%"$$fundef_26_env_156"* %0) !dbg !129 { entry: %"$retval_27" = alloca { 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 - %"$dyndisp_table_296_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$dyndisp_table_296_salloc_salloc" = call i8* @_salloc(i8* %"$dyndisp_table_296_salloc_load", i64 48) - %"$dyndisp_table_296_salloc" = bitcast i8* %"$dyndisp_table_296_salloc_salloc" to [3 x { i8*, i8* }]* - %"$dyndisp_table_296" = bitcast [3 x { i8*, i8* }]* %"$dyndisp_table_296_salloc" to { i8*, i8* }* - %"$dyndisp_gep_297" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_296", i32 1 - %"$dyndisp_pcast_298" = bitcast { i8*, i8* }* %"$dyndisp_gep_297" to { { { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %Int64)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* }* - store { { { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %Int64)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* } { { { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %Int64)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } (i8*)* bitcast ({ { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %Int64)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } (%"$$fundef_28_env_155"*)* @"$fundef_28" to { { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %Int64)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } (i8*)*), i8* null }, { { { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %Int64)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* }* %"$dyndisp_pcast_298", align 8 - store { i8*, i8* }* %"$dyndisp_table_296", { i8*, i8* }** %"$retval_27", align 8, !dbg !68 - %"$$retval_27_299" = load { i8*, i8* }*, { i8*, i8* }** %"$retval_27", align 8 - ret { i8*, i8* }* %"$$retval_27_299" + %"$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_292": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_293" + +"$have_gas_293": ; preds = %"$out_of_gas_292", %entry + %"$consume_294" = sub i64 %"$gasrem_290", 1 + store i64 %"$consume_294", i64* @_gasrem, align 8 + %"$dyndisp_table_298_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$dyndisp_table_298_salloc_salloc" = call i8* @_salloc(i8* %"$dyndisp_table_298_salloc_load", i64 48) + %"$dyndisp_table_298_salloc" = bitcast i8* %"$dyndisp_table_298_salloc_salloc" to [3 x { i8*, i8* }]* + %"$dyndisp_table_298" = bitcast [3 x { i8*, i8* }]* %"$dyndisp_table_298_salloc" to { i8*, i8* }* + %"$dyndisp_gep_299" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_298", i32 1 + %"$dyndisp_pcast_300" = bitcast { i8*, i8* }* %"$dyndisp_gep_299" to { { { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %Int64)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* }* + store { { { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %Int64)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* } { { { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %Int64)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } (i8*)* bitcast ({ { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %Int64)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } (%"$$fundef_28_env_155"*)* @"$fundef_28" to { { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %Int64)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } (i8*)*), i8* null }, { { { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %Int64)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* }* %"$dyndisp_pcast_300", align 8 + store { i8*, i8* }* %"$dyndisp_table_298", { i8*, i8* }** %"$retval_27", align 8, !dbg !130 + %"$$retval_27_301" = load { i8*, i8* }*, { i8*, i8* }** %"$retval_27", align 8 + ret { i8*, i8* }* %"$$retval_27_301" } -define internal %Uint32 @"$fundef_24"(%"$$fundef_24_env_157"* %0, %TName_List_Int32* %1) !dbg !69 { +define internal %Uint32 @"$fundef_24"(%"$$fundef_24_env_157"* %0, %TName_List_Int32* %1) !dbg !131 { entry: - %"$$fundef_24_env_f_221" = getelementptr inbounds %"$$fundef_24_env_157", %"$$fundef_24_env_157"* %0, i32 0, i32 0 - %"$f_envload_222" = load { { %Uint32 (i8*, %Int32)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %Int32)*, i8* } (i8*, %Uint32)*, i8* }* %"$$fundef_24_env_f_221", align 8 + %"$l_289" = alloca %TName_List_Int32*, align 8 + store %TName_List_Int32* %1, %TName_List_Int32** %"$l_289", align 8 + call void @llvm.dbg.declare(metadata %TName_List_Int32** %"$l_289", metadata !132, metadata !DIExpression()), !dbg !133 + %"$$fundef_24_env_f_222" = getelementptr inbounds %"$$fundef_24_env_157", %"$$fundef_24_env_157"* %0, i32 0, i32 0 + %"$f_envload_223" = load { { %Uint32 (i8*, %Int32)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %Int32)*, i8* } (i8*, %Uint32)*, i8* }* %"$$fundef_24_env_f_222", align 8 %f = alloca { { %Uint32 (i8*, %Int32)*, i8* } (i8*, %Uint32)*, i8* }, align 8 - store { { %Uint32 (i8*, %Int32)*, i8* } (i8*, %Uint32)*, i8* } %"$f_envload_222", { { %Uint32 (i8*, %Int32)*, i8* } (i8*, %Uint32)*, i8* }* %f, align 8 - %"$$fundef_24_env_g_223" = getelementptr inbounds %"$$fundef_24_env_157", %"$$fundef_24_env_157"* %0, i32 0, i32 1 - %"$g_envload_224" = load { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*, %Uint32)*, i8* }* %"$$fundef_24_env_g_223", align 8 + store { { %Uint32 (i8*, %Int32)*, i8* } (i8*, %Uint32)*, i8* } %"$f_envload_223", { { %Uint32 (i8*, %Int32)*, i8* } (i8*, %Uint32)*, i8* }* %f, align 8 + %"$$fundef_24_env_g_224" = getelementptr inbounds %"$$fundef_24_env_157", %"$$fundef_24_env_157"* %0, i32 0, i32 1 + %"$g_envload_225" = load { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*, %Uint32)*, i8* }* %"$$fundef_24_env_g_224", align 8 %g = alloca { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*, %Uint32)*, i8* }, align 8 - store { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*, %Uint32)*, i8* } %"$g_envload_224", { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*, %Uint32)*, i8* }* %g, align 8 - %"$$fundef_24_env_z_225" = getelementptr inbounds %"$$fundef_24_env_157", %"$$fundef_24_env_157"* %0, i32 0, i32 2 - %"$z_envload_226" = load %Uint32, %Uint32* %"$$fundef_24_env_z_225", align 4 + store { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*, %Uint32)*, i8* } %"$g_envload_225", { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*, %Uint32)*, i8* }* %g, align 8 + %"$$fundef_24_env_z_226" = getelementptr inbounds %"$$fundef_24_env_157", %"$$fundef_24_env_157"* %0, i32 0, i32 2 + %"$z_envload_227" = load %Uint32, %Uint32* %"$$fundef_24_env_z_226", align 4 %z = alloca %Uint32, align 8 - store %Uint32 %"$z_envload_226", %Uint32* %z, align 4 + store %Uint32 %"$z_envload_227", %Uint32* %z, align 4 %"$retval_25" = alloca %Uint32, 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 - %"$l_tag_233" = getelementptr inbounds %TName_List_Int32, %TName_List_Int32* %1, i32 0, i32 0 - %"$l_tag_234" = load i8, i8* %"$l_tag_233", align 1 - switch i8 %"$l_tag_234", label %"$empty_default_235" [ - i8 0, label %"$Cons_236" - i8 1, label %"$Nil_279" - ], !dbg !70 - -"$Cons_236": ; preds = %"$have_gas_230" - %"$l_237" = bitcast %TName_List_Int32* %1 to %CName_Cons_Int32* - %"$h_gep_238" = getelementptr inbounds %CName_Cons_Int32, %CName_Cons_Int32* %"$l_237", i32 0, i32 1 - %"$h_load_239" = load %Int32, %Int32* %"$h_gep_238", align 4 + call void @llvm.dbg.declare(metadata %Uint32* %"$retval_25", metadata !134, metadata !DIExpression()), !dbg !135 + %"$gasrem_228" = load i64, i64* @_gasrem, align 8 + %"$gascmp_229" = icmp ugt i64 2, %"$gasrem_228" + br i1 %"$gascmp_229", label %"$out_of_gas_230", label %"$have_gas_231" + +"$out_of_gas_230": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_231" + +"$have_gas_231": ; preds = %"$out_of_gas_230", %entry + %"$consume_232" = sub i64 %"$gasrem_228", 2 + store i64 %"$consume_232", i64* @_gasrem, align 8 + %"$l_tag_234" = getelementptr inbounds %TName_List_Int32, %TName_List_Int32* %1, i32 0, i32 0 + %"$l_tag_235" = load i8, i8* %"$l_tag_234", align 1 + switch i8 %"$l_tag_235", label %"$empty_default_236" [ + i8 0, label %"$Cons_237" + i8 1, label %"$Nil_280" + ], !dbg !135 + +"$Cons_237": ; preds = %"$have_gas_231" + %"$l_238" = bitcast %TName_List_Int32* %1 to %CName_Cons_Int32* + %"$h_gep_239" = getelementptr inbounds %CName_Cons_Int32, %CName_Cons_Int32* %"$l_238", i32 0, i32 1 + %"$h_load_240" = load %Int32, %Int32* %"$h_gep_239", align 4 %h = alloca %Int32, align 8 - store %Int32 %"$h_load_239", %Int32* %h, align 4 - %"$t_gep_240" = getelementptr inbounds %CName_Cons_Int32, %CName_Cons_Int32* %"$l_237", i32 0, i32 2 - %"$t_load_241" = load %TName_List_Int32*, %TName_List_Int32** %"$t_gep_240", align 8 + store %Int32 %"$h_load_240", %Int32* %h, align 4 + %"$t_gep_241" = getelementptr inbounds %CName_Cons_Int32, %CName_Cons_Int32* %"$l_238", i32 0, i32 2 + %"$t_load_242" = load %TName_List_Int32*, %TName_List_Int32** %"$t_gep_241", align 8 %t = alloca %TName_List_Int32*, align 8 - store %TName_List_Int32* %"$t_load_241", %TName_List_Int32** %t, 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" + store %TName_List_Int32* %"$t_load_242", %TName_List_Int32** %t, align 8 + %"$gasrem_243" = load i64, i64* @_gasrem, align 8 + %"$gascmp_244" = icmp ugt i64 1, %"$gasrem_243" + br i1 %"$gascmp_244", label %"$out_of_gas_245", label %"$have_gas_246" -"$out_of_gas_244": ; preds = %"$Cons_236" +"$out_of_gas_245": ; preds = %"$Cons_237" call void @_out_of_gas() - br label %"$have_gas_245" + br label %"$have_gas_246" -"$have_gas_245": ; preds = %"$out_of_gas_244", %"$Cons_236" - %"$consume_246" = sub i64 %"$gasrem_242", 1 - store i64 %"$consume_246", i64* @_gasrem, align 8 +"$have_gas_246": ; preds = %"$out_of_gas_245", %"$Cons_237" + %"$consume_247" = sub i64 %"$gasrem_243", 1 + store i64 %"$consume_247", i64* @_gasrem, align 8 %res = alloca %Uint32, 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" + call void @llvm.dbg.declare(metadata %Uint32* %res, metadata !136, metadata !DIExpression()), !dbg !139 + %"$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_249": ; preds = %"$have_gas_245" +"$out_of_gas_250": ; preds = %"$have_gas_246" call void @_out_of_gas() - br label %"$have_gas_250" + br label %"$have_gas_251" -"$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 +"$have_gas_251": ; preds = %"$out_of_gas_250", %"$have_gas_246" + %"$consume_252" = sub i64 %"$gasrem_248", 1 + store i64 %"$consume_252", i64* @_gasrem, align 8 %"$f_6" = alloca { %Uint32 (i8*, %Int32)*, i8* }, align 8 - %"$f_252" = load { { %Uint32 (i8*, %Int32)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %Int32)*, i8* } (i8*, %Uint32)*, i8* }* %f, align 8 - %"$f_fptr_253" = extractvalue { { %Uint32 (i8*, %Int32)*, i8* } (i8*, %Uint32)*, i8* } %"$f_252", 0 - %"$f_envptr_254" = extractvalue { { %Uint32 (i8*, %Int32)*, i8* } (i8*, %Uint32)*, i8* } %"$f_252", 1 - %"$z_255" = load %Uint32, %Uint32* %z, align 4 - %"$f_call_256" = call { %Uint32 (i8*, %Int32)*, i8* } %"$f_fptr_253"(i8* %"$f_envptr_254", %Uint32 %"$z_255"), !dbg !71 - store { %Uint32 (i8*, %Int32)*, i8* } %"$f_call_256", { %Uint32 (i8*, %Int32)*, i8* }* %"$f_6", align 8, !dbg !71 + %"$f_253" = load { { %Uint32 (i8*, %Int32)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %Int32)*, i8* } (i8*, %Uint32)*, i8* }* %f, align 8 + %"$f_fptr_254" = extractvalue { { %Uint32 (i8*, %Int32)*, i8* } (i8*, %Uint32)*, i8* } %"$f_253", 0 + %"$f_envptr_255" = extractvalue { { %Uint32 (i8*, %Int32)*, i8* } (i8*, %Uint32)*, i8* } %"$f_253", 1 + %"$z_256" = load %Uint32, %Uint32* %z, align 4 + %"$f_call_257" = call { %Uint32 (i8*, %Int32)*, i8* } %"$f_fptr_254"(i8* %"$f_envptr_255", %Uint32 %"$z_256"), !dbg !140 + store { %Uint32 (i8*, %Int32)*, i8* } %"$f_call_257", { %Uint32 (i8*, %Int32)*, i8* }* %"$f_6", align 8, !dbg !140 %"$f_7" = alloca %Uint32, align 8 - %"$$f_6_257" = load { %Uint32 (i8*, %Int32)*, i8* }, { %Uint32 (i8*, %Int32)*, i8* }* %"$f_6", align 8 - %"$$f_6_fptr_258" = extractvalue { %Uint32 (i8*, %Int32)*, i8* } %"$$f_6_257", 0 - %"$$f_6_envptr_259" = extractvalue { %Uint32 (i8*, %Int32)*, i8* } %"$$f_6_257", 1 - %"$h_260" = load %Int32, %Int32* %h, align 4 - %"$$f_6_call_261" = call %Uint32 %"$$f_6_fptr_258"(i8* %"$$f_6_envptr_259", %Int32 %"$h_260"), !dbg !71 - store %Uint32 %"$$f_6_call_261", %Uint32* %"$f_7", align 4, !dbg !71 - %"$$f_7_262" = load %Uint32, %Uint32* %"$f_7", align 4 - store %Uint32 %"$$f_7_262", %Uint32* %res, align 4, !dbg !71 - %"$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_250" - call void @_out_of_gas() - br label %"$have_gas_266" - -"$have_gas_266": ; preds = %"$out_of_gas_265", %"$have_gas_250" - %"$consume_267" = sub i64 %"$gasrem_263", 1 - store i64 %"$consume_267", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %Uint32* %"$f_7", metadata !141, metadata !DIExpression()), !dbg !140 + %"$$f_6_258" = load { %Uint32 (i8*, %Int32)*, i8* }, { %Uint32 (i8*, %Int32)*, i8* }* %"$f_6", align 8 + %"$$f_6_fptr_259" = extractvalue { %Uint32 (i8*, %Int32)*, i8* } %"$$f_6_258", 0 + %"$$f_6_envptr_260" = extractvalue { %Uint32 (i8*, %Int32)*, i8* } %"$$f_6_258", 1 + %"$h_261" = load %Int32, %Int32* %h, align 4 + %"$$f_6_call_262" = call %Uint32 %"$$f_6_fptr_259"(i8* %"$$f_6_envptr_260", %Int32 %"$h_261"), !dbg !140 + store %Uint32 %"$$f_6_call_262", %Uint32* %"$f_7", align 4, !dbg !140 + %"$$f_7_263" = load %Uint32, %Uint32* %"$f_7", align 4 + store %Uint32 %"$$f_7_263", %Uint32* %res, align 4, !dbg !140 + %"$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_251" + call void @_out_of_gas() + br label %"$have_gas_267" + +"$have_gas_267": ; preds = %"$out_of_gas_266", %"$have_gas_251" + %"$consume_268" = sub i64 %"$gasrem_264", 1 + store i64 %"$consume_268", i64* @_gasrem, align 8 %"$g_8" = alloca { %Uint32 (i8*, %TName_List_Int32*)*, i8* }, align 8 - %"$g_268" = load { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*, %Uint32)*, i8* }* %g, align 8 - %"$g_fptr_269" = extractvalue { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*, %Uint32)*, i8* } %"$g_268", 0 - %"$g_envptr_270" = extractvalue { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*, %Uint32)*, i8* } %"$g_268", 1 - %"$res_271" = load %Uint32, %Uint32* %res, align 4 - %"$g_call_272" = call { %Uint32 (i8*, %TName_List_Int32*)*, i8* } %"$g_fptr_269"(i8* %"$g_envptr_270", %Uint32 %"$res_271"), !dbg !74 - store { %Uint32 (i8*, %TName_List_Int32*)*, i8* } %"$g_call_272", { %Uint32 (i8*, %TName_List_Int32*)*, i8* }* %"$g_8", align 8, !dbg !74 + %"$g_269" = load { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*, %Uint32)*, i8* }* %g, align 8 + %"$g_fptr_270" = extractvalue { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*, %Uint32)*, i8* } %"$g_269", 0 + %"$g_envptr_271" = extractvalue { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*, %Uint32)*, i8* } %"$g_269", 1 + %"$res_272" = load %Uint32, %Uint32* %res, align 4 + %"$g_call_273" = call { %Uint32 (i8*, %TName_List_Int32*)*, i8* } %"$g_fptr_270"(i8* %"$g_envptr_271", %Uint32 %"$res_272"), !dbg !142 + store { %Uint32 (i8*, %TName_List_Int32*)*, i8* } %"$g_call_273", { %Uint32 (i8*, %TName_List_Int32*)*, i8* }* %"$g_8", align 8, !dbg !142 %"$g_9" = alloca %Uint32, align 8 - %"$$g_8_273" = load { %Uint32 (i8*, %TName_List_Int32*)*, i8* }, { %Uint32 (i8*, %TName_List_Int32*)*, i8* }* %"$g_8", align 8 - %"$$g_8_fptr_274" = extractvalue { %Uint32 (i8*, %TName_List_Int32*)*, i8* } %"$$g_8_273", 0 - %"$$g_8_envptr_275" = extractvalue { %Uint32 (i8*, %TName_List_Int32*)*, i8* } %"$$g_8_273", 1 - %"$t_276" = load %TName_List_Int32*, %TName_List_Int32** %t, align 8 - %"$$g_8_call_277" = call %Uint32 %"$$g_8_fptr_274"(i8* %"$$g_8_envptr_275", %TName_List_Int32* %"$t_276"), !dbg !74 - store %Uint32 %"$$g_8_call_277", %Uint32* %"$g_9", align 4, !dbg !74 - %"$$g_9_278" = load %Uint32, %Uint32* %"$g_9", align 4 - store %Uint32 %"$$g_9_278", %Uint32* %"$retval_25", align 4, !dbg !74 - br label %"$matchsucc_232" - -"$Nil_279": ; preds = %"$have_gas_230" - %"$l_280" = bitcast %TName_List_Int32* %1 to %CName_Nil_Int32* - %"$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 = %"$Nil_279" - call void @_out_of_gas() - br label %"$have_gas_284" - -"$have_gas_284": ; preds = %"$out_of_gas_283", %"$Nil_279" - %"$consume_285" = sub i64 %"$gasrem_281", 1 - store i64 %"$consume_285", i64* @_gasrem, align 8 - %"$z_286" = load %Uint32, %Uint32* %z, align 4 - store %Uint32 %"$z_286", %Uint32* %"$retval_25", align 4, !dbg !75 - br label %"$matchsucc_232" - -"$empty_default_235": ; preds = %"$have_gas_230" - br label %"$matchsucc_232" - -"$matchsucc_232": ; preds = %"$have_gas_284", %"$have_gas_266", %"$empty_default_235" - %"$$retval_25_287" = load %Uint32, %Uint32* %"$retval_25", align 4 - ret %Uint32 %"$$retval_25_287" + call void @llvm.dbg.declare(metadata %Uint32* %"$g_9", metadata !143, metadata !DIExpression()), !dbg !142 + %"$$g_8_274" = load { %Uint32 (i8*, %TName_List_Int32*)*, i8* }, { %Uint32 (i8*, %TName_List_Int32*)*, i8* }* %"$g_8", align 8 + %"$$g_8_fptr_275" = extractvalue { %Uint32 (i8*, %TName_List_Int32*)*, i8* } %"$$g_8_274", 0 + %"$$g_8_envptr_276" = extractvalue { %Uint32 (i8*, %TName_List_Int32*)*, i8* } %"$$g_8_274", 1 + %"$t_277" = load %TName_List_Int32*, %TName_List_Int32** %t, align 8 + %"$$g_8_call_278" = call %Uint32 %"$$g_8_fptr_275"(i8* %"$$g_8_envptr_276", %TName_List_Int32* %"$t_277"), !dbg !142 + store %Uint32 %"$$g_8_call_278", %Uint32* %"$g_9", align 4, !dbg !142 + %"$$g_9_279" = load %Uint32, %Uint32* %"$g_9", align 4 + store %Uint32 %"$$g_9_279", %Uint32* %"$retval_25", align 4, !dbg !142 + br label %"$matchsucc_233" + +"$Nil_280": ; preds = %"$have_gas_231" + %"$l_281" = bitcast %TName_List_Int32* %1 to %CName_Nil_Int32* + %"$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 = %"$Nil_280" + call void @_out_of_gas() + br label %"$have_gas_285" + +"$have_gas_285": ; preds = %"$out_of_gas_284", %"$Nil_280" + %"$consume_286" = sub i64 %"$gasrem_282", 1 + store i64 %"$consume_286", i64* @_gasrem, align 8 + %"$z_287" = load %Uint32, %Uint32* %z, align 4 + store %Uint32 %"$z_287", %Uint32* %"$retval_25", align 4, !dbg !144 + br label %"$matchsucc_233" + +"$empty_default_236": ; preds = %"$have_gas_231" + br label %"$matchsucc_233" + +"$matchsucc_233": ; preds = %"$have_gas_285", %"$have_gas_267", %"$empty_default_236" + %"$$retval_25_288" = load %Uint32, %Uint32* %"$retval_25", align 4 + ret %Uint32 %"$$retval_25_288" } -define internal { %Uint32 (i8*, %TName_List_Int32*)*, i8* } @"$fundef_22"(%"$$fundef_22_env_158"* %0, %Uint32 %1) !dbg !77 { +define internal { %Uint32 (i8*, %TName_List_Int32*)*, i8* } @"$fundef_22"(%"$$fundef_22_env_158"* %0, %Uint32 %1) !dbg !146 { entry: + %"$z_221" = alloca %Uint32, align 8 + store %Uint32 %1, %Uint32* %"$z_221", align 4 + call void @llvm.dbg.declare(metadata %Uint32* %"$z_221", metadata !147, metadata !DIExpression()), !dbg !148 %"$$fundef_22_env_f_197" = getelementptr inbounds %"$$fundef_22_env_158", %"$$fundef_22_env_158"* %0, i32 0, i32 0 %"$f_envload_198" = load { { %Uint32 (i8*, %Int32)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %Int32)*, i8* } (i8*, %Uint32)*, i8* }* %"$$fundef_22_env_f_197", align 8 %f = alloca { { %Uint32 (i8*, %Int32)*, i8* } (i8*, %Uint32)*, i8* }, align 8 @@ -1437,12 +1497,12 @@ entry: store { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*, %Uint32)*, i8* } %"$g_218", { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*, %Uint32)*, i8* }* %"$$fundef_24_env_g_217", align 8 %"$$fundef_24_env_z_219" = getelementptr inbounds %"$$fundef_24_env_157", %"$$fundef_24_env_157"* %"$$fundef_24_envp_211", i32 0, i32 2 store %Uint32 %1, %Uint32* %"$$fundef_24_env_z_219", align 4 - store { %Uint32 (i8*, %TName_List_Int32*)*, i8* } %"$$fundef_24_cloval_214", { %Uint32 (i8*, %TName_List_Int32*)*, i8* }* %"$retval_23", align 8, !dbg !78 + store { %Uint32 (i8*, %TName_List_Int32*)*, i8* } %"$$fundef_24_cloval_214", { %Uint32 (i8*, %TName_List_Int32*)*, i8* }* %"$retval_23", align 8, !dbg !149 %"$$retval_23_220" = load { %Uint32 (i8*, %TName_List_Int32*)*, i8* }, { %Uint32 (i8*, %TName_List_Int32*)*, i8* }* %"$retval_23", align 8 ret { %Uint32 (i8*, %TName_List_Int32*)*, i8* } %"$$retval_23_220" } -define internal { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*, %Uint32)*, i8* } @"$fundef_20"(%"$$fundef_20_env_159"* %0, { { %Uint32 (i8*, %Int32)*, i8* } (i8*, %Uint32)*, i8* } %1) !dbg !79 { +define internal { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*, %Uint32)*, i8* } @"$fundef_20"(%"$$fundef_20_env_159"* %0, { { %Uint32 (i8*, %Int32)*, i8* } (i8*, %Uint32)*, i8* } %1) !dbg !150 { entry: %"$retval_21" = alloca { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*, %Uint32)*, i8* }, align 8 %"$gasrem_183" = load i64, i64* @_gasrem, align 8 @@ -1462,19 +1522,19 @@ entry: %"$$fundef_22_env_voidp_190" = bitcast %"$$fundef_22_env_158"* %"$$fundef_22_envp_188" to i8* %"$$fundef_22_cloval_191" = insertvalue { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*, %Uint32)*, i8* } { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*, %Uint32)* bitcast ({ %Uint32 (i8*, %TName_List_Int32*)*, i8* } (%"$$fundef_22_env_158"*, %Uint32)* @"$fundef_22" to { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*, %Uint32)*), i8* undef }, i8* %"$$fundef_22_env_voidp_190", 1 %g = alloca { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*, %Uint32)*, i8* }, align 8 - store { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*, %Uint32)*, i8* } %"$$fundef_22_cloval_191", { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*, %Uint32)*, i8* }* %g, align 8, !dbg !80 + store { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*, %Uint32)*, i8* } %"$$fundef_22_cloval_191", { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*, %Uint32)*, i8* }* %g, align 8, !dbg !151 %"$$fundef_22_env_f_192" = getelementptr inbounds %"$$fundef_22_env_158", %"$$fundef_22_env_158"* %"$$fundef_22_envp_188", i32 0, i32 0 store { { %Uint32 (i8*, %Int32)*, i8* } (i8*, %Uint32)*, i8* } %1, { { %Uint32 (i8*, %Int32)*, i8* } (i8*, %Uint32)*, i8* }* %"$$fundef_22_env_f_192", align 8 %"$$fundef_22_env_g_193" = getelementptr inbounds %"$$fundef_22_env_158", %"$$fundef_22_env_158"* %"$$fundef_22_envp_188", i32 0, i32 1 %"$g_194" = load { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*, %Uint32)*, i8* }* %g, align 8 store { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*, %Uint32)*, i8* } %"$g_194", { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*, %Uint32)*, i8* }* %"$$fundef_22_env_g_193", align 8 %"$g_195" = load { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*, %Uint32)*, i8* }* %g, align 8 - store { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*, %Uint32)*, i8* } %"$g_195", { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*, %Uint32)*, i8* }* %"$retval_21", align 8, !dbg !80 + store { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*, %Uint32)*, i8* } %"$g_195", { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*, %Uint32)*, i8* }* %"$retval_21", align 8, !dbg !151 %"$$retval_21_196" = load { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*, %Uint32)*, i8* }* %"$retval_21", align 8 ret { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*, %Uint32)*, i8* } %"$$retval_21_196" } -define internal { { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %Int32)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } @"$fundef_18"(%"$$fundef_18_env_160"* %0) !dbg !81 { +define internal { { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %Int32)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } @"$fundef_18"(%"$$fundef_18_env_160"* %0) !dbg !152 { entry: %"$retval_19" = alloca { { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %Int32)*, i8* } (i8*, %Uint32)*, i8* })*, i8* }, align 8 %"$gasrem_174" = load i64, i64* @_gasrem, align 8 @@ -1488,12 +1548,12 @@ entry: "$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 { { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %Int32)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } { { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %Int32)*, i8* } (i8*, %Uint32)*, i8* })* bitcast ({ { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*, %Uint32)*, i8* } (%"$$fundef_20_env_159"*, { { %Uint32 (i8*, %Int32)*, i8* } (i8*, %Uint32)*, i8* })* @"$fundef_20" to { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %Int32)*, i8* } (i8*, %Uint32)*, i8* })*), i8* null }, { { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %Int32)*, i8* } (i8*, %Uint32)*, i8* })*, i8* }* %"$retval_19", align 8, !dbg !82 + store { { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %Int32)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } { { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %Int32)*, i8* } (i8*, %Uint32)*, i8* })* bitcast ({ { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*, %Uint32)*, i8* } (%"$$fundef_20_env_159"*, { { %Uint32 (i8*, %Int32)*, i8* } (i8*, %Uint32)*, i8* })* @"$fundef_20" to { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %Int32)*, i8* } (i8*, %Uint32)*, i8* })*), i8* null }, { { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %Int32)*, i8* } (i8*, %Uint32)*, i8* })*, i8* }* %"$retval_19", align 8, !dbg !153 %"$$retval_19_182" = load { { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %Int32)*, i8* } (i8*, %Uint32)*, i8* })*, i8* }, { { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %Int32)*, i8* } (i8*, %Uint32)*, i8* })*, i8* }* %"$retval_19", align 8 ret { { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %Int32)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } %"$$retval_19_182" } -define internal { i8*, i8* }* @"$fundef_16"(%"$$fundef_16_env_161"* %0) !dbg !83 { +define internal { i8*, i8* }* @"$fundef_16"(%"$$fundef_16_env_161"* %0) !dbg !154 { entry: %"$retval_17" = alloca { i8*, i8* }*, align 8 %"$gasrem_162" = load i64, i64* @_gasrem, align 8 @@ -1514,7 +1574,7 @@ entry: %"$dyndisp_gep_171" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_170", i32 1 %"$dyndisp_pcast_172" = bitcast { i8*, i8* }* %"$dyndisp_gep_171" to { { { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %Int32)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* }* store { { { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %Int32)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* } { { { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %Int32)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } (i8*)* bitcast ({ { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %Int32)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } (%"$$fundef_18_env_160"*)* @"$fundef_18" to { { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %Int32)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } (i8*)*), i8* null }, { { { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %Int32)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* }* %"$dyndisp_pcast_172", align 8 - store { i8*, i8* }* %"$dyndisp_table_170", { i8*, i8* }** %"$retval_17", align 8, !dbg !84 + store { i8*, i8* }* %"$dyndisp_table_170", { i8*, i8* }** %"$retval_17", align 8, !dbg !155 %"$$retval_17_173" = load { i8*, i8* }*, { i8*, i8* }** %"$retval_17", align 8 ret { i8*, i8* }* %"$$retval_17_173" } @@ -1523,772 +1583,878 @@ declare void @_out_of_gas() declare i8* @_salloc(i8*, i64) +; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn +declare void @llvm.dbg.declare(metadata, metadata, metadata) #0 + declare %Uint32 @_add_Uint32(%Uint32, %Uint32) -define void @_init_libs() !dbg !85 { +define void @_init_libs() !dbg !156 { entry: - %"$gasrem_794" = load i64, i64* @_gasrem, align 8 - %"$gascmp_795" = icmp ugt i64 5, %"$gasrem_794" - br i1 %"$gascmp_795", label %"$out_of_gas_796", label %"$have_gas_797" + %"$gasrem_806" = load i64, i64* @_gasrem, align 8 + %"$gascmp_807" = icmp ugt i64 5, %"$gasrem_806" + br i1 %"$gascmp_807", label %"$out_of_gas_808", label %"$have_gas_809" -"$out_of_gas_796": ; preds = %entry +"$out_of_gas_808": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_797" + br label %"$have_gas_809" -"$have_gas_797": ; preds = %"$out_of_gas_796", %entry - %"$consume_798" = sub i64 %"$gasrem_794", 5 - store i64 %"$consume_798", i64* @_gasrem, align 8 - store %Int32 { i32 5 }, %Int32* @"$_gas_charge_accrec_lib_5", align 4, !dbg !87 - %"$gasrem_799" = load i64, i64* @_gasrem, align 8 - %"$gascmp_800" = icmp ugt i64 8, %"$gasrem_799" - br i1 %"$gascmp_800", label %"$out_of_gas_801", label %"$have_gas_802" +"$have_gas_809": ; preds = %"$out_of_gas_808", %entry + %"$consume_810" = sub i64 %"$gasrem_806", 5 + store i64 %"$consume_810", i64* @_gasrem, align 8 + store %Int32 { i32 5 }, %Int32* @"$_gas_charge_accrec_lib_5", align 4, !dbg !158 + %"$gasrem_811" = load i64, i64* @_gasrem, align 8 + %"$gascmp_812" = icmp ugt i64 8, %"$gasrem_811" + br i1 %"$gascmp_812", label %"$out_of_gas_813", label %"$have_gas_814" -"$out_of_gas_801": ; preds = %"$have_gas_797" +"$out_of_gas_813": ; preds = %"$have_gas_809" call void @_out_of_gas() - br label %"$have_gas_802" + br label %"$have_gas_814" -"$have_gas_802": ; preds = %"$out_of_gas_801", %"$have_gas_797" - %"$consume_803" = sub i64 %"$gasrem_799", 8 - store i64 %"$consume_803", i64* @_gasrem, align 8 - store %Int32 { i32 8 }, %Int32* @"$_gas_charge_accBoolUtils_0", align 4, !dbg !87 - %"$gasrem_804" = load i64, i64* @_gasrem, align 8 - %"$gascmp_805" = icmp ugt i64 196, %"$gasrem_804" - br i1 %"$gascmp_805", label %"$out_of_gas_806", label %"$have_gas_807" +"$have_gas_814": ; preds = %"$out_of_gas_813", %"$have_gas_809" + %"$consume_815" = sub i64 %"$gasrem_811", 8 + store i64 %"$consume_815", i64* @_gasrem, align 8 + store %Int32 { i32 8 }, %Int32* @"$_gas_charge_accBoolUtils_0", align 4, !dbg !158 + %"$gasrem_816" = load i64, i64* @_gasrem, align 8 + %"$gascmp_817" = icmp ugt i64 196, %"$gasrem_816" + br i1 %"$gascmp_817", label %"$out_of_gas_818", label %"$have_gas_819" -"$out_of_gas_806": ; preds = %"$have_gas_802" +"$out_of_gas_818": ; preds = %"$have_gas_814" call void @_out_of_gas() - br label %"$have_gas_807" + br label %"$have_gas_819" -"$have_gas_807": ; preds = %"$out_of_gas_806", %"$have_gas_802" - %"$consume_808" = sub i64 %"$gasrem_804", 196 - store i64 %"$consume_808", i64* @_gasrem, align 8 - store %Int32 { i32 196 }, %Int32* @"$_gas_charge_accIntUtils_1", align 4, !dbg !87 - %"$gasrem_809" = load i64, i64* @_gasrem, align 8 - %"$gascmp_810" = icmp ugt i64 19, %"$gasrem_809" - br i1 %"$gascmp_810", label %"$out_of_gas_811", label %"$have_gas_812" +"$have_gas_819": ; preds = %"$out_of_gas_818", %"$have_gas_814" + %"$consume_820" = sub i64 %"$gasrem_816", 196 + store i64 %"$consume_820", i64* @_gasrem, align 8 + store %Int32 { i32 196 }, %Int32* @"$_gas_charge_accIntUtils_1", align 4, !dbg !158 + %"$gasrem_821" = load i64, i64* @_gasrem, align 8 + %"$gascmp_822" = icmp ugt i64 19, %"$gasrem_821" + br i1 %"$gascmp_822", label %"$out_of_gas_823", label %"$have_gas_824" -"$out_of_gas_811": ; preds = %"$have_gas_807" +"$out_of_gas_823": ; preds = %"$have_gas_819" call void @_out_of_gas() - br label %"$have_gas_812" + br label %"$have_gas_824" -"$have_gas_812": ; preds = %"$out_of_gas_811", %"$have_gas_807" - %"$consume_813" = sub i64 %"$gasrem_809", 19 - store i64 %"$consume_813", i64* @_gasrem, align 8 - store %Int32 { i32 19 }, %Int32* @"$_gas_charge_accListUtils_2", align 4, !dbg !87 - %"$gasrem_814" = load i64, i64* @_gasrem, align 8 - %"$gascmp_815" = icmp ugt i64 1, %"$gasrem_814" - br i1 %"$gascmp_815", label %"$out_of_gas_816", label %"$have_gas_817" +"$have_gas_824": ; preds = %"$out_of_gas_823", %"$have_gas_819" + %"$consume_825" = sub i64 %"$gasrem_821", 19 + store i64 %"$consume_825", i64* @_gasrem, align 8 + store %Int32 { i32 19 }, %Int32* @"$_gas_charge_accListUtils_2", align 4, !dbg !158 + %"$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_816": ; preds = %"$have_gas_812" +"$out_of_gas_828": ; preds = %"$have_gas_824" call void @_out_of_gas() - br label %"$have_gas_817" + br label %"$have_gas_829" -"$have_gas_817": ; preds = %"$out_of_gas_816", %"$have_gas_812" - %"$consume_818" = sub i64 %"$gasrem_814", 1 - store i64 %"$consume_818", i64* @_gasrem, align 8 +"$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 %list_foldl = alloca { i8*, i8* }*, align 8 - %"$dyndisp_table_825_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$dyndisp_table_825_salloc_salloc" = call i8* @_salloc(i8* %"$dyndisp_table_825_salloc_load", i64 48) - %"$dyndisp_table_825_salloc" = bitcast i8* %"$dyndisp_table_825_salloc_salloc" to [3 x { i8*, i8* }]* - %"$dyndisp_table_825" = bitcast [3 x { i8*, i8* }]* %"$dyndisp_table_825_salloc" to { i8*, i8* }* - %"$dyndisp_gep_826" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_825", i32 0 - %"$dyndisp_pcast_827" = bitcast { i8*, i8* }* %"$dyndisp_gep_826" to { { i8*, i8* }* (i8*)*, i8* }* - store { { i8*, i8* }* (i8*)*, i8* } { { i8*, i8* }* (i8*)* bitcast ({ i8*, i8* }* (%"$$fundef_16_env_161"*)* @"$fundef_16" to { i8*, i8* }* (i8*)*), i8* null }, { { i8*, i8* }* (i8*)*, i8* }* %"$dyndisp_pcast_827", align 8 - %"$dyndisp_gep_828" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_825", i32 2 - %"$dyndisp_pcast_829" = bitcast { i8*, i8* }* %"$dyndisp_gep_828" to { { i8*, i8* }* (i8*)*, i8* }* - store { { i8*, i8* }* (i8*)*, i8* } { { i8*, i8* }* (i8*)* bitcast ({ i8*, i8* }* (%"$$fundef_26_env_156"*)* @"$fundef_26" to { i8*, i8* }* (i8*)*), i8* null }, { { i8*, i8* }* (i8*)*, i8* }* %"$dyndisp_pcast_829", align 8 - store { i8*, i8* }* %"$dyndisp_table_825", { i8*, i8* }** %list_foldl, align 8, !dbg !88 - %"$$fundef_36_envp_830_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_36_envp_830_salloc" = call i8* @_salloc(i8* %"$$fundef_36_envp_830_load", i64 8) - %"$$fundef_36_envp_830" = bitcast i8* %"$$fundef_36_envp_830_salloc" to %"$$fundef_36_env_151"* - %"$$fundef_36_env_voidp_832" = bitcast %"$$fundef_36_env_151"* %"$$fundef_36_envp_830" to i8* - %"$$fundef_36_cloval_833" = insertvalue { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*)*, i8* } { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*)* bitcast ({ %Uint32 (i8*, %TName_List_Int32*)*, i8* } (%"$$fundef_36_env_151"*)* @"$fundef_36" to { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*)*), i8* undef }, i8* %"$$fundef_36_env_voidp_832", 1 - %"$$fundef_36_env_list_foldl_834" = getelementptr inbounds %"$$fundef_36_env_151", %"$$fundef_36_env_151"* %"$$fundef_36_envp_830", i32 0, i32 0 - %"$list_foldl_835" = load { i8*, i8* }*, { i8*, i8* }** %list_foldl, align 8 - store { i8*, i8* }* %"$list_foldl_835", { i8*, i8* }** %"$$fundef_36_env_list_foldl_834", align 8 - %"$$fundef_42_env_voidp_837" = bitcast %"$$fundef_36_env_151"* %"$$fundef_36_envp_830" to i8* - %"$$fundef_42_cloval_838" = insertvalue { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*)*, i8* } { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*)* bitcast ({ %Uint32 (i8*, %TName_List_Int64*)*, i8* } (%"$$fundef_42_env_148"*)* @"$fundef_42" to { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*)*), i8* undef }, i8* %"$$fundef_42_env_voidp_837", 1 - %"$dyndisp_table_839_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$dyndisp_table_839_salloc_salloc" = call i8* @_salloc(i8* %"$dyndisp_table_839_salloc_load", i64 48) - %"$dyndisp_table_839_salloc" = bitcast i8* %"$dyndisp_table_839_salloc_salloc" to [3 x { i8*, i8* }]* - %"$dyndisp_table_839" = bitcast [3 x { i8*, i8* }]* %"$dyndisp_table_839_salloc" to { i8*, i8* }* - %"$dyndisp_gep_840" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_839", i32 0 - %"$dyndisp_pcast_841" = bitcast { i8*, i8* }* %"$dyndisp_gep_840" to { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*)*, i8* }* - store { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*)*, i8* } %"$$fundef_36_cloval_833", { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*)*, i8* }* %"$dyndisp_pcast_841", align 8 - %"$dyndisp_gep_842" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_839", i32 2 - %"$dyndisp_pcast_843" = bitcast { i8*, i8* }* %"$dyndisp_gep_842" to { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*)*, i8* }* - store { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*)*, i8* } %"$$fundef_42_cloval_838", { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*)*, i8* }* %"$dyndisp_pcast_843", align 8 - store { i8*, i8* }* %"$dyndisp_table_839", { i8*, i8* }** @ListUtils.list_length, align 8, !dbg !89 - %"$gasrem_844" = load i64, i64* @_gasrem, align 8 - %"$gascmp_845" = icmp ugt i64 12, %"$gasrem_844" - br i1 %"$gascmp_845", label %"$out_of_gas_846", label %"$have_gas_847" - -"$out_of_gas_846": ; preds = %"$have_gas_817" - call void @_out_of_gas() - br label %"$have_gas_847" - -"$have_gas_847": ; preds = %"$out_of_gas_846", %"$have_gas_817" - %"$consume_848" = sub i64 %"$gasrem_844", 12 - store i64 %"$consume_848", i64* @_gasrem, align 8 - store %Int32 { i32 12 }, %Int32* @"$_gas_charge_accNatUtils_3", align 4, !dbg !87 - %"$gasrem_849" = load i64, i64* @_gasrem, align 8 - %"$gascmp_850" = icmp ugt i64 2, %"$gasrem_849" - br i1 %"$gascmp_850", label %"$out_of_gas_851", label %"$have_gas_852" - -"$out_of_gas_851": ; preds = %"$have_gas_847" - call void @_out_of_gas() - br label %"$have_gas_852" - -"$have_gas_852": ; preds = %"$out_of_gas_851", %"$have_gas_847" - %"$consume_853" = sub i64 %"$gasrem_849", 2 - store i64 %"$consume_853", i64* @_gasrem, align 8 - store %Int32 { i32 2 }, %Int32* @"$_gas_charge_accPairUtils_4", align 4, !dbg !87 + %"$dyndisp_table_837_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$dyndisp_table_837_salloc_salloc" = call i8* @_salloc(i8* %"$dyndisp_table_837_salloc_load", i64 48) + %"$dyndisp_table_837_salloc" = bitcast i8* %"$dyndisp_table_837_salloc_salloc" to [3 x { i8*, i8* }]* + %"$dyndisp_table_837" = bitcast [3 x { i8*, i8* }]* %"$dyndisp_table_837_salloc" to { i8*, i8* }* + %"$dyndisp_gep_838" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_837", i32 0 + %"$dyndisp_pcast_839" = bitcast { i8*, i8* }* %"$dyndisp_gep_838" to { { i8*, i8* }* (i8*)*, i8* }* + store { { i8*, i8* }* (i8*)*, i8* } { { i8*, i8* }* (i8*)* bitcast ({ i8*, i8* }* (%"$$fundef_16_env_161"*)* @"$fundef_16" to { i8*, i8* }* (i8*)*), i8* null }, { { i8*, i8* }* (i8*)*, i8* }* %"$dyndisp_pcast_839", align 8 + %"$dyndisp_gep_840" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_837", i32 2 + %"$dyndisp_pcast_841" = bitcast { i8*, i8* }* %"$dyndisp_gep_840" to { { i8*, i8* }* (i8*)*, i8* }* + store { { i8*, i8* }* (i8*)*, i8* } { { i8*, i8* }* (i8*)* bitcast ({ i8*, i8* }* (%"$$fundef_26_env_156"*)* @"$fundef_26" to { i8*, i8* }* (i8*)*), i8* null }, { { i8*, i8* }* (i8*)*, i8* }* %"$dyndisp_pcast_841", align 8 + store { i8*, i8* }* %"$dyndisp_table_837", { i8*, i8* }** %list_foldl, align 8, !dbg !159 + %"$$fundef_36_envp_842_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_36_envp_842_salloc" = call i8* @_salloc(i8* %"$$fundef_36_envp_842_load", i64 8) + %"$$fundef_36_envp_842" = bitcast i8* %"$$fundef_36_envp_842_salloc" to %"$$fundef_36_env_151"* + %"$$fundef_36_env_voidp_844" = bitcast %"$$fundef_36_env_151"* %"$$fundef_36_envp_842" to i8* + %"$$fundef_36_cloval_845" = insertvalue { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*)*, i8* } { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*)* bitcast ({ %Uint32 (i8*, %TName_List_Int32*)*, i8* } (%"$$fundef_36_env_151"*)* @"$fundef_36" to { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*)*), i8* undef }, i8* %"$$fundef_36_env_voidp_844", 1 + %"$$fundef_36_env_list_foldl_846" = getelementptr inbounds %"$$fundef_36_env_151", %"$$fundef_36_env_151"* %"$$fundef_36_envp_842", i32 0, i32 0 + %"$list_foldl_847" = load { i8*, i8* }*, { i8*, i8* }** %list_foldl, align 8 + store { i8*, i8* }* %"$list_foldl_847", { i8*, i8* }** %"$$fundef_36_env_list_foldl_846", align 8 + %"$$fundef_42_env_voidp_849" = bitcast %"$$fundef_36_env_151"* %"$$fundef_36_envp_842" to i8* + %"$$fundef_42_cloval_850" = insertvalue { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*)*, i8* } { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*)* bitcast ({ %Uint32 (i8*, %TName_List_Int64*)*, i8* } (%"$$fundef_42_env_148"*)* @"$fundef_42" to { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*)*), i8* undef }, i8* %"$$fundef_42_env_voidp_849", 1 + %"$dyndisp_table_851_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$dyndisp_table_851_salloc_salloc" = call i8* @_salloc(i8* %"$dyndisp_table_851_salloc_load", i64 48) + %"$dyndisp_table_851_salloc" = bitcast i8* %"$dyndisp_table_851_salloc_salloc" to [3 x { i8*, i8* }]* + %"$dyndisp_table_851" = bitcast [3 x { i8*, i8* }]* %"$dyndisp_table_851_salloc" to { i8*, i8* }* + %"$dyndisp_gep_852" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_851", i32 0 + %"$dyndisp_pcast_853" = bitcast { i8*, i8* }* %"$dyndisp_gep_852" to { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*)*, i8* }* + store { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*)*, i8* } %"$$fundef_36_cloval_845", { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*)*, i8* }* %"$dyndisp_pcast_853", align 8 + %"$dyndisp_gep_854" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_851", i32 2 + %"$dyndisp_pcast_855" = bitcast { i8*, i8* }* %"$dyndisp_gep_854" to { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*)*, i8* }* + store { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*)*, i8* } %"$$fundef_42_cloval_850", { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*)*, i8* }* %"$dyndisp_pcast_855", align 8 + store { i8*, i8* }* %"$dyndisp_table_851", { i8*, i8* }** @ListUtils.list_length, align 8, !dbg !160 + %"$gasrem_856" = load i64, i64* @_gasrem, align 8 + %"$gascmp_857" = icmp ugt i64 12, %"$gasrem_856" + br i1 %"$gascmp_857", label %"$out_of_gas_858", label %"$have_gas_859" + +"$out_of_gas_858": ; preds = %"$have_gas_829" + call void @_out_of_gas() + br label %"$have_gas_859" + +"$have_gas_859": ; preds = %"$out_of_gas_858", %"$have_gas_829" + %"$consume_860" = sub i64 %"$gasrem_856", 12 + store i64 %"$consume_860", i64* @_gasrem, align 8 + store %Int32 { i32 12 }, %Int32* @"$_gas_charge_accNatUtils_3", align 4, !dbg !158 + %"$gasrem_861" = load i64, i64* @_gasrem, align 8 + %"$gascmp_862" = icmp ugt i64 2, %"$gasrem_861" + br i1 %"$gascmp_862", label %"$out_of_gas_863", label %"$have_gas_864" + +"$out_of_gas_863": ; preds = %"$have_gas_859" + call void @_out_of_gas() + br label %"$have_gas_864" + +"$have_gas_864": ; preds = %"$out_of_gas_863", %"$have_gas_859" + %"$consume_865" = sub i64 %"$gasrem_861", 2 + store i64 %"$consume_865", i64* @_gasrem, align 8 + store %Int32 { i32 2 }, %Int32* @"$_gas_charge_accPairUtils_4", align 4, !dbg !158 ret void } -define internal %Uint32 @_scilla_expr_fun(i8* %0) !dbg !90 { +define internal %Uint32 @_scilla_expr_fun(i8* %0) !dbg !161 { entry: %"$expr_48" = alloca %Uint32, 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" + call void @llvm.dbg.declare(metadata %Uint32* %"$expr_48", metadata !162, metadata !DIExpression()), !dbg !163 + %"$gasrem_866" = load i64, i64* @_gasrem, align 8 + %"$gascmp_867" = icmp ugt i64 1, %"$gasrem_866" + br i1 %"$gascmp_867", label %"$out_of_gas_868", label %"$have_gas_869" -"$out_of_gas_856": ; preds = %entry +"$out_of_gas_868": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_857" + br label %"$have_gas_869" -"$have_gas_857": ; preds = %"$out_of_gas_856", %entry - %"$consume_858" = sub i64 %"$gasrem_854", 1 - store i64 %"$consume_858", i64* @_gasrem, align 8 +"$have_gas_869": ; preds = %"$out_of_gas_868", %entry + %"$consume_870" = sub i64 %"$gasrem_866", 1 + store i64 %"$consume_870", i64* @_gasrem, align 8 %t1 = alloca { i8*, i8* }*, 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 - %"$dyndisp_table_870_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$dyndisp_table_870_salloc_salloc" = call i8* @_salloc(i8* %"$dyndisp_table_870_salloc_load", i64 48) - %"$dyndisp_table_870_salloc" = bitcast i8* %"$dyndisp_table_870_salloc_salloc" to [3 x { i8*, i8* }]* - %"$dyndisp_table_870" = bitcast [3 x { i8*, i8* }]* %"$dyndisp_table_870_salloc" to { i8*, i8* }* - %"$dyndisp_gep_871" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_870", i32 0 - %"$dyndisp_pcast_872" = bitcast { i8*, i8* }* %"$dyndisp_gep_871" to { { %TName_List_Int32* (i8*, %Int32)*, i8* } (i8*)*, i8* }* - store { { %TName_List_Int32* (i8*, %Int32)*, i8* } (i8*)*, i8* } { { %TName_List_Int32* (i8*, %Int32)*, i8* } (i8*)* bitcast ({ %TName_List_Int32* (i8*, %Int32)*, i8* } (%"$$fundef_49_env_145"*)* @"$fundef_49" to { %TName_List_Int32* (i8*, %Int32)*, i8* } (i8*)*), i8* null }, { { %TName_List_Int32* (i8*, %Int32)*, i8* } (i8*)*, i8* }* %"$dyndisp_pcast_872", align 8 - %"$dyndisp_gep_873" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_870", i32 2 - %"$dyndisp_pcast_874" = bitcast { i8*, i8* }* %"$dyndisp_gep_873" to { { %TName_List_Int64* (i8*, %Int64)*, i8* } (i8*)*, i8* }* - store { { %TName_List_Int64* (i8*, %Int64)*, i8* } (i8*)*, i8* } { { %TName_List_Int64* (i8*, %Int64)*, i8* } (i8*)* bitcast ({ %TName_List_Int64* (i8*, %Int64)*, i8* } (%"$$fundef_53_env_143"*)* @"$fundef_53" to { %TName_List_Int64* (i8*, %Int64)*, i8* } (i8*)*), i8* null }, { { %TName_List_Int64* (i8*, %Int64)*, i8* } (i8*)*, i8* }* %"$dyndisp_pcast_874", align 8 - store { i8*, i8* }* %"$dyndisp_table_870", { i8*, i8* }** %t1, align 8, !dbg !91 - %"$gasrem_875" = load i64, i64* @_gasrem, align 8 - %"$gascmp_876" = icmp ugt i64 1, %"$gasrem_875" - br i1 %"$gascmp_876", label %"$out_of_gas_877", label %"$have_gas_878" - -"$out_of_gas_877": ; preds = %"$have_gas_862" - call void @_out_of_gas() - br label %"$have_gas_878" - -"$have_gas_878": ; preds = %"$out_of_gas_877", %"$have_gas_862" - %"$consume_879" = sub i64 %"$gasrem_875", 1 - store i64 %"$consume_879", i64* @_gasrem, 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_869" + call void @_out_of_gas() + br label %"$have_gas_874" + +"$have_gas_874": ; preds = %"$out_of_gas_873", %"$have_gas_869" + %"$consume_875" = sub i64 %"$gasrem_871", 1 + store i64 %"$consume_875", i64* @_gasrem, align 8 + %"$dyndisp_table_882_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$dyndisp_table_882_salloc_salloc" = call i8* @_salloc(i8* %"$dyndisp_table_882_salloc_load", i64 48) + %"$dyndisp_table_882_salloc" = bitcast i8* %"$dyndisp_table_882_salloc_salloc" to [3 x { i8*, i8* }]* + %"$dyndisp_table_882" = bitcast [3 x { i8*, i8* }]* %"$dyndisp_table_882_salloc" to { i8*, i8* }* + %"$dyndisp_gep_883" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_882", i32 0 + %"$dyndisp_pcast_884" = bitcast { i8*, i8* }* %"$dyndisp_gep_883" to { { %TName_List_Int32* (i8*, %Int32)*, i8* } (i8*)*, i8* }* + store { { %TName_List_Int32* (i8*, %Int32)*, i8* } (i8*)*, i8* } { { %TName_List_Int32* (i8*, %Int32)*, i8* } (i8*)* bitcast ({ %TName_List_Int32* (i8*, %Int32)*, i8* } (%"$$fundef_49_env_145"*)* @"$fundef_49" to { %TName_List_Int32* (i8*, %Int32)*, i8* } (i8*)*), i8* null }, { { %TName_List_Int32* (i8*, %Int32)*, i8* } (i8*)*, i8* }* %"$dyndisp_pcast_884", align 8 + %"$dyndisp_gep_885" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_882", i32 2 + %"$dyndisp_pcast_886" = bitcast { i8*, i8* }* %"$dyndisp_gep_885" to { { %TName_List_Int64* (i8*, %Int64)*, i8* } (i8*)*, i8* }* + store { { %TName_List_Int64* (i8*, %Int64)*, i8* } (i8*)*, i8* } { { %TName_List_Int64* (i8*, %Int64)*, i8* } (i8*)* bitcast ({ %TName_List_Int64* (i8*, %Int64)*, i8* } (%"$$fundef_53_env_143"*)* @"$fundef_53" to { %TName_List_Int64* (i8*, %Int64)*, i8* } (i8*)*), i8* null }, { { %TName_List_Int64* (i8*, %Int64)*, i8* } (i8*)*, i8* }* %"$dyndisp_pcast_886", align 8 + store { i8*, i8* }* %"$dyndisp_table_882", { i8*, i8* }** %t1, align 8, !dbg !163 + %"$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_874" + call void @_out_of_gas() + br label %"$have_gas_890" + +"$have_gas_890": ; preds = %"$out_of_gas_889", %"$have_gas_874" + %"$consume_891" = sub i64 %"$gasrem_887", 1 + store i64 %"$consume_891", i64* @_gasrem, align 8 %t2 = alloca { i8*, i8* }*, align 8 - %"$gasrem_880" = load i64, i64* @_gasrem, align 8 - %"$gascmp_881" = icmp ugt i64 1, %"$gasrem_880" - br i1 %"$gascmp_881", label %"$out_of_gas_882", label %"$have_gas_883" - -"$out_of_gas_882": ; preds = %"$have_gas_878" - call void @_out_of_gas() - br label %"$have_gas_883" - -"$have_gas_883": ; preds = %"$out_of_gas_882", %"$have_gas_878" - %"$consume_884" = sub i64 %"$gasrem_880", 1 - store i64 %"$consume_884", i64* @_gasrem, align 8 - %"$dyndisp_table_891_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$dyndisp_table_891_salloc_salloc" = call i8* @_salloc(i8* %"$dyndisp_table_891_salloc_load", i64 48) - %"$dyndisp_table_891_salloc" = bitcast i8* %"$dyndisp_table_891_salloc_salloc" to [3 x { i8*, i8* }]* - %"$dyndisp_table_891" = bitcast [3 x { i8*, i8* }]* %"$dyndisp_table_891_salloc" to { i8*, i8* }* - %"$dyndisp_gep_892" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_891", i32 0 - %"$dyndisp_pcast_893" = bitcast { i8*, i8* }* %"$dyndisp_gep_892" to { { %TName_List_Int32* (i8*, %Int32)*, i8* } (i8*)*, i8* }* - store { { %TName_List_Int32* (i8*, %Int32)*, i8* } (i8*)*, i8* } { { %TName_List_Int32* (i8*, %Int32)*, i8* } (i8*)* bitcast ({ %TName_List_Int32* (i8*, %Int32)*, i8* } (%"$$fundef_57_env_141"*)* @"$fundef_57" to { %TName_List_Int32* (i8*, %Int32)*, i8* } (i8*)*), i8* null }, { { %TName_List_Int32* (i8*, %Int32)*, i8* } (i8*)*, i8* }* %"$dyndisp_pcast_893", align 8 - %"$dyndisp_gep_894" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_891", i32 2 - %"$dyndisp_pcast_895" = bitcast { i8*, i8* }* %"$dyndisp_gep_894" to { { %TName_List_Int64* (i8*, %Int64)*, i8* } (i8*)*, i8* }* - store { { %TName_List_Int64* (i8*, %Int64)*, i8* } (i8*)*, i8* } { { %TName_List_Int64* (i8*, %Int64)*, i8* } (i8*)* bitcast ({ %TName_List_Int64* (i8*, %Int64)*, i8* } (%"$$fundef_61_env_139"*)* @"$fundef_61" to { %TName_List_Int64* (i8*, %Int64)*, i8* } (i8*)*), i8* null }, { { %TName_List_Int64* (i8*, %Int64)*, i8* } (i8*)*, i8* }* %"$dyndisp_pcast_895", align 8 - store { i8*, i8* }* %"$dyndisp_table_891", { i8*, i8* }** %t2, align 8, !dbg !92 - %"$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_898": ; preds = %"$have_gas_883" - call void @_out_of_gas() - br label %"$have_gas_899" - -"$have_gas_899": ; preds = %"$out_of_gas_898", %"$have_gas_883" - %"$consume_900" = sub i64 %"$gasrem_896", 1 - store i64 %"$consume_900", i64* @_gasrem, align 8 + %"$gasrem_892" = load i64, i64* @_gasrem, align 8 + %"$gascmp_893" = icmp ugt i64 1, %"$gasrem_892" + br i1 %"$gascmp_893", label %"$out_of_gas_894", label %"$have_gas_895" + +"$out_of_gas_894": ; preds = %"$have_gas_890" + call void @_out_of_gas() + br label %"$have_gas_895" + +"$have_gas_895": ; preds = %"$out_of_gas_894", %"$have_gas_890" + %"$consume_896" = sub i64 %"$gasrem_892", 1 + store i64 %"$consume_896", i64* @_gasrem, align 8 + %"$dyndisp_table_903_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$dyndisp_table_903_salloc_salloc" = call i8* @_salloc(i8* %"$dyndisp_table_903_salloc_load", i64 48) + %"$dyndisp_table_903_salloc" = bitcast i8* %"$dyndisp_table_903_salloc_salloc" to [3 x { i8*, i8* }]* + %"$dyndisp_table_903" = bitcast [3 x { i8*, i8* }]* %"$dyndisp_table_903_salloc" to { i8*, i8* }* + %"$dyndisp_gep_904" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_903", i32 0 + %"$dyndisp_pcast_905" = bitcast { i8*, i8* }* %"$dyndisp_gep_904" to { { %TName_List_Int32* (i8*, %Int32)*, i8* } (i8*)*, i8* }* + store { { %TName_List_Int32* (i8*, %Int32)*, i8* } (i8*)*, i8* } { { %TName_List_Int32* (i8*, %Int32)*, i8* } (i8*)* bitcast ({ %TName_List_Int32* (i8*, %Int32)*, i8* } (%"$$fundef_57_env_141"*)* @"$fundef_57" to { %TName_List_Int32* (i8*, %Int32)*, i8* } (i8*)*), i8* null }, { { %TName_List_Int32* (i8*, %Int32)*, i8* } (i8*)*, i8* }* %"$dyndisp_pcast_905", align 8 + %"$dyndisp_gep_906" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_903", i32 2 + %"$dyndisp_pcast_907" = bitcast { i8*, i8* }* %"$dyndisp_gep_906" to { { %TName_List_Int64* (i8*, %Int64)*, i8* } (i8*)*, i8* }* + store { { %TName_List_Int64* (i8*, %Int64)*, i8* } (i8*)*, i8* } { { %TName_List_Int64* (i8*, %Int64)*, i8* } (i8*)* bitcast ({ %TName_List_Int64* (i8*, %Int64)*, i8* } (%"$$fundef_61_env_139"*)* @"$fundef_61" to { %TName_List_Int64* (i8*, %Int64)*, i8* } (i8*)*), i8* null }, { { %TName_List_Int64* (i8*, %Int64)*, i8* } (i8*)*, i8* }* %"$dyndisp_pcast_907", align 8 + store { i8*, i8* }* %"$dyndisp_table_903", { i8*, i8* }** %t2, align 8, !dbg !164 + %"$gasrem_908" = load i64, i64* @_gasrem, align 8 + %"$gascmp_909" = icmp ugt i64 1, %"$gasrem_908" + br i1 %"$gascmp_909", label %"$out_of_gas_910", label %"$have_gas_911" + +"$out_of_gas_910": ; preds = %"$have_gas_895" + call void @_out_of_gas() + br label %"$have_gas_911" + +"$have_gas_911": ; preds = %"$out_of_gas_910", %"$have_gas_895" + %"$consume_912" = sub i64 %"$gasrem_908", 1 + store i64 %"$consume_912", i64* @_gasrem, align 8 %some_bool = alloca %TName_Bool*, align 8 - %"$gasrem_901" = load i64, i64* @_gasrem, align 8 - %"$gascmp_902" = icmp ugt i64 1, %"$gasrem_901" - br i1 %"$gascmp_902", label %"$out_of_gas_903", label %"$have_gas_904" - -"$out_of_gas_903": ; preds = %"$have_gas_899" - call void @_out_of_gas() - br label %"$have_gas_904" - -"$have_gas_904": ; preds = %"$out_of_gas_903", %"$have_gas_899" - %"$consume_905" = sub i64 %"$gasrem_901", 1 - store i64 %"$consume_905", i64* @_gasrem, align 8 - %"$adtval_906_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_906_salloc" = call i8* @_salloc(i8* %"$adtval_906_load", i64 1) - %"$adtval_906" = bitcast i8* %"$adtval_906_salloc" to %CName_True* - %"$adtgep_907" = getelementptr inbounds %CName_True, %CName_True* %"$adtval_906", i32 0, i32 0 - store i8 0, i8* %"$adtgep_907", align 1 - %"$adtptr_908" = bitcast %CName_True* %"$adtval_906" to %TName_Bool* - store %TName_Bool* %"$adtptr_908", %TName_Bool** %some_bool, align 8, !dbg !93 - %"$gasrem_909" = load i64, i64* @_gasrem, align 8 - %"$gascmp_910" = icmp ugt i64 1, %"$gasrem_909" - br i1 %"$gascmp_910", label %"$out_of_gas_911", label %"$have_gas_912" - -"$out_of_gas_911": ; preds = %"$have_gas_904" - call void @_out_of_gas() - br label %"$have_gas_912" - -"$have_gas_912": ; preds = %"$out_of_gas_911", %"$have_gas_904" - %"$consume_913" = sub i64 %"$gasrem_909", 1 - store i64 %"$consume_913", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %some_bool, metadata !165, metadata !DIExpression()), !dbg !168 + %"$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_915": ; preds = %"$have_gas_911" + call void @_out_of_gas() + br label %"$have_gas_916" + +"$have_gas_916": ; preds = %"$out_of_gas_915", %"$have_gas_911" + %"$consume_917" = sub i64 %"$gasrem_913", 1 + store i64 %"$consume_917", i64* @_gasrem, align 8 + %"$adtval_918_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_918_salloc" = call i8* @_salloc(i8* %"$adtval_918_load", i64 1) + %"$adtval_918" = bitcast i8* %"$adtval_918_salloc" to %CName_True* + %"$adtgep_919" = getelementptr inbounds %CName_True, %CName_True* %"$adtval_918", i32 0, i32 0 + store i8 0, i8* %"$adtgep_919", align 1 + %"$adtptr_920" = bitcast %CName_True* %"$adtval_918" to %TName_Bool* + store %TName_Bool* %"$adtptr_920", %TName_Bool** %some_bool, align 8, !dbg !169 + %"$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_916" + call void @_out_of_gas() + br label %"$have_gas_924" + +"$have_gas_924": ; preds = %"$out_of_gas_923", %"$have_gas_916" + %"$consume_925" = sub i64 %"$gasrem_921", 1 + store i64 %"$consume_925", i64* @_gasrem, align 8 %f = alloca { i8*, i8* }*, align 8 - %"$gasrem_914" = load i64, i64* @_gasrem, align 8 - %"$gascmp_915" = icmp ugt i64 2, %"$gasrem_914" - br i1 %"$gascmp_915", label %"$out_of_gas_916", label %"$have_gas_917" - -"$out_of_gas_916": ; preds = %"$have_gas_912" - call void @_out_of_gas() - br label %"$have_gas_917" - -"$have_gas_917": ; preds = %"$out_of_gas_916", %"$have_gas_912" - %"$consume_918" = sub i64 %"$gasrem_914", 2 - store i64 %"$consume_918", i64* @_gasrem, align 8 - %"$some_bool_920" = load %TName_Bool*, %TName_Bool** %some_bool, align 8 - %"$some_bool_tag_921" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$some_bool_920", i32 0, i32 0 - %"$some_bool_tag_922" = load i8, i8* %"$some_bool_tag_921", align 1 - switch i8 %"$some_bool_tag_922", label %"$empty_default_923" [ - i8 0, label %"$True_924" - i8 1, label %"$False_932" - ], !dbg !94 - -"$True_924": ; preds = %"$have_gas_917" - %"$some_bool_925" = bitcast %TName_Bool* %"$some_bool_920" to %CName_True* %"$gasrem_926" = load i64, i64* @_gasrem, align 8 - %"$gascmp_927" = icmp ugt i64 1, %"$gasrem_926" + %"$gascmp_927" = icmp ugt i64 2, %"$gasrem_926" br i1 %"$gascmp_927", label %"$out_of_gas_928", label %"$have_gas_929" -"$out_of_gas_928": ; preds = %"$True_924" +"$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", %"$True_924" - %"$consume_930" = sub i64 %"$gasrem_926", 1 +"$have_gas_929": ; preds = %"$out_of_gas_928", %"$have_gas_924" + %"$consume_930" = sub i64 %"$gasrem_926", 2 store i64 %"$consume_930", i64* @_gasrem, align 8 - %"$t2_931" = load { i8*, i8* }*, { i8*, i8* }** %t2, align 8 - store { i8*, i8* }* %"$t2_931", { i8*, i8* }** %f, align 8, !dbg !95 - br label %"$matchsucc_919" - -"$False_932": ; preds = %"$have_gas_917" - %"$some_bool_933" = bitcast %TName_Bool* %"$some_bool_920" to %CName_False* - %"$gasrem_934" = load i64, i64* @_gasrem, align 8 - %"$gascmp_935" = icmp ugt i64 1, %"$gasrem_934" - br i1 %"$gascmp_935", label %"$out_of_gas_936", label %"$have_gas_937" - -"$out_of_gas_936": ; preds = %"$False_932" - call void @_out_of_gas() - br label %"$have_gas_937" - -"$have_gas_937": ; preds = %"$out_of_gas_936", %"$False_932" - %"$consume_938" = sub i64 %"$gasrem_934", 1 - store i64 %"$consume_938", i64* @_gasrem, align 8 - %"$t1_939" = load { i8*, i8* }*, { i8*, i8* }** %t1, align 8 - store { i8*, i8* }* %"$t1_939", { i8*, i8* }** %f, align 8, !dbg !98 - br label %"$matchsucc_919" - -"$empty_default_923": ; preds = %"$have_gas_917" - br label %"$matchsucc_919" - -"$matchsucc_919": ; preds = %"$have_gas_937", %"$have_gas_929", %"$empty_default_923" - %"$gasrem_940" = load i64, i64* @_gasrem, align 8 - %"$gascmp_941" = icmp ugt i64 1, %"$gasrem_940" - br i1 %"$gascmp_941", label %"$out_of_gas_942", label %"$have_gas_943" - -"$out_of_gas_942": ; preds = %"$matchsucc_919" - call void @_out_of_gas() - br label %"$have_gas_943" - -"$have_gas_943": ; preds = %"$out_of_gas_942", %"$matchsucc_919" - %"$consume_944" = sub i64 %"$gasrem_940", 1 - store i64 %"$consume_944", i64* @_gasrem, align 8 + %"$some_bool_932" = load %TName_Bool*, %TName_Bool** %some_bool, align 8 + %"$some_bool_tag_933" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$some_bool_932", i32 0, i32 0 + %"$some_bool_tag_934" = load i8, i8* %"$some_bool_tag_933", align 1 + switch i8 %"$some_bool_tag_934", label %"$empty_default_935" [ + i8 0, label %"$True_936" + i8 1, label %"$False_944" + ], !dbg !170 + +"$True_936": ; preds = %"$have_gas_929" + %"$some_bool_937" = bitcast %TName_Bool* %"$some_bool_932" to %CName_True* + %"$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 = %"$True_936" + call void @_out_of_gas() + br label %"$have_gas_941" + +"$have_gas_941": ; preds = %"$out_of_gas_940", %"$True_936" + %"$consume_942" = sub i64 %"$gasrem_938", 1 + store i64 %"$consume_942", i64* @_gasrem, align 8 + %"$t2_943" = load { i8*, i8* }*, { i8*, i8* }** %t2, align 8 + store { i8*, i8* }* %"$t2_943", { i8*, i8* }** %f, align 8, !dbg !171 + br label %"$matchsucc_931" + +"$False_944": ; preds = %"$have_gas_929" + %"$some_bool_945" = bitcast %TName_Bool* %"$some_bool_932" to %CName_False* + %"$gasrem_946" = load i64, i64* @_gasrem, align 8 + %"$gascmp_947" = icmp ugt i64 1, %"$gasrem_946" + br i1 %"$gascmp_947", label %"$out_of_gas_948", label %"$have_gas_949" + +"$out_of_gas_948": ; preds = %"$False_944" + call void @_out_of_gas() + br label %"$have_gas_949" + +"$have_gas_949": ; preds = %"$out_of_gas_948", %"$False_944" + %"$consume_950" = sub i64 %"$gasrem_946", 1 + store i64 %"$consume_950", i64* @_gasrem, align 8 + %"$t1_951" = load { i8*, i8* }*, { i8*, i8* }** %t1, align 8 + store { i8*, i8* }* %"$t1_951", { i8*, i8* }** %f, align 8, !dbg !174 + br label %"$matchsucc_931" + +"$empty_default_935": ; preds = %"$have_gas_929" + br label %"$matchsucc_931" + +"$matchsucc_931": ; preds = %"$have_gas_949", %"$have_gas_941", %"$empty_default_935" + %"$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 = %"$matchsucc_931" + call void @_out_of_gas() + br label %"$have_gas_955" + +"$have_gas_955": ; preds = %"$out_of_gas_954", %"$matchsucc_931" + %"$consume_956" = sub i64 %"$gasrem_952", 1 + store i64 %"$consume_956", i64* @_gasrem, align 8 %some_bool2 = alloca %TName_Bool*, align 8 - %"$gasrem_945" = load i64, i64* @_gasrem, align 8 - %"$gascmp_946" = icmp ugt i64 1, %"$gasrem_945" - br i1 %"$gascmp_946", label %"$out_of_gas_947", label %"$have_gas_948" - -"$out_of_gas_947": ; preds = %"$have_gas_943" - call void @_out_of_gas() - br label %"$have_gas_948" - -"$have_gas_948": ; preds = %"$out_of_gas_947", %"$have_gas_943" - %"$consume_949" = sub i64 %"$gasrem_945", 1 - store i64 %"$consume_949", i64* @_gasrem, align 8 - %"$adtval_950_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_950_salloc" = call i8* @_salloc(i8* %"$adtval_950_load", i64 1) - %"$adtval_950" = bitcast i8* %"$adtval_950_salloc" to %CName_False* - %"$adtgep_951" = getelementptr inbounds %CName_False, %CName_False* %"$adtval_950", i32 0, i32 0 - store i8 1, i8* %"$adtgep_951", align 1 - %"$adtptr_952" = bitcast %CName_False* %"$adtval_950" to %TName_Bool* - store %TName_Bool* %"$adtptr_952", %TName_Bool** %some_bool2, align 8, !dbg !100 - %"$gasrem_953" = load i64, i64* @_gasrem, align 8 - %"$gascmp_954" = icmp ugt i64 2, %"$gasrem_953" - br i1 %"$gascmp_954", label %"$out_of_gas_955", label %"$have_gas_956" - -"$out_of_gas_955": ; preds = %"$have_gas_948" - call void @_out_of_gas() - br label %"$have_gas_956" - -"$have_gas_956": ; preds = %"$out_of_gas_955", %"$have_gas_948" - %"$consume_957" = sub i64 %"$gasrem_953", 2 - store i64 %"$consume_957", i64* @_gasrem, align 8 - %"$some_bool2_959" = load %TName_Bool*, %TName_Bool** %some_bool2, align 8 - %"$some_bool2_tag_960" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$some_bool2_959", i32 0, i32 0 - %"$some_bool2_tag_961" = load i8, i8* %"$some_bool2_tag_960", align 1 - switch i8 %"$some_bool2_tag_961", label %"$empty_default_962" [ - i8 0, label %"$True_963" - i8 1, label %"$False_1036" - ], !dbg !101 - -"$True_963": ; preds = %"$have_gas_956" - %"$some_bool2_964" = bitcast %TName_Bool* %"$some_bool2_959" to %CName_True* + call void @llvm.dbg.declare(metadata %TName_Bool** %some_bool2, metadata !176, metadata !DIExpression()), !dbg !177 + %"$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 + %"$adtval_962_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_962_salloc" = call i8* @_salloc(i8* %"$adtval_962_load", i64 1) + %"$adtval_962" = bitcast i8* %"$adtval_962_salloc" to %CName_False* + %"$adtgep_963" = getelementptr inbounds %CName_False, %CName_False* %"$adtval_962", i32 0, i32 0 + store i8 1, i8* %"$adtgep_963", align 1 + %"$adtptr_964" = bitcast %CName_False* %"$adtval_962" to %TName_Bool* + store %TName_Bool* %"$adtptr_964", %TName_Bool** %some_bool2, align 8, !dbg !178 %"$gasrem_965" = load i64, i64* @_gasrem, align 8 - %"$gascmp_966" = icmp ugt i64 1, %"$gasrem_965" + %"$gascmp_966" = icmp ugt i64 2, %"$gasrem_965" br i1 %"$gascmp_966", label %"$out_of_gas_967", label %"$have_gas_968" -"$out_of_gas_967": ; preds = %"$True_963" +"$out_of_gas_967": ; preds = %"$have_gas_960" call void @_out_of_gas() br label %"$have_gas_968" -"$have_gas_968": ; preds = %"$out_of_gas_967", %"$True_963" - %"$consume_969" = sub i64 %"$gasrem_965", 1 +"$have_gas_968": ; preds = %"$out_of_gas_967", %"$have_gas_960" + %"$consume_969" = sub i64 %"$gasrem_965", 2 store i64 %"$consume_969", i64* @_gasrem, align 8 + %"$some_bool2_971" = load %TName_Bool*, %TName_Bool** %some_bool2, align 8 + %"$some_bool2_tag_972" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$some_bool2_971", i32 0, i32 0 + %"$some_bool2_tag_973" = load i8, i8* %"$some_bool2_tag_972", align 1 + switch i8 %"$some_bool2_tag_973", label %"$empty_default_974" [ + i8 0, label %"$True_975" + i8 1, label %"$False_1048" + ], !dbg !179 + +"$True_975": ; preds = %"$have_gas_968" + %"$some_bool2_976" = bitcast %TName_Bool* %"$some_bool2_971" to %CName_True* + %"$gasrem_977" = load i64, i64* @_gasrem, align 8 + %"$gascmp_978" = icmp ugt i64 1, %"$gasrem_977" + br i1 %"$gascmp_978", label %"$out_of_gas_979", label %"$have_gas_980" + +"$out_of_gas_979": ; preds = %"$True_975" + call void @_out_of_gas() + br label %"$have_gas_980" + +"$have_gas_980": ; preds = %"$out_of_gas_979", %"$True_975" + %"$consume_981" = sub i64 %"$gasrem_977", 1 + store i64 %"$consume_981", i64* @_gasrem, align 8 %f1 = alloca { %TName_List_Int32* (i8*, %Int32)*, i8* }, align 8 - %"$gasrem_970" = load i64, i64* @_gasrem, align 8 - %"$gascmp_971" = icmp ugt i64 1, %"$gasrem_970" - br i1 %"$gascmp_971", label %"$out_of_gas_972", label %"$have_gas_973" - -"$out_of_gas_972": ; preds = %"$have_gas_968" - call void @_out_of_gas() - br label %"$have_gas_973" - -"$have_gas_973": ; preds = %"$out_of_gas_972", %"$have_gas_968" - %"$consume_974" = sub i64 %"$gasrem_970", 1 - store i64 %"$consume_974", i64* @_gasrem, align 8 - %"$f_975" = load { i8*, i8* }*, { i8*, i8* }** %f, align 8 - %"$f_976" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$f_975", i32 0 - %"$f_977" = bitcast { i8*, i8* }* %"$f_976" to { { %TName_List_Int32* (i8*, %Int32)*, i8* } (i8*)*, i8* }* - %"$f_978" = load { { %TName_List_Int32* (i8*, %Int32)*, i8* } (i8*)*, i8* }, { { %TName_List_Int32* (i8*, %Int32)*, i8* } (i8*)*, i8* }* %"$f_977", align 8 - %"$f_fptr_979" = extractvalue { { %TName_List_Int32* (i8*, %Int32)*, i8* } (i8*)*, i8* } %"$f_978", 0 - %"$f_envptr_980" = extractvalue { { %TName_List_Int32* (i8*, %Int32)*, i8* } (i8*)*, i8* } %"$f_978", 1 - %"$f_call_981" = call { %TName_List_Int32* (i8*, %Int32)*, i8* } %"$f_fptr_979"(i8* %"$f_envptr_980"), !dbg !102 - store { %TName_List_Int32* (i8*, %Int32)*, i8* } %"$f_call_981", { %TName_List_Int32* (i8*, %Int32)*, i8* }* %f1, align 8, !dbg !105 %"$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 = %"$have_gas_973" +"$out_of_gas_984": ; preds = %"$have_gas_980" call void @_out_of_gas() br label %"$have_gas_985" -"$have_gas_985": ; preds = %"$out_of_gas_984", %"$have_gas_973" +"$have_gas_985": ; preds = %"$out_of_gas_984", %"$have_gas_980" %"$consume_986" = sub i64 %"$gasrem_982", 1 store i64 %"$consume_986", i64* @_gasrem, align 8 + %"$f_987" = load { i8*, i8* }*, { i8*, i8* }** %f, align 8 + %"$f_988" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$f_987", i32 0 + %"$f_989" = bitcast { i8*, i8* }* %"$f_988" to { { %TName_List_Int32* (i8*, %Int32)*, i8* } (i8*)*, i8* }* + %"$f_990" = load { { %TName_List_Int32* (i8*, %Int32)*, i8* } (i8*)*, i8* }, { { %TName_List_Int32* (i8*, %Int32)*, i8* } (i8*)*, i8* }* %"$f_989", align 8 + %"$f_fptr_991" = extractvalue { { %TName_List_Int32* (i8*, %Int32)*, i8* } (i8*)*, i8* } %"$f_990", 0 + %"$f_envptr_992" = extractvalue { { %TName_List_Int32* (i8*, %Int32)*, i8* } (i8*)*, i8* } %"$f_990", 1 + %"$f_call_993" = call { %TName_List_Int32* (i8*, %Int32)*, i8* } %"$f_fptr_991"(i8* %"$f_envptr_992"), !dbg !180 + store { %TName_List_Int32* (i8*, %Int32)*, i8* } %"$f_call_993", { %TName_List_Int32* (i8*, %Int32)*, i8* }* %f1, align 8, !dbg !183 + %"$gasrem_994" = load i64, i64* @_gasrem, align 8 + %"$gascmp_995" = icmp ugt i64 1, %"$gasrem_994" + br i1 %"$gascmp_995", label %"$out_of_gas_996", label %"$have_gas_997" + +"$out_of_gas_996": ; preds = %"$have_gas_985" + call void @_out_of_gas() + br label %"$have_gas_997" + +"$have_gas_997": ; preds = %"$out_of_gas_996", %"$have_gas_985" + %"$consume_998" = sub i64 %"$gasrem_994", 1 + store i64 %"$consume_998", i64* @_gasrem, align 8 %len = alloca { %Uint32 (i8*, %TName_List_Int32*)*, i8* }, 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 - %"$ListUtils.list_length_992" = load { i8*, i8* }*, { i8*, i8* }** @ListUtils.list_length, align 8 - %"$ListUtils.list_length_993" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$ListUtils.list_length_992", i32 0 - %"$ListUtils.list_length_994" = bitcast { i8*, i8* }* %"$ListUtils.list_length_993" to { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*)*, i8* }* - %"$ListUtils.list_length_995" = load { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*)*, i8* }, { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*)*, i8* }* %"$ListUtils.list_length_994", align 8 - %"$ListUtils.list_length_fptr_996" = extractvalue { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*)*, i8* } %"$ListUtils.list_length_995", 0 - %"$ListUtils.list_length_envptr_997" = extractvalue { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*)*, i8* } %"$ListUtils.list_length_995", 1 - %"$ListUtils.list_length_call_998" = call { %Uint32 (i8*, %TName_List_Int32*)*, i8* } %"$ListUtils.list_length_fptr_996"(i8* %"$ListUtils.list_length_envptr_997"), !dbg !106 - store { %Uint32 (i8*, %TName_List_Int32*)*, i8* } %"$ListUtils.list_length_call_998", { %Uint32 (i8*, %TName_List_Int32*)*, i8* }* %len, align 8, !dbg !107 %"$gasrem_999" = load i64, i64* @_gasrem, align 8 %"$gascmp_1000" = icmp ugt i64 1, %"$gasrem_999" br i1 %"$gascmp_1000", label %"$out_of_gas_1001", label %"$have_gas_1002" -"$out_of_gas_1001": ; preds = %"$have_gas_990" +"$out_of_gas_1001": ; preds = %"$have_gas_997" call void @_out_of_gas() br label %"$have_gas_1002" -"$have_gas_1002": ; preds = %"$out_of_gas_1001", %"$have_gas_990" +"$have_gas_1002": ; preds = %"$out_of_gas_1001", %"$have_gas_997" %"$consume_1003" = sub i64 %"$gasrem_999", 1 store i64 %"$consume_1003", i64* @_gasrem, align 8 + %"$ListUtils.list_length_1004" = load { i8*, i8* }*, { i8*, i8* }** @ListUtils.list_length, align 8 + %"$ListUtils.list_length_1005" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$ListUtils.list_length_1004", i32 0 + %"$ListUtils.list_length_1006" = bitcast { i8*, i8* }* %"$ListUtils.list_length_1005" to { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*)*, i8* }* + %"$ListUtils.list_length_1007" = load { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*)*, i8* }, { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*)*, i8* }* %"$ListUtils.list_length_1006", align 8 + %"$ListUtils.list_length_fptr_1008" = extractvalue { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*)*, i8* } %"$ListUtils.list_length_1007", 0 + %"$ListUtils.list_length_envptr_1009" = extractvalue { { %Uint32 (i8*, %TName_List_Int32*)*, i8* } (i8*)*, i8* } %"$ListUtils.list_length_1007", 1 + %"$ListUtils.list_length_call_1010" = call { %Uint32 (i8*, %TName_List_Int32*)*, i8* } %"$ListUtils.list_length_fptr_1008"(i8* %"$ListUtils.list_length_envptr_1009"), !dbg !184 + store { %Uint32 (i8*, %TName_List_Int32*)*, i8* } %"$ListUtils.list_length_call_1010", { %Uint32 (i8*, %TName_List_Int32*)*, i8* }* %len, align 8, !dbg !185 + %"$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_1002" + call void @_out_of_gas() + br label %"$have_gas_1014" + +"$have_gas_1014": ; preds = %"$out_of_gas_1013", %"$have_gas_1002" + %"$consume_1015" = sub i64 %"$gasrem_1011", 1 + store i64 %"$consume_1015", i64* @_gasrem, align 8 %one = alloca %Int32, 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" + call void @llvm.dbg.declare(metadata %Int32* %one, metadata !186, metadata !DIExpression()), !dbg !187 + %"$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_1006": ; preds = %"$have_gas_1002" +"$out_of_gas_1018": ; preds = %"$have_gas_1014" call void @_out_of_gas() - br label %"$have_gas_1007" + br label %"$have_gas_1019" -"$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 - store %Int32 { i32 1 }, %Int32* %one, align 4, !dbg !108 - %"$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" +"$have_gas_1019": ; preds = %"$out_of_gas_1018", %"$have_gas_1014" + %"$consume_1020" = sub i64 %"$gasrem_1016", 1 + store i64 %"$consume_1020", i64* @_gasrem, align 8 + store %Int32 { i32 1 }, %Int32* %one, align 4, !dbg !188 + %"$gasrem_1021" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1022" = icmp ugt i64 1, %"$gasrem_1021" + br i1 %"$gascmp_1022", label %"$out_of_gas_1023", label %"$have_gas_1024" -"$out_of_gas_1011": ; preds = %"$have_gas_1007" +"$out_of_gas_1023": ; preds = %"$have_gas_1019" call void @_out_of_gas() - br label %"$have_gas_1012" + br label %"$have_gas_1024" -"$have_gas_1012": ; preds = %"$out_of_gas_1011", %"$have_gas_1007" - %"$consume_1013" = sub i64 %"$gasrem_1009", 1 - store i64 %"$consume_1013", i64* @_gasrem, align 8 +"$have_gas_1024": ; preds = %"$out_of_gas_1023", %"$have_gas_1019" + %"$consume_1025" = sub i64 %"$gasrem_1021", 1 + store i64 %"$consume_1025", i64* @_gasrem, align 8 %f1l = alloca %TName_List_Int32*, align 8 - %"$gasrem_1014" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1015" = icmp ugt i64 1, %"$gasrem_1014" - br i1 %"$gascmp_1015", label %"$out_of_gas_1016", label %"$have_gas_1017" + call void @llvm.dbg.declare(metadata %TName_List_Int32** %f1l, metadata !189, metadata !DIExpression()), !dbg !190 + %"$gasrem_1026" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1027" = icmp ugt i64 1, %"$gasrem_1026" + br i1 %"$gascmp_1027", label %"$out_of_gas_1028", label %"$have_gas_1029" -"$out_of_gas_1016": ; preds = %"$have_gas_1012" +"$out_of_gas_1028": ; preds = %"$have_gas_1024" call void @_out_of_gas() - br label %"$have_gas_1017" + br label %"$have_gas_1029" -"$have_gas_1017": ; preds = %"$out_of_gas_1016", %"$have_gas_1012" - %"$consume_1018" = sub i64 %"$gasrem_1014", 1 - store i64 %"$consume_1018", i64* @_gasrem, align 8 +"$have_gas_1029": ; preds = %"$out_of_gas_1028", %"$have_gas_1024" + %"$consume_1030" = sub i64 %"$gasrem_1026", 1 + store i64 %"$consume_1030", i64* @_gasrem, align 8 %"$f1_12" = alloca %TName_List_Int32*, align 8 - %"$f1_1019" = load { %TName_List_Int32* (i8*, %Int32)*, i8* }, { %TName_List_Int32* (i8*, %Int32)*, i8* }* %f1, align 8 - %"$f1_fptr_1020" = extractvalue { %TName_List_Int32* (i8*, %Int32)*, i8* } %"$f1_1019", 0 - %"$f1_envptr_1021" = extractvalue { %TName_List_Int32* (i8*, %Int32)*, i8* } %"$f1_1019", 1 - %"$one_1022" = load %Int32, %Int32* %one, align 4 - %"$f1_call_1023" = call %TName_List_Int32* %"$f1_fptr_1020"(i8* %"$f1_envptr_1021", %Int32 %"$one_1022"), !dbg !109 - store %TName_List_Int32* %"$f1_call_1023", %TName_List_Int32** %"$f1_12", align 8, !dbg !109 - %"$$f1_12_1024" = load %TName_List_Int32*, %TName_List_Int32** %"$f1_12", align 8 - store %TName_List_Int32* %"$$f1_12_1024", %TName_List_Int32** %f1l, align 8, !dbg !109 - %"$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_1017" - call void @_out_of_gas() - br label %"$have_gas_1028" - -"$have_gas_1028": ; preds = %"$out_of_gas_1027", %"$have_gas_1017" - %"$consume_1029" = sub i64 %"$gasrem_1025", 1 - store i64 %"$consume_1029", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_List_Int32** %"$f1_12", metadata !191, metadata !DIExpression()), !dbg !192 + %"$f1_1031" = load { %TName_List_Int32* (i8*, %Int32)*, i8* }, { %TName_List_Int32* (i8*, %Int32)*, i8* }* %f1, align 8 + %"$f1_fptr_1032" = extractvalue { %TName_List_Int32* (i8*, %Int32)*, i8* } %"$f1_1031", 0 + %"$f1_envptr_1033" = extractvalue { %TName_List_Int32* (i8*, %Int32)*, i8* } %"$f1_1031", 1 + %"$one_1034" = load %Int32, %Int32* %one, align 4 + %"$f1_call_1035" = call %TName_List_Int32* %"$f1_fptr_1032"(i8* %"$f1_envptr_1033", %Int32 %"$one_1034"), !dbg !192 + store %TName_List_Int32* %"$f1_call_1035", %TName_List_Int32** %"$f1_12", align 8, !dbg !192 + %"$$f1_12_1036" = load %TName_List_Int32*, %TName_List_Int32** %"$f1_12", align 8 + store %TName_List_Int32* %"$$f1_12_1036", %TName_List_Int32** %f1l, align 8, !dbg !192 + %"$gasrem_1037" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1038" = icmp ugt i64 1, %"$gasrem_1037" + br i1 %"$gascmp_1038", label %"$out_of_gas_1039", label %"$have_gas_1040" + +"$out_of_gas_1039": ; preds = %"$have_gas_1029" + call void @_out_of_gas() + br label %"$have_gas_1040" + +"$have_gas_1040": ; preds = %"$out_of_gas_1039", %"$have_gas_1029" + %"$consume_1041" = sub i64 %"$gasrem_1037", 1 + store i64 %"$consume_1041", i64* @_gasrem, align 8 %"$len_13" = alloca %Uint32, align 8 - %"$len_1030" = load { %Uint32 (i8*, %TName_List_Int32*)*, i8* }, { %Uint32 (i8*, %TName_List_Int32*)*, i8* }* %len, align 8 - %"$len_fptr_1031" = extractvalue { %Uint32 (i8*, %TName_List_Int32*)*, i8* } %"$len_1030", 0 - %"$len_envptr_1032" = extractvalue { %Uint32 (i8*, %TName_List_Int32*)*, i8* } %"$len_1030", 1 - %"$f1l_1033" = load %TName_List_Int32*, %TName_List_Int32** %f1l, align 8 - %"$len_call_1034" = call %Uint32 %"$len_fptr_1031"(i8* %"$len_envptr_1032", %TName_List_Int32* %"$f1l_1033"), !dbg !110 - store %Uint32 %"$len_call_1034", %Uint32* %"$len_13", align 4, !dbg !110 - %"$$len_13_1035" = load %Uint32, %Uint32* %"$len_13", align 4 - store %Uint32 %"$$len_13_1035", %Uint32* %"$expr_48", align 4, !dbg !110 - br label %"$matchsucc_958" - -"$False_1036": ; preds = %"$have_gas_956" - %"$some_bool2_1037" = bitcast %TName_Bool* %"$some_bool2_959" to %CName_False* - %"$gasrem_1038" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1039" = icmp ugt i64 1, %"$gasrem_1038" - br i1 %"$gascmp_1039", label %"$out_of_gas_1040", label %"$have_gas_1041" - -"$out_of_gas_1040": ; preds = %"$False_1036" - call void @_out_of_gas() - br label %"$have_gas_1041" - -"$have_gas_1041": ; preds = %"$out_of_gas_1040", %"$False_1036" - %"$consume_1042" = sub i64 %"$gasrem_1038", 1 - store i64 %"$consume_1042", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %Uint32* %"$len_13", metadata !193, metadata !DIExpression()), !dbg !194 + %"$len_1042" = load { %Uint32 (i8*, %TName_List_Int32*)*, i8* }, { %Uint32 (i8*, %TName_List_Int32*)*, i8* }* %len, align 8 + %"$len_fptr_1043" = extractvalue { %Uint32 (i8*, %TName_List_Int32*)*, i8* } %"$len_1042", 0 + %"$len_envptr_1044" = extractvalue { %Uint32 (i8*, %TName_List_Int32*)*, i8* } %"$len_1042", 1 + %"$f1l_1045" = load %TName_List_Int32*, %TName_List_Int32** %f1l, align 8 + %"$len_call_1046" = call %Uint32 %"$len_fptr_1043"(i8* %"$len_envptr_1044", %TName_List_Int32* %"$f1l_1045"), !dbg !194 + store %Uint32 %"$len_call_1046", %Uint32* %"$len_13", align 4, !dbg !194 + %"$$len_13_1047" = load %Uint32, %Uint32* %"$len_13", align 4 + store %Uint32 %"$$len_13_1047", %Uint32* %"$expr_48", align 4, !dbg !194 + br label %"$matchsucc_970" + +"$False_1048": ; preds = %"$have_gas_968" + %"$some_bool2_1049" = bitcast %TName_Bool* %"$some_bool2_971" to %CName_False* + %"$gasrem_1050" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1051" = icmp ugt i64 1, %"$gasrem_1050" + br i1 %"$gascmp_1051", label %"$out_of_gas_1052", label %"$have_gas_1053" + +"$out_of_gas_1052": ; preds = %"$False_1048" + call void @_out_of_gas() + br label %"$have_gas_1053" + +"$have_gas_1053": ; preds = %"$out_of_gas_1052", %"$False_1048" + %"$consume_1054" = sub i64 %"$gasrem_1050", 1 + store i64 %"$consume_1054", i64* @_gasrem, align 8 %f2 = alloca { %TName_List_Int64* (i8*, %Int64)*, 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 = %"$have_gas_1041" - call void @_out_of_gas() - br label %"$have_gas_1046" - -"$have_gas_1046": ; preds = %"$out_of_gas_1045", %"$have_gas_1041" - %"$consume_1047" = sub i64 %"$gasrem_1043", 1 - store i64 %"$consume_1047", i64* @_gasrem, align 8 - %"$f_1048" = load { i8*, i8* }*, { i8*, i8* }** %f, align 8 - %"$f_1049" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$f_1048", i32 2 - %"$f_1050" = bitcast { i8*, i8* }* %"$f_1049" to { { %TName_List_Int64* (i8*, %Int64)*, i8* } (i8*)*, i8* }* - %"$f_1051" = load { { %TName_List_Int64* (i8*, %Int64)*, i8* } (i8*)*, i8* }, { { %TName_List_Int64* (i8*, %Int64)*, i8* } (i8*)*, i8* }* %"$f_1050", align 8 - %"$f_fptr_1052" = extractvalue { { %TName_List_Int64* (i8*, %Int64)*, i8* } (i8*)*, i8* } %"$f_1051", 0 - %"$f_envptr_1053" = extractvalue { { %TName_List_Int64* (i8*, %Int64)*, i8* } (i8*)*, i8* } %"$f_1051", 1 - %"$f_call_1054" = call { %TName_List_Int64* (i8*, %Int64)*, i8* } %"$f_fptr_1052"(i8* %"$f_envptr_1053"), !dbg !111 - store { %TName_List_Int64* (i8*, %Int64)*, i8* } %"$f_call_1054", { %TName_List_Int64* (i8*, %Int64)*, i8* }* %f2, align 8, !dbg !113 %"$gasrem_1055" = load i64, i64* @_gasrem, align 8 %"$gascmp_1056" = icmp ugt i64 1, %"$gasrem_1055" br i1 %"$gascmp_1056", label %"$out_of_gas_1057", label %"$have_gas_1058" -"$out_of_gas_1057": ; preds = %"$have_gas_1046" +"$out_of_gas_1057": ; preds = %"$have_gas_1053" call void @_out_of_gas() br label %"$have_gas_1058" -"$have_gas_1058": ; preds = %"$out_of_gas_1057", %"$have_gas_1046" +"$have_gas_1058": ; preds = %"$out_of_gas_1057", %"$have_gas_1053" %"$consume_1059" = sub i64 %"$gasrem_1055", 1 store i64 %"$consume_1059", i64* @_gasrem, align 8 + %"$f_1060" = load { i8*, i8* }*, { i8*, i8* }** %f, align 8 + %"$f_1061" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$f_1060", i32 2 + %"$f_1062" = bitcast { i8*, i8* }* %"$f_1061" to { { %TName_List_Int64* (i8*, %Int64)*, i8* } (i8*)*, i8* }* + %"$f_1063" = load { { %TName_List_Int64* (i8*, %Int64)*, i8* } (i8*)*, i8* }, { { %TName_List_Int64* (i8*, %Int64)*, i8* } (i8*)*, i8* }* %"$f_1062", align 8 + %"$f_fptr_1064" = extractvalue { { %TName_List_Int64* (i8*, %Int64)*, i8* } (i8*)*, i8* } %"$f_1063", 0 + %"$f_envptr_1065" = extractvalue { { %TName_List_Int64* (i8*, %Int64)*, i8* } (i8*)*, i8* } %"$f_1063", 1 + %"$f_call_1066" = call { %TName_List_Int64* (i8*, %Int64)*, i8* } %"$f_fptr_1064"(i8* %"$f_envptr_1065"), !dbg !195 + store { %TName_List_Int64* (i8*, %Int64)*, i8* } %"$f_call_1066", { %TName_List_Int64* (i8*, %Int64)*, i8* }* %f2, align 8, !dbg !197 + %"$gasrem_1067" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1068" = icmp ugt i64 1, %"$gasrem_1067" + br i1 %"$gascmp_1068", label %"$out_of_gas_1069", label %"$have_gas_1070" + +"$out_of_gas_1069": ; preds = %"$have_gas_1058" + call void @_out_of_gas() + br label %"$have_gas_1070" + +"$have_gas_1070": ; preds = %"$out_of_gas_1069", %"$have_gas_1058" + %"$consume_1071" = sub i64 %"$gasrem_1067", 1 + store i64 %"$consume_1071", i64* @_gasrem, align 8 %len1 = alloca { %Uint32 (i8*, %TName_List_Int64*)*, i8* }, 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_1062": ; preds = %"$have_gas_1058" - call void @_out_of_gas() - br label %"$have_gas_1063" - -"$have_gas_1063": ; preds = %"$out_of_gas_1062", %"$have_gas_1058" - %"$consume_1064" = sub i64 %"$gasrem_1060", 1 - store i64 %"$consume_1064", i64* @_gasrem, align 8 - %"$ListUtils.list_length_1065" = load { i8*, i8* }*, { i8*, i8* }** @ListUtils.list_length, align 8 - %"$ListUtils.list_length_1066" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$ListUtils.list_length_1065", i32 2 - %"$ListUtils.list_length_1067" = bitcast { i8*, i8* }* %"$ListUtils.list_length_1066" to { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*)*, i8* }* - %"$ListUtils.list_length_1068" = load { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*)*, i8* }, { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*)*, i8* }* %"$ListUtils.list_length_1067", align 8 - %"$ListUtils.list_length_fptr_1069" = extractvalue { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*)*, i8* } %"$ListUtils.list_length_1068", 0 - %"$ListUtils.list_length_envptr_1070" = extractvalue { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*)*, i8* } %"$ListUtils.list_length_1068", 1 - %"$ListUtils.list_length_call_1071" = call { %Uint32 (i8*, %TName_List_Int64*)*, i8* } %"$ListUtils.list_length_fptr_1069"(i8* %"$ListUtils.list_length_envptr_1070"), !dbg !114 - store { %Uint32 (i8*, %TName_List_Int64*)*, i8* } %"$ListUtils.list_length_call_1071", { %Uint32 (i8*, %TName_List_Int64*)*, i8* }* %len1, align 8, !dbg !115 %"$gasrem_1072" = load i64, i64* @_gasrem, align 8 %"$gascmp_1073" = icmp ugt i64 1, %"$gasrem_1072" br i1 %"$gascmp_1073", label %"$out_of_gas_1074", label %"$have_gas_1075" -"$out_of_gas_1074": ; preds = %"$have_gas_1063" +"$out_of_gas_1074": ; preds = %"$have_gas_1070" call void @_out_of_gas() br label %"$have_gas_1075" -"$have_gas_1075": ; preds = %"$out_of_gas_1074", %"$have_gas_1063" +"$have_gas_1075": ; preds = %"$out_of_gas_1074", %"$have_gas_1070" %"$consume_1076" = sub i64 %"$gasrem_1072", 1 store i64 %"$consume_1076", i64* @_gasrem, align 8 + %"$ListUtils.list_length_1077" = load { i8*, i8* }*, { i8*, i8* }** @ListUtils.list_length, align 8 + %"$ListUtils.list_length_1078" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$ListUtils.list_length_1077", i32 2 + %"$ListUtils.list_length_1079" = bitcast { i8*, i8* }* %"$ListUtils.list_length_1078" to { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*)*, i8* }* + %"$ListUtils.list_length_1080" = load { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*)*, i8* }, { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*)*, i8* }* %"$ListUtils.list_length_1079", align 8 + %"$ListUtils.list_length_fptr_1081" = extractvalue { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*)*, i8* } %"$ListUtils.list_length_1080", 0 + %"$ListUtils.list_length_envptr_1082" = extractvalue { { %Uint32 (i8*, %TName_List_Int64*)*, i8* } (i8*)*, i8* } %"$ListUtils.list_length_1080", 1 + %"$ListUtils.list_length_call_1083" = call { %Uint32 (i8*, %TName_List_Int64*)*, i8* } %"$ListUtils.list_length_fptr_1081"(i8* %"$ListUtils.list_length_envptr_1082"), !dbg !198 + store { %Uint32 (i8*, %TName_List_Int64*)*, i8* } %"$ListUtils.list_length_call_1083", { %Uint32 (i8*, %TName_List_Int64*)*, i8* }* %len1, align 8, !dbg !199 + %"$gasrem_1084" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1085" = icmp ugt i64 1, %"$gasrem_1084" + br i1 %"$gascmp_1085", label %"$out_of_gas_1086", label %"$have_gas_1087" + +"$out_of_gas_1086": ; preds = %"$have_gas_1075" + call void @_out_of_gas() + br label %"$have_gas_1087" + +"$have_gas_1087": ; preds = %"$out_of_gas_1086", %"$have_gas_1075" + %"$consume_1088" = sub i64 %"$gasrem_1084", 1 + store i64 %"$consume_1088", i64* @_gasrem, align 8 %one2 = alloca %Int64, 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" + call void @llvm.dbg.declare(metadata %Int64* %one2, metadata !200, metadata !DIExpression()), !dbg !201 + %"$gasrem_1089" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1090" = icmp ugt i64 1, %"$gasrem_1089" + br i1 %"$gascmp_1090", label %"$out_of_gas_1091", label %"$have_gas_1092" -"$out_of_gas_1079": ; preds = %"$have_gas_1075" +"$out_of_gas_1091": ; preds = %"$have_gas_1087" call void @_out_of_gas() - br label %"$have_gas_1080" + br label %"$have_gas_1092" -"$have_gas_1080": ; preds = %"$out_of_gas_1079", %"$have_gas_1075" - %"$consume_1081" = sub i64 %"$gasrem_1077", 1 - store i64 %"$consume_1081", i64* @_gasrem, align 8 - store %Int64 { i64 1 }, %Int64* %one2, align 8, !dbg !116 - %"$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" +"$have_gas_1092": ; preds = %"$out_of_gas_1091", %"$have_gas_1087" + %"$consume_1093" = sub i64 %"$gasrem_1089", 1 + store i64 %"$consume_1093", i64* @_gasrem, align 8 + store %Int64 { i64 1 }, %Int64* %one2, align 8, !dbg !202 + %"$gasrem_1094" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1095" = icmp ugt i64 1, %"$gasrem_1094" + br i1 %"$gascmp_1095", label %"$out_of_gas_1096", label %"$have_gas_1097" -"$out_of_gas_1084": ; preds = %"$have_gas_1080" +"$out_of_gas_1096": ; preds = %"$have_gas_1092" call void @_out_of_gas() - br label %"$have_gas_1085" + br label %"$have_gas_1097" -"$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 +"$have_gas_1097": ; preds = %"$out_of_gas_1096", %"$have_gas_1092" + %"$consume_1098" = sub i64 %"$gasrem_1094", 1 + store i64 %"$consume_1098", i64* @_gasrem, align 8 %f2l = alloca %TName_List_Int64*, align 8 - %"$gasrem_1087" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1088" = icmp ugt i64 1, %"$gasrem_1087" - br i1 %"$gascmp_1088", label %"$out_of_gas_1089", label %"$have_gas_1090" + call void @llvm.dbg.declare(metadata %TName_List_Int64** %f2l, metadata !203, metadata !DIExpression()), !dbg !204 + %"$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" -"$out_of_gas_1089": ; preds = %"$have_gas_1085" +"$out_of_gas_1101": ; preds = %"$have_gas_1097" call void @_out_of_gas() - br label %"$have_gas_1090" + br label %"$have_gas_1102" -"$have_gas_1090": ; preds = %"$out_of_gas_1089", %"$have_gas_1085" - %"$consume_1091" = sub i64 %"$gasrem_1087", 1 - store i64 %"$consume_1091", i64* @_gasrem, align 8 +"$have_gas_1102": ; preds = %"$out_of_gas_1101", %"$have_gas_1097" + %"$consume_1103" = sub i64 %"$gasrem_1099", 1 + store i64 %"$consume_1103", i64* @_gasrem, align 8 %"$f2_14" = alloca %TName_List_Int64*, align 8 - %"$f2_1092" = load { %TName_List_Int64* (i8*, %Int64)*, i8* }, { %TName_List_Int64* (i8*, %Int64)*, i8* }* %f2, align 8 - %"$f2_fptr_1093" = extractvalue { %TName_List_Int64* (i8*, %Int64)*, i8* } %"$f2_1092", 0 - %"$f2_envptr_1094" = extractvalue { %TName_List_Int64* (i8*, %Int64)*, i8* } %"$f2_1092", 1 - %"$one_1095" = load %Int64, %Int64* %one2, align 8 - %"$f2_call_1096" = call %TName_List_Int64* %"$f2_fptr_1093"(i8* %"$f2_envptr_1094", %Int64 %"$one_1095"), !dbg !117 - store %TName_List_Int64* %"$f2_call_1096", %TName_List_Int64** %"$f2_14", align 8, !dbg !117 - %"$$f2_14_1097" = load %TName_List_Int64*, %TName_List_Int64** %"$f2_14", align 8 - store %TName_List_Int64* %"$$f2_14_1097", %TName_List_Int64** %f2l, align 8, !dbg !117 - %"$gasrem_1098" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1099" = icmp ugt i64 1, %"$gasrem_1098" - br i1 %"$gascmp_1099", label %"$out_of_gas_1100", label %"$have_gas_1101" - -"$out_of_gas_1100": ; preds = %"$have_gas_1090" - call void @_out_of_gas() - br label %"$have_gas_1101" - -"$have_gas_1101": ; preds = %"$out_of_gas_1100", %"$have_gas_1090" - %"$consume_1102" = sub i64 %"$gasrem_1098", 1 - store i64 %"$consume_1102", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_List_Int64** %"$f2_14", metadata !205, metadata !DIExpression()), !dbg !206 + %"$f2_1104" = load { %TName_List_Int64* (i8*, %Int64)*, i8* }, { %TName_List_Int64* (i8*, %Int64)*, i8* }* %f2, align 8 + %"$f2_fptr_1105" = extractvalue { %TName_List_Int64* (i8*, %Int64)*, i8* } %"$f2_1104", 0 + %"$f2_envptr_1106" = extractvalue { %TName_List_Int64* (i8*, %Int64)*, i8* } %"$f2_1104", 1 + %"$one_1107" = load %Int64, %Int64* %one2, align 8 + %"$f2_call_1108" = call %TName_List_Int64* %"$f2_fptr_1105"(i8* %"$f2_envptr_1106", %Int64 %"$one_1107"), !dbg !206 + store %TName_List_Int64* %"$f2_call_1108", %TName_List_Int64** %"$f2_14", align 8, !dbg !206 + %"$$f2_14_1109" = load %TName_List_Int64*, %TName_List_Int64** %"$f2_14", align 8 + store %TName_List_Int64* %"$$f2_14_1109", %TName_List_Int64** %f2l, align 8, !dbg !206 + %"$gasrem_1110" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1111" = icmp ugt i64 1, %"$gasrem_1110" + br i1 %"$gascmp_1111", label %"$out_of_gas_1112", label %"$have_gas_1113" + +"$out_of_gas_1112": ; preds = %"$have_gas_1102" + call void @_out_of_gas() + br label %"$have_gas_1113" + +"$have_gas_1113": ; preds = %"$out_of_gas_1112", %"$have_gas_1102" + %"$consume_1114" = sub i64 %"$gasrem_1110", 1 + store i64 %"$consume_1114", i64* @_gasrem, align 8 %"$len_15" = alloca %Uint32, align 8 - %"$len_1103" = load { %Uint32 (i8*, %TName_List_Int64*)*, i8* }, { %Uint32 (i8*, %TName_List_Int64*)*, i8* }* %len1, align 8 - %"$len_fptr_1104" = extractvalue { %Uint32 (i8*, %TName_List_Int64*)*, i8* } %"$len_1103", 0 - %"$len_envptr_1105" = extractvalue { %Uint32 (i8*, %TName_List_Int64*)*, i8* } %"$len_1103", 1 - %"$f2l_1106" = load %TName_List_Int64*, %TName_List_Int64** %f2l, align 8 - %"$len_call_1107" = call %Uint32 %"$len_fptr_1104"(i8* %"$len_envptr_1105", %TName_List_Int64* %"$f2l_1106"), !dbg !118 - store %Uint32 %"$len_call_1107", %Uint32* %"$len_15", align 4, !dbg !118 - %"$$len_15_1108" = load %Uint32, %Uint32* %"$len_15", align 4 - store %Uint32 %"$$len_15_1108", %Uint32* %"$expr_48", align 4, !dbg !118 - br label %"$matchsucc_958" - -"$empty_default_962": ; preds = %"$have_gas_956" - br label %"$matchsucc_958" - -"$matchsucc_958": ; preds = %"$have_gas_1101", %"$have_gas_1028", %"$empty_default_962" - %"$$expr_48_1109" = load %Uint32, %Uint32* %"$expr_48", align 4 - ret %Uint32 %"$$expr_48_1109" + call void @llvm.dbg.declare(metadata %Uint32* %"$len_15", metadata !207, metadata !DIExpression()), !dbg !208 + %"$len_1115" = load { %Uint32 (i8*, %TName_List_Int64*)*, i8* }, { %Uint32 (i8*, %TName_List_Int64*)*, i8* }* %len1, align 8 + %"$len_fptr_1116" = extractvalue { %Uint32 (i8*, %TName_List_Int64*)*, i8* } %"$len_1115", 0 + %"$len_envptr_1117" = extractvalue { %Uint32 (i8*, %TName_List_Int64*)*, i8* } %"$len_1115", 1 + %"$f2l_1118" = load %TName_List_Int64*, %TName_List_Int64** %f2l, align 8 + %"$len_call_1119" = call %Uint32 %"$len_fptr_1116"(i8* %"$len_envptr_1117", %TName_List_Int64* %"$f2l_1118"), !dbg !208 + store %Uint32 %"$len_call_1119", %Uint32* %"$len_15", align 4, !dbg !208 + %"$$len_15_1120" = load %Uint32, %Uint32* %"$len_15", align 4 + store %Uint32 %"$$len_15_1120", %Uint32* %"$expr_48", align 4, !dbg !208 + br label %"$matchsucc_970" + +"$empty_default_974": ; preds = %"$have_gas_968" + br label %"$matchsucc_970" + +"$matchsucc_970": ; preds = %"$have_gas_1113", %"$have_gas_1040", %"$empty_default_974" + %"$$expr_48_1121" = load %Uint32, %Uint32* %"$expr_48", align 4 + ret %Uint32 %"$$expr_48_1121" } declare void @_print_scilla_val(i8*, %_TyDescrTy_Typ*, i8*) define void @scilla_main() { entry: - %"$exprval_1110" = call %Uint32 @_scilla_expr_fun(i8* null) - %"$pval_1111" = alloca %Uint32, align 8 - %"$memvoidcast_1112" = bitcast %Uint32* %"$pval_1111" to i8* - store %Uint32 %"$exprval_1110", %Uint32* %"$pval_1111", align 4 - %"$execptr_load_1113" = load i8*, i8** @_execptr, align 8 - call void @_print_scilla_val(i8* %"$execptr_load_1113", %_TyDescrTy_Typ* @"$TyDescr_Uint32_69", i8* %"$memvoidcast_1112") + %"$exprval_1122" = call %Uint32 @_scilla_expr_fun(i8* null) + %"$pval_1123" = alloca %Uint32, align 8 + %"$memvoidcast_1124" = bitcast %Uint32* %"$pval_1123" to i8* + store %Uint32 %"$exprval_1122", %Uint32* %"$pval_1123", align 4 + %"$execptr_load_1125" = load i8*, i8** @_execptr, align 8 + call void @_print_scilla_val(i8* %"$execptr_load_1125", %_TyDescrTy_Typ* @"$TyDescr_Uint32_69", i8* %"$memvoidcast_1124") ret void } +attributes #0 = { nocallback nofree nosync nounwind readnone speculatable willreturn } + !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) +!1 = distinct !DICompileUnit(language: DW_LANG_C89, file: !2, producer: "Scilla Compiler", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false) !2 = !DIFile(filename: "multi-type-inst.scilexp", directory: "codegen/expr") -!3 = !{} -!4 = distinct !DISubprogram(name: "$fundef_63", linkageName: "$fundef_63", scope: !2, file: !2, line: 11, type: !5, scopeLine: 11, 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: 11, column: 14, scope: !4) -!9 = !DILocation(line: 12, column: 14, scope: !4) -!10 = !DILocation(line: 13, column: 5, scope: !4) -!11 = distinct !DISubprogram(name: "$fundef_61", linkageName: "$fundef_61", scope: !2, file: !2, line: 11, type: !5, scopeLine: 11, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!12 = !DILocation(line: 11, column: 5, scope: !11) -!13 = distinct !DISubprogram(name: "$fundef_59", linkageName: "$fundef_59", scope: !2, file: !2, line: 11, type: !5, scopeLine: 11, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!14 = !DILocation(line: 11, column: 14, scope: !13) -!15 = !DILocation(line: 12, column: 14, scope: !13) -!16 = !DILocation(line: 13, column: 5, scope: !13) -!17 = distinct !DISubprogram(name: "$fundef_57", linkageName: "$fundef_57", scope: !2, file: !2, line: 11, type: !5, scopeLine: 11, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!18 = !DILocation(line: 11, column: 5, scope: !17) -!19 = distinct !DISubprogram(name: "$fundef_55", linkageName: "$fundef_55", scope: !2, file: !2, line: 4, type: !5, scopeLine: 4, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!20 = !DILocation(line: 4, column: 14, scope: !19) -!21 = !DILocation(line: 5, column: 5, scope: !19) -!22 = distinct !DISubprogram(name: "$fundef_53", linkageName: "$fundef_53", scope: !2, file: !2, line: 4, type: !5, scopeLine: 4, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!23 = !DILocation(line: 4, column: 5, scope: !22) -!24 = 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) -!25 = !DILocation(line: 4, column: 14, scope: !24) -!26 = !DILocation(line: 5, column: 5, scope: !24) -!27 = 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) -!28 = !DILocation(line: 4, column: 5, scope: !27) -!29 = distinct !DISubprogram(name: "$fundef_46", linkageName: "$fundef_46", scope: !30, file: !30, line: 104, type: !5, scopeLine: 104, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!30 = !DIFile(filename: "ListUtils.scillib", directory: "../src/stdlib") -!31 = !DILocation(line: 104, column: 5, scope: !29) -!32 = distinct !DISubprogram(name: "$fundef_44", linkageName: "$fundef_44", scope: !30, file: !30, line: 103, type: !5, scopeLine: 103, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!33 = !DILocation(line: 104, column: 5, scope: !32) -!34 = distinct !DISubprogram(name: "$fundef_42", linkageName: "$fundef_42", scope: !30, file: !30, line: 101, type: !5, scopeLine: 101, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!35 = !DILocation(line: 101, column: 16, scope: !34) -!36 = !DILocation(line: 101, column: 15, scope: !34) -!37 = !DILocation(line: 102, column: 13, scope: !34) -!38 = !DILocation(line: 103, column: 34, scope: !34) -!39 = !DILocation(line: 105, column: 14, scope: !34) -!40 = !DILocation(line: 106, column: 3, scope: !34) -!41 = distinct !DISubprogram(name: "$fundef_40", linkageName: "$fundef_40", scope: !30, file: !30, line: 104, type: !5, scopeLine: 104, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!42 = !DILocation(line: 104, column: 5, scope: !41) -!43 = distinct !DISubprogram(name: "$fundef_38", linkageName: "$fundef_38", scope: !30, file: !30, line: 103, type: !5, scopeLine: 103, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!44 = !DILocation(line: 104, column: 5, scope: !43) -!45 = distinct !DISubprogram(name: "$fundef_36", linkageName: "$fundef_36", scope: !30, file: !30, line: 101, type: !5, scopeLine: 101, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!46 = !DILocation(line: 101, column: 16, scope: !45) -!47 = !DILocation(line: 101, column: 15, scope: !45) -!48 = !DILocation(line: 102, column: 13, scope: !45) -!49 = !DILocation(line: 103, column: 34, scope: !45) -!50 = !DILocation(line: 105, column: 14, scope: !45) -!51 = !DILocation(line: 106, column: 3, scope: !45) -!52 = distinct !DISubprogram(name: "$fundef_34", linkageName: "$fundef_34", scope: !53, file: !53, line: 1, type: !5, scopeLine: 1, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!53 = !DIFile(filename: "Prelude", directory: ".") -!54 = !DILocation(line: 1, column: 37, scope: !52) -!55 = !DILocation(line: 1, column: 74, scope: !56) -!56 = distinct !DILexicalBlock(scope: !57, file: !53, line: 1, column: 52) -!57 = distinct !DILexicalBlock(scope: !52, file: !53, line: 1, column: 37) -!58 = !DILocation(line: 1, column: 83, scope: !56) -!59 = !DILocation(line: 1, column: 100, scope: !60) -!60 = distinct !DILexicalBlock(scope: !57, file: !53, line: 1, column: 93) -!61 = distinct !DISubprogram(name: "$fundef_32", linkageName: "$fundef_32", scope: !53, file: !53, line: 1, type: !5, scopeLine: 1, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!62 = !DILocation(line: 1, column: 37, scope: !61) -!63 = distinct !DISubprogram(name: "$fundef_30", linkageName: "$fundef_30", scope: !53, file: !53, line: 1, type: !5, scopeLine: 1, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!64 = !DILocation(line: 1, column: 17, scope: !63) -!65 = distinct !DISubprogram(name: "$fundef_28", linkageName: "$fundef_28", scope: !53, file: !53, line: 1, type: !5, scopeLine: 1, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!66 = !DILocation(line: 1, column: 17, scope: !65) -!67 = distinct !DISubprogram(name: "$fundef_26", linkageName: "$fundef_26", scope: !53, file: !53, line: 1, type: !5, scopeLine: 1, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!68 = !DILocation(line: 1, column: 17, scope: !67) -!69 = distinct !DISubprogram(name: "$fundef_24", linkageName: "$fundef_24", scope: !53, file: !53, line: 1, type: !5, scopeLine: 1, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!70 = !DILocation(line: 1, column: 37, scope: !69) -!71 = !DILocation(line: 1, column: 74, scope: !72) -!72 = distinct !DILexicalBlock(scope: !73, file: !53, line: 1, column: 52) -!73 = distinct !DILexicalBlock(scope: !69, file: !53, line: 1, column: 37) -!74 = !DILocation(line: 1, column: 83, scope: !72) -!75 = !DILocation(line: 1, column: 100, scope: !76) -!76 = distinct !DILexicalBlock(scope: !73, file: !53, line: 1, column: 93) -!77 = distinct !DISubprogram(name: "$fundef_22", linkageName: "$fundef_22", scope: !53, file: !53, line: 1, type: !5, scopeLine: 1, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!78 = !DILocation(line: 1, column: 37, scope: !77) -!79 = distinct !DISubprogram(name: "$fundef_20", linkageName: "$fundef_20", scope: !53, file: !53, line: 1, type: !5, scopeLine: 1, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!80 = !DILocation(line: 1, column: 17, scope: !79) -!81 = distinct !DISubprogram(name: "$fundef_18", linkageName: "$fundef_18", scope: !53, file: !53, line: 1, type: !5, scopeLine: 1, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!82 = !DILocation(line: 1, column: 17, scope: !81) -!83 = distinct !DISubprogram(name: "$fundef_16", linkageName: "$fundef_16", scope: !53, file: !53, line: 1, type: !5, scopeLine: 1, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!84 = !DILocation(line: 1, column: 17, scope: !83) -!85 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !86, file: !86, type: !5, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!86 = !DIFile(filename: ".", directory: ".") -!87 = !DILocation(line: 0, scope: !85) -!88 = !DILocation(line: 1, column: 17, scope: !85) -!89 = !DILocation(line: 100, column: 3, scope: !85) -!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: 9, column: 3, scope: !90) -!93 = !DILocation(line: 16, column: 17, scope: !90) -!94 = !DILocation(line: 18, column: 3, scope: !90) -!95 = !DILocation(line: 19, column: 13, scope: !96) -!96 = distinct !DILexicalBlock(scope: !97, file: !2, line: 19, column: 5) -!97 = distinct !DILexicalBlock(scope: !90, file: !2, line: 18, column: 3) -!98 = !DILocation(line: 20, column: 14, scope: !99) -!99 = distinct !DILexicalBlock(scope: !97, file: !2, line: 20, column: 5) -!100 = !DILocation(line: 24, column: 18, scope: !90) -!101 = !DILocation(line: 25, column: 1, scope: !90) -!102 = !DILocation(line: 27, column: 13, scope: !103) -!103 = distinct !DILexicalBlock(scope: !104, file: !2, line: 26, column: 3) -!104 = distinct !DILexicalBlock(scope: !90, file: !2, line: 25, column: 1) -!105 = !DILocation(line: 27, column: 12, scope: !103) -!106 = !DILocation(line: 28, column: 14, scope: !103) -!107 = !DILocation(line: 28, column: 13, scope: !103) -!108 = !DILocation(line: 29, column: 13, scope: !103) -!109 = !DILocation(line: 30, column: 13, scope: !103) -!110 = !DILocation(line: 31, column: 3, scope: !103) -!111 = !DILocation(line: 33, column: 13, scope: !112) -!112 = distinct !DILexicalBlock(scope: !104, file: !2, line: 32, column: 3) -!113 = !DILocation(line: 33, column: 12, scope: !112) -!114 = !DILocation(line: 34, column: 14, scope: !112) -!115 = !DILocation(line: 34, column: 13, scope: !112) -!116 = !DILocation(line: 35, column: 13, scope: !112) -!117 = !DILocation(line: 36, column: 13, scope: !112) -!118 = !DILocation(line: 37, column: 3, scope: !112) +!3 = distinct !DISubprogram(name: "$fundef_63", linkageName: "$fundef_63", scope: !2, file: !2, line: 11, type: !4, scopeLine: 11, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!4 = !DISubroutineType(types: !5) +!5 = !{!6} +!6 = !DIBasicType(tag: DW_TAG_unspecified_type, name: "void") +!7 = !{} +!8 = !DILocalVariable(name: "a", scope: !3, file: !2, line: 10, type: !9) +!9 = !DIBasicType(name: "Int64", size: 8) +!10 = !DILocation(line: 10, column: 8, scope: !3) +!11 = !DILocalVariable(name: "$retval_64", scope: !3, file: !2, line: 11, type: !12) +!12 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "List (Int64)", baseType: !13, size: 8, align: 8, dwarfAddressSpace: 0) +!13 = !DIBasicType(name: "List (Int64)", size: 8) +!14 = !DILocation(line: 11, column: 5, scope: !3) +!15 = !DILocalVariable(name: "an", scope: !3, file: !2, line: 11, type: !12) +!16 = !DILocation(line: 11, column: 9, scope: !3) +!17 = !DILocation(line: 11, column: 14, scope: !3) +!18 = !DILocalVariable(name: "a1", scope: !3, file: !2, line: 12, type: !12) +!19 = !DILocation(line: 12, column: 9, scope: !3) +!20 = !DILocation(line: 12, column: 14, scope: !3) +!21 = !DILocation(line: 13, column: 5, scope: !3) +!22 = distinct !DISubprogram(name: "$fundef_61", linkageName: "$fundef_61", scope: !2, file: !2, line: 11, type: !4, scopeLine: 11, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!23 = !DILocation(line: 11, column: 5, scope: !22) +!24 = distinct !DISubprogram(name: "$fundef_59", linkageName: "$fundef_59", scope: !2, file: !2, line: 11, type: !4, scopeLine: 11, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!25 = !DILocalVariable(name: "a", scope: !24, file: !2, line: 10, type: !26) +!26 = !DIBasicType(name: "Int32", size: 4) +!27 = !DILocation(line: 10, column: 8, scope: !24) +!28 = !DILocalVariable(name: "$retval_60", scope: !24, file: !2, line: 11, type: !29) +!29 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "List (Int32)", baseType: !30, size: 8, align: 8, dwarfAddressSpace: 0) +!30 = !DIBasicType(name: "List (Int32)", size: 8) +!31 = !DILocation(line: 11, column: 5, scope: !24) +!32 = !DILocalVariable(name: "an", scope: !24, file: !2, line: 11, type: !29) +!33 = !DILocation(line: 11, column: 9, scope: !24) +!34 = !DILocation(line: 11, column: 14, scope: !24) +!35 = !DILocalVariable(name: "a1", scope: !24, file: !2, line: 12, type: !29) +!36 = !DILocation(line: 12, column: 9, scope: !24) +!37 = !DILocation(line: 12, column: 14, scope: !24) +!38 = !DILocation(line: 13, column: 5, scope: !24) +!39 = distinct !DISubprogram(name: "$fundef_57", linkageName: "$fundef_57", scope: !2, file: !2, line: 11, type: !4, scopeLine: 11, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!40 = !DILocation(line: 11, column: 5, scope: !39) +!41 = distinct !DISubprogram(name: "$fundef_55", linkageName: "$fundef_55", scope: !2, file: !2, line: 4, type: !4, scopeLine: 4, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!42 = !DILocalVariable(name: "a", scope: !41, file: !2, line: 3, type: !9) +!43 = !DILocation(line: 3, column: 8, scope: !41) +!44 = !DILocalVariable(name: "$retval_56", scope: !41, file: !2, line: 4, type: !12) +!45 = !DILocation(line: 4, column: 5, scope: !41) +!46 = !DILocalVariable(name: "an", scope: !41, file: !2, line: 4, type: !12) +!47 = !DILocation(line: 4, column: 9, scope: !41) +!48 = !DILocation(line: 4, column: 14, scope: !41) +!49 = !DILocation(line: 5, column: 5, scope: !41) +!50 = distinct !DISubprogram(name: "$fundef_53", linkageName: "$fundef_53", scope: !2, file: !2, line: 4, type: !4, scopeLine: 4, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!51 = !DILocation(line: 4, column: 5, scope: !50) +!52 = distinct !DISubprogram(name: "$fundef_51", linkageName: "$fundef_51", scope: !2, file: !2, line: 4, type: !4, scopeLine: 4, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!53 = !DILocalVariable(name: "a", scope: !52, file: !2, line: 3, type: !26) +!54 = !DILocation(line: 3, column: 8, scope: !52) +!55 = !DILocalVariable(name: "$retval_52", scope: !52, file: !2, line: 4, type: !29) +!56 = !DILocation(line: 4, column: 5, scope: !52) +!57 = !DILocalVariable(name: "an", scope: !52, file: !2, line: 4, type: !29) +!58 = !DILocation(line: 4, column: 9, scope: !52) +!59 = !DILocation(line: 4, column: 14, scope: !52) +!60 = !DILocation(line: 5, column: 5, scope: !52) +!61 = distinct !DISubprogram(name: "$fundef_49", linkageName: "$fundef_49", scope: !2, file: !2, line: 4, type: !4, scopeLine: 4, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!62 = !DILocation(line: 4, column: 5, scope: !61) +!63 = distinct !DISubprogram(name: "$fundef_46", linkageName: "$fundef_46", scope: !64, file: !64, line: 104, type: !4, scopeLine: 104, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!64 = !DIFile(filename: "ListUtils.scillib", directory: "../src/stdlib") +!65 = !DILocalVariable(name: "h", scope: !63, file: !64, line: 103, type: !9) +!66 = !DILocation(line: 103, column: 39, scope: !63) +!67 = !DILocalVariable(name: "$retval_47", scope: !63, file: !64, line: 104, type: !68) +!68 = !DIBasicType(name: "Uint32", size: 4) +!69 = !DILocation(line: 104, column: 5, scope: !63) +!70 = distinct !DISubprogram(name: "$fundef_44", linkageName: "$fundef_44", scope: !64, file: !64, line: 103, type: !4, scopeLine: 103, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!71 = !DILocalVariable(name: "z", scope: !70, file: !64, line: 103, type: !68) +!72 = !DILocation(line: 103, column: 19, scope: !70) +!73 = !DILocation(line: 104, column: 5, scope: !70) +!74 = distinct !DISubprogram(name: "$fundef_42", linkageName: "$fundef_42", scope: !64, file: !64, line: 101, type: !4, scopeLine: 101, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!75 = !DILocation(line: 101, column: 16, scope: !74) +!76 = !DILocation(line: 101, column: 15, scope: !74) +!77 = !DILocalVariable(name: "one", scope: !74, file: !64, line: 102, type: !68) +!78 = !DILocation(line: 102, column: 7, scope: !74) +!79 = !DILocation(line: 102, column: 13, scope: !74) +!80 = !DILocation(line: 103, column: 34, scope: !74) +!81 = !DILocalVariable(name: "init", scope: !74, file: !64, line: 105, type: !68) +!82 = !DILocation(line: 105, column: 7, scope: !74) +!83 = !DILocation(line: 105, column: 14, scope: !74) +!84 = !DILocation(line: 106, column: 3, scope: !74) +!85 = distinct !DISubprogram(name: "$fundef_40", linkageName: "$fundef_40", scope: !64, file: !64, line: 104, type: !4, scopeLine: 104, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!86 = !DILocalVariable(name: "h", scope: !85, file: !64, line: 103, type: !26) +!87 = !DILocation(line: 103, column: 39, scope: !85) +!88 = !DILocalVariable(name: "$retval_41", scope: !85, file: !64, line: 104, type: !68) +!89 = !DILocation(line: 104, column: 5, scope: !85) +!90 = distinct !DISubprogram(name: "$fundef_38", linkageName: "$fundef_38", scope: !64, file: !64, line: 103, type: !4, scopeLine: 103, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!91 = !DILocalVariable(name: "z", scope: !90, file: !64, line: 103, type: !68) +!92 = !DILocation(line: 103, column: 19, scope: !90) +!93 = !DILocation(line: 104, column: 5, scope: !90) +!94 = distinct !DISubprogram(name: "$fundef_36", linkageName: "$fundef_36", scope: !64, file: !64, line: 101, type: !4, scopeLine: 101, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!95 = !DILocation(line: 101, column: 16, scope: !94) +!96 = !DILocation(line: 101, column: 15, scope: !94) +!97 = !DILocalVariable(name: "one", scope: !94, file: !64, line: 102, type: !68) +!98 = !DILocation(line: 102, column: 7, scope: !94) +!99 = !DILocation(line: 102, column: 13, scope: !94) +!100 = !DILocation(line: 103, column: 34, scope: !94) +!101 = !DILocalVariable(name: "init", scope: !94, file: !64, line: 105, type: !68) +!102 = !DILocation(line: 105, column: 7, scope: !94) +!103 = !DILocation(line: 105, column: 14, scope: !94) +!104 = !DILocation(line: 106, column: 3, scope: !94) +!105 = distinct !DISubprogram(name: "$fundef_34", linkageName: "$fundef_34", scope: !106, file: !106, line: 1, type: !4, scopeLine: 1, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!106 = !DIFile(filename: "Prelude", directory: ".") +!107 = !DILocalVariable(name: "l", scope: !105, file: !106, line: 1, type: !12) +!108 = !DILocation(line: 1, column: 22, scope: !105) +!109 = !DILocalVariable(name: "$retval_35", scope: !105, file: !106, line: 1, type: !68) +!110 = !DILocation(line: 1, column: 37, scope: !105) +!111 = !DILocalVariable(name: "res", scope: !112, file: !106, line: 1, type: !68) +!112 = distinct !DILexicalBlock(scope: !113, file: !106, line: 1, column: 52) +!113 = distinct !DILexicalBlock(scope: !105, file: !106, line: 1, column: 37) +!114 = !DILocation(line: 1, column: 68, scope: !112) +!115 = !DILocation(line: 1, column: 74, scope: !112) +!116 = !DILocalVariable(name: "$f_7", scope: !112, file: !106, line: 1, type: !68) +!117 = !DILocation(line: 1, column: 83, scope: !112) +!118 = !DILocalVariable(name: "$g_9", scope: !112, file: !106, line: 1, type: !68) +!119 = !DILocation(line: 1, column: 100, scope: !120) +!120 = distinct !DILexicalBlock(scope: !113, file: !106, line: 1, column: 93) +!121 = distinct !DISubprogram(name: "$fundef_32", linkageName: "$fundef_32", scope: !106, file: !106, line: 1, type: !4, scopeLine: 1, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!122 = !DILocalVariable(name: "z", scope: !121, file: !106, line: 1, type: !68) +!123 = !DILocation(line: 1, column: 6, scope: !121) +!124 = !DILocation(line: 1, column: 37, scope: !121) +!125 = distinct !DISubprogram(name: "$fundef_30", linkageName: "$fundef_30", scope: !106, file: !106, line: 1, type: !4, scopeLine: 1, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!126 = !DILocation(line: 1, column: 17, scope: !125) +!127 = distinct !DISubprogram(name: "$fundef_28", linkageName: "$fundef_28", scope: !106, file: !106, line: 1, type: !4, scopeLine: 1, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!128 = !DILocation(line: 1, column: 17, scope: !127) +!129 = distinct !DISubprogram(name: "$fundef_26", linkageName: "$fundef_26", scope: !106, file: !106, line: 1, type: !4, scopeLine: 1, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!130 = !DILocation(line: 1, column: 17, scope: !129) +!131 = distinct !DISubprogram(name: "$fundef_24", linkageName: "$fundef_24", scope: !106, file: !106, line: 1, type: !4, scopeLine: 1, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!132 = !DILocalVariable(name: "l", scope: !131, file: !106, line: 1, type: !29) +!133 = !DILocation(line: 1, column: 22, scope: !131) +!134 = !DILocalVariable(name: "$retval_25", scope: !131, file: !106, line: 1, type: !68) +!135 = !DILocation(line: 1, column: 37, scope: !131) +!136 = !DILocalVariable(name: "res", scope: !137, file: !106, line: 1, type: !68) +!137 = distinct !DILexicalBlock(scope: !138, file: !106, line: 1, column: 52) +!138 = distinct !DILexicalBlock(scope: !131, file: !106, line: 1, column: 37) +!139 = !DILocation(line: 1, column: 68, scope: !137) +!140 = !DILocation(line: 1, column: 74, scope: !137) +!141 = !DILocalVariable(name: "$f_7", scope: !137, file: !106, line: 1, type: !68) +!142 = !DILocation(line: 1, column: 83, scope: !137) +!143 = !DILocalVariable(name: "$g_9", scope: !137, file: !106, line: 1, type: !68) +!144 = !DILocation(line: 1, column: 100, scope: !145) +!145 = distinct !DILexicalBlock(scope: !138, file: !106, line: 1, column: 93) +!146 = distinct !DISubprogram(name: "$fundef_22", linkageName: "$fundef_22", scope: !106, file: !106, line: 1, type: !4, scopeLine: 1, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!147 = !DILocalVariable(name: "z", scope: !146, file: !106, line: 1, type: !68) +!148 = !DILocation(line: 1, column: 6, scope: !146) +!149 = !DILocation(line: 1, column: 37, scope: !146) +!150 = distinct !DISubprogram(name: "$fundef_20", linkageName: "$fundef_20", scope: !106, file: !106, line: 1, type: !4, scopeLine: 1, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!151 = !DILocation(line: 1, column: 17, scope: !150) +!152 = distinct !DISubprogram(name: "$fundef_18", linkageName: "$fundef_18", scope: !106, file: !106, line: 1, type: !4, scopeLine: 1, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!153 = !DILocation(line: 1, column: 17, scope: !152) +!154 = distinct !DISubprogram(name: "$fundef_16", linkageName: "$fundef_16", scope: !106, file: !106, line: 1, type: !4, scopeLine: 1, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!155 = !DILocation(line: 1, column: 17, scope: !154) +!156 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !157, file: !157, type: !4, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!157 = !DIFile(filename: ".", directory: ".") +!158 = !DILocation(line: 0, scope: !156) +!159 = !DILocation(line: 1, column: 17, scope: !156) +!160 = !DILocation(line: 100, column: 3, scope: !156) +!161 = distinct !DISubprogram(name: "_scilla_expr_fun", linkageName: "_scilla_expr_fun", scope: !2, file: !2, line: 2, type: !4, scopeLine: 2, spFlags: DISPFlagDefinition, unit: !1, retainedNodes: !7) +!162 = !DILocalVariable(name: "$expr_48", scope: !161, file: !2, line: 2, type: !68) +!163 = !DILocation(line: 2, column: 3, scope: !161) +!164 = !DILocation(line: 9, column: 3, scope: !161) +!165 = !DILocalVariable(name: "some_bool", scope: !161, file: !2, line: 16, type: !166) +!166 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "Bool", baseType: !167, size: 8, align: 8, dwarfAddressSpace: 0) +!167 = !DIBasicType(name: "Bool", size: 8) +!168 = !DILocation(line: 16, column: 5, scope: !161) +!169 = !DILocation(line: 16, column: 17, scope: !161) +!170 = !DILocation(line: 18, column: 3, scope: !161) +!171 = !DILocation(line: 19, column: 13, scope: !172) +!172 = distinct !DILexicalBlock(scope: !173, file: !2, line: 19, column: 5) +!173 = distinct !DILexicalBlock(scope: !161, file: !2, line: 18, column: 3) +!174 = !DILocation(line: 20, column: 14, scope: !175) +!175 = distinct !DILexicalBlock(scope: !173, file: !2, line: 20, column: 5) +!176 = !DILocalVariable(name: "some_bool2", scope: !161, file: !2, line: 24, type: !166) +!177 = !DILocation(line: 24, column: 5, scope: !161) +!178 = !DILocation(line: 24, column: 18, scope: !161) +!179 = !DILocation(line: 25, column: 1, scope: !161) +!180 = !DILocation(line: 27, column: 13, scope: !181) +!181 = distinct !DILexicalBlock(scope: !182, file: !2, line: 26, column: 3) +!182 = distinct !DILexicalBlock(scope: !161, file: !2, line: 25, column: 1) +!183 = !DILocation(line: 27, column: 12, scope: !181) +!184 = !DILocation(line: 28, column: 14, scope: !181) +!185 = !DILocation(line: 28, column: 13, scope: !181) +!186 = !DILocalVariable(name: "one", scope: !181, file: !2, line: 29, type: !26) +!187 = !DILocation(line: 29, column: 7, scope: !181) +!188 = !DILocation(line: 29, column: 13, scope: !181) +!189 = !DILocalVariable(name: "f1l", scope: !181, file: !2, line: 30, type: !29) +!190 = !DILocation(line: 30, column: 7, scope: !181) +!191 = !DILocalVariable(name: "$f1_12", scope: !181, file: !2, line: 30, type: !29) +!192 = !DILocation(line: 30, column: 13, scope: !181) +!193 = !DILocalVariable(name: "$len_13", scope: !181, file: !2, line: 31, type: !68) +!194 = !DILocation(line: 31, column: 3, scope: !181) +!195 = !DILocation(line: 33, column: 13, scope: !196) +!196 = distinct !DILexicalBlock(scope: !182, file: !2, line: 32, column: 3) +!197 = !DILocation(line: 33, column: 12, scope: !196) +!198 = !DILocation(line: 34, column: 14, scope: !196) +!199 = !DILocation(line: 34, column: 13, scope: !196) +!200 = !DILocalVariable(name: "one", scope: !196, file: !2, line: 35, type: !9) +!201 = !DILocation(line: 35, column: 7, scope: !196) +!202 = !DILocation(line: 35, column: 13, scope: !196) +!203 = !DILocalVariable(name: "f2l", scope: !196, file: !2, line: 36, type: !12) +!204 = !DILocation(line: 36, column: 7, scope: !196) +!205 = !DILocalVariable(name: "$f2_14", scope: !196, file: !2, line: 36, type: !12) +!206 = !DILocation(line: 36, column: 13, scope: !196) +!207 = !DILocalVariable(name: "$len_15", scope: !196, file: !2, line: 37, type: !68) +!208 = !DILocation(line: 37, column: 3, scope: !196) diff --git a/testsuite/expr/multi-type-inst.ll b/testsuite/expr/multi-type-inst.ll index 73fa64c4..d9be3d04 100644 --- a/testsuite/expr/multi-type-inst.ll +++ b/testsuite/expr/multi-type-inst.ll @@ -39,7 +39,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-pc-linux-gnu" +target triple = "x86_64-unknown-linux-gnu" %"$TyDescrTy_PrimTyp_65" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/testsuite/expr/name_clash.dbg.ll b/testsuite/expr/name_clash.dbg.ll index e51d68be..a813537a 100644 --- a/testsuite/expr/name_clash.dbg.ll +++ b/testsuite/expr/name_clash.dbg.ll @@ -7,7 +7,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-pc-linux-gnu" +target triple = "x86_64-unknown-linux-gnu" %"$TyDescrTy_PrimTyp_8" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } @@ -62,7 +62,7 @@ target triple = "x86_64-pc-linux-gnu" @_transition_parameters = constant [0 x %"$TransDescr_120"] zeroinitializer @_transition_parameters_length = constant i32 0 -define void @_init_libs() !dbg !4 { +define void @_init_libs() !dbg !3 { entry: %"$gasrem_45" = load i64, i64* @_gasrem, align 8 %"$gascmp_46" = icmp ugt i64 5, %"$gasrem_45" @@ -144,6 +144,7 @@ declare void @_out_of_gas() define internal %Uint32 @_scilla_expr_fun(i8* %0) !dbg !10 { entry: %"$expr_7" = alloca %Uint32, align 8 + call void @llvm.dbg.declare(metadata %Uint32* %"$expr_7", metadata !11, metadata !DIExpression()), !dbg !13 %"$gasrem_75" = load i64, i64* @_gasrem, align 8 %"$gascmp_76" = icmp ugt i64 1, %"$gasrem_75" br i1 %"$gascmp_76", label %"$out_of_gas_77", label %"$have_gas_78" @@ -156,6 +157,7 @@ entry: %"$consume_79" = sub i64 %"$gasrem_75", 1 store i64 %"$consume_79", i64* @_gasrem, align 8 %a = alloca %Uint32, align 8 + call void @llvm.dbg.declare(metadata %Uint32* %a, metadata !14, metadata !DIExpression()), !dbg !15 %"$gasrem_80" = load i64, i64* @_gasrem, align 8 %"$gascmp_81" = icmp ugt i64 1, %"$gasrem_80" br i1 %"$gascmp_81", label %"$out_of_gas_82", label %"$have_gas_83" @@ -167,7 +169,7 @@ entry: "$have_gas_83": ; preds = %"$out_of_gas_82", %"$have_gas_78" %"$consume_84" = sub i64 %"$gasrem_80", 1 store i64 %"$consume_84", i64* @_gasrem, align 8 - store %Uint32 { i32 1 }, %Uint32* %a, align 4, !dbg !11 + store %Uint32 { i32 1 }, %Uint32* %a, align 4, !dbg !13 %"$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" @@ -180,6 +182,7 @@ entry: %"$consume_89" = sub i64 %"$gasrem_85", 1 store i64 %"$consume_89", i64* @_gasrem, align 8 %x = alloca %Uint32, align 8 + call void @llvm.dbg.declare(metadata %Uint32* %x, metadata !16, metadata !DIExpression()), !dbg !17 %"$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" @@ -192,6 +195,7 @@ entry: %"$consume_94" = sub i64 %"$gasrem_90", 1 store i64 %"$consume_94", i64* @_gasrem, align 8 %"$a_6" = alloca %Uint32, align 8 + call void @llvm.dbg.declare(metadata %Uint32* %"$a_6", metadata !18, metadata !DIExpression()), !dbg !19 %"$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" @@ -203,7 +207,7 @@ entry: "$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 %Uint32 { i32 2 }, %Uint32* %"$a_6", align 4, !dbg !12 + store %Uint32 { i32 2 }, %Uint32* %"$a_6", align 4, !dbg !20 %"$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" @@ -216,7 +220,7 @@ entry: %"$consume_104" = sub i64 %"$gasrem_100", 1 store i64 %"$consume_104", i64* @_gasrem, align 8 %"$$a_6_105" = load %Uint32, %Uint32* %"$a_6", align 4 - store %Uint32 %"$$a_6_105", %Uint32* %x, align 4, !dbg !13 + store %Uint32 %"$$a_6_105", %Uint32* %x, align 4, !dbg !21 %"$gasrem_106" = load i64, i64* @_gasrem, align 8 %"$gascmp_107" = icmp ugt i64 4, %"$gasrem_106" br i1 %"$gascmp_107", label %"$out_of_gas_108", label %"$have_gas_109" @@ -230,12 +234,15 @@ entry: store i64 %"$consume_110", i64* @_gasrem, align 8 %"$a_111" = load %Uint32, %Uint32* %a, align 4 %"$x_112" = load %Uint32, %Uint32* %x, align 4 - %"$add_call_113" = call %Uint32 @_add_Uint32(%Uint32 %"$a_111", %Uint32 %"$x_112"), !dbg !14 - store %Uint32 %"$add_call_113", %Uint32* %"$expr_7", align 4, !dbg !14 + %"$add_call_113" = call %Uint32 @_add_Uint32(%Uint32 %"$a_111", %Uint32 %"$x_112"), !dbg !22 + store %Uint32 %"$add_call_113", %Uint32* %"$expr_7", align 4, !dbg !22 %"$$expr_7_114" = load %Uint32, %Uint32* %"$expr_7", align 4 ret %Uint32 %"$$expr_7_114" } +; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn +declare void @llvm.dbg.declare(metadata, metadata, metadata) #0 + declare %Uint32 @_add_Uint32(%Uint32, %Uint32) declare void @_print_scilla_val(i8*, %_TyDescrTy_Typ*, i8*) @@ -251,21 +258,31 @@ entry: ret void } +attributes #0 = { nocallback nofree nosync nounwind readnone speculatable willreturn } + !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) +!1 = distinct !DICompileUnit(language: DW_LANG_C89, file: !2, producer: "Scilla Compiler", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false) !2 = !DIFile(filename: "name_clash.scilexp", directory: "codegen/expr") -!3 = !{} -!4 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !5, file: !5, type: !6, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!5 = !DIFile(filename: ".", directory: ".") -!6 = !DISubroutineType(types: !7) -!7 = !{!8} -!8 = !DIBasicType(tag: DW_TAG_unspecified_type, name: "void") -!9 = !DILocation(line: 0, scope: !4) -!10 = distinct !DISubprogram(name: "_scilla_expr_fun", linkageName: "_scilla_expr_fun", scope: !2, file: !2, line: 1, type: !6, scopeLine: 1, spFlags: DISPFlagDefinition, unit: !1, retainedNodes: !3) -!11 = !DILocation(line: 1, column: 9, scope: !10) -!12 = !DILocation(line: 3, column: 11, scope: !10) -!13 = !DILocation(line: 4, column: 3, scope: !10) -!14 = !DILocation(line: 6, column: 1, scope: !10) +!3 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !4, file: !4, type: !5, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!4 = !DIFile(filename: ".", directory: ".") +!5 = !DISubroutineType(types: !6) +!6 = !{!7} +!7 = !DIBasicType(tag: DW_TAG_unspecified_type, name: "void") +!8 = !{} +!9 = !DILocation(line: 0, scope: !3) +!10 = distinct !DISubprogram(name: "_scilla_expr_fun", linkageName: "_scilla_expr_fun", scope: !2, file: !2, line: 1, type: !5, scopeLine: 1, spFlags: DISPFlagDefinition, unit: !1, retainedNodes: !8) +!11 = !DILocalVariable(name: "$expr_7", scope: !10, file: !2, line: 1, type: !12) +!12 = !DIBasicType(name: "Uint32", size: 4) +!13 = !DILocation(line: 1, column: 9, scope: !10) +!14 = !DILocalVariable(name: "a", scope: !10, file: !2, line: 1, type: !12) +!15 = !DILocation(line: 1, column: 5, scope: !10) +!16 = !DILocalVariable(name: "x", scope: !10, file: !2, line: 2, type: !12) +!17 = !DILocation(line: 2, column: 5, scope: !10) +!18 = !DILocalVariable(name: "$a_6", scope: !10, file: !2, line: 3, type: !12) +!19 = !DILocation(line: 3, column: 7, scope: !10) +!20 = !DILocation(line: 3, column: 11, scope: !10) +!21 = !DILocation(line: 4, column: 3, scope: !10) +!22 = !DILocation(line: 6, column: 1, scope: !10) diff --git a/testsuite/expr/name_clash.ll b/testsuite/expr/name_clash.ll index dcb5637e..495b38c3 100644 --- a/testsuite/expr/name_clash.ll +++ b/testsuite/expr/name_clash.ll @@ -7,7 +7,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-pc-linux-gnu" +target triple = "x86_64-unknown-linux-gnu" %"$TyDescrTy_PrimTyp_8" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/testsuite/expr/name_clash1.dbg.ll b/testsuite/expr/name_clash1.dbg.ll index 04a37706..2d9bae06 100644 --- a/testsuite/expr/name_clash1.dbg.ll +++ b/testsuite/expr/name_clash1.dbg.ll @@ -7,7 +7,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-pc-linux-gnu" +target triple = "x86_64-unknown-linux-gnu" %"$TyDescrTy_PrimTyp_8" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } @@ -83,7 +83,7 @@ target triple = "x86_64-pc-linux-gnu" @_transition_parameters = constant [0 x %"$TransDescr_136"] zeroinitializer @_transition_parameters_length = constant i32 0 -define void @_init_libs() !dbg !4 { +define void @_init_libs() !dbg !3 { entry: %"$gasrem_58" = load i64, i64* @_gasrem, align 8 %"$gascmp_59" = icmp ugt i64 5, %"$gasrem_58" @@ -165,6 +165,7 @@ declare void @_out_of_gas() define internal %TName_Option_Uint64* @_scilla_expr_fun(i8* %0) !dbg !10 { entry: %"$expr_7" = alloca %TName_Option_Uint64*, align 8 + call void @llvm.dbg.declare(metadata %TName_Option_Uint64** %"$expr_7", metadata !11, metadata !DIExpression()), !dbg !14 %"$gasrem_88" = load i64, i64* @_gasrem, align 8 %"$gascmp_89" = icmp ugt i64 1, %"$gasrem_88" br i1 %"$gascmp_89", label %"$out_of_gas_90", label %"$have_gas_91" @@ -177,6 +178,7 @@ entry: %"$consume_92" = sub i64 %"$gasrem_88", 1 store i64 %"$consume_92", i64* @_gasrem, align 8 %"$a_6" = alloca %TName_Option_Uint64*, align 8 + call void @llvm.dbg.declare(metadata %TName_Option_Uint64** %"$a_6", metadata !15, metadata !DIExpression()), !dbg !16 %"$gasrem_93" = load i64, i64* @_gasrem, align 8 %"$gascmp_94" = icmp ugt i64 1, %"$gasrem_93" br i1 %"$gascmp_94", label %"$out_of_gas_95", label %"$have_gas_96" @@ -189,6 +191,7 @@ entry: %"$consume_97" = sub i64 %"$gasrem_93", 1 store i64 %"$consume_97", i64* @_gasrem, align 8 %a = alloca %Uint32, align 8 + call void @llvm.dbg.declare(metadata %Uint32* %a, metadata !17, metadata !DIExpression()), !dbg !19 %"$gasrem_98" = load i64, i64* @_gasrem, align 8 %"$gascmp_99" = icmp ugt i64 1, %"$gasrem_98" br i1 %"$gascmp_99", label %"$out_of_gas_100", label %"$have_gas_101" @@ -200,7 +203,7 @@ entry: "$have_gas_101": ; preds = %"$out_of_gas_100", %"$have_gas_96" %"$consume_102" = sub i64 %"$gasrem_98", 1 store i64 %"$consume_102", i64* @_gasrem, align 8 - store %Uint32 { i32 1 }, %Uint32* %a, align 4, !dbg !11 + store %Uint32 { i32 1 }, %Uint32* %a, align 4, !dbg !20 %"$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" @@ -213,6 +216,7 @@ entry: %"$consume_107" = sub i64 %"$gasrem_103", 1 store i64 %"$consume_107", i64* @_gasrem, align 8 %b = alloca %TName_Option_Uint64*, align 8 + call void @llvm.dbg.declare(metadata %TName_Option_Uint64** %b, metadata !21, metadata !DIExpression()), !dbg !22 %"$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" @@ -229,9 +233,9 @@ entry: %"$a_115" = load %Uint32, %Uint32* %a, align 4 store %Uint32 %"$a_115", %Uint32* %"$to_uint64_a_114", align 4 %"$$to_uint64_a_114_116" = bitcast %Uint32* %"$to_uint64_a_114" to i8* - %"$to_uint64_call_117" = call i8* @_to_uint64(i8* %"$execptr_load_113", %_TyDescrTy_Typ* @"$TyDescr_Uint32_12", i8* %"$$to_uint64_a_114_116"), !dbg !12 + %"$to_uint64_call_117" = call i8* @_to_uint64(i8* %"$execptr_load_113", %_TyDescrTy_Typ* @"$TyDescr_Uint32_12", i8* %"$$to_uint64_a_114_116"), !dbg !23 %"$to_uint64_118" = bitcast i8* %"$to_uint64_call_117" to %TName_Option_Uint64* - store %TName_Option_Uint64* %"$to_uint64_118", %TName_Option_Uint64** %b, align 8, !dbg !12 + store %TName_Option_Uint64* %"$to_uint64_118", %TName_Option_Uint64** %b, align 8, !dbg !23 %"$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" @@ -244,7 +248,7 @@ entry: %"$consume_123" = sub i64 %"$gasrem_119", 1 store i64 %"$consume_123", i64* @_gasrem, align 8 %"$b_124" = load %TName_Option_Uint64*, %TName_Option_Uint64** %b, align 8 - store %TName_Option_Uint64* %"$b_124", %TName_Option_Uint64** %"$a_6", align 8, !dbg !13 + store %TName_Option_Uint64* %"$b_124", %TName_Option_Uint64** %"$a_6", align 8, !dbg !24 %"$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" @@ -257,11 +261,14 @@ entry: %"$consume_129" = sub i64 %"$gasrem_125", 1 store i64 %"$consume_129", i64* @_gasrem, align 8 %"$$a_6_130" = load %TName_Option_Uint64*, %TName_Option_Uint64** %"$a_6", align 8 - store %TName_Option_Uint64* %"$$a_6_130", %TName_Option_Uint64** %"$expr_7", align 8, !dbg !14 + store %TName_Option_Uint64* %"$$a_6_130", %TName_Option_Uint64** %"$expr_7", align 8, !dbg !25 %"$$expr_7_131" = load %TName_Option_Uint64*, %TName_Option_Uint64** %"$expr_7", align 8 ret %TName_Option_Uint64* %"$$expr_7_131" } +; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn +declare void @llvm.dbg.declare(metadata, metadata, metadata) #0 + declare i8* @_to_uint64(i8*, %_TyDescrTy_Typ*, i8*) declare void @_print_scilla_val(i8*, %_TyDescrTy_Typ*, i8*) @@ -275,21 +282,34 @@ entry: ret void } +attributes #0 = { nocallback nofree nosync nounwind readnone speculatable willreturn } + !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) +!1 = distinct !DICompileUnit(language: DW_LANG_C89, file: !2, producer: "Scilla Compiler", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false) !2 = !DIFile(filename: "name_clash1.scilexp", directory: "codegen/expr") -!3 = !{} -!4 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !5, file: !5, type: !6, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!5 = !DIFile(filename: ".", directory: ".") -!6 = !DISubroutineType(types: !7) -!7 = !{!8} -!8 = !DIBasicType(tag: DW_TAG_unspecified_type, name: "void") -!9 = !DILocation(line: 0, scope: !4) -!10 = distinct !DISubprogram(name: "_scilla_expr_fun", linkageName: "_scilla_expr_fun", scope: !2, file: !2, line: 2, type: !6, scopeLine: 2, spFlags: DISPFlagDefinition, unit: !1, retainedNodes: !3) -!11 = !DILocation(line: 2, column: 11, scope: !10) -!12 = !DILocation(line: 3, column: 11, scope: !10) -!13 = !DILocation(line: 4, column: 3, scope: !10) -!14 = !DILocation(line: 6, column: 1, scope: !10) +!3 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !4, file: !4, type: !5, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!4 = !DIFile(filename: ".", directory: ".") +!5 = !DISubroutineType(types: !6) +!6 = !{!7} +!7 = !DIBasicType(tag: DW_TAG_unspecified_type, name: "void") +!8 = !{} +!9 = !DILocation(line: 0, scope: !3) +!10 = 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: !8) +!11 = !DILocalVariable(name: "$expr_7", scope: !10, file: !2, line: 2, type: !12) +!12 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "Option (Uint64)", baseType: !13, size: 8, align: 8, dwarfAddressSpace: 0) +!13 = !DIBasicType(name: "Option (Uint64)", size: 8) +!14 = !DILocation(line: 2, column: 3, scope: !10) +!15 = !DILocalVariable(name: "$a_6", scope: !10, file: !2, line: 1, type: !12) +!16 = !DILocation(line: 1, column: 5, scope: !10) +!17 = !DILocalVariable(name: "a", scope: !10, file: !2, line: 2, type: !18) +!18 = !DIBasicType(name: "Uint32", size: 4) +!19 = !DILocation(line: 2, column: 7, scope: !10) +!20 = !DILocation(line: 2, column: 11, scope: !10) +!21 = !DILocalVariable(name: "b", scope: !10, file: !2, line: 3, type: !12) +!22 = !DILocation(line: 3, column: 7, scope: !10) +!23 = !DILocation(line: 3, column: 11, scope: !10) +!24 = !DILocation(line: 4, column: 3, scope: !10) +!25 = !DILocation(line: 6, column: 1, scope: !10) diff --git a/testsuite/expr/name_clash1.ll b/testsuite/expr/name_clash1.ll index a58b72bc..c354a49d 100644 --- a/testsuite/expr/name_clash1.ll +++ b/testsuite/expr/name_clash1.ll @@ -7,7 +7,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-pc-linux-gnu" +target triple = "x86_64-unknown-linux-gnu" %"$TyDescrTy_PrimTyp_8" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/testsuite/expr/name_clash2.dbg.ll b/testsuite/expr/name_clash2.dbg.ll index 305f7789..6beceb96 100644 --- a/testsuite/expr/name_clash2.dbg.ll +++ b/testsuite/expr/name_clash2.dbg.ll @@ -7,14 +7,14 @@ ; 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-pc-linux-gnu" +target triple = "x86_64-unknown-linux-gnu" %"$TyDescrTy_PrimTyp_11" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } %Int32 = type { i32 } -%"$ParamDescr_137" = type { %ParamDescrString, %_TyDescrTy_Typ* } +%"$ParamDescr_138" = type { %ParamDescrString, %_TyDescrTy_Typ* } %ParamDescrString = type { i8*, i32 } -%"$TransDescr_138" = type { %ParamDescrString, i32, %"$ParamDescr_137"* } +%"$TransDescr_139" = type { %ParamDescrString, i32, %"$ParamDescr_138"* } %"$$fundef_9_env_48" = type {} %Uint32 = type { i32 } @@ -58,14 +58,18 @@ target triple = "x86_64-pc-linux-gnu" @"$_gas_charge_accPairUtils_4" = global %Int32 zeroinitializer @_tydescr_table = constant [15 x %_TyDescrTy_Typ*] [%_TyDescrTy_Typ* @"$TyDescr_Event_35", %_TyDescrTy_Typ* @"$TyDescr_Int64_17", %_TyDescrTy_Typ* @"$TyDescr_Uint256_27", %_TyDescrTy_Typ* @"$TyDescr_Uint32_15", %_TyDescrTy_Typ* @"$TyDescr_Uint64_19", %_TyDescrTy_Typ* @"$TyDescr_Bnum_31", %_TyDescrTy_Typ* @"$TyDescr_Uint128_23", %_TyDescrTy_Typ* @"$TyDescr_Exception_37", %_TyDescrTy_Typ* @"$TyDescr_String_29", %_TyDescrTy_Typ* @"$TyDescr_Int256_25", %_TyDescrTy_Typ* @"$TyDescr_Int128_21", %_TyDescrTy_Typ* @"$TyDescr_Bystr_41", %_TyDescrTy_Typ* @"$TyDescr_ReplicateContr_39", %_TyDescrTy_Typ* @"$TyDescr_Message_33", %_TyDescrTy_Typ* @"$TyDescr_Int32_13"] @_tydescr_table_length = constant i32 15 -@_contract_parameters = constant [0 x %"$ParamDescr_137"] zeroinitializer +@_contract_parameters = constant [0 x %"$ParamDescr_138"] zeroinitializer @_contract_parameters_length = constant i32 0 -@_transition_parameters = constant [0 x %"$TransDescr_138"] zeroinitializer +@_transition_parameters = constant [0 x %"$TransDescr_139"] zeroinitializer @_transition_parameters_length = constant i32 0 -define internal %Uint32 @"$fundef_9"(%"$$fundef_9_env_48"* %0, %Uint32 %1) !dbg !4 { +define internal %Uint32 @"$fundef_9"(%"$$fundef_9_env_48"* %0, %Uint32 %1) !dbg !3 { entry: + %"$$a_6_55" = alloca %Uint32, align 8 + store %Uint32 %1, %Uint32* %"$$a_6_55", align 4 + call void @llvm.dbg.declare(metadata %Uint32* %"$$a_6_55", metadata !8, metadata !DIExpression()), !dbg !10 %"$retval_10" = alloca %Uint32, align 8 + call void @llvm.dbg.declare(metadata %Uint32* %"$retval_10", metadata !11, metadata !DIExpression()), !dbg !12 %"$gasrem_49" = load i64, i64* @_gasrem, align 8 %"$gascmp_50" = icmp ugt i64 1, %"$gasrem_49" br i1 %"$gascmp_50", label %"$out_of_gas_51", label %"$have_gas_52" @@ -77,190 +81,197 @@ entry: "$have_gas_52": ; preds = %"$out_of_gas_51", %entry %"$consume_53" = sub i64 %"$gasrem_49", 1 store i64 %"$consume_53", i64* @_gasrem, align 8 - store %Uint32 %1, %Uint32* %"$retval_10", align 4, !dbg !8 + store %Uint32 %1, %Uint32* %"$retval_10", align 4, !dbg !12 %"$$retval_10_54" = load %Uint32, %Uint32* %"$retval_10", align 4 ret %Uint32 %"$$retval_10_54" } +; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn +declare void @llvm.dbg.declare(metadata, metadata, metadata) #0 + declare void @_out_of_gas() -define void @_init_libs() !dbg !9 { +define void @_init_libs() !dbg !13 { entry: - %"$gasrem_55" = load i64, i64* @_gasrem, align 8 - %"$gascmp_56" = icmp ugt i64 5, %"$gasrem_55" - br i1 %"$gascmp_56", label %"$out_of_gas_57", label %"$have_gas_58" + %"$gasrem_56" = load i64, i64* @_gasrem, align 8 + %"$gascmp_57" = icmp ugt i64 5, %"$gasrem_56" + br i1 %"$gascmp_57", label %"$out_of_gas_58", label %"$have_gas_59" -"$out_of_gas_57": ; preds = %entry +"$out_of_gas_58": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_58" + br label %"$have_gas_59" -"$have_gas_58": ; preds = %"$out_of_gas_57", %entry - %"$consume_59" = sub i64 %"$gasrem_55", 5 - store i64 %"$consume_59", i64* @_gasrem, align 8 - store %Int32 { i32 5 }, %Int32* @"$_gas_charge_accrec_lib_5", align 4, !dbg !11 - %"$gasrem_60" = load i64, i64* @_gasrem, align 8 - %"$gascmp_61" = icmp ugt i64 8, %"$gasrem_60" - br i1 %"$gascmp_61", label %"$out_of_gas_62", label %"$have_gas_63" +"$have_gas_59": ; preds = %"$out_of_gas_58", %entry + %"$consume_60" = sub i64 %"$gasrem_56", 5 + store i64 %"$consume_60", i64* @_gasrem, align 8 + store %Int32 { i32 5 }, %Int32* @"$_gas_charge_accrec_lib_5", align 4, !dbg !15 + %"$gasrem_61" = load i64, i64* @_gasrem, align 8 + %"$gascmp_62" = icmp ugt i64 8, %"$gasrem_61" + br i1 %"$gascmp_62", label %"$out_of_gas_63", label %"$have_gas_64" -"$out_of_gas_62": ; preds = %"$have_gas_58" +"$out_of_gas_63": ; preds = %"$have_gas_59" call void @_out_of_gas() - br label %"$have_gas_63" + br label %"$have_gas_64" -"$have_gas_63": ; preds = %"$out_of_gas_62", %"$have_gas_58" - %"$consume_64" = sub i64 %"$gasrem_60", 8 - store i64 %"$consume_64", i64* @_gasrem, align 8 - store %Int32 { i32 8 }, %Int32* @"$_gas_charge_accBoolUtils_0", align 4, !dbg !11 - %"$gasrem_65" = load i64, i64* @_gasrem, align 8 - %"$gascmp_66" = icmp ugt i64 196, %"$gasrem_65" - br i1 %"$gascmp_66", label %"$out_of_gas_67", label %"$have_gas_68" +"$have_gas_64": ; preds = %"$out_of_gas_63", %"$have_gas_59" + %"$consume_65" = sub i64 %"$gasrem_61", 8 + store i64 %"$consume_65", i64* @_gasrem, align 8 + store %Int32 { i32 8 }, %Int32* @"$_gas_charge_accBoolUtils_0", align 4, !dbg !15 + %"$gasrem_66" = load i64, i64* @_gasrem, align 8 + %"$gascmp_67" = icmp ugt i64 196, %"$gasrem_66" + br i1 %"$gascmp_67", label %"$out_of_gas_68", label %"$have_gas_69" -"$out_of_gas_67": ; preds = %"$have_gas_63" +"$out_of_gas_68": ; preds = %"$have_gas_64" call void @_out_of_gas() - br label %"$have_gas_68" + br label %"$have_gas_69" -"$have_gas_68": ; preds = %"$out_of_gas_67", %"$have_gas_63" - %"$consume_69" = sub i64 %"$gasrem_65", 196 - store i64 %"$consume_69", i64* @_gasrem, align 8 - store %Int32 { i32 196 }, %Int32* @"$_gas_charge_accIntUtils_1", align 4, !dbg !11 - %"$gasrem_70" = load i64, i64* @_gasrem, align 8 - %"$gascmp_71" = icmp ugt i64 20, %"$gasrem_70" - br i1 %"$gascmp_71", label %"$out_of_gas_72", label %"$have_gas_73" +"$have_gas_69": ; preds = %"$out_of_gas_68", %"$have_gas_64" + %"$consume_70" = sub i64 %"$gasrem_66", 196 + store i64 %"$consume_70", i64* @_gasrem, align 8 + store %Int32 { i32 196 }, %Int32* @"$_gas_charge_accIntUtils_1", align 4, !dbg !15 + %"$gasrem_71" = load i64, i64* @_gasrem, align 8 + %"$gascmp_72" = icmp ugt i64 20, %"$gasrem_71" + br i1 %"$gascmp_72", label %"$out_of_gas_73", label %"$have_gas_74" -"$out_of_gas_72": ; preds = %"$have_gas_68" +"$out_of_gas_73": ; preds = %"$have_gas_69" call void @_out_of_gas() - br label %"$have_gas_73" + br label %"$have_gas_74" -"$have_gas_73": ; preds = %"$out_of_gas_72", %"$have_gas_68" - %"$consume_74" = sub i64 %"$gasrem_70", 20 - store i64 %"$consume_74", i64* @_gasrem, align 8 - store %Int32 { i32 20 }, %Int32* @"$_gas_charge_accListUtils_2", align 4, !dbg !11 - %"$gasrem_75" = load i64, i64* @_gasrem, align 8 - %"$gascmp_76" = icmp ugt i64 12, %"$gasrem_75" - br i1 %"$gascmp_76", label %"$out_of_gas_77", label %"$have_gas_78" +"$have_gas_74": ; preds = %"$out_of_gas_73", %"$have_gas_69" + %"$consume_75" = sub i64 %"$gasrem_71", 20 + store i64 %"$consume_75", i64* @_gasrem, align 8 + store %Int32 { i32 20 }, %Int32* @"$_gas_charge_accListUtils_2", align 4, !dbg !15 + %"$gasrem_76" = load i64, i64* @_gasrem, align 8 + %"$gascmp_77" = icmp ugt i64 12, %"$gasrem_76" + br i1 %"$gascmp_77", label %"$out_of_gas_78", label %"$have_gas_79" -"$out_of_gas_77": ; preds = %"$have_gas_73" +"$out_of_gas_78": ; preds = %"$have_gas_74" call void @_out_of_gas() - br label %"$have_gas_78" + br label %"$have_gas_79" -"$have_gas_78": ; preds = %"$out_of_gas_77", %"$have_gas_73" - %"$consume_79" = sub i64 %"$gasrem_75", 12 - store i64 %"$consume_79", i64* @_gasrem, align 8 - store %Int32 { i32 12 }, %Int32* @"$_gas_charge_accNatUtils_3", align 4, !dbg !11 - %"$gasrem_80" = load i64, i64* @_gasrem, align 8 - %"$gascmp_81" = icmp ugt i64 2, %"$gasrem_80" - br i1 %"$gascmp_81", label %"$out_of_gas_82", label %"$have_gas_83" +"$have_gas_79": ; preds = %"$out_of_gas_78", %"$have_gas_74" + %"$consume_80" = sub i64 %"$gasrem_76", 12 + store i64 %"$consume_80", i64* @_gasrem, align 8 + store %Int32 { i32 12 }, %Int32* @"$_gas_charge_accNatUtils_3", align 4, !dbg !15 + %"$gasrem_81" = load i64, i64* @_gasrem, align 8 + %"$gascmp_82" = icmp ugt i64 2, %"$gasrem_81" + br i1 %"$gascmp_82", label %"$out_of_gas_83", label %"$have_gas_84" -"$out_of_gas_82": ; preds = %"$have_gas_78" +"$out_of_gas_83": ; preds = %"$have_gas_79" call void @_out_of_gas() - br label %"$have_gas_83" + br label %"$have_gas_84" -"$have_gas_83": ; preds = %"$out_of_gas_82", %"$have_gas_78" - %"$consume_84" = sub i64 %"$gasrem_80", 2 - store i64 %"$consume_84", i64* @_gasrem, align 8 - store %Int32 { i32 2 }, %Int32* @"$_gas_charge_accPairUtils_4", align 4, !dbg !11 +"$have_gas_84": ; preds = %"$out_of_gas_83", %"$have_gas_79" + %"$consume_85" = sub i64 %"$gasrem_81", 2 + store i64 %"$consume_85", i64* @_gasrem, align 8 + store %Int32 { i32 2 }, %Int32* @"$_gas_charge_accPairUtils_4", align 4, !dbg !15 ret void } -define internal %Uint32 @_scilla_expr_fun(i8* %0) !dbg !12 { +define internal %Uint32 @_scilla_expr_fun(i8* %0) !dbg !16 { entry: %"$expr_8" = alloca %Uint32, 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" + call void @llvm.dbg.declare(metadata %Uint32* %"$expr_8", metadata !17, metadata !DIExpression()), !dbg !18 + %"$gasrem_86" = load i64, i64* @_gasrem, align 8 + %"$gascmp_87" = icmp ugt i64 1, %"$gasrem_86" + br i1 %"$gascmp_87", label %"$out_of_gas_88", label %"$have_gas_89" -"$out_of_gas_87": ; preds = %entry +"$out_of_gas_88": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_88" + br label %"$have_gas_89" -"$have_gas_88": ; preds = %"$out_of_gas_87", %entry - %"$consume_89" = sub i64 %"$gasrem_85", 1 - store i64 %"$consume_89", i64* @_gasrem, align 8 +"$have_gas_89": ; preds = %"$out_of_gas_88", %entry + %"$consume_90" = sub i64 %"$gasrem_86", 1 + store i64 %"$consume_90", i64* @_gasrem, align 8 %a = alloca %Uint32, 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" + call void @llvm.dbg.declare(metadata %Uint32* %a, metadata !19, metadata !DIExpression()), !dbg !20 + %"$gasrem_91" = load i64, i64* @_gasrem, align 8 + %"$gascmp_92" = icmp ugt i64 1, %"$gasrem_91" + br i1 %"$gascmp_92", label %"$out_of_gas_93", label %"$have_gas_94" -"$out_of_gas_92": ; preds = %"$have_gas_88" +"$out_of_gas_93": ; preds = %"$have_gas_89" call void @_out_of_gas() - br label %"$have_gas_93" + br label %"$have_gas_94" -"$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 %Uint32 { i32 1 }, %Uint32* %a, align 4, !dbg !13 - %"$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_94": ; preds = %"$out_of_gas_93", %"$have_gas_89" + %"$consume_95" = sub i64 %"$gasrem_91", 1 + store i64 %"$consume_95", i64* @_gasrem, align 8 + store %Uint32 { i32 1 }, %Uint32* %a, align 4, !dbg !18 + %"$gasrem_96" = load i64, i64* @_gasrem, align 8 + %"$gascmp_97" = icmp ugt i64 1, %"$gasrem_96" + br i1 %"$gascmp_97", label %"$out_of_gas_98", label %"$have_gas_99" -"$out_of_gas_97": ; preds = %"$have_gas_93" +"$out_of_gas_98": ; preds = %"$have_gas_94" call void @_out_of_gas() - br label %"$have_gas_98" + br label %"$have_gas_99" -"$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 +"$have_gas_99": ; preds = %"$out_of_gas_98", %"$have_gas_94" + %"$consume_100" = sub i64 %"$gasrem_96", 1 + store i64 %"$consume_100", i64* @_gasrem, align 8 %f = alloca { %Uint32 (i8*, %Uint32)*, i8* }, align 8 - %"$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" + %"$gasrem_101" = load i64, i64* @_gasrem, align 8 + %"$gascmp_102" = icmp ugt i64 1, %"$gasrem_101" + br i1 %"$gascmp_102", label %"$out_of_gas_103", label %"$have_gas_104" -"$out_of_gas_102": ; preds = %"$have_gas_98" +"$out_of_gas_103": ; preds = %"$have_gas_99" call void @_out_of_gas() - br label %"$have_gas_103" + br label %"$have_gas_104" -"$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 - store { %Uint32 (i8*, %Uint32)*, i8* } { %Uint32 (i8*, %Uint32)* bitcast (%Uint32 (%"$$fundef_9_env_48"*, %Uint32)* @"$fundef_9" to %Uint32 (i8*, %Uint32)*), i8* null }, { %Uint32 (i8*, %Uint32)*, i8* }* %f, align 8, !dbg !14 - %"$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" +"$have_gas_104": ; preds = %"$out_of_gas_103", %"$have_gas_99" + %"$consume_105" = sub i64 %"$gasrem_101", 1 + store i64 %"$consume_105", i64* @_gasrem, align 8 + store { %Uint32 (i8*, %Uint32)*, i8* } { %Uint32 (i8*, %Uint32)* bitcast (%Uint32 (%"$$fundef_9_env_48"*, %Uint32)* @"$fundef_9" to %Uint32 (i8*, %Uint32)*), i8* null }, { %Uint32 (i8*, %Uint32)*, i8* }* %f, align 8, !dbg !21 + %"$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_110": ; preds = %"$have_gas_103" +"$out_of_gas_111": ; preds = %"$have_gas_104" call void @_out_of_gas() - br label %"$have_gas_111" + br label %"$have_gas_112" -"$have_gas_111": ; preds = %"$out_of_gas_110", %"$have_gas_103" - %"$consume_112" = sub i64 %"$gasrem_108", 1 - store i64 %"$consume_112", i64* @_gasrem, align 8 +"$have_gas_112": ; preds = %"$out_of_gas_111", %"$have_gas_104" + %"$consume_113" = sub i64 %"$gasrem_109", 1 + store i64 %"$consume_113", i64* @_gasrem, align 8 %b = alloca %Uint32, align 8 - %"$gasrem_113" = load i64, i64* @_gasrem, align 8 - %"$gascmp_114" = icmp ugt i64 1, %"$gasrem_113" - br i1 %"$gascmp_114", label %"$out_of_gas_115", label %"$have_gas_116" + call void @llvm.dbg.declare(metadata %Uint32* %b, metadata !22, metadata !DIExpression()), !dbg !23 + %"$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_115": ; preds = %"$have_gas_111" +"$out_of_gas_116": ; preds = %"$have_gas_112" call void @_out_of_gas() - br label %"$have_gas_116" + br label %"$have_gas_117" -"$have_gas_116": ; preds = %"$out_of_gas_115", %"$have_gas_111" - %"$consume_117" = sub i64 %"$gasrem_113", 1 - store i64 %"$consume_117", 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 %"$f_7" = alloca %Uint32, align 8 - %"$f_118" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %f, align 8 - %"$f_fptr_119" = extractvalue { %Uint32 (i8*, %Uint32)*, i8* } %"$f_118", 0 - %"$f_envptr_120" = extractvalue { %Uint32 (i8*, %Uint32)*, i8* } %"$f_118", 1 - %"$a_121" = load %Uint32, %Uint32* %a, align 4 - %"$f_call_122" = call %Uint32 %"$f_fptr_119"(i8* %"$f_envptr_120", %Uint32 %"$a_121"), !dbg !15 - store %Uint32 %"$f_call_122", %Uint32* %"$f_7", align 4, !dbg !15 - %"$$f_7_123" = load %Uint32, %Uint32* %"$f_7", align 4 - store %Uint32 %"$$f_7_123", %Uint32* %b, align 4, !dbg !15 - %"$gasrem_124" = load i64, i64* @_gasrem, align 8 - %"$gascmp_125" = icmp ugt i64 4, %"$gasrem_124" - br i1 %"$gascmp_125", label %"$out_of_gas_126", label %"$have_gas_127" - -"$out_of_gas_126": ; preds = %"$have_gas_116" + call void @llvm.dbg.declare(metadata %Uint32* %"$f_7", metadata !24, metadata !DIExpression()), !dbg !25 + %"$f_119" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %f, align 8 + %"$f_fptr_120" = extractvalue { %Uint32 (i8*, %Uint32)*, i8* } %"$f_119", 0 + %"$f_envptr_121" = extractvalue { %Uint32 (i8*, %Uint32)*, i8* } %"$f_119", 1 + %"$a_122" = load %Uint32, %Uint32* %a, align 4 + %"$f_call_123" = call %Uint32 %"$f_fptr_120"(i8* %"$f_envptr_121", %Uint32 %"$a_122"), !dbg !25 + store %Uint32 %"$f_call_123", %Uint32* %"$f_7", align 4, !dbg !25 + %"$$f_7_124" = load %Uint32, %Uint32* %"$f_7", align 4 + store %Uint32 %"$$f_7_124", %Uint32* %b, align 4, !dbg !25 + %"$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_117" call void @_out_of_gas() - br label %"$have_gas_127" - -"$have_gas_127": ; preds = %"$out_of_gas_126", %"$have_gas_116" - %"$consume_128" = sub i64 %"$gasrem_124", 4 - store i64 %"$consume_128", i64* @_gasrem, align 8 - %"$a_129" = load %Uint32, %Uint32* %a, align 4 - %"$b_130" = load %Uint32, %Uint32* %b, align 4 - %"$add_call_131" = call %Uint32 @_add_Uint32(%Uint32 %"$a_129", %Uint32 %"$b_130"), !dbg !16 - store %Uint32 %"$add_call_131", %Uint32* %"$expr_8", align 4, !dbg !16 - %"$$expr_8_132" = load %Uint32, %Uint32* %"$expr_8", align 4 - ret %Uint32 %"$$expr_8_132" + br label %"$have_gas_128" + +"$have_gas_128": ; preds = %"$out_of_gas_127", %"$have_gas_117" + %"$consume_129" = sub i64 %"$gasrem_125", 4 + store i64 %"$consume_129", i64* @_gasrem, align 8 + %"$a_130" = load %Uint32, %Uint32* %a, align 4 + %"$b_131" = load %Uint32, %Uint32* %b, align 4 + %"$add_call_132" = call %Uint32 @_add_Uint32(%Uint32 %"$a_130", %Uint32 %"$b_131"), !dbg !26 + store %Uint32 %"$add_call_132", %Uint32* %"$expr_8", align 4, !dbg !26 + %"$$expr_8_133" = load %Uint32, %Uint32* %"$expr_8", align 4 + ret %Uint32 %"$$expr_8_133" } declare %Uint32 @_add_Uint32(%Uint32, %Uint32) @@ -269,32 +280,44 @@ declare void @_print_scilla_val(i8*, %_TyDescrTy_Typ*, i8*) define void @scilla_main() { entry: - %"$exprval_133" = call %Uint32 @_scilla_expr_fun(i8* null) - %"$pval_134" = alloca %Uint32, align 8 - %"$memvoidcast_135" = bitcast %Uint32* %"$pval_134" to i8* - store %Uint32 %"$exprval_133", %Uint32* %"$pval_134", align 4 - %"$execptr_load_136" = load i8*, i8** @_execptr, align 8 - call void @_print_scilla_val(i8* %"$execptr_load_136", %_TyDescrTy_Typ* @"$TyDescr_Uint32_15", i8* %"$memvoidcast_135") + %"$exprval_134" = call %Uint32 @_scilla_expr_fun(i8* null) + %"$pval_135" = alloca %Uint32, align 8 + %"$memvoidcast_136" = bitcast %Uint32* %"$pval_135" to i8* + store %Uint32 %"$exprval_134", %Uint32* %"$pval_135", align 4 + %"$execptr_load_137" = load i8*, i8** @_execptr, align 8 + call void @_print_scilla_val(i8* %"$execptr_load_137", %_TyDescrTy_Typ* @"$TyDescr_Uint32_15", i8* %"$memvoidcast_136") ret void } +attributes #0 = { nocallback nofree nosync nounwind readnone speculatable willreturn } + !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) +!1 = distinct !DICompileUnit(language: DW_LANG_C89, file: !2, producer: "Scilla Compiler", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false) !2 = !DIFile(filename: "name_clash2.scilexp", directory: "codegen/expr") -!3 = !{} -!4 = distinct !DISubprogram(name: "$fundef_9", linkageName: "$fundef_9", scope: !2, file: !2, line: 2, type: !5, scopeLine: 2, 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: 2, column: 29, scope: !4) -!9 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !10, file: !10, type: !5, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!10 = !DIFile(filename: ".", directory: ".") -!11 = !DILocation(line: 0, scope: !9) -!12 = distinct !DISubprogram(name: "_scilla_expr_fun", linkageName: "_scilla_expr_fun", scope: !2, file: !2, line: 1, type: !5, scopeLine: 1, spFlags: DISPFlagDefinition, unit: !1, retainedNodes: !3) -!13 = !DILocation(line: 1, column: 9, scope: !12) -!14 = !DILocation(line: 2, column: 29, scope: !12) -!15 = !DILocation(line: 3, column: 9, scope: !12) -!16 = !DILocation(line: 5, column: 1, scope: !12) +!3 = distinct !DISubprogram(name: "$fundef_9", linkageName: "$fundef_9", scope: !2, file: !2, line: 2, type: !4, scopeLine: 2, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!4 = !DISubroutineType(types: !5) +!5 = !{!6} +!6 = !DIBasicType(tag: DW_TAG_unspecified_type, name: "void") +!7 = !{} +!8 = !DILocalVariable(name: "$a_6", scope: !3, file: !2, line: 2, type: !9) +!9 = !DIBasicType(name: "Uint32", size: 4) +!10 = !DILocation(line: 2, column: 14, scope: !3) +!11 = !DILocalVariable(name: "$retval_10", scope: !3, file: !2, line: 2, type: !9) +!12 = !DILocation(line: 2, column: 29, scope: !3) +!13 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !14, file: !14, type: !4, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!14 = !DIFile(filename: ".", directory: ".") +!15 = !DILocation(line: 0, scope: !13) +!16 = distinct !DISubprogram(name: "_scilla_expr_fun", linkageName: "_scilla_expr_fun", scope: !2, file: !2, line: 1, type: !4, scopeLine: 1, spFlags: DISPFlagDefinition, unit: !1, retainedNodes: !7) +!17 = !DILocalVariable(name: "$expr_8", scope: !16, file: !2, line: 1, type: !9) +!18 = !DILocation(line: 1, column: 9, scope: !16) +!19 = !DILocalVariable(name: "a", scope: !16, file: !2, line: 1, type: !9) +!20 = !DILocation(line: 1, column: 5, scope: !16) +!21 = !DILocation(line: 2, column: 29, scope: !16) +!22 = !DILocalVariable(name: "b", scope: !16, file: !2, line: 3, type: !9) +!23 = !DILocation(line: 3, column: 5, scope: !16) +!24 = !DILocalVariable(name: "$f_7", scope: !16, file: !2, line: 3, type: !9) +!25 = !DILocation(line: 3, column: 9, scope: !16) +!26 = !DILocation(line: 5, column: 1, scope: !16) diff --git a/testsuite/expr/name_clash2.ll b/testsuite/expr/name_clash2.ll index 226899e3..5dee99ec 100644 --- a/testsuite/expr/name_clash2.ll +++ b/testsuite/expr/name_clash2.ll @@ -7,7 +7,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-pc-linux-gnu" +target triple = "x86_64-unknown-linux-gnu" %"$TyDescrTy_PrimTyp_11" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/testsuite/expr/nonprenex.dbg.ll b/testsuite/expr/nonprenex.dbg.ll index 7bbc54ba..fe6b50b2 100644 --- a/testsuite/expr/nonprenex.dbg.ll +++ b/testsuite/expr/nonprenex.dbg.ll @@ -33,7 +33,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-pc-linux-gnu" +target triple = "x86_64-unknown-linux-gnu" %"$TyDescrTy_PrimTyp_65" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } @@ -42,9 +42,9 @@ target triple = "x86_64-pc-linux-gnu" %"$TyDescrTy_ADTTyp_Specl_98" = type { %_TyDescrTy_Typ**, %"$TyDescrTy_ADTTyp_Constr_100"**, %"$TyDescrTy_ADTTyp_99"* } %"$TyDescrTy_ADTTyp_Constr_100" = type { %TyDescrString, i32, %_TyDescrTy_Typ** } %Int32 = type { i32 } -%"$ParamDescr_1059" = type { %ParamDescrString, %_TyDescrTy_Typ* } +%"$ParamDescr_1070" = type { %ParamDescrString, %_TyDescrTy_Typ* } %ParamDescrString = type { i8*, i32 } -%"$TransDescr_1060" = type { %ParamDescrString, i32, %"$ParamDescr_1059"* } +%"$TransDescr_1071" = type { %ParamDescrString, i32, %"$ParamDescr_1070"* } %"$$fundef_63_env_140" = type { %TName_Bool*, { i8*, i8* }* } %TName_Bool = type { i8, %CName_True*, %CName_False* } %CName_True = type <{ i8 }> @@ -159,1268 +159,1323 @@ target triple = "x86_64-pc-linux-gnu" @"$_gas_charge_accPairUtils_4" = global %Int32 zeroinitializer @_tydescr_table = constant [19 x %_TyDescrTy_Typ*] [%_TyDescrTy_Typ* @"$TyDescr_Event_89", %_TyDescrTy_Typ* @"$TyDescr_Int64_71", %_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_101", %_TyDescrTy_Typ* @"$TyDescr_Bystr20_97", %_TyDescrTy_Typ* @"$TyDescr_Uint256_81", %_TyDescrTy_Typ* @"$TyDescr_Uint32_69", %_TyDescrTy_Typ* @"$TyDescr_Uint64_73", %_TyDescrTy_Typ* @"$TyDescr_Bnum_85", %_TyDescrTy_Typ* @"$TyDescr_Uint128_77", %_TyDescrTy_Typ* @"$TyDescr_Exception_91", %_TyDescrTy_Typ* @"$TyDescr_String_83", %_TyDescrTy_Typ* @"$TyDescr_ADT_List_ByStr20_102", %_TyDescrTy_Typ* @"$TyDescr_ADT_List_String_103", %_TyDescrTy_Typ* @"$TyDescr_Int256_79", %_TyDescrTy_Typ* @"$TyDescr_Int128_75", %_TyDescrTy_Typ* @"$TyDescr_Bystr_95", %_TyDescrTy_Typ* @"$TyDescr_ReplicateContr_93", %_TyDescrTy_Typ* @"$TyDescr_Message_87", %_TyDescrTy_Typ* @"$TyDescr_Int32_67"] @_tydescr_table_length = constant i32 19 -@_contract_parameters = constant [0 x %"$ParamDescr_1059"] zeroinitializer +@_contract_parameters = constant [0 x %"$ParamDescr_1070"] zeroinitializer @_contract_parameters_length = constant i32 0 -@_transition_parameters = constant [0 x %"$TransDescr_1060"] zeroinitializer +@_transition_parameters = constant [0 x %"$TransDescr_1071"] zeroinitializer @_transition_parameters_length = constant i32 0 -define internal { i8*, i8* }* @"$fundef_63"(%"$$fundef_63_env_140"* %0, { i8*, i8* }* %1) !dbg !4 { +define internal { i8*, i8* }* @"$fundef_63"(%"$$fundef_63_env_140"* %0, { i8*, i8* }* %1) !dbg !3 { entry: - %"$$fundef_63_env_b_788" = getelementptr inbounds %"$$fundef_63_env_140", %"$$fundef_63_env_140"* %0, i32 0, i32 0 - %"$b_envload_789" = load %TName_Bool*, %TName_Bool** %"$$fundef_63_env_b_788", align 8 + %"$$fundef_63_env_b_799" = getelementptr inbounds %"$$fundef_63_env_140", %"$$fundef_63_env_140"* %0, i32 0, i32 0 + %"$b_envload_800" = load %TName_Bool*, %TName_Bool** %"$$fundef_63_env_b_799", align 8 %b = alloca %TName_Bool*, align 8 - store %TName_Bool* %"$b_envload_789", %TName_Bool** %b, align 8 - %"$$fundef_63_env_f_790" = getelementptr inbounds %"$$fundef_63_env_140", %"$$fundef_63_env_140"* %0, i32 0, i32 1 - %"$f_envload_791" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_63_env_f_790", align 8 + store %TName_Bool* %"$b_envload_800", %TName_Bool** %b, align 8 + %"$$fundef_63_env_f_801" = getelementptr inbounds %"$$fundef_63_env_140", %"$$fundef_63_env_140"* %0, i32 0, i32 1 + %"$f_envload_802" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_63_env_f_801", align 8 %f = alloca { i8*, i8* }*, align 8 - store { i8*, i8* }* %"$f_envload_791", { i8*, i8* }** %f, align 8 + store { i8*, i8* }* %"$f_envload_802", { i8*, i8* }** %f, align 8 %"$retval_64" = alloca { i8*, i8* }*, align 8 - %"$gasrem_792" = load i64, i64* @_gasrem, align 8 - %"$gascmp_793" = icmp ugt i64 2, %"$gasrem_792" - br i1 %"$gascmp_793", label %"$out_of_gas_794", label %"$have_gas_795" - -"$out_of_gas_794": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_795" - -"$have_gas_795": ; preds = %"$out_of_gas_794", %entry - %"$consume_796" = sub i64 %"$gasrem_792", 2 - store i64 %"$consume_796", i64* @_gasrem, align 8 - %"$b_798" = load %TName_Bool*, %TName_Bool** %b, align 8 - %"$b_tag_799" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$b_798", i32 0, i32 0 - %"$b_tag_800" = load i8, i8* %"$b_tag_799", align 1 - switch i8 %"$b_tag_800", label %"$empty_default_801" [ - i8 0, label %"$True_802" - i8 1, label %"$False_809" + %"$gasrem_803" = load i64, i64* @_gasrem, align 8 + %"$gascmp_804" = icmp ugt i64 2, %"$gasrem_803" + br i1 %"$gascmp_804", label %"$out_of_gas_805", label %"$have_gas_806" + +"$out_of_gas_805": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_806" + +"$have_gas_806": ; preds = %"$out_of_gas_805", %entry + %"$consume_807" = sub i64 %"$gasrem_803", 2 + store i64 %"$consume_807", i64* @_gasrem, align 8 + %"$b_809" = load %TName_Bool*, %TName_Bool** %b, align 8 + %"$b_tag_810" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$b_809", i32 0, i32 0 + %"$b_tag_811" = load i8, i8* %"$b_tag_810", align 1 + switch i8 %"$b_tag_811", label %"$empty_default_812" [ + i8 0, label %"$True_813" + i8 1, label %"$False_820" ], !dbg !8 -"$True_802": ; preds = %"$have_gas_795" - %"$b_803" = bitcast %TName_Bool* %"$b_798" to %CName_True* - %"$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" +"$True_813": ; preds = %"$have_gas_806" + %"$b_814" = bitcast %TName_Bool* %"$b_809" to %CName_True* + %"$gasrem_815" = load i64, i64* @_gasrem, align 8 + %"$gascmp_816" = icmp ugt i64 1, %"$gasrem_815" + br i1 %"$gascmp_816", label %"$out_of_gas_817", label %"$have_gas_818" -"$out_of_gas_806": ; preds = %"$True_802" +"$out_of_gas_817": ; preds = %"$True_813" call void @_out_of_gas() - br label %"$have_gas_807" + br label %"$have_gas_818" -"$have_gas_807": ; preds = %"$out_of_gas_806", %"$True_802" - %"$consume_808" = sub i64 %"$gasrem_804", 1 - store i64 %"$consume_808", i64* @_gasrem, align 8 +"$have_gas_818": ; preds = %"$out_of_gas_817", %"$True_813" + %"$consume_819" = sub i64 %"$gasrem_815", 1 + store i64 %"$consume_819", i64* @_gasrem, align 8 store { i8*, i8* }* %1, { i8*, i8* }** %"$retval_64", align 8, !dbg !9 - br label %"$matchsucc_797" + br label %"$matchsucc_808" -"$False_809": ; preds = %"$have_gas_795" - %"$b_810" = bitcast %TName_Bool* %"$b_798" to %CName_False* - %"$gasrem_811" = load i64, i64* @_gasrem, align 8 - %"$gascmp_812" = icmp ugt i64 1, %"$gasrem_811" - br i1 %"$gascmp_812", label %"$out_of_gas_813", label %"$have_gas_814" +"$False_820": ; preds = %"$have_gas_806" + %"$b_821" = bitcast %TName_Bool* %"$b_809" to %CName_False* + %"$gasrem_822" = load i64, i64* @_gasrem, align 8 + %"$gascmp_823" = icmp ugt i64 1, %"$gasrem_822" + br i1 %"$gascmp_823", label %"$out_of_gas_824", label %"$have_gas_825" -"$out_of_gas_813": ; preds = %"$False_809" +"$out_of_gas_824": ; preds = %"$False_820" call void @_out_of_gas() - br label %"$have_gas_814" + br label %"$have_gas_825" -"$have_gas_814": ; preds = %"$out_of_gas_813", %"$False_809" - %"$consume_815" = sub i64 %"$gasrem_811", 1 - store i64 %"$consume_815", i64* @_gasrem, align 8 - %"$f_816" = load { i8*, i8* }*, { i8*, i8* }** %f, align 8 - store { i8*, i8* }* %"$f_816", { i8*, i8* }** %"$retval_64", align 8, !dbg !12 - br label %"$matchsucc_797" +"$have_gas_825": ; preds = %"$out_of_gas_824", %"$False_820" + %"$consume_826" = sub i64 %"$gasrem_822", 1 + store i64 %"$consume_826", i64* @_gasrem, align 8 + %"$f_827" = load { i8*, i8* }*, { i8*, i8* }** %f, align 8 + store { i8*, i8* }* %"$f_827", { i8*, i8* }** %"$retval_64", align 8, !dbg !12 + br label %"$matchsucc_808" -"$empty_default_801": ; preds = %"$have_gas_795" - br label %"$matchsucc_797" +"$empty_default_812": ; preds = %"$have_gas_806" + br label %"$matchsucc_808" -"$matchsucc_797": ; preds = %"$have_gas_814", %"$have_gas_807", %"$empty_default_801" - %"$$retval_64_817" = load { i8*, i8* }*, { i8*, i8* }** %"$retval_64", align 8 - ret { i8*, i8* }* %"$$retval_64_817" +"$matchsucc_808": ; preds = %"$have_gas_825", %"$have_gas_818", %"$empty_default_812" + %"$$retval_64_828" = load { i8*, i8* }*, { i8*, i8* }** %"$retval_64", align 8 + ret { i8*, i8* }* %"$$retval_64_828" } define internal { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } @"$fundef_61"(%"$$fundef_61_env_141"* %0, { i8*, i8* }* %1) !dbg !14 { entry: - %"$$fundef_61_env_b_773" = getelementptr inbounds %"$$fundef_61_env_141", %"$$fundef_61_env_141"* %0, i32 0, i32 0 - %"$b_envload_774" = load %TName_Bool*, %TName_Bool** %"$$fundef_61_env_b_773", align 8 + %"$$fundef_61_env_b_784" = getelementptr inbounds %"$$fundef_61_env_141", %"$$fundef_61_env_141"* %0, i32 0, i32 0 + %"$b_envload_785" = load %TName_Bool*, %TName_Bool** %"$$fundef_61_env_b_784", align 8 %b = alloca %TName_Bool*, align 8 - store %TName_Bool* %"$b_envload_774", %TName_Bool** %b, align 8 + store %TName_Bool* %"$b_envload_785", %TName_Bool** %b, align 8 %"$retval_62" = alloca { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }, 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 = %entry - call void @_out_of_gas() - br label %"$have_gas_778" - -"$have_gas_778": ; preds = %"$out_of_gas_777", %entry - %"$consume_779" = sub i64 %"$gasrem_775", 1 - store i64 %"$consume_779", i64* @_gasrem, align 8 - %"$$fundef_63_envp_780_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_63_envp_780_salloc" = call i8* @_salloc(i8* %"$$fundef_63_envp_780_load", i64 16) - %"$$fundef_63_envp_780" = bitcast i8* %"$$fundef_63_envp_780_salloc" to %"$$fundef_63_env_140"* - %"$$fundef_63_env_voidp_782" = bitcast %"$$fundef_63_env_140"* %"$$fundef_63_envp_780" to i8* - %"$$fundef_63_cloval_783" = insertvalue { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } { { i8*, i8* }* (i8*, { i8*, i8* }*)* bitcast ({ i8*, i8* }* (%"$$fundef_63_env_140"*, { i8*, i8* }*)* @"$fundef_63" to { i8*, i8* }* (i8*, { i8*, i8* }*)*), i8* undef }, i8* %"$$fundef_63_env_voidp_782", 1 - %"$$fundef_63_env_b_784" = getelementptr inbounds %"$$fundef_63_env_140", %"$$fundef_63_env_140"* %"$$fundef_63_envp_780", i32 0, i32 0 - %"$b_785" = load %TName_Bool*, %TName_Bool** %b, align 8 - store %TName_Bool* %"$b_785", %TName_Bool** %"$$fundef_63_env_b_784", align 8 - %"$$fundef_63_env_f_786" = getelementptr inbounds %"$$fundef_63_env_140", %"$$fundef_63_env_140"* %"$$fundef_63_envp_780", i32 0, i32 1 - store { i8*, i8* }* %1, { i8*, i8* }** %"$$fundef_63_env_f_786", align 8 - store { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$$fundef_63_cloval_783", { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %"$retval_62", align 8, !dbg !15 - %"$$retval_62_787" = 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_787" + %"$gasrem_786" = load i64, i64* @_gasrem, align 8 + %"$gascmp_787" = icmp ugt i64 1, %"$gasrem_786" + br i1 %"$gascmp_787", label %"$out_of_gas_788", label %"$have_gas_789" + +"$out_of_gas_788": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_789" + +"$have_gas_789": ; preds = %"$out_of_gas_788", %entry + %"$consume_790" = sub i64 %"$gasrem_786", 1 + store i64 %"$consume_790", i64* @_gasrem, align 8 + %"$$fundef_63_envp_791_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_63_envp_791_salloc" = call i8* @_salloc(i8* %"$$fundef_63_envp_791_load", i64 16) + %"$$fundef_63_envp_791" = bitcast i8* %"$$fundef_63_envp_791_salloc" to %"$$fundef_63_env_140"* + %"$$fundef_63_env_voidp_793" = bitcast %"$$fundef_63_env_140"* %"$$fundef_63_envp_791" to i8* + %"$$fundef_63_cloval_794" = insertvalue { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } { { i8*, i8* }* (i8*, { i8*, i8* }*)* bitcast ({ i8*, i8* }* (%"$$fundef_63_env_140"*, { i8*, i8* }*)* @"$fundef_63" to { i8*, i8* }* (i8*, { i8*, i8* }*)*), i8* undef }, i8* %"$$fundef_63_env_voidp_793", 1 + %"$$fundef_63_env_b_795" = getelementptr inbounds %"$$fundef_63_env_140", %"$$fundef_63_env_140"* %"$$fundef_63_envp_791", i32 0, i32 0 + %"$b_796" = load %TName_Bool*, %TName_Bool** %b, align 8 + store %TName_Bool* %"$b_796", %TName_Bool** %"$$fundef_63_env_b_795", align 8 + %"$$fundef_63_env_f_797" = getelementptr inbounds %"$$fundef_63_env_140", %"$$fundef_63_env_140"* %"$$fundef_63_envp_791", i32 0, i32 1 + store { i8*, i8* }* %1, { i8*, i8* }** %"$$fundef_63_env_f_797", align 8 + store { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$$fundef_63_cloval_794", { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %"$retval_62", align 8, !dbg !15 + %"$$retval_62_798" = 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_798" } define internal { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* } @"$fundef_59"(%"$$fundef_59_env_142"* %0, %TName_Bool* %1) !dbg !16 { entry: + %"$b_783" = alloca %TName_Bool*, align 8 + store %TName_Bool* %1, %TName_Bool** %"$b_783", align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$b_783", metadata !17, metadata !DIExpression()), !dbg !20 %"$retval_60" = alloca { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* }, 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 = %entry - call void @_out_of_gas() - br label %"$have_gas_765" - -"$have_gas_765": ; preds = %"$out_of_gas_764", %entry - %"$consume_766" = sub i64 %"$gasrem_762", 1 - store i64 %"$consume_766", i64* @_gasrem, align 8 - %"$$fundef_61_envp_767_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_61_envp_767_salloc" = call i8* @_salloc(i8* %"$$fundef_61_envp_767_load", i64 8) - %"$$fundef_61_envp_767" = bitcast i8* %"$$fundef_61_envp_767_salloc" to %"$$fundef_61_env_141"* - %"$$fundef_61_env_voidp_769" = bitcast %"$$fundef_61_env_141"* %"$$fundef_61_envp_767" to i8* - %"$$fundef_61_cloval_770" = 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_61_env_141"*, { i8*, i8* }*)* @"$fundef_61" to { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*), i8* undef }, i8* %"$$fundef_61_env_voidp_769", 1 - %"$$fundef_61_env_b_771" = getelementptr inbounds %"$$fundef_61_env_141", %"$$fundef_61_env_141"* %"$$fundef_61_envp_767", i32 0, i32 0 - store %TName_Bool* %1, %TName_Bool** %"$$fundef_61_env_b_771", align 8 - store { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* } %"$$fundef_61_cloval_770", { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* }* %"$retval_60", align 8, !dbg !17 - %"$$retval_60_772" = load { { { 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* } %"$$retval_60_772" + %"$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 = %entry + call void @_out_of_gas() + br label %"$have_gas_775" + +"$have_gas_775": ; preds = %"$out_of_gas_774", %entry + %"$consume_776" = sub i64 %"$gasrem_772", 1 + store i64 %"$consume_776", i64* @_gasrem, align 8 + %"$$fundef_61_envp_777_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_61_envp_777_salloc" = call i8* @_salloc(i8* %"$$fundef_61_envp_777_load", i64 8) + %"$$fundef_61_envp_777" = bitcast i8* %"$$fundef_61_envp_777_salloc" to %"$$fundef_61_env_141"* + %"$$fundef_61_env_voidp_779" = bitcast %"$$fundef_61_env_141"* %"$$fundef_61_envp_777" to i8* + %"$$fundef_61_cloval_780" = 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_61_env_141"*, { i8*, i8* }*)* @"$fundef_61" to { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*), i8* undef }, i8* %"$$fundef_61_env_voidp_779", 1 + %"$$fundef_61_env_b_781" = getelementptr inbounds %"$$fundef_61_env_141", %"$$fundef_61_env_141"* %"$$fundef_61_envp_777", i32 0, i32 0 + store %TName_Bool* %1, %TName_Bool** %"$$fundef_61_env_b_781", align 8 + store { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* } %"$$fundef_61_cloval_780", { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* }* %"$retval_60", align 8, !dbg !21 + %"$$retval_60_782" = load { { { 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* } %"$$retval_60_782" } -define internal %Uint32 @"$fundef_57"(%"$$fundef_57_env_143"* %0, %TName_List_ByStr20* %1) !dbg !18 { +define internal %Uint32 @"$fundef_57"(%"$$fundef_57_env_143"* %0, %TName_List_ByStr20* %1) !dbg !22 { entry: - %"$$fundef_57_env_ListUtils.list_length_709" = getelementptr inbounds %"$$fundef_57_env_143", %"$$fundef_57_env_143"* %0, i32 0, i32 0 - %"$ListUtils.list_length_envload_710" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_57_env_ListUtils.list_length_709", align 8 + %"$l_771" = alloca %TName_List_ByStr20*, align 8 + store %TName_List_ByStr20* %1, %TName_List_ByStr20** %"$l_771", align 8 + call void @llvm.dbg.declare(metadata %TName_List_ByStr20** %"$l_771", metadata !23, metadata !DIExpression()), !dbg !26 + %"$$fundef_57_env_ListUtils.list_length_718" = getelementptr inbounds %"$$fundef_57_env_143", %"$$fundef_57_env_143"* %0, i32 0, i32 0 + %"$ListUtils.list_length_envload_719" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_57_env_ListUtils.list_length_718", align 8 %ListUtils.list_length = alloca { i8*, i8* }*, align 8 - store { i8*, i8* }* %"$ListUtils.list_length_envload_710", { i8*, i8* }** %ListUtils.list_length, align 8 + store { i8*, i8* }* %"$ListUtils.list_length_envload_719", { i8*, i8* }** %ListUtils.list_length, align 8 %"$retval_58" = alloca %Uint32, 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" + call void @llvm.dbg.declare(metadata %Uint32* %"$retval_58", metadata !27, metadata !DIExpression()), !dbg !29 + %"$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_713": ; preds = %entry +"$out_of_gas_722": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_714" + br label %"$have_gas_723" -"$have_gas_714": ; preds = %"$out_of_gas_713", %entry - %"$consume_715" = sub i64 %"$gasrem_711", 1 - store i64 %"$consume_715", i64* @_gasrem, align 8 +"$have_gas_723": ; preds = %"$out_of_gas_722", %entry + %"$consume_724" = sub i64 %"$gasrem_720", 1 + store i64 %"$consume_724", i64* @_gasrem, align 8 %ll = alloca { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* }, 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 - %"$ListUtils.list_length_721" = load { i8*, i8* }*, { i8*, i8* }** %ListUtils.list_length, align 8 - %"$ListUtils.list_length_722" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$ListUtils.list_length_721", i32 2 - %"$ListUtils.list_length_723" = bitcast { i8*, i8* }* %"$ListUtils.list_length_722" to { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*)*, i8* }* - %"$ListUtils.list_length_724" = load { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*)*, i8* }, { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*)*, i8* }* %"$ListUtils.list_length_723", align 8 - %"$ListUtils.list_length_fptr_725" = extractvalue { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*)*, i8* } %"$ListUtils.list_length_724", 0 - %"$ListUtils.list_length_envptr_726" = extractvalue { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*)*, i8* } %"$ListUtils.list_length_724", 1 - %"$ListUtils.list_length_call_727" = call { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } %"$ListUtils.list_length_fptr_725"(i8* %"$ListUtils.list_length_envptr_726"), !dbg !19 - store { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } %"$ListUtils.list_length_call_727", { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* }* %ll, align 8, !dbg !20 - %"$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_730": ; preds = %"$have_gas_719" - call void @_out_of_gas() - br label %"$have_gas_731" - -"$have_gas_731": ; preds = %"$out_of_gas_730", %"$have_gas_719" - %"$consume_732" = sub i64 %"$gasrem_728", 1 - store i64 %"$consume_732", i64* @_gasrem, 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_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", 1 + store i64 %"$consume_729", i64* @_gasrem, align 8 + %"$ListUtils.list_length_730" = load { i8*, i8* }*, { i8*, i8* }** %ListUtils.list_length, align 8 + %"$ListUtils.list_length_731" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$ListUtils.list_length_730", i32 2 + %"$ListUtils.list_length_732" = bitcast { i8*, i8* }* %"$ListUtils.list_length_731" to { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*)*, i8* }* + %"$ListUtils.list_length_733" = load { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*)*, i8* }, { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*)*, i8* }* %"$ListUtils.list_length_732", align 8 + %"$ListUtils.list_length_fptr_734" = extractvalue { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*)*, i8* } %"$ListUtils.list_length_733", 0 + %"$ListUtils.list_length_envptr_735" = extractvalue { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*)*, i8* } %"$ListUtils.list_length_733", 1 + %"$ListUtils.list_length_call_736" = call { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } %"$ListUtils.list_length_fptr_734"(i8* %"$ListUtils.list_length_envptr_735"), !dbg !30 + store { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } %"$ListUtils.list_length_call_736", { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* }* %ll, align 8, !dbg !31 + %"$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_728" + call void @_out_of_gas() + br label %"$have_gas_740" + +"$have_gas_740": ; preds = %"$out_of_gas_739", %"$have_gas_728" + %"$consume_741" = sub i64 %"$gasrem_737", 1 + store i64 %"$consume_741", i64* @_gasrem, align 8 %n = alloca %Uint32, 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" + call void @llvm.dbg.declare(metadata %Uint32* %n, metadata !32, metadata !DIExpression()), !dbg !33 + %"$gasrem_742" = load i64, i64* @_gasrem, align 8 + %"$gascmp_743" = icmp ugt i64 1, %"$gasrem_742" + br i1 %"$gascmp_743", label %"$out_of_gas_744", label %"$have_gas_745" -"$out_of_gas_735": ; preds = %"$have_gas_731" +"$out_of_gas_744": ; preds = %"$have_gas_740" call void @_out_of_gas() - br label %"$have_gas_736" + br label %"$have_gas_745" -"$have_gas_736": ; preds = %"$out_of_gas_735", %"$have_gas_731" - %"$consume_737" = sub i64 %"$gasrem_733", 1 - store i64 %"$consume_737", i64* @_gasrem, align 8 +"$have_gas_745": ; preds = %"$out_of_gas_744", %"$have_gas_740" + %"$consume_746" = sub i64 %"$gasrem_742", 1 + store i64 %"$consume_746", i64* @_gasrem, align 8 %"$ll_12" = alloca %Uint32, align 8 - %"$ll_738" = load { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* }, { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* }* %ll, align 8 - %"$ll_fptr_739" = extractvalue { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } %"$ll_738", 0 - %"$ll_envptr_740" = extractvalue { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } %"$ll_738", 1 - %"$ll_call_741" = call %Uint32 %"$ll_fptr_739"(i8* %"$ll_envptr_740", %TName_List_ByStr20* %1), !dbg !21 - store %Uint32 %"$ll_call_741", %Uint32* %"$ll_12", align 4, !dbg !21 - %"$$ll_12_742" = load %Uint32, %Uint32* %"$ll_12", align 4 - store %Uint32 %"$$ll_12_742", %Uint32* %n, align 4, !dbg !21 - %"$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_736" - call void @_out_of_gas() - br label %"$have_gas_746" - -"$have_gas_746": ; preds = %"$out_of_gas_745", %"$have_gas_736" - %"$consume_747" = sub i64 %"$gasrem_743", 1 - store i64 %"$consume_747", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %Uint32* %"$ll_12", metadata !34, metadata !DIExpression()), !dbg !35 + %"$ll_747" = load { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* }, { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* }* %ll, align 8 + %"$ll_fptr_748" = extractvalue { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } %"$ll_747", 0 + %"$ll_envptr_749" = extractvalue { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } %"$ll_747", 1 + %"$ll_call_750" = call %Uint32 %"$ll_fptr_748"(i8* %"$ll_envptr_749", %TName_List_ByStr20* %1), !dbg !35 + store %Uint32 %"$ll_call_750", %Uint32* %"$ll_12", align 4, !dbg !35 + %"$$ll_12_751" = load %Uint32, %Uint32* %"$ll_12", align 4 + store %Uint32 %"$$ll_12_751", %Uint32* %n, align 4, !dbg !35 + %"$gasrem_752" = load i64, i64* @_gasrem, align 8 + %"$gascmp_753" = icmp ugt i64 1, %"$gasrem_752" + br i1 %"$gascmp_753", label %"$out_of_gas_754", label %"$have_gas_755" + +"$out_of_gas_754": ; preds = %"$have_gas_745" + call void @_out_of_gas() + br label %"$have_gas_755" + +"$have_gas_755": ; preds = %"$out_of_gas_754", %"$have_gas_745" + %"$consume_756" = sub i64 %"$gasrem_752", 1 + store i64 %"$consume_756", i64* @_gasrem, align 8 %two = alloca %Uint32, 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 - store %Uint32 { i32 2 }, %Uint32* %two, align 4, !dbg !22 - %"$gasrem_753" = load i64, i64* @_gasrem, align 8 - %"$gascmp_754" = icmp ugt i64 4, %"$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", 4 - store i64 %"$consume_757", i64* @_gasrem, align 8 - %"$n_758" = load %Uint32, %Uint32* %n, align 4 - %"$two_759" = load %Uint32, %Uint32* %two, align 4 - %"$add_call_760" = call %Uint32 @_add_Uint32(%Uint32 %"$n_758", %Uint32 %"$two_759"), !dbg !23 - store %Uint32 %"$add_call_760", %Uint32* %"$retval_58", align 4, !dbg !23 - %"$$retval_58_761" = load %Uint32, %Uint32* %"$retval_58", align 4 - ret %Uint32 %"$$retval_58_761" + call void @llvm.dbg.declare(metadata %Uint32* %two, metadata !36, metadata !DIExpression()), !dbg !37 + %"$gasrem_757" = load i64, i64* @_gasrem, align 8 + %"$gascmp_758" = icmp ugt i64 1, %"$gasrem_757" + br i1 %"$gascmp_758", label %"$out_of_gas_759", label %"$have_gas_760" + +"$out_of_gas_759": ; preds = %"$have_gas_755" + call void @_out_of_gas() + br label %"$have_gas_760" + +"$have_gas_760": ; preds = %"$out_of_gas_759", %"$have_gas_755" + %"$consume_761" = sub i64 %"$gasrem_757", 1 + store i64 %"$consume_761", i64* @_gasrem, align 8 + store %Uint32 { i32 2 }, %Uint32* %two, align 4, !dbg !38 + %"$gasrem_762" = load i64, i64* @_gasrem, align 8 + %"$gascmp_763" = icmp ugt i64 4, %"$gasrem_762" + br i1 %"$gascmp_763", label %"$out_of_gas_764", label %"$have_gas_765" + +"$out_of_gas_764": ; preds = %"$have_gas_760" + call void @_out_of_gas() + br label %"$have_gas_765" + +"$have_gas_765": ; preds = %"$out_of_gas_764", %"$have_gas_760" + %"$consume_766" = sub i64 %"$gasrem_762", 4 + store i64 %"$consume_766", i64* @_gasrem, align 8 + %"$n_767" = load %Uint32, %Uint32* %n, align 4 + %"$two_768" = load %Uint32, %Uint32* %two, align 4 + %"$add_call_769" = call %Uint32 @_add_Uint32(%Uint32 %"$n_767", %Uint32 %"$two_768"), !dbg !39 + store %Uint32 %"$add_call_769", %Uint32* %"$retval_58", align 4, !dbg !39 + %"$$retval_58_770" = load %Uint32, %Uint32* %"$retval_58", align 4 + ret %Uint32 %"$$retval_58_770" } -define internal { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } @"$fundef_55"(%"$$fundef_55_env_144"* %0) !dbg !24 { +define internal { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } @"$fundef_55"(%"$$fundef_55_env_144"* %0) !dbg !40 { entry: - %"$$fundef_55_env_ListUtils.list_length_695" = getelementptr inbounds %"$$fundef_55_env_144", %"$$fundef_55_env_144"* %0, i32 0, i32 0 - %"$ListUtils.list_length_envload_696" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_55_env_ListUtils.list_length_695", align 8 + %"$$fundef_55_env_ListUtils.list_length_704" = getelementptr inbounds %"$$fundef_55_env_144", %"$$fundef_55_env_144"* %0, i32 0, i32 0 + %"$ListUtils.list_length_envload_705" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_55_env_ListUtils.list_length_704", align 8 %ListUtils.list_length = alloca { i8*, i8* }*, align 8 - store { i8*, i8* }* %"$ListUtils.list_length_envload_696", { i8*, i8* }** %ListUtils.list_length, align 8 + store { i8*, i8* }* %"$ListUtils.list_length_envload_705", { i8*, i8* }** %ListUtils.list_length, align 8 %"$retval_56" = alloca { %Uint32 (i8*, %TName_List_ByStr20*)*, 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_57_envp_702_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_57_envp_702_salloc" = call i8* @_salloc(i8* %"$$fundef_57_envp_702_load", i64 8) - %"$$fundef_57_envp_702" = bitcast i8* %"$$fundef_57_envp_702_salloc" to %"$$fundef_57_env_143"* - %"$$fundef_57_env_voidp_704" = bitcast %"$$fundef_57_env_143"* %"$$fundef_57_envp_702" to i8* - %"$$fundef_57_cloval_705" = insertvalue { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } { %Uint32 (i8*, %TName_List_ByStr20*)* bitcast (%Uint32 (%"$$fundef_57_env_143"*, %TName_List_ByStr20*)* @"$fundef_57" to %Uint32 (i8*, %TName_List_ByStr20*)*), i8* undef }, i8* %"$$fundef_57_env_voidp_704", 1 - %"$$fundef_57_env_ListUtils.list_length_706" = getelementptr inbounds %"$$fundef_57_env_143", %"$$fundef_57_env_143"* %"$$fundef_57_envp_702", i32 0, i32 0 - %"$ListUtils.list_length_707" = load { i8*, i8* }*, { i8*, i8* }** %ListUtils.list_length, align 8 - store { i8*, i8* }* %"$ListUtils.list_length_707", { i8*, i8* }** %"$$fundef_57_env_ListUtils.list_length_706", align 8 - store { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } %"$$fundef_57_cloval_705", { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* }* %"$retval_56", align 8, !dbg !25 - %"$$retval_56_708" = load { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* }, { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* }* %"$retval_56", align 8 - ret { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } %"$$retval_56_708" + %"$gasrem_706" = load i64, i64* @_gasrem, align 8 + %"$gascmp_707" = icmp ugt i64 1, %"$gasrem_706" + br i1 %"$gascmp_707", label %"$out_of_gas_708", label %"$have_gas_709" + +"$out_of_gas_708": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_709" + +"$have_gas_709": ; preds = %"$out_of_gas_708", %entry + %"$consume_710" = sub i64 %"$gasrem_706", 1 + store i64 %"$consume_710", i64* @_gasrem, align 8 + %"$$fundef_57_envp_711_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_57_envp_711_salloc" = call i8* @_salloc(i8* %"$$fundef_57_envp_711_load", i64 8) + %"$$fundef_57_envp_711" = bitcast i8* %"$$fundef_57_envp_711_salloc" to %"$$fundef_57_env_143"* + %"$$fundef_57_env_voidp_713" = bitcast %"$$fundef_57_env_143"* %"$$fundef_57_envp_711" to i8* + %"$$fundef_57_cloval_714" = insertvalue { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } { %Uint32 (i8*, %TName_List_ByStr20*)* bitcast (%Uint32 (%"$$fundef_57_env_143"*, %TName_List_ByStr20*)* @"$fundef_57" to %Uint32 (i8*, %TName_List_ByStr20*)*), i8* undef }, i8* %"$$fundef_57_env_voidp_713", 1 + %"$$fundef_57_env_ListUtils.list_length_715" = getelementptr inbounds %"$$fundef_57_env_143", %"$$fundef_57_env_143"* %"$$fundef_57_envp_711", i32 0, i32 0 + %"$ListUtils.list_length_716" = load { i8*, i8* }*, { i8*, i8* }** %ListUtils.list_length, align 8 + store { i8*, i8* }* %"$ListUtils.list_length_716", { i8*, i8* }** %"$$fundef_57_env_ListUtils.list_length_715", align 8 + store { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } %"$$fundef_57_cloval_714", { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* }* %"$retval_56", align 8, !dbg !41 + %"$$retval_56_717" = load { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* }, { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* }* %"$retval_56", align 8 + ret { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } %"$$retval_56_717" } -define internal %Uint32 @"$fundef_53"(%"$$fundef_53_env_145"* %0, %TName_List_String* %1) !dbg !26 { +define internal %Uint32 @"$fundef_53"(%"$$fundef_53_env_145"* %0, %TName_List_String* %1) !dbg !42 { entry: - %"$$fundef_53_env_ListUtils.list_length_642" = getelementptr inbounds %"$$fundef_53_env_145", %"$$fundef_53_env_145"* %0, i32 0, i32 0 - %"$ListUtils.list_length_envload_643" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_53_env_ListUtils.list_length_642", align 8 + %"$l_703" = alloca %TName_List_String*, align 8 + store %TName_List_String* %1, %TName_List_String** %"$l_703", align 8 + call void @llvm.dbg.declare(metadata %TName_List_String** %"$l_703", metadata !43, metadata !DIExpression()), !dbg !46 + %"$$fundef_53_env_ListUtils.list_length_650" = getelementptr inbounds %"$$fundef_53_env_145", %"$$fundef_53_env_145"* %0, i32 0, i32 0 + %"$ListUtils.list_length_envload_651" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_53_env_ListUtils.list_length_650", align 8 %ListUtils.list_length = alloca { i8*, i8* }*, align 8 - store { i8*, i8* }* %"$ListUtils.list_length_envload_643", { i8*, i8* }** %ListUtils.list_length, align 8 + store { i8*, i8* }* %"$ListUtils.list_length_envload_651", { i8*, i8* }** %ListUtils.list_length, align 8 %"$retval_54" = alloca %Uint32, 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" + call void @llvm.dbg.declare(metadata %Uint32* %"$retval_54", metadata !47, metadata !DIExpression()), !dbg !48 + %"$gasrem_652" = load i64, i64* @_gasrem, align 8 + %"$gascmp_653" = icmp ugt i64 1, %"$gasrem_652" + br i1 %"$gascmp_653", label %"$out_of_gas_654", label %"$have_gas_655" -"$out_of_gas_646": ; preds = %entry +"$out_of_gas_654": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_647" + br label %"$have_gas_655" -"$have_gas_647": ; preds = %"$out_of_gas_646", %entry - %"$consume_648" = sub i64 %"$gasrem_644", 1 - store i64 %"$consume_648", i64* @_gasrem, align 8 +"$have_gas_655": ; preds = %"$out_of_gas_654", %entry + %"$consume_656" = sub i64 %"$gasrem_652", 1 + store i64 %"$consume_656", i64* @_gasrem, align 8 %ll = alloca { %Uint32 (i8*, %TName_List_String*)*, i8* }, 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_647" - call void @_out_of_gas() - br label %"$have_gas_652" - -"$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 - %"$ListUtils.list_length_654" = load { i8*, i8* }*, { i8*, i8* }** %ListUtils.list_length, align 8 - %"$ListUtils.list_length_655" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$ListUtils.list_length_654", i32 0 - %"$ListUtils.list_length_656" = bitcast { i8*, i8* }* %"$ListUtils.list_length_655" to { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*)*, i8* }* - %"$ListUtils.list_length_657" = load { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*)*, i8* }, { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*)*, i8* }* %"$ListUtils.list_length_656", align 8 - %"$ListUtils.list_length_fptr_658" = extractvalue { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*)*, i8* } %"$ListUtils.list_length_657", 0 - %"$ListUtils.list_length_envptr_659" = extractvalue { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*)*, i8* } %"$ListUtils.list_length_657", 1 - %"$ListUtils.list_length_call_660" = call { %Uint32 (i8*, %TName_List_String*)*, i8* } %"$ListUtils.list_length_fptr_658"(i8* %"$ListUtils.list_length_envptr_659"), !dbg !27 - store { %Uint32 (i8*, %TName_List_String*)*, i8* } %"$ListUtils.list_length_call_660", { %Uint32 (i8*, %TName_List_String*)*, i8* }* %ll, align 8, !dbg !28 - %"$gasrem_661" = load i64, i64* @_gasrem, align 8 - %"$gascmp_662" = icmp ugt i64 1, %"$gasrem_661" - br i1 %"$gascmp_662", label %"$out_of_gas_663", label %"$have_gas_664" - -"$out_of_gas_663": ; preds = %"$have_gas_652" - call void @_out_of_gas() - br label %"$have_gas_664" - -"$have_gas_664": ; preds = %"$out_of_gas_663", %"$have_gas_652" - %"$consume_665" = sub i64 %"$gasrem_661", 1 - store i64 %"$consume_665", i64* @_gasrem, align 8 + %"$gasrem_657" = load i64, i64* @_gasrem, align 8 + %"$gascmp_658" = icmp ugt i64 1, %"$gasrem_657" + br i1 %"$gascmp_658", label %"$out_of_gas_659", label %"$have_gas_660" + +"$out_of_gas_659": ; preds = %"$have_gas_655" + call void @_out_of_gas() + br label %"$have_gas_660" + +"$have_gas_660": ; preds = %"$out_of_gas_659", %"$have_gas_655" + %"$consume_661" = sub i64 %"$gasrem_657", 1 + store i64 %"$consume_661", i64* @_gasrem, align 8 + %"$ListUtils.list_length_662" = load { i8*, i8* }*, { i8*, i8* }** %ListUtils.list_length, align 8 + %"$ListUtils.list_length_663" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$ListUtils.list_length_662", i32 0 + %"$ListUtils.list_length_664" = bitcast { i8*, i8* }* %"$ListUtils.list_length_663" to { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*)*, i8* }* + %"$ListUtils.list_length_665" = load { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*)*, i8* }, { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*)*, i8* }* %"$ListUtils.list_length_664", align 8 + %"$ListUtils.list_length_fptr_666" = extractvalue { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*)*, i8* } %"$ListUtils.list_length_665", 0 + %"$ListUtils.list_length_envptr_667" = extractvalue { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*)*, i8* } %"$ListUtils.list_length_665", 1 + %"$ListUtils.list_length_call_668" = call { %Uint32 (i8*, %TName_List_String*)*, i8* } %"$ListUtils.list_length_fptr_666"(i8* %"$ListUtils.list_length_envptr_667"), !dbg !49 + store { %Uint32 (i8*, %TName_List_String*)*, i8* } %"$ListUtils.list_length_call_668", { %Uint32 (i8*, %TName_List_String*)*, i8* }* %ll, align 8, !dbg !50 + %"$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 = %"$have_gas_660" + call void @_out_of_gas() + br label %"$have_gas_672" + +"$have_gas_672": ; preds = %"$out_of_gas_671", %"$have_gas_660" + %"$consume_673" = sub i64 %"$gasrem_669", 1 + store i64 %"$consume_673", i64* @_gasrem, align 8 %n = alloca %Uint32, 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" + call void @llvm.dbg.declare(metadata %Uint32* %n, metadata !51, metadata !DIExpression()), !dbg !52 + %"$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_668": ; preds = %"$have_gas_664" +"$out_of_gas_676": ; preds = %"$have_gas_672" call void @_out_of_gas() - br label %"$have_gas_669" + br label %"$have_gas_677" -"$have_gas_669": ; preds = %"$out_of_gas_668", %"$have_gas_664" - %"$consume_670" = sub i64 %"$gasrem_666", 1 - store i64 %"$consume_670", i64* @_gasrem, align 8 +"$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 %"$ll_12" = alloca %Uint32, align 8 - %"$ll_671" = load { %Uint32 (i8*, %TName_List_String*)*, i8* }, { %Uint32 (i8*, %TName_List_String*)*, i8* }* %ll, align 8 - %"$ll_fptr_672" = extractvalue { %Uint32 (i8*, %TName_List_String*)*, i8* } %"$ll_671", 0 - %"$ll_envptr_673" = extractvalue { %Uint32 (i8*, %TName_List_String*)*, i8* } %"$ll_671", 1 - %"$ll_call_674" = call %Uint32 %"$ll_fptr_672"(i8* %"$ll_envptr_673", %TName_List_String* %1), !dbg !29 - store %Uint32 %"$ll_call_674", %Uint32* %"$ll_12", align 4, !dbg !29 - %"$$ll_12_675" = load %Uint32, %Uint32* %"$ll_12", align 4 - store %Uint32 %"$$ll_12_675", %Uint32* %n, align 4, !dbg !29 - %"$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 = %"$have_gas_669" - call void @_out_of_gas() - br label %"$have_gas_679" - -"$have_gas_679": ; preds = %"$out_of_gas_678", %"$have_gas_669" - %"$consume_680" = sub i64 %"$gasrem_676", 1 - store i64 %"$consume_680", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %Uint32* %"$ll_12", metadata !53, metadata !DIExpression()), !dbg !54 + %"$ll_679" = load { %Uint32 (i8*, %TName_List_String*)*, i8* }, { %Uint32 (i8*, %TName_List_String*)*, i8* }* %ll, align 8 + %"$ll_fptr_680" = extractvalue { %Uint32 (i8*, %TName_List_String*)*, i8* } %"$ll_679", 0 + %"$ll_envptr_681" = extractvalue { %Uint32 (i8*, %TName_List_String*)*, i8* } %"$ll_679", 1 + %"$ll_call_682" = call %Uint32 %"$ll_fptr_680"(i8* %"$ll_envptr_681", %TName_List_String* %1), !dbg !54 + store %Uint32 %"$ll_call_682", %Uint32* %"$ll_12", align 4, !dbg !54 + %"$$ll_12_683" = load %Uint32, %Uint32* %"$ll_12", align 4 + store %Uint32 %"$$ll_12_683", %Uint32* %n, align 4, !dbg !54 + %"$gasrem_684" = load i64, i64* @_gasrem, align 8 + %"$gascmp_685" = icmp ugt i64 1, %"$gasrem_684" + br i1 %"$gascmp_685", label %"$out_of_gas_686", label %"$have_gas_687" + +"$out_of_gas_686": ; preds = %"$have_gas_677" + call void @_out_of_gas() + br label %"$have_gas_687" + +"$have_gas_687": ; preds = %"$out_of_gas_686", %"$have_gas_677" + %"$consume_688" = sub i64 %"$gasrem_684", 1 + store i64 %"$consume_688", i64* @_gasrem, align 8 %two = alloca %Uint32, 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_679" - call void @_out_of_gas() - br label %"$have_gas_684" - -"$have_gas_684": ; preds = %"$out_of_gas_683", %"$have_gas_679" - %"$consume_685" = sub i64 %"$gasrem_681", 1 - store i64 %"$consume_685", i64* @_gasrem, align 8 - store %Uint32 { i32 2 }, %Uint32* %two, align 4, !dbg !30 - %"$gasrem_686" = load i64, i64* @_gasrem, align 8 - %"$gascmp_687" = icmp ugt i64 4, %"$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", 4 - store i64 %"$consume_690", i64* @_gasrem, align 8 - %"$n_691" = load %Uint32, %Uint32* %n, align 4 - %"$two_692" = load %Uint32, %Uint32* %two, align 4 - %"$add_call_693" = call %Uint32 @_add_Uint32(%Uint32 %"$n_691", %Uint32 %"$two_692"), !dbg !31 - store %Uint32 %"$add_call_693", %Uint32* %"$retval_54", align 4, !dbg !31 - %"$$retval_54_694" = load %Uint32, %Uint32* %"$retval_54", align 4 - ret %Uint32 %"$$retval_54_694" + call void @llvm.dbg.declare(metadata %Uint32* %two, metadata !55, metadata !DIExpression()), !dbg !56 + %"$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 = %"$have_gas_687" + call void @_out_of_gas() + br label %"$have_gas_692" + +"$have_gas_692": ; preds = %"$out_of_gas_691", %"$have_gas_687" + %"$consume_693" = sub i64 %"$gasrem_689", 1 + store i64 %"$consume_693", i64* @_gasrem, align 8 + store %Uint32 { i32 2 }, %Uint32* %two, align 4, !dbg !57 + %"$gasrem_694" = load i64, i64* @_gasrem, align 8 + %"$gascmp_695" = icmp ugt i64 4, %"$gasrem_694" + br i1 %"$gascmp_695", label %"$out_of_gas_696", label %"$have_gas_697" + +"$out_of_gas_696": ; preds = %"$have_gas_692" + call void @_out_of_gas() + br label %"$have_gas_697" + +"$have_gas_697": ; preds = %"$out_of_gas_696", %"$have_gas_692" + %"$consume_698" = sub i64 %"$gasrem_694", 4 + store i64 %"$consume_698", i64* @_gasrem, align 8 + %"$n_699" = load %Uint32, %Uint32* %n, align 4 + %"$two_700" = load %Uint32, %Uint32* %two, align 4 + %"$add_call_701" = call %Uint32 @_add_Uint32(%Uint32 %"$n_699", %Uint32 %"$two_700"), !dbg !58 + store %Uint32 %"$add_call_701", %Uint32* %"$retval_54", align 4, !dbg !58 + %"$$retval_54_702" = load %Uint32, %Uint32* %"$retval_54", align 4 + ret %Uint32 %"$$retval_54_702" } -define internal { %Uint32 (i8*, %TName_List_String*)*, i8* } @"$fundef_51"(%"$$fundef_51_env_146"* %0) !dbg !32 { +define internal { %Uint32 (i8*, %TName_List_String*)*, i8* } @"$fundef_51"(%"$$fundef_51_env_146"* %0) !dbg !59 { entry: - %"$$fundef_51_env_ListUtils.list_length_628" = getelementptr inbounds %"$$fundef_51_env_146", %"$$fundef_51_env_146"* %0, i32 0, i32 0 - %"$ListUtils.list_length_envload_629" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_51_env_ListUtils.list_length_628", align 8 + %"$$fundef_51_env_ListUtils.list_length_636" = getelementptr inbounds %"$$fundef_51_env_146", %"$$fundef_51_env_146"* %0, i32 0, i32 0 + %"$ListUtils.list_length_envload_637" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_51_env_ListUtils.list_length_636", align 8 %ListUtils.list_length = alloca { i8*, i8* }*, align 8 - store { i8*, i8* }* %"$ListUtils.list_length_envload_629", { i8*, i8* }** %ListUtils.list_length, align 8 + store { i8*, i8* }* %"$ListUtils.list_length_envload_637", { i8*, i8* }** %ListUtils.list_length, align 8 %"$retval_52" = alloca { %Uint32 (i8*, %TName_List_String*)*, i8* }, 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 = %entry - call void @_out_of_gas() - br label %"$have_gas_633" - -"$have_gas_633": ; preds = %"$out_of_gas_632", %entry - %"$consume_634" = sub i64 %"$gasrem_630", 1 - store i64 %"$consume_634", i64* @_gasrem, align 8 - %"$$fundef_53_envp_635_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_53_envp_635_salloc" = call i8* @_salloc(i8* %"$$fundef_53_envp_635_load", i64 8) - %"$$fundef_53_envp_635" = bitcast i8* %"$$fundef_53_envp_635_salloc" to %"$$fundef_53_env_145"* - %"$$fundef_53_env_voidp_637" = bitcast %"$$fundef_53_env_145"* %"$$fundef_53_envp_635" to i8* - %"$$fundef_53_cloval_638" = insertvalue { %Uint32 (i8*, %TName_List_String*)*, i8* } { %Uint32 (i8*, %TName_List_String*)* bitcast (%Uint32 (%"$$fundef_53_env_145"*, %TName_List_String*)* @"$fundef_53" to %Uint32 (i8*, %TName_List_String*)*), i8* undef }, i8* %"$$fundef_53_env_voidp_637", 1 - %"$$fundef_53_env_ListUtils.list_length_639" = getelementptr inbounds %"$$fundef_53_env_145", %"$$fundef_53_env_145"* %"$$fundef_53_envp_635", i32 0, i32 0 - %"$ListUtils.list_length_640" = load { i8*, i8* }*, { i8*, i8* }** %ListUtils.list_length, align 8 - store { i8*, i8* }* %"$ListUtils.list_length_640", { i8*, i8* }** %"$$fundef_53_env_ListUtils.list_length_639", align 8 - store { %Uint32 (i8*, %TName_List_String*)*, i8* } %"$$fundef_53_cloval_638", { %Uint32 (i8*, %TName_List_String*)*, i8* }* %"$retval_52", align 8, !dbg !33 - %"$$retval_52_641" = load { %Uint32 (i8*, %TName_List_String*)*, i8* }, { %Uint32 (i8*, %TName_List_String*)*, i8* }* %"$retval_52", align 8 - ret { %Uint32 (i8*, %TName_List_String*)*, i8* } %"$$retval_52_641" + %"$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" + +"$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", 1 + store i64 %"$consume_642", i64* @_gasrem, align 8 + %"$$fundef_53_envp_643_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_53_envp_643_salloc" = call i8* @_salloc(i8* %"$$fundef_53_envp_643_load", i64 8) + %"$$fundef_53_envp_643" = bitcast i8* %"$$fundef_53_envp_643_salloc" to %"$$fundef_53_env_145"* + %"$$fundef_53_env_voidp_645" = bitcast %"$$fundef_53_env_145"* %"$$fundef_53_envp_643" to i8* + %"$$fundef_53_cloval_646" = insertvalue { %Uint32 (i8*, %TName_List_String*)*, i8* } { %Uint32 (i8*, %TName_List_String*)* bitcast (%Uint32 (%"$$fundef_53_env_145"*, %TName_List_String*)* @"$fundef_53" to %Uint32 (i8*, %TName_List_String*)*), i8* undef }, i8* %"$$fundef_53_env_voidp_645", 1 + %"$$fundef_53_env_ListUtils.list_length_647" = getelementptr inbounds %"$$fundef_53_env_145", %"$$fundef_53_env_145"* %"$$fundef_53_envp_643", i32 0, i32 0 + %"$ListUtils.list_length_648" = load { i8*, i8* }*, { i8*, i8* }** %ListUtils.list_length, align 8 + store { i8*, i8* }* %"$ListUtils.list_length_648", { i8*, i8* }** %"$$fundef_53_env_ListUtils.list_length_647", align 8 + store { %Uint32 (i8*, %TName_List_String*)*, i8* } %"$$fundef_53_cloval_646", { %Uint32 (i8*, %TName_List_String*)*, i8* }* %"$retval_52", align 8, !dbg !60 + %"$$retval_52_649" = load { %Uint32 (i8*, %TName_List_String*)*, i8* }, { %Uint32 (i8*, %TName_List_String*)*, i8* }* %"$retval_52", align 8 + ret { %Uint32 (i8*, %TName_List_String*)*, i8* } %"$$retval_52_649" } -define internal %Uint32 @"$fundef_48"(%"$$fundef_48_env_147"* %0, [20 x i8]* %1) !dbg !34 { +define internal %Uint32 @"$fundef_48"(%"$$fundef_48_env_147"* %0, [20 x i8]* %1) !dbg !61 { entry: + %"$h_635" = alloca [20 x i8]*, align 8 + store [20 x i8]* %1, [20 x i8]** %"$h_635", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$h_635", metadata !63, metadata !DIExpression()), !dbg !65 %h = load [20 x i8], [20 x i8]* %1, align 1 - %"$$fundef_48_env_one_615" = getelementptr inbounds %"$$fundef_48_env_147", %"$$fundef_48_env_147"* %0, i32 0, i32 0 - %"$one_envload_616" = load %Uint32, %Uint32* %"$$fundef_48_env_one_615", align 4 + %"$$fundef_48_env_one_622" = getelementptr inbounds %"$$fundef_48_env_147", %"$$fundef_48_env_147"* %0, i32 0, i32 0 + %"$one_envload_623" = load %Uint32, %Uint32* %"$$fundef_48_env_one_622", align 4 %one = alloca %Uint32, align 8 - store %Uint32 %"$one_envload_616", %Uint32* %one, align 4 - %"$$fundef_48_env_z_617" = getelementptr inbounds %"$$fundef_48_env_147", %"$$fundef_48_env_147"* %0, i32 0, i32 1 - %"$z_envload_618" = load %Uint32, %Uint32* %"$$fundef_48_env_z_617", align 4 + store %Uint32 %"$one_envload_623", %Uint32* %one, align 4 + %"$$fundef_48_env_z_624" = getelementptr inbounds %"$$fundef_48_env_147", %"$$fundef_48_env_147"* %0, i32 0, i32 1 + %"$z_envload_625" = load %Uint32, %Uint32* %"$$fundef_48_env_z_624", align 4 %z = alloca %Uint32, align 8 - store %Uint32 %"$z_envload_618", %Uint32* %z, align 4 + store %Uint32 %"$z_envload_625", %Uint32* %z, align 4 %"$retval_49" = alloca %Uint32, align 8 - %"$gasrem_619" = load i64, i64* @_gasrem, align 8 - %"$gascmp_620" = icmp ugt i64 4, %"$gasrem_619" - br i1 %"$gascmp_620", label %"$out_of_gas_621", label %"$have_gas_622" - -"$out_of_gas_621": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_622" - -"$have_gas_622": ; preds = %"$out_of_gas_621", %entry - %"$consume_623" = sub i64 %"$gasrem_619", 4 - store i64 %"$consume_623", i64* @_gasrem, align 8 - %"$one_624" = load %Uint32, %Uint32* %one, align 4 - %"$z_625" = load %Uint32, %Uint32* %z, align 4 - %"$add_call_626" = call %Uint32 @_add_Uint32(%Uint32 %"$one_624", %Uint32 %"$z_625"), !dbg !36 - store %Uint32 %"$add_call_626", %Uint32* %"$retval_49", align 4, !dbg !36 - %"$$retval_49_627" = load %Uint32, %Uint32* %"$retval_49", align 4 - ret %Uint32 %"$$retval_49_627" + call void @llvm.dbg.declare(metadata %Uint32* %"$retval_49", metadata !66, metadata !DIExpression()), !dbg !67 + %"$gasrem_626" = load i64, i64* @_gasrem, align 8 + %"$gascmp_627" = icmp ugt i64 4, %"$gasrem_626" + br i1 %"$gascmp_627", label %"$out_of_gas_628", label %"$have_gas_629" + +"$out_of_gas_628": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_629" + +"$have_gas_629": ; preds = %"$out_of_gas_628", %entry + %"$consume_630" = sub i64 %"$gasrem_626", 4 + store i64 %"$consume_630", i64* @_gasrem, align 8 + %"$one_631" = load %Uint32, %Uint32* %one, align 4 + %"$z_632" = load %Uint32, %Uint32* %z, align 4 + %"$add_call_633" = call %Uint32 @_add_Uint32(%Uint32 %"$one_631", %Uint32 %"$z_632"), !dbg !67 + store %Uint32 %"$add_call_633", %Uint32* %"$retval_49", align 4, !dbg !67 + %"$$retval_49_634" = load %Uint32, %Uint32* %"$retval_49", align 4 + ret %Uint32 %"$$retval_49_634" } -define internal { %Uint32 (i8*, [20 x i8]*)*, i8* } @"$fundef_46"(%"$$fundef_46_env_148"* %0, %Uint32 %1) !dbg !37 { +define internal { %Uint32 (i8*, [20 x i8]*)*, i8* } @"$fundef_46"(%"$$fundef_46_env_148"* %0, %Uint32 %1) !dbg !68 { entry: - %"$$fundef_46_env_one_600" = getelementptr inbounds %"$$fundef_46_env_148", %"$$fundef_46_env_148"* %0, i32 0, i32 0 - %"$one_envload_601" = load %Uint32, %Uint32* %"$$fundef_46_env_one_600", align 4 + %"$z_621" = alloca %Uint32, align 8 + store %Uint32 %1, %Uint32* %"$z_621", align 4 + call void @llvm.dbg.declare(metadata %Uint32* %"$z_621", metadata !69, metadata !DIExpression()), !dbg !70 + %"$$fundef_46_env_one_606" = getelementptr inbounds %"$$fundef_46_env_148", %"$$fundef_46_env_148"* %0, i32 0, i32 0 + %"$one_envload_607" = load %Uint32, %Uint32* %"$$fundef_46_env_one_606", align 4 %one = alloca %Uint32, align 8 - store %Uint32 %"$one_envload_601", %Uint32* %one, align 4 + store %Uint32 %"$one_envload_607", %Uint32* %one, align 4 %"$retval_47" = alloca { %Uint32 (i8*, [20 x i8]*)*, i8* }, align 8 - %"$gasrem_602" = load i64, i64* @_gasrem, align 8 - %"$gascmp_603" = icmp ugt i64 1, %"$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", 1 - store i64 %"$consume_606", i64* @_gasrem, align 8 - %"$$fundef_48_envp_607_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_48_envp_607_salloc" = call i8* @_salloc(i8* %"$$fundef_48_envp_607_load", i64 8) - %"$$fundef_48_envp_607" = bitcast i8* %"$$fundef_48_envp_607_salloc" to %"$$fundef_48_env_147"* - %"$$fundef_48_env_voidp_609" = bitcast %"$$fundef_48_env_147"* %"$$fundef_48_envp_607" to i8* - %"$$fundef_48_cloval_610" = insertvalue { %Uint32 (i8*, [20 x i8]*)*, i8* } { %Uint32 (i8*, [20 x i8]*)* bitcast (%Uint32 (%"$$fundef_48_env_147"*, [20 x i8]*)* @"$fundef_48" to %Uint32 (i8*, [20 x i8]*)*), i8* undef }, i8* %"$$fundef_48_env_voidp_609", 1 - %"$$fundef_48_env_one_611" = getelementptr inbounds %"$$fundef_48_env_147", %"$$fundef_48_env_147"* %"$$fundef_48_envp_607", i32 0, i32 0 - %"$one_612" = load %Uint32, %Uint32* %one, align 4 - store %Uint32 %"$one_612", %Uint32* %"$$fundef_48_env_one_611", align 4 - %"$$fundef_48_env_z_613" = getelementptr inbounds %"$$fundef_48_env_147", %"$$fundef_48_env_147"* %"$$fundef_48_envp_607", i32 0, i32 1 - store %Uint32 %1, %Uint32* %"$$fundef_48_env_z_613", align 4 - store { %Uint32 (i8*, [20 x i8]*)*, i8* } %"$$fundef_48_cloval_610", { %Uint32 (i8*, [20 x i8]*)*, i8* }* %"$retval_47", align 8, !dbg !38 - %"$$retval_47_614" = load { %Uint32 (i8*, [20 x i8]*)*, i8* }, { %Uint32 (i8*, [20 x i8]*)*, i8* }* %"$retval_47", align 8 - ret { %Uint32 (i8*, [20 x i8]*)*, i8* } %"$$retval_47_614" + %"$gasrem_608" = load i64, i64* @_gasrem, align 8 + %"$gascmp_609" = icmp ugt i64 1, %"$gasrem_608" + br i1 %"$gascmp_609", label %"$out_of_gas_610", label %"$have_gas_611" + +"$out_of_gas_610": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_611" + +"$have_gas_611": ; preds = %"$out_of_gas_610", %entry + %"$consume_612" = sub i64 %"$gasrem_608", 1 + store i64 %"$consume_612", i64* @_gasrem, align 8 + %"$$fundef_48_envp_613_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_48_envp_613_salloc" = call i8* @_salloc(i8* %"$$fundef_48_envp_613_load", i64 8) + %"$$fundef_48_envp_613" = bitcast i8* %"$$fundef_48_envp_613_salloc" to %"$$fundef_48_env_147"* + %"$$fundef_48_env_voidp_615" = bitcast %"$$fundef_48_env_147"* %"$$fundef_48_envp_613" to i8* + %"$$fundef_48_cloval_616" = insertvalue { %Uint32 (i8*, [20 x i8]*)*, i8* } { %Uint32 (i8*, [20 x i8]*)* bitcast (%Uint32 (%"$$fundef_48_env_147"*, [20 x i8]*)* @"$fundef_48" to %Uint32 (i8*, [20 x i8]*)*), i8* undef }, i8* %"$$fundef_48_env_voidp_615", 1 + %"$$fundef_48_env_one_617" = getelementptr inbounds %"$$fundef_48_env_147", %"$$fundef_48_env_147"* %"$$fundef_48_envp_613", i32 0, i32 0 + %"$one_618" = load %Uint32, %Uint32* %one, align 4 + store %Uint32 %"$one_618", %Uint32* %"$$fundef_48_env_one_617", align 4 + %"$$fundef_48_env_z_619" = getelementptr inbounds %"$$fundef_48_env_147", %"$$fundef_48_env_147"* %"$$fundef_48_envp_613", i32 0, i32 1 + store %Uint32 %1, %Uint32* %"$$fundef_48_env_z_619", align 4 + store { %Uint32 (i8*, [20 x i8]*)*, i8* } %"$$fundef_48_cloval_616", { %Uint32 (i8*, [20 x i8]*)*, i8* }* %"$retval_47", align 8, !dbg !71 + %"$$retval_47_620" = load { %Uint32 (i8*, [20 x i8]*)*, i8* }, { %Uint32 (i8*, [20 x i8]*)*, i8* }* %"$retval_47", align 8 + ret { %Uint32 (i8*, [20 x i8]*)*, i8* } %"$$retval_47_620" } -define internal { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } @"$fundef_44"(%"$$fundef_44_env_149"* %0) !dbg !39 { +define internal { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } @"$fundef_44"(%"$$fundef_44_env_149"* %0) !dbg !72 { entry: - %"$$fundef_44_env_list_foldl_522" = getelementptr inbounds %"$$fundef_44_env_149", %"$$fundef_44_env_149"* %0, i32 0, i32 0 - %"$list_foldl_envload_523" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_44_env_list_foldl_522", align 8 + %"$$fundef_44_env_list_foldl_528" = getelementptr inbounds %"$$fundef_44_env_149", %"$$fundef_44_env_149"* %0, i32 0, i32 0 + %"$list_foldl_envload_529" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_44_env_list_foldl_528", align 8 %list_foldl = alloca { i8*, i8* }*, align 8 - store { i8*, i8* }* %"$list_foldl_envload_523", { i8*, i8* }** %list_foldl, align 8 + store { i8*, i8* }* %"$list_foldl_envload_529", { i8*, i8* }** %list_foldl, align 8 %"$retval_45" = alloca { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* }, align 8 - %"$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" + %"$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_526": ; preds = %entry +"$out_of_gas_532": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_527" + br label %"$have_gas_533" -"$have_gas_527": ; preds = %"$out_of_gas_526", %entry - %"$consume_528" = sub i64 %"$gasrem_524", 1 - store i64 %"$consume_528", i64* @_gasrem, align 8 +"$have_gas_533": ; preds = %"$out_of_gas_532", %entry + %"$consume_534" = sub i64 %"$gasrem_530", 1 + store i64 %"$consume_534", 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_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" - -"$out_of_gas_531": ; preds = %"$have_gas_527" - call void @_out_of_gas() - br label %"$have_gas_532" - -"$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 - %"$list_foldl_534" = load { i8*, i8* }*, { i8*, i8* }** %list_foldl, align 8 - %"$list_foldl_535" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$list_foldl_534", i32 2 - %"$list_foldl_536" = bitcast { i8*, i8* }* %"$list_foldl_535" to { { i8*, i8* }* (i8*)*, i8* }* - %"$list_foldl_537" = load { { i8*, i8* }* (i8*)*, i8* }, { { i8*, i8* }* (i8*)*, i8* }* %"$list_foldl_536", align 8 - %"$list_foldl_fptr_538" = extractvalue { { i8*, i8* }* (i8*)*, i8* } %"$list_foldl_537", 0 - %"$list_foldl_envptr_539" = extractvalue { { i8*, i8* }* (i8*)*, i8* } %"$list_foldl_537", 1 - %"$list_foldl_call_540" = call { i8*, i8* }* %"$list_foldl_fptr_538"(i8* %"$list_foldl_envptr_539"), !dbg !40 - %"$list_foldl_541" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$list_foldl_call_540", i32 1 - %"$list_foldl_542" = bitcast { i8*, i8* }* %"$list_foldl_541" 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_543" = 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_542", align 8 - %"$list_foldl_fptr_544" = 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_543", 0 - %"$list_foldl_envptr_545" = 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_543", 1 - %"$list_foldl_call_546" = call { { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } %"$list_foldl_fptr_544"(i8* %"$list_foldl_envptr_545"), !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_546", { { { %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_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_532" - call void @_out_of_gas() - br label %"$have_gas_550" - -"$have_gas_550": ; preds = %"$out_of_gas_549", %"$have_gas_532" - %"$consume_551" = sub i64 %"$gasrem_547", 1 - store i64 %"$consume_551", i64* @_gasrem, 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" + +"$out_of_gas_537": ; preds = %"$have_gas_533" + call void @_out_of_gas() + br label %"$have_gas_538" + +"$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 + %"$list_foldl_540" = load { i8*, i8* }*, { i8*, i8* }** %list_foldl, align 8 + %"$list_foldl_541" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$list_foldl_540", i32 2 + %"$list_foldl_542" = bitcast { i8*, i8* }* %"$list_foldl_541" to { { i8*, i8* }* (i8*)*, i8* }* + %"$list_foldl_543" = load { { i8*, i8* }* (i8*)*, i8* }, { { i8*, i8* }* (i8*)*, i8* }* %"$list_foldl_542", align 8 + %"$list_foldl_fptr_544" = extractvalue { { i8*, i8* }* (i8*)*, i8* } %"$list_foldl_543", 0 + %"$list_foldl_envptr_545" = extractvalue { { i8*, i8* }* (i8*)*, i8* } %"$list_foldl_543", 1 + %"$list_foldl_call_546" = call { i8*, i8* }* %"$list_foldl_fptr_544"(i8* %"$list_foldl_envptr_545"), !dbg !73 + %"$list_foldl_547" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$list_foldl_call_546", i32 1 + %"$list_foldl_548" = bitcast { i8*, i8* }* %"$list_foldl_547" 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_549" = 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_548", align 8 + %"$list_foldl_fptr_550" = 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_549", 0 + %"$list_foldl_envptr_551" = 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_549", 1 + %"$list_foldl_call_552" = call { { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } %"$list_foldl_fptr_550"(i8* %"$list_foldl_envptr_551"), !dbg !73 + store { { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } %"$list_foldl_call_552", { { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* })*, i8* }* %foldl, align 8, !dbg !74 + %"$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_538" + call void @_out_of_gas() + br label %"$have_gas_556" + +"$have_gas_556": ; preds = %"$out_of_gas_555", %"$have_gas_538" + %"$consume_557" = sub i64 %"$gasrem_553", 1 + store i64 %"$consume_557", i64* @_gasrem, align 8 %one = alloca %Uint32, align 8 - %"$gasrem_552" = load i64, i64* @_gasrem, align 8 - %"$gascmp_553" = icmp ugt i64 1, %"$gasrem_552" - br i1 %"$gascmp_553", label %"$out_of_gas_554", label %"$have_gas_555" + call void @llvm.dbg.declare(metadata %Uint32* %one, metadata !75, metadata !DIExpression()), !dbg !76 + %"$gasrem_558" = load i64, i64* @_gasrem, align 8 + %"$gascmp_559" = icmp ugt i64 1, %"$gasrem_558" + br i1 %"$gascmp_559", label %"$out_of_gas_560", label %"$have_gas_561" -"$out_of_gas_554": ; preds = %"$have_gas_550" +"$out_of_gas_560": ; preds = %"$have_gas_556" call void @_out_of_gas() - br label %"$have_gas_555" + br label %"$have_gas_561" -"$have_gas_555": ; preds = %"$out_of_gas_554", %"$have_gas_550" - %"$consume_556" = sub i64 %"$gasrem_552", 1 - store i64 %"$consume_556", i64* @_gasrem, align 8 - store %Uint32 { i32 1 }, %Uint32* %one, align 4, !dbg !42 - %"$gasrem_557" = load i64, i64* @_gasrem, align 8 - %"$gascmp_558" = icmp ugt i64 1, %"$gasrem_557" - br i1 %"$gascmp_558", label %"$out_of_gas_559", label %"$have_gas_560" +"$have_gas_561": ; preds = %"$out_of_gas_560", %"$have_gas_556" + %"$consume_562" = sub i64 %"$gasrem_558", 1 + store i64 %"$consume_562", i64* @_gasrem, align 8 + store %Uint32 { i32 1 }, %Uint32* %one, align 4, !dbg !77 + %"$gasrem_563" = load i64, i64* @_gasrem, align 8 + %"$gascmp_564" = icmp ugt i64 1, %"$gasrem_563" + br i1 %"$gascmp_564", label %"$out_of_gas_565", label %"$have_gas_566" -"$out_of_gas_559": ; preds = %"$have_gas_555" +"$out_of_gas_565": ; preds = %"$have_gas_561" call void @_out_of_gas() - br label %"$have_gas_560" + br label %"$have_gas_566" -"$have_gas_560": ; preds = %"$out_of_gas_559", %"$have_gas_555" - %"$consume_561" = sub i64 %"$gasrem_557", 1 - store i64 %"$consume_561", i64* @_gasrem, align 8 +"$have_gas_566": ; preds = %"$out_of_gas_565", %"$have_gas_561" + %"$consume_567" = sub i64 %"$gasrem_563", 1 + store i64 %"$consume_567", i64* @_gasrem, align 8 %iter = alloca { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* }, 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_564": ; preds = %"$have_gas_560" - call void @_out_of_gas() - br label %"$have_gas_565" - -"$have_gas_565": ; preds = %"$out_of_gas_564", %"$have_gas_560" - %"$consume_566" = sub i64 %"$gasrem_562", 1 - store i64 %"$consume_566", i64* @_gasrem, align 8 - %"$$fundef_46_envp_567_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_46_envp_567_salloc" = call i8* @_salloc(i8* %"$$fundef_46_envp_567_load", i64 4) - %"$$fundef_46_envp_567" = bitcast i8* %"$$fundef_46_envp_567_salloc" to %"$$fundef_46_env_148"* - %"$$fundef_46_env_voidp_569" = bitcast %"$$fundef_46_env_148"* %"$$fundef_46_envp_567" to i8* - %"$$fundef_46_cloval_570" = 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_46_env_148"*, %Uint32)* @"$fundef_46" to { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*), i8* undef }, i8* %"$$fundef_46_env_voidp_569", 1 - %"$$fundef_46_env_one_571" = getelementptr inbounds %"$$fundef_46_env_148", %"$$fundef_46_env_148"* %"$$fundef_46_envp_567", i32 0, i32 0 - %"$one_572" = load %Uint32, %Uint32* %one, align 4 - store %Uint32 %"$one_572", %Uint32* %"$$fundef_46_env_one_571", align 4 - store { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* } %"$$fundef_46_cloval_570", { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* }* %iter, align 8, !dbg !43 - %"$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_565" - call void @_out_of_gas() - br label %"$have_gas_576" - -"$have_gas_576": ; preds = %"$out_of_gas_575", %"$have_gas_565" - %"$consume_577" = sub i64 %"$gasrem_573", 1 - store i64 %"$consume_577", i64* @_gasrem, 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" + +"$out_of_gas_570": ; preds = %"$have_gas_566" + call void @_out_of_gas() + br label %"$have_gas_571" + +"$have_gas_571": ; preds = %"$out_of_gas_570", %"$have_gas_566" + %"$consume_572" = sub i64 %"$gasrem_568", 1 + store i64 %"$consume_572", i64* @_gasrem, align 8 + %"$$fundef_46_envp_573_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_46_envp_573_salloc" = call i8* @_salloc(i8* %"$$fundef_46_envp_573_load", i64 4) + %"$$fundef_46_envp_573" = bitcast i8* %"$$fundef_46_envp_573_salloc" to %"$$fundef_46_env_148"* + %"$$fundef_46_env_voidp_575" = bitcast %"$$fundef_46_env_148"* %"$$fundef_46_envp_573" to i8* + %"$$fundef_46_cloval_576" = 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_46_env_148"*, %Uint32)* @"$fundef_46" to { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*), i8* undef }, i8* %"$$fundef_46_env_voidp_575", 1 + %"$$fundef_46_env_one_577" = getelementptr inbounds %"$$fundef_46_env_148", %"$$fundef_46_env_148"* %"$$fundef_46_envp_573", i32 0, i32 0 + %"$one_578" = load %Uint32, %Uint32* %one, align 4 + store %Uint32 %"$one_578", %Uint32* %"$$fundef_46_env_one_577", align 4 + store { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* } %"$$fundef_46_cloval_576", { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* }* %iter, align 8, !dbg !78 + %"$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" + +"$out_of_gas_581": ; preds = %"$have_gas_571" + call void @_out_of_gas() + br label %"$have_gas_582" + +"$have_gas_582": ; preds = %"$out_of_gas_581", %"$have_gas_571" + %"$consume_583" = sub i64 %"$gasrem_579", 1 + store i64 %"$consume_583", i64* @_gasrem, align 8 %init = alloca %Uint32, 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" + call void @llvm.dbg.declare(metadata %Uint32* %init, metadata !79, metadata !DIExpression()), !dbg !80 + %"$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_580": ; preds = %"$have_gas_576" +"$out_of_gas_586": ; preds = %"$have_gas_582" call void @_out_of_gas() - br label %"$have_gas_581" + br label %"$have_gas_587" -"$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 %Uint32 zeroinitializer, %Uint32* %init, align 4, !dbg !44 - %"$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" +"$have_gas_587": ; preds = %"$out_of_gas_586", %"$have_gas_582" + %"$consume_588" = sub i64 %"$gasrem_584", 1 + store i64 %"$consume_588", i64* @_gasrem, align 8 + store %Uint32 zeroinitializer, %Uint32* %init, align 4, !dbg !81 + %"$gasrem_589" = load i64, i64* @_gasrem, align 8 + %"$gascmp_590" = icmp ugt i64 1, %"$gasrem_589" + br i1 %"$gascmp_590", label %"$out_of_gas_591", label %"$have_gas_592" -"$out_of_gas_585": ; preds = %"$have_gas_581" +"$out_of_gas_591": ; preds = %"$have_gas_587" call void @_out_of_gas() - br label %"$have_gas_586" + br label %"$have_gas_592" -"$have_gas_586": ; preds = %"$out_of_gas_585", %"$have_gas_581" - %"$consume_587" = sub i64 %"$gasrem_583", 1 - store i64 %"$consume_587", i64* @_gasrem, align 8 +"$have_gas_592": ; preds = %"$out_of_gas_591", %"$have_gas_587" + %"$consume_593" = sub i64 %"$gasrem_589", 1 + store i64 %"$consume_593", i64* @_gasrem, align 8 %"$foldl_10" = alloca { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* }, align 8 - %"$foldl_588" = 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_589" = extractvalue { { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } %"$foldl_588", 0 - %"$foldl_envptr_590" = extractvalue { { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } %"$foldl_588", 1 - %"$iter_591" = load { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* }* %iter, align 8 - %"$foldl_call_592" = call { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* } %"$foldl_fptr_589"(i8* %"$foldl_envptr_590", { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* } %"$iter_591"), !dbg !45 - store { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* } %"$foldl_call_592", { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* }* %"$foldl_10", align 8, !dbg !45 + %"$foldl_594" = 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_595" = extractvalue { { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } %"$foldl_594", 0 + %"$foldl_envptr_596" = extractvalue { { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } %"$foldl_594", 1 + %"$iter_597" = load { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* }* %iter, align 8 + %"$foldl_call_598" = call { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* } %"$foldl_fptr_595"(i8* %"$foldl_envptr_596", { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* } %"$iter_597"), !dbg !82 + store { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* } %"$foldl_call_598", { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* }* %"$foldl_10", align 8, !dbg !82 %"$foldl_11" = alloca { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* }, align 8 - %"$$foldl_10_593" = load { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* }* %"$foldl_10", align 8 - %"$$foldl_10_fptr_594" = extractvalue { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* } %"$$foldl_10_593", 0 - %"$$foldl_10_envptr_595" = extractvalue { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* } %"$$foldl_10_593", 1 - %"$init_596" = load %Uint32, %Uint32* %init, align 4 - %"$$foldl_10_call_597" = call { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } %"$$foldl_10_fptr_594"(i8* %"$$foldl_10_envptr_595", %Uint32 %"$init_596"), !dbg !45 - store { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } %"$$foldl_10_call_597", { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* }* %"$foldl_11", align 8, !dbg !45 - %"$$foldl_11_598" = load { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* }, { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* }* %"$foldl_11", align 8 - store { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } %"$$foldl_11_598", { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* }* %"$retval_45", align 8, !dbg !45 - %"$$retval_45_599" = load { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* }, { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* }* %"$retval_45", align 8 - ret { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } %"$$retval_45_599" + %"$$foldl_10_599" = load { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* }* %"$foldl_10", align 8 + %"$$foldl_10_fptr_600" = extractvalue { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* } %"$$foldl_10_599", 0 + %"$$foldl_10_envptr_601" = extractvalue { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* } %"$$foldl_10_599", 1 + %"$init_602" = load %Uint32, %Uint32* %init, align 4 + %"$$foldl_10_call_603" = call { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } %"$$foldl_10_fptr_600"(i8* %"$$foldl_10_envptr_601", %Uint32 %"$init_602"), !dbg !82 + store { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } %"$$foldl_10_call_603", { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* }* %"$foldl_11", align 8, !dbg !82 + %"$$foldl_11_604" = load { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* }, { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* }* %"$foldl_11", align 8 + store { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } %"$$foldl_11_604", { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* }* %"$retval_45", align 8, !dbg !82 + %"$$retval_45_605" = load { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* }, { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* }* %"$retval_45", align 8 + ret { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } %"$$retval_45_605" } -define internal %Uint32 @"$fundef_42"(%"$$fundef_42_env_150"* %0, %String %1) !dbg !46 { +define internal %Uint32 @"$fundef_42"(%"$$fundef_42_env_150"* %0, %String %1) !dbg !83 { entry: - %"$$fundef_42_env_one_509" = getelementptr inbounds %"$$fundef_42_env_150", %"$$fundef_42_env_150"* %0, i32 0, i32 0 - %"$one_envload_510" = load %Uint32, %Uint32* %"$$fundef_42_env_one_509", align 4 + %"$h_527" = alloca %String, align 8 + store %String %1, %String* %"$h_527", align 8 + call void @llvm.dbg.declare(metadata %String* %"$h_527", metadata !84, metadata !DIExpression()), !dbg !86 + %"$$fundef_42_env_one_514" = getelementptr inbounds %"$$fundef_42_env_150", %"$$fundef_42_env_150"* %0, i32 0, i32 0 + %"$one_envload_515" = load %Uint32, %Uint32* %"$$fundef_42_env_one_514", align 4 %one = alloca %Uint32, align 8 - store %Uint32 %"$one_envload_510", %Uint32* %one, align 4 - %"$$fundef_42_env_z_511" = getelementptr inbounds %"$$fundef_42_env_150", %"$$fundef_42_env_150"* %0, i32 0, i32 1 - %"$z_envload_512" = load %Uint32, %Uint32* %"$$fundef_42_env_z_511", align 4 + store %Uint32 %"$one_envload_515", %Uint32* %one, align 4 + %"$$fundef_42_env_z_516" = getelementptr inbounds %"$$fundef_42_env_150", %"$$fundef_42_env_150"* %0, i32 0, i32 1 + %"$z_envload_517" = load %Uint32, %Uint32* %"$$fundef_42_env_z_516", align 4 %z = alloca %Uint32, align 8 - store %Uint32 %"$z_envload_512", %Uint32* %z, align 4 + store %Uint32 %"$z_envload_517", %Uint32* %z, align 4 %"$retval_43" = alloca %Uint32, align 8 - %"$gasrem_513" = load i64, i64* @_gasrem, align 8 - %"$gascmp_514" = icmp ugt i64 4, %"$gasrem_513" - br i1 %"$gascmp_514", label %"$out_of_gas_515", label %"$have_gas_516" - -"$out_of_gas_515": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_516" - -"$have_gas_516": ; preds = %"$out_of_gas_515", %entry - %"$consume_517" = sub i64 %"$gasrem_513", 4 - store i64 %"$consume_517", i64* @_gasrem, align 8 - %"$one_518" = load %Uint32, %Uint32* %one, align 4 - %"$z_519" = load %Uint32, %Uint32* %z, align 4 - %"$add_call_520" = call %Uint32 @_add_Uint32(%Uint32 %"$one_518", %Uint32 %"$z_519"), !dbg !47 - store %Uint32 %"$add_call_520", %Uint32* %"$retval_43", align 4, !dbg !47 - %"$$retval_43_521" = load %Uint32, %Uint32* %"$retval_43", align 4 - ret %Uint32 %"$$retval_43_521" + call void @llvm.dbg.declare(metadata %Uint32* %"$retval_43", metadata !87, metadata !DIExpression()), !dbg !88 + %"$gasrem_518" = load i64, i64* @_gasrem, align 8 + %"$gascmp_519" = icmp ugt i64 4, %"$gasrem_518" + br i1 %"$gascmp_519", label %"$out_of_gas_520", label %"$have_gas_521" + +"$out_of_gas_520": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_521" + +"$have_gas_521": ; preds = %"$out_of_gas_520", %entry + %"$consume_522" = sub i64 %"$gasrem_518", 4 + store i64 %"$consume_522", i64* @_gasrem, align 8 + %"$one_523" = load %Uint32, %Uint32* %one, align 4 + %"$z_524" = load %Uint32, %Uint32* %z, align 4 + %"$add_call_525" = call %Uint32 @_add_Uint32(%Uint32 %"$one_523", %Uint32 %"$z_524"), !dbg !88 + store %Uint32 %"$add_call_525", %Uint32* %"$retval_43", align 4, !dbg !88 + %"$$retval_43_526" = load %Uint32, %Uint32* %"$retval_43", align 4 + ret %Uint32 %"$$retval_43_526" } -define internal { %Uint32 (i8*, %String)*, i8* } @"$fundef_40"(%"$$fundef_40_env_151"* %0, %Uint32 %1) !dbg !48 { +define internal { %Uint32 (i8*, %String)*, i8* } @"$fundef_40"(%"$$fundef_40_env_151"* %0, %Uint32 %1) !dbg !89 { entry: - %"$$fundef_40_env_one_494" = getelementptr inbounds %"$$fundef_40_env_151", %"$$fundef_40_env_151"* %0, i32 0, i32 0 - %"$one_envload_495" = load %Uint32, %Uint32* %"$$fundef_40_env_one_494", align 4 + %"$z_513" = alloca %Uint32, align 8 + store %Uint32 %1, %Uint32* %"$z_513", align 4 + call void @llvm.dbg.declare(metadata %Uint32* %"$z_513", metadata !90, metadata !DIExpression()), !dbg !91 + %"$$fundef_40_env_one_498" = getelementptr inbounds %"$$fundef_40_env_151", %"$$fundef_40_env_151"* %0, i32 0, i32 0 + %"$one_envload_499" = load %Uint32, %Uint32* %"$$fundef_40_env_one_498", align 4 %one = alloca %Uint32, align 8 - store %Uint32 %"$one_envload_495", %Uint32* %one, align 4 + store %Uint32 %"$one_envload_499", %Uint32* %one, align 4 %"$retval_41" = alloca { %Uint32 (i8*, %String)*, i8* }, 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 = %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", 1 - store i64 %"$consume_500", i64* @_gasrem, align 8 - %"$$fundef_42_envp_501_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_42_envp_501_salloc" = call i8* @_salloc(i8* %"$$fundef_42_envp_501_load", i64 8) - %"$$fundef_42_envp_501" = bitcast i8* %"$$fundef_42_envp_501_salloc" to %"$$fundef_42_env_150"* - %"$$fundef_42_env_voidp_503" = bitcast %"$$fundef_42_env_150"* %"$$fundef_42_envp_501" to i8* - %"$$fundef_42_cloval_504" = insertvalue { %Uint32 (i8*, %String)*, i8* } { %Uint32 (i8*, %String)* bitcast (%Uint32 (%"$$fundef_42_env_150"*, %String)* @"$fundef_42" to %Uint32 (i8*, %String)*), i8* undef }, i8* %"$$fundef_42_env_voidp_503", 1 - %"$$fundef_42_env_one_505" = getelementptr inbounds %"$$fundef_42_env_150", %"$$fundef_42_env_150"* %"$$fundef_42_envp_501", i32 0, i32 0 - %"$one_506" = load %Uint32, %Uint32* %one, align 4 - store %Uint32 %"$one_506", %Uint32* %"$$fundef_42_env_one_505", align 4 - %"$$fundef_42_env_z_507" = getelementptr inbounds %"$$fundef_42_env_150", %"$$fundef_42_env_150"* %"$$fundef_42_envp_501", i32 0, i32 1 - store %Uint32 %1, %Uint32* %"$$fundef_42_env_z_507", align 4 - store { %Uint32 (i8*, %String)*, i8* } %"$$fundef_42_cloval_504", { %Uint32 (i8*, %String)*, i8* }* %"$retval_41", align 8, !dbg !49 - %"$$retval_41_508" = load { %Uint32 (i8*, %String)*, i8* }, { %Uint32 (i8*, %String)*, i8* }* %"$retval_41", align 8 - ret { %Uint32 (i8*, %String)*, i8* } %"$$retval_41_508" + %"$gasrem_500" = load i64, i64* @_gasrem, align 8 + %"$gascmp_501" = icmp ugt i64 1, %"$gasrem_500" + br i1 %"$gascmp_501", label %"$out_of_gas_502", label %"$have_gas_503" + +"$out_of_gas_502": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_503" + +"$have_gas_503": ; preds = %"$out_of_gas_502", %entry + %"$consume_504" = sub i64 %"$gasrem_500", 1 + store i64 %"$consume_504", i64* @_gasrem, align 8 + %"$$fundef_42_envp_505_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_42_envp_505_salloc" = call i8* @_salloc(i8* %"$$fundef_42_envp_505_load", i64 8) + %"$$fundef_42_envp_505" = bitcast i8* %"$$fundef_42_envp_505_salloc" to %"$$fundef_42_env_150"* + %"$$fundef_42_env_voidp_507" = bitcast %"$$fundef_42_env_150"* %"$$fundef_42_envp_505" to i8* + %"$$fundef_42_cloval_508" = insertvalue { %Uint32 (i8*, %String)*, i8* } { %Uint32 (i8*, %String)* bitcast (%Uint32 (%"$$fundef_42_env_150"*, %String)* @"$fundef_42" to %Uint32 (i8*, %String)*), i8* undef }, i8* %"$$fundef_42_env_voidp_507", 1 + %"$$fundef_42_env_one_509" = getelementptr inbounds %"$$fundef_42_env_150", %"$$fundef_42_env_150"* %"$$fundef_42_envp_505", i32 0, i32 0 + %"$one_510" = load %Uint32, %Uint32* %one, align 4 + store %Uint32 %"$one_510", %Uint32* %"$$fundef_42_env_one_509", align 4 + %"$$fundef_42_env_z_511" = getelementptr inbounds %"$$fundef_42_env_150", %"$$fundef_42_env_150"* %"$$fundef_42_envp_505", i32 0, i32 1 + store %Uint32 %1, %Uint32* %"$$fundef_42_env_z_511", align 4 + store { %Uint32 (i8*, %String)*, i8* } %"$$fundef_42_cloval_508", { %Uint32 (i8*, %String)*, i8* }* %"$retval_41", align 8, !dbg !92 + %"$$retval_41_512" = load { %Uint32 (i8*, %String)*, i8* }, { %Uint32 (i8*, %String)*, i8* }* %"$retval_41", align 8 + ret { %Uint32 (i8*, %String)*, i8* } %"$$retval_41_512" } -define internal { %Uint32 (i8*, %TName_List_String*)*, i8* } @"$fundef_38"(%"$$fundef_38_env_152"* %0) !dbg !50 { +define internal { %Uint32 (i8*, %TName_List_String*)*, i8* } @"$fundef_38"(%"$$fundef_38_env_152"* %0) !dbg !93 { entry: - %"$$fundef_38_env_list_foldl_416" = getelementptr inbounds %"$$fundef_38_env_152", %"$$fundef_38_env_152"* %0, i32 0, i32 0 - %"$list_foldl_envload_417" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_38_env_list_foldl_416", align 8 + %"$$fundef_38_env_list_foldl_420" = getelementptr inbounds %"$$fundef_38_env_152", %"$$fundef_38_env_152"* %0, i32 0, i32 0 + %"$list_foldl_envload_421" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_38_env_list_foldl_420", align 8 %list_foldl = alloca { i8*, i8* }*, align 8 - store { i8*, i8* }* %"$list_foldl_envload_417", { i8*, i8* }** %list_foldl, align 8 + store { i8*, i8* }* %"$list_foldl_envload_421", { i8*, i8* }** %list_foldl, align 8 %"$retval_39" = alloca { %Uint32 (i8*, %TName_List_String*)*, i8* }, 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" + %"$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" -"$out_of_gas_420": ; preds = %entry +"$out_of_gas_424": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_421" + br label %"$have_gas_425" -"$have_gas_421": ; preds = %"$out_of_gas_420", %entry - %"$consume_422" = sub i64 %"$gasrem_418", 1 - store i64 %"$consume_422", i64* @_gasrem, align 8 +"$have_gas_425": ; preds = %"$out_of_gas_424", %entry + %"$consume_426" = sub i64 %"$gasrem_422", 1 + store i64 %"$consume_426", 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_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_425": ; preds = %"$have_gas_421" - call void @_out_of_gas() - br label %"$have_gas_426" - -"$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 - %"$list_foldl_428" = load { i8*, i8* }*, { i8*, i8* }** %list_foldl, align 8 - %"$list_foldl_429" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$list_foldl_428", i32 0 - %"$list_foldl_430" = bitcast { i8*, i8* }* %"$list_foldl_429" to { { i8*, i8* }* (i8*)*, i8* }* - %"$list_foldl_431" = load { { i8*, i8* }* (i8*)*, i8* }, { { i8*, i8* }* (i8*)*, i8* }* %"$list_foldl_430", align 8 - %"$list_foldl_fptr_432" = extractvalue { { i8*, i8* }* (i8*)*, i8* } %"$list_foldl_431", 0 - %"$list_foldl_envptr_433" = extractvalue { { i8*, i8* }* (i8*)*, i8* } %"$list_foldl_431", 1 - %"$list_foldl_call_434" = call { i8*, i8* }* %"$list_foldl_fptr_432"(i8* %"$list_foldl_envptr_433"), !dbg !51 - %"$list_foldl_435" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$list_foldl_call_434", i32 1 - %"$list_foldl_436" = bitcast { i8*, i8* }* %"$list_foldl_435" to { { { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* }* - %"$list_foldl_437" = 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_436", align 8 - %"$list_foldl_fptr_438" = extractvalue { { { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* } %"$list_foldl_437", 0 - %"$list_foldl_envptr_439" = extractvalue { { { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* } %"$list_foldl_437", 1 - %"$list_foldl_call_440" = call { { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } %"$list_foldl_fptr_438"(i8* %"$list_foldl_envptr_439"), !dbg !51 - store { { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } %"$list_foldl_call_440", { { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* })*, i8* }* %foldl, align 8, !dbg !52 - %"$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" - -"$out_of_gas_443": ; preds = %"$have_gas_426" - call void @_out_of_gas() - br label %"$have_gas_444" - -"$have_gas_444": ; preds = %"$out_of_gas_443", %"$have_gas_426" - %"$consume_445" = sub i64 %"$gasrem_441", 1 - store i64 %"$consume_445", i64* @_gasrem, 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" + +"$out_of_gas_429": ; preds = %"$have_gas_425" + call void @_out_of_gas() + br label %"$have_gas_430" + +"$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 + %"$list_foldl_432" = load { i8*, i8* }*, { i8*, i8* }** %list_foldl, align 8 + %"$list_foldl_433" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$list_foldl_432", i32 0 + %"$list_foldl_434" = bitcast { i8*, i8* }* %"$list_foldl_433" to { { i8*, i8* }* (i8*)*, i8* }* + %"$list_foldl_435" = load { { i8*, i8* }* (i8*)*, i8* }, { { i8*, i8* }* (i8*)*, i8* }* %"$list_foldl_434", align 8 + %"$list_foldl_fptr_436" = extractvalue { { i8*, i8* }* (i8*)*, i8* } %"$list_foldl_435", 0 + %"$list_foldl_envptr_437" = extractvalue { { i8*, i8* }* (i8*)*, i8* } %"$list_foldl_435", 1 + %"$list_foldl_call_438" = call { i8*, i8* }* %"$list_foldl_fptr_436"(i8* %"$list_foldl_envptr_437"), !dbg !94 + %"$list_foldl_439" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$list_foldl_call_438", i32 1 + %"$list_foldl_440" = bitcast { i8*, i8* }* %"$list_foldl_439" to { { { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* }* + %"$list_foldl_441" = 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_440", align 8 + %"$list_foldl_fptr_442" = extractvalue { { { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* } %"$list_foldl_441", 0 + %"$list_foldl_envptr_443" = extractvalue { { { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* } %"$list_foldl_441", 1 + %"$list_foldl_call_444" = call { { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } %"$list_foldl_fptr_442"(i8* %"$list_foldl_envptr_443"), !dbg !94 + store { { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } %"$list_foldl_call_444", { { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* })*, i8* }* %foldl, align 8, !dbg !95 + %"$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_447": ; preds = %"$have_gas_430" + call void @_out_of_gas() + br label %"$have_gas_448" + +"$have_gas_448": ; preds = %"$out_of_gas_447", %"$have_gas_430" + %"$consume_449" = sub i64 %"$gasrem_445", 1 + store i64 %"$consume_449", i64* @_gasrem, align 8 %one = alloca %Uint32, 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" + call void @llvm.dbg.declare(metadata %Uint32* %one, metadata !96, metadata !DIExpression()), !dbg !97 + %"$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_448": ; preds = %"$have_gas_444" +"$out_of_gas_452": ; preds = %"$have_gas_448" call void @_out_of_gas() - br label %"$have_gas_449" + br label %"$have_gas_453" -"$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 %Uint32 { i32 1 }, %Uint32* %one, align 4, !dbg !53 - %"$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" +"$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 %Uint32 { i32 1 }, %Uint32* %one, align 4, !dbg !98 + %"$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_453": ; preds = %"$have_gas_449" +"$out_of_gas_457": ; preds = %"$have_gas_453" call void @_out_of_gas() - br label %"$have_gas_454" + br label %"$have_gas_458" -"$have_gas_454": ; preds = %"$out_of_gas_453", %"$have_gas_449" - %"$consume_455" = sub i64 %"$gasrem_451", 1 - store i64 %"$consume_455", 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 %iter = alloca { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* }, align 8 - %"$gasrem_456" = load i64, i64* @_gasrem, align 8 - %"$gascmp_457" = icmp ugt i64 1, %"$gasrem_456" - br i1 %"$gascmp_457", label %"$out_of_gas_458", label %"$have_gas_459" - -"$out_of_gas_458": ; preds = %"$have_gas_454" - call void @_out_of_gas() - br label %"$have_gas_459" - -"$have_gas_459": ; preds = %"$out_of_gas_458", %"$have_gas_454" - %"$consume_460" = sub i64 %"$gasrem_456", 1 - store i64 %"$consume_460", i64* @_gasrem, align 8 - %"$$fundef_40_envp_461_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_40_envp_461_salloc" = call i8* @_salloc(i8* %"$$fundef_40_envp_461_load", i64 4) - %"$$fundef_40_envp_461" = bitcast i8* %"$$fundef_40_envp_461_salloc" to %"$$fundef_40_env_151"* - %"$$fundef_40_env_voidp_463" = bitcast %"$$fundef_40_env_151"* %"$$fundef_40_envp_461" to i8* - %"$$fundef_40_cloval_464" = insertvalue { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* } { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)* bitcast ({ %Uint32 (i8*, %String)*, i8* } (%"$$fundef_40_env_151"*, %Uint32)* @"$fundef_40" to { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*), i8* undef }, i8* %"$$fundef_40_env_voidp_463", 1 - %"$$fundef_40_env_one_465" = getelementptr inbounds %"$$fundef_40_env_151", %"$$fundef_40_env_151"* %"$$fundef_40_envp_461", i32 0, i32 0 - %"$one_466" = load %Uint32, %Uint32* %one, align 4 - store %Uint32 %"$one_466", %Uint32* %"$$fundef_40_env_one_465", align 4 - store { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* } %"$$fundef_40_cloval_464", { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* }* %iter, align 8, !dbg !54 - %"$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_459" - call void @_out_of_gas() - br label %"$have_gas_470" - -"$have_gas_470": ; preds = %"$out_of_gas_469", %"$have_gas_459" - %"$consume_471" = sub i64 %"$gasrem_467", 1 - store i64 %"$consume_471", i64* @_gasrem, align 8 + %"$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_462": ; preds = %"$have_gas_458" + call void @_out_of_gas() + br label %"$have_gas_463" + +"$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 + %"$$fundef_40_envp_465_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_40_envp_465_salloc" = call i8* @_salloc(i8* %"$$fundef_40_envp_465_load", i64 4) + %"$$fundef_40_envp_465" = bitcast i8* %"$$fundef_40_envp_465_salloc" to %"$$fundef_40_env_151"* + %"$$fundef_40_env_voidp_467" = bitcast %"$$fundef_40_env_151"* %"$$fundef_40_envp_465" to i8* + %"$$fundef_40_cloval_468" = insertvalue { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* } { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)* bitcast ({ %Uint32 (i8*, %String)*, i8* } (%"$$fundef_40_env_151"*, %Uint32)* @"$fundef_40" to { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*), i8* undef }, i8* %"$$fundef_40_env_voidp_467", 1 + %"$$fundef_40_env_one_469" = getelementptr inbounds %"$$fundef_40_env_151", %"$$fundef_40_env_151"* %"$$fundef_40_envp_465", i32 0, i32 0 + %"$one_470" = load %Uint32, %Uint32* %one, align 4 + store %Uint32 %"$one_470", %Uint32* %"$$fundef_40_env_one_469", align 4 + store { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* } %"$$fundef_40_cloval_468", { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* }* %iter, align 8, !dbg !99 + %"$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_463" + call void @_out_of_gas() + br label %"$have_gas_474" + +"$have_gas_474": ; preds = %"$out_of_gas_473", %"$have_gas_463" + %"$consume_475" = sub i64 %"$gasrem_471", 1 + store i64 %"$consume_475", i64* @_gasrem, align 8 %init = alloca %Uint32, 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" + call void @llvm.dbg.declare(metadata %Uint32* %init, metadata !100, metadata !DIExpression()), !dbg !101 + %"$gasrem_476" = load i64, i64* @_gasrem, align 8 + %"$gascmp_477" = icmp ugt i64 1, %"$gasrem_476" + br i1 %"$gascmp_477", label %"$out_of_gas_478", label %"$have_gas_479" -"$out_of_gas_474": ; preds = %"$have_gas_470" +"$out_of_gas_478": ; preds = %"$have_gas_474" call void @_out_of_gas() - br label %"$have_gas_475" + br label %"$have_gas_479" -"$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 %Uint32 zeroinitializer, %Uint32* %init, align 4, !dbg !55 - %"$gasrem_477" = load i64, i64* @_gasrem, align 8 - %"$gascmp_478" = icmp ugt i64 1, %"$gasrem_477" - br i1 %"$gascmp_478", label %"$out_of_gas_479", label %"$have_gas_480" +"$have_gas_479": ; preds = %"$out_of_gas_478", %"$have_gas_474" + %"$consume_480" = sub i64 %"$gasrem_476", 1 + store i64 %"$consume_480", i64* @_gasrem, align 8 + store %Uint32 zeroinitializer, %Uint32* %init, align 4, !dbg !102 + %"$gasrem_481" = load i64, i64* @_gasrem, align 8 + %"$gascmp_482" = icmp ugt i64 1, %"$gasrem_481" + br i1 %"$gascmp_482", label %"$out_of_gas_483", label %"$have_gas_484" -"$out_of_gas_479": ; preds = %"$have_gas_475" +"$out_of_gas_483": ; preds = %"$have_gas_479" call void @_out_of_gas() - br label %"$have_gas_480" + br label %"$have_gas_484" -"$have_gas_480": ; preds = %"$out_of_gas_479", %"$have_gas_475" - %"$consume_481" = sub i64 %"$gasrem_477", 1 - store i64 %"$consume_481", i64* @_gasrem, align 8 +"$have_gas_484": ; preds = %"$out_of_gas_483", %"$have_gas_479" + %"$consume_485" = sub i64 %"$gasrem_481", 1 + store i64 %"$consume_485", i64* @_gasrem, align 8 %"$foldl_10" = alloca { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* }, align 8 - %"$foldl_482" = 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_483" = extractvalue { { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } %"$foldl_482", 0 - %"$foldl_envptr_484" = extractvalue { { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } %"$foldl_482", 1 - %"$iter_485" = load { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* }* %iter, align 8 - %"$foldl_call_486" = call { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* } %"$foldl_fptr_483"(i8* %"$foldl_envptr_484", { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* } %"$iter_485"), !dbg !56 - store { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* } %"$foldl_call_486", { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* }* %"$foldl_10", align 8, !dbg !56 + %"$foldl_486" = 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_487" = extractvalue { { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } %"$foldl_486", 0 + %"$foldl_envptr_488" = extractvalue { { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } %"$foldl_486", 1 + %"$iter_489" = load { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* }* %iter, align 8 + %"$foldl_call_490" = call { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* } %"$foldl_fptr_487"(i8* %"$foldl_envptr_488", { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* } %"$iter_489"), !dbg !103 + store { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* } %"$foldl_call_490", { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* }* %"$foldl_10", align 8, !dbg !103 %"$foldl_11" = alloca { %Uint32 (i8*, %TName_List_String*)*, i8* }, align 8 - %"$$foldl_10_487" = load { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* }* %"$foldl_10", align 8 - %"$$foldl_10_fptr_488" = extractvalue { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* } %"$$foldl_10_487", 0 - %"$$foldl_10_envptr_489" = extractvalue { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* } %"$$foldl_10_487", 1 - %"$init_490" = load %Uint32, %Uint32* %init, align 4 - %"$$foldl_10_call_491" = call { %Uint32 (i8*, %TName_List_String*)*, i8* } %"$$foldl_10_fptr_488"(i8* %"$$foldl_10_envptr_489", %Uint32 %"$init_490"), !dbg !56 - store { %Uint32 (i8*, %TName_List_String*)*, i8* } %"$$foldl_10_call_491", { %Uint32 (i8*, %TName_List_String*)*, i8* }* %"$foldl_11", align 8, !dbg !56 - %"$$foldl_11_492" = load { %Uint32 (i8*, %TName_List_String*)*, i8* }, { %Uint32 (i8*, %TName_List_String*)*, i8* }* %"$foldl_11", align 8 - store { %Uint32 (i8*, %TName_List_String*)*, i8* } %"$$foldl_11_492", { %Uint32 (i8*, %TName_List_String*)*, i8* }* %"$retval_39", align 8, !dbg !56 - %"$$retval_39_493" = load { %Uint32 (i8*, %TName_List_String*)*, i8* }, { %Uint32 (i8*, %TName_List_String*)*, i8* }* %"$retval_39", align 8 - ret { %Uint32 (i8*, %TName_List_String*)*, i8* } %"$$retval_39_493" + %"$$foldl_10_491" = load { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* }* %"$foldl_10", align 8 + %"$$foldl_10_fptr_492" = extractvalue { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* } %"$$foldl_10_491", 0 + %"$$foldl_10_envptr_493" = extractvalue { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* } %"$$foldl_10_491", 1 + %"$init_494" = load %Uint32, %Uint32* %init, align 4 + %"$$foldl_10_call_495" = call { %Uint32 (i8*, %TName_List_String*)*, i8* } %"$$foldl_10_fptr_492"(i8* %"$$foldl_10_envptr_493", %Uint32 %"$init_494"), !dbg !103 + store { %Uint32 (i8*, %TName_List_String*)*, i8* } %"$$foldl_10_call_495", { %Uint32 (i8*, %TName_List_String*)*, i8* }* %"$foldl_11", align 8, !dbg !103 + %"$$foldl_11_496" = load { %Uint32 (i8*, %TName_List_String*)*, i8* }, { %Uint32 (i8*, %TName_List_String*)*, i8* }* %"$foldl_11", align 8 + store { %Uint32 (i8*, %TName_List_String*)*, i8* } %"$$foldl_11_496", { %Uint32 (i8*, %TName_List_String*)*, i8* }* %"$retval_39", align 8, !dbg !103 + %"$$retval_39_497" = load { %Uint32 (i8*, %TName_List_String*)*, i8* }, { %Uint32 (i8*, %TName_List_String*)*, i8* }* %"$retval_39", align 8 + ret { %Uint32 (i8*, %TName_List_String*)*, i8* } %"$$retval_39_497" } -define internal %Uint32 @"$fundef_36"(%"$$fundef_36_env_153"* %0, %TName_List_ByStr20* %1) !dbg !57 { +define internal %Uint32 @"$fundef_36"(%"$$fundef_36_env_153"* %0, %TName_List_ByStr20* %1) !dbg !104 { entry: - %"$$fundef_36_env_f_348" = getelementptr inbounds %"$$fundef_36_env_153", %"$$fundef_36_env_153"* %0, i32 0, i32 0 - %"$f_envload_349" = load { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* }* %"$$fundef_36_env_f_348", align 8 + %"$l_419" = alloca %TName_List_ByStr20*, align 8 + store %TName_List_ByStr20* %1, %TName_List_ByStr20** %"$l_419", align 8 + call void @llvm.dbg.declare(metadata %TName_List_ByStr20** %"$l_419", metadata !106, metadata !DIExpression()), !dbg !107 + %"$$fundef_36_env_f_351" = getelementptr inbounds %"$$fundef_36_env_153", %"$$fundef_36_env_153"* %0, i32 0, i32 0 + %"$f_envload_352" = load { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* }* %"$$fundef_36_env_f_351", 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_349", { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* }* %f, align 8 - %"$$fundef_36_env_g_350" = getelementptr inbounds %"$$fundef_36_env_153", %"$$fundef_36_env_153"* %0, i32 0, i32 1 - %"$g_envload_351" = load { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* }* %"$$fundef_36_env_g_350", align 8 + store { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* } %"$f_envload_352", { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* }* %f, align 8 + %"$$fundef_36_env_g_353" = getelementptr inbounds %"$$fundef_36_env_153", %"$$fundef_36_env_153"* %0, i32 0, i32 1 + %"$g_envload_354" = load { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* }* %"$$fundef_36_env_g_353", 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_351", { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* }* %g, align 8 - %"$$fundef_36_env_z_352" = getelementptr inbounds %"$$fundef_36_env_153", %"$$fundef_36_env_153"* %0, i32 0, i32 2 - %"$z_envload_353" = load %Uint32, %Uint32* %"$$fundef_36_env_z_352", align 4 + store { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* } %"$g_envload_354", { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* }* %g, align 8 + %"$$fundef_36_env_z_355" = getelementptr inbounds %"$$fundef_36_env_153", %"$$fundef_36_env_153"* %0, i32 0, i32 2 + %"$z_envload_356" = load %Uint32, %Uint32* %"$$fundef_36_env_z_355", align 4 %z = alloca %Uint32, align 8 - store %Uint32 %"$z_envload_353", %Uint32* %z, align 4 + store %Uint32 %"$z_envload_356", %Uint32* %z, align 4 %"$retval_37" = alloca %Uint32, align 8 - %"$gasrem_354" = load i64, i64* @_gasrem, align 8 - %"$gascmp_355" = icmp ugt i64 2, %"$gasrem_354" - br i1 %"$gascmp_355", label %"$out_of_gas_356", label %"$have_gas_357" - -"$out_of_gas_356": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_357" - -"$have_gas_357": ; preds = %"$out_of_gas_356", %entry - %"$consume_358" = sub i64 %"$gasrem_354", 2 - store i64 %"$consume_358", i64* @_gasrem, align 8 - %"$l_tag_360" = getelementptr inbounds %TName_List_ByStr20, %TName_List_ByStr20* %1, i32 0, i32 0 - %"$l_tag_361" = load i8, i8* %"$l_tag_360", align 1 - switch i8 %"$l_tag_361", label %"$empty_default_362" [ - i8 0, label %"$Cons_363" - i8 1, label %"$Nil_407" - ], !dbg !59 - -"$Cons_363": ; preds = %"$have_gas_357" - %"$l_364" = bitcast %TName_List_ByStr20* %1 to %CName_Cons_ByStr20* - %"$h_gep_365" = getelementptr inbounds %CName_Cons_ByStr20, %CName_Cons_ByStr20* %"$l_364", i32 0, i32 1 - %"$h_load_366" = load [20 x i8], [20 x i8]* %"$h_gep_365", align 1 + call void @llvm.dbg.declare(metadata %Uint32* %"$retval_37", metadata !108, metadata !DIExpression()), !dbg !109 + %"$gasrem_357" = load i64, i64* @_gasrem, align 8 + %"$gascmp_358" = icmp ugt i64 2, %"$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", 2 + store i64 %"$consume_361", i64* @_gasrem, align 8 + %"$l_tag_363" = getelementptr inbounds %TName_List_ByStr20, %TName_List_ByStr20* %1, i32 0, i32 0 + %"$l_tag_364" = load i8, i8* %"$l_tag_363", align 1 + switch i8 %"$l_tag_364", label %"$empty_default_365" [ + i8 0, label %"$Cons_366" + i8 1, label %"$Nil_410" + ], !dbg !109 + +"$Cons_366": ; preds = %"$have_gas_360" + %"$l_367" = bitcast %TName_List_ByStr20* %1 to %CName_Cons_ByStr20* + %"$h_gep_368" = getelementptr inbounds %CName_Cons_ByStr20, %CName_Cons_ByStr20* %"$l_367", i32 0, i32 1 + %"$h_load_369" = load [20 x i8], [20 x i8]* %"$h_gep_368", align 1 %h = alloca [20 x i8], align 1 - store [20 x i8] %"$h_load_366", [20 x i8]* %h, align 1 - %"$t_gep_367" = getelementptr inbounds %CName_Cons_ByStr20, %CName_Cons_ByStr20* %"$l_364", i32 0, i32 2 - %"$t_load_368" = load %TName_List_ByStr20*, %TName_List_ByStr20** %"$t_gep_367", align 8 + store [20 x i8] %"$h_load_369", [20 x i8]* %h, align 1 + %"$t_gep_370" = getelementptr inbounds %CName_Cons_ByStr20, %CName_Cons_ByStr20* %"$l_367", i32 0, i32 2 + %"$t_load_371" = load %TName_List_ByStr20*, %TName_List_ByStr20** %"$t_gep_370", align 8 %t = alloca %TName_List_ByStr20*, align 8 - store %TName_List_ByStr20* %"$t_load_368", %TName_List_ByStr20** %t, align 8 - %"$gasrem_369" = load i64, i64* @_gasrem, align 8 - %"$gascmp_370" = icmp ugt i64 1, %"$gasrem_369" - br i1 %"$gascmp_370", label %"$out_of_gas_371", label %"$have_gas_372" + store %TName_List_ByStr20* %"$t_load_371", %TName_List_ByStr20** %t, 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_371": ; preds = %"$Cons_363" +"$out_of_gas_374": ; preds = %"$Cons_366" call void @_out_of_gas() - br label %"$have_gas_372" + br label %"$have_gas_375" -"$have_gas_372": ; preds = %"$out_of_gas_371", %"$Cons_363" - %"$consume_373" = sub i64 %"$gasrem_369", 1 - store i64 %"$consume_373", i64* @_gasrem, align 8 +"$have_gas_375": ; preds = %"$out_of_gas_374", %"$Cons_366" + %"$consume_376" = sub i64 %"$gasrem_372", 1 + store i64 %"$consume_376", i64* @_gasrem, align 8 %res = alloca %Uint32, align 8 - %"$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" + call void @llvm.dbg.declare(metadata %Uint32* %res, metadata !110, metadata !DIExpression()), !dbg !113 + %"$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_376": ; preds = %"$have_gas_372" +"$out_of_gas_379": ; preds = %"$have_gas_375" call void @_out_of_gas() - br label %"$have_gas_377" + br label %"$have_gas_380" -"$have_gas_377": ; preds = %"$out_of_gas_376", %"$have_gas_372" - %"$consume_378" = sub i64 %"$gasrem_374", 1 - store i64 %"$consume_378", i64* @_gasrem, align 8 +"$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 %"$f_6" = alloca { %Uint32 (i8*, [20 x i8]*)*, i8* }, align 8 - %"$f_379" = load { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* }* %f, align 8 - %"$f_fptr_380" = extractvalue { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* } %"$f_379", 0 - %"$f_envptr_381" = extractvalue { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* } %"$f_379", 1 - %"$z_382" = load %Uint32, %Uint32* %z, align 4 - %"$f_call_383" = call { %Uint32 (i8*, [20 x i8]*)*, i8* } %"$f_fptr_380"(i8* %"$f_envptr_381", %Uint32 %"$z_382"), !dbg !60 - store { %Uint32 (i8*, [20 x i8]*)*, i8* } %"$f_call_383", { %Uint32 (i8*, [20 x i8]*)*, i8* }* %"$f_6", align 8, !dbg !60 + %"$f_382" = load { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* }* %f, align 8 + %"$f_fptr_383" = extractvalue { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* } %"$f_382", 0 + %"$f_envptr_384" = extractvalue { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* } %"$f_382", 1 + %"$z_385" = load %Uint32, %Uint32* %z, align 4 + %"$f_call_386" = call { %Uint32 (i8*, [20 x i8]*)*, i8* } %"$f_fptr_383"(i8* %"$f_envptr_384", %Uint32 %"$z_385"), !dbg !114 + store { %Uint32 (i8*, [20 x i8]*)*, i8* } %"$f_call_386", { %Uint32 (i8*, [20 x i8]*)*, i8* }* %"$f_6", align 8, !dbg !114 %"$f_7" = alloca %Uint32, align 8 - %"$$f_6_384" = load { %Uint32 (i8*, [20 x i8]*)*, i8* }, { %Uint32 (i8*, [20 x i8]*)*, i8* }* %"$f_6", align 8 - %"$$f_6_fptr_385" = extractvalue { %Uint32 (i8*, [20 x i8]*)*, i8* } %"$$f_6_384", 0 - %"$$f_6_envptr_386" = extractvalue { %Uint32 (i8*, [20 x i8]*)*, i8* } %"$$f_6_384", 1 - %"$$f_6_h_387" = alloca [20 x i8], align 1 - %"$h_388" = load [20 x i8], [20 x i8]* %h, align 1 - store [20 x i8] %"$h_388", [20 x i8]* %"$$f_6_h_387", align 1 - %"$$f_6_call_389" = call %Uint32 %"$$f_6_fptr_385"(i8* %"$$f_6_envptr_386", [20 x i8]* %"$$f_6_h_387"), !dbg !60 - store %Uint32 %"$$f_6_call_389", %Uint32* %"$f_7", align 4, !dbg !60 - %"$$f_7_390" = load %Uint32, %Uint32* %"$f_7", align 4 - store %Uint32 %"$$f_7_390", %Uint32* %res, align 4, !dbg !60 - %"$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_377" - call void @_out_of_gas() - br label %"$have_gas_394" - -"$have_gas_394": ; preds = %"$out_of_gas_393", %"$have_gas_377" - %"$consume_395" = sub i64 %"$gasrem_391", 1 - store i64 %"$consume_395", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %Uint32* %"$f_7", metadata !115, metadata !DIExpression()), !dbg !114 + %"$$f_6_387" = load { %Uint32 (i8*, [20 x i8]*)*, i8* }, { %Uint32 (i8*, [20 x i8]*)*, i8* }* %"$f_6", align 8 + %"$$f_6_fptr_388" = extractvalue { %Uint32 (i8*, [20 x i8]*)*, i8* } %"$$f_6_387", 0 + %"$$f_6_envptr_389" = extractvalue { %Uint32 (i8*, [20 x i8]*)*, i8* } %"$$f_6_387", 1 + %"$$f_6_h_390" = alloca [20 x i8], align 1 + %"$h_391" = load [20 x i8], [20 x i8]* %h, align 1 + store [20 x i8] %"$h_391", [20 x i8]* %"$$f_6_h_390", align 1 + %"$$f_6_call_392" = call %Uint32 %"$$f_6_fptr_388"(i8* %"$$f_6_envptr_389", [20 x i8]* %"$$f_6_h_390"), !dbg !114 + store %Uint32 %"$$f_6_call_392", %Uint32* %"$f_7", align 4, !dbg !114 + %"$$f_7_393" = load %Uint32, %Uint32* %"$f_7", align 4 + store %Uint32 %"$$f_7_393", %Uint32* %res, align 4, !dbg !114 + %"$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 = %"$have_gas_380" + call void @_out_of_gas() + br label %"$have_gas_397" + +"$have_gas_397": ; preds = %"$out_of_gas_396", %"$have_gas_380" + %"$consume_398" = sub i64 %"$gasrem_394", 1 + store i64 %"$consume_398", i64* @_gasrem, align 8 %"$g_8" = alloca { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* }, align 8 - %"$g_396" = load { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* }* %g, align 8 - %"$g_fptr_397" = extractvalue { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* } %"$g_396", 0 - %"$g_envptr_398" = extractvalue { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* } %"$g_396", 1 - %"$res_399" = load %Uint32, %Uint32* %res, align 4 - %"$g_call_400" = call { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } %"$g_fptr_397"(i8* %"$g_envptr_398", %Uint32 %"$res_399"), !dbg !63 - store { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } %"$g_call_400", { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* }* %"$g_8", align 8, !dbg !63 + %"$g_399" = load { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* }* %g, align 8 + %"$g_fptr_400" = extractvalue { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* } %"$g_399", 0 + %"$g_envptr_401" = extractvalue { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* } %"$g_399", 1 + %"$res_402" = load %Uint32, %Uint32* %res, align 4 + %"$g_call_403" = call { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } %"$g_fptr_400"(i8* %"$g_envptr_401", %Uint32 %"$res_402"), !dbg !116 + store { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } %"$g_call_403", { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* }* %"$g_8", align 8, !dbg !116 %"$g_9" = alloca %Uint32, align 8 - %"$$g_8_401" = load { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* }, { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* }* %"$g_8", align 8 - %"$$g_8_fptr_402" = extractvalue { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } %"$$g_8_401", 0 - %"$$g_8_envptr_403" = extractvalue { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } %"$$g_8_401", 1 - %"$t_404" = load %TName_List_ByStr20*, %TName_List_ByStr20** %t, align 8 - %"$$g_8_call_405" = call %Uint32 %"$$g_8_fptr_402"(i8* %"$$g_8_envptr_403", %TName_List_ByStr20* %"$t_404"), !dbg !63 - store %Uint32 %"$$g_8_call_405", %Uint32* %"$g_9", align 4, !dbg !63 - %"$$g_9_406" = load %Uint32, %Uint32* %"$g_9", align 4 - store %Uint32 %"$$g_9_406", %Uint32* %"$retval_37", align 4, !dbg !63 - br label %"$matchsucc_359" - -"$Nil_407": ; preds = %"$have_gas_357" - %"$l_408" = bitcast %TName_List_ByStr20* %1 to %CName_Nil_ByStr20* - %"$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 = %"$Nil_407" - call void @_out_of_gas() - br label %"$have_gas_412" - -"$have_gas_412": ; preds = %"$out_of_gas_411", %"$Nil_407" - %"$consume_413" = sub i64 %"$gasrem_409", 1 - store i64 %"$consume_413", i64* @_gasrem, align 8 - %"$z_414" = load %Uint32, %Uint32* %z, align 4 - store %Uint32 %"$z_414", %Uint32* %"$retval_37", align 4, !dbg !64 - br label %"$matchsucc_359" - -"$empty_default_362": ; preds = %"$have_gas_357" - br label %"$matchsucc_359" - -"$matchsucc_359": ; preds = %"$have_gas_412", %"$have_gas_394", %"$empty_default_362" - %"$$retval_37_415" = load %Uint32, %Uint32* %"$retval_37", align 4 - ret %Uint32 %"$$retval_37_415" + call void @llvm.dbg.declare(metadata %Uint32* %"$g_9", metadata !117, metadata !DIExpression()), !dbg !116 + %"$$g_8_404" = load { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* }, { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* }* %"$g_8", align 8 + %"$$g_8_fptr_405" = extractvalue { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } %"$$g_8_404", 0 + %"$$g_8_envptr_406" = extractvalue { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } %"$$g_8_404", 1 + %"$t_407" = load %TName_List_ByStr20*, %TName_List_ByStr20** %t, align 8 + %"$$g_8_call_408" = call %Uint32 %"$$g_8_fptr_405"(i8* %"$$g_8_envptr_406", %TName_List_ByStr20* %"$t_407"), !dbg !116 + store %Uint32 %"$$g_8_call_408", %Uint32* %"$g_9", align 4, !dbg !116 + %"$$g_9_409" = load %Uint32, %Uint32* %"$g_9", align 4 + store %Uint32 %"$$g_9_409", %Uint32* %"$retval_37", align 4, !dbg !116 + br label %"$matchsucc_362" + +"$Nil_410": ; preds = %"$have_gas_360" + %"$l_411" = bitcast %TName_List_ByStr20* %1 to %CName_Nil_ByStr20* + %"$gasrem_412" = load i64, i64* @_gasrem, align 8 + %"$gascmp_413" = icmp ugt i64 1, %"$gasrem_412" + br i1 %"$gascmp_413", label %"$out_of_gas_414", label %"$have_gas_415" + +"$out_of_gas_414": ; preds = %"$Nil_410" + call void @_out_of_gas() + br label %"$have_gas_415" + +"$have_gas_415": ; preds = %"$out_of_gas_414", %"$Nil_410" + %"$consume_416" = sub i64 %"$gasrem_412", 1 + store i64 %"$consume_416", i64* @_gasrem, align 8 + %"$z_417" = load %Uint32, %Uint32* %z, align 4 + store %Uint32 %"$z_417", %Uint32* %"$retval_37", align 4, !dbg !118 + br label %"$matchsucc_362" + +"$empty_default_365": ; preds = %"$have_gas_360" + br label %"$matchsucc_362" + +"$matchsucc_362": ; preds = %"$have_gas_415", %"$have_gas_397", %"$empty_default_365" + %"$$retval_37_418" = load %Uint32, %Uint32* %"$retval_37", align 4 + ret %Uint32 %"$$retval_37_418" } -define internal { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } @"$fundef_34"(%"$$fundef_34_env_154"* %0, %Uint32 %1) !dbg !66 { +define internal { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } @"$fundef_34"(%"$$fundef_34_env_154"* %0, %Uint32 %1) !dbg !120 { entry: - %"$$fundef_34_env_f_324" = getelementptr inbounds %"$$fundef_34_env_154", %"$$fundef_34_env_154"* %0, i32 0, i32 0 - %"$f_envload_325" = load { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* }* %"$$fundef_34_env_f_324", align 8 + %"$z_350" = alloca %Uint32, align 8 + store %Uint32 %1, %Uint32* %"$z_350", align 4 + call void @llvm.dbg.declare(metadata %Uint32* %"$z_350", metadata !121, metadata !DIExpression()), !dbg !122 + %"$$fundef_34_env_f_326" = getelementptr inbounds %"$$fundef_34_env_154", %"$$fundef_34_env_154"* %0, i32 0, i32 0 + %"$f_envload_327" = load { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* }* %"$$fundef_34_env_f_326", 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_325", { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* }* %f, align 8 - %"$$fundef_34_env_g_326" = getelementptr inbounds %"$$fundef_34_env_154", %"$$fundef_34_env_154"* %0, i32 0, i32 1 - %"$g_envload_327" = load { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* }* %"$$fundef_34_env_g_326", align 8 + store { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* } %"$f_envload_327", { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* }* %f, align 8 + %"$$fundef_34_env_g_328" = getelementptr inbounds %"$$fundef_34_env_154", %"$$fundef_34_env_154"* %0, i32 0, i32 1 + %"$g_envload_329" = load { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* }* %"$$fundef_34_env_g_328", 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_327", { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* }* %g, align 8 + store { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* } %"$g_envload_329", { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* }* %g, align 8 %"$retval_35" = alloca { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* }, 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" - -"$out_of_gas_330": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_331" - -"$have_gas_331": ; preds = %"$out_of_gas_330", %entry - %"$consume_332" = sub i64 %"$gasrem_328", 1 - store i64 %"$consume_332", i64* @_gasrem, align 8 - %"$gasrem_333" = load i64, i64* @_gasrem, align 8 - %"$gascmp_334" = icmp ugt i64 1, %"$gasrem_333" - br i1 %"$gascmp_334", label %"$out_of_gas_335", label %"$have_gas_336" - -"$out_of_gas_335": ; preds = %"$have_gas_331" - call void @_out_of_gas() - br label %"$have_gas_336" - -"$have_gas_336": ; preds = %"$out_of_gas_335", %"$have_gas_331" - %"$consume_337" = sub i64 %"$gasrem_333", 1 - store i64 %"$consume_337", i64* @_gasrem, align 8 - %"$$fundef_36_envp_338_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_36_envp_338_salloc" = call i8* @_salloc(i8* %"$$fundef_36_envp_338_load", i64 40) - %"$$fundef_36_envp_338" = bitcast i8* %"$$fundef_36_envp_338_salloc" to %"$$fundef_36_env_153"* - %"$$fundef_36_env_voidp_340" = bitcast %"$$fundef_36_env_153"* %"$$fundef_36_envp_338" to i8* - %"$$fundef_36_cloval_341" = insertvalue { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } { %Uint32 (i8*, %TName_List_ByStr20*)* bitcast (%Uint32 (%"$$fundef_36_env_153"*, %TName_List_ByStr20*)* @"$fundef_36" to %Uint32 (i8*, %TName_List_ByStr20*)*), i8* undef }, i8* %"$$fundef_36_env_voidp_340", 1 - %"$$fundef_36_env_f_342" = getelementptr inbounds %"$$fundef_36_env_153", %"$$fundef_36_env_153"* %"$$fundef_36_envp_338", i32 0, i32 0 - %"$f_343" = 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_343", { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* }* %"$$fundef_36_env_f_342", align 8 - %"$$fundef_36_env_g_344" = getelementptr inbounds %"$$fundef_36_env_153", %"$$fundef_36_env_153"* %"$$fundef_36_envp_338", i32 0, i32 1 - %"$g_345" = 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_345", { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* }* %"$$fundef_36_env_g_344", align 8 - %"$$fundef_36_env_z_346" = getelementptr inbounds %"$$fundef_36_env_153", %"$$fundef_36_env_153"* %"$$fundef_36_envp_338", i32 0, i32 2 - store %Uint32 %1, %Uint32* %"$$fundef_36_env_z_346", align 4 - store { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } %"$$fundef_36_cloval_341", { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* }* %"$retval_35", align 8, !dbg !67 - %"$$retval_35_347" = load { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* }, { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* }* %"$retval_35", align 8 - ret { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } %"$$retval_35_347" + %"$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 = %entry + call void @_out_of_gas() + br label %"$have_gas_333" + +"$have_gas_333": ; preds = %"$out_of_gas_332", %entry + %"$consume_334" = sub i64 %"$gasrem_330", 1 + store i64 %"$consume_334", i64* @_gasrem, 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 = %"$have_gas_333" + call void @_out_of_gas() + br label %"$have_gas_338" + +"$have_gas_338": ; preds = %"$out_of_gas_337", %"$have_gas_333" + %"$consume_339" = sub i64 %"$gasrem_335", 1 + store i64 %"$consume_339", i64* @_gasrem, align 8 + %"$$fundef_36_envp_340_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_36_envp_340_salloc" = call i8* @_salloc(i8* %"$$fundef_36_envp_340_load", i64 40) + %"$$fundef_36_envp_340" = bitcast i8* %"$$fundef_36_envp_340_salloc" to %"$$fundef_36_env_153"* + %"$$fundef_36_env_voidp_342" = bitcast %"$$fundef_36_env_153"* %"$$fundef_36_envp_340" to i8* + %"$$fundef_36_cloval_343" = insertvalue { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } { %Uint32 (i8*, %TName_List_ByStr20*)* bitcast (%Uint32 (%"$$fundef_36_env_153"*, %TName_List_ByStr20*)* @"$fundef_36" to %Uint32 (i8*, %TName_List_ByStr20*)*), i8* undef }, i8* %"$$fundef_36_env_voidp_342", 1 + %"$$fundef_36_env_f_344" = getelementptr inbounds %"$$fundef_36_env_153", %"$$fundef_36_env_153"* %"$$fundef_36_envp_340", i32 0, i32 0 + %"$f_345" = 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_345", { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* }* %"$$fundef_36_env_f_344", align 8 + %"$$fundef_36_env_g_346" = getelementptr inbounds %"$$fundef_36_env_153", %"$$fundef_36_env_153"* %"$$fundef_36_envp_340", i32 0, i32 1 + %"$g_347" = 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_347", { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* }* %"$$fundef_36_env_g_346", align 8 + %"$$fundef_36_env_z_348" = getelementptr inbounds %"$$fundef_36_env_153", %"$$fundef_36_env_153"* %"$$fundef_36_envp_340", i32 0, i32 2 + store %Uint32 %1, %Uint32* %"$$fundef_36_env_z_348", align 4 + store { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } %"$$fundef_36_cloval_343", { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* }* %"$retval_35", align 8, !dbg !123 + %"$$retval_35_349" = load { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* }, { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* }* %"$retval_35", align 8 + ret { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } %"$$retval_35_349" } -define internal { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* } @"$fundef_32"(%"$$fundef_32_env_155"* %0, { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* } %1) !dbg !68 { +define internal { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* } @"$fundef_32"(%"$$fundef_32_env_155"* %0, { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* } %1) !dbg !124 { entry: %"$retval_33" = alloca { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* }, align 8 - %"$gasrem_310" = load i64, i64* @_gasrem, align 8 - %"$gascmp_311" = icmp ugt i64 1, %"$gasrem_310" - br i1 %"$gascmp_311", label %"$out_of_gas_312", label %"$have_gas_313" - -"$out_of_gas_312": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_313" - -"$have_gas_313": ; preds = %"$out_of_gas_312", %entry - %"$consume_314" = sub i64 %"$gasrem_310", 1 - store i64 %"$consume_314", i64* @_gasrem, align 8 - %"$$fundef_34_envp_315_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_34_envp_315_salloc" = call i8* @_salloc(i8* %"$$fundef_34_envp_315_load", i64 32) - %"$$fundef_34_envp_315" = bitcast i8* %"$$fundef_34_envp_315_salloc" to %"$$fundef_34_env_154"* - %"$$fundef_34_env_voidp_317" = bitcast %"$$fundef_34_env_154"* %"$$fundef_34_envp_315" to i8* - %"$$fundef_34_cloval_318" = 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_34_env_154"*, %Uint32)* @"$fundef_34" to { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*), i8* undef }, i8* %"$$fundef_34_env_voidp_317", 1 + %"$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 + %"$$fundef_34_envp_317_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_34_envp_317_salloc" = call i8* @_salloc(i8* %"$$fundef_34_envp_317_load", i64 32) + %"$$fundef_34_envp_317" = bitcast i8* %"$$fundef_34_envp_317_salloc" to %"$$fundef_34_env_154"* + %"$$fundef_34_env_voidp_319" = bitcast %"$$fundef_34_env_154"* %"$$fundef_34_envp_317" to i8* + %"$$fundef_34_cloval_320" = 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_34_env_154"*, %Uint32)* @"$fundef_34" to { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*), i8* undef }, i8* %"$$fundef_34_env_voidp_319", 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_34_cloval_318", { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* }* %g, align 8, !dbg !69 - %"$$fundef_34_env_f_319" = getelementptr inbounds %"$$fundef_34_env_154", %"$$fundef_34_env_154"* %"$$fundef_34_envp_315", 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_34_env_f_319", align 8 - %"$$fundef_34_env_g_320" = getelementptr inbounds %"$$fundef_34_env_154", %"$$fundef_34_env_154"* %"$$fundef_34_envp_315", i32 0, i32 1 - %"$g_321" = 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_321", { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* }* %"$$fundef_34_env_g_320", align 8 - %"$g_322" = 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_322", { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* }* %"$retval_33", align 8, !dbg !69 - %"$$retval_33_323" = load { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* }* %"$retval_33", align 8 - ret { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* } %"$$retval_33_323" + store { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* } %"$$fundef_34_cloval_320", { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* }* %g, align 8, !dbg !125 + %"$$fundef_34_env_f_321" = getelementptr inbounds %"$$fundef_34_env_154", %"$$fundef_34_env_154"* %"$$fundef_34_envp_317", 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_34_env_f_321", align 8 + %"$$fundef_34_env_g_322" = getelementptr inbounds %"$$fundef_34_env_154", %"$$fundef_34_env_154"* %"$$fundef_34_envp_317", i32 0, i32 1 + %"$g_323" = 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_323", { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* }* %"$$fundef_34_env_g_322", align 8 + %"$g_324" = 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_324", { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* }* %"$retval_33", align 8, !dbg !125 + %"$$retval_33_325" = load { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* }* %"$retval_33", align 8 + ret { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* } %"$$retval_33_325" } -define internal { { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } @"$fundef_30"(%"$$fundef_30_env_156"* %0) !dbg !70 { +define internal { { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } @"$fundef_30"(%"$$fundef_30_env_156"* %0) !dbg !126 { entry: %"$retval_31" = alloca { { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* })*, i8* }, align 8 - %"$gasrem_301" = load i64, i64* @_gasrem, align 8 - %"$gascmp_302" = icmp ugt i64 1, %"$gasrem_301" - br i1 %"$gascmp_302", label %"$out_of_gas_303", label %"$have_gas_304" + %"$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_303": ; preds = %entry +"$out_of_gas_305": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_304" + br label %"$have_gas_306" -"$have_gas_304": ; preds = %"$out_of_gas_303", %entry - %"$consume_305" = sub i64 %"$gasrem_301", 1 - store i64 %"$consume_305", 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_32_env_155"*, { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* })* @"$fundef_32" 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_31", align 8, !dbg !71 - %"$$retval_31_309" = 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_31", align 8 - ret { { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } %"$$retval_31_309" +"$have_gas_306": ; preds = %"$out_of_gas_305", %entry + %"$consume_307" = sub i64 %"$gasrem_303", 1 + store i64 %"$consume_307", 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_32_env_155"*, { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* })* @"$fundef_32" 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_31", align 8, !dbg !127 + %"$$retval_31_311" = 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_31", align 8 + ret { { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } %"$$retval_31_311" } -define internal { i8*, i8* }* @"$fundef_28"(%"$$fundef_28_env_157"* %0) !dbg !72 { +define internal { i8*, i8* }* @"$fundef_28"(%"$$fundef_28_env_157"* %0) !dbg !128 { entry: %"$retval_29" = alloca { i8*, i8* }*, 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 = %entry - call void @_out_of_gas() - br label %"$have_gas_292" - -"$have_gas_292": ; preds = %"$out_of_gas_291", %entry - %"$consume_293" = sub i64 %"$gasrem_289", 1 - store i64 %"$consume_293", i64* @_gasrem, align 8 - %"$dyndisp_table_297_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$dyndisp_table_297_salloc_salloc" = call i8* @_salloc(i8* %"$dyndisp_table_297_salloc_load", i64 48) - %"$dyndisp_table_297_salloc" = bitcast i8* %"$dyndisp_table_297_salloc_salloc" to [3 x { i8*, i8* }]* - %"$dyndisp_table_297" = bitcast [3 x { i8*, i8* }]* %"$dyndisp_table_297_salloc" to { i8*, i8* }* - %"$dyndisp_gep_298" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_297", i32 1 - %"$dyndisp_pcast_299" = bitcast { i8*, i8* }* %"$dyndisp_gep_298" 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_30_env_156"*)* @"$fundef_30" 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_299", align 8 - store { i8*, i8* }* %"$dyndisp_table_297", { i8*, i8* }** %"$retval_29", align 8, !dbg !73 - %"$$retval_29_300" = load { i8*, i8* }*, { i8*, i8* }** %"$retval_29", align 8 - ret { i8*, i8* }* %"$$retval_29_300" + %"$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 + %"$dyndisp_table_299_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$dyndisp_table_299_salloc_salloc" = call i8* @_salloc(i8* %"$dyndisp_table_299_salloc_load", i64 48) + %"$dyndisp_table_299_salloc" = bitcast i8* %"$dyndisp_table_299_salloc_salloc" to [3 x { i8*, i8* }]* + %"$dyndisp_table_299" = bitcast [3 x { i8*, i8* }]* %"$dyndisp_table_299_salloc" to { i8*, i8* }* + %"$dyndisp_gep_300" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_299", i32 1 + %"$dyndisp_pcast_301" = bitcast { i8*, i8* }* %"$dyndisp_gep_300" 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_30_env_156"*)* @"$fundef_30" 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_301", align 8 + store { i8*, i8* }* %"$dyndisp_table_299", { i8*, i8* }** %"$retval_29", align 8, !dbg !129 + %"$$retval_29_302" = load { i8*, i8* }*, { i8*, i8* }** %"$retval_29", align 8 + ret { i8*, i8* }* %"$$retval_29_302" } -define internal %Uint32 @"$fundef_26"(%"$$fundef_26_env_158"* %0, %TName_List_String* %1) !dbg !74 { +define internal %Uint32 @"$fundef_26"(%"$$fundef_26_env_158"* %0, %TName_List_String* %1) !dbg !130 { entry: - %"$$fundef_26_env_f_222" = getelementptr inbounds %"$$fundef_26_env_158", %"$$fundef_26_env_158"* %0, i32 0, i32 0 - %"$f_envload_223" = load { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* }* %"$$fundef_26_env_f_222", align 8 + %"$l_290" = alloca %TName_List_String*, align 8 + store %TName_List_String* %1, %TName_List_String** %"$l_290", align 8 + call void @llvm.dbg.declare(metadata %TName_List_String** %"$l_290", metadata !131, metadata !DIExpression()), !dbg !132 + %"$$fundef_26_env_f_223" = getelementptr inbounds %"$$fundef_26_env_158", %"$$fundef_26_env_158"* %0, i32 0, i32 0 + %"$f_envload_224" = load { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* }* %"$$fundef_26_env_f_223", align 8 %f = alloca { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* }, align 8 - store { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* } %"$f_envload_223", { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* }* %f, align 8 - %"$$fundef_26_env_g_224" = getelementptr inbounds %"$$fundef_26_env_158", %"$$fundef_26_env_158"* %0, i32 0, i32 1 - %"$g_envload_225" = load { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* }* %"$$fundef_26_env_g_224", align 8 + store { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* } %"$f_envload_224", { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* }* %f, align 8 + %"$$fundef_26_env_g_225" = getelementptr inbounds %"$$fundef_26_env_158", %"$$fundef_26_env_158"* %0, i32 0, i32 1 + %"$g_envload_226" = load { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* }* %"$$fundef_26_env_g_225", 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_225", { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* }* %g, align 8 - %"$$fundef_26_env_z_226" = getelementptr inbounds %"$$fundef_26_env_158", %"$$fundef_26_env_158"* %0, i32 0, i32 2 - %"$z_envload_227" = load %Uint32, %Uint32* %"$$fundef_26_env_z_226", align 4 + store { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* } %"$g_envload_226", { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* }* %g, align 8 + %"$$fundef_26_env_z_227" = getelementptr inbounds %"$$fundef_26_env_158", %"$$fundef_26_env_158"* %0, i32 0, i32 2 + %"$z_envload_228" = load %Uint32, %Uint32* %"$$fundef_26_env_z_227", align 4 %z = alloca %Uint32, align 8 - store %Uint32 %"$z_envload_227", %Uint32* %z, align 4 + store %Uint32 %"$z_envload_228", %Uint32* %z, align 4 %"$retval_27" = alloca %Uint32, align 8 - %"$gasrem_228" = load i64, i64* @_gasrem, align 8 - %"$gascmp_229" = icmp ugt i64 2, %"$gasrem_228" - br i1 %"$gascmp_229", label %"$out_of_gas_230", label %"$have_gas_231" - -"$out_of_gas_230": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_231" - -"$have_gas_231": ; preds = %"$out_of_gas_230", %entry - %"$consume_232" = sub i64 %"$gasrem_228", 2 - store i64 %"$consume_232", i64* @_gasrem, align 8 - %"$l_tag_234" = getelementptr inbounds %TName_List_String, %TName_List_String* %1, i32 0, i32 0 - %"$l_tag_235" = load i8, i8* %"$l_tag_234", align 1 - switch i8 %"$l_tag_235", label %"$empty_default_236" [ - i8 0, label %"$Cons_237" - i8 1, label %"$Nil_280" - ], !dbg !75 - -"$Cons_237": ; preds = %"$have_gas_231" - %"$l_238" = bitcast %TName_List_String* %1 to %CName_Cons_String* - %"$h_gep_239" = getelementptr inbounds %CName_Cons_String, %CName_Cons_String* %"$l_238", i32 0, i32 1 - %"$h_load_240" = load %String, %String* %"$h_gep_239", align 8 + call void @llvm.dbg.declare(metadata %Uint32* %"$retval_27", metadata !133, metadata !DIExpression()), !dbg !134 + %"$gasrem_229" = load i64, i64* @_gasrem, align 8 + %"$gascmp_230" = icmp ugt i64 2, %"$gasrem_229" + br i1 %"$gascmp_230", label %"$out_of_gas_231", label %"$have_gas_232" + +"$out_of_gas_231": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_232" + +"$have_gas_232": ; preds = %"$out_of_gas_231", %entry + %"$consume_233" = sub i64 %"$gasrem_229", 2 + store i64 %"$consume_233", i64* @_gasrem, align 8 + %"$l_tag_235" = getelementptr inbounds %TName_List_String, %TName_List_String* %1, i32 0, i32 0 + %"$l_tag_236" = load i8, i8* %"$l_tag_235", align 1 + switch i8 %"$l_tag_236", label %"$empty_default_237" [ + i8 0, label %"$Cons_238" + i8 1, label %"$Nil_281" + ], !dbg !134 + +"$Cons_238": ; preds = %"$have_gas_232" + %"$l_239" = bitcast %TName_List_String* %1 to %CName_Cons_String* + %"$h_gep_240" = getelementptr inbounds %CName_Cons_String, %CName_Cons_String* %"$l_239", i32 0, i32 1 + %"$h_load_241" = load %String, %String* %"$h_gep_240", align 8 %h = alloca %String, align 8 - store %String %"$h_load_240", %String* %h, align 8 - %"$t_gep_241" = getelementptr inbounds %CName_Cons_String, %CName_Cons_String* %"$l_238", i32 0, i32 2 - %"$t_load_242" = load %TName_List_String*, %TName_List_String** %"$t_gep_241", align 8 + store %String %"$h_load_241", %String* %h, align 8 + %"$t_gep_242" = getelementptr inbounds %CName_Cons_String, %CName_Cons_String* %"$l_239", i32 0, i32 2 + %"$t_load_243" = load %TName_List_String*, %TName_List_String** %"$t_gep_242", align 8 %t = alloca %TName_List_String*, align 8 - store %TName_List_String* %"$t_load_242", %TName_List_String** %t, align 8 - %"$gasrem_243" = load i64, i64* @_gasrem, align 8 - %"$gascmp_244" = icmp ugt i64 1, %"$gasrem_243" - br i1 %"$gascmp_244", label %"$out_of_gas_245", label %"$have_gas_246" + store %TName_List_String* %"$t_load_243", %TName_List_String** %t, align 8 + %"$gasrem_244" = load i64, i64* @_gasrem, align 8 + %"$gascmp_245" = icmp ugt i64 1, %"$gasrem_244" + br i1 %"$gascmp_245", label %"$out_of_gas_246", label %"$have_gas_247" -"$out_of_gas_245": ; preds = %"$Cons_237" +"$out_of_gas_246": ; preds = %"$Cons_238" call void @_out_of_gas() - br label %"$have_gas_246" + br label %"$have_gas_247" -"$have_gas_246": ; preds = %"$out_of_gas_245", %"$Cons_237" - %"$consume_247" = sub i64 %"$gasrem_243", 1 - store i64 %"$consume_247", i64* @_gasrem, align 8 +"$have_gas_247": ; preds = %"$out_of_gas_246", %"$Cons_238" + %"$consume_248" = sub i64 %"$gasrem_244", 1 + store i64 %"$consume_248", i64* @_gasrem, align 8 %res = alloca %Uint32, align 8 - %"$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" + call void @llvm.dbg.declare(metadata %Uint32* %res, metadata !135, metadata !DIExpression()), !dbg !138 + %"$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_250": ; preds = %"$have_gas_246" +"$out_of_gas_251": ; preds = %"$have_gas_247" call void @_out_of_gas() - br label %"$have_gas_251" + br label %"$have_gas_252" -"$have_gas_251": ; preds = %"$out_of_gas_250", %"$have_gas_246" - %"$consume_252" = sub i64 %"$gasrem_248", 1 - store i64 %"$consume_252", i64* @_gasrem, align 8 +"$have_gas_252": ; preds = %"$out_of_gas_251", %"$have_gas_247" + %"$consume_253" = sub i64 %"$gasrem_249", 1 + store i64 %"$consume_253", i64* @_gasrem, align 8 %"$f_6" = alloca { %Uint32 (i8*, %String)*, i8* }, align 8 - %"$f_253" = load { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* }* %f, align 8 - %"$f_fptr_254" = extractvalue { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* } %"$f_253", 0 - %"$f_envptr_255" = extractvalue { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* } %"$f_253", 1 - %"$z_256" = load %Uint32, %Uint32* %z, align 4 - %"$f_call_257" = call { %Uint32 (i8*, %String)*, i8* } %"$f_fptr_254"(i8* %"$f_envptr_255", %Uint32 %"$z_256"), !dbg !76 - store { %Uint32 (i8*, %String)*, i8* } %"$f_call_257", { %Uint32 (i8*, %String)*, i8* }* %"$f_6", align 8, !dbg !76 + %"$f_254" = load { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* }* %f, align 8 + %"$f_fptr_255" = extractvalue { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* } %"$f_254", 0 + %"$f_envptr_256" = extractvalue { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* } %"$f_254", 1 + %"$z_257" = load %Uint32, %Uint32* %z, align 4 + %"$f_call_258" = call { %Uint32 (i8*, %String)*, i8* } %"$f_fptr_255"(i8* %"$f_envptr_256", %Uint32 %"$z_257"), !dbg !139 + store { %Uint32 (i8*, %String)*, i8* } %"$f_call_258", { %Uint32 (i8*, %String)*, i8* }* %"$f_6", align 8, !dbg !139 %"$f_7" = alloca %Uint32, align 8 - %"$$f_6_258" = load { %Uint32 (i8*, %String)*, i8* }, { %Uint32 (i8*, %String)*, i8* }* %"$f_6", align 8 - %"$$f_6_fptr_259" = extractvalue { %Uint32 (i8*, %String)*, i8* } %"$$f_6_258", 0 - %"$$f_6_envptr_260" = extractvalue { %Uint32 (i8*, %String)*, i8* } %"$$f_6_258", 1 - %"$h_261" = load %String, %String* %h, align 8 - %"$$f_6_call_262" = call %Uint32 %"$$f_6_fptr_259"(i8* %"$$f_6_envptr_260", %String %"$h_261"), !dbg !76 - store %Uint32 %"$$f_6_call_262", %Uint32* %"$f_7", align 4, !dbg !76 - %"$$f_7_263" = load %Uint32, %Uint32* %"$f_7", align 4 - store %Uint32 %"$$f_7_263", %Uint32* %res, align 4, !dbg !76 - %"$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_251" - call void @_out_of_gas() - br label %"$have_gas_267" - -"$have_gas_267": ; preds = %"$out_of_gas_266", %"$have_gas_251" - %"$consume_268" = sub i64 %"$gasrem_264", 1 - store i64 %"$consume_268", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %Uint32* %"$f_7", metadata !140, metadata !DIExpression()), !dbg !139 + %"$$f_6_259" = load { %Uint32 (i8*, %String)*, i8* }, { %Uint32 (i8*, %String)*, i8* }* %"$f_6", align 8 + %"$$f_6_fptr_260" = extractvalue { %Uint32 (i8*, %String)*, i8* } %"$$f_6_259", 0 + %"$$f_6_envptr_261" = extractvalue { %Uint32 (i8*, %String)*, i8* } %"$$f_6_259", 1 + %"$h_262" = load %String, %String* %h, align 8 + %"$$f_6_call_263" = call %Uint32 %"$$f_6_fptr_260"(i8* %"$$f_6_envptr_261", %String %"$h_262"), !dbg !139 + store %Uint32 %"$$f_6_call_263", %Uint32* %"$f_7", align 4, !dbg !139 + %"$$f_7_264" = load %Uint32, %Uint32* %"$f_7", align 4 + store %Uint32 %"$$f_7_264", %Uint32* %res, align 4, !dbg !139 + %"$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 = %"$have_gas_252" + call void @_out_of_gas() + br label %"$have_gas_268" + +"$have_gas_268": ; preds = %"$out_of_gas_267", %"$have_gas_252" + %"$consume_269" = sub i64 %"$gasrem_265", 1 + store i64 %"$consume_269", i64* @_gasrem, align 8 %"$g_8" = alloca { %Uint32 (i8*, %TName_List_String*)*, i8* }, align 8 - %"$g_269" = load { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* }* %g, align 8 - %"$g_fptr_270" = extractvalue { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* } %"$g_269", 0 - %"$g_envptr_271" = extractvalue { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* } %"$g_269", 1 - %"$res_272" = load %Uint32, %Uint32* %res, align 4 - %"$g_call_273" = call { %Uint32 (i8*, %TName_List_String*)*, i8* } %"$g_fptr_270"(i8* %"$g_envptr_271", %Uint32 %"$res_272"), !dbg !79 - store { %Uint32 (i8*, %TName_List_String*)*, i8* } %"$g_call_273", { %Uint32 (i8*, %TName_List_String*)*, i8* }* %"$g_8", align 8, !dbg !79 + %"$g_270" = load { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* }* %g, align 8 + %"$g_fptr_271" = extractvalue { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* } %"$g_270", 0 + %"$g_envptr_272" = extractvalue { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* } %"$g_270", 1 + %"$res_273" = load %Uint32, %Uint32* %res, align 4 + %"$g_call_274" = call { %Uint32 (i8*, %TName_List_String*)*, i8* } %"$g_fptr_271"(i8* %"$g_envptr_272", %Uint32 %"$res_273"), !dbg !141 + store { %Uint32 (i8*, %TName_List_String*)*, i8* } %"$g_call_274", { %Uint32 (i8*, %TName_List_String*)*, i8* }* %"$g_8", align 8, !dbg !141 %"$g_9" = alloca %Uint32, align 8 - %"$$g_8_274" = load { %Uint32 (i8*, %TName_List_String*)*, i8* }, { %Uint32 (i8*, %TName_List_String*)*, i8* }* %"$g_8", align 8 - %"$$g_8_fptr_275" = extractvalue { %Uint32 (i8*, %TName_List_String*)*, i8* } %"$$g_8_274", 0 - %"$$g_8_envptr_276" = extractvalue { %Uint32 (i8*, %TName_List_String*)*, i8* } %"$$g_8_274", 1 - %"$t_277" = load %TName_List_String*, %TName_List_String** %t, align 8 - %"$$g_8_call_278" = call %Uint32 %"$$g_8_fptr_275"(i8* %"$$g_8_envptr_276", %TName_List_String* %"$t_277"), !dbg !79 - store %Uint32 %"$$g_8_call_278", %Uint32* %"$g_9", align 4, !dbg !79 - %"$$g_9_279" = load %Uint32, %Uint32* %"$g_9", align 4 - store %Uint32 %"$$g_9_279", %Uint32* %"$retval_27", align 4, !dbg !79 - br label %"$matchsucc_233" - -"$Nil_280": ; preds = %"$have_gas_231" - %"$l_281" = bitcast %TName_List_String* %1 to %CName_Nil_String* - %"$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 = %"$Nil_280" - call void @_out_of_gas() - br label %"$have_gas_285" - -"$have_gas_285": ; preds = %"$out_of_gas_284", %"$Nil_280" - %"$consume_286" = sub i64 %"$gasrem_282", 1 - store i64 %"$consume_286", i64* @_gasrem, align 8 - %"$z_287" = load %Uint32, %Uint32* %z, align 4 - store %Uint32 %"$z_287", %Uint32* %"$retval_27", align 4, !dbg !80 - br label %"$matchsucc_233" - -"$empty_default_236": ; preds = %"$have_gas_231" - br label %"$matchsucc_233" - -"$matchsucc_233": ; preds = %"$have_gas_285", %"$have_gas_267", %"$empty_default_236" - %"$$retval_27_288" = load %Uint32, %Uint32* %"$retval_27", align 4 - ret %Uint32 %"$$retval_27_288" + call void @llvm.dbg.declare(metadata %Uint32* %"$g_9", metadata !142, metadata !DIExpression()), !dbg !141 + %"$$g_8_275" = load { %Uint32 (i8*, %TName_List_String*)*, i8* }, { %Uint32 (i8*, %TName_List_String*)*, i8* }* %"$g_8", align 8 + %"$$g_8_fptr_276" = extractvalue { %Uint32 (i8*, %TName_List_String*)*, i8* } %"$$g_8_275", 0 + %"$$g_8_envptr_277" = extractvalue { %Uint32 (i8*, %TName_List_String*)*, i8* } %"$$g_8_275", 1 + %"$t_278" = load %TName_List_String*, %TName_List_String** %t, align 8 + %"$$g_8_call_279" = call %Uint32 %"$$g_8_fptr_276"(i8* %"$$g_8_envptr_277", %TName_List_String* %"$t_278"), !dbg !141 + store %Uint32 %"$$g_8_call_279", %Uint32* %"$g_9", align 4, !dbg !141 + %"$$g_9_280" = load %Uint32, %Uint32* %"$g_9", align 4 + store %Uint32 %"$$g_9_280", %Uint32* %"$retval_27", align 4, !dbg !141 + br label %"$matchsucc_234" + +"$Nil_281": ; preds = %"$have_gas_232" + %"$l_282" = bitcast %TName_List_String* %1 to %CName_Nil_String* + %"$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 = %"$Nil_281" + call void @_out_of_gas() + br label %"$have_gas_286" + +"$have_gas_286": ; preds = %"$out_of_gas_285", %"$Nil_281" + %"$consume_287" = sub i64 %"$gasrem_283", 1 + store i64 %"$consume_287", i64* @_gasrem, align 8 + %"$z_288" = load %Uint32, %Uint32* %z, align 4 + store %Uint32 %"$z_288", %Uint32* %"$retval_27", align 4, !dbg !143 + br label %"$matchsucc_234" + +"$empty_default_237": ; preds = %"$have_gas_232" + br label %"$matchsucc_234" + +"$matchsucc_234": ; preds = %"$have_gas_286", %"$have_gas_268", %"$empty_default_237" + %"$$retval_27_289" = load %Uint32, %Uint32* %"$retval_27", align 4 + ret %Uint32 %"$$retval_27_289" } -define internal { %Uint32 (i8*, %TName_List_String*)*, i8* } @"$fundef_24"(%"$$fundef_24_env_159"* %0, %Uint32 %1) !dbg !82 { +define internal { %Uint32 (i8*, %TName_List_String*)*, i8* } @"$fundef_24"(%"$$fundef_24_env_159"* %0, %Uint32 %1) !dbg !145 { entry: + %"$z_222" = alloca %Uint32, align 8 + store %Uint32 %1, %Uint32* %"$z_222", align 4 + call void @llvm.dbg.declare(metadata %Uint32* %"$z_222", metadata !146, metadata !DIExpression()), !dbg !147 %"$$fundef_24_env_f_198" = getelementptr inbounds %"$$fundef_24_env_159", %"$$fundef_24_env_159"* %0, i32 0, i32 0 %"$f_envload_199" = load { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* }* %"$$fundef_24_env_f_198", align 8 %f = alloca { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* }, align 8 @@ -1465,12 +1520,12 @@ entry: store { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* } %"$g_219", { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* }* %"$$fundef_26_env_g_218", align 8 %"$$fundef_26_env_z_220" = getelementptr inbounds %"$$fundef_26_env_158", %"$$fundef_26_env_158"* %"$$fundef_26_envp_212", i32 0, i32 2 store %Uint32 %1, %Uint32* %"$$fundef_26_env_z_220", align 4 - store { %Uint32 (i8*, %TName_List_String*)*, i8* } %"$$fundef_26_cloval_215", { %Uint32 (i8*, %TName_List_String*)*, i8* }* %"$retval_25", align 8, !dbg !83 + store { %Uint32 (i8*, %TName_List_String*)*, i8* } %"$$fundef_26_cloval_215", { %Uint32 (i8*, %TName_List_String*)*, i8* }* %"$retval_25", align 8, !dbg !148 %"$$retval_25_221" = load { %Uint32 (i8*, %TName_List_String*)*, i8* }, { %Uint32 (i8*, %TName_List_String*)*, i8* }* %"$retval_25", align 8 ret { %Uint32 (i8*, %TName_List_String*)*, i8* } %"$$retval_25_221" } -define internal { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* } @"$fundef_22"(%"$$fundef_22_env_160"* %0, { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* } %1) !dbg !84 { +define internal { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* } @"$fundef_22"(%"$$fundef_22_env_160"* %0, { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* } %1) !dbg !149 { entry: %"$retval_23" = alloca { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* }, align 8 %"$gasrem_184" = load i64, i64* @_gasrem, align 8 @@ -1490,19 +1545,19 @@ entry: %"$$fundef_24_env_voidp_191" = bitcast %"$$fundef_24_env_159"* %"$$fundef_24_envp_189" to i8* %"$$fundef_24_cloval_192" = 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_24_env_159"*, %Uint32)* @"$fundef_24" to { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*), i8* undef }, i8* %"$$fundef_24_env_voidp_191", 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_24_cloval_192", { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* }* %g, align 8, !dbg !85 + store { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* } %"$$fundef_24_cloval_192", { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* }* %g, align 8, !dbg !150 %"$$fundef_24_env_f_193" = getelementptr inbounds %"$$fundef_24_env_159", %"$$fundef_24_env_159"* %"$$fundef_24_envp_189", i32 0, i32 0 store { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* } %1, { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* }* %"$$fundef_24_env_f_193", align 8 %"$$fundef_24_env_g_194" = getelementptr inbounds %"$$fundef_24_env_159", %"$$fundef_24_env_159"* %"$$fundef_24_envp_189", i32 0, i32 1 %"$g_195" = 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_195", { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* }* %"$$fundef_24_env_g_194", align 8 %"$g_196" = 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_196", { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* }* %"$retval_23", align 8, !dbg !85 + store { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* } %"$g_196", { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* }* %"$retval_23", align 8, !dbg !150 %"$$retval_23_197" = load { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* }* %"$retval_23", align 8 ret { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* } %"$$retval_23_197" } -define internal { { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } @"$fundef_20"(%"$$fundef_20_env_161"* %0) !dbg !86 { +define internal { { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } @"$fundef_20"(%"$$fundef_20_env_161"* %0) !dbg !151 { entry: %"$retval_21" = alloca { { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* })*, i8* }, align 8 %"$gasrem_175" = load i64, i64* @_gasrem, align 8 @@ -1516,12 +1571,12 @@ entry: "$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 { { { %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_22_env_160"*, { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* })* @"$fundef_22" 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_21", align 8, !dbg !87 + 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_22_env_160"*, { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* })* @"$fundef_22" 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_21", align 8, !dbg !152 %"$$retval_21_183" = 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_21", align 8 ret { { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } %"$$retval_21_183" } -define internal { i8*, i8* }* @"$fundef_18"(%"$$fundef_18_env_162"* %0) !dbg !88 { +define internal { i8*, i8* }* @"$fundef_18"(%"$$fundef_18_env_162"* %0) !dbg !153 { entry: %"$retval_19" = alloca { i8*, i8* }*, align 8 %"$gasrem_163" = load i64, i64* @_gasrem, align 8 @@ -1542,7 +1597,7 @@ entry: %"$dyndisp_gep_172" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_171", i32 1 %"$dyndisp_pcast_173" = bitcast { i8*, i8* }* %"$dyndisp_gep_172" 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_20_env_161"*)* @"$fundef_20" 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_173", align 8 - store { i8*, i8* }* %"$dyndisp_table_171", { i8*, i8* }** %"$retval_19", align 8, !dbg !89 + store { i8*, i8* }* %"$dyndisp_table_171", { i8*, i8* }** %"$retval_19", align 8, !dbg !154 %"$$retval_19_174" = load { i8*, i8* }*, { i8*, i8* }** %"$retval_19", align 8 ret { i8*, i8* }* %"$$retval_19_174" } @@ -1551,603 +1606,694 @@ declare void @_out_of_gas() declare i8* @_salloc(i8*, i64) +; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn +declare void @llvm.dbg.declare(metadata, metadata, metadata) #0 + declare %Uint32 @_add_Uint32(%Uint32, %Uint32) -define void @_init_libs() !dbg !90 { +define void @_init_libs() !dbg !155 { entry: - %"$gasrem_818" = load i64, i64* @_gasrem, align 8 - %"$gascmp_819" = icmp ugt i64 5, %"$gasrem_818" - br i1 %"$gascmp_819", label %"$out_of_gas_820", label %"$have_gas_821" + %"$gasrem_829" = load i64, i64* @_gasrem, align 8 + %"$gascmp_830" = icmp ugt i64 5, %"$gasrem_829" + br i1 %"$gascmp_830", label %"$out_of_gas_831", label %"$have_gas_832" -"$out_of_gas_820": ; preds = %entry +"$out_of_gas_831": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_821" + br label %"$have_gas_832" -"$have_gas_821": ; preds = %"$out_of_gas_820", %entry - %"$consume_822" = sub i64 %"$gasrem_818", 5 - store i64 %"$consume_822", i64* @_gasrem, align 8 - store %Int32 { i32 5 }, %Int32* @"$_gas_charge_accrec_lib_5", align 4, !dbg !92 - %"$gasrem_823" = load i64, i64* @_gasrem, align 8 - %"$gascmp_824" = icmp ugt i64 8, %"$gasrem_823" - br i1 %"$gascmp_824", label %"$out_of_gas_825", label %"$have_gas_826" +"$have_gas_832": ; preds = %"$out_of_gas_831", %entry + %"$consume_833" = sub i64 %"$gasrem_829", 5 + store i64 %"$consume_833", i64* @_gasrem, align 8 + store %Int32 { i32 5 }, %Int32* @"$_gas_charge_accrec_lib_5", align 4, !dbg !157 + %"$gasrem_834" = load i64, i64* @_gasrem, align 8 + %"$gascmp_835" = icmp ugt i64 8, %"$gasrem_834" + br i1 %"$gascmp_835", label %"$out_of_gas_836", label %"$have_gas_837" -"$out_of_gas_825": ; preds = %"$have_gas_821" +"$out_of_gas_836": ; preds = %"$have_gas_832" call void @_out_of_gas() - br label %"$have_gas_826" + br label %"$have_gas_837" -"$have_gas_826": ; preds = %"$out_of_gas_825", %"$have_gas_821" - %"$consume_827" = sub i64 %"$gasrem_823", 8 - store i64 %"$consume_827", i64* @_gasrem, align 8 - store %Int32 { i32 8 }, %Int32* @"$_gas_charge_accBoolUtils_0", align 4, !dbg !92 - %"$gasrem_828" = load i64, i64* @_gasrem, align 8 - %"$gascmp_829" = icmp ugt i64 196, %"$gasrem_828" - br i1 %"$gascmp_829", label %"$out_of_gas_830", label %"$have_gas_831" +"$have_gas_837": ; preds = %"$out_of_gas_836", %"$have_gas_832" + %"$consume_838" = sub i64 %"$gasrem_834", 8 + store i64 %"$consume_838", i64* @_gasrem, align 8 + store %Int32 { i32 8 }, %Int32* @"$_gas_charge_accBoolUtils_0", align 4, !dbg !157 + %"$gasrem_839" = load i64, i64* @_gasrem, align 8 + %"$gascmp_840" = icmp ugt i64 196, %"$gasrem_839" + br i1 %"$gascmp_840", label %"$out_of_gas_841", label %"$have_gas_842" -"$out_of_gas_830": ; preds = %"$have_gas_826" +"$out_of_gas_841": ; preds = %"$have_gas_837" call void @_out_of_gas() - br label %"$have_gas_831" + br label %"$have_gas_842" -"$have_gas_831": ; preds = %"$out_of_gas_830", %"$have_gas_826" - %"$consume_832" = sub i64 %"$gasrem_828", 196 - store i64 %"$consume_832", i64* @_gasrem, align 8 - store %Int32 { i32 196 }, %Int32* @"$_gas_charge_accIntUtils_1", align 4, !dbg !92 - %"$gasrem_833" = load i64, i64* @_gasrem, align 8 - %"$gascmp_834" = icmp ugt i64 19, %"$gasrem_833" - br i1 %"$gascmp_834", label %"$out_of_gas_835", label %"$have_gas_836" +"$have_gas_842": ; preds = %"$out_of_gas_841", %"$have_gas_837" + %"$consume_843" = sub i64 %"$gasrem_839", 196 + store i64 %"$consume_843", i64* @_gasrem, align 8 + store %Int32 { i32 196 }, %Int32* @"$_gas_charge_accIntUtils_1", align 4, !dbg !157 + %"$gasrem_844" = load i64, i64* @_gasrem, align 8 + %"$gascmp_845" = icmp ugt i64 19, %"$gasrem_844" + br i1 %"$gascmp_845", label %"$out_of_gas_846", label %"$have_gas_847" -"$out_of_gas_835": ; preds = %"$have_gas_831" +"$out_of_gas_846": ; preds = %"$have_gas_842" call void @_out_of_gas() - br label %"$have_gas_836" + br label %"$have_gas_847" -"$have_gas_836": ; preds = %"$out_of_gas_835", %"$have_gas_831" - %"$consume_837" = sub i64 %"$gasrem_833", 19 - store i64 %"$consume_837", i64* @_gasrem, align 8 - store %Int32 { i32 19 }, %Int32* @"$_gas_charge_accListUtils_2", align 4, !dbg !92 - %"$gasrem_838" = load i64, i64* @_gasrem, align 8 - %"$gascmp_839" = icmp ugt i64 1, %"$gasrem_838" - br i1 %"$gascmp_839", label %"$out_of_gas_840", label %"$have_gas_841" +"$have_gas_847": ; preds = %"$out_of_gas_846", %"$have_gas_842" + %"$consume_848" = sub i64 %"$gasrem_844", 19 + store i64 %"$consume_848", i64* @_gasrem, align 8 + store %Int32 { i32 19 }, %Int32* @"$_gas_charge_accListUtils_2", align 4, !dbg !157 + %"$gasrem_849" = load i64, i64* @_gasrem, align 8 + %"$gascmp_850" = icmp ugt i64 1, %"$gasrem_849" + br i1 %"$gascmp_850", label %"$out_of_gas_851", label %"$have_gas_852" -"$out_of_gas_840": ; preds = %"$have_gas_836" +"$out_of_gas_851": ; preds = %"$have_gas_847" call void @_out_of_gas() - br label %"$have_gas_841" + br label %"$have_gas_852" -"$have_gas_841": ; preds = %"$out_of_gas_840", %"$have_gas_836" - %"$consume_842" = sub i64 %"$gasrem_838", 1 - store i64 %"$consume_842", i64* @_gasrem, align 8 +"$have_gas_852": ; preds = %"$out_of_gas_851", %"$have_gas_847" + %"$consume_853" = sub i64 %"$gasrem_849", 1 + store i64 %"$consume_853", i64* @_gasrem, align 8 %list_foldl = alloca { i8*, i8* }*, align 8 - %"$dyndisp_table_849_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$dyndisp_table_849_salloc_salloc" = call i8* @_salloc(i8* %"$dyndisp_table_849_salloc_load", i64 48) - %"$dyndisp_table_849_salloc" = bitcast i8* %"$dyndisp_table_849_salloc_salloc" to [3 x { i8*, i8* }]* - %"$dyndisp_table_849" = bitcast [3 x { i8*, i8* }]* %"$dyndisp_table_849_salloc" to { i8*, i8* }* - %"$dyndisp_gep_850" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_849", i32 0 - %"$dyndisp_pcast_851" = bitcast { i8*, i8* }* %"$dyndisp_gep_850" to { { i8*, i8* }* (i8*)*, i8* }* - store { { i8*, i8* }* (i8*)*, i8* } { { i8*, i8* }* (i8*)* bitcast ({ i8*, i8* }* (%"$$fundef_18_env_162"*)* @"$fundef_18" to { i8*, i8* }* (i8*)*), i8* null }, { { i8*, i8* }* (i8*)*, i8* }* %"$dyndisp_pcast_851", align 8 - %"$dyndisp_gep_852" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_849", i32 2 - %"$dyndisp_pcast_853" = bitcast { i8*, i8* }* %"$dyndisp_gep_852" to { { i8*, i8* }* (i8*)*, i8* }* - store { { i8*, i8* }* (i8*)*, i8* } { { i8*, i8* }* (i8*)* bitcast ({ i8*, i8* }* (%"$$fundef_28_env_157"*)* @"$fundef_28" to { i8*, i8* }* (i8*)*), i8* null }, { { i8*, i8* }* (i8*)*, i8* }* %"$dyndisp_pcast_853", align 8 - store { i8*, i8* }* %"$dyndisp_table_849", { i8*, i8* }** %list_foldl, align 8, !dbg !93 - %"$$fundef_38_envp_854_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_38_envp_854_salloc" = call i8* @_salloc(i8* %"$$fundef_38_envp_854_load", i64 8) - %"$$fundef_38_envp_854" = bitcast i8* %"$$fundef_38_envp_854_salloc" to %"$$fundef_38_env_152"* - %"$$fundef_38_env_voidp_856" = bitcast %"$$fundef_38_env_152"* %"$$fundef_38_envp_854" to i8* - %"$$fundef_38_cloval_857" = insertvalue { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*)*, i8* } { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*)* bitcast ({ %Uint32 (i8*, %TName_List_String*)*, i8* } (%"$$fundef_38_env_152"*)* @"$fundef_38" to { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*)*), i8* undef }, i8* %"$$fundef_38_env_voidp_856", 1 - %"$$fundef_38_env_list_foldl_858" = getelementptr inbounds %"$$fundef_38_env_152", %"$$fundef_38_env_152"* %"$$fundef_38_envp_854", i32 0, i32 0 - %"$list_foldl_859" = load { i8*, i8* }*, { i8*, i8* }** %list_foldl, align 8 - store { i8*, i8* }* %"$list_foldl_859", { i8*, i8* }** %"$$fundef_38_env_list_foldl_858", align 8 - %"$$fundef_44_env_voidp_861" = bitcast %"$$fundef_38_env_152"* %"$$fundef_38_envp_854" to i8* - %"$$fundef_44_cloval_862" = insertvalue { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*)*, i8* } { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*)* bitcast ({ %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (%"$$fundef_44_env_149"*)* @"$fundef_44" to { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*)*), i8* undef }, i8* %"$$fundef_44_env_voidp_861", 1 - %"$dyndisp_table_863_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$dyndisp_table_863_salloc_salloc" = call i8* @_salloc(i8* %"$dyndisp_table_863_salloc_load", i64 48) - %"$dyndisp_table_863_salloc" = bitcast i8* %"$dyndisp_table_863_salloc_salloc" to [3 x { i8*, i8* }]* - %"$dyndisp_table_863" = bitcast [3 x { i8*, i8* }]* %"$dyndisp_table_863_salloc" to { i8*, i8* }* - %"$dyndisp_gep_864" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_863", i32 0 - %"$dyndisp_pcast_865" = bitcast { i8*, i8* }* %"$dyndisp_gep_864" to { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*)*, i8* }* - store { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*)*, i8* } %"$$fundef_38_cloval_857", { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*)*, i8* }* %"$dyndisp_pcast_865", align 8 - %"$dyndisp_gep_866" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_863", i32 2 - %"$dyndisp_pcast_867" = bitcast { i8*, i8* }* %"$dyndisp_gep_866" to { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*)*, i8* }* - store { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*)*, i8* } %"$$fundef_44_cloval_862", { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*)*, i8* }* %"$dyndisp_pcast_867", align 8 - store { i8*, i8* }* %"$dyndisp_table_863", { i8*, i8* }** @ListUtils.list_length, align 8, !dbg !94 - %"$gasrem_868" = load i64, i64* @_gasrem, align 8 - %"$gascmp_869" = icmp ugt i64 12, %"$gasrem_868" - br i1 %"$gascmp_869", label %"$out_of_gas_870", label %"$have_gas_871" - -"$out_of_gas_870": ; preds = %"$have_gas_841" - call void @_out_of_gas() - br label %"$have_gas_871" - -"$have_gas_871": ; preds = %"$out_of_gas_870", %"$have_gas_841" - %"$consume_872" = sub i64 %"$gasrem_868", 12 - store i64 %"$consume_872", i64* @_gasrem, align 8 - store %Int32 { i32 12 }, %Int32* @"$_gas_charge_accNatUtils_3", align 4, !dbg !92 - %"$gasrem_873" = load i64, i64* @_gasrem, align 8 - %"$gascmp_874" = icmp ugt i64 2, %"$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", 2 - store i64 %"$consume_877", i64* @_gasrem, align 8 - store %Int32 { i32 2 }, %Int32* @"$_gas_charge_accPairUtils_4", align 4, !dbg !92 + %"$dyndisp_table_860_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$dyndisp_table_860_salloc_salloc" = call i8* @_salloc(i8* %"$dyndisp_table_860_salloc_load", i64 48) + %"$dyndisp_table_860_salloc" = bitcast i8* %"$dyndisp_table_860_salloc_salloc" to [3 x { i8*, i8* }]* + %"$dyndisp_table_860" = bitcast [3 x { i8*, i8* }]* %"$dyndisp_table_860_salloc" to { i8*, i8* }* + %"$dyndisp_gep_861" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_860", i32 0 + %"$dyndisp_pcast_862" = bitcast { i8*, i8* }* %"$dyndisp_gep_861" to { { i8*, i8* }* (i8*)*, i8* }* + store { { i8*, i8* }* (i8*)*, i8* } { { i8*, i8* }* (i8*)* bitcast ({ i8*, i8* }* (%"$$fundef_18_env_162"*)* @"$fundef_18" to { i8*, i8* }* (i8*)*), i8* null }, { { i8*, i8* }* (i8*)*, i8* }* %"$dyndisp_pcast_862", align 8 + %"$dyndisp_gep_863" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_860", i32 2 + %"$dyndisp_pcast_864" = bitcast { i8*, i8* }* %"$dyndisp_gep_863" to { { i8*, i8* }* (i8*)*, i8* }* + store { { i8*, i8* }* (i8*)*, i8* } { { i8*, i8* }* (i8*)* bitcast ({ i8*, i8* }* (%"$$fundef_28_env_157"*)* @"$fundef_28" to { i8*, i8* }* (i8*)*), i8* null }, { { i8*, i8* }* (i8*)*, i8* }* %"$dyndisp_pcast_864", align 8 + store { i8*, i8* }* %"$dyndisp_table_860", { i8*, i8* }** %list_foldl, align 8, !dbg !158 + %"$$fundef_38_envp_865_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_38_envp_865_salloc" = call i8* @_salloc(i8* %"$$fundef_38_envp_865_load", i64 8) + %"$$fundef_38_envp_865" = bitcast i8* %"$$fundef_38_envp_865_salloc" to %"$$fundef_38_env_152"* + %"$$fundef_38_env_voidp_867" = bitcast %"$$fundef_38_env_152"* %"$$fundef_38_envp_865" to i8* + %"$$fundef_38_cloval_868" = insertvalue { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*)*, i8* } { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*)* bitcast ({ %Uint32 (i8*, %TName_List_String*)*, i8* } (%"$$fundef_38_env_152"*)* @"$fundef_38" to { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*)*), i8* undef }, i8* %"$$fundef_38_env_voidp_867", 1 + %"$$fundef_38_env_list_foldl_869" = getelementptr inbounds %"$$fundef_38_env_152", %"$$fundef_38_env_152"* %"$$fundef_38_envp_865", i32 0, i32 0 + %"$list_foldl_870" = load { i8*, i8* }*, { i8*, i8* }** %list_foldl, align 8 + store { i8*, i8* }* %"$list_foldl_870", { i8*, i8* }** %"$$fundef_38_env_list_foldl_869", align 8 + %"$$fundef_44_env_voidp_872" = bitcast %"$$fundef_38_env_152"* %"$$fundef_38_envp_865" to i8* + %"$$fundef_44_cloval_873" = insertvalue { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*)*, i8* } { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*)* bitcast ({ %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (%"$$fundef_44_env_149"*)* @"$fundef_44" to { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*)*), i8* undef }, i8* %"$$fundef_44_env_voidp_872", 1 + %"$dyndisp_table_874_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$dyndisp_table_874_salloc_salloc" = call i8* @_salloc(i8* %"$dyndisp_table_874_salloc_load", i64 48) + %"$dyndisp_table_874_salloc" = bitcast i8* %"$dyndisp_table_874_salloc_salloc" to [3 x { i8*, i8* }]* + %"$dyndisp_table_874" = bitcast [3 x { i8*, i8* }]* %"$dyndisp_table_874_salloc" to { i8*, i8* }* + %"$dyndisp_gep_875" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_874", i32 0 + %"$dyndisp_pcast_876" = bitcast { i8*, i8* }* %"$dyndisp_gep_875" to { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*)*, i8* }* + store { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*)*, i8* } %"$$fundef_38_cloval_868", { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*)*, i8* }* %"$dyndisp_pcast_876", align 8 + %"$dyndisp_gep_877" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_874", i32 2 + %"$dyndisp_pcast_878" = bitcast { i8*, i8* }* %"$dyndisp_gep_877" to { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*)*, i8* }* + store { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*)*, i8* } %"$$fundef_44_cloval_873", { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*)*, i8* }* %"$dyndisp_pcast_878", align 8 + store { i8*, i8* }* %"$dyndisp_table_874", { i8*, i8* }** @ListUtils.list_length, align 8, !dbg !159 + %"$gasrem_879" = load i64, i64* @_gasrem, align 8 + %"$gascmp_880" = icmp ugt i64 12, %"$gasrem_879" + br i1 %"$gascmp_880", label %"$out_of_gas_881", label %"$have_gas_882" + +"$out_of_gas_881": ; preds = %"$have_gas_852" + call void @_out_of_gas() + br label %"$have_gas_882" + +"$have_gas_882": ; preds = %"$out_of_gas_881", %"$have_gas_852" + %"$consume_883" = sub i64 %"$gasrem_879", 12 + store i64 %"$consume_883", i64* @_gasrem, align 8 + store %Int32 { i32 12 }, %Int32* @"$_gas_charge_accNatUtils_3", align 4, !dbg !157 + %"$gasrem_884" = load i64, i64* @_gasrem, align 8 + %"$gascmp_885" = icmp ugt i64 2, %"$gasrem_884" + br i1 %"$gascmp_885", label %"$out_of_gas_886", label %"$have_gas_887" + +"$out_of_gas_886": ; preds = %"$have_gas_882" + call void @_out_of_gas() + br label %"$have_gas_887" + +"$have_gas_887": ; preds = %"$out_of_gas_886", %"$have_gas_882" + %"$consume_888" = sub i64 %"$gasrem_884", 2 + store i64 %"$consume_888", i64* @_gasrem, align 8 + store %Int32 { i32 2 }, %Int32* @"$_gas_charge_accPairUtils_4", align 4, !dbg !157 ret void } -define internal %Uint32 @_scilla_expr_fun(i8* %0) !dbg !95 { +define internal %Uint32 @_scilla_expr_fun(i8* %0) !dbg !160 { entry: %"$expr_50" = alloca %Uint32, 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" + call void @llvm.dbg.declare(metadata %Uint32* %"$expr_50", metadata !161, metadata !DIExpression()), !dbg !162 + %"$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_880": ; preds = %entry +"$out_of_gas_891": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_881" + br label %"$have_gas_892" -"$have_gas_881": ; preds = %"$out_of_gas_880", %entry - %"$consume_882" = sub i64 %"$gasrem_878", 1 - store i64 %"$consume_882", i64* @_gasrem, align 8 +"$have_gas_892": ; preds = %"$out_of_gas_891", %entry + %"$consume_893" = sub i64 %"$gasrem_889", 1 + store i64 %"$consume_893", i64* @_gasrem, align 8 %list_length2 = alloca { i8*, i8* }*, align 8 - %"$gasrem_883" = load i64, i64* @_gasrem, align 8 - %"$gascmp_884" = icmp ugt i64 1, %"$gasrem_883" - br i1 %"$gascmp_884", label %"$out_of_gas_885", label %"$have_gas_886" - -"$out_of_gas_885": ; preds = %"$have_gas_881" - call void @_out_of_gas() - br label %"$have_gas_886" - -"$have_gas_886": ; preds = %"$out_of_gas_885", %"$have_gas_881" - %"$consume_887" = sub i64 %"$gasrem_883", 1 - store i64 %"$consume_887", i64* @_gasrem, align 8 - %"$$fundef_51_envp_888_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_51_envp_888_salloc" = call i8* @_salloc(i8* %"$$fundef_51_envp_888_load", i64 8) - %"$$fundef_51_envp_888" = bitcast i8* %"$$fundef_51_envp_888_salloc" to %"$$fundef_51_env_146"* - %"$$fundef_51_env_voidp_890" = bitcast %"$$fundef_51_env_146"* %"$$fundef_51_envp_888" to i8* - %"$$fundef_51_cloval_891" = insertvalue { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*)*, i8* } { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*)* bitcast ({ %Uint32 (i8*, %TName_List_String*)*, i8* } (%"$$fundef_51_env_146"*)* @"$fundef_51" to { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*)*), i8* undef }, i8* %"$$fundef_51_env_voidp_890", 1 - %"$$fundef_51_env_ListUtils.list_length_892" = getelementptr inbounds %"$$fundef_51_env_146", %"$$fundef_51_env_146"* %"$$fundef_51_envp_888", i32 0, i32 0 - %"$ListUtils.list_length_893" = load { i8*, i8* }*, { i8*, i8* }** @ListUtils.list_length, align 8 - store { i8*, i8* }* %"$ListUtils.list_length_893", { i8*, i8* }** %"$$fundef_51_env_ListUtils.list_length_892", align 8 - %"$$fundef_55_env_voidp_895" = bitcast %"$$fundef_51_env_146"* %"$$fundef_51_envp_888" to i8* - %"$$fundef_55_cloval_896" = insertvalue { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*)*, i8* } { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*)* bitcast ({ %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (%"$$fundef_55_env_144"*)* @"$fundef_55" to { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*)*), i8* undef }, i8* %"$$fundef_55_env_voidp_895", 1 - %"$dyndisp_table_897_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$dyndisp_table_897_salloc_salloc" = call i8* @_salloc(i8* %"$dyndisp_table_897_salloc_load", i64 48) - %"$dyndisp_table_897_salloc" = bitcast i8* %"$dyndisp_table_897_salloc_salloc" to [3 x { i8*, i8* }]* - %"$dyndisp_table_897" = bitcast [3 x { i8*, i8* }]* %"$dyndisp_table_897_salloc" to { i8*, i8* }* - %"$dyndisp_gep_898" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_897", i32 0 - %"$dyndisp_pcast_899" = bitcast { i8*, i8* }* %"$dyndisp_gep_898" to { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*)*, i8* }* - store { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*)*, i8* } %"$$fundef_51_cloval_891", { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*)*, i8* }* %"$dyndisp_pcast_899", align 8 - %"$dyndisp_gep_900" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_897", i32 2 - %"$dyndisp_pcast_901" = bitcast { i8*, i8* }* %"$dyndisp_gep_900" to { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*)*, i8* }* - store { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*)*, i8* } %"$$fundef_55_cloval_896", { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*)*, i8* }* %"$dyndisp_pcast_901", align 8 - store { i8*, i8* }* %"$dyndisp_table_897", { i8*, i8* }** %list_length2, align 8, !dbg !96 - %"$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_904": ; preds = %"$have_gas_886" - call void @_out_of_gas() - br label %"$have_gas_905" - -"$have_gas_905": ; preds = %"$out_of_gas_904", %"$have_gas_886" - %"$consume_906" = sub i64 %"$gasrem_902", 1 - store i64 %"$consume_906", i64* @_gasrem, 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 + %"$$fundef_51_envp_899_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_51_envp_899_salloc" = call i8* @_salloc(i8* %"$$fundef_51_envp_899_load", i64 8) + %"$$fundef_51_envp_899" = bitcast i8* %"$$fundef_51_envp_899_salloc" to %"$$fundef_51_env_146"* + %"$$fundef_51_env_voidp_901" = bitcast %"$$fundef_51_env_146"* %"$$fundef_51_envp_899" to i8* + %"$$fundef_51_cloval_902" = insertvalue { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*)*, i8* } { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*)* bitcast ({ %Uint32 (i8*, %TName_List_String*)*, i8* } (%"$$fundef_51_env_146"*)* @"$fundef_51" to { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*)*), i8* undef }, i8* %"$$fundef_51_env_voidp_901", 1 + %"$$fundef_51_env_ListUtils.list_length_903" = getelementptr inbounds %"$$fundef_51_env_146", %"$$fundef_51_env_146"* %"$$fundef_51_envp_899", i32 0, i32 0 + %"$ListUtils.list_length_904" = load { i8*, i8* }*, { i8*, i8* }** @ListUtils.list_length, align 8 + store { i8*, i8* }* %"$ListUtils.list_length_904", { i8*, i8* }** %"$$fundef_51_env_ListUtils.list_length_903", align 8 + %"$$fundef_55_env_voidp_906" = bitcast %"$$fundef_51_env_146"* %"$$fundef_51_envp_899" to i8* + %"$$fundef_55_cloval_907" = insertvalue { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*)*, i8* } { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*)* bitcast ({ %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (%"$$fundef_55_env_144"*)* @"$fundef_55" to { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*)*), i8* undef }, i8* %"$$fundef_55_env_voidp_906", 1 + %"$dyndisp_table_908_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$dyndisp_table_908_salloc_salloc" = call i8* @_salloc(i8* %"$dyndisp_table_908_salloc_load", i64 48) + %"$dyndisp_table_908_salloc" = bitcast i8* %"$dyndisp_table_908_salloc_salloc" to [3 x { i8*, i8* }]* + %"$dyndisp_table_908" = bitcast [3 x { i8*, i8* }]* %"$dyndisp_table_908_salloc" to { i8*, i8* }* + %"$dyndisp_gep_909" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_908", i32 0 + %"$dyndisp_pcast_910" = bitcast { i8*, i8* }* %"$dyndisp_gep_909" to { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*)*, i8* }* + store { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*)*, i8* } %"$$fundef_51_cloval_902", { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*)*, i8* }* %"$dyndisp_pcast_910", align 8 + %"$dyndisp_gep_911" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_908", i32 2 + %"$dyndisp_pcast_912" = bitcast { i8*, i8* }* %"$dyndisp_gep_911" to { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*)*, i8* }* + store { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*)*, i8* } %"$$fundef_55_cloval_907", { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*)*, i8* }* %"$dyndisp_pcast_912", align 8 + store { i8*, i8* }* %"$dyndisp_table_908", { i8*, i8* }** %list_length2, align 8, !dbg !162 + %"$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_915": ; preds = %"$have_gas_897" + call void @_out_of_gas() + br label %"$have_gas_916" + +"$have_gas_916": ; preds = %"$out_of_gas_915", %"$have_gas_897" + %"$consume_917" = sub i64 %"$gasrem_913", 1 + store i64 %"$consume_917", i64* @_gasrem, align 8 %t = alloca { { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* } (i8*, %TName_Bool*)*, i8* }, align 8 - %"$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" + %"$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_909": ; preds = %"$have_gas_905" +"$out_of_gas_920": ; preds = %"$have_gas_916" call void @_out_of_gas() - br label %"$have_gas_910" + br label %"$have_gas_921" -"$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 { { { { 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_59_env_142"*, %TName_Bool*)* @"$fundef_59" 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 !97 - %"$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" +"$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 { { { { 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_59_env_142"*, %TName_Bool*)* @"$fundef_59" 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 !163 + %"$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_917": ; preds = %"$have_gas_910" +"$out_of_gas_928": ; preds = %"$have_gas_921" call void @_out_of_gas() - br label %"$have_gas_918" + br label %"$have_gas_929" -"$have_gas_918": ; preds = %"$out_of_gas_917", %"$have_gas_910" - %"$consume_919" = sub i64 %"$gasrem_915", 1 - store i64 %"$consume_919", i64* @_gasrem, align 8 +"$have_gas_929": ; preds = %"$out_of_gas_928", %"$have_gas_921" + %"$consume_930" = sub i64 %"$gasrem_926", 1 + store i64 %"$consume_930", i64* @_gasrem, align 8 %true = alloca %TName_Bool*, align 8 - %"$gasrem_920" = load i64, i64* @_gasrem, align 8 - %"$gascmp_921" = icmp ugt i64 1, %"$gasrem_920" - br i1 %"$gascmp_921", label %"$out_of_gas_922", label %"$have_gas_923" - -"$out_of_gas_922": ; preds = %"$have_gas_918" - call void @_out_of_gas() - br label %"$have_gas_923" - -"$have_gas_923": ; preds = %"$out_of_gas_922", %"$have_gas_918" - %"$consume_924" = sub i64 %"$gasrem_920", 1 - store i64 %"$consume_924", i64* @_gasrem, align 8 - %"$adtval_925_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_925_salloc" = call i8* @_salloc(i8* %"$adtval_925_load", i64 1) - %"$adtval_925" = bitcast i8* %"$adtval_925_salloc" to %CName_True* - %"$adtgep_926" = getelementptr inbounds %CName_True, %CName_True* %"$adtval_925", i32 0, i32 0 - store i8 0, i8* %"$adtgep_926", align 1 - %"$adtptr_927" = bitcast %CName_True* %"$adtval_925" to %TName_Bool* - store %TName_Bool* %"$adtptr_927", %TName_Bool** %true, align 8, !dbg !98 - %"$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 = %"$have_gas_923" - call void @_out_of_gas() - br label %"$have_gas_931" - -"$have_gas_931": ; preds = %"$out_of_gas_930", %"$have_gas_923" - %"$consume_932" = sub i64 %"$gasrem_928", 1 - store i64 %"$consume_932", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %true, metadata !164, metadata !DIExpression()), !dbg !165 + %"$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_929" + call void @_out_of_gas() + br label %"$have_gas_934" + +"$have_gas_934": ; preds = %"$out_of_gas_933", %"$have_gas_929" + %"$consume_935" = sub i64 %"$gasrem_931", 1 + store i64 %"$consume_935", i64* @_gasrem, align 8 + %"$adtval_936_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_936_salloc" = call i8* @_salloc(i8* %"$adtval_936_load", i64 1) + %"$adtval_936" = bitcast i8* %"$adtval_936_salloc" to %CName_True* + %"$adtgep_937" = getelementptr inbounds %CName_True, %CName_True* %"$adtval_936", i32 0, i32 0 + store i8 0, i8* %"$adtgep_937", align 1 + %"$adtptr_938" = bitcast %CName_True* %"$adtval_936" to %TName_Bool* + store %TName_Bool* %"$adtptr_938", %TName_Bool** %true, align 8, !dbg !166 + %"$gasrem_939" = load i64, i64* @_gasrem, align 8 + %"$gascmp_940" = icmp ugt i64 1, %"$gasrem_939" + br i1 %"$gascmp_940", label %"$out_of_gas_941", label %"$have_gas_942" + +"$out_of_gas_941": ; preds = %"$have_gas_934" + call void @_out_of_gas() + br label %"$have_gas_942" + +"$have_gas_942": ; preds = %"$out_of_gas_941", %"$have_gas_934" + %"$consume_943" = sub i64 %"$gasrem_939", 1 + store i64 %"$consume_943", i64* @_gasrem, align 8 %f = alloca { i8*, i8* }*, 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" + %"$gasrem_944" = load i64, i64* @_gasrem, align 8 + %"$gascmp_945" = icmp ugt i64 1, %"$gasrem_944" + br i1 %"$gascmp_945", label %"$out_of_gas_946", label %"$have_gas_947" -"$out_of_gas_935": ; preds = %"$have_gas_931" +"$out_of_gas_946": ; preds = %"$have_gas_942" call void @_out_of_gas() - br label %"$have_gas_936" + br label %"$have_gas_947" -"$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 +"$have_gas_947": ; preds = %"$out_of_gas_946", %"$have_gas_942" + %"$consume_948" = sub i64 %"$gasrem_944", 1 + store i64 %"$consume_948", i64* @_gasrem, align 8 %"$t_13" = alloca { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* }, align 8 - %"$t_938" = 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_939" = extractvalue { { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$t_938", 0 - %"$t_envptr_940" = extractvalue { { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$t_938", 1 - %"$true_941" = load %TName_Bool*, %TName_Bool** %true, align 8 - %"$t_call_942" = call { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* } %"$t_fptr_939"(i8* %"$t_envptr_940", %TName_Bool* %"$true_941"), !dbg !99 - store { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* } %"$t_call_942", { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* }* %"$t_13", align 8, !dbg !99 + %"$t_949" = 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_950" = extractvalue { { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$t_949", 0 + %"$t_envptr_951" = extractvalue { { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$t_949", 1 + %"$true_952" = load %TName_Bool*, %TName_Bool** %true, align 8 + %"$t_call_953" = call { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* } %"$t_fptr_950"(i8* %"$t_envptr_951", %TName_Bool* %"$true_952"), !dbg !167 + store { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* } %"$t_call_953", { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* }* %"$t_13", align 8, !dbg !167 %"$t_14" = alloca { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }, align 8 - %"$$t_13_943" = load { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* }, { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* }* %"$t_13", align 8 - %"$$t_13_fptr_944" = extractvalue { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* } %"$$t_13_943", 0 - %"$$t_13_envptr_945" = extractvalue { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* } %"$$t_13_943", 1 - %"$ListUtils.list_length_946" = load { i8*, i8* }*, { i8*, i8* }** @ListUtils.list_length, align 8 - %"$$t_13_call_947" = call { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$$t_13_fptr_944"(i8* %"$$t_13_envptr_945", { i8*, i8* }* %"$ListUtils.list_length_946"), !dbg !99 - store { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$$t_13_call_947", { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %"$t_14", align 8, !dbg !99 + %"$$t_13_954" = load { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* }, { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* }* %"$t_13", align 8 + %"$$t_13_fptr_955" = extractvalue { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* } %"$$t_13_954", 0 + %"$$t_13_envptr_956" = extractvalue { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* } %"$$t_13_954", 1 + %"$ListUtils.list_length_957" = load { i8*, i8* }*, { i8*, i8* }** @ListUtils.list_length, align 8 + %"$$t_13_call_958" = call { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$$t_13_fptr_955"(i8* %"$$t_13_envptr_956", { i8*, i8* }* %"$ListUtils.list_length_957"), !dbg !167 + store { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$$t_13_call_958", { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %"$t_14", align 8, !dbg !167 %"$t_15" = alloca { i8*, i8* }*, align 8 - %"$$t_14_948" = load { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %"$t_14", align 8 - %"$$t_14_fptr_949" = extractvalue { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$$t_14_948", 0 - %"$$t_14_envptr_950" = extractvalue { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$$t_14_948", 1 - %"$list_length2_951" = load { i8*, i8* }*, { i8*, i8* }** %list_length2, align 8 - %"$$t_14_call_952" = call { i8*, i8* }* %"$$t_14_fptr_949"(i8* %"$$t_14_envptr_950", { i8*, i8* }* %"$list_length2_951"), !dbg !99 - store { i8*, i8* }* %"$$t_14_call_952", { i8*, i8* }** %"$t_15", align 8, !dbg !99 - %"$$t_15_953" = load { i8*, i8* }*, { i8*, i8* }** %"$t_15", align 8 - store { i8*, i8* }* %"$$t_15_953", { i8*, i8* }** %f, align 8, !dbg !99 - %"$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 = %"$have_gas_936" - call void @_out_of_gas() - br label %"$have_gas_957" - -"$have_gas_957": ; preds = %"$out_of_gas_956", %"$have_gas_936" - %"$consume_958" = sub i64 %"$gasrem_954", 1 - store i64 %"$consume_958", i64* @_gasrem, align 8 + %"$$t_14_959" = load { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %"$t_14", align 8 + %"$$t_14_fptr_960" = extractvalue { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$$t_14_959", 0 + %"$$t_14_envptr_961" = extractvalue { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$$t_14_959", 1 + %"$list_length2_962" = load { i8*, i8* }*, { i8*, i8* }** %list_length2, align 8 + %"$$t_14_call_963" = call { i8*, i8* }* %"$$t_14_fptr_960"(i8* %"$$t_14_envptr_961", { i8*, i8* }* %"$list_length2_962"), !dbg !167 + store { i8*, i8* }* %"$$t_14_call_963", { i8*, i8* }** %"$t_15", align 8, !dbg !167 + %"$$t_15_964" = load { i8*, i8* }*, { i8*, i8* }** %"$t_15", align 8 + store { i8*, i8* }* %"$$t_15_964", { i8*, i8* }** %f, align 8, !dbg !167 + %"$gasrem_965" = load i64, i64* @_gasrem, align 8 + %"$gascmp_966" = icmp ugt i64 1, %"$gasrem_965" + br i1 %"$gascmp_966", label %"$out_of_gas_967", label %"$have_gas_968" + +"$out_of_gas_967": ; preds = %"$have_gas_947" + call void @_out_of_gas() + br label %"$have_gas_968" + +"$have_gas_968": ; preds = %"$out_of_gas_967", %"$have_gas_947" + %"$consume_969" = sub i64 %"$gasrem_965", 1 + store i64 %"$consume_969", i64* @_gasrem, align 8 %f_string = alloca { %Uint32 (i8*, %TName_List_String*)*, i8* }, 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" - -"$out_of_gas_961": ; preds = %"$have_gas_957" - call void @_out_of_gas() - br label %"$have_gas_962" - -"$have_gas_962": ; preds = %"$out_of_gas_961", %"$have_gas_957" - %"$consume_963" = sub i64 %"$gasrem_959", 1 - store i64 %"$consume_963", i64* @_gasrem, align 8 - %"$f_964" = load { i8*, i8* }*, { i8*, i8* }** %f, align 8 - %"$f_965" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$f_964", i32 0 - %"$f_966" = bitcast { i8*, i8* }* %"$f_965" to { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*)*, i8* }* - %"$f_967" = load { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*)*, i8* }, { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*)*, i8* }* %"$f_966", align 8 - %"$f_fptr_968" = extractvalue { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*)*, i8* } %"$f_967", 0 - %"$f_envptr_969" = extractvalue { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*)*, i8* } %"$f_967", 1 - %"$f_call_970" = call { %Uint32 (i8*, %TName_List_String*)*, i8* } %"$f_fptr_968"(i8* %"$f_envptr_969"), !dbg !100 - store { %Uint32 (i8*, %TName_List_String*)*, i8* } %"$f_call_970", { %Uint32 (i8*, %TName_List_String*)*, i8* }* %f_string, align 8, !dbg !101 - %"$gasrem_971" = load i64, i64* @_gasrem, align 8 - %"$gascmp_972" = icmp ugt i64 1, %"$gasrem_971" - br i1 %"$gascmp_972", label %"$out_of_gas_973", label %"$have_gas_974" - -"$out_of_gas_973": ; preds = %"$have_gas_962" - call void @_out_of_gas() - br label %"$have_gas_974" - -"$have_gas_974": ; preds = %"$out_of_gas_973", %"$have_gas_962" - %"$consume_975" = sub i64 %"$gasrem_971", 1 - store i64 %"$consume_975", i64* @_gasrem, align 8 + %"$gasrem_970" = load i64, i64* @_gasrem, align 8 + %"$gascmp_971" = icmp ugt i64 1, %"$gasrem_970" + br i1 %"$gascmp_971", label %"$out_of_gas_972", label %"$have_gas_973" + +"$out_of_gas_972": ; preds = %"$have_gas_968" + call void @_out_of_gas() + br label %"$have_gas_973" + +"$have_gas_973": ; preds = %"$out_of_gas_972", %"$have_gas_968" + %"$consume_974" = sub i64 %"$gasrem_970", 1 + store i64 %"$consume_974", i64* @_gasrem, align 8 + %"$f_975" = load { i8*, i8* }*, { i8*, i8* }** %f, align 8 + %"$f_976" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$f_975", i32 0 + %"$f_977" = bitcast { i8*, i8* }* %"$f_976" to { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*)*, i8* }* + %"$f_978" = load { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*)*, i8* }, { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*)*, i8* }* %"$f_977", align 8 + %"$f_fptr_979" = extractvalue { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*)*, i8* } %"$f_978", 0 + %"$f_envptr_980" = extractvalue { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*)*, i8* } %"$f_978", 1 + %"$f_call_981" = call { %Uint32 (i8*, %TName_List_String*)*, i8* } %"$f_fptr_979"(i8* %"$f_envptr_980"), !dbg !168 + store { %Uint32 (i8*, %TName_List_String*)*, i8* } %"$f_call_981", { %Uint32 (i8*, %TName_List_String*)*, i8* }* %f_string, align 8, !dbg !169 + %"$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 = %"$have_gas_973" + call void @_out_of_gas() + br label %"$have_gas_985" + +"$have_gas_985": ; preds = %"$out_of_gas_984", %"$have_gas_973" + %"$consume_986" = sub i64 %"$gasrem_982", 1 + store i64 %"$consume_986", i64* @_gasrem, align 8 %f_bystr20 = alloca { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* }, align 8 - %"$gasrem_976" = load i64, i64* @_gasrem, align 8 - %"$gascmp_977" = icmp ugt i64 1, %"$gasrem_976" - br i1 %"$gascmp_977", label %"$out_of_gas_978", label %"$have_gas_979" - -"$out_of_gas_978": ; preds = %"$have_gas_974" - call void @_out_of_gas() - br label %"$have_gas_979" - -"$have_gas_979": ; preds = %"$out_of_gas_978", %"$have_gas_974" - %"$consume_980" = sub i64 %"$gasrem_976", 1 - store i64 %"$consume_980", i64* @_gasrem, align 8 - %"$f_981" = load { i8*, i8* }*, { i8*, i8* }** %f, align 8 - %"$f_982" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$f_981", i32 2 - %"$f_983" = bitcast { i8*, i8* }* %"$f_982" to { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*)*, i8* }* - %"$f_984" = load { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*)*, i8* }, { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*)*, i8* }* %"$f_983", align 8 - %"$f_fptr_985" = extractvalue { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*)*, i8* } %"$f_984", 0 - %"$f_envptr_986" = extractvalue { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*)*, i8* } %"$f_984", 1 - %"$f_call_987" = call { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } %"$f_fptr_985"(i8* %"$f_envptr_986"), !dbg !102 - store { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } %"$f_call_987", { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* }* %f_bystr20, align 8, !dbg !103 - %"$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 = %"$have_gas_979" - call void @_out_of_gas() - br label %"$have_gas_991" - -"$have_gas_991": ; preds = %"$out_of_gas_990", %"$have_gas_979" - %"$consume_992" = sub i64 %"$gasrem_988", 1 - store i64 %"$consume_992", 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 + %"$f_992" = load { i8*, i8* }*, { i8*, i8* }** %f, align 8 + %"$f_993" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$f_992", i32 2 + %"$f_994" = bitcast { i8*, i8* }* %"$f_993" to { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*)*, i8* }* + %"$f_995" = load { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*)*, i8* }, { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*)*, i8* }* %"$f_994", align 8 + %"$f_fptr_996" = extractvalue { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*)*, i8* } %"$f_995", 0 + %"$f_envptr_997" = extractvalue { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*)*, i8* } %"$f_995", 1 + %"$f_call_998" = call { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } %"$f_fptr_996"(i8* %"$f_envptr_997"), !dbg !170 + store { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } %"$f_call_998", { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* }* %f_bystr20, align 8, !dbg !171 + %"$gasrem_999" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1000" = icmp ugt i64 1, %"$gasrem_999" + br i1 %"$gascmp_1000", label %"$out_of_gas_1001", label %"$have_gas_1002" + +"$out_of_gas_1001": ; preds = %"$have_gas_990" + call void @_out_of_gas() + br label %"$have_gas_1002" + +"$have_gas_1002": ; preds = %"$out_of_gas_1001", %"$have_gas_990" + %"$consume_1003" = sub i64 %"$gasrem_999", 1 + store i64 %"$consume_1003", i64* @_gasrem, align 8 %nil_string = alloca %TName_List_String*, align 8 - %"$gasrem_993" = load i64, i64* @_gasrem, align 8 - %"$gascmp_994" = icmp ugt i64 1, %"$gasrem_993" - br i1 %"$gascmp_994", label %"$out_of_gas_995", label %"$have_gas_996" - -"$out_of_gas_995": ; preds = %"$have_gas_991" - call void @_out_of_gas() - br label %"$have_gas_996" - -"$have_gas_996": ; preds = %"$out_of_gas_995", %"$have_gas_991" - %"$consume_997" = sub i64 %"$gasrem_993", 1 - store i64 %"$consume_997", i64* @_gasrem, align 8 - %"$adtval_998_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_998_salloc" = call i8* @_salloc(i8* %"$adtval_998_load", i64 1) - %"$adtval_998" = bitcast i8* %"$adtval_998_salloc" to %CName_Nil_String* - %"$adtgep_999" = getelementptr inbounds %CName_Nil_String, %CName_Nil_String* %"$adtval_998", i32 0, i32 0 - store i8 1, i8* %"$adtgep_999", align 1 - %"$adtptr_1000" = bitcast %CName_Nil_String* %"$adtval_998" to %TName_List_String* - store %TName_List_String* %"$adtptr_1000", %TName_List_String** %nil_string, align 8, !dbg !104 - %"$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 = %"$have_gas_996" - call void @_out_of_gas() - br label %"$have_gas_1004" - -"$have_gas_1004": ; preds = %"$out_of_gas_1003", %"$have_gas_996" - %"$consume_1005" = sub i64 %"$gasrem_1001", 1 - store i64 %"$consume_1005", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_List_String** %nil_string, metadata !172, metadata !DIExpression()), !dbg !173 + %"$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 + %"$adtval_1009_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_1009_salloc" = call i8* @_salloc(i8* %"$adtval_1009_load", i64 1) + %"$adtval_1009" = bitcast i8* %"$adtval_1009_salloc" to %CName_Nil_String* + %"$adtgep_1010" = getelementptr inbounds %CName_Nil_String, %CName_Nil_String* %"$adtval_1009", i32 0, i32 0 + store i8 1, i8* %"$adtgep_1010", align 1 + %"$adtptr_1011" = bitcast %CName_Nil_String* %"$adtval_1009" to %TName_List_String* + store %TName_List_String* %"$adtptr_1011", %TName_List_String** %nil_string, align 8, !dbg !174 + %"$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_1007" + call void @_out_of_gas() + br label %"$have_gas_1015" + +"$have_gas_1015": ; preds = %"$out_of_gas_1014", %"$have_gas_1007" + %"$consume_1016" = sub i64 %"$gasrem_1012", 1 + store i64 %"$consume_1016", i64* @_gasrem, align 8 %nil_bystr20 = alloca %TName_List_ByStr20*, align 8 - %"$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 = %"$have_gas_1004" - call void @_out_of_gas() - br label %"$have_gas_1009" - -"$have_gas_1009": ; preds = %"$out_of_gas_1008", %"$have_gas_1004" - %"$consume_1010" = sub i64 %"$gasrem_1006", 1 - store i64 %"$consume_1010", i64* @_gasrem, align 8 - %"$adtval_1011_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_1011_salloc" = call i8* @_salloc(i8* %"$adtval_1011_load", i64 1) - %"$adtval_1011" = bitcast i8* %"$adtval_1011_salloc" to %CName_Nil_ByStr20* - %"$adtgep_1012" = getelementptr inbounds %CName_Nil_ByStr20, %CName_Nil_ByStr20* %"$adtval_1011", i32 0, i32 0 - store i8 1, i8* %"$adtgep_1012", align 1 - %"$adtptr_1013" = bitcast %CName_Nil_ByStr20* %"$adtval_1011" to %TName_List_ByStr20* - store %TName_List_ByStr20* %"$adtptr_1013", %TName_List_ByStr20** %nil_bystr20, align 8, !dbg !105 - %"$gasrem_1014" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1015" = icmp ugt i64 1, %"$gasrem_1014" - br i1 %"$gascmp_1015", label %"$out_of_gas_1016", label %"$have_gas_1017" - -"$out_of_gas_1016": ; preds = %"$have_gas_1009" - call void @_out_of_gas() - br label %"$have_gas_1017" - -"$have_gas_1017": ; preds = %"$out_of_gas_1016", %"$have_gas_1009" - %"$consume_1018" = sub i64 %"$gasrem_1014", 1 - store i64 %"$consume_1018", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_List_ByStr20** %nil_bystr20, metadata !175, metadata !DIExpression()), !dbg !176 + %"$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_1015" + call void @_out_of_gas() + br label %"$have_gas_1020" + +"$have_gas_1020": ; preds = %"$out_of_gas_1019", %"$have_gas_1015" + %"$consume_1021" = sub i64 %"$gasrem_1017", 1 + store i64 %"$consume_1021", i64* @_gasrem, align 8 + %"$adtval_1022_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_1022_salloc" = call i8* @_salloc(i8* %"$adtval_1022_load", i64 1) + %"$adtval_1022" = bitcast i8* %"$adtval_1022_salloc" to %CName_Nil_ByStr20* + %"$adtgep_1023" = getelementptr inbounds %CName_Nil_ByStr20, %CName_Nil_ByStr20* %"$adtval_1022", i32 0, i32 0 + store i8 1, i8* %"$adtgep_1023", align 1 + %"$adtptr_1024" = bitcast %CName_Nil_ByStr20* %"$adtval_1022" to %TName_List_ByStr20* + store %TName_List_ByStr20* %"$adtptr_1024", %TName_List_ByStr20** %nil_bystr20, align 8, !dbg !177 + %"$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_1020" + call void @_out_of_gas() + br label %"$have_gas_1028" + +"$have_gas_1028": ; preds = %"$out_of_gas_1027", %"$have_gas_1020" + %"$consume_1029" = sub i64 %"$gasrem_1025", 1 + store i64 %"$consume_1029", i64* @_gasrem, align 8 %a = alloca %Uint32, align 8 - %"$gasrem_1019" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1020" = icmp ugt i64 1, %"$gasrem_1019" - br i1 %"$gascmp_1020", label %"$out_of_gas_1021", label %"$have_gas_1022" - -"$out_of_gas_1021": ; preds = %"$have_gas_1017" - call void @_out_of_gas() - br label %"$have_gas_1022" - -"$have_gas_1022": ; preds = %"$out_of_gas_1021", %"$have_gas_1017" - %"$consume_1023" = sub i64 %"$gasrem_1019", 1 - store i64 %"$consume_1023", i64* @_gasrem, align 8 - %"$f_string_16" = alloca %Uint32, align 8 - %"$f_string_1024" = load { %Uint32 (i8*, %TName_List_String*)*, i8* }, { %Uint32 (i8*, %TName_List_String*)*, i8* }* %f_string, align 8 - %"$f_string_fptr_1025" = extractvalue { %Uint32 (i8*, %TName_List_String*)*, i8* } %"$f_string_1024", 0 - %"$f_string_envptr_1026" = extractvalue { %Uint32 (i8*, %TName_List_String*)*, i8* } %"$f_string_1024", 1 - %"$nil_string_1027" = load %TName_List_String*, %TName_List_String** %nil_string, align 8 - %"$f_string_call_1028" = call %Uint32 %"$f_string_fptr_1025"(i8* %"$f_string_envptr_1026", %TName_List_String* %"$nil_string_1027"), !dbg !106 - store %Uint32 %"$f_string_call_1028", %Uint32* %"$f_string_16", align 4, !dbg !106 - %"$$f_string_16_1029" = load %Uint32, %Uint32* %"$f_string_16", align 4 - store %Uint32 %"$$f_string_16_1029", %Uint32* %a, align 4, !dbg !106 + call void @llvm.dbg.declare(metadata %Uint32* %a, metadata !178, metadata !DIExpression()), !dbg !179 %"$gasrem_1030" = load i64, i64* @_gasrem, align 8 %"$gascmp_1031" = icmp ugt i64 1, %"$gasrem_1030" br i1 %"$gascmp_1031", label %"$out_of_gas_1032", label %"$have_gas_1033" -"$out_of_gas_1032": ; preds = %"$have_gas_1022" +"$out_of_gas_1032": ; preds = %"$have_gas_1028" call void @_out_of_gas() br label %"$have_gas_1033" -"$have_gas_1033": ; preds = %"$out_of_gas_1032", %"$have_gas_1022" +"$have_gas_1033": ; preds = %"$out_of_gas_1032", %"$have_gas_1028" %"$consume_1034" = sub i64 %"$gasrem_1030", 1 store i64 %"$consume_1034", i64* @_gasrem, align 8 + %"$f_string_16" = alloca %Uint32, align 8 + call void @llvm.dbg.declare(metadata %Uint32* %"$f_string_16", metadata !180, metadata !DIExpression()), !dbg !181 + %"$f_string_1035" = load { %Uint32 (i8*, %TName_List_String*)*, i8* }, { %Uint32 (i8*, %TName_List_String*)*, i8* }* %f_string, align 8 + %"$f_string_fptr_1036" = extractvalue { %Uint32 (i8*, %TName_List_String*)*, i8* } %"$f_string_1035", 0 + %"$f_string_envptr_1037" = extractvalue { %Uint32 (i8*, %TName_List_String*)*, i8* } %"$f_string_1035", 1 + %"$nil_string_1038" = load %TName_List_String*, %TName_List_String** %nil_string, align 8 + %"$f_string_call_1039" = call %Uint32 %"$f_string_fptr_1036"(i8* %"$f_string_envptr_1037", %TName_List_String* %"$nil_string_1038"), !dbg !181 + store %Uint32 %"$f_string_call_1039", %Uint32* %"$f_string_16", align 4, !dbg !181 + %"$$f_string_16_1040" = load %Uint32, %Uint32* %"$f_string_16", align 4 + store %Uint32 %"$$f_string_16_1040", %Uint32* %a, align 4, !dbg !181 + %"$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_1033" + call void @_out_of_gas() + br label %"$have_gas_1044" + +"$have_gas_1044": ; preds = %"$out_of_gas_1043", %"$have_gas_1033" + %"$consume_1045" = sub i64 %"$gasrem_1041", 1 + store i64 %"$consume_1045", i64* @_gasrem, align 8 %b = alloca %Uint32, align 8 - %"$gasrem_1035" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1036" = icmp ugt i64 1, %"$gasrem_1035" - br i1 %"$gascmp_1036", label %"$out_of_gas_1037", label %"$have_gas_1038" - -"$out_of_gas_1037": ; preds = %"$have_gas_1033" - call void @_out_of_gas() - br label %"$have_gas_1038" - -"$have_gas_1038": ; preds = %"$out_of_gas_1037", %"$have_gas_1033" - %"$consume_1039" = sub i64 %"$gasrem_1035", 1 - store i64 %"$consume_1039", i64* @_gasrem, align 8 - %"$f_bystr20_17" = alloca %Uint32, align 8 - %"$f_bystr20_1040" = load { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* }, { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* }* %f_bystr20, align 8 - %"$f_bystr20_fptr_1041" = extractvalue { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } %"$f_bystr20_1040", 0 - %"$f_bystr20_envptr_1042" = extractvalue { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } %"$f_bystr20_1040", 1 - %"$nil_bystr20_1043" = load %TName_List_ByStr20*, %TName_List_ByStr20** %nil_bystr20, align 8 - %"$f_bystr20_call_1044" = call %Uint32 %"$f_bystr20_fptr_1041"(i8* %"$f_bystr20_envptr_1042", %TName_List_ByStr20* %"$nil_bystr20_1043"), !dbg !107 - store %Uint32 %"$f_bystr20_call_1044", %Uint32* %"$f_bystr20_17", align 4, !dbg !107 - %"$$f_bystr20_17_1045" = load %Uint32, %Uint32* %"$f_bystr20_17", align 4 - store %Uint32 %"$$f_bystr20_17_1045", %Uint32* %b, align 4, !dbg !107 + call void @llvm.dbg.declare(metadata %Uint32* %b, metadata !182, metadata !DIExpression()), !dbg !183 %"$gasrem_1046" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1047" = icmp ugt i64 4, %"$gasrem_1046" + %"$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_1038" +"$out_of_gas_1048": ; preds = %"$have_gas_1044" call void @_out_of_gas() br label %"$have_gas_1049" -"$have_gas_1049": ; preds = %"$out_of_gas_1048", %"$have_gas_1038" - %"$consume_1050" = sub i64 %"$gasrem_1046", 4 +"$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 - %"$a_1051" = load %Uint32, %Uint32* %a, align 4 - %"$b_1052" = load %Uint32, %Uint32* %b, align 4 - %"$add_call_1053" = call %Uint32 @_add_Uint32(%Uint32 %"$a_1051", %Uint32 %"$b_1052"), !dbg !108 - store %Uint32 %"$add_call_1053", %Uint32* %"$expr_50", align 4, !dbg !108 - %"$$expr_50_1054" = load %Uint32, %Uint32* %"$expr_50", align 4 - ret %Uint32 %"$$expr_50_1054" + %"$f_bystr20_17" = alloca %Uint32, align 8 + call void @llvm.dbg.declare(metadata %Uint32* %"$f_bystr20_17", metadata !184, metadata !DIExpression()), !dbg !185 + %"$f_bystr20_1051" = load { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* }, { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* }* %f_bystr20, align 8 + %"$f_bystr20_fptr_1052" = extractvalue { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } %"$f_bystr20_1051", 0 + %"$f_bystr20_envptr_1053" = extractvalue { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } %"$f_bystr20_1051", 1 + %"$nil_bystr20_1054" = load %TName_List_ByStr20*, %TName_List_ByStr20** %nil_bystr20, align 8 + %"$f_bystr20_call_1055" = call %Uint32 %"$f_bystr20_fptr_1052"(i8* %"$f_bystr20_envptr_1053", %TName_List_ByStr20* %"$nil_bystr20_1054"), !dbg !185 + store %Uint32 %"$f_bystr20_call_1055", %Uint32* %"$f_bystr20_17", align 4, !dbg !185 + %"$$f_bystr20_17_1056" = load %Uint32, %Uint32* %"$f_bystr20_17", align 4 + store %Uint32 %"$$f_bystr20_17_1056", %Uint32* %b, align 4, !dbg !185 + %"$gasrem_1057" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1058" = icmp ugt i64 4, %"$gasrem_1057" + br i1 %"$gascmp_1058", label %"$out_of_gas_1059", label %"$have_gas_1060" + +"$out_of_gas_1059": ; preds = %"$have_gas_1049" + call void @_out_of_gas() + br label %"$have_gas_1060" + +"$have_gas_1060": ; preds = %"$out_of_gas_1059", %"$have_gas_1049" + %"$consume_1061" = sub i64 %"$gasrem_1057", 4 + store i64 %"$consume_1061", i64* @_gasrem, align 8 + %"$a_1062" = load %Uint32, %Uint32* %a, align 4 + %"$b_1063" = load %Uint32, %Uint32* %b, align 4 + %"$add_call_1064" = call %Uint32 @_add_Uint32(%Uint32 %"$a_1062", %Uint32 %"$b_1063"), !dbg !186 + store %Uint32 %"$add_call_1064", %Uint32* %"$expr_50", align 4, !dbg !186 + %"$$expr_50_1065" = load %Uint32, %Uint32* %"$expr_50", align 4 + ret %Uint32 %"$$expr_50_1065" } declare void @_print_scilla_val(i8*, %_TyDescrTy_Typ*, i8*) define void @scilla_main() { entry: - %"$exprval_1055" = call %Uint32 @_scilla_expr_fun(i8* null) - %"$pval_1056" = alloca %Uint32, align 8 - %"$memvoidcast_1057" = bitcast %Uint32* %"$pval_1056" to i8* - store %Uint32 %"$exprval_1055", %Uint32* %"$pval_1056", align 4 - %"$execptr_load_1058" = load i8*, i8** @_execptr, align 8 - call void @_print_scilla_val(i8* %"$execptr_load_1058", %_TyDescrTy_Typ* @"$TyDescr_Uint32_69", i8* %"$memvoidcast_1057") + %"$exprval_1066" = call %Uint32 @_scilla_expr_fun(i8* null) + %"$pval_1067" = alloca %Uint32, align 8 + %"$memvoidcast_1068" = bitcast %Uint32* %"$pval_1067" to i8* + store %Uint32 %"$exprval_1066", %Uint32* %"$pval_1067", align 4 + %"$execptr_load_1069" = load i8*, i8** @_execptr, align 8 + call void @_print_scilla_val(i8* %"$execptr_load_1069", %_TyDescrTy_Typ* @"$TyDescr_Uint32_69", i8* %"$memvoidcast_1068") ret void } +attributes #0 = { nocallback nofree nosync nounwind readnone speculatable willreturn } + !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) +!1 = distinct !DICompileUnit(language: DW_LANG_C89, file: !2, producer: "Scilla Compiler", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false) !2 = !DIFile(filename: "nonprenex.scilexp", directory: "codegen/expr") -!3 = !{} -!4 = distinct !DISubprogram(name: "$fundef_63", linkageName: "$fundef_63", scope: !2, file: !2, line: 14, type: !5, scopeLine: 14, 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: 14, column: 5, scope: !4) +!3 = distinct !DISubprogram(name: "$fundef_63", linkageName: "$fundef_63", scope: !2, file: !2, line: 14, type: !4, scopeLine: 14, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!4 = !DISubroutineType(types: !5) +!5 = !{!6} +!6 = !DIBasicType(tag: DW_TAG_unspecified_type, name: "void") +!7 = !{} +!8 = !DILocation(line: 14, column: 5, scope: !3) !9 = !DILocation(line: 15, column: 15, scope: !10) !10 = distinct !DILexicalBlock(scope: !11, file: !2, line: 15, column: 7) -!11 = distinct !DILexicalBlock(scope: !4, file: !2, line: 14, column: 5) +!11 = distinct !DILexicalBlock(scope: !3, 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_61", linkageName: "$fundef_61", scope: !2, file: !2, line: 13, type: !5, scopeLine: 13, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!14 = distinct !DISubprogram(name: "$fundef_61", linkageName: "$fundef_61", scope: !2, file: !2, line: 13, type: !4, scopeLine: 13, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) !15 = !DILocation(line: 14, column: 5, scope: !14) -!16 = distinct !DISubprogram(name: "$fundef_59", linkageName: "$fundef_59", 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_57", linkageName: "$fundef_57", 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_55", linkageName: "$fundef_55", 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_53", linkageName: "$fundef_53", 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_51", linkageName: "$fundef_51", 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_48", linkageName: "$fundef_48", 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_46", linkageName: "$fundef_46", 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_44", linkageName: "$fundef_44", 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_42", linkageName: "$fundef_42", 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_40", linkageName: "$fundef_40", 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_38", linkageName: "$fundef_38", 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_36", linkageName: "$fundef_36", 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_34", linkageName: "$fundef_34", 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_32", linkageName: "$fundef_32", scope: !58, file: !58, 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_30", linkageName: "$fundef_30", 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_28", linkageName: "$fundef_28", 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_26", linkageName: "$fundef_26", 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_24", linkageName: "$fundef_24", 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_22", linkageName: "$fundef_22", scope: !58, file: !58, 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_20", linkageName: "$fundef_20", 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_18", linkageName: "$fundef_18", 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: 0, scope: !90) -!93 = !DILocation(line: 1, column: 17, scope: !90) -!94 = !DILocation(line: 100, column: 3, scope: !90) -!95 = 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) -!96 = !DILocation(line: 2, column: 3, scope: !95) -!97 = !DILocation(line: 12, column: 3, scope: !95) -!98 = !DILocation(line: 20, column: 12, scope: !95) -!99 = !DILocation(line: 22, column: 9, scope: !95) -!100 = !DILocation(line: 24, column: 17, scope: !95) -!101 = !DILocation(line: 24, column: 16, scope: !95) -!102 = !DILocation(line: 25, column: 18, scope: !95) -!103 = !DILocation(line: 25, column: 17, scope: !95) -!104 = !DILocation(line: 26, column: 18, scope: !95) -!105 = !DILocation(line: 27, column: 19, scope: !95) -!106 = !DILocation(line: 29, column: 9, scope: !95) -!107 = !DILocation(line: 30, column: 9, scope: !95) -!108 = !DILocation(line: 31, column: 1, scope: !95) +!16 = distinct !DISubprogram(name: "$fundef_59", linkageName: "$fundef_59", scope: !2, file: !2, line: 12, type: !4, scopeLine: 12, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!17 = !DILocalVariable(name: "b", scope: !16, file: !2, line: 11, type: !18) +!18 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "Bool", baseType: !19, size: 8, align: 8, dwarfAddressSpace: 0) +!19 = !DIBasicType(name: "Bool", size: 8) +!20 = !DILocation(line: 11, column: 8, scope: !16) +!21 = !DILocation(line: 13, column: 3, scope: !16) +!22 = distinct !DISubprogram(name: "$fundef_57", linkageName: "$fundef_57", scope: !2, file: !2, line: 4, type: !4, scopeLine: 4, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!23 = !DILocalVariable(name: "l", scope: !22, file: !2, line: 3, type: !24) +!24 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "List (ByStr20)", baseType: !25, size: 8, align: 8, dwarfAddressSpace: 0) +!25 = !DIBasicType(name: "List (ByStr20)", size: 8) +!26 = !DILocation(line: 3, column: 8, scope: !22) +!27 = !DILocalVariable(name: "$retval_58", scope: !22, file: !2, line: 4, type: !28) +!28 = !DIBasicType(name: "Uint32", size: 4) +!29 = !DILocation(line: 4, column: 5, scope: !22) +!30 = !DILocation(line: 4, column: 15, scope: !22) +!31 = !DILocation(line: 4, column: 14, scope: !22) +!32 = !DILocalVariable(name: "n", scope: !22, file: !2, line: 5, type: !28) +!33 = !DILocation(line: 5, column: 9, scope: !22) +!34 = !DILocalVariable(name: "$ll_12", scope: !22, file: !2, line: 5, type: !28) +!35 = !DILocation(line: 5, column: 13, scope: !22) +!36 = !DILocalVariable(name: "two", scope: !22, file: !2, line: 6, type: !28) +!37 = !DILocation(line: 6, column: 9, scope: !22) +!38 = !DILocation(line: 6, column: 15, scope: !22) +!39 = !DILocation(line: 7, column: 5, scope: !22) +!40 = distinct !DISubprogram(name: "$fundef_55", linkageName: "$fundef_55", scope: !2, file: !2, line: 4, type: !4, scopeLine: 4, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!41 = !DILocation(line: 4, column: 5, scope: !40) +!42 = distinct !DISubprogram(name: "$fundef_53", linkageName: "$fundef_53", scope: !2, file: !2, line: 4, type: !4, scopeLine: 4, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!43 = !DILocalVariable(name: "l", scope: !42, file: !2, line: 3, type: !44) +!44 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "List (String)", baseType: !45, size: 8, align: 8, dwarfAddressSpace: 0) +!45 = !DIBasicType(name: "List (String)", size: 8) +!46 = !DILocation(line: 3, column: 8, scope: !42) +!47 = !DILocalVariable(name: "$retval_54", scope: !42, file: !2, line: 4, type: !28) +!48 = !DILocation(line: 4, column: 5, scope: !42) +!49 = !DILocation(line: 4, column: 15, scope: !42) +!50 = !DILocation(line: 4, column: 14, scope: !42) +!51 = !DILocalVariable(name: "n", scope: !42, file: !2, line: 5, type: !28) +!52 = !DILocation(line: 5, column: 9, scope: !42) +!53 = !DILocalVariable(name: "$ll_12", scope: !42, file: !2, line: 5, type: !28) +!54 = !DILocation(line: 5, column: 13, scope: !42) +!55 = !DILocalVariable(name: "two", scope: !42, file: !2, line: 6, type: !28) +!56 = !DILocation(line: 6, column: 9, scope: !42) +!57 = !DILocation(line: 6, column: 15, scope: !42) +!58 = !DILocation(line: 7, column: 5, scope: !42) +!59 = distinct !DISubprogram(name: "$fundef_51", linkageName: "$fundef_51", scope: !2, file: !2, line: 4, type: !4, scopeLine: 4, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!60 = !DILocation(line: 4, column: 5, scope: !59) +!61 = distinct !DISubprogram(name: "$fundef_48", linkageName: "$fundef_48", scope: !62, file: !62, line: 104, type: !4, scopeLine: 104, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!62 = !DIFile(filename: "ListUtils.scillib", directory: "../src/stdlib") +!63 = !DILocalVariable(name: "h", scope: !61, file: !62, line: 103, type: !64) +!64 = !DIBasicType(name: "ByStr20", size: 20) +!65 = !DILocation(line: 103, column: 39, scope: !61) +!66 = !DILocalVariable(name: "$retval_49", scope: !61, file: !62, line: 104, type: !28) +!67 = !DILocation(line: 104, column: 5, scope: !61) +!68 = distinct !DISubprogram(name: "$fundef_46", linkageName: "$fundef_46", scope: !62, file: !62, line: 103, type: !4, scopeLine: 103, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!69 = !DILocalVariable(name: "z", scope: !68, file: !62, line: 103, type: !28) +!70 = !DILocation(line: 103, column: 19, scope: !68) +!71 = !DILocation(line: 104, column: 5, scope: !68) +!72 = distinct !DISubprogram(name: "$fundef_44", linkageName: "$fundef_44", scope: !62, file: !62, line: 101, type: !4, scopeLine: 101, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!73 = !DILocation(line: 101, column: 16, scope: !72) +!74 = !DILocation(line: 101, column: 15, scope: !72) +!75 = !DILocalVariable(name: "one", scope: !72, file: !62, line: 102, type: !28) +!76 = !DILocation(line: 102, column: 7, scope: !72) +!77 = !DILocation(line: 102, column: 13, scope: !72) +!78 = !DILocation(line: 103, column: 34, scope: !72) +!79 = !DILocalVariable(name: "init", scope: !72, file: !62, line: 105, type: !28) +!80 = !DILocation(line: 105, column: 7, scope: !72) +!81 = !DILocation(line: 105, column: 14, scope: !72) +!82 = !DILocation(line: 106, column: 3, scope: !72) +!83 = distinct !DISubprogram(name: "$fundef_42", linkageName: "$fundef_42", scope: !62, file: !62, line: 104, type: !4, scopeLine: 104, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!84 = !DILocalVariable(name: "h", scope: !83, file: !62, line: 103, type: !85) +!85 = !DIBasicType(name: "String", size: 16) +!86 = !DILocation(line: 103, column: 39, scope: !83) +!87 = !DILocalVariable(name: "$retval_43", scope: !83, file: !62, line: 104, type: !28) +!88 = !DILocation(line: 104, column: 5, scope: !83) +!89 = distinct !DISubprogram(name: "$fundef_40", linkageName: "$fundef_40", scope: !62, file: !62, line: 103, type: !4, scopeLine: 103, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!90 = !DILocalVariable(name: "z", scope: !89, file: !62, line: 103, type: !28) +!91 = !DILocation(line: 103, column: 19, scope: !89) +!92 = !DILocation(line: 104, column: 5, scope: !89) +!93 = distinct !DISubprogram(name: "$fundef_38", linkageName: "$fundef_38", scope: !62, file: !62, line: 101, type: !4, scopeLine: 101, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!94 = !DILocation(line: 101, column: 16, scope: !93) +!95 = !DILocation(line: 101, column: 15, scope: !93) +!96 = !DILocalVariable(name: "one", scope: !93, file: !62, line: 102, type: !28) +!97 = !DILocation(line: 102, column: 7, scope: !93) +!98 = !DILocation(line: 102, column: 13, scope: !93) +!99 = !DILocation(line: 103, column: 34, scope: !93) +!100 = !DILocalVariable(name: "init", scope: !93, file: !62, line: 105, type: !28) +!101 = !DILocation(line: 105, column: 7, scope: !93) +!102 = !DILocation(line: 105, column: 14, scope: !93) +!103 = !DILocation(line: 106, column: 3, scope: !93) +!104 = distinct !DISubprogram(name: "$fundef_36", linkageName: "$fundef_36", scope: !105, file: !105, line: 1, type: !4, scopeLine: 1, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!105 = !DIFile(filename: "Prelude", directory: ".") +!106 = !DILocalVariable(name: "l", scope: !104, file: !105, line: 1, type: !24) +!107 = !DILocation(line: 1, column: 22, scope: !104) +!108 = !DILocalVariable(name: "$retval_37", scope: !104, file: !105, line: 1, type: !28) +!109 = !DILocation(line: 1, column: 37, scope: !104) +!110 = !DILocalVariable(name: "res", scope: !111, file: !105, line: 1, type: !28) +!111 = distinct !DILexicalBlock(scope: !112, file: !105, line: 1, column: 52) +!112 = distinct !DILexicalBlock(scope: !104, file: !105, line: 1, column: 37) +!113 = !DILocation(line: 1, column: 68, scope: !111) +!114 = !DILocation(line: 1, column: 74, scope: !111) +!115 = !DILocalVariable(name: "$f_7", scope: !111, file: !105, line: 1, type: !28) +!116 = !DILocation(line: 1, column: 83, scope: !111) +!117 = !DILocalVariable(name: "$g_9", scope: !111, file: !105, line: 1, type: !28) +!118 = !DILocation(line: 1, column: 100, scope: !119) +!119 = distinct !DILexicalBlock(scope: !112, file: !105, line: 1, column: 93) +!120 = distinct !DISubprogram(name: "$fundef_34", linkageName: "$fundef_34", scope: !105, file: !105, line: 1, type: !4, scopeLine: 1, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!121 = !DILocalVariable(name: "z", scope: !120, file: !105, line: 1, type: !28) +!122 = !DILocation(line: 1, column: 6, scope: !120) +!123 = !DILocation(line: 1, column: 37, scope: !120) +!124 = distinct !DISubprogram(name: "$fundef_32", linkageName: "$fundef_32", scope: !105, file: !105, line: 1, type: !4, scopeLine: 1, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!125 = !DILocation(line: 1, column: 17, scope: !124) +!126 = distinct !DISubprogram(name: "$fundef_30", linkageName: "$fundef_30", scope: !105, file: !105, line: 1, type: !4, scopeLine: 1, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!127 = !DILocation(line: 1, column: 17, scope: !126) +!128 = distinct !DISubprogram(name: "$fundef_28", linkageName: "$fundef_28", scope: !105, file: !105, line: 1, type: !4, scopeLine: 1, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!129 = !DILocation(line: 1, column: 17, scope: !128) +!130 = distinct !DISubprogram(name: "$fundef_26", linkageName: "$fundef_26", scope: !105, file: !105, line: 1, type: !4, scopeLine: 1, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!131 = !DILocalVariable(name: "l", scope: !130, file: !105, line: 1, type: !44) +!132 = !DILocation(line: 1, column: 22, scope: !130) +!133 = !DILocalVariable(name: "$retval_27", scope: !130, file: !105, line: 1, type: !28) +!134 = !DILocation(line: 1, column: 37, scope: !130) +!135 = !DILocalVariable(name: "res", scope: !136, file: !105, line: 1, type: !28) +!136 = distinct !DILexicalBlock(scope: !137, file: !105, line: 1, column: 52) +!137 = distinct !DILexicalBlock(scope: !130, file: !105, line: 1, column: 37) +!138 = !DILocation(line: 1, column: 68, scope: !136) +!139 = !DILocation(line: 1, column: 74, scope: !136) +!140 = !DILocalVariable(name: "$f_7", scope: !136, file: !105, line: 1, type: !28) +!141 = !DILocation(line: 1, column: 83, scope: !136) +!142 = !DILocalVariable(name: "$g_9", scope: !136, file: !105, line: 1, type: !28) +!143 = !DILocation(line: 1, column: 100, scope: !144) +!144 = distinct !DILexicalBlock(scope: !137, file: !105, line: 1, column: 93) +!145 = distinct !DISubprogram(name: "$fundef_24", linkageName: "$fundef_24", scope: !105, file: !105, line: 1, type: !4, scopeLine: 1, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!146 = !DILocalVariable(name: "z", scope: !145, file: !105, line: 1, type: !28) +!147 = !DILocation(line: 1, column: 6, scope: !145) +!148 = !DILocation(line: 1, column: 37, scope: !145) +!149 = distinct !DISubprogram(name: "$fundef_22", linkageName: "$fundef_22", scope: !105, file: !105, line: 1, type: !4, scopeLine: 1, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!150 = !DILocation(line: 1, column: 17, scope: !149) +!151 = distinct !DISubprogram(name: "$fundef_20", linkageName: "$fundef_20", scope: !105, file: !105, line: 1, type: !4, scopeLine: 1, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!152 = !DILocation(line: 1, column: 17, scope: !151) +!153 = distinct !DISubprogram(name: "$fundef_18", linkageName: "$fundef_18", scope: !105, file: !105, line: 1, type: !4, scopeLine: 1, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!154 = !DILocation(line: 1, column: 17, scope: !153) +!155 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !156, file: !156, type: !4, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!156 = !DIFile(filename: ".", directory: ".") +!157 = !DILocation(line: 0, scope: !155) +!158 = !DILocation(line: 1, column: 17, scope: !155) +!159 = !DILocation(line: 100, column: 3, scope: !155) +!160 = distinct !DISubprogram(name: "_scilla_expr_fun", linkageName: "_scilla_expr_fun", scope: !2, file: !2, line: 2, type: !4, scopeLine: 2, spFlags: DISPFlagDefinition, unit: !1, retainedNodes: !7) +!161 = !DILocalVariable(name: "$expr_50", scope: !160, file: !2, line: 2, type: !28) +!162 = !DILocation(line: 2, column: 3, scope: !160) +!163 = !DILocation(line: 12, column: 3, scope: !160) +!164 = !DILocalVariable(name: "true", scope: !160, file: !2, line: 20, type: !18) +!165 = !DILocation(line: 20, column: 5, scope: !160) +!166 = !DILocation(line: 20, column: 12, scope: !160) +!167 = !DILocation(line: 22, column: 9, scope: !160) +!168 = !DILocation(line: 24, column: 17, scope: !160) +!169 = !DILocation(line: 24, column: 16, scope: !160) +!170 = !DILocation(line: 25, column: 18, scope: !160) +!171 = !DILocation(line: 25, column: 17, scope: !160) +!172 = !DILocalVariable(name: "nil_string", scope: !160, file: !2, line: 26, type: !44) +!173 = !DILocation(line: 26, column: 5, scope: !160) +!174 = !DILocation(line: 26, column: 18, scope: !160) +!175 = !DILocalVariable(name: "nil_bystr20", scope: !160, file: !2, line: 27, type: !24) +!176 = !DILocation(line: 27, column: 5, scope: !160) +!177 = !DILocation(line: 27, column: 19, scope: !160) +!178 = !DILocalVariable(name: "a", scope: !160, file: !2, line: 29, type: !28) +!179 = !DILocation(line: 29, column: 5, scope: !160) +!180 = !DILocalVariable(name: "$f_string_16", scope: !160, file: !2, line: 29, type: !28) +!181 = !DILocation(line: 29, column: 9, scope: !160) +!182 = !DILocalVariable(name: "b", scope: !160, file: !2, line: 30, type: !28) +!183 = !DILocation(line: 30, column: 5, scope: !160) +!184 = !DILocalVariable(name: "$f_bystr20_17", scope: !160, file: !2, line: 30, type: !28) +!185 = !DILocation(line: 30, column: 9, scope: !160) +!186 = !DILocation(line: 31, column: 1, scope: !160) diff --git a/testsuite/expr/nonprenex.ll b/testsuite/expr/nonprenex.ll index 7b9bd745..692772e8 100644 --- a/testsuite/expr/nonprenex.ll +++ b/testsuite/expr/nonprenex.ll @@ -33,7 +33,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-pc-linux-gnu" +target triple = "x86_64-unknown-linux-gnu" %"$TyDescrTy_PrimTyp_65" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/testsuite/expr/pm1.dbg.ll b/testsuite/expr/pm1.dbg.ll index f7c99071..0d8d3200 100644 --- a/testsuite/expr/pm1.dbg.ll +++ b/testsuite/expr/pm1.dbg.ll @@ -11,7 +11,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-pc-linux-gnu" +target triple = "x86_64-unknown-linux-gnu" %"$TyDescrTy_PrimTyp_11" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } @@ -20,9 +20,9 @@ target triple = "x86_64-pc-linux-gnu" %"$TyDescrTy_ADTTyp_Specl_42" = type { %_TyDescrTy_Typ**, %"$TyDescrTy_ADTTyp_Constr_44"**, %"$TyDescrTy_ADTTyp_43"* } %"$TyDescrTy_ADTTyp_Constr_44" = type { %TyDescrString, i32, %_TyDescrTy_Typ** } %Int32 = type { i32 } -%"$ParamDescr_187" = type { %ParamDescrString, %_TyDescrTy_Typ* } +%"$ParamDescr_188" = type { %ParamDescrString, %_TyDescrTy_Typ* } %ParamDescrString = type { i8*, i32 } -%"$TransDescr_188" = type { %ParamDescrString, i32, %"$ParamDescr_187"* } +%"$TransDescr_189" = type { %ParamDescrString, i32, %"$ParamDescr_188"* } %"$$fundef_9_env_61" = type { %Int32, %Int32 } %TName_Bool = type { i8, %CName_True*, %CName_False* } %CName_True = type <{ i8 }> @@ -81,13 +81,16 @@ target triple = "x86_64-pc-linux-gnu" @"$_gas_charge_accPairUtils_4" = global %Int32 zeroinitializer @_tydescr_table = constant [16 x %_TyDescrTy_Typ*] [%_TyDescrTy_Typ* @"$TyDescr_Event_35", %_TyDescrTy_Typ* @"$TyDescr_Int64_17", %_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_45", %_TyDescrTy_Typ* @"$TyDescr_Uint256_27", %_TyDescrTy_Typ* @"$TyDescr_Uint32_15", %_TyDescrTy_Typ* @"$TyDescr_Uint64_19", %_TyDescrTy_Typ* @"$TyDescr_Bnum_31", %_TyDescrTy_Typ* @"$TyDescr_Uint128_23", %_TyDescrTy_Typ* @"$TyDescr_Exception_37", %_TyDescrTy_Typ* @"$TyDescr_String_29", %_TyDescrTy_Typ* @"$TyDescr_Int256_25", %_TyDescrTy_Typ* @"$TyDescr_Int128_21", %_TyDescrTy_Typ* @"$TyDescr_Bystr_41", %_TyDescrTy_Typ* @"$TyDescr_ReplicateContr_39", %_TyDescrTy_Typ* @"$TyDescr_Message_33", %_TyDescrTy_Typ* @"$TyDescr_Int32_13"] @_tydescr_table_length = constant i32 16 -@_contract_parameters = constant [0 x %"$ParamDescr_187"] zeroinitializer +@_contract_parameters = constant [0 x %"$ParamDescr_188"] zeroinitializer @_contract_parameters_length = constant i32 0 -@_transition_parameters = constant [0 x %"$TransDescr_188"] zeroinitializer +@_transition_parameters = constant [0 x %"$TransDescr_189"] zeroinitializer @_transition_parameters_length = constant i32 0 -define internal %Int32 @"$fundef_9"(%"$$fundef_9_env_61"* %0, %TName_Bool* %1) !dbg !4 { +define internal %Int32 @"$fundef_9"(%"$$fundef_9_env_61"* %0, %TName_Bool* %1) !dbg !3 { entry: + %"$c_90" = alloca %TName_Bool*, align 8 + store %TName_Bool* %1, %TName_Bool** %"$c_90", align 8 + call void @llvm.dbg.declare(metadata %TName_Bool** %"$c_90", metadata !8, metadata !DIExpression()), !dbg !11 %"$$fundef_9_env_x_62" = getelementptr inbounds %"$$fundef_9_env_61", %"$$fundef_9_env_61"* %0, i32 0, i32 0 %"$x_envload_63" = load %Int32, %Int32* %"$$fundef_9_env_x_62", align 4 %x = alloca %Int32, align 8 @@ -97,6 +100,7 @@ entry: %y = alloca %Int32, align 8 store %Int32 %"$y_envload_65", %Int32* %y, align 4 %"$retval_10" = alloca %Int32, align 8 + call void @llvm.dbg.declare(metadata %Int32* %"$retval_10", metadata !12, metadata !DIExpression()), !dbg !14 %"$gasrem_66" = load i64, i64* @_gasrem, align 8 %"$gascmp_67" = icmp ugt i64 2, %"$gasrem_66" br i1 %"$gascmp_67", label %"$out_of_gas_68", label %"$have_gas_69" @@ -112,7 +116,7 @@ entry: %"$c_tag_79" = load i8, i8* %"$c_tag_78", align 1 switch i8 %"$c_tag_79", label %"$default_80" [ i8 0, label %"$True_81" - ], !dbg !8 + ], !dbg !14 "$True_81": ; preds = %"$have_gas_69" %"$c_82" = bitcast %TName_Bool* %1 to %CName_True* @@ -128,7 +132,7 @@ entry: %"$consume_87" = sub i64 %"$gasrem_83", 1 store i64 %"$consume_87", i64* @_gasrem, align 8 %"$x_88" = load %Int32, %Int32* %x, align 4 - store %Int32 %"$x_88", %Int32* %"$retval_10", align 4, !dbg !9 + store %Int32 %"$x_88", %Int32* %"$retval_10", align 4, !dbg !15 br label %"$matchsucc_71" "$default_80": ; preds = %"$have_gas_69" @@ -147,7 +151,7 @@ entry: %"$consume_76" = sub i64 %"$gasrem_72", 1 store i64 %"$consume_76", i64* @_gasrem, align 8 %"$y_77" = load %Int32, %Int32* %y, align 4 - store %Int32 %"$y_77", %Int32* %"$retval_10", align 4, !dbg !12 + store %Int32 %"$y_77", %Int32* %"$retval_10", align 4, !dbg !18 br label %"$matchsucc_71" "$matchsucc_71": ; preds = %"$have_gas_86", %"$have_gas_75" @@ -155,223 +159,231 @@ entry: ret %Int32 %"$$retval_10_89" } +; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn +declare void @llvm.dbg.declare(metadata, metadata, metadata) #0 + declare void @_out_of_gas() -define void @_init_libs() !dbg !14 { +define void @_init_libs() !dbg !20 { entry: - %"$gasrem_90" = load i64, i64* @_gasrem, align 8 - %"$gascmp_91" = icmp ugt i64 5, %"$gasrem_90" - br i1 %"$gascmp_91", label %"$out_of_gas_92", label %"$have_gas_93" + %"$gasrem_91" = load i64, i64* @_gasrem, align 8 + %"$gascmp_92" = icmp ugt i64 5, %"$gasrem_91" + br i1 %"$gascmp_92", label %"$out_of_gas_93", label %"$have_gas_94" -"$out_of_gas_92": ; preds = %entry +"$out_of_gas_93": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_93" + br label %"$have_gas_94" -"$have_gas_93": ; preds = %"$out_of_gas_92", %entry - %"$consume_94" = sub i64 %"$gasrem_90", 5 - store i64 %"$consume_94", i64* @_gasrem, align 8 - store %Int32 { i32 5 }, %Int32* @"$_gas_charge_accrec_lib_5", align 4, !dbg !16 - %"$gasrem_95" = load i64, i64* @_gasrem, align 8 - %"$gascmp_96" = icmp ugt i64 8, %"$gasrem_95" - br i1 %"$gascmp_96", label %"$out_of_gas_97", label %"$have_gas_98" +"$have_gas_94": ; preds = %"$out_of_gas_93", %entry + %"$consume_95" = sub i64 %"$gasrem_91", 5 + store i64 %"$consume_95", i64* @_gasrem, align 8 + store %Int32 { i32 5 }, %Int32* @"$_gas_charge_accrec_lib_5", align 4, !dbg !22 + %"$gasrem_96" = load i64, i64* @_gasrem, align 8 + %"$gascmp_97" = icmp ugt i64 8, %"$gasrem_96" + br i1 %"$gascmp_97", label %"$out_of_gas_98", label %"$have_gas_99" -"$out_of_gas_97": ; preds = %"$have_gas_93" +"$out_of_gas_98": ; preds = %"$have_gas_94" call void @_out_of_gas() - br label %"$have_gas_98" + br label %"$have_gas_99" -"$have_gas_98": ; preds = %"$out_of_gas_97", %"$have_gas_93" - %"$consume_99" = sub i64 %"$gasrem_95", 8 - store i64 %"$consume_99", i64* @_gasrem, align 8 - store %Int32 { i32 8 }, %Int32* @"$_gas_charge_accBoolUtils_0", align 4, !dbg !16 - %"$gasrem_100" = load i64, i64* @_gasrem, align 8 - %"$gascmp_101" = icmp ugt i64 196, %"$gasrem_100" - br i1 %"$gascmp_101", label %"$out_of_gas_102", label %"$have_gas_103" +"$have_gas_99": ; preds = %"$out_of_gas_98", %"$have_gas_94" + %"$consume_100" = sub i64 %"$gasrem_96", 8 + store i64 %"$consume_100", i64* @_gasrem, align 8 + store %Int32 { i32 8 }, %Int32* @"$_gas_charge_accBoolUtils_0", align 4, !dbg !22 + %"$gasrem_101" = load i64, i64* @_gasrem, align 8 + %"$gascmp_102" = icmp ugt i64 196, %"$gasrem_101" + br i1 %"$gascmp_102", label %"$out_of_gas_103", label %"$have_gas_104" -"$out_of_gas_102": ; preds = %"$have_gas_98" +"$out_of_gas_103": ; preds = %"$have_gas_99" call void @_out_of_gas() - br label %"$have_gas_103" + br label %"$have_gas_104" -"$have_gas_103": ; preds = %"$out_of_gas_102", %"$have_gas_98" - %"$consume_104" = sub i64 %"$gasrem_100", 196 - store i64 %"$consume_104", i64* @_gasrem, align 8 - store %Int32 { i32 196 }, %Int32* @"$_gas_charge_accIntUtils_1", align 4, !dbg !16 - %"$gasrem_105" = load i64, i64* @_gasrem, align 8 - %"$gascmp_106" = icmp ugt i64 20, %"$gasrem_105" - br i1 %"$gascmp_106", label %"$out_of_gas_107", label %"$have_gas_108" +"$have_gas_104": ; preds = %"$out_of_gas_103", %"$have_gas_99" + %"$consume_105" = sub i64 %"$gasrem_101", 196 + store i64 %"$consume_105", i64* @_gasrem, align 8 + store %Int32 { i32 196 }, %Int32* @"$_gas_charge_accIntUtils_1", align 4, !dbg !22 + %"$gasrem_106" = load i64, i64* @_gasrem, align 8 + %"$gascmp_107" = icmp ugt i64 20, %"$gasrem_106" + br i1 %"$gascmp_107", label %"$out_of_gas_108", label %"$have_gas_109" -"$out_of_gas_107": ; preds = %"$have_gas_103" +"$out_of_gas_108": ; preds = %"$have_gas_104" call void @_out_of_gas() - br label %"$have_gas_108" + br label %"$have_gas_109" -"$have_gas_108": ; preds = %"$out_of_gas_107", %"$have_gas_103" - %"$consume_109" = sub i64 %"$gasrem_105", 20 - store i64 %"$consume_109", i64* @_gasrem, align 8 - store %Int32 { i32 20 }, %Int32* @"$_gas_charge_accListUtils_2", align 4, !dbg !16 - %"$gasrem_110" = load i64, i64* @_gasrem, align 8 - %"$gascmp_111" = icmp ugt i64 12, %"$gasrem_110" - br i1 %"$gascmp_111", label %"$out_of_gas_112", label %"$have_gas_113" +"$have_gas_109": ; preds = %"$out_of_gas_108", %"$have_gas_104" + %"$consume_110" = sub i64 %"$gasrem_106", 20 + store i64 %"$consume_110", i64* @_gasrem, align 8 + store %Int32 { i32 20 }, %Int32* @"$_gas_charge_accListUtils_2", align 4, !dbg !22 + %"$gasrem_111" = load i64, i64* @_gasrem, align 8 + %"$gascmp_112" = icmp ugt i64 12, %"$gasrem_111" + br i1 %"$gascmp_112", label %"$out_of_gas_113", label %"$have_gas_114" -"$out_of_gas_112": ; preds = %"$have_gas_108" +"$out_of_gas_113": ; preds = %"$have_gas_109" call void @_out_of_gas() - br label %"$have_gas_113" + br label %"$have_gas_114" -"$have_gas_113": ; preds = %"$out_of_gas_112", %"$have_gas_108" - %"$consume_114" = sub i64 %"$gasrem_110", 12 - store i64 %"$consume_114", i64* @_gasrem, align 8 - store %Int32 { i32 12 }, %Int32* @"$_gas_charge_accNatUtils_3", align 4, !dbg !16 - %"$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" +"$have_gas_114": ; preds = %"$out_of_gas_113", %"$have_gas_109" + %"$consume_115" = sub i64 %"$gasrem_111", 12 + store i64 %"$consume_115", i64* @_gasrem, align 8 + store %Int32 { i32 12 }, %Int32* @"$_gas_charge_accNatUtils_3", align 4, !dbg !22 + %"$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_117": ; preds = %"$have_gas_113" +"$out_of_gas_118": ; preds = %"$have_gas_114" call void @_out_of_gas() - br label %"$have_gas_118" + br label %"$have_gas_119" -"$have_gas_118": ; preds = %"$out_of_gas_117", %"$have_gas_113" - %"$consume_119" = sub i64 %"$gasrem_115", 2 - store i64 %"$consume_119", i64* @_gasrem, align 8 - store %Int32 { i32 2 }, %Int32* @"$_gas_charge_accPairUtils_4", align 4, !dbg !16 +"$have_gas_119": ; preds = %"$out_of_gas_118", %"$have_gas_114" + %"$consume_120" = sub i64 %"$gasrem_116", 2 + store i64 %"$consume_120", i64* @_gasrem, align 8 + store %Int32 { i32 2 }, %Int32* @"$_gas_charge_accPairUtils_4", align 4, !dbg !22 ret void } -define internal %Int32 @_scilla_expr_fun(i8* %0) !dbg !17 { +define internal %Int32 @_scilla_expr_fun(i8* %0) !dbg !23 { entry: %"$expr_8" = 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" + call void @llvm.dbg.declare(metadata %Int32* %"$expr_8", metadata !24, metadata !DIExpression()), !dbg !25 + %"$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_122": ; preds = %entry +"$out_of_gas_123": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_123" + br label %"$have_gas_124" -"$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_124": ; preds = %"$out_of_gas_123", %entry + %"$consume_125" = sub i64 %"$gasrem_121", 1 + store i64 %"$consume_125", i64* @_gasrem, align 8 %x = alloca %Int32, 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" + call void @llvm.dbg.declare(metadata %Int32* %x, metadata !26, metadata !DIExpression()), !dbg !27 + %"$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_127": ; preds = %"$have_gas_123" +"$out_of_gas_128": ; preds = %"$have_gas_124" call void @_out_of_gas() - br label %"$have_gas_128" + br label %"$have_gas_129" -"$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 - store %Int32 { i32 42 }, %Int32* %x, align 4, !dbg !18 - %"$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" +"$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 + store %Int32 { i32 42 }, %Int32* %x, align 4, !dbg !25 + %"$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_132": ; preds = %"$have_gas_128" +"$out_of_gas_133": ; preds = %"$have_gas_129" call void @_out_of_gas() - br label %"$have_gas_133" + br label %"$have_gas_134" -"$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 +"$have_gas_134": ; preds = %"$out_of_gas_133", %"$have_gas_129" + %"$consume_135" = sub i64 %"$gasrem_131", 1 + store i64 %"$consume_135", i64* @_gasrem, align 8 %y = alloca %Int32, 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" + call void @llvm.dbg.declare(metadata %Int32* %y, metadata !28, metadata !DIExpression()), !dbg !29 + %"$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_137": ; preds = %"$have_gas_133" +"$out_of_gas_138": ; preds = %"$have_gas_134" call void @_out_of_gas() - br label %"$have_gas_138" + br label %"$have_gas_139" -"$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 { i32 41 }, %Int32* %y, align 4, !dbg !19 - %"$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" +"$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 + store %Int32 { i32 41 }, %Int32* %y, align 4, !dbg !30 + %"$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_142": ; preds = %"$have_gas_138" +"$out_of_gas_143": ; preds = %"$have_gas_139" call void @_out_of_gas() - br label %"$have_gas_143" + br label %"$have_gas_144" -"$have_gas_143": ; preds = %"$out_of_gas_142", %"$have_gas_138" - %"$consume_144" = sub i64 %"$gasrem_140", 1 - store i64 %"$consume_144", i64* @_gasrem, align 8 +"$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 %f = alloca { %Int32 (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" + %"$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_147": ; preds = %"$have_gas_143" +"$out_of_gas_148": ; preds = %"$have_gas_144" call void @_out_of_gas() - br label %"$have_gas_148" - -"$have_gas_148": ; preds = %"$out_of_gas_147", %"$have_gas_143" - %"$consume_149" = sub i64 %"$gasrem_145", 1 - store i64 %"$consume_149", i64* @_gasrem, align 8 - %"$$fundef_9_envp_150_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_9_envp_150_salloc" = call i8* @_salloc(i8* %"$$fundef_9_envp_150_load", i64 8) - %"$$fundef_9_envp_150" = bitcast i8* %"$$fundef_9_envp_150_salloc" to %"$$fundef_9_env_61"* - %"$$fundef_9_env_voidp_152" = bitcast %"$$fundef_9_env_61"* %"$$fundef_9_envp_150" to i8* - %"$$fundef_9_cloval_153" = insertvalue { %Int32 (i8*, %TName_Bool*)*, i8* } { %Int32 (i8*, %TName_Bool*)* bitcast (%Int32 (%"$$fundef_9_env_61"*, %TName_Bool*)* @"$fundef_9" to %Int32 (i8*, %TName_Bool*)*), i8* undef }, i8* %"$$fundef_9_env_voidp_152", 1 - %"$$fundef_9_env_x_154" = getelementptr inbounds %"$$fundef_9_env_61", %"$$fundef_9_env_61"* %"$$fundef_9_envp_150", i32 0, i32 0 - %"$x_155" = load %Int32, %Int32* %x, align 4 - store %Int32 %"$x_155", %Int32* %"$$fundef_9_env_x_154", align 4 - %"$$fundef_9_env_y_156" = getelementptr inbounds %"$$fundef_9_env_61", %"$$fundef_9_env_61"* %"$$fundef_9_envp_150", i32 0, i32 1 - %"$y_157" = load %Int32, %Int32* %y, align 4 - store %Int32 %"$y_157", %Int32* %"$$fundef_9_env_y_156", align 4 - store { %Int32 (i8*, %TName_Bool*)*, i8* } %"$$fundef_9_cloval_153", { %Int32 (i8*, %TName_Bool*)*, i8* }* %f, align 8, !dbg !20 - %"$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 = %"$have_gas_148" + br label %"$have_gas_149" + +"$have_gas_149": ; preds = %"$out_of_gas_148", %"$have_gas_144" + %"$consume_150" = sub i64 %"$gasrem_146", 1 + store i64 %"$consume_150", i64* @_gasrem, align 8 + %"$$fundef_9_envp_151_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_9_envp_151_salloc" = call i8* @_salloc(i8* %"$$fundef_9_envp_151_load", i64 8) + %"$$fundef_9_envp_151" = bitcast i8* %"$$fundef_9_envp_151_salloc" to %"$$fundef_9_env_61"* + %"$$fundef_9_env_voidp_153" = bitcast %"$$fundef_9_env_61"* %"$$fundef_9_envp_151" to i8* + %"$$fundef_9_cloval_154" = insertvalue { %Int32 (i8*, %TName_Bool*)*, i8* } { %Int32 (i8*, %TName_Bool*)* bitcast (%Int32 (%"$$fundef_9_env_61"*, %TName_Bool*)* @"$fundef_9" to %Int32 (i8*, %TName_Bool*)*), i8* undef }, i8* %"$$fundef_9_env_voidp_153", 1 + %"$$fundef_9_env_x_155" = getelementptr inbounds %"$$fundef_9_env_61", %"$$fundef_9_env_61"* %"$$fundef_9_envp_151", i32 0, i32 0 + %"$x_156" = load %Int32, %Int32* %x, align 4 + store %Int32 %"$x_156", %Int32* %"$$fundef_9_env_x_155", align 4 + %"$$fundef_9_env_y_157" = getelementptr inbounds %"$$fundef_9_env_61", %"$$fundef_9_env_61"* %"$$fundef_9_envp_151", i32 0, i32 1 + %"$y_158" = load %Int32, %Int32* %y, align 4 + store %Int32 %"$y_158", %Int32* %"$$fundef_9_env_y_157", align 4 + store { %Int32 (i8*, %TName_Bool*)*, i8* } %"$$fundef_9_cloval_154", { %Int32 (i8*, %TName_Bool*)*, i8* }* %f, align 8, !dbg !31 + %"$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_149" call void @_out_of_gas() - br label %"$have_gas_161" + br label %"$have_gas_162" -"$have_gas_161": ; preds = %"$out_of_gas_160", %"$have_gas_148" - %"$consume_162" = sub i64 %"$gasrem_158", 1 - store i64 %"$consume_162", i64* @_gasrem, align 8 +"$have_gas_162": ; preds = %"$out_of_gas_161", %"$have_gas_149" + %"$consume_163" = sub i64 %"$gasrem_159", 1 + store i64 %"$consume_163", i64* @_gasrem, align 8 %t = alloca %TName_Bool*, 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" + call void @llvm.dbg.declare(metadata %TName_Bool** %t, metadata !32, metadata !DIExpression()), !dbg !33 + %"$gasrem_164" = load i64, i64* @_gasrem, align 8 + %"$gascmp_165" = icmp ugt i64 1, %"$gasrem_164" + br i1 %"$gascmp_165", label %"$out_of_gas_166", label %"$have_gas_167" -"$out_of_gas_165": ; preds = %"$have_gas_161" +"$out_of_gas_166": ; preds = %"$have_gas_162" call void @_out_of_gas() - br label %"$have_gas_166" - -"$have_gas_166": ; preds = %"$out_of_gas_165", %"$have_gas_161" - %"$consume_167" = sub i64 %"$gasrem_163", 1 - store i64 %"$consume_167", i64* @_gasrem, align 8 - %"$adtval_168_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_168_salloc" = call i8* @_salloc(i8* %"$adtval_168_load", i64 1) - %"$adtval_168" = bitcast i8* %"$adtval_168_salloc" to %CName_True* - %"$adtgep_169" = getelementptr inbounds %CName_True, %CName_True* %"$adtval_168", i32 0, i32 0 - store i8 0, i8* %"$adtgep_169", align 1 - %"$adtptr_170" = bitcast %CName_True* %"$adtval_168" to %TName_Bool* - store %TName_Bool* %"$adtptr_170", %TName_Bool** %t, align 8, !dbg !21 - %"$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_166" + br label %"$have_gas_167" + +"$have_gas_167": ; preds = %"$out_of_gas_166", %"$have_gas_162" + %"$consume_168" = sub i64 %"$gasrem_164", 1 + store i64 %"$consume_168", i64* @_gasrem, align 8 + %"$adtval_169_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_169_salloc" = call i8* @_salloc(i8* %"$adtval_169_load", i64 1) + %"$adtval_169" = bitcast i8* %"$adtval_169_salloc" to %CName_True* + %"$adtgep_170" = getelementptr inbounds %CName_True, %CName_True* %"$adtval_169", i32 0, i32 0 + store i8 0, i8* %"$adtgep_170", align 1 + %"$adtptr_171" = bitcast %CName_True* %"$adtval_169" to %TName_Bool* + store %TName_Bool* %"$adtptr_171", %TName_Bool** %t, align 8, !dbg !34 + %"$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_174" + br label %"$have_gas_175" -"$have_gas_174": ; preds = %"$out_of_gas_173", %"$have_gas_166" - %"$consume_175" = sub i64 %"$gasrem_171", 1 - store i64 %"$consume_175", i64* @_gasrem, align 8 +"$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 %"$f_7" = alloca %Int32, align 8 - %"$f_176" = load { %Int32 (i8*, %TName_Bool*)*, i8* }, { %Int32 (i8*, %TName_Bool*)*, i8* }* %f, align 8 - %"$f_fptr_177" = extractvalue { %Int32 (i8*, %TName_Bool*)*, i8* } %"$f_176", 0 - %"$f_envptr_178" = extractvalue { %Int32 (i8*, %TName_Bool*)*, i8* } %"$f_176", 1 - %"$t_179" = load %TName_Bool*, %TName_Bool** %t, align 8 - %"$f_call_180" = call %Int32 %"$f_fptr_177"(i8* %"$f_envptr_178", %TName_Bool* %"$t_179"), !dbg !22 - store %Int32 %"$f_call_180", %Int32* %"$f_7", align 4, !dbg !22 - %"$$f_7_181" = load %Int32, %Int32* %"$f_7", align 4 - store %Int32 %"$$f_7_181", %Int32* %"$expr_8", align 4, !dbg !22 - %"$$expr_8_182" = load %Int32, %Int32* %"$expr_8", align 4 - ret %Int32 %"$$expr_8_182" + call void @llvm.dbg.declare(metadata %Int32* %"$f_7", metadata !35, metadata !DIExpression()), !dbg !36 + %"$f_177" = load { %Int32 (i8*, %TName_Bool*)*, i8* }, { %Int32 (i8*, %TName_Bool*)*, i8* }* %f, align 8 + %"$f_fptr_178" = extractvalue { %Int32 (i8*, %TName_Bool*)*, i8* } %"$f_177", 0 + %"$f_envptr_179" = extractvalue { %Int32 (i8*, %TName_Bool*)*, i8* } %"$f_177", 1 + %"$t_180" = load %TName_Bool*, %TName_Bool** %t, align 8 + %"$f_call_181" = call %Int32 %"$f_fptr_178"(i8* %"$f_envptr_179", %TName_Bool* %"$t_180"), !dbg !36 + store %Int32 %"$f_call_181", %Int32* %"$f_7", align 4, !dbg !36 + %"$$f_7_182" = load %Int32, %Int32* %"$f_7", align 4 + store %Int32 %"$$f_7_182", %Int32* %"$expr_8", align 4, !dbg !36 + %"$$expr_8_183" = load %Int32, %Int32* %"$expr_8", align 4 + ret %Int32 %"$$expr_8_183" } declare i8* @_salloc(i8*, i64) @@ -380,38 +392,54 @@ declare void @_print_scilla_val(i8*, %_TyDescrTy_Typ*, i8*) define void @scilla_main() { entry: - %"$exprval_183" = call %Int32 @_scilla_expr_fun(i8* null) - %"$pval_184" = alloca %Int32, align 8 - %"$memvoidcast_185" = bitcast %Int32* %"$pval_184" to i8* - store %Int32 %"$exprval_183", %Int32* %"$pval_184", align 4 - %"$execptr_load_186" = load i8*, i8** @_execptr, align 8 - call void @_print_scilla_val(i8* %"$execptr_load_186", %_TyDescrTy_Typ* @"$TyDescr_Int32_13", i8* %"$memvoidcast_185") + %"$exprval_184" = call %Int32 @_scilla_expr_fun(i8* null) + %"$pval_185" = alloca %Int32, align 8 + %"$memvoidcast_186" = bitcast %Int32* %"$pval_185" to i8* + store %Int32 %"$exprval_184", %Int32* %"$pval_185", align 4 + %"$execptr_load_187" = load i8*, i8** @_execptr, align 8 + call void @_print_scilla_val(i8* %"$execptr_load_187", %_TyDescrTy_Typ* @"$TyDescr_Int32_13", i8* %"$memvoidcast_186") ret void } +attributes #0 = { nocallback nofree nosync nounwind readnone speculatable willreturn } + !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) +!1 = distinct !DICompileUnit(language: DW_LANG_C89, file: !2, producer: "Scilla Compiler", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false) !2 = !DIFile(filename: "pm1.scilexp", directory: "codegen/expr") -!3 = !{} -!4 = 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) -!5 = !DISubroutineType(types: !6) -!6 = !{!7} -!7 = !DIBasicType(tag: DW_TAG_unspecified_type, name: "void") -!8 = !DILocation(line: 4, column: 3, scope: !4) -!9 = !DILocation(line: 5, column: 13, scope: !10) -!10 = distinct !DILexicalBlock(scope: !11, file: !2, line: 5, column: 5) -!11 = distinct !DILexicalBlock(scope: !4, file: !2, line: 4, column: 3) -!12 = !DILocation(line: 6, column: 10, scope: !13) -!13 = distinct !DILexicalBlock(scope: !11, file: !2, line: 4, column: 3) -!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 = !DILocation(line: 0, scope: !14) -!17 = distinct !DISubprogram(name: "_scilla_expr_fun", linkageName: "_scilla_expr_fun", scope: !2, file: !2, line: 1, type: !5, scopeLine: 1, spFlags: DISPFlagDefinition, unit: !1, retainedNodes: !3) -!18 = !DILocation(line: 1, column: 9, scope: !17) -!19 = !DILocation(line: 2, column: 9, scope: !17) -!20 = !DILocation(line: 4, column: 3, scope: !17) -!21 = !DILocation(line: 9, column: 9, scope: !17) -!22 = !DILocation(line: 10, column: 1, scope: !17) +!3 = distinct !DISubprogram(name: "$fundef_9", linkageName: "$fundef_9", scope: !2, file: !2, line: 4, type: !4, scopeLine: 4, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!4 = !DISubroutineType(types: !5) +!5 = !{!6} +!6 = !DIBasicType(tag: DW_TAG_unspecified_type, name: "void") +!7 = !{} +!8 = !DILocalVariable(name: "c", scope: !3, file: !2, line: 3, type: !9) +!9 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "Bool", baseType: !10, size: 8, align: 8, dwarfAddressSpace: 0) +!10 = !DIBasicType(name: "Bool", size: 8) +!11 = !DILocation(line: 3, column: 14, scope: !3) +!12 = !DILocalVariable(name: "$retval_10", scope: !3, file: !2, line: 4, type: !13) +!13 = !DIBasicType(name: "Int32", size: 4) +!14 = !DILocation(line: 4, column: 3, scope: !3) +!15 = !DILocation(line: 5, column: 13, scope: !16) +!16 = distinct !DILexicalBlock(scope: !17, file: !2, line: 5, column: 5) +!17 = distinct !DILexicalBlock(scope: !3, file: !2, line: 4, column: 3) +!18 = !DILocation(line: 6, column: 10, scope: !19) +!19 = distinct !DILexicalBlock(scope: !17, file: !2, line: 4, column: 3) +!20 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !21, file: !21, type: !4, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!21 = !DIFile(filename: ".", directory: ".") +!22 = !DILocation(line: 0, scope: !20) +!23 = distinct !DISubprogram(name: "_scilla_expr_fun", linkageName: "_scilla_expr_fun", scope: !2, file: !2, line: 1, type: !4, scopeLine: 1, spFlags: DISPFlagDefinition, unit: !1, retainedNodes: !7) +!24 = !DILocalVariable(name: "$expr_8", scope: !23, file: !2, line: 1, type: !13) +!25 = !DILocation(line: 1, column: 9, scope: !23) +!26 = !DILocalVariable(name: "x", scope: !23, file: !2, line: 1, type: !13) +!27 = !DILocation(line: 1, column: 5, scope: !23) +!28 = !DILocalVariable(name: "y", scope: !23, file: !2, line: 2, type: !13) +!29 = !DILocation(line: 2, column: 5, scope: !23) +!30 = !DILocation(line: 2, column: 9, scope: !23) +!31 = !DILocation(line: 4, column: 3, scope: !23) +!32 = !DILocalVariable(name: "t", scope: !23, file: !2, line: 9, type: !9) +!33 = !DILocation(line: 9, column: 5, scope: !23) +!34 = !DILocation(line: 9, column: 9, scope: !23) +!35 = !DILocalVariable(name: "$f_7", scope: !23, file: !2, line: 10, type: !13) +!36 = !DILocation(line: 10, column: 1, scope: !23) diff --git a/testsuite/expr/pm1.ll b/testsuite/expr/pm1.ll index c99de7d5..cf223bb6 100644 --- a/testsuite/expr/pm1.ll +++ b/testsuite/expr/pm1.ll @@ -11,7 +11,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-pc-linux-gnu" +target triple = "x86_64-unknown-linux-gnu" %"$TyDescrTy_PrimTyp_11" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/testsuite/expr/pm2.dbg.ll b/testsuite/expr/pm2.dbg.ll index d45457e0..3fbe0d5c 100644 --- a/testsuite/expr/pm2.dbg.ll +++ b/testsuite/expr/pm2.dbg.ll @@ -14,7 +14,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-pc-linux-gnu" +target triple = "x86_64-unknown-linux-gnu" %"$TyDescrTy_PrimTyp_11" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } @@ -23,9 +23,9 @@ target triple = "x86_64-pc-linux-gnu" %"$TyDescrTy_ADTTyp_Specl_42" = type { %_TyDescrTy_Typ**, %"$TyDescrTy_ADTTyp_Constr_44"**, %"$TyDescrTy_ADTTyp_43"* } %"$TyDescrTy_ADTTyp_Constr_44" = type { %TyDescrString, i32, %_TyDescrTy_Typ** } %Int32 = type { i32 } -%"$ParamDescr_235" = type { %ParamDescrString, %_TyDescrTy_Typ* } +%"$ParamDescr_236" = type { %ParamDescrString, %_TyDescrTy_Typ* } %ParamDescrString = type { i8*, i32 } -%"$TransDescr_236" = type { %ParamDescrString, i32, %"$ParamDescr_235"* } +%"$TransDescr_237" = type { %ParamDescrString, i32, %"$ParamDescr_236"* } %"$$fundef_9_env_71" = type { %Int32, %Int32 } %"TName_Option_Option_(Int32)" = type { i8, %"CName_Some_Option_(Int32)"*, %"CName_None_Option_(Int32)"* } %"CName_Some_Option_(Int32)" = type <{ i8, %TName_Option_Int32* }> @@ -97,13 +97,16 @@ target triple = "x86_64-pc-linux-gnu" @"$_gas_charge_accPairUtils_4" = global %Int32 zeroinitializer @_tydescr_table = constant [17 x %_TyDescrTy_Typ*] [%_TyDescrTy_Typ* @"$TyDescr_Event_35", %_TyDescrTy_Typ* @"$TyDescr_Int64_17", %_TyDescrTy_Typ* @"$TyDescr_Uint256_27", %_TyDescrTy_Typ* @"$TyDescr_Uint32_15", %_TyDescrTy_Typ* @"$TyDescr_Uint64_19", %_TyDescrTy_Typ* @"$TyDescr_Bnum_31", %_TyDescrTy_Typ* @"$TyDescr_Uint128_23", %_TyDescrTy_Typ* @"$TyDescr_ADT_Option_Int32_45", %_TyDescrTy_Typ* @"$TyDescr_Exception_37", %_TyDescrTy_Typ* @"$TyDescr_String_29", %_TyDescrTy_Typ* @"$TyDescr_Int256_25", %_TyDescrTy_Typ* @"$TyDescr_Int128_21", %_TyDescrTy_Typ* @"$TyDescr_Bystr_41", %_TyDescrTy_Typ* @"$TyDescr_ReplicateContr_39", %_TyDescrTy_Typ* @"$TyDescr_Message_33", %_TyDescrTy_Typ* @"$TyDescr_ADT_Option_Option_(Int32)_46", %_TyDescrTy_Typ* @"$TyDescr_Int32_13"] @_tydescr_table_length = constant i32 17 -@_contract_parameters = constant [0 x %"$ParamDescr_235"] zeroinitializer +@_contract_parameters = constant [0 x %"$ParamDescr_236"] zeroinitializer @_contract_parameters_length = constant i32 0 -@_transition_parameters = constant [0 x %"$TransDescr_236"] zeroinitializer +@_transition_parameters = constant [0 x %"$TransDescr_237"] zeroinitializer @_transition_parameters_length = constant i32 0 -define internal %Int32 @"$fundef_9"(%"$$fundef_9_env_71"* %0, %"TName_Option_Option_(Int32)"* %1) !dbg !4 { +define internal %Int32 @"$fundef_9"(%"$$fundef_9_env_71"* %0, %"TName_Option_Option_(Int32)"* %1) !dbg !3 { entry: + %"$o_121" = alloca %"TName_Option_Option_(Int32)"*, align 8 + store %"TName_Option_Option_(Int32)"* %1, %"TName_Option_Option_(Int32)"** %"$o_121", align 8 + call void @llvm.dbg.declare(metadata %"TName_Option_Option_(Int32)"** %"$o_121", metadata !8, metadata !DIExpression()), !dbg !11 %"$$fundef_9_env_x_72" = getelementptr inbounds %"$$fundef_9_env_71", %"$$fundef_9_env_71"* %0, i32 0, i32 0 %"$x_envload_73" = load %Int32, %Int32* %"$$fundef_9_env_x_72", align 4 %x = alloca %Int32, align 8 @@ -113,6 +116,7 @@ entry: %y = alloca %Int32, align 8 store %Int32 %"$y_envload_75", %Int32* %y, align 4 %"$retval_10" = alloca %Int32, align 8 + call void @llvm.dbg.declare(metadata %Int32* %"$retval_10", metadata !12, metadata !DIExpression()), !dbg !14 %"$gasrem_76" = load i64, i64* @_gasrem, align 8 %"$gascmp_77" = icmp ugt i64 3, %"$gasrem_76" br i1 %"$gascmp_77", label %"$out_of_gas_78", label %"$have_gas_79" @@ -129,7 +133,7 @@ entry: switch i8 %"$o_tag_83", label %"$empty_default_84" [ i8 1, label %"$None_85" i8 0, label %"$Some_93" - ], !dbg !8 + ], !dbg !14 "$None_85": ; preds = %"$have_gas_79" %"$o_86" = bitcast %"TName_Option_Option_(Int32)"* %1 to %"CName_None_Option_(Int32)"* @@ -145,7 +149,7 @@ entry: %"$consume_91" = sub i64 %"$gasrem_87", 1 store i64 %"$consume_91", i64* @_gasrem, align 8 %"$x_92" = load %Int32, %Int32* %x, align 4 - store %Int32 %"$x_92", %Int32* %"$retval_10", align 4, !dbg !9 + store %Int32 %"$x_92", %Int32* %"$retval_10", align 4, !dbg !15 br label %"$matchsucc_81" "$Some_93": ; preds = %"$have_gas_79" @@ -160,7 +164,7 @@ entry: switch i8 %"$$o_6_tag_100", label %"$empty_default_101" [ i8 1, label %"$None_102" i8 0, label %"$Some_110" - ], !dbg !12 + ], !dbg !18 "$None_102": ; preds = %"$Some_93" %"$$o_6_103" = bitcast %TName_Option_Int32* %"$$o_6_98" to %CName_None_Int32* @@ -176,7 +180,7 @@ entry: %"$consume_108" = sub i64 %"$gasrem_104", 1 store i64 %"$consume_108", i64* @_gasrem, align 8 %"$y_109" = load %Int32, %Int32* %y, align 4 - store %Int32 %"$y_109", %Int32* %"$retval_10", align 4, !dbg !14 + store %Int32 %"$y_109", %Int32* %"$retval_10", align 4, !dbg !20 br label %"$matchsucc_97" "$Some_110": ; preds = %"$Some_93" @@ -197,7 +201,7 @@ entry: %"$consume_118" = sub i64 %"$gasrem_114", 1 store i64 %"$consume_118", i64* @_gasrem, align 8 %"$z_119" = load %Int32, %Int32* %z, align 4 - store %Int32 %"$z_119", %Int32* %"$retval_10", align 4, !dbg !17 + store %Int32 %"$z_119", %Int32* %"$retval_10", align 4, !dbg !23 br label %"$matchsucc_97" "$empty_default_101": ; preds = %"$Some_93" @@ -214,259 +218,268 @@ entry: ret %Int32 %"$$retval_10_120" } +; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn +declare void @llvm.dbg.declare(metadata, metadata, metadata) #0 + declare void @_out_of_gas() -define void @_init_libs() !dbg !19 { +define void @_init_libs() !dbg !25 { entry: - %"$gasrem_121" = load i64, i64* @_gasrem, align 8 - %"$gascmp_122" = icmp ugt i64 5, %"$gasrem_121" - br i1 %"$gascmp_122", label %"$out_of_gas_123", label %"$have_gas_124" + %"$gasrem_122" = load i64, i64* @_gasrem, align 8 + %"$gascmp_123" = icmp ugt i64 5, %"$gasrem_122" + br i1 %"$gascmp_123", label %"$out_of_gas_124", label %"$have_gas_125" -"$out_of_gas_123": ; preds = %entry +"$out_of_gas_124": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_124" + br label %"$have_gas_125" -"$have_gas_124": ; preds = %"$out_of_gas_123", %entry - %"$consume_125" = sub i64 %"$gasrem_121", 5 - store i64 %"$consume_125", i64* @_gasrem, align 8 - store %Int32 { i32 5 }, %Int32* @"$_gas_charge_accrec_lib_5", align 4, !dbg !21 - %"$gasrem_126" = load i64, i64* @_gasrem, align 8 - %"$gascmp_127" = icmp ugt i64 8, %"$gasrem_126" - br i1 %"$gascmp_127", label %"$out_of_gas_128", label %"$have_gas_129" +"$have_gas_125": ; preds = %"$out_of_gas_124", %entry + %"$consume_126" = sub i64 %"$gasrem_122", 5 + store i64 %"$consume_126", i64* @_gasrem, align 8 + store %Int32 { i32 5 }, %Int32* @"$_gas_charge_accrec_lib_5", align 4, !dbg !27 + %"$gasrem_127" = load i64, i64* @_gasrem, align 8 + %"$gascmp_128" = icmp ugt i64 8, %"$gasrem_127" + br i1 %"$gascmp_128", label %"$out_of_gas_129", label %"$have_gas_130" -"$out_of_gas_128": ; preds = %"$have_gas_124" +"$out_of_gas_129": ; preds = %"$have_gas_125" call void @_out_of_gas() - br label %"$have_gas_129" + br label %"$have_gas_130" -"$have_gas_129": ; preds = %"$out_of_gas_128", %"$have_gas_124" - %"$consume_130" = sub i64 %"$gasrem_126", 8 - store i64 %"$consume_130", i64* @_gasrem, align 8 - store %Int32 { i32 8 }, %Int32* @"$_gas_charge_accBoolUtils_0", align 4, !dbg !21 - %"$gasrem_131" = load i64, i64* @_gasrem, align 8 - %"$gascmp_132" = icmp ugt i64 196, %"$gasrem_131" - br i1 %"$gascmp_132", label %"$out_of_gas_133", label %"$have_gas_134" +"$have_gas_130": ; preds = %"$out_of_gas_129", %"$have_gas_125" + %"$consume_131" = sub i64 %"$gasrem_127", 8 + store i64 %"$consume_131", i64* @_gasrem, align 8 + store %Int32 { i32 8 }, %Int32* @"$_gas_charge_accBoolUtils_0", align 4, !dbg !27 + %"$gasrem_132" = load i64, i64* @_gasrem, align 8 + %"$gascmp_133" = icmp ugt i64 196, %"$gasrem_132" + br i1 %"$gascmp_133", label %"$out_of_gas_134", label %"$have_gas_135" -"$out_of_gas_133": ; preds = %"$have_gas_129" +"$out_of_gas_134": ; preds = %"$have_gas_130" call void @_out_of_gas() - br label %"$have_gas_134" + br label %"$have_gas_135" -"$have_gas_134": ; preds = %"$out_of_gas_133", %"$have_gas_129" - %"$consume_135" = sub i64 %"$gasrem_131", 196 - store i64 %"$consume_135", i64* @_gasrem, align 8 - store %Int32 { i32 196 }, %Int32* @"$_gas_charge_accIntUtils_1", align 4, !dbg !21 - %"$gasrem_136" = load i64, i64* @_gasrem, align 8 - %"$gascmp_137" = icmp ugt i64 20, %"$gasrem_136" - br i1 %"$gascmp_137", label %"$out_of_gas_138", label %"$have_gas_139" +"$have_gas_135": ; preds = %"$out_of_gas_134", %"$have_gas_130" + %"$consume_136" = sub i64 %"$gasrem_132", 196 + store i64 %"$consume_136", i64* @_gasrem, align 8 + store %Int32 { i32 196 }, %Int32* @"$_gas_charge_accIntUtils_1", align 4, !dbg !27 + %"$gasrem_137" = load i64, i64* @_gasrem, align 8 + %"$gascmp_138" = icmp ugt i64 20, %"$gasrem_137" + br i1 %"$gascmp_138", label %"$out_of_gas_139", label %"$have_gas_140" -"$out_of_gas_138": ; preds = %"$have_gas_134" +"$out_of_gas_139": ; preds = %"$have_gas_135" call void @_out_of_gas() - br label %"$have_gas_139" + br label %"$have_gas_140" -"$have_gas_139": ; preds = %"$out_of_gas_138", %"$have_gas_134" - %"$consume_140" = sub i64 %"$gasrem_136", 20 - store i64 %"$consume_140", i64* @_gasrem, align 8 - store %Int32 { i32 20 }, %Int32* @"$_gas_charge_accListUtils_2", align 4, !dbg !21 - %"$gasrem_141" = load i64, i64* @_gasrem, align 8 - %"$gascmp_142" = icmp ugt i64 12, %"$gasrem_141" - br i1 %"$gascmp_142", label %"$out_of_gas_143", label %"$have_gas_144" +"$have_gas_140": ; preds = %"$out_of_gas_139", %"$have_gas_135" + %"$consume_141" = sub i64 %"$gasrem_137", 20 + store i64 %"$consume_141", i64* @_gasrem, align 8 + store %Int32 { i32 20 }, %Int32* @"$_gas_charge_accListUtils_2", align 4, !dbg !27 + %"$gasrem_142" = load i64, i64* @_gasrem, align 8 + %"$gascmp_143" = icmp ugt i64 12, %"$gasrem_142" + br i1 %"$gascmp_143", label %"$out_of_gas_144", label %"$have_gas_145" -"$out_of_gas_143": ; preds = %"$have_gas_139" +"$out_of_gas_144": ; preds = %"$have_gas_140" call void @_out_of_gas() - br label %"$have_gas_144" + br label %"$have_gas_145" -"$have_gas_144": ; preds = %"$out_of_gas_143", %"$have_gas_139" - %"$consume_145" = sub i64 %"$gasrem_141", 12 - store i64 %"$consume_145", i64* @_gasrem, align 8 - store %Int32 { i32 12 }, %Int32* @"$_gas_charge_accNatUtils_3", align 4, !dbg !21 - %"$gasrem_146" = load i64, i64* @_gasrem, align 8 - %"$gascmp_147" = icmp ugt i64 2, %"$gasrem_146" - br i1 %"$gascmp_147", label %"$out_of_gas_148", label %"$have_gas_149" +"$have_gas_145": ; preds = %"$out_of_gas_144", %"$have_gas_140" + %"$consume_146" = sub i64 %"$gasrem_142", 12 + store i64 %"$consume_146", i64* @_gasrem, align 8 + store %Int32 { i32 12 }, %Int32* @"$_gas_charge_accNatUtils_3", align 4, !dbg !27 + %"$gasrem_147" = load i64, i64* @_gasrem, align 8 + %"$gascmp_148" = icmp ugt i64 2, %"$gasrem_147" + br i1 %"$gascmp_148", label %"$out_of_gas_149", label %"$have_gas_150" -"$out_of_gas_148": ; preds = %"$have_gas_144" +"$out_of_gas_149": ; preds = %"$have_gas_145" call void @_out_of_gas() - br label %"$have_gas_149" + br label %"$have_gas_150" -"$have_gas_149": ; preds = %"$out_of_gas_148", %"$have_gas_144" - %"$consume_150" = sub i64 %"$gasrem_146", 2 - store i64 %"$consume_150", i64* @_gasrem, align 8 - store %Int32 { i32 2 }, %Int32* @"$_gas_charge_accPairUtils_4", align 4, !dbg !21 +"$have_gas_150": ; preds = %"$out_of_gas_149", %"$have_gas_145" + %"$consume_151" = sub i64 %"$gasrem_147", 2 + store i64 %"$consume_151", i64* @_gasrem, align 8 + store %Int32 { i32 2 }, %Int32* @"$_gas_charge_accPairUtils_4", align 4, !dbg !27 ret void } -define internal %Int32 @_scilla_expr_fun(i8* %0) !dbg !22 { +define internal %Int32 @_scilla_expr_fun(i8* %0) !dbg !28 { entry: %"$expr_8" = alloca %Int32, 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" + call void @llvm.dbg.declare(metadata %Int32* %"$expr_8", metadata !29, metadata !DIExpression()), !dbg !30 + %"$gasrem_152" = load i64, i64* @_gasrem, align 8 + %"$gascmp_153" = icmp ugt i64 1, %"$gasrem_152" + br i1 %"$gascmp_153", label %"$out_of_gas_154", label %"$have_gas_155" -"$out_of_gas_153": ; preds = %entry +"$out_of_gas_154": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_154" + br label %"$have_gas_155" -"$have_gas_154": ; preds = %"$out_of_gas_153", %entry - %"$consume_155" = sub i64 %"$gasrem_151", 1 - store i64 %"$consume_155", i64* @_gasrem, align 8 +"$have_gas_155": ; preds = %"$out_of_gas_154", %entry + %"$consume_156" = sub i64 %"$gasrem_152", 1 + store i64 %"$consume_156", i64* @_gasrem, align 8 %x = alloca %Int32, 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" + call void @llvm.dbg.declare(metadata %Int32* %x, metadata !31, metadata !DIExpression()), !dbg !32 + %"$gasrem_157" = load i64, i64* @_gasrem, align 8 + %"$gascmp_158" = icmp ugt i64 1, %"$gasrem_157" + br i1 %"$gascmp_158", label %"$out_of_gas_159", label %"$have_gas_160" -"$out_of_gas_158": ; preds = %"$have_gas_154" +"$out_of_gas_159": ; preds = %"$have_gas_155" call void @_out_of_gas() - br label %"$have_gas_159" + br label %"$have_gas_160" -"$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 - store %Int32 { i32 42 }, %Int32* %x, align 4, !dbg !23 - %"$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" +"$have_gas_160": ; preds = %"$out_of_gas_159", %"$have_gas_155" + %"$consume_161" = sub i64 %"$gasrem_157", 1 + store i64 %"$consume_161", i64* @_gasrem, align 8 + store %Int32 { i32 42 }, %Int32* %x, align 4, !dbg !30 + %"$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_163": ; preds = %"$have_gas_159" +"$out_of_gas_164": ; preds = %"$have_gas_160" call void @_out_of_gas() - br label %"$have_gas_164" + br label %"$have_gas_165" -"$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_165": ; preds = %"$out_of_gas_164", %"$have_gas_160" + %"$consume_166" = sub i64 %"$gasrem_162", 1 + store i64 %"$consume_166", i64* @_gasrem, align 8 %y = alloca %Int32, 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" + call void @llvm.dbg.declare(metadata %Int32* %y, metadata !33, metadata !DIExpression()), !dbg !34 + %"$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_168": ; preds = %"$have_gas_164" +"$out_of_gas_169": ; preds = %"$have_gas_165" call void @_out_of_gas() - br label %"$have_gas_169" + br label %"$have_gas_170" -"$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 - store %Int32 { i32 41 }, %Int32* %y, align 4, !dbg !24 - %"$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" +"$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 + store %Int32 { i32 41 }, %Int32* %y, align 4, !dbg !35 + %"$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_173": ; preds = %"$have_gas_169" +"$out_of_gas_174": ; preds = %"$have_gas_170" call void @_out_of_gas() - br label %"$have_gas_174" + br label %"$have_gas_175" -"$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 +"$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 %f = alloca { %Int32 (i8*, %"TName_Option_Option_(Int32)"*)*, 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" + %"$gasrem_177" = load i64, i64* @_gasrem, align 8 + %"$gascmp_178" = icmp ugt i64 1, %"$gasrem_177" + br i1 %"$gascmp_178", label %"$out_of_gas_179", label %"$have_gas_180" -"$out_of_gas_178": ; preds = %"$have_gas_174" +"$out_of_gas_179": ; preds = %"$have_gas_175" 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 - %"$$fundef_9_envp_181_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_9_envp_181_salloc" = call i8* @_salloc(i8* %"$$fundef_9_envp_181_load", i64 8) - %"$$fundef_9_envp_181" = bitcast i8* %"$$fundef_9_envp_181_salloc" to %"$$fundef_9_env_71"* - %"$$fundef_9_env_voidp_183" = bitcast %"$$fundef_9_env_71"* %"$$fundef_9_envp_181" to i8* - %"$$fundef_9_cloval_184" = insertvalue { %Int32 (i8*, %"TName_Option_Option_(Int32)"*)*, i8* } { %Int32 (i8*, %"TName_Option_Option_(Int32)"*)* bitcast (%Int32 (%"$$fundef_9_env_71"*, %"TName_Option_Option_(Int32)"*)* @"$fundef_9" to %Int32 (i8*, %"TName_Option_Option_(Int32)"*)*), i8* undef }, i8* %"$$fundef_9_env_voidp_183", 1 - %"$$fundef_9_env_x_185" = getelementptr inbounds %"$$fundef_9_env_71", %"$$fundef_9_env_71"* %"$$fundef_9_envp_181", i32 0, i32 0 - %"$x_186" = load %Int32, %Int32* %x, align 4 - store %Int32 %"$x_186", %Int32* %"$$fundef_9_env_x_185", align 4 - %"$$fundef_9_env_y_187" = getelementptr inbounds %"$$fundef_9_env_71", %"$$fundef_9_env_71"* %"$$fundef_9_envp_181", i32 0, i32 1 - %"$y_188" = load %Int32, %Int32* %y, align 4 - store %Int32 %"$y_188", %Int32* %"$$fundef_9_env_y_187", align 4 - store { %Int32 (i8*, %"TName_Option_Option_(Int32)"*)*, i8* } %"$$fundef_9_cloval_184", { %Int32 (i8*, %"TName_Option_Option_(Int32)"*)*, i8* }* %f, align 8, !dbg !25 - %"$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 = %"$have_gas_179" + br label %"$have_gas_180" + +"$have_gas_180": ; preds = %"$out_of_gas_179", %"$have_gas_175" + %"$consume_181" = sub i64 %"$gasrem_177", 1 + store i64 %"$consume_181", i64* @_gasrem, align 8 + %"$$fundef_9_envp_182_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_9_envp_182_salloc" = call i8* @_salloc(i8* %"$$fundef_9_envp_182_load", i64 8) + %"$$fundef_9_envp_182" = bitcast i8* %"$$fundef_9_envp_182_salloc" to %"$$fundef_9_env_71"* + %"$$fundef_9_env_voidp_184" = bitcast %"$$fundef_9_env_71"* %"$$fundef_9_envp_182" to i8* + %"$$fundef_9_cloval_185" = insertvalue { %Int32 (i8*, %"TName_Option_Option_(Int32)"*)*, i8* } { %Int32 (i8*, %"TName_Option_Option_(Int32)"*)* bitcast (%Int32 (%"$$fundef_9_env_71"*, %"TName_Option_Option_(Int32)"*)* @"$fundef_9" to %Int32 (i8*, %"TName_Option_Option_(Int32)"*)*), i8* undef }, i8* %"$$fundef_9_env_voidp_184", 1 + %"$$fundef_9_env_x_186" = getelementptr inbounds %"$$fundef_9_env_71", %"$$fundef_9_env_71"* %"$$fundef_9_envp_182", i32 0, i32 0 + %"$x_187" = load %Int32, %Int32* %x, align 4 + store %Int32 %"$x_187", %Int32* %"$$fundef_9_env_x_186", align 4 + %"$$fundef_9_env_y_188" = getelementptr inbounds %"$$fundef_9_env_71", %"$$fundef_9_env_71"* %"$$fundef_9_envp_182", i32 0, i32 1 + %"$y_189" = load %Int32, %Int32* %y, align 4 + store %Int32 %"$y_189", %Int32* %"$$fundef_9_env_y_188", align 4 + store { %Int32 (i8*, %"TName_Option_Option_(Int32)"*)*, i8* } %"$$fundef_9_cloval_185", { %Int32 (i8*, %"TName_Option_Option_(Int32)"*)*, i8* }* %f, align 8, !dbg !36 + %"$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 = %"$have_gas_180" call void @_out_of_gas() - br label %"$have_gas_192" + br label %"$have_gas_193" -"$have_gas_192": ; preds = %"$out_of_gas_191", %"$have_gas_179" - %"$consume_193" = sub i64 %"$gasrem_189", 1 - store i64 %"$consume_193", i64* @_gasrem, align 8 +"$have_gas_193": ; preds = %"$out_of_gas_192", %"$have_gas_180" + %"$consume_194" = sub i64 %"$gasrem_190", 1 + store i64 %"$consume_194", i64* @_gasrem, align 8 %o1 = alloca %TName_Option_Int32*, align 8 - %"$gasrem_194" = load i64, i64* @_gasrem, align 8 - %"$gascmp_195" = icmp ugt i64 1, %"$gasrem_194" - br i1 %"$gascmp_195", label %"$out_of_gas_196", label %"$have_gas_197" + call void @llvm.dbg.declare(metadata %TName_Option_Int32** %o1, metadata !37, metadata !DIExpression()), !dbg !40 + %"$gasrem_195" = load i64, i64* @_gasrem, align 8 + %"$gascmp_196" = icmp ugt i64 1, %"$gasrem_195" + br i1 %"$gascmp_196", label %"$out_of_gas_197", label %"$have_gas_198" -"$out_of_gas_196": ; preds = %"$have_gas_192" +"$out_of_gas_197": ; preds = %"$have_gas_193" call void @_out_of_gas() - br label %"$have_gas_197" - -"$have_gas_197": ; preds = %"$out_of_gas_196", %"$have_gas_192" - %"$consume_198" = sub i64 %"$gasrem_194", 1 - store i64 %"$consume_198", i64* @_gasrem, align 8 - %"$x_199" = load %Int32, %Int32* %x, align 4 - %"$adtval_200_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_200_salloc" = call i8* @_salloc(i8* %"$adtval_200_load", i64 5) - %"$adtval_200" = bitcast i8* %"$adtval_200_salloc" to %CName_Some_Int32* - %"$adtgep_201" = getelementptr inbounds %CName_Some_Int32, %CName_Some_Int32* %"$adtval_200", i32 0, i32 0 - store i8 0, i8* %"$adtgep_201", align 1 - %"$adtgep_202" = getelementptr inbounds %CName_Some_Int32, %CName_Some_Int32* %"$adtval_200", i32 0, i32 1 - store %Int32 %"$x_199", %Int32* %"$adtgep_202", align 4 - %"$adtptr_203" = bitcast %CName_Some_Int32* %"$adtval_200" to %TName_Option_Int32* - store %TName_Option_Int32* %"$adtptr_203", %TName_Option_Int32** %o1, align 8, !dbg !26 - %"$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_197" + br label %"$have_gas_198" + +"$have_gas_198": ; preds = %"$out_of_gas_197", %"$have_gas_193" + %"$consume_199" = sub i64 %"$gasrem_195", 1 + store i64 %"$consume_199", i64* @_gasrem, align 8 + %"$x_200" = load %Int32, %Int32* %x, align 4 + %"$adtval_201_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_201_salloc" = call i8* @_salloc(i8* %"$adtval_201_load", i64 5) + %"$adtval_201" = bitcast i8* %"$adtval_201_salloc" to %CName_Some_Int32* + %"$adtgep_202" = getelementptr inbounds %CName_Some_Int32, %CName_Some_Int32* %"$adtval_201", i32 0, i32 0 + store i8 0, i8* %"$adtgep_202", align 1 + %"$adtgep_203" = getelementptr inbounds %CName_Some_Int32, %CName_Some_Int32* %"$adtval_201", i32 0, i32 1 + store %Int32 %"$x_200", %Int32* %"$adtgep_203", align 4 + %"$adtptr_204" = bitcast %CName_Some_Int32* %"$adtval_201" to %TName_Option_Int32* + store %TName_Option_Int32* %"$adtptr_204", %TName_Option_Int32** %o1, align 8, !dbg !41 + %"$gasrem_205" = load i64, i64* @_gasrem, align 8 + %"$gascmp_206" = icmp ugt i64 1, %"$gasrem_205" + br i1 %"$gascmp_206", label %"$out_of_gas_207", label %"$have_gas_208" + +"$out_of_gas_207": ; preds = %"$have_gas_198" call void @_out_of_gas() - br label %"$have_gas_207" + br label %"$have_gas_208" -"$have_gas_207": ; preds = %"$out_of_gas_206", %"$have_gas_197" - %"$consume_208" = sub i64 %"$gasrem_204", 1 - store i64 %"$consume_208", i64* @_gasrem, align 8 +"$have_gas_208": ; preds = %"$out_of_gas_207", %"$have_gas_198" + %"$consume_209" = sub i64 %"$gasrem_205", 1 + store i64 %"$consume_209", i64* @_gasrem, align 8 %o2 = alloca %"TName_Option_Option_(Int32)"*, 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" + call void @llvm.dbg.declare(metadata %"TName_Option_Option_(Int32)"** %o2, metadata !42, metadata !DIExpression()), !dbg !43 + %"$gasrem_210" = load i64, i64* @_gasrem, align 8 + %"$gascmp_211" = icmp ugt i64 1, %"$gasrem_210" + br i1 %"$gascmp_211", label %"$out_of_gas_212", label %"$have_gas_213" -"$out_of_gas_211": ; preds = %"$have_gas_207" +"$out_of_gas_212": ; preds = %"$have_gas_208" call void @_out_of_gas() - br label %"$have_gas_212" - -"$have_gas_212": ; preds = %"$out_of_gas_211", %"$have_gas_207" - %"$consume_213" = sub i64 %"$gasrem_209", 1 - store i64 %"$consume_213", i64* @_gasrem, align 8 - %"$o1_214" = load %TName_Option_Int32*, %TName_Option_Int32** %o1, align 8 - %"$adtval_215_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_215_salloc" = call i8* @_salloc(i8* %"$adtval_215_load", i64 9) - %"$adtval_215" = bitcast i8* %"$adtval_215_salloc" to %"CName_Some_Option_(Int32)"* - %"$adtgep_216" = getelementptr inbounds %"CName_Some_Option_(Int32)", %"CName_Some_Option_(Int32)"* %"$adtval_215", i32 0, i32 0 - store i8 0, i8* %"$adtgep_216", align 1 - %"$adtgep_217" = getelementptr inbounds %"CName_Some_Option_(Int32)", %"CName_Some_Option_(Int32)"* %"$adtval_215", i32 0, i32 1 - store %TName_Option_Int32* %"$o1_214", %TName_Option_Int32** %"$adtgep_217", align 8 - %"$adtptr_218" = bitcast %"CName_Some_Option_(Int32)"* %"$adtval_215" to %"TName_Option_Option_(Int32)"* - store %"TName_Option_Option_(Int32)"* %"$adtptr_218", %"TName_Option_Option_(Int32)"** %o2, align 8, !dbg !27 - %"$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 = %"$have_gas_212" + br label %"$have_gas_213" + +"$have_gas_213": ; preds = %"$out_of_gas_212", %"$have_gas_208" + %"$consume_214" = sub i64 %"$gasrem_210", 1 + store i64 %"$consume_214", i64* @_gasrem, align 8 + %"$o1_215" = load %TName_Option_Int32*, %TName_Option_Int32** %o1, align 8 + %"$adtval_216_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_216_salloc" = call i8* @_salloc(i8* %"$adtval_216_load", i64 9) + %"$adtval_216" = bitcast i8* %"$adtval_216_salloc" to %"CName_Some_Option_(Int32)"* + %"$adtgep_217" = getelementptr inbounds %"CName_Some_Option_(Int32)", %"CName_Some_Option_(Int32)"* %"$adtval_216", i32 0, i32 0 + store i8 0, i8* %"$adtgep_217", align 1 + %"$adtgep_218" = getelementptr inbounds %"CName_Some_Option_(Int32)", %"CName_Some_Option_(Int32)"* %"$adtval_216", i32 0, i32 1 + store %TName_Option_Int32* %"$o1_215", %TName_Option_Int32** %"$adtgep_218", align 8 + %"$adtptr_219" = bitcast %"CName_Some_Option_(Int32)"* %"$adtval_216" to %"TName_Option_Option_(Int32)"* + store %"TName_Option_Option_(Int32)"* %"$adtptr_219", %"TName_Option_Option_(Int32)"** %o2, align 8, !dbg !44 + %"$gasrem_220" = load i64, i64* @_gasrem, align 8 + %"$gascmp_221" = icmp ugt i64 1, %"$gasrem_220" + br i1 %"$gascmp_221", label %"$out_of_gas_222", label %"$have_gas_223" + +"$out_of_gas_222": ; preds = %"$have_gas_213" call void @_out_of_gas() - br label %"$have_gas_222" + br label %"$have_gas_223" -"$have_gas_222": ; preds = %"$out_of_gas_221", %"$have_gas_212" - %"$consume_223" = sub i64 %"$gasrem_219", 1 - store i64 %"$consume_223", i64* @_gasrem, align 8 +"$have_gas_223": ; preds = %"$out_of_gas_222", %"$have_gas_213" + %"$consume_224" = sub i64 %"$gasrem_220", 1 + store i64 %"$consume_224", i64* @_gasrem, align 8 %"$f_7" = alloca %Int32, align 8 - %"$f_224" = load { %Int32 (i8*, %"TName_Option_Option_(Int32)"*)*, i8* }, { %Int32 (i8*, %"TName_Option_Option_(Int32)"*)*, i8* }* %f, align 8 - %"$f_fptr_225" = extractvalue { %Int32 (i8*, %"TName_Option_Option_(Int32)"*)*, i8* } %"$f_224", 0 - %"$f_envptr_226" = extractvalue { %Int32 (i8*, %"TName_Option_Option_(Int32)"*)*, i8* } %"$f_224", 1 - %"$o2_227" = load %"TName_Option_Option_(Int32)"*, %"TName_Option_Option_(Int32)"** %o2, align 8 - %"$f_call_228" = call %Int32 %"$f_fptr_225"(i8* %"$f_envptr_226", %"TName_Option_Option_(Int32)"* %"$o2_227"), !dbg !28 - store %Int32 %"$f_call_228", %Int32* %"$f_7", align 4, !dbg !28 - %"$$f_7_229" = load %Int32, %Int32* %"$f_7", align 4 - store %Int32 %"$$f_7_229", %Int32* %"$expr_8", align 4, !dbg !28 - %"$$expr_8_230" = load %Int32, %Int32* %"$expr_8", align 4 - ret %Int32 %"$$expr_8_230" + call void @llvm.dbg.declare(metadata %Int32* %"$f_7", metadata !45, metadata !DIExpression()), !dbg !46 + %"$f_225" = load { %Int32 (i8*, %"TName_Option_Option_(Int32)"*)*, i8* }, { %Int32 (i8*, %"TName_Option_Option_(Int32)"*)*, i8* }* %f, align 8 + %"$f_fptr_226" = extractvalue { %Int32 (i8*, %"TName_Option_Option_(Int32)"*)*, i8* } %"$f_225", 0 + %"$f_envptr_227" = extractvalue { %Int32 (i8*, %"TName_Option_Option_(Int32)"*)*, i8* } %"$f_225", 1 + %"$o2_228" = load %"TName_Option_Option_(Int32)"*, %"TName_Option_Option_(Int32)"** %o2, align 8 + %"$f_call_229" = call %Int32 %"$f_fptr_226"(i8* %"$f_envptr_227", %"TName_Option_Option_(Int32)"* %"$o2_228"), !dbg !46 + store %Int32 %"$f_call_229", %Int32* %"$f_7", align 4, !dbg !46 + %"$$f_7_230" = load %Int32, %Int32* %"$f_7", align 4 + store %Int32 %"$$f_7_230", %Int32* %"$expr_8", align 4, !dbg !46 + %"$$expr_8_231" = load %Int32, %Int32* %"$expr_8", align 4 + ret %Int32 %"$$expr_8_231" } declare i8* @_salloc(i8*, i64) @@ -475,44 +488,64 @@ declare void @_print_scilla_val(i8*, %_TyDescrTy_Typ*, i8*) define void @scilla_main() { entry: - %"$exprval_231" = call %Int32 @_scilla_expr_fun(i8* null) - %"$pval_232" = alloca %Int32, align 8 - %"$memvoidcast_233" = bitcast %Int32* %"$pval_232" to i8* - store %Int32 %"$exprval_231", %Int32* %"$pval_232", align 4 - %"$execptr_load_234" = load i8*, i8** @_execptr, align 8 - call void @_print_scilla_val(i8* %"$execptr_load_234", %_TyDescrTy_Typ* @"$TyDescr_Int32_13", i8* %"$memvoidcast_233") + %"$exprval_232" = call %Int32 @_scilla_expr_fun(i8* null) + %"$pval_233" = alloca %Int32, align 8 + %"$memvoidcast_234" = bitcast %Int32* %"$pval_233" to i8* + store %Int32 %"$exprval_232", %Int32* %"$pval_233", align 4 + %"$execptr_load_235" = load i8*, i8** @_execptr, align 8 + call void @_print_scilla_val(i8* %"$execptr_load_235", %_TyDescrTy_Typ* @"$TyDescr_Int32_13", i8* %"$memvoidcast_234") ret void } +attributes #0 = { nocallback nofree nosync nounwind readnone speculatable willreturn } + !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) +!1 = distinct !DICompileUnit(language: DW_LANG_C89, file: !2, producer: "Scilla Compiler", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false) !2 = !DIFile(filename: "pm2.scilexp", directory: "codegen/expr") -!3 = !{} -!4 = 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) -!5 = !DISubroutineType(types: !6) -!6 = !{!7} -!7 = !DIBasicType(tag: DW_TAG_unspecified_type, name: "void") -!8 = !DILocation(line: 4, column: 3, scope: !4) -!9 = !DILocation(line: 5, column: 13, scope: !10) -!10 = distinct !DILexicalBlock(scope: !11, file: !2, line: 5, column: 5) -!11 = distinct !DILexicalBlock(scope: !4, file: !2, line: 4, column: 3) -!12 = !DILocation(line: 4, column: 3, scope: !13) -!13 = distinct !DILexicalBlock(scope: !11, file: !2, line: 6, column: 5) -!14 = !DILocation(line: 6, column: 18, scope: !15) -!15 = distinct !DILexicalBlock(scope: !16, file: !2, line: 6, column: 10) -!16 = distinct !DILexicalBlock(scope: !13, file: !2, line: 4, column: 3) -!17 = !DILocation(line: 7, column: 22, scope: !18) -!18 = distinct !DILexicalBlock(scope: !16, file: !2, line: 7, column: 11) -!19 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !20, file: !20, type: !5, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!20 = !DIFile(filename: ".", directory: ".") -!21 = !DILocation(line: 0, scope: !19) -!22 = distinct !DISubprogram(name: "_scilla_expr_fun", linkageName: "_scilla_expr_fun", scope: !2, file: !2, line: 1, type: !5, scopeLine: 1, spFlags: DISPFlagDefinition, unit: !1, retainedNodes: !3) -!23 = !DILocation(line: 1, column: 9, scope: !22) -!24 = !DILocation(line: 2, column: 9, scope: !22) -!25 = !DILocation(line: 4, column: 3, scope: !22) -!26 = !DILocation(line: 10, column: 10, scope: !22) -!27 = !DILocation(line: 11, column: 10, scope: !22) -!28 = !DILocation(line: 12, column: 1, scope: !22) +!3 = distinct !DISubprogram(name: "$fundef_9", linkageName: "$fundef_9", scope: !2, file: !2, line: 4, type: !4, scopeLine: 4, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!4 = !DISubroutineType(types: !5) +!5 = !{!6} +!6 = !DIBasicType(tag: DW_TAG_unspecified_type, name: "void") +!7 = !{} +!8 = !DILocalVariable(name: "o", scope: !3, file: !2, line: 3, type: !9) +!9 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "Option (Option (Int32))", baseType: !10, size: 8, align: 8, dwarfAddressSpace: 0) +!10 = !DIBasicType(name: "Option (Option (Int32))", size: 8) +!11 = !DILocation(line: 3, column: 14, scope: !3) +!12 = !DILocalVariable(name: "$retval_10", scope: !3, file: !2, line: 4, type: !13) +!13 = !DIBasicType(name: "Int32", size: 4) +!14 = !DILocation(line: 4, column: 3, scope: !3) +!15 = !DILocation(line: 5, column: 13, scope: !16) +!16 = distinct !DILexicalBlock(scope: !17, file: !2, line: 5, column: 5) +!17 = distinct !DILexicalBlock(scope: !3, file: !2, line: 4, column: 3) +!18 = !DILocation(line: 4, column: 3, scope: !19) +!19 = distinct !DILexicalBlock(scope: !17, file: !2, line: 6, column: 5) +!20 = !DILocation(line: 6, column: 18, scope: !21) +!21 = distinct !DILexicalBlock(scope: !22, file: !2, line: 6, column: 10) +!22 = distinct !DILexicalBlock(scope: !19, file: !2, line: 4, column: 3) +!23 = !DILocation(line: 7, column: 22, scope: !24) +!24 = distinct !DILexicalBlock(scope: !22, file: !2, line: 7, column: 11) +!25 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !26, file: !26, type: !4, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!26 = !DIFile(filename: ".", directory: ".") +!27 = !DILocation(line: 0, scope: !25) +!28 = distinct !DISubprogram(name: "_scilla_expr_fun", linkageName: "_scilla_expr_fun", scope: !2, file: !2, line: 1, type: !4, scopeLine: 1, spFlags: DISPFlagDefinition, unit: !1, retainedNodes: !7) +!29 = !DILocalVariable(name: "$expr_8", scope: !28, file: !2, line: 1, type: !13) +!30 = !DILocation(line: 1, column: 9, scope: !28) +!31 = !DILocalVariable(name: "x", scope: !28, file: !2, line: 1, type: !13) +!32 = !DILocation(line: 1, column: 5, scope: !28) +!33 = !DILocalVariable(name: "y", scope: !28, file: !2, line: 2, type: !13) +!34 = !DILocation(line: 2, column: 5, scope: !28) +!35 = !DILocation(line: 2, column: 9, scope: !28) +!36 = !DILocation(line: 4, column: 3, scope: !28) +!37 = !DILocalVariable(name: "o1", scope: !28, file: !2, line: 10, type: !38) +!38 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "Option (Int32)", baseType: !39, size: 8, align: 8, dwarfAddressSpace: 0) +!39 = !DIBasicType(name: "Option (Int32)", size: 8) +!40 = !DILocation(line: 10, column: 5, scope: !28) +!41 = !DILocation(line: 10, column: 10, scope: !28) +!42 = !DILocalVariable(name: "o2", scope: !28, file: !2, line: 11, type: !9) +!43 = !DILocation(line: 11, column: 5, scope: !28) +!44 = !DILocation(line: 11, column: 10, scope: !28) +!45 = !DILocalVariable(name: "$f_7", scope: !28, file: !2, line: 12, type: !13) +!46 = !DILocation(line: 12, column: 1, scope: !28) diff --git a/testsuite/expr/pm2.ll b/testsuite/expr/pm2.ll index 01299e49..83892dae 100644 --- a/testsuite/expr/pm2.ll +++ b/testsuite/expr/pm2.ll @@ -14,7 +14,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-pc-linux-gnu" +target triple = "x86_64-unknown-linux-gnu" %"$TyDescrTy_PrimTyp_11" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/testsuite/expr/sdivtests1.dbg.ll b/testsuite/expr/sdivtests1.dbg.ll index 419a0733..28a0efc3 100644 --- a/testsuite/expr/sdivtests1.dbg.ll +++ b/testsuite/expr/sdivtests1.dbg.ll @@ -35,7 +35,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-pc-linux-gnu" +target triple = "x86_64-unknown-linux-gnu" %"$TyDescrTy_PrimTyp_19" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } @@ -89,7 +89,7 @@ target triple = "x86_64-pc-linux-gnu" @_transition_parameters = constant [0 x %"$TransDescr_373"] zeroinitializer @_transition_parameters_length = constant i32 0 -define void @_init_libs() !dbg !4 { +define void @_init_libs() !dbg !3 { entry: %"$gasrem_56" = load i64, i64* @_gasrem, align 8 %"$gascmp_57" = icmp ugt i64 5, %"$gasrem_56" @@ -171,6 +171,7 @@ declare void @_out_of_gas() define internal %Int32 @_scilla_expr_fun(i8* %0) !dbg !10 { entry: %"$expr_18" = alloca %Int32, align 8 + call void @llvm.dbg.declare(metadata %Int32* %"$expr_18", metadata !11, metadata !DIExpression()), !dbg !13 %"$gasrem_86" = load i64, i64* @_gasrem, align 8 %"$gascmp_87" = icmp ugt i64 1, %"$gasrem_86" br i1 %"$gascmp_87", label %"$out_of_gas_88", label %"$have_gas_89" @@ -183,6 +184,7 @@ entry: %"$consume_90" = sub i64 %"$gasrem_86", 1 store i64 %"$consume_90", i64* @_gasrem, align 8 %a = alloca %Int32, align 8 + call void @llvm.dbg.declare(metadata %Int32* %a, metadata !14, metadata !DIExpression()), !dbg !15 %"$gasrem_91" = load i64, i64* @_gasrem, align 8 %"$gascmp_92" = icmp ugt i64 1, %"$gasrem_91" br i1 %"$gascmp_92", label %"$out_of_gas_93", label %"$have_gas_94" @@ -194,7 +196,7 @@ entry: "$have_gas_94": ; preds = %"$out_of_gas_93", %"$have_gas_89" %"$consume_95" = sub i64 %"$gasrem_91", 1 store i64 %"$consume_95", i64* @_gasrem, align 8 - store %Int32 { i32 -10 }, %Int32* %a, align 4, !dbg !11 + store %Int32 { i32 -10 }, %Int32* %a, align 4, !dbg !13 %"$gasrem_96" = load i64, i64* @_gasrem, align 8 %"$gascmp_97" = icmp ugt i64 1, %"$gasrem_96" br i1 %"$gascmp_97", label %"$out_of_gas_98", label %"$have_gas_99" @@ -207,6 +209,7 @@ entry: %"$consume_100" = sub i64 %"$gasrem_96", 1 store i64 %"$consume_100", i64* @_gasrem, align 8 %b = alloca %Int32, align 8 + call void @llvm.dbg.declare(metadata %Int32* %b, metadata !16, metadata !DIExpression()), !dbg !17 %"$gasrem_101" = load i64, i64* @_gasrem, align 8 %"$gascmp_102" = icmp ugt i64 1, %"$gasrem_101" br i1 %"$gascmp_102", label %"$out_of_gas_103", label %"$have_gas_104" @@ -218,7 +221,7 @@ entry: "$have_gas_104": ; preds = %"$out_of_gas_103", %"$have_gas_99" %"$consume_105" = sub i64 %"$gasrem_101", 1 store i64 %"$consume_105", i64* @_gasrem, align 8 - store %Int32 { i32 3 }, %Int32* %b, align 4, !dbg !12 + store %Int32 { i32 3 }, %Int32* %b, align 4, !dbg !18 %"$gasrem_106" = load i64, i64* @_gasrem, align 8 %"$gascmp_107" = icmp ugt i64 1, %"$gasrem_106" br i1 %"$gascmp_107", label %"$out_of_gas_108", label %"$have_gas_109" @@ -231,6 +234,7 @@ entry: %"$consume_110" = sub i64 %"$gasrem_106", 1 store i64 %"$consume_110", i64* @_gasrem, align 8 %res_div = alloca %Int32, align 8 + call void @llvm.dbg.declare(metadata %Int32* %res_div, metadata !19, metadata !DIExpression()), !dbg !20 %"$gasrem_111" = load i64, i64* @_gasrem, align 8 %"$gascmp_112" = icmp ugt i64 20, %"$gasrem_111" br i1 %"$gascmp_112", label %"$out_of_gas_113", label %"$have_gas_114" @@ -244,8 +248,8 @@ entry: store i64 %"$consume_115", i64* @_gasrem, align 8 %"$a_116" = load %Int32, %Int32* %a, align 4 %"$b_117" = load %Int32, %Int32* %b, align 4 - %"$div_call_118" = call %Int32 @_div_Int32(%Int32 %"$a_116", %Int32 %"$b_117"), !dbg !13 - store %Int32 %"$div_call_118", %Int32* %res_div, align 4, !dbg !13 + %"$div_call_118" = call %Int32 @_div_Int32(%Int32 %"$a_116", %Int32 %"$b_117"), !dbg !21 + store %Int32 %"$div_call_118", %Int32* %res_div, align 4, !dbg !21 %"$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" @@ -258,6 +262,7 @@ entry: %"$consume_123" = sub i64 %"$gasrem_119", 1 store i64 %"$consume_123", i64* @_gasrem, align 8 %res_rem = alloca %Int32, align 8 + call void @llvm.dbg.declare(metadata %Int32* %res_rem, metadata !22, metadata !DIExpression()), !dbg !23 %"$gasrem_124" = load i64, i64* @_gasrem, align 8 %"$gascmp_125" = icmp ugt i64 20, %"$gasrem_124" br i1 %"$gascmp_125", label %"$out_of_gas_126", label %"$have_gas_127" @@ -271,8 +276,8 @@ entry: store i64 %"$consume_128", i64* @_gasrem, align 8 %"$a_129" = load %Int32, %Int32* %a, align 4 %"$b_130" = load %Int32, %Int32* %b, align 4 - %"$rem_call_131" = call %Int32 @_rem_Int32(%Int32 %"$a_129", %Int32 %"$b_130"), !dbg !14 - store %Int32 %"$rem_call_131", %Int32* %res_rem, align 4, !dbg !14 + %"$rem_call_131" = call %Int32 @_rem_Int32(%Int32 %"$a_129", %Int32 %"$b_130"), !dbg !24 + store %Int32 %"$rem_call_131", %Int32* %res_rem, align 4, !dbg !24 %"$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" @@ -285,6 +290,7 @@ entry: %"$consume_136" = sub i64 %"$gasrem_132", 1 store i64 %"$consume_136", i64* @_gasrem, align 8 %res1 = alloca %Int32, align 8 + call void @llvm.dbg.declare(metadata %Int32* %res1, metadata !25, metadata !DIExpression()), !dbg !26 %"$gasrem_137" = load i64, i64* @_gasrem, align 8 %"$gascmp_138" = icmp ugt i64 4, %"$gasrem_137" br i1 %"$gascmp_138", label %"$out_of_gas_139", label %"$have_gas_140" @@ -298,8 +304,8 @@ entry: store i64 %"$consume_141", i64* @_gasrem, align 8 %"$res_div_142" = load %Int32, %Int32* %res_div, align 4 %"$res_rem_143" = load %Int32, %Int32* %res_rem, align 4 - %"$add_call_144" = call %Int32 @_add_Int32(%Int32 %"$res_div_142", %Int32 %"$res_rem_143"), !dbg !15 - store %Int32 %"$add_call_144", %Int32* %res1, align 4, !dbg !15 + %"$add_call_144" = call %Int32 @_add_Int32(%Int32 %"$res_div_142", %Int32 %"$res_rem_143"), !dbg !27 + store %Int32 %"$add_call_144", %Int32* %res1, align 4, !dbg !27 %"$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" @@ -312,6 +318,7 @@ entry: %"$consume_149" = sub i64 %"$gasrem_145", 1 store i64 %"$consume_149", i64* @_gasrem, align 8 %"$a_6" = alloca %Int32, align 8 + call void @llvm.dbg.declare(metadata %Int32* %"$a_6", metadata !28, metadata !DIExpression()), !dbg !29 %"$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" @@ -323,7 +330,7 @@ entry: "$have_gas_153": ; preds = %"$out_of_gas_152", %"$have_gas_148" %"$consume_154" = sub i64 %"$gasrem_150", 1 store i64 %"$consume_154", i64* @_gasrem, align 8 - store %Int32 { i32 10 }, %Int32* %"$a_6", align 4, !dbg !16 + store %Int32 { i32 10 }, %Int32* %"$a_6", align 4, !dbg !30 %"$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" @@ -336,6 +343,7 @@ entry: %"$consume_159" = sub i64 %"$gasrem_155", 1 store i64 %"$consume_159", i64* @_gasrem, align 8 %"$b_7" = alloca %Int32, align 8 + call void @llvm.dbg.declare(metadata %Int32* %"$b_7", metadata !31, metadata !DIExpression()), !dbg !32 %"$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" @@ -347,7 +355,7 @@ entry: "$have_gas_163": ; preds = %"$out_of_gas_162", %"$have_gas_158" %"$consume_164" = sub i64 %"$gasrem_160", 1 store i64 %"$consume_164", i64* @_gasrem, align 8 - store %Int32 { i32 -3 }, %Int32* %"$b_7", align 4, !dbg !17 + store %Int32 { i32 -3 }, %Int32* %"$b_7", align 4, !dbg !33 %"$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" @@ -360,6 +368,7 @@ entry: %"$consume_169" = sub i64 %"$gasrem_165", 1 store i64 %"$consume_169", i64* @_gasrem, align 8 %"$res_div_8" = alloca %Int32, align 8 + call void @llvm.dbg.declare(metadata %Int32* %"$res_div_8", metadata !34, metadata !DIExpression()), !dbg !35 %"$gasrem_170" = load i64, i64* @_gasrem, align 8 %"$gascmp_171" = icmp ugt i64 20, %"$gasrem_170" br i1 %"$gascmp_171", label %"$out_of_gas_172", label %"$have_gas_173" @@ -373,8 +382,8 @@ entry: store i64 %"$consume_174", i64* @_gasrem, align 8 %"$$a_6_175" = load %Int32, %Int32* %"$a_6", align 4 %"$$b_7_176" = load %Int32, %Int32* %"$b_7", align 4 - %"$div_call_177" = call %Int32 @_div_Int32(%Int32 %"$$a_6_175", %Int32 %"$$b_7_176"), !dbg !18 - store %Int32 %"$div_call_177", %Int32* %"$res_div_8", align 4, !dbg !18 + %"$div_call_177" = call %Int32 @_div_Int32(%Int32 %"$$a_6_175", %Int32 %"$$b_7_176"), !dbg !36 + store %Int32 %"$div_call_177", %Int32* %"$res_div_8", align 4, !dbg !36 %"$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" @@ -387,6 +396,7 @@ entry: %"$consume_182" = sub i64 %"$gasrem_178", 1 store i64 %"$consume_182", i64* @_gasrem, align 8 %"$res_rem_9" = alloca %Int32, align 8 + call void @llvm.dbg.declare(metadata %Int32* %"$res_rem_9", metadata !37, metadata !DIExpression()), !dbg !38 %"$gasrem_183" = load i64, i64* @_gasrem, align 8 %"$gascmp_184" = icmp ugt i64 20, %"$gasrem_183" br i1 %"$gascmp_184", label %"$out_of_gas_185", label %"$have_gas_186" @@ -400,8 +410,8 @@ entry: store i64 %"$consume_187", i64* @_gasrem, align 8 %"$$a_6_188" = load %Int32, %Int32* %"$a_6", align 4 %"$$b_7_189" = load %Int32, %Int32* %"$b_7", align 4 - %"$rem_call_190" = call %Int32 @_rem_Int32(%Int32 %"$$a_6_188", %Int32 %"$$b_7_189"), !dbg !19 - store %Int32 %"$rem_call_190", %Int32* %"$res_rem_9", align 4, !dbg !19 + %"$rem_call_190" = call %Int32 @_rem_Int32(%Int32 %"$$a_6_188", %Int32 %"$$b_7_189"), !dbg !39 + store %Int32 %"$rem_call_190", %Int32* %"$res_rem_9", align 4, !dbg !39 %"$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" @@ -414,6 +424,7 @@ entry: %"$consume_195" = sub i64 %"$gasrem_191", 1 store i64 %"$consume_195", i64* @_gasrem, align 8 %res2 = alloca %Int32, align 8 + call void @llvm.dbg.declare(metadata %Int32* %res2, metadata !40, metadata !DIExpression()), !dbg !41 %"$gasrem_196" = load i64, i64* @_gasrem, align 8 %"$gascmp_197" = icmp ugt i64 4, %"$gasrem_196" br i1 %"$gascmp_197", label %"$out_of_gas_198", label %"$have_gas_199" @@ -427,8 +438,8 @@ entry: store i64 %"$consume_200", i64* @_gasrem, align 8 %"$$res_div_8_201" = load %Int32, %Int32* %"$res_div_8", align 4 %"$$res_rem_9_202" = load %Int32, %Int32* %"$res_rem_9", align 4 - %"$add_call_203" = call %Int32 @_add_Int32(%Int32 %"$$res_div_8_201", %Int32 %"$$res_rem_9_202"), !dbg !20 - store %Int32 %"$add_call_203", %Int32* %res2, align 4, !dbg !20 + %"$add_call_203" = call %Int32 @_add_Int32(%Int32 %"$$res_div_8_201", %Int32 %"$$res_rem_9_202"), !dbg !42 + store %Int32 %"$add_call_203", %Int32* %res2, align 4, !dbg !42 %"$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" @@ -441,6 +452,7 @@ entry: %"$consume_208" = sub i64 %"$gasrem_204", 1 store i64 %"$consume_208", i64* @_gasrem, align 8 %"$a_10" = alloca %Int32, align 8 + call void @llvm.dbg.declare(metadata %Int32* %"$a_10", metadata !43, metadata !DIExpression()), !dbg !44 %"$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" @@ -452,7 +464,7 @@ entry: "$have_gas_212": ; preds = %"$out_of_gas_211", %"$have_gas_207" %"$consume_213" = sub i64 %"$gasrem_209", 1 store i64 %"$consume_213", i64* @_gasrem, align 8 - store %Int32 { i32 -10 }, %Int32* %"$a_10", align 4, !dbg !21 + store %Int32 { i32 -10 }, %Int32* %"$a_10", align 4, !dbg !45 %"$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" @@ -465,6 +477,7 @@ entry: %"$consume_218" = sub i64 %"$gasrem_214", 1 store i64 %"$consume_218", i64* @_gasrem, align 8 %"$b_11" = alloca %Int32, align 8 + call void @llvm.dbg.declare(metadata %Int32* %"$b_11", metadata !46, metadata !DIExpression()), !dbg !47 %"$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" @@ -476,7 +489,7 @@ entry: "$have_gas_222": ; preds = %"$out_of_gas_221", %"$have_gas_217" %"$consume_223" = sub i64 %"$gasrem_219", 1 store i64 %"$consume_223", i64* @_gasrem, align 8 - store %Int32 { i32 -3 }, %Int32* %"$b_11", align 4, !dbg !22 + store %Int32 { i32 -3 }, %Int32* %"$b_11", align 4, !dbg !48 %"$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" @@ -489,6 +502,7 @@ entry: %"$consume_228" = sub i64 %"$gasrem_224", 1 store i64 %"$consume_228", i64* @_gasrem, align 8 %"$res_div_12" = alloca %Int32, align 8 + call void @llvm.dbg.declare(metadata %Int32* %"$res_div_12", metadata !49, metadata !DIExpression()), !dbg !50 %"$gasrem_229" = load i64, i64* @_gasrem, align 8 %"$gascmp_230" = icmp ugt i64 20, %"$gasrem_229" br i1 %"$gascmp_230", label %"$out_of_gas_231", label %"$have_gas_232" @@ -502,8 +516,8 @@ entry: store i64 %"$consume_233", i64* @_gasrem, align 8 %"$$a_10_234" = load %Int32, %Int32* %"$a_10", align 4 %"$$b_11_235" = load %Int32, %Int32* %"$b_11", align 4 - %"$div_call_236" = call %Int32 @_div_Int32(%Int32 %"$$a_10_234", %Int32 %"$$b_11_235"), !dbg !23 - store %Int32 %"$div_call_236", %Int32* %"$res_div_12", align 4, !dbg !23 + %"$div_call_236" = call %Int32 @_div_Int32(%Int32 %"$$a_10_234", %Int32 %"$$b_11_235"), !dbg !51 + store %Int32 %"$div_call_236", %Int32* %"$res_div_12", align 4, !dbg !51 %"$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" @@ -516,6 +530,7 @@ entry: %"$consume_241" = sub i64 %"$gasrem_237", 1 store i64 %"$consume_241", i64* @_gasrem, align 8 %"$res_rem_13" = alloca %Int32, align 8 + call void @llvm.dbg.declare(metadata %Int32* %"$res_rem_13", metadata !52, metadata !DIExpression()), !dbg !53 %"$gasrem_242" = load i64, i64* @_gasrem, align 8 %"$gascmp_243" = icmp ugt i64 20, %"$gasrem_242" br i1 %"$gascmp_243", label %"$out_of_gas_244", label %"$have_gas_245" @@ -529,8 +544,8 @@ entry: store i64 %"$consume_246", i64* @_gasrem, align 8 %"$$a_10_247" = load %Int32, %Int32* %"$a_10", align 4 %"$$b_11_248" = load %Int32, %Int32* %"$b_11", align 4 - %"$rem_call_249" = call %Int32 @_rem_Int32(%Int32 %"$$a_10_247", %Int32 %"$$b_11_248"), !dbg !24 - store %Int32 %"$rem_call_249", %Int32* %"$res_rem_13", align 4, !dbg !24 + %"$rem_call_249" = call %Int32 @_rem_Int32(%Int32 %"$$a_10_247", %Int32 %"$$b_11_248"), !dbg !54 + store %Int32 %"$rem_call_249", %Int32* %"$res_rem_13", align 4, !dbg !54 %"$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" @@ -543,6 +558,7 @@ entry: %"$consume_254" = sub i64 %"$gasrem_250", 1 store i64 %"$consume_254", i64* @_gasrem, align 8 %res3 = alloca %Int32, align 8 + call void @llvm.dbg.declare(metadata %Int32* %res3, metadata !55, metadata !DIExpression()), !dbg !56 %"$gasrem_255" = load i64, i64* @_gasrem, align 8 %"$gascmp_256" = icmp ugt i64 4, %"$gasrem_255" br i1 %"$gascmp_256", label %"$out_of_gas_257", label %"$have_gas_258" @@ -556,8 +572,8 @@ entry: store i64 %"$consume_259", i64* @_gasrem, align 8 %"$$res_div_12_260" = load %Int32, %Int32* %"$res_div_12", align 4 %"$$res_rem_13_261" = load %Int32, %Int32* %"$res_rem_13", align 4 - %"$add_call_262" = call %Int32 @_add_Int32(%Int32 %"$$res_div_12_260", %Int32 %"$$res_rem_13_261"), !dbg !25 - store %Int32 %"$add_call_262", %Int32* %res3, align 4, !dbg !25 + %"$add_call_262" = call %Int32 @_add_Int32(%Int32 %"$$res_div_12_260", %Int32 %"$$res_rem_13_261"), !dbg !57 + store %Int32 %"$add_call_262", %Int32* %res3, align 4, !dbg !57 %"$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" @@ -570,6 +586,7 @@ entry: %"$consume_267" = sub i64 %"$gasrem_263", 1 store i64 %"$consume_267", i64* @_gasrem, align 8 %"$a_14" = alloca %Int32, align 8 + call void @llvm.dbg.declare(metadata %Int32* %"$a_14", metadata !58, metadata !DIExpression()), !dbg !59 %"$gasrem_268" = load i64, i64* @_gasrem, align 8 %"$gascmp_269" = icmp ugt i64 1, %"$gasrem_268" br i1 %"$gascmp_269", label %"$out_of_gas_270", label %"$have_gas_271" @@ -581,7 +598,7 @@ entry: "$have_gas_271": ; preds = %"$out_of_gas_270", %"$have_gas_266" %"$consume_272" = sub i64 %"$gasrem_268", 1 store i64 %"$consume_272", i64* @_gasrem, align 8 - store %Int32 { i32 10 }, %Int32* %"$a_14", align 4, !dbg !26 + store %Int32 { i32 10 }, %Int32* %"$a_14", align 4, !dbg !60 %"$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" @@ -594,6 +611,7 @@ entry: %"$consume_277" = sub i64 %"$gasrem_273", 1 store i64 %"$consume_277", i64* @_gasrem, align 8 %"$b_15" = alloca %Int32, align 8 + call void @llvm.dbg.declare(metadata %Int32* %"$b_15", metadata !61, metadata !DIExpression()), !dbg !62 %"$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" @@ -605,7 +623,7 @@ entry: "$have_gas_281": ; preds = %"$out_of_gas_280", %"$have_gas_276" %"$consume_282" = sub i64 %"$gasrem_278", 1 store i64 %"$consume_282", i64* @_gasrem, align 8 - store %Int32 { i32 3 }, %Int32* %"$b_15", align 4, !dbg !27 + store %Int32 { i32 3 }, %Int32* %"$b_15", align 4, !dbg !63 %"$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" @@ -618,6 +636,7 @@ entry: %"$consume_287" = sub i64 %"$gasrem_283", 1 store i64 %"$consume_287", i64* @_gasrem, align 8 %"$res_div_16" = alloca %Int32, align 8 + call void @llvm.dbg.declare(metadata %Int32* %"$res_div_16", metadata !64, metadata !DIExpression()), !dbg !65 %"$gasrem_288" = load i64, i64* @_gasrem, align 8 %"$gascmp_289" = icmp ugt i64 20, %"$gasrem_288" br i1 %"$gascmp_289", label %"$out_of_gas_290", label %"$have_gas_291" @@ -631,8 +650,8 @@ entry: store i64 %"$consume_292", i64* @_gasrem, align 8 %"$$a_14_293" = load %Int32, %Int32* %"$a_14", align 4 %"$$b_15_294" = load %Int32, %Int32* %"$b_15", align 4 - %"$div_call_295" = call %Int32 @_div_Int32(%Int32 %"$$a_14_293", %Int32 %"$$b_15_294"), !dbg !28 - store %Int32 %"$div_call_295", %Int32* %"$res_div_16", align 4, !dbg !28 + %"$div_call_295" = call %Int32 @_div_Int32(%Int32 %"$$a_14_293", %Int32 %"$$b_15_294"), !dbg !66 + store %Int32 %"$div_call_295", %Int32* %"$res_div_16", align 4, !dbg !66 %"$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" @@ -645,6 +664,7 @@ entry: %"$consume_300" = sub i64 %"$gasrem_296", 1 store i64 %"$consume_300", i64* @_gasrem, align 8 %"$res_rem_17" = alloca %Int32, align 8 + call void @llvm.dbg.declare(metadata %Int32* %"$res_rem_17", metadata !67, metadata !DIExpression()), !dbg !68 %"$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" @@ -658,8 +678,8 @@ entry: store i64 %"$consume_305", i64* @_gasrem, align 8 %"$$a_14_306" = load %Int32, %Int32* %"$a_14", align 4 %"$$b_15_307" = load %Int32, %Int32* %"$b_15", align 4 - %"$rem_call_308" = call %Int32 @_rem_Int32(%Int32 %"$$a_14_306", %Int32 %"$$b_15_307"), !dbg !29 - store %Int32 %"$rem_call_308", %Int32* %"$res_rem_17", align 4, !dbg !29 + %"$rem_call_308" = call %Int32 @_rem_Int32(%Int32 %"$$a_14_306", %Int32 %"$$b_15_307"), !dbg !69 + store %Int32 %"$rem_call_308", %Int32* %"$res_rem_17", align 4, !dbg !69 %"$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" @@ -672,6 +692,7 @@ entry: %"$consume_313" = sub i64 %"$gasrem_309", 1 store i64 %"$consume_313", i64* @_gasrem, align 8 %res4 = alloca %Int32, align 8 + call void @llvm.dbg.declare(metadata %Int32* %res4, metadata !70, metadata !DIExpression()), !dbg !71 %"$gasrem_314" = load i64, i64* @_gasrem, align 8 %"$gascmp_315" = icmp ugt i64 4, %"$gasrem_314" br i1 %"$gascmp_315", label %"$out_of_gas_316", label %"$have_gas_317" @@ -685,8 +706,8 @@ entry: store i64 %"$consume_318", i64* @_gasrem, align 8 %"$$res_div_16_319" = load %Int32, %Int32* %"$res_div_16", align 4 %"$$res_rem_17_320" = load %Int32, %Int32* %"$res_rem_17", align 4 - %"$add_call_321" = call %Int32 @_add_Int32(%Int32 %"$$res_div_16_319", %Int32 %"$$res_rem_17_320"), !dbg !30 - store %Int32 %"$add_call_321", %Int32* %res4, align 4, !dbg !30 + %"$add_call_321" = call %Int32 @_add_Int32(%Int32 %"$$res_div_16_319", %Int32 %"$$res_rem_17_320"), !dbg !72 + store %Int32 %"$add_call_321", %Int32* %res4, align 4, !dbg !72 %"$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" @@ -699,6 +720,7 @@ entry: %"$consume_326" = sub i64 %"$gasrem_322", 1 store i64 %"$consume_326", i64* @_gasrem, align 8 %res5 = alloca %Int32, align 8 + call void @llvm.dbg.declare(metadata %Int32* %res5, metadata !73, metadata !DIExpression()), !dbg !74 %"$gasrem_327" = load i64, i64* @_gasrem, align 8 %"$gascmp_328" = icmp ugt i64 4, %"$gasrem_327" br i1 %"$gascmp_328", label %"$out_of_gas_329", label %"$have_gas_330" @@ -712,8 +734,8 @@ entry: store i64 %"$consume_331", i64* @_gasrem, align 8 %"$res1_332" = load %Int32, %Int32* %res1, align 4 %"$res2_333" = load %Int32, %Int32* %res2, align 4 - %"$add_call_334" = call %Int32 @_add_Int32(%Int32 %"$res1_332", %Int32 %"$res2_333"), !dbg !31 - store %Int32 %"$add_call_334", %Int32* %res5, align 4, !dbg !31 + %"$add_call_334" = call %Int32 @_add_Int32(%Int32 %"$res1_332", %Int32 %"$res2_333"), !dbg !75 + store %Int32 %"$add_call_334", %Int32* %res5, align 4, !dbg !75 %"$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" @@ -726,6 +748,7 @@ entry: %"$consume_339" = sub i64 %"$gasrem_335", 1 store i64 %"$consume_339", i64* @_gasrem, align 8 %res6 = alloca %Int32, align 8 + call void @llvm.dbg.declare(metadata %Int32* %res6, metadata !76, metadata !DIExpression()), !dbg !77 %"$gasrem_340" = load i64, i64* @_gasrem, align 8 %"$gascmp_341" = icmp ugt i64 4, %"$gasrem_340" br i1 %"$gascmp_341", label %"$out_of_gas_342", label %"$have_gas_343" @@ -739,8 +762,8 @@ entry: store i64 %"$consume_344", i64* @_gasrem, align 8 %"$res5_345" = load %Int32, %Int32* %res5, align 4 %"$res3_346" = load %Int32, %Int32* %res3, align 4 - %"$add_call_347" = call %Int32 @_add_Int32(%Int32 %"$res5_345", %Int32 %"$res3_346"), !dbg !32 - store %Int32 %"$add_call_347", %Int32* %res6, align 4, !dbg !32 + %"$add_call_347" = call %Int32 @_add_Int32(%Int32 %"$res5_345", %Int32 %"$res3_346"), !dbg !78 + store %Int32 %"$add_call_347", %Int32* %res6, align 4, !dbg !78 %"$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" @@ -753,6 +776,7 @@ entry: %"$consume_352" = sub i64 %"$gasrem_348", 1 store i64 %"$consume_352", i64* @_gasrem, align 8 %res7 = alloca %Int32, align 8 + call void @llvm.dbg.declare(metadata %Int32* %res7, metadata !79, metadata !DIExpression()), !dbg !80 %"$gasrem_353" = load i64, i64* @_gasrem, align 8 %"$gascmp_354" = icmp ugt i64 4, %"$gasrem_353" br i1 %"$gascmp_354", label %"$out_of_gas_355", label %"$have_gas_356" @@ -766,8 +790,8 @@ entry: store i64 %"$consume_357", i64* @_gasrem, align 8 %"$res4_358" = load %Int32, %Int32* %res4, align 4 %"$res6_359" = load %Int32, %Int32* %res6, align 4 - %"$add_call_360" = call %Int32 @_add_Int32(%Int32 %"$res4_358", %Int32 %"$res6_359"), !dbg !33 - store %Int32 %"$add_call_360", %Int32* %res7, align 4, !dbg !33 + %"$add_call_360" = call %Int32 @_add_Int32(%Int32 %"$res4_358", %Int32 %"$res6_359"), !dbg !81 + store %Int32 %"$add_call_360", %Int32* %res7, align 4, !dbg !81 %"$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" @@ -780,11 +804,14 @@ entry: %"$consume_365" = sub i64 %"$gasrem_361", 1 store i64 %"$consume_365", i64* @_gasrem, align 8 %"$res7_366" = load %Int32, %Int32* %res7, align 4 - store %Int32 %"$res7_366", %Int32* %"$expr_18", align 4, !dbg !34 + store %Int32 %"$res7_366", %Int32* %"$expr_18", align 4, !dbg !82 %"$$expr_18_367" = load %Int32, %Int32* %"$expr_18", align 4 ret %Int32 %"$$expr_18_367" } +; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn +declare void @llvm.dbg.declare(metadata, metadata, metadata) #0 + declare %Int32 @_div_Int32(%Int32, %Int32) declare %Int32 @_rem_Int32(%Int32, %Int32) @@ -804,41 +831,91 @@ entry: ret void } +attributes #0 = { nocallback nofree nosync nounwind readnone speculatable willreturn } + !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) +!1 = distinct !DICompileUnit(language: DW_LANG_C89, file: !2, producer: "Scilla Compiler", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false) !2 = !DIFile(filename: "sdivtests1.scilexp", directory: "codegen/expr") -!3 = !{} -!4 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !5, file: !5, type: !6, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!5 = !DIFile(filename: ".", directory: ".") -!6 = !DISubroutineType(types: !7) -!7 = !{!8} -!8 = !DIBasicType(tag: DW_TAG_unspecified_type, name: "void") -!9 = !DILocation(line: 0, scope: !4) -!10 = distinct !DISubprogram(name: "_scilla_expr_fun", linkageName: "_scilla_expr_fun", scope: !2, file: !2, line: 2, type: !6, scopeLine: 2, spFlags: DISPFlagDefinition, unit: !1, retainedNodes: !3) -!11 = !DILocation(line: 2, column: 9, scope: !10) -!12 = !DILocation(line: 3, column: 9, scope: !10) -!13 = !DILocation(line: 5, column: 15, scope: !10) -!14 = !DILocation(line: 6, column: 15, scope: !10) -!15 = !DILocation(line: 7, column: 12, scope: !10) -!16 = !DILocation(line: 9, column: 9, scope: !10) -!17 = !DILocation(line: 10, column: 9, scope: !10) -!18 = !DILocation(line: 12, column: 15, scope: !10) -!19 = !DILocation(line: 13, column: 15, scope: !10) -!20 = !DILocation(line: 14, column: 12, scope: !10) -!21 = !DILocation(line: 16, column: 9, scope: !10) -!22 = !DILocation(line: 17, column: 9, scope: !10) -!23 = !DILocation(line: 19, column: 15, scope: !10) -!24 = !DILocation(line: 20, column: 15, scope: !10) -!25 = !DILocation(line: 21, column: 12, scope: !10) -!26 = !DILocation(line: 23, column: 9, scope: !10) -!27 = !DILocation(line: 24, column: 9, scope: !10) -!28 = !DILocation(line: 26, column: 15, scope: !10) -!29 = !DILocation(line: 27, column: 15, scope: !10) -!30 = !DILocation(line: 28, column: 12, scope: !10) -!31 = !DILocation(line: 30, column: 12, scope: !10) -!32 = !DILocation(line: 31, column: 12, scope: !10) -!33 = !DILocation(line: 32, column: 12, scope: !10) -!34 = !DILocation(line: 34, column: 1, scope: !10) +!3 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !4, file: !4, type: !5, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!4 = !DIFile(filename: ".", directory: ".") +!5 = !DISubroutineType(types: !6) +!6 = !{!7} +!7 = !DIBasicType(tag: DW_TAG_unspecified_type, name: "void") +!8 = !{} +!9 = !DILocation(line: 0, scope: !3) +!10 = 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: !8) +!11 = !DILocalVariable(name: "$expr_18", scope: !10, file: !2, line: 2, type: !12) +!12 = !DIBasicType(name: "Int32", size: 4) +!13 = !DILocation(line: 2, column: 9, scope: !10) +!14 = !DILocalVariable(name: "a", scope: !10, file: !2, line: 2, type: !12) +!15 = !DILocation(line: 2, column: 5, scope: !10) +!16 = !DILocalVariable(name: "b", scope: !10, file: !2, line: 3, type: !12) +!17 = !DILocation(line: 3, column: 5, scope: !10) +!18 = !DILocation(line: 3, column: 9, scope: !10) +!19 = !DILocalVariable(name: "res_div", scope: !10, file: !2, line: 5, type: !12) +!20 = !DILocation(line: 5, column: 5, scope: !10) +!21 = !DILocation(line: 5, column: 15, scope: !10) +!22 = !DILocalVariable(name: "res_rem", scope: !10, file: !2, line: 6, type: !12) +!23 = !DILocation(line: 6, column: 5, scope: !10) +!24 = !DILocation(line: 6, column: 15, scope: !10) +!25 = !DILocalVariable(name: "res1", scope: !10, file: !2, line: 7, type: !12) +!26 = !DILocation(line: 7, column: 5, scope: !10) +!27 = !DILocation(line: 7, column: 12, scope: !10) +!28 = !DILocalVariable(name: "$a_6", scope: !10, file: !2, line: 9, type: !12) +!29 = !DILocation(line: 9, column: 5, scope: !10) +!30 = !DILocation(line: 9, column: 9, scope: !10) +!31 = !DILocalVariable(name: "$b_7", scope: !10, file: !2, line: 10, type: !12) +!32 = !DILocation(line: 10, column: 5, scope: !10) +!33 = !DILocation(line: 10, column: 9, scope: !10) +!34 = !DILocalVariable(name: "$res_div_8", scope: !10, file: !2, line: 12, type: !12) +!35 = !DILocation(line: 12, column: 5, scope: !10) +!36 = !DILocation(line: 12, column: 15, scope: !10) +!37 = !DILocalVariable(name: "$res_rem_9", scope: !10, file: !2, line: 13, type: !12) +!38 = !DILocation(line: 13, column: 5, scope: !10) +!39 = !DILocation(line: 13, column: 15, scope: !10) +!40 = !DILocalVariable(name: "res2", scope: !10, file: !2, line: 14, type: !12) +!41 = !DILocation(line: 14, column: 5, scope: !10) +!42 = !DILocation(line: 14, column: 12, scope: !10) +!43 = !DILocalVariable(name: "$a_10", scope: !10, file: !2, line: 16, type: !12) +!44 = !DILocation(line: 16, column: 5, scope: !10) +!45 = !DILocation(line: 16, column: 9, scope: !10) +!46 = !DILocalVariable(name: "$b_11", scope: !10, file: !2, line: 17, type: !12) +!47 = !DILocation(line: 17, column: 5, scope: !10) +!48 = !DILocation(line: 17, column: 9, scope: !10) +!49 = !DILocalVariable(name: "$res_div_12", scope: !10, file: !2, line: 19, type: !12) +!50 = !DILocation(line: 19, column: 5, scope: !10) +!51 = !DILocation(line: 19, column: 15, scope: !10) +!52 = !DILocalVariable(name: "$res_rem_13", scope: !10, file: !2, line: 20, type: !12) +!53 = !DILocation(line: 20, column: 5, scope: !10) +!54 = !DILocation(line: 20, column: 15, scope: !10) +!55 = !DILocalVariable(name: "res3", scope: !10, file: !2, line: 21, type: !12) +!56 = !DILocation(line: 21, column: 5, scope: !10) +!57 = !DILocation(line: 21, column: 12, scope: !10) +!58 = !DILocalVariable(name: "$a_14", scope: !10, file: !2, line: 23, type: !12) +!59 = !DILocation(line: 23, column: 5, scope: !10) +!60 = !DILocation(line: 23, column: 9, scope: !10) +!61 = !DILocalVariable(name: "$b_15", scope: !10, file: !2, line: 24, type: !12) +!62 = !DILocation(line: 24, column: 5, scope: !10) +!63 = !DILocation(line: 24, column: 9, scope: !10) +!64 = !DILocalVariable(name: "$res_div_16", scope: !10, file: !2, line: 26, type: !12) +!65 = !DILocation(line: 26, column: 5, scope: !10) +!66 = !DILocation(line: 26, column: 15, scope: !10) +!67 = !DILocalVariable(name: "$res_rem_17", scope: !10, file: !2, line: 27, type: !12) +!68 = !DILocation(line: 27, column: 5, scope: !10) +!69 = !DILocation(line: 27, column: 15, scope: !10) +!70 = !DILocalVariable(name: "res4", scope: !10, file: !2, line: 28, type: !12) +!71 = !DILocation(line: 28, column: 5, scope: !10) +!72 = !DILocation(line: 28, column: 12, scope: !10) +!73 = !DILocalVariable(name: "res5", scope: !10, file: !2, line: 30, type: !12) +!74 = !DILocation(line: 30, column: 5, scope: !10) +!75 = !DILocation(line: 30, column: 12, scope: !10) +!76 = !DILocalVariable(name: "res6", scope: !10, file: !2, line: 31, type: !12) +!77 = !DILocation(line: 31, column: 5, scope: !10) +!78 = !DILocation(line: 31, column: 12, scope: !10) +!79 = !DILocalVariable(name: "res7", scope: !10, file: !2, line: 32, type: !12) +!80 = !DILocation(line: 32, column: 5, scope: !10) +!81 = !DILocation(line: 32, column: 12, scope: !10) +!82 = !DILocation(line: 34, column: 1, scope: !10) diff --git a/testsuite/expr/sdivtests1.ll b/testsuite/expr/sdivtests1.ll index abb76f10..685d623f 100644 --- a/testsuite/expr/sdivtests1.ll +++ b/testsuite/expr/sdivtests1.ll @@ -35,7 +35,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-pc-linux-gnu" +target triple = "x86_64-unknown-linux-gnu" %"$TyDescrTy_PrimTyp_19" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/testsuite/expr/sdivtests2.dbg.ll b/testsuite/expr/sdivtests2.dbg.ll index d6a780cb..08135139 100644 --- a/testsuite/expr/sdivtests2.dbg.ll +++ b/testsuite/expr/sdivtests2.dbg.ll @@ -35,7 +35,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-pc-linux-gnu" +target triple = "x86_64-unknown-linux-gnu" %"$TyDescrTy_PrimTyp_19" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } @@ -89,7 +89,7 @@ target triple = "x86_64-pc-linux-gnu" @_transition_parameters = constant [0 x %"$TransDescr_373"] zeroinitializer @_transition_parameters_length = constant i32 0 -define void @_init_libs() !dbg !4 { +define void @_init_libs() !dbg !3 { entry: %"$gasrem_56" = load i64, i64* @_gasrem, align 8 %"$gascmp_57" = icmp ugt i64 5, %"$gasrem_56" @@ -171,6 +171,7 @@ declare void @_out_of_gas() define internal %Int32 @_scilla_expr_fun(i8* %0) !dbg !10 { entry: %"$expr_18" = alloca %Int32, align 8 + call void @llvm.dbg.declare(metadata %Int32* %"$expr_18", metadata !11, metadata !DIExpression()), !dbg !13 %"$gasrem_86" = load i64, i64* @_gasrem, align 8 %"$gascmp_87" = icmp ugt i64 1, %"$gasrem_86" br i1 %"$gascmp_87", label %"$out_of_gas_88", label %"$have_gas_89" @@ -183,6 +184,7 @@ entry: %"$consume_90" = sub i64 %"$gasrem_86", 1 store i64 %"$consume_90", i64* @_gasrem, align 8 %b = alloca %Int32, align 8 + call void @llvm.dbg.declare(metadata %Int32* %b, metadata !14, metadata !DIExpression()), !dbg !15 %"$gasrem_91" = load i64, i64* @_gasrem, align 8 %"$gascmp_92" = icmp ugt i64 1, %"$gasrem_91" br i1 %"$gascmp_92", label %"$out_of_gas_93", label %"$have_gas_94" @@ -194,7 +196,7 @@ entry: "$have_gas_94": ; preds = %"$out_of_gas_93", %"$have_gas_89" %"$consume_95" = sub i64 %"$gasrem_91", 1 store i64 %"$consume_95", i64* @_gasrem, align 8 - store %Int32 { i32 -10 }, %Int32* %b, align 4, !dbg !11 + store %Int32 { i32 -10 }, %Int32* %b, align 4, !dbg !13 %"$gasrem_96" = load i64, i64* @_gasrem, align 8 %"$gascmp_97" = icmp ugt i64 1, %"$gasrem_96" br i1 %"$gascmp_97", label %"$out_of_gas_98", label %"$have_gas_99" @@ -207,6 +209,7 @@ entry: %"$consume_100" = sub i64 %"$gasrem_96", 1 store i64 %"$consume_100", i64* @_gasrem, align 8 %a = alloca %Int32, align 8 + call void @llvm.dbg.declare(metadata %Int32* %a, metadata !16, metadata !DIExpression()), !dbg !17 %"$gasrem_101" = load i64, i64* @_gasrem, align 8 %"$gascmp_102" = icmp ugt i64 1, %"$gasrem_101" br i1 %"$gascmp_102", label %"$out_of_gas_103", label %"$have_gas_104" @@ -218,7 +221,7 @@ entry: "$have_gas_104": ; preds = %"$out_of_gas_103", %"$have_gas_99" %"$consume_105" = sub i64 %"$gasrem_101", 1 store i64 %"$consume_105", i64* @_gasrem, align 8 - store %Int32 { i32 3 }, %Int32* %a, align 4, !dbg !12 + store %Int32 { i32 3 }, %Int32* %a, align 4, !dbg !18 %"$gasrem_106" = load i64, i64* @_gasrem, align 8 %"$gascmp_107" = icmp ugt i64 1, %"$gasrem_106" br i1 %"$gascmp_107", label %"$out_of_gas_108", label %"$have_gas_109" @@ -231,6 +234,7 @@ entry: %"$consume_110" = sub i64 %"$gasrem_106", 1 store i64 %"$consume_110", i64* @_gasrem, align 8 %res_div = alloca %Int32, align 8 + call void @llvm.dbg.declare(metadata %Int32* %res_div, metadata !19, metadata !DIExpression()), !dbg !20 %"$gasrem_111" = load i64, i64* @_gasrem, align 8 %"$gascmp_112" = icmp ugt i64 20, %"$gasrem_111" br i1 %"$gascmp_112", label %"$out_of_gas_113", label %"$have_gas_114" @@ -244,8 +248,8 @@ entry: store i64 %"$consume_115", i64* @_gasrem, align 8 %"$a_116" = load %Int32, %Int32* %a, align 4 %"$b_117" = load %Int32, %Int32* %b, align 4 - %"$div_call_118" = call %Int32 @_div_Int32(%Int32 %"$a_116", %Int32 %"$b_117"), !dbg !13 - store %Int32 %"$div_call_118", %Int32* %res_div, align 4, !dbg !13 + %"$div_call_118" = call %Int32 @_div_Int32(%Int32 %"$a_116", %Int32 %"$b_117"), !dbg !21 + store %Int32 %"$div_call_118", %Int32* %res_div, align 4, !dbg !21 %"$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" @@ -258,6 +262,7 @@ entry: %"$consume_123" = sub i64 %"$gasrem_119", 1 store i64 %"$consume_123", i64* @_gasrem, align 8 %res_rem = alloca %Int32, align 8 + call void @llvm.dbg.declare(metadata %Int32* %res_rem, metadata !22, metadata !DIExpression()), !dbg !23 %"$gasrem_124" = load i64, i64* @_gasrem, align 8 %"$gascmp_125" = icmp ugt i64 20, %"$gasrem_124" br i1 %"$gascmp_125", label %"$out_of_gas_126", label %"$have_gas_127" @@ -271,8 +276,8 @@ entry: store i64 %"$consume_128", i64* @_gasrem, align 8 %"$a_129" = load %Int32, %Int32* %a, align 4 %"$b_130" = load %Int32, %Int32* %b, align 4 - %"$rem_call_131" = call %Int32 @_rem_Int32(%Int32 %"$a_129", %Int32 %"$b_130"), !dbg !14 - store %Int32 %"$rem_call_131", %Int32* %res_rem, align 4, !dbg !14 + %"$rem_call_131" = call %Int32 @_rem_Int32(%Int32 %"$a_129", %Int32 %"$b_130"), !dbg !24 + store %Int32 %"$rem_call_131", %Int32* %res_rem, align 4, !dbg !24 %"$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" @@ -285,6 +290,7 @@ entry: %"$consume_136" = sub i64 %"$gasrem_132", 1 store i64 %"$consume_136", i64* @_gasrem, align 8 %res1 = alloca %Int32, align 8 + call void @llvm.dbg.declare(metadata %Int32* %res1, metadata !25, metadata !DIExpression()), !dbg !26 %"$gasrem_137" = load i64, i64* @_gasrem, align 8 %"$gascmp_138" = icmp ugt i64 4, %"$gasrem_137" br i1 %"$gascmp_138", label %"$out_of_gas_139", label %"$have_gas_140" @@ -298,8 +304,8 @@ entry: store i64 %"$consume_141", i64* @_gasrem, align 8 %"$res_div_142" = load %Int32, %Int32* %res_div, align 4 %"$res_rem_143" = load %Int32, %Int32* %res_rem, align 4 - %"$add_call_144" = call %Int32 @_add_Int32(%Int32 %"$res_div_142", %Int32 %"$res_rem_143"), !dbg !15 - store %Int32 %"$add_call_144", %Int32* %res1, align 4, !dbg !15 + %"$add_call_144" = call %Int32 @_add_Int32(%Int32 %"$res_div_142", %Int32 %"$res_rem_143"), !dbg !27 + store %Int32 %"$add_call_144", %Int32* %res1, align 4, !dbg !27 %"$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" @@ -312,6 +318,7 @@ entry: %"$consume_149" = sub i64 %"$gasrem_145", 1 store i64 %"$consume_149", i64* @_gasrem, align 8 %"$b_6" = alloca %Int32, align 8 + call void @llvm.dbg.declare(metadata %Int32* %"$b_6", metadata !28, metadata !DIExpression()), !dbg !29 %"$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" @@ -323,7 +330,7 @@ entry: "$have_gas_153": ; preds = %"$out_of_gas_152", %"$have_gas_148" %"$consume_154" = sub i64 %"$gasrem_150", 1 store i64 %"$consume_154", i64* @_gasrem, align 8 - store %Int32 { i32 10 }, %Int32* %"$b_6", align 4, !dbg !16 + store %Int32 { i32 10 }, %Int32* %"$b_6", align 4, !dbg !30 %"$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" @@ -336,6 +343,7 @@ entry: %"$consume_159" = sub i64 %"$gasrem_155", 1 store i64 %"$consume_159", i64* @_gasrem, align 8 %"$a_7" = alloca %Int32, align 8 + call void @llvm.dbg.declare(metadata %Int32* %"$a_7", metadata !31, metadata !DIExpression()), !dbg !32 %"$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" @@ -347,7 +355,7 @@ entry: "$have_gas_163": ; preds = %"$out_of_gas_162", %"$have_gas_158" %"$consume_164" = sub i64 %"$gasrem_160", 1 store i64 %"$consume_164", i64* @_gasrem, align 8 - store %Int32 { i32 -3 }, %Int32* %"$a_7", align 4, !dbg !17 + store %Int32 { i32 -3 }, %Int32* %"$a_7", align 4, !dbg !33 %"$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" @@ -360,6 +368,7 @@ entry: %"$consume_169" = sub i64 %"$gasrem_165", 1 store i64 %"$consume_169", i64* @_gasrem, align 8 %"$res_div_8" = alloca %Int32, align 8 + call void @llvm.dbg.declare(metadata %Int32* %"$res_div_8", metadata !34, metadata !DIExpression()), !dbg !35 %"$gasrem_170" = load i64, i64* @_gasrem, align 8 %"$gascmp_171" = icmp ugt i64 20, %"$gasrem_170" br i1 %"$gascmp_171", label %"$out_of_gas_172", label %"$have_gas_173" @@ -373,8 +382,8 @@ entry: store i64 %"$consume_174", i64* @_gasrem, align 8 %"$$a_7_175" = load %Int32, %Int32* %"$a_7", align 4 %"$$b_6_176" = load %Int32, %Int32* %"$b_6", align 4 - %"$div_call_177" = call %Int32 @_div_Int32(%Int32 %"$$a_7_175", %Int32 %"$$b_6_176"), !dbg !18 - store %Int32 %"$div_call_177", %Int32* %"$res_div_8", align 4, !dbg !18 + %"$div_call_177" = call %Int32 @_div_Int32(%Int32 %"$$a_7_175", %Int32 %"$$b_6_176"), !dbg !36 + store %Int32 %"$div_call_177", %Int32* %"$res_div_8", align 4, !dbg !36 %"$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" @@ -387,6 +396,7 @@ entry: %"$consume_182" = sub i64 %"$gasrem_178", 1 store i64 %"$consume_182", i64* @_gasrem, align 8 %"$res_rem_9" = alloca %Int32, align 8 + call void @llvm.dbg.declare(metadata %Int32* %"$res_rem_9", metadata !37, metadata !DIExpression()), !dbg !38 %"$gasrem_183" = load i64, i64* @_gasrem, align 8 %"$gascmp_184" = icmp ugt i64 20, %"$gasrem_183" br i1 %"$gascmp_184", label %"$out_of_gas_185", label %"$have_gas_186" @@ -400,8 +410,8 @@ entry: store i64 %"$consume_187", i64* @_gasrem, align 8 %"$$a_7_188" = load %Int32, %Int32* %"$a_7", align 4 %"$$b_6_189" = load %Int32, %Int32* %"$b_6", align 4 - %"$rem_call_190" = call %Int32 @_rem_Int32(%Int32 %"$$a_7_188", %Int32 %"$$b_6_189"), !dbg !19 - store %Int32 %"$rem_call_190", %Int32* %"$res_rem_9", align 4, !dbg !19 + %"$rem_call_190" = call %Int32 @_rem_Int32(%Int32 %"$$a_7_188", %Int32 %"$$b_6_189"), !dbg !39 + store %Int32 %"$rem_call_190", %Int32* %"$res_rem_9", align 4, !dbg !39 %"$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" @@ -414,6 +424,7 @@ entry: %"$consume_195" = sub i64 %"$gasrem_191", 1 store i64 %"$consume_195", i64* @_gasrem, align 8 %res2 = alloca %Int32, align 8 + call void @llvm.dbg.declare(metadata %Int32* %res2, metadata !40, metadata !DIExpression()), !dbg !41 %"$gasrem_196" = load i64, i64* @_gasrem, align 8 %"$gascmp_197" = icmp ugt i64 4, %"$gasrem_196" br i1 %"$gascmp_197", label %"$out_of_gas_198", label %"$have_gas_199" @@ -427,8 +438,8 @@ entry: store i64 %"$consume_200", i64* @_gasrem, align 8 %"$$res_div_8_201" = load %Int32, %Int32* %"$res_div_8", align 4 %"$$res_rem_9_202" = load %Int32, %Int32* %"$res_rem_9", align 4 - %"$add_call_203" = call %Int32 @_add_Int32(%Int32 %"$$res_div_8_201", %Int32 %"$$res_rem_9_202"), !dbg !20 - store %Int32 %"$add_call_203", %Int32* %res2, align 4, !dbg !20 + %"$add_call_203" = call %Int32 @_add_Int32(%Int32 %"$$res_div_8_201", %Int32 %"$$res_rem_9_202"), !dbg !42 + store %Int32 %"$add_call_203", %Int32* %res2, align 4, !dbg !42 %"$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" @@ -441,6 +452,7 @@ entry: %"$consume_208" = sub i64 %"$gasrem_204", 1 store i64 %"$consume_208", i64* @_gasrem, align 8 %"$b_10" = alloca %Int32, align 8 + call void @llvm.dbg.declare(metadata %Int32* %"$b_10", metadata !43, metadata !DIExpression()), !dbg !44 %"$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" @@ -452,7 +464,7 @@ entry: "$have_gas_212": ; preds = %"$out_of_gas_211", %"$have_gas_207" %"$consume_213" = sub i64 %"$gasrem_209", 1 store i64 %"$consume_213", i64* @_gasrem, align 8 - store %Int32 { i32 -10 }, %Int32* %"$b_10", align 4, !dbg !21 + store %Int32 { i32 -10 }, %Int32* %"$b_10", align 4, !dbg !45 %"$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" @@ -465,6 +477,7 @@ entry: %"$consume_218" = sub i64 %"$gasrem_214", 1 store i64 %"$consume_218", i64* @_gasrem, align 8 %"$a_11" = alloca %Int32, align 8 + call void @llvm.dbg.declare(metadata %Int32* %"$a_11", metadata !46, metadata !DIExpression()), !dbg !47 %"$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" @@ -476,7 +489,7 @@ entry: "$have_gas_222": ; preds = %"$out_of_gas_221", %"$have_gas_217" %"$consume_223" = sub i64 %"$gasrem_219", 1 store i64 %"$consume_223", i64* @_gasrem, align 8 - store %Int32 { i32 -3 }, %Int32* %"$a_11", align 4, !dbg !22 + store %Int32 { i32 -3 }, %Int32* %"$a_11", align 4, !dbg !48 %"$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" @@ -489,6 +502,7 @@ entry: %"$consume_228" = sub i64 %"$gasrem_224", 1 store i64 %"$consume_228", i64* @_gasrem, align 8 %"$res_div_12" = alloca %Int32, align 8 + call void @llvm.dbg.declare(metadata %Int32* %"$res_div_12", metadata !49, metadata !DIExpression()), !dbg !50 %"$gasrem_229" = load i64, i64* @_gasrem, align 8 %"$gascmp_230" = icmp ugt i64 20, %"$gasrem_229" br i1 %"$gascmp_230", label %"$out_of_gas_231", label %"$have_gas_232" @@ -502,8 +516,8 @@ entry: store i64 %"$consume_233", i64* @_gasrem, align 8 %"$$a_11_234" = load %Int32, %Int32* %"$a_11", align 4 %"$$b_10_235" = load %Int32, %Int32* %"$b_10", align 4 - %"$div_call_236" = call %Int32 @_div_Int32(%Int32 %"$$a_11_234", %Int32 %"$$b_10_235"), !dbg !23 - store %Int32 %"$div_call_236", %Int32* %"$res_div_12", align 4, !dbg !23 + %"$div_call_236" = call %Int32 @_div_Int32(%Int32 %"$$a_11_234", %Int32 %"$$b_10_235"), !dbg !51 + store %Int32 %"$div_call_236", %Int32* %"$res_div_12", align 4, !dbg !51 %"$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" @@ -516,6 +530,7 @@ entry: %"$consume_241" = sub i64 %"$gasrem_237", 1 store i64 %"$consume_241", i64* @_gasrem, align 8 %"$res_rem_13" = alloca %Int32, align 8 + call void @llvm.dbg.declare(metadata %Int32* %"$res_rem_13", metadata !52, metadata !DIExpression()), !dbg !53 %"$gasrem_242" = load i64, i64* @_gasrem, align 8 %"$gascmp_243" = icmp ugt i64 20, %"$gasrem_242" br i1 %"$gascmp_243", label %"$out_of_gas_244", label %"$have_gas_245" @@ -529,8 +544,8 @@ entry: store i64 %"$consume_246", i64* @_gasrem, align 8 %"$$a_11_247" = load %Int32, %Int32* %"$a_11", align 4 %"$$b_10_248" = load %Int32, %Int32* %"$b_10", align 4 - %"$rem_call_249" = call %Int32 @_rem_Int32(%Int32 %"$$a_11_247", %Int32 %"$$b_10_248"), !dbg !24 - store %Int32 %"$rem_call_249", %Int32* %"$res_rem_13", align 4, !dbg !24 + %"$rem_call_249" = call %Int32 @_rem_Int32(%Int32 %"$$a_11_247", %Int32 %"$$b_10_248"), !dbg !54 + store %Int32 %"$rem_call_249", %Int32* %"$res_rem_13", align 4, !dbg !54 %"$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" @@ -543,6 +558,7 @@ entry: %"$consume_254" = sub i64 %"$gasrem_250", 1 store i64 %"$consume_254", i64* @_gasrem, align 8 %res3 = alloca %Int32, align 8 + call void @llvm.dbg.declare(metadata %Int32* %res3, metadata !55, metadata !DIExpression()), !dbg !56 %"$gasrem_255" = load i64, i64* @_gasrem, align 8 %"$gascmp_256" = icmp ugt i64 4, %"$gasrem_255" br i1 %"$gascmp_256", label %"$out_of_gas_257", label %"$have_gas_258" @@ -556,8 +572,8 @@ entry: store i64 %"$consume_259", i64* @_gasrem, align 8 %"$$res_div_12_260" = load %Int32, %Int32* %"$res_div_12", align 4 %"$$res_rem_13_261" = load %Int32, %Int32* %"$res_rem_13", align 4 - %"$add_call_262" = call %Int32 @_add_Int32(%Int32 %"$$res_div_12_260", %Int32 %"$$res_rem_13_261"), !dbg !25 - store %Int32 %"$add_call_262", %Int32* %res3, align 4, !dbg !25 + %"$add_call_262" = call %Int32 @_add_Int32(%Int32 %"$$res_div_12_260", %Int32 %"$$res_rem_13_261"), !dbg !57 + store %Int32 %"$add_call_262", %Int32* %res3, align 4, !dbg !57 %"$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" @@ -570,6 +586,7 @@ entry: %"$consume_267" = sub i64 %"$gasrem_263", 1 store i64 %"$consume_267", i64* @_gasrem, align 8 %"$b_14" = alloca %Int32, align 8 + call void @llvm.dbg.declare(metadata %Int32* %"$b_14", metadata !58, metadata !DIExpression()), !dbg !59 %"$gasrem_268" = load i64, i64* @_gasrem, align 8 %"$gascmp_269" = icmp ugt i64 1, %"$gasrem_268" br i1 %"$gascmp_269", label %"$out_of_gas_270", label %"$have_gas_271" @@ -581,7 +598,7 @@ entry: "$have_gas_271": ; preds = %"$out_of_gas_270", %"$have_gas_266" %"$consume_272" = sub i64 %"$gasrem_268", 1 store i64 %"$consume_272", i64* @_gasrem, align 8 - store %Int32 { i32 10 }, %Int32* %"$b_14", align 4, !dbg !26 + store %Int32 { i32 10 }, %Int32* %"$b_14", align 4, !dbg !60 %"$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" @@ -594,6 +611,7 @@ entry: %"$consume_277" = sub i64 %"$gasrem_273", 1 store i64 %"$consume_277", i64* @_gasrem, align 8 %"$a_15" = alloca %Int32, align 8 + call void @llvm.dbg.declare(metadata %Int32* %"$a_15", metadata !61, metadata !DIExpression()), !dbg !62 %"$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" @@ -605,7 +623,7 @@ entry: "$have_gas_281": ; preds = %"$out_of_gas_280", %"$have_gas_276" %"$consume_282" = sub i64 %"$gasrem_278", 1 store i64 %"$consume_282", i64* @_gasrem, align 8 - store %Int32 { i32 3 }, %Int32* %"$a_15", align 4, !dbg !27 + store %Int32 { i32 3 }, %Int32* %"$a_15", align 4, !dbg !63 %"$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" @@ -618,6 +636,7 @@ entry: %"$consume_287" = sub i64 %"$gasrem_283", 1 store i64 %"$consume_287", i64* @_gasrem, align 8 %"$res_div_16" = alloca %Int32, align 8 + call void @llvm.dbg.declare(metadata %Int32* %"$res_div_16", metadata !64, metadata !DIExpression()), !dbg !65 %"$gasrem_288" = load i64, i64* @_gasrem, align 8 %"$gascmp_289" = icmp ugt i64 20, %"$gasrem_288" br i1 %"$gascmp_289", label %"$out_of_gas_290", label %"$have_gas_291" @@ -631,8 +650,8 @@ entry: store i64 %"$consume_292", i64* @_gasrem, align 8 %"$$a_15_293" = load %Int32, %Int32* %"$a_15", align 4 %"$$b_14_294" = load %Int32, %Int32* %"$b_14", align 4 - %"$div_call_295" = call %Int32 @_div_Int32(%Int32 %"$$a_15_293", %Int32 %"$$b_14_294"), !dbg !28 - store %Int32 %"$div_call_295", %Int32* %"$res_div_16", align 4, !dbg !28 + %"$div_call_295" = call %Int32 @_div_Int32(%Int32 %"$$a_15_293", %Int32 %"$$b_14_294"), !dbg !66 + store %Int32 %"$div_call_295", %Int32* %"$res_div_16", align 4, !dbg !66 %"$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" @@ -645,6 +664,7 @@ entry: %"$consume_300" = sub i64 %"$gasrem_296", 1 store i64 %"$consume_300", i64* @_gasrem, align 8 %"$res_rem_17" = alloca %Int32, align 8 + call void @llvm.dbg.declare(metadata %Int32* %"$res_rem_17", metadata !67, metadata !DIExpression()), !dbg !68 %"$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" @@ -658,8 +678,8 @@ entry: store i64 %"$consume_305", i64* @_gasrem, align 8 %"$$a_15_306" = load %Int32, %Int32* %"$a_15", align 4 %"$$b_14_307" = load %Int32, %Int32* %"$b_14", align 4 - %"$rem_call_308" = call %Int32 @_rem_Int32(%Int32 %"$$a_15_306", %Int32 %"$$b_14_307"), !dbg !29 - store %Int32 %"$rem_call_308", %Int32* %"$res_rem_17", align 4, !dbg !29 + %"$rem_call_308" = call %Int32 @_rem_Int32(%Int32 %"$$a_15_306", %Int32 %"$$b_14_307"), !dbg !69 + store %Int32 %"$rem_call_308", %Int32* %"$res_rem_17", align 4, !dbg !69 %"$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" @@ -672,6 +692,7 @@ entry: %"$consume_313" = sub i64 %"$gasrem_309", 1 store i64 %"$consume_313", i64* @_gasrem, align 8 %res4 = alloca %Int32, align 8 + call void @llvm.dbg.declare(metadata %Int32* %res4, metadata !70, metadata !DIExpression()), !dbg !71 %"$gasrem_314" = load i64, i64* @_gasrem, align 8 %"$gascmp_315" = icmp ugt i64 4, %"$gasrem_314" br i1 %"$gascmp_315", label %"$out_of_gas_316", label %"$have_gas_317" @@ -685,8 +706,8 @@ entry: store i64 %"$consume_318", i64* @_gasrem, align 8 %"$$res_div_16_319" = load %Int32, %Int32* %"$res_div_16", align 4 %"$$res_rem_17_320" = load %Int32, %Int32* %"$res_rem_17", align 4 - %"$add_call_321" = call %Int32 @_add_Int32(%Int32 %"$$res_div_16_319", %Int32 %"$$res_rem_17_320"), !dbg !30 - store %Int32 %"$add_call_321", %Int32* %res4, align 4, !dbg !30 + %"$add_call_321" = call %Int32 @_add_Int32(%Int32 %"$$res_div_16_319", %Int32 %"$$res_rem_17_320"), !dbg !72 + store %Int32 %"$add_call_321", %Int32* %res4, align 4, !dbg !72 %"$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" @@ -699,6 +720,7 @@ entry: %"$consume_326" = sub i64 %"$gasrem_322", 1 store i64 %"$consume_326", i64* @_gasrem, align 8 %res5 = alloca %Int32, align 8 + call void @llvm.dbg.declare(metadata %Int32* %res5, metadata !73, metadata !DIExpression()), !dbg !74 %"$gasrem_327" = load i64, i64* @_gasrem, align 8 %"$gascmp_328" = icmp ugt i64 4, %"$gasrem_327" br i1 %"$gascmp_328", label %"$out_of_gas_329", label %"$have_gas_330" @@ -712,8 +734,8 @@ entry: store i64 %"$consume_331", i64* @_gasrem, align 8 %"$res1_332" = load %Int32, %Int32* %res1, align 4 %"$res2_333" = load %Int32, %Int32* %res2, align 4 - %"$add_call_334" = call %Int32 @_add_Int32(%Int32 %"$res1_332", %Int32 %"$res2_333"), !dbg !31 - store %Int32 %"$add_call_334", %Int32* %res5, align 4, !dbg !31 + %"$add_call_334" = call %Int32 @_add_Int32(%Int32 %"$res1_332", %Int32 %"$res2_333"), !dbg !75 + store %Int32 %"$add_call_334", %Int32* %res5, align 4, !dbg !75 %"$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" @@ -726,6 +748,7 @@ entry: %"$consume_339" = sub i64 %"$gasrem_335", 1 store i64 %"$consume_339", i64* @_gasrem, align 8 %res6 = alloca %Int32, align 8 + call void @llvm.dbg.declare(metadata %Int32* %res6, metadata !76, metadata !DIExpression()), !dbg !77 %"$gasrem_340" = load i64, i64* @_gasrem, align 8 %"$gascmp_341" = icmp ugt i64 4, %"$gasrem_340" br i1 %"$gascmp_341", label %"$out_of_gas_342", label %"$have_gas_343" @@ -739,8 +762,8 @@ entry: store i64 %"$consume_344", i64* @_gasrem, align 8 %"$res5_345" = load %Int32, %Int32* %res5, align 4 %"$res3_346" = load %Int32, %Int32* %res3, align 4 - %"$add_call_347" = call %Int32 @_add_Int32(%Int32 %"$res5_345", %Int32 %"$res3_346"), !dbg !32 - store %Int32 %"$add_call_347", %Int32* %res6, align 4, !dbg !32 + %"$add_call_347" = call %Int32 @_add_Int32(%Int32 %"$res5_345", %Int32 %"$res3_346"), !dbg !78 + store %Int32 %"$add_call_347", %Int32* %res6, align 4, !dbg !78 %"$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" @@ -753,6 +776,7 @@ entry: %"$consume_352" = sub i64 %"$gasrem_348", 1 store i64 %"$consume_352", i64* @_gasrem, align 8 %res7 = alloca %Int32, align 8 + call void @llvm.dbg.declare(metadata %Int32* %res7, metadata !79, metadata !DIExpression()), !dbg !80 %"$gasrem_353" = load i64, i64* @_gasrem, align 8 %"$gascmp_354" = icmp ugt i64 4, %"$gasrem_353" br i1 %"$gascmp_354", label %"$out_of_gas_355", label %"$have_gas_356" @@ -766,8 +790,8 @@ entry: store i64 %"$consume_357", i64* @_gasrem, align 8 %"$res4_358" = load %Int32, %Int32* %res4, align 4 %"$res6_359" = load %Int32, %Int32* %res6, align 4 - %"$add_call_360" = call %Int32 @_add_Int32(%Int32 %"$res4_358", %Int32 %"$res6_359"), !dbg !33 - store %Int32 %"$add_call_360", %Int32* %res7, align 4, !dbg !33 + %"$add_call_360" = call %Int32 @_add_Int32(%Int32 %"$res4_358", %Int32 %"$res6_359"), !dbg !81 + store %Int32 %"$add_call_360", %Int32* %res7, align 4, !dbg !81 %"$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" @@ -780,11 +804,14 @@ entry: %"$consume_365" = sub i64 %"$gasrem_361", 1 store i64 %"$consume_365", i64* @_gasrem, align 8 %"$res7_366" = load %Int32, %Int32* %res7, align 4 - store %Int32 %"$res7_366", %Int32* %"$expr_18", align 4, !dbg !34 + store %Int32 %"$res7_366", %Int32* %"$expr_18", align 4, !dbg !82 %"$$expr_18_367" = load %Int32, %Int32* %"$expr_18", align 4 ret %Int32 %"$$expr_18_367" } +; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn +declare void @llvm.dbg.declare(metadata, metadata, metadata) #0 + declare %Int32 @_div_Int32(%Int32, %Int32) declare %Int32 @_rem_Int32(%Int32, %Int32) @@ -804,41 +831,91 @@ entry: ret void } +attributes #0 = { nocallback nofree nosync nounwind readnone speculatable willreturn } + !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) +!1 = distinct !DICompileUnit(language: DW_LANG_C89, file: !2, producer: "Scilla Compiler", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false) !2 = !DIFile(filename: "sdivtests2.scilexp", directory: "codegen/expr") -!3 = !{} -!4 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !5, file: !5, type: !6, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!5 = !DIFile(filename: ".", directory: ".") -!6 = !DISubroutineType(types: !7) -!7 = !{!8} -!8 = !DIBasicType(tag: DW_TAG_unspecified_type, name: "void") -!9 = !DILocation(line: 0, scope: !4) -!10 = distinct !DISubprogram(name: "_scilla_expr_fun", linkageName: "_scilla_expr_fun", scope: !2, file: !2, line: 2, type: !6, scopeLine: 2, spFlags: DISPFlagDefinition, unit: !1, retainedNodes: !3) -!11 = !DILocation(line: 2, column: 9, scope: !10) -!12 = !DILocation(line: 3, column: 9, scope: !10) -!13 = !DILocation(line: 5, column: 15, scope: !10) -!14 = !DILocation(line: 6, column: 15, scope: !10) -!15 = !DILocation(line: 7, column: 12, scope: !10) -!16 = !DILocation(line: 9, column: 9, scope: !10) -!17 = !DILocation(line: 10, column: 9, scope: !10) -!18 = !DILocation(line: 12, column: 15, scope: !10) -!19 = !DILocation(line: 13, column: 15, scope: !10) -!20 = !DILocation(line: 14, column: 12, scope: !10) -!21 = !DILocation(line: 16, column: 9, scope: !10) -!22 = !DILocation(line: 17, column: 9, scope: !10) -!23 = !DILocation(line: 19, column: 15, scope: !10) -!24 = !DILocation(line: 20, column: 15, scope: !10) -!25 = !DILocation(line: 21, column: 12, scope: !10) -!26 = !DILocation(line: 23, column: 9, scope: !10) -!27 = !DILocation(line: 24, column: 9, scope: !10) -!28 = !DILocation(line: 26, column: 15, scope: !10) -!29 = !DILocation(line: 27, column: 15, scope: !10) -!30 = !DILocation(line: 28, column: 12, scope: !10) -!31 = !DILocation(line: 30, column: 12, scope: !10) -!32 = !DILocation(line: 31, column: 12, scope: !10) -!33 = !DILocation(line: 32, column: 12, scope: !10) -!34 = !DILocation(line: 34, column: 1, scope: !10) +!3 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !4, file: !4, type: !5, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!4 = !DIFile(filename: ".", directory: ".") +!5 = !DISubroutineType(types: !6) +!6 = !{!7} +!7 = !DIBasicType(tag: DW_TAG_unspecified_type, name: "void") +!8 = !{} +!9 = !DILocation(line: 0, scope: !3) +!10 = 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: !8) +!11 = !DILocalVariable(name: "$expr_18", scope: !10, file: !2, line: 2, type: !12) +!12 = !DIBasicType(name: "Int32", size: 4) +!13 = !DILocation(line: 2, column: 9, scope: !10) +!14 = !DILocalVariable(name: "b", scope: !10, file: !2, line: 2, type: !12) +!15 = !DILocation(line: 2, column: 5, scope: !10) +!16 = !DILocalVariable(name: "a", scope: !10, file: !2, line: 3, type: !12) +!17 = !DILocation(line: 3, column: 5, scope: !10) +!18 = !DILocation(line: 3, column: 9, scope: !10) +!19 = !DILocalVariable(name: "res_div", scope: !10, file: !2, line: 5, type: !12) +!20 = !DILocation(line: 5, column: 5, scope: !10) +!21 = !DILocation(line: 5, column: 15, scope: !10) +!22 = !DILocalVariable(name: "res_rem", scope: !10, file: !2, line: 6, type: !12) +!23 = !DILocation(line: 6, column: 5, scope: !10) +!24 = !DILocation(line: 6, column: 15, scope: !10) +!25 = !DILocalVariable(name: "res1", scope: !10, file: !2, line: 7, type: !12) +!26 = !DILocation(line: 7, column: 5, scope: !10) +!27 = !DILocation(line: 7, column: 12, scope: !10) +!28 = !DILocalVariable(name: "$b_6", scope: !10, file: !2, line: 9, type: !12) +!29 = !DILocation(line: 9, column: 5, scope: !10) +!30 = !DILocation(line: 9, column: 9, scope: !10) +!31 = !DILocalVariable(name: "$a_7", scope: !10, file: !2, line: 10, type: !12) +!32 = !DILocation(line: 10, column: 5, scope: !10) +!33 = !DILocation(line: 10, column: 9, scope: !10) +!34 = !DILocalVariable(name: "$res_div_8", scope: !10, file: !2, line: 12, type: !12) +!35 = !DILocation(line: 12, column: 5, scope: !10) +!36 = !DILocation(line: 12, column: 15, scope: !10) +!37 = !DILocalVariable(name: "$res_rem_9", scope: !10, file: !2, line: 13, type: !12) +!38 = !DILocation(line: 13, column: 5, scope: !10) +!39 = !DILocation(line: 13, column: 15, scope: !10) +!40 = !DILocalVariable(name: "res2", scope: !10, file: !2, line: 14, type: !12) +!41 = !DILocation(line: 14, column: 5, scope: !10) +!42 = !DILocation(line: 14, column: 12, scope: !10) +!43 = !DILocalVariable(name: "$b_10", scope: !10, file: !2, line: 16, type: !12) +!44 = !DILocation(line: 16, column: 5, scope: !10) +!45 = !DILocation(line: 16, column: 9, scope: !10) +!46 = !DILocalVariable(name: "$a_11", scope: !10, file: !2, line: 17, type: !12) +!47 = !DILocation(line: 17, column: 5, scope: !10) +!48 = !DILocation(line: 17, column: 9, scope: !10) +!49 = !DILocalVariable(name: "$res_div_12", scope: !10, file: !2, line: 19, type: !12) +!50 = !DILocation(line: 19, column: 5, scope: !10) +!51 = !DILocation(line: 19, column: 15, scope: !10) +!52 = !DILocalVariable(name: "$res_rem_13", scope: !10, file: !2, line: 20, type: !12) +!53 = !DILocation(line: 20, column: 5, scope: !10) +!54 = !DILocation(line: 20, column: 15, scope: !10) +!55 = !DILocalVariable(name: "res3", scope: !10, file: !2, line: 21, type: !12) +!56 = !DILocation(line: 21, column: 5, scope: !10) +!57 = !DILocation(line: 21, column: 12, scope: !10) +!58 = !DILocalVariable(name: "$b_14", scope: !10, file: !2, line: 23, type: !12) +!59 = !DILocation(line: 23, column: 5, scope: !10) +!60 = !DILocation(line: 23, column: 9, scope: !10) +!61 = !DILocalVariable(name: "$a_15", scope: !10, file: !2, line: 24, type: !12) +!62 = !DILocation(line: 24, column: 5, scope: !10) +!63 = !DILocation(line: 24, column: 9, scope: !10) +!64 = !DILocalVariable(name: "$res_div_16", scope: !10, file: !2, line: 26, type: !12) +!65 = !DILocation(line: 26, column: 5, scope: !10) +!66 = !DILocation(line: 26, column: 15, scope: !10) +!67 = !DILocalVariable(name: "$res_rem_17", scope: !10, file: !2, line: 27, type: !12) +!68 = !DILocation(line: 27, column: 5, scope: !10) +!69 = !DILocation(line: 27, column: 15, scope: !10) +!70 = !DILocalVariable(name: "res4", scope: !10, file: !2, line: 28, type: !12) +!71 = !DILocation(line: 28, column: 5, scope: !10) +!72 = !DILocation(line: 28, column: 12, scope: !10) +!73 = !DILocalVariable(name: "res5", scope: !10, file: !2, line: 30, type: !12) +!74 = !DILocation(line: 30, column: 5, scope: !10) +!75 = !DILocation(line: 30, column: 12, scope: !10) +!76 = !DILocalVariable(name: "res6", scope: !10, file: !2, line: 31, type: !12) +!77 = !DILocation(line: 31, column: 5, scope: !10) +!78 = !DILocation(line: 31, column: 12, scope: !10) +!79 = !DILocalVariable(name: "res7", scope: !10, file: !2, line: 32, type: !12) +!80 = !DILocation(line: 32, column: 5, scope: !10) +!81 = !DILocation(line: 32, column: 12, scope: !10) +!82 = !DILocation(line: 34, column: 1, scope: !10) diff --git a/testsuite/expr/sdivtests2.ll b/testsuite/expr/sdivtests2.ll index d3ff4b07..242b14b4 100644 --- a/testsuite/expr/sdivtests2.ll +++ b/testsuite/expr/sdivtests2.ll @@ -35,7 +35,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-pc-linux-gnu" +target triple = "x86_64-unknown-linux-gnu" %"$TyDescrTy_PrimTyp_19" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/testsuite/expr/sdivtests3.dbg.ll b/testsuite/expr/sdivtests3.dbg.ll index 667b3e8e..2d53fd1f 100644 --- a/testsuite/expr/sdivtests3.dbg.ll +++ b/testsuite/expr/sdivtests3.dbg.ll @@ -35,7 +35,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-pc-linux-gnu" +target triple = "x86_64-unknown-linux-gnu" %"$TyDescrTy_PrimTyp_19" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } @@ -90,7 +90,7 @@ target triple = "x86_64-pc-linux-gnu" @_transition_parameters = constant [0 x %"$TransDescr_462"] zeroinitializer @_transition_parameters_length = constant i32 0 -define void @_init_libs() !dbg !4 { +define void @_init_libs() !dbg !3 { entry: %"$gasrem_56" = load i64, i64* @_gasrem, align 8 %"$gascmp_57" = icmp ugt i64 5, %"$gasrem_56" @@ -172,6 +172,7 @@ declare void @_out_of_gas() define internal void @_scilla_expr_fun(i8* %0, %Int256* %1) !dbg !10 { entry: %"$expr_18" = alloca %Int256, align 8 + call void @llvm.dbg.declare(metadata %Int256* %"$expr_18", metadata !11, metadata !DIExpression()), !dbg !13 %"$gasrem_86" = load i64, i64* @_gasrem, align 8 %"$gascmp_87" = icmp ugt i64 1, %"$gasrem_86" br i1 %"$gascmp_87", label %"$out_of_gas_88", label %"$have_gas_89" @@ -184,6 +185,7 @@ entry: %"$consume_90" = sub i64 %"$gasrem_86", 1 store i64 %"$consume_90", i64* @_gasrem, align 8 %b = alloca %Int256, align 8 + call void @llvm.dbg.declare(metadata %Int256* %b, metadata !14, metadata !DIExpression()), !dbg !15 %"$gasrem_91" = load i64, i64* @_gasrem, align 8 %"$gascmp_92" = icmp ugt i64 1, %"$gasrem_91" br i1 %"$gascmp_92", label %"$out_of_gas_93", label %"$have_gas_94" @@ -195,7 +197,7 @@ entry: "$have_gas_94": ; preds = %"$out_of_gas_93", %"$have_gas_89" %"$consume_95" = sub i64 %"$gasrem_91", 1 store i64 %"$consume_95", i64* @_gasrem, align 8 - store %Int256 { i256 -11111111111111110 }, %Int256* %b, align 8, !dbg !11 + store %Int256 { i256 -11111111111111110 }, %Int256* %b, align 8, !dbg !13 %"$gasrem_96" = load i64, i64* @_gasrem, align 8 %"$gascmp_97" = icmp ugt i64 1, %"$gasrem_96" br i1 %"$gascmp_97", label %"$out_of_gas_98", label %"$have_gas_99" @@ -208,6 +210,7 @@ entry: %"$consume_100" = sub i64 %"$gasrem_96", 1 store i64 %"$consume_100", i64* @_gasrem, align 8 %a = alloca %Int256, align 8 + call void @llvm.dbg.declare(metadata %Int256* %a, metadata !16, metadata !DIExpression()), !dbg !17 %"$gasrem_101" = load i64, i64* @_gasrem, align 8 %"$gascmp_102" = icmp ugt i64 1, %"$gasrem_101" br i1 %"$gascmp_102", label %"$out_of_gas_103", label %"$have_gas_104" @@ -219,7 +222,7 @@ entry: "$have_gas_104": ; preds = %"$out_of_gas_103", %"$have_gas_99" %"$consume_105" = sub i64 %"$gasrem_101", 1 store i64 %"$consume_105", i64* @_gasrem, align 8 - store %Int256 { i256 11119999993 }, %Int256* %a, align 8, !dbg !12 + store %Int256 { i256 11119999993 }, %Int256* %a, align 8, !dbg !18 %"$gasrem_106" = load i64, i64* @_gasrem, align 8 %"$gascmp_107" = icmp ugt i64 1, %"$gasrem_106" br i1 %"$gascmp_107", label %"$out_of_gas_108", label %"$have_gas_109" @@ -232,6 +235,7 @@ entry: %"$consume_110" = sub i64 %"$gasrem_106", 1 store i64 %"$consume_110", i64* @_gasrem, align 8 %res_div = alloca %Int256, align 8 + call void @llvm.dbg.declare(metadata %Int256* %res_div, metadata !19, metadata !DIExpression()), !dbg !20 %"$gasrem_112" = load i64, i64* @_gasrem, align 8 %"$gascmp_113" = icmp ugt i64 80, %"$gasrem_112" br i1 %"$gascmp_113", label %"$out_of_gas_114", label %"$have_gas_115" @@ -250,9 +254,9 @@ entry: %"$div_b_120" = alloca %Int256, align 8 %"$b_121" = load %Int256, %Int256* %b, align 8 store %Int256 %"$b_121", %Int256* %"$div_b_120", align 8 - %"$div_call_122" = call %Int256* @_div_Int256(i8* %"$execptr_load_117", %Int256* %"$div_a_118", %Int256* %"$div_b_120"), !dbg !13 + %"$div_call_122" = call %Int256* @_div_Int256(i8* %"$execptr_load_117", %Int256* %"$div_a_118", %Int256* %"$div_b_120"), !dbg !21 %"$div_124" = load %Int256, %Int256* %"$div_call_122", align 8 - store %Int256 %"$div_124", %Int256* %res_div, align 8, !dbg !13 + store %Int256 %"$div_124", %Int256* %res_div, align 8, !dbg !21 %"$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" @@ -265,6 +269,7 @@ entry: %"$consume_129" = sub i64 %"$gasrem_125", 1 store i64 %"$consume_129", i64* @_gasrem, align 8 %res_rem = alloca %Int256, align 8 + call void @llvm.dbg.declare(metadata %Int256* %res_rem, metadata !22, metadata !DIExpression()), !dbg !23 %"$gasrem_131" = load i64, i64* @_gasrem, align 8 %"$gascmp_132" = icmp ugt i64 80, %"$gasrem_131" br i1 %"$gascmp_132", label %"$out_of_gas_133", label %"$have_gas_134" @@ -283,9 +288,9 @@ entry: %"$rem_b_139" = alloca %Int256, align 8 %"$b_140" = load %Int256, %Int256* %b, align 8 store %Int256 %"$b_140", %Int256* %"$rem_b_139", align 8 - %"$rem_call_141" = call %Int256* @_rem_Int256(i8* %"$execptr_load_136", %Int256* %"$rem_a_137", %Int256* %"$rem_b_139"), !dbg !14 + %"$rem_call_141" = call %Int256* @_rem_Int256(i8* %"$execptr_load_136", %Int256* %"$rem_a_137", %Int256* %"$rem_b_139"), !dbg !24 %"$rem_143" = load %Int256, %Int256* %"$rem_call_141", align 8 - store %Int256 %"$rem_143", %Int256* %res_rem, align 8, !dbg !14 + store %Int256 %"$rem_143", %Int256* %res_rem, align 8, !dbg !24 %"$gasrem_144" = load i64, i64* @_gasrem, align 8 %"$gascmp_145" = icmp ugt i64 1, %"$gasrem_144" br i1 %"$gascmp_145", label %"$out_of_gas_146", label %"$have_gas_147" @@ -298,6 +303,7 @@ entry: %"$consume_148" = sub i64 %"$gasrem_144", 1 store i64 %"$consume_148", i64* @_gasrem, align 8 %res1 = alloca %Int256, align 8 + call void @llvm.dbg.declare(metadata %Int256* %res1, metadata !25, metadata !DIExpression()), !dbg !26 %"$gasrem_150" = load i64, i64* @_gasrem, align 8 %"$gascmp_151" = icmp ugt i64 16, %"$gasrem_150" br i1 %"$gascmp_151", label %"$out_of_gas_152", label %"$have_gas_153" @@ -316,9 +322,9 @@ entry: %"$add_res_rem_158" = alloca %Int256, align 8 %"$res_rem_159" = load %Int256, %Int256* %res_rem, align 8 store %Int256 %"$res_rem_159", %Int256* %"$add_res_rem_158", align 8 - %"$add_call_160" = call %Int256* @_add_Int256(i8* %"$execptr_load_155", %Int256* %"$add_res_div_156", %Int256* %"$add_res_rem_158"), !dbg !15 + %"$add_call_160" = call %Int256* @_add_Int256(i8* %"$execptr_load_155", %Int256* %"$add_res_div_156", %Int256* %"$add_res_rem_158"), !dbg !27 %"$add_162" = load %Int256, %Int256* %"$add_call_160", align 8 - store %Int256 %"$add_162", %Int256* %res1, align 8, !dbg !15 + store %Int256 %"$add_162", %Int256* %res1, align 8, !dbg !27 %"$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" @@ -331,6 +337,7 @@ entry: %"$consume_167" = sub i64 %"$gasrem_163", 1 store i64 %"$consume_167", i64* @_gasrem, align 8 %"$b_6" = alloca %Int256, align 8 + call void @llvm.dbg.declare(metadata %Int256* %"$b_6", metadata !28, metadata !DIExpression()), !dbg !29 %"$gasrem_168" = load i64, i64* @_gasrem, align 8 %"$gascmp_169" = icmp ugt i64 1, %"$gasrem_168" br i1 %"$gascmp_169", label %"$out_of_gas_170", label %"$have_gas_171" @@ -342,7 +349,7 @@ entry: "$have_gas_171": ; preds = %"$out_of_gas_170", %"$have_gas_166" %"$consume_172" = sub i64 %"$gasrem_168", 1 store i64 %"$consume_172", i64* @_gasrem, align 8 - store %Int256 { i256 11111110 }, %Int256* %"$b_6", align 8, !dbg !16 + store %Int256 { i256 11111110 }, %Int256* %"$b_6", align 8, !dbg !30 %"$gasrem_173" = load i64, i64* @_gasrem, align 8 %"$gascmp_174" = icmp ugt i64 1, %"$gasrem_173" br i1 %"$gascmp_174", label %"$out_of_gas_175", label %"$have_gas_176" @@ -355,6 +362,7 @@ entry: %"$consume_177" = sub i64 %"$gasrem_173", 1 store i64 %"$consume_177", i64* @_gasrem, align 8 %"$a_7" = alloca %Int256, align 8 + call void @llvm.dbg.declare(metadata %Int256* %"$a_7", metadata !31, metadata !DIExpression()), !dbg !32 %"$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" @@ -366,7 +374,7 @@ entry: "$have_gas_181": ; preds = %"$out_of_gas_180", %"$have_gas_176" %"$consume_182" = sub i64 %"$gasrem_178", 1 store i64 %"$consume_182", i64* @_gasrem, align 8 - store %Int256 { i256 -7773 }, %Int256* %"$a_7", align 8, !dbg !17 + store %Int256 { i256 -7773 }, %Int256* %"$a_7", align 8, !dbg !33 %"$gasrem_183" = load i64, i64* @_gasrem, align 8 %"$gascmp_184" = icmp ugt i64 1, %"$gasrem_183" br i1 %"$gascmp_184", label %"$out_of_gas_185", label %"$have_gas_186" @@ -379,6 +387,7 @@ entry: %"$consume_187" = sub i64 %"$gasrem_183", 1 store i64 %"$consume_187", i64* @_gasrem, align 8 %"$res_div_8" = alloca %Int256, align 8 + call void @llvm.dbg.declare(metadata %Int256* %"$res_div_8", metadata !34, metadata !DIExpression()), !dbg !35 %"$gasrem_189" = load i64, i64* @_gasrem, align 8 %"$gascmp_190" = icmp ugt i64 80, %"$gasrem_189" br i1 %"$gascmp_190", label %"$out_of_gas_191", label %"$have_gas_192" @@ -397,9 +406,9 @@ entry: %"$div_$b_6_197" = alloca %Int256, align 8 %"$$b_6_198" = load %Int256, %Int256* %"$b_6", align 8 store %Int256 %"$$b_6_198", %Int256* %"$div_$b_6_197", align 8 - %"$div_call_199" = call %Int256* @_div_Int256(i8* %"$execptr_load_194", %Int256* %"$div_$a_7_195", %Int256* %"$div_$b_6_197"), !dbg !18 + %"$div_call_199" = call %Int256* @_div_Int256(i8* %"$execptr_load_194", %Int256* %"$div_$a_7_195", %Int256* %"$div_$b_6_197"), !dbg !36 %"$div_201" = load %Int256, %Int256* %"$div_call_199", align 8 - store %Int256 %"$div_201", %Int256* %"$res_div_8", align 8, !dbg !18 + store %Int256 %"$div_201", %Int256* %"$res_div_8", align 8, !dbg !36 %"$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" @@ -412,6 +421,7 @@ entry: %"$consume_206" = sub i64 %"$gasrem_202", 1 store i64 %"$consume_206", i64* @_gasrem, align 8 %"$res_rem_9" = alloca %Int256, align 8 + call void @llvm.dbg.declare(metadata %Int256* %"$res_rem_9", metadata !37, metadata !DIExpression()), !dbg !38 %"$gasrem_208" = load i64, i64* @_gasrem, align 8 %"$gascmp_209" = icmp ugt i64 80, %"$gasrem_208" br i1 %"$gascmp_209", label %"$out_of_gas_210", label %"$have_gas_211" @@ -430,9 +440,9 @@ entry: %"$rem_$b_6_216" = alloca %Int256, align 8 %"$$b_6_217" = load %Int256, %Int256* %"$b_6", align 8 store %Int256 %"$$b_6_217", %Int256* %"$rem_$b_6_216", align 8 - %"$rem_call_218" = call %Int256* @_rem_Int256(i8* %"$execptr_load_213", %Int256* %"$rem_$a_7_214", %Int256* %"$rem_$b_6_216"), !dbg !19 + %"$rem_call_218" = call %Int256* @_rem_Int256(i8* %"$execptr_load_213", %Int256* %"$rem_$a_7_214", %Int256* %"$rem_$b_6_216"), !dbg !39 %"$rem_220" = load %Int256, %Int256* %"$rem_call_218", align 8 - store %Int256 %"$rem_220", %Int256* %"$res_rem_9", align 8, !dbg !19 + store %Int256 %"$rem_220", %Int256* %"$res_rem_9", align 8, !dbg !39 %"$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" @@ -445,6 +455,7 @@ entry: %"$consume_225" = sub i64 %"$gasrem_221", 1 store i64 %"$consume_225", i64* @_gasrem, align 8 %res2 = alloca %Int256, align 8 + call void @llvm.dbg.declare(metadata %Int256* %res2, metadata !40, metadata !DIExpression()), !dbg !41 %"$gasrem_227" = load i64, i64* @_gasrem, align 8 %"$gascmp_228" = icmp ugt i64 16, %"$gasrem_227" br i1 %"$gascmp_228", label %"$out_of_gas_229", label %"$have_gas_230" @@ -463,9 +474,9 @@ entry: %"$add_$res_rem_9_235" = alloca %Int256, align 8 %"$$res_rem_9_236" = load %Int256, %Int256* %"$res_rem_9", align 8 store %Int256 %"$$res_rem_9_236", %Int256* %"$add_$res_rem_9_235", align 8 - %"$add_call_237" = call %Int256* @_add_Int256(i8* %"$execptr_load_232", %Int256* %"$add_$res_div_8_233", %Int256* %"$add_$res_rem_9_235"), !dbg !20 + %"$add_call_237" = call %Int256* @_add_Int256(i8* %"$execptr_load_232", %Int256* %"$add_$res_div_8_233", %Int256* %"$add_$res_rem_9_235"), !dbg !42 %"$add_239" = load %Int256, %Int256* %"$add_call_237", align 8 - store %Int256 %"$add_239", %Int256* %res2, align 8, !dbg !20 + store %Int256 %"$add_239", %Int256* %res2, align 8, !dbg !42 %"$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" @@ -478,6 +489,7 @@ entry: %"$consume_244" = sub i64 %"$gasrem_240", 1 store i64 %"$consume_244", i64* @_gasrem, align 8 %"$b_10" = alloca %Int256, align 8 + call void @llvm.dbg.declare(metadata %Int256* %"$b_10", metadata !43, metadata !DIExpression()), !dbg !44 %"$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" @@ -489,7 +501,7 @@ entry: "$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 - store %Int256 { i256 -10777 }, %Int256* %"$b_10", align 8, !dbg !21 + store %Int256 { i256 -10777 }, %Int256* %"$b_10", align 8, !dbg !45 %"$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" @@ -502,6 +514,7 @@ entry: %"$consume_254" = sub i64 %"$gasrem_250", 1 store i64 %"$consume_254", i64* @_gasrem, align 8 %"$a_11" = alloca %Int256, align 8 + call void @llvm.dbg.declare(metadata %Int256* %"$a_11", metadata !46, metadata !DIExpression()), !dbg !47 %"$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" @@ -513,7 +526,7 @@ entry: "$have_gas_258": ; preds = %"$out_of_gas_257", %"$have_gas_253" %"$consume_259" = sub i64 %"$gasrem_255", 1 store i64 %"$consume_259", i64* @_gasrem, align 8 - store %Int256 { i256 -37 }, %Int256* %"$a_11", align 8, !dbg !22 + store %Int256 { i256 -37 }, %Int256* %"$a_11", align 8, !dbg !48 %"$gasrem_260" = load i64, i64* @_gasrem, align 8 %"$gascmp_261" = icmp ugt i64 1, %"$gasrem_260" br i1 %"$gascmp_261", label %"$out_of_gas_262", label %"$have_gas_263" @@ -526,6 +539,7 @@ entry: %"$consume_264" = sub i64 %"$gasrem_260", 1 store i64 %"$consume_264", i64* @_gasrem, align 8 %"$res_div_12" = alloca %Int256, align 8 + call void @llvm.dbg.declare(metadata %Int256* %"$res_div_12", metadata !49, metadata !DIExpression()), !dbg !50 %"$gasrem_266" = load i64, i64* @_gasrem, align 8 %"$gascmp_267" = icmp ugt i64 80, %"$gasrem_266" br i1 %"$gascmp_267", label %"$out_of_gas_268", label %"$have_gas_269" @@ -544,9 +558,9 @@ entry: %"$div_$b_10_274" = alloca %Int256, align 8 %"$$b_10_275" = load %Int256, %Int256* %"$b_10", align 8 store %Int256 %"$$b_10_275", %Int256* %"$div_$b_10_274", align 8 - %"$div_call_276" = call %Int256* @_div_Int256(i8* %"$execptr_load_271", %Int256* %"$div_$a_11_272", %Int256* %"$div_$b_10_274"), !dbg !23 + %"$div_call_276" = call %Int256* @_div_Int256(i8* %"$execptr_load_271", %Int256* %"$div_$a_11_272", %Int256* %"$div_$b_10_274"), !dbg !51 %"$div_278" = load %Int256, %Int256* %"$div_call_276", align 8 - store %Int256 %"$div_278", %Int256* %"$res_div_12", align 8, !dbg !23 + store %Int256 %"$div_278", %Int256* %"$res_div_12", align 8, !dbg !51 %"$gasrem_279" = load i64, i64* @_gasrem, align 8 %"$gascmp_280" = icmp ugt i64 1, %"$gasrem_279" br i1 %"$gascmp_280", label %"$out_of_gas_281", label %"$have_gas_282" @@ -559,6 +573,7 @@ entry: %"$consume_283" = sub i64 %"$gasrem_279", 1 store i64 %"$consume_283", i64* @_gasrem, align 8 %"$res_rem_13" = alloca %Int256, align 8 + call void @llvm.dbg.declare(metadata %Int256* %"$res_rem_13", metadata !52, metadata !DIExpression()), !dbg !53 %"$gasrem_285" = load i64, i64* @_gasrem, align 8 %"$gascmp_286" = icmp ugt i64 80, %"$gasrem_285" br i1 %"$gascmp_286", label %"$out_of_gas_287", label %"$have_gas_288" @@ -577,9 +592,9 @@ entry: %"$rem_$b_10_293" = alloca %Int256, align 8 %"$$b_10_294" = load %Int256, %Int256* %"$b_10", align 8 store %Int256 %"$$b_10_294", %Int256* %"$rem_$b_10_293", align 8 - %"$rem_call_295" = call %Int256* @_rem_Int256(i8* %"$execptr_load_290", %Int256* %"$rem_$a_11_291", %Int256* %"$rem_$b_10_293"), !dbg !24 + %"$rem_call_295" = call %Int256* @_rem_Int256(i8* %"$execptr_load_290", %Int256* %"$rem_$a_11_291", %Int256* %"$rem_$b_10_293"), !dbg !54 %"$rem_297" = load %Int256, %Int256* %"$rem_call_295", align 8 - store %Int256 %"$rem_297", %Int256* %"$res_rem_13", align 8, !dbg !24 + store %Int256 %"$rem_297", %Int256* %"$res_rem_13", align 8, !dbg !54 %"$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" @@ -592,6 +607,7 @@ entry: %"$consume_302" = sub i64 %"$gasrem_298", 1 store i64 %"$consume_302", i64* @_gasrem, align 8 %res3 = alloca %Int256, align 8 + call void @llvm.dbg.declare(metadata %Int256* %res3, metadata !55, metadata !DIExpression()), !dbg !56 %"$gasrem_304" = load i64, i64* @_gasrem, align 8 %"$gascmp_305" = icmp ugt i64 16, %"$gasrem_304" br i1 %"$gascmp_305", label %"$out_of_gas_306", label %"$have_gas_307" @@ -610,9 +626,9 @@ entry: %"$add_$res_rem_13_312" = alloca %Int256, align 8 %"$$res_rem_13_313" = load %Int256, %Int256* %"$res_rem_13", align 8 store %Int256 %"$$res_rem_13_313", %Int256* %"$add_$res_rem_13_312", align 8 - %"$add_call_314" = call %Int256* @_add_Int256(i8* %"$execptr_load_309", %Int256* %"$add_$res_div_12_310", %Int256* %"$add_$res_rem_13_312"), !dbg !25 + %"$add_call_314" = call %Int256* @_add_Int256(i8* %"$execptr_load_309", %Int256* %"$add_$res_div_12_310", %Int256* %"$add_$res_rem_13_312"), !dbg !57 %"$add_316" = load %Int256, %Int256* %"$add_call_314", align 8 - store %Int256 %"$add_316", %Int256* %res3, align 8, !dbg !25 + store %Int256 %"$add_316", %Int256* %res3, align 8, !dbg !57 %"$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" @@ -625,6 +641,7 @@ entry: %"$consume_321" = sub i64 %"$gasrem_317", 1 store i64 %"$consume_321", i64* @_gasrem, align 8 %"$b_14" = alloca %Int256, align 8 + call void @llvm.dbg.declare(metadata %Int256* %"$b_14", metadata !58, metadata !DIExpression()), !dbg !59 %"$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" @@ -636,7 +653,7 @@ entry: "$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 - store %Int256 { i256 1898560 }, %Int256* %"$b_14", align 8, !dbg !26 + store %Int256 { i256 1898560 }, %Int256* %"$b_14", align 8, !dbg !60 %"$gasrem_327" = load i64, i64* @_gasrem, align 8 %"$gascmp_328" = icmp ugt i64 1, %"$gasrem_327" br i1 %"$gascmp_328", label %"$out_of_gas_329", label %"$have_gas_330" @@ -649,6 +666,7 @@ entry: %"$consume_331" = sub i64 %"$gasrem_327", 1 store i64 %"$consume_331", i64* @_gasrem, align 8 %"$a_15" = alloca %Int256, align 8 + call void @llvm.dbg.declare(metadata %Int256* %"$a_15", metadata !61, metadata !DIExpression()), !dbg !62 %"$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" @@ -660,7 +678,7 @@ entry: "$have_gas_335": ; preds = %"$out_of_gas_334", %"$have_gas_330" %"$consume_336" = sub i64 %"$gasrem_332", 1 store i64 %"$consume_336", i64* @_gasrem, align 8 - store %Int256 { i256 13323 }, %Int256* %"$a_15", align 8, !dbg !27 + store %Int256 { i256 13323 }, %Int256* %"$a_15", align 8, !dbg !63 %"$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" @@ -673,6 +691,7 @@ entry: %"$consume_341" = sub i64 %"$gasrem_337", 1 store i64 %"$consume_341", i64* @_gasrem, align 8 %"$res_div_16" = alloca %Int256, align 8 + call void @llvm.dbg.declare(metadata %Int256* %"$res_div_16", metadata !64, metadata !DIExpression()), !dbg !65 %"$gasrem_343" = load i64, i64* @_gasrem, align 8 %"$gascmp_344" = icmp ugt i64 80, %"$gasrem_343" br i1 %"$gascmp_344", label %"$out_of_gas_345", label %"$have_gas_346" @@ -691,9 +710,9 @@ entry: %"$div_$b_14_351" = alloca %Int256, align 8 %"$$b_14_352" = load %Int256, %Int256* %"$b_14", align 8 store %Int256 %"$$b_14_352", %Int256* %"$div_$b_14_351", align 8 - %"$div_call_353" = call %Int256* @_div_Int256(i8* %"$execptr_load_348", %Int256* %"$div_$a_15_349", %Int256* %"$div_$b_14_351"), !dbg !28 + %"$div_call_353" = call %Int256* @_div_Int256(i8* %"$execptr_load_348", %Int256* %"$div_$a_15_349", %Int256* %"$div_$b_14_351"), !dbg !66 %"$div_355" = load %Int256, %Int256* %"$div_call_353", align 8 - store %Int256 %"$div_355", %Int256* %"$res_div_16", align 8, !dbg !28 + store %Int256 %"$div_355", %Int256* %"$res_div_16", align 8, !dbg !66 %"$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" @@ -706,6 +725,7 @@ entry: %"$consume_360" = sub i64 %"$gasrem_356", 1 store i64 %"$consume_360", i64* @_gasrem, align 8 %"$res_rem_17" = alloca %Int256, align 8 + call void @llvm.dbg.declare(metadata %Int256* %"$res_rem_17", metadata !67, metadata !DIExpression()), !dbg !68 %"$gasrem_362" = load i64, i64* @_gasrem, align 8 %"$gascmp_363" = icmp ugt i64 80, %"$gasrem_362" br i1 %"$gascmp_363", label %"$out_of_gas_364", label %"$have_gas_365" @@ -724,9 +744,9 @@ entry: %"$rem_$b_14_370" = alloca %Int256, align 8 %"$$b_14_371" = load %Int256, %Int256* %"$b_14", align 8 store %Int256 %"$$b_14_371", %Int256* %"$rem_$b_14_370", align 8 - %"$rem_call_372" = call %Int256* @_rem_Int256(i8* %"$execptr_load_367", %Int256* %"$rem_$a_15_368", %Int256* %"$rem_$b_14_370"), !dbg !29 + %"$rem_call_372" = call %Int256* @_rem_Int256(i8* %"$execptr_load_367", %Int256* %"$rem_$a_15_368", %Int256* %"$rem_$b_14_370"), !dbg !69 %"$rem_374" = load %Int256, %Int256* %"$rem_call_372", align 8 - store %Int256 %"$rem_374", %Int256* %"$res_rem_17", align 8, !dbg !29 + store %Int256 %"$rem_374", %Int256* %"$res_rem_17", align 8, !dbg !69 %"$gasrem_375" = load i64, i64* @_gasrem, align 8 %"$gascmp_376" = icmp ugt i64 1, %"$gasrem_375" br i1 %"$gascmp_376", label %"$out_of_gas_377", label %"$have_gas_378" @@ -739,6 +759,7 @@ entry: %"$consume_379" = sub i64 %"$gasrem_375", 1 store i64 %"$consume_379", i64* @_gasrem, align 8 %res4 = alloca %Int256, align 8 + call void @llvm.dbg.declare(metadata %Int256* %res4, metadata !70, metadata !DIExpression()), !dbg !71 %"$gasrem_381" = load i64, i64* @_gasrem, align 8 %"$gascmp_382" = icmp ugt i64 16, %"$gasrem_381" br i1 %"$gascmp_382", label %"$out_of_gas_383", label %"$have_gas_384" @@ -757,9 +778,9 @@ entry: %"$add_$res_rem_17_389" = alloca %Int256, align 8 %"$$res_rem_17_390" = load %Int256, %Int256* %"$res_rem_17", align 8 store %Int256 %"$$res_rem_17_390", %Int256* %"$add_$res_rem_17_389", align 8 - %"$add_call_391" = call %Int256* @_add_Int256(i8* %"$execptr_load_386", %Int256* %"$add_$res_div_16_387", %Int256* %"$add_$res_rem_17_389"), !dbg !30 + %"$add_call_391" = call %Int256* @_add_Int256(i8* %"$execptr_load_386", %Int256* %"$add_$res_div_16_387", %Int256* %"$add_$res_rem_17_389"), !dbg !72 %"$add_393" = load %Int256, %Int256* %"$add_call_391", align 8 - store %Int256 %"$add_393", %Int256* %res4, align 8, !dbg !30 + store %Int256 %"$add_393", %Int256* %res4, align 8, !dbg !72 %"$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" @@ -772,6 +793,7 @@ entry: %"$consume_398" = sub i64 %"$gasrem_394", 1 store i64 %"$consume_398", i64* @_gasrem, align 8 %res5 = alloca %Int256, align 8 + call void @llvm.dbg.declare(metadata %Int256* %res5, metadata !73, metadata !DIExpression()), !dbg !74 %"$gasrem_400" = load i64, i64* @_gasrem, align 8 %"$gascmp_401" = icmp ugt i64 16, %"$gasrem_400" br i1 %"$gascmp_401", label %"$out_of_gas_402", label %"$have_gas_403" @@ -790,9 +812,9 @@ entry: %"$add_res2_408" = alloca %Int256, align 8 %"$res2_409" = load %Int256, %Int256* %res2, align 8 store %Int256 %"$res2_409", %Int256* %"$add_res2_408", align 8 - %"$add_call_410" = call %Int256* @_add_Int256(i8* %"$execptr_load_405", %Int256* %"$add_res1_406", %Int256* %"$add_res2_408"), !dbg !31 + %"$add_call_410" = call %Int256* @_add_Int256(i8* %"$execptr_load_405", %Int256* %"$add_res1_406", %Int256* %"$add_res2_408"), !dbg !75 %"$add_412" = load %Int256, %Int256* %"$add_call_410", align 8 - store %Int256 %"$add_412", %Int256* %res5, align 8, !dbg !31 + store %Int256 %"$add_412", %Int256* %res5, align 8, !dbg !75 %"$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" @@ -805,6 +827,7 @@ entry: %"$consume_417" = sub i64 %"$gasrem_413", 1 store i64 %"$consume_417", i64* @_gasrem, align 8 %res6 = alloca %Int256, align 8 + call void @llvm.dbg.declare(metadata %Int256* %res6, metadata !76, metadata !DIExpression()), !dbg !77 %"$gasrem_419" = load i64, i64* @_gasrem, align 8 %"$gascmp_420" = icmp ugt i64 16, %"$gasrem_419" br i1 %"$gascmp_420", label %"$out_of_gas_421", label %"$have_gas_422" @@ -823,9 +846,9 @@ entry: %"$add_res3_427" = alloca %Int256, align 8 %"$res3_428" = load %Int256, %Int256* %res3, align 8 store %Int256 %"$res3_428", %Int256* %"$add_res3_427", align 8 - %"$add_call_429" = call %Int256* @_add_Int256(i8* %"$execptr_load_424", %Int256* %"$add_res5_425", %Int256* %"$add_res3_427"), !dbg !32 + %"$add_call_429" = call %Int256* @_add_Int256(i8* %"$execptr_load_424", %Int256* %"$add_res5_425", %Int256* %"$add_res3_427"), !dbg !78 %"$add_431" = load %Int256, %Int256* %"$add_call_429", align 8 - store %Int256 %"$add_431", %Int256* %res6, align 8, !dbg !32 + store %Int256 %"$add_431", %Int256* %res6, align 8, !dbg !78 %"$gasrem_432" = load i64, i64* @_gasrem, align 8 %"$gascmp_433" = icmp ugt i64 1, %"$gasrem_432" br i1 %"$gascmp_433", label %"$out_of_gas_434", label %"$have_gas_435" @@ -838,6 +861,7 @@ entry: %"$consume_436" = sub i64 %"$gasrem_432", 1 store i64 %"$consume_436", i64* @_gasrem, align 8 %res7 = alloca %Int256, align 8 + call void @llvm.dbg.declare(metadata %Int256* %res7, metadata !79, metadata !DIExpression()), !dbg !80 %"$gasrem_438" = load i64, i64* @_gasrem, align 8 %"$gascmp_439" = icmp ugt i64 16, %"$gasrem_438" br i1 %"$gascmp_439", label %"$out_of_gas_440", label %"$have_gas_441" @@ -856,9 +880,9 @@ entry: %"$add_res6_446" = alloca %Int256, align 8 %"$res6_447" = load %Int256, %Int256* %res6, align 8 store %Int256 %"$res6_447", %Int256* %"$add_res6_446", align 8 - %"$add_call_448" = call %Int256* @_add_Int256(i8* %"$execptr_load_443", %Int256* %"$add_res4_444", %Int256* %"$add_res6_446"), !dbg !33 + %"$add_call_448" = call %Int256* @_add_Int256(i8* %"$execptr_load_443", %Int256* %"$add_res4_444", %Int256* %"$add_res6_446"), !dbg !81 %"$add_450" = load %Int256, %Int256* %"$add_call_448", align 8 - store %Int256 %"$add_450", %Int256* %res7, align 8, !dbg !33 + store %Int256 %"$add_450", %Int256* %res7, align 8, !dbg !81 %"$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" @@ -871,12 +895,15 @@ entry: %"$consume_455" = sub i64 %"$gasrem_451", 1 store i64 %"$consume_455", i64* @_gasrem, align 8 %"$res7_456" = load %Int256, %Int256* %res7, align 8 - store %Int256 %"$res7_456", %Int256* %"$expr_18", align 8, !dbg !34 + store %Int256 %"$res7_456", %Int256* %"$expr_18", align 8, !dbg !82 %"$$expr_18_457" = load %Int256, %Int256* %"$expr_18", align 8 store %Int256 %"$$expr_18_457", %Int256* %1, align 8 ret void } +; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn +declare void @llvm.dbg.declare(metadata, metadata, metadata) #0 + declare %Int256* @_div_Int256(i8*, %Int256*, %Int256*) declare %Int256* @_rem_Int256(i8*, %Int256*, %Int256*) @@ -895,41 +922,91 @@ entry: ret void } +attributes #0 = { nocallback nofree nosync nounwind readnone speculatable willreturn } + !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) +!1 = distinct !DICompileUnit(language: DW_LANG_C89, file: !2, producer: "Scilla Compiler", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false) !2 = !DIFile(filename: "sdivtests3.scilexp", directory: "codegen/expr") -!3 = !{} -!4 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !5, file: !5, type: !6, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!5 = !DIFile(filename: ".", directory: ".") -!6 = !DISubroutineType(types: !7) -!7 = !{!8} -!8 = !DIBasicType(tag: DW_TAG_unspecified_type, name: "void") -!9 = !DILocation(line: 0, scope: !4) -!10 = distinct !DISubprogram(name: "_scilla_expr_fun", linkageName: "_scilla_expr_fun", scope: !2, file: !2, line: 2, type: !6, scopeLine: 2, spFlags: DISPFlagDefinition, unit: !1, retainedNodes: !3) -!11 = !DILocation(line: 2, column: 9, scope: !10) -!12 = !DILocation(line: 3, column: 9, scope: !10) -!13 = !DILocation(line: 5, column: 15, scope: !10) -!14 = !DILocation(line: 6, column: 15, scope: !10) -!15 = !DILocation(line: 7, column: 12, scope: !10) -!16 = !DILocation(line: 9, column: 9, scope: !10) -!17 = !DILocation(line: 10, column: 9, scope: !10) -!18 = !DILocation(line: 12, column: 15, scope: !10) -!19 = !DILocation(line: 13, column: 15, scope: !10) -!20 = !DILocation(line: 14, column: 12, scope: !10) -!21 = !DILocation(line: 16, column: 9, scope: !10) -!22 = !DILocation(line: 17, column: 9, scope: !10) -!23 = !DILocation(line: 19, column: 15, scope: !10) -!24 = !DILocation(line: 20, column: 15, scope: !10) -!25 = !DILocation(line: 21, column: 12, scope: !10) -!26 = !DILocation(line: 23, column: 9, scope: !10) -!27 = !DILocation(line: 24, column: 9, scope: !10) -!28 = !DILocation(line: 26, column: 15, scope: !10) -!29 = !DILocation(line: 27, column: 15, scope: !10) -!30 = !DILocation(line: 28, column: 12, scope: !10) -!31 = !DILocation(line: 30, column: 12, scope: !10) -!32 = !DILocation(line: 31, column: 12, scope: !10) -!33 = !DILocation(line: 32, column: 12, scope: !10) -!34 = !DILocation(line: 34, column: 1, scope: !10) +!3 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !4, file: !4, type: !5, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!4 = !DIFile(filename: ".", directory: ".") +!5 = !DISubroutineType(types: !6) +!6 = !{!7} +!7 = !DIBasicType(tag: DW_TAG_unspecified_type, name: "void") +!8 = !{} +!9 = !DILocation(line: 0, scope: !3) +!10 = 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: !8) +!11 = !DILocalVariable(name: "$expr_18", scope: !10, file: !2, line: 2, type: !12) +!12 = !DIBasicType(name: "Int256", size: 32) +!13 = !DILocation(line: 2, column: 9, scope: !10) +!14 = !DILocalVariable(name: "b", scope: !10, file: !2, line: 2, type: !12) +!15 = !DILocation(line: 2, column: 5, scope: !10) +!16 = !DILocalVariable(name: "a", scope: !10, file: !2, line: 3, type: !12) +!17 = !DILocation(line: 3, column: 5, scope: !10) +!18 = !DILocation(line: 3, column: 9, scope: !10) +!19 = !DILocalVariable(name: "res_div", scope: !10, file: !2, line: 5, type: !12) +!20 = !DILocation(line: 5, column: 5, scope: !10) +!21 = !DILocation(line: 5, column: 15, scope: !10) +!22 = !DILocalVariable(name: "res_rem", scope: !10, file: !2, line: 6, type: !12) +!23 = !DILocation(line: 6, column: 5, scope: !10) +!24 = !DILocation(line: 6, column: 15, scope: !10) +!25 = !DILocalVariable(name: "res1", scope: !10, file: !2, line: 7, type: !12) +!26 = !DILocation(line: 7, column: 5, scope: !10) +!27 = !DILocation(line: 7, column: 12, scope: !10) +!28 = !DILocalVariable(name: "$b_6", scope: !10, file: !2, line: 9, type: !12) +!29 = !DILocation(line: 9, column: 5, scope: !10) +!30 = !DILocation(line: 9, column: 9, scope: !10) +!31 = !DILocalVariable(name: "$a_7", scope: !10, file: !2, line: 10, type: !12) +!32 = !DILocation(line: 10, column: 5, scope: !10) +!33 = !DILocation(line: 10, column: 9, scope: !10) +!34 = !DILocalVariable(name: "$res_div_8", scope: !10, file: !2, line: 12, type: !12) +!35 = !DILocation(line: 12, column: 5, scope: !10) +!36 = !DILocation(line: 12, column: 15, scope: !10) +!37 = !DILocalVariable(name: "$res_rem_9", scope: !10, file: !2, line: 13, type: !12) +!38 = !DILocation(line: 13, column: 5, scope: !10) +!39 = !DILocation(line: 13, column: 15, scope: !10) +!40 = !DILocalVariable(name: "res2", scope: !10, file: !2, line: 14, type: !12) +!41 = !DILocation(line: 14, column: 5, scope: !10) +!42 = !DILocation(line: 14, column: 12, scope: !10) +!43 = !DILocalVariable(name: "$b_10", scope: !10, file: !2, line: 16, type: !12) +!44 = !DILocation(line: 16, column: 5, scope: !10) +!45 = !DILocation(line: 16, column: 9, scope: !10) +!46 = !DILocalVariable(name: "$a_11", scope: !10, file: !2, line: 17, type: !12) +!47 = !DILocation(line: 17, column: 5, scope: !10) +!48 = !DILocation(line: 17, column: 9, scope: !10) +!49 = !DILocalVariable(name: "$res_div_12", scope: !10, file: !2, line: 19, type: !12) +!50 = !DILocation(line: 19, column: 5, scope: !10) +!51 = !DILocation(line: 19, column: 15, scope: !10) +!52 = !DILocalVariable(name: "$res_rem_13", scope: !10, file: !2, line: 20, type: !12) +!53 = !DILocation(line: 20, column: 5, scope: !10) +!54 = !DILocation(line: 20, column: 15, scope: !10) +!55 = !DILocalVariable(name: "res3", scope: !10, file: !2, line: 21, type: !12) +!56 = !DILocation(line: 21, column: 5, scope: !10) +!57 = !DILocation(line: 21, column: 12, scope: !10) +!58 = !DILocalVariable(name: "$b_14", scope: !10, file: !2, line: 23, type: !12) +!59 = !DILocation(line: 23, column: 5, scope: !10) +!60 = !DILocation(line: 23, column: 9, scope: !10) +!61 = !DILocalVariable(name: "$a_15", scope: !10, file: !2, line: 24, type: !12) +!62 = !DILocation(line: 24, column: 5, scope: !10) +!63 = !DILocation(line: 24, column: 9, scope: !10) +!64 = !DILocalVariable(name: "$res_div_16", scope: !10, file: !2, line: 26, type: !12) +!65 = !DILocation(line: 26, column: 5, scope: !10) +!66 = !DILocation(line: 26, column: 15, scope: !10) +!67 = !DILocalVariable(name: "$res_rem_17", scope: !10, file: !2, line: 27, type: !12) +!68 = !DILocation(line: 27, column: 5, scope: !10) +!69 = !DILocation(line: 27, column: 15, scope: !10) +!70 = !DILocalVariable(name: "res4", scope: !10, file: !2, line: 28, type: !12) +!71 = !DILocation(line: 28, column: 5, scope: !10) +!72 = !DILocation(line: 28, column: 12, scope: !10) +!73 = !DILocalVariable(name: "res5", scope: !10, file: !2, line: 30, type: !12) +!74 = !DILocation(line: 30, column: 5, scope: !10) +!75 = !DILocation(line: 30, column: 12, scope: !10) +!76 = !DILocalVariable(name: "res6", scope: !10, file: !2, line: 31, type: !12) +!77 = !DILocation(line: 31, column: 5, scope: !10) +!78 = !DILocation(line: 31, column: 12, scope: !10) +!79 = !DILocalVariable(name: "res7", scope: !10, file: !2, line: 32, type: !12) +!80 = !DILocation(line: 32, column: 5, scope: !10) +!81 = !DILocation(line: 32, column: 12, scope: !10) +!82 = !DILocation(line: 34, column: 1, scope: !10) diff --git a/testsuite/expr/sdivtests3.ll b/testsuite/expr/sdivtests3.ll index f7715318..909b5aab 100644 --- a/testsuite/expr/sdivtests3.ll +++ b/testsuite/expr/sdivtests3.ll @@ -35,7 +35,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-pc-linux-gnu" +target triple = "x86_64-unknown-linux-gnu" %"$TyDescrTy_PrimTyp_19" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/testsuite/expr/sdivtests4.dbg.ll b/testsuite/expr/sdivtests4.dbg.ll index a0e0fe6d..c6808bd0 100644 --- a/testsuite/expr/sdivtests4.dbg.ll +++ b/testsuite/expr/sdivtests4.dbg.ll @@ -35,7 +35,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-pc-linux-gnu" +target triple = "x86_64-unknown-linux-gnu" %"$TyDescrTy_PrimTyp_19" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } @@ -90,7 +90,7 @@ target triple = "x86_64-pc-linux-gnu" @_transition_parameters = constant [0 x %"$TransDescr_462"] zeroinitializer @_transition_parameters_length = constant i32 0 -define void @_init_libs() !dbg !4 { +define void @_init_libs() !dbg !3 { entry: %"$gasrem_56" = load i64, i64* @_gasrem, align 8 %"$gascmp_57" = icmp ugt i64 5, %"$gasrem_56" @@ -172,6 +172,7 @@ declare void @_out_of_gas() define internal void @_scilla_expr_fun(i8* %0, %Int256* %1) !dbg !10 { entry: %"$expr_18" = alloca %Int256, align 8 + call void @llvm.dbg.declare(metadata %Int256* %"$expr_18", metadata !11, metadata !DIExpression()), !dbg !13 %"$gasrem_86" = load i64, i64* @_gasrem, align 8 %"$gascmp_87" = icmp ugt i64 1, %"$gasrem_86" br i1 %"$gascmp_87", label %"$out_of_gas_88", label %"$have_gas_89" @@ -184,6 +185,7 @@ entry: %"$consume_90" = sub i64 %"$gasrem_86", 1 store i64 %"$consume_90", i64* @_gasrem, align 8 %b = alloca %Int256, align 8 + call void @llvm.dbg.declare(metadata %Int256* %b, metadata !14, metadata !DIExpression()), !dbg !15 %"$gasrem_91" = load i64, i64* @_gasrem, align 8 %"$gascmp_92" = icmp ugt i64 1, %"$gasrem_91" br i1 %"$gascmp_92", label %"$out_of_gas_93", label %"$have_gas_94" @@ -195,7 +197,7 @@ entry: "$have_gas_94": ; preds = %"$out_of_gas_93", %"$have_gas_89" %"$consume_95" = sub i64 %"$gasrem_91", 1 store i64 %"$consume_95", i64* @_gasrem, align 8 - store %Int256 { i256 -1001 }, %Int256* %b, align 8, !dbg !11 + store %Int256 { i256 -1001 }, %Int256* %b, align 8, !dbg !13 %"$gasrem_96" = load i64, i64* @_gasrem, align 8 %"$gascmp_97" = icmp ugt i64 1, %"$gasrem_96" br i1 %"$gascmp_97", label %"$out_of_gas_98", label %"$have_gas_99" @@ -208,6 +210,7 @@ entry: %"$consume_100" = sub i64 %"$gasrem_96", 1 store i64 %"$consume_100", i64* @_gasrem, align 8 %a = alloca %Int256, align 8 + call void @llvm.dbg.declare(metadata %Int256* %a, metadata !16, metadata !DIExpression()), !dbg !17 %"$gasrem_101" = load i64, i64* @_gasrem, align 8 %"$gascmp_102" = icmp ugt i64 1, %"$gasrem_101" br i1 %"$gascmp_102", label %"$out_of_gas_103", label %"$have_gas_104" @@ -219,7 +222,7 @@ entry: "$have_gas_104": ; preds = %"$out_of_gas_103", %"$have_gas_99" %"$consume_105" = sub i64 %"$gasrem_101", 1 store i64 %"$consume_105", i64* @_gasrem, align 8 - store %Int256 { i256 31 }, %Int256* %a, align 8, !dbg !12 + store %Int256 { i256 31 }, %Int256* %a, align 8, !dbg !18 %"$gasrem_106" = load i64, i64* @_gasrem, align 8 %"$gascmp_107" = icmp ugt i64 1, %"$gasrem_106" br i1 %"$gascmp_107", label %"$out_of_gas_108", label %"$have_gas_109" @@ -232,6 +235,7 @@ entry: %"$consume_110" = sub i64 %"$gasrem_106", 1 store i64 %"$consume_110", i64* @_gasrem, align 8 %res_div = alloca %Int256, align 8 + call void @llvm.dbg.declare(metadata %Int256* %res_div, metadata !19, metadata !DIExpression()), !dbg !20 %"$gasrem_112" = load i64, i64* @_gasrem, align 8 %"$gascmp_113" = icmp ugt i64 80, %"$gasrem_112" br i1 %"$gascmp_113", label %"$out_of_gas_114", label %"$have_gas_115" @@ -250,9 +254,9 @@ entry: %"$div_b_120" = alloca %Int256, align 8 %"$b_121" = load %Int256, %Int256* %b, align 8 store %Int256 %"$b_121", %Int256* %"$div_b_120", align 8 - %"$div_call_122" = call %Int256* @_div_Int256(i8* %"$execptr_load_117", %Int256* %"$div_a_118", %Int256* %"$div_b_120"), !dbg !13 + %"$div_call_122" = call %Int256* @_div_Int256(i8* %"$execptr_load_117", %Int256* %"$div_a_118", %Int256* %"$div_b_120"), !dbg !21 %"$div_124" = load %Int256, %Int256* %"$div_call_122", align 8 - store %Int256 %"$div_124", %Int256* %res_div, align 8, !dbg !13 + store %Int256 %"$div_124", %Int256* %res_div, align 8, !dbg !21 %"$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" @@ -265,6 +269,7 @@ entry: %"$consume_129" = sub i64 %"$gasrem_125", 1 store i64 %"$consume_129", i64* @_gasrem, align 8 %res_rem = alloca %Int256, align 8 + call void @llvm.dbg.declare(metadata %Int256* %res_rem, metadata !22, metadata !DIExpression()), !dbg !23 %"$gasrem_131" = load i64, i64* @_gasrem, align 8 %"$gascmp_132" = icmp ugt i64 80, %"$gasrem_131" br i1 %"$gascmp_132", label %"$out_of_gas_133", label %"$have_gas_134" @@ -283,9 +288,9 @@ entry: %"$rem_b_139" = alloca %Int256, align 8 %"$b_140" = load %Int256, %Int256* %b, align 8 store %Int256 %"$b_140", %Int256* %"$rem_b_139", align 8 - %"$rem_call_141" = call %Int256* @_rem_Int256(i8* %"$execptr_load_136", %Int256* %"$rem_a_137", %Int256* %"$rem_b_139"), !dbg !14 + %"$rem_call_141" = call %Int256* @_rem_Int256(i8* %"$execptr_load_136", %Int256* %"$rem_a_137", %Int256* %"$rem_b_139"), !dbg !24 %"$rem_143" = load %Int256, %Int256* %"$rem_call_141", align 8 - store %Int256 %"$rem_143", %Int256* %res_rem, align 8, !dbg !14 + store %Int256 %"$rem_143", %Int256* %res_rem, align 8, !dbg !24 %"$gasrem_144" = load i64, i64* @_gasrem, align 8 %"$gascmp_145" = icmp ugt i64 1, %"$gasrem_144" br i1 %"$gascmp_145", label %"$out_of_gas_146", label %"$have_gas_147" @@ -298,6 +303,7 @@ entry: %"$consume_148" = sub i64 %"$gasrem_144", 1 store i64 %"$consume_148", i64* @_gasrem, align 8 %res1 = alloca %Int256, align 8 + call void @llvm.dbg.declare(metadata %Int256* %res1, metadata !25, metadata !DIExpression()), !dbg !26 %"$gasrem_150" = load i64, i64* @_gasrem, align 8 %"$gascmp_151" = icmp ugt i64 16, %"$gasrem_150" br i1 %"$gascmp_151", label %"$out_of_gas_152", label %"$have_gas_153" @@ -316,9 +322,9 @@ entry: %"$add_res_rem_158" = alloca %Int256, align 8 %"$res_rem_159" = load %Int256, %Int256* %res_rem, align 8 store %Int256 %"$res_rem_159", %Int256* %"$add_res_rem_158", align 8 - %"$add_call_160" = call %Int256* @_add_Int256(i8* %"$execptr_load_155", %Int256* %"$add_res_div_156", %Int256* %"$add_res_rem_158"), !dbg !15 + %"$add_call_160" = call %Int256* @_add_Int256(i8* %"$execptr_load_155", %Int256* %"$add_res_div_156", %Int256* %"$add_res_rem_158"), !dbg !27 %"$add_162" = load %Int256, %Int256* %"$add_call_160", align 8 - store %Int256 %"$add_162", %Int256* %res1, align 8, !dbg !15 + store %Int256 %"$add_162", %Int256* %res1, align 8, !dbg !27 %"$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" @@ -331,6 +337,7 @@ entry: %"$consume_167" = sub i64 %"$gasrem_163", 1 store i64 %"$consume_167", i64* @_gasrem, align 8 %"$b_6" = alloca %Int256, align 8 + call void @llvm.dbg.declare(metadata %Int256* %"$b_6", metadata !28, metadata !DIExpression()), !dbg !29 %"$gasrem_168" = load i64, i64* @_gasrem, align 8 %"$gascmp_169" = icmp ugt i64 1, %"$gasrem_168" br i1 %"$gascmp_169", label %"$out_of_gas_170", label %"$have_gas_171" @@ -342,7 +349,7 @@ entry: "$have_gas_171": ; preds = %"$out_of_gas_170", %"$have_gas_166" %"$consume_172" = sub i64 %"$gasrem_168", 1 store i64 %"$consume_172", i64* @_gasrem, align 8 - store %Int256 { i256 101111111111111 }, %Int256* %"$b_6", align 8, !dbg !16 + store %Int256 { i256 101111111111111 }, %Int256* %"$b_6", align 8, !dbg !30 %"$gasrem_173" = load i64, i64* @_gasrem, align 8 %"$gascmp_174" = icmp ugt i64 1, %"$gasrem_173" br i1 %"$gascmp_174", label %"$out_of_gas_175", label %"$have_gas_176" @@ -355,6 +362,7 @@ entry: %"$consume_177" = sub i64 %"$gasrem_173", 1 store i64 %"$consume_177", i64* @_gasrem, align 8 %"$a_7" = alloca %Int256, align 8 + call void @llvm.dbg.declare(metadata %Int256* %"$a_7", metadata !31, metadata !DIExpression()), !dbg !32 %"$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" @@ -366,7 +374,7 @@ entry: "$have_gas_181": ; preds = %"$out_of_gas_180", %"$have_gas_176" %"$consume_182" = sub i64 %"$gasrem_178", 1 store i64 %"$consume_182", i64* @_gasrem, align 8 - store %Int256 { i256 -311111111111 }, %Int256* %"$a_7", align 8, !dbg !17 + store %Int256 { i256 -311111111111 }, %Int256* %"$a_7", align 8, !dbg !33 %"$gasrem_183" = load i64, i64* @_gasrem, align 8 %"$gascmp_184" = icmp ugt i64 1, %"$gasrem_183" br i1 %"$gascmp_184", label %"$out_of_gas_185", label %"$have_gas_186" @@ -379,6 +387,7 @@ entry: %"$consume_187" = sub i64 %"$gasrem_183", 1 store i64 %"$consume_187", i64* @_gasrem, align 8 %"$res_div_8" = alloca %Int256, align 8 + call void @llvm.dbg.declare(metadata %Int256* %"$res_div_8", metadata !34, metadata !DIExpression()), !dbg !35 %"$gasrem_189" = load i64, i64* @_gasrem, align 8 %"$gascmp_190" = icmp ugt i64 80, %"$gasrem_189" br i1 %"$gascmp_190", label %"$out_of_gas_191", label %"$have_gas_192" @@ -397,9 +406,9 @@ entry: %"$div_$b_6_197" = alloca %Int256, align 8 %"$$b_6_198" = load %Int256, %Int256* %"$b_6", align 8 store %Int256 %"$$b_6_198", %Int256* %"$div_$b_6_197", align 8 - %"$div_call_199" = call %Int256* @_div_Int256(i8* %"$execptr_load_194", %Int256* %"$div_$a_7_195", %Int256* %"$div_$b_6_197"), !dbg !18 + %"$div_call_199" = call %Int256* @_div_Int256(i8* %"$execptr_load_194", %Int256* %"$div_$a_7_195", %Int256* %"$div_$b_6_197"), !dbg !36 %"$div_201" = load %Int256, %Int256* %"$div_call_199", align 8 - store %Int256 %"$div_201", %Int256* %"$res_div_8", align 8, !dbg !18 + store %Int256 %"$div_201", %Int256* %"$res_div_8", align 8, !dbg !36 %"$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" @@ -412,6 +421,7 @@ entry: %"$consume_206" = sub i64 %"$gasrem_202", 1 store i64 %"$consume_206", i64* @_gasrem, align 8 %"$res_rem_9" = alloca %Int256, align 8 + call void @llvm.dbg.declare(metadata %Int256* %"$res_rem_9", metadata !37, metadata !DIExpression()), !dbg !38 %"$gasrem_208" = load i64, i64* @_gasrem, align 8 %"$gascmp_209" = icmp ugt i64 80, %"$gasrem_208" br i1 %"$gascmp_209", label %"$out_of_gas_210", label %"$have_gas_211" @@ -430,9 +440,9 @@ entry: %"$rem_$b_6_216" = alloca %Int256, align 8 %"$$b_6_217" = load %Int256, %Int256* %"$b_6", align 8 store %Int256 %"$$b_6_217", %Int256* %"$rem_$b_6_216", align 8 - %"$rem_call_218" = call %Int256* @_rem_Int256(i8* %"$execptr_load_213", %Int256* %"$rem_$a_7_214", %Int256* %"$rem_$b_6_216"), !dbg !19 + %"$rem_call_218" = call %Int256* @_rem_Int256(i8* %"$execptr_load_213", %Int256* %"$rem_$a_7_214", %Int256* %"$rem_$b_6_216"), !dbg !39 %"$rem_220" = load %Int256, %Int256* %"$rem_call_218", align 8 - store %Int256 %"$rem_220", %Int256* %"$res_rem_9", align 8, !dbg !19 + store %Int256 %"$rem_220", %Int256* %"$res_rem_9", align 8, !dbg !39 %"$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" @@ -445,6 +455,7 @@ entry: %"$consume_225" = sub i64 %"$gasrem_221", 1 store i64 %"$consume_225", i64* @_gasrem, align 8 %res2 = alloca %Int256, align 8 + call void @llvm.dbg.declare(metadata %Int256* %res2, metadata !40, metadata !DIExpression()), !dbg !41 %"$gasrem_227" = load i64, i64* @_gasrem, align 8 %"$gascmp_228" = icmp ugt i64 16, %"$gasrem_227" br i1 %"$gascmp_228", label %"$out_of_gas_229", label %"$have_gas_230" @@ -463,9 +474,9 @@ entry: %"$add_$res_rem_9_235" = alloca %Int256, align 8 %"$$res_rem_9_236" = load %Int256, %Int256* %"$res_rem_9", align 8 store %Int256 %"$$res_rem_9_236", %Int256* %"$add_$res_rem_9_235", align 8 - %"$add_call_237" = call %Int256* @_add_Int256(i8* %"$execptr_load_232", %Int256* %"$add_$res_div_8_233", %Int256* %"$add_$res_rem_9_235"), !dbg !20 + %"$add_call_237" = call %Int256* @_add_Int256(i8* %"$execptr_load_232", %Int256* %"$add_$res_div_8_233", %Int256* %"$add_$res_rem_9_235"), !dbg !42 %"$add_239" = load %Int256, %Int256* %"$add_call_237", align 8 - store %Int256 %"$add_239", %Int256* %res2, align 8, !dbg !20 + store %Int256 %"$add_239", %Int256* %res2, align 8, !dbg !42 %"$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" @@ -478,6 +489,7 @@ entry: %"$consume_244" = sub i64 %"$gasrem_240", 1 store i64 %"$consume_244", i64* @_gasrem, align 8 %"$b_10" = alloca %Int256, align 8 + call void @llvm.dbg.declare(metadata %Int256* %"$b_10", metadata !43, metadata !DIExpression()), !dbg !44 %"$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" @@ -489,7 +501,7 @@ entry: "$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 - store %Int256 { i256 -10 }, %Int256* %"$b_10", align 8, !dbg !21 + store %Int256 { i256 -10 }, %Int256* %"$b_10", align 8, !dbg !45 %"$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" @@ -502,6 +514,7 @@ entry: %"$consume_254" = sub i64 %"$gasrem_250", 1 store i64 %"$consume_254", i64* @_gasrem, align 8 %"$a_11" = alloca %Int256, align 8 + call void @llvm.dbg.declare(metadata %Int256* %"$a_11", metadata !46, metadata !DIExpression()), !dbg !47 %"$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" @@ -513,7 +526,7 @@ entry: "$have_gas_258": ; preds = %"$out_of_gas_257", %"$have_gas_253" %"$consume_259" = sub i64 %"$gasrem_255", 1 store i64 %"$consume_259", i64* @_gasrem, align 8 - store %Int256 { i256 -3 }, %Int256* %"$a_11", align 8, !dbg !22 + store %Int256 { i256 -3 }, %Int256* %"$a_11", align 8, !dbg !48 %"$gasrem_260" = load i64, i64* @_gasrem, align 8 %"$gascmp_261" = icmp ugt i64 1, %"$gasrem_260" br i1 %"$gascmp_261", label %"$out_of_gas_262", label %"$have_gas_263" @@ -526,6 +539,7 @@ entry: %"$consume_264" = sub i64 %"$gasrem_260", 1 store i64 %"$consume_264", i64* @_gasrem, align 8 %"$res_div_12" = alloca %Int256, align 8 + call void @llvm.dbg.declare(metadata %Int256* %"$res_div_12", metadata !49, metadata !DIExpression()), !dbg !50 %"$gasrem_266" = load i64, i64* @_gasrem, align 8 %"$gascmp_267" = icmp ugt i64 80, %"$gasrem_266" br i1 %"$gascmp_267", label %"$out_of_gas_268", label %"$have_gas_269" @@ -544,9 +558,9 @@ entry: %"$div_$b_10_274" = alloca %Int256, align 8 %"$$b_10_275" = load %Int256, %Int256* %"$b_10", align 8 store %Int256 %"$$b_10_275", %Int256* %"$div_$b_10_274", align 8 - %"$div_call_276" = call %Int256* @_div_Int256(i8* %"$execptr_load_271", %Int256* %"$div_$a_11_272", %Int256* %"$div_$b_10_274"), !dbg !23 + %"$div_call_276" = call %Int256* @_div_Int256(i8* %"$execptr_load_271", %Int256* %"$div_$a_11_272", %Int256* %"$div_$b_10_274"), !dbg !51 %"$div_278" = load %Int256, %Int256* %"$div_call_276", align 8 - store %Int256 %"$div_278", %Int256* %"$res_div_12", align 8, !dbg !23 + store %Int256 %"$div_278", %Int256* %"$res_div_12", align 8, !dbg !51 %"$gasrem_279" = load i64, i64* @_gasrem, align 8 %"$gascmp_280" = icmp ugt i64 1, %"$gasrem_279" br i1 %"$gascmp_280", label %"$out_of_gas_281", label %"$have_gas_282" @@ -559,6 +573,7 @@ entry: %"$consume_283" = sub i64 %"$gasrem_279", 1 store i64 %"$consume_283", i64* @_gasrem, align 8 %"$res_rem_13" = alloca %Int256, align 8 + call void @llvm.dbg.declare(metadata %Int256* %"$res_rem_13", metadata !52, metadata !DIExpression()), !dbg !53 %"$gasrem_285" = load i64, i64* @_gasrem, align 8 %"$gascmp_286" = icmp ugt i64 80, %"$gasrem_285" br i1 %"$gascmp_286", label %"$out_of_gas_287", label %"$have_gas_288" @@ -577,9 +592,9 @@ entry: %"$rem_$b_10_293" = alloca %Int256, align 8 %"$$b_10_294" = load %Int256, %Int256* %"$b_10", align 8 store %Int256 %"$$b_10_294", %Int256* %"$rem_$b_10_293", align 8 - %"$rem_call_295" = call %Int256* @_rem_Int256(i8* %"$execptr_load_290", %Int256* %"$rem_$a_11_291", %Int256* %"$rem_$b_10_293"), !dbg !24 + %"$rem_call_295" = call %Int256* @_rem_Int256(i8* %"$execptr_load_290", %Int256* %"$rem_$a_11_291", %Int256* %"$rem_$b_10_293"), !dbg !54 %"$rem_297" = load %Int256, %Int256* %"$rem_call_295", align 8 - store %Int256 %"$rem_297", %Int256* %"$res_rem_13", align 8, !dbg !24 + store %Int256 %"$rem_297", %Int256* %"$res_rem_13", align 8, !dbg !54 %"$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" @@ -592,6 +607,7 @@ entry: %"$consume_302" = sub i64 %"$gasrem_298", 1 store i64 %"$consume_302", i64* @_gasrem, align 8 %res3 = alloca %Int256, align 8 + call void @llvm.dbg.declare(metadata %Int256* %res3, metadata !55, metadata !DIExpression()), !dbg !56 %"$gasrem_304" = load i64, i64* @_gasrem, align 8 %"$gascmp_305" = icmp ugt i64 16, %"$gasrem_304" br i1 %"$gascmp_305", label %"$out_of_gas_306", label %"$have_gas_307" @@ -610,9 +626,9 @@ entry: %"$add_$res_rem_13_312" = alloca %Int256, align 8 %"$$res_rem_13_313" = load %Int256, %Int256* %"$res_rem_13", align 8 store %Int256 %"$$res_rem_13_313", %Int256* %"$add_$res_rem_13_312", align 8 - %"$add_call_314" = call %Int256* @_add_Int256(i8* %"$execptr_load_309", %Int256* %"$add_$res_div_12_310", %Int256* %"$add_$res_rem_13_312"), !dbg !25 + %"$add_call_314" = call %Int256* @_add_Int256(i8* %"$execptr_load_309", %Int256* %"$add_$res_div_12_310", %Int256* %"$add_$res_rem_13_312"), !dbg !57 %"$add_316" = load %Int256, %Int256* %"$add_call_314", align 8 - store %Int256 %"$add_316", %Int256* %res3, align 8, !dbg !25 + store %Int256 %"$add_316", %Int256* %res3, align 8, !dbg !57 %"$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" @@ -625,6 +641,7 @@ entry: %"$consume_321" = sub i64 %"$gasrem_317", 1 store i64 %"$consume_321", i64* @_gasrem, align 8 %"$b_14" = alloca %Int256, align 8 + call void @llvm.dbg.declare(metadata %Int256* %"$b_14", metadata !58, metadata !DIExpression()), !dbg !59 %"$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" @@ -636,7 +653,7 @@ entry: "$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 - store %Int256 { i256 10 }, %Int256* %"$b_14", align 8, !dbg !26 + store %Int256 { i256 10 }, %Int256* %"$b_14", align 8, !dbg !60 %"$gasrem_327" = load i64, i64* @_gasrem, align 8 %"$gascmp_328" = icmp ugt i64 1, %"$gasrem_327" br i1 %"$gascmp_328", label %"$out_of_gas_329", label %"$have_gas_330" @@ -649,6 +666,7 @@ entry: %"$consume_331" = sub i64 %"$gasrem_327", 1 store i64 %"$consume_331", i64* @_gasrem, align 8 %"$a_15" = alloca %Int256, align 8 + call void @llvm.dbg.declare(metadata %Int256* %"$a_15", metadata !61, metadata !DIExpression()), !dbg !62 %"$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" @@ -660,7 +678,7 @@ entry: "$have_gas_335": ; preds = %"$out_of_gas_334", %"$have_gas_330" %"$consume_336" = sub i64 %"$gasrem_332", 1 store i64 %"$consume_336", i64* @_gasrem, align 8 - store %Int256 { i256 3 }, %Int256* %"$a_15", align 8, !dbg !27 + store %Int256 { i256 3 }, %Int256* %"$a_15", align 8, !dbg !63 %"$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" @@ -673,6 +691,7 @@ entry: %"$consume_341" = sub i64 %"$gasrem_337", 1 store i64 %"$consume_341", i64* @_gasrem, align 8 %"$res_div_16" = alloca %Int256, align 8 + call void @llvm.dbg.declare(metadata %Int256* %"$res_div_16", metadata !64, metadata !DIExpression()), !dbg !65 %"$gasrem_343" = load i64, i64* @_gasrem, align 8 %"$gascmp_344" = icmp ugt i64 80, %"$gasrem_343" br i1 %"$gascmp_344", label %"$out_of_gas_345", label %"$have_gas_346" @@ -691,9 +710,9 @@ entry: %"$div_$b_14_351" = alloca %Int256, align 8 %"$$b_14_352" = load %Int256, %Int256* %"$b_14", align 8 store %Int256 %"$$b_14_352", %Int256* %"$div_$b_14_351", align 8 - %"$div_call_353" = call %Int256* @_div_Int256(i8* %"$execptr_load_348", %Int256* %"$div_$a_15_349", %Int256* %"$div_$b_14_351"), !dbg !28 + %"$div_call_353" = call %Int256* @_div_Int256(i8* %"$execptr_load_348", %Int256* %"$div_$a_15_349", %Int256* %"$div_$b_14_351"), !dbg !66 %"$div_355" = load %Int256, %Int256* %"$div_call_353", align 8 - store %Int256 %"$div_355", %Int256* %"$res_div_16", align 8, !dbg !28 + store %Int256 %"$div_355", %Int256* %"$res_div_16", align 8, !dbg !66 %"$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" @@ -706,6 +725,7 @@ entry: %"$consume_360" = sub i64 %"$gasrem_356", 1 store i64 %"$consume_360", i64* @_gasrem, align 8 %"$res_rem_17" = alloca %Int256, align 8 + call void @llvm.dbg.declare(metadata %Int256* %"$res_rem_17", metadata !67, metadata !DIExpression()), !dbg !68 %"$gasrem_362" = load i64, i64* @_gasrem, align 8 %"$gascmp_363" = icmp ugt i64 80, %"$gasrem_362" br i1 %"$gascmp_363", label %"$out_of_gas_364", label %"$have_gas_365" @@ -724,9 +744,9 @@ entry: %"$rem_$b_14_370" = alloca %Int256, align 8 %"$$b_14_371" = load %Int256, %Int256* %"$b_14", align 8 store %Int256 %"$$b_14_371", %Int256* %"$rem_$b_14_370", align 8 - %"$rem_call_372" = call %Int256* @_rem_Int256(i8* %"$execptr_load_367", %Int256* %"$rem_$a_15_368", %Int256* %"$rem_$b_14_370"), !dbg !29 + %"$rem_call_372" = call %Int256* @_rem_Int256(i8* %"$execptr_load_367", %Int256* %"$rem_$a_15_368", %Int256* %"$rem_$b_14_370"), !dbg !69 %"$rem_374" = load %Int256, %Int256* %"$rem_call_372", align 8 - store %Int256 %"$rem_374", %Int256* %"$res_rem_17", align 8, !dbg !29 + store %Int256 %"$rem_374", %Int256* %"$res_rem_17", align 8, !dbg !69 %"$gasrem_375" = load i64, i64* @_gasrem, align 8 %"$gascmp_376" = icmp ugt i64 1, %"$gasrem_375" br i1 %"$gascmp_376", label %"$out_of_gas_377", label %"$have_gas_378" @@ -739,6 +759,7 @@ entry: %"$consume_379" = sub i64 %"$gasrem_375", 1 store i64 %"$consume_379", i64* @_gasrem, align 8 %res4 = alloca %Int256, align 8 + call void @llvm.dbg.declare(metadata %Int256* %res4, metadata !70, metadata !DIExpression()), !dbg !71 %"$gasrem_381" = load i64, i64* @_gasrem, align 8 %"$gascmp_382" = icmp ugt i64 16, %"$gasrem_381" br i1 %"$gascmp_382", label %"$out_of_gas_383", label %"$have_gas_384" @@ -757,9 +778,9 @@ entry: %"$add_$res_rem_17_389" = alloca %Int256, align 8 %"$$res_rem_17_390" = load %Int256, %Int256* %"$res_rem_17", align 8 store %Int256 %"$$res_rem_17_390", %Int256* %"$add_$res_rem_17_389", align 8 - %"$add_call_391" = call %Int256* @_add_Int256(i8* %"$execptr_load_386", %Int256* %"$add_$res_div_16_387", %Int256* %"$add_$res_rem_17_389"), !dbg !30 + %"$add_call_391" = call %Int256* @_add_Int256(i8* %"$execptr_load_386", %Int256* %"$add_$res_div_16_387", %Int256* %"$add_$res_rem_17_389"), !dbg !72 %"$add_393" = load %Int256, %Int256* %"$add_call_391", align 8 - store %Int256 %"$add_393", %Int256* %res4, align 8, !dbg !30 + store %Int256 %"$add_393", %Int256* %res4, align 8, !dbg !72 %"$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" @@ -772,6 +793,7 @@ entry: %"$consume_398" = sub i64 %"$gasrem_394", 1 store i64 %"$consume_398", i64* @_gasrem, align 8 %res5 = alloca %Int256, align 8 + call void @llvm.dbg.declare(metadata %Int256* %res5, metadata !73, metadata !DIExpression()), !dbg !74 %"$gasrem_400" = load i64, i64* @_gasrem, align 8 %"$gascmp_401" = icmp ugt i64 16, %"$gasrem_400" br i1 %"$gascmp_401", label %"$out_of_gas_402", label %"$have_gas_403" @@ -790,9 +812,9 @@ entry: %"$add_res2_408" = alloca %Int256, align 8 %"$res2_409" = load %Int256, %Int256* %res2, align 8 store %Int256 %"$res2_409", %Int256* %"$add_res2_408", align 8 - %"$add_call_410" = call %Int256* @_add_Int256(i8* %"$execptr_load_405", %Int256* %"$add_res1_406", %Int256* %"$add_res2_408"), !dbg !31 + %"$add_call_410" = call %Int256* @_add_Int256(i8* %"$execptr_load_405", %Int256* %"$add_res1_406", %Int256* %"$add_res2_408"), !dbg !75 %"$add_412" = load %Int256, %Int256* %"$add_call_410", align 8 - store %Int256 %"$add_412", %Int256* %res5, align 8, !dbg !31 + store %Int256 %"$add_412", %Int256* %res5, align 8, !dbg !75 %"$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" @@ -805,6 +827,7 @@ entry: %"$consume_417" = sub i64 %"$gasrem_413", 1 store i64 %"$consume_417", i64* @_gasrem, align 8 %res6 = alloca %Int256, align 8 + call void @llvm.dbg.declare(metadata %Int256* %res6, metadata !76, metadata !DIExpression()), !dbg !77 %"$gasrem_419" = load i64, i64* @_gasrem, align 8 %"$gascmp_420" = icmp ugt i64 16, %"$gasrem_419" br i1 %"$gascmp_420", label %"$out_of_gas_421", label %"$have_gas_422" @@ -823,9 +846,9 @@ entry: %"$add_res3_427" = alloca %Int256, align 8 %"$res3_428" = load %Int256, %Int256* %res3, align 8 store %Int256 %"$res3_428", %Int256* %"$add_res3_427", align 8 - %"$add_call_429" = call %Int256* @_add_Int256(i8* %"$execptr_load_424", %Int256* %"$add_res5_425", %Int256* %"$add_res3_427"), !dbg !32 + %"$add_call_429" = call %Int256* @_add_Int256(i8* %"$execptr_load_424", %Int256* %"$add_res5_425", %Int256* %"$add_res3_427"), !dbg !78 %"$add_431" = load %Int256, %Int256* %"$add_call_429", align 8 - store %Int256 %"$add_431", %Int256* %res6, align 8, !dbg !32 + store %Int256 %"$add_431", %Int256* %res6, align 8, !dbg !78 %"$gasrem_432" = load i64, i64* @_gasrem, align 8 %"$gascmp_433" = icmp ugt i64 1, %"$gasrem_432" br i1 %"$gascmp_433", label %"$out_of_gas_434", label %"$have_gas_435" @@ -838,6 +861,7 @@ entry: %"$consume_436" = sub i64 %"$gasrem_432", 1 store i64 %"$consume_436", i64* @_gasrem, align 8 %res7 = alloca %Int256, align 8 + call void @llvm.dbg.declare(metadata %Int256* %res7, metadata !79, metadata !DIExpression()), !dbg !80 %"$gasrem_438" = load i64, i64* @_gasrem, align 8 %"$gascmp_439" = icmp ugt i64 16, %"$gasrem_438" br i1 %"$gascmp_439", label %"$out_of_gas_440", label %"$have_gas_441" @@ -856,9 +880,9 @@ entry: %"$add_res6_446" = alloca %Int256, align 8 %"$res6_447" = load %Int256, %Int256* %res6, align 8 store %Int256 %"$res6_447", %Int256* %"$add_res6_446", align 8 - %"$add_call_448" = call %Int256* @_add_Int256(i8* %"$execptr_load_443", %Int256* %"$add_res4_444", %Int256* %"$add_res6_446"), !dbg !33 + %"$add_call_448" = call %Int256* @_add_Int256(i8* %"$execptr_load_443", %Int256* %"$add_res4_444", %Int256* %"$add_res6_446"), !dbg !81 %"$add_450" = load %Int256, %Int256* %"$add_call_448", align 8 - store %Int256 %"$add_450", %Int256* %res7, align 8, !dbg !33 + store %Int256 %"$add_450", %Int256* %res7, align 8, !dbg !81 %"$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" @@ -871,12 +895,15 @@ entry: %"$consume_455" = sub i64 %"$gasrem_451", 1 store i64 %"$consume_455", i64* @_gasrem, align 8 %"$res7_456" = load %Int256, %Int256* %res7, align 8 - store %Int256 %"$res7_456", %Int256* %"$expr_18", align 8, !dbg !34 + store %Int256 %"$res7_456", %Int256* %"$expr_18", align 8, !dbg !82 %"$$expr_18_457" = load %Int256, %Int256* %"$expr_18", align 8 store %Int256 %"$$expr_18_457", %Int256* %1, align 8 ret void } +; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn +declare void @llvm.dbg.declare(metadata, metadata, metadata) #0 + declare %Int256* @_div_Int256(i8*, %Int256*, %Int256*) declare %Int256* @_rem_Int256(i8*, %Int256*, %Int256*) @@ -895,41 +922,91 @@ entry: ret void } +attributes #0 = { nocallback nofree nosync nounwind readnone speculatable willreturn } + !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) +!1 = distinct !DICompileUnit(language: DW_LANG_C89, file: !2, producer: "Scilla Compiler", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false) !2 = !DIFile(filename: "sdivtests4.scilexp", directory: "codegen/expr") -!3 = !{} -!4 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !5, file: !5, type: !6, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!5 = !DIFile(filename: ".", directory: ".") -!6 = !DISubroutineType(types: !7) -!7 = !{!8} -!8 = !DIBasicType(tag: DW_TAG_unspecified_type, name: "void") -!9 = !DILocation(line: 0, scope: !4) -!10 = distinct !DISubprogram(name: "_scilla_expr_fun", linkageName: "_scilla_expr_fun", scope: !2, file: !2, line: 2, type: !6, scopeLine: 2, spFlags: DISPFlagDefinition, unit: !1, retainedNodes: !3) -!11 = !DILocation(line: 2, column: 9, scope: !10) -!12 = !DILocation(line: 3, column: 9, scope: !10) -!13 = !DILocation(line: 5, column: 15, scope: !10) -!14 = !DILocation(line: 6, column: 15, scope: !10) -!15 = !DILocation(line: 7, column: 12, scope: !10) -!16 = !DILocation(line: 9, column: 9, scope: !10) -!17 = !DILocation(line: 10, column: 9, scope: !10) -!18 = !DILocation(line: 12, column: 15, scope: !10) -!19 = !DILocation(line: 13, column: 15, scope: !10) -!20 = !DILocation(line: 14, column: 12, scope: !10) -!21 = !DILocation(line: 16, column: 9, scope: !10) -!22 = !DILocation(line: 17, column: 9, scope: !10) -!23 = !DILocation(line: 19, column: 15, scope: !10) -!24 = !DILocation(line: 20, column: 15, scope: !10) -!25 = !DILocation(line: 21, column: 12, scope: !10) -!26 = !DILocation(line: 23, column: 9, scope: !10) -!27 = !DILocation(line: 24, column: 9, scope: !10) -!28 = !DILocation(line: 26, column: 15, scope: !10) -!29 = !DILocation(line: 27, column: 15, scope: !10) -!30 = !DILocation(line: 28, column: 12, scope: !10) -!31 = !DILocation(line: 30, column: 12, scope: !10) -!32 = !DILocation(line: 31, column: 12, scope: !10) -!33 = !DILocation(line: 32, column: 12, scope: !10) -!34 = !DILocation(line: 34, column: 1, scope: !10) +!3 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !4, file: !4, type: !5, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !8) +!4 = !DIFile(filename: ".", directory: ".") +!5 = !DISubroutineType(types: !6) +!6 = !{!7} +!7 = !DIBasicType(tag: DW_TAG_unspecified_type, name: "void") +!8 = !{} +!9 = !DILocation(line: 0, scope: !3) +!10 = 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: !8) +!11 = !DILocalVariable(name: "$expr_18", scope: !10, file: !2, line: 2, type: !12) +!12 = !DIBasicType(name: "Int256", size: 32) +!13 = !DILocation(line: 2, column: 9, scope: !10) +!14 = !DILocalVariable(name: "b", scope: !10, file: !2, line: 2, type: !12) +!15 = !DILocation(line: 2, column: 5, scope: !10) +!16 = !DILocalVariable(name: "a", scope: !10, file: !2, line: 3, type: !12) +!17 = !DILocation(line: 3, column: 5, scope: !10) +!18 = !DILocation(line: 3, column: 9, scope: !10) +!19 = !DILocalVariable(name: "res_div", scope: !10, file: !2, line: 5, type: !12) +!20 = !DILocation(line: 5, column: 5, scope: !10) +!21 = !DILocation(line: 5, column: 15, scope: !10) +!22 = !DILocalVariable(name: "res_rem", scope: !10, file: !2, line: 6, type: !12) +!23 = !DILocation(line: 6, column: 5, scope: !10) +!24 = !DILocation(line: 6, column: 15, scope: !10) +!25 = !DILocalVariable(name: "res1", scope: !10, file: !2, line: 7, type: !12) +!26 = !DILocation(line: 7, column: 5, scope: !10) +!27 = !DILocation(line: 7, column: 12, scope: !10) +!28 = !DILocalVariable(name: "$b_6", scope: !10, file: !2, line: 9, type: !12) +!29 = !DILocation(line: 9, column: 5, scope: !10) +!30 = !DILocation(line: 9, column: 9, scope: !10) +!31 = !DILocalVariable(name: "$a_7", scope: !10, file: !2, line: 10, type: !12) +!32 = !DILocation(line: 10, column: 5, scope: !10) +!33 = !DILocation(line: 10, column: 9, scope: !10) +!34 = !DILocalVariable(name: "$res_div_8", scope: !10, file: !2, line: 12, type: !12) +!35 = !DILocation(line: 12, column: 5, scope: !10) +!36 = !DILocation(line: 12, column: 15, scope: !10) +!37 = !DILocalVariable(name: "$res_rem_9", scope: !10, file: !2, line: 13, type: !12) +!38 = !DILocation(line: 13, column: 5, scope: !10) +!39 = !DILocation(line: 13, column: 15, scope: !10) +!40 = !DILocalVariable(name: "res2", scope: !10, file: !2, line: 14, type: !12) +!41 = !DILocation(line: 14, column: 5, scope: !10) +!42 = !DILocation(line: 14, column: 12, scope: !10) +!43 = !DILocalVariable(name: "$b_10", scope: !10, file: !2, line: 16, type: !12) +!44 = !DILocation(line: 16, column: 5, scope: !10) +!45 = !DILocation(line: 16, column: 9, scope: !10) +!46 = !DILocalVariable(name: "$a_11", scope: !10, file: !2, line: 17, type: !12) +!47 = !DILocation(line: 17, column: 5, scope: !10) +!48 = !DILocation(line: 17, column: 9, scope: !10) +!49 = !DILocalVariable(name: "$res_div_12", scope: !10, file: !2, line: 19, type: !12) +!50 = !DILocation(line: 19, column: 5, scope: !10) +!51 = !DILocation(line: 19, column: 15, scope: !10) +!52 = !DILocalVariable(name: "$res_rem_13", scope: !10, file: !2, line: 20, type: !12) +!53 = !DILocation(line: 20, column: 5, scope: !10) +!54 = !DILocation(line: 20, column: 15, scope: !10) +!55 = !DILocalVariable(name: "res3", scope: !10, file: !2, line: 21, type: !12) +!56 = !DILocation(line: 21, column: 5, scope: !10) +!57 = !DILocation(line: 21, column: 12, scope: !10) +!58 = !DILocalVariable(name: "$b_14", scope: !10, file: !2, line: 23, type: !12) +!59 = !DILocation(line: 23, column: 5, scope: !10) +!60 = !DILocation(line: 23, column: 9, scope: !10) +!61 = !DILocalVariable(name: "$a_15", scope: !10, file: !2, line: 24, type: !12) +!62 = !DILocation(line: 24, column: 5, scope: !10) +!63 = !DILocation(line: 24, column: 9, scope: !10) +!64 = !DILocalVariable(name: "$res_div_16", scope: !10, file: !2, line: 26, type: !12) +!65 = !DILocation(line: 26, column: 5, scope: !10) +!66 = !DILocation(line: 26, column: 15, scope: !10) +!67 = !DILocalVariable(name: "$res_rem_17", scope: !10, file: !2, line: 27, type: !12) +!68 = !DILocation(line: 27, column: 5, scope: !10) +!69 = !DILocation(line: 27, column: 15, scope: !10) +!70 = !DILocalVariable(name: "res4", scope: !10, file: !2, line: 28, type: !12) +!71 = !DILocation(line: 28, column: 5, scope: !10) +!72 = !DILocation(line: 28, column: 12, scope: !10) +!73 = !DILocalVariable(name: "res5", scope: !10, file: !2, line: 30, type: !12) +!74 = !DILocation(line: 30, column: 5, scope: !10) +!75 = !DILocation(line: 30, column: 12, scope: !10) +!76 = !DILocalVariable(name: "res6", scope: !10, file: !2, line: 31, type: !12) +!77 = !DILocation(line: 31, column: 5, scope: !10) +!78 = !DILocation(line: 31, column: 12, scope: !10) +!79 = !DILocalVariable(name: "res7", scope: !10, file: !2, line: 32, type: !12) +!80 = !DILocation(line: 32, column: 5, scope: !10) +!81 = !DILocation(line: 32, column: 12, scope: !10) +!82 = !DILocation(line: 34, column: 1, scope: !10) diff --git a/testsuite/expr/sdivtests4.ll b/testsuite/expr/sdivtests4.ll index fd49c6c3..04b96af0 100644 --- a/testsuite/expr/sdivtests4.ll +++ b/testsuite/expr/sdivtests4.ll @@ -35,7 +35,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-pc-linux-gnu" +target triple = "x86_64-unknown-linux-gnu" %"$TyDescrTy_PrimTyp_19" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/testsuite/expr/simple-fun.dbg.ll b/testsuite/expr/simple-fun.dbg.ll index 64dbde5a..f22d4724 100644 --- a/testsuite/expr/simple-fun.dbg.ll +++ b/testsuite/expr/simple-fun.dbg.ll @@ -7,14 +7,14 @@ ; 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-pc-linux-gnu" +target triple = "x86_64-unknown-linux-gnu" %"$TyDescrTy_PrimTyp_10" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } %Int32 = type { i32 } -%"$ParamDescr_123" = type { %ParamDescrString, %_TyDescrTy_Typ* } +%"$ParamDescr_124" = type { %ParamDescrString, %_TyDescrTy_Typ* } %ParamDescrString = type { i8*, i32 } -%"$TransDescr_124" = type { %ParamDescrString, i32, %"$ParamDescr_123"* } +%"$TransDescr_125" = type { %ParamDescrString, i32, %"$ParamDescr_124"* } %"$$fundef_8_env_47" = type {} @_execptr = global i8* null @@ -57,14 +57,18 @@ target triple = "x86_64-pc-linux-gnu" @"$_gas_charge_accPairUtils_4" = global %Int32 zeroinitializer @_tydescr_table = constant [15 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_40", %_TyDescrTy_Typ* @"$TyDescr_ReplicateContr_38", %_TyDescrTy_Typ* @"$TyDescr_Message_32", %_TyDescrTy_Typ* @"$TyDescr_Int32_12"] @_tydescr_table_length = constant i32 15 -@_contract_parameters = constant [0 x %"$ParamDescr_123"] zeroinitializer +@_contract_parameters = constant [0 x %"$ParamDescr_124"] zeroinitializer @_contract_parameters_length = constant i32 0 -@_transition_parameters = constant [0 x %"$TransDescr_124"] zeroinitializer +@_transition_parameters = constant [0 x %"$TransDescr_125"] zeroinitializer @_transition_parameters_length = constant i32 0 -define internal %Int32 @"$fundef_8"(%"$$fundef_8_env_47"* %0, %Int32 %1) !dbg !4 { +define internal %Int32 @"$fundef_8"(%"$$fundef_8_env_47"* %0, %Int32 %1) !dbg !3 { entry: + %"$a_54" = alloca %Int32, align 8 + store %Int32 %1, %Int32* %"$a_54", align 4 + call void @llvm.dbg.declare(metadata %Int32* %"$a_54", metadata !8, metadata !DIExpression()), !dbg !10 %"$retval_9" = alloca %Int32, align 8 + call void @llvm.dbg.declare(metadata %Int32* %"$retval_9", metadata !11, metadata !DIExpression()), !dbg !12 %"$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" @@ -76,194 +80,211 @@ entry: "$have_gas_51": ; preds = %"$out_of_gas_50", %entry %"$consume_52" = sub i64 %"$gasrem_48", 1 store i64 %"$consume_52", i64* @_gasrem, align 8 - store %Int32 %1, %Int32* %"$retval_9", align 4, !dbg !8 + store %Int32 %1, %Int32* %"$retval_9", align 4, !dbg !12 %"$$retval_9_53" = load %Int32, %Int32* %"$retval_9", align 4 ret %Int32 %"$$retval_9_53" } +; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn +declare void @llvm.dbg.declare(metadata, metadata, metadata) #0 + declare void @_out_of_gas() -define void @_init_libs() !dbg !9 { +define void @_init_libs() !dbg !13 { entry: - %"$gasrem_54" = load i64, i64* @_gasrem, align 8 - %"$gascmp_55" = icmp ugt i64 5, %"$gasrem_54" - br i1 %"$gascmp_55", label %"$out_of_gas_56", label %"$have_gas_57" + %"$gasrem_55" = load i64, i64* @_gasrem, align 8 + %"$gascmp_56" = icmp ugt i64 5, %"$gasrem_55" + br i1 %"$gascmp_56", label %"$out_of_gas_57", label %"$have_gas_58" -"$out_of_gas_56": ; preds = %entry +"$out_of_gas_57": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_57" + br label %"$have_gas_58" -"$have_gas_57": ; preds = %"$out_of_gas_56", %entry - %"$consume_58" = sub i64 %"$gasrem_54", 5 - store i64 %"$consume_58", i64* @_gasrem, align 8 - store %Int32 { i32 5 }, %Int32* @"$_gas_charge_accrec_lib_5", align 4, !dbg !11 - %"$gasrem_59" = load i64, i64* @_gasrem, align 8 - %"$gascmp_60" = icmp ugt i64 8, %"$gasrem_59" - br i1 %"$gascmp_60", label %"$out_of_gas_61", label %"$have_gas_62" +"$have_gas_58": ; preds = %"$out_of_gas_57", %entry + %"$consume_59" = sub i64 %"$gasrem_55", 5 + store i64 %"$consume_59", i64* @_gasrem, align 8 + store %Int32 { i32 5 }, %Int32* @"$_gas_charge_accrec_lib_5", align 4, !dbg !15 + %"$gasrem_60" = load i64, i64* @_gasrem, align 8 + %"$gascmp_61" = icmp ugt i64 8, %"$gasrem_60" + br i1 %"$gascmp_61", label %"$out_of_gas_62", label %"$have_gas_63" -"$out_of_gas_61": ; preds = %"$have_gas_57" +"$out_of_gas_62": ; preds = %"$have_gas_58" call void @_out_of_gas() - br label %"$have_gas_62" + br label %"$have_gas_63" -"$have_gas_62": ; preds = %"$out_of_gas_61", %"$have_gas_57" - %"$consume_63" = sub i64 %"$gasrem_59", 8 - store i64 %"$consume_63", i64* @_gasrem, align 8 - store %Int32 { i32 8 }, %Int32* @"$_gas_charge_accBoolUtils_0", align 4, !dbg !11 - %"$gasrem_64" = load i64, i64* @_gasrem, align 8 - %"$gascmp_65" = icmp ugt i64 196, %"$gasrem_64" - br i1 %"$gascmp_65", label %"$out_of_gas_66", label %"$have_gas_67" +"$have_gas_63": ; preds = %"$out_of_gas_62", %"$have_gas_58" + %"$consume_64" = sub i64 %"$gasrem_60", 8 + store i64 %"$consume_64", i64* @_gasrem, align 8 + store %Int32 { i32 8 }, %Int32* @"$_gas_charge_accBoolUtils_0", align 4, !dbg !15 + %"$gasrem_65" = load i64, i64* @_gasrem, align 8 + %"$gascmp_66" = icmp ugt i64 196, %"$gasrem_65" + br i1 %"$gascmp_66", label %"$out_of_gas_67", label %"$have_gas_68" -"$out_of_gas_66": ; preds = %"$have_gas_62" +"$out_of_gas_67": ; preds = %"$have_gas_63" call void @_out_of_gas() - br label %"$have_gas_67" + br label %"$have_gas_68" -"$have_gas_67": ; preds = %"$out_of_gas_66", %"$have_gas_62" - %"$consume_68" = sub i64 %"$gasrem_64", 196 - store i64 %"$consume_68", i64* @_gasrem, align 8 - store %Int32 { i32 196 }, %Int32* @"$_gas_charge_accIntUtils_1", align 4, !dbg !11 - %"$gasrem_69" = load i64, i64* @_gasrem, align 8 - %"$gascmp_70" = icmp ugt i64 20, %"$gasrem_69" - br i1 %"$gascmp_70", label %"$out_of_gas_71", label %"$have_gas_72" +"$have_gas_68": ; preds = %"$out_of_gas_67", %"$have_gas_63" + %"$consume_69" = sub i64 %"$gasrem_65", 196 + store i64 %"$consume_69", i64* @_gasrem, align 8 + store %Int32 { i32 196 }, %Int32* @"$_gas_charge_accIntUtils_1", align 4, !dbg !15 + %"$gasrem_70" = load i64, i64* @_gasrem, align 8 + %"$gascmp_71" = icmp ugt i64 20, %"$gasrem_70" + br i1 %"$gascmp_71", label %"$out_of_gas_72", label %"$have_gas_73" -"$out_of_gas_71": ; preds = %"$have_gas_67" +"$out_of_gas_72": ; preds = %"$have_gas_68" call void @_out_of_gas() - br label %"$have_gas_72" + br label %"$have_gas_73" -"$have_gas_72": ; preds = %"$out_of_gas_71", %"$have_gas_67" - %"$consume_73" = sub i64 %"$gasrem_69", 20 - store i64 %"$consume_73", i64* @_gasrem, align 8 - store %Int32 { i32 20 }, %Int32* @"$_gas_charge_accListUtils_2", align 4, !dbg !11 - %"$gasrem_74" = load i64, i64* @_gasrem, align 8 - %"$gascmp_75" = icmp ugt i64 12, %"$gasrem_74" - br i1 %"$gascmp_75", label %"$out_of_gas_76", label %"$have_gas_77" +"$have_gas_73": ; preds = %"$out_of_gas_72", %"$have_gas_68" + %"$consume_74" = sub i64 %"$gasrem_70", 20 + store i64 %"$consume_74", i64* @_gasrem, align 8 + store %Int32 { i32 20 }, %Int32* @"$_gas_charge_accListUtils_2", align 4, !dbg !15 + %"$gasrem_75" = load i64, i64* @_gasrem, align 8 + %"$gascmp_76" = icmp ugt i64 12, %"$gasrem_75" + br i1 %"$gascmp_76", label %"$out_of_gas_77", label %"$have_gas_78" -"$out_of_gas_76": ; preds = %"$have_gas_72" +"$out_of_gas_77": ; preds = %"$have_gas_73" call void @_out_of_gas() - br label %"$have_gas_77" + br label %"$have_gas_78" -"$have_gas_77": ; preds = %"$out_of_gas_76", %"$have_gas_72" - %"$consume_78" = sub i64 %"$gasrem_74", 12 - store i64 %"$consume_78", i64* @_gasrem, align 8 - store %Int32 { i32 12 }, %Int32* @"$_gas_charge_accNatUtils_3", align 4, !dbg !11 - %"$gasrem_79" = load i64, i64* @_gasrem, align 8 - %"$gascmp_80" = icmp ugt i64 2, %"$gasrem_79" - br i1 %"$gascmp_80", label %"$out_of_gas_81", label %"$have_gas_82" +"$have_gas_78": ; preds = %"$out_of_gas_77", %"$have_gas_73" + %"$consume_79" = sub i64 %"$gasrem_75", 12 + store i64 %"$consume_79", i64* @_gasrem, align 8 + store %Int32 { i32 12 }, %Int32* @"$_gas_charge_accNatUtils_3", align 4, !dbg !15 + %"$gasrem_80" = load i64, i64* @_gasrem, align 8 + %"$gascmp_81" = icmp ugt i64 2, %"$gasrem_80" + br i1 %"$gascmp_81", label %"$out_of_gas_82", label %"$have_gas_83" -"$out_of_gas_81": ; preds = %"$have_gas_77" +"$out_of_gas_82": ; preds = %"$have_gas_78" call void @_out_of_gas() - br label %"$have_gas_82" + br label %"$have_gas_83" -"$have_gas_82": ; preds = %"$out_of_gas_81", %"$have_gas_77" - %"$consume_83" = sub i64 %"$gasrem_79", 2 - store i64 %"$consume_83", i64* @_gasrem, align 8 - store %Int32 { i32 2 }, %Int32* @"$_gas_charge_accPairUtils_4", align 4, !dbg !11 +"$have_gas_83": ; preds = %"$out_of_gas_82", %"$have_gas_78" + %"$consume_84" = sub i64 %"$gasrem_80", 2 + store i64 %"$consume_84", i64* @_gasrem, align 8 + store %Int32 { i32 2 }, %Int32* @"$_gas_charge_accPairUtils_4", align 4, !dbg !15 ret void } -define internal %Int32 @_scilla_expr_fun(i8* %0) !dbg !12 { +define internal %Int32 @_scilla_expr_fun(i8* %0) !dbg !16 { entry: %"$expr_7" = alloca %Int32, 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" + call void @llvm.dbg.declare(metadata %Int32* %"$expr_7", metadata !17, metadata !DIExpression()), !dbg !18 + %"$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_86": ; preds = %entry +"$out_of_gas_87": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_87" + br label %"$have_gas_88" -"$have_gas_87": ; preds = %"$out_of_gas_86", %entry - %"$consume_88" = sub i64 %"$gasrem_84", 1 - store i64 %"$consume_88", i64* @_gasrem, align 8 +"$have_gas_88": ; preds = %"$out_of_gas_87", %entry + %"$consume_89" = sub i64 %"$gasrem_85", 1 + store i64 %"$consume_89", i64* @_gasrem, align 8 %f = alloca { %Int32 (i8*, %Int32)*, i8* }, align 8 - %"$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" + %"$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_91": ; preds = %"$have_gas_87" +"$out_of_gas_92": ; preds = %"$have_gas_88" call void @_out_of_gas() - br label %"$have_gas_92" + br label %"$have_gas_93" -"$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_8_env_47"*, %Int32)* @"$fundef_8" to %Int32 (i8*, %Int32)*), i8* null }, { %Int32 (i8*, %Int32)*, i8* }* %f, align 8, !dbg !13 - %"$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" +"$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 (i8*, %Int32)*, i8* } { %Int32 (i8*, %Int32)* bitcast (%Int32 (%"$$fundef_8_env_47"*, %Int32)* @"$fundef_8" to %Int32 (i8*, %Int32)*), i8* null }, { %Int32 (i8*, %Int32)*, i8* }* %f, align 8, !dbg !19 + %"$gasrem_98" = load i64, i64* @_gasrem, align 8 + %"$gascmp_99" = icmp ugt i64 1, %"$gasrem_98" + br i1 %"$gascmp_99", label %"$out_of_gas_100", label %"$have_gas_101" -"$out_of_gas_99": ; preds = %"$have_gas_92" +"$out_of_gas_100": ; preds = %"$have_gas_93" call void @_out_of_gas() - br label %"$have_gas_100" + br label %"$have_gas_101" -"$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 +"$have_gas_101": ; preds = %"$out_of_gas_100", %"$have_gas_93" + %"$consume_102" = sub i64 %"$gasrem_98", 1 + store i64 %"$consume_102", i64* @_gasrem, align 8 %i = alloca %Int32, 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" + call void @llvm.dbg.declare(metadata %Int32* %i, metadata !20, metadata !DIExpression()), !dbg !21 + %"$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_104": ; preds = %"$have_gas_100" +"$out_of_gas_105": ; preds = %"$have_gas_101" call void @_out_of_gas() - br label %"$have_gas_105" + br label %"$have_gas_106" -"$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 zeroinitializer, %Int32* %i, align 4, !dbg !14 - %"$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" +"$have_gas_106": ; preds = %"$out_of_gas_105", %"$have_gas_101" + %"$consume_107" = sub i64 %"$gasrem_103", 1 + store i64 %"$consume_107", i64* @_gasrem, align 8 + store %Int32 zeroinitializer, %Int32* %i, align 4, !dbg !22 + %"$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" -"$out_of_gas_109": ; preds = %"$have_gas_105" +"$out_of_gas_110": ; preds = %"$have_gas_106" call void @_out_of_gas() - br label %"$have_gas_110" + br label %"$have_gas_111" -"$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 +"$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 %"$f_6" = alloca %Int32, align 8 - %"$f_112" = load { %Int32 (i8*, %Int32)*, i8* }, { %Int32 (i8*, %Int32)*, i8* }* %f, align 8 - %"$f_fptr_113" = extractvalue { %Int32 (i8*, %Int32)*, i8* } %"$f_112", 0 - %"$f_envptr_114" = extractvalue { %Int32 (i8*, %Int32)*, i8* } %"$f_112", 1 - %"$i_115" = load %Int32, %Int32* %i, align 4 - %"$f_call_116" = call %Int32 %"$f_fptr_113"(i8* %"$f_envptr_114", %Int32 %"$i_115"), !dbg !15 - store %Int32 %"$f_call_116", %Int32* %"$f_6", align 4, !dbg !15 - %"$$f_6_117" = load %Int32, %Int32* %"$f_6", align 4 - store %Int32 %"$$f_6_117", %Int32* %"$expr_7", align 4, !dbg !15 - %"$$expr_7_118" = load %Int32, %Int32* %"$expr_7", align 4 - ret %Int32 %"$$expr_7_118" + call void @llvm.dbg.declare(metadata %Int32* %"$f_6", metadata !23, metadata !DIExpression()), !dbg !24 + %"$f_113" = load { %Int32 (i8*, %Int32)*, i8* }, { %Int32 (i8*, %Int32)*, i8* }* %f, align 8 + %"$f_fptr_114" = extractvalue { %Int32 (i8*, %Int32)*, i8* } %"$f_113", 0 + %"$f_envptr_115" = extractvalue { %Int32 (i8*, %Int32)*, i8* } %"$f_113", 1 + %"$i_116" = load %Int32, %Int32* %i, align 4 + %"$f_call_117" = call %Int32 %"$f_fptr_114"(i8* %"$f_envptr_115", %Int32 %"$i_116"), !dbg !24 + store %Int32 %"$f_call_117", %Int32* %"$f_6", align 4, !dbg !24 + %"$$f_6_118" = load %Int32, %Int32* %"$f_6", align 4 + store %Int32 %"$$f_6_118", %Int32* %"$expr_7", align 4, !dbg !24 + %"$$expr_7_119" = load %Int32, %Int32* %"$expr_7", align 4 + ret %Int32 %"$$expr_7_119" } declare void @_print_scilla_val(i8*, %_TyDescrTy_Typ*, i8*) define void @scilla_main() { entry: - %"$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_12", i8* %"$memvoidcast_121") + %"$exprval_120" = call %Int32 @_scilla_expr_fun(i8* null) + %"$pval_121" = alloca %Int32, align 8 + %"$memvoidcast_122" = bitcast %Int32* %"$pval_121" to i8* + store %Int32 %"$exprval_120", %Int32* %"$pval_121", align 4 + %"$execptr_load_123" = load i8*, i8** @_execptr, align 8 + call void @_print_scilla_val(i8* %"$execptr_load_123", %_TyDescrTy_Typ* @"$TyDescr_Int32_12", i8* %"$memvoidcast_122") ret void } +attributes #0 = { nocallback nofree nosync nounwind readnone speculatable willreturn } + !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) +!1 = distinct !DICompileUnit(language: DW_LANG_C89, file: !2, producer: "Scilla Compiler", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false) !2 = !DIFile(filename: "simple-fun.scilexp", directory: "codegen/expr") -!3 = !{} -!4 = distinct !DISubprogram(name: "$fundef_8", linkageName: "$fundef_8", scope: !2, file: !2, line: 3, type: !5, scopeLine: 3, 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: 3, column: 3, scope: !4) -!9 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !10, file: !10, type: !5, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!10 = !DIFile(filename: ".", directory: ".") -!11 = !DILocation(line: 0, scope: !9) -!12 = 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) -!13 = !DILocation(line: 3, column: 3, scope: !12) -!14 = !DILocation(line: 5, column: 9, scope: !12) -!15 = !DILocation(line: 6, column: 1, scope: !12) +!3 = distinct !DISubprogram(name: "$fundef_8", linkageName: "$fundef_8", scope: !2, file: !2, line: 3, type: !4, scopeLine: 3, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!4 = !DISubroutineType(types: !5) +!5 = !{!6} +!6 = !DIBasicType(tag: DW_TAG_unspecified_type, name: "void") +!7 = !{} +!8 = !DILocalVariable(name: "a", scope: !3, file: !2, line: 2, type: !9) +!9 = !DIBasicType(name: "Int32", size: 4) +!10 = !DILocation(line: 2, column: 8, scope: !3) +!11 = !DILocalVariable(name: "$retval_9", scope: !3, file: !2, line: 3, type: !9) +!12 = !DILocation(line: 3, column: 5, scope: !3) +!13 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !14, file: !14, type: !4, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!14 = !DIFile(filename: ".", directory: ".") +!15 = !DILocation(line: 0, scope: !13) +!16 = distinct !DISubprogram(name: "_scilla_expr_fun", linkageName: "_scilla_expr_fun", scope: !2, file: !2, line: 2, type: !4, scopeLine: 2, spFlags: DISPFlagDefinition, unit: !1, retainedNodes: !7) +!17 = !DILocalVariable(name: "$expr_7", scope: !16, file: !2, line: 2, type: !9) +!18 = !DILocation(line: 2, column: 3, scope: !16) +!19 = !DILocation(line: 3, column: 5, scope: !16) +!20 = !DILocalVariable(name: "i", scope: !16, file: !2, line: 5, type: !9) +!21 = !DILocation(line: 5, column: 5, scope: !16) +!22 = !DILocation(line: 5, column: 9, scope: !16) +!23 = !DILocalVariable(name: "$f_6", scope: !16, file: !2, line: 6, type: !9) +!24 = !DILocation(line: 6, column: 1, scope: !16) diff --git a/testsuite/expr/simple-fun.ll b/testsuite/expr/simple-fun.ll index d881d3b3..1242c136 100644 --- a/testsuite/expr/simple-fun.ll +++ b/testsuite/expr/simple-fun.ll @@ -7,7 +7,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-pc-linux-gnu" +target triple = "x86_64-unknown-linux-gnu" %"$TyDescrTy_PrimTyp_10" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/testsuite/expr/simple_ho.dbg.ll b/testsuite/expr/simple_ho.dbg.ll index ac52404b..8b3929f2 100644 --- a/testsuite/expr/simple_ho.dbg.ll +++ b/testsuite/expr/simple_ho.dbg.ll @@ -16,14 +16,14 @@ ; 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-pc-linux-gnu" +target triple = "x86_64-unknown-linux-gnu" %"$TyDescrTy_PrimTyp_16" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } %Int32 = type { i32 } -%"$ParamDescr_185" = type { %ParamDescrString, %_TyDescrTy_Typ* } +%"$ParamDescr_187" = type { %ParamDescrString, %_TyDescrTy_Typ* } %ParamDescrString = type { i8*, i32 } -%"$TransDescr_186" = type { %ParamDescrString, i32, %"$ParamDescr_185"* } +%"$TransDescr_188" = type { %ParamDescrString, i32, %"$ParamDescr_187"* } %"$$fundef_14_env_53" = type {} %"$$fundef_12_env_54" = type { { %Int32 (i8*, %Int32)*, i8* } } %"$$fundef_10_env_55" = type {} @@ -68,63 +68,72 @@ target triple = "x86_64-pc-linux-gnu" @"$_gas_charge_accPairUtils_4" = global %Int32 zeroinitializer @_tydescr_table = constant [15 x %_TyDescrTy_Typ*] [%_TyDescrTy_Typ* @"$TyDescr_Event_40", %_TyDescrTy_Typ* @"$TyDescr_Int64_22", %_TyDescrTy_Typ* @"$TyDescr_Uint256_32", %_TyDescrTy_Typ* @"$TyDescr_Uint32_20", %_TyDescrTy_Typ* @"$TyDescr_Uint64_24", %_TyDescrTy_Typ* @"$TyDescr_Bnum_36", %_TyDescrTy_Typ* @"$TyDescr_Uint128_28", %_TyDescrTy_Typ* @"$TyDescr_Exception_42", %_TyDescrTy_Typ* @"$TyDescr_String_34", %_TyDescrTy_Typ* @"$TyDescr_Int256_30", %_TyDescrTy_Typ* @"$TyDescr_Int128_26", %_TyDescrTy_Typ* @"$TyDescr_Bystr_46", %_TyDescrTy_Typ* @"$TyDescr_ReplicateContr_44", %_TyDescrTy_Typ* @"$TyDescr_Message_38", %_TyDescrTy_Typ* @"$TyDescr_Int32_18"] @_tydescr_table_length = constant i32 15 -@_contract_parameters = constant [0 x %"$ParamDescr_185"] zeroinitializer +@_contract_parameters = constant [0 x %"$ParamDescr_187"] zeroinitializer @_contract_parameters_length = constant i32 0 -@_transition_parameters = constant [0 x %"$TransDescr_186"] zeroinitializer +@_transition_parameters = constant [0 x %"$TransDescr_188"] zeroinitializer @_transition_parameters_length = constant i32 0 -define internal %Int32 @"$fundef_14"(%"$$fundef_14_env_53"* %0, %Int32 %1) !dbg !4 { +define internal %Int32 @"$fundef_14"(%"$$fundef_14_env_53"* %0, %Int32 %1) !dbg !3 { entry: + %"$a_99" = alloca %Int32, align 8 + store %Int32 %1, %Int32* %"$a_99", align 4 + call void @llvm.dbg.declare(metadata %Int32* %"$a_99", metadata !8, metadata !DIExpression()), !dbg !10 %"$retval_15" = alloca %Int32, align 8 - %"$gasrem_80" = load i64, i64* @_gasrem, align 8 - %"$gascmp_81" = icmp ugt i64 1, %"$gasrem_80" - br i1 %"$gascmp_81", label %"$out_of_gas_82", label %"$have_gas_83" + call void @llvm.dbg.declare(metadata %Int32* %"$retval_15", metadata !11, metadata !DIExpression()), !dbg !12 + %"$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_82": ; preds = %entry +"$out_of_gas_83": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_83" + br label %"$have_gas_84" -"$have_gas_83": ; preds = %"$out_of_gas_82", %entry - %"$consume_84" = sub i64 %"$gasrem_80", 1 - store i64 %"$consume_84", 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 %b = alloca %Int32, 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" + call void @llvm.dbg.declare(metadata %Int32* %b, metadata !13, metadata !DIExpression()), !dbg !14 + %"$gasrem_86" = load i64, i64* @_gasrem, align 8 + %"$gascmp_87" = icmp ugt i64 1, %"$gasrem_86" + br i1 %"$gascmp_87", label %"$out_of_gas_88", label %"$have_gas_89" -"$out_of_gas_87": ; preds = %"$have_gas_83" +"$out_of_gas_88": ; preds = %"$have_gas_84" call void @_out_of_gas() - br label %"$have_gas_88" + br label %"$have_gas_89" -"$have_gas_88": ; preds = %"$out_of_gas_87", %"$have_gas_83" - %"$consume_89" = sub i64 %"$gasrem_85", 1 - store i64 %"$consume_89", i64* @_gasrem, align 8 - store %Int32 { i32 1 }, %Int32* %b, align 4, !dbg !8 - %"$gasrem_90" = load i64, i64* @_gasrem, align 8 - %"$gascmp_91" = icmp ugt i64 4, %"$gasrem_90" - br i1 %"$gascmp_91", label %"$out_of_gas_92", label %"$have_gas_93" +"$have_gas_89": ; preds = %"$out_of_gas_88", %"$have_gas_84" + %"$consume_90" = sub i64 %"$gasrem_86", 1 + store i64 %"$consume_90", i64* @_gasrem, align 8 + store %Int32 { i32 1 }, %Int32* %b, align 4, !dbg !15 + %"$gasrem_91" = load i64, i64* @_gasrem, align 8 + %"$gascmp_92" = icmp ugt i64 4, %"$gasrem_91" + br i1 %"$gascmp_92", label %"$out_of_gas_93", label %"$have_gas_94" -"$out_of_gas_92": ; preds = %"$have_gas_88" +"$out_of_gas_93": ; preds = %"$have_gas_89" 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", 4 - store i64 %"$consume_94", i64* @_gasrem, align 8 - %"$b_95" = load %Int32, %Int32* %b, align 4 - %"$add_call_96" = call %Int32 @_add_Int32(%Int32 %1, %Int32 %"$b_95"), !dbg !9 - store %Int32 %"$add_call_96", %Int32* %"$retval_15", align 4, !dbg !9 - %"$$retval_15_97" = load %Int32, %Int32* %"$retval_15", align 4 - ret %Int32 %"$$retval_15_97" + br label %"$have_gas_94" + +"$have_gas_94": ; preds = %"$out_of_gas_93", %"$have_gas_89" + %"$consume_95" = sub i64 %"$gasrem_91", 4 + store i64 %"$consume_95", i64* @_gasrem, align 8 + %"$b_96" = load %Int32, %Int32* %b, align 4 + %"$add_call_97" = call %Int32 @_add_Int32(%Int32 %1, %Int32 %"$b_96"), !dbg !16 + store %Int32 %"$add_call_97", %Int32* %"$retval_15", align 4, !dbg !16 + %"$$retval_15_98" = load %Int32, %Int32* %"$retval_15", align 4 + ret %Int32 %"$$retval_15_98" } -define internal %Int32 @"$fundef_12"(%"$$fundef_12_env_54"* %0, %Int32 %1) !dbg !10 { +define internal %Int32 @"$fundef_12"(%"$$fundef_12_env_54"* %0, %Int32 %1) !dbg !17 { entry: + %"$i_80" = alloca %Int32, align 8 + store %Int32 %1, %Int32* %"$i_80", align 4 + call void @llvm.dbg.declare(metadata %Int32* %"$i_80", metadata !18, metadata !DIExpression()), !dbg !19 %"$$fundef_12_env_h_67" = getelementptr inbounds %"$$fundef_12_env_54", %"$$fundef_12_env_54"* %0, i32 0, i32 0 %"$h_envload_68" = load { %Int32 (i8*, %Int32)*, i8* }, { %Int32 (i8*, %Int32)*, i8* }* %"$$fundef_12_env_h_67", align 8 %h = alloca { %Int32 (i8*, %Int32)*, i8* }, align 8 store { %Int32 (i8*, %Int32)*, i8* } %"$h_envload_68", { %Int32 (i8*, %Int32)*, i8* }* %h, align 8 %"$retval_13" = alloca %Int32, align 8 + call void @llvm.dbg.declare(metadata %Int32* %"$retval_13", metadata !20, metadata !DIExpression()), !dbg !21 %"$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" @@ -137,18 +146,19 @@ entry: %"$consume_73" = sub i64 %"$gasrem_69", 1 store i64 %"$consume_73", i64* @_gasrem, align 8 %"$h_6" = alloca %Int32, align 8 + call void @llvm.dbg.declare(metadata %Int32* %"$h_6", metadata !22, metadata !DIExpression()), !dbg !21 %"$h_74" = load { %Int32 (i8*, %Int32)*, i8* }, { %Int32 (i8*, %Int32)*, i8* }* %h, align 8 %"$h_fptr_75" = extractvalue { %Int32 (i8*, %Int32)*, i8* } %"$h_74", 0 %"$h_envptr_76" = extractvalue { %Int32 (i8*, %Int32)*, i8* } %"$h_74", 1 - %"$h_call_77" = call %Int32 %"$h_fptr_75"(i8* %"$h_envptr_76", %Int32 %1), !dbg !11 - store %Int32 %"$h_call_77", %Int32* %"$h_6", align 4, !dbg !11 + %"$h_call_77" = call %Int32 %"$h_fptr_75"(i8* %"$h_envptr_76", %Int32 %1), !dbg !21 + store %Int32 %"$h_call_77", %Int32* %"$h_6", align 4, !dbg !21 %"$$h_6_78" = load %Int32, %Int32* %"$h_6", align 4 - store %Int32 %"$$h_6_78", %Int32* %"$retval_13", align 4, !dbg !11 + store %Int32 %"$$h_6_78", %Int32* %"$retval_13", align 4, !dbg !21 %"$$retval_13_79" = load %Int32, %Int32* %"$retval_13", align 4 ret %Int32 %"$$retval_13_79" } -define internal { %Int32 (i8*, %Int32)*, i8* } @"$fundef_10"(%"$$fundef_10_env_55"* %0, { %Int32 (i8*, %Int32)*, i8* } %1) !dbg !12 { +define internal { %Int32 (i8*, %Int32)*, i8* } @"$fundef_10"(%"$$fundef_10_env_55"* %0, { %Int32 (i8*, %Int32)*, i8* } %1) !dbg !23 { entry: %"$retval_11" = alloca { %Int32 (i8*, %Int32)*, i8* }, align 8 %"$gasrem_56" = load i64, i64* @_gasrem, align 8 @@ -169,7 +179,7 @@ entry: %"$$fundef_12_cloval_64" = insertvalue { %Int32 (i8*, %Int32)*, i8* } { %Int32 (i8*, %Int32)* bitcast (%Int32 (%"$$fundef_12_env_54"*, %Int32)* @"$fundef_12" to %Int32 (i8*, %Int32)*), i8* undef }, i8* %"$$fundef_12_env_voidp_63", 1 %"$$fundef_12_env_h_65" = getelementptr inbounds %"$$fundef_12_env_54", %"$$fundef_12_env_54"* %"$$fundef_12_envp_61", i32 0, i32 0 store { %Int32 (i8*, %Int32)*, i8* } %1, { %Int32 (i8*, %Int32)*, i8* }* %"$$fundef_12_env_h_65", align 8 - store { %Int32 (i8*, %Int32)*, i8* } %"$$fundef_12_cloval_64", { %Int32 (i8*, %Int32)*, i8* }* %"$retval_11", align 8, !dbg !13 + store { %Int32 (i8*, %Int32)*, i8* } %"$$fundef_12_cloval_64", { %Int32 (i8*, %Int32)*, i8* }* %"$retval_11", align 8, !dbg !24 %"$$retval_11_66" = load { %Int32 (i8*, %Int32)*, i8* }, { %Int32 (i8*, %Int32)*, i8* }* %"$retval_11", align 8 ret { %Int32 (i8*, %Int32)*, i8* } %"$$retval_11_66" } @@ -178,226 +188,250 @@ declare void @_out_of_gas() declare i8* @_salloc(i8*, i64) +; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn +declare void @llvm.dbg.declare(metadata, metadata, metadata) #0 + declare %Int32 @_add_Int32(%Int32, %Int32) -define void @_init_libs() !dbg !14 { +define void @_init_libs() !dbg !25 { entry: - %"$gasrem_98" = load i64, i64* @_gasrem, align 8 - %"$gascmp_99" = icmp ugt i64 5, %"$gasrem_98" - br i1 %"$gascmp_99", label %"$out_of_gas_100", label %"$have_gas_101" + %"$gasrem_100" = load i64, i64* @_gasrem, align 8 + %"$gascmp_101" = icmp ugt i64 5, %"$gasrem_100" + br i1 %"$gascmp_101", label %"$out_of_gas_102", label %"$have_gas_103" -"$out_of_gas_100": ; preds = %entry +"$out_of_gas_102": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_101" + br label %"$have_gas_103" -"$have_gas_101": ; preds = %"$out_of_gas_100", %entry - %"$consume_102" = sub i64 %"$gasrem_98", 5 - store i64 %"$consume_102", i64* @_gasrem, align 8 - store %Int32 { i32 5 }, %Int32* @"$_gas_charge_accrec_lib_5", align 4, !dbg !16 - %"$gasrem_103" = load i64, i64* @_gasrem, align 8 - %"$gascmp_104" = icmp ugt i64 8, %"$gasrem_103" - br i1 %"$gascmp_104", label %"$out_of_gas_105", label %"$have_gas_106" +"$have_gas_103": ; preds = %"$out_of_gas_102", %entry + %"$consume_104" = sub i64 %"$gasrem_100", 5 + store i64 %"$consume_104", i64* @_gasrem, align 8 + store %Int32 { i32 5 }, %Int32* @"$_gas_charge_accrec_lib_5", align 4, !dbg !27 + %"$gasrem_105" = load i64, i64* @_gasrem, align 8 + %"$gascmp_106" = icmp ugt i64 8, %"$gasrem_105" + br i1 %"$gascmp_106", label %"$out_of_gas_107", label %"$have_gas_108" -"$out_of_gas_105": ; preds = %"$have_gas_101" +"$out_of_gas_107": ; preds = %"$have_gas_103" call void @_out_of_gas() - br label %"$have_gas_106" + br label %"$have_gas_108" -"$have_gas_106": ; preds = %"$out_of_gas_105", %"$have_gas_101" - %"$consume_107" = sub i64 %"$gasrem_103", 8 - store i64 %"$consume_107", i64* @_gasrem, align 8 - store %Int32 { i32 8 }, %Int32* @"$_gas_charge_accBoolUtils_0", align 4, !dbg !16 - %"$gasrem_108" = load i64, i64* @_gasrem, align 8 - %"$gascmp_109" = icmp ugt i64 196, %"$gasrem_108" - br i1 %"$gascmp_109", label %"$out_of_gas_110", label %"$have_gas_111" +"$have_gas_108": ; preds = %"$out_of_gas_107", %"$have_gas_103" + %"$consume_109" = sub i64 %"$gasrem_105", 8 + store i64 %"$consume_109", i64* @_gasrem, align 8 + store %Int32 { i32 8 }, %Int32* @"$_gas_charge_accBoolUtils_0", align 4, !dbg !27 + %"$gasrem_110" = load i64, i64* @_gasrem, align 8 + %"$gascmp_111" = icmp ugt i64 196, %"$gasrem_110" + br i1 %"$gascmp_111", label %"$out_of_gas_112", label %"$have_gas_113" -"$out_of_gas_110": ; preds = %"$have_gas_106" +"$out_of_gas_112": ; preds = %"$have_gas_108" call void @_out_of_gas() - br label %"$have_gas_111" + br label %"$have_gas_113" -"$have_gas_111": ; preds = %"$out_of_gas_110", %"$have_gas_106" - %"$consume_112" = sub i64 %"$gasrem_108", 196 - store i64 %"$consume_112", i64* @_gasrem, align 8 - store %Int32 { i32 196 }, %Int32* @"$_gas_charge_accIntUtils_1", align 4, !dbg !16 - %"$gasrem_113" = load i64, i64* @_gasrem, align 8 - %"$gascmp_114" = icmp ugt i64 20, %"$gasrem_113" - br i1 %"$gascmp_114", label %"$out_of_gas_115", label %"$have_gas_116" +"$have_gas_113": ; preds = %"$out_of_gas_112", %"$have_gas_108" + %"$consume_114" = sub i64 %"$gasrem_110", 196 + store i64 %"$consume_114", i64* @_gasrem, align 8 + store %Int32 { i32 196 }, %Int32* @"$_gas_charge_accIntUtils_1", align 4, !dbg !27 + %"$gasrem_115" = load i64, i64* @_gasrem, align 8 + %"$gascmp_116" = icmp ugt i64 20, %"$gasrem_115" + br i1 %"$gascmp_116", label %"$out_of_gas_117", label %"$have_gas_118" -"$out_of_gas_115": ; preds = %"$have_gas_111" +"$out_of_gas_117": ; preds = %"$have_gas_113" call void @_out_of_gas() - br label %"$have_gas_116" + br label %"$have_gas_118" -"$have_gas_116": ; preds = %"$out_of_gas_115", %"$have_gas_111" - %"$consume_117" = sub i64 %"$gasrem_113", 20 - store i64 %"$consume_117", i64* @_gasrem, align 8 - store %Int32 { i32 20 }, %Int32* @"$_gas_charge_accListUtils_2", align 4, !dbg !16 - %"$gasrem_118" = load i64, i64* @_gasrem, align 8 - %"$gascmp_119" = icmp ugt i64 12, %"$gasrem_118" - br i1 %"$gascmp_119", label %"$out_of_gas_120", label %"$have_gas_121" +"$have_gas_118": ; preds = %"$out_of_gas_117", %"$have_gas_113" + %"$consume_119" = sub i64 %"$gasrem_115", 20 + store i64 %"$consume_119", i64* @_gasrem, align 8 + store %Int32 { i32 20 }, %Int32* @"$_gas_charge_accListUtils_2", align 4, !dbg !27 + %"$gasrem_120" = load i64, i64* @_gasrem, align 8 + %"$gascmp_121" = icmp ugt i64 12, %"$gasrem_120" + br i1 %"$gascmp_121", label %"$out_of_gas_122", label %"$have_gas_123" -"$out_of_gas_120": ; preds = %"$have_gas_116" +"$out_of_gas_122": ; preds = %"$have_gas_118" call void @_out_of_gas() - br label %"$have_gas_121" + br label %"$have_gas_123" -"$have_gas_121": ; preds = %"$out_of_gas_120", %"$have_gas_116" - %"$consume_122" = sub i64 %"$gasrem_118", 12 - store i64 %"$consume_122", i64* @_gasrem, align 8 - store %Int32 { i32 12 }, %Int32* @"$_gas_charge_accNatUtils_3", align 4, !dbg !16 - %"$gasrem_123" = load i64, i64* @_gasrem, align 8 - %"$gascmp_124" = icmp ugt i64 2, %"$gasrem_123" - br i1 %"$gascmp_124", label %"$out_of_gas_125", label %"$have_gas_126" +"$have_gas_123": ; preds = %"$out_of_gas_122", %"$have_gas_118" + %"$consume_124" = sub i64 %"$gasrem_120", 12 + store i64 %"$consume_124", i64* @_gasrem, align 8 + store %Int32 { i32 12 }, %Int32* @"$_gas_charge_accNatUtils_3", align 4, !dbg !27 + %"$gasrem_125" = load i64, i64* @_gasrem, align 8 + %"$gascmp_126" = icmp ugt i64 2, %"$gasrem_125" + br i1 %"$gascmp_126", label %"$out_of_gas_127", label %"$have_gas_128" -"$out_of_gas_125": ; preds = %"$have_gas_121" +"$out_of_gas_127": ; preds = %"$have_gas_123" call void @_out_of_gas() - br label %"$have_gas_126" + br label %"$have_gas_128" -"$have_gas_126": ; preds = %"$out_of_gas_125", %"$have_gas_121" - %"$consume_127" = sub i64 %"$gasrem_123", 2 - store i64 %"$consume_127", i64* @_gasrem, align 8 - store %Int32 { i32 2 }, %Int32* @"$_gas_charge_accPairUtils_4", align 4, !dbg !16 +"$have_gas_128": ; preds = %"$out_of_gas_127", %"$have_gas_123" + %"$consume_129" = sub i64 %"$gasrem_125", 2 + store i64 %"$consume_129", i64* @_gasrem, align 8 + store %Int32 { i32 2 }, %Int32* @"$_gas_charge_accPairUtils_4", align 4, !dbg !27 ret void } -define internal %Int32 @_scilla_expr_fun(i8* %0) !dbg !17 { +define internal %Int32 @_scilla_expr_fun(i8* %0) !dbg !28 { entry: %"$expr_9" = alloca %Int32, align 8 - %"$gasrem_128" = load i64, i64* @_gasrem, align 8 - %"$gascmp_129" = icmp ugt i64 1, %"$gasrem_128" - br i1 %"$gascmp_129", label %"$out_of_gas_130", label %"$have_gas_131" + call void @llvm.dbg.declare(metadata %Int32* %"$expr_9", metadata !29, metadata !DIExpression()), !dbg !30 + %"$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_130": ; preds = %entry +"$out_of_gas_132": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_131" + br label %"$have_gas_133" -"$have_gas_131": ; preds = %"$out_of_gas_130", %entry - %"$consume_132" = sub i64 %"$gasrem_128", 1 - store i64 %"$consume_132", i64* @_gasrem, align 8 +"$have_gas_133": ; preds = %"$out_of_gas_132", %entry + %"$consume_134" = sub i64 %"$gasrem_130", 1 + store i64 %"$consume_134", i64* @_gasrem, align 8 %ho = alloca { { %Int32 (i8*, %Int32)*, i8* } (i8*, { %Int32 (i8*, %Int32)*, i8* })*, i8* }, align 8 - %"$gasrem_133" = load i64, i64* @_gasrem, align 8 - %"$gascmp_134" = icmp ugt i64 1, %"$gasrem_133" - br i1 %"$gascmp_134", label %"$out_of_gas_135", label %"$have_gas_136" + %"$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_135": ; preds = %"$have_gas_131" +"$out_of_gas_137": ; preds = %"$have_gas_133" call void @_out_of_gas() - br label %"$have_gas_136" + br label %"$have_gas_138" -"$have_gas_136": ; preds = %"$out_of_gas_135", %"$have_gas_131" - %"$consume_137" = sub i64 %"$gasrem_133", 1 - store i64 %"$consume_137", 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_10_env_55"*, { %Int32 (i8*, %Int32)*, i8* })* @"$fundef_10" 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 !18 - %"$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" +"$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* })*, i8* } { { %Int32 (i8*, %Int32)*, i8* } (i8*, { %Int32 (i8*, %Int32)*, i8* })* bitcast ({ %Int32 (i8*, %Int32)*, i8* } (%"$$fundef_10_env_55"*, { %Int32 (i8*, %Int32)*, i8* })* @"$fundef_10" 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 !31 + %"$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_143": ; preds = %"$have_gas_136" +"$out_of_gas_145": ; preds = %"$have_gas_138" call void @_out_of_gas() - br label %"$have_gas_144" + br label %"$have_gas_146" -"$have_gas_144": ; preds = %"$out_of_gas_143", %"$have_gas_136" - %"$consume_145" = sub i64 %"$gasrem_141", 1 - store i64 %"$consume_145", i64* @_gasrem, align 8 +"$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 %inc = alloca { %Int32 (i8*, %Int32)*, 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" + %"$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_148": ; preds = %"$have_gas_144" +"$out_of_gas_150": ; preds = %"$have_gas_146" call void @_out_of_gas() - br label %"$have_gas_149" + br label %"$have_gas_151" -"$have_gas_149": ; preds = %"$out_of_gas_148", %"$have_gas_144" - %"$consume_150" = sub i64 %"$gasrem_146", 1 - store i64 %"$consume_150", i64* @_gasrem, align 8 - store { %Int32 (i8*, %Int32)*, i8* } { %Int32 (i8*, %Int32)* bitcast (%Int32 (%"$$fundef_14_env_53"*, %Int32)* @"$fundef_14" to %Int32 (i8*, %Int32)*), i8* null }, { %Int32 (i8*, %Int32)*, i8* }* %inc, align 8, !dbg !19 - %"$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" +"$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* } { %Int32 (i8*, %Int32)* bitcast (%Int32 (%"$$fundef_14_env_53"*, %Int32)* @"$fundef_14" to %Int32 (i8*, %Int32)*), i8* null }, { %Int32 (i8*, %Int32)*, i8* }* %inc, align 8, !dbg !32 + %"$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_156": ; preds = %"$have_gas_149" +"$out_of_gas_158": ; preds = %"$have_gas_151" call void @_out_of_gas() - br label %"$have_gas_157" + br label %"$have_gas_159" -"$have_gas_157": ; preds = %"$out_of_gas_156", %"$have_gas_149" - %"$consume_158" = sub i64 %"$gasrem_154", 1 - store i64 %"$consume_158", i64* @_gasrem, align 8 +"$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 %hundred = alloca %Int32, 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" + call void @llvm.dbg.declare(metadata %Int32* %hundred, metadata !33, metadata !DIExpression()), !dbg !34 + %"$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_161": ; preds = %"$have_gas_157" +"$out_of_gas_163": ; preds = %"$have_gas_159" call void @_out_of_gas() - br label %"$have_gas_162" + br label %"$have_gas_164" -"$have_gas_162": ; preds = %"$out_of_gas_161", %"$have_gas_157" - %"$consume_163" = sub i64 %"$gasrem_159", 1 - store i64 %"$consume_163", i64* @_gasrem, align 8 - store %Int32 { i32 100 }, %Int32* %hundred, align 4, !dbg !20 - %"$gasrem_164" = load i64, i64* @_gasrem, align 8 - %"$gascmp_165" = icmp ugt i64 1, %"$gasrem_164" - br i1 %"$gascmp_165", label %"$out_of_gas_166", label %"$have_gas_167" +"$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 100 }, %Int32* %hundred, align 4, !dbg !35 + %"$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_166": ; preds = %"$have_gas_162" +"$out_of_gas_168": ; preds = %"$have_gas_164" call void @_out_of_gas() - br label %"$have_gas_167" + br label %"$have_gas_169" -"$have_gas_167": ; preds = %"$out_of_gas_166", %"$have_gas_162" - %"$consume_168" = sub i64 %"$gasrem_164", 1 - store i64 %"$consume_168", i64* @_gasrem, align 8 +"$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 %"$ho_7" = alloca { %Int32 (i8*, %Int32)*, i8* }, align 8 - %"$ho_169" = 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_170" = extractvalue { { %Int32 (i8*, %Int32)*, i8* } (i8*, { %Int32 (i8*, %Int32)*, i8* })*, i8* } %"$ho_169", 0 - %"$ho_envptr_171" = extractvalue { { %Int32 (i8*, %Int32)*, i8* } (i8*, { %Int32 (i8*, %Int32)*, i8* })*, i8* } %"$ho_169", 1 - %"$inc_172" = load { %Int32 (i8*, %Int32)*, i8* }, { %Int32 (i8*, %Int32)*, i8* }* %inc, align 8 - %"$ho_call_173" = call { %Int32 (i8*, %Int32)*, i8* } %"$ho_fptr_170"(i8* %"$ho_envptr_171", { %Int32 (i8*, %Int32)*, i8* } %"$inc_172"), !dbg !21 - store { %Int32 (i8*, %Int32)*, i8* } %"$ho_call_173", { %Int32 (i8*, %Int32)*, i8* }* %"$ho_7", align 8, !dbg !21 + %"$ho_171" = 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_172" = extractvalue { { %Int32 (i8*, %Int32)*, i8* } (i8*, { %Int32 (i8*, %Int32)*, i8* })*, i8* } %"$ho_171", 0 + %"$ho_envptr_173" = extractvalue { { %Int32 (i8*, %Int32)*, i8* } (i8*, { %Int32 (i8*, %Int32)*, i8* })*, i8* } %"$ho_171", 1 + %"$inc_174" = load { %Int32 (i8*, %Int32)*, i8* }, { %Int32 (i8*, %Int32)*, i8* }* %inc, align 8 + %"$ho_call_175" = call { %Int32 (i8*, %Int32)*, i8* } %"$ho_fptr_172"(i8* %"$ho_envptr_173", { %Int32 (i8*, %Int32)*, i8* } %"$inc_174"), !dbg !36 + store { %Int32 (i8*, %Int32)*, i8* } %"$ho_call_175", { %Int32 (i8*, %Int32)*, i8* }* %"$ho_7", align 8, !dbg !36 %"$ho_8" = alloca %Int32, align 8 - %"$$ho_7_174" = load { %Int32 (i8*, %Int32)*, i8* }, { %Int32 (i8*, %Int32)*, i8* }* %"$ho_7", align 8 - %"$$ho_7_fptr_175" = extractvalue { %Int32 (i8*, %Int32)*, i8* } %"$$ho_7_174", 0 - %"$$ho_7_envptr_176" = extractvalue { %Int32 (i8*, %Int32)*, i8* } %"$$ho_7_174", 1 - %"$hundred_177" = load %Int32, %Int32* %hundred, align 4 - %"$$ho_7_call_178" = call %Int32 %"$$ho_7_fptr_175"(i8* %"$$ho_7_envptr_176", %Int32 %"$hundred_177"), !dbg !21 - store %Int32 %"$$ho_7_call_178", %Int32* %"$ho_8", align 4, !dbg !21 - %"$$ho_8_179" = load %Int32, %Int32* %"$ho_8", align 4 - store %Int32 %"$$ho_8_179", %Int32* %"$expr_9", align 4, !dbg !21 - %"$$expr_9_180" = load %Int32, %Int32* %"$expr_9", align 4 - ret %Int32 %"$$expr_9_180" + call void @llvm.dbg.declare(metadata %Int32* %"$ho_8", metadata !37, metadata !DIExpression()), !dbg !36 + %"$$ho_7_176" = load { %Int32 (i8*, %Int32)*, i8* }, { %Int32 (i8*, %Int32)*, i8* }* %"$ho_7", align 8 + %"$$ho_7_fptr_177" = extractvalue { %Int32 (i8*, %Int32)*, i8* } %"$$ho_7_176", 0 + %"$$ho_7_envptr_178" = extractvalue { %Int32 (i8*, %Int32)*, i8* } %"$$ho_7_176", 1 + %"$hundred_179" = load %Int32, %Int32* %hundred, align 4 + %"$$ho_7_call_180" = call %Int32 %"$$ho_7_fptr_177"(i8* %"$$ho_7_envptr_178", %Int32 %"$hundred_179"), !dbg !36 + store %Int32 %"$$ho_7_call_180", %Int32* %"$ho_8", align 4, !dbg !36 + %"$$ho_8_181" = load %Int32, %Int32* %"$ho_8", align 4 + store %Int32 %"$$ho_8_181", %Int32* %"$expr_9", align 4, !dbg !36 + %"$$expr_9_182" = load %Int32, %Int32* %"$expr_9", align 4 + ret %Int32 %"$$expr_9_182" } declare void @_print_scilla_val(i8*, %_TyDescrTy_Typ*, i8*) define void @scilla_main() { entry: - %"$exprval_181" = call %Int32 @_scilla_expr_fun(i8* null) - %"$pval_182" = alloca %Int32, align 8 - %"$memvoidcast_183" = bitcast %Int32* %"$pval_182" to i8* - store %Int32 %"$exprval_181", %Int32* %"$pval_182", align 4 - %"$execptr_load_184" = load i8*, i8** @_execptr, align 8 - call void @_print_scilla_val(i8* %"$execptr_load_184", %_TyDescrTy_Typ* @"$TyDescr_Int32_18", i8* %"$memvoidcast_183") + %"$exprval_183" = call %Int32 @_scilla_expr_fun(i8* null) + %"$pval_184" = alloca %Int32, align 8 + %"$memvoidcast_185" = bitcast %Int32* %"$pval_184" to i8* + store %Int32 %"$exprval_183", %Int32* %"$pval_184", align 4 + %"$execptr_load_186" = load i8*, i8** @_execptr, align 8 + call void @_print_scilla_val(i8* %"$execptr_load_186", %_TyDescrTy_Typ* @"$TyDescr_Int32_18", i8* %"$memvoidcast_185") ret void } +attributes #0 = { nocallback nofree nosync nounwind readnone speculatable willreturn } + !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) +!1 = distinct !DICompileUnit(language: DW_LANG_C89, file: !2, producer: "Scilla Compiler", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false) !2 = !DIFile(filename: "simple_ho.scilexp", directory: "codegen/expr") -!3 = !{} -!4 = distinct !DISubprogram(name: "$fundef_14", linkageName: "$fundef_14", 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_12", linkageName: "$fundef_12", scope: !2, file: !2, line: 4, type: !5, scopeLine: 4, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!11 = !DILocation(line: 4, column: 5, scope: !10) -!12 = distinct !DISubprogram(name: "$fundef_10", linkageName: "$fundef_10", 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 = !DILocation(line: 0, scope: !14) -!17 = 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) -!18 = !DILocation(line: 3, column: 3, scope: !17) -!19 = !DILocation(line: 9, column: 5, scope: !17) -!20 = !DILocation(line: 13, column: 15, scope: !17) -!21 = !DILocation(line: 14, column: 1, scope: !17) +!3 = distinct !DISubprogram(name: "$fundef_14", linkageName: "$fundef_14", scope: !2, file: !2, line: 9, type: !4, scopeLine: 9, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!4 = !DISubroutineType(types: !5) +!5 = !{!6} +!6 = !DIBasicType(tag: DW_TAG_unspecified_type, name: "void") +!7 = !{} +!8 = !DILocalVariable(name: "a", scope: !3, file: !2, line: 8, type: !9) +!9 = !DIBasicType(name: "Int32", size: 4) +!10 = !DILocation(line: 8, column: 8, scope: !3) +!11 = !DILocalVariable(name: "$retval_15", scope: !3, file: !2, line: 9, type: !9) +!12 = !DILocation(line: 9, column: 5, scope: !3) +!13 = !DILocalVariable(name: "b", scope: !3, file: !2, line: 9, type: !9) +!14 = !DILocation(line: 9, column: 9, scope: !3) +!15 = !DILocation(line: 9, column: 13, scope: !3) +!16 = !DILocation(line: 10, column: 5, scope: !3) +!17 = distinct !DISubprogram(name: "$fundef_12", linkageName: "$fundef_12", scope: !2, file: !2, line: 4, type: !4, scopeLine: 4, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!18 = !DILocalVariable(name: "i", scope: !17, file: !2, line: 3, type: !9) +!19 = !DILocation(line: 3, column: 8, scope: !17) +!20 = !DILocalVariable(name: "$retval_13", scope: !17, file: !2, line: 4, type: !9) +!21 = !DILocation(line: 4, column: 5, scope: !17) +!22 = !DILocalVariable(name: "$h_6", scope: !17, file: !2, line: 4, type: !9) +!23 = distinct !DISubprogram(name: "$fundef_10", linkageName: "$fundef_10", scope: !2, file: !2, line: 3, type: !4, scopeLine: 3, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!24 = !DILocation(line: 4, column: 5, scope: !23) +!25 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !26, file: !26, type: !4, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!26 = !DIFile(filename: ".", directory: ".") +!27 = !DILocation(line: 0, scope: !25) +!28 = distinct !DISubprogram(name: "_scilla_expr_fun", linkageName: "_scilla_expr_fun", scope: !2, file: !2, line: 2, type: !4, scopeLine: 2, spFlags: DISPFlagDefinition, unit: !1, retainedNodes: !7) +!29 = !DILocalVariable(name: "$expr_9", scope: !28, file: !2, line: 2, type: !9) +!30 = !DILocation(line: 2, column: 3, scope: !28) +!31 = !DILocation(line: 3, column: 3, scope: !28) +!32 = !DILocation(line: 9, column: 5, scope: !28) +!33 = !DILocalVariable(name: "hundred", scope: !28, file: !2, line: 13, type: !9) +!34 = !DILocation(line: 13, column: 5, scope: !28) +!35 = !DILocation(line: 13, column: 15, scope: !28) +!36 = !DILocation(line: 14, column: 1, scope: !28) +!37 = !DILocalVariable(name: "$ho_8", scope: !28, file: !2, line: 14, type: !9) diff --git a/testsuite/expr/simple_ho.ll b/testsuite/expr/simple_ho.ll index a3af19aa..b42625da 100644 --- a/testsuite/expr/simple_ho.ll +++ b/testsuite/expr/simple_ho.ll @@ -16,7 +16,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-pc-linux-gnu" +target triple = "x86_64-unknown-linux-gnu" %"$TyDescrTy_PrimTyp_16" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/testsuite/expr/tname_clash.dbg.ll b/testsuite/expr/tname_clash.dbg.ll index 4921a884..06759c15 100644 --- a/testsuite/expr/tname_clash.dbg.ll +++ b/testsuite/expr/tname_clash.dbg.ll @@ -17,7 +17,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-pc-linux-gnu" +target triple = "x86_64-unknown-linux-gnu" %"$TyDescrTy_PrimTyp_19" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } @@ -26,9 +26,9 @@ target triple = "x86_64-pc-linux-gnu" %"$TyDescrTy_ADTTyp_Specl_50" = type { %_TyDescrTy_Typ**, %"$TyDescrTy_ADTTyp_Constr_52"**, %"$TyDescrTy_ADTTyp_51"* } %"$TyDescrTy_ADTTyp_Constr_52" = type { %TyDescrString, i32, %_TyDescrTy_Typ** } %Int32 = type { i32 } -%"$ParamDescr_260" = type { %ParamDescrString, %_TyDescrTy_Typ* } +%"$ParamDescr_262" = type { %ParamDescrString, %_TyDescrTy_Typ* } %ParamDescrString = type { i8*, i32 } -%"$TransDescr_261" = type { %ParamDescrString, i32, %"$ParamDescr_260"* } +%"$TransDescr_263" = type { %ParamDescrString, i32, %"$ParamDescr_262"* } %"$$fundef_17_env_66" = type { { i8*, i8* }* } %TName_Pair_Int32_Int64 = type { i8, %CName_Pair_Int32_Int64* } %CName_Pair_Int32_Int64 = type <{ i8, %Int32, %Int64 }> @@ -88,77 +88,84 @@ target triple = "x86_64-pc-linux-gnu" @"$_gas_charge_accPairUtils_4" = global %Int32 zeroinitializer @_tydescr_table = constant [16 x %_TyDescrTy_Typ*] [%_TyDescrTy_Typ* @"$TyDescr_Event_43", %_TyDescrTy_Typ* @"$TyDescr_Int64_25", %_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_ADT_Pair_Int32_Int64_53", %_TyDescrTy_Typ* @"$TyDescr_Exception_45", %_TyDescrTy_Typ* @"$TyDescr_String_37", %_TyDescrTy_Typ* @"$TyDescr_Int256_33", %_TyDescrTy_Typ* @"$TyDescr_Int128_29", %_TyDescrTy_Typ* @"$TyDescr_Bystr_49", %_TyDescrTy_Typ* @"$TyDescr_ReplicateContr_47", %_TyDescrTy_Typ* @"$TyDescr_Message_41", %_TyDescrTy_Typ* @"$TyDescr_Int32_21"] @_tydescr_table_length = constant i32 16 -@_contract_parameters = constant [0 x %"$ParamDescr_260"] zeroinitializer +@_contract_parameters = constant [0 x %"$ParamDescr_262"] zeroinitializer @_contract_parameters_length = constant i32 0 -@_transition_parameters = constant [0 x %"$TransDescr_261"] zeroinitializer +@_transition_parameters = constant [0 x %"$TransDescr_263"] zeroinitializer @_transition_parameters_length = constant i32 0 -define internal { i8*, i8* }* @"$fundef_17"(%"$$fundef_17_env_66"* %0) !dbg !4 { +define internal { i8*, i8* }* @"$fundef_17"(%"$$fundef_17_env_66"* %0) !dbg !3 { entry: - %"$$fundef_17_env_tf_117" = getelementptr inbounds %"$$fundef_17_env_66", %"$$fundef_17_env_66"* %0, i32 0, i32 0 - %"$tf_envload_118" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_17_env_tf_117", align 8 + %"$$fundef_17_env_tf_119" = getelementptr inbounds %"$$fundef_17_env_66", %"$$fundef_17_env_66"* %0, i32 0, i32 0 + %"$tf_envload_120" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_17_env_tf_119", align 8 %tf = alloca { i8*, i8* }*, align 8 - store { i8*, i8* }* %"$tf_envload_118", { i8*, i8* }** %tf, align 8 + store { i8*, i8* }* %"$tf_envload_120", { i8*, i8* }** %tf, align 8 %"$retval_18" = alloca { i8*, i8* }*, align 8 - %"$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" + %"$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_121": ; preds = %entry +"$out_of_gas_123": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_122" - -"$have_gas_122": ; preds = %"$out_of_gas_121", %entry - %"$consume_123" = sub i64 %"$gasrem_119", 1 - store i64 %"$consume_123", i64* @_gasrem, align 8 - %"$tf_124" = load { i8*, i8* }*, { i8*, i8* }** %tf, align 8 - %"$tf_125" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$tf_124", i32 0 - %"$tf_126" = bitcast { i8*, i8* }* %"$tf_125" to { { i8*, i8* }* (i8*)*, i8* }* - %"$tf_127" = load { { i8*, i8* }* (i8*)*, i8* }, { { i8*, i8* }* (i8*)*, i8* }* %"$tf_126", align 8 - %"$tf_fptr_128" = extractvalue { { i8*, i8* }* (i8*)*, i8* } %"$tf_127", 0 - %"$tf_envptr_129" = extractvalue { { i8*, i8* }* (i8*)*, i8* } %"$tf_127", 1 - %"$tf_call_130" = call { i8*, i8* }* %"$tf_fptr_128"(i8* %"$tf_envptr_129"), !dbg !8 - store { i8*, i8* }* %"$tf_call_130", { i8*, i8* }** %"$retval_18", align 8, !dbg !9 - %"$$retval_18_131" = load { i8*, i8* }*, { i8*, i8* }** %"$retval_18", align 8 - ret { i8*, i8* }* %"$$retval_18_131" + br label %"$have_gas_124" + +"$have_gas_124": ; preds = %"$out_of_gas_123", %entry + %"$consume_125" = sub i64 %"$gasrem_121", 1 + store i64 %"$consume_125", i64* @_gasrem, align 8 + %"$tf_126" = load { i8*, i8* }*, { i8*, i8* }** %tf, align 8 + %"$tf_127" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$tf_126", i32 0 + %"$tf_128" = bitcast { i8*, i8* }* %"$tf_127" to { { i8*, i8* }* (i8*)*, i8* }* + %"$tf_129" = load { { i8*, i8* }* (i8*)*, i8* }, { { i8*, i8* }* (i8*)*, i8* }* %"$tf_128", align 8 + %"$tf_fptr_130" = extractvalue { { i8*, i8* }* (i8*)*, i8* } %"$tf_129", 0 + %"$tf_envptr_131" = extractvalue { { i8*, i8* }* (i8*)*, i8* } %"$tf_129", 1 + %"$tf_call_132" = call { i8*, i8* }* %"$tf_fptr_130"(i8* %"$tf_envptr_131"), !dbg !8 + store { i8*, i8* }* %"$tf_call_132", { i8*, i8* }** %"$retval_18", align 8, !dbg !9 + %"$$retval_18_133" = load { i8*, i8* }*, { i8*, i8* }** %"$retval_18", align 8 + ret { i8*, i8* }* %"$$retval_18_133" } define internal %TName_Pair_Int32_Int64* @"$fundef_15"(%"$$fundef_15_env_67"* %0, %Int64 %1) !dbg !10 { entry: - %"$$fundef_15_env_a_103" = getelementptr inbounds %"$$fundef_15_env_67", %"$$fundef_15_env_67"* %0, i32 0, i32 0 - %"$a_envload_104" = load %Int32, %Int32* %"$$fundef_15_env_a_103", align 4 + %"$b_118" = alloca %Int64, align 8 + store %Int64 %1, %Int64* %"$b_118", align 8 + call void @llvm.dbg.declare(metadata %Int64* %"$b_118", metadata !11, metadata !DIExpression()), !dbg !13 + %"$$fundef_15_env_a_104" = getelementptr inbounds %"$$fundef_15_env_67", %"$$fundef_15_env_67"* %0, i32 0, i32 0 + %"$a_envload_105" = load %Int32, %Int32* %"$$fundef_15_env_a_104", align 4 %a = alloca %Int32, align 8 - store %Int32 %"$a_envload_104", %Int32* %a, align 4 + store %Int32 %"$a_envload_105", %Int32* %a, align 4 %"$retval_16" = alloca %TName_Pair_Int32_Int64*, 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" + call void @llvm.dbg.declare(metadata %TName_Pair_Int32_Int64** %"$retval_16", metadata !14, metadata !DIExpression()), !dbg !17 + %"$gasrem_106" = load i64, i64* @_gasrem, align 8 + %"$gascmp_107" = icmp ugt i64 1, %"$gasrem_106" + br i1 %"$gascmp_107", label %"$out_of_gas_108", label %"$have_gas_109" -"$out_of_gas_107": ; preds = %entry +"$out_of_gas_108": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_108" - -"$have_gas_108": ; preds = %"$out_of_gas_107", %entry - %"$consume_109" = sub i64 %"$gasrem_105", 1 - store i64 %"$consume_109", i64* @_gasrem, align 8 - %"$a_110" = load %Int32, %Int32* %a, align 4 - %"$adtval_111_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_111_salloc" = call i8* @_salloc(i8* %"$adtval_111_load", i64 13) - %"$adtval_111" = bitcast i8* %"$adtval_111_salloc" to %CName_Pair_Int32_Int64* - %"$adtgep_112" = getelementptr inbounds %CName_Pair_Int32_Int64, %CName_Pair_Int32_Int64* %"$adtval_111", i32 0, i32 0 - store i8 0, i8* %"$adtgep_112", align 1 - %"$adtgep_113" = getelementptr inbounds %CName_Pair_Int32_Int64, %CName_Pair_Int32_Int64* %"$adtval_111", i32 0, i32 1 - store %Int32 %"$a_110", %Int32* %"$adtgep_113", align 4 - %"$adtgep_114" = getelementptr inbounds %CName_Pair_Int32_Int64, %CName_Pair_Int32_Int64* %"$adtval_111", i32 0, i32 2 - store %Int64 %1, %Int64* %"$adtgep_114", align 8 - %"$adtptr_115" = bitcast %CName_Pair_Int32_Int64* %"$adtval_111" to %TName_Pair_Int32_Int64* - store %TName_Pair_Int32_Int64* %"$adtptr_115", %TName_Pair_Int32_Int64** %"$retval_16", align 8, !dbg !11 - %"$$retval_16_116" = load %TName_Pair_Int32_Int64*, %TName_Pair_Int32_Int64** %"$retval_16", align 8 - ret %TName_Pair_Int32_Int64* %"$$retval_16_116" + br label %"$have_gas_109" + +"$have_gas_109": ; preds = %"$out_of_gas_108", %entry + %"$consume_110" = sub i64 %"$gasrem_106", 1 + store i64 %"$consume_110", i64* @_gasrem, align 8 + %"$a_111" = load %Int32, %Int32* %a, align 4 + %"$adtval_112_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_112_salloc" = call i8* @_salloc(i8* %"$adtval_112_load", i64 13) + %"$adtval_112" = bitcast i8* %"$adtval_112_salloc" to %CName_Pair_Int32_Int64* + %"$adtgep_113" = getelementptr inbounds %CName_Pair_Int32_Int64, %CName_Pair_Int32_Int64* %"$adtval_112", i32 0, i32 0 + store i8 0, i8* %"$adtgep_113", align 1 + %"$adtgep_114" = getelementptr inbounds %CName_Pair_Int32_Int64, %CName_Pair_Int32_Int64* %"$adtval_112", i32 0, i32 1 + store %Int32 %"$a_111", %Int32* %"$adtgep_114", align 4 + %"$adtgep_115" = getelementptr inbounds %CName_Pair_Int32_Int64, %CName_Pair_Int32_Int64* %"$adtval_112", i32 0, i32 2 + store %Int64 %1, %Int64* %"$adtgep_115", align 8 + %"$adtptr_116" = bitcast %CName_Pair_Int32_Int64* %"$adtval_112" to %TName_Pair_Int32_Int64* + store %TName_Pair_Int32_Int64* %"$adtptr_116", %TName_Pair_Int32_Int64** %"$retval_16", align 8, !dbg !17 + %"$$retval_16_117" = load %TName_Pair_Int32_Int64*, %TName_Pair_Int32_Int64** %"$retval_16", align 8 + ret %TName_Pair_Int32_Int64* %"$$retval_16_117" } -define internal { %TName_Pair_Int32_Int64* (i8*, %Int64)*, i8* } @"$fundef_13"(%"$$fundef_13_env_68"* %0, %Int32 %1) !dbg !12 { +define internal { %TName_Pair_Int32_Int64* (i8*, %Int64)*, i8* } @"$fundef_13"(%"$$fundef_13_env_68"* %0, %Int32 %1) !dbg !18 { entry: + %"$a_103" = alloca %Int32, align 8 + store %Int32 %1, %Int32* %"$a_103", align 4 + call void @llvm.dbg.declare(metadata %Int32* %"$a_103", metadata !19, metadata !DIExpression()), !dbg !21 %"$retval_14" = alloca { %TName_Pair_Int32_Int64* (i8*, %Int64)*, i8* }, align 8 %"$gasrem_92" = load i64, i64* @_gasrem, align 8 %"$gascmp_93" = icmp ugt i64 1, %"$gasrem_92" @@ -178,12 +185,12 @@ entry: %"$$fundef_15_cloval_100" = insertvalue { %TName_Pair_Int32_Int64* (i8*, %Int64)*, i8* } { %TName_Pair_Int32_Int64* (i8*, %Int64)* bitcast (%TName_Pair_Int32_Int64* (%"$$fundef_15_env_67"*, %Int64)* @"$fundef_15" to %TName_Pair_Int32_Int64* (i8*, %Int64)*), i8* undef }, i8* %"$$fundef_15_env_voidp_99", 1 %"$$fundef_15_env_a_101" = getelementptr inbounds %"$$fundef_15_env_67", %"$$fundef_15_env_67"* %"$$fundef_15_envp_97", i32 0, i32 0 store %Int32 %1, %Int32* %"$$fundef_15_env_a_101", align 4 - store { %TName_Pair_Int32_Int64* (i8*, %Int64)*, i8* } %"$$fundef_15_cloval_100", { %TName_Pair_Int32_Int64* (i8*, %Int64)*, i8* }* %"$retval_14", align 8, !dbg !13 + store { %TName_Pair_Int32_Int64* (i8*, %Int64)*, i8* } %"$$fundef_15_cloval_100", { %TName_Pair_Int32_Int64* (i8*, %Int64)*, i8* }* %"$retval_14", align 8, !dbg !22 %"$$retval_14_102" = load { %TName_Pair_Int32_Int64* (i8*, %Int64)*, i8* }, { %TName_Pair_Int32_Int64* (i8*, %Int64)*, i8* }* %"$retval_14", align 8 ret { %TName_Pair_Int32_Int64* (i8*, %Int64)*, i8* } %"$$retval_14_102" } -define internal { { %TName_Pair_Int32_Int64* (i8*, %Int64)*, i8* } (i8*, %Int32)*, i8* } @"$fundef_11"(%"$$fundef_11_env_69"* %0) !dbg !14 { +define internal { { %TName_Pair_Int32_Int64* (i8*, %Int64)*, i8* } (i8*, %Int32)*, i8* } @"$fundef_11"(%"$$fundef_11_env_69"* %0) !dbg !23 { entry: %"$retval_12" = alloca { { %TName_Pair_Int32_Int64* (i8*, %Int64)*, i8* } (i8*, %Int32)*, i8* }, align 8 %"$gasrem_83" = load i64, i64* @_gasrem, align 8 @@ -197,12 +204,12 @@ entry: "$have_gas_86": ; preds = %"$out_of_gas_85", %entry %"$consume_87" = sub i64 %"$gasrem_83", 1 store i64 %"$consume_87", i64* @_gasrem, align 8 - store { { %TName_Pair_Int32_Int64* (i8*, %Int64)*, i8* } (i8*, %Int32)*, i8* } { { %TName_Pair_Int32_Int64* (i8*, %Int64)*, i8* } (i8*, %Int32)* bitcast ({ %TName_Pair_Int32_Int64* (i8*, %Int64)*, i8* } (%"$$fundef_13_env_68"*, %Int32)* @"$fundef_13" to { %TName_Pair_Int32_Int64* (i8*, %Int64)*, i8* } (i8*, %Int32)*), i8* null }, { { %TName_Pair_Int32_Int64* (i8*, %Int64)*, i8* } (i8*, %Int32)*, i8* }* %"$retval_12", align 8, !dbg !15 + store { { %TName_Pair_Int32_Int64* (i8*, %Int64)*, i8* } (i8*, %Int32)*, i8* } { { %TName_Pair_Int32_Int64* (i8*, %Int64)*, i8* } (i8*, %Int32)* bitcast ({ %TName_Pair_Int32_Int64* (i8*, %Int64)*, i8* } (%"$$fundef_13_env_68"*, %Int32)* @"$fundef_13" to { %TName_Pair_Int32_Int64* (i8*, %Int64)*, i8* } (i8*, %Int32)*), i8* null }, { { %TName_Pair_Int32_Int64* (i8*, %Int64)*, i8* } (i8*, %Int32)*, i8* }* %"$retval_12", align 8, !dbg !24 %"$$retval_12_91" = load { { %TName_Pair_Int32_Int64* (i8*, %Int64)*, i8* } (i8*, %Int32)*, i8* }, { { %TName_Pair_Int32_Int64* (i8*, %Int64)*, i8* } (i8*, %Int32)*, i8* }* %"$retval_12", align 8 ret { { %TName_Pair_Int32_Int64* (i8*, %Int64)*, i8* } (i8*, %Int32)*, i8* } %"$$retval_12_91" } -define internal { i8*, i8* }* @"$fundef_9"(%"$$fundef_9_env_70"* %0) !dbg !16 { +define internal { i8*, i8* }* @"$fundef_9"(%"$$fundef_9_env_70"* %0) !dbg !25 { entry: %"$retval_10" = alloca { i8*, i8* }*, align 8 %"$gasrem_71" = load i64, i64* @_gasrem, align 8 @@ -223,7 +230,7 @@ entry: %"$dyndisp_gep_80" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_79", i32 1 %"$dyndisp_pcast_81" = bitcast { i8*, i8* }* %"$dyndisp_gep_80" to { { { %TName_Pair_Int32_Int64* (i8*, %Int64)*, i8* } (i8*, %Int32)*, i8* } (i8*)*, i8* }* store { { { %TName_Pair_Int32_Int64* (i8*, %Int64)*, i8* } (i8*, %Int32)*, i8* } (i8*)*, i8* } { { { %TName_Pair_Int32_Int64* (i8*, %Int64)*, i8* } (i8*, %Int32)*, i8* } (i8*)* bitcast ({ { %TName_Pair_Int32_Int64* (i8*, %Int64)*, i8* } (i8*, %Int32)*, i8* } (%"$$fundef_11_env_69"*)* @"$fundef_11" to { { %TName_Pair_Int32_Int64* (i8*, %Int64)*, i8* } (i8*, %Int32)*, i8* } (i8*)*), i8* null }, { { { %TName_Pair_Int32_Int64* (i8*, %Int64)*, i8* } (i8*, %Int32)*, i8* } (i8*)*, i8* }* %"$dyndisp_pcast_81", align 8 - store { i8*, i8* }* %"$dyndisp_table_79", { i8*, i8* }** %"$retval_10", align 8, !dbg !17 + store { i8*, i8* }* %"$dyndisp_table_79", { i8*, i8* }** %"$retval_10", align 8, !dbg !26 %"$$retval_10_82" = load { i8*, i8* }*, { i8*, i8* }** %"$retval_10", align 8 ret { i8*, i8* }* %"$$retval_10_82" } @@ -232,312 +239,336 @@ declare void @_out_of_gas() declare i8* @_salloc(i8*, i64) -define void @_init_libs() !dbg !18 { +; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn +declare void @llvm.dbg.declare(metadata, metadata, metadata) #0 + +define void @_init_libs() !dbg !27 { entry: - %"$gasrem_132" = load i64, i64* @_gasrem, align 8 - %"$gascmp_133" = icmp ugt i64 5, %"$gasrem_132" - br i1 %"$gascmp_133", label %"$out_of_gas_134", label %"$have_gas_135" + %"$gasrem_134" = load i64, i64* @_gasrem, align 8 + %"$gascmp_135" = icmp ugt i64 5, %"$gasrem_134" + br i1 %"$gascmp_135", label %"$out_of_gas_136", label %"$have_gas_137" -"$out_of_gas_134": ; preds = %entry +"$out_of_gas_136": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_135" + br label %"$have_gas_137" -"$have_gas_135": ; preds = %"$out_of_gas_134", %entry - %"$consume_136" = sub i64 %"$gasrem_132", 5 - store i64 %"$consume_136", i64* @_gasrem, align 8 - store %Int32 { i32 5 }, %Int32* @"$_gas_charge_accrec_lib_5", align 4, !dbg !20 - %"$gasrem_137" = load i64, i64* @_gasrem, align 8 - %"$gascmp_138" = icmp ugt i64 8, %"$gasrem_137" - br i1 %"$gascmp_138", label %"$out_of_gas_139", label %"$have_gas_140" +"$have_gas_137": ; preds = %"$out_of_gas_136", %entry + %"$consume_138" = sub i64 %"$gasrem_134", 5 + store i64 %"$consume_138", i64* @_gasrem, align 8 + store %Int32 { i32 5 }, %Int32* @"$_gas_charge_accrec_lib_5", align 4, !dbg !29 + %"$gasrem_139" = load i64, i64* @_gasrem, align 8 + %"$gascmp_140" = icmp ugt i64 8, %"$gasrem_139" + br i1 %"$gascmp_140", label %"$out_of_gas_141", label %"$have_gas_142" -"$out_of_gas_139": ; preds = %"$have_gas_135" +"$out_of_gas_141": ; preds = %"$have_gas_137" call void @_out_of_gas() - br label %"$have_gas_140" + br label %"$have_gas_142" -"$have_gas_140": ; preds = %"$out_of_gas_139", %"$have_gas_135" - %"$consume_141" = sub i64 %"$gasrem_137", 8 - store i64 %"$consume_141", i64* @_gasrem, align 8 - store %Int32 { i32 8 }, %Int32* @"$_gas_charge_accBoolUtils_0", align 4, !dbg !20 - %"$gasrem_142" = load i64, i64* @_gasrem, align 8 - %"$gascmp_143" = icmp ugt i64 196, %"$gasrem_142" - br i1 %"$gascmp_143", label %"$out_of_gas_144", label %"$have_gas_145" +"$have_gas_142": ; preds = %"$out_of_gas_141", %"$have_gas_137" + %"$consume_143" = sub i64 %"$gasrem_139", 8 + store i64 %"$consume_143", i64* @_gasrem, align 8 + store %Int32 { i32 8 }, %Int32* @"$_gas_charge_accBoolUtils_0", align 4, !dbg !29 + %"$gasrem_144" = load i64, i64* @_gasrem, align 8 + %"$gascmp_145" = icmp ugt i64 196, %"$gasrem_144" + br i1 %"$gascmp_145", label %"$out_of_gas_146", label %"$have_gas_147" -"$out_of_gas_144": ; preds = %"$have_gas_140" +"$out_of_gas_146": ; preds = %"$have_gas_142" call void @_out_of_gas() - br label %"$have_gas_145" + br label %"$have_gas_147" -"$have_gas_145": ; preds = %"$out_of_gas_144", %"$have_gas_140" - %"$consume_146" = sub i64 %"$gasrem_142", 196 - store i64 %"$consume_146", i64* @_gasrem, align 8 - store %Int32 { i32 196 }, %Int32* @"$_gas_charge_accIntUtils_1", align 4, !dbg !20 - %"$gasrem_147" = load i64, i64* @_gasrem, align 8 - %"$gascmp_148" = icmp ugt i64 20, %"$gasrem_147" - br i1 %"$gascmp_148", label %"$out_of_gas_149", label %"$have_gas_150" +"$have_gas_147": ; preds = %"$out_of_gas_146", %"$have_gas_142" + %"$consume_148" = sub i64 %"$gasrem_144", 196 + store i64 %"$consume_148", i64* @_gasrem, align 8 + store %Int32 { i32 196 }, %Int32* @"$_gas_charge_accIntUtils_1", align 4, !dbg !29 + %"$gasrem_149" = load i64, i64* @_gasrem, align 8 + %"$gascmp_150" = icmp ugt i64 20, %"$gasrem_149" + br i1 %"$gascmp_150", label %"$out_of_gas_151", label %"$have_gas_152" -"$out_of_gas_149": ; preds = %"$have_gas_145" +"$out_of_gas_151": ; preds = %"$have_gas_147" call void @_out_of_gas() - br label %"$have_gas_150" + br label %"$have_gas_152" -"$have_gas_150": ; preds = %"$out_of_gas_149", %"$have_gas_145" - %"$consume_151" = sub i64 %"$gasrem_147", 20 - store i64 %"$consume_151", i64* @_gasrem, align 8 - store %Int32 { i32 20 }, %Int32* @"$_gas_charge_accListUtils_2", align 4, !dbg !20 - %"$gasrem_152" = load i64, i64* @_gasrem, align 8 - %"$gascmp_153" = icmp ugt i64 12, %"$gasrem_152" - br i1 %"$gascmp_153", label %"$out_of_gas_154", label %"$have_gas_155" +"$have_gas_152": ; preds = %"$out_of_gas_151", %"$have_gas_147" + %"$consume_153" = sub i64 %"$gasrem_149", 20 + store i64 %"$consume_153", i64* @_gasrem, align 8 + store %Int32 { i32 20 }, %Int32* @"$_gas_charge_accListUtils_2", align 4, !dbg !29 + %"$gasrem_154" = load i64, i64* @_gasrem, align 8 + %"$gascmp_155" = icmp ugt i64 12, %"$gasrem_154" + br i1 %"$gascmp_155", label %"$out_of_gas_156", label %"$have_gas_157" -"$out_of_gas_154": ; preds = %"$have_gas_150" +"$out_of_gas_156": ; preds = %"$have_gas_152" call void @_out_of_gas() - br label %"$have_gas_155" + br label %"$have_gas_157" -"$have_gas_155": ; preds = %"$out_of_gas_154", %"$have_gas_150" - %"$consume_156" = sub i64 %"$gasrem_152", 12 - store i64 %"$consume_156", i64* @_gasrem, align 8 - store %Int32 { i32 12 }, %Int32* @"$_gas_charge_accNatUtils_3", align 4, !dbg !20 - %"$gasrem_157" = load i64, i64* @_gasrem, align 8 - %"$gascmp_158" = icmp ugt i64 2, %"$gasrem_157" - br i1 %"$gascmp_158", label %"$out_of_gas_159", label %"$have_gas_160" +"$have_gas_157": ; preds = %"$out_of_gas_156", %"$have_gas_152" + %"$consume_158" = sub i64 %"$gasrem_154", 12 + store i64 %"$consume_158", i64* @_gasrem, align 8 + store %Int32 { i32 12 }, %Int32* @"$_gas_charge_accNatUtils_3", align 4, !dbg !29 + %"$gasrem_159" = load i64, i64* @_gasrem, align 8 + %"$gascmp_160" = icmp ugt i64 2, %"$gasrem_159" + br i1 %"$gascmp_160", label %"$out_of_gas_161", label %"$have_gas_162" -"$out_of_gas_159": ; preds = %"$have_gas_155" +"$out_of_gas_161": ; preds = %"$have_gas_157" call void @_out_of_gas() - br label %"$have_gas_160" + br label %"$have_gas_162" -"$have_gas_160": ; preds = %"$out_of_gas_159", %"$have_gas_155" - %"$consume_161" = sub i64 %"$gasrem_157", 2 - store i64 %"$consume_161", i64* @_gasrem, align 8 - store %Int32 { i32 2 }, %Int32* @"$_gas_charge_accPairUtils_4", align 4, !dbg !20 +"$have_gas_162": ; preds = %"$out_of_gas_161", %"$have_gas_157" + %"$consume_163" = sub i64 %"$gasrem_159", 2 + store i64 %"$consume_163", i64* @_gasrem, align 8 + store %Int32 { i32 2 }, %Int32* @"$_gas_charge_accPairUtils_4", align 4, !dbg !29 ret void } -define internal %TName_Pair_Int32_Int64* @_scilla_expr_fun(i8* %0) !dbg !21 { +define internal %TName_Pair_Int32_Int64* @_scilla_expr_fun(i8* %0) !dbg !30 { entry: %"$expr_8" = alloca %TName_Pair_Int32_Int64*, 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" + call void @llvm.dbg.declare(metadata %TName_Pair_Int32_Int64** %"$expr_8", metadata !31, metadata !DIExpression()), !dbg !32 + %"$gasrem_164" = load i64, i64* @_gasrem, align 8 + %"$gascmp_165" = icmp ugt i64 1, %"$gasrem_164" + br i1 %"$gascmp_165", label %"$out_of_gas_166", label %"$have_gas_167" -"$out_of_gas_164": ; preds = %entry +"$out_of_gas_166": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_165" + br label %"$have_gas_167" -"$have_gas_165": ; preds = %"$out_of_gas_164", %entry - %"$consume_166" = sub i64 %"$gasrem_162", 1 - store i64 %"$consume_166", i64* @_gasrem, align 8 +"$have_gas_167": ; preds = %"$out_of_gas_166", %entry + %"$consume_168" = sub i64 %"$gasrem_164", 1 + store i64 %"$consume_168", i64* @_gasrem, align 8 %tf = alloca { i8*, 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" + %"$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_169": ; preds = %"$have_gas_165" +"$out_of_gas_171": ; preds = %"$have_gas_167" 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 - %"$dyndisp_table_175_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$dyndisp_table_175_salloc_salloc" = call i8* @_salloc(i8* %"$dyndisp_table_175_salloc_load", i64 32) - %"$dyndisp_table_175_salloc" = bitcast i8* %"$dyndisp_table_175_salloc_salloc" to [2 x { i8*, i8* }]* - %"$dyndisp_table_175" = bitcast [2 x { i8*, i8* }]* %"$dyndisp_table_175_salloc" to { i8*, i8* }* - %"$dyndisp_gep_176" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_175", i32 0 - %"$dyndisp_pcast_177" = bitcast { i8*, i8* }* %"$dyndisp_gep_176" to { { i8*, i8* }* (i8*)*, i8* }* - store { { i8*, i8* }* (i8*)*, i8* } { { i8*, i8* }* (i8*)* bitcast ({ i8*, i8* }* (%"$$fundef_9_env_70"*)* @"$fundef_9" to { i8*, i8* }* (i8*)*), i8* null }, { { i8*, i8* }* (i8*)*, i8* }* %"$dyndisp_pcast_177", align 8 - store { i8*, i8* }* %"$dyndisp_table_175", { i8*, i8* }** %tf, align 8, !dbg !22 - %"$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" + br label %"$have_gas_172" + +"$have_gas_172": ; preds = %"$out_of_gas_171", %"$have_gas_167" + %"$consume_173" = sub i64 %"$gasrem_169", 1 + store i64 %"$consume_173", i64* @_gasrem, align 8 + %"$dyndisp_table_177_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$dyndisp_table_177_salloc_salloc" = call i8* @_salloc(i8* %"$dyndisp_table_177_salloc_load", i64 32) + %"$dyndisp_table_177_salloc" = bitcast i8* %"$dyndisp_table_177_salloc_salloc" to [2 x { i8*, i8* }]* + %"$dyndisp_table_177" = bitcast [2 x { i8*, i8* }]* %"$dyndisp_table_177_salloc" to { i8*, i8* }* + %"$dyndisp_gep_178" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_177", i32 0 + %"$dyndisp_pcast_179" = bitcast { i8*, i8* }* %"$dyndisp_gep_178" to { { i8*, i8* }* (i8*)*, i8* }* + store { { i8*, i8* }* (i8*)*, i8* } { { i8*, i8* }* (i8*)* bitcast ({ i8*, i8* }* (%"$$fundef_9_env_70"*)* @"$fundef_9" to { i8*, i8* }* (i8*)*), i8* null }, { { i8*, i8* }* (i8*)*, i8* }* %"$dyndisp_pcast_179", align 8 + store { i8*, i8* }* %"$dyndisp_table_177", { i8*, i8* }** %tf, align 8, !dbg !32 + %"$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_172" call void @_out_of_gas() - br label %"$have_gas_181" + br label %"$have_gas_183" -"$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 +"$have_gas_183": ; preds = %"$out_of_gas_182", %"$have_gas_172" + %"$consume_184" = sub i64 %"$gasrem_180", 1 + store i64 %"$consume_184", i64* @_gasrem, align 8 %tf2 = alloca { i8*, i8* }*, align 8 - %"$gasrem_183" = load i64, i64* @_gasrem, align 8 - %"$gascmp_184" = icmp ugt i64 1, %"$gasrem_183" - br i1 %"$gascmp_184", label %"$out_of_gas_185", label %"$have_gas_186" + %"$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_185": ; preds = %"$have_gas_181" +"$out_of_gas_187": ; preds = %"$have_gas_183" call void @_out_of_gas() - br label %"$have_gas_186" - -"$have_gas_186": ; preds = %"$out_of_gas_185", %"$have_gas_181" - %"$consume_187" = sub i64 %"$gasrem_183", 1 - store i64 %"$consume_187", i64* @_gasrem, align 8 - %"$$fundef_17_envp_188_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_17_envp_188_salloc" = call i8* @_salloc(i8* %"$$fundef_17_envp_188_load", i64 8) - %"$$fundef_17_envp_188" = bitcast i8* %"$$fundef_17_envp_188_salloc" to %"$$fundef_17_env_66"* - %"$$fundef_17_env_voidp_190" = bitcast %"$$fundef_17_env_66"* %"$$fundef_17_envp_188" to i8* - %"$$fundef_17_cloval_191" = insertvalue { { i8*, i8* }* (i8*)*, i8* } { { i8*, i8* }* (i8*)* bitcast ({ i8*, i8* }* (%"$$fundef_17_env_66"*)* @"$fundef_17" to { i8*, i8* }* (i8*)*), i8* undef }, i8* %"$$fundef_17_env_voidp_190", 1 - %"$$fundef_17_env_tf_192" = getelementptr inbounds %"$$fundef_17_env_66", %"$$fundef_17_env_66"* %"$$fundef_17_envp_188", i32 0, i32 0 - %"$tf_193" = load { i8*, i8* }*, { i8*, i8* }** %tf, align 8 - store { i8*, i8* }* %"$tf_193", { i8*, i8* }** %"$$fundef_17_env_tf_192", align 8 - %"$dyndisp_table_194_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$dyndisp_table_194_salloc_salloc" = call i8* @_salloc(i8* %"$dyndisp_table_194_salloc_load", i64 32) - %"$dyndisp_table_194_salloc" = bitcast i8* %"$dyndisp_table_194_salloc_salloc" to [2 x { i8*, i8* }]* - %"$dyndisp_table_194" = bitcast [2 x { i8*, i8* }]* %"$dyndisp_table_194_salloc" to { i8*, i8* }* - %"$dyndisp_gep_195" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_194", i32 0 - %"$dyndisp_pcast_196" = bitcast { i8*, i8* }* %"$dyndisp_gep_195" to { { i8*, i8* }* (i8*)*, i8* }* - store { { i8*, i8* }* (i8*)*, i8* } %"$$fundef_17_cloval_191", { { i8*, i8* }* (i8*)*, i8* }* %"$dyndisp_pcast_196", align 8 - store { i8*, i8* }* %"$dyndisp_table_194", { i8*, i8* }** %tf2, align 8, !dbg !23 - %"$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_186" + br label %"$have_gas_188" + +"$have_gas_188": ; preds = %"$out_of_gas_187", %"$have_gas_183" + %"$consume_189" = sub i64 %"$gasrem_185", 1 + store i64 %"$consume_189", i64* @_gasrem, align 8 + %"$$fundef_17_envp_190_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_17_envp_190_salloc" = call i8* @_salloc(i8* %"$$fundef_17_envp_190_load", i64 8) + %"$$fundef_17_envp_190" = bitcast i8* %"$$fundef_17_envp_190_salloc" to %"$$fundef_17_env_66"* + %"$$fundef_17_env_voidp_192" = bitcast %"$$fundef_17_env_66"* %"$$fundef_17_envp_190" to i8* + %"$$fundef_17_cloval_193" = insertvalue { { i8*, i8* }* (i8*)*, i8* } { { i8*, i8* }* (i8*)* bitcast ({ i8*, i8* }* (%"$$fundef_17_env_66"*)* @"$fundef_17" to { i8*, i8* }* (i8*)*), i8* undef }, i8* %"$$fundef_17_env_voidp_192", 1 + %"$$fundef_17_env_tf_194" = getelementptr inbounds %"$$fundef_17_env_66", %"$$fundef_17_env_66"* %"$$fundef_17_envp_190", i32 0, i32 0 + %"$tf_195" = load { i8*, i8* }*, { i8*, i8* }** %tf, align 8 + store { i8*, i8* }* %"$tf_195", { i8*, i8* }** %"$$fundef_17_env_tf_194", align 8 + %"$dyndisp_table_196_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$dyndisp_table_196_salloc_salloc" = call i8* @_salloc(i8* %"$dyndisp_table_196_salloc_load", i64 32) + %"$dyndisp_table_196_salloc" = bitcast i8* %"$dyndisp_table_196_salloc_salloc" to [2 x { i8*, i8* }]* + %"$dyndisp_table_196" = bitcast [2 x { i8*, i8* }]* %"$dyndisp_table_196_salloc" to { i8*, i8* }* + %"$dyndisp_gep_197" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_196", i32 0 + %"$dyndisp_pcast_198" = bitcast { i8*, i8* }* %"$dyndisp_gep_197" to { { i8*, i8* }* (i8*)*, i8* }* + store { { i8*, i8* }* (i8*)*, i8* } %"$$fundef_17_cloval_193", { { i8*, i8* }* (i8*)*, i8* }* %"$dyndisp_pcast_198", align 8 + store { i8*, i8* }* %"$dyndisp_table_196", { i8*, i8* }** %tf2, align 8, !dbg !33 + %"$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 = %"$have_gas_188" call void @_out_of_gas() - br label %"$have_gas_200" + br label %"$have_gas_202" -"$have_gas_200": ; preds = %"$out_of_gas_199", %"$have_gas_186" - %"$consume_201" = sub i64 %"$gasrem_197", 1 - store i64 %"$consume_201", i64* @_gasrem, align 8 +"$have_gas_202": ; preds = %"$out_of_gas_201", %"$have_gas_188" + %"$consume_203" = sub i64 %"$gasrem_199", 1 + store i64 %"$consume_203", i64* @_gasrem, align 8 %f = alloca { { %TName_Pair_Int32_Int64* (i8*, %Int64)*, i8* } (i8*, %Int32)*, i8* }, 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" + %"$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_204": ; preds = %"$have_gas_200" +"$out_of_gas_206": ; preds = %"$have_gas_202" call void @_out_of_gas() - br label %"$have_gas_205" - -"$have_gas_205": ; preds = %"$out_of_gas_204", %"$have_gas_200" - %"$consume_206" = sub i64 %"$gasrem_202", 1 - store i64 %"$consume_206", i64* @_gasrem, align 8 - %"$tf2_207" = load { i8*, i8* }*, { i8*, i8* }** %tf2, align 8 - %"$tf2_208" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$tf2_207", i32 0 - %"$tf2_209" = bitcast { i8*, i8* }* %"$tf2_208" to { { i8*, i8* }* (i8*)*, i8* }* - %"$tf2_210" = load { { i8*, i8* }* (i8*)*, i8* }, { { i8*, i8* }* (i8*)*, i8* }* %"$tf2_209", align 8 - %"$tf2_fptr_211" = extractvalue { { i8*, i8* }* (i8*)*, i8* } %"$tf2_210", 0 - %"$tf2_envptr_212" = extractvalue { { i8*, i8* }* (i8*)*, i8* } %"$tf2_210", 1 - %"$tf2_call_213" = call { i8*, i8* }* %"$tf2_fptr_211"(i8* %"$tf2_envptr_212"), !dbg !24 - %"$tf2_214" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$tf2_call_213", i32 1 - %"$tf2_215" = bitcast { i8*, i8* }* %"$tf2_214" to { { { %TName_Pair_Int32_Int64* (i8*, %Int64)*, i8* } (i8*, %Int32)*, i8* } (i8*)*, i8* }* - %"$tf2_216" = load { { { %TName_Pair_Int32_Int64* (i8*, %Int64)*, i8* } (i8*, %Int32)*, i8* } (i8*)*, i8* }, { { { %TName_Pair_Int32_Int64* (i8*, %Int64)*, i8* } (i8*, %Int32)*, i8* } (i8*)*, i8* }* %"$tf2_215", align 8 - %"$tf2_fptr_217" = extractvalue { { { %TName_Pair_Int32_Int64* (i8*, %Int64)*, i8* } (i8*, %Int32)*, i8* } (i8*)*, i8* } %"$tf2_216", 0 - %"$tf2_envptr_218" = extractvalue { { { %TName_Pair_Int32_Int64* (i8*, %Int64)*, i8* } (i8*, %Int32)*, i8* } (i8*)*, i8* } %"$tf2_216", 1 - %"$tf2_call_219" = call { { %TName_Pair_Int32_Int64* (i8*, %Int64)*, i8* } (i8*, %Int32)*, i8* } %"$tf2_fptr_217"(i8* %"$tf2_envptr_218"), !dbg !24 - store { { %TName_Pair_Int32_Int64* (i8*, %Int64)*, i8* } (i8*, %Int32)*, i8* } %"$tf2_call_219", { { %TName_Pair_Int32_Int64* (i8*, %Int64)*, i8* } (i8*, %Int32)*, i8* }* %f, align 8, !dbg !25 - %"$gasrem_220" = load i64, i64* @_gasrem, align 8 - %"$gascmp_221" = icmp ugt i64 1, %"$gasrem_220" - br i1 %"$gascmp_221", label %"$out_of_gas_222", label %"$have_gas_223" - -"$out_of_gas_222": ; preds = %"$have_gas_205" + 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 + %"$tf2_209" = load { i8*, i8* }*, { i8*, i8* }** %tf2, align 8 + %"$tf2_210" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$tf2_209", i32 0 + %"$tf2_211" = bitcast { i8*, i8* }* %"$tf2_210" to { { i8*, i8* }* (i8*)*, i8* }* + %"$tf2_212" = load { { i8*, i8* }* (i8*)*, i8* }, { { i8*, i8* }* (i8*)*, i8* }* %"$tf2_211", align 8 + %"$tf2_fptr_213" = extractvalue { { i8*, i8* }* (i8*)*, i8* } %"$tf2_212", 0 + %"$tf2_envptr_214" = extractvalue { { i8*, i8* }* (i8*)*, i8* } %"$tf2_212", 1 + %"$tf2_call_215" = call { i8*, i8* }* %"$tf2_fptr_213"(i8* %"$tf2_envptr_214"), !dbg !34 + %"$tf2_216" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$tf2_call_215", i32 1 + %"$tf2_217" = bitcast { i8*, i8* }* %"$tf2_216" to { { { %TName_Pair_Int32_Int64* (i8*, %Int64)*, i8* } (i8*, %Int32)*, i8* } (i8*)*, i8* }* + %"$tf2_218" = load { { { %TName_Pair_Int32_Int64* (i8*, %Int64)*, i8* } (i8*, %Int32)*, i8* } (i8*)*, i8* }, { { { %TName_Pair_Int32_Int64* (i8*, %Int64)*, i8* } (i8*, %Int32)*, i8* } (i8*)*, i8* }* %"$tf2_217", align 8 + %"$tf2_fptr_219" = extractvalue { { { %TName_Pair_Int32_Int64* (i8*, %Int64)*, i8* } (i8*, %Int32)*, i8* } (i8*)*, i8* } %"$tf2_218", 0 + %"$tf2_envptr_220" = extractvalue { { { %TName_Pair_Int32_Int64* (i8*, %Int64)*, i8* } (i8*, %Int32)*, i8* } (i8*)*, i8* } %"$tf2_218", 1 + %"$tf2_call_221" = call { { %TName_Pair_Int32_Int64* (i8*, %Int64)*, i8* } (i8*, %Int32)*, i8* } %"$tf2_fptr_219"(i8* %"$tf2_envptr_220"), !dbg !34 + store { { %TName_Pair_Int32_Int64* (i8*, %Int64)*, i8* } (i8*, %Int32)*, i8* } %"$tf2_call_221", { { %TName_Pair_Int32_Int64* (i8*, %Int64)*, i8* } (i8*, %Int32)*, i8* }* %f, align 8, !dbg !35 + %"$gasrem_222" = load i64, i64* @_gasrem, align 8 + %"$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_207" call void @_out_of_gas() - br label %"$have_gas_223" + br label %"$have_gas_225" -"$have_gas_223": ; preds = %"$out_of_gas_222", %"$have_gas_205" - %"$consume_224" = sub i64 %"$gasrem_220", 1 - store i64 %"$consume_224", i64* @_gasrem, align 8 +"$have_gas_225": ; preds = %"$out_of_gas_224", %"$have_gas_207" + %"$consume_226" = sub i64 %"$gasrem_222", 1 + store i64 %"$consume_226", i64* @_gasrem, align 8 %one = alloca %Int32, align 8 - %"$gasrem_225" = load i64, i64* @_gasrem, align 8 - %"$gascmp_226" = icmp ugt i64 1, %"$gasrem_225" - br i1 %"$gascmp_226", label %"$out_of_gas_227", label %"$have_gas_228" + call void @llvm.dbg.declare(metadata %Int32* %one, metadata !36, metadata !DIExpression()), !dbg !37 + %"$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_227": ; preds = %"$have_gas_223" +"$out_of_gas_229": ; preds = %"$have_gas_225" call void @_out_of_gas() - br label %"$have_gas_228" + br label %"$have_gas_230" -"$have_gas_228": ; preds = %"$out_of_gas_227", %"$have_gas_223" - %"$consume_229" = sub i64 %"$gasrem_225", 1 - store i64 %"$consume_229", i64* @_gasrem, align 8 - store %Int32 { i32 1 }, %Int32* %one, align 4, !dbg !26 - %"$gasrem_230" = load i64, i64* @_gasrem, align 8 - %"$gascmp_231" = icmp ugt i64 1, %"$gasrem_230" - br i1 %"$gascmp_231", label %"$out_of_gas_232", label %"$have_gas_233" +"$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 + store %Int32 { i32 1 }, %Int32* %one, align 4, !dbg !38 + %"$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_232": ; preds = %"$have_gas_228" +"$out_of_gas_234": ; preds = %"$have_gas_230" call void @_out_of_gas() - br label %"$have_gas_233" + br label %"$have_gas_235" -"$have_gas_233": ; preds = %"$out_of_gas_232", %"$have_gas_228" - %"$consume_234" = sub i64 %"$gasrem_230", 1 - store i64 %"$consume_234", i64* @_gasrem, align 8 +"$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 %two = alloca %Int64, 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" + call void @llvm.dbg.declare(metadata %Int64* %two, metadata !39, metadata !DIExpression()), !dbg !40 + %"$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_237": ; preds = %"$have_gas_233" +"$out_of_gas_239": ; preds = %"$have_gas_235" call void @_out_of_gas() - br label %"$have_gas_238" + br label %"$have_gas_240" -"$have_gas_238": ; preds = %"$out_of_gas_237", %"$have_gas_233" - %"$consume_239" = sub i64 %"$gasrem_235", 1 - store i64 %"$consume_239", i64* @_gasrem, align 8 - store %Int64 { i64 2 }, %Int64* %two, align 8, !dbg !27 - %"$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" +"$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 + store %Int64 { i64 2 }, %Int64* %two, align 8, !dbg !41 + %"$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_242": ; preds = %"$have_gas_238" +"$out_of_gas_244": ; preds = %"$have_gas_240" call void @_out_of_gas() - br label %"$have_gas_243" + br label %"$have_gas_245" -"$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_245": ; preds = %"$out_of_gas_244", %"$have_gas_240" + %"$consume_246" = sub i64 %"$gasrem_242", 1 + store i64 %"$consume_246", i64* @_gasrem, align 8 %"$f_6" = alloca { %TName_Pair_Int32_Int64* (i8*, %Int64)*, i8* }, align 8 - %"$f_245" = load { { %TName_Pair_Int32_Int64* (i8*, %Int64)*, i8* } (i8*, %Int32)*, i8* }, { { %TName_Pair_Int32_Int64* (i8*, %Int64)*, i8* } (i8*, %Int32)*, i8* }* %f, align 8 - %"$f_fptr_246" = extractvalue { { %TName_Pair_Int32_Int64* (i8*, %Int64)*, i8* } (i8*, %Int32)*, i8* } %"$f_245", 0 - %"$f_envptr_247" = extractvalue { { %TName_Pair_Int32_Int64* (i8*, %Int64)*, i8* } (i8*, %Int32)*, i8* } %"$f_245", 1 - %"$one_248" = load %Int32, %Int32* %one, align 4 - %"$f_call_249" = call { %TName_Pair_Int32_Int64* (i8*, %Int64)*, i8* } %"$f_fptr_246"(i8* %"$f_envptr_247", %Int32 %"$one_248"), !dbg !28 - store { %TName_Pair_Int32_Int64* (i8*, %Int64)*, i8* } %"$f_call_249", { %TName_Pair_Int32_Int64* (i8*, %Int64)*, i8* }* %"$f_6", align 8, !dbg !28 + %"$f_247" = load { { %TName_Pair_Int32_Int64* (i8*, %Int64)*, i8* } (i8*, %Int32)*, i8* }, { { %TName_Pair_Int32_Int64* (i8*, %Int64)*, i8* } (i8*, %Int32)*, i8* }* %f, align 8 + %"$f_fptr_248" = extractvalue { { %TName_Pair_Int32_Int64* (i8*, %Int64)*, i8* } (i8*, %Int32)*, i8* } %"$f_247", 0 + %"$f_envptr_249" = extractvalue { { %TName_Pair_Int32_Int64* (i8*, %Int64)*, i8* } (i8*, %Int32)*, i8* } %"$f_247", 1 + %"$one_250" = load %Int32, %Int32* %one, align 4 + %"$f_call_251" = call { %TName_Pair_Int32_Int64* (i8*, %Int64)*, i8* } %"$f_fptr_248"(i8* %"$f_envptr_249", %Int32 %"$one_250"), !dbg !42 + store { %TName_Pair_Int32_Int64* (i8*, %Int64)*, i8* } %"$f_call_251", { %TName_Pair_Int32_Int64* (i8*, %Int64)*, i8* }* %"$f_6", align 8, !dbg !42 %"$f_7" = alloca %TName_Pair_Int32_Int64*, align 8 - %"$$f_6_250" = load { %TName_Pair_Int32_Int64* (i8*, %Int64)*, i8* }, { %TName_Pair_Int32_Int64* (i8*, %Int64)*, i8* }* %"$f_6", align 8 - %"$$f_6_fptr_251" = extractvalue { %TName_Pair_Int32_Int64* (i8*, %Int64)*, i8* } %"$$f_6_250", 0 - %"$$f_6_envptr_252" = extractvalue { %TName_Pair_Int32_Int64* (i8*, %Int64)*, i8* } %"$$f_6_250", 1 - %"$two_253" = load %Int64, %Int64* %two, align 8 - %"$$f_6_call_254" = call %TName_Pair_Int32_Int64* %"$$f_6_fptr_251"(i8* %"$$f_6_envptr_252", %Int64 %"$two_253"), !dbg !28 - store %TName_Pair_Int32_Int64* %"$$f_6_call_254", %TName_Pair_Int32_Int64** %"$f_7", align 8, !dbg !28 - %"$$f_7_255" = load %TName_Pair_Int32_Int64*, %TName_Pair_Int32_Int64** %"$f_7", align 8 - store %TName_Pair_Int32_Int64* %"$$f_7_255", %TName_Pair_Int32_Int64** %"$expr_8", align 8, !dbg !28 - %"$$expr_8_256" = load %TName_Pair_Int32_Int64*, %TName_Pair_Int32_Int64** %"$expr_8", align 8 - ret %TName_Pair_Int32_Int64* %"$$expr_8_256" + call void @llvm.dbg.declare(metadata %TName_Pair_Int32_Int64** %"$f_7", metadata !43, metadata !DIExpression()), !dbg !42 + %"$$f_6_252" = load { %TName_Pair_Int32_Int64* (i8*, %Int64)*, i8* }, { %TName_Pair_Int32_Int64* (i8*, %Int64)*, i8* }* %"$f_6", align 8 + %"$$f_6_fptr_253" = extractvalue { %TName_Pair_Int32_Int64* (i8*, %Int64)*, i8* } %"$$f_6_252", 0 + %"$$f_6_envptr_254" = extractvalue { %TName_Pair_Int32_Int64* (i8*, %Int64)*, i8* } %"$$f_6_252", 1 + %"$two_255" = load %Int64, %Int64* %two, align 8 + %"$$f_6_call_256" = call %TName_Pair_Int32_Int64* %"$$f_6_fptr_253"(i8* %"$$f_6_envptr_254", %Int64 %"$two_255"), !dbg !42 + store %TName_Pair_Int32_Int64* %"$$f_6_call_256", %TName_Pair_Int32_Int64** %"$f_7", align 8, !dbg !42 + %"$$f_7_257" = load %TName_Pair_Int32_Int64*, %TName_Pair_Int32_Int64** %"$f_7", align 8 + store %TName_Pair_Int32_Int64* %"$$f_7_257", %TName_Pair_Int32_Int64** %"$expr_8", align 8, !dbg !42 + %"$$expr_8_258" = load %TName_Pair_Int32_Int64*, %TName_Pair_Int32_Int64** %"$expr_8", align 8 + ret %TName_Pair_Int32_Int64* %"$$expr_8_258" } declare void @_print_scilla_val(i8*, %_TyDescrTy_Typ*, i8*) define void @scilla_main() { entry: - %"$exprval_257" = call %TName_Pair_Int32_Int64* @_scilla_expr_fun(i8* null) - %"$memvoidcast_258" = bitcast %TName_Pair_Int32_Int64* %"$exprval_257" to i8* - %"$execptr_load_259" = load i8*, i8** @_execptr, align 8 - call void @_print_scilla_val(i8* %"$execptr_load_259", %_TyDescrTy_Typ* @"$TyDescr_ADT_Pair_Int32_Int64_53", i8* %"$memvoidcast_258") + %"$exprval_259" = call %TName_Pair_Int32_Int64* @_scilla_expr_fun(i8* null) + %"$memvoidcast_260" = bitcast %TName_Pair_Int32_Int64* %"$exprval_259" to i8* + %"$execptr_load_261" = load i8*, i8** @_execptr, align 8 + call void @_print_scilla_val(i8* %"$execptr_load_261", %_TyDescrTy_Typ* @"$TyDescr_ADT_Pair_Int32_Int64_53", i8* %"$memvoidcast_260") ret void } +attributes #0 = { nocallback nofree nosync nounwind readnone speculatable willreturn } + !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) +!1 = distinct !DICompileUnit(language: DW_LANG_C89, file: !2, producer: "Scilla Compiler", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false) !2 = !DIFile(filename: "tname_clash.scilexp", directory: "codegen/expr") -!3 = !{} -!4 = distinct !DISubprogram(name: "$fundef_17", linkageName: "$fundef_17", scope: !2, file: !2, line: 11, type: !5, scopeLine: 11, 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: 11, column: 6, scope: !4) -!9 = !DILocation(line: 11, column: 5, scope: !4) -!10 = distinct !DISubprogram(name: "$fundef_15", linkageName: "$fundef_15", scope: !2, file: !2, line: 6, type: !5, scopeLine: 6, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!11 = !DILocation(line: 6, column: 5, scope: !10) -!12 = distinct !DISubprogram(name: "$fundef_13", linkageName: "$fundef_13", scope: !2, file: !2, line: 5, type: !5, scopeLine: 5, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!13 = !DILocation(line: 6, column: 5, scope: !12) -!14 = 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) -!15 = !DILocation(line: 5, column: 3, scope: !14) -!16 = distinct !DISubprogram(name: "$fundef_9", linkageName: "$fundef_9", scope: !2, file: !2, line: 3, type: !5, scopeLine: 3, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!17 = !DILocation(line: 3, column: 3, 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 = !DILocation(line: 0, scope: !18) -!21 = 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) -!22 = !DILocation(line: 2, column: 3, scope: !21) -!23 = !DILocation(line: 10, column: 3, scope: !21) -!24 = !DILocation(line: 13, column: 10, scope: !21) -!25 = !DILocation(line: 13, column: 9, scope: !21) -!26 = !DILocation(line: 14, column: 11, scope: !21) -!27 = !DILocation(line: 15, column: 11, scope: !21) -!28 = !DILocation(line: 16, column: 1, scope: !21) +!3 = distinct !DISubprogram(name: "$fundef_17", linkageName: "$fundef_17", scope: !2, file: !2, line: 11, type: !4, scopeLine: 11, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!4 = !DISubroutineType(types: !5) +!5 = !{!6} +!6 = !DIBasicType(tag: DW_TAG_unspecified_type, name: "void") +!7 = !{} +!8 = !DILocation(line: 11, column: 6, scope: !3) +!9 = !DILocation(line: 11, column: 5, scope: !3) +!10 = distinct !DISubprogram(name: "$fundef_15", linkageName: "$fundef_15", scope: !2, file: !2, line: 6, type: !4, scopeLine: 6, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!11 = !DILocalVariable(name: "b", scope: !10, file: !2, line: 5, type: !12) +!12 = !DIBasicType(name: "Int64", size: 8) +!13 = !DILocation(line: 5, column: 8, scope: !10) +!14 = !DILocalVariable(name: "$retval_16", scope: !10, file: !2, line: 6, type: !15) +!15 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "Pair (Int32) (Int64)", baseType: !16, size: 8, align: 8, dwarfAddressSpace: 0) +!16 = !DIBasicType(name: "Pair (Int32) (Int64)", size: 8) +!17 = !DILocation(line: 6, column: 5, scope: !10) +!18 = distinct !DISubprogram(name: "$fundef_13", linkageName: "$fundef_13", scope: !2, file: !2, line: 5, type: !4, scopeLine: 5, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!19 = !DILocalVariable(name: "a", scope: !18, file: !2, line: 4, type: !20) +!20 = !DIBasicType(name: "Int32", size: 4) +!21 = !DILocation(line: 4, column: 8, scope: !18) +!22 = !DILocation(line: 6, column: 5, scope: !18) +!23 = distinct !DISubprogram(name: "$fundef_11", linkageName: "$fundef_11", scope: !2, file: !2, line: 5, type: !4, scopeLine: 5, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!24 = !DILocation(line: 5, column: 3, scope: !23) +!25 = distinct !DISubprogram(name: "$fundef_9", linkageName: "$fundef_9", scope: !2, file: !2, line: 3, type: !4, scopeLine: 3, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!26 = !DILocation(line: 3, column: 3, scope: !25) +!27 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !28, file: !28, type: !4, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!28 = !DIFile(filename: ".", directory: ".") +!29 = !DILocation(line: 0, scope: !27) +!30 = distinct !DISubprogram(name: "_scilla_expr_fun", linkageName: "_scilla_expr_fun", scope: !2, file: !2, line: 2, type: !4, scopeLine: 2, spFlags: DISPFlagDefinition, unit: !1, retainedNodes: !7) +!31 = !DILocalVariable(name: "$expr_8", scope: !30, file: !2, line: 2, type: !15) +!32 = !DILocation(line: 2, column: 3, scope: !30) +!33 = !DILocation(line: 10, column: 3, scope: !30) +!34 = !DILocation(line: 13, column: 10, scope: !30) +!35 = !DILocation(line: 13, column: 9, scope: !30) +!36 = !DILocalVariable(name: "one", scope: !30, file: !2, line: 14, type: !20) +!37 = !DILocation(line: 14, column: 5, scope: !30) +!38 = !DILocation(line: 14, column: 11, scope: !30) +!39 = !DILocalVariable(name: "two", scope: !30, file: !2, line: 15, type: !12) +!40 = !DILocation(line: 15, column: 5, scope: !30) +!41 = !DILocation(line: 15, column: 11, scope: !30) +!42 = !DILocation(line: 16, column: 1, scope: !30) +!43 = !DILocalVariable(name: "$f_7", scope: !30, file: !2, line: 16, type: !15) diff --git a/testsuite/expr/tname_clash.ll b/testsuite/expr/tname_clash.ll index 339c1b9f..c2e79a2e 100644 --- a/testsuite/expr/tname_clash.ll +++ b/testsuite/expr/tname_clash.ll @@ -17,7 +17,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-pc-linux-gnu" +target triple = "x86_64-unknown-linux-gnu" %"$TyDescrTy_PrimTyp_19" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/testsuite/expr/typ-inst.dbg.ll b/testsuite/expr/typ-inst.dbg.ll index d2b4acbb..ef07ac0c 100644 --- a/testsuite/expr/typ-inst.dbg.ll +++ b/testsuite/expr/typ-inst.dbg.ll @@ -10,14 +10,14 @@ ; 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-pc-linux-gnu" +target triple = "x86_64-unknown-linux-gnu" %"$TyDescrTy_PrimTyp_12" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } %Int32 = type { i32 } -%"$ParamDescr_155" = type { %ParamDescrString, %_TyDescrTy_Typ* } +%"$ParamDescr_156" = type { %ParamDescrString, %_TyDescrTy_Typ* } %ParamDescrString = type { i8*, i32 } -%"$TransDescr_156" = type { %ParamDescrString, i32, %"$ParamDescr_155"* } +%"$TransDescr_157" = type { %ParamDescrString, i32, %"$ParamDescr_156"* } %"$$fundef_10_env_49" = type {} %Uint32 = type { i32 } %"$$fundef_8_env_50" = type {} @@ -62,14 +62,18 @@ target triple = "x86_64-pc-linux-gnu" @"$_gas_charge_accPairUtils_4" = global %Int32 zeroinitializer @_tydescr_table = constant [15 x %_TyDescrTy_Typ*] [%_TyDescrTy_Typ* @"$TyDescr_Event_36", %_TyDescrTy_Typ* @"$TyDescr_Int64_18", %_TyDescrTy_Typ* @"$TyDescr_Uint256_28", %_TyDescrTy_Typ* @"$TyDescr_Uint32_16", %_TyDescrTy_Typ* @"$TyDescr_Uint64_20", %_TyDescrTy_Typ* @"$TyDescr_Bnum_32", %_TyDescrTy_Typ* @"$TyDescr_Uint128_24", %_TyDescrTy_Typ* @"$TyDescr_Exception_38", %_TyDescrTy_Typ* @"$TyDescr_String_30", %_TyDescrTy_Typ* @"$TyDescr_Int256_26", %_TyDescrTy_Typ* @"$TyDescr_Int128_22", %_TyDescrTy_Typ* @"$TyDescr_Bystr_42", %_TyDescrTy_Typ* @"$TyDescr_ReplicateContr_40", %_TyDescrTy_Typ* @"$TyDescr_Message_34", %_TyDescrTy_Typ* @"$TyDescr_Int32_14"] @_tydescr_table_length = constant i32 15 -@_contract_parameters = constant [0 x %"$ParamDescr_155"] zeroinitializer +@_contract_parameters = constant [0 x %"$ParamDescr_156"] zeroinitializer @_contract_parameters_length = constant i32 0 -@_transition_parameters = constant [0 x %"$TransDescr_156"] zeroinitializer +@_transition_parameters = constant [0 x %"$TransDescr_157"] zeroinitializer @_transition_parameters_length = constant i32 0 -define internal %Uint32 @"$fundef_10"(%"$$fundef_10_env_49"* %0, %Uint32 %1) !dbg !4 { +define internal %Uint32 @"$fundef_10"(%"$$fundef_10_env_49"* %0, %Uint32 %1) !dbg !3 { entry: + %"$a_66" = alloca %Uint32, align 8 + store %Uint32 %1, %Uint32* %"$a_66", align 4 + call void @llvm.dbg.declare(metadata %Uint32* %"$a_66", metadata !8, metadata !DIExpression()), !dbg !10 %"$retval_11" = alloca %Uint32, align 8 + call void @llvm.dbg.declare(metadata %Uint32* %"$retval_11", metadata !11, metadata !DIExpression()), !dbg !12 %"$gasrem_60" = load i64, i64* @_gasrem, align 8 %"$gascmp_61" = icmp ugt i64 1, %"$gasrem_60" br i1 %"$gascmp_61", label %"$out_of_gas_62", label %"$have_gas_63" @@ -81,12 +85,12 @@ entry: "$have_gas_63": ; preds = %"$out_of_gas_62", %entry %"$consume_64" = sub i64 %"$gasrem_60", 1 store i64 %"$consume_64", i64* @_gasrem, align 8 - store %Uint32 %1, %Uint32* %"$retval_11", align 4, !dbg !8 + store %Uint32 %1, %Uint32* %"$retval_11", align 4, !dbg !12 %"$$retval_11_65" = load %Uint32, %Uint32* %"$retval_11", align 4 ret %Uint32 %"$$retval_11_65" } -define internal { %Uint32 (i8*, %Uint32)*, i8* } @"$fundef_8"(%"$$fundef_8_env_50"* %0) !dbg !9 { +define internal { %Uint32 (i8*, %Uint32)*, i8* } @"$fundef_8"(%"$$fundef_8_env_50"* %0) !dbg !13 { entry: %"$retval_9" = alloca { %Uint32 (i8*, %Uint32)*, i8* }, align 8 %"$gasrem_51" = load i64, i64* @_gasrem, align 8 @@ -100,201 +104,207 @@ entry: "$have_gas_54": ; preds = %"$out_of_gas_53", %entry %"$consume_55" = sub i64 %"$gasrem_51", 1 store i64 %"$consume_55", i64* @_gasrem, align 8 - store { %Uint32 (i8*, %Uint32)*, i8* } { %Uint32 (i8*, %Uint32)* bitcast (%Uint32 (%"$$fundef_10_env_49"*, %Uint32)* @"$fundef_10" to %Uint32 (i8*, %Uint32)*), i8* null }, { %Uint32 (i8*, %Uint32)*, i8* }* %"$retval_9", align 8, !dbg !10 + store { %Uint32 (i8*, %Uint32)*, i8* } { %Uint32 (i8*, %Uint32)* bitcast (%Uint32 (%"$$fundef_10_env_49"*, %Uint32)* @"$fundef_10" to %Uint32 (i8*, %Uint32)*), i8* null }, { %Uint32 (i8*, %Uint32)*, i8* }* %"$retval_9", align 8, !dbg !14 %"$$retval_9_59" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %"$retval_9", align 8 ret { %Uint32 (i8*, %Uint32)*, i8* } %"$$retval_9_59" } declare void @_out_of_gas() -define void @_init_libs() !dbg !11 { +; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn +declare void @llvm.dbg.declare(metadata, metadata, metadata) #0 + +define void @_init_libs() !dbg !15 { entry: - %"$gasrem_66" = load i64, i64* @_gasrem, align 8 - %"$gascmp_67" = icmp ugt i64 5, %"$gasrem_66" - br i1 %"$gascmp_67", label %"$out_of_gas_68", label %"$have_gas_69" + %"$gasrem_67" = load i64, i64* @_gasrem, align 8 + %"$gascmp_68" = icmp ugt i64 5, %"$gasrem_67" + br i1 %"$gascmp_68", label %"$out_of_gas_69", label %"$have_gas_70" -"$out_of_gas_68": ; preds = %entry +"$out_of_gas_69": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_69" + br label %"$have_gas_70" -"$have_gas_69": ; preds = %"$out_of_gas_68", %entry - %"$consume_70" = sub i64 %"$gasrem_66", 5 - store i64 %"$consume_70", i64* @_gasrem, align 8 - store %Int32 { i32 5 }, %Int32* @"$_gas_charge_accrec_lib_5", align 4, !dbg !13 - %"$gasrem_71" = load i64, i64* @_gasrem, align 8 - %"$gascmp_72" = icmp ugt i64 8, %"$gasrem_71" - br i1 %"$gascmp_72", label %"$out_of_gas_73", label %"$have_gas_74" +"$have_gas_70": ; preds = %"$out_of_gas_69", %entry + %"$consume_71" = sub i64 %"$gasrem_67", 5 + store i64 %"$consume_71", i64* @_gasrem, align 8 + store %Int32 { i32 5 }, %Int32* @"$_gas_charge_accrec_lib_5", align 4, !dbg !17 + %"$gasrem_72" = load i64, i64* @_gasrem, align 8 + %"$gascmp_73" = icmp ugt i64 8, %"$gasrem_72" + br i1 %"$gascmp_73", label %"$out_of_gas_74", label %"$have_gas_75" -"$out_of_gas_73": ; preds = %"$have_gas_69" +"$out_of_gas_74": ; preds = %"$have_gas_70" call void @_out_of_gas() - br label %"$have_gas_74" + br label %"$have_gas_75" -"$have_gas_74": ; preds = %"$out_of_gas_73", %"$have_gas_69" - %"$consume_75" = sub i64 %"$gasrem_71", 8 - store i64 %"$consume_75", i64* @_gasrem, align 8 - store %Int32 { i32 8 }, %Int32* @"$_gas_charge_accBoolUtils_0", align 4, !dbg !13 - %"$gasrem_76" = load i64, i64* @_gasrem, align 8 - %"$gascmp_77" = icmp ugt i64 196, %"$gasrem_76" - br i1 %"$gascmp_77", label %"$out_of_gas_78", label %"$have_gas_79" +"$have_gas_75": ; preds = %"$out_of_gas_74", %"$have_gas_70" + %"$consume_76" = sub i64 %"$gasrem_72", 8 + store i64 %"$consume_76", i64* @_gasrem, align 8 + store %Int32 { i32 8 }, %Int32* @"$_gas_charge_accBoolUtils_0", align 4, !dbg !17 + %"$gasrem_77" = load i64, i64* @_gasrem, align 8 + %"$gascmp_78" = icmp ugt i64 196, %"$gasrem_77" + br i1 %"$gascmp_78", label %"$out_of_gas_79", label %"$have_gas_80" -"$out_of_gas_78": ; preds = %"$have_gas_74" +"$out_of_gas_79": ; preds = %"$have_gas_75" call void @_out_of_gas() - br label %"$have_gas_79" + br label %"$have_gas_80" -"$have_gas_79": ; preds = %"$out_of_gas_78", %"$have_gas_74" - %"$consume_80" = sub i64 %"$gasrem_76", 196 - store i64 %"$consume_80", i64* @_gasrem, align 8 - store %Int32 { i32 196 }, %Int32* @"$_gas_charge_accIntUtils_1", align 4, !dbg !13 - %"$gasrem_81" = load i64, i64* @_gasrem, align 8 - %"$gascmp_82" = icmp ugt i64 20, %"$gasrem_81" - br i1 %"$gascmp_82", label %"$out_of_gas_83", label %"$have_gas_84" +"$have_gas_80": ; preds = %"$out_of_gas_79", %"$have_gas_75" + %"$consume_81" = sub i64 %"$gasrem_77", 196 + store i64 %"$consume_81", i64* @_gasrem, align 8 + store %Int32 { i32 196 }, %Int32* @"$_gas_charge_accIntUtils_1", align 4, !dbg !17 + %"$gasrem_82" = load i64, i64* @_gasrem, align 8 + %"$gascmp_83" = icmp ugt i64 20, %"$gasrem_82" + br i1 %"$gascmp_83", label %"$out_of_gas_84", label %"$have_gas_85" -"$out_of_gas_83": ; preds = %"$have_gas_79" +"$out_of_gas_84": ; preds = %"$have_gas_80" call void @_out_of_gas() - br label %"$have_gas_84" + br label %"$have_gas_85" -"$have_gas_84": ; preds = %"$out_of_gas_83", %"$have_gas_79" - %"$consume_85" = sub i64 %"$gasrem_81", 20 - store i64 %"$consume_85", i64* @_gasrem, align 8 - store %Int32 { i32 20 }, %Int32* @"$_gas_charge_accListUtils_2", align 4, !dbg !13 - %"$gasrem_86" = load i64, i64* @_gasrem, align 8 - %"$gascmp_87" = icmp ugt i64 12, %"$gasrem_86" - br i1 %"$gascmp_87", label %"$out_of_gas_88", label %"$have_gas_89" +"$have_gas_85": ; preds = %"$out_of_gas_84", %"$have_gas_80" + %"$consume_86" = sub i64 %"$gasrem_82", 20 + store i64 %"$consume_86", i64* @_gasrem, align 8 + store %Int32 { i32 20 }, %Int32* @"$_gas_charge_accListUtils_2", align 4, !dbg !17 + %"$gasrem_87" = load i64, i64* @_gasrem, align 8 + %"$gascmp_88" = icmp ugt i64 12, %"$gasrem_87" + br i1 %"$gascmp_88", label %"$out_of_gas_89", label %"$have_gas_90" -"$out_of_gas_88": ; preds = %"$have_gas_84" +"$out_of_gas_89": ; preds = %"$have_gas_85" call void @_out_of_gas() - br label %"$have_gas_89" + br label %"$have_gas_90" -"$have_gas_89": ; preds = %"$out_of_gas_88", %"$have_gas_84" - %"$consume_90" = sub i64 %"$gasrem_86", 12 - store i64 %"$consume_90", i64* @_gasrem, align 8 - store %Int32 { i32 12 }, %Int32* @"$_gas_charge_accNatUtils_3", align 4, !dbg !13 - %"$gasrem_91" = load i64, i64* @_gasrem, align 8 - %"$gascmp_92" = icmp ugt i64 2, %"$gasrem_91" - br i1 %"$gascmp_92", label %"$out_of_gas_93", label %"$have_gas_94" +"$have_gas_90": ; preds = %"$out_of_gas_89", %"$have_gas_85" + %"$consume_91" = sub i64 %"$gasrem_87", 12 + store i64 %"$consume_91", i64* @_gasrem, align 8 + store %Int32 { i32 12 }, %Int32* @"$_gas_charge_accNatUtils_3", align 4, !dbg !17 + %"$gasrem_92" = load i64, i64* @_gasrem, align 8 + %"$gascmp_93" = icmp ugt i64 2, %"$gasrem_92" + br i1 %"$gascmp_93", label %"$out_of_gas_94", label %"$have_gas_95" -"$out_of_gas_93": ; preds = %"$have_gas_89" +"$out_of_gas_94": ; preds = %"$have_gas_90" call void @_out_of_gas() - br label %"$have_gas_94" + br label %"$have_gas_95" -"$have_gas_94": ; preds = %"$out_of_gas_93", %"$have_gas_89" - %"$consume_95" = sub i64 %"$gasrem_91", 2 - store i64 %"$consume_95", i64* @_gasrem, align 8 - store %Int32 { i32 2 }, %Int32* @"$_gas_charge_accPairUtils_4", align 4, !dbg !13 +"$have_gas_95": ; preds = %"$out_of_gas_94", %"$have_gas_90" + %"$consume_96" = sub i64 %"$gasrem_92", 2 + store i64 %"$consume_96", i64* @_gasrem, align 8 + store %Int32 { i32 2 }, %Int32* @"$_gas_charge_accPairUtils_4", align 4, !dbg !17 ret void } -define internal %Uint32 @_scilla_expr_fun(i8* %0) !dbg !14 { +define internal %Uint32 @_scilla_expr_fun(i8* %0) !dbg !18 { entry: %"$expr_7" = alloca %Uint32, align 8 - %"$gasrem_96" = load i64, i64* @_gasrem, align 8 - %"$gascmp_97" = icmp ugt i64 1, %"$gasrem_96" - br i1 %"$gascmp_97", label %"$out_of_gas_98", label %"$have_gas_99" + call void @llvm.dbg.declare(metadata %Uint32* %"$expr_7", metadata !19, metadata !DIExpression()), !dbg !20 + %"$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_98": ; preds = %entry +"$out_of_gas_99": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_99" + br label %"$have_gas_100" -"$have_gas_99": ; preds = %"$out_of_gas_98", %entry - %"$consume_100" = sub i64 %"$gasrem_96", 1 - store i64 %"$consume_100", i64* @_gasrem, align 8 +"$have_gas_100": ; preds = %"$out_of_gas_99", %entry + %"$consume_101" = sub i64 %"$gasrem_97", 1 + store i64 %"$consume_101", i64* @_gasrem, align 8 %tf = alloca { i8*, i8* }*, align 8 - %"$gasrem_101" = load i64, i64* @_gasrem, align 8 - %"$gascmp_102" = icmp ugt i64 1, %"$gasrem_101" - br i1 %"$gascmp_102", label %"$out_of_gas_103", label %"$have_gas_104" + %"$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_103": ; preds = %"$have_gas_99" +"$out_of_gas_104": ; preds = %"$have_gas_100" call void @_out_of_gas() - br label %"$have_gas_104" - -"$have_gas_104": ; preds = %"$out_of_gas_103", %"$have_gas_99" - %"$consume_105" = sub i64 %"$gasrem_101", 1 - store i64 %"$consume_105", i64* @_gasrem, align 8 - %"$dyndisp_table_109_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$dyndisp_table_109_salloc_salloc" = call i8* @_salloc(i8* %"$dyndisp_table_109_salloc_load", i64 16) - %"$dyndisp_table_109_salloc" = bitcast i8* %"$dyndisp_table_109_salloc_salloc" to [1 x { i8*, i8* }]* - %"$dyndisp_table_109" = bitcast [1 x { i8*, i8* }]* %"$dyndisp_table_109_salloc" to { i8*, i8* }* - %"$dyndisp_gep_110" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_109", i32 0 - %"$dyndisp_pcast_111" = bitcast { i8*, i8* }* %"$dyndisp_gep_110" to { { %Uint32 (i8*, %Uint32)*, i8* } (i8*)*, i8* }* - store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*)*, i8* } { { %Uint32 (i8*, %Uint32)*, i8* } (i8*)* bitcast ({ %Uint32 (i8*, %Uint32)*, i8* } (%"$$fundef_8_env_50"*)* @"$fundef_8" to { %Uint32 (i8*, %Uint32)*, i8* } (i8*)*), i8* null }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*)*, i8* }* %"$dyndisp_pcast_111", align 8 - store { i8*, i8* }* %"$dyndisp_table_109", { i8*, i8* }** %tf, align 8, !dbg !15 - %"$gasrem_112" = load i64, i64* @_gasrem, align 8 - %"$gascmp_113" = icmp ugt i64 1, %"$gasrem_112" - br i1 %"$gascmp_113", label %"$out_of_gas_114", label %"$have_gas_115" - -"$out_of_gas_114": ; preds = %"$have_gas_104" + 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 + %"$dyndisp_table_110_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$dyndisp_table_110_salloc_salloc" = call i8* @_salloc(i8* %"$dyndisp_table_110_salloc_load", i64 16) + %"$dyndisp_table_110_salloc" = bitcast i8* %"$dyndisp_table_110_salloc_salloc" to [1 x { i8*, i8* }]* + %"$dyndisp_table_110" = bitcast [1 x { i8*, i8* }]* %"$dyndisp_table_110_salloc" to { i8*, i8* }* + %"$dyndisp_gep_111" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_110", i32 0 + %"$dyndisp_pcast_112" = bitcast { i8*, i8* }* %"$dyndisp_gep_111" to { { %Uint32 (i8*, %Uint32)*, i8* } (i8*)*, i8* }* + store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*)*, i8* } { { %Uint32 (i8*, %Uint32)*, i8* } (i8*)* bitcast ({ %Uint32 (i8*, %Uint32)*, i8* } (%"$$fundef_8_env_50"*)* @"$fundef_8" to { %Uint32 (i8*, %Uint32)*, i8* } (i8*)*), i8* null }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*)*, i8* }* %"$dyndisp_pcast_112", align 8 + store { i8*, i8* }* %"$dyndisp_table_110", { i8*, i8* }** %tf, align 8, !dbg !20 + %"$gasrem_113" = load i64, i64* @_gasrem, align 8 + %"$gascmp_114" = icmp ugt i64 1, %"$gasrem_113" + br i1 %"$gascmp_114", label %"$out_of_gas_115", label %"$have_gas_116" + +"$out_of_gas_115": ; preds = %"$have_gas_105" call void @_out_of_gas() - br label %"$have_gas_115" + br label %"$have_gas_116" -"$have_gas_115": ; preds = %"$out_of_gas_114", %"$have_gas_104" - %"$consume_116" = sub i64 %"$gasrem_112", 1 - store i64 %"$consume_116", i64* @_gasrem, align 8 +"$have_gas_116": ; preds = %"$out_of_gas_115", %"$have_gas_105" + %"$consume_117" = sub i64 %"$gasrem_113", 1 + store i64 %"$consume_117", i64* @_gasrem, align 8 %t = alloca { %Uint32 (i8*, %Uint32)*, i8* }, 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" + %"$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_119": ; preds = %"$have_gas_115" +"$out_of_gas_120": ; preds = %"$have_gas_116" call void @_out_of_gas() - br label %"$have_gas_120" - -"$have_gas_120": ; preds = %"$out_of_gas_119", %"$have_gas_115" - %"$consume_121" = sub i64 %"$gasrem_117", 1 - store i64 %"$consume_121", i64* @_gasrem, align 8 - %"$tf_122" = load { i8*, i8* }*, { i8*, i8* }** %tf, align 8 - %"$tf_123" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$tf_122", i32 0 - %"$tf_124" = bitcast { i8*, i8* }* %"$tf_123" to { { %Uint32 (i8*, %Uint32)*, i8* } (i8*)*, i8* }* - %"$tf_125" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*)*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*)*, i8* }* %"$tf_124", align 8 - %"$tf_fptr_126" = extractvalue { { %Uint32 (i8*, %Uint32)*, i8* } (i8*)*, i8* } %"$tf_125", 0 - %"$tf_envptr_127" = extractvalue { { %Uint32 (i8*, %Uint32)*, i8* } (i8*)*, i8* } %"$tf_125", 1 - %"$tf_call_128" = call { %Uint32 (i8*, %Uint32)*, i8* } %"$tf_fptr_126"(i8* %"$tf_envptr_127"), !dbg !16 - store { %Uint32 (i8*, %Uint32)*, i8* } %"$tf_call_128", { %Uint32 (i8*, %Uint32)*, i8* }* %t, align 8, !dbg !17 - %"$gasrem_129" = load i64, i64* @_gasrem, align 8 - %"$gascmp_130" = icmp ugt i64 1, %"$gasrem_129" - br i1 %"$gascmp_130", label %"$out_of_gas_131", label %"$have_gas_132" - -"$out_of_gas_131": ; preds = %"$have_gas_120" + br label %"$have_gas_121" + +"$have_gas_121": ; preds = %"$out_of_gas_120", %"$have_gas_116" + %"$consume_122" = sub i64 %"$gasrem_118", 1 + store i64 %"$consume_122", i64* @_gasrem, align 8 + %"$tf_123" = load { i8*, i8* }*, { i8*, i8* }** %tf, align 8 + %"$tf_124" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$tf_123", i32 0 + %"$tf_125" = bitcast { i8*, i8* }* %"$tf_124" to { { %Uint32 (i8*, %Uint32)*, i8* } (i8*)*, i8* }* + %"$tf_126" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*)*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*)*, i8* }* %"$tf_125", align 8 + %"$tf_fptr_127" = extractvalue { { %Uint32 (i8*, %Uint32)*, i8* } (i8*)*, i8* } %"$tf_126", 0 + %"$tf_envptr_128" = extractvalue { { %Uint32 (i8*, %Uint32)*, i8* } (i8*)*, i8* } %"$tf_126", 1 + %"$tf_call_129" = call { %Uint32 (i8*, %Uint32)*, i8* } %"$tf_fptr_127"(i8* %"$tf_envptr_128"), !dbg !21 + store { %Uint32 (i8*, %Uint32)*, i8* } %"$tf_call_129", { %Uint32 (i8*, %Uint32)*, i8* }* %t, align 8, !dbg !22 + %"$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_121" call void @_out_of_gas() - br label %"$have_gas_132" + br label %"$have_gas_133" -"$have_gas_132": ; preds = %"$out_of_gas_131", %"$have_gas_120" - %"$consume_133" = sub i64 %"$gasrem_129", 1 - store i64 %"$consume_133", i64* @_gasrem, align 8 +"$have_gas_133": ; preds = %"$out_of_gas_132", %"$have_gas_121" + %"$consume_134" = sub i64 %"$gasrem_130", 1 + store i64 %"$consume_134", i64* @_gasrem, align 8 %one = alloca %Uint32, align 8 - %"$gasrem_134" = load i64, i64* @_gasrem, align 8 - %"$gascmp_135" = icmp ugt i64 1, %"$gasrem_134" - br i1 %"$gascmp_135", label %"$out_of_gas_136", label %"$have_gas_137" + call void @llvm.dbg.declare(metadata %Uint32* %one, metadata !23, metadata !DIExpression()), !dbg !24 + %"$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_136": ; preds = %"$have_gas_132" +"$out_of_gas_137": ; preds = %"$have_gas_133" call void @_out_of_gas() - br label %"$have_gas_137" + br label %"$have_gas_138" -"$have_gas_137": ; preds = %"$out_of_gas_136", %"$have_gas_132" - %"$consume_138" = sub i64 %"$gasrem_134", 1 - store i64 %"$consume_138", i64* @_gasrem, align 8 - store %Uint32 { i32 1 }, %Uint32* %one, align 4, !dbg !18 - %"$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" +"$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 %Uint32 { i32 1 }, %Uint32* %one, align 4, !dbg !25 + %"$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_141": ; preds = %"$have_gas_137" +"$out_of_gas_142": ; preds = %"$have_gas_138" call void @_out_of_gas() - br label %"$have_gas_142" + br label %"$have_gas_143" -"$have_gas_142": ; preds = %"$out_of_gas_141", %"$have_gas_137" - %"$consume_143" = sub i64 %"$gasrem_139", 1 - store i64 %"$consume_143", i64* @_gasrem, align 8 +"$have_gas_143": ; preds = %"$out_of_gas_142", %"$have_gas_138" + %"$consume_144" = sub i64 %"$gasrem_140", 1 + store i64 %"$consume_144", i64* @_gasrem, align 8 %"$t_6" = alloca %Uint32, align 8 - %"$t_144" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %t, align 8 - %"$t_fptr_145" = extractvalue { %Uint32 (i8*, %Uint32)*, i8* } %"$t_144", 0 - %"$t_envptr_146" = extractvalue { %Uint32 (i8*, %Uint32)*, i8* } %"$t_144", 1 - %"$one_147" = load %Uint32, %Uint32* %one, align 4 - %"$t_call_148" = call %Uint32 %"$t_fptr_145"(i8* %"$t_envptr_146", %Uint32 %"$one_147"), !dbg !19 - store %Uint32 %"$t_call_148", %Uint32* %"$t_6", align 4, !dbg !19 - %"$$t_6_149" = load %Uint32, %Uint32* %"$t_6", align 4 - store %Uint32 %"$$t_6_149", %Uint32* %"$expr_7", align 4, !dbg !19 - %"$$expr_7_150" = load %Uint32, %Uint32* %"$expr_7", align 4 - ret %Uint32 %"$$expr_7_150" + call void @llvm.dbg.declare(metadata %Uint32* %"$t_6", metadata !26, metadata !DIExpression()), !dbg !27 + %"$t_145" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %t, align 8 + %"$t_fptr_146" = extractvalue { %Uint32 (i8*, %Uint32)*, i8* } %"$t_145", 0 + %"$t_envptr_147" = extractvalue { %Uint32 (i8*, %Uint32)*, i8* } %"$t_145", 1 + %"$one_148" = load %Uint32, %Uint32* %one, align 4 + %"$t_call_149" = call %Uint32 %"$t_fptr_146"(i8* %"$t_envptr_147", %Uint32 %"$one_148"), !dbg !27 + store %Uint32 %"$t_call_149", %Uint32* %"$t_6", align 4, !dbg !27 + %"$$t_6_150" = load %Uint32, %Uint32* %"$t_6", align 4 + store %Uint32 %"$$t_6_150", %Uint32* %"$expr_7", align 4, !dbg !27 + %"$$expr_7_151" = load %Uint32, %Uint32* %"$expr_7", align 4 + ret %Uint32 %"$$expr_7_151" } declare i8* @_salloc(i8*, i64) @@ -303,35 +313,45 @@ declare void @_print_scilla_val(i8*, %_TyDescrTy_Typ*, i8*) define void @scilla_main() { entry: - %"$exprval_151" = call %Uint32 @_scilla_expr_fun(i8* null) - %"$pval_152" = alloca %Uint32, align 8 - %"$memvoidcast_153" = bitcast %Uint32* %"$pval_152" to i8* - store %Uint32 %"$exprval_151", %Uint32* %"$pval_152", align 4 - %"$execptr_load_154" = load i8*, i8** @_execptr, align 8 - call void @_print_scilla_val(i8* %"$execptr_load_154", %_TyDescrTy_Typ* @"$TyDescr_Uint32_16", i8* %"$memvoidcast_153") + %"$exprval_152" = call %Uint32 @_scilla_expr_fun(i8* null) + %"$pval_153" = alloca %Uint32, align 8 + %"$memvoidcast_154" = bitcast %Uint32* %"$pval_153" to i8* + store %Uint32 %"$exprval_152", %Uint32* %"$pval_153", align 4 + %"$execptr_load_155" = load i8*, i8** @_execptr, align 8 + call void @_print_scilla_val(i8* %"$execptr_load_155", %_TyDescrTy_Typ* @"$TyDescr_Uint32_16", i8* %"$memvoidcast_154") ret void } +attributes #0 = { nocallback nofree nosync nounwind readnone speculatable willreturn } + !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) +!1 = distinct !DICompileUnit(language: DW_LANG_C89, file: !2, producer: "Scilla Compiler", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false) !2 = !DIFile(filename: "typ-inst.scilexp", directory: "codegen/expr") -!3 = !{} -!4 = distinct !DISubprogram(name: "$fundef_10", linkageName: "$fundef_10", scope: !2, file: !2, line: 4, type: !5, scopeLine: 4, 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: 4, column: 5, scope: !4) -!9 = distinct !DISubprogram(name: "$fundef_8", linkageName: "$fundef_8", scope: !2, file: !2, line: 4, type: !5, scopeLine: 4, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!10 = !DILocation(line: 4, 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: 0, scope: !11) -!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: 2, column: 3, scope: !14) -!16 = !DILocation(line: 7, column: 10, scope: !14) -!17 = !DILocation(line: 7, column: 9, scope: !14) -!18 = !DILocation(line: 8, column: 11, scope: !14) -!19 = !DILocation(line: 9, column: 1, scope: !14) +!3 = distinct !DISubprogram(name: "$fundef_10", linkageName: "$fundef_10", scope: !2, file: !2, line: 4, type: !4, scopeLine: 4, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!4 = !DISubroutineType(types: !5) +!5 = !{!6} +!6 = !DIBasicType(tag: DW_TAG_unspecified_type, name: "void") +!7 = !{} +!8 = !DILocalVariable(name: "a", scope: !3, file: !2, line: 3, type: !9) +!9 = !DIBasicType(name: "Uint32", size: 4) +!10 = !DILocation(line: 3, column: 8, scope: !3) +!11 = !DILocalVariable(name: "$retval_11", scope: !3, file: !2, line: 4, type: !9) +!12 = !DILocation(line: 4, column: 5, scope: !3) +!13 = distinct !DISubprogram(name: "$fundef_8", linkageName: "$fundef_8", scope: !2, file: !2, line: 4, type: !4, scopeLine: 4, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!14 = !DILocation(line: 4, column: 5, scope: !13) +!15 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !16, file: !16, type: !4, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!16 = !DIFile(filename: ".", directory: ".") +!17 = !DILocation(line: 0, scope: !15) +!18 = distinct !DISubprogram(name: "_scilla_expr_fun", linkageName: "_scilla_expr_fun", scope: !2, file: !2, line: 2, type: !4, scopeLine: 2, spFlags: DISPFlagDefinition, unit: !1, retainedNodes: !7) +!19 = !DILocalVariable(name: "$expr_7", scope: !18, file: !2, line: 2, type: !9) +!20 = !DILocation(line: 2, column: 3, scope: !18) +!21 = !DILocation(line: 7, column: 10, scope: !18) +!22 = !DILocation(line: 7, column: 9, scope: !18) +!23 = !DILocalVariable(name: "one", scope: !18, file: !2, line: 8, type: !9) +!24 = !DILocation(line: 8, column: 5, scope: !18) +!25 = !DILocation(line: 8, column: 11, scope: !18) +!26 = !DILocalVariable(name: "$t_6", scope: !18, file: !2, line: 9, type: !9) +!27 = !DILocation(line: 9, column: 1, scope: !18) diff --git a/testsuite/expr/typ-inst.ll b/testsuite/expr/typ-inst.ll index f052f7de..63c452fd 100644 --- a/testsuite/expr/typ-inst.ll +++ b/testsuite/expr/typ-inst.ll @@ -10,7 +10,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-pc-linux-gnu" +target triple = "x86_64-unknown-linux-gnu" %"$TyDescrTy_PrimTyp_12" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/testsuite/expr/typ1-inst.dbg.ll b/testsuite/expr/typ1-inst.dbg.ll index 230849ce..27c4b686 100644 --- a/testsuite/expr/typ1-inst.dbg.ll +++ b/testsuite/expr/typ1-inst.dbg.ll @@ -13,14 +13,14 @@ ; 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-pc-linux-gnu" +target triple = "x86_64-unknown-linux-gnu" %"$TyDescrTy_PrimTyp_17" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } %Int32 = type { i32 } -%"$ParamDescr_204" = type { %ParamDescrString, %_TyDescrTy_Typ* } +%"$ParamDescr_206" = type { %ParamDescrString, %_TyDescrTy_Typ* } %ParamDescrString = type { i8*, i32 } -%"$TransDescr_205" = type { %ParamDescrString, i32, %"$ParamDescr_204"* } +%"$TransDescr_207" = type { %ParamDescrString, i32, %"$ParamDescr_206"* } %"$$fundef_15_env_54" = type {} %"$$fundef_13_env_55" = type {} %Uint32 = type { i32 } @@ -67,32 +67,39 @@ target triple = "x86_64-pc-linux-gnu" @"$_gas_charge_accPairUtils_4" = global %Int32 zeroinitializer @_tydescr_table = constant [15 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_47", %_TyDescrTy_Typ* @"$TyDescr_ReplicateContr_45", %_TyDescrTy_Typ* @"$TyDescr_Message_39", %_TyDescrTy_Typ* @"$TyDescr_Int32_19"] @_tydescr_table_length = constant i32 15 -@_contract_parameters = constant [0 x %"$ParamDescr_204"] zeroinitializer +@_contract_parameters = constant [0 x %"$ParamDescr_206"] zeroinitializer @_contract_parameters_length = constant i32 0 -@_transition_parameters = constant [0 x %"$TransDescr_205"] zeroinitializer +@_transition_parameters = constant [0 x %"$TransDescr_207"] zeroinitializer @_transition_parameters_length = constant i32 0 -define internal %Int32 @"$fundef_15"(%"$$fundef_15_env_54"* %0, %Int32 %1) !dbg !4 { +define internal %Int32 @"$fundef_15"(%"$$fundef_15_env_54"* %0, %Int32 %1) !dbg !3 { entry: + %"$b_95" = alloca %Int32, align 8 + store %Int32 %1, %Int32* %"$b_95", align 4 + call void @llvm.dbg.declare(metadata %Int32* %"$b_95", metadata !8, metadata !DIExpression()), !dbg !10 %"$retval_16" = alloca %Int32, align 8 - %"$gasrem_88" = load i64, i64* @_gasrem, align 8 - %"$gascmp_89" = icmp ugt i64 1, %"$gasrem_88" - br i1 %"$gascmp_89", label %"$out_of_gas_90", label %"$have_gas_91" + call void @llvm.dbg.declare(metadata %Int32* %"$retval_16", metadata !11, metadata !DIExpression()), !dbg !12 + %"$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_90": ; preds = %entry +"$out_of_gas_91": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_91" - -"$have_gas_91": ; preds = %"$out_of_gas_90", %entry - %"$consume_92" = sub i64 %"$gasrem_88", 1 - store i64 %"$consume_92", i64* @_gasrem, align 8 - store %Int32 %1, %Int32* %"$retval_16", align 4, !dbg !8 - %"$$retval_16_93" = load %Int32, %Int32* %"$retval_16", align 4 - ret %Int32 %"$$retval_16_93" + br label %"$have_gas_92" + +"$have_gas_92": ; preds = %"$out_of_gas_91", %entry + %"$consume_93" = sub i64 %"$gasrem_89", 1 + store i64 %"$consume_93", i64* @_gasrem, align 8 + store %Int32 %1, %Int32* %"$retval_16", align 4, !dbg !12 + %"$$retval_16_94" = load %Int32, %Int32* %"$retval_16", align 4 + ret %Int32 %"$$retval_16_94" } -define internal { %Int32 (i8*, %Int32)*, i8* } @"$fundef_13"(%"$$fundef_13_env_55"* %0, %Uint32 %1) !dbg !9 { +define internal { %Int32 (i8*, %Int32)*, i8* } @"$fundef_13"(%"$$fundef_13_env_55"* %0, %Uint32 %1) !dbg !13 { entry: + %"$a_88" = alloca %Uint32, align 8 + store %Uint32 %1, %Uint32* %"$a_88", align 4 + call void @llvm.dbg.declare(metadata %Uint32* %"$a_88", metadata !14, metadata !DIExpression()), !dbg !16 %"$retval_14" = alloca { %Int32 (i8*, %Int32)*, i8* }, align 8 %"$gasrem_79" = load i64, i64* @_gasrem, align 8 %"$gascmp_80" = icmp ugt i64 1, %"$gasrem_79" @@ -105,12 +112,12 @@ entry: "$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 (i8*, %Int32)*, i8* } { %Int32 (i8*, %Int32)* bitcast (%Int32 (%"$$fundef_15_env_54"*, %Int32)* @"$fundef_15" to %Int32 (i8*, %Int32)*), i8* null }, { %Int32 (i8*, %Int32)*, i8* }* %"$retval_14", align 8, !dbg !10 + store { %Int32 (i8*, %Int32)*, i8* } { %Int32 (i8*, %Int32)* bitcast (%Int32 (%"$$fundef_15_env_54"*, %Int32)* @"$fundef_15" to %Int32 (i8*, %Int32)*), i8* null }, { %Int32 (i8*, %Int32)*, i8* }* %"$retval_14", align 8, !dbg !17 %"$$retval_14_87" = load { %Int32 (i8*, %Int32)*, i8* }, { %Int32 (i8*, %Int32)*, i8* }* %"$retval_14", align 8 ret { %Int32 (i8*, %Int32)*, i8* } %"$$retval_14_87" } -define internal { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Uint32)*, i8* } @"$fundef_11"(%"$$fundef_11_env_56"* %0) !dbg !11 { +define internal { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Uint32)*, i8* } @"$fundef_11"(%"$$fundef_11_env_56"* %0) !dbg !18 { entry: %"$retval_12" = alloca { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Uint32)*, i8* }, align 8 %"$gasrem_70" = load i64, i64* @_gasrem, align 8 @@ -124,12 +131,12 @@ entry: "$have_gas_73": ; preds = %"$out_of_gas_72", %entry %"$consume_74" = sub i64 %"$gasrem_70", 1 store i64 %"$consume_74", i64* @_gasrem, align 8 - store { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Uint32)*, i8* } { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Uint32)* bitcast ({ %Int32 (i8*, %Int32)*, i8* } (%"$$fundef_13_env_55"*, %Uint32)* @"$fundef_13" to { %Int32 (i8*, %Int32)*, i8* } (i8*, %Uint32)*), i8* null }, { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Uint32)*, i8* }* %"$retval_12", align 8, !dbg !12 + store { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Uint32)*, i8* } { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Uint32)* bitcast ({ %Int32 (i8*, %Int32)*, i8* } (%"$$fundef_13_env_55"*, %Uint32)* @"$fundef_13" to { %Int32 (i8*, %Int32)*, i8* } (i8*, %Uint32)*), i8* null }, { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Uint32)*, i8* }* %"$retval_12", align 8, !dbg !19 %"$$retval_12_78" = load { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Uint32)*, i8* }, { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Uint32)*, i8* }* %"$retval_12", align 8 ret { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Uint32)*, i8* } %"$$retval_12_78" } -define internal { i8*, i8* }* @"$fundef_9"(%"$$fundef_9_env_57"* %0) !dbg !13 { +define internal { i8*, i8* }* @"$fundef_9"(%"$$fundef_9_env_57"* %0) !dbg !20 { entry: %"$retval_10" = alloca { i8*, i8* }*, align 8 %"$gasrem_58" = load i64, i64* @_gasrem, align 8 @@ -150,7 +157,7 @@ entry: %"$dyndisp_gep_67" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_66", i32 1 %"$dyndisp_pcast_68" = bitcast { i8*, i8* }* %"$dyndisp_gep_67" to { { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Uint32)*, i8* } (i8*)*, i8* }* store { { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Uint32)*, i8* } (i8*)*, i8* } { { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Uint32)*, i8* } (i8*)* bitcast ({ { %Int32 (i8*, %Int32)*, i8* } (i8*, %Uint32)*, i8* } (%"$$fundef_11_env_56"*)* @"$fundef_11" to { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Uint32)*, i8* } (i8*)*), i8* null }, { { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Uint32)*, i8* } (i8*)*, i8* }* %"$dyndisp_pcast_68", align 8 - store { i8*, i8* }* %"$dyndisp_table_66", { i8*, i8* }** %"$retval_10", align 8, !dbg !14 + store { i8*, i8* }* %"$dyndisp_table_66", { i8*, i8* }** %"$retval_10", align 8, !dbg !21 %"$$retval_10_69" = load { i8*, i8* }*, { i8*, i8* }** %"$retval_10", align 8 ret { i8*, i8* }* %"$$retval_10_69" } @@ -159,271 +166,293 @@ declare void @_out_of_gas() declare i8* @_salloc(i8*, i64) -define void @_init_libs() !dbg !15 { +; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn +declare void @llvm.dbg.declare(metadata, metadata, metadata) #0 + +define void @_init_libs() !dbg !22 { entry: - %"$gasrem_94" = load i64, i64* @_gasrem, align 8 - %"$gascmp_95" = icmp ugt i64 5, %"$gasrem_94" - br i1 %"$gascmp_95", label %"$out_of_gas_96", label %"$have_gas_97" + %"$gasrem_96" = load i64, i64* @_gasrem, align 8 + %"$gascmp_97" = icmp ugt i64 5, %"$gasrem_96" + br i1 %"$gascmp_97", label %"$out_of_gas_98", label %"$have_gas_99" -"$out_of_gas_96": ; preds = %entry +"$out_of_gas_98": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_97" + br label %"$have_gas_99" -"$have_gas_97": ; preds = %"$out_of_gas_96", %entry - %"$consume_98" = sub i64 %"$gasrem_94", 5 - store i64 %"$consume_98", i64* @_gasrem, align 8 - store %Int32 { i32 5 }, %Int32* @"$_gas_charge_accrec_lib_5", align 4, !dbg !17 - %"$gasrem_99" = load i64, i64* @_gasrem, align 8 - %"$gascmp_100" = icmp ugt i64 8, %"$gasrem_99" - br i1 %"$gascmp_100", label %"$out_of_gas_101", label %"$have_gas_102" +"$have_gas_99": ; preds = %"$out_of_gas_98", %entry + %"$consume_100" = sub i64 %"$gasrem_96", 5 + store i64 %"$consume_100", i64* @_gasrem, align 8 + store %Int32 { i32 5 }, %Int32* @"$_gas_charge_accrec_lib_5", align 4, !dbg !24 + %"$gasrem_101" = load i64, i64* @_gasrem, align 8 + %"$gascmp_102" = icmp ugt i64 8, %"$gasrem_101" + br i1 %"$gascmp_102", label %"$out_of_gas_103", label %"$have_gas_104" -"$out_of_gas_101": ; preds = %"$have_gas_97" +"$out_of_gas_103": ; preds = %"$have_gas_99" call void @_out_of_gas() - br label %"$have_gas_102" + br label %"$have_gas_104" -"$have_gas_102": ; preds = %"$out_of_gas_101", %"$have_gas_97" - %"$consume_103" = sub i64 %"$gasrem_99", 8 - store i64 %"$consume_103", i64* @_gasrem, align 8 - store %Int32 { i32 8 }, %Int32* @"$_gas_charge_accBoolUtils_0", align 4, !dbg !17 - %"$gasrem_104" = load i64, i64* @_gasrem, align 8 - %"$gascmp_105" = icmp ugt i64 196, %"$gasrem_104" - br i1 %"$gascmp_105", label %"$out_of_gas_106", label %"$have_gas_107" +"$have_gas_104": ; preds = %"$out_of_gas_103", %"$have_gas_99" + %"$consume_105" = sub i64 %"$gasrem_101", 8 + store i64 %"$consume_105", i64* @_gasrem, align 8 + store %Int32 { i32 8 }, %Int32* @"$_gas_charge_accBoolUtils_0", align 4, !dbg !24 + %"$gasrem_106" = load i64, i64* @_gasrem, align 8 + %"$gascmp_107" = icmp ugt i64 196, %"$gasrem_106" + br i1 %"$gascmp_107", label %"$out_of_gas_108", label %"$have_gas_109" -"$out_of_gas_106": ; preds = %"$have_gas_102" +"$out_of_gas_108": ; preds = %"$have_gas_104" call void @_out_of_gas() - br label %"$have_gas_107" + br label %"$have_gas_109" -"$have_gas_107": ; preds = %"$out_of_gas_106", %"$have_gas_102" - %"$consume_108" = sub i64 %"$gasrem_104", 196 - store i64 %"$consume_108", i64* @_gasrem, align 8 - store %Int32 { i32 196 }, %Int32* @"$_gas_charge_accIntUtils_1", align 4, !dbg !17 - %"$gasrem_109" = load i64, i64* @_gasrem, align 8 - %"$gascmp_110" = icmp ugt i64 20, %"$gasrem_109" - br i1 %"$gascmp_110", label %"$out_of_gas_111", label %"$have_gas_112" +"$have_gas_109": ; preds = %"$out_of_gas_108", %"$have_gas_104" + %"$consume_110" = sub i64 %"$gasrem_106", 196 + store i64 %"$consume_110", i64* @_gasrem, align 8 + store %Int32 { i32 196 }, %Int32* @"$_gas_charge_accIntUtils_1", align 4, !dbg !24 + %"$gasrem_111" = load i64, i64* @_gasrem, align 8 + %"$gascmp_112" = icmp ugt i64 20, %"$gasrem_111" + br i1 %"$gascmp_112", label %"$out_of_gas_113", label %"$have_gas_114" -"$out_of_gas_111": ; preds = %"$have_gas_107" +"$out_of_gas_113": ; preds = %"$have_gas_109" call void @_out_of_gas() - br label %"$have_gas_112" + br label %"$have_gas_114" -"$have_gas_112": ; preds = %"$out_of_gas_111", %"$have_gas_107" - %"$consume_113" = sub i64 %"$gasrem_109", 20 - store i64 %"$consume_113", i64* @_gasrem, align 8 - store %Int32 { i32 20 }, %Int32* @"$_gas_charge_accListUtils_2", align 4, !dbg !17 - %"$gasrem_114" = load i64, i64* @_gasrem, align 8 - %"$gascmp_115" = icmp ugt i64 12, %"$gasrem_114" - br i1 %"$gascmp_115", label %"$out_of_gas_116", label %"$have_gas_117" +"$have_gas_114": ; preds = %"$out_of_gas_113", %"$have_gas_109" + %"$consume_115" = sub i64 %"$gasrem_111", 20 + store i64 %"$consume_115", i64* @_gasrem, align 8 + store %Int32 { i32 20 }, %Int32* @"$_gas_charge_accListUtils_2", align 4, !dbg !24 + %"$gasrem_116" = load i64, i64* @_gasrem, align 8 + %"$gascmp_117" = icmp ugt i64 12, %"$gasrem_116" + br i1 %"$gascmp_117", label %"$out_of_gas_118", label %"$have_gas_119" -"$out_of_gas_116": ; preds = %"$have_gas_112" +"$out_of_gas_118": ; preds = %"$have_gas_114" call void @_out_of_gas() - br label %"$have_gas_117" + br label %"$have_gas_119" -"$have_gas_117": ; preds = %"$out_of_gas_116", %"$have_gas_112" - %"$consume_118" = sub i64 %"$gasrem_114", 12 - store i64 %"$consume_118", i64* @_gasrem, align 8 - store %Int32 { i32 12 }, %Int32* @"$_gas_charge_accNatUtils_3", align 4, !dbg !17 - %"$gasrem_119" = load i64, i64* @_gasrem, align 8 - %"$gascmp_120" = icmp ugt i64 2, %"$gasrem_119" - br i1 %"$gascmp_120", label %"$out_of_gas_121", label %"$have_gas_122" +"$have_gas_119": ; preds = %"$out_of_gas_118", %"$have_gas_114" + %"$consume_120" = sub i64 %"$gasrem_116", 12 + store i64 %"$consume_120", i64* @_gasrem, align 8 + store %Int32 { i32 12 }, %Int32* @"$_gas_charge_accNatUtils_3", align 4, !dbg !24 + %"$gasrem_121" = load i64, i64* @_gasrem, align 8 + %"$gascmp_122" = icmp ugt i64 2, %"$gasrem_121" + br i1 %"$gascmp_122", label %"$out_of_gas_123", label %"$have_gas_124" -"$out_of_gas_121": ; preds = %"$have_gas_117" +"$out_of_gas_123": ; preds = %"$have_gas_119" call void @_out_of_gas() - br label %"$have_gas_122" + br label %"$have_gas_124" -"$have_gas_122": ; preds = %"$out_of_gas_121", %"$have_gas_117" - %"$consume_123" = sub i64 %"$gasrem_119", 2 - store i64 %"$consume_123", i64* @_gasrem, align 8 - store %Int32 { i32 2 }, %Int32* @"$_gas_charge_accPairUtils_4", align 4, !dbg !17 +"$have_gas_124": ; preds = %"$out_of_gas_123", %"$have_gas_119" + %"$consume_125" = sub i64 %"$gasrem_121", 2 + store i64 %"$consume_125", i64* @_gasrem, align 8 + store %Int32 { i32 2 }, %Int32* @"$_gas_charge_accPairUtils_4", align 4, !dbg !24 ret void } -define internal %Int32 @_scilla_expr_fun(i8* %0) !dbg !18 { +define internal %Int32 @_scilla_expr_fun(i8* %0) !dbg !25 { entry: %"$expr_8" = alloca %Int32, align 8 - %"$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" + call void @llvm.dbg.declare(metadata %Int32* %"$expr_8", metadata !26, metadata !DIExpression()), !dbg !27 + %"$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_126": ; preds = %entry +"$out_of_gas_128": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_127" + br label %"$have_gas_129" -"$have_gas_127": ; preds = %"$out_of_gas_126", %entry - %"$consume_128" = sub i64 %"$gasrem_124", 1 - store i64 %"$consume_128", i64* @_gasrem, align 8 +"$have_gas_129": ; preds = %"$out_of_gas_128", %entry + %"$consume_130" = sub i64 %"$gasrem_126", 1 + store i64 %"$consume_130", i64* @_gasrem, align 8 %tf = alloca { i8*, i8* }*, align 8 - %"$gasrem_129" = load i64, i64* @_gasrem, align 8 - %"$gascmp_130" = icmp ugt i64 1, %"$gasrem_129" - br i1 %"$gascmp_130", label %"$out_of_gas_131", label %"$have_gas_132" + %"$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_131": ; preds = %"$have_gas_127" +"$out_of_gas_133": ; preds = %"$have_gas_129" 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", 1 - store i64 %"$consume_133", i64* @_gasrem, align 8 - %"$dyndisp_table_137_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$dyndisp_table_137_salloc_salloc" = call i8* @_salloc(i8* %"$dyndisp_table_137_salloc_load", i64 32) - %"$dyndisp_table_137_salloc" = bitcast i8* %"$dyndisp_table_137_salloc_salloc" to [2 x { i8*, i8* }]* - %"$dyndisp_table_137" = bitcast [2 x { i8*, i8* }]* %"$dyndisp_table_137_salloc" to { i8*, i8* }* - %"$dyndisp_gep_138" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_137", i32 0 - %"$dyndisp_pcast_139" = bitcast { i8*, i8* }* %"$dyndisp_gep_138" to { { i8*, i8* }* (i8*)*, i8* }* - store { { i8*, i8* }* (i8*)*, i8* } { { i8*, i8* }* (i8*)* bitcast ({ i8*, i8* }* (%"$$fundef_9_env_57"*)* @"$fundef_9" to { i8*, i8* }* (i8*)*), i8* null }, { { i8*, i8* }* (i8*)*, i8* }* %"$dyndisp_pcast_139", align 8 - store { i8*, i8* }* %"$dyndisp_table_137", { i8*, i8* }** %tf, align 8, !dbg !19 - %"$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_132" + br label %"$have_gas_134" + +"$have_gas_134": ; preds = %"$out_of_gas_133", %"$have_gas_129" + %"$consume_135" = sub i64 %"$gasrem_131", 1 + store i64 %"$consume_135", i64* @_gasrem, align 8 + %"$dyndisp_table_139_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$dyndisp_table_139_salloc_salloc" = call i8* @_salloc(i8* %"$dyndisp_table_139_salloc_load", i64 32) + %"$dyndisp_table_139_salloc" = bitcast i8* %"$dyndisp_table_139_salloc_salloc" to [2 x { i8*, i8* }]* + %"$dyndisp_table_139" = bitcast [2 x { i8*, i8* }]* %"$dyndisp_table_139_salloc" to { i8*, i8* }* + %"$dyndisp_gep_140" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_139", i32 0 + %"$dyndisp_pcast_141" = bitcast { i8*, i8* }* %"$dyndisp_gep_140" to { { i8*, i8* }* (i8*)*, i8* }* + store { { i8*, i8* }* (i8*)*, i8* } { { i8*, i8* }* (i8*)* bitcast ({ i8*, i8* }* (%"$$fundef_9_env_57"*)* @"$fundef_9" to { i8*, i8* }* (i8*)*), i8* null }, { { i8*, i8* }* (i8*)*, i8* }* %"$dyndisp_pcast_141", align 8 + store { i8*, i8* }* %"$dyndisp_table_139", { i8*, i8* }** %tf, align 8, !dbg !27 + %"$gasrem_142" = load i64, i64* @_gasrem, align 8 + %"$gascmp_143" = icmp ugt i64 1, %"$gasrem_142" + br i1 %"$gascmp_143", label %"$out_of_gas_144", label %"$have_gas_145" + +"$out_of_gas_144": ; preds = %"$have_gas_134" call void @_out_of_gas() - br label %"$have_gas_143" + br label %"$have_gas_145" -"$have_gas_143": ; preds = %"$out_of_gas_142", %"$have_gas_132" - %"$consume_144" = sub i64 %"$gasrem_140", 1 - store i64 %"$consume_144", i64* @_gasrem, align 8 +"$have_gas_145": ; preds = %"$out_of_gas_144", %"$have_gas_134" + %"$consume_146" = sub i64 %"$gasrem_142", 1 + store i64 %"$consume_146", i64* @_gasrem, align 8 %t = alloca { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Uint32)*, 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" + %"$gasrem_147" = load i64, i64* @_gasrem, align 8 + %"$gascmp_148" = icmp ugt i64 1, %"$gasrem_147" + br i1 %"$gascmp_148", label %"$out_of_gas_149", label %"$have_gas_150" -"$out_of_gas_147": ; preds = %"$have_gas_143" +"$out_of_gas_149": ; preds = %"$have_gas_145" call void @_out_of_gas() - br label %"$have_gas_148" - -"$have_gas_148": ; preds = %"$out_of_gas_147", %"$have_gas_143" - %"$consume_149" = sub i64 %"$gasrem_145", 1 - store i64 %"$consume_149", i64* @_gasrem, align 8 - %"$tf_150" = load { i8*, i8* }*, { i8*, i8* }** %tf, align 8 - %"$tf_151" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$tf_150", i32 0 - %"$tf_152" = bitcast { i8*, i8* }* %"$tf_151" to { { i8*, i8* }* (i8*)*, i8* }* - %"$tf_153" = load { { i8*, i8* }* (i8*)*, i8* }, { { i8*, i8* }* (i8*)*, i8* }* %"$tf_152", align 8 - %"$tf_fptr_154" = extractvalue { { i8*, i8* }* (i8*)*, i8* } %"$tf_153", 0 - %"$tf_envptr_155" = extractvalue { { i8*, i8* }* (i8*)*, i8* } %"$tf_153", 1 - %"$tf_call_156" = call { i8*, i8* }* %"$tf_fptr_154"(i8* %"$tf_envptr_155"), !dbg !20 - %"$tf_157" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$tf_call_156", i32 1 - %"$tf_158" = bitcast { i8*, i8* }* %"$tf_157" to { { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Uint32)*, i8* } (i8*)*, i8* }* - %"$tf_159" = load { { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Uint32)*, i8* } (i8*)*, i8* }, { { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Uint32)*, i8* } (i8*)*, i8* }* %"$tf_158", align 8 - %"$tf_fptr_160" = extractvalue { { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Uint32)*, i8* } (i8*)*, i8* } %"$tf_159", 0 - %"$tf_envptr_161" = extractvalue { { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Uint32)*, i8* } (i8*)*, i8* } %"$tf_159", 1 - %"$tf_call_162" = call { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Uint32)*, i8* } %"$tf_fptr_160"(i8* %"$tf_envptr_161"), !dbg !20 - store { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Uint32)*, i8* } %"$tf_call_162", { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Uint32)*, i8* }* %t, align 8, !dbg !21 - %"$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 = %"$have_gas_148" + br label %"$have_gas_150" + +"$have_gas_150": ; preds = %"$out_of_gas_149", %"$have_gas_145" + %"$consume_151" = sub i64 %"$gasrem_147", 1 + store i64 %"$consume_151", i64* @_gasrem, align 8 + %"$tf_152" = load { i8*, i8* }*, { i8*, i8* }** %tf, align 8 + %"$tf_153" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$tf_152", i32 0 + %"$tf_154" = bitcast { i8*, i8* }* %"$tf_153" to { { i8*, i8* }* (i8*)*, i8* }* + %"$tf_155" = load { { i8*, i8* }* (i8*)*, i8* }, { { i8*, i8* }* (i8*)*, i8* }* %"$tf_154", align 8 + %"$tf_fptr_156" = extractvalue { { i8*, i8* }* (i8*)*, i8* } %"$tf_155", 0 + %"$tf_envptr_157" = extractvalue { { i8*, i8* }* (i8*)*, i8* } %"$tf_155", 1 + %"$tf_call_158" = call { i8*, i8* }* %"$tf_fptr_156"(i8* %"$tf_envptr_157"), !dbg !28 + %"$tf_159" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$tf_call_158", i32 1 + %"$tf_160" = bitcast { i8*, i8* }* %"$tf_159" to { { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Uint32)*, i8* } (i8*)*, i8* }* + %"$tf_161" = load { { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Uint32)*, i8* } (i8*)*, i8* }, { { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Uint32)*, i8* } (i8*)*, i8* }* %"$tf_160", align 8 + %"$tf_fptr_162" = extractvalue { { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Uint32)*, i8* } (i8*)*, i8* } %"$tf_161", 0 + %"$tf_envptr_163" = extractvalue { { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Uint32)*, i8* } (i8*)*, i8* } %"$tf_161", 1 + %"$tf_call_164" = call { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Uint32)*, i8* } %"$tf_fptr_162"(i8* %"$tf_envptr_163"), !dbg !28 + store { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Uint32)*, i8* } %"$tf_call_164", { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Uint32)*, i8* }* %t, align 8, !dbg !29 + %"$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" + +"$out_of_gas_167": ; preds = %"$have_gas_150" call void @_out_of_gas() - br label %"$have_gas_166" + br label %"$have_gas_168" -"$have_gas_166": ; preds = %"$out_of_gas_165", %"$have_gas_148" - %"$consume_167" = sub i64 %"$gasrem_163", 1 - store i64 %"$consume_167", i64* @_gasrem, align 8 +"$have_gas_168": ; preds = %"$out_of_gas_167", %"$have_gas_150" + %"$consume_169" = sub i64 %"$gasrem_165", 1 + store i64 %"$consume_169", i64* @_gasrem, align 8 %one = alloca %Uint32, align 8 - %"$gasrem_168" = load i64, i64* @_gasrem, align 8 - %"$gascmp_169" = icmp ugt i64 1, %"$gasrem_168" - br i1 %"$gascmp_169", label %"$out_of_gas_170", label %"$have_gas_171" + call void @llvm.dbg.declare(metadata %Uint32* %one, metadata !30, metadata !DIExpression()), !dbg !31 + %"$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_170": ; preds = %"$have_gas_166" +"$out_of_gas_172": ; preds = %"$have_gas_168" call void @_out_of_gas() - br label %"$have_gas_171" + br label %"$have_gas_173" -"$have_gas_171": ; preds = %"$out_of_gas_170", %"$have_gas_166" - %"$consume_172" = sub i64 %"$gasrem_168", 1 - store i64 %"$consume_172", i64* @_gasrem, align 8 - store %Uint32 { i32 1 }, %Uint32* %one, align 4, !dbg !22 - %"$gasrem_173" = load i64, i64* @_gasrem, align 8 - %"$gascmp_174" = icmp ugt i64 1, %"$gasrem_173" - br i1 %"$gascmp_174", label %"$out_of_gas_175", label %"$have_gas_176" +"$have_gas_173": ; preds = %"$out_of_gas_172", %"$have_gas_168" + %"$consume_174" = sub i64 %"$gasrem_170", 1 + store i64 %"$consume_174", i64* @_gasrem, align 8 + store %Uint32 { i32 1 }, %Uint32* %one, align 4, !dbg !32 + %"$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_175": ; preds = %"$have_gas_171" +"$out_of_gas_177": ; preds = %"$have_gas_173" call void @_out_of_gas() - br label %"$have_gas_176" + br label %"$have_gas_178" -"$have_gas_176": ; preds = %"$out_of_gas_175", %"$have_gas_171" - %"$consume_177" = sub i64 %"$gasrem_173", 1 - store i64 %"$consume_177", i64* @_gasrem, align 8 +"$have_gas_178": ; preds = %"$out_of_gas_177", %"$have_gas_173" + %"$consume_179" = sub i64 %"$gasrem_175", 1 + store i64 %"$consume_179", i64* @_gasrem, align 8 %two = alloca %Int32, 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" + call void @llvm.dbg.declare(metadata %Int32* %two, metadata !33, metadata !DIExpression()), !dbg !34 + %"$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_180": ; preds = %"$have_gas_176" +"$out_of_gas_182": ; preds = %"$have_gas_178" call void @_out_of_gas() - br label %"$have_gas_181" + br label %"$have_gas_183" -"$have_gas_181": ; preds = %"$out_of_gas_180", %"$have_gas_176" - %"$consume_182" = sub i64 %"$gasrem_178", 1 - store i64 %"$consume_182", i64* @_gasrem, align 8 - store %Int32 { i32 2 }, %Int32* %two, align 4, !dbg !23 - %"$gasrem_183" = load i64, i64* @_gasrem, align 8 - %"$gascmp_184" = icmp ugt i64 1, %"$gasrem_183" - br i1 %"$gascmp_184", label %"$out_of_gas_185", label %"$have_gas_186" +"$have_gas_183": ; preds = %"$out_of_gas_182", %"$have_gas_178" + %"$consume_184" = sub i64 %"$gasrem_180", 1 + store i64 %"$consume_184", i64* @_gasrem, align 8 + store %Int32 { i32 2 }, %Int32* %two, align 4, !dbg !35 + %"$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_185": ; preds = %"$have_gas_181" +"$out_of_gas_187": ; preds = %"$have_gas_183" call void @_out_of_gas() - br label %"$have_gas_186" + br label %"$have_gas_188" -"$have_gas_186": ; preds = %"$out_of_gas_185", %"$have_gas_181" - %"$consume_187" = sub i64 %"$gasrem_183", 1 - store i64 %"$consume_187", i64* @_gasrem, align 8 +"$have_gas_188": ; preds = %"$out_of_gas_187", %"$have_gas_183" + %"$consume_189" = sub i64 %"$gasrem_185", 1 + store i64 %"$consume_189", i64* @_gasrem, align 8 %"$t_6" = alloca { %Int32 (i8*, %Int32)*, i8* }, align 8 - %"$t_188" = load { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Uint32)*, i8* }, { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Uint32)*, i8* }* %t, align 8 - %"$t_fptr_189" = extractvalue { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Uint32)*, i8* } %"$t_188", 0 - %"$t_envptr_190" = extractvalue { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Uint32)*, i8* } %"$t_188", 1 - %"$one_191" = load %Uint32, %Uint32* %one, align 4 - %"$t_call_192" = call { %Int32 (i8*, %Int32)*, i8* } %"$t_fptr_189"(i8* %"$t_envptr_190", %Uint32 %"$one_191"), !dbg !24 - store { %Int32 (i8*, %Int32)*, i8* } %"$t_call_192", { %Int32 (i8*, %Int32)*, i8* }* %"$t_6", align 8, !dbg !24 + %"$t_190" = load { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Uint32)*, i8* }, { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Uint32)*, i8* }* %t, align 8 + %"$t_fptr_191" = extractvalue { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Uint32)*, i8* } %"$t_190", 0 + %"$t_envptr_192" = extractvalue { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Uint32)*, i8* } %"$t_190", 1 + %"$one_193" = load %Uint32, %Uint32* %one, align 4 + %"$t_call_194" = call { %Int32 (i8*, %Int32)*, i8* } %"$t_fptr_191"(i8* %"$t_envptr_192", %Uint32 %"$one_193"), !dbg !36 + store { %Int32 (i8*, %Int32)*, i8* } %"$t_call_194", { %Int32 (i8*, %Int32)*, i8* }* %"$t_6", align 8, !dbg !36 %"$t_7" = alloca %Int32, align 8 - %"$$t_6_193" = load { %Int32 (i8*, %Int32)*, i8* }, { %Int32 (i8*, %Int32)*, i8* }* %"$t_6", align 8 - %"$$t_6_fptr_194" = extractvalue { %Int32 (i8*, %Int32)*, i8* } %"$$t_6_193", 0 - %"$$t_6_envptr_195" = extractvalue { %Int32 (i8*, %Int32)*, i8* } %"$$t_6_193", 1 - %"$two_196" = load %Int32, %Int32* %two, align 4 - %"$$t_6_call_197" = call %Int32 %"$$t_6_fptr_194"(i8* %"$$t_6_envptr_195", %Int32 %"$two_196"), !dbg !24 - store %Int32 %"$$t_6_call_197", %Int32* %"$t_7", align 4, !dbg !24 - %"$$t_7_198" = load %Int32, %Int32* %"$t_7", align 4 - store %Int32 %"$$t_7_198", %Int32* %"$expr_8", align 4, !dbg !24 - %"$$expr_8_199" = load %Int32, %Int32* %"$expr_8", align 4 - ret %Int32 %"$$expr_8_199" + call void @llvm.dbg.declare(metadata %Int32* %"$t_7", metadata !37, metadata !DIExpression()), !dbg !36 + %"$$t_6_195" = load { %Int32 (i8*, %Int32)*, i8* }, { %Int32 (i8*, %Int32)*, i8* }* %"$t_6", align 8 + %"$$t_6_fptr_196" = extractvalue { %Int32 (i8*, %Int32)*, i8* } %"$$t_6_195", 0 + %"$$t_6_envptr_197" = extractvalue { %Int32 (i8*, %Int32)*, i8* } %"$$t_6_195", 1 + %"$two_198" = load %Int32, %Int32* %two, align 4 + %"$$t_6_call_199" = call %Int32 %"$$t_6_fptr_196"(i8* %"$$t_6_envptr_197", %Int32 %"$two_198"), !dbg !36 + store %Int32 %"$$t_6_call_199", %Int32* %"$t_7", align 4, !dbg !36 + %"$$t_7_200" = load %Int32, %Int32* %"$t_7", align 4 + store %Int32 %"$$t_7_200", %Int32* %"$expr_8", align 4, !dbg !36 + %"$$expr_8_201" = load %Int32, %Int32* %"$expr_8", align 4 + ret %Int32 %"$$expr_8_201" } declare void @_print_scilla_val(i8*, %_TyDescrTy_Typ*, i8*) define void @scilla_main() { entry: - %"$exprval_200" = call %Int32 @_scilla_expr_fun(i8* null) - %"$pval_201" = alloca %Int32, align 8 - %"$memvoidcast_202" = bitcast %Int32* %"$pval_201" to i8* - store %Int32 %"$exprval_200", %Int32* %"$pval_201", align 4 - %"$execptr_load_203" = load i8*, i8** @_execptr, align 8 - call void @_print_scilla_val(i8* %"$execptr_load_203", %_TyDescrTy_Typ* @"$TyDescr_Int32_19", i8* %"$memvoidcast_202") + %"$exprval_202" = call %Int32 @_scilla_expr_fun(i8* null) + %"$pval_203" = alloca %Int32, align 8 + %"$memvoidcast_204" = bitcast %Int32* %"$pval_203" to i8* + store %Int32 %"$exprval_202", %Int32* %"$pval_203", align 4 + %"$execptr_load_205" = load i8*, i8** @_execptr, align 8 + call void @_print_scilla_val(i8* %"$execptr_load_205", %_TyDescrTy_Typ* @"$TyDescr_Int32_19", i8* %"$memvoidcast_204") ret void } +attributes #0 = { nocallback nofree nosync nounwind readnone speculatable willreturn } + !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) +!1 = distinct !DICompileUnit(language: DW_LANG_C89, file: !2, producer: "Scilla Compiler", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false) !2 = !DIFile(filename: "typ1-inst.scilexp", directory: "codegen/expr") -!3 = !{} -!4 = distinct !DISubprogram(name: "$fundef_15", linkageName: "$fundef_15", scope: !2, file: !2, line: 6, type: !5, scopeLine: 6, 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: 6, column: 5, scope: !4) -!9 = distinct !DISubprogram(name: "$fundef_13", linkageName: "$fundef_13", scope: !2, file: !2, line: 5, type: !5, scopeLine: 5, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!10 = !DILocation(line: 6, column: 5, scope: !9) -!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) -!12 = !DILocation(line: 5, column: 3, scope: !11) -!13 = distinct !DISubprogram(name: "$fundef_9", linkageName: "$fundef_9", scope: !2, file: !2, line: 3, type: !5, scopeLine: 3, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!14 = !DILocation(line: 3, column: 3, scope: !13) -!15 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !16, file: !16, type: !5, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!16 = !DIFile(filename: ".", directory: ".") -!17 = !DILocation(line: 0, scope: !15) -!18 = 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) -!19 = !DILocation(line: 2, column: 3, scope: !18) -!20 = !DILocation(line: 9, column: 10, scope: !18) -!21 = !DILocation(line: 9, column: 9, scope: !18) -!22 = !DILocation(line: 10, column: 11, scope: !18) -!23 = !DILocation(line: 11, column: 11, scope: !18) -!24 = !DILocation(line: 12, column: 1, scope: !18) +!3 = distinct !DISubprogram(name: "$fundef_15", linkageName: "$fundef_15", scope: !2, file: !2, line: 6, type: !4, scopeLine: 6, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!4 = !DISubroutineType(types: !5) +!5 = !{!6} +!6 = !DIBasicType(tag: DW_TAG_unspecified_type, name: "void") +!7 = !{} +!8 = !DILocalVariable(name: "b", scope: !3, file: !2, line: 5, type: !9) +!9 = !DIBasicType(name: "Int32", size: 4) +!10 = !DILocation(line: 5, column: 8, scope: !3) +!11 = !DILocalVariable(name: "$retval_16", scope: !3, file: !2, line: 6, type: !9) +!12 = !DILocation(line: 6, column: 5, scope: !3) +!13 = distinct !DISubprogram(name: "$fundef_13", linkageName: "$fundef_13", scope: !2, file: !2, line: 5, type: !4, scopeLine: 5, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!14 = !DILocalVariable(name: "a", scope: !13, file: !2, line: 4, type: !15) +!15 = !DIBasicType(name: "Uint32", size: 4) +!16 = !DILocation(line: 4, column: 8, scope: !13) +!17 = !DILocation(line: 6, column: 5, scope: !13) +!18 = distinct !DISubprogram(name: "$fundef_11", linkageName: "$fundef_11", scope: !2, file: !2, line: 5, type: !4, scopeLine: 5, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!19 = !DILocation(line: 5, column: 3, scope: !18) +!20 = distinct !DISubprogram(name: "$fundef_9", linkageName: "$fundef_9", scope: !2, file: !2, line: 3, type: !4, scopeLine: 3, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!21 = !DILocation(line: 3, column: 3, scope: !20) +!22 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !23, file: !23, type: !4, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!23 = !DIFile(filename: ".", directory: ".") +!24 = !DILocation(line: 0, scope: !22) +!25 = distinct !DISubprogram(name: "_scilla_expr_fun", linkageName: "_scilla_expr_fun", scope: !2, file: !2, line: 2, type: !4, scopeLine: 2, spFlags: DISPFlagDefinition, unit: !1, retainedNodes: !7) +!26 = !DILocalVariable(name: "$expr_8", scope: !25, file: !2, line: 2, type: !9) +!27 = !DILocation(line: 2, column: 3, scope: !25) +!28 = !DILocation(line: 9, column: 10, scope: !25) +!29 = !DILocation(line: 9, column: 9, scope: !25) +!30 = !DILocalVariable(name: "one", scope: !25, file: !2, line: 10, type: !15) +!31 = !DILocation(line: 10, column: 5, scope: !25) +!32 = !DILocation(line: 10, column: 11, scope: !25) +!33 = !DILocalVariable(name: "two", scope: !25, file: !2, line: 11, type: !9) +!34 = !DILocation(line: 11, column: 5, scope: !25) +!35 = !DILocation(line: 11, column: 11, scope: !25) +!36 = !DILocation(line: 12, column: 1, scope: !25) +!37 = !DILocalVariable(name: "$t_7", scope: !25, file: !2, line: 12, type: !9) diff --git a/testsuite/expr/typ1-inst.ll b/testsuite/expr/typ1-inst.ll index 9278b583..6c40915f 100644 --- a/testsuite/expr/typ1-inst.ll +++ b/testsuite/expr/typ1-inst.ll @@ -13,7 +13,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-pc-linux-gnu" +target triple = "x86_64-unknown-linux-gnu" %"$TyDescrTy_PrimTyp_17" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/testsuite/expr/typ2-inst.dbg.ll b/testsuite/expr/typ2-inst.dbg.ll index 580052ca..d6e5cd12 100644 --- a/testsuite/expr/typ2-inst.dbg.ll +++ b/testsuite/expr/typ2-inst.dbg.ll @@ -26,7 +26,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-pc-linux-gnu" +target triple = "x86_64-unknown-linux-gnu" %"$TyDescrTy_PrimTyp_35" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } @@ -35,9 +35,9 @@ target triple = "x86_64-pc-linux-gnu" %"$TyDescrTy_ADTTyp_Specl_68" = type { %_TyDescrTy_Typ**, %"$TyDescrTy_ADTTyp_Constr_70"**, %"$TyDescrTy_ADTTyp_69"* } %"$TyDescrTy_ADTTyp_Constr_70" = type { %TyDescrString, i32, %_TyDescrTy_Typ** } %Int32 = type { i32 } -%"$ParamDescr_499" = type { %ParamDescrString, %_TyDescrTy_Typ* } +%"$ParamDescr_503" = type { %ParamDescrString, %_TyDescrTy_Typ* } %ParamDescrString = type { i8*, i32 } -%"$TransDescr_500" = type { %ParamDescrString, i32, %"$ParamDescr_499"* } +%"$TransDescr_504" = type { %ParamDescrString, i32, %"$ParamDescr_503"* } %TName_Pair_String_ByStr20 = type { i8, %CName_Pair_String_ByStr20* } %CName_Pair_String_ByStr20 = type <{ i8, %String, [20 x i8] }> %String = type { i8*, i32 } @@ -124,304 +124,318 @@ target triple = "x86_64-pc-linux-gnu" @"$_gas_charge_accListUtils_2" = global %Int32 zeroinitializer @"$_gas_charge_accNatUtils_3" = global %Int32 zeroinitializer @"$_gas_charge_accPairUtils_4" = global %Int32 zeroinitializer -@"$stringlit_429" = unnamed_addr constant [5 x i8] c"hello" +@"$stringlit_433" = unnamed_addr constant [5 x i8] c"hello" @_tydescr_table = constant [19 x %_TyDescrTy_Typ*] [%_TyDescrTy_Typ* @"$TyDescr_Event_59", %_TyDescrTy_Typ* @"$TyDescr_Int64_41", %_TyDescrTy_Typ* @"$TyDescr_ADT_Pair_String_ByStr20_72", %_TyDescrTy_Typ* @"$TyDescr_Bystr20_67", %_TyDescrTy_Typ* @"$TyDescr_Uint256_51", %_TyDescrTy_Typ* @"$TyDescr_Uint32_39", %_TyDescrTy_Typ* @"$TyDescr_Uint64_43", %_TyDescrTy_Typ* @"$TyDescr_Bnum_55", %_TyDescrTy_Typ* @"$TyDescr_Uint128_47", %_TyDescrTy_Typ* @"$TyDescr_ADT_Pair_Uint32_Uint64_73", %_TyDescrTy_Typ* @"$TyDescr_Exception_61", %_TyDescrTy_Typ* @"$TyDescr_String_53", %_TyDescrTy_Typ* @"$TyDescr_Int256_49", %_TyDescrTy_Typ* @"$TyDescr_Int128_45", %_TyDescrTy_Typ* @"$TyDescr_ADT_Pair_Pair_(Uint32)_(Uint64)_Pair_(String)_(ByStr20)_71", %_TyDescrTy_Typ* @"$TyDescr_Bystr_65", %_TyDescrTy_Typ* @"$TyDescr_ReplicateContr_63", %_TyDescrTy_Typ* @"$TyDescr_Message_57", %_TyDescrTy_Typ* @"$TyDescr_Int32_37"] @_tydescr_table_length = constant i32 19 -@_contract_parameters = constant [0 x %"$ParamDescr_499"] zeroinitializer +@_contract_parameters = constant [0 x %"$ParamDescr_503"] zeroinitializer @_contract_parameters_length = constant i32 0 -@_transition_parameters = constant [0 x %"$TransDescr_500"] zeroinitializer +@_transition_parameters = constant [0 x %"$TransDescr_504"] zeroinitializer @_transition_parameters_length = constant i32 0 -define internal { { %TName_Pair_String_ByStr20* (i8*, [20 x i8]*)*, i8* } (i8*, %String)*, i8* } @"$fundef_33"(%"$$fundef_33_env_98"* %0) !dbg !4 { +define internal { { %TName_Pair_String_ByStr20* (i8*, [20 x i8]*)*, i8* } (i8*, %String)*, i8* } @"$fundef_33"(%"$$fundef_33_env_98"* %0) !dbg !3 { entry: - %"$$fundef_33_env_tf_257" = getelementptr inbounds %"$$fundef_33_env_98", %"$$fundef_33_env_98"* %0, i32 0, i32 0 - %"$tf_envload_258" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_33_env_tf_257", align 8 + %"$$fundef_33_env_tf_261" = getelementptr inbounds %"$$fundef_33_env_98", %"$$fundef_33_env_98"* %0, i32 0, i32 0 + %"$tf_envload_262" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_33_env_tf_261", align 8 %tf = alloca { i8*, i8* }*, align 8 - store { i8*, i8* }* %"$tf_envload_258", { i8*, i8* }** %tf, align 8 + store { i8*, i8* }* %"$tf_envload_262", { i8*, i8* }** %tf, align 8 %"$retval_34" = alloca { { %TName_Pair_String_ByStr20* (i8*, [20 x i8]*)*, i8* } (i8*, %String)*, i8* }, align 8 - %"$gasrem_259" = load i64, i64* @_gasrem, align 8 - %"$gascmp_260" = icmp ugt i64 1, %"$gasrem_259" - br i1 %"$gascmp_260", label %"$out_of_gas_261", label %"$have_gas_262" - -"$out_of_gas_261": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_262" - -"$have_gas_262": ; preds = %"$out_of_gas_261", %entry - %"$consume_263" = sub i64 %"$gasrem_259", 1 - store i64 %"$consume_263", i64* @_gasrem, align 8 - %"$tf_264" = load { i8*, i8* }*, { i8*, i8* }** %tf, align 8 - %"$tf_265" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$tf_264", i32 2 - %"$tf_266" = bitcast { i8*, i8* }* %"$tf_265" to { { i8*, i8* }* (i8*)*, i8* }* - %"$tf_267" = load { { i8*, i8* }* (i8*)*, i8* }, { { i8*, i8* }* (i8*)*, i8* }* %"$tf_266", align 8 - %"$tf_fptr_268" = extractvalue { { i8*, i8* }* (i8*)*, i8* } %"$tf_267", 0 - %"$tf_envptr_269" = extractvalue { { i8*, i8* }* (i8*)*, i8* } %"$tf_267", 1 - %"$tf_call_270" = call { i8*, i8* }* %"$tf_fptr_268"(i8* %"$tf_envptr_269"), !dbg !8 - %"$tf_271" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$tf_call_270", i32 3 - %"$tf_272" = bitcast { i8*, i8* }* %"$tf_271" to { { { %TName_Pair_String_ByStr20* (i8*, [20 x i8]*)*, i8* } (i8*, %String)*, i8* } (i8*)*, i8* }* - %"$tf_273" = load { { { %TName_Pair_String_ByStr20* (i8*, [20 x i8]*)*, i8* } (i8*, %String)*, i8* } (i8*)*, i8* }, { { { %TName_Pair_String_ByStr20* (i8*, [20 x i8]*)*, i8* } (i8*, %String)*, i8* } (i8*)*, i8* }* %"$tf_272", align 8 - %"$tf_fptr_274" = extractvalue { { { %TName_Pair_String_ByStr20* (i8*, [20 x i8]*)*, i8* } (i8*, %String)*, i8* } (i8*)*, i8* } %"$tf_273", 0 - %"$tf_envptr_275" = extractvalue { { { %TName_Pair_String_ByStr20* (i8*, [20 x i8]*)*, i8* } (i8*, %String)*, i8* } (i8*)*, i8* } %"$tf_273", 1 - %"$tf_call_276" = call { { %TName_Pair_String_ByStr20* (i8*, [20 x i8]*)*, i8* } (i8*, %String)*, i8* } %"$tf_fptr_274"(i8* %"$tf_envptr_275"), !dbg !8 - store { { %TName_Pair_String_ByStr20* (i8*, [20 x i8]*)*, i8* } (i8*, %String)*, i8* } %"$tf_call_276", { { %TName_Pair_String_ByStr20* (i8*, [20 x i8]*)*, i8* } (i8*, %String)*, i8* }* %"$retval_34", align 8, !dbg !9 - %"$$retval_34_277" = load { { %TName_Pair_String_ByStr20* (i8*, [20 x i8]*)*, i8* } (i8*, %String)*, i8* }, { { %TName_Pair_String_ByStr20* (i8*, [20 x i8]*)*, i8* } (i8*, %String)*, i8* }* %"$retval_34", align 8 - ret { { %TName_Pair_String_ByStr20* (i8*, [20 x i8]*)*, i8* } (i8*, %String)*, i8* } %"$$retval_34_277" + %"$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 = %entry + call void @_out_of_gas() + br label %"$have_gas_266" + +"$have_gas_266": ; preds = %"$out_of_gas_265", %entry + %"$consume_267" = sub i64 %"$gasrem_263", 1 + store i64 %"$consume_267", i64* @_gasrem, align 8 + %"$tf_268" = load { i8*, i8* }*, { i8*, i8* }** %tf, align 8 + %"$tf_269" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$tf_268", i32 2 + %"$tf_270" = bitcast { i8*, i8* }* %"$tf_269" to { { i8*, i8* }* (i8*)*, i8* }* + %"$tf_271" = load { { i8*, i8* }* (i8*)*, i8* }, { { i8*, i8* }* (i8*)*, i8* }* %"$tf_270", align 8 + %"$tf_fptr_272" = extractvalue { { i8*, i8* }* (i8*)*, i8* } %"$tf_271", 0 + %"$tf_envptr_273" = extractvalue { { i8*, i8* }* (i8*)*, i8* } %"$tf_271", 1 + %"$tf_call_274" = call { i8*, i8* }* %"$tf_fptr_272"(i8* %"$tf_envptr_273"), !dbg !8 + %"$tf_275" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$tf_call_274", i32 3 + %"$tf_276" = bitcast { i8*, i8* }* %"$tf_275" to { { { %TName_Pair_String_ByStr20* (i8*, [20 x i8]*)*, i8* } (i8*, %String)*, i8* } (i8*)*, i8* }* + %"$tf_277" = load { { { %TName_Pair_String_ByStr20* (i8*, [20 x i8]*)*, i8* } (i8*, %String)*, i8* } (i8*)*, i8* }, { { { %TName_Pair_String_ByStr20* (i8*, [20 x i8]*)*, i8* } (i8*, %String)*, i8* } (i8*)*, i8* }* %"$tf_276", align 8 + %"$tf_fptr_278" = extractvalue { { { %TName_Pair_String_ByStr20* (i8*, [20 x i8]*)*, i8* } (i8*, %String)*, i8* } (i8*)*, i8* } %"$tf_277", 0 + %"$tf_envptr_279" = extractvalue { { { %TName_Pair_String_ByStr20* (i8*, [20 x i8]*)*, i8* } (i8*, %String)*, i8* } (i8*)*, i8* } %"$tf_277", 1 + %"$tf_call_280" = call { { %TName_Pair_String_ByStr20* (i8*, [20 x i8]*)*, i8* } (i8*, %String)*, i8* } %"$tf_fptr_278"(i8* %"$tf_envptr_279"), !dbg !8 + store { { %TName_Pair_String_ByStr20* (i8*, [20 x i8]*)*, i8* } (i8*, %String)*, i8* } %"$tf_call_280", { { %TName_Pair_String_ByStr20* (i8*, [20 x i8]*)*, i8* } (i8*, %String)*, i8* }* %"$retval_34", align 8, !dbg !9 + %"$$retval_34_281" = load { { %TName_Pair_String_ByStr20* (i8*, [20 x i8]*)*, i8* } (i8*, %String)*, i8* }, { { %TName_Pair_String_ByStr20* (i8*, [20 x i8]*)*, i8* } (i8*, %String)*, i8* }* %"$retval_34", align 8 + ret { { %TName_Pair_String_ByStr20* (i8*, [20 x i8]*)*, i8* } (i8*, %String)*, i8* } %"$$retval_34_281" } define internal { i8*, i8* }* @"$fundef_31"(%"$$fundef_31_env_99"* %0) !dbg !10 { entry: - %"$$fundef_31_env_tf_240" = getelementptr inbounds %"$$fundef_31_env_99", %"$$fundef_31_env_99"* %0, i32 0, i32 0 - %"$tf_envload_241" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_31_env_tf_240", align 8 + %"$$fundef_31_env_tf_244" = getelementptr inbounds %"$$fundef_31_env_99", %"$$fundef_31_env_99"* %0, i32 0, i32 0 + %"$tf_envload_245" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_31_env_tf_244", align 8 %tf = alloca { i8*, i8* }*, align 8 - store { i8*, i8* }* %"$tf_envload_241", { i8*, i8* }** %tf, align 8 + store { i8*, i8* }* %"$tf_envload_245", { i8*, i8* }** %tf, align 8 %"$retval_32" = alloca { i8*, i8* }*, 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 = %entry - call void @_out_of_gas() - br label %"$have_gas_245" - -"$have_gas_245": ; preds = %"$out_of_gas_244", %entry - %"$consume_246" = sub i64 %"$gasrem_242", 1 - store i64 %"$consume_246", i64* @_gasrem, align 8 - %"$$fundef_33_envp_247_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_33_envp_247_salloc" = call i8* @_salloc(i8* %"$$fundef_33_envp_247_load", i64 8) - %"$$fundef_33_envp_247" = bitcast i8* %"$$fundef_33_envp_247_salloc" to %"$$fundef_33_env_98"* - %"$$fundef_33_env_voidp_249" = bitcast %"$$fundef_33_env_98"* %"$$fundef_33_envp_247" to i8* - %"$$fundef_33_cloval_250" = insertvalue { { { %TName_Pair_String_ByStr20* (i8*, [20 x i8]*)*, i8* } (i8*, %String)*, i8* } (i8*)*, i8* } { { { %TName_Pair_String_ByStr20* (i8*, [20 x i8]*)*, i8* } (i8*, %String)*, i8* } (i8*)* bitcast ({ { %TName_Pair_String_ByStr20* (i8*, [20 x i8]*)*, i8* } (i8*, %String)*, i8* } (%"$$fundef_33_env_98"*)* @"$fundef_33" to { { %TName_Pair_String_ByStr20* (i8*, [20 x i8]*)*, i8* } (i8*, %String)*, i8* } (i8*)*), i8* undef }, i8* %"$$fundef_33_env_voidp_249", 1 - %"$$fundef_33_env_tf_251" = getelementptr inbounds %"$$fundef_33_env_98", %"$$fundef_33_env_98"* %"$$fundef_33_envp_247", i32 0, i32 0 - %"$tf_252" = load { i8*, i8* }*, { i8*, i8* }** %tf, align 8 - store { i8*, i8* }* %"$tf_252", { i8*, i8* }** %"$$fundef_33_env_tf_251", align 8 - %"$dyndisp_table_253_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$dyndisp_table_253_salloc_salloc" = call i8* @_salloc(i8* %"$dyndisp_table_253_salloc_load", i64 64) - %"$dyndisp_table_253_salloc" = bitcast i8* %"$dyndisp_table_253_salloc_salloc" to [4 x { i8*, i8* }]* - %"$dyndisp_table_253" = bitcast [4 x { i8*, i8* }]* %"$dyndisp_table_253_salloc" to { i8*, i8* }* - %"$dyndisp_gep_254" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_253", i32 3 - %"$dyndisp_pcast_255" = bitcast { i8*, i8* }* %"$dyndisp_gep_254" to { { { %TName_Pair_String_ByStr20* (i8*, [20 x i8]*)*, i8* } (i8*, %String)*, i8* } (i8*)*, i8* }* - store { { { %TName_Pair_String_ByStr20* (i8*, [20 x i8]*)*, i8* } (i8*, %String)*, i8* } (i8*)*, i8* } %"$$fundef_33_cloval_250", { { { %TName_Pair_String_ByStr20* (i8*, [20 x i8]*)*, i8* } (i8*, %String)*, i8* } (i8*)*, i8* }* %"$dyndisp_pcast_255", align 8 - store { i8*, i8* }* %"$dyndisp_table_253", { i8*, i8* }** %"$retval_32", align 8, !dbg !11 - %"$$retval_32_256" = load { i8*, i8* }*, { i8*, i8* }** %"$retval_32", align 8 - ret { i8*, i8* }* %"$$retval_32_256" + %"$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 = %entry + call void @_out_of_gas() + br label %"$have_gas_249" + +"$have_gas_249": ; preds = %"$out_of_gas_248", %entry + %"$consume_250" = sub i64 %"$gasrem_246", 1 + store i64 %"$consume_250", i64* @_gasrem, align 8 + %"$$fundef_33_envp_251_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_33_envp_251_salloc" = call i8* @_salloc(i8* %"$$fundef_33_envp_251_load", i64 8) + %"$$fundef_33_envp_251" = bitcast i8* %"$$fundef_33_envp_251_salloc" to %"$$fundef_33_env_98"* + %"$$fundef_33_env_voidp_253" = bitcast %"$$fundef_33_env_98"* %"$$fundef_33_envp_251" to i8* + %"$$fundef_33_cloval_254" = insertvalue { { { %TName_Pair_String_ByStr20* (i8*, [20 x i8]*)*, i8* } (i8*, %String)*, i8* } (i8*)*, i8* } { { { %TName_Pair_String_ByStr20* (i8*, [20 x i8]*)*, i8* } (i8*, %String)*, i8* } (i8*)* bitcast ({ { %TName_Pair_String_ByStr20* (i8*, [20 x i8]*)*, i8* } (i8*, %String)*, i8* } (%"$$fundef_33_env_98"*)* @"$fundef_33" to { { %TName_Pair_String_ByStr20* (i8*, [20 x i8]*)*, i8* } (i8*, %String)*, i8* } (i8*)*), i8* undef }, i8* %"$$fundef_33_env_voidp_253", 1 + %"$$fundef_33_env_tf_255" = getelementptr inbounds %"$$fundef_33_env_98", %"$$fundef_33_env_98"* %"$$fundef_33_envp_251", i32 0, i32 0 + %"$tf_256" = load { i8*, i8* }*, { i8*, i8* }** %tf, align 8 + store { i8*, i8* }* %"$tf_256", { i8*, i8* }** %"$$fundef_33_env_tf_255", align 8 + %"$dyndisp_table_257_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$dyndisp_table_257_salloc_salloc" = call i8* @_salloc(i8* %"$dyndisp_table_257_salloc_load", i64 64) + %"$dyndisp_table_257_salloc" = bitcast i8* %"$dyndisp_table_257_salloc_salloc" to [4 x { i8*, i8* }]* + %"$dyndisp_table_257" = bitcast [4 x { i8*, i8* }]* %"$dyndisp_table_257_salloc" to { i8*, i8* }* + %"$dyndisp_gep_258" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_257", i32 3 + %"$dyndisp_pcast_259" = bitcast { i8*, i8* }* %"$dyndisp_gep_258" to { { { %TName_Pair_String_ByStr20* (i8*, [20 x i8]*)*, i8* } (i8*, %String)*, i8* } (i8*)*, i8* }* + store { { { %TName_Pair_String_ByStr20* (i8*, [20 x i8]*)*, i8* } (i8*, %String)*, i8* } (i8*)*, i8* } %"$$fundef_33_cloval_254", { { { %TName_Pair_String_ByStr20* (i8*, [20 x i8]*)*, i8* } (i8*, %String)*, i8* } (i8*)*, i8* }* %"$dyndisp_pcast_259", align 8 + store { i8*, i8* }* %"$dyndisp_table_257", { i8*, i8* }** %"$retval_32", align 8, !dbg !11 + %"$$retval_32_260" = load { i8*, i8* }*, { i8*, i8* }** %"$retval_32", align 8 + ret { i8*, i8* }* %"$$retval_32_260" } define internal { { %TName_Pair_Uint32_Uint64* (i8*, %Uint64)*, i8* } (i8*, %Uint32)*, i8* } @"$fundef_29"(%"$$fundef_29_env_100"* %0) !dbg !12 { entry: - %"$$fundef_29_env_tf_219" = getelementptr inbounds %"$$fundef_29_env_100", %"$$fundef_29_env_100"* %0, i32 0, i32 0 - %"$tf_envload_220" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_29_env_tf_219", align 8 + %"$$fundef_29_env_tf_223" = getelementptr inbounds %"$$fundef_29_env_100", %"$$fundef_29_env_100"* %0, i32 0, i32 0 + %"$tf_envload_224" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_29_env_tf_223", align 8 %tf = alloca { i8*, i8* }*, align 8 - store { i8*, i8* }* %"$tf_envload_220", { i8*, i8* }** %tf, align 8 + store { i8*, i8* }* %"$tf_envload_224", { i8*, i8* }** %tf, align 8 %"$retval_30" = alloca { { %TName_Pair_Uint32_Uint64* (i8*, %Uint64)*, i8* } (i8*, %Uint32)*, i8* }, 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 = %entry - call void @_out_of_gas() - br label %"$have_gas_224" - -"$have_gas_224": ; preds = %"$out_of_gas_223", %entry - %"$consume_225" = sub i64 %"$gasrem_221", 1 - store i64 %"$consume_225", i64* @_gasrem, align 8 - %"$tf_226" = load { i8*, i8* }*, { i8*, i8* }** %tf, align 8 - %"$tf_227" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$tf_226", i32 0 - %"$tf_228" = bitcast { i8*, i8* }* %"$tf_227" to { { i8*, i8* }* (i8*)*, i8* }* - %"$tf_229" = load { { i8*, i8* }* (i8*)*, i8* }, { { i8*, i8* }* (i8*)*, i8* }* %"$tf_228", align 8 - %"$tf_fptr_230" = extractvalue { { i8*, i8* }* (i8*)*, i8* } %"$tf_229", 0 - %"$tf_envptr_231" = extractvalue { { i8*, i8* }* (i8*)*, i8* } %"$tf_229", 1 - %"$tf_call_232" = call { i8*, i8* }* %"$tf_fptr_230"(i8* %"$tf_envptr_231"), !dbg !13 - %"$tf_233" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$tf_call_232", i32 1 - %"$tf_234" = bitcast { i8*, i8* }* %"$tf_233" to { { { %TName_Pair_Uint32_Uint64* (i8*, %Uint64)*, i8* } (i8*, %Uint32)*, i8* } (i8*)*, i8* }* - %"$tf_235" = load { { { %TName_Pair_Uint32_Uint64* (i8*, %Uint64)*, i8* } (i8*, %Uint32)*, i8* } (i8*)*, i8* }, { { { %TName_Pair_Uint32_Uint64* (i8*, %Uint64)*, i8* } (i8*, %Uint32)*, i8* } (i8*)*, i8* }* %"$tf_234", align 8 - %"$tf_fptr_236" = extractvalue { { { %TName_Pair_Uint32_Uint64* (i8*, %Uint64)*, i8* } (i8*, %Uint32)*, i8* } (i8*)*, i8* } %"$tf_235", 0 - %"$tf_envptr_237" = extractvalue { { { %TName_Pair_Uint32_Uint64* (i8*, %Uint64)*, i8* } (i8*, %Uint32)*, i8* } (i8*)*, i8* } %"$tf_235", 1 - %"$tf_call_238" = call { { %TName_Pair_Uint32_Uint64* (i8*, %Uint64)*, i8* } (i8*, %Uint32)*, i8* } %"$tf_fptr_236"(i8* %"$tf_envptr_237"), !dbg !13 - store { { %TName_Pair_Uint32_Uint64* (i8*, %Uint64)*, i8* } (i8*, %Uint32)*, i8* } %"$tf_call_238", { { %TName_Pair_Uint32_Uint64* (i8*, %Uint64)*, i8* } (i8*, %Uint32)*, i8* }* %"$retval_30", align 8, !dbg !14 - %"$$retval_30_239" = load { { %TName_Pair_Uint32_Uint64* (i8*, %Uint64)*, i8* } (i8*, %Uint32)*, i8* }, { { %TName_Pair_Uint32_Uint64* (i8*, %Uint64)*, i8* } (i8*, %Uint32)*, i8* }* %"$retval_30", align 8 - ret { { %TName_Pair_Uint32_Uint64* (i8*, %Uint64)*, i8* } (i8*, %Uint32)*, i8* } %"$$retval_30_239" + %"$gasrem_225" = load i64, i64* @_gasrem, align 8 + %"$gascmp_226" = icmp ugt i64 1, %"$gasrem_225" + br i1 %"$gascmp_226", label %"$out_of_gas_227", label %"$have_gas_228" + +"$out_of_gas_227": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_228" + +"$have_gas_228": ; preds = %"$out_of_gas_227", %entry + %"$consume_229" = sub i64 %"$gasrem_225", 1 + store i64 %"$consume_229", i64* @_gasrem, align 8 + %"$tf_230" = load { i8*, i8* }*, { i8*, i8* }** %tf, align 8 + %"$tf_231" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$tf_230", i32 0 + %"$tf_232" = bitcast { i8*, i8* }* %"$tf_231" to { { i8*, i8* }* (i8*)*, i8* }* + %"$tf_233" = load { { i8*, i8* }* (i8*)*, i8* }, { { i8*, i8* }* (i8*)*, i8* }* %"$tf_232", align 8 + %"$tf_fptr_234" = extractvalue { { i8*, i8* }* (i8*)*, i8* } %"$tf_233", 0 + %"$tf_envptr_235" = extractvalue { { i8*, i8* }* (i8*)*, i8* } %"$tf_233", 1 + %"$tf_call_236" = call { i8*, i8* }* %"$tf_fptr_234"(i8* %"$tf_envptr_235"), !dbg !13 + %"$tf_237" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$tf_call_236", i32 1 + %"$tf_238" = bitcast { i8*, i8* }* %"$tf_237" to { { { %TName_Pair_Uint32_Uint64* (i8*, %Uint64)*, i8* } (i8*, %Uint32)*, i8* } (i8*)*, i8* }* + %"$tf_239" = load { { { %TName_Pair_Uint32_Uint64* (i8*, %Uint64)*, i8* } (i8*, %Uint32)*, i8* } (i8*)*, i8* }, { { { %TName_Pair_Uint32_Uint64* (i8*, %Uint64)*, i8* } (i8*, %Uint32)*, i8* } (i8*)*, i8* }* %"$tf_238", align 8 + %"$tf_fptr_240" = extractvalue { { { %TName_Pair_Uint32_Uint64* (i8*, %Uint64)*, i8* } (i8*, %Uint32)*, i8* } (i8*)*, i8* } %"$tf_239", 0 + %"$tf_envptr_241" = extractvalue { { { %TName_Pair_Uint32_Uint64* (i8*, %Uint64)*, i8* } (i8*, %Uint32)*, i8* } (i8*)*, i8* } %"$tf_239", 1 + %"$tf_call_242" = call { { %TName_Pair_Uint32_Uint64* (i8*, %Uint64)*, i8* } (i8*, %Uint32)*, i8* } %"$tf_fptr_240"(i8* %"$tf_envptr_241"), !dbg !13 + store { { %TName_Pair_Uint32_Uint64* (i8*, %Uint64)*, i8* } (i8*, %Uint32)*, i8* } %"$tf_call_242", { { %TName_Pair_Uint32_Uint64* (i8*, %Uint64)*, i8* } (i8*, %Uint32)*, i8* }* %"$retval_30", align 8, !dbg !14 + %"$$retval_30_243" = load { { %TName_Pair_Uint32_Uint64* (i8*, %Uint64)*, i8* } (i8*, %Uint32)*, i8* }, { { %TName_Pair_Uint32_Uint64* (i8*, %Uint64)*, i8* } (i8*, %Uint32)*, i8* }* %"$retval_30", align 8 + ret { { %TName_Pair_Uint32_Uint64* (i8*, %Uint64)*, i8* } (i8*, %Uint32)*, i8* } %"$$retval_30_243" } define internal { i8*, i8* }* @"$fundef_27"(%"$$fundef_27_env_101"* %0) !dbg !15 { entry: - %"$$fundef_27_env_tf_202" = getelementptr inbounds %"$$fundef_27_env_101", %"$$fundef_27_env_101"* %0, i32 0, i32 0 - %"$tf_envload_203" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_27_env_tf_202", align 8 + %"$$fundef_27_env_tf_206" = getelementptr inbounds %"$$fundef_27_env_101", %"$$fundef_27_env_101"* %0, i32 0, i32 0 + %"$tf_envload_207" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_27_env_tf_206", align 8 %tf = alloca { i8*, i8* }*, align 8 - store { i8*, i8* }* %"$tf_envload_203", { i8*, i8* }** %tf, align 8 + store { i8*, i8* }* %"$tf_envload_207", { i8*, i8* }** %tf, align 8 %"$retval_28" = alloca { i8*, i8* }*, 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 = %entry - call void @_out_of_gas() - br label %"$have_gas_207" - -"$have_gas_207": ; preds = %"$out_of_gas_206", %entry - %"$consume_208" = sub i64 %"$gasrem_204", 1 - store i64 %"$consume_208", i64* @_gasrem, align 8 - %"$$fundef_29_envp_209_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_29_envp_209_salloc" = call i8* @_salloc(i8* %"$$fundef_29_envp_209_load", i64 8) - %"$$fundef_29_envp_209" = bitcast i8* %"$$fundef_29_envp_209_salloc" to %"$$fundef_29_env_100"* - %"$$fundef_29_env_voidp_211" = bitcast %"$$fundef_29_env_100"* %"$$fundef_29_envp_209" to i8* - %"$$fundef_29_cloval_212" = insertvalue { { { %TName_Pair_Uint32_Uint64* (i8*, %Uint64)*, i8* } (i8*, %Uint32)*, i8* } (i8*)*, i8* } { { { %TName_Pair_Uint32_Uint64* (i8*, %Uint64)*, i8* } (i8*, %Uint32)*, i8* } (i8*)* bitcast ({ { %TName_Pair_Uint32_Uint64* (i8*, %Uint64)*, i8* } (i8*, %Uint32)*, i8* } (%"$$fundef_29_env_100"*)* @"$fundef_29" to { { %TName_Pair_Uint32_Uint64* (i8*, %Uint64)*, i8* } (i8*, %Uint32)*, i8* } (i8*)*), i8* undef }, i8* %"$$fundef_29_env_voidp_211", 1 - %"$$fundef_29_env_tf_213" = getelementptr inbounds %"$$fundef_29_env_100", %"$$fundef_29_env_100"* %"$$fundef_29_envp_209", i32 0, i32 0 - %"$tf_214" = load { i8*, i8* }*, { i8*, i8* }** %tf, align 8 - store { i8*, i8* }* %"$tf_214", { i8*, i8* }** %"$$fundef_29_env_tf_213", align 8 - %"$dyndisp_table_215_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$dyndisp_table_215_salloc_salloc" = call i8* @_salloc(i8* %"$dyndisp_table_215_salloc_load", i64 64) - %"$dyndisp_table_215_salloc" = bitcast i8* %"$dyndisp_table_215_salloc_salloc" to [4 x { i8*, i8* }]* - %"$dyndisp_table_215" = bitcast [4 x { i8*, i8* }]* %"$dyndisp_table_215_salloc" to { i8*, i8* }* - %"$dyndisp_gep_216" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_215", i32 1 - %"$dyndisp_pcast_217" = bitcast { i8*, i8* }* %"$dyndisp_gep_216" to { { { %TName_Pair_Uint32_Uint64* (i8*, %Uint64)*, i8* } (i8*, %Uint32)*, i8* } (i8*)*, i8* }* - store { { { %TName_Pair_Uint32_Uint64* (i8*, %Uint64)*, i8* } (i8*, %Uint32)*, i8* } (i8*)*, i8* } %"$$fundef_29_cloval_212", { { { %TName_Pair_Uint32_Uint64* (i8*, %Uint64)*, i8* } (i8*, %Uint32)*, i8* } (i8*)*, i8* }* %"$dyndisp_pcast_217", align 8 - store { i8*, i8* }* %"$dyndisp_table_215", { i8*, i8* }** %"$retval_28", align 8, !dbg !16 - %"$$retval_28_218" = load { i8*, i8* }*, { i8*, i8* }** %"$retval_28", align 8 - ret { i8*, i8* }* %"$$retval_28_218" + %"$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 = %entry + call void @_out_of_gas() + br label %"$have_gas_211" + +"$have_gas_211": ; preds = %"$out_of_gas_210", %entry + %"$consume_212" = sub i64 %"$gasrem_208", 1 + store i64 %"$consume_212", i64* @_gasrem, align 8 + %"$$fundef_29_envp_213_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_29_envp_213_salloc" = call i8* @_salloc(i8* %"$$fundef_29_envp_213_load", i64 8) + %"$$fundef_29_envp_213" = bitcast i8* %"$$fundef_29_envp_213_salloc" to %"$$fundef_29_env_100"* + %"$$fundef_29_env_voidp_215" = bitcast %"$$fundef_29_env_100"* %"$$fundef_29_envp_213" to i8* + %"$$fundef_29_cloval_216" = insertvalue { { { %TName_Pair_Uint32_Uint64* (i8*, %Uint64)*, i8* } (i8*, %Uint32)*, i8* } (i8*)*, i8* } { { { %TName_Pair_Uint32_Uint64* (i8*, %Uint64)*, i8* } (i8*, %Uint32)*, i8* } (i8*)* bitcast ({ { %TName_Pair_Uint32_Uint64* (i8*, %Uint64)*, i8* } (i8*, %Uint32)*, i8* } (%"$$fundef_29_env_100"*)* @"$fundef_29" to { { %TName_Pair_Uint32_Uint64* (i8*, %Uint64)*, i8* } (i8*, %Uint32)*, i8* } (i8*)*), i8* undef }, i8* %"$$fundef_29_env_voidp_215", 1 + %"$$fundef_29_env_tf_217" = getelementptr inbounds %"$$fundef_29_env_100", %"$$fundef_29_env_100"* %"$$fundef_29_envp_213", i32 0, i32 0 + %"$tf_218" = load { i8*, i8* }*, { i8*, i8* }** %tf, align 8 + store { i8*, i8* }* %"$tf_218", { i8*, i8* }** %"$$fundef_29_env_tf_217", align 8 + %"$dyndisp_table_219_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$dyndisp_table_219_salloc_salloc" = call i8* @_salloc(i8* %"$dyndisp_table_219_salloc_load", i64 64) + %"$dyndisp_table_219_salloc" = bitcast i8* %"$dyndisp_table_219_salloc_salloc" to [4 x { i8*, i8* }]* + %"$dyndisp_table_219" = bitcast [4 x { i8*, i8* }]* %"$dyndisp_table_219_salloc" to { i8*, i8* }* + %"$dyndisp_gep_220" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_219", i32 1 + %"$dyndisp_pcast_221" = bitcast { i8*, i8* }* %"$dyndisp_gep_220" to { { { %TName_Pair_Uint32_Uint64* (i8*, %Uint64)*, i8* } (i8*, %Uint32)*, i8* } (i8*)*, i8* }* + store { { { %TName_Pair_Uint32_Uint64* (i8*, %Uint64)*, i8* } (i8*, %Uint32)*, i8* } (i8*)*, i8* } %"$$fundef_29_cloval_216", { { { %TName_Pair_Uint32_Uint64* (i8*, %Uint64)*, i8* } (i8*, %Uint32)*, i8* } (i8*)*, i8* }* %"$dyndisp_pcast_221", align 8 + store { i8*, i8* }* %"$dyndisp_table_219", { i8*, i8* }** %"$retval_28", align 8, !dbg !16 + %"$$retval_28_222" = load { i8*, i8* }*, { i8*, i8* }** %"$retval_28", align 8 + ret { i8*, i8* }* %"$$retval_28_222" } define internal %TName_Pair_String_ByStr20* @"$fundef_25"(%"$$fundef_25_env_102"* %0, [20 x i8]* %1) !dbg !17 { entry: + %"$b_205" = alloca [20 x i8]*, align 8 + store [20 x i8]* %1, [20 x i8]** %"$b_205", align 8 + call void @llvm.dbg.declare(metadata [20 x i8]** %"$b_205", metadata !18, metadata !DIExpression()), !dbg !20 %b = load [20 x i8], [20 x i8]* %1, align 1 - %"$$fundef_25_env_a_188" = getelementptr inbounds %"$$fundef_25_env_102", %"$$fundef_25_env_102"* %0, i32 0, i32 0 - %"$a_envload_189" = load %String, %String* %"$$fundef_25_env_a_188", align 8 + %"$$fundef_25_env_a_191" = getelementptr inbounds %"$$fundef_25_env_102", %"$$fundef_25_env_102"* %0, i32 0, i32 0 + %"$a_envload_192" = load %String, %String* %"$$fundef_25_env_a_191", align 8 %a = alloca %String, align 8 - store %String %"$a_envload_189", %String* %a, align 8 + store %String %"$a_envload_192", %String* %a, align 8 %"$retval_26" = alloca %TName_Pair_String_ByStr20*, 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 - %"$a_195" = load %String, %String* %a, align 8 - %"$adtval_196_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_196_salloc" = call i8* @_salloc(i8* %"$adtval_196_load", i64 37) - %"$adtval_196" = bitcast i8* %"$adtval_196_salloc" to %CName_Pair_String_ByStr20* - %"$adtgep_197" = getelementptr inbounds %CName_Pair_String_ByStr20, %CName_Pair_String_ByStr20* %"$adtval_196", i32 0, i32 0 - store i8 0, i8* %"$adtgep_197", align 1 - %"$adtgep_198" = getelementptr inbounds %CName_Pair_String_ByStr20, %CName_Pair_String_ByStr20* %"$adtval_196", i32 0, i32 1 - store %String %"$a_195", %String* %"$adtgep_198", align 8 - %"$adtgep_199" = getelementptr inbounds %CName_Pair_String_ByStr20, %CName_Pair_String_ByStr20* %"$adtval_196", i32 0, i32 2 - store [20 x i8] %b, [20 x i8]* %"$adtgep_199", align 1 - %"$adtptr_200" = bitcast %CName_Pair_String_ByStr20* %"$adtval_196" to %TName_Pair_String_ByStr20* - store %TName_Pair_String_ByStr20* %"$adtptr_200", %TName_Pair_String_ByStr20** %"$retval_26", align 8, !dbg !18 - %"$$retval_26_201" = load %TName_Pair_String_ByStr20*, %TName_Pair_String_ByStr20** %"$retval_26", align 8 - ret %TName_Pair_String_ByStr20* %"$$retval_26_201" + call void @llvm.dbg.declare(metadata %TName_Pair_String_ByStr20** %"$retval_26", metadata !21, metadata !DIExpression()), !dbg !24 + %"$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 = %entry + call void @_out_of_gas() + br label %"$have_gas_196" + +"$have_gas_196": ; preds = %"$out_of_gas_195", %entry + %"$consume_197" = sub i64 %"$gasrem_193", 1 + store i64 %"$consume_197", i64* @_gasrem, align 8 + %"$a_198" = load %String, %String* %a, align 8 + %"$adtval_199_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_199_salloc" = call i8* @_salloc(i8* %"$adtval_199_load", i64 37) + %"$adtval_199" = bitcast i8* %"$adtval_199_salloc" to %CName_Pair_String_ByStr20* + %"$adtgep_200" = getelementptr inbounds %CName_Pair_String_ByStr20, %CName_Pair_String_ByStr20* %"$adtval_199", i32 0, i32 0 + store i8 0, i8* %"$adtgep_200", align 1 + %"$adtgep_201" = getelementptr inbounds %CName_Pair_String_ByStr20, %CName_Pair_String_ByStr20* %"$adtval_199", i32 0, i32 1 + store %String %"$a_198", %String* %"$adtgep_201", align 8 + %"$adtgep_202" = getelementptr inbounds %CName_Pair_String_ByStr20, %CName_Pair_String_ByStr20* %"$adtval_199", i32 0, i32 2 + store [20 x i8] %b, [20 x i8]* %"$adtgep_202", align 1 + %"$adtptr_203" = bitcast %CName_Pair_String_ByStr20* %"$adtval_199" to %TName_Pair_String_ByStr20* + store %TName_Pair_String_ByStr20* %"$adtptr_203", %TName_Pair_String_ByStr20** %"$retval_26", align 8, !dbg !24 + %"$$retval_26_204" = load %TName_Pair_String_ByStr20*, %TName_Pair_String_ByStr20** %"$retval_26", align 8 + ret %TName_Pair_String_ByStr20* %"$$retval_26_204" } -define internal { %TName_Pair_String_ByStr20* (i8*, [20 x i8]*)*, i8* } @"$fundef_23"(%"$$fundef_23_env_103"* %0, %String %1) !dbg !19 { +define internal { %TName_Pair_String_ByStr20* (i8*, [20 x i8]*)*, i8* } @"$fundef_23"(%"$$fundef_23_env_103"* %0, %String %1) !dbg !25 { entry: + %"$a_190" = alloca %String, align 8 + store %String %1, %String* %"$a_190", align 8 + call void @llvm.dbg.declare(metadata %String* %"$a_190", metadata !26, metadata !DIExpression()), !dbg !28 %"$retval_24" = alloca { %TName_Pair_String_ByStr20* (i8*, [20 x i8]*)*, i8* }, align 8 - %"$gasrem_177" = load i64, i64* @_gasrem, align 8 - %"$gascmp_178" = icmp ugt i64 1, %"$gasrem_177" - br i1 %"$gascmp_178", label %"$out_of_gas_179", label %"$have_gas_180" - -"$out_of_gas_179": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_180" - -"$have_gas_180": ; preds = %"$out_of_gas_179", %entry - %"$consume_181" = sub i64 %"$gasrem_177", 1 - store i64 %"$consume_181", i64* @_gasrem, align 8 - %"$$fundef_25_envp_182_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_25_envp_182_salloc" = call i8* @_salloc(i8* %"$$fundef_25_envp_182_load", i64 16) - %"$$fundef_25_envp_182" = bitcast i8* %"$$fundef_25_envp_182_salloc" to %"$$fundef_25_env_102"* - %"$$fundef_25_env_voidp_184" = bitcast %"$$fundef_25_env_102"* %"$$fundef_25_envp_182" to i8* - %"$$fundef_25_cloval_185" = insertvalue { %TName_Pair_String_ByStr20* (i8*, [20 x i8]*)*, i8* } { %TName_Pair_String_ByStr20* (i8*, [20 x i8]*)* bitcast (%TName_Pair_String_ByStr20* (%"$$fundef_25_env_102"*, [20 x i8]*)* @"$fundef_25" to %TName_Pair_String_ByStr20* (i8*, [20 x i8]*)*), i8* undef }, i8* %"$$fundef_25_env_voidp_184", 1 - %"$$fundef_25_env_a_186" = getelementptr inbounds %"$$fundef_25_env_102", %"$$fundef_25_env_102"* %"$$fundef_25_envp_182", i32 0, i32 0 - store %String %1, %String* %"$$fundef_25_env_a_186", align 8 - store { %TName_Pair_String_ByStr20* (i8*, [20 x i8]*)*, i8* } %"$$fundef_25_cloval_185", { %TName_Pair_String_ByStr20* (i8*, [20 x i8]*)*, i8* }* %"$retval_24", align 8, !dbg !20 - %"$$retval_24_187" = load { %TName_Pair_String_ByStr20* (i8*, [20 x i8]*)*, i8* }, { %TName_Pair_String_ByStr20* (i8*, [20 x i8]*)*, i8* }* %"$retval_24", align 8 - ret { %TName_Pair_String_ByStr20* (i8*, [20 x i8]*)*, i8* } %"$$retval_24_187" + %"$gasrem_179" = load i64, i64* @_gasrem, align 8 + %"$gascmp_180" = icmp ugt i64 1, %"$gasrem_179" + br i1 %"$gascmp_180", label %"$out_of_gas_181", label %"$have_gas_182" + +"$out_of_gas_181": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_182" + +"$have_gas_182": ; preds = %"$out_of_gas_181", %entry + %"$consume_183" = sub i64 %"$gasrem_179", 1 + store i64 %"$consume_183", i64* @_gasrem, align 8 + %"$$fundef_25_envp_184_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_25_envp_184_salloc" = call i8* @_salloc(i8* %"$$fundef_25_envp_184_load", i64 16) + %"$$fundef_25_envp_184" = bitcast i8* %"$$fundef_25_envp_184_salloc" to %"$$fundef_25_env_102"* + %"$$fundef_25_env_voidp_186" = bitcast %"$$fundef_25_env_102"* %"$$fundef_25_envp_184" to i8* + %"$$fundef_25_cloval_187" = insertvalue { %TName_Pair_String_ByStr20* (i8*, [20 x i8]*)*, i8* } { %TName_Pair_String_ByStr20* (i8*, [20 x i8]*)* bitcast (%TName_Pair_String_ByStr20* (%"$$fundef_25_env_102"*, [20 x i8]*)* @"$fundef_25" to %TName_Pair_String_ByStr20* (i8*, [20 x i8]*)*), i8* undef }, i8* %"$$fundef_25_env_voidp_186", 1 + %"$$fundef_25_env_a_188" = getelementptr inbounds %"$$fundef_25_env_102", %"$$fundef_25_env_102"* %"$$fundef_25_envp_184", i32 0, i32 0 + store %String %1, %String* %"$$fundef_25_env_a_188", align 8 + store { %TName_Pair_String_ByStr20* (i8*, [20 x i8]*)*, i8* } %"$$fundef_25_cloval_187", { %TName_Pair_String_ByStr20* (i8*, [20 x i8]*)*, i8* }* %"$retval_24", align 8, !dbg !29 + %"$$retval_24_189" = load { %TName_Pair_String_ByStr20* (i8*, [20 x i8]*)*, i8* }, { %TName_Pair_String_ByStr20* (i8*, [20 x i8]*)*, i8* }* %"$retval_24", align 8 + ret { %TName_Pair_String_ByStr20* (i8*, [20 x i8]*)*, i8* } %"$$retval_24_189" } -define internal { { %TName_Pair_String_ByStr20* (i8*, [20 x i8]*)*, i8* } (i8*, %String)*, i8* } @"$fundef_21"(%"$$fundef_21_env_104"* %0) !dbg !21 { +define internal { { %TName_Pair_String_ByStr20* (i8*, [20 x i8]*)*, i8* } (i8*, %String)*, i8* } @"$fundef_21"(%"$$fundef_21_env_104"* %0) !dbg !30 { entry: %"$retval_22" = alloca { { %TName_Pair_String_ByStr20* (i8*, [20 x i8]*)*, i8* } (i8*, %String)*, i8* }, align 8 - %"$gasrem_168" = load i64, i64* @_gasrem, align 8 - %"$gascmp_169" = icmp ugt i64 1, %"$gasrem_168" - br i1 %"$gascmp_169", label %"$out_of_gas_170", label %"$have_gas_171" + %"$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_170": ; preds = %entry +"$out_of_gas_172": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_171" - -"$have_gas_171": ; preds = %"$out_of_gas_170", %entry - %"$consume_172" = sub i64 %"$gasrem_168", 1 - store i64 %"$consume_172", i64* @_gasrem, align 8 - store { { %TName_Pair_String_ByStr20* (i8*, [20 x i8]*)*, i8* } (i8*, %String)*, i8* } { { %TName_Pair_String_ByStr20* (i8*, [20 x i8]*)*, i8* } (i8*, %String)* bitcast ({ %TName_Pair_String_ByStr20* (i8*, [20 x i8]*)*, i8* } (%"$$fundef_23_env_103"*, %String)* @"$fundef_23" to { %TName_Pair_String_ByStr20* (i8*, [20 x i8]*)*, i8* } (i8*, %String)*), i8* null }, { { %TName_Pair_String_ByStr20* (i8*, [20 x i8]*)*, i8* } (i8*, %String)*, i8* }* %"$retval_22", align 8, !dbg !22 - %"$$retval_22_176" = load { { %TName_Pair_String_ByStr20* (i8*, [20 x i8]*)*, i8* } (i8*, %String)*, i8* }, { { %TName_Pair_String_ByStr20* (i8*, [20 x i8]*)*, i8* } (i8*, %String)*, i8* }* %"$retval_22", align 8 - ret { { %TName_Pair_String_ByStr20* (i8*, [20 x i8]*)*, i8* } (i8*, %String)*, i8* } %"$$retval_22_176" + br label %"$have_gas_173" + +"$have_gas_173": ; preds = %"$out_of_gas_172", %entry + %"$consume_174" = sub i64 %"$gasrem_170", 1 + store i64 %"$consume_174", i64* @_gasrem, align 8 + store { { %TName_Pair_String_ByStr20* (i8*, [20 x i8]*)*, i8* } (i8*, %String)*, i8* } { { %TName_Pair_String_ByStr20* (i8*, [20 x i8]*)*, i8* } (i8*, %String)* bitcast ({ %TName_Pair_String_ByStr20* (i8*, [20 x i8]*)*, i8* } (%"$$fundef_23_env_103"*, %String)* @"$fundef_23" to { %TName_Pair_String_ByStr20* (i8*, [20 x i8]*)*, i8* } (i8*, %String)*), i8* null }, { { %TName_Pair_String_ByStr20* (i8*, [20 x i8]*)*, i8* } (i8*, %String)*, i8* }* %"$retval_22", align 8, !dbg !31 + %"$$retval_22_178" = load { { %TName_Pair_String_ByStr20* (i8*, [20 x i8]*)*, i8* } (i8*, %String)*, i8* }, { { %TName_Pair_String_ByStr20* (i8*, [20 x i8]*)*, i8* } (i8*, %String)*, i8* }* %"$retval_22", align 8 + ret { { %TName_Pair_String_ByStr20* (i8*, [20 x i8]*)*, i8* } (i8*, %String)*, i8* } %"$$retval_22_178" } -define internal { i8*, i8* }* @"$fundef_19"(%"$$fundef_19_env_105"* %0) !dbg !23 { +define internal { i8*, i8* }* @"$fundef_19"(%"$$fundef_19_env_105"* %0) !dbg !32 { entry: %"$retval_20" = alloca { 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" - -"$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", 1 - store i64 %"$consume_160", i64* @_gasrem, align 8 - %"$dyndisp_table_164_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$dyndisp_table_164_salloc_salloc" = call i8* @_salloc(i8* %"$dyndisp_table_164_salloc_load", i64 64) - %"$dyndisp_table_164_salloc" = bitcast i8* %"$dyndisp_table_164_salloc_salloc" to [4 x { i8*, i8* }]* - %"$dyndisp_table_164" = bitcast [4 x { i8*, i8* }]* %"$dyndisp_table_164_salloc" to { i8*, i8* }* - %"$dyndisp_gep_165" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_164", i32 3 - %"$dyndisp_pcast_166" = bitcast { i8*, i8* }* %"$dyndisp_gep_165" to { { { %TName_Pair_String_ByStr20* (i8*, [20 x i8]*)*, i8* } (i8*, %String)*, i8* } (i8*)*, i8* }* - store { { { %TName_Pair_String_ByStr20* (i8*, [20 x i8]*)*, i8* } (i8*, %String)*, i8* } (i8*)*, i8* } { { { %TName_Pair_String_ByStr20* (i8*, [20 x i8]*)*, i8* } (i8*, %String)*, i8* } (i8*)* bitcast ({ { %TName_Pair_String_ByStr20* (i8*, [20 x i8]*)*, i8* } (i8*, %String)*, i8* } (%"$$fundef_21_env_104"*)* @"$fundef_21" to { { %TName_Pair_String_ByStr20* (i8*, [20 x i8]*)*, i8* } (i8*, %String)*, i8* } (i8*)*), i8* null }, { { { %TName_Pair_String_ByStr20* (i8*, [20 x i8]*)*, i8* } (i8*, %String)*, i8* } (i8*)*, i8* }* %"$dyndisp_pcast_166", align 8 - store { i8*, i8* }* %"$dyndisp_table_164", { i8*, i8* }** %"$retval_20", align 8, !dbg !24 - %"$$retval_20_167" = load { i8*, i8* }*, { i8*, i8* }** %"$retval_20", align 8 - ret { i8*, i8* }* %"$$retval_20_167" + %"$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 + %"$dyndisp_table_166_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$dyndisp_table_166_salloc_salloc" = call i8* @_salloc(i8* %"$dyndisp_table_166_salloc_load", i64 64) + %"$dyndisp_table_166_salloc" = bitcast i8* %"$dyndisp_table_166_salloc_salloc" to [4 x { i8*, i8* }]* + %"$dyndisp_table_166" = bitcast [4 x { i8*, i8* }]* %"$dyndisp_table_166_salloc" to { i8*, i8* }* + %"$dyndisp_gep_167" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_166", i32 3 + %"$dyndisp_pcast_168" = bitcast { i8*, i8* }* %"$dyndisp_gep_167" to { { { %TName_Pair_String_ByStr20* (i8*, [20 x i8]*)*, i8* } (i8*, %String)*, i8* } (i8*)*, i8* }* + store { { { %TName_Pair_String_ByStr20* (i8*, [20 x i8]*)*, i8* } (i8*, %String)*, i8* } (i8*)*, i8* } { { { %TName_Pair_String_ByStr20* (i8*, [20 x i8]*)*, i8* } (i8*, %String)*, i8* } (i8*)* bitcast ({ { %TName_Pair_String_ByStr20* (i8*, [20 x i8]*)*, i8* } (i8*, %String)*, i8* } (%"$$fundef_21_env_104"*)* @"$fundef_21" to { { %TName_Pair_String_ByStr20* (i8*, [20 x i8]*)*, i8* } (i8*, %String)*, i8* } (i8*)*), i8* null }, { { { %TName_Pair_String_ByStr20* (i8*, [20 x i8]*)*, i8* } (i8*, %String)*, i8* } (i8*)*, i8* }* %"$dyndisp_pcast_168", align 8 + store { i8*, i8* }* %"$dyndisp_table_166", { i8*, i8* }** %"$retval_20", align 8, !dbg !33 + %"$$retval_20_169" = load { i8*, i8* }*, { i8*, i8* }** %"$retval_20", align 8 + ret { i8*, i8* }* %"$$retval_20_169" } -define internal %TName_Pair_Uint32_Uint64* @"$fundef_17"(%"$$fundef_17_env_106"* %0, %Uint64 %1) !dbg !25 { +define internal %TName_Pair_Uint32_Uint64* @"$fundef_17"(%"$$fundef_17_env_106"* %0, %Uint64 %1) !dbg !34 { entry: - %"$$fundef_17_env_a_142" = getelementptr inbounds %"$$fundef_17_env_106", %"$$fundef_17_env_106"* %0, i32 0, i32 0 - %"$a_envload_143" = load %Uint32, %Uint32* %"$$fundef_17_env_a_142", align 4 + %"$b_157" = alloca %Uint64, align 8 + store %Uint64 %1, %Uint64* %"$b_157", align 8 + call void @llvm.dbg.declare(metadata %Uint64* %"$b_157", metadata !35, metadata !DIExpression()), !dbg !37 + %"$$fundef_17_env_a_143" = getelementptr inbounds %"$$fundef_17_env_106", %"$$fundef_17_env_106"* %0, i32 0, i32 0 + %"$a_envload_144" = load %Uint32, %Uint32* %"$$fundef_17_env_a_143", align 4 %a = alloca %Uint32, align 8 - store %Uint32 %"$a_envload_143", %Uint32* %a, align 4 + store %Uint32 %"$a_envload_144", %Uint32* %a, align 4 %"$retval_18" = alloca %TName_Pair_Uint32_Uint64*, align 8 - %"$gasrem_144" = load i64, i64* @_gasrem, align 8 - %"$gascmp_145" = icmp ugt i64 1, %"$gasrem_144" - br i1 %"$gascmp_145", label %"$out_of_gas_146", label %"$have_gas_147" - -"$out_of_gas_146": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_147" - -"$have_gas_147": ; preds = %"$out_of_gas_146", %entry - %"$consume_148" = sub i64 %"$gasrem_144", 1 - store i64 %"$consume_148", i64* @_gasrem, align 8 - %"$a_149" = load %Uint32, %Uint32* %a, align 4 - %"$adtval_150_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_150_salloc" = call i8* @_salloc(i8* %"$adtval_150_load", i64 13) - %"$adtval_150" = bitcast i8* %"$adtval_150_salloc" to %CName_Pair_Uint32_Uint64* - %"$adtgep_151" = getelementptr inbounds %CName_Pair_Uint32_Uint64, %CName_Pair_Uint32_Uint64* %"$adtval_150", i32 0, i32 0 - store i8 0, i8* %"$adtgep_151", align 1 - %"$adtgep_152" = getelementptr inbounds %CName_Pair_Uint32_Uint64, %CName_Pair_Uint32_Uint64* %"$adtval_150", i32 0, i32 1 - store %Uint32 %"$a_149", %Uint32* %"$adtgep_152", align 4 - %"$adtgep_153" = getelementptr inbounds %CName_Pair_Uint32_Uint64, %CName_Pair_Uint32_Uint64* %"$adtval_150", i32 0, i32 2 - store %Uint64 %1, %Uint64* %"$adtgep_153", align 8 - %"$adtptr_154" = bitcast %CName_Pair_Uint32_Uint64* %"$adtval_150" to %TName_Pair_Uint32_Uint64* - store %TName_Pair_Uint32_Uint64* %"$adtptr_154", %TName_Pair_Uint32_Uint64** %"$retval_18", align 8, !dbg !26 - %"$$retval_18_155" = load %TName_Pair_Uint32_Uint64*, %TName_Pair_Uint32_Uint64** %"$retval_18", align 8 - ret %TName_Pair_Uint32_Uint64* %"$$retval_18_155" + call void @llvm.dbg.declare(metadata %TName_Pair_Uint32_Uint64** %"$retval_18", metadata !38, metadata !DIExpression()), !dbg !41 + %"$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 + %"$a_150" = load %Uint32, %Uint32* %a, align 4 + %"$adtval_151_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_151_salloc" = call i8* @_salloc(i8* %"$adtval_151_load", i64 13) + %"$adtval_151" = bitcast i8* %"$adtval_151_salloc" to %CName_Pair_Uint32_Uint64* + %"$adtgep_152" = getelementptr inbounds %CName_Pair_Uint32_Uint64, %CName_Pair_Uint32_Uint64* %"$adtval_151", i32 0, i32 0 + store i8 0, i8* %"$adtgep_152", align 1 + %"$adtgep_153" = getelementptr inbounds %CName_Pair_Uint32_Uint64, %CName_Pair_Uint32_Uint64* %"$adtval_151", i32 0, i32 1 + store %Uint32 %"$a_150", %Uint32* %"$adtgep_153", align 4 + %"$adtgep_154" = getelementptr inbounds %CName_Pair_Uint32_Uint64, %CName_Pair_Uint32_Uint64* %"$adtval_151", i32 0, i32 2 + store %Uint64 %1, %Uint64* %"$adtgep_154", align 8 + %"$adtptr_155" = bitcast %CName_Pair_Uint32_Uint64* %"$adtval_151" to %TName_Pair_Uint32_Uint64* + store %TName_Pair_Uint32_Uint64* %"$adtptr_155", %TName_Pair_Uint32_Uint64** %"$retval_18", align 8, !dbg !41 + %"$$retval_18_156" = load %TName_Pair_Uint32_Uint64*, %TName_Pair_Uint32_Uint64** %"$retval_18", align 8 + ret %TName_Pair_Uint32_Uint64* %"$$retval_18_156" } -define internal { %TName_Pair_Uint32_Uint64* (i8*, %Uint64)*, i8* } @"$fundef_15"(%"$$fundef_15_env_107"* %0, %Uint32 %1) !dbg !27 { +define internal { %TName_Pair_Uint32_Uint64* (i8*, %Uint64)*, i8* } @"$fundef_15"(%"$$fundef_15_env_107"* %0, %Uint32 %1) !dbg !42 { entry: + %"$a_142" = alloca %Uint32, align 8 + store %Uint32 %1, %Uint32* %"$a_142", align 4 + call void @llvm.dbg.declare(metadata %Uint32* %"$a_142", metadata !43, metadata !DIExpression()), !dbg !45 %"$retval_16" = alloca { %TName_Pair_Uint32_Uint64* (i8*, %Uint64)*, i8* }, align 8 %"$gasrem_131" = load i64, i64* @_gasrem, align 8 %"$gascmp_132" = icmp ugt i64 1, %"$gasrem_131" @@ -441,12 +455,12 @@ entry: %"$$fundef_17_cloval_139" = insertvalue { %TName_Pair_Uint32_Uint64* (i8*, %Uint64)*, i8* } { %TName_Pair_Uint32_Uint64* (i8*, %Uint64)* bitcast (%TName_Pair_Uint32_Uint64* (%"$$fundef_17_env_106"*, %Uint64)* @"$fundef_17" to %TName_Pair_Uint32_Uint64* (i8*, %Uint64)*), i8* undef }, i8* %"$$fundef_17_env_voidp_138", 1 %"$$fundef_17_env_a_140" = getelementptr inbounds %"$$fundef_17_env_106", %"$$fundef_17_env_106"* %"$$fundef_17_envp_136", i32 0, i32 0 store %Uint32 %1, %Uint32* %"$$fundef_17_env_a_140", align 4 - store { %TName_Pair_Uint32_Uint64* (i8*, %Uint64)*, i8* } %"$$fundef_17_cloval_139", { %TName_Pair_Uint32_Uint64* (i8*, %Uint64)*, i8* }* %"$retval_16", align 8, !dbg !28 + store { %TName_Pair_Uint32_Uint64* (i8*, %Uint64)*, i8* } %"$$fundef_17_cloval_139", { %TName_Pair_Uint32_Uint64* (i8*, %Uint64)*, i8* }* %"$retval_16", align 8, !dbg !46 %"$$retval_16_141" = load { %TName_Pair_Uint32_Uint64* (i8*, %Uint64)*, i8* }, { %TName_Pair_Uint32_Uint64* (i8*, %Uint64)*, i8* }* %"$retval_16", align 8 ret { %TName_Pair_Uint32_Uint64* (i8*, %Uint64)*, i8* } %"$$retval_16_141" } -define internal { { %TName_Pair_Uint32_Uint64* (i8*, %Uint64)*, i8* } (i8*, %Uint32)*, i8* } @"$fundef_13"(%"$$fundef_13_env_108"* %0) !dbg !29 { +define internal { { %TName_Pair_Uint32_Uint64* (i8*, %Uint64)*, i8* } (i8*, %Uint32)*, i8* } @"$fundef_13"(%"$$fundef_13_env_108"* %0) !dbg !47 { entry: %"$retval_14" = alloca { { %TName_Pair_Uint32_Uint64* (i8*, %Uint64)*, i8* } (i8*, %Uint32)*, i8* }, align 8 %"$gasrem_122" = load i64, i64* @_gasrem, align 8 @@ -460,12 +474,12 @@ entry: "$have_gas_125": ; preds = %"$out_of_gas_124", %entry %"$consume_126" = sub i64 %"$gasrem_122", 1 store i64 %"$consume_126", i64* @_gasrem, align 8 - store { { %TName_Pair_Uint32_Uint64* (i8*, %Uint64)*, i8* } (i8*, %Uint32)*, i8* } { { %TName_Pair_Uint32_Uint64* (i8*, %Uint64)*, i8* } (i8*, %Uint32)* bitcast ({ %TName_Pair_Uint32_Uint64* (i8*, %Uint64)*, i8* } (%"$$fundef_15_env_107"*, %Uint32)* @"$fundef_15" to { %TName_Pair_Uint32_Uint64* (i8*, %Uint64)*, i8* } (i8*, %Uint32)*), i8* null }, { { %TName_Pair_Uint32_Uint64* (i8*, %Uint64)*, i8* } (i8*, %Uint32)*, i8* }* %"$retval_14", align 8, !dbg !30 + store { { %TName_Pair_Uint32_Uint64* (i8*, %Uint64)*, i8* } (i8*, %Uint32)*, i8* } { { %TName_Pair_Uint32_Uint64* (i8*, %Uint64)*, i8* } (i8*, %Uint32)* bitcast ({ %TName_Pair_Uint32_Uint64* (i8*, %Uint64)*, i8* } (%"$$fundef_15_env_107"*, %Uint32)* @"$fundef_15" to { %TName_Pair_Uint32_Uint64* (i8*, %Uint64)*, i8* } (i8*, %Uint32)*), i8* null }, { { %TName_Pair_Uint32_Uint64* (i8*, %Uint64)*, i8* } (i8*, %Uint32)*, i8* }* %"$retval_14", align 8, !dbg !48 %"$$retval_14_130" = load { { %TName_Pair_Uint32_Uint64* (i8*, %Uint64)*, i8* } (i8*, %Uint32)*, i8* }, { { %TName_Pair_Uint32_Uint64* (i8*, %Uint64)*, i8* } (i8*, %Uint32)*, i8* }* %"$retval_14", align 8 ret { { %TName_Pair_Uint32_Uint64* (i8*, %Uint64)*, i8* } (i8*, %Uint32)*, i8* } %"$$retval_14_130" } -define internal { i8*, i8* }* @"$fundef_11"(%"$$fundef_11_env_109"* %0) !dbg !31 { +define internal { i8*, i8* }* @"$fundef_11"(%"$$fundef_11_env_109"* %0) !dbg !49 { entry: %"$retval_12" = alloca { i8*, i8* }*, align 8 %"$gasrem_110" = load i64, i64* @_gasrem, align 8 @@ -486,7 +500,7 @@ entry: %"$dyndisp_gep_119" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_118", i32 1 %"$dyndisp_pcast_120" = bitcast { i8*, i8* }* %"$dyndisp_gep_119" to { { { %TName_Pair_Uint32_Uint64* (i8*, %Uint64)*, i8* } (i8*, %Uint32)*, i8* } (i8*)*, i8* }* store { { { %TName_Pair_Uint32_Uint64* (i8*, %Uint64)*, i8* } (i8*, %Uint32)*, i8* } (i8*)*, i8* } { { { %TName_Pair_Uint32_Uint64* (i8*, %Uint64)*, i8* } (i8*, %Uint32)*, i8* } (i8*)* bitcast ({ { %TName_Pair_Uint32_Uint64* (i8*, %Uint64)*, i8* } (i8*, %Uint32)*, i8* } (%"$$fundef_13_env_108"*)* @"$fundef_13" to { { %TName_Pair_Uint32_Uint64* (i8*, %Uint64)*, i8* } (i8*, %Uint32)*, i8* } (i8*)*), i8* null }, { { { %TName_Pair_Uint32_Uint64* (i8*, %Uint64)*, i8* } (i8*, %Uint32)*, i8* } (i8*)*, i8* }* %"$dyndisp_pcast_120", align 8 - store { i8*, i8* }* %"$dyndisp_table_118", { i8*, i8* }** %"$retval_12", align 8, !dbg !32 + store { i8*, i8* }* %"$dyndisp_table_118", { i8*, i8* }** %"$retval_12", align 8, !dbg !50 %"$$retval_12_121" = load { i8*, i8* }*, { i8*, i8* }** %"$retval_12", align 8 ret { i8*, i8* }* %"$$retval_12_121" } @@ -495,503 +509,552 @@ declare void @_out_of_gas() declare i8* @_salloc(i8*, i64) -define void @_init_libs() !dbg !33 { +; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn +declare void @llvm.dbg.declare(metadata, metadata, metadata) #0 + +define void @_init_libs() !dbg !51 { entry: - %"$gasrem_278" = load i64, i64* @_gasrem, align 8 - %"$gascmp_279" = icmp ugt i64 5, %"$gasrem_278" - br i1 %"$gascmp_279", label %"$out_of_gas_280", label %"$have_gas_281" + %"$gasrem_282" = load i64, i64* @_gasrem, align 8 + %"$gascmp_283" = icmp ugt i64 5, %"$gasrem_282" + br i1 %"$gascmp_283", label %"$out_of_gas_284", label %"$have_gas_285" -"$out_of_gas_280": ; preds = %entry +"$out_of_gas_284": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_281" + br label %"$have_gas_285" -"$have_gas_281": ; preds = %"$out_of_gas_280", %entry - %"$consume_282" = sub i64 %"$gasrem_278", 5 - store i64 %"$consume_282", i64* @_gasrem, align 8 - store %Int32 { i32 5 }, %Int32* @"$_gas_charge_accrec_lib_5", align 4, !dbg !35 - %"$gasrem_283" = load i64, i64* @_gasrem, align 8 - %"$gascmp_284" = icmp ugt i64 8, %"$gasrem_283" - br i1 %"$gascmp_284", label %"$out_of_gas_285", label %"$have_gas_286" +"$have_gas_285": ; preds = %"$out_of_gas_284", %entry + %"$consume_286" = sub i64 %"$gasrem_282", 5 + store i64 %"$consume_286", i64* @_gasrem, align 8 + store %Int32 { i32 5 }, %Int32* @"$_gas_charge_accrec_lib_5", align 4, !dbg !53 + %"$gasrem_287" = load i64, i64* @_gasrem, align 8 + %"$gascmp_288" = icmp ugt i64 8, %"$gasrem_287" + br i1 %"$gascmp_288", label %"$out_of_gas_289", label %"$have_gas_290" -"$out_of_gas_285": ; preds = %"$have_gas_281" +"$out_of_gas_289": ; preds = %"$have_gas_285" call void @_out_of_gas() - br label %"$have_gas_286" + br label %"$have_gas_290" -"$have_gas_286": ; preds = %"$out_of_gas_285", %"$have_gas_281" - %"$consume_287" = sub i64 %"$gasrem_283", 8 - store i64 %"$consume_287", i64* @_gasrem, align 8 - store %Int32 { i32 8 }, %Int32* @"$_gas_charge_accBoolUtils_0", align 4, !dbg !35 - %"$gasrem_288" = load i64, i64* @_gasrem, align 8 - %"$gascmp_289" = icmp ugt i64 196, %"$gasrem_288" - br i1 %"$gascmp_289", label %"$out_of_gas_290", label %"$have_gas_291" +"$have_gas_290": ; preds = %"$out_of_gas_289", %"$have_gas_285" + %"$consume_291" = sub i64 %"$gasrem_287", 8 + store i64 %"$consume_291", i64* @_gasrem, align 8 + store %Int32 { i32 8 }, %Int32* @"$_gas_charge_accBoolUtils_0", align 4, !dbg !53 + %"$gasrem_292" = load i64, i64* @_gasrem, align 8 + %"$gascmp_293" = icmp ugt i64 196, %"$gasrem_292" + br i1 %"$gascmp_293", label %"$out_of_gas_294", label %"$have_gas_295" -"$out_of_gas_290": ; preds = %"$have_gas_286" +"$out_of_gas_294": ; preds = %"$have_gas_290" call void @_out_of_gas() - br label %"$have_gas_291" + br label %"$have_gas_295" -"$have_gas_291": ; preds = %"$out_of_gas_290", %"$have_gas_286" - %"$consume_292" = sub i64 %"$gasrem_288", 196 - store i64 %"$consume_292", i64* @_gasrem, align 8 - store %Int32 { i32 196 }, %Int32* @"$_gas_charge_accIntUtils_1", align 4, !dbg !35 - %"$gasrem_293" = load i64, i64* @_gasrem, align 8 - %"$gascmp_294" = icmp ugt i64 20, %"$gasrem_293" - br i1 %"$gascmp_294", label %"$out_of_gas_295", label %"$have_gas_296" +"$have_gas_295": ; preds = %"$out_of_gas_294", %"$have_gas_290" + %"$consume_296" = sub i64 %"$gasrem_292", 196 + store i64 %"$consume_296", i64* @_gasrem, align 8 + store %Int32 { i32 196 }, %Int32* @"$_gas_charge_accIntUtils_1", align 4, !dbg !53 + %"$gasrem_297" = load i64, i64* @_gasrem, align 8 + %"$gascmp_298" = icmp ugt i64 20, %"$gasrem_297" + br i1 %"$gascmp_298", label %"$out_of_gas_299", label %"$have_gas_300" -"$out_of_gas_295": ; preds = %"$have_gas_291" +"$out_of_gas_299": ; preds = %"$have_gas_295" call void @_out_of_gas() - br label %"$have_gas_296" + br label %"$have_gas_300" -"$have_gas_296": ; preds = %"$out_of_gas_295", %"$have_gas_291" - %"$consume_297" = sub i64 %"$gasrem_293", 20 - store i64 %"$consume_297", i64* @_gasrem, align 8 - store %Int32 { i32 20 }, %Int32* @"$_gas_charge_accListUtils_2", align 4, !dbg !35 - %"$gasrem_298" = load i64, i64* @_gasrem, align 8 - %"$gascmp_299" = icmp ugt i64 12, %"$gasrem_298" - br i1 %"$gascmp_299", label %"$out_of_gas_300", label %"$have_gas_301" +"$have_gas_300": ; preds = %"$out_of_gas_299", %"$have_gas_295" + %"$consume_301" = sub i64 %"$gasrem_297", 20 + store i64 %"$consume_301", i64* @_gasrem, align 8 + store %Int32 { i32 20 }, %Int32* @"$_gas_charge_accListUtils_2", align 4, !dbg !53 + %"$gasrem_302" = load i64, i64* @_gasrem, align 8 + %"$gascmp_303" = icmp ugt i64 12, %"$gasrem_302" + br i1 %"$gascmp_303", label %"$out_of_gas_304", label %"$have_gas_305" -"$out_of_gas_300": ; preds = %"$have_gas_296" +"$out_of_gas_304": ; preds = %"$have_gas_300" call void @_out_of_gas() - br label %"$have_gas_301" + br label %"$have_gas_305" -"$have_gas_301": ; preds = %"$out_of_gas_300", %"$have_gas_296" - %"$consume_302" = sub i64 %"$gasrem_298", 12 - store i64 %"$consume_302", i64* @_gasrem, align 8 - store %Int32 { i32 12 }, %Int32* @"$_gas_charge_accNatUtils_3", align 4, !dbg !35 - %"$gasrem_303" = load i64, i64* @_gasrem, align 8 - %"$gascmp_304" = icmp ugt i64 2, %"$gasrem_303" - br i1 %"$gascmp_304", label %"$out_of_gas_305", label %"$have_gas_306" +"$have_gas_305": ; preds = %"$out_of_gas_304", %"$have_gas_300" + %"$consume_306" = sub i64 %"$gasrem_302", 12 + store i64 %"$consume_306", i64* @_gasrem, align 8 + store %Int32 { i32 12 }, %Int32* @"$_gas_charge_accNatUtils_3", align 4, !dbg !53 + %"$gasrem_307" = load i64, i64* @_gasrem, align 8 + %"$gascmp_308" = icmp ugt i64 2, %"$gasrem_307" + br i1 %"$gascmp_308", label %"$out_of_gas_309", label %"$have_gas_310" -"$out_of_gas_305": ; preds = %"$have_gas_301" +"$out_of_gas_309": ; preds = %"$have_gas_305" call void @_out_of_gas() - br label %"$have_gas_306" + br label %"$have_gas_310" -"$have_gas_306": ; preds = %"$out_of_gas_305", %"$have_gas_301" - %"$consume_307" = sub i64 %"$gasrem_303", 2 - store i64 %"$consume_307", i64* @_gasrem, align 8 - store %Int32 { i32 2 }, %Int32* @"$_gas_charge_accPairUtils_4", align 4, !dbg !35 +"$have_gas_310": ; preds = %"$out_of_gas_309", %"$have_gas_305" + %"$consume_311" = sub i64 %"$gasrem_307", 2 + store i64 %"$consume_311", i64* @_gasrem, align 8 + store %Int32 { i32 2 }, %Int32* @"$_gas_charge_accPairUtils_4", align 4, !dbg !53 ret void } -define internal %"TName_Pair_Pair_(Uint32)_(Uint64)_Pair_(String)_(ByStr20)"* @_scilla_expr_fun(i8* %0) !dbg !36 { +define internal %"TName_Pair_Pair_(Uint32)_(Uint64)_Pair_(String)_(ByStr20)"* @_scilla_expr_fun(i8* %0) !dbg !54 { entry: %"$expr_10" = alloca %"TName_Pair_Pair_(Uint32)_(Uint64)_Pair_(String)_(ByStr20)"*, align 8 - %"$gasrem_308" = load i64, i64* @_gasrem, align 8 - %"$gascmp_309" = icmp ugt i64 1, %"$gasrem_308" - br i1 %"$gascmp_309", label %"$out_of_gas_310", label %"$have_gas_311" + call void @llvm.dbg.declare(metadata %"TName_Pair_Pair_(Uint32)_(Uint64)_Pair_(String)_(ByStr20)"** %"$expr_10", metadata !55, metadata !DIExpression()), !dbg !58 + %"$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_310": ; preds = %entry +"$out_of_gas_314": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_311" + br label %"$have_gas_315" -"$have_gas_311": ; preds = %"$out_of_gas_310", %entry - %"$consume_312" = sub i64 %"$gasrem_308", 1 - store i64 %"$consume_312", i64* @_gasrem, align 8 +"$have_gas_315": ; preds = %"$out_of_gas_314", %entry + %"$consume_316" = sub i64 %"$gasrem_312", 1 + store i64 %"$consume_316", i64* @_gasrem, align 8 %tf = alloca { i8*, i8* }*, 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_311" - call void @_out_of_gas() - br label %"$have_gas_316" - -"$have_gas_316": ; preds = %"$out_of_gas_315", %"$have_gas_311" - %"$consume_317" = sub i64 %"$gasrem_313", 1 - store i64 %"$consume_317", i64* @_gasrem, align 8 - %"$dyndisp_table_324_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$dyndisp_table_324_salloc_salloc" = call i8* @_salloc(i8* %"$dyndisp_table_324_salloc_load", i64 64) - %"$dyndisp_table_324_salloc" = bitcast i8* %"$dyndisp_table_324_salloc_salloc" to [4 x { i8*, i8* }]* - %"$dyndisp_table_324" = bitcast [4 x { i8*, i8* }]* %"$dyndisp_table_324_salloc" to { i8*, i8* }* - %"$dyndisp_gep_325" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_324", i32 0 - %"$dyndisp_pcast_326" = bitcast { i8*, i8* }* %"$dyndisp_gep_325" to { { i8*, i8* }* (i8*)*, i8* }* - store { { i8*, i8* }* (i8*)*, i8* } { { i8*, i8* }* (i8*)* bitcast ({ i8*, i8* }* (%"$$fundef_11_env_109"*)* @"$fundef_11" to { i8*, i8* }* (i8*)*), i8* null }, { { i8*, i8* }* (i8*)*, i8* }* %"$dyndisp_pcast_326", align 8 - %"$dyndisp_gep_327" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_324", i32 2 - %"$dyndisp_pcast_328" = bitcast { i8*, i8* }* %"$dyndisp_gep_327" to { { i8*, i8* }* (i8*)*, i8* }* - store { { i8*, i8* }* (i8*)*, i8* } { { i8*, i8* }* (i8*)* bitcast ({ i8*, i8* }* (%"$$fundef_19_env_105"*)* @"$fundef_19" to { i8*, i8* }* (i8*)*), i8* null }, { { i8*, i8* }* (i8*)*, i8* }* %"$dyndisp_pcast_328", align 8 - store { i8*, i8* }* %"$dyndisp_table_324", { i8*, i8* }** %tf, align 8, !dbg !37 - %"$gasrem_329" = load i64, i64* @_gasrem, align 8 - %"$gascmp_330" = icmp ugt i64 1, %"$gasrem_329" - br i1 %"$gascmp_330", label %"$out_of_gas_331", label %"$have_gas_332" - -"$out_of_gas_331": ; preds = %"$have_gas_316" - call void @_out_of_gas() - br label %"$have_gas_332" - -"$have_gas_332": ; preds = %"$out_of_gas_331", %"$have_gas_316" - %"$consume_333" = sub i64 %"$gasrem_329", 1 - store i64 %"$consume_333", i64* @_gasrem, 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 + %"$dyndisp_table_328_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$dyndisp_table_328_salloc_salloc" = call i8* @_salloc(i8* %"$dyndisp_table_328_salloc_load", i64 64) + %"$dyndisp_table_328_salloc" = bitcast i8* %"$dyndisp_table_328_salloc_salloc" to [4 x { i8*, i8* }]* + %"$dyndisp_table_328" = bitcast [4 x { i8*, i8* }]* %"$dyndisp_table_328_salloc" to { i8*, i8* }* + %"$dyndisp_gep_329" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_328", i32 0 + %"$dyndisp_pcast_330" = bitcast { i8*, i8* }* %"$dyndisp_gep_329" to { { i8*, i8* }* (i8*)*, i8* }* + store { { i8*, i8* }* (i8*)*, i8* } { { i8*, i8* }* (i8*)* bitcast ({ i8*, i8* }* (%"$$fundef_11_env_109"*)* @"$fundef_11" to { i8*, i8* }* (i8*)*), i8* null }, { { i8*, i8* }* (i8*)*, i8* }* %"$dyndisp_pcast_330", align 8 + %"$dyndisp_gep_331" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_328", i32 2 + %"$dyndisp_pcast_332" = bitcast { i8*, i8* }* %"$dyndisp_gep_331" to { { i8*, i8* }* (i8*)*, i8* }* + store { { i8*, i8* }* (i8*)*, i8* } { { i8*, i8* }* (i8*)* bitcast ({ i8*, i8* }* (%"$$fundef_19_env_105"*)* @"$fundef_19" to { i8*, i8* }* (i8*)*), i8* null }, { { i8*, i8* }* (i8*)*, i8* }* %"$dyndisp_pcast_332", align 8 + store { i8*, i8* }* %"$dyndisp_table_328", { i8*, i8* }** %tf, align 8, !dbg !58 + %"$gasrem_333" = load i64, i64* @_gasrem, align 8 + %"$gascmp_334" = icmp ugt i64 1, %"$gasrem_333" + br i1 %"$gascmp_334", label %"$out_of_gas_335", label %"$have_gas_336" + +"$out_of_gas_335": ; preds = %"$have_gas_320" + call void @_out_of_gas() + br label %"$have_gas_336" + +"$have_gas_336": ; preds = %"$out_of_gas_335", %"$have_gas_320" + %"$consume_337" = sub i64 %"$gasrem_333", 1 + store i64 %"$consume_337", i64* @_gasrem, align 8 %tf1 = alloca { i8*, 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 = %"$have_gas_332" - call void @_out_of_gas() - br label %"$have_gas_337" - -"$have_gas_337": ; preds = %"$out_of_gas_336", %"$have_gas_332" - %"$consume_338" = sub i64 %"$gasrem_334", 1 - store i64 %"$consume_338", i64* @_gasrem, align 8 - %"$$fundef_27_envp_339_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_27_envp_339_salloc" = call i8* @_salloc(i8* %"$$fundef_27_envp_339_load", i64 8) - %"$$fundef_27_envp_339" = bitcast i8* %"$$fundef_27_envp_339_salloc" to %"$$fundef_27_env_101"* - %"$$fundef_27_env_voidp_341" = bitcast %"$$fundef_27_env_101"* %"$$fundef_27_envp_339" to i8* - %"$$fundef_27_cloval_342" = insertvalue { { i8*, i8* }* (i8*)*, i8* } { { i8*, i8* }* (i8*)* bitcast ({ i8*, i8* }* (%"$$fundef_27_env_101"*)* @"$fundef_27" to { i8*, i8* }* (i8*)*), i8* undef }, i8* %"$$fundef_27_env_voidp_341", 1 - %"$$fundef_27_env_tf_343" = getelementptr inbounds %"$$fundef_27_env_101", %"$$fundef_27_env_101"* %"$$fundef_27_envp_339", i32 0, i32 0 - %"$tf_344" = load { i8*, i8* }*, { i8*, i8* }** %tf, align 8 - store { i8*, i8* }* %"$tf_344", { i8*, i8* }** %"$$fundef_27_env_tf_343", align 8 - %"$$fundef_31_env_voidp_346" = bitcast %"$$fundef_27_env_101"* %"$$fundef_27_envp_339" to i8* - %"$$fundef_31_cloval_347" = insertvalue { { i8*, i8* }* (i8*)*, i8* } { { i8*, i8* }* (i8*)* bitcast ({ i8*, i8* }* (%"$$fundef_31_env_99"*)* @"$fundef_31" to { i8*, i8* }* (i8*)*), i8* undef }, i8* %"$$fundef_31_env_voidp_346", 1 - %"$dyndisp_table_348_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$dyndisp_table_348_salloc_salloc" = call i8* @_salloc(i8* %"$dyndisp_table_348_salloc_load", i64 64) - %"$dyndisp_table_348_salloc" = bitcast i8* %"$dyndisp_table_348_salloc_salloc" to [4 x { i8*, i8* }]* - %"$dyndisp_table_348" = bitcast [4 x { i8*, i8* }]* %"$dyndisp_table_348_salloc" to { i8*, i8* }* - %"$dyndisp_gep_349" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_348", i32 0 - %"$dyndisp_pcast_350" = bitcast { i8*, i8* }* %"$dyndisp_gep_349" to { { i8*, i8* }* (i8*)*, i8* }* - store { { i8*, i8* }* (i8*)*, i8* } %"$$fundef_27_cloval_342", { { i8*, i8* }* (i8*)*, i8* }* %"$dyndisp_pcast_350", align 8 - %"$dyndisp_gep_351" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_348", i32 2 - %"$dyndisp_pcast_352" = bitcast { i8*, i8* }* %"$dyndisp_gep_351" to { { i8*, i8* }* (i8*)*, i8* }* - store { { i8*, i8* }* (i8*)*, i8* } %"$$fundef_31_cloval_347", { { i8*, i8* }* (i8*)*, i8* }* %"$dyndisp_pcast_352", align 8 - store { i8*, i8* }* %"$dyndisp_table_348", { i8*, i8* }** %tf1, align 8, !dbg !38 - %"$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 = %"$have_gas_337" - call void @_out_of_gas() - br label %"$have_gas_356" - -"$have_gas_356": ; preds = %"$out_of_gas_355", %"$have_gas_337" - %"$consume_357" = sub i64 %"$gasrem_353", 1 - store i64 %"$consume_357", i64* @_gasrem, align 8 + %"$gasrem_338" = load i64, i64* @_gasrem, align 8 + %"$gascmp_339" = icmp ugt i64 1, %"$gasrem_338" + br i1 %"$gascmp_339", label %"$out_of_gas_340", label %"$have_gas_341" + +"$out_of_gas_340": ; preds = %"$have_gas_336" + call void @_out_of_gas() + br label %"$have_gas_341" + +"$have_gas_341": ; preds = %"$out_of_gas_340", %"$have_gas_336" + %"$consume_342" = sub i64 %"$gasrem_338", 1 + store i64 %"$consume_342", i64* @_gasrem, align 8 + %"$$fundef_27_envp_343_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_27_envp_343_salloc" = call i8* @_salloc(i8* %"$$fundef_27_envp_343_load", i64 8) + %"$$fundef_27_envp_343" = bitcast i8* %"$$fundef_27_envp_343_salloc" to %"$$fundef_27_env_101"* + %"$$fundef_27_env_voidp_345" = bitcast %"$$fundef_27_env_101"* %"$$fundef_27_envp_343" to i8* + %"$$fundef_27_cloval_346" = insertvalue { { i8*, i8* }* (i8*)*, i8* } { { i8*, i8* }* (i8*)* bitcast ({ i8*, i8* }* (%"$$fundef_27_env_101"*)* @"$fundef_27" to { i8*, i8* }* (i8*)*), i8* undef }, i8* %"$$fundef_27_env_voidp_345", 1 + %"$$fundef_27_env_tf_347" = getelementptr inbounds %"$$fundef_27_env_101", %"$$fundef_27_env_101"* %"$$fundef_27_envp_343", i32 0, i32 0 + %"$tf_348" = load { i8*, i8* }*, { i8*, i8* }** %tf, align 8 + store { i8*, i8* }* %"$tf_348", { i8*, i8* }** %"$$fundef_27_env_tf_347", align 8 + %"$$fundef_31_env_voidp_350" = bitcast %"$$fundef_27_env_101"* %"$$fundef_27_envp_343" to i8* + %"$$fundef_31_cloval_351" = insertvalue { { i8*, i8* }* (i8*)*, i8* } { { i8*, i8* }* (i8*)* bitcast ({ i8*, i8* }* (%"$$fundef_31_env_99"*)* @"$fundef_31" to { i8*, i8* }* (i8*)*), i8* undef }, i8* %"$$fundef_31_env_voidp_350", 1 + %"$dyndisp_table_352_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$dyndisp_table_352_salloc_salloc" = call i8* @_salloc(i8* %"$dyndisp_table_352_salloc_load", i64 64) + %"$dyndisp_table_352_salloc" = bitcast i8* %"$dyndisp_table_352_salloc_salloc" to [4 x { i8*, i8* }]* + %"$dyndisp_table_352" = bitcast [4 x { i8*, i8* }]* %"$dyndisp_table_352_salloc" to { i8*, i8* }* + %"$dyndisp_gep_353" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_352", i32 0 + %"$dyndisp_pcast_354" = bitcast { i8*, i8* }* %"$dyndisp_gep_353" to { { i8*, i8* }* (i8*)*, i8* }* + store { { i8*, i8* }* (i8*)*, i8* } %"$$fundef_27_cloval_346", { { i8*, i8* }* (i8*)*, i8* }* %"$dyndisp_pcast_354", align 8 + %"$dyndisp_gep_355" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_352", i32 2 + %"$dyndisp_pcast_356" = bitcast { i8*, i8* }* %"$dyndisp_gep_355" to { { i8*, i8* }* (i8*)*, i8* }* + store { { i8*, i8* }* (i8*)*, i8* } %"$$fundef_31_cloval_351", { { i8*, i8* }* (i8*)*, i8* }* %"$dyndisp_pcast_356", align 8 + store { i8*, i8* }* %"$dyndisp_table_352", { i8*, i8* }** %tf1, align 8, !dbg !59 + %"$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 = %"$have_gas_341" + call void @_out_of_gas() + br label %"$have_gas_360" + +"$have_gas_360": ; preds = %"$out_of_gas_359", %"$have_gas_341" + %"$consume_361" = sub i64 %"$gasrem_357", 1 + store i64 %"$consume_361", i64* @_gasrem, align 8 %t1 = alloca { { %TName_Pair_Uint32_Uint64* (i8*, %Uint64)*, i8* } (i8*, %Uint32)*, 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 = %"$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 - %"$tf1_363" = load { i8*, i8* }*, { i8*, i8* }** %tf1, align 8 - %"$tf1_364" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$tf1_363", i32 0 - %"$tf1_365" = bitcast { i8*, i8* }* %"$tf1_364" to { { i8*, i8* }* (i8*)*, i8* }* - %"$tf1_366" = load { { i8*, i8* }* (i8*)*, i8* }, { { i8*, i8* }* (i8*)*, i8* }* %"$tf1_365", align 8 - %"$tf1_fptr_367" = extractvalue { { i8*, i8* }* (i8*)*, i8* } %"$tf1_366", 0 - %"$tf1_envptr_368" = extractvalue { { i8*, i8* }* (i8*)*, i8* } %"$tf1_366", 1 - %"$tf1_call_369" = call { i8*, i8* }* %"$tf1_fptr_367"(i8* %"$tf1_envptr_368"), !dbg !39 - %"$tf1_370" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$tf1_call_369", i32 1 - %"$tf1_371" = bitcast { i8*, i8* }* %"$tf1_370" to { { { %TName_Pair_Uint32_Uint64* (i8*, %Uint64)*, i8* } (i8*, %Uint32)*, i8* } (i8*)*, i8* }* - %"$tf1_372" = load { { { %TName_Pair_Uint32_Uint64* (i8*, %Uint64)*, i8* } (i8*, %Uint32)*, i8* } (i8*)*, i8* }, { { { %TName_Pair_Uint32_Uint64* (i8*, %Uint64)*, i8* } (i8*, %Uint32)*, i8* } (i8*)*, i8* }* %"$tf1_371", align 8 - %"$tf1_fptr_373" = extractvalue { { { %TName_Pair_Uint32_Uint64* (i8*, %Uint64)*, i8* } (i8*, %Uint32)*, i8* } (i8*)*, i8* } %"$tf1_372", 0 - %"$tf1_envptr_374" = extractvalue { { { %TName_Pair_Uint32_Uint64* (i8*, %Uint64)*, i8* } (i8*, %Uint32)*, i8* } (i8*)*, i8* } %"$tf1_372", 1 - %"$tf1_call_375" = call { { %TName_Pair_Uint32_Uint64* (i8*, %Uint64)*, i8* } (i8*, %Uint32)*, i8* } %"$tf1_fptr_373"(i8* %"$tf1_envptr_374"), !dbg !39 - store { { %TName_Pair_Uint32_Uint64* (i8*, %Uint64)*, i8* } (i8*, %Uint32)*, i8* } %"$tf1_call_375", { { %TName_Pair_Uint32_Uint64* (i8*, %Uint64)*, i8* } (i8*, %Uint32)*, i8* }* %t1, align 8, !dbg !40 - %"$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 = %"$have_gas_361" - call void @_out_of_gas() - br label %"$have_gas_379" - -"$have_gas_379": ; preds = %"$out_of_gas_378", %"$have_gas_361" - %"$consume_380" = sub i64 %"$gasrem_376", 1 - store i64 %"$consume_380", i64* @_gasrem, 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 + %"$tf1_367" = load { i8*, i8* }*, { i8*, i8* }** %tf1, align 8 + %"$tf1_368" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$tf1_367", i32 0 + %"$tf1_369" = bitcast { i8*, i8* }* %"$tf1_368" to { { i8*, i8* }* (i8*)*, i8* }* + %"$tf1_370" = load { { i8*, i8* }* (i8*)*, i8* }, { { i8*, i8* }* (i8*)*, i8* }* %"$tf1_369", align 8 + %"$tf1_fptr_371" = extractvalue { { i8*, i8* }* (i8*)*, i8* } %"$tf1_370", 0 + %"$tf1_envptr_372" = extractvalue { { i8*, i8* }* (i8*)*, i8* } %"$tf1_370", 1 + %"$tf1_call_373" = call { i8*, i8* }* %"$tf1_fptr_371"(i8* %"$tf1_envptr_372"), !dbg !60 + %"$tf1_374" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$tf1_call_373", i32 1 + %"$tf1_375" = bitcast { i8*, i8* }* %"$tf1_374" to { { { %TName_Pair_Uint32_Uint64* (i8*, %Uint64)*, i8* } (i8*, %Uint32)*, i8* } (i8*)*, i8* }* + %"$tf1_376" = load { { { %TName_Pair_Uint32_Uint64* (i8*, %Uint64)*, i8* } (i8*, %Uint32)*, i8* } (i8*)*, i8* }, { { { %TName_Pair_Uint32_Uint64* (i8*, %Uint64)*, i8* } (i8*, %Uint32)*, i8* } (i8*)*, i8* }* %"$tf1_375", align 8 + %"$tf1_fptr_377" = extractvalue { { { %TName_Pair_Uint32_Uint64* (i8*, %Uint64)*, i8* } (i8*, %Uint32)*, i8* } (i8*)*, i8* } %"$tf1_376", 0 + %"$tf1_envptr_378" = extractvalue { { { %TName_Pair_Uint32_Uint64* (i8*, %Uint64)*, i8* } (i8*, %Uint32)*, i8* } (i8*)*, i8* } %"$tf1_376", 1 + %"$tf1_call_379" = call { { %TName_Pair_Uint32_Uint64* (i8*, %Uint64)*, i8* } (i8*, %Uint32)*, i8* } %"$tf1_fptr_377"(i8* %"$tf1_envptr_378"), !dbg !60 + store { { %TName_Pair_Uint32_Uint64* (i8*, %Uint64)*, i8* } (i8*, %Uint32)*, i8* } %"$tf1_call_379", { { %TName_Pair_Uint32_Uint64* (i8*, %Uint64)*, i8* } (i8*, %Uint32)*, i8* }* %t1, align 8, !dbg !61 + %"$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_382": ; preds = %"$have_gas_365" + call void @_out_of_gas() + br label %"$have_gas_383" + +"$have_gas_383": ; preds = %"$out_of_gas_382", %"$have_gas_365" + %"$consume_384" = sub i64 %"$gasrem_380", 1 + store i64 %"$consume_384", i64* @_gasrem, align 8 %t2 = alloca { { %TName_Pair_String_ByStr20* (i8*, [20 x i8]*)*, i8* } (i8*, %String)*, i8* }, align 8 - %"$gasrem_381" = load i64, i64* @_gasrem, align 8 - %"$gascmp_382" = icmp ugt i64 1, %"$gasrem_381" - br i1 %"$gascmp_382", label %"$out_of_gas_383", label %"$have_gas_384" - -"$out_of_gas_383": ; preds = %"$have_gas_379" - call void @_out_of_gas() - br label %"$have_gas_384" - -"$have_gas_384": ; preds = %"$out_of_gas_383", %"$have_gas_379" - %"$consume_385" = sub i64 %"$gasrem_381", 1 - store i64 %"$consume_385", i64* @_gasrem, align 8 - %"$tf1_386" = load { i8*, i8* }*, { i8*, i8* }** %tf1, align 8 - %"$tf1_387" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$tf1_386", i32 2 - %"$tf1_388" = bitcast { i8*, i8* }* %"$tf1_387" to { { i8*, i8* }* (i8*)*, i8* }* - %"$tf1_389" = load { { i8*, i8* }* (i8*)*, i8* }, { { i8*, i8* }* (i8*)*, i8* }* %"$tf1_388", align 8 - %"$tf1_fptr_390" = extractvalue { { i8*, i8* }* (i8*)*, i8* } %"$tf1_389", 0 - %"$tf1_envptr_391" = extractvalue { { i8*, i8* }* (i8*)*, i8* } %"$tf1_389", 1 - %"$tf1_call_392" = call { i8*, i8* }* %"$tf1_fptr_390"(i8* %"$tf1_envptr_391"), !dbg !41 - %"$tf1_393" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$tf1_call_392", i32 3 - %"$tf1_394" = bitcast { i8*, i8* }* %"$tf1_393" to { { { %TName_Pair_String_ByStr20* (i8*, [20 x i8]*)*, i8* } (i8*, %String)*, i8* } (i8*)*, i8* }* - %"$tf1_395" = load { { { %TName_Pair_String_ByStr20* (i8*, [20 x i8]*)*, i8* } (i8*, %String)*, i8* } (i8*)*, i8* }, { { { %TName_Pair_String_ByStr20* (i8*, [20 x i8]*)*, i8* } (i8*, %String)*, i8* } (i8*)*, i8* }* %"$tf1_394", align 8 - %"$tf1_fptr_396" = extractvalue { { { %TName_Pair_String_ByStr20* (i8*, [20 x i8]*)*, i8* } (i8*, %String)*, i8* } (i8*)*, i8* } %"$tf1_395", 0 - %"$tf1_envptr_397" = extractvalue { { { %TName_Pair_String_ByStr20* (i8*, [20 x i8]*)*, i8* } (i8*, %String)*, i8* } (i8*)*, i8* } %"$tf1_395", 1 - %"$tf1_call_398" = call { { %TName_Pair_String_ByStr20* (i8*, [20 x i8]*)*, i8* } (i8*, %String)*, i8* } %"$tf1_fptr_396"(i8* %"$tf1_envptr_397"), !dbg !41 - store { { %TName_Pair_String_ByStr20* (i8*, [20 x i8]*)*, i8* } (i8*, %String)*, i8* } %"$tf1_call_398", { { %TName_Pair_String_ByStr20* (i8*, [20 x i8]*)*, i8* } (i8*, %String)*, i8* }* %t2, align 8, !dbg !42 - %"$gasrem_399" = load i64, i64* @_gasrem, align 8 - %"$gascmp_400" = icmp ugt i64 1, %"$gasrem_399" - br i1 %"$gascmp_400", label %"$out_of_gas_401", label %"$have_gas_402" - -"$out_of_gas_401": ; preds = %"$have_gas_384" - call void @_out_of_gas() - br label %"$have_gas_402" - -"$have_gas_402": ; preds = %"$out_of_gas_401", %"$have_gas_384" - %"$consume_403" = sub i64 %"$gasrem_399", 1 - store i64 %"$consume_403", i64* @_gasrem, 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_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", 1 + store i64 %"$consume_389", i64* @_gasrem, align 8 + %"$tf1_390" = load { i8*, i8* }*, { i8*, i8* }** %tf1, align 8 + %"$tf1_391" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$tf1_390", i32 2 + %"$tf1_392" = bitcast { i8*, i8* }* %"$tf1_391" to { { i8*, i8* }* (i8*)*, i8* }* + %"$tf1_393" = load { { i8*, i8* }* (i8*)*, i8* }, { { i8*, i8* }* (i8*)*, i8* }* %"$tf1_392", align 8 + %"$tf1_fptr_394" = extractvalue { { i8*, i8* }* (i8*)*, i8* } %"$tf1_393", 0 + %"$tf1_envptr_395" = extractvalue { { i8*, i8* }* (i8*)*, i8* } %"$tf1_393", 1 + %"$tf1_call_396" = call { i8*, i8* }* %"$tf1_fptr_394"(i8* %"$tf1_envptr_395"), !dbg !62 + %"$tf1_397" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$tf1_call_396", i32 3 + %"$tf1_398" = bitcast { i8*, i8* }* %"$tf1_397" to { { { %TName_Pair_String_ByStr20* (i8*, [20 x i8]*)*, i8* } (i8*, %String)*, i8* } (i8*)*, i8* }* + %"$tf1_399" = load { { { %TName_Pair_String_ByStr20* (i8*, [20 x i8]*)*, i8* } (i8*, %String)*, i8* } (i8*)*, i8* }, { { { %TName_Pair_String_ByStr20* (i8*, [20 x i8]*)*, i8* } (i8*, %String)*, i8* } (i8*)*, i8* }* %"$tf1_398", align 8 + %"$tf1_fptr_400" = extractvalue { { { %TName_Pair_String_ByStr20* (i8*, [20 x i8]*)*, i8* } (i8*, %String)*, i8* } (i8*)*, i8* } %"$tf1_399", 0 + %"$tf1_envptr_401" = extractvalue { { { %TName_Pair_String_ByStr20* (i8*, [20 x i8]*)*, i8* } (i8*, %String)*, i8* } (i8*)*, i8* } %"$tf1_399", 1 + %"$tf1_call_402" = call { { %TName_Pair_String_ByStr20* (i8*, [20 x i8]*)*, i8* } (i8*, %String)*, i8* } %"$tf1_fptr_400"(i8* %"$tf1_envptr_401"), !dbg !62 + store { { %TName_Pair_String_ByStr20* (i8*, [20 x i8]*)*, i8* } (i8*, %String)*, i8* } %"$tf1_call_402", { { %TName_Pair_String_ByStr20* (i8*, [20 x i8]*)*, i8* } (i8*, %String)*, i8* }* %t2, align 8, !dbg !63 + %"$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_388" + call void @_out_of_gas() + br label %"$have_gas_406" + +"$have_gas_406": ; preds = %"$out_of_gas_405", %"$have_gas_388" + %"$consume_407" = sub i64 %"$gasrem_403", 1 + store i64 %"$consume_407", i64* @_gasrem, align 8 %uint32_one = alloca %Uint32, align 8 - %"$gasrem_404" = load i64, i64* @_gasrem, align 8 - %"$gascmp_405" = icmp ugt i64 1, %"$gasrem_404" - br i1 %"$gascmp_405", label %"$out_of_gas_406", label %"$have_gas_407" + call void @llvm.dbg.declare(metadata %Uint32* %uint32_one, metadata !64, metadata !DIExpression()), !dbg !65 + %"$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_406": ; preds = %"$have_gas_402" +"$out_of_gas_410": ; preds = %"$have_gas_406" call void @_out_of_gas() - br label %"$have_gas_407" + br label %"$have_gas_411" -"$have_gas_407": ; preds = %"$out_of_gas_406", %"$have_gas_402" - %"$consume_408" = sub i64 %"$gasrem_404", 1 - store i64 %"$consume_408", i64* @_gasrem, align 8 - store %Uint32 { i32 1 }, %Uint32* %uint32_one, align 4, !dbg !43 - %"$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" +"$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 %Uint32 { i32 1 }, %Uint32* %uint32_one, align 4, !dbg !66 + %"$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_411": ; preds = %"$have_gas_407" +"$out_of_gas_415": ; preds = %"$have_gas_411" call void @_out_of_gas() - br label %"$have_gas_412" + br label %"$have_gas_416" -"$have_gas_412": ; preds = %"$out_of_gas_411", %"$have_gas_407" - %"$consume_413" = sub i64 %"$gasrem_409", 1 - store i64 %"$consume_413", 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 %uint64_two = alloca %Uint64, 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" + call void @llvm.dbg.declare(metadata %Uint64* %uint64_two, metadata !67, metadata !DIExpression()), !dbg !68 + %"$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_416": ; preds = %"$have_gas_412" +"$out_of_gas_420": ; preds = %"$have_gas_416" call void @_out_of_gas() - br label %"$have_gas_417" + br label %"$have_gas_421" -"$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 %Uint64 { i64 2 }, %Uint64* %uint64_two, align 8, !dbg !44 - %"$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" +"$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 %Uint64 { i64 2 }, %Uint64* %uint64_two, align 8, !dbg !69 + %"$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_421": ; preds = %"$have_gas_417" +"$out_of_gas_425": ; preds = %"$have_gas_421" call void @_out_of_gas() - br label %"$have_gas_422" + br label %"$have_gas_426" -"$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 +"$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 %hello_string = alloca %String, 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" + call void @llvm.dbg.declare(metadata %String* %hello_string, metadata !70, metadata !DIExpression()), !dbg !71 + %"$gasrem_428" = load i64, i64* @_gasrem, align 8 + %"$gascmp_429" = icmp ugt i64 1, %"$gasrem_428" + br i1 %"$gascmp_429", label %"$out_of_gas_430", label %"$have_gas_431" -"$out_of_gas_426": ; preds = %"$have_gas_422" +"$out_of_gas_430": ; preds = %"$have_gas_426" call void @_out_of_gas() - br label %"$have_gas_427" + br label %"$have_gas_431" -"$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 - store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_429", i32 0, i32 0), i32 5 }, %String* %hello_string, align 8, !dbg !45 - %"$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" +"$have_gas_431": ; preds = %"$out_of_gas_430", %"$have_gas_426" + %"$consume_432" = sub i64 %"$gasrem_428", 1 + store i64 %"$consume_432", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_433", i32 0, i32 0), i32 5 }, %String* %hello_string, align 8, !dbg !72 + %"$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_432": ; preds = %"$have_gas_427" +"$out_of_gas_436": ; preds = %"$have_gas_431" call void @_out_of_gas() - br label %"$have_gas_433" + br label %"$have_gas_437" -"$have_gas_433": ; preds = %"$out_of_gas_432", %"$have_gas_427" - %"$consume_434" = sub i64 %"$gasrem_430", 1 - store i64 %"$consume_434", i64* @_gasrem, align 8 +"$have_gas_437": ; preds = %"$out_of_gas_436", %"$have_gas_431" + %"$consume_438" = sub i64 %"$gasrem_434", 1 + store i64 %"$consume_438", i64* @_gasrem, align 8 %addr_bystr20 = alloca [20 x i8], align 1 - %"$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" + call void @llvm.dbg.declare(metadata [20 x i8]* %addr_bystr20, metadata !73, metadata !DIExpression()), !dbg !74 + %"$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_437": ; preds = %"$have_gas_433" +"$out_of_gas_441": ; preds = %"$have_gas_437" call void @_out_of_gas() - br label %"$have_gas_438" + br label %"$have_gas_442" -"$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 - store [20 x i8] c"\AA\AA\AA\AA\AA\AA\AA\AA\AA\AA\AA\AA\AA\AA\AA\AA\AA\AA\AA\AA", [20 x i8]* %addr_bystr20, align 1, !dbg !46 - %"$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" +"$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 + store [20 x i8] c"\AA\AA\AA\AA\AA\AA\AA\AA\AA\AA\AA\AA\AA\AA\AA\AA\AA\AA\AA\AA", [20 x i8]* %addr_bystr20, align 1, !dbg !75 + %"$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_442": ; preds = %"$have_gas_438" +"$out_of_gas_446": ; preds = %"$have_gas_442" call void @_out_of_gas() - br label %"$have_gas_443" + br label %"$have_gas_447" -"$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_447": ; preds = %"$out_of_gas_446", %"$have_gas_442" + %"$consume_448" = sub i64 %"$gasrem_444", 1 + store i64 %"$consume_448", i64* @_gasrem, align 8 %p1 = alloca %TName_Pair_Uint32_Uint64*, align 8 - %"$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" + call void @llvm.dbg.declare(metadata %TName_Pair_Uint32_Uint64** %p1, metadata !76, metadata !DIExpression()), !dbg !77 + %"$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_447": ; preds = %"$have_gas_443" +"$out_of_gas_451": ; preds = %"$have_gas_447" call void @_out_of_gas() - br label %"$have_gas_448" + br label %"$have_gas_452" -"$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_452": ; preds = %"$out_of_gas_451", %"$have_gas_447" + %"$consume_453" = sub i64 %"$gasrem_449", 1 + store i64 %"$consume_453", i64* @_gasrem, align 8 %"$t1_6" = alloca { %TName_Pair_Uint32_Uint64* (i8*, %Uint64)*, i8* }, align 8 - %"$t1_450" = load { { %TName_Pair_Uint32_Uint64* (i8*, %Uint64)*, i8* } (i8*, %Uint32)*, i8* }, { { %TName_Pair_Uint32_Uint64* (i8*, %Uint64)*, i8* } (i8*, %Uint32)*, i8* }* %t1, align 8 - %"$t1_fptr_451" = extractvalue { { %TName_Pair_Uint32_Uint64* (i8*, %Uint64)*, i8* } (i8*, %Uint32)*, i8* } %"$t1_450", 0 - %"$t1_envptr_452" = extractvalue { { %TName_Pair_Uint32_Uint64* (i8*, %Uint64)*, i8* } (i8*, %Uint32)*, i8* } %"$t1_450", 1 - %"$uint32_one_453" = load %Uint32, %Uint32* %uint32_one, align 4 - %"$t1_call_454" = call { %TName_Pair_Uint32_Uint64* (i8*, %Uint64)*, i8* } %"$t1_fptr_451"(i8* %"$t1_envptr_452", %Uint32 %"$uint32_one_453"), !dbg !47 - store { %TName_Pair_Uint32_Uint64* (i8*, %Uint64)*, i8* } %"$t1_call_454", { %TName_Pair_Uint32_Uint64* (i8*, %Uint64)*, i8* }* %"$t1_6", align 8, !dbg !47 + %"$t1_454" = load { { %TName_Pair_Uint32_Uint64* (i8*, %Uint64)*, i8* } (i8*, %Uint32)*, i8* }, { { %TName_Pair_Uint32_Uint64* (i8*, %Uint64)*, i8* } (i8*, %Uint32)*, i8* }* %t1, align 8 + %"$t1_fptr_455" = extractvalue { { %TName_Pair_Uint32_Uint64* (i8*, %Uint64)*, i8* } (i8*, %Uint32)*, i8* } %"$t1_454", 0 + %"$t1_envptr_456" = extractvalue { { %TName_Pair_Uint32_Uint64* (i8*, %Uint64)*, i8* } (i8*, %Uint32)*, i8* } %"$t1_454", 1 + %"$uint32_one_457" = load %Uint32, %Uint32* %uint32_one, align 4 + %"$t1_call_458" = call { %TName_Pair_Uint32_Uint64* (i8*, %Uint64)*, i8* } %"$t1_fptr_455"(i8* %"$t1_envptr_456", %Uint32 %"$uint32_one_457"), !dbg !78 + store { %TName_Pair_Uint32_Uint64* (i8*, %Uint64)*, i8* } %"$t1_call_458", { %TName_Pair_Uint32_Uint64* (i8*, %Uint64)*, i8* }* %"$t1_6", align 8, !dbg !78 %"$t1_7" = alloca %TName_Pair_Uint32_Uint64*, align 8 - %"$$t1_6_455" = load { %TName_Pair_Uint32_Uint64* (i8*, %Uint64)*, i8* }, { %TName_Pair_Uint32_Uint64* (i8*, %Uint64)*, i8* }* %"$t1_6", align 8 - %"$$t1_6_fptr_456" = extractvalue { %TName_Pair_Uint32_Uint64* (i8*, %Uint64)*, i8* } %"$$t1_6_455", 0 - %"$$t1_6_envptr_457" = extractvalue { %TName_Pair_Uint32_Uint64* (i8*, %Uint64)*, i8* } %"$$t1_6_455", 1 - %"$uint64_two_458" = load %Uint64, %Uint64* %uint64_two, align 8 - %"$$t1_6_call_459" = call %TName_Pair_Uint32_Uint64* %"$$t1_6_fptr_456"(i8* %"$$t1_6_envptr_457", %Uint64 %"$uint64_two_458"), !dbg !47 - store %TName_Pair_Uint32_Uint64* %"$$t1_6_call_459", %TName_Pair_Uint32_Uint64** %"$t1_7", align 8, !dbg !47 - %"$$t1_7_460" = load %TName_Pair_Uint32_Uint64*, %TName_Pair_Uint32_Uint64** %"$t1_7", align 8 - store %TName_Pair_Uint32_Uint64* %"$$t1_7_460", %TName_Pair_Uint32_Uint64** %p1, align 8, !dbg !47 - %"$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_448" - call void @_out_of_gas() - br label %"$have_gas_464" - -"$have_gas_464": ; preds = %"$out_of_gas_463", %"$have_gas_448" - %"$consume_465" = sub i64 %"$gasrem_461", 1 - store i64 %"$consume_465", i64* @_gasrem, align 8 + call void @llvm.dbg.declare(metadata %TName_Pair_Uint32_Uint64** %"$t1_7", metadata !79, metadata !DIExpression()), !dbg !78 + %"$$t1_6_459" = load { %TName_Pair_Uint32_Uint64* (i8*, %Uint64)*, i8* }, { %TName_Pair_Uint32_Uint64* (i8*, %Uint64)*, i8* }* %"$t1_6", align 8 + %"$$t1_6_fptr_460" = extractvalue { %TName_Pair_Uint32_Uint64* (i8*, %Uint64)*, i8* } %"$$t1_6_459", 0 + %"$$t1_6_envptr_461" = extractvalue { %TName_Pair_Uint32_Uint64* (i8*, %Uint64)*, i8* } %"$$t1_6_459", 1 + %"$uint64_two_462" = load %Uint64, %Uint64* %uint64_two, align 8 + %"$$t1_6_call_463" = call %TName_Pair_Uint32_Uint64* %"$$t1_6_fptr_460"(i8* %"$$t1_6_envptr_461", %Uint64 %"$uint64_two_462"), !dbg !78 + store %TName_Pair_Uint32_Uint64* %"$$t1_6_call_463", %TName_Pair_Uint32_Uint64** %"$t1_7", align 8, !dbg !78 + %"$$t1_7_464" = load %TName_Pair_Uint32_Uint64*, %TName_Pair_Uint32_Uint64** %"$t1_7", align 8 + store %TName_Pair_Uint32_Uint64* %"$$t1_7_464", %TName_Pair_Uint32_Uint64** %p1, align 8, !dbg !78 + %"$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" + +"$out_of_gas_467": ; preds = %"$have_gas_452" + call void @_out_of_gas() + br label %"$have_gas_468" + +"$have_gas_468": ; preds = %"$out_of_gas_467", %"$have_gas_452" + %"$consume_469" = sub i64 %"$gasrem_465", 1 + store i64 %"$consume_469", i64* @_gasrem, align 8 %p2 = alloca %TName_Pair_String_ByStr20*, 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" + call void @llvm.dbg.declare(metadata %TName_Pair_String_ByStr20** %p2, metadata !80, metadata !DIExpression()), !dbg !81 + %"$gasrem_470" = load i64, i64* @_gasrem, align 8 + %"$gascmp_471" = icmp ugt i64 1, %"$gasrem_470" + br i1 %"$gascmp_471", label %"$out_of_gas_472", label %"$have_gas_473" -"$out_of_gas_468": ; preds = %"$have_gas_464" +"$out_of_gas_472": ; preds = %"$have_gas_468" call void @_out_of_gas() - br label %"$have_gas_469" + br label %"$have_gas_473" -"$have_gas_469": ; preds = %"$out_of_gas_468", %"$have_gas_464" - %"$consume_470" = sub i64 %"$gasrem_466", 1 - store i64 %"$consume_470", i64* @_gasrem, align 8 +"$have_gas_473": ; preds = %"$out_of_gas_472", %"$have_gas_468" + %"$consume_474" = sub i64 %"$gasrem_470", 1 + store i64 %"$consume_474", i64* @_gasrem, align 8 %"$t2_8" = alloca { %TName_Pair_String_ByStr20* (i8*, [20 x i8]*)*, i8* }, align 8 - %"$t2_471" = load { { %TName_Pair_String_ByStr20* (i8*, [20 x i8]*)*, i8* } (i8*, %String)*, i8* }, { { %TName_Pair_String_ByStr20* (i8*, [20 x i8]*)*, i8* } (i8*, %String)*, i8* }* %t2, align 8 - %"$t2_fptr_472" = extractvalue { { %TName_Pair_String_ByStr20* (i8*, [20 x i8]*)*, i8* } (i8*, %String)*, i8* } %"$t2_471", 0 - %"$t2_envptr_473" = extractvalue { { %TName_Pair_String_ByStr20* (i8*, [20 x i8]*)*, i8* } (i8*, %String)*, i8* } %"$t2_471", 1 - %"$hello_string_474" = load %String, %String* %hello_string, align 8 - %"$t2_call_475" = call { %TName_Pair_String_ByStr20* (i8*, [20 x i8]*)*, i8* } %"$t2_fptr_472"(i8* %"$t2_envptr_473", %String %"$hello_string_474"), !dbg !48 - store { %TName_Pair_String_ByStr20* (i8*, [20 x i8]*)*, i8* } %"$t2_call_475", { %TName_Pair_String_ByStr20* (i8*, [20 x i8]*)*, i8* }* %"$t2_8", align 8, !dbg !48 + %"$t2_475" = load { { %TName_Pair_String_ByStr20* (i8*, [20 x i8]*)*, i8* } (i8*, %String)*, i8* }, { { %TName_Pair_String_ByStr20* (i8*, [20 x i8]*)*, i8* } (i8*, %String)*, i8* }* %t2, align 8 + %"$t2_fptr_476" = extractvalue { { %TName_Pair_String_ByStr20* (i8*, [20 x i8]*)*, i8* } (i8*, %String)*, i8* } %"$t2_475", 0 + %"$t2_envptr_477" = extractvalue { { %TName_Pair_String_ByStr20* (i8*, [20 x i8]*)*, i8* } (i8*, %String)*, i8* } %"$t2_475", 1 + %"$hello_string_478" = load %String, %String* %hello_string, align 8 + %"$t2_call_479" = call { %TName_Pair_String_ByStr20* (i8*, [20 x i8]*)*, i8* } %"$t2_fptr_476"(i8* %"$t2_envptr_477", %String %"$hello_string_478"), !dbg !82 + store { %TName_Pair_String_ByStr20* (i8*, [20 x i8]*)*, i8* } %"$t2_call_479", { %TName_Pair_String_ByStr20* (i8*, [20 x i8]*)*, i8* }* %"$t2_8", align 8, !dbg !82 %"$t2_9" = alloca %TName_Pair_String_ByStr20*, align 8 - %"$$t2_8_476" = load { %TName_Pair_String_ByStr20* (i8*, [20 x i8]*)*, i8* }, { %TName_Pair_String_ByStr20* (i8*, [20 x i8]*)*, i8* }* %"$t2_8", align 8 - %"$$t2_8_fptr_477" = extractvalue { %TName_Pair_String_ByStr20* (i8*, [20 x i8]*)*, i8* } %"$$t2_8_476", 0 - %"$$t2_8_envptr_478" = extractvalue { %TName_Pair_String_ByStr20* (i8*, [20 x i8]*)*, i8* } %"$$t2_8_476", 1 - %"$$t2_8_addr_bystr20_479" = alloca [20 x i8], align 1 - %"$addr_bystr20_480" = load [20 x i8], [20 x i8]* %addr_bystr20, align 1 - store [20 x i8] %"$addr_bystr20_480", [20 x i8]* %"$$t2_8_addr_bystr20_479", align 1 - %"$$t2_8_call_481" = call %TName_Pair_String_ByStr20* %"$$t2_8_fptr_477"(i8* %"$$t2_8_envptr_478", [20 x i8]* %"$$t2_8_addr_bystr20_479"), !dbg !48 - store %TName_Pair_String_ByStr20* %"$$t2_8_call_481", %TName_Pair_String_ByStr20** %"$t2_9", align 8, !dbg !48 - %"$$t2_9_482" = load %TName_Pair_String_ByStr20*, %TName_Pair_String_ByStr20** %"$t2_9", align 8 - store %TName_Pair_String_ByStr20* %"$$t2_9_482", %TName_Pair_String_ByStr20** %p2, align 8, !dbg !48 - %"$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_469" - call void @_out_of_gas() - br label %"$have_gas_486" - -"$have_gas_486": ; preds = %"$out_of_gas_485", %"$have_gas_469" - %"$consume_487" = sub i64 %"$gasrem_483", 1 - store i64 %"$consume_487", i64* @_gasrem, align 8 - %"$p1_488" = load %TName_Pair_Uint32_Uint64*, %TName_Pair_Uint32_Uint64** %p1, align 8 - %"$p2_489" = load %TName_Pair_String_ByStr20*, %TName_Pair_String_ByStr20** %p2, align 8 - %"$adtval_490_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_490_salloc" = call i8* @_salloc(i8* %"$adtval_490_load", i64 17) - %"$adtval_490" = bitcast i8* %"$adtval_490_salloc" to %"CName_Pair_Pair_(Uint32)_(Uint64)_Pair_(String)_(ByStr20)"* - %"$adtgep_491" = getelementptr inbounds %"CName_Pair_Pair_(Uint32)_(Uint64)_Pair_(String)_(ByStr20)", %"CName_Pair_Pair_(Uint32)_(Uint64)_Pair_(String)_(ByStr20)"* %"$adtval_490", i32 0, i32 0 - store i8 0, i8* %"$adtgep_491", align 1 - %"$adtgep_492" = getelementptr inbounds %"CName_Pair_Pair_(Uint32)_(Uint64)_Pair_(String)_(ByStr20)", %"CName_Pair_Pair_(Uint32)_(Uint64)_Pair_(String)_(ByStr20)"* %"$adtval_490", i32 0, i32 1 - store %TName_Pair_Uint32_Uint64* %"$p1_488", %TName_Pair_Uint32_Uint64** %"$adtgep_492", align 8 - %"$adtgep_493" = getelementptr inbounds %"CName_Pair_Pair_(Uint32)_(Uint64)_Pair_(String)_(ByStr20)", %"CName_Pair_Pair_(Uint32)_(Uint64)_Pair_(String)_(ByStr20)"* %"$adtval_490", i32 0, i32 2 - store %TName_Pair_String_ByStr20* %"$p2_489", %TName_Pair_String_ByStr20** %"$adtgep_493", align 8 - %"$adtptr_494" = bitcast %"CName_Pair_Pair_(Uint32)_(Uint64)_Pair_(String)_(ByStr20)"* %"$adtval_490" to %"TName_Pair_Pair_(Uint32)_(Uint64)_Pair_(String)_(ByStr20)"* - store %"TName_Pair_Pair_(Uint32)_(Uint64)_Pair_(String)_(ByStr20)"* %"$adtptr_494", %"TName_Pair_Pair_(Uint32)_(Uint64)_Pair_(String)_(ByStr20)"** %"$expr_10", align 8, !dbg !49 - %"$$expr_10_495" = load %"TName_Pair_Pair_(Uint32)_(Uint64)_Pair_(String)_(ByStr20)"*, %"TName_Pair_Pair_(Uint32)_(Uint64)_Pair_(String)_(ByStr20)"** %"$expr_10", align 8 - ret %"TName_Pair_Pair_(Uint32)_(Uint64)_Pair_(String)_(ByStr20)"* %"$$expr_10_495" + call void @llvm.dbg.declare(metadata %TName_Pair_String_ByStr20** %"$t2_9", metadata !83, metadata !DIExpression()), !dbg !82 + %"$$t2_8_480" = load { %TName_Pair_String_ByStr20* (i8*, [20 x i8]*)*, i8* }, { %TName_Pair_String_ByStr20* (i8*, [20 x i8]*)*, i8* }* %"$t2_8", align 8 + %"$$t2_8_fptr_481" = extractvalue { %TName_Pair_String_ByStr20* (i8*, [20 x i8]*)*, i8* } %"$$t2_8_480", 0 + %"$$t2_8_envptr_482" = extractvalue { %TName_Pair_String_ByStr20* (i8*, [20 x i8]*)*, i8* } %"$$t2_8_480", 1 + %"$$t2_8_addr_bystr20_483" = alloca [20 x i8], align 1 + %"$addr_bystr20_484" = load [20 x i8], [20 x i8]* %addr_bystr20, align 1 + store [20 x i8] %"$addr_bystr20_484", [20 x i8]* %"$$t2_8_addr_bystr20_483", align 1 + %"$$t2_8_call_485" = call %TName_Pair_String_ByStr20* %"$$t2_8_fptr_481"(i8* %"$$t2_8_envptr_482", [20 x i8]* %"$$t2_8_addr_bystr20_483"), !dbg !82 + store %TName_Pair_String_ByStr20* %"$$t2_8_call_485", %TName_Pair_String_ByStr20** %"$t2_9", align 8, !dbg !82 + %"$$t2_9_486" = load %TName_Pair_String_ByStr20*, %TName_Pair_String_ByStr20** %"$t2_9", align 8 + store %TName_Pair_String_ByStr20* %"$$t2_9_486", %TName_Pair_String_ByStr20** %p2, align 8, !dbg !82 + %"$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_489": ; preds = %"$have_gas_473" + call void @_out_of_gas() + br label %"$have_gas_490" + +"$have_gas_490": ; preds = %"$out_of_gas_489", %"$have_gas_473" + %"$consume_491" = sub i64 %"$gasrem_487", 1 + store i64 %"$consume_491", i64* @_gasrem, align 8 + %"$p1_492" = load %TName_Pair_Uint32_Uint64*, %TName_Pair_Uint32_Uint64** %p1, align 8 + %"$p2_493" = load %TName_Pair_String_ByStr20*, %TName_Pair_String_ByStr20** %p2, align 8 + %"$adtval_494_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_494_salloc" = call i8* @_salloc(i8* %"$adtval_494_load", i64 17) + %"$adtval_494" = bitcast i8* %"$adtval_494_salloc" to %"CName_Pair_Pair_(Uint32)_(Uint64)_Pair_(String)_(ByStr20)"* + %"$adtgep_495" = getelementptr inbounds %"CName_Pair_Pair_(Uint32)_(Uint64)_Pair_(String)_(ByStr20)", %"CName_Pair_Pair_(Uint32)_(Uint64)_Pair_(String)_(ByStr20)"* %"$adtval_494", i32 0, i32 0 + store i8 0, i8* %"$adtgep_495", align 1 + %"$adtgep_496" = getelementptr inbounds %"CName_Pair_Pair_(Uint32)_(Uint64)_Pair_(String)_(ByStr20)", %"CName_Pair_Pair_(Uint32)_(Uint64)_Pair_(String)_(ByStr20)"* %"$adtval_494", i32 0, i32 1 + store %TName_Pair_Uint32_Uint64* %"$p1_492", %TName_Pair_Uint32_Uint64** %"$adtgep_496", align 8 + %"$adtgep_497" = getelementptr inbounds %"CName_Pair_Pair_(Uint32)_(Uint64)_Pair_(String)_(ByStr20)", %"CName_Pair_Pair_(Uint32)_(Uint64)_Pair_(String)_(ByStr20)"* %"$adtval_494", i32 0, i32 2 + store %TName_Pair_String_ByStr20* %"$p2_493", %TName_Pair_String_ByStr20** %"$adtgep_497", align 8 + %"$adtptr_498" = bitcast %"CName_Pair_Pair_(Uint32)_(Uint64)_Pair_(String)_(ByStr20)"* %"$adtval_494" to %"TName_Pair_Pair_(Uint32)_(Uint64)_Pair_(String)_(ByStr20)"* + store %"TName_Pair_Pair_(Uint32)_(Uint64)_Pair_(String)_(ByStr20)"* %"$adtptr_498", %"TName_Pair_Pair_(Uint32)_(Uint64)_Pair_(String)_(ByStr20)"** %"$expr_10", align 8, !dbg !84 + %"$$expr_10_499" = load %"TName_Pair_Pair_(Uint32)_(Uint64)_Pair_(String)_(ByStr20)"*, %"TName_Pair_Pair_(Uint32)_(Uint64)_Pair_(String)_(ByStr20)"** %"$expr_10", align 8 + ret %"TName_Pair_Pair_(Uint32)_(Uint64)_Pair_(String)_(ByStr20)"* %"$$expr_10_499" } declare void @_print_scilla_val(i8*, %_TyDescrTy_Typ*, i8*) define void @scilla_main() { entry: - %"$exprval_496" = call %"TName_Pair_Pair_(Uint32)_(Uint64)_Pair_(String)_(ByStr20)"* @_scilla_expr_fun(i8* null) - %"$memvoidcast_497" = bitcast %"TName_Pair_Pair_(Uint32)_(Uint64)_Pair_(String)_(ByStr20)"* %"$exprval_496" to i8* - %"$execptr_load_498" = load i8*, i8** @_execptr, align 8 - call void @_print_scilla_val(i8* %"$execptr_load_498", %_TyDescrTy_Typ* @"$TyDescr_ADT_Pair_Pair_(Uint32)_(Uint64)_Pair_(String)_(ByStr20)_71", i8* %"$memvoidcast_497") + %"$exprval_500" = call %"TName_Pair_Pair_(Uint32)_(Uint64)_Pair_(String)_(ByStr20)"* @_scilla_expr_fun(i8* null) + %"$memvoidcast_501" = bitcast %"TName_Pair_Pair_(Uint32)_(Uint64)_Pair_(String)_(ByStr20)"* %"$exprval_500" to i8* + %"$execptr_load_502" = load i8*, i8** @_execptr, align 8 + call void @_print_scilla_val(i8* %"$execptr_load_502", %_TyDescrTy_Typ* @"$TyDescr_ADT_Pair_Pair_(Uint32)_(Uint64)_Pair_(String)_(ByStr20)_71", i8* %"$memvoidcast_501") ret void } +attributes #0 = { nocallback nofree nosync nounwind readnone speculatable willreturn } + !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) +!1 = distinct !DICompileUnit(language: DW_LANG_C89, file: !2, producer: "Scilla Compiler", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false) !2 = !DIFile(filename: "typ2-inst.scilexp", directory: "codegen/expr") -!3 = !{} -!4 = distinct !DISubprogram(name: "$fundef_33", linkageName: "$fundef_33", 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") -!8 = !DILocation(line: 12, column: 6, scope: !4) -!9 = !DILocation(line: 12, column: 5, scope: !4) -!10 = distinct !DISubprogram(name: "$fundef_31", linkageName: "$fundef_31", scope: !2, file: !2, line: 11, type: !5, scopeLine: 11, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!3 = distinct !DISubprogram(name: "$fundef_33", linkageName: "$fundef_33", scope: !2, file: !2, line: 12, type: !4, scopeLine: 12, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!4 = !DISubroutineType(types: !5) +!5 = !{!6} +!6 = !DIBasicType(tag: DW_TAG_unspecified_type, name: "void") +!7 = !{} +!8 = !DILocation(line: 12, column: 6, scope: !3) +!9 = !DILocation(line: 12, column: 5, scope: !3) +!10 = distinct !DISubprogram(name: "$fundef_31", linkageName: "$fundef_31", scope: !2, file: !2, line: 11, type: !4, scopeLine: 11, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) !11 = !DILocation(line: 11, column: 3, scope: !10) -!12 = distinct !DISubprogram(name: "$fundef_29", linkageName: "$fundef_29", scope: !2, file: !2, line: 12, type: !5, scopeLine: 12, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!12 = distinct !DISubprogram(name: "$fundef_29", linkageName: "$fundef_29", scope: !2, file: !2, line: 12, type: !4, scopeLine: 12, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) !13 = !DILocation(line: 12, column: 6, scope: !12) !14 = !DILocation(line: 12, column: 5, scope: !12) -!15 = distinct !DISubprogram(name: "$fundef_27", linkageName: "$fundef_27", scope: !2, file: !2, line: 11, type: !5, scopeLine: 11, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!15 = distinct !DISubprogram(name: "$fundef_27", linkageName: "$fundef_27", scope: !2, file: !2, line: 11, type: !4, scopeLine: 11, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) !16 = !DILocation(line: 11, column: 3, scope: !15) -!17 = distinct !DISubprogram(name: "$fundef_25", linkageName: "$fundef_25", scope: !2, file: !2, line: 6, type: !5, scopeLine: 6, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!18 = !DILocation(line: 6, column: 5, scope: !17) -!19 = distinct !DISubprogram(name: "$fundef_23", linkageName: "$fundef_23", scope: !2, file: !2, line: 5, type: !5, scopeLine: 5, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!20 = !DILocation(line: 6, column: 5, scope: !19) -!21 = distinct !DISubprogram(name: "$fundef_21", linkageName: "$fundef_21", scope: !2, file: !2, line: 5, type: !5, scopeLine: 5, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!22 = !DILocation(line: 5, column: 3, scope: !21) -!23 = 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) -!24 = !DILocation(line: 3, column: 3, scope: !23) -!25 = distinct !DISubprogram(name: "$fundef_17", linkageName: "$fundef_17", scope: !2, file: !2, line: 6, type: !5, scopeLine: 6, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!26 = !DILocation(line: 6, column: 5, scope: !25) -!27 = distinct !DISubprogram(name: "$fundef_15", linkageName: "$fundef_15", scope: !2, file: !2, line: 5, type: !5, scopeLine: 5, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!28 = !DILocation(line: 6, column: 5, scope: !27) -!29 = distinct !DISubprogram(name: "$fundef_13", linkageName: "$fundef_13", scope: !2, file: !2, line: 5, type: !5, scopeLine: 5, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!30 = !DILocation(line: 5, column: 3, scope: !29) -!31 = distinct !DISubprogram(name: "$fundef_11", linkageName: "$fundef_11", scope: !2, file: !2, line: 3, type: !5, scopeLine: 3, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!32 = !DILocation(line: 3, 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 = !DILocation(line: 0, scope: !33) -!36 = 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) -!37 = !DILocation(line: 2, column: 3, scope: !36) -!38 = !DILocation(line: 10, column: 3, scope: !36) -!39 = !DILocation(line: 16, column: 11, scope: !36) -!40 = !DILocation(line: 16, column: 10, scope: !36) -!41 = !DILocation(line: 17, column: 11, scope: !36) -!42 = !DILocation(line: 17, column: 10, scope: !36) -!43 = !DILocation(line: 18, column: 18, scope: !36) -!44 = !DILocation(line: 19, column: 18, scope: !36) -!45 = !DILocation(line: 20, column: 26, scope: !36) -!46 = !DILocation(line: 21, column: 20, scope: !36) -!47 = !DILocation(line: 23, column: 10, scope: !36) -!48 = !DILocation(line: 24, column: 10, scope: !36) -!49 = !DILocation(line: 25, column: 1, scope: !36) +!17 = distinct !DISubprogram(name: "$fundef_25", linkageName: "$fundef_25", scope: !2, file: !2, line: 6, type: !4, scopeLine: 6, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!18 = !DILocalVariable(name: "b", scope: !17, file: !2, line: 5, type: !19) +!19 = !DIBasicType(name: "ByStr20", size: 20) +!20 = !DILocation(line: 5, column: 8, scope: !17) +!21 = !DILocalVariable(name: "$retval_26", scope: !17, file: !2, line: 6, type: !22) +!22 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "Pair (String) (ByStr20)", baseType: !23, size: 8, align: 8, dwarfAddressSpace: 0) +!23 = !DIBasicType(name: "Pair (String) (ByStr20)", size: 8) +!24 = !DILocation(line: 6, column: 5, scope: !17) +!25 = distinct !DISubprogram(name: "$fundef_23", linkageName: "$fundef_23", scope: !2, file: !2, line: 5, type: !4, scopeLine: 5, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!26 = !DILocalVariable(name: "a", scope: !25, file: !2, line: 4, type: !27) +!27 = !DIBasicType(name: "String", size: 16) +!28 = !DILocation(line: 4, column: 8, scope: !25) +!29 = !DILocation(line: 6, column: 5, scope: !25) +!30 = distinct !DISubprogram(name: "$fundef_21", linkageName: "$fundef_21", scope: !2, file: !2, line: 5, type: !4, scopeLine: 5, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!31 = !DILocation(line: 5, column: 3, scope: !30) +!32 = distinct !DISubprogram(name: "$fundef_19", linkageName: "$fundef_19", scope: !2, file: !2, line: 3, type: !4, scopeLine: 3, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!33 = !DILocation(line: 3, column: 3, scope: !32) +!34 = distinct !DISubprogram(name: "$fundef_17", linkageName: "$fundef_17", scope: !2, file: !2, line: 6, type: !4, scopeLine: 6, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!35 = !DILocalVariable(name: "b", scope: !34, file: !2, line: 5, type: !36) +!36 = !DIBasicType(name: "Uint64", size: 8) +!37 = !DILocation(line: 5, column: 8, scope: !34) +!38 = !DILocalVariable(name: "$retval_18", scope: !34, file: !2, line: 6, type: !39) +!39 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "Pair (Uint32) (Uint64)", baseType: !40, size: 8, align: 8, dwarfAddressSpace: 0) +!40 = !DIBasicType(name: "Pair (Uint32) (Uint64)", size: 8) +!41 = !DILocation(line: 6, column: 5, scope: !34) +!42 = distinct !DISubprogram(name: "$fundef_15", linkageName: "$fundef_15", scope: !2, file: !2, line: 5, type: !4, scopeLine: 5, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!43 = !DILocalVariable(name: "a", scope: !42, file: !2, line: 4, type: !44) +!44 = !DIBasicType(name: "Uint32", size: 4) +!45 = !DILocation(line: 4, column: 8, scope: !42) +!46 = !DILocation(line: 6, column: 5, scope: !42) +!47 = distinct !DISubprogram(name: "$fundef_13", linkageName: "$fundef_13", scope: !2, file: !2, line: 5, type: !4, scopeLine: 5, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!48 = !DILocation(line: 5, column: 3, scope: !47) +!49 = distinct !DISubprogram(name: "$fundef_11", linkageName: "$fundef_11", scope: !2, file: !2, line: 3, type: !4, scopeLine: 3, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!50 = !DILocation(line: 3, column: 3, scope: !49) +!51 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !52, file: !52, type: !4, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!52 = !DIFile(filename: ".", directory: ".") +!53 = !DILocation(line: 0, scope: !51) +!54 = distinct !DISubprogram(name: "_scilla_expr_fun", linkageName: "_scilla_expr_fun", scope: !2, file: !2, line: 2, type: !4, scopeLine: 2, spFlags: DISPFlagDefinition, unit: !1, retainedNodes: !7) +!55 = !DILocalVariable(name: "$expr_10", scope: !54, file: !2, line: 2, type: !56) +!56 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "Pair (Pair (Uint32) (Uint64)) (Pair (String) (ByStr20))", baseType: !57, size: 8, align: 8, dwarfAddressSpace: 0) +!57 = !DIBasicType(name: "Pair (Pair (Uint32) (Uint64)) (Pair (String) (ByStr20))", size: 8) +!58 = !DILocation(line: 2, column: 3, scope: !54) +!59 = !DILocation(line: 10, column: 3, scope: !54) +!60 = !DILocation(line: 16, column: 11, scope: !54) +!61 = !DILocation(line: 16, column: 10, scope: !54) +!62 = !DILocation(line: 17, column: 11, scope: !54) +!63 = !DILocation(line: 17, column: 10, scope: !54) +!64 = !DILocalVariable(name: "uint32_one", scope: !54, file: !2, line: 18, type: !44) +!65 = !DILocation(line: 18, column: 5, scope: !54) +!66 = !DILocation(line: 18, column: 18, scope: !54) +!67 = !DILocalVariable(name: "uint64_two", scope: !54, file: !2, line: 19, type: !36) +!68 = !DILocation(line: 19, column: 5, scope: !54) +!69 = !DILocation(line: 19, column: 18, scope: !54) +!70 = !DILocalVariable(name: "hello_string", scope: !54, file: !2, line: 20, type: !27) +!71 = !DILocation(line: 20, column: 5, scope: !54) +!72 = !DILocation(line: 20, column: 26, scope: !54) +!73 = !DILocalVariable(name: "addr_bystr20", scope: !54, file: !2, line: 21, type: !19) +!74 = !DILocation(line: 21, column: 5, scope: !54) +!75 = !DILocation(line: 21, column: 20, scope: !54) +!76 = !DILocalVariable(name: "p1", scope: !54, file: !2, line: 23, type: !39) +!77 = !DILocation(line: 23, column: 5, scope: !54) +!78 = !DILocation(line: 23, column: 10, scope: !54) +!79 = !DILocalVariable(name: "$t1_7", scope: !54, file: !2, line: 23, type: !39) +!80 = !DILocalVariable(name: "p2", scope: !54, file: !2, line: 24, type: !22) +!81 = !DILocation(line: 24, column: 5, scope: !54) +!82 = !DILocation(line: 24, column: 10, scope: !54) +!83 = !DILocalVariable(name: "$t2_9", scope: !54, file: !2, line: 24, type: !22) +!84 = !DILocation(line: 25, column: 1, scope: !54) diff --git a/testsuite/expr/typ2-inst.ll b/testsuite/expr/typ2-inst.ll index 61307535..28baac62 100644 --- a/testsuite/expr/typ2-inst.ll +++ b/testsuite/expr/typ2-inst.ll @@ -26,7 +26,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-pc-linux-gnu" +target triple = "x86_64-unknown-linux-gnu" %"$TyDescrTy_PrimTyp_35" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/testsuite/expr/typ3-inst.dbg.ll b/testsuite/expr/typ3-inst.dbg.ll index b6a2b4d4..b6871774 100644 --- a/testsuite/expr/typ3-inst.dbg.ll +++ b/testsuite/expr/typ3-inst.dbg.ll @@ -27,7 +27,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-pc-linux-gnu" +target triple = "x86_64-unknown-linux-gnu" %"$TyDescrTy_PrimTyp_37" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } @@ -36,9 +36,9 @@ target triple = "x86_64-pc-linux-gnu" %"$TyDescrTy_ADTTyp_Specl_72" = type { %_TyDescrTy_Typ**, %"$TyDescrTy_ADTTyp_Constr_74"**, %"$TyDescrTy_ADTTyp_73"* } %"$TyDescrTy_ADTTyp_Constr_74" = type { %TyDescrString, i32, %_TyDescrTy_Typ** } %Int32 = type { i32 } -%"$ParamDescr_516" = type { %ParamDescrString, %_TyDescrTy_Typ* } +%"$ParamDescr_522" = type { %ParamDescrString, %_TyDescrTy_Typ* } %ParamDescrString = type { i8*, i32 } -%"$TransDescr_517" = type { %ParamDescrString, i32, %"$ParamDescr_516"* } +%"$TransDescr_523" = type { %ParamDescrString, i32, %"$ParamDescr_522"* } %TName_Pair_Uint32_Uint64 = type { i8, %CName_Pair_Uint32_Uint64* } %CName_Pair_Uint32_Uint64 = type <{ i8, %Uint32, %Uint64 }> %Uint64 = type { i64 } @@ -138,308 +138,329 @@ target triple = "x86_64-pc-linux-gnu" @"$_gas_charge_accPairUtils_4" = global %Int32 zeroinitializer @_tydescr_table = constant [21 x %_TyDescrTy_Typ*] [%_TyDescrTy_Typ* @"$TyDescr_ADT_Pair_ByStr1_Uint64_77", %_TyDescrTy_Typ* @"$TyDescr_Event_61", %_TyDescrTy_Typ* @"$TyDescr_Int64_43", %_TyDescrTy_Typ* @"$TyDescr_Uint256_53", %_TyDescrTy_Typ* @"$TyDescr_Uint32_41", %_TyDescrTy_Typ* @"$TyDescr_ADT_Pair_ByStr1_ByStr2_76", %_TyDescrTy_Typ* @"$TyDescr_Uint64_45", %_TyDescrTy_Typ* @"$TyDescr_Bnum_57", %_TyDescrTy_Typ* @"$TyDescr_Uint128_49", %_TyDescrTy_Typ* @"$TyDescr_ADT_Pair_Uint32_Uint64_78", %_TyDescrTy_Typ* @"$TyDescr_Exception_63", %_TyDescrTy_Typ* @"$TyDescr_String_55", %_TyDescrTy_Typ* @"$TyDescr_Bystr1_71", %_TyDescrTy_Typ* @"$TyDescr_Int256_51", %_TyDescrTy_Typ* @"$TyDescr_Int128_47", %_TyDescrTy_Typ* @"$TyDescr_ADT_Pair_Pair_(Uint32)_(Uint64)_Pair_(ByStr1)_(ByStr2)_75", %_TyDescrTy_Typ* @"$TyDescr_Bystr_67", %_TyDescrTy_Typ* @"$TyDescr_ReplicateContr_65", %_TyDescrTy_Typ* @"$TyDescr_Message_59", %_TyDescrTy_Typ* @"$TyDescr_Bystr2_69", %_TyDescrTy_Typ* @"$TyDescr_Int32_39"] @_tydescr_table_length = constant i32 21 -@_contract_parameters = constant [0 x %"$ParamDescr_516"] zeroinitializer +@_contract_parameters = constant [0 x %"$ParamDescr_522"] zeroinitializer @_contract_parameters_length = constant i32 0 -@_transition_parameters = constant [0 x %"$TransDescr_517"] zeroinitializer +@_transition_parameters = constant [0 x %"$TransDescr_523"] zeroinitializer @_transition_parameters_length = constant i32 0 -define internal { { %TName_Pair_Uint32_Uint64* (i8*, %Uint64)*, i8* } (i8*, %Uint32)*, i8* } @"$fundef_35"(%"$$fundef_35_env_109"* %0) !dbg !4 { +define internal { { %TName_Pair_Uint32_Uint64* (i8*, %Uint64)*, i8* } (i8*, %Uint32)*, i8* } @"$fundef_35"(%"$$fundef_35_env_109"* %0) !dbg !3 { entry: - %"$$fundef_35_env_tf_270" = getelementptr inbounds %"$$fundef_35_env_109", %"$$fundef_35_env_109"* %0, i32 0, i32 0 - %"$tf_envload_271" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_35_env_tf_270", align 8 + %"$$fundef_35_env_tf_276" = getelementptr inbounds %"$$fundef_35_env_109", %"$$fundef_35_env_109"* %0, i32 0, i32 0 + %"$tf_envload_277" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_35_env_tf_276", align 8 %tf = alloca { i8*, i8* }*, align 8 - store { i8*, i8* }* %"$tf_envload_271", { i8*, i8* }** %tf, align 8 + store { i8*, i8* }* %"$tf_envload_277", { i8*, i8* }** %tf, align 8 %"$retval_36" = alloca { { %TName_Pair_Uint32_Uint64* (i8*, %Uint64)*, i8* } (i8*, %Uint32)*, 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" + %"$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_274": ; preds = %entry +"$out_of_gas_280": ; 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 - %"$tf_277" = load { i8*, i8* }*, { i8*, i8* }** %tf, align 8 - %"$tf_278" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$tf_277", i32 0 - %"$tf_279" = bitcast { i8*, i8* }* %"$tf_278" to { { i8*, i8* }* (i8*)*, i8* }* - %"$tf_280" = load { { i8*, i8* }* (i8*)*, i8* }, { { i8*, i8* }* (i8*)*, i8* }* %"$tf_279", align 8 - %"$tf_fptr_281" = extractvalue { { i8*, i8* }* (i8*)*, i8* } %"$tf_280", 0 - %"$tf_envptr_282" = extractvalue { { i8*, i8* }* (i8*)*, i8* } %"$tf_280", 1 - %"$tf_call_283" = call { i8*, i8* }* %"$tf_fptr_281"(i8* %"$tf_envptr_282"), !dbg !8 - %"$tf_284" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$tf_call_283", i32 1 - %"$tf_285" = bitcast { i8*, i8* }* %"$tf_284" to { { { %TName_Pair_Uint32_Uint64* (i8*, %Uint64)*, i8* } (i8*, %Uint32)*, i8* } (i8*)*, i8* }* - %"$tf_286" = load { { { %TName_Pair_Uint32_Uint64* (i8*, %Uint64)*, i8* } (i8*, %Uint32)*, i8* } (i8*)*, i8* }, { { { %TName_Pair_Uint32_Uint64* (i8*, %Uint64)*, i8* } (i8*, %Uint32)*, i8* } (i8*)*, i8* }* %"$tf_285", align 8 - %"$tf_fptr_287" = extractvalue { { { %TName_Pair_Uint32_Uint64* (i8*, %Uint64)*, i8* } (i8*, %Uint32)*, i8* } (i8*)*, i8* } %"$tf_286", 0 - %"$tf_envptr_288" = extractvalue { { { %TName_Pair_Uint32_Uint64* (i8*, %Uint64)*, i8* } (i8*, %Uint32)*, i8* } (i8*)*, i8* } %"$tf_286", 1 - %"$tf_call_289" = call { { %TName_Pair_Uint32_Uint64* (i8*, %Uint64)*, i8* } (i8*, %Uint32)*, i8* } %"$tf_fptr_287"(i8* %"$tf_envptr_288"), !dbg !8 - store { { %TName_Pair_Uint32_Uint64* (i8*, %Uint64)*, i8* } (i8*, %Uint32)*, i8* } %"$tf_call_289", { { %TName_Pair_Uint32_Uint64* (i8*, %Uint64)*, i8* } (i8*, %Uint32)*, i8* }* %"$retval_36", align 8, !dbg !9 - %"$$retval_36_290" = load { { %TName_Pair_Uint32_Uint64* (i8*, %Uint64)*, i8* } (i8*, %Uint32)*, i8* }, { { %TName_Pair_Uint32_Uint64* (i8*, %Uint64)*, i8* } (i8*, %Uint32)*, i8* }* %"$retval_36", align 8 - ret { { %TName_Pair_Uint32_Uint64* (i8*, %Uint64)*, i8* } (i8*, %Uint32)*, i8* } %"$$retval_36_290" + 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 + %"$tf_283" = load { i8*, i8* }*, { i8*, i8* }** %tf, align 8 + %"$tf_284" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$tf_283", i32 0 + %"$tf_285" = bitcast { i8*, i8* }* %"$tf_284" to { { i8*, i8* }* (i8*)*, i8* }* + %"$tf_286" = load { { i8*, i8* }* (i8*)*, i8* }, { { i8*, i8* }* (i8*)*, i8* }* %"$tf_285", align 8 + %"$tf_fptr_287" = extractvalue { { i8*, i8* }* (i8*)*, i8* } %"$tf_286", 0 + %"$tf_envptr_288" = extractvalue { { i8*, i8* }* (i8*)*, i8* } %"$tf_286", 1 + %"$tf_call_289" = call { i8*, i8* }* %"$tf_fptr_287"(i8* %"$tf_envptr_288"), !dbg !8 + %"$tf_290" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$tf_call_289", i32 1 + %"$tf_291" = bitcast { i8*, i8* }* %"$tf_290" to { { { %TName_Pair_Uint32_Uint64* (i8*, %Uint64)*, i8* } (i8*, %Uint32)*, i8* } (i8*)*, i8* }* + %"$tf_292" = load { { { %TName_Pair_Uint32_Uint64* (i8*, %Uint64)*, i8* } (i8*, %Uint32)*, i8* } (i8*)*, i8* }, { { { %TName_Pair_Uint32_Uint64* (i8*, %Uint64)*, i8* } (i8*, %Uint32)*, i8* } (i8*)*, i8* }* %"$tf_291", align 8 + %"$tf_fptr_293" = extractvalue { { { %TName_Pair_Uint32_Uint64* (i8*, %Uint64)*, i8* } (i8*, %Uint32)*, i8* } (i8*)*, i8* } %"$tf_292", 0 + %"$tf_envptr_294" = extractvalue { { { %TName_Pair_Uint32_Uint64* (i8*, %Uint64)*, i8* } (i8*, %Uint32)*, i8* } (i8*)*, i8* } %"$tf_292", 1 + %"$tf_call_295" = call { { %TName_Pair_Uint32_Uint64* (i8*, %Uint64)*, i8* } (i8*, %Uint32)*, i8* } %"$tf_fptr_293"(i8* %"$tf_envptr_294"), !dbg !8 + store { { %TName_Pair_Uint32_Uint64* (i8*, %Uint64)*, i8* } (i8*, %Uint32)*, i8* } %"$tf_call_295", { { %TName_Pair_Uint32_Uint64* (i8*, %Uint64)*, i8* } (i8*, %Uint32)*, i8* }* %"$retval_36", align 8, !dbg !9 + %"$$retval_36_296" = load { { %TName_Pair_Uint32_Uint64* (i8*, %Uint64)*, i8* } (i8*, %Uint32)*, i8* }, { { %TName_Pair_Uint32_Uint64* (i8*, %Uint64)*, i8* } (i8*, %Uint32)*, i8* }* %"$retval_36", align 8 + ret { { %TName_Pair_Uint32_Uint64* (i8*, %Uint64)*, i8* } (i8*, %Uint32)*, i8* } %"$$retval_36_296" } define internal { i8*, i8* }* @"$fundef_33"(%"$$fundef_33_env_110"* %0) !dbg !10 { entry: - %"$$fundef_33_env_tf_253" = getelementptr inbounds %"$$fundef_33_env_110", %"$$fundef_33_env_110"* %0, i32 0, i32 0 - %"$tf_envload_254" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_33_env_tf_253", align 8 + %"$$fundef_33_env_tf_259" = getelementptr inbounds %"$$fundef_33_env_110", %"$$fundef_33_env_110"* %0, i32 0, i32 0 + %"$tf_envload_260" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_33_env_tf_259", align 8 %tf = alloca { i8*, i8* }*, align 8 - store { i8*, i8* }* %"$tf_envload_254", { i8*, i8* }** %tf, align 8 + store { i8*, i8* }* %"$tf_envload_260", { i8*, i8* }** %tf, align 8 %"$retval_34" = alloca { i8*, i8* }*, 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" + %"$gasrem_261" = load i64, i64* @_gasrem, align 8 + %"$gascmp_262" = icmp ugt i64 1, %"$gasrem_261" + br i1 %"$gascmp_262", label %"$out_of_gas_263", label %"$have_gas_264" -"$out_of_gas_257": ; preds = %entry +"$out_of_gas_263": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_258" - -"$have_gas_258": ; preds = %"$out_of_gas_257", %entry - %"$consume_259" = sub i64 %"$gasrem_255", 1 - store i64 %"$consume_259", i64* @_gasrem, align 8 - %"$$fundef_35_envp_260_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_35_envp_260_salloc" = call i8* @_salloc(i8* %"$$fundef_35_envp_260_load", i64 8) - %"$$fundef_35_envp_260" = bitcast i8* %"$$fundef_35_envp_260_salloc" to %"$$fundef_35_env_109"* - %"$$fundef_35_env_voidp_262" = bitcast %"$$fundef_35_env_109"* %"$$fundef_35_envp_260" to i8* - %"$$fundef_35_cloval_263" = insertvalue { { { %TName_Pair_Uint32_Uint64* (i8*, %Uint64)*, i8* } (i8*, %Uint32)*, i8* } (i8*)*, i8* } { { { %TName_Pair_Uint32_Uint64* (i8*, %Uint64)*, i8* } (i8*, %Uint32)*, i8* } (i8*)* bitcast ({ { %TName_Pair_Uint32_Uint64* (i8*, %Uint64)*, i8* } (i8*, %Uint32)*, i8* } (%"$$fundef_35_env_109"*)* @"$fundef_35" to { { %TName_Pair_Uint32_Uint64* (i8*, %Uint64)*, i8* } (i8*, %Uint32)*, i8* } (i8*)*), i8* undef }, i8* %"$$fundef_35_env_voidp_262", 1 - %"$$fundef_35_env_tf_264" = getelementptr inbounds %"$$fundef_35_env_109", %"$$fundef_35_env_109"* %"$$fundef_35_envp_260", i32 0, i32 0 - %"$tf_265" = load { i8*, i8* }*, { i8*, i8* }** %tf, align 8 - store { i8*, i8* }* %"$tf_265", { i8*, i8* }** %"$$fundef_35_env_tf_264", align 8 - %"$dyndisp_table_266_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$dyndisp_table_266_salloc_salloc" = call i8* @_salloc(i8* %"$dyndisp_table_266_salloc_load", i64 64) - %"$dyndisp_table_266_salloc" = bitcast i8* %"$dyndisp_table_266_salloc_salloc" to [4 x { i8*, i8* }]* - %"$dyndisp_table_266" = bitcast [4 x { i8*, i8* }]* %"$dyndisp_table_266_salloc" to { i8*, i8* }* - %"$dyndisp_gep_267" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_266", i32 1 - %"$dyndisp_pcast_268" = bitcast { i8*, i8* }* %"$dyndisp_gep_267" to { { { %TName_Pair_Uint32_Uint64* (i8*, %Uint64)*, i8* } (i8*, %Uint32)*, i8* } (i8*)*, i8* }* - store { { { %TName_Pair_Uint32_Uint64* (i8*, %Uint64)*, i8* } (i8*, %Uint32)*, i8* } (i8*)*, i8* } %"$$fundef_35_cloval_263", { { { %TName_Pair_Uint32_Uint64* (i8*, %Uint64)*, i8* } (i8*, %Uint32)*, i8* } (i8*)*, i8* }* %"$dyndisp_pcast_268", align 8 - store { i8*, i8* }* %"$dyndisp_table_266", { i8*, i8* }** %"$retval_34", align 8, !dbg !11 - %"$$retval_34_269" = load { i8*, i8* }*, { i8*, i8* }** %"$retval_34", align 8 - ret { i8*, i8* }* %"$$retval_34_269" + br label %"$have_gas_264" + +"$have_gas_264": ; preds = %"$out_of_gas_263", %entry + %"$consume_265" = sub i64 %"$gasrem_261", 1 + store i64 %"$consume_265", i64* @_gasrem, align 8 + %"$$fundef_35_envp_266_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_35_envp_266_salloc" = call i8* @_salloc(i8* %"$$fundef_35_envp_266_load", i64 8) + %"$$fundef_35_envp_266" = bitcast i8* %"$$fundef_35_envp_266_salloc" to %"$$fundef_35_env_109"* + %"$$fundef_35_env_voidp_268" = bitcast %"$$fundef_35_env_109"* %"$$fundef_35_envp_266" to i8* + %"$$fundef_35_cloval_269" = insertvalue { { { %TName_Pair_Uint32_Uint64* (i8*, %Uint64)*, i8* } (i8*, %Uint32)*, i8* } (i8*)*, i8* } { { { %TName_Pair_Uint32_Uint64* (i8*, %Uint64)*, i8* } (i8*, %Uint32)*, i8* } (i8*)* bitcast ({ { %TName_Pair_Uint32_Uint64* (i8*, %Uint64)*, i8* } (i8*, %Uint32)*, i8* } (%"$$fundef_35_env_109"*)* @"$fundef_35" to { { %TName_Pair_Uint32_Uint64* (i8*, %Uint64)*, i8* } (i8*, %Uint32)*, i8* } (i8*)*), i8* undef }, i8* %"$$fundef_35_env_voidp_268", 1 + %"$$fundef_35_env_tf_270" = getelementptr inbounds %"$$fundef_35_env_109", %"$$fundef_35_env_109"* %"$$fundef_35_envp_266", i32 0, i32 0 + %"$tf_271" = load { i8*, i8* }*, { i8*, i8* }** %tf, align 8 + store { i8*, i8* }* %"$tf_271", { i8*, i8* }** %"$$fundef_35_env_tf_270", align 8 + %"$dyndisp_table_272_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$dyndisp_table_272_salloc_salloc" = call i8* @_salloc(i8* %"$dyndisp_table_272_salloc_load", i64 64) + %"$dyndisp_table_272_salloc" = bitcast i8* %"$dyndisp_table_272_salloc_salloc" to [4 x { i8*, i8* }]* + %"$dyndisp_table_272" = bitcast [4 x { i8*, i8* }]* %"$dyndisp_table_272_salloc" to { i8*, i8* }* + %"$dyndisp_gep_273" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_272", i32 1 + %"$dyndisp_pcast_274" = bitcast { i8*, i8* }* %"$dyndisp_gep_273" to { { { %TName_Pair_Uint32_Uint64* (i8*, %Uint64)*, i8* } (i8*, %Uint32)*, i8* } (i8*)*, i8* }* + store { { { %TName_Pair_Uint32_Uint64* (i8*, %Uint64)*, i8* } (i8*, %Uint32)*, i8* } (i8*)*, i8* } %"$$fundef_35_cloval_269", { { { %TName_Pair_Uint32_Uint64* (i8*, %Uint64)*, i8* } (i8*, %Uint32)*, i8* } (i8*)*, i8* }* %"$dyndisp_pcast_274", align 8 + store { i8*, i8* }* %"$dyndisp_table_272", { i8*, i8* }** %"$retval_34", align 8, !dbg !11 + %"$$retval_34_275" = load { i8*, i8* }*, { i8*, i8* }** %"$retval_34", align 8 + ret { i8*, i8* }* %"$$retval_34_275" } define internal %TName_Pair_ByStr1_ByStr2* @"$fundef_31"(%"$$fundef_31_env_111"* %0, [2 x i8] %1) !dbg !12 { entry: - %"$$fundef_31_env_a_239" = getelementptr inbounds %"$$fundef_31_env_111", %"$$fundef_31_env_111"* %0, i32 0, i32 0 - %"$a_envload_240" = load [1 x i8], [1 x i8]* %"$$fundef_31_env_a_239", align 1 + %"$b_258" = alloca [2 x i8], align 1 + store [2 x i8] %1, [2 x i8]* %"$b_258", align 1 + call void @llvm.dbg.declare(metadata [2 x i8]* %"$b_258", metadata !13, metadata !DIExpression()), !dbg !15 + %"$$fundef_31_env_a_244" = getelementptr inbounds %"$$fundef_31_env_111", %"$$fundef_31_env_111"* %0, i32 0, i32 0 + %"$a_envload_245" = load [1 x i8], [1 x i8]* %"$$fundef_31_env_a_244", align 1 %a = alloca [1 x i8], align 1 - store [1 x i8] %"$a_envload_240", [1 x i8]* %a, align 1 + store [1 x i8] %"$a_envload_245", [1 x i8]* %a, align 1 %"$retval_32" = alloca %TName_Pair_ByStr1_ByStr2*, 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" + call void @llvm.dbg.declare(metadata %TName_Pair_ByStr1_ByStr2** %"$retval_32", metadata !16, metadata !DIExpression()), !dbg !19 + %"$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_243": ; preds = %entry +"$out_of_gas_248": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_244" - -"$have_gas_244": ; preds = %"$out_of_gas_243", %entry - %"$consume_245" = sub i64 %"$gasrem_241", 1 - store i64 %"$consume_245", i64* @_gasrem, align 8 - %"$a_246" = load [1 x i8], [1 x i8]* %a, align 1 - %"$adtval_247_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_247_salloc" = call i8* @_salloc(i8* %"$adtval_247_load", i64 4) - %"$adtval_247" = bitcast i8* %"$adtval_247_salloc" to %CName_Pair_ByStr1_ByStr2* - %"$adtgep_248" = getelementptr inbounds %CName_Pair_ByStr1_ByStr2, %CName_Pair_ByStr1_ByStr2* %"$adtval_247", i32 0, i32 0 - store i8 0, i8* %"$adtgep_248", align 1 - %"$adtgep_249" = getelementptr inbounds %CName_Pair_ByStr1_ByStr2, %CName_Pair_ByStr1_ByStr2* %"$adtval_247", i32 0, i32 1 - store [1 x i8] %"$a_246", [1 x i8]* %"$adtgep_249", align 1 - %"$adtgep_250" = getelementptr inbounds %CName_Pair_ByStr1_ByStr2, %CName_Pair_ByStr1_ByStr2* %"$adtval_247", i32 0, i32 2 - store [2 x i8] %1, [2 x i8]* %"$adtgep_250", align 1 - %"$adtptr_251" = bitcast %CName_Pair_ByStr1_ByStr2* %"$adtval_247" to %TName_Pair_ByStr1_ByStr2* - store %TName_Pair_ByStr1_ByStr2* %"$adtptr_251", %TName_Pair_ByStr1_ByStr2** %"$retval_32", align 8, !dbg !13 - %"$$retval_32_252" = load %TName_Pair_ByStr1_ByStr2*, %TName_Pair_ByStr1_ByStr2** %"$retval_32", align 8 - ret %TName_Pair_ByStr1_ByStr2* %"$$retval_32_252" + br label %"$have_gas_249" + +"$have_gas_249": ; preds = %"$out_of_gas_248", %entry + %"$consume_250" = sub i64 %"$gasrem_246", 1 + store i64 %"$consume_250", i64* @_gasrem, align 8 + %"$a_251" = load [1 x i8], [1 x i8]* %a, align 1 + %"$adtval_252_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_252_salloc" = call i8* @_salloc(i8* %"$adtval_252_load", i64 4) + %"$adtval_252" = bitcast i8* %"$adtval_252_salloc" to %CName_Pair_ByStr1_ByStr2* + %"$adtgep_253" = getelementptr inbounds %CName_Pair_ByStr1_ByStr2, %CName_Pair_ByStr1_ByStr2* %"$adtval_252", i32 0, i32 0 + store i8 0, i8* %"$adtgep_253", align 1 + %"$adtgep_254" = getelementptr inbounds %CName_Pair_ByStr1_ByStr2, %CName_Pair_ByStr1_ByStr2* %"$adtval_252", i32 0, i32 1 + store [1 x i8] %"$a_251", [1 x i8]* %"$adtgep_254", align 1 + %"$adtgep_255" = getelementptr inbounds %CName_Pair_ByStr1_ByStr2, %CName_Pair_ByStr1_ByStr2* %"$adtval_252", i32 0, i32 2 + store [2 x i8] %1, [2 x i8]* %"$adtgep_255", align 1 + %"$adtptr_256" = bitcast %CName_Pair_ByStr1_ByStr2* %"$adtval_252" to %TName_Pair_ByStr1_ByStr2* + store %TName_Pair_ByStr1_ByStr2* %"$adtptr_256", %TName_Pair_ByStr1_ByStr2** %"$retval_32", align 8, !dbg !19 + %"$$retval_32_257" = load %TName_Pair_ByStr1_ByStr2*, %TName_Pair_ByStr1_ByStr2** %"$retval_32", align 8 + ret %TName_Pair_ByStr1_ByStr2* %"$$retval_32_257" } -define internal { %TName_Pair_ByStr1_ByStr2* (i8*, [2 x i8])*, i8* } @"$fundef_29"(%"$$fundef_29_env_112"* %0, [1 x i8] %1) !dbg !14 { +define internal { %TName_Pair_ByStr1_ByStr2* (i8*, [2 x i8])*, i8* } @"$fundef_29"(%"$$fundef_29_env_112"* %0, [1 x i8] %1) !dbg !20 { entry: + %"$a_243" = alloca [1 x i8], align 1 + store [1 x i8] %1, [1 x i8]* %"$a_243", align 1 + call void @llvm.dbg.declare(metadata [1 x i8]* %"$a_243", metadata !21, metadata !DIExpression()), !dbg !23 %"$retval_30" = alloca { %TName_Pair_ByStr1_ByStr2* (i8*, [2 x i8])*, i8* }, align 8 - %"$gasrem_228" = load i64, i64* @_gasrem, align 8 - %"$gascmp_229" = icmp ugt i64 1, %"$gasrem_228" - br i1 %"$gascmp_229", label %"$out_of_gas_230", label %"$have_gas_231" + %"$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_230": ; preds = %entry +"$out_of_gas_234": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_231" - -"$have_gas_231": ; preds = %"$out_of_gas_230", %entry - %"$consume_232" = sub i64 %"$gasrem_228", 1 - store i64 %"$consume_232", i64* @_gasrem, align 8 - %"$$fundef_31_envp_233_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_31_envp_233_salloc" = call i8* @_salloc(i8* %"$$fundef_31_envp_233_load", i64 1) - %"$$fundef_31_envp_233" = bitcast i8* %"$$fundef_31_envp_233_salloc" to %"$$fundef_31_env_111"* - %"$$fundef_31_env_voidp_235" = bitcast %"$$fundef_31_env_111"* %"$$fundef_31_envp_233" to i8* - %"$$fundef_31_cloval_236" = insertvalue { %TName_Pair_ByStr1_ByStr2* (i8*, [2 x i8])*, i8* } { %TName_Pair_ByStr1_ByStr2* (i8*, [2 x i8])* bitcast (%TName_Pair_ByStr1_ByStr2* (%"$$fundef_31_env_111"*, [2 x i8])* @"$fundef_31" to %TName_Pair_ByStr1_ByStr2* (i8*, [2 x i8])*), i8* undef }, i8* %"$$fundef_31_env_voidp_235", 1 - %"$$fundef_31_env_a_237" = getelementptr inbounds %"$$fundef_31_env_111", %"$$fundef_31_env_111"* %"$$fundef_31_envp_233", i32 0, i32 0 - store [1 x i8] %1, [1 x i8]* %"$$fundef_31_env_a_237", align 1 - store { %TName_Pair_ByStr1_ByStr2* (i8*, [2 x i8])*, i8* } %"$$fundef_31_cloval_236", { %TName_Pair_ByStr1_ByStr2* (i8*, [2 x i8])*, i8* }* %"$retval_30", align 8, !dbg !15 - %"$$retval_30_238" = load { %TName_Pair_ByStr1_ByStr2* (i8*, [2 x i8])*, i8* }, { %TName_Pair_ByStr1_ByStr2* (i8*, [2 x i8])*, i8* }* %"$retval_30", align 8 - ret { %TName_Pair_ByStr1_ByStr2* (i8*, [2 x i8])*, i8* } %"$$retval_30_238" + br label %"$have_gas_235" + +"$have_gas_235": ; preds = %"$out_of_gas_234", %entry + %"$consume_236" = sub i64 %"$gasrem_232", 1 + store i64 %"$consume_236", i64* @_gasrem, align 8 + %"$$fundef_31_envp_237_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_31_envp_237_salloc" = call i8* @_salloc(i8* %"$$fundef_31_envp_237_load", i64 1) + %"$$fundef_31_envp_237" = bitcast i8* %"$$fundef_31_envp_237_salloc" to %"$$fundef_31_env_111"* + %"$$fundef_31_env_voidp_239" = bitcast %"$$fundef_31_env_111"* %"$$fundef_31_envp_237" to i8* + %"$$fundef_31_cloval_240" = insertvalue { %TName_Pair_ByStr1_ByStr2* (i8*, [2 x i8])*, i8* } { %TName_Pair_ByStr1_ByStr2* (i8*, [2 x i8])* bitcast (%TName_Pair_ByStr1_ByStr2* (%"$$fundef_31_env_111"*, [2 x i8])* @"$fundef_31" to %TName_Pair_ByStr1_ByStr2* (i8*, [2 x i8])*), i8* undef }, i8* %"$$fundef_31_env_voidp_239", 1 + %"$$fundef_31_env_a_241" = getelementptr inbounds %"$$fundef_31_env_111", %"$$fundef_31_env_111"* %"$$fundef_31_envp_237", i32 0, i32 0 + store [1 x i8] %1, [1 x i8]* %"$$fundef_31_env_a_241", align 1 + store { %TName_Pair_ByStr1_ByStr2* (i8*, [2 x i8])*, i8* } %"$$fundef_31_cloval_240", { %TName_Pair_ByStr1_ByStr2* (i8*, [2 x i8])*, i8* }* %"$retval_30", align 8, !dbg !24 + %"$$retval_30_242" = load { %TName_Pair_ByStr1_ByStr2* (i8*, [2 x i8])*, i8* }, { %TName_Pair_ByStr1_ByStr2* (i8*, [2 x i8])*, i8* }* %"$retval_30", align 8 + ret { %TName_Pair_ByStr1_ByStr2* (i8*, [2 x i8])*, i8* } %"$$retval_30_242" } -define internal { { %TName_Pair_ByStr1_ByStr2* (i8*, [2 x i8])*, i8* } (i8*, [1 x i8])*, i8* } @"$fundef_27"(%"$$fundef_27_env_113"* %0) !dbg !16 { +define internal { { %TName_Pair_ByStr1_ByStr2* (i8*, [2 x i8])*, i8* } (i8*, [1 x i8])*, i8* } @"$fundef_27"(%"$$fundef_27_env_113"* %0) !dbg !25 { entry: %"$retval_28" = alloca { { %TName_Pair_ByStr1_ByStr2* (i8*, [2 x i8])*, i8* } (i8*, [1 x 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" + %"$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_221": ; preds = %entry +"$out_of_gas_225": ; 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 - store { { %TName_Pair_ByStr1_ByStr2* (i8*, [2 x i8])*, i8* } (i8*, [1 x i8])*, i8* } { { %TName_Pair_ByStr1_ByStr2* (i8*, [2 x i8])*, i8* } (i8*, [1 x i8])* bitcast ({ %TName_Pair_ByStr1_ByStr2* (i8*, [2 x i8])*, i8* } (%"$$fundef_29_env_112"*, [1 x i8])* @"$fundef_29" to { %TName_Pair_ByStr1_ByStr2* (i8*, [2 x i8])*, i8* } (i8*, [1 x i8])*), i8* null }, { { %TName_Pair_ByStr1_ByStr2* (i8*, [2 x i8])*, i8* } (i8*, [1 x i8])*, i8* }* %"$retval_28", align 8, !dbg !17 - %"$$retval_28_227" = load { { %TName_Pair_ByStr1_ByStr2* (i8*, [2 x i8])*, i8* } (i8*, [1 x i8])*, i8* }, { { %TName_Pair_ByStr1_ByStr2* (i8*, [2 x i8])*, i8* } (i8*, [1 x i8])*, i8* }* %"$retval_28", align 8 - ret { { %TName_Pair_ByStr1_ByStr2* (i8*, [2 x i8])*, i8* } (i8*, [1 x i8])*, i8* } %"$$retval_28_227" + br label %"$have_gas_226" + +"$have_gas_226": ; preds = %"$out_of_gas_225", %entry + %"$consume_227" = sub i64 %"$gasrem_223", 1 + store i64 %"$consume_227", i64* @_gasrem, align 8 + store { { %TName_Pair_ByStr1_ByStr2* (i8*, [2 x i8])*, i8* } (i8*, [1 x i8])*, i8* } { { %TName_Pair_ByStr1_ByStr2* (i8*, [2 x i8])*, i8* } (i8*, [1 x i8])* bitcast ({ %TName_Pair_ByStr1_ByStr2* (i8*, [2 x i8])*, i8* } (%"$$fundef_29_env_112"*, [1 x i8])* @"$fundef_29" to { %TName_Pair_ByStr1_ByStr2* (i8*, [2 x i8])*, i8* } (i8*, [1 x i8])*), i8* null }, { { %TName_Pair_ByStr1_ByStr2* (i8*, [2 x i8])*, i8* } (i8*, [1 x i8])*, i8* }* %"$retval_28", align 8, !dbg !26 + %"$$retval_28_231" = load { { %TName_Pair_ByStr1_ByStr2* (i8*, [2 x i8])*, i8* } (i8*, [1 x i8])*, i8* }, { { %TName_Pair_ByStr1_ByStr2* (i8*, [2 x i8])*, i8* } (i8*, [1 x i8])*, i8* }* %"$retval_28", align 8 + ret { { %TName_Pair_ByStr1_ByStr2* (i8*, [2 x i8])*, i8* } (i8*, [1 x i8])*, i8* } %"$$retval_28_231" } -define internal %TName_Pair_ByStr1_Uint64* @"$fundef_25"(%"$$fundef_25_env_114"* %0, %Uint64 %1) !dbg !18 { +define internal %TName_Pair_ByStr1_Uint64* @"$fundef_25"(%"$$fundef_25_env_114"* %0, %Uint64 %1) !dbg !27 { entry: - %"$$fundef_25_env_a_205" = getelementptr inbounds %"$$fundef_25_env_114", %"$$fundef_25_env_114"* %0, i32 0, i32 0 - %"$a_envload_206" = load [1 x i8], [1 x i8]* %"$$fundef_25_env_a_205", align 1 + %"$b_222" = alloca %Uint64, align 8 + store %Uint64 %1, %Uint64* %"$b_222", align 8 + call void @llvm.dbg.declare(metadata %Uint64* %"$b_222", metadata !28, metadata !DIExpression()), !dbg !30 + %"$$fundef_25_env_a_208" = getelementptr inbounds %"$$fundef_25_env_114", %"$$fundef_25_env_114"* %0, i32 0, i32 0 + %"$a_envload_209" = load [1 x i8], [1 x i8]* %"$$fundef_25_env_a_208", align 1 %a = alloca [1 x i8], align 1 - store [1 x i8] %"$a_envload_206", [1 x i8]* %a, align 1 + store [1 x i8] %"$a_envload_209", [1 x i8]* %a, align 1 %"$retval_26" = alloca %TName_Pair_ByStr1_Uint64*, 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" + call void @llvm.dbg.declare(metadata %TName_Pair_ByStr1_Uint64** %"$retval_26", metadata !31, metadata !DIExpression()), !dbg !34 + %"$gasrem_210" = load i64, i64* @_gasrem, align 8 + %"$gascmp_211" = icmp ugt i64 1, %"$gasrem_210" + br i1 %"$gascmp_211", label %"$out_of_gas_212", label %"$have_gas_213" -"$out_of_gas_209": ; preds = %entry +"$out_of_gas_212": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_210" - -"$have_gas_210": ; preds = %"$out_of_gas_209", %entry - %"$consume_211" = sub i64 %"$gasrem_207", 1 - store i64 %"$consume_211", i64* @_gasrem, align 8 - %"$a_212" = load [1 x i8], [1 x i8]* %a, align 1 - %"$adtval_213_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_213_salloc" = call i8* @_salloc(i8* %"$adtval_213_load", i64 10) - %"$adtval_213" = bitcast i8* %"$adtval_213_salloc" to %CName_Pair_ByStr1_Uint64* - %"$adtgep_214" = getelementptr inbounds %CName_Pair_ByStr1_Uint64, %CName_Pair_ByStr1_Uint64* %"$adtval_213", i32 0, i32 0 - store i8 0, i8* %"$adtgep_214", align 1 - %"$adtgep_215" = getelementptr inbounds %CName_Pair_ByStr1_Uint64, %CName_Pair_ByStr1_Uint64* %"$adtval_213", i32 0, i32 1 - store [1 x i8] %"$a_212", [1 x i8]* %"$adtgep_215", align 1 - %"$adtgep_216" = getelementptr inbounds %CName_Pair_ByStr1_Uint64, %CName_Pair_ByStr1_Uint64* %"$adtval_213", i32 0, i32 2 - store %Uint64 %1, %Uint64* %"$adtgep_216", align 8 - %"$adtptr_217" = bitcast %CName_Pair_ByStr1_Uint64* %"$adtval_213" to %TName_Pair_ByStr1_Uint64* - store %TName_Pair_ByStr1_Uint64* %"$adtptr_217", %TName_Pair_ByStr1_Uint64** %"$retval_26", align 8, !dbg !19 - %"$$retval_26_218" = load %TName_Pair_ByStr1_Uint64*, %TName_Pair_ByStr1_Uint64** %"$retval_26", align 8 - ret %TName_Pair_ByStr1_Uint64* %"$$retval_26_218" + br label %"$have_gas_213" + +"$have_gas_213": ; preds = %"$out_of_gas_212", %entry + %"$consume_214" = sub i64 %"$gasrem_210", 1 + store i64 %"$consume_214", i64* @_gasrem, align 8 + %"$a_215" = load [1 x i8], [1 x i8]* %a, align 1 + %"$adtval_216_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_216_salloc" = call i8* @_salloc(i8* %"$adtval_216_load", i64 10) + %"$adtval_216" = bitcast i8* %"$adtval_216_salloc" to %CName_Pair_ByStr1_Uint64* + %"$adtgep_217" = getelementptr inbounds %CName_Pair_ByStr1_Uint64, %CName_Pair_ByStr1_Uint64* %"$adtval_216", i32 0, i32 0 + store i8 0, i8* %"$adtgep_217", align 1 + %"$adtgep_218" = getelementptr inbounds %CName_Pair_ByStr1_Uint64, %CName_Pair_ByStr1_Uint64* %"$adtval_216", i32 0, i32 1 + store [1 x i8] %"$a_215", [1 x i8]* %"$adtgep_218", align 1 + %"$adtgep_219" = getelementptr inbounds %CName_Pair_ByStr1_Uint64, %CName_Pair_ByStr1_Uint64* %"$adtval_216", i32 0, i32 2 + store %Uint64 %1, %Uint64* %"$adtgep_219", align 8 + %"$adtptr_220" = bitcast %CName_Pair_ByStr1_Uint64* %"$adtval_216" to %TName_Pair_ByStr1_Uint64* + store %TName_Pair_ByStr1_Uint64* %"$adtptr_220", %TName_Pair_ByStr1_Uint64** %"$retval_26", align 8, !dbg !34 + %"$$retval_26_221" = load %TName_Pair_ByStr1_Uint64*, %TName_Pair_ByStr1_Uint64** %"$retval_26", align 8 + ret %TName_Pair_ByStr1_Uint64* %"$$retval_26_221" } -define internal { %TName_Pair_ByStr1_Uint64* (i8*, %Uint64)*, i8* } @"$fundef_23"(%"$$fundef_23_env_115"* %0, [1 x i8] %1) !dbg !20 { +define internal { %TName_Pair_ByStr1_Uint64* (i8*, %Uint64)*, i8* } @"$fundef_23"(%"$$fundef_23_env_115"* %0, [1 x i8] %1) !dbg !35 { entry: + %"$a_207" = alloca [1 x i8], align 1 + store [1 x i8] %1, [1 x i8]* %"$a_207", align 1 + call void @llvm.dbg.declare(metadata [1 x i8]* %"$a_207", metadata !36, metadata !DIExpression()), !dbg !37 %"$retval_24" = alloca { %TName_Pair_ByStr1_Uint64* (i8*, %Uint64)*, i8* }, align 8 - %"$gasrem_194" = load i64, i64* @_gasrem, align 8 - %"$gascmp_195" = icmp ugt i64 1, %"$gasrem_194" - br i1 %"$gascmp_195", label %"$out_of_gas_196", label %"$have_gas_197" + %"$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_196": ; preds = %entry +"$out_of_gas_198": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_197" - -"$have_gas_197": ; preds = %"$out_of_gas_196", %entry - %"$consume_198" = sub i64 %"$gasrem_194", 1 - store i64 %"$consume_198", i64* @_gasrem, align 8 - %"$$fundef_25_envp_199_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_25_envp_199_salloc" = call i8* @_salloc(i8* %"$$fundef_25_envp_199_load", i64 1) - %"$$fundef_25_envp_199" = bitcast i8* %"$$fundef_25_envp_199_salloc" to %"$$fundef_25_env_114"* - %"$$fundef_25_env_voidp_201" = bitcast %"$$fundef_25_env_114"* %"$$fundef_25_envp_199" to i8* - %"$$fundef_25_cloval_202" = insertvalue { %TName_Pair_ByStr1_Uint64* (i8*, %Uint64)*, i8* } { %TName_Pair_ByStr1_Uint64* (i8*, %Uint64)* bitcast (%TName_Pair_ByStr1_Uint64* (%"$$fundef_25_env_114"*, %Uint64)* @"$fundef_25" to %TName_Pair_ByStr1_Uint64* (i8*, %Uint64)*), i8* undef }, i8* %"$$fundef_25_env_voidp_201", 1 - %"$$fundef_25_env_a_203" = getelementptr inbounds %"$$fundef_25_env_114", %"$$fundef_25_env_114"* %"$$fundef_25_envp_199", i32 0, i32 0 - store [1 x i8] %1, [1 x i8]* %"$$fundef_25_env_a_203", align 1 - store { %TName_Pair_ByStr1_Uint64* (i8*, %Uint64)*, i8* } %"$$fundef_25_cloval_202", { %TName_Pair_ByStr1_Uint64* (i8*, %Uint64)*, i8* }* %"$retval_24", align 8, !dbg !21 - %"$$retval_24_204" = load { %TName_Pair_ByStr1_Uint64* (i8*, %Uint64)*, i8* }, { %TName_Pair_ByStr1_Uint64* (i8*, %Uint64)*, i8* }* %"$retval_24", align 8 - ret { %TName_Pair_ByStr1_Uint64* (i8*, %Uint64)*, i8* } %"$$retval_24_204" + br label %"$have_gas_199" + +"$have_gas_199": ; preds = %"$out_of_gas_198", %entry + %"$consume_200" = sub i64 %"$gasrem_196", 1 + store i64 %"$consume_200", i64* @_gasrem, align 8 + %"$$fundef_25_envp_201_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_25_envp_201_salloc" = call i8* @_salloc(i8* %"$$fundef_25_envp_201_load", i64 1) + %"$$fundef_25_envp_201" = bitcast i8* %"$$fundef_25_envp_201_salloc" to %"$$fundef_25_env_114"* + %"$$fundef_25_env_voidp_203" = bitcast %"$$fundef_25_env_114"* %"$$fundef_25_envp_201" to i8* + %"$$fundef_25_cloval_204" = insertvalue { %TName_Pair_ByStr1_Uint64* (i8*, %Uint64)*, i8* } { %TName_Pair_ByStr1_Uint64* (i8*, %Uint64)* bitcast (%TName_Pair_ByStr1_Uint64* (%"$$fundef_25_env_114"*, %Uint64)* @"$fundef_25" to %TName_Pair_ByStr1_Uint64* (i8*, %Uint64)*), i8* undef }, i8* %"$$fundef_25_env_voidp_203", 1 + %"$$fundef_25_env_a_205" = getelementptr inbounds %"$$fundef_25_env_114", %"$$fundef_25_env_114"* %"$$fundef_25_envp_201", i32 0, i32 0 + store [1 x i8] %1, [1 x i8]* %"$$fundef_25_env_a_205", align 1 + store { %TName_Pair_ByStr1_Uint64* (i8*, %Uint64)*, i8* } %"$$fundef_25_cloval_204", { %TName_Pair_ByStr1_Uint64* (i8*, %Uint64)*, i8* }* %"$retval_24", align 8, !dbg !38 + %"$$retval_24_206" = load { %TName_Pair_ByStr1_Uint64* (i8*, %Uint64)*, i8* }, { %TName_Pair_ByStr1_Uint64* (i8*, %Uint64)*, i8* }* %"$retval_24", align 8 + ret { %TName_Pair_ByStr1_Uint64* (i8*, %Uint64)*, i8* } %"$$retval_24_206" } -define internal { { %TName_Pair_ByStr1_Uint64* (i8*, %Uint64)*, i8* } (i8*, [1 x i8])*, i8* } @"$fundef_21"(%"$$fundef_21_env_116"* %0) !dbg !22 { +define internal { { %TName_Pair_ByStr1_Uint64* (i8*, %Uint64)*, i8* } (i8*, [1 x i8])*, i8* } @"$fundef_21"(%"$$fundef_21_env_116"* %0) !dbg !39 { entry: %"$retval_22" = alloca { { %TName_Pair_ByStr1_Uint64* (i8*, %Uint64)*, i8* } (i8*, [1 x i8])*, i8* }, 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" + %"$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_187": ; preds = %entry +"$out_of_gas_189": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_188" - -"$have_gas_188": ; preds = %"$out_of_gas_187", %entry - %"$consume_189" = sub i64 %"$gasrem_185", 1 - store i64 %"$consume_189", i64* @_gasrem, align 8 - store { { %TName_Pair_ByStr1_Uint64* (i8*, %Uint64)*, i8* } (i8*, [1 x i8])*, i8* } { { %TName_Pair_ByStr1_Uint64* (i8*, %Uint64)*, i8* } (i8*, [1 x i8])* bitcast ({ %TName_Pair_ByStr1_Uint64* (i8*, %Uint64)*, i8* } (%"$$fundef_23_env_115"*, [1 x i8])* @"$fundef_23" to { %TName_Pair_ByStr1_Uint64* (i8*, %Uint64)*, i8* } (i8*, [1 x i8])*), i8* null }, { { %TName_Pair_ByStr1_Uint64* (i8*, %Uint64)*, i8* } (i8*, [1 x i8])*, i8* }* %"$retval_22", align 8, !dbg !23 - %"$$retval_22_193" = load { { %TName_Pair_ByStr1_Uint64* (i8*, %Uint64)*, i8* } (i8*, [1 x i8])*, i8* }, { { %TName_Pair_ByStr1_Uint64* (i8*, %Uint64)*, i8* } (i8*, [1 x i8])*, i8* }* %"$retval_22", align 8 - ret { { %TName_Pair_ByStr1_Uint64* (i8*, %Uint64)*, i8* } (i8*, [1 x i8])*, i8* } %"$$retval_22_193" + br label %"$have_gas_190" + +"$have_gas_190": ; preds = %"$out_of_gas_189", %entry + %"$consume_191" = sub i64 %"$gasrem_187", 1 + store i64 %"$consume_191", i64* @_gasrem, align 8 + store { { %TName_Pair_ByStr1_Uint64* (i8*, %Uint64)*, i8* } (i8*, [1 x i8])*, i8* } { { %TName_Pair_ByStr1_Uint64* (i8*, %Uint64)*, i8* } (i8*, [1 x i8])* bitcast ({ %TName_Pair_ByStr1_Uint64* (i8*, %Uint64)*, i8* } (%"$$fundef_23_env_115"*, [1 x i8])* @"$fundef_23" to { %TName_Pair_ByStr1_Uint64* (i8*, %Uint64)*, i8* } (i8*, [1 x i8])*), i8* null }, { { %TName_Pair_ByStr1_Uint64* (i8*, %Uint64)*, i8* } (i8*, [1 x i8])*, i8* }* %"$retval_22", align 8, !dbg !40 + %"$$retval_22_195" = load { { %TName_Pair_ByStr1_Uint64* (i8*, %Uint64)*, i8* } (i8*, [1 x i8])*, i8* }, { { %TName_Pair_ByStr1_Uint64* (i8*, %Uint64)*, i8* } (i8*, [1 x i8])*, i8* }* %"$retval_22", align 8 + ret { { %TName_Pair_ByStr1_Uint64* (i8*, %Uint64)*, i8* } (i8*, [1 x i8])*, i8* } %"$$retval_22_195" } -define internal { i8*, i8* }* @"$fundef_19"(%"$$fundef_19_env_117"* %0) !dbg !24 { +define internal { i8*, i8* }* @"$fundef_19"(%"$$fundef_19_env_117"* %0) !dbg !41 { entry: %"$retval_20" = alloca { i8*, i8* }*, align 8 - %"$gasrem_168" = load i64, i64* @_gasrem, align 8 - %"$gascmp_169" = icmp ugt i64 1, %"$gasrem_168" - br i1 %"$gascmp_169", label %"$out_of_gas_170", label %"$have_gas_171" + %"$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_170": ; preds = %entry +"$out_of_gas_172": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_171" - -"$have_gas_171": ; preds = %"$out_of_gas_170", %entry - %"$consume_172" = sub i64 %"$gasrem_168", 1 - store i64 %"$consume_172", i64* @_gasrem, align 8 - %"$dyndisp_table_179_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$dyndisp_table_179_salloc_salloc" = call i8* @_salloc(i8* %"$dyndisp_table_179_salloc_load", i64 64) - %"$dyndisp_table_179_salloc" = bitcast i8* %"$dyndisp_table_179_salloc_salloc" to [4 x { i8*, i8* }]* - %"$dyndisp_table_179" = bitcast [4 x { i8*, i8* }]* %"$dyndisp_table_179_salloc" to { i8*, i8* }* - %"$dyndisp_gep_180" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_179", i32 1 - %"$dyndisp_pcast_181" = bitcast { i8*, i8* }* %"$dyndisp_gep_180" to { { { %TName_Pair_ByStr1_Uint64* (i8*, %Uint64)*, i8* } (i8*, [1 x i8])*, i8* } (i8*)*, i8* }* - store { { { %TName_Pair_ByStr1_Uint64* (i8*, %Uint64)*, i8* } (i8*, [1 x i8])*, i8* } (i8*)*, i8* } { { { %TName_Pair_ByStr1_Uint64* (i8*, %Uint64)*, i8* } (i8*, [1 x i8])*, i8* } (i8*)* bitcast ({ { %TName_Pair_ByStr1_Uint64* (i8*, %Uint64)*, i8* } (i8*, [1 x i8])*, i8* } (%"$$fundef_21_env_116"*)* @"$fundef_21" to { { %TName_Pair_ByStr1_Uint64* (i8*, %Uint64)*, i8* } (i8*, [1 x i8])*, i8* } (i8*)*), i8* null }, { { { %TName_Pair_ByStr1_Uint64* (i8*, %Uint64)*, i8* } (i8*, [1 x i8])*, i8* } (i8*)*, i8* }* %"$dyndisp_pcast_181", align 8 - %"$dyndisp_gep_182" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_179", i32 3 - %"$dyndisp_pcast_183" = bitcast { i8*, i8* }* %"$dyndisp_gep_182" to { { { %TName_Pair_ByStr1_ByStr2* (i8*, [2 x i8])*, i8* } (i8*, [1 x i8])*, i8* } (i8*)*, i8* }* - store { { { %TName_Pair_ByStr1_ByStr2* (i8*, [2 x i8])*, i8* } (i8*, [1 x i8])*, i8* } (i8*)*, i8* } { { { %TName_Pair_ByStr1_ByStr2* (i8*, [2 x i8])*, i8* } (i8*, [1 x i8])*, i8* } (i8*)* bitcast ({ { %TName_Pair_ByStr1_ByStr2* (i8*, [2 x i8])*, i8* } (i8*, [1 x i8])*, i8* } (%"$$fundef_27_env_113"*)* @"$fundef_27" to { { %TName_Pair_ByStr1_ByStr2* (i8*, [2 x i8])*, i8* } (i8*, [1 x i8])*, i8* } (i8*)*), i8* null }, { { { %TName_Pair_ByStr1_ByStr2* (i8*, [2 x i8])*, i8* } (i8*, [1 x i8])*, i8* } (i8*)*, i8* }* %"$dyndisp_pcast_183", align 8 - store { i8*, i8* }* %"$dyndisp_table_179", { i8*, i8* }** %"$retval_20", align 8, !dbg !25 - %"$$retval_20_184" = load { i8*, i8* }*, { i8*, i8* }** %"$retval_20", align 8 - ret { i8*, i8* }* %"$$retval_20_184" + br label %"$have_gas_173" + +"$have_gas_173": ; preds = %"$out_of_gas_172", %entry + %"$consume_174" = sub i64 %"$gasrem_170", 1 + store i64 %"$consume_174", i64* @_gasrem, align 8 + %"$dyndisp_table_181_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$dyndisp_table_181_salloc_salloc" = call i8* @_salloc(i8* %"$dyndisp_table_181_salloc_load", i64 64) + %"$dyndisp_table_181_salloc" = bitcast i8* %"$dyndisp_table_181_salloc_salloc" to [4 x { i8*, i8* }]* + %"$dyndisp_table_181" = bitcast [4 x { i8*, i8* }]* %"$dyndisp_table_181_salloc" to { i8*, i8* }* + %"$dyndisp_gep_182" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_181", i32 1 + %"$dyndisp_pcast_183" = bitcast { i8*, i8* }* %"$dyndisp_gep_182" to { { { %TName_Pair_ByStr1_Uint64* (i8*, %Uint64)*, i8* } (i8*, [1 x i8])*, i8* } (i8*)*, i8* }* + store { { { %TName_Pair_ByStr1_Uint64* (i8*, %Uint64)*, i8* } (i8*, [1 x i8])*, i8* } (i8*)*, i8* } { { { %TName_Pair_ByStr1_Uint64* (i8*, %Uint64)*, i8* } (i8*, [1 x i8])*, i8* } (i8*)* bitcast ({ { %TName_Pair_ByStr1_Uint64* (i8*, %Uint64)*, i8* } (i8*, [1 x i8])*, i8* } (%"$$fundef_21_env_116"*)* @"$fundef_21" to { { %TName_Pair_ByStr1_Uint64* (i8*, %Uint64)*, i8* } (i8*, [1 x i8])*, i8* } (i8*)*), i8* null }, { { { %TName_Pair_ByStr1_Uint64* (i8*, %Uint64)*, i8* } (i8*, [1 x i8])*, i8* } (i8*)*, i8* }* %"$dyndisp_pcast_183", align 8 + %"$dyndisp_gep_184" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_181", i32 3 + %"$dyndisp_pcast_185" = bitcast { i8*, i8* }* %"$dyndisp_gep_184" to { { { %TName_Pair_ByStr1_ByStr2* (i8*, [2 x i8])*, i8* } (i8*, [1 x i8])*, i8* } (i8*)*, i8* }* + store { { { %TName_Pair_ByStr1_ByStr2* (i8*, [2 x i8])*, i8* } (i8*, [1 x i8])*, i8* } (i8*)*, i8* } { { { %TName_Pair_ByStr1_ByStr2* (i8*, [2 x i8])*, i8* } (i8*, [1 x i8])*, i8* } (i8*)* bitcast ({ { %TName_Pair_ByStr1_ByStr2* (i8*, [2 x i8])*, i8* } (i8*, [1 x i8])*, i8* } (%"$$fundef_27_env_113"*)* @"$fundef_27" to { { %TName_Pair_ByStr1_ByStr2* (i8*, [2 x i8])*, i8* } (i8*, [1 x i8])*, i8* } (i8*)*), i8* null }, { { { %TName_Pair_ByStr1_ByStr2* (i8*, [2 x i8])*, i8* } (i8*, [1 x i8])*, i8* } (i8*)*, i8* }* %"$dyndisp_pcast_185", align 8 + store { i8*, i8* }* %"$dyndisp_table_181", { i8*, i8* }** %"$retval_20", align 8, !dbg !42 + %"$$retval_20_186" = load { i8*, i8* }*, { i8*, i8* }** %"$retval_20", align 8 + ret { i8*, i8* }* %"$$retval_20_186" } -define internal %TName_Pair_Uint32_Uint64* @"$fundef_17"(%"$$fundef_17_env_118"* %0, %Uint64 %1) !dbg !26 { +define internal %TName_Pair_Uint32_Uint64* @"$fundef_17"(%"$$fundef_17_env_118"* %0, %Uint64 %1) !dbg !43 { entry: - %"$$fundef_17_env_a_154" = getelementptr inbounds %"$$fundef_17_env_118", %"$$fundef_17_env_118"* %0, i32 0, i32 0 - %"$a_envload_155" = load %Uint32, %Uint32* %"$$fundef_17_env_a_154", align 4 + %"$b_169" = alloca %Uint64, align 8 + store %Uint64 %1, %Uint64* %"$b_169", align 8 + call void @llvm.dbg.declare(metadata %Uint64* %"$b_169", metadata !44, metadata !DIExpression()), !dbg !45 + %"$$fundef_17_env_a_155" = getelementptr inbounds %"$$fundef_17_env_118", %"$$fundef_17_env_118"* %0, i32 0, i32 0 + %"$a_envload_156" = load %Uint32, %Uint32* %"$$fundef_17_env_a_155", align 4 %a = alloca %Uint32, align 8 - store %Uint32 %"$a_envload_155", %Uint32* %a, align 4 + store %Uint32 %"$a_envload_156", %Uint32* %a, align 4 %"$retval_18" = alloca %TName_Pair_Uint32_Uint64*, 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" + call void @llvm.dbg.declare(metadata %TName_Pair_Uint32_Uint64** %"$retval_18", metadata !46, metadata !DIExpression()), !dbg !49 + %"$gasrem_157" = load i64, i64* @_gasrem, align 8 + %"$gascmp_158" = icmp ugt i64 1, %"$gasrem_157" + br i1 %"$gascmp_158", label %"$out_of_gas_159", label %"$have_gas_160" -"$out_of_gas_158": ; preds = %entry +"$out_of_gas_159": ; 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", 1 - store i64 %"$consume_160", i64* @_gasrem, align 8 - %"$a_161" = load %Uint32, %Uint32* %a, align 4 - %"$adtval_162_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_162_salloc" = call i8* @_salloc(i8* %"$adtval_162_load", i64 13) - %"$adtval_162" = bitcast i8* %"$adtval_162_salloc" to %CName_Pair_Uint32_Uint64* - %"$adtgep_163" = getelementptr inbounds %CName_Pair_Uint32_Uint64, %CName_Pair_Uint32_Uint64* %"$adtval_162", i32 0, i32 0 - store i8 0, i8* %"$adtgep_163", align 1 - %"$adtgep_164" = getelementptr inbounds %CName_Pair_Uint32_Uint64, %CName_Pair_Uint32_Uint64* %"$adtval_162", i32 0, i32 1 - store %Uint32 %"$a_161", %Uint32* %"$adtgep_164", align 4 - %"$adtgep_165" = getelementptr inbounds %CName_Pair_Uint32_Uint64, %CName_Pair_Uint32_Uint64* %"$adtval_162", i32 0, i32 2 - store %Uint64 %1, %Uint64* %"$adtgep_165", align 8 - %"$adtptr_166" = bitcast %CName_Pair_Uint32_Uint64* %"$adtval_162" to %TName_Pair_Uint32_Uint64* - store %TName_Pair_Uint32_Uint64* %"$adtptr_166", %TName_Pair_Uint32_Uint64** %"$retval_18", align 8, !dbg !27 - %"$$retval_18_167" = load %TName_Pair_Uint32_Uint64*, %TName_Pair_Uint32_Uint64** %"$retval_18", align 8 - ret %TName_Pair_Uint32_Uint64* %"$$retval_18_167" + br label %"$have_gas_160" + +"$have_gas_160": ; preds = %"$out_of_gas_159", %entry + %"$consume_161" = sub i64 %"$gasrem_157", 1 + store i64 %"$consume_161", i64* @_gasrem, align 8 + %"$a_162" = load %Uint32, %Uint32* %a, align 4 + %"$adtval_163_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_163_salloc" = call i8* @_salloc(i8* %"$adtval_163_load", i64 13) + %"$adtval_163" = bitcast i8* %"$adtval_163_salloc" to %CName_Pair_Uint32_Uint64* + %"$adtgep_164" = getelementptr inbounds %CName_Pair_Uint32_Uint64, %CName_Pair_Uint32_Uint64* %"$adtval_163", i32 0, i32 0 + store i8 0, i8* %"$adtgep_164", align 1 + %"$adtgep_165" = getelementptr inbounds %CName_Pair_Uint32_Uint64, %CName_Pair_Uint32_Uint64* %"$adtval_163", i32 0, i32 1 + store %Uint32 %"$a_162", %Uint32* %"$adtgep_165", align 4 + %"$adtgep_166" = getelementptr inbounds %CName_Pair_Uint32_Uint64, %CName_Pair_Uint32_Uint64* %"$adtval_163", i32 0, i32 2 + store %Uint64 %1, %Uint64* %"$adtgep_166", align 8 + %"$adtptr_167" = bitcast %CName_Pair_Uint32_Uint64* %"$adtval_163" to %TName_Pair_Uint32_Uint64* + store %TName_Pair_Uint32_Uint64* %"$adtptr_167", %TName_Pair_Uint32_Uint64** %"$retval_18", align 8, !dbg !49 + %"$$retval_18_168" = load %TName_Pair_Uint32_Uint64*, %TName_Pair_Uint32_Uint64** %"$retval_18", align 8 + ret %TName_Pair_Uint32_Uint64* %"$$retval_18_168" } -define internal { %TName_Pair_Uint32_Uint64* (i8*, %Uint64)*, i8* } @"$fundef_15"(%"$$fundef_15_env_119"* %0, %Uint32 %1) !dbg !28 { +define internal { %TName_Pair_Uint32_Uint64* (i8*, %Uint64)*, i8* } @"$fundef_15"(%"$$fundef_15_env_119"* %0, %Uint32 %1) !dbg !50 { entry: + %"$a_154" = alloca %Uint32, align 8 + store %Uint32 %1, %Uint32* %"$a_154", align 4 + call void @llvm.dbg.declare(metadata %Uint32* %"$a_154", metadata !51, metadata !DIExpression()), !dbg !53 %"$retval_16" = alloca { %TName_Pair_Uint32_Uint64* (i8*, %Uint64)*, i8* }, align 8 %"$gasrem_143" = load i64, i64* @_gasrem, align 8 %"$gascmp_144" = icmp ugt i64 1, %"$gasrem_143" @@ -459,12 +480,12 @@ entry: %"$$fundef_17_cloval_151" = insertvalue { %TName_Pair_Uint32_Uint64* (i8*, %Uint64)*, i8* } { %TName_Pair_Uint32_Uint64* (i8*, %Uint64)* bitcast (%TName_Pair_Uint32_Uint64* (%"$$fundef_17_env_118"*, %Uint64)* @"$fundef_17" to %TName_Pair_Uint32_Uint64* (i8*, %Uint64)*), i8* undef }, i8* %"$$fundef_17_env_voidp_150", 1 %"$$fundef_17_env_a_152" = getelementptr inbounds %"$$fundef_17_env_118", %"$$fundef_17_env_118"* %"$$fundef_17_envp_148", i32 0, i32 0 store %Uint32 %1, %Uint32* %"$$fundef_17_env_a_152", align 4 - store { %TName_Pair_Uint32_Uint64* (i8*, %Uint64)*, i8* } %"$$fundef_17_cloval_151", { %TName_Pair_Uint32_Uint64* (i8*, %Uint64)*, i8* }* %"$retval_16", align 8, !dbg !29 + store { %TName_Pair_Uint32_Uint64* (i8*, %Uint64)*, i8* } %"$$fundef_17_cloval_151", { %TName_Pair_Uint32_Uint64* (i8*, %Uint64)*, i8* }* %"$retval_16", align 8, !dbg !54 %"$$retval_16_153" = load { %TName_Pair_Uint32_Uint64* (i8*, %Uint64)*, i8* }, { %TName_Pair_Uint32_Uint64* (i8*, %Uint64)*, i8* }* %"$retval_16", align 8 ret { %TName_Pair_Uint32_Uint64* (i8*, %Uint64)*, i8* } %"$$retval_16_153" } -define internal { { %TName_Pair_Uint32_Uint64* (i8*, %Uint64)*, i8* } (i8*, %Uint32)*, i8* } @"$fundef_13"(%"$$fundef_13_env_120"* %0) !dbg !30 { +define internal { { %TName_Pair_Uint32_Uint64* (i8*, %Uint64)*, i8* } (i8*, %Uint32)*, i8* } @"$fundef_13"(%"$$fundef_13_env_120"* %0) !dbg !55 { entry: %"$retval_14" = alloca { { %TName_Pair_Uint32_Uint64* (i8*, %Uint64)*, i8* } (i8*, %Uint32)*, i8* }, align 8 %"$gasrem_134" = load i64, i64* @_gasrem, align 8 @@ -478,12 +499,12 @@ entry: "$have_gas_137": ; preds = %"$out_of_gas_136", %entry %"$consume_138" = sub i64 %"$gasrem_134", 1 store i64 %"$consume_138", i64* @_gasrem, align 8 - store { { %TName_Pair_Uint32_Uint64* (i8*, %Uint64)*, i8* } (i8*, %Uint32)*, i8* } { { %TName_Pair_Uint32_Uint64* (i8*, %Uint64)*, i8* } (i8*, %Uint32)* bitcast ({ %TName_Pair_Uint32_Uint64* (i8*, %Uint64)*, i8* } (%"$$fundef_15_env_119"*, %Uint32)* @"$fundef_15" to { %TName_Pair_Uint32_Uint64* (i8*, %Uint64)*, i8* } (i8*, %Uint32)*), i8* null }, { { %TName_Pair_Uint32_Uint64* (i8*, %Uint64)*, i8* } (i8*, %Uint32)*, i8* }* %"$retval_14", align 8, !dbg !31 + store { { %TName_Pair_Uint32_Uint64* (i8*, %Uint64)*, i8* } (i8*, %Uint32)*, i8* } { { %TName_Pair_Uint32_Uint64* (i8*, %Uint64)*, i8* } (i8*, %Uint32)* bitcast ({ %TName_Pair_Uint32_Uint64* (i8*, %Uint64)*, i8* } (%"$$fundef_15_env_119"*, %Uint32)* @"$fundef_15" to { %TName_Pair_Uint32_Uint64* (i8*, %Uint64)*, i8* } (i8*, %Uint32)*), i8* null }, { { %TName_Pair_Uint32_Uint64* (i8*, %Uint64)*, i8* } (i8*, %Uint32)*, i8* }* %"$retval_14", align 8, !dbg !56 %"$$retval_14_142" = load { { %TName_Pair_Uint32_Uint64* (i8*, %Uint64)*, i8* } (i8*, %Uint32)*, i8* }, { { %TName_Pair_Uint32_Uint64* (i8*, %Uint64)*, i8* } (i8*, %Uint32)*, i8* }* %"$retval_14", align 8 ret { { %TName_Pair_Uint32_Uint64* (i8*, %Uint64)*, i8* } (i8*, %Uint32)*, i8* } %"$$retval_14_142" } -define internal { i8*, i8* }* @"$fundef_11"(%"$$fundef_11_env_121"* %0) !dbg !32 { +define internal { i8*, i8* }* @"$fundef_11"(%"$$fundef_11_env_121"* %0) !dbg !57 { entry: %"$retval_12" = alloca { i8*, i8* }*, align 8 %"$gasrem_122" = load i64, i64* @_gasrem, align 8 @@ -504,7 +525,7 @@ entry: %"$dyndisp_gep_131" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_130", i32 1 %"$dyndisp_pcast_132" = bitcast { i8*, i8* }* %"$dyndisp_gep_131" to { { { %TName_Pair_Uint32_Uint64* (i8*, %Uint64)*, i8* } (i8*, %Uint32)*, i8* } (i8*)*, i8* }* store { { { %TName_Pair_Uint32_Uint64* (i8*, %Uint64)*, i8* } (i8*, %Uint32)*, i8* } (i8*)*, i8* } { { { %TName_Pair_Uint32_Uint64* (i8*, %Uint64)*, i8* } (i8*, %Uint32)*, i8* } (i8*)* bitcast ({ { %TName_Pair_Uint32_Uint64* (i8*, %Uint64)*, i8* } (i8*, %Uint32)*, i8* } (%"$$fundef_13_env_120"*)* @"$fundef_13" to { { %TName_Pair_Uint32_Uint64* (i8*, %Uint64)*, i8* } (i8*, %Uint32)*, i8* } (i8*)*), i8* null }, { { { %TName_Pair_Uint32_Uint64* (i8*, %Uint64)*, i8* } (i8*, %Uint32)*, i8* } (i8*)*, i8* }* %"$dyndisp_pcast_132", align 8 - store { i8*, i8* }* %"$dyndisp_table_130", { i8*, i8* }** %"$retval_12", align 8, !dbg !33 + store { i8*, i8* }* %"$dyndisp_table_130", { i8*, i8* }** %"$retval_12", align 8, !dbg !58 %"$$retval_12_133" = load { i8*, i8* }*, { i8*, i8* }** %"$retval_12", align 8 ret { i8*, i8* }* %"$$retval_12_133" } @@ -513,524 +534,580 @@ declare void @_out_of_gas() declare i8* @_salloc(i8*, i64) -define void @_init_libs() !dbg !34 { +; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn +declare void @llvm.dbg.declare(metadata, metadata, metadata) #0 + +define void @_init_libs() !dbg !59 { entry: - %"$gasrem_291" = load i64, i64* @_gasrem, align 8 - %"$gascmp_292" = icmp ugt i64 5, %"$gasrem_291" - br i1 %"$gascmp_292", label %"$out_of_gas_293", label %"$have_gas_294" + %"$gasrem_297" = load i64, i64* @_gasrem, align 8 + %"$gascmp_298" = icmp ugt i64 5, %"$gasrem_297" + br i1 %"$gascmp_298", label %"$out_of_gas_299", label %"$have_gas_300" -"$out_of_gas_293": ; preds = %entry +"$out_of_gas_299": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_294" + br label %"$have_gas_300" -"$have_gas_294": ; preds = %"$out_of_gas_293", %entry - %"$consume_295" = sub i64 %"$gasrem_291", 5 - store i64 %"$consume_295", i64* @_gasrem, align 8 - store %Int32 { i32 5 }, %Int32* @"$_gas_charge_accrec_lib_5", align 4, !dbg !36 - %"$gasrem_296" = load i64, i64* @_gasrem, align 8 - %"$gascmp_297" = icmp ugt i64 8, %"$gasrem_296" - br i1 %"$gascmp_297", label %"$out_of_gas_298", label %"$have_gas_299" +"$have_gas_300": ; preds = %"$out_of_gas_299", %entry + %"$consume_301" = sub i64 %"$gasrem_297", 5 + store i64 %"$consume_301", i64* @_gasrem, align 8 + store %Int32 { i32 5 }, %Int32* @"$_gas_charge_accrec_lib_5", align 4, !dbg !61 + %"$gasrem_302" = load i64, i64* @_gasrem, align 8 + %"$gascmp_303" = icmp ugt i64 8, %"$gasrem_302" + br i1 %"$gascmp_303", label %"$out_of_gas_304", label %"$have_gas_305" -"$out_of_gas_298": ; preds = %"$have_gas_294" +"$out_of_gas_304": ; preds = %"$have_gas_300" call void @_out_of_gas() - br label %"$have_gas_299" + br label %"$have_gas_305" -"$have_gas_299": ; preds = %"$out_of_gas_298", %"$have_gas_294" - %"$consume_300" = sub i64 %"$gasrem_296", 8 - store i64 %"$consume_300", i64* @_gasrem, align 8 - store %Int32 { i32 8 }, %Int32* @"$_gas_charge_accBoolUtils_0", align 4, !dbg !36 - %"$gasrem_301" = load i64, i64* @_gasrem, align 8 - %"$gascmp_302" = icmp ugt i64 196, %"$gasrem_301" - br i1 %"$gascmp_302", label %"$out_of_gas_303", label %"$have_gas_304" +"$have_gas_305": ; preds = %"$out_of_gas_304", %"$have_gas_300" + %"$consume_306" = sub i64 %"$gasrem_302", 8 + store i64 %"$consume_306", i64* @_gasrem, align 8 + store %Int32 { i32 8 }, %Int32* @"$_gas_charge_accBoolUtils_0", align 4, !dbg !61 + %"$gasrem_307" = load i64, i64* @_gasrem, align 8 + %"$gascmp_308" = icmp ugt i64 196, %"$gasrem_307" + br i1 %"$gascmp_308", label %"$out_of_gas_309", label %"$have_gas_310" -"$out_of_gas_303": ; preds = %"$have_gas_299" +"$out_of_gas_309": ; preds = %"$have_gas_305" call void @_out_of_gas() - br label %"$have_gas_304" + br label %"$have_gas_310" -"$have_gas_304": ; preds = %"$out_of_gas_303", %"$have_gas_299" - %"$consume_305" = sub i64 %"$gasrem_301", 196 - store i64 %"$consume_305", i64* @_gasrem, align 8 - store %Int32 { i32 196 }, %Int32* @"$_gas_charge_accIntUtils_1", align 4, !dbg !36 - %"$gasrem_306" = load i64, i64* @_gasrem, align 8 - %"$gascmp_307" = icmp ugt i64 20, %"$gasrem_306" - br i1 %"$gascmp_307", label %"$out_of_gas_308", label %"$have_gas_309" +"$have_gas_310": ; preds = %"$out_of_gas_309", %"$have_gas_305" + %"$consume_311" = sub i64 %"$gasrem_307", 196 + store i64 %"$consume_311", i64* @_gasrem, align 8 + store %Int32 { i32 196 }, %Int32* @"$_gas_charge_accIntUtils_1", align 4, !dbg !61 + %"$gasrem_312" = load i64, i64* @_gasrem, align 8 + %"$gascmp_313" = icmp ugt i64 20, %"$gasrem_312" + br i1 %"$gascmp_313", label %"$out_of_gas_314", label %"$have_gas_315" -"$out_of_gas_308": ; preds = %"$have_gas_304" +"$out_of_gas_314": ; preds = %"$have_gas_310" call void @_out_of_gas() - br label %"$have_gas_309" + br label %"$have_gas_315" -"$have_gas_309": ; preds = %"$out_of_gas_308", %"$have_gas_304" - %"$consume_310" = sub i64 %"$gasrem_306", 20 - store i64 %"$consume_310", i64* @_gasrem, align 8 - store %Int32 { i32 20 }, %Int32* @"$_gas_charge_accListUtils_2", align 4, !dbg !36 - %"$gasrem_311" = load i64, i64* @_gasrem, align 8 - %"$gascmp_312" = icmp ugt i64 12, %"$gasrem_311" - br i1 %"$gascmp_312", label %"$out_of_gas_313", label %"$have_gas_314" +"$have_gas_315": ; preds = %"$out_of_gas_314", %"$have_gas_310" + %"$consume_316" = sub i64 %"$gasrem_312", 20 + store i64 %"$consume_316", i64* @_gasrem, align 8 + store %Int32 { i32 20 }, %Int32* @"$_gas_charge_accListUtils_2", align 4, !dbg !61 + %"$gasrem_317" = load i64, i64* @_gasrem, align 8 + %"$gascmp_318" = icmp ugt i64 12, %"$gasrem_317" + br i1 %"$gascmp_318", label %"$out_of_gas_319", label %"$have_gas_320" -"$out_of_gas_313": ; preds = %"$have_gas_309" +"$out_of_gas_319": ; preds = %"$have_gas_315" call void @_out_of_gas() - br label %"$have_gas_314" + br label %"$have_gas_320" -"$have_gas_314": ; preds = %"$out_of_gas_313", %"$have_gas_309" - %"$consume_315" = sub i64 %"$gasrem_311", 12 - store i64 %"$consume_315", i64* @_gasrem, align 8 - store %Int32 { i32 12 }, %Int32* @"$_gas_charge_accNatUtils_3", align 4, !dbg !36 - %"$gasrem_316" = load i64, i64* @_gasrem, align 8 - %"$gascmp_317" = icmp ugt i64 2, %"$gasrem_316" - br i1 %"$gascmp_317", label %"$out_of_gas_318", label %"$have_gas_319" +"$have_gas_320": ; preds = %"$out_of_gas_319", %"$have_gas_315" + %"$consume_321" = sub i64 %"$gasrem_317", 12 + store i64 %"$consume_321", i64* @_gasrem, align 8 + store %Int32 { i32 12 }, %Int32* @"$_gas_charge_accNatUtils_3", align 4, !dbg !61 + %"$gasrem_322" = load i64, i64* @_gasrem, align 8 + %"$gascmp_323" = icmp ugt i64 2, %"$gasrem_322" + br i1 %"$gascmp_323", label %"$out_of_gas_324", label %"$have_gas_325" -"$out_of_gas_318": ; preds = %"$have_gas_314" +"$out_of_gas_324": ; preds = %"$have_gas_320" call void @_out_of_gas() - br label %"$have_gas_319" + br label %"$have_gas_325" -"$have_gas_319": ; preds = %"$out_of_gas_318", %"$have_gas_314" - %"$consume_320" = sub i64 %"$gasrem_316", 2 - store i64 %"$consume_320", i64* @_gasrem, align 8 - store %Int32 { i32 2 }, %Int32* @"$_gas_charge_accPairUtils_4", align 4, !dbg !36 +"$have_gas_325": ; preds = %"$out_of_gas_324", %"$have_gas_320" + %"$consume_326" = sub i64 %"$gasrem_322", 2 + store i64 %"$consume_326", i64* @_gasrem, align 8 + store %Int32 { i32 2 }, %Int32* @"$_gas_charge_accPairUtils_4", align 4, !dbg !61 ret void } -define internal %"TName_Pair_Pair_(Uint32)_(Uint64)_Pair_(ByStr1)_(ByStr2)"* @_scilla_expr_fun(i8* %0) !dbg !37 { +define internal %"TName_Pair_Pair_(Uint32)_(Uint64)_Pair_(ByStr1)_(ByStr2)"* @_scilla_expr_fun(i8* %0) !dbg !62 { entry: %"$expr_10" = alloca %"TName_Pair_Pair_(Uint32)_(Uint64)_Pair_(ByStr1)_(ByStr2)"*, 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" + call void @llvm.dbg.declare(metadata %"TName_Pair_Pair_(Uint32)_(Uint64)_Pair_(ByStr1)_(ByStr2)"** %"$expr_10", metadata !63, metadata !DIExpression()), !dbg !66 + %"$gasrem_327" = load i64, i64* @_gasrem, align 8 + %"$gascmp_328" = icmp ugt i64 1, %"$gasrem_327" + br i1 %"$gascmp_328", label %"$out_of_gas_329", label %"$have_gas_330" -"$out_of_gas_323": ; preds = %entry +"$out_of_gas_329": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_324" + br label %"$have_gas_330" -"$have_gas_324": ; preds = %"$out_of_gas_323", %entry - %"$consume_325" = sub i64 %"$gasrem_321", 1 - store i64 %"$consume_325", i64* @_gasrem, align 8 +"$have_gas_330": ; preds = %"$out_of_gas_329", %entry + %"$consume_331" = sub i64 %"$gasrem_327", 1 + store i64 %"$consume_331", i64* @_gasrem, align 8 %tf = alloca { i8*, i8* }*, 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" + %"$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_328": ; preds = %"$have_gas_324" +"$out_of_gas_334": ; preds = %"$have_gas_330" 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 - %"$dyndisp_table_337_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$dyndisp_table_337_salloc_salloc" = call i8* @_salloc(i8* %"$dyndisp_table_337_salloc_load", i64 64) - %"$dyndisp_table_337_salloc" = bitcast i8* %"$dyndisp_table_337_salloc_salloc" to [4 x { i8*, i8* }]* - %"$dyndisp_table_337" = bitcast [4 x { i8*, i8* }]* %"$dyndisp_table_337_salloc" to { i8*, i8* }* - %"$dyndisp_gep_338" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_337", i32 0 - %"$dyndisp_pcast_339" = bitcast { i8*, i8* }* %"$dyndisp_gep_338" to { { i8*, i8* }* (i8*)*, i8* }* - store { { i8*, i8* }* (i8*)*, i8* } { { i8*, i8* }* (i8*)* bitcast ({ i8*, i8* }* (%"$$fundef_11_env_121"*)* @"$fundef_11" to { i8*, i8* }* (i8*)*), i8* null }, { { i8*, i8* }* (i8*)*, i8* }* %"$dyndisp_pcast_339", align 8 - %"$dyndisp_gep_340" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_337", i32 2 - %"$dyndisp_pcast_341" = bitcast { i8*, i8* }* %"$dyndisp_gep_340" to { { i8*, i8* }* (i8*)*, i8* }* - store { { i8*, i8* }* (i8*)*, i8* } { { i8*, i8* }* (i8*)* bitcast ({ i8*, i8* }* (%"$$fundef_19_env_117"*)* @"$fundef_19" to { i8*, i8* }* (i8*)*), i8* null }, { { i8*, i8* }* (i8*)*, i8* }* %"$dyndisp_pcast_341", align 8 - store { i8*, i8* }* %"$dyndisp_table_337", { i8*, i8* }** %tf, align 8, !dbg !38 - %"$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" - -"$out_of_gas_344": ; preds = %"$have_gas_329" + br label %"$have_gas_335" + +"$have_gas_335": ; preds = %"$out_of_gas_334", %"$have_gas_330" + %"$consume_336" = sub i64 %"$gasrem_332", 1 + store i64 %"$consume_336", 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 64) + %"$dyndisp_table_343_salloc" = bitcast i8* %"$dyndisp_table_343_salloc_salloc" to [4 x { i8*, i8* }]* + %"$dyndisp_table_343" = bitcast [4 x { i8*, i8* }]* %"$dyndisp_table_343_salloc" to { i8*, i8* }* + %"$dyndisp_gep_344" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_343", i32 0 + %"$dyndisp_pcast_345" = bitcast { i8*, i8* }* %"$dyndisp_gep_344" to { { i8*, i8* }* (i8*)*, i8* }* + store { { i8*, i8* }* (i8*)*, i8* } { { i8*, i8* }* (i8*)* bitcast ({ i8*, i8* }* (%"$$fundef_11_env_121"*)* @"$fundef_11" to { i8*, i8* }* (i8*)*), i8* null }, { { i8*, i8* }* (i8*)*, i8* }* %"$dyndisp_pcast_345", align 8 + %"$dyndisp_gep_346" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_343", i32 2 + %"$dyndisp_pcast_347" = bitcast { i8*, i8* }* %"$dyndisp_gep_346" to { { i8*, i8* }* (i8*)*, i8* }* + store { { i8*, i8* }* (i8*)*, i8* } { { i8*, i8* }* (i8*)* bitcast ({ i8*, i8* }* (%"$$fundef_19_env_117"*)* @"$fundef_19" to { i8*, i8* }* (i8*)*), i8* null }, { { i8*, i8* }* (i8*)*, i8* }* %"$dyndisp_pcast_347", align 8 + store { i8*, i8* }* %"$dyndisp_table_343", { i8*, i8* }** %tf, align 8, !dbg !66 + %"$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" + +"$out_of_gas_350": ; preds = %"$have_gas_335" call void @_out_of_gas() - br label %"$have_gas_345" + br label %"$have_gas_351" -"$have_gas_345": ; preds = %"$out_of_gas_344", %"$have_gas_329" - %"$consume_346" = sub i64 %"$gasrem_342", 1 - store i64 %"$consume_346", i64* @_gasrem, align 8 +"$have_gas_351": ; preds = %"$out_of_gas_350", %"$have_gas_335" + %"$consume_352" = sub i64 %"$gasrem_348", 1 + store i64 %"$consume_352", i64* @_gasrem, align 8 %tf1 = alloca { 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" + %"$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_349": ; preds = %"$have_gas_345" +"$out_of_gas_355": ; preds = %"$have_gas_351" call void @_out_of_gas() - br label %"$have_gas_350" - -"$have_gas_350": ; preds = %"$out_of_gas_349", %"$have_gas_345" - %"$consume_351" = sub i64 %"$gasrem_347", 1 - store i64 %"$consume_351", i64* @_gasrem, align 8 - %"$$fundef_33_envp_352_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_33_envp_352_salloc" = call i8* @_salloc(i8* %"$$fundef_33_envp_352_load", i64 8) - %"$$fundef_33_envp_352" = bitcast i8* %"$$fundef_33_envp_352_salloc" to %"$$fundef_33_env_110"* - %"$$fundef_33_env_voidp_354" = bitcast %"$$fundef_33_env_110"* %"$$fundef_33_envp_352" to i8* - %"$$fundef_33_cloval_355" = insertvalue { { i8*, i8* }* (i8*)*, i8* } { { i8*, i8* }* (i8*)* bitcast ({ i8*, i8* }* (%"$$fundef_33_env_110"*)* @"$fundef_33" to { i8*, i8* }* (i8*)*), i8* undef }, i8* %"$$fundef_33_env_voidp_354", 1 - %"$$fundef_33_env_tf_356" = getelementptr inbounds %"$$fundef_33_env_110", %"$$fundef_33_env_110"* %"$$fundef_33_envp_352", i32 0, i32 0 - %"$tf_357" = load { i8*, i8* }*, { i8*, i8* }** %tf, align 8 - store { i8*, i8* }* %"$tf_357", { i8*, i8* }** %"$$fundef_33_env_tf_356", align 8 - %"$dyndisp_table_358_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$dyndisp_table_358_salloc_salloc" = call i8* @_salloc(i8* %"$dyndisp_table_358_salloc_load", i64 64) - %"$dyndisp_table_358_salloc" = bitcast i8* %"$dyndisp_table_358_salloc_salloc" to [4 x { i8*, i8* }]* - %"$dyndisp_table_358" = bitcast [4 x { i8*, i8* }]* %"$dyndisp_table_358_salloc" to { i8*, i8* }* - %"$dyndisp_gep_359" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_358", i32 0 - %"$dyndisp_pcast_360" = bitcast { i8*, i8* }* %"$dyndisp_gep_359" to { { i8*, i8* }* (i8*)*, i8* }* - store { { i8*, i8* }* (i8*)*, i8* } %"$$fundef_33_cloval_355", { { i8*, i8* }* (i8*)*, i8* }* %"$dyndisp_pcast_360", align 8 - store { i8*, i8* }* %"$dyndisp_table_358", { i8*, i8* }** %tf1, align 8, !dbg !39 - %"$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_350" + br label %"$have_gas_356" + +"$have_gas_356": ; preds = %"$out_of_gas_355", %"$have_gas_351" + %"$consume_357" = sub i64 %"$gasrem_353", 1 + store i64 %"$consume_357", i64* @_gasrem, align 8 + %"$$fundef_33_envp_358_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_33_envp_358_salloc" = call i8* @_salloc(i8* %"$$fundef_33_envp_358_load", i64 8) + %"$$fundef_33_envp_358" = bitcast i8* %"$$fundef_33_envp_358_salloc" to %"$$fundef_33_env_110"* + %"$$fundef_33_env_voidp_360" = bitcast %"$$fundef_33_env_110"* %"$$fundef_33_envp_358" to i8* + %"$$fundef_33_cloval_361" = insertvalue { { i8*, i8* }* (i8*)*, i8* } { { i8*, i8* }* (i8*)* bitcast ({ i8*, i8* }* (%"$$fundef_33_env_110"*)* @"$fundef_33" to { i8*, i8* }* (i8*)*), i8* undef }, i8* %"$$fundef_33_env_voidp_360", 1 + %"$$fundef_33_env_tf_362" = getelementptr inbounds %"$$fundef_33_env_110", %"$$fundef_33_env_110"* %"$$fundef_33_envp_358", i32 0, i32 0 + %"$tf_363" = load { i8*, i8* }*, { i8*, i8* }** %tf, align 8 + store { i8*, i8* }* %"$tf_363", { i8*, i8* }** %"$$fundef_33_env_tf_362", align 8 + %"$dyndisp_table_364_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$dyndisp_table_364_salloc_salloc" = call i8* @_salloc(i8* %"$dyndisp_table_364_salloc_load", i64 64) + %"$dyndisp_table_364_salloc" = bitcast i8* %"$dyndisp_table_364_salloc_salloc" to [4 x { i8*, i8* }]* + %"$dyndisp_table_364" = bitcast [4 x { i8*, i8* }]* %"$dyndisp_table_364_salloc" to { i8*, i8* }* + %"$dyndisp_gep_365" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_364", i32 0 + %"$dyndisp_pcast_366" = bitcast { i8*, i8* }* %"$dyndisp_gep_365" to { { i8*, i8* }* (i8*)*, i8* }* + store { { i8*, i8* }* (i8*)*, i8* } %"$$fundef_33_cloval_361", { { i8*, i8* }* (i8*)*, i8* }* %"$dyndisp_pcast_366", align 8 + store { i8*, i8* }* %"$dyndisp_table_364", { i8*, i8* }** %tf1, align 8, !dbg !67 + %"$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_356" call void @_out_of_gas() - br label %"$have_gas_364" + br label %"$have_gas_370" -"$have_gas_364": ; preds = %"$out_of_gas_363", %"$have_gas_350" - %"$consume_365" = sub i64 %"$gasrem_361", 1 - store i64 %"$consume_365", i64* @_gasrem, align 8 +"$have_gas_370": ; preds = %"$out_of_gas_369", %"$have_gas_356" + %"$consume_371" = sub i64 %"$gasrem_367", 1 + store i64 %"$consume_371", i64* @_gasrem, align 8 %t1 = alloca { { %TName_Pair_Uint32_Uint64* (i8*, %Uint64)*, i8* } (i8*, %Uint32)*, i8* }, 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_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_368": ; preds = %"$have_gas_364" +"$out_of_gas_374": ; preds = %"$have_gas_370" 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 - %"$tf1_371" = load { i8*, i8* }*, { i8*, i8* }** %tf1, align 8 - %"$tf1_372" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$tf1_371", i32 0 - %"$tf1_373" = bitcast { i8*, i8* }* %"$tf1_372" to { { i8*, i8* }* (i8*)*, i8* }* - %"$tf1_374" = load { { i8*, i8* }* (i8*)*, i8* }, { { i8*, i8* }* (i8*)*, i8* }* %"$tf1_373", align 8 - %"$tf1_fptr_375" = extractvalue { { i8*, i8* }* (i8*)*, i8* } %"$tf1_374", 0 - %"$tf1_envptr_376" = extractvalue { { i8*, i8* }* (i8*)*, i8* } %"$tf1_374", 1 - %"$tf1_call_377" = call { i8*, i8* }* %"$tf1_fptr_375"(i8* %"$tf1_envptr_376"), !dbg !40 - %"$tf1_378" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$tf1_call_377", i32 1 - %"$tf1_379" = bitcast { i8*, i8* }* %"$tf1_378" to { { { %TName_Pair_Uint32_Uint64* (i8*, %Uint64)*, i8* } (i8*, %Uint32)*, i8* } (i8*)*, i8* }* - %"$tf1_380" = load { { { %TName_Pair_Uint32_Uint64* (i8*, %Uint64)*, i8* } (i8*, %Uint32)*, i8* } (i8*)*, i8* }, { { { %TName_Pair_Uint32_Uint64* (i8*, %Uint64)*, i8* } (i8*, %Uint32)*, i8* } (i8*)*, i8* }* %"$tf1_379", align 8 - %"$tf1_fptr_381" = extractvalue { { { %TName_Pair_Uint32_Uint64* (i8*, %Uint64)*, i8* } (i8*, %Uint32)*, i8* } (i8*)*, i8* } %"$tf1_380", 0 - %"$tf1_envptr_382" = extractvalue { { { %TName_Pair_Uint32_Uint64* (i8*, %Uint64)*, i8* } (i8*, %Uint32)*, i8* } (i8*)*, i8* } %"$tf1_380", 1 - %"$tf1_call_383" = call { { %TName_Pair_Uint32_Uint64* (i8*, %Uint64)*, i8* } (i8*, %Uint32)*, i8* } %"$tf1_fptr_381"(i8* %"$tf1_envptr_382"), !dbg !40 - store { { %TName_Pair_Uint32_Uint64* (i8*, %Uint64)*, i8* } (i8*, %Uint32)*, i8* } %"$tf1_call_383", { { %TName_Pair_Uint32_Uint64* (i8*, %Uint64)*, i8* } (i8*, %Uint32)*, i8* }* %t1, align 8, !dbg !41 - %"$gasrem_384" = load i64, i64* @_gasrem, align 8 - %"$gascmp_385" = icmp ugt i64 1, %"$gasrem_384" - br i1 %"$gascmp_385", label %"$out_of_gas_386", label %"$have_gas_387" - -"$out_of_gas_386": ; preds = %"$have_gas_369" + br label %"$have_gas_375" + +"$have_gas_375": ; preds = %"$out_of_gas_374", %"$have_gas_370" + %"$consume_376" = sub i64 %"$gasrem_372", 1 + store i64 %"$consume_376", i64* @_gasrem, align 8 + %"$tf1_377" = load { i8*, i8* }*, { i8*, i8* }** %tf1, align 8 + %"$tf1_378" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$tf1_377", i32 0 + %"$tf1_379" = bitcast { i8*, i8* }* %"$tf1_378" to { { i8*, i8* }* (i8*)*, i8* }* + %"$tf1_380" = load { { i8*, i8* }* (i8*)*, i8* }, { { i8*, i8* }* (i8*)*, i8* }* %"$tf1_379", align 8 + %"$tf1_fptr_381" = extractvalue { { i8*, i8* }* (i8*)*, i8* } %"$tf1_380", 0 + %"$tf1_envptr_382" = extractvalue { { i8*, i8* }* (i8*)*, i8* } %"$tf1_380", 1 + %"$tf1_call_383" = call { i8*, i8* }* %"$tf1_fptr_381"(i8* %"$tf1_envptr_382"), !dbg !68 + %"$tf1_384" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$tf1_call_383", i32 1 + %"$tf1_385" = bitcast { i8*, i8* }* %"$tf1_384" to { { { %TName_Pair_Uint32_Uint64* (i8*, %Uint64)*, i8* } (i8*, %Uint32)*, i8* } (i8*)*, i8* }* + %"$tf1_386" = load { { { %TName_Pair_Uint32_Uint64* (i8*, %Uint64)*, i8* } (i8*, %Uint32)*, i8* } (i8*)*, i8* }, { { { %TName_Pair_Uint32_Uint64* (i8*, %Uint64)*, i8* } (i8*, %Uint32)*, i8* } (i8*)*, i8* }* %"$tf1_385", align 8 + %"$tf1_fptr_387" = extractvalue { { { %TName_Pair_Uint32_Uint64* (i8*, %Uint64)*, i8* } (i8*, %Uint32)*, i8* } (i8*)*, i8* } %"$tf1_386", 0 + %"$tf1_envptr_388" = extractvalue { { { %TName_Pair_Uint32_Uint64* (i8*, %Uint64)*, i8* } (i8*, %Uint32)*, i8* } (i8*)*, i8* } %"$tf1_386", 1 + %"$tf1_call_389" = call { { %TName_Pair_Uint32_Uint64* (i8*, %Uint64)*, i8* } (i8*, %Uint32)*, i8* } %"$tf1_fptr_387"(i8* %"$tf1_envptr_388"), !dbg !68 + store { { %TName_Pair_Uint32_Uint64* (i8*, %Uint64)*, i8* } (i8*, %Uint32)*, i8* } %"$tf1_call_389", { { %TName_Pair_Uint32_Uint64* (i8*, %Uint64)*, i8* } (i8*, %Uint32)*, i8* }* %t1, align 8, !dbg !69 + %"$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_375" call void @_out_of_gas() - br label %"$have_gas_387" + br label %"$have_gas_393" -"$have_gas_387": ; preds = %"$out_of_gas_386", %"$have_gas_369" - %"$consume_388" = sub i64 %"$gasrem_384", 1 - store i64 %"$consume_388", i64* @_gasrem, align 8 +"$have_gas_393": ; preds = %"$out_of_gas_392", %"$have_gas_375" + %"$consume_394" = sub i64 %"$gasrem_390", 1 + store i64 %"$consume_394", i64* @_gasrem, align 8 %t3 = alloca { 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" + %"$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_391": ; preds = %"$have_gas_387" +"$out_of_gas_397": ; preds = %"$have_gas_393" call void @_out_of_gas() - br label %"$have_gas_392" - -"$have_gas_392": ; preds = %"$out_of_gas_391", %"$have_gas_387" - %"$consume_393" = sub i64 %"$gasrem_389", 1 - store i64 %"$consume_393", i64* @_gasrem, align 8 - %"$tf_394" = load { i8*, i8* }*, { i8*, i8* }** %tf, align 8 - %"$tf_395" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$tf_394", i32 2 - %"$tf_396" = bitcast { i8*, i8* }* %"$tf_395" to { { i8*, i8* }* (i8*)*, i8* }* - %"$tf_397" = load { { i8*, i8* }* (i8*)*, i8* }, { { i8*, i8* }* (i8*)*, i8* }* %"$tf_396", align 8 - %"$tf_fptr_398" = extractvalue { { i8*, i8* }* (i8*)*, i8* } %"$tf_397", 0 - %"$tf_envptr_399" = extractvalue { { i8*, i8* }* (i8*)*, i8* } %"$tf_397", 1 - %"$tf_call_400" = call { i8*, i8* }* %"$tf_fptr_398"(i8* %"$tf_envptr_399"), !dbg !42 - store { i8*, i8* }* %"$tf_call_400", { i8*, i8* }** %t3, align 8, !dbg !43 - %"$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 = %"$have_gas_392" + 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 + %"$tf_400" = load { i8*, i8* }*, { i8*, i8* }** %tf, align 8 + %"$tf_401" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$tf_400", i32 2 + %"$tf_402" = bitcast { i8*, i8* }* %"$tf_401" to { { i8*, i8* }* (i8*)*, i8* }* + %"$tf_403" = load { { i8*, i8* }* (i8*)*, i8* }, { { i8*, i8* }* (i8*)*, i8* }* %"$tf_402", align 8 + %"$tf_fptr_404" = extractvalue { { i8*, i8* }* (i8*)*, i8* } %"$tf_403", 0 + %"$tf_envptr_405" = extractvalue { { i8*, i8* }* (i8*)*, i8* } %"$tf_403", 1 + %"$tf_call_406" = call { i8*, i8* }* %"$tf_fptr_404"(i8* %"$tf_envptr_405"), !dbg !70 + store { i8*, i8* }* %"$tf_call_406", { i8*, i8* }** %t3, align 8, !dbg !71 + %"$gasrem_407" = load i64, i64* @_gasrem, align 8 + %"$gascmp_408" = icmp ugt i64 1, %"$gasrem_407" + br i1 %"$gascmp_408", label %"$out_of_gas_409", label %"$have_gas_410" + +"$out_of_gas_409": ; preds = %"$have_gas_398" call void @_out_of_gas() - br label %"$have_gas_404" + br label %"$have_gas_410" -"$have_gas_404": ; preds = %"$out_of_gas_403", %"$have_gas_392" - %"$consume_405" = sub i64 %"$gasrem_401", 1 - store i64 %"$consume_405", i64* @_gasrem, align 8 +"$have_gas_410": ; preds = %"$out_of_gas_409", %"$have_gas_398" + %"$consume_411" = sub i64 %"$gasrem_407", 1 + store i64 %"$consume_411", i64* @_gasrem, align 8 %t4 = alloca { { %TName_Pair_ByStr1_ByStr2* (i8*, [2 x i8])*, i8* } (i8*, [1 x i8])*, i8* }, 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" + %"$gasrem_412" = load i64, i64* @_gasrem, align 8 + %"$gascmp_413" = icmp ugt i64 1, %"$gasrem_412" + br i1 %"$gascmp_413", label %"$out_of_gas_414", label %"$have_gas_415" -"$out_of_gas_408": ; preds = %"$have_gas_404" +"$out_of_gas_414": ; preds = %"$have_gas_410" 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 - %"$t3_411" = load { i8*, i8* }*, { i8*, i8* }** %t3, align 8 - %"$t3_412" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$t3_411", i32 3 - %"$t3_413" = bitcast { i8*, i8* }* %"$t3_412" to { { { %TName_Pair_ByStr1_ByStr2* (i8*, [2 x i8])*, i8* } (i8*, [1 x i8])*, i8* } (i8*)*, i8* }* - %"$t3_414" = load { { { %TName_Pair_ByStr1_ByStr2* (i8*, [2 x i8])*, i8* } (i8*, [1 x i8])*, i8* } (i8*)*, i8* }, { { { %TName_Pair_ByStr1_ByStr2* (i8*, [2 x i8])*, i8* } (i8*, [1 x i8])*, i8* } (i8*)*, i8* }* %"$t3_413", align 8 - %"$t3_fptr_415" = extractvalue { { { %TName_Pair_ByStr1_ByStr2* (i8*, [2 x i8])*, i8* } (i8*, [1 x i8])*, i8* } (i8*)*, i8* } %"$t3_414", 0 - %"$t3_envptr_416" = extractvalue { { { %TName_Pair_ByStr1_ByStr2* (i8*, [2 x i8])*, i8* } (i8*, [1 x i8])*, i8* } (i8*)*, i8* } %"$t3_414", 1 - %"$t3_call_417" = call { { %TName_Pair_ByStr1_ByStr2* (i8*, [2 x i8])*, i8* } (i8*, [1 x i8])*, i8* } %"$t3_fptr_415"(i8* %"$t3_envptr_416"), !dbg !44 - store { { %TName_Pair_ByStr1_ByStr2* (i8*, [2 x i8])*, i8* } (i8*, [1 x i8])*, i8* } %"$t3_call_417", { { %TName_Pair_ByStr1_ByStr2* (i8*, [2 x i8])*, i8* } (i8*, [1 x i8])*, i8* }* %t4, align 8, !dbg !45 - %"$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_409" + br label %"$have_gas_415" + +"$have_gas_415": ; preds = %"$out_of_gas_414", %"$have_gas_410" + %"$consume_416" = sub i64 %"$gasrem_412", 1 + store i64 %"$consume_416", i64* @_gasrem, align 8 + %"$t3_417" = load { i8*, i8* }*, { i8*, i8* }** %t3, align 8 + %"$t3_418" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$t3_417", i32 3 + %"$t3_419" = bitcast { i8*, i8* }* %"$t3_418" to { { { %TName_Pair_ByStr1_ByStr2* (i8*, [2 x i8])*, i8* } (i8*, [1 x i8])*, i8* } (i8*)*, i8* }* + %"$t3_420" = load { { { %TName_Pair_ByStr1_ByStr2* (i8*, [2 x i8])*, i8* } (i8*, [1 x i8])*, i8* } (i8*)*, i8* }, { { { %TName_Pair_ByStr1_ByStr2* (i8*, [2 x i8])*, i8* } (i8*, [1 x i8])*, i8* } (i8*)*, i8* }* %"$t3_419", align 8 + %"$t3_fptr_421" = extractvalue { { { %TName_Pair_ByStr1_ByStr2* (i8*, [2 x i8])*, i8* } (i8*, [1 x i8])*, i8* } (i8*)*, i8* } %"$t3_420", 0 + %"$t3_envptr_422" = extractvalue { { { %TName_Pair_ByStr1_ByStr2* (i8*, [2 x i8])*, i8* } (i8*, [1 x i8])*, i8* } (i8*)*, i8* } %"$t3_420", 1 + %"$t3_call_423" = call { { %TName_Pair_ByStr1_ByStr2* (i8*, [2 x i8])*, i8* } (i8*, [1 x i8])*, i8* } %"$t3_fptr_421"(i8* %"$t3_envptr_422"), !dbg !72 + store { { %TName_Pair_ByStr1_ByStr2* (i8*, [2 x i8])*, i8* } (i8*, [1 x i8])*, i8* } %"$t3_call_423", { { %TName_Pair_ByStr1_ByStr2* (i8*, [2 x i8])*, i8* } (i8*, [1 x i8])*, i8* }* %t4, align 8, !dbg !73 + %"$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_415" call void @_out_of_gas() - br label %"$have_gas_421" + br label %"$have_gas_427" -"$have_gas_421": ; preds = %"$out_of_gas_420", %"$have_gas_409" - %"$consume_422" = sub i64 %"$gasrem_418", 1 - store i64 %"$consume_422", i64* @_gasrem, align 8 +"$have_gas_427": ; preds = %"$out_of_gas_426", %"$have_gas_415" + %"$consume_428" = sub i64 %"$gasrem_424", 1 + store i64 %"$consume_428", i64* @_gasrem, align 8 %uint32_one = alloca %Uint32, align 8 - %"$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" + call void @llvm.dbg.declare(metadata %Uint32* %uint32_one, metadata !74, metadata !DIExpression()), !dbg !75 + %"$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_425": ; preds = %"$have_gas_421" +"$out_of_gas_431": ; preds = %"$have_gas_427" call void @_out_of_gas() - br label %"$have_gas_426" + br label %"$have_gas_432" -"$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 %Uint32 { i32 1 }, %Uint32* %uint32_one, align 4, !dbg !46 - %"$gasrem_428" = load i64, i64* @_gasrem, align 8 - %"$gascmp_429" = icmp ugt i64 1, %"$gasrem_428" - br i1 %"$gascmp_429", label %"$out_of_gas_430", label %"$have_gas_431" +"$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* %uint32_one, align 4, !dbg !76 + %"$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_430": ; preds = %"$have_gas_426" +"$out_of_gas_436": ; preds = %"$have_gas_432" call void @_out_of_gas() - br label %"$have_gas_431" + br label %"$have_gas_437" -"$have_gas_431": ; preds = %"$out_of_gas_430", %"$have_gas_426" - %"$consume_432" = sub i64 %"$gasrem_428", 1 - store i64 %"$consume_432", 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 %uint64_two = alloca %Uint64, 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" + call void @llvm.dbg.declare(metadata %Uint64* %uint64_two, metadata !77, metadata !DIExpression()), !dbg !78 + %"$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_435": ; preds = %"$have_gas_431" +"$out_of_gas_441": ; preds = %"$have_gas_437" call void @_out_of_gas() - br label %"$have_gas_436" + br label %"$have_gas_442" -"$have_gas_436": ; preds = %"$out_of_gas_435", %"$have_gas_431" - %"$consume_437" = sub i64 %"$gasrem_433", 1 - store i64 %"$consume_437", i64* @_gasrem, align 8 - store %Uint64 { i64 2 }, %Uint64* %uint64_two, align 8, !dbg !47 - %"$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" +"$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 + store %Uint64 { i64 2 }, %Uint64* %uint64_two, align 8, !dbg !79 + %"$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_440": ; preds = %"$have_gas_436" +"$out_of_gas_446": ; preds = %"$have_gas_442" call void @_out_of_gas() - br label %"$have_gas_441" + br label %"$have_gas_447" -"$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_447": ; preds = %"$out_of_gas_446", %"$have_gas_442" + %"$consume_448" = sub i64 %"$gasrem_444", 1 + store i64 %"$consume_448", i64* @_gasrem, align 8 %addr_bystr1 = alloca [1 x i8], align 1 - %"$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" + call void @llvm.dbg.declare(metadata [1 x i8]* %addr_bystr1, metadata !80, metadata !DIExpression()), !dbg !81 + %"$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_445": ; preds = %"$have_gas_441" +"$out_of_gas_451": ; preds = %"$have_gas_447" call void @_out_of_gas() - br label %"$have_gas_446" + br label %"$have_gas_452" -"$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 - store [1 x i8] c"\AA", [1 x i8]* %addr_bystr1, align 1, !dbg !48 - %"$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" +"$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 [1 x i8] c"\AA", [1 x i8]* %addr_bystr1, align 1, !dbg !82 + %"$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_450": ; preds = %"$have_gas_446" +"$out_of_gas_456": ; preds = %"$have_gas_452" call void @_out_of_gas() - br label %"$have_gas_451" + br label %"$have_gas_457" -"$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 +"$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 %addr_bystr2 = alloca [2 x i8], align 1 - %"$gasrem_453" = load i64, i64* @_gasrem, align 8 - %"$gascmp_454" = icmp ugt i64 1, %"$gasrem_453" - br i1 %"$gascmp_454", label %"$out_of_gas_455", label %"$have_gas_456" + call void @llvm.dbg.declare(metadata [2 x i8]* %addr_bystr2, metadata !83, metadata !DIExpression()), !dbg !84 + %"$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_455": ; preds = %"$have_gas_451" +"$out_of_gas_461": ; preds = %"$have_gas_457" call void @_out_of_gas() - br label %"$have_gas_456" + br label %"$have_gas_462" -"$have_gas_456": ; preds = %"$out_of_gas_455", %"$have_gas_451" - %"$consume_457" = sub i64 %"$gasrem_453", 1 - store i64 %"$consume_457", i64* @_gasrem, align 8 - store [2 x i8] c"\AA\BB", [2 x i8]* %addr_bystr2, align 1, !dbg !49 - %"$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" +"$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 [2 x i8] c"\AA\BB", [2 x i8]* %addr_bystr2, align 1, !dbg !85 + %"$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_460": ; preds = %"$have_gas_456" +"$out_of_gas_466": ; preds = %"$have_gas_462" call void @_out_of_gas() - br label %"$have_gas_461" + br label %"$have_gas_467" -"$have_gas_461": ; preds = %"$out_of_gas_460", %"$have_gas_456" - %"$consume_462" = sub i64 %"$gasrem_458", 1 - store i64 %"$consume_462", 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 %p1 = alloca %TName_Pair_Uint32_Uint64*, 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" + call void @llvm.dbg.declare(metadata %TName_Pair_Uint32_Uint64** %p1, metadata !86, metadata !DIExpression()), !dbg !87 + %"$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_465": ; preds = %"$have_gas_461" +"$out_of_gas_471": ; preds = %"$have_gas_467" call void @_out_of_gas() - br label %"$have_gas_466" + br label %"$have_gas_472" -"$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 +"$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 %"$t1_6" = alloca { %TName_Pair_Uint32_Uint64* (i8*, %Uint64)*, i8* }, align 8 - %"$t1_468" = load { { %TName_Pair_Uint32_Uint64* (i8*, %Uint64)*, i8* } (i8*, %Uint32)*, i8* }, { { %TName_Pair_Uint32_Uint64* (i8*, %Uint64)*, i8* } (i8*, %Uint32)*, i8* }* %t1, align 8 - %"$t1_fptr_469" = extractvalue { { %TName_Pair_Uint32_Uint64* (i8*, %Uint64)*, i8* } (i8*, %Uint32)*, i8* } %"$t1_468", 0 - %"$t1_envptr_470" = extractvalue { { %TName_Pair_Uint32_Uint64* (i8*, %Uint64)*, i8* } (i8*, %Uint32)*, i8* } %"$t1_468", 1 - %"$uint32_one_471" = load %Uint32, %Uint32* %uint32_one, align 4 - %"$t1_call_472" = call { %TName_Pair_Uint32_Uint64* (i8*, %Uint64)*, i8* } %"$t1_fptr_469"(i8* %"$t1_envptr_470", %Uint32 %"$uint32_one_471"), !dbg !50 - store { %TName_Pair_Uint32_Uint64* (i8*, %Uint64)*, i8* } %"$t1_call_472", { %TName_Pair_Uint32_Uint64* (i8*, %Uint64)*, i8* }* %"$t1_6", align 8, !dbg !50 + %"$t1_474" = load { { %TName_Pair_Uint32_Uint64* (i8*, %Uint64)*, i8* } (i8*, %Uint32)*, i8* }, { { %TName_Pair_Uint32_Uint64* (i8*, %Uint64)*, i8* } (i8*, %Uint32)*, i8* }* %t1, align 8 + %"$t1_fptr_475" = extractvalue { { %TName_Pair_Uint32_Uint64* (i8*, %Uint64)*, i8* } (i8*, %Uint32)*, i8* } %"$t1_474", 0 + %"$t1_envptr_476" = extractvalue { { %TName_Pair_Uint32_Uint64* (i8*, %Uint64)*, i8* } (i8*, %Uint32)*, i8* } %"$t1_474", 1 + %"$uint32_one_477" = load %Uint32, %Uint32* %uint32_one, align 4 + %"$t1_call_478" = call { %TName_Pair_Uint32_Uint64* (i8*, %Uint64)*, i8* } %"$t1_fptr_475"(i8* %"$t1_envptr_476", %Uint32 %"$uint32_one_477"), !dbg !88 + store { %TName_Pair_Uint32_Uint64* (i8*, %Uint64)*, i8* } %"$t1_call_478", { %TName_Pair_Uint32_Uint64* (i8*, %Uint64)*, i8* }* %"$t1_6", align 8, !dbg !88 %"$t1_7" = alloca %TName_Pair_Uint32_Uint64*, align 8 - %"$$t1_6_473" = load { %TName_Pair_Uint32_Uint64* (i8*, %Uint64)*, i8* }, { %TName_Pair_Uint32_Uint64* (i8*, %Uint64)*, i8* }* %"$t1_6", align 8 - %"$$t1_6_fptr_474" = extractvalue { %TName_Pair_Uint32_Uint64* (i8*, %Uint64)*, i8* } %"$$t1_6_473", 0 - %"$$t1_6_envptr_475" = extractvalue { %TName_Pair_Uint32_Uint64* (i8*, %Uint64)*, i8* } %"$$t1_6_473", 1 - %"$uint64_two_476" = load %Uint64, %Uint64* %uint64_two, align 8 - %"$$t1_6_call_477" = call %TName_Pair_Uint32_Uint64* %"$$t1_6_fptr_474"(i8* %"$$t1_6_envptr_475", %Uint64 %"$uint64_two_476"), !dbg !50 - store %TName_Pair_Uint32_Uint64* %"$$t1_6_call_477", %TName_Pair_Uint32_Uint64** %"$t1_7", align 8, !dbg !50 - %"$$t1_7_478" = load %TName_Pair_Uint32_Uint64*, %TName_Pair_Uint32_Uint64** %"$t1_7", align 8 - store %TName_Pair_Uint32_Uint64* %"$$t1_7_478", %TName_Pair_Uint32_Uint64** %p1, align 8, !dbg !50 - %"$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 = %"$have_gas_466" + call void @llvm.dbg.declare(metadata %TName_Pair_Uint32_Uint64** %"$t1_7", metadata !89, metadata !DIExpression()), !dbg !88 + %"$$t1_6_479" = load { %TName_Pair_Uint32_Uint64* (i8*, %Uint64)*, i8* }, { %TName_Pair_Uint32_Uint64* (i8*, %Uint64)*, i8* }* %"$t1_6", align 8 + %"$$t1_6_fptr_480" = extractvalue { %TName_Pair_Uint32_Uint64* (i8*, %Uint64)*, i8* } %"$$t1_6_479", 0 + %"$$t1_6_envptr_481" = extractvalue { %TName_Pair_Uint32_Uint64* (i8*, %Uint64)*, i8* } %"$$t1_6_479", 1 + %"$uint64_two_482" = load %Uint64, %Uint64* %uint64_two, align 8 + %"$$t1_6_call_483" = call %TName_Pair_Uint32_Uint64* %"$$t1_6_fptr_480"(i8* %"$$t1_6_envptr_481", %Uint64 %"$uint64_two_482"), !dbg !88 + store %TName_Pair_Uint32_Uint64* %"$$t1_6_call_483", %TName_Pair_Uint32_Uint64** %"$t1_7", align 8, !dbg !88 + %"$$t1_7_484" = load %TName_Pair_Uint32_Uint64*, %TName_Pair_Uint32_Uint64** %"$t1_7", align 8 + store %TName_Pair_Uint32_Uint64* %"$$t1_7_484", %TName_Pair_Uint32_Uint64** %p1, align 8, !dbg !88 + %"$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" + +"$out_of_gas_487": ; preds = %"$have_gas_472" call void @_out_of_gas() - br label %"$have_gas_482" + br label %"$have_gas_488" -"$have_gas_482": ; preds = %"$out_of_gas_481", %"$have_gas_466" - %"$consume_483" = sub i64 %"$gasrem_479", 1 - store i64 %"$consume_483", i64* @_gasrem, align 8 +"$have_gas_488": ; preds = %"$out_of_gas_487", %"$have_gas_472" + %"$consume_489" = sub i64 %"$gasrem_485", 1 + store i64 %"$consume_489", i64* @_gasrem, align 8 %p2 = alloca %TName_Pair_ByStr1_ByStr2*, align 8 - %"$gasrem_484" = load i64, i64* @_gasrem, align 8 - %"$gascmp_485" = icmp ugt i64 1, %"$gasrem_484" - br i1 %"$gascmp_485", label %"$out_of_gas_486", label %"$have_gas_487" + call void @llvm.dbg.declare(metadata %TName_Pair_ByStr1_ByStr2** %p2, metadata !90, metadata !DIExpression()), !dbg !91 + %"$gasrem_490" = load i64, i64* @_gasrem, align 8 + %"$gascmp_491" = icmp ugt i64 1, %"$gasrem_490" + br i1 %"$gascmp_491", label %"$out_of_gas_492", label %"$have_gas_493" -"$out_of_gas_486": ; preds = %"$have_gas_482" +"$out_of_gas_492": ; preds = %"$have_gas_488" call void @_out_of_gas() - br label %"$have_gas_487" + br label %"$have_gas_493" -"$have_gas_487": ; preds = %"$out_of_gas_486", %"$have_gas_482" - %"$consume_488" = sub i64 %"$gasrem_484", 1 - store i64 %"$consume_488", i64* @_gasrem, align 8 +"$have_gas_493": ; preds = %"$out_of_gas_492", %"$have_gas_488" + %"$consume_494" = sub i64 %"$gasrem_490", 1 + store i64 %"$consume_494", i64* @_gasrem, align 8 %"$t4_8" = alloca { %TName_Pair_ByStr1_ByStr2* (i8*, [2 x i8])*, i8* }, align 8 - %"$t4_489" = load { { %TName_Pair_ByStr1_ByStr2* (i8*, [2 x i8])*, i8* } (i8*, [1 x i8])*, i8* }, { { %TName_Pair_ByStr1_ByStr2* (i8*, [2 x i8])*, i8* } (i8*, [1 x i8])*, i8* }* %t4, align 8 - %"$t4_fptr_490" = extractvalue { { %TName_Pair_ByStr1_ByStr2* (i8*, [2 x i8])*, i8* } (i8*, [1 x i8])*, i8* } %"$t4_489", 0 - %"$t4_envptr_491" = extractvalue { { %TName_Pair_ByStr1_ByStr2* (i8*, [2 x i8])*, i8* } (i8*, [1 x i8])*, i8* } %"$t4_489", 1 - %"$addr_bystr1_492" = load [1 x i8], [1 x i8]* %addr_bystr1, align 1 - %"$t4_call_493" = call { %TName_Pair_ByStr1_ByStr2* (i8*, [2 x i8])*, i8* } %"$t4_fptr_490"(i8* %"$t4_envptr_491", [1 x i8] %"$addr_bystr1_492"), !dbg !51 - store { %TName_Pair_ByStr1_ByStr2* (i8*, [2 x i8])*, i8* } %"$t4_call_493", { %TName_Pair_ByStr1_ByStr2* (i8*, [2 x i8])*, i8* }* %"$t4_8", align 8, !dbg !51 + %"$t4_495" = load { { %TName_Pair_ByStr1_ByStr2* (i8*, [2 x i8])*, i8* } (i8*, [1 x i8])*, i8* }, { { %TName_Pair_ByStr1_ByStr2* (i8*, [2 x i8])*, i8* } (i8*, [1 x i8])*, i8* }* %t4, align 8 + %"$t4_fptr_496" = extractvalue { { %TName_Pair_ByStr1_ByStr2* (i8*, [2 x i8])*, i8* } (i8*, [1 x i8])*, i8* } %"$t4_495", 0 + %"$t4_envptr_497" = extractvalue { { %TName_Pair_ByStr1_ByStr2* (i8*, [2 x i8])*, i8* } (i8*, [1 x i8])*, i8* } %"$t4_495", 1 + %"$addr_bystr1_498" = load [1 x i8], [1 x i8]* %addr_bystr1, align 1 + %"$t4_call_499" = call { %TName_Pair_ByStr1_ByStr2* (i8*, [2 x i8])*, i8* } %"$t4_fptr_496"(i8* %"$t4_envptr_497", [1 x i8] %"$addr_bystr1_498"), !dbg !92 + store { %TName_Pair_ByStr1_ByStr2* (i8*, [2 x i8])*, i8* } %"$t4_call_499", { %TName_Pair_ByStr1_ByStr2* (i8*, [2 x i8])*, i8* }* %"$t4_8", align 8, !dbg !92 %"$t4_9" = alloca %TName_Pair_ByStr1_ByStr2*, align 8 - %"$$t4_8_494" = load { %TName_Pair_ByStr1_ByStr2* (i8*, [2 x i8])*, i8* }, { %TName_Pair_ByStr1_ByStr2* (i8*, [2 x i8])*, i8* }* %"$t4_8", align 8 - %"$$t4_8_fptr_495" = extractvalue { %TName_Pair_ByStr1_ByStr2* (i8*, [2 x i8])*, i8* } %"$$t4_8_494", 0 - %"$$t4_8_envptr_496" = extractvalue { %TName_Pair_ByStr1_ByStr2* (i8*, [2 x i8])*, i8* } %"$$t4_8_494", 1 - %"$addr_bystr2_497" = load [2 x i8], [2 x i8]* %addr_bystr2, align 1 - %"$$t4_8_call_498" = call %TName_Pair_ByStr1_ByStr2* %"$$t4_8_fptr_495"(i8* %"$$t4_8_envptr_496", [2 x i8] %"$addr_bystr2_497"), !dbg !51 - store %TName_Pair_ByStr1_ByStr2* %"$$t4_8_call_498", %TName_Pair_ByStr1_ByStr2** %"$t4_9", align 8, !dbg !51 - %"$$t4_9_499" = load %TName_Pair_ByStr1_ByStr2*, %TName_Pair_ByStr1_ByStr2** %"$t4_9", align 8 - store %TName_Pair_ByStr1_ByStr2* %"$$t4_9_499", %TName_Pair_ByStr1_ByStr2** %p2, align 8, !dbg !51 - %"$gasrem_500" = load i64, i64* @_gasrem, align 8 - %"$gascmp_501" = icmp ugt i64 1, %"$gasrem_500" - br i1 %"$gascmp_501", label %"$out_of_gas_502", label %"$have_gas_503" - -"$out_of_gas_502": ; preds = %"$have_gas_487" + call void @llvm.dbg.declare(metadata %TName_Pair_ByStr1_ByStr2** %"$t4_9", metadata !93, metadata !DIExpression()), !dbg !92 + %"$$t4_8_500" = load { %TName_Pair_ByStr1_ByStr2* (i8*, [2 x i8])*, i8* }, { %TName_Pair_ByStr1_ByStr2* (i8*, [2 x i8])*, i8* }* %"$t4_8", align 8 + %"$$t4_8_fptr_501" = extractvalue { %TName_Pair_ByStr1_ByStr2* (i8*, [2 x i8])*, i8* } %"$$t4_8_500", 0 + %"$$t4_8_envptr_502" = extractvalue { %TName_Pair_ByStr1_ByStr2* (i8*, [2 x i8])*, i8* } %"$$t4_8_500", 1 + %"$addr_bystr2_503" = load [2 x i8], [2 x i8]* %addr_bystr2, align 1 + %"$$t4_8_call_504" = call %TName_Pair_ByStr1_ByStr2* %"$$t4_8_fptr_501"(i8* %"$$t4_8_envptr_502", [2 x i8] %"$addr_bystr2_503"), !dbg !92 + store %TName_Pair_ByStr1_ByStr2* %"$$t4_8_call_504", %TName_Pair_ByStr1_ByStr2** %"$t4_9", align 8, !dbg !92 + %"$$t4_9_505" = load %TName_Pair_ByStr1_ByStr2*, %TName_Pair_ByStr1_ByStr2** %"$t4_9", align 8 + store %TName_Pair_ByStr1_ByStr2* %"$$t4_9_505", %TName_Pair_ByStr1_ByStr2** %p2, align 8, !dbg !92 + %"$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 = %"$have_gas_493" call void @_out_of_gas() - br label %"$have_gas_503" - -"$have_gas_503": ; preds = %"$out_of_gas_502", %"$have_gas_487" - %"$consume_504" = sub i64 %"$gasrem_500", 1 - store i64 %"$consume_504", i64* @_gasrem, align 8 - %"$p1_505" = load %TName_Pair_Uint32_Uint64*, %TName_Pair_Uint32_Uint64** %p1, align 8 - %"$p2_506" = load %TName_Pair_ByStr1_ByStr2*, %TName_Pair_ByStr1_ByStr2** %p2, align 8 - %"$adtval_507_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_507_salloc" = call i8* @_salloc(i8* %"$adtval_507_load", i64 17) - %"$adtval_507" = bitcast i8* %"$adtval_507_salloc" to %"CName_Pair_Pair_(Uint32)_(Uint64)_Pair_(ByStr1)_(ByStr2)"* - %"$adtgep_508" = getelementptr inbounds %"CName_Pair_Pair_(Uint32)_(Uint64)_Pair_(ByStr1)_(ByStr2)", %"CName_Pair_Pair_(Uint32)_(Uint64)_Pair_(ByStr1)_(ByStr2)"* %"$adtval_507", i32 0, i32 0 - store i8 0, i8* %"$adtgep_508", align 1 - %"$adtgep_509" = getelementptr inbounds %"CName_Pair_Pair_(Uint32)_(Uint64)_Pair_(ByStr1)_(ByStr2)", %"CName_Pair_Pair_(Uint32)_(Uint64)_Pair_(ByStr1)_(ByStr2)"* %"$adtval_507", i32 0, i32 1 - store %TName_Pair_Uint32_Uint64* %"$p1_505", %TName_Pair_Uint32_Uint64** %"$adtgep_509", align 8 - %"$adtgep_510" = getelementptr inbounds %"CName_Pair_Pair_(Uint32)_(Uint64)_Pair_(ByStr1)_(ByStr2)", %"CName_Pair_Pair_(Uint32)_(Uint64)_Pair_(ByStr1)_(ByStr2)"* %"$adtval_507", i32 0, i32 2 - store %TName_Pair_ByStr1_ByStr2* %"$p2_506", %TName_Pair_ByStr1_ByStr2** %"$adtgep_510", align 8 - %"$adtptr_511" = bitcast %"CName_Pair_Pair_(Uint32)_(Uint64)_Pair_(ByStr1)_(ByStr2)"* %"$adtval_507" to %"TName_Pair_Pair_(Uint32)_(Uint64)_Pair_(ByStr1)_(ByStr2)"* - store %"TName_Pair_Pair_(Uint32)_(Uint64)_Pair_(ByStr1)_(ByStr2)"* %"$adtptr_511", %"TName_Pair_Pair_(Uint32)_(Uint64)_Pair_(ByStr1)_(ByStr2)"** %"$expr_10", align 8, !dbg !52 - %"$$expr_10_512" = load %"TName_Pair_Pair_(Uint32)_(Uint64)_Pair_(ByStr1)_(ByStr2)"*, %"TName_Pair_Pair_(Uint32)_(Uint64)_Pair_(ByStr1)_(ByStr2)"** %"$expr_10", align 8 - ret %"TName_Pair_Pair_(Uint32)_(Uint64)_Pair_(ByStr1)_(ByStr2)"* %"$$expr_10_512" + br label %"$have_gas_509" + +"$have_gas_509": ; preds = %"$out_of_gas_508", %"$have_gas_493" + %"$consume_510" = sub i64 %"$gasrem_506", 1 + store i64 %"$consume_510", i64* @_gasrem, align 8 + %"$p1_511" = load %TName_Pair_Uint32_Uint64*, %TName_Pair_Uint32_Uint64** %p1, align 8 + %"$p2_512" = load %TName_Pair_ByStr1_ByStr2*, %TName_Pair_ByStr1_ByStr2** %p2, align 8 + %"$adtval_513_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_513_salloc" = call i8* @_salloc(i8* %"$adtval_513_load", i64 17) + %"$adtval_513" = bitcast i8* %"$adtval_513_salloc" to %"CName_Pair_Pair_(Uint32)_(Uint64)_Pair_(ByStr1)_(ByStr2)"* + %"$adtgep_514" = getelementptr inbounds %"CName_Pair_Pair_(Uint32)_(Uint64)_Pair_(ByStr1)_(ByStr2)", %"CName_Pair_Pair_(Uint32)_(Uint64)_Pair_(ByStr1)_(ByStr2)"* %"$adtval_513", i32 0, i32 0 + store i8 0, i8* %"$adtgep_514", align 1 + %"$adtgep_515" = getelementptr inbounds %"CName_Pair_Pair_(Uint32)_(Uint64)_Pair_(ByStr1)_(ByStr2)", %"CName_Pair_Pair_(Uint32)_(Uint64)_Pair_(ByStr1)_(ByStr2)"* %"$adtval_513", i32 0, i32 1 + store %TName_Pair_Uint32_Uint64* %"$p1_511", %TName_Pair_Uint32_Uint64** %"$adtgep_515", align 8 + %"$adtgep_516" = getelementptr inbounds %"CName_Pair_Pair_(Uint32)_(Uint64)_Pair_(ByStr1)_(ByStr2)", %"CName_Pair_Pair_(Uint32)_(Uint64)_Pair_(ByStr1)_(ByStr2)"* %"$adtval_513", i32 0, i32 2 + store %TName_Pair_ByStr1_ByStr2* %"$p2_512", %TName_Pair_ByStr1_ByStr2** %"$adtgep_516", align 8 + %"$adtptr_517" = bitcast %"CName_Pair_Pair_(Uint32)_(Uint64)_Pair_(ByStr1)_(ByStr2)"* %"$adtval_513" to %"TName_Pair_Pair_(Uint32)_(Uint64)_Pair_(ByStr1)_(ByStr2)"* + store %"TName_Pair_Pair_(Uint32)_(Uint64)_Pair_(ByStr1)_(ByStr2)"* %"$adtptr_517", %"TName_Pair_Pair_(Uint32)_(Uint64)_Pair_(ByStr1)_(ByStr2)"** %"$expr_10", align 8, !dbg !94 + %"$$expr_10_518" = load %"TName_Pair_Pair_(Uint32)_(Uint64)_Pair_(ByStr1)_(ByStr2)"*, %"TName_Pair_Pair_(Uint32)_(Uint64)_Pair_(ByStr1)_(ByStr2)"** %"$expr_10", align 8 + ret %"TName_Pair_Pair_(Uint32)_(Uint64)_Pair_(ByStr1)_(ByStr2)"* %"$$expr_10_518" } declare void @_print_scilla_val(i8*, %_TyDescrTy_Typ*, i8*) define void @scilla_main() { entry: - %"$exprval_513" = call %"TName_Pair_Pair_(Uint32)_(Uint64)_Pair_(ByStr1)_(ByStr2)"* @_scilla_expr_fun(i8* null) - %"$memvoidcast_514" = bitcast %"TName_Pair_Pair_(Uint32)_(Uint64)_Pair_(ByStr1)_(ByStr2)"* %"$exprval_513" to i8* - %"$execptr_load_515" = load i8*, i8** @_execptr, align 8 - call void @_print_scilla_val(i8* %"$execptr_load_515", %_TyDescrTy_Typ* @"$TyDescr_ADT_Pair_Pair_(Uint32)_(Uint64)_Pair_(ByStr1)_(ByStr2)_75", i8* %"$memvoidcast_514") + %"$exprval_519" = call %"TName_Pair_Pair_(Uint32)_(Uint64)_Pair_(ByStr1)_(ByStr2)"* @_scilla_expr_fun(i8* null) + %"$memvoidcast_520" = bitcast %"TName_Pair_Pair_(Uint32)_(Uint64)_Pair_(ByStr1)_(ByStr2)"* %"$exprval_519" to i8* + %"$execptr_load_521" = load i8*, i8** @_execptr, align 8 + call void @_print_scilla_val(i8* %"$execptr_load_521", %_TyDescrTy_Typ* @"$TyDescr_ADT_Pair_Pair_(Uint32)_(Uint64)_Pair_(ByStr1)_(ByStr2)_75", i8* %"$memvoidcast_520") ret void } +attributes #0 = { nocallback nofree nosync nounwind readnone speculatable willreturn } + !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) +!1 = distinct !DICompileUnit(language: DW_LANG_C89, file: !2, producer: "Scilla Compiler", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false) !2 = !DIFile(filename: "typ3-inst.scilexp", directory: "codegen/expr") -!3 = !{} -!4 = distinct !DISubprogram(name: "$fundef_35", linkageName: "$fundef_35", 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") -!8 = !DILocation(line: 12, column: 6, scope: !4) -!9 = !DILocation(line: 12, column: 5, scope: !4) -!10 = distinct !DISubprogram(name: "$fundef_33", linkageName: "$fundef_33", scope: !2, file: !2, line: 11, type: !5, scopeLine: 11, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!3 = distinct !DISubprogram(name: "$fundef_35", linkageName: "$fundef_35", scope: !2, file: !2, line: 12, type: !4, scopeLine: 12, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!4 = !DISubroutineType(types: !5) +!5 = !{!6} +!6 = !DIBasicType(tag: DW_TAG_unspecified_type, name: "void") +!7 = !{} +!8 = !DILocation(line: 12, column: 6, scope: !3) +!9 = !DILocation(line: 12, column: 5, scope: !3) +!10 = distinct !DISubprogram(name: "$fundef_33", linkageName: "$fundef_33", scope: !2, file: !2, line: 11, type: !4, scopeLine: 11, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) !11 = !DILocation(line: 11, column: 3, scope: !10) -!12 = distinct !DISubprogram(name: "$fundef_31", linkageName: "$fundef_31", scope: !2, file: !2, line: 6, type: !5, scopeLine: 6, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!13 = !DILocation(line: 6, column: 5, scope: !12) -!14 = distinct !DISubprogram(name: "$fundef_29", linkageName: "$fundef_29", scope: !2, file: !2, line: 5, type: !5, scopeLine: 5, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!15 = !DILocation(line: 6, column: 5, scope: !14) -!16 = distinct !DISubprogram(name: "$fundef_27", linkageName: "$fundef_27", scope: !2, file: !2, line: 5, type: !5, scopeLine: 5, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!17 = !DILocation(line: 5, column: 3, scope: !16) -!18 = distinct !DISubprogram(name: "$fundef_25", linkageName: "$fundef_25", scope: !2, file: !2, line: 6, type: !5, scopeLine: 6, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!19 = !DILocation(line: 6, column: 5, scope: !18) -!20 = distinct !DISubprogram(name: "$fundef_23", linkageName: "$fundef_23", scope: !2, file: !2, line: 5, type: !5, scopeLine: 5, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!21 = !DILocation(line: 6, column: 5, scope: !20) -!22 = distinct !DISubprogram(name: "$fundef_21", linkageName: "$fundef_21", scope: !2, file: !2, line: 5, type: !5, scopeLine: 5, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!23 = !DILocation(line: 5, column: 3, scope: !22) -!24 = 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) -!25 = !DILocation(line: 3, column: 3, scope: !24) -!26 = distinct !DISubprogram(name: "$fundef_17", linkageName: "$fundef_17", scope: !2, file: !2, line: 6, type: !5, scopeLine: 6, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!27 = !DILocation(line: 6, column: 5, scope: !26) -!28 = distinct !DISubprogram(name: "$fundef_15", linkageName: "$fundef_15", scope: !2, file: !2, line: 5, type: !5, scopeLine: 5, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!29 = !DILocation(line: 6, column: 5, scope: !28) -!30 = distinct !DISubprogram(name: "$fundef_13", linkageName: "$fundef_13", scope: !2, file: !2, line: 5, type: !5, scopeLine: 5, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!31 = !DILocation(line: 5, column: 3, scope: !30) -!32 = distinct !DISubprogram(name: "$fundef_11", linkageName: "$fundef_11", scope: !2, file: !2, line: 3, type: !5, scopeLine: 3, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!33 = !DILocation(line: 3, column: 3, scope: !32) -!34 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !35, file: !35, type: !5, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!35 = !DIFile(filename: ".", directory: ".") -!36 = !DILocation(line: 0, scope: !34) -!37 = 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) -!38 = !DILocation(line: 2, column: 3, scope: !37) -!39 = !DILocation(line: 10, column: 3, scope: !37) -!40 = !DILocation(line: 16, column: 11, scope: !37) -!41 = !DILocation(line: 16, column: 10, scope: !37) -!42 = !DILocation(line: 17, column: 11, scope: !37) -!43 = !DILocation(line: 17, column: 10, scope: !37) -!44 = !DILocation(line: 18, column: 11, scope: !37) -!45 = !DILocation(line: 18, column: 10, scope: !37) -!46 = !DILocation(line: 19, column: 18, scope: !37) -!47 = !DILocation(line: 20, column: 18, scope: !37) -!48 = !DILocation(line: 21, column: 19, scope: !37) -!49 = !DILocation(line: 22, column: 19, scope: !37) -!50 = !DILocation(line: 24, column: 10, scope: !37) -!51 = !DILocation(line: 25, column: 10, scope: !37) -!52 = !DILocation(line: 26, column: 1, scope: !37) +!12 = distinct !DISubprogram(name: "$fundef_31", linkageName: "$fundef_31", scope: !2, file: !2, line: 6, type: !4, scopeLine: 6, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!13 = !DILocalVariable(name: "b", scope: !12, file: !2, line: 5, type: !14) +!14 = !DIBasicType(name: "ByStr2", size: 2) +!15 = !DILocation(line: 5, column: 8, scope: !12) +!16 = !DILocalVariable(name: "$retval_32", scope: !12, file: !2, line: 6, type: !17) +!17 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "Pair (ByStr1) (ByStr2)", baseType: !18, size: 8, align: 8, dwarfAddressSpace: 0) +!18 = !DIBasicType(name: "Pair (ByStr1) (ByStr2)", size: 8) +!19 = !DILocation(line: 6, column: 5, scope: !12) +!20 = distinct !DISubprogram(name: "$fundef_29", linkageName: "$fundef_29", scope: !2, file: !2, line: 5, type: !4, scopeLine: 5, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!21 = !DILocalVariable(name: "a", scope: !20, file: !2, line: 4, type: !22) +!22 = !DIBasicType(name: "ByStr1", size: 1) +!23 = !DILocation(line: 4, column: 8, scope: !20) +!24 = !DILocation(line: 6, column: 5, scope: !20) +!25 = distinct !DISubprogram(name: "$fundef_27", linkageName: "$fundef_27", scope: !2, file: !2, line: 5, type: !4, scopeLine: 5, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!26 = !DILocation(line: 5, column: 3, scope: !25) +!27 = distinct !DISubprogram(name: "$fundef_25", linkageName: "$fundef_25", scope: !2, file: !2, line: 6, type: !4, scopeLine: 6, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!28 = !DILocalVariable(name: "b", scope: !27, file: !2, line: 5, type: !29) +!29 = !DIBasicType(name: "Uint64", size: 8) +!30 = !DILocation(line: 5, column: 8, scope: !27) +!31 = !DILocalVariable(name: "$retval_26", scope: !27, file: !2, line: 6, type: !32) +!32 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "Pair (ByStr1) (Uint64)", baseType: !33, size: 8, align: 8, dwarfAddressSpace: 0) +!33 = !DIBasicType(name: "Pair (ByStr1) (Uint64)", size: 8) +!34 = !DILocation(line: 6, column: 5, scope: !27) +!35 = distinct !DISubprogram(name: "$fundef_23", linkageName: "$fundef_23", scope: !2, file: !2, line: 5, type: !4, scopeLine: 5, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!36 = !DILocalVariable(name: "a", scope: !35, file: !2, line: 4, type: !22) +!37 = !DILocation(line: 4, column: 8, scope: !35) +!38 = !DILocation(line: 6, column: 5, scope: !35) +!39 = distinct !DISubprogram(name: "$fundef_21", linkageName: "$fundef_21", scope: !2, file: !2, line: 5, type: !4, scopeLine: 5, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!40 = !DILocation(line: 5, column: 3, scope: !39) +!41 = distinct !DISubprogram(name: "$fundef_19", linkageName: "$fundef_19", scope: !2, file: !2, line: 3, type: !4, scopeLine: 3, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!42 = !DILocation(line: 3, column: 3, scope: !41) +!43 = distinct !DISubprogram(name: "$fundef_17", linkageName: "$fundef_17", scope: !2, file: !2, line: 6, type: !4, scopeLine: 6, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!44 = !DILocalVariable(name: "b", scope: !43, file: !2, line: 5, type: !29) +!45 = !DILocation(line: 5, column: 8, scope: !43) +!46 = !DILocalVariable(name: "$retval_18", scope: !43, file: !2, line: 6, type: !47) +!47 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "Pair (Uint32) (Uint64)", baseType: !48, size: 8, align: 8, dwarfAddressSpace: 0) +!48 = !DIBasicType(name: "Pair (Uint32) (Uint64)", size: 8) +!49 = !DILocation(line: 6, column: 5, scope: !43) +!50 = distinct !DISubprogram(name: "$fundef_15", linkageName: "$fundef_15", scope: !2, file: !2, line: 5, type: !4, scopeLine: 5, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!51 = !DILocalVariable(name: "a", scope: !50, file: !2, line: 4, type: !52) +!52 = !DIBasicType(name: "Uint32", size: 4) +!53 = !DILocation(line: 4, column: 8, scope: !50) +!54 = !DILocation(line: 6, column: 5, scope: !50) +!55 = distinct !DISubprogram(name: "$fundef_13", linkageName: "$fundef_13", scope: !2, file: !2, line: 5, type: !4, scopeLine: 5, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!56 = !DILocation(line: 5, column: 3, scope: !55) +!57 = distinct !DISubprogram(name: "$fundef_11", linkageName: "$fundef_11", scope: !2, file: !2, line: 3, type: !4, scopeLine: 3, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!58 = !DILocation(line: 3, column: 3, scope: !57) +!59 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !60, file: !60, type: !4, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !7) +!60 = !DIFile(filename: ".", directory: ".") +!61 = !DILocation(line: 0, scope: !59) +!62 = distinct !DISubprogram(name: "_scilla_expr_fun", linkageName: "_scilla_expr_fun", scope: !2, file: !2, line: 2, type: !4, scopeLine: 2, spFlags: DISPFlagDefinition, unit: !1, retainedNodes: !7) +!63 = !DILocalVariable(name: "$expr_10", scope: !62, file: !2, line: 2, type: !64) +!64 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "Pair (Pair (Uint32) (Uint64)) (Pair (ByStr1) (ByStr2))", baseType: !65, size: 8, align: 8, dwarfAddressSpace: 0) +!65 = !DIBasicType(name: "Pair (Pair (Uint32) (Uint64)) (Pair (ByStr1) (ByStr2))", size: 8) +!66 = !DILocation(line: 2, column: 3, scope: !62) +!67 = !DILocation(line: 10, column: 3, scope: !62) +!68 = !DILocation(line: 16, column: 11, scope: !62) +!69 = !DILocation(line: 16, column: 10, scope: !62) +!70 = !DILocation(line: 17, column: 11, scope: !62) +!71 = !DILocation(line: 17, column: 10, scope: !62) +!72 = !DILocation(line: 18, column: 11, scope: !62) +!73 = !DILocation(line: 18, column: 10, scope: !62) +!74 = !DILocalVariable(name: "uint32_one", scope: !62, file: !2, line: 19, type: !52) +!75 = !DILocation(line: 19, column: 5, scope: !62) +!76 = !DILocation(line: 19, column: 18, scope: !62) +!77 = !DILocalVariable(name: "uint64_two", scope: !62, file: !2, line: 20, type: !29) +!78 = !DILocation(line: 20, column: 5, scope: !62) +!79 = !DILocation(line: 20, column: 18, scope: !62) +!80 = !DILocalVariable(name: "addr_bystr1", scope: !62, file: !2, line: 21, type: !22) +!81 = !DILocation(line: 21, column: 5, scope: !62) +!82 = !DILocation(line: 21, column: 19, scope: !62) +!83 = !DILocalVariable(name: "addr_bystr2", scope: !62, file: !2, line: 22, type: !14) +!84 = !DILocation(line: 22, column: 5, scope: !62) +!85 = !DILocation(line: 22, column: 19, scope: !62) +!86 = !DILocalVariable(name: "p1", scope: !62, file: !2, line: 24, type: !47) +!87 = !DILocation(line: 24, column: 5, scope: !62) +!88 = !DILocation(line: 24, column: 10, scope: !62) +!89 = !DILocalVariable(name: "$t1_7", scope: !62, file: !2, line: 24, type: !47) +!90 = !DILocalVariable(name: "p2", scope: !62, file: !2, line: 25, type: !17) +!91 = !DILocation(line: 25, column: 5, scope: !62) +!92 = !DILocation(line: 25, column: 10, scope: !62) +!93 = !DILocalVariable(name: "$t4_9", scope: !62, file: !2, line: 25, type: !17) +!94 = !DILocation(line: 26, column: 1, scope: !62) diff --git a/testsuite/expr/typ3-inst.ll b/testsuite/expr/typ3-inst.ll index d0134a37..67cfd759 100644 --- a/testsuite/expr/typ3-inst.ll +++ b/testsuite/expr/typ3-inst.ll @@ -27,7 +27,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-pc-linux-gnu" +target triple = "x86_64-unknown-linux-gnu" %"$TyDescrTy_PrimTyp_37" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* }